From 00a58aed6b3afad46e023efbbc7022cad9c232b1 Mon Sep 17 00:00:00 2001 From: Warren Block Date: Tue, 5 Jun 2012 02:18:54 +0000 Subject: [PATCH 001/340] More wording corrections and simplifications. Approved by: gjb (mentor) --- share/man/man4/vlan.4 | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/share/man/man4/vlan.4 b/share/man/man4/vlan.4 index dd36ff7ff142..4717d2ae562b 100644 --- a/share/man/man4/vlan.4 +++ b/share/man/man4/vlan.4 @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd October 25, 2011 +.Dd June 4, 2012 .Dt VLAN 4 .Os .Sh NAME @@ -33,7 +33,7 @@ .Nd "IEEE 802.1Q VLAN network interface" .Sh SYNOPSIS To compile this driver into the kernel, -place the following lines in your +place the following line in your kernel configuration file: .Bd -ragged -offset indent .Cd "device vlan" @@ -119,8 +119,8 @@ It may have either capability enabled permanently without a way to turn it off. The whole issue is very specific to a particular device and its driver. .Pp -At present, physical interfaces capable of full VLAN processing -in the hardware is limited to these devices: +At present, these devices are capable of full VLAN processing +in hardware: .Xr ae 4 , .Xr age 4 , .Xr alc 4 , @@ -196,7 +196,7 @@ for use and calculates the appropriate frame MTU based on the capabilities of the parent interface. Some other interfaces not listed above may handle long frames, -but they do not advertise this ability of theirs. +but they do not advertise this ability. The MTU setting on .Nm can be corrected manually if used in conjunction with such a parent interface. From 3e0efd2ec4fcb4cd68fb8ccf8aea6fc6151c454b Mon Sep 17 00:00:00 2001 From: Eitan Adler Date: Tue, 5 Jun 2012 03:14:39 +0000 Subject: [PATCH 002/340] Fix style nit: don't use leading zero for dates in .Dd Prompted by: brueffer Approved by: brueffer MFC after: 3 days --- share/man/man4/io.4 | 2 +- share/man/man4/ng_ksocket.4 | 2 +- share/man/man5/make.conf.5 | 2 +- share/man/man5/rc.conf.5 | 2 +- share/man/man7/development.7 | 2 +- sys/netinet/libalias/libalias.3 | 2 +- usr.bin/find/find.1 | 2 +- usr.bin/gzip/zmore.1 | 2 +- usr.bin/usbhidctl/usbhidctl.1 | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/share/man/man4/io.4 b/share/man/man4/io.4 index a3561dbabd9e..fa1c3f1d25c7 100644 --- a/share/man/man4/io.4 +++ b/share/man/man4/io.4 @@ -27,7 +27,7 @@ .\" .\" $FreeBSD$ .\" -.Dd June 01, 2010 +.Dd June 1, 2010 .Dt IO 4 .Os .Sh NAME diff --git a/share/man/man4/ng_ksocket.4 b/share/man/man4/ng_ksocket.4 index e74f61a2e435..3a9fcd0aad8e 100644 --- a/share/man/man4/ng_ksocket.4 +++ b/share/man/man4/ng_ksocket.4 @@ -34,7 +34,7 @@ .\" .\" $FreeBSD$ .\" -.Dd January 09, 2012 +.Dd January 9, 2012 .Dt NG_KSOCKET 4 .Os .Sh NAME diff --git a/share/man/man5/make.conf.5 b/share/man/man5/make.conf.5 index 9723f4c232d6..1f5e390a9f19 100644 --- a/share/man/man5/make.conf.5 +++ b/share/man/man5/make.conf.5 @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd May 02, 2012 +.Dd May 2, 2012 .Dt MAKE.CONF 5 .Os .Sh NAME diff --git a/share/man/man5/rc.conf.5 b/share/man/man5/rc.conf.5 index f41933586a56..1802fca0e441 100644 --- a/share/man/man5/rc.conf.5 +++ b/share/man/man5/rc.conf.5 @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd May 06, 2012 +.Dd May 6, 2012 .Dt RC.CONF 5 .Os .Sh NAME diff --git a/share/man/man7/development.7 b/share/man/man7/development.7 index a64354264ed5..ea7df3830774 100644 --- a/share/man/man7/development.7 +++ b/share/man/man7/development.7 @@ -23,7 +23,7 @@ .\" .\" $FreeBSD$ .\" -.Dd May 02, 2012 +.Dd May 2, 2012 .Dt DEVELOPMENT 7 .Os .Sh NAME diff --git a/sys/netinet/libalias/libalias.3 b/sys/netinet/libalias/libalias.3 index 817159c28130..4d05e80e7789 100644 --- a/sys/netinet/libalias/libalias.3 +++ b/sys/netinet/libalias/libalias.3 @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd July 04, 2011 +.Dd July 4, 2011 .Dt LIBALIAS 3 .Os .Sh NAME diff --git a/usr.bin/find/find.1 b/usr.bin/find/find.1 index ea9091a19de4..f06418ed8f60 100644 --- a/usr.bin/find/find.1 +++ b/usr.bin/find/find.1 @@ -31,7 +31,7 @@ .\" @(#)find.1 8.7 (Berkeley) 5/9/95 .\" $FreeBSD$ .\" -.Dd May 06, 2012 +.Dd May 6, 2012 .Dt FIND 1 .Os .Sh NAME diff --git a/usr.bin/gzip/zmore.1 b/usr.bin/gzip/zmore.1 index 1235d40fcf69..b1f389c98c2a 100644 --- a/usr.bin/gzip/zmore.1 +++ b/usr.bin/gzip/zmore.1 @@ -20,7 +20,7 @@ .\" Materiel Command, USAF, under agreement number F39502-99-1-0512. .\" .\" $FreeBSD$ -.Dd February 06, 2011 +.Dd February 6, 2011 .Dt ZMORE 1 .Os .Sh NAME diff --git a/usr.bin/usbhidctl/usbhidctl.1 b/usr.bin/usbhidctl/usbhidctl.1 index f3c55760a086..bb7d95863344 100644 --- a/usr.bin/usbhidctl/usbhidctl.1 +++ b/usr.bin/usbhidctl/usbhidctl.1 @@ -28,7 +28,7 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.Dd August 01, 2011 +.Dd August 1, 2011 .Dt USBHIDCTL 1 .Os .Sh NAME From 14d33c7e35ab1588d5f3d7d386b6f82fe09102c3 Mon Sep 17 00:00:00 2001 From: Adrian Chadd Date: Tue, 5 Jun 2012 03:14:49 +0000 Subject: [PATCH 003/340] Create a function - ath_tx_kick() - which is called where ath_start() is called to "kick" along TX. For now, schedule a taskqueue call. Later on I may go back to the direct call of ath_rx_tasklet() - but for now, this will do. I've tested UDP and TCP TX. UDP TX still achieves 240MBit, but TCP TX gets stuck at around 100MBit or so, instead of the 150MBit it should be at. I'll re-test with no ACPI/power/sleep states enabled at startup and see what effect it has. This is in preparation for supporting an if_transmit() path, which will turn ath_tx_kick() into a NUL operation (as there won't be an ifnet queue to service.) Tested: * AR9280 STA TODO: * test on AR5416, AR9160, AR928x STA/AP modes PR: kern/168649 --- sys/dev/ath/if_ath.c | 12 +++++------- sys/dev/ath/if_ath_misc.h | 12 +++++++++++- sys/dev/ath/if_ath_rx.c | 3 +-- 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/sys/dev/ath/if_ath.c b/sys/dev/ath/if_ath.c index 62e99c632844..7824666fc6b8 100644 --- a/sys/dev/ath/if_ath.c +++ b/sys/dev/ath/if_ath.c @@ -142,6 +142,7 @@ static void ath_vap_delete(struct ieee80211vap *); static void ath_init(void *); static void ath_stop_locked(struct ifnet *); static void ath_stop(struct ifnet *); +static void ath_tx_tasklet(void *arg, int npending); static int ath_reset_vap(struct ieee80211vap *, u_long); static int ath_media_change(struct ifnet *); static void ath_watchdog(void *); @@ -2330,7 +2331,7 @@ ath_start(struct ifnet *ifp) taskqueue_enqueue(sc->sc_tq, &sc->sc_txstarttask); } -void +static void ath_tx_tasklet(void *arg, int npending) { struct ath_softc *sc = (struct ath_softc *) arg; @@ -3509,8 +3510,7 @@ ath_tx_proc_q0(void *arg, int npending) sc->sc_txproc_cnt--; ATH_PCU_UNLOCK(sc); - // ath_start(ifp); - ath_tx_tasklet(sc, 1); + ath_tx_kick(sc); } /* @@ -3560,8 +3560,7 @@ ath_tx_proc_q0123(void *arg, int npending) sc->sc_txproc_cnt--; ATH_PCU_UNLOCK(sc); - //ath_start(ifp); - ath_tx_tasklet(sc, 1); + ath_tx_kick(sc); } /* @@ -3604,8 +3603,7 @@ ath_tx_proc(void *arg, int npending) sc->sc_txproc_cnt--; ATH_PCU_UNLOCK(sc); - //ath_start(ifp); - ath_tx_tasklet(sc, 1); + ath_tx_kick(sc); } #undef TXQACTIVE diff --git a/sys/dev/ath/if_ath_misc.h b/sys/dev/ath/if_ath_misc.h index 93ca161a31f4..7b6c932c0264 100644 --- a/sys/dev/ath/if_ath_misc.h +++ b/sys/dev/ath/if_ath_misc.h @@ -83,7 +83,17 @@ extern void ath_setslottime(struct ath_softc *sc); * we can kill this. */ extern void ath_start(struct ifnet *ifp); -extern void ath_tx_tasklet(void *arg, int npending); +static inline void +ath_tx_kick(struct ath_softc *sc) +{ + + /* + * Use a taskqueue to schedule a TX completion task, + * even if we're in taskqueue context. That way this can + * be called from any context. + */ + taskqueue_enqueue(sc->sc_tq, &sc->sc_txstarttask); +} #endif diff --git a/sys/dev/ath/if_ath_rx.c b/sys/dev/ath/if_ath_rx.c index 58664b7460c8..49901b4b9c27 100644 --- a/sys/dev/ath/if_ath_rx.c +++ b/sys/dev/ath/if_ath_rx.c @@ -899,8 +899,7 @@ ath_rx_proc(struct ath_softc *sc, int resched) ieee80211_ff_age_all(ic, 100); #endif if (!IFQ_IS_EMPTY(&ifp->if_snd)) - ath_tx_tasklet(sc, 1); - //ath_start(ifp); + ath_tx_kick(sc); } #undef PA2DESC From 36eeafa0e56e8f13c68a152898c3fb0c9008ff74 Mon Sep 17 00:00:00 2001 From: Gleb Smirnoff Date: Tue, 5 Jun 2012 05:16:04 +0000 Subject: [PATCH 004/340] style(9) for r236563. --- sys/kern/uipc_syscalls.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/kern/uipc_syscalls.c b/sys/kern/uipc_syscalls.c index 1a30cef0627f..a0794b989878 100644 --- a/sys/kern/uipc_syscalls.c +++ b/sys/kern/uipc_syscalls.c @@ -2182,9 +2182,9 @@ kern_sendfile(struct thread *td, struct sendfile_args *uap, m0->m_len = xfsize; /* Append to mbuf chain. */ - if (mtail != NULL) { + if (mtail != NULL) mtail->m_next = m0; - } else if (m != NULL) + else if (m != NULL) m_last(m)->m_next = m0; else m = m0; From 9f9560982863554689b1598ef5393012389d9f08 Mon Sep 17 00:00:00 2001 From: Adrian Chadd Date: Tue, 5 Jun 2012 06:03:55 +0000 Subject: [PATCH 005/340] Mostly revert previous commit(s). After doing a bunch of local testing, it turns out that it negatively affects performance. I'm stil investigating exactly why deferring the IO causes such negative TCP performance but doesn't affect UDP preformance. Leave the ath_tx_kick() change in there however; it's going to be useful to have that there for if_transmit() work. PR: kern/168649 --- sys/dev/ath/if_ath.c | 11 ----------- sys/dev/ath/if_ath_misc.h | 7 +------ sys/dev/ath/if_athvar.h | 1 - 3 files changed, 1 insertion(+), 18 deletions(-) diff --git a/sys/dev/ath/if_ath.c b/sys/dev/ath/if_ath.c index 7824666fc6b8..dcead7ac2f47 100644 --- a/sys/dev/ath/if_ath.c +++ b/sys/dev/ath/if_ath.c @@ -142,7 +142,6 @@ static void ath_vap_delete(struct ieee80211vap *); static void ath_init(void *); static void ath_stop_locked(struct ifnet *); static void ath_stop(struct ifnet *); -static void ath_tx_tasklet(void *arg, int npending); static int ath_reset_vap(struct ieee80211vap *, u_long); static int ath_media_change(struct ifnet *); static void ath_watchdog(void *); @@ -374,7 +373,6 @@ ath_attach(u_int16_t devid, struct ath_softc *sc) "%s taskq", ifp->if_xname); TASK_INIT(&sc->sc_rxtask, 0, ath_rx_tasklet, sc); - TASK_INIT(&sc->sc_txstarttask, 0, ath_tx_tasklet, sc); TASK_INIT(&sc->sc_bmisstask, 0, ath_bmiss_proc, sc); TASK_INIT(&sc->sc_bstucktask,0, ath_bstuck_proc, sc); TASK_INIT(&sc->sc_resettask,0, ath_reset_proc, sc); @@ -2327,15 +2325,6 @@ void ath_start(struct ifnet *ifp) { struct ath_softc *sc = ifp->if_softc; - - taskqueue_enqueue(sc->sc_tq, &sc->sc_txstarttask); -} - -static void -ath_tx_tasklet(void *arg, int npending) -{ - struct ath_softc *sc = (struct ath_softc *) arg; - struct ifnet *ifp = sc->sc_ifp; struct ieee80211_node *ni; struct ath_buf *bf; struct mbuf *m, *next; diff --git a/sys/dev/ath/if_ath_misc.h b/sys/dev/ath/if_ath_misc.h index 7b6c932c0264..96fa55e2657d 100644 --- a/sys/dev/ath/if_ath_misc.h +++ b/sys/dev/ath/if_ath_misc.h @@ -88,12 +88,7 @@ static inline void ath_tx_kick(struct ath_softc *sc) { - /* - * Use a taskqueue to schedule a TX completion task, - * even if we're in taskqueue context. That way this can - * be called from any context. - */ - taskqueue_enqueue(sc->sc_tq, &sc->sc_txstarttask); + ath_start(sc->sc_ifp); } #endif diff --git a/sys/dev/ath/if_athvar.h b/sys/dev/ath/if_athvar.h index f438c1805586..e197368178ed 100644 --- a/sys/dev/ath/if_athvar.h +++ b/sys/dev/ath/if_athvar.h @@ -476,7 +476,6 @@ struct ath_softc { struct mbuf *sc_rxpending; /* pending receive data */ u_int32_t *sc_rxlink; /* link ptr in last RX desc */ struct task sc_rxtask; /* rx int processing */ - struct task sc_txstarttask; /* ath_start() processing */ u_int8_t sc_defant; /* current default antenna */ u_int8_t sc_rxotherant; /* rx's on non-default antenna*/ u_int64_t sc_lastrx; /* tsf at last rx'd frame */ From fddde2b8ef37446cf89d43ddb9c653b9497b7d18 Mon Sep 17 00:00:00 2001 From: Alexander Motin Date: Tue, 5 Jun 2012 09:45:42 +0000 Subject: [PATCH 006/340] Tune and add some missing CAM_DEBUG() points for better consistency. --- sys/cam/ata/ata_da.c | 18 ++++++++++++++---- sys/cam/ata/ata_pmp.c | 6 ++++-- sys/cam/scsi/scsi_cd.c | 14 ++++++++++---- sys/cam/scsi/scsi_da.c | 19 ++++++++++++++----- sys/cam/scsi/scsi_pt.c | 7 ++++++- 5 files changed, 48 insertions(+), 16 deletions(-) diff --git a/sys/cam/ata/ata_da.c b/sys/cam/ata/ata_da.c index 87f8d4adbb37..3ad69cca51d1 100644 --- a/sys/cam/ata/ata_da.c +++ b/sys/cam/ata/ata_da.c @@ -436,9 +436,8 @@ adaopen(struct disk *dp) softc = (struct ada_softc *)periph->softc; softc->flags |= ADA_FLAG_OPEN; - CAM_DEBUG(periph->path, CAM_DEBUG_TRACE, - ("adaopen: disk=%s%d (unit %d)\n", dp->d_name, dp->d_unit, - periph->unit_number)); + CAM_DEBUG(periph->path, CAM_DEBUG_TRACE | CAM_DEBUG_PERIPH, + ("adaopen\n")); if ((softc->flags & ADA_FLAG_PACK_INVALID) != 0) { /* Invalidate our pack information. */ @@ -469,6 +468,10 @@ adaclose(struct disk *dp) } softc = (struct ada_softc *)periph->softc; + + CAM_DEBUG(periph->path, CAM_DEBUG_TRACE | CAM_DEBUG_PERIPH, + ("adaclose\n")); + /* We only sync the cache if the drive is capable of it. */ if ((softc->flags & ADA_FLAG_CAN_FLUSHCACHE) != 0 && (softc->flags & ADA_FLAG_PACK_INVALID) == 0) { @@ -542,6 +545,8 @@ adastrategy(struct bio *bp) cam_periph_lock(periph); + CAM_DEBUG(periph->path, CAM_DEBUG_TRACE, ("adastrategy(%p)\n", bp)); + /* * If the device has been made invalid, error out */ @@ -1167,6 +1172,8 @@ adastart(struct cam_periph *periph, union ccb *start_ccb) struct ada_softc *softc = (struct ada_softc *)periph->softc; struct ccb_ataio *ataio = &start_ccb->ataio; + CAM_DEBUG(periph->path, CAM_DEBUG_TRACE, ("adastart\n")); + switch (softc->state) { case ADA_STATE_NORMAL: { @@ -1175,7 +1182,7 @@ adastart(struct cam_periph *periph, union ccb *start_ccb) /* Execute immediate CCB if waiting. */ if (periph->immediate_priority <= periph->pinfo.priority) { - CAM_DEBUG_PRINT(CAM_DEBUG_SUBTRACE, + CAM_DEBUG(periph->path, CAM_DEBUG_SUBTRACE, ("queuing for immediate ccb\n")); start_ccb->ccb_h.ccb_state = ADA_CCB_WAITING; SLIST_INSERT_HEAD(&periph->ccb_list, &start_ccb->ccb_h, @@ -1467,6 +1474,9 @@ adadone(struct cam_periph *periph, union ccb *done_ccb) softc = (struct ada_softc *)periph->softc; ataio = &done_ccb->ataio; + + CAM_DEBUG(periph->path, CAM_DEBUG_TRACE, ("adadone\n")); + switch (ataio->ccb_h.ccb_state & ADA_CCB_TYPE_MASK) { case ADA_CCB_BUFFER_IO: case ADA_CCB_TRIM: diff --git a/sys/cam/ata/ata_pmp.c b/sys/cam/ata/ata_pmp.c index 3d2951cd29a4..db671480d76e 100644 --- a/sys/cam/ata/ata_pmp.c +++ b/sys/cam/ata/ata_pmp.c @@ -429,7 +429,9 @@ pmpstart(struct cam_periph *periph, union ccb *start_ccb) softc = (struct pmp_softc *)periph->softc; ataio = &start_ccb->ataio; - + + CAM_DEBUG(periph->path, CAM_DEBUG_TRACE, ("pmpstart\n")); + if (softc->restart) { softc->restart = 0; softc->state = min(softc->state, PMP_STATE_PRECONFIG); @@ -560,7 +562,7 @@ pmpdone(struct cam_periph *periph, union ccb *done_ccb) softc = (struct pmp_softc *)periph->softc; ataio = &done_ccb->ataio; - CAM_DEBUG(done_ccb->ccb_h.path, CAM_DEBUG_TRACE, ("pmpdone\n")); + CAM_DEBUG(periph->path, CAM_DEBUG_TRACE, ("pmpdone\n")); priority = done_ccb->ccb_h.pinfo.priority; diff --git a/sys/cam/scsi/scsi_cd.c b/sys/cam/scsi/scsi_cd.c index 5e88a9784a53..d45d49a03c60 100644 --- a/sys/cam/scsi/scsi_cd.c +++ b/sys/cam/scsi/scsi_cd.c @@ -1014,6 +1014,9 @@ cdopen(struct disk *dp) return (error); } + CAM_DEBUG(periph->path, CAM_DEBUG_TRACE | CAM_DEBUG_PERIPH, + ("cdopen\n")); + /* * Check for media, and set the appropriate flags. We don't bail * if we don't have media, but then we don't allow anything but the @@ -1051,6 +1054,9 @@ cdclose(struct disk *dp) cam_periph_lock(periph); cam_periph_hold(periph, PRIBIO); + CAM_DEBUG(periph->path, CAM_DEBUG_TRACE | CAM_DEBUG_PERIPH, + ("cdclose\n")); + if ((softc->flags & CD_FLAG_DISC_REMOVABLE) != 0) cdprevent(periph, PR_ALLOW); @@ -1395,7 +1401,8 @@ cdstrategy(struct bio *bp) } cam_periph_lock(periph); - CAM_DEBUG(periph->path, CAM_DEBUG_TRACE, ("entering cdstrategy\n")); + CAM_DEBUG(periph->path, CAM_DEBUG_TRACE, + ("cdstrategy(%p)\n", bp)); softc = (struct cd_softc *)periph->softc; @@ -1861,12 +1868,11 @@ cdioctl(struct disk *dp, u_long cmd, void *addr, int flag, struct thread *td) return(ENXIO); cam_periph_lock(periph); - CAM_DEBUG(periph->path, CAM_DEBUG_TRACE, ("entering cdioctl\n")); softc = (struct cd_softc *)periph->softc; - CAM_DEBUG(periph->path, CAM_DEBUG_TRACE, - ("trying to do ioctl %#lx\n", cmd)); + CAM_DEBUG(periph->path, CAM_DEBUG_TRACE, + ("cdioctl(%#lx)\n", cmd)); if ((error = cam_periph_hold(periph, PRIBIO | PCATCH)) != 0) { cam_periph_unlock(periph); diff --git a/sys/cam/scsi/scsi_da.c b/sys/cam/scsi/scsi_da.c index dc626c77a14a..9b8fce01f969 100644 --- a/sys/cam/scsi/scsi_da.c +++ b/sys/cam/scsi/scsi_da.c @@ -942,9 +942,8 @@ daopen(struct disk *dp) softc = (struct da_softc *)periph->softc; softc->flags |= DA_FLAG_OPEN; - CAM_DEBUG(periph->path, CAM_DEBUG_TRACE, - ("daopen: disk=%s%d (unit %d)\n", dp->d_name, dp->d_unit, - unit)); + CAM_DEBUG(periph->path, CAM_DEBUG_TRACE | CAM_DEBUG_PERIPH, + ("daopen\n")); if ((softc->flags & DA_FLAG_PACK_INVALID) != 0) { /* Invalidate our pack information. */ @@ -999,6 +998,9 @@ daclose(struct disk *dp) softc = (struct da_softc *)periph->softc; + CAM_DEBUG(periph->path, CAM_DEBUG_TRACE | CAM_DEBUG_PERIPH, + ("daclose\n")); + if ((softc->quirks & DA_Q_NO_SYNC_CACHE) == 0 && (softc->flags & DA_FLAG_PACK_INVALID) == 0) { union ccb *ccb; @@ -1108,7 +1110,9 @@ dastrategy(struct bio *bp) biofinish(bp, NULL, ENXIO); return; } - + + CAM_DEBUG(periph->path, CAM_DEBUG_TRACE, ("dastrategy(%p)\n", bp)); + /* * Place it in the queue of disk activities for this disk */ @@ -1724,6 +1728,8 @@ dastart(struct cam_periph *periph, union ccb *start_ccb) softc = (struct da_softc *)periph->softc; + CAM_DEBUG(periph->path, CAM_DEBUG_TRACE, ("dastart\n")); + switch (softc->state) { case DA_STATE_NORMAL: { @@ -1732,7 +1738,7 @@ dastart(struct cam_periph *periph, union ccb *start_ccb) /* Execute immediate CCB if waiting. */ if (periph->immediate_priority <= periph->pinfo.priority) { - CAM_DEBUG_PRINT(CAM_DEBUG_SUBTRACE, + CAM_DEBUG(periph->path, CAM_DEBUG_SUBTRACE, ("queuing for immediate ccb\n")); start_ccb->ccb_h.ccb_state = DA_CCB_WAITING; SLIST_INSERT_HEAD(&periph->ccb_list, &start_ccb->ccb_h, @@ -2064,6 +2070,9 @@ dadone(struct cam_periph *periph, union ccb *done_ccb) softc = (struct da_softc *)periph->softc; priority = done_ccb->ccb_h.pinfo.priority; + + CAM_DEBUG(periph->path, CAM_DEBUG_TRACE, ("dadone\n")); + csio = &done_ccb->csio; switch (csio->ccb_h.ccb_state & DA_CCB_TYPE_MASK) { case DA_CCB_BUFFER_IO: diff --git a/sys/cam/scsi/scsi_pt.c b/sys/cam/scsi/scsi_pt.c index 67e7ecdc6d2d..26f4d19ddf6d 100644 --- a/sys/cam/scsi/scsi_pt.c +++ b/sys/cam/scsi/scsi_pt.c @@ -425,12 +425,14 @@ ptstart(struct cam_periph *periph, union ccb *start_ccb) softc = (struct pt_softc *)periph->softc; + CAM_DEBUG(periph->path, CAM_DEBUG_TRACE, ("ptstart\n")); + /* * See if there is a buf with work for us to do.. */ bp = bioq_first(&softc->bio_queue); if (periph->immediate_priority <= periph->pinfo.priority) { - CAM_DEBUG_PRINT(CAM_DEBUG_SUBTRACE, + CAM_DEBUG(periph->path, CAM_DEBUG_SUBTRACE, ("queuing for immediate ccb\n")); start_ccb->ccb_h.ccb_state = PT_CCB_WAITING; SLIST_INSERT_HEAD(&periph->ccb_list, &start_ccb->ccb_h, @@ -483,6 +485,9 @@ ptdone(struct cam_periph *periph, union ccb *done_ccb) struct ccb_scsiio *csio; softc = (struct pt_softc *)periph->softc; + + CAM_DEBUG(periph->path, CAM_DEBUG_TRACE, ("ptdone\n")); + csio = &done_ccb->csio; switch (csio->ccb_h.ccb_state) { case PT_CCB_BUFFER_IO: From 62275a906f011f27f39c2cb1d2f41e3ffc3ee790 Mon Sep 17 00:00:00 2001 From: Alexander Motin Date: Tue, 5 Jun 2012 10:08:22 +0000 Subject: [PATCH 007/340] Do not reinvent a wheel and let default error handler do its job. --- sys/cam/scsi/scsi_da.c | 29 ++++------------------------- 1 file changed, 4 insertions(+), 25 deletions(-) diff --git a/sys/cam/scsi/scsi_da.c b/sys/cam/scsi/scsi_da.c index 9b8fce01f969..3a02ea841428 100644 --- a/sys/cam/scsi/scsi_da.c +++ b/sys/cam/scsi/scsi_da.c @@ -1016,30 +1016,9 @@ daclose(struct disk *dp) SSD_FULL_SIZE, 5 * 60 * 1000); - cam_periph_runccb(ccb, /*error_routine*/NULL, /*cam_flags*/0, - /*sense_flags*/SF_RETRY_UA, + cam_periph_runccb(ccb, daerror, /*cam_flags*/0, + /*sense_flags*/SF_RETRY_UA | SF_QUIET_IR, softc->disk->d_devstat); - - if ((ccb->ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) { - if ((ccb->ccb_h.status & CAM_STATUS_MASK) == - CAM_SCSI_STATUS_ERROR) { - int asc, ascq; - int sense_key, error_code; - - scsi_extract_sense_len(&ccb->csio.sense_data, - ccb->csio.sense_len - ccb->csio.sense_resid, - &error_code, &sense_key, &asc, &ascq, - /*show_errors*/ 1); - if (sense_key != SSD_KEY_ILLEGAL_REQUEST) - scsi_sense_print(&ccb->csio); - } else { - xpt_print(periph->path, "Synchronize cache " - "failed, status == 0x%x, scsi status == " - "0x%x\n", ccb->csio.ccb_h.status, - ccb->csio.scsi_status); - } - } - xpt_release_ccb(ccb); } @@ -2541,8 +2520,8 @@ daprevent(struct cam_periph *periph, int action) SSD_FULL_SIZE, 5000); - error = cam_periph_runccb(ccb, /*error_routine*/NULL, CAM_RETRY_SELTO, - SF_RETRY_UA, softc->disk->d_devstat); + error = cam_periph_runccb(ccb, daerror, CAM_RETRY_SELTO, + SF_RETRY_UA | SF_QUIET_IR, softc->disk->d_devstat); if (error == 0) { if (action == PR_ALLOW) From 2d89c1256734884b95ba299bf677948fa292f14c Mon Sep 17 00:00:00 2001 From: Alexander Motin Date: Tue, 5 Jun 2012 10:23:41 +0000 Subject: [PATCH 008/340] Replace #ifdef CAMDEBUG + if + panic() with single KASSERT(). --- sys/cam/cam_xpt.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/sys/cam/cam_xpt.c b/sys/cam/cam_xpt.c index 620e39a11198..b5bfccec56a3 100644 --- a/sys/cam/cam_xpt.c +++ b/sys/cam/cam_xpt.c @@ -3226,13 +3226,8 @@ xpt_run_dev_allocq(struct cam_eb *bus) ("running device %p\n", device)); drvq = &device->drvq; - -#ifdef CAMDEBUG - if (drvq->entries <= 0) { - panic("xpt_run_dev_allocq: " - "Device on queue without any work to do"); - } -#endif + KASSERT(drvq->entries > 0, ("xpt_run_dev_allocq: " + "Device on queue without any work to do")); if ((work_ccb = xpt_get_ccb(device)) != NULL) { devq->alloc_openings--; devq->alloc_active++; From a4d953c44e9092fc0c26a4de8ee5bd685b45441b Mon Sep 17 00:00:00 2001 From: Alexander Motin Date: Tue, 5 Jun 2012 11:48:32 +0000 Subject: [PATCH 009/340] Tune and add some more CAM_DEBUG() points for the probe sequences. --- sys/cam/ata/ata_xpt.c | 26 +++++++++++-------- sys/cam/scsi/scsi_xpt.c | 57 +++++++++++++++++++++-------------------- 2 files changed, 44 insertions(+), 39 deletions(-) diff --git a/sys/cam/ata/ata_xpt.c b/sys/cam/ata/ata_xpt.c index 36b2927dcb2c..d7fe3d7d3023 100644 --- a/sys/cam/ata/ata_xpt.c +++ b/sys/cam/ata/ata_xpt.c @@ -96,6 +96,7 @@ typedef enum { PROBE_PM_PRV, PROBE_IDENTIFY_SES, PROBE_IDENTIFY_SAFTE, + PROBE_DONE, PROBE_INVALID } probe_action; @@ -115,6 +116,7 @@ static char *probe_action_text[] = { "PROBE_PM_PRV", "PROBE_IDENTIFY_SES", "PROBE_IDENTIFY_SAFTE", + "PROBE_DONE", "PROBE_INVALID" }; @@ -122,7 +124,7 @@ static char *probe_action_text[] = { do { \ char **text; \ text = probe_action_text; \ - CAM_DEBUG((softc)->periph->path, CAM_DEBUG_INFO, \ + CAM_DEBUG((softc)->periph->path, CAM_DEBUG_PROBE, \ ("Probe %s to %s\n", text[(softc)->action], \ text[(newaction)])); \ (softc)->action = (newaction); \ @@ -251,6 +253,8 @@ proberegister(struct cam_periph *periph, void *arg) if (status != CAM_REQ_CMP) { return (status); } + CAM_DEBUG(periph->path, CAM_DEBUG_PROBE, ("Probe started\n")); + /* * Ensure nobody slip in until probe finish. */ @@ -653,11 +657,8 @@ probestart(struct cam_periph *periph, union ccb *start_ccb) ata_28bit_cmd(ataio, ATA_SEP_ATTN, 0xEC, 0x00, sizeof(softc->ident_data) / 4); break; - case PROBE_INVALID: - CAM_DEBUG(path, CAM_DEBUG_INFO, - ("probestart: invalid action state\n")); default: - break; + panic("probestart: invalid action state 0x%x\n", softc->action); } xpt_action(start_ccb); } @@ -776,6 +777,7 @@ probedone(struct cam_periph *periph, union ccb *done_ccb) */ device_fail: if ((path->device->flags & CAM_DEV_UNCONFIGURED) == 0) xpt_async(AC_LOST_DEVICE, path, NULL); + PROBE_SET_ACTION(softc, PROBE_INVALID); found = 0; goto done; } @@ -787,8 +789,8 @@ device_fail: if ((path->device->flags & CAM_DEV_UNCONFIGURED) == 0) { int sign = (done_ccb->ataio.res.lba_high << 8) + done_ccb->ataio.res.lba_mid; - if (bootverbose) - xpt_print(path, "SIGNATURE: %04x\n", sign); + CAM_DEBUG(path, CAM_DEBUG_PROBE, + ("SIGNATURE: %04x\n", sign)); if (sign == 0x0000 && done_ccb->ccb_h.target_id != 15) { path->device->protocol = PROTO_ATA; @@ -1053,6 +1055,7 @@ device_fail: if ((path->device->flags & CAM_DEV_UNCONFIGURED) == 0) xpt_async(AC_FOUND_DEVICE, done_ccb->ccb_h.path, done_ccb); } + PROBE_SET_ACTION(softc, PROBE_DONE); break; case PROBE_INQUIRY: case PROBE_FULL_INQUIRY: @@ -1094,6 +1097,7 @@ device_fail: if ((path->device->flags & CAM_DEV_UNCONFIGURED) == 0) xpt_action(done_ccb); xpt_async(AC_FOUND_DEVICE, done_ccb->ccb_h.path, done_ccb); } + PROBE_SET_ACTION(softc, PROBE_DONE); break; } case PROBE_PM_PID: @@ -1162,6 +1166,7 @@ device_fail: if ((path->device->flags & CAM_DEV_UNCONFIGURED) == 0) xpt_action(done_ccb); xpt_async(AC_SCSI_AEN, done_ccb->ccb_h.path, done_ccb); } + PROBE_SET_ACTION(softc, PROBE_DONE); break; case PROBE_IDENTIFY_SES: case PROBE_IDENTIFY_SAFTE: @@ -1204,12 +1209,10 @@ device_fail: if ((path->device->flags & CAM_DEV_UNCONFIGURED) == 0) xpt_async(AC_FOUND_DEVICE, done_ccb->ccb_h.path, done_ccb); } + PROBE_SET_ACTION(softc, PROBE_DONE); break; - case PROBE_INVALID: - CAM_DEBUG(done_ccb->ccb_h.path, CAM_DEBUG_INFO, - ("probedone: invalid action state\n")); default: - break; + panic("probedone: invalid action state 0x%x\n", softc->action); } done: if (softc->restart) { @@ -1219,6 +1222,7 @@ device_fail: if ((path->device->flags & CAM_DEV_UNCONFIGURED) == 0) return; } xpt_release_ccb(done_ccb); + CAM_DEBUG(periph->path, CAM_DEBUG_PROBE, ("Probe completed\n")); while ((done_ccb = (union ccb *)TAILQ_FIRST(&softc->request_ccbs))) { TAILQ_REMOVE(&softc->request_ccbs, &done_ccb->ccb_h, periph_links.tqe); diff --git a/sys/cam/scsi/scsi_xpt.c b/sys/cam/scsi/scsi_xpt.c index 3805a683252c..fa69bc0bb858 100644 --- a/sys/cam/scsi/scsi_xpt.c +++ b/sys/cam/scsi/scsi_xpt.c @@ -141,6 +141,7 @@ typedef enum { PROBE_INQUIRY_BASIC_DV1, PROBE_INQUIRY_BASIC_DV2, PROBE_DV_EXIT, + PROBE_DONE, PROBE_INVALID } probe_action; @@ -157,6 +158,7 @@ static char *probe_action_text[] = { "PROBE_INQUIRY_BASIC_DV1", "PROBE_INQUIRY_BASIC_DV2", "PROBE_DV_EXIT", + "PROBE_DONE", "PROBE_INVALID" }; @@ -164,7 +166,7 @@ static char *probe_action_text[] = { do { \ char **text; \ text = probe_action_text; \ - CAM_DEBUG((softc)->periph->path, CAM_DEBUG_INFO, \ + CAM_DEBUG((softc)->periph->path, CAM_DEBUG_PROBE, \ ("Probe %s to %s\n", text[(softc)->action], \ text[(newaction)])); \ (softc)->action = (newaction); \ @@ -642,7 +644,7 @@ proberegister(struct cam_periph *periph, void *arg) if (status != CAM_REQ_CMP) { return (status); } - + CAM_DEBUG(periph->path, CAM_DEBUG_PROBE, ("Probe started\n")); /* * Ensure we've waited at least a bus settle @@ -981,11 +983,8 @@ probestart(struct cam_periph *periph, union ccb *start_ccb) probedone(periph, start_ccb); return; } - case PROBE_INVALID: - CAM_DEBUG(start_ccb->ccb_h.path, CAM_DEBUG_INFO, - ("probestart: invalid action state\n")); default: - break; + panic("probestart: invalid action state 0x%x\n", softc->action); } xpt_action(start_ccb); } @@ -1065,7 +1064,7 @@ proberequestbackoff(struct cam_periph *periph, struct cam_ed *device) } if (device->flags & CAM_DEV_DV_HIT_BOTTOM) { - CAM_DEBUG(periph->path, CAM_DEBUG_INFO, + CAM_DEBUG(periph->path, CAM_DEBUG_PROBE, ("hit async: giving up on DV\n")); return (0); } @@ -1085,7 +1084,7 @@ proberequestbackoff(struct cam_periph *periph, struct cam_ed *device) if (spi->sync_period >= 0xf) { spi->sync_period = 0; spi->sync_offset = 0; - CAM_DEBUG(periph->path, CAM_DEBUG_INFO, + CAM_DEBUG(periph->path, CAM_DEBUG_PROBE, ("setting to async for DV\n")); /* * Once we hit async, we don't want to try @@ -1093,7 +1092,7 @@ proberequestbackoff(struct cam_periph *periph, struct cam_ed *device) */ device->flags |= CAM_DEV_DV_HIT_BOTTOM; } else if (bootverbose) { - CAM_DEBUG(periph->path, CAM_DEBUG_INFO, + CAM_DEBUG(periph->path, CAM_DEBUG_PROBE, ("DV: period 0x%x\n", spi->sync_period)); printf("setting period to 0x%x\n", spi->sync_period); } @@ -1103,7 +1102,7 @@ proberequestbackoff(struct cam_periph *periph, struct cam_ed *device) if ((cts.ccb_h.status & CAM_STATUS_MASK) == CAM_REQ_CMP) { break; } - CAM_DEBUG(periph->path, CAM_DEBUG_INFO, + CAM_DEBUG(periph->path, CAM_DEBUG_PROBE, ("DV: failed to set period 0x%x\n", spi->sync_period)); if (spi->sync_period == 0) { return (0); @@ -1250,6 +1249,7 @@ probedone(struct cam_periph *periph, union ccb *done_ccb) if ((path->device->flags & CAM_DEV_UNCONFIGURED) == 0) /* Send the async notification. */ xpt_async(AC_LOST_DEVICE, path, NULL); + PROBE_SET_ACTION(softc, PROBE_INVALID); xpt_release_ccb(done_ccb); break; @@ -1283,8 +1283,9 @@ probedone(struct cam_periph *periph, union ccb *done_ccb) /* * Reallocate and retry to cover all luns */ - CAM_DEBUG_PATH_PRINT(CAM_DEBUG_PROBE, path, - ("reallocating REPORT_LUNS for %u luns\n", nlun)); + CAM_DEBUG(path, CAM_DEBUG_PROBE, + ("Probe: reallocating REPORT_LUNS for %u luns\n", + nlun)); free(lp, M_CAMXPT); path->target->rpl_size = (nlun << 3) + 8; xpt_release_ccb(done_ccb); @@ -1307,8 +1308,8 @@ probedone(struct cam_periph *periph, union ccb *done_ccb) lun_id_t lun; int idx; - CAM_DEBUG_PATH_PRINT(CAM_DEBUG_PROBE, path, - ("%u luns reported\n", nlun)); + CAM_DEBUG(path, CAM_DEBUG_PROBE, + ("Probe: %u lun(s) reported\n", nlun)); CAM_GET_SIMPLE_LUN(lp, 0, lun); /* @@ -1330,8 +1331,8 @@ probedone(struct cam_periph *periph, union ccb *done_ccb) lp->luns[idx].lundata, 8); memcpy(lp->luns[idx].lundata, tlun, 8); - CAM_DEBUG_PATH_PRINT(CAM_DEBUG_PROBE, - path, ("lun 0 in position %u\n", idx)); + CAM_DEBUG(path, CAM_DEBUG_PROBE, + ("lun 0 in position %u\n", idx)); } else { /* * There is no lun 0 in our list. Destroy @@ -1616,7 +1617,7 @@ probedone(struct cam_periph *periph, union ccb *done_ccb) && done_ccb->ccb_h.target_lun == 0 && (path->device->inq_data.flags & SID_Sync) != 0 && (path->device->flags & CAM_DEV_IN_DV) == 0) { - CAM_DEBUG(periph->path, CAM_DEBUG_INFO, + CAM_DEBUG(periph->path, CAM_DEBUG_PROBE, ("Begin Domain Validation\n")); path->device->flags |= CAM_DEV_IN_DV; xpt_release_ccb(done_ccb); @@ -1625,7 +1626,7 @@ probedone(struct cam_periph *periph, union ccb *done_ccb) return; } if (softc->action == PROBE_DV_EXIT) { - CAM_DEBUG(periph->path, CAM_DEBUG_INFO, + CAM_DEBUG(periph->path, CAM_DEBUG_PROBE, ("Leave Domain Validation\n")); } if (path->device->flags & CAM_DEV_UNCONFIGURED) { @@ -1641,6 +1642,7 @@ probedone(struct cam_periph *periph, union ccb *done_ccb) xpt_async(AC_FOUND_DEVICE, done_ccb->ccb_h.path, done_ccb); } + PROBE_SET_ACTION(softc, PROBE_DONE); xpt_release_ccb(done_ccb); break; case PROBE_INQUIRY_BASIC_DV1: @@ -1680,7 +1682,7 @@ probedone(struct cam_periph *periph, union ccb *done_ccb) return; } if (softc->action == PROBE_INQUIRY_BASIC_DV2) { - CAM_DEBUG(periph->path, CAM_DEBUG_INFO, + CAM_DEBUG(periph->path, CAM_DEBUG_PROBE, ("Leave Domain Validation Successfully\n")); } if (path->device->flags & CAM_DEV_UNCONFIGURED) { @@ -1696,20 +1698,19 @@ probedone(struct cam_periph *periph, union ccb *done_ccb) xpt_async(AC_FOUND_DEVICE, done_ccb->ccb_h.path, done_ccb); } + PROBE_SET_ACTION(softc, PROBE_DONE); xpt_release_ccb(done_ccb); break; } - case PROBE_INVALID: - CAM_DEBUG(done_ccb->ccb_h.path, CAM_DEBUG_INFO, - ("probedone: invalid action state\n")); default: - break; + panic("probedone: invalid action state 0x%x\n", softc->action); } done_ccb = (union ccb *)TAILQ_FIRST(&softc->request_ccbs); TAILQ_REMOVE(&softc->request_ccbs, &done_ccb->ccb_h, periph_links.tqe); done_ccb->ccb_h.status = CAM_REQ_CMP; xpt_done(done_ccb); if (TAILQ_FIRST(&softc->request_ccbs) == NULL) { + CAM_DEBUG(periph->path, CAM_DEBUG_PROBE, ("Probe completed\n")); cam_periph_invalidate(periph); cam_release_devq(periph->path, RELSIM_RELEASE_RUNLEVEL, 0, CAM_RL_XPT + 1, FALSE); @@ -1922,7 +1923,7 @@ scsi_scan_bus(struct cam_periph *periph, union ccb *request_ccb) xpt_done(request_ccb); return; } - CAM_DEBUG_PATH_PRINT(CAM_DEBUG_PROBE, request_ccb->ccb_h.path, + CAM_DEBUG(request_ccb->ccb_h.path, CAM_DEBUG_TRACE, ("SCAN start for %p\n", scan_info)); scan_info->request_ccb = request_ccb; scan_info->cpi = &work_ccb->cpi; @@ -2035,8 +2036,8 @@ scsi_scan_bus(struct cam_periph *periph, union ccb *request_ccb) CAM_GET_SIMPLE_LUN(target->luns, scan_info->lunindex[target_id], lun_id); next_target = 0; - CAM_DEBUG_PATH_PRINT(CAM_DEBUG_PROBE, - request_ccb->ccb_h.path, + CAM_DEBUG(request_ccb->ccb_h.path, + CAM_DEBUG_PROBE, ("next lun to try at index %u is %u\n", scan_info->lunindex[target_id], lun_id)); scan_info->lunindex[target_id]++; @@ -2143,8 +2144,8 @@ scsi_scan_bus(struct cam_periph *periph, union ccb *request_ccb) xpt_free_ccb(request_ccb); xpt_free_ccb((union ccb *)scan_info->cpi); request_ccb = scan_info->request_ccb; - CAM_DEBUG_PATH_PRINT(CAM_DEBUG_PROBE, - request_ccb->ccb_h.path, + CAM_DEBUG(request_ccb->ccb_h.path, + CAM_DEBUG_TRACE, ("SCAN done for %p\n", scan_info)); free(scan_info, M_CAMXPT); request_ccb->ccb_h.status = CAM_REQ_CMP; From 87b8d8bbc908904c629f898d77a871f8dd99ce71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dag-Erling=20Sm=C3=B8rgrav?= Date: Tue, 5 Jun 2012 12:34:08 +0000 Subject: [PATCH 010/340] Add mangled symbols for operator new / delete on 64-bit platforms. Reported by: decke@ MFC after: 1 week --- gnu/lib/libsupc++/Version.map | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/gnu/lib/libsupc++/Version.map b/gnu/lib/libsupc++/Version.map index dfe453a1c238..3d9cdf2634e0 100644 --- a/gnu/lib/libsupc++/Version.map +++ b/gnu/lib/libsupc++/Version.map @@ -126,11 +126,19 @@ CXXABI_1.3 { # __gnu_cxx::_verbose_terminate_handler() _ZN9__gnu_cxx27__verbose_terminate_handlerEv; - # new / delete operators + # operator new and new[], 32-bit size_t _Znaj; _ZnajRKSt9nothrow_t; _Znwj; _ZnwjRKSt9nothrow_t; + + # operator new and new[], 64-bit size_t + _Znam; + _ZnamRKSt9nothrow_t; + _Znwm; + _ZnwmRKSt9nothrow_t; + + # operator delete and delete[] _ZdaPv; _ZdaPvRKSt9nothrow_t; _ZdlPv; From 15cc25e9c03b6dc5fb95bd42457fa8efeabb4d87 Mon Sep 17 00:00:00 2001 From: "Bjoern A. Zeeb" Date: Tue, 5 Jun 2012 13:27:37 +0000 Subject: [PATCH 011/340] Plug two interface address refcount leaks in early error return cases in the ioctl path. Reported by: rpaulo Reviewed by: emax MFC after: 3 days --- sys/netinet6/in6.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/sys/netinet6/in6.c b/sys/netinet6/in6.c index 682d4d1560ec..2b432cfb90a8 100644 --- a/sys/netinet6/in6.c +++ b/sys/netinet6/in6.c @@ -1667,14 +1667,19 @@ in6_lifaddr_ioctl(struct socket *so, u_long cmd, caddr_t data, hostid = IFA_IN6(ifa); /* prefixlen must be <= 64. */ - if (64 < iflr->prefixlen) + if (64 < iflr->prefixlen) { + if (ifa != NULL) + ifa_free(ifa); return EINVAL; + } prefixlen = iflr->prefixlen; /* hostid part must be zero. */ sin6 = (struct sockaddr_in6 *)&iflr->addr; if (sin6->sin6_addr.s6_addr32[2] != 0 || sin6->sin6_addr.s6_addr32[3] != 0) { + if (ifa != NULL) + ifa_free(ifa); return EINVAL; } } else From a687c5ecc9b103006ca89b97e12bc1e338f11ad3 Mon Sep 17 00:00:00 2001 From: Warner Losh Date: Tue, 5 Jun 2012 14:19:59 +0000 Subject: [PATCH 012/340] Remove dead code. --- sys/arm/at91/at91rm92reg.h | 140 ------------------------------------- 1 file changed, 140 deletions(-) diff --git a/sys/arm/at91/at91rm92reg.h b/sys/arm/at91/at91rm92reg.h index 401d67ca3c06..2947a4771ccf 100644 --- a/sys/arm/at91/at91rm92reg.h +++ b/sys/arm/at91/at91rm92reg.h @@ -91,146 +91,6 @@ #define AT91RM92_SYS_BASE 0xffff000 #define AT91RM92_SYS_SIZE 0x1000 -#if 0 -/* Interrupt Controller */ -#define IC_SMR (0) /* Source mode register */ -#define IC_SVR (128) /* Source vector register */ -#define IC_IVR (256) /* IRQ vector register */ -#define IC_FVR (260) /* FIQ vector register */ -#define IC_ISR (264) /* Interrupt status register */ -#define IC_IPR (268) /* Interrupt pending register */ -#define IC_IMR (272) /* Interrupt status register */ -#define IC_CISR (276) /* Core interrupt status register */ -#define IC_IECR (288) /* Interrupt enable command register */ -#define IC_IDCR (292) /* Interrupt disable command register */ -#define IC_ICCR (296) /* Interrupt clear command register */ -#define IC_ISCR (300) /* Interrupt set command register */ -#define IC_EOICR (304) /* End of interrupt command register */ -#define IC_SPU (308) /* Spurious vector register */ -#define IC_DCR (312) /* Debug control register */ -#define IC_FFER (320) /* Fast forcing enable register */ -#define IC_FFDR (324) /* Fast forcing disable register */ -#define IC_FFSR (328) /* Fast forcing status register */ - - -#define PIOA_PER (0x400) /* PIO Enable Register */ -#define PIOA_PDR (0x400 + 4) /* PIO Disable Register */ -#define PIOA_PSR (0x400 + 8) /* PIO status register */ -#define PIOA_OER (0x400 + 16) /* Output enable register */ -#define PIOA_ODR (0x400 + 20) /* Output disable register */ -#define PIOA_OSR (0x400 + 24) /* Output status register */ -#define PIOA_IFER (0x400 + 32) /* Input filter enable register */ -#define PIOA_IFDR (0x400 + 36) /* Input filter disable register */ -#define PIOA_IFSR (0x400 + 40) /* Input filter status register */ -#define PIOA_SODR (0x400 + 48) /* Set output data register */ -#define PIOA_CODR (0x400 + 52) /* Clear output data register */ -#define PIOA_ODSR (0x400 + 56) /* Output data status register */ -#define PIOA_PDSR (0x400 + 60) /* Pin data status register */ -#define PIOA_IER (0x400 + 64) /* Interrupt enable register */ -#define PIOA_IDR (0x400 + 68) /* Interrupt disable register */ -#define PIOA_IMR (0x400 + 72) /* Interrupt mask register */ -#define PIOA_ISR (0x400 + 76) /* Interrupt status register */ -#define PIOA_MDER (0x400 + 80) /* Multi driver enable register */ -#define PIOA_MDDR (0x400 + 84) /* Multi driver disable register */ -#define PIOA_MDSR (0x400 + 88) /* Multi driver status register */ -#define PIOA_PPUDR (0x400 + 96) /* Pull-up disable register */ -#define PIOA_PPUER (0x400 + 100) /* Pull-up enable register */ -#define PIOA_PPUSR (0x400 + 104) /* Pad pull-up status register */ -#define PIOA_ASR (0x400 + 112) /* Select A register */ -#define PIOA_BSR (0x400 + 116) /* Select B register */ -#define PIOA_ABSR (0x400 + 120) /* AB Select status register */ -#define PIOA_OWER (0x400 + 160) /* Output Write enable register */ -#define PIOA_OWDR (0x400 + 164) /* Output write disable register */ -#define PIOA_OWSR (0x400 + 168) /* Output write status register */ -#define PIOB_PER (0x400) /* PIO Enable Register */ -#define PIOB_PDR (0x600 + 4) /* PIO Disable Register */ -#define PIOB_PSR (0x600 + 8) /* PIO status register */ -#define PIOB_OER (0x600 + 16) /* Output enable register */ -#define PIOB_ODR (0x600 + 20) /* Output disable register */ -#define PIOB_OSR (0x600 + 24) /* Output status register */ -#define PIOB_IFER (0x600 + 32) /* Input filter enable register */ -#define PIOB_IFDR (0x600 + 36) /* Input filter disable register */ -#define PIOB_IFSR (0x600 + 40) /* Input filter status register */ -#define PIOB_SODR (0x600 + 48) /* Set output data register */ -#define PIOB_CODR (0x600 + 52) /* Clear output data register */ -#define PIOB_ODSR (0x600 + 56) /* Output data status register */ -#define PIOB_PDSR (0x600 + 60) /* Pin data status register */ -#define PIOB_IER (0x600 + 64) /* Interrupt enable register */ -#define PIOB_IDR (0x600 + 68) /* Interrupt disable register */ -#define PIOB_IMR (0x600 + 72) /* Interrupt mask register */ -#define PIOB_ISR (0x600 + 76) /* Interrupt status register */ -#define PIOB_MDER (0x600 + 80) /* Multi driver enable register */ -#define PIOB_MDDR (0x600 + 84) /* Multi driver disable register */ -#define PIOB_MDSR (0x600 + 88) /* Multi driver status register */ -#define PIOB_PPUDR (0x600 + 96) /* Pull-up disable register */ -#define PIOB_PPUER (0x600 + 100) /* Pull-up enable register */ -#define PIOB_PPUSR (0x600 + 104) /* Pad pull-up status register */ -#define PIOB_ASR (0x600 + 112) /* Select A register */ -#define PIOB_BSR (0x600 + 116) /* Select B register */ -#define PIOB_ABSR (0x600 + 120) /* AB Select status register */ -#define PIOB_OWER (0x600 + 160) /* Output Write enable register */ -#define PIOB_OWDR (0x600 + 164) /* Output write disable register */ -#define PIOB_OWSR (0x600 + 168) /* Output write status register */ -#define PIOC_PER (0x800) /* PIO Enable Register */ -#define PIOC_PDR (0x800 + 4) /* PIO Disable Register */ -#define PIOC_PSR (0x800 + 8) /* PIO status register */ -#define PIOC_OER (0x800 + 16) /* Output enable register */ -#define PIOC_ODR (0x800 + 20) /* Output disable register */ -#define PIOC_OSR (0x800 + 24) /* Output status register */ -#define PIOC_IFER (0x800 + 32) /* Input filter enable register */ -#define PIOC_IFDR (0x800 + 36) /* Input filter disable register */ -#define PIOC_IFSR (0x800 + 40) /* Input filter status register */ -#define PIOC_SODR (0x800 + 48) /* Set output data register */ -#define PIOC_CODR (0x800 + 52) /* Clear output data register */ -#define PIOC_ODSR (0x800 + 56) /* Output data status register */ -#define PIOC_PDSR (0x800 + 60) /* Pin data status register */ -#define PIOC_IER (0x800 + 64) /* Interrupt enable register */ -#define PIOC_IDR (0x800 + 68) /* Interrupt disable register */ -#define PIOC_IMR (0x800 + 72) /* Interrupt mask register */ -#define PIOC_ISR (0x800 + 76) /* Interrupt status register */ -#define PIOC_MDER (0x800 + 80) /* Multi driver enable register */ -#define PIOC_MDDR (0x800 + 84) /* Multi driver disable register */ -#define PIOC_MDSR (0x800 + 88) /* Multi driver status register */ -#define PIOC_PPUDR (0x800 + 96) /* Pull-up disable register */ -#define PIOC_PPUER (0x800 + 100) /* Pull-up enable register */ -#define PIOC_PPUSR (0x800 + 104) /* Pad pull-up status register */ -#define PIOC_ASR (0x800 + 112) /* Select A register */ -#define PIOC_BSR (0x800 + 116) /* Select B register */ -#define PIOC_ABSR (0x800 + 120) /* AB Select status register */ -#define PIOC_OWER (0x800 + 160) /* Output Write enable register */ -#define PIOC_OWDR (0x800 + 164) /* Output write disable register */ -#define PIOC_OWSR (0x800 + 168) /* Output write status register */ -#define PIOD_PER (0xa00) /* PIO Enable Register */ -#define PIOD_PDR (0xa00 + 4) /* PIO Disable Register */ -#define PIOD_PSR (0xa00 + 8) /* PIO status register */ -#define PIOD_OER (0xa00 + 16) /* Output enable register */ -#define PIOD_ODR (0xa00 + 20) /* Output disable register */ -#define PIOD_OSR (0xa00 + 24) /* Output status register */ -#define PIOD_IFER (0xa00 + 32) /* Input filter enable register */ -#define PIOD_IFDR (0xa00 + 36) /* Input filter disable register */ -#define PIOD_IFSR (0xa00 + 40) /* Input filter status register */ -#define PIOD_SODR (0xa00 + 48) /* Set output data register */ -#define PIOD_CODR (0xa00 + 52) /* Clear output data register */ -#define PIOD_ODSR (0xa00 + 56) /* Output data status register */ -#define PIOD_PDSR (0xa00 + 60) /* Pin data status register */ -#define PIOD_IER (0xa00 + 64) /* Interrupt enable register */ -#define PIOD_IDR (0xa00 + 68) /* Interrupt disable register */ -#define PIOD_IMR (0xa00 + 72) /* Interrupt mask register */ -#define PIOD_ISR (0xa00 + 76) /* Interrupt status register */ -#define PIOD_MDER (0xa00 + 80) /* Multi driver enable register */ -#define PIOD_MDDR (0xa00 + 84) /* Multi driver disable register */ -#define PIOD_MDSR (0xa00 + 88) /* Multi driver status register */ -#define PIOD_PPUDR (0xa00 + 96) /* Pull-up disable register */ -#define PIOD_PPUER (0xa00 + 100) /* Pull-up enable register */ -#define PIOD_PPUSR (0xa00 + 104) /* Pad pull-up status register */ -#define PIOD_ASR (0xa00 + 112) /* Select A register */ -#define PIOD_BSR (0xa00 + 116) /* Select B register */ -#define PIOD_ABSR (0xa00 + 120) /* AB Select status register */ -#define PIOD_OWER (0xa00 + 160) /* Output Write enable register */ -#define PIOD_OWDR (0xa00 + 164) /* Output write disable register */ -#define PIOD_OWSR (0xa00 + 168) /* Output write status register */ - -#endif /* * PIO */ From 5f5a50728c89942f4c223cc8856ae1f978549240 Mon Sep 17 00:00:00 2001 From: "Andrey A. Chernov" Date: Tue, 5 Jun 2012 16:16:33 +0000 Subject: [PATCH 013/340] 1) Although unpublished version of standard http://austingroupbugs.net/view.php?id=385#c713 (Resolved state) recommend this way for the current standard (called "earlier" in the text) "However, earlier versions of this standard did not require this, and the same example had to be written as: // buf was obtained by malloc(buflen) ret = write(fd, buf, buflen); if (ret < 0) { int save = errno; free(buf); errno = save; return ret; } " from feedback I have for previous commit it seems that many people prefer to avoid mass code change needed for current standard compliance and prefer to track unpublished standard instead, which requires now that free() itself must save errno, not its usage code. So, I back out "save errno across free()" part of previous commit, and will fill PR for changing free() isntead. 2) Remove now unused serrno. MFC after: 1 week --- lib/libc/stdlib/realpath.c | 23 ++++++----------------- 1 file changed, 6 insertions(+), 17 deletions(-) diff --git a/lib/libc/stdlib/realpath.c b/lib/libc/stdlib/realpath.c index 185dbb6c4c55..aded9b244e78 100644 --- a/lib/libc/stdlib/realpath.c +++ b/lib/libc/stdlib/realpath.c @@ -54,7 +54,7 @@ realpath(const char * __restrict path, char * __restrict resolved) char *p, *q, *s; size_t left_len, resolved_len; unsigned symlinks; - int m, serrno, slen; + int m, slen; char left[PATH_MAX], next_token[PATH_MAX], symlink[PATH_MAX]; if (path == NULL) { @@ -82,11 +82,9 @@ realpath(const char * __restrict path, char * __restrict resolved) left_len = strlcpy(left, path + 1, sizeof(left)); } else { if (getcwd(resolved, PATH_MAX) == NULL) { - if (m) { - serrno = errno; + if (m) free(resolved); - errno = serrno; - } else { + else { resolved[0] = '.'; resolved[1] = '\0'; } @@ -144,11 +142,8 @@ realpath(const char * __restrict path, char * __restrict resolved) * occurence to not implement lookahead. */ if (lstat(resolved, &sb) != 0) { - if (m) { - serrno = errno; + if (m) free(resolved); - errno = serrno; - } return (NULL); } if (!S_ISDIR(sb.st_mode)) { @@ -188,11 +183,8 @@ realpath(const char * __restrict path, char * __restrict resolved) if (lstat(resolved, &sb) != 0) { if (errno != ENOENT || p != NULL) errno = ENOTDIR; - if (m) { - serrno = errno; + if (m) free(resolved); - errno = serrno; - } return (NULL); } if (S_ISLNK(sb.st_mode)) { @@ -204,11 +196,8 @@ realpath(const char * __restrict path, char * __restrict resolved) } slen = readlink(resolved, symlink, sizeof(symlink) - 1); if (slen < 0) { - if (m) { - serrno = errno; + if (m) free(resolved); - errno = serrno; - } return (NULL); } symlink[slen] = '\0'; From a839e3327845f44621c32788ebcc86bf4e3989eb Mon Sep 17 00:00:00 2001 From: Alexander Motin Date: Tue, 5 Jun 2012 16:46:34 +0000 Subject: [PATCH 014/340] Add missing newlines into XML output. MFC after: 3 days Sponsored by: iXsystems, Inc. --- sys/geom/multipath/g_multipath.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/sys/geom/multipath/g_multipath.c b/sys/geom/multipath/g_multipath.c index b26787ba29d5..913dad775fe5 100644 --- a/sys/geom/multipath/g_multipath.c +++ b/sys/geom/multipath/g_multipath.c @@ -1314,7 +1314,7 @@ g_multipath_dumpconf(struct sbuf *sb, const char *indent, struct g_geom *gp, if (sc == NULL) return; if (cp != NULL) { - sbuf_printf(sb, "%s%s", indent, + sbuf_printf(sb, "%s%s\n", indent, (cp->index & MP_NEW) ? "NEW" : (cp->index & MP_LOST) ? "LOST" : (cp->index & MP_FAIL) ? "FAIL" : @@ -1323,17 +1323,17 @@ g_multipath_dumpconf(struct sbuf *sb, const char *indent, struct g_geom *gp, sc->sc_active_active == 2 ? "READ" : "PASSIVE"); } else { good = g_multipath_good(gp); - sbuf_printf(sb, "%s%s", indent, + sbuf_printf(sb, "%s%s\n", indent, good == 0 ? "BROKEN" : (good != sc->sc_ndisks || sc->sc_ndisks == 1) ? "DEGRADED" : "OPTIMAL"); } if (cp == NULL && pp == NULL) { - sbuf_printf(sb, "%s%s", indent, sc->sc_uuid); - sbuf_printf(sb, "%sActive/%s", indent, + sbuf_printf(sb, "%s%s\n", indent, sc->sc_uuid); + sbuf_printf(sb, "%sActive/%s\n", indent, sc->sc_active_active == 2 ? "Read" : sc->sc_active_active == 1 ? "Active" : "Passive"); - sbuf_printf(sb, "%s%s", indent, + sbuf_printf(sb, "%s%s\n", indent, sc->sc_uuid[0] == 0 ? "MANUAL" : "AUTOMATIC"); } } From 30a39288e41042174d009919ac210bce19218ee5 Mon Sep 17 00:00:00 2001 From: "David E. O'Brien" Date: Tue, 5 Jun 2012 17:36:28 +0000 Subject: [PATCH 015/340] Correct examples to the latest version I had. --- share/man/man4/filemon.4 | 7 ++++--- tools/regression/filemon/filemontest.c | 17 +++++++++++------ 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/share/man/man4/filemon.4 b/share/man/man4/filemon.4 index e8b24bfd99e7..9105eca2bde4 100644 --- a/share/man/man4/filemon.4 +++ b/share/man/man4/filemon.4 @@ -127,18 +127,19 @@ open_filemon(void) O_CREAT | O_WRONLY | O_TRUNC, DEFFILEMODE)) == -1) err(1, "open(filemon.out)"); - if (ioctl(fm_fd, FILEMON_SET_FD, &fm_log) < 0) + if (ioctl(fm_fd, FILEMON_SET_FD, &fm_log) == -1) err(1, "Cannot set filemon log file descriptor"); /* Set up these two fd's to close on exec. */ (void)fcntl(fm_fd, F_SETFD, FD_CLOEXEC); (void)fcntl(fm_log, F_SETFD, FD_CLOEXEC); if ((child = fork()) == 0) { + child = getpid(); + if (ioctl(fm_fd, FILEMON_SET_PID, &child) == -1) + err(1, "Cannot set filemon PID"); /* Do something here. */ return 0; } else { - if (ioctl(fm_fd, FILEMON_SET_PID, &child) < 0) - err(1, "Cannot set filemon PID"); wait(&child); close(fm_fd); } diff --git a/tools/regression/filemon/filemontest.c b/tools/regression/filemon/filemontest.c index 7962149837c6..6f0254746b55 100644 --- a/tools/regression/filemon/filemontest.c +++ b/tools/regression/filemon/filemontest.c @@ -54,22 +54,27 @@ main(void) { if ((fm_log = mkstemp(log_name)) == -1) err(1, "mkstemp(%s)", log_name); - if (ioctl(fm_fd, FILEMON_SET_FD, &fm_log) < 0) + if (ioctl(fm_fd, FILEMON_SET_FD, &fm_log) == -1) err(1, "Cannot set filemon log file descriptor"); /* Set up these two fd's to close on exec. */ (void)fcntl(fm_fd, F_SETFD, FD_CLOEXEC); (void)fcntl(fm_log, F_SETFD, FD_CLOEXEC); - if ((child = fork()) == 0) { + switch (child = fork()) { + case 0: + child = getpid(); + if (ioctl(fm_fd, FILEMON_SET_PID, &child) == -1) + err(1, "Cannot set filemon PID to %d", child); system("./test_script.sh"); - return 0; - } else { - if (ioctl(fm_fd, FILEMON_SET_PID, &child) < 0) - err(1, "Cannot set filemon PID"); + break; + case -1: + err(1, "Cannot fork"); + default: wait(&child); close(fm_fd); // printf("Results in %s\n", log_name); + break; } return 0; } From 98663aa0e4be31a63d88916c4b874b48ef0c2f62 Mon Sep 17 00:00:00 2001 From: "David E. O'Brien" Date: Tue, 5 Jun 2012 17:44:54 +0000 Subject: [PATCH 016/340] Only build filemon(4) on x86. --- sys/modules/Makefile | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/sys/modules/Makefile b/sys/modules/Makefile index 6f9a9e244385..0e6609194bc5 100644 --- a/sys/modules/Makefile +++ b/sys/modules/Makefile @@ -5,7 +5,8 @@ # Modules that include binary-only blobs of microcode should be selectable by # MK_SOURCELESS_UCODE option (see below). -SUBDIR= ${_3dfx} \ +SUBDIR= \ + ${_3dfx} \ ${_3dfx_linux} \ ${_aac} \ accf_data \ @@ -358,9 +359,12 @@ SUBDIR= ${_3dfx} \ ${_zfs} \ zlib \ +.if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64" +_filemon= filemon +.endif + .if ${MACHINE_CPUARCH} != "powerpc" && ${MACHINE_CPUARCH} != "arm" && \ ${MACHINE_CPUARCH} != "mips" -_filemon= filemon _syscons= syscons _vpo= vpo .endif From d5064cc2f60e69472f37d7dcc8397d15c1ade9b4 Mon Sep 17 00:00:00 2001 From: Joel Dahl Date: Tue, 5 Jun 2012 17:46:50 +0000 Subject: [PATCH 017/340] Various mdoc fixes. --- share/man/man4/filemon.4 | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/share/man/man4/filemon.4 b/share/man/man4/filemon.4 index 9105eca2bde4..6821f224ada6 100644 --- a/share/man/man4/filemon.4 +++ b/share/man/man4/filemon.4 @@ -93,20 +93,25 @@ R and one for W. .Sh IOCTLS -User mode programs communicate with the filemon driver through a +User mode programs communicate with the +.Nm filemon +driver through a number of ioctls which are described below. Each takes a single argument. .Bl -tag -width FILEMON_SET_PID .It Dv FILEMON_SET_FD Write the internal tracing buffer to the supplied open file descriptor. -.It Dv FILEMON_SET_PID . +.It Dv FILEMON_SET_PID Child process ID to trace. .El -.Pp .Sh RETURN VALUES The ioctl returns zero on success and non-zero on failure. +.Sh FILES +.Bl -tag -width /dev/zero +.It Pa /dev/filemon +.El .Sh EXAMPLES -.Bd -literal -offset indent +.Bd -literal #include #include #include @@ -152,10 +157,6 @@ Creates a file named and configures the .Nm device to write the filemon buffer contents to it. -.Sh FILES -.Bl -tag -width /dev/zero -.It Pa /dev/filemon -.El .Sh SEE ALSO .Xr dtrace 1 , .Xr ktrace 1 , From 568dbd8b457fef2dfb1ad1425a696a9baa674f64 Mon Sep 17 00:00:00 2001 From: "David E. O'Brien" Date: Tue, 5 Jun 2012 17:49:11 +0000 Subject: [PATCH 018/340] RAID is an acronym. --- share/man/man4/mpt.4 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/share/man/man4/mpt.4 b/share/man/man4/mpt.4 index 4983759fb507..9d62d17c63de 100644 --- a/share/man/man4/mpt.4 +++ b/share/man/man4/mpt.4 @@ -124,15 +124,15 @@ Dell PowerEdge 1750 thru 2850 IBM eServer xSeries 335 .El .Pp -These systems also contain Integrated Raid Mirroring and Integrated -Raid Mirroring Enhanced which this driver also supports. +These systems also contain Integrated RAID Mirroring and Integrated +RAID Mirroring Enhanced which this driver also supports. .Pp The .Tn SAS controller chips are also present on many new AMD/Opteron based systems, like the Sun 4100. Note that this controller can drive both SAS and SATA -drives or a mix of them at the same time. The Integrated Raid Mirroring +drives or a mix of them at the same time. The Integrated RAID Mirroring available for these controllers is poorly supported at best. .Pp The From 3fa1fde3b6ffa3a66b457276bc936110c19cc9fc Mon Sep 17 00:00:00 2001 From: Joel Dahl Date: Tue, 5 Jun 2012 17:58:47 +0000 Subject: [PATCH 019/340] Remove end of line whitespace. --- share/man/man4/bce.4 | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/share/man/man4/bce.4 b/share/man/man4/bce.4 index 869b1dabaa99..28fdf6aeffad 100644 --- a/share/man/man4/bce.4 +++ b/share/man/man4/bce.4 @@ -213,57 +213,57 @@ Enable/Disable strict RX frame size checking (default 0). Enable/Disable frame header/payload splitting (default 1). .It Va hw.bce.rx_pages Set the number of memory pages assigned to recieve packets by the driver. -Due to alignment issues, this value can only be of the set +Due to alignment issues, this value can only be of the set 1, 2, 4 or 8 (default 2). .It Va hw.bce.tx_pages -Set the number of memory pages assigned to transmit packets +Set the number of memory pages assigned to transmit packets by the driver. -Due to alignment issues, this value can only be of the set +Due to alignment issues, this value can only be of the set 1, 2, 4 or 8 (default 2). .It Va hw.bce.rx_ticks -Time in microsecond ticks to wait before generating a status +Time in microsecond ticks to wait before generating a status block updates due to RX processing activity. Values from 0-100 are valid. A value of 0 disables this status block update. -Cannot be set to 0 if hw.bce.rx_quick_cons_trip is also 0 +Cannot be set to 0 if hw.bce.rx_quick_cons_trip is also 0 (default 18). .It Va hw.bce.rx_ticks_int -Time in microsecond ticks to wait during RX interrupt +Time in microsecond ticks to wait during RX interrupt processing before generating a status block update. Values from 0-100 are valid. Valid values are in the range from 0-100. A value of 0 disables this status block update (default 18). .It Va hw.bce.rx_quick_cons_trip -Number of RX Quick BD Chain entries that must be completed +Number of RX Quick BD Chain entries that must be completed before a status block is generated. Values from 0-256 are valid. A value of 0 disables this status block update. Cannot be set to 0 if hw.bce.rx_ticks is also 0 (default 6). .It Va hw.bce.rx_quick_cons_trip_int -Number of RX quick BD entries that must be completed before +Number of RX quick BD entries that must be completed before a status block is generated duing interrupt processing. Values from 0-256 are valid. A value of 0 disables this status block update (default 6). .It Va hw.bce.tx_ticks -Time in microsecond ticks to wait before a status block +Time in microsecond ticks to wait before a status block update is generated due to TX activitiy. Values from 0-100 are valid. A value of 0 disables this status block update. -Cannot be set to 0 if hw.bce.tx_quick_cons_trip is also 0 +Cannot be set to 0 if hw.bce.tx_quick_cons_trip is also 0 (default 80). .It Va hw.bce.tx_ticks_int -Time in microsecond ticks to wait in interrupt processing +Time in microsecond ticks to wait in interrupt processing before a status block update is generated due to TX activity Values from 0-100 are valid. A value of 0 disables this status block update (default 80). .It Va hw.bce.tx_cons_trip -How many TX Quick BD Chain entries that must be completed +How many TX Quick BD Chain entries that must be completed before a status block is generated. Values from 0-100 are valid. A value of 0 disables this status block update. Cannot be set to 0 if hw.bce.tx_ticks is also 0 (default 20). .It Va hw.bce.tx_cons_trip_int -How many TX Quick BD Chain entries that must be completed +How many TX Quick BD Chain entries that must be completed before a status block is generated during an interrupt. Values from 0-100 are valid. A value of 0 disables this status block update (default 20). From 19769ec2c70438feb1856684c282616e9507fa77 Mon Sep 17 00:00:00 2001 From: Joel Dahl Date: Tue, 5 Jun 2012 18:07:20 +0000 Subject: [PATCH 020/340] Minor spelling fixes. --- sbin/camcontrol/camcontrol.8 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sbin/camcontrol/camcontrol.8 b/sbin/camcontrol/camcontrol.8 index a79e9b1c0535..bf728c6e3e2c 100644 --- a/sbin/camcontrol/camcontrol.8 +++ b/sbin/camcontrol/camcontrol.8 @@ -738,7 +738,7 @@ Set the partial pathway timeout value, in microseconds. See the .Tn ANSI .Tn SAS -Protcol Layer (SPL) +Protocol Layer (SPL) specification for more information on this field. .It Fl a Ar enable|disable Enable or disable SATA slumber phy power conditions. @@ -1109,7 +1109,7 @@ Do not ask for confirmation. Run in simulation mode. Packet sizes that will be sent are shown, but no actual packet is sent to the device. -No confimation is asked in simulation mode. +No confirmation is asked in simulation mode. .It Fl v Besides showing sense information in case of a failure, the verbose option causes From a4dec862ed5e1a08c3254b3468cd6349a11090e7 Mon Sep 17 00:00:00 2001 From: Joel Dahl Date: Tue, 5 Jun 2012 18:19:52 +0000 Subject: [PATCH 021/340] Remove repeated words. --- lib/libelf/elf_begin.3 | 2 +- lib/libgssapi/gss_unwrap.3 | 2 +- lib/libgssapi/gss_wrap.3 | 2 +- sbin/ifconfig/ifconfig.8 | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/libelf/elf_begin.3 b/lib/libelf/elf_begin.3 index ea68c26c6f88..6d9371a9a6f3 100644 --- a/lib/libelf/elf_begin.3 +++ b/lib/libelf/elf_begin.3 @@ -252,7 +252,7 @@ was created. .It Bq Er ELF_E_ARGUMENT An .Xr ar 1 -archive was opened with with +archive was opened with .Ar cmd set to .Dv ELF_C_RDWR . diff --git a/lib/libgssapi/gss_unwrap.3 b/lib/libgssapi/gss_unwrap.3 index 94537a496508..cc241f89ffdd 100644 --- a/lib/libgssapi/gss_unwrap.3 +++ b/lib/libgssapi/gss_unwrap.3 @@ -100,7 +100,7 @@ Protected message. .It output_message_buffer Buffer to receive unwrapped message. Storage associated with this buffer must -be freed by the application after use use +be freed by the application after use with a call to .Xr gss_release_buffer 3 . .It conf_state diff --git a/lib/libgssapi/gss_wrap.3 b/lib/libgssapi/gss_wrap.3 index 5732dd24cf83..5bf9cc26ba59 100644 --- a/lib/libgssapi/gss_wrap.3 +++ b/lib/libgssapi/gss_wrap.3 @@ -118,7 +118,7 @@ Integrity and data origin services only has been applied. .It output_message_buffer Buffer to receive protected message. Storage associated with this buffer must -be freed by the application after use use +be freed by the application after use with a call to .Xr gss_release_buffer 3 . .El diff --git a/sbin/ifconfig/ifconfig.8 b/sbin/ifconfig/ifconfig.8 index 975605521513..44f6c8491e02 100644 --- a/sbin/ifconfig/ifconfig.8 +++ b/sbin/ifconfig/ifconfig.8 @@ -2051,7 +2051,7 @@ Send broadcast path requests every two seconds. Nodes on the mesh without a path to this root mesh station with try to discover a path to us. .It Cm PROACTIVE -Send broadcast path requests every two seconds and every node must reply with +Send broadcast path requests every two seconds and every node must reply with a path reply even if it already has a path to this root mesh station. .It Cm RANN Send broadcast root announcement (RANN) frames. From cd1fb2e0950eabbefbaee2feffa505b2bf81e076 Mon Sep 17 00:00:00 2001 From: Maksim Yevmenkin Date: Tue, 5 Jun 2012 18:48:02 +0000 Subject: [PATCH 022/340] Before it gets lost in the noise. Put a bandaid to prevent ixgbe(4) from completely locking up the system under high load. Our platform has a few CPU cores and a single active ixgbe(4) port with 4 queues. Under high enough traffic load, at about 7.5GBs and 700,000 packets/sec (outbound), the entire system would deadlock. What we found was that each CPU was in an endless loop on a different ix taskqueue thread. The OACTIVE flag had gotten set on each queue, and the ixgbe_handle_queue() function was continuously rescheduling itself via the taskqueue_enqueue. Since all CPUs were busy with their taskqueue threads, the ixgbe_local_timer() function couldn't run to clear the OACTIVE flag. Submitted by: scottl MFC after: 1 week --- sys/dev/ixgbe/ixgbe.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/dev/ixgbe/ixgbe.c b/sys/dev/ixgbe/ixgbe.c index 091c3058b7bc..37a20adba8de 100644 --- a/sys/dev/ixgbe/ixgbe.c +++ b/sys/dev/ixgbe/ixgbe.c @@ -1368,7 +1368,7 @@ ixgbe_handle_que(void *context, int pending) ixgbe_start_locked(txr, ifp); #endif IXGBE_TX_UNLOCK(txr); - if (more || (ifp->if_drv_flags & IFF_DRV_OACTIVE)) { + if (more) { taskqueue_enqueue(que->tq, &que->que_task); return; } From c5069a475628baf17b1686cde570439bd80e2526 Mon Sep 17 00:00:00 2001 From: "George V. Neville-Neil" Date: Tue, 5 Jun 2012 18:58:05 +0000 Subject: [PATCH 023/340] Add DTrace's io.d, which handles tranlsations for file, buffer and device info structures as well as the fds[] array. This is a raw version of the file, unmodified, to be used as a baseline. --- cddl/lib/libdtrace/io.d | 220 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 220 insertions(+) create mode 100644 cddl/lib/libdtrace/io.d diff --git a/cddl/lib/libdtrace/io.d b/cddl/lib/libdtrace/io.d new file mode 100644 index 000000000000..0bd5a063eb7e --- /dev/null +++ b/cddl/lib/libdtrace/io.d @@ -0,0 +1,220 @@ +/* + * CDDL HEADER START + * + * The contents of this file are subject to the terms of the + * Common Development and Distribution License (the "License"). + * You may not use this file except in compliance with the License. + * + * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE + * or http://www.opensolaris.org/os/licensing. + * See the License for the specific language governing permissions + * and limitations under the License. + * + * When distributing Covered Code, include this CDDL HEADER in each + * file and include the License file at usr/src/OPENSOLARIS.LICENSE. + * If applicable, add the following below this CDDL HEADER, with the + * fields enclosed by brackets "[]" replaced with your own identifying + * information: Portions Copyright [yyyy] [name of copyright owner] + * + * CDDL HEADER END + * + * $FreeBSD$ + */ +/* + * Copyright 2006 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. + */ + +#pragma ident "%Z%%M% %I% %E% SMI" + +#pragma D depends_on module unix +#pragma D depends_on provider io + +inline int B_BUSY = B_BUSY; +#pragma D binding "1.0" B_BUSY +inline int B_DONE = 0x00000200; +#pragma D binding "1.0" B_DONE +inline int B_ERROR = B_ERROR; +#pragma D binding "1.0" B_ERROR +inline int B_PAGEIO = B_PAGEIO; +#pragma D binding "1.0" B_PAGEIO +inline int B_PHYS = B_PHYS; +#pragma D binding "1.0" B_PHYS +inline int B_READ = B_READ; +#pragma D binding "1.0" B_READ +inline int B_WRITE = B_WRITE; +#pragma D binding "1.0" B_WRITE +inline int B_ASYNC = 0x00000004; +#pragma D binding "1.0" B_ASYNC + +typedef struct bufinfo { + int b_flags; /* buffer status */ + size_t b_bcount; /* number of bytes */ + caddr_t b_addr; /* buffer address */ + uint64_t b_lblkno; /* block # on device */ + uint64_t b_blkno; /* expanded block # on device */ + size_t b_resid; /* # of bytes not transferred */ + size_t b_bufsize; /* size of allocated buffer */ + caddr_t b_iodone; /* I/O completion routine */ + int b_error; /* expanded error field */ + dev_t b_edev; /* extended device */ +} bufinfo_t; + +#pragma D binding "1.0" translator +translator bufinfo_t < struct buf *B > { + b_flags = B->b_flags; + b_addr = B->b_un.b_addr; + b_bcount = B->b_bcount; + b_lblkno = B->_b_blkno._f; + b_blkno = sizeof (long) == 8 ? B->_b_blkno._f : B->_b_blkno._p._l; + b_resid = B->b_resid; + b_bufsize = B->b_bufsize; + b_iodone = (caddr_t)B->b_iodone; + b_error = B->b_error; + b_edev = B->b_edev; +}; + +typedef struct devinfo { + int dev_major; /* major number */ + int dev_minor; /* minor number */ + int dev_instance; /* instance number */ + string dev_name; /* name of device */ + string dev_statname; /* name of device + instance/minor */ + string dev_pathname; /* pathname of device */ +} devinfo_t; + +#pragma D binding "1.0" translator +translator devinfo_t < struct buf *B > { + dev_major = B->b_dip != NULL ? getmajor(B->b_edev) : + getmajor(B->b_file->v_vfsp->vfs_dev); + dev_minor = B->b_dip != NULL ? getminor(B->b_edev) : + getminor(B->b_file->v_vfsp->vfs_dev); + dev_instance = B->b_dip == NULL ? + getminor(B->b_file->v_vfsp->vfs_dev) : + ((struct dev_info *)B->b_dip)->devi_instance; + dev_name = B->b_dip == NULL ? "nfs" : + stringof(`devnamesp[getmajor(B->b_edev)].dn_name); + dev_statname = strjoin(B->b_dip == NULL ? "nfs" : + stringof(`devnamesp[getmajor(B->b_edev)].dn_name), + lltostr(B->b_dip == NULL ? getminor(B->b_file->v_vfsp->vfs_dev) : + ((struct dev_info *)B->b_dip)->devi_instance == 0 && + ((struct dev_info *)B->b_dip)->devi_parent != NULL && + ((struct dev_info *)B->b_dip)->devi_parent->devi_node_name == + "pseudo" ? getminor(B->b_edev) : + ((struct dev_info *)B->b_dip)->devi_instance)); + dev_pathname = B->b_dip == NULL ? "" : + ddi_pathname(B->b_dip, getminor(B->b_edev)); +}; + +typedef struct fileinfo { + string fi_name; /* name (basename of fi_pathname) */ + string fi_dirname; /* directory (dirname of fi_pathname) */ + string fi_pathname; /* full pathname */ + offset_t fi_offset; /* offset within file */ + string fi_fs; /* filesystem */ + string fi_mount; /* mount point of file system */ + int fi_oflags; /* open(2) flags for file descriptor */ +} fileinfo_t; + +#pragma D binding "1.0" translator +translator fileinfo_t < struct buf *B > { + fi_name = B->b_file == NULL ? "" : + B->b_file->v_path == NULL ? "" : + basename(cleanpath(B->b_file->v_path)); + fi_dirname = B->b_file == NULL ? "" : + B->b_file->v_path == NULL ? "" : + dirname(cleanpath(B->b_file->v_path)); + fi_pathname = B->b_file == NULL ? "" : + B->b_file->v_path == NULL ? "" : + cleanpath(B->b_file->v_path); + fi_offset = B->b_offset; + fi_fs = B->b_file == NULL ? "" : + stringof(B->b_file->v_op->vnop_name); + fi_mount = B->b_file == NULL ? "" : + B->b_file->v_vfsp->vfs_vnodecovered == NULL ? "/" : + B->b_file->v_vfsp->vfs_vnodecovered->v_path == NULL ? "" : + cleanpath(B->b_file->v_vfsp->vfs_vnodecovered->v_path); + fi_oflags = 0; +}; + +/* + * The following inline constants can be used to examine fi_oflags when using + * the fds[] array or a translated fileinfo_t. Note that the various open + * flags behave as a bit-field *except* for O_RDONLY, O_WRONLY, and O_RDWR. + * To test the open mode, you write code similar to that used with the fcntl(2) + * F_GET[X]FL command, such as: if ((fi_oflags & O_ACCMODE) == O_WRONLY). + */ +inline int O_ACCMODE = 0x0003; +#pragma D binding "1.1" O_ACCMODE + +inline int O_RDONLY = 0x0000; +#pragma D binding "1.1" O_RDONLY +inline int O_WRONLY = 0x0001; +#pragma D binding "1.1" O_WRONLY +inline int O_RDWR = 0x0002; +#pragma D binding "1.1" O_RDWR + +inline int O_APPEND = 0x0008; +#pragma D binding "1.1" O_APPEND +inline int O_CREAT = 0x0200; +#pragma D binding "1.1" O_CREAT +inline int O_DSYNC = O_DSYNC; +#pragma D binding "1.1" O_DSYNC +inline int O_EXCL = 0x0800; +#pragma D binding "1.1" O_EXCL +inline int O_LARGEFILE = O_LARGEFILE; +#pragma D binding "1.1" O_LARGEFILE +inline int O_NOCTTY = 0x8000; +#pragma D binding "1.1" O_NOCTTY +inline int O_NONBLOCK = 0x0004; +#pragma D binding "1.1" O_NONBLOCK +inline int O_NDELAY = 0x0004; +#pragma D binding "1.1" O_NDELAY +inline int O_RSYNC = O_RSYNC; +#pragma D binding "1.1" O_RSYNC +inline int O_SYNC = 0x0080; +#pragma D binding "1.1" O_SYNC +inline int O_TRUNC = 0x0400; +#pragma D binding "1.1" O_TRUNC +inline int O_XATTR = O_XATTR; +#pragma D binding "1.1" O_XATTR + +#pragma D binding "1.1" translator +translator fileinfo_t < struct file *F > { + fi_name = F == NULL ? "" : + F->f_vnode->v_path == NULL ? "" : + basename(cleanpath(F->f_vnode->v_path)); + fi_dirname = F == NULL ? "" : + F->f_vnode->v_path == NULL ? "" : + dirname(cleanpath(F->f_vnode->v_path)); + fi_pathname = F == NULL ? "" : + F->f_vnode->v_path == NULL ? "" : + cleanpath(F->f_vnode->v_path); + fi_offset = F == NULL ? 0 : F->f_offset; + fi_fs = F == NULL ? "" : stringof(F->f_vnode->v_op->vnop_name); + fi_mount = F == NULL ? "" : + F->f_vnode->v_vfsp->vfs_vnodecovered == NULL ? "/" : + F->f_vnode->v_vfsp->vfs_vnodecovered->v_path == NULL ? "" : + cleanpath(F->f_vnode->v_vfsp->vfs_vnodecovered->v_path); + fi_oflags = F == NULL ? 0 : F->f_flag + (int)FOPEN; +}; + +inline fileinfo_t fds[int fd] = xlate ( + fd >= 0 && fd < curthread->t_procp->p_user.u_finfo.fi_nfiles ? + curthread->t_procp->p_user.u_finfo.fi_list[fd].uf_file : NULL); + +#pragma D attributes Stable/Stable/Common fds +#pragma D binding "1.1" fds + +#pragma D binding "1.2" translator +translator fileinfo_t < struct vnode *V > { + fi_name = V->v_path == NULL ? "" : + basename(cleanpath(V->v_path)); + fi_dirname = V->v_path == NULL ? "" : + dirname(cleanpath(V->v_path)); + fi_pathname = V->v_path == NULL ? "" : cleanpath(V->v_path); + fi_fs = stringof(V->v_op->vnop_name); + fi_mount = V->v_vfsp->vfs_vnodecovered == NULL ? "/" : + V->v_vfsp->vfs_vnodecovered->v_path == NULL ? "" : + cleanpath(V->v_vfsp->vfs_vnodecovered->v_path); +}; From 9b1ae0815414ee59692bab67f726012900b3e143 Mon Sep 17 00:00:00 2001 From: Ed Schouten Date: Tue, 5 Jun 2012 19:42:57 +0000 Subject: [PATCH 024/340] Fix a small typo. Fireware -> firmware. MFC after: 2 weeks --- include/fmtmsg.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/fmtmsg.h b/include/fmtmsg.h index 32f0970fb94e..307c844c388b 100644 --- a/include/fmtmsg.h +++ b/include/fmtmsg.h @@ -32,7 +32,7 @@ /* Source of condition is... */ #define MM_HARD 0x0001 /* ...hardware. */ #define MM_SOFT 0x0002 /* ...software. */ -#define MM_FIRM 0x0004 /* ...fireware. */ +#define MM_FIRM 0x0004 /* ...firmware. */ /* Condition detected by... */ #define MM_APPL 0x0010 /* ...application. */ From b170d8208a861e63219e7d0b8aaeca61758d89a9 Mon Sep 17 00:00:00 2001 From: Gleb Smirnoff Date: Tue, 5 Jun 2012 20:08:59 +0000 Subject: [PATCH 025/340] Don't crash trying to load symbols from striped file. PR: bin/167361 Submitted by: Slawa Olhovchenkov Silence from: jkoshy --- usr.sbin/pmcstat/pmcstat_log.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/usr.sbin/pmcstat/pmcstat_log.c b/usr.sbin/pmcstat/pmcstat_log.c index 2ac52da58f8a..b7f5a233f397 100644 --- a/usr.sbin/pmcstat/pmcstat_log.c +++ b/usr.sbin/pmcstat/pmcstat_log.c @@ -564,6 +564,8 @@ pmcstat_image_add_symbols(struct pmcstat_image *image, Elf *e, } image->pi_symcount += newsyms; + if (image->pi_symcount == 0) + return; assert(newsyms <= nfuncsyms); From db852c28f75c62c462962ebbf7f6ec3644c8f79f Mon Sep 17 00:00:00 2001 From: "David E. O'Brien" Date: Tue, 5 Jun 2012 20:32:38 +0000 Subject: [PATCH 026/340] mdoc police. Submitted by: ru Much thanks to: ru --- share/man/man4/filemon.4 | 52 +++++++++++++++++++++++----------------- 1 file changed, 30 insertions(+), 22 deletions(-) diff --git a/share/man/man4/filemon.4 b/share/man/man4/filemon.4 index 6821f224ada6..801f4dfb5998 100644 --- a/share/man/man4/filemon.4 +++ b/share/man/man4/filemon.4 @@ -50,64 +50,70 @@ responds to two calls. .Pp System calls are denoted using the following single letters: +.Pp .Bl -tag -width indent -compact -.It Dq Li C +.It Ql C .Xr chdir 2 -.It Dq Li D +.It Ql D .Xr unlink 2 -.It Dq Li E +.It Ql E .Xr exec 2 -.It Dq Li F +.It Ql F .Xr fork 2 , .Xr vfork 2 -.It Dq Li L +.It Ql L .Xr link 2 , .Xr linkat 2 , .Xr symlink 2 , .Xr symlinkat 2 -.It Dq Li M +.It Ql M .Xr rename 2 -.It Dq Li R +.It Ql R .Xr open 2 for read -.It Dq Li S +.It Ql S .Xr stat 2 -.It Dq Li W +.It Ql W .Xr open 2 for write -.It Dq Li X +.It Ql X .Xr _exit 2 .El .Pp Note that -.Dq R +.Ql R following -.Dq W +.Ql W records can represent a single .Xr open 2 for R/W, or two seperate .Xr open 2 calls, one for -R +.Ql R and one for -W. +.Ql W . .Sh IOCTLS User mode programs communicate with the -.Nm filemon -driver through a -number of ioctls which are described below. +.Nm +driver through a number of ioctls which are described below. Each takes a single argument. -.Bl -tag -width FILEMON_SET_PID +.Bl -tag -width ".Dv FILEMON_SET_PID" .It Dv FILEMON_SET_FD Write the internal tracing buffer to the supplied open file descriptor. .It Dv FILEMON_SET_PID Child process ID to trace. .El .Sh RETURN VALUES -The ioctl returns zero on success and non-zero on failure. +.\" .Rv -std ioctl +The +.Fn ioctl +function returns the value 0 if successful; +otherwise the value \-1 is returned and the global variable +.Va errno +is set to indicate the error. .Sh FILES -.Bl -tag -width /dev/zero +.Bl -tag -width ".Pa /dev/filemon" .It Pa /dev/filemon .El .Sh EXAMPLES @@ -127,7 +133,7 @@ open_filemon(void) int fm_fd, fm_log; if ((fm_fd = open("/dev/filemon", O_RDWR)) == -1) - err(1, "open(\"/dev/filemon\", O_RDWR)"); + err(1, "open(\e"/dev/filemon\e", O_RDWR)"); if ((fm_log = open("filemon.out", O_CREAT | O_WRONLY | O_TRUNC, DEFFILEMODE)) == -1) err(1, "open(filemon.out)"); @@ -156,7 +162,9 @@ Creates a file named .Pa filemon.out and configures the .Nm -device to write the filemon buffer contents to it. +device to write the +.Nm +buffer contents to it. .Sh SEE ALSO .Xr dtrace 1 , .Xr ktrace 1 , From 7642883f10197ad0d5adbeb7996507f9f1e5c920 Mon Sep 17 00:00:00 2001 From: Alexander Motin Date: Tue, 5 Jun 2012 20:39:12 +0000 Subject: [PATCH 027/340] Use default error handler when flushing disk caches. --- sys/cam/ata/ata_da.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/cam/ata/ata_da.c b/sys/cam/ata/ata_da.c index 3ad69cca51d1..c27626571826 100644 --- a/sys/cam/ata/ata_da.c +++ b/sys/cam/ata/ata_da.c @@ -490,7 +490,7 @@ adaclose(struct disk *dp) ata_48bit_cmd(&ccb->ataio, ATA_FLUSHCACHE48, 0, 0, 0); else ata_28bit_cmd(&ccb->ataio, ATA_FLUSHCACHE, 0, 0, 0); - cam_periph_runccb(ccb, /*error_routine*/NULL, /*cam_flags*/0, + cam_periph_runccb(ccb, adaerror, /*cam_flags*/0, /*sense_flags*/0, softc->disk->d_devstat); if ((ccb->ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) From 30852968efc8c01ee04115fa235eee5eebceb73e Mon Sep 17 00:00:00 2001 From: Michael Tuexen Date: Tue, 5 Jun 2012 20:48:13 +0000 Subject: [PATCH 028/340] The cmsg_len field includes the cmsg header. So use CMSG_LEN(). MFC after: 3 days --- share/man/man4/ip.4 | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/share/man/man4/ip.4 b/share/man/man4/ip.4 index 50a11c38631c..96b17c70473c 100644 --- a/share/man/man4/ip.4 +++ b/share/man/man4/ip.4 @@ -165,7 +165,7 @@ The .Vt cmsghdr fields have the following values: .Bd -literal -cmsg_len = sizeof(struct in_addr) +cmsg_len = CMSG_LEN(sizeof(struct in_addr)) cmsg_level = IPPROTO_IP cmsg_type = IP_RECVDSTADDR .Ed @@ -184,7 +184,7 @@ structure followed by the address. The cmsghdr fields should have the following values: .Bd -literal -cmsg_len = sizeof(struct in_addr) +cmsg_len = CMSG_LEN(sizeof(struct in_addr)) cmsg_level = IPPROTO_IP cmsg_type = IP_SENDSRCADDR .Ed @@ -279,7 +279,7 @@ that contains a cmsghdr structure followed by the .Tn TTL . The cmsghdr fields have the following values: .Bd -literal -cmsg_len = sizeof(u_char) +cmsg_len = CMSG_LEN(sizeof(u_char)) cmsg_level = IPPROTO_IP cmsg_type = IP_RECVTTL .Ed @@ -307,7 +307,7 @@ The .Vt cmsghdr fields have the following values: .Bd -literal -cmsg_len = sizeof(struct sockaddr_dl) +cmsg_len = CMSG_LEN(sizeof(struct sockaddr_dl)) cmsg_level = IPPROTO_IP cmsg_type = IP_RECVIF .Ed From f8986f683845ec1482276ba927942e8ca3fb67b3 Mon Sep 17 00:00:00 2001 From: Maksim Yevmenkin Date: Tue, 5 Jun 2012 21:35:47 +0000 Subject: [PATCH 029/340] Add a very simple debug tool that would dump list of interfaces, addresses on each interface, and, associated refcounter. I found it handy to check for address refcounter leaks. --- tools/tools/ifpifa/Makefile | 10 ++ tools/tools/ifpifa/ifpifa.c | 190 ++++++++++++++++++++++++++++++++++++ 2 files changed, 200 insertions(+) create mode 100644 tools/tools/ifpifa/Makefile create mode 100644 tools/tools/ifpifa/ifpifa.c diff --git a/tools/tools/ifpifa/Makefile b/tools/tools/ifpifa/Makefile new file mode 100644 index 000000000000..2bcf0868fde6 --- /dev/null +++ b/tools/tools/ifpifa/Makefile @@ -0,0 +1,10 @@ +# $FreeBSD$ + +PROG= ifpifa +NO_MAN= +WARNS?=6 +BINDIR?=/usr/local/bin +DPADD=${LIBKVM} +LDADD=-lkvm + +.include diff --git a/tools/tools/ifpifa/ifpifa.c b/tools/tools/ifpifa/ifpifa.c new file mode 100644 index 000000000000..be8187db20d0 --- /dev/null +++ b/tools/tools/ifpifa/ifpifa.c @@ -0,0 +1,190 @@ +/*- + * Copyright (c) 2012 maksim yevmenkin + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +/* gcc -Wall -ggdb ifpifa.c -lkvm -o ifpifa */ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +__FBSDID("$FreeBSD$"); + +static struct nlist nl[] = { +#define N_IFNET 0 + { .n_name = "_ifnet", }, + { .n_name = NULL, }, +}; + +static int +kread(kvm_t *kd, u_long addr, char *buffer, int size) +{ + if (kd == NULL || buffer == NULL) + return (-1); + + if (kvm_read(kd, addr, buffer, size) != size) { + warnx("kvm_read: %s", kvm_geterr(kd)); + return (-1); + } + + return (0); +} + +int +main(void) +{ + kvm_t *kd; + char errbuf[_POSIX2_LINE_MAX]; + u_long ifnetaddr, ifnetaddr_next; + u_long ifaddraddr, ifaddraddr_next; + struct ifnet ifnet; + struct ifnethead ifnethead; + union { + struct ifaddr ifa; + struct in_ifaddr in; + struct in6_ifaddr in6; + } ifaddr; + union { + struct sockaddr *sa; + struct sockaddr_dl *sal; + struct sockaddr_in *sa4; + struct sockaddr_in6 *sa6; + } sa; + char addr[INET6_ADDRSTRLEN]; + + kd = kvm_openfiles(NULL, NULL, NULL, O_RDONLY, errbuf); + if (kd == NULL) { + warnx("kvm_openfiles: %s", errbuf); + exit(0); + } + + if (kvm_nlist(kd, nl) < 0) { + warnx("kvm_nlist: %s", kvm_geterr(kd)); + goto out; + } + + if (nl[N_IFNET].n_type == 0) { + warnx("kvm_nlist: no namelist"); + goto out; + } + + if (kread(kd, nl[N_IFNET].n_value, + (char *) &ifnethead, sizeof(ifnethead)) != 0) + goto out; + + for (ifnetaddr = (u_long) TAILQ_FIRST(&ifnethead); + ifnetaddr != 0; + ifnetaddr = ifnetaddr_next) { + if (kread(kd, ifnetaddr, (char *) &ifnet, sizeof(ifnet)) != 0) + goto out; + ifnetaddr_next = (u_long) TAILQ_NEXT(&ifnet, if_link); + + printf("%s\n", ifnet.if_xname); + + for (ifaddraddr = (u_long) TAILQ_FIRST(&ifnet.if_addrhead); + ifaddraddr != 0; + ifaddraddr = ifaddraddr_next) { + if (kread(kd, ifaddraddr, + (char *) &ifaddr, sizeof(ifaddr)) != 0) + goto out; + + ifaddraddr_next = (u_long) + TAILQ_NEXT(&ifaddr.ifa, ifa_link); + + sa.sa = (struct sockaddr *)( + (unsigned char *) ifaddr.ifa.ifa_addr - + (unsigned char *) ifaddraddr + + (unsigned char *) &ifaddr); + + switch (sa.sa->sa_family) { + case AF_LINK: + switch (sa.sal->sdl_type) { + case IFT_ETHER: + case IFT_FDDI: + ether_ntoa_r((struct ether_addr * ) + LLADDR(sa.sal), addr); + break; + + case IFT_LOOP: + strcpy(addr, "loopback"); + break; + + default: + snprintf(addr, sizeof(addr), + "", + sa.sal->sdl_type); + break; + } + break; + + case AF_INET: + inet_ntop(AF_INET, &sa.sa4->sin_addr, + addr, sizeof(addr)); + break; + + case AF_INET6: + inet_ntop(AF_INET6, &sa.sa6->sin6_addr, + addr, sizeof(addr)); + break; + + default: + snprintf(addr, sizeof(addr), "family=%d", + sa.sa->sa_family); + break; + } + + printf("\t%s ifa_refcnt=%u\n", + addr, ifaddr.ifa.ifa_refcnt); + } + } +out: + kvm_close(kd); + + return (0); +} + From 11e3340235cb706b5a0c76c222a0ad3802b89d86 Mon Sep 17 00:00:00 2001 From: Maksim Yevmenkin Date: Tue, 5 Jun 2012 22:02:27 +0000 Subject: [PATCH 030/340] Fix license Pointed by: brueffer --- tools/tools/ifpifa/ifpifa.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/tools/tools/ifpifa/ifpifa.c b/tools/tools/ifpifa/ifpifa.c index be8187db20d0..3f2a8190fdef 100644 --- a/tools/tools/ifpifa/ifpifa.c +++ b/tools/tools/ifpifa/ifpifa.c @@ -3,7 +3,7 @@ * All rights reserved. * * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions + * modification, are permitted providing that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. @@ -11,17 +11,17 @@ * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. */ /* gcc -Wall -ggdb ifpifa.c -lkvm -o ifpifa */ From 858f9d27f06a5366e0455698f6458e37d7e0cd78 Mon Sep 17 00:00:00 2001 From: Kevin Lo Date: Wed, 6 Jun 2012 02:42:30 +0000 Subject: [PATCH 031/340] Check the return value of pci_find_cap() --- sys/dev/ae/if_ae.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/sys/dev/ae/if_ae.c b/sys/dev/ae/if_ae.c index 3b882ee24101..9e10780a48aa 100644 --- a/sys/dev/ae/if_ae.c +++ b/sys/dev/ae/if_ae.c @@ -1381,12 +1381,13 @@ ae_pm_init(ae_softc_t *sc) /* * Configure PME. */ - pci_find_cap(sc->dev, PCIY_PMG, &pmc); - pmstat = pci_read_config(sc->dev, pmc + PCIR_POWER_STATUS, 2); - pmstat &= ~(PCIM_PSTAT_PME | PCIM_PSTAT_PMEENABLE); - if ((ifp->if_capenable & IFCAP_WOL) != 0) - pmstat |= PCIM_PSTAT_PME | PCIM_PSTAT_PMEENABLE; - pci_write_config(sc->dev, pmc + PCIR_POWER_STATUS, pmstat, 2); + if (pci_find_cap(dev, PCIY_PMG, &pmc) == 0) { + pmstat = pci_read_config(sc->dev, pmc + PCIR_POWER_STATUS, 2); + pmstat &= ~(PCIM_PSTAT_PME | PCIM_PSTAT_PMEENABLE); + if ((ifp->if_capenable & IFCAP_WOL) != 0) + pmstat |= PCIM_PSTAT_PME | PCIM_PSTAT_PMEENABLE; + pci_write_config(sc->dev, pmc + PCIR_POWER_STATUS, pmstat, 2); + } } static int From 73a4b7a9d8e79124c48c08143ca67d4fa88b5700 Mon Sep 17 00:00:00 2001 From: Warner Losh Date: Wed, 6 Jun 2012 06:19:52 +0000 Subject: [PATCH 032/340] Enhance the Atmel SoC chip identification routines to account for more SoC variants. Fold the AT91SAM9XE chips into the AT91SAM9260 handling, where appropriate. The following SoCs/SoC families are recognized: at91cap9, at91rm9200, at91sam9260, at91sam9261, at91sam9263, at91sam9g10, at91sam9g20, at91sam9g45, at91sam9n12, at91sam9rl, at91sam9x5 and the following variations are also recognized: at91rm9200_bga, at91rm9200_pqfp, at91sam9xe, at91sam9g45, at91sam9m10, at91sam9g46, at91sam9m11, at91sam9g15, at91sam9g25, at91sam9g35, at91sam9x25, at91sam9x35 This is only the identification routine: no additional Atmel devices are supported at this time. # With these changes, I'm able to boot to the point of identification # on a few different Atmel SoCs that we don't yet support using the # KB920X config file -- someday tht will be an ATMEL config file... --- sys/arm/at91/at91.c | 2 - sys/arm/at91/at91_machdep.c | 155 +++++++++++++++++++++++++++++++++++- sys/arm/at91/at91_mci.c | 24 +++--- sys/arm/at91/at91_pmc.c | 4 +- sys/arm/at91/at91reg.h | 42 ++++++---- sys/arm/at91/at91rm9200.c | 9 +-- sys/arm/at91/at91sam9260.c | 25 +----- sys/arm/at91/at91sam9g20.c | 13 ++- sys/arm/at91/at91var.h | 63 +++++++++++++-- 9 files changed, 255 insertions(+), 82 deletions(-) diff --git a/sys/arm/at91/at91.c b/sys/arm/at91/at91.c index e9f27b59d0eb..9cdb53120b2e 100644 --- a/sys/arm/at91/at91.c +++ b/sys/arm/at91/at91.c @@ -54,8 +54,6 @@ static void at91_eoi(void *); extern const struct pmap_devmap at91_devmap[]; -uint32_t at91_chip_id; - uint32_t at91_master_clock; static int diff --git a/sys/arm/at91/at91_machdep.c b/sys/arm/at91/at91_machdep.c index 1f0d8a79f537..a6b8d87359b0 100644 --- a/sys/arm/at91/at91_machdep.c +++ b/sys/arm/at91/at91_machdep.c @@ -232,6 +232,156 @@ at91_ramsize(void) return (1 << (cols + rows + banks + bw)); } +const char *soc_type_name[] = { + [AT91_T_CAP9] = "at91cap9", + [AT91_T_RM9200] = "at91rm9200", + [AT91_T_SAM9260] = "at91sam9260", + [AT91_T_SAM9261] = "at91sam9261", + [AT91_T_SAM9263] = "at91sam9263", + [AT91_T_SAM9G10] = "at91sam9g10", + [AT91_T_SAM9G20] = "at91sam9g20", + [AT91_T_SAM9G45] = "at91sam9g45", + [AT91_T_SAM9N12] = "at91sam9n12", + [AT91_T_SAM9RL] = "at91sam9rl", + [AT91_T_SAM9X5] = "at91sam9x5", + [AT91_T_NONE] = "UNKNOWN" +}; + +const char *soc_subtype_name[] = { + [AT91_ST_NONE] = "UNKNOWN", + [AT91_ST_RM9200_BGA] = "at91rm9200_bga", + [AT91_ST_RM9200_PQFP] = "at91rm9200_pqfp", + [AT91_ST_SAM9XE] = "at91sam9xe", + [AT91_ST_SAM9G45] = "at91sam9g45", + [AT91_ST_SAM9M10] = "at91sam9m10", + [AT91_ST_SAM9G46] = "at91sam9g46", + [AT91_ST_SAM9M11] = "at91sam9m11", + [AT91_ST_SAM9G15] = "at91sam9g15", + [AT91_ST_SAM9G25] = "at91sam9g25", + [AT91_ST_SAM9G35] = "at91sam9g35", + [AT91_ST_SAM9X25] = "at91sam9x25", + [AT91_ST_SAM9X35] = "at91sam9x35", +}; + +#define AT91_DBGU0 0x0ffff200 /* Most */ +#define AT91_DBGU1 0x0fffee00 /* SAM9263, CAP9, and SAM9G45 */ + +struct at91_soc_info soc_data; + +/* + * Read the SoC ID from the CIDR register and try to match it against the + * values we know. If we find a good one, we return true. If not, we + * return false. When we find a good one, we also find the subtype + * and CPU family. + */ +static int +at91_try_id(uint32_t dbgu_base) +{ + uint32_t socid; + + soc_data.cidr = *(volatile uint32_t *)(AT91_BASE + dbgu_base + DBGU_C1R); + socid = soc_data.cidr & ~AT91_CPU_VERSION_MASK; + + soc_data.type = AT91_T_NONE; + soc_data.subtype = AT91_ST_NONE; + soc_data.family = (soc_data.cidr & AT91_CPU_FAMILY_MASK) >> 20; + soc_data.exid = *(volatile uint32_t *)(AT91_BASE + dbgu_base + DBGU_C2R); + + switch (socid) { + case AT91_CPU_CAP9: + soc_data.type = AT91_T_CAP9; + break; + case AT91_CPU_RM9200: + soc_data.type = AT91_T_RM9200; + break; + case AT91_CPU_SAM9XE128: + case AT91_CPU_SAM9XE256: + case AT91_CPU_SAM9XE512: + case AT91_CPU_SAM9260: + soc_data.type = AT91_T_SAM9260; + if (soc_data.family == AT91_FAMILY_SAM9XE) + soc_data.subtype = AT91_ST_SAM9XE; + break; + case AT91_CPU_SAM9261: + soc_data.type = AT91_T_SAM9261; + break; + case AT91_CPU_SAM9263: + soc_data.type = AT91_T_SAM9263; + break; + case AT91_CPU_SAM9G10: + soc_data.type = AT91_T_SAM9G10; + break; + case AT91_CPU_SAM9G20: + soc_data.type = AT91_T_SAM9G20; + break; + case AT91_CPU_SAM9G45: + soc_data.type = AT91_T_SAM9G45; + break; + case AT91_CPU_SAM9N12: + soc_data.type = AT91_T_SAM9N12; + break; + case AT91_CPU_SAM9RL64: + soc_data.type = AT91_T_SAM9RL; + break; + case AT91_CPU_SAM9X5: + soc_data.type = AT91_T_SAM9X5; + break; + default: + return 0; + } + + switch (soc_data.type) { + case AT91_T_SAM9G45: + switch (soc_data.exid) { + case AT91_EXID_SAM9G45: + soc_data.subtype = AT91_ST_SAM9G45; + break; + case AT91_EXID_SAM9G46: + soc_data.subtype = AT91_ST_SAM9G46; + break; + case AT91_EXID_SAM9M10: + soc_data.subtype = AT91_ST_SAM9M10; + break; + case AT91_EXID_SAM9M11: + soc_data.subtype = AT91_ST_SAM9M11; + break; + } + break; + case AT91_T_SAM9X5: + switch (soc_data.exid) { + case AT91_EXID_SAM9G15: + soc_data.subtype = AT91_ST_SAM9G15; + break; + case AT91_EXID_SAM9G25: + soc_data.subtype = AT91_ST_SAM9G25; + break; + case AT91_EXID_SAM9G35: + soc_data.subtype = AT91_ST_SAM9G35; + break; + case AT91_EXID_SAM9X25: + soc_data.subtype = AT91_ST_SAM9X25; + break; + case AT91_EXID_SAM9X35: + soc_data.subtype = AT91_ST_SAM9X35; + break; + } + break; + default: + break; + } + snprintf(soc_data.name, sizeof(soc_data.name), "%s%s%s", soc_type_name[soc_data.type], + soc_data.subtype == AT91_ST_NONE ? "" : " subtype ", + soc_data.subtype == AT91_ST_NONE ? "" : soc_subtype_name[soc_data.subtype]); + return 1; +} + +static void +at91_soc_id(void) +{ + if (!at91_try_id(AT91_DBGU0)) + at91_try_id(AT91_DBGU1); +} + void * initarm(struct arm_boot_params *abp) { @@ -355,12 +505,11 @@ initarm(struct arm_boot_params *abp) cpu_tlb_flushID(); cpu_domains(DOMAIN_CLIENT << (PMAP_DOMAIN_KERNEL*2)); + at91_soc_id(); + /* Initialize all the clocks, so that the console can work */ at91_pmc_init_clock(); - /* Get chip id so device drivers know about differences */ - at91_chip_id = *(uint32_t *)(AT91_BASE + AT91_DBGU_BASE + DBGU_C1R); - cninit(); memsize = board_init(); diff --git a/sys/arm/at91/at91_mci.c b/sys/arm/at91/at91_mci.c index 56cff68f262a..9735babcb1b0 100644 --- a/sys/arm/at91/at91_mci.c +++ b/sys/arm/at91/at91_mci.c @@ -313,23 +313,17 @@ static int at91_mci_is_mci1rev2xx(void) { - switch (AT91_CPU(at91_chip_id)) { - case AT91_CPU_SAM9260: - case AT91_CPU_SAM9263: -#ifdef notyet - case AT91_CPU_CAP9: -#endif - case AT91_CPU_SAM9G10: - case AT91_CPU_SAM9G20: -#ifdef notyet - case AT91_CPU_SAM9RL: -#endif - case AT91_CPU_SAM9XE128: - case AT91_CPU_SAM9XE256: - case AT91_CPU_SAM9XE512: + switch (soc_data.type) { + case AT91_T_SAM9260: + case AT91_T_SAM9263: + case AT91_T_CAP9: + case AT91_T_SAM9G10: + case AT91_T_SAM9G20: + case AT91_T_SAM9RL: return(1); + default: + return (0); } - return (0); } static void diff --git a/sys/arm/at91/at91_pmc.c b/sys/arm/at91/at91_pmc.c index 2a7ee5e50aca..799a87b8f95c 100644 --- a/sys/arm/at91/at91_pmc.c +++ b/sys/arm/at91/at91_pmc.c @@ -471,7 +471,7 @@ at91_pmc_init_clock(void) at91_pmc_pll_rate(&plla, RD4(sc, CKGR_PLLAR)); - if (at91_cpu_is(AT91_CPU_SAM9G45) && (mckr & PMC_MCKR_PLLADIV2)) + if (at91_cpu_is(AT91_T_SAM9G45) && (mckr & PMC_MCKR_PLLADIV2)) plla.hz /= 2; /* @@ -512,7 +512,7 @@ at91_pmc_init_clock(void) mck.hz /= (1 + mdiv); /* Only found on SAM9G20 */ - if (at91_cpu_is(AT91_CPU_SAM9G20)) + if (at91_cpu_is(AT91_T_SAM9G20)) cpu.hz /= (mckr & PMC_MCKR_PDIV) ? 2 : 1; at91_master_clock = mck.hz; diff --git a/sys/arm/at91/at91reg.h b/sys/arm/at91/at91reg.h index 7493de8c92cb..0401291770be 100644 --- a/sys/arm/at91/at91reg.h +++ b/sys/arm/at91/at91reg.h @@ -46,32 +46,40 @@ #define AT91_SYS_BASE 0xffff000 #define AT91_SYS_SIZE 0x1000 -#if defined(AT91SAM9G45) || defined(AT91SAM9263) -#define AT91_DBGU_BASE 0xfffee00 -#else -#define AT91_DBGU_BASE 0xffff200 -#endif #define AT91_DBGU_SIZE 0x200 #define DBGU_C1R (64) /* Chip ID1 Register */ #define DBGU_C2R (68) /* Chip ID2 Register */ #define DBGU_FNTR (72) /* Force NTRST Register */ #define AT91_CPU_VERSION_MASK 0x0000001f -#define AT91_CPU_RM9200 0x09290780 -#define AT91_CPU_SAM9260 0x019803a0 -#define AT91_CPU_SAM9261 0x019703a0 -#define AT91_CPU_SAM9263 0x019607a0 -#define AT91_CPU_SAM9G10 0x819903a0 -#define AT91_CPU_SAM9G20 0x019905a0 -#define AT91_CPU_SAM9G45 0x819b05a0 +#define AT91_CPU_FAMILY_MASK 0x0ff00000 + +#define AT91_CPU_RM9200 0x09290780 +#define AT91_CPU_SAM9260 0x019803a0 +#define AT91_CPU_SAM9261 0x019703a0 +#define AT91_CPU_SAM9263 0x019607a0 +#define AT91_CPU_SAM9G10 0x819903a0 +#define AT91_CPU_SAM9G20 0x019905a0 +#define AT91_CPU_SAM9G45 0x819b05a0 +#define AT91_CPU_SAM9N12 0x819a07a0 +#define AT91_CPU_SAM9RL64 0x019b03a0 +#define AT91_CPU_SAM9X5 0x819a05a0 + #define AT91_CPU_SAM9XE128 0x329973a0 #define AT91_CPU_SAM9XE256 0x329a93a0 #define AT91_CPU_SAM9XE512 0x329aa3a0 -#define AT91_ARCH(chipid) ((chipid >> 20) & 0xff) -#define AT91_CPU(chipid) (chipid & ~AT91_CPU_VERSION_MASK) -#define AT91_ARCH_SAM9 (0x19) -#define AT91_ARCH_SAM9XE (0x29) -#define AT91_ARCH_RM92 (0x92) +#define AT91_CPU_CAP9 0x039a03a0 + +#define AT91_EXID_SAM9M11 0x00000001 +#define AT91_EXID_SAM9M10 0x00000002 +#define AT91_EXID_SAM9G46 0x00000003 +#define AT91_EXID_SAM9G45 0x00000004 + +#define AT91_EXID_SAM9G15 0x00000000 +#define AT91_EXID_SAM9G35 0x00000001 +#define AT91_EXID_SAM9X35 0x00000002 +#define AT91_EXID_SAM9G25 0x00000003 +#define AT91_EXID_SAM9X25 0x00000004 #endif /* _AT91REG_H_ */ diff --git a/sys/arm/at91/at91rm9200.c b/sys/arm/at91/at91rm9200.c index 9a0fae5a3a37..f2c4c48ee0e0 100644 --- a/sys/arm/at91/at91rm9200.c +++ b/sys/arm/at91/at91rm9200.c @@ -197,7 +197,7 @@ static void at91_identify(driver_t *drv, device_t parent) { - if (at91_cpu_is(AT91_CPU_RM9200)) { + if (at91_cpu_is(AT91_T_RM9200)) { at91_add_child(parent, 0, "at91rm920", 0, 0, 0, -1, 0, 0); at91_cpu_add_builtin_children(parent); } @@ -207,11 +207,8 @@ static int at91_probe(device_t dev) { - if (at91_cpu_is(AT91_CPU_RM9200)) { - device_set_desc(dev, "AT91RM9200"); - return (0); - } - return (ENXIO); + device_set_desc(dev, soc_data.name); + return (0); } static int diff --git a/sys/arm/at91/at91sam9260.c b/sys/arm/at91/at91sam9260.c index cbc5a2778ba5..71448f41ea39 100644 --- a/sys/arm/at91/at91sam9260.c +++ b/sys/arm/at91/at91sam9260.c @@ -197,11 +197,7 @@ static void at91_identify(driver_t *drv, device_t parent) { - switch (AT91_CPU(at91_chip_id)) { - case AT91_CPU_SAM9260: - case AT91_CPU_SAM9XE128: - case AT91_CPU_SAM9XE256: - case AT91_CPU_SAM9XE512: + if (soc_data.type == AT91_CPU_SAM9260) { at91_add_child(parent, 0, "at91sam9260", 0, 0, 0, -1, 0, 0); at91_cpu_add_builtin_children(parent); break; @@ -211,25 +207,8 @@ at91_identify(driver_t *drv, device_t parent) static int at91_probe(device_t dev) { - const char *desc; - switch (AT91_CPU(at91_chip_id)) { - case AT91_CPU_SAM9260: - desc = "AT91SAM9260"; - break; - case AT91_CPU_SAM9XE128: - desc = "AT91SAM9XE128"; - break; - case AT91_CPU_SAM9XE256: - desc = "AT91SAM9XE256"; - break; - case AT91_CPU_SAM9XE512: - desc = "AT91SAM9XE512"; - break; - default: - return (ENXIO); - } - device_set_desc(dev, desc); + device_set_desc(dev, soc_data.name); return (0); } diff --git a/sys/arm/at91/at91sam9g20.c b/sys/arm/at91/at91sam9g20.c index 61d9ac4e6097..063a7bfdcb7d 100644 --- a/sys/arm/at91/at91sam9g20.c +++ b/sys/arm/at91/at91sam9g20.c @@ -137,8 +137,8 @@ at91_add_child(device_t dev, int prio, const char *name, int unit, kid = device_add_child_ordered(dev, prio, name, unit); if (kid == NULL) { - printf("Can't add child %s%d ordered\n", name, unit); - return; + printf("Can't add child %s%d ordered\n", name, unit); + return; } ivar = malloc(sizeof(*ivar), M_DEVBUF, M_NOWAIT | M_ZERO); if (ivar == NULL) { @@ -204,7 +204,7 @@ static void at91_identify(driver_t *drv, device_t parent) { - if (at91_cpu_is(AT91_CPU_SAM9G20)) { + if (at91_cpu_is(AT91_T_SAM9G20)) { at91_add_child(parent, 0, "at91sam", 9, 0, 0, -1, 0, 0); at91_cpu_add_builtin_children(parent); } @@ -214,11 +214,8 @@ static int at91_probe(device_t dev) { - if (at91_cpu_is(AT91_CPU_SAM9G20)) { - device_set_desc(dev, "AT91SAM9G20"); - return (0); - } - return (ENXIO); + device_set_desc(dev, soc_data.name); + return (0); } static int diff --git a/sys/arm/at91/at91var.h b/sys/arm/at91/at91var.h index be82eeeba456..a8df7171a5fd 100644 --- a/sys/arm/at91/at91var.h +++ b/sys/arm/at91/at91var.h @@ -59,7 +59,59 @@ struct cpu_devs const char *parent_clk; }; -extern uint32_t at91_chip_id; +enum at91_soc_type { + AT91_T_NONE = 0, + AT91_T_CAP9, + AT91_T_RM9200, + AT91_T_SAM9260, + AT91_T_SAM9261, + AT91_T_SAM9263, + AT91_T_SAM9G10, + AT91_T_SAM9G20, + AT91_T_SAM9G45, + AT91_T_SAM9N12, + AT91_T_SAM9RL, + AT91_T_SAM9X5, +}; + +enum at91_soc_subtype { + AT91_ST_NONE = 0, + /* AT91RM9200 */ + AT91_ST_RM9200_BGA, + AT91_ST_RM9200_PQFP, + /* AT91SAM9260 */ + AT91_ST_SAM9XE, + /* AT91SAM9G45 */ + AT91_ST_SAM9G45, + AT91_ST_SAM9M10, + AT91_ST_SAM9G46, + AT91_ST_SAM9M11, + /* AT91SAM9X5 */ + AT91_ST_SAM9G15, + AT91_ST_SAM9G25, + AT91_ST_SAM9G35, + AT91_ST_SAM9X25, + AT91_ST_SAM9X35, +}; + +enum at91_soc_family { + AT91_FAMILY_SAM9 = 0x19, + AT91_FAMILY_SAM9XE = 0x29, + AT91_FAMILY_RM92 = 0x92, +}; + +#define AT91_SOC_NAME_MAX 50 + +struct at91_soc_info { + enum at91_soc_type type; + enum at91_soc_subtype subtype; + enum at91_soc_family family; + uint32_t cidr; + uint32_t exid; + char name[AT91_SOC_NAME_MAX]; +}; + +extern struct at91_soc_info soc_data; static inline int at91_is_rm92(void); static inline int at91_is_sam9(void); @@ -70,33 +122,32 @@ static inline int at91_is_rm92(void) { - return (AT91_ARCH(at91_chip_id) == AT91_ARCH_RM92); + return (soc_data.type == AT91_T_RM9200); } static inline int at91_is_sam9(void) { - return (AT91_ARCH(at91_chip_id) == AT91_ARCH_SAM9); + return (soc_data.family == AT91_FAMILY_SAM9); } static inline int at91_is_sam9xe(void) { - return (AT91_ARCH(at91_chip_id) == AT91_ARCH_SAM9XE); + return (soc_data.family == AT91_FAMILY_SAM9XE); } static inline int at91_cpu_is(u_int cpu) { - return (AT91_CPU(at91_chip_id) == cpu); + return (soc_data.type == cpu); } extern uint32_t at91_irq_system; extern uint32_t at91_master_clock; - void at91_pmc_init_clock(void); #endif /* _AT91VAR_H_ */ From bc1bf6e84298e9a3d7c790ac99fbf9810f8bdfd6 Mon Sep 17 00:00:00 2001 From: Alexander Motin Date: Wed, 6 Jun 2012 06:52:51 +0000 Subject: [PATCH 033/340] ATA/SATA controllers have no idea about protocol of the connected device until transport will do some probe actions (at least soft reset). Make ATA/SATA SIMs to not report bogus and confusing PROTO_ATA protocol. Make ATA/SATA transport to fill that gap by reporting protocol to SIM with XPT_SET_TRAN_SETTINGS and patching XPT_GET_TRAN_SETTINGS results if needed. --- sys/cam/ata/ata_xpt.c | 20 +++++++++++++++++++- sys/dev/ahci/ahci.c | 4 ++-- sys/dev/ata/ata-all.c | 4 ++-- sys/dev/mvs/mvs.c | 4 ++-- sys/dev/siis/siis.c | 4 ++-- 5 files changed, 27 insertions(+), 9 deletions(-) diff --git a/sys/cam/ata/ata_xpt.c b/sys/cam/ata/ata_xpt.c index d7fe3d7d3023..fef85b82203e 100644 --- a/sys/cam/ata/ata_xpt.c +++ b/sys/cam/ata/ata_xpt.c @@ -942,9 +942,9 @@ device_fail: if ((path->device->flags & CAM_DEV_UNCONFIGURED) == 0) xpt_action((union ccb *)&cts); } } + ata_device_transport(path); if (changed) proberequestdefaultnegotiation(periph); - ata_device_transport(path); PROBE_SET_ACTION(softc, PROBE_SETMODE); xpt_release_ccb(done_ccb); xpt_schedule(periph, priority); @@ -1123,6 +1123,9 @@ device_fail: if ((path->device->flags & CAM_DEV_UNCONFIGURED) == 0) snprintf(ident_buf->revision, sizeof(ident_buf->revision), "%04x", softc->pm_prv); path->device->flags |= CAM_DEV_IDENTIFY_DATA_VALID; + ata_device_transport(path); + if (periph->path->device->flags & CAM_DEV_UNCONFIGURED) + proberequestdefaultnegotiation(periph); /* Set supported bits. */ bzero(&cts, sizeof(cts)); xpt_setup_ccb(&cts.ccb_h, path, CAM_PRIORITY_NONE); @@ -1200,6 +1203,9 @@ device_fail: if ((path->device->flags & CAM_DEV_UNCONFIGURED) == 0) path->device->flags |= CAM_DEV_IDENTIFY_DATA_VALID; } + ata_device_transport(path); + if (changed) + proberequestdefaultnegotiation(periph); if (periph->path->device->flags & CAM_DEV_UNCONFIGURED) { path->device->flags &= ~CAM_DEV_UNCONFIGURED; @@ -1777,6 +1783,12 @@ ata_get_transfer_settings(struct ccb_trans_settings *cts) sim = cts->ccb_h.path->bus->sim; (*(sim->sim_action))(sim, (union ccb *)cts); + if (cts->protocol == PROTO_UNKNOWN || + cts->protocol == PROTO_UNSPECIFIED) { + cts->protocol = device->protocol; + cts->protocol_version = device->protocol_version; + } + if (cts->protocol == PROTO_ATA) { ata = &cts->proto_specific.ata; if ((ata->valid & CTS_ATA_VALID_TQ) == 0) { @@ -1797,6 +1809,12 @@ ata_get_transfer_settings(struct ccb_trans_settings *cts) scsi->flags |= CTS_SCSI_FLAGS_TAG_ENB; } } + + if (cts->transport == XPORT_UNKNOWN || + cts->transport == XPORT_UNSPECIFIED) { + cts->transport = device->transport; + cts->transport_version = device->transport_version; + } } static void diff --git a/sys/dev/ahci/ahci.c b/sys/dev/ahci/ahci.c index 3b26da3fd54e..ccdba319e7b4 100644 --- a/sys/dev/ahci/ahci.c +++ b/sys/dev/ahci/ahci.c @@ -2881,7 +2881,7 @@ ahciaction(struct cam_sim *sim, union ccb *ccb) d = &ch->curr[ccb->ccb_h.target_id]; else d = &ch->user[ccb->ccb_h.target_id]; - cts->protocol = PROTO_ATA; + cts->protocol = PROTO_UNSPECIFIED; cts->protocol_version = PROTO_VERSION_UNSPECIFIED; cts->transport = XPORT_SATA; cts->transport_version = XPORT_VERSION_UNSPECIFIED; @@ -2967,7 +2967,7 @@ ahciaction(struct cam_sim *sim, union ccb *ccb) cpi->unit_number = cam_sim_unit(sim); cpi->transport = XPORT_SATA; cpi->transport_version = XPORT_VERSION_UNSPECIFIED; - cpi->protocol = PROTO_ATA; + cpi->protocol = PROTO_UNSPECIFIED; cpi->protocol_version = PROTO_VERSION_UNSPECIFIED; cpi->maxio = MAXPHYS; /* ATI SB600 can't handle 256 sectors with FPDMA (NCQ). */ diff --git a/sys/dev/ata/ata-all.c b/sys/dev/ata/ata-all.c index 6bee48d5b1a2..73e32dd749db 100644 --- a/sys/dev/ata/ata-all.c +++ b/sys/dev/ata/ata-all.c @@ -1787,7 +1787,7 @@ ataaction(struct cam_sim *sim, union ccb *ccb) d = &ch->curr[ccb->ccb_h.target_id]; else d = &ch->user[ccb->ccb_h.target_id]; - cts->protocol = PROTO_ATA; + cts->protocol = PROTO_UNSPECIFIED; cts->protocol_version = PROTO_VERSION_UNSPECIFIED; if (ch->flags & ATA_SATA) { cts->transport = XPORT_SATA; @@ -1875,7 +1875,7 @@ ataaction(struct cam_sim *sim, union ccb *ccb) else cpi->transport = XPORT_ATA; cpi->transport_version = XPORT_VERSION_UNSPECIFIED; - cpi->protocol = PROTO_ATA; + cpi->protocol = PROTO_UNSPECIFIED; cpi->protocol_version = PROTO_VERSION_UNSPECIFIED; cpi->maxio = ch->dma.max_iosize ? ch->dma.max_iosize : DFLTPHYS; if (device_get_devclass(device_get_parent(parent)) == diff --git a/sys/dev/mvs/mvs.c b/sys/dev/mvs/mvs.c index debe55af4b76..1c7c930b602d 100644 --- a/sys/dev/mvs/mvs.c +++ b/sys/dev/mvs/mvs.c @@ -2301,7 +2301,7 @@ mvsaction(struct cam_sim *sim, union ccb *ccb) d = &ch->curr[ccb->ccb_h.target_id]; else d = &ch->user[ccb->ccb_h.target_id]; - cts->protocol = PROTO_ATA; + cts->protocol = PROTO_UNSPECIFIED; cts->protocol_version = PROTO_VERSION_UNSPECIFIED; cts->transport = XPORT_SATA; cts->transport_version = XPORT_VERSION_UNSPECIFIED; @@ -2385,7 +2385,7 @@ mvsaction(struct cam_sim *sim, union ccb *ccb) cpi->unit_number = cam_sim_unit(sim); cpi->transport = XPORT_SATA; cpi->transport_version = XPORT_VERSION_UNSPECIFIED; - cpi->protocol = PROTO_ATA; + cpi->protocol = PROTO_UNSPECIFIED; cpi->protocol_version = PROTO_VERSION_UNSPECIFIED; cpi->maxio = MAXPHYS; if ((ch->quirks & MVS_Q_SOC) == 0) { diff --git a/sys/dev/siis/siis.c b/sys/dev/siis/siis.c index 2b709cd9693d..caf493a9bd08 100644 --- a/sys/dev/siis/siis.c +++ b/sys/dev/siis/siis.c @@ -1884,7 +1884,7 @@ siisaction(struct cam_sim *sim, union ccb *ccb) d = &ch->curr[ccb->ccb_h.target_id]; else d = &ch->user[ccb->ccb_h.target_id]; - cts->protocol = PROTO_ATA; + cts->protocol = PROTO_UNSPECIFIED; cts->protocol_version = PROTO_VERSION_UNSPECIFIED; cts->transport = XPORT_SATA; cts->transport_version = XPORT_VERSION_UNSPECIFIED; @@ -1960,7 +1960,7 @@ siisaction(struct cam_sim *sim, union ccb *ccb) cpi->unit_number = cam_sim_unit(sim); cpi->transport = XPORT_SATA; cpi->transport_version = XPORT_VERSION_UNSPECIFIED; - cpi->protocol = PROTO_ATA; + cpi->protocol = PROTO_UNSPECIFIED; cpi->protocol_version = PROTO_VERSION_UNSPECIFIED; cpi->maxio = MAXPHYS; cpi->hba_vendor = pci_get_vendor(parent); From 5d53fe39843faf8421c309131d0fa547ba064cd2 Mon Sep 17 00:00:00 2001 From: Joel Dahl Date: Wed, 6 Jun 2012 08:07:47 +0000 Subject: [PATCH 034/340] mdoc: add missing -width argument to Bl -tag. --- lib/librpcsec_gss/rpc_gss_get_error.3 | 2 +- lib/librpcsec_gss/rpc_gss_get_mech_info.3 | 2 +- lib/librpcsec_gss/rpc_gss_get_principal_name.3 | 2 +- lib/librpcsec_gss/rpc_gss_get_versions.3 | 2 +- lib/librpcsec_gss/rpc_gss_getcred.3 | 2 +- lib/librpcsec_gss/rpc_gss_is_installed.3 | 2 +- lib/librpcsec_gss/rpc_gss_max_data_length.3 | 2 +- lib/librpcsec_gss/rpc_gss_mech_to_oid.3 | 2 +- lib/librpcsec_gss/rpc_gss_oid_to_mech.3 | 2 +- lib/librpcsec_gss/rpc_gss_qop_to_num.3 | 2 +- lib/librpcsec_gss/rpc_gss_seccreate.3 | 4 ++-- lib/librpcsec_gss/rpc_gss_set_callback.3 | 2 +- lib/librpcsec_gss/rpc_gss_set_defaults.3 | 2 +- lib/librpcsec_gss/rpc_gss_set_svc_name.3 | 2 +- lib/librpcsec_gss/rpc_gss_svc_max_data_length.3 | 2 +- 15 files changed, 16 insertions(+), 16 deletions(-) diff --git a/lib/librpcsec_gss/rpc_gss_get_error.3 b/lib/librpcsec_gss/rpc_gss_get_error.3 index 3b025d7f37c7..f1d8fc74b4a5 100644 --- a/lib/librpcsec_gss/rpc_gss_get_error.3 +++ b/lib/librpcsec_gss/rpc_gss_get_error.3 @@ -39,7 +39,7 @@ .Sh DESCRIPTION Get details of the last RPCSEC_GSS error. .Sh PARAMETERS -.Bl -tag +.Bl -tag -width ".It error" .It error A pointer to a structure where the error details will be returned .El diff --git a/lib/librpcsec_gss/rpc_gss_get_mech_info.3 b/lib/librpcsec_gss/rpc_gss_get_mech_info.3 index d6abf4dc708f..9a26dc107d4b 100644 --- a/lib/librpcsec_gss/rpc_gss_get_mech_info.3 +++ b/lib/librpcsec_gss/rpc_gss_get_mech_info.3 @@ -40,7 +40,7 @@ This function looks up a mechanism by name by reading the file /etc/gss/mech and queries it for its capabilities. .Sh PARAMETERS -.Bl -tag +.Bl -tag -width ".It service" .It mech The mechanism to search for .It service diff --git a/lib/librpcsec_gss/rpc_gss_get_principal_name.3 b/lib/librpcsec_gss/rpc_gss_get_principal_name.3 index 2eba5a98c252..50fc65b0fb2e 100644 --- a/lib/librpcsec_gss/rpc_gss_get_principal_name.3 +++ b/lib/librpcsec_gss/rpc_gss_get_principal_name.3 @@ -46,7 +46,7 @@ This function can be used to generate a client principal name from various strings. .Sh PARAMETERS -.Bl -tag +.Bl -tag -width ".It principal" .It principal If the principal is created successfully, .Fa *principal diff --git a/lib/librpcsec_gss/rpc_gss_get_versions.3 b/lib/librpcsec_gss/rpc_gss_get_versions.3 index 919205457036..d624f85e1bb4 100644 --- a/lib/librpcsec_gss/rpc_gss_get_versions.3 +++ b/lib/librpcsec_gss/rpc_gss_get_versions.3 @@ -39,7 +39,7 @@ .Sh DESCRIPTION Return the highest and lowest supported versions of the RPCSEC_GSS protocol. .Sh PARAMETERS -.Bl -tag +.Bl -tag -width ".It vers_lo" .It vers_hi The value of .Fa *vers_hi diff --git a/lib/librpcsec_gss/rpc_gss_getcred.3 b/lib/librpcsec_gss/rpc_gss_getcred.3 index 72a638452d87..4ebd275728ae 100644 --- a/lib/librpcsec_gss/rpc_gss_getcred.3 +++ b/lib/librpcsec_gss/rpc_gss_getcred.3 @@ -45,7 +45,7 @@ This function returns the RPCSEC_GSS authenticated credentials associated with an RPC request. .Sh PARAMETERS -.Bl -tag +.Bl -tag -width ".It cookie" .It req The RPC request to query .It rcred diff --git a/lib/librpcsec_gss/rpc_gss_is_installed.3 b/lib/librpcsec_gss/rpc_gss_is_installed.3 index f0e03d815c07..d427e87effa1 100644 --- a/lib/librpcsec_gss/rpc_gss_is_installed.3 +++ b/lib/librpcsec_gss/rpc_gss_is_installed.3 @@ -40,7 +40,7 @@ This function looks up a mechanism by name by reading the file /etc/gss/mech. .Sh PARAMETERS -.Bl -tag +.Bl -tag -width ".It mech" .It mech The mechanism to search for .El diff --git a/lib/librpcsec_gss/rpc_gss_max_data_length.3 b/lib/librpcsec_gss/rpc_gss_max_data_length.3 index 67029a0e851b..1d3a9224f03f 100644 --- a/lib/librpcsec_gss/rpc_gss_max_data_length.3 +++ b/lib/librpcsec_gss/rpc_gss_max_data_length.3 @@ -41,7 +41,7 @@ Calculate the maximum message size that will fit into a packet of size .Fa max_tp_unit_len , given the current service and QoP setting. .Sh PARAMETERS -.Bl -tag +.Bl -tag -width ".It max_tp_unit_len" .It auth A handle to a RPCSEC_GSS security context .It max_tp_unit_len diff --git a/lib/librpcsec_gss/rpc_gss_mech_to_oid.3 b/lib/librpcsec_gss/rpc_gss_mech_to_oid.3 index 3449d0eb899e..14bd5ee8e767 100644 --- a/lib/librpcsec_gss/rpc_gss_mech_to_oid.3 +++ b/lib/librpcsec_gss/rpc_gss_mech_to_oid.3 @@ -40,7 +40,7 @@ This function looks up a mechanism by name by reading the file /etc/gss/mech. .Sh PARAMETERS -.Bl -tag +.Bl -tag -width ".It oid_ret" .It mech The mechanism name to search for .It oid_ret diff --git a/lib/librpcsec_gss/rpc_gss_oid_to_mech.3 b/lib/librpcsec_gss/rpc_gss_oid_to_mech.3 index af2e7d026ebf..661bdff851f0 100644 --- a/lib/librpcsec_gss/rpc_gss_oid_to_mech.3 +++ b/lib/librpcsec_gss/rpc_gss_oid_to_mech.3 @@ -40,7 +40,7 @@ This function looks up a mechanism by oid by reading the file /etc/gss/mech. .Sh PARAMETERS -.Bl -tag +.Bl -tag -width ".It mech_ret" .It oid The mechanism oid to search for .It mech_ret diff --git a/lib/librpcsec_gss/rpc_gss_qop_to_num.3 b/lib/librpcsec_gss/rpc_gss_qop_to_num.3 index 6f52b7bcfc03..0f95d278bf31 100644 --- a/lib/librpcsec_gss/rpc_gss_qop_to_num.3 +++ b/lib/librpcsec_gss/rpc_gss_qop_to_num.3 @@ -40,7 +40,7 @@ This function looks up a quality of protection by name by reading the file /etc/gss/qop. .Sh PARAMETERS -.Bl -tag +.Bl -tag -width ".It number_ret" .It qop The quality of protection to search for .It mech diff --git a/lib/librpcsec_gss/rpc_gss_seccreate.3 b/lib/librpcsec_gss/rpc_gss_seccreate.3 index 63978a5801a0..836df2378feb 100644 --- a/lib/librpcsec_gss/rpc_gss_seccreate.3 +++ b/lib/librpcsec_gss/rpc_gss_seccreate.3 @@ -48,7 +48,7 @@ This function is used to establish a security context between an application and a remote peer using the RPSEC_GSS protocol. .Sh PARAMETERS -.Bl -tag +.Bl -tag -width "options_req" .It clnt An RPC handle which is connected to the remote peer .It principal @@ -62,7 +62,7 @@ The value of mechanism should be the name of one of the security mechanisms listed in /etc/gss/mech. .It service Type of service requested. -.Bl -tag +.Bl -tag -width "rpc_gss_svc_integrity" .It rpc_gss_svc_default The default - typically the same as .Dv rpc_gss_svc_none . diff --git a/lib/librpcsec_gss/rpc_gss_set_callback.3 b/lib/librpcsec_gss/rpc_gss_set_callback.3 index eb9022714928..4226285288a0 100644 --- a/lib/librpcsec_gss/rpc_gss_set_callback.3 +++ b/lib/librpcsec_gss/rpc_gss_set_callback.3 @@ -62,7 +62,7 @@ protection used by the context. If a context is locked, any subsequent requests which use different values for service and quality of protection will be rejected. .Sh PARAMETERS -.Bl -tag +.Bl -tag -width ".It gss_context" .It cb A structure containing the RPC program and version for this callback and a function which will be called when new contexts are created for diff --git a/lib/librpcsec_gss/rpc_gss_set_defaults.3 b/lib/librpcsec_gss/rpc_gss_set_defaults.3 index e9b062d0f7a4..72f22147682c 100644 --- a/lib/librpcsec_gss/rpc_gss_set_defaults.3 +++ b/lib/librpcsec_gss/rpc_gss_set_defaults.3 @@ -45,7 +45,7 @@ Set the service and quality of protection to be used for RPC requests. The new values apply for the rest of the lifetime of the context (unless changed again with this function). .Sh PARAMETERS -.Bl -tag +.Bl -tag -width ".It service" .It service The service type to use for subsequent RPC requests .It qop diff --git a/lib/librpcsec_gss/rpc_gss_set_svc_name.3 b/lib/librpcsec_gss/rpc_gss_set_svc_name.3 index b63d38bd9e5c..a06d7d39aef5 100644 --- a/lib/librpcsec_gss/rpc_gss_set_svc_name.3 +++ b/lib/librpcsec_gss/rpc_gss_set_svc_name.3 @@ -47,7 +47,7 @@ This function registers a service principal which will be used to authenticate RPCSEC_GSS security contexts for a given RPC program and version. .Sh PARAMETERS -.Bl -tag +.Bl -tag -width ".It mechanism" .It principal A string representing the service principal in the form .Qq service@hostname diff --git a/lib/librpcsec_gss/rpc_gss_svc_max_data_length.3 b/lib/librpcsec_gss/rpc_gss_svc_max_data_length.3 index fdf24a6767bd..f466e107434f 100644 --- a/lib/librpcsec_gss/rpc_gss_svc_max_data_length.3 +++ b/lib/librpcsec_gss/rpc_gss_svc_max_data_length.3 @@ -41,7 +41,7 @@ Calculate the maximum message size that will fit into a packet of size .Fa max_tp_unit_len , given the current service and QoP setting. .Sh PARAMETERS -.Bl -tag +.Bl -tag -width ".It max_tp_unit_len" .It req An RPC request .It max_tp_unit_len From d13b0c3f274974fabddfaeaa93ad8781c737bd9d Mon Sep 17 00:00:00 2001 From: Fabien Thomas Date: Wed, 6 Jun 2012 08:58:31 +0000 Subject: [PATCH 035/340] Remove spurious ARM symbols from lookup table. MFC after: 3 days --- usr.sbin/pmcstat/pmcstat_log.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/usr.sbin/pmcstat/pmcstat_log.c b/usr.sbin/pmcstat/pmcstat_log.c index b7f5a233f397..e5fee35a1c4d 100644 --- a/usr.sbin/pmcstat/pmcstat_log.c +++ b/usr.sbin/pmcstat/pmcstat_log.c @@ -554,6 +554,14 @@ pmcstat_image_add_symbols(struct pmcstat_image *image, Elf *e, if ((fnname = elf_strptr(e, sh->sh_link, sym.st_name)) == NULL) continue; +#ifdef __arm__ + /* Remove spurious ARM function name. */ + if (fnname[0] == '$' && + (fnname[1] == 'a' || fnname[1] == 't' || + fnname[1] == 'd') && + fnname[2] == '\0') + continue; +#endif symptr->ps_name = pmcstat_string_intern(fnname); symptr->ps_start = sym.st_value - image->pi_vaddr; From 4fb52be9c28e2c209287534c045874130cef302e Mon Sep 17 00:00:00 2001 From: Sergey Kandaurov Date: Wed, 6 Jun 2012 09:07:50 +0000 Subject: [PATCH 036/340] Fix the build. --- sys/dev/ae/if_ae.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/dev/ae/if_ae.c b/sys/dev/ae/if_ae.c index 9e10780a48aa..e49b92689ff5 100644 --- a/sys/dev/ae/if_ae.c +++ b/sys/dev/ae/if_ae.c @@ -1381,7 +1381,7 @@ ae_pm_init(ae_softc_t *sc) /* * Configure PME. */ - if (pci_find_cap(dev, PCIY_PMG, &pmc) == 0) { + if (pci_find_cap(sc->dev, PCIY_PMG, &pmc) == 0) { pmstat = pci_read_config(sc->dev, pmc + PCIR_POWER_STATUS, 2); pmstat &= ~(PCIM_PSTAT_PME | PCIM_PSTAT_PMEENABLE); if ((ifp->if_capenable & IFCAP_WOL) != 0) From 40874f18de0027b8ae8bf303f98a278ef6c69bb7 Mon Sep 17 00:00:00 2001 From: Gleb Smirnoff Date: Wed, 6 Jun 2012 09:36:52 +0000 Subject: [PATCH 037/340] Merge revision 1.715 from OpenBSD: date: 2010/12/24 20:12:56; author: henning; state: Exp; lines: +3 -3 in pf_src_connlimit, the indices to sk->addr were swapped. tracked down and diff sent by Robert B Mills thanks, very good work! ok claudio Impact is that the "flush" keyword didn't work. Obtained from: OpenBSD MFC after: 1 week --- sys/contrib/pf/net/pf.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/contrib/pf/net/pf.c b/sys/contrib/pf/net/pf.c index 7058b7dca4d2..ac5128262697 100644 --- a/sys/contrib/pf/net/pf.c +++ b/sys/contrib/pf/net/pf.c @@ -643,10 +643,10 @@ pf_src_connlimit(struct pf_state **state) (*state)->key[PF_SK_WIRE]->af && (((*state)->direction == PF_OUT && PF_AEQ(&(*state)->src_node->addr, - &sk->addr[0], sk->af)) || + &sk->addr[1], sk->af)) || ((*state)->direction == PF_IN && PF_AEQ(&(*state)->src_node->addr, - &sk->addr[1], sk->af))) && + &sk->addr[0], sk->af))) && ((*state)->rule.ptr->flush & PF_FLUSH_GLOBAL || (*state)->rule.ptr == st->rule.ptr)) { From 3d2a7480b3a8e76d60f97c6ee4c8affbdfb2e4af Mon Sep 17 00:00:00 2001 From: John Baldwin Date: Wed, 6 Jun 2012 13:35:30 +0000 Subject: [PATCH 038/340] Use the defined terms "readers" and "writers" to simplify some text. --- share/man/man9/rwlock.9 | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/share/man/man9/rwlock.9 b/share/man/man9/rwlock.9 index f7da699a4583..45fc3bd804d8 100644 --- a/share/man/man9/rwlock.9 +++ b/share/man/man9/rwlock.9 @@ -114,12 +114,10 @@ cannot be held while sleeping. The .Nm locks have priority propagation like mutexes, but priority -can be propagated only to an exclusive holder. -This limitation comes from the fact that shared owners +can be propagated only to writers. +This limitation comes from the fact that readers are anonymous. -Another important property is that shared holders of -.Nm -can recurse, +Another important property is that readers can always recurse, and exclusive locks can be made recursive selectively. .Ss Macros and Functions .Bl -tag -width indent From c6aea9681a951fc9d35b0a4b9b8fa3fc22b849ae Mon Sep 17 00:00:00 2001 From: Warner Losh Date: Wed, 6 Jun 2012 14:31:14 +0000 Subject: [PATCH 039/340] Remove stray break; that resulted from a last-minute, untested change. --- sys/arm/at91/at91sam9260.c | 1 - 1 file changed, 1 deletion(-) diff --git a/sys/arm/at91/at91sam9260.c b/sys/arm/at91/at91sam9260.c index 71448f41ea39..12d24a2962dc 100644 --- a/sys/arm/at91/at91sam9260.c +++ b/sys/arm/at91/at91sam9260.c @@ -200,7 +200,6 @@ at91_identify(driver_t *drv, device_t parent) if (soc_data.type == AT91_CPU_SAM9260) { at91_add_child(parent, 0, "at91sam9260", 0, 0, 0, -1, 0, 0); at91_cpu_add_builtin_children(parent); - break; } } From 548194db7da38f125387719a92892c3469e27ff0 Mon Sep 17 00:00:00 2001 From: Konstantin Belousov Date: Wed, 6 Jun 2012 16:26:55 +0000 Subject: [PATCH 040/340] Add gettimeofday() test. MFC after: 3 days --- tools/tools/syscall_timing/syscall_timing.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/tools/tools/syscall_timing/syscall_timing.c b/tools/tools/syscall_timing/syscall_timing.c index 2fb2add241fd..756fec90aeba 100644 --- a/tools/tools/syscall_timing/syscall_timing.c +++ b/tools/tools/syscall_timing/syscall_timing.c @@ -141,6 +141,22 @@ test_clock_gettime(uintmax_t num, uintmax_t int_arg, const char *path) return (i); } +uintmax_t +test_gettimeofday(uintmax_t num, uintmax_t int_arg, const char *path) +{ + struct timeval tv; + uintmax_t i; + + benchmark_start(); + for (i = 0; i < num; i++) { + if (alarm_fired) + break; + (void)gettimeofday(&tv, NULL); + } + benchmark_stop(); + return (i); +} + uintmax_t test_pipe(uintmax_t num, uintmax_t int_arg, const char *path) { @@ -608,6 +624,7 @@ static const struct test tests[] = { { "getuid", test_getuid }, { "getppid", test_getppid }, { "clock_gettime", test_clock_gettime }, + { "gettimeofday", test_gettimeofday }, { "pipe", test_pipe }, { "socket_local_stream", test_socket_stream, .t_int = PF_LOCAL }, { "socket_local_dgram", test_socket_dgram, .t_int = PF_LOCAL }, From bfb68a9e43347523460d3f23c20a9a41eb3b9d6a Mon Sep 17 00:00:00 2001 From: Konstantin Belousov Date: Wed, 6 Jun 2012 16:30:16 +0000 Subject: [PATCH 041/340] Improve handling of uiomove(9) errors for the NFS client. Do not brelse() the buffer unconditionally with BIO_ERROR set if uiomove() failed. The brelse() treats most buffers with BIO_ERROR as B_INVAL, dropping their content. Instead, if the write request covered the whole buffer, remember the cached state and brelse() with BIO_ERROR set only if the buffer was not cached previously. Update the buffer dirtyoff/dirtyend based on the progress recorded by uiomove() in passed struct uio, even in the presence of error. Otherwise, usermode could see changed data in the backed pages, but later the buffer is destroyed without write-back. If uiomove() failed for IO_UNIT request, try to truncate the vnode back to the pre-write state, and rewind the progress in passed uio accordingly, following the FFS behaviour. Reviewed by: rmacklem (some time ago) Tested by: pho MFC after: 1 month --- sys/fs/nfsclient/nfs_clbio.c | 56 ++++++++++++++++++++++++++++++------ 1 file changed, 48 insertions(+), 8 deletions(-) diff --git a/sys/fs/nfsclient/nfs_clbio.c b/sys/fs/nfsclient/nfs_clbio.c index 153f81a007b9..4369912653b1 100644 --- a/sys/fs/nfsclient/nfs_clbio.c +++ b/sys/fs/nfsclient/nfs_clbio.c @@ -897,8 +897,9 @@ ncl_write(struct vop_write_args *ap) struct nfsmount *nmp = VFSTONFS(vp->v_mount); daddr_t lbn; int bcount; - int n, on, error = 0; - off_t tmp_off; + int bp_cached, n, on, error = 0; + size_t orig_resid, local_resid; + off_t orig_size, tmp_off; KASSERT(uio->uio_rw == UIO_WRITE, ("ncl_write mode")); KASSERT(uio->uio_segflg != UIO_USERSPACE || uio->uio_td == curthread, @@ -950,6 +951,11 @@ ncl_write(struct vop_write_args *ap) mtx_unlock(&np->n_mtx); } + orig_resid = uio->uio_resid; + mtx_lock(&np->n_mtx); + orig_size = np->n_size; + mtx_unlock(&np->n_mtx); + /* * If IO_APPEND then load uio_offset. We restart here if we cannot * get the append lock. @@ -1127,7 +1133,10 @@ ncl_write(struct vop_write_args *ap) * normally. */ + bp_cached = 1; if (on == 0 && n == bcount) { + if ((bp->b_flags & B_CACHE) == 0) + bp_cached = 0; bp->b_flags |= B_CACHE; bp->b_flags &= ~B_INVAL; bp->b_ioflags &= ~BIO_ERROR; @@ -1193,8 +1202,24 @@ ncl_write(struct vop_write_args *ap) goto again; } + local_resid = uio->uio_resid; error = uiomove((char *)bp->b_data + on, n, uio); + if (error != 0 && !bp_cached) { + /* + * This block has no other content then what + * possibly was written by the faulty uiomove. + * Release it, forgetting the data pages, to + * prevent the leak of uninitialized data to + * usermode. + */ + bp->b_ioflags |= BIO_ERROR; + brelse(bp); + uio->uio_offset -= local_resid - uio->uio_resid; + uio->uio_resid = local_resid; + break; + } + /* * Since this block is being modified, it must be written * again and not just committed. Since write clustering does @@ -1203,17 +1228,18 @@ ncl_write(struct vop_write_args *ap) */ bp->b_flags &= ~(B_NEEDCOMMIT | B_CLUSTEROK); - if (error) { - bp->b_ioflags |= BIO_ERROR; - brelse(bp); - break; - } + /* + * Get the partial update on the progress made from + * uiomove, if an error occured. + */ + if (error != 0) + n = local_resid - uio->uio_resid; /* * Only update dirtyoff/dirtyend if not a degenerate * condition. */ - if (n) { + if (n > 0) { if (bp->b_dirtyend > 0) { bp->b_dirtyoff = min(on, bp->b_dirtyoff); bp->b_dirtyend = max((on + n), bp->b_dirtyend); @@ -1242,8 +1268,22 @@ ncl_write(struct vop_write_args *ap) } else { bdwrite(bp); } + + if (error != 0) + break; } while (uio->uio_resid > 0 && n > 0); + if (error != 0) { + if (ioflag & IO_UNIT) { + VATTR_NULL(&vattr); + vattr.va_size = orig_size; + /* IO_SYNC is handled implicitely */ + (void)VOP_SETATTR(vp, &vattr, cred); + uio->uio_offset -= orig_resid - uio->uio_resid; + uio->uio_resid = orig_resid; + } + } + return (error); } From 8124c91fde5a4bd21b959e993768c3ac19f335b4 Mon Sep 17 00:00:00 2001 From: "David E. O'Brien" Date: Wed, 6 Jun 2012 16:51:33 +0000 Subject: [PATCH 042/340] Add to the description and spell check. --- share/man/man4/filemon.4 | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/share/man/man4/filemon.4 b/share/man/man4/filemon.4 index 801f4dfb5998..0726e5a7f411 100644 --- a/share/man/man4/filemon.4 +++ b/share/man/man4/filemon.4 @@ -10,7 +10,7 @@ .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software -.\" must display the following acknowledgement: +.\" must display the following acknowledgment: .\" This product includes software developed by David E. O'Brien and .\" contributors. .\" 4. Neither the name of the author nor the names of its contributors @@ -19,7 +19,7 @@ .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" IMPLIED WARRANTIES OF MERCHANT ABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS @@ -87,12 +87,13 @@ following records can represent a single .Xr open 2 for R/W, -or two seperate +or two separate .Xr open 2 calls, one for .Ql R and one for .Ql W . +Note that only successful system calls are captured. .Sh IOCTLS User mode programs communicate with the .Nm @@ -168,7 +169,8 @@ buffer contents to it. .Sh SEE ALSO .Xr dtrace 1 , .Xr ktrace 1 , -.Xr truss 1 +.Xr truss 1 , +.Xr ioctl 2 .Sh HISTORY A .Nm From d36f5410dd1bd51431837ae7c920616dd8b444f5 Mon Sep 17 00:00:00 2001 From: "Kenneth D. Merry" Date: Wed, 6 Jun 2012 17:04:56 +0000 Subject: [PATCH 043/340] Fix a memory leak in the kernel case in scsi_command_string(). Submitted by: Kashyap Desai MFC after: 3 days --- sys/cam/scsi/scsi_all.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sys/cam/scsi/scsi_all.c b/sys/cam/scsi/scsi_all.c index 239e803a7bfa..abfa879d95e5 100644 --- a/sys/cam/scsi/scsi_all.c +++ b/sys/cam/scsi/scsi_all.c @@ -3059,6 +3059,10 @@ scsi_command_string(struct cam_device *device, struct ccb_scsiio *csio, sizeof(cdb_str))); } +#ifdef _KERNEL + xpt_free_ccb((union ccb *)cgd); +#endif + return(0); } From cec88f9c0d6d622ebb8fed26ee254307f614f3ce Mon Sep 17 00:00:00 2001 From: Konstantin Belousov Date: Wed, 6 Jun 2012 17:26:52 +0000 Subject: [PATCH 044/340] Do not execute a needed statement with side-effect in assert(). MFC after: 3 days --- tools/tools/syscall_timing/syscall_timing.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/tools/tools/syscall_timing/syscall_timing.c b/tools/tools/syscall_timing/syscall_timing.c index 756fec90aeba..175c1bc9bd6c 100644 --- a/tools/tools/syscall_timing/syscall_timing.c +++ b/tools/tools/syscall_timing/syscall_timing.c @@ -71,20 +71,24 @@ alarm_handler(int signum) static void benchmark_start(void) { + int error; alarm_fired = 0; if (alarm_timeout) { signal(SIGALRM, alarm_handler); alarm(alarm_timeout); } - assert(clock_gettime(CLOCK_REALTIME, &ts_start) == 0); + error = clock_gettime(CLOCK_REALTIME, &ts_start); + assert(error == 0); } static void benchmark_stop(void) { + int error; - assert(clock_gettime(CLOCK_REALTIME, &ts_end) == 0); + error = clock_gettime(CLOCK_REALTIME, &ts_end); + assert(error == 0); } uintmax_t @@ -687,7 +691,7 @@ main(int argc, char *argv[]) const char *path; long long ll; char *endp; - int ch, i, j, k; + int ch, error, i, j, k; uintmax_t iterations, loops; alarm_timeout = 1; @@ -756,7 +760,8 @@ main(int argc, char *argv[]) } } - assert(clock_getres(CLOCK_REALTIME, &ts_res) == 0); + error = clock_getres(CLOCK_REALTIME, &ts_res); + assert(error == 0); printf("Clock resolution: %ju.%09ju\n", (uintmax_t)ts_res.tv_sec, (uintmax_t)ts_res.tv_nsec); printf("test\tloop\ttime\titerations\tperiteration\n"); From 3d9a151daf387999322f580fca5d467954010d11 Mon Sep 17 00:00:00 2001 From: Alexander Motin Date: Wed, 6 Jun 2012 17:28:46 +0000 Subject: [PATCH 045/340] Remove declaration of scsi_interpret_sense(), removed 11 years ago. --- sys/cam/scsi/scsi_all.h | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/sys/cam/scsi/scsi_all.h b/sys/cam/scsi/scsi_all.h index 4875b1ac6c38..e57caad8d3ba 100644 --- a/sys/cam/scsi/scsi_all.h +++ b/sys/cam/scsi/scsi_all.h @@ -2183,12 +2183,6 @@ int scsi_sense_sbuf(struct ccb_scsiio *csio, struct sbuf *sb, char * scsi_sense_string(struct ccb_scsiio *csio, char *str, int str_len); void scsi_sense_print(struct ccb_scsiio *csio); -int scsi_interpret_sense(union ccb *ccb, - u_int32_t sense_flags, - u_int32_t *relsim_flags, - u_int32_t *reduction, - u_int32_t *timeout, - scsi_sense_action error_action); #else /* _KERNEL */ int scsi_command_string(struct cam_device *device, struct ccb_scsiio *csio, struct sbuf *sb); @@ -2200,13 +2194,6 @@ char * scsi_sense_string(struct cam_device *device, char *str, int str_len); void scsi_sense_print(struct cam_device *device, struct ccb_scsiio *csio, FILE *ofile); -int scsi_interpret_sense(struct cam_device *device, - union ccb *ccb, - u_int32_t sense_flags, - u_int32_t *relsim_flags, - u_int32_t *reduction, - u_int32_t *timeout, - scsi_sense_action error_action); #endif /* _KERNEL */ #define SF_RETRY_UA 0x01 From 6c9707c3b2d7d3a80890737c6e740adf8a603506 Mon Sep 17 00:00:00 2001 From: Maksim Yevmenkin Date: Wed, 6 Jun 2012 18:00:38 +0000 Subject: [PATCH 046/340] Count both IPv4 and IPv6 TCP connections in tcpCurrEstab Timeout from: current, syrinx MFC after: 1 week --- contrib/bsnmp/snmp_mibII/mibII_tcp.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/contrib/bsnmp/snmp_mibII/mibII_tcp.c b/contrib/bsnmp/snmp_mibII/mibII_tcp.c index 561216f0a5de..a61052d2eb92 100644 --- a/contrib/bsnmp/snmp_mibII/mibII_tcp.c +++ b/contrib/bsnmp/snmp_mibII/mibII_tcp.c @@ -109,10 +109,12 @@ fetch_tcp(void) ptr = (struct xinpgen *)(void *)((char *)ptr + ptr->xig_len)) { tp = (struct xtcpcb *)ptr; if (tp->xt_inp.inp_gencnt > xinpgen->xig_gen || - (tp->xt_inp.inp_vflag & INP_IPV4) == 0) + (tp->xt_inp.inp_vflag & (INP_IPV4|INP_IPV6)) == 0) continue; - tcp_total++; + if (tp->xt_inp.inp_vflag & INP_IPV4) + tcp_total++; + if (tp->xt_tp.t_state == TCPS_ESTABLISHED || tp->xt_tp.t_state == TCPS_CLOSE_WAIT) tcp_count++; From f61ac9d9bd906891feadcabecfe2b92d9e3e97a4 Mon Sep 17 00:00:00 2001 From: Dimitry Andric Date: Wed, 6 Jun 2012 21:16:26 +0000 Subject: [PATCH 047/340] Fix two warnings about self-assignment in libc. These normally only trigger with clang, when you either use -save-temps, or ccache. Reported by: Sevan / Venture37 MFC after: 3 days --- lib/libc/include/port_before.h | 2 +- lib/libc/net/getaddrinfo.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/libc/include/port_before.h b/lib/libc/include/port_before.h index beef71d02607..304dd66df03f 100644 --- a/lib/libc/include/port_before.h +++ b/lib/libc/include/port_before.h @@ -17,6 +17,6 @@ var = _u.v; \ } while (0) -#define UNUSED(x) (x) = (x) +#define UNUSED(x) (void)(x) #endif /* _PORT_BEFORE_H_ */ diff --git a/lib/libc/net/getaddrinfo.c b/lib/libc/net/getaddrinfo.c index 8083c390b3b6..dc2641f731e3 100644 --- a/lib/libc/net/getaddrinfo.c +++ b/lib/libc/net/getaddrinfo.c @@ -464,7 +464,7 @@ getaddrinfo(const char *hostname, const char *servname, } error = get_portmatch(pai, servname); if (error) - ERR(error); + goto bad; *pai = ai0; } From 144a0724993432530a1251271676f41e42521c89 Mon Sep 17 00:00:00 2001 From: Kevin Lo Date: Thu, 7 Jun 2012 02:24:27 +0000 Subject: [PATCH 048/340] Fix a logic error when use PCIY_PMG capability Reviewed by: yongari --- sys/dev/jme/if_jme.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/dev/jme/if_jme.c b/sys/dev/jme/if_jme.c index eda180793258..7f0f9174f8af 100644 --- a/sys/dev/jme/if_jme.c +++ b/sys/dev/jme/if_jme.c @@ -1661,7 +1661,7 @@ jme_resume(device_t dev) sc = device_get_softc(dev); JME_LOCK(sc); - if (pci_find_cap(sc->jme_dev, PCIY_PMG, &pmc) != 0) { + if (pci_find_cap(sc->jme_dev, PCIY_PMG, &pmc) == 0) { pmstat = pci_read_config(sc->jme_dev, pmc + PCIR_POWER_STATUS, 2); /* Disable PME clear PME status. */ From 55b5758c9055b2f2dbd80b6a2f16b29bf13a9934 Mon Sep 17 00:00:00 2001 From: Pyun YongHyeon Date: Thu, 7 Jun 2012 03:22:20 +0000 Subject: [PATCH 049/340] Fix typo. Submitted by: Alexander Milanov < a <> amilanov dot com > --- sys/dev/bge/if_bgereg.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/dev/bge/if_bgereg.h b/sys/dev/bge/if_bgereg.h index 8a58b85d62de..ab70692bd395 100644 --- a/sys/dev/bge/if_bgereg.h +++ b/sys/dev/bge/if_bgereg.h @@ -779,11 +779,11 @@ #define BGE_LEDCTL_10MBPS_LED 0x00000008 #define BGE_LEDCTL_TRAFLED_OVERRIDE 0x00000010 #define BGE_LEDCTL_TRAFLED_BLINK 0x00000020 -#define BGE_LEDCTL_TREFLED_BLINK_2 0x00000040 +#define BGE_LEDCTL_TRAFLED_BLINK_2 0x00000040 #define BGE_LEDCTL_1000MBPS_STS 0x00000080 #define BGE_LEDCTL_100MBPS_STS 0x00000100 #define BGE_LEDCTL_10MBPS_STS 0x00000200 -#define BGE_LEDCTL_TRADLED_STS 0x00000400 +#define BGE_LEDCTL_TRAFLED_STS 0x00000400 #define BGE_LEDCTL_BLINKPERIOD 0x7FF80000 #define BGE_LEDCTL_BLINKPERIOD_OVERRIDE 0x80000000 From 923bc36411b1c94aeea76532a89659a459e6de96 Mon Sep 17 00:00:00 2001 From: Martin Matuska Date: Thu, 7 Jun 2012 08:32:53 +0000 Subject: [PATCH 050/340] Import Illumos revision 13715:351036203e4b 2803 zfs get guid pretty-prints the output References: https://www.illumos.org/issues/2803 Obtained from: illumos (issue #2803) MFC after: 3 days --- .../opensolaris/lib/libzfs/common/libzfs_dataset.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c b/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c index c01cffe5a7a2..fcd43a03c63b 100644 --- a/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c +++ b/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c @@ -23,6 +23,7 @@ * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2010 Nexenta Systems, Inc. All rights reserved. * Copyright (c) 2011 by Delphix. All rights reserved. + * Copyright (c) 2012 DEY Storage Systems, Inc. All rights reserved. * Copyright (c) 2011-2012 Pawel Jakub Dawidek . * All rights reserved. * Copyright (c) 2012 Martin Matuska . All rights reserved. @@ -2321,6 +2322,17 @@ zfs_prop_get(zfs_handle_t *zhp, zfs_prop_t prop, char *propbuf, size_t proplen, } break; + case ZFS_PROP_GUID: + /* + * GUIDs are stored as numbers, but they are identifiers. + * We don't want them to be pretty printed, because pretty + * printing mangles the ID into a truncated and useless value. + */ + if (get_numeric_property(zhp, prop, src, &source, &val) != 0) + return (-1); + (void) snprintf(propbuf, proplen, "%llu", (u_longlong_t)val); + break; + default: switch (zfs_prop_get_type(prop)) { case PROP_TYPE_NUMBER: From 2a4989cd1c0cfa341152da79543b1d214833dc8e Mon Sep 17 00:00:00 2001 From: "Bjoern A. Zeeb" Date: Thu, 7 Jun 2012 09:14:28 +0000 Subject: [PATCH 051/340] TinyBSD now seems to be hosted elsewhere. --- tools/tools/tinybsd/README | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/tools/tinybsd/README b/tools/tools/tinybsd/README index 7f3fc05c1186..ff1bf28b3afa 100644 --- a/tools/tools/tinybsd/README +++ b/tools/tools/tinybsd/README @@ -256,4 +256,4 @@ TinyBSD is still a project under heavy development, both the script itself and its documentation. In case you'd like to try or use the BETA version of the script, feel free to -download it from the project's official site at http://www.tinybsd.org. +download it from the project's official site at http://code.google.com/p/tinybsd/. From f0f25b9c80d8039952cb10874ee0748e5f9cb8a6 Mon Sep 17 00:00:00 2001 From: Alexander Motin Date: Thu, 7 Jun 2012 10:05:51 +0000 Subject: [PATCH 052/340] To make CAM debugging easier, compile in some debug flags (CAM_DEBUG_INFO, CAM_DEBUG_CDB, CAM_DEBUG_PERIPH and CAM_DEBUG_PROBE) by default. List of these flags can be modified with CAM_DEBUG_COMPILE kernel option. CAMDEBUG kernel option still enables all possible debug, if not overriden. Additional 50KB of kernel size is a good price for the ability to debug problems without rebuilding the kernel. In case where size is important, debugging can be compiled out by setting CAM_DEBUG_COMPILE option to 0. --- share/man/man4/scsi.4 | 69 +++++++++++++++++--------------------- sys/cam/cam_debug.h | 50 +++++++++++++++++++++------ sys/cam/cam_xpt.c | 36 ++++++-------------- sys/cam/cam_xpt.h | 22 ------------ sys/cam/scsi/scsi_sa.c | 6 ---- sys/cam/scsi/scsi_target.c | 4 --- sys/conf/NOTES | 19 ++++++----- sys/conf/options | 1 + 8 files changed, 90 insertions(+), 117 deletions(-) diff --git a/share/man/man4/scsi.4 b/share/man/man4/scsi.4 index ad52663c070d..fa5e05d589b9 100644 --- a/share/man/man4/scsi.4 +++ b/share/man/man4/scsi.4 @@ -24,7 +24,7 @@ .\" SUCH DAMAGE. .\" .\" $FreeBSD$ -.Dd March 4, 2010 +.Dd June 7, 2012 .Dt CAM 4 .Os .Sh NAME @@ -43,6 +43,7 @@ .Cd "options CAM_DEBUG_BUS=-1" .Cd "options CAM_DEBUG_TARGET=-1" .Cd "options CAM_DEBUG_LUN=-1" +.Cd "options CAM_DEBUG_COMPILE=CAM_DEBUG_INFO|CAM_DEBUG_CDB|CAM_DEBUG_PROBE" .Cd "options CAM_DEBUG_FLAGS=CAM_DEBUG_INFO|CAM_DEBUG_CDB" .Cd "options CAM_MAX_HIGHPOWER=4" .Cd "options SCSI_NO_SENSE_STRINGS" @@ -72,12 +73,11 @@ There are a number of generic kernel configuration options for the subsystem: .Bl -tag -width SCSI_NO_SENSE_STRINGS .It Dv CAMDEBUG -This option enables the +This option compiles in all the .Nm debugging printf code. This will not actually cause any debugging information to be printed out when included by itself. -Enabling printouts requires additional configuration. See below for details. .It Dv "CAM_MAX_HIGHPOWER=4" This sets the maximum allowable number of concurrent "high power" commands. @@ -248,54 +248,53 @@ see other .Nm device entries. .Sh DIAGNOSTICS -When the kernel is compiled with options CAMDEBUG, an XPT_DEBUG CCB can be -used to enable various amounts of tracing information on any -specific device. -Devices not being traced will not produce trace information. -There are currently four debugging flags that may be turned on: +An XPT_DEBUG CCB can be used to enable various amounts of tracing information +on any specific bus/device from the list of options compiled into the kernel. +There are currently seven debugging flags that may be compiled in and used: .Bl -tag -width CAM_DEBUG_SUBTRACE .It Dv CAM_DEBUG_INFO -This debugging flag enables general informational printfs for the device +This flag enables general informational printfs for the device or devices in question. .It Dv CAM_DEBUG_TRACE -This debugging flag enables function-level command flow tracing. +This flag enables function-level command flow tracing. i.e.\& kernel printfs will happen at the entrance and exit of various functions. .It Dv CAM_DEBUG_SUBTRACE -This debugging flag enables debugging output internal to various functions. +This flag enables debugging output internal to various functions. .It Dv CAM_DEBUG_CDB -This debugging flag will cause the kernel to print out all +This flag will cause the kernel to print out all +.Tn ATA +and .Tn SCSI commands sent to a particular device or devices. +.It Dv CAM_DEBUG_XPT +This flag will enable command scheduler tracing. +.It Dv CAM_DEBUG_PERIPH +This flag will enable peripheral drivers messages. +.It Dv CAM_DEBUG_PROBE +This flag will enable devices probe process tracing. .El .Pp Some of these flags, most notably .Dv CAM_DEBUG_TRACE and -.Dv CAM_DEBUG_SUBTRACE -will produce kernel printfs in EXTREME numbers, -and because of that, they are not especially useful. -There are not many things logged at the -.Dv CAM_DEBUG_INFO -level, so it is not especially useful. -The most useful debugging flag is the -.Dv CAM_DEBUG_CDB -flag. +.Dv CAM_DEBUG_SUBTRACE , +will produce kernel printfs in EXTREME numbers. +.Pp Users can enable debugging from their kernel config file, by using the following kernel config options: -.Bl -tag -width CAM_DEBUG_TARGET +.Bl -tag -width CAM_DEBUG_COMPILE .It Dv CAMDEBUG -This enables +This builds into the kernel all possible .Nm debugging. -Without this option, users will not even be able -to turn on debugging from userland via -.Xr camcontrol 8 . -.It Dv CAM_DEBUG_FLAGS -This allows the user to set the various debugging flags described above -in a kernel config file. +.It Dv CAM_DEBUG_COMPILE +This allows to specify support for which debugging flags described above +should be built into the kernel. Flags may be ORed together if the user wishes to see printfs for multiple debugging levels. +.It Dv CAM_DEBUG_FLAGS +This allows to set the various debugging flags from a kernel config file. .It Dv CAM_DEBUG_BUS Specify a bus to debug. To debug all busses, set this to -1. @@ -307,17 +306,9 @@ Specify a lun to debug. To debug all luns, set this to -1. .El .Pp -When specifying a bus, target or lun to debug, you -.Em MUST -specify all three bus/target/lun options above. -Using wildcards, you -should be able to enable debugging on most anything. -.Pp -Users may also enable debugging printfs on the fly, if the -.Dv CAMDEBUG -option is their config file, by using the +Users may also enable debugging on the fly by using the .Xr camcontrol 8 -utility. +utility, if wanted options built into the kernel. See .Xr camcontrol 8 for details. diff --git a/sys/cam/cam_debug.h b/sys/cam/cam_debug.h index 857fa43c12af..e072ec1c715e 100644 --- a/sys/cam/cam_debug.h +++ b/sys/cam/cam_debug.h @@ -44,7 +44,35 @@ typedef enum { CAM_DEBUG_PROBE = 0x40 /* print out probe actions */ } cam_debug_flags; -#if defined(CAMDEBUG) && defined(_KERNEL) +#if defined(_KERNEL) + +#ifndef CAM_DEBUG_FLAGS +#define CAM_DEBUG_FLAGS CAM_DEBUG_NONE +#endif + +#ifndef CAM_DEBUG_COMPILE +#ifdef CAMDEBUG +#define CAM_DEBUG_COMPILE (-1) +#else +#define CAM_DEBUG_COMPILE (CAM_DEBUG_INFO | CAM_DEBUG_CDB | \ + CAM_DEBUG_PERIPH | CAM_DEBUG_PROBE | \ + CAM_DEBUG_FLAGS) +#endif +#endif + +#ifndef CAM_DEBUG_BUS +#define CAM_DEBUG_BUS (-1) +#endif +#ifndef CAM_DEBUG_TARGET +#define CAM_DEBUG_TARGET (-1) +#endif +#ifndef CAM_DEBUG_LUN +#define CAM_DEBUG_LUN (-1) +#endif + +#ifndef CAM_DEBUG_DELAY +#define CAM_DEBUG_DELAY 0 +#endif /* Path we want to debug */ extern struct cam_path *cam_dpath; @@ -52,48 +80,48 @@ extern struct cam_path *cam_dpath; extern u_int32_t cam_dflags; /* Printf delay value (to prevent scrolling) */ extern u_int32_t cam_debug_delay; - + /* Debugging macros. */ #define CAM_DEBUGGED(path, flag) \ - ((cam_dflags & (flag)) \ + (((flag) & (CAM_DEBUG_COMPILE) & cam_dflags) \ && (cam_dpath != NULL) \ && (xpt_path_comp(cam_dpath, path) >= 0) \ && (xpt_path_comp(cam_dpath, path) < 2)) #define CAM_DEBUG(path, flag, printfargs) \ - if ((cam_dflags & (flag)) \ + if (((flag) & (CAM_DEBUG_COMPILE) & cam_dflags) \ && (cam_dpath != NULL) \ && (xpt_path_comp(cam_dpath, path) >= 0) \ && (xpt_path_comp(cam_dpath, path) < 2)) { \ xpt_print_path(path); \ - printf printfargs; \ + printf printfargs; \ if (cam_debug_delay != 0) \ DELAY(cam_debug_delay); \ } #define CAM_DEBUG_PRINT(flag, printfargs) \ - if (cam_dflags & (flag)) { \ + if (((flag) & (CAM_DEBUG_COMPILE) & cam_dflags)) { \ printf("cam_debug: "); \ - printf printfargs; \ + printf printfargs; \ if (cam_debug_delay != 0) \ DELAY(cam_debug_delay); \ } #define CAM_DEBUG_PATH_PRINT(flag, path, printfargs) \ - if (cam_dflags & (flag)) { \ + if (((flag) & (CAM_DEBUG_COMPILE) & cam_dflags)) { \ xpt_print(path, "cam_debug: "); \ - printf printfargs; \ + printf printfargs; \ if (cam_debug_delay != 0) \ DELAY(cam_debug_delay); \ } -#else /* !CAMDEBUG || !_KERNEL */ +#else /* !_KERNEL */ #define CAM_DEBUGGED(A, B) 0 #define CAM_DEBUG(A, B, C) #define CAM_DEBUG_PRINT(A, B) #define CAM_DEBUG_PATH_PRINT(A, B, C) -#endif /* CAMDEBUG && _KERNEL */ +#endif /* _KERNEL */ #endif /* _CAM_CAM_DEBUG_H */ diff --git a/sys/cam/cam_xpt.c b/sys/cam/cam_xpt.c index b5bfccec56a3..0dc763df8e70 100644 --- a/sys/cam/cam_xpt.c +++ b/sys/cam/cam_xpt.c @@ -188,21 +188,15 @@ static struct cdevsw xpt_cdevsw = { }; /* Storage for debugging datastructures */ -#ifdef CAMDEBUG struct cam_path *cam_dpath; -#ifdef CAM_DEBUG_FLAGS u_int32_t cam_dflags = CAM_DEBUG_FLAGS; -#else -u_int32_t cam_dflags = CAM_DEBUG_NONE; -#endif TUNABLE_INT("kern.cam.dflags", &cam_dflags); SYSCTL_UINT(_kern_cam, OID_AUTO, dflags, CTLFLAG_RW, - &cam_dflags, 0, "Cam Debug Flags"); -u_int32_t cam_debug_delay; + &cam_dflags, 0, "Enabled debug flags"); +u_int32_t cam_debug_delay = CAM_DEBUG_DELAY; TUNABLE_INT("kern.cam.debug_delay", &cam_debug_delay); SYSCTL_UINT(_kern_cam, OID_AUTO, debug_delay, CTLFLAG_RW, - &cam_debug_delay, 0, "Cam Debug Flags"); -#endif + &cam_debug_delay, 0, "Delay in us after each debug message"); /* Our boot-time initialization hook */ static int cam_module_event_handler(module_t, int /*modeventtype_t*/, void *); @@ -2472,9 +2466,7 @@ xpt_action(union ccb *start_ccb) void xpt_action_default(union ccb *start_ccb) { -#ifdef CAMDEBUG char cdb_str[(SCSI_MAX_CDBLEN * 3) + 1]; -#endif struct cam_path *path; path = start_ccb->ccb_h.path; @@ -2980,16 +2972,17 @@ xpt_action_default(union ccb *start_ccb) break; } case XPT_DEBUG: { -#ifdef CAMDEBUG -#ifdef CAM_DEBUG_DELAY - cam_debug_delay = CAM_DEBUG_DELAY; -#endif + /* Check that all request bits are supported. */ + if (start_ccb->cdbg.flags & ~CAM_DEBUG_COMPILE) { + start_ccb->ccb_h.status = CAM_FUNC_NOTAVAIL; + break; + } + cam_dflags = start_ccb->cdbg.flags; if (cam_dpath != NULL) { xpt_free_path(cam_dpath); cam_dpath = NULL; } - if (cam_dflags != CAM_DEBUG_NONE) { if (xpt_create_path(&cam_dpath, xpt_periph, start_ccb->ccb_h.path_id, @@ -3007,9 +3000,6 @@ xpt_action_default(union ccb *start_ccb) cam_dpath = NULL; start_ccb->ccb_h.status = CAM_REQ_CMP; } -#else /* !CAMDEBUG */ - start_ccb->ccb_h.status = CAM_FUNC_NOTAVAIL; -#endif /* CAMDEBUG */ break; } case XPT_FREEZE_QUEUE: @@ -4760,9 +4750,7 @@ xpt_config(void *arg) * Now that interrupts are enabled, go find our devices */ -#ifdef CAMDEBUG - /* Setup debugging flags and path */ -#ifdef CAM_DEBUG_BUS + /* Setup debugging path */ if (cam_dflags != CAM_DEBUG_NONE) { /* * Locking is specifically omitted here. No SIMs have @@ -4779,10 +4767,6 @@ xpt_config(void *arg) } } else cam_dpath = NULL; -#else /* !CAM_DEBUG_BUS */ - cam_dpath = NULL; -#endif /* CAM_DEBUG_BUS */ -#endif /* CAMDEBUG */ periphdriver_init(1); xpt_hold_boot(); diff --git a/sys/cam/cam_xpt.h b/sys/cam/cam_xpt.h index 1d0e7f7d2381..492fa3a49561 100644 --- a/sys/cam/cam_xpt.h +++ b/sys/cam/cam_xpt.h @@ -63,28 +63,6 @@ struct async_node { SLIST_HEAD(async_list, async_node); SLIST_HEAD(periph_list, cam_periph); -#if defined(CAM_DEBUG_FLAGS) && !defined(CAMDEBUG) -#error "You must have options CAMDEBUG to use options CAM_DEBUG_FLAGS" -#endif - -/* - * In order to enable the CAM_DEBUG_* options, the user must have CAMDEBUG - * enabled. Also, the user must have either none, or all of CAM_DEBUG_BUS, - * CAM_DEBUG_TARGET, and CAM_DEBUG_LUN specified. - */ -#if defined(CAM_DEBUG_BUS) || defined(CAM_DEBUG_TARGET) \ - || defined(CAM_DEBUG_LUN) -#ifdef CAMDEBUG -#if !defined(CAM_DEBUG_BUS) || !defined(CAM_DEBUG_TARGET) \ - || !defined(CAM_DEBUG_LUN) -#error "You must define all or none of CAM_DEBUG_BUS, CAM_DEBUG_TARGET \ - and CAM_DEBUG_LUN" -#endif /* !CAM_DEBUG_BUS || !CAM_DEBUG_TARGET || !CAM_DEBUG_LUN */ -#else /* !CAMDEBUG */ -#error "You must use options CAMDEBUG if you use the CAM_DEBUG_* options" -#endif /* CAMDEBUG */ -#endif /* CAM_DEBUG_BUS || CAM_DEBUG_TARGET || CAM_DEBUG_LUN */ - void xpt_action(union ccb *new_ccb); void xpt_action_default(union ccb *new_ccb); union ccb *xpt_alloc_ccb(void); diff --git a/sys/cam/scsi/scsi_sa.c b/sys/cam/scsi/scsi_sa.c index 42761bf5bacb..45e1d148b43d 100644 --- a/sys/cam/scsi/scsi_sa.c +++ b/sys/cam/scsi/scsi_sa.c @@ -1482,10 +1482,6 @@ saregister(struct cam_periph *periph, void *arg) softc->quirks = ((struct sa_quirk_entry *)match)->quirks; softc->last_media_blksize = ((struct sa_quirk_entry *)match)->prefblk; -#ifdef CAMDEBUG - xpt_print(periph->path, "found quirk entry %d\n", - (int) (((struct sa_quirk_entry *) match) - sa_quirk_table)); -#endif } else softc->quirks = SA_QUIRK_NONE; @@ -1798,13 +1794,11 @@ sadone(struct cam_periph *periph, union ccb *done_ccb) */ if (error || (softc->flags & SA_FLAG_ERR_PENDING)) cam_release_devq(done_ccb->ccb_h.path, 0, 0, 0, 0); -#ifdef CAMDEBUG if (error || bp->bio_resid) { CAM_DEBUG(periph->path, CAM_DEBUG_INFO, ("error %d resid %ld count %ld\n", error, bp->bio_resid, bp->bio_bcount)); } -#endif biofinish(bp, softc->device_stats, 0); break; } diff --git a/sys/cam/scsi/scsi_target.c b/sys/cam/scsi/scsi_target.c index 65f2388ddb1e..c45e8d5e4dbf 100644 --- a/sys/cam/scsi/scsi_target.c +++ b/sys/cam/scsi/scsi_target.c @@ -266,7 +266,6 @@ targioctl(struct cdev *dev, u_long cmd, caddr_t addr, int flag, struct thread *t break; case TARGIOCDEBUG: { -#ifdef CAMDEBUG struct ccb_debug cdbg; /* If no periph available, disallow debugging changes */ @@ -287,9 +286,6 @@ targioctl(struct cdev *dev, u_long cmd, caddr_t addr, int flag, struct thread *t xpt_action((union ccb *)&cdbg); cam_periph_unlock(softc->periph); status = cdbg.ccb_h.status & CAM_STATUS_MASK; -#else - status = CAM_FUNC_NOTAVAIL; -#endif break; } default: diff --git a/sys/conf/NOTES b/sys/conf/NOTES index 354362a8302c..1d4b29fde0ee 100644 --- a/sys/conf/NOTES +++ b/sys/conf/NOTES @@ -1305,14 +1305,13 @@ device ctl #CAM Target Layer # CAM OPTIONS: # debugging options: -# -- NOTE -- If you specify one of the bus/target/lun options, you must -# specify them all! -# CAMDEBUG: When defined enables debugging macros -# CAM_DEBUG_BUS: Debug the given bus. Use -1 to debug all busses. -# CAM_DEBUG_TARGET: Debug the given target. Use -1 to debug all targets. -# CAM_DEBUG_LUN: Debug the given lun. Use -1 to debug all luns. -# CAM_DEBUG_FLAGS: OR together CAM_DEBUG_INFO, CAM_DEBUG_TRACE, -# CAM_DEBUG_SUBTRACE, and CAM_DEBUG_CDB +# CAMDEBUG Compile in all possible debugging. +# CAM_DEBUG_COMPILE Debug levels to compile in. +# CAM_DEBUG_FLAGS Debug levels to enable on boot. +# CAM_DEBUG_BUS Limit debugging to the given bus. +# CAM_DEBUG_TARGET Limit debugging to the given target. +# CAM_DEBUG_LUN Limit debugging to the given lun. +# CAM_DEBUG_DELAY Delay in us after printing each debug line. # # CAM_MAX_HIGHPOWER: Maximum number of concurrent high power (start unit) cmds # SCSI_NO_SENSE_STRINGS: When defined disables sense descriptions @@ -1323,10 +1322,12 @@ device ctl #CAM Target Layer # can be changed at boot and runtime with the # kern.cam.scsi_delay tunable/sysctl. options CAMDEBUG +options CAM_DEBUG_COMPILE=-1 +options CAM_DEBUG_FLAGS=(CAM_DEBUG_INFO|CAM_DEBUG_PROBE|CAM_DEBUG_PERIPH) options CAM_DEBUG_BUS=-1 options CAM_DEBUG_TARGET=-1 options CAM_DEBUG_LUN=-1 -options CAM_DEBUG_FLAGS=(CAM_DEBUG_INFO|CAM_DEBUG_TRACE|CAM_DEBUG_CDB) +options CAM_DEBUG_DELAY=1 options CAM_MAX_HIGHPOWER=4 options SCSI_NO_SENSE_STRINGS options SCSI_NO_OP_STRINGS diff --git a/sys/conf/options b/sys/conf/options index 8f810f4bf89c..ba678e1a0b3b 100644 --- a/sys/conf/options +++ b/sys/conf/options @@ -306,6 +306,7 @@ MAXSSIZ opt_param.h # Generic SCSI options. CAM_MAX_HIGHPOWER opt_cam.h CAMDEBUG opt_cam.h +CAM_DEBUG_COMPILE opt_cam.h CAM_DEBUG_DELAY opt_cam.h CAM_DEBUG_BUS opt_cam.h CAM_DEBUG_TARGET opt_cam.h From 22c7d606d5cdd476bb6f5413000b38e018a29d24 Mon Sep 17 00:00:00 2001 From: Alexander Motin Date: Thu, 7 Jun 2012 10:53:42 +0000 Subject: [PATCH 053/340] Add CAM_DEBUG_INFO debug messages for periph created/invalidated/destroyed and for asyncs sent. --- sys/cam/cam_periph.c | 4 ++++ sys/cam/cam_xpt.c | 28 +++++++++++++++++++++++++--- 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/sys/cam/cam_periph.c b/sys/cam/cam_periph.c index bf8d4ccb01ab..50bf5de907a5 100644 --- a/sys/cam/cam_periph.c +++ b/sys/cam/cam_periph.c @@ -240,6 +240,7 @@ cam_periph_alloc(periph_ctor_t *periph_ctor, goto failure; init_level++; + CAM_DEBUG(periph->path, CAM_DEBUG_INFO, ("Periph created\n")); status = periph_ctor(periph, arg); @@ -252,6 +253,7 @@ cam_periph_alloc(periph_ctor_t *periph_ctor, /* Initialized successfully */ break; case 3: + CAM_DEBUG(periph->path, CAM_DEBUG_INFO, ("Periph destroyed\n")); xpt_remove_periph(periph); /* FALLTHROUGH */ case 2: @@ -572,6 +574,7 @@ void cam_periph_invalidate(struct cam_periph *periph) { + CAM_DEBUG(periph->path, CAM_DEBUG_INFO, ("Periph invalidated\n")); /* * We only call this routine the first time a peripheral is * invalidated. @@ -610,6 +613,7 @@ camperiphfree(struct cam_periph *periph) if (periph->periph_dtor != NULL) periph->periph_dtor(periph); xpt_remove_periph(periph); + CAM_DEBUG(periph->path, CAM_DEBUG_INFO, ("Periph destroyed\n")); if (periph->flags & CAM_PERIPH_NEW_DEV_FOUND) { union ccb ccb; diff --git a/sys/cam/cam_xpt.c b/sys/cam/cam_xpt.c index 0dc763df8e70..9b88f425b74e 100644 --- a/sys/cam/cam_xpt.c +++ b/sys/cam/cam_xpt.c @@ -2973,7 +2973,7 @@ xpt_action_default(union ccb *start_ccb) } case XPT_DEBUG: { /* Check that all request bits are supported. */ - if (start_ccb->cdbg.flags & ~CAM_DEBUG_COMPILE) { + if (start_ccb->cdbg.flags & ~(CAM_DEBUG_COMPILE)) { start_ccb->ccb_h.status = CAM_FUNC_NOTAVAIL; break; } @@ -4033,6 +4033,28 @@ xptpathid(const char *sim_name, int sim_unit, int sim_bus) return (pathid); } +static const char * +xpt_async_string(u_int32_t async_code) +{ + + switch (async_code) { + case AC_BUS_RESET: return ("AC_BUS_RESET"); + case AC_UNSOL_RESEL: return ("AC_UNSOL_RESEL"); + case AC_SCSI_AEN: return ("AC_SCSI_AEN"); + case AC_SENT_BDR: return ("AC_SENT_BDR"); + case AC_PATH_REGISTERED: return ("AC_PATH_REGISTERED"); + case AC_PATH_DEREGISTERED: return ("AC_PATH_DEREGISTERED"); + case AC_FOUND_DEVICE: return ("AC_FOUND_DEVICE"); + case AC_LOST_DEVICE: return ("AC_LOST_DEVICE"); + case AC_TRANSFER_NEG: return ("AC_TRANSFER_NEG"); + case AC_INQ_CHANGED: return ("AC_INQ_CHANGED"); + case AC_GETDEV_CHANGED: return ("AC_GETDEV_CHANGED"); + case AC_CONTRACT: return ("AC_CONTRACT"); + case AC_ADVINFO_CHANGED: return ("AC_ADVINFO_CHANGED"); + } + return ("AC_UNKNOWN"); +} + void xpt_async(u_int32_t async_code, struct cam_path *path, void *async_arg) { @@ -4041,8 +4063,8 @@ xpt_async(u_int32_t async_code, struct cam_path *path, void *async_arg) struct cam_ed *device, *next_device; mtx_assert(path->bus->sim->mtx, MA_OWNED); - - CAM_DEBUG(path, CAM_DEBUG_TRACE, ("xpt_async\n")); + CAM_DEBUG(path, CAM_DEBUG_TRACE | CAM_DEBUG_INFO, + ("xpt_async(%s)\n", xpt_async_string(async_code))); /* * Most async events come from a CAM interrupt context. In From de27bf32207f7cbe520bb83a188611b4ed5218ed Mon Sep 17 00:00:00 2001 From: Warren Block Date: Thu, 7 Jun 2012 14:38:43 +0000 Subject: [PATCH 054/340] Add specific supported revision of ASUS USB-N13 ver. A1. http://lists.freebsd.org/pipermail/freebsd-doc/2012-June/019960.html Submitted by: PseudoCylon (AK) Approved by: bcr (mentor) MFC after: 3 days --- share/man/man4/run.4 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/share/man/man4/run.4 b/share/man/man4/run.4 index 469e904331e0..3640dc86420a 100644 --- a/share/man/man4/run.4 +++ b/share/man/man4/run.4 @@ -16,7 +16,7 @@ .\" .\" $FreeBSD$ .\" -.Dd January 12, 2011 +.Dd June 7, 2012 .Dt RUN 4 .Os .Sh NAME @@ -112,7 +112,7 @@ driver supports the following wireless adapters: .Bl -tag -width Ds -offset indent -compact .It Airlink101 AWLL6090 .It ASUS USB-N11 -.It ASUS USB-N13 +.It ASUS USB-N13 ver. A1 .It ASUS WL-160N .It Belkin F5D8051 ver 3000 .It Belkin F5D8053 From a9f5e425324f01cf4991611c5220a8e864c0e59f Mon Sep 17 00:00:00 2001 From: John Baldwin Date: Thu, 7 Jun 2012 15:54:52 +0000 Subject: [PATCH 055/340] Teach procstat_get_shm_info_kvm() how to fetch the pathname of a SHM file descriptor from a core and set it in fts->fs_path. MFC after: 1 week --- lib/libprocstat/libprocstat.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/lib/libprocstat/libprocstat.c b/lib/libprocstat/libprocstat.c index 167d91aba933..56562e129b15 100644 --- a/lib/libprocstat/libprocstat.c +++ b/lib/libprocstat/libprocstat.c @@ -881,6 +881,8 @@ procstat_get_shm_info_kvm(kvm_t *kd, struct filestat *fst, { struct shmfd shmfd; void *shmfdp; + char *path; + int i; assert(kd); assert(shm); @@ -896,6 +898,21 @@ procstat_get_shm_info_kvm(kvm_t *kd, struct filestat *fst, } shm->mode = S_IFREG | shmfd.shm_mode; shm->size = shmfd.shm_size; + if (fst->fs_path == NULL && shmfd.shm_path != NULL) { + path = malloc(MAXPATHLEN); + for (i = 0; i < MAXPATHLEN - 1; i++) { + if (!kvm_read_all(kd, (unsigned long)shmfd.shm_path + i, + path + i, 1)) + break; + if (path[i] == '\0') + break; + } + path[i] = '\0'; + if (i == 0) + free(path); + else + fst->fs_path = path; + } return (0); fail: From fef68bb8dcfc7cde0e17c1cbe7f72b6ce0a90d01 Mon Sep 17 00:00:00 2001 From: Mikolaj Golub Date: Thu, 7 Jun 2012 19:46:46 +0000 Subject: [PATCH 056/340] Add VIMAGE support to if_tap. PR: kern/152047, kern/158686 Submitted by: Daan Vreeken MFC after: 1 week --- sys/net/if_tap.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/sys/net/if_tap.c b/sys/net/if_tap.c index 4ff5a49f598e..aa18612910a4 100644 --- a/sys/net/if_tap.c +++ b/sys/net/if_tap.c @@ -42,6 +42,7 @@ #include #include #include +#include #include #include #include @@ -66,6 +67,7 @@ #include #include #include +#include #include @@ -214,6 +216,7 @@ tap_destroy(struct tap_softc *tp) KASSERT(!(tp->tap_flags & TAP_OPEN), ("%s flags is out of sync", ifp->if_xname)); + CURVNET_SET(ifp->if_vnet); seldrain(&tp->tap_rsel); knlist_destroy(&tp->tap_rsel.si_note); destroy_dev(tp->tap_dev); @@ -222,6 +225,7 @@ tap_destroy(struct tap_softc *tp) mtx_destroy(&tp->tap_mtx); free(tp, M_TAP); + CURVNET_RESTORE(); } static void @@ -363,6 +367,7 @@ tapclone(void *arg, struct ucred *cred, char *name, int namelen, struct cdev **d if (unit == -1) append_unit = 1; + CURVNET_SET(CRED_TO_VNET(cred)); /* find any existing device, or allocate new unit number */ i = clone_create(&tapclones, &tap_cdevsw, &unit, dev, extra); if (i) { @@ -381,6 +386,7 @@ tapclone(void *arg, struct ucred *cred, char *name, int namelen, struct cdev **d } if_clone_create(name, namelen, NULL); + CURVNET_RESTORE(); } /* tapclone */ @@ -521,6 +527,7 @@ tapclose(struct cdev *dev, int foo, int bar, struct thread *td) /* junk all pending output */ mtx_lock(&tp->tap_mtx); + CURVNET_SET(ifp->if_vnet); IF_DRAIN(&ifp->if_snd); /* @@ -544,6 +551,8 @@ tapclose(struct cdev *dev, int foo, int bar, struct thread *td) } if_link_state_change(ifp, LINK_STATE_DOWN); + CURVNET_RESTORE(); + funsetown(&tp->tap_sigio); selwakeuppri(&tp->tap_rsel, PZERO+1); KNOTE_LOCKED(&tp->tap_rsel.si_note, 0); @@ -945,7 +954,9 @@ tapwrite(struct cdev *dev, struct uio *uio, int flag) } /* Pass packet up to parent. */ + CURVNET_SET(ifp->if_vnet); (*ifp->if_input)(ifp, m); + CURVNET_RESTORE(); ifp->if_ipackets ++; /* ibytes are counted in parent */ return (0); From 62b1b42507ddd6d9b8d1338719d6062c551b9c91 Mon Sep 17 00:00:00 2001 From: Mikolaj Golub Date: Thu, 7 Jun 2012 19:48:45 +0000 Subject: [PATCH 057/340] Sort includes. Submitted by: Daan Vreeken MFC after: 3 days --- sys/net/if_tap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/net/if_tap.c b/sys/net/if_tap.c index aa18612910a4..f80ce7c54cbf 100644 --- a/sys/net/if_tap.c +++ b/sys/net/if_tap.c @@ -65,8 +65,8 @@ #include #include #include -#include #include +#include #include #include From f6ed2ff79d43538bedbe4568278b805aa593c46b Mon Sep 17 00:00:00 2001 From: Pawel Jakub Dawidek Date: Thu, 7 Jun 2012 22:49:09 +0000 Subject: [PATCH 058/340] Plug file reference leak in capability failure case. Sponsored by: FreeBSD Foundation MFC after: 3 days --- sys/kern/tty.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/kern/tty.c b/sys/kern/tty.c index 8ca6bdf6a7c2..9b7437003c01 100644 --- a/sys/kern/tty.c +++ b/sys/kern/tty.c @@ -1841,7 +1841,7 @@ ttyhook_register(struct tty **rtp, struct proc *p, int fd, fp_cap = fp; error = cap_funwrap(fp_cap, CAP_TTYHOOK, &fp); if (error) - return (error); + goto done1; #endif /* From c5d8a885d4287988e655bf97af52f74938b0a097 Mon Sep 17 00:00:00 2001 From: Maksim Yevmenkin Date: Thu, 7 Jun 2012 22:57:26 +0000 Subject: [PATCH 059/340] Correct typo(?) and actually set PTHRESH to 32 and not 16 as per Intel Linux driver 3.8.21. MFC after: 1 week --- sys/dev/ixgbe/ixgbe.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/dev/ixgbe/ixgbe.c b/sys/dev/ixgbe/ixgbe.c index 37a20adba8de..a9c3de362b8e 100644 --- a/sys/dev/ixgbe/ixgbe.c +++ b/sys/dev/ixgbe/ixgbe.c @@ -1152,7 +1152,7 @@ ixgbe_init_locked(struct adapter *adapter) * from the Intel linux driver 3.8.21. * Prefetching enables tx line rate even with 1 queue. */ - txdctl |= (16 << 0) | (1 << 8); + txdctl |= (32 << 0) | (1 << 8); IXGBE_WRITE_REG(hw, IXGBE_TXDCTL(i), txdctl); } From d3644b04ca1aec8f84dc9964f0e45efc98e159db Mon Sep 17 00:00:00 2001 From: Pawel Jakub Dawidek Date: Thu, 7 Jun 2012 23:08:18 +0000 Subject: [PATCH 060/340] Eliminate redundant variable. Sponsored by: FreeBSD Foundation MFC after: 1 week --- sys/kern/tty.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/sys/kern/tty.c b/sys/kern/tty.c index 9b7437003c01..7ddcb0bc390f 100644 --- a/sys/kern/tty.c +++ b/sys/kern/tty.c @@ -1817,9 +1817,6 @@ ttyhook_register(struct tty **rtp, struct proc *p, int fd, { struct tty *tp; struct file *fp; -#ifdef CAPABILITIES - struct file *fp_cap; -#endif struct cdev *dev; struct cdevsw *cdp; struct filedesc *fdp; @@ -1838,8 +1835,7 @@ ttyhook_register(struct tty **rtp, struct proc *p, int fd, } #ifdef CAPABILITIES - fp_cap = fp; - error = cap_funwrap(fp_cap, CAP_TTYHOOK, &fp); + error = cap_funwrap(fp, CAP_TTYHOOK, &fp); if (error) goto done1; #endif From bf3e37ef151052ebe6003defb9d06cb4d5acd0a7 Mon Sep 17 00:00:00 2001 From: Pawel Jakub Dawidek Date: Thu, 7 Jun 2012 23:33:10 +0000 Subject: [PATCH 061/340] In fdalloc() f_ofileflags for the newly allocated descriptor has to be 0. Assert that instead of setting it to 0. Sponsored by: FreeBSD Foundation MFC after: 1 month --- sys/kern/kern_descrip.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c index 76c5db2876b6..c6ea16afc388 100644 --- a/sys/kern/kern_descrip.c +++ b/sys/kern/kern_descrip.c @@ -1554,9 +1554,8 @@ fdalloc(struct thread *td, int minfd, int *result) */ KASSERT(!fdisused(fdp, fd), ("fd_first_free() returned non-free descriptor")); - KASSERT(fdp->fd_ofiles[fd] == NULL, - ("free descriptor isn't")); - fdp->fd_ofileflags[fd] = 0; /* XXX needed? */ + KASSERT(fdp->fd_ofiles[fd] == NULL, ("free descriptor isn't")); + KASSERT(fdp->fd_ofileflags[fd] == 0, ("file flags are set")); fdused(fdp, fd); *result = fd; return (0); From 9e465b8795100431449b743932901f64085fd520 Mon Sep 17 00:00:00 2001 From: Ashish SHUKLA Date: Fri, 8 Jun 2012 01:51:49 +0000 Subject: [PATCH 062/340] Add myself to the calendar. --- usr.bin/calendar/calendars/calendar.freebsd | 1 + 1 file changed, 1 insertion(+) diff --git a/usr.bin/calendar/calendars/calendar.freebsd b/usr.bin/calendar/calendars/calendar.freebsd index 0f1f36d61111..3ae3de78284d 100644 --- a/usr.bin/calendar/calendars/calendar.freebsd +++ b/usr.bin/calendar/calendars/calendar.freebsd @@ -310,6 +310,7 @@ 10/23 Mario Sergio Fujikawa Ferreira born in Brasilia, Distrito Federal, Brazil, 1976 10/25 Eric Melville born in Los Gatos, California, United States, 1980 10/25 Julien Laffaye born in Toulouse, France, 1988 +10/25 Ashish SHUKLA born in Kanpur, India, 1985 10/26 Philip M. Gollucci born in Silver Spring, Maryland, United States, 1979 10/27 Takanori Watanabe born in Numazu, Shizuoka, Japan, 1972 11/05 M. Warner Losh born in Kansas City, Kansas, United States, 1966 From 7501345eede40b589963e8d690c10564e97aa01b Mon Sep 17 00:00:00 2001 From: John Hay Date: Fri, 8 Jun 2012 06:07:23 +0000 Subject: [PATCH 063/340] Add support for the Sunix SER5437A dual serial PCI Express card. --- sys/dev/puc/pucdata.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/sys/dev/puc/pucdata.c b/sys/dev/puc/pucdata.c index a05fdc92e05b..b682bbaf44c2 100644 --- a/sys/dev/puc/pucdata.c +++ b/sys/dev/puc/pucdata.c @@ -901,6 +901,12 @@ const struct puc_cfg puc_pci_devices[] = { .config_function = puc_config_syba }, + { 0x1fd4, 0x1999, 0xffff, 0, + "Sunix SER5437A", + DEFAULT_RCLK * 8, + PUC_PORT_2S, 0x10, 0, 8, + }, + { 0x5372, 0x6873, 0xffff, 0, "Sun 1040 PCI Quad Serial", DEFAULT_RCLK, From c18783f21969632e608fb195c5e0636ba8100ce7 Mon Sep 17 00:00:00 2001 From: Alexander Motin Date: Fri, 8 Jun 2012 07:44:42 +0000 Subject: [PATCH 064/340] Add IDs for Marvell 88SE9220/9230/9235 PCIe 2.0 x2 6Gbps SATA controllers. Marvell 88SE9230 was confirmed to work, the rest two are just guessed. MFC after: 1 week --- sys/dev/ahci/ahci.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sys/dev/ahci/ahci.c b/sys/dev/ahci/ahci.c index ccdba319e7b4..ccbce37e2dd3 100644 --- a/sys/dev/ahci/ahci.c +++ b/sys/dev/ahci/ahci.c @@ -202,6 +202,9 @@ static struct { {0x91301b4b, 0x00, "Marvell 88SE9130", AHCI_Q_NOBSYRES|AHCI_Q_ALTSIG}, {0x91721b4b, 0x00, "Marvell 88SE9172", AHCI_Q_NOBSYRES}, {0x91821b4b, 0x00, "Marvell 88SE9182", AHCI_Q_NOBSYRES}, + {0x92201b4b, 0x00, "Marvell 88SE9220", AHCI_Q_NOBSYRES|AHCI_Q_ALTSIG}, + {0x92301b4b, 0x00, "Marvell 88SE9230", AHCI_Q_NOBSYRES|AHCI_Q_ALTSIG}, + {0x92351b4b, 0x00, "Marvell 88SE9235", AHCI_Q_NOBSYRES}, {0x06201103, 0x00, "HighPoint RocketRAID 620", AHCI_Q_NOBSYRES}, {0x06201b4b, 0x00, "HighPoint RocketRAID 620", AHCI_Q_NOBSYRES}, {0x06221103, 0x00, "HighPoint RocketRAID 622", AHCI_Q_NOBSYRES}, From 3b5da8d609d1ba2991bc88c59aff2c664deec523 Mon Sep 17 00:00:00 2001 From: Mateusz Guzik Date: Fri, 8 Jun 2012 08:04:51 +0000 Subject: [PATCH 065/340] Plug socket refcount leak on error in sys_sctp_peeloff. Reviewed by: tuexen Approved by: trasz (mentor) MFC after: 3 days --- sys/kern/uipc_syscalls.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/kern/uipc_syscalls.c b/sys/kern/uipc_syscalls.c index a0794b989878..719d298cc568 100644 --- a/sys/kern/uipc_syscalls.c +++ b/sys/kern/uipc_syscalls.c @@ -2327,11 +2327,11 @@ sys_sctp_peeloff(td, uap) goto done2; if (head->so_proto->pr_protocol != IPPROTO_SCTP) { error = EOPNOTSUPP; - goto done2; + goto done; } error = sctp_can_peel_off(head, (sctp_assoc_t)uap->name); if (error) - goto done2; + goto done; /* * At this point we know we do have a assoc to pull * we proceed to get the fd setup. This may block From 6a557179e17a74a26078a3af1c27dd61a1e666d1 Mon Sep 17 00:00:00 2001 From: Joel Dahl Date: Fri, 8 Jun 2012 12:09:00 +0000 Subject: [PATCH 066/340] mdoc: add missing -width argument to Bl -tag. --- lib/libgssapi/gss_accept_sec_context.3 | 6 +++--- lib/libgssapi/gss_acquire_cred.3 | 6 +++--- lib/libgssapi/gss_add_cred.3 | 6 +++--- lib/libgssapi/gss_add_oid_set_member.3 | 6 +++--- lib/libgssapi/gss_canonicalize_name.3 | 6 +++--- lib/libgssapi/gss_compare_name.3 | 8 ++++---- lib/libgssapi/gss_context_time.3 | 6 +++--- lib/libgssapi/gss_create_empty_oid_set.3 | 6 +++--- lib/libgssapi/gss_delete_sec_context.3 | 6 +++--- lib/libgssapi/gss_display_name.3 | 6 +++--- lib/libgssapi/gss_display_status.3 | 8 ++++---- lib/libgssapi/gss_duplicate_name.3 | 6 +++--- lib/libgssapi/gss_export_name.3 | 6 +++--- lib/libgssapi/gss_export_sec_context.3 | 6 +++--- lib/libgssapi/gss_get_mic.3 | 6 +++--- lib/libgssapi/gss_import_name.3 | 6 +++--- lib/libgssapi/gss_import_sec_context.3 | 6 +++--- lib/libgssapi/gss_indicate_mechs.3 | 6 +++--- lib/libgssapi/gss_init_sec_context.3 | 6 +++--- lib/libgssapi/gss_inquire_context.3 | 6 +++--- lib/libgssapi/gss_inquire_cred.3 | 6 +++--- lib/libgssapi/gss_inquire_cred_by_mech.3 | 6 +++--- lib/libgssapi/gss_inquire_mechs_for_name.3 | 6 +++--- lib/libgssapi/gss_inquire_names_for_mech.3 | 6 +++--- lib/libgssapi/gss_process_context_token.3 | 6 +++--- lib/libgssapi/gss_release_buffer.3 | 6 +++--- lib/libgssapi/gss_release_cred.3 | 6 +++--- lib/libgssapi/gss_release_name.3 | 6 +++--- lib/libgssapi/gss_release_oid_set.3 | 6 +++--- lib/libgssapi/gss_test_oid_set_member.3 | 6 +++--- lib/libgssapi/gss_unwrap.3 | 6 +++--- lib/libgssapi/gss_verify_mic.3 | 6 +++--- lib/libgssapi/gss_wrap.3 | 10 +++++----- lib/libgssapi/gss_wrap_size_limit.3 | 6 +++--- lib/libgssapi/gssapi.3 | 2 +- lib/libgssapi/mech.5 | 10 +++++----- 36 files changed, 112 insertions(+), 112 deletions(-) diff --git a/lib/libgssapi/gss_accept_sec_context.3 b/lib/libgssapi/gss_accept_sec_context.3 index 825c28d04b88..cc368876e390 100644 --- a/lib/libgssapi/gss_accept_sec_context.3 +++ b/lib/libgssapi/gss_accept_sec_context.3 @@ -212,7 +212,7 @@ exist in version 1 of the GSS-API specification, so applications that wish to run over version 1 implementations must special-case these codes. .Sh PARAMETERS -.Bl -tag +.Bl -tag -width ".It input_chan_bindings" .It context_handle Context handle for new context. Supply @@ -400,7 +400,7 @@ Specify Mechanism specific status code. .El .Sh RETURN VALUES -.Bl -tag +.Bl -tag -width ".It GSS_S_DEFECTIVE_CREDENTIAL" .It GSS_S_CONTINUE_NEEDED Indicates that a token from the peer application is required to complete the context, @@ -442,7 +442,7 @@ the implementation or the provided credential. .Xr gss_release_name 3 , .Xr gss_wrap 3 .Sh STANDARDS -.Bl -tag +.Bl -tag -width ".It RFC 2743" .It RFC 2743 Generic Security Service Application Program Interface Version 2, Update 1 .It RFC 2744 diff --git a/lib/libgssapi/gss_acquire_cred.3 b/lib/libgssapi/gss_acquire_cred.3 index 4b683e7c5794..0a6caada4bde 100644 --- a/lib/libgssapi/gss_acquire_cred.3 +++ b/lib/libgssapi/gss_acquire_cred.3 @@ -126,7 +126,7 @@ immediately following the call of must return valid credential data, and may therefore incur the overhead of a deferred credential acquisition. .Sh PARAMETERS -.Bl -tag +.Bl -tag -width ".It output_cred_handle" .It desired_name Name of principal whose credential should be acquired. .It time_req @@ -174,7 +174,7 @@ Specify NULL if not required. Mechanism specific status code. .El .Sh RETURN VALUES -.Bl -tag +.Bl -tag -width ".It GSS_S_CREDENTIALS_EXPIRED" .It GSS_S_COMPLETE Successful completion. .It GSS_S_BAD_MECH @@ -196,7 +196,7 @@ No credentials were found for the specified name. .Xr gss_release_cred 3 , .Xr gss_release_oid_set 3 .Sh STANDARDS -.Bl -tag +.Bl -tag -width ".It RFC 2743" .It RFC 2743 Generic Security Service Application Program Interface Version 2, Update 1 .It RFC 2744 diff --git a/lib/libgssapi/gss_add_cred.3 b/lib/libgssapi/gss_add_cred.3 index 67ff1c3dc74b..32d98859c04e 100644 --- a/lib/libgssapi/gss_add_cred.3 +++ b/lib/libgssapi/gss_add_cred.3 @@ -170,7 +170,7 @@ a non- .Fa output_cred_handle must be supplied. .Sh PARAMETERS -.Bl -tag +.Bl -tag -width ".It output_cred_handle" .It minor_status Mechanism specific status code. .It input_cred_handle @@ -270,7 +270,7 @@ Specify if not required. .El .Sh RETURN VALUES -.Bl -tag +.Bl -tag -width ".It GSS_S_CREDENTIALS_EXPIRED" .It GSS_S_COMPLETE Successful completion. .It GSS_S_BAD_MECH @@ -296,7 +296,7 @@ No credentials were found for the specified name. .Xr gss_release_cred 3 , .Xr gss_release_oid_set 3 .Sh STANDARDS -.Bl -tag +.Bl -tag -width ".It RFC 2743" .It RFC 2743 Generic Security Service Application Program Interface Version 2, Update 1 .It RFC 2744 diff --git a/lib/libgssapi/gss_add_oid_set_member.3 b/lib/libgssapi/gss_add_oid_set_member.3 index 5839da6717cf..e812681442a4 100644 --- a/lib/libgssapi/gss_add_oid_set_member.3 +++ b/lib/libgssapi/gss_add_oid_set_member.3 @@ -71,7 +71,7 @@ the .Fa oid_set should remain unchanged. .Sh PARAMETERS -.Bl -tag +.Bl -tag -width ".It minor_status" .It minor_status Mechanism specific status code. .It member_oid @@ -80,7 +80,7 @@ The object identifier to copied into the set. The set in which the object identifier should be inserted. .El .Sh RETURN VALUES -.Bl -tag +.Bl -tag -width ".It GSS_S_COMPLETE" .It GSS_S_COMPLETE Successful completion .El @@ -88,7 +88,7 @@ Successful completion .Xr gss_create_empty_oid_set 3 , .Xr gss_acquire_cred 3 .Sh STANDARDS -.Bl -tag +.Bl -tag -width ".It RFC 2743" .It RFC 2743 Generic Security Service Application Program Interface Version 2, Update 1 .It RFC 2744 diff --git a/lib/libgssapi/gss_canonicalize_name.3 b/lib/libgssapi/gss_canonicalize_name.3 index 036c0eff8245..71daad54d707 100644 --- a/lib/libgssapi/gss_canonicalize_name.3 +++ b/lib/libgssapi/gss_canonicalize_name.3 @@ -62,7 +62,7 @@ specifying .Fa mech_type as the authentication mechanism. .Sh PARAMETERS -.Bl -tag +.Bl -tag -width ".It minor_status" .It minor_status Mechanism specific status code. .It input_name @@ -79,7 +79,7 @@ after use with a call to .Fn gss_release_name . .El .Sh RETURN VALUES -.Bl -tag +.Bl -tag -width ".It GSS_S_BAD_NAMETYPE" .It GSS_S_COMPLETE Successful completion. .It GSS_S_BAD_MECH @@ -95,7 +95,7 @@ The provided internal name was ill-formed. .Xr gss_init_sec_context 3 , .Xr gss_release_name 3 .Sh STANDARDS -.Bl -tag +.Bl -tag -width ".It RFC 2743" .It RFC 2743 Generic Security Service Application Program Interface Version 2, Update 1 .It RFC 2744 diff --git a/lib/libgssapi/gss_compare_name.3 b/lib/libgssapi/gss_compare_name.3 index 713af232da4a..0890cf924b0a 100644 --- a/lib/libgssapi/gss_compare_name.3 +++ b/lib/libgssapi/gss_compare_name.3 @@ -54,7 +54,7 @@ denotes an anonymous principal, the routines should indicate that the two names do not refer to the same identity. .Sh PARAMETERS -.Bl -tag +.Bl -tag -width "minor_status" .It minor_status Mechanism specific status code. .It name1 @@ -62,7 +62,7 @@ Internal-form name. .It name2 Internal-form name. .It name_equal -.Bl -tag +.Bl -tag -width "non-zero" .It non-zero Names refer to same entity .It zero @@ -71,7 +71,7 @@ to refer to the same identity). .El .El .Sh RETURN VALUES -.Bl -tag +.Bl -tag -width ".It GSS_S_BAD_NAMETYPE" .It GSS_S_COMPLETE Successful completion .It GSS_S_BAD_NAMETYPE @@ -80,7 +80,7 @@ The two names were of incomparable types. One or both of name1 or name2 was ill-formed. .El .Sh STANDARDS -.Bl -tag +.Bl -tag -width ".It RFC 2743" .It RFC 2743 Generic Security Service Application Program Interface Version 2, Update 1 .It RFC 2744 diff --git a/lib/libgssapi/gss_context_time.3 b/lib/libgssapi/gss_context_time.3 index b6b4157dd947..4dae1d96e41f 100644 --- a/lib/libgssapi/gss_context_time.3 +++ b/lib/libgssapi/gss_context_time.3 @@ -47,7 +47,7 @@ Determines the number of seconds for which the specified context will remain valid. .Sh PARAMETERS -.Bl -tag +.Bl -tag -width ".It context_handle" .It minor_status Mechanism specific status code. .It context_handle @@ -57,7 +57,7 @@ Number of seconds that the context will remain valid. If the context has already expired, zero will be returned. .El .Sh RETURN VALUES -.Bl -tag +.Bl -tag -width ".It GSS_S_CONTEXT_EXPIRED" .It GSS_S_COMPLETE Successful completion .It GSS_S_CONTEXT_EXPIRED @@ -66,7 +66,7 @@ The context has already expired The context_handle parameter did not identify a valid context .El .Sh STANDARDS -.Bl -tag +.Bl -tag -width ".It RFC 2743" .It RFC 2743 Generic Security Service Application Program Interface Version 2, Update 1 .It RFC 2744 diff --git a/lib/libgssapi/gss_create_empty_oid_set.3 b/lib/libgssapi/gss_create_empty_oid_set.3 index 3a84f855c152..466ea01873b6 100644 --- a/lib/libgssapi/gss_create_empty_oid_set.3 +++ b/lib/libgssapi/gss_create_empty_oid_set.3 @@ -51,7 +51,7 @@ These routines are intended to be used to construct sets of mechanism object identifiers for input to .Fn gss_acquire_cred . .Sh PARAMETERS -.Bl -tag +.Bl -tag -width ".It minor_status" .It minor_status Mechanism specific status code. .It oid_set @@ -61,7 +61,7 @@ which the application must free after use with a call to .Fn gss_release_oid_set . .El .Sh RETURN VALUES -.Bl -tag +.Bl -tag -width ".It GSS_S_COMPLETE" .It GSS_S_COMPLETE Successful completion .El @@ -69,7 +69,7 @@ Successful completion .Xr gss_add_oid_set_member 3 , .Xr gss_acquire_cred 3 .Sh STANDARDS -.Bl -tag +.Bl -tag -width ".It RFC 2743" .It RFC 2743 Generic Security Service Application Program Interface Version 2, Update 1 .It RFC 2744 diff --git a/lib/libgssapi/gss_delete_sec_context.3 b/lib/libgssapi/gss_delete_sec_context.3 index 1c4fa7b66909..be121655909c 100644 --- a/lib/libgssapi/gss_delete_sec_context.3 +++ b/lib/libgssapi/gss_delete_sec_context.3 @@ -88,7 +88,7 @@ mechanisms are encouraged to return a zero-length token, indicating that no peer action is necessary, and that no token should be transferred by the application. .Sh PARAMETERS -.Bl -tag +.Bl -tag -width ".It context_handle" .It minor_status Mechanism specific status code. .It context_handle @@ -110,7 +110,7 @@ field of this token to zero to indicate to the application that no token is to be sent to the peer. .El .Sh RETURN VALUES -.Bl -tag +.Bl -tag -width ".It context_handle" .It GSS_S_COMPLETE Successful completion .It GSS_S_NO_CONTEXT @@ -121,7 +121,7 @@ No valid context was supplied .Xr gss_init_sec_context 3 , .Xr gss_accept_sec_context 3 .Sh STANDARDS -.Bl -tag +.Bl -tag -width ".It RFC 2743" .It RFC 2743 Generic Security Service Application Program Interface Version 2, Update 1 .It RFC 2744 diff --git a/lib/libgssapi/gss_display_name.3 b/lib/libgssapi/gss_display_name.3 index 4944995c4678..f22fcf5c2fa8 100644 --- a/lib/libgssapi/gss_display_name.3 +++ b/lib/libgssapi/gss_display_name.3 @@ -76,7 +76,7 @@ via the .Fa output_name_type parameter. .Sh PARAMETERS -.Bl -tag +.Bl -tag -width ".It output_name_buffer" .It minor_status Mechanism specific status code. .It input_name @@ -98,7 +98,7 @@ Specify if not required. .El .Sh RETURN VALUES -.Bl -tag +.Bl -tag -width ".It GSS_S_COMPLETE" .It GSS_S_COMPLETE Successful completion .It GSS_S_BAD_NAME @@ -109,7 +109,7 @@ was ill-formed .Xr gss_import_name 3 , .Xr gss_release_buffer 3 .Sh STANDARDS -.Bl -tag +.Bl -tag -width ".It RFC 2743" .It RFC 2743 Generic Security Service Application Program Interface Version 2, Update 1 .It RFC 2744 diff --git a/lib/libgssapi/gss_display_status.3 b/lib/libgssapi/gss_display_status.3 index 4bf908bb1d0f..7c05e62cccad 100644 --- a/lib/libgssapi/gss_display_status.3 +++ b/lib/libgssapi/gss_display_status.3 @@ -111,13 +111,13 @@ do { } while (message_context != 0); .Ed .Sh PARAMETERS -.Bl -tag +.Bl -tag -width ".It minor_status" .It minor_status Mechanism specific status code. .It status_value Status value to be converted .It status_type -.Bl -tag +.Bl -tag -width ".It GSS_C_MECH_CODE" .It GSS_C_GSS_CODE .Fa status_value is a GSS status code @@ -153,7 +153,7 @@ application after use with a call to .Fn gss_release_buffer . .El .Sh RETURN VALUES -.Bl -tag +.Bl -tag -width ".It GSS_S_BAD_STATUS" .It GSS_S_COMPLETE Successful completion .It GSS_S_BAD_MECH @@ -168,7 +168,7 @@ nor .Sh SEE ALSO .Xr gss_release_buffer 3 .Sh STANDARDS -.Bl -tag +.Bl -tag -width ".It RFC 2743" .It RFC 2743 Generic Security Service Application Program Interface Version 2, Update 1 .It RFC 2744 diff --git a/lib/libgssapi/gss_duplicate_name.3 b/lib/libgssapi/gss_duplicate_name.3 index 5eb4a6284c41..f9c9f8344328 100644 --- a/lib/libgssapi/gss_duplicate_name.3 +++ b/lib/libgssapi/gss_duplicate_name.3 @@ -57,7 +57,7 @@ and must both be released, and the release of one shall not affect the validity of the other). .Sh PARAMETERS -.Bl -tag +.Bl -tag -width ".It minor_status" .It minor_status Mechanism specific status code. .It src_name @@ -70,7 +70,7 @@ after use with a call to .Fn gss_release_name . .El .Sh RETURN VALUES -.Bl -tag +.Bl -tag -width ".It GSS_S_COMPLETE" .It GSS_S_COMPLETE Successful completion .It GSS_S_BAD_NAME @@ -81,7 +81,7 @@ parameter was ill-formed .Sh SEE ALSO .Xr gss_release_name 3 .Sh STANDARDS -.Bl -tag +.Bl -tag -width ".It RFC 2743" .It RFC 2743 Generic Security Service Application Program Interface Version 2, Update 1 .It RFC 2744 diff --git a/lib/libgssapi/gss_export_name.3 b/lib/libgssapi/gss_export_name.3 index 5cbf803b9496..f727c4520fee 100644 --- a/lib/libgssapi/gss_export_name.3 +++ b/lib/libgssapi/gss_export_name.3 @@ -58,7 +58,7 @@ parameter must specify a valid MN or by .Fn gss_canonicalize_name ). .Sh PARAMETERS -.Bl -tag +.Bl -tag -width ".It exported_name" .It minor_status Mechanism specific status code. .It input_name @@ -71,7 +71,7 @@ after use with .Fn gss_release_buffer . .El .Sh RETURN VALUES -.Bl -tag +.Bl -tag -width ".It GSS_S_BAD_NAMETYPE" .It GSS_S_COMPLETE Successful completion .It GSS_S_NAME_NOT_MN @@ -86,7 +86,7 @@ The internal name was of a type not supported by the GSS-API implementation. .Xr gss_canonicalize_name 3 , .Xr gss_release_buffer 3 .Sh STANDARDS -.Bl -tag +.Bl -tag -width ".It RFC 2743" .It RFC 2743 Generic Security Service Application Program Interface Version 2, Update 1 .It RFC 2744 diff --git a/lib/libgssapi/gss_export_sec_context.3 b/lib/libgssapi/gss_export_sec_context.3 index 7ecbef317172..ca1aedd68fd8 100644 --- a/lib/libgssapi/gss_export_sec_context.3 +++ b/lib/libgssapi/gss_export_sec_context.3 @@ -100,7 +100,7 @@ providing it also sets the parameter to .Dv GSS_C_NO_CONTEXT . .Sh PARAMETERS -.Bl -tag +.Bl -tag -width ".It interprocess_token" .It minor_status Mechanism specific status code. .It context_handle @@ -112,7 +112,7 @@ after use with a call to .Fn gss_release_buffer . .El .Sh RETURN VALUES -.Bl -tag +.Bl -tag -width ".It GSS_S_CONTEXT_EXPIRED" .It GSS_S_COMPLETE Successful completion .It GSS_S_CONTEXT_EXPIRED @@ -126,7 +126,7 @@ The operation is not supported .Xr gss_import_sec_context 3 , .Xr gss_release_buffer 3 .Sh STANDARDS -.Bl -tag +.Bl -tag -width ".It RFC 2743" .It RFC 2743 Generic Security Service Application Program Interface Version 2, Update 1 .It RFC 2744 diff --git a/lib/libgssapi/gss_get_mic.3 b/lib/libgssapi/gss_get_mic.3 index e5d81fa77f4e..431f9e3f8061 100644 --- a/lib/libgssapi/gss_get_mic.3 +++ b/lib/libgssapi/gss_get_mic.3 @@ -81,7 +81,7 @@ both to allow GSS-API V1 applications to link and to retain the slight parameter type differences between the obsolete versions of this routine and its current form. .Sh PARAMETERS -.Bl -tag +.Bl -tag -width ".It message_buffer" .It minor_status Mechanism specific status code. .It context_handle @@ -109,7 +109,7 @@ use with a call to .Fn gss_release_buffer . .El .Sh RETURN VALUES -.Bl -tag +.Bl -tag -width ".It GSS_S_CONTEXT_EXPIRED" .It GSS_S_COMPLETE Successful completion .It GSS_S_CONTEXT_EXPIRED @@ -123,7 +123,7 @@ The specified QOP is not supported by the mechanism .Xr gss_wrap 3 , .Xr gss_release_buffer 3 .Sh STANDARDS -.Bl -tag +.Bl -tag -width ".It RFC 2743" .It RFC 2743 Generic Security Service Application Program Interface Version 2, Update 1 .It RFC 2744 diff --git a/lib/libgssapi/gss_import_name.3 b/lib/libgssapi/gss_import_name.3 index aef1ae8cb100..df3ce9cc0d04 100644 --- a/lib/libgssapi/gss_import_name.3 +++ b/lib/libgssapi/gss_import_name.3 @@ -59,7 +59,7 @@ parameter is of type in which case the returned internal name will be an MN for the mechanism that exported the name. .Sh PARAMETERS -.Bl -tag +.Bl -tag -width ".It input_name_buffer" .It minor_status Mechanism specific status code. .It input_name_buffer @@ -78,7 +78,7 @@ after use with a call to .Fn gss_release_name . .El .Sh RETURN VALUES -.Bl -tag +.Bl -tag -width "It GSS_S_BAD_NAMETYPE" .It GSS_S_COMPLETE Successful completion .It GSS_S_BAD_NAMETYPE @@ -97,7 +97,7 @@ but the mechanism contained within the input-name is not supported .Sh SEE ALSO .Xr gss_release_name 3 .Sh STANDARDS -.Bl -tag +.Bl -tag -width ".It RFC 2743" .It RFC 2743 Generic Security Service Application Program Interface Version 2, Update 1 .It RFC 2744 diff --git a/lib/libgssapi/gss_import_sec_context.3 b/lib/libgssapi/gss_import_sec_context.3 index 87aaa7872c70..b2e1c783bacb 100644 --- a/lib/libgssapi/gss_import_sec_context.3 +++ b/lib/libgssapi/gss_import_sec_context.3 @@ -50,7 +50,7 @@ A given interprocess token may be imported only once. See .Fn gss_export_sec_context . .Sh PARAMETERS -.Bl -tag +.Bl -tag -width ".It interprocess_token" .It minor_status Mechanism specific status code. .It interprocess_token @@ -62,7 +62,7 @@ application after use with a call to .Fn gss_delete_sec_context . .El .Sh RETURN VALUES -.Bl -tag +.Bl -tag -width ".It GSS_S_DEFECTIVE_TOKEN" .It GSS_S_COMPLETE Successful completion .It GSS_S_NO_CONTEXT @@ -78,7 +78,7 @@ Local policy prevents the import of this context by the current process .Xr gss_export_sec_context 3 , .Xr gss_delete_sec_context 3 .Sh STANDARDS -.Bl -tag +.Bl -tag -width ".It RFC 2743" .It RFC 2743 Generic Security Service Application Program Interface Version 2, Update 1 .It RFC 2744 diff --git a/lib/libgssapi/gss_indicate_mechs.3 b/lib/libgssapi/gss_indicate_mechs.3 index 3eec8615a171..c49c83a30227 100644 --- a/lib/libgssapi/gss_indicate_mechs.3 +++ b/lib/libgssapi/gss_indicate_mechs.3 @@ -46,7 +46,7 @@ Allows an application to determine which underlying security mechanisms are available. .Sh PARAMETERS -.Bl -tag +.Bl -tag -width ".It minor_status" .It minor_status Mechanism specific status code. .It mech_set @@ -58,14 +58,14 @@ that should be released by the caller after use with a call to .Fn gss_release_oid_set . .El .Sh RETURN VALUES -.Bl -tag +.Bl -tag -width ".It GSS_S_COMPLETE" .It GSS_S_COMPLETE Successful completion .El .Sh SEE ALSO .Xr gss_release_oid_set 3 .Sh STANDARDS -.Bl -tag +.Bl -tag -width ".It RFC 2743" .It RFC 2743 Generic Security Service Application Program Interface Version 2, Update 1 .It RFC 2744 diff --git a/lib/libgssapi/gss_init_sec_context.3 b/lib/libgssapi/gss_init_sec_context.3 index 9d14859fb41f..51556a613347 100644 --- a/lib/libgssapi/gss_init_sec_context.3 +++ b/lib/libgssapi/gss_init_sec_context.3 @@ -233,7 +233,7 @@ exist in version 1 of the GSS-API specification, so applications that wish to run over version 1 implementations must special-case these codes. .Sh PARAMETERS -.Bl -tag +.Bl -tag -width ".It initiator_cred_handle" .It minor_status Mechanism specific status code. .It initiator_cred_handle @@ -475,7 +475,7 @@ not support context expiration, the value .Dv NULL if not required. .El .Sh RETURN VALUES -.Bl -tag +.Bl -tag -width ".It GSS_S_CREDENTIALS_EXPIRED" .It GSS_S_COMPLETE Successful completion .It GSS_S_CONTINUE_NEEDED @@ -529,7 +529,7 @@ implementation. .Xr gss_release_buffer 3 , .Xr gss_wrap 3 .Sh STANDARDS -.Bl -tag +.Bl -tag -width ".It RFC 2743" .It RFC 2743 Generic Security Service Application Program Interface Version 2, Update 1 .It RFC 2744 diff --git a/lib/libgssapi/gss_inquire_context.3 b/lib/libgssapi/gss_inquire_context.3 index ba5d649facd3..d31823427df0 100644 --- a/lib/libgssapi/gss_inquire_context.3 +++ b/lib/libgssapi/gss_inquire_context.3 @@ -55,7 +55,7 @@ The caller must already have obtained a handle that refers to the context, although the context need not be fully established. .Sh PARAMETERS -.Bl -tag +.Bl -tag -width ".It locally_initiated" .It minor_status Mechanism specific status code. .It context_handle @@ -229,7 +229,7 @@ Specify if not required. .El .Sh RETURN VALUES -.Bl -tag +.Bl -tag -width ".It GSS_S_NO_CONTEXT" .It GSS_S_COMPLETE Successful completion .It GSS_S_NO_CONTEXT @@ -242,7 +242,7 @@ The referenced context could not be accessed .Xr gss_get_mic 3 , .Xr gss_export_sec_context 3 .Sh STANDARDS -.Bl -tag +.Bl -tag -width ".It RFC 2743" .It RFC 2743 Generic Security Service Application Program Interface Version 2, Update 1 .It RFC 2744 diff --git a/lib/libgssapi/gss_inquire_cred.3 b/lib/libgssapi/gss_inquire_cred.3 index 923b3734bea1..8bbe0da4ca89 100644 --- a/lib/libgssapi/gss_inquire_cred.3 +++ b/lib/libgssapi/gss_inquire_cred.3 @@ -50,7 +50,7 @@ .Sh DESCRIPTION Obtains information about a credential. .Sh PARAMETERS -.Bl -tag +.Bl -tag -width ".It minor_status" .It minor_status Mechanism specific status code. .It cred_handle @@ -99,7 +99,7 @@ Specify if not required. .El .Sh RETURN VALUES -.Bl -tag +.Bl -tag -width ".It GSS_S_DEFECTIVE_CREDENTIAL" .It GSS_S_COMPLETE Successful completion .It GSS_S_NO_CRED @@ -116,7 +116,7 @@ it will be set to 0 .Xr gss_release_name 3 , .Xr gss_release_oid_set 3 .Sh STANDARDS -.Bl -tag +.Bl -tag -width ".It RFC 2743" .It RFC 2743 Generic Security Service Application Program Interface Version 2, Update 1 .It RFC 2744 diff --git a/lib/libgssapi/gss_inquire_cred_by_mech.3 b/lib/libgssapi/gss_inquire_cred_by_mech.3 index c316930cffbc..ebe619698961 100644 --- a/lib/libgssapi/gss_inquire_cred_by_mech.3 +++ b/lib/libgssapi/gss_inquire_cred_by_mech.3 @@ -50,7 +50,7 @@ .Sh DESCRIPTION Obtains per-mechanism information about a credential. .Sh PARAMETERS -.Bl -tag +.Bl -tag -width ".It initiator_lifetime" .It minor_status Mechanism specific status code. .It cred_handle @@ -114,7 +114,7 @@ Specify if not required. .El .Sh RETURN VALUES -.Bl -tag +.Bl -tag -width ".It GSS_S_DEFECTIVE_CREDENTIAL" .It GSS_S_COMPLETE Successful completion .It GSS_S_NO_CRED @@ -130,7 +130,7 @@ it will be set to 0. .Sh SEE ALSO .Xr gss_release_name 3 .Sh STANDARDS -.Bl -tag +.Bl -tag -width ".It RFC 2743" .It RFC 2743 Generic Security Service Application Program Interface Version 2, Update 1 .It RFC 2744 diff --git a/lib/libgssapi/gss_inquire_mechs_for_name.3 b/lib/libgssapi/gss_inquire_mechs_for_name.3 index d8d94edb4820..661f9ac6a4fa 100644 --- a/lib/libgssapi/gss_inquire_mechs_for_name.3 +++ b/lib/libgssapi/gss_inquire_mechs_for_name.3 @@ -68,7 +68,7 @@ type). Thus this routine should be used only as a pre-filter for a call to a subsequent mechanism-specific routine. .Sh PARAMETERS -.Bl -tag +.Bl -tag -width ".It minor_status" .It minor_status Mechanism specific status code. .It input_name @@ -80,7 +80,7 @@ to .Fn gss_release_oid_set . .El .Sh RETURN VALUES -.Bl -tag +.Bl -tag -width ".It GSS_S_COMPLETE" .It GSS_S_COMPLETE Successful completion .It GSS_S_BAD_NAME @@ -91,7 +91,7 @@ parameter was ill-formed .Sh SEE ALSO .Xr gss_release_oid_set 3 .Sh STANDARDS -.Bl -tag +.Bl -tag -width ".It RFC 2743" .It RFC 2743 Generic Security Service Application Program Interface Version 2, Update 1 .It RFC 2744 diff --git a/lib/libgssapi/gss_inquire_names_for_mech.3 b/lib/libgssapi/gss_inquire_names_for_mech.3 index c1b7528b56e0..591ddb9c1b42 100644 --- a/lib/libgssapi/gss_inquire_names_for_mech.3 +++ b/lib/libgssapi/gss_inquire_names_for_mech.3 @@ -46,7 +46,7 @@ .Sh DESCRIPTION Returns the set of name-types supported by the specified mechanism. .Sh PARAMETERS -.Bl -tag +.Bl -tag -width ".It minor_status" .It minor_status Mechanism specific status code. .It mechanism @@ -58,14 +58,14 @@ call to .Fn gss_release_oid_set . .El .Sh RETURN VALUES -.Bl -tag +.Bl -tag -width "GSS_S_COMPLETEXX" .It GSS_S_COMPLETE Successful completion .El .Sh SEE ALSO .Xr gss_release_oid_set 3 .Sh STANDARDS -.Bl -tag +.Bl -tag -width ".It RFC 2743" .It RFC 2743 Generic Security Service Application Program Interface Version 2, Update 1 .It RFC 2744 diff --git a/lib/libgssapi/gss_process_context_token.3 b/lib/libgssapi/gss_process_context_token.3 index 53f5ebfcc533..a7e0ab4c8343 100644 --- a/lib/libgssapi/gss_process_context_token.3 +++ b/lib/libgssapi/gss_process_context_token.3 @@ -71,7 +71,7 @@ believing that the context is fully established. .Fn gss_process_context_token provides a way to pass such a token to the mechanism at any time. .Sh PARAMETERS -.Bl -tag +.Bl -tag -width ".It context_handle" .It minor_status Mechanism specific status code. .It context_handle @@ -80,7 +80,7 @@ Context handle of context on which token is to be processed. Token to process. .El .Sh RETURN VALUES -.Bl -tag +.Bl -tag -width ".It GSS_S_DEFECTIVE_TOKEN" .It GSS_S_COMPLETE Successful completion .It GSS_S_DEFECTIVE_TOKEN @@ -94,7 +94,7 @@ did not refer to a valid context .Xr gss_init_sec_context 3 , .Xr gss_accept_sec_context 3 .Sh STANDARDS -.Bl -tag +.Bl -tag -width ".It RFC 2743" .It RFC 2743 Generic Security Service Application Program Interface Version 2, Update 1 .It RFC 2744 diff --git a/lib/libgssapi/gss_release_buffer.3 b/lib/libgssapi/gss_release_buffer.3 index c4acf81faf49..d71a6f23b2c4 100644 --- a/lib/libgssapi/gss_release_buffer.3 +++ b/lib/libgssapi/gss_release_buffer.3 @@ -55,7 +55,7 @@ Any buffer object returned by a GSS-API routine may be passed to .Fn gss_release_buffer (even if there is no storage associated with the buffer). .Sh PARAMETERS -.Bl -tag +.Bl -tag -width ".It minor_status" .It minor_status Mechanism specific status code. .It buffer @@ -64,12 +64,12 @@ The gss_buffer_desc object will not be freed, but its length field will be zeroed. .El .Sh RETURN VALUES -.Bl -tag +.Bl -tag -width ".It GSS_S_COMPLETE" .It GSS_S_COMPLETE Successful completion .El .Sh STANDARDS -.Bl -tag +.Bl -tag -width ".It RFC 2743" .It RFC 2743 Generic Security Service Application Program Interface Version 2, Update 1 .It RFC 2744 diff --git a/lib/libgssapi/gss_release_cred.3 b/lib/libgssapi/gss_release_cred.3 index 38fc7844bea8..99377e5fade3 100644 --- a/lib/libgssapi/gss_release_cred.3 +++ b/lib/libgssapi/gss_release_cred.3 @@ -50,7 +50,7 @@ Implementations are encouraged to set the cred_handle to .Dv GSS_C_NO_CREDENTIAL on successful completion of this call. .Sh PARAMETERS -.Bl -tag +.Bl -tag -width ".It minor_status" .It minor_status Mechanism specific status code. .It cred_handle @@ -59,14 +59,14 @@ If GSS_C_NO_CREDENTIAL is supplied, the routine will complete successfully, but will do nothing. .El .Sh RETURN VALUES -.Bl -tag +.Bl -tag -width ".It GSS_S_COMPLETE" .It GSS_S_COMPLETE Successful completion .It GSS_S_NO_CRED Credentials could not be accessed .El .Sh STANDARDS -.Bl -tag +.Bl -tag -width ".It RFC 2743" .It RFC 2743 Generic Security Service Application Program Interface Version 2, Update 1 .It RFC 2744 diff --git a/lib/libgssapi/gss_release_name.3 b/lib/libgssapi/gss_release_name.3 index ca737e0af3ab..b6f046e87e38 100644 --- a/lib/libgssapi/gss_release_name.3 +++ b/lib/libgssapi/gss_release_name.3 @@ -48,21 +48,21 @@ Implementations are encouraged to set the name to .Dv GSS_C_NO_NAME on successful completion of this call. .Sh PARAMETERS -.Bl -tag +.Bl -tag -width ".It minor status" .It minor_status Mechanism specific status code. .It name The name to be deleted. .El .Sh RETURN VALUES -.Bl -tag +.Bl -tag -width ".It GSS_S_COMPLETE" .It GSS_S_COMPLETE Successful completion .It GSS_S_BAD_NAME The name parameter did not contain a valid name .El .Sh STANDARDS -.Bl -tag +.Bl -tag -width ".It RFC 2743" .It RFC 2743 Generic Security Service Application Program Interface Version 2, Update 1 .It RFC 2744 diff --git a/lib/libgssapi/gss_release_oid_set.3 b/lib/libgssapi/gss_release_oid_set.3 index 7de4e9ae195d..668581629a3d 100644 --- a/lib/libgssapi/gss_release_oid_set.3 +++ b/lib/libgssapi/gss_release_oid_set.3 @@ -55,19 +55,19 @@ Implementations are encouraged to set the gss_OID_set parameter to .Dv GSS_C_NO_OID_SET on successful completion of this routine. .Sh PARAMETERS -.Bl -tag +.Bl -tag -width ".It minor_status" .It minor_status Mechanism specific status code. .It set The storage associated with the gss_OID_set will be deleted. .El .Sh RETURN VALUES -.Bl -tag +.Bl -tag -width ".It GSS_S_COMPLETE" .It GSS_S_COMPLETE Successful completion .El .Sh STANDARDS -.Bl -tag +.Bl -tag -width ".It RFC 2743" .It RFC 2743 Generic Security Service Application Program Interface Version 2, Update 1 .It RFC 2744 diff --git a/lib/libgssapi/gss_test_oid_set_member.3 b/lib/libgssapi/gss_test_oid_set_member.3 index c6dad0f2fe76..5588e8a66bd6 100644 --- a/lib/libgssapi/gss_test_oid_set_member.3 +++ b/lib/libgssapi/gss_test_oid_set_member.3 @@ -54,7 +54,7 @@ and .Fn gss_inquire_cred , but will also work with user-generated sets. .Sh PARAMETERS -.Bl -tag +.Bl -tag -width ".It minor_status" .It minor_status Mechanism specific status code. .It member @@ -65,7 +65,7 @@ The Object Identifier set. Non-zero if the specified OID is a member of the set, zero if not. .El .Sh RETURN VALUES -.Bl -tag +.Bl -tag -width ".It GSS_S_COMPLETE" .It GSS_S_COMPLETE Successful completion .El @@ -74,7 +74,7 @@ Successful completion .Xr gss_acquire_cred 3 , .Xr gss_inquire_cred 3 .Sh STANDARDS -.Bl -tag +.Bl -tag -width ".It RFC 2743" .It RFC 2743 Generic Security Service Application Program Interface Version 2, Update 1 .It RFC 2744 diff --git a/lib/libgssapi/gss_unwrap.3 b/lib/libgssapi/gss_unwrap.3 index cc241f89ffdd..368b361efebc 100644 --- a/lib/libgssapi/gss_unwrap.3 +++ b/lib/libgssapi/gss_unwrap.3 @@ -90,7 +90,7 @@ both to allow GSS-API V1 applications to link and to retain the slight parameter type differences between the obsolete versions of this routine and its current form. .Sh PARAMETERS -.Bl -tag +.Bl -tag -width ".It output_message_buffer" .It minor_status Mechanism specific status code. .It context_handle @@ -116,7 +116,7 @@ Specify NULL if not required. Quality of protection provided. Specify NULL if not required. .El .Sh RETURN VALUES -.Bl -tag +.Bl -tag -width ".It GSS_S_CONTEXT_EXPIRED" .It GSS_S_COMPLETE Successful completion. .It GSS_S_DEFECTIVE_TOKEN @@ -150,7 +150,7 @@ The context_handle parameter did not identify a valid context. .Xr gss_wrap 3 , .Xr gss_release_buffer 3 .Sh STANDARDS -.Bl -tag +.Bl -tag -width ".It RFC 2743" .It RFC 2743 Generic Security Service Application Program Interface Version 2, Update 1 .It RFC 2744 diff --git a/lib/libgssapi/gss_verify_mic.3 b/lib/libgssapi/gss_verify_mic.3 index e8a46119422b..ae7cee2a83bb 100644 --- a/lib/libgssapi/gss_verify_mic.3 +++ b/lib/libgssapi/gss_verify_mic.3 @@ -81,7 +81,7 @@ both to allow GSS-API V1 applications to link and to retain the slight parameter type differences between the obsolete versions of this routine and its current form. .Sh PARAMETERS -.Bl -tag +.Bl -tag -width ".It context_handle" .It minor_status Mechanism specific status code. .It context_handle @@ -97,7 +97,7 @@ Specify if not required. .El .Sh RETURN VALUES -.Bl -tag +.Bl -tag -width ".It GSS_S_CONTEXT_EXPIRED" .It GSS_S_COMPLETE Successful completion .It GSS_S_DEFECTIVE_TOKEN @@ -130,7 +130,7 @@ The context_handle parameter did not identify a valid context .Sh SEE ALSO .Xr gss_wrap 3 .Sh STANDARDS -.Bl -tag +.Bl -tag -width ".It RFC 2743" .It RFC 2743 Generic Security Service Application Program Interface Version 2, Update 1 .It RFC 2744 diff --git a/lib/libgssapi/gss_wrap.3 b/lib/libgssapi/gss_wrap.3 index 5bf9cc26ba59..edc134583698 100644 --- a/lib/libgssapi/gss_wrap.3 +++ b/lib/libgssapi/gss_wrap.3 @@ -85,13 +85,13 @@ both to allow GSS-API V1 applications to link and to retain the slight parameter type differences between the obsolete versions of this routine and its current form. .Sh PARAMETERS -.Bl -tag +.Bl -tag -width ".It output_message_buffer" .It minor_status Mechanism specific status code. .It context_handle Identifies the context on which the message will be sent. .It conf_req_flag -.Bl -tag -width "Non-zero" +.Bl -tag -width "Non-zero" -compact .It Non-zero Both confidentiality and integrity services are requested. .It Zero @@ -108,7 +108,7 @@ will return a major_status of .It input_message_buffer Message to be protected. .It conf_state -.Bl -tag -width "Non-zero" +.Bl -tag -width "Non-zero" -compact .It Non-zero Confidentiality, data origin authentication and integrity services have been applied. @@ -123,7 +123,7 @@ with a call to .Xr gss_release_buffer 3 . .El .Sh RETURN VALUES -.Bl -tag +.Bl -tag -width ".It GSS_S_CONTEXT_EXPIRED" .It GSS_S_COMPLETE Successful completion. .It GSS_S_CONTEXT_EXPIRED @@ -137,7 +137,7 @@ The specified QOP is not supported by the mechanism. .Xr gss_unwrap 3 , .Xr gss_release_buffer 3 .Sh STANDARDS -.Bl -tag +.Bl -tag -width ".It RFC 2743" .It RFC 2743 Generic Security Service Application Program Interface Version 2, Update 1 .It RFC 2744 diff --git a/lib/libgssapi/gss_wrap_size_limit.3 b/lib/libgssapi/gss_wrap_size_limit.3 index 7a1cb599ad20..afbff8648120 100644 --- a/lib/libgssapi/gss_wrap_size_limit.3 +++ b/lib/libgssapi/gss_wrap_size_limit.3 @@ -83,7 +83,7 @@ the implementation should not return a value via .Dv max_input_bytes that is greater than this length. .Sh PARAMETERS -.Bl -tag +.Bl -tag -width ".It req_output_size" .It minor_status Mechanism specific status code. .It context_handle @@ -109,7 +109,7 @@ be no larger than bytes. .El .Sh RETURN VALUES -.Bl -tag +.Bl -tag -width ".It GSS_S_CONTEXT_EXPIRED" .It GSS_S_COMPLETE Successful completion. .It GSS_S_NO_CONTEXT @@ -122,7 +122,7 @@ The specified QOP is not supported by the mechanism. .Sh SEE ALSO .Xr gss_wrap 3 .Sh STANDARDS -.Bl -tag +.Bl -tag -width ".It RFC 2743" .It RFC 2743 Generic Security Service Application Program Interface Version 2, Update 1 .It RFC 2744 diff --git a/lib/libgssapi/gssapi.3 b/lib/libgssapi/gssapi.3 index 121d9e42e6e6..d41595e48b9a 100644 --- a/lib/libgssapi/gssapi.3 +++ b/lib/libgssapi/gssapi.3 @@ -219,7 +219,7 @@ functionality is not available from the generic forms. Applications are encouraged to use the generic routines wherever possible on portability grounds. .Sh STANDARDS -.Bl -tag +.Bl -tag -width ".It RFC 2743" .It RFC 2743 Generic Security Service Application Program Interface Version 2, Update 1 .It RFC 2744 diff --git a/lib/libgssapi/mech.5 b/lib/libgssapi/mech.5 index b56565e3d15d..dd15ba98938c 100644 --- a/lib/libgssapi/mech.5 +++ b/lib/libgssapi/mech.5 @@ -39,17 +39,17 @@ The file contains a list of installed GSS-API security mechanisms. Each line of the file either contains a comment if the first character is '#' or it contains five fields with the following meanings: -.Bl -tag +.Bl -tag -width ".It Object identifier" .It Name The name of this GSS-API mechanism. .It Object identifier The OID for this mechanism. .It Library A shared library containing the implementation of this mechanism. -.It Kernel module (optional) -A kernel module containing the implementation of this mechanism (not +.It Kernel module +Optional kernel module containing the implementation of this mechanism (not yet supported in FreeBSD). -.It Library options (optional) +.It Library options Optional parameters interpreted by the mechanism. Library options must be enclosed in brackets ([ ]) to differentiate them from the optional kernel module entry. @@ -68,7 +68,7 @@ file contains a list of Quality of Protection values for use with GSS-API. Each line of the file either contains a comment if the first character is '#' or it contains three fields with the following meanings: -.Bl -tag +.Bl -tag -width ".It Mechanism name" .It QOP string The name of this Quality of Protection algorithm. .It QOP value From fb374358bfebed1b4265b618df2beddde65140c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dag-Erling=20Sm=C3=B8rgrav?= Date: Fri, 8 Jun 2012 12:36:08 +0000 Subject: [PATCH 067/340] Document that we also support sha256 and sha512. MFC after: 1 week --- lib/libutil/login.conf.5 | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/libutil/login.conf.5 b/lib/libutil/login.conf.5 index e46edc69c2a0..bd741fbcea44 100644 --- a/lib/libutil/login.conf.5 +++ b/lib/libutil/login.conf.5 @@ -269,7 +269,9 @@ multiplied by 5 seconds. allowed before the login fails. .It "passwd_format string md5 The encryption format that new or" changed passwords will use. -Valid values include "des", "md5" and "blf". +Valid values include "des", "md5", "blf", "sha256" and "sha512"; see +.Xr crypt 3 +for details. NIS clients using a .No non- Ns Fx NIS server should probably use "des". From 2ac58c1d7927587882b91232711e44d70d5dd57e Mon Sep 17 00:00:00 2001 From: Dimitry Andric Date: Fri, 8 Jun 2012 17:08:27 +0000 Subject: [PATCH 068/340] In usr.bin/sort, use another method of silencing warnings about unused arguments, which does not trigger self-assignment warnings in certain circumstances (for example, using clang with ccache). MFC after: 3 days --- usr.bin/sort/sort.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usr.bin/sort/sort.h b/usr.bin/sort/sort.h index f6505c9b2a99..0a90637bd4f7 100644 --- a/usr.bin/sort/sort.h +++ b/usr.bin/sort/sort.h @@ -41,7 +41,7 @@ #define VERSION "2.3-FreeBSD" -#define UNUSED_ARG(A) do { A=A; } while(0) +#define UNUSED_ARG(A) do { (void)(A); } while(0) #ifdef WITHOUT_NLS #define getstr(n) nlsstr[n] From 7ac1b61aacd5dbad29daa1be36a02c4340d7fb31 Mon Sep 17 00:00:00 2001 From: John Baldwin Date: Fri, 8 Jun 2012 18:32:09 +0000 Subject: [PATCH 069/340] Split the second half of vn_open_cred() (after a vnode has been found via a lookup or created via VOP_CREATE()) into a new vn_open_vnode() function and use this function in fhopen() instead of duplicating code from vn_open_cred() directly. Tested by: pho Reviewed by: kib MFC after: 2 weeks --- sys/kern/vfs_syscalls.c | 167 ++++++++++------------------------------ sys/kern/vfs_vnops.c | 74 ++++++++++-------- sys/sys/vnode.h | 2 + 3 files changed, 84 insertions(+), 159 deletions(-) diff --git a/sys/kern/vfs_syscalls.c b/sys/kern/vfs_syscalls.c index 79206a0a6806..072ea96ef26e 100644 --- a/sys/kern/vfs_syscalls.c +++ b/sys/kern/vfs_syscalls.c @@ -4484,17 +4484,12 @@ sys_fhopen(td, uap) int flags; } */ *uap; { - struct proc *p = td->td_proc; struct mount *mp; struct vnode *vp; struct fhandle fhp; - struct vattr vat; - struct vattr *vap = &vat; struct flock lf; struct file *fp; - register struct filedesc *fdp = p->p_fd; int fmode, error, type; - accmode_t accmode; struct file *nfp; int vfslocked; int indx; @@ -4502,6 +4497,7 @@ sys_fhopen(td, uap) error = priv_check(td, PRIV_VFS_FHOPEN); if (error) return (error); + indx = -1; fmode = FFLAGS(uap->flags); /* why not allow a non-read/write open for our lockd? */ if (((fmode & (FREAD | FWRITE)) == 0) || (fmode & O_CREAT)) @@ -4517,109 +4513,40 @@ sys_fhopen(td, uap) /* now give me my vnode, it gets returned to me locked */ error = VFS_FHTOVP(mp, &fhp.fh_fid, LK_EXCLUSIVE, &vp); vfs_unbusy(mp); - if (error) - goto out; - /* - * from now on we have to make sure not - * to forget about the vnode - * any error that causes an abort must vput(vp) - * just set error = err and 'goto bad;'. - */ - - /* - * from vn_open - */ - if (vp->v_type == VLNK) { - error = EMLINK; - goto bad; - } - if (vp->v_type == VSOCK) { - error = EOPNOTSUPP; - goto bad; - } - if (vp->v_type != VDIR && fmode & O_DIRECTORY) { - error = ENOTDIR; - goto bad; - } - accmode = 0; - if (fmode & (FWRITE | O_TRUNC)) { - if (vp->v_type == VDIR) { - error = EISDIR; - goto bad; - } - error = vn_writechk(vp); - if (error) - goto bad; - accmode |= VWRITE; - } - if (fmode & FREAD) - accmode |= VREAD; - if ((fmode & O_APPEND) && (fmode & FWRITE)) - accmode |= VAPPEND; -#ifdef MAC - error = mac_vnode_check_open(td->td_ucred, vp, accmode); - if (error) - goto bad; -#endif - if (accmode) { - error = VOP_ACCESS(vp, accmode, td->td_ucred, td); - if (error) - goto bad; - } - if (fmode & O_TRUNC) { - vfs_ref(mp); - VOP_UNLOCK(vp, 0); /* XXX */ - if ((error = vn_start_write(NULL, &mp, V_WAIT | PCATCH)) != 0) { - vrele(vp); - vfs_rel(mp); - goto out; - } - vn_lock(vp, LK_EXCLUSIVE | LK_RETRY); /* XXX */ - vfs_rel(mp); -#ifdef MAC - /* - * We don't yet have fp->f_cred, so use td->td_ucred, which - * should be right. - */ - error = mac_vnode_check_write(td->td_ucred, td->td_ucred, vp); - if (error == 0) { -#endif - VATTR_NULL(vap); - vap->va_size = 0; - error = VOP_SETATTR(vp, vap, td->td_ucred); -#ifdef MAC - } -#endif - vn_finished_write(mp); - if (error) - goto bad; - } - error = VOP_OPEN(vp, fmode, td->td_ucred, td, NULL); - if (error) - goto bad; - - if (fmode & FWRITE) { - vp->v_writecount++; - CTR3(KTR_VFS, "%s: vp %p v_writecount increased to %d", - __func__, vp, vp->v_writecount); + if (error) { + VFS_UNLOCK_GIANT(vfslocked); + return (error); } - /* - * end of vn_open code - */ + error = falloc_noinstall(td, &nfp); + if (error) { + vput(vp); + VFS_UNLOCK_GIANT(vfslocked); + return (error); + } - if ((error = falloc(td, &nfp, &indx, fmode)) != 0) { - if (fmode & FWRITE) { - vp->v_writecount--; - CTR3(KTR_VFS, "%s: vp %p v_writecount decreased to %d", - __func__, vp, vp->v_writecount); - } - goto bad; - } /* An extra reference on `nfp' has been held for us by falloc(). */ fp = nfp; - nfp->f_vnode = vp; - finit(nfp, fmode & FMASK, DTYPE_VNODE, vp, &vnops); +#ifdef INVARIANTS + td->td_dupfd = -1; +#endif + error = vn_open_vnode(vp, fmode, td->td_ucred, td, fp); + if (error) { + KASSERT(fp->f_ops == &badfileops, + ("VOP_OPEN in fhopen() set f_ops")); + KASSERT(td->td_dupfd < 0, + ("fhopen() encountered fdopen()")); + + vput(vp); + goto bad; + } +#ifdef INVARIANTS + td->td_dupfd = 0; +#endif + fp->f_vnode = vp; + fp->f_seqcount = 1; + finit(fp, fmode & FMASK, DTYPE_VNODE, vp, &vnops); + VOP_UNLOCK(vp, 0); if (fmode & (O_EXLOCK | O_SHLOCK)) { lf.l_whence = SEEK_SET; lf.l_start = 0; @@ -4631,36 +4558,22 @@ sys_fhopen(td, uap) type = F_FLOCK; if ((fmode & FNONBLOCK) == 0) type |= F_WAIT; - VOP_UNLOCK(vp, 0); if ((error = VOP_ADVLOCK(vp, (caddr_t)fp, F_SETLK, &lf, - type)) != 0) { - /* - * The lock request failed. Normally close the - * descriptor but handle the case where someone might - * have dup()d or close()d it when we weren't looking. - */ - fdclose(fdp, fp, indx, td); - - /* - * release our private reference - */ - fdrop(fp, td); - goto out; - } - vn_lock(vp, LK_EXCLUSIVE | LK_RETRY); + type)) != 0) + goto bad; atomic_set_int(&fp->f_flag, FHASLOCK); } + if (fmode & O_TRUNC) { + error = fo_truncate(fp, 0, td->td_ucred, td); + if (error) + goto bad; + } - VOP_UNLOCK(vp, 0); - fdrop(fp, td); - VFS_UNLOCK_GIANT(vfslocked); - td->td_retval[0] = indx; - return (0); - + error = finstall(td, fp, &indx, fmode); bad: - vput(vp); -out: VFS_UNLOCK_GIANT(vfslocked); + fdrop(fp, td); + td->td_retval[0] = indx; return (error); } diff --git a/sys/kern/vfs_vnops.c b/sys/kern/vfs_vnops.c index 00da3b4f5b94..b503529d5eea 100644 --- a/sys/kern/vfs_vnops.c +++ b/sys/kern/vfs_vnops.c @@ -108,7 +108,8 @@ vn_open(ndp, flagp, cmode, fp) } /* - * Common code for vnode open operations. + * Common code for vnode open operations via a name lookup. + * Lookup the vnode and invoke VOP_CREATE if needed. * Check permissions, and call the VOP_OPEN or VOP_CREATE routine. * * Note that this does NOT free nameidata for the successful case, @@ -124,7 +125,6 @@ vn_open_cred(struct nameidata *ndp, int *flagp, int cmode, u_int vn_open_flags, struct vattr vat; struct vattr *vap = &vat; int fmode, error; - accmode_t accmode; int vfslocked, mpsafe; mpsafe = ndp->ni_cnd.cn_flags & MPSAFE; @@ -205,24 +205,44 @@ vn_open_cred(struct nameidata *ndp, int *flagp, int cmode, u_int vn_open_flags, vfslocked = NDHASGIANT(ndp); vp = ndp->ni_vp; } - if (vp->v_type == VLNK) { - error = EMLINK; + error = vn_open_vnode(vp, fmode, cred, td, fp); + if (error) goto bad; - } - if (vp->v_type == VSOCK) { - error = EOPNOTSUPP; - goto bad; - } - if (vp->v_type != VDIR && fmode & O_DIRECTORY) { - error = ENOTDIR; - goto bad; - } + *flagp = fmode; + if (!mpsafe) + VFS_UNLOCK_GIANT(vfslocked); + return (0); +bad: + NDFREE(ndp, NDF_ONLY_PNBUF); + vput(vp); + VFS_UNLOCK_GIANT(vfslocked); + *flagp = fmode; + ndp->ni_vp = NULL; + return (error); +} + +/* + * Common code for vnode open operations once a vnode is located. + * Check permissions, and call the VOP_OPEN routine. + */ +int +vn_open_vnode(struct vnode *vp, int fmode, struct ucred *cred, + struct thread *td, struct file *fp) +{ + accmode_t accmode; + int error; + + VFS_ASSERT_GIANT(vp->v_mount); + if (vp->v_type == VLNK) + return (EMLINK); + if (vp->v_type == VSOCK) + return (EOPNOTSUPP); + if (vp->v_type != VDIR && fmode & O_DIRECTORY) + return (ENOTDIR); accmode = 0; if (fmode & (FWRITE | O_TRUNC)) { - if (vp->v_type == VDIR) { - error = EISDIR; - goto bad; - } + if (vp->v_type == VDIR) + return (EISDIR); accmode |= VWRITE; } if (fmode & FREAD) @@ -234,40 +254,30 @@ vn_open_cred(struct nameidata *ndp, int *flagp, int cmode, u_int vn_open_flags, #ifdef MAC error = mac_vnode_check_open(cred, vp, accmode); if (error) - goto bad; + return (error); #endif if ((fmode & O_CREAT) == 0) { if (accmode & VWRITE) { error = vn_writechk(vp); if (error) - goto bad; + return (error); } if (accmode) { error = VOP_ACCESS(vp, accmode, cred, td); if (error) - goto bad; + return (error); } } if ((error = VOP_OPEN(vp, fmode, cred, td, fp)) != 0) - goto bad; + return (error); if (fmode & FWRITE) { vp->v_writecount++; CTR3(KTR_VFS, "%s: vp %p v_writecount increased to %d", __func__, vp, vp->v_writecount); } - *flagp = fmode; - ASSERT_VOP_LOCKED(vp, "vn_open_cred"); - if (!mpsafe) - VFS_UNLOCK_GIANT(vfslocked); + ASSERT_VOP_LOCKED(vp, "vn_open_vnode"); return (0); -bad: - NDFREE(ndp, NDF_ONLY_PNBUF); - vput(vp); - VFS_UNLOCK_GIANT(vfslocked); - *flagp = fmode; - ndp->ni_vp = NULL; - return (error); } /* diff --git a/sys/sys/vnode.h b/sys/sys/vnode.h index c015ec14c5f2..1bde8b9d09de 100644 --- a/sys/sys/vnode.h +++ b/sys/sys/vnode.h @@ -654,6 +654,8 @@ int _vn_lock(struct vnode *vp, int flags, char *file, int line); int vn_open(struct nameidata *ndp, int *flagp, int cmode, struct file *fp); int vn_open_cred(struct nameidata *ndp, int *flagp, int cmode, u_int vn_open_flags, struct ucred *cred, struct file *fp); +int vn_open_vnode(struct vnode *vp, int fmode, struct ucred *cred, + struct thread *td, struct file *fp); void vn_pages_remove(struct vnode *vp, vm_pindex_t start, vm_pindex_t end); int vn_pollrecord(struct vnode *vp, struct thread *p, int events); int vn_rdwr(enum uio_rw rw, struct vnode *vp, void *base, From 89b7a5879e6e19ff52e9e1c7940072de7174ccfd Mon Sep 17 00:00:00 2001 From: Gabor Kovesdan Date: Fri, 8 Jun 2012 19:21:49 +0000 Subject: [PATCH 070/340] - Remove the UNUSED_ARG macro and use __unused in argument lists Reviewed by: dim MFC after: 3 days --- usr.bin/sort/coll.c | 24 +++++++++--------------- usr.bin/sort/sort.h | 2 -- 2 files changed, 9 insertions(+), 17 deletions(-) diff --git a/usr.bin/sort/coll.c b/usr.bin/sort/coll.c index 6d2d293ee8e5..b7e1cf2ecd6a 100644 --- a/usr.bin/sort/coll.c +++ b/usr.bin/sort/coll.c @@ -792,7 +792,8 @@ cmpsuffix(unsigned char si1, unsigned char si2) * Implements numeric sort for -n and -h. */ static int -numcoll_impl(struct key_value *kv1, struct key_value *kv2, size_t offset, bool use_suffix) +numcoll_impl(struct key_value *kv1, struct key_value *kv2, + size_t offset __unused, bool use_suffix) { struct bwstring *s1, *s2; wchar_t sfrac1[MAX_NUM_SIZE + 1], sfrac2[MAX_NUM_SIZE + 1]; @@ -810,8 +811,6 @@ numcoll_impl(struct key_value *kv1, struct key_value *kv2, size_t offset, bool u cmp_res = 0; key1_read = key2_read = false; - UNUSED_ARG(offset); - if (debug_sort) { bwsprintf(stdout, s1, "; k1=<", ">"); bwsprintf(stdout, s2, ", k2=<", ">"); @@ -968,14 +967,13 @@ hnumcoll(struct key_value *kv1, struct key_value *kv2, size_t offset) * Implements random sort (-R). */ static int -randomcoll(struct key_value *kv1, struct key_value *kv2, size_t offset) +randomcoll(struct key_value *kv1, struct key_value *kv2, + size_t offset __unused) { struct bwstring *s1, *s2; MD5_CTX ctx1, ctx2; char *b1, *b2; - UNUSED_ARG(offset); - s1 = kv1->k; s2 = kv2->k; @@ -1022,12 +1020,11 @@ randomcoll(struct key_value *kv1, struct key_value *kv2, size_t offset) * Implements version sort (-V). */ static int -versioncoll(struct key_value *kv1, struct key_value *kv2, size_t offset) +versioncoll(struct key_value *kv1, struct key_value *kv2, + size_t offset __unused) { struct bwstring *s1, *s2; - UNUSED_ARG(offset); - s1 = kv1->k; s2 = kv2->k; @@ -1098,7 +1095,8 @@ cmp_nans(double d1, double d2) * Implements general numeric sort (-g). */ static int -gnumcoll(struct key_value *kv1, struct key_value *kv2, size_t offset) +gnumcoll(struct key_value *kv1, struct key_value *kv2, + size_t offset __unused) { double d1, d2; int err1, err2; @@ -1108,8 +1106,6 @@ gnumcoll(struct key_value *kv1, struct key_value *kv2, size_t offset) err1 = err2 = 0; key1_read = key2_read = false; - UNUSED_ARG(offset); - if (debug_sort) { bwsprintf(stdout, kv1->k, "; k1=<", ">"); bwsprintf(stdout, kv2->k, "; k2=<", ">"); @@ -1256,7 +1252,7 @@ gnumcoll(struct key_value *kv1, struct key_value *kv2, size_t offset) * Implements month sort (-M). */ static int -monthcoll(struct key_value *kv1, struct key_value *kv2, size_t offset) +monthcoll(struct key_value *kv1, struct key_value *kv2, size_t offset __unused) { int val1, val2; bool key1_read, key2_read; @@ -1264,8 +1260,6 @@ monthcoll(struct key_value *kv1, struct key_value *kv2, size_t offset) val1 = val2 = 0; key1_read = key2_read = false; - UNUSED_ARG(offset); - if (debug_sort) { bwsprintf(stdout, kv1->k, "; k1=<", ">"); bwsprintf(stdout, kv2->k, "; k2=<", ">"); diff --git a/usr.bin/sort/sort.h b/usr.bin/sort/sort.h index 0a90637bd4f7..525b62513e54 100644 --- a/usr.bin/sort/sort.h +++ b/usr.bin/sort/sort.h @@ -41,8 +41,6 @@ #define VERSION "2.3-FreeBSD" -#define UNUSED_ARG(A) do { (void)(A); } while(0) - #ifdef WITHOUT_NLS #define getstr(n) nlsstr[n] #else From 8403b19372043b43879b38a3273c859aaf21bdaa Mon Sep 17 00:00:00 2001 From: John Baldwin Date: Fri, 8 Jun 2012 21:30:35 +0000 Subject: [PATCH 071/340] Several updates: - Consistently refer to rmlocks as "read-mostly locks". - Relate rmlocks to rwlocks rather than sx locks since they are closer to rwlocks. - Add a separate paragraph on sleepable read-mostly locks contrasting them with "normal" read-mostly locks. - The flag passed to rm_init_flags() to enable recursion for readers is RM_RECURSE, not LO_RECURSABLE. - Fix the description for RM_RECURSE (it allows readers to recurse, not writers). - Explicitly note that rm_try_rlock() honors RM_RECURSE. - Fix some minor grammar nits. --- share/man/man9/rmlock.9 | 121 ++++++++++++++++++++-------------------- 1 file changed, 62 insertions(+), 59 deletions(-) diff --git a/share/man/man9/rmlock.9 b/share/man/man9/rmlock.9 index 893eb2534f05..78083458072b 100644 --- a/share/man/man9/rmlock.9 +++ b/share/man/man9/rmlock.9 @@ -26,7 +26,7 @@ .\" $FreeBSD$ .\" .\" Based on rwlock.9 man page -.Dd November 16, 2011 +.Dd June 8, 2012 .Dt RMLOCK 9 .Os .Sh NAME @@ -41,7 +41,7 @@ .Nm rm_wunlock , .Nm rm_wowned , .Nm RM_SYSINIT -.Nd kernel reader/writer lock optimized for mostly read access patterns +.Nd kernel reader/writer lock optimized for read-mostly access patterns .Sh SYNOPSIS .In sys/param.h .In sys/lock.h @@ -67,7 +67,7 @@ .In sys/kernel.h .Fn RM_SYSINIT "name" "struct rmlock *rm" "const char *desc" "int opts" .Sh DESCRIPTION -Mostly reader locks allow shared access to protected data by multiple threads, +Read-mostly locks allow shared access to protected data by multiple threads, or exclusive access by a single thread. The threads with shared access are known as .Em readers @@ -76,83 +76,82 @@ A thread with exclusive access is known as a .Em writer since it can modify protected data. .Pp -Read mostly locks are designed to be efficient for locks almost exclusively +Read-mostly locks are designed to be efficient for locks almost exclusively used as reader locks and as such should be used for protecting data that rarely changes. -Acquiring an exclusive lock after the lock had been locked for shared access +Acquiring an exclusive lock after the lock has been locked for shared access is an expensive operation. .Pp -Although reader/writer locks look very similar to -.Xr sx 9 -locks, their usage pattern is different. -Reader/writer locks can be treated as mutexes (see -.Xr mutex 9 ) -with shared/exclusive semantics unless initialized with -.Dv RM_SLEEPABLE . +Normal read-mostly locks are similar to +.Xr rwlock 9 +locks and follow the same lock ordering rules as +.Xr rwlock 9 +locks. +Read-mostly locks have full priority propagation like mutexes. Unlike -.Xr sx 9 , -an -.Nm -can be locked while holding a non-spin mutex, and an -.Nm -cannot be held while sleeping, again unless initialized with -.Dv RM_SLEEPABLE . -The -.Nm -locks have full priority propagation like mutexes. -The +.Xr rwlock 9 , +read-mostly locks propagate priority to both readers and writers. +This is implemented via the .Va rm_priotracker -structure argument supplied in +structure argument supplied to .Fn rm_rlock and -.Fn rm_runlock -is used to keep track of the read owner(s). -Another important property is that shared holders of -.Nm -can recurse if the lock has been initialized with the -.Dv LO_RECURSABLE -option, however exclusive locks are not allowed to recurse. +.Fn rm_runlock . +Readers can recurse if the lock is initialized with the +.Dv RM_RECURSE +option; +however, writers are never allowed to recurse. +.Pp +Sleepable read-mostly locks are created by passing +.Dv RM_SLEEPABLE +to +.Fn rm_init_flags . +Unlike normal read-mostly locks, +sleepable read-mostly locks follow the same lock ordering rules as +.Xr sx 9 +locks. +Sleepable read-mostly locks do not propagate priority to writers, +but they do propagate priority to readers. +Writers are permitted to sleep while holding a read-mostly lock, +but readers are not. +Unlike other sleepable locks such as +.Xr sx 9 +locks, +readers must use try operations on other sleepable locks to avoid sleeping. .Ss Macros and Functions .Bl -tag -width indent .It Fn rm_init "struct rmlock *rm" "const char *name" -Initialize structure located at -.Fa rm -as mostly reader lock, described by -.Fa name . -The name description is used solely for debugging purposes. +Initialize the read-mostly lock +.Fa rm . +The +.Fa name +description is used solely for debugging purposes. This function must be called before any other operations on the lock. .It Fn rm_init_flags "struct rmlock *rm" "const char *name" "int opts" -Initialize the rm lock just like the -.Fn rm_init -function, but specifying a set of optional flags to alter the -behaviour of -.Fa rm , -through the +Similar to +.Fn rm_init , +initialize the read-mostly lock +.Fa rm +with a set of optional flags. +The .Fa opts -argument. -It contains one or more of the following flags: +arguments contains one or more of the following flags: .Bl -tag -width ".Dv RM_NOWITNESS" .It Dv RM_NOWITNESS Instruct .Xr witness 4 to ignore this lock. .It Dv RM_RECURSE -Allow threads to recursively acquire exclusive locks for +Allow threads to recursively acquire shared locks for .Fa rm . .It Dv RM_SLEEPABLE -Allow writers to sleep while holding the lock. -Readers must not sleep while holding the lock and can avoid to sleep on -taking the lock by using -.Fn rm_try_rlock -instead of -.Fn rm_rlock . +Create a sleepable read-mostly lock. .El .It Fn rm_rlock "struct rmlock *rm" "struct rm_priotracker* tracker" Lock .Fa rm -as a reader. -Using +as a reader using .Fa tracker to track read owners of a lock for priority propagation. This data structure is only used internally by @@ -161,28 +160,32 @@ and must persist until .Fn rm_runlock has been called. This data structure can be allocated on the stack since -rmlocks cannot be held while sleeping. +readers cannot sleep. If any thread holds this lock exclusively, the current thread blocks, and its priority is propagated to the exclusive holder. If the lock was initialized with the -.Dv LO_RECURSABLE +.Dv RM_RECURSE option the .Fn rm_rlock -function can be called when the thread has already acquired reader +function can be called when the current thread has already acquired reader access on .Fa rm . -This is called -.Dq "recursing on a lock" . .It Fn rm_try_rlock "struct rmlock *rm" "struct rm_priotracker* tracker" Try to lock .Fa rm as a reader. .Fn rm_try_rlock will return 0 if the lock cannot be acquired immediately; -otherwise the lock will be acquired and a non-zero value will be returned. +otherwise, +the lock will be acquired and a non-zero value will be returned. Note that .Fn rm_try_rlock may fail even while the lock is not currently held by a writer. +If the lock was initialized with the +.Dv RM_RECURSE +option, +.Fn rm_try_rlock +will succeed if the current thread has already acquired reader access. .It Fn rm_wlock "struct rmlock *rm" Lock .Fa rm From b347830a7d6e01f2771dac675a57019beed726fc Mon Sep 17 00:00:00 2001 From: Jilles Tjoelker Date: Fri, 8 Jun 2012 22:54:25 +0000 Subject: [PATCH 072/340] sh: Do not assume that SIGPIPE will only kill a subshell in builtins/wait3.0 test. POSIX says that SIGPIPE affects a process and therefore a SIGPIPE caused and received by a subshell environment may or may not affect the parent shell environment. The change assumes that ${SH} is executed in a new process. This must be the case if it contains a slash and everyone appears to do so anyway even though POSIX might permit otherwise. This change makes builtins/wait3.0 work in ksh93. --- tools/regression/bin/sh/builtins/wait3.0 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/regression/bin/sh/builtins/wait3.0 b/tools/regression/bin/sh/builtins/wait3.0 index d4eb25017e48..1ed52999630d 100644 --- a/tools/regression/bin/sh/builtins/wait3.0 +++ b/tools/regression/bin/sh/builtins/wait3.0 @@ -15,7 +15,7 @@ for i in 1 2 3 4 5 6 7 8 9 10; do done exec 3>fifo1 wait || failure $LINENO -(echo >&3) 2>/dev/null && failure $LINENO +(${SH} -c echo >&3) 2>/dev/null && failure $LINENO wait || failure $LINENO test -z "$failures" From fb864578afd9c1f073b39c9154b2d5642c536ed9 Mon Sep 17 00:00:00 2001 From: Mitsuru IWASAKI Date: Sat, 9 Jun 2012 00:37:26 +0000 Subject: [PATCH 073/340] Add x86/acpica/acpi_wakeup.c for amd64 and i386. Difference of suspend/resume procedures are minimized among them. common: - Add global cpuset suspended_cpus to indicate APs are suspended/resumed. - Remove acpi_waketag and acpi_wakemap from acpivar.h (no longer used). - Add some variables in acpi_wakecode.S in order to minimize the difference among amd64 and i386. - Disable load_cr3() because now CR3 is restored in resumectx(). amd64: - Add suspend/resume related members (such as MSR) in PCB. - Modify savectx() for above new PCB members. - Merge acpi_switch.S into cpu_switch.S as resumectx(). i386: - Merge(and remove) suspendctx() into savectx() in order to match with amd64 code. Reviewed by: attilio@, acpi@ --- sys/amd64/acpica/acpi_switch.S | 177 ----------- sys/amd64/acpica/acpi_wakecode.S | 38 +-- sys/amd64/amd64/cpu_switch.S | 159 ++++++++++ sys/amd64/amd64/genassym.c | 7 + sys/amd64/amd64/mp_machdep.c | 7 +- sys/amd64/include/pcb.h | 14 +- sys/conf/files.amd64 | 3 +- sys/conf/files.i386 | 2 +- sys/dev/acpica/acpivar.h | 2 - sys/i386/acpica/acpi_wakecode.S | 3 + sys/i386/acpica/acpi_wakeup.c | 378 ------------------------ sys/i386/i386/mp_machdep.c | 5 +- sys/i386/i386/swtch.s | 87 ++---- sys/i386/include/pcb.h | 3 +- sys/kern/subr_smp.c | 1 + sys/sys/smp.h | 1 + sys/{amd64 => x86}/acpica/acpi_wakeup.c | 74 +++-- 17 files changed, 280 insertions(+), 681 deletions(-) delete mode 100644 sys/amd64/acpica/acpi_switch.S delete mode 100644 sys/i386/acpica/acpi_wakeup.c rename sys/{amd64 => x86}/acpica/acpi_wakeup.c (86%) diff --git a/sys/amd64/acpica/acpi_switch.S b/sys/amd64/acpica/acpi_switch.S deleted file mode 100644 index 11e53564ccf8..000000000000 --- a/sys/amd64/acpica/acpi_switch.S +++ /dev/null @@ -1,177 +0,0 @@ -/*- - * Copyright (c) 2001 Takanori Watanabe - * Copyright (c) 2001 Mitsuru IWASAKI - * Copyright (c) 2008-2012 Jung-uk Kim - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $FreeBSD$ - */ - -#include -#include - -#include "acpi_wakedata.h" -#include "assym.s" - -#define WAKEUP_CTX(member) wakeup_ ## member - wakeup_ctx(%rsi) - -ENTRY(acpi_restorecpu) - /* Switch to KPML4phys. */ - movq %rdi, %cr3 - - /* Restore GDT. */ - lgdt WAKEUP_CTX(gdt) - jmp 1f -1: - - /* Fetch PCB. */ - movq WAKEUP_CTX(pcb), %rdi - - /* Force kernel segment registers. */ - movl $KDSEL, %eax - movw %ax, %ds - movw %ax, %es - movw %ax, %ss - movl $KUF32SEL, %eax - movw %ax, %fs - movl $KUG32SEL, %eax - movw %ax, %gs - - movl $MSR_FSBASE, %ecx - movl PCB_FSBASE(%rdi), %eax - movl 4 + PCB_FSBASE(%rdi), %edx - wrmsr - movl $MSR_GSBASE, %ecx - movl PCB_GSBASE(%rdi), %eax - movl 4 + PCB_GSBASE(%rdi), %edx - wrmsr - movl $MSR_KGSBASE, %ecx - movl PCB_KGSBASE(%rdi), %eax - movl 4 + PCB_KGSBASE(%rdi), %edx - wrmsr - - /* Restore EFER. */ - movl $MSR_EFER, %ecx - movl WAKEUP_CTX(efer), %eax - wrmsr - - /* Restore fast syscall stuff. */ - movl $MSR_STAR, %ecx - movl WAKEUP_CTX(star), %eax - movl 4 + WAKEUP_CTX(star), %edx - wrmsr - movl $MSR_LSTAR, %ecx - movl WAKEUP_CTX(lstar), %eax - movl 4 + WAKEUP_CTX(lstar), %edx - wrmsr - movl $MSR_CSTAR, %ecx - movl WAKEUP_CTX(cstar), %eax - movl 4 + WAKEUP_CTX(cstar), %edx - wrmsr - movl $MSR_SF_MASK, %ecx - movl WAKEUP_CTX(sfmask), %eax - wrmsr - - /* Restore CR0 except for FPU mode. */ - movq PCB_CR0(%rdi), %rax - andq $~(CR0_EM | CR0_TS), %rax - movq %rax, %cr0 - - /* Restore CR2 and CR4. */ - movq PCB_CR2(%rdi), %rax - movq %rax, %cr2 - movq PCB_CR4(%rdi), %rax - movq %rax, %cr4 - - /* Restore descriptor tables. */ - lidt PCB_IDT(%rdi) - lldt PCB_LDT(%rdi) - -#define SDT_SYSTSS 9 -#define SDT_SYSBSY 11 - - /* Clear "task busy" bit and reload TR. */ - movq PCPU(TSS), %rax - andb $(~SDT_SYSBSY | SDT_SYSTSS), 5(%rax) - movw PCB_TR(%rdi), %ax - ltr %ax - -#undef SDT_SYSTSS -#undef SDT_SYSBSY - - /* Restore debug registers. */ - movq PCB_DR0(%rdi), %rax - movq %rax, %dr0 - movq PCB_DR1(%rdi), %rax - movq %rax, %dr1 - movq PCB_DR2(%rdi), %rax - movq %rax, %dr2 - movq PCB_DR3(%rdi), %rax - movq %rax, %dr3 - movq PCB_DR6(%rdi), %rax - movq %rax, %dr6 - movq PCB_DR7(%rdi), %rax - movq %rax, %dr7 - - /* Restore FPU state. */ - fninit - movq WAKEUP_CTX(fpusave), %rbx - movq WAKEUP_CTX(xsmask), %rax - testq %rax, %rax - jz 1f - movq %rax, %rdx - shrq $32, %rdx - movl $XCR0, %ecx -/* xsetbv */ - .byte 0x0f, 0x01, 0xd1 -/* xrstor (%rbx) */ - .byte 0x0f, 0xae, 0x2b - jmp 2f -1: - fxrstor (%rbx) -2: - - /* Reload CR0. */ - movq PCB_CR0(%rdi), %rax - movq %rax, %cr0 - - /* Restore other callee saved registers. */ - movq PCB_R15(%rdi), %r15 - movq PCB_R14(%rdi), %r14 - movq PCB_R13(%rdi), %r13 - movq PCB_R12(%rdi), %r12 - movq PCB_RBP(%rdi), %rbp - movq PCB_RSP(%rdi), %rsp - movq PCB_RBX(%rdi), %rbx - - /* Restore return address. */ - movq PCB_RIP(%rdi), %rax - movq %rax, (%rsp) - - /* Indicate the CPU is resumed. */ - xorl %eax, %eax - movl %eax, WAKEUP_CTX(cpu) - - ret -END(acpi_restorecpu) diff --git a/sys/amd64/acpica/acpi_wakecode.S b/sys/amd64/acpica/acpi_wakecode.S index 82d0ab21e5a6..a87732819226 100644 --- a/sys/amd64/acpica/acpi_wakecode.S +++ b/sys/amd64/acpica/acpi_wakecode.S @@ -219,10 +219,15 @@ wakeup_64: mov $bootdata64 - bootgdt, %eax mov %ax, %ds - /* Restore arguments and return. */ - movq wakeup_kpml4 - wakeup_start(%rbx), %rdi - movq wakeup_ctx - wakeup_start(%rbx), %rsi - movq wakeup_retaddr - wakeup_start(%rbx), %rax + /* Restore arguments. */ + movq wakeup_cr3 - wakeup_start(%rbx), %rsi + movq wakeup_pcb - wakeup_start(%rbx), %rdi + movq wakeup_ret - wakeup_start(%rbx), %rax + + /* Restore GDT. */ + lgdt wakeup_gdt - wakeup_start(%rbx) + + /* Jump to return address. */ jmp *%rax .data @@ -268,34 +273,15 @@ bootgdtdesc: .long bootgdt - wakeup_start /* Offset plus %ds << 4 */ ALIGN_DATA -wakeup_retaddr: +wakeup_cr4: /* not used */ .quad 0 -wakeup_kpml4: - .quad 0 - -wakeup_ctx: +wakeup_cr3: .quad 0 wakeup_pcb: .quad 0 -wakeup_fpusave: +wakeup_ret: .quad 0 wakeup_gdt: .word 0 .quad 0 - - ALIGN_DATA -wakeup_efer: - .quad 0 -wakeup_star: - .quad 0 -wakeup_lstar: - .quad 0 -wakeup_cstar: - .quad 0 -wakeup_sfmask: - .quad 0 -wakeup_xsmask: - .quad 0 -wakeup_cpu: - .long 0 dummy: diff --git a/sys/amd64/amd64/cpu_switch.S b/sys/amd64/amd64/cpu_switch.S index aff9d17f6c04..240c95581008 100644 --- a/sys/amd64/amd64/cpu_switch.S +++ b/sys/amd64/amd64/cpu_switch.S @@ -357,6 +357,30 @@ ENTRY(savectx) rdmsr movl %eax,PCB_KGSBASE(%rdi) movl %edx,PCB_KGSBASE+4(%rdi) + movl $MSR_EFER,%ecx + rdmsr + movl %eax,PCB_EFER(%rdi) + movl %edx,PCB_EFER+4(%rdi) + movl $MSR_STAR,%ecx + rdmsr + movl %eax,PCB_STAR(%rdi) + movl %edx,PCB_STAR+4(%rdi) + movl $MSR_LSTAR,%ecx + rdmsr + movl %eax,PCB_LSTAR(%rdi) + movl %edx,PCB_LSTAR+4(%rdi) + movl $MSR_CSTAR,%ecx + rdmsr + movl %eax,PCB_CSTAR(%rdi) + movl %edx,PCB_CSTAR+4(%rdi) + movl $MSR_SF_MASK,%ecx + rdmsr + movl %eax,PCB_SFMASK(%rdi) + movl %edx,PCB_SFMASK+4(%rdi) + movl xsave_mask,%eax + movl %eax,PCB_XSMASK(%rdi) + movl xsave_mask+4,%eax + movl %eax,PCB_XSMASK+4(%rdi) sgdt PCB_GDT(%rdi) sidt PCB_IDT(%rdi) @@ -369,6 +393,141 @@ ENTRY(savectx) ret END(savectx) +/* + * resumectx(pcb in %rdi, cr3 in %rsi) + * Resuming processor state from pcb. + */ +ENTRY(resumectx) + /* Switch to KPML4phys. */ + movq %rsi,%cr3 + + /* Force kernel segment registers. */ + movl $KDSEL,%eax + movw %ax,%ds + movw %ax,%es + movw %ax,%ss + movl $KUF32SEL,%eax + movw %ax,%fs + movl $KUG32SEL,%eax + movw %ax,%gs + + movl $MSR_FSBASE,%ecx + movl PCB_FSBASE(%rdi),%eax + movl 4 + PCB_FSBASE(%rdi),%edx + wrmsr + movl $MSR_GSBASE,%ecx + movl PCB_GSBASE(%rdi),%eax + movl 4 + PCB_GSBASE(%rdi),%edx + wrmsr + movl $MSR_KGSBASE,%ecx + movl PCB_KGSBASE(%rdi),%eax + movl 4 + PCB_KGSBASE(%rdi),%edx + wrmsr + + /* Restore EFER. */ + movl $MSR_EFER,%ecx + movl PCB_EFER(%rdi),%eax + wrmsr + + /* Restore fast syscall stuff. */ + movl $MSR_STAR,%ecx + movl PCB_STAR(%rdi),%eax + movl 4 + PCB_STAR(%rdi),%edx + wrmsr + movl $MSR_LSTAR,%ecx + movl PCB_LSTAR(%rdi),%eax + movl 4 + PCB_LSTAR(%rdi),%edx + wrmsr + movl $MSR_CSTAR,%ecx + movl PCB_CSTAR(%rdi),%eax + movl 4 + PCB_CSTAR(%rdi),%edx + wrmsr + movl $MSR_SF_MASK,%ecx + movl PCB_SFMASK(%rdi),%eax + wrmsr + + /* Restore CR0 except for FPU mode. */ + movq PCB_CR0(%rdi),%rax + andq $~(CR0_EM | CR0_TS),%rax + movq %rax,%cr0 + + /* Restore CR2, CR4 and CR3. */ + movq PCB_CR2(%rdi),%rax + movq %rax,%cr2 + movq PCB_CR4(%rdi),%rax + movq %rax,%cr4 + movq PCB_CR3(%rdi),%rax + movq %rax,%cr3 + + /* Restore descriptor tables. */ + lidt PCB_IDT(%rdi) + lldt PCB_LDT(%rdi) + +#define SDT_SYSTSS 9 +#define SDT_SYSBSY 11 + + /* Clear "task busy" bit and reload TR. */ + movq PCPU(TSS),%rax + andb $(~SDT_SYSBSY | SDT_SYSTSS),5(%rax) + movw PCB_TR(%rdi),%ax + ltr %ax + +#undef SDT_SYSTSS +#undef SDT_SYSBSY + + /* Restore debug registers. */ + movq PCB_DR0(%rdi),%rax + movq %rax,%dr0 + movq PCB_DR1(%rdi),%rax + movq %rax,%dr1 + movq PCB_DR2(%rdi),%rax + movq %rax,%dr2 + movq PCB_DR3(%rdi),%rax + movq %rax,%dr3 + movq PCB_DR6(%rdi),%rax + movq %rax,%dr6 + movq PCB_DR7(%rdi),%rax + movq %rax,%dr7 + + /* Restore FPU state. */ + fninit + movq PCB_FPUSUSPEND(%rdi),%rbx + movq PCB_XSMASK(%rdi),%rax + testq %rax,%rax + jz 1f + movq %rax,%rdx + shrq $32,%rdx + movl $XCR0,%ecx +/* xsetbv */ + .byte 0x0f, 0x01, 0xd1 +/* xrstor (%rbx) */ + .byte 0x0f, 0xae, 0x2b + jmp 2f +1: + fxrstor (%rbx) +2: + + /* Reload CR0. */ + movq PCB_CR0(%rdi),%rax + movq %rax,%cr0 + + /* Restore other callee saved registers. */ + movq PCB_R15(%rdi),%r15 + movq PCB_R14(%rdi),%r14 + movq PCB_R13(%rdi),%r13 + movq PCB_R12(%rdi),%r12 + movq PCB_RBP(%rdi),%rbp + movq PCB_RSP(%rdi),%rsp + movq PCB_RBX(%rdi),%rbx + + /* Restore return address. */ + movq PCB_RIP(%rdi),%rax + movq %rax,(%rsp) + + xorl %eax,%eax + ret +END(resumectx) + /* * Wrapper around fpusave to care about TS0_CR. */ diff --git a/sys/amd64/amd64/genassym.c b/sys/amd64/amd64/genassym.c index 3796aa8adc70..174927a756a0 100644 --- a/sys/amd64/amd64/genassym.c +++ b/sys/amd64/amd64/genassym.c @@ -157,6 +157,13 @@ ASSYM(PCB_TSSP, offsetof(struct pcb, pcb_tssp)); ASSYM(PCB_SAVEFPU, offsetof(struct pcb, pcb_save)); ASSYM(PCB_SAVEFPU_SIZE, sizeof(struct savefpu)); ASSYM(PCB_USERFPU, sizeof(struct pcb)); +ASSYM(PCB_EFER, offsetof(struct pcb, pcb_efer)); +ASSYM(PCB_STAR, offsetof(struct pcb, pcb_star)); +ASSYM(PCB_LSTAR, offsetof(struct pcb, pcb_lstar)); +ASSYM(PCB_CSTAR, offsetof(struct pcb, pcb_cstar)); +ASSYM(PCB_SFMASK, offsetof(struct pcb, pcb_sfmask)); +ASSYM(PCB_XSMASK, offsetof(struct pcb, pcb_xsmask)); +ASSYM(PCB_FPUSUSPEND, offsetof(struct pcb, pcb_fpususpend)); ASSYM(PCB_SIZE, sizeof(struct pcb)); ASSYM(PCB_FULL_IRET, PCB_FULL_IRET); ASSYM(PCB_DBREGS, PCB_DBREGS); diff --git a/sys/amd64/amd64/mp_machdep.c b/sys/amd64/amd64/mp_machdep.c index 3d07f243e160..903163e6edfd 100644 --- a/sys/amd64/amd64/mp_machdep.c +++ b/sys/amd64/amd64/mp_machdep.c @@ -100,7 +100,6 @@ void *dpcpu; struct pcb stoppcbs[MAXCPU]; struct pcb **susppcbs; -void **suspfpusave; /* Variables needed for SMP tlb shootdown. */ vm_offset_t smp_tlb_addr1; @@ -1415,15 +1414,19 @@ cpususpend_handler(void) cpu = PCPU_GET(cpuid); if (savectx(susppcbs[cpu])) { - ctx_fpusave(suspfpusave[cpu]); + ctx_fpusave(susppcbs[cpu]->pcb_fpususpend); wbinvd(); CPU_SET_ATOMIC(cpu, &stopped_cpus); + CPU_SET_ATOMIC(cpu, &suspended_cpus); } else { pmap_init_pat(); +#if 0 load_cr3(susppcbs[cpu]->pcb_cr3); +#endif initializecpu(); PCPU_SET(switchtime, 0); PCPU_SET(switchticks, ticks); + CPU_CLR_ATOMIC(cpu, &suspended_cpus); } /* Wait for resume */ diff --git a/sys/amd64/include/pcb.h b/sys/amd64/include/pcb.h index 70b2e6213396..619fba5a8a30 100644 --- a/sys/amd64/include/pcb.h +++ b/sys/amd64/include/pcb.h @@ -91,9 +91,20 @@ struct pcb { /* local tss, with i/o bitmap; NULL for common */ struct amd64tss *pcb_tssp; + /* model specific registers */ + register_t pcb_efer; + register_t pcb_star; + register_t pcb_lstar; + register_t pcb_cstar; + register_t pcb_sfmask; + register_t pcb_xsmask; + + /* fpu context for suspend/resume */ + void * pcb_fpususpend; + struct savefpu *pcb_save; - uint64_t pcb_pad[2]; + uint64_t pcb_pad[3]; }; #ifdef _KERNEL @@ -131,6 +142,7 @@ clear_pcb_flags(struct pcb *pcb, const u_int flags) void makectx(struct trapframe *, struct pcb *); int savectx(struct pcb *) __returns_twice; +void resumectx(struct pcb *); #endif diff --git a/sys/conf/files.amd64 b/sys/conf/files.amd64 index bfa2c104b0b7..1615ce68b21c 100644 --- a/sys/conf/files.amd64 +++ b/sys/conf/files.amd64 @@ -72,7 +72,6 @@ hptrr_lib.o optional hptrr \ no-implicit-rule # amd64/acpica/acpi_machdep.c optional acpi -amd64/acpica/acpi_switch.S optional acpi acpi_wakecode.o optional acpi \ dependency "$S/amd64/acpica/acpi_wakecode.S assym.s" \ compile-with "${NORMAL_S}" \ @@ -94,7 +93,7 @@ acpi_wakedata.h optional acpi \ no-obj no-implicit-rule before-depend \ clean "acpi_wakedata.h" # -amd64/acpica/acpi_wakeup.c optional acpi +x86/acpica/acpi_wakeup.c optional acpi amd64/amd64/amd64_mem.c optional mem #amd64/amd64/apic_vector.S standard amd64/amd64/atomic.c standard diff --git a/sys/conf/files.i386 b/sys/conf/files.i386 index 668850af2513..c9fcfb1291fc 100644 --- a/sys/conf/files.i386 +++ b/sys/conf/files.i386 @@ -381,7 +381,7 @@ acpi_wakedata.h optional acpi \ no-obj no-implicit-rule before-depend \ clean "acpi_wakedata.h" # -i386/acpica/acpi_wakeup.c optional acpi +x86/acpica/acpi_wakeup.c optional acpi i386/bios/apm.c optional apm i386/bios/mca_machdep.c optional mca i386/bios/smapi.c optional smapi diff --git a/sys/dev/acpica/acpivar.h b/sys/dev/acpica/acpivar.h index dbdd2b745254..4ef92b590940 100644 --- a/sys/dev/acpica/acpivar.h +++ b/sys/dev/acpica/acpivar.h @@ -71,8 +71,6 @@ struct acpi_softc { int acpi_verbose; int acpi_handle_reboot; - bus_dma_tag_t acpi_waketag; - bus_dmamap_t acpi_wakemap; vm_offset_t acpi_wakeaddr; vm_paddr_t acpi_wakephys; diff --git a/sys/i386/acpica/acpi_wakecode.S b/sys/i386/acpica/acpi_wakecode.S index 27520f3f4fe1..5f66ef13dcde 100644 --- a/sys/i386/acpica/acpi_wakecode.S +++ b/sys/i386/acpica/acpi_wakecode.S @@ -202,4 +202,7 @@ wakeup_pcb: .long 0 wakeup_ret: .long 0 +wakeup_gdt: /* not used */ + .word 0 + .long 0 dummy: diff --git a/sys/i386/acpica/acpi_wakeup.c b/sys/i386/acpica/acpi_wakeup.c deleted file mode 100644 index fdd0732a5438..000000000000 --- a/sys/i386/acpica/acpi_wakeup.c +++ /dev/null @@ -1,378 +0,0 @@ -/*- - * Copyright (c) 2001 Takanori Watanabe - * Copyright (c) 2001-2012 Mitsuru IWASAKI - * Copyright (c) 2003 Peter Wemm - * Copyright (c) 2008-2012 Jung-uk Kim - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -__FBSDID("$FreeBSD$"); - -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -#include -#include -#include -#include -#include -#include -#include - -#ifdef SMP -#include -#include -#include -#endif - -#include - -#include - -#include "acpi_wakecode.h" -#include "acpi_wakedata.h" - -/* Make sure the code is less than a page and leave room for the stack. */ -CTASSERT(sizeof(wakecode) < PAGE_SIZE - 1024); - -extern int acpi_resume_beep; -extern int acpi_reset_video; - -#ifdef SMP -extern struct pcb **susppcbs; -static cpuset_t suspcpus; -#else -static struct pcb **susppcbs; -#endif - -static void *acpi_alloc_wakeup_handler(void); -static void acpi_stop_beep(void *); - -#ifdef SMP -static int acpi_wakeup_ap(struct acpi_softc *, int); -static void acpi_wakeup_cpus(struct acpi_softc *); -#endif - -#define ACPI_PAGETABLES 0 -#define WAKECODE_VADDR(sc) ((sc)->acpi_wakeaddr + (ACPI_PAGETABLES * PAGE_SIZE)) -#define WAKECODE_PADDR(sc) ((sc)->acpi_wakephys + (ACPI_PAGETABLES * PAGE_SIZE)) -#define WAKECODE_FIXUP(offset, type, val) do { \ - type *addr; \ - addr = (type *)(WAKECODE_VADDR(sc) + offset); \ - *addr = val; \ -} while (0) - -static void -acpi_stop_beep(void *arg) -{ - - if (acpi_resume_beep != 0) - timer_spkr_release(); -} - -#ifdef SMP -static int -acpi_wakeup_ap(struct acpi_softc *sc, int cpu) -{ - int vector = (WAKECODE_PADDR(sc) >> 12) & 0xff; - int apic_id = cpu_apic_ids[cpu]; - int ms; - - WAKECODE_FIXUP(wakeup_pcb, struct pcb *, susppcbs[cpu]); - - /* do an INIT IPI: assert RESET */ - lapic_ipi_raw(APIC_DEST_DESTFLD | APIC_TRIGMOD_EDGE | - APIC_LEVEL_ASSERT | APIC_DESTMODE_PHY | APIC_DELMODE_INIT, apic_id); - - /* wait for pending status end */ - lapic_ipi_wait(-1); - - /* do an INIT IPI: deassert RESET */ - lapic_ipi_raw(APIC_DEST_ALLESELF | APIC_TRIGMOD_LEVEL | - APIC_LEVEL_DEASSERT | APIC_DESTMODE_PHY | APIC_DELMODE_INIT, 0); - - /* wait for pending status end */ - DELAY(10000); /* wait ~10mS */ - lapic_ipi_wait(-1); - - /* - * next we do a STARTUP IPI: the previous INIT IPI might still be - * latched, (P5 bug) this 1st STARTUP would then terminate - * immediately, and the previously started INIT IPI would continue. OR - * the previous INIT IPI has already run. and this STARTUP IPI will - * run. OR the previous INIT IPI was ignored. and this STARTUP IPI - * will run. - */ - - /* do a STARTUP IPI */ - lapic_ipi_raw(APIC_DEST_DESTFLD | APIC_TRIGMOD_EDGE | - APIC_LEVEL_DEASSERT | APIC_DESTMODE_PHY | APIC_DELMODE_STARTUP | - vector, apic_id); - lapic_ipi_wait(-1); - DELAY(200); /* wait ~200uS */ - - /* - * finally we do a 2nd STARTUP IPI: this 2nd STARTUP IPI should run IF - * the previous STARTUP IPI was cancelled by a latched INIT IPI. OR - * this STARTUP IPI will be ignored, as only ONE STARTUP IPI is - * recognized after hardware RESET or INIT IPI. - */ - - lapic_ipi_raw(APIC_DEST_DESTFLD | APIC_TRIGMOD_EDGE | - APIC_LEVEL_DEASSERT | APIC_DESTMODE_PHY | APIC_DELMODE_STARTUP | - vector, apic_id); - lapic_ipi_wait(-1); - DELAY(200); /* wait ~200uS */ - - /* Wait up to 5 seconds for it to start. */ - for (ms = 0; ms < 5000; ms++) { - if (susppcbs[cpu]->pcb_eip == 0) - return (1); /* return SUCCESS */ - DELAY(1000); - } - return (0); /* return FAILURE */ -} - -#define WARMBOOT_TARGET 0 -#define WARMBOOT_OFF (KERNBASE + 0x0467) -#define WARMBOOT_SEG (KERNBASE + 0x0469) - -#define CMOS_REG (0x70) -#define CMOS_DATA (0x71) -#define BIOS_RESET (0x0f) -#define BIOS_WARM (0x0a) - -static void -acpi_wakeup_cpus(struct acpi_softc *sc) -{ - uint32_t mpbioswarmvec; - int cpu; - u_char mpbiosreason; - - /* save the current value of the warm-start vector */ - mpbioswarmvec = *((uint32_t *)WARMBOOT_OFF); - outb(CMOS_REG, BIOS_RESET); - mpbiosreason = inb(CMOS_DATA); - - /* setup a vector to our boot code */ - *((volatile u_short *)WARMBOOT_OFF) = WARMBOOT_TARGET; - *((volatile u_short *)WARMBOOT_SEG) = WAKECODE_PADDR(sc) >> 4; - outb(CMOS_REG, BIOS_RESET); - outb(CMOS_DATA, BIOS_WARM); /* 'warm-start' */ - - /* Wake up each AP. */ - for (cpu = 1; cpu < mp_ncpus; cpu++) { - if (!CPU_ISSET(cpu, &suspcpus)) - continue; - if (acpi_wakeup_ap(sc, cpu) == 0) { - /* restore the warmstart vector */ - *(uint32_t *)WARMBOOT_OFF = mpbioswarmvec; - panic("acpi_wakeup: failed to resume AP #%d (PHY #%d)", - cpu, cpu_apic_ids[cpu]); - } - } - - /* restore the warmstart vector */ - *(uint32_t *)WARMBOOT_OFF = mpbioswarmvec; - - outb(CMOS_REG, BIOS_RESET); - outb(CMOS_DATA, mpbiosreason); -} -#endif - -int -acpi_sleep_machdep(struct acpi_softc *sc, int state) -{ - ACPI_STATUS status; - - if (sc->acpi_wakeaddr == 0ul) - return (-1); /* couldn't alloc wake memory */ - -#ifdef SMP - suspcpus = all_cpus; - CPU_CLR(PCPU_GET(cpuid), &suspcpus); -#endif - - if (acpi_resume_beep != 0) - timer_spkr_acquire(); - - AcpiSetFirmwareWakingVector(WAKECODE_PADDR(sc)); - - intr_suspend(); - - if (suspendctx(susppcbs[0])) { -#ifdef SMP - if (!CPU_EMPTY(&suspcpus) && suspend_cpus(suspcpus) == 0) { - device_printf(sc->acpi_dev, "Failed to suspend APs\n"); - return (0); /* couldn't sleep */ - } -#endif - - WAKECODE_FIXUP(resume_beep, uint8_t, (acpi_resume_beep != 0)); - WAKECODE_FIXUP(reset_video, uint8_t, (acpi_reset_video != 0)); - - WAKECODE_FIXUP(wakeup_cr4, register_t, susppcbs[0]->pcb_cr4); - WAKECODE_FIXUP(wakeup_pcb, struct pcb *, susppcbs[0]); - - /* Call ACPICA to enter the desired sleep state */ - if (state == ACPI_STATE_S4 && sc->acpi_s4bios) - status = AcpiEnterSleepStateS4bios(); - else - status = AcpiEnterSleepState(state, acpi_sleep_flags); - if (ACPI_FAILURE(status)) { - device_printf(sc->acpi_dev, - "AcpiEnterSleepState failed - %s\n", - AcpiFormatException(status)); - return (0); /* couldn't sleep */ - } - - for (;;) - ia32_pause(); - } - - return (1); /* wakeup successfully */ -} - -int -acpi_wakeup_machdep(struct acpi_softc *sc, int state, int sleep_result, - int intr_enabled) -{ - - if (sleep_result == -1) - return (sleep_result); - - if (!intr_enabled) { - /* Wakeup MD procedures in interrupt disabled context */ - if (sleep_result == 1) { - pmap_init_pat(); - load_cr3(susppcbs[0]->pcb_cr3); - initializecpu(); - PCPU_SET(switchtime, 0); - PCPU_SET(switchticks, ticks); -#ifdef SMP - if (!CPU_EMPTY(&suspcpus)) - acpi_wakeup_cpus(sc); -#endif - } - -#ifdef SMP - if (!CPU_EMPTY(&suspcpus)) - restart_cpus(suspcpus); -#endif - mca_resume(); - intr_resume(); - - AcpiSetFirmwareWakingVector(0); - } else { - /* Wakeup MD procedures in interrupt enabled context */ - if (sleep_result == 1 && mem_range_softc.mr_op != NULL && - mem_range_softc.mr_op->reinit != NULL) - mem_range_softc.mr_op->reinit(&mem_range_softc); - } - - return (sleep_result); -} - -static void * -acpi_alloc_wakeup_handler(void) -{ - void *wakeaddr; - int i; - - /* - * Specify the region for our wakeup code. We want it in the low 1 MB - * region, excluding real mode IVT (0-0x3ff), BDA (0x400-0x4ff), EBDA - * (less than 128KB, below 0xa0000, must be excluded by SMAP and DSDT), - * and ROM area (0xa0000 and above). The temporary page tables must be - * page-aligned. - */ - wakeaddr = contigmalloc((ACPI_PAGETABLES + 1) * PAGE_SIZE, M_DEVBUF, - M_NOWAIT, 0x500, 0xa0000, PAGE_SIZE, 0ul); - if (wakeaddr == NULL) { - printf("%s: can't alloc wake memory\n", __func__); - return (NULL); - } - if (EVENTHANDLER_REGISTER(power_resume, acpi_stop_beep, NULL, - EVENTHANDLER_PRI_LAST) == NULL) { - printf("%s: can't register event handler\n", __func__); - contigfree(wakeaddr, (ACPI_PAGETABLES + 1) * PAGE_SIZE, M_DEVBUF); - return (NULL); - } - susppcbs = malloc(mp_ncpus * sizeof(*susppcbs), M_DEVBUF, M_WAITOK); - for (i = 0; i < mp_ncpus; i++) { - susppcbs[i] = malloc(sizeof(**susppcbs), M_DEVBUF, M_WAITOK); - } - - return (wakeaddr); -} - -void -acpi_install_wakeup_handler(struct acpi_softc *sc) -{ - static void *wakeaddr = NULL; - - if (wakeaddr != NULL) - return; - - wakeaddr = acpi_alloc_wakeup_handler(); - if (wakeaddr == NULL) - return; - - sc->acpi_wakeaddr = (vm_offset_t)wakeaddr; - sc->acpi_wakephys = vtophys(wakeaddr); - - bcopy(wakecode, (void *)WAKECODE_VADDR(sc), sizeof(wakecode)); - - /* Patch GDT base address, ljmp target. */ - WAKECODE_FIXUP((bootgdtdesc + 2), uint32_t, - WAKECODE_PADDR(sc) + bootgdt); - WAKECODE_FIXUP((wakeup_sw32 + 2), uint32_t, - WAKECODE_PADDR(sc) + wakeup_32); - - /* Save pointers to some global data. */ - WAKECODE_FIXUP(wakeup_ret, void *, resumectx); - /* - * Temporarily switch to the kernel pmap because it provides - * an identity mapping (setup at boot) for the low physical - * memory region containing the wakeup code. - */ -#ifdef PAE - WAKECODE_FIXUP(wakeup_cr3, register_t, vtophys(kernel_pmap->pm_pdpt)); -#else - WAKECODE_FIXUP(wakeup_cr3, register_t, vtophys(kernel_pmap->pm_pdir)); -#endif - - if (bootverbose) - device_printf(sc->acpi_dev, "wakeup code va %#x pa %#jx\n", - sc->acpi_wakeaddr, (uintmax_t)sc->acpi_wakephys); -} diff --git a/sys/i386/i386/mp_machdep.c b/sys/i386/i386/mp_machdep.c index d70b4be2ad48..e1f9a70720d6 100644 --- a/sys/i386/i386/mp_machdep.c +++ b/sys/i386/i386/mp_machdep.c @@ -1512,14 +1512,15 @@ cpususpend_handler(void) cpu = PCPU_GET(cpuid); - if (suspendctx(susppcbs[cpu])) { + if (savectx(susppcbs[cpu])) { wbinvd(); CPU_SET_ATOMIC(cpu, &stopped_cpus); + CPU_SET_ATOMIC(cpu, &suspended_cpus); } else { pmap_init_pat(); PCPU_SET(switchtime, 0); PCPU_SET(switchticks, ticks); - susppcbs[cpu]->pcb_eip = 0; + CPU_CLR_ATOMIC(cpu, &suspended_cpus); } /* Wait for resume */ diff --git a/sys/i386/i386/swtch.s b/sys/i386/i386/swtch.s index c53abe25e25e..adf554a4f7fb 100644 --- a/sys/i386/i386/swtch.s +++ b/sys/i386/i386/swtch.s @@ -386,6 +386,36 @@ ENTRY(savectx) pushfl popl PCB_PSL(%ecx) + movl %cr0,%eax + movl %eax,PCB_CR0(%ecx) + movl %cr2,%eax + movl %eax,PCB_CR2(%ecx) + movl %cr4,%eax + movl %eax,PCB_CR4(%ecx) + + movl %dr0,%eax + movl %eax,PCB_DR0(%ecx) + movl %dr1,%eax + movl %eax,PCB_DR1(%ecx) + movl %dr2,%eax + movl %eax,PCB_DR2(%ecx) + movl %dr3,%eax + movl %eax,PCB_DR3(%ecx) + movl %dr6,%eax + movl %eax,PCB_DR6(%ecx) + movl %dr7,%eax + movl %eax,PCB_DR7(%ecx) + + mov %ds,PCB_DS(%ecx) + mov %es,PCB_ES(%ecx) + mov %fs,PCB_FS(%ecx) + mov %ss,PCB_SS(%ecx) + + sgdt PCB_GDT(%ecx) + sidt PCB_IDT(%ecx) + sldt PCB_LDT(%ecx) + str PCB_TR(%ecx) + #ifdef DEV_NPX /* * If fpcurthread == NULL, then the npx h/w state is irrelevant and the @@ -425,64 +455,9 @@ ENTRY(savectx) popfl #endif /* DEV_NPX */ - ret -END(savectx) - -/* - * suspendctx(pcb) - * Update pcb, suspending current processor state. - */ -ENTRY(suspendctx) - /* Fetch PCB. */ - movl 4(%esp),%ecx - - /* Save context by calling savectx(). */ - pushl %ecx - call savectx - addl $4,%esp - - /* Fetch PCB again. */ - movl 4(%esp),%ecx - - /* Update caller's return address and stack pointer. */ - movl (%esp),%eax - movl %eax,PCB_EIP(%ecx) - movl %esp,PCB_ESP(%ecx) - - /* Save other registers and descriptor tables. */ - movl %cr0,%eax - movl %eax,PCB_CR0(%ecx) - movl %cr2,%eax - movl %eax,PCB_CR2(%ecx) - movl %cr4,%eax - movl %eax,PCB_CR4(%ecx) - - movl %dr0,%eax - movl %eax,PCB_DR0(%ecx) - movl %dr1,%eax - movl %eax,PCB_DR1(%ecx) - movl %dr2,%eax - movl %eax,PCB_DR2(%ecx) - movl %dr3,%eax - movl %eax,PCB_DR3(%ecx) - movl %dr6,%eax - movl %eax,PCB_DR6(%ecx) - movl %dr7,%eax - movl %eax,PCB_DR7(%ecx) - - mov %ds,PCB_DS(%ecx) - mov %es,PCB_ES(%ecx) - mov %fs,PCB_FS(%ecx) - mov %ss,PCB_SS(%ecx) - - sgdt PCB_GDT(%ecx) - sidt PCB_IDT(%ecx) - sldt PCB_LDT(%ecx) - str PCB_TR(%ecx) - movl $1,%eax ret -END(suspendctx) +END(savectx) /* * resumectx(pcb in %esi) diff --git a/sys/i386/include/pcb.h b/sys/i386/include/pcb.h index f25167d141cb..108ecfefd447 100644 --- a/sys/i386/include/pcb.h +++ b/sys/i386/include/pcb.h @@ -96,8 +96,7 @@ struct pcb { struct trapframe; void makectx(struct trapframe *, struct pcb *); -void savectx(struct pcb *) __returns_twice; -int suspendctx(struct pcb *) __returns_twice; +int savectx(struct pcb *) __returns_twice; void resumectx(struct pcb *); #endif diff --git a/sys/kern/subr_smp.c b/sys/kern/subr_smp.c index 8edd8af87a65..8a3219453855 100644 --- a/sys/kern/subr_smp.c +++ b/sys/kern/subr_smp.c @@ -55,6 +55,7 @@ __FBSDID("$FreeBSD$"); #ifdef SMP volatile cpuset_t stopped_cpus; volatile cpuset_t started_cpus; +volatile cpuset_t suspended_cpus; cpuset_t hlt_cpus_mask; cpuset_t logical_cpus_mask; diff --git a/sys/sys/smp.h b/sys/sys/smp.h index 8c7ca578c25c..a506669aaae3 100644 --- a/sys/sys/smp.h +++ b/sys/sys/smp.h @@ -75,6 +75,7 @@ extern int smp_active; extern int smp_cpus; extern volatile cpuset_t started_cpus; extern volatile cpuset_t stopped_cpus; +extern volatile cpuset_t suspended_cpus; extern cpuset_t hlt_cpus_mask; extern cpuset_t logical_cpus_mask; #endif /* SMP */ diff --git a/sys/amd64/acpica/acpi_wakeup.c b/sys/x86/acpica/acpi_wakeup.c similarity index 86% rename from sys/amd64/acpica/acpi_wakeup.c rename to sys/x86/acpica/acpi_wakeup.c index e6697162ed4a..4d470dff887f 100644 --- a/sys/amd64/acpica/acpi_wakeup.c +++ b/sys/x86/acpica/acpi_wakeup.c @@ -1,6 +1,6 @@ /*- * Copyright (c) 2001 Takanori Watanabe - * Copyright (c) 2001 Mitsuru IWASAKI + * Copyright (c) 2001-2012 Mitsuru IWASAKI * Copyright (c) 2003 Peter Wemm * Copyright (c) 2008-2012 Jung-uk Kim * All rights reserved. @@ -70,15 +70,11 @@ extern int acpi_reset_video; #ifdef SMP extern struct pcb **susppcbs; -extern void **suspfpusave; static cpuset_t suspcpus; #else static struct pcb **susppcbs; -static void **suspfpusave; #endif -int acpi_restorecpu(uint64_t, vm_offset_t); - static void *acpi_alloc_wakeup_handler(void); static void acpi_stop_beep(void *); @@ -87,8 +83,14 @@ static int acpi_wakeup_ap(struct acpi_softc *, int); static void acpi_wakeup_cpus(struct acpi_softc *); #endif -#define WAKECODE_VADDR(sc) ((sc)->acpi_wakeaddr + (3 * PAGE_SIZE)) -#define WAKECODE_PADDR(sc) ((sc)->acpi_wakephys + (3 * PAGE_SIZE)) +#ifdef __amd64__ +#define ACPI_PAGETABLES 3 +#else +#define ACPI_PAGETABLES 0 +#endif + +#define WAKECODE_VADDR(sc) ((sc)->acpi_wakeaddr + (ACPI_PAGETABLES * PAGE_SIZE)) +#define WAKECODE_PADDR(sc) ((sc)->acpi_wakephys + (ACPI_PAGETABLES * PAGE_SIZE)) #define WAKECODE_FIXUP(offset, type, val) do { \ type *addr; \ addr = (type *)(WAKECODE_VADDR(sc) + offset); \ @@ -112,11 +114,9 @@ acpi_wakeup_ap(struct acpi_softc *sc, int cpu) int ms; WAKECODE_FIXUP(wakeup_pcb, struct pcb *, susppcbs[cpu]); - WAKECODE_FIXUP(wakeup_fpusave, void *, suspfpusave[cpu]); WAKECODE_FIXUP(wakeup_gdt, uint16_t, susppcbs[cpu]->pcb_gdt.rd_limit); WAKECODE_FIXUP(wakeup_gdt + 2, uint64_t, susppcbs[cpu]->pcb_gdt.rd_base); - WAKECODE_FIXUP(wakeup_cpu, int, cpu); /* do an INIT IPI: assert RESET */ lapic_ipi_raw(APIC_DEST_DESTFLD | APIC_TRIGMOD_EDGE | @@ -162,9 +162,9 @@ acpi_wakeup_ap(struct acpi_softc *sc, int cpu) lapic_ipi_wait(-1); DELAY(200); /* wait ~200uS */ - /* Wait up to 5 seconds for it to start. */ + /* Wait up to 5 seconds for it to resume. */ for (ms = 0; ms < 5000; ms++) { - if (*(int *)(WAKECODE_VADDR(sc) + wakeup_cpu) == 0) + if (!CPU_ISSET(cpu, &suspended_cpus)) return (1); /* return SUCCESS */ DELAY(1000); } @@ -239,7 +239,9 @@ acpi_sleep_machdep(struct acpi_softc *sc, int state) intr_suspend(); if (savectx(susppcbs[0])) { - ctx_fpusave(suspfpusave[0]); +#ifdef __amd64__ + ctx_fpusave(susppcbs[0]->pcb_fpususpend); +#endif #ifdef SMP if (!CPU_EMPTY(&suspcpus) && suspend_cpus(suspcpus) == 0) { device_printf(sc->acpi_dev, "Failed to suspend APs\n"); @@ -250,13 +252,12 @@ acpi_sleep_machdep(struct acpi_softc *sc, int state) WAKECODE_FIXUP(resume_beep, uint8_t, (acpi_resume_beep != 0)); WAKECODE_FIXUP(reset_video, uint8_t, (acpi_reset_video != 0)); + WAKECODE_FIXUP(wakeup_cr4, register_t, susppcbs[0]->pcb_cr4); WAKECODE_FIXUP(wakeup_pcb, struct pcb *, susppcbs[0]); - WAKECODE_FIXUP(wakeup_fpusave, void *, suspfpusave[0]); WAKECODE_FIXUP(wakeup_gdt, uint16_t, susppcbs[0]->pcb_gdt.rd_limit); WAKECODE_FIXUP(wakeup_gdt + 2, uint64_t, susppcbs[0]->pcb_gdt.rd_base); - WAKECODE_FIXUP(wakeup_cpu, int, 0); /* Call ACPICA to enter the desired sleep state */ if (state == ACPI_STATE_S4 && sc->acpi_s4bios) @@ -289,7 +290,9 @@ acpi_wakeup_machdep(struct acpi_softc *sc, int state, int sleep_result, /* Wakeup MD procedures in interrupt disabled context */ if (sleep_result == 1) { pmap_init_pat(); +#if 0 load_cr3(susppcbs[0]->pcb_cr3); +#endif initializecpu(); PCPU_SET(switchtime, 0); PCPU_SET(switchticks, ticks); @@ -330,8 +333,8 @@ acpi_alloc_wakeup_handler(void) * and ROM area (0xa0000 and above). The temporary page tables must be * page-aligned. */ - wakeaddr = contigmalloc(4 * PAGE_SIZE, M_DEVBUF, M_WAITOK, 0x500, - 0xa0000, PAGE_SIZE, 0ul); + wakeaddr = contigmalloc((ACPI_PAGETABLES + 1) * PAGE_SIZE, M_DEVBUF, + M_WAITOK, 0x500, 0xa0000, PAGE_SIZE, 0ul); if (wakeaddr == NULL) { printf("%s: can't alloc wake memory\n", __func__); return (NULL); @@ -339,14 +342,15 @@ acpi_alloc_wakeup_handler(void) if (EVENTHANDLER_REGISTER(power_resume, acpi_stop_beep, NULL, EVENTHANDLER_PRI_LAST) == NULL) { printf("%s: can't register event handler\n", __func__); - contigfree(wakeaddr, 4 * PAGE_SIZE, M_DEVBUF); + contigfree(wakeaddr, (ACPI_PAGETABLES + 1) * PAGE_SIZE, M_DEVBUF); return (NULL); } susppcbs = malloc(mp_ncpus * sizeof(*susppcbs), M_DEVBUF, M_WAITOK); - suspfpusave = malloc(mp_ncpus * sizeof(void *), M_DEVBUF, M_WAITOK); for (i = 0; i < mp_ncpus; i++) { susppcbs[i] = malloc(sizeof(**susppcbs), M_DEVBUF, M_WAITOK); - suspfpusave[i] = alloc_fpusave(M_WAITOK); +#ifdef __amd64__ + susppcbs[i]->pcb_fpususpend = alloc_fpusave(M_WAITOK); +#endif } return (wakeaddr); @@ -356,8 +360,10 @@ void acpi_install_wakeup_handler(struct acpi_softc *sc) { static void *wakeaddr = NULL; +#ifdef __amd64__ uint64_t *pt4, *pt3, *pt2; int i; +#endif if (wakeaddr != NULL) return; @@ -371,27 +377,30 @@ acpi_install_wakeup_handler(struct acpi_softc *sc) bcopy(wakecode, (void *)WAKECODE_VADDR(sc), sizeof(wakecode)); - /* Patch GDT base address, ljmp targets and page table base address. */ + /* Patch GDT base address, ljmp targets. */ WAKECODE_FIXUP((bootgdtdesc + 2), uint32_t, WAKECODE_PADDR(sc) + bootgdt); WAKECODE_FIXUP((wakeup_sw32 + 2), uint32_t, WAKECODE_PADDR(sc) + wakeup_32); +#ifdef __amd64__ WAKECODE_FIXUP((wakeup_sw64 + 1), uint32_t, WAKECODE_PADDR(sc) + wakeup_64); WAKECODE_FIXUP(wakeup_pagetables, uint32_t, sc->acpi_wakephys); +#endif /* Save pointers to some global data. */ - WAKECODE_FIXUP(wakeup_retaddr, void *, acpi_restorecpu); - WAKECODE_FIXUP(wakeup_kpml4, uint64_t, KPML4phys); - WAKECODE_FIXUP(wakeup_ctx, vm_offset_t, - WAKECODE_VADDR(sc) + wakeup_ctx); - WAKECODE_FIXUP(wakeup_efer, uint64_t, rdmsr(MSR_EFER)); - WAKECODE_FIXUP(wakeup_star, uint64_t, rdmsr(MSR_STAR)); - WAKECODE_FIXUP(wakeup_lstar, uint64_t, rdmsr(MSR_LSTAR)); - WAKECODE_FIXUP(wakeup_cstar, uint64_t, rdmsr(MSR_CSTAR)); - WAKECODE_FIXUP(wakeup_sfmask, uint64_t, rdmsr(MSR_SF_MASK)); - WAKECODE_FIXUP(wakeup_xsmask, uint64_t, xsave_mask); + WAKECODE_FIXUP(wakeup_ret, void *, resumectx); +#ifdef __amd64__ + WAKECODE_FIXUP(wakeup_cr3, uint64_t, KPML4phys); +#else +#ifdef PAE + WAKECODE_FIXUP(wakeup_cr3, register_t, vtophys(kernel_pmap->pm_pdpt)); +#else + WAKECODE_FIXUP(wakeup_cr3, register_t, vtophys(kernel_pmap->pm_pdir)); +#endif +#endif +#ifdef __amd64__ /* Build temporary page tables below realmode code. */ pt4 = wakeaddr; pt3 = pt4 + (PAGE_SIZE) / sizeof(uint64_t); @@ -417,8 +426,9 @@ acpi_install_wakeup_handler(struct acpi_softc *sc) pt2[i] = i * (2 * 1024 * 1024); pt2[i] |= PG_V | PG_RW | PG_PS | PG_U; } +#endif if (bootverbose) - device_printf(sc->acpi_dev, "wakeup code va %p pa %p\n", - (void *)sc->acpi_wakeaddr, (void *)sc->acpi_wakephys); + device_printf(sc->acpi_dev, "wakeup code va %#jx pa %#jx\n", + (uintmax_t)sc->acpi_wakeaddr, (uintmax_t)sc->acpi_wakephys); } From a82472f2de028868a9fbef6bbe21ad7a0b880322 Mon Sep 17 00:00:00 2001 From: Glen Barber Date: Sat, 9 Jun 2012 03:33:06 +0000 Subject: [PATCH 074/340] Fix a typo: s/deafult/default MFC after: 3 days --- cddl/contrib/opensolaris/cmd/zpool/zpool.8 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cddl/contrib/opensolaris/cmd/zpool/zpool.8 b/cddl/contrib/opensolaris/cmd/zpool/zpool.8 index 48ff5018f052..a184231a5f64 100644 --- a/cddl/contrib/opensolaris/cmd/zpool/zpool.8 +++ b/cddl/contrib/opensolaris/cmd/zpool/zpool.8 @@ -656,7 +656,7 @@ creates a temporary pool that is never cached, and the special value .It Sy dedupditto Ns = Ns Ar number Threshold for the number of block ditto copies. If the reference count for a deduplicated block increases above this number, a new ditto copy of this block -is automatically stored. Deafult setting is +is automatically stored. Default setting is .Cm 0 . .It Sy delegation Ns = Ns Cm on No | Cm off Controls whether a non-privileged user is granted access based on the dataset From 0f135da3545ac43720cad81229a09310a21d2854 Mon Sep 17 00:00:00 2001 From: Glen Barber Date: Sat, 9 Jun 2012 03:34:34 +0000 Subject: [PATCH 075/340] Clean up trailing whitespace. MFC after: 3 days X-MFC-With: r236776 --- cddl/contrib/opensolaris/cmd/zpool/zpool.8 | 42 +++++++++++----------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/cddl/contrib/opensolaris/cmd/zpool/zpool.8 b/cddl/contrib/opensolaris/cmd/zpool/zpool.8 index a184231a5f64..07e03bddda99 100644 --- a/cddl/contrib/opensolaris/cmd/zpool/zpool.8 +++ b/cddl/contrib/opensolaris/cmd/zpool/zpool.8 @@ -189,7 +189,7 @@ for information on managing datasets. A .Qq virtual device .Pq No vdev -describes a single device or a collection of devices organized according to +describes a single device or a collection of devices organized according to certain performance and fault characteristics. The following virtual devices are supported: .Bl -tag @@ -237,7 +237,7 @@ A group can have single-, double- , or triple parity, meaning that the .No raidz group can sustain one, two, or three failures, respectively, without -losing any data. The +losing any data. The .Sy raidz1 No vdev type specifies a single-parity .No raidz @@ -287,7 +287,7 @@ writes are load-balanced between devices. Log devices can be mirrored. However, .No raidz .No vdev types are not supported for the intent log. For more information, -see the +see the .Qq Sx Intent Log section. .It Sy cache @@ -309,13 +309,13 @@ A pool can have any number of virtual devices at the top of the configuration (known as .Qq root .No vdev Ns s). -Data is dynamically distributed across all top-level devices to balance data +Data is dynamically distributed across all top-level devices to balance data among devices. As new virtual devices are added, .Tn ZFS automatically places data on the newly available devices. .Pp Virtual devices are specified one at a time on the command line, separated by -whitespace. The keywords +whitespace. The keywords .Qq mirror and .Qq raidz @@ -428,7 +428,7 @@ allows devices to be associated with pools as .Qq hot spares . These devices are not actively used in the pool, but when an active device fails, it is automatically replaced by a hot spare. To create a pool with hot -spares, specify a +spares, specify a .Qq spare .No vdev with any number of devices. For example, @@ -458,7 +458,7 @@ pools. .Pp Spares cannot replace log devices. .Ss Intent Log -The +The .Tn ZFS Intent Log .Pq Tn ZIL @@ -582,7 +582,7 @@ the typical paths are not valid. .Sy altroot is not a persistent property. It is valid only while the system is up. Setting -.Sy altroot +.Sy altroot defaults to using .Cm cachefile=none , though this may be overridden using an explicit setting. @@ -627,9 +627,9 @@ This property can also be referred to by its shortened column name, .It Sy autoreplace Ns = Ns Cm on No | Cm off Controls automatic device replacement. If set to .Qq Cm off , -device replacement must be initiated by the administrator by using the +device replacement must be initiated by the administrator by using the .Qq Nm Cm replace -command. If set to +command. If set to .Qq Cm on , any new device, found in the same physical location as a device that previously belonged to the pool, is @@ -650,7 +650,7 @@ pool configuration in a different location that can later be imported with .Qq Nm Cm import Fl c . Setting it to the special value .Qq Cm none -creates a temporary pool that is never cached, and the special value +creates a temporary pool that is never cached, and the special value .Cm '' (empty string) uses the default location. .It Sy dedupditto Ns = Ns Ar number @@ -861,7 +861,7 @@ root dataset cannot be mounted. This can be overridden with the option. .Bl -tag -width indent .It Fl f -Forces use of +Forces use of .Ar vdev Ns s, even if they appear in use or specify a conflicting replication level. Not all devices can be overridden in this manner. @@ -897,7 +897,7 @@ or .Qq Cm altroot Ns Pa /pool if .Sy altroot -is specified. The mount point must be an absolute path, +is specified. The mount point must be an absolute path, .Qq Cm legacy , or .Qq Cm none . @@ -1234,7 +1234,7 @@ seconds until .Sy Ctrl-C is pressed. If no .Ar pools -are specified, statistics for every pool in the system is shown. If +are specified, statistics for every pool in the system is shown. If .Ar count is specified, the command exits after .Ar count @@ -1292,7 +1292,7 @@ When given an interval, the output is printed every .Ar interval seconds until .Sy Ctrl-C -is pressed. If +is pressed. If .Ar count is specified, the command exits after .Ar count @@ -1396,7 +1396,7 @@ This is equivalent to attaching waiting for it to resilver, and then detaching .Ar old_device . .Pp -The size of +The size of .Ar new_device must be greater than or equal to the minimum size of all the devices in a mirror or @@ -1407,7 +1407,7 @@ configuration. is required if the pool is not redundant. If .Ar new_device is not specified, it defaults to -.Ar old_device . +.Ar old_device . This form of replacement is useful after an existing disk has failed and has been physically replaced. In this case, the new disk may have the same .Pa /dev @@ -1494,12 +1494,12 @@ unless overridden by a device specification on the command line. .Pp When using a .Ar device -argument, +argument, .Cm split -includes the specified device(s) in a new pool and, should any devices remain +includes the specified device(s) in a new pool and, should any devices remain unspecified, assigns the last device in each mirror .No vdev -to that pool, as it does normally. If you are uncertain about the outcome of a +to that pool, as it does normally. If you are uncertain about the outcome of a .Cm split command, use the .Fl n @@ -1552,7 +1552,7 @@ When given an interval, the output is printed every .Ar interval seconds until .Sy Ctrl-C -is pressed. If +is pressed. If .Ar count is specified, the command exits after .Ar count From 21c2aa5e521139cfa057129eadca5b1e0921f481 Mon Sep 17 00:00:00 2001 From: Joel Dahl Date: Sat, 9 Jun 2012 07:18:53 +0000 Subject: [PATCH 076/340] mdoc: minor improvements to a few lists with tags. --- sbin/devfs/devfs.8 | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/sbin/devfs/devfs.8 b/sbin/devfs/devfs.8 index aa2f81abd239..8c41b13f37d6 100644 --- a/sbin/devfs/devfs.8 +++ b/sbin/devfs/devfs.8 @@ -52,7 +52,7 @@ most of the commands related to the rule subsystem must be preceded by the .Cm rule keyword. The following flags are common to all keywords: -.Bl -tag -offset indent +.Bl -tag -width 15n .It Fl m Ar mount-point Operate on .Ar mount-point , @@ -88,7 +88,7 @@ Rule manipulation commands follow the .Cm rule keyword. The following flags are common to all of the rule manipulation commands: -.Bl -tag -offset indent +.Bl -tag -width 15n .It Fl s Ar ruleset Operate on the ruleset with the number .Ar ruleset . @@ -98,7 +98,7 @@ specified mount-point. .El .Pp The following commands are recognized: -.Bl -tag -offset indent +.Bl -tag -width 15n .It Cm rule add Oo Ar rulenum Oc Ar rulespec Add the rule described by .Ar rulespec @@ -156,7 +156,7 @@ is ignored. The following conditions are recognized. Conditions are ANDed together when matching a device; if OR is desired, multiple rules can be written. -.Bl -tag -offset indent +.Bl -tag -width 15n .It Cm path Ar pattern Matches any node with a path that matches .Ar pattern , @@ -175,7 +175,7 @@ and The following actions are recognized. Although there is no explicit delimiter between conditions and actions, they may not be intermixed. -.Bl -tag -offset indent +.Bl -tag -width 15n .It Cm group Ar gid Set the GID of the node to .Ar gid , @@ -238,7 +238,7 @@ will return the same information regardless of the mount-point specified with The mount-point is only relevant when changing what its current ruleset is or when using one of the apply commands. .Sh FILES -.Bl -tag -compact +.Bl -tag -width "Pa /usr/share/examples/etc/devfs.conf" -compact .It Pa /etc/defaults/devfs.rules Default .Nm From ba0edfb9813d549d808eacb53603b744940a8ce5 Mon Sep 17 00:00:00 2001 From: Joel Dahl Date: Sat, 9 Jun 2012 09:54:07 +0000 Subject: [PATCH 077/340] mdoc: fix mandoc "Oc breaks Op" warning. --- usr.sbin/newsyslog/newsyslog.conf.5 | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/usr.sbin/newsyslog/newsyslog.conf.5 b/usr.sbin/newsyslog/newsyslog.conf.5 index 589d98f0afab..a053f2f01d50 100644 --- a/usr.sbin/newsyslog/newsyslog.conf.5 +++ b/usr.sbin/newsyslog/newsyslog.conf.5 @@ -155,12 +155,17 @@ The particular format of the time in restricted .Tn ISO 8601 is: .Sm off +.Oo Oo Oo Oo Oo +.Va cc Oc +.Va yy Oc +.Va mm Oc +.Va dd Oc .Oo -.Op Oo Oo Oo Va cc Oc Va yy Oc Va mm Oc Va dd -.Oo -.Li T -.Op Va hh Oo Va mm Oo Va ss Oc Oc Oc -.Oc . +.Li T Oo +.Va hh Oo +.Va mm Oo +.Va ss +.Oc Oc Oc Oc Oc . .Sm on Optional date fields default to the appropriate component of the current date; optional time fields default to midnight; hence if today From 4fe83b8159c7172d4bdfd469b7d7f71d50fd6759 Mon Sep 17 00:00:00 2001 From: "Alexander V. Chernikov" Date: Sat, 9 Jun 2012 10:04:40 +0000 Subject: [PATCH 078/340] Fix typo introduced in r236559. Pointed by: bcr Approved by: kib(mentor) --- sys/net/bpf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/net/bpf.c b/sys/net/bpf.c index c6af221631c0..7098cf19f79e 100644 --- a/sys/net/bpf.c +++ b/sys/net/bpf.c @@ -2544,7 +2544,7 @@ bpfdetach(struct ifnet *ifp) /* * Interface departure handler. - * Note departure event does not guagantee interface is going down. + * Note departure event does not guarantee interface is going down. */ static void bpf_ifdetach(void *arg __unused, struct ifnet *ifp) From 3097b95a03aa79e6814d2167b501e039bd8ca5d6 Mon Sep 17 00:00:00 2001 From: "Alexander V. Chernikov" Date: Sat, 9 Jun 2012 10:10:12 +0000 Subject: [PATCH 079/340] Add "human" option to print IPv4/IPv6 flows in human-readable format. Show IPv4/IPv6 header IFF there are some flows following. Wrap some long lines. Sponsored by Yandex LLC Reviewed by: glebius (previous version) Approved by: ae(mentor) MFC after: 1 week --- usr.sbin/flowctl/flowctl.8 | 8 +++++--- usr.sbin/flowctl/flowctl.c | 39 ++++++++++++++++++++++++++++---------- 2 files changed, 34 insertions(+), 13 deletions(-) diff --git a/usr.sbin/flowctl/flowctl.8 b/usr.sbin/flowctl/flowctl.8 index cbb97d447138..5780e10a62d0 100644 --- a/usr.sbin/flowctl/flowctl.8 +++ b/usr.sbin/flowctl/flowctl.8 @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd July 5, 2011 +.Dd June 8, 2012 .Dt FLOWCTL 8 .Os .Sh NAME @@ -55,7 +55,7 @@ Currently, .Nm supports only one command. .Bl -tag -width ".Cm show" -.It Cm show Op Cm ipv4|ipv6 +.It Cm show Oo Cm ipv4|ipv6 Oc Op Cm human|verbose This command is the analog of the .Dq "show ip cache flow" command of a Cisco router. @@ -69,7 +69,9 @@ It has optional parameter .Cm verbose , which is analog of the .Dq "show ip cache verbose flow" -command. +command. Additionally, +.Cm human +parameter can be specify to show selected flows in human-readable format. .El .Sh EXIT STATUS .Ex -std diff --git a/usr.sbin/flowctl/flowctl.c b/usr.sbin/flowctl/flowctl.c index 4bf86f03643e..47ddadfdaa20 100644 --- a/usr.sbin/flowctl/flowctl.c +++ b/usr.sbin/flowctl/flowctl.c @@ -52,19 +52,33 @@ static const char rcs_id[] = #include #include -#define CISCO_SH_FLOW_HEADER "SrcIf SrcIPaddress DstIf DstIPaddress Pr SrcP DstP Pkts\n" +#define CISCO_SH_FLOW_HEADER "SrcIf SrcIPaddress " \ +"DstIf DstIPaddress Pr SrcP DstP Pkts\n" #define CISCO_SH_FLOW "%-13s %-15s %-13s %-15s %2u %4.4x %4.4x %6lu\n" -#define CISCO_SH_FLOW6_HEADER "SrcIf SrcIPaddress DstIf DstIPaddress Pr SrcP DstP Pkts\n" -#define CISCO_SH_FLOW6 "%-13s %-30s %-13s %-30s %2u %4.4x %4.4x %6lu\n" +/* human-readable IPv4 header */ +#define CISCO_SH_FLOW_HHEADER "SrcIf SrcIPaddress " \ +"DstIf DstIPaddress Proto SrcPort DstPort Pkts\n" +#define CISCO_SH_FLOW_H "%-13s %-15s %-13s %-15s %5u %8d %8d %8lu\n" -#define CISCO_SH_VERB_FLOW_HEADER "SrcIf SrcIPaddress DstIf DstIPaddress Pr TOS Flgs Pkts\n" \ +#define CISCO_SH_FLOW6_HEADER "SrcIf SrcIPaddress " \ +"DstIf DstIPaddress Pr SrcP DstP Pkts\n" +#define CISCO_SH_FLOW6 "%-13s %-30s %-13s %-30s %2u %4.4x %4.4x %6lu\n" + +/* Human-readable IPv6 headers */ +#define CISCO_SH_FLOW6_HHEADER "SrcIf SrcIPaddress " \ +"DstIf DstIPaddress Proto SrcPort DstPort Pkts\n" +#define CISCO_SH_FLOW6_H "%-13s %-36s %-13s %-36s %5u %8d %8d %8lu\n" + +#define CISCO_SH_VERB_FLOW_HEADER "SrcIf SrcIPaddress " \ +"DstIf DstIPaddress Pr TOS Flgs Pkts\n" \ "Port Msk AS Port Msk AS NextHop B/Pk Active\n" #define CISCO_SH_VERB_FLOW "%-14s %-15s %-14s %-15s %2u %3x %4x %6lu\n" \ "%4.4x /%-2u %-5u %4.4x /%-2u %-5u %-15s %9u %8u\n\n" -#define CISCO_SH_VERB_FLOW6_HEADER "SrcIf SrcIPaddress DstIf DstIPaddress Pr TOS Flgs Pkts\n" \ +#define CISCO_SH_VERB_FLOW6_HEADER "SrcIf SrcIPaddress " \ +"DstIf DstIPaddress Pr TOS Flgs Pkts\n" \ "Port Msk AS Port Msk AS NextHop B/Pk Active\n" #define CISCO_SH_VERB_FLOW6 "%-14s %-30s %-14s %-30s %2u %3x %4x %6lu\n" \ @@ -94,7 +108,7 @@ struct ip_ctl_cmd cmds[] = { {NULL, NULL}, }; -int cs; +int cs, human = 0; char *ng_path; int @@ -182,6 +196,9 @@ ctl_show(int argc, char **argv) if (argc > 0 && !strncmp(argv[0], "verbose", strlen(argv[0]))) verbose = 1; + if (argc > 0 && !strncmp(argv[0], "human", strlen(argv[0]))) + human = 1; + #ifdef INET if (ipv4) { if (verbose) @@ -259,13 +276,14 @@ flow_cache_print(struct ngnf_show_header *resp) errx(EX_SOFTWARE, "%s: version mismatch: %u", __func__, resp->version); - printf(CISCO_SH_FLOW_HEADER); + if (resp->nentries > 0) + printf(human ? CISCO_SH_FLOW_HHEADER : CISCO_SH_FLOW_HEADER); fle = (struct flow_entry_data *)(resp + 1); for (i = 0; i < resp->nentries; i++, fle++) { inet_ntop(AF_INET, &fle->r.r_src, src, sizeof(src)); inet_ntop(AF_INET, &fle->r.r_dst, dst, sizeof(dst)); - printf(CISCO_SH_FLOW, + printf(human ? CISCO_SH_FLOW_H : CISCO_SH_FLOW, if_indextoname(fle->fle_i_ifx, src_if), src, if_indextoname(fle->fle_o_ifx, dst_if), @@ -292,13 +310,14 @@ flow_cache_print6(struct ngnf_show_header *resp) errx(EX_SOFTWARE, "%s: version mismatch: %u", __func__, resp->version); - printf(CISCO_SH_FLOW6_HEADER); + if (resp->nentries > 0) + printf(human ? CISCO_SH_FLOW6_HHEADER : CISCO_SH_FLOW6_HEADER); fle6 = (struct flow6_entry_data *)(resp + 1); for (i = 0; i < resp->nentries; i++, fle6++) { inet_ntop(AF_INET6, &fle6->r.src.r_src6, src6, sizeof(src6)); inet_ntop(AF_INET6, &fle6->r.dst.r_dst6, dst6, sizeof(dst6)); - printf(CISCO_SH_FLOW6, + printf(human ? CISCO_SH_FLOW6_H : CISCO_SH_FLOW6, if_indextoname(fle6->fle_i_ifx, src_if), src6, if_indextoname(fle6->fle_o_ifx, dst_if), From 9760b0e0c5205f11d7ee924a8e5dd5776b46e473 Mon Sep 17 00:00:00 2001 From: Joel Dahl Date: Sat, 9 Jun 2012 10:43:33 +0000 Subject: [PATCH 080/340] mdoc: fix a few badly nested blocks. --- sbin/natd/natd.8 | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/sbin/natd/natd.8 b/sbin/natd/natd.8 index cba4ed4a48d2..b4b37ed1fb5d 100644 --- a/sbin/natd/natd.8 +++ b/sbin/natd/natd.8 @@ -130,9 +130,9 @@ According to RFC 1918, unregistered source addresses are 10.0.0.0/8, 172.16.0.0/12 and 192.168.0.0/16. .It Fl redirect_port Ar proto Xo .Ar targetIP Ns : Ns Xo -.Ar targetPORT Ns Op - Ns Ar targetPORT Xc -.Op Ar aliasIP Ns : Ns Xo -.Ar aliasPORT Ns Op - Ns Ar aliasPORT Xc +.Ar targetPORT Ns Oo - Ns Ar targetPORT Oc Xc +.Oo Ar aliasIP Ns : Oc Ns Xo +.Ar aliasPORT Ns Oo - Ns Ar aliasPORT Oc Xc .Oo Ar remoteIP Ns Oo : Ns .Ar remotePORT Ns Op - Ns Ar remotePORT .Oc Oc @@ -247,10 +247,8 @@ to appear from the specified .Ar targetIP Ns : Ns Xo .Ar targetPORT Ns Oo , Ns .Ar ...\& -.Oc Oc -.Xc -.Xc -.Op Ar aliasIP Ns : Ns Xo +.Oc Xc Oc Xc +.Oo Ar aliasIP Ns : Oc Ns Xo .Ar aliasPORT .Xc .Oo Ar remoteIP Ns From 85d4004625745487ea4175a83beb29168fc0ca7f Mon Sep 17 00:00:00 2001 From: Dimitry Andric Date: Sat, 9 Jun 2012 11:41:29 +0000 Subject: [PATCH 081/340] Amend r227797 by also passing ${STATIC_CXXFLAGS} for the other supported C++ file extensions. MFC after: 3 days --- share/mk/bsd.lib.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/share/mk/bsd.lib.mk b/share/mk/bsd.lib.mk index f5fcd48da5cc..efaf9dcae0b5 100644 --- a/share/mk/bsd.lib.mk +++ b/share/mk/bsd.lib.mk @@ -74,7 +74,7 @@ PO_FLAG=-pg ${CC} ${PICFLAG} -DPIC ${SHARED_CFLAGS} ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET} ${CTFCONVERT_CMD} -.cc.o: +.cc.o .C.o .cpp.o .cxx.o: ${CXX} ${STATIC_CXXFLAGS} ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET} .cc.po .C.po .cpp.po .cxx.po: From 5d02ed91e981d47e24278beba992cf55410d14ee Mon Sep 17 00:00:00 2001 From: Pawel Jakub Dawidek Date: Sat, 9 Jun 2012 12:27:30 +0000 Subject: [PATCH 082/340] Correct panic message. MFC after: 1 month MFC with: r236731 --- sys/kern/kern_descrip.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c index c6ea16afc388..dc703e796023 100644 --- a/sys/kern/kern_descrip.c +++ b/sys/kern/kern_descrip.c @@ -1554,7 +1554,7 @@ fdalloc(struct thread *td, int minfd, int *result) */ KASSERT(!fdisused(fdp, fd), ("fd_first_free() returned non-free descriptor")); - KASSERT(fdp->fd_ofiles[fd] == NULL, ("free descriptor isn't")); + KASSERT(fdp->fd_ofiles[fd] == NULL, ("file descriptor isn't free")); KASSERT(fdp->fd_ofileflags[fd] == 0, ("file flags are set")); fdused(fdp, fd); *result = fd; From 0191d9b367297cebaf21fdf4f5cebbbc92eef88e Mon Sep 17 00:00:00 2001 From: Alexander Motin Date: Sat, 9 Jun 2012 13:07:44 +0000 Subject: [PATCH 083/340] One more major cam_periph_error() rewrite to improve error handling and reporting. It includes: - removing of error messages controlled by bootverbose, replacing them with more universal and informative debugging on CAM_DEBUG_INFO level, that is now built into the kernel by default; - more close following to the arguments submitted by caller, such as SF_PRINT_ALWAYS, SF_QUIET_IR and SF_NO_PRINT; consumer knows better which errors are usual/expected at this point and which are really informative; - adding two new flags SF_NO_RECOVERY and SF_NO_RETRY to allow caller specify how much assistance it needs at this point; previously consumers controlled that by not calling cam_periph_error() at all, but that made behavior inconsistent and debugging complicated; - tuning debug messages and taken actions order to make debugging output more readable and cause-effect relationships visible; - making camperiphdone() (common device recovery completion handler) to also use cam_periph_error() in most cases, instead of own dumb code; - removing manual sense fetching code from cam_periph_error(); I was told by number of people that it is SIM obligation to fetch sense data, so this code is useless and only significantly complicates recovery logic; - making ada, da and pass driver to use cam_periph_error() with new limited recovery options to handle error recovery and debugging in common way; as one of results, CAM_REQUEUE_REQ and other retrying statuses are now working fine with pass driver, that caused many problems before. - reverting r186891 by raj@ to avoid burning few seconds in tight DELAY() loops on device probe, while device simply loads media; I think that problem may already be fixed in other way, and even if it is not, solution must be different. Sponsored by: iXsystems, Inc. MFC after: 2 weeks --- sys/cam/ata/ata_da.c | 66 ++--- sys/cam/ata/ata_xpt.c | 9 +- sys/cam/cam.h | 9 + sys/cam/cam_periph.c | 599 ++++++++++++--------------------------- sys/cam/cam_periph.h | 1 - sys/cam/scsi/scsi_all.c | 14 +- sys/cam/scsi/scsi_all.h | 9 - sys/cam/scsi/scsi_da.c | 86 ++---- sys/cam/scsi/scsi_pass.c | 6 +- sys/cam/scsi/scsi_xpt.c | 17 +- 10 files changed, 271 insertions(+), 545 deletions(-) diff --git a/sys/cam/ata/ata_da.c b/sys/cam/ata/ata_da.c index c27626571826..ae40b3c31e9e 100644 --- a/sys/cam/ata/ata_da.c +++ b/sys/cam/ata/ata_da.c @@ -584,6 +584,7 @@ adadump(void *arg, void *virtual, vm_offset_t physical, off_t offset, size_t len struct disk *dp; uint64_t lba; uint16_t count; + int error = 0; dp = arg; periph = dp->d_drv1; @@ -622,13 +623,16 @@ adadump(void *arg, void *virtual, vm_offset_t physical, off_t offset, size_t len } xpt_polled_action(&ccb); - if ((ccb.ataio.ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) { + error = cam_periph_error(&ccb, + 0, SF_NO_RECOVERY | SF_NO_RETRY, NULL); + if ((ccb.ccb_h.status & CAM_DEV_QFRZN) != 0) + cam_release_devq(ccb.ccb_h.path, /*relsim_flags*/0, + /*reduction*/0, /*timeout*/0, /*getcount_only*/0); + if (error != 0) printf("Aborting dump due to I/O error.\n"); - cam_periph_unlock(periph); - return(EIO); - } + cam_periph_unlock(periph); - return(0); + return (error); } if (softc->flags & ADA_FLAG_CAN_FLUSHCACHE) { @@ -636,7 +640,7 @@ adadump(void *arg, void *virtual, vm_offset_t physical, off_t offset, size_t len ccb.ccb_h.ccb_state = ADA_CCB_DUMP; cam_fill_ataio(&ccb.ataio, - 1, + 0, adadone, CAM_DIR_NONE, 0, @@ -650,18 +654,16 @@ adadump(void *arg, void *virtual, vm_offset_t physical, off_t offset, size_t len ata_28bit_cmd(&ccb.ataio, ATA_FLUSHCACHE, 0, 0, 0); xpt_polled_action(&ccb); - if ((ccb.ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) - xpt_print(periph->path, "Synchronize cache failed\n"); - + error = cam_periph_error(&ccb, + 0, SF_NO_RECOVERY | SF_NO_RETRY, NULL); if ((ccb.ccb_h.status & CAM_DEV_QFRZN) != 0) - cam_release_devq(ccb.ccb_h.path, - /*relsim_flags*/0, - /*reduction*/0, - /*timeout*/0, - /*getcount_only*/0); + cam_release_devq(ccb.ccb_h.path, /*relsim_flags*/0, + /*reduction*/0, /*timeout*/0, /*getcount_only*/0); + if (error != 0) + xpt_print(periph->path, "Synchronize cache failed\n"); } cam_periph_unlock(periph); - return (0); + return (error); } static void @@ -1716,6 +1718,7 @@ adaflush(void) { struct cam_periph *periph; struct ada_softc *softc; + int error; TAILQ_FOREACH(periph, &adadriver.units, unit_links) { union ccb ccb; @@ -1739,7 +1742,7 @@ adaflush(void) ccb.ccb_h.ccb_state = ADA_CCB_DUMP; cam_fill_ataio(&ccb.ataio, - 1, + 0, adadone, CAM_DIR_NONE, 0, @@ -1753,15 +1756,13 @@ adaflush(void) ata_28bit_cmd(&ccb.ataio, ATA_FLUSHCACHE, 0, 0, 0); xpt_polled_action(&ccb); - if ((ccb.ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) - xpt_print(periph->path, "Synchronize cache failed\n"); - + error = cam_periph_error(&ccb, + 0, SF_NO_RECOVERY | SF_NO_RETRY, NULL); if ((ccb.ccb_h.status & CAM_DEV_QFRZN) != 0) - cam_release_devq(ccb.ccb_h.path, - /*relsim_flags*/0, - /*reduction*/0, - /*timeout*/0, - /*getcount_only*/0); + cam_release_devq(ccb.ccb_h.path, /*relsim_flags*/0, + /*reduction*/0, /*timeout*/0, /*getcount_only*/0); + if (error != 0) + xpt_print(periph->path, "Synchronize cache failed\n"); cam_periph_unlock(periph); } } @@ -1771,6 +1772,7 @@ adaspindown(uint8_t cmd, int flags) { struct cam_periph *periph; struct ada_softc *softc; + int error; TAILQ_FOREACH(periph, &adadriver.units, unit_links) { union ccb ccb; @@ -1795,7 +1797,7 @@ adaspindown(uint8_t cmd, int flags) ccb.ccb_h.ccb_state = ADA_CCB_DUMP; cam_fill_ataio(&ccb.ataio, - 1, + 0, adadone, CAM_DIR_NONE | flags, 0, @@ -1806,15 +1808,13 @@ adaspindown(uint8_t cmd, int flags) ata_28bit_cmd(&ccb.ataio, cmd, 0, 0, 0); xpt_polled_action(&ccb); - if ((ccb.ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) - xpt_print(periph->path, "Spin-down disk failed\n"); - + error = cam_periph_error(&ccb, + 0, SF_NO_RECOVERY | SF_NO_RETRY, NULL); if ((ccb.ccb_h.status & CAM_DEV_QFRZN) != 0) - cam_release_devq(ccb.ccb_h.path, - /*relsim_flags*/0, - /*reduction*/0, - /*timeout*/0, - /*getcount_only*/0); + cam_release_devq(ccb.ccb_h.path, /*relsim_flags*/0, + /*reduction*/0, /*timeout*/0, /*getcount_only*/0); + if (error != 0) + xpt_print(periph->path, "Spin-down disk failed\n"); cam_periph_unlock(periph); } } diff --git a/sys/cam/ata/ata_xpt.c b/sys/cam/ata/ata_xpt.c index fef85b82203e..20f22ebad734 100644 --- a/sys/cam/ata/ata_xpt.c +++ b/sys/cam/ata/ata_xpt.c @@ -705,12 +705,9 @@ probedone(struct cam_periph *periph, union ccb *done_ccb) inq_buf = &path->device->inq_data; if ((done_ccb->ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) { - if (softc->restart) { - if (bootverbose) { - cam_error_print(done_ccb, - CAM_ESF_ALL, CAM_EPF_ALL); - } - } else if (cam_periph_error(done_ccb, 0, 0, NULL) == ERESTART) + if (cam_periph_error(done_ccb, + 0, softc->restart ? (SF_NO_RECOVERY | SF_NO_RETRY) : 0, + NULL) == ERESTART) return; if ((done_ccb->ccb_h.status & CAM_DEV_QFRZN) != 0) { /* Don't wedge the queue */ diff --git a/sys/cam/cam.h b/sys/cam/cam.h index 7f99a9cedeef..0f8d30e0f1c1 100644 --- a/sys/cam/cam.h +++ b/sys/cam/cam.h @@ -108,6 +108,15 @@ typedef enum { CAM_RETRY_SELTO = 0x02 /* Retry Selection Timeouts */ } cam_flags; +enum { + SF_RETRY_UA = 0x01, /* Retry UNIT ATTENTION conditions. */ + SF_NO_PRINT = 0x02, /* Never print error status. */ + SF_QUIET_IR = 0x04, /* Be quiet about Illegal Request reponses */ + SF_PRINT_ALWAYS = 0x08, /* Always print error status. */ + SF_NO_RECOVERY = 0x10, /* Don't do active error recovery. */ + SF_NO_RETRY = 0x20 /* Don't do any retries. */ +}; + /* CAM Status field values */ typedef enum { CAM_REQ_INPROG, /* CCB request is in progress */ diff --git a/sys/cam/cam_periph.c b/sys/cam/cam_periph.c index 50bf5de907a5..4d8e684d3e3b 100644 --- a/sys/cam/cam_periph.c +++ b/sys/cam/cam_periph.c @@ -69,18 +69,22 @@ static void camperiphdone(struct cam_periph *periph, union ccb *done_ccb); static void camperiphfree(struct cam_periph *periph); static int camperiphscsistatuserror(union ccb *ccb, + union ccb **orig_ccb, cam_flags camflags, u_int32_t sense_flags, int *openings, u_int32_t *relsim_flags, u_int32_t *timeout, + int *print, const char **action_string); static int camperiphscsisenseerror(union ccb *ccb, + union ccb **orig_ccb, cam_flags camflags, u_int32_t sense_flags, int *openings, u_int32_t *relsim_flags, u_int32_t *timeout, + int *print, const char **action_string); static int nperiph_drivers; @@ -1108,107 +1112,59 @@ cam_release_devq(struct cam_path *path, u_int32_t relsim_flags, } #define saved_ccb_ptr ppriv_ptr0 -#define recovery_depth ppriv_field1 -static void -camperiphsensedone(struct cam_periph *periph, union ccb *done_ccb) -{ - union ccb *saved_ccb = (union ccb *)done_ccb->ccb_h.saved_ccb_ptr; - cam_status status; - int frozen = 0; - int depth = done_ccb->ccb_h.recovery_depth; - - status = done_ccb->ccb_h.status; - if (status & CAM_DEV_QFRZN) { - frozen = 1; - /* - * Clear freeze flag now for case of retry, - * freeze will be dropped later. - */ - done_ccb->ccb_h.status &= ~CAM_DEV_QFRZN; - } - status &= CAM_STATUS_MASK; - switch (status) { - case CAM_REQ_CMP: - { - int error_code, sense_key, asc, ascq; - - scsi_extract_sense_len(&saved_ccb->csio.sense_data, - saved_ccb->csio.sense_len - - saved_ccb->csio.sense_resid, - &error_code, &sense_key, &asc, &ascq, - /*show_errors*/ 1); - /* - * If we manually retrieved sense into a CCB and got - * something other than "NO SENSE" send the updated CCB - * back to the client via xpt_done() to be processed via - * the error recovery code again. - */ - if ((sense_key != -1) - && (sense_key != SSD_KEY_NO_SENSE)) { - saved_ccb->ccb_h.status |= CAM_AUTOSNS_VALID; - } else { - saved_ccb->ccb_h.status &= ~CAM_STATUS_MASK; - saved_ccb->ccb_h.status |= CAM_AUTOSENSE_FAIL; - } - saved_ccb->csio.sense_resid = done_ccb->csio.resid; - bcopy(saved_ccb, done_ccb, sizeof(union ccb)); - xpt_free_ccb(saved_ccb); - break; - } - default: - bcopy(saved_ccb, done_ccb, sizeof(union ccb)); - xpt_free_ccb(saved_ccb); - done_ccb->ccb_h.status &= ~CAM_STATUS_MASK; - done_ccb->ccb_h.status |= CAM_AUTOSENSE_FAIL; - break; - } - periph->flags &= ~CAM_PERIPH_SENSE_INPROG; - /* - * If it is the end of recovery, drop freeze, taken due to - * CAM_DEV_QFREEZE flag, set on recovery request. - */ - if (depth == 0) { - cam_release_devq(done_ccb->ccb_h.path, - /*relsim_flags*/0, - /*openings*/0, - /*timeout*/0, - /*getcount_only*/0); - } - /* - * Copy frozen flag from recovery request if it is set there - * for some reason. - */ - if (frozen != 0) - done_ccb->ccb_h.status |= CAM_DEV_QFRZN; - (*done_ccb->ccb_h.cbfcnp)(periph, done_ccb); -} - static void camperiphdone(struct cam_periph *periph, union ccb *done_ccb) { - union ccb *saved_ccb, *save_ccb; + union ccb *saved_ccb; cam_status status; - int frozen = 0; struct scsi_start_stop_unit *scsi_cmd; - u_int32_t relsim_flags, timeout; + scsi_cmd = (struct scsi_start_stop_unit *) + &done_ccb->csio.cdb_io.cdb_bytes; status = done_ccb->ccb_h.status; - if (status & CAM_DEV_QFRZN) { - frozen = 1; - /* - * Clear freeze flag now for case of retry, - * freeze will be dropped later. - */ - done_ccb->ccb_h.status &= ~CAM_DEV_QFRZN; - } - timeout = 0; - relsim_flags = 0; - saved_ccb = (union ccb *)done_ccb->ccb_h.saved_ccb_ptr; + if ((status & CAM_STATUS_MASK) != CAM_REQ_CMP) { + if ((status & CAM_STATUS_MASK) == CAM_SCSI_STATUS_ERROR && + (status & CAM_AUTOSNS_VALID)) { + struct scsi_sense_data *sense; + int error_code, sense_key, asc, ascq, sense_len; - switch (status & CAM_STATUS_MASK) { - case CAM_REQ_CMP: - { + sense = &done_ccb->csio.sense_data; + sense_len = done_ccb->csio.sense_len - + done_ccb->csio.sense_resid; + scsi_extract_sense_len(sense, sense_len, &error_code, + &sense_key, &asc, &ascq, /*show_errors*/ 1); + /* + * If the error is "invalid field in CDB", + * and the load/eject flag is set, turn the + * flag off and try again. This is just in + * case the drive in question barfs on the + * load eject flag. The CAM code should set + * the load/eject flag by default for + * removable media. + */ + if ((scsi_cmd->opcode == START_STOP_UNIT) && + ((scsi_cmd->how & SSS_LOEJ) != 0) && + (asc == 0x24) && (ascq == 0x00)) { + scsi_cmd->how &= ~SSS_LOEJ; + if (status & CAM_DEV_QFRZN) { + cam_release_devq(done_ccb->ccb_h.path, + 0, 0, 0, 0); + done_ccb->ccb_h.status &= + ~CAM_DEV_QFRZN; + } + xpt_action(done_ccb); + goto out; + } + } + if (cam_periph_error(done_ccb, + 0, SF_RETRY_UA | SF_NO_PRINT, NULL) == ERESTART) + goto out; + if (done_ccb->ccb_h.status & CAM_DEV_QFRZN) { + cam_release_devq(done_ccb->ccb_h.path, 0, 0, 0, 0); + done_ccb->ccb_h.status &= ~CAM_DEV_QFRZN; + } + } else { /* * If we have successfully taken a device from the not * ready to ready state, re-scan the device and re-get @@ -1216,147 +1172,24 @@ camperiphdone(struct cam_periph *periph, union ccb *done_ccb) * don't properly report their inquiry information unless * they are spun up. */ - scsi_cmd = (struct scsi_start_stop_unit *) - &done_ccb->csio.cdb_io.cdb_bytes; - - if (scsi_cmd->opcode == START_STOP_UNIT) - xpt_async(AC_INQ_CHANGED, - done_ccb->ccb_h.path, NULL); - goto final; + if (scsi_cmd->opcode == START_STOP_UNIT) + xpt_async(AC_INQ_CHANGED, done_ccb->ccb_h.path, NULL); } - case CAM_SCSI_STATUS_ERROR: - scsi_cmd = (struct scsi_start_stop_unit *) - &done_ccb->csio.cdb_io.cdb_bytes; - if (status & CAM_AUTOSNS_VALID) { - struct ccb_getdev cgd; - struct scsi_sense_data *sense; - int error_code, sense_key, asc, ascq, sense_len; - scsi_sense_action err_action; - sense = &done_ccb->csio.sense_data; - sense_len = done_ccb->csio.sense_len - - done_ccb->csio.sense_resid; - scsi_extract_sense_len(sense, sense_len, &error_code, - &sense_key, &asc, &ascq, - /*show_errors*/ 1); - /* - * Grab the inquiry data for this device. - */ - xpt_setup_ccb(&cgd.ccb_h, done_ccb->ccb_h.path, - CAM_PRIORITY_NORMAL); - cgd.ccb_h.func_code = XPT_GDEV_TYPE; - xpt_action((union ccb *)&cgd); - err_action = scsi_error_action(&done_ccb->csio, - &cgd.inq_data, 0); - /* - * If the error is "invalid field in CDB", - * and the load/eject flag is set, turn the - * flag off and try again. This is just in - * case the drive in question barfs on the - * load eject flag. The CAM code should set - * the load/eject flag by default for - * removable media. - */ - /* XXX KDM - * Should we check to see what the specific - * scsi status is?? Or does it not matter - * since we already know that there was an - * error, and we know what the specific - * error code was, and we know what the - * opcode is.. - */ - if ((scsi_cmd->opcode == START_STOP_UNIT) && - ((scsi_cmd->how & SSS_LOEJ) != 0) && - (asc == 0x24) && (ascq == 0x00) && - (done_ccb->ccb_h.retry_count > 0)) { - - scsi_cmd->how &= ~SSS_LOEJ; - xpt_action(done_ccb); - } else if ((done_ccb->ccb_h.retry_count > 1) - && ((err_action & SS_MASK) != SS_FAIL)) { - - /* - * In this case, the error recovery - * command failed, but we've got - * some retries left on it. Give - * it another try unless this is an - * unretryable error. - */ - /* set the timeout to .5 sec */ - relsim_flags = - RELSIM_RELEASE_AFTER_TIMEOUT; - timeout = 500; - xpt_action(done_ccb); - break; - } else { - /* - * Perform the final retry with the original - * CCB so that final error processing is - * performed by the owner of the CCB. - */ - goto final; - } - } else { - save_ccb = xpt_alloc_ccb_nowait(); - if (save_ccb == NULL) - goto final; - bcopy(done_ccb, save_ccb, sizeof(*save_ccb)); - periph->flags |= CAM_PERIPH_SENSE_INPROG; - /* - * Send a Request Sense to the device. We - * assume that we are in a contingent allegiance - * condition so we do not tag this request. - */ - scsi_request_sense(&done_ccb->csio, /*retries*/1, - camperiphsensedone, - &save_ccb->csio.sense_data, - save_ccb->csio.sense_len, - CAM_TAG_ACTION_NONE, - /*sense_len*/SSD_FULL_SIZE, - /*timeout*/5000); - done_ccb->ccb_h.pinfo.priority--; - done_ccb->ccb_h.flags |= CAM_DEV_QFREEZE; - done_ccb->ccb_h.saved_ccb_ptr = save_ccb; - done_ccb->ccb_h.recovery_depth++; - xpt_action(done_ccb); - } - break; - default: -final: - bcopy(saved_ccb, done_ccb, sizeof(*done_ccb)); - xpt_free_ccb(saved_ccb); + /* + * Perform the final retry with the original CCB so that final + * error processing is performed by the owner of the CCB. + */ + saved_ccb = (union ccb *)done_ccb->ccb_h.saved_ccb_ptr; + bcopy(saved_ccb, done_ccb, sizeof(*done_ccb)); + xpt_free_ccb(saved_ccb); + if (done_ccb->ccb_h.cbfcnp != camperiphdone) periph->flags &= ~CAM_PERIPH_RECOVERY_INPROG; - xpt_action(done_ccb); - break; - } + xpt_action(done_ccb); - /* decrement the retry count */ - /* - * XXX This isn't appropriate in all cases. Restructure, - * so that the retry count is only decremented on an - * actual retry. Remeber that the orignal ccb had its - * retry count dropped before entering recovery, so - * doing it again is a bug. - */ - if (done_ccb->ccb_h.retry_count > 0) - done_ccb->ccb_h.retry_count--; - /* - * Drop freeze taken due to CAM_DEV_QFREEZE flag set on recovery - * request. - */ - cam_release_devq(done_ccb->ccb_h.path, - /*relsim_flags*/relsim_flags, - /*openings*/0, - /*timeout*/timeout, - /*getcount_only*/0); - /* Drop freeze taken, if this recovery request got error. */ - if (frozen != 0) { - cam_release_devq(done_ccb->ccb_h.path, - /*relsim_flags*/0, - /*openings*/0, - /*timeout*/0, - /*getcount_only*/0); - } +out: + /* Drop freeze taken due to CAM_DEV_QFREEZE flag set. */ + cam_release_devq(done_ccb->ccb_h.path, 0, 0, 0, 0); } /* @@ -1415,10 +1248,10 @@ cam_periph_freeze_after_event(struct cam_periph *periph, } static int -camperiphscsistatuserror(union ccb *ccb, cam_flags camflags, - u_int32_t sense_flags, - int *openings, u_int32_t *relsim_flags, - u_int32_t *timeout, const char **action_string) +camperiphscsistatuserror(union ccb *ccb, union ccb **orig_ccb, + cam_flags camflags, u_int32_t sense_flags, + int *openings, u_int32_t *relsim_flags, + u_int32_t *timeout, int *print, const char **action_string) { int error; @@ -1431,14 +1264,13 @@ camperiphscsistatuserror(union ccb *ccb, cam_flags camflags, break; case SCSI_STATUS_CMD_TERMINATED: case SCSI_STATUS_CHECK_COND: - if (bootverbose) - xpt_print(ccb->ccb_h.path, "SCSI status error\n"); - error = camperiphscsisenseerror(ccb, + error = camperiphscsisenseerror(ccb, orig_ccb, camflags, sense_flags, openings, relsim_flags, timeout, + print, action_string); break; case SCSI_STATUS_QUEUE_FULL: @@ -1493,9 +1325,6 @@ camperiphscsistatuserror(union ccb *ccb, cam_flags camflags, } *timeout = 0; error = ERESTART; - if (bootverbose) { - xpt_print(ccb->ccb_h.path, "Queue full\n"); - } break; } /* FALLTHROUGH */ @@ -1505,9 +1334,6 @@ camperiphscsistatuserror(union ccb *ccb, cam_flags camflags, * Restart the queue after either another * command completes or a 1 second timeout. */ - if (bootverbose) { - xpt_print(ccb->ccb_h.path, "Device busy\n"); - } if (ccb->ccb_h.retry_count > 0) { ccb->ccb_h.retry_count--; error = ERESTART; @@ -1519,12 +1345,7 @@ camperiphscsistatuserror(union ccb *ccb, cam_flags camflags, } break; case SCSI_STATUS_RESERV_CONFLICT: - xpt_print(ccb->ccb_h.path, "Reservation conflict\n"); - error = EIO; - break; default: - xpt_print(ccb->ccb_h.path, "SCSI status 0x%x\n", - ccb->csio.scsi_status); error = EIO; break; } @@ -1532,18 +1353,18 @@ camperiphscsistatuserror(union ccb *ccb, cam_flags camflags, } static int -camperiphscsisenseerror(union ccb *ccb, cam_flags camflags, - u_int32_t sense_flags, - int *openings, u_int32_t *relsim_flags, - u_int32_t *timeout, const char **action_string) +camperiphscsisenseerror(union ccb *ccb, union ccb **orig, + cam_flags camflags, u_int32_t sense_flags, + int *openings, u_int32_t *relsim_flags, + u_int32_t *timeout, int *print, const char **action_string) { struct cam_periph *periph; union ccb *orig_ccb = ccb; - int error; + int error, recoveryccb; periph = xpt_path_periph(ccb->ccb_h.path); - if (periph->flags & - (CAM_PERIPH_RECOVERY_INPROG | CAM_PERIPH_SENSE_INPROG)) { + recoveryccb = (ccb->ccb_h.cbfcnp == camperiphdone); + if ((periph->flags & CAM_PERIPH_RECOVERY_INPROG) && !recoveryccb) { /* * If error recovery is already in progress, don't attempt * to process this error, but requeue it unconditionally @@ -1558,6 +1379,7 @@ camperiphscsisenseerror(union ccb *ccb, cam_flags camflags, * imperitive that we don't violate this assumption. */ error = ERESTART; + *print = 0; } else { scsi_sense_action err_action; struct ccb_getdev cgd; @@ -1573,13 +1395,35 @@ camperiphscsisenseerror(union ccb *ccb, cam_flags camflags, err_action = scsi_error_action(&ccb->csio, &cgd.inq_data, sense_flags); - else if ((ccb->ccb_h.flags & CAM_DIS_AUTOSENSE) == 0) - err_action = SS_REQSENSE; else err_action = SS_RETRY|SSQ_DECREMENT_COUNT|EIO; - error = err_action & SS_ERRMASK; + /* + * Do not autostart sequential access devices + * to avoid unexpected tape loading. + */ + if ((err_action & SS_MASK) == SS_START && + SID_TYPE(&cgd.inq_data) == T_SEQUENTIAL) { + *action_string = "Will not autostart a " + "sequential access device"; + goto sense_error_done; + } + + /* + * Avoid recovery recursion if recovery action is the same. + */ + if ((err_action & SS_MASK) >= SS_START && recoveryccb) { + if (((err_action & SS_MASK) == SS_START && + ccb->csio.cdb_io.cdb_bytes[0] == START_STOP_UNIT) || + ((err_action & SS_MASK) == SS_TUR && + (ccb->csio.cdb_io.cdb_bytes[0] == TEST_UNIT_READY))) { + err_action = SS_RETRY|SSQ_DECREMENT_COUNT|EIO; + *relsim_flags = RELSIM_RELEASE_AFTER_TIMEOUT; + *timeout = 500; + } + } + /* * If the recovery action will consume a retry, * make sure we actually have retries available. @@ -1627,15 +1471,6 @@ camperiphscsisenseerror(union ccb *ccb, cam_flags camflags, case SS_START: { int le; - if (SID_TYPE(&cgd.inq_data) == T_SEQUENTIAL) { - xpt_free_ccb(orig_ccb); - ccb->ccb_h.status |= CAM_DEV_QFRZN; - *action_string = "Will not autostart a " - "sequential access device"; - err_action = SS_FAIL; - error = EIO; - break; - } /* * Send a start unit command to the device, and @@ -1699,24 +1534,6 @@ camperiphscsisenseerror(union ccb *ccb, cam_flags camflags, *timeout = 500; break; } - case SS_REQSENSE: - { - *action_string = "Requesting SCSI sense data"; - periph->flags |= CAM_PERIPH_SENSE_INPROG; - /* - * Send a Request Sense to the device. We - * assume that we are in a contingent allegiance - * condition so we do not tag this request. - */ - scsi_request_sense(&ccb->csio, /*retries*/1, - camperiphsensedone, - &orig_ccb->csio.sense_data, - orig_ccb->csio.sense_len, - CAM_TAG_ACTION_NONE, - /*sense_len*/SSD_FULL_SIZE, - /*timeout*/5000); - break; - } default: panic("Unhandled error action %x", err_action); } @@ -1733,14 +1550,12 @@ camperiphscsisenseerror(union ccb *ccb, cam_flags camflags, ccb->ccb_h.pinfo.priority--; ccb->ccb_h.flags |= CAM_DEV_QFREEZE; ccb->ccb_h.saved_ccb_ptr = orig_ccb; - ccb->ccb_h.recovery_depth = 0; error = ERESTART; + *orig = orig_ccb; } sense_error_done: - if ((err_action & SSQ_PRINT_SENSE) != 0 - && (ccb->ccb_h.status & CAM_AUTOSNS_VALID) != 0) - cam_error_print(orig_ccb, CAM_ESF_ALL, CAM_EPF_ALL); + *print = ((err_action & SSQ_PRINT_SENSE) != 0); } return (error); } @@ -1754,87 +1569,35 @@ int cam_periph_error(union ccb *ccb, cam_flags camflags, u_int32_t sense_flags, union ccb *save_ccb) { + union ccb *orig_ccb; struct cam_periph *periph; const char *action_string; cam_status status; - int frozen; - int error, printed = 0; - int openings; - u_int32_t relsim_flags; - u_int32_t timeout = 0; + int frozen, error, openings, print, lost_device; + u_int32_t relsim_flags, timeout; + print = 1; periph = xpt_path_periph(ccb->ccb_h.path); action_string = NULL; status = ccb->ccb_h.status; frozen = (status & CAM_DEV_QFRZN) != 0; status &= CAM_STATUS_MASK; - openings = relsim_flags = 0; + openings = relsim_flags = timeout = lost_device = 0; + orig_ccb = ccb; switch (status) { case CAM_REQ_CMP: error = 0; + print = 0; break; case CAM_SCSI_STATUS_ERROR: - error = camperiphscsistatuserror(ccb, - camflags, - sense_flags, - &openings, - &relsim_flags, - &timeout, - &action_string); + error = camperiphscsistatuserror(ccb, &orig_ccb, + camflags, sense_flags, &openings, &relsim_flags, + &timeout, &print, &action_string); break; case CAM_AUTOSENSE_FAIL: - xpt_print(ccb->ccb_h.path, "AutoSense failed\n"); error = EIO; /* we have to kill the command */ break; - case CAM_ATA_STATUS_ERROR: - if (bootverbose && printed == 0) { - xpt_print(ccb->ccb_h.path, "ATA status error\n"); - cam_error_print(ccb, CAM_ESF_ALL, CAM_EPF_ALL); - printed++; - } - /* FALLTHROUGH */ - case CAM_REQ_CMP_ERR: - if (bootverbose && printed == 0) { - xpt_print(ccb->ccb_h.path, - "Request completed with CAM_REQ_CMP_ERR\n"); - printed++; - } - /* FALLTHROUGH */ - case CAM_CMD_TIMEOUT: - if (bootverbose && printed == 0) { - xpt_print(ccb->ccb_h.path, "Command timed out\n"); - printed++; - } - /* FALLTHROUGH */ - case CAM_UNEXP_BUSFREE: - if (bootverbose && printed == 0) { - xpt_print(ccb->ccb_h.path, "Unexpected Bus Free\n"); - printed++; - } - /* FALLTHROUGH */ - case CAM_UNCOR_PARITY: - if (bootverbose && printed == 0) { - xpt_print(ccb->ccb_h.path, - "Uncorrected parity error\n"); - printed++; - } - /* FALLTHROUGH */ - case CAM_DATA_RUN_ERR: - if (bootverbose && printed == 0) { - xpt_print(ccb->ccb_h.path, "Data overrun\n"); - printed++; - } - /* decrement the number of retries */ - if (ccb->ccb_h.retry_count > 0 && - (periph->flags & CAM_PERIPH_INVALID) == 0) { - ccb->ccb_h.retry_count--; - error = ERESTART; - } else { - action_string = "Retries exhausted"; - error = EIO; - } - break; case CAM_UA_ABORT: case CAM_UA_TERMIO: case CAM_MSG_REJECT_REC: @@ -1845,14 +1608,8 @@ cam_periph_error(union ccb *ccb, cam_flags camflags, if ((camflags & CAM_RETRY_SELTO) != 0) { if (ccb->ccb_h.retry_count > 0 && (periph->flags & CAM_PERIPH_INVALID) == 0) { - ccb->ccb_h.retry_count--; error = ERESTART; - if (bootverbose && printed == 0) { - xpt_print(ccb->ccb_h.path, - "Selection timeout\n"); - printed++; - } /* * Wait a bit to give the device @@ -1866,38 +1623,10 @@ cam_periph_error(union ccb *ccb, cam_flags camflags, } /* FALLTHROUGH */ case CAM_DEV_NOT_THERE: - { - struct cam_path *newpath; - lun_id_t lun_id; - error = ENXIO; - - /* - * For a selection timeout, we consider all of the LUNs on - * the target to be gone. If the status is CAM_DEV_NOT_THERE, - * then we only get rid of the device(s) specified by the - * path in the original CCB. - */ - if (status == CAM_DEV_NOT_THERE) - lun_id = xpt_path_lun_id(ccb->ccb_h.path); - else - lun_id = CAM_LUN_WILDCARD; - - /* Should we do more if we can't create the path?? */ - if (xpt_create_path(&newpath, periph, - xpt_path_path_id(ccb->ccb_h.path), - xpt_path_target_id(ccb->ccb_h.path), - lun_id) != CAM_REQ_CMP) - break; - - /* - * Let peripheral drivers know that this device has gone - * away. - */ - xpt_async(AC_LOST_DEVICE, newpath, NULL); - xpt_free_path(newpath); + print = 0; + lost_device = 1; break; - } case CAM_REQ_INVALID: case CAM_PATH_INVALID: case CAM_NO_HBA: @@ -1917,27 +1646,16 @@ cam_periph_error(union ccb *ccb, cam_flags camflags, * these events and should be unconditionally * retried. */ - if (bootverbose && printed == 0) { - xpt_print_path(ccb->ccb_h.path); - if (status == CAM_BDR_SENT) - printf("Bus Device Reset sent\n"); - else - printf("Bus Reset issued\n"); - printed++; - } - /* FALLTHROUGH */ case CAM_REQUEUE_REQ: - /* Unconditional requeue */ - if (bootverbose && printed == 0) { - xpt_print(ccb->ccb_h.path, "Request requeued\n"); - printed++; - } - if ((periph->flags & CAM_PERIPH_INVALID) == 0) - error = ERESTART; - else { - action_string = "Retries exhausted"; + /* Unconditional requeue if device is still there */ + if (periph->flags & CAM_PERIPH_INVALID) { + action_string = "Periph was invalidated"; error = EIO; - } + } else if (sense_flags & SF_NO_RETRY) { + error = EIO; + action_string = "Retry was blocked"; + } else + error = ERESTART; break; case CAM_RESRC_UNAVAIL: /* Wait a bit for the resource shortage to abate. */ @@ -1950,30 +1668,37 @@ cam_periph_error(union ccb *ccb, cam_flags camflags, } relsim_flags = RELSIM_RELEASE_AFTER_TIMEOUT; /* FALLTHROUGH */ + case CAM_ATA_STATUS_ERROR: + case CAM_REQ_CMP_ERR: + case CAM_CMD_TIMEOUT: + case CAM_UNEXP_BUSFREE: + case CAM_UNCOR_PARITY: + case CAM_DATA_RUN_ERR: default: - /* decrement the number of retries */ - if (ccb->ccb_h.retry_count > 0 && - (periph->flags & CAM_PERIPH_INVALID) == 0) { - ccb->ccb_h.retry_count--; - error = ERESTART; - if (bootverbose && printed == 0) { - xpt_print(ccb->ccb_h.path, "CAM status 0x%x\n", - status); - printed++; - } - } else { + if (periph->flags & CAM_PERIPH_INVALID) { + error = EIO; + action_string = "Periph was invalidated"; + } else if (ccb->ccb_h.retry_count == 0) { error = EIO; action_string = "Retries exhausted"; + } else if (sense_flags & SF_NO_RETRY) { + error = EIO; + action_string = "Retry was blocked"; + } else { + ccb->ccb_h.retry_count--; + error = ERESTART; } break; } - /* - * If we have and error and are booting verbosely, whine - * *unless* this was a non-retryable selection timeout. - */ - if (error != 0 && bootverbose && - !(status == CAM_SEL_TIMEOUT && (camflags & CAM_RETRY_SELTO) == 0)) { + if ((sense_flags & SF_PRINT_ALWAYS) || + CAM_DEBUGGED(ccb->ccb_h.path, CAM_DEBUG_INFO)) + print = 1; + else if (sense_flags & SF_NO_PRINT) + print = 0; + if (print) + cam_error_print(orig_ccb, CAM_ESF_ALL, CAM_EPF_ALL); + if (error != 0 && print) { if (error != ERESTART) { if (action_string == NULL) action_string = "Unretryable error"; @@ -1985,6 +1710,36 @@ cam_periph_error(union ccb *ccb, cam_flags camflags, xpt_print(ccb->ccb_h.path, "Retrying command\n"); } + if (lost_device) { + struct cam_path *newpath; + lun_id_t lun_id; + + /* + * For a selection timeout, we consider all of the LUNs on + * the target to be gone. If the status is CAM_DEV_NOT_THERE, + * then we only get rid of the device(s) specified by the + * path in the original CCB. + */ + if (status == CAM_DEV_NOT_THERE) + lun_id = xpt_path_lun_id(ccb->ccb_h.path); + else + lun_id = CAM_LUN_WILDCARD; + + /* Should we do more if we can't create the path?? */ + if (xpt_create_path(&newpath, periph, + xpt_path_path_id(ccb->ccb_h.path), + xpt_path_target_id(ccb->ccb_h.path), + lun_id) == CAM_REQ_CMP) { + + /* + * Let peripheral drivers know that this + * device has gone away. + */ + xpt_async(AC_LOST_DEVICE, newpath, NULL); + xpt_free_path(newpath); + } + } + /* Attempt a retry */ if (error == ERESTART || error == 0) { if (frozen != 0) diff --git a/sys/cam/cam_periph.h b/sys/cam/cam_periph.h index 6c232ca74b42..b51fb681b2d3 100644 --- a/sys/cam/cam_periph.h +++ b/sys/cam/cam_periph.h @@ -118,7 +118,6 @@ struct cam_periph { #define CAM_PERIPH_INVALID 0x08 #define CAM_PERIPH_NEW_DEV_FOUND 0x10 #define CAM_PERIPH_RECOVERY_INPROG 0x20 -#define CAM_PERIPH_SENSE_INPROG 0x40 #define CAM_PERIPH_FREE 0x80 u_int32_t immediate_priority; u_int32_t refcount; diff --git a/sys/cam/scsi/scsi_all.c b/sys/cam/scsi/scsi_all.c index abfa879d95e5..435b58c5dd6c 100644 --- a/sys/cam/scsi/scsi_all.c +++ b/sys/cam/scsi/scsi_all.c @@ -2901,11 +2901,17 @@ scsi_error_action(struct ccb_scsiio *csio, struct scsi_inquiry_data *inq_data, SSQ_PRINT_SENSE; } } + if ((action & SS_MASK) >= SS_START && + (sense_flags & SF_NO_RECOVERY)) { + action &= ~SS_MASK; + action |= SS_FAIL; + } else if ((action & SS_MASK) == SS_RETRY && + (sense_flags & SF_NO_RETRY)) { + action &= ~SS_MASK; + action |= SS_FAIL; + } + } -#ifdef _KERNEL - if (bootverbose) - sense_flags |= SF_PRINT_ALWAYS; -#endif if ((sense_flags & SF_PRINT_ALWAYS) != 0) action |= SSQ_PRINT_SENSE; else if ((sense_flags & SF_NO_PRINT) != 0) diff --git a/sys/cam/scsi/scsi_all.h b/sys/cam/scsi/scsi_all.h index e57caad8d3ba..40b10bc03562 100644 --- a/sys/cam/scsi/scsi_all.h +++ b/sys/cam/scsi/scsi_all.h @@ -74,9 +74,6 @@ typedef enum { SS_TUR = 0x040000, /* Send a Test Unit Ready command to the * device, then retry the original command. */ - SS_REQSENSE = 0x050000, /* Send a RequestSense command to the - * device, then retry the original command. - */ SS_MASK = 0xff0000 } scsi_sense_action; @@ -2196,12 +2193,6 @@ void scsi_sense_print(struct cam_device *device, struct ccb_scsiio *csio, FILE *ofile); #endif /* _KERNEL */ -#define SF_RETRY_UA 0x01 -#define SF_NO_PRINT 0x02 -#define SF_QUIET_IR 0x04 /* Be quiet about Illegal Request reponses */ -#define SF_PRINT_ALWAYS 0x08 - - const char * scsi_op_desc(u_int16_t opcode, struct scsi_inquiry_data *inq_data); char * scsi_cdb_string(u_int8_t *cdb_ptr, char *cdb_string, diff --git a/sys/cam/scsi/scsi_da.c b/sys/cam/scsi/scsi_da.c index 3a02ea841428..06a4d27a86d2 100644 --- a/sys/cam/scsi/scsi_da.c +++ b/sys/cam/scsi/scsi_da.c @@ -1120,6 +1120,7 @@ dadump(void *arg, void *virtual, vm_offset_t physical, off_t offset, size_t leng u_int secsize; struct ccb_scsiio csio; struct disk *dp; + int error = 0; dp = arg; periph = dp->d_drv1; @@ -1138,7 +1139,7 @@ dadump(void *arg, void *virtual, vm_offset_t physical, off_t offset, size_t leng xpt_setup_ccb(&csio.ccb_h, periph->path, CAM_PRIORITY_NORMAL); csio.ccb_h.ccb_state = DA_CCB_DUMP; scsi_read_write(&csio, - /*retries*/1, + /*retries*/0, dadone, MSG_ORDERED_Q_TAG, /*read*/FALSE, @@ -1151,19 +1152,16 @@ dadump(void *arg, void *virtual, vm_offset_t physical, off_t offset, size_t leng /*sense_len*/SSD_FULL_SIZE, da_default_timeout * 1000); xpt_polled_action((union ccb *)&csio); - cam_periph_unlock(periph); - if ((csio.ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) { + error = cam_periph_error((union ccb *)&csio, + 0, SF_NO_RECOVERY | SF_NO_RETRY, NULL); + if ((csio.ccb_h.status & CAM_DEV_QFRZN) != 0) + cam_release_devq(csio.ccb_h.path, /*relsim_flags*/0, + /*reduction*/0, /*timeout*/0, /*getcount_only*/0); + if (error != 0) printf("Aborting dump due to I/O error.\n"); - if ((csio.ccb_h.status & CAM_STATUS_MASK) == - CAM_SCSI_STATUS_ERROR) - scsi_sense_print(&csio); - else - printf("status == 0x%x, scsi status == 0x%x\n", - csio.ccb_h.status, csio.scsi_status); - return(EIO); - } - return(0); + cam_periph_unlock(periph); + return (error); } /* @@ -1174,7 +1172,7 @@ dadump(void *arg, void *virtual, vm_offset_t physical, off_t offset, size_t leng xpt_setup_ccb(&csio.ccb_h, periph->path, CAM_PRIORITY_NORMAL); csio.ccb_h.ccb_state = DA_CCB_DUMP; scsi_synchronize_cache(&csio, - /*retries*/1, + /*retries*/0, /*cbfcnp*/dadone, MSG_SIMPLE_Q_TAG, /*begin_lba*/0,/* Cover the whole disk */ @@ -1183,28 +1181,16 @@ dadump(void *arg, void *virtual, vm_offset_t physical, off_t offset, size_t leng 5 * 60 * 1000); xpt_polled_action((union ccb *)&csio); - if ((csio.ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) { - if ((csio.ccb_h.status & CAM_STATUS_MASK) == - CAM_SCSI_STATUS_ERROR) { - int asc, ascq; - int sense_key, error_code; - - scsi_extract_sense_len(&csio.sense_data, - csio.sense_len - csio.sense_resid, - &error_code, &sense_key, &asc, &ascq, - /*show_errors*/ 1); - if (sense_key != SSD_KEY_ILLEGAL_REQUEST) - scsi_sense_print(&csio); - } else { - xpt_print(periph->path, "Synchronize cache " - "failed, status == 0x%x, scsi status == " - "0x%x\n", csio.ccb_h.status, - csio.scsi_status); - } - } + error = cam_periph_error((union ccb *)&csio, + 0, SF_NO_RECOVERY | SF_NO_RETRY | SF_QUIET_IR, NULL); + if ((csio.ccb_h.status & CAM_DEV_QFRZN) != 0) + cam_release_devq(csio.ccb_h.path, /*relsim_flags*/0, + /*reduction*/0, /*timeout*/0, /*getcount_only*/0); + if (error != 0) + xpt_print(periph->path, "Synchronize cache failed\n"); } cam_periph_unlock(periph); - return (0); + return (error); } static int @@ -2678,6 +2664,7 @@ dashutdown(void * arg, int howto) { struct cam_periph *periph; struct da_softc *softc; + int error; TAILQ_FOREACH(periph, &dadriver.units, unit_links) { union ccb ccb; @@ -2699,7 +2686,7 @@ dashutdown(void * arg, int howto) ccb.ccb_h.ccb_state = DA_CCB_DUMP; scsi_synchronize_cache(&ccb.csio, - /*retries*/1, + /*retries*/0, /*cbfcnp*/dadone, MSG_SIMPLE_Q_TAG, /*begin_lba*/0, /* whole disk */ @@ -2709,32 +2696,13 @@ dashutdown(void * arg, int howto) xpt_polled_action(&ccb); - if ((ccb.ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) { - if (((ccb.ccb_h.status & CAM_STATUS_MASK) == - CAM_SCSI_STATUS_ERROR) - && (ccb.csio.scsi_status == SCSI_STATUS_CHECK_COND)){ - int error_code, sense_key, asc, ascq; - - scsi_extract_sense(&ccb.csio.sense_data, - &error_code, &sense_key, - &asc, &ascq); - - if (sense_key != SSD_KEY_ILLEGAL_REQUEST) - scsi_sense_print(&ccb.csio); - } else { - xpt_print(periph->path, "Synchronize " - "cache failed, status == 0x%x, scsi status " - "== 0x%x\n", ccb.ccb_h.status, - ccb.csio.scsi_status); - } - } - + error = cam_periph_error(&ccb, + 0, SF_NO_RECOVERY | SF_NO_RETRY | SF_QUIET_IR, NULL); if ((ccb.ccb_h.status & CAM_DEV_QFRZN) != 0) - cam_release_devq(ccb.ccb_h.path, - /*relsim_flags*/0, - /*reduction*/0, - /*timeout*/0, - /*getcount_only*/0); + cam_release_devq(ccb.ccb_h.path, /*relsim_flags*/0, + /*reduction*/0, /*timeout*/0, /*getcount_only*/0); + if (error != 0) + xpt_print(periph->path, "Synchronize cache failed\n"); cam_periph_unlock(periph); } } diff --git a/sys/cam/scsi/scsi_pass.c b/sys/cam/scsi/scsi_pass.c index 5b81ba8b6071..fe41978ddc49 100644 --- a/sys/cam/scsi/scsi_pass.c +++ b/sys/cam/scsi/scsi_pass.c @@ -624,9 +624,9 @@ passsendccb(struct cam_periph *periph, union ccb *ccb, union ccb *inccb) * that request. Otherwise, it's up to the user to perform any * error recovery. */ - cam_periph_runccb(ccb, - (ccb->ccb_h.flags & CAM_PASS_ERR_RECOVER) ? passerror : NULL, - /* cam_flags */ CAM_RETRY_SELTO, /* sense_flags */SF_RETRY_UA, + cam_periph_runccb(ccb, passerror, /* cam_flags */ CAM_RETRY_SELTO, + /* sense_flags */ ((ccb->ccb_h.flags & CAM_PASS_ERR_RECOVER) ? + SF_RETRY_UA : SF_NO_RECOVERY) | SF_NO_PRINT, softc->device_stats); if (need_unmap != 0) diff --git a/sys/cam/scsi/scsi_xpt.c b/sys/cam/scsi/scsi_xpt.c index fa69bc0bb858..dcc76a18e38c 100644 --- a/sys/cam/scsi/scsi_xpt.c +++ b/sys/cam/scsi/scsi_xpt.c @@ -747,7 +747,7 @@ probestart(struct cam_periph *periph, union ccb *start_ccb) case PROBE_DV_EXIT: { scsi_test_unit_ready(csio, - /*retries*/10, + /*retries*/4, probedone, MSG_SIMPLE_Q_TAG, SSD_FULL_SIZE, @@ -1596,14 +1596,11 @@ probedone(struct cam_periph *periph, union ccb *done_ccb) break; } case PROBE_TUR_FOR_NEGOTIATION: - if ((done_ccb->ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) { - DELAY(500000); - if (cam_periph_error(done_ccb, 0, SF_RETRY_UA, - NULL) == ERESTART) - return; - } - /* FALLTHROUGH */ case PROBE_DV_EXIT: + if ((done_ccb->ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) { + cam_periph_error(done_ccb, 0, + SF_NO_PRINT | SF_NO_RECOVERY | SF_NO_RETRY, NULL); + } if ((done_ccb->ccb_h.status & CAM_DEV_QFRZN) != 0) { /* Don't wedge the queue */ xpt_release_devq(done_ccb->ccb_h.path, /*count*/1, @@ -1651,6 +1648,10 @@ probedone(struct cam_periph *periph, union ccb *done_ccb) struct scsi_inquiry_data *nbuf; struct ccb_scsiio *csio; + if ((done_ccb->ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) { + cam_periph_error(done_ccb, 0, + SF_NO_PRINT | SF_NO_RECOVERY | SF_NO_RETRY, NULL); + } if ((done_ccb->ccb_h.status & CAM_DEV_QFRZN) != 0) { /* Don't wedge the queue */ xpt_release_devq(done_ccb->ccb_h.path, /*count*/1, From d849ce33152d199bf65fc5d23368ba424e4a31c3 Mon Sep 17 00:00:00 2001 From: Tim Kientzle Date: Sat, 9 Jun 2012 16:09:53 +0000 Subject: [PATCH 084/340] __flt_rounds was omitted from the exported symbols here. Submitted by: Jan Sieka Reviewed by: arm@ MFC after: 1 week --- lib/libc/arm/Symbol.map | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/libc/arm/Symbol.map b/lib/libc/arm/Symbol.map index dc460130eb40..e0116d7e8513 100644 --- a/lib/libc/arm/Symbol.map +++ b/lib/libc/arm/Symbol.map @@ -70,6 +70,7 @@ FBSDprivate_1.0 { __divdf3; __floatsisf; __floatsidf; + __flt_rounds; __fixsfsi; __fixdfsi; __fixunssfsi; From 5154b2dffcd958dd6da2a93ce83e0a85be0b55d5 Mon Sep 17 00:00:00 2001 From: "Alexander V. Chernikov" Date: Sat, 9 Jun 2012 17:39:05 +0000 Subject: [PATCH 085/340] Validate IPv4 network mask being passed to ipfw kernel interface. Incorrect mask can possibly be one of the reasons for kern/127209 existance. Approved by: kib(mentor) MFC after: 3 days --- sys/netinet/ipfw/ip_fw_table.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sys/netinet/ipfw/ip_fw_table.c b/sys/netinet/ipfw/ip_fw_table.c index 9de5d53d18a1..5f4d35079f92 100644 --- a/sys/netinet/ipfw/ip_fw_table.c +++ b/sys/netinet/ipfw/ip_fw_table.c @@ -153,6 +153,9 @@ ipfw_add_table_entry(struct ip_fw_chain *ch, uint16_t tbl, void *paddr, case IPFW_TABLE_CIDR: if (plen == sizeof(in_addr_t)) { #ifdef INET + /* IPv4 case */ + if (mlen > 32) + return (EINVAL); ent = malloc(sizeof(*ent), M_IPFW_TBL, M_WAITOK | M_ZERO); ent->value = value; /* Set 'total' structure length */ From 380513aaaee4754ec6af1c296528ea8b7fa94720 Mon Sep 17 00:00:00 2001 From: Pawel Jakub Dawidek Date: Sat, 9 Jun 2012 18:03:23 +0000 Subject: [PATCH 086/340] Make some of the loops more readable. Reviewed by: tegge MFC after: 1 month --- sys/kern/kern_descrip.c | 25 +++++++++---------------- 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c index dc703e796023..e3b90af42a4e 100644 --- a/sys/kern/kern_descrip.c +++ b/sys/kern/kern_descrip.c @@ -1570,7 +1570,6 @@ fdavail(struct thread *td, int n) { struct proc *p = td->td_proc; struct filedesc *fdp = td->td_proc->p_fd; - struct file **fpp; int i, lim, last; FILEDESC_LOCK_ASSERT(fdp); @@ -1586,9 +1585,8 @@ fdavail(struct thread *td, int n) if ((i = lim - fdp->fd_nfiles) > 0 && (n -= i) <= 0) return (1); last = min(fdp->fd_nfiles, lim); - fpp = &fdp->fd_ofiles[fdp->fd_freefile]; - for (i = last - fdp->fd_freefile; --i >= 0; fpp++) { - if (*fpp == NULL && --n <= 0) + for (i = fdp->fd_freefile; i < last; i++) { + if (fdp->fd_ofiles[i] == NULL && --n <= 0) return (1); } return (0); @@ -1874,13 +1872,10 @@ fdfree(struct thread *td) fdtol->fdl_refcount)); if (fdtol->fdl_refcount == 1 && (td->td_proc->p_leader->p_flag & P_ADVLOCK) != 0) { - for (i = 0, fpp = fdp->fd_ofiles; - i <= fdp->fd_lastfile; - i++, fpp++) { - if (*fpp == NULL || - (*fpp)->f_type != DTYPE_VNODE) + for (i = 0; i <= fdp->fd_lastfile; i++) { + fp = fdp->fd_ofiles[i]; + if (fp == NULL || fp->f_type != DTYPE_VNODE) continue; - fp = *fpp; fhold(fp); FILEDESC_XUNLOCK(fdp); lf.l_whence = SEEK_SET; @@ -1898,7 +1893,6 @@ fdfree(struct thread *td) VFS_UNLOCK_GIANT(locked); FILEDESC_XLOCK(fdp); fdrop(fp, td); - fpp = fdp->fd_ofiles + i; } } retry: @@ -1943,12 +1937,11 @@ fdfree(struct thread *td) if (i > 0) return; - fpp = fdp->fd_ofiles; - for (i = fdp->fd_lastfile; i-- >= 0; fpp++) { - if (*fpp) { + for (i = 0; i <= fdp->fd_lastfile; i++) { + fp = fdp->fd_ofiles[i]; + if (fp != NULL) { FILEDESC_XLOCK(fdp); - fp = *fpp; - *fpp = NULL; + fdp->fd_ofiles[i] = NULL; FILEDESC_XUNLOCK(fdp); (void) closef(fp, td); } From 68abac4337ac397dfacfa059e3b337f1108bcb4e Mon Sep 17 00:00:00 2001 From: Pawel Jakub Dawidek Date: Sat, 9 Jun 2012 18:48:06 +0000 Subject: [PATCH 087/340] Remove now unused variable. MFC after: 1 month MFC with: r236820 --- sys/kern/kern_descrip.c | 1 - 1 file changed, 1 deletion(-) diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c index e3b90af42a4e..404d385a2c29 100644 --- a/sys/kern/kern_descrip.c +++ b/sys/kern/kern_descrip.c @@ -1845,7 +1845,6 @@ void fdfree(struct thread *td) { struct filedesc *fdp; - struct file **fpp; int i, locked; struct filedesc_to_leader *fdtol; struct file *fp; From e59a97362d706967c284221ee9c45916bdcee572 Mon Sep 17 00:00:00 2001 From: Pawel Jakub Dawidek Date: Sat, 9 Jun 2012 18:50:32 +0000 Subject: [PATCH 088/340] There is no need to drop the FILEDESC lock around malloc(M_WAITOK) anymore, as we now use sx lock for filedesc structure protection. Reviewed by: kib MFC after: 1 month --- sys/kern/kern_descrip.c | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c index 404d385a2c29..3a5b318bb71e 100644 --- a/sys/kern/kern_descrip.c +++ b/sys/kern/kern_descrip.c @@ -1428,9 +1428,7 @@ sys_fpathconf(struct thread *td, struct fpathconf_args *uap) } /* - * Grow the file table to accomodate (at least) nfd descriptors. This may - * block and drop the filedesc lock, but it will reacquire it before - * returning. + * Grow the file table to accomodate (at least) nfd descriptors. */ static void fdgrowtable(struct filedesc *fdp, int nfd) @@ -1456,7 +1454,6 @@ fdgrowtable(struct filedesc *fdp, int nfd) return; /* allocate a new table and (if required) new bitmaps */ - FILEDESC_XUNLOCK(fdp); ntable = malloc((nnfiles * OFILESIZE) + sizeof(struct freetable), M_FILEDESC, M_ZERO | M_WAITOK); nfileflags = (char *)&ntable[nnfiles]; @@ -1465,20 +1462,7 @@ fdgrowtable(struct filedesc *fdp, int nfd) M_FILEDESC, M_ZERO | M_WAITOK); else nmap = NULL; - FILEDESC_XLOCK(fdp); - /* - * We now have new tables ready to go. Since we dropped the - * filedesc lock to call malloc(), watch out for a race. - */ - onfiles = fdp->fd_nfiles; - if (onfiles >= nnfiles) { - /* we lost the race, but that's OK */ - free(ntable, M_FILEDESC); - if (nmap != NULL) - free(nmap, M_FILEDESC); - return; - } bcopy(fdp->fd_ofiles, ntable, onfiles * sizeof(*ntable)); bcopy(fdp->fd_ofileflags, nfileflags, onfiles); otable = fdp->fd_ofiles; From 25892bfc61b5bee835dd14ba62f8b8627bba2d8f Mon Sep 17 00:00:00 2001 From: Pawel Jakub Dawidek Date: Sat, 9 Jun 2012 20:16:19 +0000 Subject: [PATCH 089/340] ds_guid of 0 is special, as it is used by snapshot receive code to differentiate between an incremental and full stream. Be sure not to generate guid equal to 0. Reported by: someone who saw 0 being generated as 64bit random guid MFC after: 3 days --- .../opensolaris/uts/common/fs/zfs/dsl_dataset.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c index f28f83b35468..648f2f353a51 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c @@ -809,8 +809,10 @@ dsl_dataset_create_sync_dd(dsl_dir_t *dd, dsl_dataset_t *origin, dsphys->ds_dir_obj = dd->dd_object; dsphys->ds_flags = flags; dsphys->ds_fsid_guid = unique_create(); - (void) random_get_pseudo_bytes((void*)&dsphys->ds_guid, - sizeof (dsphys->ds_guid)); + do { + (void) random_get_pseudo_bytes((void*)&dsphys->ds_guid, + sizeof (dsphys->ds_guid)); + } while (dsphys->ds_guid == 0); dsphys->ds_snapnames_zapobj = zap_create_norm(mos, U8_TEXTPREP_TOUPPER, DMU_OT_DSL_DS_SNAP_MAP, DMU_OT_NONE, 0, tx); @@ -2082,8 +2084,10 @@ dsl_dataset_snapshot_sync(void *arg1, void *arg2, dmu_tx_t *tx) bzero(dsphys, sizeof (dsl_dataset_phys_t)); dsphys->ds_dir_obj = ds->ds_dir->dd_object; dsphys->ds_fsid_guid = unique_create(); - (void) random_get_pseudo_bytes((void*)&dsphys->ds_guid, - sizeof (dsphys->ds_guid)); + do { + (void) random_get_pseudo_bytes((void*)&dsphys->ds_guid, + sizeof (dsphys->ds_guid)); + } while (dsphys->ds_guid == 0); dsphys->ds_prev_snap_obj = ds->ds_phys->ds_prev_snap_obj; dsphys->ds_prev_snap_txg = ds->ds_phys->ds_prev_snap_txg; dsphys->ds_next_snap_obj = ds->ds_object; From 2bd61de08c2fa60b030606ccb1fe16bf7be5aa05 Mon Sep 17 00:00:00 2001 From: "Alexander V. Chernikov" Date: Sat, 9 Jun 2012 20:47:58 +0000 Subject: [PATCH 090/340] Update maximum number of tables available in ipfw to reflect changes done in r233478. Approved by: kib(mentor) MFC after: 3 days --- sbin/ipfw/ipfw.8 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sbin/ipfw/ipfw.8 b/sbin/ipfw/ipfw.8 index 5d1625ea60a2..83a0c16b225d 100644 --- a/sbin/ipfw/ipfw.8 +++ b/sbin/ipfw/ipfw.8 @@ -1,7 +1,7 @@ .\" .\" $FreeBSD$ .\" -.Dd March 9, 2012 +.Dd June 10, 2012 .Dt IPFW 8 .Os .Sh NAME @@ -1733,7 +1733,7 @@ connected networks instead of all source addresses. Lookup tables are useful to handle large sparse sets of addresses or other search keys (e.g. ports, jail IDs, interface names). In the rest of this section we will use the term ``address''. -There may be up to 4096 different lookup tables, numbered 0 to 4095. +There may be up to 65535 different lookup tables, numbered 0 to 65534. .Pp Each entry is represented by an .Ar addr Ns Op / Ns Ar masklen From 75c898f2a443e57b23ee80508bdb471d2fb4f994 Mon Sep 17 00:00:00 2001 From: Kirk McKusick Date: Sat, 9 Jun 2012 22:26:53 +0000 Subject: [PATCH 091/340] When synchronously syncing a device (MNT_WAIT), wait for buffers to become available. Otherwise we may excessively spin and fail with ``fsync: giving up on dirty''. Reviewed by: kib Tested by: Peter Holm MFC after: 1 week --- sys/kern/vfs_default.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/sys/kern/vfs_default.c b/sys/kern/vfs_default.c index 91b30a814ed9..b807db892bd9 100644 --- a/sys/kern/vfs_default.c +++ b/sys/kern/vfs_default.c @@ -646,8 +646,17 @@ vop_stdfsync(ap) if ((bp->b_vflags & BV_SCANNED) != 0) continue; bp->b_vflags |= BV_SCANNED; - if (BUF_LOCK(bp, LK_EXCLUSIVE | LK_NOWAIT, NULL)) - continue; + if (BUF_LOCK(bp, LK_EXCLUSIVE | LK_NOWAIT, NULL)) { + if (ap->a_waitfor != MNT_WAIT) + continue; + if (BUF_LOCK(bp, + LK_EXCLUSIVE | LK_INTERLOCK | LK_SLEEPFAIL, + BO_MTX(bo)) != 0) { + BO_LOCK(bo); + goto loop1; + } + BO_LOCK(bo); + } BO_UNLOCK(bo); KASSERT(bp->b_bufobj == bo, ("bp %p wrong b_bufobj %p should be %p", From 4ea15b8776ec8c7b6b6947c7fcf749a50b3d96db Mon Sep 17 00:00:00 2001 From: Andrew Turner Date: Sun, 10 Jun 2012 01:13:04 +0000 Subject: [PATCH 092/340] Pull out the common code to initialise proc0 & thread0 from initarm to a common function. Reviewed by: imp --- sys/arm/arm/machdep.c | 18 ++++++++++++++++++ sys/arm/at91/at91_machdep.c | 10 +--------- sys/arm/econa/econa_machdep.c | 10 +--------- sys/arm/include/machdep.h | 1 + sys/arm/mv/mv_machdep.c | 11 +---------- sys/arm/s3c2xx0/s3c24x0_machdep.c | 12 ++---------- sys/arm/sa11x0/assabet_machdep.c | 8 +------- sys/arm/xscale/i80321/ep80219_machdep.c | 10 +--------- sys/arm/xscale/i80321/iq31244_machdep.c | 10 +--------- sys/arm/xscale/i8134x/crb_machdep.c | 10 +--------- sys/arm/xscale/ixp425/avila_machdep.c | 10 +--------- sys/arm/xscale/pxa/pxa_machdep.c | 10 +--------- 12 files changed, 30 insertions(+), 90 deletions(-) diff --git a/sys/arm/arm/machdep.c b/sys/arm/arm/machdep.c index 1ec4bc41bedf..0cceab0f4cae 100644 --- a/sys/arm/arm/machdep.c +++ b/sys/arm/arm/machdep.c @@ -92,6 +92,8 @@ __FBSDID("$FreeBSD$"); #include #include +static struct trapframe proc0_tf; + uint32_t cpu_reset_address = 0; int cold = 1; vm_offset_t vector_page; @@ -709,3 +711,19 @@ fake_preload_metadata(void) return (lastaddr); } + +/* + * Initialize proc0 + */ +void +init_proc0(vm_offset_t kstack) +{ + proc_linkup0(&proc0, &thread0); + thread0.td_kstack = kstack; + thread0.td_pcb = (struct pcb *) + (thread0.td_kstack + KSTACK_PAGES * PAGE_SIZE) - 1; + thread0.td_pcb->pcb_flags = 0; + thread0.td_frame = &proc0_tf; + pcpup->pc_curpcb = thread0.td_pcb; +} + diff --git a/sys/arm/at91/at91_machdep.c b/sys/arm/at91/at91_machdep.c index a6b8d87359b0..b05ef9ac31b2 100644 --- a/sys/arm/at91/at91_machdep.c +++ b/sys/arm/at91/at91_machdep.c @@ -132,8 +132,6 @@ struct pv_addr undstack; struct pv_addr abtstack; struct pv_addr kernelstack; -static struct trapframe proc0_tf; - /* Static device mappings. */ const struct pmap_devmap at91_devmap[] = { /* @@ -550,13 +548,7 @@ initarm(struct arm_boot_params *abp) undefined_handler_address = (u_int)undefinedinstruction_bounce; undefined_init(); - proc_linkup0(&proc0, &thread0); - thread0.td_kstack = kernelstack.pv_va; - thread0.td_pcb = (struct pcb *) - (thread0.td_kstack + KSTACK_PAGES * PAGE_SIZE) - 1; - thread0.td_pcb->pcb_flags = 0; - thread0.td_frame = &proc0_tf; - pcpup->pc_curpcb = thread0.td_pcb; + init_proc0(kernelstack.pv_va); arm_vector_init(ARM_VECTORS_HIGH, ARM_VEC_ALL); diff --git a/sys/arm/econa/econa_machdep.c b/sys/arm/econa/econa_machdep.c index 411cb97d6351..237ec4834ff0 100644 --- a/sys/arm/econa/econa_machdep.c +++ b/sys/arm/econa/econa_machdep.c @@ -123,8 +123,6 @@ struct pv_addr undstack; struct pv_addr abtstack; struct pv_addr kernelstack; -static struct trapframe proc0_tf; - /* Static device mappings. */ static const struct pmap_devmap econa_devmap[] = { { @@ -341,13 +339,7 @@ initarm(struct arm_boot_params *abp) undefined_handler_address = (u_int)undefinedinstruction_bounce; undefined_init(); - proc_linkup0(&proc0, &thread0); - thread0.td_kstack = kernelstack.pv_va; - thread0.td_pcb = (struct pcb *) - (thread0.td_kstack + KSTACK_PAGES * PAGE_SIZE) - 1; - thread0.td_pcb->pcb_flags = 0; - thread0.td_frame = &proc0_tf; - pcpup->pc_curpcb = thread0.td_pcb; + init_proc0(kernelstack.pv_va); arm_vector_init(ARM_VECTORS_HIGH, ARM_VEC_ALL); diff --git a/sys/arm/include/machdep.h b/sys/arm/include/machdep.h index 85c4114b0e54..b403d9468369 100644 --- a/sys/arm/include/machdep.h +++ b/sys/arm/include/machdep.h @@ -7,6 +7,7 @@ /* misc prototypes used by the many arm machdeps */ void arm_lock_cache_line(vm_offset_t); vm_offset_t fake_preload_metadata(void); +void init_proc0(vm_offset_t kstack); void halt(void); void data_abort_handler(trapframe_t *); void prefetch_abort_handler(trapframe_t *); diff --git a/sys/arm/mv/mv_machdep.c b/sys/arm/mv/mv_machdep.c index 2f2d628faa1c..a5577734d696 100644 --- a/sys/arm/mv/mv_machdep.c +++ b/sys/arm/mv/mv_machdep.c @@ -145,8 +145,6 @@ struct pv_addr undstack; struct pv_addr abtstack; struct pv_addr kernelstack; -static struct trapframe proc0_tf; - static struct mem_region availmem_regions[FDT_MEM_REGIONS]; static int availmem_regions_sz; @@ -576,14 +574,7 @@ initarm(struct arm_boot_params *abp) undefined_handler_address = (u_int)undefinedinstruction_bounce; undefined_init(); - proc_linkup0(&proc0, &thread0); - thread0.td_kstack = kernelstack.pv_va; - thread0.td_kstack_pages = KSTACK_PAGES; - thread0.td_pcb = (struct pcb *) - (thread0.td_kstack + KSTACK_PAGES * PAGE_SIZE) - 1; - thread0.td_pcb->pcb_flags = 0; - thread0.td_frame = &proc0_tf; - pcpup->pc_curpcb = thread0.td_pcb; + init_proc0(kernelstack.pv_va); arm_vector_init(ARM_VECTORS_HIGH, ARM_VEC_ALL); diff --git a/sys/arm/s3c2xx0/s3c24x0_machdep.c b/sys/arm/s3c2xx0/s3c24x0_machdep.c index af4eaf916621..398b53d7bdde 100644 --- a/sys/arm/s3c2xx0/s3c24x0_machdep.c +++ b/sys/arm/s3c2xx0/s3c24x0_machdep.c @@ -138,8 +138,6 @@ struct pv_addr undstack; struct pv_addr abtstack; struct pv_addr kernelstack; -static struct trapframe proc0_tf; - #define _A(a) ((a) & ~L1_S_OFFSET) #define _S(s) (((s) + L1_S_SIZE - 1) & ~(L1_S_SIZE-1)) @@ -406,14 +404,8 @@ initarm(struct arm_boot_params *abp) prefetch_abort_handler_address = (u_int)prefetch_abort_handler; undefined_handler_address = (u_int)undefinedinstruction_bounce; undefined_init(); - - proc_linkup(&proc0, &thread0); - thread0.td_kstack = kernelstack.pv_va; - thread0.td_pcb = (struct pcb *) - (thread0.td_kstack + KSTACK_PAGES * PAGE_SIZE) - 1; - thread0.td_pcb->pcb_flags = 0; - thread0.td_frame = &proc0_tf; - pcpup->pc_curpcb = thread0.td_pcb; + + init_proc0(kernelstack.pv_va); arm_vector_init(ARM_VECTORS_HIGH, ARM_VEC_ALL); diff --git a/sys/arm/sa11x0/assabet_machdep.c b/sys/arm/sa11x0/assabet_machdep.c index ee93f84a37fb..54a2adbdd16f 100644 --- a/sys/arm/sa11x0/assabet_machdep.c +++ b/sys/arm/sa11x0/assabet_machdep.c @@ -147,7 +147,6 @@ struct pv_addr irqstack; struct pv_addr undstack; struct pv_addr abtstack; struct pv_addr kernelstack; -static struct trapframe proc0_tf; /* Static device mappings. */ static const struct pmap_devmap assabet_devmap[] = { @@ -387,12 +386,7 @@ initarm(struct arm_boot_params *abp) /* Set stack for exception handlers */ - proc_linkup0(&proc0, &thread0); - thread0.td_kstack = kernelstack.pv_va; - thread0.td_pcb = (struct pcb *) - (thread0.td_kstack + KSTACK_PAGES * PAGE_SIZE) - 1; - thread0.td_pcb->pcb_flags = 0; - thread0.td_frame = &proc0_tf; + init_proc0(kernelstack.pv_va); /* Enable MMU, I-cache, D-cache, write buffer. */ diff --git a/sys/arm/xscale/i80321/ep80219_machdep.c b/sys/arm/xscale/i80321/ep80219_machdep.c index e0cfeed58dc6..803fec1c6334 100644 --- a/sys/arm/xscale/i80321/ep80219_machdep.c +++ b/sys/arm/xscale/i80321/ep80219_machdep.c @@ -136,8 +136,6 @@ struct pv_addr abtstack; struct pv_addr kernelstack; struct pv_addr minidataclean; -static struct trapframe proc0_tf; - /* #define IQ80321_OBIO_BASE 0xfe800000UL */ /* #define IQ80321_OBIO_SIZE 0x00100000UL */ @@ -379,13 +377,7 @@ initarm(struct arm_boot_params *abp) undefined_handler_address = (u_int)undefinedinstruction_bounce; undefined_init(); - proc_linkup0(&proc0, &thread0); - thread0.td_kstack = kernelstack.pv_va; - thread0.td_pcb = (struct pcb *) - (thread0.td_kstack + KSTACK_PAGES * PAGE_SIZE) - 1; - thread0.td_pcb->pcb_flags = 0; - thread0.td_frame = &proc0_tf; - pcpup->pc_curpcb = thread0.td_pcb; + init_proc0(kernelstack.pv_va); /* Enable MMU, I-cache, D-cache, write buffer. */ diff --git a/sys/arm/xscale/i80321/iq31244_machdep.c b/sys/arm/xscale/i80321/iq31244_machdep.c index d5e7549fa282..ae642c56f801 100644 --- a/sys/arm/xscale/i80321/iq31244_machdep.c +++ b/sys/arm/xscale/i80321/iq31244_machdep.c @@ -136,8 +136,6 @@ struct pv_addr abtstack; struct pv_addr kernelstack; struct pv_addr minidataclean; -static struct trapframe proc0_tf; - #define IQ80321_OBIO_BASE 0xfe800000UL #define IQ80321_OBIO_SIZE 0x00100000UL /* Static device mappings. */ @@ -377,13 +375,7 @@ initarm(struct arm_boot_params *abp) undefined_handler_address = (u_int)undefinedinstruction_bounce; undefined_init(); - proc_linkup0(&proc0, &thread0); - thread0.td_kstack = kernelstack.pv_va; - thread0.td_pcb = (struct pcb *) - (thread0.td_kstack + KSTACK_PAGES * PAGE_SIZE) - 1; - thread0.td_pcb->pcb_flags = 0; - thread0.td_frame = &proc0_tf; - pcpup->pc_curpcb = thread0.td_pcb; + init_proc0(kernelstack.pv_va); /* Enable MMU, I-cache, D-cache, write buffer. */ diff --git a/sys/arm/xscale/i8134x/crb_machdep.c b/sys/arm/xscale/i8134x/crb_machdep.c index cb0cefc471c1..7d49d407750b 100644 --- a/sys/arm/xscale/i8134x/crb_machdep.c +++ b/sys/arm/xscale/i8134x/crb_machdep.c @@ -135,8 +135,6 @@ struct pv_addr undstack; struct pv_addr abtstack; struct pv_addr kernelstack; -static struct trapframe proc0_tf; - /* Static device mappings. */ static const struct pmap_devmap iq81342_devmap[] = { { @@ -353,13 +351,7 @@ initarm(struct arm_boot_params *abp) undefined_handler_address = (u_int)undefinedinstruction_bounce; undefined_init(); - proc_linkup0(&proc0, &thread0); - thread0.td_kstack = kernelstack.pv_va; - thread0.td_pcb = (struct pcb *) - (thread0.td_kstack + KSTACK_PAGES * PAGE_SIZE) - 1; - thread0.td_pcb->pcb_flags = 0; - thread0.td_frame = &proc0_tf; - pcpup->pc_curpcb = thread0.td_pcb; + init_proc0(kernelstack.pv_va); arm_vector_init(ARM_VECTORS_HIGH, ARM_VEC_ALL); diff --git a/sys/arm/xscale/ixp425/avila_machdep.c b/sys/arm/xscale/ixp425/avila_machdep.c index 01a770dc3e49..a91fd20c9634 100644 --- a/sys/arm/xscale/ixp425/avila_machdep.c +++ b/sys/arm/xscale/ixp425/avila_machdep.c @@ -140,8 +140,6 @@ struct pv_addr abtstack; struct pv_addr kernelstack; struct pv_addr minidataclean; -static struct trapframe proc0_tf; - /* Static device mappings. */ static const struct pmap_devmap ixp425_devmap[] = { /* Physical/Virtual address for I/O space */ @@ -443,13 +441,7 @@ initarm(struct arm_boot_params *abp) undefined_handler_address = (u_int)undefinedinstruction_bounce; undefined_init(); - proc_linkup0(&proc0, &thread0); - thread0.td_kstack = kernelstack.pv_va; - thread0.td_pcb = (struct pcb *) - (thread0.td_kstack + KSTACK_PAGES * PAGE_SIZE) - 1; - thread0.td_pcb->pcb_flags = 0; - thread0.td_frame = &proc0_tf; - pcpup->pc_curpcb = thread0.td_pcb; + init_proc0(kernelstack.pv_va); arm_vector_init(ARM_VECTORS_HIGH, ARM_VEC_ALL); diff --git a/sys/arm/xscale/pxa/pxa_machdep.c b/sys/arm/xscale/pxa/pxa_machdep.c index 56e140273acb..69311d45a961 100644 --- a/sys/arm/xscale/pxa/pxa_machdep.c +++ b/sys/arm/xscale/pxa/pxa_machdep.c @@ -136,8 +136,6 @@ struct pv_addr abtstack; struct pv_addr kernelstack; struct pv_addr minidataclean; -static struct trapframe proc0_tf; - static void pxa_probe_sdram(bus_space_tag_t, bus_space_handle_t, uint32_t *, uint32_t *); @@ -367,13 +365,7 @@ initarm(struct arm_boot_params *abp) undefined_handler_address = (u_int)undefinedinstruction_bounce; undefined_init(); - proc_linkup(&proc0, &thread0); - thread0.td_kstack = kernelstack.pv_va; - thread0.td_pcb = (struct pcb *) - (thread0.td_kstack + KSTACK_PAGES * PAGE_SIZE) - 1; - thread0.td_pcb->pcb_flags = 0; - thread0.td_frame = &proc0_tf; - pcpup->pc_curpcb = thread0.td_pcb; + init_proc0(kernelstack.pv_va); /* Enable MMU, I-cache, D-cache, write buffer. */ arm_vector_init(ARM_VECTORS_HIGH, ARM_VEC_ALL); From dc3fe0ff0e84ac0d57d06951d31ae6b528eb8b8a Mon Sep 17 00:00:00 2001 From: "Pedro F. Giffuni" Date: Sun, 10 Jun 2012 02:04:11 +0000 Subject: [PATCH 093/340] Bring a couple of libstdc++ patches from Apple's llvm-gcc project. Modified Fri Jul 10 07:44:34 2009 CDT by rafael backport part of http://gcc.gnu.org/ml/gcc-cvs/2007-10/msg00118.html The patch is for libstdc++ and it was GPL2 at the time. Modified Tue Apr 29 01:20:19 2008 CDT by asl Backport from mainline (pre-GPLv3). Fix for sizeof(const void*) > sizeof(unsigned long). Approved by: jhb (mentor) MFC after: 2 weeks --- .../libstdc++/include/bits/locale_facets.tcc | 12 ++++- contrib/libstdc++/include/bits/stl_bvector.h | 18 +++++-- contrib/libstdc++/include/bits/stl_deque.h | 14 +++++- contrib/libstdc++/include/bits/stl_list.h | 13 ++++- contrib/libstdc++/include/bits/stl_map.h | 4 +- contrib/libstdc++/include/bits/stl_multimap.h | 6 +-- contrib/libstdc++/include/bits/stl_multiset.h | 12 ++--- contrib/libstdc++/include/bits/stl_set.h | 12 ++--- contrib/libstdc++/include/bits/stl_tree.h | 49 ++++++++++++------- contrib/libstdc++/include/bits/stl_vector.h | 13 ++++- 10 files changed, 111 insertions(+), 42 deletions(-) diff --git a/contrib/libstdc++/include/bits/locale_facets.tcc b/contrib/libstdc++/include/bits/locale_facets.tcc index 8f62e1904eaa..e8b9fd2e667a 100644 --- a/contrib/libstdc++/include/bits/locale_facets.tcc +++ b/contrib/libstdc++/include/bits/locale_facets.tcc @@ -887,7 +887,11 @@ _GLIBCXX_BEGIN_LDBL_NAMESPACE const fmtflags __fmt = __io.flags(); __io.flags(__fmt & ~ios_base::basefield | ios_base::hex); - unsigned long __ul; + typedef __gnu_cxx::__conditional_type<(sizeof(void*) + <= sizeof(unsigned long)), + unsigned long, unsigned long long>::__type _UIntPtrType; + + _UIntPtrType __ul; __beg = _M_extract_int(__beg, __end, __io, __err, __ul); // Reset from hex formatted input. @@ -1309,8 +1313,12 @@ _GLIBCXX_BEGIN_LDBL_NAMESPACE | ios_base::internal); __io.flags(__flags & __fmt | (ios_base::hex | ios_base::showbase)); + typedef __gnu_cxx::__conditional_type<(sizeof(const void*) + <= sizeof(unsigned long)), + unsigned long, unsigned long long>::__type _UIntPtrType; + __s = _M_insert_int(__s, __io, __fill, - reinterpret_cast(__v)); + reinterpret_cast<_UIntPtrType>(__v)); __io.flags(__flags); return __s; } diff --git a/contrib/libstdc++/include/bits/stl_bvector.h b/contrib/libstdc++/include/bits/stl_bvector.h index 9dc26565802d..5f494edcca9b 100644 --- a/contrib/libstdc++/include/bits/stl_bvector.h +++ b/contrib/libstdc++/include/bits/stl_bvector.h @@ -385,6 +385,11 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD) _Bit_iterator _M_start; _Bit_iterator _M_finish; _Bit_type* _M_end_of_storage; + + _Bvector_impl() + : _Bit_alloc_type(), _M_start(), _M_finish(), _M_end_of_storage(0) + { } + _Bvector_impl(const _Bit_alloc_type& __a) : _Bit_alloc_type(__a), _M_start(), _M_finish(), _M_end_of_storage(0) { } @@ -405,7 +410,11 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD) get_allocator() const { return allocator_type(_M_get_Bit_allocator()); } - _Bvector_base(const allocator_type& __a) : _M_impl(__a) { } + _Bvector_base() + : _M_impl() { } + + _Bvector_base(const allocator_type& __a) + : _M_impl(__a) { } ~_Bvector_base() { this->_M_deallocate(); } @@ -480,8 +489,11 @@ template using _Base::_M_get_Bit_allocator; public: + vector() + : _Base() { } + explicit - vector(const allocator_type& __a = allocator_type()) + vector(const allocator_type& __a) : _Base(__a) { } explicit @@ -678,7 +690,7 @@ template } void - swap(vector& __x) + swap(vector& __x) { std::swap(this->_M_impl._M_start, __x._M_impl._M_start); std::swap(this->_M_impl._M_finish, __x._M_impl._M_finish); diff --git a/contrib/libstdc++/include/bits/stl_deque.h b/contrib/libstdc++/include/bits/stl_deque.h index 9da0bb7ea79e..82753697813d 100644 --- a/contrib/libstdc++/include/bits/stl_deque.h +++ b/contrib/libstdc++/include/bits/stl_deque.h @@ -380,6 +380,10 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD) typedef _Deque_iterator<_Tp, _Tp&, _Tp*> iterator; typedef _Deque_iterator<_Tp, const _Tp&, const _Tp*> const_iterator; + _Deque_base() + : _M_impl() + { _M_initialize_map(0); } + _Deque_base(const allocator_type& __a, size_t __num_elements) : _M_impl(__a) { _M_initialize_map(__num_elements); } @@ -406,6 +410,11 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD) iterator _M_start; iterator _M_finish; + _Deque_impl() + : _Tp_alloc_type(), _M_map(0), _M_map_size(0), + _M_start(), _M_finish() + { } + _Deque_impl(const _Tp_alloc_type& __a) : _Tp_alloc_type(__a), _M_map(0), _M_map_size(0), _M_start(), _M_finish() @@ -679,8 +688,11 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD) /** * @brief Default constructor creates no elements. */ + deque() + : _Base() { } + explicit - deque(const allocator_type& __a = allocator_type()) + deque(const allocator_type& __a) : _Base(__a, 0) {} /** diff --git a/contrib/libstdc++/include/bits/stl_list.h b/contrib/libstdc++/include/bits/stl_list.h index e37e5ee36f3b..57445a5ba4d2 100644 --- a/contrib/libstdc++/include/bits/stl_list.h +++ b/contrib/libstdc++/include/bits/stl_list.h @@ -305,6 +305,10 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD) { _List_node_base _M_node; + _List_impl() + : _Node_alloc_type(), _M_node() + { } + _List_impl(const _Node_alloc_type& __a) : _Node_alloc_type(__a), _M_node() { } @@ -339,6 +343,10 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD) get_allocator() const { return allocator_type(_M_get_Node_allocator()); } + _List_base() + : _M_impl() + { _M_init(); } + _List_base(const allocator_type& __a) : _M_impl(__a) { _M_init(); } @@ -468,8 +476,11 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD) /** * @brief Default constructor creates no elements. */ + list() + : _Base() { } + explicit - list(const allocator_type& __a = allocator_type()) + list(const allocator_type& __a) : _Base(__a) { } /** diff --git a/contrib/libstdc++/include/bits/stl_map.h b/contrib/libstdc++/include/bits/stl_map.h index 13e62bc220c9..62eb9714fda8 100644 --- a/contrib/libstdc++/include/bits/stl_map.h +++ b/contrib/libstdc++/include/bits/stl_map.h @@ -155,7 +155,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD) * @brief Default constructor creates no elements. */ map() - : _M_t(_Compare(), allocator_type()) { } + : _M_t() { } // for some reason this was made a separate function /** @@ -186,7 +186,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD) */ template map(_InputIterator __first, _InputIterator __last) - : _M_t(_Compare(), allocator_type()) + : _M_t() { _M_t._M_insert_unique(__first, __last); } /** diff --git a/contrib/libstdc++/include/bits/stl_multimap.h b/contrib/libstdc++/include/bits/stl_multimap.h index b11b6e409d57..bb1c1544e716 100644 --- a/contrib/libstdc++/include/bits/stl_multimap.h +++ b/contrib/libstdc++/include/bits/stl_multimap.h @@ -152,7 +152,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD) * @brief Default constructor creates no elements. */ multimap() - : _M_t(_Compare(), allocator_type()) { } + : _M_t() { } // for some reason this was made a separate function /** @@ -184,8 +184,8 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD) */ template multimap(_InputIterator __first, _InputIterator __last) - : _M_t(_Compare(), allocator_type()) - { _M_t._M_insert_equal(__first, __last); } + : _M_t() + { _M_t._M_insert_unique(__first, __last); } /** * @brief Builds a %multimap from a range. diff --git a/contrib/libstdc++/include/bits/stl_multiset.h b/contrib/libstdc++/include/bits/stl_multiset.h index 8c499c3690f6..6de5aeb3fdf1 100644 --- a/contrib/libstdc++/include/bits/stl_multiset.h +++ b/contrib/libstdc++/include/bits/stl_multiset.h @@ -134,7 +134,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD) * @brief Default constructor creates no elements. */ multiset() - : _M_t(_Compare(), allocator_type()) { } + : _M_t() { } explicit multiset(const _Compare& __comp, @@ -152,7 +152,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD) */ template multiset(_InputIterator __first, _InputIterator __last) - : _M_t(_Compare(), allocator_type()) + : _M_t() { _M_t._M_insert_equal(__first, __last); } /** @@ -180,7 +180,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD) * The newly-created %multiset uses a copy of the allocation object used * by @a x. */ - multiset(const multiset<_Key,_Compare,_Alloc>& __x) + multiset(const multiset& __x) : _M_t(__x._M_t) { } /** @@ -190,8 +190,8 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD) * All the elements of @a x are copied, but unlike the copy constructor, * the allocator object is not copied. */ - multiset<_Key,_Compare,_Alloc>& - operator=(const multiset<_Key,_Compare,_Alloc>& __x) + multiset& + operator=(const multiset& __x) { _M_t = __x._M_t; return *this; @@ -275,7 +275,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD) * std::swap(s1,s2) will feed to this function. */ void - swap(multiset<_Key, _Compare, _Alloc>& __x) + swap(multiset& __x) { _M_t.swap(__x._M_t); } // insert/erase diff --git a/contrib/libstdc++/include/bits/stl_set.h b/contrib/libstdc++/include/bits/stl_set.h index b61106aef652..a77dd8e0878c 100644 --- a/contrib/libstdc++/include/bits/stl_set.h +++ b/contrib/libstdc++/include/bits/stl_set.h @@ -138,7 +138,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD) // allocation/deallocation /// Default constructor creates no elements. set() - : _M_t(_Compare(), allocator_type()) {} + : _M_t() { } /** * @brief Default constructor creates no elements. @@ -162,7 +162,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD) */ template set(_InputIterator __first, _InputIterator __last) - : _M_t(_Compare(), allocator_type()) + : _M_t() { _M_t._M_insert_unique(__first, __last); } /** @@ -190,7 +190,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD) * The newly-created %set uses a copy of the allocation object used * by @a x. */ - set(const set<_Key,_Compare,_Alloc>& __x) + set(const set& __x) : _M_t(__x._M_t) { } /** @@ -200,8 +200,8 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD) * All the elements of @a x are copied, but unlike the copy constructor, * the allocator object is not copied. */ - set<_Key,_Compare,_Alloc>& - operator=(const set<_Key, _Compare, _Alloc>& __x) + set& + operator=(const set& __x) { _M_t = __x._M_t; return *this; @@ -283,7 +283,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD) * std::swap(s1,s2) will feed to this function. */ void - swap(set<_Key,_Compare,_Alloc>& __x) + swap(set& __x) { _M_t.swap(__x._M_t); } // insert/erase diff --git a/contrib/libstdc++/include/bits/stl_tree.h b/contrib/libstdc++/include/bits/stl_tree.h index e8718776d06d..80cf7c4b08fb 100644 --- a/contrib/libstdc++/include/bits/stl_tree.h +++ b/contrib/libstdc++/include/bits/stl_tree.h @@ -410,10 +410,19 @@ _GLIBCXX_BEGIN_NAMESPACE(std) _Rb_tree_node_base _M_header; size_type _M_node_count; // Keeps track of size of tree. - _Rb_tree_impl(const _Node_allocator& __a = _Node_allocator(), - const _Key_compare& __comp = _Key_compare()) - : _Node_allocator(__a), _M_key_compare(__comp), _M_header(), + _Rb_tree_impl() + : _Node_allocator(), _M_key_compare(), _M_header(), _M_node_count(0) + { _M_initialize(); } + + _Rb_tree_impl(const _Key_compare& __comp, const _Node_allocator& __a) + : _Node_allocator(__a), _M_key_compare(__comp), _M_header(), + _M_node_count(0) + { _M_initialize(); } + + private: + void + _M_initialize() { this->_M_header._M_color = _S_red; this->_M_header._M_parent = 0; @@ -431,11 +440,20 @@ _GLIBCXX_BEGIN_NAMESPACE(std) _Rb_tree_node_base _M_header; size_type _M_node_count; // Keeps track of size of tree. - _Rb_tree_impl(const _Node_allocator& __a = _Node_allocator(), - const _Key_compare& __comp = _Key_compare()) + _Rb_tree_impl() + : _Node_allocator(), _M_key_compare(), _M_header(), + _M_node_count(0) + { _M_initialize(); } + + _Rb_tree_impl(const _Key_compare& __comp, const _Node_allocator& __a) : _Node_allocator(__a), _M_key_compare(__comp), _M_header(), _M_node_count(0) - { + { _M_initialize(); } + + private: + void + _M_initialize() + { this->_M_header._M_color = _S_red; this->_M_header._M_parent = 0; this->_M_header._M_left = &this->_M_header; @@ -568,16 +586,13 @@ _GLIBCXX_BEGIN_NAMESPACE(std) _Rb_tree() { } - _Rb_tree(const _Compare& __comp) - : _M_impl(allocator_type(), __comp) + _Rb_tree(const _Compare& __comp, + const allocator_type& __a = allocator_type()) + : _M_impl(__comp, __a) { } - _Rb_tree(const _Compare& __comp, const allocator_type& __a) - : _M_impl(__a, __comp) - { } - - _Rb_tree(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x) - : _M_impl(__x._M_get_Node_allocator(), __x._M_impl._M_key_compare) + _Rb_tree(const _Rb_tree& __x) + : _M_impl(__x._M_impl._M_key_compare, __x._M_get_Node_allocator()) { if (__x._M_root() != 0) { @@ -591,8 +606,8 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ~_Rb_tree() { _M_erase(_M_begin()); } - _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& - operator=(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x); + _Rb_tree& + operator=(const _Rb_tree& __x); // Accessors. _Compare @@ -653,7 +668,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) { return get_allocator().max_size(); } void - swap(_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __t); + swap(_Rb_tree& __t); // Insert/erase. pair diff --git a/contrib/libstdc++/include/bits/stl_vector.h b/contrib/libstdc++/include/bits/stl_vector.h index a81c5974d997..1b794dc28ee1 100644 --- a/contrib/libstdc++/include/bits/stl_vector.h +++ b/contrib/libstdc++/include/bits/stl_vector.h @@ -84,6 +84,11 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD) _Tp* _M_start; _Tp* _M_finish; _Tp* _M_end_of_storage; + + _Vector_impl() + : _Tp_alloc_type(), _M_start(0), _M_finish(0), _M_end_of_storage(0) + { } + _Vector_impl(_Tp_alloc_type const& __a) : _Tp_alloc_type(__a), _M_start(0), _M_finish(0), _M_end_of_storage(0) { } @@ -104,6 +109,9 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD) get_allocator() const { return allocator_type(_M_get_Tp_allocator()); } + _Vector_base() + : _M_impl() { } + _Vector_base(const allocator_type& __a) : _M_impl(__a) { } @@ -194,8 +202,11 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD) /** * @brief Default constructor creates no elements. */ + vector() + : _Base() { } + explicit - vector(const allocator_type& __a = allocator_type()) + vector(const allocator_type& __a) : _Base(__a) { } From 8a6c6fadc79489fcdb6ba3480db0ab9f9e82f699 Mon Sep 17 00:00:00 2001 From: Mitsuru IWASAKI Date: Sun, 10 Jun 2012 02:38:51 +0000 Subject: [PATCH 094/340] Some fixes for r236772. - Remove cpuset stopped_cpus which is no longer used. - Add a short comment for cpuset suspended_cpus clearing. - Fix the un-ordered x86/acpica/acpi_wakeup.c in conf/files.amd64 and i386. Pointed-out by: attilio@ --- sys/amd64/amd64/mp_machdep.c | 4 ++-- sys/conf/files.amd64 | 2 +- sys/conf/files.i386 | 2 +- sys/i386/i386/mp_machdep.c | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/sys/amd64/amd64/mp_machdep.c b/sys/amd64/amd64/mp_machdep.c index 903163e6edfd..8cce30418ce5 100644 --- a/sys/amd64/amd64/mp_machdep.c +++ b/sys/amd64/amd64/mp_machdep.c @@ -1416,7 +1416,6 @@ cpususpend_handler(void) if (savectx(susppcbs[cpu])) { ctx_fpusave(susppcbs[cpu]->pcb_fpususpend); wbinvd(); - CPU_SET_ATOMIC(cpu, &stopped_cpus); CPU_SET_ATOMIC(cpu, &suspended_cpus); } else { pmap_init_pat(); @@ -1426,6 +1425,8 @@ cpususpend_handler(void) initializecpu(); PCPU_SET(switchtime, 0); PCPU_SET(switchticks, ticks); + + /* Indicate that we are resumed */ CPU_CLR_ATOMIC(cpu, &suspended_cpus); } @@ -1434,7 +1435,6 @@ cpususpend_handler(void) ia32_pause(); CPU_CLR_ATOMIC(cpu, &started_cpus); - CPU_CLR_ATOMIC(cpu, &stopped_cpus); /* Resume MCA and local APIC */ mca_resume(); diff --git a/sys/conf/files.amd64 b/sys/conf/files.amd64 index 1615ce68b21c..9aa61e2adb61 100644 --- a/sys/conf/files.amd64 +++ b/sys/conf/files.amd64 @@ -93,7 +93,6 @@ acpi_wakedata.h optional acpi \ no-obj no-implicit-rule before-depend \ clean "acpi_wakedata.h" # -x86/acpica/acpi_wakeup.c optional acpi amd64/amd64/amd64_mem.c optional mem #amd64/amd64/apic_vector.S standard amd64/amd64/atomic.c standard @@ -453,6 +452,7 @@ contrib/x86emu/x86emu.c optional x86bios | atkbd | dpms | vesa # x86/acpica/OsdEnvironment.c optional acpi x86/acpica/acpi_apm.c optional acpi +x86/acpica/acpi_wakeup.c optional acpi x86/acpica/madt.c optional acpi x86/acpica/srat.c optional acpi x86/bios/smbios.c optional smbios diff --git a/sys/conf/files.i386 b/sys/conf/files.i386 index c9fcfb1291fc..f3de1637242e 100644 --- a/sys/conf/files.i386 +++ b/sys/conf/files.i386 @@ -381,7 +381,6 @@ acpi_wakedata.h optional acpi \ no-obj no-implicit-rule before-depend \ clean "acpi_wakedata.h" # -x86/acpica/acpi_wakeup.c optional acpi i386/bios/apm.c optional apm i386/bios/mca_machdep.c optional mca i386/bios/smapi.c optional smapi @@ -505,6 +504,7 @@ compat/x86bios/x86bios.c optional x86bios | atkbd | dpms | vesa # x86/acpica/OsdEnvironment.c optional acpi x86/acpica/acpi_apm.c optional acpi +x86/acpica/acpi_wakeup.c optional acpi x86/acpica/madt.c optional acpi apic x86/acpica/srat.c optional acpi x86/bios/smbios.c optional smbios diff --git a/sys/i386/i386/mp_machdep.c b/sys/i386/i386/mp_machdep.c index e1f9a70720d6..77cbfc5cacfb 100644 --- a/sys/i386/i386/mp_machdep.c +++ b/sys/i386/i386/mp_machdep.c @@ -1514,12 +1514,13 @@ cpususpend_handler(void) if (savectx(susppcbs[cpu])) { wbinvd(); - CPU_SET_ATOMIC(cpu, &stopped_cpus); CPU_SET_ATOMIC(cpu, &suspended_cpus); } else { pmap_init_pat(); PCPU_SET(switchtime, 0); PCPU_SET(switchticks, ticks); + + /* Indicate that we are resumed */ CPU_CLR_ATOMIC(cpu, &suspended_cpus); } @@ -1528,7 +1529,6 @@ cpususpend_handler(void) ia32_pause(); CPU_CLR_ATOMIC(cpu, &started_cpus); - CPU_CLR_ATOMIC(cpu, &stopped_cpus); /* Resume MCA and local APIC */ mca_resume(); From 8849ae7256a6fb3ae9ffcbf44668e3352c42838f Mon Sep 17 00:00:00 2001 From: Pawel Jakub Dawidek Date: Sun, 10 Jun 2012 06:31:54 +0000 Subject: [PATCH 095/340] Simplify fdtofp(). MFC after: 1 month --- sys/kern/kern_descrip.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c index 3a5b318bb71e..2dc743b0a327 100644 --- a/sys/kern/kern_descrip.c +++ b/sys/kern/kern_descrip.c @@ -430,13 +430,13 @@ sys_fcntl(struct thread *td, struct fcntl_args *uap) static inline struct file * fdtofp(int fd, struct filedesc *fdp) { - struct file *fp; FILEDESC_LOCK_ASSERT(fdp); - if ((unsigned)fd >= fdp->fd_nfiles || - (fp = fdp->fd_ofiles[fd]) == NULL) + + if ((unsigned)fd >= fdp->fd_nfiles) return (NULL); - return (fp); + + return (fdp->fd_ofiles[fd]); } static inline int From 94fe37d25c568ddc03e9d7551dd5f96ff73a939f Mon Sep 17 00:00:00 2001 From: Adrian Chadd Date: Sun, 10 Jun 2012 06:42:18 +0000 Subject: [PATCH 096/340] Add a new ioctl for ath(4) which returns the aggregate statistics. --- sys/dev/ath/if_ath.c | 3 +++ sys/dev/ath/if_athioctl.h | 1 + 2 files changed, 4 insertions(+) diff --git a/sys/dev/ath/if_ath.c b/sys/dev/ath/if_ath.c index dcead7ac2f47..248acdb89b87 100644 --- a/sys/dev/ath/if_ath.c +++ b/sys/dev/ath/if_ath.c @@ -4848,6 +4848,9 @@ ath_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data) sc->sc_stats.ast_tx_rate |= IEEE80211_RATE_MCS; return copyout(&sc->sc_stats, ifr->ifr_data, sizeof (sc->sc_stats)); + case SIOCGATHAGSTATS: + return copyout(&sc->sc_aggr_stats, + ifr->ifr_data, sizeof (sc->sc_aggr_stats)); case SIOCZATHSTATS: error = priv_check(curthread, PRIV_DRIVER); if (error == 0) { diff --git a/sys/dev/ath/if_athioctl.h b/sys/dev/ath/if_athioctl.h index 8627a6bf88a0..0f04b8c1010a 100644 --- a/sys/dev/ath/if_athioctl.h +++ b/sys/dev/ath/if_athioctl.h @@ -166,6 +166,7 @@ struct ath_stats { #define SIOCGATHSTATS _IOWR('i', 137, struct ifreq) #define SIOCZATHSTATS _IOWR('i', 139, struct ifreq) +#define SIOCGATHAGSTATS _IOWR('i', 141, struct ifreq) struct ath_diag { char ad_name[IFNAMSIZ]; /* if name, e.g. "ath0" */ From 343de1138d726b20951a7dd1d090ee3f681797f7 Mon Sep 17 00:00:00 2001 From: Adrian Chadd Date: Sun, 10 Jun 2012 06:44:04 +0000 Subject: [PATCH 097/340] Flesh out 'athaggrstats', a utility which will display the aggregation specific statistics for ath(4). --- tools/tools/ath/athaggrstats/Makefile | 26 ++ tools/tools/ath/athaggrstats/athaggrstats.c | 404 ++++++++++++++++++++ tools/tools/ath/athaggrstats/athaggrstats.h | 56 +++ tools/tools/ath/athaggrstats/main.c | 159 ++++++++ tools/tools/ath/athaggrstats/statfoo.c | 206 ++++++++++ tools/tools/ath/athaggrstats/statfoo.h | 128 +++++++ 6 files changed, 979 insertions(+) create mode 100644 tools/tools/ath/athaggrstats/Makefile create mode 100644 tools/tools/ath/athaggrstats/athaggrstats.c create mode 100644 tools/tools/ath/athaggrstats/athaggrstats.h create mode 100644 tools/tools/ath/athaggrstats/main.c create mode 100644 tools/tools/ath/athaggrstats/statfoo.c create mode 100644 tools/tools/ath/athaggrstats/statfoo.h diff --git a/tools/tools/ath/athaggrstats/Makefile b/tools/tools/ath/athaggrstats/Makefile new file mode 100644 index 000000000000..91d44f78cfc5 --- /dev/null +++ b/tools/tools/ath/athaggrstats/Makefile @@ -0,0 +1,26 @@ +# $FreeBSD$ + +.PATH: ${.CURDIR}/../../../../sys/dev/ath/ath_hal + +PROG= athaggrstats + +SRCS= main.c statfoo.c athaggrstats.c opt_ah.h ah_osdep.h + +CLEANFILES+= opt_ah.h + +.include <../Makefile.inc> + +CFLAGS+=-DATH_SUPPORT_ANI +CFLAGS+=-DATH_SUPPORT_TDMA + +opt_ah.h: + echo "#define AH_DEBUG 1" > opt_ah.h + echo "#define AH_DEBUG_COUNTRY 1" >> opt_ah.h + echo "#define AH_SUPPORT_AR5416 1" >> opt_ah.h + +ah_osdep.h: + echo 'typedef void *HAL_SOFTC;' >ah_osdep.h + echo 'typedef int HAL_BUS_TAG;' >>ah_osdep.h + echo 'typedef void *HAL_BUS_HANDLE;' >>ah_osdep.h + +.include diff --git a/tools/tools/ath/athaggrstats/athaggrstats.c b/tools/tools/ath/athaggrstats/athaggrstats.c new file mode 100644 index 000000000000..c42d180f41a7 --- /dev/null +++ b/tools/tools/ath/athaggrstats/athaggrstats.c @@ -0,0 +1,404 @@ +/*- + * Copyright (c) 2002-2009 Sam Leffler, Errno Consulting + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer, + * without modification. + * 2. Redistributions in binary form must reproduce at minimum a disclaimer + * similar to the "NO WARRANTY" disclaimer below ("Disclaimer") and any + * redistribution must be conditioned upon including a substantially + * similar Disclaimer requirement for further binary redistribution. + * + * NO WARRANTY + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTIBILITY + * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL + * THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, + * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER + * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGES. + * + * $FreeBSD$ + */ + +#include "opt_ah.h" + +/* + * ath statistics class. + */ +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include "ah.h" +#include "ah_desc.h" +#include "net80211/ieee80211_ioctl.h" +#include "net80211/ieee80211_radiotap.h" +#include "if_athioctl.h" + +#include "athaggrstats.h" + +#define NOTPRESENT { 0, "", "" } + +#define AFTER(prev) ((prev)+1) + +static const struct fmt athaggrstats[] = { + +#define S_SINGLE_PKT 0 + { 4, "singlepkt", "spkt", "single frames scheduled" }, +#define S_NONBAW_PKT AFTER(S_SINGLE_PKT) + { 5, "nonbawpkt", "nbpkt", "frames outside of the BAW" }, +#define S_AGGR_PKT AFTER(S_NONBAW_PKT) + { 6, "aggrpkt", "aggpkt", "aggregate frames scheduled" }, +#define S_BAW_CLOSED_SINGLE_PKT AFTER(S_AGGR_PKT) + { 8, "bawclosedpkt", "bawclpkt", "single frames due to closed BAW" }, +#define S_LOW_HWQ_SINGLE_PKT AFTER(S_BAW_CLOSED_SINGLE_PKT) + { 6, "lhsinglepkt", "lhspkt", "single frames scheduled due to low HWQ depth" }, +#define S_SCHED_NOPKT AFTER(S_LOW_HWQ_SINGLE_PKT) + { 6, "schednopkt", "snopkt", "sched called with no frames" }, +#define S_RTS_AGGR_LIMITED AFTER(S_SCHED_NOPKT) + { 8, "rtsaggrlimit", "rtslimit", "RTS limited aggregates" }, +#define S_PKT0 AFTER(S_RTS_AGGR_LIMITED) + { 2, "p0", "p0", "" }, +#define S_PKT1 AFTER(S_PKT0) + { 2, "p1", "p1", "" }, +#define S_PKT2 AFTER(S_PKT1) + { 2, "p2", "p2", "" }, +#define S_PKT3 AFTER(S_PKT2) + { 2, "p3", "p3", "" }, +#define S_PKT4 AFTER(S_PKT3) + { 2, "p4", "p4", "" }, +#define S_PKT5 AFTER(S_PKT4) + { 2, "p5", "p5", "" }, +#define S_PKT6 AFTER(S_PKT5) + { 2, "p6", "p6", "" }, +#define S_PKT7 AFTER(S_PKT6) + { 2, "p7", "p7", "" }, +#define S_PKT8 AFTER(S_PKT7) + { 2, "p8", "p8", "" }, +#define S_PKT9 AFTER(S_PKT8) + { 2, "p9", "p9", "" }, +#define S_PKT10 AFTER(S_PKT9) + { 3, "p10", "p10", "" }, +#define S_PKT11 AFTER(S_PKT10) + { 3, "p11", "p11", "" }, +#define S_PKT12 AFTER(S_PKT11) + { 3, "p12", "p12", "" }, +#define S_PKT13 AFTER(S_PKT12) + { 3, "p13", "p13", "" }, +#define S_PKT14 AFTER(S_PKT13) + { 3, "p14", "p14", "" }, +#define S_PKT15 AFTER(S_PKT14) + { 3, "p15", "p15", "" }, +#define S_PKT16 AFTER(S_PKT15) + { 3, "p16", "p16", "" }, +#define S_PKT17 AFTER(S_PKT16) + { 3, "p17", "p17", "" }, +#define S_PKT18 AFTER(S_PKT17) + { 3, "p18", "p18", "" }, +#define S_PKT19 AFTER(S_PKT18) + { 3, "p19", "p19", "" }, +#define S_PKT20 AFTER(S_PKT19) + { 3, "p20", "p20", "" }, +#define S_PKT21 AFTER(S_PKT20) + { 3, "p21", "p21", "" }, +#define S_PKT22 AFTER(S_PKT21) + { 3, "p22", "p22", "" }, +#define S_PKT23 AFTER(S_PKT22) + { 3, "p23", "p23", "" }, +#define S_PKT24 AFTER(S_PKT23) + { 3, "p24", "p24", "" }, +#define S_PKT25 AFTER(S_PKT24) + { 3, "p25", "p25", "" }, +#define S_PKT26 AFTER(S_PKT25) + { 3, "p26", "p26", "" }, +#define S_PKT27 AFTER(S_PKT26) + { 3, "p27", "p27", "" }, +#define S_PKT28 AFTER(S_PKT27) + { 3, "p28", "p28", "" }, +#define S_PKT29 AFTER(S_PKT28) + { 3, "p29", "p29", "" }, +#define S_PKT30 AFTER(S_PKT29) + { 3, "p30", "p30", "" }, +#define S_PKT31 AFTER(S_PKT30) + { 3, "p31", "p31", "" }, +}; + +#define S_LAST S_RTS_AGGR_LIMITED +#define S_MAX (S_PKT31 + 1) + +struct athaggrstatfoo_p { + struct athaggrstatfoo base; + int s; + int optstats; + struct ifreq ifr; + struct ath_diag atd; + struct ath_tx_aggr_stats cur; + struct ath_tx_aggr_stats total; +}; + +static void +ath_setifname(struct athaggrstatfoo *wf0, const char *ifname) +{ + struct athaggrstatfoo_p *wf = (struct athaggrstatfoo_p *) wf0; + + strncpy(wf->ifr.ifr_name, ifname, sizeof (wf->ifr.ifr_name)); +} + +static void +ath_zerostats(struct athaggrstatfoo *wf0) +{ +#if 0 + struct athaggrstatfoo_p *wf = (struct athaggrstatfoo_p *) wf0; + + if (ioctl(wf->s, SIOCZATHSTATS, &wf->ifr) < 0) + err(-1, wf->ifr.ifr_name); +#endif +} + +static void +ath_collect(struct athaggrstatfoo_p *wf, struct ath_tx_aggr_stats *stats) +{ + wf->ifr.ifr_data = (caddr_t) stats; + if (ioctl(wf->s, SIOCGATHAGSTATS, &wf->ifr) < 0) + err(1, wf->ifr.ifr_name); +} + +static void +ath_collect_cur(struct statfoo *sf) +{ + struct athaggrstatfoo_p *wf = (struct athaggrstatfoo_p *) sf; + + ath_collect(wf, &wf->cur); +} + +static void +ath_collect_tot(struct statfoo *sf) +{ + struct athaggrstatfoo_p *wf = (struct athaggrstatfoo_p *) sf; + + ath_collect(wf, &wf->total); +} + +static void +ath_update_tot(struct statfoo *sf) +{ + struct athaggrstatfoo_p *wf = (struct athaggrstatfoo_p *) sf; + + wf->total = wf->cur; +} + +static void +snprintrate(char b[], size_t bs, int rate) +{ + if (rate & IEEE80211_RATE_MCS) + snprintf(b, bs, "MCS%u", rate &~ IEEE80211_RATE_MCS); + else if (rate & 1) + snprintf(b, bs, "%u.5M", rate / 2); + else + snprintf(b, bs, "%uM", rate / 2); +} + +static int +ath_get_curstat(struct statfoo *sf, int s, char b[], size_t bs) +{ + struct athaggrstatfoo_p *wf = (struct athaggrstatfoo_p *) sf; +#define STAT(x) \ + snprintf(b, bs, "%u", wf->cur.aggr_##x - wf->total.aggr_##x); return 1 +#define PKT(x) \ + snprintf(b, bs, "%u", wf->cur.aggr_pkts[x] - wf->total.aggr_pkts[x]); return 1 + + switch (s) { + case S_SINGLE_PKT: STAT(single_pkt); + case S_NONBAW_PKT: STAT(nonbaw_pkt); + case S_AGGR_PKT: STAT(aggr_pkt); + case S_BAW_CLOSED_SINGLE_PKT: STAT(baw_closed_single_pkt); + case S_LOW_HWQ_SINGLE_PKT: STAT(low_hwq_single_pkt); + case S_SCHED_NOPKT: STAT(sched_nopkt); + case S_RTS_AGGR_LIMITED: STAT(rts_aggr_limited); + case S_PKT0: PKT(0); + case S_PKT1: PKT(1); + case S_PKT2: PKT(2); + case S_PKT3: PKT(3); + case S_PKT4: PKT(4); + case S_PKT5: PKT(5); + case S_PKT6: PKT(6); + case S_PKT7: PKT(7); + case S_PKT8: PKT(8); + case S_PKT9: PKT(9); + case S_PKT10: PKT(10); + case S_PKT11: PKT(11); + case S_PKT12: PKT(12); + case S_PKT13: PKT(13); + case S_PKT14: PKT(14); + case S_PKT15: PKT(15); + case S_PKT16: PKT(16); + case S_PKT17: PKT(17); + case S_PKT18: PKT(18); + case S_PKT19: PKT(19); + case S_PKT20: PKT(20); + case S_PKT21: PKT(21); + case S_PKT22: PKT(22); + case S_PKT23: PKT(23); + case S_PKT24: PKT(24); + case S_PKT25: PKT(25); + case S_PKT26: PKT(26); + case S_PKT27: PKT(27); + case S_PKT28: PKT(28); + case S_PKT29: PKT(29); + case S_PKT30: PKT(30); + case S_PKT31: PKT(31); + } + b[0] = '\0'; + return 0; +#undef PKT +#undef STAT +} + +static int +ath_get_totstat(struct statfoo *sf, int s, char b[], size_t bs) +{ + struct athaggrstatfoo_p *wf = (struct athaggrstatfoo_p *) sf; +#define STAT(x) \ + snprintf(b, bs, "%u", wf->total.aggr_##x); return 1 +#define PKT(x) \ + snprintf(b, bs, "%u", wf->total.aggr_pkts[x]); return 1 + + switch (s) { + case S_SINGLE_PKT: STAT(single_pkt); + case S_NONBAW_PKT: STAT(nonbaw_pkt); + case S_AGGR_PKT: STAT(aggr_pkt); + case S_BAW_CLOSED_SINGLE_PKT: STAT(baw_closed_single_pkt); + case S_LOW_HWQ_SINGLE_PKT: STAT(low_hwq_single_pkt); + case S_SCHED_NOPKT: STAT(sched_nopkt); + case S_RTS_AGGR_LIMITED: STAT(rts_aggr_limited); + case S_PKT0: PKT(0); + case S_PKT1: PKT(1); + case S_PKT2: PKT(2); + case S_PKT3: PKT(3); + case S_PKT4: PKT(4); + case S_PKT5: PKT(5); + case S_PKT6: PKT(6); + case S_PKT7: PKT(7); + case S_PKT8: PKT(8); + case S_PKT9: PKT(9); + case S_PKT10: PKT(10); + case S_PKT11: PKT(11); + case S_PKT12: PKT(12); + case S_PKT13: PKT(13); + case S_PKT14: PKT(14); + case S_PKT15: PKT(15); + case S_PKT16: PKT(16); + case S_PKT17: PKT(17); + case S_PKT18: PKT(18); + case S_PKT19: PKT(19); + case S_PKT20: PKT(20); + case S_PKT21: PKT(21); + case S_PKT22: PKT(22); + case S_PKT23: PKT(23); + case S_PKT24: PKT(24); + case S_PKT25: PKT(25); + case S_PKT26: PKT(26); + case S_PKT27: PKT(27); + case S_PKT28: PKT(28); + case S_PKT29: PKT(29); + case S_PKT30: PKT(30); + case S_PKT31: PKT(31); + } + b[0] = '\0'; + return 0; +#undef PKT +#undef STAT +} + +static void +ath_print_verbose(struct statfoo *sf, FILE *fd) +{ + struct athaggrstatfoo_p *wf = (struct athaggrstatfoo_p *) sf; + const struct fmt *f; + char s[32]; + const char *indent; + int i, width; + + width = 0; + for (i = 0; i < S_LAST; i++) { + f = &sf->stats[i]; + if (f->width > width) + width = f->width; + } + for (i = 0; i < S_LAST; i++) { + if (ath_get_totstat(sf, i, s, sizeof(s)) && strcmp(s, "0")) { + indent = ""; + fprintf(fd, "%s%-*s %s\n", indent, width, s, + athaggrstats[i].desc); + } + } + + fprintf(fd, "\nAggregate size profile:\n\n"); + for (i = 0; i < 64; i++) { + fprintf(fd, "%2d: %12u%s", + i, + wf->total.aggr_pkts[i], + (i % 4 == 3) ? "\n" : " "); + } + fprintf(fd, "\n"); +} + +STATFOO_DEFINE_BOUNCE(athaggrstatfoo) + +struct athaggrstatfoo * +athaggrstats_new(const char *ifname, const char *fmtstring) +{ +#define N(a) (sizeof(a) / sizeof(a[0])) + struct athaggrstatfoo_p *wf; + + wf = calloc(1, sizeof(struct athaggrstatfoo_p)); + if (wf != NULL) { + statfoo_init(&wf->base.base, "athaggrstats", + athaggrstats, N(athaggrstats)); + /* override base methods */ + wf->base.base.collect_cur = ath_collect_cur; + wf->base.base.collect_tot = ath_collect_tot; + wf->base.base.get_curstat = ath_get_curstat; + wf->base.base.get_totstat = ath_get_totstat; + wf->base.base.update_tot = ath_update_tot; + wf->base.base.print_verbose = ath_print_verbose; + + /* setup bounce functions for public methods */ + STATFOO_BOUNCE(wf, athaggrstatfoo); + + /* setup our public methods */ + wf->base.setifname = ath_setifname; +#if 0 + wf->base.setstamac = wlan_setstamac; +#endif + wf->base.zerostats = ath_zerostats; + wf->s = socket(AF_INET, SOCK_DGRAM, 0); + if (wf->s < 0) + err(1, "socket"); + + ath_setifname(&wf->base, ifname); + wf->base.setfmt(&wf->base, fmtstring); + } + return &wf->base; +#undef N +} diff --git a/tools/tools/ath/athaggrstats/athaggrstats.h b/tools/tools/ath/athaggrstats/athaggrstats.h new file mode 100644 index 000000000000..8654a6a1f038 --- /dev/null +++ b/tools/tools/ath/athaggrstats/athaggrstats.h @@ -0,0 +1,56 @@ +/*- + * Copyright (c) 2002-2007 Sam Leffler, Errno Consulting + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer, + * without modification. + * 2. Redistributions in binary form must reproduce at minimum a disclaimer + * similar to the "NO WARRANTY" disclaimer below ("Disclaimer") and any + * redistribution must be conditioned upon including a substantially + * similar Disclaimer requirement for further binary redistribution. + * + * NO WARRANTY + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTIBILITY + * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL + * THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, + * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER + * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGES. + * + * $FreeBSD$ + */ + +#ifndef _ATHAGGRSTATS_H_ +#define _ATHAGGRSTATS_H_ + +#include "statfoo.h" + +/* + * ath statistics class. + */ +struct athaggrstatfoo { + struct statfoo base; + + STATFOO_DECL_METHODS(struct athaggrstatfoo *); + + /* set the network interface name for collection */ + void (*setifname)(struct athaggrstatfoo *, const char *ifname); + /* set the mac address of the associated station/ap */ + void (*setstamac)(struct athaggrstatfoo *, const uint8_t mac[]); + /* zero in-kernel statistics */ + void (*zerostats)(struct athaggrstatfoo *); +}; + +struct athaggrstatfoo *athaggrstats_new(const char *ifname, + const char *fmtstring); + +#endif /* _ATHAGGRSTATS_H_ */ diff --git a/tools/tools/ath/athaggrstats/main.c b/tools/tools/ath/athaggrstats/main.c new file mode 100644 index 000000000000..75e5dbdbb005 --- /dev/null +++ b/tools/tools/ath/athaggrstats/main.c @@ -0,0 +1,159 @@ +/*- + * Copyright (c) 2002-2009 Sam Leffler, Errno Consulting + * 2012, Adrian Chadd + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer, + * without modification. + * 2. Redistributions in binary form must reproduce at minimum a disclaimer + * similar to the "NO WARRANTY" disclaimer below ("Disclaimer") and any + * redistribution must be conditioned upon including a substantially + * similar Disclaimer requirement for further binary redistribution. + * + * NO WARRANTY + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTIBILITY + * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL + * THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, + * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER + * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGES. + * + * $FreeBSD$ + */ + +/* + * Simple Atheros-specific tool to inspect and monitor software queue + * and aggregate statistics. + * + * athaggrstats [-i interface] [-bz] [-l] [-o fmtstring] [interval] + * + * (default interface is ath0). If interval is specified a rolling output + * a la netstat -i is displayed every interval seconds. The format of + * the rolling display can be controlled a la ps. The -l option will + * print a list of all possible statistics for use with the -o option. + */ + +#include +#include +#include +#include +#include +#include + +#include "athaggrstats.h" + +static struct { + const char *tag; + const char *fmt; +} tags[] = { + { "default", + "singlepkt,nonbawpkt,aggrpkt,bawclosedpkt,lhsinglepkt,schednopkt,rtsaggrlimit" + }, +}; + +static const char * +getfmt(const char *tag) +{ +#define N(a) (sizeof(a)/sizeof(a[0])) + int i; + for (i = 0; i < N(tags); i++) + if (strcasecmp(tags[i].tag, tag) == 0) + return tags[i].fmt; + return tag; +#undef N +} + +static int signalled; + +static void +catchalarm(int signo __unused) +{ + signalled = 1; +} + +int +main(int argc, char *argv[]) +{ + struct athaggrstatfoo *wf; + const char *ifname; + int c, banner = 1; + + ifname = getenv("ATH"); + if (ifname == NULL) + ifname = "ath0"; + wf = athaggrstats_new(ifname, getfmt("default")); + while ((c = getopt(argc, argv, "bi:lo:z")) != -1) { + switch (c) { + case 'b': + banner = 0; + break; + case 'i': + wf->setifname(wf, optarg); + break; + case 'l': + wf->print_fields(wf, stdout); + return 0; + case 'o': + wf->setfmt(wf, getfmt(optarg)); + break; + case 'z': + wf->zerostats(wf); + break; + default: + errx(-1, "usage: %s [-a] [-i ifname] [-l] [-o fmt] [-z] [interval]\n", argv[0]); + /*NOTREACHED*/ + } + } + argc -= optind; + argv += optind; + + if (argc > 0) { + u_long interval = strtoul(argv[0], NULL, 0); + int line, omask; + + if (interval < 1) + interval = 1; + signal(SIGALRM, catchalarm); + signalled = 0; + alarm(interval); + banner: + if (banner) + wf->print_header(wf, stdout); + line = 0; + loop: + if (line != 0) { + wf->collect_cur(wf); + wf->print_current(wf, stdout); + wf->update_tot(wf); + } else { + wf->collect_tot(wf); + wf->print_total(wf, stdout); + } + fflush(stdout); + omask = sigblock(sigmask(SIGALRM)); + if (!signalled) + sigpause(0); + sigsetmask(omask); + signalled = 0; + alarm(interval); + line++; + if (line == 21) /* XXX tty line count */ + goto banner; + else + goto loop; + /*NOTREACHED*/ + } else { + wf->collect_tot(wf); + wf->print_verbose(wf, stdout); + } + return 0; +} diff --git a/tools/tools/ath/athaggrstats/statfoo.c b/tools/tools/ath/athaggrstats/statfoo.c new file mode 100644 index 000000000000..eb39e25bbab8 --- /dev/null +++ b/tools/tools/ath/athaggrstats/statfoo.c @@ -0,0 +1,206 @@ +/*- + * Copyright (c) 2002-2007 Sam Leffler, Errno Consulting + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer, + * without modification. + * 2. Redistributions in binary form must reproduce at minimum a disclaimer + * similar to the "NO WARRANTY" disclaimer below ("Disclaimer") and any + * redistribution must be conditioned upon including a substantially + * similar Disclaimer requirement for further binary redistribution. + * + * NO WARRANTY + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTIBILITY + * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL + * THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, + * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER + * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGES. + * + * $FreeBSD$ + */ + +#include +#include + +#include "statfoo.h" + +static void +statfoo_setfmt(struct statfoo *sf, const char *fmt0) +{ +#define N(a) (sizeof(a)/sizeof(a[0])) + char fmt[4096]; + char *fp, *tok; + int i, j; + + j = 0; + strlcpy(fmt, fmt0, sizeof(fmt)); + for (fp = fmt; (tok = strsep(&fp, ", ")) != NULL;) { + for (i = 0; i < sf->nstats; i++) + if (strcasecmp(tok, sf->stats[i].name) == 0) + break; + if (i >= sf->nstats) { + fprintf(stderr, "%s: unknown statistic name \"%s\" " + "skipped\n", sf->name, tok); + continue; + } + if (j+3 > sizeof(sf->fmts)) { + fprintf(stderr, "%s: not enough room for all stats; " + "stopped at %s\n", sf->name, tok); + break; + } + if (j != 0) + sf->fmts[j++] = ' '; + sf->fmts[j++] = FMTS_IS_STAT; + sf->fmts[j++] = i & 0xff; + sf->fmts[j++] = (i >> 8) & 0xff; + } + sf->fmts[j] = '\0'; +#undef N +} + +static void +statfoo_collect(struct statfoo *sf) +{ + fprintf(stderr, "%s: don't know how to collect data\n", sf->name); +} + +static void +statfoo_update_tot(struct statfoo *sf) +{ + fprintf(stderr, "%s: don't know how to update total data\n", sf->name); +} + +static int +statfoo_get(struct statfoo *sf, int s, char b[], size_t bs) +{ + fprintf(stderr, "%s: don't know how to get stat #%u\n", sf->name, s); + return 0; +} + +static void +statfoo_print_header(struct statfoo *sf, FILE *fd) +{ + const unsigned char *cp; + int i; + const struct fmt *f; + + for (cp = sf->fmts; *cp != '\0'; cp++) { + if (*cp == FMTS_IS_STAT) { + i = *(++cp); + i |= ((int) *(++cp)) << 8; + f = &sf->stats[i]; + fprintf(fd, "%*s", f->width, f->label); + } else + putc(*cp, fd); + } + putc('\n', fd); +} + +static void +statfoo_print_current(struct statfoo *sf, FILE *fd) +{ + char buf[32]; + const unsigned char *cp; + int i; + const struct fmt *f; + + for (cp = sf->fmts; *cp != '\0'; cp++) { + if (*cp == FMTS_IS_STAT) { + i = *(++cp); + i |= ((int) *(++cp)) << 8; + f = &sf->stats[i]; + if (sf->get_curstat(sf, i, buf, sizeof(buf))) + fprintf(fd, "%*s", f->width, buf); + } else + putc(*cp, fd); + } + putc('\n', fd); +} + +static void +statfoo_print_total(struct statfoo *sf, FILE *fd) +{ + char buf[32]; + const unsigned char *cp; + const struct fmt *f; + int i; + + for (cp = sf->fmts; *cp != '\0'; cp++) { + if (*cp == FMTS_IS_STAT) { + i = *(++cp); + i |= ((int) *(++cp)) << 8; + f = &sf->stats[i]; + if (sf->get_totstat(sf, i, buf, sizeof(buf))) + fprintf(fd, "%*s", f->width, buf); + } else + putc(*cp, fd); + } + putc('\n', fd); +} + +static void +statfoo_print_verbose(struct statfoo *sf, FILE *fd) +{ + const struct fmt *f; + char s[32]; + int i, width; + + width = 0; + for (i = 0; i < sf->nstats; i++) { + f = &sf->stats[i]; + if (f->width > width) + width = f->width; + } + for (i = 0; i < sf->nstats; i++) { + f = &sf->stats[i]; + if (sf->get_totstat(sf, i, s, sizeof(s)) && strcmp(s, "0")) + fprintf(fd, "%-*s %s\n", width, s, f->desc); + } +} + +static void +statfoo_print_fields(struct statfoo *sf, FILE *fd) +{ + int i, w, width; + + width = 0; + for (i = 0; i < sf->nstats; i++) { + w = strlen(sf->stats[i].name); + if (w > width) + width = w; + } + for (i = 0; i < sf->nstats; i++) { + const struct fmt *f = &sf->stats[i]; + if (f->width != 0) + fprintf(fd, "%-*s %s\n", width, f->name, f->desc); + } +} + +void +statfoo_init(struct statfoo *sf, const char *name, const struct fmt *stats, int nstats) +{ + sf->name = name; + sf->stats = stats; + sf->nstats = nstats; + sf->setfmt = statfoo_setfmt; + sf->collect_cur = statfoo_collect; + sf->collect_tot = statfoo_collect; + sf->update_tot = statfoo_update_tot; + sf->get_curstat = statfoo_get; + sf->get_totstat = statfoo_get; + sf->print_header = statfoo_print_header; + sf->print_current = statfoo_print_current; + sf->print_total = statfoo_print_total; + sf->print_verbose = statfoo_print_verbose; + sf->print_fields = statfoo_print_fields; +} diff --git a/tools/tools/ath/athaggrstats/statfoo.h b/tools/tools/ath/athaggrstats/statfoo.h new file mode 100644 index 000000000000..849a271913cc --- /dev/null +++ b/tools/tools/ath/athaggrstats/statfoo.h @@ -0,0 +1,128 @@ +/*- + * Copyright (c) 2002-2007 Sam Leffler, Errno Consulting + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer, + * without modification. + * 2. Redistributions in binary form must reproduce at minimum a disclaimer + * similar to the "NO WARRANTY" disclaimer below ("Disclaimer") and any + * redistribution must be conditioned upon including a substantially + * similar Disclaimer requirement for further binary redistribution. + * + * NO WARRANTY + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTIBILITY + * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL + * THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, + * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER + * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGES. + * + * $FreeBSD$ + */ + +#ifndef _STATFOO_H_ +#define _STATFOO_H_ +/* + * Base class for managing+displaying periodically collected statistics. + */ + +/* + * Statistic definition/description. The are defined + * for stats that correspond 1-1 w/ a collected stat + * and for stats that are calculated indirectly. + */ +struct fmt { + int width; /* printed field width */ + const char* name; /* stat field name referenced by user */ + const char* label; /* printed header label */ + const char* desc; /* verbose description */ +}; + +#define STATFOO_DECL_METHODS(_p) \ + /* set the format of the statistics to display */ \ + void (*setfmt)(_p, const char *); \ + /* collect+store ``current statistics'' */ \ + void (*collect_cur)(_p); \ + /* collect+store ``total statistics'' */ \ + void (*collect_tot)(_p); \ + /* update ``total statistics'' if necessary from current */ \ + void (*update_tot)(_p); \ + /* format a statistic from the current stats */ \ + int (*get_curstat)(_p, int, char [], size_t); \ + /* format a statistic from the total stats */ \ + int (*get_totstat)(_p, int, char [], size_t); \ + /* print field headers terminated by a \n */ \ + void (*print_header)(_p, FILE *); \ + /* print current statistics terminated by a \n */ \ + void (*print_current)(_p, FILE *); \ + /* print total statistics terminated by a \n */ \ + void (*print_total)(_p, FILE *); \ + /* print total statistics in a verbose (1 stat/line) format */ \ + void (*print_verbose)(_p, FILE *); \ + /* print available statistics */ \ + void (*print_fields)(_p, FILE *) + +/* + * Statistics base class. This class is not usable; only + * classes derived from it are useful. + */ +struct statfoo { + const char *name; /* statistics name, e.g. wlanstats */ + const struct fmt *stats; /* statistics in class */ + int nstats; /* number of stats */ +#define FMTS_IS_STAT 0x80 /* the following two bytes are the stat id */ + unsigned char fmts[4096]; /* private: compiled stats to display */ + + STATFOO_DECL_METHODS(struct statfoo *); +}; + +void statfoo_init(struct statfoo *, const char *name, + const struct fmt *stats, int nstats); + +#define STATFOO_DEFINE_BOUNCE(_t) \ +static void _t##_setfmt(struct _t *wf, const char *fmt0) \ + { wf->base.setfmt(&wf->base, fmt0); } \ +static void _t##_collect_cur(struct _t *wf) \ + { wf->base.collect_cur(&wf->base); } \ +static void _t##_collect_tot(struct _t *wf) \ + { wf->base.collect_tot(&wf->base); } \ +static void _t##_update_tot(struct _t *wf) \ + { wf->base.update_tot(&wf->base); } \ +static int _t##_get_curstat(struct _t *wf, int s, char b[], size_t bs) \ + { return wf->base.get_curstat(&wf->base, s, b, bs); } \ +static int _t##_get_totstat(struct _t *wf, int s, char b[], size_t bs) \ + { return wf->base.get_totstat(&wf->base, s, b, bs); } \ +static void _t##_print_header(struct _t *wf, FILE *fd) \ + { wf->base.print_header(&wf->base, fd); } \ +static void _t##_print_current(struct _t *wf, FILE *fd) \ + { wf->base.print_current(&wf->base, fd); } \ +static void _t##_print_total(struct _t *wf, FILE *fd) \ + { wf->base.print_total(&wf->base, fd); } \ +static void _t##_print_verbose(struct _t *wf, FILE *fd) \ + { wf->base.print_verbose(&wf->base, fd); } \ +static void _t##_print_fields(struct _t *wf, FILE *fd) \ + { wf->base.print_fields(&wf->base, fd); } + +#define STATFOO_BOUNCE(_p, _t) do { \ + _p->base.setfmt = _t##_setfmt; \ + _p->base.collect_cur = _t##_collect_cur; \ + _p->base.collect_tot = _t##_collect_tot; \ + _p->base.update_tot = _t##_update_tot; \ + _p->base.get_curstat = _t##_get_curstat; \ + _p->base.get_totstat = _t##_get_totstat; \ + _p->base.print_header = _t##_print_header; \ + _p->base.print_current = _t##_print_current; \ + _p->base.print_total = _t##_print_total; \ + _p->base.print_verbose = _t##_print_verbose; \ + _p->base.print_fields = _t##_print_fields; \ +} while (0) +#endif /* _STATFOO_H_ */ From 82097519cd7844987b310fad261ebe6e3206d7df Mon Sep 17 00:00:00 2001 From: Adrian Chadd Date: Sun, 10 Jun 2012 06:44:19 +0000 Subject: [PATCH 098/340] Add athaggrstats to the ath(4) tools build. --- tools/tools/ath/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/tools/ath/Makefile b/tools/tools/ath/Makefile index be8a8c3d291f..8f133629e106 100644 --- a/tools/tools/ath/Makefile +++ b/tools/tools/ath/Makefile @@ -1,7 +1,7 @@ # $FreeBSD$ SUBDIR= arcode athdebug athdecode athkey athpoke athprom athrd athregs -SUBDIR+= athstats ath_prom_read athradar +SUBDIR+= athstats ath_prom_read athradar athaggrstats SUBDIR+= ath_ee_v14_print ath_ee_v4k_print ath_ee_9287_print SUBDIR+= athsurvey From 81bb9913d2a2db08fa9dd084443f8c9392ef3f0e Mon Sep 17 00:00:00 2001 From: Andrew Turner Date: Sun, 10 Jun 2012 10:37:21 +0000 Subject: [PATCH 099/340] The GUMSTIX-QEMU config file is almost identical to the GUMSTIX config, include the latter file from the former rather than duplicating it. --- sys/arm/conf/GUMSTIX-QEMU | 71 ++------------------------------------- 1 file changed, 2 insertions(+), 69 deletions(-) diff --git a/sys/arm/conf/GUMSTIX-QEMU b/sys/arm/conf/GUMSTIX-QEMU index 394d337450d8..f9536a40e5c7 100644 --- a/sys/arm/conf/GUMSTIX-QEMU +++ b/sys/arm/conf/GUMSTIX-QEMU @@ -17,76 +17,9 @@ # # $FreeBSD$ +include GUMSTIX + ident GUMSTIX-QEMU -cpu CPU_XSCALE_PXA2X0 - -# This probably wants to move somewhere else. Maybe we can create a basic -# PXA2X0 config, then make a GUMSTIX config that includes the basic one, -# adds the smc and smcphy devices and pulls in this hints file. -hints "GUMSTIX.hints" - -options PHYSADDR=0xa0000000 -options KERNPHYSADDR=0xa0200000 -options KERNVIRTADDR=0xc0200000 # Used in ldscript.arm - -options STARTUP_PAGETABLE_ADDR=0xa0000000 -include "../xscale/pxa/std.pxa" -makeoptions MODULES_OVERRIDE="" - -makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols -options HZ=100 -#options DEVICE_POLLING options QEMU_WORKAROUNDS nooptions ARM_CACHE_LOCK_ENABLE # QEMU does not implement this - -options SCHED_4BSD #4BSD scheduler -options INET #InterNETworking -#options INET6 #IPv6 communications protocols -options FFS #Berkeley Fast Filesystem -options SOFTUPDATES #Enable FFS soft updates support -options UFS_ACL #Support for access control lists -options UFS_DIRHASH #Improve performance on big directories -options NFSCL #New Network Filesystem Client -#options NFSD #New Network Filesystem Server -options NFS_ROOT #NFS usable as /, requires NFSCL -#options MSDOSFS #MSDOS Filesystem -#options CD9660 #ISO 9660 Filesystem -#options PROCFS #Process filesystem (requires PSEUDOFS) -options PSEUDOFS #Pseudo-filesystem framework -options COMPAT_43 #Compatible with BSD 4.3 [KEEP THIS!] -options SCSI_DELAY=5000 #Delay (in ms) before probing SCSI -options KTRACE #ktrace(1) support -options SYSVSHM #SYSV-style shared memory -options SYSVMSG #SYSV-style message queues -options SYSVSEM #SYSV-style semaphores -options _KPOSIX_PRIORITY_SCHEDULING #Posix P1003_1B real-time extensions -options KBD_INSTALL_CDEV # install a CDEV entry in /dev -options BOOTP -options BOOTP_NFSROOT -options BOOTP_WIRED_TO=smc0 -options BOOTP_COMPAT -options BOOTP_NFSV3 -options BOOTP_BLOCKSIZE=4096 -options PREEMPTION -device loop -device ether -device mii -device mii_bitbang -device smc -device smcphy -device uart -device uart_ns8250 - -# Debugging for use in -current -options KDB -options DDB #Enable the kernel debugger -#options DEADLKRES #Enable the deadlock resolver -#options INVARIANTS #Enable calls of extra sanity checking -#options INVARIANT_SUPPORT #Extra sanity checks of internal structures, required by INVARIANTS -#options WITNESS #Enable checks to detect deadlocks and cycles -#options WITNESS_SKIPSPIN #Don't run witness on spinlocks for speed -#options DIAGNOSTIC - -device md -device random # Entropy device From 16072bc718855b8d08191353cade14816e6acac4 Mon Sep 17 00:00:00 2001 From: Andrew Turner Date: Sun, 10 Jun 2012 10:40:22 +0000 Subject: [PATCH 100/340] Remove an unneeded increment from initarm. The variable is uninitialised, is not used in this part of the function and correctly initialised later when it is used. --- sys/arm/at91/at91_machdep.c | 1 - sys/arm/econa/econa_machdep.c | 1 - sys/arm/xscale/i80321/ep80219_machdep.c | 1 - sys/arm/xscale/pxa/pxa_machdep.c | 1 - 4 files changed, 4 deletions(-) diff --git a/sys/arm/at91/at91_machdep.c b/sys/arm/at91/at91_machdep.c index b05ef9ac31b2..6b3f56e14fc9 100644 --- a/sys/arm/at91/at91_machdep.c +++ b/sys/arm/at91/at91_machdep.c @@ -426,7 +426,6 @@ initarm(struct arm_boot_params *abp) kernel_pt_table[loop].pv_va - KERNVIRTADDR + KERNPHYSADDR; } - i++; } /* * Allocate a page for the system page mapped to V0x00000000 diff --git a/sys/arm/econa/econa_machdep.c b/sys/arm/econa/econa_machdep.c index 237ec4834ff0..9b7042f5f4b5 100644 --- a/sys/arm/econa/econa_machdep.c +++ b/sys/arm/econa/econa_machdep.c @@ -230,7 +230,6 @@ initarm(struct arm_boot_params *abp) kernel_pt_table[loop].pv_va - KERNVIRTADDR + KERNPHYSADDR; } - i++; } /* * Allocate a page for the system page mapped to V0x00000000 diff --git a/sys/arm/xscale/i80321/ep80219_machdep.c b/sys/arm/xscale/i80321/ep80219_machdep.c index 803fec1c6334..875f357887a9 100644 --- a/sys/arm/xscale/i80321/ep80219_machdep.c +++ b/sys/arm/xscale/i80321/ep80219_machdep.c @@ -225,7 +225,6 @@ initarm(struct arm_boot_params *abp) kernel_pt_table[loop].pv_va = kernel_pt_table[loop].pv_pa + 0x20000000; } - i++; } freemem_pt = freemempos; freemempos = 0xa0100000; diff --git a/sys/arm/xscale/pxa/pxa_machdep.c b/sys/arm/xscale/pxa/pxa_machdep.c index 69311d45a961..fb89a067dba1 100644 --- a/sys/arm/xscale/pxa/pxa_machdep.c +++ b/sys/arm/xscale/pxa/pxa_machdep.c @@ -208,7 +208,6 @@ initarm(struct arm_boot_params *abp) kernel_pt_table[loop].pv_va = kernel_pt_table[loop].pv_pa + 0x20000000; } - i++; } freemem_pt = freemempos; freemempos = 0xa0100000; From eb586bd9ee79efb37759109fadbc49fed2cddaa7 Mon Sep 17 00:00:00 2001 From: Alexander Motin Date: Sun, 10 Jun 2012 11:17:14 +0000 Subject: [PATCH 101/340] Partially revert r236666: Return PROTO_ATA protocol in response to XPT_PATH_INQ. smartmontools uses it to identify ATA devices and I don't know any other place now where it is important. It could probably use XPT_GDEV_TYPE instead for more accurate protocol information, but let it live for now. Reported by: matthew MFC after: 3 days --- sys/dev/ahci/ahci.c | 2 +- sys/dev/ata/ata-all.c | 2 +- sys/dev/mvs/mvs.c | 2 +- sys/dev/siis/siis.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/sys/dev/ahci/ahci.c b/sys/dev/ahci/ahci.c index ccbce37e2dd3..481fe0ab448b 100644 --- a/sys/dev/ahci/ahci.c +++ b/sys/dev/ahci/ahci.c @@ -2970,7 +2970,7 @@ ahciaction(struct cam_sim *sim, union ccb *ccb) cpi->unit_number = cam_sim_unit(sim); cpi->transport = XPORT_SATA; cpi->transport_version = XPORT_VERSION_UNSPECIFIED; - cpi->protocol = PROTO_UNSPECIFIED; + cpi->protocol = PROTO_ATA; cpi->protocol_version = PROTO_VERSION_UNSPECIFIED; cpi->maxio = MAXPHYS; /* ATI SB600 can't handle 256 sectors with FPDMA (NCQ). */ diff --git a/sys/dev/ata/ata-all.c b/sys/dev/ata/ata-all.c index 73e32dd749db..b1c09ab2fd02 100644 --- a/sys/dev/ata/ata-all.c +++ b/sys/dev/ata/ata-all.c @@ -1875,7 +1875,7 @@ ataaction(struct cam_sim *sim, union ccb *ccb) else cpi->transport = XPORT_ATA; cpi->transport_version = XPORT_VERSION_UNSPECIFIED; - cpi->protocol = PROTO_UNSPECIFIED; + cpi->protocol = PROTO_ATA; cpi->protocol_version = PROTO_VERSION_UNSPECIFIED; cpi->maxio = ch->dma.max_iosize ? ch->dma.max_iosize : DFLTPHYS; if (device_get_devclass(device_get_parent(parent)) == diff --git a/sys/dev/mvs/mvs.c b/sys/dev/mvs/mvs.c index 1c7c930b602d..507c13f3f05e 100644 --- a/sys/dev/mvs/mvs.c +++ b/sys/dev/mvs/mvs.c @@ -2385,7 +2385,7 @@ mvsaction(struct cam_sim *sim, union ccb *ccb) cpi->unit_number = cam_sim_unit(sim); cpi->transport = XPORT_SATA; cpi->transport_version = XPORT_VERSION_UNSPECIFIED; - cpi->protocol = PROTO_UNSPECIFIED; + cpi->protocol = PROTO_ATA; cpi->protocol_version = PROTO_VERSION_UNSPECIFIED; cpi->maxio = MAXPHYS; if ((ch->quirks & MVS_Q_SOC) == 0) { diff --git a/sys/dev/siis/siis.c b/sys/dev/siis/siis.c index caf493a9bd08..a8a1ed22b82a 100644 --- a/sys/dev/siis/siis.c +++ b/sys/dev/siis/siis.c @@ -1960,7 +1960,7 @@ siisaction(struct cam_sim *sim, union ccb *ccb) cpi->unit_number = cam_sim_unit(sim); cpi->transport = XPORT_SATA; cpi->transport_version = XPORT_VERSION_UNSPECIFIED; - cpi->protocol = PROTO_UNSPECIFIED; + cpi->protocol = PROTO_ATA; cpi->protocol_version = PROTO_VERSION_UNSPECIFIED; cpi->maxio = MAXPHYS; cpi->hba_vendor = pci_get_vendor(parent); From 83ce08538a49519330ef4e6ddab3f5dee646e861 Mon Sep 17 00:00:00 2001 From: Konstantin Belousov Date: Sun, 10 Jun 2012 11:31:50 +0000 Subject: [PATCH 102/340] Use the previous stack entry protection and max protection to correctly propagate the stack execution permissions when stack is grown down. First, curproc->p_sysent->sv_stackprot specifies maximum allowed stack protection for current ABI, so the new stack entry was typically marked executable always. Second, for non-main stack MAP_STACK mapping, the PROT_ flags should be used which were specified at the mmap(2) call time, and not sv_stackprot. MFC after: 1 week --- sys/vm/vm_map.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/vm/vm_map.c b/sys/vm/vm_map.c index b74cec14c8ff..f95fd82db061 100644 --- a/sys/vm/vm_map.c +++ b/sys/vm/vm_map.c @@ -3528,7 +3528,7 @@ vm_map_growstack(struct proc *p, vm_offset_t addr) } rv = vm_map_insert(map, NULL, 0, addr, stack_entry->start, - p->p_sysent->sv_stackprot, VM_PROT_ALL, 0); + next_entry->protection, next_entry->max_protection, 0); /* Adjust the available stack space by the amount we grew. */ if (rv == KERN_SUCCESS) { From 1b693d7494e57292cb9c1e3c4970fb27cf5890e8 Mon Sep 17 00:00:00 2001 From: Pawel Jakub Dawidek Date: Sun, 10 Jun 2012 13:10:21 +0000 Subject: [PATCH 103/340] Merge two ifs into one. Other minor style fixes. MFC after: 1 month --- sys/kern/kern_descrip.c | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c index 2dc743b0a327..0739ccd702ab 100644 --- a/sys/kern/kern_descrip.c +++ b/sys/kern/kern_descrip.c @@ -884,8 +884,7 @@ do_dup(struct thread *td, int flags, int old, int new, fdrop(fp, td); return (EBADF); } - KASSERT(old != new, - ("new fd is same as old")); + KASSERT(old != new, ("new fd is same as old")); /* * Save info on the descriptor being overwritten. We cannot close @@ -896,19 +895,17 @@ do_dup(struct thread *td, int flags, int old, int new, */ delfp = fdp->fd_ofiles[new]; holdleaders = 0; - if (delfp != NULL) { - if (td->td_proc->p_fdtol != NULL) { - /* - * Ask fdfree() to sleep to ensure that all relevant - * process leaders can be traversed in closef(). - */ - fdp->fd_holdleaderscount++; - holdleaders = 1; - } + if (delfp != NULL && td->td_proc->p_fdtol != NULL) { + /* + * Ask fdfree() to sleep to ensure that all relevant + * process leaders can be traversed in closef(). + */ + fdp->fd_holdleaderscount++; + holdleaders = 1; } /* - * Duplicate the source descriptor + * Duplicate the source descriptor. */ fdp->fd_ofiles[new] = fp; fdp->fd_ofileflags[new] = fdp->fd_ofileflags[old] &~ UF_EXCLOSE; From 587714504f363b38917b21d840283896a2b8a254 Mon Sep 17 00:00:00 2001 From: Jilles Tjoelker Date: Sun, 10 Jun 2012 14:26:51 +0000 Subject: [PATCH 104/340] touch: Add the -d option from POSIX.1-2008. This is much like -t but with a different format which is ISO8601-like and allows fractions of a second. The precision is limited to microseconds because of utimes() and friends, even though stat() returns nanoseconds. MFC after: 10 days --- usr.bin/touch/touch.1 | 42 +++++++++++++++++++++++++++++-- usr.bin/touch/touch.c | 58 ++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 95 insertions(+), 5 deletions(-) diff --git a/usr.bin/touch/touch.1 b/usr.bin/touch/touch.1 index 87789ecfa15d..6201b28dbd15 100644 --- a/usr.bin/touch/touch.1 +++ b/usr.bin/touch/touch.1 @@ -31,7 +31,7 @@ .\" @(#)touch.1 8.3 (Berkeley) 4/28/95 .\" $FreeBSD$ .\" -.Dd February 4, 2012 +.Dd June 10, 2012 .Dt TOUCH 1 .Os .Sh NAME @@ -43,6 +43,7 @@ .Op Fl achm .Op Fl r Ar file .Op Fl t Ar [[CC]YY]MMDDhhmm[.SS] +.Op Fl d Ar YYYY-MM-DDThh:mm:SS[.frac][tz] .Ar .Sh DESCRIPTION The @@ -61,8 +62,10 @@ individually. Selecting both is equivalent to the default. By default, the timestamps are set to the current time. The +.Fl d +and .Fl t -flag explicitly specifies a different time, and the +flags explicitly specify a different time, and the .Fl r flag specifies to set the times those of the specified file. The @@ -109,6 +112,41 @@ The .Nm utility does not treat this as an error. No error messages are displayed and the exit value is not affected. +.It Fl d +Change the access and modification times to the specified time instead +of the current time of day. +The argument is of the form +.Dq YYYY-MM-DDThh:mm:SS[.frac][tz] +where the letters represent the following: +.Bl -tag -width Ds -compact -offset indent +.It Ar YYYY +The year. +.It Ar MM +The month of the year, from 01 to 12. +.It Ar DD +The day of the month, from 01 to 31. +.It Ar T +The letter +.Li T +or a space. +.It Ar hh +The hour of the day, from 00 to 23. +.It Ar mm +The minute of the hour, from 00 to 59. +.It Ar SS +The second of the minute, from 00 to 61. +.It Ar .frac +An optional fraction, +consisting of a period or a comma followed by one or more digits. +The number of significant digits depends on the kernel configuration and +the filesystem, and may be zero. +.It Ar tz +An optional letter +.Li Z +indicating the time is in +.Tn UTC . +Otherwise, the time is assumed to be in local time. +.El .It Fl h If the file is a symbolic link, change the times of the link itself rather than the file that the link points to. diff --git a/usr.bin/touch/touch.c b/usr.bin/touch/touch.c index 7a613e887d49..d42d9af2c772 100644 --- a/usr.bin/touch/touch.c +++ b/usr.bin/touch/touch.c @@ -45,6 +45,7 @@ static const char sccsid[] = "@(#)touch.c 8.1 (Berkeley) 6/6/93"; #include #include +#include #include #include #include @@ -57,6 +58,7 @@ static const char sccsid[] = "@(#)touch.c 8.1 (Berkeley) 6/6/93"; void stime_arg1(char *, struct timeval *); void stime_arg2(char *, int, struct timeval *); +void stime_darg(char *, struct timeval *); void stime_file(char *, struct timeval *); int timeoffset(char *); void usage(char *); @@ -79,7 +81,7 @@ main(int argc, char *argv[]) if (gettimeofday(&tv[0], NULL)) err(1, "gettimeofday"); - while ((ch = getopt(argc, argv, "A:acfhmr:t:")) != -1) + while ((ch = getopt(argc, argv, "A:acd:fhmr:t:")) != -1) switch(ch) { case 'A': Aflag = timeoffset(optarg); @@ -90,6 +92,10 @@ main(int argc, char *argv[]) case 'c': cflag = 1; break; + case 'd': + timeset = 1; + stime_darg(optarg, tv); + break; case 'f': /* No-op for compatibility. */ break; @@ -320,6 +326,50 @@ stime_arg2(char *arg, int year, struct timeval *tvp) tvp[0].tv_usec = tvp[1].tv_usec = 0; } +void +stime_darg(char *arg, struct timeval *tvp) +{ + struct tm t = { .tm_sec = 0 }; + const char *fmt, *colon; + char *p; + int val, isutc = 0; + + tvp[0].tv_usec = 0; + t.tm_isdst = -1; + colon = strchr(arg, ':'); + if (colon == NULL || strchr(colon + 1, ':') == NULL) + goto bad; + fmt = strchr(arg, 'T') != NULL ? "%Y-%m-%dT%H:%M:%S" : + "%Y-%m-%d %H:%M:%S"; + p = strptime(arg, fmt, &t); + if (p == NULL) + goto bad; + /* POSIX: must have at least one digit after dot */ + if ((*p == '.' || *p == ',') && isdigit((unsigned char)p[1])) { + p++; + val = 100000; + while (isdigit((unsigned char)*p)) { + tvp[0].tv_usec += val * (*p - '0'); + p++; + val /= 10; + } + } + if (*p == 'Z') { + isutc = 1; + p++; + } + if (*p != '\0') + goto bad; + + tvp[0].tv_sec = isutc ? timegm(&t) : mktime(&t); + + tvp[1] = tvp[0]; + return; + +bad: + errx(1, "out of range or illegal time specification: YYYY-MM-DDThh:mm:SS[.frac][tz]"); +} + /* Calculate a time offset in seconds, given an arg of the format [-]HHMMSS. */ int timeoffset(char *arg) @@ -364,7 +414,9 @@ stime_file(char *fname, struct timeval *tvp) void usage(char *myname) { - fprintf(stderr, "usage:\n" "%s [-A [-][[hh]mm]SS] [-achm] [-r file] " - "[-t [[CC]YY]MMDDhhmm[.SS]] file ...\n", myname); + fprintf(stderr, "usage: %s [-A [-][[hh]mm]SS] [-achm] [-r file] " + "[-t [[CC]YY]MMDDhhmm[.SS]]\n" + " [-d YYYY-MM-DDThh:mm:SS[.frac][tz]] " + "file ...\n", myname); exit(1); } From 69d76148503ddf71e1244e6766be8c7edcf8a316 Mon Sep 17 00:00:00 2001 From: Pawel Jakub Dawidek Date: Sun, 10 Jun 2012 14:57:18 +0000 Subject: [PATCH 105/340] When we are closing capability during dup2(), we want to call mq_fdclose() on the underlying object and not on the capability itself. Discussed with: rwatson Sponsored by: FreeBSD Foundation MFC after: 1 month --- sys/kern/kern_descrip.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c index 0739ccd702ab..6444e5d26463 100644 --- a/sys/kern/kern_descrip.c +++ b/sys/kern/kern_descrip.c @@ -922,8 +922,13 @@ do_dup(struct thread *td, int flags, int old, int new, */ if (delfp != NULL) { knote_fdclose(td, new); - if (delfp->f_type == DTYPE_MQUEUE) - mq_fdclose(td, new, delfp); + /* + * When we're closing an fd with a capability, we need to + * notify mqueue if the underlying object is of type mqueue. + */ + (void)cap_funwrap(delfp, 0, &fp); + if (fp->f_type == DTYPE_MQUEUE) + mq_fdclose(td, new, fp); FILEDESC_XUNLOCK(fdp); (void) closef(delfp, td); if (holdleaders) { From 9de4ce048ebc5e3456dcf6c17416c012a724f240 Mon Sep 17 00:00:00 2001 From: Tom Rhodes Date: Sun, 10 Jun 2012 15:56:49 +0000 Subject: [PATCH 106/340] "on the their types." -> "on their types." --- share/man/man4/mac_lomac.4 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/share/man/man4/mac_lomac.4 b/share/man/man4/mac_lomac.4 index 0cf99c97f299..273a585d0ccd 100644 --- a/share/man/man4/mac_lomac.4 +++ b/share/man/man4/mac_lomac.4 @@ -63,7 +63,7 @@ which protects the integrity of system objects and subjects by means of an information flow policy coupled with the subject demotion via floating labels. In LOMAC, all system subjects and objects are assigned integrity labels, made -up of one or more hierarchical grades, depending on the their types. +up of one or more hierarchical grades, depending on their types. Together, these label elements permit all labels to be placed in a partial order, with information flow protections and demotion decisions based on a dominance operator From 297f11037f0694ea03ee149861c6302661430c07 Mon Sep 17 00:00:00 2001 From: Pawel Jakub Dawidek Date: Sun, 10 Jun 2012 20:22:10 +0000 Subject: [PATCH 107/340] Style: move opt_*.h includes in the proper place. MFC after: 1 month --- sys/kern/sys_capability.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sys/kern/sys_capability.c b/sys/kern/sys_capability.c index b6d19bbeb392..fa763561682c 100644 --- a/sys/kern/sys_capability.c +++ b/sys/kern/sys_capability.c @@ -51,12 +51,12 @@ * anonymous, rather than named, POSIX shared memory objects. */ -#include "opt_capsicum.h" -#include "opt_ktrace.h" - #include __FBSDID("$FreeBSD$"); +#include "opt_capsicum.h" +#include "opt_ktrace.h" + #include #include #include From effb6326a1c7cd24224d5d32daf2a020391f0025 Mon Sep 17 00:00:00 2001 From: Pawel Jakub Dawidek Date: Sun, 10 Jun 2012 20:24:01 +0000 Subject: [PATCH 108/340] Remove redundant include. MFC after: 1 month --- sys/kern/subr_trap.c | 1 - 1 file changed, 1 deletion(-) diff --git a/sys/kern/subr_trap.c b/sys/kern/subr_trap.c index e57ab9eb5a1c..095bbdf73b13 100644 --- a/sys/kern/subr_trap.c +++ b/sys/kern/subr_trap.c @@ -44,7 +44,6 @@ #include __FBSDID("$FreeBSD$"); -#include "opt_capsicum.h" #include "opt_hwpmc_hooks.h" #include "opt_ktrace.h" #include "opt_kdtrace.h" From a86224465d8988f111508a668fc151cdbed1a738 Mon Sep 17 00:00:00 2001 From: Isabell Long Date: Sun, 10 Jun 2012 22:14:52 +0000 Subject: [PATCH 109/340] Add more description and clarification about the -depth and -d options in both places where they are mentioned in find(1). Discussed with: dougb PR: docs/168885 Reported by: Ronald F. Guilmette (rfg at tristatelogic dot com) Approved by: gabor (mentor) MFC after: 3 days --- usr.bin/find/find.1 | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/usr.bin/find/find.1 b/usr.bin/find/find.1 index f06418ed8f60..5a1085c3a9e4 100644 --- a/usr.bin/find/find.1 +++ b/usr.bin/find/find.1 @@ -136,7 +136,7 @@ Note, the default is .Em not a breadth-first traversal. .Pp -This option is equivalent to the +This option is the BSD-specific equivalent of the .Ic -depth primary of .St -p1003.1-2001 . @@ -301,7 +301,7 @@ Please refer to the .Ic -atime primary description for information on supported time units. .It Ic -d -Same as +Non-portable, BSD-specific version of .Ic depth . GNU find implements this as a primary in mistaken emulation of .Fx @@ -325,9 +325,10 @@ primary will fail to delete a directory if it is not empty. Following symlinks is incompatible with this option. .It Ic -depth Always true; -same as the +same as the non-portable .Fl d -option. +option. Refer to the primary description of +.Ic -depth for full information. .It Ic -depth Ar n True if the depth of the file relative to the starting point of the traversal is From d334b28625a8b4349d0855191174d63900a5fbe1 Mon Sep 17 00:00:00 2001 From: Kevin Lo Date: Mon, 11 Jun 2012 03:02:40 +0000 Subject: [PATCH 110/340] - Consistenly mention columns and fields - Add -b to short error messages Obtained from: NetBSD --- usr.bin/cut/cut.1 | 10 +++++----- usr.bin/cut/cut.c | 6 +++--- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/usr.bin/cut/cut.1 b/usr.bin/cut/cut.1 index 3ea9362f72b5..070c427a3b24 100644 --- a/usr.bin/cut/cut.1 +++ b/usr.bin/cut/cut.1 @@ -68,7 +68,7 @@ The items specified by .Ar list can be in terms of column position or in terms of fields delimited by a special character. -Column numbering starts from 1. +Column and field numbering starts from 1. .Pp The .Ar list @@ -78,14 +78,14 @@ number ranges. Number ranges consist of a number, a dash .Pq Sq \- , and a second number -and select the fields or columns from the first number to the second, +and select the columns or fields from the first number to the second, inclusive. Numbers or number ranges may be preceded by a dash, which selects all -fields or columns from 1 to the last number. +columns or fields from 1 to the last number. Numbers or number ranges may be followed by a dash, which selects all -fields or columns from the last number to the end of the line. +columns or fields from the last number to the end of the line. Numbers and number ranges may be repeated, overlapping, and in any order. -It is not an error to select fields or columns not present in the +It is not an error to select columns or fields not present in the input line. .Pp The options are as follows: diff --git a/usr.bin/cut/cut.c b/usr.bin/cut/cut.c index d32d4ab9d20f..0a3a2a946b87 100644 --- a/usr.bin/cut/cut.c +++ b/usr.bin/cut/cut.c @@ -164,7 +164,7 @@ get_list(char *list) * set a byte in the positions array to indicate if a field or * column is to be selected; use +1, it's 1-based, not 0-based. * Numbers and number ranges may be overlapping, repeated, and in - * any order. We handle "-3-5" although there's no real reason too. + * any order. We handle "-3-5" although there's no real reason to. */ for (; (p = strsep(&list, ", \t")) != NULL;) { setautostart = start = stop = 0; @@ -187,9 +187,9 @@ get_list(char *list) } } if (*p) - errx(1, "[-cf] list: illegal list value"); + errx(1, "[-bcf] list: illegal list value"); if (!stop || !start) - errx(1, "[-cf] list: values may not include zero"); + errx(1, "[-bcf] list: values may not include zero"); if (maxval < stop) { maxval = stop; needpos(maxval + 1); From 0087e1818ecfc125c2a07ca8e008f70a64caf943 Mon Sep 17 00:00:00 2001 From: Kevin Lo Date: Mon, 11 Jun 2012 03:10:15 +0000 Subject: [PATCH 111/340] Fix typo --- usr.bin/cut/cut.1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usr.bin/cut/cut.1 b/usr.bin/cut/cut.1 index 070c427a3b24..d4e68760fad2 100644 --- a/usr.bin/cut/cut.1 +++ b/usr.bin/cut/cut.1 @@ -68,7 +68,7 @@ The items specified by .Ar list can be in terms of column position or in terms of fields delimited by a special character. -Column and field numbering starts from 1. +Column and field numbering start from 1. .Pp The .Ar list From a108d2d6c616d19ab5f102a6d01a1569bf86be6f Mon Sep 17 00:00:00 2001 From: Adrian Chadd Date: Mon, 11 Jun 2012 06:59:28 +0000 Subject: [PATCH 112/340] Revert r233227 and followup commits as it breaks CCMP PN replay detection. This showed up when doing heavy UDP throughput on SMP machines. The problem with this is because the 802.11 sequence number is being allocated separately to the CCMP PN replay number (which is assigned during ieee80211_crypto_encap()). Under significant throughput (200+ MBps) the TX path would be stressed enough that frame TX/retry would force sequence number and PN allocation to be out of order. So once the frames were reordered via 802.11 seqnos, the CCMP PN would be far out of order, causing most frames to be discarded by the receiver. I've fixed this in some local work by being forced to: (a) deal with the issues that lead to the parallel TX causing out of order sequence numbers in the first place; (b) fix all the packet queuing issues which lead to strange (but mostly valid) TX. I'll begin fixing these in a subsequent commit or five. PR: kern/166190 --- sys/dev/ath/if_ath_debug.c | 3 - sys/dev/ath/if_ath_tx.c | 233 ++++++------------------------------- sys/dev/ath/if_ath_tx.h | 2 - sys/dev/ath/if_ath_tx_ht.c | 65 +---------- sys/dev/ath/if_athvar.h | 4 +- 5 files changed, 35 insertions(+), 272 deletions(-) diff --git a/sys/dev/ath/if_ath_debug.c b/sys/dev/ath/if_ath_debug.c index e96013644f12..0b49a06bb703 100644 --- a/sys/dev/ath/if_ath_debug.c +++ b/sys/dev/ath/if_ath_debug.c @@ -144,9 +144,6 @@ ath_printtxbuf(struct ath_softc *sc, const struct ath_buf *first_bf, bf->bf_state.bfs_retries, bf->bf_state.bfs_addedbaw, bf->bf_state.bfs_dobaw); - printf(" SEQNO_ASSIGNED: %d, NEED_SEQNO: %d\n", - bf->bf_state.bfs_seqno_assigned, - bf->bf_state.bfs_need_seqno); printf(" %08x %08x %08x %08x %08x %08x\n", ds->ds_ctl0, ds->ds_ctl1, ds->ds_hw[0], ds->ds_hw[1], diff --git a/sys/dev/ath/if_ath_tx.c b/sys/dev/ath/if_ath_tx.c index c188e452939f..cb12dcaa187f 100644 --- a/sys/dev/ath/if_ath_tx.c +++ b/sys/dev/ath/if_ath_tx.c @@ -109,10 +109,10 @@ static int ath_tx_ampdu_pending(struct ath_softc *sc, struct ath_node *an, int tid); static int ath_tx_ampdu_running(struct ath_softc *sc, struct ath_node *an, int tid); +static ieee80211_seq ath_tx_tid_seqno_assign(struct ath_softc *sc, + struct ieee80211_node *ni, struct ath_buf *bf, struct mbuf *m0); static int ath_tx_action_frame_override_queue(struct ath_softc *sc, struct ieee80211_node *ni, struct mbuf *m0, int *tid); -static int ath_tx_seqno_required(struct ath_softc *sc, - struct ieee80211_node *ni, struct ath_buf *bf, struct mbuf *m0); /* * Whether to use the 11n rate scenario functions or not @@ -1436,7 +1436,7 @@ ath_tx_start(struct ath_softc *sc, struct ieee80211_node *ni, int ismcast; const struct ieee80211_frame *wh; int is_ampdu, is_ampdu_tx, is_ampdu_pending; - //ieee80211_seq seqno; + ieee80211_seq seqno; uint8_t type, subtype; /* @@ -1488,9 +1488,8 @@ ath_tx_start(struct ath_softc *sc, struct ieee80211_node *ni, is_ampdu_pending = ath_tx_ampdu_pending(sc, ATH_NODE(ni), tid); is_ampdu = is_ampdu_tx | is_ampdu_pending; - DPRINTF(sc, ATH_DEBUG_SW_TX, - "%s: bf=%p, tid=%d, ac=%d, is_ampdu=%d\n", - __func__, bf, tid, pri, is_ampdu); + DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: tid=%d, ac=%d, is_ampdu=%d\n", + __func__, tid, pri, is_ampdu); /* * When servicing one or more stations in power-save mode @@ -1506,9 +1505,6 @@ ath_tx_start(struct ath_softc *sc, struct ieee80211_node *ni, /* Do the generic frame setup */ /* XXX should just bzero the bf_state? */ bf->bf_state.bfs_dobaw = 0; - bf->bf_state.bfs_seqno_assigned = 0; - bf->bf_state.bfs_need_seqno = 0; - bf->bf_state.bfs_seqno = -1; /* XXX debugging */ /* A-MPDU TX? Manually set sequence number */ /* Don't do it whilst pending; the net80211 layer still assigns them */ @@ -1521,16 +1517,15 @@ ath_tx_start(struct ath_softc *sc, struct ieee80211_node *ni, * don't get a sequence number from the current * TID and thus mess with the BAW. */ - //seqno = ath_tx_tid_seqno_assign(sc, ni, bf, m0); - if (ath_tx_seqno_required(sc, ni, bf, m0)) { + seqno = ath_tx_tid_seqno_assign(sc, ni, bf, m0); + if (IEEE80211_QOS_HAS_SEQ(wh) && + subtype != IEEE80211_FC0_SUBTYPE_QOS_NULL) { bf->bf_state.bfs_dobaw = 1; - bf->bf_state.bfs_need_seqno = 1; } ATH_TXQ_UNLOCK(txq); } else { /* No AMPDU TX, we've been assigned a sequence number. */ if (IEEE80211_QOS_HAS_SEQ(wh)) { - bf->bf_state.bfs_seqno_assigned = 1; /* XXX we should store the frag+seqno in bfs_seqno */ bf->bf_state.bfs_seqno = M_SEQNO_GET(m0) << IEEE80211_SEQ_SEQ_SHIFT; @@ -1541,7 +1536,7 @@ ath_tx_start(struct ath_softc *sc, struct ieee80211_node *ni, * If needed, the sequence number has been assigned. * Squirrel it away somewhere easy to get to. */ - //bf->bf_state.bfs_seqno = M_SEQNO_GET(m0) << IEEE80211_SEQ_SEQ_SHIFT; + bf->bf_state.bfs_seqno = M_SEQNO_GET(m0) << IEEE80211_SEQ_SEQ_SHIFT; /* Is ampdu pending? fetch the seqno and print it out */ if (is_ampdu_pending) @@ -1558,10 +1553,6 @@ ath_tx_start(struct ath_softc *sc, struct ieee80211_node *ni, /* At this point m0 could have changed! */ m0 = bf->bf_m; - DPRINTF(sc, ATH_DEBUG_SW_TX, - "%s: DONE: bf=%p, tid=%d, ac=%d, is_ampdu=%d, dobaw=%d, seqno=%d\n", - __func__, bf, tid, pri, is_ampdu, bf->bf_state.bfs_dobaw, M_SEQNO_GET(m0)); - #if 1 /* * If it's a multicast frame, do a direct-dispatch to the @@ -2043,41 +2034,16 @@ ath_tx_addto_baw(struct ath_softc *sc, struct ath_node *an, if (bf->bf_state.bfs_isretried) return; - /* - * If this occurs we're in a lot of trouble. We should try to - * recover from this without the session hanging? - */ - if (! bf->bf_state.bfs_seqno_assigned) { - device_printf(sc->sc_dev, - "%s: bf=%p, seqno_assigned is 0?!\n", __func__, bf); - return; - } - tap = ath_tx_get_tx_tid(an, tid->tid); if (bf->bf_state.bfs_addedbaw) device_printf(sc->sc_dev, - "%s: re-added? bf=%p, tid=%d, seqno %d; window %d:%d; " + "%s: re-added? tid=%d, seqno %d; window %d:%d; " "baw head=%d tail=%d\n", - __func__, bf, tid->tid, SEQNO(bf->bf_state.bfs_seqno), + __func__, tid->tid, SEQNO(bf->bf_state.bfs_seqno), tap->txa_start, tap->txa_wnd, tid->baw_head, tid->baw_tail); - /* - * Verify that the given sequence number is not outside of the - * BAW. Complain loudly if that's the case. - */ - if (! BAW_WITHIN(tap->txa_start, tap->txa_wnd, - SEQNO(bf->bf_state.bfs_seqno))) { - device_printf(sc->sc_dev, - "%s: bf=%p: outside of BAW?? tid=%d, seqno %d; window %d:%d; " - "baw head=%d tail=%d\n", - __func__, bf, tid->tid, SEQNO(bf->bf_state.bfs_seqno), - tap->txa_start, tap->txa_wnd, tid->baw_head, - tid->baw_tail); - - } - /* * ni->ni_txseqs[] is the currently allocated seqno. * the txa state contains the current baw start. @@ -2085,9 +2051,9 @@ ath_tx_addto_baw(struct ath_softc *sc, struct ath_node *an, index = ATH_BA_INDEX(tap->txa_start, SEQNO(bf->bf_state.bfs_seqno)); cindex = (tid->baw_head + index) & (ATH_TID_MAX_BUFS - 1); DPRINTF(sc, ATH_DEBUG_SW_TX_BAW, - "%s: bf=%p, tid=%d, seqno %d; window %d:%d; index=%d cindex=%d " + "%s: tid=%d, seqno %d; window %d:%d; index=%d cindex=%d " "baw head=%d tail=%d\n", - __func__, bf, tid->tid, SEQNO(bf->bf_state.bfs_seqno), + __func__, tid->tid, SEQNO(bf->bf_state.bfs_seqno), tap->txa_start, tap->txa_wnd, index, cindex, tid->baw_head, tid->baw_tail); @@ -2190,9 +2156,9 @@ ath_tx_update_baw(struct ath_softc *sc, struct ath_node *an, cindex = (tid->baw_head + index) & (ATH_TID_MAX_BUFS - 1); DPRINTF(sc, ATH_DEBUG_SW_TX_BAW, - "%s: bf=%p: tid=%d, baw=%d:%d, seqno=%d, index=%d, cindex=%d, " + "%s: tid=%d, baw=%d:%d, seqno=%d, index=%d, cindex=%d, " "baw head=%d, tail=%d\n", - __func__, bf, tid->tid, tap->txa_start, tap->txa_wnd, seqno, index, + __func__, tid->tid, tap->txa_start, tap->txa_wnd, seqno, index, cindex, tid->baw_head, tid->baw_tail); /* @@ -2272,52 +2238,12 @@ ath_tx_tid_unsched(struct ath_softc *sc, struct ath_tid *tid) TAILQ_REMOVE(&txq->axq_tidq, tid, axq_qelem); } -/* - * Return whether a sequence number is actually required. - * - * A sequence number must only be allocated at the time that a frame - * is considered for addition to the BAW/aggregate and being TXed. - * The sequence number must not be allocated before the frame - * is added to the BAW (protected by the same lock instance) - * otherwise a the multi-entrant TX path may result in a later seqno - * being added to the BAW first. The subsequent addition of the - * earlier seqno would then not go into the BAW as it's now outside - * of said BAW. - * - * This routine is used by ath_tx_start() to mark whether the frame - * should get a sequence number before adding it to the BAW. - * - * Then the actual aggregate TX routines will check whether this - * flag is set and if the frame needs to go into the BAW, it'll - * have a sequence number allocated for it. - */ -static int -ath_tx_seqno_required(struct ath_softc *sc, struct ieee80211_node *ni, - struct ath_buf *bf, struct mbuf *m0) -{ - const struct ieee80211_frame *wh; - uint8_t subtype; - - wh = mtod(m0, const struct ieee80211_frame *); - subtype = wh->i_fc[0] & IEEE80211_FC0_SUBTYPE_MASK; - - /* XXX assert txq lock */ - /* XXX assert ampdu is set */ - - return ((IEEE80211_QOS_HAS_SEQ(wh) && - subtype != IEEE80211_FC0_SUBTYPE_QOS_NULL)); -} - /* * Assign a sequence number manually to the given frame. * * This should only be called for A-MPDU TX frames. - * - * If this is called after the initial frame setup, make sure you've flushed - * the DMA map or you'll risk sending stale data to the NIC. This routine - * updates the actual frame contents with the relevant seqno. */ -int +static ieee80211_seq ath_tx_tid_seqno_assign(struct ath_softc *sc, struct ieee80211_node *ni, struct ath_buf *bf, struct mbuf *m0) { @@ -2330,22 +2256,8 @@ ath_tx_tid_seqno_assign(struct ath_softc *sc, struct ieee80211_node *ni, wh = mtod(m0, struct ieee80211_frame *); pri = M_WME_GETAC(m0); /* honor classification */ tid = WME_AC_TO_TID(pri); - DPRINTF(sc, ATH_DEBUG_SW_TX, - "%s: bf=%p, pri=%d, tid=%d, qos has seq=%d\n", - __func__, bf, pri, tid, IEEE80211_QOS_HAS_SEQ(wh)); - - if (! bf->bf_state.bfs_need_seqno) { - device_printf(sc->sc_dev, "%s: bf=%p: need_seqno not set?!\n", - __func__, bf); - return -1; - } - /* XXX check for bfs_need_seqno? */ - if (bf->bf_state.bfs_seqno_assigned) { - device_printf(sc->sc_dev, - "%s: bf=%p: seqno already assigned (%d)?!\n", - __func__, bf, SEQNO(bf->bf_state.bfs_seqno)); - return bf->bf_state.bfs_seqno >> IEEE80211_SEQ_SEQ_SHIFT; - } + DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: pri=%d, tid=%d, qos has seq=%d\n", + __func__, pri, tid, IEEE80211_QOS_HAS_SEQ(wh)); /* XXX Is it a control frame? Ignore */ @@ -2373,14 +2285,9 @@ ath_tx_tid_seqno_assign(struct ath_softc *sc, struct ieee80211_node *ni, } *(uint16_t *)&wh->i_seq[0] = htole16(seqno << IEEE80211_SEQ_SEQ_SHIFT); M_SEQNO_SET(m0, seqno); - bf->bf_state.bfs_seqno = seqno << IEEE80211_SEQ_SEQ_SHIFT; - bf->bf_state.bfs_seqno_assigned = 1; /* Return so caller can do something with it if needed */ - DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: bf=%p: -> seqno=%d\n", - __func__, - bf, - seqno); + DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: -> seqno=%d\n", __func__, seqno); return seqno; } @@ -2392,7 +2299,6 @@ ath_tx_tid_seqno_assign(struct ath_softc *sc, struct ieee80211_node *ni, static void ath_tx_xmit_aggr(struct ath_softc *sc, struct ath_node *an, struct ath_buf *bf) { - struct ieee80211_node *ni = &an->an_node; struct ath_tid *tid = &an->an_tid[bf->bf_state.bfs_tid]; struct ath_txq *txq = bf->bf_state.bfs_txq; struct ieee80211_tx_ampdu *tap; @@ -2408,81 +2314,10 @@ ath_tx_xmit_aggr(struct ath_softc *sc, struct ath_node *an, struct ath_buf *bf) return; } - /* - * TODO: If it's _before_ the BAW left edge, complain very loudly. - * This means something (else) has slid the left edge along - * before we got a chance to be TXed. - */ - - /* - * Is there space in this BAW for another frame? - * If not, don't bother trying to schedule it; just - * throw it back on the queue. - * - * If we allocate the sequence number before we add - * it to the BAW, we risk racing with another TX - * thread that gets in a frame into the BAW with - * seqno greater than ours. We'd then fail the - * below check and throw the frame on the tail of - * the queue. The sender would then have a hole. - * - * XXX again, we're protecting ni->ni_txseqs[tid] - * behind this hardware TXQ lock, like the rest of - * the TIDs that map to it. Ugh. - */ - if (bf->bf_state.bfs_dobaw) { - ieee80211_seq seqno; - - /* - * If the sequence number is allocated, use it. - * Otherwise, use the sequence number we WOULD - * allocate. - */ - if (bf->bf_state.bfs_seqno_assigned) - seqno = SEQNO(bf->bf_state.bfs_seqno); - else - seqno = ni->ni_txseqs[bf->bf_state.bfs_tid]; - - /* - * Check whether either the currently allocated - * sequence number _OR_ the to-be allocated - * sequence number is inside the BAW. - */ - if (! BAW_WITHIN(tap->txa_start, tap->txa_wnd, seqno)) { - ATH_TXQ_INSERT_TAIL(tid, bf, bf_list); - ath_tx_tid_sched(sc, tid); - return; - } - if (! bf->bf_state.bfs_seqno_assigned) { - int seqno; - - seqno = ath_tx_tid_seqno_assign(sc, ni, bf, bf->bf_m); - if (seqno < 0) { - device_printf(sc->sc_dev, - "%s: bf=%p, huh, seqno=-1?\n", - __func__, - bf); - /* XXX what can we even do here? */ - } - /* Flush seqno update to RAM */ - /* - * XXX This is required because the dmasetup - * XXX is done early rather than at dispatch - * XXX time. Ew, we should fix this! - */ - bus_dmamap_sync(sc->sc_dmat, bf->bf_dmamap, - BUS_DMASYNC_PREWRITE); - } - } - /* outside baw? queue */ if (bf->bf_state.bfs_dobaw && (! BAW_WITHIN(tap->txa_start, tap->txa_wnd, SEQNO(bf->bf_state.bfs_seqno)))) { - device_printf(sc->sc_dev, - "%s: bf=%p, shouldn't be outside BAW now?!\n", - __func__, - bf); ATH_TXQ_INSERT_TAIL(tid, bf, bf_list); ath_tx_tid_sched(sc, tid); return; @@ -2539,8 +2374,8 @@ ath_tx_swq(struct ath_softc *sc, struct ieee80211_node *ni, struct ath_txq *txq, tid = ath_tx_gettid(sc, m0); atid = &an->an_tid[tid]; - DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: bf=%p, pri=%d, tid=%d, qos=%d, seqno=%d\n", - __func__, bf, pri, tid, IEEE80211_QOS_HAS_SEQ(wh), SEQNO(bf->bf_state.bfs_seqno)); + DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: bf=%p, pri=%d, tid=%d, qos=%d\n", + __func__, bf, pri, tid, IEEE80211_QOS_HAS_SEQ(wh)); /* Set local packet state, used to queue packets to hardware */ bf->bf_state.bfs_tid = tid; @@ -2556,34 +2391,34 @@ ath_tx_swq(struct ath_softc *sc, struct ieee80211_node *ni, struct ath_txq *txq, ATH_TXQ_LOCK(txq); if (atid->paused) { /* TID is paused, queue */ - DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: bf=%p: paused\n", __func__, bf); + DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: paused\n", __func__); ATH_TXQ_INSERT_TAIL(atid, bf, bf_list); } else if (ath_tx_ampdu_pending(sc, an, tid)) { /* AMPDU pending; queue */ - DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: bf=%p: pending\n", __func__, bf); + DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: pending\n", __func__); ATH_TXQ_INSERT_TAIL(atid, bf, bf_list); /* XXX sched? */ } else if (ath_tx_ampdu_running(sc, an, tid)) { /* AMPDU running, attempt direct dispatch if possible */ if (txq->axq_depth < sc->sc_hwq_limit) { - DPRINTF(sc, ATH_DEBUG_SW_TX, - "%s: bf=%p: xmit_aggr\n", - __func__, bf); ath_tx_xmit_aggr(sc, an, bf); + DPRINTF(sc, ATH_DEBUG_SW_TX, + "%s: xmit_aggr\n", + __func__); } else { DPRINTF(sc, ATH_DEBUG_SW_TX, - "%s: bf=%p: ampdu; swq'ing\n", - __func__, bf); + "%s: ampdu; swq'ing\n", + __func__); ATH_TXQ_INSERT_TAIL(atid, bf, bf_list); ath_tx_tid_sched(sc, atid); } } else if (txq->axq_depth < sc->sc_hwq_limit) { /* AMPDU not running, attempt direct dispatch */ - DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: bf=%p: xmit_normal\n", __func__, bf); + DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: xmit_normal\n", __func__); ath_tx_xmit_normal(sc, txq, bf); } else { /* Busy; queue */ - DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: bf=%p: swq'ing\n", __func__, bf); + DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: swq'ing\n", __func__); ATH_TXQ_INSERT_TAIL(atid, bf, bf_list); ath_tx_tid_sched(sc, atid); } @@ -2873,12 +2708,10 @@ ath_tx_tid_drain(struct ath_softc *sc, struct ath_node *an, if (t == 0) { device_printf(sc->sc_dev, "%s: node %p: bf=%p: addbaw=%d, dobaw=%d, " - "seqno_assign=%d, seqno_required=%d, seqno=%d, retry=%d\n", + "seqno=%d, retry=%d\n", __func__, ni, bf, bf->bf_state.bfs_addedbaw, bf->bf_state.bfs_dobaw, - bf->bf_state.bfs_need_seqno, - bf->bf_state.bfs_seqno_assigned, SEQNO(bf->bf_state.bfs_seqno), bf->bf_state.bfs_retries); device_printf(sc->sc_dev, @@ -2888,11 +2721,11 @@ ath_tx_tid_drain(struct ath_softc *sc, struct ath_node *an, tid->hwq_depth, tid->bar_wait); device_printf(sc->sc_dev, - "%s: node %p: bf=%p: tid %d: txq_depth=%d, " + "%s: node %p: tid %d: txq_depth=%d, " "txq_aggr_depth=%d, sched=%d, paused=%d, " "hwq_depth=%d, incomp=%d, baw_head=%d, " "baw_tail=%d txa_start=%d, ni_txseqs=%d\n", - __func__, ni, bf, tid->tid, txq->axq_depth, + __func__, ni, tid->tid, txq->axq_depth, txq->axq_aggr_depth, tid->sched, tid->paused, tid->hwq_depth, tid->incomp, tid->baw_head, tid->baw_tail, tap == NULL ? -1 : tap->txa_start, diff --git a/sys/dev/ath/if_ath_tx.h b/sys/dev/ath/if_ath_tx.h index 979a51b128b3..958acf9449e8 100644 --- a/sys/dev/ath/if_ath_tx.h +++ b/sys/dev/ath/if_ath_tx.h @@ -109,8 +109,6 @@ extern void ath_tx_addto_baw(struct ath_softc *sc, struct ath_node *an, struct ath_tid *tid, struct ath_buf *bf); extern struct ieee80211_tx_ampdu * ath_tx_get_tx_tid(struct ath_node *an, int tid); -extern int ath_tx_tid_seqno_assign(struct ath_softc *sc, - struct ieee80211_node *ni, struct ath_buf *bf, struct mbuf *m0); /* TX addba handling */ extern int ath_addba_request(struct ieee80211_node *ni, diff --git a/sys/dev/ath/if_ath_tx_ht.c b/sys/dev/ath/if_ath_tx_ht.c index a2fc1c00eb94..96a153427d81 100644 --- a/sys/dev/ath/if_ath_tx_ht.c +++ b/sys/dev/ath/if_ath_tx_ht.c @@ -644,7 +644,7 @@ ATH_AGGR_STATUS ath_tx_form_aggr(struct ath_softc *sc, struct ath_node *an, struct ath_tid *tid, ath_bufhead *bf_q) { - struct ieee80211_node *ni = &an->an_node; + //struct ieee80211_node *ni = &an->an_node; struct ath_buf *bf, *bf_first = NULL, *bf_prev = NULL; int nframes = 0; uint16_t aggr_limit = 0, al = 0, bpad = 0, al_delta, h_baw; @@ -750,75 +750,12 @@ ath_tx_form_aggr(struct ath_softc *sc, struct ath_node *an, struct ath_tid *tid, bf_first->bf_state.bfs_txflags & (HAL_TXDESC_RTSENA | HAL_TXDESC_CTSENA); - /* - * TODO: If it's _before_ the BAW left edge, complain very - * loudly. - * - * This means something (else) has slid the left edge along - * before we got a chance to be TXed. - */ - - /* - * Check if we have space in the BAW for this frame before - * we add it. - * - * see ath_tx_xmit_aggr() for more info. - */ - if (bf->bf_state.bfs_dobaw) { - ieee80211_seq seqno; - - /* - * If the sequence number is allocated, use it. - * Otherwise, use the sequence number we WOULD - * allocate. - */ - if (bf->bf_state.bfs_seqno_assigned) - seqno = SEQNO(bf->bf_state.bfs_seqno); - else - seqno = ni->ni_txseqs[bf->bf_state.bfs_tid]; - - /* - * Check whether either the currently allocated - * sequence number _OR_ the to-be allocated - * sequence number is inside the BAW. - */ - if (! BAW_WITHIN(tap->txa_start, tap->txa_wnd, - seqno)) { - status = ATH_AGGR_BAW_CLOSED; - break; - } - - /* XXX check for bfs_need_seqno? */ - if (! bf->bf_state.bfs_seqno_assigned) { - int seqno; - seqno = ath_tx_tid_seqno_assign(sc, ni, bf, bf->bf_m); - if (seqno < 0) { - device_printf(sc->sc_dev, - "%s: bf=%p, huh, seqno=-1?\n", - __func__, - bf); - /* XXX what can we even do here? */ - } - /* Flush seqno update to RAM */ - /* - * XXX This is required because the dmasetup - * XXX is done early rather than at dispatch - * XXX time. Ew, we should fix this! - */ - bus_dmamap_sync(sc->sc_dmat, bf->bf_dmamap, - BUS_DMASYNC_PREWRITE); - } - } - /* * If the packet has a sequence number, do not * step outside of the block-ack window. */ if (! BAW_WITHIN(tap->txa_start, tap->txa_wnd, SEQNO(bf->bf_state.bfs_seqno))) { - device_printf(sc->sc_dev, - "%s: bf=%p, seqno=%d, outside?!\n", - __func__, bf, SEQNO(bf->bf_state.bfs_seqno)); status = ATH_AGGR_BAW_CLOSED; break; } diff --git a/sys/dev/ath/if_athvar.h b/sys/dev/ath/if_athvar.h index e197368178ed..51cfab1d7e24 100644 --- a/sys/dev/ath/if_athvar.h +++ b/sys/dev/ath/if_athvar.h @@ -216,9 +216,7 @@ struct ath_buf { bfs_istxfrag:1, /* is fragmented */ bfs_ismrr:1, /* do multi-rate TX retry */ bfs_doprot:1, /* do RTS/CTS based protection */ - bfs_doratelookup:1, /* do rate lookup before each TX */ - bfs_need_seqno:1, /* need to assign a seqno for aggr */ - bfs_seqno_assigned:1; /* seqno has been assigned */ + bfs_doratelookup:1; /* do rate lookup before each TX */ int bfs_nfl; /* next fragment length */ From c2ac9655c3485fa2ec2f5c099a31aac93607455b Mon Sep 17 00:00:00 2001 From: Adrian Chadd Date: Mon, 11 Jun 2012 07:06:49 +0000 Subject: [PATCH 113/340] Introduce a new lock debug which is specifically for making sure the _TID_ lock is held. For now the TID lock is also the TXQ lock. This is just to make sure that the right TXQ lock is held for the given TID. --- sys/dev/ath/if_ath_tx.c | 5 +++++ sys/dev/ath/if_athvar.h | 3 +++ 2 files changed, 8 insertions(+) diff --git a/sys/dev/ath/if_ath_tx.c b/sys/dev/ath/if_ath_tx.c index cb12dcaa187f..5607bd6de1d3 100644 --- a/sys/dev/ath/if_ath_tx.c +++ b/sys/dev/ath/if_ath_tx.c @@ -2030,6 +2030,7 @@ ath_tx_addto_baw(struct ath_softc *sc, struct ath_node *an, struct ieee80211_tx_ampdu *tap; ATH_TXQ_LOCK_ASSERT(sc->sc_ac2q[tid->ac]); + ATH_TID_LOCK_ASSERT(sc, tid); if (bf->bf_state.bfs_isretried) return; @@ -2102,6 +2103,7 @@ ath_tx_switch_baw_buf(struct ath_softc *sc, struct ath_node *an, int seqno = SEQNO(old_bf->bf_state.bfs_seqno); ATH_TXQ_LOCK_ASSERT(sc->sc_ac2q[tid->ac]); + ATH_TID_LOCK_ASSERT(sc, tid); tap = ath_tx_get_tx_tid(an, tid->tid); index = ATH_BA_INDEX(tap->txa_start, seqno); @@ -2304,6 +2306,7 @@ ath_tx_xmit_aggr(struct ath_softc *sc, struct ath_node *an, struct ath_buf *bf) struct ieee80211_tx_ampdu *tap; ATH_TXQ_LOCK_ASSERT(txq); + ATH_TID_LOCK_ASSERT(sc, tid); tap = ath_tx_get_tx_tid(an, tid->tid); @@ -2374,6 +2377,8 @@ ath_tx_swq(struct ath_softc *sc, struct ieee80211_node *ni, struct ath_txq *txq, tid = ath_tx_gettid(sc, m0); atid = &an->an_tid[tid]; + ATH_TID_LOCK_ASSERT(sc, atid); + DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: bf=%p, pri=%d, tid=%d, qos=%d\n", __func__, bf, pri, tid, IEEE80211_QOS_HAS_SEQ(wh)); diff --git a/sys/dev/ath/if_athvar.h b/sys/dev/ath/if_athvar.h index 51cfab1d7e24..07ed8af72e45 100644 --- a/sys/dev/ath/if_athvar.h +++ b/sys/dev/ath/if_athvar.h @@ -302,6 +302,9 @@ struct ath_txq { #define ATH_TXQ_LOCK_ASSERT(_tq) mtx_assert(&(_tq)->axq_lock, MA_OWNED) #define ATH_TXQ_IS_LOCKED(_tq) mtx_owned(&(_tq)->axq_lock) +#define ATH_TID_LOCK_ASSERT(_sc, _tid) \ + ATH_TXQ_LOCK_ASSERT((_sc)->sc_ac2q[(_tid)->ac]) + #define ATH_TXQ_INSERT_HEAD(_tq, _elm, _field) do { \ TAILQ_INSERT_HEAD(&(_tq)->axq_q, (_elm), _field); \ (_tq)->axq_depth++; \ From 42f4d0618a6b0f7d4826f8f42af114c0f6233d79 Mon Sep 17 00:00:00 2001 From: Adrian Chadd Date: Mon, 11 Jun 2012 07:08:40 +0000 Subject: [PATCH 114/340] Finish undoing the previous commit - this part of the code is no longer required. PR: kern/166190 --- sys/dev/ath/if_ath_tx.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/sys/dev/ath/if_ath_tx.c b/sys/dev/ath/if_ath_tx.c index 5607bd6de1d3..dab6c9468a94 100644 --- a/sys/dev/ath/if_ath_tx.c +++ b/sys/dev/ath/if_ath_tx.c @@ -1518,18 +1518,15 @@ ath_tx_start(struct ath_softc *sc, struct ieee80211_node *ni, * TID and thus mess with the BAW. */ seqno = ath_tx_tid_seqno_assign(sc, ni, bf, m0); + + /* + * Don't add QoS NULL frames to the BAW. + */ if (IEEE80211_QOS_HAS_SEQ(wh) && subtype != IEEE80211_FC0_SUBTYPE_QOS_NULL) { bf->bf_state.bfs_dobaw = 1; } ATH_TXQ_UNLOCK(txq); - } else { - /* No AMPDU TX, we've been assigned a sequence number. */ - if (IEEE80211_QOS_HAS_SEQ(wh)) { - /* XXX we should store the frag+seqno in bfs_seqno */ - bf->bf_state.bfs_seqno = - M_SEQNO_GET(m0) << IEEE80211_SEQ_SEQ_SHIFT; - } } /* From 4547f047bae0cee0555eaebe75a7fa53f6141ca2 Mon Sep 17 00:00:00 2001 From: Adrian Chadd Date: Mon, 11 Jun 2012 07:15:48 +0000 Subject: [PATCH 115/340] Retried frames need to be inserted in the head of the list, not the tail. This is an unfortunate byproduct of how the routine is used - it's called with the head frame on the queue, but if the frame is failed, it's inserted into the tail of the queue. Because of this, the sequence numbers would get all shuffled around and the BAW would be bumped past this sequence number, that's now at the end of the software queue. Then, whenever it's time for that frame to be transmitted, it'll be immediately outside of the BAW and TX will stall until the BAW catches up. It can also result in all kinds of weird duplicate BAW frames, leading to hilarious panics. PR: kern/166190 --- sys/dev/ath/if_ath_tx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/dev/ath/if_ath_tx.c b/sys/dev/ath/if_ath_tx.c index dab6c9468a94..d6dd07e1b795 100644 --- a/sys/dev/ath/if_ath_tx.c +++ b/sys/dev/ath/if_ath_tx.c @@ -2309,7 +2309,7 @@ ath_tx_xmit_aggr(struct ath_softc *sc, struct ath_node *an, struct ath_buf *bf) /* paused? queue */ if (tid->paused) { - ATH_TXQ_INSERT_TAIL(tid, bf, bf_list); + ATH_TXQ_INSERT_HEAD(tid, bf, bf_list); /* XXX don't sched - we're paused! */ return; } From 39f24578fbf17fb26fbe6f83c6b2548ffc51eb67 Mon Sep 17 00:00:00 2001 From: Adrian Chadd Date: Mon, 11 Jun 2012 07:29:25 +0000 Subject: [PATCH 116/340] When scheduling frames in an aggregate session, the frames should be scheduled from the head of the software queue rather than trying to queue the newly given frame. This leads to some rather unfortunate out of order (but still valid as it's inside the BAW) frame TX. This now: * Always queues the frame at the end of the software queue; * Tries to direct dispatch the frame at the head of the software queue, to try and fill up the hardware queue. TODO: * I should likely try to queue as many frames to the hardware as I can at this point, rather than doing one at a time; * ath_tx_xmit_aggr() may fail and this code assumes that it'll schedule the TID. Otherwise TX may stall. PR: kern/166190 --- sys/dev/ath/if_ath_tx.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/sys/dev/ath/if_ath_tx.c b/sys/dev/ath/if_ath_tx.c index d6dd07e1b795..56c57720a7f8 100644 --- a/sys/dev/ath/if_ath_tx.c +++ b/sys/dev/ath/if_ath_tx.c @@ -2402,7 +2402,22 @@ ath_tx_swq(struct ath_softc *sc, struct ieee80211_node *ni, struct ath_txq *txq, /* XXX sched? */ } else if (ath_tx_ampdu_running(sc, an, tid)) { /* AMPDU running, attempt direct dispatch if possible */ + + /* + * Always queue the frame to the tail of the list. + */ + ATH_TXQ_INSERT_TAIL(atid, bf, bf_list); + + /* + * If the hardware queue isn't busy, direct dispatch + * the head frame in the list. Don't schedule the + * TID - let it build some more frames first? + * + * Otherwise, schedule the TID. + */ if (txq->axq_depth < sc->sc_hwq_limit) { + bf = TAILQ_FIRST(&atid->axq_q); + ATH_TXQ_REMOVE(atid, bf, bf_list); ath_tx_xmit_aggr(sc, an, bf); DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: xmit_aggr\n", @@ -2411,7 +2426,6 @@ ath_tx_swq(struct ath_softc *sc, struct ieee80211_node *ni, struct ath_txq *txq, DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: ampdu; swq'ing\n", __func__); - ATH_TXQ_INSERT_TAIL(atid, bf, bf_list); ath_tx_tid_sched(sc, atid); } } else if (txq->axq_depth < sc->sc_hwq_limit) { From ba0e58f4fa3b4d393c6742df251534d752fd42a0 Mon Sep 17 00:00:00 2001 From: Adrian Chadd Date: Mon, 11 Jun 2012 07:31:50 +0000 Subject: [PATCH 117/340] Make sure the frames are queued to the head of the list, not the tail. See previous commit. PR: kern/166190 --- sys/dev/ath/if_ath_tx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/dev/ath/if_ath_tx.c b/sys/dev/ath/if_ath_tx.c index 56c57720a7f8..bfd52a2fe18f 100644 --- a/sys/dev/ath/if_ath_tx.c +++ b/sys/dev/ath/if_ath_tx.c @@ -2318,7 +2318,7 @@ ath_tx_xmit_aggr(struct ath_softc *sc, struct ath_node *an, struct ath_buf *bf) if (bf->bf_state.bfs_dobaw && (! BAW_WITHIN(tap->txa_start, tap->txa_wnd, SEQNO(bf->bf_state.bfs_seqno)))) { - ATH_TXQ_INSERT_TAIL(tid, bf, bf_list); + ATH_TXQ_INSERT_HEAD(tid, bf, bf_list); ath_tx_tid_sched(sc, tid); return; } From 4b6db4043f4f9be7eb7bfe9cd9b806214ab9d212 Mon Sep 17 00:00:00 2001 From: Adrian Chadd Date: Mon, 11 Jun 2012 07:35:24 +0000 Subject: [PATCH 118/340] Add another TID lock. --- sys/dev/ath/if_ath_tx.c | 1 + 1 file changed, 1 insertion(+) diff --git a/sys/dev/ath/if_ath_tx.c b/sys/dev/ath/if_ath_tx.c index bfd52a2fe18f..9abac87069ac 100644 --- a/sys/dev/ath/if_ath_tx.c +++ b/sys/dev/ath/if_ath_tx.c @@ -2149,6 +2149,7 @@ ath_tx_update_baw(struct ath_softc *sc, struct ath_node *an, int seqno = SEQNO(bf->bf_state.bfs_seqno); ATH_TXQ_LOCK_ASSERT(sc->sc_ac2q[tid->ac]); + ATH_TID_LOCK_ASSERT(sc, tid); tap = ath_tx_get_tx_tid(an, tid->tid); index = ATH_BA_INDEX(tap->txa_start, seqno); From 7561cb5c8b386140f01f0d6b0560fee7f5127dd6 Mon Sep 17 00:00:00 2001 From: Adrian Chadd Date: Mon, 11 Jun 2012 07:44:16 +0000 Subject: [PATCH 119/340] Wrap the whole (software) TX path from ifnet dequeue to software queue (or direct dispatch) behind the TXQ lock (which, remember, is doubling as the TID lock too for now.) This ensures that: (a) the sequence number and the CCMP PN allocation is done together; (b) overlapping transmit paths don't interleave frames, so we don't end up with the original issue that triggered kern/166190. Ie, that we don't end up with seqno A, B in thread 1, C, D in thread 2, and they being queued to the software queue as "A C D B" or similar, leading to the BAW stalls. This has been tested: * both STA and AP modes with INVARIANTS and WITNESS; * TCP and UDP TX; * both STA->AP and AP->STA. STA is a Routerstation Pro (single CPU MIPS) and the AP is a dual-core Centrino. PR: kern/166190 --- sys/dev/ath/if_ath_tx.c | 105 +++++++++++++++++++++++++++------------- 1 file changed, 71 insertions(+), 34 deletions(-) diff --git a/sys/dev/ath/if_ath_tx.c b/sys/dev/ath/if_ath_tx.c index 9abac87069ac..cae07b513526 100644 --- a/sys/dev/ath/if_ath_tx.c +++ b/sys/dev/ath/if_ath_tx.c @@ -1171,6 +1171,15 @@ ath_tx_normal_setup(struct ath_softc *sc, struct ieee80211_node *ni, struct ath_node *an; u_int pri; + /* + * To ensure that both sequence numbers and the CCMP PN handling + * is "correct", make sure that the relevant TID queue is locked. + * Otherwise the CCMP PN and seqno may appear out of order, causing + * re-ordered frames to have out of order CCMP PN's, resulting + * in many, many frame drops. + */ + ATH_TXQ_LOCK_ASSERT(txq); + wh = mtod(m0, struct ieee80211_frame *); iswep = wh->i_fc[1] & IEEE80211_FC1_WEP; ismcast = IEEE80211_IS_MULTICAST(wh->i_addr1); @@ -1506,11 +1515,18 @@ ath_tx_start(struct ath_softc *sc, struct ieee80211_node *ni, /* XXX should just bzero the bf_state? */ bf->bf_state.bfs_dobaw = 0; + /* + * Acquire the TXQ lock early, so both the encap and seqno + * are allocated together. + */ + ATH_TXQ_LOCK(txq); + /* A-MPDU TX? Manually set sequence number */ - /* Don't do it whilst pending; the net80211 layer still assigns them */ - /* XXX do we need locking here? */ + /* + * Don't do it whilst pending; the net80211 layer still + * assigns them. + */ if (is_ampdu_tx) { - ATH_TXQ_LOCK(txq); /* * Always call; this function will * handle making sure that null data frames @@ -1526,7 +1542,6 @@ ath_tx_start(struct ath_softc *sc, struct ieee80211_node *ni, subtype != IEEE80211_FC0_SUBTYPE_QOS_NULL) { bf->bf_state.bfs_dobaw = 1; } - ATH_TXQ_UNLOCK(txq); } /* @@ -1545,7 +1560,7 @@ ath_tx_start(struct ath_softc *sc, struct ieee80211_node *ni, r = ath_tx_normal_setup(sc, ni, bf, m0, txq); if (r != 0) - return r; + goto done; /* At this point m0 could have changed! */ m0 = bf->bf_m; @@ -1570,16 +1585,12 @@ ath_tx_start(struct ath_softc *sc, struct ieee80211_node *ni, if (txq == &avp->av_mcastq) { DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: bf=%p: mcastq: TX'ing\n", __func__, bf); - ATH_TXQ_LOCK(txq); ath_tx_xmit_normal(sc, txq, bf); - ATH_TXQ_UNLOCK(txq); } else if (type == IEEE80211_FC0_TYPE_CTL && subtype == IEEE80211_FC0_SUBTYPE_BAR) { DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: BAR: TX'ing direct\n", __func__); - ATH_TXQ_LOCK(txq); ath_tx_xmit_normal(sc, txq, bf); - ATH_TXQ_UNLOCK(txq); } else { /* add to software queue */ DPRINTF(sc, ATH_DEBUG_SW_TX, @@ -1591,10 +1602,10 @@ ath_tx_start(struct ath_softc *sc, struct ieee80211_node *ni, * For now, since there's no software queue, * direct-dispatch to the hardware. */ - ATH_TXQ_LOCK(txq); ath_tx_xmit_normal(sc, txq, bf); - ATH_TXQ_UNLOCK(txq); #endif +done: + ATH_TXQ_UNLOCK(txq); return 0; } @@ -1630,10 +1641,29 @@ ath_tx_raw_start(struct ath_softc *sc, struct ieee80211_node *ni, /* XXX honor IEEE80211_BPF_DATAPAD */ pktlen = m0->m_pkthdr.len - (hdrlen & 3) + IEEE80211_CRC_LEN; - DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: ismcast=%d\n", __func__, ismcast); + pri = params->ibp_pri & 3; + /* Override pri if the frame isn't a QoS one */ + if (! IEEE80211_QOS_HAS_SEQ(wh)) + pri = ath_tx_getac(sc, m0); + + /* XXX If it's an ADDBA, override the correct queue */ + do_override = ath_tx_action_frame_override_queue(sc, ni, m0, &o_tid); + + /* Map ADDBA to the correct priority */ + if (do_override) { +#if 0 + device_printf(sc->sc_dev, + "%s: overriding tid %d pri %d -> %d\n", + __func__, o_tid, pri, TID_TO_WME_AC(o_tid)); +#endif + pri = TID_TO_WME_AC(o_tid); + } + + ATH_TXQ_LOCK(sc->sc_ac2q[pri]); + /* Handle encryption twiddling if needed */ if (! ath_tx_tag_crypto(sc, ni, m0, params->ibp_flags & IEEE80211_BPF_CRYPTO, 0, @@ -1688,11 +1718,6 @@ ath_tx_raw_start(struct ath_softc *sc, struct ieee80211_node *ni, if (flags & (HAL_TXDESC_RTSENA|HAL_TXDESC_CTSENA)) bf->bf_state.bfs_ctsrate0 = params->ibp_ctsrate; - pri = params->ibp_pri & 3; - /* Override pri if the frame isn't a QoS one */ - if (! IEEE80211_QOS_HAS_SEQ(wh)) - pri = ath_tx_getac(sc, m0); - /* * NB: we mark all packets as type PSPOLL so the h/w won't * set the sequence number, duration, etc. @@ -1774,19 +1799,6 @@ ath_tx_raw_start(struct ath_softc *sc, struct ieee80211_node *ni, /* NB: no buffered multicast in power save support */ - /* XXX If it's an ADDBA, override the correct queue */ - do_override = ath_tx_action_frame_override_queue(sc, ni, m0, &o_tid); - - /* Map ADDBA to the correct priority */ - if (do_override) { -#if 0 - device_printf(sc->sc_dev, - "%s: overriding tid %d pri %d -> %d\n", - __func__, o_tid, pri, TID_TO_WME_AC(o_tid)); -#endif - pri = TID_TO_WME_AC(o_tid); - } - /* * If we're overiding the ADDBA destination, dump directly * into the hardware queue, right after any pending @@ -1796,13 +1808,12 @@ ath_tx_raw_start(struct ath_softc *sc, struct ieee80211_node *ni, __func__, do_override); if (do_override) { - ATH_TXQ_LOCK(sc->sc_ac2q[pri]); ath_tx_xmit_normal(sc, sc->sc_ac2q[pri], bf); - ATH_TXQ_UNLOCK(sc->sc_ac2q[pri]); } else { /* Queue to software queue */ ath_tx_swq(sc, ni, sc->sc_ac2q[pri], bf); } + ATH_TXQ_UNLOCK(sc->sc_ac2q[pri]); return 0; } @@ -2032,6 +2043,15 @@ ath_tx_addto_baw(struct ath_softc *sc, struct ath_node *an, if (bf->bf_state.bfs_isretried) return; + if (! bf->bf_state.bfs_dobaw) { + device_printf(sc->sc_dev, + "%s: dobaw=0, seqno=%d, window %d:%d\n", + __func__, + SEQNO(bf->bf_state.bfs_seqno), + tap->txa_start, + tap->txa_wnd); + } + tap = ath_tx_get_tx_tid(an, tid->tid); if (bf->bf_state.bfs_addedbaw) @@ -2042,6 +2062,20 @@ ath_tx_addto_baw(struct ath_softc *sc, struct ath_node *an, tap->txa_start, tap->txa_wnd, tid->baw_head, tid->baw_tail); + /* + * Verify that the given sequence number is not outside of the + * BAW. Complain loudly if that's the case. + */ + if (! BAW_WITHIN(tap->txa_start, tap->txa_wnd, + SEQNO(bf->bf_state.bfs_seqno))) { + device_printf(sc->sc_dev, + "%s: bf=%p: outside of BAW?? tid=%d, seqno %d; window %d:%d; " + "baw head=%d tail=%d\n", + __func__, bf, tid->tid, SEQNO(bf->bf_state.bfs_seqno), + tap->txa_start, tap->txa_wnd, tid->baw_head, + tid->baw_tail); + } + /* * ni->ni_txseqs[] is the currently allocated seqno. * the txa state contains the current baw start. @@ -2265,6 +2299,8 @@ ath_tx_tid_seqno_assign(struct ath_softc *sc, struct ieee80211_node *ni, if (! IEEE80211_QOS_HAS_SEQ(wh)) return -1; + ATH_TID_LOCK_ASSERT(sc, &(ATH_NODE(ni)->an_tid[tid])); + /* * Is it a QOS NULL Data frame? Give it a sequence number from * the default TID (IEEE80211_NONQOS_TID.) @@ -2276,6 +2312,7 @@ ath_tx_tid_seqno_assign(struct ath_softc *sc, struct ieee80211_node *ni, */ subtype = wh->i_fc[0] & IEEE80211_FC0_SUBTYPE_MASK; if (subtype == IEEE80211_FC0_SUBTYPE_QOS_NULL) { + /* XXX no locking for this TID? This is a bit of a problem. */ seqno = ni->ni_txseqs[IEEE80211_NONQOS_TID]; INCR(ni->ni_txseqs[IEEE80211_NONQOS_TID], IEEE80211_SEQ_RANGE); } else { @@ -2369,6 +2406,8 @@ ath_tx_swq(struct ath_softc *sc, struct ieee80211_node *ni, struct ath_txq *txq, int pri, tid; struct mbuf *m0 = bf->bf_m; + ATH_TXQ_LOCK_ASSERT(txq); + /* Fetch the TID - non-QoS frames get assigned to TID 16 */ wh = mtod(m0, struct ieee80211_frame *); pri = ath_tx_getac(sc, m0); @@ -2391,7 +2430,6 @@ ath_tx_swq(struct ath_softc *sc, struct ieee80211_node *ni, struct ath_txq *txq, * If the TID is paused or the traffic it outside BAW, software * queue it. */ - ATH_TXQ_LOCK(txq); if (atid->paused) { /* TID is paused, queue */ DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: paused\n", __func__); @@ -2439,7 +2477,6 @@ ath_tx_swq(struct ath_softc *sc, struct ieee80211_node *ni, struct ath_txq *txq, ATH_TXQ_INSERT_TAIL(atid, bf, bf_list); ath_tx_tid_sched(sc, atid); } - ATH_TXQ_UNLOCK(txq); } /* From 2d9cf57e18654edda53bcb460ca66641ba69ed75 Mon Sep 17 00:00:00 2001 From: Martin Matuska Date: Mon, 11 Jun 2012 11:35:22 +0000 Subject: [PATCH 120/340] Introduce "feature flags" for ZFS pools (bump SPA version to 5000). Add first feature "com.delphix:async_destroy" (asynchronous destroy of ZFS datasets). Implement features support in ZFS boot code. Illumos revisions merged: 13700:2889e2596bd6 13701:1949b688d5fb 2619 asynchronous destruction of ZFS file systems 2747 SPA versioning with zfs feature flags References: https://www.illumos.org/issues/2619 https://www.illumos.org/issues/2747 Obtained from: illumos (issue #2619, #2747) MFC after: 1 month --- UPDATING | 11 + cddl/contrib/opensolaris/cmd/zdb/zdb.c | 72 ++- cddl/contrib/opensolaris/cmd/zhack/zhack.c | 533 ++++++++++++++++++ .../opensolaris/cmd/zpool/zpool-features.5 | 174 ++++++ cddl/contrib/opensolaris/cmd/zpool/zpool.8 | 62 +- .../opensolaris/cmd/zpool/zpool_main.c | 204 ++++++- cddl/contrib/opensolaris/cmd/ztest/ztest.c | 39 +- .../opensolaris/lib/libnvpair/libnvpair.c | 5 + .../opensolaris/lib/libzfs/common/libzfs.h | 22 + .../lib/libzfs/common/libzfs_config.c | 35 ++ .../lib/libzfs/common/libzfs_pool.c | 223 +++++++- .../lib/libzfs/common/libzfs_status.c | 18 +- .../lib/libzfs/common/libzfs_util.c | 19 +- .../opensolaris/lib/libzpool/common/kernel.c | 4 +- cddl/lib/libnvpair/Makefile | 7 +- cddl/lib/libzfs/Makefile | 1 + cddl/sbin/zpool/Makefile | 2 +- cddl/usr.bin/ztest/Makefile | 7 +- cddl/usr.sbin/Makefile | 4 +- cddl/usr.sbin/zhack/Makefile | 29 + sys/boot/zfs/zfsimpl.c | 67 ++- sys/cddl/boot/zfs/zfsimpl.h | 14 +- .../opensolaris/common/nvpair/fnvpair.c | 498 ++++++++++++++++ .../opensolaris/common/zfs/zfeature_common.c | 155 +++++ .../opensolaris/common/zfs/zfeature_common.h | 70 +++ .../opensolaris/common/zfs/zpool_prop.c | 22 + .../opensolaris/uts/common/Makefile.files | 10 +- .../opensolaris/uts/common/fs/zfs/arc.c | 4 +- .../opensolaris/uts/common/fs/zfs/bptree.c | 224 ++++++++ .../opensolaris/uts/common/fs/zfs/dbuf.c | 3 +- .../opensolaris/uts/common/fs/zfs/ddt.c | 9 +- .../opensolaris/uts/common/fs/zfs/dmu.c | 126 +++-- .../opensolaris/uts/common/fs/zfs/dmu_send.c | 22 +- .../uts/common/fs/zfs/dmu_traverse.c | 107 +++- .../opensolaris/uts/common/fs/zfs/dmu_tx.c | 5 +- .../opensolaris/uts/common/fs/zfs/dnode.c | 19 +- .../uts/common/fs/zfs/dnode_sync.c | 4 +- .../uts/common/fs/zfs/dsl_dataset.c | 183 ++++-- .../opensolaris/uts/common/fs/zfs/dsl_deleg.c | 8 +- .../opensolaris/uts/common/fs/zfs/dsl_pool.c | 57 +- .../opensolaris/uts/common/fs/zfs/dsl_scan.c | 132 ++--- .../opensolaris/uts/common/fs/zfs/sa.c | 16 +- .../opensolaris/uts/common/fs/zfs/spa.c | 466 +++++++++++++-- .../uts/common/fs/zfs/spa_config.c | 9 +- .../opensolaris/uts/common/fs/zfs/spa_misc.c | 57 +- .../uts/common/fs/zfs/sys/bptree.h | 64 +++ .../opensolaris/uts/common/fs/zfs/sys/dmu.h | 96 +++- .../uts/common/fs/zfs/sys/dmu_traverse.h | 4 + .../uts/common/fs/zfs/sys/dsl_dataset.h | 9 +- .../uts/common/fs/zfs/sys/dsl_pool.h | 9 +- .../uts/common/fs/zfs/sys/dsl_scan.h | 4 + .../opensolaris/uts/common/fs/zfs/sys/spa.h | 17 +- .../uts/common/fs/zfs/sys/spa_impl.h | 9 +- .../opensolaris/uts/common/fs/zfs/sys/vdev.h | 5 +- .../uts/common/fs/zfs/sys/vdev_impl.h | 3 +- .../opensolaris/uts/common/fs/zfs/sys/zap.h | 9 +- .../uts/common/fs/zfs/sys/zfeature.h | 52 ++ .../opensolaris/uts/common/fs/zfs/sys/zio.h | 14 + .../opensolaris/uts/common/fs/zfs/vdev.c | 7 +- .../uts/common/fs/zfs/vdev_label.c | 103 +++- .../opensolaris/uts/common/fs/zfs/zap.c | 14 + .../opensolaris/uts/common/fs/zfs/zap_micro.c | 6 +- .../opensolaris/uts/common/fs/zfs/zfeature.c | 414 ++++++++++++++ .../opensolaris/uts/common/fs/zfs/zfs_ioctl.c | 19 +- .../uts/common/fs/zfs/zfs_vfsops.c | 2 +- .../opensolaris/uts/common/fs/zfs/zio.c | 46 +- .../opensolaris/uts/common/sys/fs/zfs.h | 20 +- .../opensolaris/uts/common/sys/nvpair.h | 68 +++ sys/modules/zfs/Makefile | 1 + 69 files changed, 4277 insertions(+), 476 deletions(-) create mode 100644 cddl/contrib/opensolaris/cmd/zhack/zhack.c create mode 100644 cddl/contrib/opensolaris/cmd/zpool/zpool-features.5 create mode 100644 cddl/usr.sbin/zhack/Makefile create mode 100644 sys/cddl/contrib/opensolaris/common/nvpair/fnvpair.c create mode 100644 sys/cddl/contrib/opensolaris/common/zfs/zfeature_common.c create mode 100644 sys/cddl/contrib/opensolaris/common/zfs/zfeature_common.h create mode 100644 sys/cddl/contrib/opensolaris/uts/common/fs/zfs/bptree.c create mode 100644 sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/bptree.h create mode 100644 sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfeature.h create mode 100644 sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfeature.c diff --git a/UPDATING b/UPDATING index 89021c5015bb..4f5a91d521aa 100644 --- a/UPDATING +++ b/UPDATING @@ -24,6 +24,17 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 10.x IS SLOW: disable the most expensive debugging functionality run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) +20120611: + A new version of ZFS (pool version 5000) has been merged to -HEAD. + Starting with this version the old system of ZFS pool versioning + is superseded by "feature flags". This concept enables forward + compatibility against certain future changes in functionality of ZFS + pools. The first read-only compatible "feature flag" for ZFS pools + is named "com.delphix:async_destroy". For more information + read the new zpool-features(5) manual page. + Please refer to the "ZFS notes" section of this file for information + on upgrading boot ZFS pools. + 20120417: The malloc(3) implementation embedded in libc now uses sources imported as contrib/jemalloc. The most disruptive API change is to diff --git a/cddl/contrib/opensolaris/cmd/zdb/zdb.c b/cddl/contrib/opensolaris/cmd/zdb/zdb.c index ee169cede8a1..2f8aa0e04970 100644 --- a/cddl/contrib/opensolaris/cmd/zdb/zdb.c +++ b/cddl/contrib/opensolaris/cmd/zdb/zdb.c @@ -18,8 +18,10 @@ * * CDDL HEADER END */ + /* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012 by Delphix. All rights reserved. */ #include @@ -54,6 +56,7 @@ #include #include #include +#include #undef ZFS_MAXNAMELEN #undef verify #include @@ -63,7 +66,8 @@ #define ZDB_CHECKSUM_NAME(idx) ((idx) < ZIO_CHECKSUM_FUNCTIONS ? \ zio_checksum_table[(idx)].ci_name : "UNKNOWN") #define ZDB_OT_NAME(idx) ((idx) < DMU_OT_NUMTYPES ? \ - dmu_ot[(idx)].ot_name : "UNKNOWN") + dmu_ot[(idx)].ot_name : DMU_OT_IS_VALID(idx) ? \ + dmu_ot_byteswap[DMU_OT_BYTESWAP(idx)].ob_name : "UNKNOWN") #define ZDB_OT_TYPE(idx) ((idx) < DMU_OT_NUMTYPES ? (idx) : DMU_OT_NUMTYPES) #ifndef lint @@ -1088,7 +1092,7 @@ dump_dsl_dataset(objset_t *os, uint64_t object, void *data, size_t size) ASSERT(size == sizeof (*ds)); crtime = ds->ds_creation_time; - zdb_nicenum(ds->ds_used_bytes, used); + zdb_nicenum(ds->ds_referenced_bytes, used); zdb_nicenum(ds->ds_compressed_bytes, compressed); zdb_nicenum(ds->ds_uncompressed_bytes, uncompressed); zdb_nicenum(ds->ds_unique_bytes, unique); @@ -1130,6 +1134,44 @@ dump_dsl_dataset(objset_t *os, uint64_t object, void *data, size_t size) (void) printf("\t\tbp = %s\n", blkbuf); } +/* ARGSUSED */ +static int +dump_bptree_cb(void *arg, const blkptr_t *bp, dmu_tx_t *tx) +{ + char blkbuf[BP_SPRINTF_LEN]; + + if (bp->blk_birth != 0) { + sprintf_blkptr(blkbuf, bp); + (void) printf("\t%s\n", blkbuf); + } + return (0); +} + +static void +dump_bptree(objset_t *os, uint64_t obj, char *name) +{ + char bytes[32]; + bptree_phys_t *bt; + dmu_buf_t *db; + + if (dump_opt['d'] < 3) + return; + + VERIFY3U(0, ==, dmu_bonus_hold(os, obj, FTAG, &db)); + bt = db->db_data; + zdb_nicenum(bt->bt_bytes, bytes); + (void) printf("\n %s: %llu datasets, %s\n", + name, (unsigned long long)(bt->bt_end - bt->bt_begin), bytes); + dmu_buf_rele(db, FTAG); + + if (dump_opt['d'] < 5) + return; + + (void) printf("\n"); + + (void) bptree_iterate(os, obj, B_FALSE, dump_bptree_cb, NULL, NULL); +} + /* ARGSUSED */ static int dump_bpobj_cb(void *arg, const blkptr_t *bp, dmu_tx_t *tx) @@ -1883,11 +1925,13 @@ typedef struct zdb_blkstats { */ #define ZDB_OT_DEFERRED (DMU_OT_NUMTYPES + 0) #define ZDB_OT_DITTO (DMU_OT_NUMTYPES + 1) -#define ZDB_OT_TOTAL (DMU_OT_NUMTYPES + 2) +#define ZDB_OT_OTHER (DMU_OT_NUMTYPES + 2) +#define ZDB_OT_TOTAL (DMU_OT_NUMTYPES + 3) static char *zdb_ot_extname[] = { "deferred free", "dedup ditto", + "other", "Total", }; @@ -1968,9 +2012,10 @@ zdb_blkptr_cb(spa_t *spa, zilog_t *zilog, const blkptr_t *bp, arc_buf_t *pbuf, type = BP_GET_TYPE(bp); - zdb_count_block(zcb, zilog, bp, type); + zdb_count_block(zcb, zilog, bp, + (type & DMU_OT_NEWTYPE) ? ZDB_OT_OTHER : type); - is_metadata = (BP_GET_LEVEL(bp) != 0 || dmu_ot[type].ot_metadata); + is_metadata = (BP_GET_LEVEL(bp) != 0 || DMU_OT_IS_METADATA(type)); if (dump_opt['c'] > 1 || (dump_opt['c'] && is_metadata)) { int ioerr; @@ -2197,6 +2242,12 @@ dump_block_stats(spa_t *spa) (void) bpobj_iterate_nofree(&spa->spa_dsl_pool->dp_free_bpobj, count_block_cb, &zcb, NULL); } + if (spa_feature_is_active(spa, + &spa_feature_table[SPA_FEATURE_ASYNC_DESTROY])) { + VERIFY3U(0, ==, bptree_iterate(spa->spa_meta_objset, + spa->spa_dsl_pool->dp_bptree_obj, B_FALSE, count_block_cb, + &zcb, NULL)); + } if (dump_opt['c'] > 1) flags |= TRAVERSE_PREFETCH_DATA; @@ -2373,7 +2424,7 @@ zdb_ddt_add_cb(spa_t *spa, zilog_t *zilog, const blkptr_t *bp, } if (BP_IS_HOLE(bp) || BP_GET_CHECKSUM(bp) == ZIO_CHECKSUM_OFF || - BP_GET_LEVEL(bp) > 0 || dmu_ot[BP_GET_TYPE(bp)].ot_metadata) + BP_GET_LEVEL(bp) > 0 || DMU_OT_IS_METADATA(BP_GET_TYPE(bp))) return (0); ddt_key_fill(&zdde_search.zdde_key, bp); @@ -2478,7 +2529,14 @@ dump_zpool(spa_t *spa) dump_bpobj(&spa->spa_deferred_bpobj, "Deferred frees"); if (spa_version(spa) >= SPA_VERSION_DEADLISTS) { dump_bpobj(&spa->spa_dsl_pool->dp_free_bpobj, - "Pool frees"); + "Pool snapshot frees"); + } + + if (spa_feature_is_active(spa, + &spa_feature_table[SPA_FEATURE_ASYNC_DESTROY])) { + dump_bptree(spa->spa_meta_objset, + spa->spa_dsl_pool->dp_bptree_obj, + "Pool dataset frees"); } dump_dtl(spa->spa_root_vdev, 0); } diff --git a/cddl/contrib/opensolaris/cmd/zhack/zhack.c b/cddl/contrib/opensolaris/cmd/zhack/zhack.c new file mode 100644 index 000000000000..2618cea32b41 --- /dev/null +++ b/cddl/contrib/opensolaris/cmd/zhack/zhack.c @@ -0,0 +1,533 @@ +/* + * CDDL HEADER START + * + * The contents of this file are subject to the terms of the + * Common Development and Distribution License (the "License"). + * You may not use this file except in compliance with the License. + * + * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE + * or http://www.opensolaris.org/os/licensing. + * See the License for the specific language governing permissions + * and limitations under the License. + * + * When distributing Covered Code, include this CDDL HEADER in each + * file and include the License file at usr/src/OPENSOLARIS.LICENSE. + * If applicable, add the following below this CDDL HEADER, with the + * fields enclosed by brackets "[]" replaced with your own identifying + * information: Portions Copyright [yyyy] [name of copyright owner] + * + * CDDL HEADER END + */ + +/* + * Copyright (c) 2012 by Delphix. All rights reserved. + */ + +/* + * zhack is a debugging tool that can write changes to ZFS pool using libzpool + * for testing purposes. Altering pools with zhack is unsupported and may + * result in corrupted pools. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#undef ZFS_MAXNAMELEN +#undef verify +#include + +extern boolean_t zfeature_checks_disable; + +const char cmdname[] = "zhack"; +libzfs_handle_t *g_zfs; +static importargs_t g_importargs; +static char *g_pool; +static boolean_t g_readonly; + +static void +usage(void) +{ + (void) fprintf(stderr, + "Usage: %s [-c cachefile] [-d dir] ...\n" + "where is one of the following:\n" + "\n", cmdname); + + (void) fprintf(stderr, + " feature stat \n" + " print information about enabled features\n" + " feature enable [-d desc] \n" + " add a new enabled feature to the pool\n" + " -d sets the feature's description\n" + " feature ref [-md] \n" + " change the refcount on the given feature\n" + " -d decrease instead of increase the refcount\n" + " -m add the feature to the label if increasing refcount\n" + "\n" + " : should be a feature guid\n"); + exit(1); +} + + +static void +fatal(const char *fmt, ...) +{ + va_list ap; + + va_start(ap, fmt); + (void) fprintf(stderr, "%s: ", cmdname); + (void) vfprintf(stderr, fmt, ap); + va_end(ap); + (void) fprintf(stderr, "\n"); + + exit(1); +} + +/* ARGSUSED */ +static int +space_delta_cb(dmu_object_type_t bonustype, void *data, + uint64_t *userp, uint64_t *groupp) +{ + /* + * Is it a valid type of object to track? + */ + if (bonustype != DMU_OT_ZNODE && bonustype != DMU_OT_SA) + return (ENOENT); + (void) fprintf(stderr, "modifying object that needs user accounting"); + abort(); + /* NOTREACHED */ +} + +/* + * Target is the dataset whose pool we want to open. + */ +static void +import_pool(const char *target, boolean_t readonly) +{ + nvlist_t *config; + nvlist_t *pools; + int error; + char *sepp; + spa_t *spa; + nvpair_t *elem; + nvlist_t *props; + const char *name; + + kernel_init(readonly ? FREAD : (FREAD | FWRITE)); + g_zfs = libzfs_init(); + ASSERT(g_zfs != NULL); + + dmu_objset_register_type(DMU_OST_ZFS, space_delta_cb); + + g_readonly = readonly; + + /* + * If we only want readonly access, it's OK if we find + * a potentially-active (ie, imported into the kernel) pool from the + * default cachefile. + */ + if (readonly && spa_open(target, &spa, FTAG) == 0) { + spa_close(spa, FTAG); + return; + } + + g_importargs.unique = B_TRUE; + g_importargs.can_be_active = readonly; + g_pool = strdup(target); + if ((sepp = strpbrk(g_pool, "/@")) != NULL) + *sepp = '\0'; + g_importargs.poolname = g_pool; + pools = zpool_search_import(g_zfs, &g_importargs); + + if (pools == NULL || nvlist_next_nvpair(pools, NULL) == NULL) { + if (!g_importargs.can_be_active) { + g_importargs.can_be_active = B_TRUE; + if (zpool_search_import(g_zfs, &g_importargs) != NULL || + spa_open(target, &spa, FTAG) == 0) { + fatal("cannot import '%s': pool is active; run " + "\"zpool export %s\" first\n", + g_pool, g_pool); + } + } + + fatal("cannot import '%s': no such pool available\n", g_pool); + } + + elem = nvlist_next_nvpair(pools, NULL); + name = nvpair_name(elem); + verify(nvpair_value_nvlist(elem, &config) == 0); + + props = NULL; + if (readonly) { + verify(nvlist_alloc(&props, NV_UNIQUE_NAME, 0) == 0); + verify(nvlist_add_uint64(props, + zpool_prop_to_name(ZPOOL_PROP_READONLY), 1) == 0); + } + + zfeature_checks_disable = B_TRUE; + error = spa_import(name, config, props, ZFS_IMPORT_NORMAL); + zfeature_checks_disable = B_FALSE; + if (error == EEXIST) + error = 0; + + if (error) + fatal("can't import '%s': %s", name, strerror(error)); +} + +static void +zhack_spa_open(const char *target, boolean_t readonly, void *tag, spa_t **spa) +{ + int err; + + import_pool(target, readonly); + + zfeature_checks_disable = B_TRUE; + err = spa_open(target, spa, tag); + zfeature_checks_disable = B_FALSE; + + if (err != 0) + fatal("cannot open '%s': %s", target, strerror(err)); + if (spa_version(*spa) < SPA_VERSION_FEATURES) { + fatal("'%s' has version %d, features not enabled", target, + (int)spa_version(*spa)); + } +} + +static void +dump_obj(objset_t *os, uint64_t obj, const char *name) +{ + zap_cursor_t zc; + zap_attribute_t za; + + (void) printf("%s_obj:\n", name); + + for (zap_cursor_init(&zc, os, obj); + zap_cursor_retrieve(&zc, &za) == 0; + zap_cursor_advance(&zc)) { + if (za.za_integer_length == 8) { + ASSERT(za.za_num_integers == 1); + (void) printf("\t%s = %llu\n", + za.za_name, (u_longlong_t)za.za_first_integer); + } else { + ASSERT(za.za_integer_length == 1); + char val[1024]; + VERIFY(zap_lookup(os, obj, za.za_name, + 1, sizeof (val), val) == 0); + (void) printf("\t%s = %s\n", za.za_name, val); + } + } + zap_cursor_fini(&zc); +} + +static void +dump_mos(spa_t *spa) +{ + nvlist_t *nv = spa->spa_label_features; + + (void) printf("label config:\n"); + for (nvpair_t *pair = nvlist_next_nvpair(nv, NULL); + pair != NULL; + pair = nvlist_next_nvpair(nv, pair)) { + (void) printf("\t%s\n", nvpair_name(pair)); + } +} + +static void +zhack_do_feature_stat(int argc, char **argv) +{ + spa_t *spa; + objset_t *os; + char *target; + + argc--; + argv++; + + if (argc < 1) { + (void) fprintf(stderr, "error: missing pool name\n"); + usage(); + } + target = argv[0]; + + zhack_spa_open(target, B_TRUE, FTAG, &spa); + os = spa->spa_meta_objset; + + dump_obj(os, spa->spa_feat_for_read_obj, "for_read"); + dump_obj(os, spa->spa_feat_for_write_obj, "for_write"); + dump_obj(os, spa->spa_feat_desc_obj, "descriptions"); + dump_mos(spa); + + spa_close(spa, FTAG); +} + +static void +feature_enable_sync(void *arg1, void *arg2, dmu_tx_t *tx) +{ + spa_t *spa = arg1; + zfeature_info_t *feature = arg2; + + spa_feature_enable(spa, feature, tx); +} + +static void +zhack_do_feature_enable(int argc, char **argv) +{ + char c; + char *desc, *target; + spa_t *spa; + objset_t *mos; + zfeature_info_t feature; + zfeature_info_t *nodeps[] = { NULL }; + + /* + * Features are not added to the pool's label until their refcounts + * are incremented, so fi_mos can just be left as false for now. + */ + desc = NULL; + feature.fi_uname = "zhack"; + feature.fi_mos = B_FALSE; + feature.fi_can_readonly = B_FALSE; + feature.fi_depends = nodeps; + + optind = 1; + while ((c = getopt(argc, argv, "rmd:")) != -1) { + switch (c) { + case 'r': + feature.fi_can_readonly = B_TRUE; + break; + case 'd': + desc = strdup(optarg); + break; + default: + usage(); + break; + } + } + + if (desc == NULL) + desc = strdup("zhack injected"); + feature.fi_desc = desc; + + argc -= optind; + argv += optind; + + if (argc < 2) { + (void) fprintf(stderr, "error: missing feature or pool name\n"); + usage(); + } + target = argv[0]; + feature.fi_guid = argv[1]; + + if (!zfeature_is_valid_guid(feature.fi_guid)) + fatal("invalid feature guid: %s", feature.fi_guid); + + zhack_spa_open(target, B_FALSE, FTAG, &spa); + mos = spa->spa_meta_objset; + + if (0 == zfeature_lookup_guid(feature.fi_guid, NULL)) + fatal("'%s' is a real feature, will not enable"); + if (0 == zap_contains(mos, spa->spa_feat_desc_obj, feature.fi_guid)) + fatal("feature already enabled: %s", feature.fi_guid); + + VERIFY3U(0, ==, dsl_sync_task_do(spa->spa_dsl_pool, NULL, + feature_enable_sync, spa, &feature, 5)); + + spa_close(spa, FTAG); + + free(desc); +} + +static void +feature_incr_sync(void *arg1, void *arg2, dmu_tx_t *tx) +{ + spa_t *spa = arg1; + zfeature_info_t *feature = arg2; + + spa_feature_incr(spa, feature, tx); +} + +static void +feature_decr_sync(void *arg1, void *arg2, dmu_tx_t *tx) +{ + spa_t *spa = arg1; + zfeature_info_t *feature = arg2; + + spa_feature_decr(spa, feature, tx); +} + +static void +zhack_do_feature_ref(int argc, char **argv) +{ + char c; + char *target; + boolean_t decr = B_FALSE; + spa_t *spa; + objset_t *mos; + zfeature_info_t feature; + zfeature_info_t *nodeps[] = { NULL }; + + /* + * fi_desc does not matter here because it was written to disk + * when the feature was enabled, but we need to properly set the + * feature for read or write based on the information we read off + * disk later. + */ + feature.fi_uname = "zhack"; + feature.fi_mos = B_FALSE; + feature.fi_desc = NULL; + feature.fi_depends = nodeps; + + optind = 1; + while ((c = getopt(argc, argv, "md")) != -1) { + switch (c) { + case 'm': + feature.fi_mos = B_TRUE; + break; + case 'd': + decr = B_TRUE; + break; + default: + usage(); + break; + } + } + argc -= optind; + argv += optind; + + if (argc < 2) { + (void) fprintf(stderr, "error: missing feature or pool name\n"); + usage(); + } + target = argv[0]; + feature.fi_guid = argv[1]; + + if (!zfeature_is_valid_guid(feature.fi_guid)) + fatal("invalid feature guid: %s", feature.fi_guid); + + zhack_spa_open(target, B_FALSE, FTAG, &spa); + mos = spa->spa_meta_objset; + + if (0 == zfeature_lookup_guid(feature.fi_guid, NULL)) + fatal("'%s' is a real feature, will not change refcount"); + + if (0 == zap_contains(mos, spa->spa_feat_for_read_obj, + feature.fi_guid)) { + feature.fi_can_readonly = B_FALSE; + } else if (0 == zap_contains(mos, spa->spa_feat_for_write_obj, + feature.fi_guid)) { + feature.fi_can_readonly = B_TRUE; + } else { + fatal("feature is not enabled: %s", feature.fi_guid); + } + + if (decr && !spa_feature_is_active(spa, &feature)) + fatal("feature refcount already 0: %s", feature.fi_guid); + + VERIFY3U(0, ==, dsl_sync_task_do(spa->spa_dsl_pool, NULL, + decr ? feature_decr_sync : feature_incr_sync, spa, &feature, 5)); + + spa_close(spa, FTAG); +} + +static int +zhack_do_feature(int argc, char **argv) +{ + char *subcommand; + + argc--; + argv++; + if (argc == 0) { + (void) fprintf(stderr, + "error: no feature operation specified\n"); + usage(); + } + + subcommand = argv[0]; + if (strcmp(subcommand, "stat") == 0) { + zhack_do_feature_stat(argc, argv); + } else if (strcmp(subcommand, "enable") == 0) { + zhack_do_feature_enable(argc, argv); + } else if (strcmp(subcommand, "ref") == 0) { + zhack_do_feature_ref(argc, argv); + } else { + (void) fprintf(stderr, "error: unknown subcommand: %s\n", + subcommand); + usage(); + } + + return (0); +} + +#define MAX_NUM_PATHS 1024 + +int +main(int argc, char **argv) +{ + extern void zfs_prop_init(void); + + char *path[MAX_NUM_PATHS]; + const char *subcommand; + int rv = 0; + char c; + + g_importargs.path = path; + + dprintf_setup(&argc, argv); + zfs_prop_init(); + + while ((c = getopt(argc, argv, "c:d:")) != -1) { + switch (c) { + case 'c': + g_importargs.cachefile = optarg; + break; + case 'd': + assert(g_importargs.paths < MAX_NUM_PATHS); + g_importargs.path[g_importargs.paths++] = optarg; + break; + default: + usage(); + break; + } + } + + argc -= optind; + argv += optind; + optind = 1; + + if (argc == 0) { + (void) fprintf(stderr, "error: no command specified\n"); + usage(); + } + + subcommand = argv[0]; + + if (strcmp(subcommand, "feature") == 0) { + rv = zhack_do_feature(argc, argv); + } else { + (void) fprintf(stderr, "error: unknown subcommand: %s\n", + subcommand); + usage(); + } + + if (!g_readonly && spa_export(g_pool, NULL, B_TRUE, B_TRUE) != 0) { + fatal("pool export failed; " + "changes may not be committed to disk\n"); + } + + libzfs_fini(g_zfs); + kernel_fini(); + + return (rv); +} diff --git a/cddl/contrib/opensolaris/cmd/zpool/zpool-features.5 b/cddl/contrib/opensolaris/cmd/zpool/zpool-features.5 new file mode 100644 index 000000000000..d590fdc9fe4c --- /dev/null +++ b/cddl/contrib/opensolaris/cmd/zpool/zpool-features.5 @@ -0,0 +1,174 @@ +'\" te +.\" Copyright (c) 2012, Martin Matuska . +.\" All Rights Reserved. +.\" +.\" The contents of this file are subject to the terms of the +.\" Common Development and Distribution License (the "License"). +.\" You may not use this file except in compliance with the License. +.\" +.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +.\" or http://www.opensolaris.org/os/licensing. +.\" See the License for the specific language governing permissions +.\" and limitations under the License. +.\" +.\" When distributing Covered Code, include this CDDL HEADER in each +.\" file and include the License file at usr/src/OPENSOLARIS.LICENSE. +.\" If applicable, add the following below this CDDL HEADER, with the +.\" fields enclosed by brackets "[]" replaced with your own identifying +.\" information: Portions Copyright [yyyy] [name of copyright owner] +.\" +.\" Copyright (c) 2012 by Delphix. All rights reserved. +.\" +.\" $FreeBSD$ +.\" +.Dd May 28, 2012 +.Dt ZPOOL-FEATURES 8 +.Os +.Sh NAME +.Nm zpool-features +.Nd ZFS pool feature descriptions +.Sh DESCRIPTION +ZFS pool on\-disk format versions are specified via "features" which replace +the old on\-disk format numbers (the last supported on\-disk format number is +28). +To enable a feature on a pool use the +.Xr zpool 8 +command to set the +.Sy feature@feature_name +property to +.Ar enabled . +.Pp +The pool format does not affect file system version compatibility or the ability +to send file systems between pools. +.Pp +Since most features can be enabled independently of each other the on\-disk +format of the pool is specified by the set of all features marked as +.Sy active +on the pool. If the pool was created by another software version this set may +include unsupported features. +.Ss Identifying features +Every feature has a guid of the form +.Sy com.example:feature_name . +The reverse DNS name ensures that the feature's guid is unique across all ZFS +implementations. When unsupported features are encountered on a pool they will +be identified by their guids. +Refer to the documentation for the ZFS implementation that created the pool +for information about those features. +.Pp +Each supported feature also has a short name. +By convention a feature's short name is the portion of its guid which follows +the ':' (e.g. +.Sy com.example:feature_name +would have the short name +.Sy feature_name ), +however a feature's short name may differ across ZFS implementations if +following the convention would result in name conflicts. +.Ss Feature states +Features can be in one of three states: +.Bl -tag +.It Sy active +This feature's on\-disk format changes are in effect on the pool. +Support for this feature is required to import the pool in read\-write mode. +If this feature is not read-only compatible, support is also required to +import the pool in read\-only mode (see "Read\-only compatibility"). +.It Sy enabled +An administrator has marked this feature as enabled on the pool, but the +feature's on\-disk format changes have not been made yet. +The pool can still be imported by software that does not support this feature, +but changes may be made to the on\-disk format at any time which will move +the feature to the +.Sy active +state. +Some features may support returning to the +.Sy enabled +state after becoming +.Sy active . +See feature\-specific documentation for details. +.It Sy disabled +This feature's on\-disk format changes have not been made and will not be made +unless an administrator moves the feature to the +.Sy enabled +state. +Features cannot be disabled once they have been enabled. +.El +The state of supported features is exposed through pool properties of the form +.Sy feature@short_name . +.Ss Read\-only compatibility +Some features may make on\-disk format changes that do not interfere with other +software's ability to read from the pool. +These features are referred to as "read\-only compatible". +If all unsupported features on a pool are read\-only compatible, the pool can +be imported in read\-only mode by setting the +.Sy readonly +property during import (see +.Xr zpool 8 +for details on importing pools). +.Ss Unsupported features +For each unsupported feature enabled on an imported pool a pool property +named +.Sy unsupported@feature_guid +will indicate why the import was allowed despite the unsupported feature. +Possible values for this property are: +.Bl -tag +.It Sy inactive +The feature is in the +.Sy enabled +state and therefore the pool's on\-disk format is still compatible with +software that does not support this feature. +.It Sy readonly +The feature is read\-only compatible and the pool has been imported in +read\-only mode. +.El +.Ss Feature dependencies +Some features depend on other features being enabled in order to function +properly. +Enabling a feature will automatically enable any features it depends on. +.Sh FEATURES +The following features are supported on this system: +.Bl -tag +.It Sy async_destroy +.Bl -column "READ\-ONLY COMPATIBLE" "com.delphix:async_destroy" +.It GUID Ta com.delphix:async_destroy +.It READ\-ONLY COMPATIBLE Ta yes +.It DEPENDENCIES Ta none +.El +.Pp +Destroying a file system requires traversing all of its data in order to +return its used space to the pool. +Without +.Sy async_destroy +the file system is not fully removed until all space has been reclaimed. +If the destroy operation is interrupted by a reboot or power outage the next +attempt to open the pool will need to complete the destroy operation +synchronously. +.Pp +When +.Sy async_destroy +is enabled the file system's data will be reclaimed by a background process, +allowing the destroy operation to complete without traversing the entire file +system. +The background process is able to resume interrupted destroys after the pool +has been opened, eliminating the need to finish interrupted destroys as part +of the open operation. +The amount of space remaining to be reclaimed by the background process is +available through the +.Sy freeing +property. +.Sh SEE ALSO +.Xr zpool 8 +.Sh AUTHORS +This manual page is a +.Xr mdoc 7 +reimplementation of the +.Tn illumos +manual page +.Em zpool-features(5) , +modified and customized for +.Fx +and licensed under the Common Development and Distribution License +.Pq Tn CDDL . +.Pp +The +.Xr mdoc 7 +implementation of this manual page was initially written by +.An Martin Matuska Aq mm@FreeBSD.org . diff --git a/cddl/contrib/opensolaris/cmd/zpool/zpool.8 b/cddl/contrib/opensolaris/cmd/zpool/zpool.8 index 07e03bddda99..89333c7e21f7 100644 --- a/cddl/contrib/opensolaris/cmd/zpool/zpool.8 +++ b/cddl/contrib/opensolaris/cmd/zpool/zpool.8 @@ -1,5 +1,5 @@ '\" te -.\" Copyright (c) 2011, Martin Matuska . +.\" Copyright (c) 2012, Martin Matuska . .\" All Rights Reserved. .\" .\" The contents of this file are subject to the terms of the @@ -20,6 +20,7 @@ .\" Copyright (c) 2010, Sun Microsystems, Inc. All Rights Reserved. .\" Copyright 2011, Nexenta Systems, Inc. All Rights Reserved. .\" Copyright (c) 2011, Justin T. Gibbs +.\" Copyright (c) 2012 by Delphix. All Rights Reserved. .\" .\" $FreeBSD$ .\" @@ -47,7 +48,7 @@ .Op Ar device .Nm .Cm create -.Op Fl fn +.Op Fl fnd .Op Fl o Ar property Ns = Ns Ar value .Ar ... .Op Fl O Ar file-system-property Ns = Ns Ar value @@ -537,6 +538,16 @@ value of 1.76 indicates that 1.76 units of data were stored but only 1 unit of d for a description of the deduplication feature. .It Sy free Number of blocks within the pool that are not allocated. +.It Sy freeing +After a file system or snapshot is destroyed, the space it was using is +returned to the pool asynchronously. +.Sy freeing +is the amount of space remaining to be reclaimed. +Over time +.Sy freeing +will decrease while +.Sy free +increases. .It Sy expandsize This property has currently no value on FreeBSD. .It Sy guid @@ -552,11 +563,16 @@ or .Qq Sy UNAVAIL . .It Sy size Total size of the storage pool. +.It Sy unsupported@ Ns Ar feature_guid +Information about unsupported features that are enabled on the pool. +See +.Xr zpool-features 5 +for details. .It Sy used Amount of storage space used within the pool. .El .Pp -These space usage properties report actual physical space available to the +The space usage properties report actual physical space available to the storage pool. The physical space can be different from the total amount of space that any contained datasets can actually use. The amount of space used in a @@ -653,6 +669,11 @@ Setting it to the special value creates a temporary pool that is never cached, and the special value .Cm '' (empty string) uses the default location. +.It Sy comment Ns = Ns Ar text +A text string consisting of printable ASCII characters that will be stored +such that it is available even if the pool becomes faulted. +An administrator can provide additional information about a pool using this +property. .It Sy dedupditto Ns = Ns Ar number Threshold for the number of block ditto copies. If the reference count for a deduplicated block increases above this number, a new ditto copy of this block @@ -686,6 +707,17 @@ requests that have yet to be committed to disk would be blocked. .It Sy panic Prints out a message to the console and generates a system crash dump. .El +.It Sy feature@ Ns Ar feature_name Ns = Ns Sy enabled +The value of this property is the current state of +.Ar feature_name . +The only valid value when setting this property is +.Sy enabled +which moves +.Ar feature_name +to the enabled state. +See +.Xr zpool-features 5 +for details on feature states. .It Sy listsnaps Ns = Ns Cm on No | Cm off Controls whether information about snapshots associated with this pool is output when @@ -699,9 +731,9 @@ The current on-disk version of the pool. This can be increased, but never decreased. The preferred method of updating pools is with the .Qq Nm Cm upgrade command, though this property can be used when a specific version is needed -for backwards compatibility. This property can be any number between 1 and the -current version reported by -.Qo Ic zpool upgrade -v Qc . +for backwards compatibility. +Once feature flags is enabled on a pool this property will no longer have a +value. .El .Sh SUBCOMMANDS All subcommands that modify state are logged persistently to the pool in their @@ -810,7 +842,7 @@ do not actually discard any transactions. .It Xo .Nm .Cm create -.Op Fl fn +.Op Fl fnd .Op Fl o Ar property Ns = Ns Ar value .Ar ... .Op Fl O Ar file-system-property Ns = Ns Ar value @@ -859,6 +891,10 @@ The mount point must not exist or must be empty, or else the root dataset cannot be mounted. This can be overridden with the .Fl m option. +.Pp +By default all supported features are enabled on the new pool unless the +.Fl d +option is specified. .Bl -tag -width indent .It Fl f Forces use of @@ -869,6 +905,17 @@ Not all devices can be overridden in this manner. Displays the configuration that would be used without actually creating the pool. The actual pool creation can still fail due to insufficient privileges or device sharing. +.It Fl d +Do not enable any features on the new pool. +Individual features can be enabled by setting their corresponding properties +to +.Sy enabled +with the +.Fl o +option. +See +.Xr zpool-features 5 +for details about feature properties. .It Xo .Fl o Ar property Ns = Ns Ar value .Op Fl o Ar property Ns = Ns Ar value @@ -1873,6 +1920,7 @@ Invalid command line options were specified. .El .Sh SEE ALSO .Xr zfs 8 +.Xr zpool-features 5 .Sh AUTHORS This manual page is a .Xr mdoc 7 diff --git a/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c b/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c index 3904e68be2d6..54a747091d44 100644 --- a/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c +++ b/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c @@ -54,6 +54,7 @@ #include "zpool_util.h" #include "zfs_comutil.h" +#include "zfeature_common.h" #include "statcommon.h" @@ -207,7 +208,7 @@ get_usage(zpool_help_t idx) { case HELP_CLEAR: return (gettext("\tclear [-nF] [device]\n")); case HELP_CREATE: - return (gettext("\tcreate [-fn] [-o property=value] ... \n" + return (gettext("\tcreate [-fnd] [-o property=value] ... \n" "\t [-O file-system-property=value] ... \n" "\t [-m mountpoint] [-R root] ...\n")); case HELP_DESTROY: @@ -339,6 +340,12 @@ usage(boolean_t requested) /* Iterate over all properties */ (void) zprop_iter(print_prop_cb, fp, B_FALSE, B_TRUE, ZFS_TYPE_POOL); + + (void) fprintf(fp, "\t%-15s ", "feature@..."); + (void) fprintf(fp, "YES disabled | enabled | active\n"); + + (void) fprintf(fp, gettext("\nThe feature@ properties must be " + "appended with a feature name.\nSee zpool-features(5).\n")); } /* @@ -405,12 +412,16 @@ add_prop_list(const char *propname, char *propval, nvlist_t **props, proplist = *props; if (poolprop) { - if ((prop = zpool_name_to_prop(propname)) == ZPROP_INVAL) { + if ((prop = zpool_name_to_prop(propname)) == ZPROP_INVAL && + !zpool_prop_feature(propname)) { (void) fprintf(stderr, gettext("property '%s' is " "not a valid pool property\n"), propname); return (2); } - normnm = zpool_prop_to_name(prop); + if (zpool_prop_feature(propname)) + normnm = propname; + else + normnm = zpool_prop_to_name(prop); } else { if ((fprop = zfs_name_to_prop(propname)) != ZPROP_INVAL) { normnm = zfs_prop_to_name(fprop); @@ -701,7 +712,7 @@ gettext("labelclear operation failed.\n" } /* - * zpool create [-fn] [-o property=value] ... + * zpool create [-fnd] [-o property=value] ... * [-O file-system-property=value] ... * [-R root] [-m mountpoint] ... * @@ -710,8 +721,10 @@ gettext("labelclear operation failed.\n" * were to be created. * -R Create a pool under an alternate root * -m Set default mountpoint for the root dataset. By default it's - * '/' + * '/' * -o Set property=value. + * -d Don't automatically enable all supported pool features + * (individual features can be enabled with -o). * -O Set fsproperty=value in the pool's root file system * * Creates the named pool according to the given vdev specification. The @@ -724,6 +737,7 @@ zpool_do_create(int argc, char **argv) { boolean_t force = B_FALSE; boolean_t dryrun = B_FALSE; + boolean_t enable_all_pool_feat = B_TRUE; int c; nvlist_t *nvroot = NULL; char *poolname; @@ -735,7 +749,7 @@ zpool_do_create(int argc, char **argv) char *propval; /* check options */ - while ((c = getopt(argc, argv, ":fnR:m:o:O:")) != -1) { + while ((c = getopt(argc, argv, ":fndR:m:o:O:")) != -1) { switch (c) { case 'f': force = B_TRUE; @@ -743,6 +757,9 @@ zpool_do_create(int argc, char **argv) case 'n': dryrun = B_TRUE; break; + case 'd': + enable_all_pool_feat = B_FALSE; + break; case 'R': altroot = optarg; if (add_prop_list(zpool_prop_to_name( @@ -770,6 +787,21 @@ zpool_do_create(int argc, char **argv) if (add_prop_list(optarg, propval, &props, B_TRUE)) goto errout; + + /* + * If the user is creating a pool that doesn't support + * feature flags, don't enable any features. + */ + if (zpool_name_to_prop(optarg) == ZPOOL_PROP_VERSION) { + char *end; + u_longlong_t ver; + + ver = strtoull(propval, &end, 10); + if (*end == '\0' && + ver < SPA_VERSION_FEATURES) { + enable_all_pool_feat = B_FALSE; + } + } break; case 'O': if ((propval = strchr(optarg, '=')) == NULL) { @@ -835,7 +867,6 @@ zpool_do_create(int argc, char **argv) goto errout; } - if (altroot != NULL && altroot[0] != '/') { (void) fprintf(stderr, gettext("invalid alternate root '%s': " "must be an absolute path\n"), altroot); @@ -917,6 +948,27 @@ zpool_do_create(int argc, char **argv) /* * Hand off to libzfs. */ + if (enable_all_pool_feat) { + int i; + for (i = 0; i < SPA_FEATURES; i++) { + char propname[MAXPATHLEN]; + zfeature_info_t *feat = &spa_feature_table[i]; + + (void) snprintf(propname, sizeof (propname), + "feature@%s", feat->fi_uname); + + /* + * Skip feature if user specified it manually + * on the command line. + */ + if (nvlist_exists(props, propname)) + continue; + + if (add_prop_list(propname, ZFS_FEATURE_ENABLED, + &props, B_TRUE) != 0) + goto errout; + } + } if (zpool_create(g_zfs, poolname, nvroot, props, fsprops) == 0) { zfs_handle_t *pool = zfs_open(g_zfs, poolname, @@ -1249,6 +1301,10 @@ print_status_config(zpool_handle_t *zhp, const char *name, nvlist_t *nv, (void) printf(gettext("newer version")); break; + case VDEV_AUX_UNSUP_FEAT: + (void) printf(gettext("unsupported feature(s)")); + break; + case VDEV_AUX_SPARED: verify(nvlist_lookup_uint64(nv, ZPOOL_CONFIG_GUID, &cb.cb_guid) == 0); @@ -1366,6 +1422,10 @@ print_import_config(const char *name, nvlist_t *nv, int namewidth, int depth) (void) printf(gettext("newer version")); break; + case VDEV_AUX_UNSUP_FEAT: + (void) printf(gettext("unsupported feature(s)")); + break; + case VDEV_AUX_ERR_EXCEEDED: (void) printf(gettext("too many errors")); break; @@ -1532,6 +1592,20 @@ show_import(nvlist_t *config) "incompatible version.\n")); break; + case ZPOOL_STATUS_UNSUP_FEAT_READ: + (void) printf(gettext("status: The pool uses the following " + "feature(s) not supported on this sytem:\n")); + zpool_print_unsup_feat(config); + break; + + case ZPOOL_STATUS_UNSUP_FEAT_WRITE: + (void) printf(gettext("status: The pool can only be accessed " + "in read-only mode on this system. It\n\tcannot be " + "accessed in read-write mode because it uses the " + "following\n\tfeature(s) not supported on this system:\n")); + zpool_print_unsup_feat(config); + break; + case ZPOOL_STATUS_HOSTID_MISMATCH: (void) printf(gettext(" status: The pool was last accessed by " "another system.\n")); @@ -1589,6 +1663,20 @@ show_import(nvlist_t *config) "newer\n\tsoftware, or recreate the pool from " "backup.\n")); break; + case ZPOOL_STATUS_UNSUP_FEAT_READ: + (void) printf(gettext("action: The pool cannot be " + "imported. Access the pool on a system that " + "supports\n\tthe required feature(s), or recreate " + "the pool from backup.\n")); + break; + case ZPOOL_STATUS_UNSUP_FEAT_WRITE: + (void) printf(gettext("action: The pool cannot be " + "imported in read-write mode. Import the pool " + "with\n" + "\t\"-o readonly=on\", access the pool on a system " + "that supports the\n\trequired feature(s), or " + "recreate the pool from backup.\n")); + break; case ZPOOL_STATUS_MISSING_DEV_R: case ZPOOL_STATUS_MISSING_DEV_NR: case ZPOOL_STATUS_BAD_GUID_SUM: @@ -1664,9 +1752,9 @@ do_import(nvlist_t *config, const char *newname, const char *mntopts, ZPOOL_CONFIG_POOL_STATE, &state) == 0); verify(nvlist_lookup_uint64(config, ZPOOL_CONFIG_VERSION, &version) == 0); - if (version > SPA_VERSION) { + if (!SPA_VERSION_IS_SUPPORTED(version)) { (void) fprintf(stderr, gettext("cannot import '%s': pool " - "is formatted using a newer ZFS version\n"), name); + "is formatted using an unsupported ZFS version\n"), name); return (1); } else if (state != POOL_STATE_EXPORTED && !(flags & ZFS_IMPORT_ANY_HOST)) { @@ -2601,15 +2689,13 @@ static void print_header(list_cbdata_t *cb) { zprop_list_t *pl = cb->cb_proplist; + char headerbuf[ZPOOL_MAXPROPLEN]; const char *header; boolean_t first = B_TRUE; boolean_t right_justify; size_t width = 0; for (; pl != NULL; pl = pl->pl_next) { - if (pl->pl_prop == ZPROP_INVAL) - continue; - width = pl->pl_width; if (first && cb->cb_verbose) { /* @@ -2624,8 +2710,18 @@ print_header(list_cbdata_t *cb) else first = B_FALSE; - header = zpool_prop_column_name(pl->pl_prop); - right_justify = zpool_prop_align_right(pl->pl_prop); + right_justify = B_FALSE; + if (pl->pl_prop != ZPROP_INVAL) { + header = zpool_prop_column_name(pl->pl_prop); + right_justify = zpool_prop_align_right(pl->pl_prop); + } else { + int i; + + for (i = 0; pl->pl_user_prop[i] != '\0'; i++) + headerbuf[i] = toupper(pl->pl_user_prop[i]); + headerbuf[i] = '\0'; + header = headerbuf; + } if (pl->pl_next == NULL && !right_justify) (void) printf("%s", header); @@ -2685,6 +2781,11 @@ print_pool(zpool_handle_t *zhp, list_cbdata_t *cb) propstr = property; right_justify = zpool_prop_align_right(pl->pl_prop); + } else if ((zpool_prop_feature(pl->pl_user_prop) || + zpool_prop_unsupported(pl->pl_user_prop)) && + zpool_prop_get_feature(zhp, pl->pl_user_prop, property, + sizeof (property)) == 0) { + propstr = property; } else { propstr = "-"; } @@ -4024,6 +4125,31 @@ status_callback(zpool_handle_t *zhp, void *data) "backup.\n")); break; + case ZPOOL_STATUS_UNSUP_FEAT_READ: + (void) printf(gettext("status: The pool cannot be accessed on " + "this system because it uses the\n\tfollowing feature(s) " + "not supported on this system:\n")); + zpool_print_unsup_feat(config); + (void) printf("\n"); + (void) printf(gettext("action: Access the pool from a system " + "that supports the required feature(s),\n\tor restore the " + "pool from backup.\n")); + break; + + case ZPOOL_STATUS_UNSUP_FEAT_WRITE: + (void) printf(gettext("status: The pool can only be accessed " + "in read-only mode on this system. It\n\tcannot be " + "accessed in read-write mode because it uses the " + "following\n\tfeature(s) not supported on this system:\n")); + zpool_print_unsup_feat(config); + (void) printf("\n"); + (void) printf(gettext("action: The pool cannot be accessed in " + "read-write mode. Import the pool with\n" + "\t\"-o readonly=on\", access the pool from a system that " + "supports the\n\trequired feature(s), or restore the " + "pool from backup.\n")); + break; + case ZPOOL_STATUS_FAULTED_DEV_R: (void) printf(gettext("status: One or more devices are " "faulted in response to persistent errors.\n\tSufficient " @@ -4274,7 +4400,8 @@ upgrade_cb(zpool_handle_t *zhp, void *arg) verify(nvlist_lookup_uint64(config, ZPOOL_CONFIG_VERSION, &version) == 0); - if (!cbp->cb_newer && version < SPA_VERSION) { + if (!cbp->cb_newer && SPA_VERSION_IS_SUPPORTED(version) && + version != SPA_VERSION) { if (!cbp->cb_all) { if (cbp->cb_first) { (void) printf(gettext("The following pools are " @@ -4303,13 +4430,14 @@ upgrade_cb(zpool_handle_t *zhp, void *arg) } } } - } else if (cbp->cb_newer && version > SPA_VERSION) { + } else if (cbp->cb_newer && !SPA_VERSION_IS_SUPPORTED(version)) { assert(!cbp->cb_all); if (cbp->cb_first) { (void) printf(gettext("The following pools are " - "formatted using a newer software version and\n" - "cannot be accessed on the current system.\n\n")); + "formatted using an unsupported software version " + "and\ncannot be accessed on the current " + "system.\n\n")); (void) printf(gettext("VER POOL\n")); (void) printf(gettext("--- ------------\n")); cbp->cb_first = B_FALSE; @@ -4397,8 +4525,8 @@ zpool_do_upgrade(int argc, char **argv) break; case 'V': cb.cb_version = strtoll(optarg, &end, 10); - if (*end != '\0' || cb.cb_version > SPA_VERSION || - cb.cb_version < SPA_VERSION_1) { + if (*end != '\0' || + !SPA_VERSION_IS_SUPPORTED(cb.cb_version)) { (void) fprintf(stderr, gettext("invalid version '%s'\n"), optarg); usage(B_FALSE); @@ -4443,8 +4571,8 @@ zpool_do_upgrade(int argc, char **argv) } } - (void) printf(gettext("This system is currently running " - "ZFS pool version %llu.\n\n"), SPA_VERSION); + (void) printf(gettext("This system supports ZFS pool feature " + "flags.\n\n")); cb.cb_first = B_TRUE; if (showversions) { (void) printf(gettext("The following versions are " @@ -4705,13 +4833,26 @@ get_callback(zpool_handle_t *zhp, void *data) pl == cbp->cb_proplist) continue; - if (zpool_get_prop(zhp, pl->pl_prop, - value, sizeof (value), &srctype) != 0) - continue; + if (pl->pl_prop == ZPROP_INVAL && + (zpool_prop_feature(pl->pl_user_prop) || + zpool_prop_unsupported(pl->pl_user_prop))) { + srctype = ZPROP_SRC_LOCAL; - zprop_print_one_property(zpool_get_name(zhp), cbp, - zpool_prop_to_name(pl->pl_prop), value, srctype, NULL, - NULL); + if (zpool_prop_get_feature(zhp, pl->pl_user_prop, + value, sizeof (value)) == 0) { + zprop_print_one_property(zpool_get_name(zhp), + cbp, pl->pl_user_prop, value, srctype, + NULL, NULL); + } + } else { + if (zpool_get_prop(zhp, pl->pl_prop, value, + sizeof (value), &srctype) != 0) + continue; + + zprop_print_one_property(zpool_get_name(zhp), cbp, + zpool_prop_to_name(pl->pl_prop), value, srctype, + NULL, NULL); + } } return (0); } @@ -4723,8 +4864,11 @@ zpool_do_get(int argc, char **argv) zprop_list_t fake_name = { 0 }; int ret; - if (argc < 3) + if (argc < 2) { + (void) fprintf(stderr, gettext("missing property " + "argument\n")); usage(B_FALSE); + } cb.cb_first = B_TRUE; cb.cb_sources = ZPROP_SRC_ALL; @@ -4734,7 +4878,7 @@ zpool_do_get(int argc, char **argv) cb.cb_columns[3] = GET_COL_SOURCE; cb.cb_type = ZFS_TYPE_POOL; - if (zprop_get_list(g_zfs, argv[1], &cb.cb_proplist, + if (zprop_get_list(g_zfs, argv[1], &cb.cb_proplist, ZFS_TYPE_POOL) != 0) usage(B_FALSE); diff --git a/cddl/contrib/opensolaris/cmd/ztest/ztest.c b/cddl/contrib/opensolaris/cmd/ztest/ztest.c index 487f95a05a47..db373e1c7ec6 100644 --- a/cddl/contrib/opensolaris/cmd/ztest/ztest.c +++ b/cddl/contrib/opensolaris/cmd/ztest/ztest.c @@ -107,6 +107,7 @@ #include #include #include +#include #include #include #include @@ -5575,10 +5576,9 @@ make_random_props() { nvlist_t *props; - if (ztest_random(2) == 0) - return (NULL); - VERIFY(nvlist_alloc(&props, NV_UNIQUE_NAME, 0) == 0); + if (ztest_random(2) == 0) + return (props); VERIFY(nvlist_add_uint64(props, "autoreplace", 1) == 0); return (props); @@ -5609,6 +5609,12 @@ ztest_init(ztest_shared_t *zs) nvroot = make_vdev_root(NULL, NULL, ztest_opts.zo_vdev_size, 0, 0, ztest_opts.zo_raidz, zs->zs_mirrors, 1); props = make_random_props(); + for (int i = 0; i < SPA_FEATURES; i++) { + char buf[1024]; + (void) snprintf(buf, sizeof (buf), "feature@%s", + spa_feature_table[i].fi_uname); + VERIFY3U(0, ==, nvlist_add_uint64(props, buf, 0)); + } VERIFY3U(0, ==, spa_create(ztest_opts.zo_pool, nvroot, props, NULL, NULL)); nvlist_free(nvroot); @@ -5616,6 +5622,7 @@ ztest_init(ztest_shared_t *zs) VERIFY3U(0, ==, spa_open(ztest_opts.zo_pool, &spa, FTAG)); zs->zs_metaslab_sz = 1ULL << spa->spa_root_vdev->vdev_child[0]->vdev_ms_shift; + spa_close(spa, FTAG); kernel_fini(); @@ -5654,9 +5661,24 @@ setup_fds(void) ASSERT3U(fd, ==, ZTEST_FD_RAND); } +static int +shared_data_size(ztest_shared_hdr_t *hdr) +{ + int size; + + size = hdr->zh_hdr_size; + size += hdr->zh_opts_size; + size += hdr->zh_size; + size += hdr->zh_stats_size * hdr->zh_stats_count; + size += hdr->zh_ds_size * hdr->zh_ds_count; + + return (size); +} + static void setup_hdr(void) { + int size; ztest_shared_hdr_t *hdr; #ifndef illumos @@ -5667,6 +5689,8 @@ setup_hdr(void) PROT_READ | PROT_WRITE, MAP_SHARED, ZTEST_FD_DATA, 0); ASSERT(hdr != MAP_FAILED); + VERIFY3U(0, ==, ftruncate(ZTEST_FD_DATA, sizeof (ztest_shared_hdr_t))); + hdr->zh_hdr_size = sizeof (ztest_shared_hdr_t); hdr->zh_opts_size = sizeof (ztest_shared_opts_t); hdr->zh_size = sizeof (ztest_shared_t); @@ -5675,6 +5699,9 @@ setup_hdr(void) hdr->zh_ds_size = sizeof (ztest_shared_ds_t); hdr->zh_ds_count = ztest_opts.zo_datasets; + size = shared_data_size(hdr); + VERIFY3U(0, ==, ftruncate(ZTEST_FD_DATA, size)); + (void) munmap((caddr_t)hdr, P2ROUNDUP(sizeof (*hdr), getpagesize())); } @@ -5689,11 +5716,7 @@ setup_data(void) PROT_READ, MAP_SHARED, ZTEST_FD_DATA, 0); ASSERT(hdr != MAP_FAILED); - size = hdr->zh_hdr_size; - size += hdr->zh_opts_size; - size += hdr->zh_size; - size += hdr->zh_stats_size * hdr->zh_stats_count; - size += hdr->zh_ds_size * hdr->zh_ds_count; + size = shared_data_size(hdr); (void) munmap((caddr_t)hdr, P2ROUNDUP(sizeof (*hdr), getpagesize())); hdr = ztest_shared_hdr = (void *)mmap(0, P2ROUNDUP(size, getpagesize()), diff --git a/cddl/contrib/opensolaris/lib/libnvpair/libnvpair.c b/cddl/contrib/opensolaris/lib/libnvpair/libnvpair.c index 14257487361d..3302ac798fd2 100644 --- a/cddl/contrib/opensolaris/lib/libnvpair/libnvpair.c +++ b/cddl/contrib/opensolaris/lib/libnvpair/libnvpair.c @@ -20,6 +20,7 @@ */ /* * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012 by Delphix. All rights reserved. */ #include @@ -802,6 +803,10 @@ dump_nvlist(nvlist_t *list, int indent) while ((elem = nvlist_next_nvpair(list, elem)) != NULL) { switch (nvpair_type(elem)) { + case DATA_TYPE_BOOLEAN: + (void) printf("%*s%s\n", indent, "", nvpair_name(elem)); + break; + case DATA_TYPE_BOOLEAN_VALUE: (void) nvpair_value_boolean_value(elem, &bool_value); (void) printf("%*s%s: %s\n", indent, "", diff --git a/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h b/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h index 989dd8072187..a652a9d05ceb 100644 --- a/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h +++ b/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h @@ -294,6 +294,15 @@ typedef enum { ZPOOL_STATUS_IO_FAILURE_CONTINUE, /* failed I/O, failmode 'continue' */ ZPOOL_STATUS_BAD_LOG, /* cannot read log chain(s) */ + /* + * If the pool has unsupported features but can still be opened in + * read-only mode, its status is ZPOOL_STATUS_UNSUP_FEAT_WRITE. If the + * pool has unsupported features but cannot be opened at all, its + * status is ZPOOL_STATUS_UNSUP_FEAT_READ. + */ + ZPOOL_STATUS_UNSUP_FEAT_READ, /* unsupported features for read */ + ZPOOL_STATUS_UNSUP_FEAT_WRITE, /* unsupported features for write */ + /* * These faults have no corresponding message ID. At the time we are * checking the status, the original reason for the FMA fault (I/O or @@ -326,6 +335,7 @@ extern void zpool_dump_ddt(const ddt_stat_t *dds, const ddt_histogram_t *ddh); * Statistics and configuration functions. */ extern nvlist_t *zpool_get_config(zpool_handle_t *, nvlist_t **); +extern nvlist_t *zpool_get_features(zpool_handle_t *); extern int zpool_refresh_stats(zpool_handle_t *, boolean_t *); extern int zpool_get_errlog(zpool_handle_t *, nvlist_t **); @@ -338,6 +348,7 @@ extern int zpool_import(libzfs_handle_t *, nvlist_t *, const char *, char *altroot); extern int zpool_import_props(libzfs_handle_t *, nvlist_t *, const char *, nvlist_t *, int); +extern void zpool_print_unsup_feat(nvlist_t *config); /* * Search for pools to import @@ -427,6 +438,8 @@ extern int zfs_prop_get_written_int(zfs_handle_t *zhp, const char *propname, uint64_t *propvalue); extern int zfs_prop_get_written(zfs_handle_t *zhp, const char *propname, char *propbuf, int proplen, boolean_t literal); +extern int zfs_prop_get_feature(zfs_handle_t *zhp, const char *propname, + char *buf, size_t len); extern int zfs_get_snapused_int(zfs_handle_t *firstsnap, zfs_handle_t *lastsnap, uint64_t *usedp); extern uint64_t zfs_prop_get_int(zfs_handle_t *, zfs_prop_t); @@ -454,10 +467,19 @@ extern void zfs_prune_proplist(zfs_handle_t *, uint8_t *); #define ZFS_MOUNTPOINT_NONE "none" #define ZFS_MOUNTPOINT_LEGACY "legacy" +#define ZFS_FEATURE_DISABLED "disabled" +#define ZFS_FEATURE_ENABLED "enabled" +#define ZFS_FEATURE_ACTIVE "active" + +#define ZFS_UNSUPPORTED_INACTIVE "inactive" +#define ZFS_UNSUPPORTED_READONLY "readonly" + /* * zpool property management */ extern int zpool_expand_proplist(zpool_handle_t *, zprop_list_t **); +extern int zpool_prop_get_feature(zpool_handle_t *, const char *, char *, + size_t); extern const char *zpool_prop_default_string(zpool_prop_t); extern uint64_t zpool_prop_default_numeric(zpool_prop_t); extern const char *zpool_prop_column_name(zpool_prop_t); diff --git a/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_config.c b/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_config.c index dc27238c9cf3..f756da262d84 100644 --- a/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_config.c +++ b/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_config.c @@ -18,11 +18,16 @@ * * CDDL HEADER END */ + /* * Copyright 2009 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ +/* + * Copyright (c) 2012 by Delphix. All rights reserved. + */ + /* * The pool configuration repository is stored in /etc/zfs/zpool.cache as a * single packed nvlist. While it would be nice to just read in this @@ -217,6 +222,36 @@ zpool_get_config(zpool_handle_t *zhp, nvlist_t **oldconfig) return (zhp->zpool_config); } +/* + * Retrieves a list of enabled features and their refcounts and caches it in + * the pool handle. + */ +nvlist_t * +zpool_get_features(zpool_handle_t *zhp) +{ + nvlist_t *config, *features; + + config = zpool_get_config(zhp, NULL); + + if (config == NULL || !nvlist_exists(config, + ZPOOL_CONFIG_FEATURE_STATS)) { + int error; + boolean_t missing = B_FALSE; + + error = zpool_refresh_stats(zhp, &missing); + + if (error != 0 || missing) + return (NULL); + + config = zpool_get_config(zhp, NULL); + } + + verify(nvlist_lookup_nvlist(config, ZPOOL_CONFIG_FEATURE_STATS, + &features) == 0); + + return (features); +} + /* * Refresh the vdev statistics associated with the given pool. This is used in * iostat to show configuration changes and determine the delta from the last diff --git a/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c b/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c index 723a52336083..03bc3e6586dd 100644 --- a/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c +++ b/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c @@ -43,6 +43,7 @@ #include "zfs_prop.h" #include "libzfs_impl.h" #include "zfs_comutil.h" +#include "zfeature_common.h" static int read_efi_label(nvlist_t *config, diskaddr_t *sb); @@ -301,6 +302,7 @@ zpool_get_prop(zpool_handle_t *zhp, zpool_prop_t prop, char *buf, size_t len, case ZPOOL_PROP_SIZE: case ZPOOL_PROP_ALLOCATED: case ZPOOL_PROP_FREE: + case ZPOOL_PROP_FREEING: case ZPOOL_PROP_EXPANDSZ: (void) zfs_nicenum(intval, buf, len); break; @@ -326,6 +328,12 @@ zpool_get_prop(zpool_handle_t *zhp, zpool_prop_t prop, char *buf, size_t len, (void) strlcpy(buf, zpool_state_to_name(intval, vs->vs_aux), len); break; + case ZPOOL_PROP_VERSION: + if (intval >= SPA_VERSION_FEATURES) { + (void) snprintf(buf, len, "-"); + break; + } + /* FALLTHROUGH */ default: (void) snprintf(buf, len, "%llu", intval); } @@ -430,10 +438,48 @@ zpool_valid_proplist(libzfs_handle_t *hdl, const char *poolname, while ((elem = nvlist_next_nvpair(props, elem)) != NULL) { const char *propname = nvpair_name(elem); + prop = zpool_name_to_prop(propname); + if (prop == ZPROP_INVAL && zpool_prop_feature(propname)) { + int err; + zfeature_info_t *feature; + char *fname = strchr(propname, '@') + 1; + + err = zfeature_lookup_name(fname, &feature); + if (err != 0) { + ASSERT3U(err, ==, ENOENT); + zfs_error_aux(hdl, dgettext(TEXT_DOMAIN, + "invalid feature '%s'"), fname); + (void) zfs_error(hdl, EZFS_BADPROP, errbuf); + goto error; + } + + if (nvpair_type(elem) != DATA_TYPE_STRING) { + zfs_error_aux(hdl, dgettext(TEXT_DOMAIN, + "'%s' must be a string"), propname); + (void) zfs_error(hdl, EZFS_BADPROP, errbuf); + goto error; + } + + (void) nvpair_value_string(elem, &strval); + if (strcmp(strval, ZFS_FEATURE_ENABLED) != 0) { + zfs_error_aux(hdl, dgettext(TEXT_DOMAIN, + "property '%s' can only be set to " + "'enabled'"), propname); + (void) zfs_error(hdl, EZFS_BADPROP, errbuf); + goto error; + } + + if (nvlist_add_uint64(retprops, propname, 0) != 0) { + (void) no_memory(hdl); + goto error; + } + continue; + } + /* * Make sure this property is valid and applies to this type. */ - if ((prop = zpool_name_to_prop(propname)) == ZPROP_INVAL) { + if (prop == ZPROP_INVAL) { zfs_error_aux(hdl, dgettext(TEXT_DOMAIN, "invalid property '%s'"), propname); (void) zfs_error(hdl, EZFS_BADPROP, errbuf); @@ -456,7 +502,8 @@ zpool_valid_proplist(libzfs_handle_t *hdl, const char *poolname, */ switch (prop) { case ZPOOL_PROP_VERSION: - if (intval < version || intval > SPA_VERSION) { + if (intval < version || + !SPA_VERSION_IS_SUPPORTED(intval)) { zfs_error_aux(hdl, dgettext(TEXT_DOMAIN, "property '%s' number %d is invalid."), propname, intval); @@ -680,10 +727,77 @@ zpool_expand_proplist(zpool_handle_t *zhp, zprop_list_t **plp) libzfs_handle_t *hdl = zhp->zpool_hdl; zprop_list_t *entry; char buf[ZFS_MAXPROPLEN]; + nvlist_t *features = NULL; + zprop_list_t **last; + boolean_t firstexpand = (NULL == *plp); if (zprop_expand_list(hdl, plp, ZFS_TYPE_POOL) != 0) return (-1); + last = plp; + while (*last != NULL) + last = &(*last)->pl_next; + + if ((*plp)->pl_all) + features = zpool_get_features(zhp); + + if ((*plp)->pl_all && firstexpand) { + for (int i = 0; i < SPA_FEATURES; i++) { + zprop_list_t *entry = zfs_alloc(hdl, + sizeof (zprop_list_t)); + entry->pl_prop = ZPROP_INVAL; + entry->pl_user_prop = zfs_asprintf(hdl, "feature@%s", + spa_feature_table[i].fi_uname); + entry->pl_width = strlen(entry->pl_user_prop); + entry->pl_all = B_TRUE; + + *last = entry; + last = &entry->pl_next; + } + } + + /* add any unsupported features */ + for (nvpair_t *nvp = nvlist_next_nvpair(features, NULL); + nvp != NULL; nvp = nvlist_next_nvpair(features, nvp)) { + char *propname; + boolean_t found; + zprop_list_t *entry; + + if (zfeature_is_supported(nvpair_name(nvp))) + continue; + + propname = zfs_asprintf(hdl, "unsupported@%s", + nvpair_name(nvp)); + + /* + * Before adding the property to the list make sure that no + * other pool already added the same property. + */ + found = B_FALSE; + entry = *plp; + while (entry != NULL) { + if (entry->pl_user_prop != NULL && + strcmp(propname, entry->pl_user_prop) == 0) { + found = B_TRUE; + break; + } + entry = entry->pl_next; + } + if (found) { + free(propname); + continue; + } + + entry = zfs_alloc(hdl, sizeof (zprop_list_t)); + entry->pl_prop = ZPROP_INVAL; + entry->pl_user_prop = propname; + entry->pl_width = strlen(entry->pl_user_prop); + entry->pl_all = B_TRUE; + + *last = entry; + last = &entry->pl_next; + } + for (entry = *plp; entry != NULL; entry = entry->pl_next) { if (entry->pl_fixed) @@ -700,6 +814,66 @@ zpool_expand_proplist(zpool_handle_t *zhp, zprop_list_t **plp) return (0); } +/* + * Get the state for the given feature on the given ZFS pool. + */ +int +zpool_prop_get_feature(zpool_handle_t *zhp, const char *propname, char *buf, + size_t len) +{ + uint64_t refcount; + boolean_t found = B_FALSE; + nvlist_t *features = zpool_get_features(zhp); + boolean_t supported; + const char *feature = strchr(propname, '@') + 1; + + supported = zpool_prop_feature(propname); + ASSERT(supported || zpool_prop_unsupported(propname)); + + /* + * Convert from feature name to feature guid. This conversion is + * unecessary for unsupported@... properties because they already + * use guids. + */ + if (supported) { + int ret; + zfeature_info_t *fi; + + ret = zfeature_lookup_name(feature, &fi); + if (ret != 0) { + (void) strlcpy(buf, "-", len); + return (ENOTSUP); + } + feature = fi->fi_guid; + } + + if (nvlist_lookup_uint64(features, feature, &refcount) == 0) + found = B_TRUE; + + if (supported) { + if (!found) { + (void) strlcpy(buf, ZFS_FEATURE_DISABLED, len); + } else { + if (refcount == 0) + (void) strlcpy(buf, ZFS_FEATURE_ENABLED, len); + else + (void) strlcpy(buf, ZFS_FEATURE_ACTIVE, len); + } + } else { + if (found) { + if (refcount == 0) { + (void) strcpy(buf, ZFS_UNSUPPORTED_INACTIVE); + } else { + (void) strcpy(buf, ZFS_UNSUPPORTED_READONLY); + } + } else { + (void) strlcpy(buf, "-", len); + return (ENOTSUP); + } + } + + return (0); +} /* * Don't start the slice at the default block of 34; many storage @@ -1286,8 +1460,10 @@ zpool_rewind_exclaim(libzfs_handle_t *hdl, const char *name, boolean_t dryrun, if (!hdl->libzfs_printerr || config == NULL) return; - if (nvlist_lookup_nvlist(config, ZPOOL_CONFIG_LOAD_INFO, &nv) != 0) + if (nvlist_lookup_nvlist(config, ZPOOL_CONFIG_LOAD_INFO, &nv) != 0 || + nvlist_lookup_nvlist(nv, ZPOOL_CONFIG_REWIND_INFO, &nv) != 0) { return; + } if (nvlist_lookup_uint64(nv, ZPOOL_CONFIG_LOAD_TIME, &rewindto) != 0) return; @@ -1343,6 +1519,7 @@ zpool_explain_recover(libzfs_handle_t *hdl, const char *name, int reason, /* All attempted rewinds failed if ZPOOL_CONFIG_LOAD_TIME missing */ if (nvlist_lookup_nvlist(config, ZPOOL_CONFIG_LOAD_INFO, &nv) != 0 || + nvlist_lookup_nvlist(nv, ZPOOL_CONFIG_REWIND_INFO, &nv) != 0 || nvlist_lookup_uint64(nv, ZPOOL_CONFIG_LOAD_TIME, &rewindto) != 0) goto no_info; @@ -1465,6 +1642,30 @@ print_vdev_tree(libzfs_handle_t *hdl, const char *name, nvlist_t *nv, } } +void +zpool_print_unsup_feat(nvlist_t *config) +{ + nvlist_t *nvinfo, *unsup_feat; + + verify(nvlist_lookup_nvlist(config, ZPOOL_CONFIG_LOAD_INFO, &nvinfo) == + 0); + verify(nvlist_lookup_nvlist(nvinfo, ZPOOL_CONFIG_UNSUP_FEAT, + &unsup_feat) == 0); + + for (nvpair_t *nvp = nvlist_next_nvpair(unsup_feat, NULL); nvp != NULL; + nvp = nvlist_next_nvpair(unsup_feat, nvp)) { + char *desc; + + verify(nvpair_type(nvp) == DATA_TYPE_STRING); + verify(nvpair_value_string(nvp, &desc) == 0); + + if (strlen(desc) > 0) + (void) printf("\t%s (%s)\n", nvpair_name(nvp), desc); + else + (void) printf("\t%s\n", nvpair_name(nvp)); + } +} + /* * Import the given pool using the known configuration and a list of * properties to be set. The configuration should have come from @@ -1571,6 +1772,22 @@ zpool_import_props(libzfs_handle_t *hdl, nvlist_t *config, const char *newname, switch (error) { case ENOTSUP: + if (nv != NULL && nvlist_lookup_nvlist(nv, + ZPOOL_CONFIG_LOAD_INFO, &nvinfo) == 0 && + nvlist_exists(nvinfo, ZPOOL_CONFIG_UNSUP_FEAT)) { + (void) printf(dgettext(TEXT_DOMAIN, "This " + "pool uses the following feature(s) not " + "supported by this system:\n")); + zpool_print_unsup_feat(nv); + if (nvlist_exists(nvinfo, + ZPOOL_CONFIG_CAN_RDONLY)) { + (void) printf(dgettext(TEXT_DOMAIN, + "All unsupported features are only " + "required for writing to the pool." + "\nThe pool can be imported using " + "'-o readonly=on'.\n")); + } + } /* * Unsupported version. */ diff --git a/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_status.c b/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_status.c index 24725ec044ec..af0707a62058 100644 --- a/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_status.c +++ b/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_status.c @@ -18,8 +18,10 @@ * * CDDL HEADER END */ + /* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012 by Delphix. All rights reserved. */ /* @@ -213,6 +215,20 @@ check_status(nvlist_t *config, boolean_t isimport) vs->vs_aux == VDEV_AUX_VERSION_NEWER) return (ZPOOL_STATUS_VERSION_NEWER); + /* + * Unsupported feature(s). + */ + if (vs->vs_state == VDEV_STATE_CANT_OPEN && + vs->vs_aux == VDEV_AUX_UNSUP_FEAT) { + nvlist_t *nvinfo; + + verify(nvlist_lookup_nvlist(config, ZPOOL_CONFIG_LOAD_INFO, + &nvinfo) == 0); + if (nvlist_exists(nvinfo, ZPOOL_CONFIG_CAN_RDONLY)) + return (ZPOOL_STATUS_UNSUP_FEAT_WRITE); + return (ZPOOL_STATUS_UNSUP_FEAT_READ); + } + /* * Check that the config is complete. */ @@ -300,7 +316,7 @@ check_status(nvlist_t *config, boolean_t isimport) /* * Outdated, but usable, version */ - if (version < SPA_VERSION) + if (SPA_VERSION_IS_SUPPORTED(version) && version != SPA_VERSION) return (ZPOOL_STATUS_VERSION_OLDER); return (ZPOOL_STATUS_OK); diff --git a/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_util.c b/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_util.c index c903696fe7d7..0db2dfd1b53d 100644 --- a/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_util.c +++ b/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_util.c @@ -18,9 +18,10 @@ * * CDDL HEADER END */ + /* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - * Copyright (c) 2011 by Delphix. All rights reserved. + * Copyright (c) 2012 by Delphix. All rights reserved. */ /* @@ -50,6 +51,7 @@ #include "libzfs_impl.h" #include "zfs_prop.h" +#include "zfeature_common.h" int aok; @@ -119,7 +121,8 @@ libzfs_error_description(libzfs_handle_t *hdl) case EZFS_RESILVERING: return (dgettext(TEXT_DOMAIN, "currently resilvering")); case EZFS_BADVERSION: - return (dgettext(TEXT_DOMAIN, "unsupported version")); + return (dgettext(TEXT_DOMAIN, "unsupported version or " + "feature")); case EZFS_POOLUNAVAIL: return (dgettext(TEXT_DOMAIN, "pool is unavailable")); case EZFS_DEVOVERFLOW: @@ -656,6 +659,7 @@ libzfs_init(void) zfs_prop_init(); zpool_prop_init(); + zpool_feature_init(); libzfs_mnttab_init(hdl); return (hdl); @@ -1325,9 +1329,11 @@ addlist(libzfs_handle_t *hdl, char *propname, zprop_list_t **listp, * this is a pool property or if this isn't a user-defined * dataset property, */ - if (prop == ZPROP_INVAL && (type == ZFS_TYPE_POOL || - (!zfs_prop_user(propname) && !zfs_prop_userquota(propname) && - !zfs_prop_written(propname)))) { + if (prop == ZPROP_INVAL && ((type == ZFS_TYPE_POOL && + !zpool_prop_feature(propname) && + !zpool_prop_unsupported(propname)) || + (type == ZFS_TYPE_DATASET && !zfs_prop_user(propname) && + !zfs_prop_userquota(propname) && !zfs_prop_written(propname)))) { zfs_error_aux(hdl, dgettext(TEXT_DOMAIN, "invalid property '%s'"), propname); return (zfs_error(hdl, EZFS_BADPROP, @@ -1339,7 +1345,8 @@ addlist(libzfs_handle_t *hdl, char *propname, zprop_list_t **listp, entry->pl_prop = prop; if (prop == ZPROP_INVAL) { - if ((entry->pl_user_prop = zfs_strdup(hdl, propname)) == NULL) { + if ((entry->pl_user_prop = zfs_strdup(hdl, propname)) == + NULL) { free(entry); return (-1); } diff --git a/cddl/contrib/opensolaris/lib/libzpool/common/kernel.c b/cddl/contrib/opensolaris/lib/libzpool/common/kernel.c index 2c0778777653..56bf7181d8bd 100644 --- a/cddl/contrib/opensolaris/lib/libzpool/common/kernel.c +++ b/cddl/contrib/opensolaris/lib/libzpool/common/kernel.c @@ -474,7 +474,9 @@ vn_rdwr(int uio, vnode_t *vp, void *addr, ssize_t len, offset_t offset, * To simulate partial disk writes, we split writes into two * system calls so that the process can be killed in between. */ - split = (len > 0 ? rand() % len : 0); + int sectors = len >> SPA_MINBLOCKSHIFT; + split = (sectors > 0 ? rand() % sectors : 0) << + SPA_MINBLOCKSHIFT; iolen = pwrite64(vp->v_fd, addr, split, offset); iolen += pwrite64(vp->v_fd, (char *)addr + split, len - split, offset + split); diff --git a/cddl/lib/libnvpair/Makefile b/cddl/lib/libnvpair/Makefile index da0c7f3c2990..bd159fc856aa 100644 --- a/cddl/lib/libnvpair/Makefile +++ b/cddl/lib/libnvpair/Makefile @@ -8,12 +8,17 @@ LIB= nvpair SRCS= libnvpair.c \ nvpair_alloc_system.c \ nvpair_alloc_fixed.c \ - nvpair.c + nvpair.c \ + fnvpair.c WARNS?= 0 CFLAGS+= -I${.CURDIR}/../../../cddl/compat/opensolaris/include +CFLAGS+= -I${.CURDIR}/../../../cddl/contrib/opensolaris/lib/libzpool/common CFLAGS+= -I${.CURDIR}/../../../sys/cddl/compat/opensolaris CFLAGS+= -I${.CURDIR}/../../../sys/cddl/contrib/opensolaris/uts/common +CFLAGS+= -I${.CURDIR}/../../../sys/cddl/contrib/opensolaris/uts/common/fs/zfs CFLAGS+= -I${.CURDIR}/../../../sys +CFLAGS+= -I${.CURDIR}/../../../cddl/contrib/opensolaris/head +CFLAGS+= -I${.CURDIR}/../../../cddl/compat/opensolaris/lib/libumem .include diff --git a/cddl/lib/libzfs/Makefile b/cddl/lib/libzfs/Makefile index c1dac5004b8c..369020364bbf 100644 --- a/cddl/lib/libzfs/Makefile +++ b/cddl/lib/libzfs/Makefile @@ -27,6 +27,7 @@ SRCS+= libzfs_changelist.c \ libzfs_sendrecv.c \ libzfs_status.c \ libzfs_util.c \ + zfeature_common.c \ zfs_comutil.c \ zfs_deleg.c \ zfs_fletcher.c \ diff --git a/cddl/sbin/zpool/Makefile b/cddl/sbin/zpool/Makefile index fba9ebfee604..327f6dc82e61 100644 --- a/cddl/sbin/zpool/Makefile +++ b/cddl/sbin/zpool/Makefile @@ -5,7 +5,7 @@ .PATH: ${.CURDIR}/../../../sys/cddl/contrib/opensolaris/common/zfs PROG= zpool -MAN= zpool.8 +MAN= zpool.8 zpool-features.5 SRCS= zpool_main.c zpool_vdev.c zpool_iter.c zpool_util.c zfs_comutil.c SRCS+= timestamp.c diff --git a/cddl/usr.bin/ztest/Makefile b/cddl/usr.bin/ztest/Makefile index 7988fcea05ad..d1ae4bbaaa86 100644 --- a/cddl/usr.bin/ztest/Makefile +++ b/cddl/usr.bin/ztest/Makefile @@ -11,15 +11,16 @@ CFLAGS+= -I${.CURDIR}/../../compat/opensolaris/include CFLAGS+= -I${.CURDIR}/../../compat/opensolaris/lib/libumem CFLAGS+= -I${.CURDIR}/../../contrib/opensolaris/lib/libzpool/common CFLAGS+= -I${.CURDIR}/../../contrib/opensolaris/lib/libnvpair +CFLAGS+= -I${.CURDIR}/../../../sys/cddl/contrib/opensolaris/common/zfs CFLAGS+= -I${.CURDIR}/../../../sys/cddl/contrib/opensolaris/uts/common/fs/zfs CFLAGS+= -I${.CURDIR}/../../../sys/cddl/contrib/opensolaris/uts/common/sys CFLAGS+= -I${.CURDIR}/../../../sys/cddl/contrib/opensolaris/uts/common CFLAGS+= -I${.CURDIR}/../../contrib/opensolaris/head CFLAGS+= -I${.CURDIR}/../../lib/libumem -DPADD= ${LIBM} ${LIBNVPAIR} ${LIBUMEM} ${LIBZPOOL} \ - ${LIBPTHREAD} ${LIBAVL} -LDADD= -lm -lnvpair -lumem -lzpool -lpthread -lavl +DPADD= ${LIBGEOM} ${LIBM} ${LIBNVPAIR} ${LIBUMEM} ${LIBZPOOL} \ + ${LIBPTHREAD} ${LIBAVL} ${LIBZFS} ${LIBUUTIL} +LDADD= -lgeom -lm -lnvpair -lumem -lzpool -lpthread -lavl -lzfs -luutil CSTD= c99 diff --git a/cddl/usr.sbin/Makefile b/cddl/usr.sbin/Makefile index a84715b69981..42d124f90046 100644 --- a/cddl/usr.sbin/Makefile +++ b/cddl/usr.sbin/Makefile @@ -5,11 +5,13 @@ SUBDIR= ${_dtrace} \ ${_dtruss} \ ${_lockstat} \ - ${_zdb} + ${_zdb} \ + ${_zhack} .if ${MK_ZFS} != "no" .if ${MK_LIBTHR} != "no" _zdb= zdb +_zhack= zhack .endif .endif diff --git a/cddl/usr.sbin/zhack/Makefile b/cddl/usr.sbin/zhack/Makefile new file mode 100644 index 000000000000..53d431e07a3d --- /dev/null +++ b/cddl/usr.sbin/zhack/Makefile @@ -0,0 +1,29 @@ +# $FreeBSD$ + +.PATH: ${.CURDIR}/../../../cddl/contrib/opensolaris/cmd/zhack + +PROG= zhack +NO_MAN= + +WARNS?= 0 +CSTD= c99 + +CFLAGS+= -I${.CURDIR}/../../../sys/cddl/compat/opensolaris +CFLAGS+= -I${.CURDIR}/../../../cddl/compat/opensolaris/include +CFLAGS+= -I${.CURDIR}/../../../cddl/compat/opensolaris/lib/libumem +CFLAGS+= -I${.CURDIR}/../../../cddl/contrib/opensolaris/lib/libnvpair +CFLAGS+= -I${.CURDIR}/../../../cddl/contrib/opensolaris/lib/libuutil/common +CFLAGS+= -I${.CURDIR}/../../../cddl/contrib/opensolaris/lib/libzfs/common +CFLAGS+= -I${.CURDIR}/../../../cddl/contrib/opensolaris/lib/libzpool/common +CFLAGS+= -I${.CURDIR}/../../../sys/cddl/contrib/opensolaris/uts/common/fs/zfs +CFLAGS+= -I${.CURDIR}/../../../sys/cddl/contrib/opensolaris/uts/common +CFLAGS+= -I${.CURDIR}/../../../sys/cddl/contrib/opensolaris/uts/common/sys +CFLAGS+= -I${.CURDIR}/../../../sys/cddl/contrib/opensolaris/common/zfs +CFLAGS+= -I${.CURDIR}/../../../cddl/contrib/opensolaris/head +CFLAGS+= -I${.CURDIR}/../../lib/libumem + +DPADD= ${LIBGEOM} ${LIBM} ${LIBNVPAIR} ${LIBPTHREAD} ${LIBUMEM} \ + ${LIBUUTIL} ${LIBZFS} ${LIBZPOOL} +LDADD= -lgeom -lm -lnvpair -lpthread -lumem -luutil -lzfs -lzpool + +.include diff --git a/sys/boot/zfs/zfsimpl.c b/sys/boot/zfs/zfsimpl.c index c37d7a5e281e..a770e015b3a9 100644 --- a/sys/boot/zfs/zfsimpl.c +++ b/sys/boot/zfs/zfsimpl.c @@ -49,6 +49,13 @@ struct zfsmount { */ static vdev_list_t zfs_vdevs; + /* + * List of ZFS features supported for read + */ +static const char *features_for_read[] = { + NULL +}; + /* * List of all pools, chained through spa_link. */ @@ -198,6 +205,57 @@ nvlist_find(const unsigned char *nvlist, const char *name, int type, return (EIO); } +static int +nvlist_check_features_for_read(const unsigned char *nvlist) +{ + const unsigned char *p, *pair; + int junk; + int encoded_size, decoded_size; + int rc; + + rc = 0; + + p = nvlist; + xdr_int(&p, &junk); + xdr_int(&p, &junk); + + pair = p; + xdr_int(&p, &encoded_size); + xdr_int(&p, &decoded_size); + while (encoded_size && decoded_size) { + int namelen, pairtype; + const char *pairname; + int i, found; + + found = 0; + + xdr_int(&p, &namelen); + pairname = (const char*) p; + p += roundup(namelen, 4); + xdr_int(&p, &pairtype); + + for (i = 0; features_for_read[i] != NULL; i++) { + if (!memcmp(pairname, features_for_read[i], namelen)) { + found = 1; + break; + } + } + + if (!found) { + printf("ZFS: unsupported feature: %s\n", pairname); + rc = EIO; + } + + p = pair + encoded_size; + + pair = p; + xdr_int(&p, &encoded_size); + xdr_int(&p, &decoded_size); + } + + return (rc); +} + /* * Return the next nvlist in an nvlist array. */ @@ -788,6 +846,7 @@ vdev_probe(vdev_phys_read_t *read, void *read_priv, spa_t **spap) uint64_t is_log; const char *pool_name; const unsigned char *vdevs; + const unsigned char *features; int i, rc, is_newer; char *upbuf; const struct uberblock *up; @@ -822,12 +881,18 @@ vdev_probe(vdev_phys_read_t *read, void *read_priv, spa_t **spap) return (EIO); } - if (val > SPA_VERSION) { + if (!SPA_VERSION_IS_SUPPORTED(val)) { printf("ZFS: unsupported ZFS version %u (should be %u)\n", (unsigned) val, (unsigned) SPA_VERSION); return (EIO); } + /* Check ZFS features for read */ + rc = nvlist_find(nvlist, ZPOOL_CONFIG_FEATURES_FOR_READ, + DATA_TYPE_NVLIST, 0, &features); + if (nvlist_check_features_for_read(features) != 0) + return (EIO); + if (nvlist_find(nvlist, ZPOOL_CONFIG_POOL_STATE, DATA_TYPE_UINT64, 0, &val)) { diff --git a/sys/cddl/boot/zfs/zfsimpl.h b/sys/cddl/boot/zfs/zfsimpl.h index 66379a31ebf6..af1579635bac 100644 --- a/sys/cddl/boot/zfs/zfsimpl.h +++ b/sys/cddl/boot/zfs/zfsimpl.h @@ -53,6 +53,8 @@ * Use is subject to license terms. */ +#define MAXNAMELEN 256 + /* CRC64 table */ #define ZFS_CRC64_POLY 0xC96C5795D7870F42ULL /* ECMA-182, reflected form */ @@ -508,6 +510,7 @@ typedef enum { #define SPA_VERSION_26 26ULL #define SPA_VERSION_27 27ULL #define SPA_VERSION_28 28ULL +#define SPA_VERSION_5000 5000ULL /* * When bumping up SPA_VERSION, make sure GRUB ZFS understands the on-disk @@ -515,8 +518,8 @@ typedef enum { * and do the appropriate changes. Also bump the version number in * usr/src/grub/capability. */ -#define SPA_VERSION SPA_VERSION_28 -#define SPA_VERSION_STRING "28" +#define SPA_VERSION SPA_VERSION_5000 +#define SPA_VERSION_STRING "5000" /* * Symbolic names for the changes that caused a SPA_VERSION switch. @@ -567,6 +570,12 @@ typedef enum { #define SPA_VERSION_DEADLISTS SPA_VERSION_26 #define SPA_VERSION_FAST_SNAP SPA_VERSION_27 #define SPA_VERSION_MULTI_REPLACE SPA_VERSION_28 +#define SPA_VERSION_BEFORE_FEATURES SPA_VERSION_28 +#define SPA_VERSION_FEATURES SPA_VERSION_5000 + +#define SPA_VERSION_IS_SUPPORTED(v) \ + (((v) >= SPA_VERSION_INITIAL && (v) <= SPA_VERSION_BEFORE_FEATURES) || \ + ((v) >= SPA_VERSION_FEATURES && (v) <= SPA_VERSION)) /* * The following are configuration names used in the nvlist describing a pool's @@ -602,6 +611,7 @@ typedef enum { #define ZPOOL_CONFIG_HOSTNAME "hostname" #define ZPOOL_CONFIG_IS_LOG "is_log" #define ZPOOL_CONFIG_TIMESTAMP "timestamp" /* not stored on disk */ +#define ZPOOL_CONFIG_FEATURES_FOR_READ "features_for_read" /* * The persistent vdev state is stored as separate values rather than a single diff --git a/sys/cddl/contrib/opensolaris/common/nvpair/fnvpair.c b/sys/cddl/contrib/opensolaris/common/nvpair/fnvpair.c new file mode 100644 index 000000000000..acef4cbc3088 --- /dev/null +++ b/sys/cddl/contrib/opensolaris/common/nvpair/fnvpair.c @@ -0,0 +1,498 @@ + +/* + * CDDL HEADER START + * + * The contents of this file are subject to the terms of the + * Common Development and Distribution License (the "License"). + * You may not use this file except in compliance with the License. + * + * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE + * or http://www.opensolaris.org/os/licensing. + * See the License for the specific language governing permissions + * and limitations under the License. + * + * When distributing Covered Code, include this CDDL HEADER in each + * file and include the License file at usr/src/OPENSOLARIS.LICENSE. + * If applicable, add the following below this CDDL HEADER, with the + * fields enclosed by brackets "[]" replaced with your own identifying + * information: Portions Copyright [yyyy] [name of copyright owner] + * + * CDDL HEADER END + */ + +/* + * Copyright (c) 2012 by Delphix. All rights reserved. + */ + +#include +#ifndef _KERNEL +#include +#else +#include +#include +#endif + +/* + * "Force" nvlist wrapper. + * + * These functions wrap the nvlist_* functions with assertions that assume + * the operation is successful. This allows the caller's code to be much + * more readable, especially for the fnvlist_lookup_* and fnvpair_value_* + * functions, which can return the requested value (rather than filling in + * a pointer). + * + * These functions use NV_UNIQUE_NAME, encoding NV_ENCODE_NATIVE, and allocate + * with KM_SLEEP. + * + * More wrappers should be added as needed -- for example + * nvlist_lookup_*_array and nvpair_value_*_array. + */ + +nvlist_t * +fnvlist_alloc(void) +{ + nvlist_t *nvl; + VERIFY3U(nvlist_alloc(&nvl, NV_UNIQUE_NAME, KM_SLEEP), ==, 0); + return (nvl); +} + +void +fnvlist_free(nvlist_t *nvl) +{ + nvlist_free(nvl); +} + +size_t +fnvlist_size(nvlist_t *nvl) +{ + size_t size; + VERIFY3U(nvlist_size(nvl, &size, NV_ENCODE_NATIVE), ==, 0); + return (size); +} + +/* + * Returns allocated buffer of size *sizep. Caller must free the buffer with + * fnvlist_pack_free(). + */ +char * +fnvlist_pack(nvlist_t *nvl, size_t *sizep) +{ + char *packed = 0; + VERIFY3U(nvlist_pack(nvl, &packed, sizep, NV_ENCODE_NATIVE, + KM_SLEEP), ==, 0); + return (packed); +} + +/*ARGSUSED*/ +void +fnvlist_pack_free(char *pack, size_t size) +{ +#ifdef _KERNEL + kmem_free(pack, size); +#else + free(pack); +#endif +} + +nvlist_t * +fnvlist_unpack(char *buf, size_t buflen) +{ + nvlist_t *rv; + VERIFY3U(nvlist_unpack(buf, buflen, &rv, KM_SLEEP), ==, 0); + return (rv); +} + +nvlist_t * +fnvlist_dup(nvlist_t *nvl) +{ + nvlist_t *rv; + VERIFY3U(nvlist_dup(nvl, &rv, KM_SLEEP), ==, 0); + return (rv); +} + +void +fnvlist_merge(nvlist_t *dst, nvlist_t *src) +{ + VERIFY3U(nvlist_merge(dst, src, KM_SLEEP), ==, 0); +} + +void +fnvlist_add_boolean(nvlist_t *nvl, const char *name) +{ + VERIFY3U(nvlist_add_boolean(nvl, name), ==, 0); +} + +void +fnvlist_add_boolean_value(nvlist_t *nvl, const char *name, boolean_t val) +{ + VERIFY3U(nvlist_add_boolean_value(nvl, name, val), ==, 0); +} + +void +fnvlist_add_byte(nvlist_t *nvl, const char *name, uchar_t val) +{ + VERIFY3U(nvlist_add_byte(nvl, name, val), ==, 0); +} + +void +fnvlist_add_int8(nvlist_t *nvl, const char *name, int8_t val) +{ + VERIFY3U(nvlist_add_int8(nvl, name, val), ==, 0); +} + +void +fnvlist_add_uint8(nvlist_t *nvl, const char *name, uint8_t val) +{ + VERIFY3U(nvlist_add_uint8(nvl, name, val), ==, 0); +} + +void +fnvlist_add_int16(nvlist_t *nvl, const char *name, int16_t val) +{ + VERIFY3U(nvlist_add_int16(nvl, name, val), ==, 0); +} + +void +fnvlist_add_uint16(nvlist_t *nvl, const char *name, uint16_t val) +{ + VERIFY3U(nvlist_add_uint16(nvl, name, val), ==, 0); +} + +void +fnvlist_add_int32(nvlist_t *nvl, const char *name, int32_t val) +{ + VERIFY3U(nvlist_add_int32(nvl, name, val), ==, 0); +} + +void +fnvlist_add_uint32(nvlist_t *nvl, const char *name, uint32_t val) +{ + VERIFY3U(nvlist_add_uint32(nvl, name, val), ==, 0); +} + +void +fnvlist_add_int64(nvlist_t *nvl, const char *name, int64_t val) +{ + VERIFY3U(nvlist_add_int64(nvl, name, val), ==, 0); +} + +void +fnvlist_add_uint64(nvlist_t *nvl, const char *name, uint64_t val) +{ + VERIFY3U(nvlist_add_uint64(nvl, name, val), ==, 0); +} + +void +fnvlist_add_string(nvlist_t *nvl, const char *name, const char *val) +{ + VERIFY3U(nvlist_add_string(nvl, name, val), ==, 0); +} + +void +fnvlist_add_nvlist(nvlist_t *nvl, const char *name, nvlist_t *val) +{ + VERIFY3U(nvlist_add_nvlist(nvl, name, val), ==, 0); +} + +void +fnvlist_add_nvpair(nvlist_t *nvl, nvpair_t *pair) +{ + VERIFY3U(nvlist_add_nvpair(nvl, pair), ==, 0); +} + +void +fnvlist_add_boolean_array(nvlist_t *nvl, const char *name, + boolean_t *val, uint_t n) +{ + VERIFY3U(nvlist_add_boolean_array(nvl, name, val, n), ==, 0); +} + +void +fnvlist_add_byte_array(nvlist_t *nvl, const char *name, uchar_t *val, uint_t n) +{ + VERIFY3U(nvlist_add_byte_array(nvl, name, val, n), ==, 0); +} + +void +fnvlist_add_int8_array(nvlist_t *nvl, const char *name, int8_t *val, uint_t n) +{ + VERIFY3U(nvlist_add_int8_array(nvl, name, val, n), ==, 0); +} + +void +fnvlist_add_uint8_array(nvlist_t *nvl, const char *name, uint8_t *val, uint_t n) +{ + VERIFY3U(nvlist_add_uint8_array(nvl, name, val, n), ==, 0); +} + +void +fnvlist_add_int16_array(nvlist_t *nvl, const char *name, int16_t *val, uint_t n) +{ + VERIFY3U(nvlist_add_int16_array(nvl, name, val, n), ==, 0); +} + +void +fnvlist_add_uint16_array(nvlist_t *nvl, const char *name, + uint16_t *val, uint_t n) +{ + VERIFY3U(nvlist_add_uint16_array(nvl, name, val, n), ==, 0); +} + +void +fnvlist_add_int32_array(nvlist_t *nvl, const char *name, int32_t *val, uint_t n) +{ + VERIFY3U(nvlist_add_int32_array(nvl, name, val, n), ==, 0); +} + +void +fnvlist_add_uint32_array(nvlist_t *nvl, const char *name, + uint32_t *val, uint_t n) +{ + VERIFY3U(nvlist_add_uint32_array(nvl, name, val, n), ==, 0); +} + +void +fnvlist_add_int64_array(nvlist_t *nvl, const char *name, int64_t *val, uint_t n) +{ + VERIFY3U(nvlist_add_int64_array(nvl, name, val, n), ==, 0); +} + +void +fnvlist_add_uint64_array(nvlist_t *nvl, const char *name, + uint64_t *val, uint_t n) +{ + VERIFY3U(nvlist_add_uint64_array(nvl, name, val, n), ==, 0); +} + +void +fnvlist_add_string_array(nvlist_t *nvl, const char *name, + char * const *val, uint_t n) +{ + VERIFY3U(nvlist_add_string_array(nvl, name, val, n), ==, 0); +} + +void +fnvlist_add_nvlist_array(nvlist_t *nvl, const char *name, + nvlist_t **val, uint_t n) +{ + VERIFY3U(nvlist_add_nvlist_array(nvl, name, val, n), ==, 0); +} + +void +fnvlist_remove(nvlist_t *nvl, const char *name) +{ + VERIFY3U(nvlist_remove_all(nvl, name), ==, 0); +} + +void +fnvlist_remove_nvpair(nvlist_t *nvl, nvpair_t *pair) +{ + VERIFY3U(nvlist_remove_nvpair(nvl, pair), ==, 0); +} + +nvpair_t * +fnvlist_lookup_nvpair(nvlist_t *nvl, const char *name) +{ + nvpair_t *rv; + VERIFY3U(nvlist_lookup_nvpair(nvl, name, &rv), ==, 0); + return (rv); +} + +/* returns B_TRUE if the entry exists */ +boolean_t +fnvlist_lookup_boolean(nvlist_t *nvl, const char *name) +{ + return (nvlist_lookup_boolean(nvl, name) == 0); +} + +boolean_t +fnvlist_lookup_boolean_value(nvlist_t *nvl, const char *name) +{ + boolean_t rv; + VERIFY3U(nvlist_lookup_boolean_value(nvl, name, &rv), ==, 0); + return (rv); +} + +uchar_t +fnvlist_lookup_byte(nvlist_t *nvl, const char *name) +{ + uchar_t rv; + VERIFY3U(nvlist_lookup_byte(nvl, name, &rv), ==, 0); + return (rv); +} + +int8_t +fnvlist_lookup_int8(nvlist_t *nvl, const char *name) +{ + int8_t rv; + VERIFY3U(nvlist_lookup_int8(nvl, name, &rv), ==, 0); + return (rv); +} + +int16_t +fnvlist_lookup_int16(nvlist_t *nvl, const char *name) +{ + int16_t rv; + VERIFY3U(nvlist_lookup_int16(nvl, name, &rv), ==, 0); + return (rv); +} + +int32_t +fnvlist_lookup_int32(nvlist_t *nvl, const char *name) +{ + int32_t rv; + VERIFY3U(nvlist_lookup_int32(nvl, name, &rv), ==, 0); + return (rv); +} + +int64_t +fnvlist_lookup_int64(nvlist_t *nvl, const char *name) +{ + int64_t rv; + VERIFY3U(nvlist_lookup_int64(nvl, name, &rv), ==, 0); + return (rv); +} + +uint8_t +fnvlist_lookup_uint8_t(nvlist_t *nvl, const char *name) +{ + uint8_t rv; + VERIFY3U(nvlist_lookup_uint8(nvl, name, &rv), ==, 0); + return (rv); +} + +uint16_t +fnvlist_lookup_uint16(nvlist_t *nvl, const char *name) +{ + uint16_t rv; + VERIFY3U(nvlist_lookup_uint16(nvl, name, &rv), ==, 0); + return (rv); +} + +uint32_t +fnvlist_lookup_uint32(nvlist_t *nvl, const char *name) +{ + uint32_t rv; + VERIFY3U(nvlist_lookup_uint32(nvl, name, &rv), ==, 0); + return (rv); +} + +uint64_t +fnvlist_lookup_uint64(nvlist_t *nvl, const char *name) +{ + uint64_t rv; + VERIFY3U(nvlist_lookup_uint64(nvl, name, &rv), ==, 0); + return (rv); +} + +char * +fnvlist_lookup_string(nvlist_t *nvl, const char *name) +{ + char *rv; + VERIFY3U(nvlist_lookup_string(nvl, name, &rv), ==, 0); + return (rv); +} + +nvlist_t * +fnvlist_lookup_nvlist(nvlist_t *nvl, const char *name) +{ + nvlist_t *rv; + VERIFY3U(nvlist_lookup_nvlist(nvl, name, &rv), ==, 0); + return (rv); +} + +boolean_t +fnvpair_value_boolean_value(nvpair_t *nvp) +{ + boolean_t rv; + VERIFY3U(nvpair_value_boolean_value(nvp, &rv), ==, 0); + return (rv); +} + +uchar_t +fnvpair_value_byte(nvpair_t *nvp) +{ + uchar_t rv; + VERIFY3U(nvpair_value_byte(nvp, &rv), ==, 0); + return (rv); +} + +int8_t +fnvpair_value_int8(nvpair_t *nvp) +{ + int8_t rv; + VERIFY3U(nvpair_value_int8(nvp, &rv), ==, 0); + return (rv); +} + +int16_t +fnvpair_value_int16(nvpair_t *nvp) +{ + int16_t rv; + VERIFY3U(nvpair_value_int16(nvp, &rv), ==, 0); + return (rv); +} + +int32_t +fnvpair_value_int32(nvpair_t *nvp) +{ + int32_t rv; + VERIFY3U(nvpair_value_int32(nvp, &rv), ==, 0); + return (rv); +} + +int64_t +fnvpair_value_int64(nvpair_t *nvp) +{ + int64_t rv; + VERIFY3U(nvpair_value_int64(nvp, &rv), ==, 0); + return (rv); +} + +uint8_t +fnvpair_value_uint8_t(nvpair_t *nvp) +{ + uint8_t rv; + VERIFY3U(nvpair_value_uint8(nvp, &rv), ==, 0); + return (rv); +} + +uint16_t +fnvpair_value_uint16(nvpair_t *nvp) +{ + uint16_t rv; + VERIFY3U(nvpair_value_uint16(nvp, &rv), ==, 0); + return (rv); +} + +uint32_t +fnvpair_value_uint32(nvpair_t *nvp) +{ + uint32_t rv; + VERIFY3U(nvpair_value_uint32(nvp, &rv), ==, 0); + return (rv); +} + +uint64_t +fnvpair_value_uint64(nvpair_t *nvp) +{ + uint64_t rv; + VERIFY3U(nvpair_value_uint64(nvp, &rv), ==, 0); + return (rv); +} + +char * +fnvpair_value_string(nvpair_t *nvp) +{ + char *rv; + VERIFY3U(nvpair_value_string(nvp, &rv), ==, 0); + return (rv); +} + +nvlist_t * +fnvpair_value_nvlist(nvpair_t *nvp) +{ + nvlist_t *rv; + VERIFY3U(nvpair_value_nvlist(nvp, &rv), ==, 0); + return (rv); +} diff --git a/sys/cddl/contrib/opensolaris/common/zfs/zfeature_common.c b/sys/cddl/contrib/opensolaris/common/zfs/zfeature_common.c new file mode 100644 index 000000000000..6dadd99368ba --- /dev/null +++ b/sys/cddl/contrib/opensolaris/common/zfs/zfeature_common.c @@ -0,0 +1,155 @@ +/* + * CDDL HEADER START + * + * The contents of this file are subject to the terms of the + * Common Development and Distribution License (the "License"). + * You may not use this file except in compliance with the License. + * + * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE + * or http://www.opensolaris.org/os/licensing. + * See the License for the specific language governing permissions + * and limitations under the License. + * + * When distributing Covered Code, include this CDDL HEADER in each + * file and include the License file at usr/src/OPENSOLARIS.LICENSE. + * If applicable, add the following below this CDDL HEADER, with the + * fields enclosed by brackets "[]" replaced with your own identifying + * information: Portions Copyright [yyyy] [name of copyright owner] + * + * CDDL HEADER END + */ + +/* + * Copyright (c) 2012 by Delphix. All rights reserved. + */ + +#ifdef _KERNEL +#include +#else +#include +#include +#endif +#include +#include +#include +#include "zfeature_common.h" + +/* + * Set to disable all feature checks while opening pools, allowing pools with + * unsupported features to be opened. Set for testing only. + */ +boolean_t zfeature_checks_disable = B_FALSE; + +zfeature_info_t spa_feature_table[SPA_FEATURES]; + +/* + * Valid characters for feature guids. This list is mainly for aesthetic + * purposes and could be expanded in the future. There are different allowed + * characters in the guids reverse dns portion (before the colon) and its + * short name (after the colon). + */ +static int +valid_char(char c, boolean_t after_colon) +{ + return ((c >= 'a' && c <= 'z') || + (c >= '0' && c <= '9') || + c == (after_colon ? '_' : '.')); +} + +/* + * Every feature guid must contain exactly one colon which separates a reverse + * dns organization name from the feature's "short" name (e.g. + * "com.company:feature_name"). + */ +boolean_t +zfeature_is_valid_guid(const char *name) +{ + int i; + boolean_t has_colon = B_FALSE; + + i = 0; + while (name[i] != '\0') { + char c = name[i++]; + if (c == ':') { + if (has_colon) + return (B_FALSE); + has_colon = B_TRUE; + continue; + } + if (!valid_char(c, has_colon)) + return (B_FALSE); + } + + return (has_colon); +} + +boolean_t +zfeature_is_supported(const char *guid) +{ + if (zfeature_checks_disable) + return (B_TRUE); + + return (0 == zfeature_lookup_guid(guid, NULL)); +} + +int +zfeature_lookup_guid(const char *guid, zfeature_info_t **res) +{ + for (int i = 0; i < SPA_FEATURES; i++) { + zfeature_info_t *feature = &spa_feature_table[i]; + if (strcmp(guid, feature->fi_guid) == 0) { + if (res != NULL) + *res = feature; + return (0); + } + } + + return (ENOENT); +} + +int +zfeature_lookup_name(const char *name, zfeature_info_t **res) +{ + for (int i = 0; i < SPA_FEATURES; i++) { + zfeature_info_t *feature = &spa_feature_table[i]; + if (strcmp(name, feature->fi_uname) == 0) { + if (res != NULL) + *res = feature; + return (0); + } + } + + return (ENOENT); +} + +static void +zfeature_register(int fid, const char *guid, const char *name, const char *desc, + boolean_t readonly, boolean_t mos, zfeature_info_t **deps) +{ + zfeature_info_t *feature = &spa_feature_table[fid]; + static zfeature_info_t *nodeps[] = { NULL }; + + ASSERT(name != NULL); + ASSERT(desc != NULL); + ASSERT(!readonly || !mos); + ASSERT3U(fid, <, SPA_FEATURES); + ASSERT(zfeature_is_valid_guid(guid)); + + if (deps == NULL) + deps = nodeps; + + feature->fi_guid = guid; + feature->fi_uname = name; + feature->fi_desc = desc; + feature->fi_can_readonly = readonly; + feature->fi_mos = mos; + feature->fi_depends = deps; +} + +void +zpool_feature_init(void) +{ + zfeature_register(SPA_FEATURE_ASYNC_DESTROY, + "com.delphix:async_destroy", "async_destroy", + "Destroy filesystems asynchronously.", B_TRUE, B_FALSE, NULL); +} diff --git a/sys/cddl/contrib/opensolaris/common/zfs/zfeature_common.h b/sys/cddl/contrib/opensolaris/common/zfs/zfeature_common.h new file mode 100644 index 000000000000..b57eb43a58ee --- /dev/null +++ b/sys/cddl/contrib/opensolaris/common/zfs/zfeature_common.h @@ -0,0 +1,70 @@ +/* + * CDDL HEADER START + * + * The contents of this file are subject to the terms of the + * Common Development and Distribution License (the "License"). + * You may not use this file except in compliance with the License. + * + * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE + * or http://www.opensolaris.org/os/licensing. + * See the License for the specific language governing permissions + * and limitations under the License. + * + * When distributing Covered Code, include this CDDL HEADER in each + * file and include the License file at usr/src/OPENSOLARIS.LICENSE. + * If applicable, add the following below this CDDL HEADER, with the + * fields enclosed by brackets "[]" replaced with your own identifying + * information: Portions Copyright [yyyy] [name of copyright owner] + * + * CDDL HEADER END + */ + +/* + * Copyright (c) 2012 by Delphix. All rights reserved. + */ + +#ifndef _ZFEATURE_COMMON_H +#define _ZFEATURE_COMMON_H + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct zfeature_info; + +typedef struct zfeature_info { + const char *fi_uname; /* User-facing feature name */ + const char *fi_guid; /* On-disk feature identifier */ + const char *fi_desc; /* Feature description */ + boolean_t fi_can_readonly; /* Can open pool readonly w/o support? */ + boolean_t fi_mos; /* Is the feature necessary to read the MOS? */ + struct zfeature_info **fi_depends; /* array; null terminated */ +} zfeature_info_t; + +typedef int (zfeature_func_t)(zfeature_info_t *fi, void *arg); + +#define ZFS_FEATURE_DEBUG + +static enum spa_feature { + SPA_FEATURE_ASYNC_DESTROY, + SPA_FEATURES +} spa_feature_t; + +extern zfeature_info_t spa_feature_table[SPA_FEATURES]; + +extern boolean_t zfeature_is_valid_guid(const char *); + +extern boolean_t zfeature_is_supported(const char *); +extern int zfeature_lookup_guid(const char *, zfeature_info_t **res); +extern int zfeature_lookup_name(const char *, zfeature_info_t **res); + +extern void zpool_feature_init(void); + +#ifdef __cplusplus +} +#endif + +#endif /* _ZFEATURE_COMMON_H */ diff --git a/sys/cddl/contrib/opensolaris/common/zfs/zpool_prop.c b/sys/cddl/contrib/opensolaris/common/zfs/zpool_prop.c index 512e0675073e..72db87937110 100644 --- a/sys/cddl/contrib/opensolaris/common/zfs/zpool_prop.c +++ b/sys/cddl/contrib/opensolaris/common/zfs/zpool_prop.c @@ -79,6 +79,8 @@ zpool_prop_init(void) ZFS_TYPE_POOL, "", "SIZE"); zprop_register_number(ZPOOL_PROP_FREE, "free", 0, PROP_READONLY, ZFS_TYPE_POOL, "", "FREE"); + zprop_register_number(ZPOOL_PROP_FREEING, "freeing", 0, PROP_READONLY, + ZFS_TYPE_POOL, "", "FREEING"); zprop_register_number(ZPOOL_PROP_ALLOCATED, "allocated", 0, PROP_READONLY, ZFS_TYPE_POOL, "", "ALLOC"); zprop_register_number(ZPOOL_PROP_EXPANDSZ, "expandsize", 0, @@ -166,6 +168,26 @@ zpool_prop_default_numeric(zpool_prop_t prop) return (zpool_prop_table[prop].pd_numdefault); } +/* + * Returns true if this is a valid feature@ property. + */ +boolean_t +zpool_prop_feature(const char *name) +{ + static const char *prefix = "feature@"; + return (strncmp(name, prefix, strlen(prefix)) == 0); +} + +/* + * Returns true if this is a valid unsupported@ property. + */ +boolean_t +zpool_prop_unsupported(const char *name) +{ + static const char *prefix = "unsupported@"; + return (strncmp(name, prefix, strlen(prefix)) == 0); +} + int zpool_prop_string_to_index(zpool_prop_t prop, const char *string, uint64_t *index) diff --git a/sys/cddl/contrib/opensolaris/uts/common/Makefile.files b/sys/cddl/contrib/opensolaris/uts/common/Makefile.files index 2ab1d7b8ea9b..30d4f79f43ef 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/Makefile.files +++ b/sys/cddl/contrib/opensolaris/uts/common/Makefile.files @@ -21,6 +21,7 @@ # # Copyright (c) 1991, 2010, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2012 by Delphix. All rights reserved. # # # This Makefile defines all file modules for the directory uts/common @@ -31,6 +32,7 @@ ZFS_COMMON_OBJS += \ arc.o \ bplist.o \ bpobj.o \ + bptree.o \ dbuf.o \ ddt.o \ ddt_zap.o \ @@ -52,6 +54,7 @@ ZFS_COMMON_OBJS += \ dsl_deleg.o \ dsl_prop.o \ dsl_scan.o \ + zfeature.o \ gzip.o \ lzjb.o \ metaslab.o \ @@ -94,11 +97,12 @@ ZFS_COMMON_OBJS += \ zrlock.o ZFS_SHARED_OBJS += \ - zfs_namecheck.o \ - zfs_deleg.o \ - zfs_prop.o \ + zfeature_common.o \ zfs_comutil.o \ + zfs_deleg.o \ zfs_fletcher.o \ + zfs_namecheck.o \ + zfs_prop.o \ zpool_prop.o \ zprop_common.o diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c index cb8139271633..9dd4e0757f64 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c @@ -2794,9 +2794,11 @@ arc_read_done(zio_t *zio) callback_list = hdr->b_acb; ASSERT(callback_list != NULL); if (BP_SHOULD_BYTESWAP(zio->io_bp) && zio->io_error == 0) { + dmu_object_byteswap_t bswap = + DMU_OT_BYTESWAP(BP_GET_TYPE(zio->io_bp)); arc_byteswap_func_t *func = BP_GET_LEVEL(zio->io_bp) > 0 ? byteswap_uint64_array : - dmu_ot[BP_GET_TYPE(zio->io_bp)].ot_byteswap; + dmu_ot_byteswap[bswap].ob_func; func(buf->b_data, hdr->b_size); } diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/bptree.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/bptree.c new file mode 100644 index 000000000000..8c5a7d40ef37 --- /dev/null +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/bptree.c @@ -0,0 +1,224 @@ +/* + * CDDL HEADER START + * + * The contents of this file are subject to the terms of the + * Common Development and Distribution License (the "License"). + * You may not use this file except in compliance with the License. + * + * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE + * or http://www.opensolaris.org/os/licensing. + * See the License for the specific language governing permissions + * and limitations under the License. + * + * When distributing Covered Code, include this CDDL HEADER in each + * file and include the License file at usr/src/OPENSOLARIS.LICENSE. + * If applicable, add the following below this CDDL HEADER, with the + * fields enclosed by brackets "[]" replaced with your own identifying + * information: Portions Copyright [yyyy] [name of copyright owner] + * + * CDDL HEADER END + */ + +/* + * Copyright (c) 2012 by Delphix. All rights reserved. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* + * A bptree is a queue of root block pointers from destroyed datasets. When a + * dataset is destroyed its root block pointer is put on the end of the pool's + * bptree queue so the dataset's blocks can be freed asynchronously by + * dsl_scan_sync. This allows the delete operation to finish without traversing + * all the dataset's blocks. + * + * Note that while bt_begin and bt_end are only ever incremented in this code + * they are effectively reset to 0 every time the entire bptree is freed because + * the bptree's object is destroyed and re-created. + */ + +struct bptree_args { + bptree_phys_t *ba_phys; /* data in bonus buffer, dirtied if freeing */ + boolean_t ba_free; /* true if freeing during traversal */ + + bptree_itor_t *ba_func; /* function to call for each blockpointer */ + void *ba_arg; /* caller supplied argument to ba_func */ + dmu_tx_t *ba_tx; /* caller supplied tx, NULL if not freeing */ +} bptree_args_t; + +uint64_t +bptree_alloc(objset_t *os, dmu_tx_t *tx) +{ + uint64_t obj; + dmu_buf_t *db; + bptree_phys_t *bt; + + obj = dmu_object_alloc(os, DMU_OTN_UINT64_METADATA, + SPA_MAXBLOCKSIZE, DMU_OTN_UINT64_METADATA, + sizeof (bptree_phys_t), tx); + + /* + * Bonus buffer contents are already initialized to 0, but for + * readability we make it explicit. + */ + VERIFY3U(0, ==, dmu_bonus_hold(os, obj, FTAG, &db)); + dmu_buf_will_dirty(db, tx); + bt = db->db_data; + bt->bt_begin = 0; + bt->bt_end = 0; + bt->bt_bytes = 0; + bt->bt_comp = 0; + bt->bt_uncomp = 0; + dmu_buf_rele(db, FTAG); + + return (obj); +} + +int +bptree_free(objset_t *os, uint64_t obj, dmu_tx_t *tx) +{ + dmu_buf_t *db; + bptree_phys_t *bt; + + VERIFY3U(0, ==, dmu_bonus_hold(os, obj, FTAG, &db)); + bt = db->db_data; + ASSERT3U(bt->bt_begin, ==, bt->bt_end); + ASSERT3U(bt->bt_bytes, ==, 0); + ASSERT3U(bt->bt_comp, ==, 0); + ASSERT3U(bt->bt_uncomp, ==, 0); + dmu_buf_rele(db, FTAG); + + return (dmu_object_free(os, obj, tx)); +} + +void +bptree_add(objset_t *os, uint64_t obj, blkptr_t *bp, uint64_t birth_txg, + uint64_t bytes, uint64_t comp, uint64_t uncomp, dmu_tx_t *tx) +{ + dmu_buf_t *db; + bptree_phys_t *bt; + bptree_entry_phys_t bte; + + /* + * bptree objects are in the pool mos, therefore they can only be + * modified in syncing context. Furthermore, this is only modified + * by the sync thread, so no locking is necessary. + */ + ASSERT(dmu_tx_is_syncing(tx)); + + VERIFY3U(0, ==, dmu_bonus_hold(os, obj, FTAG, &db)); + bt = db->db_data; + + bte.be_birth_txg = birth_txg; + bte.be_bp = *bp; + bzero(&bte.be_zb, sizeof (bte.be_zb)); + dmu_write(os, obj, bt->bt_end * sizeof (bte), sizeof (bte), &bte, tx); + + dmu_buf_will_dirty(db, tx); + bt->bt_end++; + bt->bt_bytes += bytes; + bt->bt_comp += comp; + bt->bt_uncomp += uncomp; + dmu_buf_rele(db, FTAG); +} + +/* ARGSUSED */ +static int +bptree_visit_cb(spa_t *spa, zilog_t *zilog, const blkptr_t *bp, arc_buf_t *pbuf, + const zbookmark_t *zb, const dnode_phys_t *dnp, void *arg) +{ + int err; + struct bptree_args *ba = arg; + + if (bp == NULL) + return (0); + + err = ba->ba_func(ba->ba_arg, bp, ba->ba_tx); + if (err == 0 && ba->ba_free) { + ba->ba_phys->bt_bytes -= bp_get_dsize_sync(spa, bp); + ba->ba_phys->bt_comp -= BP_GET_PSIZE(bp); + ba->ba_phys->bt_uncomp -= BP_GET_UCSIZE(bp); + } + return (err); +} + +int +bptree_iterate(objset_t *os, uint64_t obj, boolean_t free, bptree_itor_t func, + void *arg, dmu_tx_t *tx) +{ + int err; + uint64_t i; + dmu_buf_t *db; + struct bptree_args ba; + + ASSERT(!free || dmu_tx_is_syncing(tx)); + + err = dmu_bonus_hold(os, obj, FTAG, &db); + if (err != 0) + return (err); + + if (free) + dmu_buf_will_dirty(db, tx); + + ba.ba_phys = db->db_data; + ba.ba_free = free; + ba.ba_func = func; + ba.ba_arg = arg; + ba.ba_tx = tx; + + err = 0; + for (i = ba.ba_phys->bt_begin; i < ba.ba_phys->bt_end; i++) { + bptree_entry_phys_t bte; + + ASSERT(!free || i == ba.ba_phys->bt_begin); + + err = dmu_read(os, obj, i * sizeof (bte), sizeof (bte), + &bte, DMU_READ_NO_PREFETCH); + if (err != 0) + break; + + err = traverse_dataset_destroyed(os->os_spa, &bte.be_bp, + bte.be_birth_txg, &bte.be_zb, TRAVERSE_POST, + bptree_visit_cb, &ba); + if (free) { + ASSERT(err == 0 || err == ERESTART); + if (err != 0) { + /* save bookmark for future resume */ + ASSERT3U(bte.be_zb.zb_objset, ==, + ZB_DESTROYED_OBJSET); + ASSERT3U(bte.be_zb.zb_level, ==, 0); + dmu_write(os, obj, i * sizeof (bte), + sizeof (bte), &bte, tx); + break; + } else { + ba.ba_phys->bt_begin++; + (void) dmu_free_range(os, obj, + i * sizeof (bte), sizeof (bte), tx); + } + } + } + + ASSERT(!free || err != 0 || ba.ba_phys->bt_begin == ba.ba_phys->bt_end); + + /* if all blocks are free there should be no used space */ + if (ba.ba_phys->bt_begin == ba.ba_phys->bt_end) { + ASSERT3U(ba.ba_phys->bt_bytes, ==, 0); + ASSERT3U(ba.ba_phys->bt_comp, ==, 0); + ASSERT3U(ba.ba_phys->bt_uncomp, ==, 0); + } + + dmu_buf_rele(db, FTAG); + + return (err); +} diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c index dc9f4823bbfb..b75ee44c6c2b 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c @@ -21,6 +21,7 @@ /* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2011 Nexenta Systems, Inc. All rights reserved. + * Copyright (c) 2012 by Delphix. All rights reserved. */ #include @@ -227,7 +228,7 @@ dbuf_is_metadata(dmu_buf_impl_t *db) boolean_t is_metadata; DB_DNODE_ENTER(db); - is_metadata = dmu_ot[DB_DNODE(db)->dn_type].ot_metadata; + is_metadata = DMU_OT_IS_METADATA(DB_DNODE(db)->dn_type); DB_DNODE_EXIT(db); return (is_metadata); diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/ddt.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/ddt.c index 0edf62e89c05..ef3d0f4467fe 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/ddt.c +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/ddt.c @@ -21,6 +21,7 @@ /* * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012 by Delphix. All rights reserved. */ #include @@ -1067,11 +1068,9 @@ ddt_sync_table(ddt_t *ddt, dmu_tx_t *tx, uint64_t txg) ASSERT(spa->spa_uberblock.ub_version >= SPA_VERSION_DEDUP); if (spa->spa_ddt_stat_object == 0) { - spa->spa_ddt_stat_object = zap_create(ddt->ddt_os, - DMU_OT_DDT_STATS, DMU_OT_NONE, 0, tx); - VERIFY(zap_add(ddt->ddt_os, DMU_POOL_DIRECTORY_OBJECT, - DMU_POOL_DDT_STATS, sizeof (uint64_t), 1, - &spa->spa_ddt_stat_object, tx) == 0); + spa->spa_ddt_stat_object = zap_create_link(ddt->ddt_os, + DMU_OT_DDT_STATS, DMU_POOL_DIRECTORY_OBJECT, + DMU_POOL_DDT_STATS, tx); } while ((dde = avl_destroy_nodes(&ddt->ddt_tree, &cookie)) != NULL) { diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c index f7d471fa3fc3..2204e9d8bac4 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c @@ -20,6 +20,7 @@ */ /* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012 by Delphix. All rights reserved. */ #include @@ -45,60 +46,73 @@ #endif const dmu_object_type_info_t dmu_ot[DMU_OT_NUMTYPES] = { - { byteswap_uint8_array, TRUE, "unallocated" }, - { zap_byteswap, TRUE, "object directory" }, - { byteswap_uint64_array, TRUE, "object array" }, - { byteswap_uint8_array, TRUE, "packed nvlist" }, - { byteswap_uint64_array, TRUE, "packed nvlist size" }, - { byteswap_uint64_array, TRUE, "bpobj" }, - { byteswap_uint64_array, TRUE, "bpobj header" }, - { byteswap_uint64_array, TRUE, "SPA space map header" }, - { byteswap_uint64_array, TRUE, "SPA space map" }, - { byteswap_uint64_array, TRUE, "ZIL intent log" }, - { dnode_buf_byteswap, TRUE, "DMU dnode" }, - { dmu_objset_byteswap, TRUE, "DMU objset" }, - { byteswap_uint64_array, TRUE, "DSL directory" }, - { zap_byteswap, TRUE, "DSL directory child map"}, - { zap_byteswap, TRUE, "DSL dataset snap map" }, - { zap_byteswap, TRUE, "DSL props" }, - { byteswap_uint64_array, TRUE, "DSL dataset" }, - { zfs_znode_byteswap, TRUE, "ZFS znode" }, - { zfs_oldacl_byteswap, TRUE, "ZFS V0 ACL" }, - { byteswap_uint8_array, FALSE, "ZFS plain file" }, - { zap_byteswap, TRUE, "ZFS directory" }, - { zap_byteswap, TRUE, "ZFS master node" }, - { zap_byteswap, TRUE, "ZFS delete queue" }, - { byteswap_uint8_array, FALSE, "zvol object" }, - { zap_byteswap, TRUE, "zvol prop" }, - { byteswap_uint8_array, FALSE, "other uint8[]" }, - { byteswap_uint64_array, FALSE, "other uint64[]" }, - { zap_byteswap, TRUE, "other ZAP" }, - { zap_byteswap, TRUE, "persistent error log" }, - { byteswap_uint8_array, TRUE, "SPA history" }, - { byteswap_uint64_array, TRUE, "SPA history offsets" }, - { zap_byteswap, TRUE, "Pool properties" }, - { zap_byteswap, TRUE, "DSL permissions" }, - { zfs_acl_byteswap, TRUE, "ZFS ACL" }, - { byteswap_uint8_array, TRUE, "ZFS SYSACL" }, - { byteswap_uint8_array, TRUE, "FUID table" }, - { byteswap_uint64_array, TRUE, "FUID table size" }, - { zap_byteswap, TRUE, "DSL dataset next clones"}, - { zap_byteswap, TRUE, "scan work queue" }, - { zap_byteswap, TRUE, "ZFS user/group used" }, - { zap_byteswap, TRUE, "ZFS user/group quota" }, - { zap_byteswap, TRUE, "snapshot refcount tags"}, - { zap_byteswap, TRUE, "DDT ZAP algorithm" }, - { zap_byteswap, TRUE, "DDT statistics" }, - { byteswap_uint8_array, TRUE, "System attributes" }, - { zap_byteswap, TRUE, "SA master node" }, - { zap_byteswap, TRUE, "SA attr registration" }, - { zap_byteswap, TRUE, "SA attr layouts" }, - { zap_byteswap, TRUE, "scan translations" }, - { byteswap_uint8_array, FALSE, "deduplicated block" }, - { zap_byteswap, TRUE, "DSL deadlist map" }, - { byteswap_uint64_array, TRUE, "DSL deadlist map hdr" }, - { zap_byteswap, TRUE, "DSL dir clones" }, - { byteswap_uint64_array, TRUE, "bpobj subobj" }, + { DMU_BSWAP_UINT8, TRUE, "unallocated" }, + { DMU_BSWAP_ZAP, TRUE, "object directory" }, + { DMU_BSWAP_UINT64, TRUE, "object array" }, + { DMU_BSWAP_UINT8, TRUE, "packed nvlist" }, + { DMU_BSWAP_UINT64, TRUE, "packed nvlist size" }, + { DMU_BSWAP_UINT64, TRUE, "bpobj" }, + { DMU_BSWAP_UINT64, TRUE, "bpobj header" }, + { DMU_BSWAP_UINT64, TRUE, "SPA space map header" }, + { DMU_BSWAP_UINT64, TRUE, "SPA space map" }, + { DMU_BSWAP_UINT64, TRUE, "ZIL intent log" }, + { DMU_BSWAP_DNODE, TRUE, "DMU dnode" }, + { DMU_BSWAP_OBJSET, TRUE, "DMU objset" }, + { DMU_BSWAP_UINT64, TRUE, "DSL directory" }, + { DMU_BSWAP_ZAP, TRUE, "DSL directory child map"}, + { DMU_BSWAP_ZAP, TRUE, "DSL dataset snap map" }, + { DMU_BSWAP_ZAP, TRUE, "DSL props" }, + { DMU_BSWAP_UINT64, TRUE, "DSL dataset" }, + { DMU_BSWAP_ZNODE, TRUE, "ZFS znode" }, + { DMU_BSWAP_OLDACL, TRUE, "ZFS V0 ACL" }, + { DMU_BSWAP_UINT8, FALSE, "ZFS plain file" }, + { DMU_BSWAP_ZAP, TRUE, "ZFS directory" }, + { DMU_BSWAP_ZAP, TRUE, "ZFS master node" }, + { DMU_BSWAP_ZAP, TRUE, "ZFS delete queue" }, + { DMU_BSWAP_UINT8, FALSE, "zvol object" }, + { DMU_BSWAP_ZAP, TRUE, "zvol prop" }, + { DMU_BSWAP_UINT8, FALSE, "other uint8[]" }, + { DMU_BSWAP_UINT64, FALSE, "other uint64[]" }, + { DMU_BSWAP_ZAP, TRUE, "other ZAP" }, + { DMU_BSWAP_ZAP, TRUE, "persistent error log" }, + { DMU_BSWAP_UINT8, TRUE, "SPA history" }, + { DMU_BSWAP_UINT64, TRUE, "SPA history offsets" }, + { DMU_BSWAP_ZAP, TRUE, "Pool properties" }, + { DMU_BSWAP_ZAP, TRUE, "DSL permissions" }, + { DMU_BSWAP_ACL, TRUE, "ZFS ACL" }, + { DMU_BSWAP_UINT8, TRUE, "ZFS SYSACL" }, + { DMU_BSWAP_UINT8, TRUE, "FUID table" }, + { DMU_BSWAP_UINT64, TRUE, "FUID table size" }, + { DMU_BSWAP_ZAP, TRUE, "DSL dataset next clones"}, + { DMU_BSWAP_ZAP, TRUE, "scan work queue" }, + { DMU_BSWAP_ZAP, TRUE, "ZFS user/group used" }, + { DMU_BSWAP_ZAP, TRUE, "ZFS user/group quota" }, + { DMU_BSWAP_ZAP, TRUE, "snapshot refcount tags"}, + { DMU_BSWAP_ZAP, TRUE, "DDT ZAP algorithm" }, + { DMU_BSWAP_ZAP, TRUE, "DDT statistics" }, + { DMU_BSWAP_UINT8, TRUE, "System attributes" }, + { DMU_BSWAP_ZAP, TRUE, "SA master node" }, + { DMU_BSWAP_ZAP, TRUE, "SA attr registration" }, + { DMU_BSWAP_ZAP, TRUE, "SA attr layouts" }, + { DMU_BSWAP_ZAP, TRUE, "scan translations" }, + { DMU_BSWAP_UINT8, FALSE, "deduplicated block" }, + { DMU_BSWAP_ZAP, TRUE, "DSL deadlist map" }, + { DMU_BSWAP_UINT64, TRUE, "DSL deadlist map hdr" }, + { DMU_BSWAP_ZAP, TRUE, "DSL dir clones" }, + { DMU_BSWAP_UINT64, TRUE, "bpobj subobj" } +}; + +const dmu_object_byteswap_info_t dmu_ot_byteswap[DMU_BSWAP_NUMFUNCS] = { + { byteswap_uint8_array, "uint8" }, + { byteswap_uint16_array, "uint16" }, + { byteswap_uint32_array, "uint32" }, + { byteswap_uint64_array, "uint64" }, + { zap_byteswap, "zap" }, + { dnode_buf_byteswap, "dnode" }, + { dmu_objset_byteswap, "objset" }, + { zfs_znode_byteswap, "znode" }, + { zfs_oldacl_byteswap, "oldacl" }, + { zfs_acl_byteswap, "acl" } }; int @@ -175,7 +189,7 @@ dmu_set_bonustype(dmu_buf_t *db_fake, dmu_object_type_t type, dmu_tx_t *tx) DB_DNODE_ENTER(db); dn = DB_DNODE(db); - if (type > DMU_OT_NUMTYPES) { + if (!DMU_OT_IS_VALID(type)) { error = EINVAL; } else if (dn->dn_bonus != db) { error = EINVAL; @@ -1513,7 +1527,7 @@ void dmu_write_policy(objset_t *os, dnode_t *dn, int level, int wp, zio_prop_t *zp) { dmu_object_type_t type = dn ? dn->dn_type : DMU_OT_OBJSET; - boolean_t ismd = (level > 0 || dmu_ot[type].ot_metadata || + boolean_t ismd = (level > 0 || DMU_OT_IS_METADATA(type) || (wp & WP_SPILL)); enum zio_checksum checksum = os->os_checksum; enum zio_compress compress = os->os_compress; diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c index baed0377e6a1..81fd9f29f4fd 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c @@ -20,11 +20,8 @@ */ /* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - * Copyright (c) 2011 by Delphix. All rights reserved. - */ -/* * Copyright 2011 Nexenta Systems, Inc. All rights reserved. - * Copyright (c) 2011 by Delphix. All rights reserved. + * Copyright (c) 2012 by Delphix. All rights reserved. * Copyright (c) 2012, Joyent, Inc. All rights reserved. * Copyright (c) 2012, Martin Matuska . All rights reserved. */ @@ -1117,8 +1114,8 @@ restore_object(struct restorearg *ra, objset_t *os, struct drr_object *drro) void *data = NULL; if (drro->drr_type == DMU_OT_NONE || - drro->drr_type >= DMU_OT_NUMTYPES || - drro->drr_bonustype >= DMU_OT_NUMTYPES || + !DMU_OT_IS_VALID(drro->drr_type) || + !DMU_OT_IS_VALID(drro->drr_bonustype) || drro->drr_checksumtype >= ZIO_CHECKSUM_FUNCTIONS || drro->drr_compress >= ZIO_COMPRESS_FUNCTIONS || P2PHASE(drro->drr_blksz, SPA_MINBLOCKSIZE) || @@ -1183,7 +1180,9 @@ restore_object(struct restorearg *ra, objset_t *os, struct drr_object *drro) ASSERT3U(db->db_size, >=, drro->drr_bonuslen); bcopy(data, db->db_data, drro->drr_bonuslen); if (ra->byteswap) { - dmu_ot[drro->drr_bonustype].ot_byteswap(db->db_data, + dmu_object_byteswap_t byteswap = + DMU_OT_BYTESWAP(drro->drr_bonustype); + dmu_ot_byteswap[byteswap].ob_func(db->db_data, drro->drr_bonuslen); } dmu_buf_rele(db, FTAG); @@ -1226,7 +1225,7 @@ restore_write(struct restorearg *ra, objset_t *os, int err; if (drrw->drr_offset + drrw->drr_length < drrw->drr_offset || - drrw->drr_type >= DMU_OT_NUMTYPES) + !DMU_OT_IS_VALID(drrw->drr_type)) return (EINVAL); data = restore_read(ra, drrw->drr_length); @@ -1245,8 +1244,11 @@ restore_write(struct restorearg *ra, objset_t *os, dmu_tx_abort(tx); return (err); } - if (ra->byteswap) - dmu_ot[drrw->drr_type].ot_byteswap(data, drrw->drr_length); + if (ra->byteswap) { + dmu_object_byteswap_t byteswap = + DMU_OT_BYTESWAP(drrw->drr_type); + dmu_ot_byteswap[byteswap].ob_func(data, drrw->drr_length); + } dmu_write(os, drrw->drr_object, drrw->drr_offset, drrw->drr_length, data, tx); dmu_tx_commit(tx); diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_traverse.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_traverse.c index 023f90e12e34..bfe9e6506426 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_traverse.c +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_traverse.c @@ -20,6 +20,7 @@ */ /* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012 by Delphix. All rights reserved. */ #include @@ -53,6 +54,7 @@ typedef struct traverse_data { uint64_t td_objset; blkptr_t *td_rootbp; uint64_t td_min_txg; + zbookmark_t *td_resume; int td_flags; prefetch_data_t *td_pfd; blkptr_cb_t *td_func; @@ -128,6 +130,54 @@ traverse_zil(traverse_data_t *td, zil_header_t *zh) zil_free(zilog); } +typedef enum resume_skip { + RESUME_SKIP_ALL, + RESUME_SKIP_NONE, + RESUME_SKIP_CHILDREN +} resume_skip_t; + +/* + * Returns RESUME_SKIP_ALL if td indicates that we are resuming a traversal and + * the block indicated by zb does not need to be visited at all. Returns + * RESUME_SKIP_CHILDREN if we are resuming a post traversal and we reach the + * resume point. This indicates that this block should be visited but not its + * children (since they must have been visited in a previous traversal). + * Otherwise returns RESUME_SKIP_NONE. + */ +static resume_skip_t +resume_skip_check(traverse_data_t *td, const dnode_phys_t *dnp, + const zbookmark_t *zb) +{ + if (td->td_resume != NULL && !ZB_IS_ZERO(td->td_resume)) { + /* + * If we already visited this bp & everything below, + * don't bother doing it again. + */ + if (zbookmark_is_before(dnp, zb, td->td_resume)) + return (RESUME_SKIP_ALL); + + /* + * If we found the block we're trying to resume from, zero + * the bookmark out to indicate that we have resumed. + */ + ASSERT3U(zb->zb_object, <=, td->td_resume->zb_object); + if (bcmp(zb, td->td_resume, sizeof (*zb)) == 0) { + bzero(td->td_resume, sizeof (*zb)); + if (td->td_flags & TRAVERSE_POST) + return (RESUME_SKIP_CHILDREN); + } + } + return (RESUME_SKIP_NONE); +} + +static void +traverse_pause(traverse_data_t *td, const zbookmark_t *zb) +{ + ASSERT(td->td_resume != NULL); + ASSERT3U(zb->zb_level, ==, 0); + bcopy(zb, td->td_resume, sizeof (*td->td_resume)); +} + static int traverse_visitbp(traverse_data_t *td, const dnode_phys_t *dnp, arc_buf_t *pbuf, blkptr_t *bp, const zbookmark_t *zb) @@ -137,8 +187,20 @@ traverse_visitbp(traverse_data_t *td, const dnode_phys_t *dnp, arc_buf_t *buf = NULL; prefetch_data_t *pd = td->td_pfd; boolean_t hard = td->td_flags & TRAVERSE_HARD; + boolean_t pause = B_FALSE; - if (bp->blk_birth == 0) { + switch (resume_skip_check(td, dnp, zb)) { + case RESUME_SKIP_ALL: + return (0); + case RESUME_SKIP_CHILDREN: + goto post; + case RESUME_SKIP_NONE: + break; + default: + ASSERT(0); + } + + if (BP_IS_HOLE(bp)) { err = td->td_func(td->td_spa, NULL, NULL, pbuf, zb, dnp, td->td_arg); return (err); @@ -164,8 +226,10 @@ traverse_visitbp(traverse_data_t *td, const dnode_phys_t *dnp, td->td_arg); if (err == TRAVERSE_VISIT_NO_CHILDREN) return (0); - if (err) - return (err); + if (err == ERESTART) + pause = B_TRUE; /* handle pausing at a common point */ + if (err != 0) + goto post; } if (BP_GET_LEVEL(bp) > 0) { @@ -253,9 +317,18 @@ traverse_visitbp(traverse_data_t *td, const dnode_phys_t *dnp, if (buf) (void) arc_buf_remove_ref(buf, &buf); +post: if (err == 0 && lasterr == 0 && (td->td_flags & TRAVERSE_POST)) { err = td->td_func(td->td_spa, NULL, bp, pbuf, zb, dnp, td->td_arg); + if (err == ERESTART) + pause = B_TRUE; + } + + if (pause && td->td_resume != NULL) { + ASSERT3U(err, ==, ERESTART); + ASSERT(!hard); + traverse_pause(td, zb); } return (err != 0 ? err : lasterr); @@ -353,18 +426,23 @@ traverse_prefetch_thread(void *arg) * in syncing context). */ static int -traverse_impl(spa_t *spa, dsl_dataset_t *ds, blkptr_t *rootbp, - uint64_t txg_start, int flags, blkptr_cb_t func, void *arg) +traverse_impl(spa_t *spa, dsl_dataset_t *ds, uint64_t objset, blkptr_t *rootbp, + uint64_t txg_start, zbookmark_t *resume, int flags, + blkptr_cb_t func, void *arg) { traverse_data_t td; prefetch_data_t pd = { 0 }; zbookmark_t czb; int err; + ASSERT(ds == NULL || objset == ds->ds_object); + ASSERT(!(flags & TRAVERSE_PRE) || !(flags & TRAVERSE_POST)); + td.td_spa = spa; - td.td_objset = ds ? ds->ds_object : 0; + td.td_objset = objset; td.td_rootbp = rootbp; td.td_min_txg = txg_start; + td.td_resume = resume; td.td_func = func; td.td_arg = arg; td.td_pfd = &pd; @@ -416,8 +494,17 @@ int traverse_dataset(dsl_dataset_t *ds, uint64_t txg_start, int flags, blkptr_cb_t func, void *arg) { - return (traverse_impl(ds->ds_dir->dd_pool->dp_spa, ds, - &ds->ds_phys->ds_bp, txg_start, flags, func, arg)); + return (traverse_impl(ds->ds_dir->dd_pool->dp_spa, ds, ds->ds_object, + &ds->ds_phys->ds_bp, txg_start, NULL, flags, func, arg)); +} + +int +traverse_dataset_destroyed(spa_t *spa, blkptr_t *blkptr, + uint64_t txg_start, zbookmark_t *resume, int flags, + blkptr_cb_t func, void *arg) +{ + return (traverse_impl(spa, NULL, ZB_DESTROYED_OBJSET, + blkptr, txg_start, resume, flags, func, arg)); } /* @@ -434,8 +521,8 @@ traverse_pool(spa_t *spa, uint64_t txg_start, int flags, boolean_t hard = (flags & TRAVERSE_HARD); /* visit the MOS */ - err = traverse_impl(spa, NULL, spa_get_rootblkptr(spa), - txg_start, flags, func, arg); + err = traverse_impl(spa, NULL, 0, spa_get_rootblkptr(spa), + txg_start, NULL, flags, func, arg); if (err) return (err); diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_tx.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_tx.c index b4579e278c85..3dd5f2c573d7 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_tx.c +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_tx.c @@ -20,9 +20,8 @@ */ /* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - */ -/* * Copyright 2011 Nexenta Systems, Inc. All rights reserved. + * Copyright (c) 2012 by Delphix. All rights reserved. */ #include @@ -676,7 +675,7 @@ dmu_tx_hold_zap(dmu_tx_t *tx, uint64_t object, int add, const char *name) return; } - ASSERT3P(dmu_ot[dn->dn_type].ot_byteswap, ==, zap_byteswap); + ASSERT3P(DMU_OT_BYTESWAP(dn->dn_type), ==, DMU_BSWAP_ZAP); if (dn->dn_maxblkid == 0 && !add) { blkptr_t *bp; diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c index ca2b69ab12f9..f098e117a575 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c @@ -20,6 +20,7 @@ */ /* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012 by Delphix. All rights reserved. */ #include @@ -196,7 +197,7 @@ dnode_verify(dnode_t *dn) ASSERT(dn->dn_objset); ASSERT(dn->dn_handle->dnh_dnode == dn); - ASSERT(dn->dn_phys->dn_type < DMU_OT_NUMTYPES); + ASSERT(DMU_OT_IS_VALID(dn->dn_phys->dn_type)); if (!(zfs_flags & ZFS_DEBUG_DNODE_VERIFY)) return; @@ -215,7 +216,7 @@ dnode_verify(dnode_t *dn) ASSERT3U(1<dn_datablkshift, ==, dn->dn_datablksz); } ASSERT3U(dn->dn_nlevels, <=, 30); - ASSERT3U(dn->dn_type, <=, DMU_OT_NUMTYPES); + ASSERT(DMU_OT_IS_VALID(dn->dn_type)); ASSERT3U(dn->dn_nblkptr, >=, 1); ASSERT3U(dn->dn_nblkptr, <=, DN_MAX_NBLKPTR); ASSERT3U(dn->dn_bonuslen, <=, DN_MAX_BONUSLEN); @@ -281,8 +282,10 @@ dnode_byteswap(dnode_phys_t *dnp) */ int off = (dnp->dn_nblkptr-1) * sizeof (blkptr_t); size_t len = DN_MAX_BONUSLEN - off; - ASSERT3U(dnp->dn_bonustype, <, DMU_OT_NUMTYPES); - dmu_ot[dnp->dn_bonustype].ot_byteswap(dnp->dn_bonus + off, len); + ASSERT(DMU_OT_IS_VALID(dnp->dn_bonustype)); + dmu_object_byteswap_t byteswap = + DMU_OT_BYTESWAP(dnp->dn_bonustype); + dmu_ot_byteswap[byteswap].ob_func(dnp->dn_bonus + off, len); } /* Swap SPILL block if we have one */ @@ -410,7 +413,7 @@ dnode_create(objset_t *os, dnode_phys_t *dnp, dmu_buf_impl_t *db, dmu_zfetch_init(&dn->dn_zfetch, dn); - ASSERT(dn->dn_phys->dn_type < DMU_OT_NUMTYPES); + ASSERT(DMU_OT_IS_VALID(dn->dn_phys->dn_type)); mutex_enter(&os->os_lock); list_insert_head(&os->os_dnodes, dn); @@ -499,11 +502,11 @@ dnode_allocate(dnode_t *dn, dmu_object_type_t ot, int blocksize, int ibs, ASSERT(bcmp(dn->dn_phys, &dnode_phys_zero, sizeof (dnode_phys_t)) == 0); ASSERT(dn->dn_phys->dn_type == DMU_OT_NONE); ASSERT(ot != DMU_OT_NONE); - ASSERT3U(ot, <, DMU_OT_NUMTYPES); + ASSERT(DMU_OT_IS_VALID(ot)); ASSERT((bonustype == DMU_OT_NONE && bonuslen == 0) || (bonustype == DMU_OT_SA && bonuslen == 0) || (bonustype != DMU_OT_NONE && bonuslen != 0)); - ASSERT3U(bonustype, <, DMU_OT_NUMTYPES); + ASSERT(DMU_OT_IS_VALID(bonustype)); ASSERT3U(bonuslen, <=, DN_MAX_BONUSLEN); ASSERT(dn->dn_type == DMU_OT_NONE); ASSERT3U(dn->dn_maxblkid, ==, 0); @@ -571,7 +574,7 @@ dnode_reallocate(dnode_t *dn, dmu_object_type_t ot, int blocksize, ASSERT((bonustype == DMU_OT_NONE && bonuslen == 0) || (bonustype != DMU_OT_NONE && bonuslen != 0) || (bonustype == DMU_OT_SA && bonuslen == 0)); - ASSERT3U(bonustype, <, DMU_OT_NUMTYPES); + ASSERT(DMU_OT_IS_VALID(bonustype)); ASSERT3U(bonuslen, <=, DN_MAX_BONUSLEN); /* clean up any unreferenced dbufs */ diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode_sync.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode_sync.c index 32afe7d74735..fcabc748d1af 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode_sync.c +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode_sync.c @@ -18,8 +18,10 @@ * * CDDL HEADER END */ + /* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012 by Delphix. All rights reserved. */ #include @@ -597,7 +599,7 @@ dnode_sync(dnode_t *dn, dmu_tx_t *tx) } if (dn->dn_next_bonustype[txgoff]) { - ASSERT(dn->dn_next_bonustype[txgoff] < DMU_OT_NUMTYPES); + ASSERT(DMU_OT_IS_VALID(dn->dn_next_bonustype[txgoff])); dnp->dn_bonustype = dn->dn_next_bonustype[txgoff]; dn->dn_next_bonustype[txgoff] = 0; } diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c index 648f2f353a51..c44527881247 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c @@ -20,7 +20,7 @@ */ /* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - * Copyright (c) 2011 by Delphix. All rights reserved. + * Copyright (c) 2012 by Delphix. All rights reserved. * Copyright (c) 2012, Joyent, Inc. All rights reserved. * Copyright (c) 2011 Pawel Jakub Dawidek . * All rights reserved. @@ -38,6 +38,7 @@ #include #include #include +#include #include #include #include @@ -103,7 +104,7 @@ dsl_dataset_block_born(dsl_dataset_t *ds, const blkptr_t *bp, dmu_tx_t *tx) if (BP_IS_HOLE(bp)) return; ASSERT(BP_GET_TYPE(bp) != DMU_OT_NONE); - ASSERT3U(BP_GET_TYPE(bp), <, DMU_OT_NUMTYPES); + ASSERT(DMU_OT_IS_VALID(BP_GET_TYPE(bp))); if (ds == NULL) { /* * Account for the meta-objset space in its placeholder @@ -120,7 +121,7 @@ dsl_dataset_block_born(dsl_dataset_t *ds, const blkptr_t *bp, dmu_tx_t *tx) mutex_enter(&ds->ds_dir->dd_lock); mutex_enter(&ds->ds_lock); delta = parent_delta(ds, used); - ds->ds_phys->ds_used_bytes += used; + ds->ds_phys->ds_referenced_bytes += used; ds->ds_phys->ds_compressed_bytes += compressed; ds->ds_phys->ds_uncompressed_bytes += uncompressed; ds->ds_phys->ds_unique_bytes += used; @@ -214,8 +215,8 @@ dsl_dataset_block_kill(dsl_dataset_t *ds, const blkptr_t *bp, dmu_tx_t *tx, } } mutex_enter(&ds->ds_lock); - ASSERT3U(ds->ds_phys->ds_used_bytes, >=, used); - ds->ds_phys->ds_used_bytes -= used; + ASSERT3U(ds->ds_phys->ds_referenced_bytes, >=, used); + ds->ds_phys->ds_referenced_bytes -= used; ASSERT3U(ds->ds_phys->ds_compressed_bytes, >=, compressed); ds->ds_phys->ds_compressed_bytes -= compressed; ASSERT3U(ds->ds_phys->ds_uncompressed_bytes, >=, uncompressed); @@ -827,8 +828,8 @@ dsl_dataset_create_sync_dd(dsl_dir_t *dd, dsl_dataset_t *origin, dsphys->ds_prev_snap_obj = origin->ds_object; dsphys->ds_prev_snap_txg = origin->ds_phys->ds_creation_txg; - dsphys->ds_used_bytes = - origin->ds_phys->ds_used_bytes; + dsphys->ds_referenced_bytes = + origin->ds_phys->ds_referenced_bytes; dsphys->ds_compressed_bytes = origin->ds_phys->ds_compressed_bytes; dsphys->ds_uncompressed_bytes = @@ -981,7 +982,6 @@ dmu_snapshots_destroy_nvl(nvlist_t *snaps, boolean_t defer, char *failed) for (pair = nvlist_next_nvpair(snaps, NULL); pair != NULL; pair = nvlist_next_nvpair(snaps, pair)) { dsl_dataset_t *ds; - int err; err = dsl_dataset_own(nvpair_name(pair), B_TRUE, dstg, &ds); if (err == 0) { @@ -1130,19 +1130,23 @@ dsl_dataset_destroy(dsl_dataset_t *ds, void *tag, boolean_t defer) goto out; /* - * remove the objects in open context, so that we won't - * have too much to do in syncing context. + * If async destruction is not enabled try to remove all objects + * while in the open context so that there is less work to do in + * the syncing context. */ - for (obj = 0; err == 0; err = dmu_object_next(os, &obj, FALSE, - ds->ds_phys->ds_prev_snap_txg)) { - /* - * Ignore errors, if there is not enough disk space - * we will deal with it in dsl_dataset_destroy_sync(). - */ - (void) dmu_free_object(os, obj); + if (!spa_feature_is_enabled(dsl_dataset_get_spa(ds), + &spa_feature_table[SPA_FEATURE_ASYNC_DESTROY])) { + for (obj = 0; err == 0; err = dmu_object_next(os, &obj, FALSE, + ds->ds_phys->ds_prev_snap_txg)) { + /* + * Ignore errors, if there is not enough disk space + * we will deal with it in dsl_dataset_destroy_sync(). + */ + (void) dmu_free_object(os, obj); + } + if (err != ESRCH) + goto out; } - if (err != ESRCH) - goto out; /* * Only the ZIL knows how to free log blocks. @@ -1288,7 +1292,7 @@ dsl_dataset_recalc_head_uniq(dsl_dataset_t *ds) ASSERT(!dsl_dataset_is_snapshot(ds)); if (ds->ds_phys->ds_prev_snap_obj != 0) - mrs_used = ds->ds_prev->ds_phys->ds_used_bytes; + mrs_used = ds->ds_prev->ds_phys->ds_referenced_bytes; else mrs_used = 0; @@ -1296,7 +1300,7 @@ dsl_dataset_recalc_head_uniq(dsl_dataset_t *ds) ASSERT3U(dlused, <=, mrs_used); ds->ds_phys->ds_unique_bytes = - ds->ds_phys->ds_used_bytes - (mrs_used - dlused); + ds->ds_phys->ds_referenced_bytes - (mrs_used - dlused); if (spa_version(ds->ds_dir->dd_pool->dp_spa) >= SPA_VERSION_UNIQUE_ACCURATE) @@ -1655,6 +1659,30 @@ process_old_deadlist(dsl_dataset_t *ds, dsl_dataset_t *ds_prev, ds_next->ds_phys->ds_deadlist_obj); } +static int +old_synchronous_dataset_destroy(dsl_dataset_t *ds, dmu_tx_t *tx) +{ + int err; + struct killarg ka; + + /* + * Free everything that we point to (that's born after + * the previous snapshot, if we are a clone) + * + * NB: this should be very quick, because we already + * freed all the objects in open context. + */ + ka.ds = ds; + ka.tx = tx; + err = traverse_dataset(ds, + ds->ds_phys->ds_prev_snap_txg, TRAVERSE_POST, + kill_blkptr, &ka); + ASSERT3U(err, ==, 0); + ASSERT(!DS_UNIQUE_IS_ACCURATE(ds) || ds->ds_phys->ds_unique_bytes == 0); + + return (err); +} + void dsl_dataset_destroy_sync(void *arg1, void *tag, dmu_tx_t *tx) { @@ -1801,7 +1829,6 @@ dsl_dataset_destroy_sync(void *arg1, void *tag, dmu_tx_t *tx) tx); dsl_dir_diduse_space(tx->tx_pool->dp_free_dir, DD_USED_HEAD, used, comp, uncomp, tx); - dsl_dir_dirty(tx->tx_pool->dp_free_dir, tx); /* Merge our deadlist into next's and free it. */ dsl_deadlist_merge(&ds_next->ds_deadlist, @@ -1877,32 +1904,54 @@ dsl_dataset_destroy_sync(void *arg1, void *tag, dmu_tx_t *tx) } dsl_dataset_rele(ds_next, FTAG); } else { + zfeature_info_t *async_destroy = + &spa_feature_table[SPA_FEATURE_ASYNC_DESTROY]; + /* * There's no next snapshot, so this is a head dataset. * Destroy the deadlist. Unless it's a clone, the * deadlist should be empty. (If it's a clone, it's * safe to ignore the deadlist contents.) */ - struct killarg ka; - dsl_deadlist_close(&ds->ds_deadlist); dsl_deadlist_free(mos, ds->ds_phys->ds_deadlist_obj, tx); ds->ds_phys->ds_deadlist_obj = 0; - /* - * Free everything that we point to (that's born after - * the previous snapshot, if we are a clone) - * - * NB: this should be very quick, because we already - * freed all the objects in open context. - */ - ka.ds = ds; - ka.tx = tx; - err = traverse_dataset(ds, ds->ds_phys->ds_prev_snap_txg, - TRAVERSE_POST, kill_blkptr, &ka); - ASSERT3U(err, ==, 0); - ASSERT(!DS_UNIQUE_IS_ACCURATE(ds) || - ds->ds_phys->ds_unique_bytes == 0); + if (!spa_feature_is_enabled(dp->dp_spa, async_destroy)) { + err = old_synchronous_dataset_destroy(ds, tx); + } else { + /* + * Move the bptree into the pool's list of trees to + * clean up and update space accounting information. + */ + uint64_t used, comp, uncomp; + + ASSERT(err == 0 || err == EBUSY); + if (!spa_feature_is_active(dp->dp_spa, async_destroy)) { + spa_feature_incr(dp->dp_spa, async_destroy, tx); + dp->dp_bptree_obj = bptree_alloc( + dp->dp_meta_objset, tx); + VERIFY(zap_add(dp->dp_meta_objset, + DMU_POOL_DIRECTORY_OBJECT, + DMU_POOL_BPTREE_OBJ, sizeof (uint64_t), 1, + &dp->dp_bptree_obj, tx) == 0); + } + + used = ds->ds_dir->dd_phys->dd_used_bytes; + comp = ds->ds_dir->dd_phys->dd_compressed_bytes; + uncomp = ds->ds_dir->dd_phys->dd_uncompressed_bytes; + + ASSERT(!DS_UNIQUE_IS_ACCURATE(ds) || + ds->ds_phys->ds_unique_bytes == used); + + bptree_add(dp->dp_meta_objset, dp->dp_bptree_obj, + &ds->ds_phys->ds_bp, ds->ds_phys->ds_prev_snap_txg, + used, comp, uncomp, tx); + dsl_dir_diduse_space(ds->ds_dir, DD_USED_HEAD, + -used, -comp, -uncomp, tx); + dsl_dir_diduse_space(dp->dp_free_dir, DD_USED_HEAD, + used, comp, uncomp, tx); + } if (ds->ds_prev != NULL) { if (spa_version(dp->dp_spa) >= SPA_VERSION_DIR_CLONES) { @@ -2095,7 +2144,7 @@ dsl_dataset_snapshot_sync(void *arg1, void *arg2, dmu_tx_t *tx) dsphys->ds_creation_time = gethrestime_sec(); dsphys->ds_creation_txg = crtxg; dsphys->ds_deadlist_obj = ds->ds_phys->ds_deadlist_obj; - dsphys->ds_used_bytes = ds->ds_phys->ds_used_bytes; + dsphys->ds_referenced_bytes = ds->ds_phys->ds_referenced_bytes; dsphys->ds_compressed_bytes = ds->ds_phys->ds_compressed_bytes; dsphys->ds_uncompressed_bytes = ds->ds_phys->ds_uncompressed_bytes; dsphys->ds_flags = ds->ds_phys->ds_flags; @@ -2219,10 +2268,22 @@ get_clones_stat(dsl_dataset_t *ds, nvlist_t *nv) zap_cursor_advance(&zc)) { dsl_dataset_t *clone; char buf[ZFS_MAXNAMELEN]; + /* + * Even though we hold the dp_config_rwlock, the dataset + * may fail to open, returning ENOENT. If there is a + * thread concurrently attempting to destroy this + * dataset, it will have the ds_rwlock held for + * RW_WRITER. Our call to dsl_dataset_hold_obj() -> + * dsl_dataset_hold_ref() will fail its + * rw_tryenter(&ds->ds_rwlock, RW_READER), drop the + * dp_config_rwlock, and wait for the destroy progress + * and signal ds_exclusive_cv. If the destroy was + * successful, we will see that + * DSL_DATASET_IS_DESTROYED(), and return ENOENT. + */ if (dsl_dataset_hold_obj(ds->ds_dir->dd_pool, - za.za_first_integer, FTAG, &clone) != 0) { - goto fail; - } + za.za_first_integer, FTAG, &clone) != 0) + continue; dsl_dir_name(clone->ds_dir, buf); VERIFY(nvlist_add_boolean(val, buf) == 0); dsl_dataset_rele(clone, FTAG); @@ -2345,7 +2406,7 @@ dsl_dataset_space(dsl_dataset_t *ds, uint64_t *refdbytesp, uint64_t *availbytesp, uint64_t *usedobjsp, uint64_t *availobjsp) { - *refdbytesp = ds->ds_phys->ds_used_bytes; + *refdbytesp = ds->ds_phys->ds_referenced_bytes; *availbytesp = dsl_dir_space_available(ds->ds_dir, NULL, 0, TRUE); if (ds->ds_reserved > ds->ds_phys->ds_unique_bytes) *availbytesp += ds->ds_reserved - ds->ds_phys->ds_unique_bytes; @@ -2688,7 +2749,7 @@ dsl_dataset_promote_check(void *arg1, void *arg2, dmu_tx_t *tx) * Note however, if we stop before we reach the ORIGIN we get: * uN + kN + kN-1 + ... + kM - uM-1 */ - pa->used = origin_ds->ds_phys->ds_used_bytes; + pa->used = origin_ds->ds_phys->ds_referenced_bytes; pa->comp = origin_ds->ds_phys->ds_compressed_bytes; pa->uncomp = origin_ds->ds_phys->ds_uncompressed_bytes; for (snap = list_head(&pa->shared_snaps); snap; @@ -2722,7 +2783,7 @@ dsl_dataset_promote_check(void *arg1, void *arg2, dmu_tx_t *tx) * so we need to subtract out the clone origin's used space. */ if (pa->origin_origin) { - pa->used -= pa->origin_origin->ds_phys->ds_used_bytes; + pa->used -= pa->origin_origin->ds_phys->ds_referenced_bytes; pa->comp -= pa->origin_origin->ds_phys->ds_compressed_bytes; pa->uncomp -= pa->origin_origin->ds_phys->ds_uncompressed_bytes; } @@ -3238,8 +3299,8 @@ dsl_dataset_clone_swap_sync(void *arg1, void *arg2, dmu_tx_t *tx) dsl_deadlist_space(&csa->ohds->ds_deadlist, &odl_used, &odl_comp, &odl_uncomp); - dused = csa->cds->ds_phys->ds_used_bytes + cdl_used - - (csa->ohds->ds_phys->ds_used_bytes + odl_used); + dused = csa->cds->ds_phys->ds_referenced_bytes + cdl_used - + (csa->ohds->ds_phys->ds_referenced_bytes + odl_used); dcomp = csa->cds->ds_phys->ds_compressed_bytes + cdl_comp - (csa->ohds->ds_phys->ds_compressed_bytes + odl_comp); duncomp = csa->cds->ds_phys->ds_uncompressed_bytes + @@ -3268,8 +3329,8 @@ dsl_dataset_clone_swap_sync(void *arg1, void *arg2, dmu_tx_t *tx) } /* swap ds_*_bytes */ - SWITCH64(csa->ohds->ds_phys->ds_used_bytes, - csa->cds->ds_phys->ds_used_bytes); + SWITCH64(csa->ohds->ds_phys->ds_referenced_bytes, + csa->cds->ds_phys->ds_referenced_bytes); SWITCH64(csa->ohds->ds_phys->ds_compressed_bytes, csa->cds->ds_phys->ds_compressed_bytes); SWITCH64(csa->ohds->ds_phys->ds_uncompressed_bytes, @@ -3398,8 +3459,9 @@ dsl_dataset_check_quota(dsl_dataset_t *ds, boolean_t check_quota, * on-disk is over quota and there are no pending changes (which * may free up space for us). */ - if (ds->ds_phys->ds_used_bytes + inflight >= ds->ds_quota) { - if (inflight > 0 || ds->ds_phys->ds_used_bytes < ds->ds_quota) + if (ds->ds_phys->ds_referenced_bytes + inflight >= ds->ds_quota) { + if (inflight > 0 || + ds->ds_phys->ds_referenced_bytes < ds->ds_quota) error = ERESTART; else error = EDQUOT; @@ -3426,7 +3488,7 @@ dsl_dataset_set_quota_check(void *arg1, void *arg2, dmu_tx_t *tx) if (psa->psa_effective_value == 0) return (0); - if (psa->psa_effective_value < ds->ds_phys->ds_used_bytes || + if (psa->psa_effective_value < ds->ds_phys->ds_referenced_bytes || psa->psa_effective_value < ds->ds_reserved) return (ENOSPC); @@ -4180,8 +4242,8 @@ dsl_dataset_space_written(dsl_dataset_t *oldsnap, dsl_dataset_t *new, dsl_pool_t *dp = new->ds_dir->dd_pool; *usedp = 0; - *usedp += new->ds_phys->ds_used_bytes; - *usedp -= oldsnap->ds_phys->ds_used_bytes; + *usedp += new->ds_phys->ds_referenced_bytes; + *usedp -= oldsnap->ds_phys->ds_referenced_bytes; *compp = 0; *compp += new->ds_phys->ds_compressed_bytes; @@ -4197,9 +4259,13 @@ dsl_dataset_space_written(dsl_dataset_t *oldsnap, dsl_dataset_t *new, dsl_dataset_t *snap; uint64_t used, comp, uncomp; - err = dsl_dataset_hold_obj(dp, snapobj, FTAG, &snap); - if (err != 0) - break; + if (snapobj == new->ds_object) { + snap = new; + } else { + err = dsl_dataset_hold_obj(dp, snapobj, FTAG, &snap); + if (err != 0) + break; + } if (snap->ds_phys->ds_prev_snap_txg == oldsnap->ds_phys->ds_creation_txg) { @@ -4228,7 +4294,8 @@ dsl_dataset_space_written(dsl_dataset_t *oldsnap, dsl_dataset_t *new, * was not a snapshot of/before new. */ snapobj = snap->ds_phys->ds_prev_snap_obj; - dsl_dataset_rele(snap, FTAG); + if (snap != new) + dsl_dataset_rele(snap, FTAG); if (snapobj == 0) { err = EINVAL; break; diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_deleg.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_deleg.c index 0b5fa0bcd766..8f9d2c5f8923 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_deleg.c +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_deleg.c @@ -20,7 +20,7 @@ */ /* * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. - * Copyright (c) 2011 by Delphix. All rights reserved. + * Copyright (c) 2012 by Delphix. All rights reserved. */ /* @@ -171,10 +171,8 @@ dsl_deleg_set_sync(void *arg1, void *arg2, dmu_tx_t *tx) VERIFY(nvpair_value_nvlist(whopair, &perms) == 0); if (zap_lookup(mos, zapobj, whokey, 8, 1, &jumpobj) != 0) { - jumpobj = zap_create(mos, DMU_OT_DSL_PERMS, - DMU_OT_NONE, 0, tx); - VERIFY(zap_update(mos, zapobj, - whokey, 8, 1, &jumpobj, tx) == 0); + jumpobj = zap_create_link(mos, DMU_OT_DSL_PERMS, + zapobj, whokey, tx); } while (permpair = nvlist_next_nvpair(perms, permpair)) { diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c index 7f7a3b945ef0..d698e594e2ff 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c @@ -20,7 +20,7 @@ */ /* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - * Copyright (c) 2011 by Delphix. All rights reserved. + * Copyright (c) 2012 by Delphix. All rights reserved. */ #include @@ -40,6 +40,8 @@ #include #include #include +#include +#include int zfs_no_write_throttle = 0; int zfs_write_limit_shift = 3; /* 1/8th of physical memory */ @@ -125,20 +127,32 @@ dsl_pool_open_impl(spa_t *spa, uint64_t txg) } int -dsl_pool_open(spa_t *spa, uint64_t txg, dsl_pool_t **dpp) +dsl_pool_init(spa_t *spa, uint64_t txg, dsl_pool_t **dpp) { int err; dsl_pool_t *dp = dsl_pool_open_impl(spa, txg); + + err = dmu_objset_open_impl(spa, NULL, &dp->dp_meta_rootbp, + &dp->dp_meta_objset); + if (err != 0) + dsl_pool_close(dp); + else + *dpp = dp; + + return (err); +} + +int +dsl_pool_open(dsl_pool_t *dp) +{ + int err; dsl_dir_t *dd; dsl_dataset_t *ds; uint64_t obj; - rw_enter(&dp->dp_config_rwlock, RW_WRITER); - err = dmu_objset_open_impl(spa, NULL, &dp->dp_meta_rootbp, - &dp->dp_meta_objset); - if (err) - goto out; + ASSERT(!dmu_objset_is_dirty_anywhere(dp->dp_meta_objset)); + rw_enter(&dp->dp_config_rwlock, RW_WRITER); err = zap_lookup(dp->dp_meta_objset, DMU_POOL_DIRECTORY_OBJECT, DMU_POOL_ROOT_DATASET, sizeof (uint64_t), 1, &dp->dp_root_dir_obj); @@ -154,7 +168,7 @@ dsl_pool_open(spa_t *spa, uint64_t txg, dsl_pool_t **dpp) if (err) goto out; - if (spa_version(spa) >= SPA_VERSION_ORIGIN) { + if (spa_version(dp->dp_spa) >= SPA_VERSION_ORIGIN) { err = dsl_pool_open_special_dir(dp, ORIGIN_DIR_NAME, &dd); if (err) goto out; @@ -171,7 +185,7 @@ dsl_pool_open(spa_t *spa, uint64_t txg, dsl_pool_t **dpp) goto out; } - if (spa_version(spa) >= SPA_VERSION_DEADLISTS) { + if (spa_version(dp->dp_spa) >= SPA_VERSION_DEADLISTS) { err = dsl_pool_open_special_dir(dp, FREE_DIR_NAME, &dp->dp_free_dir); if (err) @@ -185,6 +199,15 @@ dsl_pool_open(spa_t *spa, uint64_t txg, dsl_pool_t **dpp) dp->dp_meta_objset, obj)); } + if (spa_feature_is_active(dp->dp_spa, + &spa_feature_table[SPA_FEATURE_ASYNC_DESTROY])) { + err = zap_lookup(dp->dp_meta_objset, DMU_POOL_DIRECTORY_OBJECT, + DMU_POOL_BPTREE_OBJ, sizeof (uint64_t), 1, + &dp->dp_bptree_obj); + if (err != 0) + goto out; + } + err = zap_lookup(dp->dp_meta_objset, DMU_POOL_DIRECTORY_OBJECT, DMU_POOL_TMP_USERREFS, sizeof (uint64_t), 1, &dp->dp_tmp_userrefs_obj); @@ -193,15 +216,10 @@ dsl_pool_open(spa_t *spa, uint64_t txg, dsl_pool_t **dpp) if (err) goto out; - err = dsl_scan_init(dp, txg); + err = dsl_scan_init(dp, dp->dp_tx.tx_open_txg); out: rw_exit(&dp->dp_config_rwlock); - if (err) - dsl_pool_close(dp); - else - *dpp = dp; - return (err); } @@ -495,7 +513,7 @@ int dsl_pool_sync_context(dsl_pool_t *dp) { return (curthread == dp->dp_tx.tx_sync_thread || - spa_get_dsl(dp->dp_spa) == NULL); + spa_is_initializing(dp->dp_spa)); } uint64_t @@ -813,11 +831,8 @@ dsl_pool_user_hold_create_obj(dsl_pool_t *dp, dmu_tx_t *tx) ASSERT(dp->dp_tmp_userrefs_obj == 0); ASSERT(dmu_tx_is_syncing(tx)); - dp->dp_tmp_userrefs_obj = zap_create(mos, DMU_OT_USERREFS, - DMU_OT_NONE, 0, tx); - - VERIFY(zap_add(mos, DMU_POOL_DIRECTORY_OBJECT, DMU_POOL_TMP_USERREFS, - sizeof (uint64_t), 1, &dp->dp_tmp_userrefs_obj, tx) == 0); + dp->dp_tmp_userrefs_obj = zap_create_link(mos, DMU_OT_USERREFS, + DMU_POOL_DIRECTORY_OBJECT, DMU_POOL_TMP_USERREFS, tx); } static int diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_scan.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_scan.c index 475b494c00fc..164a73a83a69 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_scan.c +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_scan.c @@ -20,6 +20,7 @@ */ /* * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012 by Delphix. All rights reserved. */ #include @@ -44,6 +45,7 @@ #include #include #include +#include #ifdef _KERNEL #include #endif @@ -381,55 +383,6 @@ dsl_read_nolock(zio_t *pio, spa_t *spa, const blkptr_t *bpp, priority, zio_flags, arc_flags, zb)); } -static boolean_t -bookmark_is_zero(const zbookmark_t *zb) -{ - return (zb->zb_objset == 0 && zb->zb_object == 0 && - zb->zb_level == 0 && zb->zb_blkid == 0); -} - -/* dnp is the dnode for zb1->zb_object */ -static boolean_t -bookmark_is_before(const dnode_phys_t *dnp, const zbookmark_t *zb1, - const zbookmark_t *zb2) -{ - uint64_t zb1nextL0, zb2thisobj; - - ASSERT(zb1->zb_objset == zb2->zb_objset); - ASSERT(zb2->zb_level == 0); - - /* - * A bookmark in the deadlist is considered to be after - * everything else. - */ - if (zb2->zb_object == DMU_DEADLIST_OBJECT) - return (B_TRUE); - - /* The objset_phys_t isn't before anything. */ - if (dnp == NULL) - return (B_FALSE); - - zb1nextL0 = (zb1->zb_blkid + 1) << - ((zb1->zb_level) * (dnp->dn_indblkshift - SPA_BLKPTRSHIFT)); - - zb2thisobj = zb2->zb_object ? zb2->zb_object : - zb2->zb_blkid << (DNODE_BLOCK_SHIFT - DNODE_SHIFT); - - if (zb1->zb_object == DMU_META_DNODE_OBJECT) { - uint64_t nextobj = zb1nextL0 * - (dnp->dn_datablkszsec << SPA_MINBLOCKSHIFT) >> DNODE_SHIFT; - return (nextobj <= zb2thisobj); - } - - if (zb1->zb_object < zb2thisobj) - return (B_TRUE); - if (zb1->zb_object > zb2thisobj) - return (B_FALSE); - if (zb2->zb_object == DMU_META_DNODE_OBJECT) - return (B_FALSE); - return (zb1nextL0 <= zb2->zb_blkid); -} - static uint64_t dsl_scan_ds_maxtxg(dsl_dataset_t *ds) { @@ -461,7 +414,7 @@ dsl_scan_check_pause(dsl_scan_t *scn, const zbookmark_t *zb) if (scn->scn_pausing) return (B_TRUE); /* we're already pausing */ - if (!bookmark_is_zero(&scn->scn_phys.scn_bookmark)) + if (!ZB_IS_ZERO(&scn->scn_phys.scn_bookmark)) return (B_FALSE); /* we're resuming */ /* We only know how to resume from level-0 blocks. */ @@ -616,13 +569,13 @@ dsl_scan_check_resume(dsl_scan_t *scn, const dnode_phys_t *dnp, /* * We never skip over user/group accounting objects (obj<0) */ - if (!bookmark_is_zero(&scn->scn_phys.scn_bookmark) && + if (!ZB_IS_ZERO(&scn->scn_phys.scn_bookmark) && (int64_t)zb->zb_object >= 0) { /* * If we already visited this bp & everything below (in * a prior txg sync), don't bother doing it again. */ - if (bookmark_is_before(dnp, zb, &scn->scn_phys.scn_bookmark)) + if (zbookmark_is_before(dnp, zb, &scn->scn_phys.scn_bookmark)) return (B_TRUE); /* @@ -815,22 +768,6 @@ dsl_scan_visitbp(blkptr_t *bp, const zbookmark_t *zb, if (bp->blk_birth <= scn->scn_phys.scn_cur_min_txg) return; - if (BP_GET_TYPE(bp) != DMU_OT_USERGROUP_USED) { - /* - * For non-user-accounting blocks, we need to read the - * new bp (from a deleted snapshot, found in - * check_existing_xlation). If we used the old bp, - * pointers inside this block from before we resumed - * would be untranslated. - * - * For user-accounting blocks, we need to read the old - * bp, because we will apply the entire space delta to - * it (original untranslated -> translations from - * deleted snap -> now). - */ - bp_toread = *bp; - } - if (dsl_scan_recurse(scn, ds, ostype, dnp, &bp_toread, zb, tx, &buf) != 0) return; @@ -1395,19 +1332,28 @@ dsl_scan_visit(dsl_scan_t *scn, dmu_tx_t *tx) zap_cursor_fini(&zc); } -static int -dsl_scan_free_cb(void *arg, const blkptr_t *bp, dmu_tx_t *tx) +static boolean_t +dsl_scan_free_should_pause(dsl_scan_t *scn) { - dsl_scan_t *scn = arg; uint64_t elapsed_nanosecs; elapsed_nanosecs = gethrtime() - scn->scn_sync_start_time; - - if (elapsed_nanosecs / NANOSEC > zfs_txg_timeout || + return (elapsed_nanosecs / NANOSEC > zfs_txg_timeout || (elapsed_nanosecs / MICROSEC > zfs_free_min_time_ms && txg_sync_waiting(scn->scn_dp)) || - spa_shutting_down(scn->scn_dp->dp_spa)) - return (ERESTART); + spa_shutting_down(scn->scn_dp->dp_spa)); +} + +static int +dsl_scan_free_block_cb(void *arg, const blkptr_t *bp, dmu_tx_t *tx) +{ + dsl_scan_t *scn = arg; + + if (!scn->scn_is_bptree || + (BP_GET_LEVEL(bp) == 0 && BP_GET_TYPE(bp) != DMU_OT_OBJSET)) { + if (dsl_scan_free_should_pause(scn)) + return (ERESTART); + } zio_nowait(zio_free_sync(scn->scn_zio_root, scn->scn_dp->dp_spa, dmu_tx_get_txg(tx), bp, 0)); @@ -1432,6 +1378,10 @@ dsl_scan_active(dsl_scan_t *scn) if (scn->scn_phys.scn_state == DSS_SCANNING) return (B_TRUE); + if (spa_feature_is_active(spa, + &spa_feature_table[SPA_FEATURE_ASYNC_DESTROY])) { + return (B_TRUE); + } if (spa_version(scn->scn_dp->dp_spa) >= SPA_VERSION_DEADLISTS) { (void) bpobj_space(&scn->scn_dp->dp_free_bpobj, &used, &comp, &uncomp); @@ -1478,14 +1428,40 @@ dsl_scan_sync(dsl_pool_t *dp, dmu_tx_t *tx) * traversing it. */ if (spa_version(dp->dp_spa) >= SPA_VERSION_DEADLISTS) { + scn->scn_is_bptree = B_FALSE; scn->scn_zio_root = zio_root(dp->dp_spa, NULL, NULL, ZIO_FLAG_MUSTSUCCEED); err = bpobj_iterate(&dp->dp_free_bpobj, - dsl_scan_free_cb, scn, tx); + dsl_scan_free_block_cb, scn, tx); VERIFY3U(0, ==, zio_wait(scn->scn_zio_root)); + + if (err == 0 && spa_feature_is_active(spa, + &spa_feature_table[SPA_FEATURE_ASYNC_DESTROY])) { + scn->scn_is_bptree = B_TRUE; + scn->scn_zio_root = zio_root(dp->dp_spa, NULL, + NULL, ZIO_FLAG_MUSTSUCCEED); + err = bptree_iterate(dp->dp_meta_objset, + dp->dp_bptree_obj, B_TRUE, dsl_scan_free_block_cb, + scn, tx); + VERIFY3U(0, ==, zio_wait(scn->scn_zio_root)); + if (err != 0) + return; + + /* disable async destroy feature */ + spa_feature_decr(spa, + &spa_feature_table[SPA_FEATURE_ASYNC_DESTROY], tx); + ASSERT(!spa_feature_is_active(spa, + &spa_feature_table[SPA_FEATURE_ASYNC_DESTROY])); + VERIFY3U(0, ==, zap_remove(dp->dp_meta_objset, + DMU_POOL_DIRECTORY_OBJECT, + DMU_POOL_BPTREE_OBJ, tx)); + VERIFY3U(0, ==, bptree_free(dp->dp_meta_objset, + dp->dp_bptree_obj, tx)); + dp->dp_bptree_obj = 0; + } if (scn->scn_visited_this_txg) { zfs_dbgmsg("freed %llu blocks in %llums from " - "free_bpobj txg %llu", + "free_bpobj/bptree txg %llu", (longlong_t)scn->scn_visited_this_txg, (longlong_t) (gethrtime() - scn->scn_sync_start_time) / MICROSEC, @@ -1600,6 +1576,8 @@ count_block(zfs_all_blkstats_t *zab, const blkptr_t *bp) for (i = 0; i < 4; i++) { int l = (i < 2) ? BP_GET_LEVEL(bp) : DN_MAX_LEVELS; int t = (i & 1) ? BP_GET_TYPE(bp) : DMU_OT_TOTAL; + if (t & DMU_OT_NEWTYPE) + t = DMU_OT_OTHER; zfs_blkstat_t *zb = &zab->zab_type[l][t]; int equal; diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sa.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sa.c index 69374fb7956c..173198d6d0c6 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sa.c +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sa.c @@ -18,9 +18,11 @@ * * CDDL HEADER END */ + /* * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. * Portions Copyright 2011 iXsystems, Inc + * Copyright (c) 2012 by Delphix. All rights reserved. */ #include @@ -427,10 +429,9 @@ sa_add_layout_entry(objset_t *os, sa_attr_type_t *attrs, int attr_count, char attr_name[8]; if (sa->sa_layout_attr_obj == 0) { - sa->sa_layout_attr_obj = zap_create(os, - DMU_OT_SA_ATTR_LAYOUTS, DMU_OT_NONE, 0, tx); - VERIFY(zap_add(os, sa->sa_master_obj, SA_LAYOUTS, 8, 1, - &sa->sa_layout_attr_obj, tx) == 0); + sa->sa_layout_attr_obj = zap_create_link(os, + DMU_OT_SA_ATTR_LAYOUTS, + sa->sa_master_obj, SA_LAYOUTS, tx); } (void) snprintf(attr_name, sizeof (attr_name), @@ -1552,10 +1553,9 @@ sa_attr_register_sync(sa_handle_t *hdl, dmu_tx_t *tx) } if (sa->sa_reg_attr_obj == 0) { - sa->sa_reg_attr_obj = zap_create(hdl->sa_os, - DMU_OT_SA_ATTR_REGISTRATION, DMU_OT_NONE, 0, tx); - VERIFY(zap_add(hdl->sa_os, sa->sa_master_obj, - SA_REGISTRY, 8, 1, &sa->sa_reg_attr_obj, tx) == 0); + sa->sa_reg_attr_obj = zap_create_link(hdl->sa_os, + DMU_OT_SA_ATTR_REGISTRATION, + sa->sa_master_obj, SA_REGISTRY, tx); } for (i = 0; i != sa->sa_num_attrs; i++) { if (sa->sa_attr_table[i].sa_registered) diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c index 2060aa80b902..c796533a9080 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c @@ -60,6 +60,7 @@ #include #include #include +#include #include #ifdef _KERNEL @@ -117,6 +118,7 @@ const zio_taskq_info_t zio_taskqs[ZIO_TYPES][ZIO_TASKQ_TYPES] = { { ZTI_ONE, ZTI_NULL, ZTI_ONE, ZTI_NULL }, }; +static dsl_syncfunc_t spa_sync_version; static dsl_syncfunc_t spa_sync_props; static boolean_t spa_has_active_shared_spare(spa_t *spa); static int spa_load_impl(spa_t *spa, uint64_t, nvlist_t *config, @@ -176,6 +178,7 @@ static void spa_prop_get_config(spa_t *spa, nvlist_t **nvp) { vdev_t *rvd = spa->spa_root_vdev; + dsl_pool_t *pool = spa->spa_dsl_pool; uint64_t size; uint64_t alloc; uint64_t space; @@ -222,6 +225,22 @@ spa_prop_get_config(spa_t *spa, nvlist_t **nvp) spa_prop_add_list(*nvp, ZPOOL_PROP_VERSION, NULL, version, src); } + if (pool != NULL) { + dsl_dir_t *freedir = pool->dp_free_dir; + + /* + * The $FREE directory was introduced in SPA_VERSION_DEADLISTS, + * when opening pools before this version freedir will be NULL. + */ + if (freedir != NULL) { + spa_prop_add_list(*nvp, ZPOOL_PROP_FREEING, NULL, + freedir->dd_phys->dd_used_bytes, src); + } else { + spa_prop_add_list(*nvp, ZPOOL_PROP_FREEING, + NULL, 0, src); + } + } + spa_prop_add_list(*nvp, ZPOOL_PROP_GUID, NULL, spa_guid(spa), src); if (spa->spa_comment != NULL) { @@ -361,25 +380,55 @@ spa_prop_validate(spa_t *spa, nvlist_t *props) nvpair_t *elem; int error = 0, reset_bootfs = 0; uint64_t objnum; + boolean_t has_feature = B_FALSE; elem = NULL; while ((elem = nvlist_next_nvpair(props, elem)) != NULL) { - zpool_prop_t prop; - char *propname, *strval; uint64_t intval; - objset_t *os; - char *slash, *check; - - propname = nvpair_name(elem); - - if ((prop = zpool_name_to_prop(propname)) == ZPROP_INVAL) - return (EINVAL); + char *strval, *slash, *check, *fname; + const char *propname = nvpair_name(elem); + zpool_prop_t prop = zpool_name_to_prop(propname); switch (prop) { + case ZPROP_INVAL: + if (!zpool_prop_feature(propname)) { + error = EINVAL; + break; + } + + /* + * Sanitize the input. + */ + if (nvpair_type(elem) != DATA_TYPE_UINT64) { + error = EINVAL; + break; + } + + if (nvpair_value_uint64(elem, &intval) != 0) { + error = EINVAL; + break; + } + + if (intval != 0) { + error = EINVAL; + break; + } + + fname = strchr(propname, '@') + 1; + if (zfeature_lookup_name(fname, NULL) != 0) { + error = EINVAL; + break; + } + + has_feature = B_TRUE; + break; + case ZPOOL_PROP_VERSION: error = nvpair_value_uint64(elem, &intval); if (!error && - (intval < spa_version(spa) || intval > SPA_VERSION)) + (intval < spa_version(spa) || + intval > SPA_VERSION_BEFORE_FEATURES || + has_feature)) error = EINVAL; break; @@ -416,6 +465,7 @@ spa_prop_validate(spa_t *spa, nvlist_t *props) error = nvpair_value_string(elem, &strval); if (!error) { + objset_t *os; uint64_t compress; if (strval == NULL || strval[0] == '\0') { @@ -565,33 +615,58 @@ int spa_prop_set(spa_t *spa, nvlist_t *nvp) { int error; - nvpair_t *elem; + nvpair_t *elem = NULL; boolean_t need_sync = B_FALSE; - zpool_prop_t prop; if ((error = spa_prop_validate(spa, nvp)) != 0) return (error); - elem = NULL; while ((elem = nvlist_next_nvpair(nvp, elem)) != NULL) { - if ((prop = zpool_name_to_prop( - nvpair_name(elem))) == ZPROP_INVAL) - return (EINVAL); + zpool_prop_t prop = zpool_name_to_prop(nvpair_name(elem)); if (prop == ZPOOL_PROP_CACHEFILE || prop == ZPOOL_PROP_ALTROOT || prop == ZPOOL_PROP_READONLY) continue; + if (prop == ZPOOL_PROP_VERSION || prop == ZPROP_INVAL) { + uint64_t ver; + + if (prop == ZPOOL_PROP_VERSION) { + VERIFY(nvpair_value_uint64(elem, &ver) == 0); + } else { + ASSERT(zpool_prop_feature(nvpair_name(elem))); + ver = SPA_VERSION_FEATURES; + need_sync = B_TRUE; + } + + /* Save time if the version is already set. */ + if (ver == spa_version(spa)) + continue; + + /* + * In addition to the pool directory object, we might + * create the pool properties object, the features for + * read object, the features for write object, or the + * feature descriptions object. + */ + error = dsl_sync_task_do(spa_get_dsl(spa), NULL, + spa_sync_version, spa, &ver, 6); + if (error) + return (error); + continue; + } + need_sync = B_TRUE; break; } - if (need_sync) + if (need_sync) { return (dsl_sync_task_do(spa_get_dsl(spa), NULL, spa_sync_props, - spa, nvp, 3)); - else - return (0); + spa, nvp, 6)); + } + + return (0); } /* @@ -1630,7 +1705,7 @@ spa_load_verify_done(zio_t *zio) int error = zio->io_error; if (error) { - if ((BP_GET_LEVEL(bp) != 0 || dmu_ot[type].ot_metadata) && + if ((BP_GET_LEVEL(bp) != 0 || DMU_OT_IS_METADATA(type)) && type != DMU_OT_INTENT_LOG) atomic_add_64(&sle->sle_meta_count, 1); else @@ -1860,6 +1935,9 @@ spa_load(spa_t *spa, spa_load_state_t state, spa_import_type_t type, KM_SLEEP) == 0); } + nvlist_free(spa->spa_load_info); + spa->spa_load_info = fnvlist_alloc(); + gethrestime(&spa->spa_loaded_ts); error = spa_load_impl(spa, pool_guid, config, state, type, mosconfig, &ereport); @@ -1892,12 +1970,14 @@ spa_load_impl(spa_t *spa, uint64_t pool_guid, nvlist_t *config, { int error = 0; nvlist_t *nvroot = NULL; + nvlist_t *label; vdev_t *rvd; uberblock_t *ub = &spa->spa_uberblock; uint64_t children, config_cache_txg = spa->spa_config_txg; int orig_mode = spa->spa_mode; int parse; uint64_t obj; + boolean_t missing_feat_write = B_FALSE; /* * If this is an untrusted config, access the pool in read-only mode. @@ -1977,19 +2057,78 @@ spa_load_impl(spa_t *spa, uint64_t pool_guid, nvlist_t *config, /* * Find the best uberblock. */ - vdev_uberblock_load(NULL, rvd, ub); + vdev_uberblock_load(rvd, ub, &label); /* * If we weren't able to find a single valid uberblock, return failure. */ - if (ub->ub_txg == 0) + if (ub->ub_txg == 0) { + nvlist_free(label); return (spa_vdev_err(rvd, VDEV_AUX_CORRUPT_DATA, ENXIO)); + } /* - * If the pool is newer than the code, we can't open it. + * If the pool has an unsupported version we can't open it. */ - if (ub->ub_version > SPA_VERSION) + if (!SPA_VERSION_IS_SUPPORTED(ub->ub_version)) { + nvlist_free(label); return (spa_vdev_err(rvd, VDEV_AUX_VERSION_NEWER, ENOTSUP)); + } + + if (ub->ub_version >= SPA_VERSION_FEATURES) { + nvlist_t *features; + + /* + * If we weren't able to find what's necessary for reading the + * MOS in the label, return failure. + */ + if (label == NULL || nvlist_lookup_nvlist(label, + ZPOOL_CONFIG_FEATURES_FOR_READ, &features) != 0) { + nvlist_free(label); + return (spa_vdev_err(rvd, VDEV_AUX_CORRUPT_DATA, + ENXIO)); + } + + /* + * Update our in-core representation with the definitive values + * from the label. + */ + nvlist_free(spa->spa_label_features); + VERIFY(nvlist_dup(features, &spa->spa_label_features, 0) == 0); + } + + nvlist_free(label); + + /* + * Look through entries in the label nvlist's features_for_read. If + * there is a feature listed there which we don't understand then we + * cannot open a pool. + */ + if (ub->ub_version >= SPA_VERSION_FEATURES) { + nvlist_t *unsup_feat; + + VERIFY(nvlist_alloc(&unsup_feat, NV_UNIQUE_NAME, KM_SLEEP) == + 0); + + for (nvpair_t *nvp = nvlist_next_nvpair(spa->spa_label_features, + NULL); nvp != NULL; + nvp = nvlist_next_nvpair(spa->spa_label_features, nvp)) { + if (!zfeature_is_supported(nvpair_name(nvp))) { + VERIFY(nvlist_add_string(unsup_feat, + nvpair_name(nvp), "") == 0); + } + } + + if (!nvlist_empty(unsup_feat)) { + VERIFY(nvlist_add_nvlist(spa->spa_load_info, + ZPOOL_CONFIG_UNSUP_FEAT, unsup_feat) == 0); + nvlist_free(unsup_feat); + return (spa_vdev_err(rvd, VDEV_AUX_UNSUP_FEAT, + ENOTSUP)); + } + + nvlist_free(unsup_feat); + } /* * If the vdev guid sum doesn't match the uberblock, we have an @@ -2023,7 +2162,7 @@ spa_load_impl(spa_t *spa, uint64_t pool_guid, nvlist_t *config, spa->spa_claim_max_txg = spa->spa_first_txg; spa->spa_prev_software_version = ub->ub_software_version; - error = dsl_pool_open(spa, spa->spa_first_txg, &spa->spa_dsl_pool); + error = dsl_pool_init(spa, spa->spa_first_txg, &spa->spa_dsl_pool); if (error) return (spa_vdev_err(rvd, VDEV_AUX_CORRUPT_DATA, EIO)); spa->spa_meta_objset = spa->spa_dsl_pool->dp_meta_objset; @@ -2031,6 +2170,84 @@ spa_load_impl(spa_t *spa, uint64_t pool_guid, nvlist_t *config, if (spa_dir_prop(spa, DMU_POOL_CONFIG, &spa->spa_config_object) != 0) return (spa_vdev_err(rvd, VDEV_AUX_CORRUPT_DATA, EIO)); + if (spa_version(spa) >= SPA_VERSION_FEATURES) { + boolean_t missing_feat_read = B_FALSE; + nvlist_t *unsup_feat; + + if (spa_dir_prop(spa, DMU_POOL_FEATURES_FOR_READ, + &spa->spa_feat_for_read_obj) != 0) { + return (spa_vdev_err(rvd, VDEV_AUX_CORRUPT_DATA, EIO)); + } + + if (spa_dir_prop(spa, DMU_POOL_FEATURES_FOR_WRITE, + &spa->spa_feat_for_write_obj) != 0) { + return (spa_vdev_err(rvd, VDEV_AUX_CORRUPT_DATA, EIO)); + } + + if (spa_dir_prop(spa, DMU_POOL_FEATURE_DESCRIPTIONS, + &spa->spa_feat_desc_obj) != 0) { + return (spa_vdev_err(rvd, VDEV_AUX_CORRUPT_DATA, EIO)); + } + + VERIFY(nvlist_alloc(&unsup_feat, NV_UNIQUE_NAME, KM_SLEEP) == + 0); + + if (!feature_is_supported(spa->spa_meta_objset, + spa->spa_feat_for_read_obj, spa->spa_feat_desc_obj, + unsup_feat)) + missing_feat_read = B_TRUE; + + if (spa_writeable(spa) || state == SPA_LOAD_TRYIMPORT) { + if (!feature_is_supported(spa->spa_meta_objset, + spa->spa_feat_for_write_obj, spa->spa_feat_desc_obj, + unsup_feat)) + missing_feat_write = B_TRUE; + } + + if (!nvlist_empty(unsup_feat)) { + VERIFY(nvlist_add_nvlist(spa->spa_load_info, + ZPOOL_CONFIG_UNSUP_FEAT, unsup_feat) == 0); + } + + nvlist_free(unsup_feat); + + if (!missing_feat_read) { + fnvlist_add_boolean(spa->spa_load_info, + ZPOOL_CONFIG_CAN_RDONLY); + } + + /* + * If the state is SPA_LOAD_TRYIMPORT, our objective is + * twofold: to determine whether the pool is available for + * import in read-write mode and (if it is not) whether the + * pool is available for import in read-only mode. If the pool + * is available for import in read-write mode, it is displayed + * as available in userland; if it is not available for import + * in read-only mode, it is displayed as unavailable in + * userland. If the pool is available for import in read-only + * mode but not read-write mode, it is displayed as unavailable + * in userland with a special note that the pool is actually + * available for open in read-only mode. + * + * As a result, if the state is SPA_LOAD_TRYIMPORT and we are + * missing a feature for write, we must first determine whether + * the pool can be opened read-only before returning to + * userland in order to know whether to display the + * abovementioned note. + */ + if (missing_feat_read || (missing_feat_write && + spa_writeable(spa))) { + return (spa_vdev_err(rvd, VDEV_AUX_UNSUP_FEAT, + ENOTSUP)); + } + } + + spa->spa_is_initializing = B_TRUE; + error = dsl_pool_open(spa->spa_dsl_pool); + spa->spa_is_initializing = B_FALSE; + if (error != 0) + return (spa_vdev_err(rvd, VDEV_AUX_CORRUPT_DATA, EIO)); + if (!mosconfig) { uint64_t hostid; nvlist_t *policy = NULL, *nvconfig; @@ -2248,7 +2465,7 @@ spa_load_impl(spa_t *spa, uint64_t pool_guid, nvlist_t *config, nvlist_free(nvconfig); /* - * Now that we've validate the config, check the state of the + * Now that we've validated the config, check the state of the * root vdev. If it can't be opened, it indicates one or * more toplevel vdevs are faulted. */ @@ -2261,6 +2478,17 @@ spa_load_impl(spa_t *spa, uint64_t pool_guid, nvlist_t *config, } } + if (missing_feat_write) { + ASSERT(state == SPA_LOAD_TRYIMPORT); + + /* + * At this point, we know that we can open the pool in + * read-only mode but not read-write mode. We now have enough + * information and can return to userland. + */ + return (spa_vdev_err(rvd, VDEV_AUX_UNSUP_FEAT, ENOTSUP)); + } + /* * We've successfully opened the pool, verify that we're ready * to start pushing transactions. @@ -2370,10 +2598,18 @@ spa_load_retry(spa_t *spa, spa_load_state_t state, int mosconfig) return (spa_load(spa, state, SPA_IMPORT_EXISTING, mosconfig)); } +/* + * If spa_load() fails this function will try loading prior txg's. If + * 'state' is SPA_LOAD_RECOVER and one of these loads succeeds the pool + * will be rewound to that txg. If 'state' is not SPA_LOAD_RECOVER this + * function will not rewind the pool and will return the same error as + * spa_load(). + */ static int spa_load_best(spa_t *spa, spa_load_state_t state, int mosconfig, uint64_t max_request, int rewind_flags) { + nvlist_t *loadinfo = NULL; nvlist_t *config = NULL; int load_error, rewind_error; uint64_t safe_rewind_txg; @@ -2402,9 +2638,18 @@ spa_load_best(spa_t *spa, spa_load_state_t state, int mosconfig, return (load_error); } - /* Price of rolling back is discarding txgs, including log */ - if (state == SPA_LOAD_RECOVER) + if (state == SPA_LOAD_RECOVER) { + /* Price of rolling back is discarding txgs, including log */ spa_set_log_state(spa, SPA_LOG_CLEAR); + } else { + /* + * If we aren't rolling back save the load info from our first + * import attempt so that we can restore it after attempting + * to rewind. + */ + loadinfo = spa->spa_load_info; + spa->spa_load_info = fnvlist_alloc(); + } spa->spa_load_max_txg = spa->spa_last_ubsync_txg; safe_rewind_txg = spa->spa_last_ubsync_txg - TXG_DEFER_SIZE; @@ -2428,7 +2673,20 @@ spa_load_best(spa_t *spa, spa_load_state_t state, int mosconfig, if (config && (rewind_error || state != SPA_LOAD_RECOVER)) spa_config_set(spa, config); - return (state == SPA_LOAD_RECOVER ? rewind_error : load_error); + if (state == SPA_LOAD_RECOVER) { + ASSERT3P(loadinfo, ==, NULL); + return (rewind_error); + } else { + /* Store the rewind info as part of the initial load info */ + fnvlist_add_nvlist(loadinfo, ZPOOL_CONFIG_REWIND_INFO, + spa->spa_load_info); + + /* Restore the initial load info */ + fnvlist_free(spa->spa_load_info); + spa->spa_load_info = loadinfo; + + return (load_error); + } } /* @@ -2707,8 +2965,50 @@ spa_add_l2cache(spa_t *spa, nvlist_t *config) } } +static void +spa_add_feature_stats(spa_t *spa, nvlist_t *config) +{ + nvlist_t *features; + zap_cursor_t zc; + zap_attribute_t za; + + ASSERT(spa_config_held(spa, SCL_CONFIG, RW_READER)); + VERIFY(nvlist_alloc(&features, NV_UNIQUE_NAME, KM_SLEEP) == 0); + + if (spa->spa_feat_for_read_obj != 0) { + for (zap_cursor_init(&zc, spa->spa_meta_objset, + spa->spa_feat_for_read_obj); + zap_cursor_retrieve(&zc, &za) == 0; + zap_cursor_advance(&zc)) { + ASSERT(za.za_integer_length == sizeof (uint64_t) && + za.za_num_integers == 1); + VERIFY3U(0, ==, nvlist_add_uint64(features, za.za_name, + za.za_first_integer)); + } + zap_cursor_fini(&zc); + } + + if (spa->spa_feat_for_write_obj != 0) { + for (zap_cursor_init(&zc, spa->spa_meta_objset, + spa->spa_feat_for_write_obj); + zap_cursor_retrieve(&zc, &za) == 0; + zap_cursor_advance(&zc)) { + ASSERT(za.za_integer_length == sizeof (uint64_t) && + za.za_num_integers == 1); + VERIFY3U(0, ==, nvlist_add_uint64(features, za.za_name, + za.za_first_integer)); + } + zap_cursor_fini(&zc); + } + + VERIFY(nvlist_add_nvlist(config, ZPOOL_CONFIG_FEATURE_STATS, + features) == 0); + nvlist_free(features); +} + int -spa_get_stats(const char *name, nvlist_t **config, char *altroot, size_t buflen) +spa_get_stats(const char *name, nvlist_t **config, + char *altroot, size_t buflen) { int error; spa_t *spa; @@ -2743,6 +3043,7 @@ spa_get_stats(const char *name, nvlist_t **config, char *altroot, size_t buflen) spa_add_spares(spa, *config); spa_add_l2cache(spa, *config); + spa_add_feature_stats(spa, *config); } } @@ -2963,6 +3264,7 @@ spa_create(const char *pool, nvlist_t *nvroot, nvlist_t *props, nvlist_t **spares, **l2cache; uint_t nspares, nl2cache; uint64_t version, obj; + boolean_t has_features; /* * If this pool already exists, return failure. @@ -2988,10 +3290,18 @@ spa_create(const char *pool, nvlist_t *nvroot, nvlist_t *props, return (error); } - if (nvlist_lookup_uint64(props, zpool_prop_to_name(ZPOOL_PROP_VERSION), - &version) != 0) + has_features = B_FALSE; + for (nvpair_t *elem = nvlist_next_nvpair(props, NULL); + elem != NULL; elem = nvlist_next_nvpair(props, elem)) { + if (zpool_prop_feature(nvpair_name(elem))) + has_features = B_TRUE; + } + + if (has_features || nvlist_lookup_uint64(props, + zpool_prop_to_name(ZPOOL_PROP_VERSION), &version) != 0) { version = SPA_VERSION; - ASSERT(version <= SPA_VERSION); + } + ASSERT(SPA_VERSION_IS_SUPPORTED(version)); spa->spa_first_txg = txg; spa->spa_uberblock.ub_txg = txg - 1; @@ -3067,8 +3377,10 @@ spa_create(const char *pool, nvlist_t *nvroot, nvlist_t *props, spa->spa_l2cache.sav_sync = B_TRUE; } + spa->spa_is_initializing = B_TRUE; spa->spa_dsl_pool = dp = dsl_pool_create(spa, zplprops, txg); spa->spa_meta_objset = dp->dp_meta_objset; + spa->spa_is_initializing = B_FALSE; /* * Create DDTs (dedup tables). @@ -3092,6 +3404,9 @@ spa_create(const char *pool, nvlist_t *nvroot, nvlist_t *props, cmn_err(CE_PANIC, "failed to add pool config"); } + if (spa_version(spa) >= SPA_VERSION_FEATURES) + spa_feature_create_zap_objects(spa, tx); + if (zap_add(spa->spa_meta_objset, DMU_POOL_DIRECTORY_OBJECT, DMU_POOL_CREATION_VERSION, sizeof (uint64_t), 1, &version, tx) != 0) { @@ -3283,7 +3598,7 @@ spa_import_rootpool(char *devpath, char *devid) } #endif if (config == NULL) { - cmn_err(CE_NOTE, "Can not read the pool label from '%s'", + cmn_err(CE_NOTE, "Cannot read the pool label from '%s'", devpath); return (EIO); } @@ -3603,6 +3918,8 @@ spa_tryimport(nvlist_t *tryconfig) state) == 0); VERIFY(nvlist_add_uint64(config, ZPOOL_CONFIG_TIMESTAMP, spa->spa_uberblock.ub_timestamp) == 0); + VERIFY(nvlist_add_nvlist(config, ZPOOL_CONFIG_LOAD_INFO, + spa->spa_load_info) == 0); /* * If the bootfs property exists on this pool then we @@ -5328,7 +5645,7 @@ spa_sync_nvlist(spa_t *spa, uint64_t obj, nvlist_t *nv, dmu_tx_t *tx) * information. This avoids the dbuf_will_dirty() path and * saves us a pre-read to get data we don't actually care about. */ - bufsize = P2ROUNDUP(nvsize, SPA_CONFIG_BLOCKSIZE); + bufsize = P2ROUNDUP((uint64_t)nvsize, SPA_CONFIG_BLOCKSIZE); packed = kmem_alloc(bufsize, KM_SLEEP); VERIFY(nvlist_pack(nv, &packed, &nvsize, NV_ENCODE_XDR, @@ -5413,6 +5730,24 @@ spa_sync_config_object(spa_t *spa, dmu_tx_t *tx) spa_sync_nvlist(spa, spa->spa_config_object, config, tx); } +static void +spa_sync_version(void *arg1, void *arg2, dmu_tx_t *tx) +{ + spa_t *spa = arg1; + uint64_t version = *(uint64_t *)arg2; + + /* + * Setting the version is special cased when first creating the pool. + */ + ASSERT(tx->tx_txg != TXG_INITIAL); + + ASSERT(version <= SPA_VERSION); + ASSERT(version >= spa_version(spa)); + + spa->spa_uberblock.ub_version = version; + vdev_config_dirty(spa->spa_root_vdev); +} + /* * Set zpool properties. */ @@ -5422,32 +5757,38 @@ spa_sync_props(void *arg1, void *arg2, dmu_tx_t *tx) spa_t *spa = arg1; objset_t *mos = spa->spa_meta_objset; nvlist_t *nvp = arg2; - nvpair_t *elem; - uint64_t intval; - char *strval; - zpool_prop_t prop; - const char *propname; - zprop_type_t proptype; + nvpair_t *elem = NULL; mutex_enter(&spa->spa_props_lock); - elem = NULL; while ((elem = nvlist_next_nvpair(nvp, elem))) { + uint64_t intval; + char *strval, *fname; + zpool_prop_t prop; + const char *propname; + zprop_type_t proptype; + zfeature_info_t *feature; + switch (prop = zpool_name_to_prop(nvpair_name(elem))) { - case ZPOOL_PROP_VERSION: + case ZPROP_INVAL: /* - * Only set version for non-zpool-creation cases - * (set/import). spa_create() needs special care - * for version setting. + * We checked this earlier in spa_prop_validate(). */ - if (tx->tx_txg != TXG_INITIAL) { - VERIFY(nvpair_value_uint64(elem, - &intval) == 0); - ASSERT(intval <= SPA_VERSION); - ASSERT(intval >= spa_version(spa)); - spa->spa_uberblock.ub_version = intval; - vdev_config_dirty(spa->spa_root_vdev); - } + ASSERT(zpool_prop_feature(nvpair_name(elem))); + + fname = strchr(nvpair_name(elem), '@') + 1; + VERIFY3U(0, ==, zfeature_lookup_name(fname, &feature)); + + spa_feature_enable(spa, feature, tx); + break; + + case ZPOOL_PROP_VERSION: + VERIFY(nvpair_value_uint64(elem, &intval) == 0); + /* + * The version is synced seperatly before other + * properties and should be correct by now. + */ + ASSERT3U(spa_version(spa), >=, intval); break; case ZPOOL_PROP_ALTROOT: @@ -5484,14 +5825,10 @@ spa_sync_props(void *arg1, void *arg2, dmu_tx_t *tx) * Set pool property values in the poolprops mos object. */ if (spa->spa_pool_props_object == 0) { - VERIFY((spa->spa_pool_props_object = - zap_create(mos, DMU_OT_POOL_PROPS, - DMU_OT_NONE, 0, tx)) > 0); - - VERIFY(zap_update(mos, + spa->spa_pool_props_object = + zap_create_link(mos, DMU_OT_POOL_PROPS, DMU_POOL_DIRECTORY_OBJECT, DMU_POOL_PROPS, - 8, 1, &spa->spa_pool_props_object, tx) - == 0); + tx); } /* normalize the property name */ @@ -5590,6 +5927,11 @@ spa_sync_upgrades(spa_t *spa, dmu_tx_t *tx) /* Keeping the freedir open increases spa_minref */ spa->spa_minref += 3; } + + if (spa->spa_ubsync.ub_version < SPA_VERSION_FEATURES && + spa->spa_uberblock.ub_version >= SPA_VERSION_FEATURES) { + spa_feature_create_zap_objects(spa, tx); + } } /* diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_config.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_config.c index a07223352d06..3dae0ba1eeb7 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_config.c +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_config.c @@ -22,7 +22,7 @@ /* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2011 Nexenta Systems, Inc. All rights reserved. - * Copyright (c) 2011 by Delphix. All rights reserved. + * Copyright (c) 2012 by Delphix. All rights reserved. */ #include @@ -35,6 +35,7 @@ #include #include #include +#include #ifdef _KERNEL #include #include @@ -407,6 +408,12 @@ spa_config_generate(spa_t *spa, vdev_t *vd, uint64_t txg, int getstats) VERIFY(nvlist_add_nvlist(config, ZPOOL_CONFIG_VDEV_TREE, nvroot) == 0); nvlist_free(nvroot); + /* + * Store what's necessary for reading the MOS in the label. + */ + VERIFY(nvlist_add_nvlist(config, ZPOOL_CONFIG_FEATURES_FOR_READ, + spa->spa_label_features) == 0); + if (getstats && spa_load_state(spa) == SPA_LOAD_NONE) { ddt_histogram_t *ddh; ddt_stat_t *dds; diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c index 63424527b726..83c3d31fe313 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c @@ -20,7 +20,7 @@ */ /* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - * Copyright (c) 2011 by Delphix. All rights reserved. + * Copyright (c) 2012 by Delphix. All rights reserved. * Copyright 2011 Nexenta Systems, Inc. All rights reserved. */ @@ -48,6 +48,7 @@ #include #include #include "zfs_prop.h" +#include "zfeature_common.h" /* * SPA locking @@ -216,7 +217,7 @@ * Like spa_vdev_enter/exit, these are convenience wrappers -- the actual * locking is, always, based on spa_namespace_lock and spa_config_lock[]. * - * spa_rename() is also implemented within this file since is requires + * spa_rename() is also implemented within this file since it requires * manipulation of the namespace. */ @@ -487,8 +488,22 @@ spa_add(const char *name, nvlist_t *config, const char *altroot) VERIFY(nvlist_alloc(&spa->spa_load_info, NV_UNIQUE_NAME, KM_SLEEP) == 0); - if (config != NULL) + if (config != NULL) { + nvlist_t *features; + + if (nvlist_lookup_nvlist(config, ZPOOL_CONFIG_FEATURES_FOR_READ, + &features) == 0) { + VERIFY(nvlist_dup(features, &spa->spa_label_features, + 0) == 0); + } + VERIFY(nvlist_dup(config, &spa->spa_config, 0) == 0); + } + + if (spa->spa_label_features == NULL) { + VERIFY(nvlist_alloc(&spa->spa_label_features, NV_UNIQUE_NAME, + KM_SLEEP) == 0); + } return (spa); } @@ -525,6 +540,7 @@ spa_remove(spa_t *spa) list_destroy(&spa->spa_config_list); + nvlist_free(spa->spa_label_features); nvlist_free(spa->spa_load_info); spa_config_set(spa, NULL); @@ -1033,6 +1049,20 @@ spa_vdev_state_exit(spa_t *spa, vdev_t *vd, int error) * ========================================================================== */ +void +spa_activate_mos_feature(spa_t *spa, const char *feature) +{ + (void) nvlist_add_boolean(spa->spa_label_features, feature); + vdev_config_dirty(spa->spa_root_vdev); +} + +void +spa_deactivate_mos_feature(spa_t *spa, const char *feature) +{ + (void) nvlist_remove_all(spa->spa_label_features, feature); + vdev_config_dirty(spa->spa_root_vdev); +} + /* * Rename a spa_t. */ @@ -1183,12 +1213,22 @@ spa_generate_guid(spa_t *spa) void sprintf_blkptr(char *buf, const blkptr_t *bp) { - char *type = NULL; + char type[256]; char *checksum = NULL; char *compress = NULL; if (bp != NULL) { - type = dmu_ot[BP_GET_TYPE(bp)].ot_name; + if (BP_GET_TYPE(bp) & DMU_OT_NEWTYPE) { + dmu_object_byteswap_t bswap = + DMU_OT_BYTESWAP(BP_GET_TYPE(bp)); + (void) snprintf(type, sizeof (type), "bswap %s %s", + DMU_OT_IS_METADATA(BP_GET_TYPE(bp)) ? + "metadata" : "data", + dmu_ot_byteswap[bswap].ob_name); + } else { + (void) strlcpy(type, dmu_ot[BP_GET_TYPE(bp)].ot_name, + sizeof (type)); + } checksum = zio_checksum_table[BP_GET_CHECKSUM(bp)].ci_name; compress = zio_compress_table[BP_GET_COMPRESS(bp)].ci_name; } @@ -1270,6 +1310,12 @@ spa_get_dsl(spa_t *spa) return (spa->spa_dsl_pool); } +boolean_t +spa_is_initializing(spa_t *spa) +{ + return (spa->spa_is_initializing); +} + blkptr_t * spa_get_rootblkptr(spa_t *spa) { @@ -1553,6 +1599,7 @@ spa_init(int mode) vdev_cache_stat_init(); zfs_prop_init(); zpool_prop_init(); + zpool_feature_init(); spa_config_load(); l2arc_start(); } diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/bptree.h b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/bptree.h new file mode 100644 index 000000000000..971507211875 --- /dev/null +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/bptree.h @@ -0,0 +1,64 @@ +/* + * CDDL HEADER START + * + * The contents of this file are subject to the terms of the + * Common Development and Distribution License (the "License"). + * You may not use this file except in compliance with the License. + * + * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE + * or http://www.opensolaris.org/os/licensing. + * See the License for the specific language governing permissions + * and limitations under the License. + * + * When distributing Covered Code, include this CDDL HEADER in each + * file and include the License file at usr/src/OPENSOLARIS.LICENSE. + * If applicable, add the following below this CDDL HEADER, with the + * fields enclosed by brackets "[]" replaced with your own identifying + * information: Portions Copyright [yyyy] [name of copyright owner] + * + * CDDL HEADER END + */ +/* + * Copyright (c) 2012 by Delphix. All rights reserved. + */ + +#ifndef _SYS_BPTREE_H +#define _SYS_BPTREE_H + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct bptree_phys { + uint64_t bt_begin; + uint64_t bt_end; + uint64_t bt_bytes; + uint64_t bt_comp; + uint64_t bt_uncomp; +} bptree_phys_t; + +typedef struct bptree_entry_phys { + blkptr_t be_bp; + uint64_t be_birth_txg; /* only delete blocks born after this txg */ + zbookmark_t be_zb; /* holds traversal resume point if needed */ +} bptree_entry_phys_t; + +typedef int bptree_itor_t(void *arg, const blkptr_t *bp, dmu_tx_t *tx); + +uint64_t bptree_alloc(objset_t *os, dmu_tx_t *tx); +int bptree_free(objset_t *os, uint64_t obj, dmu_tx_t *tx); + +void bptree_add(objset_t *os, uint64_t obj, blkptr_t *bp, uint64_t birth_txg, + uint64_t bytes, uint64_t comp, uint64_t uncomp, dmu_tx_t *tx); + +int bptree_iterate(objset_t *os, uint64_t obj, boolean_t free, + bptree_itor_t func, void *arg, dmu_tx_t *tx); + +#ifdef __cplusplus +} +#endif + +#endif /* _SYS_BPTREE_H */ diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu.h b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu.h index 4d24f5754d20..c6943e14bd97 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu.h +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu.h @@ -18,11 +18,10 @@ * * CDDL HEADER END */ + /* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - * Copyright (c) 2011 by Delphix. All rights reserved. - */ -/* + * Copyright (c) 2012 by Delphix. All rights reserved. * Copyright 2011 Nexenta Systems, Inc. All rights reserved. * Copyright (c) 2012, Joyent, Inc. All rights reserved. */ @@ -75,6 +74,53 @@ typedef struct objset objset_t; typedef struct dmu_tx dmu_tx_t; typedef struct dsl_dir dsl_dir_t; +typedef enum dmu_object_byteswap { + DMU_BSWAP_UINT8, + DMU_BSWAP_UINT16, + DMU_BSWAP_UINT32, + DMU_BSWAP_UINT64, + DMU_BSWAP_ZAP, + DMU_BSWAP_DNODE, + DMU_BSWAP_OBJSET, + DMU_BSWAP_ZNODE, + DMU_BSWAP_OLDACL, + DMU_BSWAP_ACL, + /* + * Allocating a new byteswap type number makes the on-disk format + * incompatible with any other format that uses the same number. + * + * Data can usually be structured to work with one of the + * DMU_BSWAP_UINT* or DMU_BSWAP_ZAP types. + */ + DMU_BSWAP_NUMFUNCS +} dmu_object_byteswap_t; + +#define DMU_OT_NEWTYPE 0x80 +#define DMU_OT_METADATA 0x40 +#define DMU_OT_BYTESWAP_MASK 0x3f + +/* + * Defines a uint8_t object type. Object types specify if the data + * in the object is metadata (boolean) and how to byteswap the data + * (dmu_object_byteswap_t). + */ +#define DMU_OT(byteswap, metadata) \ + (DMU_OT_NEWTYPE | \ + ((metadata) ? DMU_OT_METADATA : 0) | \ + ((byteswap) & DMU_OT_BYTESWAP_MASK)) + +#define DMU_OT_IS_VALID(ot) (((ot) & DMU_OT_NEWTYPE) ? \ + ((ot) & DMU_OT_BYTESWAP_MASK) < DMU_BSWAP_NUMFUNCS : \ + (ot) < DMU_OT_NUMTYPES) + +#define DMU_OT_IS_METADATA(ot) (((ot) & DMU_OT_NEWTYPE) ? \ + ((ot) & DMU_OT_METADATA) : \ + dmu_ot[(ot)].ot_metadata) + +#define DMU_OT_BYTESWAP(ot) (((ot) & DMU_OT_NEWTYPE) ? \ + ((ot) & DMU_OT_BYTESWAP_MASK) : \ + dmu_ot[(ot)].ot_byteswap) + typedef enum dmu_object_type { DMU_OT_NONE, /* general: */ @@ -139,7 +185,35 @@ typedef enum dmu_object_type { DMU_OT_DEADLIST_HDR, /* UINT64 */ DMU_OT_DSL_CLONES, /* ZAP */ DMU_OT_BPOBJ_SUBOBJ, /* UINT64 */ - DMU_OT_NUMTYPES + /* + * Do not allocate new object types here. Doing so makes the on-disk + * format incompatible with any other format that uses the same object + * type number. + * + * When creating an object which does not have one of the above types + * use the DMU_OTN_* type with the correct byteswap and metadata + * values. + * + * The DMU_OTN_* types do not have entries in the dmu_ot table, + * use the DMU_OT_IS_METDATA() and DMU_OT_BYTESWAP() macros instead + * of indexing into dmu_ot directly (this works for both DMU_OT_* types + * and DMU_OTN_* types). + */ + DMU_OT_NUMTYPES, + + /* + * Names for valid types declared with DMU_OT(). + */ + DMU_OTN_UINT8_DATA = DMU_OT(DMU_BSWAP_UINT8, B_FALSE), + DMU_OTN_UINT8_METADATA = DMU_OT(DMU_BSWAP_UINT8, B_TRUE), + DMU_OTN_UINT16_DATA = DMU_OT(DMU_BSWAP_UINT16, B_FALSE), + DMU_OTN_UINT16_METADATA = DMU_OT(DMU_BSWAP_UINT16, B_TRUE), + DMU_OTN_UINT32_DATA = DMU_OT(DMU_BSWAP_UINT32, B_FALSE), + DMU_OTN_UINT32_METADATA = DMU_OT(DMU_BSWAP_UINT32, B_TRUE), + DMU_OTN_UINT64_DATA = DMU_OT(DMU_BSWAP_UINT64, B_FALSE), + DMU_OTN_UINT64_METADATA = DMU_OT(DMU_BSWAP_UINT64, B_TRUE), + DMU_OTN_ZAP_DATA = DMU_OT(DMU_BSWAP_ZAP, B_FALSE), + DMU_OTN_ZAP_METADATA = DMU_OT(DMU_BSWAP_ZAP, B_TRUE), } dmu_object_type_t; typedef enum dmu_objset_type { @@ -221,6 +295,9 @@ typedef void dmu_buf_evict_func_t(struct dmu_buf *db, void *user_ptr); */ #define DMU_POOL_DIRECTORY_OBJECT 1 #define DMU_POOL_CONFIG "config" +#define DMU_POOL_FEATURES_FOR_WRITE "features_for_write" +#define DMU_POOL_FEATURES_FOR_READ "features_for_read" +#define DMU_POOL_FEATURE_DESCRIPTIONS "feature_descriptions" #define DMU_POOL_ROOT_DATASET "root_dataset" #define DMU_POOL_SYNC_BPOBJ "sync_bplist" #define DMU_POOL_ERRLOG_SCRUB "errlog_scrub" @@ -236,6 +313,7 @@ typedef void dmu_buf_evict_func_t(struct dmu_buf *db, void *user_ptr); #define DMU_POOL_CREATION_VERSION "creation_version" #define DMU_POOL_SCAN "scan" #define DMU_POOL_FREE_BPOBJ "free_bpobj" +#define DMU_POOL_BPTREE_OBJ "bptree_obj" /* * Allocate an object from this objset. The range of object numbers @@ -496,7 +574,7 @@ void dmu_tx_callback_register(dmu_tx_t *tx, dmu_tx_callback_func_t *dcb_func, /* * Free up the data blocks for a defined range of a file. If size is - * zero, the range from offset to end-of-file is freed. + * -1, the range from offset to end-of-file is freed. */ int dmu_free_range(objset_t *os, uint64_t object, uint64_t offset, uint64_t size, dmu_tx_t *tx); @@ -566,12 +644,18 @@ typedef struct dmu_object_info { typedef void arc_byteswap_func_t(void *buf, size_t size); typedef struct dmu_object_type_info { - arc_byteswap_func_t *ot_byteswap; + dmu_object_byteswap_t ot_byteswap; boolean_t ot_metadata; char *ot_name; } dmu_object_type_info_t; +typedef struct dmu_object_byteswap_info { + arc_byteswap_func_t *ob_func; + char *ob_name; +} dmu_object_byteswap_info_t; + extern const dmu_object_type_info_t dmu_ot[DMU_OT_NUMTYPES]; +extern const dmu_object_byteswap_info_t dmu_ot_byteswap[DMU_BSWAP_NUMFUNCS]; /* * Get information on a DMU object. diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_traverse.h b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_traverse.h index 5b326cd99c09..3cbf42f56a60 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_traverse.h +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_traverse.h @@ -20,6 +20,7 @@ */ /* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012 by Delphix. All rights reserved. */ #ifndef _SYS_DMU_TRAVERSE_H @@ -54,6 +55,9 @@ typedef int (blkptr_cb_t)(spa_t *spa, zilog_t *zilog, const blkptr_t *bp, int traverse_dataset(struct dsl_dataset *ds, uint64_t txg_start, int flags, blkptr_cb_t func, void *arg); +int traverse_dataset_destroyed(spa_t *spa, blkptr_t *blkptr, + uint64_t txg_start, zbookmark_t *resume, int flags, + blkptr_cb_t func, void *arg); int traverse_pool(spa_t *spa, uint64_t txg_start, int flags, blkptr_cb_t func, void *arg); diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_dataset.h b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_dataset.h index 56d2f6b759cb..e3affeb0eb8c 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_dataset.h +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_dataset.h @@ -22,7 +22,7 @@ * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2011 Pawel Jakub Dawidek . * All rights reserved. - * Copyright (c) 2011 by Delphix. All rights reserved. + * Copyright (c) 2012 by Delphix. All rights reserved. * Copyright (c) 2012, Joyent, Inc. All rights reserved. */ @@ -88,7 +88,12 @@ typedef struct dsl_dataset_phys { uint64_t ds_creation_time; /* seconds since 1970 */ uint64_t ds_creation_txg; uint64_t ds_deadlist_obj; /* DMU_OT_DEADLIST */ - uint64_t ds_used_bytes; + /* + * ds_referenced_bytes, ds_compressed_bytes, and ds_uncompressed_bytes + * include all blocks referenced by this dataset, including those + * shared with any other datasets. + */ + uint64_t ds_referenced_bytes; uint64_t ds_compressed_bytes; uint64_t ds_uncompressed_bytes; uint64_t ds_unique_bytes; /* only relevant to snapshots */ diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_pool.h b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_pool.h index 57725b5ecd94..e2c12ab46d32 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_pool.h +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_pool.h @@ -20,6 +20,7 @@ */ /* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012 by Delphix. All rights reserved. */ #ifndef _SYS_DSL_POOL_H @@ -34,6 +35,7 @@ #include #include #include +#include #ifdef __cplusplus extern "C" { @@ -48,7 +50,8 @@ struct dsl_scan; /* These macros are for indexing into the zfs_all_blkstats_t. */ #define DMU_OT_DEFERRED DMU_OT_NONE -#define DMU_OT_TOTAL DMU_OT_NUMTYPES +#define DMU_OT_OTHER DMU_OT_NUMTYPES /* place holder for DMU_OT() types */ +#define DMU_OT_TOTAL (DMU_OT_NUMTYPES + 1) typedef struct zfs_blkstat { uint64_t zb_count; @@ -85,6 +88,7 @@ typedef struct dsl_pool { uint64_t dp_write_limit; uint64_t dp_tmp_userrefs_obj; bpobj_t dp_free_bpobj; + uint64_t dp_bptree_obj; struct dsl_scan *dp_scan; @@ -110,7 +114,8 @@ typedef struct dsl_pool { zfs_all_blkstats_t *dp_blkstats; } dsl_pool_t; -int dsl_pool_open(spa_t *spa, uint64_t txg, dsl_pool_t **dpp); +int dsl_pool_init(spa_t *spa, uint64_t txg, dsl_pool_t **dpp); +int dsl_pool_open(dsl_pool_t *dp); void dsl_pool_close(dsl_pool_t *dp); dsl_pool_t *dsl_pool_create(spa_t *spa, nvlist_t *zplprops, uint64_t txg); void dsl_pool_sync(dsl_pool_t *dp, uint64_t txg); diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_scan.h b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_scan.h index c79666e67de0..5691f4d14d93 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_scan.h +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_scan.h @@ -20,6 +20,7 @@ */ /* * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012 by Delphix. All rights reserved. */ #ifndef _SYS_DSL_SCAN_H @@ -79,6 +80,9 @@ typedef struct dsl_scan { uint64_t scn_sync_start_time; zio_t *scn_zio_root; + /* for freeing blocks */ + boolean_t scn_is_bptree; + /* for debugging / information */ uint64_t scn_visited_this_txg; diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa.h b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa.h index a2a76e3d621b..ec6914e3314a 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa.h +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa.h @@ -20,7 +20,7 @@ */ /* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - * Copyright (c) 2011 by Delphix. All rights reserved. + * Copyright (c) 2012 by Delphix. All rights reserved. * Copyright 2011 Nexenta Systems, Inc. All rights reserved. */ @@ -94,7 +94,7 @@ struct dsl_pool; /* * Size of block to hold the configuration data (a packed nvlist) */ -#define SPA_CONFIG_BLOCKSIZE (1 << 14) +#define SPA_CONFIG_BLOCKSIZE (1ULL << 14) /* * The DVA size encodings for LSIZE and PSIZE support blocks up to 32MB. @@ -262,7 +262,7 @@ typedef struct blkptr { DVA_GET_ASIZE(&(bp)->blk_dva[2])) #define BP_GET_UCSIZE(bp) \ - ((BP_GET_LEVEL(bp) > 0 || dmu_ot[BP_GET_TYPE(bp)].ot_metadata) ? \ + ((BP_GET_LEVEL(bp) > 0 || DMU_OT_IS_METADATA(BP_GET_TYPE(bp))) ? \ BP_GET_PSIZE(bp) : BP_GET_LSIZE(bp)) #define BP_GET_NDVAS(bp) \ @@ -403,8 +403,8 @@ typedef struct blkptr { #include #define BP_GET_BUFC_TYPE(bp) \ - (((BP_GET_LEVEL(bp) > 0) || (dmu_ot[BP_GET_TYPE(bp)].ot_metadata)) ? \ - ARC_BUFC_METADATA : ARC_BUFC_DATA); + (((BP_GET_LEVEL(bp) > 0) || (DMU_OT_IS_METADATA(BP_GET_TYPE(bp)))) ? \ + ARC_BUFC_METADATA : ARC_BUFC_DATA) typedef enum spa_import_type { SPA_IMPORT_EXISTING, @@ -415,8 +415,8 @@ typedef enum spa_import_type { extern int spa_open(const char *pool, spa_t **, void *tag); extern int spa_open_rewind(const char *pool, spa_t **, void *tag, nvlist_t *policy, nvlist_t **config); -extern int spa_get_stats(const char *pool, nvlist_t **config, - char *altroot, size_t buflen); +extern int spa_get_stats(const char *pool, nvlist_t **config, char *altroot, + size_t buflen); extern int spa_create(const char *pool, nvlist_t *config, nvlist_t *props, const char *history_str, nvlist_t *zplprops); extern int spa_import_rootpool(char *devpath, char *devid); @@ -573,6 +573,7 @@ extern void spa_claim_notify(zio_t *zio); /* Accessor functions */ extern boolean_t spa_shutting_down(spa_t *spa); extern struct dsl_pool *spa_get_dsl(spa_t *spa); +extern boolean_t spa_is_initializing(spa_t *spa); extern blkptr_t *spa_get_rootblkptr(spa_t *spa); extern void spa_set_rootblkptr(spa_t *spa, const blkptr_t *bp); extern void spa_altroot(spa_t *, char *, size_t); @@ -604,6 +605,8 @@ extern uint64_t spa_delegation(spa_t *spa); extern objset_t *spa_meta_objset(spa_t *spa); /* Miscellaneous support routines */ +extern void spa_activate_mos_feature(spa_t *spa, const char *feature); +extern void spa_deactivate_mos_feature(spa_t *spa, const char *feature); extern int spa_rename(const char *oldname, const char *newname); extern spa_t *spa_by_guid(uint64_t pool_guid, uint64_t device_guid); extern boolean_t spa_guid_exists(uint64_t pool_guid, uint64_t device_guid); diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa_impl.h b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa_impl.h index 88d14773900b..b4276743b11d 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa_impl.h +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa_impl.h @@ -20,7 +20,7 @@ */ /* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - * Copyright (c) 2011 by Delphix. All rights reserved. + * Copyright (c) 2012 by Delphix. All rights reserved. * Copyright 2011 Nexenta Systems, Inc. All rights reserved. */ @@ -127,6 +127,7 @@ struct spa { uint64_t spa_import_flags; /* import specific flags */ taskq_t *spa_zio_taskq[ZIO_TYPES][ZIO_TASKQ_TYPES]; dsl_pool_t *spa_dsl_pool; + boolean_t spa_is_initializing; /* true while opening pool */ metaslab_class_t *spa_normal_class; /* normal data class */ metaslab_class_t *spa_log_class; /* intent log data class */ uint64_t spa_first_txg; /* first txg after spa_open() */ @@ -144,6 +145,7 @@ struct spa { list_t spa_state_dirty_list; /* vdevs with dirty state */ spa_aux_vdev_t spa_spares; /* hot spares */ spa_aux_vdev_t spa_l2cache; /* L2ARC cache devices */ + nvlist_t *spa_label_features; /* Features for reading MOS */ uint64_t spa_config_object; /* MOS object for pool config */ uint64_t spa_config_generation; /* config generation number */ uint64_t spa_syncing_txg; /* txg currently syncing */ @@ -220,7 +222,10 @@ struct spa { boolean_t spa_autoreplace; /* autoreplace set in open */ int spa_vdev_locks; /* locks grabbed */ uint64_t spa_creation_version; /* version at pool creation */ - uint64_t spa_prev_software_version; + uint64_t spa_prev_software_version; /* See ub_software_version */ + uint64_t spa_feat_for_write_obj; /* required to write to pool */ + uint64_t spa_feat_for_read_obj; /* required to read from pool */ + uint64_t spa_feat_desc_obj; /* Feature descriptions */ /* * spa_refcnt & spa_config_lock must be the last elements * because refcount_t changes size based on compilation options. diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev.h b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev.h index aa6559c801fe..2329d5b85c68 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev.h +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev.h @@ -18,6 +18,7 @@ * * CDDL HEADER END */ + /* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2012 by Delphix. All rights reserved. @@ -141,8 +142,8 @@ extern nvlist_t *vdev_config_generate(spa_t *spa, vdev_t *vd, struct uberblock; extern uint64_t vdev_label_offset(uint64_t psize, int l, uint64_t offset); extern int vdev_label_number(uint64_t psise, uint64_t offset); -extern nvlist_t *vdev_label_read_config(vdev_t *vd); -extern void vdev_uberblock_load(zio_t *zio, vdev_t *vd, struct uberblock *ub); +extern nvlist_t *vdev_label_read_config(vdev_t *vd, int label); +extern void vdev_uberblock_load(vdev_t *, struct uberblock *, nvlist_t **); typedef enum { VDEV_LABEL_CREATE, /* create/add a new device */ diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev_impl.h b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev_impl.h index 019d2bef9af8..7eed4a188670 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev_impl.h +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev_impl.h @@ -202,7 +202,7 @@ struct vdev { * For DTrace to work in userland (libzpool) context, these fields must * remain at the end of the structure. DTrace will use the kernel's * CTF definition for 'struct vdev', and since the size of a kmutex_t is - * larger in userland, the offsets for the rest fields would be + * larger in userland, the offsets for the rest of the fields would be * incorrect. */ kmutex_t vdev_dtl_lock; /* vdev_dtl_{map,resilver} */ @@ -257,6 +257,7 @@ typedef struct vdev_label { #define VDEV_LABEL_START_SIZE (2 * sizeof (vdev_label_t) + VDEV_BOOT_SIZE) #define VDEV_LABEL_END_SIZE (2 * sizeof (vdev_label_t)) #define VDEV_LABELS 4 +#define VDEV_BEST_LABEL VDEV_LABELS #define VDEV_ALLOC_LOAD 0 #define VDEV_ALLOC_ADD 1 diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zap.h b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zap.h index a1130bbbaaae..4d7b315597c5 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zap.h +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zap.h @@ -20,6 +20,7 @@ */ /* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012 by Delphix. All rights reserved. */ #ifndef _SYS_ZAP_H @@ -132,6 +133,8 @@ uint64_t zap_create_norm(objset_t *ds, int normflags, dmu_object_type_t ot, uint64_t zap_create_flags(objset_t *os, int normflags, zap_flags_t flags, dmu_object_type_t ot, int leaf_blockshift, int indirect_blockshift, dmu_object_type_t bonustype, int bonuslen, dmu_tx_t *tx); +uint64_t zap_create_link(objset_t *os, dmu_object_type_t ot, + uint64_t parent_obj, const char *name, dmu_tx_t *tx); /* * Create a new zapobj with no attributes from the given (unallocated) @@ -300,12 +303,6 @@ int zap_add_int_key(objset_t *os, uint64_t obj, int zap_lookup_int_key(objset_t *os, uint64_t obj, uint64_t key, uint64_t *valuep); -/* - * They name is a stringified version of key; increment its value by - * delta. Zero values will be zap_remove()-ed. - */ -int zap_increment_int(objset_t *os, uint64_t obj, uint64_t key, int64_t delta, - dmu_tx_t *tx); int zap_increment(objset_t *os, uint64_t obj, const char *name, int64_t delta, dmu_tx_t *tx); diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfeature.h b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfeature.h new file mode 100644 index 000000000000..9ff1c93df7f4 --- /dev/null +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfeature.h @@ -0,0 +1,52 @@ +/* + * CDDL HEADER START + * + * The contents of this file are subject to the terms of the + * Common Development and Distribution License (the "License"). + * You may not use this file except in compliance with the License. + * + * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE + * or http://www.opensolaris.org/os/licensing. + * See the License for the specific language governing permissions + * and limitations under the License. + * + * When distributing Covered Code, include this CDDL HEADER in each + * file and include the License file at usr/src/OPENSOLARIS.LICENSE. + * If applicable, add the following below this CDDL HEADER, with the + * fields enclosed by brackets "[]" replaced with your own identifying + * information: Portions Copyright [yyyy] [name of copyright owner] + * + * CDDL HEADER END + */ + +/* + * Copyright (c) 2012 by Delphix. All rights reserved. + */ + +#ifndef _SYS_ZFEATURE_H +#define _SYS_ZFEATURE_H + +#include +#include +#include "zfeature_common.h" + +#ifdef __cplusplus +extern "C" { +#endif + +extern boolean_t feature_is_supported(objset_t *os, uint64_t obj, + uint64_t desc_obj, nvlist_t *unsup_feat); + +struct spa; +extern void spa_feature_create_zap_objects(struct spa *, dmu_tx_t *); +extern void spa_feature_enable(struct spa *, zfeature_info_t *, dmu_tx_t *); +extern void spa_feature_incr(struct spa *, zfeature_info_t *, dmu_tx_t *); +extern void spa_feature_decr(struct spa *, zfeature_info_t *, dmu_tx_t *); +extern boolean_t spa_feature_is_enabled(struct spa *, zfeature_info_t *); +extern boolean_t spa_feature_is_active(struct spa *, zfeature_info_t *); + +#ifdef __cplusplus +} +#endif + +#endif /* _SYS_ZFEATURE_H */ diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio.h b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio.h index 4a4e843a1bb6..80d9336383c3 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio.h +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio.h @@ -21,6 +21,7 @@ /* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012 by Delphix. All rights reserved. */ #ifndef _ZIO_H @@ -270,6 +271,14 @@ typedef struct zbookmark { #define ZB_ZIL_OBJECT (0ULL) #define ZB_ZIL_LEVEL (-2LL) +#define ZB_IS_ZERO(zb) \ + ((zb)->zb_objset == 0 && (zb)->zb_object == 0 && \ + (zb)->zb_level == 0 && (zb)->zb_blkid == 0) +#define ZB_IS_ROOT(zb) \ + ((zb)->zb_object == ZB_ROOT_OBJECT && \ + (zb)->zb_level == ZB_ROOT_LEVEL && \ + (zb)->zb_blkid == ZB_ROOT_BLKID) + typedef struct zio_prop { enum zio_checksum zp_checksum; enum zio_compress zp_compress; @@ -287,6 +296,7 @@ typedef void zio_cksum_finish_f(zio_cksum_report_t *rep, typedef void zio_cksum_free_f(void *cbdata, size_t size); struct zio_bad_cksum; /* defined in zio_checksum.h */ +struct dnode_phys; struct zio_cksum_report { struct zio_cksum_report *zcr_next; @@ -559,6 +569,10 @@ extern void zfs_ereport_post_checksum(spa_t *spa, vdev_t *vd, /* Called from spa_sync(), but primarily an injection handler */ extern void spa_handle_ignored_writes(spa_t *spa); +/* zbookmark functions */ +boolean_t zbookmark_is_before(const struct dnode_phys *dnp, + const zbookmark_t *zb1, const zbookmark_t *zb2); + #ifdef __cplusplus } #endif diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c index ffcefb9ebdda..950f2f17be41 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c @@ -1329,7 +1329,8 @@ vdev_validate(vdev_t *vd, boolean_t strict) uint64_t aux_guid = 0; nvlist_t *nvl; - if ((label = vdev_label_read_config(vd)) == NULL) { + if ((label = vdev_label_read_config(vd, VDEV_BEST_LABEL)) == + NULL) { vdev_set_state(vd, B_TRUE, VDEV_STATE_CANT_OPEN, VDEV_AUX_BAD_LABEL); return (0); @@ -1970,14 +1971,14 @@ vdev_validate_aux(vdev_t *vd) if (!vdev_readable(vd)) return (0); - if ((label = vdev_label_read_config(vd)) == NULL) { + if ((label = vdev_label_read_config(vd, VDEV_BEST_LABEL)) == NULL) { vdev_set_state(vd, B_TRUE, VDEV_STATE_CANT_OPEN, VDEV_AUX_CORRUPT_DATA); return (-1); } if (nvlist_lookup_uint64(label, ZPOOL_CONFIG_VERSION, &version) != 0 || - version > SPA_VERSION || + !SPA_VERSION_IS_SUPPORTED(version) || nvlist_lookup_uint64(label, ZPOOL_CONFIG_GUID, &guid) != 0 || guid != vd->vdev_guid || nvlist_lookup_uint64(label, ZPOOL_CONFIG_POOL_STATE, &state) != 0) { diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_label.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_label.c index c08ed8ba0467..b9436472495d 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_label.c +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_label.c @@ -18,8 +18,10 @@ * * CDDL HEADER END */ + /* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012 by Delphix. All rights reserved. */ /* @@ -121,6 +123,8 @@ * txg Transaction group in which this label was written * pool_guid Unique identifier for this pool * vdev_tree An nvlist describing vdev tree. + * features_for_read + * An nvlist of the features necessary for reading the MOS. * * Each leaf device label also contains the following: * @@ -428,8 +432,13 @@ vdev_top_config_generate(spa_t *spa, nvlist_t *config) kmem_free(array, rvd->vdev_children * sizeof (uint64_t)); } +/* + * Returns the configuration from the label of the given vdev. If 'label' is + * VDEV_BEST_LABEL, each label of the vdev will be read until a valid + * configuration is found; otherwise, only the specified label will be read. + */ nvlist_t * -vdev_label_read_config(vdev_t *vd) +vdev_label_read_config(vdev_t *vd, int label) { spa_t *spa = vd->vdev_spa; nvlist_t *config = NULL; @@ -447,6 +456,8 @@ vdev_label_read_config(vdev_t *vd) retry: for (int l = 0; l < VDEV_LABELS; l++) { + if (label >= 0 && label < VDEV_LABELS && label != l) + continue; zio = zio_root(spa, NULL, NULL, flags); @@ -496,7 +507,7 @@ vdev_inuse(vdev_t *vd, uint64_t crtxg, vdev_labeltype_t reason, /* * Read the label, if any, and perform some basic sanity checks. */ - if ((label = vdev_label_read_config(vd)) == NULL) + if ((label = vdev_label_read_config(vd, VDEV_BEST_LABEL)) == NULL) return (B_FALSE); (void) nvlist_lookup_uint64(label, ZPOOL_CONFIG_CREATE_TXG, @@ -833,7 +844,7 @@ vdev_label_init(vdev_t *vd, uint64_t crtxg, vdev_labeltype_t reason) * come back up, we fail to see the uberblock for txg + 1 because, say, * it was on a mirrored device and the replica to which we wrote txg + 1 * is now offline. If we then make some changes and sync txg + 1, and then - * the missing replica comes back, then for a new seconds we'll have two + * the missing replica comes back, then for a few seconds we'll have two * conflicting uberblocks on disk with the same txg. The solution is simple: * among uberblocks with equal txg, choose the one with the latest timestamp. */ @@ -853,46 +864,50 @@ vdev_uberblock_compare(uberblock_t *ub1, uberblock_t *ub2) return (0); } +struct ubl_cbdata { + uberblock_t *ubl_ubbest; /* Best uberblock */ + vdev_t *ubl_vd; /* vdev associated with the above */ + int ubl_label; /* Label associated with the above */ +}; + static void vdev_uberblock_load_done(zio_t *zio) { + vdev_t *vd = zio->io_vd; spa_t *spa = zio->io_spa; zio_t *rio = zio->io_private; uberblock_t *ub = zio->io_data; - uberblock_t *ubbest = rio->io_private; + struct ubl_cbdata *cbp = rio->io_private; - ASSERT3U(zio->io_size, ==, VDEV_UBERBLOCK_SIZE(zio->io_vd)); + ASSERT3U(zio->io_size, ==, VDEV_UBERBLOCK_SIZE(vd)); if (zio->io_error == 0 && uberblock_verify(ub) == 0) { mutex_enter(&rio->io_lock); if (ub->ub_txg <= spa->spa_load_max_txg && - vdev_uberblock_compare(ub, ubbest) > 0) - *ubbest = *ub; + vdev_uberblock_compare(ub, cbp->ubl_ubbest) > 0) { + /* + * Keep track of the vdev and label in which this + * uberblock was found. We will use this information + * later to obtain the config nvlist associated with + * this uberblock. + */ + *cbp->ubl_ubbest = *ub; + cbp->ubl_vd = vd; + cbp->ubl_label = vdev_label_number(vd->vdev_psize, + zio->io_offset); + } mutex_exit(&rio->io_lock); } zio_buf_free(zio->io_data, zio->io_size); } -void -vdev_uberblock_load(zio_t *zio, vdev_t *vd, uberblock_t *ubbest) +static void +vdev_uberblock_load_impl(zio_t *zio, vdev_t *vd, int flags, + struct ubl_cbdata *cbp) { - spa_t *spa = vd->vdev_spa; - vdev_t *rvd = spa->spa_root_vdev; - int flags = ZIO_FLAG_CONFIG_WRITER | ZIO_FLAG_CANFAIL | - ZIO_FLAG_SPECULATIVE | ZIO_FLAG_TRYHARD; - - if (vd == rvd) { - ASSERT(zio == NULL); - spa_config_enter(spa, SCL_ALL, FTAG, RW_WRITER); - zio = zio_root(spa, NULL, ubbest, flags); - bzero(ubbest, sizeof (uberblock_t)); - } - - ASSERT(zio != NULL); - for (int c = 0; c < vd->vdev_children; c++) - vdev_uberblock_load(zio, vd->vdev_child[c], ubbest); + vdev_uberblock_load_impl(zio, vd->vdev_child[c], flags, cbp); if (vd->vdev_ops->vdev_op_leaf && vdev_readable(vd)) { for (int l = 0; l < VDEV_LABELS; l++) { @@ -905,11 +920,45 @@ vdev_uberblock_load(zio_t *zio, vdev_t *vd, uberblock_t *ubbest) } } } +} - if (vd == rvd) { - (void) zio_wait(zio); - spa_config_exit(spa, SCL_ALL, FTAG); +/* + * Reads the 'best' uberblock from disk along with its associated + * configuration. First, we read the uberblock array of each label of each + * vdev, keeping track of the uberblock with the highest txg in each array. + * Then, we read the configuration from the same label as the best uberblock. + */ +void +vdev_uberblock_load(vdev_t *rvd, uberblock_t *ub, nvlist_t **config) +{ + int i; + zio_t *zio; + spa_t *spa = rvd->vdev_spa; + struct ubl_cbdata cb; + int flags = ZIO_FLAG_CONFIG_WRITER | ZIO_FLAG_CANFAIL | + ZIO_FLAG_SPECULATIVE | ZIO_FLAG_TRYHARD; + + ASSERT(ub); + ASSERT(config); + + bzero(ub, sizeof (uberblock_t)); + *config = NULL; + + cb.ubl_ubbest = ub; + cb.ubl_vd = NULL; + + spa_config_enter(spa, SCL_ALL, FTAG, RW_WRITER); + zio = zio_root(spa, NULL, &cb, flags); + vdev_uberblock_load_impl(zio, rvd, flags, &cb); + (void) zio_wait(zio); + if (cb.ubl_vd != NULL) { + for (i = cb.ubl_label % 2; i < VDEV_LABELS; i += 2) { + *config = vdev_label_read_config(cb.ubl_vd, i); + if (*config != NULL) + break; + } } + spa_config_exit(spa, SCL_ALL, FTAG); } /* diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap.c index 288a4d99ab25..fa1d99fec957 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap.c +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap.c @@ -20,6 +20,7 @@ */ /* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012 by Delphix. All rights reserved. */ /* @@ -946,6 +947,19 @@ fzap_prefetch(zap_name_t *zn) * Helper functions for consumers. */ +uint64_t +zap_create_link(objset_t *os, dmu_object_type_t ot, uint64_t parent_obj, + const char *name, dmu_tx_t *tx) +{ + uint64_t new_obj; + + VERIFY((new_obj = zap_create(os, ot, DMU_OT_NONE, 0, tx)) > 0); + VERIFY(zap_add(os, parent_obj, name, sizeof (uint64_t), 1, &new_obj, + tx) == 0); + + return (new_obj); +} + int zap_value_search(objset_t *os, uint64_t zapobj, uint64_t value, uint64_t mask, char *name) diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap_micro.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap_micro.c index 6e506a4ee26a..dfdce04922ae 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap_micro.c +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap_micro.c @@ -20,7 +20,7 @@ */ /* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - * Copyright (c) 2011 by Delphix. All rights reserved. + * Copyright (c) 2012 by Delphix. All rights reserved. */ #include @@ -472,7 +472,7 @@ zap_lockdir(objset_t *os, uint64_t obj, dmu_tx_t *tx, { dmu_object_info_t doi; dmu_object_info_from_db(db, &doi); - ASSERT(dmu_ot[doi.doi_type].ot_byteswap == zap_byteswap); + ASSERT3U(DMU_OT_BYTESWAP(doi.doi_type), ==, DMU_BSWAP_ZAP); } #endif @@ -596,7 +596,7 @@ mzap_create_impl(objset_t *os, uint64_t obj, int normflags, zap_flags_t flags, { dmu_object_info_t doi; dmu_object_info_from_db(db, &doi); - ASSERT(dmu_ot[doi.doi_type].ot_byteswap == zap_byteswap); + ASSERT3U(DMU_OT_BYTESWAP(doi.doi_type), ==, DMU_BSWAP_ZAP); } #endif diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfeature.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfeature.c new file mode 100644 index 000000000000..ba722088a40f --- /dev/null +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfeature.c @@ -0,0 +1,414 @@ +/* + * CDDL HEADER START + * + * The contents of this file are subject to the terms of the + * Common Development and Distribution License (the "License"). + * You may not use this file except in compliance with the License. + * + * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE + * or http://www.opensolaris.org/os/licensing. + * See the License for the specific language governing permissions + * and limitations under the License. + * + * When distributing Covered Code, include this CDDL HEADER in each + * file and include the License file at usr/src/OPENSOLARIS.LICENSE. + * If applicable, add the following below this CDDL HEADER, with the + * fields enclosed by brackets "[]" replaced with your own identifying + * information: Portions Copyright [yyyy] [name of copyright owner] + * + * CDDL HEADER END + */ + +/* + * Copyright (c) 2012 by Delphix. All rights reserved. + */ + +#include +#include +#include +#include +#include +#include +#include "zfeature_common.h" +#include + +/* + * ZFS Feature Flags + * ----------------- + * + * ZFS feature flags are used to provide fine-grained versioning to the ZFS + * on-disk format. Once enabled on a pool feature flags replace the old + * spa_version() number. + * + * Each new on-disk format change will be given a uniquely identifying string + * guid rather than a version number. This avoids the problem of different + * organizations creating new on-disk formats with the same version number. To + * keep feature guids unique they should consist of the reverse dns name of the + * organization which implemented the feature and a short name for the feature, + * separated by a colon (e.g. com.delphix:async_destroy). + * + * Reference Counts + * ---------------- + * + * Within each pool features can be in one of three states: disabled, enabled, + * or active. These states are differentiated by a reference count stored on + * disk for each feature: + * + * 1) If there is no reference count stored on disk the feature is disabled. + * 2) If the reference count is 0 a system administrator has enabled the + * feature, but the feature has not been used yet, so no on-disk + * format changes have been made. + * 3) If the reference count is greater than 0 the feature is active. + * The format changes required by the feature are currently on disk. + * Note that if the feature's format changes are reversed the feature + * may choose to set its reference count back to 0. + * + * Feature flags makes no differentiation between non-zero reference counts + * for an active feature (e.g. a reference count of 1 means the same thing as a + * reference count of 27834721), but feature implementations may choose to use + * the reference count to store meaningful information. For example, a new RAID + * implementation might set the reference count to the number of vdevs using + * it. If all those disks are removed from the pool the feature goes back to + * having a reference count of 0. + * + * It is the responsibility of the individual features to maintain a non-zero + * reference count as long as the feature's format changes are present on disk. + * + * Dependencies + * ------------ + * + * Each feature may depend on other features. The only effect of this + * relationship is that when a feature is enabled all of its dependencies are + * automatically enabled as well. Any future work to support disabling of + * features would need to ensure that features cannot be disabled if other + * enabled features depend on them. + * + * On-disk Format + * -------------- + * + * When feature flags are enabled spa_version() is set to SPA_VERSION_FEATURES + * (5000). In order for this to work the pool is automatically upgraded to + * SPA_VERSION_BEFORE_FEATURES (28) first, so all pre-feature flags on disk + * format changes will be in use. + * + * Information about features is stored in 3 ZAP objects in the pool's MOS. + * These objects are linked to by the following names in the pool directory + * object: + * + * 1) features_for_read: feature guid -> reference count + * Features needed to open the pool for reading. + * 2) features_for_write: feature guid -> reference count + * Features needed to open the pool for writing. + * 3) feature_descriptions: feature guid -> descriptive string + * A human readable string. + * + * All enabled features appear in either features_for_read or + * features_for_write, but not both. + * + * To open a pool in read-only mode only the features listed in + * features_for_read need to be supported. + * + * To open the pool in read-write mode features in both features_for_read and + * features_for_write need to be supported. + * + * Some features may be required to read the ZAP objects containing feature + * information. To allow software to check for compatibility with these features + * before the pool is opened their names must be stored in the label in a + * new "features_for_read" entry (note that features that are only required + * to write to a pool never need to be stored in the label since the + * features_for_write ZAP object can be read before the pool is written to). + * To save space in the label features must be explicitly marked as needing to + * be written to the label. Also, reference counts are not stored in the label, + * instead any feature whose reference count drops to 0 is removed from the + * label. + * + * Adding New Features + * ------------------- + * + * Features must be registered in zpool_feature_init() function in + * zfeature_common.c using the zfeature_register() function. This function + * has arguments to specify if the feature should be stored in the + * features_for_read or features_for_write ZAP object and if it needs to be + * written to the label when active. + * + * Once a feature is registered it will appear as a "feature@" + * property which can be set by an administrator. Feature implementors should + * use the spa_feature_is_enabled() and spa_feature_is_active() functions to + * query the state of a feature and the spa_feature_incr() and + * spa_feature_decr() functions to change an enabled feature's reference count. + * Reference counts may only be updated in the syncing context. + * + * Features may not perform enable-time initialization. Instead, any such + * initialization should occur when the feature is first used. This design + * enforces that on-disk changes be made only when features are used. Code + * should only check if a feature is enabled using spa_feature_is_enabled(), + * not by relying on any feature specific metadata existing. If a feature is + * enabled, but the feature's metadata is not on disk yet then it should be + * created as needed. + * + * As an example, consider the com.delphix:async_destroy feature. This feature + * relies on the existence of a bptree in the MOS that store blocks for + * asynchronous freeing. This bptree is not created when async_destroy is + * enabled. Instead, when a dataset is destroyed spa_feature_is_enabled() is + * called to check if async_destroy is enabled. If it is and the bptree object + * does not exist yet, the bptree object is created as part of the dataset + * destroy and async_destroy's reference count is incremented to indicate it + * has made an on-disk format change. Later, after the destroyed dataset's + * blocks have all been asynchronously freed there is no longer any use for the + * bptree object, so it is destroyed and async_destroy's reference count is + * decremented back to 0 to indicate that it has undone its on-disk format + * changes. + */ + +typedef enum { + FEATURE_ACTION_ENABLE, + FEATURE_ACTION_INCR, + FEATURE_ACTION_DECR, +} feature_action_t; + +/* + * Checks that the features active in the specified object are supported by + * this software. Adds each unsupported feature (name -> description) to + * the supplied nvlist. + */ +boolean_t +feature_is_supported(objset_t *os, uint64_t obj, uint64_t desc_obj, + nvlist_t *unsup_feat) +{ + boolean_t supported; + zap_cursor_t zc; + zap_attribute_t za; + + supported = B_TRUE; + for (zap_cursor_init(&zc, os, obj); + zap_cursor_retrieve(&zc, &za) == 0; + zap_cursor_advance(&zc)) { + ASSERT(za.za_integer_length == sizeof (uint64_t) && + za.za_num_integers == 1); + + if (za.za_first_integer != 0 && + !zfeature_is_supported(za.za_name)) { + supported = B_FALSE; + + if (unsup_feat != NULL) { + char *desc = ""; + char buf[MAXPATHLEN]; + + if (zap_lookup(os, desc_obj, za.za_name, + 1, sizeof (buf), buf) == 0) + desc = buf; + + VERIFY(nvlist_add_string(unsup_feat, za.za_name, + desc) == 0); + } + } + } + zap_cursor_fini(&zc); + + return (supported); +} + +static int +feature_get_refcount(objset_t *os, uint64_t read_obj, uint64_t write_obj, + zfeature_info_t *feature, uint64_t *res) +{ + int err; + uint64_t refcount; + uint64_t zapobj = feature->fi_can_readonly ? write_obj : read_obj; + + ASSERT(0 != zapobj); + + err = zap_lookup(os, zapobj, feature->fi_guid, sizeof (uint64_t), 1, + &refcount); + if (err != 0) { + if (err == ENOENT) + return (ENOTSUP); + else + return (err); + } + *res = refcount; + return (0); +} + +static int +feature_do_action(objset_t *os, uint64_t read_obj, uint64_t write_obj, + uint64_t desc_obj, zfeature_info_t *feature, feature_action_t action, + dmu_tx_t *tx) +{ + int error; + uint64_t refcount; + uint64_t zapobj = feature->fi_can_readonly ? write_obj : read_obj; + + ASSERT(0 != zapobj); + ASSERT(zfeature_is_valid_guid(feature->fi_guid)); + + error = zap_lookup(os, zapobj, feature->fi_guid, + sizeof (uint64_t), 1, &refcount); + + /* + * If we can't ascertain the status of the specified feature, an I/O + * error occurred. + */ + if (error != 0 && error != ENOENT) + return (error); + + switch (action) { + case FEATURE_ACTION_ENABLE: + /* + * If the feature is already enabled, ignore the request. + */ + if (error == 0) + return (0); + refcount = 0; + break; + case FEATURE_ACTION_INCR: + if (error == ENOENT) + return (ENOTSUP); + if (refcount == UINT64_MAX) + return (EOVERFLOW); + refcount++; + break; + case FEATURE_ACTION_DECR: + if (error == ENOENT) + return (ENOTSUP); + if (refcount == 0) + return (EOVERFLOW); + refcount--; + break; + default: + ASSERT(0); + break; + } + + if (action == FEATURE_ACTION_ENABLE) { + int i; + + for (i = 0; feature->fi_depends[i] != NULL; i++) { + zfeature_info_t *dep = feature->fi_depends[i]; + + error = feature_do_action(os, read_obj, write_obj, + desc_obj, dep, FEATURE_ACTION_ENABLE, tx); + if (error != 0) + return (error); + } + } + + error = zap_update(os, zapobj, feature->fi_guid, + sizeof (uint64_t), 1, &refcount, tx); + if (error != 0) + return (error); + + if (action == FEATURE_ACTION_ENABLE) { + error = zap_update(os, desc_obj, + feature->fi_guid, 1, strlen(feature->fi_desc) + 1, + feature->fi_desc, tx); + if (error != 0) + return (error); + } + + if (action == FEATURE_ACTION_INCR && refcount == 1 && feature->fi_mos) { + spa_activate_mos_feature(dmu_objset_spa(os), feature->fi_guid); + } + + if (action == FEATURE_ACTION_DECR && refcount == 0) { + spa_deactivate_mos_feature(dmu_objset_spa(os), + feature->fi_guid); + } + + return (0); +} + +void +spa_feature_create_zap_objects(spa_t *spa, dmu_tx_t *tx) +{ + /* + * We create feature flags ZAP objects in two instances: during pool + * creation and during pool upgrade. + */ + ASSERT(dsl_pool_sync_context(spa_get_dsl(spa)) || (!spa->spa_sync_on && + tx->tx_txg == TXG_INITIAL)); + + spa->spa_feat_for_read_obj = zap_create_link(spa->spa_meta_objset, + DMU_OTN_ZAP_METADATA, DMU_POOL_DIRECTORY_OBJECT, + DMU_POOL_FEATURES_FOR_READ, tx); + spa->spa_feat_for_write_obj = zap_create_link(spa->spa_meta_objset, + DMU_OTN_ZAP_METADATA, DMU_POOL_DIRECTORY_OBJECT, + DMU_POOL_FEATURES_FOR_WRITE, tx); + spa->spa_feat_desc_obj = zap_create_link(spa->spa_meta_objset, + DMU_OTN_ZAP_METADATA, DMU_POOL_DIRECTORY_OBJECT, + DMU_POOL_FEATURE_DESCRIPTIONS, tx); +} + +/* + * Enable any required dependencies, then enable the requested feature. + */ +void +spa_feature_enable(spa_t *spa, zfeature_info_t *feature, dmu_tx_t *tx) +{ + ASSERT3U(spa_version(spa), >=, SPA_VERSION_FEATURES); + VERIFY3U(0, ==, feature_do_action(spa->spa_meta_objset, + spa->spa_feat_for_read_obj, spa->spa_feat_for_write_obj, + spa->spa_feat_desc_obj, feature, FEATURE_ACTION_ENABLE, tx)); +} + +/* + * If the specified feature has not yet been enabled, this function returns + * ENOTSUP; otherwise, this function increments the feature's refcount (or + * returns EOVERFLOW if the refcount cannot be incremented). This function must + * be called from syncing context. + */ +void +spa_feature_incr(spa_t *spa, zfeature_info_t *feature, dmu_tx_t *tx) +{ + ASSERT3U(spa_version(spa), >=, SPA_VERSION_FEATURES); + VERIFY3U(0, ==, feature_do_action(spa->spa_meta_objset, + spa->spa_feat_for_read_obj, spa->spa_feat_for_write_obj, + spa->spa_feat_desc_obj, feature, FEATURE_ACTION_INCR, tx)); +} + +/* + * If the specified feature has not yet been enabled, this function returns + * ENOTSUP; otherwise, this function decrements the feature's refcount (or + * returns EOVERFLOW if the refcount is already 0). This function must + * be called from syncing context. + */ +void +spa_feature_decr(spa_t *spa, zfeature_info_t *feature, dmu_tx_t *tx) +{ + ASSERT3U(spa_version(spa), >=, SPA_VERSION_FEATURES); + VERIFY3U(0, ==, feature_do_action(spa->spa_meta_objset, + spa->spa_feat_for_read_obj, spa->spa_feat_for_write_obj, + spa->spa_feat_desc_obj, feature, FEATURE_ACTION_DECR, tx)); +} + +boolean_t +spa_feature_is_enabled(spa_t *spa, zfeature_info_t *feature) +{ + int err; + uint64_t refcount; + + if (spa_version(spa) < SPA_VERSION_FEATURES) + return (B_FALSE); + + err = feature_get_refcount(spa->spa_meta_objset, + spa->spa_feat_for_read_obj, spa->spa_feat_for_write_obj, + feature, &refcount); + ASSERT(err == 0 || err == ENOTSUP); + return (err == 0); +} + +boolean_t +spa_feature_is_active(spa_t *spa, zfeature_info_t *feature) +{ + int err; + uint64_t refcount; + + if (spa_version(spa) < SPA_VERSION_FEATURES) + return (B_FALSE); + + err = feature_get_refcount(spa->spa_meta_objset, + spa->spa_feat_for_read_obj, spa->spa_feat_for_write_obj, + feature, &refcount); + ASSERT(err == 0 || err == ENOTSUP); + return (err == 0 && refcount > 0); +} diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c index 7c75aca5f2bc..73a4f7524292 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c @@ -18,6 +18,7 @@ * * CDDL HEADER END */ + /* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2011-2012 Pawel Jakub Dawidek . @@ -1157,6 +1158,8 @@ getzfsvfs(const char *dsname, zfsvfs_t **zfvp) /* * Find a zfsvfs_t for a mounted filesystem, or create our own, in which * case its z_vfs will be NULL, and it will be opened as the owner. + * If 'writer' is set, the z_teardown_lock will be held for RW_WRITER, + * which prevents all vnode ops from running. */ static int zfsvfs_hold(const char *name, void *tag, zfsvfs_t **zfvp, boolean_t writer) @@ -1220,7 +1223,7 @@ zfs_ioc_pool_create(zfs_cmd_t *zc) (void) nvlist_lookup_uint64(props, zpool_prop_to_name(ZPOOL_PROP_VERSION), &version); - if (version < SPA_VERSION_INITIAL || version > SPA_VERSION) { + if (!SPA_VERSION_IS_SUPPORTED(version)) { error = EINVAL; goto pool_props_bad; } @@ -1344,6 +1347,15 @@ zfs_ioc_pool_configs(zfs_cmd_t *zc) return (error); } +/* + * inputs: + * zc_name name of the pool + * + * outputs: + * zc_cookie real errno + * zc_nvlist_dst config nvlist + * zc_nvlist_dst_size size of config nvlist + */ static int zfs_ioc_pool_stats(zfs_cmd_t *zc) { @@ -1445,7 +1457,8 @@ zfs_ioc_pool_upgrade(zfs_cmd_t *zc) if ((error = spa_open(zc->zc_name, &spa, FTAG)) != 0) return (error); - if (zc->zc_cookie < spa_version(spa) || zc->zc_cookie > SPA_VERSION) { + if (zc->zc_cookie < spa_version(spa) || + !SPA_VERSION_IS_SUPPORTED(zc->zc_cookie)) { spa_close(spa, FTAG); return (EINVAL); } @@ -5452,7 +5465,7 @@ zfs_modevent(module_t mod, int type, void *unused __unused) tsd_create(&zfs_fsyncer_key, NULL); tsd_create(&rrw_tsd_key, NULL); - printf("ZFS storage pool version " SPA_VERSION_STRING "\n"); + printf("ZFS storage pool version: features support (" SPA_VERSION_STRING ")\n"); root_mount_rel(zfs_root_token); zfsdev_init(); diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c index 467b6a64e5e8..01eddbd0e878 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c @@ -2278,7 +2278,7 @@ void zfs_init(void) { - printf("ZFS filesystem version " ZPL_VERSION_STRING "\n"); + printf("ZFS filesystem version: " ZPL_VERSION_STRING "\n"); /* * Initialize .zfs directory structures diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c index 694302e6f197..ca402f6dc06c 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c @@ -640,7 +640,7 @@ zio_write(zio_t *pio, spa_t *spa, uint64_t txg, blkptr_t *bp, zp->zp_checksum < ZIO_CHECKSUM_FUNCTIONS && zp->zp_compress >= ZIO_COMPRESS_OFF && zp->zp_compress < ZIO_COMPRESS_FUNCTIONS && - zp->zp_type < DMU_OT_NUMTYPES && + DMU_OT_IS_VALID(zp->zp_type) && zp->zp_level < 32 && zp->zp_copies > 0 && zp->zp_copies <= spa_max_replication(spa) && @@ -924,7 +924,7 @@ zio_read_bp_init(zio_t *zio) zio_push_transform(zio, cbuf, psize, psize, zio_decompress); } - if (!dmu_ot[BP_GET_TYPE(bp)].ot_metadata && BP_GET_LEVEL(bp) == 0) + if (!DMU_OT_IS_METADATA(BP_GET_TYPE(bp)) && BP_GET_LEVEL(bp) == 0) zio->io_flags |= ZIO_FLAG_DONT_CACHE; if (BP_GET_TYPE(bp) == DMU_OT_DDT_ZAP) @@ -3015,3 +3015,45 @@ static zio_pipe_stage_t *zio_pipeline[] = { zio_checksum_verify, zio_done }; + +/* dnp is the dnode for zb1->zb_object */ +boolean_t +zbookmark_is_before(const dnode_phys_t *dnp, const zbookmark_t *zb1, + const zbookmark_t *zb2) +{ + uint64_t zb1nextL0, zb2thisobj; + + ASSERT(zb1->zb_objset == zb2->zb_objset); + ASSERT(zb2->zb_level == 0); + + /* + * A bookmark in the deadlist is considered to be after + * everything else. + */ + if (zb2->zb_object == DMU_DEADLIST_OBJECT) + return (B_TRUE); + + /* The objset_phys_t isn't before anything. */ + if (dnp == NULL) + return (B_FALSE); + + zb1nextL0 = (zb1->zb_blkid + 1) << + ((zb1->zb_level) * (dnp->dn_indblkshift - SPA_BLKPTRSHIFT)); + + zb2thisobj = zb2->zb_object ? zb2->zb_object : + zb2->zb_blkid << (DNODE_BLOCK_SHIFT - DNODE_SHIFT); + + if (zb1->zb_object == DMU_META_DNODE_OBJECT) { + uint64_t nextobj = zb1nextL0 * + (dnp->dn_datablkszsec << SPA_MINBLOCKSHIFT) >> DNODE_SHIFT; + return (nextobj <= zb2thisobj); + } + + if (zb1->zb_object < zb2thisobj) + return (B_TRUE); + if (zb1->zb_object > zb2thisobj) + return (B_FALSE); + if (zb2->zb_object == DMU_META_DNODE_OBJECT) + return (B_FALSE); + return (zb1nextL0 <= zb2->zb_blkid); +} diff --git a/sys/cddl/contrib/opensolaris/uts/common/sys/fs/zfs.h b/sys/cddl/contrib/opensolaris/uts/common/sys/fs/zfs.h index 1b23dc2be25a..f2d996ac9187 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/sys/fs/zfs.h +++ b/sys/cddl/contrib/opensolaris/uts/common/sys/fs/zfs.h @@ -172,6 +172,7 @@ typedef enum { ZPOOL_PROP_READONLY, ZPOOL_PROP_COMMENT, ZPOOL_PROP_EXPANDSZ, + ZPOOL_PROP_FREEING, ZPOOL_NUM_PROPS } zpool_prop_t; @@ -245,6 +246,8 @@ const char *zpool_prop_to_name(zpool_prop_t); const char *zpool_prop_default_string(zpool_prop_t); uint64_t zpool_prop_default_numeric(zpool_prop_t); boolean_t zpool_prop_readonly(zpool_prop_t); +boolean_t zpool_prop_feature(const char *); +boolean_t zpool_prop_unsupported(const char *name); int zpool_prop_index_to_string(zpool_prop_t, uint64_t, const char **); int zpool_prop_string_to_index(zpool_prop_t, const char *, uint64_t *); uint64_t zpool_prop_random_value(zpool_prop_t, uint64_t seed); @@ -352,6 +355,7 @@ typedef enum { #define SPA_VERSION_26 26ULL #define SPA_VERSION_27 27ULL #define SPA_VERSION_28 28ULL +#define SPA_VERSION_5000 5000ULL /* * When bumping up SPA_VERSION, make sure GRUB ZFS understands the on-disk @@ -359,8 +363,8 @@ typedef enum { * and do the appropriate changes. Also bump the version number in * usr/src/grub/capability. */ -#define SPA_VERSION SPA_VERSION_28 -#define SPA_VERSION_STRING "28" +#define SPA_VERSION SPA_VERSION_5000 +#define SPA_VERSION_STRING "5000" /* * Symbolic names for the changes that caused a SPA_VERSION switch. @@ -411,6 +415,12 @@ typedef enum { #define SPA_VERSION_DEADLISTS SPA_VERSION_26 #define SPA_VERSION_FAST_SNAP SPA_VERSION_27 #define SPA_VERSION_MULTI_REPLACE SPA_VERSION_28 +#define SPA_VERSION_BEFORE_FEATURES SPA_VERSION_28 +#define SPA_VERSION_FEATURES SPA_VERSION_5000 + +#define SPA_VERSION_IS_SUPPORTED(v) \ + (((v) >= SPA_VERSION_INITIAL && (v) <= SPA_VERSION_BEFORE_FEATURES) || \ + ((v) >= SPA_VERSION_FEATURES && (v) <= SPA_VERSION)) /* * ZPL version - rev'd whenever an incompatible on-disk format change @@ -508,6 +518,11 @@ typedef struct zpool_rewind_policy { #define ZPOOL_CONFIG_BOOTFS "bootfs" /* not stored on disk */ #define ZPOOL_CONFIG_MISSING_DEVICES "missing_vdevs" /* not stored on disk */ #define ZPOOL_CONFIG_LOAD_INFO "load_info" /* not stored on disk */ +#define ZPOOL_CONFIG_REWIND_INFO "rewind_info" /* not stored on disk */ +#define ZPOOL_CONFIG_UNSUP_FEAT "unsup_feat" /* not stored on disk */ +#define ZPOOL_CONFIG_CAN_RDONLY "can_rdonly" /* not stored on disk */ +#define ZPOOL_CONFIG_FEATURES_FOR_READ "features_for_read" +#define ZPOOL_CONFIG_FEATURE_STATS "feature_stats" /* not stored on disk */ /* * The persistent vdev state is stored as separate values rather than a single * 'vdev_state' entry. This is because a device can be in multiple states, such @@ -586,6 +601,7 @@ typedef enum vdev_aux { VDEV_AUX_BAD_LABEL, /* the label is OK but invalid */ VDEV_AUX_VERSION_NEWER, /* on-disk version is too new */ VDEV_AUX_VERSION_OLDER, /* on-disk version is too old */ + VDEV_AUX_UNSUP_FEAT, /* unsupported features */ VDEV_AUX_SPARED, /* hot spare used in another pool */ VDEV_AUX_ERR_EXCEEDED, /* too many errors */ VDEV_AUX_IO_FAILURE, /* experienced I/O failure */ diff --git a/sys/cddl/contrib/opensolaris/uts/common/sys/nvpair.h b/sys/cddl/contrib/opensolaris/uts/common/sys/nvpair.h index abf84cf593e9..3062dd95aec4 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/sys/nvpair.h +++ b/sys/cddl/contrib/opensolaris/uts/common/sys/nvpair.h @@ -20,6 +20,7 @@ */ /* * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012 by Delphix. All rights reserved. */ #ifndef _SYS_NVPAIR_H @@ -274,6 +275,73 @@ int nvpair_value_hrtime(nvpair_t *, hrtime_t *); int nvpair_value_double(nvpair_t *, double *); #endif +nvlist_t *fnvlist_alloc(void); +void fnvlist_free(nvlist_t *); +size_t fnvlist_size(nvlist_t *); +char *fnvlist_pack(nvlist_t *, size_t *); +void fnvlist_pack_free(char *, size_t); +nvlist_t *fnvlist_unpack(char *, size_t); +nvlist_t *fnvlist_dup(nvlist_t *); +void fnvlist_merge(nvlist_t *, nvlist_t *); + +void fnvlist_add_boolean(nvlist_t *, const char *); +void fnvlist_add_boolean_value(nvlist_t *, const char *, boolean_t); +void fnvlist_add_byte(nvlist_t *, const char *, uchar_t); +void fnvlist_add_int8(nvlist_t *, const char *, int8_t); +void fnvlist_add_uint8(nvlist_t *, const char *, uint8_t); +void fnvlist_add_int16(nvlist_t *, const char *, int16_t); +void fnvlist_add_uint16(nvlist_t *, const char *, uint16_t); +void fnvlist_add_int32(nvlist_t *, const char *, int32_t); +void fnvlist_add_uint32(nvlist_t *, const char *, uint32_t); +void fnvlist_add_int64(nvlist_t *, const char *, int64_t); +void fnvlist_add_uint64(nvlist_t *, const char *, uint64_t); +void fnvlist_add_string(nvlist_t *, const char *, const char *); +void fnvlist_add_nvlist(nvlist_t *, const char *, nvlist_t *); +void fnvlist_add_nvpair(nvlist_t *, nvpair_t *); +void fnvlist_add_boolean_array(nvlist_t *, const char *, boolean_t *, uint_t); +void fnvlist_add_byte_array(nvlist_t *, const char *, uchar_t *, uint_t); +void fnvlist_add_int8_array(nvlist_t *, const char *, int8_t *, uint_t); +void fnvlist_add_uint8_array(nvlist_t *, const char *, uint8_t *, uint_t); +void fnvlist_add_int16_array(nvlist_t *, const char *, int16_t *, uint_t); +void fnvlist_add_uint16_array(nvlist_t *, const char *, uint16_t *, uint_t); +void fnvlist_add_int32_array(nvlist_t *, const char *, int32_t *, uint_t); +void fnvlist_add_uint32_array(nvlist_t *, const char *, uint32_t *, uint_t); +void fnvlist_add_int64_array(nvlist_t *, const char *, int64_t *, uint_t); +void fnvlist_add_uint64_array(nvlist_t *, const char *, uint64_t *, uint_t); +void fnvlist_add_string_array(nvlist_t *, const char *, char * const *, uint_t); +void fnvlist_add_nvlist_array(nvlist_t *, const char *, nvlist_t **, uint_t); + +void fnvlist_remove(nvlist_t *, const char *); +void fnvlist_remove_nvpair(nvlist_t *, nvpair_t *); + +nvpair_t *fnvlist_lookup_nvpair(nvlist_t *nvl, const char *name); +boolean_t fnvlist_lookup_boolean(nvlist_t *nvl, const char *name); +boolean_t fnvlist_lookup_boolean_value(nvlist_t *nvl, const char *name); +uchar_t fnvlist_lookup_byte(nvlist_t *nvl, const char *name); +int8_t fnvlist_lookup_int8(nvlist_t *nvl, const char *name); +int16_t fnvlist_lookup_int16(nvlist_t *nvl, const char *name); +int32_t fnvlist_lookup_int32(nvlist_t *nvl, const char *name); +int64_t fnvlist_lookup_int64(nvlist_t *nvl, const char *name); +uint8_t fnvlist_lookup_uint8_t(nvlist_t *nvl, const char *name); +uint16_t fnvlist_lookup_uint16(nvlist_t *nvl, const char *name); +uint32_t fnvlist_lookup_uint32(nvlist_t *nvl, const char *name); +uint64_t fnvlist_lookup_uint64(nvlist_t *nvl, const char *name); +char *fnvlist_lookup_string(nvlist_t *nvl, const char *name); +nvlist_t *fnvlist_lookup_nvlist(nvlist_t *nvl, const char *name); + +boolean_t fnvpair_value_boolean_value(nvpair_t *nvp); +uchar_t fnvpair_value_byte(nvpair_t *nvp); +int8_t fnvpair_value_int8(nvpair_t *nvp); +int16_t fnvpair_value_int16(nvpair_t *nvp); +int32_t fnvpair_value_int32(nvpair_t *nvp); +int64_t fnvpair_value_int64(nvpair_t *nvp); +uint8_t fnvpair_value_uint8_t(nvpair_t *nvp); +uint16_t fnvpair_value_uint16(nvpair_t *nvp); +uint32_t fnvpair_value_uint32(nvpair_t *nvp); +uint64_t fnvpair_value_uint64(nvpair_t *nvp); +char *fnvpair_value_string(nvpair_t *nvp); +nvlist_t *fnvpair_value_nvlist(nvpair_t *nvp); + #ifdef __cplusplus } #endif diff --git a/sys/modules/zfs/Makefile b/sys/modules/zfs/Makefile index 122ce446c8e2..002392a570d6 100644 --- a/sys/modules/zfs/Makefile +++ b/sys/modules/zfs/Makefile @@ -13,6 +13,7 @@ SRCS+= avl.c .PATH: ${SUNW}/common/nvpair SRCS+= nvpair.c SRCS+= nvpair_alloc_fixed.c +SRCS+= fnvpair.c .PATH: ${.CURDIR}/../../cddl/contrib/opensolaris/common/unicode SRCS+= u8_textprep.c From c7c073413bf3b7208783e81831bf5619fcd5df14 Mon Sep 17 00:00:00 2001 From: Adrian Chadd Date: Mon, 11 Jun 2012 12:26:23 +0000 Subject: [PATCH 121/340] Fix uninitialised reference. Noticed by: John Hay --- sys/dev/ath/if_ath_tx.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/dev/ath/if_ath_tx.c b/sys/dev/ath/if_ath_tx.c index cae07b513526..677288edaef1 100644 --- a/sys/dev/ath/if_ath_tx.c +++ b/sys/dev/ath/if_ath_tx.c @@ -2043,6 +2043,8 @@ ath_tx_addto_baw(struct ath_softc *sc, struct ath_node *an, if (bf->bf_state.bfs_isretried) return; + tap = ath_tx_get_tx_tid(an, tid->tid); + if (! bf->bf_state.bfs_dobaw) { device_printf(sc->sc_dev, "%s: dobaw=0, seqno=%d, window %d:%d\n", @@ -2052,8 +2054,6 @@ ath_tx_addto_baw(struct ath_softc *sc, struct ath_node *an, tap->txa_wnd); } - tap = ath_tx_get_tx_tid(an, tid->tid); - if (bf->bf_state.bfs_addedbaw) device_printf(sc->sc_dev, "%s: re-added? tid=%d, seqno %d; window %d:%d; " From 1967332863ed4332f3f13f6a277e632214924027 Mon Sep 17 00:00:00 2001 From: David Chisnall Date: Mon, 11 Jun 2012 14:02:02 +0000 Subject: [PATCH 122/340] Fix a leak when setting the global character locale to "C" from something else. Reported by: mm --- lib/libc/locale/setrunelocale.c | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/lib/libc/locale/setrunelocale.c b/lib/libc/locale/setrunelocale.c index bc04e9e4798b..f036bbcba883 100644 --- a/lib/libc/locale/setrunelocale.c +++ b/lib/libc/locale/setrunelocale.c @@ -89,6 +89,17 @@ const _RuneLocale *__getCurrentRuneLocale(void) return XLOCALE_CTYPE(__get_locale())->runes; } +static void free_runes(_RuneLocale *rl) +{ + /* FIXME: The "EUC" check here is a hideous abstraction violation. */ + if ((rl != &_DefaultRuneLocale) && (rl)) { + if (strcmp(rl->__encoding, "EUC") == 0) { + free(rl->__variable); + } + free(rl); + } +} + static int __setrunelocale(struct xlocale_ctype *l, const char *encoding) { @@ -102,6 +113,7 @@ __setrunelocale(struct xlocale_ctype *l, const char *encoding) * The "C" and "POSIX" locale are always here. */ if (strcmp(encoding, "C") == 0 || strcmp(encoding, "POSIX") == 0) { + free_runes(saved.runes); (void) _none_init(l, (_RuneLocale*)&_DefaultRuneLocale); return (0); } @@ -153,13 +165,7 @@ __setrunelocale(struct xlocale_ctype *l, const char *encoding) if (ret == 0) { /* Free the old runes if it exists. */ - /* FIXME: The "EUC" check here is a hideous abstraction violation. */ - if ((saved.runes != &_DefaultRuneLocale) && (saved.runes)) { - if (strcmp(saved.runes->__encoding, "EUC") == 0) { - free(saved.runes->__variable); - } - free(saved.runes); - } + free_runes(saved.runes); } else { /* Restore the saved version if this failed. */ memcpy(l, &saved, sizeof(struct xlocale_ctype)); From fe132392879721115289dcfdcbd5fbee59da35b4 Mon Sep 17 00:00:00 2001 From: David Chisnall Date: Mon, 11 Jun 2012 15:40:57 +0000 Subject: [PATCH 123/340] Clean up some symbol versions for libsupc++ / libcxxrt. MFC after: 1 week Reviewed by: kan --- gnu/lib/libsupc++/Version.map | 22 +++++++++------------- lib/libcxxrt/Version.map | 18 +++++++++++++----- 2 files changed, 22 insertions(+), 18 deletions(-) diff --git a/gnu/lib/libsupc++/Version.map b/gnu/lib/libsupc++/Version.map index 3d9cdf2634e0..ec6303ef78ec 100644 --- a/gnu/lib/libsupc++/Version.map +++ b/gnu/lib/libsupc++/Version.map @@ -126,26 +126,22 @@ CXXABI_1.3 { # __gnu_cxx::_verbose_terminate_handler() _ZN9__gnu_cxx27__verbose_terminate_handlerEv; - # operator new and new[], 32-bit size_t - _Znaj; - _ZnajRKSt9nothrow_t; - _Znwj; - _ZnwjRKSt9nothrow_t; + local: + *; +}; - # operator new and new[], 64-bit size_t - _Znam; - _ZnamRKSt9nothrow_t; - _Znwm; - _ZnwmRKSt9nothrow_t; +GLIBCXX_3.4 { + # operator new and new[] + _Znai[jm]; + _Zna[jm]RKSt9nothrow_t; + _Znw[jm]; + _Znw[jm]RKSt9nothrow_t; # operator delete and delete[] _ZdaPv; _ZdaPvRKSt9nothrow_t; _ZdlPv; _ZdlPvRKSt9nothrow_t; - - local: - *; }; CXXABI_1.3.1 { diff --git a/lib/libcxxrt/Version.map b/lib/libcxxrt/Version.map index b5be60e5ac21..ca990a0dddea 100644 --- a/lib/libcxxrt/Version.map +++ b/lib/libcxxrt/Version.map @@ -306,11 +306,6 @@ CXXRT_1.0 { "std::type_info::__is_pointer_p() const"; - "operator delete[](void*)"; - "operator delete(void*)"; - "operator new[](unsigned long)"; - "operator new(unsigned long)"; - "operator new(unsigned long, std::nothrow_t const&)"; }; __cxa_allocate_dependent_exception; @@ -321,3 +316,16 @@ CXXRT_1.0 { __cxa_rethrow_primary_exception; } CXXABI_1.3.1; + +GLIBCXX_3.4 { + extern "C++" { + "operator delete[](void*)"; + "operator delete(void*)"; + "operator new[](unsigned int)"; + "operator new(unsigned int)"; + "operator new(unsigned int, std::nothrow_t const&)"; + "operator new[](unsigned long)"; + "operator new(unsigned long)"; + "operator new(unsigned long, std::nothrow_t const&)"; + }; +}; From f3cd9805578dfc5365d5d51f40f0533fb82ab14d Mon Sep 17 00:00:00 2001 From: Pawel Jakub Dawidek Date: Mon, 11 Jun 2012 16:08:03 +0000 Subject: [PATCH 124/340] Style fixes and simplifications. MFC after: 1 month --- sys/kern/uipc_syscalls.c | 11 +++-------- sys/kern/vfs_syscalls.c | 6 ++---- 2 files changed, 5 insertions(+), 12 deletions(-) diff --git a/sys/kern/uipc_syscalls.c b/sys/kern/uipc_syscalls.c index 719d298cc568..00f45e0877a8 100644 --- a/sys/kern/uipc_syscalls.c +++ b/sys/kern/uipc_syscalls.c @@ -134,8 +134,7 @@ getsock_cap(struct filedesc *fdp, int fd, cap_rights_t rights, int error; #endif - fp = NULL; - if ((fdp == NULL) || ((fp = fget_unlocked(fdp, fd)) == NULL)) + if (fdp == NULL || (fp = fget_unlocked(fdp, fd)) == NULL) return (EBADF); #ifdef CAPABILITIES /* @@ -179,7 +178,6 @@ sys_socket(td, uap) int protocol; } */ *uap; { - struct filedesc *fdp; struct socket *so; struct file *fp; int fd, error; @@ -191,7 +189,6 @@ sys_socket(td, uap) if (error) return (error); #endif - fdp = td->td_proc->p_fd; error = falloc(td, &fp, &fd, 0); if (error) return (error); @@ -199,7 +196,7 @@ sys_socket(td, uap) error = socreate(uap->domain, &so, uap->type, uap->protocol, td->td_ucred, td); if (error) { - fdclose(fdp, fp, fd, td); + fdclose(td->td_proc->p_fd, fp, fd, td); } else { finit(fp, FREAD | FWRITE, DTYPE_SOCKET, so, &socketops); td->td_retval[0] = fd; @@ -2313,14 +2310,12 @@ sys_sctp_peeloff(td, uap) } */ *uap; { #if (defined(INET) || defined(INET6)) && defined(SCTP) - struct filedesc *fdp; struct file *nfp = NULL; int error; struct socket *head, *so; int fd; u_int fflag; - fdp = td->td_proc->p_fd; AUDIT_ARG_FD(uap->sd); error = fgetsock(td, uap->sd, CAP_PEELOFF, &head, &fflag); if (error) @@ -2378,7 +2373,7 @@ sys_sctp_peeloff(td, uap) * out from under us. */ if (error) - fdclose(fdp, nfp, fd, td); + fdclose(td->td_proc->p_fd, nfp, fd, td); /* * Release explicitly held references before returning. diff --git a/sys/kern/vfs_syscalls.c b/sys/kern/vfs_syscalls.c index 072ea96ef26e..caf50b9925b3 100644 --- a/sys/kern/vfs_syscalls.c +++ b/sys/kern/vfs_syscalls.c @@ -4337,12 +4337,10 @@ getvnode(struct filedesc *fdp, int fd, cap_rights_t rights, struct file *fp; #ifdef CAPABILITIES struct file *fp_fromcap; -#endif int error; +#endif - error = 0; - fp = NULL; - if ((fdp == NULL) || (fp = fget_unlocked(fdp, fd)) == NULL) + if (fdp == NULL || (fp = fget_unlocked(fdp, fd)) == NULL) return (EBADF); #ifdef CAPABILITIES /* From 7aa2051e40546ca62468971cfff6a15fdc4886f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dag-Erling=20Sm=C3=B8rgrav?= Date: Mon, 11 Jun 2012 16:18:39 +0000 Subject: [PATCH 125/340] None of these programs actually use auth.conf. MFC after: 1 week --- bin/rcp/rcp.1 | 6 ------ libexec/rshd/rshd.8 | 1 - usr.bin/login/login.1 | 2 -- usr.bin/passwd/passwd.1 | 2 -- usr.bin/rlogin/rlogin.1 | 2 -- usr.bin/rsh/rsh.1 | 2 -- 6 files changed, 15 deletions(-) diff --git a/bin/rcp/rcp.1 b/bin/rcp/rcp.1 index f3c3a8edd334..71bdab9887fc 100644 --- a/bin/rcp/rcp.1 +++ b/bin/rcp/rcp.1 @@ -116,17 +116,11 @@ The .Nm utility handles third party copies, where neither source nor target files are on the current machine. -.Sh FILES -.Bl -tag -width ".Pa /etc/auth.conf" -compact -.It Pa /etc/auth.conf -configure authentication services -.El .Sh SEE ALSO .Xr cp 1 , .Xr ftp 1 , .Xr rlogin 1 , .Xr rsh 1 , -.Xr auth.conf 5 , .Xr hosts.equiv 5 .Sh HISTORY The diff --git a/libexec/rshd/rshd.8 b/libexec/rshd/rshd.8 index cd4021a8104e..27f39db078e1 100644 --- a/libexec/rshd/rshd.8 +++ b/libexec/rshd/rshd.8 @@ -237,7 +237,6 @@ and is not preceded by a flag byte. .Xr gethostbyaddr 3 , .Xr rcmd 3 , .Xr ruserok 3 , -.Xr auth.conf 5 , .Xr hosts 5 , .Xr hosts.equiv 5 , .Xr login.conf 5 , diff --git a/usr.bin/login/login.1 b/usr.bin/login/login.1 index d80783db05f7..a1a283a33ff3 100644 --- a/usr.bin/login/login.1 +++ b/usr.bin/login/login.1 @@ -137,8 +137,6 @@ message-of-the-day system mailboxes .It Pa \&.hushlogin makes login quieter -.It Pa /etc/auth.conf -configure authentication services .It Pa /etc/pam.d/login .Xr pam 8 configuration file diff --git a/usr.bin/passwd/passwd.1 b/usr.bin/passwd/passwd.1 index da540cac4a89..dbb5a4d0a45c 100644 --- a/usr.bin/passwd/passwd.1 +++ b/usr.bin/passwd/passwd.1 @@ -221,8 +221,6 @@ a Version 7 format password file temporary copy of the password file .It Pa /etc/login.conf login class capabilities database -.It Pa /etc/auth.conf -configure authentication services .El .Sh SEE ALSO .Xr chpass 1 , diff --git a/usr.bin/rlogin/rlogin.1 b/usr.bin/rlogin/rlogin.1 index f98fa24acbb5..8aea6bd7bdd7 100644 --- a/usr.bin/rlogin/rlogin.1 +++ b/usr.bin/rlogin/rlogin.1 @@ -128,7 +128,6 @@ Determines the user's terminal type. .Bl -tag -width /etc/hosts -compact .It Pa /etc/hosts .It Pa /etc/hosts.equiv -.It Pa /etc/auth.conf .It Ev $HOME Ns Pa /.rhosts .El .Sh SEE ALSO @@ -138,7 +137,6 @@ Determines the user's terminal type. .Xr setsockopt 2 , .Xr ruserok 3 , .Xr tty 4 , -.Xr auth.conf 5 , .Xr hosts 5 , .Xr hosts.equiv 5 , .Xr rlogind 8 , diff --git a/usr.bin/rsh/rsh.1 b/usr.bin/rsh/rsh.1 index 6dbb90e517a2..7cc64d2b571e 100644 --- a/usr.bin/rsh/rsh.1 +++ b/usr.bin/rsh/rsh.1 @@ -125,14 +125,12 @@ to .Sh FILES .Bl -tag -width /etc/hosts -compact .It Pa /etc/hosts -.It Pa /etc/auth.conf .El .Sh SEE ALSO .Xr rlogin 1 , .Xr setsockopt 2 , .Xr rcmd 3 , .Xr ruserok 3 , -.Xr auth.conf 5 , .Xr hosts 5 , .Xr hosts.equiv 5 , .Xr rlogind 8 , From 414d9b2ed09025b379ca492b2449735569ffb28b Mon Sep 17 00:00:00 2001 From: Mateusz Guzik Date: Mon, 11 Jun 2012 17:42:39 +0000 Subject: [PATCH 126/340] Fix unloading of libiconv module. Previously it would either loop infinitely or exit with error leaking a lock. Reported by: Will DeVries Approved by: trasz (mentor) MFC after: 1 week --- sys/libkern/iconv.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/sys/libkern/iconv.c b/sys/libkern/iconv.c index ed928f0f767d..dcdb1192ef32 100644 --- a/sys/libkern/iconv.c +++ b/sys/libkern/iconv.c @@ -84,9 +84,11 @@ iconv_mod_unload(void) struct iconv_cspair *csp; sx_xlock(&iconv_lock); - while ((csp = TAILQ_FIRST(&iconv_cslist)) != NULL) { - if (csp->cp_refcount) + TAILQ_FOREACH(csp, &iconv_cslist, cp_link) { + if (csp->cp_refcount) { + sx_xunlock(&iconv_lock); return EBUSY; + } } while ((csp = TAILQ_FIRST(&iconv_cslist)) != NULL) From c1b0dc80b5cdaf56d1fcf78e7d5464d469a3703c Mon Sep 17 00:00:00 2001 From: Mitsuru IWASAKI Date: Mon, 11 Jun 2012 18:47:26 +0000 Subject: [PATCH 127/340] Another fixe for r236772. - Adjust correct cpuset (stopped_cpus/suspended_cpus) for cpu_spinwait() in generic_stop_cpus(). --- sys/kern/subr_smp.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/sys/kern/subr_smp.c b/sys/kern/subr_smp.c index 8a3219453855..4c73b6101ddb 100644 --- a/sys/kern/subr_smp.c +++ b/sys/kern/subr_smp.c @@ -208,6 +208,7 @@ generic_stop_cpus(cpuset_t map, u_int type) #endif static volatile u_int stopping_cpu = NOCPU; int i; + volatile cpuset_t *cpus; KASSERT( #if defined(__amd64__) || defined(__i386__) @@ -232,8 +233,15 @@ generic_stop_cpus(cpuset_t map, u_int type) /* send the stop IPI to all CPUs in map */ ipi_selected(map, type); +#if defined(__amd64__) || defined(__i386__) + if (type == IPI_SUSPEND) + cpus = &suspended_cpus; + else +#endif + cpus = &stopped_cpus; + i = 0; - while (!CPU_SUBSET(&stopped_cpus, &map)) { + while (!CPU_SUBSET(cpus, &map)) { /* spin */ cpu_spinwait(); i++; From 9ae652f11fdfbcf9773a9c6a0f42ee854c15576c Mon Sep 17 00:00:00 2001 From: Hans Petter Selasky Date: Mon, 11 Jun 2012 19:20:59 +0000 Subject: [PATCH 128/340] Use the correct clock source when computing timeouts. MFC after: 1 week --- sbin/hastd/synch.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbin/hastd/synch.h b/sbin/hastd/synch.h index 36e19278921d..6e4de9dfd0d8 100644 --- a/sbin/hastd/synch.h +++ b/sbin/hastd/synch.h @@ -168,7 +168,7 @@ cv_timedwait(pthread_cond_t *cv, pthread_mutex_t *lock, int timeout) return (false); } - error = clock_gettime(CLOCK_MONOTONIC, &ts); + error = clock_gettime(CLOCK_REALTIME, &ts); PJDLOG_ASSERT(error == 0); ts.tv_sec += timeout; error = pthread_cond_timedwait(cv, lock, &ts); From 8b4079315052296749a854c7cf25ddc7f4030f2e Mon Sep 17 00:00:00 2001 From: Pawel Jakub Dawidek Date: Mon, 11 Jun 2012 19:48:55 +0000 Subject: [PATCH 129/340] Now that fdgrowtable() doesn't drop the filedesc lock we don't need to check if descriptor changed from under us. Replace the check with an assert. Discussed with: kib Tested by: pho MFC after: 1 month --- sys/kern/kern_descrip.c | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c index 6444e5d26463..1fbf3e9d16da 100644 --- a/sys/kern/kern_descrip.c +++ b/sys/kern/kern_descrip.c @@ -871,19 +871,7 @@ do_dup(struct thread *td, int flags, int old, int new, } } - /* - * If the old file changed out from under us then treat it as a - * bad file descriptor. Userland should do its own locking to - * avoid this case. - */ - if (fdp->fd_ofiles[old] != fp) { - /* we've allocated a descriptor which we won't use */ - if (fdp->fd_ofiles[new] == NULL) - fdunused(fdp, new); - FILEDESC_XUNLOCK(fdp); - fdrop(fp, td); - return (EBADF); - } + KASSERT(fp == fdp->fd_ofiles[old], ("old fd has been modified")); KASSERT(old != new, ("new fd is same as old")); /* From d327cee241d405e46c705407ae5bec0468086025 Mon Sep 17 00:00:00 2001 From: Pawel Jakub Dawidek Date: Mon, 11 Jun 2012 19:51:27 +0000 Subject: [PATCH 130/340] Move the code around a bit to move two parts of code duplicated from kern_close() close together. Discussed with: kib Tested by: pho MFC after: 1 month --- sys/kern/kern_descrip.c | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c index 1fbf3e9d16da..65f712456859 100644 --- a/sys/kern/kern_descrip.c +++ b/sys/kern/kern_descrip.c @@ -874,23 +874,7 @@ do_dup(struct thread *td, int flags, int old, int new, KASSERT(fp == fdp->fd_ofiles[old], ("old fd has been modified")); KASSERT(old != new, ("new fd is same as old")); - /* - * Save info on the descriptor being overwritten. We cannot close - * it without introducing an ownership race for the slot, since we - * need to drop the filedesc lock to call closef(). - * - * XXX this duplicates parts of close(). - */ delfp = fdp->fd_ofiles[new]; - holdleaders = 0; - if (delfp != NULL && td->td_proc->p_fdtol != NULL) { - /* - * Ask fdfree() to sleep to ensure that all relevant - * process leaders can be traversed in closef(). - */ - fdp->fd_holdleaderscount++; - holdleaders = 1; - } /* * Duplicate the source descriptor. @@ -901,6 +885,23 @@ do_dup(struct thread *td, int flags, int old, int new, fdp->fd_lastfile = new; *retval = new; + /* + * Save info on the descriptor being overwritten. We cannot close + * it without introducing an ownership race for the slot, since we + * need to drop the filedesc lock to call closef(). + * + * XXX this duplicates parts of close(). + */ + holdleaders = 0; + if (delfp != NULL && td->td_proc->p_fdtol != NULL) { + /* + * Ask fdfree() to sleep to ensure that all relevant + * process leaders can be traversed in closef(). + */ + fdp->fd_holdleaderscount++; + holdleaders = 1; + } + /* * If we dup'd over a valid file, we now own the reference to it * and must dispose of it using closef() semantics (as if a From 129c87eb7d37e95d04a35ffcc62ffcdae637eb1f Mon Sep 17 00:00:00 2001 From: Pawel Jakub Dawidek Date: Mon, 11 Jun 2012 19:53:41 +0000 Subject: [PATCH 131/340] Merge two ifs into one to make the code almost identical to the code in kern_close(). Discussed with: kib Tested by: pho MFC after: 1 month --- sys/kern/kern_descrip.c | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c index 65f712456859..7c7bc3470c37 100644 --- a/sys/kern/kern_descrip.c +++ b/sys/kern/kern_descrip.c @@ -892,24 +892,25 @@ do_dup(struct thread *td, int flags, int old, int new, * * XXX this duplicates parts of close(). */ - holdleaders = 0; - if (delfp != NULL && td->td_proc->p_fdtol != NULL) { - /* - * Ask fdfree() to sleep to ensure that all relevant - * process leaders can be traversed in closef(). - */ - fdp->fd_holdleaderscount++; - holdleaders = 1; - } - - /* - * If we dup'd over a valid file, we now own the reference to it - * and must dispose of it using closef() semantics (as if a - * close() were performed on it). - * - * XXX this duplicates parts of close(). - */ if (delfp != NULL) { + if (td->td_proc->p_fdtol != NULL) { + /* + * Ask fdfree() to sleep to ensure that all relevant + * process leaders can be traversed in closef(). + */ + fdp->fd_holdleaderscount++; + holdleaders = 1; + } else { + holdleaders = 0; + } + + /* + * If we dup'd over a valid file, we now own the reference to it + * and must dispose of it using closef() semantics (as if a + * close() were performed on it). + * + * XXX this duplicates parts of close(). + */ knote_fdclose(td, new); /* * When we're closing an fd with a capability, we need to From 642db963ab9973c3ada3e9bd7c478ade02ad64fd Mon Sep 17 00:00:00 2001 From: Pawel Jakub Dawidek Date: Mon, 11 Jun 2012 19:57:31 +0000 Subject: [PATCH 132/340] Introduce closefp() function that we will be able to use to eliminate code duplication in kern_close() and do_dup(). This is committed separately from the actual removal of the duplicated code, as the combined diff was very hard to read. Discussed with: kib Tested by: pho MFC after: 1 month --- sys/kern/kern_descrip.c | 55 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c index 7c7bc3470c37..2e34e09a70a3 100644 --- a/sys/kern/kern_descrip.c +++ b/sys/kern/kern_descrip.c @@ -114,6 +114,8 @@ static uma_zone_t file_zone; #define DUP_FIXED 0x1 /* Force fixed allocation */ #define DUP_FCNTL 0x2 /* fcntl()-style errors */ +static int closefp(struct filedesc *fdp, int fd, struct file *fp, + struct thread *td); static int do_dup(struct thread *td, int flags, int old, int new, register_t *retval); static int fd_first_free(struct filedesc *, int, int); @@ -1156,6 +1158,59 @@ fgetown(sigiop) return (pgid); } +/* + * Function drops the filedesc lock on return. + */ +static int +closefp(struct filedesc *fdp, int fd, struct file *fp, struct thread *td) +{ + struct file *fp_object; + int error, holdleaders; + + FILEDESC_XLOCK_ASSERT(fdp); + + if (td->td_proc->p_fdtol != NULL) { + /* + * Ask fdfree() to sleep to ensure that all relevant + * process leaders can be traversed in closef(). + */ + fdp->fd_holdleaderscount++; + holdleaders = 1; + } else { + holdleaders = 0; + } + + /* + * We now hold the fp reference that used to be owned by the + * descriptor array. We have to unlock the FILEDESC *AFTER* + * knote_fdclose to prevent a race of the fd getting opened, a knote + * added, and deleteing a knote for the new fd. + */ + knote_fdclose(td, fd); + + /* + * When we're closing an fd with a capability, we need to notify + * mqueue if the underlying object is of type mqueue. + */ + (void)cap_funwrap(fp, 0, &fp_object); + if (fp_object->f_type == DTYPE_MQUEUE) + mq_fdclose(td, fd, fp_object); + FILEDESC_XUNLOCK(fdp); + + error = closef(fp, td); + if (holdleaders) { + FILEDESC_XLOCK(fdp); + fdp->fd_holdleaderscount--; + if (fdp->fd_holdleaderscount == 0 && + fdp->fd_holdleaderswakeup != 0) { + fdp->fd_holdleaderswakeup = 0; + wakeup(&fdp->fd_holdleaderscount); + } + FILEDESC_XUNLOCK(fdp); + } + return (error); +} + /* * Close a file descriptor. */ From 19d9c0e11ed2217e51e3c4b6c6e7114cd9893741 Mon Sep 17 00:00:00 2001 From: Pawel Jakub Dawidek Date: Mon, 11 Jun 2012 20:00:44 +0000 Subject: [PATCH 133/340] Remove code duplicated in kern_close() and do_dup() and use closefp() function introduced a minute ago. This code duplication was responsible for the bug fixed in r236853. Discussed with: kib Tested by: pho MFC after: 1 month --- sys/kern/kern_descrip.c | 96 +++-------------------------------------- 1 file changed, 7 insertions(+), 89 deletions(-) diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c index 2e34e09a70a3..8f27e12994b3 100644 --- a/sys/kern/kern_descrip.c +++ b/sys/kern/kern_descrip.c @@ -801,7 +801,7 @@ do_dup(struct thread *td, int flags, int old, int new, struct proc *p; struct file *fp; struct file *delfp; - int error, holdleaders, maxfd; + int error, maxfd; p = td->td_proc; fdp = p->p_fd; @@ -877,7 +877,6 @@ do_dup(struct thread *td, int flags, int old, int new, KASSERT(old != new, ("new fd is same as old")); delfp = fdp->fd_ofiles[new]; - /* * Duplicate the source descriptor. */ @@ -887,55 +886,13 @@ do_dup(struct thread *td, int flags, int old, int new, fdp->fd_lastfile = new; *retval = new; - /* - * Save info on the descriptor being overwritten. We cannot close - * it without introducing an ownership race for the slot, since we - * need to drop the filedesc lock to call closef(). - * - * XXX this duplicates parts of close(). - */ if (delfp != NULL) { - if (td->td_proc->p_fdtol != NULL) { - /* - * Ask fdfree() to sleep to ensure that all relevant - * process leaders can be traversed in closef(). - */ - fdp->fd_holdleaderscount++; - holdleaders = 1; - } else { - holdleaders = 0; - } - - /* - * If we dup'd over a valid file, we now own the reference to it - * and must dispose of it using closef() semantics (as if a - * close() were performed on it). - * - * XXX this duplicates parts of close(). - */ - knote_fdclose(td, new); - /* - * When we're closing an fd with a capability, we need to - * notify mqueue if the underlying object is of type mqueue. - */ - (void)cap_funwrap(delfp, 0, &fp); - if (fp->f_type == DTYPE_MQUEUE) - mq_fdclose(td, new, fp); - FILEDESC_XUNLOCK(fdp); - (void) closef(delfp, td); - if (holdleaders) { - FILEDESC_XLOCK(fdp); - fdp->fd_holdleaderscount--; - if (fdp->fd_holdleaderscount == 0 && - fdp->fd_holdleaderswakeup != 0) { - fdp->fd_holdleaderswakeup = 0; - wakeup(&fdp->fd_holdleaderscount); - } - FILEDESC_XUNLOCK(fdp); - } + (void) closefp(fdp, new, delfp, td); + /* closefp() drops the FILEDESC lock for us. */ } else { FILEDESC_XUNLOCK(fdp); } + return (0); } @@ -1235,12 +1192,8 @@ kern_close(td, fd) int fd; { struct filedesc *fdp; - struct file *fp, *fp_object; - int error; - int holdleaders; + struct file *fp; - error = 0; - holdleaders = 0; fdp = td->td_proc->p_fd; AUDIT_SYSCLOSE(td, fd); @@ -1254,44 +1207,9 @@ kern_close(td, fd) fdp->fd_ofiles[fd] = NULL; fdp->fd_ofileflags[fd] = 0; fdunused(fdp, fd); - if (td->td_proc->p_fdtol != NULL) { - /* - * Ask fdfree() to sleep to ensure that all relevant - * process leaders can be traversed in closef(). - */ - fdp->fd_holdleaderscount++; - holdleaders = 1; - } - /* - * We now hold the fp reference that used to be owned by the - * descriptor array. We have to unlock the FILEDESC *AFTER* - * knote_fdclose to prevent a race of the fd getting opened, a knote - * added, and deleteing a knote for the new fd. - */ - knote_fdclose(td, fd); - - /* - * When we're closing an fd with a capability, we need to notify - * mqueue if the underlying object is of type mqueue. - */ - (void)cap_funwrap(fp, 0, &fp_object); - if (fp_object->f_type == DTYPE_MQUEUE) - mq_fdclose(td, fd, fp_object); - FILEDESC_XUNLOCK(fdp); - - error = closef(fp, td); - if (holdleaders) { - FILEDESC_XLOCK(fdp); - fdp->fd_holdleaderscount--; - if (fdp->fd_holdleaderscount == 0 && - fdp->fd_holdleaderswakeup != 0) { - fdp->fd_holdleaderswakeup = 0; - wakeup(&fdp->fd_holdleaderscount); - } - FILEDESC_XUNLOCK(fdp); - } - return (error); + /* closefp() drops the FILEDESC lock for us. */ + return (closefp(fdp, fd, fp, td)); } /* From fd45a47ba6aa5b1909b77a1d466a24a28274b6c7 Mon Sep 17 00:00:00 2001 From: Pawel Jakub Dawidek Date: Mon, 11 Jun 2012 20:01:50 +0000 Subject: [PATCH 134/340] Be consistent with white spaces. MFC after: 1 month --- sys/kern/kern_descrip.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c index 8f27e12994b3..6ddc2fa710cd 100644 --- a/sys/kern/kern_descrip.c +++ b/sys/kern/kern_descrip.c @@ -116,7 +116,7 @@ static uma_zone_t file_zone; static int closefp(struct filedesc *fdp, int fd, struct file *fp, struct thread *td); -static int do_dup(struct thread *td, int flags, int old, int new, +static int do_dup(struct thread *td, int flags, int old, int new, register_t *retval); static int fd_first_free(struct filedesc *, int, int); static int fd_last_used(struct filedesc *, int, int); From 08e348234c65022f67eab0d2332ea9c48346df1f Mon Sep 17 00:00:00 2001 From: Andrew Thompson Date: Mon, 11 Jun 2012 20:12:13 +0000 Subject: [PATCH 135/340] Fix a panic I introduced in r234487, the bridge softc pointer is set to null early in the detach so rearrange things not to explode. Reported by: David Roffiaen, Gustau Perez Querol Tested by: David Roffiaen MFC after: 3 days --- sys/net/if_bridge.c | 36 ++++++++++++++++++++++-------------- 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/sys/net/if_bridge.c b/sys/net/if_bridge.c index 271ef307228a..b35559bcff31 100644 --- a/sys/net/if_bridge.c +++ b/sys/net/if_bridge.c @@ -334,6 +334,7 @@ static int bridge_ip6_checkbasic(struct mbuf **mp); static int bridge_fragment(struct ifnet *, struct mbuf *, struct ether_header *, int, struct llc *); static void bridge_linkstate(struct ifnet *ifp); +static void bridge_linkcheck(struct bridge_softc *sc); extern void (*bridge_linkstate_p)(struct ifnet *ifp); @@ -964,6 +965,7 @@ bridge_delete_member(struct bridge_softc *sc, struct bridge_iflist *bif, EVENTHANDLER_INVOKE(iflladdr_event, sc->sc_ifp); } + bridge_linkcheck(sc); bridge_mutecaps(sc); /* recalcuate now this interface is removed */ bridge_rtdelete(sc, ifs, IFBF_FLUSHALL); KASSERT(bif->bif_addrcnt == 0, @@ -993,7 +995,6 @@ bridge_delete_member(struct bridge_softc *sc, struct bridge_iflist *bif, bridge_set_ifcap(sc, bif, bif->bif_savedcaps); } bstp_destroy(&bif->bif_stp); /* prepare to free */ - bridge_linkstate(ifs); BRIDGE_LOCK(sc); free(bif, M_DEVBUF); } @@ -1092,18 +1093,17 @@ bridge_ioctl_add(struct bridge_softc *sc, void *arg) /* Set interface capabilities to the intersection set of all members */ bridge_mutecaps(sc); + bridge_linkcheck(sc); - BRIDGE_UNLOCK(sc); - /* Update the linkstate for the bridge */ - bridge_linkstate(ifs); /* Place the interface into promiscuous mode */ switch (ifs->if_type) { case IFT_ETHER: case IFT_L2VLAN: + BRIDGE_UNLOCK(sc); error = ifpromisc(ifs, 1); + BRIDGE_LOCK(sc); break; } - BRIDGE_LOCK(sc); if (error) bridge_delete_member(sc, bif, 0); out: @@ -3486,8 +3486,7 @@ static void bridge_linkstate(struct ifnet *ifp) { struct bridge_softc *sc = ifp->if_bridge; - struct bridge_iflist *bif, *bif2; - int new_link, hasls; + struct bridge_iflist *bif; BRIDGE_LOCK(sc); bif = bridge_lookup_member_if(sc, ifp); @@ -3495,13 +3494,26 @@ bridge_linkstate(struct ifnet *ifp) BRIDGE_UNLOCK(sc); return; } + bridge_linkcheck(sc); + BRIDGE_UNLOCK(sc); + + bstp_linkstate(&bif->bif_stp); +} + +static void +bridge_linkcheck(struct bridge_softc *sc) +{ + struct bridge_iflist *bif; + int new_link, hasls; + + BRIDGE_LOCK_ASSERT(sc); new_link = LINK_STATE_DOWN; hasls = 0; /* Our link is considered up if at least one of our ports is active */ - LIST_FOREACH(bif2, &sc->sc_iflist, bif_next) { - if (bif2->bif_ifp->if_capabilities & IFCAP_LINKSTATE) + LIST_FOREACH(bif, &sc->sc_iflist, bif_next) { + if (bif->bif_ifp->if_capabilities & IFCAP_LINKSTATE) hasls++; - if (bif2->bif_ifp->if_link_state == LINK_STATE_UP) { + if (bif->bif_ifp->if_link_state == LINK_STATE_UP) { new_link = LINK_STATE_UP; break; } @@ -3511,8 +3523,4 @@ bridge_linkstate(struct ifnet *ifp) new_link = LINK_STATE_UP; } if_link_state_change(sc->sc_ifp, new_link); - BRIDGE_UNLOCK(sc); - - bstp_linkstate(&bif->bif_stp); } - From d3ec30e525870b0492ef62f761f3e3c86a2ce768 Mon Sep 17 00:00:00 2001 From: Pawel Jakub Dawidek Date: Mon, 11 Jun 2012 20:17:20 +0000 Subject: [PATCH 136/340] Use consistent way of checking if descriptor number is valid. MFC after: 1 month --- sys/kern/kern_descrip.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c index 6ddc2fa710cd..812620699590 100644 --- a/sys/kern/kern_descrip.c +++ b/sys/kern/kern_descrip.c @@ -245,7 +245,7 @@ fd_last_used(struct filedesc *fdp, int low, int size) static int fdisused(struct filedesc *fdp, int fd) { - KASSERT(fd >= 0 && fd < fdp->fd_nfiles, + KASSERT((unsigned int)fd < fdp->fd_nfiles, ("file descriptor %d out of range (0, %d)", fd, fdp->fd_nfiles)); return ((fdp->fd_map[NDSLOT(fd)] & NDBIT(fd)) != 0); } @@ -2212,7 +2212,7 @@ fget_unlocked(struct filedesc *fdp, int fd) struct file *fp; u_int count; - if (fd < 0 || fd >= fdp->fd_nfiles) + if ((unsigned int)fd >= fdp->fd_nfiles) return (NULL); /* * Fetch the descriptor locklessly. We avoid fdrop() races by @@ -2598,7 +2598,7 @@ dupfdopen(struct thread *td, struct filedesc *fdp, int indx, int dfd, int mode, * closed, then reject. */ FILEDESC_XLOCK(fdp); - if (dfd < 0 || dfd >= fdp->fd_nfiles || + if ((unsigned int)dfd >= fdp->fd_nfiles || (wfp = fdp->fd_ofiles[dfd]) == NULL) { FILEDESC_XUNLOCK(fdp); return (EBADF); From 21877e81ec4464c9db863172e0453a3380ff27c8 Mon Sep 17 00:00:00 2001 From: Pawel Jakub Dawidek Date: Mon, 11 Jun 2012 20:19:24 +0000 Subject: [PATCH 137/340] Use consistent way of checking if descriptor number is valid. MFC after: 1 month --- sys/sys/filedesc.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/sys/filedesc.h b/sys/sys/filedesc.h index 1b87bab201d8..f32165a7fa8b 100644 --- a/sys/sys/filedesc.h +++ b/sys/sys/filedesc.h @@ -141,7 +141,7 @@ static __inline struct file * fget_locked(struct filedesc *fdp, int fd) { - return (fd < 0 || fd >= fdp->fd_nfiles ? NULL : fdp->fd_ofiles[fd]); + return ((unsigned int)fd >= fdp->fd_nfiles ? NULL : fdp->fd_ofiles[fd]); } #endif /* _KERNEL */ From 4f2380c0cfcb383ff0e486f45480ab0333e49200 Mon Sep 17 00:00:00 2001 From: Hans Petter Selasky Date: Mon, 11 Jun 2012 20:27:52 +0000 Subject: [PATCH 138/340] Revert: r236909 Pointyhat: me --- sbin/hastd/synch.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbin/hastd/synch.h b/sbin/hastd/synch.h index 6e4de9dfd0d8..65360fd493ef 100644 --- a/sbin/hastd/synch.h +++ b/sbin/hastd/synch.h @@ -168,7 +168,7 @@ cv_timedwait(pthread_cond_t *cv, pthread_mutex_t *lock, int timeout) return (false); } - error = clock_gettime(CLOCK_REALTIME, &ts); + error = clock_gettime(CLOCK_MONOTONIC, &ts); PJDLOG_ASSERT(error == 0); ts.tv_sec += timeout; error = pthread_cond_timedwait(cv, lock, &ts); From efab609272469021636bc75c1c7c822cbe6dbede Mon Sep 17 00:00:00 2001 From: Alan Cox Date: Mon, 11 Jun 2012 21:41:16 +0000 Subject: [PATCH 139/340] Avoid unnecessary atomic operations for clearing PGA_WRITEABLE in pmap_remove_pages(). This reduces pmap_remove_pages()'s running time by 4 to 11% in my tests. MFC after: 1 week --- sys/amd64/amd64/pmap.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/sys/amd64/amd64/pmap.c b/sys/amd64/amd64/pmap.c index 35cb13188f25..507c68521f0d 100644 --- a/sys/amd64/amd64/pmap.c +++ b/sys/amd64/amd64/pmap.c @@ -4197,7 +4197,8 @@ pmap_remove_pages(pmap_t pmap) TAILQ_REMOVE(&pvh->pv_list, pv, pv_list); if (TAILQ_EMPTY(&pvh->pv_list)) { for (mt = m; mt < &m[NBPDR / PAGE_SIZE]; mt++) - if (TAILQ_EMPTY(&mt->md.pv_list)) + if ((mt->aflags & PGA_WRITEABLE) != 0 && + TAILQ_EMPTY(&mt->md.pv_list)) vm_page_aflag_clear(mt, PGA_WRITEABLE); } mpte = pmap_lookup_pt_page(pmap, pv->pv_va); @@ -4213,7 +4214,8 @@ pmap_remove_pages(pmap_t pmap) } else { pmap_resident_count_dec(pmap, 1); TAILQ_REMOVE(&m->md.pv_list, pv, pv_list); - if (TAILQ_EMPTY(&m->md.pv_list) && + if ((m->aflags & PGA_WRITEABLE) != 0 && + TAILQ_EMPTY(&m->md.pv_list) && (m->flags & PG_FICTITIOUS) == 0) { pvh = pa_to_pvh(VM_PAGE_TO_PHYS(m)); if (TAILQ_EMPTY(&pvh->pv_list)) From 039dc89f0d3915acbcc050b8a0e5ae9cb1d9699d Mon Sep 17 00:00:00 2001 From: Pawel Jakub Dawidek Date: Mon, 11 Jun 2012 22:05:26 +0000 Subject: [PATCH 140/340] fdgrowtable() no longer drops the filedesc lock so it is enough to retry finding free file descriptor only once after fdgrowtable(). Spotted by: pluknet MFC after: 1 month --- sys/kern/kern_descrip.c | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c index 812620699590..61e13c11ddbc 100644 --- a/sys/kern/kern_descrip.c +++ b/sys/kern/kern_descrip.c @@ -1478,29 +1478,33 @@ fdalloc(struct thread *td, int minfd, int *result) /* * Search the bitmap for a free descriptor. If none is found, try * to grow the file table. Keep at it until we either get a file - * descriptor or run into process or system limits; fdgrowtable() - * may drop the filedesc lock, so we're in a race. + * descriptor or run into process or system limits. */ - for (;;) { - fd = fd_first_free(fdp, minfd, fdp->fd_nfiles); - if (fd >= maxfd) - return (EMFILE); - if (fd < fdp->fd_nfiles) - break; + fd = fd_first_free(fdp, minfd, fdp->fd_nfiles); + if (fd >= maxfd) + return (EMFILE); + if (fd >= fdp->fd_nfiles) { #ifdef RACCT PROC_LOCK(p); - error = racct_set(p, RACCT_NOFILE, min(fdp->fd_nfiles * 2, maxfd)); + error = racct_set(p, RACCT_NOFILE, + min(fdp->fd_nfiles * 2, maxfd)); PROC_UNLOCK(p); if (error != 0) return (EMFILE); #endif fdgrowtable(fdp, min(fdp->fd_nfiles * 2, maxfd)); + /* Retry... */ + fd = fd_first_free(fdp, minfd, fdp->fd_nfiles); + if (fd >= maxfd) + return (EMFILE); } /* * Perform some sanity checks, then mark the file descriptor as * used and return it to the caller. */ + KASSERT((unsigned int)fd < min(maxfd, fdp->fd_nfiles), + ("invalid descriptor %d", fd)); KASSERT(!fdisused(fdp, fd), ("fd_first_free() returned non-free descriptor")); KASSERT(fdp->fd_ofiles[fd] == NULL, ("file descriptor isn't free")); From 1b74dc4a8b5b1fa2395a83f110014436d8babacd Mon Sep 17 00:00:00 2001 From: Xin LI Date: Mon, 11 Jun 2012 22:25:20 +0000 Subject: [PATCH 141/340] Switch from 4-clause to 2-clause BSD license. (OpenBSD r1.22) No functional change. Obtained from: NetBSD via OpenBSD --- lib/libc/stdlib/getopt_long.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/lib/libc/stdlib/getopt_long.c b/lib/libc/stdlib/getopt_long.c index bf7a04a2ee8c..9f7f6d5ae733 100644 --- a/lib/libc/stdlib/getopt_long.c +++ b/lib/libc/stdlib/getopt_long.c @@ -1,4 +1,4 @@ -/* $OpenBSD: getopt_long.c,v 1.21 2006/09/22 17:22:05 millert Exp $ */ +/* $OpenBSD: getopt_long.c,v 1.22 2006/10/04 21:29:04 jmc Exp $ */ /* $NetBSD: getopt_long.c,v 1.15 2002/01/31 22:43:40 tv Exp $ */ /* @@ -35,13 +35,6 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the NetBSD - * Foundation, Inc. and its contributors. - * 4. Neither the name of The NetBSD Foundation nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED From aa445c9d7c1013952ae4f2d044f330c6d318e5b0 Mon Sep 17 00:00:00 2001 From: Kirk McKusick Date: Mon, 11 Jun 2012 23:07:21 +0000 Subject: [PATCH 142/340] In softdep_setup_inomapdep() we may have to allocate both inodedep and bmsafemap dependency structures in inodedep_lookup() and bmsafemap_lookup() respectively. The setup of these structures must be done while holding the soft-dependency mutex. If the inodedep is allocated first, it may be freed in the I/O completion callback when the mutex is released to allocate the bmsafemap. If the bmsafemap is allocated first, it may be freed in the I/O completion callback when the mutex is released to allocate the inodedep. To resolve this problem, bmsafemap_lookup has had a parameter added that allows a pre-malloc'ed bmsafemap to be passed in so that it does not need to release the mutex to create a new bmsafemap. The softdep_setup_inomapdep() routine pre-malloc's a bmsafemap dependency before acquiring the mutex and starting to build the inodedep with a call to inodedep_lookup(). The subsequent call to bmsafemap_lookup() is passed this pre-allocated bmsafemap entry so that it need not release the mutex if it needs to create a new one. Reported by: Peter Holm Tested by: Peter Holm MFC after: 1 week --- sys/ufs/ffs/ffs_softdep.c | 55 +++++++++++++++++++++++++++++---------- 1 file changed, 41 insertions(+), 14 deletions(-) diff --git a/sys/ufs/ffs/ffs_softdep.c b/sys/ufs/ffs/ffs_softdep.c index d995e56711b0..3533b0737cba 100644 --- a/sys/ufs/ffs/ffs_softdep.c +++ b/sys/ufs/ffs/ffs_softdep.c @@ -920,7 +920,7 @@ static struct freefrag *allocindir_merge(struct allocindir *, static int bmsafemap_find(struct bmsafemap_hashhead *, struct mount *, int, struct bmsafemap **); static struct bmsafemap *bmsafemap_lookup(struct mount *, struct buf *, - int cg); + int cg, struct bmsafemap *); static int newblk_find(struct newblk_hashhead *, struct mount *, ufs2_daddr_t, int, struct newblk **); static int newblk_lookup(struct mount *, ufs2_daddr_t, int, struct newblk **); @@ -4707,12 +4707,26 @@ softdep_setup_inomapdep(bp, ip, newinum, mode) * Panic if it already exists as something is seriously wrong. * Otherwise add it to the dependency list for the buffer holding * the cylinder group map from which it was allocated. + * + * We have to preallocate a bmsafemap entry in case it is needed + * in bmsafemap_lookup since once we allocate the inodedep, we + * have to finish initializing it before we can FREE_LOCK(). + * By preallocating, we avoid FREE_LOCK() while doing a malloc + * in bmsafemap_lookup. We cannot call bmsafemap_lookup before + * creating the inodedep as it can be freed during the time + * that we FREE_LOCK() while allocating the inodedep. We must + * call workitem_alloc() before entering the locked section as + * it also acquires the lock and we must avoid trying doing so + * recursively. */ + bmsafemap = malloc(sizeof(struct bmsafemap), + M_BMSAFEMAP, M_SOFTDEP_FLAGS); + workitem_alloc(&bmsafemap->sm_list, D_BMSAFEMAP, mp); ACQUIRE_LOCK(&lk); if ((inodedep_lookup(mp, newinum, DEPALLOC | NODELAY, &inodedep))) panic("softdep_setup_inomapdep: dependency %p for new" "inode already exists", inodedep); - bmsafemap = bmsafemap_lookup(mp, bp, ino_to_cg(fs, newinum)); + bmsafemap = bmsafemap_lookup(mp, bp, ino_to_cg(fs, newinum), bmsafemap); if (jaddref) { LIST_INSERT_HEAD(&bmsafemap->sm_jaddrefhd, jaddref, ja_bmdeps); TAILQ_INSERT_TAIL(&inodedep->id_inoreflst, &jaddref->ja_ref, @@ -4786,7 +4800,7 @@ softdep_setup_blkmapdep(bp, mp, newblkno, frags, oldfrags) if (newblk_lookup(mp, newblkno, DEPALLOC, &newblk) != 0) panic("softdep_setup_blkmapdep: found block"); newblk->nb_bmsafemap = bmsafemap = bmsafemap_lookup(mp, bp, - dtog(fs, newblkno)); + dtog(fs, newblkno), NULL); if (jnewblk) { jnewblk->jn_dep = (struct worklist *)newblk; LIST_INSERT_HEAD(&bmsafemap->sm_jnewblkhd, jnewblk, jn_deps); @@ -4827,13 +4841,16 @@ bmsafemap_find(bmsafemaphd, mp, cg, bmsafemapp) * Find the bmsafemap associated with a cylinder group buffer. * If none exists, create one. The buffer must be locked when * this routine is called and this routine must be called with - * splbio interrupts blocked. + * the softdep lock held. To avoid giving up the lock while + * allocating a new bmsafemap, a preallocated bmsafemap may be + * provided. If it is provided but not needed, it is freed. */ static struct bmsafemap * -bmsafemap_lookup(mp, bp, cg) +bmsafemap_lookup(mp, bp, cg, newbmsafemap) struct mount *mp; struct buf *bp; int cg; + struct bmsafemap *newbmsafemap; { struct bmsafemap_hashhead *bmsafemaphd; struct bmsafemap *bmsafemap, *collision; @@ -4843,16 +4860,27 @@ bmsafemap_lookup(mp, bp, cg) mtx_assert(&lk, MA_OWNED); if (bp) LIST_FOREACH(wk, &bp->b_dep, wk_list) - if (wk->wk_type == D_BMSAFEMAP) + if (wk->wk_type == D_BMSAFEMAP) { + if (newbmsafemap) + WORKITEM_FREE(newbmsafemap,D_BMSAFEMAP); return (WK_BMSAFEMAP(wk)); + } fs = VFSTOUFS(mp)->um_fs; bmsafemaphd = BMSAFEMAP_HASH(fs, cg); - if (bmsafemap_find(bmsafemaphd, mp, cg, &bmsafemap) == 1) + if (bmsafemap_find(bmsafemaphd, mp, cg, &bmsafemap) == 1) { + if (newbmsafemap) + WORKITEM_FREE(newbmsafemap, D_BMSAFEMAP); return (bmsafemap); - FREE_LOCK(&lk); - bmsafemap = malloc(sizeof(struct bmsafemap), - M_BMSAFEMAP, M_SOFTDEP_FLAGS); - workitem_alloc(&bmsafemap->sm_list, D_BMSAFEMAP, mp); + } + if (newbmsafemap) { + bmsafemap = newbmsafemap; + } else { + FREE_LOCK(&lk); + bmsafemap = malloc(sizeof(struct bmsafemap), + M_BMSAFEMAP, M_SOFTDEP_FLAGS); + workitem_alloc(&bmsafemap->sm_list, D_BMSAFEMAP, mp); + ACQUIRE_LOCK(&lk); + } bmsafemap->sm_buf = bp; LIST_INIT(&bmsafemap->sm_inodedephd); LIST_INIT(&bmsafemap->sm_inodedepwr); @@ -4862,7 +4890,6 @@ bmsafemap_lookup(mp, bp, cg) LIST_INIT(&bmsafemap->sm_jnewblkhd); LIST_INIT(&bmsafemap->sm_freehd); LIST_INIT(&bmsafemap->sm_freewr); - ACQUIRE_LOCK(&lk); if (bmsafemap_find(bmsafemaphd, mp, cg, &collision) == 1) { WORKITEM_FREE(bmsafemap, D_BMSAFEMAP); return (collision); @@ -10221,7 +10248,7 @@ softdep_setup_blkfree(mp, bp, blkno, frags, wkhd) ACQUIRE_LOCK(&lk); /* Lookup the bmsafemap so we track when it is dirty. */ fs = VFSTOUFS(mp)->um_fs; - bmsafemap = bmsafemap_lookup(mp, bp, dtog(fs, blkno)); + bmsafemap = bmsafemap_lookup(mp, bp, dtog(fs, blkno), NULL); /* * Detach any jnewblks which have been canceled. They must linger * until the bitmap is cleared again by ffs_blkfree() to prevent @@ -10267,7 +10294,7 @@ softdep_setup_blkfree(mp, bp, blkno, frags, wkhd) * allocation dependency. */ fs = VFSTOUFS(mp)->um_fs; - bmsafemap = bmsafemap_lookup(mp, bp, dtog(fs, blkno)); + bmsafemap = bmsafemap_lookup(mp, bp, dtog(fs, blkno), NULL); end = blkno + frags; LIST_FOREACH(jnewblk, &bmsafemap->sm_jnewblkhd, jn_deps) { /* From 77c80e2e5bd34e127da5faaf5c419a12f98cc96e Mon Sep 17 00:00:00 2001 From: Mitsuru IWASAKI Date: Tue, 12 Jun 2012 00:14:54 +0000 Subject: [PATCH 143/340] Share IPI init and startup code of mp_machdep.c with acpi_wakeup.c as ipi_startup(). --- sys/amd64/amd64/mp_machdep.c | 98 ++++++++++++++++++++---------------- sys/amd64/include/smp.h | 1 + sys/i386/i386/mp_machdep.c | 98 ++++++++++++++++++++---------------- sys/i386/include/smp.h | 1 + sys/x86/acpica/acpi_wakeup.c | 44 +--------------- 5 files changed, 111 insertions(+), 131 deletions(-) diff --git a/sys/amd64/amd64/mp_machdep.c b/sys/amd64/amd64/mp_machdep.c index 8cce30418ce5..2fbd9a4098d7 100644 --- a/sys/amd64/amd64/mp_machdep.c +++ b/sys/amd64/amd64/mp_machdep.c @@ -981,6 +981,60 @@ start_ap(int apic_id) /* used as a watchpoint to signal AP startup */ cpus = mp_naps; + ipi_startup(apic_id, vector); + + /* Wait up to 5 seconds for it to start. */ + for (ms = 0; ms < 5000; ms++) { + if (mp_naps > cpus) + return 1; /* return SUCCESS */ + DELAY(1000); + } + return 0; /* return FAILURE */ +} + +#ifdef COUNT_XINVLTLB_HITS +u_int xhits_gbl[MAXCPU]; +u_int xhits_pg[MAXCPU]; +u_int xhits_rng[MAXCPU]; +static SYSCTL_NODE(_debug, OID_AUTO, xhits, CTLFLAG_RW, 0, ""); +SYSCTL_OPAQUE(_debug_xhits, OID_AUTO, global, CTLFLAG_RW, &xhits_gbl, + sizeof(xhits_gbl), "IU", ""); +SYSCTL_OPAQUE(_debug_xhits, OID_AUTO, page, CTLFLAG_RW, &xhits_pg, + sizeof(xhits_pg), "IU", ""); +SYSCTL_OPAQUE(_debug_xhits, OID_AUTO, range, CTLFLAG_RW, &xhits_rng, + sizeof(xhits_rng), "IU", ""); + +u_int ipi_global; +u_int ipi_page; +u_int ipi_range; +u_int ipi_range_size; +SYSCTL_UINT(_debug_xhits, OID_AUTO, ipi_global, CTLFLAG_RW, &ipi_global, 0, ""); +SYSCTL_UINT(_debug_xhits, OID_AUTO, ipi_page, CTLFLAG_RW, &ipi_page, 0, ""); +SYSCTL_UINT(_debug_xhits, OID_AUTO, ipi_range, CTLFLAG_RW, &ipi_range, 0, ""); +SYSCTL_UINT(_debug_xhits, OID_AUTO, ipi_range_size, CTLFLAG_RW, + &ipi_range_size, 0, ""); + +u_int ipi_masked_global; +u_int ipi_masked_page; +u_int ipi_masked_range; +u_int ipi_masked_range_size; +SYSCTL_UINT(_debug_xhits, OID_AUTO, ipi_masked_global, CTLFLAG_RW, + &ipi_masked_global, 0, ""); +SYSCTL_UINT(_debug_xhits, OID_AUTO, ipi_masked_page, CTLFLAG_RW, + &ipi_masked_page, 0, ""); +SYSCTL_UINT(_debug_xhits, OID_AUTO, ipi_masked_range, CTLFLAG_RW, + &ipi_masked_range, 0, ""); +SYSCTL_UINT(_debug_xhits, OID_AUTO, ipi_masked_range_size, CTLFLAG_RW, + &ipi_masked_range_size, 0, ""); +#endif /* COUNT_XINVLTLB_HITS */ + +/* + * Init and startup IPI. + */ +void +ipi_startup(int apic_id, int vector) +{ + /* * first we do an INIT/RESET IPI this INIT IPI might be run, reseting * and running the target CPU. OR this INIT IPI might be latched (P5 @@ -1031,52 +1085,8 @@ start_ap(int apic_id) vector, apic_id); lapic_ipi_wait(-1); DELAY(200); /* wait ~200uS */ - - /* Wait up to 5 seconds for it to start. */ - for (ms = 0; ms < 5000; ms++) { - if (mp_naps > cpus) - return 1; /* return SUCCESS */ - DELAY(1000); - } - return 0; /* return FAILURE */ } -#ifdef COUNT_XINVLTLB_HITS -u_int xhits_gbl[MAXCPU]; -u_int xhits_pg[MAXCPU]; -u_int xhits_rng[MAXCPU]; -static SYSCTL_NODE(_debug, OID_AUTO, xhits, CTLFLAG_RW, 0, ""); -SYSCTL_OPAQUE(_debug_xhits, OID_AUTO, global, CTLFLAG_RW, &xhits_gbl, - sizeof(xhits_gbl), "IU", ""); -SYSCTL_OPAQUE(_debug_xhits, OID_AUTO, page, CTLFLAG_RW, &xhits_pg, - sizeof(xhits_pg), "IU", ""); -SYSCTL_OPAQUE(_debug_xhits, OID_AUTO, range, CTLFLAG_RW, &xhits_rng, - sizeof(xhits_rng), "IU", ""); - -u_int ipi_global; -u_int ipi_page; -u_int ipi_range; -u_int ipi_range_size; -SYSCTL_UINT(_debug_xhits, OID_AUTO, ipi_global, CTLFLAG_RW, &ipi_global, 0, ""); -SYSCTL_UINT(_debug_xhits, OID_AUTO, ipi_page, CTLFLAG_RW, &ipi_page, 0, ""); -SYSCTL_UINT(_debug_xhits, OID_AUTO, ipi_range, CTLFLAG_RW, &ipi_range, 0, ""); -SYSCTL_UINT(_debug_xhits, OID_AUTO, ipi_range_size, CTLFLAG_RW, - &ipi_range_size, 0, ""); - -u_int ipi_masked_global; -u_int ipi_masked_page; -u_int ipi_masked_range; -u_int ipi_masked_range_size; -SYSCTL_UINT(_debug_xhits, OID_AUTO, ipi_masked_global, CTLFLAG_RW, - &ipi_masked_global, 0, ""); -SYSCTL_UINT(_debug_xhits, OID_AUTO, ipi_masked_page, CTLFLAG_RW, - &ipi_masked_page, 0, ""); -SYSCTL_UINT(_debug_xhits, OID_AUTO, ipi_masked_range, CTLFLAG_RW, - &ipi_masked_range, 0, ""); -SYSCTL_UINT(_debug_xhits, OID_AUTO, ipi_masked_range_size, CTLFLAG_RW, - &ipi_masked_range_size, 0, ""); -#endif /* COUNT_XINVLTLB_HITS */ - /* * Send an IPI to specified CPU handling the bitmap logic. */ diff --git a/sys/amd64/include/smp.h b/sys/amd64/include/smp.h index de686b76a445..16d87ea24cc9 100644 --- a/sys/amd64/include/smp.h +++ b/sys/amd64/include/smp.h @@ -59,6 +59,7 @@ void cpu_add(u_int apic_id, char boot_cpu); void cpustop_handler(void); void cpususpend_handler(void); void init_secondary(void); +void ipi_startup(int apic_id, int vector); void ipi_all_but_self(u_int ipi); void ipi_bitmap_handler(struct trapframe frame); void ipi_cpu(int cpu, u_int ipi); diff --git a/sys/i386/i386/mp_machdep.c b/sys/i386/i386/mp_machdep.c index 77cbfc5cacfb..727c05da1122 100644 --- a/sys/i386/i386/mp_machdep.c +++ b/sys/i386/i386/mp_machdep.c @@ -1081,6 +1081,60 @@ start_ap(int apic_id) /* used as a watchpoint to signal AP startup */ cpus = mp_naps; + ipi_startup(apic_id, vector); + + /* Wait up to 5 seconds for it to start. */ + for (ms = 0; ms < 5000; ms++) { + if (mp_naps > cpus) + return 1; /* return SUCCESS */ + DELAY(1000); + } + return 0; /* return FAILURE */ +} + +#ifdef COUNT_XINVLTLB_HITS +u_int xhits_gbl[MAXCPU]; +u_int xhits_pg[MAXCPU]; +u_int xhits_rng[MAXCPU]; +static SYSCTL_NODE(_debug, OID_AUTO, xhits, CTLFLAG_RW, 0, ""); +SYSCTL_OPAQUE(_debug_xhits, OID_AUTO, global, CTLFLAG_RW, &xhits_gbl, + sizeof(xhits_gbl), "IU", ""); +SYSCTL_OPAQUE(_debug_xhits, OID_AUTO, page, CTLFLAG_RW, &xhits_pg, + sizeof(xhits_pg), "IU", ""); +SYSCTL_OPAQUE(_debug_xhits, OID_AUTO, range, CTLFLAG_RW, &xhits_rng, + sizeof(xhits_rng), "IU", ""); + +u_int ipi_global; +u_int ipi_page; +u_int ipi_range; +u_int ipi_range_size; +SYSCTL_INT(_debug_xhits, OID_AUTO, ipi_global, CTLFLAG_RW, &ipi_global, 0, ""); +SYSCTL_INT(_debug_xhits, OID_AUTO, ipi_page, CTLFLAG_RW, &ipi_page, 0, ""); +SYSCTL_INT(_debug_xhits, OID_AUTO, ipi_range, CTLFLAG_RW, &ipi_range, 0, ""); +SYSCTL_INT(_debug_xhits, OID_AUTO, ipi_range_size, CTLFLAG_RW, &ipi_range_size, + 0, ""); + +u_int ipi_masked_global; +u_int ipi_masked_page; +u_int ipi_masked_range; +u_int ipi_masked_range_size; +SYSCTL_INT(_debug_xhits, OID_AUTO, ipi_masked_global, CTLFLAG_RW, + &ipi_masked_global, 0, ""); +SYSCTL_INT(_debug_xhits, OID_AUTO, ipi_masked_page, CTLFLAG_RW, + &ipi_masked_page, 0, ""); +SYSCTL_INT(_debug_xhits, OID_AUTO, ipi_masked_range, CTLFLAG_RW, + &ipi_masked_range, 0, ""); +SYSCTL_INT(_debug_xhits, OID_AUTO, ipi_masked_range_size, CTLFLAG_RW, + &ipi_masked_range_size, 0, ""); +#endif /* COUNT_XINVLTLB_HITS */ + +/* + * Init and startup IPI. + */ +void +ipi_startup(int apic_id, int vector) +{ + /* * first we do an INIT/RESET IPI this INIT IPI might be run, reseting * and running the target CPU. OR this INIT IPI might be latched (P5 @@ -1131,52 +1185,8 @@ start_ap(int apic_id) vector, apic_id); lapic_ipi_wait(-1); DELAY(200); /* wait ~200uS */ - - /* Wait up to 5 seconds for it to start. */ - for (ms = 0; ms < 5000; ms++) { - if (mp_naps > cpus) - return 1; /* return SUCCESS */ - DELAY(1000); - } - return 0; /* return FAILURE */ } -#ifdef COUNT_XINVLTLB_HITS -u_int xhits_gbl[MAXCPU]; -u_int xhits_pg[MAXCPU]; -u_int xhits_rng[MAXCPU]; -static SYSCTL_NODE(_debug, OID_AUTO, xhits, CTLFLAG_RW, 0, ""); -SYSCTL_OPAQUE(_debug_xhits, OID_AUTO, global, CTLFLAG_RW, &xhits_gbl, - sizeof(xhits_gbl), "IU", ""); -SYSCTL_OPAQUE(_debug_xhits, OID_AUTO, page, CTLFLAG_RW, &xhits_pg, - sizeof(xhits_pg), "IU", ""); -SYSCTL_OPAQUE(_debug_xhits, OID_AUTO, range, CTLFLAG_RW, &xhits_rng, - sizeof(xhits_rng), "IU", ""); - -u_int ipi_global; -u_int ipi_page; -u_int ipi_range; -u_int ipi_range_size; -SYSCTL_INT(_debug_xhits, OID_AUTO, ipi_global, CTLFLAG_RW, &ipi_global, 0, ""); -SYSCTL_INT(_debug_xhits, OID_AUTO, ipi_page, CTLFLAG_RW, &ipi_page, 0, ""); -SYSCTL_INT(_debug_xhits, OID_AUTO, ipi_range, CTLFLAG_RW, &ipi_range, 0, ""); -SYSCTL_INT(_debug_xhits, OID_AUTO, ipi_range_size, CTLFLAG_RW, &ipi_range_size, - 0, ""); - -u_int ipi_masked_global; -u_int ipi_masked_page; -u_int ipi_masked_range; -u_int ipi_masked_range_size; -SYSCTL_INT(_debug_xhits, OID_AUTO, ipi_masked_global, CTLFLAG_RW, - &ipi_masked_global, 0, ""); -SYSCTL_INT(_debug_xhits, OID_AUTO, ipi_masked_page, CTLFLAG_RW, - &ipi_masked_page, 0, ""); -SYSCTL_INT(_debug_xhits, OID_AUTO, ipi_masked_range, CTLFLAG_RW, - &ipi_masked_range, 0, ""); -SYSCTL_INT(_debug_xhits, OID_AUTO, ipi_masked_range_size, CTLFLAG_RW, - &ipi_masked_range_size, 0, ""); -#endif /* COUNT_XINVLTLB_HITS */ - /* * Send an IPI to specified CPU handling the bitmap logic. */ diff --git a/sys/i386/include/smp.h b/sys/i386/include/smp.h index 1be3dcf2e0ad..7c11820ddc67 100644 --- a/sys/i386/include/smp.h +++ b/sys/i386/include/smp.h @@ -64,6 +64,7 @@ void cpustop_handler(void); void cpususpend_handler(void); #endif void init_secondary(void); +void ipi_startup(int apic_id, int vector); void ipi_all_but_self(u_int ipi); #ifndef XEN void ipi_bitmap_handler(struct trapframe frame); diff --git a/sys/x86/acpica/acpi_wakeup.c b/sys/x86/acpica/acpi_wakeup.c index 4d470dff887f..f01a680122f5 100644 --- a/sys/x86/acpica/acpi_wakeup.c +++ b/sys/x86/acpica/acpi_wakeup.c @@ -118,49 +118,7 @@ acpi_wakeup_ap(struct acpi_softc *sc, int cpu) WAKECODE_FIXUP(wakeup_gdt + 2, uint64_t, susppcbs[cpu]->pcb_gdt.rd_base); - /* do an INIT IPI: assert RESET */ - lapic_ipi_raw(APIC_DEST_DESTFLD | APIC_TRIGMOD_EDGE | - APIC_LEVEL_ASSERT | APIC_DESTMODE_PHY | APIC_DELMODE_INIT, apic_id); - - /* wait for pending status end */ - lapic_ipi_wait(-1); - - /* do an INIT IPI: deassert RESET */ - lapic_ipi_raw(APIC_DEST_ALLESELF | APIC_TRIGMOD_LEVEL | - APIC_LEVEL_DEASSERT | APIC_DESTMODE_PHY | APIC_DELMODE_INIT, 0); - - /* wait for pending status end */ - DELAY(10000); /* wait ~10mS */ - lapic_ipi_wait(-1); - - /* - * next we do a STARTUP IPI: the previous INIT IPI might still be - * latched, (P5 bug) this 1st STARTUP would then terminate - * immediately, and the previously started INIT IPI would continue. OR - * the previous INIT IPI has already run. and this STARTUP IPI will - * run. OR the previous INIT IPI was ignored. and this STARTUP IPI - * will run. - */ - - /* do a STARTUP IPI */ - lapic_ipi_raw(APIC_DEST_DESTFLD | APIC_TRIGMOD_EDGE | - APIC_LEVEL_DEASSERT | APIC_DESTMODE_PHY | APIC_DELMODE_STARTUP | - vector, apic_id); - lapic_ipi_wait(-1); - DELAY(200); /* wait ~200uS */ - - /* - * finally we do a 2nd STARTUP IPI: this 2nd STARTUP IPI should run IF - * the previous STARTUP IPI was cancelled by a latched INIT IPI. OR - * this STARTUP IPI will be ignored, as only ONE STARTUP IPI is - * recognized after hardware RESET or INIT IPI. - */ - - lapic_ipi_raw(APIC_DEST_DESTFLD | APIC_TRIGMOD_EDGE | - APIC_LEVEL_DEASSERT | APIC_DESTMODE_PHY | APIC_DELMODE_STARTUP | - vector, apic_id); - lapic_ipi_wait(-1); - DELAY(200); /* wait ~200uS */ + ipi_startup(apic_id, vector); /* Wait up to 5 seconds for it to resume. */ for (ms = 0; ms < 5000; ms++) { From f7287225df283a4a5eb30839b9215496db221c45 Mon Sep 17 00:00:00 2001 From: Hans Petter Selasky Date: Tue, 12 Jun 2012 07:28:25 +0000 Subject: [PATCH 144/340] LibUSB v1.0 API compiliance and bugfixes. - Use CLOCK_MONOTONIC instead of CLOCK_REALTIME, because CLOCK_MONOTONIC does not wrap into negative in near future. This fixes any potential problems using "pthread_cond_timedwait()". - Fix a bug where the "libusb_wait_for_event()" function computes an absolute timeout instead of a relative timeout. USB transfers do not depend on this timeout value. - Add dependency towards LibPthread to Makefile, because LibUSB v1.0 needs this library to function correctly. MFC after: 1 week --- lib/libusb/Makefile | 3 +++ lib/libusb/libusb10.c | 25 +++++++++++++++++++++++-- lib/libusb/libusb10_io.c | 10 +++++++--- 3 files changed, 33 insertions(+), 5 deletions(-) diff --git a/lib/libusb/Makefile b/lib/libusb/Makefile index 7a9bd1b23678..d45dd567b437 100644 --- a/lib/libusb/Makefile +++ b/lib/libusb/Makefile @@ -18,6 +18,9 @@ NOGCCERROR= WARNS?= 2 +DPADD= ${LIBPTHREAD} +LDADD= -lpthread + MLINKS+= libusb.3 usb.3 # libusb 0.1 compat diff --git a/lib/libusb/libusb10.c b/lib/libusb/libusb10.c index 44331bc6ad3c..256d67e93bc5 100644 --- a/lib/libusb/libusb10.c +++ b/lib/libusb/libusb10.c @@ -92,6 +92,7 @@ int libusb_init(libusb_context **context) { struct libusb_context *ctx; + pthread_condattr_t attr; char *debug; int ret; @@ -110,8 +111,28 @@ libusb_init(libusb_context **context) TAILQ_INIT(&ctx->pollfds); TAILQ_INIT(&ctx->tr_done); - pthread_mutex_init(&ctx->ctx_lock, NULL); - pthread_cond_init(&ctx->ctx_cond, NULL); + if (pthread_mutex_init(&ctx->ctx_lock, NULL) != 0) { + free(ctx); + return (LIBUSB_ERROR_NO_MEM); + } + if (pthread_condattr_init(&attr) != 0) { + pthread_mutex_destroy(&ctx->ctx_lock); + free(ctx); + return (LIBUSB_ERROR_NO_MEM); + } + if (pthread_condattr_setclock(&attr, CLOCK_MONOTONIC) != 0) { + pthread_mutex_destroy(&ctx->ctx_lock); + pthread_condattr_destroy(&attr); + free(ctx); + return (LIBUSB_ERROR_OTHER); + } + if (pthread_cond_init(&ctx->ctx_cond, &attr) != 0) { + pthread_mutex_destroy(&ctx->ctx_lock); + pthread_condattr_destroy(&attr); + free(ctx); + return (LIBUSB_ERROR_NO_MEM); + } + pthread_condattr_destroy(&attr); ctx->ctx_handler = NO_THREAD; diff --git a/lib/libusb/libusb10_io.c b/lib/libusb/libusb10_io.c index 63f833af8828..302fdb8dda32 100644 --- a/lib/libusb/libusb10_io.c +++ b/lib/libusb/libusb10_io.c @@ -307,12 +307,16 @@ libusb_wait_for_event(libusb_context *ctx, struct timeval *tv) &ctx->ctx_lock); return (0); } - err = clock_gettime(CLOCK_REALTIME, &ts); + err = clock_gettime(CLOCK_MONOTONIC, &ts); if (err < 0) return (LIBUSB_ERROR_OTHER); - ts.tv_sec = tv->tv_sec; - ts.tv_nsec = tv->tv_usec * 1000; + /* + * The "tv" arguments points to a relative time structure and + * not an absolute time structure. + */ + ts.tv_sec += tv->tv_sec; + ts.tv_nsec += tv->tv_usec * 1000; if (ts.tv_nsec >= 1000000000) { ts.tv_nsec -= 1000000000; ts.tv_sec++; From 17267b32d86a7467121881aaacd058fc5031a517 Mon Sep 17 00:00:00 2001 From: Michael Tuexen Date: Tue, 12 Jun 2012 09:18:28 +0000 Subject: [PATCH 145/340] Small cleanup. MFC after: 3 days --- sys/netinet/sctputil.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/sys/netinet/sctputil.c b/sys/netinet/sctputil.c index dea0d4795047..5d02413f85f8 100644 --- a/sys/netinet/sctputil.c +++ b/sys/netinet/sctputil.c @@ -2573,15 +2573,13 @@ sctp_pad_lastmbuf(struct mbuf *m, int padval, struct mbuf *last_mbuf) /* find the last mbuf in chain and pad it */ struct mbuf *m_at; - m_at = m; if (last_mbuf) { return (sctp_add_pad_tombuf(last_mbuf, padval)); } else { - while (m_at) { + for (m_at = m; m_at; m_at = SCTP_BUF_NEXT(m_at)) { if (SCTP_BUF_NEXT(m_at) == NULL) { return (sctp_add_pad_tombuf(m_at, padval)); } - m_at = SCTP_BUF_NEXT(m_at); } } SCTP_LTRACE_ERR_RET_PKT(m, NULL, NULL, NULL, SCTP_FROM_SCTPUTIL, EFAULT); From faf0db351d567fc919ac5d5de211eb5cb46f46f1 Mon Sep 17 00:00:00 2001 From: Pawel Jakub Dawidek Date: Tue, 12 Jun 2012 10:25:11 +0000 Subject: [PATCH 146/340] Revert part of the r236935 for now, until I figure out why it doesn't work properly. Reported by: davidxu --- sys/kern/kern_descrip.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c index 61e13c11ddbc..2648ba7855e8 100644 --- a/sys/kern/kern_descrip.c +++ b/sys/kern/kern_descrip.c @@ -1480,10 +1480,12 @@ fdalloc(struct thread *td, int minfd, int *result) * to grow the file table. Keep at it until we either get a file * descriptor or run into process or system limits. */ - fd = fd_first_free(fdp, minfd, fdp->fd_nfiles); - if (fd >= maxfd) - return (EMFILE); - if (fd >= fdp->fd_nfiles) { + for (;;) { + fd = fd_first_free(fdp, minfd, fdp->fd_nfiles); + if (fd >= maxfd) + return (EMFILE); + if (fd < fdp->fd_nfiles) + break; #ifdef RACCT PROC_LOCK(p); error = racct_set(p, RACCT_NOFILE, @@ -1493,10 +1495,6 @@ fdalloc(struct thread *td, int minfd, int *result) return (EMFILE); #endif fdgrowtable(fdp, min(fdp->fd_nfiles * 2, maxfd)); - /* Retry... */ - fd = fd_first_free(fdp, minfd, fdp->fd_nfiles); - if (fd >= maxfd) - return (EMFILE); } /* From 776b728856f03876a3d4d6f454c5ce2d53d5493c Mon Sep 17 00:00:00 2001 From: Randall Stewart Date: Tue, 12 Jun 2012 10:44:09 +0000 Subject: [PATCH 147/340] Allow a gif tunnel to be used with ALTq. Reviewed by: gnn --- sys/net/if_gif.c | 148 ++++++++++++++++++++++++++++++++--------------- 1 file changed, 102 insertions(+), 46 deletions(-) diff --git a/sys/net/if_gif.c b/sys/net/if_gif.c index 350611d758f8..56796d7ffbe3 100644 --- a/sys/net/if_gif.c +++ b/sys/net/if_gif.c @@ -342,26 +342,98 @@ gif_encapcheck(m, off, proto, arg) return 0; } } +#ifdef INET +#define GIF_HDR_LEN (ETHER_HDR_LEN + sizeof (struct ip)) +#endif +#ifdef INET6 +#define GIF_HDR_LEN6 (ETHER_HDR_LEN + sizeof (struct ip6_hdr)) +#endif static void gif_start(struct ifnet *ifp) { struct gif_softc *sc; struct mbuf *m; + uint32_t af; + int error = 0; sc = ifp->if_softc; - + GIF_LOCK(sc); + if (ifp->if_drv_flags & IFF_DRV_OACTIVE) { + /* Already active */ + ifp->if_drv_flags |= IFF_GIF_WANTED; + GIF_UNLOCK(sc); + return; + } ifp->if_drv_flags |= IFF_DRV_OACTIVE; - for (;;) { - IFQ_DEQUEUE(&ifp->if_snd, m); + GIF_UNLOCK(sc); +keep_going: + while (!IFQ_DRV_IS_EMPTY(&ifp->if_snd)) { + + IFQ_DRV_DEQUEUE(&ifp->if_snd, m); if (m == 0) break; - gif_output(ifp, m, sc->gif_pdst, NULL); +#ifdef ALTQ + /* Take out those altq bytes we add in gif_output */ +#ifdef INET + if (sc->gif_psrc->sa_family == AF_INET) + m->m_pkthdr.len -= GIF_HDR_LEN; +#endif +#ifdef INET6 + if (sc->gif_psrc->sa_family == AF_INET6) + m->m_pkthdr.len -= GIF_HDR_LEN6; +#endif +#endif + /* Now pull back the af in packet that + * was saved in the address location. + */ + bcopy(m->m_pkthdr.src_mac_addr, &af, sizeof(af)); + if (ifp->if_bridge) + af = AF_LINK; + + BPF_MTAP2(ifp, &af, sizeof(af), m); + ifp->if_opackets++; + +/* Done by IFQ_HANDOFF */ +/* ifp->if_obytes += m->m_pkthdr.len;*/ + /* override to IPPROTO_ETHERIP for bridged traffic */ + + M_SETFIB(m, sc->gif_fibnum); + /* inner AF-specific encapsulation */ + /* XXX should we check if our outer source is legal? */ + /* dispatch to output logic based on outer AF */ + switch (sc->gif_psrc->sa_family) { +#ifdef INET + case AF_INET: + error = in_gif_output(ifp, af, m); + break; +#endif +#ifdef INET6 + case AF_INET6: + error = in6_gif_output(ifp, af, m); + break; +#endif + default: + m_freem(m); + error = ENETDOWN; + } + if (error) + ifp->if_oerrors++; } + GIF_LOCK(sc); + if (ifp->if_drv_flags & IFF_GIF_WANTED) { + /* Someone did a start while + * we were unlocked and processing + * lets clear the flag and try again. + */ + ifp->if_drv_flags &= ~IFF_GIF_WANTED; + GIF_UNLOCK(sc); + goto keep_going; + } ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; - + GIF_UNLOCK(sc); return; } @@ -376,8 +448,7 @@ gif_output(ifp, m, dst, ro) struct m_tag *mtag; int error = 0; int gif_called; - u_int32_t af; - + uint32_t af; #ifdef MAC error = mac_ifnet_check_transmit(ifp, m); if (error) { @@ -426,55 +497,40 @@ gif_output(ifp, m, dst, ro) m_tag_prepend(m, mtag); m->m_flags &= ~(M_BCAST|M_MCAST); - - GIF_LOCK(sc); - - if (!(ifp->if_flags & IFF_UP) || - sc->gif_psrc == NULL || sc->gif_pdst == NULL) { - GIF_UNLOCK(sc); - m_freem(m); - error = ENETDOWN; - goto end; - } - /* BPF writes need to be handled specially. */ if (dst->sa_family == AF_UNSPEC) { bcopy(dst->sa_data, &af, sizeof(af)); dst->sa_family = af; } - af = dst->sa_family; - BPF_MTAP2(ifp, &af, sizeof(af), m); - ifp->if_opackets++; - ifp->if_obytes += m->m_pkthdr.len; - - /* override to IPPROTO_ETHERIP for bridged traffic */ - if (ifp->if_bridge) - af = AF_LINK; - - M_SETFIB(m, sc->gif_fibnum); - /* inner AF-specific encapsulation */ - - /* XXX should we check if our outer source is legal? */ - - /* dispatch to output logic based on outer AF */ - switch (sc->gif_psrc->sa_family) { + /* Now save the af in the inbound pkt mac + * address location. + */ + bcopy(&af, m->m_pkthdr.src_mac_addr, sizeof(af)); + if (!(ifp->if_flags & IFF_UP) || + sc->gif_psrc == NULL || sc->gif_pdst == NULL) { + m_freem(m); + error = ENETDOWN; + goto end; + } +#ifdef ALTQ + /* Make altq aware of the bytes we will add + * when we actually send it. + */ #ifdef INET - case AF_INET: - error = in_gif_output(ifp, af, m); - break; + if (sc->gif_psrc->sa_family == AF_INET) + m->m_pkthdr.len += GIF_HDR_LEN; #endif #ifdef INET6 - case AF_INET6: - error = in6_gif_output(ifp, af, m); - break; + if (sc->gif_psrc->sa_family == AF_INET6) + m->m_pkthdr.len += GIF_HDR_LEN6; #endif - default: - m_freem(m); - error = ENETDOWN; - } - - GIF_UNLOCK(sc); +#endif + /* + * Queue message on interface, update output statistics if + * successful, and start output if interface not yet active. + */ + IFQ_HANDOFF(ifp, m, error); end: if (error) ifp->if_oerrors++; From b30c7d5167f57bd87015152b7b0ec93b7b30a1ed Mon Sep 17 00:00:00 2001 From: Alexander Motin Date: Tue, 12 Jun 2012 11:08:51 +0000 Subject: [PATCH 148/340] - Limit r214102 workaround to only x86. On arm it causes more problems then solves because of cache coherency issues. This fixes periodic error messages on console and command timeouts. - Patch SATA PHY configuration for 65nm SoCs to improve SNR same as Linux does. MFC after: 2 weeks --- sys/dev/mvs/mvs.c | 41 ++++++++++++++++++++++++++++++++++++++++- sys/dev/mvs/mvs.h | 5 +++++ sys/dev/mvs/mvs_soc.c | 2 ++ 3 files changed, 47 insertions(+), 1 deletion(-) diff --git a/sys/dev/mvs/mvs.c b/sys/dev/mvs/mvs.c index 507c13f3f05e..21c9f9757f4c 100644 --- a/sys/dev/mvs/mvs.c +++ b/sys/dev/mvs/mvs.c @@ -1048,14 +1048,19 @@ mvs_crbq_intr(device_t dev) * Handle only successfull completions here. * Errors will be handled by main intr handler. */ +#if defined(__i386__) || defined(__amd64__) if (crpb->id == 0xffff && crpb->rspflg == 0xffff) { device_printf(dev, "Unfilled CRPB " "%d (%d->%d) tag %d flags %04x rs %08x\n", cin_idx, fin_idx, in_idx, slot, flags, ch->rslots); - } else if (ch->numtslots != 0 || + } else +#endif + if (ch->numtslots != 0 || (flags & EDMA_IE_EDEVERR) == 0) { +#if defined(__i386__) || defined(__amd64__) crpb->id = 0xffff; crpb->rspflg = 0xffff; +#endif if (ch->slot[slot].state >= MVS_SLOT_RUNNING) { ccb = ch->slot[slot].ccb; ccb->ataio.res.status = @@ -1998,6 +2003,39 @@ mvs_reset_to(void *arg) callout_schedule(&ch->reset_timer, hz / 10); } +static void +mvs_errata(device_t dev) +{ + struct mvs_channel *ch = device_get_softc(dev); + uint32_t val; + + if (ch->quirks & MVS_Q_SOC65) { + val = ATA_INL(ch->r_mem, SATA_PHYM3); + val &= ~(0x3 << 27); /* SELMUPF = 1 */ + val |= (0x1 << 27); + val &= ~(0x3 << 29); /* SELMUPI = 1 */ + val |= (0x1 << 29); + ATA_OUTL(ch->r_mem, SATA_PHYM3, val); + + val = ATA_INL(ch->r_mem, SATA_PHYM4); + val &= ~0x1; /* SATU_OD8 = 0 */ + val |= (0x1 << 16); /* reserved bit 16 = 1 */ + ATA_OUTL(ch->r_mem, SATA_PHYM4, val); + + val = ATA_INL(ch->r_mem, SATA_PHYM9_GEN2); + val &= ~0xf; /* TXAMP[3:0] = 8 */ + val |= 0x8; + val &= ~(0x1 << 14); /* TXAMP[4] = 0 */ + ATA_OUTL(ch->r_mem, SATA_PHYM9_GEN2, val); + + val = ATA_INL(ch->r_mem, SATA_PHYM9_GEN1); + val &= ~0xf; /* TXAMP[3:0] = 8 */ + val |= 0x8; + val &= ~(0x1 << 14); /* TXAMP[4] = 0 */ + ATA_OUTL(ch->r_mem, SATA_PHYM9_GEN1, val); + } +} + static void mvs_reset(device_t dev) { @@ -2044,6 +2082,7 @@ mvs_reset(device_t dev) ATA_OUTL(ch->r_mem, EDMA_CMD, EDMA_CMD_EATARST); DELAY(25); ATA_OUTL(ch->r_mem, EDMA_CMD, 0); + mvs_errata(dev); /* Reset and reconnect PHY, */ if (!mvs_sata_phy_reset(dev)) { if (bootverbose) diff --git a/sys/dev/mvs/mvs.h b/sys/dev/mvs/mvs.h index f4e4a61f33f5..4938fb4c6d2c 100644 --- a/sys/dev/mvs/mvs.h +++ b/sys/dev/mvs/mvs.h @@ -382,6 +382,10 @@ #define SATA_FISDW5 0x384 /* FIS DW5 */ #define SATA_FISDW6 0x388 /* FIS DW6 */ +#define SATA_PHYM9_GEN2 0x398 +#define SATA_PHYM9_GEN1 0x39c +#define SATA_PHYCFG_OFS 0x3a0 /* 65nm SoCs only */ + #define MVS_MAX_PORTS 8 #define MVS_MAX_SLOTS 32 @@ -537,6 +541,7 @@ struct mvs_channel { #define MVS_Q_GENIIE 4 #define MVS_Q_SOC 8 #define MVS_Q_CT 16 +#define MVS_Q_SOC65 32 int pm_level; /* power management level */ struct mvs_slot slot[MVS_MAX_SLOTS]; diff --git a/sys/dev/mvs/mvs_soc.c b/sys/dev/mvs/mvs_soc.c index 19fe51f2d635..9e9f93ea8f78 100644 --- a/sys/dev/mvs/mvs_soc.c +++ b/sys/dev/mvs/mvs_soc.c @@ -135,6 +135,8 @@ mvs_attach(device_t dev) if (!(ctlr->r_mem = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &ctlr->r_rid, RF_ACTIVE))) return ENXIO; + if (ATA_INL(ctlr->r_mem, PORT_BASE(0) + SATA_PHYCFG_OFS) != 0) + ctlr->quirks |= MVS_Q_SOC65; /* Setup our own memory management for channels. */ ctlr->sc_iomem.rm_start = rman_get_start(ctlr->r_mem); ctlr->sc_iomem.rm_end = rman_get_end(ctlr->r_mem); From b0a576ce8eeaebe60d4f41aaef6297d21b3e9a31 Mon Sep 17 00:00:00 2001 From: "Bjoern A. Zeeb" Date: Tue, 12 Jun 2012 12:10:10 +0000 Subject: [PATCH 149/340] Fix a problem where zero-length RDATA fields can cause named(8) to crash. [12:03] Correct a privilege escalation when returning from kernel if running FreeBSD/amd64 on non-AMD processors. [12:04] Fix reference count errors in IPv6 code. [EN-12:02] Security: CVE-2012-1667 Security: FreeBSD-SA-12:03.bind Security: CVE-2012-0217 Security: FreeBSD-SA-12:04.sysret Security: FreeBSD-EN-12:02.ipv6refcount Approved by: so (simon, bz) --- sys/amd64/amd64/trap.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/sys/amd64/amd64/trap.c b/sys/amd64/amd64/trap.c index ffacb87be29d..4216fd3f5d34 100644 --- a/sys/amd64/amd64/trap.c +++ b/sys/amd64/amd64/trap.c @@ -972,4 +972,21 @@ amd64_syscall(struct thread *td, int traced) syscallname(td->td_proc, sa.code))); syscallret(td, error, &sa); + + /* + * If the user-supplied value of %rip is not a canonical + * address, then some CPUs will trigger a ring 0 #GP during + * the sysret instruction. However, the fault handler would + * execute with the user's %gs and %rsp in ring 0 which would + * not be safe. Instead, preemptively kill the thread with a + * SIGBUS. + */ + if (td->td_frame->tf_rip >= VM_MAXUSER_ADDRESS) { + ksiginfo_init_trap(&ksi); + ksi.ksi_signo = SIGBUS; + ksi.ksi_code = BUS_OBJERR; + ksi.ksi_trapno = T_PROTFLT; + ksi.ksi_addr = (void *)td->td_frame->tf_rip; + trapsignal(td, &ksi); + } } From 6f17e3a31ad3d70df1a3cf15d033ddd4c367f30a Mon Sep 17 00:00:00 2001 From: Randall Stewart Date: Tue, 12 Jun 2012 12:40:15 +0000 Subject: [PATCH 150/340] Opps forgot to commit the flag. --- sys/net/if.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/net/if.h b/sys/net/if.h index 05be58fbb2cb..5b4db00a0f29 100644 --- a/sys/net/if.h +++ b/sys/net/if.h @@ -153,7 +153,7 @@ struct if_data { #define IFF_STATICARP 0x80000 /* (n) static ARP */ #define IFF_DYING 0x200000 /* (n) interface is winding down */ #define IFF_RENAMING 0x400000 /* (n) interface is being renamed */ - +#define IFF_GIF_WANTED 0x1000000 /* (n) The gif tunnel is wanted */ /* * Old names for driver flags so that user space tools can continue to use * the old (portable) names. From cef68c63ec8343691e954aae72d17834c699c978 Mon Sep 17 00:00:00 2001 From: Randall Stewart Date: Tue, 12 Jun 2012 12:44:17 +0000 Subject: [PATCH 151/340] Note to self. Have morning coffee *before* committing things. There is no mac_addr in the mbuf for BSD.. cheat like we are supposed to and use the csum field since our friend the gif tunnel itself will never use offload. --- sys/net/if_gif.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/sys/net/if_gif.c b/sys/net/if_gif.c index 56796d7ffbe3..1b45d38cf795 100644 --- a/sys/net/if_gif.c +++ b/sys/net/if_gif.c @@ -388,7 +388,8 @@ gif_start(struct ifnet *ifp) /* Now pull back the af in packet that * was saved in the address location. */ - bcopy(m->m_pkthdr.src_mac_addr, &af, sizeof(af)); + af = m->m_pkthdr.csum_data; + if (ifp->if_bridge) af = AF_LINK; @@ -503,10 +504,11 @@ gif_output(ifp, m, dst, ro) dst->sa_family = af; } af = dst->sa_family; - /* Now save the af in the inbound pkt mac - * address location. + /* Now save the af in the inbound pkt csum + * data, this is a cheat since really + * gif tunnels don't do offload. */ - bcopy(&af, m->m_pkthdr.src_mac_addr, sizeof(af)); + m->m_pkthdr.csum_data = af; if (!(ifp->if_flags & IFF_UP) || sc->gif_psrc == NULL || sc->gif_pdst == NULL) { m_freem(m); From c9e089587c6c825b85b07b8972cdfb6b1884ac1b Mon Sep 17 00:00:00 2001 From: Michael Tuexen Date: Tue, 12 Jun 2012 13:15:27 +0000 Subject: [PATCH 152/340] Unify the sending of ABORT, SHUTDOWN-COMPLETE and ERROR chunks. While there: Fix also some minor bugs and prepare for SCTP/DTLS. MFC after: 3 days --- sys/netinet/sctp_input.c | 4 +- sys/netinet/sctp_output.c | 729 +++++++------------------------------- sys/netinet/sctp_output.h | 4 +- 3 files changed, 133 insertions(+), 604 deletions(-) diff --git a/sys/netinet/sctp_input.c b/sys/netinet/sctp_input.c index 4a1cdf3cadd3..9833d8ea665f 100644 --- a/sys/netinet/sctp_input.c +++ b/sys/netinet/sctp_input.c @@ -1442,7 +1442,7 @@ sctp_process_cookie_existing(struct mbuf *m, int iphlen, int offset, ph = mtod(op_err, struct sctp_paramhdr *); ph->param_type = htons(SCTP_CAUSE_COOKIE_IN_SHUTDOWN); ph->param_length = htons(sizeof(struct sctp_paramhdr)); - sctp_send_operr_to(m, iphlen, op_err, cookie->peers_vtag, + sctp_send_operr_to(m, sh, cookie->peers_vtag, op_err, vrf_id, net->port); if (how_indx < sizeof(asoc->cookie_how)) asoc->cookie_how[how_indx] = 2; @@ -2570,7 +2570,7 @@ sctp_handle_cookie_echo(struct mbuf *m, int iphlen, int offset, if (tim == 0) tim = now.tv_usec - cookie->time_entered.tv_usec; scm->time_usec = htonl(tim); - sctp_send_operr_to(m, iphlen, op_err, cookie->peers_vtag, + sctp_send_operr_to(m, sh, cookie->peers_vtag, op_err, vrf_id, port); return (NULL); } diff --git a/sys/netinet/sctp_output.c b/sys/netinet/sctp_output.c index f173a3052a65..9538b545f9f5 100644 --- a/sys/netinet/sctp_output.c +++ b/sys/netinet/sctp_output.c @@ -4478,7 +4478,7 @@ sctp_lowlevel_chunk_output(struct sctp_inpcb *inp, #if defined(SCTP_WITH_NO_CSUM) SCTP_STAT_INCR(sctps_sendnocrc); #else - m->m_pkthdr.csum_flags = CSUM_SCTP_IPV6; + m->m_pkthdr.csum_flags = CSUM_SCTP; m->m_pkthdr.csum_data = 0; SCTP_STAT_INCR(sctps_sendhwcrc); #endif @@ -10854,19 +10854,20 @@ sctp_send_shutdown_complete(struct sctp_tcb *stcb, return; } -void -sctp_send_shutdown_complete2(struct mbuf *m, struct sctphdr *sh, - uint32_t vrf_id, uint16_t port) +static void +sctp_send_resp_msg(struct mbuf *m, struct sctphdr *sh, uint32_t vtag, + uint8_t type, struct mbuf *cause, uint32_t vrf_id, uint16_t port) { - /* formulate and SEND a SHUTDOWN-COMPLETE */ struct mbuf *o_pak; struct mbuf *mout; + struct sctphdr *shout; + struct sctp_chunkhdr *ch; struct ip *iph; - struct udphdr *udp = NULL; - int offset_out, len, mlen; - struct sctp_shutdown_complete_msg *comp_cp; + struct udphdr *udp; + int len, cause_len, padding_len, ret; #ifdef INET + sctp_route_t ro; struct ip *iph_out; #endif @@ -10875,31 +10876,59 @@ sctp_send_shutdown_complete2(struct mbuf *m, struct sctphdr *sh, #endif + /* Compute the length of the cause and add final padding. */ + cause_len = 0; + if (cause != NULL) { + struct mbuf *m_at, *m_last = NULL; + + for (m_at = cause; m_at; m_at = SCTP_BUF_NEXT(m_at)) { + if (SCTP_BUF_NEXT(m_at) == NULL) + m_last = m_at; + cause_len += SCTP_BUF_LEN(m_at); + } + padding_len = cause_len % 4; + if (padding_len != 0) { + padding_len = 4 - padding_len; + } + if (padding_len != 0) { + if (sctp_add_pad_tombuf(m_last, padding_len)) { + sctp_m_freem(cause); + return; + } + } + } else { + padding_len = 0; + } + /* Get an mbuf for the header. */ + len = sizeof(struct sctphdr) + sizeof(struct sctp_chunkhdr); iph = mtod(m, struct ip *); switch (iph->ip_v) { #ifdef INET case IPVERSION: - len = (sizeof(struct ip) + sizeof(struct sctp_shutdown_complete_msg)); + len += sizeof(struct ip); break; #endif #ifdef INET6 case IPV6_VERSION >> 4: - len = (sizeof(struct ip6_hdr) + sizeof(struct sctp_shutdown_complete_msg)); + len += sizeof(struct ip6_hdr); break; #endif default: - return; + break; } if (port) { len += sizeof(struct udphdr); } mout = sctp_get_mbuf_for_msg(len + max_linkhdr, 1, M_DONTWAIT, 1, MT_DATA); if (mout == NULL) { + if (cause) { + sctp_m_freem(cause); + } return; } SCTP_BUF_RESV_UF(mout, max_linkhdr); SCTP_BUF_LEN(mout) = len; - SCTP_BUF_NEXT(mout) = NULL; + SCTP_BUF_NEXT(mout) = cause; if (m->m_flags & M_FLOWID) { mout->m_pkthdr.flowid = m->m_pkthdr.flowid; mout->m_flags |= M_FLOWID; @@ -10910,18 +10939,14 @@ sctp_send_shutdown_complete2(struct mbuf *m, struct sctphdr *sh, #ifdef INET6 ip6_out = NULL; #endif - offset_out = 0; - switch (iph->ip_v) { #ifdef INET case IPVERSION: iph_out = mtod(mout, struct ip *); - - /* Fill in the IP header for the ABORT */ iph_out->ip_v = IPVERSION; - iph_out->ip_hl = (sizeof(struct ip) / 4); - iph_out->ip_tos = (u_char)0; - iph_out->ip_id = 0; + iph_out->ip_hl = (sizeof(struct ip) >> 2); + iph_out->ip_tos = 0; + iph_out->ip_id = ip_newid(); iph_out->ip_off = 0; iph_out->ip_ttl = MODULE_GLOBAL(ip_defttl); if (port) { @@ -10931,21 +10956,19 @@ sctp_send_shutdown_complete2(struct mbuf *m, struct sctphdr *sh, } iph_out->ip_src.s_addr = iph->ip_dst.s_addr; iph_out->ip_dst.s_addr = iph->ip_src.s_addr; - - /* let IP layer calculate this */ iph_out->ip_sum = 0; - offset_out += sizeof(*iph_out); - comp_cp = (struct sctp_shutdown_complete_msg *)( - (caddr_t)iph_out + offset_out); + len = sizeof(struct ip); + shout = (struct sctphdr *)((caddr_t)iph_out + len); break; #endif #ifdef INET6 case IPV6_VERSION >> 4: ip6 = (struct ip6_hdr *)iph; ip6_out = mtod(mout, struct ip6_hdr *); - - /* Fill in the IPv6 header for the ABORT */ - ip6_out->ip6_flow = ip6->ip6_flow; + ip6_out->ip6_flow = htonl(0x60000000); + if (V_ip6_auto_flowlabel) { + ip6_out->ip6_flow |= (htonl(ip6_randomflowlabel()) & IPV6_FLOWLABEL_MASK); + } ip6_out->ip6_hlim = MODULE_GLOBAL(ip6_defhlim); if (port) { ip6_out->ip6_nxt = IPPROTO_UDP; @@ -10954,78 +10977,84 @@ sctp_send_shutdown_complete2(struct mbuf *m, struct sctphdr *sh, } ip6_out->ip6_src = ip6->ip6_dst; ip6_out->ip6_dst = ip6->ip6_src; - /* - * ?? The old code had both the iph len + payload, I think - * this is wrong and would never have worked - */ - ip6_out->ip6_plen = sizeof(struct sctp_shutdown_complete_msg); - offset_out += sizeof(*ip6_out); - comp_cp = (struct sctp_shutdown_complete_msg *)( - (caddr_t)ip6_out + offset_out); + len = sizeof(struct ip6_hdr); + shout = (struct sctphdr *)((caddr_t)ip6_out + len); break; -#endif /* INET6 */ +#endif default: - /* Currently not supported. */ - sctp_m_freem(mout); - return; + len = 0; + shout = mtod(mout, struct sctphdr *); + break; } if (port) { if (htons(SCTP_BASE_SYSCTL(sctp_udp_tunneling_port)) == 0) { sctp_m_freem(mout); return; } - udp = (struct udphdr *)comp_cp; + udp = (struct udphdr *)shout; udp->uh_sport = htons(SCTP_BASE_SYSCTL(sctp_udp_tunneling_port)); udp->uh_dport = port; - udp->uh_ulen = htons(sizeof(struct sctp_shutdown_complete_msg) + sizeof(struct udphdr)); + udp->uh_sum = 0; + udp->uh_ulen = htons(sizeof(struct udphdr) + + sizeof(struct sctphdr) + + sizeof(struct sctp_chunkhdr) + + cause_len + padding_len); + len += sizeof(struct udphdr); + shout = (struct sctphdr *)((caddr_t)shout + sizeof(struct udphdr)); + } else { + udp = NULL; + } + shout->src_port = sh->dest_port; + shout->dest_port = sh->src_port; + shout->checksum = 0; + if (vtag) { + shout->v_tag = htonl(vtag); + } else { + shout->v_tag = sh->v_tag; + } + len += sizeof(struct sctphdr); + ch = (struct sctp_chunkhdr *)((caddr_t)shout + sizeof(struct sctphdr)); + ch->chunk_type = type; + if (vtag) { + ch->chunk_flags = 0; + } else { + ch->chunk_flags = SCTP_HAD_NO_TCB; + } + ch->chunk_length = htons(sizeof(struct sctp_chunkhdr) + cause_len); + len += sizeof(struct sctp_chunkhdr); + len += cause_len + padding_len; + + if (SCTP_GET_HEADER_FOR_OUTPUT(o_pak)) { + sctp_m_freem(mout); + return; + } + SCTP_ATTACH_CHAIN(o_pak, mout, len); #ifdef INET - if (iph_out) { + if (iph_out != NULL) { + /* zap the stack pointer to the route */ + bzero(&ro, sizeof(sctp_route_t)); + if (port) { if (V_udp_cksum) { udp->uh_sum = in_pseudo(iph_out->ip_src.s_addr, iph_out->ip_dst.s_addr, udp->uh_ulen + htons(IPPROTO_UDP)); } else { udp->uh_sum = 0; } } -#endif - offset_out += sizeof(struct udphdr); - comp_cp = (struct sctp_shutdown_complete_msg *)((caddr_t)comp_cp + sizeof(struct udphdr)); - } - if (SCTP_GET_HEADER_FOR_OUTPUT(o_pak)) { - /* no mbuf's */ - sctp_m_freem(mout); - return; - } - /* Now copy in and fill in the ABORT tags etc. */ - comp_cp->sh.src_port = sh->dest_port; - comp_cp->sh.dest_port = sh->src_port; - comp_cp->sh.checksum = 0; - comp_cp->sh.v_tag = sh->v_tag; - comp_cp->shut_cmp.ch.chunk_flags = SCTP_HAD_NO_TCB; - comp_cp->shut_cmp.ch.chunk_type = SCTP_SHUTDOWN_COMPLETE; - comp_cp->shut_cmp.ch.chunk_length = htons(sizeof(struct sctp_shutdown_complete_chunk)); - -#ifdef INET - if (iph_out != NULL) { - sctp_route_t ro; - int ret; - - mlen = SCTP_BUF_LEN(mout); - bzero(&ro, sizeof ro); - /* set IPv4 length */ - iph_out->ip_len = mlen; -#ifdef SCTP_PACKET_LOGGING - if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_LAST_PACKET_TRACING) - sctp_packet_log(mout, mlen); + iph_out->ip_len = len; +#ifdef SCTP_PACKET_LOGGING + if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_LAST_PACKET_TRACING) { + sctp_packet_log(mout, len); + } #endif if (port) { #if defined(SCTP_WITH_NO_CSUM) SCTP_STAT_INCR(sctps_sendnocrc); #else - comp_cp->sh.checksum = sctp_calculate_cksum(mout, offset_out); + shout->checksum = sctp_calculate_cksum(mout, sizeof(struct ip) + sizeof(struct udphdr)); SCTP_STAT_INCR(sctps_sendswcrc); #endif if (V_udp_cksum) { - SCTP_ENABLE_UDP_CSUM(mout); + SCTP_ENABLE_UDP_CSUM(o_pak); } } else { #if defined(SCTP_WITH_NO_CSUM) @@ -11036,40 +11065,36 @@ sctp_send_shutdown_complete2(struct mbuf *m, struct sctphdr *sh, SCTP_STAT_INCR(sctps_sendhwcrc); #endif } - SCTP_ATTACH_CHAIN(o_pak, mout, mlen); - /* out it goes */ SCTP_IP_OUTPUT(ret, o_pak, &ro, NULL, vrf_id); - /* Free the route if we got one back */ - if (ro.ro_rt) + if (ro.ro_rt) { RTFREE(ro.ro_rt); + } } #endif #ifdef INET6 if (ip6_out != NULL) { - int ret; - - mlen = SCTP_BUF_LEN(mout); + ip6_out->ip6_plen = len - sizeof(struct ip6_hdr); #ifdef SCTP_PACKET_LOGGING - if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_LAST_PACKET_TRACING) - sctp_packet_log(mout, mlen); + if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_LAST_PACKET_TRACING) { + sctp_packet_log(mout, len); + } #endif - SCTP_ATTACH_CHAIN(o_pak, mout, mlen); if (port) { #if defined(SCTP_WITH_NO_CSUM) SCTP_STAT_INCR(sctps_sendnocrc); #else - comp_cp->sh.checksum = sctp_calculate_cksum(mout, sizeof(struct ip6_hdr) + sizeof(struct udphdr)); + shout->checksum = sctp_calculate_cksum(mout, sizeof(struct ip6_hdr) + sizeof(struct udphdr)); SCTP_STAT_INCR(sctps_sendswcrc); #endif - if ((udp->uh_sum = in6_cksum(o_pak, IPPROTO_UDP, sizeof(struct ip6_hdr), mlen - sizeof(struct ip6_hdr))) == 0) { + if ((udp->uh_sum = in6_cksum(o_pak, IPPROTO_UDP, sizeof(struct ip6_hdr), len - sizeof(struct ip6_hdr))) == 0) { udp->uh_sum = 0xffff; } } else { #if defined(SCTP_WITH_NO_CSUM) SCTP_STAT_INCR(sctps_sendnocrc); #else - mout->m_pkthdr.csum_flags = CSUM_SCTP_IPV6; + mout->m_pkthdr.csum_flags = CSUM_SCTP; mout->m_pkthdr.csum_data = 0; SCTP_STAT_INCR(sctps_sendhwcrc); #endif @@ -11081,7 +11106,13 @@ sctp_send_shutdown_complete2(struct mbuf *m, struct sctphdr *sh, SCTP_STAT_INCR_COUNTER64(sctps_outpackets); SCTP_STAT_INCR_COUNTER64(sctps_outcontrolchunks); return; +} +void +sctp_send_shutdown_complete2(struct mbuf *m, struct sctphdr *sh, + uint32_t vrf_id, uint16_t port) +{ + sctp_send_resp_msg(m, sh, 0, SCTP_SHUTDOWN_COMPLETE, NULL, vrf_id, port); } void @@ -11913,528 +11944,24 @@ sctp_send_str_reset_req(struct sctp_tcb *stcb, void sctp_send_abort(struct mbuf *m, int iphlen, struct sctphdr *sh, uint32_t vtag, - struct mbuf *err_cause, uint32_t vrf_id, uint16_t port) + struct mbuf *cause, uint32_t vrf_id, uint16_t port) { - /*- - * Formulate the abort message, and send it back down. - */ - struct mbuf *o_pak; - struct mbuf *mout; - struct sctp_abort_msg *abm; - struct ip *iph; - struct udphdr *udp; - int iphlen_out, len; - -#ifdef INET - struct ip *iph_out; - -#endif -#ifdef INET6 - struct ip6_hdr *ip6, *ip6_out; - -#endif - - /* don't respond to ABORT with ABORT */ + /* Don't respond to an ABORT with an ABORT. */ if (sctp_is_there_an_abort_here(m, iphlen, &vtag)) { - if (err_cause) - sctp_m_freem(err_cause); + if (cause) + sctp_m_freem(cause); return; } - iph = mtod(m, struct ip *); - switch (iph->ip_v) { -#ifdef INET - case IPVERSION: - len = (sizeof(struct ip) + sizeof(struct sctp_abort_msg)); - break; -#endif -#ifdef INET6 - case IPV6_VERSION >> 4: - len = (sizeof(struct ip6_hdr) + sizeof(struct sctp_abort_msg)); - break; -#endif - default: - if (err_cause) { - sctp_m_freem(err_cause); - } - return; - } - if (port) { - len += sizeof(struct udphdr); - } - mout = sctp_get_mbuf_for_msg(len + max_linkhdr, 1, M_DONTWAIT, 1, MT_DATA); - if (mout == NULL) { - if (err_cause) { - sctp_m_freem(err_cause); - } - return; - } - SCTP_BUF_RESV_UF(mout, max_linkhdr); - SCTP_BUF_LEN(mout) = len; - SCTP_BUF_NEXT(mout) = err_cause; - if (m->m_flags & M_FLOWID) { - mout->m_pkthdr.flowid = m->m_pkthdr.flowid; - mout->m_flags |= M_FLOWID; - } -#ifdef INET - iph_out = NULL; -#endif -#ifdef INET6 - ip6_out = NULL; -#endif - switch (iph->ip_v) { -#ifdef INET - case IPVERSION: - iph_out = mtod(mout, struct ip *); - - /* Fill in the IP header for the ABORT */ - iph_out->ip_v = IPVERSION; - iph_out->ip_hl = (sizeof(struct ip) / 4); - iph_out->ip_tos = (u_char)0; - iph_out->ip_id = 0; - iph_out->ip_off = 0; - iph_out->ip_ttl = MODULE_GLOBAL(ip_defttl); - if (port) { - iph_out->ip_p = IPPROTO_UDP; - } else { - iph_out->ip_p = IPPROTO_SCTP; - } - iph_out->ip_src.s_addr = iph->ip_dst.s_addr; - iph_out->ip_dst.s_addr = iph->ip_src.s_addr; - /* let IP layer calculate this */ - iph_out->ip_sum = 0; - - iphlen_out = sizeof(*iph_out); - abm = (struct sctp_abort_msg *)((caddr_t)iph_out + iphlen_out); - break; -#endif -#ifdef INET6 - case IPV6_VERSION >> 4: - ip6 = (struct ip6_hdr *)iph; - ip6_out = mtod(mout, struct ip6_hdr *); - - /* Fill in the IP6 header for the ABORT */ - ip6_out->ip6_flow = ip6->ip6_flow; - ip6_out->ip6_hlim = MODULE_GLOBAL(ip6_defhlim); - if (port) { - ip6_out->ip6_nxt = IPPROTO_UDP; - } else { - ip6_out->ip6_nxt = IPPROTO_SCTP; - } - ip6_out->ip6_src = ip6->ip6_dst; - ip6_out->ip6_dst = ip6->ip6_src; - - iphlen_out = sizeof(*ip6_out); - abm = (struct sctp_abort_msg *)((caddr_t)ip6_out + iphlen_out); - break; -#endif /* INET6 */ - default: - /* Currently not supported */ - sctp_m_freem(mout); - return; - } - - udp = (struct udphdr *)abm; - if (port) { - if (htons(SCTP_BASE_SYSCTL(sctp_udp_tunneling_port)) == 0) { - sctp_m_freem(mout); - return; - } - udp->uh_sport = htons(SCTP_BASE_SYSCTL(sctp_udp_tunneling_port)); - udp->uh_dport = port; - /* set udp->uh_ulen later */ - udp->uh_sum = 0; - iphlen_out += sizeof(struct udphdr); - abm = (struct sctp_abort_msg *)((caddr_t)abm + sizeof(struct udphdr)); - } - abm->sh.src_port = sh->dest_port; - abm->sh.dest_port = sh->src_port; - abm->sh.checksum = 0; - if (vtag == 0) { - abm->sh.v_tag = sh->v_tag; - abm->msg.ch.chunk_flags = SCTP_HAD_NO_TCB; - } else { - abm->sh.v_tag = htonl(vtag); - abm->msg.ch.chunk_flags = 0; - } - abm->msg.ch.chunk_type = SCTP_ABORT_ASSOCIATION; - - if (err_cause) { - struct mbuf *m_tmp = err_cause; - int err_len = 0; - - /* get length of the err_cause chain */ - while (m_tmp != NULL) { - err_len += SCTP_BUF_LEN(m_tmp); - m_tmp = SCTP_BUF_NEXT(m_tmp); - } - len = SCTP_BUF_LEN(mout) + err_len; - if (err_len % 4) { - /* need pad at end of chunk */ - uint32_t cpthis = 0; - int padlen; - - padlen = 4 - (len % 4); - m_copyback(mout, len, padlen, (caddr_t)&cpthis); - len += padlen; - } - abm->msg.ch.chunk_length = htons(sizeof(abm->msg.ch) + err_len); - } else { - len = SCTP_BUF_LEN(mout); - abm->msg.ch.chunk_length = htons(sizeof(abm->msg.ch)); - } - - if (SCTP_GET_HEADER_FOR_OUTPUT(o_pak)) { - /* no mbuf's */ - sctp_m_freem(mout); - return; - } -#ifdef INET - if (iph_out != NULL) { - sctp_route_t ro; - int ret; - - /* zap the stack pointer to the route */ - bzero(&ro, sizeof ro); - if (port) { - udp->uh_ulen = htons(len - sizeof(struct ip)); - if (V_udp_cksum) { - udp->uh_sum = in_pseudo(iph_out->ip_src.s_addr, iph_out->ip_dst.s_addr, udp->uh_ulen + htons(IPPROTO_UDP)); - } else { - udp->uh_sum = 0; - } - } - SCTPDBG(SCTP_DEBUG_OUTPUT2, "sctp_send_abort calling ip_output:\n"); - SCTPDBG_PKT(SCTP_DEBUG_OUTPUT2, iph_out, &abm->sh); - /* set IPv4 length */ - iph_out->ip_len = len; - /* out it goes */ -#ifdef SCTP_PACKET_LOGGING - if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_LAST_PACKET_TRACING) - sctp_packet_log(mout, len); -#endif - SCTP_ATTACH_CHAIN(o_pak, mout, len); - if (port) { -#if defined(SCTP_WITH_NO_CSUM) - SCTP_STAT_INCR(sctps_sendnocrc); -#else - abm->sh.checksum = sctp_calculate_cksum(mout, iphlen_out); - SCTP_STAT_INCR(sctps_sendswcrc); -#endif - if (V_udp_cksum) { - SCTP_ENABLE_UDP_CSUM(o_pak); - } - } else { -#if defined(SCTP_WITH_NO_CSUM) - SCTP_STAT_INCR(sctps_sendnocrc); -#else - mout->m_pkthdr.csum_flags = CSUM_SCTP; - mout->m_pkthdr.csum_data = 0; - SCTP_STAT_INCR(sctps_sendhwcrc); -#endif - } - SCTP_IP_OUTPUT(ret, o_pak, &ro, NULL, vrf_id); - - /* Free the route if we got one back */ - if (ro.ro_rt) - RTFREE(ro.ro_rt); - } -#endif -#ifdef INET6 - if (ip6_out != NULL) { - int ret; - - if (port) { - udp->uh_ulen = htons(len - sizeof(struct ip6_hdr)); - } - SCTPDBG(SCTP_DEBUG_OUTPUT2, "sctp_send_abort calling ip6_output:\n"); - SCTPDBG_PKT(SCTP_DEBUG_OUTPUT2, (struct ip *)ip6_out, &abm->sh); - ip6_out->ip6_plen = len - sizeof(*ip6_out); -#ifdef SCTP_PACKET_LOGGING - if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_LAST_PACKET_TRACING) - sctp_packet_log(mout, len); -#endif - SCTP_ATTACH_CHAIN(o_pak, mout, len); - if (port) { -#if defined(SCTP_WITH_NO_CSUM) - SCTP_STAT_INCR(sctps_sendnocrc); -#else - abm->sh.checksum = sctp_calculate_cksum(mout, sizeof(struct ip6_hdr) + sizeof(struct udphdr)); - SCTP_STAT_INCR(sctps_sendswcrc); -#endif - if ((udp->uh_sum = in6_cksum(o_pak, IPPROTO_UDP, sizeof(struct ip6_hdr), len - sizeof(struct ip6_hdr))) == 0) { - udp->uh_sum = 0xffff; - } - } else { -#if defined(SCTP_WITH_NO_CSUM) - SCTP_STAT_INCR(sctps_sendnocrc); -#else - mout->m_pkthdr.csum_flags = CSUM_SCTP_IPV6; - mout->m_pkthdr.csum_data = 0; - SCTP_STAT_INCR(sctps_sendhwcrc); -#endif - } - SCTP_IP6_OUTPUT(ret, o_pak, NULL, NULL, NULL, vrf_id); - } -#endif - SCTP_STAT_INCR(sctps_sendpackets); - SCTP_STAT_INCR_COUNTER64(sctps_outpackets); - SCTP_STAT_INCR_COUNTER64(sctps_outcontrolchunks); + sctp_send_resp_msg(m, sh, vtag, SCTP_ABORT_ASSOCIATION, cause, vrf_id, port); + return; } void -sctp_send_operr_to(struct mbuf *m, int iphlen, struct mbuf *scm, uint32_t vtag, - uint32_t vrf_id, uint16_t port) +sctp_send_operr_to(struct mbuf *m, struct sctphdr *sh, uint32_t vtag, + struct mbuf *cause, uint32_t vrf_id, uint16_t port) { - struct mbuf *o_pak; - struct sctphdr *sh, *sh_out; - struct sctp_chunkhdr *ch; - struct ip *iph; - struct udphdr *udp = NULL; - struct mbuf *mout; - int iphlen_out, len; - -#ifdef INET - struct ip *iph_out; - -#endif -#ifdef INET6 - struct ip6_hdr *ip6, *ip6_out; - -#endif - - iph = mtod(m, struct ip *); - sh = (struct sctphdr *)((caddr_t)iph + iphlen); - switch (iph->ip_v) { -#ifdef INET - case IPVERSION: - len = (sizeof(struct ip) + sizeof(struct sctphdr) + sizeof(struct sctp_chunkhdr)); - break; -#endif -#ifdef INET6 - case IPV6_VERSION >> 4: - len = (sizeof(struct ip6_hdr) + sizeof(struct sctphdr) + sizeof(struct sctp_chunkhdr)); - break; -#endif - default: - if (scm) { - sctp_m_freem(scm); - } - return; - } - if (port) { - len += sizeof(struct udphdr); - } - mout = sctp_get_mbuf_for_msg(len + max_linkhdr, 1, M_DONTWAIT, 1, MT_DATA); - if (mout == NULL) { - if (scm) { - sctp_m_freem(scm); - } - return; - } - SCTP_BUF_RESV_UF(mout, max_linkhdr); - SCTP_BUF_LEN(mout) = len; - SCTP_BUF_NEXT(mout) = scm; - if (m->m_flags & M_FLOWID) { - mout->m_pkthdr.flowid = m->m_pkthdr.flowid; - mout->m_flags |= M_FLOWID; - } -#ifdef INET - iph_out = NULL; -#endif -#ifdef INET6 - ip6_out = NULL; -#endif - switch (iph->ip_v) { -#ifdef INET - case IPVERSION: - iph_out = mtod(mout, struct ip *); - - /* Fill in the IP header for the ABORT */ - iph_out->ip_v = IPVERSION; - iph_out->ip_hl = (sizeof(struct ip) / 4); - iph_out->ip_tos = (u_char)0; - iph_out->ip_id = 0; - iph_out->ip_off = 0; - iph_out->ip_ttl = MODULE_GLOBAL(ip_defttl); - if (port) { - iph_out->ip_p = IPPROTO_UDP; - } else { - iph_out->ip_p = IPPROTO_SCTP; - } - iph_out->ip_src.s_addr = iph->ip_dst.s_addr; - iph_out->ip_dst.s_addr = iph->ip_src.s_addr; - /* let IP layer calculate this */ - iph_out->ip_sum = 0; - - iphlen_out = sizeof(struct ip); - sh_out = (struct sctphdr *)((caddr_t)iph_out + iphlen_out); - break; -#endif -#ifdef INET6 - case IPV6_VERSION >> 4: - ip6 = (struct ip6_hdr *)iph; - ip6_out = mtod(mout, struct ip6_hdr *); - - /* Fill in the IP6 header for the ABORT */ - ip6_out->ip6_flow = ip6->ip6_flow; - ip6_out->ip6_hlim = MODULE_GLOBAL(ip6_defhlim); - if (port) { - ip6_out->ip6_nxt = IPPROTO_UDP; - } else { - ip6_out->ip6_nxt = IPPROTO_SCTP; - } - ip6_out->ip6_src = ip6->ip6_dst; - ip6_out->ip6_dst = ip6->ip6_src; - - iphlen_out = sizeof(struct ip6_hdr); - sh_out = (struct sctphdr *)((caddr_t)ip6_out + iphlen_out); - break; -#endif /* INET6 */ - default: - /* Currently not supported */ - sctp_m_freem(mout); - return; - } - - udp = (struct udphdr *)sh_out; - if (port) { - if (htons(SCTP_BASE_SYSCTL(sctp_udp_tunneling_port)) == 0) { - sctp_m_freem(mout); - return; - } - udp->uh_sport = htons(SCTP_BASE_SYSCTL(sctp_udp_tunneling_port)); - udp->uh_dport = port; - /* set udp->uh_ulen later */ - udp->uh_sum = 0; - iphlen_out += sizeof(struct udphdr); - sh_out = (struct sctphdr *)((caddr_t)udp + sizeof(struct udphdr)); - } - sh_out->src_port = sh->dest_port; - sh_out->dest_port = sh->src_port; - sh_out->v_tag = vtag; - sh_out->checksum = 0; - - ch = (struct sctp_chunkhdr *)((caddr_t)sh_out + sizeof(struct sctphdr)); - ch->chunk_type = SCTP_OPERATION_ERROR; - ch->chunk_flags = 0; - - if (scm) { - struct mbuf *m_tmp = scm; - int cause_len = 0; - - /* get length of the err_cause chain */ - while (m_tmp != NULL) { - cause_len += SCTP_BUF_LEN(m_tmp); - m_tmp = SCTP_BUF_NEXT(m_tmp); - } - len = SCTP_BUF_LEN(mout) + cause_len; - if (cause_len % 4) { - /* need pad at end of chunk */ - uint32_t cpthis = 0; - int padlen; - - padlen = 4 - (len % 4); - m_copyback(mout, len, padlen, (caddr_t)&cpthis); - len += padlen; - } - ch->chunk_length = htons(sizeof(struct sctp_chunkhdr) + cause_len); - } else { - len = SCTP_BUF_LEN(mout); - ch->chunk_length = htons(sizeof(struct sctp_chunkhdr)); - } - - if (SCTP_GET_HEADER_FOR_OUTPUT(o_pak)) { - /* no mbuf's */ - sctp_m_freem(mout); - return; - } -#ifdef INET - if (iph_out != NULL) { - sctp_route_t ro; - int ret; - - /* zap the stack pointer to the route */ - bzero(&ro, sizeof ro); - if (port) { - udp->uh_ulen = htons(len - sizeof(struct ip)); - if (V_udp_cksum) { - udp->uh_sum = in_pseudo(iph_out->ip_src.s_addr, iph_out->ip_dst.s_addr, udp->uh_ulen + htons(IPPROTO_UDP)); - } else { - udp->uh_sum = 0; - } - } - /* set IPv4 length */ - iph_out->ip_len = len; - /* out it goes */ -#ifdef SCTP_PACKET_LOGGING - if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_LAST_PACKET_TRACING) - sctp_packet_log(mout, len); -#endif - SCTP_ATTACH_CHAIN(o_pak, mout, len); - if (port) { -#if defined(SCTP_WITH_NO_CSUM) - SCTP_STAT_INCR(sctps_sendnocrc); -#else - sh_out->checksum = sctp_calculate_cksum(mout, iphlen_out); - SCTP_STAT_INCR(sctps_sendswcrc); -#endif - if (V_udp_cksum) { - SCTP_ENABLE_UDP_CSUM(o_pak); - } - } else { -#if defined(SCTP_WITH_NO_CSUM) - SCTP_STAT_INCR(sctps_sendnocrc); -#else - mout->m_pkthdr.csum_flags = CSUM_SCTP; - mout->m_pkthdr.csum_data = 0; - SCTP_STAT_INCR(sctps_sendhwcrc); -#endif - } - SCTP_IP_OUTPUT(ret, o_pak, &ro, NULL, vrf_id); - - /* Free the route if we got one back */ - if (ro.ro_rt) - RTFREE(ro.ro_rt); - } -#endif -#ifdef INET6 - if (ip6_out != NULL) { - int ret; - - if (port) { - udp->uh_ulen = htons(len - sizeof(struct ip6_hdr)); - } - ip6_out->ip6_plen = len - sizeof(*ip6_out); -#ifdef SCTP_PACKET_LOGGING - if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_LAST_PACKET_TRACING) - sctp_packet_log(mout, len); -#endif - SCTP_ATTACH_CHAIN(o_pak, mout, len); - if (port) { -#if defined(SCTP_WITH_NO_CSUM) - SCTP_STAT_INCR(sctps_sendnocrc); -#else - sh_out->checksum = sctp_calculate_cksum(mout, sizeof(struct ip6_hdr) + sizeof(struct udphdr)); - SCTP_STAT_INCR(sctps_sendswcrc); -#endif - if ((udp->uh_sum = in6_cksum(o_pak, IPPROTO_UDP, sizeof(struct ip6_hdr), len - sizeof(struct ip6_hdr))) == 0) { - udp->uh_sum = 0xffff; - } - } else { -#if defined(SCTP_WITH_NO_CSUM) - SCTP_STAT_INCR(sctps_sendnocrc); -#else - mout->m_pkthdr.csum_flags = CSUM_SCTP_IPV6; - mout->m_pkthdr.csum_data = 0; - SCTP_STAT_INCR(sctps_sendhwcrc); -#endif - } - SCTP_IP6_OUTPUT(ret, o_pak, NULL, NULL, NULL, vrf_id); - } -#endif - SCTP_STAT_INCR(sctps_sendpackets); - SCTP_STAT_INCR_COUNTER64(sctps_outpackets); - SCTP_STAT_INCR_COUNTER64(sctps_outcontrolchunks); + sctp_send_resp_msg(m, sh, vtag, SCTP_OPERATION_ERROR, cause, vrf_id, port); + return; } static struct mbuf * diff --git a/sys/netinet/sctp_output.h b/sys/netinet/sctp_output.h index 087d2c02ba7f..43d4cce4f1f4 100644 --- a/sys/netinet/sctp_output.h +++ b/sys/netinet/sctp_output.h @@ -204,7 +204,9 @@ void sctp_send_abort(struct mbuf *, int, struct sctphdr *, uint32_t, struct mbuf *, uint32_t, uint16_t); -void sctp_send_operr_to(struct mbuf *, int, struct mbuf *, uint32_t, uint32_t, uint16_t); +void +sctp_send_operr_to(struct mbuf *, struct sctphdr *, uint32_t, + struct mbuf *, uint32_t, uint16_t); #endif /* _KERNEL || __Userspace__ */ From 4013878828c1b05b9849353c4826c24d72dccaa2 Mon Sep 17 00:00:00 2001 From: Randall Stewart Date: Tue, 12 Jun 2012 13:31:32 +0000 Subject: [PATCH 153/340] Fix comment to better reflect how we are cheating and using the csum_data. Also fix style issues with the comments. --- sys/net/if_gif.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/sys/net/if_gif.c b/sys/net/if_gif.c index 1b45d38cf795..232c44a2241f 100644 --- a/sys/net/if_gif.c +++ b/sys/net/if_gif.c @@ -385,8 +385,9 @@ gif_start(struct ifnet *ifp) m->m_pkthdr.len -= GIF_HDR_LEN6; #endif #endif - /* Now pull back the af in packet that - * was saved in the address location. + /* + * Now pull back the af that we + * stashed in the csum_data. */ af = m->m_pkthdr.csum_data; @@ -504,9 +505,12 @@ gif_output(ifp, m, dst, ro) dst->sa_family = af; } af = dst->sa_family; - /* Now save the af in the inbound pkt csum - * data, this is a cheat since really - * gif tunnels don't do offload. + /* + * Now save the af in the inbound pkt csum + * data, this is a cheat since we are using + * the inbound csum_data field to carry the + * af over to the gif_start() routine, avoiding + * using yet another mtag. */ m->m_pkthdr.csum_data = af; if (!(ifp->if_flags & IFF_UP) || @@ -516,7 +520,8 @@ gif_output(ifp, m, dst, ro) goto end; } #ifdef ALTQ - /* Make altq aware of the bytes we will add + /* + * Make altq aware of the bytes we will add * when we actually send it. */ #ifdef INET From b36dcb9a396da984d07e424fc47a7216b74a87c7 Mon Sep 17 00:00:00 2001 From: Michael Tuexen Date: Tue, 12 Jun 2012 13:57:56 +0000 Subject: [PATCH 154/340] Deliver IPV6_TCLASS, IPV6_HOPLIMIT and IPV6_PKTINFO cmsgs (if requested) on IPV6 sockets, which have been marked to be not IPV6_V6ONLY, for each received IPV4 packet. MFC after: 3 days --- sys/netinet6/ip6_input.c | 90 +++++++++++++++++++++++++++++----------- 1 file changed, 65 insertions(+), 25 deletions(-) diff --git a/sys/netinet6/ip6_input.c b/sys/netinet6/ip6_input.c index e98453452a89..f5ec27a27994 100644 --- a/sys/netinet6/ip6_input.c +++ b/sys/netinet6/ip6_input.c @@ -1321,19 +1321,28 @@ ip6_savecontrol_v4(struct inpcb *inp, struct mbuf *m, struct mbuf **mp, } #endif - if ((ip6->ip6_vfc & IPV6_VERSION_MASK) != IPV6_VERSION) { - if (v4only != NULL) - *v4only = 1; - return (mp); - } - #define IS2292(inp, x, y) (((inp)->inp_flags & IN6P_RFC2292) ? (x) : (y)) /* RFC 2292 sec. 5 */ if ((inp->inp_flags & IN6P_PKTINFO) != 0) { struct in6_pktinfo pi6; - bcopy(&ip6->ip6_dst, &pi6.ipi6_addr, sizeof(struct in6_addr)); - in6_clearscope(&pi6.ipi6_addr); /* XXX */ + if ((ip6->ip6_vfc & IPV6_VERSION_MASK) != IPV6_VERSION) { +#ifdef INET + struct ip *ip; + + ip = mtod(m, struct ip *); + pi6.ipi6_addr.s6_addr32[0] = 0; + pi6.ipi6_addr.s6_addr32[1] = 0; + pi6.ipi6_addr.s6_addr32[2] = IPV6_ADDR_INT32_SMP; + pi6.ipi6_addr.s6_addr32[3] = ip->ip_dst.s_addr; +#else + /* We won't hit this code */ + bzero(&pi6.ipi6_addr, sizeof(struct in6_addr)); +#endif + } else { + bcopy(&ip6->ip6_dst, &pi6.ipi6_addr, sizeof(struct in6_addr)); + in6_clearscope(&pi6.ipi6_addr); /* XXX */ + } pi6.ipi6_ifindex = (m && m->m_pkthdr.rcvif) ? m->m_pkthdr.rcvif->if_index : 0; @@ -1345,8 +1354,21 @@ ip6_savecontrol_v4(struct inpcb *inp, struct mbuf *m, struct mbuf **mp, } if ((inp->inp_flags & IN6P_HOPLIMIT) != 0) { - int hlim = ip6->ip6_hlim & 0xff; + int hlim; + if ((ip6->ip6_vfc & IPV6_VERSION_MASK) != IPV6_VERSION) { +#ifdef INET + struct ip *ip; + + ip = mtod(m, struct ip *); + hlim = ip->ip_ttl; +#else + /* We won't hit this code */ + hlim = 0; +#endif + } else { + hlim = ip6->ip6_hlim & 0xff; + } *mp = sbcreatecontrol((caddr_t) &hlim, sizeof(int), IS2292(inp, IPV6_2292HOPLIMIT, IPV6_HOPLIMIT), IPPROTO_IPV6); @@ -1354,8 +1376,40 @@ ip6_savecontrol_v4(struct inpcb *inp, struct mbuf *m, struct mbuf **mp, mp = &(*mp)->m_next; } - if (v4only != NULL) - *v4only = 0; + if ((inp->inp_flags & IN6P_TCLASS) != 0) { + int tclass; + + if ((ip6->ip6_vfc & IPV6_VERSION_MASK) != IPV6_VERSION) { +#ifdef INET + struct ip *ip; + + ip = mtod(m, struct ip *); + tclass = ip->ip_tos; +#else + /* We won't hit this code */ + tclass = 0; +#endif + } else { + u_int32_t flowinfo; + + flowinfo = (u_int32_t)ntohl(ip6->ip6_flow & IPV6_FLOWINFO_MASK); + flowinfo >>= 20; + tclass = flowinfo & 0xff; + } + *mp = sbcreatecontrol((caddr_t) &tclass, sizeof(int), + IPV6_TCLASS, IPPROTO_IPV6); + if (*mp) + mp = &(*mp)->m_next; + } + + if (v4only != NULL) { + if ((ip6->ip6_vfc & IPV6_VERSION_MASK) != IPV6_VERSION) { + *v4only = 1; + } else { + *v4only = 0; + } + } + return (mp); } @@ -1369,20 +1423,6 @@ ip6_savecontrol(struct inpcb *in6p, struct mbuf *m, struct mbuf **mp) if (v4only) return; - if ((in6p->inp_flags & IN6P_TCLASS) != 0) { - u_int32_t flowinfo; - int tclass; - - flowinfo = (u_int32_t)ntohl(ip6->ip6_flow & IPV6_FLOWINFO_MASK); - flowinfo >>= 20; - - tclass = flowinfo & 0xff; - *mp = sbcreatecontrol((caddr_t) &tclass, sizeof(tclass), - IPV6_TCLASS, IPPROTO_IPV6); - if (*mp) - mp = &(*mp)->m_next; - } - /* * IPV6_HOPOPTS socket option. Recall that we required super-user * privilege for the option (see ip6_ctloutput), but it might be too From 3cca425b2916f7d7b2ed9e757c2ab48b99843044 Mon Sep 17 00:00:00 2001 From: Michael Tuexen Date: Tue, 12 Jun 2012 14:02:38 +0000 Subject: [PATCH 155/340] Add a IP_RECVTOS socket option to receive for received UDP/IPv4 packets a cmsg of type IP_RECVTOS which contains the TOS byte. Much like IP_RECVTTL does for TTL. This allows to implement a protocol on top of UDP and implementing ECN. MFC after: 3 days --- share/man/man4/ip.4 | 25 ++++++++++++++++++++++++- sys/netinet/in.h | 1 + sys/netinet/in_pcb.c | 4 ++++ sys/netinet/in_pcb.h | 3 ++- sys/netinet/ip_input.c | 6 ++++++ sys/netinet/ip_output.c | 8 ++++++++ 6 files changed, 45 insertions(+), 2 deletions(-) diff --git a/share/man/man4/ip.4 b/share/man/man4/ip.4 index 96b17c70473c..d89b54d93c04 100644 --- a/share/man/man4/ip.4 +++ b/share/man/man4/ip.4 @@ -32,7 +32,7 @@ .\" @(#)ip.4 8.2 (Berkeley) 11/30/93 .\" $FreeBSD$ .\" -.Dd November 14, 2011 +.Dd June 12, 2012 .Dt IP 4 .Os .Sh NAME @@ -286,6 +286,29 @@ cmsg_type = IP_RECVTTL .\" .Pp If the +.Dv IP_RECVTOS +option is enabled on a +.Dv SOCK_DGRAM +socket, the +.Xr recvmsg 2 +call will return the +.Tn IP +.Tn TOS +(type of service) field for a +.Tn UDP +datagram. +The msg_control field in the msghdr structure points to a buffer +that contains a cmsghdr structure followed by the +.Tn TOS . +The cmsghdr fields have the following values: +.Bd -literal +cmsg_len = CMSG_LEN(sizeof(u_char)) +cmsg_level = IPPROTO_IP +cmsg_type = IP_RECVTOS +.Ed +.\" +.Pp +If the .Dv IP_RECVIF option is enabled on a .Dv SOCK_DGRAM diff --git a/sys/netinet/in.h b/sys/netinet/in.h index 56150dad49cc..40f595295860 100644 --- a/sys/netinet/in.h +++ b/sys/netinet/in.h @@ -462,6 +462,7 @@ __END_DECLS #define IP_RECVTTL 65 /* bool; receive IP TTL w/dgram */ #define IP_MINTTL 66 /* minimum TTL for packet or drop */ #define IP_DONTFRAG 67 /* don't fragment packet */ +#define IP_RECVTOS 68 /* bool; receive IP TOS w/dgram */ /* IPv4 Source Filter Multicast API [RFC3678] */ #define IP_ADD_SOURCE_MEMBERSHIP 70 /* join a source-specific group */ diff --git a/sys/netinet/in_pcb.c b/sys/netinet/in_pcb.c index e509610470cd..dd1460f585b7 100644 --- a/sys/netinet/in_pcb.c +++ b/sys/netinet/in_pcb.c @@ -2295,6 +2295,10 @@ db_print_inpflags(int inp_flags) db_printf("%sINP_DONTFRAG", comma ? ", " : ""); comma = 1; } + if (inp_flags & INP_RECVTOS) { + db_printf("%sINP_RECVTOS", comma ? ", " : ""); + comma = 1; + } if (inp_flags & IN6P_IPV6_V6ONLY) { db_printf("%sIN6P_IPV6_V6ONLY", comma ? ", " : ""); comma = 1; diff --git a/sys/netinet/in_pcb.h b/sys/netinet/in_pcb.h index c17213b11068..4945b0f17942 100644 --- a/sys/netinet/in_pcb.h +++ b/sys/netinet/in_pcb.h @@ -509,6 +509,7 @@ void inp_4tuple_get(struct inpcb *inp, uint32_t *laddr, uint16_t *lp, #define INP_DONTFRAG 0x00000800 /* don't fragment packet */ #define INP_BINDANY 0x00001000 /* allow bind to any address */ #define INP_INHASHLIST 0x00002000 /* in_pcbinshash() has been called */ +#define INP_RECVTOS 0x00004000 /* receive incoming IP TOS */ #define IN6P_IPV6_V6ONLY 0x00008000 /* restrict AF_INET6 socket for v6 */ #define IN6P_PKTINFO 0x00010000 /* receive IP6 dst and I/F */ #define IN6P_HOPLIMIT 0x00020000 /* receive hoplimit */ @@ -528,7 +529,7 @@ void inp_4tuple_get(struct inpcb *inp, uint32_t *laddr, uint16_t *lp, #define IN6P_MTU 0x80000000 /* receive path MTU */ #define INP_CONTROLOPTS (INP_RECVOPTS|INP_RECVRETOPTS|INP_RECVDSTADDR|\ - INP_RECVIF|INP_RECVTTL|\ + INP_RECVIF|INP_RECVTTL|INP_RECVTOS|\ IN6P_PKTINFO|IN6P_HOPLIMIT|IN6P_HOPOPTS|\ IN6P_DSTOPTS|IN6P_RTHDR|IN6P_RTHDRDSTOPTS|\ IN6P_TCLASS|IN6P_AUTOFLOWLABEL|IN6P_RFC2292|\ diff --git a/sys/netinet/ip_input.c b/sys/netinet/ip_input.c index 728b50b558a8..ab78fa235c97 100644 --- a/sys/netinet/ip_input.c +++ b/sys/netinet/ip_input.c @@ -1684,6 +1684,12 @@ ip_savecontrol(struct inpcb *inp, struct mbuf **mp, struct ip *ip, if (*mp) mp = &(*mp)->m_next; } + if (inp->inp_flags & INP_RECVTOS) { + *mp = sbcreatecontrol((caddr_t) &ip->ip_tos, + sizeof(u_char), IP_RECVTOS, IPPROTO_IP); + if (*mp) + mp = &(*mp)->m_next; + } } /* diff --git a/sys/netinet/ip_output.c b/sys/netinet/ip_output.c index a9008c525afa..d13c39719ce7 100644 --- a/sys/netinet/ip_output.c +++ b/sys/netinet/ip_output.c @@ -984,6 +984,7 @@ ip_ctloutput(struct socket *so, struct sockopt *sopt) case IP_FAITH: case IP_ONESBCAST: case IP_DONTFRAG: + case IP_RECVTOS: error = sooptcopyin(sopt, &optval, sizeof optval, sizeof optval); if (error) @@ -1047,6 +1048,9 @@ ip_ctloutput(struct socket *so, struct sockopt *sopt) case IP_BINDANY: OPTSET(INP_BINDANY); break; + case IP_RECVTOS: + OPTSET(INP_RECVTOS); + break; } break; #undef OPTSET @@ -1156,6 +1160,7 @@ ip_ctloutput(struct socket *so, struct sockopt *sopt) case IP_ONESBCAST: case IP_DONTFRAG: case IP_BINDANY: + case IP_RECVTOS: switch (sopt->sopt_name) { case IP_TOS: @@ -1214,6 +1219,9 @@ ip_ctloutput(struct socket *so, struct sockopt *sopt) case IP_BINDANY: optval = OPTBIT(INP_BINDANY); break; + case IP_RECVTOS: + optval = OPTBIT(INP_RECVTOS); + break; } error = sooptcopyout(sopt, &optval, sizeof optval); break; From 0ca5e953e74b23ebcdc7ea67bd54d390dbb39382 Mon Sep 17 00:00:00 2001 From: Martin Matuska Date: Tue, 12 Jun 2012 14:40:19 +0000 Subject: [PATCH 156/340] Document the -v flag for zpool list. PR: 168970 Suggested by: Marcelo Araujo MFC after: 3 days --- cddl/contrib/opensolaris/cmd/zpool/zpool.8 | 2 ++ cddl/contrib/opensolaris/cmd/zpool/zpool_main.c | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/cddl/contrib/opensolaris/cmd/zpool/zpool.8 b/cddl/contrib/opensolaris/cmd/zpool/zpool.8 index 89333c7e21f7..ac51a4cd2ddc 100644 --- a/cddl/contrib/opensolaris/cmd/zpool/zpool.8 +++ b/cddl/contrib/opensolaris/cmd/zpool/zpool.8 @@ -1348,6 +1348,8 @@ reports are printed. .It Fl H Scripted mode. Do not display headers, and separate fields by a single tab instead of arbitrary space. +.It Fl v +Show more detailed information. .It Fl o Ar property Ns Op , Ns Ar ... Comma-separated list of properties to display. See the .Qq Sx Properties diff --git a/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c b/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c index 54a747091d44..ffca56bef07a 100644 --- a/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c +++ b/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c @@ -235,7 +235,7 @@ get_usage(zpool_help_t idx) { case HELP_LABELCLEAR: return (gettext("\tlabelclear [-f] \n")); case HELP_LIST: - return (gettext("\tlist [-H] [-o property[,...]] " + return (gettext("\tlist [-Hv] [-o property[,...]] " "[-T d|u] [pool] ... [interval [count]]\n")); case HELP_OFFLINE: return (gettext("\toffline [-t] ...\n")); From f584d74b4d995497ac2b23f0aabfd6bd0d5e0441 Mon Sep 17 00:00:00 2001 From: Michael Tuexen Date: Tue, 12 Jun 2012 14:56:08 +0000 Subject: [PATCH 157/340] Add a cmsg of type IP_TOS for UDP/IPv4 sockets to specify the TOS byte. MFC after: 3 days --- sys/netinet/udp_usrreq.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/sys/netinet/udp_usrreq.c b/sys/netinet/udp_usrreq.c index d3e7acaa0c65..9f947a69367f 100644 --- a/sys/netinet/udp_usrreq.c +++ b/sys/netinet/udp_usrreq.c @@ -956,6 +956,7 @@ udp_output(struct inpcb *inp, struct mbuf *m, struct sockaddr *addr, int ipflags; u_short fport, lport; int unlock_udbinfo; + u_char tos; /* * udp_output() may need to temporarily bind or connect the current @@ -972,6 +973,7 @@ udp_output(struct inpcb *inp, struct mbuf *m, struct sockaddr *addr, src.sin_family = 0; INP_RLOCK(inp); + tos = inp->inp_ip_tos; if (control != NULL) { /* * XXX: Currently, we assume all the optional information is @@ -1010,6 +1012,14 @@ udp_output(struct inpcb *inp, struct mbuf *m, struct sockaddr *addr, *(struct in_addr *)CMSG_DATA(cm); break; + case IP_TOS: + if (cm->cmsg_len != CMSG_LEN(sizeof(u_char))) { + error = EINVAL; + break; + } + tos = *(u_char *)CMSG_DATA(cm); + break; + default: error = ENOPROTOOPT; break; @@ -1225,7 +1235,7 @@ udp_output(struct inpcb *inp, struct mbuf *m, struct sockaddr *addr, ui->ui_sum = 0; ((struct ip *)ui)->ip_len = sizeof (struct udpiphdr) + len; ((struct ip *)ui)->ip_ttl = inp->inp_ip_ttl; /* XXX */ - ((struct ip *)ui)->ip_tos = inp->inp_ip_tos; /* XXX */ + ((struct ip *)ui)->ip_tos = tos; /* XXX */ UDPSTAT_INC(udps_opackets); if (unlock_udbinfo == UH_WLOCKED) From b28518a59a5c8a70ac288e4442515ddda1da2c6d Mon Sep 17 00:00:00 2001 From: "Pedro F. Giffuni" Date: Tue, 12 Jun 2012 15:04:18 +0000 Subject: [PATCH 158/340] Add experimental support for amdfam10/barcelona from the GCC 4.3 branch. Initial support for the AMD barcelona chipsets has been available in the gcc43 branch under GPLv2 but was not included when the Core 2 support was brought to the system gcc. AMD and some linux distributions (OpenSUSE) did a backport of the amdfam10 support and made them available. Unfortunately this is still experimental and while it can improve performance, enabling the CPUTYPE may break some C++ ports (like clang). Special care was taken to make sure that the patches predate the GPLv3 switch upstream. Tested by: Vladimir Kushnir Reviewed by: mm Approved by: jhb (mentor) MFC after: 2 weeks --- contrib/gcc/ChangeLog.gcc43 | 273 +++++++++++++- contrib/gcc/builtins.c | 18 + contrib/gcc/config.gcc | 16 +- contrib/gcc/config/i386/ammintrin.h | 73 ++++ contrib/gcc/config/i386/athlon.md | 378 +++++++++++++++++--- contrib/gcc/config/i386/driver-i386.c | 11 +- contrib/gcc/config/i386/i386.c | 495 ++++++++++++++++++++++---- contrib/gcc/config/i386/i386.h | 132 +++---- contrib/gcc/config/i386/i386.md | 360 ++++++++++++++++--- contrib/gcc/config/i386/i386.opt | 18 +- contrib/gcc/config/i386/mmx.md | 8 +- contrib/gcc/config/i386/pmmintrin.h | 8 +- contrib/gcc/config/i386/sse.md | 133 ++++++- contrib/gcc/config/i386/tmmintrin.h | 232 +----------- contrib/gcc/doc/extend.texi | 17 + contrib/gcc/doc/invoke.texi | 14 +- contrib/gcc/fold-const.c | 8 +- contrib/gcc/gimplify.c | 4 +- contrib/gcc/tree-ssa-ccp.c | 4 +- contrib/gcc/tree-ssa-pre.c | 17 + 20 files changed, 1725 insertions(+), 494 deletions(-) create mode 100644 contrib/gcc/config/i386/ammintrin.h diff --git a/contrib/gcc/ChangeLog.gcc43 b/contrib/gcc/ChangeLog.gcc43 index 23b3a392eff4..d15236b099ce 100644 --- a/contrib/gcc/ChangeLog.gcc43 +++ b/contrib/gcc/ChangeLog.gcc43 @@ -1,3 +1,8 @@ +2007-05-01 Dwarakanath Rajagopal + + * doc/invoke.texi: Fix typo, 'AMD Family 10h core' instead of + 'AMD Family 10 core'. + 2007-05-01 Dwarakanath Rajagopal (r124339) * config/i386/i386.c (override_options): Accept k8-sse3, opteron-sse3 @@ -5,10 +10,39 @@ with SSE3 instruction set support. * doc/invoke.texi: Likewise. +2007-05-01 Dwarakanath Rajagopal + + * config/i386/i386.c (override_options): Tuning 32-byte loop + alignment for amdfam10 architecture. Increasing the max loop + alignment to 24 bytes. + +2007-04-12 Richard Guenther + + PR tree-optimization/24689 + PR tree-optimization/31307 + * fold-const.c (operand_equal_p): Compare INTEGER_CST array + indices by value. + * gimplify.c (canonicalize_addr_expr): To be consistent with + gimplify_compound_lval only set operands two and three of + ARRAY_REFs if they are not gimple_min_invariant. This makes + it never at this place. + * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise. + 2007-04-07 H.J. Lu (r123639) * config/i386/i386.c (ix86_handle_option): Handle SSSE3. +2007-03-28 Dwarakanath Rajagopal + + * config.gcc: Accept barcelona as a variant of amdfam10. + * config/i386/i386.c (override_options): Likewise. + * doc/invoke.texi: Likewise. + +2007-02-09 Dwarakanath Rajagopal + + * config/i386/driver-i386.c: Turn on -mtune=native for AMDFAM10. + (bit_SSE4a): New. + 2007-02-08 Harsha Jagasia (r121726) * config/i386/xmmintrin.h: Make inclusion of emmintrin.h @@ -26,6 +60,173 @@ * config/i386/i386.c (override_options): Set PTA_SSSE3 for core2. +2007-02-05 Harsha Jagasia + + * config/i386/athlon.md (athlon_fldxf_k8, athlon_fld_k8, + athlon_fstxf_k8, athlon_fst_k8, athlon_fist, athlon_fmov, + athlon_fadd_load, athlon_fadd_load_k8, athlon_fadd, athlon_fmul, + athlon_fmul_load, athlon_fmul_load_k8, athlon_fsgn, + athlon_fdiv_load, athlon_fdiv_load_k8, athlon_fdiv_k8, + athlon_fpspc_load, athlon_fpspc, athlon_fcmov_load, + athlon_fcmov_load_k8, athlon_fcmov_k8, athlon_fcomi_load_k8, + athlon_fcomi, athlon_fcom_load_k8, athlon_fcom): Added amdfam10. + +2007-02-05 Harsha Jagasia + + * config/i386/i386.md (x86_sahf_1, cmpfp_i_mixed, cmpfp_i_sse, + cmpfp_i_i387, cmpfp_iu_mixed, cmpfp_iu_sse, cmpfp_iu_387, + swapsi, swaphi_1, swapqi_1, swapdi_rex64, fix_truncsfdi_sse, + fix_truncdfdi_sse, fix_truncsfsi_sse, fix_truncdfsi_sse, + x86_fldcw_1, floatsisf2_mixed, floatsisf2_sse, floatdisf2_mixed, + floatdisf2_sse, floatsidf2_mixed, floatsidf2_sse, + floatdidf2_mixed, floatdidf2_sse, muldi3_1_rex64, mulsi3_1, + mulsi3_1_zext, mulhi3_1, mulqi3_1, umulqihi3_1, mulqihi3_insn, + umulditi3_insn, umulsidi3_insn, mulditi3_insn, mulsidi3_insn, + umuldi3_highpart_rex64, umulsi3_highpart_insn, + umulsi3_highpart_zext, smuldi3_highpart_rex64, + smulsi3_highpart_insn, smulsi3_highpart_zext, x86_64_shld, + x86_shld_1, x86_64_shrd, sqrtsf2_mixed, sqrtsf2_sse, + sqrtsf2_i387, sqrtdf2_mixed, sqrtdf2_sse, sqrtdf2_i387, + sqrtextendsfdf2_i387, sqrtxf2, sqrtextendsfxf2_i387, + sqrtextenddfxf2_i387): Added amdfam10_decode. + + * config/i386/athlon.md (athlon_idirect_amdfam10, + athlon_ivector_amdfam10, athlon_idirect_load_amdfam10, + athlon_ivector_load_amdfam10, athlon_idirect_both_amdfam10, + athlon_ivector_both_amdfam10, athlon_idirect_store_amdfam10, + athlon_ivector_store_amdfam10): New define_insn_reservation. + (athlon_idirect_loadmov, athlon_idirect_movstore): Added + amdfam10. + +2007-02-05 Harsha Jagasia + + * config/i386/athlon.md (athlon_call_amdfam10, + athlon_pop_amdfam10, athlon_lea_amdfam10): New + define_insn_reservation. + (athlon_branch, athlon_push, athlon_leave_k8, athlon_imul_k8, + athlon_imul_k8_DI, athlon_imul_mem_k8, athlon_imul_mem_k8_DI, + athlon_idiv, athlon_idiv_mem, athlon_str): Added amdfam10. + +2007-02-05 Harsha Jagasia + + * config/i386/athlon.md (athlon_sseld_amdfam10, + athlon_mmxld_amdfam10, athlon_ssest_amdfam10, + athlon_mmxssest_short_amdfam10): New define_insn_reservation. + +2007-02-05 Harsha Jagasia + + * config/i386/athlon.md (athlon_sseins_amdfam10): New + define_insn_reservation. + * config/i386/i386.md (sseins): Added sseins to define_attr type + and define_attr unit. + * config/i386/sse.md: Set type attribute to sseins for insertq + and insertqi. + +2007-02-05 Harsha Jagasia + + * config/i386/athlon.md (sselog_load_amdfam10, sselog_amdfam10, + ssecmpvector_load_amdfam10, ssecmpvector_amdfam10, + ssecomi_load_amdfam10, ssecomi_amdfam10, + sseaddvector_load_amdfam10, sseaddvector_amdfam10): New + define_insn_reservation. + (ssecmp_load_k8, ssecmp, sseadd_load_k8, seadd): Added amdfam10. + +2007-02-05 Harsha Jagasia + + * config/i386/athlon.md (cvtss2sd_load_amdfam10, + cvtss2sd_amdfam10, cvtps2pd_load_amdfam10, cvtps2pd_amdfam10, + cvtsi2sd_load_amdfam10, cvtsi2ss_load_amdfam10, + cvtsi2sd_amdfam10, cvtsi2ss_amdfam10, cvtsd2ss_load_amdfam10, + cvtsd2ss_amdfam10, cvtpd2ps_load_amdfam10, cvtpd2ps_amdfam10, + cvtsX2si_load_amdfam10, cvtsX2si_amdfam10): New + define_insn_reservation. + + * config/i386/sse.md (cvtsi2ss, cvtsi2ssq, cvtss2si, + cvtss2siq, cvttss2si, cvttss2siq, cvtsi2sd, cvtsi2sdq, + cvtsd2si, cvtsd2siq, cvttsd2si, cvttsd2siq, + cvtpd2dq, cvttpd2dq, cvtsd2ss, cvtss2sd, + cvtpd2ps, cvtps2pd): Added amdfam10_decode attribute. + +2007-02-05 Harsha Jagasia + + * config/i386/athlon.md (athlon_ssedivvector_amdfam10, + athlon_ssedivvector_load_amdfam10, athlon_ssemulvector_amdfam10, + athlon_ssemulvector_load_amdfam10): New define_insn_reservation. + (athlon_ssediv, athlon_ssediv_load_k8, athlon_ssemul, + athlon_ssemul_load_k8): Added amdfam10. + +2007-02-05 Harsha Jagasia + + * config/i386/i386.h (TARGET_SSE_UNALIGNED_MOVE_OPTIMAL): New macro. + (x86_sse_unaligned_move_optimal): New variable. + + * config/i386/i386.c (x86_sse_unaligned_move_optimal): Enable for + m_AMDFAM10. + (ix86_expand_vector_move_misalign): Add code to generate movupd/movups + for unaligned vector SSE double/single precision loads for AMDFAM10. + +2007-02-05 Harsha Jagasia + + * config/i386/i386.h (TARGET_AMDFAM10): New macro. + (TARGET_CPU_CPP_BUILTINS): Add code for amdfam10. + Define TARGET_CPU_DEFAULT_amdfam10. + (TARGET_CPU_DEFAULT_NAMES): Add amdfam10. + (processor_type): Add PROCESSOR_AMDFAM10. + + * config/i386/i386.md: Add amdfam10 as a new cpu attribute to match + processor_type in config/i386/i386.h. + Enable imul peepholes for TARGET_AMDFAM10. + + * config.gcc: Add support for --with-cpu option for amdfam10. + + * config/i386/i386.c (amdfam10_cost): New variable. + (m_AMDFAM10): New macro. + (m_ATHLON_K8_AMDFAM10): New macro. + (x86_use_leave, x86_push_memory, x86_movx, x86_unroll_strlen, + x86_cmove, x86_3dnow_a, x86_deep_branch, x86_use_simode_fiop, + x86_promote_QImode, x86_integer_DFmode_moves, + x86_partial_reg_dependency, x86_memory_mismatch_stall, + x86_accumulate_outgoing_args, x86_arch_always_fancy_math_387, + x86_sse_partial_reg_dependency, x86_sse_typeless_stores, + x86_use_ffreep, x86_use_incdec, x86_four_jump_limit, + x86_schedule, x86_use_bt, x86_cmpxchg16b, x86_pad_returns): + Enable/disable for amdfam10. + (override_options): Add amdfam10_cost to processor_target_table. + Set up PROCESSOR_AMDFAM10 for amdfam10 entry in + processor_alias_table. + (ix86_issue_rate): Add PROCESSOR_AMDFAM10. + (ix86_adjust_cost): Add code for amdfam10. + +2007-02-05 Harsha Jagasia + + * config/i386/i386.opt: Add new Advanced Bit Manipulation (-mabm) + instruction set feature flag. Add new (-mpopcnt) flag for popcnt + instruction. Add new SSE4A (-msse4a) instruction set feature flag. + * config/i386/i386.h: Add builtin definition for SSE4A. + * config/i386/i386.md: Add support for ABM instructions + (popcnt and lzcnt). + * config/i386/sse.md: Add support for SSE4A instructions + (movntss, movntsd, extrq, insertq). + * config/i386/i386.c: Add support for ABM and SSE4A builtins. + Add -march=amdfam10 flag. + * config/i386/ammintrin.h: Add support for SSE4A intrinsics. + * doc/invoke.texi: Add documentation on flags for sse4a, abm, popcnt + and amdfam10. + * doc/extend.texi: Add documentation for SSE4A builtins. + +2007-01-24 Jakub Jelinek + + * config/i386/i386.h (x86_cmpxchg16b): Remove const. + (TARGET_CMPXCHG16B): Define to x86_cmpxchg16b. + * config/i386/i386.c (x86_cmpxchg16b): Remove const. + (override_options): Add PTA_CX16 flag. Set x86_cmpxchg16b + for CPUs that have PTA_CX16 set. + +2007-01-18 Michael Meissner + + * config/i386/i386.c (ix86_compute_frame_layout): Make fprintf's + in #if 0 code type correct. + 2007-01-17 Eric Christopher (r120846) * config.gcc: Support core2 processor. @@ -62,7 +263,30 @@ x86_pad_returns): Add m_CORE2. (override_options): Add entries for Core2. (ix86_issue_rate): Add case for Core2. + +2006-10-28 Uros Bizjak + + * config/i386/i386.h (GENERAL_REGNO_P): Use STACK_POINTER_REGNUM. + (NON_QI_REG_P): Use IN_RANGE. + (REX_INT_REGNO_P): Use IN_RANGE. + (FP_REGNO_P): Use IN_RANGE. + (SSE_REGNO_P): Use IN_RANGE. + (REX_SSE_REGNO_P): Use IN_RANGE. + (MMX_REGNO_P): Use IN_RANGE. + (STACK_REGNO_P): New macro. + (STACK_REG_P): Use STACK_REGNO_P. + (NON_STACK_REG_P): Use STACK_REGNO_P. + (REGNO_OK_FOR_INDEX_P): Use REX_INT_REGNO_P. + (REGNO_OK_FOR_BASE_P): Use GENERAL_REGNO_P. + (REG_OK_FOR_INDEX_NONSTRICT_P): Use REX_INT_REGNO_P. + (REG_OK_FOR_BASE_NONSTRICT_P): Use GENERAL_REGNO_P. + (HARD_REGNO_RENAME_OK): Use !IN_RANGE. +2006-10-28 Uros Bizjak + + * config/i386/i386.c (output_387_ffreep): Create output from a + template string for !HAVE_AS_IX86_FFREEP. + 2006-10-27 Vladimir Makarov (r118090) * config/i386/i386.h (TARGET_GEODE): @@ -95,7 +319,31 @@ * config/i386/geode.md: New file. * doc/invoke.texi: Add entry about geode processor. - + +2006-10-24 Uros Bizjak + + * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Define to 54. + (FIXED_REGISTERS, CALL_USED_REGISTERS): Add fpcr register. + (REG_ALLOC_ORDER): Add one element to allocate fpcr register. + (FRAME_POINTER_REGNUM): Update register number to 21. + (REG_CLASS_CONTENTS): Update contents for added fpcr register. + (HI_REGISTER_NAMES): Add "fpcr" for fpcr register. + + * config/i386/i386.c (regclass_map): Add fpcr entry. + (dbx_register_map, dbx64_register_map, svr4_dbx_register_map): + Add fpcr entry. + (print_reg): Assert REGNO (x) != FPCR_REG. + + * config/i386/i386.md (FPCR_REG, R11_REG): New constants. + (DIRFLAG_REG): Renumber. + (x86_fnstcw_1, x86_fldcw_1): Use FPCR_REG instead of FPSR_REG. + (*sibcall_1_rex64_v, *sibcall_value_1_rex64_v): Use R11_REG. + (sse_prologue_save, *sse_prologue_save_insn): Renumber + hardcoded SSE register numbers. + + * config/i386/mmx.md (mmx_emms, mmx_femms): Renumber + hardcoded MMX register numbers. + 2006-10-24 Richard Guenther PR middle-end/28796 @@ -104,6 +352,17 @@ for deciding optimizations in consistency with fold-const.c (fold_builtin_unordered_cmp): Likewise. +2006-10-24 Richard Guenther + + * builtins.c (fold_builtin_floor): Fold floor (x) where + x is nonnegative to trunc (x). + (fold_builtin_int_roundingfn): Fold lfloor (x) where x is + nonnegative to FIX_TRUNC_EXPR. + +2006-10-22 H.J. Lu + + * config/i386/tmmintrin.h: Remove the duplicated content. + 2006-10-22 H.J. Lu (r117958) * config.gcc (i[34567]86-*-*): Add tmmintrin.h to extra_headers. @@ -170,6 +429,18 @@ * doc/invoke.texi: Document -mssse3/-mno-ssse3 switches. +2006-10-21 H.J. Lu + + * config/i386/i386.md (UNSPEC_LDQQU): Renamed to ... + (UNSPEC_LDDQU): This. + * config/i386/sse.md (sse3_lddqu): Updated. + +2006-10-21 Richard Guenther + + PR tree-optimization/3511 + * tree-ssa-pre.c (phi_translate): Fold CALL_EXPRs that + got new invariant arguments during PHI translation. + 2006-10-21 Richard Guenther * builtins.c (fold_builtin_classify): Fix typo. diff --git a/contrib/gcc/builtins.c b/contrib/gcc/builtins.c index a65d725bd281..33218210f5a9 100644 --- a/contrib/gcc/builtins.c +++ b/contrib/gcc/builtins.c @@ -7355,6 +7355,12 @@ fold_builtin_ceil (tree fndecl, tree arglist) } } + /* Fold floor (x) where x is nonnegative to trunc (x). */ + if (tree_expr_nonnegative_p (arg)) + return build_function_call_expr (mathfn_built_in (TREE_TYPE (arg), + BUILT_IN_TRUNC), + arglist); + return fold_trunc_transparent_mathfn (fndecl, arglist); } @@ -7442,6 +7448,18 @@ fold_builtin_int_roundingfn (tree fndecl, tree arglist) } } + switch (DECL_FUNCTION_CODE (fndecl)) + { + CASE_FLT_FN (BUILT_IN_LFLOOR): + CASE_FLT_FN (BUILT_IN_LLFLOOR): + /* Fold lfloor (x) where x is nonnegative to FIX_TRUNC (x). */ + if (tree_expr_nonnegative_p (arg)) + return fold_build1 (FIX_TRUNC_EXPR, TREE_TYPE (TREE_TYPE (fndecl)), + arg); + break; + default:; + } + return fold_fixed_mathfn (fndecl, arglist); } diff --git a/contrib/gcc/config.gcc b/contrib/gcc/config.gcc index 44065937aeb0..3e4e596f630d 100644 --- a/contrib/gcc/config.gcc +++ b/contrib/gcc/config.gcc @@ -269,12 +269,12 @@ xscale-*-*) i[34567]86-*-*) cpu_type=i386 extra_headers="mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h - pmmintrin.h tmmintrin.h" + pmmintrin.h tmmintrin.h ammintrin.h" ;; x86_64-*-*) cpu_type=i386 extra_headers="mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h - pmmintrin.h tmmintrin.h" + pmmintrin.h tmmintrin.h ammintrin.h" need_64bit_hwint=yes ;; ia64-*-*) @@ -1209,14 +1209,14 @@ i[34567]86-*-solaris2*) # FIXME: -m64 for i[34567]86-*-* should be allowed just # like -m32 for x86_64-*-*. case X"${with_cpu}" in - Xgeneric|Xcore2|Xnocona|Xx86-64|Xk8|Xopteron|Xathlon64|Xathlon-fx) + Xgeneric|Xcore2|Xnocona|Xx86-64|Xamdfam10|Xbarcelona|Xk8|Xopteron|Xathlon64|Xathlon-fx) ;; X) with_cpu=generic ;; *) echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2 - echo "generic core2 nocona x86-64 k8 opteron athlon64 athlon-fx" 1>&2 + echo "generic core2 nocona x86-64amd fam10 barcelona k8 opteron athlon64 athlon-fx" 1>&2 exit 1 ;; esac @@ -2515,6 +2515,9 @@ if test x$with_cpu = x ; then ;; i686-*-* | i786-*-*) case ${target_noncanonical} in + amdfam10-*|barcelona-*) + with_cpu=amdfam10 + ;; k8-*|opteron-*|athlon_64-*) with_cpu=k8 ;; @@ -2555,6 +2558,9 @@ if test x$with_cpu = x ; then ;; x86_64-*-*) case ${target_noncanonical} in + amdfam10-*|barcelona-*) + with_cpu=amdfam10 + ;; k8-*|opteron-*|athlon_64-*) with_cpu=k8 ;; @@ -2795,7 +2801,7 @@ case "${target}" in esac # OK ;; - "" | k8 | opteron | athlon64 | athlon-fx | nocona | core2 | generic) + "" | amdfam10 | barcelona | k8 | opteron | athlon64 | athlon-fx | nocona | core2 | generic) # OK ;; *) diff --git a/contrib/gcc/config/i386/ammintrin.h b/contrib/gcc/config/i386/ammintrin.h new file mode 100644 index 000000000000..869c2880e25b --- /dev/null +++ b/contrib/gcc/config/i386/ammintrin.h @@ -0,0 +1,73 @@ +/* Copyright (C) 2007 Free Software Foundation, Inc. + + This file is part of GCC. + + GCC is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + GCC is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with GCC; see the file COPYING. If not, write to + the Free Software Foundation, 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. */ + +/* As a special exception, if you include this header file into source + files compiled by GCC, this header file does not by itself cause + the resulting executable to be covered by the GNU General Public + License. This exception does not however invalidate any other + reasons why the executable file might be covered by the GNU General + Public License. */ + +/* Implemented from the specification included in the AMD Programmers + Manual Update, version 2.x */ + +#ifndef _AMMINTRIN_H_INCLUDED +#define _AMMINTRIN_H_INCLUDED + +#ifndef __SSE4A__ +# error "SSE4A instruction set not enabled" +#else + +/* We need definitions from the SSE3, SSE2 and SSE header files*/ +#include + +static __inline void __attribute__((__always_inline__)) +_mm_stream_sd (double * __P, __m128d __Y) +{ + __builtin_ia32_movntsd (__P, (__v2df) __Y); +} + +static __inline void __attribute__((__always_inline__)) +_mm_stream_ss (float * __P, __m128 __Y) +{ + __builtin_ia32_movntss (__P, (__v4sf) __Y); +} + +static __inline __m128i __attribute__((__always_inline__)) +_mm_extract_si64 (__m128i __X, __m128i __Y) +{ + return (__m128i) __builtin_ia32_extrq ((__v2di) __X, (__v16qi) __Y); +} + +#define _mm_extracti_si64(X, I, L) \ +((__m128i) __builtin_ia32_extrqi ((__v2di)(X), I, L)) + +static __inline __m128i __attribute__((__always_inline__)) +_mm_insert_si64 (__m128i __X,__m128i __Y) +{ + return (__m128i) __builtin_ia32_insertq ((__v2di)__X, (__v2di)__Y); +} + +#define _mm_inserti_si64(X, Y, I, L) \ +((__m128i) __builtin_ia32_insertqi ((__v2di)(X), (__v2di)(Y), I, L)) + + +#endif /* __SSE4A__ */ + +#endif /* _AMMINTRIN_H_INCLUDED */ diff --git a/contrib/gcc/config/i386/athlon.md b/contrib/gcc/config/i386/athlon.md index 6d92b948b4db..a52f9bc28b4b 100644 --- a/contrib/gcc/config/i386/athlon.md +++ b/contrib/gcc/config/i386/athlon.md @@ -29,6 +29,8 @@ (const_string "vector")] (const_string "direct"))) +(define_attr "amdfam10_decode" "direct,vector,double" + (const_string "direct")) ;; ;; decode0 decode1 decode2 ;; \ | / @@ -131,18 +133,22 @@ ;; Jump instructions are executed in the branch unit completely transparent to us (define_insn_reservation "athlon_branch" 0 - (and (eq_attr "cpu" "athlon,k8,generic64") + (and (eq_attr "cpu" "athlon,k8,generic64,amdfam10") (eq_attr "type" "ibr")) "athlon-direct,athlon-ieu") (define_insn_reservation "athlon_call" 0 (and (eq_attr "cpu" "athlon,k8,generic64") (eq_attr "type" "call,callv")) "athlon-vector,athlon-ieu") +(define_insn_reservation "athlon_call_amdfam10" 0 + (and (eq_attr "cpu" "amdfam10") + (eq_attr "type" "call,callv")) + "athlon-double,athlon-ieu") ;; Latency of push operation is 3 cycles, but ESP value is available ;; earlier (define_insn_reservation "athlon_push" 2 - (and (eq_attr "cpu" "athlon,k8,generic64") + (and (eq_attr "cpu" "athlon,k8,generic64,amdfam10") (eq_attr "type" "push")) "athlon-direct,athlon-agu,athlon-store") (define_insn_reservation "athlon_pop" 4 @@ -153,12 +159,16 @@ (and (eq_attr "cpu" "k8,generic64") (eq_attr "type" "pop")) "athlon-double,(athlon-ieu+athlon-load)") +(define_insn_reservation "athlon_pop_amdfam10" 3 + (and (eq_attr "cpu" "amdfam10") + (eq_attr "type" "pop")) + "athlon-direct,(athlon-ieu+athlon-load)") (define_insn_reservation "athlon_leave" 3 (and (eq_attr "cpu" "athlon") (eq_attr "type" "leave")) "athlon-vector,(athlon-ieu+athlon-load)") (define_insn_reservation "athlon_leave_k8" 3 - (and (eq_attr "cpu" "k8,generic64") + (and (eq_attr "cpu" "k8,generic64,amdfam10") (eq_attr "type" "leave")) "athlon-double,(athlon-ieu+athlon-load)") @@ -167,6 +177,11 @@ (and (eq_attr "cpu" "athlon,k8,generic64") (eq_attr "type" "lea")) "athlon-direct,athlon-agu,nothing") +;; Lea executes in AGU unit with 1 cycle latency on AMDFAM10 +(define_insn_reservation "athlon_lea_amdfam10" 1 + (and (eq_attr "cpu" "amdfam10") + (eq_attr "type" "lea")) + "athlon-direct,athlon-agu,nothing") ;; Mul executes in special multiplier unit attached to IEU0 (define_insn_reservation "athlon_imul" 5 @@ -176,29 +191,35 @@ "athlon-vector,athlon-ieu0,athlon-mult,nothing,nothing,athlon-ieu0") ;; ??? Widening multiply is vector or double. (define_insn_reservation "athlon_imul_k8_DI" 4 - (and (eq_attr "cpu" "k8,generic64") + (and (eq_attr "cpu" "k8,generic64,amdfam10") (and (eq_attr "type" "imul") (and (eq_attr "mode" "DI") (eq_attr "memory" "none,unknown")))) "athlon-direct0,athlon-ieu0,athlon-mult,nothing,athlon-ieu0") (define_insn_reservation "athlon_imul_k8" 3 - (and (eq_attr "cpu" "k8,generic64") + (and (eq_attr "cpu" "k8,generic64,amdfam10") (and (eq_attr "type" "imul") (eq_attr "memory" "none,unknown"))) "athlon-direct0,athlon-ieu0,athlon-mult,athlon-ieu0") +(define_insn_reservation "athlon_imul_amdfam10_HI" 4 + (and (eq_attr "cpu" "amdfam10") + (and (eq_attr "type" "imul") + (and (eq_attr "mode" "HI") + (eq_attr "memory" "none,unknown")))) + "athlon-vector,athlon-ieu0,athlon-mult,nothing,athlon-ieu0") (define_insn_reservation "athlon_imul_mem" 8 (and (eq_attr "cpu" "athlon") (and (eq_attr "type" "imul") (eq_attr "memory" "load,both"))) "athlon-vector,athlon-load,athlon-ieu,athlon-mult,nothing,nothing,athlon-ieu") (define_insn_reservation "athlon_imul_mem_k8_DI" 7 - (and (eq_attr "cpu" "k8,generic64") + (and (eq_attr "cpu" "k8,generic64,amdfam10") (and (eq_attr "type" "imul") (and (eq_attr "mode" "DI") (eq_attr "memory" "load,both")))) "athlon-vector,athlon-load,athlon-ieu,athlon-mult,nothing,athlon-ieu") (define_insn_reservation "athlon_imul_mem_k8" 6 - (and (eq_attr "cpu" "k8,generic64") + (and (eq_attr "cpu" "k8,generic64,amdfam10") (and (eq_attr "type" "imul") (eq_attr "memory" "load,both"))) "athlon-vector,athlon-load,athlon-ieu,athlon-mult,athlon-ieu") @@ -209,21 +230,23 @@ ;; other instructions. ;; ??? Experiments show that the idiv can overlap with roughly 6 cycles ;; of the other code +;; Using the same heuristics for amdfam10 as K8 with idiv (define_insn_reservation "athlon_idiv" 6 - (and (eq_attr "cpu" "athlon,k8,generic64") + (and (eq_attr "cpu" "athlon,k8,generic64,amdfam10") (and (eq_attr "type" "idiv") (eq_attr "memory" "none,unknown"))) "athlon-vector,(athlon-ieu0*6+(athlon-fpsched,athlon-fvector))") (define_insn_reservation "athlon_idiv_mem" 9 - (and (eq_attr "cpu" "athlon,k8,generic64") + (and (eq_attr "cpu" "athlon,k8,generic64,amdfam10") (and (eq_attr "type" "idiv") (eq_attr "memory" "load,both"))) "athlon-vector,((athlon-load,athlon-ieu0*6)+(athlon-fpsched,athlon-fvector))") ;; The parallelism of string instructions is not documented. Model it same way ;; as idiv to create smaller automata. This probably does not matter much. +;; Using the same heuristics for amdfam10 as K8 with idiv (define_insn_reservation "athlon_str" 6 - (and (eq_attr "cpu" "athlon,k8,generic64") + (and (eq_attr "cpu" "athlon,k8,generic64,amdfam10") (and (eq_attr "type" "str") (eq_attr "memory" "load,both,store"))) "athlon-vector,athlon-load,athlon-ieu0*6") @@ -234,34 +257,62 @@ (and (eq_attr "unit" "integer,unknown") (eq_attr "memory" "none,unknown")))) "athlon-direct,athlon-ieu") +(define_insn_reservation "athlon_idirect_amdfam10" 1 + (and (eq_attr "cpu" "amdfam10") + (and (eq_attr "amdfam10_decode" "direct") + (and (eq_attr "unit" "integer,unknown") + (eq_attr "memory" "none,unknown")))) + "athlon-direct,athlon-ieu") (define_insn_reservation "athlon_ivector" 2 (and (eq_attr "cpu" "athlon,k8,generic64") (and (eq_attr "athlon_decode" "vector") (and (eq_attr "unit" "integer,unknown") (eq_attr "memory" "none,unknown")))) "athlon-vector,athlon-ieu,athlon-ieu") +(define_insn_reservation "athlon_ivector_amdfam10" 2 + (and (eq_attr "cpu" "amdfam10") + (and (eq_attr "amdfam10_decode" "vector") + (and (eq_attr "unit" "integer,unknown") + (eq_attr "memory" "none,unknown")))) + "athlon-vector,athlon-ieu,athlon-ieu") + (define_insn_reservation "athlon_idirect_loadmov" 3 - (and (eq_attr "cpu" "athlon,k8,generic64") + (and (eq_attr "cpu" "athlon,k8,generic64,amdfam10") (and (eq_attr "type" "imov") (eq_attr "memory" "load"))) "athlon-direct,athlon-load") + (define_insn_reservation "athlon_idirect_load" 4 (and (eq_attr "cpu" "athlon,k8,generic64") (and (eq_attr "athlon_decode" "direct") (and (eq_attr "unit" "integer,unknown") (eq_attr "memory" "load")))) "athlon-direct,athlon-load,athlon-ieu") +(define_insn_reservation "athlon_idirect_load_amdfam10" 4 + (and (eq_attr "cpu" "amdfam10") + (and (eq_attr "amdfam10_decode" "direct") + (and (eq_attr "unit" "integer,unknown") + (eq_attr "memory" "load")))) + "athlon-direct,athlon-load,athlon-ieu") (define_insn_reservation "athlon_ivector_load" 6 (and (eq_attr "cpu" "athlon,k8,generic64") (and (eq_attr "athlon_decode" "vector") (and (eq_attr "unit" "integer,unknown") (eq_attr "memory" "load")))) "athlon-vector,athlon-load,athlon-ieu,athlon-ieu") +(define_insn_reservation "athlon_ivector_load_amdfam10" 6 + (and (eq_attr "cpu" "amdfam10") + (and (eq_attr "amdfam10_decode" "vector") + (and (eq_attr "unit" "integer,unknown") + (eq_attr "memory" "load")))) + "athlon-vector,athlon-load,athlon-ieu,athlon-ieu") + (define_insn_reservation "athlon_idirect_movstore" 1 - (and (eq_attr "cpu" "athlon,k8,generic64") + (and (eq_attr "cpu" "athlon,k8,generic64,amdfam10") (and (eq_attr "type" "imov") (eq_attr "memory" "store"))) "athlon-direct,athlon-agu,athlon-store") + (define_insn_reservation "athlon_idirect_both" 4 (and (eq_attr "cpu" "athlon,k8,generic64") (and (eq_attr "athlon_decode" "direct") @@ -270,6 +321,15 @@ "athlon-direct,athlon-load, athlon-ieu,athlon-store, athlon-store") +(define_insn_reservation "athlon_idirect_both_amdfam10" 4 + (and (eq_attr "cpu" "amdfam10") + (and (eq_attr "amdfam10_decode" "direct") + (and (eq_attr "unit" "integer,unknown") + (eq_attr "memory" "both")))) + "athlon-direct,athlon-load, + athlon-ieu,athlon-store, + athlon-store") + (define_insn_reservation "athlon_ivector_both" 6 (and (eq_attr "cpu" "athlon,k8,generic64") (and (eq_attr "athlon_decode" "vector") @@ -279,6 +339,16 @@ athlon-ieu, athlon-ieu, athlon-store") +(define_insn_reservation "athlon_ivector_both_amdfam10" 6 + (and (eq_attr "cpu" "amdfam10") + (and (eq_attr "amdfam10_decode" "vector") + (and (eq_attr "unit" "integer,unknown") + (eq_attr "memory" "both")))) + "athlon-vector,athlon-load, + athlon-ieu, + athlon-ieu, + athlon-store") + (define_insn_reservation "athlon_idirect_store" 1 (and (eq_attr "cpu" "athlon,k8,generic64") (and (eq_attr "athlon_decode" "direct") @@ -286,6 +356,14 @@ (eq_attr "memory" "store")))) "athlon-direct,(athlon-ieu+athlon-agu), athlon-store") +(define_insn_reservation "athlon_idirect_store_amdfam10" 1 + (and (eq_attr "cpu" "amdfam10") + (and (eq_attr "amdfam10_decode" "direct") + (and (eq_attr "unit" "integer,unknown") + (eq_attr "memory" "store")))) + "athlon-direct,(athlon-ieu+athlon-agu), + athlon-store") + (define_insn_reservation "athlon_ivector_store" 2 (and (eq_attr "cpu" "athlon,k8,generic64") (and (eq_attr "athlon_decode" "vector") @@ -293,6 +371,13 @@ (eq_attr "memory" "store")))) "athlon-vector,(athlon-ieu+athlon-agu),athlon-ieu, athlon-store") +(define_insn_reservation "athlon_ivector_store_amdfam10" 2 + (and (eq_attr "cpu" "amdfam10") + (and (eq_attr "amdfam10_decode" "vector") + (and (eq_attr "unit" "integer,unknown") + (eq_attr "memory" "store")))) + "athlon-vector,(athlon-ieu+athlon-agu),athlon-ieu, + athlon-store") ;; Athlon floatin point unit (define_insn_reservation "athlon_fldxf" 12 @@ -302,7 +387,7 @@ (eq_attr "mode" "XF")))) "athlon-vector,athlon-fpload2,athlon-fvector*9") (define_insn_reservation "athlon_fldxf_k8" 13 - (and (eq_attr "cpu" "k8,generic64") + (and (eq_attr "cpu" "k8,generic64,amdfam10") (and (eq_attr "type" "fmov") (and (eq_attr "memory" "load") (eq_attr "mode" "XF")))) @@ -314,7 +399,7 @@ (eq_attr "memory" "load"))) "athlon-direct,athlon-fpload,athlon-fany") (define_insn_reservation "athlon_fld_k8" 2 - (and (eq_attr "cpu" "k8,generic64") + (and (eq_attr "cpu" "k8,generic64,amdfam10") (and (eq_attr "type" "fmov") (eq_attr "memory" "load"))) "athlon-direct,athlon-fploadk8,athlon-fstore") @@ -326,7 +411,7 @@ (eq_attr "mode" "XF")))) "athlon-vector,(athlon-fpsched+athlon-agu),(athlon-store2+(athlon-fvector*7))") (define_insn_reservation "athlon_fstxf_k8" 8 - (and (eq_attr "cpu" "k8,generic64") + (and (eq_attr "cpu" "k8,generic64,amdfam10") (and (eq_attr "type" "fmov") (and (eq_attr "memory" "store,both") (eq_attr "mode" "XF")))) @@ -337,16 +422,16 @@ (eq_attr "memory" "store,both"))) "athlon-direct,(athlon-fpsched+athlon-agu),(athlon-fstore+athlon-store)") (define_insn_reservation "athlon_fst_k8" 2 - (and (eq_attr "cpu" "k8,generic64") + (and (eq_attr "cpu" "k8,generic64,amdfam10") (and (eq_attr "type" "fmov") (eq_attr "memory" "store,both"))) "athlon-direct,(athlon-fpsched+athlon-agu),(athlon-fstore+athlon-store)") (define_insn_reservation "athlon_fist" 4 - (and (eq_attr "cpu" "athlon,k8,generic64") + (and (eq_attr "cpu" "athlon,k8,generic64,amdfam10") (eq_attr "type" "fistp,fisttp")) "athlon-direct,(athlon-fpsched+athlon-agu),(athlon-fstore+athlon-store)") (define_insn_reservation "athlon_fmov" 2 - (and (eq_attr "cpu" "athlon,k8,generic64") + (and (eq_attr "cpu" "athlon,k8,generic64,amdfam10") (eq_attr "type" "fmov")) "athlon-direct,athlon-fpsched,athlon-faddmul") (define_insn_reservation "athlon_fadd_load" 4 @@ -355,12 +440,12 @@ (eq_attr "memory" "load"))) "athlon-direct,athlon-fpload,athlon-fadd") (define_insn_reservation "athlon_fadd_load_k8" 6 - (and (eq_attr "cpu" "k8,generic64") + (and (eq_attr "cpu" "k8,generic64,amdfam10") (and (eq_attr "type" "fop") (eq_attr "memory" "load"))) "athlon-direct,athlon-fploadk8,athlon-fadd") (define_insn_reservation "athlon_fadd" 4 - (and (eq_attr "cpu" "athlon,k8,generic64") + (and (eq_attr "cpu" "athlon,k8,generic64,amdfam10") (eq_attr "type" "fop")) "athlon-direct,athlon-fpsched,athlon-fadd") (define_insn_reservation "athlon_fmul_load" 4 @@ -369,16 +454,16 @@ (eq_attr "memory" "load"))) "athlon-direct,athlon-fpload,athlon-fmul") (define_insn_reservation "athlon_fmul_load_k8" 6 - (and (eq_attr "cpu" "k8,generic64") + (and (eq_attr "cpu" "k8,generic64,amdfam10") (and (eq_attr "type" "fmul") (eq_attr "memory" "load"))) "athlon-direct,athlon-fploadk8,athlon-fmul") (define_insn_reservation "athlon_fmul" 4 - (and (eq_attr "cpu" "athlon,k8,generic64") + (and (eq_attr "cpu" "athlon,k8,generic64,amdfam10") (eq_attr "type" "fmul")) "athlon-direct,athlon-fpsched,athlon-fmul") (define_insn_reservation "athlon_fsgn" 2 - (and (eq_attr "cpu" "athlon,k8,generic64") + (and (eq_attr "cpu" "athlon,k8,generic64,amdfam10") (eq_attr "type" "fsgn")) "athlon-direct,athlon-fpsched,athlon-fmul") (define_insn_reservation "athlon_fdiv_load" 24 @@ -387,7 +472,7 @@ (eq_attr "memory" "load"))) "athlon-direct,athlon-fpload,athlon-fmul") (define_insn_reservation "athlon_fdiv_load_k8" 13 - (and (eq_attr "cpu" "k8,generic64") + (and (eq_attr "cpu" "k8,generic64,amdfam10") (and (eq_attr "type" "fdiv") (eq_attr "memory" "load"))) "athlon-direct,athlon-fploadk8,athlon-fmul") @@ -396,16 +481,16 @@ (eq_attr "type" "fdiv")) "athlon-direct,athlon-fpsched,athlon-fmul") (define_insn_reservation "athlon_fdiv_k8" 11 - (and (eq_attr "cpu" "k8,generic64") + (and (eq_attr "cpu" "k8,generic64,amdfam10") (eq_attr "type" "fdiv")) "athlon-direct,athlon-fpsched,athlon-fmul") (define_insn_reservation "athlon_fpspc_load" 103 - (and (eq_attr "cpu" "athlon,k8,generic64") + (and (eq_attr "cpu" "athlon,k8,generic64,amdfam10") (and (eq_attr "type" "fpspc") (eq_attr "memory" "load"))) "athlon-vector,athlon-fpload,athlon-fvector") (define_insn_reservation "athlon_fpspc" 100 - (and (eq_attr "cpu" "athlon,k8,generic64") + (and (eq_attr "cpu" "athlon,k8,generic64,amdfam10") (eq_attr "type" "fpspc")) "athlon-vector,athlon-fpsched,athlon-fvector") (define_insn_reservation "athlon_fcmov_load" 7 @@ -418,12 +503,12 @@ (eq_attr "type" "fcmov")) "athlon-vector,athlon-fpsched,athlon-fvector") (define_insn_reservation "athlon_fcmov_load_k8" 17 - (and (eq_attr "cpu" "k8,generic64") + (and (eq_attr "cpu" "k8,generic64,amdfam10") (and (eq_attr "type" "fcmov") (eq_attr "memory" "load"))) "athlon-vector,athlon-fploadk8,athlon-fvector") (define_insn_reservation "athlon_fcmov_k8" 15 - (and (eq_attr "cpu" "k8,generic64") + (and (eq_attr "cpu" "k8,generic64,amdfam10") (eq_attr "type" "fcmov")) "athlon-vector,athlon-fpsched,athlon-fvector") ;; fcomi is vector decoded by uses only one pipe. @@ -434,13 +519,13 @@ (eq_attr "memory" "load")))) "athlon-vector,athlon-fpload,athlon-fadd") (define_insn_reservation "athlon_fcomi_load_k8" 5 - (and (eq_attr "cpu" "k8,generic64") + (and (eq_attr "cpu" "k8,generic64,amdfam10") (and (eq_attr "type" "fcmp") (and (eq_attr "athlon_decode" "vector") (eq_attr "memory" "load")))) "athlon-vector,athlon-fploadk8,athlon-fadd") (define_insn_reservation "athlon_fcomi" 3 - (and (eq_attr "cpu" "athlon,k8,generic64") + (and (eq_attr "cpu" "athlon,k8,generic64,amdfam10") (and (eq_attr "athlon_decode" "vector") (eq_attr "type" "fcmp"))) "athlon-vector,athlon-fpsched,athlon-fadd") @@ -450,18 +535,18 @@ (eq_attr "memory" "load"))) "athlon-direct,athlon-fpload,athlon-fadd") (define_insn_reservation "athlon_fcom_load_k8" 4 - (and (eq_attr "cpu" "k8,generic64") + (and (eq_attr "cpu" "k8,generic64,amdfam10") (and (eq_attr "type" "fcmp") (eq_attr "memory" "load"))) "athlon-direct,athlon-fploadk8,athlon-fadd") (define_insn_reservation "athlon_fcom" 2 - (and (eq_attr "cpu" "athlon,k8,generic64") + (and (eq_attr "cpu" "athlon,k8,generic64,amdfam10") (eq_attr "type" "fcmp")) "athlon-direct,athlon-fpsched,athlon-fadd") ;; Never seen by the scheduler because we still don't do post reg-stack ;; scheduling. ;(define_insn_reservation "athlon_fxch" 2 -; (and (eq_attr "cpu" "athlon,k8,generic64") +; (and (eq_attr "cpu" "athlon,k8,generic64,amdfam10") ; (eq_attr "type" "fxch")) ; "athlon-direct,athlon-fpsched,athlon-fany") @@ -516,6 +601,23 @@ (and (eq_attr "type" "mmxmov,ssemov") (eq_attr "memory" "load"))) "athlon-direct,athlon-fploadk8,athlon-fstore") +;; On AMDFAM10 all double, single and integer packed and scalar SSEx data +;; loads generated are direct path, latency of 2 and do not use any FP +;; executions units. No seperate entries for movlpx/movhpx loads, which +;; are direct path, latency of 4 and use the FADD/FMUL FP execution units, +;; as they will not be generated. +(define_insn_reservation "athlon_sseld_amdfam10" 2 + (and (eq_attr "cpu" "amdfam10") + (and (eq_attr "type" "ssemov") + (eq_attr "memory" "load"))) + "athlon-direct,athlon-fploadk8") +;; On AMDFAM10 MMX data loads generated are direct path, latency of 4 +;; and can use any FP executions units +(define_insn_reservation "athlon_mmxld_amdfam10" 4 + (and (eq_attr "cpu" "amdfam10") + (and (eq_attr "type" "mmxmov") + (eq_attr "memory" "load"))) + "athlon-direct,athlon-fploadk8, athlon-fany") (define_insn_reservation "athlon_mmxssest" 3 (and (eq_attr "cpu" "k8,generic64") (and (eq_attr "type" "mmxmov,ssemov") @@ -533,6 +635,25 @@ (and (eq_attr "type" "mmxmov,ssemov") (eq_attr "memory" "store,both"))) "athlon-direct,(athlon-fpsched+athlon-agu),(athlon-fstore+athlon-store)") +;; On AMDFAM10 all double, single and integer packed SSEx data stores +;; generated are all double path, latency of 2 and use the FSTORE FP +;; execution unit. No entries seperate for movupx/movdqu, which are +;; vector path, latency of 3 and use the FSTORE*2 FP execution unit, +;; as they will not be generated. +(define_insn_reservation "athlon_ssest_amdfam10" 2 + (and (eq_attr "cpu" "amdfam10") + (and (eq_attr "type" "ssemov") + (and (eq_attr "mode" "V4SF,V2DF,TI") + (eq_attr "memory" "store,both")))) + "athlon-double,(athlon-fpsched+athlon-agu),((athlon-fstore+athlon-store)*2)") +;; On AMDFAM10 all double, single and integer scalar SSEx and MMX +;; data stores generated are all direct path, latency of 2 and use +;; the FSTORE FP execution unit +(define_insn_reservation "athlon_mmxssest_short_amdfam10" 2 + (and (eq_attr "cpu" "amdfam10") + (and (eq_attr "type" "mmxmov,ssemov") + (eq_attr "memory" "store,both"))) + "athlon-direct,(athlon-fpsched+athlon-agu),(athlon-fstore+athlon-store)") (define_insn_reservation "athlon_movaps_k8" 2 (and (eq_attr "cpu" "k8,generic64") (and (eq_attr "type" "ssemov") @@ -578,6 +699,11 @@ (and (eq_attr "type" "sselog,sselog1") (eq_attr "memory" "load"))) "athlon-double,athlon-fpload2k8,(athlon-fmul*2)") +(define_insn_reservation "athlon_sselog_load_amdfam10" 4 + (and (eq_attr "cpu" "amdfam10") + (and (eq_attr "type" "sselog,sselog1") + (eq_attr "memory" "load"))) + "athlon-direct,athlon-fploadk8,(athlon-fadd|athlon-fmul)") (define_insn_reservation "athlon_sselog" 3 (and (eq_attr "cpu" "athlon") (eq_attr "type" "sselog,sselog1")) @@ -586,6 +712,11 @@ (and (eq_attr "cpu" "k8,generic64") (eq_attr "type" "sselog,sselog1")) "athlon-double,athlon-fpsched,athlon-fmul") +(define_insn_reservation "athlon_sselog_amdfam10" 2 + (and (eq_attr "cpu" "amdfam10") + (eq_attr "type" "sselog,sselog1")) + "athlon-direct,athlon-fpsched,(athlon-fadd|athlon-fmul)") + ;; ??? pcmp executes in addmul, probably not worthwhile to bother about that. (define_insn_reservation "athlon_ssecmp_load" 2 (and (eq_attr "cpu" "athlon") @@ -594,13 +725,13 @@ (eq_attr "memory" "load")))) "athlon-direct,athlon-fpload,athlon-fadd") (define_insn_reservation "athlon_ssecmp_load_k8" 4 - (and (eq_attr "cpu" "k8,generic64") + (and (eq_attr "cpu" "k8,generic64,amdfam10") (and (eq_attr "type" "ssecmp") (and (eq_attr "mode" "SF,DF,DI,TI") (eq_attr "memory" "load")))) "athlon-direct,athlon-fploadk8,athlon-fadd") (define_insn_reservation "athlon_ssecmp" 2 - (and (eq_attr "cpu" "athlon,k8,generic64") + (and (eq_attr "cpu" "athlon,k8,generic64,amdfam10") (and (eq_attr "type" "ssecmp") (eq_attr "mode" "SF,DF,DI,TI"))) "athlon-direct,athlon-fpsched,athlon-fadd") @@ -614,6 +745,11 @@ (and (eq_attr "type" "ssecmp") (eq_attr "memory" "load"))) "athlon-double,athlon-fpload2k8,(athlon-fadd*2)") +(define_insn_reservation "athlon_ssecmpvector_load_amdfam10" 4 + (and (eq_attr "cpu" "amdfam10") + (and (eq_attr "type" "ssecmp") + (eq_attr "memory" "load"))) + "athlon-direct,athlon-fploadk8,athlon-fadd") (define_insn_reservation "athlon_ssecmpvector" 3 (and (eq_attr "cpu" "athlon") (eq_attr "type" "ssecmp")) @@ -622,6 +758,10 @@ (and (eq_attr "cpu" "k8,generic64") (eq_attr "type" "ssecmp")) "athlon-double,athlon-fpsched,(athlon-fadd*2)") +(define_insn_reservation "athlon_ssecmpvector_amdfam10" 2 + (and (eq_attr "cpu" "amdfam10") + (eq_attr "type" "ssecmp")) + "athlon-direct,athlon-fpsched,athlon-fadd") (define_insn_reservation "athlon_ssecomi_load" 4 (and (eq_attr "cpu" "athlon") (and (eq_attr "type" "ssecomi") @@ -632,10 +772,20 @@ (and (eq_attr "type" "ssecomi") (eq_attr "memory" "load"))) "athlon-vector,athlon-fploadk8,athlon-fadd") +(define_insn_reservation "athlon_ssecomi_load_amdfam10" 5 + (and (eq_attr "cpu" "amdfam10") + (and (eq_attr "type" "ssecomi") + (eq_attr "memory" "load"))) + "athlon-direct,athlon-fploadk8,athlon-fadd") (define_insn_reservation "athlon_ssecomi" 4 (and (eq_attr "cpu" "athlon,k8,generic64") (eq_attr "type" "ssecmp")) "athlon-vector,athlon-fpsched,athlon-fadd") +(define_insn_reservation "athlon_ssecomi_amdfam10" 3 + (and (eq_attr "cpu" "amdfam10") +;; It seems athlon_ssecomi has a bug in the attr_type, fixed for amdfam10 + (eq_attr "type" "ssecomi")) + "athlon-direct,athlon-fpsched,athlon-fadd") (define_insn_reservation "athlon_sseadd_load" 4 (and (eq_attr "cpu" "athlon") (and (eq_attr "type" "sseadd") @@ -643,13 +793,13 @@ (eq_attr "memory" "load")))) "athlon-direct,athlon-fpload,athlon-fadd") (define_insn_reservation "athlon_sseadd_load_k8" 6 - (and (eq_attr "cpu" "k8,generic64") + (and (eq_attr "cpu" "k8,generic64,amdfam10") (and (eq_attr "type" "sseadd") (and (eq_attr "mode" "SF,DF,DI") (eq_attr "memory" "load")))) "athlon-direct,athlon-fploadk8,athlon-fadd") (define_insn_reservation "athlon_sseadd" 4 - (and (eq_attr "cpu" "athlon,k8,generic64") + (and (eq_attr "cpu" "athlon,k8,generic64,amdfam10") (and (eq_attr "type" "sseadd") (eq_attr "mode" "SF,DF,DI"))) "athlon-direct,athlon-fpsched,athlon-fadd") @@ -663,6 +813,11 @@ (and (eq_attr "type" "sseadd") (eq_attr "memory" "load"))) "athlon-double,athlon-fpload2k8,(athlon-fadd*2)") +(define_insn_reservation "athlon_sseaddvector_load_amdfam10" 6 + (and (eq_attr "cpu" "amdfam10") + (and (eq_attr "type" "sseadd") + (eq_attr "memory" "load"))) + "athlon-direct,athlon-fploadk8,athlon-fadd") (define_insn_reservation "athlon_sseaddvector" 5 (and (eq_attr "cpu" "athlon") (eq_attr "type" "sseadd")) @@ -671,6 +826,10 @@ (and (eq_attr "cpu" "k8,generic64") (eq_attr "type" "sseadd")) "athlon-double,athlon-fpsched,(athlon-fadd*2)") +(define_insn_reservation "athlon_sseaddvector_amdfam10" 4 + (and (eq_attr "cpu" "amdfam10") + (eq_attr "type" "sseadd")) + "athlon-direct,athlon-fpsched,athlon-fadd") ;; Conversions behaves very irregularly and the scheduling is critical here. ;; Take each instruction separately. Assume that the mode is always set to the @@ -684,12 +843,25 @@ (and (eq_attr "mode" "DF") (eq_attr "memory" "load"))))) "athlon-direct,athlon-fploadk8,athlon-fstore") +(define_insn_reservation "athlon_ssecvt_cvtss2sd_load_amdfam10" 7 + (and (eq_attr "cpu" "amdfam10") + (and (eq_attr "type" "ssecvt") + (and (eq_attr "amdfam10_decode" "double") + (and (eq_attr "mode" "DF") + (eq_attr "memory" "load"))))) + "athlon-double,athlon-fploadk8,(athlon-faddmul+athlon-fstore)") (define_insn_reservation "athlon_ssecvt_cvtss2sd" 2 (and (eq_attr "cpu" "athlon,k8,generic64") (and (eq_attr "type" "ssecvt") (and (eq_attr "athlon_decode" "direct") (eq_attr "mode" "DF")))) "athlon-direct,athlon-fpsched,athlon-fstore") +(define_insn_reservation "athlon_ssecvt_cvtss2sd_amdfam10" 7 + (and (eq_attr "cpu" "amdfam10") + (and (eq_attr "type" "ssecvt") + (and (eq_attr "amdfam10_decode" "vector") + (eq_attr "mode" "DF")))) + "athlon-vector,athlon-fpsched,athlon-faddmul,(athlon-fstore*2)") ;; cvtps2pd. Model same way the other double decoded FP conversions. (define_insn_reservation "athlon_ssecvt_cvtps2pd_load_k8" 5 (and (eq_attr "cpu" "k8,athlon,generic64") @@ -698,12 +870,25 @@ (and (eq_attr "mode" "V2DF,V4SF,TI") (eq_attr "memory" "load"))))) "athlon-double,athlon-fpload2k8,(athlon-fstore*2)") +(define_insn_reservation "athlon_ssecvt_cvtps2pd_load_amdfam10" 4 + (and (eq_attr "cpu" "amdfam10") + (and (eq_attr "type" "ssecvt") + (and (eq_attr "amdfam10_decode" "direct") + (and (eq_attr "mode" "V2DF,V4SF,TI") + (eq_attr "memory" "load"))))) + "athlon-direct,athlon-fploadk8,athlon-fstore") (define_insn_reservation "athlon_ssecvt_cvtps2pd_k8" 3 (and (eq_attr "cpu" "k8,athlon,generic64") (and (eq_attr "type" "ssecvt") (and (eq_attr "athlon_decode" "double") (eq_attr "mode" "V2DF,V4SF,TI")))) "athlon-double,athlon-fpsched,athlon-fstore,athlon-fstore") +(define_insn_reservation "athlon_ssecvt_cvtps2pd_amdfam10" 2 + (and (eq_attr "cpu" "amdfam10") + (and (eq_attr "type" "ssecvt") + (and (eq_attr "amdfam10_decode" "direct") + (eq_attr "mode" "V2DF,V4SF,TI")))) + "athlon-direct,athlon-fpsched,athlon-fstore") ;; cvtsi2sd mem,reg is directpath path (cvtsi2sd reg,reg is doublepath) ;; cvtsi2sd has troughput 1 and is executed in store unit with latency of 6 (define_insn_reservation "athlon_sseicvt_cvtsi2sd_load" 6 @@ -713,6 +898,13 @@ (and (eq_attr "mode" "SF,DF") (eq_attr "memory" "load"))))) "athlon-direct,athlon-fploadk8,athlon-fstore") +(define_insn_reservation "athlon_sseicvt_cvtsi2sd_load_amdfam10" 9 + (and (eq_attr "cpu" "amdfam10") + (and (eq_attr "type" "sseicvt") + (and (eq_attr "amdfam10_decode" "double") + (and (eq_attr "mode" "SF,DF") + (eq_attr "memory" "load"))))) + "athlon-double,athlon-fploadk8,(athlon-faddmul+athlon-fstore)") ;; cvtsi2ss mem, reg is doublepath (define_insn_reservation "athlon_sseicvt_cvtsi2ss_load" 9 (and (eq_attr "cpu" "athlon") @@ -728,6 +920,13 @@ (and (eq_attr "mode" "SF,DF") (eq_attr "memory" "load"))))) "athlon-double,athlon-fploadk8,(athlon-fstore*2)") +(define_insn_reservation "athlon_sseicvt_cvtsi2ss_load_amdfam10" 9 + (and (eq_attr "cpu" "amdfam10") + (and (eq_attr "type" "sseicvt") + (and (eq_attr "amdfam10_decode" "double") + (and (eq_attr "mode" "SF,DF") + (eq_attr "memory" "load"))))) + "athlon-double,athlon-fploadk8,(athlon-faddmul+athlon-fstore)") ;; cvtsi2sd reg,reg is double decoded (vector on Athlon) (define_insn_reservation "athlon_sseicvt_cvtsi2sd_k8" 11 (and (eq_attr "cpu" "k8,athlon,generic64") @@ -736,6 +935,13 @@ (and (eq_attr "mode" "SF,DF") (eq_attr "memory" "none"))))) "athlon-double,athlon-fploadk8,athlon-fstore") +(define_insn_reservation "athlon_sseicvt_cvtsi2sd_amdfam10" 14 + (and (eq_attr "cpu" "amdfam10") + (and (eq_attr "type" "sseicvt") + (and (eq_attr "amdfam10_decode" "vector") + (and (eq_attr "mode" "SF,DF") + (eq_attr "memory" "none"))))) + "athlon-vector,athlon-fploadk8,(athlon-faddmul+athlon-fstore)") ;; cvtsi2ss reg, reg is doublepath (define_insn_reservation "athlon_sseicvt_cvtsi2ss" 14 (and (eq_attr "cpu" "athlon,k8,generic64") @@ -744,6 +950,13 @@ (and (eq_attr "mode" "SF,DF") (eq_attr "memory" "none"))))) "athlon-vector,athlon-fploadk8,(athlon-fvector*2)") +(define_insn_reservation "athlon_sseicvt_cvtsi2ss_amdfam10" 14 + (and (eq_attr "cpu" "amdfam10") + (and (eq_attr "type" "sseicvt") + (and (eq_attr "amdfam10_decode" "vector") + (and (eq_attr "mode" "SF,DF") + (eq_attr "memory" "none"))))) + "athlon-vector,athlon-fploadk8,(athlon-faddmul+athlon-fstore)") ;; cvtsd2ss mem,reg is doublepath, troughput unknown, latency 9 (define_insn_reservation "athlon_ssecvt_cvtsd2ss_load_k8" 9 (and (eq_attr "cpu" "k8,athlon,generic64") @@ -752,6 +965,13 @@ (and (eq_attr "mode" "SF") (eq_attr "memory" "load"))))) "athlon-double,athlon-fploadk8,(athlon-fstore*3)") +(define_insn_reservation "athlon_ssecvt_cvtsd2ss_load_amdfam10" 9 + (and (eq_attr "cpu" "amdfam10") + (and (eq_attr "type" "ssecvt") + (and (eq_attr "amdfam10_decode" "double") + (and (eq_attr "mode" "SF") + (eq_attr "memory" "load"))))) + "athlon-double,athlon-fploadk8,(athlon-faddmul+athlon-fstore)") ;; cvtsd2ss reg,reg is vectorpath, troughput unknown, latency 12 (define_insn_reservation "athlon_ssecvt_cvtsd2ss" 12 (and (eq_attr "cpu" "athlon,k8,generic64") @@ -760,6 +980,13 @@ (and (eq_attr "mode" "SF") (eq_attr "memory" "none"))))) "athlon-vector,athlon-fpsched,(athlon-fvector*3)") +(define_insn_reservation "athlon_ssecvt_cvtsd2ss_amdfam10" 8 + (and (eq_attr "cpu" "amdfam10") + (and (eq_attr "type" "ssecvt") + (and (eq_attr "amdfam10_decode" "vector") + (and (eq_attr "mode" "SF") + (eq_attr "memory" "none"))))) + "athlon-vector,athlon-fpsched,athlon-faddmul,(athlon-fstore*2)") (define_insn_reservation "athlon_ssecvt_cvtpd2ps_load_k8" 8 (and (eq_attr "cpu" "athlon,k8,generic64") (and (eq_attr "type" "ssecvt") @@ -767,6 +994,13 @@ (and (eq_attr "mode" "V4SF,V2DF,TI") (eq_attr "memory" "load"))))) "athlon-double,athlon-fpload2k8,(athlon-fstore*3)") +(define_insn_reservation "athlon_ssecvt_cvtpd2ps_load_amdfam10" 9 + (and (eq_attr "cpu" "amdfam10") + (and (eq_attr "type" "ssecvt") + (and (eq_attr "amdfam10_decode" "double") + (and (eq_attr "mode" "V4SF,V2DF,TI") + (eq_attr "memory" "load"))))) + "athlon-double,athlon-fploadk8,(athlon-faddmul+athlon-fstore)") ;; cvtpd2ps mem,reg is vectorpath, troughput unknown, latency 10 ;; ??? Why it is fater than cvtsd2ss? (define_insn_reservation "athlon_ssecvt_cvtpd2ps" 8 @@ -776,6 +1010,13 @@ (and (eq_attr "mode" "V4SF,V2DF,TI") (eq_attr "memory" "none"))))) "athlon-vector,athlon-fpsched,athlon-fvector*2") +(define_insn_reservation "athlon_ssecvt_cvtpd2ps_amdfam10" 7 + (and (eq_attr "cpu" "amdfam10") + (and (eq_attr "type" "ssecvt") + (and (eq_attr "amdfam10_decode" "double") + (and (eq_attr "mode" "V4SF,V2DF,TI") + (eq_attr "memory" "none"))))) + "athlon-double,athlon-fpsched,(athlon-faddmul+athlon-fstore)") ;; cvtsd2si mem,reg is doublepath, troughput 1, latency 9 (define_insn_reservation "athlon_secvt_cvtsX2si_load" 9 (and (eq_attr "cpu" "athlon,k8,generic64") @@ -784,6 +1025,13 @@ (and (eq_attr "mode" "SI,DI") (eq_attr "memory" "load"))))) "athlon-vector,athlon-fploadk8,athlon-fvector") +(define_insn_reservation "athlon_secvt_cvtsX2si_load_amdfam10" 10 + (and (eq_attr "cpu" "amdfam10") + (and (eq_attr "type" "sseicvt") + (and (eq_attr "amdfam10_decode" "double") + (and (eq_attr "mode" "SI,DI") + (eq_attr "memory" "load"))))) + "athlon-double,athlon-fploadk8,(athlon-fadd+athlon-fstore)") ;; cvtsd2si reg,reg is doublepath, troughput 1, latency 9 (define_insn_reservation "athlon_ssecvt_cvtsX2si" 9 (and (eq_attr "cpu" "athlon") @@ -799,6 +1047,29 @@ (and (eq_attr "mode" "SI,DI") (eq_attr "memory" "none"))))) "athlon-double,athlon-fpsched,athlon-fstore") +(define_insn_reservation "athlon_ssecvt_cvtsX2si_amdfam10" 8 + (and (eq_attr "cpu" "amdfam10") + (and (eq_attr "type" "sseicvt") + (and (eq_attr "amdfam10_decode" "double") + (and (eq_attr "mode" "SI,DI") + (eq_attr "memory" "none"))))) + "athlon-double,athlon-fpsched,(athlon-fadd+athlon-fstore)") +;; cvtpd2dq reg,mem is doublepath, troughput 1, latency 9 on amdfam10 +(define_insn_reservation "athlon_sseicvt_cvtpd2dq_load_amdfam10" 9 + (and (eq_attr "cpu" "amdfam10") + (and (eq_attr "type" "sseicvt") + (and (eq_attr "amdfam10_decode" "double") + (and (eq_attr "mode" "TI") + (eq_attr "memory" "load"))))) + "athlon-double,athlon-fploadk8,(athlon-faddmul+athlon-fstore)") +;; cvtpd2dq reg,mem is doublepath, troughput 1, latency 7 on amdfam10 +(define_insn_reservation "athlon_sseicvt_cvtpd2dq_amdfam10" 7 + (and (eq_attr "cpu" "amdfam10") + (and (eq_attr "type" "sseicvt") + (and (eq_attr "amdfam10_decode" "double") + (and (eq_attr "mode" "TI") + (eq_attr "memory" "none"))))) + "athlon-double,athlon-fpsched,(athlon-faddmul+athlon-fstore)") (define_insn_reservation "athlon_ssemul_load" 4 @@ -808,13 +1079,13 @@ (eq_attr "memory" "load")))) "athlon-direct,athlon-fpload,athlon-fmul") (define_insn_reservation "athlon_ssemul_load_k8" 6 - (and (eq_attr "cpu" "k8,generic64") + (and (eq_attr "cpu" "k8,generic64,amdfam10") (and (eq_attr "type" "ssemul") (and (eq_attr "mode" "SF,DF") (eq_attr "memory" "load")))) "athlon-direct,athlon-fploadk8,athlon-fmul") (define_insn_reservation "athlon_ssemul" 4 - (and (eq_attr "cpu" "athlon,k8,generic64") + (and (eq_attr "cpu" "athlon,k8,generic64,amdfam10") (and (eq_attr "type" "ssemul") (eq_attr "mode" "SF,DF"))) "athlon-direct,athlon-fpsched,athlon-fmul") @@ -828,6 +1099,11 @@ (and (eq_attr "type" "ssemul") (eq_attr "memory" "load"))) "athlon-double,athlon-fpload2k8,(athlon-fmul*2)") +(define_insn_reservation "athlon_ssemulvector_load_amdfam10" 6 + (and (eq_attr "cpu" "amdfam10") + (and (eq_attr "type" "ssemul") + (eq_attr "memory" "load"))) + "athlon-direct,athlon-fploadk8,athlon-fmul") (define_insn_reservation "athlon_ssemulvector" 5 (and (eq_attr "cpu" "athlon") (eq_attr "type" "ssemul")) @@ -836,6 +1112,10 @@ (and (eq_attr "cpu" "k8,generic64") (eq_attr "type" "ssemul")) "athlon-double,athlon-fpsched,(athlon-fmul*2)") +(define_insn_reservation "athlon_ssemulvector_amdfam10" 4 + (and (eq_attr "cpu" "amdfam10") + (eq_attr "type" "ssemul")) + "athlon-direct,athlon-fpsched,athlon-fmul") ;; divsd timings. divss is faster (define_insn_reservation "athlon_ssediv_load" 20 (and (eq_attr "cpu" "athlon") @@ -844,13 +1124,13 @@ (eq_attr "memory" "load")))) "athlon-direct,athlon-fpload,athlon-fmul*17") (define_insn_reservation "athlon_ssediv_load_k8" 22 - (and (eq_attr "cpu" "k8,generic64") + (and (eq_attr "cpu" "k8,generic64,amdfam10") (and (eq_attr "type" "ssediv") (and (eq_attr "mode" "SF,DF") (eq_attr "memory" "load")))) "athlon-direct,athlon-fploadk8,athlon-fmul*17") (define_insn_reservation "athlon_ssediv" 20 - (and (eq_attr "cpu" "athlon,k8,generic64") + (and (eq_attr "cpu" "athlon,k8,generic64,amdfam10") (and (eq_attr "type" "ssediv") (eq_attr "mode" "SF,DF"))) "athlon-direct,athlon-fpsched,athlon-fmul*17") @@ -864,6 +1144,11 @@ (and (eq_attr "type" "ssediv") (eq_attr "memory" "load"))) "athlon-double,athlon-fpload2k8,athlon-fmul*34") +(define_insn_reservation "athlon_ssedivvector_load_amdfam10" 22 + (and (eq_attr "cpu" "amdfam10") + (and (eq_attr "type" "ssediv") + (eq_attr "memory" "load"))) + "athlon-direct,athlon-fploadk8,athlon-fmul*17") (define_insn_reservation "athlon_ssedivvector" 39 (and (eq_attr "cpu" "athlon") (eq_attr "type" "ssediv")) @@ -872,3 +1157,12 @@ (and (eq_attr "cpu" "k8,generic64") (eq_attr "type" "ssediv")) "athlon-double,athlon-fmul*34") +(define_insn_reservation "athlon_ssedivvector_amdfam10" 20 + (and (eq_attr "cpu" "amdfam10") + (eq_attr "type" "ssediv")) + "athlon-direct,athlon-fmul*17") +(define_insn_reservation "athlon_sseins_amdfam10" 5 + (and (eq_attr "cpu" "amdfam10") + (and (eq_attr "type" "sseins") + (eq_attr "mode" "TI"))) + "athlon-vector,athlon-fpsched,athlon-faddmul") diff --git a/contrib/gcc/config/i386/driver-i386.c b/contrib/gcc/config/i386/driver-i386.c index cb9c6c3f392b..665826318eec 100644 --- a/contrib/gcc/config/i386/driver-i386.c +++ b/contrib/gcc/config/i386/driver-i386.c @@ -1,5 +1,5 @@ /* Subroutines for the gcc driver. - Copyright (C) 2006 Free Software Foundation, Inc. + Copyright (C) 2006, 2007 Free Software Foundation, Inc. This file is part of GCC. @@ -40,6 +40,7 @@ const char *host_detect_local_cpu (int argc, const char **argv); #define bit_SSE3 (1 << 0) #define bit_SSSE3 (1 << 9) +#define bit_SSE4a (1 << 6) #define bit_CMPXCHG16B (1 << 13) #define bit_3DNOW (1 << 31) @@ -68,7 +69,7 @@ const char *host_detect_local_cpu (int argc, const char **argv) unsigned int ext_level; unsigned char has_mmx = 0, has_3dnow = 0, has_3dnowp = 0, has_sse = 0; unsigned char has_sse2 = 0, has_sse3 = 0, has_ssse3 = 0, has_cmov = 0; - unsigned char has_longmode = 0, has_cmpxchg8b = 0; + unsigned char has_longmode = 0, has_cmpxchg8b = 0, has_sse4a = 0; unsigned char is_amd = 0; unsigned int family = 0; bool arch; @@ -120,6 +121,7 @@ const char *host_detect_local_cpu (int argc, const char **argv) has_3dnow = !!(edx & bit_3DNOW); has_3dnowp = !!(edx & bit_3DNOWP); has_longmode = !!(edx & bit_LM); + has_sse4a = !!(ecx & bit_SSE4a); } is_amd = vendor == *(unsigned int*)"Auth"; @@ -132,6 +134,8 @@ const char *host_detect_local_cpu (int argc, const char **argv) processor = PROCESSOR_ATHLON; if (has_sse2 || has_longmode) processor = PROCESSOR_K8; + if (has_sse4a) + processor = PROCESSOR_AMDFAM10; } else { @@ -266,6 +270,9 @@ const char *host_detect_local_cpu (int argc, const char **argv) case PROCESSOR_NOCONA: cpu = "nocona"; break; + case PROCESSOR_AMDFAM10: + cpu = "amdfam10"; + break; case PROCESSOR_GENERIC32: case PROCESSOR_GENERIC64: cpu = "generic"; diff --git a/contrib/gcc/config/i386/i386.c b/contrib/gcc/config/i386/i386.c index 2567fca20a95..c07b7214203d 100644 --- a/contrib/gcc/config/i386/i386.c +++ b/contrib/gcc/config/i386/i386.c @@ -548,6 +548,71 @@ struct processor_costs k8_cost = { COSTS_N_INSNS (35), /* cost of FSQRT instruction. */ }; +struct processor_costs amdfam10_cost = { + COSTS_N_INSNS (1), /* cost of an add instruction */ + COSTS_N_INSNS (2), /* cost of a lea instruction */ + COSTS_N_INSNS (1), /* variable shift costs */ + COSTS_N_INSNS (1), /* constant shift costs */ + {COSTS_N_INSNS (3), /* cost of starting multiply for QI */ + COSTS_N_INSNS (4), /* HI */ + COSTS_N_INSNS (3), /* SI */ + COSTS_N_INSNS (4), /* DI */ + COSTS_N_INSNS (5)}, /* other */ + 0, /* cost of multiply per each bit set */ + {COSTS_N_INSNS (19), /* cost of a divide/mod for QI */ + COSTS_N_INSNS (35), /* HI */ + COSTS_N_INSNS (51), /* SI */ + COSTS_N_INSNS (83), /* DI */ + COSTS_N_INSNS (83)}, /* other */ + COSTS_N_INSNS (1), /* cost of movsx */ + COSTS_N_INSNS (1), /* cost of movzx */ + 8, /* "large" insn */ + 9, /* MOVE_RATIO */ + 4, /* cost for loading QImode using movzbl */ + {3, 4, 3}, /* cost of loading integer registers + in QImode, HImode and SImode. + Relative to reg-reg move (2). */ + {3, 4, 3}, /* cost of storing integer registers */ + 4, /* cost of reg,reg fld/fst */ + {4, 4, 12}, /* cost of loading fp registers + in SFmode, DFmode and XFmode */ + {6, 6, 8}, /* cost of storing fp registers + in SFmode, DFmode and XFmode */ + 2, /* cost of moving MMX register */ + {3, 3}, /* cost of loading MMX registers + in SImode and DImode */ + {4, 4}, /* cost of storing MMX registers + in SImode and DImode */ + 2, /* cost of moving SSE register */ + {4, 4, 3}, /* cost of loading SSE registers + in SImode, DImode and TImode */ + {4, 4, 5}, /* cost of storing SSE registers + in SImode, DImode and TImode */ + 3, /* MMX or SSE register to integer */ + /* On K8: + MOVD reg64, xmmreg Double FSTORE 4 + MOVD reg32, xmmreg Double FSTORE 4 + On AMDFAM10: + MOVD reg64, xmmreg Double FADD 3 + 1/1 1/1 + MOVD reg32, xmmreg Double FADD 3 + 1/1 1/1 */ + 64, /* size of prefetch block */ + /* New AMD processors never drop prefetches; if they cannot be performed + immediately, they are queued. We set number of simultaneous prefetches + to a large constant to reflect this (it probably is not a good idea not + to limit number of prefetches at all, as their execution also takes some + time). */ + 100, /* number of parallel prefetches */ + 2, /* Branch cost */ + COSTS_N_INSNS (4), /* cost of FADD and FSUB insns. */ + COSTS_N_INSNS (4), /* cost of FMUL instruction. */ + COSTS_N_INSNS (19), /* cost of FDIV instruction. */ + COSTS_N_INSNS (2), /* cost of FABS instruction. */ + COSTS_N_INSNS (2), /* cost of FCHS instruction. */ + COSTS_N_INSNS (35), /* cost of FSQRT instruction. */ +}; + static const struct processor_costs pentium4_cost = { COSTS_N_INSNS (1), /* cost of an add instruction */ @@ -834,11 +899,13 @@ const struct processor_costs *ix86_cost = &pentium_cost; #define m_PENT4 (1<to_allocate -= frame->red_zone_size; frame->stack_pointer_offset -= frame->red_zone_size; #if 0 - fprintf (stderr, "nregs: %i\n", frame->nregs); - fprintf (stderr, "size: %i\n", size); - fprintf (stderr, "alignment1: %i\n", stack_alignment_needed); - fprintf (stderr, "padding1: %i\n", frame->padding1); - fprintf (stderr, "va_arg: %i\n", frame->va_arg_size); - fprintf (stderr, "padding2: %i\n", frame->padding2); - fprintf (stderr, "to_allocate: %i\n", frame->to_allocate); - fprintf (stderr, "red_zone_size: %i\n", frame->red_zone_size); - fprintf (stderr, "frame_pointer_offset: %i\n", frame->frame_pointer_offset); - fprintf (stderr, "hard_frame_pointer_offset: %i\n", - frame->hard_frame_pointer_offset); - fprintf (stderr, "stack_pointer_offset: %i\n", frame->stack_pointer_offset); + fprintf (stderr, "\n"); + fprintf (stderr, "nregs: %ld\n", (long)frame->nregs); + fprintf (stderr, "size: %ld\n", (long)size); + fprintf (stderr, "alignment1: %ld\n", (long)stack_alignment_needed); + fprintf (stderr, "padding1: %ld\n", (long)frame->padding1); + fprintf (stderr, "va_arg: %ld\n", (long)frame->va_arg_size); + fprintf (stderr, "padding2: %ld\n", (long)frame->padding2); + fprintf (stderr, "to_allocate: %ld\n", (long)frame->to_allocate); + fprintf (stderr, "red_zone_size: %ld\n", (long)frame->red_zone_size); + fprintf (stderr, "frame_pointer_offset: %ld\n", (long)frame->frame_pointer_offset); + fprintf (stderr, "hard_frame_pointer_offset: %ld\n", + (long)frame->hard_frame_pointer_offset); + fprintf (stderr, "stack_pointer_offset: %ld\n", (long)frame->stack_pointer_offset); + fprintf (stderr, "current_function_is_leaf: %ld\n", (long)current_function_is_leaf); + fprintf (stderr, "current_function_calls_alloca: %ld\n", (long)current_function_calls_alloca); + fprintf (stderr, "x86_current_function_calls_tls_descriptor: %ld\n", (long)ix86_current_function_calls_tls_descriptor); #endif } @@ -7664,7 +7856,8 @@ print_reg (rtx x, int code, FILE *file) gcc_assert (REGNO (x) != ARG_POINTER_REGNUM && REGNO (x) != FRAME_POINTER_REGNUM && REGNO (x) != FLAGS_REG - && REGNO (x) != FPSR_REG); + && REGNO (x) != FPSR_REG + && REGNO (x) != FPCR_REG); if (ASSEMBLER_DIALECT == ASM_ATT || USER_LABEL_PREFIX[0] == 0) putc ('%', file); @@ -8859,17 +9052,15 @@ output_387_ffreep (rtx *operands ATTRIBUTE_UNUSED, int opno) #if HAVE_AS_IX86_FFREEP return opno ? "ffreep\t%y1" : "ffreep\t%y0"; #else - switch (REGNO (operands[opno])) - { - case FIRST_STACK_REG + 0: return ".word\t0xc0df"; - case FIRST_STACK_REG + 1: return ".word\t0xc1df"; - case FIRST_STACK_REG + 2: return ".word\t0xc2df"; - case FIRST_STACK_REG + 3: return ".word\t0xc3df"; - case FIRST_STACK_REG + 4: return ".word\t0xc4df"; - case FIRST_STACK_REG + 5: return ".word\t0xc5df"; - case FIRST_STACK_REG + 6: return ".word\t0xc6df"; - case FIRST_STACK_REG + 7: return ".word\t0xc7df"; - } + { + static char retval[] = ".word\t0xc_df"; + int regno = REGNO (operands[opno]); + + gcc_assert (FP_REGNO_P (regno)); + + retval[9] = '0' + (regno - FIRST_STACK_REG); + return retval; + } #endif return opno ? "fstp\t%y1" : "fstp\t%y0"; @@ -9247,8 +9438,16 @@ ix86_expand_vector_move_misalign (enum machine_mode mode, rtx operands[]) } if (TARGET_SSE2 && mode == V2DFmode) - { - rtx zero; + { + rtx zero; + + if (TARGET_SSE_UNALIGNED_MOVE_OPTIMAL) + { + op0 = gen_lowpart (V2DFmode, op0); + op1 = gen_lowpart (V2DFmode, op1); + emit_insn (gen_sse2_movupd (op0, op1)); + return; + } /* When SSE registers are split into halves, we can avoid writing to the top half twice. */ @@ -9276,7 +9475,15 @@ ix86_expand_vector_move_misalign (enum machine_mode mode, rtx operands[]) emit_insn (gen_sse2_loadhpd (op0, op0, m)); } else - { + { + if (TARGET_SSE_UNALIGNED_MOVE_OPTIMAL) + { + op0 = gen_lowpart (V4SFmode, op0); + op1 = gen_lowpart (V4SFmode, op1); + emit_insn (gen_sse_movups (op0, op1)); + return; + } + if (TARGET_SSE_PARTIAL_REG_DEPENDENCY) emit_move_insn (op0, CONST0_RTX (mode)); else @@ -13833,6 +14040,7 @@ ix86_issue_rate (void) case PROCESSOR_PENTIUM4: case PROCESSOR_ATHLON: case PROCESSOR_K8: + case PROCESSOR_AMDFAM10: case PROCESSOR_NOCONA: case PROCESSOR_GENERIC32: case PROCESSOR_GENERIC64: @@ -14031,6 +14239,7 @@ ix86_adjust_cost (rtx insn, rtx link, rtx dep_insn, int cost) case PROCESSOR_ATHLON: case PROCESSOR_K8: + case PROCESSOR_AMDFAM10: case PROCESSOR_GENERIC32: case PROCESSOR_GENERIC64: memory = get_attr_memory (insn); @@ -14744,6 +14953,14 @@ enum ix86_builtins IX86_BUILTIN_PABSW128, IX86_BUILTIN_PABSD128, + /* AMDFAM10 - SSE4A New Instructions. */ + IX86_BUILTIN_MOVNTSD, + IX86_BUILTIN_MOVNTSS, + IX86_BUILTIN_EXTRQI, + IX86_BUILTIN_EXTRQ, + IX86_BUILTIN_INSERTQI, + IX86_BUILTIN_INSERTQ, + IX86_BUILTIN_VEC_INIT_V2SI, IX86_BUILTIN_VEC_INIT_V4HI, IX86_BUILTIN_VEC_INIT_V8QI, @@ -15468,6 +15685,18 @@ ix86_init_mmx_sse_builtins (void) = build_function_type_list (void_type_node, pchar_type_node, V16QI_type_node, NULL_TREE); + tree v2di_ftype_v2di_unsigned_unsigned + = build_function_type_list (V2DI_type_node, V2DI_type_node, + unsigned_type_node, unsigned_type_node, + NULL_TREE); + tree v2di_ftype_v2di_v2di_unsigned_unsigned + = build_function_type_list (V2DI_type_node, V2DI_type_node, V2DI_type_node, + unsigned_type_node, unsigned_type_node, + NULL_TREE); + tree v2di_ftype_v2di_v16qi + = build_function_type_list (V2DI_type_node, V2DI_type_node, V16QI_type_node, + NULL_TREE); + tree float80_type; tree float128_type; tree ftype; @@ -15804,6 +16033,20 @@ ix86_init_mmx_sse_builtins (void) def_builtin (MASK_SSSE3, "__builtin_ia32_palignr", di_ftype_di_di_int, IX86_BUILTIN_PALIGNR); + /* AMDFAM10 SSE4A New built-ins */ + def_builtin (MASK_SSE4A, "__builtin_ia32_movntsd", + void_ftype_pdouble_v2df, IX86_BUILTIN_MOVNTSD); + def_builtin (MASK_SSE4A, "__builtin_ia32_movntss", + void_ftype_pfloat_v4sf, IX86_BUILTIN_MOVNTSS); + def_builtin (MASK_SSE4A, "__builtin_ia32_extrqi", + v2di_ftype_v2di_unsigned_unsigned, IX86_BUILTIN_EXTRQI); + def_builtin (MASK_SSE4A, "__builtin_ia32_extrq", + v2di_ftype_v2di_v16qi, IX86_BUILTIN_EXTRQ); + def_builtin (MASK_SSE4A, "__builtin_ia32_insertqi", + v2di_ftype_v2di_v2di_unsigned_unsigned, IX86_BUILTIN_INSERTQI); + def_builtin (MASK_SSE4A, "__builtin_ia32_insertq", + v2di_ftype_v2di_v2di, IX86_BUILTIN_INSERTQ); + /* Access to the vec_init patterns. */ ftype = build_function_type_list (V2SI_type_node, integer_type_node, integer_type_node, NULL_TREE); @@ -16300,9 +16543,9 @@ ix86_expand_builtin (tree exp, rtx target, rtx subtarget ATTRIBUTE_UNUSED, enum insn_code icode; tree fndecl = TREE_OPERAND (TREE_OPERAND (exp, 0), 0); tree arglist = TREE_OPERAND (exp, 1); - tree arg0, arg1, arg2; - rtx op0, op1, op2, pat; - enum machine_mode tmode, mode0, mode1, mode2, mode3; + tree arg0, arg1, arg2, arg3; + rtx op0, op1, op2, op3, pat; + enum machine_mode tmode, mode0, mode1, mode2, mode3, mode4; unsigned int fcode = DECL_FUNCTION_CODE (fndecl); switch (fcode) @@ -16818,6 +17061,114 @@ ix86_expand_builtin (tree exp, rtx target, rtx subtarget ATTRIBUTE_UNUSED, emit_insn (pat); return target; + case IX86_BUILTIN_MOVNTSD: + return ix86_expand_store_builtin (CODE_FOR_sse4a_vmmovntv2df, arglist); + + case IX86_BUILTIN_MOVNTSS: + return ix86_expand_store_builtin (CODE_FOR_sse4a_vmmovntv4sf, arglist); + + case IX86_BUILTIN_INSERTQ: + case IX86_BUILTIN_EXTRQ: + icode = (fcode == IX86_BUILTIN_EXTRQ + ? CODE_FOR_sse4a_extrq + : CODE_FOR_sse4a_insertq); + arg0 = TREE_VALUE (arglist); + arg1 = TREE_VALUE (TREE_CHAIN (arglist)); + op0 = expand_normal (arg0); + op1 = expand_normal (arg1); + tmode = insn_data[icode].operand[0].mode; + mode1 = insn_data[icode].operand[1].mode; + mode2 = insn_data[icode].operand[2].mode; + if (! (*insn_data[icode].operand[1].predicate) (op0, mode1)) + op0 = copy_to_mode_reg (mode1, op0); + if (! (*insn_data[icode].operand[2].predicate) (op1, mode2)) + op1 = copy_to_mode_reg (mode2, op1); + if (optimize || target == 0 + || GET_MODE (target) != tmode + || ! (*insn_data[icode].operand[0].predicate) (target, tmode)) + target = gen_reg_rtx (tmode); + pat = GEN_FCN (icode) (target, op0, op1); + if (! pat) + return NULL_RTX; + emit_insn (pat); + return target; + + case IX86_BUILTIN_EXTRQI: + icode = CODE_FOR_sse4a_extrqi; + arg0 = TREE_VALUE (arglist); + arg1 = TREE_VALUE (TREE_CHAIN (arglist)); + arg2 = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist))); + op0 = expand_normal (arg0); + op1 = expand_normal (arg1); + op2 = expand_normal (arg2); + tmode = insn_data[icode].operand[0].mode; + mode1 = insn_data[icode].operand[1].mode; + mode2 = insn_data[icode].operand[2].mode; + mode3 = insn_data[icode].operand[3].mode; + if (! (*insn_data[icode].operand[1].predicate) (op0, mode1)) + op0 = copy_to_mode_reg (mode1, op0); + if (! (*insn_data[icode].operand[2].predicate) (op1, mode2)) + { + error ("index mask must be an immediate"); + return gen_reg_rtx (tmode); + } + if (! (*insn_data[icode].operand[3].predicate) (op2, mode3)) + { + error ("length mask must be an immediate"); + return gen_reg_rtx (tmode); + } + if (optimize || target == 0 + || GET_MODE (target) != tmode + || ! (*insn_data[icode].operand[0].predicate) (target, tmode)) + target = gen_reg_rtx (tmode); + pat = GEN_FCN (icode) (target, op0, op1, op2); + if (! pat) + return NULL_RTX; + emit_insn (pat); + return target; + + case IX86_BUILTIN_INSERTQI: + icode = CODE_FOR_sse4a_insertqi; + arg0 = TREE_VALUE (arglist); + arg1 = TREE_VALUE (TREE_CHAIN (arglist)); + arg2 = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist))); + arg3 = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (TREE_CHAIN (arglist)))); + op0 = expand_normal (arg0); + op1 = expand_normal (arg1); + op2 = expand_normal (arg2); + op3 = expand_normal (arg3); + tmode = insn_data[icode].operand[0].mode; + mode1 = insn_data[icode].operand[1].mode; + mode2 = insn_data[icode].operand[2].mode; + mode3 = insn_data[icode].operand[3].mode; + mode4 = insn_data[icode].operand[4].mode; + + if (! (*insn_data[icode].operand[1].predicate) (op0, mode1)) + op0 = copy_to_mode_reg (mode1, op0); + + if (! (*insn_data[icode].operand[2].predicate) (op1, mode2)) + op1 = copy_to_mode_reg (mode2, op1); + + if (! (*insn_data[icode].operand[3].predicate) (op2, mode3)) + { + error ("index mask must be an immediate"); + return gen_reg_rtx (tmode); + } + if (! (*insn_data[icode].operand[4].predicate) (op3, mode4)) + { + error ("length mask must be an immediate"); + return gen_reg_rtx (tmode); + } + if (optimize || target == 0 + || GET_MODE (target) != tmode + || ! (*insn_data[icode].operand[0].predicate) (target, tmode)) + target = gen_reg_rtx (tmode); + pat = GEN_FCN (icode) (target, op0, op1, op2, op3); + if (! pat) + return NULL_RTX; + emit_insn (pat); + return target; + case IX86_BUILTIN_VEC_INIT_V2SI: case IX86_BUILTIN_VEC_INIT_V4HI: case IX86_BUILTIN_VEC_INIT_V8QI: diff --git a/contrib/gcc/config/i386/i386.h b/contrib/gcc/config/i386/i386.h index b9770147990e..896bf1d5f668 100644 --- a/contrib/gcc/config/i386/i386.h +++ b/contrib/gcc/config/i386/i386.h @@ -141,6 +141,7 @@ extern const struct processor_costs *ix86_cost; #define TARGET_GENERIC32 (ix86_tune == PROCESSOR_GENERIC32) #define TARGET_GENERIC64 (ix86_tune == PROCESSOR_GENERIC64) #define TARGET_GENERIC (TARGET_GENERIC32 || TARGET_GENERIC64) +#define TARGET_AMDFAM10 (ix86_tune == PROCESSOR_AMDFAM10) #define TUNEMASK (1 << ix86_tune) extern const int x86_use_leave, x86_push_memory, x86_zero_extend_with_and; @@ -159,15 +160,16 @@ extern const int x86_accumulate_outgoing_args, x86_prologue_using_move; extern const int x86_epilogue_using_move, x86_decompose_lea; extern const int x86_arch_always_fancy_math_387, x86_shift1; extern const int x86_sse_partial_reg_dependency, x86_sse_split_regs; +extern const int x86_sse_unaligned_move_optimal; extern const int x86_sse_typeless_stores, x86_sse_load0_by_pxor; extern const int x86_use_ffreep; extern const int x86_inter_unit_moves, x86_schedule; extern const int x86_use_bt; -extern const int x86_cmpxchg, x86_cmpxchg8b, x86_cmpxchg16b, x86_xadd; +extern const int x86_cmpxchg, x86_cmpxchg8b, x86_xadd; extern const int x86_use_incdec; extern const int x86_pad_returns; extern const int x86_partial_flag_reg_stall; -extern int x86_prefetch_sse; +extern int x86_prefetch_sse, x86_cmpxchg16b; #define TARGET_USE_LEAVE (x86_use_leave & TUNEMASK) #define TARGET_PUSH_MEMORY (x86_push_memory & TUNEMASK) @@ -207,6 +209,8 @@ extern int x86_prefetch_sse; #define TARGET_PARTIAL_REG_DEPENDENCY (x86_partial_reg_dependency & TUNEMASK) #define TARGET_SSE_PARTIAL_REG_DEPENDENCY \ (x86_sse_partial_reg_dependency & TUNEMASK) +#define TARGET_SSE_UNALIGNED_MOVE_OPTIMAL \ + (x86_sse_unaligned_move_optimal & TUNEMASK) #define TARGET_SSE_SPLIT_REGS (x86_sse_split_regs & TUNEMASK) #define TARGET_SSE_TYPELESS_STORES (x86_sse_typeless_stores & TUNEMASK) #define TARGET_SSE_LOAD0_BY_PXOR (x86_sse_load0_by_pxor & TUNEMASK) @@ -237,7 +241,7 @@ extern int x86_prefetch_sse; #define TARGET_CMPXCHG (x86_cmpxchg & (1 << ix86_arch)) #define TARGET_CMPXCHG8B (x86_cmpxchg8b & (1 << ix86_arch)) -#define TARGET_CMPXCHG16B (x86_cmpxchg16b & (1 << ix86_arch)) +#define TARGET_CMPXCHG16B (x86_cmpxchg16b) #define TARGET_XADD (x86_xadd & (1 << ix86_arch)) #ifndef TARGET_64BIT_DEFAULT @@ -399,6 +403,8 @@ extern const char *host_detect_local_cpu (int argc, const char **argv); } \ else if (TARGET_K8) \ builtin_define ("__tune_k8__"); \ + else if (TARGET_AMDFAM10) \ + builtin_define ("__tune_amdfam10__"); \ else if (TARGET_PENTIUM4) \ builtin_define ("__tune_pentium4__"); \ else if (TARGET_NOCONA) \ @@ -420,6 +426,8 @@ extern const char *host_detect_local_cpu (int argc, const char **argv); builtin_define ("__SSE3__"); \ if (TARGET_SSSE3) \ builtin_define ("__SSSE3__"); \ + if (TARGET_SSE4A) \ + builtin_define ("__SSE4A__"); \ if (TARGET_SSE_MATH && TARGET_SSE) \ builtin_define ("__SSE_MATH__"); \ if (TARGET_SSE_MATH && TARGET_SSE2) \ @@ -475,6 +483,11 @@ extern const char *host_detect_local_cpu (int argc, const char **argv); builtin_define ("__k8"); \ builtin_define ("__k8__"); \ } \ + else if (ix86_arch == PROCESSOR_AMDFAM10) \ + { \ + builtin_define ("__amdfam10"); \ + builtin_define ("__amdfam10__"); \ + } \ else if (ix86_arch == PROCESSOR_PENTIUM4) \ { \ builtin_define ("__pentium4"); \ @@ -513,13 +526,14 @@ extern const char *host_detect_local_cpu (int argc, const char **argv); #define TARGET_CPU_DEFAULT_nocona 17 #define TARGET_CPU_DEFAULT_core2 18 #define TARGET_CPU_DEFAULT_generic 19 +#define TARGET_CPU_DEFAULT_amdfam10 20 #define TARGET_CPU_DEFAULT_NAMES {"i386", "i486", "pentium", "pentium-mmx",\ "pentiumpro", "pentium2", "pentium3", \ "pentium4", "geode", "k6", "k6-2", "k6-3", \ "athlon", "athlon-4", "k8", \ "pentium-m", "prescott", "nocona", \ - "core2", "generic"} + "core2", "generic", "amdfam10"} #ifndef CC1_SPEC #define CC1_SPEC "%(cc1_cpu) " @@ -734,7 +748,7 @@ extern const char *host_detect_local_cpu (int argc, const char **argv); eliminated during reloading in favor of either the stack or frame pointer. */ -#define FIRST_PSEUDO_REGISTER 53 +#define FIRST_PSEUDO_REGISTER 54 /* Number of hardware registers that go into the DWARF-2 unwind info. If not defined, equals FIRST_PSEUDO_REGISTER. */ @@ -754,8 +768,8 @@ extern const char *host_detect_local_cpu (int argc, const char **argv); #define FIXED_REGISTERS \ /*ax,dx,cx,bx,si,di,bp,sp,st,st1,st2,st3,st4,st5,st6,st7*/ \ { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, \ -/*arg,flags,fpsr,dir,frame*/ \ - 1, 1, 1, 1, 1, \ +/*arg,flags,fpsr,fpcr,dir,frame*/ \ + 1, 1, 1, 1, 1, 1, \ /*xmm0,xmm1,xmm2,xmm3,xmm4,xmm5,xmm6,xmm7*/ \ 0, 0, 0, 0, 0, 0, 0, 0, \ /*mmx0,mmx1,mmx2,mmx3,mmx4,mmx5,mmx6,mmx7*/ \ @@ -782,10 +796,10 @@ extern const char *host_detect_local_cpu (int argc, const char **argv); #define CALL_USED_REGISTERS \ /*ax,dx,cx,bx,si,di,bp,sp,st,st1,st2,st3,st4,st5,st6,st7*/ \ { 1, 1, 1, 0, 3, 3, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, \ -/*arg,flags,fpsr,dir,frame*/ \ - 1, 1, 1, 1, 1, \ +/*arg,flags,fpsr,fpcr,dir,frame*/ \ + 1, 1, 1, 1, 1, 1, \ /*xmm0,xmm1,xmm2,xmm3,xmm4,xmm5,xmm6,xmm7*/ \ - 1, 1, 1, 1, 1, 1, 1, 1, \ + 1, 1, 1, 1, 1, 1, 1, 1, \ /*mmx0,mmx1,mmx2,mmx3,mmx4,mmx5,mmx6,mmx7*/ \ 1, 1, 1, 1, 1, 1, 1, 1, \ /* r8, r9, r10, r11, r12, r13, r14, r15*/ \ @@ -806,11 +820,11 @@ extern const char *host_detect_local_cpu (int argc, const char **argv); { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,\ 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, \ 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, \ - 48, 49, 50, 51, 52 } + 48, 49, 50, 51, 52, 53 } /* ORDER_REGS_FOR_LOCAL_ALLOC is a macro which permits reg_alloc_order to be rearranged based on a particular function. When using sse math, - we want to allocate SSE before x87 registers and vice vera. */ + we want to allocate SSE before x87 registers and vice versa. */ #define ORDER_REGS_FOR_LOCAL_ALLOC x86_order_regs_for_local_alloc () @@ -972,7 +986,7 @@ do { \ #define HARD_FRAME_POINTER_REGNUM 6 /* Base register for access to local variables of the function. */ -#define FRAME_POINTER_REGNUM 20 +#define FRAME_POINTER_REGNUM 21 /* First floating point reg */ #define FIRST_FLOAT_REG 8 @@ -1085,7 +1099,7 @@ do { \ opcode needs reg %ebx. But some systems pass args to the OS in ebx, and the "b" register constraint is useful in asms for syscalls. - The flags and fpsr registers are in no class. */ + The flags, fpsr and fpcr registers are in no class. */ enum reg_class { @@ -1166,21 +1180,21 @@ enum reg_class { 0x10, 0x0 }, { 0x20, 0x0 }, /* SIREG, DIREG */ \ { 0x03, 0x0 }, /* AD_REGS */ \ { 0x0f, 0x0 }, /* Q_REGS */ \ - { 0x1100f0, 0x1fe0 }, /* NON_Q_REGS */ \ - { 0x7f, 0x1fe0 }, /* INDEX_REGS */ \ - { 0x1100ff, 0x0 }, /* LEGACY_REGS */ \ - { 0x1100ff, 0x1fe0 }, /* GENERAL_REGS */ \ + { 0x2100f0, 0x3fc0 }, /* NON_Q_REGS */ \ + { 0x7f, 0x3fc0 }, /* INDEX_REGS */ \ + { 0x2100ff, 0x0 }, /* LEGACY_REGS */ \ + { 0x2100ff, 0x3fc0 }, /* GENERAL_REGS */ \ { 0x100, 0x0 }, { 0x0200, 0x0 },/* FP_TOP_REG, FP_SECOND_REG */\ { 0xff00, 0x0 }, /* FLOAT_REGS */ \ -{ 0x1fe00000,0x1fe000 }, /* SSE_REGS */ \ -{ 0xe0000000, 0x1f }, /* MMX_REGS */ \ -{ 0x1fe00100,0x1fe000 }, /* FP_TOP_SSE_REG */ \ -{ 0x1fe00200,0x1fe000 }, /* FP_SECOND_SSE_REG */ \ -{ 0x1fe0ff00,0x1fe000 }, /* FLOAT_SSE_REGS */ \ - { 0x1ffff, 0x1fe0 }, /* FLOAT_INT_REGS */ \ -{ 0x1fe100ff,0x1fffe0 }, /* INT_SSE_REGS */ \ -{ 0x1fe1ffff,0x1fffe0 }, /* FLOAT_INT_SSE_REGS */ \ -{ 0xffffffff,0x1fffff } \ +{ 0x3fc00000,0x3fc000 }, /* SSE_REGS */ \ +{ 0xc0000000, 0x3f }, /* MMX_REGS */ \ +{ 0x3fc00100,0x3fc000 }, /* FP_TOP_SSE_REG */ \ +{ 0x3fc00200,0x3fc000 }, /* FP_SECOND_SSE_REG */ \ +{ 0x3fc0ff00,0x3fc000 }, /* FLOAT_SSE_REGS */ \ + { 0x1ffff, 0x3fc0 }, /* FLOAT_INT_REGS */ \ +{ 0x3fc100ff,0x3fffc0 }, /* INT_SSE_REGS */ \ +{ 0x3fc1ffff,0x3fffc0 }, /* FLOAT_INT_SSE_REGS */ \ +{ 0xffffffff,0x3fffff } \ } /* The same information, inverted: @@ -1196,11 +1210,10 @@ enum reg_class #define SMALL_REGISTER_CLASSES 1 -#define QI_REG_P(X) \ - (REG_P (X) && REGNO (X) < 4) +#define QI_REG_P(X) (REG_P (X) && REGNO (X) < 4) #define GENERAL_REGNO_P(N) \ - ((N) < 8 || REX_INT_REGNO_P (N)) + ((N) <= STACK_POINTER_REGNUM || REX_INT_REGNO_P (N)) #define GENERAL_REG_P(X) \ (REG_P (X) && GENERAL_REGNO_P (REGNO (X))) @@ -1208,39 +1221,38 @@ enum reg_class #define ANY_QI_REG_P(X) (TARGET_64BIT ? GENERAL_REG_P(X) : QI_REG_P (X)) #define NON_QI_REG_P(X) \ - (REG_P (X) && REGNO (X) >= 4 && REGNO (X) < FIRST_PSEUDO_REGISTER) + (REG_P (X) && IN_RANGE (REGNO (X), 4, FIRST_PSEUDO_REGISTER - 1)) -#define REX_INT_REGNO_P(N) ((N) >= FIRST_REX_INT_REG && (N) <= LAST_REX_INT_REG) +#define REX_INT_REGNO_P(N) \ + IN_RANGE ((N), FIRST_REX_INT_REG, LAST_REX_INT_REG) #define REX_INT_REG_P(X) (REG_P (X) && REX_INT_REGNO_P (REGNO (X))) #define FP_REG_P(X) (REG_P (X) && FP_REGNO_P (REGNO (X))) -#define FP_REGNO_P(N) ((N) >= FIRST_STACK_REG && (N) <= LAST_STACK_REG) +#define FP_REGNO_P(N) IN_RANGE ((N), FIRST_STACK_REG, LAST_STACK_REG) #define ANY_FP_REG_P(X) (REG_P (X) && ANY_FP_REGNO_P (REGNO (X))) #define ANY_FP_REGNO_P(N) (FP_REGNO_P (N) || SSE_REGNO_P (N)) -#define SSE_REGNO_P(N) \ - (((N) >= FIRST_SSE_REG && (N) <= LAST_SSE_REG) \ - || ((N) >= FIRST_REX_SSE_REG && (N) <= LAST_REX_SSE_REG)) +#define SSE_REG_P(N) (REG_P (N) && SSE_REGNO_P (REGNO (N))) +#define SSE_REGNO_P(N) \ + (IN_RANGE ((N), FIRST_SSE_REG, LAST_SSE_REG) \ + || REX_SSE_REGNO_P (N)) #define REX_SSE_REGNO_P(N) \ - ((N) >= FIRST_REX_SSE_REG && (N) <= LAST_REX_SSE_REG) + IN_RANGE ((N), FIRST_REX_SSE_REG, LAST_REX_SSE_REG) #define SSE_REGNO(N) \ ((N) < 8 ? FIRST_SSE_REG + (N) : FIRST_REX_SSE_REG + (N) - 8) -#define SSE_REG_P(N) (REG_P (N) && SSE_REGNO_P (REGNO (N))) #define SSE_FLOAT_MODE_P(MODE) \ ((TARGET_SSE && (MODE) == SFmode) || (TARGET_SSE2 && (MODE) == DFmode)) -#define MMX_REGNO_P(N) ((N) >= FIRST_MMX_REG && (N) <= LAST_MMX_REG) #define MMX_REG_P(XOP) (REG_P (XOP) && MMX_REGNO_P (REGNO (XOP))) +#define MMX_REGNO_P(N) IN_RANGE ((N), FIRST_MMX_REG, LAST_MMX_REG) -#define STACK_REG_P(XOP) \ - (REG_P (XOP) && \ - REGNO (XOP) >= FIRST_STACK_REG && \ - REGNO (XOP) <= LAST_STACK_REG) - -#define NON_STACK_REG_P(XOP) (REG_P (XOP) && ! STACK_REG_P (XOP)) +#define STACK_REG_P(XOP) (REG_P (XOP) && STACK_REGNO_P (REGNO (XOP))) +#define NON_STACK_REG_P(XOP) \ + (REG_P (XOP) && ! STACK_REGNO_P (REGNO (XOP))) +#define STACK_REGNO_P(N) IN_RANGE ((N), FIRST_STACK_REG, LAST_STACK_REG) #define STACK_TOP_P(XOP) (REG_P (XOP) && REGNO (XOP) == FIRST_STACK_REG) @@ -1588,21 +1600,15 @@ typedef struct ix86_args { #define REGNO_OK_FOR_INDEX_P(REGNO) \ ((REGNO) < STACK_POINTER_REGNUM \ - || (REGNO >= FIRST_REX_INT_REG \ - && (REGNO) <= LAST_REX_INT_REG) \ - || ((unsigned) reg_renumber[(REGNO)] >= FIRST_REX_INT_REG \ - && (unsigned) reg_renumber[(REGNO)] <= LAST_REX_INT_REG) \ - || (unsigned) reg_renumber[(REGNO)] < STACK_POINTER_REGNUM) + || REX_INT_REGNO_P (REGNO) \ + || (unsigned) reg_renumber[(REGNO)] < STACK_POINTER_REGNUM \ + || REX_INT_REGNO_P ((unsigned) reg_renumber[(REGNO)])) #define REGNO_OK_FOR_BASE_P(REGNO) \ - ((REGNO) <= STACK_POINTER_REGNUM \ + (GENERAL_REGNO_P (REGNO) \ || (REGNO) == ARG_POINTER_REGNUM \ || (REGNO) == FRAME_POINTER_REGNUM \ - || (REGNO >= FIRST_REX_INT_REG \ - && (REGNO) <= LAST_REX_INT_REG) \ - || ((unsigned) reg_renumber[(REGNO)] >= FIRST_REX_INT_REG \ - && (unsigned) reg_renumber[(REGNO)] <= LAST_REX_INT_REG) \ - || (unsigned) reg_renumber[(REGNO)] <= STACK_POINTER_REGNUM) + || GENERAL_REGNO_P ((unsigned) reg_renumber[(REGNO)])) #define REGNO_OK_FOR_SIREG_P(REGNO) \ ((REGNO) == 4 || reg_renumber[(REGNO)] == 4) @@ -1626,16 +1632,13 @@ typedef struct ix86_args { /* Non strict versions, pseudos are ok. */ #define REG_OK_FOR_INDEX_NONSTRICT_P(X) \ (REGNO (X) < STACK_POINTER_REGNUM \ - || (REGNO (X) >= FIRST_REX_INT_REG \ - && REGNO (X) <= LAST_REX_INT_REG) \ + || REX_INT_REGNO_P (REGNO (X)) \ || REGNO (X) >= FIRST_PSEUDO_REGISTER) #define REG_OK_FOR_BASE_NONSTRICT_P(X) \ - (REGNO (X) <= STACK_POINTER_REGNUM \ + (GENERAL_REGNO_P (REGNO (X)) \ || REGNO (X) == ARG_POINTER_REGNUM \ || REGNO (X) == FRAME_POINTER_REGNUM \ - || (REGNO (X) >= FIRST_REX_INT_REG \ - && REGNO (X) <= LAST_REX_INT_REG) \ || REGNO (X) >= FIRST_PSEUDO_REGISTER) /* Strict versions, hard registers only */ @@ -1940,9 +1943,9 @@ do { \ #define HI_REGISTER_NAMES \ {"ax","dx","cx","bx","si","di","bp","sp", \ "st","st(1)","st(2)","st(3)","st(4)","st(5)","st(6)","st(7)", \ - "argp", "flags", "fpsr", "dirflag", "frame", \ + "argp", "flags", "fpsr", "fpcr", "dirflag", "frame", \ "xmm0","xmm1","xmm2","xmm3","xmm4","xmm5","xmm6","xmm7", \ - "mm0", "mm1", "mm2", "mm3", "mm4", "mm5", "mm6", "mm7" , \ + "mm0", "mm1", "mm2", "mm3", "mm4", "mm5", "mm6", "mm7", \ "r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15", \ "xmm8", "xmm9", "xmm10", "xmm11", "xmm12", "xmm13", "xmm14", "xmm15"} @@ -2108,6 +2111,7 @@ enum processor_type PROCESSOR_CORE2, PROCESSOR_GENERIC32, PROCESSOR_GENERIC64, + PROCESSOR_AMDFAM10, PROCESSOR_max }; @@ -2247,7 +2251,7 @@ enum ix86_stack_slot ??? Maybe Pentium chips benefits from renaming, someone can try.... */ #define HARD_REGNO_RENAME_OK(SRC, TARGET) \ - ((SRC) < FIRST_STACK_REG || (SRC) > LAST_STACK_REG) + (! IN_RANGE ((SRC), FIRST_STACK_REG, LAST_STACK_REG)) #define DLL_IMPORT_EXPORT_PREFIX '#' diff --git a/contrib/gcc/config/i386/i386.md b/contrib/gcc/config/i386/i386.md index bd81c4aa756e..e0b0d0c6b031 100644 --- a/contrib/gcc/config/i386/i386.md +++ b/contrib/gcc/config/i386/i386.md @@ -104,7 +104,7 @@ (UNSPEC_MFENCE 44) (UNSPEC_LFENCE 45) (UNSPEC_PSADBW 46) - (UNSPEC_LDQQU 47) + (UNSPEC_LDDQU 47) ; Generic math support (UNSPEC_COPYSIGN 50) @@ -153,6 +153,12 @@ (UNSPEC_PSHUFB 120) (UNSPEC_PSIGN 121) (UNSPEC_PALIGNR 122) + + ; For SSE4A support + (UNSPEC_EXTRQI 130) + (UNSPEC_EXTRQ 131) + (UNSPEC_INSERTQI 132) + (UNSPEC_INSERTQ 133) ]) (define_constants @@ -178,7 +184,9 @@ (SP_REG 7) (FLAGS_REG 17) (FPSR_REG 18) - (DIRFLAG_REG 19) + (FPCR_REG 19) + (DIRFLAG_REG 20) + (R11_REG 41) ]) ;; Insns whose names begin with "x86_" are emitted by gen_FOO calls @@ -192,7 +200,8 @@ ;; Processor type. This attribute must exactly match the processor_type ;; enumeration in i386.h. -(define_attr "cpu" "i386,i486,pentium,pentiumpro,geode,k6,athlon,pentium4,k8,nocona,core2,generic32,generic64" +(define_attr "cpu" "i386,i486,pentium,pentiumpro,geode,k6,athlon,pentium4,k8, + nocona,core2,generic32,generic64,amdfam10" (const (symbol_ref "ix86_tune"))) ;; A basic instruction type. Refinements due to arguments to be @@ -203,10 +212,10 @@ incdec,ishift,ishift1,rotate,rotate1,imul,idiv, icmp,test,ibr,setcc,icmov, push,pop,call,callv,leave, - str,cld, + str,,bitmanip,cld, fmov,fop,fsgn,fmul,fdiv,fpspc,fcmov,fcmp,fxch,fistp,fisttp,frndint, sselog,sselog1,sseiadd,sseishft,sseimul, - sse,ssemov,sseadd,ssemul,ssecmp,ssecomi,ssecvt,sseicvt,ssediv, + sse,ssemov,sseadd,ssemul,ssecmp,ssecomi,ssecvt,sseicvt,ssediv,sseins, mmx,mmxmov,mmxadd,mmxmul,mmxcmp,mmxcvt,mmxshft" (const_string "other")) @@ -220,7 +229,7 @@ (cond [(eq_attr "type" "fmov,fop,fsgn,fmul,fdiv,fpspc,fcmov,fcmp,fxch,fistp,fisttp,frndint") (const_string "i387") (eq_attr "type" "sselog,sselog1,sseiadd,sseishft,sseimul, - sse,ssemov,sseadd,ssemul,ssecmp,ssecomi,ssecvt,sseicvt,ssediv") + sse,ssemov,sseadd,ssemul,ssecmp,ssecomi,ssecvt,sseicvt,ssediv,sseins") (const_string "sse") (eq_attr "type" "mmx,mmxmov,mmxadd,mmxmul,mmxcmp,mmxcvt,mmxshft") (const_string "mmx") @@ -230,7 +239,8 @@ ;; The (bounding maximum) length of an instruction immediate. (define_attr "length_immediate" "" - (cond [(eq_attr "type" "incdec,setcc,icmov,str,cld,lea,other,multi,idiv,leave") + (cond [(eq_attr "type" "incdec,setcc,icmov,str,cld,lea,other,multi,idiv,leave, + bitmanip") (const_int 0) (eq_attr "unit" "i387,sse,mmx") (const_int 0) @@ -284,7 +294,7 @@ ;; Set when 0f opcode prefix is used. (define_attr "prefix_0f" "" (if_then_else - (ior (eq_attr "type" "imovx,setcc,icmov") + (ior (eq_attr "type" "imovx,setcc,icmov,bitmanip") (eq_attr "unit" "sse,mmx")) (const_int 1) (const_int 0))) @@ -413,7 +423,7 @@ (const_string "load") (and (eq_attr "type" "!alu1,negnot,ishift1, - imov,imovx,icmp,test, + imov,imovx,icmp,test,bitmanip, fmov,fcmp,fsgn, sse,ssemov,ssecmp,ssecomi,ssecvt,sseicvt,sselog1, mmx,mmxmov,mmxcmp,mmxcvt") @@ -968,10 +978,11 @@ "sahf" [(set_attr "length" "1") (set_attr "athlon_decode" "vector") + (set_attr "amdfam10_decode" "direct") (set_attr "mode" "SI")]) ;; Pentium Pro can do steps 1 through 3 in one go. - +;; comi*, ucomi*, fcomi*, ficomi*,fucomi* (i387 instructions set condition codes) (define_insn "*cmpfp_i_mixed" [(set (reg:CCFP FLAGS_REG) (compare:CCFP (match_operand 0 "register_operand" "f,x") @@ -985,7 +996,8 @@ (if_then_else (match_operand:SF 1 "" "") (const_string "SF") (const_string "DF"))) - (set_attr "athlon_decode" "vector")]) + (set_attr "athlon_decode" "vector") + (set_attr "amdfam10_decode" "direct")]) (define_insn "*cmpfp_i_sse" [(set (reg:CCFP FLAGS_REG) @@ -1000,7 +1012,8 @@ (if_then_else (match_operand:SF 1 "" "") (const_string "SF") (const_string "DF"))) - (set_attr "athlon_decode" "vector")]) + (set_attr "athlon_decode" "vector") + (set_attr "amdfam10_decode" "direct")]) (define_insn "*cmpfp_i_i387" [(set (reg:CCFP FLAGS_REG) @@ -1019,7 +1032,8 @@ (const_string "DF") ] (const_string "XF"))) - (set_attr "athlon_decode" "vector")]) + (set_attr "athlon_decode" "vector") + (set_attr "amdfam10_decode" "direct")]) (define_insn "*cmpfp_iu_mixed" [(set (reg:CCFPU FLAGS_REG) @@ -1034,7 +1048,8 @@ (if_then_else (match_operand:SF 1 "" "") (const_string "SF") (const_string "DF"))) - (set_attr "athlon_decode" "vector")]) + (set_attr "athlon_decode" "vector") + (set_attr "amdfam10_decode" "direct")]) (define_insn "*cmpfp_iu_sse" [(set (reg:CCFPU FLAGS_REG) @@ -1049,7 +1064,8 @@ (if_then_else (match_operand:SF 1 "" "") (const_string "SF") (const_string "DF"))) - (set_attr "athlon_decode" "vector")]) + (set_attr "athlon_decode" "vector") + (set_attr "amdfam10_decode" "direct")]) (define_insn "*cmpfp_iu_387" [(set (reg:CCFPU FLAGS_REG) @@ -1068,7 +1084,8 @@ (const_string "DF") ] (const_string "XF"))) - (set_attr "athlon_decode" "vector")]) + (set_attr "athlon_decode" "vector") + (set_attr "amdfam10_decode" "direct")]) ;; Move instructions. @@ -1274,7 +1291,8 @@ [(set_attr "type" "imov") (set_attr "mode" "SI") (set_attr "pent_pair" "np") - (set_attr "athlon_decode" "vector")]) + (set_attr "athlon_decode" "vector") + (set_attr "amdfam10_decode" "double")]) (define_expand "movhi" [(set (match_operand:HI 0 "nonimmediate_operand" "") @@ -1391,8 +1409,10 @@ [(set_attr "type" "imov") (set_attr "mode" "SI") (set_attr "pent_pair" "np") - (set_attr "athlon_decode" "vector")]) + (set_attr "athlon_decode" "vector") + (set_attr "amdfam10_decode" "double")]) +;; Not added amdfam10_decode since TARGET_PARTIAL_REG_STALL is disabled for AMDFAM10 (define_insn "*swaphi_2" [(set (match_operand:HI 0 "register_operand" "+r") (match_operand:HI 1 "register_operand" "+r")) @@ -1565,8 +1585,10 @@ [(set_attr "type" "imov") (set_attr "mode" "SI") (set_attr "pent_pair" "np") - (set_attr "athlon_decode" "vector")]) + (set_attr "athlon_decode" "vector") + (set_attr "amdfam10_decode" "vector")]) +;; Not added amdfam10_decode since TARGET_PARTIAL_REG_STALL is disabled for AMDFAM10 (define_insn "*swapqi_2" [(set (match_operand:QI 0 "register_operand" "+q") (match_operand:QI 1 "register_operand" "+q")) @@ -2120,7 +2142,8 @@ [(set_attr "type" "imov") (set_attr "mode" "DI") (set_attr "pent_pair" "np") - (set_attr "athlon_decode" "vector")]) + (set_attr "athlon_decode" "vector") + (set_attr "amdfam10_decode" "double")]) (define_expand "movti" [(set (match_operand:TI 0 "nonimmediate_operand" "") @@ -4150,7 +4173,8 @@ "cvttss2si{q}\t{%1, %0|%0, %1}" [(set_attr "type" "sseicvt") (set_attr "mode" "SF") - (set_attr "athlon_decode" "double,vector")]) + (set_attr "athlon_decode" "double,vector") + (set_attr "amdfam10_decode" "double,double")]) (define_insn "fix_truncdfdi_sse" [(set (match_operand:DI 0 "register_operand" "=r,r") @@ -4159,7 +4183,8 @@ "cvttsd2si{q}\t{%1, %0|%0, %1}" [(set_attr "type" "sseicvt") (set_attr "mode" "DF") - (set_attr "athlon_decode" "double,vector")]) + (set_attr "athlon_decode" "double,vector") + (set_attr "amdfam10_decode" "double,double")]) (define_insn "fix_truncsfsi_sse" [(set (match_operand:SI 0 "register_operand" "=r,r") @@ -4168,7 +4193,8 @@ "cvttss2si\t{%1, %0|%0, %1}" [(set_attr "type" "sseicvt") (set_attr "mode" "DF") - (set_attr "athlon_decode" "double,vector")]) + (set_attr "athlon_decode" "double,vector") + (set_attr "amdfam10_decode" "double,double")]) (define_insn "fix_truncdfsi_sse" [(set (match_operand:SI 0 "register_operand" "=r,r") @@ -4177,7 +4203,8 @@ "cvttsd2si\t{%1, %0|%0, %1}" [(set_attr "type" "sseicvt") (set_attr "mode" "DF") - (set_attr "athlon_decode" "double,vector")]) + (set_attr "athlon_decode" "double,vector") + (set_attr "amdfam10_decode" "double,double")]) ;; Avoid vector decoded forms of the instruction. (define_peephole2 @@ -4423,7 +4450,7 @@ (define_insn "x86_fnstcw_1" [(set (match_operand:HI 0 "memory_operand" "=m") - (unspec:HI [(reg:HI FPSR_REG)] UNSPEC_FSTCW))] + (unspec:HI [(reg:HI FPCR_REG)] UNSPEC_FSTCW))] "TARGET_80387" "fnstcw\t%0" [(set_attr "length" "2") @@ -4431,14 +4458,15 @@ (set_attr "unit" "i387")]) (define_insn "x86_fldcw_1" - [(set (reg:HI FPSR_REG) + [(set (reg:HI FPCR_REG) (unspec:HI [(match_operand:HI 0 "memory_operand" "m")] UNSPEC_FLDCW))] "TARGET_80387" "fldcw\t%0" [(set_attr "length" "2") (set_attr "mode" "HI") (set_attr "unit" "i387") - (set_attr "athlon_decode" "vector")]) + (set_attr "athlon_decode" "vector") + (set_attr "amdfam10_decode" "vector")]) ;; Conversion between fixed point and floating point. @@ -4489,6 +4517,7 @@ (set_attr "mode" "SF") (set_attr "unit" "*,i387,*,*") (set_attr "athlon_decode" "*,*,vector,double") + (set_attr "amdfam10_decode" "*,*,vector,double") (set_attr "fp_int_src" "true")]) (define_insn "*floatsisf2_sse" @@ -4499,6 +4528,7 @@ [(set_attr "type" "sseicvt") (set_attr "mode" "SF") (set_attr "athlon_decode" "vector,double") + (set_attr "amdfam10_decode" "vector,double") (set_attr "fp_int_src" "true")]) (define_insn "*floatsisf2_i387" @@ -4532,6 +4562,7 @@ (set_attr "mode" "SF") (set_attr "unit" "*,i387,*,*") (set_attr "athlon_decode" "*,*,vector,double") + (set_attr "amdfam10_decode" "*,*,vector,double") (set_attr "fp_int_src" "true")]) (define_insn "*floatdisf2_sse" @@ -4542,6 +4573,7 @@ [(set_attr "type" "sseicvt") (set_attr "mode" "SF") (set_attr "athlon_decode" "vector,double") + (set_attr "amdfam10_decode" "vector,double") (set_attr "fp_int_src" "true")]) (define_insn "*floatdisf2_i387" @@ -4600,6 +4632,7 @@ (set_attr "mode" "DF") (set_attr "unit" "*,i387,*,*") (set_attr "athlon_decode" "*,*,double,direct") + (set_attr "amdfam10_decode" "*,*,vector,double") (set_attr "fp_int_src" "true")]) (define_insn "*floatsidf2_sse" @@ -4610,6 +4643,7 @@ [(set_attr "type" "sseicvt") (set_attr "mode" "DF") (set_attr "athlon_decode" "double,direct") + (set_attr "amdfam10_decode" "vector,double") (set_attr "fp_int_src" "true")]) (define_insn "*floatsidf2_i387" @@ -4643,6 +4677,7 @@ (set_attr "mode" "DF") (set_attr "unit" "*,i387,*,*") (set_attr "athlon_decode" "*,*,double,direct") + (set_attr "amdfam10_decode" "*,*,vector,double") (set_attr "fp_int_src" "true")]) (define_insn "*floatdidf2_sse" @@ -4653,6 +4688,7 @@ [(set_attr "type" "sseicvt") (set_attr "mode" "DF") (set_attr "athlon_decode" "double,direct") + (set_attr "amdfam10_decode" "vector,double") (set_attr "fp_int_src" "true")]) (define_insn "*floatdidf2_i387" @@ -6860,6 +6896,14 @@ "TARGET_64BIT" "") +;; On AMDFAM10 +;; IMUL reg64, reg64, imm8 Direct +;; IMUL reg64, mem64, imm8 VectorPath +;; IMUL reg64, reg64, imm32 Direct +;; IMUL reg64, mem64, imm32 VectorPath +;; IMUL reg64, reg64 Direct +;; IMUL reg64, mem64 Direct + (define_insn "*muldi3_1_rex64" [(set (match_operand:DI 0 "register_operand" "=r,r,r") (mult:DI (match_operand:DI 1 "nonimmediate_operand" "%rm,rm,0") @@ -6882,6 +6926,11 @@ (match_operand 1 "memory_operand" "")) (const_string "vector")] (const_string "direct"))) + (set (attr "amdfam10_decode") + (cond [(and (eq_attr "alternative" "0,1") + (match_operand 1 "memory_operand" "")) + (const_string "vector")] + (const_string "direct"))) (set_attr "mode" "DI")]) (define_expand "mulsi3" @@ -6892,6 +6941,14 @@ "" "") +;; On AMDFAM10 +;; IMUL reg32, reg32, imm8 Direct +;; IMUL reg32, mem32, imm8 VectorPath +;; IMUL reg32, reg32, imm32 Direct +;; IMUL reg32, mem32, imm32 VectorPath +;; IMUL reg32, reg32 Direct +;; IMUL reg32, mem32 Direct + (define_insn "*mulsi3_1" [(set (match_operand:SI 0 "register_operand" "=r,r,r") (mult:SI (match_operand:SI 1 "nonimmediate_operand" "%rm,rm,0") @@ -6913,6 +6970,11 @@ (match_operand 1 "memory_operand" "")) (const_string "vector")] (const_string "direct"))) + (set (attr "amdfam10_decode") + (cond [(and (eq_attr "alternative" "0,1") + (match_operand 1 "memory_operand" "")) + (const_string "vector")] + (const_string "direct"))) (set_attr "mode" "SI")]) (define_insn "*mulsi3_1_zext" @@ -6938,6 +7000,11 @@ (match_operand 1 "memory_operand" "")) (const_string "vector")] (const_string "direct"))) + (set (attr "amdfam10_decode") + (cond [(and (eq_attr "alternative" "0,1") + (match_operand 1 "memory_operand" "")) + (const_string "vector")] + (const_string "direct"))) (set_attr "mode" "SI")]) (define_expand "mulhi3" @@ -6948,6 +7015,13 @@ "TARGET_HIMODE_MATH" "") +;; On AMDFAM10 +;; IMUL reg16, reg16, imm8 VectorPath +;; IMUL reg16, mem16, imm8 VectorPath +;; IMUL reg16, reg16, imm16 VectorPath +;; IMUL reg16, mem16, imm16 VectorPath +;; IMUL reg16, reg16 Direct +;; IMUL reg16, mem16 Direct (define_insn "*mulhi3_1" [(set (match_operand:HI 0 "register_operand" "=r,r,r") (mult:HI (match_operand:HI 1 "nonimmediate_operand" "%rm,rm,0") @@ -6966,6 +7040,10 @@ (eq_attr "alternative" "1,2") (const_string "vector")] (const_string "direct"))) + (set (attr "amdfam10_decode") + (cond [(eq_attr "alternative" "0,1") + (const_string "vector")] + (const_string "direct"))) (set_attr "mode" "HI")]) (define_expand "mulqi3" @@ -6976,6 +7054,10 @@ "TARGET_QIMODE_MATH" "") +;;On AMDFAM10 +;; MUL reg8 Direct +;; MUL mem8 Direct + (define_insn "*mulqi3_1" [(set (match_operand:QI 0 "register_operand" "=a") (mult:QI (match_operand:QI 1 "nonimmediate_operand" "%0") @@ -6990,6 +7072,7 @@ (if_then_else (eq_attr "cpu" "athlon") (const_string "vector") (const_string "direct"))) + (set_attr "amdfam10_decode" "direct") (set_attr "mode" "QI")]) (define_expand "umulqihi3" @@ -7016,6 +7099,7 @@ (if_then_else (eq_attr "cpu" "athlon") (const_string "vector") (const_string "direct"))) + (set_attr "amdfam10_decode" "direct") (set_attr "mode" "QI")]) (define_expand "mulqihi3" @@ -7040,6 +7124,7 @@ (if_then_else (eq_attr "cpu" "athlon") (const_string "vector") (const_string "direct"))) + (set_attr "amdfam10_decode" "direct") (set_attr "mode" "QI")]) (define_expand "umulditi3" @@ -7066,6 +7151,7 @@ (if_then_else (eq_attr "cpu" "athlon") (const_string "vector") (const_string "double"))) + (set_attr "amdfam10_decode" "double") (set_attr "mode" "DI")]) ;; We can't use this pattern in 64bit mode, since it results in two separate 32bit registers @@ -7093,6 +7179,7 @@ (if_then_else (eq_attr "cpu" "athlon") (const_string "vector") (const_string "double"))) + (set_attr "amdfam10_decode" "double") (set_attr "mode" "SI")]) (define_expand "mulditi3" @@ -7119,6 +7206,7 @@ (if_then_else (eq_attr "cpu" "athlon") (const_string "vector") (const_string "double"))) + (set_attr "amdfam10_decode" "double") (set_attr "mode" "DI")]) (define_expand "mulsidi3" @@ -7145,6 +7233,7 @@ (if_then_else (eq_attr "cpu" "athlon") (const_string "vector") (const_string "double"))) + (set_attr "amdfam10_decode" "double") (set_attr "mode" "SI")]) (define_expand "umuldi3_highpart" @@ -7181,6 +7270,7 @@ (if_then_else (eq_attr "cpu" "athlon") (const_string "vector") (const_string "double"))) + (set_attr "amdfam10_decode" "double") (set_attr "mode" "DI")]) (define_expand "umulsi3_highpart" @@ -7216,6 +7306,7 @@ (if_then_else (eq_attr "cpu" "athlon") (const_string "vector") (const_string "double"))) + (set_attr "amdfam10_decode" "double") (set_attr "mode" "SI")]) (define_insn "*umulsi3_highpart_zext" @@ -7238,6 +7329,7 @@ (if_then_else (eq_attr "cpu" "athlon") (const_string "vector") (const_string "double"))) + (set_attr "amdfam10_decode" "double") (set_attr "mode" "SI")]) (define_expand "smuldi3_highpart" @@ -7273,6 +7365,7 @@ (if_then_else (eq_attr "cpu" "athlon") (const_string "vector") (const_string "double"))) + (set_attr "amdfam10_decode" "double") (set_attr "mode" "DI")]) (define_expand "smulsi3_highpart" @@ -7307,6 +7400,7 @@ (if_then_else (eq_attr "cpu" "athlon") (const_string "vector") (const_string "double"))) + (set_attr "amdfam10_decode" "double") (set_attr "mode" "SI")]) (define_insn "*smulsi3_highpart_zext" @@ -7328,6 +7422,7 @@ (if_then_else (eq_attr "cpu" "athlon") (const_string "vector") (const_string "double"))) + (set_attr "amdfam10_decode" "double") (set_attr "mode" "SI")]) ;; The patterns that match these are at the end of this file. @@ -10309,7 +10404,8 @@ [(set_attr "type" "ishift") (set_attr "prefix_0f" "1") (set_attr "mode" "DI") - (set_attr "athlon_decode" "vector")]) + (set_attr "athlon_decode" "vector") + (set_attr "amdfam10_decode" "vector")]) (define_expand "x86_64_shift_adj" [(set (reg:CCZ FLAGS_REG) @@ -10524,7 +10620,8 @@ (set_attr "prefix_0f" "1") (set_attr "mode" "SI") (set_attr "pent_pair" "np") - (set_attr "athlon_decode" "vector")]) + (set_attr "athlon_decode" "vector") + (set_attr "amdfam10_decode" "vector")]) (define_expand "x86_shift_adj_1" [(set (reg:CCZ FLAGS_REG) @@ -11284,7 +11381,8 @@ [(set_attr "type" "ishift") (set_attr "prefix_0f" "1") (set_attr "mode" "DI") - (set_attr "athlon_decode" "vector")]) + (set_attr "athlon_decode" "vector") + (set_attr "amdfam10_decode" "vector")]) (define_expand "ashrdi3" [(set (match_operand:DI 0 "shiftdi_operand" "") @@ -14156,7 +14254,7 @@ [(set_attr "type" "call")]) (define_insn "*sibcall_1_rex64_v" - [(call (mem:QI (reg:DI 40)) + [(call (mem:QI (reg:DI R11_REG)) (match_operand 0 "" ""))] "SIBLING_CALL_P (insn) && TARGET_64BIT" "jmp\t*%%r11" @@ -14558,7 +14656,23 @@ [(set (match_dup 0) (xor:SI (match_dup 0) (const_int 31))) (clobber (reg:CC FLAGS_REG))])] "" - "") +{ + if (TARGET_ABM) + { + emit_insn (gen_clzsi2_abm (operands[0], operands[1])); + DONE; + } +}) + +(define_insn "clzsi2_abm" + [(set (match_operand:SI 0 "register_operand" "=r") + (clz:SI (match_operand:SI 1 "nonimmediate_operand" ""))) + (clobber (reg:CC FLAGS_REG))] + "TARGET_ABM" + "lzcnt{l}\t{%1, %0|%0, %1}" + [(set_attr "prefix_rep" "1") + (set_attr "type" "bitmanip") + (set_attr "mode" "SI")]) (define_insn "*bsr" [(set (match_operand:SI 0 "register_operand" "=r") @@ -14567,7 +14681,44 @@ (clobber (reg:CC FLAGS_REG))] "" "bsr{l}\t{%1, %0|%0, %1}" - [(set_attr "prefix_0f" "1")]) + [(set_attr "prefix_0f" "1") + (set_attr "mode" "SI")]) + +(define_insn "popcountsi2" + [(set (match_operand:SI 0 "register_operand" "=r") + (popcount:SI (match_operand:SI 1 "nonimmediate_operand" ""))) + (clobber (reg:CC FLAGS_REG))] + "TARGET_POPCNT" + "popcnt{l}\t{%1, %0|%0, %1}" + [(set_attr "prefix_rep" "1") + (set_attr "type" "bitmanip") + (set_attr "mode" "SI")]) + +(define_insn "*popcountsi2_cmp" + [(set (reg FLAGS_REG) + (compare + (popcount:SI (match_operand:SI 1 "nonimmediate_operand" "rm")) + (const_int 0))) + (set (match_operand:SI 0 "register_operand" "=r") + (popcount:SI (match_dup 1)))] + "TARGET_POPCNT && ix86_match_ccmode (insn, CCZmode)" + "popcnt{l}\t{%1, %0|%0, %1}" + [(set_attr "prefix_rep" "1") + (set_attr "type" "bitmanip") + (set_attr "mode" "SI")]) + +(define_insn "*popcountsi2_cmp_zext" + [(set (reg FLAGS_REG) + (compare + (popcount:SI (match_operand:SI 1 "nonimmediate_operand" "rm")) + (const_int 0))) + (set (match_operand:DI 0 "register_operand" "=r") + (zero_extend:DI(popcount:SI (match_dup 1))))] + "TARGET_64BIT && TARGET_POPCNT && ix86_match_ccmode (insn, CCZmode)" + "popcnt{l}\t{%1, %0|%0, %1}" + [(set_attr "prefix_rep" "1") + (set_attr "type" "bitmanip") + (set_attr "mode" "SI")]) (define_expand "clzdi2" [(parallel @@ -14579,7 +14730,23 @@ [(set (match_dup 0) (xor:DI (match_dup 0) (const_int 63))) (clobber (reg:CC FLAGS_REG))])] "TARGET_64BIT" - "") +{ + if (TARGET_ABM) + { + emit_insn (gen_clzdi2_abm (operands[0], operands[1])); + DONE; + } +}) + +(define_insn "clzdi2_abm" + [(set (match_operand:DI 0 "register_operand" "=r") + (clz:DI (match_operand:DI 1 "nonimmediate_operand" ""))) + (clobber (reg:CC FLAGS_REG))] + "TARGET_64BIT && TARGET_ABM" + "lzcnt{q}\t{%1, %0|%0, %1}" + [(set_attr "prefix_rep" "1") + (set_attr "type" "bitmanip") + (set_attr "mode" "DI")]) (define_insn "*bsr_rex64" [(set (match_operand:DI 0 "register_operand" "=r") @@ -14588,7 +14755,92 @@ (clobber (reg:CC FLAGS_REG))] "TARGET_64BIT" "bsr{q}\t{%1, %0|%0, %1}" - [(set_attr "prefix_0f" "1")]) + [(set_attr "prefix_0f" "1") + (set_attr "mode" "DI")]) + +(define_insn "popcountdi2" + [(set (match_operand:DI 0 "register_operand" "=r") + (popcount:DI (match_operand:DI 1 "nonimmediate_operand" ""))) + (clobber (reg:CC FLAGS_REG))] + "TARGET_64BIT && TARGET_POPCNT" + "popcnt{q}\t{%1, %0|%0, %1}" + [(set_attr "prefix_rep" "1") + (set_attr "type" "bitmanip") + (set_attr "mode" "DI")]) + +(define_insn "*popcountdi2_cmp" + [(set (reg FLAGS_REG) + (compare + (popcount:DI (match_operand:DI 1 "nonimmediate_operand" "rm")) + (const_int 0))) + (set (match_operand:DI 0 "register_operand" "=r") + (popcount:DI (match_dup 1)))] + "TARGET_64BIT && TARGET_POPCNT && ix86_match_ccmode (insn, CCZmode)" + "popcnt{q}\t{%1, %0|%0, %1}" + [(set_attr "prefix_rep" "1") + (set_attr "type" "bitmanip") + (set_attr "mode" "DI")]) + +(define_expand "clzhi2" + [(parallel + [(set (match_operand:HI 0 "register_operand" "") + (minus:HI (const_int 15) + (clz:HI (match_operand:HI 1 "nonimmediate_operand" "")))) + (clobber (reg:CC FLAGS_REG))]) + (parallel + [(set (match_dup 0) (xor:HI (match_dup 0) (const_int 15))) + (clobber (reg:CC FLAGS_REG))])] + "" +{ + if (TARGET_ABM) + { + emit_insn (gen_clzhi2_abm (operands[0], operands[1])); + DONE; + } +}) + +(define_insn "clzhi2_abm" + [(set (match_operand:HI 0 "register_operand" "=r") + (clz:HI (match_operand:HI 1 "nonimmediate_operand" ""))) + (clobber (reg:CC FLAGS_REG))] + "TARGET_ABM" + "lzcnt{w}\t{%1, %0|%0, %1}" + [(set_attr "prefix_rep" "1") + (set_attr "type" "bitmanip") + (set_attr "mode" "HI")]) + +(define_insn "*bsrhi" + [(set (match_operand:HI 0 "register_operand" "=r") + (minus:HI (const_int 15) + (clz:HI (match_operand:HI 1 "nonimmediate_operand" "rm")))) + (clobber (reg:CC FLAGS_REG))] + "" + "bsr{w}\t{%1, %0|%0, %1}" + [(set_attr "prefix_0f" "1") + (set_attr "mode" "HI")]) + +(define_insn "popcounthi2" + [(set (match_operand:HI 0 "register_operand" "=r") + (popcount:HI (match_operand:HI 1 "nonimmediate_operand" ""))) + (clobber (reg:CC FLAGS_REG))] + "TARGET_POPCNT" + "popcnt{w}\t{%1, %0|%0, %1}" + [(set_attr "prefix_rep" "1") + (set_attr "type" "bitmanip") + (set_attr "mode" "HI")]) + +(define_insn "*popcounthi2_cmp" + [(set (reg FLAGS_REG) + (compare + (popcount:HI (match_operand:HI 1 "nonimmediate_operand" "rm")) + (const_int 0))) + (set (match_operand:HI 0 "register_operand" "=r") + (popcount:HI (match_dup 1)))] + "TARGET_POPCNT && ix86_match_ccmode (insn, CCZmode)" + "popcnt{w}\t{%1, %0|%0, %1}" + [(set_attr "prefix_rep" "1") + (set_attr "type" "bitmanip") + (set_attr "mode" "HI")]) ;; Thread-local storage patterns for ELF. ;; @@ -15503,7 +15755,8 @@ "sqrtss\t{%1, %0|%0, %1}" [(set_attr "type" "sse") (set_attr "mode" "SF") - (set_attr "athlon_decode" "*")]) + (set_attr "athlon_decode" "*") + (set_attr "amdfam10_decode" "*")]) (define_insn "*sqrtsf2_i387" [(set (match_operand:SF 0 "register_operand" "=f") @@ -15541,7 +15794,8 @@ "sqrtsd\t{%1, %0|%0, %1}" [(set_attr "type" "sse") (set_attr "mode" "DF") - (set_attr "athlon_decode" "*")]) + (set_attr "athlon_decode" "*") + (set_attr "amdfam10_decode" "*")]) (define_insn "*sqrtdf2_i387" [(set (match_operand:DF 0 "register_operand" "=f") @@ -15570,7 +15824,8 @@ "fsqrt" [(set_attr "type" "fpspc") (set_attr "mode" "XF") - (set_attr "athlon_decode" "direct")]) + (set_attr "athlon_decode" "direct") + (set_attr "amdfam10_decode" "direct")]) (define_insn "*sqrtextendsfxf2_i387" [(set (match_operand:XF 0 "register_operand" "=f") @@ -15590,7 +15845,8 @@ "fsqrt" [(set_attr "type" "fpspc") (set_attr "mode" "XF") - (set_attr "athlon_decode" "direct")]) + (set_attr "athlon_decode" "direct") + (set_attr "amdfam10_decode" "direct")]) (define_insn "fpremxf4" [(set (match_operand:XF 0 "register_operand" "=f") @@ -20391,7 +20647,7 @@ (mult:DI (match_operand:DI 1 "memory_operand" "") (match_operand:DI 2 "immediate_operand" ""))) (clobber (reg:CC FLAGS_REG))])] - "(TARGET_K8 || TARGET_GENERIC64) && !optimize_size + "(TARGET_K8 || TARGET_GENERIC64 || TARGET_AMDFAM10) && !optimize_size && !satisfies_constraint_K (operands[2])" [(set (match_dup 3) (match_dup 1)) (parallel [(set (match_dup 0) (mult:DI (match_dup 3) (match_dup 2))) @@ -20404,7 +20660,7 @@ (mult:SI (match_operand:SI 1 "memory_operand" "") (match_operand:SI 2 "immediate_operand" ""))) (clobber (reg:CC FLAGS_REG))])] - "(TARGET_K8 || TARGET_GENERIC64) && !optimize_size + "(TARGET_K8 || TARGET_GENERIC64 || TARGET_AMDFAM10) && !optimize_size && !satisfies_constraint_K (operands[2])" [(set (match_dup 3) (match_dup 1)) (parallel [(set (match_dup 0) (mult:SI (match_dup 3) (match_dup 2))) @@ -20418,7 +20674,7 @@ (mult:SI (match_operand:SI 1 "memory_operand" "") (match_operand:SI 2 "immediate_operand" "")))) (clobber (reg:CC FLAGS_REG))])] - "(TARGET_K8 || TARGET_GENERIC64) && !optimize_size + "(TARGET_K8 || TARGET_GENERIC64 || TARGET_AMDFAM10) && !optimize_size && !satisfies_constraint_K (operands[2])" [(set (match_dup 3) (match_dup 1)) (parallel [(set (match_dup 0) (zero_extend:DI (mult:SI (match_dup 3) (match_dup 2)))) @@ -20435,7 +20691,7 @@ (match_operand:DI 2 "const_int_operand" ""))) (clobber (reg:CC FLAGS_REG))]) (match_scratch:DI 3 "r")] - "(TARGET_K8 || TARGET_GENERIC64) && !optimize_size + "(TARGET_K8 || TARGET_GENERIC64 || TARGET_AMDFAM10) && !optimize_size && satisfies_constraint_K (operands[2])" [(set (match_dup 3) (match_dup 2)) (parallel [(set (match_dup 0) (mult:DI (match_dup 0) (match_dup 3))) @@ -20451,7 +20707,7 @@ (match_operand:SI 2 "const_int_operand" ""))) (clobber (reg:CC FLAGS_REG))]) (match_scratch:SI 3 "r")] - "(TARGET_K8 || TARGET_GENERIC64) && !optimize_size + "(TARGET_K8 || TARGET_GENERIC64 || TARGET_AMDFAM10) && !optimize_size && satisfies_constraint_K (operands[2])" [(set (match_dup 3) (match_dup 2)) (parallel [(set (match_dup 0) (mult:SI (match_dup 0) (match_dup 3))) @@ -20467,7 +20723,7 @@ (match_operand:HI 2 "immediate_operand" ""))) (clobber (reg:CC FLAGS_REG))]) (match_scratch:HI 3 "r")] - "(TARGET_K8 || TARGET_GENERIC64) && !optimize_size" + "(TARGET_K8 || TARGET_GENERIC64 || TARGET_AMDFAM10) && !optimize_size" [(set (match_dup 3) (match_dup 2)) (parallel [(set (match_dup 0) (mult:HI (match_dup 0) (match_dup 3))) (clobber (reg:CC FLAGS_REG))])] @@ -20646,7 +20902,7 @@ (define_insn "*sibcall_value_1_rex64_v" [(set (match_operand 0 "" "") - (call (mem:QI (reg:DI 40)) + (call (mem:QI (reg:DI R11_REG)) (match_operand:DI 1 "" "")))] "SIBLING_CALL_P (insn) && TARGET_64BIT" "jmp\t*%%r11" @@ -20665,14 +20921,14 @@ (define_expand "sse_prologue_save" [(parallel [(set (match_operand:BLK 0 "" "") - (unspec:BLK [(reg:DI 21) - (reg:DI 22) + (unspec:BLK [(reg:DI 22) (reg:DI 23) (reg:DI 24) (reg:DI 25) (reg:DI 26) (reg:DI 27) - (reg:DI 28)] UNSPEC_SSE_PROLOGUE_SAVE)) + (reg:DI 28) + (reg:DI 29)] UNSPEC_SSE_PROLOGUE_SAVE)) (use (match_operand:DI 1 "register_operand" "")) (use (match_operand:DI 2 "immediate_operand" "")) (use (label_ref:DI (match_operand 3 "" "")))])] @@ -20682,14 +20938,14 @@ (define_insn "*sse_prologue_save_insn" [(set (mem:BLK (plus:DI (match_operand:DI 0 "register_operand" "R") (match_operand:DI 4 "const_int_operand" "n"))) - (unspec:BLK [(reg:DI 21) - (reg:DI 22) + (unspec:BLK [(reg:DI 22) (reg:DI 23) (reg:DI 24) (reg:DI 25) (reg:DI 26) (reg:DI 27) - (reg:DI 28)] UNSPEC_SSE_PROLOGUE_SAVE)) + (reg:DI 28) + (reg:DI 29)] UNSPEC_SSE_PROLOGUE_SAVE)) (use (match_operand:DI 1 "register_operand" "r")) (use (match_operand:DI 2 "const_int_operand" "i")) (use (label_ref:DI (match_operand 3 "" "X")))] diff --git a/contrib/gcc/config/i386/i386.opt b/contrib/gcc/config/i386/i386.opt index aa249205e248..fa73e177e7b2 100644 --- a/contrib/gcc/config/i386/i386.opt +++ b/contrib/gcc/config/i386/i386.opt @@ -1,6 +1,6 @@ ; Options for the IA-32 and AMD64 ports of the compiler. -; Copyright (C) 2005 Free Software Foundation, Inc. +; Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc. ; ; This file is part of GCC. ; @@ -201,6 +201,22 @@ mssse3 Target Report Mask(SSSE3) Support MMX, SSE, SSE2, SSE3 and SSSE3 built-in functions and code generation +msse4a +Target Report Mask(SSE4A) +Support MMX, SSE, SSE2, SSE3 and SSE4A built-in functions and code generation + +mpopcnt +Target Report Mask(POPCNT) +Support code generation of popcount instruction for popcount built-ins +namely __builtin_popcount, __builtin_popcountl and __builtin_popcountll + +mabm +Target Report Mask(ABM) +Support code generation of Advanced Bit Manipulation (ABM) instructions, +which include popcnt and lzcnt instructions, for popcount and clz built-ins +namely __builtin_popcount, __builtin_popcountl, __builtin_popcountll and +__builtin_clz, __builtin_clzl, __builtin_clzll + msseregparm Target RejectNegative Mask(SSEREGPARM) Use SSE register passing conventions for SF and DF mode diff --git a/contrib/gcc/config/i386/mmx.md b/contrib/gcc/config/i386/mmx.md index 4f0ab2ca3ee1..6fc9da4acc5d 100644 --- a/contrib/gcc/config/i386/mmx.md +++ b/contrib/gcc/config/i386/mmx.md @@ -1396,14 +1396,14 @@ (clobber (reg:XF 13)) (clobber (reg:XF 14)) (clobber (reg:XF 15)) - (clobber (reg:DI 29)) (clobber (reg:DI 30)) (clobber (reg:DI 31)) (clobber (reg:DI 32)) (clobber (reg:DI 33)) (clobber (reg:DI 34)) (clobber (reg:DI 35)) - (clobber (reg:DI 36))] + (clobber (reg:DI 36)) + (clobber (reg:DI 37))] "TARGET_MMX" "emms" [(set_attr "type" "mmx") @@ -1419,14 +1419,14 @@ (clobber (reg:XF 13)) (clobber (reg:XF 14)) (clobber (reg:XF 15)) - (clobber (reg:DI 29)) (clobber (reg:DI 30)) (clobber (reg:DI 31)) (clobber (reg:DI 32)) (clobber (reg:DI 33)) (clobber (reg:DI 34)) (clobber (reg:DI 35)) - (clobber (reg:DI 36))] + (clobber (reg:DI 36)) + (clobber (reg:DI 37))] "TARGET_3DNOW" "femms" [(set_attr "type" "mmx") diff --git a/contrib/gcc/config/i386/pmmintrin.h b/contrib/gcc/config/i386/pmmintrin.h index 7dbf03043fbc..39d7c170a733 100644 --- a/contrib/gcc/config/i386/pmmintrin.h +++ b/contrib/gcc/config/i386/pmmintrin.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +/* Copyright (C) 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. This file is part of GCC. @@ -30,7 +30,11 @@ #ifndef _PMMINTRIN_H_INCLUDED #define _PMMINTRIN_H_INCLUDED -#ifdef __SSE3__ +#ifndef __SSE3__ +# error "SSE3 instruction set not enabled" +#else + +/* We need definitions from the SSE2 and SSE header files*/ #include #include diff --git a/contrib/gcc/config/i386/sse.md b/contrib/gcc/config/i386/sse.md index 4e25280ce67e..6ff9f0826473 100644 --- a/contrib/gcc/config/i386/sse.md +++ b/contrib/gcc/config/i386/sse.md @@ -1,5 +1,5 @@ ;; GCC machine description for SSE instructions -;; Copyright (C) 2005, 2006 +;; Copyright (C) 2005, 2006, 2007 ;; Free Software Foundation, Inc. ;; ;; This file is part of GCC. @@ -261,7 +261,7 @@ (define_insn "sse3_lddqu" [(set (match_operand:V16QI 0 "register_operand" "=x") (unspec:V16QI [(match_operand:V16QI 1 "memory_operand" "m")] - UNSPEC_LDQQU))] + UNSPEC_LDDQU))] "TARGET_SSE3" "lddqu\t{%1, %0|%0, %1}" [(set_attr "type" "ssecvt") @@ -920,6 +920,7 @@ "cvtsi2ss\t{%2, %0|%0, %2}" [(set_attr "type" "sseicvt") (set_attr "athlon_decode" "vector,double") + (set_attr "amdfam10_decode" "vector,double") (set_attr "mode" "SF")]) (define_insn "sse_cvtsi2ssq" @@ -933,6 +934,7 @@ "cvtsi2ssq\t{%2, %0|%0, %2}" [(set_attr "type" "sseicvt") (set_attr "athlon_decode" "vector,double") + (set_attr "amdfam10_decode" "vector,double") (set_attr "mode" "SF")]) (define_insn "sse_cvtss2si" @@ -946,6 +948,7 @@ "cvtss2si\t{%1, %0|%0, %1}" [(set_attr "type" "sseicvt") (set_attr "athlon_decode" "double,vector") + (set_attr "amdfam10_decode" "double,double") (set_attr "mode" "SI")]) (define_insn "sse_cvtss2siq" @@ -959,6 +962,7 @@ "cvtss2siq\t{%1, %0|%0, %1}" [(set_attr "type" "sseicvt") (set_attr "athlon_decode" "double,vector") + (set_attr "amdfam10_decode" "double,double") (set_attr "mode" "DI")]) (define_insn "sse_cvttss2si" @@ -971,6 +975,7 @@ "cvttss2si\t{%1, %0|%0, %1}" [(set_attr "type" "sseicvt") (set_attr "athlon_decode" "double,vector") + (set_attr "amdfam10_decode" "double,double") (set_attr "mode" "SI")]) (define_insn "sse_cvttss2siq" @@ -983,6 +988,7 @@ "cvttss2siq\t{%1, %0|%0, %1}" [(set_attr "type" "sseicvt") (set_attr "athlon_decode" "double,vector") + (set_attr "amdfam10_decode" "double,double") (set_attr "mode" "DI")]) (define_insn "sse2_cvtdq2ps" @@ -1852,7 +1858,8 @@ "cvtsi2sd\t{%2, %0|%0, %2}" [(set_attr "type" "sseicvt") (set_attr "mode" "DF") - (set_attr "athlon_decode" "double,direct")]) + (set_attr "athlon_decode" "double,direct") + (set_attr "amdfam10_decode" "vector,double")]) (define_insn "sse2_cvtsi2sdq" [(set (match_operand:V2DF 0 "register_operand" "=x,x") @@ -1865,7 +1872,8 @@ "cvtsi2sdq\t{%2, %0|%0, %2}" [(set_attr "type" "sseicvt") (set_attr "mode" "DF") - (set_attr "athlon_decode" "double,direct")]) + (set_attr "athlon_decode" "double,direct") + (set_attr "amdfam10_decode" "vector,double")]) (define_insn "sse2_cvtsd2si" [(set (match_operand:SI 0 "register_operand" "=r,r") @@ -1878,6 +1886,7 @@ "cvtsd2si\t{%1, %0|%0, %1}" [(set_attr "type" "sseicvt") (set_attr "athlon_decode" "double,vector") + (set_attr "amdfam10_decode" "double,double") (set_attr "mode" "SI")]) (define_insn "sse2_cvtsd2siq" @@ -1891,6 +1900,7 @@ "cvtsd2siq\t{%1, %0|%0, %1}" [(set_attr "type" "sseicvt") (set_attr "athlon_decode" "double,vector") + (set_attr "amdfam10_decode" "double,double") (set_attr "mode" "DI")]) (define_insn "sse2_cvttsd2si" @@ -1903,7 +1913,8 @@ "cvttsd2si\t{%1, %0|%0, %1}" [(set_attr "type" "sseicvt") (set_attr "mode" "SI") - (set_attr "athlon_decode" "double,vector")]) + (set_attr "athlon_decode" "double,vector") + (set_attr "amdfam10_decode" "double,double")]) (define_insn "sse2_cvttsd2siq" [(set (match_operand:DI 0 "register_operand" "=r,r") @@ -1915,7 +1926,8 @@ "cvttsd2siq\t{%1, %0|%0, %1}" [(set_attr "type" "sseicvt") (set_attr "mode" "DI") - (set_attr "athlon_decode" "double,vector")]) + (set_attr "athlon_decode" "double,vector") + (set_attr "amdfam10_decode" "double,double")]) (define_insn "sse2_cvtdq2pd" [(set (match_operand:V2DF 0 "register_operand" "=x") @@ -1946,7 +1958,8 @@ "TARGET_SSE2" "cvtpd2dq\t{%1, %0|%0, %1}" [(set_attr "type" "ssecvt") - (set_attr "mode" "TI")]) + (set_attr "mode" "TI") + (set_attr "amdfam10_decode" "double")]) (define_expand "sse2_cvttpd2dq" [(set (match_operand:V4SI 0 "register_operand" "") @@ -1964,7 +1977,8 @@ "TARGET_SSE2" "cvttpd2dq\t{%1, %0|%0, %1}" [(set_attr "type" "ssecvt") - (set_attr "mode" "TI")]) + (set_attr "mode" "TI") + (set_attr "amdfam10_decode" "double")]) (define_insn "sse2_cvtsd2ss" [(set (match_operand:V4SF 0 "register_operand" "=x,x") @@ -1978,20 +1992,22 @@ "cvtsd2ss\t{%2, %0|%0, %2}" [(set_attr "type" "ssecvt") (set_attr "athlon_decode" "vector,double") + (set_attr "amdfam10_decode" "vector,double") (set_attr "mode" "SF")]) (define_insn "sse2_cvtss2sd" - [(set (match_operand:V2DF 0 "register_operand" "=x") + [(set (match_operand:V2DF 0 "register_operand" "=x,x") (vec_merge:V2DF (float_extend:V2DF (vec_select:V2SF - (match_operand:V4SF 2 "nonimmediate_operand" "xm") + (match_operand:V4SF 2 "nonimmediate_operand" "x,m") (parallel [(const_int 0) (const_int 1)]))) - (match_operand:V2DF 1 "register_operand" "0") + (match_operand:V2DF 1 "register_operand" "0,0") (const_int 1)))] "TARGET_SSE2" "cvtss2sd\t{%2, %0|%0, %2}" [(set_attr "type" "ssecvt") + (set_attr "amdfam10_decode" "vector,double") (set_attr "mode" "DF")]) (define_expand "sse2_cvtpd2ps" @@ -2012,7 +2028,8 @@ "TARGET_SSE2" "cvtpd2ps\t{%1, %0|%0, %1}" [(set_attr "type" "ssecvt") - (set_attr "mode" "V4SF")]) + (set_attr "mode" "V4SF") + (set_attr "amdfam10_decode" "double")]) (define_insn "sse2_cvtps2pd" [(set (match_operand:V2DF 0 "register_operand" "=x") @@ -2023,7 +2040,8 @@ "TARGET_SSE2" "cvtps2pd\t{%1, %0|%0, %1}" [(set_attr "type" "ssecvt") - (set_attr "mode" "V2DF")]) + (set_attr "mode" "V2DF") + (set_attr "amdfam10_decode" "direct")]) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; @@ -4524,3 +4542,92 @@ "pabs\t{%1, %0|%0, %1}"; [(set_attr "type" "sselog1") (set_attr "mode" "DI")]) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; +;; AMD SSE4A instructions +;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +(define_insn "sse4a_vmmovntv2df" + [(set (match_operand:DF 0 "memory_operand" "=m") + (unspec:DF [(vec_select:DF + (match_operand:V2DF 1 "register_operand" "x") + (parallel [(const_int 0)]))] + UNSPEC_MOVNT))] + "TARGET_SSE4A" + "movntsd\t{%1, %0|%0, %1}" + [(set_attr "type" "ssemov") + (set_attr "mode" "DF")]) + +(define_insn "sse4a_movntdf" + [(set (match_operand:DF 0 "memory_operand" "=m") + (unspec:DF [(match_operand:DF 1 "register_operand" "x")] + UNSPEC_MOVNT))] + "TARGET_SSE4A" + "movntsd\t{%1, %0|%0, %1}" + [(set_attr "type" "ssemov") + (set_attr "mode" "DF")]) + +(define_insn "sse4a_vmmovntv4sf" + [(set (match_operand:SF 0 "memory_operand" "=m") + (unspec:SF [(vec_select:SF + (match_operand:V4SF 1 "register_operand" "x") + (parallel [(const_int 0)]))] + UNSPEC_MOVNT))] + "TARGET_SSE4A" + "movntss\t{%1, %0|%0, %1}" + [(set_attr "type" "ssemov") + (set_attr "mode" "SF")]) + +(define_insn "sse4a_movntsf" + [(set (match_operand:SF 0 "memory_operand" "=m") + (unspec:SF [(match_operand:SF 1 "register_operand" "x")] + UNSPEC_MOVNT))] + "TARGET_SSE4A" + "movntss\t{%1, %0|%0, %1}" + [(set_attr "type" "ssemov") + (set_attr "mode" "SF")]) + +(define_insn "sse4a_extrqi" + [(set (match_operand:V2DI 0 "register_operand" "=x") + (unspec:V2DI [(match_operand:V2DI 1 "register_operand" "0") + (match_operand 2 "const_int_operand" "") + (match_operand 3 "const_int_operand" "")] + UNSPEC_EXTRQI))] + "TARGET_SSE4A" + "extrq\t{%3, %2, %0|%0, %2, %3}" + [(set_attr "type" "sse") + (set_attr "mode" "TI")]) + +(define_insn "sse4a_extrq" + [(set (match_operand:V2DI 0 "register_operand" "=x") + (unspec:V2DI [(match_operand:V2DI 1 "register_operand" "0") + (match_operand:V16QI 2 "register_operand" "x")] + UNSPEC_EXTRQ))] + "TARGET_SSE4A" + "extrq\t{%2, %0|%0, %2}" + [(set_attr "type" "sse") + (set_attr "mode" "TI")]) + +(define_insn "sse4a_insertqi" + [(set (match_operand:V2DI 0 "register_operand" "=x") + (unspec:V2DI [(match_operand:V2DI 1 "register_operand" "0") + (match_operand:V2DI 2 "register_operand" "x") + (match_operand 3 "const_int_operand" "") + (match_operand 4 "const_int_operand" "")] + UNSPEC_INSERTQI))] + "TARGET_SSE4A" + "insertq\t{%4, %3, %2, %0|%0, %2, %3, %4}" + [(set_attr "type" "sseins") + (set_attr "mode" "TI")]) + +(define_insn "sse4a_insertq" + [(set (match_operand:V2DI 0 "register_operand" "=x") + (unspec:V2DI [(match_operand:V2DI 1 "register_operand" "0") + (match_operand:V2DI 2 "register_operand" "x")] + UNSPEC_INSERTQ))] + "TARGET_SSE4A" + "insertq\t{%2, %0|%0, %2}" + [(set_attr "type" "sseins") + (set_attr "mode" "TI")]) diff --git a/contrib/gcc/config/i386/tmmintrin.h b/contrib/gcc/config/i386/tmmintrin.h index e1bedc561354..cf9d99d0901b 100644 --- a/contrib/gcc/config/i386/tmmintrin.h +++ b/contrib/gcc/config/i386/tmmintrin.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2006 Free Software Foundation, Inc. +/* Copyright (C) 2006, 2007 Free Software Foundation, Inc. This file is part of GCC. @@ -30,231 +30,11 @@ #ifndef _TMMINTRIN_H_INCLUDED #define _TMMINTRIN_H_INCLUDED -#ifdef __SSSE3__ -#include - -static __inline __m128i __attribute__((__always_inline__)) -_mm_hadd_epi16 (__m128i __X, __m128i __Y) -{ - return (__m128i) __builtin_ia32_phaddw128 ((__v8hi)__X, (__v8hi)__Y); -} - -static __inline __m128i __attribute__((__always_inline__)) -_mm_hadd_epi32 (__m128i __X, __m128i __Y) -{ - return (__m128i) __builtin_ia32_phaddd128 ((__v4si)__X, (__v4si)__Y); -} - -static __inline __m128i __attribute__((__always_inline__)) -_mm_hadds_epi16 (__m128i __X, __m128i __Y) -{ - return (__m128i) __builtin_ia32_phaddsw128 ((__v8hi)__X, (__v8hi)__Y); -} - -static __inline __m64 __attribute__((__always_inline__)) -_mm_hadd_pi16 (__m64 __X, __m64 __Y) -{ - return (__m64) __builtin_ia32_phaddw ((__v4hi)__X, (__v4hi)__Y); -} - -static __inline __m64 __attribute__((__always_inline__)) -_mm_hadd_pi32 (__m64 __X, __m64 __Y) -{ - return (__m64) __builtin_ia32_phaddd ((__v2si)__X, (__v2si)__Y); -} - -static __inline __m64 __attribute__((__always_inline__)) -_mm_hadds_pi16 (__m64 __X, __m64 __Y) -{ - return (__m64) __builtin_ia32_phaddsw ((__v4hi)__X, (__v4hi)__Y); -} - -static __inline __m128i __attribute__((__always_inline__)) -_mm_hsub_epi16 (__m128i __X, __m128i __Y) -{ - return (__m128i) __builtin_ia32_phsubw128 ((__v8hi)__X, (__v8hi)__Y); -} - -static __inline __m128i __attribute__((__always_inline__)) -_mm_hsub_epi32 (__m128i __X, __m128i __Y) -{ - return (__m128i) __builtin_ia32_phsubd128 ((__v4si)__X, (__v4si)__Y); -} - -static __inline __m128i __attribute__((__always_inline__)) -_mm_hsubs_epi16 (__m128i __X, __m128i __Y) -{ - return (__m128i) __builtin_ia32_phsubsw128 ((__v8hi)__X, (__v8hi)__Y); -} - -static __inline __m64 __attribute__((__always_inline__)) -_mm_hsub_pi16 (__m64 __X, __m64 __Y) -{ - return (__m64) __builtin_ia32_phsubw ((__v4hi)__X, (__v4hi)__Y); -} - -static __inline __m64 __attribute__((__always_inline__)) -_mm_hsub_pi32 (__m64 __X, __m64 __Y) -{ - return (__m64) __builtin_ia32_phsubd ((__v2si)__X, (__v2si)__Y); -} - -static __inline __m64 __attribute__((__always_inline__)) -_mm_hsubs_pi16 (__m64 __X, __m64 __Y) -{ - return (__m64) __builtin_ia32_phsubsw ((__v4hi)__X, (__v4hi)__Y); -} - -static __inline __m128i __attribute__((__always_inline__)) -_mm_maddubs_epi16 (__m128i __X, __m128i __Y) -{ - return (__m128i) __builtin_ia32_pmaddubsw128 ((__v16qi)__X, (__v16qi)__Y); -} - -static __inline __m64 __attribute__((__always_inline__)) -_mm_maddubs_pi16 (__m64 __X, __m64 __Y) -{ - return (__m64) __builtin_ia32_pmaddubsw ((__v8qi)__X, (__v8qi)__Y); -} - -static __inline __m128i __attribute__((__always_inline__)) -_mm_mulhrs_epi16 (__m128i __X, __m128i __Y) -{ - return (__m128i) __builtin_ia32_pmulhrsw128 ((__v8hi)__X, (__v8hi)__Y); -} - -static __inline __m64 __attribute__((__always_inline__)) -_mm_mulhrs_pi16 (__m64 __X, __m64 __Y) -{ - return (__m64) __builtin_ia32_pmulhrsw ((__v4hi)__X, (__v4hi)__Y); -} - -static __inline __m128i __attribute__((__always_inline__)) -_mm_shuffle_epi8 (__m128i __X, __m128i __Y) -{ - return (__m128i) __builtin_ia32_pshufb128 ((__v16qi)__X, (__v16qi)__Y); -} - -static __inline __m64 __attribute__((__always_inline__)) -_mm_shuffle_pi8 (__m64 __X, __m64 __Y) -{ - return (__m64) __builtin_ia32_pshufb ((__v8qi)__X, (__v8qi)__Y); -} - -static __inline __m128i __attribute__((__always_inline__)) -_mm_sign_epi8 (__m128i __X, __m128i __Y) -{ - return (__m128i) __builtin_ia32_psignb128 ((__v16qi)__X, (__v16qi)__Y); -} - -static __inline __m128i __attribute__((__always_inline__)) -_mm_sign_epi16 (__m128i __X, __m128i __Y) -{ - return (__m128i) __builtin_ia32_psignw128 ((__v8hi)__X, (__v8hi)__Y); -} - -static __inline __m128i __attribute__((__always_inline__)) -_mm_sign_epi32 (__m128i __X, __m128i __Y) -{ - return (__m128i) __builtin_ia32_psignd128 ((__v4si)__X, (__v4si)__Y); -} - -static __inline __m64 __attribute__((__always_inline__)) -_mm_sign_pi8 (__m64 __X, __m64 __Y) -{ - return (__m64) __builtin_ia32_psignb ((__v8qi)__X, (__v8qi)__Y); -} - -static __inline __m64 __attribute__((__always_inline__)) -_mm_sign_pi16 (__m64 __X, __m64 __Y) -{ - return (__m64) __builtin_ia32_psignw ((__v4hi)__X, (__v4hi)__Y); -} - -static __inline __m64 __attribute__((__always_inline__)) -_mm_sign_pi32 (__m64 __X, __m64 __Y) -{ - return (__m64) __builtin_ia32_psignd ((__v2si)__X, (__v2si)__Y); -} - -#define _mm_alignr_epi8(__X, __Y, __N) \ - ((__m128i)__builtin_ia32_palignr128 ((__v2di) __X, (__v2di) __Y, (__N) * 8)) - -#define _mm_alignr_pi8(__X, __Y, __N) \ - ((__m64)__builtin_ia32_palignr ((long long) (__X), (long long) (__Y), (__N) * 8)) - -static __inline __m128i __attribute__((__always_inline__)) -_mm_abs_epi8 (__m128i __X) -{ - return (__m128i) __builtin_ia32_pabsb128 ((__v16qi)__X); -} - -static __inline __m128i __attribute__((__always_inline__)) -_mm_abs_epi16 (__m128i __X) -{ - return (__m128i) __builtin_ia32_pabsw128 ((__v8hi)__X); -} - -static __inline __m128i __attribute__((__always_inline__)) -_mm_abs_epi32 (__m128i __X) -{ - return (__m128i) __builtin_ia32_pabsd128 ((__v4si)__X); -} - -static __inline __m64 __attribute__((__always_inline__)) -_mm_abs_pi8 (__m64 __X) -{ - return (__m64) __builtin_ia32_pabsb ((__v8qi)__X); -} - -static __inline __m64 __attribute__((__always_inline__)) -_mm_abs_pi16 (__m64 __X) -{ - return (__m64) __builtin_ia32_pabsw ((__v4hi)__X); -} - -static __inline __m64 __attribute__((__always_inline__)) -_mm_abs_pi32 (__m64 __X) -{ - return (__m64) __builtin_ia32_pabsd ((__v2si)__X); -} - -#endif /* __SSSE3__ */ - -#endif /* _TMMINTRIN_H_INCLUDED */ -/* Copyright (C) 2006 Free Software Foundation, Inc. - - This file is part of GCC. - - GCC is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - GCC is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with GCC; see the file COPYING. If not, write to - the Free Software Foundation, 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ - -/* As a special exception, if you include this header file into source - files compiled by GCC, this header file does not by itself cause - the resulting executable to be covered by the GNU General Public - License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General - Public License. */ - -/* Implemented from the specification included in the Intel C++ Compiler - User Guide and Reference, version 9.1. */ - -#ifndef _TMMINTRIN_H_INCLUDED -#define _TMMINTRIN_H_INCLUDED - -#ifdef __SSSE3__ +#ifndef __SSSE3__ +# error "SSSE3 instruction set not enabled" +#else + +/* We need definitions from the SSE3, SSE2 and SSE header files*/ #include static __inline __m128i __attribute__((__always_inline__)) diff --git a/contrib/gcc/doc/extend.texi b/contrib/gcc/doc/extend.texi index 0c8bb7d0926c..d7a1494eebcc 100644 --- a/contrib/gcc/doc/extend.texi +++ b/contrib/gcc/doc/extend.texi @@ -7255,6 +7255,23 @@ v4si __builtin_ia32_pabsd128 (v4si) v8hi __builtin_ia32_pabsw128 (v8hi) @end smallexample +The following built-in functions are available when @option{-msse4a} is used. + +@smallexample +void _mm_stream_sd (double*,__m128d); +Generates the @code{movntsd} machine instruction. +void _mm_stream_ss (float*,__m128); +Generates the @code{movntss} machine instruction. +__m128i _mm_extract_si64 (__m128i, __m128i); +Generates the @code{extrq} machine instruction with only SSE register operands. +__m128i _mm_extracti_si64 (__m128i, int, int); +Generates the @code{extrq} machine instruction with SSE register and immediate operands. +__m128i _mm_insert_si64 (__m128i, __m128i); +Generates the @code{insertq} machine instruction with only SSE register operands. +__m128i _mm_inserti_si64 (__m128i, __m128i, int, int); +Generates the @code{insertq} machine instruction with SSE register and immediate operands. +@end smallexample + The following built-in functions are available when @option{-m3dnow} is used. All of them generate the machine instruction that is part of the name. diff --git a/contrib/gcc/doc/invoke.texi b/contrib/gcc/doc/invoke.texi index 0c391369dc32..0587a9e22428 100644 --- a/contrib/gcc/doc/invoke.texi +++ b/contrib/gcc/doc/invoke.texi @@ -513,7 +513,7 @@ in the following sections. -mno-fp-ret-in-387 -msoft-float -msvr3-shlib @gol -mno-wide-multiply -mrtd -malign-double @gol -mpreferred-stack-boundary=@var{num} @gol --mmmx -msse -msse2 -msse3 -mssse3 -m3dnow @gol +-mmmx -msse -msse2 -msse3 -mssse3 -msse4a -m3dnow -mpopcnt -mabm @gol -mthreads -mno-align-stringops -minline-all-stringops @gol -mpush-args -maccumulate-outgoing-args -m128bit-long-double @gol -m96bit-long-double -mregparm=@var{num} -msseregparm @gol @@ -9059,6 +9059,10 @@ instruction set support. @item k8, opteron, athlon64, athlon-fx AMD K8 core based CPUs with x86-64 instruction set support. (This supersets MMX, SSE, SSE2, 3dNOW!, enhanced 3dNOW! and 64-bit instruction set extensions.) +@item amdfam10, barcelona +AMD Family 10h core based CPUs with x86-64 instruction set support. (This +supersets MMX, SSE, SSE2, SSE3, SSE4A, 3dNOW!, enhanced 3dNOW!, ABM and 64-bit +instruction set extensions.) @item k8-sse3, opteron-sse3, athlon64-sse3 Improved versions of k8, opteron and athlon64 with SSE3 instruction set support. @item winchip-c6 @@ -9355,8 +9359,14 @@ preferred alignment to @option{-mpreferred-stack-boundary=2}. @itemx -mno-sse3 @item -mssse3 @itemx -mno-ssse3 +@item -msse4a +@item -mno-sse4a @item -m3dnow @itemx -mno-3dnow +@item -mpopcnt +@itemx -mno-popcnt +@item -mabm +@itemx -mno-abm @opindex mmmx @opindex mno-mmx @opindex msse @@ -9364,7 +9374,7 @@ preferred alignment to @option{-mpreferred-stack-boundary=2}. @opindex m3dnow @opindex mno-3dnow These switches enable or disable the use of instructions in the MMX, -SSE, SSE2, SSE3, SSSE3 or 3DNow! extended instruction sets. +SSE, SSE2, SSE3, SSSE3, SSE4A, ABM or 3DNow! extended instruction sets. These extensions are also available as built-in functions: see @ref{X86 Built-in Functions}, for details of the functions enabled and disabled by these switches. diff --git a/contrib/gcc/fold-const.c b/contrib/gcc/fold-const.c index 37d99f89d0ef..1aadd300a9b8 100644 --- a/contrib/gcc/fold-const.c +++ b/contrib/gcc/fold-const.c @@ -2802,9 +2802,13 @@ operand_equal_p (tree arg0, tree arg1, unsigned int flags) case ARRAY_REF: case ARRAY_RANGE_REF: - /* Operands 2 and 3 may be null. */ + /* Operands 2 and 3 may be null. + Compare the array index by value if it is constant first as we + may have different types but same value here. */ return (OP_SAME (0) - && OP_SAME (1) + && (tree_int_cst_equal (TREE_OPERAND (arg0, 1), + TREE_OPERAND (arg1, 1)) + || OP_SAME (1)) && OP_SAME_WITH_NULL (2) && OP_SAME_WITH_NULL (3)); diff --git a/contrib/gcc/gimplify.c b/contrib/gcc/gimplify.c index 80dcd1ac5f2a..7efae388c92d 100644 --- a/contrib/gcc/gimplify.c +++ b/contrib/gcc/gimplify.c @@ -1600,9 +1600,7 @@ canonicalize_addr_expr (tree *expr_p) /* All checks succeeded. Build a new node to merge the cast. */ *expr_p = build4 (ARRAY_REF, dctype, obj_expr, TYPE_MIN_VALUE (TYPE_DOMAIN (datype)), - TYPE_MIN_VALUE (TYPE_DOMAIN (datype)), - size_binop (EXACT_DIV_EXPR, TYPE_SIZE_UNIT (dctype), - size_int (TYPE_ALIGN_UNIT (dctype)))); + NULL_TREE, NULL_TREE); *expr_p = build1 (ADDR_EXPR, ctype, *expr_p); } diff --git a/contrib/gcc/tree-ssa-ccp.c b/contrib/gcc/tree-ssa-ccp.c index 6e74f35f2bd9..e64d80beb786 100644 --- a/contrib/gcc/tree-ssa-ccp.c +++ b/contrib/gcc/tree-ssa-ccp.c @@ -1621,9 +1621,7 @@ maybe_fold_offset_to_array_ref (tree base, tree offset, tree orig_type) if (!integer_zerop (elt_offset)) idx = int_const_binop (PLUS_EXPR, idx, elt_offset, 0); - return build4 (ARRAY_REF, orig_type, base, idx, min_idx, - size_int (tree_low_cst (elt_size, 1) - / (TYPE_ALIGN_UNIT (elt_type)))); + return build4 (ARRAY_REF, orig_type, base, idx, NULL_TREE, NULL_TREE); } diff --git a/contrib/gcc/tree-ssa-pre.c b/contrib/gcc/tree-ssa-pre.c index 9c7b89faaf3f..ba32b3cfed45 100644 --- a/contrib/gcc/tree-ssa-pre.c +++ b/contrib/gcc/tree-ssa-pre.c @@ -1076,6 +1076,7 @@ phi_translate (tree expr, value_set_t set, basic_block pred, tree newexpr; tree vh = get_value_handle (expr); bool listchanged = false; + bool invariantarg = false; VEC (tree, gc) *vuses = VALUE_HANDLE_VUSES (vh); VEC (tree, gc) *tvuses; @@ -1134,10 +1135,26 @@ phi_translate (tree expr, value_set_t set, basic_block pred, if (newval != oldval) { listchanged = true; + invariantarg |= is_gimple_min_invariant (newval); TREE_VALUE (newwalker) = get_value_handle (newval); } } } + + /* In case of new invariant args we might try to fold the call + again. */ + if (invariantarg) + { + tree tmp = fold_ternary (CALL_EXPR, TREE_TYPE (expr), + newop0, newarglist, newop2); + if (tmp) + { + STRIP_TYPE_NOPS (tmp); + if (is_gimple_min_invariant (tmp)) + return tmp; + } + } + if (listchanged) vn_lookup_or_add (newarglist, NULL); From 5d75780525466eaf8536ac590d49490ea6f19fc4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dag-Erling=20Sm=C3=B8rgrav?= Date: Tue, 12 Jun 2012 15:32:14 +0000 Subject: [PATCH 159/340] Remove dead code. --- release/picobsd/tinyware/passwd/passwd.c | 89 +++++------------------- 1 file changed, 16 insertions(+), 73 deletions(-) diff --git a/release/picobsd/tinyware/passwd/passwd.c b/release/picobsd/tinyware/passwd/passwd.c index d24165037a5a..42ebd8c1fd48 100644 --- a/release/picobsd/tinyware/passwd/passwd.c +++ b/release/picobsd/tinyware/passwd/passwd.c @@ -64,10 +64,6 @@ int yp_errno = YP_TRUE; extern int yp_passwd( char * ); #endif -#ifdef KERBEROS -#include "krb.h" -#endif - #include "extern.h" static void usage(void); @@ -81,26 +77,12 @@ main(argc, argv) { int ch; char *uname; -#ifdef KERBEROS - char *iflag = 0, *rflag = 0, *uflag = 0; - char *k; -#endif #ifdef YP -#ifdef KERBEROS - char realm[REALM_SZ]; -#define OPTIONS "d:h:lysfoi:r:u:" -#else #define OPTIONS "d:h:lysfo" -#endif -#else -#ifdef KERBEROS - char realm[REALM_SZ]; -#define OPTIONS "li:r:u:" #else #define OPTIONS "l" #endif -#endif #ifdef YP int res = 0; @@ -113,17 +95,6 @@ main(argc, argv) case 'l': /* change local password file */ use_local_passwd = 1; break; -#ifdef KERBEROS - case 'i': - iflag = optarg; - break; - case 'r': - rflag = optarg; - break; - case 'u': - uflag = optarg; - break; -#endif /* KERBEROS */ #ifdef YP case 'y': /* Change NIS password */ __use_yp = 1; @@ -182,46 +153,29 @@ main(argc, argv) /* * If NIS is turned on in the password database, use it, else punt. */ -#ifdef KERBEROS - if (__use_yp || (iflag == NULL && rflag == NULL && uflag == NULL)) { -#endif - res = use_yp(uname, 0, 0); - if (res == USER_YP_ONLY) { - if (!use_local_passwd) { - exit(yp_passwd(uname)); - } else { + res = use_yp(uname, 0, 0); + if (res == USER_YP_ONLY) { + if (!use_local_passwd) { + exit(yp_passwd(uname)); + } else { /* * Reject -l flag if NIS is turned on and the user * doesn't exist in the local password database. */ - errx(1, "unknown local user: %s", uname); - } - } else if (res == USER_LOCAL_ONLY) { - /* - * Reject -y flag if user only exists locally. - */ - if (__use_yp) - errx(1, "unknown NIS user: %s", uname); - } else if (res == USER_YP_AND_LOCAL) { - if (!use_local_passwd && (yp_in_pw_file || __use_yp)) - exit(yp_passwd(uname)); + errx(1, "unknown local user: %s", uname); } -#ifdef KERBEROS + } else if (res == USER_LOCAL_ONLY) { + /* + * Reject -y flag if user only exists locally. + */ + if (__use_yp) + errx(1, "unknown NIS user: %s", uname); + } else if (res == USER_YP_AND_LOCAL) { + if (!use_local_passwd && (yp_in_pw_file || __use_yp)) + exit(yp_passwd(uname)); } -#endif #endif - if (!use_local_passwd) { -#ifdef KERBEROS - k = auth_getval("auth_list"); - if (k && strstr(k, "kerberos")) - if(krb_get_lrealm(realm, 0) == KSUCCESS) { - setuid(getuid()); - fprintf(stderr, "realm %s\n", realm); - exit(krb_passwd(argv[0], iflag, rflag, uflag)); - } -#endif - } exit(local_passwd(uname)); } @@ -230,21 +184,10 @@ usage() { #ifdef YP -#ifdef KERBEROS - fprintf(stderr, "%s\n%s\n", - "usage: passwd [-l] [-i instance] [-r realm] [-u fullname]", - " passwd [-l] [-y] [-o] [-d domain [-h host]] [user]"); -#else (void)fprintf(stderr, "usage: passwd [-l] [-y] [-o] [-d domain [-h host]] [user]\n"); -#endif #else -#ifdef KERBEROS - fprintf(stderr, - "usage: passwd [-l] [-i instance] [-r realm] [-u fullname] [user]\n"); -#else - (void)fprintf(stderr, "usage: passwd user\n"); -#endif + (void)fprintf(stderr, "usage: passwd [-l] user\n"); #endif exit(1); } From d3d19ef9c251ac021178baf1faf25e4cb54f132b Mon Sep 17 00:00:00 2001 From: "Pedro F. Giffuni" Date: Tue, 12 Jun 2012 16:07:03 +0000 Subject: [PATCH 160/340] Space mismatch - typo in r236962. Found by: Dima Panov Approved by: jhb (mentor) MFC after: 2 weeks --- contrib/gcc/config.gcc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contrib/gcc/config.gcc b/contrib/gcc/config.gcc index 3e4e596f630d..5806ce7363d9 100644 --- a/contrib/gcc/config.gcc +++ b/contrib/gcc/config.gcc @@ -1216,7 +1216,7 @@ i[34567]86-*-solaris2*) ;; *) echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2 - echo "generic core2 nocona x86-64amd fam10 barcelona k8 opteron athlon64 athlon-fx" 1>&2 + echo "generic core2 nocona x86-64 amdfam10 barcelona k8 opteron athlon64 athlon-fx" 1>&2 exit 1 ;; esac From 7c5a9216994bf301a6cb4585b2ff20449effeb43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dag-Erling=20Sm=C3=B8rgrav?= Date: Tue, 12 Jun 2012 17:02:53 +0000 Subject: [PATCH 161/340] Finally nuke auth.conf, nine years after it was deprecated. The only thing it was still used for was to set the "global default" password hash. Since the stock auth.conf contained nothing but comments, the global default was actually the first algorithm in crypt(3)'s list, which happens to be DES; I take the fact that nobody noticed as proof that it was not used outside of crypt(3). The only other use in our tree was in the Kerberos support code in in tinyware's passwd(1). I removed that code in an earlier commit; it would not have compiled anyway, as it only supported Kerberos IV. The auth_getval() function is now a stub that always returns NULL, which has the same effect as a functional auth_getval() with an empty auth.conf. MFC after: 3 weeks --- etc/Makefile | 3 +- etc/auth.conf | 8 ----- include/paths.h | 1 - lib/libutil/Makefile | 5 ++- lib/libutil/auth.3 | 56 ------------------------------ lib/libutil/auth.c | 36 +++---------------- lib/libutil/auth.conf.5 | 35 ------------------- lib/libutil/property.3 | 2 -- share/examples/etc/README.examples | 1 - 9 files changed, 8 insertions(+), 139 deletions(-) delete mode 100644 etc/auth.conf delete mode 100644 lib/libutil/auth.3 delete mode 100644 lib/libutil/auth.conf.5 diff --git a/etc/Makefile b/etc/Makefile index 078e490a4164..48124b94878e 100644 --- a/etc/Makefile +++ b/etc/Makefile @@ -7,8 +7,7 @@ SUBDIR= sendmail .endif -BIN1= auth.conf \ - crontab \ +BIN1= crontab \ devd.conf \ devfs.conf \ ddb.conf \ diff --git a/etc/auth.conf b/etc/auth.conf deleted file mode 100644 index 08b6f7a3271f..000000000000 --- a/etc/auth.conf +++ /dev/null @@ -1,8 +0,0 @@ -# -# $FreeBSD$ -# -# Configure some authentication-related defaults. This file is being -# gradually subsumed by user class and PAM configuration. -# - -# crypt_default = md5 des diff --git a/include/paths.h b/include/paths.h index 650393446577..1e7402b4aa6f 100644 --- a/include/paths.h +++ b/include/paths.h @@ -42,7 +42,6 @@ /* Locate system binaries. */ #define _PATH_SYSPATH "/sbin:/usr/sbin" -#define _PATH_AUTHCONF "/etc/auth.conf" #define _PATH_BSHELL "/bin/sh" #define _PATH_CAPABILITY "/etc/capability" #define _PATH_CAPABILITY_DB "/etc/capability.db" diff --git a/lib/libutil/Makefile b/lib/libutil/Makefile index 3136a050d5e3..413ba0bfd0c4 100644 --- a/lib/libutil/Makefile +++ b/lib/libutil/Makefile @@ -25,14 +25,13 @@ CFLAGS+= -DINET6 CFLAGS+= -I${.CURDIR} -I${.CURDIR}/../libc/gen/ -MAN+= auth.3 expand_number.3 flopen.3 fparseln.3 hexdump.3 \ +MAN+= expand_number.3 flopen.3 fparseln.3 hexdump.3 \ humanize_number.3 kinfo_getallproc.3 kinfo_getfile.3 \ kinfo_getproc.3 kinfo_getvmmap.3 kld.3 login_auth.3 login_cap.3 \ login_class.3 login_ok.3 login_times.3 login_tty.3 pidfile.3 \ property.3 pty.3 quotafile.3 realhostname.3 realhostname_sa.3 \ _secure_path.3 trimdomain.3 uucplock.3 -MAN+= auth.conf.5 login.conf.5 -MLINKS+= auth.3 auth_getval.3 +MAN+= login.conf.5 MLINKS+= kld.3 kld_isloaded.3 kld.3 kld_load.3 MLINKS+=login_auth.3 auth_cat.3 login_auth.3 auth_checknologin.3 MLINKS+=login_cap.3 login_close.3 login_cap.3 login_getcapbool.3 \ diff --git a/lib/libutil/auth.3 b/lib/libutil/auth.3 deleted file mode 100644 index 247a09859141..000000000000 --- a/lib/libutil/auth.3 +++ /dev/null @@ -1,56 +0,0 @@ -.\" -.\" Copyright (c) 1998 Jordan Hubbard -.\" -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR -.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES -.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT, -.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.\" $FreeBSD$ -.\" " -.Dd October 7, 1998 -.Dt AUTH_GETVAL 3 -.Os -.Sh NAME -.Nm auth_getval -.Nd functions for reading values from -.Pa /etc/auth.conf -.Sh LIBRARY -.Lb libutil -.Sh SYNOPSIS -.In sys/types.h -.In libutil.h -.Ft char * -.Fn auth_getval "const char *name" -.Sh DESCRIPTION -The function -.Fn auth_getval -returns the value associated with the field called -.Fa name -or NULL if no such field is found or the auth file cannot be opened. -.Sh FILES -.Pa /etc/auth.conf -contains the name=value pairs looked up by -.Fn auth_getval . -.Sh SEE ALSO -.Xr properties_free 3 , -.Xr properties_read 3 , -.Xr property_find 3 , -.Xr auth.conf 5 diff --git a/lib/libutil/auth.c b/lib/libutil/auth.c index 748c3ad84bd7..b57a784dc5e7 100644 --- a/lib/libutil/auth.c +++ b/lib/libutil/auth.c @@ -31,40 +31,14 @@ #include __FBSDID("$FreeBSD$"); -#include -#include +#include + #include -#include -#include -#include - -static properties P; - -static int -initauthconf(const char *path) -{ - int fd; - - if (!P) { - if ((fd = open(path, O_RDONLY)) < 0) { - syslog(LOG_ERR, "initauthconf: unable to open file: %s", path); - return 1; - } - P = properties_read(fd); - close(fd); - if (!P) { - syslog(LOG_ERR, "initauthconf: unable to parse file: %s", path); - return 1; - } - } - return 0; -} char * auth_getval(const char *name) { - if (!P && initauthconf(_PATH_AUTHCONF)) - return NULL; - else - return property_find(P, name); + + (void)name; + return (NULL); } diff --git a/lib/libutil/auth.conf.5 b/lib/libutil/auth.conf.5 deleted file mode 100644 index be10eb85fdf0..000000000000 --- a/lib/libutil/auth.conf.5 +++ /dev/null @@ -1,35 +0,0 @@ -.\" Copyright (c) 1998 Jordan Hubbard -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, is permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice immediately at the beginning of the file, without modification, -.\" this list of conditions, and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" $FreeBSD$ -.\" -.Dd October 7, 1998 -.Dt AUTH.CONF 5 -.Os -.Sh NAME -.Nm auth.conf -.Nd authentication capability database -.Sh SYNOPSIS -.Pa /etc/auth.conf -.Sh DESCRIPTION -.Nm -contains various attributes important to the authentication -code, most notably -.Xr crypt 3 -for the time being. -This documentation will be updated as the -.Pa /etc/auth.conf -file, which is very new, evolves. -.Sh SEE ALSO -.Xr auth_getval 3 , -.Xr crypt 3 diff --git a/lib/libutil/property.3 b/lib/libutil/property.3 index efe0079f07f9..3d4011463a7c 100644 --- a/lib/libutil/property.3 +++ b/lib/libutil/property.3 @@ -90,8 +90,6 @@ are desired, the entire value should be enclosed in { } (curly-bracket) characters. Any line beginning with a # or ; character is assumed to be a comment and will be ignored. -.Sh SEE ALSO -.Xr auth_getval 3 .Sh AUTHORS .An Jordan Hubbard .Sh BUGS diff --git a/share/examples/etc/README.examples b/share/examples/etc/README.examples index ba2cf00dc907..f7bf4ceb8cfb 100644 --- a/share/examples/etc/README.examples +++ b/share/examples/etc/README.examples @@ -9,7 +9,6 @@ This directory contains the following files: amd.map - filesystem automounter lookup resolution map (see amd(8)) apmd.conf - configuration file for apmd(8) -auth.conf - authentication capability database (see auth.conf(5)) bsd-style-copyright - copyright style for bsd system crontab - system scheduled command table (see crontab(5)) csh.cshrc - sample .cshrc (see csh(1)) From 9189ae71faf92ab29f5ba5cd9e629655469b73a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dag-Erling=20Sm=C3=B8rgrav?= Date: Tue, 12 Jun 2012 17:04:56 +0000 Subject: [PATCH 162/340] auth.conf is dead. --- sys/mips/rmi/rootfs_list.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sys/mips/rmi/rootfs_list.txt b/sys/mips/rmi/rootfs_list.txt index 5cfd2e99a0bf..989b333bb31f 100644 --- a/sys/mips/rmi/rootfs_list.txt +++ b/sys/mips/rmi/rootfs_list.txt @@ -1,3 +1,5 @@ +# $FreeBSD$ +# # This is the list of files that # should be in your rootfs (copy it from # the build world nfsmount dir. When the rge0 @@ -321,7 +323,6 @@ ./etc/ssh/moduli ./etc/ssl ./etc/ssl/openssl.cnf -./etc/auth.conf ./etc/crontab ./etc/devd.conf ./etc/devfs.conf From a0ee974f0badd8a8fafb686be71a49094e2798f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dag-Erling=20Sm=C3=B8rgrav?= Date: Tue, 12 Jun 2012 17:14:19 +0000 Subject: [PATCH 163/340] Stop using auth_getval() now that it always returns NULL. Instead, hardcode the default to what it would be if we didn't hardcode it, i.e. DES if supported and MD5 otherwise. MFC after: 3 weeks --- lib/libcrypt/Makefile | 6 +----- lib/libcrypt/crypt.3 | 8 -------- lib/libcrypt/crypt.c | 14 +++++++------- 3 files changed, 8 insertions(+), 20 deletions(-) diff --git a/lib/libcrypt/Makefile b/lib/libcrypt/Makefile index eea55726124b..7274e287bded 100644 --- a/lib/libcrypt/Makefile +++ b/lib/libcrypt/Makefile @@ -26,11 +26,7 @@ SRCS+= crypt-des.c crypt-blowfish.c blowfish.c CFLAGS+= -I${.CURDIR} -DHAS_DES -DHAS_BLOWFISH .endif -# And the auth_getval() code and support. -.PATH: ${.CURDIR}/../libutil -SRCS+= auth.c property.c -.for sym in auth_getval property_find properties_read properties_free \ - MD4Init MD4Final MD4Update MD4Pad \ +.for sym in MD4Init MD4Final MD4Update MD4Pad \ MD5Init MD5Final MD5Update MD5Pad \ SHA256_Init SHA256_Final SHA256_Update \ SHA512_Init SHA512_Final SHA512_Update diff --git a/lib/libcrypt/crypt.3 b/lib/libcrypt/crypt.3 index 535ccdd4df56..f14a6eb9d902 100644 --- a/lib/libcrypt/crypt.3 +++ b/lib/libcrypt/crypt.3 @@ -238,12 +238,6 @@ The .Fn crypt_set_format function sets the default encoding format according to the supplied .Fa string . -.Pp -The global default format can be set using the -.Pa /etc/auth.conf -file using the -.Va crypt_default -property. .Sh RETURN VALUES The .Fn crypt @@ -260,9 +254,7 @@ Otherwise, a value of 0 is returned. .Sh SEE ALSO .Xr login 1 , .Xr passwd 1 , -.Xr auth_getval 3 , .Xr getpass 3 , -.Xr auth.conf 5 , .Xr passwd 5 .Sh HISTORY A rotor-based diff --git a/lib/libcrypt/crypt.c b/lib/libcrypt/crypt.c index b949a480de18..bfcbb2049b5a 100644 --- a/lib/libcrypt/crypt.c +++ b/lib/libcrypt/crypt.c @@ -79,23 +79,23 @@ static const struct { } }; +#ifdef HAS_DES +#define CRYPT_DEFAULT "des" +#else +#define CRYPT_DEFAULT "md5" +#endif + static int crypt_type = -1; static void crypt_setdefault(void) { - char *def; size_t i; if (crypt_type != -1) return; - def = auth_getval("crypt_default"); - if (def == NULL) { - crypt_type = 0; - return; - } for (i = 0; i < sizeof(crypt_types) / sizeof(crypt_types[0]) - 1; i++) { - if (strcmp(def, crypt_types[i].name) == 0) { + if (strcmp(CRYPT_DEFAULT, crypt_types[i].name) == 0) { crypt_type = (int)i; return; } From 56d20d01b5e29c8025af909f6f66b67c4e2db452 Mon Sep 17 00:00:00 2001 From: John Baldwin Date: Tue, 12 Jun 2012 18:19:46 +0000 Subject: [PATCH 164/340] Replace a reference to the non-existent SI_ORDER_LAST in a comment with SI_ORDER_ANY. Submitted by: Brandon Gooch brandongooch yahoo com --- sys/sys/kernel.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/sys/kernel.h b/sys/sys/kernel.h index 29166460f586..d514cb2f9378 100644 --- a/sys/sys/kernel.h +++ b/sys/sys/kernel.h @@ -267,7 +267,7 @@ void sysinit_add(struct sysinit **set, struct sysinit **set_end); /* * Infrastructure for tunable 'constants'. Value may be specified at compile * time or kernel load time. Rules relating tunables together can be placed - * in a SYSINIT function at SI_SUB_TUNABLES with SI_ORDER_LAST. + * in a SYSINIT function at SI_SUB_TUNABLES with SI_ORDER_ANY. * * WARNING: developers should never use the reserved suffixes specified in * loader.conf(5) for any tunables or conflicts will result. From 0bd7a6f87835b9bfd84bbdf567a31978b048c300 Mon Sep 17 00:00:00 2001 From: Dimitry Andric Date: Tue, 12 Jun 2012 20:24:57 +0000 Subject: [PATCH 165/340] Make sure libkiconv.so.4 is installed into /lib, not into /usr/lib, which was inadvertently caused by r236185: if SHLIBDIR is set using the ?= operator, it must be done *before* bsd.own.mk is included, otherwise the default value is still used. Note, bsd.lib.mk will take care of removing the copy in /usr/lib upon installation, so no addition to ObsoleteFiles.inc is needed. X-MFC-With: r236185 --- lib/libkiconv/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/libkiconv/Makefile b/lib/libkiconv/Makefile index ba884571b443..bda505eeaff1 100644 --- a/lib/libkiconv/Makefile +++ b/lib/libkiconv/Makefile @@ -1,9 +1,10 @@ # $FreeBSD$ +SHLIBDIR?= /lib + .include LIB= kiconv -SHLIBDIR?= /lib SRCS= kiconv_sysctl.c xlat16_iconv.c xlat16_sysctl.c SRCS+= quirks.c From b99d8b0ae09328490a276632e941f31c2a6a01ce Mon Sep 17 00:00:00 2001 From: John Baldwin Date: Tue, 12 Jun 2012 20:55:57 +0000 Subject: [PATCH 166/340] Add pfg@ as one of my mentees. --- share/misc/committers-src.dot | 1 + 1 file changed, 1 insertion(+) diff --git a/share/misc/committers-src.dot b/share/misc/committers-src.dot index 66ca9bcb4b2d..c0e600e22368 100644 --- a/share/misc/committers-src.dot +++ b/share/misc/committers-src.dot @@ -436,6 +436,7 @@ jhb -> avg jhb -> jeff jhb -> kbyanc jhb -> rnoland +jhb -> pfg jkh -> imp jkh -> jlemon From 364e72457f91b8cb512c8609d17ea8108c83606f Mon Sep 17 00:00:00 2001 From: Konstantin Belousov Date: Tue, 12 Jun 2012 21:37:27 +0000 Subject: [PATCH 167/340] For incompleted block allocations or frees, the inode block count usage must be recalculated. The blk_check pass of suj checker explicitely marks inodes which owned such blocks as needing block count adjustment. But ino_adjblks() is only called by cg_trunc pass, which is performed before blk_check. As result, the block use count for such inodes is left wrong. This causes full fsck run after journaled run to still find inconsistencies like 'INCORRECT BLOCK COUNT I=14557 (328 should be 0)' in phase 1. Fix this issue by running additional adj_blk pass after blk_check, which updates the field. Reviewed by: jeff, mckusick MFC after: 1 week --- sbin/fsck_ffs/suj.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/sbin/fsck_ffs/suj.c b/sbin/fsck_ffs/suj.c index b784519062b2..8819476278a8 100644 --- a/sbin/fsck_ffs/suj.c +++ b/sbin/fsck_ffs/suj.c @@ -1789,6 +1789,20 @@ cg_trunc(struct suj_cg *sc) } } +static void +cg_adj_blk(struct suj_cg *sc) +{ + struct suj_ino *sino; + int i; + + for (i = 0; i < SUJ_HASHSIZE; i++) { + LIST_FOREACH(sino, &sc->sc_inohash[i], si_next) { + if (sino->si_blkadj) + ino_adjblks(sino); + } + } +} + /* * Free any partially allocated blocks and then resolve inode block * counts. @@ -2720,6 +2734,7 @@ suj_check(const char *filesys) printf("** Processing journal entries.\n"); cg_apply(cg_trunc); cg_apply(cg_check_blk); + cg_apply(cg_adj_blk); cg_apply(cg_check_ino); } if (preen == 0 && (jrecs > 0 || jbytes > 0) && reply("WRITE CHANGES") == 0) From cca63ae56b9f41ef27f538bb7f60a1e6116d2a8a Mon Sep 17 00:00:00 2001 From: "David E. O'Brien" Date: Tue, 12 Jun 2012 23:16:00 +0000 Subject: [PATCH 168/340] Add a test for the :tl & :tu modifiers. --- .../usr.bin/make/variables/modifier_t/Makefile | 15 +++++++++++++++ .../make/variables/modifier_t/expected.status.1 | 1 + .../make/variables/modifier_t/expected.status.2 | 1 + .../make/variables/modifier_t/expected.status.3 | 1 + .../make/variables/modifier_t/expected.stderr.1 | 0 .../make/variables/modifier_t/expected.stderr.2 | 0 .../make/variables/modifier_t/expected.stderr.3 | 0 .../make/variables/modifier_t/expected.stdout.1 | 1 + .../make/variables/modifier_t/expected.stdout.2 | 1 + .../make/variables/modifier_t/expected.stdout.3 | 1 + .../usr.bin/make/variables/modifier_t/test.t | 14 ++++++++++++++ 11 files changed, 35 insertions(+) create mode 100644 tools/regression/usr.bin/make/variables/modifier_t/Makefile create mode 100644 tools/regression/usr.bin/make/variables/modifier_t/expected.status.1 create mode 100644 tools/regression/usr.bin/make/variables/modifier_t/expected.status.2 create mode 100644 tools/regression/usr.bin/make/variables/modifier_t/expected.status.3 create mode 100644 tools/regression/usr.bin/make/variables/modifier_t/expected.stderr.1 create mode 100644 tools/regression/usr.bin/make/variables/modifier_t/expected.stderr.2 create mode 100644 tools/regression/usr.bin/make/variables/modifier_t/expected.stderr.3 create mode 100644 tools/regression/usr.bin/make/variables/modifier_t/expected.stdout.1 create mode 100644 tools/regression/usr.bin/make/variables/modifier_t/expected.stdout.2 create mode 100644 tools/regression/usr.bin/make/variables/modifier_t/expected.stdout.3 create mode 100644 tools/regression/usr.bin/make/variables/modifier_t/test.t diff --git a/tools/regression/usr.bin/make/variables/modifier_t/Makefile b/tools/regression/usr.bin/make/variables/modifier_t/Makefile new file mode 100644 index 000000000000..53844eecf573 --- /dev/null +++ b/tools/regression/usr.bin/make/variables/modifier_t/Makefile @@ -0,0 +1,15 @@ +# $FreeBSD$ +# +# Test the t modifier. +# +# below is missing ' +ASCII= !"\#$$%&()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ + +test1: + @echo '${ASCII}' + +test2: + @echo '${ASCII:tl}' + +test3: + @echo '${ASCII:tu}' diff --git a/tools/regression/usr.bin/make/variables/modifier_t/expected.status.1 b/tools/regression/usr.bin/make/variables/modifier_t/expected.status.1 new file mode 100644 index 000000000000..573541ac9702 --- /dev/null +++ b/tools/regression/usr.bin/make/variables/modifier_t/expected.status.1 @@ -0,0 +1 @@ +0 diff --git a/tools/regression/usr.bin/make/variables/modifier_t/expected.status.2 b/tools/regression/usr.bin/make/variables/modifier_t/expected.status.2 new file mode 100644 index 000000000000..573541ac9702 --- /dev/null +++ b/tools/regression/usr.bin/make/variables/modifier_t/expected.status.2 @@ -0,0 +1 @@ +0 diff --git a/tools/regression/usr.bin/make/variables/modifier_t/expected.status.3 b/tools/regression/usr.bin/make/variables/modifier_t/expected.status.3 new file mode 100644 index 000000000000..573541ac9702 --- /dev/null +++ b/tools/regression/usr.bin/make/variables/modifier_t/expected.status.3 @@ -0,0 +1 @@ +0 diff --git a/tools/regression/usr.bin/make/variables/modifier_t/expected.stderr.1 b/tools/regression/usr.bin/make/variables/modifier_t/expected.stderr.1 new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/tools/regression/usr.bin/make/variables/modifier_t/expected.stderr.2 b/tools/regression/usr.bin/make/variables/modifier_t/expected.stderr.2 new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/tools/regression/usr.bin/make/variables/modifier_t/expected.stderr.3 b/tools/regression/usr.bin/make/variables/modifier_t/expected.stderr.3 new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/tools/regression/usr.bin/make/variables/modifier_t/expected.stdout.1 b/tools/regression/usr.bin/make/variables/modifier_t/expected.stdout.1 new file mode 100644 index 000000000000..dff38fdd07ff --- /dev/null +++ b/tools/regression/usr.bin/make/variables/modifier_t/expected.stdout.1 @@ -0,0 +1 @@ +!"#$%&()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ diff --git a/tools/regression/usr.bin/make/variables/modifier_t/expected.stdout.2 b/tools/regression/usr.bin/make/variables/modifier_t/expected.stdout.2 new file mode 100644 index 000000000000..71a0f6077ef2 --- /dev/null +++ b/tools/regression/usr.bin/make/variables/modifier_t/expected.stdout.2 @@ -0,0 +1 @@ +!"#$%&()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ diff --git a/tools/regression/usr.bin/make/variables/modifier_t/expected.stdout.3 b/tools/regression/usr.bin/make/variables/modifier_t/expected.stdout.3 new file mode 100644 index 000000000000..6434c7ba7434 --- /dev/null +++ b/tools/regression/usr.bin/make/variables/modifier_t/expected.stdout.3 @@ -0,0 +1 @@ +!"#$%&()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~ diff --git a/tools/regression/usr.bin/make/variables/modifier_t/test.t b/tools/regression/usr.bin/make/variables/modifier_t/test.t new file mode 100644 index 000000000000..f564f6ea991a --- /dev/null +++ b/tools/regression/usr.bin/make/variables/modifier_t/test.t @@ -0,0 +1,14 @@ +#!/bin/sh + +# $FreeBSD$ + +cd `dirname $0` +. ../../common.sh + +# Description +DESC="Variable expansion with t modifiers" + +# Run +TEST_N=3 + +eval_cmd $* From a698b62cf5ea44a6e2f11cd021688e5e8942924d Mon Sep 17 00:00:00 2001 From: Warner Losh Date: Wed, 13 Jun 2012 04:38:09 +0000 Subject: [PATCH 169/340] trim trailing spaces that have accumulated over the years (these files served as the basis for too many other platforms). --- sys/arm/xscale/i80321/ep80219_machdep.c | 22 +++++------ sys/arm/xscale/i80321/i80321.c | 6 +-- sys/arm/xscale/i80321/i80321_aau.c | 20 +++++----- sys/arm/xscale/i80321/i80321_dma.c | 22 +++++------ sys/arm/xscale/i80321/i80321_intr.h | 2 +- sys/arm/xscale/i80321/i80321_pci.c | 18 ++++----- sys/arm/xscale/i80321/i80321_space.c | 6 +-- sys/arm/xscale/i80321/i80321_timer.c | 10 ++--- sys/arm/xscale/i80321/i80321reg.h | 6 +-- sys/arm/xscale/i80321/iq31244_7seg.c | 4 +- sys/arm/xscale/i80321/iq31244_machdep.c | 22 +++++------ sys/arm/xscale/i80321/iq80321.c | 4 +- sys/arm/xscale/i80321/obio.c | 2 +- sys/arm/xscale/i8134x/crb_machdep.c | 16 ++++---- sys/arm/xscale/i8134x/i81342.c | 4 +- sys/arm/xscale/i8134x/i81342_mcu.c | 2 +- sys/arm/xscale/i8134x/i81342_pci.c | 14 +++---- sys/arm/xscale/i8134x/i81342_space.c | 4 +- sys/arm/xscale/i8134x/i81342reg.h | 4 +- sys/arm/xscale/i8134x/iq81342_7seg.c | 4 +- sys/arm/xscale/i8134x/obio.c | 2 +- sys/arm/xscale/i8134x/uart_cpu_i81342.c | 2 +- sys/arm/xscale/ixp425/avila_ata.c | 2 +- sys/arm/xscale/ixp425/avila_gpio.c | 2 +- sys/arm/xscale/ixp425/avila_machdep.c | 10 ++--- sys/arm/xscale/ixp425/cambria_exp_space.c | 2 +- sys/arm/xscale/ixp425/if_npe.c | 10 ++--- sys/arm/xscale/ixp425/if_npereg.h | 14 +++---- sys/arm/xscale/ixp425/ixp425.c | 12 +++--- sys/arm/xscale/ixp425/ixp425_iic.c | 8 ++-- sys/arm/xscale/ixp425/ixp425_npe.c | 40 ++++++++++---------- sys/arm/xscale/ixp425/ixp425_npereg.h | 20 +++++----- sys/arm/xscale/ixp425/ixp425_pci.c | 14 +++---- sys/arm/xscale/ixp425/ixp425_pci_space.c | 2 +- sys/arm/xscale/ixp425/ixp425_qmgr.c | 46 +++++++++++------------ sys/arm/xscale/ixp425/ixp425_qmgr.h | 8 ++-- sys/arm/xscale/ixp425/ixp425reg.h | 4 +- sys/arm/xscale/pxa/if_smc_smi.c | 2 +- sys/arm/xscale/pxa/pxa_machdep.c | 11 +++--- sys/arm/xscale/pxa/pxareg.h | 4 +- 40 files changed, 203 insertions(+), 204 deletions(-) diff --git a/sys/arm/xscale/i80321/ep80219_machdep.c b/sys/arm/xscale/i80321/ep80219_machdep.c index 875f357887a9..0508244f69a6 100644 --- a/sys/arm/xscale/i80321/ep80219_machdep.c +++ b/sys/arm/xscale/i80321/ep80219_machdep.c @@ -40,7 +40,7 @@ * * Machine dependant functions for kernel setup * - * This file needs a lot of work. + * This file needs a lot of work. * * Created : 17/09/94 */ @@ -142,7 +142,7 @@ struct pv_addr minidataclean; /* Static device mappings. */ static const struct pmap_devmap ep80219_devmap[] = { - /* + /* * Map the on-board devices VA == PA so that we can access them * with the MMU on or off. */ @@ -150,7 +150,7 @@ static const struct pmap_devmap ep80219_devmap[] = { IQ80321_OBIO_BASE, IQ80321_OBIO_BASE, IQ80321_OBIO_SIZE, - VM_PROT_READ|VM_PROT_WRITE, + VM_PROT_READ|VM_PROT_WRITE, PTE_NOCACHE, }, { @@ -159,7 +159,7 @@ static const struct pmap_devmap ep80219_devmap[] = { VERDE_OUT_XLATE_IO_WIN_SIZE, VM_PROT_READ|VM_PROT_WRITE, PTE_NOCACHE, - }, + }, { IQ80321_80321_VBASE, VERDE_PMMR_BASE, @@ -192,8 +192,8 @@ initarm(struct arm_boot_params *abp) vm_offset_t lastaddr; uint32_t memsize, memstart; + lastaddr = parse_boot_param(abp); set_cpufuncs(); - lastaddr = fake_preload_metadata(); pcpu_init(pcpup, 0, sizeof(struct pcpu)); PCPU_SET(curthread, &thread0); @@ -222,7 +222,7 @@ initarm(struct arm_boot_params *abp) kernel_pt_table[loop].pv_pa = freemempos + (loop % (PAGE_SIZE / L2_TABLE_SIZE_REAL)) * L2_TABLE_SIZE_REAL; - kernel_pt_table[loop].pv_va = + kernel_pt_table[loop].pv_va = kernel_pt_table[loop].pv_pa + 0x20000000; } } @@ -291,13 +291,13 @@ initarm(struct arm_boot_params *abp) (((uint32_t)(lastaddr) - KERNBASE - 0x200000) + L1_S_SIZE) & ~(L1_S_SIZE - 1), VM_PROT_READ|VM_PROT_WRITE, PTE_CACHE); freemem_after = ((int)lastaddr + PAGE_SIZE) & ~(PAGE_SIZE - 1); - afterkern = round_page(((vm_offset_t)lastaddr + L1_S_SIZE) & ~(L1_S_SIZE + afterkern = round_page(((vm_offset_t)lastaddr + L1_S_SIZE) & ~(L1_S_SIZE - 1)); for (i = 0; i < KERNEL_PT_AFKERNEL_NUM; i++) { pmap_link_l2pt(l1pagetable, afterkern + i * 0x00100000, &kernel_pt_table[KERNEL_PT_AFKERNEL + i]); } - pmap_map_entry(l1pagetable, afterkern, minidataclean.pv_pa, + pmap_map_entry(l1pagetable, afterkern, minidataclean.pv_pa, VM_PROT_READ|VM_PROT_WRITE, PTE_CACHE); @@ -306,7 +306,7 @@ initarm(struct arm_boot_params *abp) arm_add_smallalloc_pages((void *)(freemem_after), (void*)(freemem_after + PAGE_SIZE), afterkern - (freemem_after + PAGE_SIZE), 0); - + } #endif @@ -338,7 +338,7 @@ initarm(struct arm_boot_params *abp) * of the stack memory. */ - + set_stackptr(PSR_IRQ32_MODE, irqstack.pv_va + IRQ_STACK_SIZE * PAGE_SIZE); set_stackptr(PSR_ABT32_MODE, @@ -386,7 +386,7 @@ initarm(struct arm_boot_params *abp) dump_avail[1] = 0xa0000000 + memsize; dump_avail[2] = 0; dump_avail[3] = 0; - pmap_bootstrap(pmap_curmaxkvaddr, + pmap_bootstrap(pmap_curmaxkvaddr, 0xd0000000, &kernel_l1pt); msgbufp = (void*)msgbufpv.pv_va; msgbufinit(msgbufp, msgbufsize); diff --git a/sys/arm/xscale/i80321/i80321.c b/sys/arm/xscale/i80321/i80321.c index 053fe7811ce3..e65f38df5873 100644 --- a/sys/arm/xscale/i80321/i80321.c +++ b/sys/arm/xscale/i80321/i80321.c @@ -225,9 +225,9 @@ i80321_attach(struct i80321_softc *sc) static __inline uint32_t i80321_iintsrc_read(void) -{ - uint32_t iintsrc; - +{ + uint32_t iintsrc; + __asm __volatile("mrc p6, 0, %0, c8, c0, 0" : "=r" (iintsrc)); diff --git a/sys/arm/xscale/i80321/i80321_aau.c b/sys/arm/xscale/i80321/i80321_aau.c index f72a7c903cb0..288411b71974 100644 --- a/sys/arm/xscale/i80321/i80321_aau.c +++ b/sys/arm/xscale/i80321/i80321_aau.c @@ -111,14 +111,14 @@ i80321_aau_attach(device_t dev) mtx_init(&softc->mtx, "AAU mtx", NULL, MTX_SPIN); softc->sc_st = sc->sc_st; - if (bus_space_subregion(softc->sc_st, sc->sc_sh, VERDE_AAU_BASE, + if (bus_space_subregion(softc->sc_st, sc->sc_sh, VERDE_AAU_BASE, VERDE_AAU_SIZE, &softc->sc_aau_sh) != 0) panic("%s: unable to subregion AAU registers", device_get_name(dev)); if (bus_dma_tag_create(NULL, sizeof(i80321_aaudesc_t), 0, - BUS_SPACE_MAXADDR, BUS_SPACE_MAXADDR, NULL, NULL, + BUS_SPACE_MAXADDR, BUS_SPACE_MAXADDR, NULL, NULL, AAU_RING_SIZE * sizeof(i80321_aaudesc_t), - 1, sizeof(i80321_aaudesc_t), BUS_DMA_ALLOCNOW, busdma_lock_mutex, + 1, sizeof(i80321_aaudesc_t), BUS_DMA_ALLOCNOW, busdma_lock_mutex, &Giant, &softc->dmatag)) panic("Couldn't create a dma tag"); if (bus_dmamem_alloc(softc->dmatag, (void **)&aaudescs, @@ -186,7 +186,7 @@ aau_bzero(void *dst, int len, int flags) desc->next_desc = 0; desc->count = len; desc->descr_ctrl = 2 << 1 | 1 << 31; /* Fill, enable dest write */ - bus_dmamap_sync(sc->dmatag, sc->aauring[0].map, + bus_dmamap_sync(sc->dmatag, sc->aauring[0].map, BUS_DMASYNC_PREWRITE); } else { test_virt_addr(dst, len); @@ -218,8 +218,8 @@ aau_bzero(void *dst, int len, int flags) if (tmplen <= 0 && descnb > 0) { sc->aauring[descnb - 1].desc->next_desc = 0; - bus_dmamap_sync(sc->dmatag, - sc->aauring[descnb - 1].map, + bus_dmamap_sync(sc->dmatag, + sc->aauring[descnb - 1].map, BUS_DMASYNC_PREWRITE); } continue; @@ -241,15 +241,15 @@ aau_bzero(void *dst, int len, int flags) if (tmplen > 0) { desc->next_desc = sc->aauring[descnb + 1]. phys_addr; - bus_dmamap_sync(sc->dmatag, - sc->aauring[descnb].map, + bus_dmamap_sync(sc->dmatag, + sc->aauring[descnb].map, BUS_DMASYNC_PREWRITE); desc = sc->aauring[descnb + 1].desc; descnb++; } else { desc->next_desc = 0; - bus_dmamap_sync(sc->dmatag, - sc->aauring[descnb].map, + bus_dmamap_sync(sc->dmatag, + sc->aauring[descnb].map, BUS_DMASYNC_PREWRITE); } diff --git a/sys/arm/xscale/i80321/i80321_dma.c b/sys/arm/xscale/i80321/i80321_dma.c index 4ec6d1642eed..abf7dcc970e8 100644 --- a/sys/arm/xscale/i80321/i80321_dma.c +++ b/sys/arm/xscale/i80321/i80321_dma.c @@ -115,13 +115,13 @@ i80321_dma_attach(device_t dev) mtx_init(&softc->mtx, "DMA engine mtx", NULL, MTX_SPIN); softc->sc_st = sc->sc_st; if (bus_space_subregion(softc->sc_st, sc->sc_sh, unit == 0 ? - VERDE_DMA_BASE0 : VERDE_DMA_BASE1, VERDE_DMA_SIZE, + VERDE_DMA_BASE0 : VERDE_DMA_BASE1, VERDE_DMA_SIZE, &softc->sc_dma_sh) != 0) panic("%s: unable to subregion DMA registers", device_get_name(dev)); if (bus_dma_tag_create(NULL, sizeof(i80321_dmadesc_t), - 0, BUS_SPACE_MAXADDR, BUS_SPACE_MAXADDR, NULL, NULL, - DMA_RING_SIZE * sizeof(i80321_dmadesc_t), 1, + 0, BUS_SPACE_MAXADDR, BUS_SPACE_MAXADDR, NULL, NULL, + DMA_RING_SIZE * sizeof(i80321_dmadesc_t), 1, sizeof(i80321_dmadesc_t), BUS_DMA_ALLOCNOW, busdma_lock_mutex, &Giant, &softc->dmatag)) panic("Couldn't create a dma tag"); @@ -131,7 +131,7 @@ i80321_dma_attach(device_t dev) panic("Couldn't alloc dma memory"); for (int i = 0; i < DMA_RING_SIZE; i++) { if (i > 0) - if (bus_dmamap_create(softc->dmatag, 0, + if (bus_dmamap_create(softc->dmatag, 0, &softc->dmaring[i].map)) panic("Couldn't alloc dmamap"); softc->dmaring[i].desc = &dmadescs[i]; @@ -213,11 +213,11 @@ dma_memcpy(void *dst, void *src, int len, int flags) desc->local_addr = (vm_paddr_t)dst; desc->count = len; desc->descr_ctrl = 1 << 6; /* Local memory to local memory. */ - bus_dmamap_sync(sc->dmatag, - sc->dmaring[0].map, + bus_dmamap_sync(sc->dmatag, + sc->dmaring[0].map, BUS_DMASYNC_PREWRITE); } else { - if (!virt_addr_is_valid(dst, len, 1, !(flags & DST_IS_USER)) || + if (!virt_addr_is_valid(dst, len, 1, !(flags & DST_IS_USER)) || !virt_addr_is_valid(src, len, 0, !(flags & SRC_IS_USER))) { mtx_lock_spin(&sc->mtx); sc->flags &= ~BUSY; @@ -275,8 +275,8 @@ dma_memcpy(void *dst, void *src, int len, int flags) if (tmplen <= 0 && descnb > 0) { sc->dmaring[descnb - 1].desc->next_desc = 0; - bus_dmamap_sync(sc->dmatag, - sc->dmaring[descnb - 1].map, + bus_dmamap_sync(sc->dmatag, + sc->dmaring[descnb - 1].map, BUS_DMASYNC_PREWRITE); } continue; @@ -301,8 +301,8 @@ dma_memcpy(void *dst, void *src, int len, int flags) if (tmplen > 0) { desc->next_desc = sc->dmaring[descnb + 1]. phys_addr; - bus_dmamap_sync(sc->dmatag, - sc->dmaring[descnb].map, + bus_dmamap_sync(sc->dmatag, + sc->dmaring[descnb].map, BUS_DMASYNC_PREWRITE); desc = sc->dmaring[descnb + 1].desc; descnb++; diff --git a/sys/arm/xscale/i80321/i80321_intr.h b/sys/arm/xscale/i80321/i80321_intr.h index 4e432dad1e39..bde0bac97246 100644 --- a/sys/arm/xscale/i80321/i80321_intr.h +++ b/sys/arm/xscale/i80321/i80321_intr.h @@ -33,7 +33,7 @@ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. - * + * * $FreeBSD$ * */ diff --git a/sys/arm/xscale/i80321/i80321_pci.c b/sys/arm/xscale/i80321/i80321_pci.c index 36c90d683dc7..dfb4c468116a 100644 --- a/sys/arm/xscale/i80321/i80321_pci.c +++ b/sys/arm/xscale/i80321/i80321_pci.c @@ -79,7 +79,7 @@ static int i80321_pci_attach(device_t dev) { - uint32_t busno; + uint32_t busno; struct i80321_pci_softc *sc = device_get_softc(dev); sc->sc_st = i80321_softc->sc_st; @@ -100,16 +100,16 @@ i80321_pci_attach(device_t dev) sc->sc_io_rman.rm_type = RMAN_ARRAY; sc->sc_io_rman.rm_descr = "I80321 PCI I/O Ports"; if (rman_init(&sc->sc_io_rman) != 0 || - rman_manage_region(&sc->sc_io_rman, - sc->sc_io, - sc->sc_io + + rman_manage_region(&sc->sc_io_rman, + sc->sc_io, + sc->sc_io + VERDE_OUT_XLATE_IO_WIN_SIZE) != 0) { panic("i80321_pci_probe: failed to set up I/O rman"); } sc->sc_mem_rman.rm_type = RMAN_ARRAY; sc->sc_mem_rman.rm_descr = "I80321 PCI Memory"; if (rman_init(&sc->sc_mem_rman) != 0 || - rman_manage_region(&sc->sc_mem_rman, + rman_manage_region(&sc->sc_mem_rman, 0, VERDE_OUT_XLATE_MEM_WIN_SIZE) != 0) { panic("i80321_pci_probe: failed to set up memory rman"); } @@ -325,7 +325,7 @@ i80321_pci_alloc_resource(device_t bus, device_t child, int type, int *rid, rman_release_resource(rv); return (NULL); } - } + } } return (rv); } @@ -340,7 +340,7 @@ i80321_pci_activate_resource(device_t bus, device_t child, int type, int rid, if (type == SYS_RES_MEMORY) { error = bus_space_map(rman_get_bustag(r), rman_get_bushandle(r), rman_get_size(r), 0, &p); - if (error) + if (error) return (error); rman_set_bushandle(r, p); @@ -350,8 +350,8 @@ i80321_pci_activate_resource(device_t bus, device_t child, int type, int rid, static int i80321_pci_setup_intr(device_t dev, device_t child, - struct resource *ires, int flags, driver_filter_t *filt, - driver_intr_t *intr, void *arg, void **cookiep) + struct resource *ires, int flags, driver_filter_t *filt, + driver_intr_t *intr, void *arg, void **cookiep) { return (BUS_SETUP_INTR(device_get_parent(dev), child, ires, flags, filt, intr, arg, cookiep)); diff --git a/sys/arm/xscale/i80321/i80321_space.c b/sys/arm/xscale/i80321/i80321_space.c index f741e895ea13..ebb0306a5775 100644 --- a/sys/arm/xscale/i80321/i80321_space.c +++ b/sys/arm/xscale/i80321/i80321_space.c @@ -279,7 +279,7 @@ i80321_io_bs_alloc(void *t, bus_addr_t rstart, bus_addr_t rend, panic("i80321_io_bs_alloc(): not implemented"); } -void +void i80321_io_bs_free(void *t, bus_space_handle_t bsh, bus_size_t size) { @@ -299,7 +299,7 @@ i80321_mem_bs_map(void *t, bus_addr_t bpa, bus_size_t size, int flags, endpa = round_page(bpa + size); *bshp = (vm_offset_t)pmap_mapdev(pa, endpa - pa); - + return (0); } @@ -324,7 +324,7 @@ i80321_mem_bs_alloc(void *t, bus_addr_t rstart, bus_addr_t rend, panic("i80321_mem_bs_alloc(): not implemented"); } -void +void i80321_mem_bs_free(void *t, bus_space_handle_t bsh, bus_size_t size) { diff --git a/sys/arm/xscale/i80321/i80321_timer.c b/sys/arm/xscale/i80321/i80321_timer.c index 78492b81f1af..98c1805df6ee 100644 --- a/sys/arm/xscale/i80321/i80321_timer.c +++ b/sys/arm/xscale/i80321/i80321_timer.c @@ -62,7 +62,7 @@ __FBSDID("$FreeBSD$"); #include #ifdef CPU_XSCALE_81342 -#define ICU_INT_TIMER0 (8) /* XXX: Can't include i81342reg.h because +#define ICU_INT_TIMER0 (8) /* XXX: Can't include i81342reg.h because definitions overrides the ones from i80321reg.h */ #endif @@ -79,7 +79,7 @@ static unsigned i80321_timer_get_timecount(struct timecounter *tc); static uint32_t counts_per_hz; -#if defined(XSCALE_DISABLE_CCNT) || defined(CPU_XSCALE_81342) +#if defined(XSCALE_DISABLE_CCNT) || defined(CPU_XSCALE_81342) static uint32_t offset; static uint32_t last = -1; #endif @@ -383,17 +383,17 @@ cpu_initclocks(void) oldirqstate = disable_interrupts(I32_bit); - irq = bus_alloc_resource(dev, SYS_RES_IRQ, &rid, + irq = bus_alloc_resource(dev, SYS_RES_IRQ, &rid, #ifdef CPU_XSCALE_81342 ICU_INT_TIMER0, ICU_INT_TIMER0, #else - ICU_INT_TMR0, ICU_INT_TMR0, + ICU_INT_TMR0, ICU_INT_TMR0, #endif 1, RF_ACTIVE); if (!irq) panic("Unable to setup the clock irq handler.\n"); else - bus_setup_intr(dev, irq, INTR_TYPE_CLK, clockhandler, NULL, + bus_setup_intr(dev, irq, INTR_TYPE_CLK, clockhandler, NULL, NULL, &ihl); tmr0_write(0); /* stop timer */ tisr_write(TISR_TMR0); /* clear interrupt */ diff --git a/sys/arm/xscale/i80321/i80321reg.h b/sys/arm/xscale/i80321/i80321reg.h index 5804e990dd49..53617f956582 100644 --- a/sys/arm/xscale/i80321/i80321reg.h +++ b/sys/arm/xscale/i80321/i80321reg.h @@ -38,8 +38,8 @@ * */ -#ifndef _ARM_XSCALE_I80321REG_H_ -#define _ARM_XSCALE_I80321REG_H_ +#ifndef _ARM_XSCALE_I80321REG_H_ +#define _ARM_XSCALE_I80321REG_H_ /* * Register definitions for the Intel 80321 (``Verde'') I/O processor, @@ -102,7 +102,7 @@ #if defined(CPU_XSCALE_80321) #define VERDE_AAU_BASE 0x0800 #define VERDE_AAU_SIZE 0x0100 -#endif +#endif #define VERDE_I2C_BASE 0x1680 #define VERDE_I2C_BASE0 (VERDE_I2C_BASE + 0x00) diff --git a/sys/arm/xscale/i80321/iq31244_7seg.c b/sys/arm/xscale/i80321/iq31244_7seg.c index 3ac090d8d976..3737094b2172 100644 --- a/sys/arm/xscale/i80321/iq31244_7seg.c +++ b/sys/arm/xscale/i80321/iq31244_7seg.c @@ -206,7 +206,7 @@ static const uint8_t digitmap[] = { SEG_D|SEG_E, }; -static uint8_t +static uint8_t iq80321_7seg_xlate(char c) { uint8_t rv; @@ -336,7 +336,7 @@ static const uint8_t snakemap[][2] = { static SYSCTL_NODE(_hw, OID_AUTO, sevenseg, CTLFLAG_RD, 0, "7 seg"); static int freq = 20; -SYSCTL_INT(_hw_sevenseg, OID_AUTO, freq, CTLFLAG_RW, &freq, 0, +SYSCTL_INT(_hw_sevenseg, OID_AUTO, freq, CTLFLAG_RW, &freq, 0, "7 Seg update frequency"); static void iq31244_7seg_snake(void) diff --git a/sys/arm/xscale/i80321/iq31244_machdep.c b/sys/arm/xscale/i80321/iq31244_machdep.c index ae642c56f801..9790c0b9ca88 100644 --- a/sys/arm/xscale/i80321/iq31244_machdep.c +++ b/sys/arm/xscale/i80321/iq31244_machdep.c @@ -40,7 +40,7 @@ * * Machine dependant functions for kernel setup * - * This file needs a lot of work. + * This file needs a lot of work. * * Created : 17/09/94 */ @@ -140,7 +140,7 @@ struct pv_addr minidataclean; #define IQ80321_OBIO_SIZE 0x00100000UL /* Static device mappings. */ static const struct pmap_devmap iq80321_devmap[] = { - /* + /* * Map the on-board devices VA == PA so that we can access them * with the MMU on or off. */ @@ -148,7 +148,7 @@ static const struct pmap_devmap iq80321_devmap[] = { IQ80321_OBIO_BASE, IQ80321_OBIO_BASE, IQ80321_OBIO_SIZE, - VM_PROT_READ|VM_PROT_WRITE, + VM_PROT_READ|VM_PROT_WRITE, PTE_NOCACHE, }, { @@ -158,7 +158,7 @@ static const struct pmap_devmap iq80321_devmap[] = { VM_PROT_READ|VM_PROT_WRITE, PTE_NOCACHE, }, - + { IQ80321_80321_VBASE, VERDE_PMMR_BASE, @@ -193,8 +193,8 @@ initarm(struct arm_boot_params *abp) vm_offset_t lastaddr; uint32_t memsize, memstart; + lastaddr = parse_boot_param(abp); set_cpufuncs(); - lastaddr = fake_preload_metadata(); pcpu_init(pcpup, 0, sizeof(struct pcpu)); PCPU_SET(curthread, &thread0); @@ -223,7 +223,7 @@ initarm(struct arm_boot_params *abp) kernel_pt_table[loop].pv_pa = freemempos + (loop % (PAGE_SIZE / L2_TABLE_SIZE_REAL)) * L2_TABLE_SIZE_REAL; - kernel_pt_table[loop].pv_va = + kernel_pt_table[loop].pv_va = kernel_pt_table[loop].pv_pa + 0x20000000; } } @@ -290,13 +290,13 @@ initarm(struct arm_boot_params *abp) (((uint32_t)(lastaddr) - KERNBASE - 0x200000) + L1_S_SIZE) & ~(L1_S_SIZE - 1), VM_PROT_READ|VM_PROT_WRITE, PTE_CACHE); freemem_after = ((int)lastaddr + PAGE_SIZE) & ~(PAGE_SIZE - 1); - afterkern = round_page(((vm_offset_t)lastaddr + L1_S_SIZE) & ~(L1_S_SIZE + afterkern = round_page(((vm_offset_t)lastaddr + L1_S_SIZE) & ~(L1_S_SIZE - 1)); for (i = 0; i < KERNEL_PT_AFKERNEL_NUM; i++) { pmap_link_l2pt(l1pagetable, afterkern + i * 0x00100000, &kernel_pt_table[KERNEL_PT_AFKERNEL + i]); } - pmap_map_entry(l1pagetable, afterkern, minidataclean.pv_pa, + pmap_map_entry(l1pagetable, afterkern, minidataclean.pv_pa, VM_PROT_READ|VM_PROT_WRITE, PTE_CACHE); @@ -305,7 +305,7 @@ initarm(struct arm_boot_params *abp) arm_add_smallalloc_pages((void *)(freemem_after), (void*)(freemem_after + PAGE_SIZE), afterkern - (freemem_after + PAGE_SIZE), 0); - + } #endif @@ -337,7 +337,7 @@ initarm(struct arm_boot_params *abp) * of the stack memory. */ - + set_stackptr(PSR_IRQ32_MODE, irqstack.pv_va + IRQ_STACK_SIZE * PAGE_SIZE); set_stackptr(PSR_ABT32_MODE, @@ -393,7 +393,7 @@ initarm(struct arm_boot_params *abp) dump_avail[2] = 0; dump_avail[3] = 0; - pmap_bootstrap(pmap_curmaxkvaddr, + pmap_bootstrap(pmap_curmaxkvaddr, 0xd0000000, &kernel_l1pt); msgbufp = (void*)msgbufpv.pv_va; msgbufinit(msgbufp, msgbufsize); diff --git a/sys/arm/xscale/i80321/iq80321.c b/sys/arm/xscale/i80321/iq80321.c index 7a875bf702ac..f43f8e409950 100644 --- a/sys/arm/xscale/i80321/iq80321.c +++ b/sys/arm/xscale/i80321/iq80321.c @@ -324,7 +324,7 @@ arm_unmask_irq(uintptr_t nb) void cpu_reset() -{ +{ (void) disable_interrupts(I32_bit|F32_bit); *(__volatile uint32_t *)(IQ80321_80321_VBASE + VERDE_ATU_BASE + ATU_PCSR) = PCSR_RIB | PCSR_RPB; @@ -351,7 +351,7 @@ iq80321_alloc_resource(device_t dev, device_t child, int type, int *rid, static int iq80321_setup_intr(device_t dev, device_t child, - struct resource *ires, int flags, driver_filter_t *filt, + struct resource *ires, int flags, driver_filter_t *filt, driver_intr_t *intr, void *arg, void **cookiep) { int error; diff --git a/sys/arm/xscale/i80321/obio.c b/sys/arm/xscale/i80321/obio.c index f6ed79143b67..566d6cd11ce1 100644 --- a/sys/arm/xscale/i80321/obio.c +++ b/sys/arm/xscale/i80321/obio.c @@ -120,7 +120,7 @@ obio_alloc_resource(device_t bus, device_t child, int type, int *rid, rv = rman_reserve_resource(rm, start, end, count, flags, child); - if (rv == NULL) + if (rv == NULL) return (NULL); if (type == SYS_RES_IRQ) return (rv); diff --git a/sys/arm/xscale/i8134x/crb_machdep.c b/sys/arm/xscale/i8134x/crb_machdep.c index 7d49d407750b..8567b174411e 100644 --- a/sys/arm/xscale/i8134x/crb_machdep.c +++ b/sys/arm/xscale/i8134x/crb_machdep.c @@ -40,7 +40,7 @@ * * Machine dependant functions for kernel setup * - * This file needs a lot of work. + * This file needs a lot of work. * * Created : 17/09/94 */ @@ -162,7 +162,7 @@ static const struct pmap_devmap iq81342_devmap[] = { VM_PROT_READ|VM_PROT_WRITE, PTE_NOCACHE, }, - { + { 0, 0, 0, @@ -189,8 +189,8 @@ initarm(struct arm_boot_params *abp) vm_offset_t lastaddr; uint32_t memsize, memstart; + lastaddr = parse_boot_param(abp); set_cpufuncs(); - lastaddr = fake_preload_metadata(); pcpu_init(pcpup, 0, sizeof(struct pcpu)); PCPU_SET(curthread, &thread0); @@ -219,7 +219,7 @@ initarm(struct arm_boot_params *abp) kernel_pt_table[loop].pv_pa = freemempos + (loop % (PAGE_SIZE / L2_TABLE_SIZE_REAL)) * L2_TABLE_SIZE_REAL; - kernel_pt_table[loop].pv_va = + kernel_pt_table[loop].pv_va = kernel_pt_table[loop].pv_pa + 0xc0000000; } } @@ -278,7 +278,7 @@ initarm(struct arm_boot_params *abp) (((uint32_t)(lastaddr) - KERNBASE - 0x200000) + L1_S_SIZE) & ~(L1_S_SIZE - 1), VM_PROT_READ|VM_PROT_WRITE, PTE_CACHE); freemem_after = ((int)lastaddr + PAGE_SIZE) & ~(PAGE_SIZE - 1); - afterkern = round_page(((vm_offset_t)lastaddr + L1_S_SIZE) & ~(L1_S_SIZE + afterkern = round_page(((vm_offset_t)lastaddr + L1_S_SIZE) & ~(L1_S_SIZE - 1)); for (i = 0; i < KERNEL_PT_AFKERNEL_NUM; i++) { pmap_link_l2pt(l1pagetable, afterkern + i * 0x00100000, @@ -291,7 +291,7 @@ initarm(struct arm_boot_params *abp) arm_add_smallalloc_pages((void *)(freemem_after), (void*)(freemem_after + PAGE_SIZE), afterkern - (freemem_after + PAGE_SIZE), 0); - + } #endif @@ -319,7 +319,7 @@ initarm(struct arm_boot_params *abp) * of the stack memory. */ - + set_stackptr(PSR_IRQ32_MODE, irqstack.pv_va + IRQ_STACK_SIZE * PAGE_SIZE); set_stackptr(PSR_ABT32_MODE, @@ -365,7 +365,7 @@ initarm(struct arm_boot_params *abp) dump_avail[2] = 0; dump_avail[3] = 0; - pmap_bootstrap(pmap_curmaxkvaddr, + pmap_bootstrap(pmap_curmaxkvaddr, 0xd0000000, &kernel_l1pt); msgbufp = (void*)msgbufpv.pv_va; msgbufinit(msgbufp, msgbufsize); diff --git a/sys/arm/xscale/i8134x/i81342.c b/sys/arm/xscale/i8134x/i81342.c index 44ec3fd6392c..2bfab78ccc12 100644 --- a/sys/arm/xscale/i8134x/i81342.c +++ b/sys/arm/xscale/i8134x/i81342.c @@ -425,8 +425,8 @@ i81342_alloc_resource(device_t dev, device_t child, int type, int *rid, } static int -i81342_setup_intr(device_t dev, device_t child, struct resource *ires, - int flags, driver_filter_t *filt, driver_intr_t *intr, void *arg, +i81342_setup_intr(device_t dev, device_t child, struct resource *ires, + int flags, driver_filter_t *filt, driver_intr_t *intr, void *arg, void **cookiep) { int error; diff --git a/sys/arm/xscale/i8134x/i81342_mcu.c b/sys/arm/xscale/i8134x/i81342_mcu.c index 045fe96d3c23..7a3d2bf946d5 100644 --- a/sys/arm/xscale/i8134x/i81342_mcu.c +++ b/sys/arm/xscale/i8134x/i81342_mcu.c @@ -38,7 +38,7 @@ __FBSDID("$FreeBSD$"); #include void -i81342_sdram_bounds(bus_space_tag_t bt, bus_space_handle_t bh, +i81342_sdram_bounds(bus_space_tag_t bt, bus_space_handle_t bh, vm_paddr_t *start, vm_size_t *size) { uint32_t reg; diff --git a/sys/arm/xscale/i8134x/i81342_pci.c b/sys/arm/xscale/i8134x/i81342_pci.c index 17cc7cda32aa..8bbcdba3bc50 100644 --- a/sys/arm/xscale/i8134x/i81342_pci.c +++ b/sys/arm/xscale/i8134x/i81342_pci.c @@ -180,7 +180,7 @@ i81342_pci_attach(device_t dev) sc->sc_io_rman.rm_type = RMAN_ARRAY; sc->sc_io_rman.rm_descr = "I81342 PCI I/O Ports"; if (rman_init(&sc->sc_io_rman) != 0 || - rman_manage_region(&sc->sc_io_rman, + rman_manage_region(&sc->sc_io_rman, sc->sc_is_atux ? IOP34X_PCIX_OIOBAR_VADDR : IOP34X_PCIE_OIOBAR_VADDR, (sc->sc_is_atux ? IOP34X_PCIX_OIOBAR_VADDR : @@ -190,7 +190,7 @@ i81342_pci_attach(device_t dev) sc->sc_mem_rman.rm_type = RMAN_ARRAY; sc->sc_mem_rman.rm_descr = "I81342 PCI Memory"; if (rman_init(&sc->sc_mem_rman) != 0 || - rman_manage_region(&sc->sc_mem_rman, + rman_manage_region(&sc->sc_mem_rman, 0, 0xffffffff) != 0) { panic("i81342_pci_attach: failed to set up memory rman"); } @@ -198,12 +198,12 @@ i81342_pci_attach(device_t dev) sc->sc_irq_rman.rm_descr = "i81342 PCI IRQs"; if (sc->sc_is_atux) { if (rman_init(&sc->sc_irq_rman) != 0 || - rman_manage_region(&sc->sc_irq_rman, ICU_INT_XINT0, + rman_manage_region(&sc->sc_irq_rman, ICU_INT_XINT0, ICU_INT_XINT3) != 0) panic("i83142_pci_attach: failed to set up IRQ rman"); } else { if (rman_init(&sc->sc_irq_rman) != 0 || - rman_manage_region(&sc->sc_irq_rman, ICU_INT_ATUE_MA, + rman_manage_region(&sc->sc_irq_rman, ICU_INT_ATUE_MA, ICU_INT_ATUE_MD) != 0) panic("i81342_pci_attach: failed to set up IRQ rman"); @@ -242,7 +242,7 @@ i81342_pci_conf_setup(struct i81342_pci_softc *sc, int bus, int slot, int func, *addr = (1 << (slot + 16)) | (slot << 11) | (func << 8) | reg; else - *addr = (bus << 16) | (slot << 11) | (func << 11) | + *addr = (bus << 16) | (slot << 11) | (func << 11) | reg | 1; } else { *addr = (bus << 24) | (slot << 19) | (func << 16) | reg; @@ -297,7 +297,7 @@ i81342_pci_read_config(device_t dev, u_int bus, u_int slot, u_int func, } static void -i81342_pci_write_config(device_t dev, u_int bus, u_int slot, u_int func, +i81342_pci_write_config(device_t dev, u_int bus, u_int slot, u_int func, u_int reg, u_int32_t data, int bytes) { struct i81342_pci_softc *sc = device_get_softc(dev); @@ -372,7 +372,7 @@ i81342_pci_alloc_resource(device_t bus, device_t child, int type, int *rid, rman_release_resource(rv); return (NULL); } - } + } } return (rv); diff --git a/sys/arm/xscale/i8134x/i81342_space.c b/sys/arm/xscale/i8134x/i81342_space.c index 50865f17e645..5b08ef624031 100644 --- a/sys/arm/xscale/i8134x/i81342_space.c +++ b/sys/arm/xscale/i8134x/i81342_space.c @@ -260,7 +260,7 @@ i81342_io_bs_alloc(void *t, bus_addr_t rstart, bus_addr_t rend, panic("i81342_io_bs_alloc(): not implemented"); } -void +void i81342_io_bs_free(void *t, bus_space_handle_t bsh, bus_size_t size) { @@ -337,7 +337,7 @@ i81342_mem_bs_alloc(void *t, bus_addr_t rstart, bus_addr_t rend, panic("i81342_mem_bs_alloc(): not implemented"); } -void +void i81342_mem_bs_free(void *t, bus_space_handle_t bsh, bus_size_t size) { diff --git a/sys/arm/xscale/i8134x/i81342reg.h b/sys/arm/xscale/i8134x/i81342reg.h index 5001d9628c67..c3429703ddfd 100644 --- a/sys/arm/xscale/i8134x/i81342reg.h +++ b/sys/arm/xscale/i8134x/i81342reg.h @@ -29,7 +29,7 @@ #ifndef I83142_REG_H_ #define I83142_REG_H_ /* Physical Memory Map */ -/* +/* * 0x000000000 - 0x07FFFFFFF SDRAM * 0x090100000 - 0x0901FFFFF ATUe Outbound IO Window * 0x0F0000000 - 0x0F1FFFFFF Flash @@ -62,7 +62,7 @@ #define IOP34X_ADMA_IE (1 << 0) /* Interrupt enable */ #define IOP34X_ADMA_TR (1 << 1) /* Transfert Direction */ -/* +/* * Source Destination * 00 Host I/O Interface Local Memory * 01 Local Memory Host I/O Interface diff --git a/sys/arm/xscale/i8134x/iq81342_7seg.c b/sys/arm/xscale/i8134x/iq81342_7seg.c index cc0d87137056..4fda6411d37d 100644 --- a/sys/arm/xscale/i8134x/iq81342_7seg.c +++ b/sys/arm/xscale/i8134x/iq81342_7seg.c @@ -207,7 +207,7 @@ static const uint8_t digitmap[] = { ~(SEG_D|SEG_E), }; -static uint8_t +static uint8_t iq81342_7seg_xlate(char c) { uint8_t rv; @@ -337,7 +337,7 @@ static const uint8_t snakemap[][2] = { static SYSCTL_NODE(_hw, OID_AUTO, sevenseg, CTLFLAG_RD, 0, "7 seg"); static int freq = 20; -SYSCTL_INT(_hw_sevenseg, OID_AUTO, freq, CTLFLAG_RW, &freq, 0, +SYSCTL_INT(_hw_sevenseg, OID_AUTO, freq, CTLFLAG_RW, &freq, 0, "7 Seg update frequency"); static void iq81342_7seg_snake(void) diff --git a/sys/arm/xscale/i8134x/obio.c b/sys/arm/xscale/i8134x/obio.c index 534f0e7a54df..b8bccce43a1a 100644 --- a/sys/arm/xscale/i8134x/obio.c +++ b/sys/arm/xscale/i8134x/obio.c @@ -127,7 +127,7 @@ obio_alloc_resource(device_t bus, device_t child, int type, int *rid, rv = rman_reserve_resource(rm, start, end, count, flags, child); - if (rv == NULL) + if (rv == NULL) return (NULL); if (type == SYS_RES_IRQ) return (rv); diff --git a/sys/arm/xscale/i8134x/uart_cpu_i81342.c b/sys/arm/xscale/i8134x/uart_cpu_i81342.c index 02e7050f78fc..2cb2902a9d1a 100644 --- a/sys/arm/xscale/i8134x/uart_cpu_i81342.c +++ b/sys/arm/xscale/i8134x/uart_cpu_i81342.c @@ -55,7 +55,7 @@ uart_cpu_getdev(int devtype, struct uart_devinfo *di) di->ops = uart_getops(&uart_ns8250_class); di->bas.chan = 0; di->bas.bst = &obio_bs_tag; - di->bas.regshft = 2; + di->bas.regshft = 2; di->bas.rclk = 33334000; di->baudrate = 115200; di->databits = 8; diff --git a/sys/arm/xscale/ixp425/avila_ata.c b/sys/arm/xscale/ixp425/avila_ata.c index 3c9efe88ea47..e63071420512 100644 --- a/sys/arm/xscale/ixp425/avila_ata.c +++ b/sys/arm/xscale/ixp425/avila_ata.c @@ -304,7 +304,7 @@ ata_avila_release_resource(device_t dev, device_t child, int type, int rid, } static int -ata_avila_setup_intr(device_t dev, device_t child, struct resource *irq, +ata_avila_setup_intr(device_t dev, device_t child, struct resource *irq, int flags, driver_filter_t *filt, driver_intr_t *function, void *argument, void **cookiep) { diff --git a/sys/arm/xscale/ixp425/avila_gpio.c b/sys/arm/xscale/ixp425/avila_gpio.c index c3deda9f6086..dc4e33a9437f 100644 --- a/sys/arm/xscale/ixp425/avila_gpio.c +++ b/sys/arm/xscale/ixp425/avila_gpio.c @@ -102,7 +102,7 @@ static struct avila_gpio_pin avila_gpio_pins[] = { /* * Helpers */ -static void avila_gpio_pin_configure(struct avila_gpio_softc *sc, +static void avila_gpio_pin_configure(struct avila_gpio_softc *sc, struct gpio_pin *pin, uint32_t flags); static int avila_gpio_pin_flags(struct avila_gpio_softc *sc, uint32_t pin); diff --git a/sys/arm/xscale/ixp425/avila_machdep.c b/sys/arm/xscale/ixp425/avila_machdep.c index a91fd20c9634..22b0e10e5569 100644 --- a/sys/arm/xscale/ixp425/avila_machdep.c +++ b/sys/arm/xscale/ixp425/avila_machdep.c @@ -40,7 +40,7 @@ * * Machine dependant functions for kernel setup * - * This file needs a lot of work. + * This file needs a lot of work. * * Created : 17/09/94 */ @@ -238,8 +238,8 @@ initarm(struct arm_boot_params *abp) vm_offset_t lastaddr; uint32_t memsize; + lastaddr = parse_boot_param(abp); set_cpufuncs(); /* NB: sets cputype */ - lastaddr = fake_preload_metadata(); pcpu_init(pcpup, 0, sizeof(struct pcpu)); PCPU_SET(curthread, &thread0); @@ -283,7 +283,7 @@ initarm(struct arm_boot_params *abp) kernel_pt_table[loop].pv_pa = freemempos + (loop % (PAGE_SIZE / L2_TABLE_SIZE_REAL)) * L2_TABLE_SIZE_REAL; - kernel_pt_table[loop].pv_va = + kernel_pt_table[loop].pv_va = kernel_pt_table[loop].pv_pa + (KERNVIRTADDR - KERNPHYSADDR); } @@ -364,7 +364,7 @@ initarm(struct arm_boot_params *abp) pmap_link_l2pt(l1pagetable, afterkern + i * 0x00100000, &kernel_pt_table[KERNEL_PT_AFKERNEL + i]); } - pmap_map_entry(l1pagetable, afterkern, minidataclean.pv_pa, + pmap_map_entry(l1pagetable, afterkern, minidataclean.pv_pa, VM_PROT_READ|VM_PROT_WRITE, PTE_CACHE); #ifdef ARM_USE_SMALL_ALLOC @@ -372,7 +372,7 @@ initarm(struct arm_boot_params *abp) arm_add_smallalloc_pages((void *)(freemem_after), (void*)(freemem_after + PAGE_SIZE), afterkern - (freemem_after + PAGE_SIZE), 0); - + } #endif diff --git a/sys/arm/xscale/ixp425/cambria_exp_space.c b/sys/arm/xscale/ixp425/cambria_exp_space.c index 506bf5c8a13b..30dfac5582ab 100644 --- a/sys/arm/xscale/ixp425/cambria_exp_space.c +++ b/sys/arm/xscale/ixp425/cambria_exp_space.c @@ -249,7 +249,7 @@ cambria_exp_bus_init(struct ixp425_softc *sc) cs3 = EXP_BUS_READ_4(sc, EXP_TIMING_CS3_OFFSET); /* XXX force slowest possible timings and byte mode */ EXP_BUS_WRITE_4(sc, EXP_TIMING_CS3_OFFSET, - cs3 | (EXP_T1|EXP_T2|EXP_T3|EXP_T4|EXP_T5) | + cs3 | (EXP_T1|EXP_T2|EXP_T3|EXP_T4|EXP_T5) | EXP_BYTE_EN | EXP_WR_EN | EXP_BYTE_RD16 | EXP_CS_EN); /* XXX force GPIO 3+4 for GPS+RS485 uarts */ diff --git a/sys/arm/xscale/ixp425/if_npe.c b/sys/arm/xscale/ixp425/if_npe.c index 9ac78a26dd3f..5063ac61ad02 100644 --- a/sys/arm/xscale/ixp425/if_npe.c +++ b/sys/arm/xscale/ixp425/if_npe.c @@ -89,8 +89,8 @@ __FBSDID("$FreeBSD$"); #include "miibus_if.h" -/* - * XXX: For the main bus dma tag. Can go away if the new method to get the +/* + * XXX: For the main bus dma tag. Can go away if the new method to get the * dma tag from the parent got MFC'd into RELENG_6. */ extern struct ixp425_softc *ixp425_softc; @@ -302,7 +302,7 @@ npe_probe(device_t dev) int unit = device_get_unit(dev); int npeid; - if (unit > 2 || + if (unit > 2 || (ixp4xx_read_feature_bits() & (unit == 0 ? EXP_FCTRL_ETH0 : EXP_FCTRL_ETH1)) == 0) return EINVAL; @@ -496,7 +496,7 @@ npe_dma_setup(struct npe_softc *sc, struct npedma *dma, } /* DMA tag and map for the NPE buffers */ - error = bus_dma_tag_create(ixp425_softc->sc_dmat, sizeof(uint32_t), 0, + error = bus_dma_tag_create(ixp425_softc->sc_dmat, sizeof(uint32_t), 0, BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, NULL, NULL, nbuf * sizeof(struct npehwbuf), 1, nbuf * sizeof(struct npehwbuf), 0, @@ -1445,7 +1445,7 @@ npestop(struct npe_softc *sc) /* * The MAC core rx/tx disable may leave the MAC hardware in an - * unpredictable state. A hw reset is executed before resetting + * unpredictable state. A hw reset is executed before resetting * all the MAC parameters to a known value. */ WR4(sc, NPE_MAC_CORE_CNTRL, NPE_CORE_RESET); diff --git a/sys/arm/xscale/ixp425/if_npereg.h b/sys/arm/xscale/ixp425/if_npereg.h index 6f14ef4f3922..a7422c71a408 100644 --- a/sys/arm/xscale/ixp425/if_npereg.h +++ b/sys/arm/xscale/ixp425/if_npereg.h @@ -32,7 +32,7 @@ /* * Copyright (c) 2001-2005, Intel Corporation. * All rights reserved. - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -44,8 +44,8 @@ * 3. Neither the name of the Intel Corporation nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. - * - * + * + * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE @@ -253,19 +253,19 @@ struct npestats { /* NB: shorthands for mii bus mdio routines */ #define NPE_MAC_MDIO_CMD NPE_MAC_MDIO_CMD_1 #define NPE_MAC_MDIO_STS NPE_MAC_MDIO_STS_1 - + #define NPE_MII_GO (1<<31) #define NPE_MII_WRITE (1<<26) -#define NPE_MII_TIMEOUT_10TH_SECS 5 +#define NPE_MII_TIMEOUT_10TH_SECS 5 #define NPE_MII_10TH_SEC_IN_MILLIS 100 #define NPE_MII_READ_FAIL (1<<31) - + #define NPE_MII_PHY_DEF_DELAY 300 /* max delay before link up, etc. */ #define NPE_MII_PHY_NO_DELAY 0x0 /* do not delay */ #define NPE_MII_PHY_NULL 0xff /* PHY is not present */ #define NPE_MII_PHY_DEF_ADDR 0x0 /* default PHY's logical address */ -/* Register definition */ +/* Register definition */ #define NPE_MII_CTRL_REG 0x0 /* Control Register */ #define NPE_MII_STAT_REG 0x1 /* Status Register */ #define NPE_MII_PHY_ID1_REG 0x2 /* PHY identifier 1 Register */ diff --git a/sys/arm/xscale/ixp425/ixp425.c b/sys/arm/xscale/ixp425/ixp425.c index 1b56642f192b..efe9aa3edeaa 100644 --- a/sys/arm/xscale/ixp425/ixp425.c +++ b/sys/arm/xscale/ixp425/ixp425.c @@ -177,7 +177,7 @@ ixp425_set_gpio(struct ixp425_softc *sc, int pin, int type) gpiotr | GPIO_TYPE(pin, type)); /* configure gpio line as an input */ - GPIO_CONF_WRITE_4(sc, IXP425_GPIO_GPOER, + GPIO_CONF_WRITE_4(sc, IXP425_GPIO_GPOER, GPIO_CONF_READ_4(sc, IXP425_GPIO_GPOER) | (1<sc_dmat)) panic("%s: failed to create dma tag", __func__); @@ -534,7 +534,7 @@ ixp425_alloc_resource(device_t dev, device_t child, int type, int *rid, device_printf(child, "%s: assign 0x%lx:0x%lx%s\n", __func__, start, end - start, - vtrans->isa4x ? " A4X" : + vtrans->isa4x ? " A4X" : vtrans->isslow ? " SLOW" : ""); } } else @@ -602,7 +602,7 @@ ixp425_activate_resource(device_t dev, device_t child, int type, int rid, static int ixp425_deactivate_resource(device_t bus, device_t child, int type, int rid, - struct resource *r) + struct resource *r) { /* NB: no private resources, just deactive */ return (rman_deactivate_resource(r)); @@ -635,8 +635,8 @@ update_masks(uint32_t mask, uint32_t mask2) static int ixp425_setup_intr(device_t dev, device_t child, - struct resource *res, int flags, driver_filter_t *filt, - driver_intr_t *intr, void *arg, void **cookiep) + struct resource *res, int flags, driver_filter_t *filt, + driver_intr_t *intr, void *arg, void **cookiep) { uint32_t mask, mask2; int error; diff --git a/sys/arm/xscale/ixp425/ixp425_iic.c b/sys/arm/xscale/ixp425/ixp425_iic.c index 342a6a50052b..bb66236b6967 100644 --- a/sys/arm/xscale/ixp425/ixp425_iic.c +++ b/sys/arm/xscale/ixp425/ixp425_iic.c @@ -100,7 +100,7 @@ ixpiic_callback(device_t dev, int index, caddr_t data) return (0); } -static int +static int ixpiic_getscl(device_t dev) { struct ixpiic_softc *sc = ixpiic_sc; @@ -114,7 +114,7 @@ ixpiic_getscl(device_t dev) return (reg & GPIO_I2C_SCL_BIT); } -static int +static int ixpiic_getsda(device_t dev) { struct ixpiic_softc *sc = ixpiic_sc; @@ -128,7 +128,7 @@ ixpiic_getsda(device_t dev) return (reg & GPIO_I2C_SDA_BIT); } -static void +static void ixpiic_setsda(device_t dev, int val) { struct ixpiic_softc *sc = ixpiic_sc; @@ -143,7 +143,7 @@ ixpiic_setsda(device_t dev, int val) DELAY(I2C_DELAY); } -static void +static void ixpiic_setscl(device_t dev, int val) { struct ixpiic_softc *sc = ixpiic_sc; diff --git a/sys/arm/xscale/ixp425/ixp425_npe.c b/sys/arm/xscale/ixp425/ixp425_npe.c index 53f588dca173..da8384d7963d 100644 --- a/sys/arm/xscale/ixp425/ixp425_npe.c +++ b/sys/arm/xscale/ixp425/ixp425_npe.c @@ -30,7 +30,7 @@ /*- * Copyright (c) 2001-2005, Intel Corporation. * All rights reserved. - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -42,8 +42,8 @@ * 3. Neither the name of the Intel Corporation nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. - * - * + * + * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE @@ -135,7 +135,7 @@ static struct ixpnpe_softc *npes[NPE_MAX]; /* * masks used to extract address info from State information context - * register addresses as read from microcode image + * register addresses as read from microcode image */ #define IX_NPEDL_MASK_STATE_ADDR_CTXT_REG 0x0000000F #define IX_NPEDL_MASK_STATE_ADDR_CTXT_NUM 0x000000F0 @@ -332,7 +332,7 @@ ixpnpe_attach(device_t dev, int npeid) NULL, ixpnpe_intr, sc, &sc->sc_ih); /* * Enable output fifo interrupts (NB: must also set OFIFO Write Enable) - */ + */ npe_reg_write(sc, IX_NPECTL, npe_reg_read(sc, IX_NPECTL) | (IX_NPECTL_OFE | IX_NPECTL_OFWE)); @@ -347,7 +347,7 @@ ixpnpe_detach(struct ixpnpe_softc *sc) if (--sc->sc_nrefs == 0) { npes[sc->sc_npeid] = NULL; - /* disable output fifo interrupts */ + /* disable output fifo interrupts */ npe_reg_write(sc, IX_NPECTL, npe_reg_read(sc, IX_NPECTL) &~ (IX_NPECTL_OFE | IX_NPECTL_OFWE)); @@ -671,7 +671,7 @@ npe_load_stateinfo(struct ixpnpe_softc *sc, const IxNpeDlNpeMgrStateInfoBlock *bp, int verify) { int i, nentries, error; - + npe_cpu_step_save(sc); /* for each state-info context register entry in block */ @@ -683,7 +683,7 @@ npe_load_stateinfo(struct ixpnpe_softc *sc, uint32_t addrInfo = bp->ctxtRegEntry[i].addressInfo; uint32_t reg = (addrInfo & IX_NPEDL_MASK_STATE_ADDR_CTXT_REG); - uint32_t cNum = (addrInfo & IX_NPEDL_MASK_STATE_ADDR_CTXT_NUM) >> + uint32_t cNum = (addrInfo & IX_NPEDL_MASK_STATE_ADDR_CTXT_NUM) >> IX_NPEDL_OFFSET_STATE_ADDR_CTXT_NUM; /* error-check Context Register No. and Context Number values */ @@ -692,13 +692,13 @@ npe_load_stateinfo(struct ixpnpe_softc *sc, "invalid Context Register %u\n", reg); error = EINVAL; break; - } + } if (!(0 <= cNum && cNum < IX_NPEDL_CTXT_NUM_MAX)) { device_printf(sc->sc_dev, "invalid Context Number %u\n", cNum); error = EINVAL; break; - } + } /* NOTE that there is no STEVT register for Context 0 */ if (cNum == 0 && reg == IX_NPEDL_CTXT_REG_STEVT) { device_printf(sc->sc_dev, @@ -735,7 +735,7 @@ npe_load_image(struct ixpnpe_softc *sc, /* * Read Download Map, checking each block type and calling - * appropriate function to perform download + * appropriate function to perform download */ error = 0; downloadMap = (const IxNpeDlNpeMgrDownloadMap *) imageCodePtr; @@ -844,7 +844,7 @@ npe_cpu_reset(struct ixpnpe_softc *sc) (ixNpeConfigCtrlRegVal & IX_NPEDL_PARITY_BIT_MASK)); DPRINTFn(2, sc->sc_dev, "%s: dis parity int, CTL => 0x%x\n", __func__, ixNpeConfigCtrlRegVal & IX_NPEDL_PARITY_BIT_MASK); - + npe_cpu_step_save(sc); /* @@ -873,7 +873,7 @@ npe_cpu_reset(struct ixpnpe_softc *sc) DPRINTF(sc->sc_dev, "%s: cannot step (1), error %u\n", __func__, error); npe_cpu_step_restore(sc); - return error; + return error; } } @@ -888,10 +888,10 @@ npe_cpu_reset(struct ixpnpe_softc *sc) DPRINTF(sc->sc_dev, "%s: cannot step (2), error %u\n", __func__, error); npe_cpu_step_restore(sc); - return error; + return error; } - /* + /* * Reset the physical registers in the NPE register file: * Note: no need to save/restore REGMAP for Context 0 here * since all Context Store regs are reset in subsequent code. @@ -965,7 +965,7 @@ npe_cpu_reset(struct ixpnpe_softc *sc) error = npe_cpu_stop(sc); /* restore NPE configuration bus Control Register - Parity Settings */ - npe_reg_write(sc, IX_NPEDL_REG_OFFSET_CTL, + npe_reg_write(sc, IX_NPEDL_REG_OFFSET_CTL, (ixNpeConfigCtrlRegVal & IX_NPEDL_CONFIG_CTRL_REG_MASK)); DPRINTFn(2, sc->sc_dev, "%s: restore CTL => 0x%x\n", __func__, npe_reg_read(sc, IX_NPEDL_REG_OFFSET_CTL)); @@ -1189,10 +1189,10 @@ npe_cpu_step(struct ixpnpe_softc *sc, uint32_t npeInstruction, newWatchcount == oldWatchcount; tries++) { /* Watch Count register incr's when NPE completes an inst */ newWatchcount = npe_reg_read(sc, IX_NPEDL_REG_OFFSET_WC); - } + } return (tries < IX_NPE_DL_MAX_NUM_OF_RETRIES) ? 0 : EIO; #undef IX_NPE_DL_MAX_NUM_OF_RETRIES -} +} static void npe_cpu_step_restore(struct ixpnpe_softc *sc) @@ -1283,7 +1283,7 @@ npe_logical_reg_write(struct ixpnpe_softc *sc, uint32_t regAddr, uint32_t regVal } else { uint32_t npeInstruction; - switch (regSize) { + switch (regSize) { case IX_NPEDL_REG_SIZE_BYTE: npeInstruction = IX_NPEDL_INSTR_WR_REG_BYTE; regVal &= 0xff; @@ -1353,7 +1353,7 @@ npe_physical_reg_write(struct ixpnpe_softc *sc, /* regAddr = 0 or 4 */ regAddr = (regAddr & IX_NPEDL_MASK_PHYS_REG_ADDR_LOGICAL_ADDR) * sizeof(uint32_t); - error = npe_logical_reg_write(sc, regAddr, regValue, + error = npe_logical_reg_write(sc, regAddr, regValue, IX_NPEDL_REG_SIZE_WORD, 0, verify); } return error; diff --git a/sys/arm/xscale/ixp425/ixp425_npereg.h b/sys/arm/xscale/ixp425/ixp425_npereg.h index 6a22d05f79a2..069e9d760f56 100644 --- a/sys/arm/xscale/ixp425/ixp425_npereg.h +++ b/sys/arm/xscale/ixp425/ixp425_npereg.h @@ -32,7 +32,7 @@ /*- * Copyright (c) 2001-2005, Intel Corporation. * All rights reserved. - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -44,8 +44,8 @@ * 3. Neither the name of the Intel Corporation nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. - * - * + * + * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE @@ -93,7 +93,7 @@ (((imageId) >> 0) & 0xff) /* - * Instruction and Data Memory Size (in words) for each NPE + * Instruction and Data Memory Size (in words) for each NPE */ #define IX_NPEDL_INS_MEMSIZE_WORDS_NPEA 4096 #define IX_NPEDL_INS_MEMSIZE_WORDS_NPEB 2048 @@ -135,7 +135,7 @@ #define IX_NPEDL_MASK_STAT_IFNE 0x00080000 /* IFNE bit */ /* - * EXCTL (Execution Control) Register commands + * EXCTL (Execution Control) Register commands */ #define IX_NPEDL_EXCTL_CMD_NPE_STEP 0x01 /* Step 1 instruction */ #define IX_NPEDL_EXCTL_CMD_NPE_START 0x02 /* Start execution */ @@ -164,7 +164,7 @@ #define IX_NPEDL_EXCTL_STATUS_ECS_K 0x00800000 /* pipeline Klean */ /* - * Executing Context Stack (ECS) level registers + * Executing Context Stack (ECS) level registers */ #define IX_NPEDL_ECS_BG_CTXT_REG_0 0x00 /* reg 0 @ bg ctx */ #define IX_NPEDL_ECS_BG_CTXT_REG_1 0x01 /* reg 1 @ bg ctx */ @@ -220,14 +220,14 @@ * Bit-Offsets from LSB of particular bit-fields in Execution Access registers. */ -#define IX_NPEDL_OFFSET_ECS_REG_0_NEXTPC 16 +#define IX_NPEDL_OFFSET_ECS_REG_0_NEXTPC 16 #define IX_NPEDL_OFFSET_ECS_REG_0_LDUR 8 #define IX_NPEDL_OFFSET_ECS_REG_1_CCTXT 16 #define IX_NPEDL_OFFSET_ECS_REG_1_SELCTXT 0 /* - * NPE core & co-processor instruction templates to load into NPE Instruction + * NPE core & co-processor instruction templates to load into NPE Instruction * Register, for read/write of NPE register file registers. */ @@ -268,7 +268,7 @@ * Write a 16-bit NPE internal logical register. * NPE Assembler instruction: "cprd32 d0 &&& DBG_RdInFIFO" */ -#define IX_NPEDL_INSTR_RD_FIFO 0x0F888220 +#define IX_NPEDL_INSTR_RD_FIFO 0x0F888220 /* * Reset Mailbox (MBST) register @@ -292,7 +292,7 @@ * Mask the bits of 16-bit data value (least-sig 5 bits) to be used in * SRC field of immediate-mode NPE instruction */ -#define IX_NPEDL_MASK_IMMED_INSTR_SRC_DATA 0x1F +#define IX_NPEDL_MASK_IMMED_INSTR_SRC_DATA 0x1F /** * Mask the bits of 16-bit data value (most-sig 11 bits) to be used in diff --git a/sys/arm/xscale/ixp425/ixp425_pci.c b/sys/arm/xscale/ixp425/ixp425_pci.c index ff54a21316a1..c17eb1e45b02 100644 --- a/sys/arm/xscale/ixp425/ixp425_pci.c +++ b/sys/arm/xscale/ixp425/ixp425_pci.c @@ -132,10 +132,10 @@ ixppcib_attach(device_t dev) /* NB: PCI dma window is 64M so anything above must be bounced */ if (bus_dma_tag_create(NULL, 1, 0, IXP425_AHB_OFFSET + 64 * 1024 * 1024, - BUS_SPACE_MAXADDR, NULL, NULL, 0xffffffff, 0xff, 0xffffffff, 0, + BUS_SPACE_MAXADDR, NULL, NULL, 0xffffffff, 0xff, 0xffffffff, 0, NULL, NULL, &sc->sc_dmat)) panic("couldn't create the PCI dma tag !"); - /* + /* * The PCI bus can only address 64MB. However, due to the way our * implementation of busdma works, busdma can't tell if a device * is a PCI device or not. So defaults to the PCI dma tag, which @@ -155,7 +155,7 @@ ixppcib_attach(device_t dev) sc->sc_io_rman.rm_type = RMAN_ARRAY; sc->sc_io_rman.rm_descr = "IXP4XX PCI I/O Ports"; if (rman_init(&sc->sc_io_rman) != 0 || - rman_manage_region(&sc->sc_io_rman, 0, + rman_manage_region(&sc->sc_io_rman, 0, IXP425_PCI_IO_SIZE) != 0) { panic("ixppcib_probe: failed to set up I/O rman"); } @@ -259,7 +259,7 @@ ixppcib_write_ivar(device_t dev, device_t child, int which, uintptr_t value) static int ixppcib_setup_intr(device_t dev, device_t child, struct resource *ires, - int flags, driver_filter_t *filt, driver_intr_t *intr, void *arg, + int flags, driver_filter_t *filt, driver_intr_t *intr, void *arg, void **cookiep) { @@ -318,11 +318,11 @@ ixppcib_alloc_resource(device_t bus, device_t child, int type, int *rid, static int ixppcib_activate_resource(device_t bus, device_t child, int type, int rid, - struct resource *r) + struct resource *r) { struct ixppcib_softc *sc = device_get_softc(bus); - + switch (type) { case SYS_RES_IOPORT: rman_set_bustag(r, &sc->sc_pci_iot); @@ -340,7 +340,7 @@ ixppcib_activate_resource(device_t bus, device_t child, int type, int rid, static int ixppcib_deactivate_resource(device_t bus, device_t child, int type, int rid, - struct resource *r) + struct resource *r) { device_printf(bus, "%s called deactivate_resource (unexpected)\n", diff --git a/sys/arm/xscale/ixp425/ixp425_pci_space.c b/sys/arm/xscale/ixp425/ixp425_pci_space.c index 6ee2a1d33180..4b0ca8168dc8 100644 --- a/sys/arm/xscale/ixp425/ixp425_pci_space.c +++ b/sys/arm/xscale/ixp425/ixp425_pci_space.c @@ -443,7 +443,7 @@ ixp425_pci_mem_bs_alloc(void *t, bus_addr_t rstart, bus_addr_t rend, panic("ixp425_mem_bs_alloc(): not implemented\n"); } -void +void ixp425_pci_mem_bs_free(void *t, bus_space_handle_t bsh, bus_size_t size) { panic("ixp425_mem_bs_free(): not implemented\n"); diff --git a/sys/arm/xscale/ixp425/ixp425_qmgr.c b/sys/arm/xscale/ixp425/ixp425_qmgr.c index f8792a85f8c3..b6fe434564e8 100644 --- a/sys/arm/xscale/ixp425/ixp425_qmgr.c +++ b/sys/arm/xscale/ixp425/ixp425_qmgr.c @@ -30,7 +30,7 @@ /*- * Copyright (c) 2001-2005, Intel Corporation. * All rights reserved. - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -42,8 +42,8 @@ * 3. Neither the name of the Intel Corporation nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. - * - * + * + * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE @@ -124,7 +124,7 @@ struct qmgrInfo { #if 0 /* NB: needed only for A0 parts */ u_int statusWordOffset; /* status word offset */ - uint32_t statusMask; /* status mask */ + uint32_t statusMask; /* status mask */ uint32_t statusCheckValue; /* status check value */ #endif }; @@ -257,7 +257,7 @@ ixpqmgr_attach(device_t dev) qi->cb = dummyCallback; qi->priority = IX_QMGR_Q_PRIORITY_0; /* default priority */ - /* + /* * There are two interrupt registers, 32 bits each. One * for the lower queues(0-31) and one for the upper * queues(32-63). Therefore need to mod by 32 i.e the @@ -280,17 +280,17 @@ ixpqmgr_attach(device_t dev) if (i < IX_QMGR_MIN_QUEUPP_QID) { /* AQM Q underflow/overflow status reg address, per queue */ qi->qUOStatRegAddr = IX_QMGR_QUEUOSTAT0_OFFSET + - ((i / IX_QMGR_QUEUOSTAT_NUM_QUE_PER_WORD) * + ((i / IX_QMGR_QUEUOSTAT_NUM_QUE_PER_WORD) * sizeof(uint32_t)); /* AQM Q underflow status bit masks for status reg per queue */ - qi->qUflowStatBitMask = + qi->qUflowStatBitMask = (IX_QMGR_UNDERFLOW_BIT_OFFSET + 1) << ((i & (IX_QMGR_QUEUOSTAT_NUM_QUE_PER_WORD - 1)) * (32 / IX_QMGR_QUEUOSTAT_NUM_QUE_PER_WORD)); /* AQM Q overflow status bit masks for status reg, per queue */ - qi->qOflowStatBitMask = + qi->qOflowStatBitMask = (IX_QMGR_OVERFLOW_BIT_OFFSET + 1) << ((i & (IX_QMGR_QUEUOSTAT_NUM_QUE_PER_WORD - 1)) * (32 / IX_QMGR_QUEUOSTAT_NUM_QUE_PER_WORD)); @@ -302,7 +302,7 @@ ixpqmgr_attach(device_t dev) /* AQM Q lower-group (0-31) status register bit offset */ qi->qStatBitsOffset = - (i & (IX_QMGR_QUELOWSTAT_NUM_QUE_PER_WORD - 1)) * + (i & (IX_QMGR_QUELOWSTAT_NUM_QUE_PER_WORD - 1)) * (32 / IX_QMGR_QUELOWSTAT_NUM_QUE_PER_WORD); } else { /* AQM Q upper-group (32-63), only */ qi->qUOStatRegAddr = 0; /* XXX */ @@ -405,7 +405,7 @@ ixpqmgr_qwrite(int qId, uint32_t entry) int qPtrs; /* - * Read the status twice because the status may + * Read the status twice because the status may * not be immediately ready after the write operation */ if ((status & qi->qOflowStatBitMask) || @@ -432,12 +432,12 @@ ixpqmgr_qwrite(int qId, uint32_t entry) DPRINTFn(2, sc->sc_dev, "%s(%u, 0x%x) Q full, no overflow status, qConfig 0x%x\n", __func__, qId, entry, qPtrs); - qPtrs = (qPtrs - (qPtrs >> 7)) & 0x7f; + qPtrs = (qPtrs - (qPtrs >> 7)) & 0x7f; if (qPtrs == 0) { /* - * The queue may be full at the time of the - * snapshot. Next access will check + * The queue may be full at the time of the + * snapshot. Next access will check * the overflow status again. */ qi->qWriteCount = qSize; @@ -460,7 +460,7 @@ ixpqmgr_qread(int qId, uint32_t *entry) *entry = aqm_reg_read(sc, off); /* - * Reset the current read count : next access to the read function + * Reset the current read count : next access to the read function * will force a underflow status check. */ qi->qReadCount = 0; @@ -499,7 +499,7 @@ ixpqmgr_qreadm(int qId, uint32_t n, uint32_t *p) *p = entry; /* - * Reset the current read count : next access to the read function + * Reset the current read count : next access to the read function * will force a underflow status check. */ qi->qReadCount = 0; @@ -667,7 +667,7 @@ ixpqmgr_rebuild(struct ixpqmgr_softc *sc) /* low priority q's */ for (q = 0; q < IX_QMGR_MIN_QUEUPP_QID; q++) { qi = &sc->qinfo[q]; - if (qi->priority == pri) { + if (qi->priority == pri) { /* * Build the priority table bitmask which match the * queues of the first half of the priority table. @@ -712,8 +712,8 @@ ixpqmgr_rebuild(struct ixpqmgr_softc *sc) * 0x00000001 31 * 0x00000000 32 * - * The C version of this function is used as a replacement - * for system not providing the equivalent of the CLZ + * The C version of this function is used as a replacement + * for system not providing the equivalent of the CLZ * assembly language instruction. * * Note that this version is big-endian @@ -819,7 +819,7 @@ aqm_calc_statuscheck(int qId, IxQMgrSourceId srcSel) { struct qmgrInfo *qi = &qinfo[qId]; uint32_t shiftVal; - + if (qId < IX_QMGR_MIN_QUEUPP_QID) { switch (srcSel) { case IX_QMGR_Q_SOURCE_ID_E: @@ -863,7 +863,7 @@ aqm_calc_statuscheck(int qId, IxQMgrSourceId srcSel) /* One nibble of status per queue so need to shift the * check value and mask out to the correct position. */ - shiftVal = (qId % IX_QMGR_QUELOWSTAT_NUM_QUE_PER_WORD) * + shiftVal = (qId % IX_QMGR_QUELOWSTAT_NUM_QUE_PER_WORD) * IX_QMGR_QUELOWSTAT_BITS_PER_Q; /* Calculate the which status word to check from the qId, @@ -970,7 +970,7 @@ aqm_qcfg(struct ixpqmgr_softc *sc, int qId, u_int ne, u_int nf) /* baseAddress, calculated relative to start address */ baseAddress = sc->aqmFreeSramAddress; - + /* base address must be word-aligned */ KASSERT((baseAddress % IX_QMGR_BASE_ADDR_16_WORD_ALIGN) == 0, ("address not word-aligned")); @@ -1007,7 +1007,7 @@ aqm_srcsel_write(struct ixpqmgr_softc *sc, int qId, int sourceId) if (off == IX_QMGR_INT0SRCSELREG0_OFFSET && qId == 0) { /* Queue 0 at INT0SRCSELREG should not corrupt the value bit-3 */ v |= 0x7; - } else { + } else { const uint32_t bpq = 32 / IX_QMGR_INTSRC_NUM_QUE_PER_WORD; uint32_t mask; int qshift; @@ -1065,7 +1065,7 @@ aqm_reset(struct ixpqmgr_softc *sc) IX_QMGR_INT0SRCSELREG_RESET_VALUE); aqm_reg_write(sc, IX_QMGR_INT0SRCSELREG3_OFFSET, IX_QMGR_INT0SRCSELREG_RESET_VALUE); - + /* Reset queue interrupt enable register 0..1 */ aqm_reg_write(sc, IX_QMGR_QUEIEREG0_OFFSET, IX_QMGR_QUEIEREG_RESET_VALUE); diff --git a/sys/arm/xscale/ixp425/ixp425_qmgr.h b/sys/arm/xscale/ixp425/ixp425_qmgr.h index f593fd19f5b7..0eb6dc7ed7bf 100644 --- a/sys/arm/xscale/ixp425/ixp425_qmgr.h +++ b/sys/arm/xscale/ixp425/ixp425_qmgr.h @@ -32,7 +32,7 @@ /*- * Copyright (c) 2001-2005, Intel Corporation. * All rights reserved. - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -44,8 +44,8 @@ * 3. Neither the name of the Intel Corporation nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. - * - * + * + * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE @@ -148,7 +148,7 @@ (((qId) * (IX_QMGR_QUEACC_SIZE * sizeof(uint32_t)))\ + IX_QMGR_QUEACC0_OFFSET) -/* +/* * Bit location of bit-3 of INT0SRCSELREG0 register to enabled * sticky interrupt register. */ diff --git a/sys/arm/xscale/ixp425/ixp425reg.h b/sys/arm/xscale/ixp425/ixp425reg.h index 570dbc3c980f..a0d14728d358 100644 --- a/sys/arm/xscale/ixp425/ixp425reg.h +++ b/sys/arm/xscale/ixp425/ixp425reg.h @@ -65,7 +65,7 @@ * 4000 0000 --------------------------- * SDRAM * 0000 0000 --------------------------- - */ + */ /* * Virtual memory map for the Intel IXP425/IXP435 integrated devices @@ -613,7 +613,7 @@ #define PMNC_EVCNT2_SHIFT 16 #define PMNC_EVCNT3_SHIFT 24 -/* +/* * Queue Manager */ #define IXP425_QMGR_HWBASE 0x60000000UL diff --git a/sys/arm/xscale/pxa/if_smc_smi.c b/sys/arm/xscale/pxa/if_smc_smi.c index 1896a0a3f8c9..d73504139995 100644 --- a/sys/arm/xscale/pxa/if_smc_smi.c +++ b/sys/arm/xscale/pxa/if_smc_smi.c @@ -37,7 +37,7 @@ __FBSDID("$FreeBSD$"); #include #include -#include +#include #include #include #include diff --git a/sys/arm/xscale/pxa/pxa_machdep.c b/sys/arm/xscale/pxa/pxa_machdep.c index fb89a067dba1..da5787ac1779 100644 --- a/sys/arm/xscale/pxa/pxa_machdep.c +++ b/sys/arm/xscale/pxa/pxa_machdep.c @@ -40,7 +40,7 @@ * * Machine dependant functions for kernel setup * - * This file needs a lot of work. + * This file needs a lot of work. * * Created : 17/09/94 */ @@ -141,7 +141,7 @@ static void pxa_probe_sdram(bus_space_tag_t, bus_space_handle_t, /* Static device mappings. */ static const struct pmap_devmap pxa_devmap[] = { - /* + /* * Map the on-board devices up into the KVA region so we don't muck * up user-space. */ @@ -174,9 +174,8 @@ initarm(struct arm_boot_params *abp) int i, j; uint32_t memsize[PXA2X0_SDRAM_BANKS], memstart[PXA2X0_SDRAM_BANKS]; + lastaddr = parse_boot_param(abp); set_cpufuncs(); - - lastaddr = fake_preload_metadata(); pcpu_init(pcpup, 0, sizeof(struct pcpu)); PCPU_SET(curthread, &thread0); @@ -205,7 +204,7 @@ initarm(struct arm_boot_params *abp) kernel_pt_table[loop].pv_pa = freemempos + (loop % (PAGE_SIZE / L2_TABLE_SIZE_REAL)) * L2_TABLE_SIZE_REAL; - kernel_pt_table[loop].pv_va = + kernel_pt_table[loop].pv_va = kernel_pt_table[loop].pv_pa + 0x20000000; } } @@ -280,7 +279,7 @@ initarm(struct arm_boot_params *abp) pmap_link_l2pt(l1pagetable, afterkern + i * 0x00100000, &kernel_pt_table[KERNEL_PT_AFKERNEL + i]); } - pmap_map_entry(l1pagetable, afterkern, minidataclean.pv_pa, + pmap_map_entry(l1pagetable, afterkern, minidataclean.pv_pa, VM_PROT_READ|VM_PROT_WRITE, PTE_CACHE); #ifdef ARM_USE_SMALL_ALLOC diff --git a/sys/arm/xscale/pxa/pxareg.h b/sys/arm/xscale/pxa/pxareg.h index bdd70c0d1567..34306cde6648 100644 --- a/sys/arm/xscale/pxa/pxareg.h +++ b/sys/arm/xscale/pxa/pxareg.h @@ -16,7 +16,7 @@ * must display the following acknowledgement: * This product includes software developed for the NetBSD Project by * Genetec Corporation. - * 4. The name of Genetec Corporation may not be used to endorse or + * 4. The name of Genetec Corporation may not be used to endorse or * promote products derived from this software without specific prior * written permission. * @@ -139,7 +139,7 @@ /* width of interrupt controller */ #define ICU_LEN 32 /* but [0..7,15,16] is not used */ #define ICU_INT_HWMASK 0xffffff00 -#define PXA250_IRQ_MIN 8 /* 0..7 are not used by integrated +#define PXA250_IRQ_MIN 8 /* 0..7 are not used by integrated peripherals */ #define PXA270_IRQ_MIN 0 From c6e675f9e5233b9988464cf7709c3b4f247b319c Mon Sep 17 00:00:00 2001 From: Warner Losh Date: Wed, 13 Jun 2012 04:40:29 +0000 Subject: [PATCH 170/340] Strip trailing whitespace. --- sys/arm/conf/AVILA | 4 ++-- sys/arm/conf/BWCT | 4 ++-- sys/arm/conf/CAMBRIA | 4 ++-- sys/arm/conf/CNS11XXNAS | 4 ++-- sys/arm/conf/CRB | 4 ++-- sys/arm/conf/EP80219 | 4 ++-- sys/arm/conf/GUMSTIX | 4 ++-- sys/arm/conf/GUMSTIX-QEMU | 4 ++-- sys/arm/conf/HL200 | 4 ++-- sys/arm/conf/HL201 | 4 ++-- sys/arm/conf/IQ31244 | 4 ++-- sys/arm/conf/KB920X | 4 ++-- sys/arm/conf/LN2410SBC | 4 ++-- sys/arm/conf/NSLU | 4 ++-- sys/arm/conf/QILA9G20 | 12 ++++++------ sys/arm/conf/QILA9G20.hints | 6 +++--- sys/arm/conf/SAM9G20EK | 10 +++++----- sys/arm/conf/SAM9G20EK.hints | 2 +- sys/arm/conf/SIMICS | 4 ++-- 19 files changed, 45 insertions(+), 45 deletions(-) diff --git a/sys/arm/conf/AVILA b/sys/arm/conf/AVILA index 3a7930d3fcd5..55333dc575c6 100644 --- a/sys/arm/conf/AVILA +++ b/sys/arm/conf/AVILA @@ -12,8 +12,8 @@ # latest information. # # An exhaustive list of options and more detailed explanations of the -# device lines is also present in the ../../conf/NOTES and NOTES files. -# If you are in doubt as to the purpose or necessity of a line, check first +# device lines is also present in the ../../conf/NOTES and NOTES files. +# If you are in doubt as to the purpose or necessity of a line, check first # in NOTES. # # $FreeBSD$ diff --git a/sys/arm/conf/BWCT b/sys/arm/conf/BWCT index 079c32a4e7ba..1110784610b6 100644 --- a/sys/arm/conf/BWCT +++ b/sys/arm/conf/BWCT @@ -11,8 +11,8 @@ # latest information. # # An exhaustive list of options and more detailed explanations of the -# device lines is also present in the ../../conf/NOTES and NOTES files. -# If you are in doubt as to the purpose or necessity of a line, check first +# device lines is also present in the ../../conf/NOTES and NOTES files. +# If you are in doubt as to the purpose or necessity of a line, check first # in NOTES. # # $FreeBSD$ diff --git a/sys/arm/conf/CAMBRIA b/sys/arm/conf/CAMBRIA index f8dcf2ab8bf9..c1b5c40376e3 100644 --- a/sys/arm/conf/CAMBRIA +++ b/sys/arm/conf/CAMBRIA @@ -12,8 +12,8 @@ # latest information. # # An exhaustive list of options and more detailed explanations of the -# device lines is also present in the ../../conf/NOTES and NOTES files. -# If you are in doubt as to the purpose or necessity of a line, check first +# device lines is also present in the ../../conf/NOTES and NOTES files. +# If you are in doubt as to the purpose or necessity of a line, check first # in NOTES. # # $FreeBSD$ diff --git a/sys/arm/conf/CNS11XXNAS b/sys/arm/conf/CNS11XXNAS index 60895b01725d..98b74e9e4575 100644 --- a/sys/arm/conf/CNS11XXNAS +++ b/sys/arm/conf/CNS11XXNAS @@ -12,8 +12,8 @@ # latest information. # # An exhaustive list of options and more detailed explanations of the -# device lines is also present in the ../../conf/NOTES and NOTES files. -# If you are in doubt as to the purpose or necessity of a line, check first +# device lines is also present in the ../../conf/NOTES and NOTES files. +# If you are in doubt as to the purpose or necessity of a line, check first # in NOTES. # # $FreeBSD$ diff --git a/sys/arm/conf/CRB b/sys/arm/conf/CRB index 9efbc0835543..f0ed5ccb7b55 100644 --- a/sys/arm/conf/CRB +++ b/sys/arm/conf/CRB @@ -11,8 +11,8 @@ # latest information. # # An exhaustive list of options and more detailed explanations of the -# device lines is also present in the ../../conf/NOTES and NOTES files. -# If you are in doubt as to the purpose or necessity of a line, check first +# device lines is also present in the ../../conf/NOTES and NOTES files. +# If you are in doubt as to the purpose or necessity of a line, check first # in NOTES. # # $FreeBSD$ diff --git a/sys/arm/conf/EP80219 b/sys/arm/conf/EP80219 index cd306c21b619..676247a0201a 100644 --- a/sys/arm/conf/EP80219 +++ b/sys/arm/conf/EP80219 @@ -11,8 +11,8 @@ # latest information. # # An exhaustive list of options and more detailed explanations of the -# device lines is also present in the ../../conf/NOTES and NOTES files. -# If you are in doubt as to the purpose or necessity of a line, check first +# device lines is also present in the ../../conf/NOTES and NOTES files. +# If you are in doubt as to the purpose or necessity of a line, check first # in NOTES. # # $FreeBSD$ diff --git a/sys/arm/conf/GUMSTIX b/sys/arm/conf/GUMSTIX index 61ffe0b8d086..11fe6a96b7a1 100644 --- a/sys/arm/conf/GUMSTIX +++ b/sys/arm/conf/GUMSTIX @@ -12,8 +12,8 @@ # latest information. # # An exhaustive list of options and more detailed explanations of the -# device lines is also present in the ../../conf/NOTES and NOTES files. -# If you are in doubt as to the purpose or necessity of a line, check first +# device lines is also present in the ../../conf/NOTES and NOTES files. +# If you are in doubt as to the purpose or necessity of a line, check first # in NOTES. # # $FreeBSD$ diff --git a/sys/arm/conf/GUMSTIX-QEMU b/sys/arm/conf/GUMSTIX-QEMU index f9536a40e5c7..0968b8a043fc 100644 --- a/sys/arm/conf/GUMSTIX-QEMU +++ b/sys/arm/conf/GUMSTIX-QEMU @@ -11,8 +11,8 @@ # latest information. # # An exhaustive list of options and more detailed explanations of the -# device lines is also present in the ../../conf/NOTES and NOTES files. -# If you are in doubt as to the purpose or necessity of a line, check first +# device lines is also present in the ../../conf/NOTES and NOTES files. +# If you are in doubt as to the purpose or necessity of a line, check first # in NOTES. # # $FreeBSD$ diff --git a/sys/arm/conf/HL200 b/sys/arm/conf/HL200 index f91502d8e579..415cbc926326 100644 --- a/sys/arm/conf/HL200 +++ b/sys/arm/conf/HL200 @@ -11,8 +11,8 @@ # latest information. # # An exhaustive list of options and more detailed explanations of the -# device lines is also present in the ../../conf/NOTES and NOTES files. -# If you are in doubt as to the purpose or necessity of a line, check first +# device lines is also present in the ../../conf/NOTES and NOTES files. +# If you are in doubt as to the purpose or necessity of a line, check first # in NOTES. # # $FreeBSD$ diff --git a/sys/arm/conf/HL201 b/sys/arm/conf/HL201 index 253614ee478d..1baa35782448 100644 --- a/sys/arm/conf/HL201 +++ b/sys/arm/conf/HL201 @@ -11,8 +11,8 @@ # latest information. # # An exhaustive list of options and more detailed explanations of the -# device lines is also present in the ../../conf/NOTES and NOTES files. -# If you are in doubt as to the purpose or necessity of a line, check first +# device lines is also present in the ../../conf/NOTES and NOTES files. +# If you are in doubt as to the purpose or necessity of a line, check first # in NOTES. # # $FreeBSD$ diff --git a/sys/arm/conf/IQ31244 b/sys/arm/conf/IQ31244 index ee204e36531c..019d8050a3aa 100644 --- a/sys/arm/conf/IQ31244 +++ b/sys/arm/conf/IQ31244 @@ -11,8 +11,8 @@ # latest information. # # An exhaustive list of options and more detailed explanations of the -# device lines is also present in the ../../conf/NOTES and NOTES files. -# If you are in doubt as to the purpose or necessity of a line, check first +# device lines is also present in the ../../conf/NOTES and NOTES files. +# If you are in doubt as to the purpose or necessity of a line, check first # in NOTES. # # $FreeBSD$ diff --git a/sys/arm/conf/KB920X b/sys/arm/conf/KB920X index 8bb9b7b0402b..ea50c8b0c94c 100644 --- a/sys/arm/conf/KB920X +++ b/sys/arm/conf/KB920X @@ -12,8 +12,8 @@ # latest information. # # An exhaustive list of options and more detailed explanations of the -# device lines is also present in the ../../conf/NOTES and NOTES files. -# If you are in doubt as to the purpose or necessity of a line, check first +# device lines is also present in the ../../conf/NOTES and NOTES files. +# If you are in doubt as to the purpose or necessity of a line, check first # in NOTES. # # $FreeBSD$ diff --git a/sys/arm/conf/LN2410SBC b/sys/arm/conf/LN2410SBC index ec1d1d07e7d4..50bb83e2a11c 100644 --- a/sys/arm/conf/LN2410SBC +++ b/sys/arm/conf/LN2410SBC @@ -11,8 +11,8 @@ # latest information. # # An exhaustive list of options and more detailed explanations of the -# device lines is also present in the ../../conf/NOTES and NOTES files. -# If you are in doubt as to the purpose or necessity of a line, check first +# device lines is also present in the ../../conf/NOTES and NOTES files. +# If you are in doubt as to the purpose or necessity of a line, check first # in NOTES. # # $FreeBSD$ diff --git a/sys/arm/conf/NSLU b/sys/arm/conf/NSLU index 5cbaf92136a3..0980e4d4a802 100644 --- a/sys/arm/conf/NSLU +++ b/sys/arm/conf/NSLU @@ -11,8 +11,8 @@ # latest information. # # An exhaustive list of options and more detailed explanations of the -# device lines is also present in the ../../conf/NOTES and NOTES files. -# If you are in doubt as to the purpose or necessity of a line, check first +# device lines is also present in the ../../conf/NOTES and NOTES files. +# If you are in doubt as to the purpose or necessity of a line, check first # in NOTES. # # $FreeBSD$ diff --git a/sys/arm/conf/QILA9G20 b/sys/arm/conf/QILA9G20 index b843f0d8dab5..5a17594d97d2 100644 --- a/sys/arm/conf/QILA9G20 +++ b/sys/arm/conf/QILA9G20 @@ -1,5 +1,5 @@ -# Kernel configuration for Calao Syatems QIL-A9G20 development card -# http://www.calao-systems.com +# Kernel configuration for Calao Syatems QIL-A9G20 development card +# http://www.calao-systems.com # # For more information on this file, please read the handbook section on # Kernel Configuration Files: @@ -12,8 +12,8 @@ # latest information. # # An exhaustive list of options and more detailed explanations of the -# device lines is also present in the ../../conf/NOTES and NOTES files. -# If you are in doubt as to the purpose or necessity of a line, check first +# device lines is also present in the ../../conf/NOTES and NOTES files. +# If you are in doubt as to the purpose or necessity of a line, check first # in NOTES. # # $FreeBSD$ @@ -93,11 +93,11 @@ option AT91_ATE_USE_RMII device at91_twi # TWI: Two Wire Interface (EEPROM) device at91_wdt # WDT: Watchdog timer -# NOTE: SPI DataFlash and mci/mmc/mmcsd have hardware +# NOTE: SPI DataFlash and mci/mmc/mmcsd have hardware # confilict on this card. Use one or the other. # see board_sam9g20ek.c -# SPI: Data Flash +# SPI: Data Flash #device at91_spi # SPI: #device spibus #device at45d # at45db642 and maybe others diff --git a/sys/arm/conf/QILA9G20.hints b/sys/arm/conf/QILA9G20.hints index cf391f5fa5d6..6dd430eb4097 100644 --- a/sys/arm/conf/QILA9G20.hints +++ b/sys/arm/conf/QILA9G20.hints @@ -1,9 +1,9 @@ # $FreeBSD$ -# Kernel configuration hits for Calao Syatems QIL-A9G20 development card -# http://www.calao-systems.com +# Kernel configuration hits for Calao Syatems QIL-A9G20 development card +# http://www.calao-systems.com # STMicroelctrtronics M41T94 Real-Time Clock -# on SPI0 NPCS0 +# on SPI0 NPCS0 # STMicroelctrtronics M95640 8k x 8 EEPROM # on SPI0 NPCS1 diff --git a/sys/arm/conf/SAM9G20EK b/sys/arm/conf/SAM9G20EK index ff8200eec6b6..57406951fe59 100644 --- a/sys/arm/conf/SAM9G20EK +++ b/sys/arm/conf/SAM9G20EK @@ -1,4 +1,4 @@ -# Kernel configuration for Atmel AT91SAM9G20EK Rev B. development card +# Kernel configuration for Atmel AT91SAM9G20EK Rev B. development card # # For more information on this file, please read the handbook section on # Kernel Configuration Files: @@ -11,8 +11,8 @@ # latest information. # # An exhaustive list of options and more detailed explanations of the -# device lines is also present in the ../../conf/NOTES and NOTES files. -# If you are in doubt as to the purpose or necessity of a line, check first +# device lines is also present in the ../../conf/NOTES and NOTES files. +# If you are in doubt as to the purpose or necessity of a line, check first # in NOTES. # # $FreeBSD$ @@ -92,11 +92,11 @@ option AT91_ATE_USE_RMII device at91_twi # TWI: Two Wire Interface (EEPROM) device at91_wdt # WDT: Watchdog timer -# NOTE: SPI DataFlash and mci/mmc/mmcsd have hardware +# NOTE: SPI DataFlash and mci/mmc/mmcsd have hardware # confilict on this card. Use one or the other. # see board_sam9g20ek.c -# SPI: Data Flash +# SPI: Data Flash #device at91_spi # SPI: #device spibus #device at45d # at45db642 and maybe others diff --git a/sys/arm/conf/SAM9G20EK.hints b/sys/arm/conf/SAM9G20EK.hints index 166efdb50139..fe0b5340fe6a 100644 --- a/sys/arm/conf/SAM9G20EK.hints +++ b/sys/arm/conf/SAM9G20EK.hints @@ -1,7 +1,7 @@ # $FreeBSD$ # -# EEPROM +# EEPROM hint.icee.0.at="iicbus0" hint.icee.0.addr=0xa0 hint.icee.0.type=16 diff --git a/sys/arm/conf/SIMICS b/sys/arm/conf/SIMICS index 84ff983cde00..8988d2728b69 100644 --- a/sys/arm/conf/SIMICS +++ b/sys/arm/conf/SIMICS @@ -11,8 +11,8 @@ # latest information. # # An exhaustive list of options and more detailed explanations of the -# device lines is also present in the ../../conf/NOTES and NOTES files. -# If you are in doubt as to the purpose or necessity of a line, check first +# device lines is also present in the ../../conf/NOTES and NOTES files. +# If you are in doubt as to the purpose or necessity of a line, check first # in NOTES. # # $FreeBSD$ From 6a7be52dbe5e0d8f4a616baafa03eb0ab1487b04 Mon Sep 17 00:00:00 2001 From: Warner Losh Date: Wed, 13 Jun 2012 04:52:19 +0000 Subject: [PATCH 171/340] Strip trailing whitespace before other changes. --- sys/arm/at91/at91.c | 18 +++++++++--------- sys/arm/at91/at91_mci.c | 4 ++-- sys/arm/at91/at91_pio_rm9200.h | 8 ++++---- sys/arm/at91/at91_pitreg.h | 2 +- sys/arm/at91/at91_pmcvar.h | 2 +- sys/arm/at91/at91_reset.S | 14 +++++++------- sys/arm/at91/at91_ssc.c | 2 +- sys/arm/at91/at91_wdtreg.h | 2 +- sys/arm/at91/at91rm9200.c | 6 +++--- sys/arm/at91/at91rm92reg.h | 13 +++++++------ sys/arm/at91/at91sam9260reg.h | 11 +++++------ sys/arm/at91/at91sam9g20.c | 8 ++++---- sys/arm/at91/at91sam9g20reg.h | 13 ++++++------- sys/arm/at91/board_qila9g20.c | 2 +- sys/arm/at91/board_sam9g20ek.c | 6 +++--- sys/arm/at91/if_macb.c | 12 ++++++------ sys/arm/at91/uart_cpu_at91rm9200usart.c | 2 +- 17 files changed, 62 insertions(+), 63 deletions(-) diff --git a/sys/arm/at91/at91.c b/sys/arm/at91/at91.c index 9cdb53120b2e..877b746553e2 100644 --- a/sys/arm/at91/at91.c +++ b/sys/arm/at91/at91.c @@ -72,7 +72,7 @@ at91_bs_map(void *t, bus_addr_t bpa, bus_size_t size, int flags, endpa = round_page(bpa + size); *bshp = (vm_offset_t)pmap_mapdev(pa, endpa - pa); - + return (0); } @@ -98,7 +98,7 @@ at91_bs_subregion(void *t, bus_space_handle_t bsh, bus_size_t offset, } static void -at91_barrier(void *t, bus_space_handle_t bsh, bus_size_t size, bus_size_t b, +at91_barrier(void *t, bus_space_handle_t bsh, bus_size_t size, bus_size_t b, int a) { } @@ -272,7 +272,7 @@ at91_attach(device_t dev) /* Our device list will be added automatically by the cpu device * e.g. at91rm9200.c when it is identified. To ensure that the - * CPU and PMC are attached first any other "identified" devices + * CPU and PMC are attached first any other "identified" devices * call BUS_ADD_CHILD(9) with an "order" of at least 2. */ bus_generic_probe(dev); @@ -357,8 +357,8 @@ at91_release_resource(device_t dev, device_t child, int type, static int at91_setup_intr(device_t dev, device_t child, - struct resource *ires, int flags, driver_filter_t *filt, - driver_intr_t *intr, void *arg, void **cookiep) + struct resource *ires, int flags, driver_filter_t *filt, + driver_intr_t *intr, void *arg, void **cookiep) { struct at91_softc *sc = device_get_softc(dev); int error; @@ -381,7 +381,7 @@ at91_teardown_intr(device_t dev, device_t child, struct resource *res, { struct at91_softc *sc = device_get_softc(dev); - bus_space_write_4(sc->sc_st, sc->sc_aic_sh, IC_IDCR, + bus_space_write_4(sc->sc_st, sc->sc_aic_sh, IC_IDCR, 1 << rman_get_start(res)); return (BUS_TEARDOWN_INTR(device_get_parent(dev), child, res, cookie)); } @@ -397,7 +397,7 @@ at91_activate_resource(device_t bus, device_t child, int type, int rid, if (type == SYS_RES_MEMORY) { error = bus_space_map(rman_get_bustag(r), rman_get_bushandle(r), rman_get_size(r), 0, &p); - if (error) + if (error) return (error); rman_set_bushandle(r, p); } @@ -432,7 +432,7 @@ void arm_mask_irq(uintptr_t nb) { - bus_space_write_4(at91_softc->sc_st, + bus_space_write_4(at91_softc->sc_st, at91_softc->sc_aic_sh, IC_IDCR, 1 << nb); } @@ -458,7 +458,7 @@ void arm_unmask_irq(uintptr_t nb) { - bus_space_write_4(at91_softc->sc_st, + bus_space_write_4(at91_softc->sc_st, at91_softc->sc_aic_sh, IC_IECR, 1 << nb); bus_space_write_4(at91_softc->sc_st, at91_softc->sc_aic_sh, IC_EOICR, 0); diff --git a/sys/arm/at91/at91_mci.c b/sys/arm/at91/at91_mci.c index 9735babcb1b0..f69477ecc78e 100644 --- a/sys/arm/at91/at91_mci.c +++ b/sys/arm/at91/at91_mci.c @@ -155,8 +155,8 @@ at91_mci_init(device_t dev) #ifndef AT91_MCI_SLOT_B WR4(sc, MCI_SDCR, 0); /* SLOT A, 1 bit bus */ #else - /* XXX Really should add second "unit" but nobody using using - * a two slot card that we know of. XXX */ + /* XXX Really should add second "unit" but nobody using using + * a two slot card that we know of. -- except they are... XXX */ WR4(sc, MCI_SDCR, 1); /* SLOT B, 1 bit bus */ #endif } diff --git a/sys/arm/at91/at91_pio_rm9200.h b/sys/arm/at91/at91_pio_rm9200.h index fa4fae3d42ad..809262ff14db 100644 --- a/sys/arm/at91/at91_pio_rm9200.h +++ b/sys/arm/at91/at91_pio_rm9200.h @@ -161,13 +161,13 @@ #define AT91C_PD1_ETX1 (AT91C_PIO_PD1) // Ethernet MAC Transmit Data 1 #define AT91C_PD10_PCK3 (AT91C_PIO_PD10) // PMC Programmable Clock Output 3 #define AT91C_PD10_TPS1 (AT91C_PIO_PD10) // ETM ARM9 pipeline status 1 -#define AT91C_PD11_ (AT91C_PIO_PD11) // +#define AT91C_PD11_ (AT91C_PIO_PD11) // #define AT91C_PD11_TPS2 (AT91C_PIO_PD11) // ETM ARM9 pipeline status 2 -#define AT91C_PD12_ (AT91C_PIO_PD12) // +#define AT91C_PD12_ (AT91C_PIO_PD12) // #define AT91C_PD12_TPK0 (AT91C_PIO_PD12) // ETM Trace Packet 0 -#define AT91C_PD13_ (AT91C_PIO_PD13) // +#define AT91C_PD13_ (AT91C_PIO_PD13) // #define AT91C_PD13_TPK1 (AT91C_PIO_PD13) // ETM Trace Packet 1 -#define AT91C_PD14_ (AT91C_PIO_PD14) // +#define AT91C_PD14_ (AT91C_PIO_PD14) // #define AT91C_PD14_TPK2 (AT91C_PIO_PD14) // ETM Trace Packet 2 #define AT91C_PD15_TD0 (AT91C_PIO_PD15) // SSC Transmit data #define AT91C_PD15_TPK3 (AT91C_PIO_PD15) // ETM Trace Packet 3 diff --git a/sys/arm/at91/at91_pitreg.h b/sys/arm/at91/at91_pitreg.h index 333271eee839..7817c220b02f 100644 --- a/sys/arm/at91/at91_pitreg.h +++ b/sys/arm/at91/at91_pitreg.h @@ -28,7 +28,7 @@ #ifndef ARM_AT91_AT91PITREG_H #define ARM_AT91_AT91PITREG_H -#define PIT_MR 0x0 +#define PIT_MR 0x0 #define PIT_SR 0x4 #define PIT_PIVR 0x8 #define PIT_PIIR 0xc diff --git a/sys/arm/at91/at91_pmcvar.h b/sys/arm/at91/at91_pmcvar.h index 22255d698a13..30d47292c594 100644 --- a/sys/arm/at91/at91_pmcvar.h +++ b/sys/arm/at91/at91_pmcvar.h @@ -28,7 +28,7 @@ #ifndef ARM_AT91_AT91_PMCVAR_H #define ARM_AT91_AT91_PMCVAR_H -struct at91_pmc_clock +struct at91_pmc_clock { char *name; uint32_t hz; diff --git a/sys/arm/at91/at91_reset.S b/sys/arm/at91/at91_reset.S index c6c2be97c1ec..6ff7da0c80f7 100644 --- a/sys/arm/at91/at91_reset.S +++ b/sys/arm/at91/at91_reset.S @@ -10,21 +10,21 @@ __FBSDID("$FreeBSD$"); #define RSTC_RCR (AT91SAM9G20_BASE + \ AT91SAM9G20_RSTC_BASE + RST_CR) -/* +/* * From AT91SAM9G20 Datasheet errata 44:3.5: * * When User Reset occurs durring SDRAM read acces, eh SDRAM clock is turned * off while data are ready to be read on the data bus. The SDRAM maintains - * the data until the clock restarts. - * + * the data until the clock restarts. + * * If the User reset is programed to assert a general reset, the data * maintained by the SDRAM leads to a data bus conflict and adversly affects * the boot memories connected to the EBI: * + NAND Flash boot functionality, if the system boots out of internal ROM. - * + NOR Flash boot, if the system boots on an external memory connected to + * + NOR Flash boot, if the system boots on an external memory connected to * the EBI CS0. * - * Assembly code is mandatory for the following sequnce as ARM + * Assembly code is mandatory for the following sequnce as ARM * instructions need to be piplined. * */ @@ -38,12 +38,12 @@ ENTRY(cpu_reset_sam9g20) /* Change Refresh to block all data access */ ldr r0, =SDRAM_TR - ldr r1, =1 + ldr r1, =1 str r1, [r0] /* Prepare power down command */ ldr r0, =SDRAM_LPR - ldr r1, =2 + ldr r1, =2 /* Prepare proc_reset and periph reset */ ldr r2, =RSTC_RCR diff --git a/sys/arm/at91/at91_ssc.c b/sys/arm/at91/at91_ssc.c index 12ae90ae305a..8a32f55d42b2 100644 --- a/sys/arm/at91/at91_ssc.c +++ b/sys/arm/at91/at91_ssc.c @@ -214,7 +214,7 @@ at91_ssc_intr(void *xsc) return; } -static int +static int at91_ssc_open(struct cdev *dev, int oflags, int devtype, struct thread *td) { struct at91_ssc_softc *sc; diff --git a/sys/arm/at91/at91_wdtreg.h b/sys/arm/at91/at91_wdtreg.h index 56e8f1b30a37..1c8dd892c14a 100644 --- a/sys/arm/at91/at91_wdtreg.h +++ b/sys/arm/at91/at91_wdtreg.h @@ -23,7 +23,7 @@ * SUCH DAMAGE. */ -/* +/* * $FreeBSD$ */ diff --git a/sys/arm/at91/at91rm9200.c b/sys/arm/at91/at91rm9200.c index f2c4c48ee0e0..ddddb7828667 100644 --- a/sys/arm/at91/at91rm9200.c +++ b/sys/arm/at91/at91rm9200.c @@ -164,7 +164,7 @@ at91_add_child(device_t dev, int prio, const char *name, int unit, bus_set_resource(kid, SYS_RES_IRQ, 1, irq1, 1); if (irq2 != 0) bus_set_resource(kid, SYS_RES_IRQ, 2, irq2, 1); - if (addr != 0 && addr < AT91RM92_BASE) + if (addr != 0 && addr < AT91RM92_BASE) addr += AT91RM92_BASE; if (addr != 0) bus_set_resource(kid, SYS_RES_MEMORY, 0, addr, size); @@ -189,7 +189,7 @@ at91_pll_outb(int freq) if (freq > 155000000) return (0x0000); - else + else return (0x8000); } @@ -241,7 +241,7 @@ at91_attach(device_t dev) at91sc->sc_irq_system = AT91RM92_IRQ_SYSTEM; for (i = 0; i < 32; i++) { - bus_space_write_4(sc->sc_st, sc->sc_aic_sh, IC_SVR + + bus_space_write_4(sc->sc_st, sc->sc_aic_sh, IC_SVR + i * 4, i); /* Priority. */ bus_space_write_4(sc->sc_st, sc->sc_aic_sh, IC_SMR + i * 4, diff --git a/sys/arm/at91/at91rm92reg.h b/sys/arm/at91/at91rm92reg.h index 2947a4771ccf..129c01b91d2a 100644 --- a/sys/arm/at91/at91rm92reg.h +++ b/sys/arm/at91/at91rm92reg.h @@ -34,9 +34,9 @@ #define RM9200_PLL_A_MIN_OUT_FREQ 80000000 /* 80 MHz */ #define RM9200_PLL_A_MAX_OUT_FREQ 180000000 /* 180 MHz */ #define RM9200_PLL_A_MUL_SHIFT 16 -#define RM9200_PLL_A_MUL_MASK 0x7FF +#define RM9200_PLL_A_MUL_MASK 0x7FF #define RM9200_PLL_A_DIV_SHIFT 0 -#define RM9200_PLL_A_DIV_MASK 0xFF +#define RM9200_PLL_A_DIV_MASK 0xFF /* * PLL B input frequency spec sheet says it must be between 1MHz and 32MHz, @@ -51,10 +51,11 @@ #define RM9200_PLL_B_MIN_OUT_FREQ 30000000 /* 30 MHz */ #define RM9200_PLL_B_MAX_OUT_FREQ 240000000 /* 240 MHz */ #define RM9200_PLL_B_MUL_SHIFT 16 -#define RM9200_PLL_B_MUL_MASK 0x7FF +#define RM9200_PLL_B_MUL_MASK 0x7FF #define RM9200_PLL_B_DIV_SHIFT 0 -#define RM9200_PLL_B_DIV_MASK 0xFF -/* +#define RM9200_PLL_B_DIV_MASK 0xFF + +/* * Memory map, from datasheet : * 0x00000000 - 0x0ffffffff : Internal Memories * 0x10000000 - 0x1ffffffff : Chip Select 0 @@ -112,7 +113,7 @@ /* IRQs : */ /* - * 0: AIC + * 0: AIC * 1: System peripheral (System timer, RTC, DBGU) * 2: PIO Controller A * 3: PIO Controller B diff --git a/sys/arm/at91/at91sam9260reg.h b/sys/arm/at91/at91sam9260reg.h index 2f347a474d8f..659a951c303e 100644 --- a/sys/arm/at91/at91sam9260reg.h +++ b/sys/arm/at91/at91sam9260reg.h @@ -34,9 +34,9 @@ #define SAM9260_PLL_A_MIN_OUT_FREQ 80000000 /* 80 Mhz */ #define SAM9260_PLL_A_MAX_OUT_FREQ 240000000 /* 240 Mhz */ #define SAM9260_PLL_A_MUL_SHIFT 16 -#define SAM9260_PLL_A_MUL_MASK 0x3FF +#define SAM9260_PLL_A_MUL_MASK 0x3FF #define SAM9260_PLL_A_DIV_SHIFT 0 -#define SAM9260_PLL_A_DIV_MASK 0xFF +#define SAM9260_PLL_A_DIV_MASK 0xFF #define SAM9260_PLL_B_MIN_IN_FREQ 1000000 /* 1 Mhz */ #define SAM9260_PLL_B_MAX_IN_FREQ 5000000 /* 5 Mhz */ @@ -45,9 +45,9 @@ #define SAM9260_PLL_B_MUL_SHIFT 16 #define SAM9260_PLL_B_MUL_MASK 0x3FF #define SAM9260_PLL_B_DIV_SHIFT 0 -#define SAM9260_PLL_B_DIV_MASK 0xFF +#define SAM9260_PLL_B_DIV_MASK 0xFF -/* +/* * Memory map, from datasheet : * 0x00000000 - 0x0ffffffff : Internal Memories * 0x10000000 - 0x1ffffffff : Chip Select 0 @@ -73,7 +73,6 @@ #define AT91SAM9260_BASE 0xd0000000 - #define AT91SAM9260_EMAC_BASE 0xffc4000 #define AT91SAM9260_EMAC_SIZE 0x4000 @@ -156,7 +155,7 @@ #define AT91RM92_PMC_SIZE 0x100 /* IRQs : */ /* - * 0: AIC + * 0: AIC * 1: System peripheral (System timer, RTC, DBGU) * 2: PIO Controller A * 3: PIO Controller B diff --git a/sys/arm/at91/at91sam9g20.c b/sys/arm/at91/at91sam9g20.c index 063a7bfdcb7d..668b05775a11 100644 --- a/sys/arm/at91/at91sam9g20.c +++ b/sys/arm/at91/at91sam9g20.c @@ -157,7 +157,7 @@ at91_add_child(device_t dev, int prio, const char *name, int unit, bus_set_resource(kid, SYS_RES_IRQ, 1, irq1, 1); if (irq2 != 0) bus_set_resource(kid, SYS_RES_IRQ, 2, irq2, 1); - if (addr != 0 && addr < AT91SAM9G20_BASE) + if (addr != 0 && addr < AT91SAM9G20_BASE) addr += AT91SAM9G20_BASE; if (addr != 0) bus_set_resource(kid, SYS_RES_MEMORY, 0, addr, size); @@ -231,7 +231,7 @@ at91_attach(device_t dev) sc->sc_sh = at91sc->sc_sh; sc->dev = dev; - /* + /* * XXX These values work for the RM9200, SAM926[01], and SAM9G20 * will have to fix this when we want to support anything else. XXX */ @@ -252,7 +252,7 @@ at91_attach(device_t dev) at91sc->sc_irq_system = AT91SAM9G20_IRQ_SYSTEM; for (i = 0; i < 32; i++) { - bus_space_write_4(sc->sc_st, sc->sc_aic_sh, IC_SVR + + bus_space_write_4(sc->sc_st, sc->sc_aic_sh, IC_SVR + i * 4, i); /* Priority. */ bus_space_write_4(sc->sc_st, sc->sc_aic_sh, IC_SMR + i * 4, @@ -281,7 +281,7 @@ at91_attach(device_t dev) i = bus_space_read_4(sc->sc_st, sc->sc_matrix_sh, AT91SAM9G20_EBICSA); bus_space_write_4(sc->sc_st, sc->sc_matrix_sh, - AT91SAM9G20_EBICSA, + AT91SAM9G20_EBICSA, i | AT91_MATRIX_EBI_CS3A_SMC_SMARTMEDIA); diff --git a/sys/arm/at91/at91sam9g20reg.h b/sys/arm/at91/at91sam9g20reg.h index 4ab0353d3f20..7311adeab5d9 100644 --- a/sys/arm/at91/at91sam9g20reg.h +++ b/sys/arm/at91/at91sam9g20reg.h @@ -35,20 +35,20 @@ #define SAM9G20_PLL_A_MIN_OUT_FREQ 400000000 /* 400 Mhz */ #define SAM9G20_PLL_A_MAX_OUT_FREQ 800000000 /* 800 Mhz */ #define SAM9G20_PLL_A_MUL_SHIFT 16 -#define SAM9G20_PLL_A_MUL_MASK 0xFF +#define SAM9G20_PLL_A_MUL_MASK 0xFF #define SAM9G20_PLL_A_DIV_SHIFT 0 -#define SAM9G20_PLL_A_DIV_MASK 0xFF +#define SAM9G20_PLL_A_DIV_MASK 0xFF #define SAM9G20_PLL_B_MIN_IN_FREQ 2000000 /* 2 Mhz */ #define SAM9G20_PLL_B_MAX_IN_FREQ 32000000 /* 32 Mhz */ #define SAM9G20_PLL_B_MIN_OUT_FREQ 30000000 /* 30 Mhz */ #define SAM9G20_PLL_B_MAX_OUT_FREQ 100000000 /* 100 Mhz */ #define SAM9G20_PLL_B_MUL_SHIFT 16 -#define SAM9G20_PLL_B_MUL_MASK 0x3F +#define SAM9G20_PLL_B_MUL_MASK 0x3F #define SAM9G20_PLL_B_DIV_SHIFT 0 -#define SAM9G20_PLL_B_DIV_MASK 0xFF +#define SAM9G20_PLL_B_DIV_MASK 0xFF -/* +/* * Memory map, from datasheet : * 0x00000000 - 0x0ffffffff : Internal Memories * 0x10000000 - 0x1ffffffff : Chip Select 0 @@ -74,7 +74,6 @@ #define AT91SAM9G20_BASE 0xd0000000 - #define AT91SAM9G20_EMAC_BASE 0xffc4000 #define AT91SAM9G20_EMAC_SIZE 0x4000 @@ -157,7 +156,7 @@ #define AT91RM92_PMC_SIZE 0x100 /* IRQs : */ /* - * 0: AIC + * 0: AIC * 1: System peripheral (System timer, RTC, DBGU) * 2: PIO Controller A * 3: PIO Controller B diff --git a/sys/arm/at91/board_qila9g20.c b/sys/arm/at91/board_qila9g20.c index eee7d89dc27a..769782b46ad2 100644 --- a/sys/arm/at91/board_qila9g20.c +++ b/sys/arm/at91/board_qila9g20.c @@ -24,7 +24,7 @@ */ /* Calao Systems QIL-9G20-Cxx - * http://www.calao-systems.com + * http://www.calao-systems.com */ #include diff --git a/sys/arm/at91/board_sam9g20ek.c b/sys/arm/at91/board_sam9g20ek.c index 774c887de771..8858d0209362 100644 --- a/sys/arm/at91/board_sam9g20ek.c +++ b/sys/arm/at91/board_sam9g20ek.c @@ -23,9 +23,9 @@ * SUCH DAMAGE. */ -/* +/* * This board file can be used for both: - * Atmel SAM9G20-EK Development Card + * Atmel SAM9G20-EK Development Card */ #include @@ -69,7 +69,7 @@ board_init(void) at91_pio_use_periph_a(AT91SAM9G20_PIOA_BASE,AT91C_PA24_TWCK, 1); #if 1 - /* + /* * Turn off Clock to DataFlash, conflicts with MCI clock. */ at91_pio_use_gpio(AT91SAM9G20_PIOA_BASE,AT91C_PIO_PA2); diff --git a/sys/arm/at91/if_macb.c b/sys/arm/at91/if_macb.c index b985f26327d0..ac280a1918e5 100644 --- a/sys/arm/at91/if_macb.c +++ b/sys/arm/at91/if_macb.c @@ -730,7 +730,7 @@ macb_rx(struct macb_softc *sc) m = sc->rx_desc[sc->rx_cons].buff; - bus_dmamap_sync(sc->dmatag_ring_rx, + bus_dmamap_sync(sc->dmatag_ring_rx, sc->rx_desc[sc->rx_cons].dmamap, BUS_DMASYNC_POSTREAD); if (macb_new_rxbuf(sc, sc->rx_cons) != 0) { ifp->if_iqdrops++; @@ -739,7 +739,7 @@ macb_rx(struct macb_softc *sc) do { rxdesc->flags = DATA_SIZE; MACB_DESC_INC(sc->rx_cons, MACB_MAX_RX_BUFFERS); - if ((rxdesc->flags & RD_EOF) != 0) + if ((rxdesc->flags & RD_EOF) != 0) break; rxdesc = &(sc->desc_rx[sc->rx_cons]); } while (sc->rx_cons != first); @@ -776,7 +776,7 @@ macb_rx(struct macb_softc *sc) if (nsegs > 1) { sc->macb_cdata.rxtail->m_len = (rxbytes - ((nsegs - 1) * DATA_SIZE)) + 2; - } + } m = sc->macb_cdata.rxhead; m->m_flags |= M_PKTHDR; @@ -1102,7 +1102,7 @@ set_filter(struct macb_softc *sc) int count; uint32_t multicast_filter[2]; - ifp = sc->ifp; + ifp = sc->ifp; config = read_4(sc, EMAC_NCFGR); @@ -1132,7 +1132,7 @@ set_filter(struct macb_softc *sc) if (ifma->ifma_addr->sa_family != AF_LINK) continue; count++; - set_mac_filter(multicast_filter, + set_mac_filter(multicast_filter, LLADDR((struct sockaddr_dl *)ifma->ifma_addr)); } if (count) { @@ -1501,7 +1501,7 @@ macb_miibus_statchg(device_t dev) mii = device_get_softc(sc->miibus); - sc->flags &= ~MACB_FLAG_LINK; + sc->flags &= ~MACB_FLAG_LINK; config = read_4(sc, EMAC_NCFGR); diff --git a/sys/arm/at91/uart_cpu_at91rm9200usart.c b/sys/arm/at91/uart_cpu_at91rm9200usart.c index 79889939fa4e..098e368d27fd 100644 --- a/sys/arm/at91/uart_cpu_at91rm9200usart.c +++ b/sys/arm/at91/uart_cpu_at91rm9200usart.c @@ -69,7 +69,7 @@ uart_cpu_getdev(int devtype, struct uart_devinfo *di) di->ops = uart_getops(class); di->bas.chan = 0; di->bas.bst = &at91_bs_tag; - /* + /* * XXX: Not pretty, but will work because we map the needed addresses * early. */ From c358d6a2b021e817d85f5ccefbf623f1835a6f87 Mon Sep 17 00:00:00 2001 From: Warner Losh Date: Wed, 13 Jun 2012 04:59:00 +0000 Subject: [PATCH 172/340] Trim trailing whitespace... --- sys/arm/mv/mv_machdep.c | 2 +- sys/arm/mv/mvwin.h | 2 +- sys/arm/s3c2xx0/s3c2410reg.h | 2 +- sys/arm/s3c2xx0/s3c2440reg.h | 2 +- sys/arm/s3c2xx0/s3c24x0.c | 14 +++++++------- sys/arm/s3c2xx0/s3c24x0_machdep.c | 18 +++++++++--------- sys/arm/s3c2xx0/s3c24x0reg.h | 4 ++-- sys/arm/sa11x0/assabet_machdep.c | 6 +++--- sys/arm/sa11x0/sa11x0.c | 8 ++++---- sys/arm/sa11x0/sa11x0_gpioreg.h | 2 +- sys/arm/sa11x0/sa11x0_io_asm.S | 4 ++-- sys/arm/sa11x0/sa11x0_irq.S | 2 +- sys/arm/sa11x0/sa11x0_ost.c | 4 ++-- sys/arm/sa11x0/sa11x0_ostreg.h | 2 +- sys/arm/sa11x0/sa11x0_var.h | 2 +- sys/arm/sa11x0/uart_dev_sa1110.c | 6 +++--- 16 files changed, 40 insertions(+), 40 deletions(-) diff --git a/sys/arm/mv/mv_machdep.c b/sys/arm/mv/mv_machdep.c index a5577734d696..76ab99e21f9a 100644 --- a/sys/arm/mv/mv_machdep.c +++ b/sys/arm/mv/mv_machdep.c @@ -285,7 +285,7 @@ physmap_init(void) availmem_regions[i].mr_start + availmem_regions[i].mr_size, availmem_regions[i].mr_size); - /* + /* * We should not map the page at PA 0x0000000, the VM can't * handle it, as pmap_extract() == 0 means failure. */ diff --git a/sys/arm/mv/mvwin.h b/sys/arm/mv/mvwin.h index 9c25e2594192..933b07ecbf40 100644 --- a/sys/arm/mv/mvwin.h +++ b/sys/arm/mv/mvwin.h @@ -46,7 +46,7 @@ #define MV_PCIE_IO_PHYS_BASE (MV_PHYS_BASE + MV_SIZE) #define MV_PCIE_IO_BASE MV_PCIE_IO_PHYS_BASE #define MV_PCIE_IO_SIZE (1024 * 1024) -#define MV_PCI_IO_PHYS_BASE (MV_PCIE_IO_PHYS_BASE + MV_PCIE_IO_SIZE) +#define MV_PCI_IO_PHYS_BASE (MV_PCIE_IO_PHYS_BASE + MV_PCIE_IO_SIZE) #define MV_PCI_IO_BASE MV_PCI_IO_PHYS_BASE #define MV_PCI_IO_SIZE (1024 * 1024) diff --git a/sys/arm/s3c2xx0/s3c2410reg.h b/sys/arm/s3c2xx0/s3c2410reg.h index 31bb857f48de..89298ea15ee1 100644 --- a/sys/arm/s3c2xx0/s3c2410reg.h +++ b/sys/arm/s3c2xx0/s3c2410reg.h @@ -36,7 +36,7 @@ * Samsung S3C2410X processor is ARM920T based integrated CPU * * Reference: - * S3C2410X User's Manual + * S3C2410X User's Manual */ #ifndef _ARM_S3C2XX0_S3C2410REG_H_ #define _ARM_S3C2XX0_S3C2410REG_H_ diff --git a/sys/arm/s3c2xx0/s3c2440reg.h b/sys/arm/s3c2xx0/s3c2440reg.h index 418557dd8c02..f3cda608d478 100644 --- a/sys/arm/s3c2xx0/s3c2440reg.h +++ b/sys/arm/s3c2xx0/s3c2440reg.h @@ -30,7 +30,7 @@ * Samsung S3C2440X processor is ARM920T based integrated CPU * * Reference: - * S3C2440A/S3C2442B User's Manual + * S3C2440A/S3C2442B User's Manual */ #ifndef _ARM_S3C2XX0_S3C2440REG_H_ #define _ARM_S3C2XX0_S3C2440REG_H_ diff --git a/sys/arm/s3c2xx0/s3c24x0.c b/sys/arm/s3c2xx0/s3c24x0.c index 7550cb1aac98..cddd435b6132 100644 --- a/sys/arm/s3c2xx0/s3c24x0.c +++ b/sys/arm/s3c2xx0/s3c24x0.c @@ -283,7 +283,7 @@ s3c24x0_config_intr(device_t dev, int irq, enum intr_trigger trig, s3c2xx0_softc->sc_gpio_ioh, reg, value); return (0); -} +} static struct resource * s3c24x0_alloc_resource(device_t bus, device_t child, int type, int *rid, @@ -356,7 +356,7 @@ s3c24x0_alloc_resource(device_t bus, device_t child, int type, int *rid, rman_release_resource(res); return (NULL); } - } + } break; } @@ -751,19 +751,19 @@ arm_mask_irq(uintptr_t irq) mask = bus_space_read_4(&s3c2xx0_bs_tag, s3c2xx0_softc->sc_intctl_ioh, INTCTL_INTMSK); mask |= (1 << irq); - bus_space_write_4(&s3c2xx0_bs_tag, + bus_space_write_4(&s3c2xx0_bs_tag, s3c2xx0_softc->sc_intctl_ioh, INTCTL_INTMSK, mask); } else if (irq < S3C24X0_EXTIRQ_MIN) { mask = bus_space_read_4(&s3c2xx0_bs_tag, s3c2xx0_softc->sc_intctl_ioh, INTCTL_INTSUBMSK); mask |= (1 << (irq - S3C24X0_SUBIRQ_MIN)); - bus_space_write_4(&s3c2xx0_bs_tag, + bus_space_write_4(&s3c2xx0_bs_tag, s3c2xx0_softc->sc_intctl_ioh, INTCTL_INTSUBMSK, mask); } else { mask = bus_space_read_4(&s3c2xx0_bs_tag, s3c2xx0_softc->sc_gpio_ioh, GPIO_EINTMASK); mask |= (1 << (irq - S3C24X0_EXTIRQ_MIN)); - bus_space_write_4(&s3c2xx0_bs_tag, + bus_space_write_4(&s3c2xx0_bs_tag, s3c2xx0_softc->sc_intctl_ioh, GPIO_EINTMASK, mask); } } @@ -787,13 +787,13 @@ arm_unmask_irq(uintptr_t irq) mask = bus_space_read_4(&s3c2xx0_bs_tag, s3c2xx0_softc->sc_intctl_ioh, INTCTL_INTSUBMSK); mask &= ~(1 << (irq - S3C24X0_SUBIRQ_MIN)); - bus_space_write_4(&s3c2xx0_bs_tag, + bus_space_write_4(&s3c2xx0_bs_tag, s3c2xx0_softc->sc_intctl_ioh, INTCTL_INTSUBMSK, mask); } else { mask = bus_space_read_4(&s3c2xx0_bs_tag, s3c2xx0_softc->sc_gpio_ioh, GPIO_EINTMASK); mask &= ~(1 << (irq - S3C24X0_EXTIRQ_MIN)); - bus_space_write_4(&s3c2xx0_bs_tag, + bus_space_write_4(&s3c2xx0_bs_tag, s3c2xx0_softc->sc_intctl_ioh, GPIO_EINTMASK, mask); } } diff --git a/sys/arm/s3c2xx0/s3c24x0_machdep.c b/sys/arm/s3c2xx0/s3c24x0_machdep.c index 398b53d7bdde..6879581418bc 100644 --- a/sys/arm/s3c2xx0/s3c24x0_machdep.c +++ b/sys/arm/s3c2xx0/s3c24x0_machdep.c @@ -38,7 +38,7 @@ * * Machine dependant functions for kernel setup * - * This file needs a lot of work. + * This file needs a lot of work. * * Created : 17/09/94 */ @@ -150,42 +150,42 @@ static const struct pmap_devmap s3c24x0_devmap[] = { _A(S3C24X0_CLKMAN_BASE), _A(S3C24X0_CLKMAN_PA_BASE), _S(S3C24X0_CLKMAN_SIZE), - VM_PROT_READ|VM_PROT_WRITE, + VM_PROT_READ|VM_PROT_WRITE, PTE_NOCACHE, }, { _A(S3C24X0_GPIO_BASE), _A(S3C24X0_GPIO_PA_BASE), _S(S3C2410_GPIO_SIZE), - VM_PROT_READ|VM_PROT_WRITE, + VM_PROT_READ|VM_PROT_WRITE, PTE_NOCACHE, }, { _A(S3C24X0_INTCTL_BASE), _A(S3C24X0_INTCTL_PA_BASE), _S(S3C24X0_INTCTL_SIZE), - VM_PROT_READ|VM_PROT_WRITE, + VM_PROT_READ|VM_PROT_WRITE, PTE_NOCACHE, }, { _A(S3C24X0_TIMER_BASE), _A(S3C24X0_TIMER_PA_BASE), _S(S3C24X0_TIMER_SIZE), - VM_PROT_READ|VM_PROT_WRITE, + VM_PROT_READ|VM_PROT_WRITE, PTE_NOCACHE, }, { _A(S3C24X0_UART0_BASE), _A(S3C24X0_UART0_PA_BASE), _S(S3C24X0_UART_PA_BASE(3) - S3C24X0_UART0_PA_BASE), - VM_PROT_READ|VM_PROT_WRITE, + VM_PROT_READ|VM_PROT_WRITE, PTE_NOCACHE, }, { _A(S3C24X0_WDT_BASE), _A(S3C24X0_WDT_PA_BASE), _S(S3C24X0_WDT_SIZE), - VM_PROT_READ|VM_PROT_WRITE, + VM_PROT_READ|VM_PROT_WRITE, PTE_NOCACHE, }, { @@ -281,7 +281,7 @@ initarm(struct arm_boot_params *abp) kernel_pt_table[loop].pv_va = freemempos - (loop % (PAGE_SIZE / L2_TABLE_SIZE_REAL)) * L2_TABLE_SIZE_REAL; - kernel_pt_table[loop].pv_pa = + kernel_pt_table[loop].pv_pa = kernel_pt_table[loop].pv_va - KERNVIRTADDR + KERNPHYSADDR; } @@ -315,7 +315,7 @@ initarm(struct arm_boot_params *abp) pmap_map_chunk(l1pagetable, KERNBASE, PHYSADDR, (((uint32_t)(lastaddr) - KERNBASE) + PAGE_SIZE) & ~(PAGE_SIZE - 1), VM_PROT_READ|VM_PROT_WRITE, PTE_CACHE); - afterkern = round_page((lastaddr + L1_S_SIZE) & ~(L1_S_SIZE + afterkern = round_page((lastaddr + L1_S_SIZE) & ~(L1_S_SIZE - 1)); for (i = 0; i < KERNEL_PT_AFKERNEL_NUM; i++) { pmap_link_l2pt(l1pagetable, afterkern + i * L1_S_SIZE, diff --git a/sys/arm/s3c2xx0/s3c24x0reg.h b/sys/arm/s3c2xx0/s3c24x0reg.h index 3e93e6cf19ff..e60ce8870f8b 100644 --- a/sys/arm/s3c2xx0/s3c24x0reg.h +++ b/sys/arm/s3c2xx0/s3c24x0reg.h @@ -36,7 +36,7 @@ * Samsung S3C2410X/2400 processor is ARM920T based integrated CPU * * Reference: - * S3C2410X User's Manual + * S3C2410X User's Manual * S3C2400 User's Manual */ #ifndef _ARM_S3C2XX0_S3C24X0REG_H_ @@ -691,7 +691,7 @@ #define SPCON_CPOL (1<<2) #define SPCON_IDLELOW_RISING (0|0) #define SPCON_IDLELOW_FALLING (0|SPCON_CPHA) -#define SPCON_IDLEHIGH_FALLING (SPCON_CPOL|0) +#define SPCON_IDLEHIGH_FALLING (SPCON_CPOL|0) #define SPCON_IDLEHIGH_RISING (SPCON_CPOL|SPCON_CPHA) #define SPCON_MSTR (1<<3) #define SPCON_ENSCK (1<<4) diff --git a/sys/arm/sa11x0/assabet_machdep.c b/sys/arm/sa11x0/assabet_machdep.c index 54a2adbdd16f..39fbadcf0539 100644 --- a/sys/arm/sa11x0/assabet_machdep.c +++ b/sys/arm/sa11x0/assabet_machdep.c @@ -40,7 +40,7 @@ * * Machine dependant functions for kernel setup * - * This file needs a lot of work. + * This file needs a lot of work. * * Created : 17/09/94 */ @@ -257,7 +257,7 @@ initarm(struct arm_boot_params *abp) kernel_pt_table[loop].pv_pa = freemempos + (loop % (PAGE_SIZE / L2_TABLE_SIZE_REAL)) * L2_TABLE_SIZE_REAL; - kernel_pt_table[loop].pv_va = + kernel_pt_table[loop].pv_va = kernel_pt_table[loop].pv_pa; } } @@ -343,7 +343,7 @@ initarm(struct arm_boot_params *abp) VM_PROT_READ|VM_PROT_WRITE, PTE_CACHE); /* Map the statically mapped devices. */ pmap_devmap_bootstrap(l1pagetable, assabet_devmap); - pmap_map_chunk(l1pagetable, sa1_cache_clean_addr, 0xf0000000, + pmap_map_chunk(l1pagetable, sa1_cache_clean_addr, 0xf0000000, CPU_SA110_CACHE_CLEAN_SIZE, VM_PROT_READ|VM_PROT_WRITE, PTE_CACHE); data_abort_handler_address = (u_int)data_abort_handler; diff --git a/sys/arm/sa11x0/sa11x0.c b/sys/arm/sa11x0/sa11x0.c index 7b83f95c9d42..cae7873ff7a3 100644 --- a/sys/arm/sa11x0/sa11x0.c +++ b/sys/arm/sa11x0/sa11x0.c @@ -88,12 +88,12 @@ struct sa11x0_softc *sa11x0_softc; /* There can be only one. */ static int sa1110_setup_intr(device_t dev, device_t child, - struct resource *ires, int flags, driver_filter_t *filt, + struct resource *ires, int flags, driver_filter_t *filt, driver_intr_t *intr, void *arg, void **cookiep) { int saved_cpsr; - if (flags & INTR_TYPE_TTY) + if (flags & INTR_TYPE_TTY) rman_set_start(ires, 15); else if (flags & INTR_TYPE_CLK) { if (rman_get_start(ires) == 0) @@ -101,10 +101,10 @@ sa1110_setup_intr(device_t dev, device_t child, else rman_set_start(ires, 27); } - saved_cpsr = SetCPSR(I32_bit, I32_bit); + saved_cpsr = SetCPSR(I32_bit, I32_bit); SetCPSR(I32_bit, saved_cpsr & I32_bit); - BUS_SETUP_INTR(device_get_parent(dev), child, ires, flags, filt, + BUS_SETUP_INTR(device_get_parent(dev), child, ires, flags, filt, intr, arg, cookiep); return (0); } diff --git a/sys/arm/sa11x0/sa11x0_gpioreg.h b/sys/arm/sa11x0/sa11x0_gpioreg.h index c43a6c1ebd80..92c5bfe02c94 100644 --- a/sys/arm/sa11x0/sa11x0_gpioreg.h +++ b/sys/arm/sa11x0/sa11x0_gpioreg.h @@ -32,7 +32,7 @@ */ /* - * SA-11x0 GPIO Register + * SA-11x0 GPIO Register */ #define SAGPIO_NPORTS 8 diff --git a/sys/arm/sa11x0/sa11x0_io_asm.S b/sys/arm/sa11x0/sa11x0_io_asm.S index 7a821f3e0653..00b59bfe6c09 100644 --- a/sys/arm/sa11x0/sa11x0_io_asm.S +++ b/sys/arm/sa11x0/sa11x0_io_asm.S @@ -208,7 +208,7 @@ ENTRY(sa11x0_bs_rr_2) movle pc, lr sa11x0_bs_rr_2_loop: - ldrh r1, [r0], #0x0002 + ldrh r1, [r0], #0x0002 strh r1, [r3], #0x0002 subs r2, r2, #0x00000001 bgt sa11x0_bs_rr_2_loop @@ -222,7 +222,7 @@ sa11x0_bs_rr_2_loop: ENTRY(sa11x0_bs_wr_2) add r0, r1, r2 ldr r2, [sp, #0] - cmp r2, #0x00000000 + cmp r2, #0x00000000 movle pc, lr sa11x0_bs_wr_2_loop: diff --git a/sys/arm/sa11x0/sa11x0_irq.S b/sys/arm/sa11x0/sa11x0_irq.S index 1cacc2ddf846..4494f6a8d171 100644 --- a/sys/arm/sa11x0/sa11x0_irq.S +++ b/sys/arm/sa11x0/sa11x0_irq.S @@ -120,7 +120,7 @@ ENTRY(sa11x0_activateirqs) mov pc, lr .global _C_LABEL(intrnames), _C_LABEL(sintrnames) -_C_LABEL(intrnames): +_C_LABEL(intrnames): _C_LABEL(sintrnames): .int 0 diff --git a/sys/arm/sa11x0/sa11x0_ost.c b/sys/arm/sa11x0/sa11x0_ost.c index 21991e532e4e..f8b2a6bcffb9 100644 --- a/sys/arm/sa11x0/sa11x0_ost.c +++ b/sys/arm/sa11x0/sa11x0_ost.c @@ -56,7 +56,7 @@ __FBSDID("$FreeBSD$"); #include #include -#include +#include #include #include @@ -127,7 +127,7 @@ saost_attach(device_t dev) saost_sc = sc; - if(bus_space_map(sa->sc_iot, sc->sc_baseaddr, 8, 0, + if(bus_space_map(sa->sc_iot, sc->sc_baseaddr, 8, 0, &sc->sc_ioh)) panic("%s: Cannot map registers", device_get_name(dev)); diff --git a/sys/arm/sa11x0/sa11x0_ostreg.h b/sys/arm/sa11x0/sa11x0_ostreg.h index 92039aec9020..26be03a698ad 100644 --- a/sys/arm/sa11x0/sa11x0_ostreg.h +++ b/sys/arm/sa11x0/sa11x0_ostreg.h @@ -32,7 +32,7 @@ */ /* - * SA-11x0 OS Timer Register + * SA-11x0 OS Timer Register */ /* OS Timer Match Register */ diff --git a/sys/arm/sa11x0/sa11x0_var.h b/sys/arm/sa11x0/sa11x0_var.h index 8c5929a9e3ea..b1ca7f90bccc 100644 --- a/sys/arm/sa11x0/sa11x0_var.h +++ b/sys/arm/sa11x0/sa11x0_var.h @@ -58,7 +58,7 @@ typedef void *sa11x0_chipset_tag_t; extern struct bus_space sa11x0_bs_tag; -void *sa11x0_intr_establish(sa11x0_chipset_tag_t, int, int, int, +void *sa11x0_intr_establish(sa11x0_chipset_tag_t, int, int, int, int (*)(void *), void *); void sa11x0_intr_disestablish(sa11x0_chipset_tag_t, void *); diff --git a/sys/arm/sa11x0/uart_dev_sa1110.c b/sys/arm/sa11x0/uart_dev_sa1110.c index f057453b0197..59a12907d0c4 100644 --- a/sys/arm/sa11x0/uart_dev_sa1110.c +++ b/sys/arm/sa11x0/uart_dev_sa1110.c @@ -179,12 +179,12 @@ sa1110_bus_transmit(struct uart_softc *sc) while (!(uart_getreg(&sc->sc_bas, SACOM_CR3) & CR3_TIE)) uart_setreg(&sc->sc_bas, SACOM_CR3, - uart_getreg(&sc->sc_bas, SACOM_CR3) | CR3_TIE); + uart_getreg(&sc->sc_bas, SACOM_CR3) | CR3_TIE); #endif sc->sc_txbusy = 1; uart_setreg(&sc->sc_bas, SACOM_CR3, uart_getreg(&sc->sc_bas, SACOM_CR3) - | CR3_TIE); + | CR3_TIE); for (i = 0; i < sc->sc_txdatasz; i++) { while (!(uart_getreg(&sc->sc_bas, SACOM_SR1) & SR1_TNF)); @@ -252,7 +252,7 @@ sa1110_bus_ipend(struct uart_softc *sc) ipend |= SER_INT_RXREADY; mask &= ~CR3_RIE; } - uart_setreg(&sc->sc_bas, SACOM_CR3, CR3_RXE | mask); + uart_setreg(&sc->sc_bas, SACOM_CR3, CR3_RXE | mask); return (ipend); } static int From 5e92d389b29e7b6d827e875428d795803760ca01 Mon Sep 17 00:00:00 2001 From: Warner Losh Date: Wed, 13 Jun 2012 04:59:55 +0000 Subject: [PATCH 173/340] Final whitespace trim. --- sys/arm/arm/bcopyinout_xscale.S | 24 +++--- sys/arm/arm/bootconfig.c | 2 +- sys/arm/arm/busdma_machdep.c | 34 ++++---- sys/arm/arm/cpufunc.c | 34 ++++---- sys/arm/arm/cpufunc_asm.S | 12 +-- sys/arm/arm/cpufunc_asm_arm10.S | 4 +- sys/arm/arm/cpufunc_asm_arm11.S | 2 +- sys/arm/arm/cpufunc_asm_arm7tdmi.S | 2 +- sys/arm/arm/cpufunc_asm_arm8.S | 2 +- sys/arm/arm/cpufunc_asm_arm9.S | 4 +- sys/arm/arm/cpufunc_asm_armv4.S | 2 +- sys/arm/arm/cpufunc_asm_armv5.S | 4 +- sys/arm/arm/cpufunc_asm_sa1.S | 6 +- sys/arm/arm/cpufunc_asm_xscale.S | 6 +- sys/arm/arm/cpufunc_asm_xscale_c3.S | 6 +- sys/arm/arm/db_disasm.c | 2 +- sys/arm/arm/db_interface.c | 12 +-- sys/arm/arm/db_trace.c | 18 ++--- sys/arm/arm/disassem.c | 6 +- sys/arm/arm/dump_machdep.c | 2 +- sys/arm/arm/elf_trampoline.c | 34 ++++---- sys/arm/arm/exception.S | 2 +- sys/arm/arm/gdb_machdep.c | 4 +- sys/arm/arm/in_cksum.c | 2 +- sys/arm/arm/intr.c | 6 +- sys/arm/arm/irq_dispatch.S | 2 +- sys/arm/arm/machdep.c | 9 +-- sys/arm/arm/mem.c | 6 +- sys/arm/arm/nexus.c | 2 +- sys/arm/arm/pmap.c | 77 +++++++++--------- sys/arm/arm/support.S | 120 ++++++++++++++-------------- sys/arm/arm/swtch.S | 10 +-- sys/arm/arm/sys_machdep.c | 4 +- sys/arm/arm/trap.c | 18 ++--- sys/arm/arm/undefined.c | 4 +- sys/arm/arm/vectors.S | 6 +- sys/arm/arm/vm_machdep.c | 56 ++++++------- 37 files changed, 271 insertions(+), 275 deletions(-) diff --git a/sys/arm/arm/bcopyinout_xscale.S b/sys/arm/arm/bcopyinout_xscale.S index d1017c3eb8c1..68c2701f5940 100644 --- a/sys/arm/arm/bcopyinout_xscale.S +++ b/sys/arm/arm/bcopyinout_xscale.S @@ -333,10 +333,10 @@ ENTRY(copyin) str r6, [r1], #0x04 str r7, [r1], #0x04 .Lcopyin_bad1: - subs r2, r2, #0x10 + subs r2, r2, #0x10 bge .Lcopyin_bad1_loop16 - adds r2, r2, #0x10 + adds r2, r2, #0x10 ldmeqfd sp!, {r4-r7} RETeq /* Return now if done */ subs r2, r2, #0x04 @@ -394,10 +394,10 @@ ENTRY(copyin) str r6, [r1], #0x04 str r7, [r1], #0x04 .Lcopyin_bad2: - subs r2, r2, #0x10 + subs r2, r2, #0x10 bge .Lcopyin_bad2_loop16 - adds r2, r2, #0x10 + adds r2, r2, #0x10 ldmeqfd sp!, {r4-r7} RETeq /* Return now if done */ subs r2, r2, #0x04 @@ -455,10 +455,10 @@ ENTRY(copyin) str r6, [r1], #0x04 str r7, [r1], #0x04 .Lcopyin_bad3: - subs r2, r2, #0x10 + subs r2, r2, #0x10 bge .Lcopyin_bad3_loop16 - adds r2, r2, #0x10 + adds r2, r2, #0x10 ldmeqfd sp!, {r4-r7} RETeq /* Return now if done */ subs r2, r2, #0x04 @@ -785,10 +785,10 @@ ENTRY(copyout) strt r6, [r1], #0x04 strt r7, [r1], #0x04 .Lcopyout_bad1: - subs r2, r2, #0x10 + subs r2, r2, #0x10 bge .Lcopyout_bad1_loop16 - adds r2, r2, #0x10 + adds r2, r2, #0x10 ldmeqfd sp!, {r4-r7} RETeq /* Return now if done */ subs r2, r2, #0x04 @@ -846,10 +846,10 @@ ENTRY(copyout) strt r6, [r1], #0x04 strt r7, [r1], #0x04 .Lcopyout_bad2: - subs r2, r2, #0x10 + subs r2, r2, #0x10 bge .Lcopyout_bad2_loop16 - adds r2, r2, #0x10 + adds r2, r2, #0x10 ldmeqfd sp!, {r4-r7} RETeq /* Return now if done */ subs r2, r2, #0x04 @@ -907,10 +907,10 @@ ENTRY(copyout) strt r6, [r1], #0x04 strt r7, [r1], #0x04 .Lcopyout_bad3: - subs r2, r2, #0x10 + subs r2, r2, #0x10 bge .Lcopyout_bad3_loop16 - adds r2, r2, #0x10 + adds r2, r2, #0x10 ldmeqfd sp!, {r4-r7} RETeq /* Return now if done */ subs r2, r2, #0x04 diff --git a/sys/arm/arm/bootconfig.c b/sys/arm/arm/bootconfig.c index 0a5d3057a2c0..3e9397e6667a 100644 --- a/sys/arm/arm/bootconfig.c +++ b/sys/arm/arm/bootconfig.c @@ -46,7 +46,7 @@ __FBSDID("$FreeBSD$"); #include -/* +/* * Function to identify and process different types of boot argument */ diff --git a/sys/arm/arm/busdma_machdep.c b/sys/arm/arm/busdma_machdep.c index f2fe377fc154..7deffed2406f 100644 --- a/sys/arm/arm/busdma_machdep.c +++ b/sys/arm/arm/busdma_machdep.c @@ -156,7 +156,7 @@ struct bus_dmamap { static STAILQ_HEAD(, bus_dmamap) bounce_map_waitinglist; static STAILQ_HEAD(, bus_dmamap) bounce_map_callbacklist; -static TAILQ_HEAD(,bus_dmamap) dmamap_freelist = +static TAILQ_HEAD(,bus_dmamap) dmamap_freelist = TAILQ_HEAD_INITIALIZER(dmamap_freelist); #define BUSDMA_STATIC_MAPS 500 @@ -210,7 +210,7 @@ arm_dmamap_freelist_init(void *dummy) { int i; - for (i = 0; i < BUSDMA_STATIC_MAPS; i++) + for (i = 0; i < BUSDMA_STATIC_MAPS; i++) TAILQ_INSERT_HEAD(&dmamap_freelist, &map_pool[i], freelist); } @@ -231,7 +231,7 @@ _bus_dma_can_bounce(vm_offset_t lowaddr, vm_offset_t highaddr) int i; for (i = 0; phys_avail[i] && phys_avail[i + 1]; i += 2) { if ((lowaddr >= phys_avail[i] && lowaddr <= phys_avail[i + 1]) - || (lowaddr < phys_avail[i] && + || (lowaddr < phys_avail[i] && highaddr > phys_avail[i])) return (1); } @@ -313,7 +313,7 @@ _busdma_alloc_dmamap(void) return (map); } -static __inline void +static __inline void _busdma_free_dmamap(bus_dmamap_t map) { if (map->flags & DMAMAP_ALLOCATED) @@ -633,7 +633,7 @@ bus_dmamem_alloc(bus_dma_tag_t dmat, void** vaddr, int flags, *vaddr = tmpaddr; } else newmap->origbuffer = newmap->allocbuffer = NULL; - } else + } else newmap->origbuffer = newmap->allocbuffer = NULL; return (0); } @@ -844,7 +844,7 @@ bus_dmamap_load_buffer(bus_dma_tag_t dmat, bus_dma_segment_t *segs, if (seg >= 0 && curaddr == lastaddr && (segs[seg].ds_len + sgsize) <= dmat->maxsegsz && (dmat->boundary == 0 || - (segs[seg].ds_addr & bmask) == + (segs[seg].ds_addr & bmask) == (curaddr & bmask))) { segs[seg].ds_len += sgsize; goto segdone; @@ -941,7 +941,7 @@ bus_dmamap_load_mbuf(bus_dma_tag_t dmat, bus_dmamap_t map, struct mbuf *m0, for (m = m0; m != NULL && error == 0; m = m->m_next) { if (m->m_len > 0) { error = bus_dmamap_load_buffer(dmat, - dm_segments, map, m->m_data, m->m_len, + dm_segments, map, m->m_data, m->m_len, pmap_kernel(), flags, &lastaddr, &nsegs); map->len += m->m_len; } @@ -951,7 +951,7 @@ bus_dmamap_load_mbuf(bus_dma_tag_t dmat, bus_dmamap_t map, struct mbuf *m0, } if (error) { - /* + /* * force "no valid mappings" on error in callback. */ (*callback)(callback_arg, dm_segments, 0, 0, error); @@ -1057,7 +1057,7 @@ bus_dmamap_load_uio(bus_dma_tag_t dmat, bus_dmamap_t map, struct uio *uio, } if (error) { - /* + /* * force "no valid mappings" on error in callback. */ (*callback)(callback_arg, dm_segments, 0, 0, error); @@ -1092,7 +1092,7 @@ bus_dmamap_sync_buf(void *buf, int len, bus_dmasync_op_t op) { char _tmp_cl[arm_dcache_align], _tmp_clend[arm_dcache_align]; register_t s; - int partial; + int partial; if ((op & BUS_DMASYNC_PREWRITE) && !(op & BUS_DMASYNC_PREREAD)) { cpu_dcache_wb_range((vm_offset_t)buf, len); @@ -1116,7 +1116,7 @@ bus_dmamap_sync_buf(void *buf, int len, bus_dmasync_op_t op) ~arm_dcache_align_mask), (vm_offset_t)buf & arm_dcache_align_mask); if (((vm_offset_t)buf + len) & arm_dcache_align_mask) - memcpy(_tmp_clend, + memcpy(_tmp_clend, (void *)((vm_offset_t)buf + len), arm_dcache_align - (((vm_offset_t)(buf) + len) & arm_dcache_align_mask)); @@ -1126,11 +1126,11 @@ bus_dmamap_sync_buf(void *buf, int len, bus_dmasync_op_t op) if (partial) { if ((vm_offset_t)buf & arm_dcache_align_mask) memcpy((void *)((vm_offset_t)buf & - ~arm_dcache_align_mask), _tmp_cl, + ~arm_dcache_align_mask), _tmp_cl, (vm_offset_t)buf & arm_dcache_align_mask); if (((vm_offset_t)buf + len) & arm_dcache_align_mask) - memcpy((void *)((vm_offset_t)buf + len), - _tmp_clend, arm_dcache_align - + memcpy((void *)((vm_offset_t)buf + len), + _tmp_clend, arm_dcache_align - (((vm_offset_t)(buf) + len) & arm_dcache_align_mask)); intr_restore(s); @@ -1146,7 +1146,7 @@ _bus_dmamap_sync_bp(bus_dma_tag_t dmat, bus_dmamap_t map, bus_dmasync_op_t op) STAILQ_FOREACH(bpage, &map->bpages, links) { if (op & BUS_DMASYNC_PREWRITE) { bcopy((void *)bpage->datavaddr, - (void *)(bpage->vaddr_nocache != 0 ? + (void *)(bpage->vaddr_nocache != 0 ? bpage->vaddr_nocache : bpage->vaddr), bpage->datacount); if (bpage->vaddr_nocache == 0) { @@ -1164,7 +1164,7 @@ _bus_dmamap_sync_bp(bus_dma_tag_t dmat, bus_dmamap_t map, bus_dmasync_op_t op) cpu_l2cache_inv_range(bpage->vaddr, bpage->datacount); } - bcopy((void *)(bpage->vaddr_nocache != 0 ? + bcopy((void *)(bpage->vaddr_nocache != 0 ? bpage->vaddr_nocache : bpage->vaddr), (void *)bpage->datavaddr, bpage->datacount); dmat->bounce_zone->total_bounced++; @@ -1179,7 +1179,7 @@ _bus_dma_buf_is_in_bp(bus_dmamap_t map, void *buf, int len) STAILQ_FOREACH(bpage, &map->bpages, links) { if ((vm_offset_t)buf >= bpage->datavaddr && - (vm_offset_t)buf + len <= bpage->datavaddr + + (vm_offset_t)buf + len <= bpage->datavaddr + bpage->datacount) return (1); } diff --git a/sys/arm/arm/cpufunc.c b/sys/arm/arm/cpufunc.c index 4b62e9846dfb..b29dfd9d227a 100644 --- a/sys/arm/arm/cpufunc.c +++ b/sys/arm/arm/cpufunc.c @@ -222,7 +222,7 @@ struct cpu_functions arm8_cpufuncs = { arm8_context_switch, /* context_switch */ arm8_setup /* cpu setup */ -}; +}; #endif /* CPU_ARM8 */ #ifdef CPU_ARM9 @@ -328,7 +328,7 @@ struct cpu_functions armv5_ec_cpufuncs = { (void *)cpufunc_nullop, /* l2cache_wbinv_range */ (void *)cpufunc_nullop, /* l2cache_inv_range */ (void *)cpufunc_nullop, /* l2cache_wb_range */ - + /* Other functions */ cpufunc_nullop, /* flush_prefetchbuf */ @@ -530,7 +530,7 @@ struct cpu_functions sa110_cpufuncs = { sa110_context_switch, /* context_switch */ sa110_setup /* cpu setup */ -}; +}; #endif /* CPU_SA110 */ #if defined(CPU_SA1100) || defined(CPU_SA1110) @@ -591,7 +591,7 @@ struct cpu_functions sa11x0_cpufuncs = { sa11x0_context_switch, /* context_switch */ sa11x0_setup /* cpu setup */ -}; +}; #endif /* CPU_SA1100 || CPU_SA1110 */ #ifdef CPU_IXP12X0 @@ -652,7 +652,7 @@ struct cpu_functions ixp12x0_cpufuncs = { ixp12x0_context_switch, /* context_switch */ ixp12x0_setup /* cpu setup */ -}; +}; #endif /* CPU_IXP12X0 */ #if defined(CPU_XSCALE_80200) || defined(CPU_XSCALE_80321) || \ @@ -841,7 +841,7 @@ struct cpu_functions fa526_cpufuncs = { fa526_context_switch, /* context_switch */ fa526_setup /* cpu setup */ -}; +}; #endif /* CPU_FA526 || CPU_FA626TE */ @@ -1099,7 +1099,7 @@ set_cpufuncs() cpu_reset_needs_v4_MMU_disable = 1; /* V4 or higher */ get_cachetype_cp15(); arm10_dcache_sets_inc = 1U << arm_dcache_l2_linesize; - arm10_dcache_sets_max = + arm10_dcache_sets_max = (1U << (arm_dcache_l2_linesize + arm_dcache_l2_nsets)) - arm10_dcache_sets_inc; arm10_dcache_index_inc = 1U << (32 - arm_dcache_l2_assoc); @@ -1353,7 +1353,7 @@ early_abort_fixup(arg) int loop; int count; int *registers = &frame->tf_r0; - + DFC_PRINTF(("LDM/STM\n")); DFC_DISASSEMBLE(fault_pc); if (fault_instruction & (1 << 21)) { @@ -1533,7 +1533,7 @@ late_abort_fixup(arg) offset = fault_instruction & 0x0f; if (offset == base) return ABORT_FIXUP_FAILED; - + /* * Register offset - hard we have to * cope with shifts ! @@ -1647,8 +1647,8 @@ static u_int parse_cpu_options(char *, struct cpu_option *, u_int); static u_int parse_cpu_options(args, optlist, cpuctrl) char *args; - struct cpu_option *optlist; - u_int cpuctrl; + struct cpu_option *optlist; + u_int cpuctrl; { int integer; @@ -1811,7 +1811,7 @@ arm8_setup(args) ctrl = cpuctrl; cpu_control(0xffffffff, cpuctrl); - /* Set the clock/test register */ + /* Set the clock/test register */ if (setclock) arm8_clock_config(0x7f, clocktest); } @@ -1891,7 +1891,7 @@ arm10_setup(args) int cpuctrl, cpuctrlmask; cpuctrl = CPU_CONTROL_MMU_ENABLE | CPU_CONTROL_SYST_ENABLE - | CPU_CONTROL_IC_ENABLE | CPU_CONTROL_DC_ENABLE + | CPU_CONTROL_IC_ENABLE | CPU_CONTROL_DC_ENABLE | CPU_CONTROL_WBUF_ENABLE | CPU_CONTROL_BPRD_ENABLE; cpuctrlmask = CPU_CONTROL_MMU_ENABLE | CPU_CONTROL_SYST_ENABLE | CPU_CONTROL_IC_ENABLE | CPU_CONTROL_DC_ENABLE @@ -2031,7 +2031,7 @@ sa110_setup(args) /* cpu_control(cpuctrlmask, cpuctrl);*/ cpu_control(0xffffffff, cpuctrl); - /* + /* * enable clockswitching, note that this doesn't read or write to r0, * r0 is just to make it valid asm */ @@ -2089,7 +2089,7 @@ sa11x0_setup(args) cpuctrl |= CPU_CONTROL_VECRELOC; /* Clear out the cache */ cpu_idcache_wbinv_all(); - /* Set the control register */ + /* Set the control register */ ctrl = cpuctrl; cpu_control(0xffffffff, cpuctrl); } @@ -2198,7 +2198,7 @@ ixp12x0_setup(args) /* Clear out the cache */ cpu_idcache_wbinv_all(); - /* Set the control register */ + /* Set the control register */ ctrl = cpuctrl; /* cpu_control(0xffffffff, cpuctrl); */ cpu_control(cpuctrlmask, cpuctrl); @@ -2292,5 +2292,5 @@ xscale_setup(args) __asm __volatile("mcr p15, 0, %0, c1, c0, 1" : : "r" (auxctl)); } -#endif /* CPU_XSCALE_80200 || CPU_XSCALE_80321 || CPU_XSCALE_PXA2X0 || CPU_XSCALE_IXP425 +#endif /* CPU_XSCALE_80200 || CPU_XSCALE_80321 || CPU_XSCALE_PXA2X0 || CPU_XSCALE_IXP425 CPU_XSCALE_80219 */ diff --git a/sys/arm/arm/cpufunc_asm.S b/sys/arm/arm/cpufunc_asm.S index d9cc70d5495f..99b40f4fc37d 100644 --- a/sys/arm/arm/cpufunc_asm.S +++ b/sys/arm/arm/cpufunc_asm.S @@ -34,14 +34,14 @@ * * RiscBSD kernel project * - * cpufunc.S + * cpufunc.S * * Assembly functions for CPU / MMU / TLB specific operations * * Created : 30/01/97 * */ - + #include __FBSDID("$FreeBSD$"); @@ -86,13 +86,13 @@ ENTRY(cpufunc_faultaddress) * Generic functions to write the internal coprocessor registers * * - * Currently these registers are + * Currently these registers are * c1 - CPU Control * c3 - Domain Access Control * * All other registers are CPU architecture specific */ - + #if 0 /* See below. */ ENTRY(cpufunc_control) mcr p15, 0, r0, c1, c0, 0 @@ -107,12 +107,12 @@ ENTRY(cpufunc_domains) * Generic functions to read/modify/write the internal coprocessor registers * * - * Currently these registers are + * Currently these registers are * c1 - CPU Control * * All other registers are CPU architecture specific */ - + ENTRY(cpufunc_control) mrc p15, 0, r3, c1, c0, 0 /* Read the control register */ bic r2, r3, r0 /* Clear bits */ diff --git a/sys/arm/arm/cpufunc_asm_arm10.S b/sys/arm/arm/cpufunc_asm_arm10.S index d1d55ff254aa..22da6aadc950 100644 --- a/sys/arm/arm/cpufunc_asm_arm10.S +++ b/sys/arm/arm/cpufunc_asm_arm10.S @@ -31,7 +31,7 @@ * ARM10 assembly functions for CPU / MMU / TLB specific operations * */ - + #include __FBSDID("$FreeBSD$"); @@ -255,7 +255,7 @@ ENTRY(arm10_context_switch) /* * Parameters for the cache cleaning code. Note that the order of these - * four variables is assumed in the code above. Hence the reason for + * four variables is assumed in the code above. Hence the reason for * declaring them in the assembler file. */ .align 0 diff --git a/sys/arm/arm/cpufunc_asm_arm11.S b/sys/arm/arm/cpufunc_asm_arm11.S index 1ea495767a78..81914db2a5e2 100644 --- a/sys/arm/arm/cpufunc_asm_arm11.S +++ b/sys/arm/arm/cpufunc_asm_arm11.S @@ -33,7 +33,7 @@ * XXX We make no attempt at present to take advantage of the v6 memroy * architecture or physically tagged cache. */ - + #include __FBSDID("$FreeBSD$"); diff --git a/sys/arm/arm/cpufunc_asm_arm7tdmi.S b/sys/arm/arm/cpufunc_asm_arm7tdmi.S index d301efc1f7f0..fed6f16f9237 100644 --- a/sys/arm/arm/cpufunc_asm_arm7tdmi.S +++ b/sys/arm/arm/cpufunc_asm_arm7tdmi.S @@ -34,7 +34,7 @@ * ARM7TDMI assembly functions for CPU / MMU / TLB specific operations * */ - + #include __FBSDID("$FreeBSD$"); diff --git a/sys/arm/arm/cpufunc_asm_arm8.S b/sys/arm/arm/cpufunc_asm_arm8.S index febe8f0a545e..9f23548ffdca 100644 --- a/sys/arm/arm/cpufunc_asm_arm8.S +++ b/sys/arm/arm/cpufunc_asm_arm8.S @@ -35,7 +35,7 @@ * ARM8 assembly functions for CPU / MMU / TLB specific operations * */ - + #include __FBSDID("$FreeBSD$"); diff --git a/sys/arm/arm/cpufunc_asm_arm9.S b/sys/arm/arm/cpufunc_asm_arm9.S index 0734b03ee68a..291d3f7bdbfc 100644 --- a/sys/arm/arm/cpufunc_asm_arm9.S +++ b/sys/arm/arm/cpufunc_asm_arm9.S @@ -30,7 +30,7 @@ * * ARM9 assembly functions for CPU / MMU / TLB specific operations */ - + #include __FBSDID("$FreeBSD$"); @@ -242,7 +242,7 @@ ENTRY(arm9_context_switch) /* * Parameters for the cache cleaning code. Note that the order of these - * four variables is assumed in the code above. Hence the reason for + * four variables is assumed in the code above. Hence the reason for * declaring them in the assembler file. */ .align 0 diff --git a/sys/arm/arm/cpufunc_asm_armv4.S b/sys/arm/arm/cpufunc_asm_armv4.S index ccdcce213c89..1b8797dc97fc 100644 --- a/sys/arm/arm/cpufunc_asm_armv4.S +++ b/sys/arm/arm/cpufunc_asm_armv4.S @@ -36,7 +36,7 @@ * ARM9 assembly functions for CPU / MMU / TLB specific operations * */ - + #include __FBSDID("$FreeBSD$"); diff --git a/sys/arm/arm/cpufunc_asm_armv5.S b/sys/arm/arm/cpufunc_asm_armv5.S index 53e38e0516ce..2faa5f48f93c 100644 --- a/sys/arm/arm/cpufunc_asm_armv5.S +++ b/sys/arm/arm/cpufunc_asm_armv5.S @@ -32,7 +32,7 @@ * These routines can be used by any core that supports the set/index * operations. */ - + #include __FBSDID("$FreeBSD$"); @@ -224,7 +224,7 @@ ENTRY(armv5_dcache_wbinv_all) /* * Parameters for the cache cleaning code. Note that the order of these - * four variables is assumed in the code above. Hence the reason for + * four variables is assumed in the code above. Hence the reason for * declaring them in the assembler file. */ .align 0 diff --git a/sys/arm/arm/cpufunc_asm_sa1.S b/sys/arm/arm/cpufunc_asm_sa1.S index 7279e65077e7..0bdd6e7a768a 100644 --- a/sys/arm/arm/cpufunc_asm_sa1.S +++ b/sys/arm/arm/cpufunc_asm_sa1.S @@ -35,7 +35,7 @@ * SA-1 assembly functions for CPU / MMU / TLB specific operations * */ - + #include __FBSDID("$FreeBSD$"); @@ -58,7 +58,7 @@ ENTRY(sa1_setttb) #else ldr r3, .Lblock_userspace_access ldr r2, [r3] - orr r1, r2, #1 + orr r1, r2, #1 str r1, [r3] #endif stmfd sp!, {r0-r3, lr} @@ -67,7 +67,7 @@ ENTRY(sa1_setttb) mcr p15, 0, r0, c7, c5, 0 /* invalidate I$ and BTB */ mcr p15, 0, r0, c7, c10, 4 /* drain write and fill buffer */ - /* Write the TTB */ + /* Write the TTB */ mcr p15, 0, r0, c2, c0, 0 /* If we have updated the TTB we must flush the TLB */ diff --git a/sys/arm/arm/cpufunc_asm_xscale.S b/sys/arm/arm/cpufunc_asm_xscale.S index b4700e4a4810..3601b9a3059f 100644 --- a/sys/arm/arm/cpufunc_asm_xscale.S +++ b/sys/arm/arm/cpufunc_asm_xscale.S @@ -71,7 +71,7 @@ * * XScale assembly functions for CPU / MMU / TLB specific operations */ - + #include __FBSDID("$FreeBSD$"); @@ -138,7 +138,7 @@ ENTRY(xscale_setttb) #else ldr r3, .Lblock_userspace_access ldr r2, [r3] - orr r1, r2, #1 + orr r1, r2, #1 str r1, [r3] #endif stmfd sp!, {r0-r3, lr} @@ -150,7 +150,7 @@ ENTRY(xscale_setttb) ldmfd sp!, {r0-r3, lr} - /* Write the TTB */ + /* Write the TTB */ mcr p15, 0, r0, c2, c0, 0 /* If we have updated the TTB we must flush the TLB */ diff --git a/sys/arm/arm/cpufunc_asm_xscale_c3.S b/sys/arm/arm/cpufunc_asm_xscale_c3.S index 8975fb5c06c3..9a003d0e4aad 100644 --- a/sys/arm/arm/cpufunc_asm_xscale_c3.S +++ b/sys/arm/arm/cpufunc_asm_xscale_c3.S @@ -72,7 +72,7 @@ * * XScale core 3 assembly functions for CPU / MMU / TLB specific operations */ - + #include __FBSDID("$FreeBSD$"); @@ -339,7 +339,7 @@ ENTRY(xscalec3_setttb) #else ldr r3, .Lblock_userspace_access ldr r2, [r3] - orr r1, r2, #1 + orr r1, r2, #1 str r1, [r3] #endif stmfd sp!, {r0-r3, lr} @@ -354,7 +354,7 @@ ENTRY(xscalec3_setttb) #ifdef ARM_USE_L2_CACHE orr r0, r0, #0x18 /* cache the page table in L2 */ #endif - /* Write the TTB */ + /* Write the TTB */ mcr p15, 0, r0, c2, c0, 0 /* If we have updated the TTB we must flush the TLB */ diff --git a/sys/arm/arm/db_disasm.c b/sys/arm/arm/db_disasm.c index 52ff7d700235..d7581fd9c008 100644 --- a/sys/arm/arm/db_disasm.c +++ b/sys/arm/arm/db_disasm.c @@ -50,7 +50,7 @@ static u_int db_disasm_read_word(u_int); static void db_disasm_printaddr(u_int); static const disasm_interface_t db_disasm_interface = { - db_disasm_read_word, + db_disasm_read_word, db_disasm_printaddr, db_printf }; diff --git a/sys/arm/arm/db_interface.c b/sys/arm/arm/db_interface.c index 5ec9110282e8..690665087678 100644 --- a/sys/arm/arm/db_interface.c +++ b/sys/arm/arm/db_interface.c @@ -6,24 +6,24 @@ * Mach Operating System * Copyright (c) 1991,1990 Carnegie Mellon University * All Rights Reserved. - * + * * Permission to use, copy, modify and distribute this software and its * documentation is hereby granted, provided that both the copyright * notice and this permission notice appear in all copies of the * software, derivative works or modified versions, and any portions * thereof, and that both notices appear in supporting documentation. - * + * * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. - * + * * Carnegie Mellon requests users of this software to return to - * + * * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU * School of Computer Science * Carnegie Mellon University * Pittsburgh PA 15213-3890 - * + * * any improvements or extensions that they make and grant Carnegie the * rights to redistribute these changes. * @@ -325,7 +325,7 @@ branch_taken(u_int insn, db_addr_t pc) break; default: break; /* XXX */ - } + } } return (addr + offset); diff --git a/sys/arm/arm/db_trace.c b/sys/arm/arm/db_trace.c index 5a0f599e9987..d6e1c3a0f4b9 100644 --- a/sys/arm/arm/db_trace.c +++ b/sys/arm/arm/db_trace.c @@ -7,24 +7,24 @@ * Mach Operating System * Copyright (c) 1991,1990 Carnegie Mellon University * All Rights Reserved. - * + * * Permission to use, copy, modify and distribute this software and its * documentation is hereby granted, provided that both the copyright * notice and this permission notice appear in all copies of the * software, derivative works or modified versions, and any portions * thereof, and that both notices appear in supporting documentation. - * + * * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. - * + * * Carnegie Mellon requests users of this software to return to - * + * * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU * School of Computer Science * Carnegie Mellon University * Pittsburgh PA 15213-3890 - * + * * any improvements or extensions that they make and grant Carnegie the * rights to redistribute these changes. */ @@ -55,7 +55,7 @@ __FBSDID("$FreeBSD$"); * a structure to represent them is a good idea. * * Here's the diagram from the APCS. Increasing address is _up_ the page. - * + * * save code pointer [fp] <- fp points to here * return link value [fp, #-4] * return sp value [fp, #-8] @@ -72,9 +72,9 @@ __FBSDID("$FreeBSD$"); * [saved a2 value] * [saved a1 value] * - * The save code pointer points twelve bytes beyond the start of the - * code sequence (usually a single STM) that created the stack frame. - * We have to disassemble it if we want to know which of the optional + * The save code pointer points twelve bytes beyond the start of the + * code sequence (usually a single STM) that created the stack frame. + * We have to disassemble it if we want to know which of the optional * fields are actually present. */ diff --git a/sys/arm/arm/disassem.c b/sys/arm/arm/disassem.c index 9aa63d886eb8..f05fb3fbdfc7 100644 --- a/sys/arm/arm/disassem.c +++ b/sys/arm/arm/disassem.c @@ -131,9 +131,9 @@ static const struct arm32_insn arm32_i[] = { { 0x0c500000, 0x04400000, "strb", "daW" }, { 0x0c500000, 0x04500000, "ldrb", "daW" }, { 0x0e1f0000, 0x080d0000, "stm", "YnWl" },/* separate out r13 base */ - { 0x0e1f0000, 0x081d0000, "ldm", "YnWl" },/* separate out r13 base */ + { 0x0e1f0000, 0x081d0000, "ldm", "YnWl" },/* separate out r13 base */ { 0x0e100000, 0x08000000, "stm", "XnWl" }, - { 0x0e100000, 0x08100000, "ldm", "XnWl" }, + { 0x0e100000, 0x08100000, "ldm", "XnWl" }, { 0x0e1000f0, 0x00100090, "ldrb", "de" }, { 0x0e1000f0, 0x00000090, "strb", "de" }, { 0x0e1000f0, 0x001000d0, "ldrsb", "de" }, @@ -329,7 +329,7 @@ disasm(const disasm_interface_t *di, vm_offset_t loc, int altfmt) di->di_printf("#0x%08x", (insn & 0xff) << (32 - rotate) | (insn & 0xff) >> rotate); - } else { + } else { disasm_register_shift(di, insn); } break; diff --git a/sys/arm/arm/dump_machdep.c b/sys/arm/arm/dump_machdep.c index cbff96b996ea..e8ba5768f9ab 100644 --- a/sys/arm/arm/dump_machdep.c +++ b/sys/arm/arm/dump_machdep.c @@ -197,7 +197,7 @@ cb_dumpdata(struct md_pa *mdp, int seqnr, void *arg) #ifdef SW_WATCHDOG wdog_kern_pat(WD_LASTVAL); #endif - error = dump_write(di, + error = dump_write(di, (void *)(pa - (pa & L1_ADDR_BITS)),0, dumplo, sz); if (error) break; diff --git a/sys/arm/arm/elf_trampoline.c b/sys/arm/arm/elf_trampoline.c index 403c012e49b3..121bd56bdb7f 100644 --- a/sys/arm/arm/elf_trampoline.c +++ b/sys/arm/arm/elf_trampoline.c @@ -202,7 +202,7 @@ _startC(void) "orr %0, %0, %1\n" "mrc p15, 0, %1, c1, c0, 0\n" "bic %1, %1, #1\n" /* Disable MMU */ - "orr %1, %1, #(4 | 8)\n" /* Add DC enable, + "orr %1, %1, #(4 | 8)\n" /* Add DC enable, WBUF enable */ "orr %1, %1, #0x1000\n" /* Add IC enable */ "orr %1, %1, #(0x800)\n" /* BPRD enable */ @@ -397,7 +397,7 @@ inflate_kernel(void *kernel, void *startaddr) #endif void * -load_kernel(unsigned int kstart, unsigned int curaddr,unsigned int func_end, +load_kernel(unsigned int kstart, unsigned int curaddr,unsigned int func_end, int d) { Elf32_Ehdr *eh; @@ -436,7 +436,7 @@ load_kernel(unsigned int kstart, unsigned int curaddr,unsigned int func_end, if (phdr[j].p_type == PT_LOAD && shdr[i].sh_offset >= phdr[j].p_offset && - (shdr[i].sh_offset + + (shdr[i].sh_offset + shdr[i].sh_size <= phdr[j].p_offset + phdr[j].p_filesz)) { @@ -445,7 +445,7 @@ load_kernel(unsigned int kstart, unsigned int curaddr,unsigned int func_end, j = eh->e_phnum; } } - if (shdr[i].sh_offset != 0 && + if (shdr[i].sh_offset != 0 && shdr[i].sh_size != 0) { symtabindex = i; symstrindex = shdr[i].sh_link; @@ -457,7 +457,7 @@ load_kernel(unsigned int kstart, unsigned int curaddr,unsigned int func_end, ssym = lastaddr; if (d) { memcpy((void *)func_end, (void *)( - shdr[symtabindex].sh_offset + kstart), + shdr[symtabindex].sh_offset + kstart), shdr[symtabindex].sh_size); memcpy((void *)(func_end + shdr[symtabindex].sh_size), @@ -469,7 +469,7 @@ load_kernel(unsigned int kstart, unsigned int curaddr,unsigned int func_end, sizeof(shdr[symtabindex].sh_size)); lastaddr += sizeof(shdr[symstrindex].sh_size); lastaddr += shdr[symstrindex].sh_size; - lastaddr = roundup(lastaddr, + lastaddr = roundup(lastaddr, sizeof(shdr[symstrindex].sh_size)); } @@ -488,13 +488,13 @@ load_kernel(unsigned int kstart, unsigned int curaddr,unsigned int func_end, (void*)(kstart + phdr[i].p_offset), phdr[i].p_filesz); /* Clean space from oversized segments, eg: bss. */ if (phdr[i].p_filesz < phdr[i].p_memsz) - bzero((void *)(phdr[i].p_vaddr - KERNVIRTADDR + + bzero((void *)(phdr[i].p_vaddr - KERNVIRTADDR + curaddr + phdr[i].p_filesz), phdr[i].p_memsz - phdr[i].p_filesz); } /* Now grab the symbol tables. */ if (symtabindex >= 0 && symstrindex >= 0) { - *(Elf_Size *)lastaddr = + *(Elf_Size *)lastaddr = shdr[symtabindex].sh_size; lastaddr += sizeof(shdr[symtabindex].sh_size); memcpy((void*)lastaddr, @@ -511,7 +511,7 @@ load_kernel(unsigned int kstart, unsigned int curaddr,unsigned int func_end, shdr[symtabindex].sh_size), shdr[symstrindex].sh_size); lastaddr += shdr[symstrindex].sh_size; - lastaddr = roundup(lastaddr, + lastaddr = roundup(lastaddr, sizeof(shdr[symstrindex].sh_size)); *(Elf_Addr *)curaddr = MAGIC_TRAMP_NUMBER; *((Elf_Addr *)curaddr + 1) = ssym - curaddr + KERNVIRTADDR; @@ -572,10 +572,10 @@ setup_pagetables(unsigned int pt_addr, vm_paddr_t physstart, vm_paddr_t physend, "sub pc, pc, #4\n" : "=r" (tmp) : "r" (pd), "r" (domain)); - /* + /* * XXX: This is the most stupid workaround I've ever wrote. * For some reason, the KB9202 won't boot the kernel unless - * we access an address which is not in the + * we access an address which is not in the * 0x20000000 - 0x20ffffff range. I hope I'll understand * what's going on later. */ @@ -596,7 +596,7 @@ __start(void) curaddr = (void*)((unsigned int)curaddr & 0xfff00000); #ifdef KZIP if (*kernel == 0x1f && kernel[1] == 0x8b) { - pt_addr = (((int)&_end + KERNSIZE + 0x100) & + pt_addr = (((int)&_end + KERNSIZE + 0x100) & ~(L1_TABLE_SIZE - 1)) + L1_TABLE_SIZE; #ifdef CPU_ARM9 @@ -609,7 +609,7 @@ __start(void) /* Gzipped kernel */ dst = inflate_kernel(kernel, &_end); kernel = (char *)&_end; - altdst = 4 + load_kernel((unsigned int)kernel, + altdst = 4 + load_kernel((unsigned int)kernel, (unsigned int)curaddr, (unsigned int)&func_end + 800 , 0); if (altdst > dst) @@ -627,8 +627,8 @@ __start(void) :"=r" (pt_addr)); } else #endif - dst = 4 + load_kernel((unsigned int)&kernel_start, - (unsigned int)curaddr, + dst = 4 + load_kernel((unsigned int)&kernel_start, + (unsigned int)curaddr, (unsigned int)&func_end, 0); dst = (void *)(((vm_offset_t)dst & ~3)); pt_addr = ((unsigned int)dst &~(L1_TABLE_SIZE - 1)) + L1_TABLE_SIZE; @@ -637,8 +637,8 @@ __start(void) sp = pt_addr + L1_TABLE_SIZE + 8192; sp = sp &~3; dst = (void *)(sp + 4); - memcpy((void *)dst, (void *)&load_kernel, (unsigned int)&func_end - + memcpy((void *)dst, (void *)&load_kernel, (unsigned int)&func_end - (unsigned int)&load_kernel + 800); - do_call(dst, kernel, dst + (unsigned int)(&func_end) - + do_call(dst, kernel, dst + (unsigned int)(&func_end) - (unsigned int)(&load_kernel) + 800, sp); } diff --git a/sys/arm/arm/exception.S b/sys/arm/arm/exception.S index 30df0b19e552..23c6dca84bc1 100644 --- a/sys/arm/arm/exception.S +++ b/sys/arm/arm/exception.S @@ -189,7 +189,7 @@ Laddress_exception_msg: * This function uses PULLFRAMEFROMSVCANDEXIT and * DO_AST * only be called if the exception handler used PUSHFRAMEINSVC - * + * */ exception_exit: diff --git a/sys/arm/arm/gdb_machdep.c b/sys/arm/arm/gdb_machdep.c index 2cccb7e60341..11b9c0d2d912 100644 --- a/sys/arm/arm/gdb_machdep.c +++ b/sys/arm/arm/gdb_machdep.c @@ -74,8 +74,8 @@ gdb_cpu_getreg(int regnum, size_t *regsz) case 12: return (&kdb_thrctx->un_32.pcb32_r12); case 13: stacktest = kdb_thrctx->un_32.pcb32_sp + 5 * 4; return (&stacktest); - case 15: - /* + case 15: + /* * On context switch, the PC is not put in the PCB, but * we can retrieve it from the stack. */ diff --git a/sys/arm/arm/in_cksum.c b/sys/arm/arm/in_cksum.c index 4222bc893c3b..3bce65018397 100644 --- a/sys/arm/arm/in_cksum.c +++ b/sys/arm/arm/in_cksum.c @@ -149,4 +149,4 @@ u_int in_cksum_hdr(const struct ip *ip) union l_util l_util; REDUCE16; return (~sum & 0xffff); -} +} diff --git a/sys/arm/arm/intr.c b/sys/arm/arm/intr.c index 181606489679..e79e44c70aa7 100644 --- a/sys/arm/arm/intr.c +++ b/sys/arm/arm/intr.c @@ -40,7 +40,7 @@ __FBSDID("$FreeBSD$"); #include #include -#include +#include #include #include #include @@ -62,7 +62,7 @@ void arm_handler_execute(struct trapframe *, int); void (*arm_post_filter)(void *) = NULL; void -arm_setup_irqhandler(const char *name, driver_filter_t *filt, +arm_setup_irqhandler(const char *name, driver_filter_t *filt, void (*hand)(void*), void *arg, int irq, int flags, void **cookiep) { struct intr_event *event; @@ -78,7 +78,7 @@ arm_setup_irqhandler(const char *name, driver_filter_t *filt, if (error) return; intr_events[irq] = event; - last_printed += + last_printed += snprintf(intrnames + last_printed, MAXCOMLEN + 1, "irq%d: %s", irq, name); diff --git a/sys/arm/arm/irq_dispatch.S b/sys/arm/arm/irq_dispatch.S index 3995731d84c9..6e510dd33d74 100644 --- a/sys/arm/arm/irq_dispatch.S +++ b/sys/arm/arm/irq_dispatch.S @@ -103,7 +103,7 @@ ASENTRY_NP(irq_entry) .global _C_LABEL(intrnames), _C_LABEL(sintrnames) .global _C_LABEL(intrcnt), _C_LABEL(sintrcnt) -_C_LABEL(intrnames): +_C_LABEL(intrnames): .space NIRQ * (MAXCOMLEN + 1) _C_LABEL(intrcnt): .space NIRQ * 4 diff --git a/sys/arm/arm/machdep.c b/sys/arm/arm/machdep.c index 0cceab0f4cae..7f5cdfecec21 100644 --- a/sys/arm/arm/machdep.c +++ b/sys/arm/arm/machdep.c @@ -141,14 +141,14 @@ sendsig(catcher, ksi, mask) /* Allocate and validate space for the signal handler context. */ if ((td->td_pflags & TDP_ALTSTACK) != 0 && !(onstack) && SIGISMEMBER(psp->ps_sigonstack, sig)) { - fp = (struct sigframe *)(td->td_sigstk.ss_sp + + fp = (struct sigframe *)(td->td_sigstk.ss_sp + td->td_sigstk.ss_size); #if defined(COMPAT_43) td->td_sigstk.ss_flags |= SS_ONSTACK; #endif } else fp = (struct sigframe *)td->td_frame->tf_usr_sp; - + /* make room on the stack */ fp--; @@ -158,7 +158,7 @@ sendsig(catcher, ksi, mask) get_mcontext(td, &frame.sf_uc.uc_mcontext, 0); frame.sf_si = ksi->ksi_info; frame.sf_uc.uc_sigmask = *mask; - frame.sf_uc.uc_stack.ss_flags = (td->td_pflags & TDP_ALTSTACK ) + frame.sf_uc.uc_stack.ss_flags = (td->td_pflags & TDP_ALTSTACK ) ? ((onstack) ? SS_ONSTACK : 0) : SS_DISABLE; frame.sf_uc.uc_stack = td->td_sigstk; mtx_unlock(&psp->ps_mtx); @@ -451,7 +451,7 @@ ptrace_single_step(struct thread *td) ("Didn't clear single step")); p = td->td_proc; PROC_UNLOCK(p); - error = ptrace_read_int(td, td->td_frame->tf_pc + 4, + error = ptrace_read_int(td, td->td_frame->tf_pc + 4, &td->td_md.md_ptrace_instr); if (error) goto out; @@ -726,4 +726,3 @@ init_proc0(vm_offset_t kstack) thread0.td_frame = &proc0_tf; pcpup->pc_curpcb = thread0.td_pcb; } - diff --git a/sys/arm/arm/mem.c b/sys/arm/arm/mem.c index 2a710d496290..e2e8588903f4 100644 --- a/sys/arm/arm/mem.c +++ b/sys/arm/arm/mem.c @@ -101,7 +101,7 @@ memrw(struct cdev *dev, struct uio *uio, int flags) v &= ~PAGE_MASK; for (i = 0; dump_avail[i] || dump_avail[i + 1]; i += 2) { - if (v >= dump_avail[i] && + if (v >= dump_avail[i] && v < dump_avail[i + 1]) { address_valid = 1; break; @@ -129,11 +129,11 @@ memrw(struct cdev *dev, struct uio *uio, int flags) addr = trunc_page(uio->uio_offset); eaddr = round_page(uio->uio_offset + c); - for (; addr < eaddr; addr += PAGE_SIZE) + for (; addr < eaddr; addr += PAGE_SIZE) if (pmap_extract(kernel_pmap, addr) == 0) return (EFAULT); if (!kernacc((caddr_t)(int)uio->uio_offset, c, - uio->uio_rw == UIO_READ ? + uio->uio_rw == UIO_READ ? VM_PROT_READ : VM_PROT_WRITE)) #ifdef ARM_USE_SMALL_ALLOC if (addr <= VM_MAXUSER_ADDRESS || diff --git a/sys/arm/arm/nexus.c b/sys/arm/arm/nexus.c index 422889e23acb..04cf1bfa8f6f 100644 --- a/sys/arm/arm/nexus.c +++ b/sys/arm/arm/nexus.c @@ -121,7 +121,7 @@ nexus_setup_intr(device_t dev, device_t child, struct resource *res, int flags, if ((rman_get_flags(res) & RF_SHAREABLE) == 0) flags |= INTR_EXCL; - arm_setup_irqhandler(device_get_nameunit(child), + arm_setup_irqhandler(device_get_nameunit(child), filt, intr, arg, rman_get_start(res), flags, cookiep); return (0); } diff --git a/sys/arm/arm/pmap.c b/sys/arm/arm/pmap.c index 5e49a440a06b..6a7ebfd0feba 100644 --- a/sys/arm/arm/pmap.c +++ b/sys/arm/arm/pmap.c @@ -177,7 +177,7 @@ __FBSDID("$FreeBSD$"); #define dprintf printf int pmap_debug_level = 0; -#define PMAP_INLINE +#define PMAP_INLINE #else /* PMAP_DEBUG */ #define PDEBUG(_lev_,_stat_) /* Nothing */ #define dprintf(x, arg...) @@ -852,7 +852,7 @@ pmap_get_l2_bucket(pmap_t pm, vm_offset_t va) * bucket/page table in place. * * Note that if a new L2 bucket/page was allocated, the caller *must* - * increment the bucket occupancy counter appropriately *before* + * increment the bucket occupancy counter appropriately *before* * releasing the pmap's lock to ensure no other thread or cpu deallocates * the bucket/page in the meantime. */ @@ -903,7 +903,7 @@ pmap_alloc_l2_bucket(pmap_t pm, vm_offset_t va) */ pm->pm_l2[L2_IDX(l1idx)] = l2; } - } + } l2b = &l2->l2_bucket[L2_BUCKET(l1idx)]; @@ -1100,7 +1100,7 @@ pmap_l2ptp_ctor(void *mem, int size, void *arg, int flags) if ((pte & L2_S_CACHE_MASK) != pte_l2_s_cache_mode_pt) { /* - * Page tables must have the cache-mode set to + * Page tables must have the cache-mode set to * Write-Thru. */ *ptep = (pte & ~L2_S_CACHE_MASK) | pte_l2_s_cache_mode_pt; @@ -1415,7 +1415,7 @@ pmap_fix_cache(struct vm_page *pg, pmap_t pm, vm_offset_t va) * We use `maskbits' rather than `clearbits' because we're always passing * constants and the latter would require an extra inversion at run-time. */ -static int +static int pmap_clearbit(struct vm_page *pg, u_int maskbits) { struct l2_bucket *l2b; @@ -1473,10 +1473,10 @@ pmap_clearbit(struct vm_page *pg, u_int maskbits) if (maskbits & (PVF_WRITE|PVF_MOD)) { if ((pv->pv_flags & PVF_NC)) { - /* + /* * Entry is not cacheable: * - * Don't turn caching on again if this is a + * Don't turn caching on again if this is a * modified emulation. This would be * inconsitent with the settings created by * pmap_fix_cache(). Otherwise, it's safe @@ -1493,7 +1493,7 @@ pmap_clearbit(struct vm_page *pg, u_int maskbits) } else if (opte & L2_S_PROT_W) { vm_page_dirty(pg); - /* + /* * Entry is writable/cacheable: check if pmap * is current if it is flush it, otherwise it * won't be in the cache @@ -1760,7 +1760,7 @@ pmap_remove_pv(struct vm_page *pg, pmap_t pm, vm_offset_t va) * => caller should hold lock on vm_page [so that attrs can be adjusted] * => caller should NOT adjust pmap's wire_count * => we return the old flags - * + * * Modify a physical-virtual mapping in the pv table */ static u_int @@ -1845,7 +1845,7 @@ pmap_init(void) /* * init the pv free list */ - pvzone = uma_zcreate("PV ENTRY", sizeof (struct pv_entry), NULL, NULL, + pvzone = uma_zcreate("PV ENTRY", sizeof (struct pv_entry), NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_VM | UMA_ZONE_NOFREE); /* * Now it is safe to enable pv_table recording. @@ -1951,7 +1951,7 @@ pmap_fault_fixup(pmap_t pm, vm_offset_t va, vm_prot_t ftype, int user) vm_page_dirty(pg); pv->pv_flags |= PVF_REF | PVF_MOD; - /* + /* * Re-enable write permissions for the page. No need to call * pmap_fix_cache(), since this is just a * modified-emulation fault, and the PVF_WRITE bit isn't @@ -2249,7 +2249,7 @@ pmap_set_pt_cache_mode(pd_entry_t *kl1, vm_offset_t va) } static void -pmap_alloc_specials(vm_offset_t *availp, int pages, vm_offset_t *vap, +pmap_alloc_specials(vm_offset_t *availp, int pages, vm_offset_t *vap, pt_entry_t **ptep) { vm_offset_t va = *availp; @@ -2338,7 +2338,7 @@ pmap_bootstrap(vm_offset_t firstaddr, vm_offset_t lastaddr, struct pv_addr *l1pt if ((l2 = kernel_pmap->pm_l2[L2_IDX(l1idx)]) == NULL) { if (l2next == PMAP_STATIC_L2_SIZE) panic("pmap_bootstrap: out of static L2s"); - kernel_pmap->pm_l2[L2_IDX(l1idx)] = l2 = + kernel_pmap->pm_l2[L2_IDX(l1idx)] = l2 = &static_l2[l2next++]; } @@ -2407,7 +2407,7 @@ pmap_bootstrap(vm_offset_t firstaddr, vm_offset_t lastaddr, struct pv_addr *l1pt */ #define SYSMAP(c, p, v, n) \ v = (c)va; va += ((n)*PAGE_SIZE); p = pte; pte += (n); - + pmap_alloc_specials(&virtual_avail, 1, &csrcp, &csrc_pte); pmap_set_pt_cache_mode(kernel_l1pt, (vm_offset_t)csrc_pte); pmap_alloc_specials(&virtual_avail, 1, &cdstp, &cdst_pte); @@ -2561,7 +2561,7 @@ pmap_grow_l2_bucket(pmap_t pm, vm_offset_t va) l2 = (struct l2_dtable *)nva; nva += sizeof(struct l2_dtable); - if ((nva & PAGE_MASK) < (pmap_kernel_l2dtable_kva & + if ((nva & PAGE_MASK) < (pmap_kernel_l2dtable_kva & PAGE_MASK)) { /* * The new l2_dtable straddles a page boundary. @@ -2809,7 +2809,7 @@ pmap_kenter_internal(vm_offset_t va, vm_offset_t pa, int flags) if (opte == 0) l2b->l2b_occupancy++; } - *pte = L2_S_PROTO | pa | L2_S_PROT(PTE_KERNEL, + *pte = L2_S_PROTO | pa | L2_S_PROT(PTE_KERNEL, VM_PROT_READ | VM_PROT_WRITE); if (flags & KENTER_CACHE) *pte |= pte_l2_s_cache_mode; @@ -2822,7 +2822,7 @@ pmap_kenter_internal(vm_offset_t va, vm_offset_t pa, int flags) * * The pvzone is used to delay the recording of kernel * mappings until the VM is running. - * + * * This expects the physical memory to have vm_page_array entry. */ if (pvzone != NULL && (m = vm_phys_paddr_to_vm_page(pa))) { @@ -2906,7 +2906,7 @@ pmap_kremove(vm_offset_t va) PMAP_LOCK(pmap_kernel()); if (pvzone != NULL && (m = vm_phys_paddr_to_vm_page(pa)) && (pve = pmap_remove_pv(m, pmap_kernel(), va))) - pmap_free_pv_entry(pve); + pmap_free_pv_entry(pve); PMAP_UNLOCK(pmap_kernel()); vm_page_unlock_queues(); va = va & ~PAGE_MASK; @@ -2943,7 +2943,7 @@ pmap_map(vm_offset_t *virt, vm_offset_t start, vm_offset_t end, int prot) PDEBUG(1, printf("pmap_map: virt = %08x, start = %08x, end = %08x, " "prot = %d\n", (uint32_t) *virt, (uint32_t) start, (uint32_t) end, prot)); - + while (start < end) { pmap_kenter(va, start); va += PAGE_SIZE; @@ -2987,7 +2987,7 @@ pmap_qenter(vm_offset_t va, vm_page_t *m, int count) for (i = 0; i < count; i++) { pmap_wb_page(m[i]); - pmap_kenter_internal(va, VM_PAGE_TO_PHYS(m[i]), + pmap_kenter_internal(va, VM_PAGE_TO_PHYS(m[i]), KENTER_CACHE); va += PAGE_SIZE; } @@ -3343,7 +3343,7 @@ pmap_enter_locked(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_prot_t prot, nflags |= PVF_WIRED; PDEBUG(1, printf("pmap_enter: pmap = %08x, va = %08x, m = %08x, prot = %x, " "wired = %x\n", (uint32_t) pmap, va, (uint32_t) m, prot, wired)); - + if (pmap == pmap_kernel()) { l2b = pmap_get_l2_bucket(pmap, va); if (l2b == NULL) @@ -3365,7 +3365,7 @@ pmap_enter_locked(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_prot_t prot, } ptep = &l2b->l2b_kva[l2pte_index(va)]; - + opte = *ptep; npte = pa; oflags = 0; @@ -3528,8 +3528,7 @@ pmap_enter_locked(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_prot_t prot, if (opte == 0) { l2b->l2b_occupancy++; pmap->pm_stats.resident_count++; - } - + } /* * If this is just a wiring change, the two PTEs will be @@ -3545,7 +3544,7 @@ pmap_enter_locked(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_prot_t prot, * is current */ PTE_SYNC(ptep); - if (L1_IDX(va) != L1_IDX(vector_page) && + if (L1_IDX(va) != L1_IDX(vector_page) && l2pte_valid(npte)) { /* * This mapping is likely to be accessed as @@ -3650,7 +3649,7 @@ pmap_change_wiring(pmap_t pmap, vm_offset_t va, boolean_t wired) ptep = &l2b->l2b_kva[l2pte_index(va)]; pte = *ptep; pg = PHYS_TO_VM_PAGE(l2pte_pa(pte)); - if (pg) + if (pg) pmap_modify_pv(pg, pmap, va, PVF_WIRED, wired ? PVF_WIRED : 0); vm_page_unlock_queues(); PMAP_UNLOCK(pmap); @@ -3695,7 +3694,7 @@ pmap_extract(pmap_t pm, vm_offset_t va) */ KASSERT(pm == pmap_kernel(), ("huh")); /* XXX: what to do about the bits > 32 ? */ - if (l1pd & L1_S_SUPERSEC) + if (l1pd & L1_S_SUPERSEC) pa = (l1pd & L1_SUP_FRAME) | (va & L1_SUP_OFFSET); else pa = (l1pd & L1_S_FRAME) | (va & L1_S_OFFSET); @@ -3763,7 +3762,7 @@ pmap_extract_and_hold(pmap_t pmap, vm_offset_t va, vm_prot_t prot) */ KASSERT(pmap == pmap_kernel(), ("huh")); /* XXX: what to do about the bits > 32 ? */ - if (l1pd & L1_S_SUPERSEC) + if (l1pd & L1_S_SUPERSEC) pa = (l1pd & L1_SUP_FRAME) | (va & L1_SUP_OFFSET); else pa = (l1pd & L1_S_FRAME) | (va & L1_S_OFFSET); @@ -3840,7 +3839,7 @@ pmap_pinit(pmap_t pmap) pmap_enter(pmap, vector_page, VM_PROT_READ, PHYS_TO_VM_PAGE(systempage.pv_pa), VM_PROT_READ, 1); - } + } return (1); } @@ -4000,7 +3999,7 @@ pmap_remove(pmap_t pm, vm_offset_t sva, vm_offset_t eva) /* * pmap_zero_page() - * + * * Zero a given physical page by mapping it at a page hook point. * In doing the zero page op, the page we zero is mapped cachable, as with * StrongARM accesses to non-cached pages are non-burst making writing @@ -4137,7 +4136,7 @@ pmap_use_minicache(vm_offset_t va, vm_size_t size) #endif /* ARM_MMU_XSCALE == 1 */ /* - * pmap_zero_page zeros the specified hardware page by mapping + * pmap_zero_page zeros the specified hardware page by mapping * the page into KVM and using bzero to clear its contents. */ void @@ -4148,7 +4147,7 @@ pmap_zero_page(vm_page_t m) /* - * pmap_zero_page_area zeros the specified hardware page by mapping + * pmap_zero_page_area zeros the specified hardware page by mapping * the page into KVM and using bzero to clear its contents. * * off and size may not cover an area beyond a single hardware page. @@ -4162,7 +4161,7 @@ pmap_zero_page_area(vm_page_t m, int off, int size) /* - * pmap_zero_page_idle zeros the specified hardware page by mapping + * pmap_zero_page_idle zeros the specified hardware page by mapping * the page into KVM and using bzero to clear its contents. This * is intended to be called from the vm_pagezero process only and * outside of Giant. @@ -4225,7 +4224,7 @@ pmap_clean_page(struct pv_entry *pv, boolean_t is_src) if (npv->pv_pmap == pmap_kernel() || npv->pv_pmap == pm) { flags |= npv->pv_flags; /* - * The page is mapped non-cacheable in + * The page is mapped non-cacheable in * this map. No need to flush the cache. */ if (npv->pv_flags & PVF_NC) { @@ -4377,7 +4376,7 @@ pmap_copy_page(vm_page_t src, vm_page_t dst) cpu_dcache_wbinv_all(); cpu_l2cache_wbinv_all(); if (_arm_memcpy && PAGE_SIZE >= _min_memcpy_size && - _arm_memcpy((void *)VM_PAGE_TO_PHYS(dst), + _arm_memcpy((void *)VM_PAGE_TO_PHYS(dst), (void *)VM_PAGE_TO_PHYS(src), PAGE_SIZE, IS_PHYSICAL) == 0) return; #ifdef ARM_USE_SMALL_ALLOC @@ -4524,7 +4523,7 @@ pmap_clear_reference(vm_page_t m) KASSERT((m->oflags & VPO_UNMANAGED) == 0, ("pmap_clear_reference: page %p is not managed", m)); - if (m->md.pvh_attrs & PVF_REF) + if (m->md.pvh_attrs & PVF_REF) pmap_clearbit(m, PVF_REF); } @@ -4710,7 +4709,7 @@ pmap_link_l2pt(vm_offset_t l1pt, vm_offset_t va, struct pv_addr *l2pv) proto = L1_S_DOM(PMAP_DOMAIN_KERNEL) | L1_C_PROTO; -#ifdef VERBOSE_INIT_ARM +#ifdef VERBOSE_INIT_ARM printf("pmap_link_l2pt: pa=0x%x va=0x%x\n", l2pv->pv_pa, l2pv->pv_va); #endif @@ -4779,7 +4778,7 @@ pmap_map_chunk(vm_offset_t l1pt, vm_offset_t va, vm_offset_t pa, { pd_entry_t *pde = (pd_entry_t *) l1pt; pt_entry_t *pte, f1, f2s, f2l; - vm_size_t resid; + vm_size_t resid; int i; resid = (size + (PAGE_SIZE - 1)) & ~(PAGE_SIZE - 1); @@ -4787,7 +4786,7 @@ pmap_map_chunk(vm_offset_t l1pt, vm_offset_t va, vm_offset_t pa, if (l1pt == 0) panic("pmap_map_chunk: no L1 table provided"); -#ifdef VERBOSE_INIT_ARM +#ifdef VERBOSE_INIT_ARM printf("pmap_map_chunk: pa=0x%x va=0x%x size=0x%x resid=0x%x " "prot=0x%x cache=%d\n", pa, va, size, resid, prot, cache); #endif diff --git a/sys/arm/arm/support.S b/sys/arm/arm/support.S index 2c88f229946f..d4c6fb45748f 100644 --- a/sys/arm/arm/support.S +++ b/sys/arm/arm/support.S @@ -389,9 +389,9 @@ ENTRY(bcmp) ENTRY(bcopy) /* switch the source and destination registers */ - eor r0, r1, r0 - eor r1, r0, r1 - eor r0, r1, r0 + eor r0, r1, r0 + eor r1, r0, r1 + eor r0, r1, r0 ENTRY(memmove) /* Do the buffers overlap? */ cmp r0, r1 @@ -420,7 +420,7 @@ ENTRY(memmove) /* We have aligned source and destination */ subs r2, r2, #8 blt .Lmemmove_fl12 /* less than 12 bytes (4 from above) */ - subs r2, r2, #0x14 + subs r2, r2, #0x14 blt .Lmemmove_fl32 /* less than 32 bytes (12 from above) */ stmdb sp!, {r4} /* borrow r4 */ @@ -431,23 +431,23 @@ ENTRY(memmove) stmia r0!, {r3, r4, r12, lr} ldmia r1!, {r3, r4, r12, lr} stmia r0!, {r3, r4, r12, lr} - subs r2, r2, #0x20 + subs r2, r2, #0x20 bge .Lmemmove_floop32 cmn r2, #0x10 ldmgeia r1!, {r3, r4, r12, lr} /* blat a remaining 16 bytes */ stmgeia r0!, {r3, r4, r12, lr} - subge r2, r2, #0x10 + subge r2, r2, #0x10 ldmia sp!, {r4} /* return r4 */ .Lmemmove_fl32: - adds r2, r2, #0x14 + adds r2, r2, #0x14 /* blat 12 bytes at a time */ .Lmemmove_floop12: ldmgeia r1!, {r3, r12, lr} stmgeia r0!, {r3, r12, lr} - subges r2, r2, #0x0c + subges r2, r2, #0x0c bge .Lmemmove_floop12 .Lmemmove_fl12: @@ -502,9 +502,9 @@ ENTRY(memmove) cmp r12, #2 bgt .Lmemmove_fsrcul3 beq .Lmemmove_fsrcul2 - cmp r2, #0x0c + cmp r2, #0x0c blt .Lmemmove_fsrcul1loop4 - sub r2, r2, #0x0c + sub r2, r2, #0x0c stmdb sp!, {r4, r5} .Lmemmove_fsrcul1loop16: @@ -532,10 +532,10 @@ ENTRY(memmove) orr r12, r12, lr, lsl #24 #endif stmia r0!, {r3-r5, r12} - subs r2, r2, #0x10 + subs r2, r2, #0x10 bge .Lmemmove_fsrcul1loop16 ldmia sp!, {r4, r5} - adds r2, r2, #0x0c + adds r2, r2, #0x0c blt .Lmemmove_fsrcul1l4 .Lmemmove_fsrcul1loop4: @@ -559,9 +559,9 @@ ENTRY(memmove) b .Lmemmove_fl4 .Lmemmove_fsrcul2: - cmp r2, #0x0c + cmp r2, #0x0c blt .Lmemmove_fsrcul2loop4 - sub r2, r2, #0x0c + sub r2, r2, #0x0c stmdb sp!, {r4, r5} .Lmemmove_fsrcul2loop16: @@ -589,10 +589,10 @@ ENTRY(memmove) orr r12, r12, lr, lsl #16 #endif stmia r0!, {r3-r5, r12} - subs r2, r2, #0x10 + subs r2, r2, #0x10 bge .Lmemmove_fsrcul2loop16 ldmia sp!, {r4, r5} - adds r2, r2, #0x0c + adds r2, r2, #0x0c blt .Lmemmove_fsrcul2l4 .Lmemmove_fsrcul2loop4: @@ -616,9 +616,9 @@ ENTRY(memmove) b .Lmemmove_fl4 .Lmemmove_fsrcul3: - cmp r2, #0x0c + cmp r2, #0x0c blt .Lmemmove_fsrcul3loop4 - sub r2, r2, #0x0c + sub r2, r2, #0x0c stmdb sp!, {r4, r5} .Lmemmove_fsrcul3loop16: @@ -646,10 +646,10 @@ ENTRY(memmove) orr r12, r12, lr, lsl #8 #endif stmia r0!, {r3-r5, r12} - subs r2, r2, #0x10 + subs r2, r2, #0x10 bge .Lmemmove_fsrcul3loop16 ldmia sp!, {r4, r5} - adds r2, r2, #0x0c + adds r2, r2, #0x0c blt .Lmemmove_fsrcul3l4 .Lmemmove_fsrcul3loop4: @@ -697,18 +697,18 @@ ENTRY(memmove) stmdb r0!, {r3, r4, r12, lr} ldmdb r1!, {r3, r4, r12, lr} stmdb r0!, {r3, r4, r12, lr} - subs r2, r2, #0x20 + subs r2, r2, #0x20 bge .Lmemmove_bloop32 .Lmemmove_bl32: - cmn r2, #0x10 + cmn r2, #0x10 ldmgedb r1!, {r3, r4, r12, lr} /* blat a remaining 16 bytes */ stmgedb r0!, {r3, r4, r12, lr} - subge r2, r2, #0x10 - adds r2, r2, #0x14 + subge r2, r2, #0x10 + adds r2, r2, #0x14 ldmgedb r1!, {r3, r12, lr} /* blat a remaining 12 bytes */ stmgedb r0!, {r3, r12, lr} - subge r2, r2, #0x0c + subge r2, r2, #0x0c ldmia sp!, {r4, lr} .Lmemmove_bl12: @@ -760,9 +760,9 @@ ENTRY(memmove) cmp r12, #2 blt .Lmemmove_bsrcul1 beq .Lmemmove_bsrcul2 - cmp r2, #0x0c + cmp r2, #0x0c blt .Lmemmove_bsrcul3loop4 - sub r2, r2, #0x0c + sub r2, r2, #0x0c stmdb sp!, {r4, r5, lr} .Lmemmove_bsrcul3loop16: @@ -790,10 +790,10 @@ ENTRY(memmove) orr r4, r4, r3, lsr #24 #endif stmdb r0!, {r4, r5, r12, lr} - subs r2, r2, #0x10 + subs r2, r2, #0x10 bge .Lmemmove_bsrcul3loop16 ldmia sp!, {r4, r5, lr} - adds r2, r2, #0x0c + adds r2, r2, #0x0c blt .Lmemmove_bsrcul3l4 .Lmemmove_bsrcul3loop4: @@ -817,9 +817,9 @@ ENTRY(memmove) b .Lmemmove_bl4 .Lmemmove_bsrcul2: - cmp r2, #0x0c + cmp r2, #0x0c blt .Lmemmove_bsrcul2loop4 - sub r2, r2, #0x0c + sub r2, r2, #0x0c stmdb sp!, {r4, r5, lr} .Lmemmove_bsrcul2loop16: @@ -847,10 +847,10 @@ ENTRY(memmove) orr r4, r4, r3, lsr #16 #endif stmdb r0!, {r4, r5, r12, lr} - subs r2, r2, #0x10 + subs r2, r2, #0x10 bge .Lmemmove_bsrcul2loop16 ldmia sp!, {r4, r5, lr} - adds r2, r2, #0x0c + adds r2, r2, #0x0c blt .Lmemmove_bsrcul2l4 .Lmemmove_bsrcul2loop4: @@ -874,9 +874,9 @@ ENTRY(memmove) b .Lmemmove_bl4 .Lmemmove_bsrcul1: - cmp r2, #0x0c + cmp r2, #0x0c blt .Lmemmove_bsrcul1loop4 - sub r2, r2, #0x0c + sub r2, r2, #0x0c stmdb sp!, {r4, r5, lr} .Lmemmove_bsrcul1loop32: @@ -904,10 +904,10 @@ ENTRY(memmove) orr r4, r4, r3, lsr #8 #endif stmdb r0!, {r4, r5, r12, lr} - subs r2, r2, #0x10 + subs r2, r2, #0x10 bge .Lmemmove_bsrcul1loop32 ldmia sp!, {r4, r5, lr} - adds r2, r2, #0x0c + adds r2, r2, #0x0c blt .Lmemmove_bsrcul1l4 .Lmemmove_bsrcul1loop4: @@ -976,7 +976,7 @@ ENTRY(memcpy) /* We have aligned source and destination */ subs r2, r2, #8 blt .Lmemcpy_l12 /* less than 12 bytes (4 from above) */ - subs r2, r2, #0x14 + subs r2, r2, #0x14 blt .Lmemcpy_l32 /* less than 32 bytes (12 from above) */ stmdb sp!, {r4} /* borrow r4 */ @@ -987,23 +987,23 @@ ENTRY(memcpy) stmia r0!, {r3, r4, r12, lr} ldmia r1!, {r3, r4, r12, lr} stmia r0!, {r3, r4, r12, lr} - subs r2, r2, #0x20 + subs r2, r2, #0x20 bge .Lmemcpy_loop32 cmn r2, #0x10 ldmgeia r1!, {r3, r4, r12, lr} /* blat a remaining 16 bytes */ stmgeia r0!, {r3, r4, r12, lr} - subge r2, r2, #0x10 + subge r2, r2, #0x10 ldmia sp!, {r4} /* return r4 */ .Lmemcpy_l32: - adds r2, r2, #0x14 + adds r2, r2, #0x14 /* blat 12 bytes at a time */ .Lmemcpy_loop12: ldmgeia r1!, {r3, r12, lr} stmgeia r0!, {r3, r12, lr} - subges r2, r2, #0x0c + subges r2, r2, #0x0c bge .Lmemcpy_loop12 .Lmemcpy_l12: @@ -1061,9 +1061,9 @@ ENTRY(memcpy) cmp r12, #2 bgt .Lmemcpy_srcul3 beq .Lmemcpy_srcul2 - cmp r2, #0x0c + cmp r2, #0x0c blt .Lmemcpy_srcul1loop4 - sub r2, r2, #0x0c + sub r2, r2, #0x0c stmdb sp!, {r4, r5} .Lmemcpy_srcul1loop16: @@ -1077,10 +1077,10 @@ ENTRY(memcpy) mov r12, r12, lsr #8 orr r12, r12, lr, lsl #24 stmia r0!, {r3-r5, r12} - subs r2, r2, #0x10 + subs r2, r2, #0x10 bge .Lmemcpy_srcul1loop16 ldmia sp!, {r4, r5} - adds r2, r2, #0x0c + adds r2, r2, #0x0c blt .Lmemcpy_srcul1l4 .Lmemcpy_srcul1loop4: @@ -1096,9 +1096,9 @@ ENTRY(memcpy) b .Lmemcpy_l4 .Lmemcpy_srcul2: - cmp r2, #0x0c + cmp r2, #0x0c blt .Lmemcpy_srcul2loop4 - sub r2, r2, #0x0c + sub r2, r2, #0x0c stmdb sp!, {r4, r5} .Lmemcpy_srcul2loop16: @@ -1112,10 +1112,10 @@ ENTRY(memcpy) mov r12, r12, lsr #16 orr r12, r12, lr, lsl #16 stmia r0!, {r3-r5, r12} - subs r2, r2, #0x10 + subs r2, r2, #0x10 bge .Lmemcpy_srcul2loop16 ldmia sp!, {r4, r5} - adds r2, r2, #0x0c + adds r2, r2, #0x0c blt .Lmemcpy_srcul2l4 .Lmemcpy_srcul2loop4: @@ -1131,9 +1131,9 @@ ENTRY(memcpy) b .Lmemcpy_l4 .Lmemcpy_srcul3: - cmp r2, #0x0c + cmp r2, #0x0c blt .Lmemcpy_srcul3loop4 - sub r2, r2, #0x0c + sub r2, r2, #0x0c stmdb sp!, {r4, r5} .Lmemcpy_srcul3loop16: @@ -1147,10 +1147,10 @@ ENTRY(memcpy) mov r12, r12, lsr #24 orr r12, r12, lr, lsl #8 stmia r0!, {r3-r5, r12} - subs r2, r2, #0x10 + subs r2, r2, #0x10 bge .Lmemcpy_srcul3loop16 ldmia sp!, {r4, r5} - adds r2, r2, #0x0c + adds r2, r2, #0x0c blt .Lmemcpy_srcul3l4 .Lmemcpy_srcul3loop4: @@ -1404,10 +1404,10 @@ ENTRY(memcpy) str r6, [r3], #0x04 str r7, [r3], #0x04 .Lmemcpy_bad1: - subs r2, r2, #0x10 + subs r2, r2, #0x10 bge .Lmemcpy_bad1_loop16 - adds r2, r2, #0x10 + adds r2, r2, #0x10 ldmeqfd sp!, {r4-r7} RETeq /* Return now if done */ subs r2, r2, #0x04 @@ -1465,10 +1465,10 @@ ENTRY(memcpy) str r6, [r3], #0x04 str r7, [r3], #0x04 .Lmemcpy_bad2: - subs r2, r2, #0x10 + subs r2, r2, #0x10 bge .Lmemcpy_bad2_loop16 - adds r2, r2, #0x10 + adds r2, r2, #0x10 ldmeqfd sp!, {r4-r7} RETeq /* Return now if done */ subs r2, r2, #0x04 @@ -1526,10 +1526,10 @@ ENTRY(memcpy) str r6, [r3], #0x04 str r7, [r3], #0x04 .Lmemcpy_bad3: - subs r2, r2, #0x10 + subs r2, r2, #0x10 bge .Lmemcpy_bad3_loop16 - adds r2, r2, #0x10 + adds r2, r2, #0x10 ldmeqfd sp!, {r4-r7} RETeq /* Return now if done */ subs r2, r2, #0x04 diff --git a/sys/arm/arm/swtch.S b/sys/arm/arm/swtch.S index 762fc28a0147..a293c5cc96fa 100644 --- a/sys/arm/arm/swtch.S +++ b/sys/arm/arm/swtch.S @@ -262,7 +262,7 @@ ENTRY(cpu_switch) strd r12, [r2, #(PCB_R12)] #endif str pc, [r2, #(PCB_PC)] - + /* * NOTE: We can now use r8-r13 until it is time to restore * them for the new process. @@ -291,7 +291,7 @@ ENTRY(cpu_switch) mrs r3, cpsr /* - * We can do that, since + * We can do that, since * PSR_SVC32_MODE|PSR_UND32_MODE == MSR_UND32_MODE */ orr r8, r3, #(PSR_UND32_MODE) @@ -399,7 +399,7 @@ ENTRY(cpu_switch) movne lr, pc ldrne pc, [r10, #CF_TLB_FLUSHID_SE] /* - * We can do that, since + * We can do that, since * PSR_SVC32_MODE|PSR_UND32_MODE == MSR_UND32_MODE */ @@ -422,7 +422,7 @@ ENTRY(cpu_switch) mrs r3, cpsr /* - * We can do that, since + * We can do that, since * PSR_SVC32_MODE|PSR_UND32_MODE == MSR_UND32_MODE */ orr r2, r3, #(PSR_UND32_MODE) @@ -451,7 +451,7 @@ ENTRY(cpu_switch) #ifdef ARMFPE add r0, r7, #(USER_SIZE) & 0x00ff - add r0, r0, #(USER_SIZE) & 0xff00 + add r0, r0, #(USER_SIZE) & 0xff00 bl _C_LABEL(arm_fpe_core_changecontext) #endif diff --git a/sys/arm/arm/sys_machdep.c b/sys/arm/arm/sys_machdep.c index 5fe7b5c03d74..f673dc6135ea 100644 --- a/sys/arm/arm/sys_machdep.c +++ b/sys/arm/arm/sys_machdep.c @@ -132,10 +132,10 @@ sysarch(td, uap) #endif switch (uap->op) { - case ARM_SYNC_ICACHE : + case ARM_SYNC_ICACHE: error = arm32_sync_icache(td, uap->parms); break; - case ARM_DRAIN_WRITEBUF : + case ARM_DRAIN_WRITEBUF: error = arm32_drain_writebuf(td, uap->parms); break; case ARM_SET_TP: diff --git a/sys/arm/arm/trap.c b/sys/arm/arm/trap.c index e56f0ffded86..0d915dae0018 100644 --- a/sys/arm/arm/trap.c +++ b/sys/arm/arm/trap.c @@ -128,7 +128,7 @@ void undefinedinstruction(trapframe_t *); #include #include - + extern char fusubailout[]; #ifdef DEBUG @@ -388,7 +388,7 @@ data_abort_handler(trapframe_t *tf) * responsible to determine if it was a write. */ if (IS_PERMISSION_FAULT(fsr)) { - ftype = VM_PROT_WRITE; + ftype = VM_PROT_WRITE; } else { u_int insn = ReadWord(tf->tf_pc); @@ -396,13 +396,13 @@ data_abort_handler(trapframe_t *tf) ((insn & 0x0e1000b0) == 0x000000b0) || /* STRH/STRD */ ((insn & 0x0a100000) == 0x08000000)) /* STM/CDT */ { - ftype = VM_PROT_WRITE; + ftype = VM_PROT_WRITE; } else if ((insn & 0x0fb00ff0) == 0x01000090) /* SWP */ - ftype = VM_PROT_READ | VM_PROT_WRITE; + ftype = VM_PROT_READ | VM_PROT_WRITE; else - ftype = VM_PROT_READ; + ftype = VM_PROT_READ; } /* @@ -734,9 +734,7 @@ prefetch_abort_handler(trapframe_t *tf) if (__predict_true(tf->tf_spsr & F32_bit) == 0) enable_interrupts(F32_bit); } - - /* See if the cpu state needs to be fixed up */ switch (prefetch_abort_fixup(tf, &ksig)) { case ABORT_FIXUP_RETURN: @@ -947,15 +945,15 @@ swi_handler(trapframe_t *frame) /* * Enable interrupts if they were enabled before the exception. * Since all syscalls *should* come from user mode it will always - * be safe to enable them, but check anyway. - */ + * be safe to enable them, but check anyway. + */ if (td->td_md.md_spinlock_count == 0) { if (__predict_true(frame->tf_spsr & I32_bit) == 0) enable_interrupts(I32_bit); if (__predict_true(frame->tf_spsr & F32_bit) == 0) enable_interrupts(F32_bit); } - + syscall(td, frame, insn); } diff --git a/sys/arm/arm/undefined.c b/sys/arm/arm/undefined.c index fa02023c656b..fcb612d1b212 100644 --- a/sys/arm/arm/undefined.c +++ b/sys/arm/arm/undefined.c @@ -194,8 +194,8 @@ undefinedinstruction(trapframe_t *frame) fault_pc = frame->tf_pc; - /* - * Get the current thread/proc structure or thread0/proc0 if there is + /* + * Get the current thread/proc structure or thread0/proc0 if there is * none. */ td = curthread == NULL ? &thread0 : curthread; diff --git a/sys/arm/arm/vectors.S b/sys/arm/arm/vectors.S index c91b437e8b81..95ee5d190101 100644 --- a/sys/arm/arm/vectors.S +++ b/sys/arm/arm/vectors.S @@ -3,7 +3,7 @@ /*- * Copyright (C) 1994-1997 Mark Brinicombe * Copyright (C) 1994 Brini - * All rights reserved. + * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -18,10 +18,10 @@ * This product includes software developed by Brini. * 4. The name of Brini may not be used to endorse or promote products * derived from this software without specific prior written permission. - * + * * THIS SOFTWARE IS PROVIDED BY BRINI ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL BRINI BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; diff --git a/sys/arm/arm/vm_machdep.c b/sys/arm/arm/vm_machdep.c index 54e561e872e2..114c68329346 100644 --- a/sys/arm/arm/vm_machdep.c +++ b/sys/arm/arm/vm_machdep.c @@ -152,11 +152,11 @@ cpu_fork(register struct thread *td1, register struct proc *p2, void cpu_thread_swapin(struct thread *td) { -} +} -void +void cpu_thread_swapout(struct thread *td) -{ +{ } /* @@ -177,7 +177,7 @@ sf_buf_free(struct sf_buf *sf) if (sf_buf_alloc_want > 0) wakeup(&sf_buf_freelist); } - mtx_unlock(&sf_buf_lock); + mtx_unlock(&sf_buf_lock); #endif } @@ -187,11 +187,11 @@ sf_buf_free(struct sf_buf *sf) */ static void sf_buf_init(void *arg) -{ +{ struct sf_buf *sf_bufs; vm_offset_t sf_base; int i; - + nsfbufs = NSFBUFS; TUNABLE_INT_FETCH("kern.ipc.nsfbufs", &nsfbufs); @@ -204,7 +204,7 @@ sf_buf_init(void *arg) sf_bufs[i].kva = sf_base + i * PAGE_SIZE; TAILQ_INSERT_TAIL(&sf_buf_freelist, &sf_bufs[i], free_entry); } - sf_buf_alloc_want = 0; + sf_buf_alloc_want = 0; mtx_init(&sf_buf_lock, "sf_buf", NULL, MTX_DEF); } #endif @@ -246,7 +246,7 @@ sf_buf_alloc(struct vm_page *m, int flags) /* - * If we got a signal, don't risk going back to sleep. + * If we got a signal, don't risk going back to sleep. */ if (error) goto done; @@ -319,7 +319,7 @@ cpu_set_syscall_retval(struct thread *td, int error) /* * Initialize machine state (pcb and trap frame) for a new thread about to - * upcall. Put enough state in the new thread's PCB to get it to go back + * upcall. Put enough state in the new thread's PCB to get it to go back * userret(), where we can intercept it again to set the return (upcall) * Address and stack, along with those from upcals that are from other sources * such as those generated in thread_userret() itself. @@ -387,7 +387,7 @@ cpu_thread_exit(struct thread *td) void cpu_thread_alloc(struct thread *td) { - td->td_pcb = (struct pcb *)(td->td_kstack + td->td_kstack_pages * + td->td_pcb = (struct pcb *)(td->td_kstack + td->td_kstack_pages * PAGE_SIZE) - 1; td->td_frame = (struct trapframe *) ((u_int)td->td_kstack + USPACE_SVC_STACK_TOP - sizeof(struct pcb)) - 1; @@ -395,7 +395,7 @@ cpu_thread_alloc(struct thread *td) #ifndef CPU_XSCALE_CORE3 pmap_use_minicache(td->td_kstack, td->td_kstack_pages * PAGE_SIZE); #endif -#endif +#endif } void @@ -429,8 +429,8 @@ cpu_set_fork_handler(struct thread *td, void (*func)(void *), void *arg) /* * Software interrupt handler for queued VM system processing. - */ -void + */ +void swi_vm(void *dummy) { @@ -445,14 +445,14 @@ cpu_exit(struct thread *td) #define BITS_PER_INT (8 * sizeof(int)) vm_offset_t arm_nocache_startaddr; -static int arm_nocache_allocated[ARM_NOCACHE_KVA_SIZE / (PAGE_SIZE * +static int arm_nocache_allocated[ARM_NOCACHE_KVA_SIZE / (PAGE_SIZE * BITS_PER_INT)]; /* - * Functions to map and unmap memory non-cached into KVA the kernel won't try + * Functions to map and unmap memory non-cached into KVA the kernel won't try * to allocate. The goal is to provide uncached memory to busdma, to honor - * BUS_DMA_COHERENT. - * We can allocate at most ARM_NOCACHE_KVA_SIZE bytes. + * BUS_DMA_COHERENT. + * We can allocate at most ARM_NOCACHE_KVA_SIZE bytes. * The allocator is rather dummy, each page is represented by a bit in * a bitfield, 0 meaning the page is not allocated, 1 meaning it is. * As soon as it finds enough contiguous pages to satisfy the request, @@ -465,7 +465,7 @@ arm_remap_nocache(void *addr, vm_size_t size) size = round_page(size); for (i = 0; i < ARM_NOCACHE_KVA_SIZE / PAGE_SIZE; i++) { - if (!(arm_nocache_allocated[i / BITS_PER_INT] & (1 << (i % + if (!(arm_nocache_allocated[i / BITS_PER_INT] & (1 << (i % BITS_PER_INT)))) { for (j = i; j < i + (size / (PAGE_SIZE)); j++) if (arm_nocache_allocated[j / BITS_PER_INT] & @@ -488,7 +488,7 @@ arm_remap_nocache(void *addr, vm_size_t size) cpu_l2cache_wbinv_range(vaddr, PAGE_SIZE); pmap_kenter_nocache(tomap, physaddr); cpu_tlb_flushID_SE(vaddr); - arm_nocache_allocated[i / BITS_PER_INT] |= 1 << (i % + arm_nocache_allocated[i / BITS_PER_INT] |= 1 << (i % BITS_PER_INT); } return (ret); @@ -506,7 +506,7 @@ arm_unmap_nocache(void *addr, vm_size_t size) size = round_page(size); i = (raddr - arm_nocache_startaddr) / (PAGE_SIZE); for (; size > 0; size -= PAGE_SIZE, i++) { - arm_nocache_allocated[i / BITS_PER_INT] &= ~(1 << (i % + arm_nocache_allocated[i / BITS_PER_INT] &= ~(1 << (i % BITS_PER_INT)); pmap_kremove(raddr); raddr += PAGE_SIZE; @@ -515,9 +515,9 @@ arm_unmap_nocache(void *addr, vm_size_t size) #ifdef ARM_USE_SMALL_ALLOC -static TAILQ_HEAD(,arm_small_page) pages_normal = +static TAILQ_HEAD(,arm_small_page) pages_normal = TAILQ_HEAD_INITIALIZER(pages_normal); -static TAILQ_HEAD(,arm_small_page) pages_wt = +static TAILQ_HEAD(,arm_small_page) pages_wt = TAILQ_HEAD_INITIALIZER(pages_wt); static TAILQ_HEAD(,arm_small_page) free_pgdesc = TAILQ_HEAD_INITIALIZER(free_pgdesc); @@ -561,12 +561,12 @@ arm_init_smallalloc(void) vm_offset_t to_map = 0, mapaddr; int i; - /* + /* * We need to use dump_avail and not phys_avail, since we want to * map the whole memory and not just the memory available to the VM * to be able to do a pa => va association for any address. */ - + for (i = 0; dump_avail[i + 1]; i+= 2) { to_map += (dump_avail[i + 1] & S_FRAME) + S_SIZE - (dump_avail[i] & S_FRAME); @@ -579,10 +579,10 @@ arm_init_smallalloc(void) while (size > 0) { #ifdef ARM_HAVE_SUPERSECTIONS pmap_kenter_supersection(mapaddr, - (dump_avail[i] & L1_SUP_FRAME) + did, + (dump_avail[i] & L1_SUP_FRAME) + did, SECTION_CACHE); #else - pmap_kenter_section(mapaddr, + pmap_kenter_section(mapaddr, (dump_avail[i] & L1_S_FRAME) + did, SECTION_CACHE); #endif mapaddr += S_SIZE; @@ -661,7 +661,7 @@ uma_small_alloc(uma_zone_t zone, int bytes, u_int8_t *flags, int wait) if ((wait & M_ZERO) && (m->flags & PG_ZERO) == 0) bzero(ret, PAGE_SIZE); return (ret); - } + } TAILQ_REMOVE(head, sp, pg_list); TAILQ_INSERT_HEAD(&free_pgdesc, sp, pg_list); ret = sp->addr; @@ -690,7 +690,7 @@ uma_small_free(void *mem, int size, u_int8_t flags) sp->addr = mem; pmap_get_pde_pte(kernel_pmap, (vm_offset_t)mem, &pd, &pt); - if ((*pd & pte_l1_s_cache_mask) == + if ((*pd & pte_l1_s_cache_mask) == pte_l1_s_cache_mode_pt && pte_l1_s_cache_mode_pt != pte_l1_s_cache_mode) TAILQ_INSERT_HEAD(&pages_wt, sp, pg_list); From ee5cac8ab01819360dbc5d7fdac1f903fefe9479 Mon Sep 17 00:00:00 2001 From: Warner Losh Date: Wed, 13 Jun 2012 05:02:51 +0000 Subject: [PATCH 174/340] trim trailing whitespace --- sys/arm/include/armreg.h | 2 +- sys/arm/include/asmacros.h | 2 +- sys/arm/include/atomic.h | 1 - sys/arm/include/blockio.h | 2 +- sys/arm/include/cpufunc.h | 8 ++++---- sys/arm/include/elf.h | 4 ++-- sys/arm/include/endian.h | 2 +- sys/arm/include/fdt.h | 2 +- sys/arm/include/fp.h | 2 +- sys/arm/include/frame.h | 4 +--- sys/arm/include/ieee.h | 2 +- sys/arm/include/in_cksum.h | 2 +- sys/arm/include/intr.h | 4 ++-- sys/arm/include/katelib.h | 2 +- sys/arm/include/param.h | 4 ++-- sys/arm/include/pmap.h | 4 ++-- sys/arm/include/profile.h | 2 +- sys/arm/include/pte.h | 6 +++--- sys/arm/include/resource.h | 2 +- sys/arm/include/stack.h | 10 +++++----- sys/arm/include/vmparam.h | 2 +- 21 files changed, 33 insertions(+), 36 deletions(-) diff --git a/sys/arm/include/armreg.h b/sys/arm/include/armreg.h index 4867692dd31e..0057298db9e3 100644 --- a/sys/arm/include/armreg.h +++ b/sys/arm/include/armreg.h @@ -327,7 +327,7 @@ /* * ARM Instructions * - * 3 3 2 2 2 + * 3 3 2 2 2 * 1 0 9 8 7 0 * +-------+-------------------------------------------------------+ * | cond | instruction dependant | diff --git a/sys/arm/include/asmacros.h b/sys/arm/include/asmacros.h index f06841f8e516..da612df1f659 100644 --- a/sys/arm/include/asmacros.h +++ b/sys/arm/include/asmacros.h @@ -92,7 +92,7 @@ * This should only be used if the processor is not currently in SVC32 * mode. The processor mode is switched to SVC mode and the trap frame is * stored. The SVC lr field is used to store the previous value of - * lr in SVC mode. + * lr in SVC mode. * * NOTE: r13 and r14 are stored separately as a work around for the * SA110 rev 2 STM^ bug diff --git a/sys/arm/include/atomic.h b/sys/arm/include/atomic.h index 9f162201d52f..a64fc4aefa7c 100644 --- a/sys/arm/include/atomic.h +++ b/sys/arm/include/atomic.h @@ -285,7 +285,6 @@ atomic_fetchadd_32(volatile uint32_t *p, uint32_t v) return (start); } - #endif /* _KERNEL */ static __inline int diff --git a/sys/arm/include/blockio.h b/sys/arm/include/blockio.h index 05c35ae0e84b..01db600217ec 100644 --- a/sys/arm/include/blockio.h +++ b/sys/arm/include/blockio.h @@ -14,7 +14,7 @@ * documentation and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. - * + * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. diff --git a/sys/arm/include/cpufunc.h b/sys/arm/include/cpufunc.h index b06783650a0d..dbba8b1734c9 100644 --- a/sys/arm/include/cpufunc.h +++ b/sys/arm/include/cpufunc.h @@ -315,7 +315,7 @@ void sa11x0_drain_readbuf (void); void sa11x0_context_switch (void); void sa11x0_cpu_sleep (int mode); - + void sa11x0_setup (char *string); #endif @@ -471,7 +471,7 @@ extern unsigned armv5_dcache_index_inc; defined(CPU_FA526) || defined(CPU_FA626TE) || \ defined(CPU_XSCALE_PXA2X0) || defined(CPU_XSCALE_IXP425) || \ defined(CPU_XSCALE_80219) || defined(CPU_XSCALE_81342) - + void armv4_tlb_flushID (void); void armv4_tlb_flushI (void); void armv4_tlb_flushD (void); @@ -526,7 +526,7 @@ void xscale_cache_flushD_rng (vm_offset_t start, vm_size_t end); void xscale_context_switch (void); void xscale_setup (char *string); -#endif /* CPU_XSCALE_80200 || CPU_XSCALE_80321 || CPU_XSCALE_PXA2X0 || CPU_XSCALE_IXP425 +#endif /* CPU_XSCALE_80200 || CPU_XSCALE_80321 || CPU_XSCALE_PXA2X0 || CPU_XSCALE_IXP425 CPU_XSCALE_80219 */ #ifdef CPU_XSCALE_81342 @@ -628,7 +628,7 @@ extern int arm_picache_ways; extern int arm_pdcache_size; /* and unified */ extern int arm_pdcache_line_size; -extern int arm_pdcache_ways; +extern int arm_pdcache_ways; extern int arm_pcache_type; extern int arm_pcache_unified; diff --git a/sys/arm/include/elf.h b/sys/arm/include/elf.h index d3f8873f86d5..fdf1dea98230 100644 --- a/sys/arm/include/elf.h +++ b/sys/arm/include/elf.h @@ -99,8 +99,8 @@ __ElfType(Auxinfo); #define ELF_TARG_MACH EM_ARM #define ELF_TARG_VER 1 -/* - * Magic number for the elf trampoline, chosen wisely to be an immediate +/* + * Magic number for the elf trampoline, chosen wisely to be an immediate * value. */ #define MAGIC_TRAMP_NUMBER 0x5c000003 diff --git a/sys/arm/include/endian.h b/sys/arm/include/endian.h index 8e3b952e76c7..1d792ea89890 100644 --- a/sys/arm/include/endian.h +++ b/sys/arm/include/endian.h @@ -78,7 +78,7 @@ __bswap64(__uint64_t _x) return ((_x >> 56) | ((_x >> 40) & 0xff00) | ((_x >> 24) & 0xff0000) | ((_x >> 8) & 0xff000000) | ((_x << 8) & ((__uint64_t)0xff << 32)) | - ((_x << 24) & ((__uint64_t)0xff << 40)) | + ((_x << 24) & ((__uint64_t)0xff << 40)) | ((_x << 40) & ((__uint64_t)0xff << 48)) | ((_x << 56))); } diff --git a/sys/arm/include/fdt.h b/sys/arm/include/fdt.h index a342b7f27eba..7285e977def4 100644 --- a/sys/arm/include/fdt.h +++ b/sys/arm/include/fdt.h @@ -44,7 +44,7 @@ /* Max interrupt number */ #define FDT_INTR_MAX NIRQ -/* Map phandle/intpin pair to global IRQ number */ +/* Map phandle/intpin pair to global IRQ number */ #define FDT_MAP_IRQ(node, pin) (pin) /* diff --git a/sys/arm/include/fp.h b/sys/arm/include/fp.h index ada720303c7d..25effd693467 100644 --- a/sys/arm/include/fp.h +++ b/sys/arm/include/fp.h @@ -77,7 +77,7 @@ struct fpe_sp_state { * Type for a saved FP context, if we want to translate the context to a * user-readable form */ - + typedef struct { u_int32_t fpsr; fp_extended_precision_t regs[8]; diff --git a/sys/arm/include/frame.h b/sys/arm/include/frame.h index 0a038293eebf..a24eccce0225 100644 --- a/sys/arm/include/frame.h +++ b/sys/arm/include/frame.h @@ -148,7 +148,7 @@ struct switchframe { u_int sf_r7; u_int sf_pc; }; - + /* * Stack frame. Used during stack traces (db_trace.c) */ @@ -162,5 +162,3 @@ struct frame { #endif /* !_LOCORE */ #endif /* _MACHINE_FRAME_H_ */ - -/* End of frame.h */ diff --git a/sys/arm/include/ieee.h b/sys/arm/include/ieee.h index 059d0dc30705..8ce9fd1085e6 100644 --- a/sys/arm/include/ieee.h +++ b/sys/arm/include/ieee.h @@ -124,7 +124,7 @@ struct ieee_double { u_int dbl_sign:1; #if _IEEE_WORD_ORDER == _BIG_ENDIAN u_int dbl_fracl; -#endif +#endif #endif }; diff --git a/sys/arm/include/in_cksum.h b/sys/arm/include/in_cksum.h index 8a0ec1dc8a51..0767a15ba368 100644 --- a/sys/arm/include/in_cksum.h +++ b/sys/arm/include/in_cksum.h @@ -56,7 +56,7 @@ in_pseudo(u_int sum, u_int b, u_int c) __asm __volatile("adds %0, %0, %1\n" "adcs %0, %0, %2\n" "adc %0, %0, #0\n" - : "+r" (sum) + : "+r" (sum) : "r" (b), "r" (c)); sum = (sum & 0xffff) + (sum >> 16); if (sum > 0xffff) diff --git a/sys/arm/include/intr.h b/sys/arm/include/intr.h index 6dc0247d9a5e..bf6a15acb6ed 100644 --- a/sys/arm/include/intr.h +++ b/sys/arm/include/intr.h @@ -59,8 +59,8 @@ int arm_get_next_irq(int); void arm_mask_irq(uintptr_t); void arm_unmask_irq(uintptr_t); -void arm_setup_irqhandler(const char *, int (*)(void*), void (*)(void*), - void *, int, int, void **); +void arm_setup_irqhandler(const char *, int (*)(void*), void (*)(void*), + void *, int, int, void **); int arm_remove_irqhandler(int, void *); extern void (*arm_post_filter)(void *); #endif /* _MACHINE_INTR_H */ diff --git a/sys/arm/include/katelib.h b/sys/arm/include/katelib.h index ef69fe37238f..472585a757a2 100644 --- a/sys/arm/include/katelib.h +++ b/sys/arm/include/katelib.h @@ -43,7 +43,7 @@ * * This should not really be a separate header file. Eventually I will merge * this into other header files once I have decided where the declarations - * should go. + * should go. * * Created : 18/09/94 * diff --git a/sys/arm/include/param.h b/sys/arm/include/param.h index 3d685e7c67a9..bb76c5f05d5a 100644 --- a/sys/arm/include/param.h +++ b/sys/arm/include/param.h @@ -62,7 +62,7 @@ #define MACHINE_ARCH "arm" #endif #endif -#define MID_MACHINE MID_ARM6 +#define MID_MACHINE MID_ARM6 #if defined(SMP) || defined(KLD_MODULE) #ifndef MAXCPU @@ -78,7 +78,7 @@ * ALIGNED_POINTER is a boolean macro that checks whether an address * is valid to fetch data elements of type t from on this architecture. * This does not reflect the optimal alignment, just the possibility - * (within reasonable limits). + * (within reasonable limits). */ #define ALIGNED_POINTER(p, t) ((((unsigned)(p)) & (sizeof(t)-1)) == 0) diff --git a/sys/arm/include/pmap.h b/sys/arm/include/pmap.h index 5f499a1dc900..04270bad8d50 100644 --- a/sys/arm/include/pmap.h +++ b/sys/arm/include/pmap.h @@ -58,7 +58,7 @@ #define PTE_NOCACHE 0 #define PTE_CACHE 1 #define PTE_PAGETABLE 2 - + #ifndef LOCORE #include @@ -413,7 +413,7 @@ extern pt_entry_t pte_l2_s_cache_mode_pt; extern pt_entry_t pte_l2_s_prot_u; extern pt_entry_t pte_l2_s_prot_w; extern pt_entry_t pte_l2_s_prot_mask; - + extern pt_entry_t pte_l1_s_proto; extern pt_entry_t pte_l1_c_proto; extern pt_entry_t pte_l2_s_proto; diff --git a/sys/arm/include/profile.h b/sys/arm/include/profile.h index b640bf776146..0c5a7672deaa 100644 --- a/sys/arm/include/profile.h +++ b/sys/arm/include/profile.h @@ -38,7 +38,7 @@ #define _MACHINE_PROFILE_H_ /* - * Config generates something to tell the compiler to align functions on 32 + * Config generates something to tell the compiler to align functions on 32 * byte boundaries. A strict alignment is good for keeping the tables small. */ #define FUNCTION_ALIGNMENT 16 diff --git a/sys/arm/include/pte.h b/sys/arm/include/pte.h index 292983a9cd0c..5921d200ef69 100644 --- a/sys/arm/include/pte.h +++ b/sys/arm/include/pte.h @@ -58,7 +58,7 @@ typedef uint32_t pt_entry_t; /* page table entry */ * was allocated for a PT then the other 3KB would also get mapped * whenever the 1KB was mapped. */ - + #define PT_RSIZE 0x0400 /* Real page table size */ #define PT_SIZE 0x1000 #define PD_SIZE 0x4000 @@ -315,7 +315,7 @@ typedef uint32_t pt_entry_t; /* page table entry */ * * Cache attributes with L2 present, S = 0 * T E X C B L1 i-cache L1 d-cache L1 DC WP L2 cacheable write coalesce - * 0 0 0 0 0 N N - N N + * 0 0 0 0 0 N N - N N * 0 0 0 0 1 N N - N Y * 0 0 0 1 0 Y Y WT N Y * 0 0 0 1 1 Y Y WB Y Y @@ -342,7 +342,7 @@ typedef uint32_t pt_entry_t; /* page table entry */ * * Cache attributes with L2 present, S = 1 * T E X C B L1 i-cache L1 d-cache L1 DC WP L2 cacheable write coalesce - * 0 0 0 0 0 N N - N N + * 0 0 0 0 0 N N - N N * 0 0 0 0 1 N N - N Y * 0 0 0 1 0 Y Y - N Y * 0 0 0 1 1 Y Y WT Y Y diff --git a/sys/arm/include/resource.h b/sys/arm/include/resource.h index 90dd5cdea2da..723d1458e519 100644 --- a/sys/arm/include/resource.h +++ b/sys/arm/include/resource.h @@ -12,7 +12,7 @@ * no representations about the suitability of this software for any * purpose. It is provided "as is" without express or implied * warranty. - * + * * THIS SOFTWARE IS PROVIDED BY M.I.T. ``AS IS''. M.I.T. DISCLAIMS * ALL EXPRESS OR IMPLIED WARRANTIES WITH REGARD TO THIS SOFTWARE, * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF diff --git a/sys/arm/include/stack.h b/sys/arm/include/stack.h index 32ff5a99b33d..0a5ebfe7bd5e 100644 --- a/sys/arm/include/stack.h +++ b/sys/arm/include/stack.h @@ -5,24 +5,24 @@ * Mach Operating System * Copyright (c) 1991,1990 Carnegie Mellon University * All Rights Reserved. - * + * * Permission to use, copy, modify and distribute this software and its * documentation is hereby granted, provided that both the copyright * notice and this permission notice appear in all copies of the * software, derivative works or modified versions, and any portions * thereof, and that both notices appear in supporting documentation. - * + * * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. - * + * * Carnegie Mellon requests users of this software to return to - * + * * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU * School of Computer Science * Carnegie Mellon University * Pittsburgh PA 15213-3890 - * + * * any improvements or extensions that they make and grant Carnegie the * rights to redistribute these changes. * diff --git a/sys/arm/include/vmparam.h b/sys/arm/include/vmparam.h index f85fa58cfeb3..edff00b9831c 100644 --- a/sys/arm/include/vmparam.h +++ b/sys/arm/include/vmparam.h @@ -104,7 +104,7 @@ #define VM_MIN_ADDRESS (0x00001000) #ifdef ARM_USE_SMALL_ALLOC -/* +/* * ARM_KERN_DIRECTMAP is used to make sure there's enough space between * VM_MAXUSER_ADDRESS and KERNBASE to map the whole memory. * It has to be a compile-time constant, even if arm_init_smallalloc(), From e1a50456b60b0e3985e9b6f02626a565219cf934 Mon Sep 17 00:00:00 2001 From: Adrian Chadd Date: Wed, 13 Jun 2012 05:39:16 +0000 Subject: [PATCH 175/340] Replace the direct sc_txbuf manipulation with a pair of functions. This is preparation work for having a separate ath_buf queue for management traffic. PR: kern/168170 --- sys/dev/ath/if_ath.c | 24 +++++++++++++++++++++--- sys/dev/ath/if_ath_misc.h | 2 ++ sys/dev/ath/if_ath_tx.c | 6 +++--- 3 files changed, 26 insertions(+), 6 deletions(-) diff --git a/sys/dev/ath/if_ath.c b/sys/dev/ath/if_ath.c index 248acdb89b87..b92566853276 100644 --- a/sys/dev/ath/if_ath.c +++ b/sys/dev/ath/if_ath.c @@ -2358,7 +2358,7 @@ ath_start(struct ifnet *ifp) IFQ_DEQUEUE(&ifp->if_snd, m); if (m == NULL) { ATH_TXBUF_LOCK(sc); - TAILQ_INSERT_HEAD(&sc->sc_txbuf, bf, bf_list); + ath_returnbuf_head(sc, bf); ATH_TXBUF_UNLOCK(sc); break; } @@ -2401,7 +2401,7 @@ ath_start(struct ifnet *ifp) bf->bf_m = NULL; bf->bf_node = NULL; ATH_TXBUF_LOCK(sc); - TAILQ_INSERT_HEAD(&sc->sc_txbuf, bf, bf_list); + ath_returnbuf_head(sc, bf); ath_txfrag_cleanup(sc, &frags, ni); ATH_TXBUF_UNLOCK(sc); if (ni != NULL) @@ -3631,6 +3631,24 @@ ath_txq_sched_tasklet(void *arg, int npending) ATH_PCU_UNLOCK(sc); } +void +ath_returnbuf_tail(struct ath_softc *sc, struct ath_buf *bf) +{ + + ATH_TXBUF_LOCK_ASSERT(sc); + + TAILQ_INSERT_TAIL(&sc->sc_txbuf, bf, bf_list); +} + +void +ath_returnbuf_head(struct ath_softc *sc, struct ath_buf *bf) +{ + + ATH_TXBUF_LOCK_ASSERT(sc); + + TAILQ_INSERT_HEAD(&sc->sc_txbuf, bf, bf_list); +} + /* * Return a buffer to the pool and update the 'busy' flag on the * previous 'tail' entry. @@ -3653,7 +3671,7 @@ ath_freebuf(struct ath_softc *sc, struct ath_buf *bf) ATH_TXBUF_LOCK(sc); ath_tx_update_busy(sc); - TAILQ_INSERT_TAIL(&sc->sc_txbuf, bf, bf_list); + ath_returnbuf_tail(sc, bf); ATH_TXBUF_UNLOCK(sc); } diff --git a/sys/dev/ath/if_ath_misc.h b/sys/dev/ath/if_ath_misc.h index 96fa55e2657d..f1c1d4baba15 100644 --- a/sys/dev/ath/if_ath_misc.h +++ b/sys/dev/ath/if_ath_misc.h @@ -55,6 +55,8 @@ extern struct ath_buf * _ath_getbuf_locked(struct ath_softc *sc); extern struct ath_buf * ath_buf_clone(struct ath_softc *sc, const struct ath_buf *bf); extern void ath_freebuf(struct ath_softc *sc, struct ath_buf *bf); +extern void ath_returnbuf_head(struct ath_softc *sc, struct ath_buf *bf); +extern void ath_returnbuf_tail(struct ath_softc *sc, struct ath_buf *bf); extern int ath_reset(struct ifnet *, ATH_RESET_TYPE); extern void ath_tx_draintxq(struct ath_softc *sc, struct ath_txq *txq); diff --git a/sys/dev/ath/if_ath_tx.c b/sys/dev/ath/if_ath_tx.c index 677288edaef1..e2f6a2ea6742 100644 --- a/sys/dev/ath/if_ath_tx.c +++ b/sys/dev/ath/if_ath_tx.c @@ -184,7 +184,7 @@ ath_txfrag_cleanup(struct ath_softc *sc, TAILQ_FOREACH_SAFE(bf, frags, bf_list, next) { /* NB: bf assumed clean */ TAILQ_REMOVE(frags, bf, bf_list); - TAILQ_INSERT_HEAD(&sc->sc_txbuf, bf, bf_list); + ath_returnbuf_head(sc, bf); ieee80211_node_decref(ni); } } @@ -1916,7 +1916,7 @@ ath_raw_xmit(struct ieee80211_node *ni, struct mbuf *m, return 0; bad2: ATH_TXBUF_LOCK(sc); - TAILQ_INSERT_HEAD(&sc->sc_txbuf, bf, bf_list); + ath_returnbuf_head(sc, bf); ATH_TXBUF_UNLOCK(sc); bad: ATH_PCU_LOCK(sc); @@ -3137,7 +3137,7 @@ ath_tx_retry_clone(struct ath_softc *sc, struct ath_node *an, * the list.) */ ATH_TXBUF_LOCK(sc); - TAILQ_INSERT_HEAD(&sc->sc_txbuf, nbf, bf_list); + ath_returnbuf_head(sc, bf); ATH_TXBUF_UNLOCK(sc); return NULL; } From 32c387f76a0657be32969052801932a679127720 Mon Sep 17 00:00:00 2001 From: Adrian Chadd Date: Wed, 13 Jun 2012 05:41:00 +0000 Subject: [PATCH 176/340] Oops, return the newly allocated buffer to the queue, not the completed buffer. PR: kern/168170 --- sys/dev/ath/if_ath_tx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/dev/ath/if_ath_tx.c b/sys/dev/ath/if_ath_tx.c index e2f6a2ea6742..bfecda12a332 100644 --- a/sys/dev/ath/if_ath_tx.c +++ b/sys/dev/ath/if_ath_tx.c @@ -3137,7 +3137,7 @@ ath_tx_retry_clone(struct ath_softc *sc, struct ath_node *an, * the list.) */ ATH_TXBUF_LOCK(sc); - ath_returnbuf_head(sc, bf); + ath_returnbuf_head(sc, nbf); ATH_TXBUF_UNLOCK(sc); return NULL; } From 46f5390139b503c2413e2c91abb44a2757927b4c Mon Sep 17 00:00:00 2001 From: Adrian Chadd Date: Wed, 13 Jun 2012 05:47:24 +0000 Subject: [PATCH 177/340] Remove a duplicate definition. --- sys/dev/ath/if_ath_tx_ht.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/sys/dev/ath/if_ath_tx_ht.c b/sys/dev/ath/if_ath_tx_ht.c index 96a153427d81..7ef72bc7c6ca 100644 --- a/sys/dev/ath/if_ath_tx_ht.c +++ b/sys/dev/ath/if_ath_tx_ht.c @@ -438,7 +438,6 @@ static void ath_rateseries_setup(struct ath_softc *sc, struct ieee80211_node *ni, struct ath_buf *bf, HAL_11N_RATE_SERIES *series) { -#define HT_RC_2_STREAMS(_rc) ((((_rc) & 0x78) >> 3) + 1) struct ieee80211com *ic = ni->ni_ic; struct ath_hal *ah = sc->sc_ah; HAL_BOOL shortPreamble = AH_FALSE; @@ -528,7 +527,6 @@ ath_rateseries_setup(struct ath_softc *sc, struct ieee80211_node *ni, rt, pktlen, rc[i].rix, shortPreamble); } } -#undef HT_RC_2_STREAMS } #if 0 From 790fb4edf2081e491d98165792dbd74ca18be603 Mon Sep 17 00:00:00 2001 From: Fabien Thomas Date: Wed, 13 Jun 2012 06:38:25 +0000 Subject: [PATCH 178/340] Add ARM callchain support for hwpmc. Sponsored by: NETASQ MFC after: 3 days --- sys/arm/include/pmc_mdep.h | 14 +++-- sys/dev/hwpmc/hwpmc_arm.c | 104 ++++++++++++++++++++++++++++++++----- 2 files changed, 103 insertions(+), 15 deletions(-) diff --git a/sys/arm/include/pmc_mdep.h b/sys/arm/include/pmc_mdep.h index ab08d3664486..6153df0f7eb5 100644 --- a/sys/arm/include/pmc_mdep.h +++ b/sys/arm/include/pmc_mdep.h @@ -50,9 +50,17 @@ union pmc_md_pmc { struct pmc_md_xscale_pmc pm_xscale; }; -#define PMC_TRAPFRAME_TO_PC(TF) ((TF)->tf_pc) -#define PMC_TRAPFRAME_TO_FP(TF) ((TF)->tf_usr_lr) -#define PMC_TRAPFRAME_TO_SP(TF) ((TF)->tf_usr_sp) +#define PMC_IN_KERNEL_STACK(S,START,END) \ + ((S) >= (START) && (S) < (END)) +#define PMC_IN_KERNEL(va) (((va) >= USRSTACK) && \ + ((va) < VM_MAX_KERNEL_ADDRESS)) + +#define PMC_IN_USERSPACE(va) ((va) <= VM_MAXUSER_ADDRESS) + +#define PMC_TRAPFRAME_TO_PC(TF) ((TF)->tf_pc) +#define PMC_TRAPFRAME_TO_FP(TF) ((TF)->tf_r11) +#define PMC_TRAPFRAME_TO_SVC_SP(TF) ((TF)->tf_svc_sp) +#define PMC_TRAPFRAME_TO_USR_SP(TF) ((TF)->tf_usr_sp) /* Build a fake kernel trapframe from current instruction pointer. */ #define PMC_FAKE_TRAPFRAME(TF) \ diff --git a/sys/dev/hwpmc/hwpmc_arm.c b/sys/dev/hwpmc/hwpmc_arm.c index fc7616542185..c2c24c226b31 100644 --- a/sys/dev/hwpmc/hwpmc_arm.c +++ b/sys/dev/hwpmc/hwpmc_arm.c @@ -30,10 +30,16 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include -#include +#include #include +#include + +#include +#include +#include struct pmc_mdep * pmc_md_initialize() @@ -58,27 +64,101 @@ pmc_md_finalize(struct pmc_mdep *md) #endif } -static int -pmc_save_callchain(uintptr_t *cc, int maxsamples, - struct trapframe *tf) -{ - - *cc = PMC_TRAPFRAME_TO_PC(tf); - return (1); -} - int pmc_save_kernel_callchain(uintptr_t *cc, int maxsamples, struct trapframe *tf) { + uintptr_t pc, r, stackstart, stackend, fp; + struct thread *td; + int count; - return pmc_save_callchain(cc, maxsamples, tf); + KASSERT(TRAPF_USERMODE(tf) == 0,("[arm,%d] not a kernel backtrace", + __LINE__)); + + pc = PMC_TRAPFRAME_TO_PC(tf); + *cc++ = pc; + + if ((td = curthread) == NULL) + return (1); + + if (maxsamples <= 1) + return (1); + + stackstart = (uintptr_t) td->td_kstack; + stackend = (uintptr_t) td->td_kstack + td->td_kstack_pages * PAGE_SIZE; + fp = PMC_TRAPFRAME_TO_FP(tf); + + if (!PMC_IN_KERNEL(pc) || + !PMC_IN_KERNEL_STACK(fp, stackstart, stackend)) + return (1); + + for (count = 1; count < maxsamples; count++) { + /* Use saved lr as pc. */ + r = fp - sizeof(uintptr_t); + if (!PMC_IN_KERNEL_STACK(r, stackstart, stackend)) + break; + pc = *(uintptr_t *)r; + if (!PMC_IN_KERNEL(pc)) + break; + + *cc++ = pc; + + /* Switch to next frame up */ + r = fp - 3 * sizeof(uintptr_t); + if (!PMC_IN_KERNEL_STACK(r, stackstart, stackend)) + break; + fp = *(uintptr_t *)r; + if (!PMC_IN_KERNEL_STACK(fp, stackstart, stackend)) + break; + } + + return (count); } int pmc_save_user_callchain(uintptr_t *cc, int maxsamples, struct trapframe *tf) { + uintptr_t pc, r, oldfp, fp; + struct thread *td; + int count; - return pmc_save_callchain(cc, maxsamples, tf); + KASSERT(TRAPF_USERMODE(tf), ("[x86,%d] Not a user trap frame tf=%p", + __LINE__, (void *) tf)); + + pc = PMC_TRAPFRAME_TO_PC(tf); + *cc++ = pc; + + if ((td = curthread) == NULL) + return (1); + + if (maxsamples <= 1) + return (1); + + oldfp = fp = PMC_TRAPFRAME_TO_FP(tf); + + if (!PMC_IN_USERSPACE(pc) || + !PMC_IN_USERSPACE(fp)) + return (1); + + for (count = 1; count < maxsamples; count++) { + /* Use saved lr as pc. */ + r = fp - sizeof(uintptr_t); + if (copyin((void *)r, &pc, sizeof(pc)) != 0) + break; + if (!PMC_IN_USERSPACE(pc)) + break; + + *cc++ = pc; + + /* Switch to next frame up */ + oldfp = fp; + r = fp - 3 * sizeof(uintptr_t); + if (copyin((void *)r, &fp, sizeof(fp)) != 0) + break; + if (fp < oldfp || !PMC_IN_USERSPACE(fp)) + break; + } + + return (count); } From 4ea96942526cda5b90a254e36dcb39f6c1d2bdbd Mon Sep 17 00:00:00 2001 From: Eitan Adler Date: Wed, 13 Jun 2012 06:46:00 +0000 Subject: [PATCH 179/340] Include a warning when using the example code as it may not work in unusual situations. Also slightly optimize the command. Submitted by: Jeremy Chadwick jdc@koitsu.org Approved by: cperciva (implicit) MFC after: 1 week --- share/examples/csh/dot.cshrc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/share/examples/csh/dot.cshrc b/share/examples/csh/dot.cshrc index 175bfd20e414..5b30791864bd 100644 --- a/share/examples/csh/dot.cshrc +++ b/share/examples/csh/dot.cshrc @@ -4,8 +4,12 @@ # # Sets SSH_AUTH_SOCK to the user's ssh-agent socket path if running +# +# This has a couple caveats, the most notable being that if a user +# has multiple ssh-agent(1) processes running, this will very likely +# set SSH_AUTH_SOCK to point to the wrong file/domain socket. if (${?SSH_AUTH_SOCK} != "1") then - setenv SSH_AUTH_SOCK `sockstat | grep "^${USER} " | awk '/ssh-agent/ { print $6 }'` + setenv SSH_AUTH_SOCK `sockstat -u | awk '/^${USER}.+ ssh-agent/ { print $6 }' endif # Change only root's prompt From af33d486abaf1428c48bfb0223831c26902b2b89 Mon Sep 17 00:00:00 2001 From: Adrian Chadd Date: Wed, 13 Jun 2012 06:57:55 +0000 Subject: [PATCH 180/340] Implement a separate, smaller pool of ath_buf entries for use by management traffic. * Create sc_mgmt_txbuf and sc_mgmt_txdesc, initialise/free them appropriately. * Create an enum to represent buffer types in the API. * Extend ath_getbuf() and _ath_getbuf_locked() to take the above enum. * Right now anything sent via ic_raw_xmit() allocates via ATH_BUFTYPE_MGMT. This may not be very useful. * Add ATH_BUF_MGMT flag (ath_buf.bf_flags) which indicates the current buffer is a mgmt buffer and should go back onto the mgmt free list. * Extend 'txagg' to include debugging output for both normal and mgmt txbufs. * When checking/clearing ATH_BUF_BUSY, do it on both TX pools. Tested: * STA mode, with heavy UDP injection via iperf. This filled the TX queue however BARs were still going out successfully. TODO: * Initialise the mgmt buffers with ATH_BUF_MGMT and then ensure the right type is being allocated and freed on the appropriate list. That'd save a write operation (to bf->bf_flags) on each buffer alloc/free. * Test on AP mode, ensure that BAR TX and probe responses go out nicely when the main TX queue is filled (eg with paused traffic to a TID, awaiting a BAR to complete.) PR: kern/168170 --- sys/dev/ath/if_ath.c | 82 +++++++++++++++++++++++++++++++------ sys/dev/ath/if_ath_misc.h | 7 +++- sys/dev/ath/if_ath_sysctl.c | 13 ++++++ sys/dev/ath/if_ath_tx.c | 5 ++- sys/dev/ath/if_athvar.h | 16 ++++++++ 5 files changed, 106 insertions(+), 17 deletions(-) diff --git a/sys/dev/ath/if_ath.c b/sys/dev/ath/if_ath.c index b92566853276..004494974046 100644 --- a/sys/dev/ath/if_ath.c +++ b/sys/dev/ath/if_ath.c @@ -246,6 +246,10 @@ static int ath_txbuf = ATH_TXBUF; /* # tx buffers to allocate */ SYSCTL_INT(_hw_ath, OID_AUTO, txbuf, CTLFLAG_RW, &ath_txbuf, 0, "tx buffers allocated"); TUNABLE_INT("hw.ath.txbuf", &ath_txbuf); +static int ath_txbuf_mgmt = ATH_MGMT_TXBUF; /* # mgmt tx buffers to allocate */ +SYSCTL_INT(_hw_ath, OID_AUTO, txbuf_mgmt, CTLFLAG_RW, &ath_txbuf_mgmt, + 0, "tx (mgmt) buffers allocated"); +TUNABLE_INT("hw.ath.txbuf_mgmt", &ath_txbuf_mgmt); int ath_bstuck_threshold = 4; /* max missed beacons */ SYSCTL_INT(_hw_ath, OID_AUTO, bstuck, CTLFLAG_RW, &ath_bstuck_threshold, @@ -2212,13 +2216,17 @@ ath_reset_vap(struct ieee80211vap *vap, u_long cmd) } struct ath_buf * -_ath_getbuf_locked(struct ath_softc *sc) +_ath_getbuf_locked(struct ath_softc *sc, ath_buf_type_t btype) { struct ath_buf *bf; ATH_TXBUF_LOCK_ASSERT(sc); - bf = TAILQ_FIRST(&sc->sc_txbuf); + if (btype == ATH_BUFTYPE_MGMT) + bf = TAILQ_FIRST(&sc->sc_txbuf_mgmt); + else + bf = TAILQ_FIRST(&sc->sc_txbuf); + if (bf == NULL) { sc->sc_stats.ast_tx_getnobuf++; } else { @@ -2228,18 +2236,29 @@ _ath_getbuf_locked(struct ath_softc *sc) } } - if (bf != NULL && (bf->bf_flags & ATH_BUF_BUSY) == 0) - TAILQ_REMOVE(&sc->sc_txbuf, bf, bf_list); - else + if (bf != NULL && (bf->bf_flags & ATH_BUF_BUSY) == 0) { + if (btype == ATH_BUFTYPE_MGMT) + TAILQ_REMOVE(&sc->sc_txbuf_mgmt, bf, bf_list); + else + TAILQ_REMOVE(&sc->sc_txbuf, bf, bf_list); + } else bf = NULL; if (bf == NULL) { + /* XXX should check which list, mgmt or otherwise */ DPRINTF(sc, ATH_DEBUG_XMIT, "%s: %s\n", __func__, TAILQ_FIRST(&sc->sc_txbuf) == NULL ? "out of xmit buffers" : "xmit buffer busy"); return NULL; } + /* XXX TODO: should do this at buffer list initialisation */ + /* XXX (then, ensure the buffer has the right flag set) */ + if (btype == ATH_BUFTYPE_MGMT) + bf->bf_flags |= ATH_BUF_MGMT; + else + bf->bf_flags &= (~ATH_BUF_MGMT); + /* Valid bf here; clear some basic fields */ bf->bf_next = NULL; /* XXX just to be sure */ bf->bf_last = NULL; /* XXX again, just to be sure */ @@ -2274,7 +2293,9 @@ ath_buf_clone(struct ath_softc *sc, const struct ath_buf *bf) { struct ath_buf *tbf; - tbf = ath_getbuf(sc); + tbf = ath_getbuf(sc, + (bf->bf_flags & ATH_BUF_MGMT) ? + ATH_BUFTYPE_MGMT : ATH_BUFTYPE_NORMAL); if (tbf == NULL) return NULL; /* XXX failure? Why? */ @@ -2302,12 +2323,18 @@ ath_buf_clone(struct ath_softc *sc, const struct ath_buf *bf) } struct ath_buf * -ath_getbuf(struct ath_softc *sc) +ath_getbuf(struct ath_softc *sc, ath_buf_type_t btype) { struct ath_buf *bf; ATH_TXBUF_LOCK(sc); - bf = _ath_getbuf_locked(sc); + bf = _ath_getbuf_locked(sc, btype); + /* + * If a mgmt buffer was requested but we're out of those, + * try requesting a normal one. + */ + if (bf == NULL && btype == ATH_BUFTYPE_MGMT) + bf = _ath_getbuf_locked(sc, ATH_BUFTYPE_NORMAL); ATH_TXBUF_UNLOCK(sc); if (bf == NULL) { struct ifnet *ifp = sc->sc_ifp; @@ -2351,7 +2378,7 @@ ath_start(struct ifnet *ifp) /* * Grab a TX buffer and associated resources. */ - bf = ath_getbuf(sc); + bf = ath_getbuf(sc, ATH_BUFTYPE_NORMAL); if (bf == NULL) break; @@ -2857,11 +2884,26 @@ ath_desc_alloc(struct ath_softc *sc) return error; } + error = ath_descdma_setup(sc, &sc->sc_txdma_mgmt, &sc->sc_txbuf_mgmt, + "tx_mgmt", ath_txbuf_mgmt, ATH_TXDESC); + if (error != 0) { + ath_descdma_cleanup(sc, &sc->sc_rxdma, &sc->sc_rxbuf); + ath_descdma_cleanup(sc, &sc->sc_txdma, &sc->sc_txbuf); + return error; + } + + /* + * XXX mark txbuf_mgmt frames with ATH_BUF_MGMT, so the + * flag doesn't have to be set in ath_getbuf_locked(). + */ + error = ath_descdma_setup(sc, &sc->sc_bdma, &sc->sc_bbuf, "beacon", ATH_BCBUF, 1); if (error != 0) { - ath_descdma_cleanup(sc, &sc->sc_txdma, &sc->sc_txbuf); ath_descdma_cleanup(sc, &sc->sc_rxdma, &sc->sc_rxbuf); + ath_descdma_cleanup(sc, &sc->sc_txdma, &sc->sc_txbuf); + ath_descdma_cleanup(sc, &sc->sc_txdma_mgmt, + &sc->sc_txbuf_mgmt); return error; } return 0; @@ -2877,6 +2919,9 @@ ath_desc_free(struct ath_softc *sc) ath_descdma_cleanup(sc, &sc->sc_txdma, &sc->sc_txbuf); if (sc->sc_rxdma.dd_desc_len != 0) ath_descdma_cleanup(sc, &sc->sc_rxdma, &sc->sc_rxbuf); + if (sc->sc_txdma_mgmt.dd_desc_len != 0) + ath_descdma_cleanup(sc, &sc->sc_txdma_mgmt, + &sc->sc_txbuf_mgmt); } static struct ieee80211_node * @@ -3323,12 +3368,14 @@ ath_tx_update_busy(struct ath_softc *sc) * descriptor. */ ATH_TXBUF_LOCK_ASSERT(sc); + last = TAILQ_LAST(&sc->sc_txbuf_mgmt, ath_bufhead_s); + if (last != NULL) + last->bf_flags &= ~ATH_BUF_BUSY; last = TAILQ_LAST(&sc->sc_txbuf, ath_bufhead_s); if (last != NULL) last->bf_flags &= ~ATH_BUF_BUSY; } - /* * Process completed xmit descriptors from the specified queue. * Kick the packet scheduler if needed. This can occur from this @@ -3637,7 +3684,10 @@ ath_returnbuf_tail(struct ath_softc *sc, struct ath_buf *bf) ATH_TXBUF_LOCK_ASSERT(sc); - TAILQ_INSERT_TAIL(&sc->sc_txbuf, bf, bf_list); + if (bf->bf_flags & ATH_BUF_MGMT) + TAILQ_INSERT_TAIL(&sc->sc_txbuf_mgmt, bf, bf_list); + else + TAILQ_INSERT_TAIL(&sc->sc_txbuf, bf, bf_list); } void @@ -3646,7 +3696,10 @@ ath_returnbuf_head(struct ath_softc *sc, struct ath_buf *bf) ATH_TXBUF_LOCK_ASSERT(sc); - TAILQ_INSERT_HEAD(&sc->sc_txbuf, bf, bf_list); + if (bf->bf_flags & ATH_BUF_MGMT) + TAILQ_INSERT_HEAD(&sc->sc_txbuf_mgmt, bf, bf_list); + else + TAILQ_INSERT_HEAD(&sc->sc_txbuf, bf, bf_list); } /* @@ -3725,6 +3778,9 @@ ath_tx_draintxq(struct ath_softc *sc, struct ath_txq *txq) */ ATH_TXBUF_LOCK(sc); bf = TAILQ_LAST(&sc->sc_txbuf, ath_bufhead_s); + if (bf != NULL) + bf->bf_flags &= ~ATH_BUF_BUSY; + bf = TAILQ_LAST(&sc->sc_txbuf_mgmt, ath_bufhead_s); if (bf != NULL) bf->bf_flags &= ~ATH_BUF_BUSY; ATH_TXBUF_UNLOCK(sc); diff --git a/sys/dev/ath/if_ath_misc.h b/sys/dev/ath/if_ath_misc.h index f1c1d4baba15..4c1d24b313e1 100644 --- a/sys/dev/ath/if_ath_misc.h +++ b/sys/dev/ath/if_ath_misc.h @@ -50,10 +50,13 @@ extern int ath_tx_findrix(const struct ath_softc *sc, uint8_t rate); -extern struct ath_buf * ath_getbuf(struct ath_softc *sc); -extern struct ath_buf * _ath_getbuf_locked(struct ath_softc *sc); +extern struct ath_buf * ath_getbuf(struct ath_softc *sc, + ath_buf_type_t btype); +extern struct ath_buf * _ath_getbuf_locked(struct ath_softc *sc, + ath_buf_type_t btype); extern struct ath_buf * ath_buf_clone(struct ath_softc *sc, const struct ath_buf *bf); +/* XXX change this to NULL the buffer pointer? */ extern void ath_freebuf(struct ath_softc *sc, struct ath_buf *bf); extern void ath_returnbuf_head(struct ath_softc *sc, struct ath_buf *bf); extern void ath_returnbuf_tail(struct ath_softc *sc, struct ath_buf *bf); diff --git a/sys/dev/ath/if_ath_sysctl.c b/sys/dev/ath/if_ath_sysctl.c index 86e84ae1ee91..6060abb3ca49 100644 --- a/sys/dev/ath/if_ath_sysctl.c +++ b/sys/dev/ath/if_ath_sysctl.c @@ -377,6 +377,19 @@ ath_sysctl_txagg(SYSCTL_HANDLER_ARGS) printf("Total TX buffers: %d; Total TX buffers busy: %d\n", t, i); + i = t = 0; + ATH_TXBUF_LOCK(sc); + TAILQ_FOREACH(bf, &sc->sc_txbuf_mgmt, bf_list) { + if (bf->bf_flags & ATH_BUF_BUSY) { + printf("Busy: %d\n", t); + i++; + } + t++; + } + ATH_TXBUF_UNLOCK(sc); + printf("Total mgmt TX buffers: %d; Total mgmt TX buffers busy: %d\n", + t, i); + return 0; } diff --git a/sys/dev/ath/if_ath_tx.c b/sys/dev/ath/if_ath_tx.c index bfecda12a332..cf63f1cea2ba 100644 --- a/sys/dev/ath/if_ath_tx.c +++ b/sys/dev/ath/if_ath_tx.c @@ -203,7 +203,8 @@ ath_txfrag_setup(struct ath_softc *sc, ath_bufhead *frags, ATH_TXBUF_LOCK(sc); for (m = m0->m_nextpkt; m != NULL; m = m->m_nextpkt) { - bf = _ath_getbuf_locked(sc); + /* XXX non-management? */ + bf = _ath_getbuf_locked(sc, ATH_BUFTYPE_NORMAL); if (bf == NULL) { /* out of buffers, cleanup */ device_printf(sc->sc_dev, "%s: no buffer?\n", __func__); @@ -1878,7 +1879,7 @@ ath_raw_xmit(struct ieee80211_node *ni, struct mbuf *m, /* * Grab a TX buffer and associated resources. */ - bf = ath_getbuf(sc); + bf = ath_getbuf(sc, ATH_BUFTYPE_MGMT); if (bf == NULL) { sc->sc_stats.ast_tx_nobuf++; m_freem(m); diff --git a/sys/dev/ath/if_athvar.h b/sys/dev/ath/if_athvar.h index 07ed8af72e45..407e99731b90 100644 --- a/sys/dev/ath/if_athvar.h +++ b/sys/dev/ath/if_athvar.h @@ -43,6 +43,14 @@ #define ATH_TIMEOUT 1000 +/* + * There is a separate TX ath_buf pool for management frames. + * This ensures that management frames such as probe responses + * and BAR frames can be transmitted during periods of high + * TX activity. + */ +#define ATH_MGMT_TXBUF 32 + /* * 802.11n requires more TX and RX buffers to do AMPDU. */ @@ -172,6 +180,11 @@ struct ath_node { ((((x)%(mul)) >= ((mul)/2)) ? ((x) + ((mul) - 1)) / (mul) : (x)/(mul)) #define ATH_RSSI(x) ATH_EP_RND(x, HAL_RSSI_EP_MULTIPLIER) +typedef enum { + ATH_BUFTYPE_NORMAL = 0, + ATH_BUFTYPE_MGMT = 1, +} ath_buf_type_t; + struct ath_buf { TAILQ_ENTRY(ath_buf) bf_list; struct ath_buf * bf_next; /* next buffer in the aggregate */ @@ -243,6 +256,7 @@ struct ath_buf { }; typedef TAILQ_HEAD(ath_bufhead_s, ath_buf) ath_bufhead; +#define ATH_BUF_MGMT 0x00000001 /* (tx) desc is a mgmt desc */ #define ATH_BUF_BUSY 0x00000002 /* (tx) desc owned by h/w */ /* @@ -487,6 +501,8 @@ struct ath_softc { struct ath_descdma sc_txdma; /* TX descriptors */ ath_bufhead sc_txbuf; /* transmit buffer */ + struct ath_descdma sc_txdma_mgmt; /* mgmt TX descriptors */ + ath_bufhead sc_txbuf_mgmt; /* mgmt transmit buffer */ struct mtx sc_txbuflock; /* txbuf lock */ char sc_txname[12]; /* e.g. "ath0_buf" */ u_int sc_txqsetup; /* h/w queues setup */ From 253a9c296cfc0c39b3ea4312fea9f203dd933736 Mon Sep 17 00:00:00 2001 From: Martin Matuska Date: Wed, 13 Jun 2012 08:00:32 +0000 Subject: [PATCH 181/340] Fix ZFS boot with pre-features pools (version <= 28) broken in r236884 Reported by: mav MFC after: 1 month --- sys/boot/zfs/zfsimpl.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/sys/boot/zfs/zfsimpl.c b/sys/boot/zfs/zfsimpl.c index a770e015b3a9..dd90c6c3fd1a 100644 --- a/sys/boot/zfs/zfsimpl.c +++ b/sys/boot/zfs/zfsimpl.c @@ -888,9 +888,10 @@ vdev_probe(vdev_phys_read_t *read, void *read_priv, spa_t **spap) } /* Check ZFS features for read */ - rc = nvlist_find(nvlist, ZPOOL_CONFIG_FEATURES_FOR_READ, - DATA_TYPE_NVLIST, 0, &features); - if (nvlist_check_features_for_read(features) != 0) + if (nvlist_find(nvlist, + ZPOOL_CONFIG_FEATURES_FOR_READ, + DATA_TYPE_NVLIST, 0, &features) == 0 + && nvlist_check_features_for_read(features) != 0) return (EIO); if (nvlist_find(nvlist, From 2521de06a0173e9484533b2789df025d078f9b21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dag-Erling=20Sm=C3=B8rgrav?= Date: Wed, 13 Jun 2012 11:59:03 +0000 Subject: [PATCH 182/340] Remove auth.conf and related files. Submitted by: trhodes@ MFC after: 3 weeks --- ObsoleteFiles.inc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ObsoleteFiles.inc b/ObsoleteFiles.inc index 276bc0f38053..adfcc84a0660 100644 --- a/ObsoleteFiles.inc +++ b/ObsoleteFiles.inc @@ -38,6 +38,10 @@ # xargs -n1 | sort | uniq -d; # done +# 20120613: auth.conf removed +OLD_FILES+=/etc/auth.conf +OLD_FILES+=/usr/share/man/man3/auth.3.gz +OLD_FILES+=/usr/share/man/man5/auth.conf.5.gz # 20120530: kde pam lives now in ports OLD_FILES+=/etc/pam.d/kde # 20120505: new clang import installed a redundant internal header From 49ceb2f3577e59b4c41fa16062ebff9f981fbaca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dag-Erling=20Sm=C3=B8rgrav?= Date: Wed, 13 Jun 2012 11:59:47 +0000 Subject: [PATCH 183/340] Remove leading / MFC after: 3 weeks --- ObsoleteFiles.inc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ObsoleteFiles.inc b/ObsoleteFiles.inc index adfcc84a0660..1e1dd73b7a81 100644 --- a/ObsoleteFiles.inc +++ b/ObsoleteFiles.inc @@ -39,11 +39,11 @@ # done # 20120613: auth.conf removed -OLD_FILES+=/etc/auth.conf -OLD_FILES+=/usr/share/man/man3/auth.3.gz -OLD_FILES+=/usr/share/man/man5/auth.conf.5.gz +OLD_FILES+=etc/auth.conf +OLD_FILES+=usr/share/man/man3/auth.3.gz +OLD_FILES+=usr/share/man/man5/auth.conf.5.gz # 20120530: kde pam lives now in ports -OLD_FILES+=/etc/pam.d/kde +OLD_FILES+=etc/pam.d/kde # 20120505: new clang import installed a redundant internal header OLD_FILES+=usr/include/clang/3.1/stdalign.h # 20120428: MD2 removed from libmd From ddac8cc944f0cb311fcacb2352d9030d932765d8 Mon Sep 17 00:00:00 2001 From: John Baldwin Date: Wed, 13 Jun 2012 15:04:50 +0000 Subject: [PATCH 184/340] Fix a couple of bugs that prevented windows in PCI-PCI bridges from growing "downward" (moving the start address down). First, an off by one error caused the end address to be moved down an extra alignment chunk unnecessarily. Second, when aligning the new candidate starting address, the wrong bits were masked off. Tested by: Andrey Zonov andrey zonov org MFC after: 3 days --- sys/dev/pci/pci_pci.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sys/dev/pci/pci_pci.c b/sys/dev/pci/pci_pci.c index d624104f25c6..d47b299c9e37 100644 --- a/sys/dev/pci/pci_pci.c +++ b/sys/dev/pci/pci_pci.c @@ -893,9 +893,9 @@ pcib_grow_window(struct pcib_softc *sc, struct pcib_window *w, int type, if (start < rman_get_start(w->res)) { if (rman_first_free_region(&w->rman, &start_free, &end_free) != 0 || start_free != rman_get_start(w->res)) - end_free = rman_get_start(w->res) - 1; + end_free = rman_get_start(w->res); if (end_free > end) - end_free = end; + end_free = end + 1; /* Move end_free down until it is properly aligned. */ end_free &= ~(align - 1); @@ -913,7 +913,7 @@ pcib_grow_window(struct pcib_softc *sc, struct pcib_window *w, int type, if (bootverbose) printf("\tfront candidate range: %#lx-%#lx\n", front, end_free); - front &= (1ul << w->step) - 1; + front &= ~(1ul << w->step) - 1; front = rman_get_start(w->res) - front; } else front = 0; From 8cfede30f9ad5987065f45f919ce52249e315b28 Mon Sep 17 00:00:00 2001 From: Warner Losh Date: Wed, 13 Jun 2012 16:12:30 +0000 Subject: [PATCH 185/340] Remove leakage of other patches into last commit. --- sys/arm/xscale/i80321/ep80219_machdep.c | 2 +- sys/arm/xscale/i80321/iq31244_machdep.c | 2 +- sys/arm/xscale/i8134x/crb_machdep.c | 2 +- sys/arm/xscale/ixp425/avila_machdep.c | 2 +- sys/arm/xscale/pxa/pxa_machdep.c | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/sys/arm/xscale/i80321/ep80219_machdep.c b/sys/arm/xscale/i80321/ep80219_machdep.c index 0508244f69a6..d96b10341802 100644 --- a/sys/arm/xscale/i80321/ep80219_machdep.c +++ b/sys/arm/xscale/i80321/ep80219_machdep.c @@ -192,8 +192,8 @@ initarm(struct arm_boot_params *abp) vm_offset_t lastaddr; uint32_t memsize, memstart; - lastaddr = parse_boot_param(abp); set_cpufuncs(); + lastaddr = fake_preload_metadata(); pcpu_init(pcpup, 0, sizeof(struct pcpu)); PCPU_SET(curthread, &thread0); diff --git a/sys/arm/xscale/i80321/iq31244_machdep.c b/sys/arm/xscale/i80321/iq31244_machdep.c index 9790c0b9ca88..bb2f55481e2a 100644 --- a/sys/arm/xscale/i80321/iq31244_machdep.c +++ b/sys/arm/xscale/i80321/iq31244_machdep.c @@ -193,8 +193,8 @@ initarm(struct arm_boot_params *abp) vm_offset_t lastaddr; uint32_t memsize, memstart; - lastaddr = parse_boot_param(abp); set_cpufuncs(); + lastaddr = fake_preload_metadata(); pcpu_init(pcpup, 0, sizeof(struct pcpu)); PCPU_SET(curthread, &thread0); diff --git a/sys/arm/xscale/i8134x/crb_machdep.c b/sys/arm/xscale/i8134x/crb_machdep.c index 8567b174411e..b04769280e9b 100644 --- a/sys/arm/xscale/i8134x/crb_machdep.c +++ b/sys/arm/xscale/i8134x/crb_machdep.c @@ -189,8 +189,8 @@ initarm(struct arm_boot_params *abp) vm_offset_t lastaddr; uint32_t memsize, memstart; - lastaddr = parse_boot_param(abp); set_cpufuncs(); + lastaddr = fake_preload_metadata(); pcpu_init(pcpup, 0, sizeof(struct pcpu)); PCPU_SET(curthread, &thread0); diff --git a/sys/arm/xscale/ixp425/avila_machdep.c b/sys/arm/xscale/ixp425/avila_machdep.c index 22b0e10e5569..97623bd578e5 100644 --- a/sys/arm/xscale/ixp425/avila_machdep.c +++ b/sys/arm/xscale/ixp425/avila_machdep.c @@ -238,8 +238,8 @@ initarm(struct arm_boot_params *abp) vm_offset_t lastaddr; uint32_t memsize; - lastaddr = parse_boot_param(abp); set_cpufuncs(); /* NB: sets cputype */ + lastaddr = fake_preload_metadata(); pcpu_init(pcpup, 0, sizeof(struct pcpu)); PCPU_SET(curthread, &thread0); diff --git a/sys/arm/xscale/pxa/pxa_machdep.c b/sys/arm/xscale/pxa/pxa_machdep.c index da5787ac1779..3643bc3a6a24 100644 --- a/sys/arm/xscale/pxa/pxa_machdep.c +++ b/sys/arm/xscale/pxa/pxa_machdep.c @@ -174,8 +174,8 @@ initarm(struct arm_boot_params *abp) int i, j; uint32_t memsize[PXA2X0_SDRAM_BANKS], memstart[PXA2X0_SDRAM_BANKS]; - lastaddr = parse_boot_param(abp); set_cpufuncs(); + lastaddr = fake_preload_metadata(); pcpu_init(pcpup, 0, sizeof(struct pcpu)); PCPU_SET(curthread, &thread0); From da9c39045abdb81a2a856f53ebf5e06b7b24849f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dag-Erling=20Sm=C3=B8rgrav?= Date: Wed, 13 Jun 2012 16:40:47 +0000 Subject: [PATCH 186/340] Also remove /usr/share/examples/etc/auth.conf, which I didn't even realize existed. Noticed by: Andrey Zonov MFC after: 3 weeks --- ObsoleteFiles.inc | 1 + 1 file changed, 1 insertion(+) diff --git a/ObsoleteFiles.inc b/ObsoleteFiles.inc index 1e1dd73b7a81..269fb52fd3e6 100644 --- a/ObsoleteFiles.inc +++ b/ObsoleteFiles.inc @@ -40,6 +40,7 @@ # 20120613: auth.conf removed OLD_FILES+=etc/auth.conf +OLD_FILES+=usr/share/examples/etc/auth.conf OLD_FILES+=usr/share/man/man3/auth.3.gz OLD_FILES+=usr/share/man/man5/auth.conf.5.gz # 20120530: kde pam lives now in ports From 02efb9a8b1e33bd4100739d1509ac1060694b501 Mon Sep 17 00:00:00 2001 From: Mateusz Guzik Date: Wed, 13 Jun 2012 17:12:53 +0000 Subject: [PATCH 187/340] Re-apply reverted parts of r236935 by pjd with some changes. If fdalloc() decides to grow fdtable it does it once and at most doubles the size. This still may be not enough for sufficiently large fd. Use fd in calculations of new size in order to fix this. When growing the table, fd is already equal to first free descriptor >= minfd, also fdgrowtable() no longer drops the filedesc lock. As a result of this there is no need to retry allocation nor lookup. Fix description of fd_first_free to note all return values. In co-operation with: pjd Approved by: trasz (mentor) MFC after: 1 month --- sys/kern/kern_descrip.c | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c index 2648ba7855e8..434182954fa8 100644 --- a/sys/kern/kern_descrip.c +++ b/sys/kern/kern_descrip.c @@ -189,8 +189,9 @@ void (*mq_fdclose)(struct thread *td, int fd, struct file *fp); static struct mtx fdesc_mtx; /* - * Find the first zero bit in the given bitmap, starting at low and not - * exceeding size - 1. + * If low >= size, just return low. Otherwise find the first zero bit in the + * given bitmap, starting at low and not exceeding size - 1. Return size if + * not found. */ static int fd_first_free(struct filedesc *fdp, int low, int size) @@ -1461,7 +1462,7 @@ fdalloc(struct thread *td, int minfd, int *result) { struct proc *p = td->td_proc; struct filedesc *fdp = p->p_fd; - int fd = -1, maxfd; + int fd = -1, maxfd, allocfd; #ifdef RACCT int error; #endif @@ -1476,25 +1477,26 @@ fdalloc(struct thread *td, int minfd, int *result) PROC_UNLOCK(p); /* - * Search the bitmap for a free descriptor. If none is found, try - * to grow the file table. Keep at it until we either get a file - * descriptor or run into process or system limits. + * Search the bitmap for a free descriptor starting at minfd. + * If none is found, grow the file table. */ - for (;;) { - fd = fd_first_free(fdp, minfd, fdp->fd_nfiles); - if (fd >= maxfd) - return (EMFILE); - if (fd < fdp->fd_nfiles) - break; + fd = fd_first_free(fdp, minfd, fdp->fd_nfiles); + if (fd >= maxfd) + return (EMFILE); + if (fd >= fdp->fd_nfiles) { + allocfd = min(fd * 2, maxfd); #ifdef RACCT PROC_LOCK(p); - error = racct_set(p, RACCT_NOFILE, - min(fdp->fd_nfiles * 2, maxfd)); + error = racct_set(p, RACCT_NOFILE, allocfd); PROC_UNLOCK(p); if (error != 0) return (EMFILE); #endif - fdgrowtable(fdp, min(fdp->fd_nfiles * 2, maxfd)); + /* + * fd is already equal to first free descriptor >= minfd, so + * we only need to grow the table and we are done. + */ + fdgrowtable(fdp, allocfd); } /* From 2ca63f0a909107aa10f9dd1e7758304b2fb2cd42 Mon Sep 17 00:00:00 2001 From: Mateusz Guzik Date: Wed, 13 Jun 2012 17:18:16 +0000 Subject: [PATCH 188/340] Remove 'low' argument from fd_last_used(). This function is static and the only caller always passes 0 as low. While here update note about return values in comment. Reviewed by: pjd Approved by: trasz (mentor) MFC after: 1 month --- sys/kern/kern_descrip.c | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c index 434182954fa8..9592d8ef5ba5 100644 --- a/sys/kern/kern_descrip.c +++ b/sys/kern/kern_descrip.c @@ -119,7 +119,7 @@ static int closefp(struct filedesc *fdp, int fd, struct file *fp, static int do_dup(struct thread *td, int flags, int old, int new, register_t *retval); static int fd_first_free(struct filedesc *, int, int); -static int fd_last_used(struct filedesc *, int, int); +static int fd_last_used(struct filedesc *, int); static void fdgrowtable(struct filedesc *, int); static void fdunused(struct filedesc *fdp, int fd); static void fdused(struct filedesc *fdp, int fd); @@ -217,19 +217,16 @@ fd_first_free(struct filedesc *fdp, int low, int size) } /* - * Find the highest non-zero bit in the given bitmap, starting at low and - * not exceeding size - 1. + * Find the highest non-zero bit in the given bitmap, starting at 0 and + * not exceeding size - 1. Return -1 if not found. */ static int -fd_last_used(struct filedesc *fdp, int low, int size) +fd_last_used(struct filedesc *fdp, int size) { NDSLOTTYPE *map = fdp->fd_map; NDSLOTTYPE mask; int off, minoff; - if (low >= size) - return (-1); - off = NDSLOT(size); if (size % NDENTRIES) { mask = ~(~(NDSLOTTYPE)0 << (size % NDENTRIES)); @@ -237,10 +234,10 @@ fd_last_used(struct filedesc *fdp, int low, int size) return (off * NDENTRIES + flsl(mask) - 1); --off; } - for (minoff = NDSLOT(low); off >= minoff; --off) + for (minoff = NDSLOT(0); off >= minoff; --off) if (map[off] != 0) return (off * NDENTRIES + flsl(map[off]) - 1); - return (low - 1); + return (-1); } static int @@ -286,7 +283,7 @@ fdunused(struct filedesc *fdp, int fd) if (fd < fdp->fd_freefile) fdp->fd_freefile = fd; if (fd == fdp->fd_lastfile) - fdp->fd_lastfile = fd_last_used(fdp, 0, fd); + fdp->fd_lastfile = fd_last_used(fdp, fd); } /* From 6ae742a5497cd19839bc640904b0e20329870a4f Mon Sep 17 00:00:00 2001 From: Joel Dahl Date: Wed, 13 Jun 2012 18:57:27 +0000 Subject: [PATCH 189/340] mdoc: avoid nested displays. Fixes mandoc warnings. --- sys/netinet/libalias/libalias.3 | 6 ++---- usr.sbin/apmd/apmd.8 | 6 +++--- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/sys/netinet/libalias/libalias.3 b/sys/netinet/libalias/libalias.3 index 4d05e80e7789..1837c2957fc7 100644 --- a/sys/netinet/libalias/libalias.3 +++ b/sys/netinet/libalias/libalias.3 @@ -201,11 +201,10 @@ is closed. If this mode bit is set, traffic on the local network which does not originate from unregistered address spaces will be ignored. Standard Class A, B and C unregistered addresses are: -.Bd -literal -offset indent +.Pp 10.0.0.0 -> 10.255.255.255 (Class A subnet) 172.16.0.0 -> 172.31.255.255 (Class B subnets) 192.168.0.0 -> 192.168.255.255 (Class C subnets) -.Ed .Pp This option is useful in the case that the packet aliasing host has both registered and unregistered subnets on different interfaces. @@ -499,14 +498,13 @@ call. New traffic generated by any of the local machines, designated in the several function calls, will be aliased to the same address. Consider the following example: -.Bd -literal -offset indent +.Pp LibAliasRedirectAddr(la, inet_aton("192.168.0.2"), inet_aton("141.221.254.101")); LibAliasRedirectAddr(la, inet_aton("192.168.0.3"), inet_aton("141.221.254.101")); LibAliasRedirectAddr(la, inet_aton("192.168.0.4"), inet_aton("141.221.254.101")); -.Ed .Pp Any outgoing connections such as .Xr telnet 1 diff --git a/usr.sbin/apmd/apmd.8 b/usr.sbin/apmd/apmd.8 index 5bfd9dc390e4..633217fd3295 100644 --- a/usr.sbin/apmd/apmd.8 +++ b/usr.sbin/apmd/apmd.8 @@ -245,13 +245,13 @@ just as with a command line. The following built-in functions are currently supported: .Bl -item .It -- reject: -.Bd -ragged -offset indent +.Bl -tag -width ".It - reject" +.It - reject Reject last request posted by APM BIOS. This can be used to reject a SUSPEND request when the LCD is closed and put the system in a STANDBY state instead. -.Ed +.El .El .Ed .El From 6195bfebcc805855468ac6d9bba3e63fe21a48aa Mon Sep 17 00:00:00 2001 From: Pawel Jakub Dawidek Date: Wed, 13 Jun 2012 19:00:29 +0000 Subject: [PATCH 190/340] There is only one caller of the dupfdopen() function, so we can simplify it a bit: - We can assert that only ENODEV and ENXIO errors are passed instead of handling other errors. - The caller always call finstall() for indx descriptor, so we can assume it is set. Actually the filedesc lock is dropped between finstall() and dupfdopen(), so there is a window there for another thread to close the indx descriptor, but it will be closed in next commit. Reviewed by: mjg MFC after: 1 month --- sys/kern/kern_descrip.c | 46 +++++++++++++---------------------------- 1 file changed, 14 insertions(+), 32 deletions(-) diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c index 9592d8ef5ba5..ef4da6e2f29f 100644 --- a/sys/kern/kern_descrip.c +++ b/sys/kern/kern_descrip.c @@ -2593,6 +2593,9 @@ dupfdopen(struct thread *td, struct filedesc *fdp, int indx, int dfd, int mode, struct file *wfp; struct file *fp; + KASSERT(error == ENODEV || error == ENXIO, + ("unexpected error %d in %s", error, __func__)); + /* * If the to-be-dup'd fd number is greater than the allowed number * of file descriptors, or the fd to be dup'd has already been @@ -2612,9 +2615,8 @@ dupfdopen(struct thread *td, struct filedesc *fdp, int indx, int dfd, int mode, * * For ENXIO steal away the file structure from (dfd) and store it in * (indx). (dfd) is effectively closed by this operation. - * - * Any other error code is just returned. */ + fp = fdp->fd_ofiles[indx]; switch (error) { case ENODEV: /* @@ -2625,48 +2627,28 @@ dupfdopen(struct thread *td, struct filedesc *fdp, int indx, int dfd, int mode, FILEDESC_XUNLOCK(fdp); return (EACCES); } - fp = fdp->fd_ofiles[indx]; fdp->fd_ofiles[indx] = wfp; fdp->fd_ofileflags[indx] = fdp->fd_ofileflags[dfd]; - if (fp == NULL) - fdused(fdp, indx); fhold(wfp); - FILEDESC_XUNLOCK(fdp); - if (fp != NULL) - /* - * We now own the reference to fp that the ofiles[] - * array used to own. Release it. - */ - fdrop(fp, td); - return (0); - + break; case ENXIO: /* * Steal away the file pointer from dfd and stuff it into indx. */ - fp = fdp->fd_ofiles[indx]; - fdp->fd_ofiles[indx] = fdp->fd_ofiles[dfd]; + fdp->fd_ofiles[indx] = wfp; fdp->fd_ofiles[dfd] = NULL; fdp->fd_ofileflags[indx] = fdp->fd_ofileflags[dfd]; fdp->fd_ofileflags[dfd] = 0; fdunused(fdp, dfd); - if (fp == NULL) - fdused(fdp, indx); - FILEDESC_XUNLOCK(fdp); - - /* - * We now own the reference to fp that the ofiles[] array - * used to own. Release it. - */ - if (fp != NULL) - fdrop(fp, td); - return (0); - - default: - FILEDESC_XUNLOCK(fdp); - return (error); + break; } - /* NOTREACHED */ + FILEDESC_XUNLOCK(fdp); + /* + * We now own the reference to fp that the ofiles[] array used to own. + * Release it. + */ + fdrop(fp, td); + return (0); } /* From ea1dbd78a37a07ae29c84d86f982aa344339f499 Mon Sep 17 00:00:00 2001 From: Joel Dahl Date: Wed, 13 Jun 2012 19:08:00 +0000 Subject: [PATCH 191/340] Sync example file with mdoc changes made in rev 235450. --- share/examples/mdoc/example.4 | 2 -- 1 file changed, 2 deletions(-) diff --git a/share/examples/mdoc/example.4 b/share/examples/mdoc/example.4 index a5fa1a67a996..c39e4865a9ab 100644 --- a/share/examples/mdoc/example.4 +++ b/share/examples/mdoc/example.4 @@ -34,7 +34,6 @@ .Nd "example device driver manual page" .Sh SYNOPSIS To compile the -.Ns Nm driver into the kernel, place the following lines in the kernel configuration file: @@ -44,7 +43,6 @@ kernel configuration file: .Ed .Pp Alternatively, to load the -.Ns Nm driver as a module at boot time, place the following line in .Xr loader.conf 5 : From a6c34d9e265e541913277faa47590a842496ab62 Mon Sep 17 00:00:00 2001 From: "Pedro F. Giffuni" Date: Wed, 13 Jun 2012 20:21:08 +0000 Subject: [PATCH 192/340] Revert r236962 - Experimental amdfam10/barcelona support. The patches are unexpectedly causing gcc to fail while building ports/graphics/ImageMagick even when the cpu flags are not used. Reported by: Andreas Tobler --- contrib/gcc/ChangeLog.gcc43 | 273 +------------- contrib/gcc/builtins.c | 18 - contrib/gcc/config.gcc | 16 +- contrib/gcc/config/i386/ammintrin.h | 73 ---- contrib/gcc/config/i386/athlon.md | 378 +++----------------- contrib/gcc/config/i386/driver-i386.c | 11 +- contrib/gcc/config/i386/i386.c | 495 ++++---------------------- contrib/gcc/config/i386/i386.h | 132 ++++--- contrib/gcc/config/i386/i386.md | 360 +++---------------- contrib/gcc/config/i386/i386.opt | 18 +- contrib/gcc/config/i386/mmx.md | 8 +- contrib/gcc/config/i386/pmmintrin.h | 8 +- contrib/gcc/config/i386/sse.md | 133 +------ contrib/gcc/config/i386/tmmintrin.h | 232 +++++++++++- contrib/gcc/doc/extend.texi | 17 - contrib/gcc/doc/invoke.texi | 14 +- contrib/gcc/fold-const.c | 8 +- contrib/gcc/gimplify.c | 4 +- contrib/gcc/tree-ssa-ccp.c | 4 +- contrib/gcc/tree-ssa-pre.c | 17 - 20 files changed, 494 insertions(+), 1725 deletions(-) delete mode 100644 contrib/gcc/config/i386/ammintrin.h diff --git a/contrib/gcc/ChangeLog.gcc43 b/contrib/gcc/ChangeLog.gcc43 index d15236b099ce..23b3a392eff4 100644 --- a/contrib/gcc/ChangeLog.gcc43 +++ b/contrib/gcc/ChangeLog.gcc43 @@ -1,8 +1,3 @@ -2007-05-01 Dwarakanath Rajagopal - - * doc/invoke.texi: Fix typo, 'AMD Family 10h core' instead of - 'AMD Family 10 core'. - 2007-05-01 Dwarakanath Rajagopal (r124339) * config/i386/i386.c (override_options): Accept k8-sse3, opteron-sse3 @@ -10,39 +5,10 @@ with SSE3 instruction set support. * doc/invoke.texi: Likewise. -2007-05-01 Dwarakanath Rajagopal - - * config/i386/i386.c (override_options): Tuning 32-byte loop - alignment for amdfam10 architecture. Increasing the max loop - alignment to 24 bytes. - -2007-04-12 Richard Guenther - - PR tree-optimization/24689 - PR tree-optimization/31307 - * fold-const.c (operand_equal_p): Compare INTEGER_CST array - indices by value. - * gimplify.c (canonicalize_addr_expr): To be consistent with - gimplify_compound_lval only set operands two and three of - ARRAY_REFs if they are not gimple_min_invariant. This makes - it never at this place. - * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise. - 2007-04-07 H.J. Lu (r123639) * config/i386/i386.c (ix86_handle_option): Handle SSSE3. -2007-03-28 Dwarakanath Rajagopal - - * config.gcc: Accept barcelona as a variant of amdfam10. - * config/i386/i386.c (override_options): Likewise. - * doc/invoke.texi: Likewise. - -2007-02-09 Dwarakanath Rajagopal - - * config/i386/driver-i386.c: Turn on -mtune=native for AMDFAM10. - (bit_SSE4a): New. - 2007-02-08 Harsha Jagasia (r121726) * config/i386/xmmintrin.h: Make inclusion of emmintrin.h @@ -60,173 +26,6 @@ * config/i386/i386.c (override_options): Set PTA_SSSE3 for core2. -2007-02-05 Harsha Jagasia - - * config/i386/athlon.md (athlon_fldxf_k8, athlon_fld_k8, - athlon_fstxf_k8, athlon_fst_k8, athlon_fist, athlon_fmov, - athlon_fadd_load, athlon_fadd_load_k8, athlon_fadd, athlon_fmul, - athlon_fmul_load, athlon_fmul_load_k8, athlon_fsgn, - athlon_fdiv_load, athlon_fdiv_load_k8, athlon_fdiv_k8, - athlon_fpspc_load, athlon_fpspc, athlon_fcmov_load, - athlon_fcmov_load_k8, athlon_fcmov_k8, athlon_fcomi_load_k8, - athlon_fcomi, athlon_fcom_load_k8, athlon_fcom): Added amdfam10. - -2007-02-05 Harsha Jagasia - - * config/i386/i386.md (x86_sahf_1, cmpfp_i_mixed, cmpfp_i_sse, - cmpfp_i_i387, cmpfp_iu_mixed, cmpfp_iu_sse, cmpfp_iu_387, - swapsi, swaphi_1, swapqi_1, swapdi_rex64, fix_truncsfdi_sse, - fix_truncdfdi_sse, fix_truncsfsi_sse, fix_truncdfsi_sse, - x86_fldcw_1, floatsisf2_mixed, floatsisf2_sse, floatdisf2_mixed, - floatdisf2_sse, floatsidf2_mixed, floatsidf2_sse, - floatdidf2_mixed, floatdidf2_sse, muldi3_1_rex64, mulsi3_1, - mulsi3_1_zext, mulhi3_1, mulqi3_1, umulqihi3_1, mulqihi3_insn, - umulditi3_insn, umulsidi3_insn, mulditi3_insn, mulsidi3_insn, - umuldi3_highpart_rex64, umulsi3_highpart_insn, - umulsi3_highpart_zext, smuldi3_highpart_rex64, - smulsi3_highpart_insn, smulsi3_highpart_zext, x86_64_shld, - x86_shld_1, x86_64_shrd, sqrtsf2_mixed, sqrtsf2_sse, - sqrtsf2_i387, sqrtdf2_mixed, sqrtdf2_sse, sqrtdf2_i387, - sqrtextendsfdf2_i387, sqrtxf2, sqrtextendsfxf2_i387, - sqrtextenddfxf2_i387): Added amdfam10_decode. - - * config/i386/athlon.md (athlon_idirect_amdfam10, - athlon_ivector_amdfam10, athlon_idirect_load_amdfam10, - athlon_ivector_load_amdfam10, athlon_idirect_both_amdfam10, - athlon_ivector_both_amdfam10, athlon_idirect_store_amdfam10, - athlon_ivector_store_amdfam10): New define_insn_reservation. - (athlon_idirect_loadmov, athlon_idirect_movstore): Added - amdfam10. - -2007-02-05 Harsha Jagasia - - * config/i386/athlon.md (athlon_call_amdfam10, - athlon_pop_amdfam10, athlon_lea_amdfam10): New - define_insn_reservation. - (athlon_branch, athlon_push, athlon_leave_k8, athlon_imul_k8, - athlon_imul_k8_DI, athlon_imul_mem_k8, athlon_imul_mem_k8_DI, - athlon_idiv, athlon_idiv_mem, athlon_str): Added amdfam10. - -2007-02-05 Harsha Jagasia - - * config/i386/athlon.md (athlon_sseld_amdfam10, - athlon_mmxld_amdfam10, athlon_ssest_amdfam10, - athlon_mmxssest_short_amdfam10): New define_insn_reservation. - -2007-02-05 Harsha Jagasia - - * config/i386/athlon.md (athlon_sseins_amdfam10): New - define_insn_reservation. - * config/i386/i386.md (sseins): Added sseins to define_attr type - and define_attr unit. - * config/i386/sse.md: Set type attribute to sseins for insertq - and insertqi. - -2007-02-05 Harsha Jagasia - - * config/i386/athlon.md (sselog_load_amdfam10, sselog_amdfam10, - ssecmpvector_load_amdfam10, ssecmpvector_amdfam10, - ssecomi_load_amdfam10, ssecomi_amdfam10, - sseaddvector_load_amdfam10, sseaddvector_amdfam10): New - define_insn_reservation. - (ssecmp_load_k8, ssecmp, sseadd_load_k8, seadd): Added amdfam10. - -2007-02-05 Harsha Jagasia - - * config/i386/athlon.md (cvtss2sd_load_amdfam10, - cvtss2sd_amdfam10, cvtps2pd_load_amdfam10, cvtps2pd_amdfam10, - cvtsi2sd_load_amdfam10, cvtsi2ss_load_amdfam10, - cvtsi2sd_amdfam10, cvtsi2ss_amdfam10, cvtsd2ss_load_amdfam10, - cvtsd2ss_amdfam10, cvtpd2ps_load_amdfam10, cvtpd2ps_amdfam10, - cvtsX2si_load_amdfam10, cvtsX2si_amdfam10): New - define_insn_reservation. - - * config/i386/sse.md (cvtsi2ss, cvtsi2ssq, cvtss2si, - cvtss2siq, cvttss2si, cvttss2siq, cvtsi2sd, cvtsi2sdq, - cvtsd2si, cvtsd2siq, cvttsd2si, cvttsd2siq, - cvtpd2dq, cvttpd2dq, cvtsd2ss, cvtss2sd, - cvtpd2ps, cvtps2pd): Added amdfam10_decode attribute. - -2007-02-05 Harsha Jagasia - - * config/i386/athlon.md (athlon_ssedivvector_amdfam10, - athlon_ssedivvector_load_amdfam10, athlon_ssemulvector_amdfam10, - athlon_ssemulvector_load_amdfam10): New define_insn_reservation. - (athlon_ssediv, athlon_ssediv_load_k8, athlon_ssemul, - athlon_ssemul_load_k8): Added amdfam10. - -2007-02-05 Harsha Jagasia - - * config/i386/i386.h (TARGET_SSE_UNALIGNED_MOVE_OPTIMAL): New macro. - (x86_sse_unaligned_move_optimal): New variable. - - * config/i386/i386.c (x86_sse_unaligned_move_optimal): Enable for - m_AMDFAM10. - (ix86_expand_vector_move_misalign): Add code to generate movupd/movups - for unaligned vector SSE double/single precision loads for AMDFAM10. - -2007-02-05 Harsha Jagasia - - * config/i386/i386.h (TARGET_AMDFAM10): New macro. - (TARGET_CPU_CPP_BUILTINS): Add code for amdfam10. - Define TARGET_CPU_DEFAULT_amdfam10. - (TARGET_CPU_DEFAULT_NAMES): Add amdfam10. - (processor_type): Add PROCESSOR_AMDFAM10. - - * config/i386/i386.md: Add amdfam10 as a new cpu attribute to match - processor_type in config/i386/i386.h. - Enable imul peepholes for TARGET_AMDFAM10. - - * config.gcc: Add support for --with-cpu option for amdfam10. - - * config/i386/i386.c (amdfam10_cost): New variable. - (m_AMDFAM10): New macro. - (m_ATHLON_K8_AMDFAM10): New macro. - (x86_use_leave, x86_push_memory, x86_movx, x86_unroll_strlen, - x86_cmove, x86_3dnow_a, x86_deep_branch, x86_use_simode_fiop, - x86_promote_QImode, x86_integer_DFmode_moves, - x86_partial_reg_dependency, x86_memory_mismatch_stall, - x86_accumulate_outgoing_args, x86_arch_always_fancy_math_387, - x86_sse_partial_reg_dependency, x86_sse_typeless_stores, - x86_use_ffreep, x86_use_incdec, x86_four_jump_limit, - x86_schedule, x86_use_bt, x86_cmpxchg16b, x86_pad_returns): - Enable/disable for amdfam10. - (override_options): Add amdfam10_cost to processor_target_table. - Set up PROCESSOR_AMDFAM10 for amdfam10 entry in - processor_alias_table. - (ix86_issue_rate): Add PROCESSOR_AMDFAM10. - (ix86_adjust_cost): Add code for amdfam10. - -2007-02-05 Harsha Jagasia - - * config/i386/i386.opt: Add new Advanced Bit Manipulation (-mabm) - instruction set feature flag. Add new (-mpopcnt) flag for popcnt - instruction. Add new SSE4A (-msse4a) instruction set feature flag. - * config/i386/i386.h: Add builtin definition for SSE4A. - * config/i386/i386.md: Add support for ABM instructions - (popcnt and lzcnt). - * config/i386/sse.md: Add support for SSE4A instructions - (movntss, movntsd, extrq, insertq). - * config/i386/i386.c: Add support for ABM and SSE4A builtins. - Add -march=amdfam10 flag. - * config/i386/ammintrin.h: Add support for SSE4A intrinsics. - * doc/invoke.texi: Add documentation on flags for sse4a, abm, popcnt - and amdfam10. - * doc/extend.texi: Add documentation for SSE4A builtins. - -2007-01-24 Jakub Jelinek - - * config/i386/i386.h (x86_cmpxchg16b): Remove const. - (TARGET_CMPXCHG16B): Define to x86_cmpxchg16b. - * config/i386/i386.c (x86_cmpxchg16b): Remove const. - (override_options): Add PTA_CX16 flag. Set x86_cmpxchg16b - for CPUs that have PTA_CX16 set. - -2007-01-18 Michael Meissner - - * config/i386/i386.c (ix86_compute_frame_layout): Make fprintf's - in #if 0 code type correct. - 2007-01-17 Eric Christopher (r120846) * config.gcc: Support core2 processor. @@ -263,30 +62,7 @@ x86_pad_returns): Add m_CORE2. (override_options): Add entries for Core2. (ix86_issue_rate): Add case for Core2. - -2006-10-28 Uros Bizjak - - * config/i386/i386.h (GENERAL_REGNO_P): Use STACK_POINTER_REGNUM. - (NON_QI_REG_P): Use IN_RANGE. - (REX_INT_REGNO_P): Use IN_RANGE. - (FP_REGNO_P): Use IN_RANGE. - (SSE_REGNO_P): Use IN_RANGE. - (REX_SSE_REGNO_P): Use IN_RANGE. - (MMX_REGNO_P): Use IN_RANGE. - (STACK_REGNO_P): New macro. - (STACK_REG_P): Use STACK_REGNO_P. - (NON_STACK_REG_P): Use STACK_REGNO_P. - (REGNO_OK_FOR_INDEX_P): Use REX_INT_REGNO_P. - (REGNO_OK_FOR_BASE_P): Use GENERAL_REGNO_P. - (REG_OK_FOR_INDEX_NONSTRICT_P): Use REX_INT_REGNO_P. - (REG_OK_FOR_BASE_NONSTRICT_P): Use GENERAL_REGNO_P. - (HARD_REGNO_RENAME_OK): Use !IN_RANGE. -2006-10-28 Uros Bizjak - - * config/i386/i386.c (output_387_ffreep): Create output from a - template string for !HAVE_AS_IX86_FFREEP. - 2006-10-27 Vladimir Makarov (r118090) * config/i386/i386.h (TARGET_GEODE): @@ -319,31 +95,7 @@ * config/i386/geode.md: New file. * doc/invoke.texi: Add entry about geode processor. - -2006-10-24 Uros Bizjak - - * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Define to 54. - (FIXED_REGISTERS, CALL_USED_REGISTERS): Add fpcr register. - (REG_ALLOC_ORDER): Add one element to allocate fpcr register. - (FRAME_POINTER_REGNUM): Update register number to 21. - (REG_CLASS_CONTENTS): Update contents for added fpcr register. - (HI_REGISTER_NAMES): Add "fpcr" for fpcr register. - - * config/i386/i386.c (regclass_map): Add fpcr entry. - (dbx_register_map, dbx64_register_map, svr4_dbx_register_map): - Add fpcr entry. - (print_reg): Assert REGNO (x) != FPCR_REG. - - * config/i386/i386.md (FPCR_REG, R11_REG): New constants. - (DIRFLAG_REG): Renumber. - (x86_fnstcw_1, x86_fldcw_1): Use FPCR_REG instead of FPSR_REG. - (*sibcall_1_rex64_v, *sibcall_value_1_rex64_v): Use R11_REG. - (sse_prologue_save, *sse_prologue_save_insn): Renumber - hardcoded SSE register numbers. - - * config/i386/mmx.md (mmx_emms, mmx_femms): Renumber - hardcoded MMX register numbers. - + 2006-10-24 Richard Guenther PR middle-end/28796 @@ -352,17 +104,6 @@ for deciding optimizations in consistency with fold-const.c (fold_builtin_unordered_cmp): Likewise. -2006-10-24 Richard Guenther - - * builtins.c (fold_builtin_floor): Fold floor (x) where - x is nonnegative to trunc (x). - (fold_builtin_int_roundingfn): Fold lfloor (x) where x is - nonnegative to FIX_TRUNC_EXPR. - -2006-10-22 H.J. Lu - - * config/i386/tmmintrin.h: Remove the duplicated content. - 2006-10-22 H.J. Lu (r117958) * config.gcc (i[34567]86-*-*): Add tmmintrin.h to extra_headers. @@ -429,18 +170,6 @@ * doc/invoke.texi: Document -mssse3/-mno-ssse3 switches. -2006-10-21 H.J. Lu - - * config/i386/i386.md (UNSPEC_LDQQU): Renamed to ... - (UNSPEC_LDDQU): This. - * config/i386/sse.md (sse3_lddqu): Updated. - -2006-10-21 Richard Guenther - - PR tree-optimization/3511 - * tree-ssa-pre.c (phi_translate): Fold CALL_EXPRs that - got new invariant arguments during PHI translation. - 2006-10-21 Richard Guenther * builtins.c (fold_builtin_classify): Fix typo. diff --git a/contrib/gcc/builtins.c b/contrib/gcc/builtins.c index 33218210f5a9..a65d725bd281 100644 --- a/contrib/gcc/builtins.c +++ b/contrib/gcc/builtins.c @@ -7355,12 +7355,6 @@ fold_builtin_ceil (tree fndecl, tree arglist) } } - /* Fold floor (x) where x is nonnegative to trunc (x). */ - if (tree_expr_nonnegative_p (arg)) - return build_function_call_expr (mathfn_built_in (TREE_TYPE (arg), - BUILT_IN_TRUNC), - arglist); - return fold_trunc_transparent_mathfn (fndecl, arglist); } @@ -7448,18 +7442,6 @@ fold_builtin_int_roundingfn (tree fndecl, tree arglist) } } - switch (DECL_FUNCTION_CODE (fndecl)) - { - CASE_FLT_FN (BUILT_IN_LFLOOR): - CASE_FLT_FN (BUILT_IN_LLFLOOR): - /* Fold lfloor (x) where x is nonnegative to FIX_TRUNC (x). */ - if (tree_expr_nonnegative_p (arg)) - return fold_build1 (FIX_TRUNC_EXPR, TREE_TYPE (TREE_TYPE (fndecl)), - arg); - break; - default:; - } - return fold_fixed_mathfn (fndecl, arglist); } diff --git a/contrib/gcc/config.gcc b/contrib/gcc/config.gcc index 5806ce7363d9..44065937aeb0 100644 --- a/contrib/gcc/config.gcc +++ b/contrib/gcc/config.gcc @@ -269,12 +269,12 @@ xscale-*-*) i[34567]86-*-*) cpu_type=i386 extra_headers="mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h - pmmintrin.h tmmintrin.h ammintrin.h" + pmmintrin.h tmmintrin.h" ;; x86_64-*-*) cpu_type=i386 extra_headers="mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h - pmmintrin.h tmmintrin.h ammintrin.h" + pmmintrin.h tmmintrin.h" need_64bit_hwint=yes ;; ia64-*-*) @@ -1209,14 +1209,14 @@ i[34567]86-*-solaris2*) # FIXME: -m64 for i[34567]86-*-* should be allowed just # like -m32 for x86_64-*-*. case X"${with_cpu}" in - Xgeneric|Xcore2|Xnocona|Xx86-64|Xamdfam10|Xbarcelona|Xk8|Xopteron|Xathlon64|Xathlon-fx) + Xgeneric|Xcore2|Xnocona|Xx86-64|Xk8|Xopteron|Xathlon64|Xathlon-fx) ;; X) with_cpu=generic ;; *) echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2 - echo "generic core2 nocona x86-64 amdfam10 barcelona k8 opteron athlon64 athlon-fx" 1>&2 + echo "generic core2 nocona x86-64 k8 opteron athlon64 athlon-fx" 1>&2 exit 1 ;; esac @@ -2515,9 +2515,6 @@ if test x$with_cpu = x ; then ;; i686-*-* | i786-*-*) case ${target_noncanonical} in - amdfam10-*|barcelona-*) - with_cpu=amdfam10 - ;; k8-*|opteron-*|athlon_64-*) with_cpu=k8 ;; @@ -2558,9 +2555,6 @@ if test x$with_cpu = x ; then ;; x86_64-*-*) case ${target_noncanonical} in - amdfam10-*|barcelona-*) - with_cpu=amdfam10 - ;; k8-*|opteron-*|athlon_64-*) with_cpu=k8 ;; @@ -2801,7 +2795,7 @@ case "${target}" in esac # OK ;; - "" | amdfam10 | barcelona | k8 | opteron | athlon64 | athlon-fx | nocona | core2 | generic) + "" | k8 | opteron | athlon64 | athlon-fx | nocona | core2 | generic) # OK ;; *) diff --git a/contrib/gcc/config/i386/ammintrin.h b/contrib/gcc/config/i386/ammintrin.h deleted file mode 100644 index 869c2880e25b..000000000000 --- a/contrib/gcc/config/i386/ammintrin.h +++ /dev/null @@ -1,73 +0,0 @@ -/* Copyright (C) 2007 Free Software Foundation, Inc. - - This file is part of GCC. - - GCC is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - GCC is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with GCC; see the file COPYING. If not, write to - the Free Software Foundation, 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. */ - -/* As a special exception, if you include this header file into source - files compiled by GCC, this header file does not by itself cause - the resulting executable to be covered by the GNU General Public - License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General - Public License. */ - -/* Implemented from the specification included in the AMD Programmers - Manual Update, version 2.x */ - -#ifndef _AMMINTRIN_H_INCLUDED -#define _AMMINTRIN_H_INCLUDED - -#ifndef __SSE4A__ -# error "SSE4A instruction set not enabled" -#else - -/* We need definitions from the SSE3, SSE2 and SSE header files*/ -#include - -static __inline void __attribute__((__always_inline__)) -_mm_stream_sd (double * __P, __m128d __Y) -{ - __builtin_ia32_movntsd (__P, (__v2df) __Y); -} - -static __inline void __attribute__((__always_inline__)) -_mm_stream_ss (float * __P, __m128 __Y) -{ - __builtin_ia32_movntss (__P, (__v4sf) __Y); -} - -static __inline __m128i __attribute__((__always_inline__)) -_mm_extract_si64 (__m128i __X, __m128i __Y) -{ - return (__m128i) __builtin_ia32_extrq ((__v2di) __X, (__v16qi) __Y); -} - -#define _mm_extracti_si64(X, I, L) \ -((__m128i) __builtin_ia32_extrqi ((__v2di)(X), I, L)) - -static __inline __m128i __attribute__((__always_inline__)) -_mm_insert_si64 (__m128i __X,__m128i __Y) -{ - return (__m128i) __builtin_ia32_insertq ((__v2di)__X, (__v2di)__Y); -} - -#define _mm_inserti_si64(X, Y, I, L) \ -((__m128i) __builtin_ia32_insertqi ((__v2di)(X), (__v2di)(Y), I, L)) - - -#endif /* __SSE4A__ */ - -#endif /* _AMMINTRIN_H_INCLUDED */ diff --git a/contrib/gcc/config/i386/athlon.md b/contrib/gcc/config/i386/athlon.md index a52f9bc28b4b..6d92b948b4db 100644 --- a/contrib/gcc/config/i386/athlon.md +++ b/contrib/gcc/config/i386/athlon.md @@ -29,8 +29,6 @@ (const_string "vector")] (const_string "direct"))) -(define_attr "amdfam10_decode" "direct,vector,double" - (const_string "direct")) ;; ;; decode0 decode1 decode2 ;; \ | / @@ -133,22 +131,18 @@ ;; Jump instructions are executed in the branch unit completely transparent to us (define_insn_reservation "athlon_branch" 0 - (and (eq_attr "cpu" "athlon,k8,generic64,amdfam10") + (and (eq_attr "cpu" "athlon,k8,generic64") (eq_attr "type" "ibr")) "athlon-direct,athlon-ieu") (define_insn_reservation "athlon_call" 0 (and (eq_attr "cpu" "athlon,k8,generic64") (eq_attr "type" "call,callv")) "athlon-vector,athlon-ieu") -(define_insn_reservation "athlon_call_amdfam10" 0 - (and (eq_attr "cpu" "amdfam10") - (eq_attr "type" "call,callv")) - "athlon-double,athlon-ieu") ;; Latency of push operation is 3 cycles, but ESP value is available ;; earlier (define_insn_reservation "athlon_push" 2 - (and (eq_attr "cpu" "athlon,k8,generic64,amdfam10") + (and (eq_attr "cpu" "athlon,k8,generic64") (eq_attr "type" "push")) "athlon-direct,athlon-agu,athlon-store") (define_insn_reservation "athlon_pop" 4 @@ -159,16 +153,12 @@ (and (eq_attr "cpu" "k8,generic64") (eq_attr "type" "pop")) "athlon-double,(athlon-ieu+athlon-load)") -(define_insn_reservation "athlon_pop_amdfam10" 3 - (and (eq_attr "cpu" "amdfam10") - (eq_attr "type" "pop")) - "athlon-direct,(athlon-ieu+athlon-load)") (define_insn_reservation "athlon_leave" 3 (and (eq_attr "cpu" "athlon") (eq_attr "type" "leave")) "athlon-vector,(athlon-ieu+athlon-load)") (define_insn_reservation "athlon_leave_k8" 3 - (and (eq_attr "cpu" "k8,generic64,amdfam10") + (and (eq_attr "cpu" "k8,generic64") (eq_attr "type" "leave")) "athlon-double,(athlon-ieu+athlon-load)") @@ -177,11 +167,6 @@ (and (eq_attr "cpu" "athlon,k8,generic64") (eq_attr "type" "lea")) "athlon-direct,athlon-agu,nothing") -;; Lea executes in AGU unit with 1 cycle latency on AMDFAM10 -(define_insn_reservation "athlon_lea_amdfam10" 1 - (and (eq_attr "cpu" "amdfam10") - (eq_attr "type" "lea")) - "athlon-direct,athlon-agu,nothing") ;; Mul executes in special multiplier unit attached to IEU0 (define_insn_reservation "athlon_imul" 5 @@ -191,35 +176,29 @@ "athlon-vector,athlon-ieu0,athlon-mult,nothing,nothing,athlon-ieu0") ;; ??? Widening multiply is vector or double. (define_insn_reservation "athlon_imul_k8_DI" 4 - (and (eq_attr "cpu" "k8,generic64,amdfam10") + (and (eq_attr "cpu" "k8,generic64") (and (eq_attr "type" "imul") (and (eq_attr "mode" "DI") (eq_attr "memory" "none,unknown")))) "athlon-direct0,athlon-ieu0,athlon-mult,nothing,athlon-ieu0") (define_insn_reservation "athlon_imul_k8" 3 - (and (eq_attr "cpu" "k8,generic64,amdfam10") + (and (eq_attr "cpu" "k8,generic64") (and (eq_attr "type" "imul") (eq_attr "memory" "none,unknown"))) "athlon-direct0,athlon-ieu0,athlon-mult,athlon-ieu0") -(define_insn_reservation "athlon_imul_amdfam10_HI" 4 - (and (eq_attr "cpu" "amdfam10") - (and (eq_attr "type" "imul") - (and (eq_attr "mode" "HI") - (eq_attr "memory" "none,unknown")))) - "athlon-vector,athlon-ieu0,athlon-mult,nothing,athlon-ieu0") (define_insn_reservation "athlon_imul_mem" 8 (and (eq_attr "cpu" "athlon") (and (eq_attr "type" "imul") (eq_attr "memory" "load,both"))) "athlon-vector,athlon-load,athlon-ieu,athlon-mult,nothing,nothing,athlon-ieu") (define_insn_reservation "athlon_imul_mem_k8_DI" 7 - (and (eq_attr "cpu" "k8,generic64,amdfam10") + (and (eq_attr "cpu" "k8,generic64") (and (eq_attr "type" "imul") (and (eq_attr "mode" "DI") (eq_attr "memory" "load,both")))) "athlon-vector,athlon-load,athlon-ieu,athlon-mult,nothing,athlon-ieu") (define_insn_reservation "athlon_imul_mem_k8" 6 - (and (eq_attr "cpu" "k8,generic64,amdfam10") + (and (eq_attr "cpu" "k8,generic64") (and (eq_attr "type" "imul") (eq_attr "memory" "load,both"))) "athlon-vector,athlon-load,athlon-ieu,athlon-mult,athlon-ieu") @@ -230,23 +209,21 @@ ;; other instructions. ;; ??? Experiments show that the idiv can overlap with roughly 6 cycles ;; of the other code -;; Using the same heuristics for amdfam10 as K8 with idiv (define_insn_reservation "athlon_idiv" 6 - (and (eq_attr "cpu" "athlon,k8,generic64,amdfam10") + (and (eq_attr "cpu" "athlon,k8,generic64") (and (eq_attr "type" "idiv") (eq_attr "memory" "none,unknown"))) "athlon-vector,(athlon-ieu0*6+(athlon-fpsched,athlon-fvector))") (define_insn_reservation "athlon_idiv_mem" 9 - (and (eq_attr "cpu" "athlon,k8,generic64,amdfam10") + (and (eq_attr "cpu" "athlon,k8,generic64") (and (eq_attr "type" "idiv") (eq_attr "memory" "load,both"))) "athlon-vector,((athlon-load,athlon-ieu0*6)+(athlon-fpsched,athlon-fvector))") ;; The parallelism of string instructions is not documented. Model it same way ;; as idiv to create smaller automata. This probably does not matter much. -;; Using the same heuristics for amdfam10 as K8 with idiv (define_insn_reservation "athlon_str" 6 - (and (eq_attr "cpu" "athlon,k8,generic64,amdfam10") + (and (eq_attr "cpu" "athlon,k8,generic64") (and (eq_attr "type" "str") (eq_attr "memory" "load,both,store"))) "athlon-vector,athlon-load,athlon-ieu0*6") @@ -257,62 +234,34 @@ (and (eq_attr "unit" "integer,unknown") (eq_attr "memory" "none,unknown")))) "athlon-direct,athlon-ieu") -(define_insn_reservation "athlon_idirect_amdfam10" 1 - (and (eq_attr "cpu" "amdfam10") - (and (eq_attr "amdfam10_decode" "direct") - (and (eq_attr "unit" "integer,unknown") - (eq_attr "memory" "none,unknown")))) - "athlon-direct,athlon-ieu") (define_insn_reservation "athlon_ivector" 2 (and (eq_attr "cpu" "athlon,k8,generic64") (and (eq_attr "athlon_decode" "vector") (and (eq_attr "unit" "integer,unknown") (eq_attr "memory" "none,unknown")))) "athlon-vector,athlon-ieu,athlon-ieu") -(define_insn_reservation "athlon_ivector_amdfam10" 2 - (and (eq_attr "cpu" "amdfam10") - (and (eq_attr "amdfam10_decode" "vector") - (and (eq_attr "unit" "integer,unknown") - (eq_attr "memory" "none,unknown")))) - "athlon-vector,athlon-ieu,athlon-ieu") - (define_insn_reservation "athlon_idirect_loadmov" 3 - (and (eq_attr "cpu" "athlon,k8,generic64,amdfam10") + (and (eq_attr "cpu" "athlon,k8,generic64") (and (eq_attr "type" "imov") (eq_attr "memory" "load"))) "athlon-direct,athlon-load") - (define_insn_reservation "athlon_idirect_load" 4 (and (eq_attr "cpu" "athlon,k8,generic64") (and (eq_attr "athlon_decode" "direct") (and (eq_attr "unit" "integer,unknown") (eq_attr "memory" "load")))) "athlon-direct,athlon-load,athlon-ieu") -(define_insn_reservation "athlon_idirect_load_amdfam10" 4 - (and (eq_attr "cpu" "amdfam10") - (and (eq_attr "amdfam10_decode" "direct") - (and (eq_attr "unit" "integer,unknown") - (eq_attr "memory" "load")))) - "athlon-direct,athlon-load,athlon-ieu") (define_insn_reservation "athlon_ivector_load" 6 (and (eq_attr "cpu" "athlon,k8,generic64") (and (eq_attr "athlon_decode" "vector") (and (eq_attr "unit" "integer,unknown") (eq_attr "memory" "load")))) "athlon-vector,athlon-load,athlon-ieu,athlon-ieu") -(define_insn_reservation "athlon_ivector_load_amdfam10" 6 - (and (eq_attr "cpu" "amdfam10") - (and (eq_attr "amdfam10_decode" "vector") - (and (eq_attr "unit" "integer,unknown") - (eq_attr "memory" "load")))) - "athlon-vector,athlon-load,athlon-ieu,athlon-ieu") - (define_insn_reservation "athlon_idirect_movstore" 1 - (and (eq_attr "cpu" "athlon,k8,generic64,amdfam10") + (and (eq_attr "cpu" "athlon,k8,generic64") (and (eq_attr "type" "imov") (eq_attr "memory" "store"))) "athlon-direct,athlon-agu,athlon-store") - (define_insn_reservation "athlon_idirect_both" 4 (and (eq_attr "cpu" "athlon,k8,generic64") (and (eq_attr "athlon_decode" "direct") @@ -321,15 +270,6 @@ "athlon-direct,athlon-load, athlon-ieu,athlon-store, athlon-store") -(define_insn_reservation "athlon_idirect_both_amdfam10" 4 - (and (eq_attr "cpu" "amdfam10") - (and (eq_attr "amdfam10_decode" "direct") - (and (eq_attr "unit" "integer,unknown") - (eq_attr "memory" "both")))) - "athlon-direct,athlon-load, - athlon-ieu,athlon-store, - athlon-store") - (define_insn_reservation "athlon_ivector_both" 6 (and (eq_attr "cpu" "athlon,k8,generic64") (and (eq_attr "athlon_decode" "vector") @@ -339,16 +279,6 @@ athlon-ieu, athlon-ieu, athlon-store") -(define_insn_reservation "athlon_ivector_both_amdfam10" 6 - (and (eq_attr "cpu" "amdfam10") - (and (eq_attr "amdfam10_decode" "vector") - (and (eq_attr "unit" "integer,unknown") - (eq_attr "memory" "both")))) - "athlon-vector,athlon-load, - athlon-ieu, - athlon-ieu, - athlon-store") - (define_insn_reservation "athlon_idirect_store" 1 (and (eq_attr "cpu" "athlon,k8,generic64") (and (eq_attr "athlon_decode" "direct") @@ -356,14 +286,6 @@ (eq_attr "memory" "store")))) "athlon-direct,(athlon-ieu+athlon-agu), athlon-store") -(define_insn_reservation "athlon_idirect_store_amdfam10" 1 - (and (eq_attr "cpu" "amdfam10") - (and (eq_attr "amdfam10_decode" "direct") - (and (eq_attr "unit" "integer,unknown") - (eq_attr "memory" "store")))) - "athlon-direct,(athlon-ieu+athlon-agu), - athlon-store") - (define_insn_reservation "athlon_ivector_store" 2 (and (eq_attr "cpu" "athlon,k8,generic64") (and (eq_attr "athlon_decode" "vector") @@ -371,13 +293,6 @@ (eq_attr "memory" "store")))) "athlon-vector,(athlon-ieu+athlon-agu),athlon-ieu, athlon-store") -(define_insn_reservation "athlon_ivector_store_amdfam10" 2 - (and (eq_attr "cpu" "amdfam10") - (and (eq_attr "amdfam10_decode" "vector") - (and (eq_attr "unit" "integer,unknown") - (eq_attr "memory" "store")))) - "athlon-vector,(athlon-ieu+athlon-agu),athlon-ieu, - athlon-store") ;; Athlon floatin point unit (define_insn_reservation "athlon_fldxf" 12 @@ -387,7 +302,7 @@ (eq_attr "mode" "XF")))) "athlon-vector,athlon-fpload2,athlon-fvector*9") (define_insn_reservation "athlon_fldxf_k8" 13 - (and (eq_attr "cpu" "k8,generic64,amdfam10") + (and (eq_attr "cpu" "k8,generic64") (and (eq_attr "type" "fmov") (and (eq_attr "memory" "load") (eq_attr "mode" "XF")))) @@ -399,7 +314,7 @@ (eq_attr "memory" "load"))) "athlon-direct,athlon-fpload,athlon-fany") (define_insn_reservation "athlon_fld_k8" 2 - (and (eq_attr "cpu" "k8,generic64,amdfam10") + (and (eq_attr "cpu" "k8,generic64") (and (eq_attr "type" "fmov") (eq_attr "memory" "load"))) "athlon-direct,athlon-fploadk8,athlon-fstore") @@ -411,7 +326,7 @@ (eq_attr "mode" "XF")))) "athlon-vector,(athlon-fpsched+athlon-agu),(athlon-store2+(athlon-fvector*7))") (define_insn_reservation "athlon_fstxf_k8" 8 - (and (eq_attr "cpu" "k8,generic64,amdfam10") + (and (eq_attr "cpu" "k8,generic64") (and (eq_attr "type" "fmov") (and (eq_attr "memory" "store,both") (eq_attr "mode" "XF")))) @@ -422,16 +337,16 @@ (eq_attr "memory" "store,both"))) "athlon-direct,(athlon-fpsched+athlon-agu),(athlon-fstore+athlon-store)") (define_insn_reservation "athlon_fst_k8" 2 - (and (eq_attr "cpu" "k8,generic64,amdfam10") + (and (eq_attr "cpu" "k8,generic64") (and (eq_attr "type" "fmov") (eq_attr "memory" "store,both"))) "athlon-direct,(athlon-fpsched+athlon-agu),(athlon-fstore+athlon-store)") (define_insn_reservation "athlon_fist" 4 - (and (eq_attr "cpu" "athlon,k8,generic64,amdfam10") + (and (eq_attr "cpu" "athlon,k8,generic64") (eq_attr "type" "fistp,fisttp")) "athlon-direct,(athlon-fpsched+athlon-agu),(athlon-fstore+athlon-store)") (define_insn_reservation "athlon_fmov" 2 - (and (eq_attr "cpu" "athlon,k8,generic64,amdfam10") + (and (eq_attr "cpu" "athlon,k8,generic64") (eq_attr "type" "fmov")) "athlon-direct,athlon-fpsched,athlon-faddmul") (define_insn_reservation "athlon_fadd_load" 4 @@ -440,12 +355,12 @@ (eq_attr "memory" "load"))) "athlon-direct,athlon-fpload,athlon-fadd") (define_insn_reservation "athlon_fadd_load_k8" 6 - (and (eq_attr "cpu" "k8,generic64,amdfam10") + (and (eq_attr "cpu" "k8,generic64") (and (eq_attr "type" "fop") (eq_attr "memory" "load"))) "athlon-direct,athlon-fploadk8,athlon-fadd") (define_insn_reservation "athlon_fadd" 4 - (and (eq_attr "cpu" "athlon,k8,generic64,amdfam10") + (and (eq_attr "cpu" "athlon,k8,generic64") (eq_attr "type" "fop")) "athlon-direct,athlon-fpsched,athlon-fadd") (define_insn_reservation "athlon_fmul_load" 4 @@ -454,16 +369,16 @@ (eq_attr "memory" "load"))) "athlon-direct,athlon-fpload,athlon-fmul") (define_insn_reservation "athlon_fmul_load_k8" 6 - (and (eq_attr "cpu" "k8,generic64,amdfam10") + (and (eq_attr "cpu" "k8,generic64") (and (eq_attr "type" "fmul") (eq_attr "memory" "load"))) "athlon-direct,athlon-fploadk8,athlon-fmul") (define_insn_reservation "athlon_fmul" 4 - (and (eq_attr "cpu" "athlon,k8,generic64,amdfam10") + (and (eq_attr "cpu" "athlon,k8,generic64") (eq_attr "type" "fmul")) "athlon-direct,athlon-fpsched,athlon-fmul") (define_insn_reservation "athlon_fsgn" 2 - (and (eq_attr "cpu" "athlon,k8,generic64,amdfam10") + (and (eq_attr "cpu" "athlon,k8,generic64") (eq_attr "type" "fsgn")) "athlon-direct,athlon-fpsched,athlon-fmul") (define_insn_reservation "athlon_fdiv_load" 24 @@ -472,7 +387,7 @@ (eq_attr "memory" "load"))) "athlon-direct,athlon-fpload,athlon-fmul") (define_insn_reservation "athlon_fdiv_load_k8" 13 - (and (eq_attr "cpu" "k8,generic64,amdfam10") + (and (eq_attr "cpu" "k8,generic64") (and (eq_attr "type" "fdiv") (eq_attr "memory" "load"))) "athlon-direct,athlon-fploadk8,athlon-fmul") @@ -481,16 +396,16 @@ (eq_attr "type" "fdiv")) "athlon-direct,athlon-fpsched,athlon-fmul") (define_insn_reservation "athlon_fdiv_k8" 11 - (and (eq_attr "cpu" "k8,generic64,amdfam10") + (and (eq_attr "cpu" "k8,generic64") (eq_attr "type" "fdiv")) "athlon-direct,athlon-fpsched,athlon-fmul") (define_insn_reservation "athlon_fpspc_load" 103 - (and (eq_attr "cpu" "athlon,k8,generic64,amdfam10") + (and (eq_attr "cpu" "athlon,k8,generic64") (and (eq_attr "type" "fpspc") (eq_attr "memory" "load"))) "athlon-vector,athlon-fpload,athlon-fvector") (define_insn_reservation "athlon_fpspc" 100 - (and (eq_attr "cpu" "athlon,k8,generic64,amdfam10") + (and (eq_attr "cpu" "athlon,k8,generic64") (eq_attr "type" "fpspc")) "athlon-vector,athlon-fpsched,athlon-fvector") (define_insn_reservation "athlon_fcmov_load" 7 @@ -503,12 +418,12 @@ (eq_attr "type" "fcmov")) "athlon-vector,athlon-fpsched,athlon-fvector") (define_insn_reservation "athlon_fcmov_load_k8" 17 - (and (eq_attr "cpu" "k8,generic64,amdfam10") + (and (eq_attr "cpu" "k8,generic64") (and (eq_attr "type" "fcmov") (eq_attr "memory" "load"))) "athlon-vector,athlon-fploadk8,athlon-fvector") (define_insn_reservation "athlon_fcmov_k8" 15 - (and (eq_attr "cpu" "k8,generic64,amdfam10") + (and (eq_attr "cpu" "k8,generic64") (eq_attr "type" "fcmov")) "athlon-vector,athlon-fpsched,athlon-fvector") ;; fcomi is vector decoded by uses only one pipe. @@ -519,13 +434,13 @@ (eq_attr "memory" "load")))) "athlon-vector,athlon-fpload,athlon-fadd") (define_insn_reservation "athlon_fcomi_load_k8" 5 - (and (eq_attr "cpu" "k8,generic64,amdfam10") + (and (eq_attr "cpu" "k8,generic64") (and (eq_attr "type" "fcmp") (and (eq_attr "athlon_decode" "vector") (eq_attr "memory" "load")))) "athlon-vector,athlon-fploadk8,athlon-fadd") (define_insn_reservation "athlon_fcomi" 3 - (and (eq_attr "cpu" "athlon,k8,generic64,amdfam10") + (and (eq_attr "cpu" "athlon,k8,generic64") (and (eq_attr "athlon_decode" "vector") (eq_attr "type" "fcmp"))) "athlon-vector,athlon-fpsched,athlon-fadd") @@ -535,18 +450,18 @@ (eq_attr "memory" "load"))) "athlon-direct,athlon-fpload,athlon-fadd") (define_insn_reservation "athlon_fcom_load_k8" 4 - (and (eq_attr "cpu" "k8,generic64,amdfam10") + (and (eq_attr "cpu" "k8,generic64") (and (eq_attr "type" "fcmp") (eq_attr "memory" "load"))) "athlon-direct,athlon-fploadk8,athlon-fadd") (define_insn_reservation "athlon_fcom" 2 - (and (eq_attr "cpu" "athlon,k8,generic64,amdfam10") + (and (eq_attr "cpu" "athlon,k8,generic64") (eq_attr "type" "fcmp")) "athlon-direct,athlon-fpsched,athlon-fadd") ;; Never seen by the scheduler because we still don't do post reg-stack ;; scheduling. ;(define_insn_reservation "athlon_fxch" 2 -; (and (eq_attr "cpu" "athlon,k8,generic64,amdfam10") +; (and (eq_attr "cpu" "athlon,k8,generic64") ; (eq_attr "type" "fxch")) ; "athlon-direct,athlon-fpsched,athlon-fany") @@ -601,23 +516,6 @@ (and (eq_attr "type" "mmxmov,ssemov") (eq_attr "memory" "load"))) "athlon-direct,athlon-fploadk8,athlon-fstore") -;; On AMDFAM10 all double, single and integer packed and scalar SSEx data -;; loads generated are direct path, latency of 2 and do not use any FP -;; executions units. No seperate entries for movlpx/movhpx loads, which -;; are direct path, latency of 4 and use the FADD/FMUL FP execution units, -;; as they will not be generated. -(define_insn_reservation "athlon_sseld_amdfam10" 2 - (and (eq_attr "cpu" "amdfam10") - (and (eq_attr "type" "ssemov") - (eq_attr "memory" "load"))) - "athlon-direct,athlon-fploadk8") -;; On AMDFAM10 MMX data loads generated are direct path, latency of 4 -;; and can use any FP executions units -(define_insn_reservation "athlon_mmxld_amdfam10" 4 - (and (eq_attr "cpu" "amdfam10") - (and (eq_attr "type" "mmxmov") - (eq_attr "memory" "load"))) - "athlon-direct,athlon-fploadk8, athlon-fany") (define_insn_reservation "athlon_mmxssest" 3 (and (eq_attr "cpu" "k8,generic64") (and (eq_attr "type" "mmxmov,ssemov") @@ -635,25 +533,6 @@ (and (eq_attr "type" "mmxmov,ssemov") (eq_attr "memory" "store,both"))) "athlon-direct,(athlon-fpsched+athlon-agu),(athlon-fstore+athlon-store)") -;; On AMDFAM10 all double, single and integer packed SSEx data stores -;; generated are all double path, latency of 2 and use the FSTORE FP -;; execution unit. No entries seperate for movupx/movdqu, which are -;; vector path, latency of 3 and use the FSTORE*2 FP execution unit, -;; as they will not be generated. -(define_insn_reservation "athlon_ssest_amdfam10" 2 - (and (eq_attr "cpu" "amdfam10") - (and (eq_attr "type" "ssemov") - (and (eq_attr "mode" "V4SF,V2DF,TI") - (eq_attr "memory" "store,both")))) - "athlon-double,(athlon-fpsched+athlon-agu),((athlon-fstore+athlon-store)*2)") -;; On AMDFAM10 all double, single and integer scalar SSEx and MMX -;; data stores generated are all direct path, latency of 2 and use -;; the FSTORE FP execution unit -(define_insn_reservation "athlon_mmxssest_short_amdfam10" 2 - (and (eq_attr "cpu" "amdfam10") - (and (eq_attr "type" "mmxmov,ssemov") - (eq_attr "memory" "store,both"))) - "athlon-direct,(athlon-fpsched+athlon-agu),(athlon-fstore+athlon-store)") (define_insn_reservation "athlon_movaps_k8" 2 (and (eq_attr "cpu" "k8,generic64") (and (eq_attr "type" "ssemov") @@ -699,11 +578,6 @@ (and (eq_attr "type" "sselog,sselog1") (eq_attr "memory" "load"))) "athlon-double,athlon-fpload2k8,(athlon-fmul*2)") -(define_insn_reservation "athlon_sselog_load_amdfam10" 4 - (and (eq_attr "cpu" "amdfam10") - (and (eq_attr "type" "sselog,sselog1") - (eq_attr "memory" "load"))) - "athlon-direct,athlon-fploadk8,(athlon-fadd|athlon-fmul)") (define_insn_reservation "athlon_sselog" 3 (and (eq_attr "cpu" "athlon") (eq_attr "type" "sselog,sselog1")) @@ -712,11 +586,6 @@ (and (eq_attr "cpu" "k8,generic64") (eq_attr "type" "sselog,sselog1")) "athlon-double,athlon-fpsched,athlon-fmul") -(define_insn_reservation "athlon_sselog_amdfam10" 2 - (and (eq_attr "cpu" "amdfam10") - (eq_attr "type" "sselog,sselog1")) - "athlon-direct,athlon-fpsched,(athlon-fadd|athlon-fmul)") - ;; ??? pcmp executes in addmul, probably not worthwhile to bother about that. (define_insn_reservation "athlon_ssecmp_load" 2 (and (eq_attr "cpu" "athlon") @@ -725,13 +594,13 @@ (eq_attr "memory" "load")))) "athlon-direct,athlon-fpload,athlon-fadd") (define_insn_reservation "athlon_ssecmp_load_k8" 4 - (and (eq_attr "cpu" "k8,generic64,amdfam10") + (and (eq_attr "cpu" "k8,generic64") (and (eq_attr "type" "ssecmp") (and (eq_attr "mode" "SF,DF,DI,TI") (eq_attr "memory" "load")))) "athlon-direct,athlon-fploadk8,athlon-fadd") (define_insn_reservation "athlon_ssecmp" 2 - (and (eq_attr "cpu" "athlon,k8,generic64,amdfam10") + (and (eq_attr "cpu" "athlon,k8,generic64") (and (eq_attr "type" "ssecmp") (eq_attr "mode" "SF,DF,DI,TI"))) "athlon-direct,athlon-fpsched,athlon-fadd") @@ -745,11 +614,6 @@ (and (eq_attr "type" "ssecmp") (eq_attr "memory" "load"))) "athlon-double,athlon-fpload2k8,(athlon-fadd*2)") -(define_insn_reservation "athlon_ssecmpvector_load_amdfam10" 4 - (and (eq_attr "cpu" "amdfam10") - (and (eq_attr "type" "ssecmp") - (eq_attr "memory" "load"))) - "athlon-direct,athlon-fploadk8,athlon-fadd") (define_insn_reservation "athlon_ssecmpvector" 3 (and (eq_attr "cpu" "athlon") (eq_attr "type" "ssecmp")) @@ -758,10 +622,6 @@ (and (eq_attr "cpu" "k8,generic64") (eq_attr "type" "ssecmp")) "athlon-double,athlon-fpsched,(athlon-fadd*2)") -(define_insn_reservation "athlon_ssecmpvector_amdfam10" 2 - (and (eq_attr "cpu" "amdfam10") - (eq_attr "type" "ssecmp")) - "athlon-direct,athlon-fpsched,athlon-fadd") (define_insn_reservation "athlon_ssecomi_load" 4 (and (eq_attr "cpu" "athlon") (and (eq_attr "type" "ssecomi") @@ -772,20 +632,10 @@ (and (eq_attr "type" "ssecomi") (eq_attr "memory" "load"))) "athlon-vector,athlon-fploadk8,athlon-fadd") -(define_insn_reservation "athlon_ssecomi_load_amdfam10" 5 - (and (eq_attr "cpu" "amdfam10") - (and (eq_attr "type" "ssecomi") - (eq_attr "memory" "load"))) - "athlon-direct,athlon-fploadk8,athlon-fadd") (define_insn_reservation "athlon_ssecomi" 4 (and (eq_attr "cpu" "athlon,k8,generic64") (eq_attr "type" "ssecmp")) "athlon-vector,athlon-fpsched,athlon-fadd") -(define_insn_reservation "athlon_ssecomi_amdfam10" 3 - (and (eq_attr "cpu" "amdfam10") -;; It seems athlon_ssecomi has a bug in the attr_type, fixed for amdfam10 - (eq_attr "type" "ssecomi")) - "athlon-direct,athlon-fpsched,athlon-fadd") (define_insn_reservation "athlon_sseadd_load" 4 (and (eq_attr "cpu" "athlon") (and (eq_attr "type" "sseadd") @@ -793,13 +643,13 @@ (eq_attr "memory" "load")))) "athlon-direct,athlon-fpload,athlon-fadd") (define_insn_reservation "athlon_sseadd_load_k8" 6 - (and (eq_attr "cpu" "k8,generic64,amdfam10") + (and (eq_attr "cpu" "k8,generic64") (and (eq_attr "type" "sseadd") (and (eq_attr "mode" "SF,DF,DI") (eq_attr "memory" "load")))) "athlon-direct,athlon-fploadk8,athlon-fadd") (define_insn_reservation "athlon_sseadd" 4 - (and (eq_attr "cpu" "athlon,k8,generic64,amdfam10") + (and (eq_attr "cpu" "athlon,k8,generic64") (and (eq_attr "type" "sseadd") (eq_attr "mode" "SF,DF,DI"))) "athlon-direct,athlon-fpsched,athlon-fadd") @@ -813,11 +663,6 @@ (and (eq_attr "type" "sseadd") (eq_attr "memory" "load"))) "athlon-double,athlon-fpload2k8,(athlon-fadd*2)") -(define_insn_reservation "athlon_sseaddvector_load_amdfam10" 6 - (and (eq_attr "cpu" "amdfam10") - (and (eq_attr "type" "sseadd") - (eq_attr "memory" "load"))) - "athlon-direct,athlon-fploadk8,athlon-fadd") (define_insn_reservation "athlon_sseaddvector" 5 (and (eq_attr "cpu" "athlon") (eq_attr "type" "sseadd")) @@ -826,10 +671,6 @@ (and (eq_attr "cpu" "k8,generic64") (eq_attr "type" "sseadd")) "athlon-double,athlon-fpsched,(athlon-fadd*2)") -(define_insn_reservation "athlon_sseaddvector_amdfam10" 4 - (and (eq_attr "cpu" "amdfam10") - (eq_attr "type" "sseadd")) - "athlon-direct,athlon-fpsched,athlon-fadd") ;; Conversions behaves very irregularly and the scheduling is critical here. ;; Take each instruction separately. Assume that the mode is always set to the @@ -843,25 +684,12 @@ (and (eq_attr "mode" "DF") (eq_attr "memory" "load"))))) "athlon-direct,athlon-fploadk8,athlon-fstore") -(define_insn_reservation "athlon_ssecvt_cvtss2sd_load_amdfam10" 7 - (and (eq_attr "cpu" "amdfam10") - (and (eq_attr "type" "ssecvt") - (and (eq_attr "amdfam10_decode" "double") - (and (eq_attr "mode" "DF") - (eq_attr "memory" "load"))))) - "athlon-double,athlon-fploadk8,(athlon-faddmul+athlon-fstore)") (define_insn_reservation "athlon_ssecvt_cvtss2sd" 2 (and (eq_attr "cpu" "athlon,k8,generic64") (and (eq_attr "type" "ssecvt") (and (eq_attr "athlon_decode" "direct") (eq_attr "mode" "DF")))) "athlon-direct,athlon-fpsched,athlon-fstore") -(define_insn_reservation "athlon_ssecvt_cvtss2sd_amdfam10" 7 - (and (eq_attr "cpu" "amdfam10") - (and (eq_attr "type" "ssecvt") - (and (eq_attr "amdfam10_decode" "vector") - (eq_attr "mode" "DF")))) - "athlon-vector,athlon-fpsched,athlon-faddmul,(athlon-fstore*2)") ;; cvtps2pd. Model same way the other double decoded FP conversions. (define_insn_reservation "athlon_ssecvt_cvtps2pd_load_k8" 5 (and (eq_attr "cpu" "k8,athlon,generic64") @@ -870,25 +698,12 @@ (and (eq_attr "mode" "V2DF,V4SF,TI") (eq_attr "memory" "load"))))) "athlon-double,athlon-fpload2k8,(athlon-fstore*2)") -(define_insn_reservation "athlon_ssecvt_cvtps2pd_load_amdfam10" 4 - (and (eq_attr "cpu" "amdfam10") - (and (eq_attr "type" "ssecvt") - (and (eq_attr "amdfam10_decode" "direct") - (and (eq_attr "mode" "V2DF,V4SF,TI") - (eq_attr "memory" "load"))))) - "athlon-direct,athlon-fploadk8,athlon-fstore") (define_insn_reservation "athlon_ssecvt_cvtps2pd_k8" 3 (and (eq_attr "cpu" "k8,athlon,generic64") (and (eq_attr "type" "ssecvt") (and (eq_attr "athlon_decode" "double") (eq_attr "mode" "V2DF,V4SF,TI")))) "athlon-double,athlon-fpsched,athlon-fstore,athlon-fstore") -(define_insn_reservation "athlon_ssecvt_cvtps2pd_amdfam10" 2 - (and (eq_attr "cpu" "amdfam10") - (and (eq_attr "type" "ssecvt") - (and (eq_attr "amdfam10_decode" "direct") - (eq_attr "mode" "V2DF,V4SF,TI")))) - "athlon-direct,athlon-fpsched,athlon-fstore") ;; cvtsi2sd mem,reg is directpath path (cvtsi2sd reg,reg is doublepath) ;; cvtsi2sd has troughput 1 and is executed in store unit with latency of 6 (define_insn_reservation "athlon_sseicvt_cvtsi2sd_load" 6 @@ -898,13 +713,6 @@ (and (eq_attr "mode" "SF,DF") (eq_attr "memory" "load"))))) "athlon-direct,athlon-fploadk8,athlon-fstore") -(define_insn_reservation "athlon_sseicvt_cvtsi2sd_load_amdfam10" 9 - (and (eq_attr "cpu" "amdfam10") - (and (eq_attr "type" "sseicvt") - (and (eq_attr "amdfam10_decode" "double") - (and (eq_attr "mode" "SF,DF") - (eq_attr "memory" "load"))))) - "athlon-double,athlon-fploadk8,(athlon-faddmul+athlon-fstore)") ;; cvtsi2ss mem, reg is doublepath (define_insn_reservation "athlon_sseicvt_cvtsi2ss_load" 9 (and (eq_attr "cpu" "athlon") @@ -920,13 +728,6 @@ (and (eq_attr "mode" "SF,DF") (eq_attr "memory" "load"))))) "athlon-double,athlon-fploadk8,(athlon-fstore*2)") -(define_insn_reservation "athlon_sseicvt_cvtsi2ss_load_amdfam10" 9 - (and (eq_attr "cpu" "amdfam10") - (and (eq_attr "type" "sseicvt") - (and (eq_attr "amdfam10_decode" "double") - (and (eq_attr "mode" "SF,DF") - (eq_attr "memory" "load"))))) - "athlon-double,athlon-fploadk8,(athlon-faddmul+athlon-fstore)") ;; cvtsi2sd reg,reg is double decoded (vector on Athlon) (define_insn_reservation "athlon_sseicvt_cvtsi2sd_k8" 11 (and (eq_attr "cpu" "k8,athlon,generic64") @@ -935,13 +736,6 @@ (and (eq_attr "mode" "SF,DF") (eq_attr "memory" "none"))))) "athlon-double,athlon-fploadk8,athlon-fstore") -(define_insn_reservation "athlon_sseicvt_cvtsi2sd_amdfam10" 14 - (and (eq_attr "cpu" "amdfam10") - (and (eq_attr "type" "sseicvt") - (and (eq_attr "amdfam10_decode" "vector") - (and (eq_attr "mode" "SF,DF") - (eq_attr "memory" "none"))))) - "athlon-vector,athlon-fploadk8,(athlon-faddmul+athlon-fstore)") ;; cvtsi2ss reg, reg is doublepath (define_insn_reservation "athlon_sseicvt_cvtsi2ss" 14 (and (eq_attr "cpu" "athlon,k8,generic64") @@ -950,13 +744,6 @@ (and (eq_attr "mode" "SF,DF") (eq_attr "memory" "none"))))) "athlon-vector,athlon-fploadk8,(athlon-fvector*2)") -(define_insn_reservation "athlon_sseicvt_cvtsi2ss_amdfam10" 14 - (and (eq_attr "cpu" "amdfam10") - (and (eq_attr "type" "sseicvt") - (and (eq_attr "amdfam10_decode" "vector") - (and (eq_attr "mode" "SF,DF") - (eq_attr "memory" "none"))))) - "athlon-vector,athlon-fploadk8,(athlon-faddmul+athlon-fstore)") ;; cvtsd2ss mem,reg is doublepath, troughput unknown, latency 9 (define_insn_reservation "athlon_ssecvt_cvtsd2ss_load_k8" 9 (and (eq_attr "cpu" "k8,athlon,generic64") @@ -965,13 +752,6 @@ (and (eq_attr "mode" "SF") (eq_attr "memory" "load"))))) "athlon-double,athlon-fploadk8,(athlon-fstore*3)") -(define_insn_reservation "athlon_ssecvt_cvtsd2ss_load_amdfam10" 9 - (and (eq_attr "cpu" "amdfam10") - (and (eq_attr "type" "ssecvt") - (and (eq_attr "amdfam10_decode" "double") - (and (eq_attr "mode" "SF") - (eq_attr "memory" "load"))))) - "athlon-double,athlon-fploadk8,(athlon-faddmul+athlon-fstore)") ;; cvtsd2ss reg,reg is vectorpath, troughput unknown, latency 12 (define_insn_reservation "athlon_ssecvt_cvtsd2ss" 12 (and (eq_attr "cpu" "athlon,k8,generic64") @@ -980,13 +760,6 @@ (and (eq_attr "mode" "SF") (eq_attr "memory" "none"))))) "athlon-vector,athlon-fpsched,(athlon-fvector*3)") -(define_insn_reservation "athlon_ssecvt_cvtsd2ss_amdfam10" 8 - (and (eq_attr "cpu" "amdfam10") - (and (eq_attr "type" "ssecvt") - (and (eq_attr "amdfam10_decode" "vector") - (and (eq_attr "mode" "SF") - (eq_attr "memory" "none"))))) - "athlon-vector,athlon-fpsched,athlon-faddmul,(athlon-fstore*2)") (define_insn_reservation "athlon_ssecvt_cvtpd2ps_load_k8" 8 (and (eq_attr "cpu" "athlon,k8,generic64") (and (eq_attr "type" "ssecvt") @@ -994,13 +767,6 @@ (and (eq_attr "mode" "V4SF,V2DF,TI") (eq_attr "memory" "load"))))) "athlon-double,athlon-fpload2k8,(athlon-fstore*3)") -(define_insn_reservation "athlon_ssecvt_cvtpd2ps_load_amdfam10" 9 - (and (eq_attr "cpu" "amdfam10") - (and (eq_attr "type" "ssecvt") - (and (eq_attr "amdfam10_decode" "double") - (and (eq_attr "mode" "V4SF,V2DF,TI") - (eq_attr "memory" "load"))))) - "athlon-double,athlon-fploadk8,(athlon-faddmul+athlon-fstore)") ;; cvtpd2ps mem,reg is vectorpath, troughput unknown, latency 10 ;; ??? Why it is fater than cvtsd2ss? (define_insn_reservation "athlon_ssecvt_cvtpd2ps" 8 @@ -1010,13 +776,6 @@ (and (eq_attr "mode" "V4SF,V2DF,TI") (eq_attr "memory" "none"))))) "athlon-vector,athlon-fpsched,athlon-fvector*2") -(define_insn_reservation "athlon_ssecvt_cvtpd2ps_amdfam10" 7 - (and (eq_attr "cpu" "amdfam10") - (and (eq_attr "type" "ssecvt") - (and (eq_attr "amdfam10_decode" "double") - (and (eq_attr "mode" "V4SF,V2DF,TI") - (eq_attr "memory" "none"))))) - "athlon-double,athlon-fpsched,(athlon-faddmul+athlon-fstore)") ;; cvtsd2si mem,reg is doublepath, troughput 1, latency 9 (define_insn_reservation "athlon_secvt_cvtsX2si_load" 9 (and (eq_attr "cpu" "athlon,k8,generic64") @@ -1025,13 +784,6 @@ (and (eq_attr "mode" "SI,DI") (eq_attr "memory" "load"))))) "athlon-vector,athlon-fploadk8,athlon-fvector") -(define_insn_reservation "athlon_secvt_cvtsX2si_load_amdfam10" 10 - (and (eq_attr "cpu" "amdfam10") - (and (eq_attr "type" "sseicvt") - (and (eq_attr "amdfam10_decode" "double") - (and (eq_attr "mode" "SI,DI") - (eq_attr "memory" "load"))))) - "athlon-double,athlon-fploadk8,(athlon-fadd+athlon-fstore)") ;; cvtsd2si reg,reg is doublepath, troughput 1, latency 9 (define_insn_reservation "athlon_ssecvt_cvtsX2si" 9 (and (eq_attr "cpu" "athlon") @@ -1047,29 +799,6 @@ (and (eq_attr "mode" "SI,DI") (eq_attr "memory" "none"))))) "athlon-double,athlon-fpsched,athlon-fstore") -(define_insn_reservation "athlon_ssecvt_cvtsX2si_amdfam10" 8 - (and (eq_attr "cpu" "amdfam10") - (and (eq_attr "type" "sseicvt") - (and (eq_attr "amdfam10_decode" "double") - (and (eq_attr "mode" "SI,DI") - (eq_attr "memory" "none"))))) - "athlon-double,athlon-fpsched,(athlon-fadd+athlon-fstore)") -;; cvtpd2dq reg,mem is doublepath, troughput 1, latency 9 on amdfam10 -(define_insn_reservation "athlon_sseicvt_cvtpd2dq_load_amdfam10" 9 - (and (eq_attr "cpu" "amdfam10") - (and (eq_attr "type" "sseicvt") - (and (eq_attr "amdfam10_decode" "double") - (and (eq_attr "mode" "TI") - (eq_attr "memory" "load"))))) - "athlon-double,athlon-fploadk8,(athlon-faddmul+athlon-fstore)") -;; cvtpd2dq reg,mem is doublepath, troughput 1, latency 7 on amdfam10 -(define_insn_reservation "athlon_sseicvt_cvtpd2dq_amdfam10" 7 - (and (eq_attr "cpu" "amdfam10") - (and (eq_attr "type" "sseicvt") - (and (eq_attr "amdfam10_decode" "double") - (and (eq_attr "mode" "TI") - (eq_attr "memory" "none"))))) - "athlon-double,athlon-fpsched,(athlon-faddmul+athlon-fstore)") (define_insn_reservation "athlon_ssemul_load" 4 @@ -1079,13 +808,13 @@ (eq_attr "memory" "load")))) "athlon-direct,athlon-fpload,athlon-fmul") (define_insn_reservation "athlon_ssemul_load_k8" 6 - (and (eq_attr "cpu" "k8,generic64,amdfam10") + (and (eq_attr "cpu" "k8,generic64") (and (eq_attr "type" "ssemul") (and (eq_attr "mode" "SF,DF") (eq_attr "memory" "load")))) "athlon-direct,athlon-fploadk8,athlon-fmul") (define_insn_reservation "athlon_ssemul" 4 - (and (eq_attr "cpu" "athlon,k8,generic64,amdfam10") + (and (eq_attr "cpu" "athlon,k8,generic64") (and (eq_attr "type" "ssemul") (eq_attr "mode" "SF,DF"))) "athlon-direct,athlon-fpsched,athlon-fmul") @@ -1099,11 +828,6 @@ (and (eq_attr "type" "ssemul") (eq_attr "memory" "load"))) "athlon-double,athlon-fpload2k8,(athlon-fmul*2)") -(define_insn_reservation "athlon_ssemulvector_load_amdfam10" 6 - (and (eq_attr "cpu" "amdfam10") - (and (eq_attr "type" "ssemul") - (eq_attr "memory" "load"))) - "athlon-direct,athlon-fploadk8,athlon-fmul") (define_insn_reservation "athlon_ssemulvector" 5 (and (eq_attr "cpu" "athlon") (eq_attr "type" "ssemul")) @@ -1112,10 +836,6 @@ (and (eq_attr "cpu" "k8,generic64") (eq_attr "type" "ssemul")) "athlon-double,athlon-fpsched,(athlon-fmul*2)") -(define_insn_reservation "athlon_ssemulvector_amdfam10" 4 - (and (eq_attr "cpu" "amdfam10") - (eq_attr "type" "ssemul")) - "athlon-direct,athlon-fpsched,athlon-fmul") ;; divsd timings. divss is faster (define_insn_reservation "athlon_ssediv_load" 20 (and (eq_attr "cpu" "athlon") @@ -1124,13 +844,13 @@ (eq_attr "memory" "load")))) "athlon-direct,athlon-fpload,athlon-fmul*17") (define_insn_reservation "athlon_ssediv_load_k8" 22 - (and (eq_attr "cpu" "k8,generic64,amdfam10") + (and (eq_attr "cpu" "k8,generic64") (and (eq_attr "type" "ssediv") (and (eq_attr "mode" "SF,DF") (eq_attr "memory" "load")))) "athlon-direct,athlon-fploadk8,athlon-fmul*17") (define_insn_reservation "athlon_ssediv" 20 - (and (eq_attr "cpu" "athlon,k8,generic64,amdfam10") + (and (eq_attr "cpu" "athlon,k8,generic64") (and (eq_attr "type" "ssediv") (eq_attr "mode" "SF,DF"))) "athlon-direct,athlon-fpsched,athlon-fmul*17") @@ -1144,11 +864,6 @@ (and (eq_attr "type" "ssediv") (eq_attr "memory" "load"))) "athlon-double,athlon-fpload2k8,athlon-fmul*34") -(define_insn_reservation "athlon_ssedivvector_load_amdfam10" 22 - (and (eq_attr "cpu" "amdfam10") - (and (eq_attr "type" "ssediv") - (eq_attr "memory" "load"))) - "athlon-direct,athlon-fploadk8,athlon-fmul*17") (define_insn_reservation "athlon_ssedivvector" 39 (and (eq_attr "cpu" "athlon") (eq_attr "type" "ssediv")) @@ -1157,12 +872,3 @@ (and (eq_attr "cpu" "k8,generic64") (eq_attr "type" "ssediv")) "athlon-double,athlon-fmul*34") -(define_insn_reservation "athlon_ssedivvector_amdfam10" 20 - (and (eq_attr "cpu" "amdfam10") - (eq_attr "type" "ssediv")) - "athlon-direct,athlon-fmul*17") -(define_insn_reservation "athlon_sseins_amdfam10" 5 - (and (eq_attr "cpu" "amdfam10") - (and (eq_attr "type" "sseins") - (eq_attr "mode" "TI"))) - "athlon-vector,athlon-fpsched,athlon-faddmul") diff --git a/contrib/gcc/config/i386/driver-i386.c b/contrib/gcc/config/i386/driver-i386.c index 665826318eec..cb9c6c3f392b 100644 --- a/contrib/gcc/config/i386/driver-i386.c +++ b/contrib/gcc/config/i386/driver-i386.c @@ -1,5 +1,5 @@ /* Subroutines for the gcc driver. - Copyright (C) 2006, 2007 Free Software Foundation, Inc. + Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GCC. @@ -40,7 +40,6 @@ const char *host_detect_local_cpu (int argc, const char **argv); #define bit_SSE3 (1 << 0) #define bit_SSSE3 (1 << 9) -#define bit_SSE4a (1 << 6) #define bit_CMPXCHG16B (1 << 13) #define bit_3DNOW (1 << 31) @@ -69,7 +68,7 @@ const char *host_detect_local_cpu (int argc, const char **argv) unsigned int ext_level; unsigned char has_mmx = 0, has_3dnow = 0, has_3dnowp = 0, has_sse = 0; unsigned char has_sse2 = 0, has_sse3 = 0, has_ssse3 = 0, has_cmov = 0; - unsigned char has_longmode = 0, has_cmpxchg8b = 0, has_sse4a = 0; + unsigned char has_longmode = 0, has_cmpxchg8b = 0; unsigned char is_amd = 0; unsigned int family = 0; bool arch; @@ -121,7 +120,6 @@ const char *host_detect_local_cpu (int argc, const char **argv) has_3dnow = !!(edx & bit_3DNOW); has_3dnowp = !!(edx & bit_3DNOWP); has_longmode = !!(edx & bit_LM); - has_sse4a = !!(ecx & bit_SSE4a); } is_amd = vendor == *(unsigned int*)"Auth"; @@ -134,8 +132,6 @@ const char *host_detect_local_cpu (int argc, const char **argv) processor = PROCESSOR_ATHLON; if (has_sse2 || has_longmode) processor = PROCESSOR_K8; - if (has_sse4a) - processor = PROCESSOR_AMDFAM10; } else { @@ -270,9 +266,6 @@ const char *host_detect_local_cpu (int argc, const char **argv) case PROCESSOR_NOCONA: cpu = "nocona"; break; - case PROCESSOR_AMDFAM10: - cpu = "amdfam10"; - break; case PROCESSOR_GENERIC32: case PROCESSOR_GENERIC64: cpu = "generic"; diff --git a/contrib/gcc/config/i386/i386.c b/contrib/gcc/config/i386/i386.c index c07b7214203d..2567fca20a95 100644 --- a/contrib/gcc/config/i386/i386.c +++ b/contrib/gcc/config/i386/i386.c @@ -548,71 +548,6 @@ struct processor_costs k8_cost = { COSTS_N_INSNS (35), /* cost of FSQRT instruction. */ }; -struct processor_costs amdfam10_cost = { - COSTS_N_INSNS (1), /* cost of an add instruction */ - COSTS_N_INSNS (2), /* cost of a lea instruction */ - COSTS_N_INSNS (1), /* variable shift costs */ - COSTS_N_INSNS (1), /* constant shift costs */ - {COSTS_N_INSNS (3), /* cost of starting multiply for QI */ - COSTS_N_INSNS (4), /* HI */ - COSTS_N_INSNS (3), /* SI */ - COSTS_N_INSNS (4), /* DI */ - COSTS_N_INSNS (5)}, /* other */ - 0, /* cost of multiply per each bit set */ - {COSTS_N_INSNS (19), /* cost of a divide/mod for QI */ - COSTS_N_INSNS (35), /* HI */ - COSTS_N_INSNS (51), /* SI */ - COSTS_N_INSNS (83), /* DI */ - COSTS_N_INSNS (83)}, /* other */ - COSTS_N_INSNS (1), /* cost of movsx */ - COSTS_N_INSNS (1), /* cost of movzx */ - 8, /* "large" insn */ - 9, /* MOVE_RATIO */ - 4, /* cost for loading QImode using movzbl */ - {3, 4, 3}, /* cost of loading integer registers - in QImode, HImode and SImode. - Relative to reg-reg move (2). */ - {3, 4, 3}, /* cost of storing integer registers */ - 4, /* cost of reg,reg fld/fst */ - {4, 4, 12}, /* cost of loading fp registers - in SFmode, DFmode and XFmode */ - {6, 6, 8}, /* cost of storing fp registers - in SFmode, DFmode and XFmode */ - 2, /* cost of moving MMX register */ - {3, 3}, /* cost of loading MMX registers - in SImode and DImode */ - {4, 4}, /* cost of storing MMX registers - in SImode and DImode */ - 2, /* cost of moving SSE register */ - {4, 4, 3}, /* cost of loading SSE registers - in SImode, DImode and TImode */ - {4, 4, 5}, /* cost of storing SSE registers - in SImode, DImode and TImode */ - 3, /* MMX or SSE register to integer */ - /* On K8: - MOVD reg64, xmmreg Double FSTORE 4 - MOVD reg32, xmmreg Double FSTORE 4 - On AMDFAM10: - MOVD reg64, xmmreg Double FADD 3 - 1/1 1/1 - MOVD reg32, xmmreg Double FADD 3 - 1/1 1/1 */ - 64, /* size of prefetch block */ - /* New AMD processors never drop prefetches; if they cannot be performed - immediately, they are queued. We set number of simultaneous prefetches - to a large constant to reflect this (it probably is not a good idea not - to limit number of prefetches at all, as their execution also takes some - time). */ - 100, /* number of parallel prefetches */ - 2, /* Branch cost */ - COSTS_N_INSNS (4), /* cost of FADD and FSUB insns. */ - COSTS_N_INSNS (4), /* cost of FMUL instruction. */ - COSTS_N_INSNS (19), /* cost of FDIV instruction. */ - COSTS_N_INSNS (2), /* cost of FABS instruction. */ - COSTS_N_INSNS (2), /* cost of FCHS instruction. */ - COSTS_N_INSNS (35), /* cost of FSQRT instruction. */ -}; - static const struct processor_costs pentium4_cost = { COSTS_N_INSNS (1), /* cost of an add instruction */ @@ -899,13 +834,11 @@ const struct processor_costs *ix86_cost = &pentium_cost; #define m_PENT4 (1<to_allocate -= frame->red_zone_size; frame->stack_pointer_offset -= frame->red_zone_size; #if 0 - fprintf (stderr, "\n"); - fprintf (stderr, "nregs: %ld\n", (long)frame->nregs); - fprintf (stderr, "size: %ld\n", (long)size); - fprintf (stderr, "alignment1: %ld\n", (long)stack_alignment_needed); - fprintf (stderr, "padding1: %ld\n", (long)frame->padding1); - fprintf (stderr, "va_arg: %ld\n", (long)frame->va_arg_size); - fprintf (stderr, "padding2: %ld\n", (long)frame->padding2); - fprintf (stderr, "to_allocate: %ld\n", (long)frame->to_allocate); - fprintf (stderr, "red_zone_size: %ld\n", (long)frame->red_zone_size); - fprintf (stderr, "frame_pointer_offset: %ld\n", (long)frame->frame_pointer_offset); - fprintf (stderr, "hard_frame_pointer_offset: %ld\n", - (long)frame->hard_frame_pointer_offset); - fprintf (stderr, "stack_pointer_offset: %ld\n", (long)frame->stack_pointer_offset); - fprintf (stderr, "current_function_is_leaf: %ld\n", (long)current_function_is_leaf); - fprintf (stderr, "current_function_calls_alloca: %ld\n", (long)current_function_calls_alloca); - fprintf (stderr, "x86_current_function_calls_tls_descriptor: %ld\n", (long)ix86_current_function_calls_tls_descriptor); + fprintf (stderr, "nregs: %i\n", frame->nregs); + fprintf (stderr, "size: %i\n", size); + fprintf (stderr, "alignment1: %i\n", stack_alignment_needed); + fprintf (stderr, "padding1: %i\n", frame->padding1); + fprintf (stderr, "va_arg: %i\n", frame->va_arg_size); + fprintf (stderr, "padding2: %i\n", frame->padding2); + fprintf (stderr, "to_allocate: %i\n", frame->to_allocate); + fprintf (stderr, "red_zone_size: %i\n", frame->red_zone_size); + fprintf (stderr, "frame_pointer_offset: %i\n", frame->frame_pointer_offset); + fprintf (stderr, "hard_frame_pointer_offset: %i\n", + frame->hard_frame_pointer_offset); + fprintf (stderr, "stack_pointer_offset: %i\n", frame->stack_pointer_offset); #endif } @@ -7856,8 +7664,7 @@ print_reg (rtx x, int code, FILE *file) gcc_assert (REGNO (x) != ARG_POINTER_REGNUM && REGNO (x) != FRAME_POINTER_REGNUM && REGNO (x) != FLAGS_REG - && REGNO (x) != FPSR_REG - && REGNO (x) != FPCR_REG); + && REGNO (x) != FPSR_REG); if (ASSEMBLER_DIALECT == ASM_ATT || USER_LABEL_PREFIX[0] == 0) putc ('%', file); @@ -9052,15 +8859,17 @@ output_387_ffreep (rtx *operands ATTRIBUTE_UNUSED, int opno) #if HAVE_AS_IX86_FFREEP return opno ? "ffreep\t%y1" : "ffreep\t%y0"; #else - { - static char retval[] = ".word\t0xc_df"; - int regno = REGNO (operands[opno]); - - gcc_assert (FP_REGNO_P (regno)); - - retval[9] = '0' + (regno - FIRST_STACK_REG); - return retval; - } + switch (REGNO (operands[opno])) + { + case FIRST_STACK_REG + 0: return ".word\t0xc0df"; + case FIRST_STACK_REG + 1: return ".word\t0xc1df"; + case FIRST_STACK_REG + 2: return ".word\t0xc2df"; + case FIRST_STACK_REG + 3: return ".word\t0xc3df"; + case FIRST_STACK_REG + 4: return ".word\t0xc4df"; + case FIRST_STACK_REG + 5: return ".word\t0xc5df"; + case FIRST_STACK_REG + 6: return ".word\t0xc6df"; + case FIRST_STACK_REG + 7: return ".word\t0xc7df"; + } #endif return opno ? "fstp\t%y1" : "fstp\t%y0"; @@ -9438,16 +9247,8 @@ ix86_expand_vector_move_misalign (enum machine_mode mode, rtx operands[]) } if (TARGET_SSE2 && mode == V2DFmode) - { - rtx zero; - - if (TARGET_SSE_UNALIGNED_MOVE_OPTIMAL) - { - op0 = gen_lowpart (V2DFmode, op0); - op1 = gen_lowpart (V2DFmode, op1); - emit_insn (gen_sse2_movupd (op0, op1)); - return; - } + { + rtx zero; /* When SSE registers are split into halves, we can avoid writing to the top half twice. */ @@ -9475,15 +9276,7 @@ ix86_expand_vector_move_misalign (enum machine_mode mode, rtx operands[]) emit_insn (gen_sse2_loadhpd (op0, op0, m)); } else - { - if (TARGET_SSE_UNALIGNED_MOVE_OPTIMAL) - { - op0 = gen_lowpart (V4SFmode, op0); - op1 = gen_lowpart (V4SFmode, op1); - emit_insn (gen_sse_movups (op0, op1)); - return; - } - + { if (TARGET_SSE_PARTIAL_REG_DEPENDENCY) emit_move_insn (op0, CONST0_RTX (mode)); else @@ -14040,7 +13833,6 @@ ix86_issue_rate (void) case PROCESSOR_PENTIUM4: case PROCESSOR_ATHLON: case PROCESSOR_K8: - case PROCESSOR_AMDFAM10: case PROCESSOR_NOCONA: case PROCESSOR_GENERIC32: case PROCESSOR_GENERIC64: @@ -14239,7 +14031,6 @@ ix86_adjust_cost (rtx insn, rtx link, rtx dep_insn, int cost) case PROCESSOR_ATHLON: case PROCESSOR_K8: - case PROCESSOR_AMDFAM10: case PROCESSOR_GENERIC32: case PROCESSOR_GENERIC64: memory = get_attr_memory (insn); @@ -14953,14 +14744,6 @@ enum ix86_builtins IX86_BUILTIN_PABSW128, IX86_BUILTIN_PABSD128, - /* AMDFAM10 - SSE4A New Instructions. */ - IX86_BUILTIN_MOVNTSD, - IX86_BUILTIN_MOVNTSS, - IX86_BUILTIN_EXTRQI, - IX86_BUILTIN_EXTRQ, - IX86_BUILTIN_INSERTQI, - IX86_BUILTIN_INSERTQ, - IX86_BUILTIN_VEC_INIT_V2SI, IX86_BUILTIN_VEC_INIT_V4HI, IX86_BUILTIN_VEC_INIT_V8QI, @@ -15685,18 +15468,6 @@ ix86_init_mmx_sse_builtins (void) = build_function_type_list (void_type_node, pchar_type_node, V16QI_type_node, NULL_TREE); - tree v2di_ftype_v2di_unsigned_unsigned - = build_function_type_list (V2DI_type_node, V2DI_type_node, - unsigned_type_node, unsigned_type_node, - NULL_TREE); - tree v2di_ftype_v2di_v2di_unsigned_unsigned - = build_function_type_list (V2DI_type_node, V2DI_type_node, V2DI_type_node, - unsigned_type_node, unsigned_type_node, - NULL_TREE); - tree v2di_ftype_v2di_v16qi - = build_function_type_list (V2DI_type_node, V2DI_type_node, V16QI_type_node, - NULL_TREE); - tree float80_type; tree float128_type; tree ftype; @@ -16033,20 +15804,6 @@ ix86_init_mmx_sse_builtins (void) def_builtin (MASK_SSSE3, "__builtin_ia32_palignr", di_ftype_di_di_int, IX86_BUILTIN_PALIGNR); - /* AMDFAM10 SSE4A New built-ins */ - def_builtin (MASK_SSE4A, "__builtin_ia32_movntsd", - void_ftype_pdouble_v2df, IX86_BUILTIN_MOVNTSD); - def_builtin (MASK_SSE4A, "__builtin_ia32_movntss", - void_ftype_pfloat_v4sf, IX86_BUILTIN_MOVNTSS); - def_builtin (MASK_SSE4A, "__builtin_ia32_extrqi", - v2di_ftype_v2di_unsigned_unsigned, IX86_BUILTIN_EXTRQI); - def_builtin (MASK_SSE4A, "__builtin_ia32_extrq", - v2di_ftype_v2di_v16qi, IX86_BUILTIN_EXTRQ); - def_builtin (MASK_SSE4A, "__builtin_ia32_insertqi", - v2di_ftype_v2di_v2di_unsigned_unsigned, IX86_BUILTIN_INSERTQI); - def_builtin (MASK_SSE4A, "__builtin_ia32_insertq", - v2di_ftype_v2di_v2di, IX86_BUILTIN_INSERTQ); - /* Access to the vec_init patterns. */ ftype = build_function_type_list (V2SI_type_node, integer_type_node, integer_type_node, NULL_TREE); @@ -16543,9 +16300,9 @@ ix86_expand_builtin (tree exp, rtx target, rtx subtarget ATTRIBUTE_UNUSED, enum insn_code icode; tree fndecl = TREE_OPERAND (TREE_OPERAND (exp, 0), 0); tree arglist = TREE_OPERAND (exp, 1); - tree arg0, arg1, arg2, arg3; - rtx op0, op1, op2, op3, pat; - enum machine_mode tmode, mode0, mode1, mode2, mode3, mode4; + tree arg0, arg1, arg2; + rtx op0, op1, op2, pat; + enum machine_mode tmode, mode0, mode1, mode2, mode3; unsigned int fcode = DECL_FUNCTION_CODE (fndecl); switch (fcode) @@ -17061,114 +16818,6 @@ ix86_expand_builtin (tree exp, rtx target, rtx subtarget ATTRIBUTE_UNUSED, emit_insn (pat); return target; - case IX86_BUILTIN_MOVNTSD: - return ix86_expand_store_builtin (CODE_FOR_sse4a_vmmovntv2df, arglist); - - case IX86_BUILTIN_MOVNTSS: - return ix86_expand_store_builtin (CODE_FOR_sse4a_vmmovntv4sf, arglist); - - case IX86_BUILTIN_INSERTQ: - case IX86_BUILTIN_EXTRQ: - icode = (fcode == IX86_BUILTIN_EXTRQ - ? CODE_FOR_sse4a_extrq - : CODE_FOR_sse4a_insertq); - arg0 = TREE_VALUE (arglist); - arg1 = TREE_VALUE (TREE_CHAIN (arglist)); - op0 = expand_normal (arg0); - op1 = expand_normal (arg1); - tmode = insn_data[icode].operand[0].mode; - mode1 = insn_data[icode].operand[1].mode; - mode2 = insn_data[icode].operand[2].mode; - if (! (*insn_data[icode].operand[1].predicate) (op0, mode1)) - op0 = copy_to_mode_reg (mode1, op0); - if (! (*insn_data[icode].operand[2].predicate) (op1, mode2)) - op1 = copy_to_mode_reg (mode2, op1); - if (optimize || target == 0 - || GET_MODE (target) != tmode - || ! (*insn_data[icode].operand[0].predicate) (target, tmode)) - target = gen_reg_rtx (tmode); - pat = GEN_FCN (icode) (target, op0, op1); - if (! pat) - return NULL_RTX; - emit_insn (pat); - return target; - - case IX86_BUILTIN_EXTRQI: - icode = CODE_FOR_sse4a_extrqi; - arg0 = TREE_VALUE (arglist); - arg1 = TREE_VALUE (TREE_CHAIN (arglist)); - arg2 = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist))); - op0 = expand_normal (arg0); - op1 = expand_normal (arg1); - op2 = expand_normal (arg2); - tmode = insn_data[icode].operand[0].mode; - mode1 = insn_data[icode].operand[1].mode; - mode2 = insn_data[icode].operand[2].mode; - mode3 = insn_data[icode].operand[3].mode; - if (! (*insn_data[icode].operand[1].predicate) (op0, mode1)) - op0 = copy_to_mode_reg (mode1, op0); - if (! (*insn_data[icode].operand[2].predicate) (op1, mode2)) - { - error ("index mask must be an immediate"); - return gen_reg_rtx (tmode); - } - if (! (*insn_data[icode].operand[3].predicate) (op2, mode3)) - { - error ("length mask must be an immediate"); - return gen_reg_rtx (tmode); - } - if (optimize || target == 0 - || GET_MODE (target) != tmode - || ! (*insn_data[icode].operand[0].predicate) (target, tmode)) - target = gen_reg_rtx (tmode); - pat = GEN_FCN (icode) (target, op0, op1, op2); - if (! pat) - return NULL_RTX; - emit_insn (pat); - return target; - - case IX86_BUILTIN_INSERTQI: - icode = CODE_FOR_sse4a_insertqi; - arg0 = TREE_VALUE (arglist); - arg1 = TREE_VALUE (TREE_CHAIN (arglist)); - arg2 = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist))); - arg3 = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (TREE_CHAIN (arglist)))); - op0 = expand_normal (arg0); - op1 = expand_normal (arg1); - op2 = expand_normal (arg2); - op3 = expand_normal (arg3); - tmode = insn_data[icode].operand[0].mode; - mode1 = insn_data[icode].operand[1].mode; - mode2 = insn_data[icode].operand[2].mode; - mode3 = insn_data[icode].operand[3].mode; - mode4 = insn_data[icode].operand[4].mode; - - if (! (*insn_data[icode].operand[1].predicate) (op0, mode1)) - op0 = copy_to_mode_reg (mode1, op0); - - if (! (*insn_data[icode].operand[2].predicate) (op1, mode2)) - op1 = copy_to_mode_reg (mode2, op1); - - if (! (*insn_data[icode].operand[3].predicate) (op2, mode3)) - { - error ("index mask must be an immediate"); - return gen_reg_rtx (tmode); - } - if (! (*insn_data[icode].operand[4].predicate) (op3, mode4)) - { - error ("length mask must be an immediate"); - return gen_reg_rtx (tmode); - } - if (optimize || target == 0 - || GET_MODE (target) != tmode - || ! (*insn_data[icode].operand[0].predicate) (target, tmode)) - target = gen_reg_rtx (tmode); - pat = GEN_FCN (icode) (target, op0, op1, op2, op3); - if (! pat) - return NULL_RTX; - emit_insn (pat); - return target; - case IX86_BUILTIN_VEC_INIT_V2SI: case IX86_BUILTIN_VEC_INIT_V4HI: case IX86_BUILTIN_VEC_INIT_V8QI: diff --git a/contrib/gcc/config/i386/i386.h b/contrib/gcc/config/i386/i386.h index 896bf1d5f668..b9770147990e 100644 --- a/contrib/gcc/config/i386/i386.h +++ b/contrib/gcc/config/i386/i386.h @@ -141,7 +141,6 @@ extern const struct processor_costs *ix86_cost; #define TARGET_GENERIC32 (ix86_tune == PROCESSOR_GENERIC32) #define TARGET_GENERIC64 (ix86_tune == PROCESSOR_GENERIC64) #define TARGET_GENERIC (TARGET_GENERIC32 || TARGET_GENERIC64) -#define TARGET_AMDFAM10 (ix86_tune == PROCESSOR_AMDFAM10) #define TUNEMASK (1 << ix86_tune) extern const int x86_use_leave, x86_push_memory, x86_zero_extend_with_and; @@ -160,16 +159,15 @@ extern const int x86_accumulate_outgoing_args, x86_prologue_using_move; extern const int x86_epilogue_using_move, x86_decompose_lea; extern const int x86_arch_always_fancy_math_387, x86_shift1; extern const int x86_sse_partial_reg_dependency, x86_sse_split_regs; -extern const int x86_sse_unaligned_move_optimal; extern const int x86_sse_typeless_stores, x86_sse_load0_by_pxor; extern const int x86_use_ffreep; extern const int x86_inter_unit_moves, x86_schedule; extern const int x86_use_bt; -extern const int x86_cmpxchg, x86_cmpxchg8b, x86_xadd; +extern const int x86_cmpxchg, x86_cmpxchg8b, x86_cmpxchg16b, x86_xadd; extern const int x86_use_incdec; extern const int x86_pad_returns; extern const int x86_partial_flag_reg_stall; -extern int x86_prefetch_sse, x86_cmpxchg16b; +extern int x86_prefetch_sse; #define TARGET_USE_LEAVE (x86_use_leave & TUNEMASK) #define TARGET_PUSH_MEMORY (x86_push_memory & TUNEMASK) @@ -209,8 +207,6 @@ extern int x86_prefetch_sse, x86_cmpxchg16b; #define TARGET_PARTIAL_REG_DEPENDENCY (x86_partial_reg_dependency & TUNEMASK) #define TARGET_SSE_PARTIAL_REG_DEPENDENCY \ (x86_sse_partial_reg_dependency & TUNEMASK) -#define TARGET_SSE_UNALIGNED_MOVE_OPTIMAL \ - (x86_sse_unaligned_move_optimal & TUNEMASK) #define TARGET_SSE_SPLIT_REGS (x86_sse_split_regs & TUNEMASK) #define TARGET_SSE_TYPELESS_STORES (x86_sse_typeless_stores & TUNEMASK) #define TARGET_SSE_LOAD0_BY_PXOR (x86_sse_load0_by_pxor & TUNEMASK) @@ -241,7 +237,7 @@ extern int x86_prefetch_sse, x86_cmpxchg16b; #define TARGET_CMPXCHG (x86_cmpxchg & (1 << ix86_arch)) #define TARGET_CMPXCHG8B (x86_cmpxchg8b & (1 << ix86_arch)) -#define TARGET_CMPXCHG16B (x86_cmpxchg16b) +#define TARGET_CMPXCHG16B (x86_cmpxchg16b & (1 << ix86_arch)) #define TARGET_XADD (x86_xadd & (1 << ix86_arch)) #ifndef TARGET_64BIT_DEFAULT @@ -403,8 +399,6 @@ extern const char *host_detect_local_cpu (int argc, const char **argv); } \ else if (TARGET_K8) \ builtin_define ("__tune_k8__"); \ - else if (TARGET_AMDFAM10) \ - builtin_define ("__tune_amdfam10__"); \ else if (TARGET_PENTIUM4) \ builtin_define ("__tune_pentium4__"); \ else if (TARGET_NOCONA) \ @@ -426,8 +420,6 @@ extern const char *host_detect_local_cpu (int argc, const char **argv); builtin_define ("__SSE3__"); \ if (TARGET_SSSE3) \ builtin_define ("__SSSE3__"); \ - if (TARGET_SSE4A) \ - builtin_define ("__SSE4A__"); \ if (TARGET_SSE_MATH && TARGET_SSE) \ builtin_define ("__SSE_MATH__"); \ if (TARGET_SSE_MATH && TARGET_SSE2) \ @@ -483,11 +475,6 @@ extern const char *host_detect_local_cpu (int argc, const char **argv); builtin_define ("__k8"); \ builtin_define ("__k8__"); \ } \ - else if (ix86_arch == PROCESSOR_AMDFAM10) \ - { \ - builtin_define ("__amdfam10"); \ - builtin_define ("__amdfam10__"); \ - } \ else if (ix86_arch == PROCESSOR_PENTIUM4) \ { \ builtin_define ("__pentium4"); \ @@ -526,14 +513,13 @@ extern const char *host_detect_local_cpu (int argc, const char **argv); #define TARGET_CPU_DEFAULT_nocona 17 #define TARGET_CPU_DEFAULT_core2 18 #define TARGET_CPU_DEFAULT_generic 19 -#define TARGET_CPU_DEFAULT_amdfam10 20 #define TARGET_CPU_DEFAULT_NAMES {"i386", "i486", "pentium", "pentium-mmx",\ "pentiumpro", "pentium2", "pentium3", \ "pentium4", "geode", "k6", "k6-2", "k6-3", \ "athlon", "athlon-4", "k8", \ "pentium-m", "prescott", "nocona", \ - "core2", "generic", "amdfam10"} + "core2", "generic"} #ifndef CC1_SPEC #define CC1_SPEC "%(cc1_cpu) " @@ -748,7 +734,7 @@ extern const char *host_detect_local_cpu (int argc, const char **argv); eliminated during reloading in favor of either the stack or frame pointer. */ -#define FIRST_PSEUDO_REGISTER 54 +#define FIRST_PSEUDO_REGISTER 53 /* Number of hardware registers that go into the DWARF-2 unwind info. If not defined, equals FIRST_PSEUDO_REGISTER. */ @@ -768,8 +754,8 @@ extern const char *host_detect_local_cpu (int argc, const char **argv); #define FIXED_REGISTERS \ /*ax,dx,cx,bx,si,di,bp,sp,st,st1,st2,st3,st4,st5,st6,st7*/ \ { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, \ -/*arg,flags,fpsr,fpcr,dir,frame*/ \ - 1, 1, 1, 1, 1, 1, \ +/*arg,flags,fpsr,dir,frame*/ \ + 1, 1, 1, 1, 1, \ /*xmm0,xmm1,xmm2,xmm3,xmm4,xmm5,xmm6,xmm7*/ \ 0, 0, 0, 0, 0, 0, 0, 0, \ /*mmx0,mmx1,mmx2,mmx3,mmx4,mmx5,mmx6,mmx7*/ \ @@ -796,10 +782,10 @@ extern const char *host_detect_local_cpu (int argc, const char **argv); #define CALL_USED_REGISTERS \ /*ax,dx,cx,bx,si,di,bp,sp,st,st1,st2,st3,st4,st5,st6,st7*/ \ { 1, 1, 1, 0, 3, 3, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, \ -/*arg,flags,fpsr,fpcr,dir,frame*/ \ - 1, 1, 1, 1, 1, 1, \ +/*arg,flags,fpsr,dir,frame*/ \ + 1, 1, 1, 1, 1, \ /*xmm0,xmm1,xmm2,xmm3,xmm4,xmm5,xmm6,xmm7*/ \ - 1, 1, 1, 1, 1, 1, 1, 1, \ + 1, 1, 1, 1, 1, 1, 1, 1, \ /*mmx0,mmx1,mmx2,mmx3,mmx4,mmx5,mmx6,mmx7*/ \ 1, 1, 1, 1, 1, 1, 1, 1, \ /* r8, r9, r10, r11, r12, r13, r14, r15*/ \ @@ -820,11 +806,11 @@ extern const char *host_detect_local_cpu (int argc, const char **argv); { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,\ 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, \ 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, \ - 48, 49, 50, 51, 52, 53 } + 48, 49, 50, 51, 52 } /* ORDER_REGS_FOR_LOCAL_ALLOC is a macro which permits reg_alloc_order to be rearranged based on a particular function. When using sse math, - we want to allocate SSE before x87 registers and vice versa. */ + we want to allocate SSE before x87 registers and vice vera. */ #define ORDER_REGS_FOR_LOCAL_ALLOC x86_order_regs_for_local_alloc () @@ -986,7 +972,7 @@ do { \ #define HARD_FRAME_POINTER_REGNUM 6 /* Base register for access to local variables of the function. */ -#define FRAME_POINTER_REGNUM 21 +#define FRAME_POINTER_REGNUM 20 /* First floating point reg */ #define FIRST_FLOAT_REG 8 @@ -1099,7 +1085,7 @@ do { \ opcode needs reg %ebx. But some systems pass args to the OS in ebx, and the "b" register constraint is useful in asms for syscalls. - The flags, fpsr and fpcr registers are in no class. */ + The flags and fpsr registers are in no class. */ enum reg_class { @@ -1180,21 +1166,21 @@ enum reg_class { 0x10, 0x0 }, { 0x20, 0x0 }, /* SIREG, DIREG */ \ { 0x03, 0x0 }, /* AD_REGS */ \ { 0x0f, 0x0 }, /* Q_REGS */ \ - { 0x2100f0, 0x3fc0 }, /* NON_Q_REGS */ \ - { 0x7f, 0x3fc0 }, /* INDEX_REGS */ \ - { 0x2100ff, 0x0 }, /* LEGACY_REGS */ \ - { 0x2100ff, 0x3fc0 }, /* GENERAL_REGS */ \ + { 0x1100f0, 0x1fe0 }, /* NON_Q_REGS */ \ + { 0x7f, 0x1fe0 }, /* INDEX_REGS */ \ + { 0x1100ff, 0x0 }, /* LEGACY_REGS */ \ + { 0x1100ff, 0x1fe0 }, /* GENERAL_REGS */ \ { 0x100, 0x0 }, { 0x0200, 0x0 },/* FP_TOP_REG, FP_SECOND_REG */\ { 0xff00, 0x0 }, /* FLOAT_REGS */ \ -{ 0x3fc00000,0x3fc000 }, /* SSE_REGS */ \ -{ 0xc0000000, 0x3f }, /* MMX_REGS */ \ -{ 0x3fc00100,0x3fc000 }, /* FP_TOP_SSE_REG */ \ -{ 0x3fc00200,0x3fc000 }, /* FP_SECOND_SSE_REG */ \ -{ 0x3fc0ff00,0x3fc000 }, /* FLOAT_SSE_REGS */ \ - { 0x1ffff, 0x3fc0 }, /* FLOAT_INT_REGS */ \ -{ 0x3fc100ff,0x3fffc0 }, /* INT_SSE_REGS */ \ -{ 0x3fc1ffff,0x3fffc0 }, /* FLOAT_INT_SSE_REGS */ \ -{ 0xffffffff,0x3fffff } \ +{ 0x1fe00000,0x1fe000 }, /* SSE_REGS */ \ +{ 0xe0000000, 0x1f }, /* MMX_REGS */ \ +{ 0x1fe00100,0x1fe000 }, /* FP_TOP_SSE_REG */ \ +{ 0x1fe00200,0x1fe000 }, /* FP_SECOND_SSE_REG */ \ +{ 0x1fe0ff00,0x1fe000 }, /* FLOAT_SSE_REGS */ \ + { 0x1ffff, 0x1fe0 }, /* FLOAT_INT_REGS */ \ +{ 0x1fe100ff,0x1fffe0 }, /* INT_SSE_REGS */ \ +{ 0x1fe1ffff,0x1fffe0 }, /* FLOAT_INT_SSE_REGS */ \ +{ 0xffffffff,0x1fffff } \ } /* The same information, inverted: @@ -1210,10 +1196,11 @@ enum reg_class #define SMALL_REGISTER_CLASSES 1 -#define QI_REG_P(X) (REG_P (X) && REGNO (X) < 4) +#define QI_REG_P(X) \ + (REG_P (X) && REGNO (X) < 4) #define GENERAL_REGNO_P(N) \ - ((N) <= STACK_POINTER_REGNUM || REX_INT_REGNO_P (N)) + ((N) < 8 || REX_INT_REGNO_P (N)) #define GENERAL_REG_P(X) \ (REG_P (X) && GENERAL_REGNO_P (REGNO (X))) @@ -1221,38 +1208,39 @@ enum reg_class #define ANY_QI_REG_P(X) (TARGET_64BIT ? GENERAL_REG_P(X) : QI_REG_P (X)) #define NON_QI_REG_P(X) \ - (REG_P (X) && IN_RANGE (REGNO (X), 4, FIRST_PSEUDO_REGISTER - 1)) + (REG_P (X) && REGNO (X) >= 4 && REGNO (X) < FIRST_PSEUDO_REGISTER) -#define REX_INT_REGNO_P(N) \ - IN_RANGE ((N), FIRST_REX_INT_REG, LAST_REX_INT_REG) +#define REX_INT_REGNO_P(N) ((N) >= FIRST_REX_INT_REG && (N) <= LAST_REX_INT_REG) #define REX_INT_REG_P(X) (REG_P (X) && REX_INT_REGNO_P (REGNO (X))) #define FP_REG_P(X) (REG_P (X) && FP_REGNO_P (REGNO (X))) -#define FP_REGNO_P(N) IN_RANGE ((N), FIRST_STACK_REG, LAST_STACK_REG) +#define FP_REGNO_P(N) ((N) >= FIRST_STACK_REG && (N) <= LAST_STACK_REG) #define ANY_FP_REG_P(X) (REG_P (X) && ANY_FP_REGNO_P (REGNO (X))) #define ANY_FP_REGNO_P(N) (FP_REGNO_P (N) || SSE_REGNO_P (N)) -#define SSE_REG_P(N) (REG_P (N) && SSE_REGNO_P (REGNO (N))) -#define SSE_REGNO_P(N) \ - (IN_RANGE ((N), FIRST_SSE_REG, LAST_SSE_REG) \ - || REX_SSE_REGNO_P (N)) +#define SSE_REGNO_P(N) \ + (((N) >= FIRST_SSE_REG && (N) <= LAST_SSE_REG) \ + || ((N) >= FIRST_REX_SSE_REG && (N) <= LAST_REX_SSE_REG)) #define REX_SSE_REGNO_P(N) \ - IN_RANGE ((N), FIRST_REX_SSE_REG, LAST_REX_SSE_REG) + ((N) >= FIRST_REX_SSE_REG && (N) <= LAST_REX_SSE_REG) #define SSE_REGNO(N) \ ((N) < 8 ? FIRST_SSE_REG + (N) : FIRST_REX_SSE_REG + (N) - 8) +#define SSE_REG_P(N) (REG_P (N) && SSE_REGNO_P (REGNO (N))) #define SSE_FLOAT_MODE_P(MODE) \ ((TARGET_SSE && (MODE) == SFmode) || (TARGET_SSE2 && (MODE) == DFmode)) +#define MMX_REGNO_P(N) ((N) >= FIRST_MMX_REG && (N) <= LAST_MMX_REG) #define MMX_REG_P(XOP) (REG_P (XOP) && MMX_REGNO_P (REGNO (XOP))) -#define MMX_REGNO_P(N) IN_RANGE ((N), FIRST_MMX_REG, LAST_MMX_REG) -#define STACK_REG_P(XOP) (REG_P (XOP) && STACK_REGNO_P (REGNO (XOP))) -#define NON_STACK_REG_P(XOP) \ - (REG_P (XOP) && ! STACK_REGNO_P (REGNO (XOP))) -#define STACK_REGNO_P(N) IN_RANGE ((N), FIRST_STACK_REG, LAST_STACK_REG) +#define STACK_REG_P(XOP) \ + (REG_P (XOP) && \ + REGNO (XOP) >= FIRST_STACK_REG && \ + REGNO (XOP) <= LAST_STACK_REG) + +#define NON_STACK_REG_P(XOP) (REG_P (XOP) && ! STACK_REG_P (XOP)) #define STACK_TOP_P(XOP) (REG_P (XOP) && REGNO (XOP) == FIRST_STACK_REG) @@ -1600,15 +1588,21 @@ typedef struct ix86_args { #define REGNO_OK_FOR_INDEX_P(REGNO) \ ((REGNO) < STACK_POINTER_REGNUM \ - || REX_INT_REGNO_P (REGNO) \ - || (unsigned) reg_renumber[(REGNO)] < STACK_POINTER_REGNUM \ - || REX_INT_REGNO_P ((unsigned) reg_renumber[(REGNO)])) + || (REGNO >= FIRST_REX_INT_REG \ + && (REGNO) <= LAST_REX_INT_REG) \ + || ((unsigned) reg_renumber[(REGNO)] >= FIRST_REX_INT_REG \ + && (unsigned) reg_renumber[(REGNO)] <= LAST_REX_INT_REG) \ + || (unsigned) reg_renumber[(REGNO)] < STACK_POINTER_REGNUM) #define REGNO_OK_FOR_BASE_P(REGNO) \ - (GENERAL_REGNO_P (REGNO) \ + ((REGNO) <= STACK_POINTER_REGNUM \ || (REGNO) == ARG_POINTER_REGNUM \ || (REGNO) == FRAME_POINTER_REGNUM \ - || GENERAL_REGNO_P ((unsigned) reg_renumber[(REGNO)])) + || (REGNO >= FIRST_REX_INT_REG \ + && (REGNO) <= LAST_REX_INT_REG) \ + || ((unsigned) reg_renumber[(REGNO)] >= FIRST_REX_INT_REG \ + && (unsigned) reg_renumber[(REGNO)] <= LAST_REX_INT_REG) \ + || (unsigned) reg_renumber[(REGNO)] <= STACK_POINTER_REGNUM) #define REGNO_OK_FOR_SIREG_P(REGNO) \ ((REGNO) == 4 || reg_renumber[(REGNO)] == 4) @@ -1632,13 +1626,16 @@ typedef struct ix86_args { /* Non strict versions, pseudos are ok. */ #define REG_OK_FOR_INDEX_NONSTRICT_P(X) \ (REGNO (X) < STACK_POINTER_REGNUM \ - || REX_INT_REGNO_P (REGNO (X)) \ + || (REGNO (X) >= FIRST_REX_INT_REG \ + && REGNO (X) <= LAST_REX_INT_REG) \ || REGNO (X) >= FIRST_PSEUDO_REGISTER) #define REG_OK_FOR_BASE_NONSTRICT_P(X) \ - (GENERAL_REGNO_P (REGNO (X)) \ + (REGNO (X) <= STACK_POINTER_REGNUM \ || REGNO (X) == ARG_POINTER_REGNUM \ || REGNO (X) == FRAME_POINTER_REGNUM \ + || (REGNO (X) >= FIRST_REX_INT_REG \ + && REGNO (X) <= LAST_REX_INT_REG) \ || REGNO (X) >= FIRST_PSEUDO_REGISTER) /* Strict versions, hard registers only */ @@ -1943,9 +1940,9 @@ do { \ #define HI_REGISTER_NAMES \ {"ax","dx","cx","bx","si","di","bp","sp", \ "st","st(1)","st(2)","st(3)","st(4)","st(5)","st(6)","st(7)", \ - "argp", "flags", "fpsr", "fpcr", "dirflag", "frame", \ + "argp", "flags", "fpsr", "dirflag", "frame", \ "xmm0","xmm1","xmm2","xmm3","xmm4","xmm5","xmm6","xmm7", \ - "mm0", "mm1", "mm2", "mm3", "mm4", "mm5", "mm6", "mm7", \ + "mm0", "mm1", "mm2", "mm3", "mm4", "mm5", "mm6", "mm7" , \ "r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15", \ "xmm8", "xmm9", "xmm10", "xmm11", "xmm12", "xmm13", "xmm14", "xmm15"} @@ -2111,7 +2108,6 @@ enum processor_type PROCESSOR_CORE2, PROCESSOR_GENERIC32, PROCESSOR_GENERIC64, - PROCESSOR_AMDFAM10, PROCESSOR_max }; @@ -2251,7 +2247,7 @@ enum ix86_stack_slot ??? Maybe Pentium chips benefits from renaming, someone can try.... */ #define HARD_REGNO_RENAME_OK(SRC, TARGET) \ - (! IN_RANGE ((SRC), FIRST_STACK_REG, LAST_STACK_REG)) + ((SRC) < FIRST_STACK_REG || (SRC) > LAST_STACK_REG) #define DLL_IMPORT_EXPORT_PREFIX '#' diff --git a/contrib/gcc/config/i386/i386.md b/contrib/gcc/config/i386/i386.md index e0b0d0c6b031..bd81c4aa756e 100644 --- a/contrib/gcc/config/i386/i386.md +++ b/contrib/gcc/config/i386/i386.md @@ -104,7 +104,7 @@ (UNSPEC_MFENCE 44) (UNSPEC_LFENCE 45) (UNSPEC_PSADBW 46) - (UNSPEC_LDDQU 47) + (UNSPEC_LDQQU 47) ; Generic math support (UNSPEC_COPYSIGN 50) @@ -153,12 +153,6 @@ (UNSPEC_PSHUFB 120) (UNSPEC_PSIGN 121) (UNSPEC_PALIGNR 122) - - ; For SSE4A support - (UNSPEC_EXTRQI 130) - (UNSPEC_EXTRQ 131) - (UNSPEC_INSERTQI 132) - (UNSPEC_INSERTQ 133) ]) (define_constants @@ -184,9 +178,7 @@ (SP_REG 7) (FLAGS_REG 17) (FPSR_REG 18) - (FPCR_REG 19) - (DIRFLAG_REG 20) - (R11_REG 41) + (DIRFLAG_REG 19) ]) ;; Insns whose names begin with "x86_" are emitted by gen_FOO calls @@ -200,8 +192,7 @@ ;; Processor type. This attribute must exactly match the processor_type ;; enumeration in i386.h. -(define_attr "cpu" "i386,i486,pentium,pentiumpro,geode,k6,athlon,pentium4,k8, - nocona,core2,generic32,generic64,amdfam10" +(define_attr "cpu" "i386,i486,pentium,pentiumpro,geode,k6,athlon,pentium4,k8,nocona,core2,generic32,generic64" (const (symbol_ref "ix86_tune"))) ;; A basic instruction type. Refinements due to arguments to be @@ -212,10 +203,10 @@ incdec,ishift,ishift1,rotate,rotate1,imul,idiv, icmp,test,ibr,setcc,icmov, push,pop,call,callv,leave, - str,,bitmanip,cld, + str,cld, fmov,fop,fsgn,fmul,fdiv,fpspc,fcmov,fcmp,fxch,fistp,fisttp,frndint, sselog,sselog1,sseiadd,sseishft,sseimul, - sse,ssemov,sseadd,ssemul,ssecmp,ssecomi,ssecvt,sseicvt,ssediv,sseins, + sse,ssemov,sseadd,ssemul,ssecmp,ssecomi,ssecvt,sseicvt,ssediv, mmx,mmxmov,mmxadd,mmxmul,mmxcmp,mmxcvt,mmxshft" (const_string "other")) @@ -229,7 +220,7 @@ (cond [(eq_attr "type" "fmov,fop,fsgn,fmul,fdiv,fpspc,fcmov,fcmp,fxch,fistp,fisttp,frndint") (const_string "i387") (eq_attr "type" "sselog,sselog1,sseiadd,sseishft,sseimul, - sse,ssemov,sseadd,ssemul,ssecmp,ssecomi,ssecvt,sseicvt,ssediv,sseins") + sse,ssemov,sseadd,ssemul,ssecmp,ssecomi,ssecvt,sseicvt,ssediv") (const_string "sse") (eq_attr "type" "mmx,mmxmov,mmxadd,mmxmul,mmxcmp,mmxcvt,mmxshft") (const_string "mmx") @@ -239,8 +230,7 @@ ;; The (bounding maximum) length of an instruction immediate. (define_attr "length_immediate" "" - (cond [(eq_attr "type" "incdec,setcc,icmov,str,cld,lea,other,multi,idiv,leave, - bitmanip") + (cond [(eq_attr "type" "incdec,setcc,icmov,str,cld,lea,other,multi,idiv,leave") (const_int 0) (eq_attr "unit" "i387,sse,mmx") (const_int 0) @@ -294,7 +284,7 @@ ;; Set when 0f opcode prefix is used. (define_attr "prefix_0f" "" (if_then_else - (ior (eq_attr "type" "imovx,setcc,icmov,bitmanip") + (ior (eq_attr "type" "imovx,setcc,icmov") (eq_attr "unit" "sse,mmx")) (const_int 1) (const_int 0))) @@ -423,7 +413,7 @@ (const_string "load") (and (eq_attr "type" "!alu1,negnot,ishift1, - imov,imovx,icmp,test,bitmanip, + imov,imovx,icmp,test, fmov,fcmp,fsgn, sse,ssemov,ssecmp,ssecomi,ssecvt,sseicvt,sselog1, mmx,mmxmov,mmxcmp,mmxcvt") @@ -978,11 +968,10 @@ "sahf" [(set_attr "length" "1") (set_attr "athlon_decode" "vector") - (set_attr "amdfam10_decode" "direct") (set_attr "mode" "SI")]) ;; Pentium Pro can do steps 1 through 3 in one go. -;; comi*, ucomi*, fcomi*, ficomi*,fucomi* (i387 instructions set condition codes) + (define_insn "*cmpfp_i_mixed" [(set (reg:CCFP FLAGS_REG) (compare:CCFP (match_operand 0 "register_operand" "f,x") @@ -996,8 +985,7 @@ (if_then_else (match_operand:SF 1 "" "") (const_string "SF") (const_string "DF"))) - (set_attr "athlon_decode" "vector") - (set_attr "amdfam10_decode" "direct")]) + (set_attr "athlon_decode" "vector")]) (define_insn "*cmpfp_i_sse" [(set (reg:CCFP FLAGS_REG) @@ -1012,8 +1000,7 @@ (if_then_else (match_operand:SF 1 "" "") (const_string "SF") (const_string "DF"))) - (set_attr "athlon_decode" "vector") - (set_attr "amdfam10_decode" "direct")]) + (set_attr "athlon_decode" "vector")]) (define_insn "*cmpfp_i_i387" [(set (reg:CCFP FLAGS_REG) @@ -1032,8 +1019,7 @@ (const_string "DF") ] (const_string "XF"))) - (set_attr "athlon_decode" "vector") - (set_attr "amdfam10_decode" "direct")]) + (set_attr "athlon_decode" "vector")]) (define_insn "*cmpfp_iu_mixed" [(set (reg:CCFPU FLAGS_REG) @@ -1048,8 +1034,7 @@ (if_then_else (match_operand:SF 1 "" "") (const_string "SF") (const_string "DF"))) - (set_attr "athlon_decode" "vector") - (set_attr "amdfam10_decode" "direct")]) + (set_attr "athlon_decode" "vector")]) (define_insn "*cmpfp_iu_sse" [(set (reg:CCFPU FLAGS_REG) @@ -1064,8 +1049,7 @@ (if_then_else (match_operand:SF 1 "" "") (const_string "SF") (const_string "DF"))) - (set_attr "athlon_decode" "vector") - (set_attr "amdfam10_decode" "direct")]) + (set_attr "athlon_decode" "vector")]) (define_insn "*cmpfp_iu_387" [(set (reg:CCFPU FLAGS_REG) @@ -1084,8 +1068,7 @@ (const_string "DF") ] (const_string "XF"))) - (set_attr "athlon_decode" "vector") - (set_attr "amdfam10_decode" "direct")]) + (set_attr "athlon_decode" "vector")]) ;; Move instructions. @@ -1291,8 +1274,7 @@ [(set_attr "type" "imov") (set_attr "mode" "SI") (set_attr "pent_pair" "np") - (set_attr "athlon_decode" "vector") - (set_attr "amdfam10_decode" "double")]) + (set_attr "athlon_decode" "vector")]) (define_expand "movhi" [(set (match_operand:HI 0 "nonimmediate_operand" "") @@ -1409,10 +1391,8 @@ [(set_attr "type" "imov") (set_attr "mode" "SI") (set_attr "pent_pair" "np") - (set_attr "athlon_decode" "vector") - (set_attr "amdfam10_decode" "double")]) + (set_attr "athlon_decode" "vector")]) -;; Not added amdfam10_decode since TARGET_PARTIAL_REG_STALL is disabled for AMDFAM10 (define_insn "*swaphi_2" [(set (match_operand:HI 0 "register_operand" "+r") (match_operand:HI 1 "register_operand" "+r")) @@ -1585,10 +1565,8 @@ [(set_attr "type" "imov") (set_attr "mode" "SI") (set_attr "pent_pair" "np") - (set_attr "athlon_decode" "vector") - (set_attr "amdfam10_decode" "vector")]) + (set_attr "athlon_decode" "vector")]) -;; Not added amdfam10_decode since TARGET_PARTIAL_REG_STALL is disabled for AMDFAM10 (define_insn "*swapqi_2" [(set (match_operand:QI 0 "register_operand" "+q") (match_operand:QI 1 "register_operand" "+q")) @@ -2142,8 +2120,7 @@ [(set_attr "type" "imov") (set_attr "mode" "DI") (set_attr "pent_pair" "np") - (set_attr "athlon_decode" "vector") - (set_attr "amdfam10_decode" "double")]) + (set_attr "athlon_decode" "vector")]) (define_expand "movti" [(set (match_operand:TI 0 "nonimmediate_operand" "") @@ -4173,8 +4150,7 @@ "cvttss2si{q}\t{%1, %0|%0, %1}" [(set_attr "type" "sseicvt") (set_attr "mode" "SF") - (set_attr "athlon_decode" "double,vector") - (set_attr "amdfam10_decode" "double,double")]) + (set_attr "athlon_decode" "double,vector")]) (define_insn "fix_truncdfdi_sse" [(set (match_operand:DI 0 "register_operand" "=r,r") @@ -4183,8 +4159,7 @@ "cvttsd2si{q}\t{%1, %0|%0, %1}" [(set_attr "type" "sseicvt") (set_attr "mode" "DF") - (set_attr "athlon_decode" "double,vector") - (set_attr "amdfam10_decode" "double,double")]) + (set_attr "athlon_decode" "double,vector")]) (define_insn "fix_truncsfsi_sse" [(set (match_operand:SI 0 "register_operand" "=r,r") @@ -4193,8 +4168,7 @@ "cvttss2si\t{%1, %0|%0, %1}" [(set_attr "type" "sseicvt") (set_attr "mode" "DF") - (set_attr "athlon_decode" "double,vector") - (set_attr "amdfam10_decode" "double,double")]) + (set_attr "athlon_decode" "double,vector")]) (define_insn "fix_truncdfsi_sse" [(set (match_operand:SI 0 "register_operand" "=r,r") @@ -4203,8 +4177,7 @@ "cvttsd2si\t{%1, %0|%0, %1}" [(set_attr "type" "sseicvt") (set_attr "mode" "DF") - (set_attr "athlon_decode" "double,vector") - (set_attr "amdfam10_decode" "double,double")]) + (set_attr "athlon_decode" "double,vector")]) ;; Avoid vector decoded forms of the instruction. (define_peephole2 @@ -4450,7 +4423,7 @@ (define_insn "x86_fnstcw_1" [(set (match_operand:HI 0 "memory_operand" "=m") - (unspec:HI [(reg:HI FPCR_REG)] UNSPEC_FSTCW))] + (unspec:HI [(reg:HI FPSR_REG)] UNSPEC_FSTCW))] "TARGET_80387" "fnstcw\t%0" [(set_attr "length" "2") @@ -4458,15 +4431,14 @@ (set_attr "unit" "i387")]) (define_insn "x86_fldcw_1" - [(set (reg:HI FPCR_REG) + [(set (reg:HI FPSR_REG) (unspec:HI [(match_operand:HI 0 "memory_operand" "m")] UNSPEC_FLDCW))] "TARGET_80387" "fldcw\t%0" [(set_attr "length" "2") (set_attr "mode" "HI") (set_attr "unit" "i387") - (set_attr "athlon_decode" "vector") - (set_attr "amdfam10_decode" "vector")]) + (set_attr "athlon_decode" "vector")]) ;; Conversion between fixed point and floating point. @@ -4517,7 +4489,6 @@ (set_attr "mode" "SF") (set_attr "unit" "*,i387,*,*") (set_attr "athlon_decode" "*,*,vector,double") - (set_attr "amdfam10_decode" "*,*,vector,double") (set_attr "fp_int_src" "true")]) (define_insn "*floatsisf2_sse" @@ -4528,7 +4499,6 @@ [(set_attr "type" "sseicvt") (set_attr "mode" "SF") (set_attr "athlon_decode" "vector,double") - (set_attr "amdfam10_decode" "vector,double") (set_attr "fp_int_src" "true")]) (define_insn "*floatsisf2_i387" @@ -4562,7 +4532,6 @@ (set_attr "mode" "SF") (set_attr "unit" "*,i387,*,*") (set_attr "athlon_decode" "*,*,vector,double") - (set_attr "amdfam10_decode" "*,*,vector,double") (set_attr "fp_int_src" "true")]) (define_insn "*floatdisf2_sse" @@ -4573,7 +4542,6 @@ [(set_attr "type" "sseicvt") (set_attr "mode" "SF") (set_attr "athlon_decode" "vector,double") - (set_attr "amdfam10_decode" "vector,double") (set_attr "fp_int_src" "true")]) (define_insn "*floatdisf2_i387" @@ -4632,7 +4600,6 @@ (set_attr "mode" "DF") (set_attr "unit" "*,i387,*,*") (set_attr "athlon_decode" "*,*,double,direct") - (set_attr "amdfam10_decode" "*,*,vector,double") (set_attr "fp_int_src" "true")]) (define_insn "*floatsidf2_sse" @@ -4643,7 +4610,6 @@ [(set_attr "type" "sseicvt") (set_attr "mode" "DF") (set_attr "athlon_decode" "double,direct") - (set_attr "amdfam10_decode" "vector,double") (set_attr "fp_int_src" "true")]) (define_insn "*floatsidf2_i387" @@ -4677,7 +4643,6 @@ (set_attr "mode" "DF") (set_attr "unit" "*,i387,*,*") (set_attr "athlon_decode" "*,*,double,direct") - (set_attr "amdfam10_decode" "*,*,vector,double") (set_attr "fp_int_src" "true")]) (define_insn "*floatdidf2_sse" @@ -4688,7 +4653,6 @@ [(set_attr "type" "sseicvt") (set_attr "mode" "DF") (set_attr "athlon_decode" "double,direct") - (set_attr "amdfam10_decode" "vector,double") (set_attr "fp_int_src" "true")]) (define_insn "*floatdidf2_i387" @@ -6896,14 +6860,6 @@ "TARGET_64BIT" "") -;; On AMDFAM10 -;; IMUL reg64, reg64, imm8 Direct -;; IMUL reg64, mem64, imm8 VectorPath -;; IMUL reg64, reg64, imm32 Direct -;; IMUL reg64, mem64, imm32 VectorPath -;; IMUL reg64, reg64 Direct -;; IMUL reg64, mem64 Direct - (define_insn "*muldi3_1_rex64" [(set (match_operand:DI 0 "register_operand" "=r,r,r") (mult:DI (match_operand:DI 1 "nonimmediate_operand" "%rm,rm,0") @@ -6926,11 +6882,6 @@ (match_operand 1 "memory_operand" "")) (const_string "vector")] (const_string "direct"))) - (set (attr "amdfam10_decode") - (cond [(and (eq_attr "alternative" "0,1") - (match_operand 1 "memory_operand" "")) - (const_string "vector")] - (const_string "direct"))) (set_attr "mode" "DI")]) (define_expand "mulsi3" @@ -6941,14 +6892,6 @@ "" "") -;; On AMDFAM10 -;; IMUL reg32, reg32, imm8 Direct -;; IMUL reg32, mem32, imm8 VectorPath -;; IMUL reg32, reg32, imm32 Direct -;; IMUL reg32, mem32, imm32 VectorPath -;; IMUL reg32, reg32 Direct -;; IMUL reg32, mem32 Direct - (define_insn "*mulsi3_1" [(set (match_operand:SI 0 "register_operand" "=r,r,r") (mult:SI (match_operand:SI 1 "nonimmediate_operand" "%rm,rm,0") @@ -6970,11 +6913,6 @@ (match_operand 1 "memory_operand" "")) (const_string "vector")] (const_string "direct"))) - (set (attr "amdfam10_decode") - (cond [(and (eq_attr "alternative" "0,1") - (match_operand 1 "memory_operand" "")) - (const_string "vector")] - (const_string "direct"))) (set_attr "mode" "SI")]) (define_insn "*mulsi3_1_zext" @@ -7000,11 +6938,6 @@ (match_operand 1 "memory_operand" "")) (const_string "vector")] (const_string "direct"))) - (set (attr "amdfam10_decode") - (cond [(and (eq_attr "alternative" "0,1") - (match_operand 1 "memory_operand" "")) - (const_string "vector")] - (const_string "direct"))) (set_attr "mode" "SI")]) (define_expand "mulhi3" @@ -7015,13 +6948,6 @@ "TARGET_HIMODE_MATH" "") -;; On AMDFAM10 -;; IMUL reg16, reg16, imm8 VectorPath -;; IMUL reg16, mem16, imm8 VectorPath -;; IMUL reg16, reg16, imm16 VectorPath -;; IMUL reg16, mem16, imm16 VectorPath -;; IMUL reg16, reg16 Direct -;; IMUL reg16, mem16 Direct (define_insn "*mulhi3_1" [(set (match_operand:HI 0 "register_operand" "=r,r,r") (mult:HI (match_operand:HI 1 "nonimmediate_operand" "%rm,rm,0") @@ -7040,10 +6966,6 @@ (eq_attr "alternative" "1,2") (const_string "vector")] (const_string "direct"))) - (set (attr "amdfam10_decode") - (cond [(eq_attr "alternative" "0,1") - (const_string "vector")] - (const_string "direct"))) (set_attr "mode" "HI")]) (define_expand "mulqi3" @@ -7054,10 +6976,6 @@ "TARGET_QIMODE_MATH" "") -;;On AMDFAM10 -;; MUL reg8 Direct -;; MUL mem8 Direct - (define_insn "*mulqi3_1" [(set (match_operand:QI 0 "register_operand" "=a") (mult:QI (match_operand:QI 1 "nonimmediate_operand" "%0") @@ -7072,7 +6990,6 @@ (if_then_else (eq_attr "cpu" "athlon") (const_string "vector") (const_string "direct"))) - (set_attr "amdfam10_decode" "direct") (set_attr "mode" "QI")]) (define_expand "umulqihi3" @@ -7099,7 +7016,6 @@ (if_then_else (eq_attr "cpu" "athlon") (const_string "vector") (const_string "direct"))) - (set_attr "amdfam10_decode" "direct") (set_attr "mode" "QI")]) (define_expand "mulqihi3" @@ -7124,7 +7040,6 @@ (if_then_else (eq_attr "cpu" "athlon") (const_string "vector") (const_string "direct"))) - (set_attr "amdfam10_decode" "direct") (set_attr "mode" "QI")]) (define_expand "umulditi3" @@ -7151,7 +7066,6 @@ (if_then_else (eq_attr "cpu" "athlon") (const_string "vector") (const_string "double"))) - (set_attr "amdfam10_decode" "double") (set_attr "mode" "DI")]) ;; We can't use this pattern in 64bit mode, since it results in two separate 32bit registers @@ -7179,7 +7093,6 @@ (if_then_else (eq_attr "cpu" "athlon") (const_string "vector") (const_string "double"))) - (set_attr "amdfam10_decode" "double") (set_attr "mode" "SI")]) (define_expand "mulditi3" @@ -7206,7 +7119,6 @@ (if_then_else (eq_attr "cpu" "athlon") (const_string "vector") (const_string "double"))) - (set_attr "amdfam10_decode" "double") (set_attr "mode" "DI")]) (define_expand "mulsidi3" @@ -7233,7 +7145,6 @@ (if_then_else (eq_attr "cpu" "athlon") (const_string "vector") (const_string "double"))) - (set_attr "amdfam10_decode" "double") (set_attr "mode" "SI")]) (define_expand "umuldi3_highpart" @@ -7270,7 +7181,6 @@ (if_then_else (eq_attr "cpu" "athlon") (const_string "vector") (const_string "double"))) - (set_attr "amdfam10_decode" "double") (set_attr "mode" "DI")]) (define_expand "umulsi3_highpart" @@ -7306,7 +7216,6 @@ (if_then_else (eq_attr "cpu" "athlon") (const_string "vector") (const_string "double"))) - (set_attr "amdfam10_decode" "double") (set_attr "mode" "SI")]) (define_insn "*umulsi3_highpart_zext" @@ -7329,7 +7238,6 @@ (if_then_else (eq_attr "cpu" "athlon") (const_string "vector") (const_string "double"))) - (set_attr "amdfam10_decode" "double") (set_attr "mode" "SI")]) (define_expand "smuldi3_highpart" @@ -7365,7 +7273,6 @@ (if_then_else (eq_attr "cpu" "athlon") (const_string "vector") (const_string "double"))) - (set_attr "amdfam10_decode" "double") (set_attr "mode" "DI")]) (define_expand "smulsi3_highpart" @@ -7400,7 +7307,6 @@ (if_then_else (eq_attr "cpu" "athlon") (const_string "vector") (const_string "double"))) - (set_attr "amdfam10_decode" "double") (set_attr "mode" "SI")]) (define_insn "*smulsi3_highpart_zext" @@ -7422,7 +7328,6 @@ (if_then_else (eq_attr "cpu" "athlon") (const_string "vector") (const_string "double"))) - (set_attr "amdfam10_decode" "double") (set_attr "mode" "SI")]) ;; The patterns that match these are at the end of this file. @@ -10404,8 +10309,7 @@ [(set_attr "type" "ishift") (set_attr "prefix_0f" "1") (set_attr "mode" "DI") - (set_attr "athlon_decode" "vector") - (set_attr "amdfam10_decode" "vector")]) + (set_attr "athlon_decode" "vector")]) (define_expand "x86_64_shift_adj" [(set (reg:CCZ FLAGS_REG) @@ -10620,8 +10524,7 @@ (set_attr "prefix_0f" "1") (set_attr "mode" "SI") (set_attr "pent_pair" "np") - (set_attr "athlon_decode" "vector") - (set_attr "amdfam10_decode" "vector")]) + (set_attr "athlon_decode" "vector")]) (define_expand "x86_shift_adj_1" [(set (reg:CCZ FLAGS_REG) @@ -11381,8 +11284,7 @@ [(set_attr "type" "ishift") (set_attr "prefix_0f" "1") (set_attr "mode" "DI") - (set_attr "athlon_decode" "vector") - (set_attr "amdfam10_decode" "vector")]) + (set_attr "athlon_decode" "vector")]) (define_expand "ashrdi3" [(set (match_operand:DI 0 "shiftdi_operand" "") @@ -14254,7 +14156,7 @@ [(set_attr "type" "call")]) (define_insn "*sibcall_1_rex64_v" - [(call (mem:QI (reg:DI R11_REG)) + [(call (mem:QI (reg:DI 40)) (match_operand 0 "" ""))] "SIBLING_CALL_P (insn) && TARGET_64BIT" "jmp\t*%%r11" @@ -14656,23 +14558,7 @@ [(set (match_dup 0) (xor:SI (match_dup 0) (const_int 31))) (clobber (reg:CC FLAGS_REG))])] "" -{ - if (TARGET_ABM) - { - emit_insn (gen_clzsi2_abm (operands[0], operands[1])); - DONE; - } -}) - -(define_insn "clzsi2_abm" - [(set (match_operand:SI 0 "register_operand" "=r") - (clz:SI (match_operand:SI 1 "nonimmediate_operand" ""))) - (clobber (reg:CC FLAGS_REG))] - "TARGET_ABM" - "lzcnt{l}\t{%1, %0|%0, %1}" - [(set_attr "prefix_rep" "1") - (set_attr "type" "bitmanip") - (set_attr "mode" "SI")]) + "") (define_insn "*bsr" [(set (match_operand:SI 0 "register_operand" "=r") @@ -14681,44 +14567,7 @@ (clobber (reg:CC FLAGS_REG))] "" "bsr{l}\t{%1, %0|%0, %1}" - [(set_attr "prefix_0f" "1") - (set_attr "mode" "SI")]) - -(define_insn "popcountsi2" - [(set (match_operand:SI 0 "register_operand" "=r") - (popcount:SI (match_operand:SI 1 "nonimmediate_operand" ""))) - (clobber (reg:CC FLAGS_REG))] - "TARGET_POPCNT" - "popcnt{l}\t{%1, %0|%0, %1}" - [(set_attr "prefix_rep" "1") - (set_attr "type" "bitmanip") - (set_attr "mode" "SI")]) - -(define_insn "*popcountsi2_cmp" - [(set (reg FLAGS_REG) - (compare - (popcount:SI (match_operand:SI 1 "nonimmediate_operand" "rm")) - (const_int 0))) - (set (match_operand:SI 0 "register_operand" "=r") - (popcount:SI (match_dup 1)))] - "TARGET_POPCNT && ix86_match_ccmode (insn, CCZmode)" - "popcnt{l}\t{%1, %0|%0, %1}" - [(set_attr "prefix_rep" "1") - (set_attr "type" "bitmanip") - (set_attr "mode" "SI")]) - -(define_insn "*popcountsi2_cmp_zext" - [(set (reg FLAGS_REG) - (compare - (popcount:SI (match_operand:SI 1 "nonimmediate_operand" "rm")) - (const_int 0))) - (set (match_operand:DI 0 "register_operand" "=r") - (zero_extend:DI(popcount:SI (match_dup 1))))] - "TARGET_64BIT && TARGET_POPCNT && ix86_match_ccmode (insn, CCZmode)" - "popcnt{l}\t{%1, %0|%0, %1}" - [(set_attr "prefix_rep" "1") - (set_attr "type" "bitmanip") - (set_attr "mode" "SI")]) + [(set_attr "prefix_0f" "1")]) (define_expand "clzdi2" [(parallel @@ -14730,23 +14579,7 @@ [(set (match_dup 0) (xor:DI (match_dup 0) (const_int 63))) (clobber (reg:CC FLAGS_REG))])] "TARGET_64BIT" -{ - if (TARGET_ABM) - { - emit_insn (gen_clzdi2_abm (operands[0], operands[1])); - DONE; - } -}) - -(define_insn "clzdi2_abm" - [(set (match_operand:DI 0 "register_operand" "=r") - (clz:DI (match_operand:DI 1 "nonimmediate_operand" ""))) - (clobber (reg:CC FLAGS_REG))] - "TARGET_64BIT && TARGET_ABM" - "lzcnt{q}\t{%1, %0|%0, %1}" - [(set_attr "prefix_rep" "1") - (set_attr "type" "bitmanip") - (set_attr "mode" "DI")]) + "") (define_insn "*bsr_rex64" [(set (match_operand:DI 0 "register_operand" "=r") @@ -14755,92 +14588,7 @@ (clobber (reg:CC FLAGS_REG))] "TARGET_64BIT" "bsr{q}\t{%1, %0|%0, %1}" - [(set_attr "prefix_0f" "1") - (set_attr "mode" "DI")]) - -(define_insn "popcountdi2" - [(set (match_operand:DI 0 "register_operand" "=r") - (popcount:DI (match_operand:DI 1 "nonimmediate_operand" ""))) - (clobber (reg:CC FLAGS_REG))] - "TARGET_64BIT && TARGET_POPCNT" - "popcnt{q}\t{%1, %0|%0, %1}" - [(set_attr "prefix_rep" "1") - (set_attr "type" "bitmanip") - (set_attr "mode" "DI")]) - -(define_insn "*popcountdi2_cmp" - [(set (reg FLAGS_REG) - (compare - (popcount:DI (match_operand:DI 1 "nonimmediate_operand" "rm")) - (const_int 0))) - (set (match_operand:DI 0 "register_operand" "=r") - (popcount:DI (match_dup 1)))] - "TARGET_64BIT && TARGET_POPCNT && ix86_match_ccmode (insn, CCZmode)" - "popcnt{q}\t{%1, %0|%0, %1}" - [(set_attr "prefix_rep" "1") - (set_attr "type" "bitmanip") - (set_attr "mode" "DI")]) - -(define_expand "clzhi2" - [(parallel - [(set (match_operand:HI 0 "register_operand" "") - (minus:HI (const_int 15) - (clz:HI (match_operand:HI 1 "nonimmediate_operand" "")))) - (clobber (reg:CC FLAGS_REG))]) - (parallel - [(set (match_dup 0) (xor:HI (match_dup 0) (const_int 15))) - (clobber (reg:CC FLAGS_REG))])] - "" -{ - if (TARGET_ABM) - { - emit_insn (gen_clzhi2_abm (operands[0], operands[1])); - DONE; - } -}) - -(define_insn "clzhi2_abm" - [(set (match_operand:HI 0 "register_operand" "=r") - (clz:HI (match_operand:HI 1 "nonimmediate_operand" ""))) - (clobber (reg:CC FLAGS_REG))] - "TARGET_ABM" - "lzcnt{w}\t{%1, %0|%0, %1}" - [(set_attr "prefix_rep" "1") - (set_attr "type" "bitmanip") - (set_attr "mode" "HI")]) - -(define_insn "*bsrhi" - [(set (match_operand:HI 0 "register_operand" "=r") - (minus:HI (const_int 15) - (clz:HI (match_operand:HI 1 "nonimmediate_operand" "rm")))) - (clobber (reg:CC FLAGS_REG))] - "" - "bsr{w}\t{%1, %0|%0, %1}" - [(set_attr "prefix_0f" "1") - (set_attr "mode" "HI")]) - -(define_insn "popcounthi2" - [(set (match_operand:HI 0 "register_operand" "=r") - (popcount:HI (match_operand:HI 1 "nonimmediate_operand" ""))) - (clobber (reg:CC FLAGS_REG))] - "TARGET_POPCNT" - "popcnt{w}\t{%1, %0|%0, %1}" - [(set_attr "prefix_rep" "1") - (set_attr "type" "bitmanip") - (set_attr "mode" "HI")]) - -(define_insn "*popcounthi2_cmp" - [(set (reg FLAGS_REG) - (compare - (popcount:HI (match_operand:HI 1 "nonimmediate_operand" "rm")) - (const_int 0))) - (set (match_operand:HI 0 "register_operand" "=r") - (popcount:HI (match_dup 1)))] - "TARGET_POPCNT && ix86_match_ccmode (insn, CCZmode)" - "popcnt{w}\t{%1, %0|%0, %1}" - [(set_attr "prefix_rep" "1") - (set_attr "type" "bitmanip") - (set_attr "mode" "HI")]) + [(set_attr "prefix_0f" "1")]) ;; Thread-local storage patterns for ELF. ;; @@ -15755,8 +15503,7 @@ "sqrtss\t{%1, %0|%0, %1}" [(set_attr "type" "sse") (set_attr "mode" "SF") - (set_attr "athlon_decode" "*") - (set_attr "amdfam10_decode" "*")]) + (set_attr "athlon_decode" "*")]) (define_insn "*sqrtsf2_i387" [(set (match_operand:SF 0 "register_operand" "=f") @@ -15794,8 +15541,7 @@ "sqrtsd\t{%1, %0|%0, %1}" [(set_attr "type" "sse") (set_attr "mode" "DF") - (set_attr "athlon_decode" "*") - (set_attr "amdfam10_decode" "*")]) + (set_attr "athlon_decode" "*")]) (define_insn "*sqrtdf2_i387" [(set (match_operand:DF 0 "register_operand" "=f") @@ -15824,8 +15570,7 @@ "fsqrt" [(set_attr "type" "fpspc") (set_attr "mode" "XF") - (set_attr "athlon_decode" "direct") - (set_attr "amdfam10_decode" "direct")]) + (set_attr "athlon_decode" "direct")]) (define_insn "*sqrtextendsfxf2_i387" [(set (match_operand:XF 0 "register_operand" "=f") @@ -15845,8 +15590,7 @@ "fsqrt" [(set_attr "type" "fpspc") (set_attr "mode" "XF") - (set_attr "athlon_decode" "direct") - (set_attr "amdfam10_decode" "direct")]) + (set_attr "athlon_decode" "direct")]) (define_insn "fpremxf4" [(set (match_operand:XF 0 "register_operand" "=f") @@ -20647,7 +20391,7 @@ (mult:DI (match_operand:DI 1 "memory_operand" "") (match_operand:DI 2 "immediate_operand" ""))) (clobber (reg:CC FLAGS_REG))])] - "(TARGET_K8 || TARGET_GENERIC64 || TARGET_AMDFAM10) && !optimize_size + "(TARGET_K8 || TARGET_GENERIC64) && !optimize_size && !satisfies_constraint_K (operands[2])" [(set (match_dup 3) (match_dup 1)) (parallel [(set (match_dup 0) (mult:DI (match_dup 3) (match_dup 2))) @@ -20660,7 +20404,7 @@ (mult:SI (match_operand:SI 1 "memory_operand" "") (match_operand:SI 2 "immediate_operand" ""))) (clobber (reg:CC FLAGS_REG))])] - "(TARGET_K8 || TARGET_GENERIC64 || TARGET_AMDFAM10) && !optimize_size + "(TARGET_K8 || TARGET_GENERIC64) && !optimize_size && !satisfies_constraint_K (operands[2])" [(set (match_dup 3) (match_dup 1)) (parallel [(set (match_dup 0) (mult:SI (match_dup 3) (match_dup 2))) @@ -20674,7 +20418,7 @@ (mult:SI (match_operand:SI 1 "memory_operand" "") (match_operand:SI 2 "immediate_operand" "")))) (clobber (reg:CC FLAGS_REG))])] - "(TARGET_K8 || TARGET_GENERIC64 || TARGET_AMDFAM10) && !optimize_size + "(TARGET_K8 || TARGET_GENERIC64) && !optimize_size && !satisfies_constraint_K (operands[2])" [(set (match_dup 3) (match_dup 1)) (parallel [(set (match_dup 0) (zero_extend:DI (mult:SI (match_dup 3) (match_dup 2)))) @@ -20691,7 +20435,7 @@ (match_operand:DI 2 "const_int_operand" ""))) (clobber (reg:CC FLAGS_REG))]) (match_scratch:DI 3 "r")] - "(TARGET_K8 || TARGET_GENERIC64 || TARGET_AMDFAM10) && !optimize_size + "(TARGET_K8 || TARGET_GENERIC64) && !optimize_size && satisfies_constraint_K (operands[2])" [(set (match_dup 3) (match_dup 2)) (parallel [(set (match_dup 0) (mult:DI (match_dup 0) (match_dup 3))) @@ -20707,7 +20451,7 @@ (match_operand:SI 2 "const_int_operand" ""))) (clobber (reg:CC FLAGS_REG))]) (match_scratch:SI 3 "r")] - "(TARGET_K8 || TARGET_GENERIC64 || TARGET_AMDFAM10) && !optimize_size + "(TARGET_K8 || TARGET_GENERIC64) && !optimize_size && satisfies_constraint_K (operands[2])" [(set (match_dup 3) (match_dup 2)) (parallel [(set (match_dup 0) (mult:SI (match_dup 0) (match_dup 3))) @@ -20723,7 +20467,7 @@ (match_operand:HI 2 "immediate_operand" ""))) (clobber (reg:CC FLAGS_REG))]) (match_scratch:HI 3 "r")] - "(TARGET_K8 || TARGET_GENERIC64 || TARGET_AMDFAM10) && !optimize_size" + "(TARGET_K8 || TARGET_GENERIC64) && !optimize_size" [(set (match_dup 3) (match_dup 2)) (parallel [(set (match_dup 0) (mult:HI (match_dup 0) (match_dup 3))) (clobber (reg:CC FLAGS_REG))])] @@ -20902,7 +20646,7 @@ (define_insn "*sibcall_value_1_rex64_v" [(set (match_operand 0 "" "") - (call (mem:QI (reg:DI R11_REG)) + (call (mem:QI (reg:DI 40)) (match_operand:DI 1 "" "")))] "SIBLING_CALL_P (insn) && TARGET_64BIT" "jmp\t*%%r11" @@ -20921,14 +20665,14 @@ (define_expand "sse_prologue_save" [(parallel [(set (match_operand:BLK 0 "" "") - (unspec:BLK [(reg:DI 22) + (unspec:BLK [(reg:DI 21) + (reg:DI 22) (reg:DI 23) (reg:DI 24) (reg:DI 25) (reg:DI 26) (reg:DI 27) - (reg:DI 28) - (reg:DI 29)] UNSPEC_SSE_PROLOGUE_SAVE)) + (reg:DI 28)] UNSPEC_SSE_PROLOGUE_SAVE)) (use (match_operand:DI 1 "register_operand" "")) (use (match_operand:DI 2 "immediate_operand" "")) (use (label_ref:DI (match_operand 3 "" "")))])] @@ -20938,14 +20682,14 @@ (define_insn "*sse_prologue_save_insn" [(set (mem:BLK (plus:DI (match_operand:DI 0 "register_operand" "R") (match_operand:DI 4 "const_int_operand" "n"))) - (unspec:BLK [(reg:DI 22) + (unspec:BLK [(reg:DI 21) + (reg:DI 22) (reg:DI 23) (reg:DI 24) (reg:DI 25) (reg:DI 26) (reg:DI 27) - (reg:DI 28) - (reg:DI 29)] UNSPEC_SSE_PROLOGUE_SAVE)) + (reg:DI 28)] UNSPEC_SSE_PROLOGUE_SAVE)) (use (match_operand:DI 1 "register_operand" "r")) (use (match_operand:DI 2 "const_int_operand" "i")) (use (label_ref:DI (match_operand 3 "" "X")))] diff --git a/contrib/gcc/config/i386/i386.opt b/contrib/gcc/config/i386/i386.opt index fa73e177e7b2..aa249205e248 100644 --- a/contrib/gcc/config/i386/i386.opt +++ b/contrib/gcc/config/i386/i386.opt @@ -1,6 +1,6 @@ ; Options for the IA-32 and AMD64 ports of the compiler. -; Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc. +; Copyright (C) 2005 Free Software Foundation, Inc. ; ; This file is part of GCC. ; @@ -201,22 +201,6 @@ mssse3 Target Report Mask(SSSE3) Support MMX, SSE, SSE2, SSE3 and SSSE3 built-in functions and code generation -msse4a -Target Report Mask(SSE4A) -Support MMX, SSE, SSE2, SSE3 and SSE4A built-in functions and code generation - -mpopcnt -Target Report Mask(POPCNT) -Support code generation of popcount instruction for popcount built-ins -namely __builtin_popcount, __builtin_popcountl and __builtin_popcountll - -mabm -Target Report Mask(ABM) -Support code generation of Advanced Bit Manipulation (ABM) instructions, -which include popcnt and lzcnt instructions, for popcount and clz built-ins -namely __builtin_popcount, __builtin_popcountl, __builtin_popcountll and -__builtin_clz, __builtin_clzl, __builtin_clzll - msseregparm Target RejectNegative Mask(SSEREGPARM) Use SSE register passing conventions for SF and DF mode diff --git a/contrib/gcc/config/i386/mmx.md b/contrib/gcc/config/i386/mmx.md index 6fc9da4acc5d..4f0ab2ca3ee1 100644 --- a/contrib/gcc/config/i386/mmx.md +++ b/contrib/gcc/config/i386/mmx.md @@ -1396,14 +1396,14 @@ (clobber (reg:XF 13)) (clobber (reg:XF 14)) (clobber (reg:XF 15)) + (clobber (reg:DI 29)) (clobber (reg:DI 30)) (clobber (reg:DI 31)) (clobber (reg:DI 32)) (clobber (reg:DI 33)) (clobber (reg:DI 34)) (clobber (reg:DI 35)) - (clobber (reg:DI 36)) - (clobber (reg:DI 37))] + (clobber (reg:DI 36))] "TARGET_MMX" "emms" [(set_attr "type" "mmx") @@ -1419,14 +1419,14 @@ (clobber (reg:XF 13)) (clobber (reg:XF 14)) (clobber (reg:XF 15)) + (clobber (reg:DI 29)) (clobber (reg:DI 30)) (clobber (reg:DI 31)) (clobber (reg:DI 32)) (clobber (reg:DI 33)) (clobber (reg:DI 34)) (clobber (reg:DI 35)) - (clobber (reg:DI 36)) - (clobber (reg:DI 37))] + (clobber (reg:DI 36))] "TARGET_3DNOW" "femms" [(set_attr "type" "mmx") diff --git a/contrib/gcc/config/i386/pmmintrin.h b/contrib/gcc/config/i386/pmmintrin.h index 39d7c170a733..7dbf03043fbc 100644 --- a/contrib/gcc/config/i386/pmmintrin.h +++ b/contrib/gcc/config/i386/pmmintrin.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. +/* Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. This file is part of GCC. @@ -30,11 +30,7 @@ #ifndef _PMMINTRIN_H_INCLUDED #define _PMMINTRIN_H_INCLUDED -#ifndef __SSE3__ -# error "SSE3 instruction set not enabled" -#else - -/* We need definitions from the SSE2 and SSE header files*/ +#ifdef __SSE3__ #include #include diff --git a/contrib/gcc/config/i386/sse.md b/contrib/gcc/config/i386/sse.md index 6ff9f0826473..4e25280ce67e 100644 --- a/contrib/gcc/config/i386/sse.md +++ b/contrib/gcc/config/i386/sse.md @@ -1,5 +1,5 @@ ;; GCC machine description for SSE instructions -;; Copyright (C) 2005, 2006, 2007 +;; Copyright (C) 2005, 2006 ;; Free Software Foundation, Inc. ;; ;; This file is part of GCC. @@ -261,7 +261,7 @@ (define_insn "sse3_lddqu" [(set (match_operand:V16QI 0 "register_operand" "=x") (unspec:V16QI [(match_operand:V16QI 1 "memory_operand" "m")] - UNSPEC_LDDQU))] + UNSPEC_LDQQU))] "TARGET_SSE3" "lddqu\t{%1, %0|%0, %1}" [(set_attr "type" "ssecvt") @@ -920,7 +920,6 @@ "cvtsi2ss\t{%2, %0|%0, %2}" [(set_attr "type" "sseicvt") (set_attr "athlon_decode" "vector,double") - (set_attr "amdfam10_decode" "vector,double") (set_attr "mode" "SF")]) (define_insn "sse_cvtsi2ssq" @@ -934,7 +933,6 @@ "cvtsi2ssq\t{%2, %0|%0, %2}" [(set_attr "type" "sseicvt") (set_attr "athlon_decode" "vector,double") - (set_attr "amdfam10_decode" "vector,double") (set_attr "mode" "SF")]) (define_insn "sse_cvtss2si" @@ -948,7 +946,6 @@ "cvtss2si\t{%1, %0|%0, %1}" [(set_attr "type" "sseicvt") (set_attr "athlon_decode" "double,vector") - (set_attr "amdfam10_decode" "double,double") (set_attr "mode" "SI")]) (define_insn "sse_cvtss2siq" @@ -962,7 +959,6 @@ "cvtss2siq\t{%1, %0|%0, %1}" [(set_attr "type" "sseicvt") (set_attr "athlon_decode" "double,vector") - (set_attr "amdfam10_decode" "double,double") (set_attr "mode" "DI")]) (define_insn "sse_cvttss2si" @@ -975,7 +971,6 @@ "cvttss2si\t{%1, %0|%0, %1}" [(set_attr "type" "sseicvt") (set_attr "athlon_decode" "double,vector") - (set_attr "amdfam10_decode" "double,double") (set_attr "mode" "SI")]) (define_insn "sse_cvttss2siq" @@ -988,7 +983,6 @@ "cvttss2siq\t{%1, %0|%0, %1}" [(set_attr "type" "sseicvt") (set_attr "athlon_decode" "double,vector") - (set_attr "amdfam10_decode" "double,double") (set_attr "mode" "DI")]) (define_insn "sse2_cvtdq2ps" @@ -1858,8 +1852,7 @@ "cvtsi2sd\t{%2, %0|%0, %2}" [(set_attr "type" "sseicvt") (set_attr "mode" "DF") - (set_attr "athlon_decode" "double,direct") - (set_attr "amdfam10_decode" "vector,double")]) + (set_attr "athlon_decode" "double,direct")]) (define_insn "sse2_cvtsi2sdq" [(set (match_operand:V2DF 0 "register_operand" "=x,x") @@ -1872,8 +1865,7 @@ "cvtsi2sdq\t{%2, %0|%0, %2}" [(set_attr "type" "sseicvt") (set_attr "mode" "DF") - (set_attr "athlon_decode" "double,direct") - (set_attr "amdfam10_decode" "vector,double")]) + (set_attr "athlon_decode" "double,direct")]) (define_insn "sse2_cvtsd2si" [(set (match_operand:SI 0 "register_operand" "=r,r") @@ -1886,7 +1878,6 @@ "cvtsd2si\t{%1, %0|%0, %1}" [(set_attr "type" "sseicvt") (set_attr "athlon_decode" "double,vector") - (set_attr "amdfam10_decode" "double,double") (set_attr "mode" "SI")]) (define_insn "sse2_cvtsd2siq" @@ -1900,7 +1891,6 @@ "cvtsd2siq\t{%1, %0|%0, %1}" [(set_attr "type" "sseicvt") (set_attr "athlon_decode" "double,vector") - (set_attr "amdfam10_decode" "double,double") (set_attr "mode" "DI")]) (define_insn "sse2_cvttsd2si" @@ -1913,8 +1903,7 @@ "cvttsd2si\t{%1, %0|%0, %1}" [(set_attr "type" "sseicvt") (set_attr "mode" "SI") - (set_attr "athlon_decode" "double,vector") - (set_attr "amdfam10_decode" "double,double")]) + (set_attr "athlon_decode" "double,vector")]) (define_insn "sse2_cvttsd2siq" [(set (match_operand:DI 0 "register_operand" "=r,r") @@ -1926,8 +1915,7 @@ "cvttsd2siq\t{%1, %0|%0, %1}" [(set_attr "type" "sseicvt") (set_attr "mode" "DI") - (set_attr "athlon_decode" "double,vector") - (set_attr "amdfam10_decode" "double,double")]) + (set_attr "athlon_decode" "double,vector")]) (define_insn "sse2_cvtdq2pd" [(set (match_operand:V2DF 0 "register_operand" "=x") @@ -1958,8 +1946,7 @@ "TARGET_SSE2" "cvtpd2dq\t{%1, %0|%0, %1}" [(set_attr "type" "ssecvt") - (set_attr "mode" "TI") - (set_attr "amdfam10_decode" "double")]) + (set_attr "mode" "TI")]) (define_expand "sse2_cvttpd2dq" [(set (match_operand:V4SI 0 "register_operand" "") @@ -1977,8 +1964,7 @@ "TARGET_SSE2" "cvttpd2dq\t{%1, %0|%0, %1}" [(set_attr "type" "ssecvt") - (set_attr "mode" "TI") - (set_attr "amdfam10_decode" "double")]) + (set_attr "mode" "TI")]) (define_insn "sse2_cvtsd2ss" [(set (match_operand:V4SF 0 "register_operand" "=x,x") @@ -1992,22 +1978,20 @@ "cvtsd2ss\t{%2, %0|%0, %2}" [(set_attr "type" "ssecvt") (set_attr "athlon_decode" "vector,double") - (set_attr "amdfam10_decode" "vector,double") (set_attr "mode" "SF")]) (define_insn "sse2_cvtss2sd" - [(set (match_operand:V2DF 0 "register_operand" "=x,x") + [(set (match_operand:V2DF 0 "register_operand" "=x") (vec_merge:V2DF (float_extend:V2DF (vec_select:V2SF - (match_operand:V4SF 2 "nonimmediate_operand" "x,m") + (match_operand:V4SF 2 "nonimmediate_operand" "xm") (parallel [(const_int 0) (const_int 1)]))) - (match_operand:V2DF 1 "register_operand" "0,0") + (match_operand:V2DF 1 "register_operand" "0") (const_int 1)))] "TARGET_SSE2" "cvtss2sd\t{%2, %0|%0, %2}" [(set_attr "type" "ssecvt") - (set_attr "amdfam10_decode" "vector,double") (set_attr "mode" "DF")]) (define_expand "sse2_cvtpd2ps" @@ -2028,8 +2012,7 @@ "TARGET_SSE2" "cvtpd2ps\t{%1, %0|%0, %1}" [(set_attr "type" "ssecvt") - (set_attr "mode" "V4SF") - (set_attr "amdfam10_decode" "double")]) + (set_attr "mode" "V4SF")]) (define_insn "sse2_cvtps2pd" [(set (match_operand:V2DF 0 "register_operand" "=x") @@ -2040,8 +2023,7 @@ "TARGET_SSE2" "cvtps2pd\t{%1, %0|%0, %1}" [(set_attr "type" "ssecvt") - (set_attr "mode" "V2DF") - (set_attr "amdfam10_decode" "direct")]) + (set_attr "mode" "V2DF")]) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; @@ -4542,92 +4524,3 @@ "pabs\t{%1, %0|%0, %1}"; [(set_attr "type" "sselog1") (set_attr "mode" "DI")]) - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; -;; AMD SSE4A instructions -;; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -(define_insn "sse4a_vmmovntv2df" - [(set (match_operand:DF 0 "memory_operand" "=m") - (unspec:DF [(vec_select:DF - (match_operand:V2DF 1 "register_operand" "x") - (parallel [(const_int 0)]))] - UNSPEC_MOVNT))] - "TARGET_SSE4A" - "movntsd\t{%1, %0|%0, %1}" - [(set_attr "type" "ssemov") - (set_attr "mode" "DF")]) - -(define_insn "sse4a_movntdf" - [(set (match_operand:DF 0 "memory_operand" "=m") - (unspec:DF [(match_operand:DF 1 "register_operand" "x")] - UNSPEC_MOVNT))] - "TARGET_SSE4A" - "movntsd\t{%1, %0|%0, %1}" - [(set_attr "type" "ssemov") - (set_attr "mode" "DF")]) - -(define_insn "sse4a_vmmovntv4sf" - [(set (match_operand:SF 0 "memory_operand" "=m") - (unspec:SF [(vec_select:SF - (match_operand:V4SF 1 "register_operand" "x") - (parallel [(const_int 0)]))] - UNSPEC_MOVNT))] - "TARGET_SSE4A" - "movntss\t{%1, %0|%0, %1}" - [(set_attr "type" "ssemov") - (set_attr "mode" "SF")]) - -(define_insn "sse4a_movntsf" - [(set (match_operand:SF 0 "memory_operand" "=m") - (unspec:SF [(match_operand:SF 1 "register_operand" "x")] - UNSPEC_MOVNT))] - "TARGET_SSE4A" - "movntss\t{%1, %0|%0, %1}" - [(set_attr "type" "ssemov") - (set_attr "mode" "SF")]) - -(define_insn "sse4a_extrqi" - [(set (match_operand:V2DI 0 "register_operand" "=x") - (unspec:V2DI [(match_operand:V2DI 1 "register_operand" "0") - (match_operand 2 "const_int_operand" "") - (match_operand 3 "const_int_operand" "")] - UNSPEC_EXTRQI))] - "TARGET_SSE4A" - "extrq\t{%3, %2, %0|%0, %2, %3}" - [(set_attr "type" "sse") - (set_attr "mode" "TI")]) - -(define_insn "sse4a_extrq" - [(set (match_operand:V2DI 0 "register_operand" "=x") - (unspec:V2DI [(match_operand:V2DI 1 "register_operand" "0") - (match_operand:V16QI 2 "register_operand" "x")] - UNSPEC_EXTRQ))] - "TARGET_SSE4A" - "extrq\t{%2, %0|%0, %2}" - [(set_attr "type" "sse") - (set_attr "mode" "TI")]) - -(define_insn "sse4a_insertqi" - [(set (match_operand:V2DI 0 "register_operand" "=x") - (unspec:V2DI [(match_operand:V2DI 1 "register_operand" "0") - (match_operand:V2DI 2 "register_operand" "x") - (match_operand 3 "const_int_operand" "") - (match_operand 4 "const_int_operand" "")] - UNSPEC_INSERTQI))] - "TARGET_SSE4A" - "insertq\t{%4, %3, %2, %0|%0, %2, %3, %4}" - [(set_attr "type" "sseins") - (set_attr "mode" "TI")]) - -(define_insn "sse4a_insertq" - [(set (match_operand:V2DI 0 "register_operand" "=x") - (unspec:V2DI [(match_operand:V2DI 1 "register_operand" "0") - (match_operand:V2DI 2 "register_operand" "x")] - UNSPEC_INSERTQ))] - "TARGET_SSE4A" - "insertq\t{%2, %0|%0, %2}" - [(set_attr "type" "sseins") - (set_attr "mode" "TI")]) diff --git a/contrib/gcc/config/i386/tmmintrin.h b/contrib/gcc/config/i386/tmmintrin.h index cf9d99d0901b..e1bedc561354 100644 --- a/contrib/gcc/config/i386/tmmintrin.h +++ b/contrib/gcc/config/i386/tmmintrin.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2006, 2007 Free Software Foundation, Inc. +/* Copyright (C) 2006 Free Software Foundation, Inc. This file is part of GCC. @@ -30,11 +30,231 @@ #ifndef _TMMINTRIN_H_INCLUDED #define _TMMINTRIN_H_INCLUDED -#ifndef __SSSE3__ -# error "SSSE3 instruction set not enabled" -#else - -/* We need definitions from the SSE3, SSE2 and SSE header files*/ +#ifdef __SSSE3__ +#include + +static __inline __m128i __attribute__((__always_inline__)) +_mm_hadd_epi16 (__m128i __X, __m128i __Y) +{ + return (__m128i) __builtin_ia32_phaddw128 ((__v8hi)__X, (__v8hi)__Y); +} + +static __inline __m128i __attribute__((__always_inline__)) +_mm_hadd_epi32 (__m128i __X, __m128i __Y) +{ + return (__m128i) __builtin_ia32_phaddd128 ((__v4si)__X, (__v4si)__Y); +} + +static __inline __m128i __attribute__((__always_inline__)) +_mm_hadds_epi16 (__m128i __X, __m128i __Y) +{ + return (__m128i) __builtin_ia32_phaddsw128 ((__v8hi)__X, (__v8hi)__Y); +} + +static __inline __m64 __attribute__((__always_inline__)) +_mm_hadd_pi16 (__m64 __X, __m64 __Y) +{ + return (__m64) __builtin_ia32_phaddw ((__v4hi)__X, (__v4hi)__Y); +} + +static __inline __m64 __attribute__((__always_inline__)) +_mm_hadd_pi32 (__m64 __X, __m64 __Y) +{ + return (__m64) __builtin_ia32_phaddd ((__v2si)__X, (__v2si)__Y); +} + +static __inline __m64 __attribute__((__always_inline__)) +_mm_hadds_pi16 (__m64 __X, __m64 __Y) +{ + return (__m64) __builtin_ia32_phaddsw ((__v4hi)__X, (__v4hi)__Y); +} + +static __inline __m128i __attribute__((__always_inline__)) +_mm_hsub_epi16 (__m128i __X, __m128i __Y) +{ + return (__m128i) __builtin_ia32_phsubw128 ((__v8hi)__X, (__v8hi)__Y); +} + +static __inline __m128i __attribute__((__always_inline__)) +_mm_hsub_epi32 (__m128i __X, __m128i __Y) +{ + return (__m128i) __builtin_ia32_phsubd128 ((__v4si)__X, (__v4si)__Y); +} + +static __inline __m128i __attribute__((__always_inline__)) +_mm_hsubs_epi16 (__m128i __X, __m128i __Y) +{ + return (__m128i) __builtin_ia32_phsubsw128 ((__v8hi)__X, (__v8hi)__Y); +} + +static __inline __m64 __attribute__((__always_inline__)) +_mm_hsub_pi16 (__m64 __X, __m64 __Y) +{ + return (__m64) __builtin_ia32_phsubw ((__v4hi)__X, (__v4hi)__Y); +} + +static __inline __m64 __attribute__((__always_inline__)) +_mm_hsub_pi32 (__m64 __X, __m64 __Y) +{ + return (__m64) __builtin_ia32_phsubd ((__v2si)__X, (__v2si)__Y); +} + +static __inline __m64 __attribute__((__always_inline__)) +_mm_hsubs_pi16 (__m64 __X, __m64 __Y) +{ + return (__m64) __builtin_ia32_phsubsw ((__v4hi)__X, (__v4hi)__Y); +} + +static __inline __m128i __attribute__((__always_inline__)) +_mm_maddubs_epi16 (__m128i __X, __m128i __Y) +{ + return (__m128i) __builtin_ia32_pmaddubsw128 ((__v16qi)__X, (__v16qi)__Y); +} + +static __inline __m64 __attribute__((__always_inline__)) +_mm_maddubs_pi16 (__m64 __X, __m64 __Y) +{ + return (__m64) __builtin_ia32_pmaddubsw ((__v8qi)__X, (__v8qi)__Y); +} + +static __inline __m128i __attribute__((__always_inline__)) +_mm_mulhrs_epi16 (__m128i __X, __m128i __Y) +{ + return (__m128i) __builtin_ia32_pmulhrsw128 ((__v8hi)__X, (__v8hi)__Y); +} + +static __inline __m64 __attribute__((__always_inline__)) +_mm_mulhrs_pi16 (__m64 __X, __m64 __Y) +{ + return (__m64) __builtin_ia32_pmulhrsw ((__v4hi)__X, (__v4hi)__Y); +} + +static __inline __m128i __attribute__((__always_inline__)) +_mm_shuffle_epi8 (__m128i __X, __m128i __Y) +{ + return (__m128i) __builtin_ia32_pshufb128 ((__v16qi)__X, (__v16qi)__Y); +} + +static __inline __m64 __attribute__((__always_inline__)) +_mm_shuffle_pi8 (__m64 __X, __m64 __Y) +{ + return (__m64) __builtin_ia32_pshufb ((__v8qi)__X, (__v8qi)__Y); +} + +static __inline __m128i __attribute__((__always_inline__)) +_mm_sign_epi8 (__m128i __X, __m128i __Y) +{ + return (__m128i) __builtin_ia32_psignb128 ((__v16qi)__X, (__v16qi)__Y); +} + +static __inline __m128i __attribute__((__always_inline__)) +_mm_sign_epi16 (__m128i __X, __m128i __Y) +{ + return (__m128i) __builtin_ia32_psignw128 ((__v8hi)__X, (__v8hi)__Y); +} + +static __inline __m128i __attribute__((__always_inline__)) +_mm_sign_epi32 (__m128i __X, __m128i __Y) +{ + return (__m128i) __builtin_ia32_psignd128 ((__v4si)__X, (__v4si)__Y); +} + +static __inline __m64 __attribute__((__always_inline__)) +_mm_sign_pi8 (__m64 __X, __m64 __Y) +{ + return (__m64) __builtin_ia32_psignb ((__v8qi)__X, (__v8qi)__Y); +} + +static __inline __m64 __attribute__((__always_inline__)) +_mm_sign_pi16 (__m64 __X, __m64 __Y) +{ + return (__m64) __builtin_ia32_psignw ((__v4hi)__X, (__v4hi)__Y); +} + +static __inline __m64 __attribute__((__always_inline__)) +_mm_sign_pi32 (__m64 __X, __m64 __Y) +{ + return (__m64) __builtin_ia32_psignd ((__v2si)__X, (__v2si)__Y); +} + +#define _mm_alignr_epi8(__X, __Y, __N) \ + ((__m128i)__builtin_ia32_palignr128 ((__v2di) __X, (__v2di) __Y, (__N) * 8)) + +#define _mm_alignr_pi8(__X, __Y, __N) \ + ((__m64)__builtin_ia32_palignr ((long long) (__X), (long long) (__Y), (__N) * 8)) + +static __inline __m128i __attribute__((__always_inline__)) +_mm_abs_epi8 (__m128i __X) +{ + return (__m128i) __builtin_ia32_pabsb128 ((__v16qi)__X); +} + +static __inline __m128i __attribute__((__always_inline__)) +_mm_abs_epi16 (__m128i __X) +{ + return (__m128i) __builtin_ia32_pabsw128 ((__v8hi)__X); +} + +static __inline __m128i __attribute__((__always_inline__)) +_mm_abs_epi32 (__m128i __X) +{ + return (__m128i) __builtin_ia32_pabsd128 ((__v4si)__X); +} + +static __inline __m64 __attribute__((__always_inline__)) +_mm_abs_pi8 (__m64 __X) +{ + return (__m64) __builtin_ia32_pabsb ((__v8qi)__X); +} + +static __inline __m64 __attribute__((__always_inline__)) +_mm_abs_pi16 (__m64 __X) +{ + return (__m64) __builtin_ia32_pabsw ((__v4hi)__X); +} + +static __inline __m64 __attribute__((__always_inline__)) +_mm_abs_pi32 (__m64 __X) +{ + return (__m64) __builtin_ia32_pabsd ((__v2si)__X); +} + +#endif /* __SSSE3__ */ + +#endif /* _TMMINTRIN_H_INCLUDED */ +/* Copyright (C) 2006 Free Software Foundation, Inc. + + This file is part of GCC. + + GCC is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + GCC is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with GCC; see the file COPYING. If not, write to + the Free Software Foundation, 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +/* As a special exception, if you include this header file into source + files compiled by GCC, this header file does not by itself cause + the resulting executable to be covered by the GNU General Public + License. This exception does not however invalidate any other + reasons why the executable file might be covered by the GNU General + Public License. */ + +/* Implemented from the specification included in the Intel C++ Compiler + User Guide and Reference, version 9.1. */ + +#ifndef _TMMINTRIN_H_INCLUDED +#define _TMMINTRIN_H_INCLUDED + +#ifdef __SSSE3__ #include static __inline __m128i __attribute__((__always_inline__)) diff --git a/contrib/gcc/doc/extend.texi b/contrib/gcc/doc/extend.texi index d7a1494eebcc..0c8bb7d0926c 100644 --- a/contrib/gcc/doc/extend.texi +++ b/contrib/gcc/doc/extend.texi @@ -7255,23 +7255,6 @@ v4si __builtin_ia32_pabsd128 (v4si) v8hi __builtin_ia32_pabsw128 (v8hi) @end smallexample -The following built-in functions are available when @option{-msse4a} is used. - -@smallexample -void _mm_stream_sd (double*,__m128d); -Generates the @code{movntsd} machine instruction. -void _mm_stream_ss (float*,__m128); -Generates the @code{movntss} machine instruction. -__m128i _mm_extract_si64 (__m128i, __m128i); -Generates the @code{extrq} machine instruction with only SSE register operands. -__m128i _mm_extracti_si64 (__m128i, int, int); -Generates the @code{extrq} machine instruction with SSE register and immediate operands. -__m128i _mm_insert_si64 (__m128i, __m128i); -Generates the @code{insertq} machine instruction with only SSE register operands. -__m128i _mm_inserti_si64 (__m128i, __m128i, int, int); -Generates the @code{insertq} machine instruction with SSE register and immediate operands. -@end smallexample - The following built-in functions are available when @option{-m3dnow} is used. All of them generate the machine instruction that is part of the name. diff --git a/contrib/gcc/doc/invoke.texi b/contrib/gcc/doc/invoke.texi index 0587a9e22428..0c391369dc32 100644 --- a/contrib/gcc/doc/invoke.texi +++ b/contrib/gcc/doc/invoke.texi @@ -513,7 +513,7 @@ in the following sections. -mno-fp-ret-in-387 -msoft-float -msvr3-shlib @gol -mno-wide-multiply -mrtd -malign-double @gol -mpreferred-stack-boundary=@var{num} @gol --mmmx -msse -msse2 -msse3 -mssse3 -msse4a -m3dnow -mpopcnt -mabm @gol +-mmmx -msse -msse2 -msse3 -mssse3 -m3dnow @gol -mthreads -mno-align-stringops -minline-all-stringops @gol -mpush-args -maccumulate-outgoing-args -m128bit-long-double @gol -m96bit-long-double -mregparm=@var{num} -msseregparm @gol @@ -9059,10 +9059,6 @@ instruction set support. @item k8, opteron, athlon64, athlon-fx AMD K8 core based CPUs with x86-64 instruction set support. (This supersets MMX, SSE, SSE2, 3dNOW!, enhanced 3dNOW! and 64-bit instruction set extensions.) -@item amdfam10, barcelona -AMD Family 10h core based CPUs with x86-64 instruction set support. (This -supersets MMX, SSE, SSE2, SSE3, SSE4A, 3dNOW!, enhanced 3dNOW!, ABM and 64-bit -instruction set extensions.) @item k8-sse3, opteron-sse3, athlon64-sse3 Improved versions of k8, opteron and athlon64 with SSE3 instruction set support. @item winchip-c6 @@ -9359,14 +9355,8 @@ preferred alignment to @option{-mpreferred-stack-boundary=2}. @itemx -mno-sse3 @item -mssse3 @itemx -mno-ssse3 -@item -msse4a -@item -mno-sse4a @item -m3dnow @itemx -mno-3dnow -@item -mpopcnt -@itemx -mno-popcnt -@item -mabm -@itemx -mno-abm @opindex mmmx @opindex mno-mmx @opindex msse @@ -9374,7 +9364,7 @@ preferred alignment to @option{-mpreferred-stack-boundary=2}. @opindex m3dnow @opindex mno-3dnow These switches enable or disable the use of instructions in the MMX, -SSE, SSE2, SSE3, SSSE3, SSE4A, ABM or 3DNow! extended instruction sets. +SSE, SSE2, SSE3, SSSE3 or 3DNow! extended instruction sets. These extensions are also available as built-in functions: see @ref{X86 Built-in Functions}, for details of the functions enabled and disabled by these switches. diff --git a/contrib/gcc/fold-const.c b/contrib/gcc/fold-const.c index 1aadd300a9b8..37d99f89d0ef 100644 --- a/contrib/gcc/fold-const.c +++ b/contrib/gcc/fold-const.c @@ -2802,13 +2802,9 @@ operand_equal_p (tree arg0, tree arg1, unsigned int flags) case ARRAY_REF: case ARRAY_RANGE_REF: - /* Operands 2 and 3 may be null. - Compare the array index by value if it is constant first as we - may have different types but same value here. */ + /* Operands 2 and 3 may be null. */ return (OP_SAME (0) - && (tree_int_cst_equal (TREE_OPERAND (arg0, 1), - TREE_OPERAND (arg1, 1)) - || OP_SAME (1)) + && OP_SAME (1) && OP_SAME_WITH_NULL (2) && OP_SAME_WITH_NULL (3)); diff --git a/contrib/gcc/gimplify.c b/contrib/gcc/gimplify.c index 7efae388c92d..80dcd1ac5f2a 100644 --- a/contrib/gcc/gimplify.c +++ b/contrib/gcc/gimplify.c @@ -1600,7 +1600,9 @@ canonicalize_addr_expr (tree *expr_p) /* All checks succeeded. Build a new node to merge the cast. */ *expr_p = build4 (ARRAY_REF, dctype, obj_expr, TYPE_MIN_VALUE (TYPE_DOMAIN (datype)), - NULL_TREE, NULL_TREE); + TYPE_MIN_VALUE (TYPE_DOMAIN (datype)), + size_binop (EXACT_DIV_EXPR, TYPE_SIZE_UNIT (dctype), + size_int (TYPE_ALIGN_UNIT (dctype)))); *expr_p = build1 (ADDR_EXPR, ctype, *expr_p); } diff --git a/contrib/gcc/tree-ssa-ccp.c b/contrib/gcc/tree-ssa-ccp.c index e64d80beb786..6e74f35f2bd9 100644 --- a/contrib/gcc/tree-ssa-ccp.c +++ b/contrib/gcc/tree-ssa-ccp.c @@ -1621,7 +1621,9 @@ maybe_fold_offset_to_array_ref (tree base, tree offset, tree orig_type) if (!integer_zerop (elt_offset)) idx = int_const_binop (PLUS_EXPR, idx, elt_offset, 0); - return build4 (ARRAY_REF, orig_type, base, idx, NULL_TREE, NULL_TREE); + return build4 (ARRAY_REF, orig_type, base, idx, min_idx, + size_int (tree_low_cst (elt_size, 1) + / (TYPE_ALIGN_UNIT (elt_type)))); } diff --git a/contrib/gcc/tree-ssa-pre.c b/contrib/gcc/tree-ssa-pre.c index ba32b3cfed45..9c7b89faaf3f 100644 --- a/contrib/gcc/tree-ssa-pre.c +++ b/contrib/gcc/tree-ssa-pre.c @@ -1076,7 +1076,6 @@ phi_translate (tree expr, value_set_t set, basic_block pred, tree newexpr; tree vh = get_value_handle (expr); bool listchanged = false; - bool invariantarg = false; VEC (tree, gc) *vuses = VALUE_HANDLE_VUSES (vh); VEC (tree, gc) *tvuses; @@ -1135,26 +1134,10 @@ phi_translate (tree expr, value_set_t set, basic_block pred, if (newval != oldval) { listchanged = true; - invariantarg |= is_gimple_min_invariant (newval); TREE_VALUE (newwalker) = get_value_handle (newval); } } } - - /* In case of new invariant args we might try to fold the call - again. */ - if (invariantarg) - { - tree tmp = fold_ternary (CALL_EXPR, TREE_TYPE (expr), - newop0, newarglist, newop2); - if (tmp) - { - STRIP_TYPE_NOPS (tmp); - if (is_gimple_min_invariant (tmp)) - return tmp; - } - } - if (listchanged) vn_lookup_or_add (newarglist, NULL); From 455b486e6b92d5c9a46029304f054c260c60b2ec Mon Sep 17 00:00:00 2001 From: Jung-uk Kim Date: Wed, 13 Jun 2012 20:41:45 +0000 Subject: [PATCH 193/340] Add a convenience macro for the fastcall attribute. MFC after: 2 weeks --- sys/sys/cdefs.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/sys/sys/cdefs.h b/sys/sys/cdefs.h index 80f7b8e2c683..f86a75506239 100644 --- a/sys/sys/cdefs.h +++ b/sys/sys/cdefs.h @@ -293,6 +293,12 @@ #define __nonnull(x) #endif +#if __GNUC_PREREQ__(3, 4) +#define __fastcall __attribute__((__fastcall__)) +#else +#define __fastcall +#endif + #if __GNUC_PREREQ__(4, 1) #define __returns_twice __attribute__((__returns_twice__)) #else From acd7df97cc9b69ff63c0b6ea7bb3d8a4d7b1d299 Mon Sep 17 00:00:00 2001 From: Jung-uk Kim Date: Wed, 13 Jun 2012 21:03:01 +0000 Subject: [PATCH 194/340] - Fix resumectx() prototypes to reflect reality. - For i386, simply jump to resumectx() with PCB in %ecx. - Fix a style(9) nit while I am here. --- sys/amd64/amd64/cpu_switch.S | 2 +- sys/amd64/include/pcb.h | 4 ++-- sys/i386/acpica/acpi_wakecode.S | 6 +++--- sys/i386/i386/swtch.s | 5 +---- sys/i386/include/pcb.h | 2 +- 5 files changed, 8 insertions(+), 11 deletions(-) diff --git a/sys/amd64/amd64/cpu_switch.S b/sys/amd64/amd64/cpu_switch.S index 240c95581008..12542d74853a 100644 --- a/sys/amd64/amd64/cpu_switch.S +++ b/sys/amd64/amd64/cpu_switch.S @@ -394,7 +394,7 @@ ENTRY(savectx) END(savectx) /* - * resumectx(pcb in %rdi, cr3 in %rsi) + * resumectx(pcb, cr3) * Resuming processor state from pcb. */ ENTRY(resumectx) diff --git a/sys/amd64/include/pcb.h b/sys/amd64/include/pcb.h index 619fba5a8a30..35665f12e35c 100644 --- a/sys/amd64/include/pcb.h +++ b/sys/amd64/include/pcb.h @@ -100,7 +100,7 @@ struct pcb { register_t pcb_xsmask; /* fpu context for suspend/resume */ - void * pcb_fpususpend; + void *pcb_fpususpend; struct savefpu *pcb_save; @@ -142,7 +142,7 @@ clear_pcb_flags(struct pcb *pcb, const u_int flags) void makectx(struct trapframe *, struct pcb *); int savectx(struct pcb *) __returns_twice; -void resumectx(struct pcb *); +void resumectx(struct pcb *, register_t); #endif diff --git a/sys/i386/acpica/acpi_wakecode.S b/sys/i386/acpica/acpi_wakecode.S index 5f66ef13dcde..88f32d7c119b 100644 --- a/sys/i386/acpica/acpi_wakecode.S +++ b/sys/i386/acpica/acpi_wakecode.S @@ -142,8 +142,8 @@ wakeup_32: mov %ax, %ds /* Get PCB and return address. */ - movl wakeup_pcb - wakeup_start(%ebx), %esi - movl wakeup_ret - wakeup_start(%ebx), %edi + movl wakeup_pcb - wakeup_start(%ebx), %ecx + movl wakeup_ret - wakeup_start(%ebx), %edx /* Restore CR4 and CR3. */ movl wakeup_cr4 - wakeup_start(%ebx), %eax @@ -166,7 +166,7 @@ wakeup_32: jmp 1f 1: /* Jump to return address. */ - jmp *%edi + jmp *%edx .data diff --git a/sys/i386/i386/swtch.s b/sys/i386/i386/swtch.s index adf554a4f7fb..80aa6c418e68 100644 --- a/sys/i386/i386/swtch.s +++ b/sys/i386/i386/swtch.s @@ -460,13 +460,10 @@ ENTRY(savectx) END(savectx) /* - * resumectx(pcb in %esi) + * resumectx(pcb) __fastcall * Resuming processor state from pcb. */ ENTRY(resumectx) - /* Fetch PCB. */ - movl %esi,%ecx - /* Restore GDT. */ lgdt PCB_GDT(%ecx) diff --git a/sys/i386/include/pcb.h b/sys/i386/include/pcb.h index 108ecfefd447..9cefed17688e 100644 --- a/sys/i386/include/pcb.h +++ b/sys/i386/include/pcb.h @@ -97,7 +97,7 @@ struct trapframe; void makectx(struct trapframe *, struct pcb *); int savectx(struct pcb *) __returns_twice; -void resumectx(struct pcb *); +void resumectx(struct pcb *) __fastcall; #endif #endif /* _I386_PCB_H_ */ From baf946221df657b393d2bf1034544f26eaac13b6 Mon Sep 17 00:00:00 2001 From: Pawel Jakub Dawidek Date: Wed, 13 Jun 2012 21:10:00 +0000 Subject: [PATCH 195/340] There is no need to set td->td_retval[0] to -1 on error. Confirmed by: jhb MFC after: 1 month --- sys/kern/vfs_syscalls.c | 1 - 1 file changed, 1 deletion(-) diff --git a/sys/kern/vfs_syscalls.c b/sys/kern/vfs_syscalls.c index caf50b9925b3..04273e227e62 100644 --- a/sys/kern/vfs_syscalls.c +++ b/sys/kern/vfs_syscalls.c @@ -1250,7 +1250,6 @@ kern_openat(struct thread *td, int fd, char *path, enum uio_seg pathseg, if (indx != -1) fdclose(fdp, fp, indx, td); fdrop(fp, td); - td->td_retval[0] = -1; return (error); } From 85c1550d634a5f0f679d8e0f7e0bfa837e7dda72 Mon Sep 17 00:00:00 2001 From: Pawel Jakub Dawidek Date: Wed, 13 Jun 2012 21:11:58 +0000 Subject: [PATCH 196/340] Style. MFC after: 1 month --- sys/kern/vfs_syscalls.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/sys/kern/vfs_syscalls.c b/sys/kern/vfs_syscalls.c index 04273e227e62..d70e49b82583 100644 --- a/sys/kern/vfs_syscalls.c +++ b/sys/kern/vfs_syscalls.c @@ -1111,13 +1111,14 @@ kern_openat(struct thread *td, int fd, char *path, enum uio_seg pathseg, if (flags & O_EXEC) { if (flags & O_ACCMODE) return (EINVAL); - } else if ((flags & O_ACCMODE) == O_ACCMODE) + } else if ((flags & O_ACCMODE) == O_ACCMODE) { return (EINVAL); - else + } else flags = FFLAGS(flags); + } /* - * allocate the file descriptor, but don't install a descriptor yet + * Allocate the file descriptor, but don't install a descriptor yet. */ error = falloc_noinstall(td, &nfp); if (error) @@ -1141,7 +1142,7 @@ kern_openat(struct thread *td, int fd, char *path, enum uio_seg pathseg, goto success; /* - * handle special fdopen() case. bleh. dupfdopen() is + * Handle special fdopen() case. bleh. dupfdopen() is * responsible for dropping the old contents of ofiles[indx] * if it succeeds. * @@ -1149,9 +1150,9 @@ kern_openat(struct thread *td, int fd, char *path, enum uio_seg pathseg, * understand exactly what would happen, and we don't think * that it ever should. */ - if ((nd.ni_strictrelative == 0) && + if (nd.ni_strictrelative == 0 && (error == ENODEV || error == ENXIO) && - (td->td_dupfd >= 0)) { + td->td_dupfd >= 0) { /* XXX from fdopen */ error_open = error; if ((error = finstall(td, fp, &indx, flags)) != 0) @@ -1206,7 +1207,7 @@ kern_openat(struct thread *td, int fd, char *path, enum uio_seg pathseg, if ((flags & FNONBLOCK) == 0) type |= F_WAIT; if ((error = VOP_ADVLOCK(vp, (caddr_t)fp, F_SETLK, &lf, - type)) != 0) + type)) != 0) goto bad; atomic_set_int(&fp->f_flag, FHASLOCK); } From 81424ab70504f177ca2e2030a924a446a5c00ebc Mon Sep 17 00:00:00 2001 From: Pawel Jakub Dawidek Date: Wed, 13 Jun 2012 21:13:18 +0000 Subject: [PATCH 197/340] Add missing {. MFC after: 1 month --- sys/kern/vfs_syscalls.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/kern/vfs_syscalls.c b/sys/kern/vfs_syscalls.c index d70e49b82583..584564a040c2 100644 --- a/sys/kern/vfs_syscalls.c +++ b/sys/kern/vfs_syscalls.c @@ -1113,7 +1113,7 @@ kern_openat(struct thread *td, int fd, char *path, enum uio_seg pathseg, return (EINVAL); } else if ((flags & O_ACCMODE) == O_ACCMODE) { return (EINVAL); - } else + } else { flags = FFLAGS(flags); } From c64dd3bae150d5d9b921438725c21b9ba91060ed Mon Sep 17 00:00:00 2001 From: Pawel Jakub Dawidek Date: Wed, 13 Jun 2012 21:15:01 +0000 Subject: [PATCH 198/340] Remove duplicated code. MFC after: 1 month --- sys/kern/vfs_syscalls.c | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/sys/kern/vfs_syscalls.c b/sys/kern/vfs_syscalls.c index 584564a040c2..aa887c0761cb 100644 --- a/sys/kern/vfs_syscalls.c +++ b/sys/kern/vfs_syscalls.c @@ -1161,17 +1161,9 @@ kern_openat(struct thread *td, int fd, char *path, enum uio_seg pathseg, flags, error_open)) == 0) goto success; } - /* - * Clean up the descriptor, but only if another thread hadn't - * replaced or closed it. - */ - if (indx != -1) - fdclose(fdp, fp, indx, td); - fdrop(fp, td); - if (error == ERESTART) error = EINTR; - return (error); + goto bad_unlocked; } td->td_dupfd = 0; vfslocked = NDHASGIANT(&nd); From 7f35af01107bff7a70aabae14e05659eee6894c6 Mon Sep 17 00:00:00 2001 From: Pawel Jakub Dawidek Date: Wed, 13 Jun 2012 21:22:35 +0000 Subject: [PATCH 199/340] - Remove nfp variable that is not really needed. - Update comment. - Style nits. MFC after: 1 month --- sys/kern/vfs_syscalls.c | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/sys/kern/vfs_syscalls.c b/sys/kern/vfs_syscalls.c index aa887c0761cb..9598a16d7642 100644 --- a/sys/kern/vfs_syscalls.c +++ b/sys/kern/vfs_syscalls.c @@ -1093,7 +1093,6 @@ kern_openat(struct thread *td, int fd, char *path, enum uio_seg pathseg, struct file *fp; struct vnode *vp; int cmode; - struct file *nfp; int type, indx = -1, error, error_open; struct flock lf; struct nameidata nd; @@ -1120,11 +1119,13 @@ kern_openat(struct thread *td, int fd, char *path, enum uio_seg pathseg, /* * Allocate the file descriptor, but don't install a descriptor yet. */ - error = falloc_noinstall(td, &nfp); + error = falloc_noinstall(td, &fp); if (error) return (error); - /* An extra reference on `nfp' has been held for us by falloc_noinstall(). */ - fp = nfp; + /* + * An extra reference on `fp' has been held for us by + * falloc_noinstall(). + */ /* Set the flags early so the finit in devfs can pick them up. */ fp->f_flag = flags & FMASK; cmode = ((mode &~ fdp->fd_cmask) & ALLPERMS) &~ S_ISTXT; @@ -4480,7 +4481,6 @@ sys_fhopen(td, uap) struct flock lf; struct file *fp; int fmode, error, type; - struct file *nfp; int vfslocked; int indx; @@ -4508,15 +4508,17 @@ sys_fhopen(td, uap) return (error); } - error = falloc_noinstall(td, &nfp); + error = falloc_noinstall(td, &fp); if (error) { vput(vp); VFS_UNLOCK_GIANT(vfslocked); return (error); - } + } - /* An extra reference on `nfp' has been held for us by falloc(). */ - fp = nfp; + /* + * An extra reference on `fp' has been held for us by + * falloc_noinstall(). + */ #ifdef INVARIANTS td->td_dupfd = -1; #endif @@ -4549,7 +4551,7 @@ sys_fhopen(td, uap) if ((fmode & FNONBLOCK) == 0) type |= F_WAIT; if ((error = VOP_ADVLOCK(vp, (caddr_t)fp, F_SETLK, &lf, - type)) != 0) + type)) != 0) goto bad; atomic_set_int(&fp->f_flag, FHASLOCK); } From 3812dcd3dece33af84ab6f189b678ab439d3f5fb Mon Sep 17 00:00:00 2001 From: Pawel Jakub Dawidek Date: Wed, 13 Jun 2012 21:32:35 +0000 Subject: [PATCH 200/340] Allocate descriptor number in dupfdopen() itself instead of depending on the caller using finstall(). This saves us the filedesc lock/unlock cycle, fhold()/fdrop() cycle and closes a race between finstall() and dupfdopen(). MFC after: 1 month --- sys/kern/kern_descrip.c | 34 ++++++++++++++++++---------------- sys/kern/vfs_syscalls.c | 18 +++++++----------- sys/sys/filedesc.h | 4 ++-- 3 files changed, 27 insertions(+), 29 deletions(-) diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c index ef4da6e2f29f..5bad7812c393 100644 --- a/sys/kern/kern_descrip.c +++ b/sys/kern/kern_descrip.c @@ -2588,13 +2588,13 @@ sys_flock(struct thread *td, struct flock_args *uap) * Duplicate the specified descriptor to a free descriptor. */ int -dupfdopen(struct thread *td, struct filedesc *fdp, int indx, int dfd, int mode, int error) +dupfdopen(struct thread *td, struct filedesc *fdp, int dfd, int mode, int openerror, int *indxp) { - struct file *wfp; struct file *fp; + int error, indx; - KASSERT(error == ENODEV || error == ENXIO, - ("unexpected error %d in %s", error, __func__)); + KASSERT(openerror == ENODEV || openerror == ENXIO, + ("unexpected error %d in %s", openerror, __func__)); /* * If the to-be-dup'd fd number is greater than the allowed number @@ -2603,11 +2603,17 @@ dupfdopen(struct thread *td, struct filedesc *fdp, int indx, int dfd, int mode, */ FILEDESC_XLOCK(fdp); if ((unsigned int)dfd >= fdp->fd_nfiles || - (wfp = fdp->fd_ofiles[dfd]) == NULL) { + (fp = fdp->fd_ofiles[dfd]) == NULL) { FILEDESC_XUNLOCK(fdp); return (EBADF); } + error = fdalloc(td, 0, &indx); + if (error != 0) { + FILEDESC_XUNLOCK(fdp); + return (error); + } + /* * There are two cases of interest here. * @@ -2616,26 +2622,26 @@ dupfdopen(struct thread *td, struct filedesc *fdp, int indx, int dfd, int mode, * For ENXIO steal away the file structure from (dfd) and store it in * (indx). (dfd) is effectively closed by this operation. */ - fp = fdp->fd_ofiles[indx]; - switch (error) { + switch (openerror) { case ENODEV: /* * Check that the mode the file is being opened for is a * subset of the mode of the existing descriptor. */ - if (((mode & (FREAD|FWRITE)) | wfp->f_flag) != wfp->f_flag) { + if (((mode & (FREAD|FWRITE)) | fp->f_flag) != fp->f_flag) { + fdunused(fdp, indx); FILEDESC_XUNLOCK(fdp); return (EACCES); } - fdp->fd_ofiles[indx] = wfp; + fdp->fd_ofiles[indx] = fp; fdp->fd_ofileflags[indx] = fdp->fd_ofileflags[dfd]; - fhold(wfp); + fhold(fp); break; case ENXIO: /* * Steal away the file pointer from dfd and stuff it into indx. */ - fdp->fd_ofiles[indx] = wfp; + fdp->fd_ofiles[indx] = fp; fdp->fd_ofiles[dfd] = NULL; fdp->fd_ofileflags[indx] = fdp->fd_ofileflags[dfd]; fdp->fd_ofileflags[dfd] = 0; @@ -2643,11 +2649,7 @@ dupfdopen(struct thread *td, struct filedesc *fdp, int indx, int dfd, int mode, break; } FILEDESC_XUNLOCK(fdp); - /* - * We now own the reference to fp that the ofiles[] array used to own. - * Release it. - */ - fdrop(fp, td); + *indxp = indx; return (0); } diff --git a/sys/kern/vfs_syscalls.c b/sys/kern/vfs_syscalls.c index 9598a16d7642..9d3d4eb57a66 100644 --- a/sys/kern/vfs_syscalls.c +++ b/sys/kern/vfs_syscalls.c @@ -1093,7 +1093,7 @@ kern_openat(struct thread *td, int fd, char *path, enum uio_seg pathseg, struct file *fp; struct vnode *vp; int cmode; - int type, indx = -1, error, error_open; + int type, indx = -1, error; struct flock lf; struct nameidata nd; int vfslocked; @@ -1143,9 +1143,7 @@ kern_openat(struct thread *td, int fd, char *path, enum uio_seg pathseg, goto success; /* - * Handle special fdopen() case. bleh. dupfdopen() is - * responsible for dropping the old contents of ofiles[indx] - * if it succeeds. + * Handle special fdopen() case. bleh. * * Don't do this for relative (capability) lookups; we don't * understand exactly what would happen, and we don't think @@ -1154,14 +1152,12 @@ kern_openat(struct thread *td, int fd, char *path, enum uio_seg pathseg, if (nd.ni_strictrelative == 0 && (error == ENODEV || error == ENXIO) && td->td_dupfd >= 0) { - /* XXX from fdopen */ - error_open = error; - if ((error = finstall(td, fp, &indx, flags)) != 0) - goto bad_unlocked; - if ((error = dupfdopen(td, fdp, indx, td->td_dupfd, - flags, error_open)) == 0) + error = dupfdopen(td, fdp, td->td_dupfd, flags, error, + &indx); + if (error == 0) goto success; } + if (error == ERESTART) error = EINTR; goto bad_unlocked; @@ -4514,11 +4510,11 @@ sys_fhopen(td, uap) VFS_UNLOCK_GIANT(vfslocked); return (error); } - /* * An extra reference on `fp' has been held for us by * falloc_noinstall(). */ + #ifdef INVARIANTS td->td_dupfd = -1; #endif diff --git a/sys/sys/filedesc.h b/sys/sys/filedesc.h index f32165a7fa8b..bf416e91edff 100644 --- a/sys/sys/filedesc.h +++ b/sys/sys/filedesc.h @@ -109,8 +109,8 @@ struct filedesc_to_leader { struct thread; int closef(struct file *fp, struct thread *td); -int dupfdopen(struct thread *td, struct filedesc *fdp, int indx, int dfd, - int mode, int error); +int dupfdopen(struct thread *td, struct filedesc *fdp, int dfd, int mode, + int openerror, int *indxp); int falloc(struct thread *td, struct file **resultfp, int *resultfd, int flags); int falloc_noinstall(struct thread *td, struct file **resultfp); From 7080f124d2a2993dc6aa5b253bdc1dcad6255ced Mon Sep 17 00:00:00 2001 From: Pawel Jakub Dawidek Date: Wed, 13 Jun 2012 21:38:07 +0000 Subject: [PATCH 201/340] Now that dupfdopen() doesn't depend on finstall() being called earlier, indx will never be -1 on error, as none of dupfdopen(), finstall() and kern_capwrap() modifies it on error, but what is more important none of those functions install and leave file at indx descriptor on error. Leave an assert to prove my words. MFC after: 1 month --- sys/kern/vfs_syscalls.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/sys/kern/vfs_syscalls.c b/sys/kern/vfs_syscalls.c index 9d3d4eb57a66..3c719d7f1b01 100644 --- a/sys/kern/vfs_syscalls.c +++ b/sys/kern/vfs_syscalls.c @@ -1237,8 +1237,7 @@ kern_openat(struct thread *td, int fd, char *path, enum uio_seg pathseg, bad: VFS_UNLOCK_GIANT(vfslocked); bad_unlocked: - if (indx != -1) - fdclose(fdp, fp, indx, td); + KASSERT(indx == -1, ("indx=%d, should be -1", indx)); fdrop(fp, td); return (error); } From eb5557858277f186c460d978377f67f19889eff1 Mon Sep 17 00:00:00 2001 From: Jilles Tjoelker Date: Wed, 13 Jun 2012 21:53:40 +0000 Subject: [PATCH 202/340] find(1): Move description of -d option to -depth primary. The nullary -depth primary is standard and the -d option provides little advantage. PR: docs/168885 MFC after: 1 week --- usr.bin/find/find.1 | 60 ++++++++++++++++++++++----------------------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/usr.bin/find/find.1 b/usr.bin/find/find.1 index 5a1085c3a9e4..8e47084396f4 100644 --- a/usr.bin/find/find.1 +++ b/usr.bin/find/find.1 @@ -31,7 +31,7 @@ .\" @(#)find.1 8.7 (Berkeley) 5/9/95 .\" $FreeBSD$ .\" -.Dd May 6, 2012 +.Dd June 13, 2012 .Dt FIND 1 .Os .Sh NAME @@ -126,36 +126,15 @@ as an effective alternative. .It Fl d Cause .Nm -to perform a depth-first traversal, i.e., directories -are visited in post-order and all entries in a directory will be acted -on before the directory itself. -By default, -.Nm -visits directories in pre-order, i.e., before their contents. -Note, the default is -.Em not -a breadth-first traversal. +to perform a depth-first traversal. .Pp -This option is the BSD-specific equivalent of the +This option is a BSD-specific equivalent of the .Ic -depth -primary of +primary specified by .St -p1003.1-2001 . -The -.Fl d -option -can be useful when -.Nm -is used with -.Xr cpio 1 -to process files that are contained in directories with unusual permissions. -It ensures that you have write permission while you are placing files in a -directory, then sets the directory's permissions as the last thing. -.It Fl f -Specify a file hierarchy for -.Nm -to traverse. -File hierarchies may also be specified as the operands immediately -following the options. +Refer to its description under +.Sx PRIMARIES +for more information. .It Fl s Cause .Nm @@ -327,8 +306,29 @@ Following symlinks is incompatible with this option. Always true; same as the non-portable .Fl d -option. Refer to the primary description of -.Ic -depth for full information. +option. +Cause +.Nm +to perform a depth-first traversal, i.e., directories +are visited in post-order and all entries in a directory will be acted +on before the directory itself. +By default, +.Nm +visits directories in pre-order, i.e., before their contents. +Note, the default is +.Em not +a breadth-first traversal. +.Pp +The +.Ic -depth +primary +can be useful when +.Nm +is used with +.Xr cpio 1 +to process files that are contained in directories with unusual permissions. +It ensures that you have write permission while you are placing files in a +directory, then sets the directory's permissions as the last thing. .It Ic -depth Ar n True if the depth of the file relative to the starting point of the traversal is From 620216725a3772c20d092e0eacbfd84b7221b838 Mon Sep 17 00:00:00 2001 From: Pawel Jakub Dawidek Date: Wed, 13 Jun 2012 22:12:10 +0000 Subject: [PATCH 203/340] When checking if file descriptor number is valid, explicitely check for 'fd' being less than 0 instead of using cast-to-unsigned hack. Today's commit was brought to you by the letters 'B', 'D' and 'E' :) --- sys/kern/kern_descrip.c | 14 +++++++------- sys/kern/uipc_usrreq.c | 2 +- sys/netsmb/smb_dev.c | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c index 5bad7812c393..419705965fd3 100644 --- a/sys/kern/kern_descrip.c +++ b/sys/kern/kern_descrip.c @@ -243,7 +243,7 @@ fd_last_used(struct filedesc *fdp, int size) static int fdisused(struct filedesc *fdp, int fd) { - KASSERT((unsigned int)fd < fdp->fd_nfiles, + KASSERT(fd >= 0 && fd < fdp->fd_nfiles, ("file descriptor %d out of range (0, %d)", fd, fdp->fd_nfiles)); return ((fdp->fd_map[NDSLOT(fd)] & NDBIT(fd)) != 0); } @@ -433,7 +433,7 @@ fdtofp(int fd, struct filedesc *fdp) FILEDESC_LOCK_ASSERT(fdp); - if ((unsigned)fd >= fdp->fd_nfiles) + if (fd < 0 || fd >= fdp->fd_nfiles) return (NULL); return (fdp->fd_ofiles[fd]); @@ -677,7 +677,7 @@ kern_fcntl(struct thread *td, int fd, int cmd, intptr_t arg) vfslocked = 0; /* Check for race with close */ FILEDESC_SLOCK(fdp); - if ((unsigned) fd >= fdp->fd_nfiles || + if (fd < 0 || fd >= fdp->fd_nfiles || fp != fdp->fd_ofiles[fd]) { FILEDESC_SUNLOCK(fdp); flp->l_whence = SEEK_SET; @@ -1197,7 +1197,7 @@ kern_close(td, fd) AUDIT_SYSCLOSE(td, fd); FILEDESC_XLOCK(fdp); - if ((unsigned)fd >= fdp->fd_nfiles || + if (fd < 0 || fd >= fdp->fd_nfiles || (fp = fdp->fd_ofiles[fd]) == NULL) { FILEDESC_XUNLOCK(fdp); return (EBADF); @@ -1500,7 +1500,7 @@ fdalloc(struct thread *td, int minfd, int *result) * Perform some sanity checks, then mark the file descriptor as * used and return it to the caller. */ - KASSERT((unsigned int)fd < min(maxfd, fdp->fd_nfiles), + KASSERT(fd >= 0 && fd < min(maxfd, fdp->fd_nfiles), ("invalid descriptor %d", fd)); KASSERT(!fdisused(fdp, fd), ("fd_first_free() returned non-free descriptor")); @@ -2213,7 +2213,7 @@ fget_unlocked(struct filedesc *fdp, int fd) struct file *fp; u_int count; - if ((unsigned int)fd >= fdp->fd_nfiles) + if (fd < 0 || fd >= fdp->fd_nfiles) return (NULL); /* * Fetch the descriptor locklessly. We avoid fdrop() races by @@ -2602,7 +2602,7 @@ dupfdopen(struct thread *td, struct filedesc *fdp, int dfd, int mode, int opener * closed, then reject. */ FILEDESC_XLOCK(fdp); - if ((unsigned int)dfd >= fdp->fd_nfiles || + if (dfd < 0 || dfd >= fdp->fd_nfiles || (fp = fdp->fd_ofiles[dfd]) == NULL) { FILEDESC_XUNLOCK(fdp); return (EBADF); diff --git a/sys/kern/uipc_usrreq.c b/sys/kern/uipc_usrreq.c index 72cc483da267..504d5810b9a2 100644 --- a/sys/kern/uipc_usrreq.c +++ b/sys/kern/uipc_usrreq.c @@ -1872,7 +1872,7 @@ unp_internalize(struct mbuf **controlp, struct thread *td) FILEDESC_SLOCK(fdescp); for (i = 0; i < oldfds; i++) { fd = *fdp++; - if ((unsigned)fd >= fdescp->fd_nfiles || + if (fd < 0 || fd >= fdescp->fd_nfiles || fdescp->fd_ofiles[fd] == NULL) { FILEDESC_SUNLOCK(fdescp); error = EBADF; diff --git a/sys/netsmb/smb_dev.c b/sys/netsmb/smb_dev.c index 6867804f57d9..86b27533f213 100644 --- a/sys/netsmb/smb_dev.c +++ b/sys/netsmb/smb_dev.c @@ -375,7 +375,7 @@ nsmb_getfp(struct filedesc* fdp, int fd, int flag) struct file* fp; FILEDESC_SLOCK(fdp); - if (((u_int)fd) >= fdp->fd_nfiles || + if (fd < 0 || fd >= fdp->fd_nfiles || (fp = fdp->fd_ofiles[fd]) == NULL || (fp->f_flag & flag) == 0) { FILEDESC_SUNLOCK(fdp); From 6ad799103dbb4076a1dc3c4236f85d89d39abe3a Mon Sep 17 00:00:00 2001 From: Jung-uk Kim Date: Wed, 13 Jun 2012 22:53:56 +0000 Subject: [PATCH 204/340] - Remove unused code for CR3 and CR4. - Fix few style(9) nits while I am here. --- sys/amd64/acpica/acpi_wakecode.S | 5 ----- sys/amd64/amd64/cpu_switch.S | 5 +++-- sys/amd64/amd64/mp_machdep.c | 3 --- sys/amd64/include/pcb.h | 2 +- sys/x86/acpica/acpi_wakeup.c | 23 +++++++++++------------ 5 files changed, 15 insertions(+), 23 deletions(-) diff --git a/sys/amd64/acpica/acpi_wakecode.S b/sys/amd64/acpica/acpi_wakecode.S index a87732819226..c4b0dcdfd502 100644 --- a/sys/amd64/acpica/acpi_wakecode.S +++ b/sys/amd64/acpica/acpi_wakecode.S @@ -220,7 +220,6 @@ wakeup_64: mov %ax, %ds /* Restore arguments. */ - movq wakeup_cr3 - wakeup_start(%rbx), %rsi movq wakeup_pcb - wakeup_start(%rbx), %rdi movq wakeup_ret - wakeup_start(%rbx), %rax @@ -273,10 +272,6 @@ bootgdtdesc: .long bootgdt - wakeup_start /* Offset plus %ds << 4 */ ALIGN_DATA -wakeup_cr4: /* not used */ - .quad 0 -wakeup_cr3: - .quad 0 wakeup_pcb: .quad 0 wakeup_ret: diff --git a/sys/amd64/amd64/cpu_switch.S b/sys/amd64/amd64/cpu_switch.S index 12542d74853a..dea3cbe7595a 100644 --- a/sys/amd64/amd64/cpu_switch.S +++ b/sys/amd64/amd64/cpu_switch.S @@ -394,12 +394,13 @@ ENTRY(savectx) END(savectx) /* - * resumectx(pcb, cr3) + * resumectx(pcb) * Resuming processor state from pcb. */ ENTRY(resumectx) /* Switch to KPML4phys. */ - movq %rsi,%cr3 + movq KPML4phys,%rax + movq %rax,%cr3 /* Force kernel segment registers. */ movl $KDSEL,%eax diff --git a/sys/amd64/amd64/mp_machdep.c b/sys/amd64/amd64/mp_machdep.c index 2fbd9a4098d7..aa8d2179f6a2 100644 --- a/sys/amd64/amd64/mp_machdep.c +++ b/sys/amd64/amd64/mp_machdep.c @@ -1429,9 +1429,6 @@ cpususpend_handler(void) CPU_SET_ATOMIC(cpu, &suspended_cpus); } else { pmap_init_pat(); -#if 0 - load_cr3(susppcbs[cpu]->pcb_cr3); -#endif initializecpu(); PCPU_SET(switchtime, 0); PCPU_SET(switchticks, ticks); diff --git a/sys/amd64/include/pcb.h b/sys/amd64/include/pcb.h index 35665f12e35c..22cbbe2a2905 100644 --- a/sys/amd64/include/pcb.h +++ b/sys/amd64/include/pcb.h @@ -142,7 +142,7 @@ clear_pcb_flags(struct pcb *pcb, const u_int flags) void makectx(struct trapframe *, struct pcb *); int savectx(struct pcb *) __returns_twice; -void resumectx(struct pcb *, register_t); +void resumectx(struct pcb *); #endif diff --git a/sys/x86/acpica/acpi_wakeup.c b/sys/x86/acpica/acpi_wakeup.c index f01a680122f5..862357944544 100644 --- a/sys/x86/acpica/acpi_wakeup.c +++ b/sys/x86/acpica/acpi_wakeup.c @@ -89,9 +89,11 @@ static void acpi_wakeup_cpus(struct acpi_softc *); #define ACPI_PAGETABLES 0 #endif -#define WAKECODE_VADDR(sc) ((sc)->acpi_wakeaddr + (ACPI_PAGETABLES * PAGE_SIZE)) -#define WAKECODE_PADDR(sc) ((sc)->acpi_wakephys + (ACPI_PAGETABLES * PAGE_SIZE)) -#define WAKECODE_FIXUP(offset, type, val) do { \ +#define WAKECODE_VADDR(sc) \ + ((sc)->acpi_wakeaddr + (ACPI_PAGETABLES * PAGE_SIZE)) +#define WAKECODE_PADDR(sc) \ + ((sc)->acpi_wakephys + (ACPI_PAGETABLES * PAGE_SIZE)) +#define WAKECODE_FIXUP(offset, type, val) do { \ type *addr; \ addr = (type *)(WAKECODE_VADDR(sc) + offset); \ *addr = val; \ @@ -210,7 +212,9 @@ acpi_sleep_machdep(struct acpi_softc *sc, int state) WAKECODE_FIXUP(resume_beep, uint8_t, (acpi_resume_beep != 0)); WAKECODE_FIXUP(reset_video, uint8_t, (acpi_reset_video != 0)); +#ifndef __amd64__ WAKECODE_FIXUP(wakeup_cr4, register_t, susppcbs[0]->pcb_cr4); +#endif WAKECODE_FIXUP(wakeup_pcb, struct pcb *, susppcbs[0]); WAKECODE_FIXUP(wakeup_gdt, uint16_t, susppcbs[0]->pcb_gdt.rd_limit); @@ -248,9 +252,6 @@ acpi_wakeup_machdep(struct acpi_softc *sc, int state, int sleep_result, /* Wakeup MD procedures in interrupt disabled context */ if (sleep_result == 1) { pmap_init_pat(); -#if 0 - load_cr3(susppcbs[0]->pcb_cr3); -#endif initializecpu(); PCPU_SET(switchtime, 0); PCPU_SET(switchticks, ticks); @@ -300,7 +301,8 @@ acpi_alloc_wakeup_handler(void) if (EVENTHANDLER_REGISTER(power_resume, acpi_stop_beep, NULL, EVENTHANDLER_PRI_LAST) == NULL) { printf("%s: can't register event handler\n", __func__); - contigfree(wakeaddr, (ACPI_PAGETABLES + 1) * PAGE_SIZE, M_DEVBUF); + contigfree(wakeaddr, (ACPI_PAGETABLES + 1) * PAGE_SIZE, + M_DEVBUF); return (NULL); } susppcbs = malloc(mp_ncpus * sizeof(*susppcbs), M_DEVBUF, M_WAITOK); @@ -348,17 +350,14 @@ acpi_install_wakeup_handler(struct acpi_softc *sc) /* Save pointers to some global data. */ WAKECODE_FIXUP(wakeup_ret, void *, resumectx); -#ifdef __amd64__ - WAKECODE_FIXUP(wakeup_cr3, uint64_t, KPML4phys); -#else +#ifndef __amd64__ #ifdef PAE WAKECODE_FIXUP(wakeup_cr3, register_t, vtophys(kernel_pmap->pm_pdpt)); #else WAKECODE_FIXUP(wakeup_cr3, register_t, vtophys(kernel_pmap->pm_pdir)); #endif -#endif -#ifdef __amd64__ +#else /* Build temporary page tables below realmode code. */ pt4 = wakeaddr; pt3 = pt4 + (PAGE_SIZE) / sizeof(uint64_t); From 23ced6c117e0ab98ace444f4392749f0bdfc0b03 Mon Sep 17 00:00:00 2001 From: Adrian Chadd Date: Thu, 14 Jun 2012 00:51:53 +0000 Subject: [PATCH 205/340] Implement a global (all non-mgmt traffic) TX ath_buf limitation when ath_start() is called. This (defaults to 10 frames) gives for a little headway in the TX ath_buf allocation, so buffer cloning is still possible. This requires a lot omre experimenting and tuning. It also doesn't stop a node/TID from consuming all of the available ath_buf's, especially when the node is going through high packet loss or only talking at a low TX rate. It also doesn't stop a paused TID from taking all of the ath_bufs. I'll look at fixing that up in subsequent commits. PR: kern/168170 --- sys/dev/ath/if_ath.c | 51 ++++++++++++++++++++++++++++++++++--- sys/dev/ath/if_ath_sysctl.c | 7 +++-- sys/dev/ath/if_athvar.h | 1 + 3 files changed, 52 insertions(+), 7 deletions(-) diff --git a/sys/dev/ath/if_ath.c b/sys/dev/ath/if_ath.c index 004494974046..dc7b3528c26d 100644 --- a/sys/dev/ath/if_ath.c +++ b/sys/dev/ath/if_ath.c @@ -2239,8 +2239,22 @@ _ath_getbuf_locked(struct ath_softc *sc, ath_buf_type_t btype) if (bf != NULL && (bf->bf_flags & ATH_BUF_BUSY) == 0) { if (btype == ATH_BUFTYPE_MGMT) TAILQ_REMOVE(&sc->sc_txbuf_mgmt, bf, bf_list); - else + else { TAILQ_REMOVE(&sc->sc_txbuf, bf, bf_list); + sc->sc_txbuf_cnt--; + + /* + * This shuldn't happen; however just to be + * safe print a warning and fudge the txbuf + * count. + */ + if (sc->sc_txbuf_cnt < 0) { + device_printf(sc->sc_dev, + "%s: sc_txbuf_cnt < 0?\n", + __func__); + sc->sc_txbuf_cnt = 0; + } + } } else bf = NULL; @@ -2367,6 +2381,7 @@ ath_start(struct ifnet *ifp) "%s: sc_inreset_cnt > 0; bailing\n", __func__); ATH_PCU_UNLOCK(sc); IF_LOCK(&ifp->if_snd); + sc->sc_stats.ast_tx_qstop++; ifp->if_drv_flags |= IFF_DRV_OACTIVE; IF_UNLOCK(&ifp->if_snd); return; @@ -2375,6 +2390,17 @@ ath_start(struct ifnet *ifp) ATH_PCU_UNLOCK(sc); for (;;) { + ATH_TXBUF_LOCK(sc); + if (sc->sc_txbuf_cnt <= sc->sc_txq_data_minfree) { + /* XXX increment counter? */ + ATH_TXBUF_UNLOCK(sc); + IF_LOCK(&ifp->if_snd); + ifp->if_drv_flags |= IFF_DRV_OACTIVE; + IF_UNLOCK(&ifp->if_snd); + break; + } + ATH_TXBUF_UNLOCK(sc); + /* * Grab a TX buffer and associated resources. */ @@ -2883,6 +2909,7 @@ ath_desc_alloc(struct ath_softc *sc) ath_descdma_cleanup(sc, &sc->sc_rxdma, &sc->sc_rxbuf); return error; } + sc->sc_txbuf_cnt = ath_txbuf; error = ath_descdma_setup(sc, &sc->sc_txdma_mgmt, &sc->sc_txbuf_mgmt, "tx_mgmt", ath_txbuf_mgmt, ATH_TXDESC); @@ -3686,8 +3713,17 @@ ath_returnbuf_tail(struct ath_softc *sc, struct ath_buf *bf) if (bf->bf_flags & ATH_BUF_MGMT) TAILQ_INSERT_TAIL(&sc->sc_txbuf_mgmt, bf, bf_list); - else + else { TAILQ_INSERT_TAIL(&sc->sc_txbuf, bf, bf_list); + sc->sc_txbuf_cnt++; + if (sc->sc_txbuf_cnt > ath_txbuf) { + device_printf(sc->sc_dev, + "%s: sc_txbuf_cnt > %d?\n", + __func__, + ath_txbuf); + sc->sc_txbuf_cnt = ath_txbuf; + } + } } void @@ -3698,8 +3734,17 @@ ath_returnbuf_head(struct ath_softc *sc, struct ath_buf *bf) if (bf->bf_flags & ATH_BUF_MGMT) TAILQ_INSERT_HEAD(&sc->sc_txbuf_mgmt, bf, bf_list); - else + else { TAILQ_INSERT_HEAD(&sc->sc_txbuf, bf, bf_list); + sc->sc_txbuf_cnt++; + if (sc->sc_txbuf_cnt > ATH_TXBUF) { + device_printf(sc->sc_dev, + "%s: sc_txbuf_cnt > %d?\n", + __func__, + ATH_TXBUF); + sc->sc_txbuf_cnt = ATH_TXBUF; + } + } } /* diff --git a/sys/dev/ath/if_ath_sysctl.c b/sys/dev/ath/if_ath_sysctl.c index 6060abb3ca49..ff75888e047d 100644 --- a/sys/dev/ath/if_ath_sysctl.c +++ b/sys/dev/ath/if_ath_sysctl.c @@ -374,8 +374,8 @@ ath_sysctl_txagg(SYSCTL_HANDLER_ARGS) t++; } ATH_TXBUF_UNLOCK(sc); - printf("Total TX buffers: %d; Total TX buffers busy: %d\n", - t, i); + printf("Total TX buffers: %d; Total TX buffers busy: %d (%d)\n", + t, i, sc->sc_txbuf_cnt); i = t = 0; ATH_TXBUF_LOCK(sc); @@ -620,12 +620,11 @@ ath_sysctlattach(struct ath_softc *sc) "tid_hwq_hi", CTLFLAG_RW, &sc->sc_tid_hwq_hi, 0, ""); -#if 0 SYSCTL_ADD_INT(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, "txq_data_minfree", CTLFLAG_RW, &sc->sc_txq_data_minfree, 0, "Minimum free buffers before adding a data frame" " to the TX queue"); -#endif + SYSCTL_ADD_INT(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, "txq_mcastq_maxdepth", CTLFLAG_RW, &sc->sc_txq_mcastq_maxdepth, 0, diff --git a/sys/dev/ath/if_athvar.h b/sys/dev/ath/if_athvar.h index 407e99731b90..d58c83fc3a5f 100644 --- a/sys/dev/ath/if_athvar.h +++ b/sys/dev/ath/if_athvar.h @@ -501,6 +501,7 @@ struct ath_softc { struct ath_descdma sc_txdma; /* TX descriptors */ ath_bufhead sc_txbuf; /* transmit buffer */ + int sc_txbuf_cnt; /* how many buffers avail */ struct ath_descdma sc_txdma_mgmt; /* mgmt TX descriptors */ ath_bufhead sc_txbuf_mgmt; /* mgmt transmit buffer */ struct mtx sc_txbuflock; /* txbuf lock */ From ed1589b9b7dff829716a19cdf95ee36d9d49dbe9 Mon Sep 17 00:00:00 2001 From: Tim Kientzle Date: Thu, 14 Jun 2012 03:27:01 +0000 Subject: [PATCH 206/340] __flt_rounds is a public symbol (expands from the FLT_ROUNDS macro), so include it in the public namespace on arm just as with other architectures. This corrects r236816. Submitted by: Jan Sieka MFC after: 1 week --- lib/libc/arm/Symbol.map | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/libc/arm/Symbol.map b/lib/libc/arm/Symbol.map index e0116d7e8513..61ad2850dbde 100644 --- a/lib/libc/arm/Symbol.map +++ b/lib/libc/arm/Symbol.map @@ -31,6 +31,7 @@ FBSD_1.0 { brk; cerror; /* XXX - Should this be .cerror (see sys/cerror.S)? */ sbrk; + __flt_rounds; }; FBSDprivate_1.0 { @@ -70,7 +71,6 @@ FBSDprivate_1.0 { __divdf3; __floatsisf; __floatsidf; - __flt_rounds; __fixsfsi; __fixdfsi; __fixunssfsi; From d39655d7a4895827b0c5ce4b1f78ef3bc7df9f42 Mon Sep 17 00:00:00 2001 From: Warner Losh Date: Thu, 14 Jun 2012 04:00:30 +0000 Subject: [PATCH 207/340] Modify all the arm platform files to call parse_boot_param passing in the boot parameters from initarm first thing. parse_boot_param parses the boot arguments and converts them to the /boot/loader metadata the rest of the kernel uses. parse_boot_param is a weak alias to fake_preload_metadata, which all the platforms use now, but may become more extensive in the future. Since it is a weak symbol, specific boards may define their own parse_boot_param to interface to custom boot loaders. Reviewed by: cognet@, Ian Lapore --- sys/arm/arm/machdep.c | 19 ++++++++++++++++++- sys/arm/at91/at91_machdep.c | 2 +- sys/arm/econa/econa_machdep.c | 3 +-- sys/arm/include/machdep.h | 5 ++++- sys/arm/mv/mv_machdep.c | 4 ++-- sys/arm/s3c2xx0/s3c24x0_machdep.c | 5 ++--- sys/arm/sa11x0/assabet_machdep.c | 4 ++-- sys/arm/xscale/i80321/ep80219_machdep.c | 2 +- sys/arm/xscale/i80321/iq31244_machdep.c | 2 +- sys/arm/xscale/i8134x/crb_machdep.c | 2 +- sys/arm/xscale/ixp425/avila_machdep.c | 2 +- 11 files changed, 34 insertions(+), 16 deletions(-) diff --git a/sys/arm/arm/machdep.c b/sys/arm/arm/machdep.c index 7f5cdfecec21..7ac21a42260b 100644 --- a/sys/arm/arm/machdep.c +++ b/sys/arm/arm/machdep.c @@ -666,7 +666,7 @@ makectx(struct trapframe *tf, struct pcb *pcb) * Fake up a boot descriptor table */ vm_offset_t -fake_preload_metadata(void) +fake_preload_metadata(struct arm_boot_params *abp __unused) { #ifdef DDB vm_offset_t zstart = 0, zend = 0; @@ -712,6 +712,23 @@ fake_preload_metadata(void) return (lastaddr); } +/* + * Stub version of the boot parameter parsing routine. We are + * called early in initarm, before even VM has been initialized. + * This routine needs to preserve any data that the boot loader + * has passed in before the kernel starts to grow past the end + * of the BSS, traditionally the place boot-loaders put this data. + * + * Since this is called so early, things that depend on the vm system + * being setup (including access to some SoC's serial ports), about + * all that can be done in this routine is to copy the arguments. + * + * This is the default boot parameter parsing routine. Individual + * kernels/boards can override this weak function with one of their + * own. We just fake metadata... + */ +__weak_reference(fake_preload_metadata, parse_boot_param); + /* * Initialize proc0 */ diff --git a/sys/arm/at91/at91_machdep.c b/sys/arm/at91/at91_machdep.c index 6b3f56e14fc9..ba3d7cbd9d1d 100644 --- a/sys/arm/at91/at91_machdep.c +++ b/sys/arm/at91/at91_machdep.c @@ -392,8 +392,8 @@ initarm(struct arm_boot_params *abp) uint32_t memsize; vm_offset_t lastaddr; + lastaddr = parse_boot_param(abp); set_cpufuncs(); - lastaddr = fake_preload_metadata(); pcpu_init(pcpup, 0, sizeof(struct pcpu)); PCPU_SET(curthread, &thread0); diff --git a/sys/arm/econa/econa_machdep.c b/sys/arm/econa/econa_machdep.c index 9b7042f5f4b5..eec5a2359dfd 100644 --- a/sys/arm/econa/econa_machdep.c +++ b/sys/arm/econa/econa_machdep.c @@ -194,9 +194,8 @@ initarm(struct arm_boot_params *abp) int mem_info; boothowto = RB_VERBOSE; - + lastaddr = parse_boot_param(abp); set_cpufuncs(); - lastaddr = fake_preload_metadata(); pcpu_init(pcpup, 0, sizeof(struct pcpu)); PCPU_SET(curthread, &thread0); diff --git a/sys/arm/include/machdep.h b/sys/arm/include/machdep.h index b403d9468369..192c35dae422 100644 --- a/sys/arm/include/machdep.h +++ b/sys/arm/include/machdep.h @@ -6,11 +6,14 @@ /* misc prototypes used by the many arm machdeps */ void arm_lock_cache_line(vm_offset_t); -vm_offset_t fake_preload_metadata(void); void init_proc0(vm_offset_t kstack); void halt(void); void data_abort_handler(trapframe_t *); void prefetch_abort_handler(trapframe_t *); void undefinedinstruction_bounce(trapframe_t *); +struct arm_boot_params; +vm_offset_t fake_preload_metadata(struct arm_boot_params *); +vm_offset_t parse_boot_param(struct arm_boot_params *); + #endif /* !_MACHINE_MACHDEP_H_ */ diff --git a/sys/arm/mv/mv_machdep.c b/sys/arm/mv/mv_machdep.c index 76ab99e21f9a..cf055a245078 100644 --- a/sys/arm/mv/mv_machdep.c +++ b/sys/arm/mv/mv_machdep.c @@ -331,7 +331,7 @@ initarm(struct arm_boot_params *abp) */ mdp = (void *)((uint32_t)mdp & ~PAGE_MASK); - /* Parse metadata and fetch parameters */ + /* Parse metadata and fetch parameters (move to common machdep.c?) */ if (mdp != NULL) { preload_metadata = mdp; kmdp = preload_search_by_type("elf kernel"); @@ -350,7 +350,7 @@ initarm(struct arm_boot_params *abp) preload_addr_relocate = KERNVIRTADDR - KERNPHYSADDR; } else { /* Fall back to hardcoded metadata. */ - lastaddr = fake_preload_metadata(); + lastaddr = fake_preload_metadata(abp); } #if defined(FDT_DTB_STATIC) diff --git a/sys/arm/s3c2xx0/s3c24x0_machdep.c b/sys/arm/s3c2xx0/s3c24x0_machdep.c index 6879581418bc..d183ff9eec8a 100644 --- a/sys/arm/s3c2xx0/s3c24x0_machdep.c +++ b/sys/arm/s3c2xx0/s3c24x0_machdep.c @@ -244,10 +244,9 @@ initarm(struct arm_boot_params *abp) int i; uint32_t memsize; + boothowto = 0; /* Likely not needed */ + lastaddr = parse_boot_param(abp); i = 0; - - boothowto = 0; - set_cpufuncs(); cpufuncs.cf_sleep = s3c24x0_sleep; lastaddr = fake_preload_metadata(); diff --git a/sys/arm/sa11x0/assabet_machdep.c b/sys/arm/sa11x0/assabet_machdep.c index 39fbadcf0539..9bc80d565f49 100644 --- a/sys/arm/sa11x0/assabet_machdep.c +++ b/sys/arm/sa11x0/assabet_machdep.c @@ -215,10 +215,10 @@ initarm(struct arm_boot_params *abp) uint32_t memsize = 32 * 1024 * 1024; sa1110_uart_vaddr = SACOM1_VBASE; - boothowto = RB_VERBOSE | RB_SINGLE; + boothowto = RB_VERBOSE | RB_SINGLE; /* Default value */ + lastaddr = parse_boot_param(abp); cninit(); set_cpufuncs(); - lastaddr = fake_preload_metadata(); physmem = memsize / PAGE_SIZE; pc = &__pcpu; pcpu_init(pc, 0, sizeof(struct pcpu)); diff --git a/sys/arm/xscale/i80321/ep80219_machdep.c b/sys/arm/xscale/i80321/ep80219_machdep.c index d96b10341802..0508244f69a6 100644 --- a/sys/arm/xscale/i80321/ep80219_machdep.c +++ b/sys/arm/xscale/i80321/ep80219_machdep.c @@ -192,8 +192,8 @@ initarm(struct arm_boot_params *abp) vm_offset_t lastaddr; uint32_t memsize, memstart; + lastaddr = parse_boot_param(abp); set_cpufuncs(); - lastaddr = fake_preload_metadata(); pcpu_init(pcpup, 0, sizeof(struct pcpu)); PCPU_SET(curthread, &thread0); diff --git a/sys/arm/xscale/i80321/iq31244_machdep.c b/sys/arm/xscale/i80321/iq31244_machdep.c index bb2f55481e2a..9790c0b9ca88 100644 --- a/sys/arm/xscale/i80321/iq31244_machdep.c +++ b/sys/arm/xscale/i80321/iq31244_machdep.c @@ -193,8 +193,8 @@ initarm(struct arm_boot_params *abp) vm_offset_t lastaddr; uint32_t memsize, memstart; + lastaddr = parse_boot_param(abp); set_cpufuncs(); - lastaddr = fake_preload_metadata(); pcpu_init(pcpup, 0, sizeof(struct pcpu)); PCPU_SET(curthread, &thread0); diff --git a/sys/arm/xscale/i8134x/crb_machdep.c b/sys/arm/xscale/i8134x/crb_machdep.c index b04769280e9b..8567b174411e 100644 --- a/sys/arm/xscale/i8134x/crb_machdep.c +++ b/sys/arm/xscale/i8134x/crb_machdep.c @@ -189,8 +189,8 @@ initarm(struct arm_boot_params *abp) vm_offset_t lastaddr; uint32_t memsize, memstart; + lastaddr = parse_boot_param(abp); set_cpufuncs(); - lastaddr = fake_preload_metadata(); pcpu_init(pcpup, 0, sizeof(struct pcpu)); PCPU_SET(curthread, &thread0); diff --git a/sys/arm/xscale/ixp425/avila_machdep.c b/sys/arm/xscale/ixp425/avila_machdep.c index 97623bd578e5..22b0e10e5569 100644 --- a/sys/arm/xscale/ixp425/avila_machdep.c +++ b/sys/arm/xscale/ixp425/avila_machdep.c @@ -238,8 +238,8 @@ initarm(struct arm_boot_params *abp) vm_offset_t lastaddr; uint32_t memsize; + lastaddr = parse_boot_param(abp); set_cpufuncs(); /* NB: sets cputype */ - lastaddr = fake_preload_metadata(); pcpu_init(pcpup, 0, sizeof(struct pcpu)); PCPU_SET(curthread, &thread0); From 447fd44a6f8d8715cacb71bafd57e94b9db3dfe8 Mon Sep 17 00:00:00 2001 From: Adrian Chadd Date: Thu, 14 Jun 2012 04:01:25 +0000 Subject: [PATCH 208/340] Disable this warning debug for now, as I'm now aware of the particular situation where it's occuring. Whilst I'm here, flesh out a more descriptive description. --- sys/dev/ath/if_ath_tx.c | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/sys/dev/ath/if_ath_tx.c b/sys/dev/ath/if_ath_tx.c index cf63f1cea2ba..3dfe17cddbd3 100644 --- a/sys/dev/ath/if_ath_tx.c +++ b/sys/dev/ath/if_ath_tx.c @@ -1308,7 +1308,28 @@ ath_tx_normal_setup(struct ath_softc *sc, struct ieee80211_node *ni, return EIO; } - /* Check if the TXQ wouldn't match what the hardware TXQ is! */ + /* + * There are two known scenarios where the frame AC doesn't match + * what the destination TXQ is. + * + * + non-QoS frames (eg management?) that the net80211 stack has + * assigned a higher AC to, but since it's a non-QoS TID, it's + * being thrown into TID 16. TID 16 gets the AC_BE queue. + * It's quite possible that management frames should just be + * direct dispatched to hardware rather than go via the software + * queue; that should be investigated in the future. There are + * some specific scenarios where this doesn't make sense, mostly + * surrounding ADDBA request/response - hence why that is special + * cased. + * + * + Multicast frames going into the VAP mcast queue. That shows up + * as "TXQ 11". + * + * This driver should eventually support separate TID and TXQ locking, + * allowing for arbitrary AC frames to appear on arbitrary software + * queues, being queued to the "correct" hardware queue when needed. + */ +#if 0 if (txq != sc->sc_ac2q[pri]) { device_printf(sc->sc_dev, "%s: txq=%p (%d), pri=%d, pri txq=%p (%d)\n", @@ -1319,6 +1340,7 @@ ath_tx_normal_setup(struct ath_softc *sc, struct ieee80211_node *ni, sc->sc_ac2q[pri], sc->sc_ac2q[pri]->axq_qnum); } +#endif /* * Calculate miscellaneous flags. From 0bb13a26f0a285c8ed15fe498087c95d286cca7c Mon Sep 17 00:00:00 2001 From: Warner Losh Date: Thu, 14 Jun 2012 04:09:20 +0000 Subject: [PATCH 209/340] Create default_parse_boot_param which, if FreeBSD /boot/loader support is enabled, sets values based on the metadata passed in. Otherwise fake_preload_metadata is called. Change the default parse_boot_param to default_parse_boot_param. Enable this functionality only on the mv platform, which is where most of the code is from. Reviewed by: cognet, Ian Lapore --- sys/arm/arm/machdep.c | 43 ++++++++++++++++++++++++++++++++++++++- sys/arm/include/machdep.h | 6 +++--- sys/arm/mv/mv_machdep.c | 41 ++++++++----------------------------- sys/arm/mv/std.mv | 1 + sys/conf/options.arm | 1 + 5 files changed, 55 insertions(+), 37 deletions(-) diff --git a/sys/arm/arm/machdep.c b/sys/arm/arm/machdep.c index 7ac21a42260b..9805cf050231 100644 --- a/sys/arm/arm/machdep.c +++ b/sys/arm/arm/machdep.c @@ -712,6 +712,47 @@ fake_preload_metadata(struct arm_boot_params *abp __unused) return (lastaddr); } +vm_offset_t +default_parse_boot_param(struct arm_boot_params *abp) +{ + vm_offset_t lastaddr; +#if defined(FREEBSD_BOOT_LOADER) + void *mdp; + void *kmdp; + + /* + * Mask metadata pointer: it is supposed to be on page boundary. If + * the first argument (mdp) doesn't point to a valid address the + * bootloader must have passed us something else than the metadata + * ptr... In this case we want to fall back to some built-in settings. + */ + mdp = (void *)(abp->abp_r0 & ~PAGE_MASK); + + kmdp = NULL; + /* Parse metadata and fetch parameters (move to common machdep.c?) */ + if (mdp != NULL) { + preload_metadata = mdp; + kmdp = preload_search_by_type("elf kernel"); + if (kmdp != NULL) { + boothowto = MD_FETCH(kmdp, MODINFOMD_HOWTO, int); + kern_envp = MD_FETCH(kmdp, MODINFOMD_ENVP, char *); + lastaddr = MD_FETCH(kmdp, MODINFOMD_KERNEND, + vm_offset_t); +#ifdef DDB + ksym_start = MD_FETCH(kmdp, MODINFOMD_SSYM, uintptr_t); + ksym_end = MD_FETCH(kmdp, MODINFOMD_ESYM, uintptr_t); +#endif + } else + lastaddr = fake_preload_metadata(abp); + + preload_addr_relocate = KERNVIRTADDR - KERNPHYSADDR; + } else +#endif + /* Fall back to hardcoded metadata. */ + lastaddr = fake_preload_metadata(abp); + return lastaddr; +} + /* * Stub version of the boot parameter parsing routine. We are * called early in initarm, before even VM has been initialized. @@ -727,7 +768,7 @@ fake_preload_metadata(struct arm_boot_params *abp __unused) * kernels/boards can override this weak function with one of their * own. We just fake metadata... */ -__weak_reference(fake_preload_metadata, parse_boot_param); +__weak_reference(default_parse_boot_param, parse_boot_param); /* * Initialize proc0 diff --git a/sys/arm/include/machdep.h b/sys/arm/include/machdep.h index 192c35dae422..ec8453373123 100644 --- a/sys/arm/include/machdep.h +++ b/sys/arm/include/machdep.h @@ -11,9 +11,9 @@ void halt(void); void data_abort_handler(trapframe_t *); void prefetch_abort_handler(trapframe_t *); void undefinedinstruction_bounce(trapframe_t *); - struct arm_boot_params; -vm_offset_t fake_preload_metadata(struct arm_boot_params *); -vm_offset_t parse_boot_param(struct arm_boot_params *); +vm_offset_t default_parse_boot_param(struct arm_boot_params *abp); +vm_offset_t fake_preload_metadata(struct arm_boot_params *abp); +vm_offset_t parse_boot_param(struct arm_boot_params *abp); #endif /* !_MACHINE_MACHDEP_H_ */ diff --git a/sys/arm/mv/mv_machdep.c b/sys/arm/mv/mv_machdep.c index cf055a245078..0008f6555365 100644 --- a/sys/arm/mv/mv_machdep.c +++ b/sys/arm/mv/mv_machdep.c @@ -311,47 +311,22 @@ initarm(struct arm_boot_params *abp) vm_offset_t dtbp, freemempos, l2_start, lastaddr; uint32_t memsize, l2size; void *kmdp; - void *mdp; u_int l1pagetable; int i = 0, j = 0, err_devmap = 0; - mdp = (void *)abp->abp_r0; - kmdp = NULL; - lastaddr = 0; + lastaddr = parse_boot_param(abp); memsize = 0; - dtbp = (vm_offset_t)NULL; - set_cpufuncs(); /* - * Mask metadata pointer: it is supposed to be on page boundary. If - * the first argument (mdp) doesn't point to a valid address the - * bootloader must have passed us something else than the metadata - * ptr... In this case we want to fall back to some built-in settings. + * Find the dtb passed in by the boot loader. */ - mdp = (void *)((uint32_t)mdp & ~PAGE_MASK); - - /* Parse metadata and fetch parameters (move to common machdep.c?) */ - if (mdp != NULL) { - preload_metadata = mdp; - kmdp = preload_search_by_type("elf kernel"); - if (kmdp != NULL) { - boothowto = MD_FETCH(kmdp, MODINFOMD_HOWTO, int); - kern_envp = MD_FETCH(kmdp, MODINFOMD_ENVP, char *); - dtbp = MD_FETCH(kmdp, MODINFOMD_DTBP, vm_offset_t); - lastaddr = MD_FETCH(kmdp, MODINFOMD_KERNEND, - vm_offset_t); -#ifdef DDB - ksym_start = MD_FETCH(kmdp, MODINFOMD_SSYM, uintptr_t); - ksym_end = MD_FETCH(kmdp, MODINFOMD_ESYM, uintptr_t); -#endif - } - - preload_addr_relocate = KERNVIRTADDR - KERNPHYSADDR; - } else { - /* Fall back to hardcoded metadata. */ - lastaddr = fake_preload_metadata(abp); - } + kmdp = preload_search_by_type("elf kernel"); + if (kmdp != NULL) + dtbp = MD_FETCH(kmdp, MODINFOMD_DTBP, vm_offset_t); + else + dtbp = (vm_offset_t)NULL; + #if defined(FDT_DTB_STATIC) /* diff --git a/sys/arm/mv/std.mv b/sys/arm/mv/std.mv index 621010260459..6cf235c2cb07 100644 --- a/sys/arm/mv/std.mv +++ b/sys/arm/mv/std.mv @@ -3,3 +3,4 @@ files "../mv/files.mv" cpu CPU_ARM9E makeoptions CONF_CFLAGS="-march=armv5te" +options FREEBSD_BOOT_LOADER diff --git a/sys/conf/options.arm b/sys/conf/options.arm index 6fee07c5dcd9..0cca1a8ca3fd 100644 --- a/sys/conf/options.arm +++ b/sys/conf/options.arm @@ -16,6 +16,7 @@ CPU_XSCALE_IXP425 opt_global.h CPU_XSCALE_IXP435 opt_global.h CPU_XSCALE_PXA2X0 opt_global.h FLASHADDR opt_global.h +FREEBSD_BOOT_LOADER opt_global.h IXP4XX_FLASH_SIZE opt_global.h KERNPHYSADDR opt_global.h KERNVIRTADDR opt_global.h From 3b324f5772b00532b6c1364464e3df7cb59896e4 Mon Sep 17 00:00:00 2001 From: Adrian Chadd Date: Thu, 14 Jun 2012 04:14:06 +0000 Subject: [PATCH 210/340] Disable BGSCAN for 802.11n for now. Until scanning during traffic is fixed for 802.11n TX, this needs to be disabled or users wlil see randomly hanging aggregation sessions. Whilst I'm here, remove the warning about 802.11n being full of dragons. It's nowhere near that scary now. --- sys/dev/ath/if_ath.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/sys/dev/ath/if_ath.c b/sys/dev/ath/if_ath.c index dc7b3528c26d..6140206facab 100644 --- a/sys/dev/ath/if_ath.c +++ b/sys/dev/ath/if_ath.c @@ -524,7 +524,9 @@ ath_attach(u_int16_t devid, struct ath_softc *sc) | IEEE80211_C_SHPREAMBLE /* short preamble supported */ | IEEE80211_C_SHSLOT /* short slot time supported */ | IEEE80211_C_WPA /* capable of WPA1+WPA2 */ +#ifndef ATH_ENABLE_11N | IEEE80211_C_BGSCAN /* capable of bg scanning */ +#endif | IEEE80211_C_TXFRAG /* handle tx frags */ #ifdef ATH_ENABLE_DFS | IEEE80211_C_DFS /* Enable radar detection */ @@ -660,12 +662,6 @@ ath_attach(u_int16_t devid, struct ath_softc *sc) (void) ath_hal_settxchainmask(sc->sc_ah, tx_chainmask); } - /* - * The if_ath 11n support is completely not ready for normal use. - * Enabling this option will likely break everything and everything. - * Don't think of doing that unless you know what you're doing. - */ - #ifdef ATH_ENABLE_11N /* * Query HT capabilities From 38ac33aa84d7ab2e47b7eb8687454bfa2f2b9f25 Mon Sep 17 00:00:00 2001 From: Warner Losh Date: Thu, 14 Jun 2012 04:16:16 +0000 Subject: [PATCH 211/340] Add support for parsing Linux ATAGs such as you'd see from uboot or redboot. Support is very preiminary and likely needs some work. Also, do some minor code shuffling of the FreeBSD /boot/loader metadata parsing code. This code is preliminary and should be used with caution. --- sys/arm/arm/machdep.c | 134 +++++++++++++++++++++++++++++++------- sys/arm/include/machdep.h | 2 + sys/conf/options.arm | 1 + 3 files changed, 115 insertions(+), 22 deletions(-) diff --git a/sys/arm/arm/machdep.c b/sys/arm/arm/machdep.c index 9805cf050231..ae0021087665 100644 --- a/sys/arm/arm/machdep.c +++ b/sys/arm/arm/machdep.c @@ -80,6 +80,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include #include @@ -110,6 +111,20 @@ extern int *end; extern vm_offset_t ksym_start, ksym_end; #endif +#if defined(LINUX_BOOT_ABI) +#define LBABI_MAX_BANKS 10 + +uint32_t board_id; +struct arm_lbabi_tag *atag_list; +uint32_t revision; +uint64_t serial; +char linux_command_line[LBABI_MAX_COMMAND_LINE + 1]; +char atags[LBABI_MAX_COMMAND_LINE * 2]; +uint32_t memstart[LBABI_MAX_BANKS]; +uint32_t memsize[LBABI_MAX_BANKS]; +uint32_t membanks; +#endif + void sendsig(catcher, ksi, mask) sig_t catcher; @@ -712,11 +727,73 @@ fake_preload_metadata(struct arm_boot_params *abp __unused) return (lastaddr); } +#if defined(LINUX_BOOT_ABI) vm_offset_t -default_parse_boot_param(struct arm_boot_params *abp) +linux_parse_boot_param(struct arm_boot_params *abp) { - vm_offset_t lastaddr; + struct arm_lbabi_tag *walker; + + /* + * Linux boot ABI: r0 = 0, r1 is the board type (!= 0) and r2 + * is atags or dtb pointer. If all of these aren't satisfied, + * then punt. + */ + if (!(abp->abp_r0 == 0 && abp->abp_r1 != 0 && abp->abp_r2 != 0)) + return 0; + + board_id = abp->abp_r1; + walker = (struct arm_lbabi_tag *) + (abp->abp_r2 + KERNVIRTADDR - KERNPHYSADDR); + + /* xxx - Need to also look for binary device tree */ + if (ATAG_TAG(walker) != ATAG_CORE) + return 0; + + atag_list = walker; + while (ATAG_TAG(walker) != ATAG_NONE) { + switch (ATAG_TAG(walker)) { + case ATAG_CORE: + break; + case ATAG_MEM: + if (membanks < LBABI_MAX_BANKS) { + memstart[membanks] = walker->u.tag_mem.start; + memsize[membanks] = walker->u.tag_mem.size; + } + membanks++; + break; + case ATAG_INITRD2: + break; + case ATAG_SERIAL: + serial = walker->u.tag_sn.low | + ((uint64_t)walker->u.tag_sn.high << 32); + break; + case ATAG_REVISION: + revision = walker->u.tag_rev.rev; + break; + case ATAG_CMDLINE: + /* XXX open question: Parse this for boothowto? */ + bcopy(walker->u.tag_cmd.command, linux_command_line, + ATAG_SIZE(walker)); + break; + default: + break; + } + walker = ATAG_NEXT(walker); + } + + /* Save a copy for later */ + bcopy(atag_list, atags, + (char *)walker - (char *)atag_list + ATAG_SIZE(walker)); + + return fake_preload_metadata(abp); +} +#endif + #if defined(FREEBSD_BOOT_LOADER) +vm_offset_t +freebsd_parse_boot_param(struct arm_boot_params *abp) +{ + vm_offset_t lastaddr = 0; void *mdp; void *kmdp; @@ -724,32 +801,45 @@ default_parse_boot_param(struct arm_boot_params *abp) * Mask metadata pointer: it is supposed to be on page boundary. If * the first argument (mdp) doesn't point to a valid address the * bootloader must have passed us something else than the metadata - * ptr... In this case we want to fall back to some built-in settings. + * ptr, so we give up. Also give up if we cannot find metadta section + * the loader creates that we get all this data out of. */ - mdp = (void *)(abp->abp_r0 & ~PAGE_MASK); - kmdp = NULL; - /* Parse metadata and fetch parameters (move to common machdep.c?) */ - if (mdp != NULL) { - preload_metadata = mdp; - kmdp = preload_search_by_type("elf kernel"); - if (kmdp != NULL) { - boothowto = MD_FETCH(kmdp, MODINFOMD_HOWTO, int); - kern_envp = MD_FETCH(kmdp, MODINFOMD_ENVP, char *); - lastaddr = MD_FETCH(kmdp, MODINFOMD_KERNEND, - vm_offset_t); + if ((mdp = (void *)(abp->abp_r0 & ~PAGE_MASK)) == NULL) + return 0; + preload_metadata = mdp; + kmdp = preload_search_by_type("elf kernel"); + if (kmdp == NULL) + return 0; + + boothowto = MD_FETCH(kmdp, MODINFOMD_HOWTO, int); + kern_envp = MD_FETCH(kmdp, MODINFOMD_ENVP, char *); + lastaddr = MD_FETCH(kmdp, MODINFOMD_KERNEND, vm_offset_t); #ifdef DDB - ksym_start = MD_FETCH(kmdp, MODINFOMD_SSYM, uintptr_t); - ksym_end = MD_FETCH(kmdp, MODINFOMD_ESYM, uintptr_t); + ksym_start = MD_FETCH(kmdp, MODINFOMD_SSYM, uintptr_t); + ksym_end = MD_FETCH(kmdp, MODINFOMD_ESYM, uintptr_t); +#endif + preload_addr_relocate = KERNVIRTADDR - KERNPHYSADDR; + return lastaddr; +} #endif - } else - lastaddr = fake_preload_metadata(abp); - preload_addr_relocate = KERNVIRTADDR - KERNPHYSADDR; - } else +vm_offset_t +default_parse_boot_param(struct arm_boot_params *abp) +{ + vm_offset_t lastaddr; + +#if defined(LINUX_BOOT_ABI) + if ((lastaddr = linux_parse_boot_param(abp)) != 0) + return lastaddr; #endif - /* Fall back to hardcoded metadata. */ - lastaddr = fake_preload_metadata(abp); +#if defined(FREEBSD_BOOT_LOADER) + if ((lastaddr = freebsd_parse_boot_param(abp)) != 0) + return lastaddr; +#endif + /* Fall back to hardcoded metadata. */ + lastaddr = fake_preload_metadata(abp); + return lastaddr; } diff --git a/sys/arm/include/machdep.h b/sys/arm/include/machdep.h index ec8453373123..0f83108ee12f 100644 --- a/sys/arm/include/machdep.h +++ b/sys/arm/include/machdep.h @@ -13,6 +13,8 @@ void prefetch_abort_handler(trapframe_t *); void undefinedinstruction_bounce(trapframe_t *); struct arm_boot_params; vm_offset_t default_parse_boot_param(struct arm_boot_params *abp); +vm_offset_t freebsd_parse_boot_param(struct arm_boot_params *abp); +vm_offset_t linux_parse_boot_param(struct arm_boot_params *abp); vm_offset_t fake_preload_metadata(struct arm_boot_params *abp); vm_offset_t parse_boot_param(struct arm_boot_params *abp); diff --git a/sys/conf/options.arm b/sys/conf/options.arm index 0cca1a8ca3fd..c9db152848b3 100644 --- a/sys/conf/options.arm +++ b/sys/conf/options.arm @@ -20,6 +20,7 @@ FREEBSD_BOOT_LOADER opt_global.h IXP4XX_FLASH_SIZE opt_global.h KERNPHYSADDR opt_global.h KERNVIRTADDR opt_global.h +LINUX_BOOT_ABI opt_global.h LOADERRAMADDR opt_global.h PHYSADDR opt_global.h QEMU_WORKAROUNDS opt_global.h From 3590dad0941b7b2be0c57c5f3118274b94ab53b2 Mon Sep 17 00:00:00 2001 From: Warner Losh Date: Thu, 14 Jun 2012 04:18:56 +0000 Subject: [PATCH 212/340] More Linux boot support. Create arm_dump_avail_init() to initialize this array either from Linux boot data, when enabled, or in the typical way that most ports do it. arm_pyhs_avail_init is coming soon since it must be a separate function. --- sys/arm/arm/machdep.c | 41 +++++++++++++++++++++++++++ sys/arm/at91/at91_machdep.c | 15 ++-------- sys/arm/econa/econa_machdep.c | 15 ++-------- sys/arm/include/machdep.h | 5 ++++ sys/arm/mv/mv_machdep.c | 7 +---- sys/arm/s3c2xx0/s3c24x0_machdep.c | 14 ++------- sys/arm/xscale/ixp425/avila_machdep.c | 6 +--- 7 files changed, 54 insertions(+), 49 deletions(-) diff --git a/sys/arm/arm/machdep.c b/sys/arm/arm/machdep.c index ae0021087665..ac7b60f146a4 100644 --- a/sys/arm/arm/machdep.c +++ b/sys/arm/arm/machdep.c @@ -677,6 +677,47 @@ makectx(struct trapframe *tf, struct pcb *pcb) pcb->un_32.pcb32_sp = tf->tf_usr_sp; } +/* + * Make a standard dump_avail array. Can't make the phys_avail + * since we need to do that after we call pmap_bootstrap, but this + * is needed before pmap_boostrap. + * + * ARM_USE_SMALL_ALLOC uses dump_avail, so it must be filled before + * calling pmap_bootstrap. + */ +void +arm_dump_avail_init(vm_offset_t memsize, size_t max) +{ +#ifdef LINUX_BOOT_ABI + /* + * Linux boot loader passes us the actual banks of memory, so use them + * to construct the dump_avail array. + */ + if (membanks > 0) + { + int i, j; + + if (max < (membanks + 1) * 2) + panic("dump_avail[%d] too small for %d banks\n", + max, membanks); + for (j = 0, i = 0; i < membanks; i++) { + dump_avail[j++] = round_page(memstart[i]); + dump_avail[j++] = trunc_page(memstart[i] + memsize[i]); + } + dump_avail[j++] = 0; + dump_avail[j++] = 0; + return; + } +#endif + if (max < 4) + panic("dump_avail too small\n"); + + dump_avail[0] = round_page(PHYSADDR); + dump_avail[1] = trunc_page(PHYSADDR + memsize); + dump_avail[2] = 0; + dump_avail[3] = 0; +} + /* * Fake up a boot descriptor table */ diff --git a/sys/arm/at91/at91_machdep.c b/sys/arm/at91/at91_machdep.c index ba3d7cbd9d1d..468b4c01ca14 100644 --- a/sys/arm/at91/at91_machdep.c +++ b/sys/arm/at91/at91_machdep.c @@ -552,19 +552,8 @@ initarm(struct arm_boot_params *abp) arm_vector_init(ARM_VECTORS_HIGH, ARM_VEC_ALL); pmap_curmaxkvaddr = afterkern + L1_S_SIZE * (KERNEL_PT_KERN_NUM - 1); - - /* - * ARM_USE_SMALL_ALLOC uses dump_avail, so it must be filled before - * calling pmap_bootstrap. - */ - dump_avail[0] = PHYSADDR; - dump_avail[1] = PHYSADDR + memsize; - dump_avail[2] = 0; - dump_avail[3] = 0; - - pmap_bootstrap(freemempos, - KERNVIRTADDR + 3 * memsize, - &kernel_l1pt); + arm_dump_avail_init(memsize, sizeof(dump_avail)/sizeof(dump_avail[0])); + pmap_bootstrap(freemempos, KERNVIRTADDR + 3 * memsize, &kernel_l1pt); msgbufp = (void*)msgbufpv.pv_va; msgbufinit(msgbufp, msgbufsize); mutex_init(); diff --git a/sys/arm/econa/econa_machdep.c b/sys/arm/econa/econa_machdep.c index eec5a2359dfd..62c8a1b8fe1b 100644 --- a/sys/arm/econa/econa_machdep.c +++ b/sys/arm/econa/econa_machdep.c @@ -342,19 +342,8 @@ initarm(struct arm_boot_params *abp) arm_vector_init(ARM_VECTORS_HIGH, ARM_VEC_ALL); pmap_curmaxkvaddr = afterkern + L1_S_SIZE * (KERNEL_PT_KERN_NUM - 1); - - /* - * ARM_USE_SMALL_ALLOC uses dump_avail, so it must be filled before - * calling pmap_bootstrap. - */ - dump_avail[0] = PHYSADDR; - dump_avail[1] = PHYSADDR + memsize; - dump_avail[2] = 0; - dump_avail[3] = 0; - - pmap_bootstrap(freemempos, - KERNVIRTADDR + 3 * memsize, - &kernel_l1pt); + arm_dump_avail_init(memsize, sizeof(dump_avail) / sizeof(dump_avail[0])); + pmap_bootstrap(freemempos, KERNVIRTADDR + 3 * memsize, &kernel_l1pt); msgbufp = (void*)msgbufpv.pv_va; msgbufinit(msgbufp, msgbufsize); diff --git a/sys/arm/include/machdep.h b/sys/arm/include/machdep.h index 0f83108ee12f..7c5f56f6acc0 100644 --- a/sys/arm/include/machdep.h +++ b/sys/arm/include/machdep.h @@ -11,6 +11,8 @@ void halt(void); void data_abort_handler(trapframe_t *); void prefetch_abort_handler(trapframe_t *); void undefinedinstruction_bounce(trapframe_t *); + +/* Early boot related helper functions */ struct arm_boot_params; vm_offset_t default_parse_boot_param(struct arm_boot_params *abp); vm_offset_t freebsd_parse_boot_param(struct arm_boot_params *abp); @@ -18,4 +20,7 @@ vm_offset_t linux_parse_boot_param(struct arm_boot_params *abp); vm_offset_t fake_preload_metadata(struct arm_boot_params *abp); vm_offset_t parse_boot_param(struct arm_boot_params *abp); +/* Setup standard arrays */ +void arm_dump_avail_init( vm_offset_t memsize, size_t max); + #endif /* !_MACHINE_MACHDEP_H_ */ diff --git a/sys/arm/mv/mv_machdep.c b/sys/arm/mv/mv_machdep.c index 0008f6555365..360267a011ca 100644 --- a/sys/arm/mv/mv_machdep.c +++ b/sys/arm/mv/mv_machdep.c @@ -552,12 +552,7 @@ initarm(struct arm_boot_params *abp) init_proc0(kernelstack.pv_va); arm_vector_init(ARM_VECTORS_HIGH, ARM_VEC_ALL); - - dump_avail[0] = 0; - dump_avail[1] = memsize; - dump_avail[2] = 0; - dump_avail[3] = 0; - + arm_dump_avail_init(memsize, sizeof(dump_avail) / sizeof(dump_avail[0])); pmap_bootstrap(freemempos, pmap_bootstrap_lastaddr, &kernel_l1pt); msgbufp = (void *)msgbufpv.pv_va; msgbufinit(msgbufp, msgbufsize); diff --git a/sys/arm/s3c2xx0/s3c24x0_machdep.c b/sys/arm/s3c2xx0/s3c24x0_machdep.c index d183ff9eec8a..b9817ac59411 100644 --- a/sys/arm/s3c2xx0/s3c24x0_machdep.c +++ b/sys/arm/s3c2xx0/s3c24x0_machdep.c @@ -409,18 +409,8 @@ initarm(struct arm_boot_params *abp) arm_vector_init(ARM_VECTORS_HIGH, ARM_VEC_ALL); pmap_curmaxkvaddr = afterkern + 0x100000 * (KERNEL_PT_KERN_NUM - 1); - /* - * ARM_USE_SMALL_ALLOC uses dump_avail, so it must be filled before - * calling pmap_bootstrap. - */ - dump_avail[0] = PHYSADDR; - dump_avail[1] = PHYSADDR + memsize; - dump_avail[2] = 0; - dump_avail[3] = 0; - - pmap_bootstrap(freemempos, - KERNVIRTADDR + 3 * memsize, - &kernel_l1pt); + arm_dump_avail_init(memsize, sizeof(dump_avail) / sizeof(dump_avail[0])); + pmap_bootstrap(freemempos, KERNVIRTADDR + 3 * memsize, &kernel_l1pt); msgbufp = (void*)msgbufpv.pv_va; msgbufinit(msgbufp, msgbufsize); mutex_init(); diff --git a/sys/arm/xscale/ixp425/avila_machdep.c b/sys/arm/xscale/ixp425/avila_machdep.c index 22b0e10e5569..5c1819c75c74 100644 --- a/sys/arm/xscale/ixp425/avila_machdep.c +++ b/sys/arm/xscale/ixp425/avila_machdep.c @@ -446,11 +446,7 @@ initarm(struct arm_boot_params *abp) arm_vector_init(ARM_VECTORS_HIGH, ARM_VEC_ALL); pmap_curmaxkvaddr = afterkern + PAGE_SIZE; - dump_avail[0] = PHYSADDR; - dump_avail[1] = PHYSADDR + memsize; - dump_avail[2] = 0; - dump_avail[3] = 0; - + arm_dump_avail_init(memsize, sizeof(dump_avail) / sizeof(dump_avail[0])); pmap_bootstrap(pmap_curmaxkvaddr, 0xd0000000, &kernel_l1pt); msgbufp = (void*)msgbufpv.pv_va; msgbufinit(msgbufp, msgbufsize); From 956ac958bf67315b6dbbcd332dc2882e2062ae7d Mon Sep 17 00:00:00 2001 From: Adrian Chadd Date: Thu, 14 Jun 2012 04:24:13 +0000 Subject: [PATCH 213/340] Shrink ath_buf a little more: * Resize some types. In particular, bfs_seqno can be uint16_t for now. Previous work would assign the unassigned seqno a value of -1, which I obviously can't do here. * Remove bfs_pktdur. It was in the original code but nothing so far uses it. This gets ath_buf down (on my i386 system) to 292 bytes from 300 bytes. I'd rather it be much, much smaller. --- sys/dev/ath/if_athvar.h | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/sys/dev/ath/if_athvar.h b/sys/dev/ath/if_athvar.h index d58c83fc3a5f..2665c33880f9 100644 --- a/sys/dev/ath/if_athvar.h +++ b/sys/dev/ath/if_athvar.h @@ -211,15 +211,16 @@ struct ath_buf { /* This state is kept to support software retries and aggregation */ struct { - int bfs_seqno; /* sequence number of this packet */ - int bfs_retries; /* retry count */ - uint16_t bfs_tid; /* packet TID (or TID_MAX for no QoS) */ - uint16_t bfs_pri; /* packet AC priority */ - struct ath_txq *bfs_txq; /* eventual dest hardware TXQ */ - uint16_t bfs_pktdur; /* packet duration (at current rate?) */ - uint16_t bfs_nframes; /* number of frames in aggregate */ + uint16_t bfs_seqno; /* sequence number of this packet */ uint16_t bfs_ndelim; /* number of delims for padding */ + uint8_t bfs_retries; /* retry count */ + uint8_t bfs_tid; /* packet TID (or TID_MAX for no QoS) */ + uint8_t bfs_nframes; /* number of frames in aggregate */ + uint8_t bfs_pri; /* packet AC priority */ + + struct ath_txq *bfs_txq; /* eventual dest hardware TXQ */ + u_int32_t bfs_aggr:1, /* part of aggregate? */ bfs_aggrburst:1, /* part of aggregate burst? */ bfs_isretried:1, /* retried frame? */ From f30ac43257c2e75b59ff4d255913bf6a84a83af8 Mon Sep 17 00:00:00 2001 From: Michael Tuexen Date: Thu, 14 Jun 2012 06:54:48 +0000 Subject: [PATCH 214/340] Pass flowid explicitly through the stack instead of taking it from the mbuf chain at different places. While there: Fix several bugs related to VRFs. MFC after: 3 days --- sys/netinet/sctp_indata.c | 16 ++- sys/netinet/sctp_indata.h | 4 +- sys/netinet/sctp_input.c | 188 +++++++++++++++++++++++++++--------- sys/netinet/sctp_input.h | 7 +- sys/netinet/sctp_output.c | 99 +++++++++++++------ sys/netinet/sctp_output.h | 16 ++- sys/netinet/sctputil.c | 20 +++- sys/netinet/sctputil.h | 10 +- sys/netinet6/sctp6_usrreq.c | 29 ++++-- 9 files changed, 284 insertions(+), 105 deletions(-) diff --git a/sys/netinet/sctp_indata.c b/sys/netinet/sctp_indata.c index 09dc3627cc90..9de1ef01ecd3 100644 --- a/sys/netinet/sctp_indata.c +++ b/sys/netinet/sctp_indata.c @@ -2516,8 +2516,10 @@ sctp_service_queues(struct sctp_tcb *stcb, struct sctp_association *asoc) int sctp_process_data(struct mbuf **mm, int iphlen, int *offset, int length, - struct sctphdr *sh, struct sctp_inpcb *inp, struct sctp_tcb *stcb, - struct sctp_nets *net, uint32_t * high_tsn) + struct sctphdr *sh, struct sctp_inpcb *inp, + struct sctp_tcb *stcb, struct sctp_nets *net, uint32_t * high_tsn, + uint8_t use_mflowid, uint32_t mflowid, + uint32_t vrf_id, uint16_t port) { struct sctp_data_chunk *ch, chunk_buf; struct sctp_association *asoc; @@ -2625,7 +2627,9 @@ sctp_process_data(struct mbuf **mm, int iphlen, int *offset, int length, } stcb->sctp_ep->last_abort_code = SCTP_FROM_SCTP_INDATA + SCTP_LOC_19; sctp_abort_association(inp, stcb, m, iphlen, sh, - op_err, 0, net->port); + op_err, + use_mflowid, mflowid, + vrf_id, port); return (2); } #ifdef SCTP_AUDITING_ENABLED @@ -2689,7 +2693,11 @@ sctp_process_data(struct mbuf **mm, int iphlen, int *offset, int length, struct mbuf *op_err; op_err = sctp_generate_invmanparam(SCTP_CAUSE_PROTOCOL_VIOLATION); - sctp_abort_association(inp, stcb, m, iphlen, sh, op_err, 0, net->port); + sctp_abort_association(inp, stcb, + m, iphlen, + sh, op_err, + use_mflowid, mflowid, + vrf_id, port); return (2); } break; diff --git a/sys/netinet/sctp_indata.h b/sys/netinet/sctp_indata.h index e5cde9c18a40..9cb4d8ad30ac 100644 --- a/sys/netinet/sctp_indata.h +++ b/sys/netinet/sctp_indata.h @@ -113,7 +113,9 @@ void int sctp_process_data(struct mbuf **, int, int *, int, struct sctphdr *, struct sctp_inpcb *, struct sctp_tcb *, - struct sctp_nets *, uint32_t *); + struct sctp_nets *, uint32_t *, + uint8_t, uint32_t, + uint32_t, uint16_t); void sctp_slide_mapping_arrays(struct sctp_tcb *stcb); diff --git a/sys/netinet/sctp_input.c b/sys/netinet/sctp_input.c index 9833d8ea665f..f934c745e7a6 100644 --- a/sys/netinet/sctp_input.c +++ b/sys/netinet/sctp_input.c @@ -81,8 +81,10 @@ sctp_stop_all_cookie_timers(struct sctp_tcb *stcb) /* INIT handler */ static void sctp_handle_init(struct mbuf *m, int iphlen, int offset, struct sctphdr *sh, - struct sctp_init_chunk *cp, struct sctp_inpcb *inp, struct sctp_tcb *stcb, - int *abort_no_unlock, uint32_t vrf_id, uint16_t port) + struct sctp_init_chunk *cp, struct sctp_inpcb *inp, + struct sctp_tcb *stcb, int *abort_no_unlock, + uint8_t use_mflowid, uint32_t mflowid, + uint32_t vrf_id, uint16_t port) { struct sctp_init *init; struct mbuf *op_err; @@ -96,6 +98,7 @@ sctp_handle_init(struct mbuf *m, int iphlen, int offset, struct sctphdr *sh, if (ntohs(cp->ch.chunk_length) < sizeof(struct sctp_init_chunk)) { op_err = sctp_generate_invmanparam(SCTP_CAUSE_INVALID_PARAM); sctp_abort_association(inp, stcb, m, iphlen, sh, op_err, + use_mflowid, mflowid, vrf_id, port); if (stcb) *abort_no_unlock = 1; @@ -107,6 +110,7 @@ sctp_handle_init(struct mbuf *m, int iphlen, int offset, struct sctphdr *sh, /* protocol error... send abort */ op_err = sctp_generate_invmanparam(SCTP_CAUSE_INVALID_PARAM); sctp_abort_association(inp, stcb, m, iphlen, sh, op_err, + use_mflowid, mflowid, vrf_id, port); if (stcb) *abort_no_unlock = 1; @@ -116,6 +120,7 @@ sctp_handle_init(struct mbuf *m, int iphlen, int offset, struct sctphdr *sh, /* invalid parameter... send abort */ op_err = sctp_generate_invmanparam(SCTP_CAUSE_INVALID_PARAM); sctp_abort_association(inp, stcb, m, iphlen, sh, op_err, + use_mflowid, mflowid, vrf_id, port); if (stcb) *abort_no_unlock = 1; @@ -125,6 +130,7 @@ sctp_handle_init(struct mbuf *m, int iphlen, int offset, struct sctphdr *sh, /* protocol error... send abort */ op_err = sctp_generate_invmanparam(SCTP_CAUSE_INVALID_PARAM); sctp_abort_association(inp, stcb, m, iphlen, sh, op_err, + use_mflowid, mflowid, vrf_id, port); if (stcb) *abort_no_unlock = 1; @@ -134,6 +140,7 @@ sctp_handle_init(struct mbuf *m, int iphlen, int offset, struct sctphdr *sh, /* protocol error... send abort */ op_err = sctp_generate_invmanparam(SCTP_CAUSE_INVALID_PARAM); sctp_abort_association(inp, stcb, m, iphlen, sh, op_err, + use_mflowid, mflowid, vrf_id, port); if (stcb) *abort_no_unlock = 1; @@ -142,7 +149,9 @@ sctp_handle_init(struct mbuf *m, int iphlen, int offset, struct sctphdr *sh, if (sctp_validate_init_auth_params(m, offset + sizeof(*cp), offset + ntohs(cp->ch.chunk_length))) { /* auth parameter(s) error... send abort */ - sctp_abort_association(inp, stcb, m, iphlen, sh, NULL, vrf_id, port); + sctp_abort_association(inp, stcb, m, iphlen, sh, NULL, + use_mflowid, mflowid, + vrf_id, port); if (stcb) *abort_no_unlock = 1; goto outnow; @@ -169,7 +178,9 @@ sctp_handle_init(struct mbuf *m, int iphlen, int offset, struct sctphdr *sh, * state :-) */ if (SCTP_BASE_SYSCTL(sctp_blackhole) == 0) { - sctp_send_abort(m, iphlen, sh, 0, NULL, vrf_id, port); + sctp_send_abort(m, iphlen, sh, 0, NULL, + use_mflowid, mflowid, + vrf_id, port); } goto outnow; } @@ -180,7 +191,9 @@ sctp_handle_init(struct mbuf *m, int iphlen, int offset, struct sctphdr *sh, sctp_chunk_output(inp, stcb, SCTP_OUTPUT_FROM_CONTROL_PROC, SCTP_SO_NOT_LOCKED); } else { SCTPDBG(SCTP_DEBUG_INPUT3, "sctp_handle_init: sending INIT-ACK\n"); - sctp_send_initiate_ack(inp, stcb, m, iphlen, offset, sh, cp, vrf_id, port, + sctp_send_initiate_ack(inp, stcb, m, iphlen, offset, sh, cp, + use_mflowid, mflowid, + vrf_id, port, ((stcb == NULL) ? SCTP_HOLDS_LOCK : SCTP_NOT_LOCKED)); } outnow: @@ -406,9 +419,11 @@ sctp_process_init(struct sctp_init_chunk *cp, struct sctp_tcb *stcb) * INIT-ACK message processing/consumption returns value < 0 on error */ static int -sctp_process_init_ack(struct mbuf *m, int iphlen, int offset, - struct sctphdr *sh, struct sctp_init_ack_chunk *cp, struct sctp_tcb *stcb, - struct sctp_nets *net, int *abort_no_unlock, uint32_t vrf_id) +sctp_process_init_ack(struct mbuf *m, int iphlen, int offset, struct sctphdr *sh, + struct sctp_init_ack_chunk *cp, struct sctp_tcb *stcb, + struct sctp_nets *net, int *abort_no_unlock, + uint8_t use_mflowid, uint32_t mflowid, + uint32_t vrf_id) { struct sctp_association *asoc; struct mbuf *op_err; @@ -445,8 +460,9 @@ sctp_process_init_ack(struct mbuf *m, int iphlen, int offset, SCTPDBG(SCTP_DEBUG_INPUT1, "Load addresses from INIT causes an abort %d\n", retval); - sctp_abort_association(stcb->sctp_ep, stcb, m, iphlen, sh, - NULL, 0, net->port); + sctp_abort_association(stcb->sctp_ep, stcb, m, iphlen, sh, NULL, + use_mflowid, mflowid, + vrf_id, net->port); *abort_no_unlock = 1; return (-1); } @@ -520,7 +536,9 @@ sctp_process_init_ack(struct mbuf *m, int iphlen, int offset, mp->resv = 0; } sctp_abort_association(stcb->sctp_ep, stcb, m, iphlen, - sh, op_err, vrf_id, net->port); + sh, op_err, + use_mflowid, mflowid, + vrf_id, net->port); *abort_no_unlock = 1; } return (retval); @@ -1260,9 +1278,11 @@ sctp_handle_error(struct sctp_chunkhdr *ch, } static int -sctp_handle_init_ack(struct mbuf *m, int iphlen, int offset, - struct sctphdr *sh, struct sctp_init_ack_chunk *cp, struct sctp_tcb *stcb, - struct sctp_nets *net, int *abort_no_unlock, uint32_t vrf_id) +sctp_handle_init_ack(struct mbuf *m, int iphlen, int offset, struct sctphdr *sh, + struct sctp_init_ack_chunk *cp, struct sctp_tcb *stcb, + struct sctp_nets *net, int *abort_no_unlock, + uint8_t use_mflowid, uint32_t mflowid, + uint32_t vrf_id) { struct sctp_init_ack *init_ack; struct mbuf *op_err; @@ -1279,7 +1299,9 @@ sctp_handle_init_ack(struct mbuf *m, int iphlen, int offset, /* Invalid length */ op_err = sctp_generate_invmanparam(SCTP_CAUSE_INVALID_PARAM); sctp_abort_association(stcb->sctp_ep, stcb, m, iphlen, sh, - op_err, 0, net->port); + op_err, + use_mflowid, mflowid, + vrf_id, net->port); *abort_no_unlock = 1; return (-1); } @@ -1289,7 +1311,9 @@ sctp_handle_init_ack(struct mbuf *m, int iphlen, int offset, /* protocol error... send an abort */ op_err = sctp_generate_invmanparam(SCTP_CAUSE_INVALID_PARAM); sctp_abort_association(stcb->sctp_ep, stcb, m, iphlen, sh, - op_err, 0, net->port); + op_err, + use_mflowid, mflowid, + vrf_id, net->port); *abort_no_unlock = 1; return (-1); } @@ -1297,7 +1321,9 @@ sctp_handle_init_ack(struct mbuf *m, int iphlen, int offset, /* protocol error... send an abort */ op_err = sctp_generate_invmanparam(SCTP_CAUSE_INVALID_PARAM); sctp_abort_association(stcb->sctp_ep, stcb, m, iphlen, sh, - op_err, 0, net->port); + op_err, + use_mflowid, mflowid, + vrf_id, net->port); *abort_no_unlock = 1; return (-1); } @@ -1305,7 +1331,9 @@ sctp_handle_init_ack(struct mbuf *m, int iphlen, int offset, /* protocol error... send an abort */ op_err = sctp_generate_invmanparam(SCTP_CAUSE_INVALID_PARAM); sctp_abort_association(stcb->sctp_ep, stcb, m, iphlen, sh, - op_err, 0, net->port); + op_err, + use_mflowid, mflowid, + vrf_id, net->port); *abort_no_unlock = 1; return (-1); } @@ -1313,7 +1341,9 @@ sctp_handle_init_ack(struct mbuf *m, int iphlen, int offset, /* protocol error... send an abort */ op_err = sctp_generate_invmanparam(SCTP_CAUSE_INVALID_PARAM); sctp_abort_association(stcb->sctp_ep, stcb, m, iphlen, sh, - op_err, 0, net->port); + op_err, + use_mflowid, mflowid, + vrf_id, net->port); *abort_no_unlock = 1; return (-1); } @@ -1336,7 +1366,9 @@ sctp_handle_init_ack(struct mbuf *m, int iphlen, int offset, stcb, 0, (void *)stcb->asoc.primary_destination, SCTP_SO_NOT_LOCKED); } if (sctp_process_init_ack(m, iphlen, offset, sh, cp, stcb, - net, abort_no_unlock, vrf_id) < 0) { + net, abort_no_unlock, + use_mflowid, mflowid, + vrf_id) < 0) { /* error in parsing parameters */ return (-1); } @@ -1391,6 +1423,7 @@ sctp_process_cookie_new(struct mbuf *m, int iphlen, int offset, struct sctp_inpcb *inp, struct sctp_nets **netp, struct sockaddr *init_src, int *notification, int auth_skipped, uint32_t auth_offset, uint32_t auth_len, + uint8_t use_mflowid, uint32_t mflowid, uint32_t vrf_id, uint16_t port); @@ -1405,7 +1438,9 @@ sctp_process_cookie_existing(struct mbuf *m, int iphlen, int offset, struct sctphdr *sh, struct sctp_state_cookie *cookie, int cookie_len, struct sctp_inpcb *inp, struct sctp_tcb *stcb, struct sctp_nets **netp, struct sockaddr *init_src, int *notification, - uint32_t vrf_id, int auth_skipped, uint32_t auth_offset, uint32_t auth_len, uint16_t port) + int auth_skipped, uint32_t auth_offset, uint32_t auth_len, + uint8_t use_mflowid, uint32_t mflowid, + uint32_t vrf_id, uint16_t port) { struct sctp_association *asoc; struct sctp_init_chunk *init_cp, init_buf; @@ -1443,6 +1478,7 @@ sctp_process_cookie_existing(struct mbuf *m, int iphlen, int offset, ph->param_type = htons(SCTP_CAUSE_COOKIE_IN_SHUTDOWN); ph->param_length = htons(sizeof(struct sctp_paramhdr)); sctp_send_operr_to(m, sh, cookie->peers_vtag, op_err, + use_mflowid, mflowid, vrf_id, net->port); if (how_indx < sizeof(asoc->cookie_how)) asoc->cookie_how[how_indx] = 2; @@ -1667,7 +1703,9 @@ sctp_process_cookie_existing(struct mbuf *m, int iphlen, int offset, ph = mtod(op_err, struct sctp_paramhdr *); ph->param_type = htons(SCTP_CAUSE_NAT_COLLIDING_STATE); ph->param_length = htons(sizeof(struct sctp_paramhdr)); - sctp_send_abort(m, iphlen, sh, 0, op_err, vrf_id, port); + sctp_send_abort(m, iphlen, sh, 0, op_err, + use_mflowid, mflowid, + vrf_id, port); return (NULL); } if ((ntohl(initack_cp->init.initiate_tag) == asoc->my_vtag) && @@ -1832,6 +1870,7 @@ sctp_process_cookie_existing(struct mbuf *m, int iphlen, int offset, return (sctp_process_cookie_new(m, iphlen, offset, sh, cookie, cookie_len, inp, netp, init_src, notification, auth_skipped, auth_offset, auth_len, + use_mflowid, mflowid, vrf_id, port)); } /* @@ -1962,12 +2001,13 @@ sctp_process_cookie_existing(struct mbuf *m, int iphlen, int offset, * cookie-echo chunk length: length of the cookie chunk to: where the init * was from returns a new TCB */ -struct sctp_tcb * +static struct sctp_tcb * sctp_process_cookie_new(struct mbuf *m, int iphlen, int offset, struct sctphdr *sh, struct sctp_state_cookie *cookie, int cookie_len, struct sctp_inpcb *inp, struct sctp_nets **netp, struct sockaddr *init_src, int *notification, int auth_skipped, uint32_t auth_offset, uint32_t auth_len, + uint8_t use_mflowid, uint32_t mflowid, uint32_t vrf_id, uint16_t port) { struct sctp_tcb *stcb; @@ -2062,7 +2102,9 @@ sctp_process_cookie_new(struct mbuf *m, int iphlen, int offset, op_err = sctp_generate_invmanparam(SCTP_CAUSE_OUT_OF_RESC); sctp_abort_association(inp, (struct sctp_tcb *)NULL, m, iphlen, - sh, op_err, vrf_id, port); + sh, op_err, + use_mflowid, mflowid, + vrf_id, port); return (NULL); } /* get the correct sctp_nets */ @@ -2088,7 +2130,9 @@ sctp_process_cookie_new(struct mbuf *m, int iphlen, int offset, atomic_add_int(&stcb->asoc.refcnt, 1); op_err = sctp_generate_invmanparam(SCTP_CAUSE_OUT_OF_RESC); sctp_abort_association(inp, (struct sctp_tcb *)NULL, m, iphlen, - sh, op_err, vrf_id, port); + sh, op_err, + use_mflowid, mflowid, + vrf_id, port); #if defined (__APPLE__) || defined(SCTP_SO_LOCK_TESTING) SCTP_TCB_UNLOCK(stcb); SCTP_SOCKET_LOCK(so, 1); @@ -2335,7 +2379,9 @@ sctp_handle_cookie_echo(struct mbuf *m, int iphlen, int offset, struct sctphdr *sh, struct sctp_cookie_echo_chunk *cp, struct sctp_inpcb **inp_p, struct sctp_tcb **stcb, struct sctp_nets **netp, int auth_skipped, uint32_t auth_offset, uint32_t auth_len, - struct sctp_tcb **locked_tcb, uint32_t vrf_id, uint16_t port) + struct sctp_tcb **locked_tcb, + uint8_t use_mflowid, uint32_t mflowid, + uint32_t vrf_id, uint16_t port) { struct sctp_state_cookie *cookie; struct sctp_tcb *l_stcb = *stcb; @@ -2571,6 +2617,7 @@ sctp_handle_cookie_echo(struct mbuf *m, int iphlen, int offset, tim = now.tv_usec - cookie->time_entered.tv_usec; scm->time_usec = htonl(tim); sctp_send_operr_to(m, sh, cookie->peers_vtag, op_err, + use_mflowid, mflowid, vrf_id, port); return (NULL); } @@ -2658,21 +2705,25 @@ sctp_handle_cookie_echo(struct mbuf *m, int iphlen, int offset, /* this is the "normal" case... get a new TCB */ *stcb = sctp_process_cookie_new(m, iphlen, offset, sh, cookie, cookie_len, *inp_p, netp, to, ¬ification, - auth_skipped, auth_offset, auth_len, vrf_id, port); + auth_skipped, auth_offset, auth_len, + use_mflowid, mflowid, + vrf_id, port); } else { /* this is abnormal... cookie-echo on existing TCB */ had_a_existing_tcb = 1; *stcb = sctp_process_cookie_existing(m, iphlen, offset, sh, cookie, cookie_len, *inp_p, *stcb, netp, to, - ¬ification, vrf_id, auth_skipped, auth_offset, auth_len, port); + ¬ification, auth_skipped, auth_offset, auth_len, + use_mflowid, mflowid, + vrf_id, port); } if (*stcb == NULL) { /* still no TCB... must be bad cookie-echo */ return (NULL); } - if ((*netp != NULL) && (m->m_flags & M_FLOWID)) { - (*netp)->flowid = m->m_pkthdr.flowid; + if ((*netp != NULL) && (use_mflowid != 0)) { + (*netp)->flowid = mflowid; #ifdef INVARIANTS (*netp)->flowidset = 1; #endif @@ -2745,7 +2796,9 @@ sctp_handle_cookie_echo(struct mbuf *m, int iphlen, int offset, SCTPDBG(SCTP_DEBUG_INPUT1, "process_cookie_new: no room for another socket!\n"); op_err = sctp_generate_invmanparam(SCTP_CAUSE_OUT_OF_RESC); sctp_abort_association(*inp_p, NULL, m, iphlen, - sh, op_err, vrf_id, port); + sh, op_err, + use_mflowid, mflowid, + vrf_id, port); #if defined (__APPLE__) || defined(SCTP_SO_LOCK_TESTING) pcb_so = SCTP_INP_SO(*inp_p); atomic_add_int(&(*stcb)->asoc.refcnt, 1); @@ -4361,6 +4414,7 @@ __attribute__((noinline)) sctp_process_control(struct mbuf *m, int iphlen, int *offset, int length, struct sctphdr *sh, struct sctp_chunkhdr *ch, struct sctp_inpcb *inp, struct sctp_tcb *stcb, struct sctp_nets **netp, int *fwd_tsn_seen, + uint8_t use_mflowid, uint32_t mflowid, uint32_t vrf_id, uint16_t port) { struct sctp_association *asoc; @@ -4517,6 +4571,7 @@ __attribute__((noinline)) if (stcb == NULL) { /* no association, so it's out of the blue... */ sctp_handle_ootb(m, iphlen, *offset, sh, inp, + use_mflowid, mflowid, vrf_id, port); *offset = length; if (locked_tcb) { @@ -4554,6 +4609,7 @@ __attribute__((noinline)) SCTP_TCB_UNLOCK(locked_tcb); } sctp_handle_ootb(m, iphlen, *offset, sh, inp, + use_mflowid, mflowid, vrf_id, port); return (NULL); } @@ -4695,7 +4751,9 @@ __attribute__((noinline)) if ((num_chunks > 1) || (length - *offset > (int)SCTP_SIZE32(chk_length))) { sctp_abort_association(inp, stcb, m, - iphlen, sh, NULL, vrf_id, port); + iphlen, sh, NULL, + use_mflowid, mflowid, + vrf_id, port); *offset = length; return (NULL); } @@ -4705,13 +4763,17 @@ __attribute__((noinline)) op_err = sctp_generate_invmanparam(SCTP_CAUSE_OUT_OF_RESC); sctp_abort_association(inp, stcb, m, - iphlen, sh, op_err, vrf_id, port); + iphlen, sh, op_err, + use_mflowid, mflowid, + vrf_id, port); *offset = length; return (NULL); } sctp_handle_init(m, iphlen, *offset, sh, (struct sctp_init_chunk *)ch, inp, - stcb, &abort_no_unlock, vrf_id, port); + stcb, &abort_no_unlock, + use_mflowid, mflowid, + vrf_id, port); *offset = length; if ((!abort_no_unlock) && (locked_tcb)) { SCTP_TCB_UNLOCK(locked_tcb); @@ -4760,7 +4822,11 @@ __attribute__((noinline)) } if ((netp) && (*netp)) { ret = sctp_handle_init_ack(m, iphlen, *offset, sh, - (struct sctp_init_ack_chunk *)ch, stcb, *netp, &abort_no_unlock, vrf_id); + (struct sctp_init_ack_chunk *)ch, + stcb, *netp, + &abort_no_unlock, + use_mflowid, mflowid, + vrf_id); } else { ret = -1; } @@ -5066,7 +5132,9 @@ __attribute__((noinline)) op_err = sctp_generate_invmanparam(SCTP_CAUSE_OUT_OF_RESC); sctp_abort_association(inp, stcb, m, - iphlen, sh, op_err, vrf_id, port); + iphlen, sh, op_err, + use_mflowid, mflowid, + vrf_id, port); } *offset = length; return (NULL); @@ -5098,6 +5166,8 @@ __attribute__((noinline)) auth_offset, auth_len, &locked_tcb, + use_mflowid, + mflowid, vrf_id, port); } else { @@ -5550,8 +5620,10 @@ __attribute__((noinline)) void sctp_common_input_processing(struct mbuf **mm, int iphlen, int offset, int length, struct sctphdr *sh, struct sctp_chunkhdr *ch, - struct sctp_inpcb *inp, struct sctp_tcb *stcb, struct sctp_nets *net, - uint8_t ecn_bits, uint32_t vrf_id, uint16_t port) + struct sctp_inpcb *inp, struct sctp_tcb *stcb, + struct sctp_nets *net, uint8_t ecn_bits, + uint8_t use_mflowid, uint32_t mflowid, + uint32_t vrf_id, uint16_t port) { /* * Control chunk processing @@ -5587,6 +5659,7 @@ sctp_common_input_processing(struct mbuf **mm, int iphlen, int offset, */ SCTP_TCB_UNLOCK(stcb); sctp_handle_ootb(m, iphlen, offset, sh, inp, + use_mflowid, mflowid, vrf_id, port); goto out_now; } @@ -5595,7 +5668,9 @@ sctp_common_input_processing(struct mbuf **mm, int iphlen, int offset, /* process the control portion of the SCTP packet */ /* sa_ignore NO_NULL_CHK */ stcb = sctp_process_control(m, iphlen, &offset, length, sh, ch, - inp, stcb, &net, &fwd_tsn_seen, vrf_id, port); + inp, stcb, &net, &fwd_tsn_seen, + use_mflowid, mflowid, + vrf_id, port); if (stcb) { /* * This covers us if the cookie-echo was there and @@ -5631,6 +5706,7 @@ sctp_common_input_processing(struct mbuf **mm, int iphlen, int offset, if (stcb == NULL) { /* out of the blue DATA chunk */ sctp_handle_ootb(m, iphlen, offset, sh, inp, + use_mflowid, mflowid, vrf_id, port); goto out_now; } @@ -5700,6 +5776,7 @@ sctp_common_input_processing(struct mbuf **mm, int iphlen, int offset, * We consider OOTB any data sent during asoc setup. */ sctp_handle_ootb(m, iphlen, offset, sh, inp, + use_mflowid, mflowid, vrf_id, port); SCTP_TCB_UNLOCK(stcb); goto out_now; @@ -5720,7 +5797,9 @@ sctp_common_input_processing(struct mbuf **mm, int iphlen, int offset, } /* plow through the data chunks while length > offset */ retval = sctp_process_data(mm, iphlen, &offset, length, sh, - inp, stcb, net, &high_tsn); + inp, stcb, net, &high_tsn, + use_mflowid, mflowid, + vrf_id, port); if (retval == 2) { /* * The association aborted, NO UNLOCK needed since @@ -5820,6 +5899,8 @@ sctp_input_with_port(struct mbuf *i_pak, int off, uint16_t port) struct sctp_chunkhdr *ch; int refcount_up = 0; int length, mlen, offset; + uint32_t mflowid; + uint8_t use_mflowid; #if !defined(SCTP_WITH_NO_CSUM) uint32_t check, calc_check; @@ -5855,6 +5936,13 @@ sctp_input_with_port(struct mbuf *i_pak, int off, uint16_t port) if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_LAST_PACKET_TRACING) sctp_packet_log(m, mlen); #endif + if (m->m_flags & M_FLOWID) { + mflowid = m->m_pkthdr.flowid; + use_mflowid = 1; + } else { + mflowid = 0; + use_mflowid = 0; + } /* * Must take out the iphlen, since mlen expects this (only effect lb * case) @@ -5926,8 +6014,8 @@ sctp_input_with_port(struct mbuf *i_pak, int off, uint16_t port) } net->port = port; } - if ((net != NULL) && (m->m_flags & M_FLOWID)) { - net->flowid = m->m_pkthdr.flowid; + if ((net != NULL) && (use_mflowid != 0)) { + net->flowid = mflowid; #ifdef INVARIANTS net->flowidset = 1; #endif @@ -5961,8 +6049,8 @@ sctp_input_with_port(struct mbuf *i_pak, int off, uint16_t port) } net->port = port; } - if ((net != NULL) && (m->m_flags & M_FLOWID)) { - net->flowid = m->m_pkthdr.flowid; + if ((net != NULL) && (use_mflowid != 0)) { + net->flowid = mflowid; #ifdef INVARIANTS net->flowidset = 1; #endif @@ -5996,7 +6084,9 @@ sctp_input_with_port(struct mbuf *i_pak, int off, uint16_t port) sh->v_tag = init_chk->init.initiate_tag; } if (ch->chunk_type == SCTP_SHUTDOWN_ACK) { - sctp_send_shutdown_complete2(m, sh, vrf_id, port); + sctp_send_shutdown_complete2(m, sh, + use_mflowid, mflowid, + vrf_id, port); goto bad; } if (ch->chunk_type == SCTP_SHUTDOWN_COMPLETE) { @@ -6006,7 +6096,9 @@ sctp_input_with_port(struct mbuf *i_pak, int off, uint16_t port) if ((SCTP_BASE_SYSCTL(sctp_blackhole) == 0) || ((SCTP_BASE_SYSCTL(sctp_blackhole) == 1) && (ch->chunk_type != SCTP_INIT))) { - sctp_send_abort(m, iphlen, sh, 0, NULL, vrf_id, port); + sctp_send_abort(m, iphlen, sh, 0, NULL, + use_mflowid, mflowid, + vrf_id, port); } } goto bad; @@ -6035,7 +6127,9 @@ sctp_input_with_port(struct mbuf *i_pak, int off, uint16_t port) /* sa_ignore NO_NULL_CHK */ sctp_common_input_processing(&m, iphlen, offset, length, sh, ch, - inp, stcb, net, ecn_bits, vrf_id, port); + inp, stcb, net, ecn_bits, + use_mflowid, mflowid, + vrf_id, port); /* inp's ref-count reduced && stcb unlocked */ if (m) { sctp_m_freem(m); diff --git a/sys/netinet/sctp_input.h b/sys/netinet/sctp_input.h index afddc84f087e..aff39de57843 100644 --- a/sys/netinet/sctp_input.h +++ b/sys/netinet/sctp_input.h @@ -39,8 +39,11 @@ __FBSDID("$FreeBSD$"); #if defined(_KERNEL) || defined(__Userspace__) void sctp_common_input_processing(struct mbuf **, int, int, int, - struct sctphdr *, struct sctp_chunkhdr *, struct sctp_inpcb *, - struct sctp_tcb *, struct sctp_nets *, uint8_t, uint32_t, uint16_t); + struct sctphdr *, struct sctp_chunkhdr *, + struct sctp_inpcb *, struct sctp_tcb *, + struct sctp_nets *, uint8_t, + uint8_t, uint32_t, + uint32_t, uint16_t); struct sctp_stream_reset_out_request * sctp_find_stream_reset(struct sctp_tcb *stcb, uint32_t seq, diff --git a/sys/netinet/sctp_output.c b/sys/netinet/sctp_output.c index 9538b545f9f5..048d650fa137 100644 --- a/sys/netinet/sctp_output.c +++ b/sys/netinet/sctp_output.c @@ -3859,13 +3859,13 @@ sctp_lowlevel_chunk_output(struct sctp_inpcb *inp, uint16_t dest_port, uint32_t v_tag, uint16_t port, -#if !defined(__APPLE__) && !defined(SCTP_SO_LOCK_TESTING) - int so_locked SCTP_UNUSED, -#else - int so_locked, -#endif union sctp_sockstore *over_addr, - struct mbuf *init + uint8_t use_mflowid, uint32_t mflowid, +#if !defined(__APPLE__) && !defined(SCTP_SO_LOCK_TESTING) + int so_locked SCTP_UNUSED +#else + int so_locked +#endif ) /* nofragment_flag to tell if IP_DF should be set (IPv4 only) */ { @@ -3951,8 +3951,8 @@ sctp_lowlevel_chunk_output(struct sctp_inpcb *inp, m->m_pkthdr.flowid = net->flowid; m->m_flags |= M_FLOWID; } else { - if ((init != NULL) && (init->m_flags & M_FLOWID)) { - m->m_pkthdr.flowid = init->m_pkthdr.flowid; + if (use_mflowid != 0) { + m->m_pkthdr.flowid = mflowid; m->m_flags |= M_FLOWID; } } @@ -4243,8 +4243,8 @@ sctp_lowlevel_chunk_output(struct sctp_inpcb *inp, m->m_pkthdr.flowid = net->flowid; m->m_flags |= M_FLOWID; } else { - if ((init != NULL) && (init->m_flags & M_FLOWID)) { - m->m_pkthdr.flowid = init->m_pkthdr.flowid; + if (use_mflowid != 0) { + m->m_pkthdr.flowid = mflowid; m->m_flags |= M_FLOWID; } } @@ -4841,7 +4841,9 @@ sctp_send_initiate(struct sctp_inpcb *inp, struct sctp_tcb *stcb, int so_locked (struct sockaddr *)&net->ro._l_addr, m, 0, NULL, 0, 0, 0, 0, inp->sctp_lport, stcb->rport, htonl(0), - net->port, so_locked, NULL, NULL); + net->port, NULL, + 0, 0, + so_locked); SCTPDBG(SCTP_DEBUG_OUTPUT4, "lowlevel_output - %d\n", ret); SCTP_STAT_INCR_COUNTER64(sctps_outcontrolchunks); (void)SCTP_GETTIME_TIMEVAL(&net->last_sent_time); @@ -5370,8 +5372,10 @@ sctp_are_there_new_addresses(struct sctp_association *asoc, */ void sctp_send_initiate_ack(struct sctp_inpcb *inp, struct sctp_tcb *stcb, - struct mbuf *init_pkt, int iphlen, int offset, struct sctphdr *sh, - struct sctp_init_chunk *init_chk, uint32_t vrf_id, uint16_t port, int hold_inp_lock) + struct mbuf *init_pkt, int iphlen, int offset, + struct sctphdr *sh, struct sctp_init_chunk *init_chk, + uint8_t use_mflowid, uint32_t mflowid, + uint32_t vrf_id, uint16_t port, int hold_inp_lock) { struct sctp_association *asoc; struct mbuf *m, *m_at, *m_tmp, *m_cookie, *op_err, *mp_last; @@ -5422,7 +5426,9 @@ sctp_send_initiate_ack(struct sctp_inpcb *inp, struct sctp_tcb *stcb, * though we even set the T bit and copy in the 0 tag.. this * looks no different than if no listener was present. */ - sctp_send_abort(init_pkt, iphlen, sh, 0, NULL, vrf_id, port); + sctp_send_abort(init_pkt, iphlen, sh, 0, NULL, + use_mflowid, mflowid, + vrf_id, port); return; } abort_flag = 0; @@ -5432,7 +5438,9 @@ sctp_send_initiate_ack(struct sctp_inpcb *inp, struct sctp_tcb *stcb, if (abort_flag) { do_a_abort: sctp_send_abort(init_pkt, iphlen, sh, - init_chk->init.initiate_tag, op_err, vrf_id, port); + init_chk->init.initiate_tag, op_err, + use_mflowid, mflowid, + vrf_id, port); return; } m = sctp_get_mbuf_for_msg(MCLBYTES, 0, M_DONTWAIT, 1, MT_DATA); @@ -6034,7 +6042,9 @@ sctp_send_initiate_ack(struct sctp_inpcb *inp, struct sctp_tcb *stcb, (void)sctp_lowlevel_chunk_output(inp, NULL, NULL, to, m, 0, NULL, 0, 0, 0, 0, inp->sctp_lport, sh->src_port, init_chk->init.initiate_tag, - port, SCTP_SO_NOT_LOCKED, over_addr, init_pkt); + port, over_addr, + use_mflowid, mflowid, + SCTP_SO_NOT_LOCKED); SCTP_STAT_INCR_COUNTER64(sctps_outcontrolchunks); } @@ -8116,7 +8126,9 @@ sctp_med_chunk_output(struct sctp_inpcb *inp, no_fragmentflg, 0, asconf, inp->sctp_lport, stcb->rport, htonl(stcb->asoc.peer_vtag), - net->port, so_locked, NULL, NULL))) { + net->port, NULL, + 0, 0, + so_locked))) { if (error == ENOBUFS) { asoc->ifp_had_enobuf = 1; SCTP_STAT_INCR(sctps_lowlevelerr); @@ -8388,7 +8400,9 @@ sctp_med_chunk_output(struct sctp_inpcb *inp, no_fragmentflg, 0, asconf, inp->sctp_lport, stcb->rport, htonl(stcb->asoc.peer_vtag), - net->port, so_locked, NULL, NULL))) { + net->port, NULL, + 0, 0, + so_locked))) { if (error == ENOBUFS) { asoc->ifp_had_enobuf = 1; SCTP_STAT_INCR(sctps_lowlevelerr); @@ -8727,7 +8741,9 @@ sctp_med_chunk_output(struct sctp_inpcb *inp, asconf, inp->sctp_lport, stcb->rport, htonl(stcb->asoc.peer_vtag), - net->port, so_locked, NULL, NULL))) { + net->port, NULL, + 0, 0, + so_locked))) { /* error, we could not output */ if (error == ENOBUFS) { SCTP_STAT_INCR(sctps_lowlevelerr); @@ -9429,7 +9445,9 @@ sctp_chunk_retransmission(struct sctp_inpcb *inp, auth_offset, auth, stcb->asoc.authinfo.active_keyid, no_fragmentflg, 0, 0, inp->sctp_lport, stcb->rport, htonl(stcb->asoc.peer_vtag), - chk->whoTo->port, so_locked, NULL, NULL))) { + chk->whoTo->port, NULL, + 0, 0, + so_locked))) { SCTP_STAT_INCR(sctps_lowlevelerr); return (error); } @@ -9694,7 +9712,9 @@ sctp_chunk_retransmission(struct sctp_inpcb *inp, auth_offset, auth, auth_keyid, no_fragmentflg, 0, 0, inp->sctp_lport, stcb->rport, htonl(stcb->asoc.peer_vtag), - net->port, so_locked, NULL, NULL))) { + net->port, NULL, + 0, 0, + so_locked))) { /* error, we could not output */ SCTP_STAT_INCR(sctps_lowlevelerr); return (error); @@ -10812,7 +10832,9 @@ sctp_send_abort_tcb(struct sctp_tcb *stcb, struct mbuf *operr, int so_locked (struct sockaddr *)&net->ro._l_addr, m_out, auth_offset, auth, stcb->asoc.authinfo.active_keyid, 1, 0, 0, stcb->sctp_ep->sctp_lport, stcb->rport, htonl(stcb->asoc.peer_vtag), - stcb->asoc.primary_destination->port, so_locked, NULL, NULL); + stcb->asoc.primary_destination->port, NULL, + 0, 0, + so_locked); SCTP_STAT_INCR_COUNTER64(sctps_outcontrolchunks); } @@ -10849,14 +10871,18 @@ sctp_send_shutdown_complete(struct sctp_tcb *stcb, m_shutdown_comp, 0, NULL, 0, 1, 0, 0, stcb->sctp_ep->sctp_lport, stcb->rport, htonl(vtag), - net->port, SCTP_SO_NOT_LOCKED, NULL, NULL); + net->port, NULL, + 0, 0, + SCTP_SO_NOT_LOCKED); SCTP_STAT_INCR_COUNTER64(sctps_outcontrolchunks); return; } static void sctp_send_resp_msg(struct mbuf *m, struct sctphdr *sh, uint32_t vtag, - uint8_t type, struct mbuf *cause, uint32_t vrf_id, uint16_t port) + uint8_t type, struct mbuf *cause, + uint8_t use_mflowid, uint32_t mflowid, + uint32_t vrf_id, uint16_t port) { struct mbuf *o_pak; struct mbuf *mout; @@ -10929,8 +10955,8 @@ sctp_send_resp_msg(struct mbuf *m, struct sctphdr *sh, uint32_t vtag, SCTP_BUF_RESV_UF(mout, max_linkhdr); SCTP_BUF_LEN(mout) = len; SCTP_BUF_NEXT(mout) = cause; - if (m->m_flags & M_FLOWID) { - mout->m_pkthdr.flowid = m->m_pkthdr.flowid; + if (use_mflowid != 0) { + mout->m_pkthdr.flowid = mflowid; mout->m_flags |= M_FLOWID; } #ifdef INET @@ -11110,9 +11136,12 @@ sctp_send_resp_msg(struct mbuf *m, struct sctphdr *sh, uint32_t vtag, void sctp_send_shutdown_complete2(struct mbuf *m, struct sctphdr *sh, + uint8_t use_mflowid, uint32_t mflowid, uint32_t vrf_id, uint16_t port) { - sctp_send_resp_msg(m, sh, 0, SCTP_SHUTDOWN_COMPLETE, NULL, vrf_id, port); + sctp_send_resp_msg(m, sh, 0, SCTP_SHUTDOWN_COMPLETE, NULL, + use_mflowid, mflowid, + vrf_id, port); } void @@ -11944,7 +11973,9 @@ sctp_send_str_reset_req(struct sctp_tcb *stcb, void sctp_send_abort(struct mbuf *m, int iphlen, struct sctphdr *sh, uint32_t vtag, - struct mbuf *cause, uint32_t vrf_id, uint16_t port) + struct mbuf *cause, + uint8_t use_mflowid, uint32_t mflowid, + uint32_t vrf_id, uint16_t port) { /* Don't respond to an ABORT with an ABORT. */ if (sctp_is_there_an_abort_here(m, iphlen, &vtag)) { @@ -11952,15 +11983,21 @@ sctp_send_abort(struct mbuf *m, int iphlen, struct sctphdr *sh, uint32_t vtag, sctp_m_freem(cause); return; } - sctp_send_resp_msg(m, sh, vtag, SCTP_ABORT_ASSOCIATION, cause, vrf_id, port); + sctp_send_resp_msg(m, sh, vtag, SCTP_ABORT_ASSOCIATION, cause, + use_mflowid, mflowid, + vrf_id, port); return; } void sctp_send_operr_to(struct mbuf *m, struct sctphdr *sh, uint32_t vtag, - struct mbuf *cause, uint32_t vrf_id, uint16_t port) + struct mbuf *cause, + uint8_t use_mflowid, uint32_t mflowid, + uint32_t vrf_id, uint16_t port) { - sctp_send_resp_msg(m, sh, vtag, SCTP_OPERATION_ERROR, cause, vrf_id, port); + sctp_send_resp_msg(m, sh, vtag, SCTP_OPERATION_ERROR, cause, + use_mflowid, mflowid, + vrf_id, port); return; } diff --git a/sys/netinet/sctp_output.h b/sys/netinet/sctp_output.h index 43d4cce4f1f4..821e054f50be 100644 --- a/sys/netinet/sctp_output.h +++ b/sys/netinet/sctp_output.h @@ -83,8 +83,9 @@ sctp_send_initiate(struct sctp_inpcb *, struct sctp_tcb *, int ); void -sctp_send_initiate_ack(struct sctp_inpcb *, struct sctp_tcb *, - struct mbuf *, int, int, struct sctphdr *, struct sctp_init_chunk *, +sctp_send_initiate_ack(struct sctp_inpcb *, struct sctp_tcb *, struct mbuf *, + int, int, struct sctphdr *, struct sctp_init_chunk *, + uint8_t, uint32_t, uint32_t, uint16_t, int); struct mbuf * @@ -116,6 +117,7 @@ void sctp_send_shutdown_complete(struct sctp_tcb *, struct sctp_nets *, int); void sctp_send_shutdown_complete2(struct mbuf *, struct sctphdr *, + uint8_t, uint32_t, uint32_t, uint16_t); void sctp_send_asconf(struct sctp_tcb *, struct sctp_nets *, int addr_locked); @@ -202,15 +204,19 @@ sctp_send_str_reset_req(struct sctp_tcb *stcb, void sctp_send_abort(struct mbuf *, int, struct sctphdr *, uint32_t, - struct mbuf *, uint32_t, uint16_t); + struct mbuf *, + uint8_t, uint32_t, + uint32_t, uint16_t); void sctp_send_operr_to(struct mbuf *, struct sctphdr *, uint32_t, - struct mbuf *, uint32_t, uint16_t); + struct mbuf *, + uint8_t, uint32_t, + uint32_t, uint16_t); #endif /* _KERNEL || __Userspace__ */ -#if defined(_KERNEL) || defined (__Userspace__) +#if defined(_KERNEL) || defined(__Userspace__) int sctp_sosend(struct socket *so, struct sockaddr *addr, diff --git a/sys/netinet/sctputil.c b/sys/netinet/sctputil.c index 5d02413f85f8..8fa6826860be 100644 --- a/sys/netinet/sctputil.c +++ b/sys/netinet/sctputil.c @@ -3823,7 +3823,9 @@ sctp_abort_notification(struct sctp_tcb *stcb, uint8_t from_peer, uint16_t error void sctp_abort_association(struct sctp_inpcb *inp, struct sctp_tcb *stcb, - struct mbuf *m, int iphlen, struct sctphdr *sh, struct mbuf *op_err, + struct mbuf *m, int iphlen, struct sctphdr *sh, + struct mbuf *op_err, + uint8_t use_mflowid, uint32_t mflowid, uint32_t vrf_id, uint16_t port) { uint32_t vtag; @@ -3842,7 +3844,9 @@ sctp_abort_association(struct sctp_inpcb *inp, struct sctp_tcb *stcb, vrf_id = stcb->asoc.vrf_id; stcb->asoc.state |= SCTP_STATE_WAS_ABORTED; } - sctp_send_abort(m, iphlen, sh, vtag, op_err, vrf_id, port); + sctp_send_abort(m, iphlen, sh, vtag, op_err, + use_mflowid, mflowid, + vrf_id, port); if (stcb != NULL) { /* Ok, now lets free it */ #if defined (__APPLE__) || defined(SCTP_SO_LOCK_TESTING) @@ -3992,7 +3996,9 @@ sctp_abort_an_association(struct sctp_inpcb *inp, struct sctp_tcb *stcb, void sctp_handle_ootb(struct mbuf *m, int iphlen, int offset, struct sctphdr *sh, - struct sctp_inpcb *inp, uint32_t vrf_id, uint16_t port) + struct sctp_inpcb *inp, + uint8_t use_mflowid, uint32_t mflowid, + uint32_t vrf_id, uint16_t port) { struct sctp_chunkhdr *ch, chunk_buf; unsigned int chk_length; @@ -4035,7 +4041,9 @@ sctp_handle_ootb(struct mbuf *m, int iphlen, int offset, struct sctphdr *sh, */ return; case SCTP_SHUTDOWN_ACK: - sctp_send_shutdown_complete2(m, sh, vrf_id, port); + sctp_send_shutdown_complete2(m, sh, + use_mflowid, mflowid, + vrf_id, port); return; default: break; @@ -4047,7 +4055,9 @@ sctp_handle_ootb(struct mbuf *m, int iphlen, int offset, struct sctphdr *sh, if ((SCTP_BASE_SYSCTL(sctp_blackhole) == 0) || ((SCTP_BASE_SYSCTL(sctp_blackhole) == 1) && (contains_init_chunk == 0))) { - sctp_send_abort(m, iphlen, sh, 0, NULL, vrf_id, port); + sctp_send_abort(m, iphlen, sh, 0, NULL, + use_mflowid, mflowid, + vrf_id, port); } } diff --git a/sys/netinet/sctputil.h b/sys/netinet/sctputil.h index 729c491731fc..8c4d0a6b00db 100644 --- a/sys/netinet/sctputil.h +++ b/sys/netinet/sctputil.h @@ -185,8 +185,10 @@ sctp_abort_notification(struct sctp_tcb *, uint8_t, uint16_t, /* We abort responding to an IP packet for some reason */ void -sctp_abort_association(struct sctp_inpcb *, struct sctp_tcb *, - struct mbuf *, int, struct sctphdr *, struct mbuf *, uint32_t, uint16_t); +sctp_abort_association(struct sctp_inpcb *, struct sctp_tcb *, struct mbuf *, + int, struct sctphdr *, struct mbuf *, + uint8_t, uint32_t, + uint32_t, uint16_t); /* We choose to abort via user input */ @@ -200,7 +202,9 @@ sctp_abort_an_association(struct sctp_inpcb *, struct sctp_tcb *, void sctp_handle_ootb(struct mbuf *, int, int, struct sctphdr *, - struct sctp_inpcb *, uint32_t, uint16_t); + struct sctp_inpcb *, + uint8_t, uint32_t, + uint32_t, uint16_t); int sctp_connectx_helper_add(struct sctp_tcb *stcb, struct sockaddr *addr, diff --git a/sys/netinet6/sctp6_usrreq.c b/sys/netinet6/sctp6_usrreq.c index ef792eee1136..71c4a7ee82e8 100644 --- a/sys/netinet6/sctp6_usrreq.c +++ b/sys/netinet6/sctp6_usrreq.c @@ -84,6 +84,8 @@ sctp6_input(struct mbuf **i_pak, int *offp, int proto) uint8_t ecn_bits; struct sctp_tcb *stcb = NULL; int pkt_len = 0; + uint32_t mflowid; + uint8_t use_mflowid; #if !defined(SCTP_WITH_NO_CSUM) uint32_t check, calc_check; @@ -103,6 +105,13 @@ sctp6_input(struct mbuf **i_pak, int *offp, int proto) #ifdef SCTP_PACKET_LOGGING sctp_packet_log(m, pkt_len); #endif + if (m->m_flags & M_FLOWID) { + mflowid = m->m_pkthdr.flowid; + use_mflowid = 1; + } else { + mflowid = 0; + use_mflowid = 0; + } ip6 = mtod(m, struct ip6_hdr *); /* Ensure that (sctphdr + sctp_chunkhdr) in a row. */ IP6_EXTHDR_GET(sh, struct sctphdr *, m, off, @@ -164,8 +173,8 @@ sctp6_input(struct mbuf **i_pak, int *offp, int proto) } net->port = port; } - if ((net != NULL) && (m->m_flags & M_FLOWID)) { - net->flowid = m->m_pkthdr.flowid; + if ((net != NULL) && (use_mflowid != 0)) { + net->flowid = mflowid; #ifdef INVARIANTS net->flowidset = 1; #endif @@ -198,8 +207,8 @@ sctp6_input(struct mbuf **i_pak, int *offp, int proto) } net->port = port; } - if ((net != NULL) && (m->m_flags & M_FLOWID)) { - net->flowid = m->m_pkthdr.flowid; + if ((net != NULL) && (use_mflowid != 0)) { + net->flowid = mflowid; #ifdef INVARIANTS net->flowidset = 1; #endif @@ -224,7 +233,9 @@ sctp6_input(struct mbuf **i_pak, int *offp, int proto) sh->v_tag = 0; } if (ch->chunk_type == SCTP_SHUTDOWN_ACK) { - sctp_send_shutdown_complete2(m, sh, vrf_id, port); + sctp_send_shutdown_complete2(m, sh, + use_mflowid, mflowid, + vrf_id, port); goto bad; } if (ch->chunk_type == SCTP_SHUTDOWN_COMPLETE) { @@ -234,7 +245,9 @@ sctp6_input(struct mbuf **i_pak, int *offp, int proto) if ((SCTP_BASE_SYSCTL(sctp_blackhole) == 0) || ((SCTP_BASE_SYSCTL(sctp_blackhole) == 1) && (ch->chunk_type != SCTP_INIT))) { - sctp_send_abort(m, iphlen, sh, 0, NULL, vrf_id, port); + sctp_send_abort(m, iphlen, sh, 0, NULL, + use_mflowid, mflowid, + vrf_id, port); } } goto bad; @@ -264,7 +277,9 @@ sctp6_input(struct mbuf **i_pak, int *offp, int proto) /* sa_ignore NO_NULL_CHK */ sctp_common_input_processing(&m, iphlen, offset, length, sh, ch, - in6p, stcb, net, ecn_bits, vrf_id, port); + in6p, stcb, net, ecn_bits, + use_mflowid, mflowid, + vrf_id, port); /* inp's ref-count reduced && stcb unlocked */ /* XXX this stuff below gets moved to appropriate parts later... */ if (m) From d4746e107fe59845a3620fdea4bde0e08768ee72 Mon Sep 17 00:00:00 2001 From: "Andrey V. Elsukov" Date: Thu, 14 Jun 2012 11:17:54 +0000 Subject: [PATCH 215/340] Always reconstruct partition entries in the PMBR when Boot Camp is disabled. This helps to easily recover from situations when PMBR is damaged and contains no entries. MFC after: 1 week --- sys/geom/part/g_part_gpt.c | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/sys/geom/part/g_part_gpt.c b/sys/geom/part/g_part_gpt.c index 68fb13cd6a6d..405b49212e26 100644 --- a/sys/geom/part/g_part_gpt.c +++ b/sys/geom/part/g_part_gpt.c @@ -341,9 +341,6 @@ gpt_update_bootcamp(struct g_part_table *basetable) disable: table->bootcamp = 0; - bzero(table->mbr + DOSPARTOFF, DOSPARTSIZE * NDOSPART); - gpt_write_mbr_entry(table->mbr, 0, 0xee, 1ull, - MIN(table->lba[GPT_ELT_SECHDR], UINT32_MAX)); } static struct gpt_hdr * @@ -589,10 +586,6 @@ g_part_gpt_bootcode(struct g_part_table *basetable, struct g_part_parms *gpp) codesz = MIN(codesz, gpp->gpp_codesize); if (codesz > 0) bcopy(gpp->gpp_codeptr, table->mbr, codesz); - - /* Mark the PMBR active since some BIOS require it. */ - if (!table->bootcamp) - table->mbr[DOSPARTOFF] = 0x80; /* status */ return (0); } @@ -601,7 +594,6 @@ g_part_gpt_create(struct g_part_table *basetable, struct g_part_parms *gpp) { struct g_provider *pp; struct g_part_gpt_table *table; - quad_t last; size_t tblsz; /* We don't nest, which means that our depth should be 0. */ @@ -617,11 +609,6 @@ g_part_gpt_create(struct g_part_table *basetable, struct g_part_parms *gpp) pp->sectorsize) return (ENOSPC); - last = (pp->mediasize / pp->sectorsize) - 1; - - le16enc(table->mbr + DOSMAGICOFFSET, DOSMAGIC); - gpt_write_mbr_entry(table->mbr, 0, 0xee, 1, MIN(last, UINT32_MAX)); - /* Allocate space for the header */ table->hdr = g_malloc(sizeof(struct gpt_hdr), M_WAITOK | M_ZERO); @@ -1047,6 +1034,16 @@ g_part_gpt_write(struct g_part_table *basetable, struct g_consumer *cp) if (table->bootcamp) gpt_update_bootcamp(basetable); + /* Update partition entries in the PMBR if Boot Camp disabled. */ + if (!table->bootcamp) { + bzero(table->mbr + DOSPARTOFF, DOSPARTSIZE * NDOSPART); + gpt_write_mbr_entry(table->mbr, 0, 0xee, 1, + MIN(pp->mediasize / pp->sectorsize - 1, UINT32_MAX)); + /* Mark the PMBR active since some BIOS require it. */ + table->mbr[DOSPARTOFF] = 0x80; + } + le16enc(table->mbr + DOSMAGICOFFSET, DOSMAGIC); + /* Write the PMBR */ buf = g_malloc(pp->sectorsize, M_WAITOK | M_ZERO); bcopy(table->mbr, buf, MBRSIZE); From e474e51e0709d7e6811316a99c20109204b80ea7 Mon Sep 17 00:00:00 2001 From: Konstantin Belousov Date: Thu, 14 Jun 2012 11:20:22 +0000 Subject: [PATCH 216/340] Eliminate the static buffer used to read the first page of the mapped object, and eliminate the pread(2) call as well [1]. Mmap the first page of the object temporaly, and unmap it on error or last use. Potentially, this leaves one-page gap between succeeding dlopen(3), but there are other mmap(2) consumers as well. Fix several cases were the whole mapping of the object leaked on error. Use MAP_PREFAULT_READ for mmap(2) calls which map real object pages [2]. Insipired by the patch by: Ian Lepore [1] Suggested by: alc [2] MFC after: 2 weeks --- libexec/rtld-elf/map_object.c | 130 ++++++++++++++++++---------------- 1 file changed, 69 insertions(+), 61 deletions(-) diff --git a/libexec/rtld-elf/map_object.c b/libexec/rtld-elf/map_object.c index d74ef1554499..509a64f48bc5 100644 --- a/libexec/rtld-elf/map_object.c +++ b/libexec/rtld-elf/map_object.c @@ -38,7 +38,7 @@ #include "debug.h" #include "rtld.h" -static Elf_Ehdr *get_elf_header (int, const char *); +static Elf_Ehdr *get_elf_header(int, const char *); static int convert_prot(int); /* Elf flags -> mmap protection */ static int convert_flags(int); /* Elf flags -> mmap flags */ @@ -121,7 +121,7 @@ map_object(int fd, const char *path, const struct stat *sb) if ((segs[nsegs]->p_align & (PAGE_SIZE - 1)) != 0) { _rtld_error("%s: PT_LOAD segment %d not page-aligned", path, nsegs); - return NULL; + goto error; } break; @@ -161,12 +161,12 @@ map_object(int fd, const char *path, const struct stat *sb) } if (phdyn == NULL) { _rtld_error("%s: object is not dynamically-linked", path); - return NULL; + goto error; } if (nsegs < 0) { _rtld_error("%s: too few PT_LOAD segments", path); - return NULL; + goto error; } /* @@ -183,13 +183,12 @@ map_object(int fd, const char *path, const struct stat *sb) if (mapbase == (caddr_t) -1) { _rtld_error("%s: mmap of entire address space failed: %s", path, rtld_strerror(errno)); - return NULL; + goto error; } if (base_addr != NULL && mapbase != base_addr) { _rtld_error("%s: mmap returned wrong address: wanted %p, got %p", path, base_addr, mapbase); - munmap(mapbase, mapsize); - return NULL; + goto error1; } for (i = 0; i <= nsegs; i++) { @@ -201,10 +200,10 @@ map_object(int fd, const char *path, const struct stat *sb) data_prot = convert_prot(segs[i]->p_flags); data_flags = convert_flags(segs[i]->p_flags) | MAP_FIXED; if (mmap(data_addr, data_vlimit - data_vaddr, data_prot, - data_flags, fd, data_offset) == (caddr_t) -1) { + data_flags | MAP_PREFAULT_READ, fd, data_offset) == (caddr_t) -1) { _rtld_error("%s: mmap of data failed: %s", path, rtld_strerror(errno)); - return NULL; + goto error1; } /* Do BSS setup */ @@ -221,7 +220,7 @@ map_object(int fd, const char *path, const struct stat *sb) mprotect(clear_page, PAGE_SIZE, data_prot|PROT_WRITE)) { _rtld_error("%s: mprotect failed: %s", path, rtld_strerror(errno)); - return NULL; + goto error1; } memset(clear_addr, 0, nclear); @@ -240,7 +239,7 @@ map_object(int fd, const char *path, const struct stat *sb) data_flags | MAP_ANON, -1, 0) == (caddr_t)-1) { _rtld_error("%s: mmap of bss failed: %s", path, rtld_strerror(errno)); - return NULL; + goto error1; } } } @@ -273,7 +272,7 @@ map_object(int fd, const char *path, const struct stat *sb) if (obj->phdr == NULL) { obj_free(obj); _rtld_error("%s: cannot allocate program header", path); - return NULL; + goto error1; } memcpy((char *)obj->phdr, (char *)hdr + hdr->e_phoff, phsize); obj->phdr_alloc = true; @@ -293,63 +292,72 @@ map_object(int fd, const char *path, const struct stat *sb) obj->relro_page = obj->relocbase + trunc_page(relro_page); obj->relro_size = round_page(relro_size); - return obj; + munmap(hdr, PAGE_SIZE); + return (obj); + +error1: + munmap(mapbase, mapsize); +error: + munmap(hdr, PAGE_SIZE); + return (NULL); } static Elf_Ehdr * -get_elf_header (int fd, const char *path) +get_elf_header(int fd, const char *path) { - static union { - Elf_Ehdr hdr; - char buf[PAGE_SIZE]; - } u; - ssize_t nbytes; + Elf_Ehdr *hdr; - if ((nbytes = pread(fd, u.buf, PAGE_SIZE, 0)) == -1) { - _rtld_error("%s: read error: %s", path, rtld_strerror(errno)); - return NULL; - } + hdr = mmap(NULL, PAGE_SIZE, PROT_READ, MAP_PRIVATE | MAP_PREFAULT_READ, + fd, 0); + if (hdr == (Elf_Ehdr *)MAP_FAILED) { + _rtld_error("%s: read error: %s", path, rtld_strerror(errno)); + return (NULL); + } - /* Make sure the file is valid */ - if (nbytes < (ssize_t)sizeof(Elf_Ehdr) || !IS_ELF(u.hdr)) { - _rtld_error("%s: invalid file format", path); - return NULL; - } - if (u.hdr.e_ident[EI_CLASS] != ELF_TARG_CLASS - || u.hdr.e_ident[EI_DATA] != ELF_TARG_DATA) { - _rtld_error("%s: unsupported file layout", path); - return NULL; - } - if (u.hdr.e_ident[EI_VERSION] != EV_CURRENT - || u.hdr.e_version != EV_CURRENT) { - _rtld_error("%s: unsupported file version", path); - return NULL; - } - if (u.hdr.e_type != ET_EXEC && u.hdr.e_type != ET_DYN) { - _rtld_error("%s: unsupported file type", path); - return NULL; - } - if (u.hdr.e_machine != ELF_TARG_MACH) { - _rtld_error("%s: unsupported machine", path); - return NULL; - } + /* Make sure the file is valid */ + if (!IS_ELF(*hdr)) { + _rtld_error("%s: invalid file format", path); + goto error; + } + if (hdr->e_ident[EI_CLASS] != ELF_TARG_CLASS || + hdr->e_ident[EI_DATA] != ELF_TARG_DATA) { + _rtld_error("%s: unsupported file layout", path); + goto error; + } + if (hdr->e_ident[EI_VERSION] != EV_CURRENT || + hdr->e_version != EV_CURRENT) { + _rtld_error("%s: unsupported file version", path); + goto error; + } + if (hdr->e_type != ET_EXEC && hdr->e_type != ET_DYN) { + _rtld_error("%s: unsupported file type", path); + goto error; + } + if (hdr->e_machine != ELF_TARG_MACH) { + _rtld_error("%s: unsupported machine", path); + goto error; + } - /* - * We rely on the program header being in the first page. This is - * not strictly required by the ABI specification, but it seems to - * always true in practice. And, it simplifies things considerably. - */ - if (u.hdr.e_phentsize != sizeof(Elf_Phdr)) { - _rtld_error( - "%s: invalid shared object: e_phentsize != sizeof(Elf_Phdr)", path); - return NULL; - } - if (u.hdr.e_phoff + u.hdr.e_phnum * sizeof(Elf_Phdr) > (size_t)nbytes) { - _rtld_error("%s: program header too large", path); - return NULL; - } + /* + * We rely on the program header being in the first page. This is + * not strictly required by the ABI specification, but it seems to + * always true in practice. And, it simplifies things considerably. + */ + if (hdr->e_phentsize != sizeof(Elf_Phdr)) { + _rtld_error( + "%s: invalid shared object: e_phentsize != sizeof(Elf_Phdr)", path); + goto error; + } + if (hdr->e_phoff + hdr->e_phnum * sizeof(Elf_Phdr) > + (size_t)PAGE_SIZE) { + _rtld_error("%s: program header too large", path); + goto error; + } + return (hdr); - return (&u.hdr); +error: + munmap(hdr, PAGE_SIZE); + return (NULL); } void From 61235d9e01bf57db0d35b2dc2e0fb7d269fbefbb Mon Sep 17 00:00:00 2001 From: Konstantin Belousov Date: Thu, 14 Jun 2012 12:28:43 +0000 Subject: [PATCH 217/340] Make sure that fstab fd is not leaked on exec. PR: kern/169023 Submitted by: Jukka Ukkonen MFC after: 1 week --- lib/libc/gen/fstab.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/lib/libc/gen/fstab.c b/lib/libc/gen/fstab.c index b2c28ad53d4a..882c57f1e884 100644 --- a/lib/libc/gen/fstab.c +++ b/lib/libc/gen/fstab.c @@ -39,6 +39,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include #include @@ -246,6 +247,8 @@ getfsfile(name) int setfsent() { + int fd; + if (_fs_fp) { rewind(_fs_fp); LineNo = 0; @@ -257,11 +260,18 @@ setfsent() else setfstab(getenv("PATH_FSTAB")); } - if ((_fs_fp = fopen(path_fstab, "r")) != NULL) { + fd = _open(path_fstab, O_RDONLY | O_CLOEXEC); + if (fd == -1) { + error(errno); + return (0); + } + _fs_fp = fdopen(fd, "r"); + if (_fs_fp != NULL) { LineNo = 0; return(1); } error(errno); + _close(fd); return(0); } From 5570ae7d87c69d1bbed7e11c386e733218125c20 Mon Sep 17 00:00:00 2001 From: Pawel Jakub Dawidek Date: Thu, 14 Jun 2012 12:37:41 +0000 Subject: [PATCH 218/340] Style. MFC after: 1 month --- sys/kern/kern_descrip.c | 33 ++++++++++++++------------------- 1 file changed, 14 insertions(+), 19 deletions(-) diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c index 419705965fd3..5a9f9e10569f 100644 --- a/sys/kern/kern_descrip.c +++ b/sys/kern/kern_descrip.c @@ -686,7 +686,7 @@ kern_fcntl(struct thread *td, int fd, int cmd, intptr_t arg) flp->l_type = F_UNLCK; vfslocked = VFS_LOCK_GIANT(vp->v_mount); (void) VOP_ADVLOCK(vp, (caddr_t)p->p_leader, - F_UNLCK, flp, F_POSIX); + F_UNLCK, flp, F_POSIX); VFS_UNLOCK_GIANT(vfslocked); vfslocked = 0; } else @@ -1370,6 +1370,7 @@ sys_fpathconf(struct thread *td, struct fpathconf_args *uap) vp = fp->f_vnode; if (vp != NULL) { int vfslocked; + vfslocked = VFS_LOCK_GIANT(vp->v_mount); vn_lock(vp, LK_SHARED | LK_RETRY); error = VOP_PATHCONF(vp, uap->name, td->td_retval); @@ -1380,7 +1381,7 @@ sys_fpathconf(struct thread *td, struct fpathconf_args *uap) error = EINVAL; } else { td->td_retval[0] = PIPE_BUF; - error = 0; + error = 0; } } else { error = EOPNOTSUPP; @@ -1834,11 +1835,8 @@ fdfree(struct thread *td) vp = fp->f_vnode; locked = VFS_LOCK_GIANT(vp->v_mount); (void) VOP_ADVLOCK(vp, - (caddr_t)td->td_proc-> - p_leader, - F_UNLCK, - &lf, - F_POSIX); + (caddr_t)td->td_proc->p_leader, F_UNLCK, + &lf, F_POSIX); VFS_UNLOCK_GIANT(locked); FILEDESC_XLOCK(fdp); fdrop(fp, td); @@ -2027,6 +2025,7 @@ void fdcloseexec(struct thread *td) { struct filedesc *fdp; + struct file *fp; int i; /* Certain daemons might not have file descriptors. */ @@ -2034,27 +2033,23 @@ fdcloseexec(struct thread *td) if (fdp == NULL) return; - FILEDESC_XLOCK(fdp); - /* * We cannot cache fd_ofiles or fd_ofileflags since operations * may block and rip them out from under us. */ + FILEDESC_XLOCK(fdp); for (i = 0; i <= fdp->fd_lastfile; i++) { - if (fdp->fd_ofiles[i] != NULL && - (fdp->fd_ofiles[i]->f_type == DTYPE_MQUEUE || + fp = fdp->fd_ofiles[i]; + if (fp != NULL && (fp->f_type == DTYPE_MQUEUE || (fdp->fd_ofileflags[i] & UF_EXCLOSE))) { - struct file *fp; - - knote_fdclose(td, i); /* * NULL-out descriptor prior to close to avoid * a race while close blocks. */ - fp = fdp->fd_ofiles[i]; fdp->fd_ofiles[i] = NULL; fdp->fd_ofileflags[i] = 0; fdunused(fdp, i); + knote_fdclose(td, i); if (fp->f_type == DTYPE_MQUEUE) mq_fdclose(td, i, fp); FILEDESC_XUNLOCK(fdp); @@ -2139,7 +2134,7 @@ closef(struct file *fp, struct thread *td) * node, not the capability itself. */ (void)cap_funwrap(fp, 0, &fp_object); - if ((fp_object->f_type == DTYPE_VNODE) && (td != NULL)) { + if (fp_object->f_type == DTYPE_VNODE && td != NULL) { int vfslocked; vp = fp_object->f_vnode; @@ -2150,7 +2145,7 @@ closef(struct file *fp, struct thread *td) lf.l_len = 0; lf.l_type = F_UNLCK; (void) VOP_ADVLOCK(vp, (caddr_t)td->td_proc->p_leader, - F_UNLCK, &lf, F_POSIX); + F_UNLCK, &lf, F_POSIX); } fdtol = td->td_proc->p_fdtol; if (fdtol != NULL) { @@ -2174,8 +2169,8 @@ closef(struct file *fp, struct thread *td) lf.l_type = F_UNLCK; vp = fp_object->f_vnode; (void) VOP_ADVLOCK(vp, - (caddr_t)fdtol->fdl_leader, - F_UNLCK, &lf, F_POSIX); + (caddr_t)fdtol->fdl_leader, F_UNLCK, &lf, + F_POSIX); FILEDESC_XLOCK(fdp); fdtol->fdl_holdcount--; if (fdtol->fdl_holdcount == 0 && From 8f59e9fddc1a6e2cbf3ff27c7b6160a851dd8ddd Mon Sep 17 00:00:00 2001 From: Pawel Jakub Dawidek Date: Thu, 14 Jun 2012 12:41:21 +0000 Subject: [PATCH 219/340] When we are closing capabilities during exec, we want to call mq_fdclose() on the underlying object and not on the capability itself. Similar bug was fixed in r236853. MFC after: 1 month --- sys/kern/kern_descrip.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c index 5a9f9e10569f..09343fa99fc8 100644 --- a/sys/kern/kern_descrip.c +++ b/sys/kern/kern_descrip.c @@ -2025,7 +2025,7 @@ void fdcloseexec(struct thread *td) { struct filedesc *fdp; - struct file *fp; + struct file *fp, *fp_object; int i; /* Certain daemons might not have file descriptors. */ @@ -2050,8 +2050,14 @@ fdcloseexec(struct thread *td) fdp->fd_ofileflags[i] = 0; fdunused(fdp, i); knote_fdclose(td, i); - if (fp->f_type == DTYPE_MQUEUE) - mq_fdclose(td, i, fp); + /* + * When we're closing an fd with a capability, we need + * to notify mqueue if the underlying object is of type + * mqueue. + */ + (void)cap_funwrap(fp, 0, &fp_object); + if (fp_object->f_type == DTYPE_MQUEUE) + mq_fdclose(td, i, fp_object); FILEDESC_XUNLOCK(fdp); (void) closef(fp, td); FILEDESC_XLOCK(fdp); From c7e9a659ca4a3f6e6638b50c2821444435d6064a Mon Sep 17 00:00:00 2001 From: Pawel Jakub Dawidek Date: Thu, 14 Jun 2012 12:43:37 +0000 Subject: [PATCH 220/340] Remove code duplication from fdclosexec(), which was the reason of the bug fixed in r237065. MFC after: 1 month --- sys/kern/kern_descrip.c | 49 ++++++++++++++++------------------------- 1 file changed, 19 insertions(+), 30 deletions(-) diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c index 09343fa99fc8..c38e10a4322b 100644 --- a/sys/kern/kern_descrip.c +++ b/sys/kern/kern_descrip.c @@ -115,7 +115,7 @@ static uma_zone_t file_zone; #define DUP_FCNTL 0x2 /* fcntl()-style errors */ static int closefp(struct filedesc *fdp, int fd, struct file *fp, - struct thread *td); + struct thread *td, int holdleaders); static int do_dup(struct thread *td, int flags, int old, int new, register_t *retval); static int fd_first_free(struct filedesc *, int, int); @@ -885,7 +885,7 @@ do_dup(struct thread *td, int flags, int old, int new, *retval = new; if (delfp != NULL) { - (void) closefp(fdp, new, delfp, td); + (void) closefp(fdp, new, delfp, td, 1); /* closefp() drops the FILEDESC lock for us. */ } else { FILEDESC_XUNLOCK(fdp); @@ -1117,22 +1117,24 @@ fgetown(sigiop) * Function drops the filedesc lock on return. */ static int -closefp(struct filedesc *fdp, int fd, struct file *fp, struct thread *td) +closefp(struct filedesc *fdp, int fd, struct file *fp, struct thread *td, + int holdleaders) { struct file *fp_object; - int error, holdleaders; + int error; FILEDESC_XLOCK_ASSERT(fdp); - if (td->td_proc->p_fdtol != NULL) { - /* - * Ask fdfree() to sleep to ensure that all relevant - * process leaders can be traversed in closef(). - */ - fdp->fd_holdleaderscount++; - holdleaders = 1; - } else { - holdleaders = 0; + if (holdleaders) { + if (td->td_proc->p_fdtol != NULL) { + /* + * Ask fdfree() to sleep to ensure that all relevant + * process leaders can be traversed in closef(). + */ + fdp->fd_holdleaderscount++; + } else { + holdleaders = 0; + } } /* @@ -1207,7 +1209,7 @@ kern_close(td, fd) fdunused(fdp, fd); /* closefp() drops the FILEDESC lock for us. */ - return (closefp(fdp, fd, fp, td)); + return (closefp(fdp, fd, fp, td, 1)); } /* @@ -2025,7 +2027,7 @@ void fdcloseexec(struct thread *td) { struct filedesc *fdp; - struct file *fp, *fp_object; + struct file *fp; int i; /* Certain daemons might not have file descriptors. */ @@ -2042,24 +2044,11 @@ fdcloseexec(struct thread *td) fp = fdp->fd_ofiles[i]; if (fp != NULL && (fp->f_type == DTYPE_MQUEUE || (fdp->fd_ofileflags[i] & UF_EXCLOSE))) { - /* - * NULL-out descriptor prior to close to avoid - * a race while close blocks. - */ fdp->fd_ofiles[i] = NULL; fdp->fd_ofileflags[i] = 0; fdunused(fdp, i); - knote_fdclose(td, i); - /* - * When we're closing an fd with a capability, we need - * to notify mqueue if the underlying object is of type - * mqueue. - */ - (void)cap_funwrap(fp, 0, &fp_object); - if (fp_object->f_type == DTYPE_MQUEUE) - mq_fdclose(td, i, fp_object); - FILEDESC_XUNLOCK(fdp); - (void) closef(fp, td); + (void) closefp(fdp, i, fp, td, 0); + /* closefp() drops the FILEDESC lock. */ FILEDESC_XLOCK(fdp); } } From a6c5f8268637213f54b5a4cdb5a773d0d7e87e7c Mon Sep 17 00:00:00 2001 From: Warner Losh Date: Thu, 14 Jun 2012 14:38:55 +0000 Subject: [PATCH 221/340] Defines for parsing linux ATAGs lists. --- sys/arm/include/atags.h | 129 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 129 insertions(+) create mode 100644 sys/arm/include/atags.h diff --git a/sys/arm/include/atags.h b/sys/arm/include/atags.h new file mode 100644 index 000000000000..0eb6369a34f5 --- /dev/null +++ b/sys/arm/include/atags.h @@ -0,0 +1,129 @@ +/*- + * Copyright (c) 2012 M. Warner Losh. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef __MACHINE_ATAGS_H__ +#define __MACHINE_ATAGS_H__ + +/* + * Linux boot ABI compatable ATAG definitions. All these structures + * assume tight packing, but since they are all uint32_t's, I've not + * bothered to do the usual alignment dance. + */ + +#define LBABI_MAX_COMMAND_LINE 1024 + +struct arm_lbabi_header +{ + uint32_t size; /* Size of this node, including header */ + uint32_t tag; /* Node type */ +}; + +#define ATAG_NONE 0x00000000 /* End of atags list */ +#define ATAG_CORE 0x54410001 /* List must start with ATAG_CORE */ +#define ATAG_MEM 0x54410002 /* Multiple ATAG_MEM nodes possible */ +#define ATAG_VIDEOTEXT 0x54410003 /* Video parameters */ +#define ATAG_RAMDISK 0x54410004 /* Describes the ramdisk parameters */ +#define ATAG_INITRD 0x54410005 /* Deprecated ramdisk -- used va not pa */ +#define ATAG_INITRD2 0x54420005 /* compressed ramdisk image */ +#define ATAG_SERIAL 0x54410006 /* 64-bits of serial number */ +#define ATAG_REVISION 0x54410007 /* Board revision */ +#define ATAG_VIDEOLFB 0x54410008 /* vesafb framebuffer */ +#define ATAG_CMDLINE 0x54410009 /* Command line */ + +/* + * ATAG_CORE data + */ +struct arm_lbabi_core +{ + uint32_t flags; /* bit 0 == read-only */ + uint32_t pagesize; + uint32_t rootdev; +}; + +/* + * ATAG_MEM data -- Can be more than one to describe different + * banks. + */ +struct arm_lbabi_mem32 +{ + uint32_t size; + uint32_t start; /* start of physical memory */ +}; + +/* + * ATAG_INITRD2 - Compressed ramdisk image details + */ +struct arm_lbabi_initrd +{ + uint32_t start; /* pa of start */ + uint32_t size; /* How big the ram disk is */ +}; + +/* + * ATAG_SERIAL - serial number + */ +struct arm_lbabi_serial_number +{ + uint32_t low; + uint32_t high; +}; + +/* + * ATAG_REVISION - board revision + */ +struct arm_lbabi_revision +{ + uint32_t rev; +}; + +/* + * ATAG_CMDLINE - Command line from uboot + */ +struct arm_lbabi_command_line +{ + char command[1]; /* Minimum command length */ +}; + +struct arm_lbabi_tag +{ + struct arm_lbabi_header tag_hdr; + union { + struct arm_lbabi_core tag_core; + struct arm_lbabi_mem32 tag_mem; + struct arm_lbabi_initrd tag_initrd; + struct arm_lbabi_serial_number tag_sn; + struct arm_lbabi_revision tag_rev; + struct arm_lbabi_command_line tag_cmd; + } u; +}; + +#define ATAG_TAG(a) (a)->tag_hdr.tag +#define ATAG_SIZE(a) (a)->tag_hdr.size +#define ATAG_NEXT(a) (struct arm_lbabi_tag *)((char *)(a) + ATAG_SIZE(a)) + +#endif /* __MACHINE_ATAGS_H__ */ From eb273c01f3f601e32dae318c576881d2e0d89a30 Mon Sep 17 00:00:00 2001 From: Pawel Jakub Dawidek Date: Thu, 14 Jun 2012 15:21:57 +0000 Subject: [PATCH 222/340] Style fixes. Reported by: bde MFC after: 1 month --- sys/kern/kern_descrip.c | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c index c38e10a4322b..f2a43b7f9688 100644 --- a/sys/kern/kern_descrip.c +++ b/sys/kern/kern_descrip.c @@ -102,7 +102,7 @@ __FBSDID("$FreeBSD$"); static MALLOC_DEFINE(M_FILEDESC, "filedesc", "Open file descriptor table"); static MALLOC_DEFINE(M_FILEDESC_TO_LEADER, "filedesc_to_leader", - "file desc to leader structures"); + "file desc to leader structures"); static MALLOC_DEFINE(M_SIGIO, "sigio", "sigio structures"); MALLOC_DECLARE(M_FADVISE); @@ -114,22 +114,21 @@ static uma_zone_t file_zone; #define DUP_FIXED 0x1 /* Force fixed allocation */ #define DUP_FCNTL 0x2 /* fcntl()-style errors */ -static int closefp(struct filedesc *fdp, int fd, struct file *fp, +static int closefp(struct filedesc *fdp, int fd, struct file *fp, struct thread *td, int holdleaders); -static int do_dup(struct thread *td, int flags, int old, int new, +static int do_dup(struct thread *td, int flags, int old, int new, register_t *retval); -static int fd_first_free(struct filedesc *, int, int); -static int fd_last_used(struct filedesc *, int); -static void fdgrowtable(struct filedesc *, int); -static void fdunused(struct filedesc *fdp, int fd); -static void fdused(struct filedesc *fdp, int fd); -static int fill_vnode_info(struct vnode *vp, struct kinfo_file *kif); -static int fill_socket_info(struct socket *so, struct kinfo_file *kif); -static int fill_pts_info(struct tty *tp, struct kinfo_file *kif); -static int fill_pipe_info(struct pipe *pi, struct kinfo_file *kif); -static int fill_procdesc_info(struct procdesc *pdp, - struct kinfo_file *kif); -static int fill_shm_info(struct file *fp, struct kinfo_file *kif); +static int fd_first_free(struct filedesc *fdp, int low, int size); +static int fd_last_used(struct filedesc *fdp, int size); +static void fdgrowtable(struct filedesc *fdp, int nfd); +static void fdunused(struct filedesc *fdp, int fd); +static void fdused(struct filedesc *fdp, int fd); +static int fill_pipe_info(struct pipe *pi, struct kinfo_file *kif); +static int fill_procdesc_info(struct procdesc *pdp, struct kinfo_file *kif); +static int fill_pts_info(struct tty *tp, struct kinfo_file *kif); +static int fill_shm_info(struct file *fp, struct kinfo_file *kif); +static int fill_socket_info(struct socket *so, struct kinfo_file *kif); +static int fill_vnode_info(struct vnode *vp, struct kinfo_file *kif); /* * A process is initially started out with NDFILE descriptors stored within @@ -183,10 +182,10 @@ struct filedesc0 { */ volatile int openfiles; /* actual number of open files */ struct mtx sigio_lock; /* mtx to protect pointers to sigio */ -void (*mq_fdclose)(struct thread *td, int fd, struct file *fp); +void (*mq_fdclose)(struct thread *td, int fd, struct file *fp); /* A mutex to protect the association between a proc and filedesc. */ -static struct mtx fdesc_mtx; +static struct mtx fdesc_mtx; /* * If low >= size, just return low. Otherwise find the first zero bit in the From ee142bc754a29707795c01181d6c94e2b4b791e6 Mon Sep 17 00:00:00 2001 From: Pawel Jakub Dawidek Date: Thu, 14 Jun 2012 15:23:51 +0000 Subject: [PATCH 223/340] Explicitly check if 'fd' is less than 0 instead of using cast-to-unsinged hack. MFC after: 1 month --- sys/sys/filedesc.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/sys/filedesc.h b/sys/sys/filedesc.h index bf416e91edff..41106f7bcd44 100644 --- a/sys/sys/filedesc.h +++ b/sys/sys/filedesc.h @@ -141,7 +141,7 @@ static __inline struct file * fget_locked(struct filedesc *fdp, int fd) { - return ((unsigned int)fd >= fdp->fd_nfiles ? NULL : fdp->fd_ofiles[fd]); + return (fd < 0 || fd >= fdp->fd_nfiles ? NULL : fdp->fd_ofiles[fd]); } #endif /* _KERNEL */ From d4cede6e988aebb7ff4b16f7a6d36a4da46ca41f Mon Sep 17 00:00:00 2001 From: Pawel Jakub Dawidek Date: Thu, 14 Jun 2012 15:24:45 +0000 Subject: [PATCH 224/340] Add FILEDESC_UNLOCK_ASSERT() macro which asserts that the filedesc is not being held by the current thread (at least exclusively). MFC after: 1 month --- sys/sys/filedesc.h | 1 + 1 file changed, 1 insertion(+) diff --git a/sys/sys/filedesc.h b/sys/sys/filedesc.h index 41106f7bcd44..2be03af64c75 100644 --- a/sys/sys/filedesc.h +++ b/sys/sys/filedesc.h @@ -105,6 +105,7 @@ struct filedesc_to_leader { SX_NOTRECURSED) #define FILEDESC_XLOCK_ASSERT(fdp) sx_assert(&(fdp)->fd_sx, SX_XLOCKED | \ SX_NOTRECURSED) +#define FILEDESC_UNLOCK_ASSERT(fdp) sx_assert(&(fdp)->fd_sx, SX_UNLOCKED) struct thread; From 8d169d9ff063784f7f01ab1d73282ceebb038674 Mon Sep 17 00:00:00 2001 From: Pawel Jakub Dawidek Date: Thu, 14 Jun 2012 15:26:23 +0000 Subject: [PATCH 225/340] Assert that the filedesc lock is not held when closef() is called. MFC after: 1 month --- sys/kern/kern_descrip.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c index f2a43b7f9688..6802672b96cd 100644 --- a/sys/kern/kern_descrip.c +++ b/sys/kern/kern_descrip.c @@ -2112,6 +2112,9 @@ closef(struct file *fp, struct thread *td) struct filedesc *fdp; struct file *fp_object; + fdp = td->td_proc->p_fd; + FILEDESC_UNLOCK_ASSERT(fdp); + /* * POSIX record locking dictates that any close releases ALL * locks owned by this process. This is handled by setting @@ -2147,7 +2150,6 @@ closef(struct file *fp, struct thread *td) * Handle special case where file descriptor table is * shared between multiple process leaders. */ - fdp = td->td_proc->p_fd; FILEDESC_XLOCK(fdp); for (fdtol = fdtol->fdl_next; fdtol != td->td_proc->p_fdtol; From 7aef754274f86dd13896bbef2f1ed0fcdbf356b1 Mon Sep 17 00:00:00 2001 From: Pawel Jakub Dawidek Date: Thu, 14 Jun 2012 15:34:10 +0000 Subject: [PATCH 226/340] Style fixes and assertions improvements. MFC after: 1 month --- sys/kern/kern_descrip.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c index 6802672b96cd..bf3d01d3bdb8 100644 --- a/sys/kern/kern_descrip.c +++ b/sys/kern/kern_descrip.c @@ -242,8 +242,10 @@ fd_last_used(struct filedesc *fdp, int size) static int fdisused(struct filedesc *fdp, int fd) { + KASSERT(fd >= 0 && fd < fdp->fd_nfiles, ("file descriptor %d out of range (0, %d)", fd, fdp->fd_nfiles)); + return ((fdp->fd_map[NDSLOT(fd)] & NDBIT(fd)) != 0); } @@ -255,8 +257,8 @@ fdused(struct filedesc *fdp, int fd) { FILEDESC_XLOCK_ASSERT(fdp); - KASSERT(!fdisused(fdp, fd), - ("fd already used")); + + KASSERT(!fdisused(fdp, fd), ("fd=%d is already used", fd)); fdp->fd_map[NDSLOT(fd)] |= NDBIT(fd); if (fd > fdp->fd_lastfile) @@ -273,10 +275,9 @@ fdunused(struct filedesc *fdp, int fd) { FILEDESC_XLOCK_ASSERT(fdp); - KASSERT(fdisused(fdp, fd), - ("fd is already unused")); - KASSERT(fdp->fd_ofiles[fd] == NULL, - ("fd is still in use")); + + KASSERT(fdisused(fdp, fd), ("fd=%d is already unused", fd)); + KASSERT(fdp->fd_ofiles[fd] == NULL, ("fd=%d is still in use", fd)); fdp->fd_map[NDSLOT(fd)] &= ~NDBIT(fd); if (fd < fdp->fd_freefile) From 215aeba93932fb6260242f93a5cddb33e5463d81 Mon Sep 17 00:00:00 2001 From: Pawel Jakub Dawidek Date: Thu, 14 Jun 2012 15:35:14 +0000 Subject: [PATCH 227/340] - Assert that the filedesc lock is being held when fdisused() is called. - Fix white spaces. MFC after: 1 month --- sys/kern/kern_descrip.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c index bf3d01d3bdb8..e2fbedf25ad9 100644 --- a/sys/kern/kern_descrip.c +++ b/sys/kern/kern_descrip.c @@ -243,8 +243,10 @@ static int fdisused(struct filedesc *fdp, int fd) { - KASSERT(fd >= 0 && fd < fdp->fd_nfiles, - ("file descriptor %d out of range (0, %d)", fd, fdp->fd_nfiles)); + FILEDESC_LOCK_ASSERT(fdp); + + KASSERT(fd >= 0 && fd < fdp->fd_nfiles, + ("file descriptor %d out of range (0, %d)", fd, fdp->fd_nfiles)); return ((fdp->fd_map[NDSLOT(fd)] & NDBIT(fd)) != 0); } From 1a94dc85814b44974acc56a7d9dd967b02fa5af1 Mon Sep 17 00:00:00 2001 From: Pawel Jakub Dawidek Date: Thu, 14 Jun 2012 15:37:15 +0000 Subject: [PATCH 228/340] Simplify the code by making more use of the fdtofp() function. MFC after: 1 month --- sys/kern/kern_descrip.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c index e2fbedf25ad9..4a692a61d62c 100644 --- a/sys/kern/kern_descrip.c +++ b/sys/kern/kern_descrip.c @@ -679,8 +679,7 @@ kern_fcntl(struct thread *td, int fd, int cmd, intptr_t arg) vfslocked = 0; /* Check for race with close */ FILEDESC_SLOCK(fdp); - if (fd < 0 || fd >= fdp->fd_nfiles || - fp != fdp->fd_ofiles[fd]) { + if (fdtofp(fd, fdp) != fp) { FILEDESC_SUNLOCK(fdp); flp->l_whence = SEEK_SET; flp->l_start = 0; @@ -822,7 +821,7 @@ do_dup(struct thread *td, int flags, int old, int new, return (flags & DUP_FCNTL ? EINVAL : EBADF); FILEDESC_XLOCK(fdp); - if (old >= fdp->fd_nfiles || fdp->fd_ofiles[old] == NULL) { + if (fdtofp(old, fdp) == NULL) { FILEDESC_XUNLOCK(fdp); return (EBADF); } @@ -1201,8 +1200,7 @@ kern_close(td, fd) AUDIT_SYSCLOSE(td, fd); FILEDESC_XLOCK(fdp); - if (fd < 0 || fd >= fdp->fd_nfiles || - (fp = fdp->fd_ofiles[fd]) == NULL) { + if ((fp = fdtofp(fd, fdp)) == NULL) { FILEDESC_XUNLOCK(fdp); return (EBADF); } @@ -2596,8 +2594,7 @@ dupfdopen(struct thread *td, struct filedesc *fdp, int dfd, int mode, int opener * closed, then reject. */ FILEDESC_XLOCK(fdp); - if (dfd < 0 || dfd >= fdp->fd_nfiles || - (fp = fdp->fd_ofiles[dfd]) == NULL) { + if ((fp = fdtofp(dfd, fdp)) == NULL) { FILEDESC_XUNLOCK(fdp); return (EBADF); } From 271e5fb00d5f50b9a869d97f7ef2c8ae17b012c6 Mon Sep 17 00:00:00 2001 From: Hans Petter Selasky Date: Thu, 14 Jun 2012 16:20:19 +0000 Subject: [PATCH 229/340] Add more quirks for USB MIDI adapters. Obtained from: Clemens Ladisch MFC after: 1 week --- sys/dev/usb/quirk/usb_quirk.c | 6 ++++++ sys/dev/usb/usbdevs | 23 +++++++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/sys/dev/usb/quirk/usb_quirk.c b/sys/dev/usb/quirk/usb_quirk.c index e07aa2da35b6..504e3662de25 100644 --- a/sys/dev/usb/quirk/usb_quirk.c +++ b/sys/dev/usb/quirk/usb_quirk.c @@ -454,7 +454,13 @@ static struct usb_quirk_entry usb_quirks[USB_DEV_QUIRKS_MAX] = { USB_QUIRK(ROLAND, SD20, 0x0000, 0xffff, UQ_AU_VENDOR_CLASS), USB_QUIRK(ROLAND, SD80, 0x0000, 0xffff, UQ_AU_VENDOR_CLASS), USB_QUIRK(ROLAND, UA700, 0x0000, 0xffff, UQ_AU_VENDOR_CLASS), + USB_QUIRK(EGO, M4U, 0x0000, 0xffff, UQ_SINGLE_CMD_MIDI), + USB_QUIRK(LOGILINK, U2M, 0x0000, 0xffff, UQ_SINGLE_CMD_MIDI), USB_QUIRK(MEDELI, DD305, 0x0000, 0xffff, UQ_SINGLE_CMD_MIDI, UQ_MATCH_VENDOR_ONLY), + USB_QUIRK(REDOCTANE, GHMIDI, 0x0000, 0xffff, UQ_SINGLE_CMD_MIDI), + USB_QUIRK(TEXTECH, U2M_1, 0x0000, 0xffff, UQ_SINGLE_CMD_MIDI), + USB_QUIRK(TEXTECH, U2M_2, 0x0000, 0xffff, UQ_SINGLE_CMD_MIDI), + USB_QUIRK(WCH2, U2M, 0x0000, 0xffff, UQ_SINGLE_CMD_MIDI), /* * Quirks for manufacturers which USB devices does not respond diff --git a/sys/dev/usb/usbdevs b/sys/dev/usb/usbdevs index a1ccbfeb4f69..4579a7056d08 100644 --- a/sys/dev/usb/usbdevs +++ b/sys/dev/usb/usbdevs @@ -487,6 +487,7 @@ vendor BROADCOM 0x0a5c Broadcom vendor GREENHOUSE 0x0a6b GREENHOUSE vendor MEDELI 0x0a67 Medeli vendor GEOCAST 0x0a79 Geocast Network Systems +vendor EGO 0x0a92 EGO systems vendor IDQUANTIQUE 0x0aba id Quantique vendor ZYDAS 0x0ace Zydas Technology Corporation vendor NEODIO 0x0aec Neodio @@ -611,6 +612,7 @@ vendor INITIO 0x13fd Initio Corporation vendor EMTEC 0x13fe Emtec vendor NOVATEL 0x1410 Novatel Wireless vendor MERLIN 0x1416 Merlin +vendor REDOCTANE 0x1430 RedOctane vendor WISTRONNEWEB 0x1435 Wistron NeWeb vendor RADIOSHACK 0x1453 Radio Shack vendor HUAWEI3COM 0x1472 Huawei-3Com @@ -633,6 +635,7 @@ vendor FIBERLINE 0x1582 Fiberline vendor SPARKLAN 0x15a9 SparkLAN vendor SOUNDGRAPH 0x15c2 Soundgraph, Inc. vendor AMIT2 0x15c5 AMIT +vendor TEXTECH 0x15ca Textech International Ltd. vendor SOHOWARE 0x15e8 SOHOware vendor UMAX 0x1606 UMAX Data Systems vendor INSIDEOUT 0x1608 Inside Out Networks @@ -723,6 +726,7 @@ vendor MARVELL 0x9e88 Marvell Technology Group Ltd. vendor 3COM3 0xa727 3Com vendor DATAAPEX 0xdaae DataApex vendor HP2 0xf003 Hewlett Packard +vendor LOGILINK 0xfc08 LogiLink vendor USRP 0xfffe GNU Radio USRP /* @@ -1472,6 +1476,10 @@ product EGALAX TPANEL 0x0001 Touch Panel product EGALAX TPANEL2 0x0002 Touch Panel product EGALAX2 TPANEL 0x0001 Touch Panel +/* EGO Products */ +product EGO DUMMY 0x0000 Dummy Product +product EGO M4U 0x1020 ESI M4U + /* Eicon Networks */ product EICON DIVA852 0x4905 Diva 852 ISDN TA @@ -2090,6 +2098,10 @@ product LINKSYS4 WUSB54GCV3 0x0077 WUSB54GC v3 product LINKSYS4 RT3070 0x0078 RT3070 product LINKSYS4 WUSB600NV2 0x0079 WUSB600N v2 +/* Logilink products */ +product LOGILINK DUMMY 0x0000 Dummy product +product LOGILINK U2M 0x0101 LogiLink USB MIDI Cable + /* Logitech products */ product LOGITECH M2452 0x0203 M2452 keyboard product LOGITECH M4848 0x0301 M4848 mouse @@ -2813,6 +2825,10 @@ product REALTEK RTL8187B_0 0x8189 RTL8187B Wireless Adapter product REALTEK RTL8187B_1 0x8197 RTL8187B Wireless Adapter product REALTEK RTL8187B_2 0x8198 RTL8187B Wireless Adapter +/* RedOctane products */ +product REDOCTANE DUMMY 0x0000 Dummy product +product REDOCTANE GHMIDI 0x474b GH MIDI INTERFACE + /* Renesas products */ product RENESAS RX610 0x0053 RX610 RX-Stick @@ -3249,6 +3265,11 @@ product SYNTECH CYPHERLAB100 0x1000 CipherLab USB Barcode Scanner /* Teclast products */ product TECLAST TLC300 0x3203 USB Media Player +/* TexTech products */ +product TEXTECH DUMMY 0x0000 Dummy product +product TEXTECH U2M_1 0x0101 Textech USB MIDI cable +product TEXTECH U2M_2 0x1806 Textech USB MIDI cable + /* Supra products */ product DIAMOND2 SUPRAEXPRESS56K 0x07da Supra Express 56K modem product DIAMOND2 SUPRA2890 0x0b4a SupraMax 2890 56K Modem @@ -3421,7 +3442,9 @@ product WAVESENSE JAZZ 0xaaaa Jazz blood glucose meter /* WCH products */ product WCH CH341SER 0x5523 CH341/CH340 USB-Serial Bridge +product WCH2 DUMMY 0x0000 Dummy product product WCH2 CH341SER 0x7523 CH341/CH340 USB-Serial Bridge +product WCH2 U2M 0X752d CH345 USB2.0-MIDI /* Western Digital products */ product WESTERN COMBO 0x0200 Firewire USB Combo From b7fc69ca89738fa169f0b783511e3cb0b2261aad Mon Sep 17 00:00:00 2001 From: Pawel Jakub Dawidek Date: Thu, 14 Jun 2012 16:23:16 +0000 Subject: [PATCH 230/340] Assert that the filedesc lock is being held when the fdunwrap() function is called. MFC after: 1 month --- sys/kern/kern_descrip.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c index 4a692a61d62c..e204e6892320 100644 --- a/sys/kern/kern_descrip.c +++ b/sys/kern/kern_descrip.c @@ -445,6 +445,8 @@ static inline int fdunwrap(int fd, cap_rights_t rights, struct filedesc *fdp, struct file **fpp) { + FILEDESC_LOCK_ASSERT(fdp); + *fpp = fdtofp(fd, fdp); if (*fpp == NULL) return (EBADF); From 7a4981c1f624b00f2e140f62036a581a66148172 Mon Sep 17 00:00:00 2001 From: Pawel Jakub Dawidek Date: Thu, 14 Jun 2012 16:24:03 +0000 Subject: [PATCH 231/340] Explicitly assert that the filedesc lock is held when the fget_locked() function is called. MFC after: 1 month --- sys/sys/filedesc.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/sys/sys/filedesc.h b/sys/sys/filedesc.h index 2be03af64c75..855d2b3bb0c9 100644 --- a/sys/sys/filedesc.h +++ b/sys/sys/filedesc.h @@ -142,7 +142,12 @@ static __inline struct file * fget_locked(struct filedesc *fdp, int fd) { - return (fd < 0 || fd >= fdp->fd_nfiles ? NULL : fdp->fd_ofiles[fd]); + FILEDESC_LOCK_ASSERT(fdp); + + if (fd < 0 || fd >= fdp->fd_nfiles) + return (NULL); + + return (fdp->fd_ofiles[fd]); } #endif /* _KERNEL */ From 19a8f6748e19ab0cc0e6401b0962a1d8a267eb07 Mon Sep 17 00:00:00 2001 From: Pawel Jakub Dawidek Date: Thu, 14 Jun 2012 16:25:10 +0000 Subject: [PATCH 232/340] Remove fdtofp() function and use fget_locked(), which works exactly the same. MFC after: 1 month --- sys/kern/kern_descrip.c | 28 ++++++++-------------------- 1 file changed, 8 insertions(+), 20 deletions(-) diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c index e204e6892320..6c1a53fd82de 100644 --- a/sys/kern/kern_descrip.c +++ b/sys/kern/kern_descrip.c @@ -429,25 +429,13 @@ sys_fcntl(struct thread *td, struct fcntl_args *uap) return (error); } -static inline struct file * -fdtofp(int fd, struct filedesc *fdp) -{ - - FILEDESC_LOCK_ASSERT(fdp); - - if (fd < 0 || fd >= fdp->fd_nfiles) - return (NULL); - - return (fdp->fd_ofiles[fd]); -} - static inline int fdunwrap(int fd, cap_rights_t rights, struct filedesc *fdp, struct file **fpp) { FILEDESC_LOCK_ASSERT(fdp); - *fpp = fdtofp(fd, fdp); + *fpp = fget_locked(fdp, fd); if (*fpp == NULL) return (EBADF); @@ -496,7 +484,7 @@ kern_fcntl(struct thread *td, int fd, int cmd, intptr_t arg) case F_GETFD: FILEDESC_SLOCK(fdp); - if ((fp = fdtofp(fd, fdp)) == NULL) { + if ((fp = fget_locked(fdp, fd)) == NULL) { FILEDESC_SUNLOCK(fdp); error = EBADF; break; @@ -508,7 +496,7 @@ kern_fcntl(struct thread *td, int fd, int cmd, intptr_t arg) case F_SETFD: FILEDESC_XLOCK(fdp); - if ((fp = fdtofp(fd, fdp)) == NULL) { + if ((fp = fget_locked(fdp, fd)) == NULL) { FILEDESC_XUNLOCK(fdp); error = EBADF; break; @@ -681,7 +669,7 @@ kern_fcntl(struct thread *td, int fd, int cmd, intptr_t arg) vfslocked = 0; /* Check for race with close */ FILEDESC_SLOCK(fdp); - if (fdtofp(fd, fdp) != fp) { + if (fget_locked(fdp, fd) != fp) { FILEDESC_SUNLOCK(fdp); flp->l_whence = SEEK_SET; flp->l_start = 0; @@ -746,7 +734,7 @@ kern_fcntl(struct thread *td, int fd, int cmd, intptr_t arg) /* FALLTHROUGH */ case F_READAHEAD: FILEDESC_SLOCK(fdp); - if ((fp = fdtofp(fd, fdp)) == NULL) { + if ((fp = fget_locked(fdp, fd)) == NULL) { FILEDESC_SUNLOCK(fdp); error = EBADF; break; @@ -823,7 +811,7 @@ do_dup(struct thread *td, int flags, int old, int new, return (flags & DUP_FCNTL ? EINVAL : EBADF); FILEDESC_XLOCK(fdp); - if (fdtofp(old, fdp) == NULL) { + if (fget_locked(fdp, old) == NULL) { FILEDESC_XUNLOCK(fdp); return (EBADF); } @@ -1202,7 +1190,7 @@ kern_close(td, fd) AUDIT_SYSCLOSE(td, fd); FILEDESC_XLOCK(fdp); - if ((fp = fdtofp(fd, fdp)) == NULL) { + if ((fp = fget_locked(fdp, fd)) == NULL) { FILEDESC_XUNLOCK(fdp); return (EBADF); } @@ -2596,7 +2584,7 @@ dupfdopen(struct thread *td, struct filedesc *fdp, int dfd, int mode, int opener * closed, then reject. */ FILEDESC_XLOCK(fdp); - if ((fp = fdtofp(dfd, fdp)) == NULL) { + if ((fp = fget_locked(fdp, dfd)) == NULL) { FILEDESC_XUNLOCK(fdp); return (EBADF); } From a79de683f56a94c2aaa25318625d9bd0cbc99c9f Mon Sep 17 00:00:00 2001 From: Pawel Jakub Dawidek Date: Thu, 14 Jun 2012 17:32:58 +0000 Subject: [PATCH 233/340] Update comment. MFC after: 1 month --- sys/kern/kern_event.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/kern/kern_event.c b/sys/kern/kern_event.c index 443d902b1047..b25c678cdb93 100644 --- a/sys/kern/kern_event.c +++ b/sys/kern/kern_event.c @@ -692,7 +692,7 @@ sys_kqueue(struct thread *td, struct kqueue_args *uap) if (error) goto done2; - /* An extra reference on `nfp' has been held for us by falloc(). */ + /* An extra reference on `fp' has been held for us by falloc(). */ kq = malloc(sizeof *kq, M_KQUEUE, M_WAITOK | M_ZERO); mtx_init(&kq->kq_lock, "kqueue", NULL, MTX_DEF|MTX_DUPOK); TAILQ_INIT(&kq->kq_head); From 62657c50dfee75eab81d70c6902b092fd0f89b80 Mon Sep 17 00:00:00 2001 From: Alan Cox Date: Thu, 14 Jun 2012 17:40:49 +0000 Subject: [PATCH 234/340] Correctly identify the function in a KASSERT(). MFC after: 3 days --- sys/amd64/amd64/pmap.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sys/amd64/amd64/pmap.c b/sys/amd64/amd64/pmap.c index 507c68521f0d..b7b8c2b87e97 100644 --- a/sys/amd64/amd64/pmap.c +++ b/sys/amd64/amd64/pmap.c @@ -4408,8 +4408,9 @@ pmap_remove_write(vm_page_t m) pmap = PV_PMAP(pv); PMAP_LOCK(pmap); pde = pmap_pde(pmap, pv->pv_va); - KASSERT((*pde & PG_PS) == 0, ("pmap_clear_write: found" - " a 2mpage in page %p's pv list", m)); + KASSERT((*pde & PG_PS) == 0, + ("pmap_remove_write: found a 2mpage in page %p's pv list", + m)); pte = pmap_pde_to_pte(pde, pv->pv_va); retry: oldpte = *pte; From 90407113a708268c7f29af7c9bd126ea7bbb6e19 Mon Sep 17 00:00:00 2001 From: Alan Cox Date: Thu, 14 Jun 2012 17:47:54 +0000 Subject: [PATCH 235/340] Update a couple comments to reflect r235598. X-MFC after: r235598 --- sys/amd64/amd64/pmap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/amd64/amd64/pmap.c b/sys/amd64/amd64/pmap.c index b7b8c2b87e97..fbd247b646a6 100644 --- a/sys/amd64/amd64/pmap.c +++ b/sys/amd64/amd64/pmap.c @@ -2373,7 +2373,7 @@ pmap_pv_promote_pde(pmap_t pmap, vm_offset_t va, vm_paddr_t pa) * Transfer the first page's pv entry for this mapping to the * 2mpage's pv list. Aside from avoiding the cost of a call * to get_pv_entry(), a transfer avoids the possibility that - * get_pv_entry() calls pmap_collect() and that pmap_collect() + * get_pv_entry() calls pmap_pv_reclaim() and that pmap_pv_reclaim() * removes one of the mappings that is being promoted. */ m = PHYS_TO_VM_PAGE(pa); @@ -2588,7 +2588,7 @@ pmap_demote_pde(pmap_t pmap, pd_entry_t *pde, vm_offset_t va) /* * Demote the pv entry. This depends on the earlier demotion * of the mapping. Specifically, the (re)creation of a per- - * page pv entry might trigger the execution of pmap_collect(), + * page pv entry might trigger the execution of pmap_pv_reclaim(), * which might reclaim a newly (re)created per-page pv entry * and destroy the associated mapping. In order to destroy * the mapping, the PDE must have already changed from mapping From 56c9c68603ce969c31fac1127fb58880607c0626 Mon Sep 17 00:00:00 2001 From: Warner Losh Date: Thu, 14 Jun 2012 18:37:00 +0000 Subject: [PATCH 236/340] Fix missing straggler for the move to parse_boot_param() --- sys/arm/xscale/pxa/pxa_machdep.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/arm/xscale/pxa/pxa_machdep.c b/sys/arm/xscale/pxa/pxa_machdep.c index 3643bc3a6a24..da5787ac1779 100644 --- a/sys/arm/xscale/pxa/pxa_machdep.c +++ b/sys/arm/xscale/pxa/pxa_machdep.c @@ -174,8 +174,8 @@ initarm(struct arm_boot_params *abp) int i, j; uint32_t memsize[PXA2X0_SDRAM_BANKS], memstart[PXA2X0_SDRAM_BANKS]; + lastaddr = parse_boot_param(abp); set_cpufuncs(); - lastaddr = fake_preload_metadata(); pcpu_init(pcpup, 0, sizeof(struct pcpu)); PCPU_SET(curthread, &thread0); From 24a5cfd2c739efd8c7ecd1e4ed436ff772904d3d Mon Sep 17 00:00:00 2001 From: Doug Barton Date: Thu, 14 Jun 2012 19:30:31 +0000 Subject: [PATCH 237/340] Improve the functionality of the PORTS_MODULES knob by adding LOCALBASE/bin and sbin to PATH, allowing dependencies to be found; adding SRC_BASE and OSVERSION to match the new kernel, and putting the related builds under MAKEOBJDIRPREFIX so that they only need to be built once per kernel. In addition to the PR this includes ideas/contributions from crees and matthew. PR: ports/161452 Submitted by: Garrett Cooper --- sys/conf/kern.post.mk | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/sys/conf/kern.post.mk b/sys/conf/kern.post.mk index 5f878d85e545..94712f918319 100644 --- a/sys/conf/kern.post.mk +++ b/sys/conf/kern.post.mk @@ -36,9 +36,30 @@ modules-${target}: .endif .endfor -# Handle out of tree ports +# Handle ports (as defined by the user) that build kernel modules .if !defined(NO_MODULES) && defined(PORTS_MODULES) -PORTSMODULESENV=SYSDIR=${SYSDIR} +# +# The ports tree needs some environment variables defined to match the new kernel +# +# Ports search for some dependencies in PATH, so add the location of the installed files +LOCALBASE?= /usr/local +# SRC_BASE is how the ports tree refers to the location of the base source files +.if !defined(SRC_BASE) +SRC_BASE!= realpath "${SYSDIR:H}/" +.endif +# OSVERSION is used by some ports to determine build options +.if !defined(OSRELDATE) +# Definition copied from src/Makefile.inc1 +OSRELDATE!= awk '/^\#define[[:space:]]*__FreeBSD_version/ { print $$3 }' \ + ${MAKEOBJDIRPREFIX}${SRC_BASE}/include/osreldate.h +.endif +# Keep the related ports builds in the obj directory so that they are only rebuilt once per kernel build +WRKDIRPREFIX?= ${MAKEOBJDIRPREFIX}${SRC_BASE}/sys/${KERNCONF} +PORTSMODULESENV=\ + PATH=${PATH}:${LOCALBASE}/bin:${LOCALBASE}/sbin \ + SRC_BASE=${SRC_BASE} \ + OSVERSION=${OSRELDATE} \ + WRKDIRPREFIX=${WRKDIRPREFIX} .for __target in all install reinstall clean ${__target}: ports-${__target} ports-${__target}: From acc743293d12201d18fc6bdfd98241c015ef9dae Mon Sep 17 00:00:00 2001 From: Marius Strobl Date: Thu, 14 Jun 2012 20:27:28 +0000 Subject: [PATCH 238/340] Turn on TLS support for arm on here as it is supported since r231618/ r231619 and working since r233106. --- gnu/lib/libgomp/config.h | 2 +- gnu/lib/libstdc++/config.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/lib/libgomp/config.h b/gnu/lib/libgomp/config.h index c56d8601c20d..6ef541be733a 100644 --- a/gnu/lib/libgomp/config.h +++ b/gnu/lib/libgomp/config.h @@ -59,7 +59,7 @@ #define HAVE_SYS_TYPES_H 1 /* Define to 1 if the target supports thread-local storage. */ -#if !defined(__arm__) && !defined(__mips__) +#if !defined(__mips__) #define HAVE_TLS 1 #endif diff --git a/gnu/lib/libstdc++/config.h b/gnu/lib/libstdc++/config.h index a4afbdbec30a..7955ab62a60d 100644 --- a/gnu/lib/libstdc++/config.h +++ b/gnu/lib/libstdc++/config.h @@ -371,7 +371,7 @@ /* #undef HAVE_TANL */ /* Define to 1 if the target supports thread-local storage. */ -#if !defined(__arm__) && !defined(__mips__) +#if !defined(__mips__) #define HAVE_TLS 1 #endif From d2a3fae7ecbe5c9153bea84d244029302f5897e1 Mon Sep 17 00:00:00 2001 From: Marius Strobl Date: Thu, 14 Jun 2012 20:29:49 +0000 Subject: [PATCH 239/340] Merge r236137 from x86: Enable GNU hash generation for dynamic ELF binaries. --- contrib/gcc/config/arm/freebsd.h | 1 + 1 file changed, 1 insertion(+) diff --git a/contrib/gcc/config/arm/freebsd.h b/contrib/gcc/config/arm/freebsd.h index 7106e6f3ac3f..c4bc7e1c5c0d 100644 --- a/contrib/gcc/config/arm/freebsd.h +++ b/contrib/gcc/config/arm/freebsd.h @@ -50,6 +50,7 @@ %{rdynamic:-export-dynamic} \ %{!dynamic-linker:-dynamic-linker %(fbsd_dynamic_linker) }} \ %{static:-Bstatic}} \ + %{!static:--hash-style=both} \ %{symbolic:-Bsymbolic} \ -X %{mbig-endian:-EB} %{mlittle-endian:-EL}" From 4bc42357a91961def51ab92571e0c1052a49e3e9 Mon Sep 17 00:00:00 2001 From: Marius Strobl Date: Thu, 14 Jun 2012 20:49:22 +0000 Subject: [PATCH 240/340] Fix a braino in r236469; the number of DMA tags required for handling MAXPHYS should be based on PAGE_SIZE rather than SYM_CONF_DMA_BOUNDARY. While at it, reuse the SYM_CONF_MAX_SG macro for specifying the maximum number of DMA tags so sym(4) itself doesn't size memory beyond what's required for handling MAXPHYS. PR: 168928 MFC after: 3 days --- sys/dev/sym/sym_conf.h | 7 ++++--- sys/dev/sym/sym_hipd.c | 7 ++----- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/sys/dev/sym/sym_conf.h b/sys/dev/sym/sym_conf.h index aa486d44a72c..b1b2102a9a31 100644 --- a/sys/dev/sym/sym_conf.h +++ b/sys/dev/sym/sym_conf.h @@ -90,11 +90,12 @@ #define SYM_CONF_DMA_BOUNDARY (1UL << 24) /* - * Max number of scatter/gather entries for en IO. + * Max number of scatter/gather entries for an I/O. * Each entry costs 8 bytes in the internal CCB data structure. - * For now 65 should suffice given the BSD O/Ses capabilities. + * We use at most 33 segments but also no more than required for handling + * MAXPHYS. */ -#define SYM_CONF_MAX_SG (33) +#define SYM_CONF_MAX_SG (MIN(33, (MAXPHYS / PAGE_SIZE) + 1)) /* * Max number of targets. diff --git a/sys/dev/sym/sym_hipd.c b/sys/dev/sym/sym_hipd.c index 9f2fb2ae3fc5..8ac59b9a2691 100644 --- a/sys/dev/sym/sym_hipd.c +++ b/sys/dev/sym/sym_hipd.c @@ -1609,7 +1609,6 @@ struct sym_hcb { u_int features; /* Chip features map */ u_char myaddr; /* SCSI id of the adapter */ u_char maxburst; /* log base 2 of dwords burst */ - u_char maxsegcnt; /* Max DMA S/G segments */ u_char maxwide; /* Maximum transfer width */ u_char minsync; /* Min sync period factor (ST) */ u_char maxsync; /* Max sync period factor (ST) */ @@ -8135,7 +8134,7 @@ static void sym_action2(struct cam_sim *sim, union ccb *ccb) cpi->xport_specific.spi.ppr_options = SID_SPI_CLOCK_DT_ST; } - cpi->maxio = np->maxsegcnt * SYM_CONF_DMA_BOUNDARY; + cpi->maxio = SYM_CONF_MAX_SG * PAGE_SIZE; sym_xpt_done2(np, ccb, CAM_REQ_CMP); break; case XPT_ABORT: @@ -8536,11 +8535,9 @@ sym_pci_attach(device_t dev) /* * Allocate a tag for the DMA of user data. */ - np->maxsegcnt = MIN(SYM_CONF_MAX_SG, - (MAXPHYS / SYM_CONF_DMA_BOUNDARY) + 1); if (bus_dma_tag_create(np->bus_dmat, 1, SYM_CONF_DMA_BOUNDARY, BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, NULL, NULL, - BUS_SPACE_MAXSIZE, np->maxsegcnt, SYM_CONF_DMA_BOUNDARY, + BUS_SPACE_MAXSIZE, SYM_CONF_MAX_SG, SYM_CONF_DMA_BOUNDARY, BUS_DMA_ALLOCNOW, busdma_lock_mutex, &np->mtx, &np->data_dmat)) { device_printf(dev, "failed to create DMA tag.\n"); goto attach_failed; From a589806b0771d92d8baba74bc0439a7cb86fb3d0 Mon Sep 17 00:00:00 2001 From: Marius Strobl Date: Thu, 14 Jun 2012 21:16:19 +0000 Subject: [PATCH 241/340] - Add support for the FT2232 based egnite Turtelizer 2 JTAG/RS232 Adapter. This includes adding support for skipping FTDI interfaces used for JTAG leaving them for userland and just attaching to the RS232 half, similarly to how the corresponding Linux drivers handles these kind of adapters. While at it, sort uftdi_devs and return BUS_PROBE_SPECIFIC (because uftdi_probe() alters the instance variables for better or worse as do other probe routines of USB drivers) instead of 0. - Remove duplicated entries for BeagleBone. - Use DEVMETHOD_END. - Use NULL instead of 0 for pointers. - Remove some stray lines. MFC after: 3 days --- sys/dev/usb/serial/uftdi.c | 124 ++++++++++++++++++--------------- sys/dev/usb/serial/uftdi_reg.h | 32 ++------- sys/dev/usb/usbdevs | 4 +- 3 files changed, 77 insertions(+), 83 deletions(-) diff --git a/sys/dev/usb/serial/uftdi.c b/sys/dev/usb/serial/uftdi.c index 85b06ff72dfc..7990ce64b163 100644 --- a/sys/dev/usb/serial/uftdi.c +++ b/sys/dev/usb/serial/uftdi.c @@ -81,7 +81,7 @@ SYSCTL_INT(_hw_usb_uftdi, OID_AUTO, debug, CTLFLAG_RW, #endif #define UFTDI_CONFIG_INDEX 0 -#define UFTDI_IFACE_INDEX 0 +#define UFTDI_IFACE_INDEX_JTAG 0 #define UFTDI_OBUFSIZE 64 /* bytes, cannot be increased due to * do size encoding */ @@ -102,10 +102,10 @@ struct uftdi_softc { struct mtx sc_mtx; uint32_t sc_unit; - enum uftdi_type sc_type; uint16_t sc_last_lcr; + uint8_t sc_type; uint8_t sc_iface_index; uint8_t sc_hdrlen; uint8_t sc_msr; @@ -190,7 +190,7 @@ static device_method_t uftdi_methods[] = { DEVMETHOD(device_attach, uftdi_attach), DEVMETHOD(device_detach, uftdi_detach), - {0, 0} + DEVMETHOD_END }; static devclass_t uftdi_devclass; @@ -201,59 +201,61 @@ static driver_t uftdi_driver = { .size = sizeof(struct uftdi_softc), }; -DRIVER_MODULE(uftdi, uhub, uftdi_driver, uftdi_devclass, NULL, 0); +DRIVER_MODULE(uftdi, uhub, uftdi_driver, uftdi_devclass, NULL, NULL); MODULE_DEPEND(uftdi, ucom, 1, 1, 1); MODULE_DEPEND(uftdi, usb, 1, 1, 1); MODULE_VERSION(uftdi, 1); -static STRUCT_USB_HOST_ID uftdi_devs[] = { -#define UFTDI_DEV(v,p,t) \ - { USB_VPI(USB_VENDOR_##v, USB_PRODUCT_##v##_##p, UFTDI_TYPE_##t) } - UFTDI_DEV(ATMEL, STK541, 8U232AM), - UFTDI_DEV(DRESDENELEKTRONIK, SENSORTERMINALBOARD, 8U232AM), - UFTDI_DEV(DRESDENELEKTRONIK, WIRELESSHANDHELDTERMINAL, 8U232AM), - UFTDI_DEV(FALCOM, TWIST, 8U232AM), - UFTDI_DEV(FTDI, GAMMASCOUT, 8U232AM), - UFTDI_DEV(FTDI, SERIAL_8U100AX, SIO), - UFTDI_DEV(FTDI, SERIAL_2232C, 8U232AM), - UFTDI_DEV(FTDI, SERIAL_2232D, 8U232AM), - UFTDI_DEV(FTDI, BEAGLEBONE, 8U232AM), - UFTDI_DEV(FTDI, SERIAL_4232H, 8U232AM), - UFTDI_DEV(FTDI, SERIAL_8U232AM, 8U232AM), - UFTDI_DEV(FTDI, SERIAL_8U232AM4, 8U232AM), - UFTDI_DEV(FTDI, SERIAL_BEAGLEBONE, 8U232AM), - UFTDI_DEV(FTDI, SEMC_DSS20, 8U232AM), - UFTDI_DEV(FTDI, CFA_631, 8U232AM), - UFTDI_DEV(FTDI, CFA_632, 8U232AM), - UFTDI_DEV(FTDI, CFA_633, 8U232AM), - UFTDI_DEV(FTDI, CFA_634, 8U232AM), - UFTDI_DEV(FTDI, CFA_635, 8U232AM), - UFTDI_DEV(FTDI, USB_UIRT, 8U232AM), - UFTDI_DEV(FTDI, USBSERIAL, 8U232AM), - UFTDI_DEV(FTDI, KBS, 8U232AM), - UFTDI_DEV(FTDI, MX2_3, 8U232AM), - UFTDI_DEV(FTDI, MX4_5, 8U232AM), - UFTDI_DEV(FTDI, LK202, 8U232AM), - UFTDI_DEV(FTDI, LK204, 8U232AM), - UFTDI_DEV(FTDI, TACTRIX_OPENPORT_13M, 8U232AM), - UFTDI_DEV(FTDI, TACTRIX_OPENPORT_13S, 8U232AM), - UFTDI_DEV(FTDI, TACTRIX_OPENPORT_13U, 8U232AM), - UFTDI_DEV(FTDI, EISCOU, 8U232AM), - UFTDI_DEV(FTDI, UOPTBR, 8U232AM), - UFTDI_DEV(FTDI, EMCU2D, 8U232AM), - UFTDI_DEV(FTDI, PCMSFU, 8U232AM), - UFTDI_DEV(FTDI, EMCU2H, 8U232AM), - UFTDI_DEV(FTDI, MAXSTREAM, 8U232AM), - UFTDI_DEV(FTDI, CTI_USB_NANO_485, 8U232AM), - UFTDI_DEV(FTDI, CTI_USB_MINI_485, 8U232AM), - UFTDI_DEV(SIIG2, US2308, 8U232AM), - UFTDI_DEV(INTREPIDCS, VALUECAN, 8U232AM), - UFTDI_DEV(INTREPIDCS, NEOVI, 8U232AM), - UFTDI_DEV(BBELECTRONICS, USOTL4, 8U232AM), - UFTDI_DEV(MATRIXORBITAL, MOUA, 8U232AM), - UFTDI_DEV(MARVELL, SHEEVAPLUG, 8U232AM), - UFTDI_DEV(MELCO, PCOPRS1, 8U232AM), - UFTDI_DEV(RATOC, REXUSB60F, 8U232AM), +static const STRUCT_USB_HOST_ID uftdi_devs[] = { +#define UFTDI_DEV(v, p, i) \ + { USB_VPI(USB_VENDOR_##v, USB_PRODUCT_##v##_##p, i) } + UFTDI_DEV(ATMEL, STK541, UFTDI_TYPE_8U232AM), + UFTDI_DEV(BBELECTRONICS, USOTL4, UFTDI_TYPE_8U232AM), + UFTDI_DEV(DRESDENELEKTRONIK, SENSORTERMINALBOARD, + UFTDI_TYPE_8U232AM), + UFTDI_DEV(DRESDENELEKTRONIK, WIRELESSHANDHELDTERMINAL, + UFTDI_TYPE_8U232AM), + UFTDI_DEV(FALCOM, TWIST, UFTDI_TYPE_8U232AM), + UFTDI_DEV(FTDI, BEAGLEBONE, UFTDI_TYPE_8U232AM), + UFTDI_DEV(FTDI, CFA_631, UFTDI_TYPE_8U232AM), + UFTDI_DEV(FTDI, CFA_632, UFTDI_TYPE_8U232AM), + UFTDI_DEV(FTDI, CFA_633, UFTDI_TYPE_8U232AM), + UFTDI_DEV(FTDI, CFA_634, UFTDI_TYPE_8U232AM), + UFTDI_DEV(FTDI, CFA_635, UFTDI_TYPE_8U232AM), + UFTDI_DEV(FTDI, CTI_USB_MINI_485, UFTDI_TYPE_8U232AM), + UFTDI_DEV(FTDI, CTI_USB_NANO_485, UFTDI_TYPE_8U232AM), + UFTDI_DEV(FTDI, EISCOU, UFTDI_TYPE_8U232AM), + UFTDI_DEV(FTDI, EMCU2D, UFTDI_TYPE_8U232AM), + UFTDI_DEV(FTDI, EMCU2H, UFTDI_TYPE_8U232AM), + UFTDI_DEV(FTDI, GAMMASCOUT, UFTDI_TYPE_8U232AM), + UFTDI_DEV(FTDI, KBS, UFTDI_TYPE_8U232AM), + UFTDI_DEV(FTDI, LK202, UFTDI_TYPE_8U232AM), + UFTDI_DEV(FTDI, LK204, UFTDI_TYPE_8U232AM), + UFTDI_DEV(FTDI, MAXSTREAM, UFTDI_TYPE_8U232AM), + UFTDI_DEV(FTDI, MX2_3, UFTDI_TYPE_8U232AM), + UFTDI_DEV(FTDI, MX4_5, UFTDI_TYPE_8U232AM), + UFTDI_DEV(FTDI, PCMSFU, UFTDI_TYPE_8U232AM), + UFTDI_DEV(FTDI, SEMC_DSS20, UFTDI_TYPE_8U232AM), + UFTDI_DEV(FTDI, SERIAL_2232C, UFTDI_TYPE_8U232AM), + UFTDI_DEV(FTDI, SERIAL_2232D, UFTDI_TYPE_8U232AM), + UFTDI_DEV(FTDI, SERIAL_4232H, UFTDI_TYPE_8U232AM), + UFTDI_DEV(FTDI, SERIAL_8U100AX, UFTDI_TYPE_SIO), + UFTDI_DEV(FTDI, SERIAL_8U232AM, UFTDI_TYPE_8U232AM), + UFTDI_DEV(FTDI, SERIAL_8U232AM4, UFTDI_TYPE_8U232AM), + UFTDI_DEV(FTDI, TACTRIX_OPENPORT_13M, UFTDI_TYPE_8U232AM), + UFTDI_DEV(FTDI, TACTRIX_OPENPORT_13S, UFTDI_TYPE_8U232AM), + UFTDI_DEV(FTDI, TACTRIX_OPENPORT_13U, UFTDI_TYPE_8U232AM), + UFTDI_DEV(FTDI, TURTELIZER2, UFTDI_TYPE_8U232AM | UFTDI_FLAG_JTAG), + UFTDI_DEV(FTDI, UOPTBR, UFTDI_TYPE_8U232AM), + UFTDI_DEV(FTDI, USBSERIAL, UFTDI_TYPE_8U232AM), + UFTDI_DEV(FTDI, USB_UIRT, UFTDI_TYPE_8U232AM), + UFTDI_DEV(INTREPIDCS, NEOVI, UFTDI_TYPE_8U232AM), + UFTDI_DEV(INTREPIDCS, VALUECAN, UFTDI_TYPE_8U232AM), + UFTDI_DEV(MARVELL, SHEEVAPLUG, UFTDI_TYPE_8U232AM), + UFTDI_DEV(MATRIXORBITAL, MOUA, UFTDI_TYPE_8U232AM), + UFTDI_DEV(MELCO, PCOPRS1, UFTDI_TYPE_8U232AM), + UFTDI_DEV(RATOC, REXUSB60F, UFTDI_TYPE_8U232AM), + UFTDI_DEV(SIIG2, US2308, UFTDI_TYPE_8U232AM) #undef UFTDI_DEV }; @@ -261,6 +263,7 @@ static int uftdi_probe(device_t dev) { struct usb_attach_arg *uaa = device_get_ivars(dev); + const struct usb_device_id *id; if (uaa->usb_mode != USB_MODE_HOST) { return (ENXIO); @@ -268,9 +271,18 @@ uftdi_probe(device_t dev) if (uaa->info.bConfigIndex != UFTDI_CONFIG_INDEX) { return (ENXIO); } - /* attach to all present interfaces */ - return (usbd_lookup_id_by_uaa(uftdi_devs, sizeof(uftdi_devs), uaa)); + /* + * Attach to all present interfaces unless this is a JTAG one, which + * we leave for userland. + */ + id = usbd_lookup_id_by_info(uftdi_devs, sizeof(uftdi_devs), + &uaa->info); + if (id == NULL || ((id->driver_info & UFTDI_FLAG_JTAG) != 0 && + uaa->info.bIfaceIndex == UFTDI_IFACE_INDEX_JTAG)) + return (ENXIO); + uaa->driver_info = id->driver_info; + return (BUS_PROBE_SPECIFIC); } static int @@ -293,7 +305,7 @@ uftdi_attach(device_t dev) DPRINTF("\n"); sc->sc_iface_index = uaa->info.bIfaceIndex; - sc->sc_type = USB_GET_DRIVER_INFO(uaa); + sc->sc_type = USB_GET_DRIVER_INFO(uaa) & UFTDI_TYPE_MASK; switch (sc->sc_type) { case UFTDI_TYPE_SIO: @@ -562,6 +574,7 @@ static int uftdi_set_parm_soft(struct termios *t, struct uftdi_param_config *cfg, uint8_t type) { + memset(cfg, 0, sizeof(*cfg)); switch (type) { @@ -824,5 +837,6 @@ static void uftdi_poll(struct ucom_softc *ucom) { struct uftdi_softc *sc = ucom->sc_parent; + usbd_transfer_poll(sc->sc_xfer, UFTDI_N_TRANSFER); } diff --git a/sys/dev/usb/serial/uftdi_reg.h b/sys/dev/usb/serial/uftdi_reg.h index 0074bc5d701b..76234ee9a540 100644 --- a/sys/dev/usb/serial/uftdi_reg.h +++ b/sys/dev/usb/serial/uftdi_reg.h @@ -35,10 +35,12 @@ #define FTDI_PIT_SIOB 2 /* SIOB */ #define FTDI_PIT_PARALLEL 3 /* Parallel */ -enum uftdi_type { - UFTDI_TYPE_SIO, - UFTDI_TYPE_8U232AM -}; +/* Values for driver_info */ +#define UFTDI_TYPE_MASK 0x000000ff +#define UFTDI_TYPE_SIO 0x00000001 +#define UFTDI_TYPE_8U232AM 0x00000002 +#define UFTDI_FLAG_MASK 0x0000ff00 +#define UFTDI_FLAG_JTAG 0x00000100 /* * BmRequestType: 0100 0000B @@ -63,14 +65,11 @@ enum uftdi_type { * baud and data format not reset * * The Purge RX and TX buffer commands affect nothing except the buffers - * */ /* FTDI_SIO_RESET */ #define FTDI_SIO_RESET_SIO 0 #define FTDI_SIO_RESET_PURGE_RX 1 #define FTDI_SIO_RESET_PURGE_TX 2 - - /* * BmRequestType: 0100 0000B * bRequest: FTDI_SIO_SET_BAUDRATE @@ -134,8 +133,6 @@ enum { #define FTDI_SIO_SET_DATA_STOP_BITS_15 (0x1 << 11) #define FTDI_SIO_SET_DATA_STOP_BITS_2 (0x2 << 11) #define FTDI_SIO_SET_BREAK (0x1 << 14) - - /* * BmRequestType: 0100 0000B * bRequest: FTDI_SIO_MODEM_CTRL @@ -171,8 +168,6 @@ enum { #define FTDI_SIO_SET_RTS_MASK 0x2 #define FTDI_SIO_SET_RTS_HIGH (2 | ( FTDI_SIO_SET_RTS_MASK << 8)) #define FTDI_SIO_SET_RTS_LOW (0 | ( FTDI_SIO_SET_RTS_MASK << 8)) - - /* * BmRequestType: 0100 0000b * bRequest: FTDI_SIO_SET_FLOW_CTRL @@ -202,8 +197,6 @@ enum { #define FTDI_SIO_RTS_CTS_HS 0x1 #define FTDI_SIO_DTR_DSR_HS 0x2 #define FTDI_SIO_XON_XOFF_HS 0x4 - - /* * BmRequestType: 0100 0000b * bRequest: FTDI_SIO_SET_EVENT_CHAR @@ -226,9 +219,6 @@ enum { * data read so far - rather than wait 40ms or until 62 bytes are read * which is what normally happens. */ - - - /* * BmRequestType: 0100 0000b * bRequest: FTDI_SIO_SET_ERROR_CHAR @@ -243,14 +233,10 @@ enum { * 0 = disabled * 1 = enabled * B9..15 Reserved - * - * * FTDI_SIO_SET_ERROR_CHAR * Set the parity error replacement character for the specified communications * port. */ - - /* * BmRequestType: 1100 0000b * bRequest: FTDI_SIO_GET_MODEM_STATUS @@ -281,9 +267,6 @@ enum { #define FTDI_SIO_DSR_MASK 0x20 #define FTDI_SIO_RI_MASK 0x40 #define FTDI_SIO_RLSD_MASK 0x80 - - - /* * * DATA FORMAT @@ -317,8 +300,6 @@ enum { * B5 Transmitter Holding Register (THRE) * B6 Transmitter Empty (TEMT) * B7 Error in RCVR FIFO - * - * * OUT Endpoint * * This device reserves the first bytes of data on this endpoint contain the @@ -330,7 +311,6 @@ enum { * Offset Description * B0..1 Port * B2..7 Length of message - (not including Byte 0) - * */ #define FTDI_PORT_MASK 0x0f #define FTDI_MSR_MASK 0xf0 diff --git a/sys/dev/usb/usbdevs b/sys/dev/usb/usbdevs index 4579a7056d08..806e22d9261c 100644 --- a/sys/dev/usb/usbdevs +++ b/sys/dev/usb/usbdevs @@ -1612,9 +1612,9 @@ product FTDI SERIAL_8U232AM 0x6001 8U232AM Serial product FTDI SERIAL_8U232AM4 0x6004 8U232AM Serial product FTDI SERIAL_2232C 0x6010 FT2232C Dual port Serial product FTDI SERIAL_2232D 0x9e90 FT2232D Dual port Serial -product FTDI BEAGLEBONE 0xA6D0 BeagleBone product FTDI SERIAL_4232H 0x6011 FT4232H Quad port Serial -product FTDI SERIAL_BEAGLEBONE 0xa6d0 BeagleBone FTDI Serial +product FTDI BEAGLEBONE 0xa6d0 BeagleBone +product FTDI TURTELIZER2 0xbdc8 egnite Turtelizer 2 JTAG/RS232 Adapter /* Gude Analog- und Digitalsysteme products also uses FTDI's id: */ product FTDI TACTRIX_OPENPORT_13M 0xcc48 OpenPort 1.3 Mitsubishi product FTDI TACTRIX_OPENPORT_13S 0xcc49 OpenPort 1.3 Subaru From 70254ea2cbc834d9484c66b803d21782404265ed Mon Sep 17 00:00:00 2001 From: Marius Strobl Date: Thu, 14 Jun 2012 22:19:23 +0000 Subject: [PATCH 242/340] - As a baind-aid, disable ATAPI DMA when using ATA_CAM for these controllers as well as it causes the kernel to hang during boot. Reported and tested by: Kevin Oberman - Use NULL instead of 0 for a pointer. MFC after: 3 days --- sys/dev/ata/chipsets/ata-ite.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/sys/dev/ata/chipsets/ata-ite.c b/sys/dev/ata/chipsets/ata-ite.c index fe6ff21b2a8a..3f890fd536d9 100644 --- a/sys/dev/ata/chipsets/ata-ite.c +++ b/sys/dev/ata/chipsets/ata-ite.c @@ -105,10 +105,10 @@ ata_ite_chipinit(device_t dev) ctlr->setmode = ata_ite_821x_setmode; /* No timing restrictions initally. */ - ctlr->chipset_data = (void *)0; + ctlr->chipset_data = NULL; } ctlr->ch_attach = ata_ite_ch_attach; - return 0; + return (0); } static int @@ -119,6 +119,9 @@ ata_ite_ch_attach(device_t dev) error = ata_pci_ch_attach(dev); ch->flags |= ATA_CHECKS_CABLE; +#ifdef ATA_CAM + ch->flags |= ATA_NO_ATAPI_DMA; +#endif return (error); } From 021a0db52e4f743467cfaa8d972acf27fbb39cc3 Mon Sep 17 00:00:00 2001 From: Adrian Chadd Date: Fri, 15 Jun 2012 01:15:59 +0000 Subject: [PATCH 243/340] Convert ath(4) to just use ieee80211_suspend_all() and ieee80211_resume_all(). The existing code tries to use the beacon miss timer to signal that the AP has gone away. Unfortunately this doesn't seem to be behaving itself. I'll try to investigate why this is for the sake of completeness. The result is the STA will stay "associated" to the AP it was associated with when it suspended. It never receives a bmiss notification so it never tries reassociating. PR: kern/169084 --- sys/dev/ath/if_ath.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/sys/dev/ath/if_ath.c b/sys/dev/ath/if_ath.c index 6140206facab..6a551f0bced5 100644 --- a/sys/dev/ath/if_ath.c +++ b/sys/dev/ath/if_ath.c @@ -1310,8 +1310,13 @@ ath_suspend(struct ath_softc *sc) sc->sc_resume_up = (ifp->if_flags & IFF_UP) != 0; if (ic->ic_opmode == IEEE80211_M_STA) + /* + * This has been disabled - see PR kern/169084. + */ +#if 0 ath_stop(ifp); else +#endif ieee80211_suspend_all(ic); /* * NB: don't worry about putting the chip in low power @@ -1379,6 +1384,15 @@ ath_resume(struct ath_softc *sc) ath_hal_setledstate(ah, HAL_LED_INIT); if (sc->sc_resume_up) { + /* + * This particular feature doesn't work at the present, + * at least on the 802.11n chips. It's quite possible + * that the STA Beacon timers aren't being configured + * properly. + * + * See PR kern/169084. + */ +#if 0 if (ic->ic_opmode == IEEE80211_M_STA) { ath_init(sc); ath_hal_setledstate(ah, HAL_LED_RUN); @@ -1392,7 +1406,9 @@ ath_resume(struct ath_softc *sc) */ ath_beacon_config(sc, NULL); sc->sc_syncbeacon = 1; + ieee80211_resume_all(ic); } else +#endif ieee80211_resume_all(ic); } From 3342d83059830801489c7efde631061325110559 Mon Sep 17 00:00:00 2001 From: Adrian Chadd Date: Fri, 15 Jun 2012 02:16:29 +0000 Subject: [PATCH 244/340] Ok, ok. 802.11n can be on by default in GENERIC in -HEAD. God help me. --- sys/amd64/conf/GENERIC | 2 ++ sys/i386/conf/GENERIC | 2 ++ 2 files changed, 4 insertions(+) diff --git a/sys/amd64/conf/GENERIC b/sys/amd64/conf/GENERIC index 4c57afe9b238..1ce71b48cd76 100644 --- a/sys/amd64/conf/GENERIC +++ b/sys/amd64/conf/GENERIC @@ -273,6 +273,8 @@ device ath # Atheros NIC's device ath_pci # Atheros pci/cardbus glue device ath_hal # pci/cardbus chip support options AH_SUPPORT_AR5416 # enable AR5416 tx/rx descriptors +options AH_AR5416_INTERRUPT_MITIGATION # AR5416 interrupt mitigation +options ATH_SUPPORT_11N # Enable 802.11n support for AR5416 and later device ath_rate_sample # SampleRate tx rate control for ath #device bwi # Broadcom BCM430x/BCM431x wireless NICs. #device bwn # Broadcom BCM43xx wireless NICs. diff --git a/sys/i386/conf/GENERIC b/sys/i386/conf/GENERIC index 61e54d22d6ad..35cf60d910aa 100644 --- a/sys/i386/conf/GENERIC +++ b/sys/i386/conf/GENERIC @@ -285,6 +285,8 @@ device ath # Atheros NIC's device ath_pci # Atheros pci/cardbus glue device ath_hal # pci/cardbus chip support options AH_SUPPORT_AR5416 # enable AR5416 tx/rx descriptors +options AH_AR5416_INTERRUPT_MITIGATION # AR5416 interrupt mitigation +options ATH_SUPPORT_11N # Enable 802.11n support for AR5416 and later device ath_rate_sample # SampleRate tx rate control for ath #device bwi # Broadcom BCM430x/BCM431x wireless NICs. #device bwn # Broadcom BCM43xx wireless NICs. From 061103347c34bf6e495abadc864ad48bcbf85fe6 Mon Sep 17 00:00:00 2001 From: Tim Kientzle Date: Fri, 15 Jun 2012 03:57:16 +0000 Subject: [PATCH 245/340] Per kib, since __flt_rounds is being added to FreeBSD 10, it belongs in FBSD_1.3. MFC after: 1 week --- lib/libc/arm/Symbol.map | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/libc/arm/Symbol.map b/lib/libc/arm/Symbol.map index 61ad2850dbde..48f674756beb 100644 --- a/lib/libc/arm/Symbol.map +++ b/lib/libc/arm/Symbol.map @@ -31,6 +31,9 @@ FBSD_1.0 { brk; cerror; /* XXX - Should this be .cerror (see sys/cerror.S)? */ sbrk; +}; + +FBSD_1.3 { __flt_rounds; }; From 1591de53b123abd03a595cfee01203fa52795fd5 Mon Sep 17 00:00:00 2001 From: Warner Losh Date: Fri, 15 Jun 2012 06:38:55 +0000 Subject: [PATCH 246/340] Take half a step closer towards having a unified atmel kernel by rearranging where we initialize the time counter and putting the common stubs into a central place. --- sys/arm/at91/at91_machdep.c | 21 +++++++++++++++++++++ sys/arm/at91/at91_pit.c | 21 --------------------- sys/arm/at91/at91_st.c | 20 +++++++------------- 3 files changed, 28 insertions(+), 34 deletions(-) diff --git a/sys/arm/at91/at91_machdep.c b/sys/arm/at91/at91_machdep.c index 468b4c01ca14..63aa644adb13 100644 --- a/sys/arm/at91/at91_machdep.c +++ b/sys/arm/at91/at91_machdep.c @@ -572,3 +572,24 @@ initarm(struct arm_boot_params *abp) return ((void *)(kernelstack.pv_va + USPACE_SVC_STACK_TOP - sizeof(struct pcb))); } + +/* + * These functions are handled elsewhere, so make them nops here. + */ +void +cpu_startprofclock(void) +{ + +} + +void +cpu_stopprofclock(void) +{ + +} + +void +cpu_initclocks(void) +{ + +} diff --git a/sys/arm/at91/at91_pit.c b/sys/arm/at91/at91_pit.c index 693dae86ecf2..4eb8f0f2fb6c 100644 --- a/sys/arm/at91/at91_pit.c +++ b/sys/arm/at91/at91_pit.c @@ -206,24 +206,3 @@ DELAY(int us) last = piv; } } - -/* - * The 3 next functions must be implement with the future PLL code. - */ -void -cpu_startprofclock(void) -{ - -} - -void -cpu_stopprofclock(void) -{ - -} - -void -cpu_initclocks(void) -{ - -} diff --git a/sys/arm/at91/at91_st.c b/sys/arm/at91/at91_st.c index ac20bc183406..6203fb2e633f 100644 --- a/sys/arm/at91/at91_st.c +++ b/sys/arm/at91/at91_st.c @@ -60,6 +60,7 @@ static struct at91st_softc { bus_space_write_4(timer_softc->sc_st, timer_softc->sc_sh, (off), (val)) static void at91st_watchdog(void *, u_int, int *); +static void at91st_initclocks(struct at91st_softc *); static inline int st_crtr(void) @@ -114,8 +115,11 @@ at91st_attach(device_t dev) timer_softc->sc_wet = EVENTHANDLER_REGISTER(watchdog_list, at91st_watchdog, dev, 0); + device_printf(dev, "watchdog registered, timeout intervall max. 64 sec\n"); + + at91st_initclocks(timer_softc); return (0); } @@ -183,14 +187,14 @@ clock_intr(void *arg) return (FILTER_STRAY); } -void -cpu_initclocks(void) +static void +at91st_initclocks(struct at91st_softc *sc) { int rel_value; struct resource *irq; int rid = 0; void *ih; - device_t dev = timer_softc->sc_dev; + device_t dev = sc->sc_dev; rel_value = 32768 / hz; if (rel_value < 1) @@ -251,13 +255,3 @@ cpu_reset(void) while (1) continue; } - -void -cpu_startprofclock(void) -{ -} - -void -cpu_stopprofclock(void) -{ -} From aa0c93a5ca336d242063dc30cbde0a1bc7d04b1e Mon Sep 17 00:00:00 2001 From: Warner Losh Date: Fri, 15 Jun 2012 07:26:39 +0000 Subject: [PATCH 247/340] Fix a global shadowing problem when LINUX_BOOT_ABI was defined. --- sys/arm/arm/machdep.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/arm/arm/machdep.c b/sys/arm/arm/machdep.c index ac7b60f146a4..07f892afd361 100644 --- a/sys/arm/arm/machdep.c +++ b/sys/arm/arm/machdep.c @@ -686,7 +686,7 @@ makectx(struct trapframe *tf, struct pcb *pcb) * calling pmap_bootstrap. */ void -arm_dump_avail_init(vm_offset_t memsize, size_t max) +arm_dump_avail_init(vm_offset_t ramsize, size_t max) { #ifdef LINUX_BOOT_ABI /* @@ -713,7 +713,7 @@ arm_dump_avail_init(vm_offset_t memsize, size_t max) panic("dump_avail too small\n"); dump_avail[0] = round_page(PHYSADDR); - dump_avail[1] = trunc_page(PHYSADDR + memsize); + dump_avail[1] = trunc_page(PHYSADDR + ramsize); dump_avail[2] = 0; dump_avail[3] = 0; } From 153e430149ed4479fb833482364d2e8a373163f2 Mon Sep 17 00:00:00 2001 From: Martin Matuska Date: Fri, 15 Jun 2012 07:38:21 +0000 Subject: [PATCH 248/340] Do not remount ZFS dataset if changing canmount property to "on" and dataset is already mounted. PR: 167905 Submitted by: Bryan Drewery MFC after: 1 week --- cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c b/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c index fcd43a03c63b..1d81f91f5a35 100644 --- a/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c +++ b/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c @@ -1485,11 +1485,13 @@ zfs_prop_set(zfs_handle_t *zhp, const char *propname, const char *propval) /* * If the dataset's canmount property is being set to noauto, + * or being set to on and the dataset is already mounted, * then we want to prevent unmounting & remounting it. */ do_prefix = !((prop == ZFS_PROP_CANMOUNT) && (zprop_string_to_index(prop, propval, &idx, - ZFS_TYPE_DATASET) == 0) && (idx == ZFS_CANMOUNT_NOAUTO)); + ZFS_TYPE_DATASET) == 0) && (idx == ZFS_CANMOUNT_NOAUTO || + (idx == ZFS_CANMOUNT_ON && zfs_is_mounted(zhp, NULL)))); if (do_prefix && (ret = changelist_prefix(cl)) != 0) goto error; From e6e7584dcdd797e7872f4de4355e4d110aae1285 Mon Sep 17 00:00:00 2001 From: Warner Losh Date: Fri, 15 Jun 2012 07:50:26 +0000 Subject: [PATCH 249/340] Collapse the files.at91 and files.at91sam9 back into files.at91. Create a new option for at91rm9200 support. Set this option in std.at91. Create a new option for the at91sam9 standard devices. Set this option in std.at91sam9. Retire files.at91sam9. Add options for at91sam9x25 SoC and SAM9X25EK board, but don't connect it just yet as the supporting files aren't quite ready. Note: device at91rm9200 and device at91sam9 are presently mutually exclusive. --- sys/arm/at91/files.at91 | 17 +++++++++++++++-- sys/arm/at91/files.at91sam9 | 37 ------------------------------------- sys/arm/at91/std.at91 | 3 +++ sys/arm/at91/std.at91sam9 | 9 ++++++--- 4 files changed, 24 insertions(+), 42 deletions(-) delete mode 100644 sys/arm/at91/files.at91sam9 diff --git a/sys/arm/at91/files.at91 b/sys/arm/at91/files.at91 index 4aa0b0ce4124..081690102e7e 100644 --- a/sys/arm/at91/files.at91 +++ b/sys/arm/at91/files.at91 @@ -8,25 +8,38 @@ arm/at91/at91_mci.c optional at91_mci arm/at91/at91_nand.c optional nand arm/at91/at91_pio.c standard arm/at91/at91_pmc.c standard +arm/at91/at91_pit.c optional at91sam9 +arm/at91/at91_reset.S optional at91sam9 +arm/at91/at91_rst.c optional at91sam9 arm/at91/at91_rtc.c optional at91_rtc arm/at91/at91_spi.c optional at91_spi \ dependency "spibus_if.h" arm/at91/at91_ssc.c optional at91_ssc -arm/at91/at91_st.c standard +arm/at91/at91_st.c optional at91rm9200 arm/at91/at91_tc.c optional at91_tc arm/at91/at91_twi.c optional at91_twi +arm/at91/at91_wdt.c optional at91_wdt arm/at91/if_ate.c optional ate +arm/at91/if_macb.c optional macb arm/at91/uart_bus_at91usart.c optional uart arm/at91/uart_cpu_at91rm9200usart.c optional uart arm/at91/uart_dev_at91usart.c optional uart # # All the "systems on a chip" we support # -arm/at91/at91rm9200.c standard +arm/at91/at91rm9200.c optional at91rm9200 +arm/at91/at91sam9260.c optional at91sam9260 +arm/at91/at91sam9g20.c optional at91sam9g20 +arm/at91/at91sam9x25.c optional at91sam9x25 # # All the boards we support # arm/at91/board_bwct.c optional at91_board_bwct +arm/at91/board_ethernut5.c optional at91_board_ethernut5 arm/at91/board_hl200.c optional at91_board_hl200 +arm/at91/board_hl201.c optional at91_board_hl201 arm/at91/board_kb920x.c optional at91_board_kb920x +arm/at91/board_qila9g20.c optional at91_board_qila9g20 +arm/at91/board_sam9g20ek.c optional at91_board_sam9g20ek +arm/at91/board_sam9x25ek.c optional at91_board_sam9x25ek arm/at91/board_tsc4370.c optional at91_board_tsc4370 diff --git a/sys/arm/at91/files.at91sam9 b/sys/arm/at91/files.at91sam9 deleted file mode 100644 index a05f883f91b2..000000000000 --- a/sys/arm/at91/files.at91sam9 +++ /dev/null @@ -1,37 +0,0 @@ -# $FreeBSD$ -arm/arm/cpufunc_asm_arm9.S standard -arm/arm/irq_dispatch.S standard -arm/at91/at91_machdep.c standard -arm/at91/at91.c standard -arm/at91/at91_mci.c optional at91_mci -arm/at91/at91_nand.c optional nand -arm/at91/at91_pio.c standard -arm/at91/at91_pmc.c standard -arm/at91/at91_pit.c standard -arm/at91/at91_reset.S standard -arm/at91/at91_rst.c standard -arm/at91/at91_spi.c optional at91_spi \ - dependency "spibus_if.h" -arm/at91/at91_ssc.c optional at91_ssc -arm/at91/at91_tc.c optional at91_tc -arm/at91/at91_twi.c optional at91_twi -arm/at91/at91_wdt.c optional at91_wdt -arm/at91/if_ate.c optional ate -arm/at91/if_macb.c optional macb -arm/at91/uart_bus_at91usart.c optional uart -arm/at91/uart_cpu_at91rm9200usart.c optional uart -arm/at91/uart_dev_at91usart.c optional uart -dev/usb/controller/ohci_atmelarm.c optional ohci -# -# All the "systems on a chip" we support -# -arm/at91/at91sam9g20.c optional at91sam9g20 -arm/at91/at91sam9260.c optional at91sam9260 -# -# -# All the boards we support -# -arm/at91/board_ethernut5.c optional at91_board_ethernut5 -arm/at91/board_hl201.c optional at91_board_hl201 -arm/at91/board_sam9g20ek.c optional at91_board_sam9g20ek -arm/at91/board_qila9g20.c optional at91_board_qila9g20 diff --git a/sys/arm/at91/std.at91 b/sys/arm/at91/std.at91 index b2b9dd6ec1ec..fe577212d58d 100644 --- a/sys/arm/at91/std.at91 +++ b/sys/arm/at91/std.at91 @@ -4,3 +4,6 @@ files "../at91/files.at91" cpu CPU_ARM9 makeoptions CONF_CFLAGS=-mcpu=arm9 options PHYSADDR=0x20000000 + +# For now, just do the AT91RM9200 +device at91rm9200 diff --git a/sys/arm/at91/std.at91sam9 b/sys/arm/at91/std.at91sam9 index ab1fa9547a90..91ce69d3a377 100644 --- a/sys/arm/at91/std.at91sam9 +++ b/sys/arm/at91/std.at91sam9 @@ -1,9 +1,12 @@ # $FreeBSD$ -files "../at91/files.at91sam9" +files "../at91/files.at91" cpu CPU_ARM9 -makeoptions CONF_CFLAGS="-mcpu=arm9" +makeoptions CONF_CFLAGS=-mcpu=arm9 options PHYSADDR=0x20000000 -device at91sam9g20 +# bring in the sam specific timers and such +device at91sam9 + device at91sam9260 +device at91sam9g20 From dc5f8dab53d730b7cc0e72bdceb1402610688fd7 Mon Sep 17 00:00:00 2001 From: Warner Losh Date: Fri, 15 Jun 2012 07:56:53 +0000 Subject: [PATCH 250/340] This hints file doesn't actually do anything, and besides it is commented out here. Remove it. --- sys/arm/conf/BWCT | 1 - 1 file changed, 1 deletion(-) diff --git a/sys/arm/conf/BWCT b/sys/arm/conf/BWCT index 1110784610b6..8570041509ef 100644 --- a/sys/arm/conf/BWCT +++ b/sys/arm/conf/BWCT @@ -25,7 +25,6 @@ options AT91_BWCT include "../at91/std.bwct" #To statically compile in device wiring instead of /boot/device.hints -#hints "hints.at91rm9200" hints "BWCT.hints" makeoptions MODULES_OVERRIDE="" From d56a9edddb2f8c51638e06b3d54527d8c046f455 Mon Sep 17 00:00:00 2001 From: Warner Losh Date: Fri, 15 Jun 2012 08:01:16 +0000 Subject: [PATCH 251/340] These options are unused, and can safely be retired. --- sys/arm/conf/BWCT | 1 - sys/conf/options.arm | 4 ---- 2 files changed, 5 deletions(-) diff --git a/sys/arm/conf/BWCT b/sys/arm/conf/BWCT index 8570041509ef..4c6a1f163fbc 100644 --- a/sys/arm/conf/BWCT +++ b/sys/arm/conf/BWCT @@ -21,7 +21,6 @@ ident BWCT options VERBOSE_INIT_ARM -options AT91_BWCT include "../at91/std.bwct" #To statically compile in device wiring instead of /boot/device.hints diff --git a/sys/conf/options.arm b/sys/conf/options.arm index c9db152848b3..913f98d3edbe 100644 --- a/sys/conf/options.arm +++ b/sys/conf/options.arm @@ -24,7 +24,6 @@ LINUX_BOOT_ABI opt_global.h LOADERRAMADDR opt_global.h PHYSADDR opt_global.h QEMU_WORKAROUNDS opt_global.h -SKYEYE_WORKAROUNDS opt_global.h SOC_MV_DISCOVERY opt_global.h SOC_MV_KIRKWOOD opt_global.h SOC_MV_ORION opt_global.h @@ -33,9 +32,6 @@ XSCALE_CACHE_READ_WRITE_ALLOCATE opt_global.h XSACLE_DISABLE_CCNT opt_timer.h VERBOSE_INIT_ARM opt_global.h AT91_ATE_USE_RMII opt_at91.h -AT91_BWCT opt_at91.h -AT91_TSC opt_at91.h -AT91_KWIKBYTE opt_at91.h AT91_MCI_HAS_4WIRE opt_at91.h AT91_MCI_SLOT_B opt_at91.h AT91C_MAIN_CLOCK opt_at91.h From 7e7f083f9473d034beb35a1c1e20026756dd6b0b Mon Sep 17 00:00:00 2001 From: Adrian Chadd Date: Fri, 15 Jun 2012 08:37:46 +0000 Subject: [PATCH 252/340] Add the AMPDU BAR TX statistics to the "ampdu" tag. --- tools/tools/net80211/wlanstats/main.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tools/tools/net80211/wlanstats/main.c b/tools/tools/net80211/wlanstats/main.c index 93843d5158e3..928b4b10275e 100644 --- a/tools/tools/net80211/wlanstats/main.c +++ b/tools/tools/net80211/wlanstats/main.c @@ -57,7 +57,8 @@ static struct { }, { "ampdu", "input,output,ampdu_reorder,ampdu_oor,rx_dup,ampdu_flush,ampdu_move," - "ampdu_drop,ampdu_bar,ampdu_baroow,ampdu_barmove,rssi,rate" + "ampdu_drop,ampdu_bar,ampdu_baroow,ampdu_barmove,ampdu_bartx," + "ampdu_bartxfail,ampdu_bartxretry,rssi,rate" }, }; From b44f8e5e1e2e3c36fd196eb1b2c80b2cf0192ab4 Mon Sep 17 00:00:00 2001 From: Warner Losh Date: Fri, 15 Jun 2012 08:37:50 +0000 Subject: [PATCH 253/340] Make it possible to link together a sam and an rm kernel. The results aren't very pretty yet, but this takes DELAY and cpu_reset and makes them pointers. # I worry that these are set too late in the boot, especially cpu_reset. --- sys/arm/at91/at91_machdep.c | 27 +++++++++ sys/arm/at91/at91_pit.c | 63 ++++++++++----------- sys/arm/at91/at91_rst.c | 107 +++++++++++++++++------------------- sys/arm/at91/at91_st.c | 70 +++++++++++------------ sys/arm/at91/at91var.h | 5 ++ 5 files changed, 149 insertions(+), 123 deletions(-) diff --git a/sys/arm/at91/at91_machdep.c b/sys/arm/at91/at91_machdep.c index 63aa644adb13..b0508dec4d9b 100644 --- a/sys/arm/at91/at91_machdep.c +++ b/sys/arm/at91/at91_machdep.c @@ -201,11 +201,22 @@ const struct pmap_devmap at91_devmap[] = { { 0, 0, 0, 0, 0, } }; +#ifdef LINUX_BOOT_ABI +extern int membanks; +extern int memstart[]; +extern int memsize[]; +#endif + long at91_ramsize(void) { uint32_t cr, mr; int banks, rows, cols, bw; +#ifdef LINUX_BOOT_ABI + // If we found any ATAGs that were for memory, return the first bank. + if (membanks > 0) + return memsize[0]; +#endif if (at91_is_rm92()) { uint32_t *SDRAMC = (uint32_t *)(AT91_BASE + AT91RM92_SDRAMC_BASE); @@ -593,3 +604,19 @@ cpu_initclocks(void) { } + +void +DELAY(int n) +{ + if (soc_data.delay) + soc_data.delay(n); +} + +void +cpu_reset(void) +{ + if (soc_data.reset) + soc_data.reset(); + while (1) + continue; +} diff --git a/sys/arm/at91/at91_pit.c b/sys/arm/at91/at91_pit.c index 4eb8f0f2fb6c..2a9656a2259a 100644 --- a/sys/arm/at91/at91_pit.c +++ b/sys/arm/at91/at91_pit.c @@ -48,6 +48,10 @@ __FBSDID("$FreeBSD$"); #include #include +#ifndef PIT_PRESCALE +#define PIT_PRESCALE (16) +#endif + static struct pit_softc { struct resource *mem_res; /* Memory resource */ void *intrhand; /* Interrupt handle */ @@ -55,6 +59,8 @@ static struct pit_softc { } *sc; static uint32_t timecount = 0; +static unsigned at91pit_get_timecount(struct timecounter *tc); +static int pit_intr(void *arg); static inline uint32_t RD4(struct pit_softc *sc, bus_size_t off) @@ -70,12 +76,28 @@ WR4(struct pit_softc *sc, bus_size_t off, uint32_t val) bus_write_4(sc->mem_res, off, val); } -static unsigned at91pit_get_timecount(struct timecounter *tc); -static int pit_intr(void *arg); +static void +at91pit_delay(int us) +{ + int32_t cnt, last, piv; + uint64_t pit_freq; + const uint64_t mhz = 1E6; -#ifndef PIT_PRESCALE -#define PIT_PRESCALE (16) -#endif + last = PIT_PIV(RD4(sc, PIT_PIIR)); + + /* Max delay ~= 260s. @ 133Mhz */ + pit_freq = at91_master_clock / PIT_PRESCALE; + cnt = ((pit_freq * us) + (mhz -1)) / mhz; + cnt = (cnt <= 0) ? 1 : cnt; + + while (cnt > 0) { + piv = PIT_PIV(RD4(sc, PIT_PIIR)); + cnt -= piv - last ; + if (piv < last) + cnt -= PIT_PIV(~0u) - last; + last = piv; + } +} static struct timecounter at91pit_timecounter = { at91pit_get_timecount, /* get_timecount */ @@ -90,11 +112,8 @@ static int at91pit_probe(device_t dev) { - if (at91_is_sam9() || at91_is_sam9xe()) { - device_set_desc(dev, "AT91SAM9 PIT"); - return (0); - } - return (ENXIO); + device_set_desc(dev, "AT91SAM9 PIT"); + return (0); } static int @@ -135,6 +154,7 @@ at91pit_attach(device_t dev) /* Enable the PIT here. */ WR4(sc, PIT_MR, PIT_PIV(at91_master_clock / PIT_PRESCALE / hz) | PIT_EN | PIT_IEN); + soc_data.delay = at91pit_delay; out: return (err); } @@ -183,26 +203,3 @@ at91pit_get_timecount(struct timecounter *tc) icnt = piir >> 20; /* Overflows */ return (timecount + PIT_PIV(piir) + PIT_PIV(RD4(sc, PIT_MR)) * icnt); } - -void -DELAY(int us) -{ - int32_t cnt, last, piv; - uint64_t pit_freq; - const uint64_t mhz = 1E6; - - last = PIT_PIV(RD4(sc, PIT_PIIR)); - - /* Max delay ~= 260s. @ 133Mhz */ - pit_freq = at91_master_clock / PIT_PRESCALE; - cnt = ((pit_freq * us) + (mhz -1)) / mhz; - cnt = (cnt <= 0) ? 1 : cnt; - - while (cnt > 0) { - piv = PIT_PIV(RD4(sc, PIT_PIIR)); - cnt -= piv - last ; - if (piv < last) - cnt -= PIT_PIV(~0u) - last; - last = piv; - } -} diff --git a/sys/arm/at91/at91_rst.c b/sys/arm/at91/at91_rst.c index 76cc43c43402..dbd041ba96e5 100644 --- a/sys/arm/at91/at91_rst.c +++ b/sys/arm/at91/at91_rst.c @@ -42,50 +42,70 @@ __FBSDID("$FreeBSD$"); #define RST_TIMEOUT (5) /* Seconds to hold NRST for hard reset */ #define RST_TICK (20) /* sample NRST at hz/RST_TICK intervals */ -static int rst_intr(void *arg); +static int at91rst_intr(void *arg); -static struct rst_softc { +static struct at91rst_softc { struct resource *mem_res; /* Memory resource */ struct resource *irq_res; /* IRQ resource */ void *intrhand; /* Interrupt handle */ struct callout tick_ch; /* Tick callout */ device_t sc_dev; u_int shutdown; /* Shutdown in progress */ -} *rst_sc; +} *at91rst_sc; static inline uint32_t -RD4(struct rst_softc *sc, bus_size_t off) +RD4(struct at91rst_softc *sc, bus_size_t off) { return (bus_read_4(sc->mem_res, off)); } static inline void -WR4(struct rst_softc *sc, bus_size_t off, uint32_t val) +WR4(struct at91rst_softc *sc, bus_size_t off, uint32_t val) { bus_write_4(sc->mem_res, off, val); } -static int -at91_rst_probe(device_t dev) +void cpu_reset_sam9g20(void) __attribute__((weak)); +void cpu_reset_sam9g20(void) {} + +static void +at91rst_cpu_reset(void) { - if (at91_is_sam9() || at91_is_sam9xe()) { - device_set_desc(dev, "AT91SAM9 Reset Controller"); - return (0); + if (at91rst_sc) { + cpu_reset_sam9g20(); /* May be null */ + + WR4(at91rst_sc, RST_MR, + RST_MR_ERSTL(0xd) | RST_MR_URSTEN | RST_MR_KEY); + + WR4(at91rst_sc, RST_CR, + RST_CR_PROCRST | + RST_CR_PERRST | + RST_CR_EXTRST | + RST_CR_KEY); } - return (ENXIO); + while(1) + continue; } static int -at91_rst_attach(device_t dev) +at91rst_probe(device_t dev) { - struct rst_softc *sc; + + device_set_desc(dev, "AT91SAM9 Reset Controller"); + return (0); +} + +static int +at91rst_attach(device_t dev) +{ + struct at91rst_softc *sc; const char *cause; int rid, err; - rst_sc = sc = device_get_softc(dev); + at91rst_sc = sc = device_get_softc(dev); sc->sc_dev = dev; callout_init(&sc->tick_ch, 0); @@ -109,11 +129,11 @@ at91_rst_attach(device_t dev) /* Activate the interrupt. */ err = bus_setup_intr(dev, sc->irq_res, INTR_TYPE_MISC | INTR_MPSAFE, - rst_intr, NULL, sc, &sc->intrhand); + at91rst_intr, NULL, sc, &sc->intrhand); if (err) device_printf(dev, "could not establish interrupt handler.\n"); - WR4(rst_sc, RST_MR, RST_MR_ERSTL(0xd) | RST_MR_URSIEN | RST_MR_KEY); + WR4(at91rst_sc, RST_MR, RST_MR_ERSTL(0xd) | RST_MR_URSIEN | RST_MR_KEY); switch (RD4(sc, RST_SR) & RST_SR_RST_MASK) { case RST_SR_RST_POW: @@ -137,16 +157,15 @@ at91_rst_attach(device_t dev) } device_printf(dev, "Reset cause: %s.\n", cause); - /* cpu_reset_addr = cpu_reset; */ - + soc_data.reset = at91rst_cpu_reset; out: return (err); } static void -rst_tick(void *argp) +at91rst_tick(void *argp) { - struct rst_softc *sc = argp; + struct at91rst_softc *sc = argp; if (sc->shutdown++ >= RST_TIMEOUT * RST_TICK) { /* User released the button in morre than RST_TIMEOUT */ @@ -157,60 +176,36 @@ rst_tick(void *argp) device_printf(sc->sc_dev, "shutting down...\n"); shutdown_nice(0); } else { - callout_reset(&sc->tick_ch, hz/RST_TICK, rst_tick, sc); + callout_reset(&sc->tick_ch, hz/RST_TICK, at91rst_tick, sc); } } static int -rst_intr(void *argp) +at91rst_intr(void *argp) { - struct rst_softc *sc = argp; + struct at91rst_softc *sc = argp; if (RD4(sc, RST_SR) & RST_SR_URSTS) { if (sc->shutdown == 0) - callout_reset(&sc->tick_ch, hz/RST_TICK, rst_tick, sc); + callout_reset(&sc->tick_ch, hz/RST_TICK, at91rst_tick, sc); return (FILTER_HANDLED); } return (FILTER_STRAY); } -static device_method_t at91_rst_methods[] = { - DEVMETHOD(device_probe, at91_rst_probe), - DEVMETHOD(device_attach, at91_rst_attach), +static device_method_t at91rst_methods[] = { + DEVMETHOD(device_probe, at91rst_probe), + DEVMETHOD(device_attach, at91rst_attach), DEVMETHOD_END }; -static driver_t at91_rst_driver = { +static driver_t at91rst_driver = { "at91_rst", - at91_rst_methods, - sizeof(struct rst_softc), + at91rst_methods, + sizeof(struct at91rst_softc), }; -static devclass_t at91_rst_devclass; +static devclass_t at91rst_devclass; -DRIVER_MODULE(at91_rst, atmelarm, at91_rst_driver, at91_rst_devclass, NULL, +DRIVER_MODULE(at91_rst, atmelarm, at91rst_driver, at91rst_devclass, NULL, NULL); - -void cpu_reset_sam9g20(void) __attribute__((weak)); -void cpu_reset_sam9g20(void) {} - -void -cpu_reset(void) -{ - - if (rst_sc) { - cpu_reset_sam9g20(); /* May be null */ - - WR4(rst_sc, RST_MR, - RST_MR_ERSTL(0xd) | RST_MR_URSTEN | RST_MR_KEY); - - WR4(rst_sc, RST_CR, - RST_CR_PROCRST | - RST_CR_PERRST | - RST_CR_EXTRST | - RST_CR_KEY); - } - - for(;;) - ; -} diff --git a/sys/arm/at91/at91_st.c b/sys/arm/at91/at91_st.c index 6203fb2e633f..6a3284e45c65 100644 --- a/sys/arm/at91/at91_st.c +++ b/sys/arm/at91/at91_st.c @@ -84,6 +84,40 @@ static struct timecounter at91st_timecounter = { 1000 /* quality */ }; +static void +at91st_delay(int n) +{ + uint32_t start, end, cur; + + start = st_crtr(); + n = (n * 1000) / 32768; + if (n <= 0) + n = 1; + end = (start + n) & ST_CRTR_MASK; + cur = start; + if (start > end) { + while (cur >= start || cur < end) + cur = st_crtr(); + } else { + while (cur < end) + cur = st_crtr(); + } +} + +static void +at91st_cpu_reset(void) +{ + /* + * Reset the CPU by programmig the watchdog timer to reset the + * CPU after 128 'slow' clocks, or about ~4ms. Loop until + * the reset happens for safety. + */ + WR4(ST_WDMR, ST_WDMR_RSTEN | 2); + WR4(ST_CR, ST_CR_WDRST); + while (1) + continue; +} + static int at91st_probe(device_t dev) { @@ -112,6 +146,8 @@ at91st_attach(device_t dev) WR4(ST_IDR, 0xffffffff); /* disable watchdog timer */ WR4(ST_WDMR, 0); + soc_data.delay = at91st_delay; + soc_data.reset = at91st_cpu_reset; // XXX kinda late to be setting this... timer_softc->sc_wet = EVENTHANDLER_REGISTER(watchdog_list, at91st_watchdog, dev, 0); @@ -221,37 +257,3 @@ at91st_initclocks(struct at91st_softc *sc) WR4(ST_IER, ST_SR_PITS); tc_init(&at91st_timecounter); } - -void -DELAY(int n) -{ - uint32_t start, end, cur; - - start = st_crtr(); - n = (n * 1000) / 32768; - if (n <= 0) - n = 1; - end = (start + n) & ST_CRTR_MASK; - cur = start; - if (start > end) { - while (cur >= start || cur < end) - cur = st_crtr(); - } else { - while (cur < end) - cur = st_crtr(); - } -} - -void -cpu_reset(void) -{ - /* - * Reset the CPU by programmig the watchdog timer to reset the - * CPU after 128 'slow' clocks, or about ~4ms. Loop until - * the reset happens for safety. - */ - WR4(ST_WDMR, ST_WDMR_RSTEN | 2); - WR4(ST_CR, ST_CR_WDRST); - while (1) - continue; -} diff --git a/sys/arm/at91/at91var.h b/sys/arm/at91/at91var.h index a8df7171a5fd..7a3ce95e7467 100644 --- a/sys/arm/at91/at91var.h +++ b/sys/arm/at91/at91var.h @@ -102,6 +102,9 @@ enum at91_soc_family { #define AT91_SOC_NAME_MAX 50 +typedef void (*DELAY_t)(int); +typedef void (*cpu_reset_t)(void); + struct at91_soc_info { enum at91_soc_type type; enum at91_soc_subtype subtype; @@ -109,6 +112,8 @@ struct at91_soc_info { uint32_t cidr; uint32_t exid; char name[AT91_SOC_NAME_MAX]; + DELAY_t delay; + cpu_reset_t reset; }; extern struct at91_soc_info soc_data; From 92bd74bb2f767935968e4adb78ac019a995a9b99 Mon Sep 17 00:00:00 2001 From: Konstantin Belousov Date: Fri, 15 Jun 2012 08:50:44 +0000 Subject: [PATCH 254/340] Use right size when freeing unneeded GTT mapping. MFC after: 3 days --- sys/dev/drm2/i915/i915_gem.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/dev/drm2/i915/i915_gem.c b/sys/dev/drm2/i915/i915_gem.c index ca531fb82f5b..73c0b53f8099 100644 --- a/sys/dev/drm2/i915/i915_gem.c +++ b/sys/dev/drm2/i915/i915_gem.c @@ -1064,7 +1064,7 @@ i915_gem_gtt_write(struct drm_device *dev, struct drm_i915_gem_object *obj, IDX_TO_OFF(obj_pi), size, PAT_WRITE_COMBINING); ret = -copyin_nofault((void *)(uintptr_t)data_ptr, (char *)mkva + obj_po, size); - pmap_unmapdev(mkva, PAGE_SIZE); + pmap_unmapdev(mkva, size); return (ret); } From 67a3f4b2a09bd8cdc9d713ca0538f8152ebdfe51 Mon Sep 17 00:00:00 2001 From: Ruslan Ermilov Date: Fri, 15 Jun 2012 09:12:47 +0000 Subject: [PATCH 255/340] Fixed an example that set IP_ONESBCAST socket option to actually work, and not return EINVAL. --- share/man/man4/ip.4 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/share/man/man4/ip.4 b/share/man/man4/ip.4 index d89b54d93c04..d921c15f27ae 100644 --- a/share/man/man4/ip.4 +++ b/share/man/man4/ip.4 @@ -32,7 +32,7 @@ .\" @(#)ip.4 8.2 (Berkeley) 11/30/93 .\" $FreeBSD$ .\" -.Dd June 12, 2012 +.Dd June 15, 2012 .Dt IP 4 .Os .Sh NAME @@ -227,7 +227,7 @@ configured with the broadcast address 192.168.2.255: .Bd -literal char msg[512]; struct sockaddr_in sin; -u_char onesbcast = 1; /* 0 = disable (default), 1 = enable */ +int onesbcast = 1; /* 0 = disable (default), 1 = enable */ setsockopt(s, IPPROTO_IP, IP_ONESBCAST, &onesbcast, sizeof(onesbcast)); sin.sin_addr.s_addr = inet_addr("192.168.2.255"); From 3cde71cb255a629d83b5c97811183e38231ed9a3 Mon Sep 17 00:00:00 2001 From: Pawel Jakub Dawidek Date: Fri, 15 Jun 2012 10:00:29 +0000 Subject: [PATCH 256/340] One more attempt to make prototypes formated according to style(9), which holefully recovers from the "worse than useless" state. Reported by: bde MFC after: 1 month --- sys/kern/kern_descrip.c | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c index 6c1a53fd82de..fea1eb7fa3e2 100644 --- a/sys/kern/kern_descrip.c +++ b/sys/kern/kern_descrip.c @@ -114,21 +114,22 @@ static uma_zone_t file_zone; #define DUP_FIXED 0x1 /* Force fixed allocation */ #define DUP_FCNTL 0x2 /* fcntl()-style errors */ -static int closefp(struct filedesc *fdp, int fd, struct file *fp, - struct thread *td, int holdleaders); -static int do_dup(struct thread *td, int flags, int old, int new, - register_t *retval); -static int fd_first_free(struct filedesc *fdp, int low, int size); -static int fd_last_used(struct filedesc *fdp, int size); -static void fdgrowtable(struct filedesc *fdp, int nfd); -static void fdunused(struct filedesc *fdp, int fd); -static void fdused(struct filedesc *fdp, int fd); -static int fill_pipe_info(struct pipe *pi, struct kinfo_file *kif); -static int fill_procdesc_info(struct procdesc *pdp, struct kinfo_file *kif); -static int fill_pts_info(struct tty *tp, struct kinfo_file *kif); -static int fill_shm_info(struct file *fp, struct kinfo_file *kif); -static int fill_socket_info(struct socket *so, struct kinfo_file *kif); -static int fill_vnode_info(struct vnode *vp, struct kinfo_file *kif); +static int closefp(struct filedesc *fdp, int fd, struct file *fp, + struct thread *td, int holdleaders); +static int do_dup(struct thread *td, int flags, int old, int new, + register_t *retval); +static int fd_first_free(struct filedesc *fdp, int low, int size); +static int fd_last_used(struct filedesc *fdp, int size); +static void fdgrowtable(struct filedesc *fdp, int nfd); +static void fdunused(struct filedesc *fdp, int fd); +static void fdused(struct filedesc *fdp, int fd); +static int fill_pipe_info(struct pipe *pi, struct kinfo_file *kif); +static int fill_procdesc_info(struct procdesc *pdp, + struct kinfo_file *kif); +static int fill_pts_info(struct tty *tp, struct kinfo_file *kif); +static int fill_shm_info(struct file *fp, struct kinfo_file *kif); +static int fill_socket_info(struct socket *so, struct kinfo_file *kif); +static int fill_vnode_info(struct vnode *vp, struct kinfo_file *kif); /* * A process is initially started out with NDFILE descriptors stored within From 2c82e3bb5fffcfd4c2cb042f1abdea57627b5623 Mon Sep 17 00:00:00 2001 From: Matt Jacob Date: Fri, 15 Jun 2012 15:28:15 +0000 Subject: [PATCH 257/340] If debug values were set, the default from tval floated down and triggered an attempt to set multiple virtual ports whether you wanted them or not. MFC after: 3 days --- sys/dev/isp/isp_pci.c | 1 + 1 file changed, 1 insertion(+) diff --git a/sys/dev/isp/isp_pci.c b/sys/dev/isp/isp_pci.c index 62a2162f5b21..3764287ba5f8 100644 --- a/sys/dev/isp/isp_pci.c +++ b/sys/dev/isp/isp_pci.c @@ -483,6 +483,7 @@ isp_get_generic_options(device_t dev, ispsoftc_t *isp, int *nvp) if (bootverbose) { isp->isp_dblev |= ISP_LOGCONFIG|ISP_LOGINFO; } + tval = 0; (void) resource_int_value(device_get_name(dev), device_get_unit(dev), "vports", &tval); if (tval > 0 && tval < 127) { *nvp = tval; From 83567110bd7afa540c9af3cb6990ef35c1352d19 Mon Sep 17 00:00:00 2001 From: Adrian Chadd Date: Fri, 15 Jun 2012 15:32:16 +0000 Subject: [PATCH 258/340] Oops - use the actual 11n enable option. --- sys/amd64/conf/GENERIC | 2 +- sys/i386/conf/GENERIC | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/amd64/conf/GENERIC b/sys/amd64/conf/GENERIC index 1ce71b48cd76..a36a00ee14a1 100644 --- a/sys/amd64/conf/GENERIC +++ b/sys/amd64/conf/GENERIC @@ -274,7 +274,7 @@ device ath_pci # Atheros pci/cardbus glue device ath_hal # pci/cardbus chip support options AH_SUPPORT_AR5416 # enable AR5416 tx/rx descriptors options AH_AR5416_INTERRUPT_MITIGATION # AR5416 interrupt mitigation -options ATH_SUPPORT_11N # Enable 802.11n support for AR5416 and later +options ATH_ENABLE_11N # Enable 802.11n support for AR5416 and later device ath_rate_sample # SampleRate tx rate control for ath #device bwi # Broadcom BCM430x/BCM431x wireless NICs. #device bwn # Broadcom BCM43xx wireless NICs. diff --git a/sys/i386/conf/GENERIC b/sys/i386/conf/GENERIC index 35cf60d910aa..b857e24b0621 100644 --- a/sys/i386/conf/GENERIC +++ b/sys/i386/conf/GENERIC @@ -286,7 +286,7 @@ device ath_pci # Atheros pci/cardbus glue device ath_hal # pci/cardbus chip support options AH_SUPPORT_AR5416 # enable AR5416 tx/rx descriptors options AH_AR5416_INTERRUPT_MITIGATION # AR5416 interrupt mitigation -options ATH_SUPPORT_11N # Enable 802.11n support for AR5416 and later +options ATH_ENABLE_11N # Enable 802.11n support for AR5416 and later device ath_rate_sample # SampleRate tx rate control for ath #device bwi # Broadcom BCM430x/BCM431x wireless NICs. #device bwn # Broadcom BCM43xx wireless NICs. From d94f5b01c2b620110624d3cfeb8047783d0842ba Mon Sep 17 00:00:00 2001 From: Warner Losh Date: Fri, 15 Jun 2012 16:50:32 +0000 Subject: [PATCH 259/340] Remove stray line from merge. --- sys/arm/s3c2xx0/s3c24x0_machdep.c | 1 - 1 file changed, 1 deletion(-) diff --git a/sys/arm/s3c2xx0/s3c24x0_machdep.c b/sys/arm/s3c2xx0/s3c24x0_machdep.c index b9817ac59411..caf4ba807404 100644 --- a/sys/arm/s3c2xx0/s3c24x0_machdep.c +++ b/sys/arm/s3c2xx0/s3c24x0_machdep.c @@ -249,7 +249,6 @@ initarm(struct arm_boot_params *abp) i = 0; set_cpufuncs(); cpufuncs.cf_sleep = s3c24x0_sleep; - lastaddr = fake_preload_metadata(); pcpu_init(pcpup, 0, sizeof(struct pcpu)); PCPU_SET(curthread, &thread0); From 6e4ee6dd47924f9f7e97652b20f263c7064b9b66 Mon Sep 17 00:00:00 2001 From: Brooks Davis Date: Fri, 15 Jun 2012 19:40:59 +0000 Subject: [PATCH 260/340] MFP4: 212854, 212854 Add a LOCAL_LIB_DIRS variable to complement the existing LOCAL_DIRS and LOCAL_TOOL_DIRS variables. Directories in LOCAL_LIB_DIRS are built at the end of the _generic_libs target. Reviewed by: imp (212854) --- Makefile.inc1 | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Makefile.inc1 b/Makefile.inc1 index be411a866c78..cc8d2743fcde 100644 --- a/Makefile.inc1 +++ b/Makefile.inc1 @@ -15,6 +15,7 @@ # -DNO_WWWUPDATE do not update www in ${MAKE} update # -DNO_CTF do not run the DTrace CTF conversion tools on built objects # LOCAL_DIRS="list of dirs" to add additional dirs to the SUBDIR list +# LOCAL_LIB_DIRS="list of dirs" to add additional dirs to libraries # LOCAL_TOOL_DIRS="list of dirs" to add additional dirs to the build-tools # list # TARGET="machine" to crossbuild world for a different machine type @@ -88,7 +89,7 @@ SUBDIR+=etc # These are last, since it is nice to at least get the base system # rebuilt before you do them. -.for _DIR in ${LOCAL_DIRS} +.for _DIR in ${LOCAL_LIB_DIRS} ${LOCAL_DIRS} .if exists(${.CURDIR}/${_DIR}/Makefile) SUBDIR+= ${_DIR} .endif @@ -1273,6 +1274,11 @@ _ofed_lib= contrib/ofed/usr.lib/ .endif _generic_libs= ${_cddl_lib} gnu/lib ${_kerberos5_lib} lib ${_secure_lib} usr.bin/lex/lib ${_ofed_lib} +.for _DIR in ${LOCAL_LIB_DIRS} +.if exists(${.CURDIR}/${_DIR}/Makefile) +_generic_libs+= ${_DIR} +.endif +.endfor lib/libopie__L lib/libtacplus__L: lib/libmd__L From 5814131a44ec181ce813285f64ac2b81b4ff854c Mon Sep 17 00:00:00 2001 From: Brooks Davis Date: Fri, 15 Jun 2012 19:42:49 +0000 Subject: [PATCH 261/340] Minor wording change. The previous commit message should have included: Sponsored by: DARPA, AFRL --- Makefile.inc1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile.inc1 b/Makefile.inc1 index cc8d2743fcde..40a2e4773d66 100644 --- a/Makefile.inc1 +++ b/Makefile.inc1 @@ -15,7 +15,7 @@ # -DNO_WWWUPDATE do not update www in ${MAKE} update # -DNO_CTF do not run the DTrace CTF conversion tools on built objects # LOCAL_DIRS="list of dirs" to add additional dirs to the SUBDIR list -# LOCAL_LIB_DIRS="list of dirs" to add additional dirs to libraries +# LOCAL_LIB_DIRS="list of dirs" to add additional dirs to libraries target # LOCAL_TOOL_DIRS="list of dirs" to add additional dirs to the build-tools # list # TARGET="machine" to crossbuild world for a different machine type From fb148d836feec1cea56c4b4f8c85f7f628c8b61a Mon Sep 17 00:00:00 2001 From: Adrian Chadd Date: Fri, 15 Jun 2012 20:08:13 +0000 Subject: [PATCH 262/340] Convert athdebug to use the 64 bit dev.ath.X.debug sysctl. --- tools/tools/ath/athdebug/athdebug.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/tools/tools/ath/athdebug/athdebug.c b/tools/tools/ath/athdebug/athdebug.c index d1c2c1482614..4f8f7c8a5c4a 100644 --- a/tools/tools/ath/athdebug/athdebug.c +++ b/tools/tools/ath/athdebug/athdebug.c @@ -51,6 +51,7 @@ const char *progname; +/* XXX TODO: include if_ath_debug.h */ enum { ATH_DEBUG_XMIT = 0x00000001, /* basic xmit operation */ ATH_DEBUG_XMIT_DESC = 0x00000002, /* xmit descriptors */ @@ -81,7 +82,7 @@ enum { static struct { const char *name; - u_int bit; + uint64_t bit; } flags[] = { { "xmit", ATH_DEBUG_XMIT }, { "xmit_desc", ATH_DEBUG_XMIT_DESC }, @@ -109,7 +110,7 @@ static struct { { "fatal", ATH_DEBUG_FATAL }, }; -static u_int +static uint64_t getflag(const char *name, int len) { int i; @@ -150,7 +151,7 @@ main(int argc, char *argv[]) const char *cp, *tp; const char *sep; int c, op, i; - u_int32_t debug, ndebug; + uint64_t debug, ndebug; size_t debuglen; char oid[256]; From 6212b9963b5d9b1182d799bf5f76ca6a2daae5cf Mon Sep 17 00:00:00 2001 From: Warner Losh Date: Sat, 16 Jun 2012 04:34:46 +0000 Subject: [PATCH 263/340] Throw this debug behind bootverbose. The information isn't all that exciting once the initial board bring up is over. --- sys/arm/at91/at91_pio.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/sys/arm/at91/at91_pio.c b/sys/arm/at91/at91_pio.c index eabd11a37f06..ae5f91e78287 100644 --- a/sys/arm/at91/at91_pio.c +++ b/sys/arm/at91/at91_pio.c @@ -143,9 +143,10 @@ at91_pio_attach(device_t dev) if (err) goto out; - device_printf(dev, "ABSR: %#x OSR: %#x PSR:%#x ODSR: %#x\n", - RD4(sc, PIO_ABSR), RD4(sc, PIO_OSR), RD4(sc, PIO_PSR), - RD4(sc, PIO_ODSR)); + if (bootverbose) + device_printf(dev, "ABSR: %#x OSR: %#x PSR:%#x ODSR: %#x\n", + RD4(sc, PIO_ABSR), RD4(sc, PIO_OSR), RD4(sc, PIO_PSR), + RD4(sc, PIO_ODSR)); AT91_PIO_LOCK_INIT(sc); /* From 3dd2db6646307df710be862be0ede062321865f5 Mon Sep 17 00:00:00 2001 From: Adrian Chadd Date: Sat, 16 Jun 2012 04:36:08 +0000 Subject: [PATCH 264/340] Shave four (or eight) bytes off of ath_buf - this field isn't used. --- sys/dev/ath/if_athvar.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/sys/dev/ath/if_athvar.h b/sys/dev/ath/if_athvar.h index 2665c33880f9..760eee1404ab 100644 --- a/sys/dev/ath/if_athvar.h +++ b/sys/dev/ath/if_athvar.h @@ -232,8 +232,6 @@ struct ath_buf { bfs_doprot:1, /* do RTS/CTS based protection */ bfs_doratelookup:1; /* do rate lookup before each TX */ - int bfs_nfl; /* next fragment length */ - /* * These fields are passed into the * descriptor setup functions. From 375d4f068a700666b4b6841078d14453107036f9 Mon Sep 17 00:00:00 2001 From: Adrian Chadd Date: Sat, 16 Jun 2012 04:41:35 +0000 Subject: [PATCH 265/340] Shuffle some more fields in ath_buf so it's not too big. This shaves off 20 bytes - from 288 bytes to 268 bytes. However, it's still too big. --- sys/dev/ath/ath_hal/ah_desc.h | 1 + sys/dev/ath/if_ath.c | 3 +++ sys/dev/ath/if_athvar.h | 32 ++++++++++++++++++++++---------- 3 files changed, 26 insertions(+), 10 deletions(-) diff --git a/sys/dev/ath/ath_hal/ah_desc.h b/sys/dev/ath/ath_hal/ah_desc.h index 0fa9bf64cc40..48c7a3e0aed8 100644 --- a/sys/dev/ath/ath_hal/ah_desc.h +++ b/sys/dev/ath/ath_hal/ah_desc.h @@ -225,6 +225,7 @@ struct ath_desc_status { #define ds_rxstat ds_us.rx /* flags passed to tx descriptor setup methods */ +/* This is a uint16_t field in ath_buf, just be warned! */ #define HAL_TXDESC_CLRDMASK 0x0001 /* clear destination filter mask */ #define HAL_TXDESC_NOACK 0x0002 /* don't wait for ACK */ #define HAL_TXDESC_RTSENA 0x0004 /* enable RTS */ diff --git a/sys/dev/ath/if_ath.c b/sys/dev/ath/if_ath.c index 6a551f0bced5..f2089f46e2dc 100644 --- a/sys/dev/ath/if_ath.c +++ b/sys/dev/ath/if_ath.c @@ -662,6 +662,9 @@ ath_attach(u_int16_t devid, struct ath_softc *sc) (void) ath_hal_settxchainmask(sc->sc_ah, tx_chainmask); } + device_printf(sc->sc_dev, "%s: sizeof(ath_buf) = %d bytes\n", + __func__, sizeof(struct ath_buf)); + #ifdef ATH_ENABLE_11N /* * Query HT capabilities diff --git a/sys/dev/ath/if_athvar.h b/sys/dev/ath/if_athvar.h index 760eee1404ab..2495474373e4 100644 --- a/sys/dev/ath/if_athvar.h +++ b/sys/dev/ath/if_athvar.h @@ -236,20 +236,32 @@ struct ath_buf { * These fields are passed into the * descriptor setup functions. */ + + /* Make this an 8 bit value? */ HAL_PKT_TYPE bfs_atype; /* packet type */ - int bfs_pktlen; /* length of this packet */ - int bfs_hdrlen; /* length of this packet header */ + + uint32_t bfs_pktlen; /* length of this packet */ + + uint16_t bfs_hdrlen; /* length of this packet header */ uint16_t bfs_al; /* length of aggregate */ - int bfs_txflags; /* HAL (tx) descriptor flags */ - int bfs_txrate0; /* first TX rate */ - int bfs_try0; /* first try count */ + + uint16_t bfs_txflags; /* HAL (tx) descriptor flags */ + uint8_t bfs_txrate0; /* first TX rate */ + uint8_t bfs_try0; /* first try count */ + + uint16_t bfs_txpower; /* tx power */ uint8_t bfs_ctsrate0; /* Non-zero - use this as ctsrate */ - int bfs_keyix; /* crypto key index */ - int bfs_txpower; /* tx power */ - int bfs_txantenna; /* TX antenna config */ + uint8_t bfs_ctsrate; /* CTS rate */ + + /* 16 bit? */ + int32_t bfs_keyix; /* crypto key index */ + int32_t bfs_txantenna; /* TX antenna config */ + + /* Make this an 8 bit value? */ enum ieee80211_protmode bfs_protmode; - int bfs_ctsrate; /* CTS rate */ - int bfs_ctsduration; /* CTS duration (pre-11n NICs) */ + + /* 16 bit? */ + uint32_t bfs_ctsduration; /* CTS duration (pre-11n NICs) */ struct ath_rc_series bfs_rc[ATH_RC_NUM]; /* non-11n TX series */ } bf_state; }; From 15e92497e276e19c415770b1626f960c0d79af03 Mon Sep 17 00:00:00 2001 From: Joel Dahl Date: Sat, 16 Jun 2012 06:38:11 +0000 Subject: [PATCH 266/340] mandoc fixes. Obtained from: OpenBSD --- lib/libc/gen/signal.3 | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/lib/libc/gen/signal.3 b/lib/libc/gen/signal.3 index 866eee373a6c..a41d2589778a 100644 --- a/lib/libc/gen/signal.3 +++ b/lib/libc/gen/signal.3 @@ -38,20 +38,11 @@ .Lb libc .Sh SYNOPSIS .In signal.h -.\" XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX -.\" The prototype for signal(3) cannot be cleanly marked up in -mdoc -.\" without the following lower-level tweak. -.nr in-synopsis-section 0 +.\" The following is Quite Ugly, but syntactically correct. +.\" Don't try to fix it. +.Ft void +.Fn \*(lp*signal "int sig" "void \*(lp*func\*(rp\*(lpint\*(rp\*(rp\*(rp\*(lpint" .Pp -.Ft "void \*(lp*" Ns -.Fo signal -.Fa "int sig" -.Fa "void \*(lp*func\*(rp\*(lpint\*(rp" -.Fc Ns -.Ft "\*(rp\*(lpint\*(rp" ; -.Pp -.nr in-synopsis-section 1 -.\" XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX or in .Fx Ap s equivalent but easier to read typedef'd version: @@ -98,7 +89,7 @@ an interrupt. These signals are defined in the file .In signal.h : .Bl -column No ".Dv SIGVTALRM" "create core image" -.It Sy "No Name Default Action Description" +.It Sy "Num" Ta Sy "Name" Ta Sy "Default Action" Ta Sy "Description" .It 1 Ta Dv SIGHUP Ta "terminate process" Ta "terminal line hangup" .It 2 Ta Dv SIGINT Ta "terminate process" Ta "interrupt program" .It 3 Ta Dv SIGQUIT Ta "create core image" Ta "quit program" From cff2dcd10d65cd91e83860650a8cb1afcc5e4910 Mon Sep 17 00:00:00 2001 From: Pawel Jakub Dawidek Date: Sat, 16 Jun 2012 12:56:36 +0000 Subject: [PATCH 267/340] Revert r237073. 'td' can be NULL here. MFC after: 1 month --- sys/kern/kern_descrip.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c index fea1eb7fa3e2..f5106e14f9bc 100644 --- a/sys/kern/kern_descrip.c +++ b/sys/kern/kern_descrip.c @@ -2104,9 +2104,6 @@ closef(struct file *fp, struct thread *td) struct filedesc *fdp; struct file *fp_object; - fdp = td->td_proc->p_fd; - FILEDESC_UNLOCK_ASSERT(fdp); - /* * POSIX record locking dictates that any close releases ALL * locks owned by this process. This is handled by setting @@ -2142,6 +2139,7 @@ closef(struct file *fp, struct thread *td) * Handle special case where file descriptor table is * shared between multiple process leaders. */ + fdp = td->td_proc->p_fd; FILEDESC_XLOCK(fdp); for (fdtol = fdtol->fdl_next; fdtol != td->td_proc->p_fdtol; From 3a3c91219b72833774d8248b2052e38a22e85b1f Mon Sep 17 00:00:00 2001 From: Konstantin Belousov Date: Sat, 16 Jun 2012 13:10:22 +0000 Subject: [PATCH 268/340] Revert part of the r235740 which changed separate allocation of the string buffer for each linelist l_line into one large string. Since linelists parsed out during the previous passes store the pointers to previously allocated l_lines, the reallocation caused undefined behaviour on accessing the buffers, and quite deterministic fault on freeing them (in mountd(8) startup). This fixes reading of netgroup(5) file which contains more then one netgroup. Discussed with: ghelmer MFC after: 3 days --- lib/libc/gen/getnetgrent.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/libc/gen/getnetgrent.c b/lib/libc/gen/getnetgrent.c index 933a7d3e932f..f9dfd7b58397 100644 --- a/lib/libc/gen/getnetgrent.c +++ b/lib/libc/gen/getnetgrent.c @@ -538,7 +538,7 @@ parse_netgrp(const char *group) static struct linelist * read_for_group(const char *group) { - char *pos, *spos, *linep; + char *linep, *olinep, *pos, *spos; int len, olen; int cont; struct linelist *lp; @@ -615,15 +615,20 @@ read_for_group(const char *group) } else cont = 0; if (len > 0) { - linep = reallocf(linep, olen + len + 1); + linep = malloc(olen + len + 1); if (linep == NULL) { free(lp->l_groupname); free(lp); return (NULL); } + if (olen > 0) { + bcopy(olinep, linep, olen); + free(olinep); + } bcopy(pos, linep + olen, len); olen += len; *(linep + olen) = '\0'; + olinep = linep; } if (cont) { if (fgets(line, LINSIZ, netf)) { From 17ec7b7aa86eb0b96ff6559a83efee0bdc2992ae Mon Sep 17 00:00:00 2001 From: Konstantin Belousov Date: Sat, 16 Jun 2012 13:11:10 +0000 Subject: [PATCH 269/340] More style. MFC after: 3 days --- lib/libc/gen/getnetgrent.c | 33 ++++++++++++++------------------- 1 file changed, 14 insertions(+), 19 deletions(-) diff --git a/lib/libc/gen/getnetgrent.c b/lib/libc/gen/getnetgrent.c index f9dfd7b58397..51b3e3758b61 100644 --- a/lib/libc/gen/getnetgrent.c +++ b/lib/libc/gen/getnetgrent.c @@ -161,8 +161,7 @@ setnetgrent(const char *group) if (group == NULL || !strlen(group)) return; - if (grouphead.gr == (struct netgrp *)0 || - strcmp(group, grouphead.grname)) { + if (grouphead.gr == NULL || strcmp(group, grouphead.grname)) { endnetgrent(); #ifdef YP /* Presumed guilty until proven innocent. */ @@ -172,7 +171,7 @@ setnetgrent(const char *group) * use NIS exclusively. */ if (((stat(_PATH_NETGROUP, &_yp_statp) < 0) && - errno == ENOENT) || _yp_statp.st_size == 0) + errno == ENOENT) || _yp_statp.st_size == 0) _use_only_yp = _netgr_yp_enabled = 1; if ((netf = fopen(_PATH_NETGROUP,"r")) != NULL ||_use_only_yp){ /* @@ -247,27 +246,24 @@ endnetgrent(void) lp = lp->l_next; free(olp->l_groupname); free(olp->l_line); - free((char *)olp); + free(olp); } - linehead = (struct linelist *)0; + linehead = NULL; if (grouphead.grname) { free(grouphead.grname); - grouphead.grname = (char *)0; + grouphead.grname = NULL; } gp = grouphead.gr; while (gp) { ogp = gp; gp = gp->ng_next; - if (ogp->ng_str[NG_HOST]) - free(ogp->ng_str[NG_HOST]); - if (ogp->ng_str[NG_USER]) - free(ogp->ng_str[NG_USER]); - if (ogp->ng_str[NG_DOM]) - free(ogp->ng_str[NG_DOM]); - free((char *)ogp); + free(ogp->ng_str[NG_HOST]); + free(ogp->ng_str[NG_USER]); + free(ogp->ng_str[NG_DOM]); + free(ogp); } - grouphead.gr = (struct netgrp *)0; - nextgrp = (struct netgrp *)0; + grouphead.gr = NULL; + nextgrp = NULL; #ifdef YP _netgr_yp_enabled = 0; #endif @@ -282,7 +278,7 @@ _listmatch(const char *list, const char *group, int len) int glen = strlen(group); /* skip possible leading whitespace */ - while(isspace((unsigned char)*ptr)) + while (isspace((unsigned char)*ptr)) ptr++; while (ptr < list + len) { @@ -291,7 +287,7 @@ _listmatch(const char *list, const char *group, int len) ptr++; if (strncmp(cptr, group, glen) == 0 && glen == (ptr - cptr)) return (1); - while(*ptr == ',' || isspace((unsigned char)*ptr)) + while (*ptr == ',' || isspace((unsigned char)*ptr)) ptr++; } @@ -436,8 +432,7 @@ parse_netgrp(const char *group) break; lp = lp->l_next; } - if (lp == (struct linelist *)0 && - (lp = read_for_group(group)) == (struct linelist *)0) + if (lp == NULL && (lp = read_for_group(group)) == NULL) return (1); if (lp->l_parsed) { #ifdef DEBUG From f75083f064b54cebd9ef787718ab500e4e7bc03b Mon Sep 17 00:00:00 2001 From: "Alexander V. Chernikov" Date: Sat, 16 Jun 2012 13:51:01 +0000 Subject: [PATCH 270/340] Fix improper L4 header handling for IPv6 packets passed via DLT_RAW. Reported by: Emil Muratov Reviewed by: glebius Approved by: ae(mentor) MFC after: 1 week --- sys/netgraph/netflow/ng_netflow.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/netgraph/netflow/ng_netflow.c b/sys/netgraph/netflow/ng_netflow.c index 727136283b86..9e125635d693 100644 --- a/sys/netgraph/netflow/ng_netflow.c +++ b/sys/netgraph/netflow/ng_netflow.c @@ -712,7 +712,7 @@ ng_netflow_rcvdata (hook_p hook, item_p item) if (ip->ip_v == IP6VERSION) { /* IPv6 packet */ ip = NULL; - M_CHECK(sizeof(struct ip6_hdr)); + M_CHECK(sizeof(struct ip6_hdr) - sizeof(struct ip)); ip6 = mtod(m, struct ip6_hdr *); } #endif From 6a0d28ec210bdf7c6d1aa2254cbf0d906ca09029 Mon Sep 17 00:00:00 2001 From: "Alexander V. Chernikov" Date: Sat, 16 Jun 2012 13:53:14 +0000 Subject: [PATCH 271/340] Set netflow v9 observation domain value to fib number instead of node id. This fixes multi-fib netflow v9 export. Reviewed by: glebius Approved by: kib(mentor) MFC after: 1 week --- sys/netgraph/netflow/netflow_v9.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/netgraph/netflow/netflow_v9.c b/sys/netgraph/netflow/netflow_v9.c index 31304d78ab69..e10157cda41d 100644 --- a/sys/netgraph/netflow/netflow_v9.c +++ b/sys/netgraph/netflow/netflow_v9.c @@ -222,7 +222,7 @@ export9_send(priv_p priv, fib_export_p fe, item_p item, struct netflow_v9_packet header->unix_secs = htonl(ts.tv_sec); header->seq_num = htonl(atomic_fetchadd_32(&fe->flow9_seq, 1)); header->count = htons(t->count); - header->source_id = htonl(NG_NODE_ID(priv->node)); + header->source_id = htonl(fe->domain_id); if (priv->export9 != NULL) NG_FWD_ITEM_HOOK_FLAGS(error, item, priv->export9, flags); From e8cce25549020e568b6f2ae15ac494f1d7064012 Mon Sep 17 00:00:00 2001 From: "Alexander V. Chernikov" Date: Sat, 16 Jun 2012 13:55:31 +0000 Subject: [PATCH 272/340] Use time_uptime instead of getnanotime for accouting integer number of seconds. Reviewed by: glebius Approved by: ae(mentor) MFC after: 1 week --- sys/netgraph/netflow/netflow_v9.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/sys/netgraph/netflow/netflow_v9.c b/sys/netgraph/netflow/netflow_v9.c index e10157cda41d..b918feb9cc98 100644 --- a/sys/netgraph/netflow/netflow_v9.c +++ b/sys/netgraph/netflow/netflow_v9.c @@ -416,16 +416,14 @@ get_export9_dgram(priv_p priv, fib_export_p fe, struct netflow_v9_packet_opt **t * Check if we need to insert templates into packet */ - struct timespec ts; struct netflow_v9_flowset_header *fl; - getnanotime(&ts); - if ((ts.tv_sec >= priv->templ_time + fe->templ_last_ts) || + if ((time_uptime >= priv->templ_time + fe->templ_last_ts) || (fe->sent_packets >= priv->templ_packets + fe->templ_last_pkt)) { - atomic_store_rel_32(&fe->templ_last_ts, ts.tv_sec); - atomic_store_rel_32(&fe->templ_last_pkt, fe->sent_packets); - + fe->templ_last_ts = time_uptime; + fe->templ_last_pkt = fe->sent_packets; + fl = priv->v9_flowsets[0]; m_append(m, ntohs(fl->length), (void *)fl); t->flow_header = m->m_len; From bc5116ba42aea2291f3c70ba46aba6ac677e997f Mon Sep 17 00:00:00 2001 From: Robert Millan Date: Sat, 16 Jun 2012 16:51:42 +0000 Subject: [PATCH 273/340] In CTFCONVERT_CMD initialization, check that ${MAKE_VERSION} is defined before using it. Bootstrap make (as built by usr.bin/make/Makefile.dist) does not define this variable, but it needs to parse bsd.own.mk in order to build a complete make. --- share/mk/bsd.own.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/share/mk/bsd.own.mk b/share/mk/bsd.own.mk index 924e9ceb57eb..e825c627e4bd 100644 --- a/share/mk/bsd.own.mk +++ b/share/mk/bsd.own.mk @@ -639,7 +639,7 @@ MK_${vv:H}:= ${MK_${vv:T}} .if ${MK_CTF} != "no" CTFCONVERT_CMD= ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} -.elif ${MAKE_VERSION} >= 5201111300 +.elif defined(MAKE_VERSION) && ${MAKE_VERSION} >= 5201111300 CTFCONVERT_CMD= .else CTFCONVERT_CMD= @: From 6031c68de4bcae8f608916a7df5885c9b9942d34 Mon Sep 17 00:00:00 2001 From: Alan Cox Date: Sat, 16 Jun 2012 18:56:19 +0000 Subject: [PATCH 274/340] The page flag PGA_WRITEABLE is set and cleared exclusively by the pmap layer, but it is read directly by the MI VM layer. This change introduces pmap_page_is_write_mapped() in order to completely encapsulate all direct access to PGA_WRITEABLE in the pmap layer. Aesthetics aside, I am making this change because amd64 will likely begin using an alternative method to track write mappings, and having pmap_page_is_write_mapped() in place allows me to make such a change without further modification to the MI VM layer. As an added bonus, tidy up some nearby comments concerning page flags. Reviewed by: kib MFC after: 6 weeks --- sys/amd64/include/pmap.h | 1 + sys/arm/include/pmap.h | 1 + sys/i386/include/pmap.h | 1 + sys/ia64/include/pmap.h | 1 + sys/mips/include/pmap.h | 1 + sys/powerpc/include/pmap.h | 2 ++ sys/sparc64/include/pmap.h | 1 + sys/vm/pmap.h | 3 ++- sys/vm/swap_pager.c | 2 +- sys/vm/vm_page.c | 6 +++--- sys/vm/vm_page.h | 14 ++++++++------ sys/vm/vm_pageout.c | 4 ++-- sys/vm/vnode_pager.c | 2 +- 13 files changed, 25 insertions(+), 14 deletions(-) diff --git a/sys/amd64/include/pmap.h b/sys/amd64/include/pmap.h index 48758ef8dc92..71045ae88224 100644 --- a/sys/amd64/include/pmap.h +++ b/sys/amd64/include/pmap.h @@ -309,6 +309,7 @@ extern vm_offset_t virtual_avail; extern vm_offset_t virtual_end; #define pmap_page_get_memattr(m) ((vm_memattr_t)(m)->md.pat_mode) +#define pmap_page_is_write_mapped(m) (((m)->aflags & PGA_WRITEABLE) != 0) #define pmap_unmapbios(va, sz) pmap_unmapdev((va), (sz)) void pmap_bootstrap(vm_paddr_t *); diff --git a/sys/arm/include/pmap.h b/sys/arm/include/pmap.h index 04270bad8d50..85ea31a840fc 100644 --- a/sys/arm/include/pmap.h +++ b/sys/arm/include/pmap.h @@ -78,6 +78,7 @@ #define pmap_page_get_memattr(m) VM_MEMATTR_DEFAULT #define pmap_page_is_mapped(m) (!TAILQ_EMPTY(&(m)->md.pv_list)) +#define pmap_page_is_write_mapped(m) (((m)->aflags & PGA_WRITEABLE) != 0) #define pmap_page_set_memattr(m, ma) (void)0 /* diff --git a/sys/i386/include/pmap.h b/sys/i386/include/pmap.h index 3e0ba6f99ac9..7a827f8b994e 100644 --- a/sys/i386/include/pmap.h +++ b/sys/i386/include/pmap.h @@ -498,6 +498,7 @@ extern vm_offset_t virtual_avail; extern vm_offset_t virtual_end; #define pmap_page_get_memattr(m) ((vm_memattr_t)(m)->md.pat_mode) +#define pmap_page_is_write_mapped(m) (((m)->aflags & PGA_WRITEABLE) != 0) #define pmap_unmapbios(va, sz) pmap_unmapdev((va), (sz)) /* diff --git a/sys/ia64/include/pmap.h b/sys/ia64/include/pmap.h index 2b89df0e2504..3c4539f6d143 100644 --- a/sys/ia64/include/pmap.h +++ b/sys/ia64/include/pmap.h @@ -118,6 +118,7 @@ extern int pmap_vhpt_log2size; #define pmap_page_get_memattr(m) ((m)->md.memattr) #define pmap_page_is_mapped(m) (!TAILQ_EMPTY(&(m)->md.pv_list)) +#define pmap_page_is_write_mapped(m) (((m)->aflags & PGA_WRITEABLE) != 0) #define pmap_mapbios(pa, sz) pmap_mapdev(pa, sz) #define pmap_unmapbios(va, sz) pmap_unmapdev(va, sz) diff --git a/sys/mips/include/pmap.h b/sys/mips/include/pmap.h index 35d414a211db..fbe8dd34dbb5 100644 --- a/sys/mips/include/pmap.h +++ b/sys/mips/include/pmap.h @@ -151,6 +151,7 @@ extern vm_paddr_t dump_avail[PHYS_AVAIL_ENTRIES + 2]; #define pmap_page_get_memattr(m) VM_MEMATTR_DEFAULT #define pmap_page_is_mapped(m) (!TAILQ_EMPTY(&(m)->md.pv_list)) +#define pmap_page_is_write_mapped(m) (((m)->aflags & PGA_WRITEABLE) != 0) #define pmap_page_set_memattr(m, ma) (void)0 void pmap_bootstrap(void); diff --git a/sys/powerpc/include/pmap.h b/sys/powerpc/include/pmap.h index 2f0e5b0ce774..f50ff118da0f 100644 --- a/sys/powerpc/include/pmap.h +++ b/sys/powerpc/include/pmap.h @@ -223,6 +223,8 @@ extern struct pmap kernel_pmap_store; #define PMAP_TRYLOCK(pmap) mtx_trylock(&(pmap)->pm_mtx) #define PMAP_UNLOCK(pmap) mtx_unlock(&(pmap)->pm_mtx) +#define pmap_page_is_write_mapped(m) (((m)->aflags & PGA_WRITEABLE) != 0) + void pmap_bootstrap(vm_offset_t, vm_offset_t); void pmap_kenter(vm_offset_t va, vm_paddr_t pa); void pmap_kenter_attr(vm_offset_t va, vm_offset_t pa, vm_memattr_t); diff --git a/sys/sparc64/include/pmap.h b/sys/sparc64/include/pmap.h index 72dbaadd45c1..2ab390197651 100644 --- a/sys/sparc64/include/pmap.h +++ b/sys/sparc64/include/pmap.h @@ -80,6 +80,7 @@ struct pmap { #define PMAP_UNLOCK(pmap) mtx_unlock(&(pmap)->pm_mtx) #define pmap_page_get_memattr(m) VM_MEMATTR_DEFAULT +#define pmap_page_is_write_mapped(m) (((m)->aflags & PGA_WRITEABLE) != 0) #define pmap_page_set_memattr(m, ma) (void)0 void pmap_bootstrap(u_int cpu_impl); diff --git a/sys/vm/pmap.h b/sys/vm/pmap.h index a4f1e707cdb5..d06c22bffb16 100644 --- a/sys/vm/pmap.h +++ b/sys/vm/pmap.h @@ -80,10 +80,11 @@ struct pmap_statistics { typedef struct pmap_statistics *pmap_statistics_t; /* - * Each machine dependent implementation is expected to provide: + * Each machine-dependent implementation is required to provide: * * vm_memattr_t pmap_page_get_memattr(vm_page_t); * boolean_t pmap_page_is_mapped(vm_page_t); + * boolean_t pmap_page_is_write_mapped(vm_page_t); * void pmap_page_set_memattr(vm_page_t, vm_memattr_t); */ #include diff --git a/sys/vm/swap_pager.c b/sys/vm/swap_pager.c index be999cc8c13e..3c902e3fd176 100644 --- a/sys/vm/swap_pager.c +++ b/sys/vm/swap_pager.c @@ -1593,7 +1593,7 @@ swp_pager_async_iodone(struct buf *bp) * status, then finish the I/O ( which decrements the * busy count and possibly wakes waiter's up ). */ - KASSERT((m->aflags & PGA_WRITEABLE) == 0, + KASSERT(!pmap_page_is_write_mapped(m), ("swp_pager_async_iodone: page %p is not write" " protected", m)); vm_page_undirty(m); diff --git a/sys/vm/vm_page.c b/sys/vm/vm_page.c index 65af69df2b8a..5b3afe718d41 100644 --- a/sys/vm/vm_page.c +++ b/sys/vm/vm_page.c @@ -930,7 +930,7 @@ vm_page_insert(vm_page_t m, vm_object_t object, vm_pindex_t pindex) * Since we are inserting a new and possibly dirty page, * update the object's OBJ_MIGHTBEDIRTY flag. */ - if (m->aflags & PGA_WRITEABLE) + if (pmap_page_is_write_mapped(m)) vm_object_set_writeable_dirty(object); } @@ -2675,11 +2675,11 @@ vm_page_clear_dirty_mask(vm_page_t m, vm_page_bits_t pagebits) /* * If the object is locked and the page is neither VPO_BUSY nor - * PGA_WRITEABLE, then the page's dirty field cannot possibly be + * write mapped, then the page's dirty field cannot possibly be * set by a concurrent pmap operation. */ VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED); - if ((m->oflags & VPO_BUSY) == 0 && (m->aflags & PGA_WRITEABLE) == 0) + if ((m->oflags & VPO_BUSY) == 0 && !pmap_page_is_write_mapped(m)) m->dirty &= ~pagebits; else { /* diff --git a/sys/vm/vm_page.h b/sys/vm/vm_page.h index 479c5bfbbdcc..44fe235b2415 100644 --- a/sys/vm/vm_page.h +++ b/sys/vm/vm_page.h @@ -237,20 +237,22 @@ extern struct vpglocks pa_lock[]; #endif #define vm_page_queue_free_mtx vm_page_queue_free_lock.data + /* * These are the flags defined for vm_page. * - * aflags are updated by atomic accesses. Use the vm_page_aflag_set() + * aflags are updated by atomic accesses. Use the vm_page_aflag_set() * and vm_page_aflag_clear() functions to set and clear the flags. * * PGA_REFERENCED may be cleared only if the object containing the page is - * locked. + * locked. It is set by both the MI and MD VM layers. * * PGA_WRITEABLE is set exclusively on managed pages by pmap_enter(). When it - * does so, the page must be VPO_BUSY. + * does so, the page must be VPO_BUSY. The MI VM layer must never access this + * flag directly. Instead, it should call pmap_page_is_write_mapped(). * * PGA_EXECUTABLE may be set by pmap routines, and indicates that a page has - * at least one executable mapping. It is not consumed by the VM layer. + * at least one executable mapping. It is not consumed by the MI VM layer. */ #define PGA_WRITEABLE 0x01 /* page may be mapped writeable */ #define PGA_REFERENCED 0x02 /* page has been referenced */ @@ -262,12 +264,12 @@ extern struct vpglocks pa_lock[]; */ #define PG_CACHED 0x01 /* page is cached */ #define PG_FREE 0x02 /* page is free */ -#define PG_FICTITIOUS 0x04 /* physical page doesn't exist (O) */ +#define PG_FICTITIOUS 0x04 /* physical page doesn't exist */ #define PG_ZERO 0x08 /* page is zeroed */ #define PG_MARKER 0x10 /* special queue marker page */ #define PG_SLAB 0x20 /* object pointer is actually a slab */ #define PG_WINATCFLS 0x40 /* flush dirty page on inactive q */ -#define PG_NODUMP 0x80 /* don't include this page in the dump */ +#define PG_NODUMP 0x80 /* don't include this page in a dump */ /* * Misc constants. diff --git a/sys/vm/vm_pageout.c b/sys/vm/vm_pageout.c index fccd1dc193c4..95ce6fd15e6f 100644 --- a/sys/vm/vm_pageout.c +++ b/sys/vm/vm_pageout.c @@ -503,7 +503,7 @@ vm_pageout_flush(vm_page_t *mc, int count, int flags, int mreq, int *prunlen, vm_page_t mt = mc[i]; KASSERT(pageout_status[i] == VM_PAGER_PEND || - (mt->aflags & PGA_WRITEABLE) == 0, + !pmap_page_is_write_mapped(mt), ("vm_pageout_flush: page %p is not write protected", mt)); switch (pageout_status[i]) { case VM_PAGER_OK: @@ -899,7 +899,7 @@ vm_pageout_scan(int pass) * be updated. */ if (m->dirty != VM_PAGE_BITS_ALL && - (m->aflags & PGA_WRITEABLE) != 0) { + pmap_page_is_write_mapped(m)) { /* * Avoid a race condition: Unless write access is * removed from the page, another processor could diff --git a/sys/vm/vnode_pager.c b/sys/vm/vnode_pager.c index c8c57e154c2e..aae077780606 100644 --- a/sys/vm/vnode_pager.c +++ b/sys/vm/vnode_pager.c @@ -1146,7 +1146,7 @@ vnode_pager_generic_putpages(struct vnode *vp, vm_page_t *ma, int bytecount, m = ma[ncount - 1]; KASSERT(m->busy > 0, ("vnode_pager_generic_putpages: page %p is not busy", m)); - KASSERT((m->aflags & PGA_WRITEABLE) == 0, + KASSERT(!pmap_page_is_write_mapped(m), ("vnode_pager_generic_putpages: page %p is not read-only", m)); vm_page_clear_dirty(m, pgoff, PAGE_SIZE - pgoff); From ec528f07de495e8383eaf2edcc6c6baf08fd8053 Mon Sep 17 00:00:00 2001 From: Konstantin Belousov Date: Sat, 16 Jun 2012 20:49:08 +0000 Subject: [PATCH 275/340] Fix build. --- sys/dev/ath/if_ath.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/dev/ath/if_ath.c b/sys/dev/ath/if_ath.c index f2089f46e2dc..0d6d4f8d3a35 100644 --- a/sys/dev/ath/if_ath.c +++ b/sys/dev/ath/if_ath.c @@ -663,7 +663,7 @@ ath_attach(u_int16_t devid, struct ath_softc *sc) } device_printf(sc->sc_dev, "%s: sizeof(ath_buf) = %d bytes\n", - __func__, sizeof(struct ath_buf)); + __func__, (int)sizeof(struct ath_buf)); #ifdef ATH_ENABLE_11N /* From b25c1f2af013e06e31168410ba0f81d987f828de Mon Sep 17 00:00:00 2001 From: Adrian Chadd Date: Sat, 16 Jun 2012 21:37:15 +0000 Subject: [PATCH 276/340] A few nitpicks: * Use ATH_RC_NUM instead of '4' when iterating over the ratecontrol series array. * A few style(9) fixes, hopefully no regressions here. * Add some comments that better describe what's going on. --- sys/dev/ath/if_ath_tx_ht.c | 49 +++++++++++++++++++++++++++----------- 1 file changed, 35 insertions(+), 14 deletions(-) diff --git a/sys/dev/ath/if_ath_tx_ht.c b/sys/dev/ath/if_ath_tx_ht.c index 7ef72bc7c6ca..e9ec632d51e5 100644 --- a/sys/dev/ath/if_ath_tx_ht.c +++ b/sys/dev/ath/if_ath_tx_ht.c @@ -96,9 +96,10 @@ __FBSDID("$FreeBSD$"); */ #define IEEE80211_AMPDU_SUBFRAME_DEFAULT 32 -#define ATH_AGGR_DELIM_SZ 4 /* delimiter size */ +#define ATH_AGGR_DELIM_SZ 4 /* delimiter size */ #define ATH_AGGR_MINPLEN 256 /* in bytes, minimum packet length */ -#define ATH_AGGR_ENCRYPTDELIM 10 /* number of delimiters for encryption padding */ +/* number of delimiters for encryption padding */ +#define ATH_AGGR_ENCRYPTDELIM 10 /* * returns delimiter padding required given the packet length @@ -414,7 +415,7 @@ ath_get_aggr_limit(struct ath_softc *sc, struct ath_buf *bf) int amin = 65530; int i; - for (i = 0; i < 4; i++) { + for (i = 0; i < ATH_RC_NUM; i++) { if (bf->bf_state.bfs_rc[i].tries == 0) continue; amin = MIN(amin, bf->bf_state.bfs_rc[i].max4msframelen); @@ -465,7 +466,7 @@ ath_rateseries_setup(struct ath_softc *sc, struct ieee80211_node *ni, * XXX fields. */ memset(series, 0, sizeof(HAL_11N_RATE_SERIES) * 4); - for (i = 0; i < 4; i++) { + for (i = 0; i < ATH_RC_NUM; i++) { /* Only set flags for actual TX attempts */ if (rc[i].tries == 0) continue; @@ -511,7 +512,10 @@ ath_rateseries_setup(struct ath_softc *sc, struct ieee80211_node *ni, series[i].Rate = rt->info[rc[i].rix].rateCode; - /* PktDuration doesn't include slot, ACK, RTS, etc timing - it's just the packet duration */ + /* + * PktDuration doesn't include slot, ACK, RTS, etc timing - + * it's just the packet duration + */ if (series[i].Rate & IEEE80211_RATE_MCS) { series[i].PktDuration = ath_computedur_ht(pktlen @@ -531,11 +535,12 @@ ath_rateseries_setup(struct ath_softc *sc, struct ieee80211_node *ni, #if 0 static void -ath_rateseries_print(HAL_11N_RATE_SERIES *series) +ath_rateseries_print(struct ath_softc *sc, HAL_11N_RATE_SERIES *series) { int i; - for (i = 0; i < 4; i++) { - printf("series %d: rate %x; tries %d; pktDuration %d; chSel %d; rateFlags %x\n", + for (i = 0; i < ATH_RC_NUM; i++) { + device_printf(sc->sc_dev ,"series %d: rate %x; tries %d; " + "pktDuration %d; chSel %d; rateFlags %x\n", i, series[i].Rate, series[i].Tries, @@ -580,19 +585,34 @@ ath_buf_set_rate(struct ath_softc *sc, struct ieee80211_node *ni, #if 0 printf("pktlen: %d; flags 0x%x\n", pktlen, flags); - ath_rateseries_print(series); + ath_rateseries_print(sc, series); #endif /* Set rate scenario */ + /* + * Note: Don't allow hardware to override the duration on + * ps-poll packets. + */ ath_hal_set11nratescenario(ah, ds, !is_pspoll, /* whether to override the duration or not */ - /* don't allow hardware to override the duration on ps-poll packets */ ctsrate, /* rts/cts rate */ series, /* 11n rate series */ 4, /* number of series */ flags); /* Setup the last descriptor in the chain */ + /* + * XXX Why is this done here, and not in the upper layer? + * The rate control code stores a copy of the RC info in + * the last descriptor as well as the first, then uses + * the shadow copy in the last descriptor to see what the RC + * decisions were. I'm not sure why; perhaps earlier hardware + * overwrote the first descriptor contents. + * + * In the 802.11n case, it also clears the moreaggr/delim + * fields. Again, this should be done by the caller of + * ath_buf_set_rate(). + */ ath_hal_setuplasttxdesc(ah, lastds, ds); /* Set burst duration */ @@ -628,8 +648,9 @@ ath_buf_set_rate(struct ath_softc *sc, struct ieee80211_node *ni, * descriptor setup, and ath_buf_set_rate() will configure the * rate control. * - * Note that the TID lock is only grabbed when dequeuing packets from - * the TID queue. If some code in another thread adds to the head of this + * The TID lock is required for the entirety of this function. + * + * If some code in another thread adds to the head of this * list, very strange behaviour will occur. Since retransmission is the * only reason this will occur, and this routine is designed to be called * from within the scheduler task, it won't ever clash with the completion @@ -639,8 +660,8 @@ ath_buf_set_rate(struct ath_softc *sc, struct ieee80211_node *ni, * dispatch aggregate frames to the hardware), please keep this in mind. */ ATH_AGGR_STATUS -ath_tx_form_aggr(struct ath_softc *sc, struct ath_node *an, struct ath_tid *tid, - ath_bufhead *bf_q) +ath_tx_form_aggr(struct ath_softc *sc, struct ath_node *an, + struct ath_tid *tid, ath_bufhead *bf_q) { //struct ieee80211_node *ni = &an->an_node; struct ath_buf *bf, *bf_first = NULL, *bf_prev = NULL; From db9ba57895e6afe14a3ace49d0e39bbd9e19dcc1 Mon Sep 17 00:00:00 2001 From: Attilio Rao Date: Sat, 16 Jun 2012 21:39:00 +0000 Subject: [PATCH 277/340] Do a more targeted check on the page cache and avoid to check the cache pointer directly in vnode_pager_setsize() by using newly introduced vm_page_is_cached() function. Reviewed by: alc MFC after: 2 weeks X-MFC: r234039,234064 --- sys/vm/vnode_pager.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/vm/vnode_pager.c b/sys/vm/vnode_pager.c index aae077780606..9c12be14d238 100644 --- a/sys/vm/vnode_pager.c +++ b/sys/vm/vnode_pager.c @@ -440,7 +440,7 @@ vnode_pager_setsize(vp, nsize) */ vm_page_clear_dirty(m, base, PAGE_SIZE - base); } else if ((nsize & PAGE_MASK) && - __predict_false(object->cache != NULL)) { + vm_page_is_cached(object, OFF_TO_IDX(nsize))) { vm_page_cache_free(object, OFF_TO_IDX(nsize), nobjsize); } From af0c4b9e4ffa01839394fa9eeb132b659d308b7c Mon Sep 17 00:00:00 2001 From: Adrian Chadd Date: Sat, 16 Jun 2012 22:26:45 +0000 Subject: [PATCH 278/340] oops, remove this, it wasn't supposed to be committed. --- sys/dev/ath/if_ath.c | 3 --- sys/dev/ath/if_ath_rx.c | 1 + 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/sys/dev/ath/if_ath.c b/sys/dev/ath/if_ath.c index 0d6d4f8d3a35..6a551f0bced5 100644 --- a/sys/dev/ath/if_ath.c +++ b/sys/dev/ath/if_ath.c @@ -662,9 +662,6 @@ ath_attach(u_int16_t devid, struct ath_softc *sc) (void) ath_hal_settxchainmask(sc->sc_ah, tx_chainmask); } - device_printf(sc->sc_dev, "%s: sizeof(ath_buf) = %d bytes\n", - __func__, (int)sizeof(struct ath_buf)); - #ifdef ATH_ENABLE_11N /* * Query HT capabilities diff --git a/sys/dev/ath/if_ath_rx.c b/sys/dev/ath/if_ath_rx.c index 49901b4b9c27..7fa86f7ab225 100644 --- a/sys/dev/ath/if_ath_rx.c +++ b/sys/dev/ath/if_ath_rx.c @@ -637,6 +637,7 @@ ath_rx_pkt(struct ath_softc *sc, struct ath_rx_status *rs, HAL_STATUS status, } ifp->if_ipackets++; + ifp->if_ibytes += m->m_pkthdr.len; sc->sc_stats.ast_ant_rx[rs->rs_antenna]++; /* From 891f9ad6f29725e62cf5d08bdc016073ceed4da7 Mon Sep 17 00:00:00 2001 From: Adrian Chadd Date: Sat, 16 Jun 2012 22:28:36 +0000 Subject: [PATCH 279/340] .. and this wasn't supposed to be in the previous commit either. --- sys/dev/ath/if_ath_rx.c | 1 - 1 file changed, 1 deletion(-) diff --git a/sys/dev/ath/if_ath_rx.c b/sys/dev/ath/if_ath_rx.c index 7fa86f7ab225..49901b4b9c27 100644 --- a/sys/dev/ath/if_ath_rx.c +++ b/sys/dev/ath/if_ath_rx.c @@ -637,7 +637,6 @@ ath_rx_pkt(struct ath_softc *sc, struct ath_rx_status *rs, HAL_STATUS status, } ifp->if_ipackets++; - ifp->if_ibytes += m->m_pkthdr.len; sc->sc_stats.ast_ant_rx[rs->rs_antenna]++; /* From f181f0e74b1af7183ff7edfbd92b21f1a3ef49c0 Mon Sep 17 00:00:00 2001 From: Eitan Adler Date: Sun, 17 Jun 2012 02:46:27 +0000 Subject: [PATCH 280/340] attach_generic causes missing devices in /dev when the driver interacts with some non-highpoint controollers. Change attach_generic to be off by default. PR: kern/168910 Submitted by: Richard Yao Approved by: cperciva No objections by: -hackers Obtained from: Gentoo FreeBSD MFC after: 2 weeks --- share/man/man4/hptrr.4 | 7 ++++--- sys/dev/hptrr/hptrr_osm_bsd.c | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/share/man/man4/hptrr.4 b/share/man/man4/hptrr.4 index 847d86db7c02..54a65128589c 100644 --- a/share/man/man4/hptrr.4 +++ b/share/man/man4/hptrr.4 @@ -50,8 +50,8 @@ hptrr_load="YES" The following tunables are settable from the loader: .Bl -ohang .It Va hw.hptrr.attach_generic -set to 0 to deny driver attach to chips with generic Marvell (non-HighPoint) -PCI identification. These chips are also supported by ata(4). +set to 1 to permit driver attach to chips with generic Marvell (non-HighPoint) +PCI identification. These chips are also supported by ata(4) and mvs(4). Some vendors are using same chips, but without providing RAID BIOS. .El .Sh DESCRIPTION @@ -112,7 +112,8 @@ This driver supersedes the older rr232x driver. .Xr ata 4 , .Xr cam 4 , .Xr hptmv 4 , -.Xr loader 8 +.Xr loader 8 , +.Xr mvs 4 .Sh HISTORY The .Nm diff --git a/sys/dev/hptrr/hptrr_osm_bsd.c b/sys/dev/hptrr/hptrr_osm_bsd.c index 1f6b19a38e70..cff4254dd537 100644 --- a/sys/dev/hptrr/hptrr_osm_bsd.c +++ b/sys/dev/hptrr/hptrr_osm_bsd.c @@ -36,7 +36,7 @@ __FBSDID("$FreeBSD$"); #include #include -static int attach_generic = 1; +static int attach_generic = 0; TUNABLE_INT("hw.hptrr.attach_generic", &attach_generic); static int hpt_probe(device_t dev) From d1328898eb700b0a8438a7532aa720d975744570 Mon Sep 17 00:00:00 2001 From: Adrian Chadd Date: Sun, 17 Jun 2012 03:08:33 +0000 Subject: [PATCH 281/340] After some discussion with bschmidt@, it's likely better to just go through ieee80211_suspend_all() and ieee80211_resume_all(). All the other wireless drivers are doing that particular dance. PR: kern/169084 --- sys/dev/ath/if_ath.c | 41 ++++------------------------------------- 1 file changed, 4 insertions(+), 37 deletions(-) diff --git a/sys/dev/ath/if_ath.c b/sys/dev/ath/if_ath.c index 6a551f0bced5..5d7396c4a8fa 100644 --- a/sys/dev/ath/if_ath.c +++ b/sys/dev/ath/if_ath.c @@ -1309,15 +1309,8 @@ ath_suspend(struct ath_softc *sc) __func__, ifp->if_flags); sc->sc_resume_up = (ifp->if_flags & IFF_UP) != 0; - if (ic->ic_opmode == IEEE80211_M_STA) - /* - * This has been disabled - see PR kern/169084. - */ -#if 0 - ath_stop(ifp); - else -#endif - ieee80211_suspend_all(ic); + + ieee80211_suspend_all(ic); /* * NB: don't worry about putting the chip in low power * mode; pci will power off our socket on suspend and @@ -1383,34 +1376,8 @@ ath_resume(struct ath_softc *sc) ath_led_config(sc); ath_hal_setledstate(ah, HAL_LED_INIT); - if (sc->sc_resume_up) { - /* - * This particular feature doesn't work at the present, - * at least on the 802.11n chips. It's quite possible - * that the STA Beacon timers aren't being configured - * properly. - * - * See PR kern/169084. - */ -#if 0 - if (ic->ic_opmode == IEEE80211_M_STA) { - ath_init(sc); - ath_hal_setledstate(ah, HAL_LED_RUN); - /* - * Program the beacon registers using the last rx'd - * beacon frame and enable sync on the next beacon - * we see. This should handle the case where we - * wakeup and find the same AP and also the case where - * we wakeup and need to roam. For the latter we - * should get bmiss events that trigger a roam. - */ - ath_beacon_config(sc, NULL); - sc->sc_syncbeacon = 1; - ieee80211_resume_all(ic); - } else -#endif - ieee80211_resume_all(ic); - } + if (sc->sc_resume_up) + ieee80211_resume_all(ic); /* XXX beacons ? */ } From 3e5999f2060aeb848462c6671e0840924bb6eeb3 Mon Sep 17 00:00:00 2001 From: Eitan Adler Date: Sun, 17 Jun 2012 03:54:10 +0000 Subject: [PATCH 282/340] Fix mdoc style nits PR: kern/168910 Submitted by: gjb Approved by: gjb MFC after: 3 days X-MFC-With: r237178 --- share/man/man4/hptrr.4 | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/share/man/man4/hptrr.4 b/share/man/man4/hptrr.4 index 54a65128589c..0cbd2fdf3eba 100644 --- a/share/man/man4/hptrr.4 +++ b/share/man/man4/hptrr.4 @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd November 8, 2009 +.Dd June 6, 2012 .Dt HPTRR 4 .Os .Sh NAME @@ -51,7 +51,10 @@ The following tunables are settable from the loader: .Bl -ohang .It Va hw.hptrr.attach_generic set to 1 to permit driver attach to chips with generic Marvell (non-HighPoint) -PCI identification. These chips are also supported by ata(4) and mvs(4). +PCI identification. These chips are also supported by +.Xr ata 4 +and +.Xr mvs 4 . Some vendors are using same chips, but without providing RAID BIOS. .El .Sh DESCRIPTION @@ -112,8 +115,8 @@ This driver supersedes the older rr232x driver. .Xr ata 4 , .Xr cam 4 , .Xr hptmv 4 , -.Xr loader 8 , -.Xr mvs 4 +.Xr mvs 4 , +.Xr loader 8 .Sh HISTORY The .Nm From daf98875969e44f0d80b8449bbd00a9e19b53338 Mon Sep 17 00:00:00 2001 From: Adrian Chadd Date: Sun, 17 Jun 2012 04:48:47 +0000 Subject: [PATCH 283/340] Bring over the AR9285 specific PCIe suspend/resume/ASPM workarounds. Obtained from: Qualcomm Atheros, Linux ath9k --- sys/dev/ath/ath_hal/ar9002/ar9285_attach.c | 57 +++++++++++++++++++++- 1 file changed, 55 insertions(+), 2 deletions(-) diff --git a/sys/dev/ath/ath_hal/ar9002/ar9285_attach.c b/sys/dev/ath/ath_hal/ar9002/ar9285_attach.c index 690a0cc52f44..7eefe49079a2 100644 --- a/sys/dev/ath/ath_hal/ar9002/ar9285_attach.c +++ b/sys/dev/ath/ath_hal/ar9002/ar9285_attach.c @@ -367,18 +367,71 @@ ar9285Attach(uint16_t devid, HAL_SOFTC sc, static void ar9285ConfigPCIE(struct ath_hal *ah, HAL_BOOL restore, HAL_BOOL power_off) { + uint32_t val; + if (AH_PRIVATE(ah)->ah_ispcie && !restore) { ath_hal_ini_write(ah, &AH5416(ah)->ah_ini_pcieserdes, 1, 0); OS_DELAY(1000); + } + + /* + * Set PCIe workaround bits + * + * NOTE: + * + * In Merlin and Kite, bit 14 in WA register (disable L1) should only + * be set when device enters D3 and be cleared when device comes back + * to D0. + */ + if (power_off) { /* Power-off */ + OS_REG_CLR_BIT(ah, AR_PCIE_PM_CTRL, AR_PCIE_PM_CTRL_ENA); + + val = OS_REG_READ(ah, AR_WA); + + /* + * Disable bit 6 and 7 before entering D3 to prevent + * system hang. + */ + val &= ~(AR_WA_BIT6 | AR_WA_BIT7); + + /* + * See above: set AR_WA_D3_L1_DISABLE when entering D3 state. + * + * XXX The reference HAL does it this way - it only sets + * AR_WA_D3_L1_DISABLE if it's set in AR9280_WA_DEFAULT, + * which it (currently) isn't. So the following statement + * is currently a NOP. + */ + if (AR9285_WA_DEFAULT & AR_WA_D3_L1_DISABLE) + val |= AR_WA_D3_L1_DISABLE; + + if (AR_SREV_9285E_20(ah)) + val |= AR_WA_BIT23; + + OS_REG_WRITE(ah, AR_WA, val); + } else { /* Power-on */ + val = AR9285_WA_DEFAULT; + /* + * See note above: make sure L1_DISABLE is not set. + */ + val &= (~AR_WA_D3_L1_DISABLE); + + /* Software workaroud for ASPM system hang. */ + val |= (AR_WA_BIT6 | AR_WA_BIT7); + + if (AR_SREV_9285E_20(ah)) + val |= AR_WA_BIT23; + + OS_REG_WRITE(ah, AR_WA, val); + + /* set bit 19 to allow forcing of pcie core into L1 state */ OS_REG_SET_BIT(ah, AR_PCIE_PM_CTRL, AR_PCIE_PM_CTRL_ENA); - OS_REG_WRITE(ah, AR_WA, AR9285_WA_DEFAULT); } } static void ar9285DisablePCIE(struct ath_hal *ah) { - /* XXX TODO */ } static void From 1b86b1d21af9c9b91b96de9c7453d508fad92198 Mon Sep 17 00:00:00 2001 From: Adrian Chadd Date: Sun, 17 Jun 2012 05:34:41 +0000 Subject: [PATCH 284/340] Add an disabled workaround for the AR9285SE. This just requires a little HAL change (add a new config parameter) and some glue in if_ath_pci.c, however I'm leaving this up for someone else to do. Obtained from: Qualcomm Atheros --- sys/dev/ath/ath_hal/ar9002/ar9285_attach.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/sys/dev/ath/ath_hal/ar9002/ar9285_attach.c b/sys/dev/ath/ath_hal/ar9002/ar9285_attach.c index 7eefe49079a2..940c6a5baeaf 100644 --- a/sys/dev/ath/ath_hal/ar9002/ar9285_attach.c +++ b/sys/dev/ath/ath_hal/ar9002/ar9285_attach.c @@ -369,6 +369,25 @@ ar9285ConfigPCIE(struct ath_hal *ah, HAL_BOOL restore, HAL_BOOL power_off) { uint32_t val; + /* + * This workaround needs some integration work with the HAL + * config parameters and the if_ath_pci.c glue. + * Specifically, read the value of the PCI register 0x70c + * (4 byte PCI config space register) and store it in ath_hal_war70c. + * Then if it's non-zero, the below WAR would override register + * 0x570c upon suspend/resume. + */ +#if 0 + if (AR_SREV_9285E_20(ah)) { + val = AH_PRIVATE(ah)->ah_config.ath_hal_war70c; + if (val) { + val &= 0xffff00ff; + val |= 0x6f00; + OS_REG_WRITE(ah, 0x570c, val); + } + } +#endif + if (AH_PRIVATE(ah)->ah_ispcie && !restore) { ath_hal_ini_write(ah, &AH5416(ah)->ah_ini_pcieserdes, 1, 0); OS_DELAY(1000); From 3acbfe72fc69826790ea1626176b70d13ec99803 Mon Sep 17 00:00:00 2001 From: Adrian Chadd Date: Sun, 17 Jun 2012 05:56:27 +0000 Subject: [PATCH 285/340] AR9287 tidyups: * Add an OS_A_REG_WRITE() routine - analog writes require a 100usec delay on AR9280 and later, so create a method to do it. * Use it for the AR9287 analog writes. * Re-indent and style(9) the code. --- sys/dev/ath/ath_hal/ah_internal.h | 2 + sys/dev/ath/ath_hal/ar9002/ar9287_reset.c | 148 +++++++++++----------- 2 files changed, 76 insertions(+), 74 deletions(-) diff --git a/sys/dev/ath/ath_hal/ah_internal.h b/sys/dev/ath/ath_hal/ah_internal.h index 0353a9c310a3..bcf6ae615cc9 100644 --- a/sys/dev/ath/ath_hal/ah_internal.h +++ b/sys/dev/ath/ath_hal/ah_internal.h @@ -484,6 +484,8 @@ isBigEndian(void) /* Analog register writes may require a delay between each one (eg Merlin?) */ #define OS_A_REG_RMW_FIELD(_a, _r, _f, _v) \ do { OS_REG_WRITE(_a, _r, (OS_REG_READ(_a, _r) &~ (_f)) | (((_v) << _f##_S) & (_f))) ; OS_DELAY(100); } while (0) +#define OS_A_REG_WRITE(_a, _r, _v) \ + do { OS_REG_WRITE(_a, _r, _v); OS_DELAY(100); } while (0) /* wait for the register contents to have the specified value */ extern HAL_BOOL ath_hal_wait(struct ath_hal *, u_int reg, diff --git a/sys/dev/ath/ath_hal/ar9002/ar9287_reset.c b/sys/dev/ath/ath_hal/ar9002/ar9287_reset.c index a799ba0da995..8b7cecc3fbba 100644 --- a/sys/dev/ath/ath_hal/ar9002/ar9287_reset.c +++ b/sys/dev/ath/ath_hal/ar9002/ar9287_reset.c @@ -45,70 +45,70 @@ static void ar9287SetPowerCalTable(struct ath_hal *ah, const struct ieee80211_channel *chan, int16_t *pTxPowerIndexOffset) { - struct cal_data_op_loop_ar9287 *pRawDatasetOpenLoop; - uint8_t *pCalBChans = NULL; - uint16_t pdGainOverlap_t2; - uint16_t numPiers = 0, i; - uint16_t numXpdGain, xpdMask; - uint16_t xpdGainValues[AR5416_NUM_PD_GAINS] = {0, 0, 0, 0}; - uint32_t regChainOffset; + struct cal_data_op_loop_ar9287 *pRawDatasetOpenLoop; + uint8_t *pCalBChans = NULL; + uint16_t pdGainOverlap_t2; + uint16_t numPiers = 0, i; + uint16_t numXpdGain, xpdMask; + uint16_t xpdGainValues[AR5416_NUM_PD_GAINS] = {0, 0, 0, 0}; + uint32_t regChainOffset; HAL_EEPROM_9287 *ee = AH_PRIVATE(ah)->ah_eeprom; - struct ar9287_eeprom *pEepData = &ee->ee_base; + struct ar9287_eeprom *pEepData = &ee->ee_base; - xpdMask = pEepData->modalHeader.xpdGain; + xpdMask = pEepData->modalHeader.xpdGain; - if ((pEepData->baseEepHeader.version & AR9287_EEP_VER_MINOR_MASK) >= - AR9287_EEP_MINOR_VER_2) - pdGainOverlap_t2 = pEepData->modalHeader.pdGainOverlap; - else - pdGainOverlap_t2 = (uint16_t)(MS(OS_REG_READ(ah, AR_PHY_TPCRG5), - AR_PHY_TPCRG5_PD_GAIN_OVERLAP)); + if ((pEepData->baseEepHeader.version & AR9287_EEP_VER_MINOR_MASK) >= + AR9287_EEP_MINOR_VER_2) + pdGainOverlap_t2 = pEepData->modalHeader.pdGainOverlap; + else + pdGainOverlap_t2 = (uint16_t)(MS(OS_REG_READ(ah, AR_PHY_TPCRG5), + AR_PHY_TPCRG5_PD_GAIN_OVERLAP)); /* Note: Kiwi should only be 2ghz.. */ - if (IEEE80211_IS_CHAN_2GHZ(chan)) { - pCalBChans = pEepData->calFreqPier2G; - numPiers = AR9287_NUM_2G_CAL_PIERS; - pRawDatasetOpenLoop = (struct cal_data_op_loop_ar9287 *)pEepData->calPierData2G[0]; - AH5416(ah)->initPDADC = pRawDatasetOpenLoop->vpdPdg[0][0]; - } - numXpdGain = 0; + if (IEEE80211_IS_CHAN_2GHZ(chan)) { + pCalBChans = pEepData->calFreqPier2G; + numPiers = AR9287_NUM_2G_CAL_PIERS; + pRawDatasetOpenLoop = (struct cal_data_op_loop_ar9287 *)pEepData->calPierData2G[0]; + AH5416(ah)->initPDADC = pRawDatasetOpenLoop->vpdPdg[0][0]; + } + numXpdGain = 0; - /* Calculate the value of xpdgains from the xpdGain Mask */ - for (i = 1; i <= AR5416_PD_GAINS_IN_MASK; i++) { - if ((xpdMask >> (AR5416_PD_GAINS_IN_MASK - i)) & 1) { - if (numXpdGain >= AR5416_NUM_PD_GAINS) - break; - xpdGainValues[numXpdGain] = - (uint16_t)(AR5416_PD_GAINS_IN_MASK-i); - numXpdGain++; - } - } + /* Calculate the value of xpdgains from the xpdGain Mask */ + for (i = 1; i <= AR5416_PD_GAINS_IN_MASK; i++) { + if ((xpdMask >> (AR5416_PD_GAINS_IN_MASK - i)) & 1) { + if (numXpdGain >= AR5416_NUM_PD_GAINS) + break; + xpdGainValues[numXpdGain] = + (uint16_t)(AR5416_PD_GAINS_IN_MASK-i); + numXpdGain++; + } + } - OS_REG_RMW_FIELD(ah, AR_PHY_TPCRG1, AR_PHY_TPCRG1_NUM_PD_GAIN, - (numXpdGain - 1) & 0x3); - OS_REG_RMW_FIELD(ah, AR_PHY_TPCRG1, AR_PHY_TPCRG1_PD_GAIN_1, - xpdGainValues[0]); - OS_REG_RMW_FIELD(ah, AR_PHY_TPCRG1, AR_PHY_TPCRG1_PD_GAIN_2, - xpdGainValues[1]); - OS_REG_RMW_FIELD(ah, AR_PHY_TPCRG1, AR_PHY_TPCRG1_PD_GAIN_3, - xpdGainValues[2]); + OS_REG_RMW_FIELD(ah, AR_PHY_TPCRG1, AR_PHY_TPCRG1_NUM_PD_GAIN, + (numXpdGain - 1) & 0x3); + OS_REG_RMW_FIELD(ah, AR_PHY_TPCRG1, AR_PHY_TPCRG1_PD_GAIN_1, + xpdGainValues[0]); + OS_REG_RMW_FIELD(ah, AR_PHY_TPCRG1, AR_PHY_TPCRG1_PD_GAIN_2, + xpdGainValues[1]); + OS_REG_RMW_FIELD(ah, AR_PHY_TPCRG1, AR_PHY_TPCRG1_PD_GAIN_3, + xpdGainValues[2]); - for (i = 0; i < AR9287_MAX_CHAINS; i++) { - regChainOffset = i * 0x1000; + for (i = 0; i < AR9287_MAX_CHAINS; i++) { + regChainOffset = i * 0x1000; - if (pEepData->baseEepHeader.txMask & (1 << i)) { - int8_t txPower; - pRawDatasetOpenLoop = - (struct cal_data_op_loop_ar9287 *)pEepData->calPierData2G[i]; - ar9287olcGetTxGainIndex(ah, chan, - pRawDatasetOpenLoop, - pCalBChans, numPiers, - &txPower); - ar9287olcSetPDADCs(ah, txPower, i); - } - } + if (pEepData->baseEepHeader.txMask & (1 << i)) { + int8_t txPower; + pRawDatasetOpenLoop = + (struct cal_data_op_loop_ar9287 *)pEepData->calPierData2G[i]; + ar9287olcGetTxGainIndex(ah, chan, + pRawDatasetOpenLoop, + pCalBChans, numPiers, + &txPower); + ar9287olcSetPDADCs(ah, txPower, i); + } + } - *pTxPowerIndexOffset = 0; + *pTxPowerIndexOffset = 0; } @@ -329,20 +329,20 @@ ar9287SetTransmitPower(struct ath_hal *ah, const struct ieee80211_channel *chan, uint16_t *rfXpdGain) { #define POW_SM(_r, _s) (((_r) & 0x3f) << (_s)) -#define N(a) (sizeof (a) / sizeof (a[0])) +#define N(a) (sizeof (a) / sizeof (a[0])) const struct modal_eep_ar9287_header *pModal; struct ath_hal_5212 *ahp = AH5212(ah); - int16_t ratesArray[Ar5416RateSize]; - int16_t txPowerIndexOffset = 0; - uint8_t ht40PowerIncForPdadc = 2; - int i; + int16_t ratesArray[Ar5416RateSize]; + int16_t txPowerIndexOffset = 0; + uint8_t ht40PowerIncForPdadc = 2; + int i; - uint16_t cfgCtl; - uint16_t powerLimit; - uint16_t twiceAntennaReduction; - uint16_t twiceMaxRegulatoryPower; - int16_t maxPower; + uint16_t cfgCtl; + uint16_t powerLimit; + uint16_t twiceAntennaReduction; + uint16_t twiceMaxRegulatoryPower; + int16_t maxPower; HAL_EEPROM_9287 *ee = AH_PRIVATE(ah)->ah_eeprom; struct ar9287_eeprom *pEepData = &ee->ee_base; @@ -351,7 +351,8 @@ ar9287SetTransmitPower(struct ath_hal *ah, cfgCtl = ath_hal_getctl(ah, chan); powerLimit = chan->ic_maxregpower * 2; twiceAntennaReduction = chan->ic_maxantgain; - twiceMaxRegulatoryPower = AH_MIN(MAX_RATE_POWER, AH_PRIVATE(ah)->ah_powerLimit); + twiceMaxRegulatoryPower = AH_MIN(MAX_RATE_POWER, + AH_PRIVATE(ah)->ah_powerLimit); pModal = &pEepData->modalHeader; HALDEBUG(ah, HAL_DEBUG_RESET, "%s Channel=%u CfgCtl=%u\n", __func__,chan->ic_freq, cfgCtl ); @@ -361,9 +362,9 @@ ar9287SetTransmitPower(struct ath_hal *ah, /* Fetch per-rate power table for the given channel */ if (! ar9287SetPowerPerRateTable(ah, pEepData, chan, - &ratesArray[0],cfgCtl, - twiceAntennaReduction, - twiceMaxRegulatoryPower, powerLimit)) { + &ratesArray[0],cfgCtl, + twiceAntennaReduction, + twiceMaxRegulatoryPower, powerLimit)) { HALDEBUG(ah, HAL_DEBUG_ANY, "%s: unable to set tx power per rate table\n", __func__); return AH_FALSE; @@ -476,7 +477,8 @@ ar9287SetBoardValues(struct ath_hal *ah, const struct ieee80211_channel *chan) pModal->antCtrlChain[i]); OS_REG_WRITE(ah, AR_PHY_TIMING_CTRL4_CHAIN(0) + regChainOffset, - (OS_REG_READ(ah, AR_PHY_TIMING_CTRL4_CHAIN(0) + regChainOffset) + (OS_REG_READ(ah, AR_PHY_TIMING_CTRL4_CHAIN(0) + + regChainOffset) & ~(AR_PHY_TIMING_CTRL4_IQCORR_Q_Q_COFF | AR_PHY_TIMING_CTRL4_IQCORR_Q_I_COFF)) | SM(pModal->iqCalICh[i], @@ -500,7 +502,6 @@ ar9287SetBoardValues(struct ath_hal *ah, const struct ieee80211_channel *chan) pModal->rxTxMarginCh[i]); } - if (IEEE80211_IS_CHAN_HT40(chan)) OS_REG_RMW_FIELD(ah, AR_PHY_SETTLING, AR_PHY_SETTLING_SWITCH, pModal->swSettleHt40); @@ -539,8 +540,8 @@ ar9287SetBoardValues(struct ath_hal *ah, const struct ieee80211_channel *chan) SM(pModal->ob_qam, AR9287_AN_RF2G3_OB_QAM) | SM(pModal->ob_pal_off, AR9287_AN_RF2G3_OB_PAL_OFF)); - OS_REG_WRITE(ah, AR9287_AN_RF2G3_CH0, regval); - OS_DELAY(100); /* analog write */ + /* Analog write - requires a 100usec delay */ + OS_A_REG_WRITE(ah, AR9287_AN_RF2G3_CH0, regval); regval = OS_REG_READ(ah, AR9287_AN_RF2G3_CH1); regval &= ~(AR9287_AN_RF2G3_DB1 | @@ -556,8 +557,7 @@ ar9287SetBoardValues(struct ath_hal *ah, const struct ieee80211_channel *chan) SM(pModal->ob_qam, AR9287_AN_RF2G3_OB_QAM) | SM(pModal->ob_pal_off, AR9287_AN_RF2G3_OB_PAL_OFF)); - OS_REG_WRITE(ah, AR9287_AN_RF2G3_CH1, regval); - OS_DELAY(100); /* analog write */ + OS_A_REG_WRITE(ah, AR9287_AN_RF2G3_CH1, regval); OS_REG_RMW_FIELD(ah, AR_PHY_RF_CTL2, AR_PHY_TX_FRAME_TO_DATA_START, pModal->txFrameToDataStart); From 5febe54f2550f2f770a7b923b274b63a7a25740f Mon Sep 17 00:00:00 2001 From: Joel Dahl Date: Sun, 17 Jun 2012 11:04:38 +0000 Subject: [PATCH 286/340] Remove superfluous paragraph macro. --- contrib/telnet/telnet/telnet.1 | 2 -- 1 file changed, 2 deletions(-) diff --git a/contrib/telnet/telnet/telnet.1 b/contrib/telnet/telnet/telnet.1 index 0acfe78931ec..2dce4c51dd55 100644 --- a/contrib/telnet/telnet/telnet.1 +++ b/contrib/telnet/telnet/telnet.1 @@ -344,7 +344,6 @@ Only enough of each command to uniquely identify it need be typed and .Ic display commands). -.Pp .Bl -tag -width "mode type" .It Ic auth Ar argument ... The auth command manipulates the information sent through the @@ -664,7 +663,6 @@ An end of file (in command mode) will also close a session and exit. Sends one or more special character sequences to the remote host. The following are the arguments which may be specified (more than one argument may be specified at a time): -.Pp .Bl -tag -width escape .It Ic abort Sends the From 0aa9c2d8929d757f3dd92741c11bff76bfb66692 Mon Sep 17 00:00:00 2001 From: Joel Dahl Date: Sun, 17 Jun 2012 11:33:55 +0000 Subject: [PATCH 287/340] Minor mdoc fixes. --- contrib/bsnmp/lib/bsnmpclient.3 | 2 +- contrib/bsnmp/lib/bsnmplib.3 | 3 --- contrib/bsnmp/snmp_target/snmp_target.3 | 2 +- contrib/bsnmp/snmp_usm/snmp_usm.3 | 2 +- contrib/bsnmp/snmp_vacm/snmp_vacm.3 | 2 +- 5 files changed, 4 insertions(+), 7 deletions(-) diff --git a/contrib/bsnmp/lib/bsnmpclient.3 b/contrib/bsnmp/lib/bsnmpclient.3 index 5fe9a9adcd45..d4af60ef5600 100644 --- a/contrib/bsnmp/lib/bsnmpclient.3 +++ b/contrib/bsnmp/lib/bsnmpclient.3 @@ -368,7 +368,7 @@ This format expects an argument of type and appends the length of the string (as computed by .Xr strlen 3 ) and each of the characters in the string to the OID. -.It Li ( Va N Ns Li ) +.It ( Va N Ns ) This format expects no argument. .Va N must be a decimal number and is stored into an internal variable diff --git a/contrib/bsnmp/lib/bsnmplib.3 b/contrib/bsnmp/lib/bsnmplib.3 index fbb956d727cf..a9ba204e2dcc 100644 --- a/contrib/bsnmp/lib/bsnmplib.3 +++ b/contrib/bsnmp/lib/bsnmplib.3 @@ -161,7 +161,6 @@ is not zero, .Fa v.octetstring.octets points to a string allocated by .Xr malloc 3 . -.Pp .Bd -literal -offset indent #define SNMP_ENGINE_ID_SIZ 32 @@ -176,7 +175,6 @@ struct snmp_engine { .Pp This structure represents an SNMP engine as specified by the SNMP Management Architecture described in RFC 3411. -.Pp .Bd -literal -offset indent #define SNMP_ADM_STR32_SIZ (32 + 1) #define SNMP_AUTH_KEY_SIZ 40 @@ -225,7 +223,6 @@ enum snmp_privacy { and .Fa priv_key contain the authentication and privacy keys for the user. -.Pp .Bd -literal -offset indent #define SNMP_COMMUNITY_MAXLEN 128 #define SNMP_MAX_BINDINGS 100 diff --git a/contrib/bsnmp/snmp_target/snmp_target.3 b/contrib/bsnmp/snmp_target/snmp_target.3 index 03071b508bcb..626bb78088e0 100755 --- a/contrib/bsnmp/snmp_target/snmp_target.3 +++ b/contrib/bsnmp/snmp_target/snmp_target.3 @@ -33,7 +33,7 @@ .Os .Sh NAME .Nm snmp_target -.Nd "Target addresses and notifications module for +.Nd "Target addresses and notifications module for" .Xr bsnmpd 1 .Sh LIBRARY .Pq begemotSnmpdModulePath."target" = "/usr/lib/snmp_target.so" diff --git a/contrib/bsnmp/snmp_usm/snmp_usm.3 b/contrib/bsnmp/snmp_usm/snmp_usm.3 index f85380ca0333..f3c0b91244bd 100755 --- a/contrib/bsnmp/snmp_usm/snmp_usm.3 +++ b/contrib/bsnmp/snmp_usm/snmp_usm.3 @@ -33,7 +33,7 @@ .Os .Sh NAME .Nm snmp_usm -.Nd "user-based security module for +.Nd "user-based security module for" .Xr bsnmpd 1 .Sh LIBRARY .Pq begemotSnmpdModulePath."usm" = "/usr/lib/snmp_usm.so" diff --git a/contrib/bsnmp/snmp_vacm/snmp_vacm.3 b/contrib/bsnmp/snmp_vacm/snmp_vacm.3 index b7bb56c39259..dd57f7fff67a 100755 --- a/contrib/bsnmp/snmp_vacm/snmp_vacm.3 +++ b/contrib/bsnmp/snmp_vacm/snmp_vacm.3 @@ -33,7 +33,7 @@ .Os .Sh NAME .Nm snmp_vacm -.Nd "View-based Access Control module for +.Nd "View-based Access Control module for" .Xr bsnmpd 1 .Sh LIBRARY .Pq begemotSnmpdModulePath."vacm" = "/usr/lib/snmp_vacm.so" From bef04523e3209138e968333ce4b22b908dd89764 Mon Sep 17 00:00:00 2001 From: Joel Dahl Date: Sun, 17 Jun 2012 11:36:28 +0000 Subject: [PATCH 288/340] Remove end of line whitespace. --- contrib/bsnmp/lib/bsnmplib.3 | 4 ++-- contrib/bsnmp/snmp_usm/snmp_usm.3 | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/contrib/bsnmp/lib/bsnmplib.3 b/contrib/bsnmp/lib/bsnmplib.3 index a9ba204e2dcc..12d676abee24 100644 --- a/contrib/bsnmp/lib/bsnmplib.3 +++ b/contrib/bsnmp/lib/bsnmplib.3 @@ -386,7 +386,7 @@ If successfull, a plain text scoped PDU is stored in the buffer. The function .Fn snmp_pdu_init_secparams calculates the initialization vector for the privacy protocol in use before -the PDU pointed to by +the PDU pointed to by .Fa pdu may be encrypted or decrypted. .Pp @@ -501,7 +501,7 @@ the cryptographic functions from The library may optionally be built without references to the .Xr crypto 3 library. In such case only plain text SNMPv3 PDUs without message digests -may be proccessed correctly. +may be proccessed correctly. .Sh STANDARDS This implementation conforms to the applicable IETF RFCs and ITU-T recommendations. diff --git a/contrib/bsnmp/snmp_usm/snmp_usm.3 b/contrib/bsnmp/snmp_usm/snmp_usm.3 index f3c0b91244bd..ceb62e4b2009 100755 --- a/contrib/bsnmp/snmp_usm/snmp_usm.3 +++ b/contrib/bsnmp/snmp_usm/snmp_usm.3 @@ -79,7 +79,7 @@ supported. .It Va usmUserAuthProtocol The value of this column contains the OID corresponding to the authentication protocol used by the USM user. The following protocols and their OIDs are known to -.Nm +.Nm module .Bl -tag -width ".It Va NoAuthProtocol" .It NoAuthProtocol 1.3.6.1.6.3.10.1.1.1 @@ -91,7 +91,7 @@ These columns may be used to change the user's authentication key. .It Va usmUserPrivProtocol The value of this column contains the OID corresponding to the privacy protocol used by the USM user. The following protocols and their OIDs are known to -.Nm +.Nm module .Bl -tag -width ".It Va NoPrivProtocol" .It NoPrivProtocol 1.3.6.1.6.3.10.1.2.1 From 68cefd64ad83c795ad0f5821e358846fbac5f1b9 Mon Sep 17 00:00:00 2001 From: Davide Italiano Date: Sun, 17 Jun 2012 13:03:50 +0000 Subject: [PATCH 289/340] The variable 'error' in sys_poll() is initialized in declaration to value zero but in any case is overwritten by successive copyin(), making the previous initialization useless. Remove this. As an added bonus this fixes a style(9) bug. Discussed with: kib Approved by: gnn (mentor) MFC after: 3 days --- sys/kern/sys_generic.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/kern/sys_generic.c b/sys/kern/sys_generic.c index 5d667ee563b9..cfaf9fc61a26 100644 --- a/sys/kern/sys_generic.c +++ b/sys/kern/sys_generic.c @@ -1255,7 +1255,7 @@ sys_poll(td, uap) struct pollfd *bits; struct pollfd smallbits[32]; struct timeval atv, rtv, ttv; - int error = 0, timo; + int error, timo; u_int nfds; size_t ni; From f39e915e1909f9bed3fba9a85435715a9308d7a0 Mon Sep 17 00:00:00 2001 From: Davide Italiano Date: Sun, 17 Jun 2012 13:48:39 +0000 Subject: [PATCH 290/340] Disable hwpmc(4) support for Intel Xeon Sandy Bridge (Model 0x2D). Due to some differences in MSRs between Xeon Sandy Bridge and Core Sandy Bridge (Model 0x2A), wrmsr() may generate in a GP# fault exception and so a panic of the machine. Approved by: gnn (mentor) MFC after: 3 days --- sys/dev/hwpmc/hwpmc_intel.c | 1 - 1 file changed, 1 deletion(-) diff --git a/sys/dev/hwpmc/hwpmc_intel.c b/sys/dev/hwpmc/hwpmc_intel.c index 1e52e22a94b9..c21f5d9a369a 100644 --- a/sys/dev/hwpmc/hwpmc_intel.c +++ b/sys/dev/hwpmc/hwpmc_intel.c @@ -143,7 +143,6 @@ pmc_intel_initialize(void) nclasses = 5; break; case 0x2A: /* Per Intel document 253669-039US 05/2011. */ - case 0x2D: /* Per Intel document 253669-041US 12/2011. */ cputype = PMC_CPU_INTEL_SANDYBRIDGE; nclasses = 5; break; From 5e33d57ff16aae3dfda9a44ecebd0a91451fdf3b Mon Sep 17 00:00:00 2001 From: Mitsuru IWASAKI Date: Sun, 17 Jun 2012 16:19:09 +0000 Subject: [PATCH 291/340] Resotre LCD brightness level on resuming. MFC after: 3 days --- sys/dev/acpica/acpi_video.c | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/sys/dev/acpica/acpi_video.c b/sys/dev/acpica/acpi_video.c index eac2d07204ba..3954892ee69b 100644 --- a/sys/dev/acpica/acpi_video.c +++ b/sys/dev/acpica/acpi_video.c @@ -75,6 +75,7 @@ static void acpi_video_identify(driver_t *driver, device_t parent); static int acpi_video_probe(device_t); static int acpi_video_attach(device_t); static int acpi_video_detach(device_t); +static int acpi_video_resume(device_t); static int acpi_video_shutdown(device_t); static void acpi_video_notify_handler(ACPI_HANDLE, UINT32, void *); static void acpi_video_power_profile(void *); @@ -155,6 +156,7 @@ static device_method_t acpi_video_methods[] = { DEVMETHOD(device_probe, acpi_video_probe), DEVMETHOD(device_attach, acpi_video_attach), DEVMETHOD(device_detach, acpi_video_detach), + DEVMETHOD(device_resume, acpi_video_resume), DEVMETHOD(device_shutdown, acpi_video_shutdown), { 0, 0 } }; @@ -304,6 +306,36 @@ acpi_video_detach(device_t dev) return (0); } +static int +acpi_video_resume(device_t dev) +{ + struct acpi_video_softc *sc; + struct acpi_video_output *vo, *vn; + int level; + + sc = device_get_softc(dev); + + /* Restore brightness level */ + ACPI_SERIAL_BEGIN(video); + ACPI_SERIAL_BEGIN(video_output); + STAILQ_FOREACH_SAFE(vo, &sc->vid_outputs, vo_next, vn) { + if ((vo->adr & DOD_DEVID_MASK_FULL) != DOD_DEVID_LCD && + (vo->adr & DOD_DEVID_MASK) != DOD_DEVID_INTDFP) + continue; + + if ((vo_get_device_status(vo->handle) & DCS_ACTIVE) == 0) + continue; + + level = vo_get_brightness(vo->handle); + if (level != -1) + vo_set_brightness(vo->handle, level); + } + ACPI_SERIAL_END(video_output); + ACPI_SERIAL_END(video); + + return (0); +} + static int acpi_video_shutdown(device_t dev) { From fd6049b186dfb5f14162b2c9d0576081def228e4 Mon Sep 17 00:00:00 2001 From: Pawel Jakub Dawidek Date: Sun, 17 Jun 2012 16:32:32 +0000 Subject: [PATCH 292/340] If VOP_ADVLOCK() call or earlier checks failed don't check for a race with close, because even if we had a race there is nothing to unlock. Discussed with: kib MFC after: 1 month --- sys/kern/kern_descrip.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c index f5106e14f9bc..d7a2c23b2807 100644 --- a/sys/kern/kern_descrip.c +++ b/sys/kern/kern_descrip.c @@ -668,6 +668,10 @@ kern_fcntl(struct thread *td, int fd, int cmd, intptr_t arg) } VFS_UNLOCK_GIANT(vfslocked); vfslocked = 0; + if (error != 0) { + fdrop(fp, td); + break; + } /* Check for race with close */ FILEDESC_SLOCK(fdp); if (fget_locked(fdp, fd) != fp) { From 604a7c2f00ae5c204c14b2bd3a55c5a88030877d Mon Sep 17 00:00:00 2001 From: Pawel Jakub Dawidek Date: Sun, 17 Jun 2012 16:59:37 +0000 Subject: [PATCH 293/340] Extend the comment about checking for a race with close to explain why it is done and why we don't return an error in such case. Discussed with: kib MFC after: 1 month --- sys/kern/kern_descrip.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c index d7a2c23b2807..6850734e70e4 100644 --- a/sys/kern/kern_descrip.c +++ b/sys/kern/kern_descrip.c @@ -672,7 +672,23 @@ kern_fcntl(struct thread *td, int fd, int cmd, intptr_t arg) fdrop(fp, td); break; } - /* Check for race with close */ + + /* + * Check for a race with close. + * + * The vnode is now advisory locked (or unlocked, but this case + * is not really important) as the caller requested. + * We had to drop the filedesc lock, so we need to recheck if + * the descriptor is still valid, because if it was closed + * in the meantime we need to remove advisory lock from the + * vnode - close on any descriptor leading to an advisory + * locked vnode, removes that lock. + * We will return 0 on purpose in that case, as the result of + * successful advisory lock might have been externally visible + * already. This is fine - effectively we pretend to the caller + * that the closing thread was a bit slower and that the + * advisory lock succeeded before the close. + */ FILEDESC_SLOCK(fdp); if (fget_locked(fdp, fd) != fp) { FILEDESC_SUNLOCK(fdp); From 79cafccd40b19c663d7006ab305f043cec32815b Mon Sep 17 00:00:00 2001 From: Rick Macklem Date: Sun, 17 Jun 2012 18:34:04 +0000 Subject: [PATCH 294/340] Move the nfsrpc_close() call in ncl_reclaim() for the NFSv4 client to below the vnode_destroy_vobject() call, since that is where writes are flushed. Suggested by: kib MFC after: 1 week --- sys/fs/nfsclient/nfs_clnode.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/sys/fs/nfsclient/nfs_clnode.c b/sys/fs/nfsclient/nfs_clnode.c index db3a350d71e7..087858dbd0e0 100644 --- a/sys/fs/nfsclient/nfs_clnode.c +++ b/sys/fs/nfsclient/nfs_clnode.c @@ -257,15 +257,6 @@ ncl_reclaim(struct vop_reclaim_args *ap) struct nfsnode *np = VTONFS(vp); struct nfsdmap *dp, *dp2; - if (NFS_ISV4(vp) && vp->v_type == VREG) - /* - * Since mmap()'d files do I/O after VOP_CLOSE(), the NFSv4 - * Close operations are delayed until ncl_inactive(). - * However, since VOP_INACTIVE() is not guaranteed to be - * called, we need to do it again here. - */ - (void) nfsrpc_close(vp, 1, ap->a_td); - /* * If the NLM is running, give it a chance to abort pending * locks. @@ -278,6 +269,15 @@ ncl_reclaim(struct vop_reclaim_args *ap) */ vnode_destroy_vobject(vp); + if (NFS_ISV4(vp) && vp->v_type == VREG) + /* + * We can now safely close any remaining NFSv4 Opens for + * this file. Most opens will have already been closed by + * ncl_inactive(), but there are cases where it is not + * called, so we need to do it again here. + */ + (void) nfsrpc_close(vp, 1, ap->a_td); + vfs_hash_remove(vp); /* From fc9174db5100016523721f6f4f8ab20294ee35b0 Mon Sep 17 00:00:00 2001 From: Poul-Henning Kamp Date: Sun, 17 Jun 2012 21:02:48 +0000 Subject: [PATCH 295/340] On certain newer Intel Atom based motherboards, for instance the D2500CC which I have, syscons in text-mode fails to show the expected contents due to write errors into video-memory. At least one of the causes is that we copy from syscons internal buffer to the video memory with optimized bcopy(9) which uses >16bit operations. Until now, 32bit and wider operations have always worked on the video memory, but since I cannot find a single source which says that this SHALL work, and since these chipsets/bugs are now out there, this commit changes syscons to always use 16bit copies on i386 & amd64. This may be relevevant for PR's: 166262 166639 and various other bug reports floating elsewhere on the net, but I lack hardware to test those. --- sys/dev/fb/fbreg.h | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/sys/dev/fb/fbreg.h b/sys/dev/fb/fbreg.h index 623e37c3e92c..ac9a6c37744f 100644 --- a/sys/dev/fb/fbreg.h +++ b/sys/dev/fb/fbreg.h @@ -35,9 +35,16 @@ /* some macros */ #if defined(__amd64__) || defined(__i386__) -#define bcopy_io(s, d, c) bcopy((void *)(s), (void *)(d), (c)) -#define bcopy_toio(s, d, c) bcopy((void *)(s), (void *)(d), (c)) -#define bcopy_fromio(s, d, c) bcopy((void *)(s), (void *)(d), (c)) + +static __inline void +copyw(uint16_t *src, uint16_t *dst, size_t size) +{ + while (size--) + *dst++ = *src++; +} +#define bcopy_io(s, d, c) copyw((void*)(s), (void*)(d), (c)) +#define bcopy_toio(s, d, c) copyw((void*)(s), (void*)(d), (c)) +#define bcopy_fromio(s, d, c) copyw((void*)(s), (void*)(d), (c)) #define bzero_io(d, c) bzero((void *)(d), (c)) #define fill_io(p, d, c) fill((p), (void *)(d), (c)) #define fillw_io(p, d, c) fillw((p), (void *)(d), (c)) From d99e1d5fd65b9a48a9342568b41a5d75ec65e3fb Mon Sep 17 00:00:00 2001 From: Pawel Jakub Dawidek Date: Sun, 17 Jun 2012 21:04:22 +0000 Subject: [PATCH 296/340] Don't check for race with close on advisory unlock (there is nothing smart we can do when such a race occurs). This saves lock/unlock cycle for the filedesc lock for every advisory unlock operation. MFC after: 1 month --- sys/kern/kern_descrip.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c index 6850734e70e4..c2db4c0bbedd 100644 --- a/sys/kern/kern_descrip.c +++ b/sys/kern/kern_descrip.c @@ -668,7 +668,8 @@ kern_fcntl(struct thread *td, int fd, int cmd, intptr_t arg) } VFS_UNLOCK_GIANT(vfslocked); vfslocked = 0; - if (error != 0) { + if (error != 0 || flp->l_type == F_UNLCK || + flp->l_type == F_UNLCKSYS) { fdrop(fp, td); break; } From ad0ab753798293823ae6224a8c08d6707ee25c55 Mon Sep 17 00:00:00 2001 From: Matt Jacob Date: Sun, 17 Jun 2012 21:39:40 +0000 Subject: [PATCH 297/340] Prepare for FC-Tape support. This involved doing a lot of little cleanups and crosschecks against firmware documentation. We now check and report FC firmware attributes and at least are now prepared for the upper 48 bits of f/w attributes (which are probably for the 8100 or later cards). This involed changing how inbits and outbits are calculated for varios commands, hopefully clearer and cleaner. This also caused me to clean up the actual mailbox register usage. Finally, we are now unconditionally using a CRN for initiator mode. A longstanding issue with the 2400/2500 is that they do *not* support a "Prefer PTP followed by loop", which explains why enabling that caused the f/w to crash. A slightly more invasive change is to let the firmware load entirely drive whether multi_id support is enabled or not. Sponsored by: Spectralogic MFC after: 1 week --- sys/dev/isp/isp.c | 734 +++++++++++++++++++++----------------- sys/dev/isp/isp_freebsd.h | 14 +- sys/dev/isp/isp_pci.c | 15 +- sys/dev/isp/ispmbox.h | 13 +- sys/dev/isp/ispreg.h | 19 +- sys/dev/isp/ispvar.h | 12 +- 6 files changed, 448 insertions(+), 359 deletions(-) diff --git a/sys/dev/isp/isp.c b/sys/dev/isp/isp.c index a9dcd6e75105..981f44ad0413 100644 --- a/sys/dev/isp/isp.c +++ b/sys/dev/isp/isp.c @@ -159,6 +159,8 @@ void isp_reset(ispsoftc_t *isp, int do_load_defaults) { mbreg_t mbs; + char *buf; + uint64_t fwt; uint32_t code_org, val; int loops, i, dodnld = 1; const char *btype = "????"; @@ -685,9 +687,7 @@ isp_reset(ispsoftc_t *isp, int do_load_defaults) * Do some sanity checking by running a NOP command. * If it succeeds, the ROM firmware is now running. */ - ISP_MEMZERO(&mbs, sizeof (mbs)); - mbs.param[0] = MBOX_NO_OP; - mbs.logval = MBLOGALL; + MBSINIT(&mbs, MBOX_NO_OP, MBLOGALL, 0); isp_mboxcmd(isp, &mbs); if (mbs.param[0] != MBOX_COMMAND_COMPLETE) { isp_prt(isp, ISP_LOGERR, "NOP command failed (%x)", mbs.param[0]); @@ -700,29 +700,32 @@ isp_reset(ispsoftc_t *isp, int do_load_defaults) */ if (IS_SCSI(isp) || IS_24XX(isp)) { - ISP_MEMZERO(&mbs, sizeof (mbs)); - mbs.param[0] = MBOX_MAILBOX_REG_TEST; - mbs.param[1] = 0xdead; - mbs.param[2] = 0xbeef; - mbs.param[3] = 0xffff; - mbs.param[4] = 0x1111; - mbs.param[5] = 0xa5a5; - mbs.param[6] = 0x0000; - mbs.param[7] = 0x0000; - mbs.logval = MBLOGALL; + static const uint16_t patterns[MAX_MAILBOX] = { + 0x0000, 0xdead, 0xbeef, 0xffff, + 0xa5a5, 0x5a5a, 0x7f7f, 0x7ff7, + 0x3421, 0xabcd, 0xdcba, 0xfeef, + 0xbead, 0xdebe, 0x2222, 0x3333, + 0x5555, 0x6666, 0x7777, 0xaaaa, + 0xffff, 0xdddd, 0x9999, 0x1fbc, + 0x6666, 0x6677, 0x1122, 0x33ff, + 0x0000, 0x0001, 0x1000, 0x1010, + }; + MBSINIT(&mbs, MBOX_MAILBOX_REG_TEST, MBLOGALL, 0); + for (i = 1; i < ISP_NMBOX(isp); i++) { + mbs.param[i] = patterns[i]; + } isp_mboxcmd(isp, &mbs); if (mbs.param[0] != MBOX_COMMAND_COMPLETE) { ISP_RESET0(isp); return; } - if (mbs.param[1] != 0xdead || mbs.param[2] != 0xbeef || - mbs.param[3] != 0xffff || mbs.param[4] != 0x1111 || - mbs.param[5] != 0xa5a5) { - ISP_RESET0(isp); - isp_prt(isp, ISP_LOGERR, "Register Test Failed (0x%x 0x%x 0x%x 0x%x 0x%x)", mbs.param[1], mbs.param[2], mbs.param[3], mbs.param[4], mbs.param[5]); - return; + for (i = 1; i < ISP_NMBOX(isp); i++) { + if (mbs.param[i] != patterns[i]) { + ISP_RESET0(isp); + isp_prt(isp, ISP_LOGERR, "Register Test Failed at Register %d: should have 0x%04x but got 0x%04x", i, patterns[i], mbs.param[i]); + return; + } } - } /* @@ -780,7 +783,7 @@ isp_reset(ispsoftc_t *isp, int do_load_defaults) } MEMORYBARRIER(isp, SYNC_REQUEST, 0, ISP_QUEUE_SIZE(RQUEST_QUEUE_LEN(isp)), -1); again: - ISP_MEMZERO(&mbs, sizeof (mbs)); + MBSINIT(&mbs, 0, MBLOGALL, 0); if (la < 0x10000 && nw < 0x10000) { mbs.param[0] = MBOX_LOAD_RISC_RAM_2100; mbs.param[1] = la; @@ -818,7 +821,6 @@ isp_reset(ispsoftc_t *isp, int do_load_defaults) mbs.param[8] = la >> 16; isp_prt(isp, ISP_LOGDEBUG0, "LOAD RISC RAM %u words at load address 0x%x", nw, la); } - mbs.logval = MBLOGALL; isp_mboxcmd(isp, &mbs); if (mbs.param[0] != MBOX_COMMAND_COMPLETE) { if (mbs.param[0] == MBOX_HOST_INTERFACE_ERROR) { @@ -872,7 +874,7 @@ isp_reset(ispsoftc_t *isp, int do_load_defaults) wl--; } MEMORYBARRIER(isp, SYNC_REQUEST, 0, ISP_QUEUE_SIZE(RQUEST_QUEUE_LEN(isp)), -1); - ISP_MEMZERO(&mbs, sizeof (mbs)); + MBSINIT(&mbs, 0, MBLOGALL, 0); if (la < 0x10000) { mbs.param[0] = MBOX_LOAD_RISC_RAM_2100; mbs.param[1] = la; @@ -893,7 +895,6 @@ isp_reset(ispsoftc_t *isp, int do_load_defaults) mbs.param[8] = la >> 16; isp_prt(isp, ISP_LOGDEBUG1, "LOAD RISC RAM %u words at load address 0x%x\n", nw, la); } - mbs.logval = MBLOGALL; isp_mboxcmd(isp, &mbs); if (mbs.param[0] != MBOX_COMMAND_COMPLETE) { isp_prt(isp, ISP_LOGERR, "F/W Risc Ram Load Failed"); @@ -933,11 +934,9 @@ isp_reset(ispsoftc_t *isp, int do_load_defaults) isp->isp_mbxworkp = &ucd.np[1]; isp->isp_mbxwrk0 = ucd.np[3] - 1; isp->isp_mbxwrk1 = code_org + 1; - ISP_MEMZERO(&mbs, sizeof (mbs)); - mbs.param[0] = MBOX_WRITE_RAM_WORD; + MBSINIT(&mbs, MBOX_WRITE_RAM_WORD, MBLOGNONE, 0); mbs.param[1] = code_org; mbs.param[2] = ucd.np[0]; - mbs.logval = MBLOGNONE; isp_prt(isp, ISP_LOGDEBUG1, "WRITE RAM %u words at load address 0x%x\n", ucd.np[3], code_org); isp_mboxcmd(isp, &mbs); if (mbs.param[0] != MBOX_COMMAND_COMPLETE) { @@ -954,7 +953,7 @@ isp_reset(ispsoftc_t *isp, int do_load_defaults) * If we loaded firmware, verify its checksum */ if (isp->isp_loaded_fw) { - ISP_MEMZERO(&mbs, sizeof (mbs)); + MBSINIT(&mbs, MBOX_VERIFY_CHECKSUM, MBLOGNONE, 0); mbs.param[0] = MBOX_VERIFY_CHECKSUM; if (IS_24XX(isp)) { mbs.param[1] = code_org >> 16; @@ -978,7 +977,7 @@ isp_reset(ispsoftc_t *isp, int do_load_defaults) */ - MBSINIT(&mbs, MBOX_EXEC_FIRMWARE, MBLOGALL, 1000000); + MBSINIT(&mbs, MBOX_EXEC_FIRMWARE, MBLOGALL, 5000000); if (IS_24XX(isp)) { mbs.param[1] = code_org >> 16; mbs.param[2] = code_org; @@ -1071,9 +1070,6 @@ isp_reset(ispsoftc_t *isp, int do_load_defaults) isp->isp_fwrev[2] = mbs.param[3]; } - isp_prt(isp, ISP_LOGCONFIG, "Board Type %s, Chip Revision 0x%x, %s F/W Revision %d.%d.%d", - btype, isp->isp_revision, dodnld? "loaded" : "resident", isp->isp_fwrev[0], isp->isp_fwrev[1], isp->isp_fwrev[2]); - if (IS_FC(isp)) { /* * We do not believe firmware attributes for 2100 code less @@ -1090,9 +1086,12 @@ isp_reset(ispsoftc_t *isp, int do_load_defaults) #endif } else { isp->isp_fwattr = mbs.param[6]; - isp_prt(isp, ISP_LOGDEBUG0, "Firmware Attributes = 0x%x", mbs.param[6]); } - } else { + if (IS_24XX(isp) && (isp->isp_fwattr & ISP2400_FW_ATTR_EXTNDED)) { + isp->isp_fwattr ^= ISP2400_FW_ATTR_EXTNDED; + isp->isp_fwattr |= (((uint64_t) mbs.param[15]) << 16) | (((uint64_t) mbs.param[16]) << 32) | (((uint64_t) mbs.param[17]) << 48); + } + } else if (IS_SCSI(isp)) { #ifndef ISP_TARGET_MODE isp->isp_fwattr = ISP_FW_ATTR_TMODE; #else @@ -1100,6 +1099,95 @@ isp_reset(ispsoftc_t *isp, int do_load_defaults) #endif } + isp_prt(isp, ISP_LOGCONFIG, "Board Type %s, Chip Revision 0x%x, %s F/W Revision %d.%d.%d", + btype, isp->isp_revision, dodnld? "loaded" : "resident", isp->isp_fwrev[0], isp->isp_fwrev[1], isp->isp_fwrev[2]); + + fwt = isp->isp_fwattr; + if (IS_24XX(isp)) { + buf = FCPARAM(isp, 0)->isp_scratch; + ISP_SNPRINTF(buf, ISP_FC_SCRLEN, "Attributes:"); + if (fwt & ISP2400_FW_ATTR_CLASS2) { + fwt ^=ISP2400_FW_ATTR_CLASS2; + ISP_SNPRINTF(buf, ISP_FC_SCRLEN - strlen(buf), "%s Class2", buf); + } + if (fwt & ISP2400_FW_ATTR_IP) { + fwt ^=ISP2400_FW_ATTR_IP; + ISP_SNPRINTF(buf, ISP_FC_SCRLEN - strlen(buf), "%s IP", buf); + } + if (fwt & ISP2400_FW_ATTR_MULTIID) { + fwt ^=ISP2400_FW_ATTR_MULTIID; + ISP_SNPRINTF(buf, ISP_FC_SCRLEN - strlen(buf), "%s MultiID", buf); + } + if (fwt & ISP2400_FW_ATTR_SB2) { + fwt ^=ISP2400_FW_ATTR_SB2; + ISP_SNPRINTF(buf, ISP_FC_SCRLEN - strlen(buf), "%s SB2", buf); + } + if (fwt & ISP2400_FW_ATTR_T10CRC) { + fwt ^=ISP2400_FW_ATTR_T10CRC; + ISP_SNPRINTF(buf, ISP_FC_SCRLEN - strlen(buf), "%s T10CRC", buf); + } + if (fwt & ISP2400_FW_ATTR_VI) { + fwt ^=ISP2400_FW_ATTR_VI; + ISP_SNPRINTF(buf, ISP_FC_SCRLEN - strlen(buf), "%s VI", buf); + } + if (fwt & ISP2400_FW_ATTR_VP0) { + fwt ^= ISP2400_FW_ATTR_VP0; + ISP_SNPRINTF(buf, ISP_FC_SCRLEN - strlen(buf), "%s VP0_Decoupling", buf); + } + if (fwt & ISP2400_FW_ATTR_EXPFW) { + fwt ^= ISP2400_FW_ATTR_EXPFW; + ISP_SNPRINTF(buf, ISP_FC_SCRLEN - strlen(buf), "%s (Experimental)", buf); + } + fwt &= ~ISP2400_FW_ATTR_EXTNDED; + if (fwt) { + ISP_SNPRINTF(buf, ISP_FC_SCRLEN - strlen(buf), "%s (unknown 0x%jx)", buf, (uintmax_t)fwt); + } + isp_prt(isp, ISP_LOGCONFIG, "%s", buf); + } else if (IS_FC(isp)) { + buf = FCPARAM(isp, 0)->isp_scratch; + ISP_SNPRINTF(buf, ISP_FC_SCRLEN, "Attributes:"); + if (fwt & ISP_FW_ATTR_TMODE) { + fwt ^=ISP_FW_ATTR_TMODE; + ISP_SNPRINTF(buf, ISP_FC_SCRLEN - strlen(buf), "%s TargetMode", buf); + } + if (fwt & ISP_FW_ATTR_SCCLUN) { + fwt ^=ISP_FW_ATTR_SCCLUN; + ISP_SNPRINTF(buf, ISP_FC_SCRLEN - strlen(buf), "%s SCC-Lun", buf); + } + if (fwt & ISP_FW_ATTR_FABRIC) { + fwt ^=ISP_FW_ATTR_FABRIC; + ISP_SNPRINTF(buf, ISP_FC_SCRLEN - strlen(buf), "%s Fabric", buf); + } + if (fwt & ISP_FW_ATTR_CLASS2) { + fwt ^=ISP_FW_ATTR_CLASS2; + ISP_SNPRINTF(buf, ISP_FC_SCRLEN - strlen(buf), "%s Class2", buf); + } + if (fwt & ISP_FW_ATTR_FCTAPE) { + fwt ^=ISP_FW_ATTR_FCTAPE; + ISP_SNPRINTF(buf, ISP_FC_SCRLEN - strlen(buf), "%s FC-Tape", buf); + } + if (fwt & ISP_FW_ATTR_IP) { + fwt ^=ISP_FW_ATTR_IP; + ISP_SNPRINTF(buf, ISP_FC_SCRLEN - strlen(buf), "%s IP", buf); + } + if (fwt & ISP_FW_ATTR_VI) { + fwt ^=ISP_FW_ATTR_VI; + ISP_SNPRINTF(buf, ISP_FC_SCRLEN - strlen(buf), "%s VI", buf); + } + if (fwt & ISP_FW_ATTR_VI_SOLARIS) { + fwt ^=ISP_FW_ATTR_VI_SOLARIS; + ISP_SNPRINTF(buf, ISP_FC_SCRLEN - strlen(buf), "%s VI_SOLARIS", buf); + } + if (fwt & ISP_FW_ATTR_2KLOGINS) { + fwt ^=ISP_FW_ATTR_2KLOGINS; + ISP_SNPRINTF(buf, ISP_FC_SCRLEN - strlen(buf), "%s 2K-Login", buf); + } + if (fwt != 0) { + ISP_SNPRINTF(buf, ISP_FC_SCRLEN - strlen(buf), "%s (unknown 0x%jx)", buf, (uintmax_t)fwt); + } + isp_prt(isp, ISP_LOGCONFIG, "%s", buf); + } + if (!IS_24XX(isp)) { MBSINIT(&mbs, MBOX_GET_FIRMWARE_STATUS, MBLOGALL, 0); isp_mboxcmd(isp, &mbs); @@ -1768,6 +1856,7 @@ isp_fibre_init_2400(ispsoftc_t *isp) isp_icb_2400_t local, *icbp = &local; mbreg_t mbs; int chan; + int ownloopid = 0; /* * Check to see whether all channels have *some* kind of role @@ -1831,7 +1920,6 @@ isp_fibre_init_2400(ispsoftc_t *isp) * Get current resource count */ MBSINIT(&mbs, MBOX_GET_RESOURCE_COUNT, MBLOGALL, 0); - mbs.obits = 0x4cf; isp_mboxcmd(isp, &mbs); if (mbs.param[0] != MBOX_COMMAND_COMPLETE) { return; @@ -1840,27 +1928,18 @@ isp_fibre_init_2400(ispsoftc_t *isp) } + ownloopid = (isp->isp_confopts & ISP_CFG_OWNLOOPID) != 0; icbp->icb_hardaddr = fcp->isp_loopid; if (icbp->icb_hardaddr >= LOCAL_LOOP_LIM) { icbp->icb_hardaddr = 0; + ownloopid = 0; } - /* - * Force this on. - */ - icbp->icb_fwoptions1 |= ICB2400_OPT1_HARD_ADDRESS; + if (ownloopid) + icbp->icb_fwoptions1 |= ICB2400_OPT1_HARD_ADDRESS; icbp->icb_fwoptions2 = fcp->isp_xfwoptions; switch (isp->isp_confopts & ISP_CFG_PORT_PREF) { -#if 0 - case ISP_CFG_NPORT: - /* - * XXX: This causes the f/w to crash. - */ - icbp->icb_fwoptions2 &= ~ICB2400_OPT2_TOPO_MASK; - icbp->icb_fwoptions2 |= ICB2400_OPT2_PTP_2_LOOP; - break; -#endif case ISP_CFG_NPORT_ONLY: icbp->icb_fwoptions2 &= ~ICB2400_OPT2_TOPO_MASK; icbp->icb_fwoptions2 |= ICB2400_OPT2_PTP_ONLY; @@ -1870,14 +1949,12 @@ isp_fibre_init_2400(ispsoftc_t *isp) icbp->icb_fwoptions2 |= ICB2400_OPT2_LOOP_ONLY; break; default: + /* ISP_CFG_PTP_2_LOOP not available in 24XX/25XX */ icbp->icb_fwoptions2 &= ~ICB2400_OPT2_TOPO_MASK; icbp->icb_fwoptions2 |= ICB2400_OPT2_LOOP_2_PTP; break; } - /* force this on for now */ - icbp->icb_fwoptions2 |= ICB2400_OPT2_ZIO; - switch (icbp->icb_fwoptions2 & ICB2400_OPT2_TIMER_MASK) { case ICB2400_OPT2_ZIO: case ICB2400_OPT2_ZIO1: @@ -1891,12 +1968,10 @@ isp_fibre_init_2400(ispsoftc_t *isp) break; } - /* - * We don't support FCTAPE, so clear it. - */ - icbp->icb_fwoptions2 &= ~ICB2400_OPT2_FCTAPE; - icbp->icb_fwoptions3 = fcp->isp_zfwoptions; + if ((icbp->icb_fwoptions3 & ICB2400_OPT3_RSPSZ_MASK) == 0) { + icbp->icb_fwoptions3 |= ICB2400_OPT3_RSPSZ_24; + } icbp->icb_fwoptions3 &= ~ICB2400_OPT3_RATE_AUTO; if (isp->isp_confopts & ISP_CFG_ONEGB) { icbp->icb_fwoptions3 |= ICB2400_OPT3_RATE_ONEGB; @@ -1904,11 +1979,12 @@ isp_fibre_init_2400(ispsoftc_t *isp) icbp->icb_fwoptions3 |= ICB2400_OPT3_RATE_TWOGB; } else if (isp->isp_confopts & ISP_CFG_FOURGB) { icbp->icb_fwoptions3 |= ICB2400_OPT3_RATE_FOURGB; + } else if (IS_25XX(isp) && (isp->isp_confopts & ISP_CFG_EIGHTGB)) { + icbp->icb_fwoptions3 |= ICB2400_OPT3_RATE_EIGHTGB; } else { icbp->icb_fwoptions3 |= ICB2400_OPT3_RATE_AUTO; } - - if ((isp->isp_confopts & ISP_CFG_OWNLOOPID) == 0) { + if (ownloopid == 0) { icbp->icb_fwoptions3 |= ICB2400_OPT3_SOFTID; } icbp->icb_logintime = ICB_LOGIN_TOV; @@ -2569,11 +2645,7 @@ isp_fclink_test(ispsoftc_t *isp, int chan, int usdelay) * Get our Loop ID and Port ID. */ MBSINIT(&mbs, MBOX_GET_LOOP_ID, MBLOGALL, 0); - if (ISP_CAP_MULTI_ID(isp)) { - mbs.param[9] = chan; - mbs.ibits = (1 << 9); - mbs.obits = (1 << 7); - } + mbs.param[9] = chan; isp_mboxcmd(isp, &mbs); if (mbs.param[0] != MBOX_COMMAND_COMPLETE) { return (-1); @@ -2676,12 +2748,14 @@ isp_fclink_test(ispsoftc_t *isp, int chan, int usdelay) lp->new_portid = lp->portid; lp->new_roles = lp->roles; if (IS_24XX(isp)) { - fcp->inorder = (mbs.param[7] & ISP24XX_INORDER) != 0; - if (ISP_FW_NEWER_THAN(isp, 4, 0, 27)) { - fcp->npiv_fabric = (mbs.param[7] & ISP24XX_NPIV_SAN) != 0; - if (fcp->npiv_fabric) { - isp_prt(isp, ISP_LOGCONFIG, "fabric supports NP-IV"); - } + if (check_for_fabric) { + /* + * The mbs is still hanging out from the MBOX_GET_LOOP_ID above. + */ + fcp->isp_fabric_params = mbs.param[7]; + isp_prt(isp, ISP_LOGCONFIG, "fabric params 0x%x", mbs.param[7]); + } else { + fcp->isp_fabric_params = 0; } if (chan) { fcp->isp_sns_hdl = NPH_SNS_HDLBASE + chan; @@ -4427,6 +4501,7 @@ isp_start(XS_T *xs) t7->req_lun[0] |= 0x40; } t7->req_lun[1] = XS_LUN(xs); + FCP_NEXT_CRN(isp, xs, t7->req_crn, XS_CHANNEL(xs), XS_TGT(xs), XS_LUN(xs)); tptr = &t7->req_time; cdbp = t7->req_cdb; cdblen = ISP_MIN(cdblen, sizeof (t7->req_cdb)); @@ -4907,7 +4982,7 @@ isp_intr(ispsoftc_t *isp, uint32_t isr, uint16_t sema, uint16_t mbox) if (isp->isp_mboxbsy) { int obits = isp->isp_obits; isp->isp_mboxtmp[0] = mbox; - for (i = 1; i < MAX_MAILBOX(isp); i++) { + for (i = 1; i < ISP_NMBOX(isp); i++) { if ((obits & (1 << i)) == 0) { continue; } @@ -6667,105 +6742,106 @@ isp_mbox_continue(ispsoftc_t *isp) return (0); } -#define HIWRD(x) ((x) >> 16) -#define LOWRD(x) ((x) & 0xffff) -#define ISPOPMAP(a, b) (((a) << 16) | (b)) -static const uint32_t mbpscsi[] = { - ISPOPMAP(0x01, 0x01), /* 0x00: MBOX_NO_OP */ - ISPOPMAP(0x1f, 0x01), /* 0x01: MBOX_LOAD_RAM */ - ISPOPMAP(0x03, 0x01), /* 0x02: MBOX_EXEC_FIRMWARE */ - ISPOPMAP(0x1f, 0x01), /* 0x03: MBOX_DUMP_RAM */ - ISPOPMAP(0x07, 0x07), /* 0x04: MBOX_WRITE_RAM_WORD */ - ISPOPMAP(0x03, 0x07), /* 0x05: MBOX_READ_RAM_WORD */ - ISPOPMAP(0x3f, 0x3f), /* 0x06: MBOX_MAILBOX_REG_TEST */ - ISPOPMAP(0x07, 0x07), /* 0x07: MBOX_VERIFY_CHECKSUM */ - ISPOPMAP(0x01, 0x0f), /* 0x08: MBOX_ABOUT_FIRMWARE */ - ISPOPMAP(0x00, 0x00), /* 0x09: */ - ISPOPMAP(0x00, 0x00), /* 0x0a: */ - ISPOPMAP(0x00, 0x00), /* 0x0b: */ - ISPOPMAP(0x00, 0x00), /* 0x0c: */ - ISPOPMAP(0x00, 0x00), /* 0x0d: */ - ISPOPMAP(0x01, 0x05), /* 0x0e: MBOX_CHECK_FIRMWARE */ - ISPOPMAP(0x00, 0x00), /* 0x0f: */ - ISPOPMAP(0x1f, 0x1f), /* 0x10: MBOX_INIT_REQ_QUEUE */ - ISPOPMAP(0x3f, 0x3f), /* 0x11: MBOX_INIT_RES_QUEUE */ - ISPOPMAP(0x0f, 0x0f), /* 0x12: MBOX_EXECUTE_IOCB */ - ISPOPMAP(0x03, 0x03), /* 0x13: MBOX_WAKE_UP */ - ISPOPMAP(0x01, 0x3f), /* 0x14: MBOX_STOP_FIRMWARE */ - ISPOPMAP(0x0f, 0x0f), /* 0x15: MBOX_ABORT */ - ISPOPMAP(0x03, 0x03), /* 0x16: MBOX_ABORT_DEVICE */ - ISPOPMAP(0x07, 0x07), /* 0x17: MBOX_ABORT_TARGET */ - ISPOPMAP(0x07, 0x07), /* 0x18: MBOX_BUS_RESET */ - ISPOPMAP(0x03, 0x07), /* 0x19: MBOX_STOP_QUEUE */ - ISPOPMAP(0x03, 0x07), /* 0x1a: MBOX_START_QUEUE */ - ISPOPMAP(0x03, 0x07), /* 0x1b: MBOX_SINGLE_STEP_QUEUE */ - ISPOPMAP(0x03, 0x07), /* 0x1c: MBOX_ABORT_QUEUE */ - ISPOPMAP(0x03, 0x4f), /* 0x1d: MBOX_GET_DEV_QUEUE_STATUS */ - ISPOPMAP(0x00, 0x00), /* 0x1e: */ - ISPOPMAP(0x01, 0x07), /* 0x1f: MBOX_GET_FIRMWARE_STATUS */ - ISPOPMAP(0x01, 0x07), /* 0x20: MBOX_GET_INIT_SCSI_ID */ - ISPOPMAP(0x01, 0x07), /* 0x21: MBOX_GET_SELECT_TIMEOUT */ - ISPOPMAP(0x01, 0xc7), /* 0x22: MBOX_GET_RETRY_COUNT */ - ISPOPMAP(0x01, 0x07), /* 0x23: MBOX_GET_TAG_AGE_LIMIT */ - ISPOPMAP(0x01, 0x03), /* 0x24: MBOX_GET_CLOCK_RATE */ - ISPOPMAP(0x01, 0x07), /* 0x25: MBOX_GET_ACT_NEG_STATE */ - ISPOPMAP(0x01, 0x07), /* 0x26: MBOX_GET_ASYNC_DATA_SETUP_TIME */ - ISPOPMAP(0x01, 0x07), /* 0x27: MBOX_GET_PCI_PARAMS */ - ISPOPMAP(0x03, 0x4f), /* 0x28: MBOX_GET_TARGET_PARAMS */ - ISPOPMAP(0x03, 0x0f), /* 0x29: MBOX_GET_DEV_QUEUE_PARAMS */ - ISPOPMAP(0x01, 0x07), /* 0x2a: MBOX_GET_RESET_DELAY_PARAMS */ - ISPOPMAP(0x00, 0x00), /* 0x2b: */ - ISPOPMAP(0x00, 0x00), /* 0x2c: */ - ISPOPMAP(0x00, 0x00), /* 0x2d: */ - ISPOPMAP(0x00, 0x00), /* 0x2e: */ - ISPOPMAP(0x00, 0x00), /* 0x2f: */ - ISPOPMAP(0x03, 0x03), /* 0x30: MBOX_SET_INIT_SCSI_ID */ - ISPOPMAP(0x07, 0x07), /* 0x31: MBOX_SET_SELECT_TIMEOUT */ - ISPOPMAP(0xc7, 0xc7), /* 0x32: MBOX_SET_RETRY_COUNT */ - ISPOPMAP(0x07, 0x07), /* 0x33: MBOX_SET_TAG_AGE_LIMIT */ - ISPOPMAP(0x03, 0x03), /* 0x34: MBOX_SET_CLOCK_RATE */ - ISPOPMAP(0x07, 0x07), /* 0x35: MBOX_SET_ACT_NEG_STATE */ - ISPOPMAP(0x07, 0x07), /* 0x36: MBOX_SET_ASYNC_DATA_SETUP_TIME */ - ISPOPMAP(0x07, 0x07), /* 0x37: MBOX_SET_PCI_CONTROL_PARAMS */ - ISPOPMAP(0x4f, 0x4f), /* 0x38: MBOX_SET_TARGET_PARAMS */ - ISPOPMAP(0x0f, 0x0f), /* 0x39: MBOX_SET_DEV_QUEUE_PARAMS */ - ISPOPMAP(0x07, 0x07), /* 0x3a: MBOX_SET_RESET_DELAY_PARAMS */ - ISPOPMAP(0x00, 0x00), /* 0x3b: */ - ISPOPMAP(0x00, 0x00), /* 0x3c: */ - ISPOPMAP(0x00, 0x00), /* 0x3d: */ - ISPOPMAP(0x00, 0x00), /* 0x3e: */ - ISPOPMAP(0x00, 0x00), /* 0x3f: */ - ISPOPMAP(0x01, 0x03), /* 0x40: MBOX_RETURN_BIOS_BLOCK_ADDR */ - ISPOPMAP(0x3f, 0x01), /* 0x41: MBOX_WRITE_FOUR_RAM_WORDS */ - ISPOPMAP(0x03, 0x07), /* 0x42: MBOX_EXEC_BIOS_IOCB */ - ISPOPMAP(0x00, 0x00), /* 0x43: */ - ISPOPMAP(0x00, 0x00), /* 0x44: */ - ISPOPMAP(0x03, 0x03), /* 0x45: SET SYSTEM PARAMETER */ - ISPOPMAP(0x01, 0x03), /* 0x46: GET SYSTEM PARAMETER */ - ISPOPMAP(0x00, 0x00), /* 0x47: */ - ISPOPMAP(0x01, 0xcf), /* 0x48: GET SCAM CONFIGURATION */ - ISPOPMAP(0xcf, 0xcf), /* 0x49: SET SCAM CONFIGURATION */ - ISPOPMAP(0x03, 0x03), /* 0x4a: MBOX_SET_FIRMWARE_FEATURES */ - ISPOPMAP(0x01, 0x03), /* 0x4b: MBOX_GET_FIRMWARE_FEATURES */ - ISPOPMAP(0x00, 0x00), /* 0x4c: */ - ISPOPMAP(0x00, 0x00), /* 0x4d: */ - ISPOPMAP(0x00, 0x00), /* 0x4e: */ - ISPOPMAP(0x00, 0x00), /* 0x4f: */ - ISPOPMAP(0xdf, 0xdf), /* 0x50: LOAD RAM A64 */ - ISPOPMAP(0xdf, 0xdf), /* 0x51: DUMP RAM A64 */ - ISPOPMAP(0xdf, 0xff), /* 0x52: INITIALIZE REQUEST QUEUE A64 */ - ISPOPMAP(0xef, 0xff), /* 0x53: INITIALIZE RESPONSE QUEUE A64 */ - ISPOPMAP(0xcf, 0x01), /* 0x54: EXECUCUTE COMMAND IOCB A64 */ - ISPOPMAP(0x07, 0x01), /* 0x55: ENABLE TARGET MODE */ - ISPOPMAP(0x03, 0x0f), /* 0x56: GET TARGET STATUS */ - ISPOPMAP(0x00, 0x00), /* 0x57: */ - ISPOPMAP(0x00, 0x00), /* 0x58: */ - ISPOPMAP(0x00, 0x00), /* 0x59: */ - ISPOPMAP(0x03, 0x03), /* 0x5a: SET DATA OVERRUN RECOVERY MODE */ - ISPOPMAP(0x01, 0x03), /* 0x5b: GET DATA OVERRUN RECOVERY MODE */ - ISPOPMAP(0x0f, 0x0f), /* 0x5c: SET HOST DATA */ - ISPOPMAP(0x01, 0x01) /* 0x5d: GET NOST DATA */ +#define ISP_SCSI_IBITS(op) (mbpscsi[((op)<<1)]) +#define ISP_SCSI_OBITS(op) (mbpscsi[((op)<<1) + 1]) +#define ISP_SCSI_OPMAP(in, out) in, out +static const uint8_t mbpscsi[] = { + ISP_SCSI_OPMAP(0x01, 0x01), /* 0x00: MBOX_NO_OP */ + ISP_SCSI_OPMAP(0x1f, 0x01), /* 0x01: MBOX_LOAD_RAM */ + ISP_SCSI_OPMAP(0x03, 0x01), /* 0x02: MBOX_EXEC_FIRMWARE */ + ISP_SCSI_OPMAP(0x1f, 0x01), /* 0x03: MBOX_DUMP_RAM */ + ISP_SCSI_OPMAP(0x07, 0x07), /* 0x04: MBOX_WRITE_RAM_WORD */ + ISP_SCSI_OPMAP(0x03, 0x07), /* 0x05: MBOX_READ_RAM_WORD */ + ISP_SCSI_OPMAP(0x3f, 0x3f), /* 0x06: MBOX_MAILBOX_REG_TEST */ + ISP_SCSI_OPMAP(0x07, 0x07), /* 0x07: MBOX_VERIFY_CHECKSUM */ + ISP_SCSI_OPMAP(0x01, 0x0f), /* 0x08: MBOX_ABOUT_FIRMWARE */ + ISP_SCSI_OPMAP(0x00, 0x00), /* 0x09: */ + ISP_SCSI_OPMAP(0x00, 0x00), /* 0x0a: */ + ISP_SCSI_OPMAP(0x00, 0x00), /* 0x0b: */ + ISP_SCSI_OPMAP(0x00, 0x00), /* 0x0c: */ + ISP_SCSI_OPMAP(0x00, 0x00), /* 0x0d: */ + ISP_SCSI_OPMAP(0x01, 0x05), /* 0x0e: MBOX_CHECK_FIRMWARE */ + ISP_SCSI_OPMAP(0x00, 0x00), /* 0x0f: */ + ISP_SCSI_OPMAP(0x1f, 0x1f), /* 0x10: MBOX_INIT_REQ_QUEUE */ + ISP_SCSI_OPMAP(0x3f, 0x3f), /* 0x11: MBOX_INIT_RES_QUEUE */ + ISP_SCSI_OPMAP(0x0f, 0x0f), /* 0x12: MBOX_EXECUTE_IOCB */ + ISP_SCSI_OPMAP(0x03, 0x03), /* 0x13: MBOX_WAKE_UP */ + ISP_SCSI_OPMAP(0x01, 0x3f), /* 0x14: MBOX_STOP_FIRMWARE */ + ISP_SCSI_OPMAP(0x0f, 0x0f), /* 0x15: MBOX_ABORT */ + ISP_SCSI_OPMAP(0x03, 0x03), /* 0x16: MBOX_ABORT_DEVICE */ + ISP_SCSI_OPMAP(0x07, 0x07), /* 0x17: MBOX_ABORT_TARGET */ + ISP_SCSI_OPMAP(0x07, 0x07), /* 0x18: MBOX_BUS_RESET */ + ISP_SCSI_OPMAP(0x03, 0x07), /* 0x19: MBOX_STOP_QUEUE */ + ISP_SCSI_OPMAP(0x03, 0x07), /* 0x1a: MBOX_START_QUEUE */ + ISP_SCSI_OPMAP(0x03, 0x07), /* 0x1b: MBOX_SINGLE_STEP_QUEUE */ + ISP_SCSI_OPMAP(0x03, 0x07), /* 0x1c: MBOX_ABORT_QUEUE */ + ISP_SCSI_OPMAP(0x03, 0x4f), /* 0x1d: MBOX_GET_DEV_QUEUE_STATUS */ + ISP_SCSI_OPMAP(0x00, 0x00), /* 0x1e: */ + ISP_SCSI_OPMAP(0x01, 0x07), /* 0x1f: MBOX_GET_FIRMWARE_STATUS */ + ISP_SCSI_OPMAP(0x01, 0x07), /* 0x20: MBOX_GET_INIT_SCSI_ID */ + ISP_SCSI_OPMAP(0x01, 0x07), /* 0x21: MBOX_GET_SELECT_TIMEOUT */ + ISP_SCSI_OPMAP(0x01, 0xc7), /* 0x22: MBOX_GET_RETRY_COUNT */ + ISP_SCSI_OPMAP(0x01, 0x07), /* 0x23: MBOX_GET_TAG_AGE_LIMIT */ + ISP_SCSI_OPMAP(0x01, 0x03), /* 0x24: MBOX_GET_CLOCK_RATE */ + ISP_SCSI_OPMAP(0x01, 0x07), /* 0x25: MBOX_GET_ACT_NEG_STATE */ + ISP_SCSI_OPMAP(0x01, 0x07), /* 0x26: MBOX_GET_ASYNC_DATA_SETUP_TIME */ + ISP_SCSI_OPMAP(0x01, 0x07), /* 0x27: MBOX_GET_PCI_PARAMS */ + ISP_SCSI_OPMAP(0x03, 0x4f), /* 0x28: MBOX_GET_TARGET_PARAMS */ + ISP_SCSI_OPMAP(0x03, 0x0f), /* 0x29: MBOX_GET_DEV_QUEUE_PARAMS */ + ISP_SCSI_OPMAP(0x01, 0x07), /* 0x2a: MBOX_GET_RESET_DELAY_PARAMS */ + ISP_SCSI_OPMAP(0x00, 0x00), /* 0x2b: */ + ISP_SCSI_OPMAP(0x00, 0x00), /* 0x2c: */ + ISP_SCSI_OPMAP(0x00, 0x00), /* 0x2d: */ + ISP_SCSI_OPMAP(0x00, 0x00), /* 0x2e: */ + ISP_SCSI_OPMAP(0x00, 0x00), /* 0x2f: */ + ISP_SCSI_OPMAP(0x03, 0x03), /* 0x30: MBOX_SET_INIT_SCSI_ID */ + ISP_SCSI_OPMAP(0x07, 0x07), /* 0x31: MBOX_SET_SELECT_TIMEOUT */ + ISP_SCSI_OPMAP(0xc7, 0xc7), /* 0x32: MBOX_SET_RETRY_COUNT */ + ISP_SCSI_OPMAP(0x07, 0x07), /* 0x33: MBOX_SET_TAG_AGE_LIMIT */ + ISP_SCSI_OPMAP(0x03, 0x03), /* 0x34: MBOX_SET_CLOCK_RATE */ + ISP_SCSI_OPMAP(0x07, 0x07), /* 0x35: MBOX_SET_ACT_NEG_STATE */ + ISP_SCSI_OPMAP(0x07, 0x07), /* 0x36: MBOX_SET_ASYNC_DATA_SETUP_TIME */ + ISP_SCSI_OPMAP(0x07, 0x07), /* 0x37: MBOX_SET_PCI_CONTROL_PARAMS */ + ISP_SCSI_OPMAP(0x4f, 0x4f), /* 0x38: MBOX_SET_TARGET_PARAMS */ + ISP_SCSI_OPMAP(0x0f, 0x0f), /* 0x39: MBOX_SET_DEV_QUEUE_PARAMS */ + ISP_SCSI_OPMAP(0x07, 0x07), /* 0x3a: MBOX_SET_RESET_DELAY_PARAMS */ + ISP_SCSI_OPMAP(0x00, 0x00), /* 0x3b: */ + ISP_SCSI_OPMAP(0x00, 0x00), /* 0x3c: */ + ISP_SCSI_OPMAP(0x00, 0x00), /* 0x3d: */ + ISP_SCSI_OPMAP(0x00, 0x00), /* 0x3e: */ + ISP_SCSI_OPMAP(0x00, 0x00), /* 0x3f: */ + ISP_SCSI_OPMAP(0x01, 0x03), /* 0x40: MBOX_RETURN_BIOS_BLOCK_ADDR */ + ISP_SCSI_OPMAP(0x3f, 0x01), /* 0x41: MBOX_WRITE_FOUR_RAM_WORDS */ + ISP_SCSI_OPMAP(0x03, 0x07), /* 0x42: MBOX_EXEC_BIOS_IOCB */ + ISP_SCSI_OPMAP(0x00, 0x00), /* 0x43: */ + ISP_SCSI_OPMAP(0x00, 0x00), /* 0x44: */ + ISP_SCSI_OPMAP(0x03, 0x03), /* 0x45: SET SYSTEM PARAMETER */ + ISP_SCSI_OPMAP(0x01, 0x03), /* 0x46: GET SYSTEM PARAMETER */ + ISP_SCSI_OPMAP(0x00, 0x00), /* 0x47: */ + ISP_SCSI_OPMAP(0x01, 0xcf), /* 0x48: GET SCAM CONFIGURATION */ + ISP_SCSI_OPMAP(0xcf, 0xcf), /* 0x49: SET SCAM CONFIGURATION */ + ISP_SCSI_OPMAP(0x03, 0x03), /* 0x4a: MBOX_SET_FIRMWARE_FEATURES */ + ISP_SCSI_OPMAP(0x01, 0x03), /* 0x4b: MBOX_GET_FIRMWARE_FEATURES */ + ISP_SCSI_OPMAP(0x00, 0x00), /* 0x4c: */ + ISP_SCSI_OPMAP(0x00, 0x00), /* 0x4d: */ + ISP_SCSI_OPMAP(0x00, 0x00), /* 0x4e: */ + ISP_SCSI_OPMAP(0x00, 0x00), /* 0x4f: */ + ISP_SCSI_OPMAP(0xdf, 0xdf), /* 0x50: LOAD RAM A64 */ + ISP_SCSI_OPMAP(0xdf, 0xdf), /* 0x51: DUMP RAM A64 */ + ISP_SCSI_OPMAP(0xdf, 0xff), /* 0x52: INITIALIZE REQUEST QUEUE A64 */ + ISP_SCSI_OPMAP(0xef, 0xff), /* 0x53: INITIALIZE RESPONSE QUEUE A64 */ + ISP_SCSI_OPMAP(0xcf, 0x01), /* 0x54: EXECUCUTE COMMAND IOCB A64 */ + ISP_SCSI_OPMAP(0x07, 0x01), /* 0x55: ENABLE TARGET MODE */ + ISP_SCSI_OPMAP(0x03, 0x0f), /* 0x56: GET TARGET STATUS */ + ISP_SCSI_OPMAP(0x00, 0x00), /* 0x57: */ + ISP_SCSI_OPMAP(0x00, 0x00), /* 0x58: */ + ISP_SCSI_OPMAP(0x00, 0x00), /* 0x59: */ + ISP_SCSI_OPMAP(0x03, 0x03), /* 0x5a: SET DATA OVERRUN RECOVERY MODE */ + ISP_SCSI_OPMAP(0x01, 0x03), /* 0x5b: GET DATA OVERRUN RECOVERY MODE */ + ISP_SCSI_OPMAP(0x0f, 0x0f), /* 0x5c: SET HOST DATA */ + ISP_SCSI_OPMAP(0x01, 0x01) /* 0x5d: GET NOST DATA */ }; +#define MAX_SCSI_OPCODE 0x5d static const char *scsi_mbcmd_names[] = { "NO-OP", @@ -6864,135 +6940,142 @@ static const char *scsi_mbcmd_names[] = { "GET NOST DATA", }; +#define ISP_FC_IBITS(op) ((mbpfc[((op)<<3) + 0] << 24) | (mbpfc[((op)<<3) + 1] << 16) | (mbpfc[((op)<<3) + 2] << 8) | (mbpfc[((op)<<3) + 3])) +#define ISP_FC_OBITS(op) ((mbpfc[((op)<<3) + 4] << 24) | (mbpfc[((op)<<3) + 5] << 16) | (mbpfc[((op)<<3) + 6] << 8) | (mbpfc[((op)<<3) + 7])) + +#define ISP_FC_OPMAP(in0, out0) 0, 0, 0, in0, 0, 0, 0, out0 +#define ISP_FC_OPMAP_HALF(in1, in0, out1, out0) 0, 0, in1, in0, 0, 0, out1, out0 +#define ISP_FC_OPMAP_FULL(in3, in2, in1, in0, out3, out2, out1, out0) in3, in2, in1, in0, out3, out2, out1, out0 static const uint32_t mbpfc[] = { - ISPOPMAP(0x01, 0x01), /* 0x00: MBOX_NO_OP */ - ISPOPMAP(0x1f, 0x01), /* 0x01: MBOX_LOAD_RAM */ - ISPOPMAP(0x0f, 0x01), /* 0x02: MBOX_EXEC_FIRMWARE */ - ISPOPMAP(0xdf, 0x01), /* 0x03: MBOX_DUMP_RAM */ - ISPOPMAP(0x07, 0x07), /* 0x04: MBOX_WRITE_RAM_WORD */ - ISPOPMAP(0x03, 0x07), /* 0x05: MBOX_READ_RAM_WORD */ - ISPOPMAP(0xff, 0xff), /* 0x06: MBOX_MAILBOX_REG_TEST */ - ISPOPMAP(0x07, 0x07), /* 0x07: MBOX_VERIFY_CHECKSUM */ - ISPOPMAP(0x01, 0x4f), /* 0x08: MBOX_ABOUT_FIRMWARE */ - ISPOPMAP(0xdf, 0x01), /* 0x09: MBOX_LOAD_RISC_RAM_2100 */ - ISPOPMAP(0xdf, 0x01), /* 0x0a: DUMP RAM */ - ISPOPMAP(0x1ff, 0x01), /* 0x0b: MBOX_LOAD_RISC_RAM */ - ISPOPMAP(0x00, 0x00), /* 0x0c: */ - ISPOPMAP(0x10f, 0x01), /* 0x0d: MBOX_WRITE_RAM_WORD_EXTENDED */ - ISPOPMAP(0x01, 0x05), /* 0x0e: MBOX_CHECK_FIRMWARE */ - ISPOPMAP(0x103, 0x0d), /* 0x0f: MBOX_READ_RAM_WORD_EXTENDED */ - ISPOPMAP(0x1f, 0x11), /* 0x10: MBOX_INIT_REQ_QUEUE */ - ISPOPMAP(0x2f, 0x21), /* 0x11: MBOX_INIT_RES_QUEUE */ - ISPOPMAP(0x0f, 0x01), /* 0x12: MBOX_EXECUTE_IOCB */ - ISPOPMAP(0x03, 0x03), /* 0x13: MBOX_WAKE_UP */ - ISPOPMAP(0x01, 0xff), /* 0x14: MBOX_STOP_FIRMWARE */ - ISPOPMAP(0x4f, 0x01), /* 0x15: MBOX_ABORT */ - ISPOPMAP(0x07, 0x01), /* 0x16: MBOX_ABORT_DEVICE */ - ISPOPMAP(0x07, 0x01), /* 0x17: MBOX_ABORT_TARGET */ - ISPOPMAP(0x03, 0x03), /* 0x18: MBOX_BUS_RESET */ - ISPOPMAP(0x07, 0x05), /* 0x19: MBOX_STOP_QUEUE */ - ISPOPMAP(0x07, 0x05), /* 0x1a: MBOX_START_QUEUE */ - ISPOPMAP(0x07, 0x05), /* 0x1b: MBOX_SINGLE_STEP_QUEUE */ - ISPOPMAP(0x07, 0x05), /* 0x1c: MBOX_ABORT_QUEUE */ - ISPOPMAP(0x07, 0x03), /* 0x1d: MBOX_GET_DEV_QUEUE_STATUS */ - ISPOPMAP(0x00, 0x00), /* 0x1e: */ - ISPOPMAP(0x01, 0x07), /* 0x1f: MBOX_GET_FIRMWARE_STATUS */ - ISPOPMAP(0x01, 0x4f), /* 0x20: MBOX_GET_LOOP_ID */ - ISPOPMAP(0x00, 0x00), /* 0x21: */ - ISPOPMAP(0x01, 0x07), /* 0x22: MBOX_GET_RETRY_COUNT */ - ISPOPMAP(0x00, 0x00), /* 0x23: */ - ISPOPMAP(0x00, 0x00), /* 0x24: */ - ISPOPMAP(0x00, 0x00), /* 0x25: */ - ISPOPMAP(0x00, 0x00), /* 0x26: */ - ISPOPMAP(0x00, 0x00), /* 0x27: */ - ISPOPMAP(0x01, 0x03), /* 0x28: MBOX_GET_FIRMWARE_OPTIONS */ - ISPOPMAP(0x03, 0x07), /* 0x29: MBOX_GET_PORT_QUEUE_PARAMS */ - ISPOPMAP(0x00, 0x00), /* 0x2a: */ - ISPOPMAP(0x00, 0x00), /* 0x2b: */ - ISPOPMAP(0x00, 0x00), /* 0x2c: */ - ISPOPMAP(0x00, 0x00), /* 0x2d: */ - ISPOPMAP(0x00, 0x00), /* 0x2e: */ - ISPOPMAP(0x00, 0x00), /* 0x2f: */ - ISPOPMAP(0x00, 0x00), /* 0x30: */ - ISPOPMAP(0x00, 0x00), /* 0x31: */ - ISPOPMAP(0x07, 0x07), /* 0x32: MBOX_SET_RETRY_COUNT */ - ISPOPMAP(0x00, 0x00), /* 0x33: */ - ISPOPMAP(0x00, 0x00), /* 0x34: */ - ISPOPMAP(0x00, 0x00), /* 0x35: */ - ISPOPMAP(0x00, 0x00), /* 0x36: */ - ISPOPMAP(0x00, 0x00), /* 0x37: */ - ISPOPMAP(0x0f, 0x01), /* 0x38: MBOX_SET_FIRMWARE_OPTIONS */ - ISPOPMAP(0x0f, 0x07), /* 0x39: MBOX_SET_PORT_QUEUE_PARAMS */ - ISPOPMAP(0x00, 0x00), /* 0x3a: */ - ISPOPMAP(0x00, 0x00), /* 0x3b: */ - ISPOPMAP(0x00, 0x00), /* 0x3c: */ - ISPOPMAP(0x00, 0x00), /* 0x3d: */ - ISPOPMAP(0x00, 0x00), /* 0x3e: */ - ISPOPMAP(0x00, 0x00), /* 0x3f: */ - ISPOPMAP(0x03, 0x01), /* 0x40: MBOX_LOOP_PORT_BYPASS */ - ISPOPMAP(0x03, 0x01), /* 0x41: MBOX_LOOP_PORT_ENABLE */ - ISPOPMAP(0x03, 0x07), /* 0x42: MBOX_GET_RESOURCE_COUNT */ - ISPOPMAP(0x01, 0x01), /* 0x43: MBOX_REQUEST_OFFLINE_MODE */ - ISPOPMAP(0x00, 0x00), /* 0x44: */ - ISPOPMAP(0x00, 0x00), /* 0x45: */ - ISPOPMAP(0x00, 0x00), /* 0x46: */ - ISPOPMAP(0xcf, 0x03), /* 0x47: GET PORT_DATABASE ENHANCED */ - ISPOPMAP(0xcd, 0x01), /* 0x48: MBOX_INIT_FIRMWARE_MULTI_ID */ - ISPOPMAP(0xcd, 0x01), /* 0x49: MBOX_GET_VP_DATABASE */ - ISPOPMAP(0x2cd, 0x01), /* 0x4a: MBOX_GET_VP_DATABASE_ENTRY */ - ISPOPMAP(0x00, 0x00), /* 0x4b: */ - ISPOPMAP(0x00, 0x00), /* 0x4c: */ - ISPOPMAP(0x00, 0x00), /* 0x4d: */ - ISPOPMAP(0x00, 0x00), /* 0x4e: */ - ISPOPMAP(0x00, 0x00), /* 0x4f: */ - ISPOPMAP(0x00, 0x00), /* 0x50: */ - ISPOPMAP(0x00, 0x00), /* 0x51: */ - ISPOPMAP(0x00, 0x00), /* 0x52: */ - ISPOPMAP(0x00, 0x00), /* 0x53: */ - ISPOPMAP(0xcf, 0x01), /* 0x54: EXECUTE IOCB A64 */ - ISPOPMAP(0x00, 0x00), /* 0x55: */ - ISPOPMAP(0x00, 0x00), /* 0x56: */ - ISPOPMAP(0x00, 0x00), /* 0x57: */ - ISPOPMAP(0x00, 0x00), /* 0x58: */ - ISPOPMAP(0x00, 0x00), /* 0x59: */ - ISPOPMAP(0x00, 0x00), /* 0x5a: */ - ISPOPMAP(0x03, 0x01), /* 0x5b: MBOX_DRIVER_HEARTBEAT */ - ISPOPMAP(0xcf, 0x01), /* 0x5c: MBOX_FW_HEARTBEAT */ - ISPOPMAP(0x07, 0x03), /* 0x5d: MBOX_GET_SET_DATA_RATE */ - ISPOPMAP(0x00, 0x00), /* 0x5e: */ - ISPOPMAP(0x00, 0x00), /* 0x5f: */ - ISPOPMAP(0xcd, 0x01), /* 0x60: MBOX_INIT_FIRMWARE */ - ISPOPMAP(0x00, 0x00), /* 0x61: */ - ISPOPMAP(0x01, 0x01), /* 0x62: MBOX_INIT_LIP */ - ISPOPMAP(0xcd, 0x03), /* 0x63: MBOX_GET_FC_AL_POSITION_MAP */ - ISPOPMAP(0xcf, 0x01), /* 0x64: MBOX_GET_PORT_DB */ - ISPOPMAP(0x07, 0x01), /* 0x65: MBOX_CLEAR_ACA */ - ISPOPMAP(0x07, 0x01), /* 0x66: MBOX_TARGET_RESET */ - ISPOPMAP(0x07, 0x01), /* 0x67: MBOX_CLEAR_TASK_SET */ - ISPOPMAP(0x07, 0x01), /* 0x68: MBOX_ABORT_TASK_SET */ - ISPOPMAP(0x01, 0x07), /* 0x69: MBOX_GET_FW_STATE */ - ISPOPMAP(0x03, 0xcf), /* 0x6a: MBOX_GET_PORT_NAME */ - ISPOPMAP(0xcf, 0x01), /* 0x6b: MBOX_GET_LINK_STATUS */ - ISPOPMAP(0x0f, 0x01), /* 0x6c: MBOX_INIT_LIP_RESET */ - ISPOPMAP(0x00, 0x00), /* 0x6d: */ - ISPOPMAP(0xcf, 0x03), /* 0x6e: MBOX_SEND_SNS */ - ISPOPMAP(0x0f, 0x07), /* 0x6f: MBOX_FABRIC_LOGIN */ - ISPOPMAP(0x03, 0x01), /* 0x70: MBOX_SEND_CHANGE_REQUEST */ - ISPOPMAP(0x03, 0x03), /* 0x71: MBOX_FABRIC_LOGOUT */ - ISPOPMAP(0x0f, 0x0f), /* 0x72: MBOX_INIT_LIP_LOGIN */ - ISPOPMAP(0x00, 0x00), /* 0x73: */ - ISPOPMAP(0x07, 0x01), /* 0x74: LOGIN LOOP PORT */ - ISPOPMAP(0xcf, 0x03), /* 0x75: GET PORT/NODE NAME LIST */ - ISPOPMAP(0x4f, 0x01), /* 0x76: SET VENDOR ID */ - ISPOPMAP(0xcd, 0x01), /* 0x77: INITIALIZE IP MAILBOX */ - ISPOPMAP(0x00, 0x00), /* 0x78: */ - ISPOPMAP(0x00, 0x00), /* 0x79: */ - ISPOPMAP(0x00, 0x00), /* 0x7a: */ - ISPOPMAP(0x00, 0x00), /* 0x7b: */ - ISPOPMAP(0x4f, 0x03), /* 0x7c: Get ID List */ - ISPOPMAP(0xcf, 0x01), /* 0x7d: SEND LFA */ - ISPOPMAP(0x0f, 0x01) /* 0x7e: LUN RESET */ + ISP_FC_OPMAP(0x01, 0x01), /* 0x00: MBOX_NO_OP */ + ISP_FC_OPMAP(0x1f, 0x01), /* 0x01: MBOX_LOAD_RAM */ + ISP_FC_OPMAP(0x0f, 0x01), /* 0x02: MBOX_EXEC_FIRMWARE */ + ISP_FC_OPMAP(0xdf, 0x01), /* 0x03: MBOX_DUMP_RAM */ + ISP_FC_OPMAP(0x07, 0x07), /* 0x04: MBOX_WRITE_RAM_WORD */ + ISP_FC_OPMAP(0x03, 0x07), /* 0x05: MBOX_READ_RAM_WORD */ + ISP_FC_OPMAP_FULL(0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff), /* 0x06: MBOX_MAILBOX_REG_TEST */ + ISP_FC_OPMAP(0x07, 0x07), /* 0x07: MBOX_VERIFY_CHECKSUM */ + ISP_FC_OPMAP_FULL(0x0, 0x0, 0x0, 0x01, 0x0, 0x3, 0x80, 0x4f), /* 0x08: MBOX_ABOUT_FIRMWARE */ + ISP_FC_OPMAP(0xdf, 0x01), /* 0x09: MBOX_LOAD_RISC_RAM_2100 */ + ISP_FC_OPMAP(0xdf, 0x01), /* 0x0a: DUMP RAM */ + ISP_FC_OPMAP_HALF(0x1, 0xff, 0x0, 0x01), /* 0x0b: MBOX_LOAD_RISC_RAM */ + ISP_FC_OPMAP(0x00, 0x00), /* 0x0c: */ + ISP_FC_OPMAP_HALF(0x1, 0x0f, 0x0, 0x01), /* 0x0d: MBOX_WRITE_RAM_WORD_EXTENDED */ + ISP_FC_OPMAP(0x01, 0x05), /* 0x0e: MBOX_CHECK_FIRMWARE */ + ISP_FC_OPMAP_HALF(0x1, 0x03, 0x0, 0x0d), /* 0x0f: MBOX_READ_RAM_WORD_EXTENDED */ + ISP_FC_OPMAP(0x1f, 0x11), /* 0x10: MBOX_INIT_REQ_QUEUE */ + ISP_FC_OPMAP(0x2f, 0x21), /* 0x11: MBOX_INIT_RES_QUEUE */ + ISP_FC_OPMAP(0x0f, 0x01), /* 0x12: MBOX_EXECUTE_IOCB */ + ISP_FC_OPMAP(0x03, 0x03), /* 0x13: MBOX_WAKE_UP */ + ISP_FC_OPMAP(0x01, 0xff), /* 0x14: MBOX_STOP_FIRMWARE */ + ISP_FC_OPMAP(0x4f, 0x01), /* 0x15: MBOX_ABORT */ + ISP_FC_OPMAP(0x07, 0x01), /* 0x16: MBOX_ABORT_DEVICE */ + ISP_FC_OPMAP(0x07, 0x01), /* 0x17: MBOX_ABORT_TARGET */ + ISP_FC_OPMAP(0x03, 0x03), /* 0x18: MBOX_BUS_RESET */ + ISP_FC_OPMAP(0x07, 0x05), /* 0x19: MBOX_STOP_QUEUE */ + ISP_FC_OPMAP(0x07, 0x05), /* 0x1a: MBOX_START_QUEUE */ + ISP_FC_OPMAP(0x07, 0x05), /* 0x1b: MBOX_SINGLE_STEP_QUEUE */ + ISP_FC_OPMAP(0x07, 0x05), /* 0x1c: MBOX_ABORT_QUEUE */ + ISP_FC_OPMAP(0x07, 0x03), /* 0x1d: MBOX_GET_DEV_QUEUE_STATUS */ + ISP_FC_OPMAP(0x00, 0x00), /* 0x1e: */ + ISP_FC_OPMAP(0x01, 0x07), /* 0x1f: MBOX_GET_FIRMWARE_STATUS */ + ISP_FC_OPMAP_HALF(0x2, 0x01, 0x0, 0xcf), /* 0x20: MBOX_GET_LOOP_ID */ + ISP_FC_OPMAP(0x00, 0x00), /* 0x21: */ + ISP_FC_OPMAP(0x01, 0x07), /* 0x22: MBOX_GET_RETRY_COUNT */ + ISP_FC_OPMAP(0x00, 0x00), /* 0x23: */ + ISP_FC_OPMAP(0x00, 0x00), /* 0x24: */ + ISP_FC_OPMAP(0x00, 0x00), /* 0x25: */ + ISP_FC_OPMAP(0x00, 0x00), /* 0x26: */ + ISP_FC_OPMAP(0x00, 0x00), /* 0x27: */ + ISP_FC_OPMAP(0x01, 0x03), /* 0x28: MBOX_GET_FIRMWARE_OPTIONS */ + ISP_FC_OPMAP(0x03, 0x07), /* 0x29: MBOX_GET_PORT_QUEUE_PARAMS */ + ISP_FC_OPMAP(0x00, 0x00), /* 0x2a: */ + ISP_FC_OPMAP(0x00, 0x00), /* 0x2b: */ + ISP_FC_OPMAP(0x00, 0x00), /* 0x2c: */ + ISP_FC_OPMAP(0x00, 0x00), /* 0x2d: */ + ISP_FC_OPMAP(0x00, 0x00), /* 0x2e: */ + ISP_FC_OPMAP(0x00, 0x00), /* 0x2f: */ + ISP_FC_OPMAP(0x00, 0x00), /* 0x30: */ + ISP_FC_OPMAP(0x00, 0x00), /* 0x31: */ + ISP_FC_OPMAP(0x07, 0x07), /* 0x32: MBOX_SET_RETRY_COUNT */ + ISP_FC_OPMAP(0x00, 0x00), /* 0x33: */ + ISP_FC_OPMAP(0x00, 0x00), /* 0x34: */ + ISP_FC_OPMAP(0x00, 0x00), /* 0x35: */ + ISP_FC_OPMAP(0x00, 0x00), /* 0x36: */ + ISP_FC_OPMAP(0x00, 0x00), /* 0x37: */ + ISP_FC_OPMAP(0x0f, 0x01), /* 0x38: MBOX_SET_FIRMWARE_OPTIONS */ + ISP_FC_OPMAP(0x0f, 0x07), /* 0x39: MBOX_SET_PORT_QUEUE_PARAMS */ + ISP_FC_OPMAP(0x00, 0x00), /* 0x3a: */ + ISP_FC_OPMAP(0x00, 0x00), /* 0x3b: */ + ISP_FC_OPMAP(0x00, 0x00), /* 0x3c: */ + ISP_FC_OPMAP(0x00, 0x00), /* 0x3d: */ + ISP_FC_OPMAP(0x00, 0x00), /* 0x3e: */ + ISP_FC_OPMAP(0x00, 0x00), /* 0x3f: */ + ISP_FC_OPMAP(0x03, 0x01), /* 0x40: MBOX_LOOP_PORT_BYPASS */ + ISP_FC_OPMAP(0x03, 0x01), /* 0x41: MBOX_LOOP_PORT_ENABLE */ + ISP_FC_OPMAP_HALF(0x3, 0xcf, 0x0, 0x07), /* 0x42: MBOX_GET_RESOURCE_COUNT */ + ISP_FC_OPMAP(0x01, 0x01), /* 0x43: MBOX_REQUEST_OFFLINE_MODE */ + ISP_FC_OPMAP(0x00, 0x00), /* 0x44: */ + ISP_FC_OPMAP(0x00, 0x00), /* 0x45: */ + ISP_FC_OPMAP(0x00, 0x00), /* 0x46: */ + ISP_FC_OPMAP(0xcf, 0x03), /* 0x47: GET PORT_DATABASE ENHANCED */ + ISP_FC_OPMAP(0xcd, 0x01), /* 0x48: MBOX_INIT_FIRMWARE_MULTI_ID */ + ISP_FC_OPMAP(0xcd, 0x01), /* 0x49: MBOX_GET_VP_DATABASE */ + ISP_FC_OPMAP_HALF(0x2, 0xcd, 0x0, 0x01), /* 0x4a: MBOX_GET_VP_DATABASE_ENTRY */ + ISP_FC_OPMAP(0x00, 0x00), /* 0x4b: */ + ISP_FC_OPMAP(0x00, 0x00), /* 0x4c: */ + ISP_FC_OPMAP(0x00, 0x00), /* 0x4d: */ + ISP_FC_OPMAP(0x00, 0x00), /* 0x4e: */ + ISP_FC_OPMAP(0x00, 0x00), /* 0x4f: */ + ISP_FC_OPMAP(0x00, 0x00), /* 0x50: */ + ISP_FC_OPMAP(0x00, 0x00), /* 0x51: */ + ISP_FC_OPMAP(0x00, 0x00), /* 0x52: */ + ISP_FC_OPMAP(0x00, 0x00), /* 0x53: */ + ISP_FC_OPMAP(0xcf, 0x01), /* 0x54: EXECUTE IOCB A64 */ + ISP_FC_OPMAP(0x00, 0x00), /* 0x55: */ + ISP_FC_OPMAP(0x00, 0x00), /* 0x56: */ + ISP_FC_OPMAP(0x00, 0x00), /* 0x57: */ + ISP_FC_OPMAP(0x00, 0x00), /* 0x58: */ + ISP_FC_OPMAP(0x00, 0x00), /* 0x59: */ + ISP_FC_OPMAP(0x00, 0x00), /* 0x5a: */ + ISP_FC_OPMAP(0x03, 0x01), /* 0x5b: MBOX_DRIVER_HEARTBEAT */ + ISP_FC_OPMAP(0xcf, 0x01), /* 0x5c: MBOX_FW_HEARTBEAT */ + ISP_FC_OPMAP(0x07, 0x03), /* 0x5d: MBOX_GET_SET_DATA_RATE */ + ISP_FC_OPMAP(0x00, 0x00), /* 0x5e: */ + ISP_FC_OPMAP(0x00, 0x00), /* 0x5f: */ + ISP_FC_OPMAP(0xcd, 0x01), /* 0x60: MBOX_INIT_FIRMWARE */ + ISP_FC_OPMAP(0x00, 0x00), /* 0x61: */ + ISP_FC_OPMAP(0x01, 0x01), /* 0x62: MBOX_INIT_LIP */ + ISP_FC_OPMAP(0xcd, 0x03), /* 0x63: MBOX_GET_FC_AL_POSITION_MAP */ + ISP_FC_OPMAP(0xcf, 0x01), /* 0x64: MBOX_GET_PORT_DB */ + ISP_FC_OPMAP(0x07, 0x01), /* 0x65: MBOX_CLEAR_ACA */ + ISP_FC_OPMAP(0x07, 0x01), /* 0x66: MBOX_TARGET_RESET */ + ISP_FC_OPMAP(0x07, 0x01), /* 0x67: MBOX_CLEAR_TASK_SET */ + ISP_FC_OPMAP(0x07, 0x01), /* 0x68: MBOX_ABORT_TASK_SET */ + ISP_FC_OPMAP(0x01, 0x07), /* 0x69: MBOX_GET_FW_STATE */ + ISP_FC_OPMAP(0x03, 0xcf), /* 0x6a: MBOX_GET_PORT_NAME */ + ISP_FC_OPMAP(0xcf, 0x01), /* 0x6b: MBOX_GET_LINK_STATUS */ + ISP_FC_OPMAP(0x0f, 0x01), /* 0x6c: MBOX_INIT_LIP_RESET */ + ISP_FC_OPMAP(0x00, 0x00), /* 0x6d: */ + ISP_FC_OPMAP(0xcf, 0x03), /* 0x6e: MBOX_SEND_SNS */ + ISP_FC_OPMAP(0x0f, 0x07), /* 0x6f: MBOX_FABRIC_LOGIN */ + ISP_FC_OPMAP(0x03, 0x01), /* 0x70: MBOX_SEND_CHANGE_REQUEST */ + ISP_FC_OPMAP(0x03, 0x03), /* 0x71: MBOX_FABRIC_LOGOUT */ + ISP_FC_OPMAP(0x0f, 0x0f), /* 0x72: MBOX_INIT_LIP_LOGIN */ + ISP_FC_OPMAP(0x00, 0x00), /* 0x73: */ + ISP_FC_OPMAP(0x07, 0x01), /* 0x74: LOGIN LOOP PORT */ + ISP_FC_OPMAP(0xcf, 0x03), /* 0x75: GET PORT/NODE NAME LIST */ + ISP_FC_OPMAP(0x4f, 0x01), /* 0x76: SET VENDOR ID */ + ISP_FC_OPMAP(0xcd, 0x01), /* 0x77: INITIALIZE IP MAILBOX */ + ISP_FC_OPMAP(0x00, 0x00), /* 0x78: */ + ISP_FC_OPMAP(0x00, 0x00), /* 0x79: */ + ISP_FC_OPMAP(0x00, 0x00), /* 0x7a: */ + ISP_FC_OPMAP(0x00, 0x00), /* 0x7b: */ + ISP_FC_OPMAP(0x4f, 0x03), /* 0x7c: Get ID List */ + ISP_FC_OPMAP(0xcf, 0x01), /* 0x7d: SEND LFA */ + ISP_FC_OPMAP(0x0f, 0x01) /* 0x7e: LUN RESET */ }; +#define MAX_FC_OPCODE 0x7e /* * Footnotes * @@ -7136,19 +7219,18 @@ static void isp_mboxcmd_qnw(ispsoftc_t *isp, mbreg_t *mbp, int nodelay) { unsigned int ibits, obits, box, opcode; - const uint32_t *mcp; - if (IS_FC(isp)) { - mcp = mbpfc; - } else { - mcp = mbpscsi; - } opcode = mbp->param[0]; - ibits = HIWRD(mcp[opcode]) & NMBOX_BMASK(isp); - obits = LOWRD(mcp[opcode]) & NMBOX_BMASK(isp); + if (IS_FC(isp)) { + ibits = ISP_FC_IBITS(opcode); + obits = ISP_FC_OBITS(opcode); + } else { + ibits = ISP_SCSI_IBITS(opcode); + obits = ISP_SCSI_OBITS(opcode); + } ibits |= mbp->ibits; obits |= mbp->obits; - for (box = 0; box < MAX_MAILBOX(isp); box++) { + for (box = 0; box < ISP_NMBOX(isp); box++) { if (ibits & (1 << box)) { ISP_WRITE(isp, MBOX_OFF(box), mbp->param[box]); } @@ -7181,26 +7263,27 @@ isp_mboxcmd(ispsoftc_t *isp, mbreg_t *mbp) { const char *cname, *xname; char tname[16], mname[16]; - unsigned int lim, ibits, obits, box, opcode; - const uint32_t *mcp; + unsigned int ibits, obits, box, opcode; + opcode = mbp->param[0]; if (IS_FC(isp)) { - mcp = mbpfc; - lim = (sizeof (mbpfc) / sizeof (mbpfc[0])); + if (opcode > MAX_FC_OPCODE) { + mbp->param[0] = MBOX_INVALID_COMMAND; + isp_prt(isp, ISP_LOGERR, "Unknown Command 0x%x", opcode); + return; + } + ibits = ISP_FC_IBITS(opcode); + obits = ISP_FC_OBITS(opcode); } else { - mcp = mbpscsi; - lim = (sizeof (mbpscsi) / sizeof (mbpscsi[0])); + if (opcode > MAX_SCSI_OPCODE) { + mbp->param[0] = MBOX_INVALID_COMMAND; + isp_prt(isp, ISP_LOGERR, "Unknown Command 0x%x", opcode); + return; + } + ibits = ISP_SCSI_IBITS(opcode); + obits = ISP_SCSI_OBITS(opcode); } - if ((opcode = mbp->param[0]) >= lim) { - mbp->param[0] = MBOX_INVALID_COMMAND; - isp_prt(isp, ISP_LOGERR, "Unknown Command 0x%x", opcode); - return; - } - - ibits = HIWRD(mcp[opcode]) & NMBOX_BMASK(isp); - obits = LOWRD(mcp[opcode]) & NMBOX_BMASK(isp); - /* * Pick up any additional bits that the caller might have set. */ @@ -7221,7 +7304,7 @@ isp_mboxcmd(ispsoftc_t *isp, mbreg_t *mbp) goto out; } - for (box = 0; box < MAX_MAILBOX(isp); box++) { + for (box = 0; box < ISP_NMBOX(isp); box++) { if (ibits & (1 << box)) { isp_prt(isp, ISP_LOGDEBUG3, "IN mbox %d = 0x%04x", box, mbp->param[box]); @@ -7264,7 +7347,7 @@ isp_mboxcmd(ispsoftc_t *isp, mbreg_t *mbp) /* * Copy back output registers. */ - for (box = 0; box < MAX_MAILBOX(isp); box++) { + for (box = 0; box < ISP_NMBOX(isp); box++) { if (obits & (1 << box)) { mbp->param[box] = isp->isp_mboxtmp[box]; isp_prt(isp, ISP_LOGDEBUG3, "OUT mbox %d = 0x%04x", box, @@ -7964,8 +8047,7 @@ isp_parse_nvram_1020(ispsoftc_t *isp, uint8_t *nvram_data) (ISP_NVRAM_FIFO_THRESHOLD_128(nvram_data) << 2); if ((isp->isp_confopts & ISP_CFG_OWNLOOPID) == 0) - sdp->isp_initiator_id = - ISP_NVRAM_INITIATOR_ID(nvram_data); + sdp->isp_initiator_id = ISP_NVRAM_INITIATOR_ID(nvram_data); sdp->isp_bus_reset_delay = ISP_NVRAM_BUS_RESET_DELAY(nvram_data); @@ -8076,8 +8158,7 @@ isp_parse_nvram_1080(ispsoftc_t *isp, int bus, uint8_t *nvram_data) ISP1080_NVRAM_FIFO_THRESHOLD(nvram_data); if ((isp->isp_confopts & ISP_CFG_OWNLOOPID) == 0) - sdp->isp_initiator_id = - ISP1080_NVRAM_INITIATOR_ID(nvram_data, bus); + sdp->isp_initiator_id = ISP1080_NVRAM_INITIATOR_ID(nvram_data, bus); sdp->isp_bus_reset_delay = ISP1080_NVRAM_BUS_RESET_DELAY(nvram_data, bus); @@ -8152,8 +8233,7 @@ isp_parse_nvram_12160(ispsoftc_t *isp, int bus, uint8_t *nvram_data) ISP12160_NVRAM_FIFO_THRESHOLD(nvram_data); if ((isp->isp_confopts & ISP_CFG_OWNLOOPID) == 0) - sdp->isp_initiator_id = - ISP12160_NVRAM_INITIATOR_ID(nvram_data, bus); + sdp->isp_initiator_id = ISP12160_NVRAM_INITIATOR_ID(nvram_data, bus); sdp->isp_bus_reset_delay = ISP12160_NVRAM_BUS_RESET_DELAY(nvram_data, bus); diff --git a/sys/dev/isp/isp_freebsd.h b/sys/dev/isp/isp_freebsd.h index 457f9f2908a1..52bd7870f167 100644 --- a/sys/dev/isp/isp_freebsd.h +++ b/sys/dev/isp/isp_freebsd.h @@ -153,6 +153,7 @@ struct isp_pcmd { bus_dmamap_t dmap; /* dma map for this command */ struct ispsoftc * isp; /* containing isp */ struct callout wdog; /* watchdog timer */ + uint8_t crn; /* command reference number */ }; #define ISP_PCMD(ccb) (ccb)->ccb_h.spriv_ptr1 #define PISP_PCMD(ccb) ((struct isp_pcmd *)ISP_PCMD(ccb)) @@ -201,6 +202,7 @@ struct isp_fc { struct proc * target_proc; #endif #endif + uint8_t crnseed; /* next command reference number */ }; struct isp_spi { @@ -263,7 +265,6 @@ struct isposinfo { #else : 2, #endif - forcemulti : 1, timer_active : 1, autoconf : 1, ehook_active : 1, @@ -316,6 +317,16 @@ struct isposinfo { ISP_FC_PC(isp, chan)-> tag = val; \ } +#define FCP_NEXT_CRN(isp, cmd, rslt, chan, tgt, lun) \ + if ((isp)->isp_osinfo.pc.fc[(chan)].crnseed == 0) { \ + (isp)->isp_osinfo.pc.fc[(chan)].crnseed = 1; \ + } \ + if (cmd) { \ + PISP_PCMD(cmd)->crn = (isp)->isp_osinfo.pc.fc[(chan)].crnseed; \ + } \ + (rslt) = (isp)->isp_osinfo.pc.fc[(chan)].crnseed++ + + #define isp_lock isp_osinfo.lock #define isp_bus_tag isp_osinfo.bus_tag #define isp_bus_handle isp_osinfo.bus_handle @@ -639,7 +650,6 @@ extern int isp_autoconfig; #define XS_CMD_C_WPEND(sccb) (sccb)->ccb_h.spriv_field0 &= ~ISP_SPRIV_WPEND #define XS_CMD_WPEND_P(sccb) ((sccb)->ccb_h.spriv_field0 & ISP_SPRIV_WPEND) - #define XS_CMD_S_CLEAR(sccb) (sccb)->ccb_h.spriv_field0 = 0 /* diff --git a/sys/dev/isp/isp_pci.c b/sys/dev/isp/isp_pci.c index 3764287ba5f8..1dc12ee2a7d8 100644 --- a/sys/dev/isp/isp_pci.c +++ b/sys/dev/isp/isp_pci.c @@ -496,11 +496,6 @@ isp_get_generic_options(device_t dev, ispsoftc_t *isp, int *nvp) tval = 7; (void) resource_int_value(device_get_name(dev), device_get_unit(dev), "quickboot_time", &tval); isp_quickboot_time = tval; - - tval = 0; - if (resource_int_value(device_get_name(dev), device_get_unit(dev), "forcemulti", &tval) == 0 && tval != 0) { - isp->isp_osinfo.forcemulti = 1; - } } static void @@ -865,7 +860,7 @@ isp_pci_attach(device_t dev) if (IS_SCSI(isp) && (ISP_SPI_PC(isp, 0)->def_role & ISP_ROLE_TARGET)) { snprintf(fwname, sizeof (fwname), "isp_%04x_it", did); isp->isp_osinfo.fw = firmware_get(fwname); - } else if (IS_24XX(isp) && (isp->isp_nchan > 1 || isp->isp_osinfo.forcemulti)) { + } else if (IS_24XX(isp)) { snprintf(fwname, sizeof (fwname), "isp_%04x_multi", did); isp->isp_osinfo.fw = firmware_get(fwname); } @@ -874,12 +869,12 @@ isp_pci_attach(device_t dev) isp->isp_osinfo.fw = firmware_get(fwname); } if (isp->isp_osinfo.fw != NULL) { + isp_prt(isp, ISP_LOGCONFIG, "loaded firmware %s", fwname); isp->isp_mdvec->dv_ispfw = isp->isp_osinfo.fw->data; } /* - * Make sure that SERR, PERR, WRITE INVALIDATE and BUSMASTER - * are set. + * Make sure that SERR, PERR, WRITE INVALIDATE and BUSMASTER are set. */ cmd |= PCIM_CMD_SEREN | PCIM_CMD_PERRESPEN | PCIM_CMD_BUSMASTEREN | PCIM_CMD_INVEN; @@ -903,7 +898,7 @@ isp_pci_attach(device_t dev) */ data = pci_read_config(dev, PCIR_CACHELNSZ, 1); if (data == 0 || (linesz != PCI_DFLT_LNSZ && data != linesz)) { - isp_prt(isp, ISP_LOGCONFIG, "set PCI line size to %d from %d", linesz, data); + isp_prt(isp, ISP_LOGDEBUG0, "set PCI line size to %d from %d", linesz, data); data = linesz; pci_write_config(dev, PCIR_CACHELNSZ, data, 1); } @@ -914,7 +909,7 @@ isp_pci_attach(device_t dev) data = pci_read_config(dev, PCIR_LATTIMER, 1); if (data < PCI_DFLT_LTNCY) { data = PCI_DFLT_LTNCY; - isp_prt(isp, ISP_LOGCONFIG, "set PCI latency to %d", data); + isp_prt(isp, ISP_LOGDEBUG0, "set PCI latency to %d", data); pci_write_config(dev, PCIR_LATTIMER, data, 1); } diff --git a/sys/dev/isp/ispmbox.h b/sys/dev/isp/ispmbox.h index 36a73913ac8f..6ceb0f75a8bb 100644 --- a/sys/dev/isp/ispmbox.h +++ b/sys/dev/isp/ispmbox.h @@ -847,8 +847,12 @@ typedef struct { #define ISP2400_FW_ATTR_SB2 0x0008 #define ISP2400_FW_ATTR_T10CRC 0x0010 #define ISP2400_FW_ATTR_VI 0x0020 +#define ISP2400_FW_ATTR_VP0 0x1000 #define ISP2400_FW_ATTR_EXPFW 0x2000 +#define ISP2400_FW_ATTR_EXTNDED 0x8000 +#define ISP_CAP_FCTAPE(isp) \ + (IS_24XX(isp)? 1 : (isp->isp_fwattr & ISP_FW_ATTR_FCTAPE)) #define ISP_CAP_TMODE(isp) \ (IS_24XX(isp)? 1 : (isp->isp_fwattr & ISP_FW_ATTR_TMODE)) #define ISP_CAP_SCCFW(isp) \ @@ -985,7 +989,9 @@ typedef struct { #define ICB2400_OPT1_FAIRNESS 0x00000002 #define ICB2400_OPT1_HARD_ADDRESS 0x00000001 +#define ICB2400_OPT2_TPRLIC 0x00004000 #define ICB2400_OPT2_FCTAPE 0x00001000 +#define ICB2400_OPT2_FCSP 0x00000800 #define ICB2400_OPT2_CLASS2_ACK0 0x00000200 #define ICB2400_OPT2_CLASS2 0x00000100 #define ICB2400_OPT2_NO_PLAY 0x00000080 @@ -993,8 +999,7 @@ typedef struct { #define ICB2400_OPT2_LOOP_ONLY 0x00000000 #define ICB2400_OPT2_PTP_ONLY 0x00000010 #define ICB2400_OPT2_LOOP_2_PTP 0x00000020 -#define ICB2400_OPT2_PTP_2_LOOP 0x00000030 -#define ICB2400_OPT2_TIMER_MASK 0x00000007 +#define ICB2400_OPT2_TIMER_MASK 0x0000000f #define ICB2400_OPT2_ZIO 0x00000005 #define ICB2400_OPT2_ZIO1 0x00000006 @@ -1137,7 +1142,9 @@ typedef struct { ICB2400_VPINFO_OFF + \ sizeof (isp_icb_2400_vpinfo_t) + ((chan - 1) * ICB2400_VPOPT_WRITE_SIZE) -#define ICB2400_VPGOPT_MID_DISABLE 0x02 +#define ICB2400_VPGOPT_FCA 0x01 /* Assume Clean Address bit in FLOGI ACC set (works only in static configurations) */ +#define ICB2400_VPGOPT_MID_DISABLE 0x02 /* when set, connection mode2 will work with NPIV-capable switched */ +#define ICB2400_VPGOPT_VP0_DECOUPLE 0x04 /* Allow VP0 decoupling if firmware supports it */ typedef struct { isphdr_t vp_ctrl_hdr; diff --git a/sys/dev/isp/ispreg.h b/sys/dev/isp/ispreg.h index 2d616aeb1807..3460d2496353 100644 --- a/sys/dev/isp/ispreg.h +++ b/sys/dev/isp/ispreg.h @@ -456,21 +456,16 @@ * 2300/2400: 32 MBOX registers */ #define MBOX_OFF(n) (MBOX_BLOCK + ((n) << 1)) -#define NMBOX(isp) \ - (((((isp)->isp_type & ISP_HA_SCSI) >= ISP_HA_SCSI_1040A) || \ - ((isp)->isp_type & ISP_HA_FC))? 12 : 6) -#define NMBOX_BMASK(isp) \ - (((((isp)->isp_type & ISP_HA_SCSI) >= ISP_HA_SCSI_1040A) || \ - ((isp)->isp_type & ISP_HA_FC))? 0xfff : 0x3f) - -#define MAX_MAILBOX(isp) ((IS_FC(isp))? 12 : 8) -#define MAILBOX_STORAGE 12 +#define ISP_NMBOX(isp) ((IS_24XX(isp) || IS_23XX(isp))? 32 : (IS_2200(isp) ? 24 : 8)) +#define ISP_NMBOX_BMASK(isp) \ + ((IS_24XX(isp) || IS_23XX(isp))? 0xffffffff : (IS_2200(isp)? 0x00ffffff : 0xff)) +#define MAX_MAILBOX 32 /* if timeout == 0, then default timeout is picked */ #define MBCMD_DEFAULT_TIMEOUT 100000 /* 100 ms */ typedef struct { - uint16_t param[MAILBOX_STORAGE]; - uint16_t ibits; - uint16_t obits; + uint16_t param[MAX_MAILBOX]; + uint32_t ibits; + uint32_t obits; uint32_t lineno : 16, : 12, diff --git a/sys/dev/isp/ispvar.h b/sys/dev/isp/ispvar.h index e00191a32553..17a2683dd808 100644 --- a/sys/dev/isp/ispvar.h +++ b/sys/dev/isp/ispvar.h @@ -448,8 +448,6 @@ typedef struct { typedef struct { uint32_t link_active : 1, - npiv_fabric : 1, - inorder : 1, sendmarker : 1, role : 2, isp_gbspeed : 4, @@ -469,6 +467,7 @@ typedef struct { uint16_t isp_sns_hdl; /* N-port handle for SNS */ uint16_t isp_lasthdl; /* only valid for channel 0 */ uint16_t isp_maxalloc; + uint16_t isp_fabric_params; uint8_t isp_retry_delay; uint8_t isp_retry_count; @@ -562,10 +561,12 @@ struct ispsoftc { */ void * isp_param; /* type specific */ + uint64_t isp_fwattr; /* firmware attributes */ uint16_t isp_fwrev[3]; /* Loaded F/W revision */ uint16_t isp_maxcmds; /* max possible I/O cmds */ uint8_t isp_type; /* HBA Chip Type */ uint8_t isp_revision; /* HBA Chip H/W Revision */ + uint16_t isp_nchan; /* number of channels */ uint32_t isp_maxluns; /* maximum luns supported */ uint32_t isp_clock : 8, /* input clock */ @@ -576,8 +577,6 @@ struct ispsoftc { isp_loaded_fw : 1, /* loaded firmware */ isp_dblev : 16; /* debug log mask */ - uint16_t isp_fwattr; /* firmware attributes */ - uint16_t isp_nchan; /* number of channels */ uint32_t isp_confopts; /* config options */ @@ -617,7 +616,7 @@ struct ispsoftc { volatile uint32_t isp_resodx; /* index of next result */ volatile uint32_t isp_obits; /* mailbox command output */ volatile uint32_t isp_serno; /* rolling serial number */ - volatile uint16_t isp_mboxtmp[MAILBOX_STORAGE]; + volatile uint16_t isp_mboxtmp[MAX_MAILBOX]; volatile uint16_t isp_lastmbxcmd; /* last mbox command sent */ volatile uint16_t isp_mbxwrk0; volatile uint16_t isp_mbxwrk1; @@ -695,6 +694,7 @@ struct ispsoftc { #define ISP_CFG_OWNLOOPID 0x800 /* override NVRAM loopid */ #define ISP_CFG_OWNEXCTHROTTLE 0x1000 /* override NVRAM execution throttle */ #define ISP_CFG_FOURGB 0x2000 /* force 4GB connection (24XX only) */ +#define ISP_CFG_EIGHTGB 0x4000 /* force 8GB connection (25XX only) */ /* * For each channel, the outer layers should know what role that channel @@ -1040,6 +1040,8 @@ void isp_prt_endcmd(ispsoftc_t *, XS_T *); * return -1 if you cannot * FC_SCRATCH_RELEASE(ispsoftc_t *, chan) acquire lock on FC scratch area * + * FCP_NEXT_CRN(ispsoftc_t *, XS_T *, rslt, channel, target, lun) generate the next command reference number. XS_T * may be null. + * * SCSI_GOOD SCSI 'Good' Status * SCSI_CHECK SCSI 'Check Condition' Status * SCSI_BUSY SCSI 'Busy' Status From 770284d80975bf808016d74028ab3c41d65d7ca2 Mon Sep 17 00:00:00 2001 From: Jilles Tjoelker Date: Sun, 17 Jun 2012 21:40:13 +0000 Subject: [PATCH 298/340] libc: Reduce relative relocations in strftime(). --- lib/libc/stdtime/strftime.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/libc/stdtime/strftime.c b/lib/libc/stdtime/strftime.c index d3571ad3621a..4ad0bc4352a9 100644 --- a/lib/libc/stdtime/strftime.c +++ b/lib/libc/stdtime/strftime.c @@ -67,7 +67,7 @@ extern char * tzname[]; #define PAD_SPACE 2 #define PAD_ZERO 3 -static const char* fmt_padding[][4] = { +static const char fmt_padding[][4][5] = { /* DEFAULT, LESS, SPACE, ZERO */ #define PAD_FMT_MONTHDAY 0 #define PAD_FMT_HMS 0 From 061b8865d125bb564cfc807b8348b684d2485ebc Mon Sep 17 00:00:00 2001 From: Matt Jacob Date: Sun, 17 Jun 2012 21:47:24 +0000 Subject: [PATCH 299/340] Roll to the latest 2400/2500 firmware available from the public QLogic website. Sponsored by: Spectralogic MFC after: 1 week --- sys/dev/ispfw/asm_2400.h | 46592 +++++++++++++++++++------------------ sys/dev/ispfw/asm_2500.h | 39499 +++++++++++++++---------------- 2 files changed, 43305 insertions(+), 42786 deletions(-) diff --git a/sys/dev/ispfw/asm_2400.h b/sys/dev/ispfw/asm_2400.h index e90578338b34..8891f472d4b0 100644 --- a/sys/dev/ispfw/asm_2400.h +++ b/sys/dev/ispfw/asm_2400.h @@ -24,29 +24,24 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -/************************************************************************ - * * - * ISP2400 Firmware * - * * - ************************************************************************/ -#ifdef ISP_2400 /* - * Firmware Version 5.04.00 (12:18 Jul 02, 2010) + * Firmware Version 5.05.00 (15:31 Dec 14, 2010) */ +#ifdef ISP_2400 static const uint32_t isp_2400_risc_code[] = { - 0x0401f195, 0x00110000, 0x00100000, 0x0000aebb, - 0x00000005, 0x00000004, 0x00000000, 0x00000482, + 0x0401f195, 0x00110000, 0x00100000, 0x0000afb1, + 0x00000005, 0x00000005, 0x00000000, 0x00008482, 0x00000003, 0x00000000, 0x20434f50, 0x59524947, 0x48542032, 0x30303720, 0x514c4f47, 0x49432043, 0x4f52504f, 0x52415449, 0x4f4e2020, 0x20495350, 0x32347878, 0x20466972, 0x6d776172, 0x65202020, - 0x56657273, 0x696f6e20, 0x2020352e, 0x30342e30, + 0x56657273, 0x696f6e20, 0x2020352e, 0x30352e30, 0x30202024, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x42001800, 0x0010014c, 0x42002000, 0x0010bcc7, + 0x42001800, 0x0010014c, 0x42002000, 0x0010bdc7, 0x500c0800, 0x800c1800, 0x500c1000, 0x800c1800, 0x54042000, 0x80102000, 0x80040800, 0x80081040, 0x040207fc, 0x500c0800, 0x800409c0, 0x040207f6, @@ -129,11 +124,11 @@ static const uint32_t isp_2400_risc_code[] = { 0x00006150, 0x00000010, 0x00006170, 0x00000010, 0x00006190, 0x00000010, 0x000061b0, 0x00000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00100000, 0x00100000, 0x0000aebb, + 0x00000000, 0x00100000, 0x00100000, 0x0000afb1, 0xffffffff, 0x00110004, 0x00020000, 0x00000b53, - 0xffffffff, 0x00110b57, 0x0010d600, 0x00001ab8, - 0xffffffff, 0x0011260f, 0x0000c000, 0x000007e8, - 0x00ffffff, 0x00112df7, 0x00008000, 0x000005de, + 0xffffffff, 0x00110b57, 0x0010d700, 0x00001ac0, + 0xffffffff, 0x00112617, 0x0000c000, 0x000007e8, + 0x00ffffff, 0x00112dff, 0x00008000, 0x000005e5, 0x00ffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x4203f000, 0x00021fff, 0x40000000, 0x4203e000, 0x90000100, 0x40000000, 0x42000800, @@ -141,11 +136,11 @@ static const uint32_t isp_2400_risc_code[] = { 0x00007023, 0x50000000, 0x8c000500, 0x04020003, 0x42000800, 0x00020000, 0x45780800, 0x80040800, 0x82040580, 0x00022000, 0x040207fc, 0x4178a000, - 0x4200a800, 0x0010aebb, 0x42000800, 0x0010d600, - 0x40540000, 0x8004b480, 0x0201f800, 0x0010adf8, + 0x4200a800, 0x0010afb1, 0x42000800, 0x0010d700, + 0x40540000, 0x8004b480, 0x0201f800, 0x0010aeeb, 0x0401fac9, 0x0401fa00, 0x4803c856, 0x42000000, 0x00001000, 0x50000000, 0x82000480, 0x24320002, - 0x0402000d, 0x0201f800, 0x0010ae33, 0x04000008, + 0x0402000d, 0x0201f800, 0x0010af26, 0x04000008, 0x42000800, 0x00007a17, 0x50040000, 0x8c00050e, 0x04020003, 0x8400054e, 0x44000800, 0x4a030000, 0x00000000, 0x4a03c020, 0x00000004, 0x4203e000, @@ -159,7 +154,7 @@ static const uint32_t isp_2400_risc_code[] = { 0x4817c857, 0x4853c857, 0x8050a1c0, 0x0400000f, 0x4c140000, 0x5814a801, 0x4857c857, 0x40500000, 0x80540480, 0x04000005, 0x5814b002, 0x485bc857, - 0x0201f800, 0x0010adef, 0x5c002800, 0x82142c00, + 0x0201f800, 0x0010aee2, 0x5c002800, 0x82142c00, 0x00000004, 0x0401f7ee, 0x42002800, 0x0010017d, 0x58140801, 0x4817c857, 0x4807c857, 0x800409c0, 0x04000018, 0x58142002, 0x4813c857, 0x58141003, @@ -168,9 +163,9 @@ static const uint32_t isp_2400_risc_code[] = { 0x4a03c020, 0x00004010, 0x4a03c011, 0x40100011, 0x04006000, 0x4203e000, 0x40000000, 0x4a03c017, 0x00000000, 0x4203e000, 0x30000001, 0x0401f000, - 0x4803c856, 0x0201f800, 0x0010d604, 0x0401faf6, - 0x4a03c014, 0x001c001c, 0x42002000, 0x0010f0b8, - 0x0201f800, 0x0010ae00, 0x42000000, 0x00001000, + 0x4803c856, 0x0201f800, 0x0010d704, 0x0401faf6, + 0x4a03c014, 0x001c001c, 0x42002000, 0x0010f1c0, + 0x0201f800, 0x0010aef3, 0x42000000, 0x00001000, 0x50000000, 0x82000480, 0x24220001, 0x04000906, 0x42000000, 0x00001000, 0x50000000, 0x82000480, 0x24320001, 0x04000900, 0x59c40000, 0x82000500, @@ -179,28 +174,28 @@ static const uint32_t isp_2400_risc_code[] = { 0x0401f00a, 0x59e00003, 0x82000500, 0x00030000, 0x82000580, 0x00010000, 0x04020004, 0x59a8006d, 0x84000542, 0x4803506d, 0x4c140000, 0x0201f800, - 0x0010a5ad, 0x5c002800, 0x42000800, 0x00001100, + 0x0010a6a0, 0x5c002800, 0x42000800, 0x00001100, 0x42001800, 0x00000100, 0x82141480, 0x0017ffff, 0x0402100d, 0x42000800, 0x00000900, 0x82141480, 0x0013ffff, 0x04021008, 0x42000800, 0x00000480, 0x42001800, 0x00000080, 0x82141480, 0x0011ffff, 0x040018d5, 0x4807500d, 0x480f5251, 0x42001000, - 0x00000024, 0x0201f800, 0x00105f4a, 0x82040c00, - 0x0010f584, 0x4807500b, 0x4a03c810, 0x00100000, - 0x4a03c811, 0x0010aebb, 0x4a03c812, 0x0010d600, - 0x4a03c813, 0x0010f0b7, 0x4a03c829, 0x00000004, + 0x00000024, 0x0201f800, 0x00105fef, 0x82040c00, + 0x0010f694, 0x4807500b, 0x4a03c810, 0x00100000, + 0x4a03c811, 0x0010afb1, 0x4a03c812, 0x0010d700, + 0x4a03c813, 0x0010f1bf, 0x4a03c829, 0x00000004, 0x59e40001, 0x82000540, 0x0003403f, 0x4803c801, 0x42001000, 0x0000001c, 0x0401f9f0, 0x4202c000, - 0x0010f584, 0x59aab00b, 0x59aaa00b, 0x59aaa80b, + 0x0010f694, 0x59aab00b, 0x59aaa00b, 0x59aaa80b, 0x59aac80d, 0x49675050, 0x59a8000b, 0x4803500c, - 0x0201f800, 0x001070a4, 0x0401fac4, 0x0401fb14, - 0x0201f800, 0x001017f8, 0x0201f800, 0x001010e9, - 0x0401fbdb, 0x0201f800, 0x00100ca4, 0x0201f800, - 0x00105f8a, 0x0401f85c, 0x0201f800, 0x00101c0a, - 0x0201f800, 0x00104b8f, 0x0201f800, 0x001044a6, - 0x0201f800, 0x00105a28, 0x0201f800, 0x00105729, - 0x0201f800, 0x0010118e, 0x0201f800, 0x00100ff1, - 0x4203e000, 0xf0000001, 0x0201f800, 0x0010ae4f, + 0x0201f800, 0x00107133, 0x0401fac4, 0x0401fb14, + 0x0201f800, 0x001017f9, 0x0201f800, 0x001010ea, + 0x0401fbdb, 0x0201f800, 0x00100ca5, 0x0201f800, + 0x0010602f, 0x0401f85c, 0x0201f800, 0x00101c0f, + 0x0201f800, 0x00104bce, 0x0201f800, 0x001044e5, + 0x0201f800, 0x00105acd, 0x0201f800, 0x001057ce, + 0x0201f800, 0x0010118f, 0x0201f800, 0x00100ff2, + 0x4203e000, 0xf0000001, 0x0201f800, 0x0010af45, 0x4a03c018, 0x00000000, 0x4203e000, 0x20000511, 0x4203e000, 0x50010000, 0x4a03c020, 0x00000000, 0x04027010, 0x59e00020, 0x82000580, 0x00000002, @@ -212,25 +207,25 @@ static const uint32_t isp_2400_risc_code[] = { 0x4df00000, 0x4203e000, 0x50000000, 0x416c0000, 0x82000c80, 0x00000008, 0x0402186b, 0x0c01f804, 0x5c03e000, 0x0201f000, 0x00020008, 0x001002d0, - 0x0010eeff, 0x0010ee47, 0x001002cf, 0x0010ee13, + 0x0010f007, 0x0010ef4c, 0x001002cf, 0x0010ef18, 0x001002cf, 0x001002cf, 0x001002e2, 0x0401f85e, - 0x42000800, 0x0010b7fa, 0x5804001e, 0x8c000500, + 0x42000800, 0x0010b8fa, 0x5804001e, 0x8c000500, 0x0400000d, 0x84000500, 0x4800081e, 0x4202d800, 0x00000004, 0x0401f97b, 0x49f3c857, 0x5c000800, 0x5c000000, 0x82000540, 0x00003e00, 0x4c000000, 0x4c040000, 0x1c01f000, 0x4a038805, 0x000000f0, 0x1c01f000, 0x4a035048, 0x00000005, 0x4a035049, - 0x00000004, 0x4a03504a, 0x00000000, 0x4a03504b, - 0x00000482, 0x0201f800, 0x00104b59, 0x4a03541b, + 0x00000005, 0x4a03504a, 0x00000000, 0x4a03504b, + 0x00008482, 0x0201f800, 0x00104b98, 0x4a03541b, 0x0000ffff, 0x4a03500f, 0x00ffffff, 0x0201f800, - 0x00108bc4, 0x4a03501f, 0x20200000, 0x4a035020, + 0x00108c7d, 0x4a03501f, 0x20200000, 0x4a035020, 0x88000200, 0x4a035021, 0x00ff001f, 0x4a035022, 0x000007d0, 0x4a035023, 0x80000000, 0x4a035024, 0x00000200, 0x4a035025, 0x00ff0000, 0x4a035026, 0x00010000, 0x4a03502d, 0x514c4f47, 0x4a03502e, 0x49432020, 0x1c01f000, 0x4d440000, 0x417a8800, 0x4c5c0000, 0x4178b800, 0x0201f800, 0x00020319, - 0x04020005, 0x0201f800, 0x00104165, 0x04020002, + 0x04020005, 0x0201f800, 0x00104181, 0x04020002, 0x805cb800, 0x81468800, 0x83440580, 0x000007f0, 0x040207f6, 0x405c0800, 0x5c00b800, 0x5c028800, 0x1c01f000, 0x4803c857, 0x5c000000, 0x4c000000, @@ -241,7 +236,7 @@ static const uint32_t isp_2400_risc_code[] = { 0x4200b800, 0x00008002, 0x04006000, 0x4c000000, 0x4c040000, 0x59bc00ea, 0x4803c857, 0x82000500, 0x00000007, 0x82000580, 0x00000001, 0x04020005, - 0x42000800, 0x00000000, 0x0201f800, 0x00106126, + 0x42000800, 0x00000000, 0x0201f800, 0x001061cb, 0x59b800ea, 0x4803c857, 0x4a0370e8, 0x00000004, 0x5c000800, 0x4807c025, 0x80040920, 0x4807c026, 0x5c000000, 0x4803c023, 0x80000120, 0x4803c024, @@ -249,8 +244,8 @@ static const uint32_t isp_2400_risc_code[] = { 0x4803c022, 0x41f80000, 0x4803c029, 0x80000120, 0x4803c02a, 0x42000000, 0x00001000, 0x50000000, 0x82000480, 0x24320001, 0x4803c857, 0x0400104b, - 0x0201f800, 0x0010ae33, 0x04000046, 0x42000800, - 0x0010c526, 0x46000800, 0xfaceface, 0x80040800, + 0x0201f800, 0x0010af26, 0x04000046, 0x42000800, + 0x0010c626, 0x46000800, 0xfaceface, 0x80040800, 0x4c080000, 0x4c0c0000, 0x42001000, 0x00007a00, 0x58080013, 0x44000800, 0x80040800, 0x58080019, 0x44000800, 0x80040800, 0x5808001a, 0x44000800, @@ -273,29 +268,29 @@ static const uint32_t isp_2400_risc_code[] = { 0x00000000, 0x4203e000, 0x30000001, 0x0401f847, 0x0401f7ff, 0x42000000, 0x00000004, 0x0401f80c, 0x4a03c855, 0x0001eb5a, 0x59e40001, 0x82000540, - 0x00000700, 0x4803c801, 0x42000000, 0x0010bcb1, + 0x00000700, 0x4803c801, 0x42000000, 0x0010bdb1, 0x49780003, 0x49780004, 0x1c01f000, 0x42000800, - 0x0010bcb3, 0x44000800, 0x59e40801, 0x82041500, + 0x0010bdb3, 0x44000800, 0x59e40801, 0x82041500, 0xfff3c0ff, 0x480bc801, 0x8c040d24, 0x0400000c, 0x4c000000, 0x59e41052, 0x59e40054, 0x800000d4, - 0x82000400, 0x0010c542, 0x80081480, 0x480bc853, + 0x82000400, 0x0010c642, 0x80081480, 0x480bc853, 0x4a03c800, 0x00000040, 0x5c000000, 0x4a03c850, - 0x0010c542, 0x800000d4, 0x82002400, 0x0010c541, + 0x0010c642, 0x800000d4, 0x82002400, 0x0010c641, 0x4813c851, 0x4a03c853, 0x00000400, 0x42000000, - 0x0010c542, 0x82001400, 0x00001000, 0x45780000, + 0x0010c642, 0x82001400, 0x00001000, 0x45780000, 0x80000000, 0x80081d80, 0x040207fd, 0x4807c801, - 0x1c01f000, 0x42002000, 0x0010bcb1, 0x59e41801, + 0x1c01f000, 0x42002000, 0x0010bdb1, 0x59e41801, 0x58100c01, 0x82040500, 0x00003800, 0x820c1d00, 0xffffc7ff, 0x800c1d40, 0x480fc801, 0x1c01f000, 0x5c036000, 0x4db00000, 0x49b3c857, 0x4803c857, 0x1c01f000, 0x1c01f000, 0x59a80059, 0x8c000530, 0x040207fe, 0x4c080000, 0x42001000, 0x00000004, 0x0401f862, 0x5c001000, 0x4201d000, 0x00028b0a, - 0x0201f800, 0x0010592d, 0x4c080000, 0x42001000, + 0x0201f800, 0x001059d2, 0x4c080000, 0x42001000, 0x00000008, 0x0401f859, 0x5c001000, 0x4201d000, - 0x00028b0a, 0x0201f800, 0x0010592d, 0x4c080000, + 0x00028b0a, 0x0201f800, 0x001059d2, 0x4c080000, 0x42001000, 0x00000010, 0x0401f850, 0x5c001000, - 0x4201d000, 0x00028b0a, 0x0201f800, 0x0010592d, + 0x4201d000, 0x00028b0a, 0x0201f800, 0x001059d2, 0x0401f7e2, 0x8c00050c, 0x59a80859, 0x04020003, 0x84040d30, 0x0401f006, 0x84040d70, 0x48075059, 0x42001000, 0x00000000, 0x0401f040, 0x48075059, @@ -334,8 +329,8 @@ static const uint32_t isp_2400_risc_code[] = { 0x41792800, 0x41793000, 0x41793800, 0x41794000, 0x41794800, 0x41795000, 0x41795800, 0x41796000, 0x41796800, 0x41797000, 0x41797800, 0x41798000, - 0x41798800, 0x42019000, 0x0010b889, 0x42019800, - 0x0010b860, 0x4179a000, 0x4179a800, 0x4179b000, + 0x41798800, 0x42019000, 0x0010b989, 0x42019800, + 0x0010b960, 0x4179a000, 0x4179a800, 0x4179b000, 0x4179b800, 0x4179c800, 0x4179c000, 0x4179d000, 0x4179d800, 0x4179e000, 0x4179e800, 0x4179f000, 0x4179f800, 0x417a0000, 0x417a0800, 0x417a1000, @@ -344,17 +339,17 @@ static const uint32_t isp_2400_risc_code[] = { 0x417a5000, 0x417a5800, 0x417a6000, 0x417a6800, 0x417a7000, 0x417a7800, 0x417a8000, 0x417a8800, 0x417a9000, 0x417a9800, 0x417ae800, 0x417af800, - 0x42030000, 0x00007c00, 0x42031000, 0x0010bb5a, + 0x42030000, 0x00007c00, 0x42031000, 0x0010bc5a, 0x42031800, 0x0000bf1d, 0x42032000, 0x0000bf32, - 0x42032800, 0x0010bb22, 0x42033000, 0x00020b5d, - 0x42034000, 0x0010b7fa, 0x42033800, 0x0010b819, - 0x42034800, 0x0010b898, 0x42035000, 0x0010b780, - 0x42035800, 0x0010af80, 0x42030800, 0x0010b85b, + 0x42032800, 0x0010bc22, 0x42033000, 0x00020b5d, + 0x42034000, 0x0010b8fa, 0x42033800, 0x0010b919, + 0x42034800, 0x0010b998, 0x42035000, 0x0010b880, + 0x42035800, 0x0010b080, 0x42030800, 0x0010b95b, 0x417b6000, 0x42036800, 0x00006f00, 0x4203c800, 0x00003000, 0x42037000, 0x0000ff00, 0x42037800, 0x0000bf00, 0x42038000, 0x00007700, 0x42038800, 0x00004000, 0x42039000, 0x00006000, 0x42039800, - 0x0010c25e, 0x4203a000, 0x00007600, 0x4203a800, + 0x0010c35e, 0x4203a000, 0x00007600, 0x4203a800, 0x00007400, 0x4203b000, 0x00007200, 0x4203b800, 0x00007100, 0x4203c000, 0x00007000, 0x4203d000, 0x00000000, 0x4203e800, 0x0002018e, 0x417bd800, @@ -379,13 +374,13 @@ static const uint32_t isp_2400_risc_code[] = { 0x412d8800, 0x1c01f000, 0x835c0480, 0x00000020, 0x0400100a, 0x496bc857, 0x815eb840, 0x416a5800, 0x592ed000, 0x497a5800, 0x497a5801, 0x497a5805, - 0x812e59c0, 0x1c01f000, 0x42000000, 0x0010bc0f, - 0x0201f800, 0x0010ad1d, 0x417a5800, 0x0401f7f9, + 0x812e59c0, 0x1c01f000, 0x42000000, 0x0010bd0f, + 0x0201f800, 0x0010ae10, 0x417a5800, 0x0401f7f9, 0x0401f803, 0x412d8800, 0x1c01f000, 0x815eb840, 0x04001009, 0x416a5800, 0x492fc857, 0x592ed000, 0x497a5800, 0x497a5801, 0x497a5805, 0x812e59c0, - 0x1c01f000, 0x42000000, 0x0010bc0f, 0x0201f800, - 0x0010ad1d, 0x417ab800, 0x417a5800, 0x0401f7f8, + 0x1c01f000, 0x42000000, 0x0010bd0f, 0x0201f800, + 0x0010ae10, 0x417ab800, 0x417a5800, 0x0401f7f8, 0x492fc857, 0x496a5800, 0x412ed000, 0x815eb800, 0x59c80000, 0x82000540, 0x00001200, 0x48039000, 0x1c01f000, 0x492fc857, 0x812e59c0, 0x04000007, @@ -403,26 +398,26 @@ static const uint32_t isp_2400_risc_code[] = { 0x00000020, 0x497bb807, 0x8058b040, 0x040207fe, 0x4a03b805, 0x30000000, 0x59dc0006, 0x4a03b805, 0x60000001, 0x4803c856, 0x0401ff98, 0x04000d6a, - 0x42001000, 0x0010bb55, 0x452c1000, 0x4a025801, + 0x42001000, 0x0010bc55, 0x452c1000, 0x4a025801, 0x00000001, 0x4a025802, 0x00000100, 0x4a025808, - 0x00106784, 0x497a5809, 0x497a580a, 0x497a580b, - 0x0401ff8a, 0x04000d5c, 0x42001000, 0x0010bb56, + 0x00106826, 0x497a5809, 0x497a580a, 0x497a580b, + 0x0401ff8a, 0x04000d5c, 0x42001000, 0x0010bc56, 0x452c1000, 0x4a025801, 0x00000000, 0x4a025802, - 0x00000100, 0x4a025808, 0x00100f2e, 0x497a5803, + 0x00000100, 0x4a025808, 0x00100f2f, 0x497a5803, 0x497a5806, 0x497a5807, 0x497a5809, 0x59a8006d, 0x8c000500, 0x04000006, 0x4a03b805, 0xe0000001, 0x59dc0006, 0x8c000522, 0x040007fc, 0x1c01f000, 0x40681000, 0x0201f800, 0x00020016, 0x1c01f000, - 0x42001000, 0x00020026, 0x0201f800, 0x001057d8, - 0x0201f800, 0x00108cab, 0x0201f800, 0x0010a24b, + 0x42001000, 0x00020026, 0x0201f800, 0x0010587d, + 0x0201f800, 0x00108d64, 0x0201f800, 0x0010a32a, 0x04000014, 0x4a03b805, 0x30000002, 0x59dc0006, 0x4807b800, 0x480bb801, 0x42007000, 0x00020b54, 0x4a007002, 0x00000040, 0x480c7008, 0x58380007, 0x82000400, 0x00000005, 0x48007003, 0x4a007000, 0x00000003, 0x4803b803, 0x0201f000, 0x00020050, - 0x42000000, 0x0010bb77, 0x0201f800, 0x0010ad1d, - 0x0201f800, 0x00108cc3, 0x42000800, 0x00000001, - 0x42001000, 0x00020026, 0x0201f800, 0x001057b1, + 0x42000000, 0x0010bc77, 0x0201f800, 0x0010ae10, + 0x0201f800, 0x00108d7c, 0x42000800, 0x00000001, + 0x42001000, 0x00020026, 0x0201f800, 0x00105856, 0x42007000, 0x00020b54, 0x0201f000, 0x00020030, 0x58380802, 0x42001000, 0x0000ff00, 0x82040480, 0x0000ff00, 0x04021003, 0x40041000, 0x80000580, @@ -442,7 +437,7 @@ static const uint32_t isp_2400_risc_code[] = { 0x04000003, 0x48107005, 0x0401f008, 0x49787005, 0x49787004, 0x0401f005, 0x48101800, 0x801021c0, 0x04020002, 0x480c7004, 0x1c01f000, 0x4803c856, - 0x4dc00000, 0x42007000, 0x0010bb58, 0x4a007400, + 0x4dc00000, 0x42007000, 0x0010bc58, 0x4a007400, 0x00000000, 0x49787001, 0x42038000, 0x00007720, 0x4a038006, 0x60000001, 0x4a038009, 0xf4f60000, 0x42038000, 0x00007700, 0x4a038006, 0x60000001, @@ -458,7 +453,7 @@ static const uint32_t isp_2400_risc_code[] = { 0x4a038807, 0x00000004, 0x4a0370e5, 0x00080000, 0x59b800ea, 0x8c000510, 0x04000004, 0x59b800e0, 0x0401f879, 0x0401f7fb, 0x42038000, 0x00007720, - 0x0201f800, 0x00100c06, 0x59c00007, 0x4a038006, + 0x0201f800, 0x00100c07, 0x59c00007, 0x4a038006, 0x20000000, 0x59c00007, 0x4a038006, 0x8000000a, 0x59c00007, 0x4a038006, 0x8000000b, 0x59c00007, 0x4a038006, 0x40000001, 0x83c00580, 0x00007700, @@ -469,16 +464,16 @@ static const uint32_t isp_2400_risc_code[] = { 0x83c00580, 0x00007700, 0x04000004, 0x42038000, 0x00007700, 0x0401f7f1, 0x4178a000, 0x805cb9c0, 0x0402001d, 0x4200b000, 0x00000020, 0x83b8ac00, - 0x00000020, 0x0201f800, 0x0010adf8, 0x4a0370fb, - 0x00000001, 0x4a037020, 0x00100e39, 0x59a8002c, + 0x00000020, 0x0201f800, 0x0010aeeb, 0x4a0370fb, + 0x00000001, 0x4a037020, 0x00100e3a, 0x59a8002c, 0x82000500, 0x0000ffff, 0x48037021, 0x4a037035, - 0x0010c1a4, 0x4a037030, 0x0010b78f, 0x4a037031, - 0x0010af80, 0x4a037032, 0x0010b86b, 0x4a037036, - 0x0010b876, 0x59840002, 0x48037034, 0x4a037038, - 0x00100e30, 0x4a0370fb, 0x00000001, 0x4200b000, + 0x0010c2a4, 0x4a037030, 0x0010b88f, 0x4a037031, + 0x0010b080, 0x4a037032, 0x0010b96b, 0x4a037036, + 0x0010b976, 0x59840002, 0x48037034, 0x4a037038, + 0x00100e31, 0x4a0370fb, 0x00000001, 0x4200b000, 0x00000020, 0x83b8ac00, 0x00000000, 0x0201f800, - 0x0010adf8, 0x4200b000, 0x00000040, 0x83b8ac00, - 0x00000040, 0x0201f800, 0x0010adf8, 0x805cb9c0, + 0x0010aeeb, 0x4200b000, 0x00000040, 0x83b8ac00, + 0x00000040, 0x0201f800, 0x0010aeeb, 0x805cb9c0, 0x04020004, 0x4a0370e4, 0xaaaaaaaa, 0x0401f003, 0x4a0370e4, 0xa2aa2a82, 0x4a0370e5, 0xaaaaaaaa, 0x4a0370e6, 0xaaaaaaaa, 0x4a0370fb, 0x00000000, @@ -490,7 +485,7 @@ static const uint32_t isp_2400_risc_code[] = { 0x1c01f000, 0x4d300000, 0x4d380000, 0x40026000, 0x82000500, 0x7f000000, 0x82000580, 0x60000000, 0x04020012, 0x83326500, 0x00ffffff, 0x0201f800, - 0x001091d9, 0x0402000d, 0x59300203, 0x82000580, + 0x00109291, 0x0402000d, 0x59300203, 0x82000580, 0x00000004, 0x04020009, 0x59300c07, 0x82040580, 0x00000009, 0x04020005, 0x42027000, 0x00000047, 0x0201f800, 0x00020a34, 0x5c027000, 0x5c026000, @@ -498,3725 +493,3732 @@ static const uint32_t isp_2400_risc_code[] = { 0x4d400000, 0x4cfc0000, 0x4d380000, 0x4d3c0000, 0x4d440000, 0x4d4c0000, 0x4d480000, 0x4c5c0000, 0x4c600000, 0x4c640000, 0x4d040000, 0x4cc80000, - 0x4ccc0000, 0x4cf40000, 0x4cf80000, 0x4cfc0000, - 0x0201f800, 0x00020095, 0x5c01f800, 0x5c01f000, - 0x5c01e800, 0x5c019800, 0x5c019000, 0x5c020800, - 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x5c029000, - 0x5c029800, 0x5c028800, 0x5c027800, 0x5c027000, - 0x5c01f800, 0x5c028000, 0x5c026800, 0x5c025800, - 0x5c026000, 0x1c01f000, 0x493bc857, 0x0201f000, - 0x000200bc, 0x83300500, 0x000000ff, 0x82000c80, - 0x00000007, 0x02021800, 0x0010032d, 0x0c01f025, - 0x1c01f000, 0x82000d00, 0xc0000038, 0x02020800, - 0x00100322, 0x0201f800, 0x0010032d, 0x00000000, - 0x00000048, 0x00000054, 0x00000053, 0x00100786, - 0x001007aa, 0x001007a5, 0x001007c9, 0x00100791, - 0x0010079d, 0x00100786, 0x001007c4, 0x00100810, - 0x00100786, 0x00100813, 0x00100786, 0x00100786, - 0x00100816, 0x0010081c, 0x00100839, 0x0010084e, - 0x00100786, 0x00100857, 0x00100863, 0x00100786, - 0x00100786, 0x00100786, 0x0201f800, 0x0010032d, - 0x0010078f, 0x001008fa, 0x001007d6, 0x001007ff, - 0x0010078f, 0x0010078f, 0x0010078f, 0x0201f800, - 0x0010032d, 0x4803c856, 0x59300004, 0x8c00053e, - 0x04020005, 0x42027000, 0x00000055, 0x0201f000, - 0x00020a34, 0x0201f800, 0x0010644d, 0x040007fa, - 0x1c01f000, 0x4803c856, 0x0401f8c7, 0x40002800, - 0x41782000, 0x42027000, 0x00000056, 0x0201f000, - 0x00020a34, 0x4803c856, 0x42027000, 0x00000057, - 0x0201f000, 0x00020a34, 0x4803c856, 0x59325809, - 0x812e59c0, 0x04000016, 0x59300008, 0x8c00051a, - 0x0402000d, 0x592c0409, 0x8c00051c, 0x04020003, - 0x4a026012, 0xffffffff, 0x59300004, 0x8c00053e, - 0x04020008, 0x42027000, 0x00000048, 0x0201f000, - 0x00020a34, 0x4a025a07, 0x00000007, 0x0401f7f5, - 0x0201f800, 0x0010644d, 0x040007f7, 0x1c01f000, - 0x4803c856, 0x83300500, 0x00ffffff, 0x0201f000, - 0x00105d72, 0x1c01f000, 0x4c040000, 0x59b808ea, - 0x82040d00, 0x00000007, 0x82040580, 0x00000003, - 0x04000004, 0x42000000, 0x60000000, 0x0401f8c6, - 0x5c000800, 0x1c01f000, 0x0401f914, 0x0400001b, - 0x59325809, 0x812e59c0, 0x04000018, 0x592c0205, - 0x82000500, 0x000000ff, 0x82000d80, 0x00000029, - 0x04020012, 0x59300203, 0x82000580, 0x00000003, - 0x0400000b, 0x59300808, 0x84040d26, 0x48066008, - 0x0201f800, 0x00020111, 0x4a03900d, 0x00000040, - 0x4a0370e5, 0x00000008, 0x1c01f000, 0x0201f800, - 0x0010644d, 0x040007f4, 0x42000000, 0x0010bc15, - 0x0201f800, 0x0010ad1d, 0x5988014a, 0x80000000, - 0x4803114a, 0x4a03900d, 0x00000040, 0x42000000, - 0xc0000000, 0x0201f000, 0x00020105, 0x4c5c0000, - 0x4c600000, 0x4c640000, 0x4200c800, 0x0010c1ab, - 0x4200b800, 0x00003000, 0x4200c000, 0x00000105, - 0x0201f800, 0x001055e9, 0x4a0370e4, 0x02000000, - 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x1c01f000, - 0x4933c857, 0x0201f000, 0x00020a10, 0x4933c857, - 0x0401fbfa, 0x1c01f000, 0x41300800, 0x800409c0, - 0x02020800, 0x0010032d, 0x0201f800, 0x00100322, - 0x42000000, 0x0010bc15, 0x0201f800, 0x0010ad1d, - 0x4933c857, 0x813261c0, 0x02000800, 0x0010032d, - 0x0401f841, 0x40002800, 0x0201f800, 0x0010ac86, - 0x4c140000, 0x59a8006a, 0x80000540, 0x04000004, - 0x8c142d2a, 0x04000002, 0x0401fbe0, 0x5c002800, - 0x0401f8ae, 0x04000007, 0x5932680a, 0x59340200, - 0x8c00050e, 0x59300415, 0x02020800, 0x00108b7a, - 0x1c01f000, 0x42000000, 0x0010bc15, 0x0201f800, - 0x0010ad1d, 0x4933c857, 0x813261c0, 0x02000800, - 0x0010032d, 0x0401f89d, 0x0400000b, 0x0201f800, - 0x0010889a, 0x04000008, 0x59325809, 0x592c0209, - 0x8400054e, 0x48025a09, 0x417a7800, 0x0201f800, - 0x00108487, 0x1c01f000, 0x485fc857, 0x5c000000, - 0x4d780000, 0x4203e000, 0x50000000, 0x4200b800, - 0x00008005, 0x0201f000, 0x00100332, 0x4933c857, - 0x83300480, 0x00000020, 0x02021800, 0x0010032d, - 0x83300c00, 0x0010bc88, 0x50040000, 0x80000000, - 0x04001002, 0x44000800, 0x1c01f000, 0x4933c857, - 0x0401f7f4, 0x4807c856, 0x59b800ea, 0x8c000510, - 0x040007fd, 0x59b800e0, 0x4803c857, 0x1c01f000, - 0x4803c856, 0x42000000, 0x10000000, 0x41300800, - 0x0401f029, 0x8c000510, 0x02000000, 0x0002010b, - 0x4c040000, 0x0401f80b, 0x5c000800, 0x82100480, - 0x00000008, 0x02001000, 0x0002010b, 0x4c040000, - 0x0401feb5, 0x5c000800, 0x0201f000, 0x0002010b, - 0x59b800e2, 0x59b820e2, 0x80100580, 0x040207fd, - 0x80102114, 0x0401f001, 0x40101800, 0x800c190a, - 0x82100500, 0x0000001f, 0x820c1d00, 0x0000001f, - 0x800c2480, 0x82102500, 0x0000001f, 0x1c01f000, - 0x40680000, 0x406c0800, 0x0401f807, 0x42018800, - 0x00000001, 0x04020003, 0x42018800, 0x00000000, - 0x1c01f000, 0x82000500, 0xf0000000, 0x82040d00, - 0x0fffffff, 0x80040d40, 0x4807c857, 0x42001000, - 0x0010bb59, 0x50080000, 0x80000540, 0x04020005, - 0x4a0370e5, 0x00000003, 0x4a0370e4, 0x00000300, - 0x80000000, 0x44001000, 0x42001000, 0x00000400, - 0x59b800ea, 0x8c000510, 0x0400000c, 0x0401ffd1, - 0x82100480, 0x00000008, 0x04001007, 0x4c040000, - 0x4c080000, 0x0401fe7c, 0x5c001000, 0x5c000800, - 0x0401f020, 0x59b800ea, 0x8c000516, 0x0402001d, - 0x4a0370e4, 0x00300000, 0x480770e1, 0x42001000, - 0x0000ff00, 0x80081040, 0x04000012, 0x59b808e4, - 0x8c040d28, 0x040207fc, 0x42001000, 0x0010bb59, - 0x50080000, 0x80000040, 0x04020005, 0x4a0370e5, - 0x00000002, 0x4a0370e4, 0x00000200, 0x02001800, - 0x0010032d, 0x44001000, 0x8c040d2c, 0x1c01f000, + 0x4ccc0000, 0x4cf40000, 0x4cf80000, 0x0201f800, + 0x00020095, 0x5c01f000, 0x5c01e800, 0x5c019800, + 0x5c019000, 0x5c020800, 0x5c00c800, 0x5c00c000, + 0x5c00b800, 0x5c029000, 0x5c029800, 0x5c028800, + 0x5c027800, 0x5c027000, 0x5c01f800, 0x5c028000, + 0x5c026800, 0x5c025800, 0x5c026000, 0x1c01f000, + 0x493bc857, 0x0201f000, 0x000200bc, 0x83300500, + 0x000000ff, 0x82000c80, 0x00000007, 0x02021800, + 0x0010032d, 0x0c01f025, 0x1c01f000, 0x82000d00, + 0xc0000038, 0x02020800, 0x00100322, 0x0201f800, + 0x0010032d, 0x00000000, 0x00000048, 0x00000054, + 0x00000053, 0x00100784, 0x001007a8, 0x001007a3, + 0x001007c7, 0x0010078f, 0x0010079b, 0x00100784, + 0x001007c2, 0x0010080e, 0x00100784, 0x00100811, + 0x00100784, 0x00100784, 0x00100814, 0x0010081a, + 0x00100837, 0x0010084c, 0x00100784, 0x00100855, + 0x00100861, 0x00100784, 0x00100784, 0x00100784, + 0x0201f800, 0x0010032d, 0x0010078d, 0x001008f8, + 0x001007d4, 0x001007fd, 0x0010078d, 0x0010078d, + 0x0010078d, 0x0201f800, 0x0010032d, 0x4803c856, + 0x59300004, 0x8c00053e, 0x04020005, 0x42027000, + 0x00000055, 0x0201f000, 0x00020a34, 0x0201f800, + 0x001064f2, 0x040007fa, 0x1c01f000, 0x4803c856, + 0x0401f8c7, 0x40002800, 0x41782000, 0x42027000, + 0x00000056, 0x0201f000, 0x00020a34, 0x4803c856, + 0x42027000, 0x00000057, 0x0201f000, 0x00020a34, + 0x4803c856, 0x59325809, 0x812e59c0, 0x04000016, + 0x59300008, 0x8c00051a, 0x0402000d, 0x592c0409, + 0x8c00051c, 0x04020003, 0x4a026012, 0xffffffff, + 0x59300004, 0x8c00053e, 0x04020008, 0x42027000, + 0x00000048, 0x0201f000, 0x00020a34, 0x4a025a07, + 0x00000007, 0x0401f7f5, 0x0201f800, 0x001064f2, + 0x040007f7, 0x1c01f000, 0x4803c856, 0x83300500, + 0x00ffffff, 0x0201f000, 0x00105e17, 0x1c01f000, + 0x4c040000, 0x59b808ea, 0x82040d00, 0x00000007, + 0x82040580, 0x00000003, 0x04000004, 0x42000000, + 0x60000000, 0x0401f8c6, 0x5c000800, 0x1c01f000, + 0x0401f914, 0x0400001b, 0x59325809, 0x812e59c0, + 0x04000018, 0x592c0205, 0x82000500, 0x000000ff, + 0x82000d80, 0x00000029, 0x04020012, 0x59300203, + 0x82000580, 0x00000003, 0x0400000b, 0x59300808, + 0x84040d26, 0x48066008, 0x0201f800, 0x00020111, + 0x4a03900d, 0x00000040, 0x4a0370e5, 0x00000008, + 0x1c01f000, 0x0201f800, 0x001064f2, 0x040007f4, + 0x42000000, 0x0010bd15, 0x0201f800, 0x0010ae10, + 0x5988014a, 0x80000000, 0x4803114a, 0x4a03900d, + 0x00000040, 0x42000000, 0xc0000000, 0x0201f000, + 0x00020105, 0x4c5c0000, 0x4c600000, 0x4c640000, + 0x4200c800, 0x0010c2ab, 0x4200b800, 0x00003000, + 0x4200c000, 0x00000105, 0x0201f800, 0x00105655, + 0x4a0370e4, 0x02000000, 0x5c00c800, 0x5c00c000, + 0x5c00b800, 0x1c01f000, 0x4933c857, 0x0201f000, + 0x00020a10, 0x4933c857, 0x0401fbfd, 0x1c01f000, + 0x41300800, 0x800409c0, 0x02020800, 0x0010032d, + 0x0201f800, 0x00100322, 0x42000000, 0x0010bd15, + 0x0201f800, 0x0010ae10, 0x4933c857, 0x813261c0, + 0x02000800, 0x0010032d, 0x0401f841, 0x40002800, + 0x0201f800, 0x0010ad79, 0x4c140000, 0x59a8006a, + 0x80000540, 0x04000004, 0x8c142d2a, 0x04000002, + 0x0401fbe3, 0x5c002800, 0x0401f8ae, 0x04000007, + 0x5932680a, 0x59340200, 0x8c00050e, 0x59300415, + 0x02020800, 0x00108c33, 0x1c01f000, 0x42000000, + 0x0010bd15, 0x0201f800, 0x0010ae10, 0x4933c857, + 0x813261c0, 0x02000800, 0x0010032d, 0x0401f89d, + 0x0400000b, 0x0201f800, 0x00108953, 0x04000008, + 0x59325809, 0x592c0209, 0x8400054e, 0x48025a09, + 0x417a7800, 0x0201f800, 0x0010853c, 0x1c01f000, + 0x485fc857, 0x5c000000, 0x4d780000, 0x4203e000, + 0x50000000, 0x4200b800, 0x00008005, 0x0201f000, + 0x00100332, 0x4933c857, 0x83300480, 0x00000020, + 0x02021800, 0x0010032d, 0x83300c00, 0x0010bd88, + 0x50040000, 0x80000000, 0x04001002, 0x44000800, + 0x1c01f000, 0x4933c857, 0x0401f7f4, 0x4807c856, + 0x59b800ea, 0x8c000510, 0x040007fd, 0x59b800e0, + 0x4803c857, 0x1c01f000, 0x4803c856, 0x42000000, + 0x10000000, 0x41300800, 0x0401f029, 0x8c000510, + 0x02000000, 0x0002010b, 0x4c040000, 0x0401f80b, + 0x5c000800, 0x82100480, 0x00000008, 0x02001000, + 0x0002010b, 0x4c040000, 0x0401feb7, 0x5c000800, + 0x0201f000, 0x0002010b, 0x59b800e2, 0x59b820e2, + 0x80100580, 0x040207fd, 0x80102114, 0x0401f001, + 0x40101800, 0x800c190a, 0x82100500, 0x0000001f, + 0x820c1d00, 0x0000001f, 0x800c2480, 0x82102500, + 0x0000001f, 0x1c01f000, 0x40680000, 0x406c0800, + 0x0401f807, 0x42018800, 0x00000001, 0x04020003, + 0x42018800, 0x00000000, 0x1c01f000, 0x82000500, + 0xf0000000, 0x82040d00, 0x0fffffff, 0x80040d40, + 0x4807c857, 0x42001000, 0x0010bc59, 0x50080000, + 0x80000540, 0x04020005, 0x4a0370e5, 0x00000003, + 0x4a0370e4, 0x00000300, 0x80000000, 0x44001000, + 0x42001000, 0x00000400, 0x59b800ea, 0x8c000510, + 0x0400000c, 0x0401ffd1, 0x82100480, 0x00000008, + 0x04001007, 0x4c040000, 0x4c080000, 0x0401fe7e, + 0x5c001000, 0x5c000800, 0x0401f020, 0x59b800ea, + 0x8c000516, 0x0402001d, 0x4a0370e4, 0x00300000, + 0x480770e1, 0x42001000, 0x0000ff00, 0x80081040, + 0x04000012, 0x59b808e4, 0x8c040d28, 0x040207fc, + 0x42001000, 0x0010bc59, 0x50080000, 0x80000040, + 0x04020005, 0x4a0370e5, 0x00000002, 0x4a0370e4, + 0x00000200, 0x02001800, 0x0010032d, 0x44001000, + 0x8c040d2c, 0x1c01f000, 0x41f80000, 0x50000000, + 0x0201f800, 0x0010032d, 0x80081040, 0x040207d3, 0x41f80000, 0x50000000, 0x0201f800, 0x0010032d, - 0x80081040, 0x040207d3, 0x41f80000, 0x50000000, - 0x0201f800, 0x0010032d, 0x4d380000, 0x59300c07, - 0x82040580, 0x00000009, 0x04020006, 0x42027000, - 0x00000047, 0x0201f800, 0x00020a34, 0x80000580, - 0x5c027000, 0x1c01f000, 0x4c500000, 0x4a03900d, - 0x00000001, 0x59c8a020, 0x4a03900d, 0x00000002, - 0x59c80820, 0x8c50a52e, 0x04000002, 0x900409c0, - 0x82040d00, 0x0000ffff, 0x0201f800, 0x001055ab, - 0x5c00a000, 0x1c01f000, 0x42000000, 0x0010bc0c, - 0x0201f800, 0x0010ad1d, 0x0401ffec, 0x0400004b, - 0x4933c857, 0x59300407, 0x82000580, 0x00000000, - 0x04000046, 0x59c82021, 0x4a03900d, 0x00000001, - 0x59c82821, 0x82142d00, 0x0000ffff, 0x59325809, - 0x812e59c0, 0x0400003d, 0x5932680a, 0x0201f800, - 0x001040aa, 0x02020800, 0x00108b62, 0x599c0019, - 0x8c00050c, 0x04020018, 0x0201f800, 0x001040aa, - 0x04020015, 0x59300812, 0x4807c857, 0x592c0409, - 0x8c00051c, 0x0402000e, 0x8400055c, 0x48025c09, - 0x592c0a05, 0x82040d00, 0x000000ff, 0x82040580, - 0x00000048, 0x04000004, 0x82040580, 0x00000018, - 0x04020003, 0x59300812, 0x48065803, 0x4a026012, - 0x7fffffff, 0x48166014, 0x599c0019, 0x8c00050c, - 0x04020004, 0x59a80007, 0x8c00051e, 0x04020017, - 0x0201f800, 0x00100e59, 0x04020014, 0x0401fa2f, - 0x40280000, 0x4802600e, 0x04000005, 0x4832600c, - 0x50200000, 0x4802600b, 0x4822600d, 0x59300415, - 0x8c00051c, 0x04020004, 0x599c0019, 0x8c00050c, - 0x04020885, 0x4a03900d, 0x00000040, 0x4a0370e5, - 0x00000008, 0x1c01f000, 0x42000000, 0x0010bc15, - 0x0201f800, 0x0010ad1d, 0x5988014c, 0x80000000, - 0x4803114c, 0x4a03900d, 0x00000040, 0x42000000, - 0xc0000000, 0x0201f000, 0x00020105, 0x4cf80000, - 0x58f40000, 0x8001f540, 0x0401f820, 0x41781800, - 0x0401f8f9, 0x04020014, 0x44140800, 0x0401f82a, - 0x04000011, 0x40043800, 0x42001800, 0x00000001, - 0x40142000, 0x0401f8f0, 0x0402000b, 0x801c3800, - 0x501c0000, 0x44000800, 0x0401f810, 0x801c0580, - 0x04000004, 0x44103800, 0x801c3840, 0x44143800, - 0x0401f819, 0x5c01f000, 0x1c01f000, 0x80f9f1c0, - 0x04020003, 0x58f41202, 0x0401f003, 0x42001000, - 0x00000007, 0x1c01f000, 0x80f9f1c0, 0x04020006, - 0x58f40401, 0x82000480, 0x00000002, 0x80f40400, - 0x0401f005, 0x58f80401, 0x82000480, 0x00000002, - 0x80f80400, 0x50002800, 0x80000000, 0x50002000, - 0x1c01f000, 0x80f9f1c0, 0x04020008, 0x58f40401, + 0x4d380000, 0x59300c07, 0x82040580, 0x00000009, + 0x04020006, 0x42027000, 0x00000047, 0x0201f800, + 0x00020a34, 0x80000580, 0x5c027000, 0x1c01f000, + 0x4c500000, 0x4a03900d, 0x00000001, 0x59c8a020, + 0x4a03900d, 0x00000002, 0x59c80820, 0x8c50a52e, + 0x04000002, 0x900409c0, 0x82040d00, 0x0000ffff, + 0x0201f800, 0x00105617, 0x5c00a000, 0x1c01f000, + 0x42000000, 0x0010bd0c, 0x0201f800, 0x0010ae10, + 0x0401ffec, 0x0400004e, 0x4933c857, 0x59300407, + 0x82000580, 0x00000000, 0x04000049, 0x59c82021, + 0x4a03900d, 0x00000001, 0x59c82821, 0x82142d00, + 0x0000ffff, 0x59325809, 0x812e59c0, 0x04000040, + 0x5932680a, 0x0201f800, 0x001040c4, 0x02020800, + 0x00108c1b, 0x599c0019, 0x8c00050c, 0x04020018, + 0x0201f800, 0x001040c4, 0x04020015, 0x59300812, + 0x4807c857, 0x592c0409, 0x8c00051c, 0x0402000e, + 0x8400055c, 0x48025c09, 0x592c0a05, 0x82040d00, + 0x000000ff, 0x82040580, 0x00000048, 0x04000004, + 0x82040580, 0x00000018, 0x04020003, 0x59300812, + 0x48065803, 0x4a026012, 0x7fffffff, 0x48166014, + 0x0201f800, 0x001040c4, 0x04000004, 0x59300415, + 0x8c00051c, 0x04000004, 0x599c0019, 0x8c00050c, + 0x04000017, 0x0201f800, 0x00100e5a, 0x04020014, + 0x0401fa2f, 0x40280000, 0x4802600e, 0x04000005, + 0x4832600c, 0x50200000, 0x4802600b, 0x4822600d, + 0x59300415, 0x8c00051c, 0x04020004, 0x599c0019, + 0x8c00050c, 0x04020885, 0x4a03900d, 0x00000040, + 0x4a0370e5, 0x00000008, 0x1c01f000, 0x42000000, + 0x0010bd15, 0x0201f800, 0x0010ae10, 0x5988014c, + 0x80000000, 0x4803114c, 0x4a03900d, 0x00000040, + 0x42000000, 0xc0000000, 0x0201f000, 0x00020105, + 0x4cf80000, 0x58f40000, 0x8001f540, 0x0401f820, + 0x41781800, 0x0401f8f9, 0x04020014, 0x44140800, + 0x0401f82a, 0x04000011, 0x40043800, 0x42001800, + 0x00000001, 0x40142000, 0x0401f8f0, 0x0402000b, + 0x801c3800, 0x501c0000, 0x44000800, 0x0401f810, + 0x801c0580, 0x04000004, 0x44103800, 0x801c3840, + 0x44143800, 0x0401f819, 0x5c01f000, 0x1c01f000, + 0x80f9f1c0, 0x04020003, 0x58f41202, 0x0401f003, + 0x42001000, 0x00000007, 0x1c01f000, 0x80f9f1c0, + 0x04020006, 0x58f40401, 0x82000480, 0x00000002, + 0x80f40400, 0x0401f005, 0x58f80401, 0x82000480, + 0x00000002, 0x80f80400, 0x50002800, 0x80000000, + 0x50002000, 0x1c01f000, 0x80f9f1c0, 0x04020008, + 0x58f40401, 0x82000480, 0x00000002, 0x02001800, + 0x0010032d, 0x4801ec01, 0x0401f00b, 0x58f80401, 0x82000480, 0x00000002, 0x02001800, 0x0010032d, - 0x4801ec01, 0x0401f00b, 0x58f80401, 0x82000480, - 0x00000002, 0x02001800, 0x0010032d, 0x4801f401, - 0x82000580, 0x00000002, 0x04020002, 0x0401f81b, - 0x58f40202, 0x80000040, 0x4801ea02, 0x02000800, - 0x0010032d, 0x82000580, 0x00000001, 0x1c01f000, - 0x82f40580, 0xffffffff, 0x0400000f, 0x58f40201, + 0x4801f401, 0x82000580, 0x00000002, 0x04020002, + 0x0401f81b, 0x58f40202, 0x80000040, 0x4801ea02, + 0x02000800, 0x0010032d, 0x82000580, 0x00000001, + 0x1c01f000, 0x82f40580, 0xffffffff, 0x0400000f, + 0x58f40201, 0x82000580, 0x0000dcb3, 0x02020800, + 0x0010032d, 0x58f40000, 0x8001f540, 0x04000006, + 0x58f80201, 0x82000580, 0x0000ddb9, 0x02020800, + 0x0010032d, 0x0401f80a, 0x1c01f000, 0x4d2c0000, + 0x40fa5800, 0x0201f800, 0x00100580, 0x4979e800, + 0x4179f000, 0x5c025800, 0x1c01f000, 0x80f5e9c0, + 0x04000009, 0x80f9f1c0, 0x04020ff5, 0x4d2c0000, + 0x40f65800, 0x0201f800, 0x00100580, 0x4179e800, + 0x5c025800, 0x1c01f000, 0x4cf40000, 0x0201f800, + 0x001040c4, 0x04020036, 0x59300808, 0x82040500, + 0x00013100, 0x04020032, 0x8c040d22, 0x04000032, + 0x59300020, 0x8001ed40, 0x02000800, 0x0010032d, + 0x82000580, 0xffffffff, 0x04000029, 0x58f40201, 0x82000580, 0x0000dcb3, 0x02020800, 0x0010032d, - 0x58f40000, 0x8001f540, 0x04000006, 0x58f80201, - 0x82000580, 0x0000ddb9, 0x02020800, 0x0010032d, - 0x0401f80a, 0x1c01f000, 0x4d2c0000, 0x40fa5800, - 0x0201f800, 0x00100580, 0x4979e800, 0x4179f000, - 0x5c025800, 0x1c01f000, 0x80f5e9c0, 0x04000009, - 0x80f9f1c0, 0x04020ff5, 0x4d2c0000, 0x40f65800, - 0x0201f800, 0x00100580, 0x4179e800, 0x5c025800, - 0x1c01f000, 0x4cf40000, 0x0201f800, 0x001040aa, - 0x04020036, 0x59300808, 0x82040500, 0x00013100, - 0x04020032, 0x8c040d22, 0x04000032, 0x59300020, - 0x8001ed40, 0x02000800, 0x0010032d, 0x82000580, - 0xffffffff, 0x04000029, 0x58f40201, 0x82000580, - 0x0000dcb3, 0x02020800, 0x0010032d, 0x58f40a02, - 0x82040500, 0x0000fffe, 0x04000003, 0x0401ff74, - 0x58f40a02, 0x82040480, 0x0000000f, 0x04021059, - 0x80040800, 0x4805ea02, 0x82040580, 0x00000008, - 0x0400005d, 0x82040480, 0x00000008, 0x0400100a, - 0x58f40000, 0x8001ed40, 0x02000800, 0x0010032d, - 0x58f40201, 0x82000580, 0x0000ddb9, 0x02020800, - 0x0010032d, 0x58f40401, 0x82000c00, 0x00000002, - 0x4805ec01, 0x80f40400, 0x59300813, 0x44040000, - 0x80000000, 0x45780000, 0x5c01e800, 0x1c01f000, - 0x42001000, 0x00000400, 0x59b800e4, 0x8c000524, - 0x04020023, 0x4a0370e4, 0x00030000, 0x40000000, - 0x59b800e4, 0x8c000524, 0x0402001b, 0x59300808, - 0x84040d62, 0x48066008, 0x4a0370e4, 0x00020000, - 0x4d2c0000, 0x0201f800, 0x0010055a, 0x04000025, - 0x492e6020, 0x4a025a01, 0x0000dcb3, 0x59300009, - 0x80001d40, 0x02000800, 0x0010032d, 0x580c0810, - 0x48065803, 0x59301812, 0x40040000, 0x800c0580, - 0x0402000d, 0x497a5a02, 0x4a025c01, 0x00000004, - 0x0401f011, 0x4a0370e4, 0x00020000, 0x40000000, - 0x40000000, 0x80081040, 0x02000800, 0x0010032d, - 0x0401f7d6, 0x4a025a02, 0x00000001, 0x4a025c01, - 0x00000006, 0x497a5804, 0x400c0000, 0x80040480, - 0x48025805, 0x412de800, 0x5c025800, 0x0401f7a9, - 0x5c025800, 0x4a026020, 0xffffffff, 0x0401f7c3, - 0x4d2c0000, 0x58f65800, 0x0201f800, 0x00100580, - 0x40f65800, 0x0201f800, 0x00100580, 0x5c025800, - 0x0401f7f5, 0x4d2c0000, 0x0201f800, 0x0010055a, - 0x040007f8, 0x4a025a01, 0x0000ddb9, 0x4a025c01, - 0x00000002, 0x492de800, 0x412de800, 0x5c025800, - 0x0401f7a5, 0x0401ff1e, 0x82f40400, 0x00000004, - 0x800c0400, 0x40000800, 0x50040000, 0x80100580, - 0x04000016, 0x82040c00, 0x00000002, 0x80081040, - 0x040207fa, 0x80f9f1c0, 0x04000011, 0x58f41202, - 0x82081480, 0x00000007, 0x82f80400, 0x00000002, - 0x800c0400, 0x40000800, 0x50040000, 0x80100580, - 0x04000006, 0x82040c00, 0x00000002, 0x80081040, - 0x040207fa, 0x0401f002, 0x1c01f000, 0x82000540, - 0x00000001, 0x0401f7fd, 0x4cf40000, 0x4cf80000, - 0x4001e800, 0x812e59c0, 0x04000024, 0x592c0a07, - 0x800409c0, 0x04020021, 0x82f40580, 0xffffffff, - 0x0400001b, 0x58f40201, 0x82000580, 0x0000dcb3, - 0x02020800, 0x0010032d, 0x58f40000, 0x8001f540, - 0x04000006, 0x58f80201, 0x82000580, 0x0000ddb9, - 0x02020800, 0x0010032d, 0x41783800, 0x58f44003, - 0x0401f839, 0x04020009, 0x0401ff2c, 0x497a6020, - 0x59300808, 0x84040d22, 0x48066008, 0x5c01f000, - 0x5c01e800, 0x1c01f000, 0x0401ff24, 0x4a025a07, - 0x00000011, 0x0401f7f6, 0x0401ff06, 0x0401f7f4, - 0x4cf40000, 0x4cf80000, 0x4001e800, 0x82040580, - 0x00000001, 0x04020020, 0x82f40580, 0xffffffff, - 0x0400001a, 0x58f40201, 0x82000580, 0x0000dcb3, - 0x02020800, 0x0010032d, 0x58f40000, 0x8001f540, - 0x04000006, 0x58f80201, 0x82000580, 0x0000ddb9, - 0x02020800, 0x0010032d, 0x41783800, 0x58f44003, - 0x0401f811, 0x04020008, 0x0401ff04, 0x42000800, - 0x00000001, 0x497a6020, 0x5c01f000, 0x5c01e800, - 0x1c01f000, 0x0401fefd, 0x42000800, 0x00000011, - 0x0401f7f9, 0x4c040000, 0x0401fede, 0x5c000800, - 0x0401f7f5, 0x4803c856, 0x401c2000, 0x41781800, - 0x4c200000, 0x0401ff88, 0x5c004000, 0x0402002a, - 0x40202000, 0x42001800, 0x00000001, 0x0401ff82, - 0x04020025, 0x0401fe9e, 0x40082800, 0x82f43400, - 0x00000004, 0x50182000, 0x40100000, 0x801c0580, - 0x04000005, 0x42001800, 0x00000001, 0x0401ff76, - 0x04020019, 0x82183400, 0x00000002, 0x80142840, - 0x040207f5, 0x80f9f1c0, 0x04000012, 0x58f42a02, - 0x82142c80, 0x00000007, 0x82f83400, 0x00000002, - 0x50182000, 0x40100000, 0x801c0580, 0x04000005, - 0x42001800, 0x00000001, 0x0401ff63, 0x04020006, - 0x82183400, 0x00000002, 0x80142840, 0x040207f5, - 0x1c01f000, 0x82000540, 0x00000001, 0x0401f7fd, - 0x0201f800, 0x0010032d, 0x58380a05, 0x82040d00, - 0x000000ff, 0x82040580, 0x0000001b, 0x04000004, - 0x82040580, 0x0000002b, 0x040207f6, 0x50200000, - 0x80387c00, 0x583c2800, 0x583c2001, 0x583c1002, - 0x592c0a08, 0x58383010, 0x59303808, 0x497a6013, - 0x497a6014, 0x0201f000, 0x00020149, 0x58380208, - 0x8c000502, 0x040007e7, 0x50200000, 0x80387c00, - 0x583c2800, 0x583c2001, 0x58380405, 0x80001540, - 0x04020002, 0x58381408, 0x58c83401, 0x58380c09, - 0x59303808, 0x497a6013, 0x497a6014, 0x0201f000, - 0x00020149, 0x592c0409, 0x8c000502, 0x040007d5, - 0x592c040a, 0x80000540, 0x040007d2, 0x82000c80, - 0x00000002, 0x04001011, 0x58380001, 0x80007540, - 0x02000800, 0x0010032d, 0x58380205, 0x82000500, - 0x0000000f, 0x82000400, 0x00100e39, 0x50004000, - 0x40040000, 0x800409c0, 0x04000005, 0x82040c80, - 0x00000005, 0x040217f1, 0x80204400, 0x50200000, - 0x80387c00, 0x583c2800, 0x583c2001, 0x583c1002, - 0x592c0a08, 0x592c4c09, 0x592c300e, 0x59303808, - 0x497a6013, 0x497a6014, 0x4816600f, 0x48126010, - 0x480a6011, 0x481a6012, 0x80040840, 0x4806600e, - 0x02000000, 0x00020151, 0x80204000, 0x50201800, - 0x800c19c0, 0x0402000c, 0x58380001, 0x80007540, - 0x02000800, 0x0010032d, 0x58380205, 0x82000500, - 0x0000000f, 0x82000400, 0x00100e39, 0x50004000, - 0x50201800, 0x483a600c, 0x480e600b, 0x4822600d, - 0x0201f000, 0x00020151, 0x4803c856, 0x592c0209, - 0x8c00051e, 0x04020017, 0x50200000, 0x80306c00, - 0x40240000, 0x0c01f001, 0x00100b7e, 0x00100b7e, - 0x00100b87, 0x00100b7e, 0x00100b7e, 0x00100b7e, - 0x00100b7e, 0x00100b7e, 0x00100b87, 0x00100b7e, - 0x00100b87, 0x00100b7e, 0x00100b7e, 0x00100b87, - 0x00100b7e, 0x00100b7e, 0x0201f800, 0x0010032d, - 0x8400051e, 0x48025a09, 0x50200000, 0x80306c00, - 0x58343801, 0x481e6010, 0x0401f007, 0x58341802, - 0x58342800, 0x58343801, 0x480e6011, 0x4816600f, - 0x481e6010, 0x0401f28a, 0x4933c857, 0x5931f809, - 0x59301006, 0x800811c0, 0x0400000b, 0x41780800, - 0x42000000, 0x0000000a, 0x0201f800, 0x00105f69, - 0x80080102, 0x04020002, 0x84001542, 0x80081040, - 0x4809fc07, 0x4a026006, 0x00000002, 0x592c040a, - 0x82000500, 0x00000008, 0x0400000b, 0x0401f831, - 0x59300203, 0x82000580, 0x00000004, 0x04020005, - 0x42027000, 0x00000048, 0x0201f800, 0x00020a34, - 0x1c01f000, 0x4cfc0000, 0x58fc0205, 0x82000500, - 0x000000ff, 0x82000580, 0x00000048, 0x04020009, - 0x58fc0409, 0x8c000500, 0x04000006, 0x58fc080c, - 0x8c040d16, 0x04000017, 0x58fc0008, 0x0401f00a, - 0x58fc0409, 0x8c000512, 0x04020014, 0x58fc0c0a, - 0x8c040d16, 0x04020003, 0x5c01f800, 0x1c01f000, - 0x58fc000b, 0x59300812, 0x80040580, 0x04020009, - 0x59300008, 0x84000500, 0x48026008, 0x42027000, - 0x00000048, 0x5c01f800, 0x0201f000, 0x00020a34, - 0x5c01f800, 0x1c01f000, 0x58fdf80a, 0x0401f7ec, - 0x5c000000, 0x4c000000, 0x4803c857, 0x4933c857, - 0x59b808ea, 0x82040d00, 0x00000007, 0x82040580, - 0x00000000, 0x04000025, 0x82040580, 0x00000003, - 0x04000022, 0x59300407, 0x4c000000, 0x4a026407, - 0x00000000, 0x42003000, 0x00000041, 0x4a0370e5, - 0x00003000, 0x42000000, 0x50000000, 0x41300800, - 0x4c180000, 0x0401fcac, 0x5c003000, 0x0400000e, - 0x42000000, 0x0000001e, 0x80000040, 0x040207ff, - 0x80183040, 0x040207f4, 0x42000000, 0x40000000, - 0x41300800, 0x0401fca0, 0x59880146, 0x80000000, - 0x48031146, 0x4a0370e5, 0x00002000, 0x5c000000, - 0x48026407, 0x1c01f000, 0x59300008, 0x84000500, - 0x48026008, 0x0401f7fc, 0x59c00007, 0x4a038006, - 0x30000000, 0x40000000, 0x59c00007, 0x8c00050a, - 0x040207fe, 0x1c01f000, 0x5c000000, 0x4c000000, - 0x4803c857, 0x42000800, 0x00000001, 0x0201f800, - 0x00101993, 0x4dc00000, 0x4a0370e8, 0x00000000, - 0x42038000, 0x00007720, 0x0401ffec, 0x42038000, - 0x00007700, 0x0401ffe9, 0x0201f800, 0x00104716, - 0x04020017, 0x4a038891, 0x0000ffff, 0x497b8880, - 0x4ce80000, 0x4201d000, 0x00000016, 0x0201f800, - 0x0010592d, 0x497b8892, 0x4201d000, 0x00000016, - 0x0201f800, 0x0010592d, 0x5c01d000, 0x42000000, - 0x0010bc60, 0x0201f800, 0x0010ad1d, 0x0401f812, - 0x5c038000, 0x0201f000, 0x0010483a, 0x0401f830, - 0x4c080000, 0x4c140000, 0x42000000, 0x0010bc61, - 0x0201f800, 0x0010ad1d, 0x0401f807, 0x5c002800, - 0x5c001000, 0x48178892, 0x480b8880, 0x5c038000, - 0x1c01f000, 0x496fc857, 0x836c0580, 0x00000003, - 0x0402000b, 0x4c080000, 0x4c0c0000, 0x42001000, - 0x00008048, 0x42001800, 0x0000ffff, 0x0201f800, - 0x001031eb, 0x5c001800, 0x5c001000, 0x42000800, - 0x0000003c, 0x0201f800, 0x001010da, 0x59a8006a, - 0x80000540, 0x04000005, 0x59a8106b, 0x800811c0, - 0x02020800, 0x001018fe, 0x4a038891, 0x0000ffff, - 0x4a03900d, 0x00000040, 0x0201f800, 0x00100684, - 0x4a0370e8, 0x00000001, 0x1c01f000, 0x5c000000, - 0x4c000000, 0x4803c857, 0x59c41080, 0x497b8880, - 0x4ce80000, 0x4201d000, 0x00000016, 0x4c080000, - 0x0201f800, 0x0010592d, 0x5c001000, 0x5c01d000, - 0x59c42892, 0x497b8892, 0x0201f800, 0x00104716, - 0x04020002, 0x1c01f000, 0x42002000, 0x00000260, - 0x59c418a4, 0x820c1d00, 0x0000000f, 0x820c0580, - 0x00000000, 0x04000010, 0x59c41805, 0x820c1d00, - 0x00000001, 0x0402000e, 0x59c418a4, 0x820c1d00, - 0x0000000f, 0x820c0480, 0x00000007, 0x04001004, - 0x820c0480, 0x0000000c, 0x04001003, 0x80102040, - 0x040207ec, 0x497b8891, 0x1c01f000, 0x4c100000, - 0x42002000, 0x00000019, 0x4a038805, 0x00000001, - 0x0201f800, 0x00101730, 0x59c41805, 0x820c1d00, - 0x00000001, 0x04000005, 0x80102040, 0x040207f7, - 0x5c002000, 0x0401f7f0, 0x5c002000, 0x0401f7ec, - 0x4803c856, 0x1c01f000, 0x00100cb6, 0x00100cb6, - 0x00100cb6, 0x00100cda, 0x00100cb6, 0x00100cb6, - 0x00100cb6, 0x00100cb6, 0x00100cb6, 0x00100cda, - 0x00100cb6, 0x00100cb8, 0x00100cb6, 0x00100cb6, - 0x00100cb6, 0x00100cb6, 0x0201f800, 0x0010032d, - 0x82040580, 0x0000001b, 0x0400001a, 0x82040580, - 0x0000002b, 0x04000017, 0x82040580, 0x0000003b, - 0x02020800, 0x0010032d, 0x592c020b, 0x8c000500, - 0x04000073, 0x592c1a08, 0x82040500, 0x0000000f, - 0x82000400, 0x00100e39, 0x50001000, 0x50080000, - 0x59302014, 0x4802600b, 0x492e600c, 0x480a600d, - 0x480e600e, 0x48126013, 0x5c025800, 0x1c01f000, - 0x592c0010, 0x48026012, 0x592c0011, 0x48026014, - 0x592c1a08, 0x0401f7ed, 0x82040500, 0x0000000f, - 0x82000400, 0x00100e39, 0x50001000, 0x50080000, - 0x592c1a08, 0x4802600b, 0x492e600c, 0x480a600d, - 0x480e600e, 0x497a6013, 0x0401f7ec, 0x8c040d00, - 0x0402004f, 0x82040d00, 0x00000080, 0x0400004c, - 0x0201f000, 0x00020164, 0x59300014, 0x59301013, - 0x80080580, 0x0402000c, 0x42007800, 0x80000005, - 0x592c1209, 0x82080500, 0xffff7fff, 0x48025a09, - 0x8c08151e, 0x0402003b, 0x823c7d40, 0x00000020, - 0x0401f038, 0x480bc857, 0x42000000, 0x0010bc0d, - 0x0201f800, 0x0010ad1d, 0x59302014, 0x59300415, - 0x4803c857, 0x8c000514, 0x04020011, 0x599c1819, - 0x8c0c1d12, 0x0400000b, 0x592c0810, 0x59300016, - 0x80040c80, 0x04000005, 0x04001004, 0x80040000, - 0x80140480, 0x0400100a, 0x0201f800, 0x00107134, - 0x820c1d40, 0x00000001, 0x0401f020, 0x84000514, - 0x48026415, 0x48126016, 0x4813c857, 0x0401f93e, - 0x0402001a, 0x42007800, 0x80000005, 0x5930500e, - 0x592c0209, 0x4803c857, 0x8c00051e, 0x04020005, - 0x823c7d40, 0x00000020, 0x5930400d, 0x0401f004, - 0x8400051e, 0x48025a09, 0x0401f8ed, 0x50201800, - 0x480e600b, 0x4832600c, 0x4822600d, 0x482a600e, - 0x480fc857, 0x4833c857, 0x4823c857, 0x482bc857, - 0x80000580, 0x483e6004, 0x1c01f000, 0x0201f800, - 0x0010032d, 0x4933c857, 0x4d2c0000, 0x59900004, + 0x58f40a02, 0x82040500, 0x0000fffe, 0x04000003, + 0x0401ff74, 0x58f40a02, 0x82040480, 0x0000000f, + 0x04021059, 0x80040800, 0x4805ea02, 0x82040580, + 0x00000008, 0x0400005d, 0x82040480, 0x00000008, + 0x0400100a, 0x58f40000, 0x8001ed40, 0x02000800, + 0x0010032d, 0x58f40201, 0x82000580, 0x0000ddb9, + 0x02020800, 0x0010032d, 0x58f40401, 0x82000c00, + 0x00000002, 0x4805ec01, 0x80f40400, 0x59300813, + 0x44040000, 0x80000000, 0x45780000, 0x5c01e800, + 0x1c01f000, 0x42001000, 0x00000400, 0x59b800e4, + 0x8c000524, 0x04020023, 0x4a0370e4, 0x00030000, + 0x40000000, 0x59b800e4, 0x8c000524, 0x0402001b, + 0x59300808, 0x84040d62, 0x48066008, 0x4a0370e4, + 0x00020000, 0x4d2c0000, 0x0201f800, 0x0010055a, + 0x04000025, 0x492e6020, 0x4a025a01, 0x0000dcb3, + 0x59300009, 0x80001d40, 0x02000800, 0x0010032d, + 0x580c0810, 0x48065803, 0x59301812, 0x40040000, + 0x800c0580, 0x0402000d, 0x497a5a02, 0x4a025c01, + 0x00000004, 0x0401f011, 0x4a0370e4, 0x00020000, + 0x40000000, 0x40000000, 0x80081040, 0x02000800, + 0x0010032d, 0x0401f7d6, 0x4a025a02, 0x00000001, + 0x4a025c01, 0x00000006, 0x497a5804, 0x400c0000, + 0x80040480, 0x48025805, 0x412de800, 0x5c025800, + 0x0401f7a9, 0x5c025800, 0x4a026020, 0xffffffff, + 0x0401f7c3, 0x4d2c0000, 0x58f65800, 0x0201f800, + 0x00100580, 0x40f65800, 0x0201f800, 0x00100580, + 0x5c025800, 0x0401f7f5, 0x4d2c0000, 0x0201f800, + 0x0010055a, 0x040007f8, 0x4a025a01, 0x0000ddb9, + 0x4a025c01, 0x00000002, 0x492de800, 0x412de800, + 0x5c025800, 0x0401f7a5, 0x0401ff1e, 0x82f40400, + 0x00000004, 0x800c0400, 0x40000800, 0x50040000, + 0x80100580, 0x04000016, 0x82040c00, 0x00000002, + 0x80081040, 0x040207fa, 0x80f9f1c0, 0x04000011, + 0x58f41202, 0x82081480, 0x00000007, 0x82f80400, + 0x00000002, 0x800c0400, 0x40000800, 0x50040000, + 0x80100580, 0x04000006, 0x82040c00, 0x00000002, + 0x80081040, 0x040207fa, 0x0401f002, 0x1c01f000, + 0x82000540, 0x00000001, 0x0401f7fd, 0x4cf40000, + 0x4cf80000, 0x4001e800, 0x812e59c0, 0x04000024, + 0x592c0a07, 0x800409c0, 0x04020021, 0x82f40580, + 0xffffffff, 0x0400001b, 0x58f40201, 0x82000580, + 0x0000dcb3, 0x02020800, 0x0010032d, 0x58f40000, + 0x8001f540, 0x04000006, 0x58f80201, 0x82000580, + 0x0000ddb9, 0x02020800, 0x0010032d, 0x41783800, + 0x58f44003, 0x0401f839, 0x04020009, 0x0401ff2c, + 0x497a6020, 0x59300808, 0x84040d22, 0x48066008, + 0x5c01f000, 0x5c01e800, 0x1c01f000, 0x0401ff24, + 0x4a025a07, 0x00000011, 0x0401f7f6, 0x0401ff06, + 0x0401f7f4, 0x4cf40000, 0x4cf80000, 0x4001e800, + 0x82040580, 0x00000001, 0x04020020, 0x82f40580, + 0xffffffff, 0x0400001a, 0x58f40201, 0x82000580, + 0x0000dcb3, 0x02020800, 0x0010032d, 0x58f40000, + 0x8001f540, 0x04000006, 0x58f80201, 0x82000580, + 0x0000ddb9, 0x02020800, 0x0010032d, 0x41783800, + 0x58f44003, 0x0401f811, 0x04020008, 0x0401ff04, + 0x42000800, 0x00000001, 0x497a6020, 0x5c01f000, + 0x5c01e800, 0x1c01f000, 0x0401fefd, 0x42000800, + 0x00000011, 0x0401f7f9, 0x4c040000, 0x0401fede, + 0x5c000800, 0x0401f7f5, 0x4803c856, 0x401c2000, + 0x41781800, 0x4c200000, 0x0401ff88, 0x5c004000, + 0x0402002a, 0x40202000, 0x42001800, 0x00000001, + 0x0401ff82, 0x04020025, 0x0401fe9e, 0x40082800, + 0x82f43400, 0x00000004, 0x50182000, 0x40100000, + 0x801c0580, 0x04000005, 0x42001800, 0x00000001, + 0x0401ff76, 0x04020019, 0x82183400, 0x00000002, + 0x80142840, 0x040207f5, 0x80f9f1c0, 0x04000012, + 0x58f42a02, 0x82142c80, 0x00000007, 0x82f83400, + 0x00000002, 0x50182000, 0x40100000, 0x801c0580, + 0x04000005, 0x42001800, 0x00000001, 0x0401ff63, + 0x04020006, 0x82183400, 0x00000002, 0x80142840, + 0x040207f5, 0x1c01f000, 0x82000540, 0x00000001, + 0x0401f7fd, 0x0201f800, 0x0010032d, 0x58380a05, + 0x82040d00, 0x000000ff, 0x82040580, 0x0000001b, + 0x04000004, 0x82040580, 0x0000002b, 0x040207f6, + 0x50200000, 0x80387c00, 0x583c2800, 0x583c2001, + 0x583c1002, 0x592c0a08, 0x58383010, 0x59303808, + 0x497a6013, 0x497a6014, 0x0201f000, 0x00020149, + 0x58380208, 0x8c000502, 0x040007e7, 0x50200000, + 0x80387c00, 0x583c2800, 0x583c2001, 0x58380405, + 0x80001540, 0x04020002, 0x58381408, 0x58c83401, + 0x58380c09, 0x59303808, 0x497a6013, 0x497a6014, + 0x0201f000, 0x00020149, 0x592c0409, 0x8c000502, + 0x040007d5, 0x592c040a, 0x80000540, 0x040007d2, + 0x82000c80, 0x00000002, 0x04001011, 0x58380001, + 0x80007540, 0x02000800, 0x0010032d, 0x58380205, + 0x82000500, 0x0000000f, 0x82000400, 0x00100e3a, + 0x50004000, 0x40040000, 0x800409c0, 0x04000005, + 0x82040c80, 0x00000005, 0x040217f1, 0x80204400, + 0x50200000, 0x80387c00, 0x583c2800, 0x583c2001, + 0x583c1002, 0x592c0a08, 0x592c4c09, 0x592c300e, + 0x59303808, 0x497a6013, 0x497a6014, 0x4816600f, + 0x48126010, 0x480a6011, 0x481a6012, 0x80040840, + 0x4806600e, 0x02000000, 0x00020151, 0x80204000, + 0x50201800, 0x800c19c0, 0x0402000c, 0x58380001, + 0x80007540, 0x02000800, 0x0010032d, 0x58380205, + 0x82000500, 0x0000000f, 0x82000400, 0x00100e3a, + 0x50004000, 0x50201800, 0x483a600c, 0x480e600b, + 0x4822600d, 0x0201f000, 0x00020151, 0x4803c856, + 0x592c0209, 0x8c00051e, 0x04020017, 0x50200000, + 0x80306c00, 0x40240000, 0x0c01f001, 0x00100b7f, + 0x00100b7f, 0x00100b88, 0x00100b7f, 0x00100b7f, + 0x00100b7f, 0x00100b7f, 0x00100b7f, 0x00100b88, + 0x00100b7f, 0x00100b88, 0x00100b7f, 0x00100b7f, + 0x00100b88, 0x00100b7f, 0x00100b7f, 0x0201f800, + 0x0010032d, 0x8400051e, 0x48025a09, 0x50200000, + 0x80306c00, 0x58343801, 0x481e6010, 0x0401f007, + 0x58341802, 0x58342800, 0x58343801, 0x480e6011, + 0x4816600f, 0x481e6010, 0x0401f28a, 0x4933c857, + 0x5931f809, 0x59301006, 0x800811c0, 0x0400000b, + 0x41780800, 0x42000000, 0x0000000a, 0x0201f800, + 0x0010600e, 0x80080102, 0x04020002, 0x84001542, + 0x80081040, 0x4809fc07, 0x4a026006, 0x00000002, + 0x592c040a, 0x82000500, 0x00000008, 0x0400000b, + 0x0401f831, 0x59300203, 0x82000580, 0x00000004, + 0x04020005, 0x42027000, 0x00000048, 0x0201f800, + 0x00020a34, 0x1c01f000, 0x4cfc0000, 0x58fc0205, + 0x82000500, 0x000000ff, 0x82000580, 0x00000048, + 0x04020009, 0x58fc0409, 0x8c000500, 0x04000006, + 0x58fc080c, 0x8c040d16, 0x04000017, 0x58fc0008, + 0x0401f00a, 0x58fc0409, 0x8c000512, 0x04020014, + 0x58fc0c0a, 0x8c040d16, 0x04020003, 0x5c01f800, + 0x1c01f000, 0x58fc000b, 0x59300812, 0x80040580, + 0x04020009, 0x59300008, 0x84000500, 0x48026008, + 0x42027000, 0x00000048, 0x5c01f800, 0x0201f000, + 0x00020a34, 0x5c01f800, 0x1c01f000, 0x58fdf80a, + 0x0401f7ec, 0x5c000000, 0x4c000000, 0x4803c857, + 0x4933c857, 0x59b808ea, 0x82040d00, 0x00000007, + 0x82040580, 0x00000000, 0x04000025, 0x82040580, + 0x00000003, 0x04000022, 0x59300407, 0x4c000000, + 0x4a026407, 0x00000000, 0x42003000, 0x00000041, + 0x4a0370e5, 0x00003000, 0x42000000, 0x50000000, + 0x41300800, 0x4c180000, 0x0401fca9, 0x5c003000, + 0x0400000e, 0x42000000, 0x0000001e, 0x80000040, + 0x040207ff, 0x80183040, 0x040207f4, 0x42000000, + 0x40000000, 0x41300800, 0x0401fc9d, 0x59880146, + 0x80000000, 0x48031146, 0x4a0370e5, 0x00002000, + 0x5c000000, 0x48026407, 0x1c01f000, 0x59300008, + 0x84000500, 0x48026008, 0x0401f7fc, 0x59c00007, + 0x4a038006, 0x30000000, 0x40000000, 0x59c00007, + 0x8c00050a, 0x040207fe, 0x1c01f000, 0x5c000000, + 0x4c000000, 0x4803c857, 0x42000800, 0x00000001, + 0x0201f800, 0x00101994, 0x4dc00000, 0x4a0370e8, + 0x00000000, 0x42038000, 0x00007720, 0x0401ffec, + 0x42038000, 0x00007700, 0x0401ffe9, 0x0201f800, + 0x00104755, 0x04020017, 0x4a038891, 0x0000ffff, + 0x497b8880, 0x4ce80000, 0x4201d000, 0x00000016, + 0x0201f800, 0x001059d2, 0x497b8892, 0x4201d000, + 0x00000016, 0x0201f800, 0x001059d2, 0x5c01d000, + 0x42000000, 0x0010bd60, 0x0201f800, 0x0010ae10, + 0x0401f812, 0x5c038000, 0x0201f000, 0x00104879, + 0x0401f830, 0x4c080000, 0x4c140000, 0x42000000, + 0x0010bd61, 0x0201f800, 0x0010ae10, 0x0401f807, + 0x5c002800, 0x5c001000, 0x48178892, 0x480b8880, + 0x5c038000, 0x1c01f000, 0x496fc857, 0x836c0580, + 0x00000003, 0x0402000b, 0x4c080000, 0x4c0c0000, + 0x42001000, 0x00008048, 0x42001800, 0x0000ffff, + 0x0201f800, 0x001031f5, 0x5c001800, 0x5c001000, + 0x42000800, 0x0000003c, 0x0201f800, 0x001010db, + 0x59a8006a, 0x80000540, 0x04000005, 0x59a8106b, + 0x800811c0, 0x02020800, 0x001018ff, 0x4a038891, + 0x0000ffff, 0x4a03900d, 0x00000040, 0x0201f800, + 0x00100684, 0x4a0370e8, 0x00000001, 0x1c01f000, + 0x5c000000, 0x4c000000, 0x4803c857, 0x59c41080, + 0x497b8880, 0x4ce80000, 0x4201d000, 0x00000016, + 0x4c080000, 0x0201f800, 0x001059d2, 0x5c001000, + 0x5c01d000, 0x59c42892, 0x497b8892, 0x0201f800, + 0x00104755, 0x04020002, 0x1c01f000, 0x42002000, + 0x00000260, 0x59c418a4, 0x820c1d00, 0x0000000f, + 0x820c0580, 0x00000000, 0x04000010, 0x59c41805, + 0x820c1d00, 0x00000001, 0x0402000e, 0x59c418a4, + 0x820c1d00, 0x0000000f, 0x820c0480, 0x00000007, + 0x04001004, 0x820c0480, 0x0000000c, 0x04001003, + 0x80102040, 0x040207ec, 0x497b8891, 0x1c01f000, + 0x4c100000, 0x42002000, 0x00000019, 0x4a038805, + 0x00000001, 0x0201f800, 0x00101731, 0x59c41805, + 0x820c1d00, 0x00000001, 0x04000005, 0x80102040, + 0x040207f7, 0x5c002000, 0x0401f7f0, 0x5c002000, + 0x0401f7ec, 0x4803c856, 0x1c01f000, 0x00100cb7, + 0x00100cb7, 0x00100cb7, 0x00100cdb, 0x00100cb7, + 0x00100cb7, 0x00100cb7, 0x00100cb7, 0x00100cb7, + 0x00100cdb, 0x00100cb7, 0x00100cb9, 0x00100cb7, + 0x00100cb7, 0x00100cb7, 0x00100cb7, 0x0201f800, + 0x0010032d, 0x82040580, 0x0000001b, 0x0400001a, + 0x82040580, 0x0000002b, 0x04000017, 0x82040580, + 0x0000003b, 0x02020800, 0x0010032d, 0x592c020b, + 0x8c000500, 0x04000073, 0x592c1a08, 0x82040500, + 0x0000000f, 0x82000400, 0x00100e3a, 0x50001000, + 0x50080000, 0x59302014, 0x4802600b, 0x492e600c, + 0x480a600d, 0x480e600e, 0x48126013, 0x5c025800, + 0x1c01f000, 0x592c0010, 0x48026012, 0x592c0011, + 0x48026014, 0x592c1a08, 0x0401f7ed, 0x82040500, + 0x0000000f, 0x82000400, 0x00100e3a, 0x50001000, + 0x50080000, 0x592c1a08, 0x4802600b, 0x492e600c, + 0x480a600d, 0x480e600e, 0x497a6013, 0x0401f7ec, + 0x8c040d00, 0x0402004f, 0x82040d00, 0x00000080, + 0x0400004c, 0x0201f000, 0x00020164, 0x59300014, + 0x59301013, 0x80080580, 0x0402000c, 0x42007800, + 0x80000005, 0x592c1209, 0x82080500, 0xffff7fff, + 0x48025a09, 0x8c08151e, 0x0402003b, 0x823c7d40, + 0x00000020, 0x0401f038, 0x480bc857, 0x42000000, + 0x0010bd0d, 0x0201f800, 0x0010ae10, 0x59302014, + 0x59300415, 0x4803c857, 0x8c000514, 0x04020011, + 0x599c1819, 0x8c0c1d12, 0x0400000b, 0x592c0810, + 0x59300016, 0x80040c80, 0x04000005, 0x04001004, + 0x80040000, 0x80140480, 0x0400100a, 0x0201f800, + 0x001071c7, 0x820c1d40, 0x00000001, 0x0401f020, + 0x84000514, 0x48026415, 0x48126016, 0x4813c857, + 0x0401f93e, 0x0402001a, 0x42007800, 0x80000005, + 0x5930500e, 0x592c0209, 0x4803c857, 0x8c00051e, + 0x04020005, 0x823c7d40, 0x00000020, 0x5930400d, + 0x0401f004, 0x8400051e, 0x48025a09, 0x0401f8ed, + 0x50201800, 0x480e600b, 0x4832600c, 0x4822600d, + 0x482a600e, 0x480fc857, 0x4833c857, 0x4823c857, + 0x482bc857, 0x80000580, 0x483e6004, 0x1c01f000, + 0x0201f800, 0x0010032d, 0x4933c857, 0x4d2c0000, + 0x59900004, 0x81300580, 0x02020800, 0x0010032d, + 0x0201f800, 0x00108953, 0x02000800, 0x0010032d, + 0x59325809, 0x4d3c0000, 0x4d400000, 0x59300004, + 0x4803c857, 0x4c000000, 0x0201f800, 0x00106346, + 0x0201f800, 0x001060e2, 0x5c000000, 0x8c000516, + 0x04000011, 0x592c0010, 0x4803c857, 0x48025808, + 0x41780800, 0x42028000, 0x00000002, 0x0201f800, + 0x00104543, 0x4a025c07, 0x0000ffff, 0x492fc857, + 0x0201f800, 0x000203ab, 0x0201f800, 0x00107144, + 0x0401f015, 0x4a026203, 0x00000002, 0x592c0209, + 0x8400054e, 0x48025a09, 0x59300407, 0x82000580, + 0x00000006, 0x04020009, 0x811800ca, 0x81c80c00, + 0x58040939, 0x592c000e, 0x80040480, 0x592c0810, + 0x80040480, 0x4802580c, 0x417a7800, 0x0201f800, + 0x0010853c, 0x5c028000, 0x5c027800, 0x5c025800, + 0x1c01f000, 0x4933c857, 0x4d2c0000, 0x59900004, 0x81300580, 0x02020800, 0x0010032d, 0x0201f800, - 0x0010889a, 0x02000800, 0x0010032d, 0x59325809, - 0x4d3c0000, 0x4d400000, 0x59300004, 0x4803c857, - 0x4c000000, 0x0201f800, 0x001062a1, 0x0201f800, - 0x0010603d, 0x5c000000, 0x8c000516, 0x04000011, - 0x592c0010, 0x4803c857, 0x48025808, 0x41780800, - 0x42028000, 0x00000002, 0x0201f800, 0x00104504, - 0x4a025c07, 0x0000ffff, 0x492fc857, 0x0201f800, - 0x000203ab, 0x0201f800, 0x001070b5, 0x0401f015, - 0x4a026203, 0x00000002, 0x592c0209, 0x8400054e, - 0x48025a09, 0x59300407, 0x82000580, 0x00000006, - 0x04020009, 0x811800ca, 0x81c80c00, 0x58040939, - 0x592c000e, 0x80040480, 0x592c0810, 0x80040480, - 0x4802580c, 0x417a7800, 0x0201f800, 0x00108487, - 0x5c028000, 0x5c027800, 0x5c025800, 0x1c01f000, - 0x4933c857, 0x4d2c0000, 0x59900004, 0x81300580, - 0x02020800, 0x0010032d, 0x0201f800, 0x0010889a, - 0x02000800, 0x0010032d, 0x59325809, 0x592c0209, - 0x84000540, 0x48025a09, 0x0401f7be, 0x491bc857, - 0x4dd00000, 0x4c580000, 0x41780800, 0x8007a0ca, - 0x83d3a400, 0x00007600, 0x4200b000, 0x000007d0, - 0x599c0019, 0x8c000506, 0x04020003, 0x4200b000, - 0x000003e8, 0x4a03a005, 0x80000002, 0x0402400d, - 0x4c040000, 0x02004800, 0x0002090c, 0x5c000800, - 0x42000000, 0x00001000, 0x50000000, 0x82000480, - 0x24320001, 0x04001003, 0x8058b040, 0x04000016, - 0x59d01006, 0x82080500, 0x00006000, 0x82000580, - 0x00006000, 0x04000007, 0x8c08151e, 0x040007ec, - 0x59d01006, 0x82080500, 0x00006000, 0x040207e8, - 0x83d3a400, 0x00000020, 0x80040800, 0x82040480, - 0x00000005, 0x040017d9, 0x5c00b000, 0x5c03a000, - 0x1c01f000, 0x41180000, 0x80040580, 0x04000008, - 0x42003000, 0x0010b895, 0x58180401, 0x8c000504, - 0x040007f0, 0x850e1d6e, 0x0401f7ee, 0x4a03a005, - 0x30000000, 0x59d00006, 0x4a03a005, 0x30000000, - 0x59d00006, 0x497ba003, 0x497ba007, 0x4a03a005, - 0xf0000001, 0x42001800, 0x00008000, 0x59d00006, - 0x8c00050a, 0x04000005, 0x800c1840, 0x040207fc, - 0x0201f800, 0x0010032d, 0x4a03a005, 0xf0000000, - 0x59d00006, 0x850e1d2e, 0x800410c8, 0x82081400, - 0x0000bf32, 0x58081804, 0x800c19c0, 0x040007d1, - 0x580c0004, 0x84000576, 0x48001804, 0x4933c857, - 0x0401f7cc, 0x4803c856, 0x4dd00000, 0x41780800, - 0x8007a0ca, 0x83d3a400, 0x00007600, 0x4a03a005, - 0x80000001, 0x59d00006, 0x83d3a400, 0x00000020, - 0x80040800, 0x82040480, 0x00000005, 0x040017f8, - 0x5c03a000, 0x1c01f000, 0x59d00006, 0x8c00053e, - 0x0400001e, 0x59902804, 0x4817c857, 0x801429c0, - 0x04000013, 0x5990000a, 0x5990080b, 0x5990100c, - 0x5990180d, 0x4800280b, 0x4804280c, 0x4808280d, - 0x480c280e, 0x59d00000, 0x59d00801, 0x59d01002, - 0x59d01803, 0x59d02004, 0x4800280f, 0x48042810, - 0x48082811, 0x480c2812, 0x48102813, 0x59900006, - 0x82000500, 0xffff0000, 0x48032006, 0x4a03a005, - 0x30000000, 0x59d00006, 0x1c01f000, 0x4803c856, - 0x80204000, 0x50200000, 0x80000540, 0x04000003, - 0x80285040, 0x1c01f000, 0x58300001, 0x80000540, - 0x0400000e, 0x4802600c, 0x40006000, 0x58300205, - 0x82000500, 0x0000000f, 0x82000400, 0x00100e39, - 0x50004000, 0x802041c0, 0x02000800, 0x0010032d, - 0x80285040, 0x1c01f000, 0x40005000, 0x1c01f000, - 0x00000006, 0x00000009, 0x0000000c, 0x0000000f, - 0x00000012, 0x00000000, 0x00000000, 0x0000000c, - 0x00000000, 0x00000000, 0x00000000, 0x00100e34, - 0x00100e33, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00100e34, 0x00100e33, 0x00100e30, - 0x00100e34, 0x00100e33, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00100e34, + 0x00108953, 0x02000800, 0x0010032d, 0x59325809, + 0x592c0209, 0x84000540, 0x48025a09, 0x0401f7be, + 0x491bc857, 0x4dd00000, 0x4c580000, 0x41780800, + 0x8007a0ca, 0x83d3a400, 0x00007600, 0x4200b000, + 0x000007d0, 0x599c0019, 0x8c000506, 0x04020003, + 0x4200b000, 0x000003e8, 0x4a03a005, 0x80000002, + 0x0402400d, 0x4c040000, 0x02004800, 0x0002090c, + 0x5c000800, 0x42000000, 0x00001000, 0x50000000, + 0x82000480, 0x24320001, 0x04001003, 0x8058b040, + 0x04000016, 0x59d01006, 0x82080500, 0x00006000, + 0x82000580, 0x00006000, 0x04000007, 0x8c08151e, + 0x040007ec, 0x59d01006, 0x82080500, 0x00006000, + 0x040207e8, 0x83d3a400, 0x00000020, 0x80040800, + 0x82040480, 0x00000005, 0x040017d9, 0x5c00b000, + 0x5c03a000, 0x1c01f000, 0x41180000, 0x80040580, + 0x04000008, 0x42003000, 0x0010b995, 0x58180401, + 0x8c000504, 0x040007f0, 0x850e1d6e, 0x0401f7ee, + 0x4a03a005, 0x30000000, 0x59d00006, 0x4a03a005, + 0x30000000, 0x59d00006, 0x497ba003, 0x497ba007, + 0x4a03a005, 0xf0000001, 0x42001800, 0x00008000, + 0x59d00006, 0x8c00050a, 0x04000005, 0x800c1840, + 0x040207fc, 0x0201f800, 0x0010032d, 0x4a03a005, + 0xf0000000, 0x59d00006, 0x850e1d2e, 0x800410c8, + 0x82081400, 0x0000bf32, 0x58081804, 0x800c19c0, + 0x040007d1, 0x580c0004, 0x84000576, 0x48001804, + 0x4933c857, 0x0401f7cc, 0x4803c856, 0x4dd00000, + 0x41780800, 0x8007a0ca, 0x83d3a400, 0x00007600, + 0x4a03a005, 0x80000001, 0x59d00006, 0x83d3a400, + 0x00000020, 0x80040800, 0x82040480, 0x00000005, + 0x040017f8, 0x5c03a000, 0x1c01f000, 0x59d00006, + 0x8c00053e, 0x0400001e, 0x59902804, 0x4817c857, + 0x801429c0, 0x04000013, 0x5990000a, 0x5990080b, + 0x5990100c, 0x5990180d, 0x4800280b, 0x4804280c, + 0x4808280d, 0x480c280e, 0x59d00000, 0x59d00801, + 0x59d01002, 0x59d01803, 0x59d02004, 0x4800280f, + 0x48042810, 0x48082811, 0x480c2812, 0x48102813, + 0x59900006, 0x82000500, 0xffff0000, 0x48032006, + 0x4a03a005, 0x30000000, 0x59d00006, 0x1c01f000, + 0x4803c856, 0x80204000, 0x50200000, 0x80000540, + 0x04000003, 0x80285040, 0x1c01f000, 0x58300001, + 0x80000540, 0x0400000e, 0x4802600c, 0x40006000, + 0x58300205, 0x82000500, 0x0000000f, 0x82000400, + 0x00100e3a, 0x50004000, 0x802041c0, 0x02000800, + 0x0010032d, 0x80285040, 0x1c01f000, 0x40005000, + 0x1c01f000, 0x00000006, 0x00000009, 0x0000000c, + 0x0000000f, 0x00000012, 0x00000000, 0x00000000, + 0x0000000c, 0x00000000, 0x00000000, 0x00000000, + 0x00100e35, 0x00100e34, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00100e35, 0x00100e34, + 0x00100e31, 0x00100e35, 0x00100e34, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00100e34, 0x00100e34, 0x00100e34, - 0x00000000, 0x00100e34, 0x00000000, 0x00000000, - 0x00000000, 0x4813c857, 0x492fc857, 0x4933c857, - 0x48126013, 0x592c5208, 0x802851c0, 0x0400004a, - 0x412c6000, 0x0401f84b, 0x04000009, 0x82240580, - 0x00000002, 0x04020003, 0x5830000e, 0x80102480, - 0x50200000, 0x80004540, 0x0400003f, 0x50200000, - 0x80000540, 0x0400000b, 0x80301400, 0x58080002, - 0x80102480, 0x0400101e, 0x801021c0, 0x04000009, - 0x80285040, 0x04000034, 0x80204000, 0x0401f7f4, - 0x58300001, 0x80006540, 0x0400002f, 0x0401f7e6, - 0x80285040, 0x0400002c, 0x80204000, 0x50200000, - 0x80000540, 0x0402000a, 0x58300001, 0x80006540, - 0x04000025, 0x58300205, 0x82004d00, 0x0000000f, - 0x82244400, 0x00100e39, 0x50204000, 0x592c0209, - 0x8400051e, 0x48025a09, 0x0401f013, 0x80102080, - 0x80102000, 0x48126011, 0x4813c857, 0x58080802, - 0x40100000, 0x80042480, 0x02001800, 0x0010032d, - 0x58080000, 0x58081801, 0x80102400, 0x4812600f, - 0x480e6010, 0x4813c857, 0x592c0209, 0x8400055e, - 0x48025a09, 0x4833c857, 0x4823c857, 0x482bc857, - 0x4832600c, 0x4822600d, 0x482a600e, 0x80000580, - 0x0401f003, 0x82000540, 0x00000001, 0x1c01f000, - 0x58300205, 0x82004d00, 0x0000000f, 0x82244400, - 0x00100e39, 0x82000500, 0x000000ff, 0x82000580, - 0x00000029, 0x0402001b, 0x50204000, 0x592c040a, - 0x80000540, 0x02000800, 0x0010032d, 0x82000c80, - 0x00000002, 0x04001011, 0x58300001, 0x80006540, - 0x02000800, 0x0010032d, 0x58300205, 0x82000500, - 0x0000000f, 0x82000400, 0x00100e39, 0x50004000, - 0x40040000, 0x800409c0, 0x04000006, 0x82040c80, - 0x00000005, 0x040217f1, 0x80204400, 0x80000580, - 0x1c01f000, 0x4c5c0000, 0x59e4b800, 0x485fc857, - 0x825c0500, 0x0000001f, 0x04000004, 0x59e40862, - 0x0201f800, 0x0010032d, 0x825c0500, 0x000000e0, - 0x02000800, 0x0010032d, 0x8c5cbd0e, 0x04020807, - 0x8c5cbd0c, 0x04020809, 0x8c5cbd0a, 0x04020873, - 0x5c00b800, 0x1c01f000, 0x4803c856, 0x4a03c800, - 0x00000080, 0x1c01f000, 0x4d2c0000, 0x42007800, - 0x0010bcb1, 0x583c0003, 0x583c0804, 0x80040540, - 0x0400003a, 0x42000800, 0x0010bb56, 0x50065800, - 0x592c0002, 0x82000580, 0x00000000, 0x04000033, - 0x59e40050, 0x59e40852, 0x80040480, 0x82000500, - 0xfffffc00, 0x04020005, 0x59e40050, 0x59e40851, - 0x80040800, 0x80040480, 0x82000c80, 0x00000400, - 0x59e40050, 0x80041400, 0x480bc857, 0x50080000, - 0x58080801, 0x80040540, 0x04000020, 0x480bc857, - 0x480a5803, 0x583c1009, 0x583c000a, 0x80080580, - 0x04020005, 0x583c0000, 0x84000550, 0x48007800, - 0x41781000, 0x82080400, 0x00001000, 0x4803c857, - 0x48007809, 0x583c0003, 0x80081400, 0x480bc857, - 0x583c0804, 0x4a025801, 0x00000000, 0x4a025808, - 0x00100f2e, 0x480a5806, 0x48065807, 0x59e40053, - 0x800000c4, 0x48025805, 0x412c1000, 0x492fc857, - 0x0201f800, 0x00020016, 0x5c025800, 0x4a03c800, - 0x00000040, 0x1c01f000, 0x42007800, 0x0010bb56, - 0x503c7800, 0x4a007802, 0x00000100, 0x42007800, - 0x0010bcb1, 0x583c0000, 0x84000552, 0x48007800, - 0x583c100c, 0x480bc857, 0x80081000, 0x4808780c, - 0x583c180b, 0x800c19c0, 0x04000017, 0x82080500, - 0x00000003, 0x04020014, 0x583c0007, 0x4803c857, - 0x583c2008, 0x4813c857, 0x80102000, 0x80100580, - 0x04020002, 0x41782000, 0x48107808, 0x400c0000, - 0x80080580, 0x04020008, 0x4978780c, 0x42001800, - 0x00000001, 0x42001000, 0x00008028, 0x0201f800, - 0x001031eb, 0x1c01f000, 0x4a03c800, 0x00000020, - 0x0201f800, 0x0010ad15, 0x59e40000, 0x1c01f000, - 0x42000000, 0x00001000, 0x50000000, 0x82000480, - 0x24320001, 0x0400100d, 0x0201f800, 0x0010ae33, - 0x04000008, 0x42000000, 0x00007a42, 0x50007000, - 0x8c387520, 0x04020003, 0x84387560, 0x44380000, - 0x4a030000, 0x00000000, 0x1c01f000, 0x4d2c0000, - 0x4a007000, 0x00000000, 0x82040d00, 0x43000f80, - 0x02020800, 0x0010032d, 0x58380008, 0x4803c00f, - 0x4a0370e4, 0x00003000, 0x0201f800, 0x00108cc3, - 0x583a5807, 0x592c0000, 0x48007007, 0x800001c0, - 0x04020002, 0x49787006, 0x0201f800, 0x00100580, - 0x5c025800, 0x42007000, 0x00020b54, 0x0201f000, - 0x0002002c, 0x4803c856, 0x4c3c0000, 0x4d2c0000, - 0x4d300000, 0x58300009, 0x80025d40, 0x02000800, - 0x0010032d, 0x592e6009, 0x4c300000, 0x0201f800, - 0x00108ce2, 0x5c006000, 0x02000800, 0x0010032d, - 0x58300002, 0x82000580, 0x00000100, 0x0402000f, - 0x5930780c, 0x583c0001, 0x80007d40, 0x0400000e, - 0x4802600c, 0x82000400, 0x00000002, 0x48006003, - 0x583c0000, 0x48006005, 0x40301000, 0x0201f800, - 0x00020016, 0x0401f00c, 0x4a025a07, 0x00000002, - 0x492fc857, 0x4c300000, 0x0201f800, 0x000203ab, - 0x5c025800, 0x0201f800, 0x00100580, 0x0201f800, - 0x00020a10, 0x5c026000, 0x5c025800, 0x5c007800, - 0x1c01f000, 0x4803c856, 0x4d2c0000, 0x4d300000, - 0x42007000, 0x00020b54, 0x58380800, 0x82040580, - 0x00000002, 0x04020011, 0x58386001, 0x58300009, - 0x812c0580, 0x0402000d, 0x59e00004, 0x8c00050e, - 0x040007fe, 0x59dc0006, 0x4803c857, 0x4a03b805, - 0x20000000, 0x8c00053e, 0x040007f8, 0x4a007000, - 0x00000000, 0x0401f019, 0x58386005, 0x40305000, - 0x803061c0, 0x02000800, 0x0010032d, 0x58300009, - 0x812c0580, 0x04000004, 0x40305000, 0x58306000, - 0x0401f7f8, 0x40280000, 0x80300580, 0x58300000, - 0x04000006, 0x48005000, 0x800001c0, 0x04020007, - 0x48287004, 0x0401f005, 0x800001c0, 0x04020002, - 0x48007004, 0x48007005, 0x40325800, 0x0201f800, - 0x00100580, 0x5c026000, 0x5c025800, 0x0201f000, - 0x00020026, 0x4803c856, 0x42000800, 0x0000003c, - 0x48079000, 0x59c80000, 0x80040500, 0x040207fe, - 0x497b9005, 0x4a039035, 0x00880200, 0x59a8000d, - 0x800000e0, 0x4803900e, 0x4a039011, 0x00000024, - 0x4a03900f, 0x0010f584, 0x4a039010, 0x0010f584, - 0x4a039015, 0x0000007f, 0x4a03900d, 0x00000040, - 0x4a039000, 0x00001600, 0x1c01f000, 0x59c80007, - 0x8c000508, 0x040208c9, 0x59c80800, 0x8c040d16, - 0x04020004, 0x82000500, 0x00000006, 0x0c01f005, - 0x4807c857, 0x82000500, 0x0000000e, 0x0c01f001, - 0x0010102a, 0x00101028, 0x001050fa, 0x00101028, - 0x0010102c, 0x00101028, 0x0010102c, 0x0010102c, - 0x00101028, 0x00101028, 0x00101028, 0x00101028, - 0x0010102c, 0x00101028, 0x0010102c, 0x00101028, - 0x0201f800, 0x0010032d, 0x4803c857, 0x1c01f000, - 0x59c8080c, 0x4807c857, 0x82040500, 0x00006000, - 0x04000004, 0x0201f800, 0x0010acd8, 0x0401f006, - 0x82040500, 0x007f0000, 0x04000006, 0x0201f800, - 0x0010acaa, 0x0201f800, 0x001063ad, 0x0401f03c, - 0x82040500, 0x00000014, 0x04000014, 0x0201f800, - 0x0010ad07, 0x836c0580, 0x00000003, 0x0400000d, - 0x0201f800, 0x00104716, 0x04000004, 0x0201f800, - 0x001038f5, 0x0401f007, 0x4a035014, 0x00000001, - 0x4202d800, 0x00000001, 0x0201f800, 0x00104670, - 0x0401f828, 0x0401f026, 0x82040500, 0x00001c00, - 0x04000005, 0x0201f800, 0x0010ace6, 0x0401f821, - 0x0401f01f, 0x82040500, 0x00000140, 0x04000005, - 0x0201f800, 0x0010acf9, 0x0401f81a, 0x0401f018, - 0x82040500, 0x00008000, 0x04000015, 0x0201f800, - 0x00104716, 0x0400000f, 0x59c400a4, 0x82000500, - 0x0000000f, 0x82000580, 0x0000000b, 0x04020009, - 0x4c040000, 0x0201f800, 0x00103911, 0x42000000, - 0x0000001e, 0x80000040, 0x040207ff, 0x5c000800, - 0x0201f800, 0x0010acd1, 0x0401f802, 0x1c01f000, - 0x4c0c0000, 0x4c100000, 0x4c140000, 0x0201f800, - 0x00100c0e, 0x5c002800, 0x5c002000, 0x5c001800, - 0x1c01f000, 0x4803c856, 0x59a80804, 0x59a80020, - 0x82000500, 0xfffff000, 0x80040540, 0x48035020, - 0x59a80024, 0x82000500, 0xfffff000, 0x80040540, - 0x48035024, 0x48078882, 0x82041c00, 0x0000000f, - 0x800c1908, 0x820c1c00, 0x00000004, 0x400c2000, - 0x901029c0, 0x82040480, 0x000001e4, 0x04021005, - 0x42001000, 0x00000008, 0x801020c6, 0x0401f031, - 0x82040480, 0x00000230, 0x04021009, 0x42001000, - 0x00000007, 0x801000c2, 0x800000c2, 0x80100400, - 0x80100400, 0x80102400, 0x0401f026, 0x82040480, - 0x00000298, 0x04021008, 0x42001000, 0x00000006, - 0x801000c2, 0x800000c2, 0x80100400, 0x80102400, - 0x0401f01c, 0x82040480, 0x00000328, 0x04021007, - 0x42001000, 0x00000005, 0x801000c2, 0x800000c2, - 0x80102400, 0x0401f013, 0x82040480, 0x00000404, - 0x04021005, 0x42001000, 0x00000004, 0x801020c4, - 0x0401f00c, 0x82040480, 0x0000056c, 0x04021006, - 0x42001000, 0x00000003, 0x801000c2, 0x80102400, - 0x0401f004, 0x42001000, 0x00000002, 0x801020c2, - 0x82100480, 0x00000110, 0x80000080, 0x80002000, - 0x800800d0, 0x80140540, 0x80100540, 0x48039035, - 0x48035072, 0x1c01f000, 0x59c80815, 0x0201f800, - 0x00100322, 0x40680800, 0x82040d00, 0x0000007c, - 0x48079000, 0x59c80000, 0x80040500, 0x040207fe, - 0x8c040d04, 0x04000003, 0x59c80035, 0x48039035, - 0x59c80000, 0x82000540, 0x00001200, 0x48039000, - 0x1c01f000, 0x4803c856, 0x497b88a9, 0x4a038807, - 0x00000001, 0x497b8807, 0x59c40005, 0x48038805, - 0x0201f800, 0x00101616, 0x4201d000, 0x000001f4, - 0x0201f800, 0x0010592d, 0x497b880e, 0x4200b000, - 0x000001f4, 0x42000000, 0x00000001, 0x42000800, - 0x00000014, 0x0201f800, 0x0010173f, 0x42000800, - 0x00000014, 0x0201f800, 0x00101737, 0x8c040d00, - 0x04000005, 0x8058b040, 0x040207f3, 0x0201f800, - 0x0010032d, 0x4200b000, 0x00000032, 0x42000000, - 0x00000001, 0x42000800, 0x000000b4, 0x0201f800, - 0x0010173f, 0x42000800, 0x000000b4, 0x0201f800, - 0x00101737, 0x8c040d00, 0x04000005, 0x8058b040, - 0x040207f3, 0x0201f800, 0x0010032d, 0x59c40005, - 0x48038805, 0x42000000, 0x00000083, 0x59e00803, - 0x82040d00, 0x00030000, 0x82040d80, 0x00020000, - 0x04020003, 0x42000000, 0x00000089, 0x800008d0, - 0x4a035044, 0x00008900, 0x4a035045, 0x00008900, - 0x48075046, 0x42000800, 0x000000e0, 0x0201f800, - 0x0010173f, 0x42000800, 0x000000f4, 0x0201f800, - 0x00101737, 0x82040500, 0xffffffd1, 0x82000540, - 0x00000002, 0x42000800, 0x000000f4, 0x0201f800, - 0x0010173f, 0x42000800, 0x000000a0, 0x0201f800, - 0x00101737, 0x82040540, 0x00000001, 0x42000800, - 0x000000a0, 0x0201f800, 0x0010173f, 0x42000800, - 0x00000000, 0x0201f800, 0x00101737, 0x82040540, - 0x00000001, 0x42000800, 0x00000000, 0x0201f800, - 0x0010173f, 0x4201d000, 0x0001d4c0, 0x0201f800, - 0x0010592d, 0x0401fa68, 0x4a0388a7, 0x0000f7f7, - 0x4a0388a3, 0x8000403c, 0x4a0388ae, 0x000061a8, - 0x4a038801, 0x00032063, 0x4a038810, 0x00410108, - 0x4a038811, 0x00520608, 0x4a038812, 0x00450320, - 0x4a038813, 0x00440405, 0x4a03881c, 0x004132e1, - 0x4a03881d, 0x004001fe, 0x4a038850, 0x80000108, - 0x4a038860, 0x00000008, 0x4a038870, 0x00000008, - 0x4a038851, 0x80000508, 0x4a038861, 0x00800000, - 0x4a038871, 0x00800000, 0x4a038852, 0x80000708, - 0x4a038862, 0x00800000, 0x4a038872, 0x00800000, - 0x4a038853, 0x80000608, 0x497b8863, 0x4a038873, - 0x00800000, 0x4a038882, 0x00000840, 0x4a0388a5, - 0x000000fe, 0x4a0388a6, 0x0000001e, 0x4a0388b0, - 0x00007530, 0x4a038802, 0x0000ffff, 0x4a038806, - 0xc0e00800, 0x1c01f000, 0x850e1d4e, 0x42000800, - 0x00000040, 0x0201f800, 0x00101737, 0x82040500, - 0xffffffaf, 0x82000540, 0x00000000, 0x42000800, - 0x00000040, 0x0201f800, 0x0010173f, 0x42000800, - 0x000000f4, 0x0201f800, 0x00101737, 0x4c040000, - 0x40040000, 0x84000548, 0x42000800, 0x000000f4, - 0x0201f800, 0x0010173f, 0x42000800, 0x00000000, - 0x0201f800, 0x00101737, 0x82040500, 0xffffffc1, - 0x82000540, 0x00000038, 0x42000800, 0x00000000, - 0x0201f800, 0x0010173f, 0x5c000000, 0x42000800, - 0x000000f4, 0x0201f000, 0x0010173f, 0x59c40805, - 0x59c40006, 0x80040d00, 0x02000800, 0x0010032d, - 0x82040500, 0x00e00800, 0x04020004, 0x8c040d3e, - 0x040208f9, 0x0401f007, 0x82040500, 0x00800800, - 0x02020800, 0x00100322, 0x0201f800, 0x0010032d, - 0x4c5c0000, 0x4c600000, 0x59c4b805, 0x59c40006, - 0x8c000500, 0x04000003, 0x8c5cbd00, 0x040200a2, - 0x485fc857, 0x0201f800, 0x00104716, 0x0400001e, - 0x59c40005, 0x82000500, 0x000000c0, 0x04000054, - 0x0201f800, 0x00104741, 0x04020051, 0x59c40006, - 0x82000500, 0x000000f0, 0x04020004, 0x4a038805, - 0x000000c0, 0x0401f04a, 0x59a80015, 0x84000506, - 0x48035015, 0x42006000, 0xff203fff, 0x42006800, - 0x40000000, 0x0201f800, 0x00103a6a, 0x42000800, - 0x00000010, 0x42001000, 0x001039da, 0x0201f800, - 0x00105922, 0x8c5cbd34, 0x04020039, 0x4a035013, - 0x0000aaaa, 0x59c40005, 0x8c00050c, 0x04020012, - 0x8c00050e, 0x0402001c, 0x8c00050a, 0x04020026, - 0x8c000508, 0x0400000b, 0x59a80011, 0x82000580, - 0x00000009, 0x04020007, 0x42000000, 0x0010bb72, - 0x0201f800, 0x0010ad1d, 0x0201f800, 0x00104954, - 0x0401f067, 0x42000000, 0x0010bb80, 0x0201f800, - 0x0010ad1d, 0x41781800, 0x42002000, 0x00000001, - 0x0201f800, 0x001019fa, 0x4a035014, 0x00000000, - 0x0401f014, 0x42000000, 0x0010bb81, 0x0201f800, - 0x0010ad1d, 0x41781800, 0x42002000, 0x00000002, - 0x0201f800, 0x001019fa, 0x4a035014, 0x00000002, - 0x0401f008, 0x42000000, 0x0010bb74, 0x0201f800, - 0x0010ad1d, 0x0201f800, 0x001048e2, 0x0401f048, - 0x0201f800, 0x001049bf, 0x0401f045, 0x8c5cbd34, - 0x04000041, 0x59c40005, 0x8c00053a, 0x04020005, - 0x42000000, 0x0010bb68, 0x0201f800, 0x0010ad1d, - 0x4a038805, 0x20000000, 0x0201f800, 0x00104716, - 0x04020015, 0x4a038805, 0x04000000, 0x59c418a8, - 0x42002000, 0x00000000, 0x0201f800, 0x001019fa, - 0x0201f800, 0x00104732, 0x04020008, 0x4a035014, + 0x00100e35, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00100e35, 0x00100e35, + 0x00100e35, 0x00000000, 0x00100e35, 0x00000000, + 0x00000000, 0x00000000, 0x4813c857, 0x492fc857, + 0x4933c857, 0x48126013, 0x592c5208, 0x802851c0, + 0x0400004a, 0x412c6000, 0x0401f84b, 0x04000009, + 0x82240580, 0x00000002, 0x04020003, 0x5830000e, + 0x80102480, 0x50200000, 0x80004540, 0x0400003f, + 0x50200000, 0x80000540, 0x0400000b, 0x80301400, + 0x58080002, 0x80102480, 0x0400101e, 0x801021c0, + 0x04000009, 0x80285040, 0x04000034, 0x80204000, + 0x0401f7f4, 0x58300001, 0x80006540, 0x0400002f, + 0x0401f7e6, 0x80285040, 0x0400002c, 0x80204000, + 0x50200000, 0x80000540, 0x0402000a, 0x58300001, + 0x80006540, 0x04000025, 0x58300205, 0x82004d00, + 0x0000000f, 0x82244400, 0x00100e3a, 0x50204000, + 0x592c0209, 0x8400051e, 0x48025a09, 0x0401f013, + 0x80102080, 0x80102000, 0x48126011, 0x4813c857, + 0x58080802, 0x40100000, 0x80042480, 0x02001800, + 0x0010032d, 0x58080000, 0x58081801, 0x80102400, + 0x4812600f, 0x480e6010, 0x4813c857, 0x592c0209, + 0x8400055e, 0x48025a09, 0x4833c857, 0x4823c857, + 0x482bc857, 0x4832600c, 0x4822600d, 0x482a600e, + 0x80000580, 0x0401f003, 0x82000540, 0x00000001, + 0x1c01f000, 0x58300205, 0x82004d00, 0x0000000f, + 0x82244400, 0x00100e3a, 0x82000500, 0x000000ff, + 0x82000580, 0x00000029, 0x0402001b, 0x50204000, + 0x592c040a, 0x80000540, 0x02000800, 0x0010032d, + 0x82000c80, 0x00000002, 0x04001011, 0x58300001, + 0x80006540, 0x02000800, 0x0010032d, 0x58300205, + 0x82000500, 0x0000000f, 0x82000400, 0x00100e3a, + 0x50004000, 0x40040000, 0x800409c0, 0x04000006, + 0x82040c80, 0x00000005, 0x040217f1, 0x80204400, + 0x80000580, 0x1c01f000, 0x4c5c0000, 0x59e4b800, + 0x485fc857, 0x825c0500, 0x0000001f, 0x04000004, + 0x59e40862, 0x0201f800, 0x0010032d, 0x825c0500, + 0x000000e0, 0x02000800, 0x0010032d, 0x8c5cbd0e, + 0x04020807, 0x8c5cbd0c, 0x04020809, 0x8c5cbd0a, + 0x04020873, 0x5c00b800, 0x1c01f000, 0x4803c856, + 0x4a03c800, 0x00000080, 0x1c01f000, 0x4d2c0000, + 0x42007800, 0x0010bdb1, 0x583c0003, 0x583c0804, + 0x80040540, 0x0400003a, 0x42000800, 0x0010bc56, + 0x50065800, 0x592c0002, 0x82000580, 0x00000000, + 0x04000033, 0x59e40050, 0x59e40852, 0x80040480, + 0x82000500, 0xfffffc00, 0x04020005, 0x59e40050, + 0x59e40851, 0x80040800, 0x80040480, 0x82000c80, + 0x00000400, 0x59e40050, 0x80041400, 0x480bc857, + 0x50080000, 0x58080801, 0x80040540, 0x04000020, + 0x480bc857, 0x480a5803, 0x583c1009, 0x583c000a, + 0x80080580, 0x04020005, 0x583c0000, 0x84000550, + 0x48007800, 0x41781000, 0x82080400, 0x00001000, + 0x4803c857, 0x48007809, 0x583c0003, 0x80081400, + 0x480bc857, 0x583c0804, 0x4a025801, 0x00000000, + 0x4a025808, 0x00100f2f, 0x480a5806, 0x48065807, + 0x59e40053, 0x800000c4, 0x48025805, 0x412c1000, + 0x492fc857, 0x0201f800, 0x00020016, 0x5c025800, + 0x4a03c800, 0x00000040, 0x1c01f000, 0x42007800, + 0x0010bc56, 0x503c7800, 0x4a007802, 0x00000100, + 0x42007800, 0x0010bdb1, 0x583c0000, 0x84000552, + 0x48007800, 0x583c100c, 0x480bc857, 0x80081000, + 0x4808780c, 0x583c180b, 0x800c19c0, 0x04000017, + 0x82080500, 0x00000003, 0x04020014, 0x583c0007, + 0x4803c857, 0x583c2008, 0x4813c857, 0x80102000, + 0x80100580, 0x04020002, 0x41782000, 0x48107808, + 0x400c0000, 0x80080580, 0x04020008, 0x4978780c, + 0x42001800, 0x00000001, 0x42001000, 0x00008028, + 0x0201f800, 0x001031f5, 0x1c01f000, 0x4a03c800, + 0x00000020, 0x0201f800, 0x0010ae08, 0x59e40000, + 0x1c01f000, 0x42000000, 0x00001000, 0x50000000, + 0x82000480, 0x24320001, 0x0400100d, 0x0201f800, + 0x0010af26, 0x04000008, 0x42000000, 0x00007a42, + 0x50007000, 0x8c387520, 0x04020003, 0x84387560, + 0x44380000, 0x4a030000, 0x00000000, 0x1c01f000, + 0x4d2c0000, 0x4a007000, 0x00000000, 0x82040d00, + 0x43000f80, 0x02020800, 0x0010032d, 0x58380008, + 0x4803c00f, 0x4a0370e4, 0x00003000, 0x0201f800, + 0x00108d7c, 0x583a5807, 0x592c0000, 0x48007007, + 0x800001c0, 0x04020002, 0x49787006, 0x0201f800, + 0x00100580, 0x5c025800, 0x42007000, 0x00020b54, + 0x0201f000, 0x0002002c, 0x4803c856, 0x4c3c0000, + 0x4d2c0000, 0x4d300000, 0x58300009, 0x80025d40, + 0x02000800, 0x0010032d, 0x592e6009, 0x4c300000, + 0x0201f800, 0x00108d9b, 0x5c006000, 0x02000800, + 0x0010032d, 0x58300002, 0x82000580, 0x00000100, + 0x0402000f, 0x5930780c, 0x583c0001, 0x80007d40, + 0x0400000e, 0x4802600c, 0x82000400, 0x00000002, + 0x48006003, 0x583c0000, 0x48006005, 0x40301000, + 0x0201f800, 0x00020016, 0x0401f00c, 0x4a025a07, + 0x00000002, 0x492fc857, 0x4c300000, 0x0201f800, + 0x000203ab, 0x5c025800, 0x0201f800, 0x00100580, + 0x0201f800, 0x00020a10, 0x5c026000, 0x5c025800, + 0x5c007800, 0x1c01f000, 0x4803c856, 0x4d2c0000, + 0x4d300000, 0x42007000, 0x00020b54, 0x58380800, + 0x82040580, 0x00000002, 0x04020011, 0x58386001, + 0x58300009, 0x812c0580, 0x0402000d, 0x59e00004, + 0x8c00050e, 0x040007fe, 0x59dc0006, 0x4803c857, + 0x4a03b805, 0x20000000, 0x8c00053e, 0x040007f8, + 0x4a007000, 0x00000000, 0x0401f019, 0x58386005, + 0x40305000, 0x803061c0, 0x02000800, 0x0010032d, + 0x58300009, 0x812c0580, 0x04000004, 0x40305000, + 0x58306000, 0x0401f7f8, 0x40280000, 0x80300580, + 0x58300000, 0x04000006, 0x48005000, 0x800001c0, + 0x04020007, 0x48287004, 0x0401f005, 0x800001c0, + 0x04020002, 0x48007004, 0x48007005, 0x40325800, + 0x0201f800, 0x00100580, 0x5c026000, 0x5c025800, + 0x0201f000, 0x00020026, 0x4803c856, 0x42000800, + 0x0000003c, 0x48079000, 0x59c80000, 0x80040500, + 0x040207fe, 0x497b9005, 0x4a039035, 0x00880200, + 0x59a8000d, 0x800000e0, 0x4803900e, 0x4a039011, + 0x00000024, 0x4a03900f, 0x0010f694, 0x4a039010, + 0x0010f694, 0x4a039015, 0x0000007f, 0x4a03900d, + 0x00000040, 0x4a039000, 0x00001600, 0x1c01f000, + 0x59c80007, 0x8c000508, 0x040208c9, 0x59c80800, + 0x8c040d16, 0x04020004, 0x82000500, 0x00000006, + 0x0c01f005, 0x4807c857, 0x82000500, 0x0000000e, + 0x0c01f001, 0x0010102b, 0x00101029, 0x00105150, + 0x00101029, 0x0010102d, 0x00101029, 0x0010102d, + 0x0010102d, 0x00101029, 0x00101029, 0x00101029, + 0x00101029, 0x0010102d, 0x00101029, 0x0010102d, + 0x00101029, 0x0201f800, 0x0010032d, 0x4803c857, + 0x1c01f000, 0x59c8080c, 0x4807c857, 0x82040500, + 0x00006000, 0x04000004, 0x0201f800, 0x0010adcb, + 0x0401f006, 0x82040500, 0x007f0000, 0x04000006, + 0x0201f800, 0x0010ad9d, 0x0201f800, 0x00106452, + 0x0401f03c, 0x82040500, 0x00000014, 0x04000014, + 0x0201f800, 0x0010adfa, 0x836c0580, 0x00000003, + 0x0400000d, 0x0201f800, 0x00104755, 0x04000004, + 0x0201f800, 0x00103908, 0x0401f007, 0x4a035014, 0x00000001, 0x4202d800, 0x00000001, 0x0201f800, - 0x00104670, 0x0401f06d, 0x41780000, 0x0201f800, - 0x001046e7, 0x0201f800, 0x001017f1, 0x4000c000, - 0x0201f800, 0x0010175e, 0x836c1580, 0x00000004, - 0x0402000c, 0x8c5cbd00, 0x04020017, 0x8d0e1d06, - 0x04020005, 0x59c410a3, 0x82081540, 0x00000008, - 0x480b88a3, 0x59c41006, 0x84081540, 0x480b8806, - 0x4a038805, 0x04000000, 0x4202d800, 0x00000001, - 0x497b5010, 0x8d0e1d18, 0x04020005, 0x4803c856, - 0x850e1d06, 0x0201f800, 0x00103916, 0x0201f800, - 0x0010330a, 0x8c5cbd3c, 0x04020866, 0x8c5cbd00, - 0x04000043, 0x42000000, 0x0010bc85, 0x0201f800, - 0x0010ad1d, 0x4a038805, 0x00000001, 0x4200b000, - 0x00000352, 0x4201d000, 0x00000064, 0x4c580000, - 0x0201f800, 0x0010592d, 0x0201f800, 0x001016ee, - 0x5c00b000, 0x04000004, 0x8058b040, 0x040207f6, - 0x0401f004, 0x4a038805, 0x00000001, 0x0401f02c, - 0x59c40006, 0x84000500, 0x48038806, 0x59a80873, - 0x8c040d3e, 0x04000005, 0x82040d40, 0x0000000b, - 0x48075073, 0x850e1d48, 0x0201f800, 0x001063db, - 0x497b8880, 0x59c4000d, 0x8c000506, 0x04000006, - 0x42002000, 0x00000005, 0x0201f800, 0x00104a0a, - 0x0401f005, 0x42002000, 0x00000006, 0x0201f800, - 0x00104a0a, 0x59c400a3, 0x82000500, 0xfcf8ffff, - 0x480388a3, 0x4a035058, 0x00000002, 0x4202d800, - 0x00000004, 0x4a038805, 0x00000001, 0x0201f800, - 0x00100454, 0x0401fb69, 0x497b5036, 0x4a035043, - 0x00000001, 0x0201f800, 0x0010ee13, 0x825cbd00, - 0xbbfffffe, 0x485f8805, 0x5c00c000, 0x5c00b800, - 0x1c01f000, 0x4d180000, 0x59c41004, 0x480bc857, - 0x8c081500, 0x04000006, 0x4803c856, 0x497b2807, - 0x0201f800, 0x0010649f, 0x0401f009, 0x82080500, - 0x000001f0, 0x04000006, 0x4803c856, 0x0201f800, - 0x001066c5, 0x02020800, 0x001064c4, 0x4a038805, - 0x80000000, 0x5c023000, 0x1c01f000, 0x59c408a3, - 0x4807c857, 0x84040d40, 0x480788a3, 0x1c01f000, - 0x4d900000, 0x4dd00000, 0x4da40000, 0x4d140000, - 0x4a038805, 0x40000000, 0x42000000, 0x0010bb7a, - 0x0201f800, 0x0010ad1d, 0x0201f800, 0x0010610d, - 0x59c41004, 0x8c081500, 0x04000055, 0x598e600f, - 0x497b2807, 0x813261c0, 0x04000032, 0x59300403, - 0x82000580, 0x00000032, 0x0402002e, 0x5930001d, - 0x48038833, 0x4a038807, 0x00018000, 0x4201d000, - 0x00000002, 0x0201f800, 0x0010592d, 0x497b8807, - 0x4201d000, 0x00000002, 0x0201f800, 0x0010592d, - 0x0201f800, 0x00106305, 0x4201d000, 0x00007530, - 0x0201f800, 0x0010592d, 0x59c408a4, 0x82040d00, - 0x0000000f, 0x82040d80, 0x00000000, 0x04000005, - 0x42000000, 0x00200000, 0x0201f800, 0x00101744, - 0x0201f800, 0x0010605d, 0x59300009, 0x80000540, - 0x02000800, 0x0010032d, 0x40025800, 0x4a025a05, - 0x00000103, 0x5931d822, 0x58ef400a, 0x58ec0008, - 0x0801f800, 0x0201f800, 0x00020a10, 0x0401f046, - 0x598c0011, 0x82001c80, 0x000000c8, 0x04021010, - 0x80000000, 0x48031811, 0x59c400a4, 0x82000500, - 0x0000000f, 0x82000580, 0x00000002, 0x04020005, - 0x42000000, 0x00200000, 0x0201f800, 0x00101744, - 0x0201f800, 0x001058c9, 0x0401f033, 0x4933c857, - 0x0201f800, 0x00106305, 0x813261c0, 0x0400002e, - 0x4a026203, 0x00000001, 0x42027000, 0x00000027, - 0x0201f800, 0x00020a34, 0x0401f027, 0x0201f800, - 0x001066c5, 0x04000024, 0x0201f800, 0x00106705, - 0x0201f800, 0x001058f4, 0x59926004, 0x813261c0, - 0x04000012, 0x42001800, 0x000000c8, 0x0201f800, - 0x001066b9, 0x0402000d, 0x59c400a4, 0x82000500, - 0x0000000f, 0x82000580, 0x00000002, 0x04020004, - 0x42000000, 0x00200000, 0x0401fbf6, 0x0201f800, - 0x001058ce, 0x0401f00c, 0x4933c857, 0x0201f800, - 0x001062a1, 0x813261c0, 0x04000007, 0x42027000, - 0x0000004f, 0x4a026203, 0x00000003, 0x0201f800, - 0x00020a34, 0x5c022800, 0x5c034800, 0x5c03a000, - 0x5c032000, 0x0201f000, 0x001060fa, 0x40680000, - 0x810c0d80, 0x8c040d0e, 0x0400004f, 0x4803c857, - 0x8d0e1d0e, 0x04000023, 0x850e1d0e, 0x497b5058, - 0x42000000, 0x0010bb61, 0x0201f800, 0x0010ad1d, - 0x0201f800, 0x0010add1, 0x42001000, 0x00008011, - 0x59c40001, 0x82000500, 0x00018000, 0x82001d80, - 0x00000000, 0x04000009, 0x82001d80, 0x00008000, - 0x04000009, 0x82001d80, 0x00010000, 0x04000009, - 0x0201f800, 0x0010032d, 0x42001800, 0x00000000, - 0x0401f006, 0x42001800, 0x00000001, 0x0401f003, - 0x42001800, 0x00000003, 0x0201f000, 0x001031eb, - 0x850e1d4e, 0x59a80858, 0x800409c0, 0x04020007, - 0x59c4000d, 0x8c000520, 0x04000004, 0x42001800, - 0x00000003, 0x0401f002, 0x40041800, 0x0201f800, - 0x0010adb5, 0x42001000, 0x00008012, 0x59a82873, - 0x8c142d3e, 0x04000006, 0x82142d00, 0x00000003, - 0x0201f800, 0x001031ec, 0x0401f003, 0x0201f800, - 0x001031eb, 0x0201f800, 0x00100454, 0x0201f800, - 0x0010ae24, 0x0402000c, 0x0401f84c, 0x4d400000, - 0x4d3c0000, 0x42028000, 0x00000028, 0x42027800, - 0x00000008, 0x0201f800, 0x0010ded4, 0x5c027800, - 0x5c028000, 0x1c01f000, 0x4803c857, 0x82000400, - 0x00101b0a, 0x50000800, 0x82040d00, 0x000000ff, - 0x1c01f000, 0x4803c856, 0x4c580000, 0x4200b000, - 0x00000010, 0x497b88ac, 0x497b88ad, 0x8058b040, - 0x040207fe, 0x5c00b000, 0x1c01f000, 0x40680800, - 0x4807c857, 0x4807500f, 0x80041108, 0x4200b000, - 0x00000010, 0x497b88ac, 0x80000580, 0x800811c0, - 0x04020006, 0x82040500, 0x0000000f, 0x82000400, - 0x0010ae3e, 0x50000000, 0x480388ad, 0x80081040, - 0x8058b040, 0x040207f5, 0x1c01f000, 0x4803c857, - 0x4c080000, 0x4c040000, 0x4c000000, 0x59c40892, - 0x4807c857, 0x80041580, 0x04000010, 0x80041480, - 0x04021007, 0x80081080, 0x80081000, 0x4008b000, - 0x42000000, 0x00000201, 0x0401f004, 0x4008b000, - 0x42000000, 0x00000210, 0x48038886, 0x8058b040, - 0x040207fe, 0x497b8886, 0x5c000000, 0x5c000800, - 0x5c001000, 0x1c01f000, 0x4803c856, 0x8d0e1d20, - 0x04000005, 0x42028000, 0x0000002e, 0x0201f000, - 0x00109f44, 0x1c01f000, 0x0401f803, 0x40058800, - 0x1c01f000, 0x59a8086d, 0x82040500, 0x00000010, - 0x04000004, 0x42000800, 0x00000002, 0x0401f010, - 0x82040500, 0x00000020, 0x42000800, 0x00000002, - 0x0402000b, 0x59c80835, 0x82040d00, 0x00001f00, - 0x80040910, 0x80040800, 0x59a8006a, 0x80000540, - 0x04000003, 0x42000800, 0x0000025a, 0x4807c857, - 0x1c01f000, 0x0401f807, 0x42018800, 0x00000001, - 0x04000003, 0x42018800, 0x00000000, 0x1c01f000, - 0x4c000000, 0x59a80037, 0x4803c857, 0x82000580, - 0x00000000, 0x5c000000, 0x1c01f000, 0x0401f807, - 0x42018800, 0x00000001, 0x04000003, 0x42018800, - 0x00000000, 0x1c01f000, 0x4c000000, 0x59a80037, - 0x4803c857, 0x82000580, 0x00000001, 0x5c000000, - 0x1c01f000, 0x0401f807, 0x42018800, 0x00000001, - 0x04000003, 0x42018800, 0x00000000, 0x1c01f000, - 0x4c000000, 0x59a80037, 0x4803c857, 0x82000580, - 0x00000003, 0x5c000000, 0x1c01f000, 0x0401f807, - 0x42018800, 0x00000001, 0x04000003, 0x42018800, - 0x00000000, 0x1c01f000, 0x4c000000, 0x59a80037, - 0x82000580, 0x00000002, 0x5c000000, 0x1c01f000, - 0x4c000000, 0x4c040000, 0x4c080000, 0x4c380000, - 0x59a8003a, 0x82000c80, 0x00000007, 0x02021800, - 0x0010032d, 0x0c01f806, 0x5c007000, 0x5c001000, - 0x5c000800, 0x5c000000, 0x1c01f000, 0x00101466, - 0x00101479, 0x0010148d, 0x0010148f, 0x001014b7, - 0x001014b9, 0x001014bb, 0x4803c856, 0x4a03503c, - 0x00000000, 0x42000000, 0x00000002, 0x0401fa32, - 0x42000000, 0x00000002, 0x0401f9b5, 0x0401fab1, - 0x4803c856, 0x4a03503a, 0x00000006, 0x42000800, - 0x0000001e, 0x42001000, 0x001014bc, 0x0201f000, - 0x00105904, 0x497b503f, 0x4a035034, 0x00000036, - 0x4a035033, 0x0000002a, 0x4803c856, 0x4a03503c, - 0x00000001, 0x42000000, 0x00000002, 0x0401f9a0, - 0x4803c856, 0x4a03503a, 0x00000006, 0x42000800, - 0x0000001e, 0x42001000, 0x001014bc, 0x0201f000, - 0x00105904, 0x0201f800, 0x0010032d, 0x4a035034, - 0x00000036, 0x4803c856, 0x4a03503c, 0x00000003, - 0x42000800, 0x00000000, 0x0401faa1, 0x82040d00, + 0x001046af, 0x0401f828, 0x0401f026, 0x82040500, + 0x00001c00, 0x04000005, 0x0201f800, 0x0010add9, + 0x0401f821, 0x0401f01f, 0x82040500, 0x00000140, + 0x04000005, 0x0201f800, 0x0010adec, 0x0401f81a, + 0x0401f018, 0x82040500, 0x00008000, 0x04000015, + 0x0201f800, 0x00104755, 0x0400000f, 0x59c400a4, + 0x82000500, 0x0000000f, 0x82000580, 0x0000000b, + 0x04020009, 0x4c040000, 0x0201f800, 0x00103924, + 0x42000000, 0x0000001e, 0x80000040, 0x040207ff, + 0x5c000800, 0x0201f800, 0x0010adc4, 0x0401f802, + 0x1c01f000, 0x4c0c0000, 0x4c100000, 0x4c140000, + 0x0201f800, 0x00100c0f, 0x5c002800, 0x5c002000, + 0x5c001800, 0x1c01f000, 0x4803c856, 0x59a80804, + 0x59a80020, 0x82000500, 0xfffff000, 0x80040540, + 0x48035020, 0x59a80024, 0x82000500, 0xfffff000, + 0x80040540, 0x48035024, 0x48078882, 0x82041c00, + 0x0000000f, 0x800c1908, 0x820c1c00, 0x00000004, + 0x400c2000, 0x901029c0, 0x82040480, 0x000001e4, + 0x04021005, 0x42001000, 0x00000008, 0x801020c6, + 0x0401f031, 0x82040480, 0x00000230, 0x04021009, + 0x42001000, 0x00000007, 0x801000c2, 0x800000c2, + 0x80100400, 0x80100400, 0x80102400, 0x0401f026, + 0x82040480, 0x00000298, 0x04021008, 0x42001000, + 0x00000006, 0x801000c2, 0x800000c2, 0x80100400, + 0x80102400, 0x0401f01c, 0x82040480, 0x00000328, + 0x04021007, 0x42001000, 0x00000005, 0x801000c2, + 0x800000c2, 0x80102400, 0x0401f013, 0x82040480, + 0x00000404, 0x04021005, 0x42001000, 0x00000004, + 0x801020c4, 0x0401f00c, 0x82040480, 0x0000056c, + 0x04021006, 0x42001000, 0x00000003, 0x801000c2, + 0x80102400, 0x0401f004, 0x42001000, 0x00000002, + 0x801020c2, 0x82100480, 0x00000110, 0x80000080, + 0x80002000, 0x800800d0, 0x80140540, 0x80100540, + 0x48039035, 0x48035072, 0x1c01f000, 0x59c80815, + 0x0201f800, 0x00100322, 0x40680800, 0x82040d00, + 0x0000007c, 0x48079000, 0x59c80000, 0x80040500, + 0x040207fe, 0x8c040d04, 0x04000003, 0x59c80035, + 0x48039035, 0x59c80000, 0x82000540, 0x00001200, + 0x48039000, 0x1c01f000, 0x4803c856, 0x497b88a9, + 0x4a038807, 0x00000001, 0x497b8807, 0x59c40005, + 0x48038805, 0x0201f800, 0x00101617, 0x4201d000, + 0x000001f4, 0x0201f800, 0x001059d2, 0x497b880e, + 0x4200b000, 0x000001f4, 0x42000000, 0x00000001, + 0x42000800, 0x00000014, 0x0201f800, 0x00101740, + 0x42000800, 0x00000014, 0x0201f800, 0x00101738, + 0x8c040d00, 0x04000005, 0x8058b040, 0x040207f3, + 0x0201f800, 0x0010032d, 0x4200b000, 0x00000032, + 0x42000000, 0x00000001, 0x42000800, 0x000000b4, + 0x0201f800, 0x00101740, 0x42000800, 0x000000b4, + 0x0201f800, 0x00101738, 0x8c040d00, 0x04000005, + 0x8058b040, 0x040207f3, 0x0201f800, 0x0010032d, + 0x59c40005, 0x48038805, 0x42000000, 0x00000083, + 0x59e00803, 0x82040d00, 0x00030000, 0x82040d80, + 0x00020000, 0x04020003, 0x42000000, 0x00000089, + 0x800008d0, 0x4a035044, 0x00008900, 0x4a035045, + 0x00008900, 0x48075046, 0x42000800, 0x000000e0, + 0x0201f800, 0x00101740, 0x42000800, 0x000000f4, + 0x0201f800, 0x00101738, 0x82040500, 0xffffffd1, + 0x82000540, 0x00000002, 0x42000800, 0x000000f4, + 0x0201f800, 0x00101740, 0x42000800, 0x000000a0, + 0x0201f800, 0x00101738, 0x82040540, 0x00000001, + 0x42000800, 0x000000a0, 0x0201f800, 0x00101740, + 0x42000800, 0x00000000, 0x0201f800, 0x00101738, + 0x82040540, 0x00000001, 0x42000800, 0x00000000, + 0x0201f800, 0x00101740, 0x4201d000, 0x0001d4c0, + 0x0201f800, 0x001059d2, 0x0401fa68, 0x4a0388a7, + 0x0000f7f7, 0x4a0388a3, 0x8000403c, 0x4a0388ae, + 0x000061a8, 0x4a038801, 0x00032063, 0x4a038810, + 0x00410108, 0x4a038811, 0x00520608, 0x4a038812, + 0x00450320, 0x4a038813, 0x00440405, 0x4a03881c, + 0x004132e1, 0x4a03881d, 0x004001fe, 0x4a038850, + 0x80000108, 0x4a038860, 0x00000008, 0x4a038870, + 0x00000008, 0x4a038851, 0x80000508, 0x4a038861, + 0x00800000, 0x4a038871, 0x00800000, 0x4a038852, + 0x80000708, 0x4a038862, 0x00800000, 0x4a038872, + 0x00800000, 0x4a038853, 0x80000608, 0x497b8863, + 0x4a038873, 0x00800000, 0x4a038882, 0x00000840, + 0x4a0388a5, 0x000000fe, 0x4a0388a6, 0x0000001e, + 0x4a0388b0, 0x00007530, 0x4a038802, 0x0000ffff, + 0x4a038806, 0xc0e00800, 0x1c01f000, 0x850e1d4e, + 0x42000800, 0x00000040, 0x0201f800, 0x00101738, + 0x82040500, 0xffffffaf, 0x82000540, 0x00000000, + 0x42000800, 0x00000040, 0x0201f800, 0x00101740, + 0x42000800, 0x000000f4, 0x0201f800, 0x00101738, + 0x4c040000, 0x40040000, 0x84000548, 0x42000800, + 0x000000f4, 0x0201f800, 0x00101740, 0x42000800, + 0x00000000, 0x0201f800, 0x00101738, 0x82040500, + 0xffffffc1, 0x82000540, 0x00000038, 0x42000800, + 0x00000000, 0x0201f800, 0x00101740, 0x5c000000, + 0x42000800, 0x000000f4, 0x0201f000, 0x00101740, + 0x59c40805, 0x59c40006, 0x80040d00, 0x02000800, + 0x0010032d, 0x82040500, 0x00e00800, 0x04020004, + 0x8c040d3e, 0x040208f9, 0x0401f007, 0x82040500, + 0x00800800, 0x02020800, 0x00100322, 0x0201f800, + 0x0010032d, 0x4c5c0000, 0x4c600000, 0x59c4b805, + 0x59c40006, 0x8c000500, 0x04000003, 0x8c5cbd00, + 0x040200a2, 0x485fc857, 0x0201f800, 0x00104755, + 0x0400001e, 0x59c40005, 0x82000500, 0x000000c0, + 0x04000054, 0x0201f800, 0x00104780, 0x04020051, + 0x59c40006, 0x82000500, 0x000000f0, 0x04020004, + 0x4a038805, 0x000000c0, 0x0401f04a, 0x59a80015, + 0x84000506, 0x48035015, 0x42006000, 0xff203fff, + 0x42006800, 0x40000000, 0x0201f800, 0x00103a7d, + 0x42000800, 0x00000010, 0x42001000, 0x001039ed, + 0x0201f800, 0x001059c7, 0x8c5cbd34, 0x04020039, + 0x4a035013, 0x0000aaaa, 0x59c40005, 0x8c00050c, + 0x04020012, 0x8c00050e, 0x0402001c, 0x8c00050a, + 0x04020026, 0x8c000508, 0x0400000b, 0x59a80011, + 0x82000580, 0x00000009, 0x04020007, 0x42000000, + 0x0010bc72, 0x0201f800, 0x0010ae10, 0x0201f800, + 0x00104993, 0x0401f067, 0x42000000, 0x0010bc80, + 0x0201f800, 0x0010ae10, 0x41781800, 0x42002000, + 0x00000001, 0x0201f800, 0x001019fb, 0x4a035014, + 0x00000000, 0x0401f014, 0x42000000, 0x0010bc81, + 0x0201f800, 0x0010ae10, 0x41781800, 0x42002000, + 0x00000002, 0x0201f800, 0x001019fb, 0x4a035014, + 0x00000002, 0x0401f008, 0x42000000, 0x0010bc74, + 0x0201f800, 0x0010ae10, 0x0201f800, 0x00104921, + 0x0401f048, 0x0201f800, 0x001049fe, 0x0401f045, + 0x8c5cbd34, 0x04000041, 0x59c40005, 0x8c00053a, + 0x04020005, 0x42000000, 0x0010bc68, 0x0201f800, + 0x0010ae10, 0x4a038805, 0x20000000, 0x0201f800, + 0x00104755, 0x04020015, 0x4a038805, 0x04000000, + 0x59c418a8, 0x42002000, 0x00000000, 0x0201f800, + 0x001019fb, 0x0201f800, 0x00104771, 0x04020008, + 0x4a035014, 0x00000001, 0x4202d800, 0x00000001, + 0x0201f800, 0x001046af, 0x0401f06d, 0x41780000, + 0x0201f800, 0x00104726, 0x0201f800, 0x001017f2, + 0x4000c000, 0x0201f800, 0x0010175f, 0x836c1580, + 0x00000004, 0x0402000c, 0x8c5cbd00, 0x04020017, + 0x8d0e1d06, 0x04020005, 0x59c410a3, 0x82081540, + 0x00000008, 0x480b88a3, 0x59c41006, 0x84081540, + 0x480b8806, 0x4a038805, 0x04000000, 0x4202d800, + 0x00000001, 0x497b5010, 0x8d0e1d18, 0x04020005, + 0x4803c856, 0x850e1d06, 0x0201f800, 0x00103929, + 0x0201f800, 0x0010331d, 0x8c5cbd3c, 0x04020866, + 0x8c5cbd00, 0x04000043, 0x42000000, 0x0010bd85, + 0x0201f800, 0x0010ae10, 0x4a038805, 0x00000001, + 0x4200b000, 0x00000352, 0x4201d000, 0x00000064, + 0x4c580000, 0x0201f800, 0x001059d2, 0x0201f800, + 0x001016ef, 0x5c00b000, 0x04000004, 0x8058b040, + 0x040207f6, 0x0401f004, 0x4a038805, 0x00000001, + 0x0401f02c, 0x59c40006, 0x84000500, 0x48038806, + 0x59a80873, 0x8c040d3e, 0x04000005, 0x82040d40, + 0x0000000b, 0x48075073, 0x850e1d48, 0x0201f800, + 0x00106480, 0x497b8880, 0x59c4000d, 0x8c000506, + 0x04000006, 0x42002000, 0x00000005, 0x0201f800, + 0x00104a49, 0x0401f005, 0x42002000, 0x00000006, + 0x0201f800, 0x00104a49, 0x59c400a3, 0x82000500, + 0xfcf8ffff, 0x480388a3, 0x4a035058, 0x00000002, + 0x4202d800, 0x00000004, 0x4a038805, 0x00000001, + 0x0201f800, 0x00100454, 0x0401fb69, 0x497b5036, + 0x4a035043, 0x00000001, 0x0201f800, 0x0010ef18, + 0x825cbd00, 0xbbfffffe, 0x485f8805, 0x5c00c000, + 0x5c00b800, 0x1c01f000, 0x4d180000, 0x59c41004, + 0x480bc857, 0x8c081500, 0x04000006, 0x4803c856, + 0x497b2807, 0x0201f800, 0x00106544, 0x0401f009, + 0x82080500, 0x000001f0, 0x04000006, 0x4803c856, + 0x0201f800, 0x0010676a, 0x02020800, 0x00106569, + 0x4a038805, 0x80000000, 0x5c023000, 0x1c01f000, + 0x59c408a3, 0x4807c857, 0x84040d40, 0x480788a3, + 0x1c01f000, 0x4d900000, 0x4dd00000, 0x4da40000, + 0x4d140000, 0x4a038805, 0x40000000, 0x42000000, + 0x0010bc7a, 0x0201f800, 0x0010ae10, 0x0201f800, + 0x001061b2, 0x59c41004, 0x8c081500, 0x04000055, + 0x598e600f, 0x497b2807, 0x813261c0, 0x04000032, + 0x59300403, 0x82000580, 0x00000032, 0x0402002e, + 0x5930001d, 0x48038833, 0x4a038807, 0x00018000, + 0x4201d000, 0x00000002, 0x0201f800, 0x001059d2, + 0x497b8807, 0x4201d000, 0x00000002, 0x0201f800, + 0x001059d2, 0x0201f800, 0x001063aa, 0x4201d000, + 0x00007530, 0x0201f800, 0x001059d2, 0x59c408a4, + 0x82040d00, 0x0000000f, 0x82040d80, 0x00000000, + 0x04000005, 0x42000000, 0x00200000, 0x0201f800, + 0x00101745, 0x0201f800, 0x00106102, 0x59300009, + 0x80000540, 0x02000800, 0x0010032d, 0x40025800, + 0x4a025a05, 0x00000103, 0x5931d822, 0x58ef400a, + 0x58ec0008, 0x0801f800, 0x0201f800, 0x00020a10, + 0x0401f046, 0x598c0011, 0x82001c80, 0x000000c8, + 0x04021010, 0x80000000, 0x48031811, 0x59c400a4, + 0x82000500, 0x0000000f, 0x82000580, 0x00000002, + 0x04020005, 0x42000000, 0x00200000, 0x0201f800, + 0x00101745, 0x0201f800, 0x0010596e, 0x0401f033, + 0x4933c857, 0x0201f800, 0x001063aa, 0x813261c0, + 0x0400002e, 0x4a026203, 0x00000001, 0x42027000, + 0x00000027, 0x0201f800, 0x00020a34, 0x0401f027, + 0x0201f800, 0x0010676a, 0x04000024, 0x0201f800, + 0x001067aa, 0x0201f800, 0x00105999, 0x59926004, + 0x813261c0, 0x04000012, 0x42001800, 0x000000c8, + 0x0201f800, 0x0010675e, 0x0402000d, 0x59c400a4, + 0x82000500, 0x0000000f, 0x82000580, 0x00000002, + 0x04020004, 0x42000000, 0x00200000, 0x0401fbf6, + 0x0201f800, 0x00105973, 0x0401f00c, 0x4933c857, + 0x0201f800, 0x00106346, 0x813261c0, 0x04000007, + 0x42027000, 0x0000004f, 0x4a026203, 0x00000003, + 0x0201f800, 0x00020a34, 0x5c022800, 0x5c034800, + 0x5c03a000, 0x5c032000, 0x0201f000, 0x0010619f, + 0x40680000, 0x810c0d80, 0x8c040d0e, 0x0400004f, + 0x4803c857, 0x8d0e1d0e, 0x04000023, 0x850e1d0e, + 0x497b5058, 0x42000000, 0x0010bc61, 0x0201f800, + 0x0010ae10, 0x0201f800, 0x0010aec4, 0x42001000, + 0x00008011, 0x59c40001, 0x82000500, 0x00018000, + 0x82001d80, 0x00000000, 0x04000009, 0x82001d80, + 0x00008000, 0x04000009, 0x82001d80, 0x00010000, + 0x04000009, 0x0201f800, 0x0010032d, 0x42001800, + 0x00000000, 0x0401f006, 0x42001800, 0x00000001, + 0x0401f003, 0x42001800, 0x00000003, 0x0201f000, + 0x001031f5, 0x850e1d4e, 0x59a80858, 0x800409c0, + 0x04020007, 0x59c4000d, 0x8c000520, 0x04000004, + 0x42001800, 0x00000003, 0x0401f002, 0x40041800, + 0x0201f800, 0x0010aea8, 0x42001000, 0x00008012, + 0x59a82873, 0x8c142d3e, 0x04000006, 0x82142d00, + 0x00000003, 0x0201f800, 0x001031f6, 0x0401f003, + 0x0201f800, 0x001031f5, 0x0201f800, 0x00100454, + 0x0201f800, 0x0010af17, 0x0402000c, 0x0401f84c, + 0x4d400000, 0x4d3c0000, 0x42028000, 0x00000028, + 0x42027800, 0x00000008, 0x0201f800, 0x0010dfe1, + 0x5c027800, 0x5c028000, 0x1c01f000, 0x4803c857, + 0x82000400, 0x00101b0f, 0x50000800, 0x82040d00, + 0x000000ff, 0x1c01f000, 0x4803c856, 0x4c580000, + 0x4200b000, 0x00000010, 0x497b88ac, 0x497b88ad, + 0x8058b040, 0x040207fe, 0x5c00b000, 0x1c01f000, + 0x40680800, 0x4807c857, 0x4807500f, 0x80041108, + 0x4200b000, 0x00000010, 0x497b88ac, 0x80000580, + 0x800811c0, 0x04020006, 0x82040500, 0x0000000f, + 0x82000400, 0x0010af34, 0x50000000, 0x480388ad, + 0x80081040, 0x8058b040, 0x040207f5, 0x1c01f000, + 0x4803c857, 0x4c080000, 0x4c040000, 0x4c000000, + 0x59c40892, 0x4807c857, 0x80041580, 0x04000010, + 0x80041480, 0x04021007, 0x80081080, 0x80081000, + 0x4008b000, 0x42000000, 0x00000201, 0x0401f004, + 0x4008b000, 0x42000000, 0x00000210, 0x48038886, + 0x8058b040, 0x040207fe, 0x497b8886, 0x5c000000, + 0x5c000800, 0x5c001000, 0x1c01f000, 0x4803c856, + 0x8d0e1d20, 0x04000005, 0x42028000, 0x0000002e, + 0x0201f000, 0x0010a01b, 0x1c01f000, 0x0401f803, + 0x40058800, 0x1c01f000, 0x59a8086d, 0x82040500, + 0x00000010, 0x04000004, 0x42000800, 0x00000002, + 0x0401f010, 0x82040500, 0x00000020, 0x42000800, + 0x00000002, 0x0402000b, 0x59c80835, 0x82040d00, + 0x00001f00, 0x80040910, 0x80040800, 0x59a8006a, + 0x80000540, 0x04000003, 0x42000800, 0x0000025a, + 0x4807c857, 0x1c01f000, 0x0401f807, 0x42018800, + 0x00000001, 0x04000003, 0x42018800, 0x00000000, + 0x1c01f000, 0x4c000000, 0x59a80037, 0x4803c857, + 0x82000580, 0x00000000, 0x5c000000, 0x1c01f000, + 0x0401f807, 0x42018800, 0x00000001, 0x04000003, + 0x42018800, 0x00000000, 0x1c01f000, 0x4c000000, + 0x59a80037, 0x4803c857, 0x82000580, 0x00000001, + 0x5c000000, 0x1c01f000, 0x0401f807, 0x42018800, + 0x00000001, 0x04000003, 0x42018800, 0x00000000, + 0x1c01f000, 0x4c000000, 0x59a80037, 0x4803c857, + 0x82000580, 0x00000003, 0x5c000000, 0x1c01f000, + 0x0401f807, 0x42018800, 0x00000001, 0x04000003, + 0x42018800, 0x00000000, 0x1c01f000, 0x4c000000, + 0x59a80037, 0x82000580, 0x00000002, 0x5c000000, + 0x1c01f000, 0x4c000000, 0x4c040000, 0x4c080000, + 0x4c380000, 0x59a8003a, 0x82000c80, 0x00000007, + 0x02021800, 0x0010032d, 0x0c01f806, 0x5c007000, + 0x5c001000, 0x5c000800, 0x5c000000, 0x1c01f000, + 0x00101467, 0x0010147a, 0x0010148e, 0x00101490, + 0x001014b8, 0x001014ba, 0x001014bc, 0x4803c856, + 0x4a03503c, 0x00000000, 0x42000000, 0x00000002, + 0x0401fa32, 0x42000000, 0x00000002, 0x0401f9b5, + 0x0401fab1, 0x4803c856, 0x4a03503a, 0x00000006, + 0x42000800, 0x0000001e, 0x42001000, 0x001014bd, + 0x0201f000, 0x001059a9, 0x497b503f, 0x4a035034, + 0x00000036, 0x4a035033, 0x0000002a, 0x4803c856, + 0x4a03503c, 0x00000001, 0x42000000, 0x00000002, + 0x0401f9a0, 0x4803c856, 0x4a03503a, 0x00000006, + 0x42000800, 0x0000001e, 0x42001000, 0x001014bd, + 0x0201f000, 0x001059a9, 0x0201f800, 0x0010032d, + 0x4a035034, 0x00000036, 0x4803c856, 0x4a03503c, + 0x00000003, 0x42000800, 0x00000000, 0x0401faa1, + 0x82040d00, 0x00000090, 0x82040580, 0x00000090, + 0x04000009, 0x82040580, 0x00000010, 0x04000009, + 0x82040580, 0x00000000, 0x04000009, 0x0201f800, + 0x0010032d, 0x42000000, 0x00000001, 0x0401f006, + 0x42000000, 0x00000000, 0x0401f003, 0x42000000, + 0x00000002, 0x0401f977, 0x497b5040, 0x4803c856, + 0x4a03503a, 0x00000006, 0x42000800, 0x0000001e, + 0x42001000, 0x001014bd, 0x0201f000, 0x001059a9, + 0x0201f800, 0x0010032d, 0x0201f800, 0x0010032d, + 0x1c01f000, 0x4c000000, 0x4c040000, 0x4c080000, + 0x4c380000, 0x59a8003c, 0x82000c80, 0x00000007, + 0x02021800, 0x0010032d, 0x0c01f806, 0x5c007000, + 0x5c001000, 0x5c000800, 0x5c000000, 0x1c01f000, + 0x001014d3, 0x001014f2, 0x00101547, 0x0010155e, + 0x00101575, 0x0010157e, 0x00101580, 0x0401fa1c, + 0x0402001b, 0x59a81042, 0x42000800, 0x00000000, + 0x0401fa60, 0x82040d00, 0x00000090, 0x82040580, + 0x00000090, 0x04000009, 0x82040580, 0x00000010, + 0x04000008, 0x82040580, 0x00000000, 0x04000007, + 0x0201f800, 0x0010032d, 0x84081540, 0x0401f004, + 0x84081542, 0x0401f002, 0x84081544, 0x480b5042, + 0x4a03503a, 0x00000001, 0x0401f003, 0x0401f8ce, + 0x0401ff81, 0x1c01f000, 0x0401f890, 0x04000053, + 0x0401f9fb, 0x0402002a, 0x42000800, 0x00000000, + 0x0401fa40, 0x82040d00, 0x00000090, 0x82040580, + 0x00000000, 0x04000045, 0x82040580, 0x00000010, + 0x04000006, 0x82040580, 0x00000090, 0x04000009, + 0x0201f800, 0x0010032d, 0x59c40801, 0x82040d00, + 0x00018000, 0x82040580, 0x00000000, 0x04000037, + 0x42000800, 0x00000000, 0x0401fa2a, 0x82040d00, + 0x00000090, 0x82040580, 0x00000010, 0x04000006, + 0x82040580, 0x00000090, 0x04000006, 0x02020800, + 0x0010032d, 0x59a80042, 0x84000542, 0x0401f003, + 0x59a80042, 0x84000540, 0x48035042, 0x59a8003f, + 0x80000000, 0x4803503f, 0x82000580, 0x00000005, + 0x04000003, 0x0401f862, 0x0401f01f, 0x497b503f, + 0x59c40801, 0x82040d00, 0x00018000, 0x82040580, + 0x00000000, 0x04000009, 0x82040580, 0x00008000, + 0x04000009, 0x82040580, 0x00010000, 0x04000009, + 0x0201f800, 0x0010032d, 0x42000000, 0x00000001, + 0x0401f006, 0x42000000, 0x00000000, 0x0401f003, + 0x42000000, 0x00000002, 0x0401f960, 0x4a03503c, + 0x00000002, 0x0401f004, 0x4a03503a, 0x00000003, + 0x0401f002, 0x0401ff40, 0x1c01f000, 0x0401f83b, + 0x04000015, 0x59a80033, 0x80000040, 0x48035033, + 0x0401f9a3, 0x04020005, 0x4a03503a, 0x00000003, + 0x497b503b, 0x0401f00c, 0x59a80033, 0x80000540, + 0x04020003, 0x0401f8a2, 0x0401f002, 0x0401f84c, + 0x0401f82f, 0x497b503f, 0x4a03503c, 0x00000001, + 0x0401ff29, 0x1c01f000, 0x0401f824, 0x04000015, + 0x0401f98f, 0x0402000f, 0x59a80040, 0x80000000, + 0x48035040, 0x82000580, 0x00000007, 0x0402000c, + 0x4a035036, 0x0000000a, 0x497b5043, 0x59a80042, + 0x8400055e, 0x48035042, 0x4803c857, 0x0401f005, + 0x0401f817, 0x4a03503c, 0x00000004, 0x0401ff3c, + 0x1c01f000, 0x0401f80d, 0x04000007, 0x0401f978, + 0x04020003, 0x0401ff19, 0x0401f003, 0x0401f80c, + 0x0401ff33, 0x1c01f000, 0x0201f800, 0x0010032d, + 0x0201f800, 0x0010032d, 0x59a80034, 0x80000040, + 0x48035034, 0x04000892, 0x1c01f000, 0x4c040000, + 0x42000800, 0x00000000, 0x0401f9ae, 0x82040d00, 0x00000090, 0x82040580, 0x00000090, 0x04000009, 0x82040580, 0x00000010, 0x04000009, 0x82040580, 0x00000000, 0x04000009, 0x0201f800, 0x0010032d, - 0x42000000, 0x00000001, 0x0401f006, 0x42000000, - 0x00000000, 0x0401f003, 0x42000000, 0x00000002, - 0x0401f977, 0x497b5040, 0x4803c856, 0x4a03503a, - 0x00000006, 0x42000800, 0x0000001e, 0x42001000, - 0x001014bc, 0x0201f000, 0x00105904, 0x0201f800, - 0x0010032d, 0x0201f800, 0x0010032d, 0x1c01f000, - 0x4c000000, 0x4c040000, 0x4c080000, 0x4c380000, - 0x59a8003c, 0x82000c80, 0x00000007, 0x02021800, - 0x0010032d, 0x0c01f806, 0x5c007000, 0x5c001000, - 0x5c000800, 0x5c000000, 0x1c01f000, 0x001014d2, - 0x001014f1, 0x00101546, 0x0010155d, 0x00101574, - 0x0010157d, 0x0010157f, 0x0401fa1c, 0x0402001b, - 0x59a81042, 0x42000800, 0x00000000, 0x0401fa60, - 0x82040d00, 0x00000090, 0x82040580, 0x00000090, - 0x04000009, 0x82040580, 0x00000010, 0x04000008, - 0x82040580, 0x00000000, 0x04000007, 0x0201f800, - 0x0010032d, 0x84081540, 0x0401f004, 0x84081542, - 0x0401f002, 0x84081544, 0x480b5042, 0x4a03503a, - 0x00000001, 0x0401f003, 0x0401f8ce, 0x0401ff81, - 0x1c01f000, 0x0401f890, 0x04000053, 0x0401f9fb, - 0x0402002a, 0x42000800, 0x00000000, 0x0401fa40, - 0x82040d00, 0x00000090, 0x82040580, 0x00000000, - 0x04000045, 0x82040580, 0x00000010, 0x04000006, - 0x82040580, 0x00000090, 0x04000009, 0x0201f800, - 0x0010032d, 0x59c40801, 0x82040d00, 0x00018000, - 0x82040580, 0x00000000, 0x04000037, 0x42000800, - 0x00000000, 0x0401fa2a, 0x82040d00, 0x00000090, - 0x82040580, 0x00000010, 0x04000006, 0x82040580, - 0x00000090, 0x04000006, 0x02020800, 0x0010032d, - 0x59a80042, 0x84000542, 0x0401f003, 0x59a80042, - 0x84000540, 0x48035042, 0x59a8003f, 0x80000000, - 0x4803503f, 0x82000580, 0x00000005, 0x04000003, - 0x0401f862, 0x0401f01f, 0x497b503f, 0x59c40801, - 0x82040d00, 0x00018000, 0x82040580, 0x00000000, - 0x04000009, 0x82040580, 0x00008000, 0x04000009, - 0x82040580, 0x00010000, 0x04000009, 0x0201f800, - 0x0010032d, 0x42000000, 0x00000001, 0x0401f006, - 0x42000000, 0x00000000, 0x0401f003, 0x42000000, - 0x00000002, 0x0401f960, 0x4a03503c, 0x00000002, - 0x0401f004, 0x4a03503a, 0x00000003, 0x0401f002, - 0x0401ff40, 0x1c01f000, 0x0401f83b, 0x04000015, - 0x59a80033, 0x80000040, 0x48035033, 0x0401f9a3, - 0x04020005, 0x4a03503a, 0x00000003, 0x497b503b, - 0x0401f00c, 0x59a80033, 0x80000540, 0x04020003, - 0x0401f8a2, 0x0401f002, 0x0401f84c, 0x0401f82f, - 0x497b503f, 0x4a03503c, 0x00000001, 0x0401ff29, - 0x1c01f000, 0x0401f824, 0x04000015, 0x0401f98f, - 0x0402000f, 0x59a80040, 0x80000000, 0x48035040, - 0x82000580, 0x00000007, 0x0402000c, 0x4a035036, - 0x0000000a, 0x497b5043, 0x59a80042, 0x8400055e, - 0x48035042, 0x4803c857, 0x0401f005, 0x0401f817, - 0x4a03503c, 0x00000004, 0x0401ff3c, 0x1c01f000, - 0x0401f80d, 0x04000007, 0x0401f978, 0x04020003, - 0x0401ff19, 0x0401f003, 0x0401f80c, 0x0401ff33, - 0x1c01f000, 0x0201f800, 0x0010032d, 0x0201f800, - 0x0010032d, 0x59a80034, 0x80000040, 0x48035034, - 0x04000892, 0x1c01f000, 0x4c040000, 0x42000800, - 0x00000000, 0x0401f9ae, 0x82040d00, 0x00000090, - 0x82040580, 0x00000090, 0x04000009, 0x82040580, - 0x00000010, 0x04000009, 0x82040580, 0x00000000, - 0x04000009, 0x0201f800, 0x0010032d, 0x42000000, - 0x00000002, 0x0401f006, 0x42000000, 0x00000001, - 0x0401f003, 0x42000000, 0x00000000, 0x0401f8fe, - 0x5c000800, 0x1c01f000, 0x4c040000, 0x59c40801, - 0x82040d00, 0x00018000, 0x82040580, 0x00000000, - 0x04000009, 0x82040580, 0x00008000, 0x04000009, - 0x82040580, 0x00010000, 0x04000009, 0x0201f800, - 0x0010032d, 0x42000000, 0x00000002, 0x0401f006, - 0x42000000, 0x00000001, 0x0401f003, 0x42000000, - 0x00000000, 0x0401f86a, 0x5c000800, 0x1c01f000, - 0x4c040000, 0x59a8003f, 0x80000000, 0x4803503f, - 0x82000580, 0x00000005, 0x04020019, 0x497b503f, + 0x42000000, 0x00000002, 0x0401f006, 0x42000000, + 0x00000001, 0x0401f003, 0x42000000, 0x00000000, + 0x0401f8fe, 0x5c000800, 0x1c01f000, 0x4c040000, 0x59c40801, 0x82040d00, 0x00018000, 0x82040580, 0x00000000, 0x04000009, 0x82040580, 0x00008000, 0x04000009, 0x82040580, 0x00010000, 0x04000009, 0x0201f800, 0x0010032d, 0x42000000, 0x00000002, 0x0401f006, 0x42000000, 0x00000001, 0x0401f003, - 0x42000000, 0x00000000, 0x0401f849, 0x42000800, - 0x00000000, 0x0401f95a, 0x82040d00, 0x00000090, - 0x82040580, 0x00000090, 0x04000009, 0x82040580, - 0x00000010, 0x04000009, 0x82040580, 0x00000000, + 0x42000000, 0x00000000, 0x0401f86a, 0x5c000800, + 0x1c01f000, 0x4c040000, 0x59a8003f, 0x80000000, + 0x4803503f, 0x82000580, 0x00000005, 0x04020019, + 0x497b503f, 0x59c40801, 0x82040d00, 0x00018000, + 0x82040580, 0x00000000, 0x04000009, 0x82040580, + 0x00008000, 0x04000009, 0x82040580, 0x00010000, 0x04000009, 0x0201f800, 0x0010032d, 0x42000000, 0x00000002, 0x0401f006, 0x42000000, 0x00000001, - 0x0401f003, 0x42000000, 0x00000000, 0x0401f8aa, - 0x5c000800, 0x1c01f000, 0x4c200000, 0x59a80042, - 0x82000500, 0x00007fff, 0x02000800, 0x0010032d, - 0x59a84041, 0x80204102, 0x02001800, 0x0010032d, - 0x48235041, 0x80204500, 0x040007fa, 0x8c000504, - 0x04020007, 0x8c000502, 0x04020008, 0x8c000500, - 0x04020009, 0x0201f800, 0x0010032d, 0x42000000, - 0x00000002, 0x0401f006, 0x42000000, 0x00000000, - 0x0401f003, 0x42000000, 0x00000001, 0x0401f810, - 0x5c004000, 0x1c01f000, 0x04011000, 0x4a03c840, - 0x0010b7ba, 0x4a03c842, 0x00000009, 0x40000000, - 0x040117ff, 0x4a035041, 0x00000004, 0x4a035038, - 0x00000000, 0x1c01f000, 0x40680000, 0x59a80873, + 0x0401f003, 0x42000000, 0x00000000, 0x0401f849, + 0x42000800, 0x00000000, 0x0401f95a, 0x82040d00, + 0x00000090, 0x82040580, 0x00000090, 0x04000009, + 0x82040580, 0x00000010, 0x04000009, 0x82040580, + 0x00000000, 0x04000009, 0x0201f800, 0x0010032d, + 0x42000000, 0x00000002, 0x0401f006, 0x42000000, + 0x00000001, 0x0401f003, 0x42000000, 0x00000000, + 0x0401f8aa, 0x5c000800, 0x1c01f000, 0x4c200000, + 0x59a80042, 0x82000500, 0x00007fff, 0x02000800, + 0x0010032d, 0x59a84041, 0x80204102, 0x02001800, + 0x0010032d, 0x48235041, 0x80204500, 0x040007fa, + 0x8c000504, 0x04020007, 0x8c000502, 0x04020008, + 0x8c000500, 0x04020009, 0x0201f800, 0x0010032d, + 0x42000000, 0x00000002, 0x0401f006, 0x42000000, + 0x00000000, 0x0401f003, 0x42000000, 0x00000001, + 0x0401f810, 0x5c004000, 0x1c01f000, 0x04011000, + 0x4a03c840, 0x0010b8ba, 0x4a03c842, 0x00000009, + 0x40000000, 0x040117ff, 0x4a035041, 0x00000004, + 0x4a035038, 0x00000000, 0x1c01f000, 0x40680000, + 0x59a80873, 0x8c040d3e, 0x0402000c, 0x59a80847, + 0x82040d80, 0x01391077, 0x04020008, 0x59e00813, + 0x8c040d00, 0x04000005, 0x82000d80, 0x00000002, + 0x04020002, 0x41780000, 0x59a80847, 0x82040d80, + 0x015b1077, 0x0402000b, 0x4a03c014, 0x00200020, + 0x82000d80, 0x00000001, 0x42000800, 0x00200000, + 0x04000003, 0x42000800, 0x00200020, 0x4807c013, + 0x800001c0, 0x04000040, 0x82000d80, 0x00000001, + 0x0402001d, 0x42000800, 0x000000a0, 0x0401f8f1, + 0x82040540, 0x00000004, 0x42000800, 0x000000a0, + 0x0401f8f4, 0x42000800, 0x000000c0, 0x0401f8e9, + 0x82040540, 0x00000020, 0x42000800, 0x000000c0, + 0x0401f8ec, 0x59c40001, 0x82000500, 0xfffe7fff, + 0x82000540, 0x00000000, 0x48038801, 0x59a80044, + 0x80000110, 0x42000800, 0x000000e0, 0x0401f8e1, + 0x0401f03c, 0x82000d80, 0x00000002, 0x02020800, + 0x0010032d, 0x42000800, 0x000000a0, 0x0401f8d1, + 0x82040500, 0xfffffffb, 0x42000800, 0x000000a0, + 0x0401f8d4, 0x42000800, 0x000000c0, 0x0401f8c9, + 0x82040500, 0xffffffdf, 0x42000800, 0x000000c0, + 0x0401f8cc, 0x59c40001, 0x82000500, 0xfffe7fff, + 0x82000540, 0x00010000, 0x48038801, 0x59a80046, + 0x80000110, 0x42000800, 0x000000e0, 0x0401f8c1, + 0x0401f01c, 0x42000800, 0x000000a0, 0x0401f8b5, + 0x82040540, 0x00000004, 0x42000800, 0x000000a0, + 0x0401f8b8, 0x42000800, 0x000000c0, 0x0401f8ad, + 0x82040500, 0xffffffdf, 0x42000800, 0x000000c0, + 0x0401f8b0, 0x59c40001, 0x82000500, 0xfffe7fff, + 0x82000540, 0x00008000, 0x48038801, 0x59a80045, + 0x80000110, 0x42000800, 0x000000e0, 0x0401f8a5, + 0x1c01f000, 0x40680000, 0x4803c857, 0x59a80873, 0x8c040d3e, 0x0402000c, 0x59a80847, 0x82040d80, 0x01391077, 0x04020008, 0x59e00813, 0x8c040d00, 0x04000005, 0x82000d80, 0x00000002, 0x04020002, - 0x41780000, 0x59a80847, 0x82040d80, 0x015b1077, - 0x0402000b, 0x4a03c014, 0x00200020, 0x82000d80, - 0x00000001, 0x42000800, 0x00200000, 0x04000003, - 0x42000800, 0x00200020, 0x4807c013, 0x800001c0, - 0x04000040, 0x82000d80, 0x00000001, 0x0402001d, - 0x42000800, 0x000000a0, 0x0401f8f1, 0x82040540, - 0x00000004, 0x42000800, 0x000000a0, 0x0401f8f4, - 0x42000800, 0x000000c0, 0x0401f8e9, 0x82040540, - 0x00000020, 0x42000800, 0x000000c0, 0x0401f8ec, - 0x59c40001, 0x82000500, 0xfffe7fff, 0x82000540, - 0x00000000, 0x48038801, 0x59a80044, 0x80000110, - 0x42000800, 0x000000e0, 0x0401f8e1, 0x0401f03c, + 0x41780000, 0x4c000000, 0x0401f934, 0x5c000000, + 0x800001c0, 0x04000026, 0x82000d80, 0x00000001, + 0x04020010, 0x59a8006a, 0x80000540, 0x04000004, + 0x42001000, 0x00000000, 0x0401fa45, 0x42000800, + 0x00000000, 0x0401f87b, 0x82040540, 0x00000090, + 0x42000800, 0x00000000, 0x0401f87e, 0x0401f024, 0x82000d80, 0x00000002, 0x02020800, 0x0010032d, - 0x42000800, 0x000000a0, 0x0401f8d1, 0x82040500, - 0xfffffffb, 0x42000800, 0x000000a0, 0x0401f8d4, - 0x42000800, 0x000000c0, 0x0401f8c9, 0x82040500, - 0xffffffdf, 0x42000800, 0x000000c0, 0x0401f8cc, - 0x59c40001, 0x82000500, 0xfffe7fff, 0x82000540, - 0x00010000, 0x48038801, 0x59a80046, 0x80000110, - 0x42000800, 0x000000e0, 0x0401f8c1, 0x0401f01c, - 0x42000800, 0x000000a0, 0x0401f8b5, 0x82040540, - 0x00000004, 0x42000800, 0x000000a0, 0x0401f8b8, - 0x42000800, 0x000000c0, 0x0401f8ad, 0x82040500, - 0xffffffdf, 0x42000800, 0x000000c0, 0x0401f8b0, - 0x59c40001, 0x82000500, 0xfffe7fff, 0x82000540, - 0x00008000, 0x48038801, 0x59a80045, 0x80000110, - 0x42000800, 0x000000e0, 0x0401f8a5, 0x1c01f000, - 0x40680000, 0x4803c857, 0x59a80873, 0x8c040d3e, - 0x0402000c, 0x59a80847, 0x82040d80, 0x01391077, - 0x04020008, 0x59e00813, 0x8c040d00, 0x04000005, - 0x82000d80, 0x00000002, 0x04020002, 0x41780000, - 0x4c000000, 0x0401f934, 0x5c000000, 0x800001c0, - 0x04000026, 0x82000d80, 0x00000001, 0x04020010, 0x59a8006a, 0x80000540, 0x04000004, 0x42001000, - 0x00000000, 0x0401fa45, 0x42000800, 0x00000000, - 0x0401f87b, 0x82040540, 0x00000090, 0x42000800, - 0x00000000, 0x0401f87e, 0x0401f024, 0x82000d80, - 0x00000002, 0x02020800, 0x0010032d, 0x59a8006a, - 0x80000540, 0x04000004, 0x42001000, 0x00010000, - 0x0401fa32, 0x42000800, 0x00000000, 0x0401f868, - 0x82040500, 0xffffff6f, 0x42000800, 0x00000000, - 0x0401f86b, 0x0401f011, 0x59a8006a, 0x80000540, - 0x04000004, 0x42001000, 0x00008000, 0x0401fa23, - 0x42000800, 0x00000000, 0x0401f859, 0x82040500, - 0xffffff6f, 0x82000540, 0x00000010, 0x42000800, - 0x00000000, 0x0401f85a, 0x0401f103, 0x0401f807, - 0x42018800, 0x00000001, 0x04000003, 0x42018800, - 0x00000000, 0x1c01f000, 0x4c580000, 0x4200b000, - 0x00000014, 0x8058b040, 0x0400002a, 0x59c4000d, - 0x8c000520, 0x040207fc, 0x0401f83a, 0x59c4000d, - 0x8c000520, 0x040207f8, 0x59c40808, 0x82040d40, - 0x00000100, 0x48078808, 0x4200b000, 0x000000c8, - 0x8058b040, 0x040207ff, 0x4200b000, 0x00000014, - 0x8058b040, 0x04000017, 0x59c4000d, 0x8c000520, - 0x04020014, 0x0401f827, 0x59c4000d, 0x8c000520, - 0x04020010, 0x4200b000, 0x0000000a, 0x8058b040, - 0x04000003, 0x0401f81f, 0x0401f7fd, 0x4200b000, - 0x00000064, 0x59c4000d, 0x8c00051e, 0x04000005, - 0x8058b040, 0x040207fc, 0x80000580, 0x0401f003, - 0x82000540, 0x00000001, 0x5c00b000, 0x1c01f000, - 0x42000800, 0x000000a0, 0x0401f815, 0x82040500, - 0xfffffffe, 0x42000800, 0x000000a0, 0x0401f818, - 0x42000800, 0x00000000, 0x0401f80d, 0x82040500, - 0xfffffffe, 0x42000800, 0x00000000, 0x0401f010, - 0x40000000, 0x40000000, 0x40000000, 0x40000000, - 0x40000000, 0x1c01f000, 0x40680800, 0x4807880e, - 0x59c4080f, 0x82040d00, 0x000000ff, 0x40058800, - 0x1c01f000, 0x40680800, 0x406c0000, 0x900001c0, - 0x80040d40, 0x84040d40, 0x4807880e, 0x1c01f000, - 0x82000d80, 0x00200000, 0x04000009, 0x82000d80, - 0x02000000, 0x04000006, 0x82000d80, 0x01000000, - 0x04000006, 0x59c408a3, 0x0401f006, 0x59c408a3, - 0x84040d30, 0x0401f003, 0x59c408a3, 0x84040d32, - 0x80040540, 0x480388a3, 0x480788a3, 0x1c01f000, - 0x59c400a3, 0x84000556, 0x480388a3, 0x84000516, - 0x480388a3, 0x1c01f000, 0x485fc857, 0x4863c857, - 0x4c640000, 0x4d3c0000, 0x4d400000, 0x0201f800, - 0x001063db, 0x48635009, 0x40601800, 0x42002000, - 0x00000000, 0x0401fa91, 0x42000000, 0x0010bb7f, - 0x0201f800, 0x0010ad1d, 0x82600500, 0x0000ff00, - 0x82000580, 0x0000f700, 0x04020005, 0x42000000, - 0x0010bb67, 0x0201f800, 0x0010ad1d, 0x0201f800, - 0x0010ae24, 0x04020063, 0x82600d00, 0x0000ff00, - 0x800409c0, 0x0400000c, 0x4200c800, 0x00000001, - 0x59a8000f, 0x82000500, 0x000000ff, 0x80041110, - 0x80081580, 0x0400001f, 0x82041580, 0x0000ff00, - 0x0400000a, 0x59c410a3, 0x82081500, 0x00008000, - 0x04000009, 0x59c410a7, 0x82081500, 0x0000ff00, - 0x82081580, 0x0000ff00, 0x4200c800, 0x00000000, - 0x04000010, 0x8d0e1d02, 0x04020007, 0x8d0e1d00, - 0x0402000c, 0x599c1017, 0x8c08151a, 0x04000037, - 0x850e1d42, 0x4200c800, 0x00000002, 0x42028000, - 0x00000004, 0x42027800, 0x00000008, 0x0401f005, - 0x850e1d40, 0x42028000, 0x00000004, 0x417a7800, - 0x59a80005, 0x8c000502, 0x04020004, 0x8d0e1d0a, - 0x04020030, 0x850e1d4a, 0x42000000, 0x0010bb66, - 0x0201f800, 0x0010ad1d, 0x59a81809, 0x42001000, - 0x00008013, 0x0201f800, 0x001031eb, 0x8d0e1d20, - 0x04000015, 0x4d400000, 0x82600500, 0x000000ff, - 0x42028800, 0x0000ffff, 0x40643000, 0x42028000, - 0x0000000e, 0x0201f800, 0x00109f41, 0x42000800, - 0x00000001, 0x42001000, 0x00000100, 0x0201f800, - 0x00105a1f, 0x5c028000, 0x599c0817, 0x8c040d0a, - 0x04020010, 0x493fc857, 0x4943c857, 0x0201f800, - 0x0010ded4, 0x0401f00b, 0x8d0e1d20, 0x04000009, - 0x42028000, 0x0000000f, 0x42028800, 0x0000ffff, - 0x42003000, 0x00000000, 0x0201f800, 0x00109f44, - 0x497b8880, 0x5c028000, 0x5c027800, 0x5c00c800, - 0x1c01f000, 0x42000800, 0x00000000, 0x0401ff54, - 0x82040540, 0x00000002, 0x42000800, 0x00000000, - 0x0401f757, 0x42000800, 0x00000000, 0x0401ff4c, - 0x82040500, 0xfffffffd, 0x42000800, 0x00000000, - 0x0401f74f, 0x59c408a8, 0x0401ff3e, 0x0401ff3d, - 0x59c400a8, 0x80040d80, 0x040207fb, 0x1c01f000, - 0x4803c856, 0x4a038807, 0x00000001, 0x497b8807, - 0x59c40005, 0x48038805, 0x497b506a, 0x497b506b, - 0x59e00024, 0x8c000510, 0x04020038, 0x41785800, - 0x42006000, 0x00000001, 0x42006800, 0x00000003, - 0x0401f87c, 0x0401f887, 0x40400000, 0x4803c857, - 0x82408580, 0x00000000, 0x0402002c, 0x41785800, - 0x42006000, 0x00000004, 0x42006800, 0x00000006, - 0x0401f870, 0x0401f87b, 0x40400000, 0x4803c857, - 0x82408580, 0x0000001a, 0x04020020, 0x42005800, - 0x00000001, 0x42006000, 0x0000001e, 0x42006800, - 0x00000014, 0x0401f863, 0x0401f86e, 0x40400000, - 0x4803c857, 0x82408580, 0x0000ffff, 0x04020013, - 0x4a03506a, 0x00000001, 0x4803c856, 0x42001800, - 0x001200f5, 0x0401f9b3, 0x42001800, 0x003a0001, - 0x0401f9b0, 0x42001800, 0x000200f5, 0x0401f9ad, - 0x42001800, 0x00020001, 0x0401f9aa, 0x42001800, - 0x00000001, 0x0401f9a7, 0x1c01f000, 0x42005800, - 0x00000000, 0x42006000, 0x0000001e, 0x40006800, - 0x0401f844, 0x0401f84f, 0x40400000, 0x1c01f000, - 0x59a8006a, 0x80000540, 0x0400003d, 0x5c036000, - 0x4db00000, 0x49b3c857, 0x4c5c0000, 0x4c600000, - 0x42000800, 0x00000001, 0x0401f945, 0x42000000, - 0x0000000a, 0x0401ffea, 0x4000b800, 0x825c0480, - 0x00000005, 0x02021800, 0x0010032d, 0x4200c000, - 0x00000008, 0x825c0480, 0x00000004, 0x04001003, - 0x4200c000, 0x00000004, 0x59c8000b, 0x4803c857, - 0x59c4009e, 0x82000d80, 0x00000003, 0x0402001e, - 0x825c0d80, 0x00000003, 0x0400001b, 0x485fc857, - 0x42000000, 0x00000015, 0x0401ffd1, 0x80600540, - 0x4c000000, 0x41785800, 0x42006000, 0x0000001e, - 0x42006800, 0x00000015, 0x0401f812, 0x5c000000, - 0x40006800, 0x0401f815, 0x82600580, 0x00000004, - 0x04000003, 0x805cb800, 0x0401f7ea, 0x805cb840, - 0x825c0580, 0x00000003, 0x02020800, 0x0010032d, - 0x0401f7e4, 0x5c00c000, 0x5c00b800, 0x1c01f000, - 0x41785000, 0x0401f812, 0x0401f838, 0x40347000, - 0x40340800, 0x0401f03d, 0x42005000, 0x00000001, - 0x0401f80b, 0x0401f831, 0x40340800, 0x0401f037, - 0x42005000, 0x00000002, 0x0401f805, 0x0401f81d, - 0x0401f835, 0x40048000, 0x1c01f000, 0x0401f808, - 0x0401f814, 0x40280800, 0x0401f826, 0x402c0800, - 0x0401f827, 0x40300800, 0x0401f025, 0x42000800, - 0x0000ffff, 0x42001000, 0x00000001, 0x0401f829, - 0x42001000, 0x00000010, 0x0401f826, 0x42000800, - 0x0000ffff, 0x42001000, 0x00000010, 0x0401f021, - 0x41780800, 0x42001000, 0x00000002, 0x0401f01d, - 0x0401f946, 0x4a03d000, 0x00050004, 0x0401f943, - 0x4a03d000, 0x00050005, 0x0401f940, 0x4a03d000, - 0x00050004, 0x42000800, 0x00000001, 0x42001000, - 0x00000001, 0x0401f00f, 0x42000800, 0x00000002, - 0x42001000, 0x00000002, 0x0401f00a, 0x42001000, - 0x00000005, 0x0401f007, 0x42001000, 0x00000010, - 0x0401f004, 0x42001000, 0x00000010, 0x0401f01b, - 0x0401f92a, 0x82082c00, 0x0010ae3e, 0x50142800, - 0x82081500, 0xffffffff, 0x04000013, 0x0401f923, - 0x80081040, 0x80142902, 0x40040000, 0x80140500, - 0x04000007, 0x4a03d000, 0x00070006, 0x0401f91b, - 0x4a03d000, 0x00070007, 0x0401f006, 0x4a03d000, - 0x00070004, 0x0401f915, 0x4a03d000, 0x00070005, - 0x0401f7ec, 0x1c01f000, 0x41780800, 0x82082c00, - 0x0010ae3e, 0x50142800, 0x82081500, 0xffffffff, - 0x04000010, 0x0401f909, 0x4a03d000, 0x00050001, - 0x0401f906, 0x59e81800, 0x80081040, 0x80142902, - 0x8c0c1d06, 0x04000004, 0x40140000, 0x80040d40, - 0x0401f8fe, 0x4a03d000, 0x00070000, 0x0401f7ef, - 0x1c01f000, 0x40681000, 0x4c5c0000, 0x4c080000, - 0x42000000, 0x00000014, 0x0401ff39, 0x4000b800, - 0x42000800, 0x00000001, 0x0401f88d, 0x5c001000, - 0x480bc857, 0x480b506b, 0x59c40001, 0x82000500, - 0xffffefff, 0x48038801, 0x41781800, 0x0401f8d1, + 0x00010000, 0x0401fa32, 0x42000800, 0x00000000, + 0x0401f868, 0x82040500, 0xffffff6f, 0x42000800, + 0x00000000, 0x0401f86b, 0x0401f011, 0x59a8006a, + 0x80000540, 0x04000004, 0x42001000, 0x00008000, + 0x0401fa23, 0x42000800, 0x00000000, 0x0401f859, + 0x82040500, 0xffffff6f, 0x82000540, 0x00000010, + 0x42000800, 0x00000000, 0x0401f85a, 0x0401f103, + 0x0401f807, 0x42018800, 0x00000001, 0x04000003, + 0x42018800, 0x00000000, 0x1c01f000, 0x4c580000, + 0x4200b000, 0x00000014, 0x8058b040, 0x0400002a, + 0x59c4000d, 0x8c000520, 0x040207fc, 0x0401f83a, + 0x59c4000d, 0x8c000520, 0x040207f8, 0x59c40808, + 0x82040d40, 0x00000100, 0x48078808, 0x4200b000, + 0x000000c8, 0x8058b040, 0x040207ff, 0x4200b000, + 0x00000014, 0x8058b040, 0x04000017, 0x59c4000d, + 0x8c000520, 0x04020014, 0x0401f827, 0x59c4000d, + 0x8c000520, 0x04020010, 0x4200b000, 0x0000000a, + 0x8058b040, 0x04000003, 0x0401f81f, 0x0401f7fd, + 0x4200b000, 0x00000064, 0x59c4000d, 0x8c00051e, + 0x04000005, 0x8058b040, 0x040207fc, 0x80000580, + 0x0401f003, 0x82000540, 0x00000001, 0x5c00b000, + 0x1c01f000, 0x42000800, 0x000000a0, 0x0401f815, + 0x82040500, 0xfffffffe, 0x42000800, 0x000000a0, + 0x0401f818, 0x42000800, 0x00000000, 0x0401f80d, + 0x82040500, 0xfffffffe, 0x42000800, 0x00000000, + 0x0401f010, 0x40000000, 0x40000000, 0x40000000, + 0x40000000, 0x40000000, 0x1c01f000, 0x40680800, + 0x4807880e, 0x59c4080f, 0x82040d00, 0x000000ff, + 0x40058800, 0x1c01f000, 0x40680800, 0x406c0000, + 0x900001c0, 0x80040d40, 0x84040d40, 0x4807880e, + 0x1c01f000, 0x82000d80, 0x00200000, 0x04000009, + 0x82000d80, 0x02000000, 0x04000006, 0x82000d80, + 0x01000000, 0x04000006, 0x59c408a3, 0x0401f006, + 0x59c408a3, 0x84040d30, 0x0401f003, 0x59c408a3, + 0x84040d32, 0x80040540, 0x480388a3, 0x480788a3, + 0x1c01f000, 0x59c400a3, 0x84000556, 0x480388a3, + 0x84000516, 0x480388a3, 0x1c01f000, 0x485fc857, + 0x4863c857, 0x4c640000, 0x4d3c0000, 0x4d400000, + 0x0201f800, 0x00106480, 0x48635009, 0x40601800, + 0x42002000, 0x00000000, 0x0401fa91, 0x42000000, + 0x0010bc7f, 0x0201f800, 0x0010ae10, 0x82600500, + 0x0000ff00, 0x82000580, 0x0000f700, 0x04020005, + 0x42000000, 0x0010bc67, 0x0201f800, 0x0010ae10, + 0x0201f800, 0x0010af17, 0x04020063, 0x82600d00, + 0x0000ff00, 0x800409c0, 0x0400000c, 0x4200c800, + 0x00000001, 0x59a8000f, 0x82000500, 0x000000ff, + 0x80041110, 0x80081580, 0x0400001f, 0x82041580, + 0x0000ff00, 0x0400000a, 0x59c410a3, 0x82081500, + 0x00008000, 0x04000009, 0x59c410a7, 0x82081500, + 0x0000ff00, 0x82081580, 0x0000ff00, 0x4200c800, + 0x00000000, 0x04000010, 0x8d0e1d02, 0x04020007, + 0x8d0e1d00, 0x0402000c, 0x599c1017, 0x8c08151a, + 0x04000037, 0x850e1d42, 0x4200c800, 0x00000002, + 0x42028000, 0x00000004, 0x42027800, 0x00000008, + 0x0401f005, 0x850e1d40, 0x42028000, 0x00000004, + 0x417a7800, 0x59a80005, 0x8c000502, 0x04020004, + 0x8d0e1d0a, 0x04020030, 0x850e1d4a, 0x42000000, + 0x0010bc66, 0x0201f800, 0x0010ae10, 0x59a81809, + 0x42001000, 0x00008013, 0x0201f800, 0x001031f5, + 0x8d0e1d20, 0x04000015, 0x4d400000, 0x82600500, + 0x000000ff, 0x42028800, 0x0000ffff, 0x40643000, + 0x42028000, 0x0000000e, 0x0201f800, 0x0010a018, + 0x42000800, 0x00000001, 0x42001000, 0x00000100, + 0x0201f800, 0x00105ac4, 0x5c028000, 0x599c0817, + 0x8c040d0a, 0x04020010, 0x493fc857, 0x4943c857, + 0x0201f800, 0x0010dfe1, 0x0401f00b, 0x8d0e1d20, + 0x04000009, 0x42028000, 0x0000000f, 0x42028800, + 0x0000ffff, 0x42003000, 0x00000000, 0x0201f800, + 0x0010a01b, 0x497b8880, 0x5c028000, 0x5c027800, + 0x5c00c800, 0x1c01f000, 0x42000800, 0x00000000, + 0x0401ff54, 0x82040540, 0x00000002, 0x42000800, + 0x00000000, 0x0401f757, 0x42000800, 0x00000000, + 0x0401ff4c, 0x82040500, 0xfffffffd, 0x42000800, + 0x00000000, 0x0401f74f, 0x59c408a8, 0x0401ff3e, + 0x0401ff3d, 0x59c400a8, 0x80040d80, 0x040207fb, + 0x1c01f000, 0x4803c856, 0x4a038807, 0x00000001, + 0x497b8807, 0x59c40005, 0x48038805, 0x497b506a, + 0x497b506b, 0x59e00024, 0x8c000510, 0x04020038, + 0x41785800, 0x42006000, 0x00000001, 0x42006800, + 0x00000003, 0x0401f87c, 0x0401f887, 0x40400000, + 0x4803c857, 0x82408580, 0x00000000, 0x0402002c, + 0x41785800, 0x42006000, 0x00000004, 0x42006800, + 0x00000006, 0x0401f870, 0x0401f87b, 0x40400000, + 0x4803c857, 0x82408580, 0x0000001a, 0x04020020, + 0x42005800, 0x00000001, 0x42006000, 0x0000001e, + 0x42006800, 0x00000014, 0x0401f863, 0x0401f86e, + 0x40400000, 0x4803c857, 0x82408580, 0x0000ffff, + 0x04020013, 0x4a03506a, 0x00000001, 0x4803c856, + 0x42001800, 0x001200f5, 0x0401f9b3, 0x42001800, + 0x003a0001, 0x0401f9b0, 0x42001800, 0x000200f5, + 0x0401f9ad, 0x42001800, 0x00020001, 0x0401f9aa, + 0x42001800, 0x00000001, 0x0401f9a7, 0x1c01f000, + 0x42005800, 0x00000000, 0x42006000, 0x0000001e, + 0x40006800, 0x0401f844, 0x0401f84f, 0x40400000, + 0x1c01f000, 0x59a8006a, 0x80000540, 0x0400003d, + 0x5c036000, 0x4db00000, 0x49b3c857, 0x4c5c0000, + 0x4c600000, 0x42000800, 0x00000001, 0x0401f945, + 0x42000000, 0x0000000a, 0x0401ffea, 0x4000b800, + 0x825c0480, 0x00000005, 0x02021800, 0x0010032d, + 0x4200c000, 0x00000008, 0x825c0480, 0x00000004, + 0x04001003, 0x4200c000, 0x00000004, 0x59c8000b, + 0x4803c857, 0x59c4009e, 0x82000d80, 0x00000003, + 0x0402001e, 0x825c0d80, 0x00000003, 0x0400001b, + 0x485fc857, 0x42000000, 0x00000015, 0x0401ffd1, + 0x80600540, 0x4c000000, 0x41785800, 0x42006000, + 0x0000001e, 0x42006800, 0x00000015, 0x0401f812, + 0x5c000000, 0x40006800, 0x0401f815, 0x82600580, + 0x00000004, 0x04000003, 0x805cb800, 0x0401f7ea, + 0x805cb840, 0x825c0580, 0x00000003, 0x02020800, + 0x0010032d, 0x0401f7e4, 0x5c00c000, 0x5c00b800, + 0x1c01f000, 0x41785000, 0x0401f812, 0x0401f838, + 0x40347000, 0x40340800, 0x0401f03d, 0x42005000, + 0x00000001, 0x0401f80b, 0x0401f831, 0x40340800, + 0x0401f037, 0x42005000, 0x00000002, 0x0401f805, + 0x0401f81d, 0x0401f835, 0x40048000, 0x1c01f000, + 0x0401f808, 0x0401f814, 0x40280800, 0x0401f826, + 0x402c0800, 0x0401f827, 0x40300800, 0x0401f025, + 0x42000800, 0x0000ffff, 0x42001000, 0x00000001, + 0x0401f829, 0x42001000, 0x00000010, 0x0401f826, + 0x42000800, 0x0000ffff, 0x42001000, 0x00000010, + 0x0401f021, 0x41780800, 0x42001000, 0x00000002, + 0x0401f01d, 0x0401f946, 0x4a03d000, 0x00050004, + 0x0401f943, 0x4a03d000, 0x00050005, 0x0401f940, + 0x4a03d000, 0x00050004, 0x42000800, 0x00000001, + 0x42001000, 0x00000001, 0x0401f00f, 0x42000800, + 0x00000002, 0x42001000, 0x00000002, 0x0401f00a, + 0x42001000, 0x00000005, 0x0401f007, 0x42001000, + 0x00000010, 0x0401f004, 0x42001000, 0x00000010, + 0x0401f01b, 0x0401f92a, 0x82082c00, 0x0010af34, + 0x50142800, 0x82081500, 0xffffffff, 0x04000013, + 0x0401f923, 0x80081040, 0x80142902, 0x40040000, + 0x80140500, 0x04000007, 0x4a03d000, 0x00070006, + 0x0401f91b, 0x4a03d000, 0x00070007, 0x0401f006, + 0x4a03d000, 0x00070004, 0x0401f915, 0x4a03d000, + 0x00070005, 0x0401f7ec, 0x1c01f000, 0x41780800, + 0x82082c00, 0x0010af34, 0x50142800, 0x82081500, + 0xffffffff, 0x04000010, 0x0401f909, 0x4a03d000, + 0x00050001, 0x0401f906, 0x59e81800, 0x80081040, + 0x80142902, 0x8c0c1d06, 0x04000004, 0x40140000, + 0x80040d40, 0x0401f8fe, 0x4a03d000, 0x00070000, + 0x0401f7ef, 0x1c01f000, 0x40681000, 0x4c5c0000, + 0x4c080000, 0x42000000, 0x00000014, 0x0401ff39, + 0x4000b800, 0x42000800, 0x00000001, 0x0401f88d, + 0x5c001000, 0x480bc857, 0x480b506b, 0x59c40001, + 0x82000500, 0xffffefff, 0x48038801, 0x41781800, + 0x0401f8d1, 0x41785800, 0x42006000, 0x0000001e, + 0x42006800, 0x00000004, 0x0401ff6f, 0x42006800, + 0x0000003c, 0x0401ff72, 0x41785800, 0x42006000, + 0x0000001e, 0x42006800, 0x00000004, 0x0401ff66, + 0x41786800, 0x0401ff6a, 0x41785800, 0x42006000, + 0x0000001e, 0x41786800, 0x0401ff5f, 0x42006800, + 0x00000002, 0x0401ff62, 0x42006800, 0x00000001, + 0x0401ff59, 0x42006800, 0x000000f5, 0x0401ff5c, 0x41785800, 0x42006000, 0x0000001e, 0x42006800, - 0x00000004, 0x0401ff6f, 0x42006800, 0x0000003c, - 0x0401ff72, 0x41785800, 0x42006000, 0x0000001e, - 0x42006800, 0x00000004, 0x0401ff66, 0x41786800, - 0x0401ff6a, 0x41785800, 0x42006000, 0x0000001e, - 0x41786800, 0x0401ff5f, 0x42006800, 0x00000002, - 0x0401ff62, 0x42006800, 0x00000001, 0x0401ff59, - 0x42006800, 0x000000f5, 0x0401ff5c, 0x41785800, - 0x42006000, 0x0000001e, 0x42006800, 0x00000004, - 0x0401ff50, 0x42006800, 0x00000020, 0x0401ff53, - 0x59a8106b, 0x0401f872, 0x42001800, 0x000200f5, - 0x0401f8a4, 0x59a8106b, 0x0401f886, 0x41785800, - 0x42006000, 0x0000001e, 0x42006800, 0x00000004, - 0x0401ff40, 0x41786800, 0x0401ff44, 0x42000000, - 0x00000015, 0x0401fef2, 0x82000540, 0x00000002, - 0x4c000000, 0x41785800, 0x42006000, 0x0000001e, - 0x42006800, 0x00000015, 0x0401ff32, 0x5c000000, - 0x40006800, 0x0401ff35, 0x42000000, 0x00000015, - 0x0401fee3, 0x82000500, 0x0000fffd, 0x4c000000, + 0x00000004, 0x0401ff50, 0x42006800, 0x00000020, + 0x0401ff53, 0x59a8106b, 0x0401f872, 0x42001800, + 0x000200f5, 0x0401f8a4, 0x59a8106b, 0x0401f886, 0x41785800, 0x42006000, 0x0000001e, 0x42006800, - 0x00000015, 0x0401ff23, 0x5c000000, 0x40006800, - 0x0401ff26, 0x42000000, 0x00000014, 0x0401fed4, - 0x82000540, 0x00000040, 0x4c000000, 0x41785800, + 0x00000004, 0x0401ff40, 0x41786800, 0x0401ff44, + 0x42000000, 0x00000015, 0x0401fef2, 0x82000540, + 0x00000002, 0x4c000000, 0x41785800, 0x42006000, + 0x0000001e, 0x42006800, 0x00000015, 0x0401ff32, + 0x5c000000, 0x40006800, 0x0401ff35, 0x42000000, + 0x00000015, 0x0401fee3, 0x82000500, 0x0000fffd, + 0x4c000000, 0x41785800, 0x42006000, 0x0000001e, + 0x42006800, 0x00000015, 0x0401ff23, 0x5c000000, + 0x40006800, 0x0401ff26, 0x42000000, 0x00000014, + 0x0401fed4, 0x82000540, 0x00000040, 0x4c000000, + 0x41785800, 0x42006000, 0x0000001e, 0x42006800, + 0x00000014, 0x0401ff14, 0x5c000000, 0x40006800, + 0x0401ff17, 0x42000000, 0x00000014, 0x0401fec5, + 0x82000500, 0x0000ffbf, 0x4c000000, 0x41785800, 0x42006000, 0x0000001e, 0x42006800, 0x00000014, - 0x0401ff14, 0x5c000000, 0x40006800, 0x0401ff17, - 0x42000000, 0x00000014, 0x0401fec5, 0x82000500, - 0x0000ffbf, 0x4c000000, 0x41785800, 0x42006000, - 0x0000001e, 0x42006800, 0x00000014, 0x0401ff05, - 0x5c000000, 0x40006800, 0x0401ff08, 0x4a038886, - 0x00002020, 0x41780800, 0x8c5cbd06, 0x04000003, - 0x42000800, 0x00000001, 0x0401f809, 0x59c40001, - 0x82000540, 0x00001000, 0x48038801, 0x0401f867, - 0x0401feb4, 0x5c00b800, 0x1c01f000, 0x59a8006a, - 0x80000540, 0x04000015, 0x4807c857, 0x42000000, - 0x00000014, 0x4c040000, 0x0401fea1, 0x5c000800, - 0x84000546, 0x800409c0, 0x04020002, 0x84000506, - 0x4c000000, 0x41785800, 0x42006000, 0x0000001e, - 0x42006800, 0x00000014, 0x0401fede, 0x5c000000, - 0x40006800, 0x0401fee1, 0x1c01f000, 0x480bc857, - 0x82080580, 0x00010000, 0x04020007, 0x82040d40, - 0x00010000, 0x42001800, 0x00000001, 0x0401f82d, - 0x0401f00f, 0x82080580, 0x00008000, 0x04000007, - 0x82040d40, 0x00000000, 0x42001800, 0x00900001, - 0x0401f824, 0x0401f006, 0x82040d40, 0x00008000, - 0x42001800, 0x00100001, 0x0401f81e, 0x1c01f000, - 0x480bc857, 0x82080580, 0x00010000, 0x04020008, - 0x42001800, 0x000000a1, 0x0401f816, 0x42001800, - 0x000000c1, 0x0401f813, 0x0401f011, 0x82080580, - 0x00008000, 0x04000008, 0x42001800, 0x000400a1, - 0x0401f80c, 0x42001800, 0x002000c1, 0x0401f809, - 0x0401f007, 0x42001800, 0x000400a1, 0x0401f805, - 0x42001800, 0x000000c1, 0x0401f802, 0x1c01f000, - 0x480fc857, 0x41785800, 0x42006000, 0x0000001e, - 0x41786800, 0x0401fe9f, 0x400c6800, 0x80346960, - 0x0401fea2, 0x42006800, 0x00000001, 0x0401fe99, - 0x400c6800, 0x0401fe9d, 0x42006800, 0x00000003, - 0x0401fe94, 0x0401fe9f, 0x40400000, 0x8c000504, - 0x040207fc, 0x1c01f000, 0x40000000, 0x40000000, - 0x40000000, 0x1c01f000, 0x59a80005, 0x8c000500, - 0x0400000a, 0x59a80008, 0x8c000500, 0x04020007, - 0x84000540, 0x48035008, 0x42001000, 0x00008016, - 0x0201f800, 0x001031eb, 0x1c01f000, 0x4803c856, - 0x59a80006, 0x8c00051e, 0x0402000a, 0x42028800, - 0x000007fc, 0x42003000, 0x00fffffc, 0x0201f800, - 0x00103dcb, 0x04020008, 0x0401f809, 0x04000006, - 0x4a03501c, 0x0000ffff, 0x82000540, 0x00000001, - 0x1c01f000, 0x80000580, 0x0401f7fe, 0x4937c857, - 0x0201f800, 0x001070f5, 0x04000016, 0x4936600a, - 0x4a026407, 0x00000001, 0x417a7800, 0x0201f800, - 0x00103d7f, 0x42000800, 0x00000003, 0x0201f800, - 0x00103d8a, 0x59a8001d, 0x80000000, 0x4803501d, - 0x599c0208, 0x48026c12, 0x42027000, 0x00000002, + 0x0401ff05, 0x5c000000, 0x40006800, 0x0401ff08, + 0x4a038886, 0x00002020, 0x41780800, 0x8c5cbd06, + 0x04000003, 0x42000800, 0x00000001, 0x0401f809, + 0x59c40001, 0x82000540, 0x00001000, 0x48038801, + 0x0401f867, 0x0401feb4, 0x5c00b800, 0x1c01f000, + 0x59a8006a, 0x80000540, 0x04000015, 0x4807c857, + 0x42000000, 0x00000014, 0x4c040000, 0x0401fea1, + 0x5c000800, 0x84000546, 0x800409c0, 0x04020002, + 0x84000506, 0x4c000000, 0x41785800, 0x42006000, + 0x0000001e, 0x42006800, 0x00000014, 0x0401fede, + 0x5c000000, 0x40006800, 0x0401fee1, 0x1c01f000, + 0x480bc857, 0x82080580, 0x00010000, 0x04020007, + 0x82040d40, 0x00010000, 0x42001800, 0x00000001, + 0x0401f82d, 0x0401f00f, 0x82080580, 0x00008000, + 0x04000007, 0x82040d40, 0x00000000, 0x42001800, + 0x00900001, 0x0401f824, 0x0401f006, 0x82040d40, + 0x00008000, 0x42001800, 0x00100001, 0x0401f81e, + 0x1c01f000, 0x480bc857, 0x82080580, 0x00010000, + 0x04020008, 0x42001800, 0x000000a1, 0x0401f816, + 0x42001800, 0x000000c1, 0x0401f813, 0x0401f011, + 0x82080580, 0x00008000, 0x04000008, 0x42001800, + 0x000400a1, 0x0401f80c, 0x42001800, 0x002000c1, + 0x0401f809, 0x0401f007, 0x42001800, 0x000400a1, + 0x0401f805, 0x42001800, 0x000000c1, 0x0401f802, + 0x1c01f000, 0x480fc857, 0x41785800, 0x42006000, + 0x0000001e, 0x41786800, 0x0401fe9f, 0x400c6800, + 0x80346960, 0x0401fea2, 0x42006800, 0x00000001, + 0x0401fe99, 0x400c6800, 0x0401fe9d, 0x42006800, + 0x00000003, 0x0401fe94, 0x0401fe9f, 0x40400000, + 0x8c000504, 0x040207fc, 0x1c01f000, 0x40000000, + 0x40000000, 0x40000000, 0x1c01f000, 0x59a80005, + 0x8c000500, 0x0400000a, 0x59a80008, 0x8c000500, + 0x04020007, 0x84000540, 0x48035008, 0x42001000, + 0x00008016, 0x0201f800, 0x001031f5, 0x1c01f000, + 0x4803c856, 0x59a80006, 0x8c00051e, 0x0402000a, + 0x42028800, 0x000007fc, 0x42003000, 0x00fffffc, + 0x0201f800, 0x00103de1, 0x04020008, 0x0401f809, + 0x04000006, 0x4a03501c, 0x0000ffff, 0x82000540, + 0x00000001, 0x1c01f000, 0x80000580, 0x0401f7fe, + 0x4937c857, 0x0201f800, 0x00107188, 0x04000016, + 0x4936600a, 0x4a026407, 0x00000001, 0x417a7800, + 0x0201f800, 0x00103d92, 0x42000800, 0x00000003, + 0x0201f800, 0x00103d9d, 0x59a8001d, 0x80000000, + 0x4803501d, 0x599c0208, 0x48026c12, 0x42027000, + 0x00000002, 0x0201f800, 0x00020a34, 0x82000540, + 0x00000001, 0x1c01f000, 0x40681000, 0x0401f807, + 0x42018800, 0x00000000, 0x04000003, 0x42018800, + 0x00000001, 0x1c01f000, 0x480bc857, 0x492fc857, + 0x4c5c0000, 0x4008b800, 0x42028800, 0x000007fd, + 0x42003000, 0x00fffffd, 0x0201f800, 0x00103de1, + 0x0402001e, 0x5934000a, 0x84000544, 0x4802680a, + 0x0201f800, 0x00107188, 0x04000018, 0x4936600a, + 0x812e59c0, 0x04000006, 0x592c0405, 0x8c00051e, + 0x04000003, 0x48ee6022, 0x0401f004, 0x59a8021b, + 0x8400055c, 0x4803521b, 0x492e6009, 0x4a026407, + 0x00000001, 0x485e601d, 0x42027000, 0x00000022, 0x0201f800, 0x00020a34, 0x82000540, 0x00000001, - 0x1c01f000, 0x40681000, 0x0401f807, 0x42018800, - 0x00000000, 0x04000003, 0x42018800, 0x00000001, - 0x1c01f000, 0x480bc857, 0x492fc857, 0x4c5c0000, - 0x4008b800, 0x42028800, 0x000007fd, 0x42003000, - 0x00fffffd, 0x0201f800, 0x00103dcb, 0x0402001e, - 0x5934000a, 0x84000544, 0x4802680a, 0x0201f800, - 0x001070f5, 0x04000018, 0x4936600a, 0x812e59c0, - 0x04000006, 0x592c0405, 0x8c00051e, 0x04000003, - 0x48ee6022, 0x0401f004, 0x59a8021b, 0x8400055c, - 0x4803521b, 0x492e6009, 0x4a026407, 0x00000001, - 0x485e601d, 0x42027000, 0x00000022, 0x0201f800, - 0x00020a34, 0x82000540, 0x00000001, 0x5c00b800, - 0x1c01f000, 0x80000580, 0x0401f7fd, 0x4933c857, - 0x59a8021b, 0x8c000508, 0x04020012, 0x5930500a, - 0x482bc857, 0x836c0580, 0x00000002, 0x0402000d, - 0x0401f813, 0x0402000b, 0x58280403, 0x82000580, - 0x000007fc, 0x04000008, 0x59a80016, 0x80000040, - 0x4803c857, 0x02001800, 0x0010032d, 0x48035016, - 0x1c01f000, 0x59a8001d, 0x80000040, 0x4803c857, - 0x040017fc, 0x4803501d, 0x1c01f000, 0x59300009, - 0x800001c0, 0x04020009, 0x59300403, 0x82000580, - 0x00000001, 0x04020004, 0x82000540, 0x00000001, - 0x0401f002, 0x80000580, 0x1c01f000, 0x4933c857, - 0x493fc857, 0x4947c857, 0x4d400000, 0x4d340000, - 0x4d440000, 0x4c580000, 0x0201f800, 0x0010610d, - 0x4df00000, 0x8060c1c0, 0x04020004, 0x4200b000, - 0x00000001, 0x0401f004, 0x4200b000, 0x000007f0, - 0x417a8800, 0x41440000, 0x81ac0400, 0x50000000, - 0x80026d40, 0x0400001a, 0x4d3c0000, 0x42027800, - 0x00000001, 0x0201f800, 0x001040d5, 0x5c027800, - 0x42028000, 0x00000029, 0x0201f800, 0x0010e4c8, - 0x0201f800, 0x0010e5a4, 0x0201f800, 0x0010e63d, - 0x0201f800, 0x00104165, 0x04020005, 0x4937c857, - 0x4a026c00, 0x00000404, 0x0401f003, 0x0201f800, - 0x001041a0, 0x0201f800, 0x0010ea62, 0x81468800, - 0x8058b040, 0x040207e0, 0x5c03e000, 0x02000800, - 0x001060fa, 0x5c00b000, 0x5c028800, 0x5c026800, - 0x5c028000, 0x1c01f000, 0x0401f807, 0x42018800, - 0x00000001, 0x04000003, 0x42018800, 0x00000000, - 0x1c01f000, 0x4937c857, 0x4947c857, 0x4c5c0000, - 0x4c600000, 0x4c640000, 0x59a80056, 0x8c000500, - 0x0400001f, 0x599c0017, 0x8c00050a, 0x0402001c, - 0x5934ba02, 0x825cbd00, 0x000000ff, 0x485fc857, - 0x4178c000, 0x4178c800, 0x82600400, 0x0010c1c7, - 0x50002000, 0x8060c1c0, 0x04000008, 0x82100500, - 0x000000ff, 0x82002d80, 0x000000ff, 0x0400000c, - 0x805c0580, 0x0400000d, 0x80102110, 0x8064c800, - 0x82640580, 0x00000004, 0x040207f5, 0x8060c000, - 0x82600580, 0x00000020, 0x040207eb, 0x4813c857, - 0x82000540, 0x00000001, 0x5c00c800, 0x5c00c000, - 0x5c00b800, 0x1c01f000, 0x0401f807, 0x42018800, - 0x00000001, 0x04020003, 0x42018800, 0x00000000, - 0x1c01f000, 0x59a8021b, 0x8c000512, 0x02020800, - 0x001003f4, 0x1c01f000, 0x00007eef, 0x00007de8, - 0x00007ce4, 0x000080e2, 0x00007be1, 0x000080e0, - 0x000080dc, 0x000080da, 0x00007ad9, 0x000080d6, - 0x000080d5, 0x000080d4, 0x000080d3, 0x000080d2, - 0x000080d1, 0x000079ce, 0x000078cd, 0x000080cc, - 0x000080cb, 0x000080ca, 0x000080c9, 0x000080c7, - 0x000080c6, 0x000077c5, 0x000076c3, 0x000080bc, - 0x000080ba, 0x000075b9, 0x000080b6, 0x000074b5, - 0x000073b4, 0x000072b3, 0x000080b2, 0x000080b1, - 0x000080ae, 0x000071ad, 0x000080ac, 0x000070ab, - 0x00006faa, 0x00006ea9, 0x000080a7, 0x00006da6, - 0x00006ca5, 0x00006ba3, 0x00006a9f, 0x0000699e, - 0x0000689d, 0x0000809b, 0x00008098, 0x00006797, - 0x00006690, 0x0000658f, 0x00006488, 0x00006384, - 0x00006282, 0x00008081, 0x00008080, 0x0000617c, - 0x0000607a, 0x00008079, 0x00005f76, 0x00008075, - 0x00008074, 0x00008073, 0x00008072, 0x00008071, - 0x0000806e, 0x00005e6d, 0x0000806c, 0x00005d6b, - 0x00005c6a, 0x00005b69, 0x00008067, 0x00005a66, - 0x00005965, 0x00005863, 0x0000575c, 0x0000565a, - 0x00005559, 0x00008056, 0x00008055, 0x00005454, - 0x00005353, 0x00005252, 0x00005151, 0x0000504e, - 0x00004f4d, 0x0000804c, 0x0000804b, 0x00004e4a, - 0x00004d49, 0x00008047, 0x00004c46, 0x00008045, - 0x00008043, 0x0000803c, 0x0000803a, 0x00008039, - 0x00008036, 0x00004b35, 0x00008034, 0x00004a33, - 0x00004932, 0x00004831, 0x0000802e, 0x0000472d, - 0x0000462c, 0x0000452b, 0x0000442a, 0x00004329, - 0x00004227, 0x00008026, 0x00008025, 0x00004123, - 0x0000401f, 0x00003f1e, 0x00003e1d, 0x00003d1b, - 0x00003c18, 0x00008017, 0x00008010, 0x00003b0f, - 0x00003a08, 0x00008004, 0x00003902, 0x00008001, - 0x00008000, 0x00008000, 0x00003800, 0x00003700, - 0x00003600, 0x00008000, 0x00003500, 0x00008000, - 0x00008000, 0x00008000, 0x00003400, 0x00008000, + 0x5c00b800, 0x1c01f000, 0x80000580, 0x0401f7fd, + 0x4933c857, 0x59a8021b, 0x8c000508, 0x04020012, + 0x5930500a, 0x482bc857, 0x836c0580, 0x00000002, + 0x0402000d, 0x0401f817, 0x0402000b, 0x58280403, + 0x82000580, 0x000007fc, 0x04000008, 0x59a80016, + 0x80000040, 0x4803c857, 0x02001800, 0x0010032d, + 0x48035016, 0x1c01f000, 0x5930041e, 0x82000580, + 0x00000021, 0x040007fc, 0x59a8001d, 0x80000040, + 0x4803c857, 0x040017f8, 0x4803501d, 0x1c01f000, + 0x59300009, 0x800001c0, 0x04020009, 0x59300403, + 0x82000580, 0x00000001, 0x04020004, 0x82000540, + 0x00000001, 0x0401f002, 0x80000580, 0x1c01f000, + 0x4933c857, 0x493fc857, 0x4947c857, 0x4d400000, + 0x4d340000, 0x4d440000, 0x4c580000, 0x0201f800, + 0x001061b2, 0x4df00000, 0x8060c1c0, 0x04020004, + 0x4200b000, 0x00000001, 0x0401f004, 0x4200b000, + 0x000007f0, 0x417a8800, 0x41440000, 0x81ac0400, + 0x50000000, 0x80026d40, 0x0400001a, 0x4d3c0000, + 0x42027800, 0x00000001, 0x0201f800, 0x001040ef, + 0x5c027800, 0x42028000, 0x00000029, 0x0201f800, + 0x0010e5d8, 0x0201f800, 0x0010e6a9, 0x0201f800, + 0x0010e742, 0x0201f800, 0x00104181, 0x04020005, + 0x4937c857, 0x4a026c00, 0x00000404, 0x0401f003, + 0x0201f800, 0x001041bc, 0x0201f800, 0x0010eb5d, + 0x81468800, 0x8058b040, 0x040207e0, 0x5c03e000, + 0x02000800, 0x0010619f, 0x5c00b000, 0x5c028800, + 0x5c026800, 0x5c028000, 0x1c01f000, 0x0401f807, + 0x42018800, 0x00000001, 0x04000003, 0x42018800, + 0x00000000, 0x1c01f000, 0x4937c857, 0x4947c857, + 0x4c5c0000, 0x4c600000, 0x4c640000, 0x59a80056, + 0x8c000500, 0x0400001f, 0x599c0017, 0x8c00050a, + 0x0402001c, 0x5934ba02, 0x825cbd00, 0x000000ff, + 0x485fc857, 0x4178c000, 0x4178c800, 0x82600400, + 0x0010c2c7, 0x50002000, 0x8060c1c0, 0x04000008, + 0x82100500, 0x000000ff, 0x82002d80, 0x000000ff, + 0x0400000c, 0x805c0580, 0x0400000d, 0x80102110, + 0x8064c800, 0x82640580, 0x00000004, 0x040207f5, + 0x8060c000, 0x82600580, 0x00000020, 0x040207eb, + 0x4813c857, 0x82000540, 0x00000001, 0x5c00c800, + 0x5c00c000, 0x5c00b800, 0x1c01f000, 0x0401f807, + 0x42018800, 0x00000001, 0x04020003, 0x42018800, + 0x00000000, 0x1c01f000, 0x59a8021b, 0x8c000512, + 0x02020800, 0x001003f4, 0x1c01f000, 0x00007eef, + 0x00007de8, 0x00007ce4, 0x000080e2, 0x00007be1, + 0x000080e0, 0x000080dc, 0x000080da, 0x00007ad9, + 0x000080d6, 0x000080d5, 0x000080d4, 0x000080d3, + 0x000080d2, 0x000080d1, 0x000079ce, 0x000078cd, + 0x000080cc, 0x000080cb, 0x000080ca, 0x000080c9, + 0x000080c7, 0x000080c6, 0x000077c5, 0x000076c3, + 0x000080bc, 0x000080ba, 0x000075b9, 0x000080b6, + 0x000074b5, 0x000073b4, 0x000072b3, 0x000080b2, + 0x000080b1, 0x000080ae, 0x000071ad, 0x000080ac, + 0x000070ab, 0x00006faa, 0x00006ea9, 0x000080a7, + 0x00006da6, 0x00006ca5, 0x00006ba3, 0x00006a9f, + 0x0000699e, 0x0000689d, 0x0000809b, 0x00008098, + 0x00006797, 0x00006690, 0x0000658f, 0x00006488, + 0x00006384, 0x00006282, 0x00008081, 0x00008080, + 0x0000617c, 0x0000607a, 0x00008079, 0x00005f76, + 0x00008075, 0x00008074, 0x00008073, 0x00008072, + 0x00008071, 0x0000806e, 0x00005e6d, 0x0000806c, + 0x00005d6b, 0x00005c6a, 0x00005b69, 0x00008067, + 0x00005a66, 0x00005965, 0x00005863, 0x0000575c, + 0x0000565a, 0x00005559, 0x00008056, 0x00008055, + 0x00005454, 0x00005353, 0x00005252, 0x00005151, + 0x0000504e, 0x00004f4d, 0x0000804c, 0x0000804b, + 0x00004e4a, 0x00004d49, 0x00008047, 0x00004c46, + 0x00008045, 0x00008043, 0x0000803c, 0x0000803a, + 0x00008039, 0x00008036, 0x00004b35, 0x00008034, + 0x00004a33, 0x00004932, 0x00004831, 0x0000802e, + 0x0000472d, 0x0000462c, 0x0000452b, 0x0000442a, + 0x00004329, 0x00004227, 0x00008026, 0x00008025, + 0x00004123, 0x0000401f, 0x00003f1e, 0x00003e1d, + 0x00003d1b, 0x00003c18, 0x00008017, 0x00008010, + 0x00003b0f, 0x00003a08, 0x00008004, 0x00003902, + 0x00008001, 0x00008000, 0x00008000, 0x00003800, + 0x00003700, 0x00003600, 0x00008000, 0x00003500, + 0x00008000, 0x00008000, 0x00008000, 0x00003400, 0x00008000, 0x00008000, 0x00008000, 0x00008000, - 0x00008000, 0x00003300, 0x00003200, 0x00008000, + 0x00008000, 0x00008000, 0x00003300, 0x00003200, 0x00008000, 0x00008000, 0x00008000, 0x00008000, - 0x00008000, 0x00003100, 0x00003000, 0x00008000, - 0x00008000, 0x00002f00, 0x00008000, 0x00002e00, - 0x00002d00, 0x00002c00, 0x00008000, 0x00008000, - 0x00008000, 0x00002b00, 0x00008000, 0x00002a00, - 0x00002900, 0x00002800, 0x00008000, 0x00002700, - 0x00002600, 0x00002500, 0x00002400, 0x00002300, - 0x00002200, 0x00008000, 0x00008000, 0x00002100, - 0x00002000, 0x00001f00, 0x00001e00, 0x00001d00, - 0x00001c00, 0x00008000, 0x00008000, 0x00001b00, - 0x00001a00, 0x00008000, 0x00001900, 0x00008000, + 0x00008000, 0x00008000, 0x00003100, 0x00003000, + 0x00008000, 0x00008000, 0x00002f00, 0x00008000, + 0x00002e00, 0x00002d00, 0x00002c00, 0x00008000, + 0x00008000, 0x00008000, 0x00002b00, 0x00008000, + 0x00002a00, 0x00002900, 0x00002800, 0x00008000, + 0x00002700, 0x00002600, 0x00002500, 0x00002400, + 0x00002300, 0x00002200, 0x00008000, 0x00008000, + 0x00002100, 0x00002000, 0x00001f00, 0x00001e00, + 0x00001d00, 0x00001c00, 0x00008000, 0x00008000, + 0x00001b00, 0x00001a00, 0x00008000, 0x00001900, 0x00008000, 0x00008000, 0x00008000, 0x00008000, - 0x00008000, 0x00001800, 0x00008000, 0x00001700, - 0x00001600, 0x00001500, 0x00008000, 0x00001400, - 0x00001300, 0x00001200, 0x00001100, 0x00001000, - 0x00000f00, 0x00008000, 0x00008000, 0x00000e00, - 0x00000d00, 0x00000c00, 0x00000b00, 0x00000a00, - 0x00000900, 0x00008000, 0x00008000, 0x00000800, - 0x00000700, 0x00008000, 0x00000600, 0x00008000, - 0x00008000, 0x00008000, 0x00000500, 0x00000400, - 0x00000300, 0x00008000, 0x00000200, 0x00008000, - 0x00008000, 0x00008000, 0x00000100, 0x00008000, + 0x00008000, 0x00008000, 0x00001800, 0x00008000, + 0x00001700, 0x00001600, 0x00001500, 0x00008000, + 0x00001400, 0x00001300, 0x00001200, 0x00001100, + 0x00001000, 0x00000f00, 0x00008000, 0x00008000, + 0x00000e00, 0x00000d00, 0x00000c00, 0x00000b00, + 0x00000a00, 0x00000900, 0x00008000, 0x00008000, + 0x00000800, 0x00000700, 0x00008000, 0x00000600, + 0x00008000, 0x00008000, 0x00008000, 0x00000500, + 0x00000400, 0x00000300, 0x00008000, 0x00000200, + 0x00008000, 0x00008000, 0x00008000, 0x00000100, 0x00008000, 0x00008000, 0x00008000, 0x00008000, - 0x00008000, 0x00000000, 0x00008000, 0x00008000, + 0x00008000, 0x00008000, 0x00000000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, - 0x00008000, 0x00008000, 0x0201f800, 0x0010055a, - 0x02000800, 0x0010032d, 0x492f4017, 0x1c01f000, - 0x83a0ac00, 0x00000007, 0x83a00580, 0x0010b7fa, - 0x0400000c, 0x492fc857, 0x812e59c0, 0x02000800, - 0x0010032d, 0x832ca400, 0x00000007, 0x4200b000, - 0x0000000d, 0x0201f800, 0x0010adef, 0x0401f00f, - 0x4200b000, 0x00000010, 0x83e0a400, 0x00000020, - 0x50500000, 0x8050a000, 0x50500800, 0x900409c0, - 0x80040540, 0x4400a800, 0x8050a000, 0x8054a800, - 0x8058b040, 0x040207f7, 0x1c01f000, 0x59a00207, - 0x82000c80, 0x0000007f, 0x040210bf, 0x0c01f001, - 0x00101cba, 0x00101cf1, 0x00101cf1, 0x00101d40, - 0x00101d5c, 0x00101cf1, 0x00101cba, 0x00101d78, - 0x00101d89, 0x00101cf1, 0x00101cf1, 0x00101d96, - 0x00101dae, 0x00101dc6, 0x00101cf1, 0x00101ded, - 0x00101e17, 0x00101cf1, 0x00101e40, 0x00101cf1, - 0x00101f07, 0x00101cf1, 0x00101cf1, 0x00101cf1, - 0x00101cf1, 0x00101f32, 0x00101f95, 0x00101cf1, - 0x00101cf1, 0x00101cf1, 0x00101cf1, 0x00101cf1, - 0x00101fed, 0x00101cf1, 0x0010203f, 0x00101cf1, - 0x00101cf1, 0x00101cf1, 0x00101cf1, 0x00102044, - 0x001020d5, 0x00101cf1, 0x001020dd, 0x00101cf1, - 0x00101cf1, 0x00101cf1, 0x00101cf1, 0x00101cf1, - 0x001020df, 0x00102168, 0x00102343, 0x00101cf1, - 0x00101cf1, 0x00101cf1, 0x00101cf1, 0x00101cf1, - 0x00102352, 0x00101cf1, 0x0010236f, 0x00101cf1, - 0x00101cf1, 0x00101cf1, 0x00101cf1, 0x00101cf1, - 0x0010239a, 0x001023ed, 0x00102449, 0x00102460, - 0x0010d714, 0x0010dcf5, 0x001024ac, 0x00101cf1, - 0x00101cf1, 0x00101cf1, 0x00101cf1, 0x00101cf1, - 0x00101cf1, 0x00101cf1, 0x00101cf1, 0x00101cf1, - 0x00101cf1, 0x00101cf1, 0x00101cf1, 0x00102603, - 0x00102677, 0x00101cf1, 0x00101cf1, 0x001026e5, - 0x00101cf1, 0x00102784, 0x00102834, 0x00101cf1, - 0x00101cf1, 0x001028c6, 0x00102930, 0x00101cf1, - 0x00102988, 0x00102b0b, 0x00101cf1, 0x00102b1f, - 0x00102baa, 0x00101cf1, 0x00101cf1, 0x00101cf1, - 0x00101cf1, 0x00102c1a, 0x00102c2c, 0x00102c4b, - 0x00101cf1, 0x00102ced, 0x00101cf1, 0x00101cf1, - 0x00102d31, 0x00101cf1, 0x00102d60, 0x00101cf1, - 0x00101cf1, 0x00102dc7, 0x00102f20, 0x00102f7d, - 0x00101cf1, 0x00102fdf, 0x00101cf1, 0x00101cf1, - 0x00103034, 0x001030c6, 0x00101cf1, 0x48efc857, - 0x4031d800, 0x58ef400a, 0x58ec0002, 0x82000580, - 0x00000200, 0x0400003c, 0x48efc857, 0x4a034207, - 0x00004000, 0x0201f800, 0x001031ba, 0x83a00580, - 0x0010b7fa, 0x0400000e, 0x58ee5809, 0x4d2c0000, - 0x0401f84d, 0x41a25800, 0x0201f800, 0x00100580, - 0x40ee5800, 0x0201f800, 0x00100580, 0x5c025800, - 0x492fc857, 0x0201f000, 0x000203ab, 0x04026007, - 0x59a0001e, 0x84000542, 0x4803401e, 0x4a01d808, - 0x00101ccf, 0x1c01f000, 0x59a00207, 0x82000d80, - 0x00004000, 0x04000006, 0x900001c0, 0x82000540, - 0x00000011, 0x4803c011, 0x0401f005, 0x900001c0, - 0x82000540, 0x00000010, 0x4803c011, 0x0401f841, - 0x4a03c017, 0x00000000, 0x4203e000, 0x30000001, - 0x4203e000, 0x40000000, 0x40ee5800, 0x0201f800, - 0x00100580, 0x59a0001e, 0x84000504, 0x4803401e, - 0x1c01f000, 0x4803c856, 0x4a034207, 0x00004001, - 0x0401f7c9, 0x4803c856, 0x4a034207, 0x00004002, - 0x0401f7c5, 0x4803c856, 0x4a034207, 0x00004003, - 0x0401f7c1, 0x4803c856, 0x4a034207, 0x00004005, - 0x0401f7bd, 0x4803c856, 0x4a034207, 0x00004006, - 0x0401f7b9, 0x4803c856, 0x4a034207, 0x0000400b, - 0x0401f7b5, 0x4803c856, 0x4a034207, 0x0000400c, - 0x0401f7b1, 0x4803c856, 0x4a034207, 0x0000400c, - 0x0401f7ad, 0x4c580000, 0x4c500000, 0x4c540000, - 0x58eca809, 0x8054a9c0, 0x02000800, 0x0010032d, - 0x83a0a400, 0x00000007, 0x8254ac00, 0x00000007, - 0x4200b000, 0x0000000d, 0x0201f800, 0x0010adef, - 0x5c00a800, 0x5c00a000, 0x5c00b000, 0x1c01f000, - 0x4c580000, 0x4c500000, 0x4c540000, 0x59a00007, - 0x4803c857, 0x59a00008, 0x4803c857, 0x59a00009, - 0x4803c857, 0x83e0ac00, 0x00000020, 0x83a0a400, - 0x00000007, 0x4200b000, 0x00000010, 0x50500000, - 0x4400a800, 0x8054a800, 0x900001c0, 0x4400a800, - 0x8054a800, 0x8050a000, 0x8058b040, 0x040207f8, - 0x5c00a800, 0x5c00a000, 0x5c00b000, 0x1c01f000, - 0x59a00407, 0x800000c2, 0x59a00a08, 0x900409c0, - 0x80040540, 0x84000540, 0x59a00c08, 0x8c040d00, - 0x04000012, 0x59a8086d, 0x8c040d00, 0x040207b6, - 0x4c000000, 0x0201f800, 0x0010ae33, 0x5c000000, - 0x04000005, 0x48030004, 0x4a030000, 0x00000000, - 0x0401f766, 0x4a030000, 0x00000000, 0x4a034407, - 0x00000004, 0x040007a4, 0x4803880e, 0x0401f75f, - 0x59a00407, 0x800000c2, 0x59a00c08, 0x8c040d00, - 0x04000014, 0x59a8086d, 0x8c040d00, 0x0402079e, - 0x4c000000, 0x0201f800, 0x0010ae33, 0x5c000000, - 0x04000007, 0x48030004, 0x59800805, 0x48074407, - 0x4a030000, 0x00000000, 0x0401f74c, 0x4a030000, - 0x00000000, 0x4a034407, 0x00000004, 0x0400078a, - 0x4803880e, 0x59c4080f, 0x48074407, 0x0401f743, - 0x59a01c07, 0x59a00208, 0x900c19c0, 0x800c1d40, - 0x580c0803, 0x80000580, 0x500c1000, 0x80080400, - 0x800c1800, 0x80040840, 0x040207fc, 0x48034407, - 0x900001c0, 0x48034208, 0x800001c0, 0x04000733, - 0x0401f771, 0x4a034407, 0x00000005, 0x4a034208, - 0x00000004, 0x4a034408, 0x00000000, 0x59a8000a, - 0x48034209, 0x900001c0, 0x48034409, 0x4a03420a, - 0x00000482, 0x0401f725, 0x59a00408, 0x59a01208, - 0x900811c0, 0x80081540, 0x59a0040a, 0x59a01a0a, - 0x900c19c0, 0x800c1d40, 0x59a00a09, 0x59a00409, - 0x900409c0, 0x80040d40, 0x59a0020b, 0x82002480, - 0x00000010, 0x0400175c, 0x59a02407, 0x900001c0, - 0x80100540, 0x59a8280a, 0x80142480, 0x04001756, - 0x0201f000, 0x001031c9, 0x59a00408, 0x59a01208, - 0x900811c0, 0x80081540, 0x59a0040a, 0x59a01a0a, - 0x900c19c0, 0x800c1d40, 0x59a00a09, 0x59a00409, - 0x900409c0, 0x80040d40, 0x59a0020b, 0x82002480, - 0x00000010, 0x04001744, 0x59a02407, 0x900001c0, - 0x80100540, 0x59a8280a, 0x80142480, 0x0400173e, - 0x0201f000, 0x001031d2, 0x59a02408, 0x59a00208, - 0x901021c0, 0x80102540, 0x59a01a0b, 0x59a00407, - 0x900c19c0, 0x800c1d40, 0x41781000, 0x42000000, - 0x00001000, 0x50000000, 0x82000480, 0x24320001, - 0x0400100e, 0x820c0580, 0x00007c00, 0x0400000b, - 0x820c0480, 0x00007a00, 0x04001008, 0x820c0480, - 0x00007cff, 0x04021005, 0x0201f800, 0x0010ae33, - 0x04000008, 0x80081000, 0x44101800, 0x800811c0, - 0x040006d6, 0x4a030000, 0x00000000, 0x0401f6d3, + 0x00008000, 0x00008000, 0x00008000, 0x0201f800, + 0x0010055a, 0x02000800, 0x0010032d, 0x492f4017, + 0x1c01f000, 0x83a0ac00, 0x00000007, 0x83a00580, + 0x0010b8fa, 0x0400000c, 0x492fc857, 0x812e59c0, + 0x02000800, 0x0010032d, 0x832ca400, 0x00000007, + 0x4200b000, 0x0000000d, 0x0201f800, 0x0010aee2, + 0x0401f00f, 0x4200b000, 0x00000010, 0x83e0a400, + 0x00000020, 0x50500000, 0x8050a000, 0x50500800, + 0x900409c0, 0x80040540, 0x4400a800, 0x8050a000, + 0x8054a800, 0x8058b040, 0x040207f7, 0x1c01f000, + 0x59a00207, 0x82000c80, 0x0000007f, 0x040210bf, + 0x0c01f001, 0x00101cbf, 0x00101cf6, 0x00101cf6, + 0x00101d45, 0x00101d61, 0x00101cf6, 0x00101cbf, + 0x00101d7d, 0x00101d8e, 0x00101cf6, 0x00101cf6, + 0x00101da0, 0x00101db8, 0x00101dd0, 0x00101cf6, + 0x00101df7, 0x00101e21, 0x00101cf6, 0x00101e4a, + 0x00101cf6, 0x00101f11, 0x00101cf6, 0x00101cf6, + 0x00101cf6, 0x00101cf6, 0x00101f3c, 0x00101f9f, + 0x00101cf6, 0x00101cf6, 0x00101cf6, 0x00101cf6, + 0x00101cf6, 0x00101ff7, 0x00101cf6, 0x00102049, + 0x00101cf6, 0x00101cf6, 0x00101cf6, 0x00101cf6, + 0x0010204e, 0x001020df, 0x00101cf6, 0x001020e7, + 0x00101cf6, 0x00101cf6, 0x00101cf6, 0x00101cf6, + 0x00101cf6, 0x001020e9, 0x00102172, 0x0010234d, + 0x00101cf6, 0x00101cf6, 0x00101cf6, 0x00101cf6, + 0x00101cf6, 0x0010235c, 0x00101cf6, 0x00102379, + 0x00101cf6, 0x00101cf6, 0x00101cf6, 0x00101cf6, + 0x00101cf6, 0x001023a4, 0x001023f7, 0x00102453, + 0x0010246a, 0x0010d814, 0x0010ddf5, 0x001024b6, + 0x00101cf6, 0x00101cf6, 0x00101cf6, 0x00101cf6, + 0x00101cf6, 0x00101cf6, 0x00101cf6, 0x00101cf6, + 0x00101cf6, 0x00101cf6, 0x00101cf6, 0x00101cf6, + 0x0010260d, 0x00102681, 0x00101cf6, 0x00101cf6, + 0x001026ef, 0x00101cf6, 0x0010278e, 0x0010283e, + 0x00101cf6, 0x00101cf6, 0x001028d0, 0x0010293a, + 0x00101cf6, 0x00102992, 0x00102b15, 0x00101cf6, + 0x00102b29, 0x00102bb4, 0x00101cf6, 0x00101cf6, + 0x00101cf6, 0x00101cf6, 0x00102c24, 0x00102c36, + 0x00102c55, 0x00101cf6, 0x00102cf7, 0x00101cf6, + 0x00101cf6, 0x00102d3b, 0x00101cf6, 0x00102d6a, + 0x00101cf6, 0x00101cf6, 0x00102dd1, 0x00102f2a, + 0x00102f87, 0x00101cf6, 0x00102fe9, 0x00101cf6, + 0x00101cf6, 0x0010303e, 0x001030d0, 0x00101cf6, + 0x48efc857, 0x4031d800, 0x58ef400a, 0x58ec0002, + 0x82000580, 0x00000200, 0x0400003c, 0x48efc857, + 0x4a034207, 0x00004000, 0x0201f800, 0x001031c4, + 0x83a00580, 0x0010b8fa, 0x0400000e, 0x58ee5809, + 0x4d2c0000, 0x0401f84d, 0x41a25800, 0x0201f800, + 0x00100580, 0x40ee5800, 0x0201f800, 0x00100580, + 0x5c025800, 0x492fc857, 0x0201f000, 0x000203ab, + 0x04026007, 0x59a0001e, 0x84000542, 0x4803401e, + 0x4a01d808, 0x00101cd4, 0x1c01f000, 0x59a00207, + 0x82000d80, 0x00004000, 0x04000006, 0x900001c0, + 0x82000540, 0x00000011, 0x4803c011, 0x0401f005, + 0x900001c0, 0x82000540, 0x00000010, 0x4803c011, + 0x0401f841, 0x4a03c017, 0x00000000, 0x4203e000, + 0x30000001, 0x4203e000, 0x40000000, 0x40ee5800, + 0x0201f800, 0x00100580, 0x59a0001e, 0x84000504, + 0x4803401e, 0x1c01f000, 0x4803c856, 0x4a034207, + 0x00004001, 0x0401f7c9, 0x4803c856, 0x4a034207, + 0x00004002, 0x0401f7c5, 0x4803c856, 0x4a034207, + 0x00004003, 0x0401f7c1, 0x4803c856, 0x4a034207, + 0x00004005, 0x0401f7bd, 0x4803c856, 0x4a034207, + 0x00004006, 0x0401f7b9, 0x4803c856, 0x4a034207, + 0x0000400b, 0x0401f7b5, 0x4803c856, 0x4a034207, + 0x0000400c, 0x0401f7b1, 0x4803c856, 0x4a034207, + 0x0000400c, 0x0401f7ad, 0x4c580000, 0x4c500000, + 0x4c540000, 0x58eca809, 0x8054a9c0, 0x02000800, + 0x0010032d, 0x83a0a400, 0x00000007, 0x8254ac00, + 0x00000007, 0x4200b000, 0x0000000d, 0x0201f800, + 0x0010aee2, 0x5c00a800, 0x5c00a000, 0x5c00b000, + 0x1c01f000, 0x4c580000, 0x4c500000, 0x4c540000, + 0x59a00007, 0x4803c857, 0x59a00008, 0x4803c857, + 0x59a00009, 0x4803c857, 0x83e0ac00, 0x00000020, + 0x83a0a400, 0x00000007, 0x4200b000, 0x00000010, + 0x50500000, 0x4400a800, 0x8054a800, 0x900001c0, + 0x4400a800, 0x8054a800, 0x8050a000, 0x8058b040, + 0x040207f8, 0x5c00a800, 0x5c00a000, 0x5c00b000, + 0x1c01f000, 0x59a00407, 0x800000c2, 0x59a00a08, + 0x900409c0, 0x80040540, 0x84000540, 0x59a00c08, + 0x8c040d00, 0x04000012, 0x59a8086d, 0x8c040d00, + 0x040207b6, 0x4c000000, 0x0201f800, 0x0010af26, + 0x5c000000, 0x04000005, 0x48030004, 0x4a030000, + 0x00000000, 0x0401f766, 0x4a030000, 0x00000000, + 0x4a034407, 0x00000004, 0x040007a4, 0x4803880e, + 0x0401f75f, 0x59a00407, 0x800000c2, 0x59a00c08, + 0x8c040d00, 0x04000014, 0x59a8086d, 0x8c040d00, + 0x0402079e, 0x4c000000, 0x0201f800, 0x0010af26, + 0x5c000000, 0x04000007, 0x48030004, 0x59800805, + 0x48074407, 0x4a030000, 0x00000000, 0x0401f74c, 0x4a030000, 0x00000000, 0x4a034407, 0x00000004, - 0x0401f711, 0x59a01a0b, 0x59a00407, 0x900c19c0, - 0x800c1d40, 0x41781000, 0x42000000, 0x00001000, - 0x50000000, 0x82000480, 0x24320001, 0x0400100e, - 0x820c0580, 0x00007c00, 0x0400000b, 0x820c0480, - 0x00007a00, 0x04001008, 0x820c0480, 0x00007cff, - 0x04021005, 0x0201f800, 0x0010ae33, 0x0400000f, - 0x80081000, 0x500c0000, 0x82000d00, 0x0000ffff, - 0x48074208, 0x82000d00, 0xffff0000, 0x900409c0, - 0x48074408, 0x800811c0, 0x040006ac, 0x4a030000, - 0x00000000, 0x0401f6a9, 0x4a030000, 0x00000000, - 0x4a034407, 0x00000004, 0x0401f6e7, 0x59a00407, - 0x8c000500, 0x04000020, 0x59a01208, 0x59a01c08, - 0x59a02209, 0x480b5044, 0x480f5045, 0x48135046, - 0x59c40801, 0x82040d00, 0x00018000, 0x82040580, - 0x00000000, 0x04000009, 0x82040580, 0x00008000, - 0x04000008, 0x82040580, 0x00010000, 0x04000007, - 0x0201f800, 0x0010032d, 0x40080000, 0x0401f004, - 0x400c0000, 0x0401f002, 0x40100000, 0x80000110, - 0x42000800, 0x000000e0, 0x0201f800, 0x0010173f, - 0x0401f007, 0x59a81044, 0x59a81845, 0x59a82046, - 0x480b4208, 0x480f4408, 0x48134209, 0x0401f67b, - 0x4d2c0000, 0x4d340000, 0x4d300000, 0x4d440000, - 0x59a28c07, 0x0201f800, 0x00020319, 0x04000006, - 0x5c028800, 0x5c026000, 0x5c026800, 0x5c025800, - 0x0401f6b5, 0x4937c857, 0x59a04408, 0x59a00208, - 0x900001c0, 0x80204540, 0x4823c857, 0x0401f88a, - 0x04000009, 0x4a034209, 0x00000001, 0x4a034407, - 0x0000ffff, 0x4a034208, 0x0000ffff, 0x497b4408, - 0x0401f04b, 0x497b4407, 0x0401f88b, 0x0400004d, - 0x59300402, 0x48034407, 0x59300202, 0x48034208, - 0x59300006, 0x48034408, 0x59a0020c, 0x8c000500, - 0x0400003d, 0x4933c857, 0x0201f800, 0x00104178, - 0x04000004, 0x4a034407, 0x00000009, 0x0401f03d, - 0x8d0e1d0e, 0x04000004, 0x4a034407, 0x00000001, - 0x0401f038, 0x836c0580, 0x00000003, 0x04000004, - 0x4a034407, 0x00000007, 0x0401f032, 0x59340200, - 0x8c00050e, 0x04000004, 0x4a034407, 0x00000020, - 0x0401f02c, 0x59300407, 0x82000d80, 0x00000003, - 0x04020009, 0x59300804, 0x82040500, 0x0000001f, - 0x82000580, 0x00000004, 0x04020003, 0x8c040d3e, - 0x04020019, 0x0201f800, 0x001031a5, 0x04020004, - 0x4a034407, 0x00000002, 0x0401f01a, 0x492fc857, - 0x4a025c05, 0x00008000, 0x497a5a05, 0x497a5806, - 0x0201f800, 0x00109209, 0x04020004, 0x4a034407, - 0x00000003, 0x0401f00f, 0x4a01d808, 0x00101eb1, - 0x5c028800, 0x5c026000, 0x5c026800, 0x5c025800, - 0x1c01f000, 0x4a034209, 0x00000002, 0x5c028800, - 0x5c026000, 0x5c026800, 0x5c025800, 0x0401f60f, - 0x5c028800, 0x5c026000, 0x5c026800, 0x5c025800, - 0x0401f64d, 0x492fc857, 0x4933c857, 0x497a601f, - 0x592c0006, 0x82000580, 0x01000000, 0x04020004, - 0x4a034407, 0x00000004, 0x0401f643, 0x4d2c0000, - 0x832e5c00, 0x00000007, 0x592c0000, 0x82000580, - 0x02000000, 0x04020012, 0x4803c856, 0x4a034209, - 0x00000004, 0x592c0804, 0x82040500, 0x0000ffff, - 0x48034409, 0x80040920, 0x4807420a, 0x592c0805, - 0x82040500, 0x0000ffff, 0x4803440a, 0x80040920, - 0x4807420b, 0x5c025800, 0x0401f5e8, 0x4803c856, - 0x4a034209, 0x00000005, 0x592c0801, 0x82040500, - 0x0000ffff, 0x48034409, 0x80040920, 0x4807420a, - 0x0401f7f5, 0x4937c857, 0x4823c857, 0x5934000f, - 0x80001d40, 0x04000005, 0x580c0006, 0x80200580, - 0x04020003, 0x81780000, 0x1c01f000, 0x580c0000, - 0x0401f7f8, 0x4823c857, 0x4d2c0000, 0x42026000, - 0x0010f584, 0x59300407, 0x82000d80, 0x00000003, - 0x04000004, 0x82000d80, 0x00000006, 0x04020007, - 0x59325809, 0x812e59c0, 0x04000004, 0x592c0006, - 0x80200580, 0x0400000a, 0x83326400, 0x00000024, - 0x59a8000b, 0x81300480, 0x040017ef, 0x417a6000, - 0x80000580, 0x5c025800, 0x1c01f000, 0x82000540, - 0x00000001, 0x5c025800, 0x1c01f000, 0x83a00580, - 0x0010b7fa, 0x040205e8, 0x59a8006d, 0x8c000500, - 0x04020003, 0x4a030000, 0x00000000, 0x4a034207, - 0x00004000, 0x4a03c011, 0x40000010, 0x0401fe11, - 0x4a03c017, 0x00000000, 0x59e00002, 0x8c00051e, - 0x04020008, 0x42000000, 0x00001000, 0x50000000, - 0x82000480, 0x24320002, 0x02000000, 0x00020238, - 0x59a80073, 0x8c00053e, 0x0400000b, 0x42000800, - 0x000000a0, 0x0201f800, 0x00101737, 0x82040540, - 0x00000001, 0x42000800, 0x000000a0, 0x0201f800, - 0x0010173f, 0x4203e000, 0x30000001, 0x4203e000, - 0x40000000, 0x0401f000, 0x59a00c07, 0x800409c0, - 0x04000007, 0x836c0580, 0x00000000, 0x04000004, - 0x4a034407, 0x0000001a, 0x0401f5c3, 0x42007000, - 0x0010b895, 0x58381c01, 0x58382201, 0x58383202, - 0x8c040d00, 0x0400000b, 0x59a01208, 0x82080500, - 0x0000f003, 0x040205bc, 0x82080480, 0x00000841, - 0x040215b9, 0x82080480, 0x00000100, 0x040015b6, - 0x40040000, 0x800c0540, 0x82000500, 0x00000028, - 0x82000580, 0x00000028, 0x040005af, 0x8c040d0a, - 0x04000008, 0x59a03c08, 0x821c0480, 0x00000006, - 0x040215a9, 0x821c0480, 0x00000001, 0x040015a6, - 0x8c040d06, 0x04000003, 0x4a0378e4, 0x000c0000, - 0x8c040d04, 0x04000004, 0x59e00002, 0x84000548, - 0x4803c002, 0x8c040d02, 0x04000005, 0x42002800, - 0x00007600, 0x4a002805, 0xd0000000, 0x40040000, - 0x800c0540, 0x48007401, 0x8c040d00, 0x04000002, - 0x48087201, 0x8c040d0a, 0x0400001f, 0x481c7202, - 0x4c0c0000, 0x4c100000, 0x4c180000, 0x0201f800, - 0x0010610d, 0x4df00000, 0x58383a02, 0x481fc857, - 0x41780000, 0x801c3840, 0x800010c8, 0x82081400, - 0x0000bf32, 0x4a001001, 0x00000000, 0x801c1c80, - 0x04021003, 0x4a001001, 0x00000002, 0x80000000, - 0x82001c80, 0x00000005, 0x040017f4, 0x5c03e000, - 0x02000800, 0x001060fa, 0x5c003000, 0x5c002000, - 0x5c001800, 0x480f4407, 0x48134208, 0x481b4408, - 0x0401f526, 0x4d440000, 0x4d340000, 0x59a28c07, - 0x0201f800, 0x00020319, 0x04020009, 0x0201f800, - 0x00104178, 0x04000009, 0x4a034407, 0x00000009, - 0x5c026800, 0x5c028800, 0x0401f55b, 0x5c026800, - 0x5c028800, 0x0401f55c, 0x59a01208, 0x59a01c08, - 0x5934400a, 0x82203d00, 0x0000e000, 0x801c391a, - 0x8c081500, 0x04000024, 0x820c0d00, 0x00000007, - 0x82040580, 0x00000000, 0x04000010, 0x82040580, - 0x00000001, 0x0400000d, 0x82040580, 0x00000003, - 0x0400000a, 0x82040580, 0x00000004, 0x04000007, - 0x82040580, 0x00000013, 0x04000004, 0x4937c857, - 0x42000800, 0x00000003, 0x82204500, 0xffff1fff, - 0x800400da, 0x80200540, 0x4802680a, 0x4c080000, - 0x4c1c0000, 0x0201f800, 0x0010610d, 0x0201f800, - 0x0010444c, 0x0201f800, 0x001060fa, 0x5c003800, - 0x5c001000, 0x481f4408, 0x5934400a, 0x82203d00, - 0x0f000000, 0x801c3930, 0x8c081504, 0x04020012, - 0x8c081502, 0x0400000c, 0x4823c857, 0x82204500, - 0xf0ffffff, 0x59a01a09, 0x820c0d00, 0x0000000f, - 0x800400f0, 0x8400056e, 0x80200540, 0x4802680a, - 0x4803c857, 0x481f4209, 0x5c026800, 0x5c028800, - 0x0401f4d2, 0x82204500, 0xf07fffff, 0x4822680a, - 0x0401f7f9, 0x8d0e1d0e, 0x04000004, 0x4a034407, - 0x00000001, 0x0401f50c, 0x836c0580, 0x00000003, - 0x04020010, 0x59a8000f, 0x497b4407, 0x0201f800, - 0x00104716, 0x0400000f, 0x82000d00, 0x00ffff00, - 0x0402000c, 0x82000c00, 0x00101b0a, 0x50040800, - 0x80040910, 0x82041580, 0x00000080, 0x04020004, - 0x4a034407, 0x00000007, 0x0401f4f7, 0x48074407, - 0x82000d00, 0x0000ffff, 0x48074208, 0x80000120, - 0x48034408, 0x59a8021b, 0x82001500, 0x00002100, - 0x480b440a, 0x8c000502, 0x0400001f, 0x8c000506, - 0x04000009, 0x82000d00, 0x0000000a, 0x82040d80, - 0x0000000a, 0x04020004, 0x4a03420a, 0x00000001, - 0x0401f022, 0x8c00050a, 0x04000009, 0x82000d00, - 0x00000022, 0x82040d80, 0x00000022, 0x04020004, - 0x4a03420a, 0x00000003, 0x0401f018, 0x8c000508, - 0x04000009, 0x82000d00, 0x00000012, 0x82040d80, - 0x00000012, 0x04020004, 0x4a03420a, 0x00000002, - 0x0401f00e, 0x0201f800, 0x00104716, 0x04020004, - 0x4a03420a, 0x00000004, 0x0401f484, 0x8c000506, - 0x04000004, 0x4a034407, 0x00000005, 0x0401f4c2, - 0x4a03420a, 0x00000000, 0x0401f47c, 0x59a8002a, - 0x48034408, 0x59a8002b, 0x4803420a, 0x0401f477, - 0x42007800, 0x0010bcb1, 0x59a00407, 0x4803c857, - 0x82000c80, 0x0000000a, 0x040214b7, 0x0c01f001, - 0x001020c7, 0x0010205f, 0x0010206d, 0x00102080, - 0x001020a1, 0x001020c9, 0x00102057, 0x00102057, - 0x00102057, 0x00102057, 0x00102058, 0x0401f4aa, - 0x59a00208, 0x48007c01, 0x59a00408, 0x48007a01, - 0x0201f800, 0x001003e9, 0x0401f069, 0x836c0580, - 0x00000000, 0x0400049c, 0x59a00a08, 0x59a00408, - 0x900001c0, 0x80040d40, 0x4807c857, 0x59a00a09, - 0x59a00409, 0x900001c0, 0x80040d40, 0x4807c857, - 0x0401f05b, 0x836c0580, 0x00000000, 0x0400048e, - 0x59a00408, 0x59a01208, 0x900001c0, 0x80081540, - 0x59a00409, 0x59a01a09, 0x900001c0, 0x800c1d40, - 0x42000000, 0x0010c542, 0x480fc857, 0x480bc857, - 0x42000800, 0x00001000, 0x0201f000, 0x001031d2, - 0x59a00a08, 0x59a00408, 0x900001c0, 0x80041d40, - 0x820c0c80, 0x0010aebb, 0x0402147b, 0x820c0c80, - 0x00100000, 0x04001478, 0x480fc857, 0x823c7c00, - 0x0000000d, 0x503c0800, 0x800409c0, 0x04000006, - 0x823c0580, 0x00000011, 0x0400046f, 0x803c7800, - 0x0401f7f9, 0x59e41001, 0x82080d00, 0xfffeffcf, - 0x4807c801, 0x440c7800, 0x46001800, 0x0201f800, - 0x800c1800, 0x46001800, 0x0010031d, 0x480bc801, - 0x0401f027, 0x59a01a08, 0x59a00408, 0x900001c0, - 0x800c1d40, 0x480c7803, 0x59a02209, 0x59a00409, - 0x900001c0, 0x80102540, 0x48107804, 0x59a0020a, - 0x40001000, 0x48007807, 0x80000040, 0x04001452, - 0x48007808, 0x42000800, 0x00004000, 0x0201f800, - 0x00105f4a, 0x80000540, 0x04000002, 0x0401f44a, - 0x40040000, 0x800c1c00, 0x04001447, 0x4800780a, - 0x480c7805, 0x48107806, 0x4978780c, 0x59a0040a, - 0x800000c4, 0x4800780b, 0x59e40001, 0x4803c857, - 0x82000540, 0x00040000, 0x4803c801, 0x0201f000, - 0x00101cba, 0x49787803, 0x49787804, 0x49787808, - 0x49787807, 0x49787803, 0x49787805, 0x49787806, - 0x4978780c, 0x4978780b, 0x59e40001, 0x84000524, - 0x0401f7f2, 0x59a80005, 0x48034407, 0x59a80006, - 0x48034208, 0x59a80007, 0x48034408, 0x0201f000, - 0x00101cba, 0x0201f800, 0x0010032d, 0x4803c856, - 0x4a03c013, 0x03800300, 0x4a03c014, 0x03800380, - 0x59a00c07, 0x82040580, 0x000000a0, 0x04000004, - 0x82040580, 0x000000a2, 0x04020021, 0x59a0140b, - 0x82080480, 0x00000100, 0x0402101d, 0x59a0020c, - 0x8c000500, 0x04020026, 0x59a00a0b, 0x800409c0, - 0x04000017, 0x82040480, 0x00000041, 0x04021014, - 0x0201f800, 0x001031a5, 0x0400000b, 0x59a01008, - 0x900811c0, 0x59a0180a, 0x900c19c0, 0x59a00a0b, - 0x0201f800, 0x001031cc, 0x4a01d808, 0x0010210f, - 0x1c01f000, 0x4a034407, 0x00000002, 0x4a03c014, - 0x03800000, 0x0201f000, 0x00101cfd, 0x4a03c014, - 0x03800000, 0x0201f000, 0x00101d01, 0x4031d800, - 0x58ef400a, 0x58ee580c, 0x58ec0002, 0x82000580, - 0x00000200, 0x02000000, 0x00101cf5, 0x59a00c07, - 0x59a0140b, 0x59a0020c, 0x8c000500, 0x04020039, - 0x832e5c00, 0x00000005, 0x4178c000, 0x59a0ba0b, - 0x40600000, 0x812c0400, 0x5000c800, 0x82641d00, - 0x000000ff, 0x4c040000, 0x4c080000, 0x0401f8c9, - 0x5c001000, 0x5c000800, 0x04000038, 0x805cb840, - 0x04000032, 0x80081000, 0x82641d00, 0x0000ff00, - 0x800c1910, 0x4c040000, 0x4c080000, 0x0401f8bd, - 0x5c001000, 0x5c000800, 0x0400002c, 0x805cb840, - 0x04000026, 0x80081000, 0x82641d00, 0x00ff0000, - 0x800c1920, 0x4c040000, 0x4c080000, 0x0401f8b1, - 0x5c001000, 0x5c000800, 0x04000020, 0x805cb840, - 0x0400001a, 0x80081000, 0x82641d00, 0xff000000, - 0x800c1930, 0x4c040000, 0x4c080000, 0x0401f8a5, - 0x5c001000, 0x5c000800, 0x04000014, 0x805cb840, - 0x0400000e, 0x80081000, 0x8060c000, 0x0401f7cd, - 0x59a0020b, 0x82000500, 0x000000ff, 0x40001800, - 0x4c040000, 0x4c080000, 0x0401f896, 0x5c001000, - 0x5c000800, 0x04000005, 0x4a03c014, 0x03800000, - 0x0201f000, 0x00101cba, 0x4a03c014, 0x03800000, - 0x4a034407, 0x00000004, 0x0201f000, 0x00101cfd, - 0x4803c856, 0x59a80873, 0x8c040d3e, 0x04020005, - 0x4a03c013, 0x03800300, 0x4a03c014, 0x03800380, - 0x59a00c07, 0x82040580, 0x000000a0, 0x04000004, - 0x82040580, 0x000000a2, 0x04020076, 0x59a0140b, - 0x82080480, 0x00000100, 0x04021072, 0x59a0020c, - 0x8c000500, 0x0402005d, 0x59a01a0b, 0x800c19c0, - 0x0400006c, 0x820c0480, 0x00000041, 0x04021069, - 0x0201f800, 0x001031a5, 0x0402000b, 0x4a034407, - 0x00000002, 0x59a80873, 0x8c040d3e, 0x04020003, - 0x4a03c014, 0x03800000, 0x4803c857, 0x0201f000, - 0x00101cfd, 0x59a80073, 0x8c00053e, 0x02020000, - 0x0010a6f8, 0x832e5c00, 0x00000005, 0x4178c000, - 0x59a0ba0b, 0x4803c857, 0x40600000, 0x812c0400, - 0x4000c800, 0x4c040000, 0x4c080000, 0x0401f887, - 0x5c001000, 0x5c000800, 0x04000044, 0x4414c800, - 0x805cb840, 0x0400002b, 0x80081000, 0x4c040000, - 0x4c080000, 0x0401f87d, 0x5c001000, 0x5c000800, - 0x0400003a, 0x50640000, 0x801428d0, 0x80140540, - 0x4400c800, 0x805cb840, 0x0400001e, 0x80081000, - 0x4c040000, 0x4c080000, 0x0401f870, 0x5c001000, - 0x5c000800, 0x0400002d, 0x50640000, 0x801428e0, - 0x80140540, 0x4400c800, 0x805cb840, 0x04000011, - 0x80081000, 0x4c040000, 0x4c080000, 0x0401f863, - 0x5c001000, 0x5c000800, 0x04000020, 0x50640000, - 0x801428f0, 0x80140540, 0x4400c800, 0x805cb840, - 0x04000004, 0x80081000, 0x8060c000, 0x0401f7ca, - 0x59a00a0b, 0x59a01008, 0x900811c0, 0x59a0180a, - 0x900c19c0, 0x4a03c014, 0x03800000, 0x412c0000, - 0x0201f000, 0x001031cf, 0x4803c857, 0x59a80073, - 0x8c00053e, 0x02020000, 0x00101d01, 0x0401f847, - 0x04000006, 0x48174407, 0x4a03c014, 0x03800000, - 0x0201f000, 0x00101cba, 0x4a03c014, 0x03800000, - 0x4a034407, 0x00000004, 0x0201f000, 0x00101cfd, - 0x4a03c014, 0x03800000, 0x0201f000, 0x00101d01, - 0x4c5c0000, 0x4c600000, 0x4c640000, 0x4004b800, - 0x4008c000, 0x400cc800, 0x0401f87a, 0x04000012, - 0x0401f8b2, 0x04020014, 0x4060b800, 0x0401f8af, - 0x04020011, 0x4064b800, 0x0401f8ac, 0x0402000e, - 0x0401f896, 0x4ce80000, 0x4201d000, 0x00001388, - 0x0201f800, 0x0010592d, 0x5c01d000, 0x82000540, - 0x00000001, 0x5c00c800, 0x5c00c000, 0x5c00b800, - 0x1c01f000, 0x0401f889, 0x80000580, 0x0401f7fa, - 0x4c5c0000, 0x485fc857, 0x0401f85e, 0x0400000a, - 0x825cbd40, 0x00000001, 0x0401f894, 0x0402000a, - 0x0401f8dc, 0x0401f916, 0x0401f87c, 0x82000540, - 0x00000001, 0x4803c857, 0x4867c857, 0x5c00b800, - 0x1c01f000, 0x0401f875, 0x80000580, 0x4803c857, - 0x485fc857, 0x0401f7f8, 0x4c5c0000, 0x4c600000, - 0x4c640000, 0x4807c857, 0x480bc857, 0x4004b800, - 0x4008c000, 0x0401f843, 0x0400000d, 0x0401f87b, - 0x04020010, 0x4c5c0000, 0x4060b800, 0x0401f877, - 0x5c00b800, 0x0402000b, 0x0401ffda, 0x04000004, - 0x0401f85e, 0x82000540, 0x00000001, 0x40642800, - 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x1c01f000, - 0x0401f856, 0x80000580, 0x4803c857, 0x4867c857, - 0x0401f7f7, 0x4ce80000, 0x4c580000, 0x4803c856, - 0x4200b000, 0x0000000c, 0x4201d000, 0x0000000a, - 0x0201f800, 0x0010592d, 0x4a03c013, 0x02000200, - 0x4201d000, 0x0000000a, 0x0201f800, 0x0010592d, - 0x4a03c013, 0x02000000, 0x8058b040, 0x040207f3, - 0x42000800, 0x000003e8, 0x4a03c013, 0x03800300, - 0x80040840, 0x04000010, 0x4a03c014, 0x03800000, - 0x59e00013, 0x4a03c014, 0x03800380, 0x82000500, - 0x00000300, 0x82000580, 0x00000300, 0x040207f3, - 0x82000540, 0x00000001, 0x5c00b000, 0x5c01d000, - 0x1c01f000, 0x4803c857, 0x80000580, 0x0401f7fb, - 0x4ce80000, 0x4803c856, 0x42000800, 0x000003e8, - 0x4a03c013, 0x03800300, 0x80040840, 0x0400001b, + 0x0400078a, 0x4803880e, 0x59c4080f, 0x48074407, + 0x0401f743, 0x59a01c07, 0x59a00208, 0x900c19c0, + 0x800c1d40, 0x580c0803, 0x80000580, 0x500c1000, + 0x80080400, 0x800c1800, 0x80040840, 0x040207fc, + 0x48034407, 0x900001c0, 0x48034208, 0x800001c0, + 0x04000733, 0x0401f771, 0x4a034407, 0x00000005, + 0x4a034208, 0x00000005, 0x4a034408, 0x00000000, + 0x59a8000a, 0x48034209, 0x900001c0, 0x48034409, + 0x42000000, 0x00008482, 0x4803420a, 0x900001c0, + 0x4803440e, 0x4a03400f, 0x00000000, 0x0401f720, + 0x59a00408, 0x59a01208, 0x900811c0, 0x80081540, + 0x59a0040a, 0x59a01a0a, 0x900c19c0, 0x800c1d40, + 0x59a00a09, 0x59a00409, 0x900409c0, 0x80040d40, + 0x59a0020b, 0x82002480, 0x00000010, 0x04001757, + 0x59a02407, 0x900001c0, 0x80100540, 0x59a8280a, + 0x80142480, 0x04001751, 0x0201f000, 0x001031d3, + 0x59a00408, 0x59a01208, 0x900811c0, 0x80081540, + 0x59a0040a, 0x59a01a0a, 0x900c19c0, 0x800c1d40, + 0x59a00a09, 0x59a00409, 0x900409c0, 0x80040d40, + 0x59a0020b, 0x82002480, 0x00000010, 0x0400173f, + 0x59a02407, 0x900001c0, 0x80100540, 0x59a8280a, + 0x80142480, 0x04001739, 0x0201f000, 0x001031dc, + 0x59a02408, 0x59a00208, 0x901021c0, 0x80102540, + 0x59a01a0b, 0x59a00407, 0x900c19c0, 0x800c1d40, + 0x41781000, 0x42000000, 0x00001000, 0x50000000, + 0x82000480, 0x24320001, 0x0400100e, 0x820c0580, + 0x00007c00, 0x0400000b, 0x820c0480, 0x00007a00, + 0x04001008, 0x820c0480, 0x00007cff, 0x04021005, + 0x0201f800, 0x0010af26, 0x04000008, 0x80081000, + 0x44101800, 0x800811c0, 0x040006d1, 0x4a030000, + 0x00000000, 0x0401f6ce, 0x4a030000, 0x00000000, + 0x4a034407, 0x00000004, 0x0401f70c, 0x59a01a0b, + 0x59a00407, 0x900c19c0, 0x800c1d40, 0x41781000, + 0x42000000, 0x00001000, 0x50000000, 0x82000480, + 0x24320001, 0x0400100e, 0x820c0580, 0x00007c00, + 0x0400000b, 0x820c0480, 0x00007a00, 0x04001008, + 0x820c0480, 0x00007cff, 0x04021005, 0x0201f800, + 0x0010af26, 0x0400000f, 0x80081000, 0x500c0000, + 0x82000d00, 0x0000ffff, 0x48074208, 0x82000d00, + 0xffff0000, 0x900409c0, 0x48074408, 0x800811c0, + 0x040006a7, 0x4a030000, 0x00000000, 0x0401f6a4, + 0x4a030000, 0x00000000, 0x4a034407, 0x00000004, + 0x0401f6e2, 0x59a00407, 0x8c000500, 0x04000020, + 0x59a01208, 0x59a01c08, 0x59a02209, 0x480b5044, + 0x480f5045, 0x48135046, 0x59c40801, 0x82040d00, + 0x00018000, 0x82040580, 0x00000000, 0x04000009, + 0x82040580, 0x00008000, 0x04000008, 0x82040580, + 0x00010000, 0x04000007, 0x0201f800, 0x0010032d, + 0x40080000, 0x0401f004, 0x400c0000, 0x0401f002, + 0x40100000, 0x80000110, 0x42000800, 0x000000e0, + 0x0201f800, 0x00101740, 0x0401f007, 0x59a81044, + 0x59a81845, 0x59a82046, 0x480b4208, 0x480f4408, + 0x48134209, 0x0401f676, 0x4d2c0000, 0x4d340000, + 0x4d300000, 0x4d440000, 0x59a28c07, 0x0201f800, + 0x00020319, 0x04000006, 0x5c028800, 0x5c026000, + 0x5c026800, 0x5c025800, 0x0401f6b0, 0x4937c857, + 0x59a04408, 0x59a00208, 0x900001c0, 0x80204540, + 0x4823c857, 0x0401f88a, 0x04000009, 0x4a034209, + 0x00000001, 0x4a034407, 0x0000ffff, 0x4a034208, + 0x0000ffff, 0x497b4408, 0x0401f04b, 0x497b4407, + 0x0401f88b, 0x0400004d, 0x59300402, 0x48034407, + 0x59300202, 0x48034208, 0x59300006, 0x48034408, + 0x59a0020c, 0x8c000500, 0x0400003d, 0x4933c857, + 0x0201f800, 0x00104194, 0x04000004, 0x4a034407, + 0x00000009, 0x0401f03d, 0x8d0e1d0e, 0x04000004, + 0x4a034407, 0x00000001, 0x0401f038, 0x836c0580, + 0x00000003, 0x04000004, 0x4a034407, 0x00000007, + 0x0401f032, 0x59340200, 0x8c00050e, 0x04000004, + 0x4a034407, 0x00000020, 0x0401f02c, 0x59300407, + 0x82000d80, 0x00000003, 0x04020009, 0x59300804, + 0x82040500, 0x0000001f, 0x82000580, 0x00000004, + 0x04020003, 0x8c040d3e, 0x04020019, 0x0201f800, + 0x001031af, 0x04020004, 0x4a034407, 0x00000002, + 0x0401f01a, 0x492fc857, 0x4a025c05, 0x00008000, + 0x497a5a05, 0x497a5806, 0x0201f800, 0x001092c1, + 0x04020004, 0x4a034407, 0x00000003, 0x0401f00f, + 0x4a01d808, 0x00101ebb, 0x5c028800, 0x5c026000, + 0x5c026800, 0x5c025800, 0x1c01f000, 0x4a034209, + 0x00000002, 0x5c028800, 0x5c026000, 0x5c026800, + 0x5c025800, 0x0401f60a, 0x5c028800, 0x5c026000, + 0x5c026800, 0x5c025800, 0x0401f648, 0x492fc857, + 0x4933c857, 0x497a601f, 0x592c0006, 0x82000580, + 0x01000000, 0x04020004, 0x4a034407, 0x00000004, + 0x0401f63e, 0x4d2c0000, 0x832e5c00, 0x00000007, + 0x592c0000, 0x82000580, 0x02000000, 0x04020012, + 0x4803c856, 0x4a034209, 0x00000004, 0x592c0804, + 0x82040500, 0x0000ffff, 0x48034409, 0x80040920, + 0x4807420a, 0x592c0805, 0x82040500, 0x0000ffff, + 0x4803440a, 0x80040920, 0x4807420b, 0x5c025800, + 0x0401f5e3, 0x4803c856, 0x4a034209, 0x00000005, + 0x592c0801, 0x82040500, 0x0000ffff, 0x48034409, + 0x80040920, 0x4807420a, 0x0401f7f5, 0x4937c857, + 0x4823c857, 0x5934000f, 0x80001d40, 0x04000005, + 0x580c0006, 0x80200580, 0x04020003, 0x81780000, + 0x1c01f000, 0x580c0000, 0x0401f7f8, 0x4823c857, + 0x4d2c0000, 0x42026000, 0x0010f694, 0x59300407, + 0x82000d80, 0x00000003, 0x04000004, 0x82000d80, + 0x00000006, 0x04020007, 0x59325809, 0x812e59c0, + 0x04000004, 0x592c0006, 0x80200580, 0x0400000a, + 0x83326400, 0x00000024, 0x59a8000b, 0x81300480, + 0x040017ef, 0x417a6000, 0x80000580, 0x5c025800, + 0x1c01f000, 0x82000540, 0x00000001, 0x5c025800, + 0x1c01f000, 0x83a00580, 0x0010b8fa, 0x040205e3, + 0x59a8006d, 0x8c000500, 0x04020003, 0x4a030000, + 0x00000000, 0x4a034207, 0x00004000, 0x4a03c011, + 0x40000010, 0x0401fe0c, 0x4a03c017, 0x00000000, + 0x59e00002, 0x8c00051e, 0x04020008, 0x42000000, + 0x00001000, 0x50000000, 0x82000480, 0x24320002, + 0x02000000, 0x00020238, 0x59a80073, 0x8c00053e, + 0x0400000b, 0x42000800, 0x000000a0, 0x0201f800, + 0x00101738, 0x82040540, 0x00000001, 0x42000800, + 0x000000a0, 0x0201f800, 0x00101740, 0x4203e000, + 0x30000001, 0x4203e000, 0x40000000, 0x0401f000, + 0x59a00c07, 0x800409c0, 0x04000007, 0x836c0580, + 0x00000000, 0x04000004, 0x4a034407, 0x0000001a, + 0x0401f5be, 0x42007000, 0x0010b995, 0x58381c01, + 0x58382201, 0x58383202, 0x8c040d00, 0x0400000b, + 0x59a01208, 0x82080500, 0x0000f003, 0x040205b7, + 0x82080480, 0x00000841, 0x040215b4, 0x82080480, + 0x00000100, 0x040015b1, 0x40040000, 0x800c0540, + 0x82000500, 0x00000028, 0x82000580, 0x00000028, + 0x040005aa, 0x8c040d0a, 0x04000008, 0x59a03c08, + 0x821c0480, 0x00000006, 0x040215a4, 0x821c0480, + 0x00000001, 0x040015a1, 0x8c040d06, 0x04000003, + 0x4a0378e4, 0x000c0000, 0x8c040d04, 0x04000004, + 0x59e00002, 0x84000548, 0x4803c002, 0x8c040d02, + 0x04000005, 0x42002800, 0x00007600, 0x4a002805, + 0xd0000000, 0x40040000, 0x800c0540, 0x48007401, + 0x8c040d00, 0x04000002, 0x48087201, 0x8c040d0a, + 0x0400001f, 0x481c7202, 0x4c0c0000, 0x4c100000, + 0x4c180000, 0x0201f800, 0x001061b2, 0x4df00000, + 0x58383a02, 0x481fc857, 0x41780000, 0x801c3840, + 0x800010c8, 0x82081400, 0x0000bf32, 0x4a001001, + 0x00000000, 0x801c1c80, 0x04021003, 0x4a001001, + 0x00000002, 0x80000000, 0x82001c80, 0x00000005, + 0x040017f4, 0x5c03e000, 0x02000800, 0x0010619f, + 0x5c003000, 0x5c002000, 0x5c001800, 0x480f4407, + 0x48134208, 0x481b4408, 0x0401f521, 0x4d440000, + 0x4d340000, 0x59a28c07, 0x0201f800, 0x00020319, + 0x04020009, 0x0201f800, 0x00104194, 0x04000009, + 0x4a034407, 0x00000009, 0x5c026800, 0x5c028800, + 0x0401f556, 0x5c026800, 0x5c028800, 0x0401f557, + 0x59a01208, 0x59a01c08, 0x5934400a, 0x82203d00, + 0x0000e000, 0x801c391a, 0x8c081500, 0x04000024, + 0x820c0d00, 0x00000007, 0x82040580, 0x00000000, + 0x04000010, 0x82040580, 0x00000001, 0x0400000d, + 0x82040580, 0x00000003, 0x0400000a, 0x82040580, + 0x00000004, 0x04000007, 0x82040580, 0x00000013, + 0x04000004, 0x4937c857, 0x42000800, 0x00000003, + 0x82204500, 0xffff1fff, 0x800400da, 0x80200540, + 0x4802680a, 0x4c080000, 0x4c1c0000, 0x0201f800, + 0x001061b2, 0x0201f800, 0x0010446b, 0x0201f800, + 0x0010619f, 0x5c003800, 0x5c001000, 0x481f4408, + 0x5934400a, 0x82203d00, 0x0f000000, 0x801c3930, + 0x8c081504, 0x04020012, 0x8c081502, 0x0400000c, + 0x4823c857, 0x82204500, 0xf0ffffff, 0x59a01a09, + 0x820c0d00, 0x0000000f, 0x800400f0, 0x8400056e, + 0x80200540, 0x4802680a, 0x4803c857, 0x481f4209, + 0x5c026800, 0x5c028800, 0x0401f4cd, 0x82204500, + 0xf07fffff, 0x4822680a, 0x0401f7f9, 0x8d0e1d0e, + 0x04000004, 0x4a034407, 0x00000001, 0x0401f507, + 0x836c0580, 0x00000003, 0x04020010, 0x59a8000f, + 0x497b4407, 0x0201f800, 0x00104755, 0x0400000f, + 0x82000d00, 0x00ffff00, 0x0402000c, 0x82000c00, + 0x00101b0f, 0x50040800, 0x80040910, 0x82041580, + 0x00000080, 0x04020004, 0x4a034407, 0x00000007, + 0x0401f4f2, 0x48074407, 0x82000d00, 0x0000ffff, + 0x48074208, 0x80000120, 0x48034408, 0x59a8021b, + 0x82001500, 0x00002100, 0x480b440a, 0x8c000502, + 0x0400001f, 0x8c000506, 0x04000009, 0x82000d00, + 0x0000000a, 0x82040d80, 0x0000000a, 0x04020004, + 0x4a03420a, 0x00000001, 0x0401f022, 0x8c00050a, + 0x04000009, 0x82000d00, 0x00000022, 0x82040d80, + 0x00000022, 0x04020004, 0x4a03420a, 0x00000003, + 0x0401f018, 0x8c000508, 0x04000009, 0x82000d00, + 0x00000012, 0x82040d80, 0x00000012, 0x04020004, + 0x4a03420a, 0x00000002, 0x0401f00e, 0x0201f800, + 0x00104755, 0x04020004, 0x4a03420a, 0x00000004, + 0x0401f47f, 0x8c000506, 0x04000004, 0x4a034407, + 0x00000005, 0x0401f4bd, 0x4a03420a, 0x00000000, + 0x0401f477, 0x59a8002a, 0x48034408, 0x59a8002b, + 0x4803420a, 0x0401f472, 0x42007800, 0x0010bdb1, + 0x59a00407, 0x4803c857, 0x82000c80, 0x0000000a, + 0x040214b2, 0x0c01f001, 0x001020d1, 0x00102069, + 0x00102077, 0x0010208a, 0x001020ab, 0x001020d3, + 0x00102061, 0x00102061, 0x00102061, 0x00102061, + 0x00102062, 0x0401f4a5, 0x59a00208, 0x48007c01, + 0x59a00408, 0x48007a01, 0x0201f800, 0x001003e9, + 0x0401f069, 0x836c0580, 0x00000000, 0x04000497, + 0x59a00a08, 0x59a00408, 0x900001c0, 0x80040d40, + 0x4807c857, 0x59a00a09, 0x59a00409, 0x900001c0, + 0x80040d40, 0x4807c857, 0x0401f05b, 0x836c0580, + 0x00000000, 0x04000489, 0x59a00408, 0x59a01208, + 0x900001c0, 0x80081540, 0x59a00409, 0x59a01a09, + 0x900001c0, 0x800c1d40, 0x42000000, 0x0010c642, + 0x480fc857, 0x480bc857, 0x42000800, 0x00001000, + 0x0201f000, 0x001031dc, 0x59a00a08, 0x59a00408, + 0x900001c0, 0x80041d40, 0x820c0c80, 0x0010afb1, + 0x04021476, 0x820c0c80, 0x00100000, 0x04001473, + 0x480fc857, 0x823c7c00, 0x0000000d, 0x503c0800, + 0x800409c0, 0x04000006, 0x823c0580, 0x00000011, + 0x0400046a, 0x803c7800, 0x0401f7f9, 0x59e41001, + 0x82080d00, 0xfffeffcf, 0x4807c801, 0x440c7800, + 0x46001800, 0x0201f800, 0x800c1800, 0x46001800, + 0x0010031d, 0x480bc801, 0x0401f027, 0x59a01a08, + 0x59a00408, 0x900001c0, 0x800c1d40, 0x480c7803, + 0x59a02209, 0x59a00409, 0x900001c0, 0x80102540, + 0x48107804, 0x59a0020a, 0x40001000, 0x48007807, + 0x80000040, 0x0400144d, 0x48007808, 0x42000800, + 0x00004000, 0x0201f800, 0x00105fef, 0x80000540, + 0x04000002, 0x0401f445, 0x40040000, 0x800c1c00, + 0x04001442, 0x4800780a, 0x480c7805, 0x48107806, + 0x4978780c, 0x59a0040a, 0x800000c4, 0x4800780b, + 0x59e40001, 0x4803c857, 0x82000540, 0x00040000, + 0x4803c801, 0x0201f000, 0x00101cbf, 0x49787803, + 0x49787804, 0x49787808, 0x49787807, 0x49787803, + 0x49787805, 0x49787806, 0x4978780c, 0x4978780b, + 0x59e40001, 0x84000524, 0x0401f7f2, 0x59a80005, + 0x48034407, 0x59a80006, 0x48034208, 0x59a80007, + 0x48034408, 0x0201f000, 0x00101cbf, 0x0201f800, + 0x0010032d, 0x4803c856, 0x4a03c013, 0x03800300, + 0x4a03c014, 0x03800380, 0x59a00c07, 0x82040580, + 0x000000a0, 0x04000004, 0x82040580, 0x000000a2, + 0x04020021, 0x59a0140b, 0x82080480, 0x00000100, + 0x0402101d, 0x59a0020c, 0x8c000500, 0x04020026, + 0x59a00a0b, 0x800409c0, 0x04000017, 0x82040480, + 0x00000041, 0x04021014, 0x0201f800, 0x001031af, + 0x0400000b, 0x59a01008, 0x900811c0, 0x59a0180a, + 0x900c19c0, 0x59a00a0b, 0x0201f800, 0x001031d6, + 0x4a01d808, 0x00102119, 0x1c01f000, 0x4a034407, + 0x00000002, 0x4a03c014, 0x03800000, 0x0201f000, + 0x00101d02, 0x4a03c014, 0x03800000, 0x0201f000, + 0x00101d06, 0x4031d800, 0x58ef400a, 0x58ee580c, + 0x58ec0002, 0x82000580, 0x00000200, 0x02000000, + 0x00101cfa, 0x59a00c07, 0x59a0140b, 0x59a0020c, + 0x8c000500, 0x04020039, 0x832e5c00, 0x00000005, + 0x4178c000, 0x59a0ba0b, 0x40600000, 0x812c0400, + 0x5000c800, 0x82641d00, 0x000000ff, 0x4c040000, + 0x4c080000, 0x0401f8c9, 0x5c001000, 0x5c000800, + 0x04000038, 0x805cb840, 0x04000032, 0x80081000, + 0x82641d00, 0x0000ff00, 0x800c1910, 0x4c040000, + 0x4c080000, 0x0401f8bd, 0x5c001000, 0x5c000800, + 0x0400002c, 0x805cb840, 0x04000026, 0x80081000, + 0x82641d00, 0x00ff0000, 0x800c1920, 0x4c040000, + 0x4c080000, 0x0401f8b1, 0x5c001000, 0x5c000800, + 0x04000020, 0x805cb840, 0x0400001a, 0x80081000, + 0x82641d00, 0xff000000, 0x800c1930, 0x4c040000, + 0x4c080000, 0x0401f8a5, 0x5c001000, 0x5c000800, + 0x04000014, 0x805cb840, 0x0400000e, 0x80081000, + 0x8060c000, 0x0401f7cd, 0x59a0020b, 0x82000500, + 0x000000ff, 0x40001800, 0x4c040000, 0x4c080000, + 0x0401f896, 0x5c001000, 0x5c000800, 0x04000005, + 0x4a03c014, 0x03800000, 0x0201f000, 0x00101cbf, + 0x4a03c014, 0x03800000, 0x4a034407, 0x00000004, + 0x0201f000, 0x00101d02, 0x4803c856, 0x59a80873, + 0x8c040d3e, 0x04020005, 0x4a03c013, 0x03800300, + 0x4a03c014, 0x03800380, 0x59a00c07, 0x82040580, + 0x000000a0, 0x04000004, 0x82040580, 0x000000a2, + 0x04020076, 0x59a0140b, 0x82080480, 0x00000100, + 0x04021072, 0x59a0020c, 0x8c000500, 0x0402005d, + 0x59a01a0b, 0x800c19c0, 0x0400006c, 0x820c0480, + 0x00000041, 0x04021069, 0x0201f800, 0x001031af, + 0x0402000b, 0x4a034407, 0x00000002, 0x59a80873, + 0x8c040d3e, 0x04020003, 0x4a03c014, 0x03800000, + 0x4803c857, 0x0201f000, 0x00101d02, 0x59a80073, + 0x8c00053e, 0x02020000, 0x0010a7eb, 0x832e5c00, + 0x00000005, 0x4178c000, 0x59a0ba0b, 0x4803c857, + 0x40600000, 0x812c0400, 0x4000c800, 0x4c040000, + 0x4c080000, 0x0401f887, 0x5c001000, 0x5c000800, + 0x04000044, 0x4414c800, 0x805cb840, 0x0400002b, + 0x80081000, 0x4c040000, 0x4c080000, 0x0401f87d, + 0x5c001000, 0x5c000800, 0x0400003a, 0x50640000, + 0x801428d0, 0x80140540, 0x4400c800, 0x805cb840, + 0x0400001e, 0x80081000, 0x4c040000, 0x4c080000, + 0x0401f870, 0x5c001000, 0x5c000800, 0x0400002d, + 0x50640000, 0x801428e0, 0x80140540, 0x4400c800, + 0x805cb840, 0x04000011, 0x80081000, 0x4c040000, + 0x4c080000, 0x0401f863, 0x5c001000, 0x5c000800, + 0x04000020, 0x50640000, 0x801428f0, 0x80140540, + 0x4400c800, 0x805cb840, 0x04000004, 0x80081000, + 0x8060c000, 0x0401f7ca, 0x59a00a0b, 0x59a01008, + 0x900811c0, 0x59a0180a, 0x900c19c0, 0x4a03c014, + 0x03800000, 0x412c0000, 0x0201f000, 0x001031d9, + 0x4803c857, 0x59a80073, 0x8c00053e, 0x02020000, + 0x00101d06, 0x0401f847, 0x04000006, 0x48174407, + 0x4a03c014, 0x03800000, 0x0201f000, 0x00101cbf, + 0x4a03c014, 0x03800000, 0x4a034407, 0x00000004, + 0x0201f000, 0x00101d02, 0x4a03c014, 0x03800000, + 0x0201f000, 0x00101d06, 0x4c5c0000, 0x4c600000, + 0x4c640000, 0x4004b800, 0x4008c000, 0x400cc800, + 0x0401f87a, 0x04000012, 0x0401f8b2, 0x04020014, + 0x4060b800, 0x0401f8af, 0x04020011, 0x4064b800, + 0x0401f8ac, 0x0402000e, 0x0401f896, 0x4ce80000, + 0x4201d000, 0x00001388, 0x0201f800, 0x001059d2, + 0x5c01d000, 0x82000540, 0x00000001, 0x5c00c800, + 0x5c00c000, 0x5c00b800, 0x1c01f000, 0x0401f889, + 0x80000580, 0x0401f7fa, 0x4c5c0000, 0x485fc857, + 0x0401f85e, 0x0400000a, 0x825cbd40, 0x00000001, + 0x0401f894, 0x0402000a, 0x0401f8dc, 0x0401f916, + 0x0401f87c, 0x82000540, 0x00000001, 0x4803c857, + 0x4867c857, 0x5c00b800, 0x1c01f000, 0x0401f875, + 0x80000580, 0x4803c857, 0x485fc857, 0x0401f7f8, + 0x4c5c0000, 0x4c600000, 0x4c640000, 0x4807c857, + 0x480bc857, 0x4004b800, 0x4008c000, 0x0401f843, + 0x0400000d, 0x0401f87b, 0x04020010, 0x4c5c0000, + 0x4060b800, 0x0401f877, 0x5c00b800, 0x0402000b, + 0x0401ffda, 0x04000004, 0x0401f85e, 0x82000540, + 0x00000001, 0x40642800, 0x5c00c800, 0x5c00c000, + 0x5c00b800, 0x1c01f000, 0x0401f856, 0x80000580, + 0x4803c857, 0x4867c857, 0x0401f7f7, 0x4ce80000, + 0x4c580000, 0x4803c856, 0x4200b000, 0x0000000c, + 0x4201d000, 0x0000000a, 0x0201f800, 0x001059d2, + 0x4a03c013, 0x02000200, 0x4201d000, 0x0000000a, + 0x0201f800, 0x001059d2, 0x4a03c013, 0x02000000, + 0x8058b040, 0x040207f3, 0x42000800, 0x000003e8, + 0x4a03c013, 0x03800300, 0x80040840, 0x04000010, 0x4a03c014, 0x03800000, 0x59e00013, 0x4a03c014, 0x03800380, 0x82000500, 0x00000300, 0x82000580, - 0x00000300, 0x040207f3, 0x4201d000, 0x0000000a, - 0x0201f800, 0x0010592d, 0x4a03c013, 0x01000000, - 0x4201d000, 0x0000000a, 0x0201f800, 0x0010592d, - 0x4a03c013, 0x02000000, 0x82000540, 0x00000001, - 0x5c01d000, 0x1c01f000, 0x4803c857, 0x0401ffb2, - 0x040207ee, 0x0401f7fb, 0x4803c856, 0x4a03c013, - 0x01000000, 0x4ce80000, 0x4201d000, 0x0000000a, - 0x0201f800, 0x0010592d, 0x5c01d000, 0x4a03c013, - 0x02000200, 0x4ce80000, 0x4201d000, 0x0000000a, - 0x0201f800, 0x0010592d, 0x5c01d000, 0x4a03c013, - 0x01000100, 0x1c01f000, 0x4c5c0000, 0x4c600000, - 0x485fc857, 0x4200c000, 0x00000008, 0x825c0500, - 0x00000080, 0x800000c2, 0x82000540, 0x01000000, - 0x4803c013, 0x4ce80000, 0x4201d000, 0x0000000a, - 0x0201f800, 0x0010592d, 0x5c01d000, 0x4a03c013, - 0x02000200, 0x4ce80000, 0x4201d000, 0x0000000a, - 0x0201f800, 0x0010592d, 0x5c01d000, 0x4a03c013, - 0x02000000, 0x805cb8c2, 0x8060c040, 0x040207e8, - 0x4a03c013, 0x01000100, 0x4ce80000, 0x4201d000, - 0x0000000a, 0x0201f800, 0x0010592d, 0x5c01d000, - 0x4a03c013, 0x02000200, 0x4ce80000, 0x4201d000, - 0x0000000a, 0x0201f800, 0x0010592d, 0x5c01d000, - 0x4a03c014, 0x03800000, 0x42000800, 0x000003e8, - 0x59e0b813, 0x825cbd00, 0x00000100, 0x80040840, - 0x04000004, 0x405c0000, 0x80000540, 0x040207f9, - 0x4a03c014, 0x03800380, 0x4a03c013, 0x02000000, - 0x4ce80000, 0x4201d000, 0x0000000a, 0x0201f800, - 0x0010592d, 0x5c01d000, 0x485fc857, 0x405c0000, - 0x80000540, 0x5c00c000, 0x5c00b800, 0x1c01f000, - 0x4c600000, 0x4803c856, 0x4a03c013, 0x01000100, - 0x4200c000, 0x00000008, 0x4200c800, 0x000003e8, - 0x4ce80000, 0x4201d000, 0x0000000a, 0x0201f800, - 0x0010592d, 0x5c01d000, 0x4a03c013, 0x02000200, - 0x4a03c014, 0x03800000, 0x59e00013, 0x4a03c014, - 0x03800380, 0x82000500, 0x00000200, 0x04020003, - 0x8064c840, 0x040207f7, 0x4178c800, 0x0401f009, - 0x4ce80000, 0x4201d000, 0x0000000a, 0x0201f800, - 0x0010592d, 0x5c01d000, 0x4a03c013, 0x02000200, - 0x4ce80000, 0x4201d000, 0x0000000a, 0x0201f800, - 0x0010592d, 0x5c01d000, 0x4a03c014, 0x03800000, + 0x00000300, 0x040207f3, 0x82000540, 0x00000001, + 0x5c00b000, 0x5c01d000, 0x1c01f000, 0x4803c857, + 0x80000580, 0x0401f7fb, 0x4ce80000, 0x4803c856, + 0x42000800, 0x000003e8, 0x4a03c013, 0x03800300, + 0x80040840, 0x0400001b, 0x4a03c014, 0x03800000, 0x59e00013, 0x4a03c014, 0x03800380, 0x82000500, - 0x00000100, 0x80000110, 0x8064c8c2, 0x8064cd40, - 0x4a03c013, 0x02000000, 0x8060c040, 0x040207e5, - 0x4867c857, 0x5c00c000, 0x1c01f000, 0x4803c856, - 0x4a03c013, 0x01000100, 0x4ce80000, 0x4201d000, - 0x0000000a, 0x0201f800, 0x0010592d, 0x5c01d000, + 0x00000300, 0x82000580, 0x00000300, 0x040207f3, + 0x4201d000, 0x0000000a, 0x0201f800, 0x001059d2, + 0x4a03c013, 0x01000000, 0x4201d000, 0x0000000a, + 0x0201f800, 0x001059d2, 0x4a03c013, 0x02000000, + 0x82000540, 0x00000001, 0x5c01d000, 0x1c01f000, + 0x4803c857, 0x0401ffb2, 0x040207ee, 0x0401f7fb, + 0x4803c856, 0x4a03c013, 0x01000000, 0x4ce80000, + 0x4201d000, 0x0000000a, 0x0201f800, 0x001059d2, + 0x5c01d000, 0x4a03c013, 0x02000200, 0x4ce80000, + 0x4201d000, 0x0000000a, 0x0201f800, 0x001059d2, + 0x5c01d000, 0x4a03c013, 0x01000100, 0x1c01f000, + 0x4c5c0000, 0x4c600000, 0x485fc857, 0x4200c000, + 0x00000008, 0x825c0500, 0x00000080, 0x800000c2, + 0x82000540, 0x01000000, 0x4803c013, 0x4ce80000, + 0x4201d000, 0x0000000a, 0x0201f800, 0x001059d2, + 0x5c01d000, 0x4a03c013, 0x02000200, 0x4ce80000, + 0x4201d000, 0x0000000a, 0x0201f800, 0x001059d2, + 0x5c01d000, 0x4a03c013, 0x02000000, 0x805cb8c2, + 0x8060c040, 0x040207e8, 0x4a03c013, 0x01000100, + 0x4ce80000, 0x4201d000, 0x0000000a, 0x0201f800, + 0x001059d2, 0x5c01d000, 0x4a03c013, 0x02000200, + 0x4ce80000, 0x4201d000, 0x0000000a, 0x0201f800, + 0x001059d2, 0x5c01d000, 0x4a03c014, 0x03800000, + 0x42000800, 0x000003e8, 0x59e0b813, 0x825cbd00, + 0x00000100, 0x80040840, 0x04000004, 0x405c0000, + 0x80000540, 0x040207f9, 0x4a03c014, 0x03800380, + 0x4a03c013, 0x02000000, 0x4ce80000, 0x4201d000, + 0x0000000a, 0x0201f800, 0x001059d2, 0x5c01d000, + 0x485fc857, 0x405c0000, 0x80000540, 0x5c00c000, + 0x5c00b800, 0x1c01f000, 0x4c600000, 0x4803c856, + 0x4a03c013, 0x01000100, 0x4200c000, 0x00000008, + 0x4200c800, 0x000003e8, 0x4ce80000, 0x4201d000, + 0x0000000a, 0x0201f800, 0x001059d2, 0x5c01d000, + 0x4a03c013, 0x02000200, 0x4a03c014, 0x03800000, + 0x59e00013, 0x4a03c014, 0x03800380, 0x82000500, + 0x00000200, 0x04020003, 0x8064c840, 0x040207f7, + 0x4178c800, 0x0401f009, 0x4ce80000, 0x4201d000, + 0x0000000a, 0x0201f800, 0x001059d2, 0x5c01d000, 0x4a03c013, 0x02000200, 0x4ce80000, 0x4201d000, - 0x0000000a, 0x0201f800, 0x0010592d, 0x5c01d000, - 0x4a03c013, 0x02000000, 0x1c01f000, 0x59a00408, - 0x59a8082a, 0x4803502a, 0x48074408, 0x59a00a0a, - 0x82040480, 0x00000014, 0x04021003, 0x42000800, - 0x000007d0, 0x59a8002b, 0x4807502b, 0x4803420a, - 0x0201f000, 0x00101cba, 0x836c0580, 0x00000000, - 0x0400000e, 0x59a80005, 0x59a00c07, 0x80041580, - 0x82081500, 0x00000040, 0x02000000, 0x00101cba, - 0x80080580, 0x48035005, 0x0201f800, 0x00100419, - 0x0201f000, 0x00101cba, 0x59a00407, 0x59a80805, - 0x48035005, 0x80040d80, 0x8c040d0c, 0x02020800, - 0x00100419, 0x59a00208, 0x48035006, 0x59a00408, - 0x48035007, 0x0201f000, 0x00101cba, 0x59a80073, - 0x8c00053e, 0x02000000, 0x00101cf1, 0x59a00c07, - 0x8c040d00, 0x04000021, 0x4a034407, 0x00000001, - 0x8c000506, 0x02020000, 0x00101cfd, 0x4a034407, - 0x00000009, 0x59aa6874, 0x0201f800, 0x0010416b, - 0x02020000, 0x00101cfd, 0x4a034407, 0x00000003, - 0x0201f800, 0x000209ee, 0x02000000, 0x00101cfd, - 0x48ee6022, 0x4a01d808, 0x00102392, 0x4a026407, - 0x00000012, 0x4936600a, 0x42027000, 0x000000d7, - 0x0201f000, 0x00020a34, 0x59a00407, 0x800001c0, - 0x02020000, 0x00101cfd, 0x0201f800, 0x0010a616, - 0x0201f000, 0x00101cba, 0x8d0e1d0e, 0x04000005, - 0x4a034407, 0x00000001, 0x0201f000, 0x00101cfd, - 0x0201f800, 0x00104716, 0x04020005, 0x4a034407, - 0x00000016, 0x0201f000, 0x00101cfd, 0x836c0580, - 0x00000003, 0x04000005, 0x4a034407, 0x00000007, - 0x0201f000, 0x00101cfd, 0x59a00c07, 0x82040500, - 0xffffff00, 0x02020000, 0x00101d01, 0x82041580, - 0x000000ff, 0x04020007, 0x59a8000f, 0x82000500, - 0x000000ff, 0x82001540, 0x0000ff00, 0x0401f011, - 0x82040400, 0x00101b0a, 0x50000000, 0x80000110, - 0x82000580, 0x00000080, 0x02000000, 0x00101d01, - 0x59a8000f, 0x82000500, 0x000000ff, 0x80041580, - 0x02000000, 0x00101d01, 0x840409c0, 0x80041540, - 0x0201f800, 0x001070f5, 0x04020005, 0x4a034407, - 0x00000003, 0x0201f000, 0x00101cfd, 0x48ee6022, - 0x480a621d, 0x4a02641d, 0x0000bc09, 0x4a026407, - 0x00000001, 0x0201f800, 0x001031a5, 0x04020007, - 0x0201f800, 0x00020a10, 0x4a034407, 0x00000002, - 0x0201f000, 0x00101cfd, 0x497a5a05, 0x497a5806, - 0x4a025c05, 0x00008000, 0x4a01d808, 0x00102440, - 0x492e6009, 0x42027000, 0x00000032, 0x0201f000, - 0x00020a34, 0x8d0e1d0e, 0x04000005, 0x4a034407, - 0x00000001, 0x0201f000, 0x00101cfd, 0x0201f800, - 0x00104716, 0x04020005, 0x4a034407, 0x00000016, - 0x0201f000, 0x00101cfd, 0x836c0580, 0x00000003, - 0x04000005, 0x4a034407, 0x00000007, 0x0201f000, - 0x00101cfd, 0x59a00c07, 0x82040500, 0xffffff00, - 0x02020000, 0x00101d01, 0x82041580, 0x000000ff, - 0x04020007, 0x59a8000f, 0x82000500, 0x000000ff, - 0x82001540, 0x0000ff00, 0x0401f011, 0x82040400, - 0x00101b0a, 0x50000000, 0x80000110, 0x82000580, - 0x00000080, 0x02000000, 0x00101d01, 0x59a8000f, - 0x82000500, 0x000000ff, 0x80041580, 0x02000000, - 0x00101d01, 0x840409c0, 0x80041540, 0x0201f800, - 0x001070f5, 0x04020005, 0x4a034407, 0x00000003, - 0x0201f000, 0x00101cfd, 0x48ee6022, 0x480a621d, - 0x4a02641d, 0x0000bc05, 0x4a026407, 0x00000001, - 0x0201f800, 0x001031a5, 0x04020007, 0x0201f800, - 0x00020a10, 0x4a034407, 0x00000002, 0x0201f000, - 0x00101cfd, 0x497a5a05, 0x497a5806, 0x4a025c05, - 0x00008000, 0x4a01d808, 0x00102440, 0x492e6009, - 0x42027000, 0x00000032, 0x0201f000, 0x00020a34, - 0x592c0006, 0x82000580, 0x01000000, 0x02020000, - 0x00101cba, 0x4a034407, 0x00000004, 0x0201f000, - 0x00101cfd, 0x497b4407, 0x497b4208, 0x8d0e1d20, - 0x04000008, 0x59a8004d, 0x59a8084e, 0x80040480, - 0x59a8084f, 0x48074407, 0x80041480, 0x480b4208, - 0x0201f800, 0x001032e6, 0x48034408, 0x59a8100d, - 0x59a80251, 0x80080480, 0x4803420a, 0x495f440a, - 0x59a8001a, 0x4803420c, 0x0201f000, 0x00101cba, + 0x0000000a, 0x0201f800, 0x001059d2, 0x5c01d000, + 0x4a03c014, 0x03800000, 0x59e00013, 0x4a03c014, + 0x03800380, 0x82000500, 0x00000100, 0x80000110, + 0x8064c8c2, 0x8064cd40, 0x4a03c013, 0x02000000, + 0x8060c040, 0x040207e5, 0x4867c857, 0x5c00c000, + 0x1c01f000, 0x4803c856, 0x4a03c013, 0x01000100, + 0x4ce80000, 0x4201d000, 0x0000000a, 0x0201f800, + 0x001059d2, 0x5c01d000, 0x4a03c013, 0x02000200, + 0x4ce80000, 0x4201d000, 0x0000000a, 0x0201f800, + 0x001059d2, 0x5c01d000, 0x4a03c013, 0x02000000, + 0x1c01f000, 0x59a00408, 0x59a8082a, 0x4803502a, + 0x48074408, 0x59a00a0a, 0x82040480, 0x00000014, + 0x04021003, 0x42000800, 0x000007d0, 0x59a8002b, + 0x4807502b, 0x4803420a, 0x0201f000, 0x00101cbf, + 0x836c0580, 0x00000000, 0x0400000e, 0x59a80005, + 0x59a00c07, 0x80041580, 0x82081500, 0x00000040, + 0x02000000, 0x00101cbf, 0x80080580, 0x48035005, + 0x0201f800, 0x00100419, 0x0201f000, 0x00101cbf, + 0x59a00407, 0x59a80805, 0x48035005, 0x80040d80, + 0x8c040d0c, 0x02020800, 0x00100419, 0x59a00208, + 0x48035006, 0x59a00408, 0x48035007, 0x0201f000, + 0x00101cbf, 0x59a80073, 0x8c00053e, 0x02000000, + 0x00101cf6, 0x59a00c07, 0x8c040d00, 0x04000021, + 0x4a034407, 0x00000001, 0x8c000506, 0x02020000, + 0x00101d02, 0x4a034407, 0x00000009, 0x59aa6874, + 0x0201f800, 0x00104187, 0x02020000, 0x00101d02, + 0x4a034407, 0x00000003, 0x0201f800, 0x000209ee, + 0x02000000, 0x00101d02, 0x48ee6022, 0x4a01d808, + 0x0010239c, 0x4a026407, 0x00000012, 0x4936600a, + 0x42027000, 0x000000d7, 0x0201f000, 0x00020a34, + 0x59a00407, 0x800001c0, 0x02020000, 0x00101d02, + 0x0201f800, 0x0010a709, 0x0201f000, 0x00101cbf, 0x8d0e1d0e, 0x04000005, 0x4a034407, 0x00000001, - 0x0201f000, 0x00101cfd, 0x59a00407, 0x8c000500, - 0x0402000f, 0x59a80050, 0x81640480, 0x04001008, - 0x59a8000b, 0x81500580, 0x04000009, 0x59a8004e, - 0x59a8104d, 0x80080580, 0x04000005, 0x4a034407, - 0x00000018, 0x0201f000, 0x00101cfd, 0x850e1d58, - 0x4803c856, 0x850e1d46, 0x0201f800, 0x00103461, - 0x0201f000, 0x00101cba, 0x599c0201, 0x48035061, - 0x41780800, 0x42001000, 0x00003b10, 0x0201f800, - 0x00105f69, 0x480b5062, 0x1c01f000, 0x0401f807, - 0x42018800, 0x00000000, 0x04020003, 0x42018800, - 0x00000001, 0x1c01f000, 0x82000540, 0x00000001, - 0x0402500d, 0x4203e000, 0x80000000, 0x40e81000, - 0x41780800, 0x42000000, 0x00000064, 0x0201f800, - 0x00105f69, 0x5994002e, 0x80080400, 0x4803282e, - 0x80000580, 0x1c01f000, 0x4d900000, 0x4dd00000, - 0x4da40000, 0x4d140000, 0x417a3000, 0x0201f800, - 0x00106705, 0x0201f800, 0x001062a1, 0x5c022800, - 0x5c034800, 0x5c03a000, 0x5c032000, 0x1c01f000, - 0x42000800, 0x0000007c, 0x0201f800, 0x001010da, - 0x4a03902c, 0x00200000, 0x4200b000, 0x000001f4, - 0x59c8002c, 0x8c00052c, 0x04000007, 0x8058b040, - 0x040207fc, 0x42000000, 0x00004003, 0x41781000, - 0x0401f131, 0x4a035068, 0x00000002, 0x42006000, - 0x00102601, 0x50301000, 0x41784800, 0x4a03902d, - 0x00008000, 0x4200b000, 0x000001f4, 0x59c8002c, - 0x8c000534, 0x04000007, 0x8058b040, 0x040207fc, - 0x42000000, 0x00004003, 0x41781000, 0x0401f11e, - 0x0401f8a2, 0x80244800, 0x82240580, 0x000003b1, - 0x040207fc, 0x0401f927, 0x41784800, 0x0401f8c8, - 0x80244800, 0x82240580, 0x000003b1, 0x040207fc, - 0x80306000, 0x82300580, 0x00102603, 0x040207e2, - 0x59a80867, 0x800409c0, 0x04000007, 0x42000000, - 0x00004004, 0x42001000, 0x00000002, 0x59a81866, - 0x0401f105, 0x42006000, 0x00102601, 0x4a035068, - 0x00000010, 0x50301000, 0x41784800, 0x4a03902d, - 0x00000800, 0x0401f881, 0x80244800, 0x82240580, - 0x00000018, 0x040207fc, 0x0401f906, 0x41784800, - 0x0401f8a7, 0x80244800, 0x82240580, 0x00000018, - 0x040207fc, 0x80306000, 0x82300580, 0x00102603, - 0x040207ed, 0x59a80867, 0x800409c0, 0x04000007, - 0x42000000, 0x00004004, 0x42001000, 0x00000010, - 0x59a81866, 0x0401f0e4, 0x42006000, 0x00102601, - 0x4a035068, 0x00000008, 0x50301000, 0x41784800, - 0x4a03902d, 0x00000400, 0x0401f860, 0x80244800, - 0x82240580, 0x00000088, 0x040207fc, 0x0401f8e5, - 0x41784800, 0x0401f886, 0x80244800, 0x82240580, - 0x00000088, 0x040207fc, 0x80306000, 0x82300580, - 0x00102603, 0x040207ed, 0x59a80867, 0x800409c0, - 0x04000007, 0x42000000, 0x00004004, 0x42001000, - 0x00000008, 0x59a81866, 0x0401f0c3, 0x42006000, - 0x00102601, 0x4a035068, 0x00000020, 0x50301000, - 0x41784800, 0x4a03902d, 0x00002000, 0x4200b000, - 0x000001f4, 0x59c8002c, 0x8c000530, 0x04000007, + 0x0201f000, 0x00101d02, 0x0201f800, 0x00104755, + 0x04020005, 0x4a034407, 0x00000016, 0x0201f000, + 0x00101d02, 0x836c0580, 0x00000003, 0x04000005, + 0x4a034407, 0x00000007, 0x0201f000, 0x00101d02, + 0x59a00c07, 0x82040500, 0xffffff00, 0x02020000, + 0x00101d06, 0x82041580, 0x000000ff, 0x04020007, + 0x59a8000f, 0x82000500, 0x000000ff, 0x82001540, + 0x0000ff00, 0x0401f011, 0x82040400, 0x00101b0f, + 0x50000000, 0x80000110, 0x82000580, 0x00000080, + 0x02000000, 0x00101d06, 0x59a8000f, 0x82000500, + 0x000000ff, 0x80041580, 0x02000000, 0x00101d06, + 0x840409c0, 0x80041540, 0x0201f800, 0x00107188, + 0x04020005, 0x4a034407, 0x00000003, 0x0201f000, + 0x00101d02, 0x48ee6022, 0x480a621d, 0x4a02641d, + 0x0000bc09, 0x4a026407, 0x00000001, 0x0201f800, + 0x001031af, 0x04020007, 0x0201f800, 0x00020a10, + 0x4a034407, 0x00000002, 0x0201f000, 0x00101d02, + 0x497a5a05, 0x497a5806, 0x4a025c05, 0x00008000, + 0x4a01d808, 0x0010244a, 0x492e6009, 0x42027000, + 0x00000032, 0x0201f000, 0x00020a34, 0x8d0e1d0e, + 0x04000005, 0x4a034407, 0x00000001, 0x0201f000, + 0x00101d02, 0x0201f800, 0x00104755, 0x04020005, + 0x4a034407, 0x00000016, 0x0201f000, 0x00101d02, + 0x836c0580, 0x00000003, 0x04000005, 0x4a034407, + 0x00000007, 0x0201f000, 0x00101d02, 0x59a00c07, + 0x82040500, 0xffffff00, 0x02020000, 0x00101d06, + 0x82041580, 0x000000ff, 0x04020007, 0x59a8000f, + 0x82000500, 0x000000ff, 0x82001540, 0x0000ff00, + 0x0401f011, 0x82040400, 0x00101b0f, 0x50000000, + 0x80000110, 0x82000580, 0x00000080, 0x02000000, + 0x00101d06, 0x59a8000f, 0x82000500, 0x000000ff, + 0x80041580, 0x02000000, 0x00101d06, 0x840409c0, + 0x80041540, 0x0201f800, 0x00107188, 0x04020005, + 0x4a034407, 0x00000003, 0x0201f000, 0x00101d02, + 0x48ee6022, 0x480a621d, 0x4a02641d, 0x0000bc05, + 0x4a026407, 0x00000001, 0x0201f800, 0x001031af, + 0x04020007, 0x0201f800, 0x00020a10, 0x4a034407, + 0x00000002, 0x0201f000, 0x00101d02, 0x497a5a05, + 0x497a5806, 0x4a025c05, 0x00008000, 0x4a01d808, + 0x0010244a, 0x492e6009, 0x42027000, 0x00000032, + 0x0201f000, 0x00020a34, 0x592c0006, 0x82000580, + 0x01000000, 0x02020000, 0x00101cbf, 0x4a034407, + 0x00000004, 0x0201f000, 0x00101d02, 0x497b4407, + 0x497b4208, 0x8d0e1d20, 0x04000008, 0x59a8004d, + 0x59a8084e, 0x80040480, 0x59a8084f, 0x48074407, + 0x80041480, 0x480b4208, 0x0201f800, 0x001032f0, + 0x48034408, 0x59a8100d, 0x59a80251, 0x80080480, + 0x4803420a, 0x495f440a, 0x59a8001a, 0x4803420c, + 0x0201f000, 0x00101cbf, 0x8d0e1d0e, 0x04000005, + 0x4a034407, 0x00000001, 0x0201f000, 0x00101d02, + 0x59a00407, 0x8c000500, 0x0402000f, 0x59a80050, + 0x81640480, 0x04001008, 0x59a8000b, 0x81500580, + 0x04000009, 0x59a8004e, 0x59a8104d, 0x80080580, + 0x04000005, 0x4a034407, 0x00000018, 0x0201f000, + 0x00101d02, 0x850e1d58, 0x4803c856, 0x850e1d46, + 0x0201f800, 0x00103474, 0x0201f000, 0x00101cbf, + 0x599c0201, 0x48035061, 0x41780800, 0x42001000, + 0x00003b10, 0x0201f800, 0x0010600e, 0x480b5062, + 0x1c01f000, 0x0401f807, 0x42018800, 0x00000000, + 0x04020003, 0x42018800, 0x00000001, 0x1c01f000, + 0x82000540, 0x00000001, 0x0402500d, 0x4203e000, + 0x80000000, 0x40e81000, 0x41780800, 0x42000000, + 0x00000064, 0x0201f800, 0x0010600e, 0x5994002e, + 0x80080400, 0x4803282e, 0x80000580, 0x1c01f000, + 0x4d900000, 0x4dd00000, 0x4da40000, 0x4d140000, + 0x417a3000, 0x0201f800, 0x001067aa, 0x0201f800, + 0x00106346, 0x5c022800, 0x5c034800, 0x5c03a000, + 0x5c032000, 0x1c01f000, 0x42000800, 0x0000007c, + 0x0201f800, 0x001010db, 0x4a03902c, 0x00200000, + 0x4200b000, 0x000001f4, 0x59c8002c, 0x8c00052c, + 0x04000007, 0x8058b040, 0x040207fc, 0x42000000, + 0x00004003, 0x41781000, 0x0401f131, 0x4a035068, + 0x00000002, 0x42006000, 0x0010260b, 0x50301000, + 0x41784800, 0x4a03902d, 0x00008000, 0x4200b000, + 0x000001f4, 0x59c8002c, 0x8c000534, 0x04000007, 0x8058b040, 0x040207fc, 0x42000000, 0x00004003, - 0x41781000, 0x0401f0b0, 0x59c8002c, 0x82000500, - 0xffe0ffff, 0x82080d00, 0x001f0000, 0x80040540, - 0x4803902c, 0x0401f82d, 0x80244800, 0x82240580, - 0x00000110, 0x040207fc, 0x0401f8b2, 0x41784800, - 0x0401f853, 0x59c80034, 0x82080d00, 0x001f0000, - 0x82000500, 0x001f0000, 0x80040580, 0x04000006, - 0x59a80067, 0x80000000, 0x48035067, 0x40240000, - 0x48035066, 0x80244800, 0x82240580, 0x00000110, - 0x040207f0, 0x80306000, 0x82300580, 0x00102603, - 0x040207cf, 0x59a80867, 0x800409c0, 0x04000006, - 0x42000000, 0x00004004, 0x42001000, 0x00000020, - 0x59a81866, 0x59c8002c, 0x8400052a, 0x4803902c, - 0x42000800, 0x0000007c, 0x0201f800, 0x001010da, - 0x0201f000, 0x00101cba, 0x59c8002c, 0x82000500, - 0xffff0000, 0x82080d00, 0x0000ffff, 0x80040540, - 0x4803902c, 0x480b9028, 0x480b9029, 0x59a80068, - 0x82004580, 0x00000004, 0x04000003, 0x480b902a, - 0x480b902b, 0x59c8002d, 0x82000500, 0xfffffc00, - 0x80240540, 0x4803902d, 0x4200b000, 0x000001f4, - 0x59c8002c, 0x82000500, 0x18000000, 0x04000007, - 0x8058b040, 0x040207fb, 0x42000000, 0x00004003, - 0x41781000, 0x0401f05c, 0x4a03902e, 0x00000001, - 0x4200b000, 0x000001f4, 0x59c8002e, 0x8c000500, - 0x04000006, 0x8058b040, 0x040207fc, 0x42000000, - 0x00004003, 0x0401f050, 0x1c01f000, 0x41783800, - 0x59c8002d, 0x82000500, 0xfffffc00, 0x80240d40, - 0x4807902d, 0x4200b000, 0x000001f4, 0x59c8002c, - 0x82000500, 0x18000000, 0x04000007, 0x8058b040, - 0x040207fb, 0x42000000, 0x00004003, 0x41781000, - 0x0401f03d, 0x59c81830, 0x59c80030, 0x800c0d80, - 0x040207fd, 0x80080d80, 0x04000002, 0x801c3800, - 0x59c82031, 0x59c80031, 0x80100d80, 0x040207fd, - 0x80080d80, 0x04000002, 0x801c3800, 0x59a80068, - 0x82004580, 0x00000004, 0x0400001b, 0x42004000, - 0x0000ffff, 0x59c82832, 0x59c80032, 0x80140d80, - 0x040207fd, 0x80080d80, 0x04000002, 0x801c3800, - 0x59c83033, 0x59c80033, 0x80180d80, 0x040207fd, - 0x80080d80, 0x04000002, 0x801c3800, 0x59c80034, - 0x59c80834, 0x80040d80, 0x040207fd, 0x80080d80, - 0x40200000, 0x80040d00, 0x0400000c, 0x801c3800, - 0x0401f00a, 0x59c80034, 0x59c80834, 0x80040d80, - 0x040207fd, 0x80080d80, 0x82040d00, 0x000000ff, - 0x04000002, 0x801c3800, 0x801c39c0, 0x04000005, - 0x59a80067, 0x801c0400, 0x48035067, 0x48275066, - 0x1c01f000, 0x48034207, 0x48074407, 0x480b4208, - 0x480f4408, 0x48134209, 0x48174409, 0x59c8002c, + 0x41781000, 0x0401f11e, 0x0401f8a2, 0x80244800, + 0x82240580, 0x000003b1, 0x040207fc, 0x0401f927, + 0x41784800, 0x0401f8c8, 0x80244800, 0x82240580, + 0x000003b1, 0x040207fc, 0x80306000, 0x82300580, + 0x0010260d, 0x040207e2, 0x59a80867, 0x800409c0, + 0x04000007, 0x42000000, 0x00004004, 0x42001000, + 0x00000002, 0x59a81866, 0x0401f105, 0x42006000, + 0x0010260b, 0x4a035068, 0x00000010, 0x50301000, + 0x41784800, 0x4a03902d, 0x00000800, 0x0401f881, + 0x80244800, 0x82240580, 0x00000018, 0x040207fc, + 0x0401f906, 0x41784800, 0x0401f8a7, 0x80244800, + 0x82240580, 0x00000018, 0x040207fc, 0x80306000, + 0x82300580, 0x0010260d, 0x040207ed, 0x59a80867, + 0x800409c0, 0x04000007, 0x42000000, 0x00004004, + 0x42001000, 0x00000010, 0x59a81866, 0x0401f0e4, + 0x42006000, 0x0010260b, 0x4a035068, 0x00000008, + 0x50301000, 0x41784800, 0x4a03902d, 0x00000400, + 0x0401f860, 0x80244800, 0x82240580, 0x00000088, + 0x040207fc, 0x0401f8e5, 0x41784800, 0x0401f886, + 0x80244800, 0x82240580, 0x00000088, 0x040207fc, + 0x80306000, 0x82300580, 0x0010260d, 0x040207ed, + 0x59a80867, 0x800409c0, 0x04000007, 0x42000000, + 0x00004004, 0x42001000, 0x00000008, 0x59a81866, + 0x0401f0c3, 0x42006000, 0x0010260b, 0x4a035068, + 0x00000020, 0x50301000, 0x41784800, 0x4a03902d, + 0x00002000, 0x4200b000, 0x000001f4, 0x59c8002c, + 0x8c000530, 0x04000007, 0x8058b040, 0x040207fc, + 0x42000000, 0x00004003, 0x41781000, 0x0401f0b0, + 0x59c8002c, 0x82000500, 0xffe0ffff, 0x82080d00, + 0x001f0000, 0x80040540, 0x4803902c, 0x0401f82d, + 0x80244800, 0x82240580, 0x00000110, 0x040207fc, + 0x0401f8b2, 0x41784800, 0x0401f853, 0x59c80034, + 0x82080d00, 0x001f0000, 0x82000500, 0x001f0000, + 0x80040580, 0x04000006, 0x59a80067, 0x80000000, + 0x48035067, 0x40240000, 0x48035066, 0x80244800, + 0x82240580, 0x00000110, 0x040207f0, 0x80306000, + 0x82300580, 0x0010260d, 0x040207cf, 0x59a80867, + 0x800409c0, 0x04000006, 0x42000000, 0x00004004, + 0x42001000, 0x00000020, 0x59a81866, 0x59c8002c, 0x8400052a, 0x4803902c, 0x42000800, 0x0000007c, - 0x0201f800, 0x001010da, 0x0201f000, 0x00101cbd, - 0x42000000, 0x00600000, 0x80000040, 0x040207ff, - 0x1c01f000, 0x5a5a5a5a, 0xa5a5a5a5, 0x59a00c0b, - 0x800409c0, 0x02000000, 0x00101d01, 0x82040480, - 0x00000021, 0x02021000, 0x00101d01, 0x82040480, - 0x00000011, 0x04001003, 0x42000800, 0x00000010, - 0x59a00209, 0x59a01408, 0x900811c0, 0x80081540, - 0x59a00208, 0x59a01c07, 0x900c19c0, 0x800c1d40, - 0x0201f800, 0x001031a5, 0x04000006, 0x0201f800, - 0x001031c9, 0x4a01d808, 0x00102624, 0x1c01f000, - 0x4a034407, 0x00000002, 0x0201f000, 0x00101cfd, - 0x4031d800, 0x58ef400a, 0x58ec0002, 0x82000580, - 0x00000200, 0x02000000, 0x00101cf5, 0x59a00c0b, - 0x82040480, 0x00000011, 0x04001003, 0x42000800, + 0x0201f800, 0x001010db, 0x0201f000, 0x00101cbf, + 0x59c8002c, 0x82000500, 0xffff0000, 0x82080d00, + 0x0000ffff, 0x80040540, 0x4803902c, 0x480b9028, + 0x480b9029, 0x59a80068, 0x82004580, 0x00000004, + 0x04000003, 0x480b902a, 0x480b902b, 0x59c8002d, + 0x82000500, 0xfffffc00, 0x80240540, 0x4803902d, + 0x4200b000, 0x000001f4, 0x59c8002c, 0x82000500, + 0x18000000, 0x04000007, 0x8058b040, 0x040207fb, + 0x42000000, 0x00004003, 0x41781000, 0x0401f05c, + 0x4a03902e, 0x00000001, 0x4200b000, 0x000001f4, + 0x59c8002e, 0x8c000500, 0x04000006, 0x8058b040, + 0x040207fc, 0x42000000, 0x00004003, 0x0401f050, + 0x1c01f000, 0x41783800, 0x59c8002d, 0x82000500, + 0xfffffc00, 0x80240d40, 0x4807902d, 0x4200b000, + 0x000001f4, 0x59c8002c, 0x82000500, 0x18000000, + 0x04000007, 0x8058b040, 0x040207fb, 0x42000000, + 0x00004003, 0x41781000, 0x0401f03d, 0x59c81830, + 0x59c80030, 0x800c0d80, 0x040207fd, 0x80080d80, + 0x04000002, 0x801c3800, 0x59c82031, 0x59c80031, + 0x80100d80, 0x040207fd, 0x80080d80, 0x04000002, + 0x801c3800, 0x59a80068, 0x82004580, 0x00000004, + 0x0400001b, 0x42004000, 0x0000ffff, 0x59c82832, + 0x59c80032, 0x80140d80, 0x040207fd, 0x80080d80, + 0x04000002, 0x801c3800, 0x59c83033, 0x59c80033, + 0x80180d80, 0x040207fd, 0x80080d80, 0x04000002, + 0x801c3800, 0x59c80034, 0x59c80834, 0x80040d80, + 0x040207fd, 0x80080d80, 0x40200000, 0x80040d00, + 0x0400000c, 0x801c3800, 0x0401f00a, 0x59c80034, + 0x59c80834, 0x80040d80, 0x040207fd, 0x80080d80, + 0x82040d00, 0x000000ff, 0x04000002, 0x801c3800, + 0x801c39c0, 0x04000005, 0x59a80067, 0x801c0400, + 0x48035067, 0x48275066, 0x1c01f000, 0x48034207, + 0x48074407, 0x480b4208, 0x480f4408, 0x48134209, + 0x48174409, 0x59c8002c, 0x8400052a, 0x4803902c, + 0x42000800, 0x0000007c, 0x0201f800, 0x001010db, + 0x0201f000, 0x00101cc2, 0x42000000, 0x00600000, + 0x80000040, 0x040207ff, 0x1c01f000, 0x5a5a5a5a, + 0xa5a5a5a5, 0x59a00c0b, 0x800409c0, 0x02000000, + 0x00101d06, 0x82040480, 0x00000021, 0x02021000, + 0x00101d06, 0x82040480, 0x00000011, 0x04001003, + 0x42000800, 0x00000010, 0x59a00209, 0x59a01408, + 0x900811c0, 0x80081540, 0x59a00208, 0x59a01c07, + 0x900c19c0, 0x800c1d40, 0x0201f800, 0x001031af, + 0x04000006, 0x0201f800, 0x001031d3, 0x4a01d808, + 0x0010262e, 0x1c01f000, 0x4a034407, 0x00000002, + 0x0201f000, 0x00101d02, 0x4031d800, 0x58ef400a, + 0x58ec0002, 0x82000580, 0x00000200, 0x02000000, + 0x00101cfa, 0x59a00c0b, 0x82040480, 0x00000011, + 0x04001003, 0x42000800, 0x00000010, 0x59a0040c, + 0x59a0120c, 0x900811c0, 0x80081540, 0x59a0020a, + 0x59a01c09, 0x900c19c0, 0x800c1d40, 0x58ec0003, + 0x0201f800, 0x001031dc, 0x4a01d808, 0x00102649, + 0x1c01f000, 0x4031d800, 0x58ef400a, 0x58ec0002, + 0x82000580, 0x00000200, 0x02000000, 0x00101cfa, + 0x59a00c0b, 0x82040480, 0x00000011, 0x02001000, + 0x00101cbf, 0x82040c80, 0x00000010, 0x59a00209, + 0x59a01408, 0x900811c0, 0x80081540, 0x59a00208, + 0x59a01c07, 0x900c19c0, 0x800c1d40, 0x82081400, + 0x00000040, 0x58ec0003, 0x0201f800, 0x001031d3, + 0x4a01d808, 0x00102667, 0x1c01f000, 0x4031d800, + 0x58ef400a, 0x58ec0002, 0x82000580, 0x00000200, + 0x02000000, 0x00101cfa, 0x59a0040b, 0x82000c80, 0x00000010, 0x59a0040c, 0x59a0120c, 0x900811c0, 0x80081540, 0x59a0020a, 0x59a01c09, 0x900c19c0, - 0x800c1d40, 0x58ec0003, 0x0201f800, 0x001031d2, - 0x4a01d808, 0x0010263f, 0x1c01f000, 0x4031d800, - 0x58ef400a, 0x58ec0002, 0x82000580, 0x00000200, - 0x02000000, 0x00101cf5, 0x59a00c0b, 0x82040480, - 0x00000011, 0x02001000, 0x00101cba, 0x82040c80, - 0x00000010, 0x59a00209, 0x59a01408, 0x900811c0, - 0x80081540, 0x59a00208, 0x59a01c07, 0x900c19c0, 0x800c1d40, 0x82081400, 0x00000040, 0x58ec0003, - 0x0201f800, 0x001031c9, 0x4a01d808, 0x0010265d, - 0x1c01f000, 0x4031d800, 0x58ef400a, 0x58ec0002, - 0x82000580, 0x00000200, 0x02000000, 0x00101cf5, - 0x59a0040b, 0x82000c80, 0x00000010, 0x59a0040c, - 0x59a0120c, 0x900811c0, 0x80081540, 0x59a0020a, - 0x59a01c09, 0x900c19c0, 0x800c1d40, 0x82081400, - 0x00000040, 0x58ec0003, 0x0201f800, 0x001031d2, - 0x4a01d808, 0x00101cb3, 0x1c01f000, 0x48efc857, - 0x59a00208, 0x59a01408, 0x900001c0, 0x80081540, - 0x59a0020a, 0x59a01c0a, 0x900001c0, 0x800c1d40, - 0x59a00407, 0x48034000, 0x480b4001, 0x480f4002, - 0x0201f800, 0x001031a5, 0x04020005, 0x4a034407, - 0x00000002, 0x0201f000, 0x00101cfd, 0x42000800, - 0x00000010, 0x0201f800, 0x001031c9, 0x4a01d808, - 0x00102692, 0x1c01f000, 0x4031d800, 0x58ef400a, - 0x58ee580c, 0x58ec0002, 0x82000580, 0x00000200, - 0x02000000, 0x00101cf5, 0x48efc857, 0x49a3c857, - 0x492fc857, 0x592c0a05, 0x80040910, 0x04020005, - 0x4a034407, 0x00000019, 0x0201f000, 0x00101cfd, - 0x4805d80b, 0x0401f00a, 0x4031d800, 0x58ef400a, - 0x58ec0002, 0x82000580, 0x00000200, 0x02000000, - 0x00101cf5, 0x48efc857, 0x49a3c857, 0x48efc857, - 0x49a3c857, 0x58ec000b, 0x80000040, 0x04000012, - 0x4801d80b, 0x0201f800, 0x001031a5, 0x04020005, - 0x4a034407, 0x00000002, 0x0201f000, 0x00101cfd, - 0x42000800, 0x00000010, 0x58ec1006, 0x58ec1807, - 0x0201f800, 0x001031c9, 0x4a01d808, 0x001026a6, - 0x1c01f000, 0x58ee580c, 0x48efc857, 0x49a3c857, - 0x492fc857, 0x492f3004, 0x592c0405, 0x8400055e, - 0x48025c05, 0x4a01d808, 0x001026d0, 0x1c01f000, - 0x4d2c0000, 0x58ee580c, 0x48efc857, 0x49a3c857, - 0x492fc857, 0x592c0405, 0x8400051e, 0x48025c05, - 0x59a00000, 0x59a01001, 0x59a01802, 0x80081400, - 0x820c1c40, 0x00000000, 0x832c0400, 0x00000005, - 0x42000800, 0x00000010, 0x5c025800, 0x0201f000, - 0x001031d2, 0x8d0e1d0e, 0x04000005, 0x4a034407, - 0x00000001, 0x0201f000, 0x00101cfd, 0x836c0580, - 0x00000003, 0x04000005, 0x4a034407, 0x00000007, - 0x0201f000, 0x00101cfd, 0x59a0320c, 0x82183500, - 0x000000ff, 0x59a28c07, 0x0201f800, 0x00020319, - 0x02020000, 0x00101d01, 0x83440580, 0x000007fd, - 0x04000008, 0x0201f800, 0x00104165, 0x04000005, - 0x4a034407, 0x00000009, 0x0201f000, 0x00101cfd, - 0x0201f800, 0x001031a5, 0x04020005, 0x4a034407, - 0x00000002, 0x0201f000, 0x00101cfd, 0x801831c0, - 0x0400000a, 0x412c0800, 0x0201f800, 0x001031a5, - 0x04020005, 0x4a034407, 0x00000002, 0x0201f000, - 0x00101cfd, 0x40065800, 0x4a025c05, 0x00008000, - 0x497a5a05, 0x0201f800, 0x00108972, 0x04020005, - 0x4a034407, 0x00000003, 0x0201f000, 0x00101cfd, - 0x4a01d808, 0x00102723, 0x1c01f000, 0x592c0006, - 0x82000580, 0x01000000, 0x04020005, 0x4a034407, - 0x00000004, 0x0201f000, 0x00101cfd, 0x592c0407, - 0x82002d00, 0x0000ff00, 0x82000500, 0x000000ff, - 0x80000904, 0x80040800, 0x82040480, 0x00000006, - 0x04001003, 0x42000800, 0x00000005, 0x4c500000, - 0x4c540000, 0x4c580000, 0x832ca400, 0x00000007, - 0x4050a800, 0x4004b000, 0x0201f800, 0x0010ae19, - 0x59a00408, 0x59a01208, 0x900811c0, 0x80081540, - 0x59a0040a, 0x59a01a0a, 0x900c19c0, 0x800c1d40, - 0x832c0400, 0x00000007, 0x4c140000, 0x0201f800, - 0x001031d2, 0x5c002800, 0x801429c0, 0x04000003, - 0x4a01d808, 0x00102756, 0x5c00b000, 0x5c00a800, - 0x5c00a000, 0x1c01f000, 0x4031d800, 0x58ef400a, - 0x58ee580c, 0x58ec0002, 0x82000580, 0x00000200, - 0x02000000, 0x00101cf5, 0x812e59c0, 0x02000800, - 0x0010032d, 0x592c0007, 0x82000500, 0xff000000, - 0x80000904, 0x800409c0, 0x02000000, 0x00101cba, - 0x4807c857, 0x82040480, 0x0000000e, 0x04001003, - 0x42000800, 0x0000000d, 0x592e5801, 0x812e59c0, - 0x02000800, 0x0010032d, 0x4c500000, 0x4c540000, - 0x4c580000, 0x832ca400, 0x00000006, 0x4050a800, - 0x4004b000, 0x0201f800, 0x0010ae19, 0x5c00b000, - 0x5c00a800, 0x5c00a000, 0x58ec1006, 0x58ec1807, - 0x832c0400, 0x00000006, 0x0201f000, 0x001031d2, - 0x0201f800, 0x001031a5, 0x04020005, 0x4a034407, - 0x00000002, 0x0201f000, 0x00101cfd, 0x59a00c07, - 0x82040500, 0x0000ff00, 0x840001c0, 0x82001480, - 0x00000007, 0x02021000, 0x00101d01, 0x0c01f001, - 0x0010279b, 0x001027a2, 0x001027a9, 0x001027a9, - 0x001027a9, 0x001027ab, 0x001027b0, 0x42000800, - 0x0000000d, 0x42003800, 0x001027c4, 0x4a034000, - 0x0010b841, 0x0401f013, 0x42000800, 0x0000000d, - 0x42003800, 0x001027c4, 0x4a034000, 0x0010b84e, - 0x0401f00c, 0x0201f000, 0x00101d01, 0x42000800, - 0x00000008, 0x42003800, 0x001027d7, 0x0401f005, - 0x42000800, 0x00000004, 0x42003800, 0x00102821, - 0x59a00208, 0x59a01408, 0x900001c0, 0x80081540, - 0x59a0020a, 0x59a01c0a, 0x900001c0, 0x800c1d40, - 0x832c0400, 0x00000006, 0x4c1c0000, 0x0201f800, - 0x001031c9, 0x5c003800, 0x481dd808, 0x1c01f000, - 0x4031d800, 0x58ef400a, 0x58ee580c, 0x58ec0002, - 0x82000580, 0x00000200, 0x02000000, 0x00101cf5, - 0x4a035019, 0x00000001, 0x4200b000, 0x0000000d, - 0x59a0a800, 0x832ca400, 0x00000006, 0x0201f800, - 0x0010ae19, 0x0201f000, 0x00101cba, 0x4031d800, - 0x58ef400a, 0x58ee580c, 0x58ec0002, 0x82000580, - 0x00000200, 0x02000000, 0x00101cf5, 0x832ca400, - 0x00000006, 0x50500000, 0x82001500, 0x000c0016, - 0x02020000, 0x00101d01, 0x82500c00, 0x00000003, - 0x50040000, 0x82001500, 0x00000001, 0x02020000, - 0x00101d01, 0x50500000, 0x82001500, 0x00000028, - 0x0400001d, 0x82081580, 0x00000028, 0x02020000, - 0x00101d01, 0x80500800, 0x50040000, 0x82001500, - 0x00000013, 0x82081580, 0x00000013, 0x02020000, - 0x00101d01, 0x80040800, 0x50040000, 0x82001500, - 0x00050000, 0x82081580, 0x00050000, 0x02020000, - 0x00101d01, 0x836c0580, 0x00000000, 0x04000012, - 0x599c0019, 0x8c00050e, 0x0402000f, 0x0201f000, - 0x00101d01, 0x80500800, 0x50040000, 0x82001500, - 0x00000013, 0x02020000, 0x00101d01, 0x80040800, - 0x50040000, 0x82001500, 0x00050000, 0x02020000, - 0x00101d01, 0x4200b000, 0x00000008, 0x4200a800, - 0x0010b839, 0x0201f800, 0x0010adef, 0x0201f000, - 0x00101cba, 0x4031d800, 0x58ef400a, 0x58ee580c, - 0x58ec0002, 0x82000580, 0x00000200, 0x02000000, - 0x00101cf5, 0x4200b000, 0x00000004, 0x4200a800, - 0x0010bcc3, 0x832ca400, 0x00000006, 0x0201f800, - 0x0010adef, 0x850e1d50, 0x0201f000, 0x00101cba, - 0x0201f800, 0x001031a5, 0x04020005, 0x4a034407, - 0x00000002, 0x0201f000, 0x00101cfd, 0x832cac00, - 0x00000006, 0x59a00c07, 0x82040500, 0x0000ff00, - 0x840001c0, 0x82001480, 0x00000008, 0x02021000, - 0x00101d01, 0x0c01f001, 0x0010284e, 0x00102851, - 0x00102854, 0x00102854, 0x00102854, 0x00102856, - 0x00102854, 0x0010285e, 0x4200a000, 0x0010b841, - 0x0401f055, 0x4200a000, 0x0010b84e, 0x0401f052, - 0x0201f000, 0x00101d01, 0x4200b000, 0x00000008, - 0x40580800, 0x4200a000, 0x0010b839, 0x0201f800, - 0x0010adef, 0x0401f04d, 0x59a00a0b, 0x4a03420b, - 0x0000001c, 0x82040480, 0x0000001c, 0x02001000, - 0x00101d01, 0x4200b000, 0x0000000f, 0x4178a000, - 0x0201f800, 0x0010adf8, 0x832cac00, 0x00000006, - 0x4200b000, 0x00000004, 0x83a8a400, 0x0000001f, - 0x0201f800, 0x0010adef, 0x836c0580, 0x00000000, - 0x04000007, 0x4200b000, 0x00000004, 0x83a8a400, - 0x00000000, 0x0201f800, 0x0010adef, 0x492f4000, - 0x0201f800, 0x001031a5, 0x04020005, 0x4a034407, - 0x00000002, 0x0201f000, 0x00101cfd, 0x832cac00, - 0x00000006, 0x4200b000, 0x0000000f, 0x4178a000, - 0x0201f800, 0x0010adf8, 0x832cac00, 0x00000007, - 0x4200b000, 0x00000004, 0x83a8a400, 0x00000023, - 0x0201f800, 0x0010adef, 0x492f4001, 0x59a25800, - 0x59a00208, 0x59a01408, 0x900001c0, 0x80081540, - 0x59a0020a, 0x59a01c0a, 0x900001c0, 0x800c1d40, - 0x832c0400, 0x00000006, 0x42000800, 0x0000000f, - 0x0201f800, 0x001031d2, 0x4a01d808, 0x001028b6, - 0x1c01f000, 0x4200b000, 0x0000000d, 0x40580800, - 0x0201f800, 0x0010ae19, 0x59a00208, 0x59a01408, + 0x0201f800, 0x001031dc, 0x4a01d808, 0x00101cb8, + 0x1c01f000, 0x48efc857, 0x59a00208, 0x59a01408, 0x900001c0, 0x80081540, 0x59a0020a, 0x59a01c0a, - 0x900001c0, 0x800c1d40, 0x832c0400, 0x00000006, - 0x0201f000, 0x001031d2, 0x4031d800, 0x58ef400a, - 0x58ec0002, 0x82000580, 0x00000200, 0x02000000, - 0x00101cf5, 0x59a25801, 0x58ec1006, 0x58ec1807, - 0x832c0400, 0x00000006, 0x42000800, 0x0000000d, - 0x0201f000, 0x001031d2, 0x836c0580, 0x00000000, - 0x04020005, 0x4a034407, 0x00000007, 0x0201f000, - 0x00101cfd, 0x59a01407, 0x800811c0, 0x04020017, - 0x59c40801, 0x82040d00, 0x00018000, 0x82040580, - 0x00000000, 0x04020004, 0x4a034407, 0x00000000, - 0x0401f056, 0x82040580, 0x00008000, 0x04020004, - 0x4a034407, 0x00000001, 0x0401f050, 0x82040580, - 0x00010000, 0x02020800, 0x0010032d, 0x4a034407, - 0x00000003, 0x0401f049, 0x59a80073, 0x8c00053e, - 0x0400000d, 0x59a00a08, 0x82040580, 0x00000003, - 0x04000005, 0x82040580, 0x00000002, 0x02020000, - 0x00101d01, 0x42000000, 0x00000003, 0x40000800, - 0x0401f00b, 0x59a8006d, 0x8c000508, 0x04000005, - 0x42000000, 0x00000001, 0x40000800, 0x0401f004, - 0x59a00208, 0x48034002, 0x59a80837, 0x48035037, - 0x599c7819, 0x823c7d00, 0xffff1fff, 0x800000da, - 0x803c7d40, 0x483f3819, 0x0201f800, 0x00101420, - 0x0400000d, 0x0201f800, 0x0010142e, 0x0400000a, - 0x0201f800, 0x0010143c, 0x04000007, 0x0201f800, - 0x0010144a, 0x04000004, 0x48075037, 0x0201f000, - 0x00101d01, 0x82080580, 0x00000002, 0x04020017, - 0x59c40006, 0x84000500, 0x48038806, 0x0201f800, - 0x001063db, 0x497b8880, 0x42000000, 0x0010bc85, - 0x0201f800, 0x0010ad1d, 0x4803c856, 0x850e1d48, - 0x4a038808, 0x00000000, 0x4202d800, 0x00000004, - 0x4a038805, 0x00000001, 0x4a035043, 0x00000001, - 0x0201f800, 0x00100454, 0x0201f000, 0x00101cba, - 0x8d0e1d0e, 0x04000005, 0x4a034407, 0x00000001, - 0x0201f000, 0x00101cfd, 0x836c0580, 0x00000003, - 0x04000005, 0x4a034407, 0x00000007, 0x0201f000, - 0x00101cfd, 0x59a28c07, 0x59a0320c, 0x82183500, - 0x000000ff, 0x0201f800, 0x00020319, 0x02020000, - 0x00101d01, 0x83440580, 0x000007fd, 0x04000008, - 0x0201f800, 0x00104165, 0x04000005, 0x42000800, - 0x00000009, 0x0201f000, 0x00101cfd, 0x0201f800, - 0x001031a5, 0x04020005, 0x4a034407, 0x00000002, - 0x0201f000, 0x00101cfd, 0x497a5a05, 0x4a025c05, - 0x00008000, 0x0201f800, 0x00108987, 0x04020005, - 0x4a034407, 0x00000003, 0x0201f000, 0x00101cfd, - 0x4a01d808, 0x00102963, 0x1c01f000, 0x592c0006, - 0x82000d00, 0x0000ffff, 0x82000500, 0xffff0000, - 0x82000580, 0x01000000, 0x04020005, 0x4a034407, - 0x00000004, 0x0201f000, 0x00101cfd, 0x80040904, + 0x900001c0, 0x800c1d40, 0x59a00407, 0x48034000, + 0x480b4001, 0x480f4002, 0x0201f800, 0x001031af, + 0x04020005, 0x4a034407, 0x00000002, 0x0201f000, + 0x00101d02, 0x42000800, 0x00000010, 0x0201f800, + 0x001031d3, 0x4a01d808, 0x0010269c, 0x1c01f000, + 0x4031d800, 0x58ef400a, 0x58ee580c, 0x58ec0002, + 0x82000580, 0x00000200, 0x02000000, 0x00101cfa, + 0x48efc857, 0x49a3c857, 0x492fc857, 0x592c0a05, + 0x80040910, 0x04020005, 0x4a034407, 0x00000019, + 0x0201f000, 0x00101d02, 0x4805d80b, 0x0401f00a, + 0x4031d800, 0x58ef400a, 0x58ec0002, 0x82000580, + 0x00000200, 0x02000000, 0x00101cfa, 0x48efc857, + 0x49a3c857, 0x48efc857, 0x49a3c857, 0x58ec000b, + 0x80000040, 0x04000012, 0x4801d80b, 0x0201f800, + 0x001031af, 0x04020005, 0x4a034407, 0x00000002, + 0x0201f000, 0x00101d02, 0x42000800, 0x00000010, + 0x58ec1006, 0x58ec1807, 0x0201f800, 0x001031d3, + 0x4a01d808, 0x001026b0, 0x1c01f000, 0x58ee580c, + 0x48efc857, 0x49a3c857, 0x492fc857, 0x492f3004, + 0x592c0405, 0x8400055e, 0x48025c05, 0x4a01d808, + 0x001026da, 0x1c01f000, 0x4d2c0000, 0x58ee580c, + 0x48efc857, 0x49a3c857, 0x492fc857, 0x592c0405, + 0x8400051e, 0x48025c05, 0x59a00000, 0x59a01001, + 0x59a01802, 0x80081400, 0x820c1c40, 0x00000000, + 0x832c0400, 0x00000005, 0x42000800, 0x00000010, + 0x5c025800, 0x0201f000, 0x001031dc, 0x8d0e1d0e, + 0x04000005, 0x4a034407, 0x00000001, 0x0201f000, + 0x00101d02, 0x836c0580, 0x00000003, 0x04000005, + 0x4a034407, 0x00000007, 0x0201f000, 0x00101d02, + 0x59a0320c, 0x82183500, 0x000000ff, 0x59a28c07, + 0x0201f800, 0x00020319, 0x02020000, 0x00101d06, + 0x83440580, 0x000007fd, 0x04000008, 0x0201f800, + 0x00104181, 0x04000005, 0x4a034407, 0x00000009, + 0x0201f000, 0x00101d02, 0x0201f800, 0x001031af, + 0x04020005, 0x4a034407, 0x00000002, 0x0201f000, + 0x00101d02, 0x801831c0, 0x0400000a, 0x412c0800, + 0x0201f800, 0x001031af, 0x04020005, 0x4a034407, + 0x00000002, 0x0201f000, 0x00101d02, 0x40065800, + 0x4a025c05, 0x00008000, 0x497a5a05, 0x0201f800, + 0x00108a2b, 0x04020005, 0x4a034407, 0x00000003, + 0x0201f000, 0x00101d02, 0x4a01d808, 0x0010272d, + 0x1c01f000, 0x592c0006, 0x82000580, 0x01000000, + 0x04020005, 0x4a034407, 0x00000004, 0x0201f000, + 0x00101d02, 0x592c0407, 0x82002d00, 0x0000ff00, + 0x82000500, 0x000000ff, 0x80000904, 0x80040800, + 0x82040480, 0x00000006, 0x04001003, 0x42000800, + 0x00000005, 0x4c500000, 0x4c540000, 0x4c580000, + 0x832ca400, 0x00000007, 0x4050a800, 0x4004b000, + 0x0201f800, 0x0010af0c, 0x59a00408, 0x59a01208, + 0x900811c0, 0x80081540, 0x59a0040a, 0x59a01a0a, + 0x900c19c0, 0x800c1d40, 0x832c0400, 0x00000007, + 0x4c140000, 0x0201f800, 0x001031dc, 0x5c002800, + 0x801429c0, 0x04000003, 0x4a01d808, 0x00102760, + 0x5c00b000, 0x5c00a800, 0x5c00a000, 0x1c01f000, + 0x4031d800, 0x58ef400a, 0x58ee580c, 0x58ec0002, + 0x82000580, 0x00000200, 0x02000000, 0x00101cfa, + 0x812e59c0, 0x02000800, 0x0010032d, 0x592c0007, + 0x82000500, 0xff000000, 0x80000904, 0x800409c0, + 0x02000000, 0x00101cbf, 0x4807c857, 0x82040480, + 0x0000000e, 0x04001003, 0x42000800, 0x0000000d, + 0x592e5801, 0x812e59c0, 0x02000800, 0x0010032d, 0x4c500000, 0x4c540000, 0x4c580000, 0x832ca400, 0x00000006, 0x4050a800, 0x4004b000, 0x0201f800, - 0x0010ae19, 0x5c00b000, 0x5c00a800, 0x5c00a000, + 0x0010af0c, 0x5c00b000, 0x5c00a800, 0x5c00a000, + 0x58ec1006, 0x58ec1807, 0x832c0400, 0x00000006, + 0x0201f000, 0x001031dc, 0x0201f800, 0x001031af, + 0x04020005, 0x4a034407, 0x00000002, 0x0201f000, + 0x00101d02, 0x59a00c07, 0x82040500, 0x0000ff00, + 0x840001c0, 0x82001480, 0x00000007, 0x02021000, + 0x00101d06, 0x0c01f001, 0x001027a5, 0x001027ac, + 0x001027b3, 0x001027b3, 0x001027b3, 0x001027b5, + 0x001027ba, 0x42000800, 0x0000000d, 0x42003800, + 0x001027ce, 0x4a034000, 0x0010b941, 0x0401f013, + 0x42000800, 0x0000000d, 0x42003800, 0x001027ce, + 0x4a034000, 0x0010b94e, 0x0401f00c, 0x0201f000, + 0x00101d06, 0x42000800, 0x00000008, 0x42003800, + 0x001027e1, 0x0401f005, 0x42000800, 0x00000004, + 0x42003800, 0x0010282b, 0x59a00208, 0x59a01408, + 0x900001c0, 0x80081540, 0x59a0020a, 0x59a01c0a, + 0x900001c0, 0x800c1d40, 0x832c0400, 0x00000006, + 0x4c1c0000, 0x0201f800, 0x001031d3, 0x5c003800, + 0x481dd808, 0x1c01f000, 0x4031d800, 0x58ef400a, + 0x58ee580c, 0x58ec0002, 0x82000580, 0x00000200, + 0x02000000, 0x00101cfa, 0x4a035019, 0x00000001, + 0x4200b000, 0x0000000d, 0x59a0a800, 0x832ca400, + 0x00000006, 0x0201f800, 0x0010af0c, 0x0201f000, + 0x00101cbf, 0x4031d800, 0x58ef400a, 0x58ee580c, + 0x58ec0002, 0x82000580, 0x00000200, 0x02000000, + 0x00101cfa, 0x832ca400, 0x00000006, 0x50500000, + 0x82001500, 0x000c0016, 0x02020000, 0x00101d06, + 0x82500c00, 0x00000003, 0x50040000, 0x82001500, + 0x00000001, 0x02020000, 0x00101d06, 0x50500000, + 0x82001500, 0x00000028, 0x0400001d, 0x82081580, + 0x00000028, 0x02020000, 0x00101d06, 0x80500800, + 0x50040000, 0x82001500, 0x00000013, 0x82081580, + 0x00000013, 0x02020000, 0x00101d06, 0x80040800, + 0x50040000, 0x82001500, 0x00050000, 0x82081580, + 0x00050000, 0x02020000, 0x00101d06, 0x836c0580, + 0x00000000, 0x04000012, 0x599c0019, 0x8c00050e, + 0x0402000f, 0x0201f000, 0x00101d06, 0x80500800, + 0x50040000, 0x82001500, 0x00000013, 0x02020000, + 0x00101d06, 0x80040800, 0x50040000, 0x82001500, + 0x00050000, 0x02020000, 0x00101d06, 0x4200b000, + 0x00000008, 0x4200a800, 0x0010b939, 0x0201f800, + 0x0010aee2, 0x0201f000, 0x00101cbf, 0x4031d800, + 0x58ef400a, 0x58ee580c, 0x58ec0002, 0x82000580, + 0x00000200, 0x02000000, 0x00101cfa, 0x4200b000, + 0x00000004, 0x4200a800, 0x0010bdc3, 0x832ca400, + 0x00000006, 0x0201f800, 0x0010aee2, 0x850e1d50, + 0x0201f000, 0x00101cbf, 0x0201f800, 0x001031af, + 0x04020005, 0x4a034407, 0x00000002, 0x0201f000, + 0x00101d02, 0x832cac00, 0x00000006, 0x59a00c07, + 0x82040500, 0x0000ff00, 0x840001c0, 0x82001480, + 0x00000008, 0x02021000, 0x00101d06, 0x0c01f001, + 0x00102858, 0x0010285b, 0x0010285e, 0x0010285e, + 0x0010285e, 0x00102860, 0x0010285e, 0x00102868, + 0x4200a000, 0x0010b941, 0x0401f055, 0x4200a000, + 0x0010b94e, 0x0401f052, 0x0201f000, 0x00101d06, + 0x4200b000, 0x00000008, 0x40580800, 0x4200a000, + 0x0010b939, 0x0201f800, 0x0010aee2, 0x0401f04d, + 0x59a00a0b, 0x4a03420b, 0x0000001c, 0x82040480, + 0x0000001c, 0x02001000, 0x00101d06, 0x4200b000, + 0x0000000f, 0x4178a000, 0x0201f800, 0x0010aeeb, + 0x832cac00, 0x00000006, 0x4200b000, 0x00000004, + 0x83a8a400, 0x0000001f, 0x0201f800, 0x0010aee2, + 0x836c0580, 0x00000000, 0x04000007, 0x4200b000, + 0x00000004, 0x83a8a400, 0x00000000, 0x0201f800, + 0x0010aee2, 0x492f4000, 0x0201f800, 0x001031af, + 0x04020005, 0x4a034407, 0x00000002, 0x0201f000, + 0x00101d02, 0x832cac00, 0x00000006, 0x4200b000, + 0x0000000f, 0x4178a000, 0x0201f800, 0x0010aeeb, + 0x832cac00, 0x00000007, 0x4200b000, 0x00000004, + 0x83a8a400, 0x00000023, 0x0201f800, 0x0010aee2, + 0x492f4001, 0x59a25800, 0x59a00208, 0x59a01408, + 0x900001c0, 0x80081540, 0x59a0020a, 0x59a01c0a, + 0x900001c0, 0x800c1d40, 0x832c0400, 0x00000006, + 0x42000800, 0x0000000f, 0x0201f800, 0x001031dc, + 0x4a01d808, 0x001028c0, 0x1c01f000, 0x4200b000, + 0x0000000d, 0x40580800, 0x0201f800, 0x0010af0c, 0x59a00208, 0x59a01408, 0x900001c0, 0x80081540, 0x59a0020a, 0x59a01c0a, 0x900001c0, 0x800c1d40, - 0x832c0400, 0x00000006, 0x0201f000, 0x001031d2, - 0x496fc857, 0x836c0580, 0x00000000, 0x04000005, - 0x4a034407, 0x0000001a, 0x0201f000, 0x00101cfd, - 0x0201f800, 0x00104716, 0x02020800, 0x00103916, - 0x42000800, 0x00000020, 0x59a00408, 0x59a01208, - 0x900811c0, 0x80081540, 0x59a0040a, 0x59a01a0a, - 0x900c19c0, 0x800c1d40, 0x419c0000, 0x49a3c857, - 0x0201f800, 0x001031c9, 0x4a01d808, 0x001029a5, - 0x1c01f000, 0x4833c857, 0x59a80073, 0x8c00053e, - 0x02020800, 0x0010a5c1, 0x4031d800, 0x58ef400a, - 0x58ec0002, 0x82000580, 0x00000200, 0x02000000, - 0x00101cf5, 0x599c0200, 0x800001c0, 0x02000000, - 0x00101d01, 0x59a8006d, 0x8c000504, 0x04020003, - 0x8c000506, 0x04000004, 0x599c0019, 0x8400050c, - 0x48033819, 0x0201f800, 0x001090a8, 0x59a8006d, - 0x8c000502, 0x04000004, 0x599c0017, 0x84000508, - 0x48033817, 0x850e1d20, 0x599c0017, 0x8c000508, - 0x04000003, 0x850e1d60, 0x0401f004, 0x8c00050a, - 0x02020000, 0x00101d01, 0x4803c857, 0x8c000504, - 0x04020004, 0x59c408a3, 0x84040d7a, 0x480788a3, - 0x8c000502, 0x04020004, 0x59c408a3, 0x84040d08, - 0x480788a3, 0x599c0c02, 0x8c000500, 0x04020004, - 0x8c000516, 0x04000012, 0x0401f001, 0x82041480, - 0x0000007f, 0x02021000, 0x00101d01, 0x82041400, - 0x00101b0a, 0x50081000, 0x82081500, 0x000000ff, - 0x8c000500, 0x04020006, 0x480b500f, 0x42000800, - 0x00000003, 0x0201f800, 0x00106134, 0x599c0019, - 0x42000800, 0x00001000, 0x50040800, 0x82040c80, - 0x24320001, 0x04001003, 0x84000546, 0x48033819, - 0x8c000506, 0x0400000f, 0x4a03b805, 0x90000000, - 0x59a81007, 0x8c081516, 0x0402000a, 0x42000800, - 0x00007600, 0x4a000805, 0xd0000000, 0x42000800, - 0x0010b895, 0x58041401, 0x84081542, 0x48080c01, - 0x8c00050e, 0x0402000b, 0x59a80805, 0x8c040d14, - 0x04000008, 0x42000800, 0x0010b839, 0x50040800, - 0x82040d00, 0x00000028, 0x02020000, 0x00101d01, - 0x82000500, 0x00000030, 0x04000003, 0x80000108, - 0x0401f003, 0x42000000, 0x00000002, 0x48039040, - 0x42000800, 0x00000002, 0x82000400, 0x00102b07, - 0x50001000, 0x0201f800, 0x00106134, 0x599c0201, - 0x82000c80, 0x00000100, 0x02001000, 0x00101d01, - 0x82000c80, 0x00000841, 0x02021000, 0x00101d01, - 0x82000500, 0x00000007, 0x02020000, 0x00101d01, - 0x599c0401, 0x80000540, 0x02000000, 0x00101d01, - 0x599c0409, 0x599c0c07, 0x80040c80, 0x02021000, - 0x00101d01, 0x80000040, 0x02000000, 0x00101d01, - 0x599c0209, 0x599c0a07, 0x80040c80, 0x02021000, - 0x00101d01, 0x80000040, 0x02000000, 0x00101d01, - 0x0201f800, 0x00104b9e, 0x0201f800, 0x001044c0, - 0x599c0201, 0x48035004, 0x0201f800, 0x00101081, - 0x599c020a, 0x800001c0, 0x04000003, 0x48035031, - 0x0401f003, 0x4a035031, 0x000000c8, 0x8d0e1d20, - 0x04000004, 0x0201f800, 0x00105973, 0x417a5000, - 0x599c0003, 0x599c0804, 0x9c0001c0, 0x9c0409c0, - 0x48035002, 0x48075003, 0x599c1017, 0x8c08151c, - 0x04000006, 0x599c0005, 0x599c0806, 0x9c0001c0, - 0x9c0409c0, 0x0401f003, 0x82000500, 0xf0ffffff, - 0x48035000, 0x48075001, 0x42001000, 0x0010b841, - 0x48001000, 0x48041001, 0x42001000, 0x0010b84e, - 0x48001000, 0x48041001, 0x59a8006d, 0x8c000508, - 0x04020017, 0x8c00050a, 0x04020023, 0x599c1019, - 0x82081500, 0x0000e000, 0x82080580, 0x00000000, - 0x0402000c, 0x4a035037, 0x00000000, 0x42000000, - 0x00000001, 0x0201f800, 0x0010169d, 0x42000000, - 0x00000001, 0x0201f800, 0x00101623, 0x0401f030, - 0x82080580, 0x00002000, 0x0402000c, 0x4a035037, - 0x00000001, 0x42000000, 0x00000000, 0x0201f800, - 0x0010169d, 0x42000000, 0x00000000, 0x0201f800, - 0x00101623, 0x0401f022, 0x82080580, 0x00004000, - 0x04020006, 0x4a035037, 0x00000002, 0x4a035043, - 0x00000001, 0x0401f01a, 0x82080580, 0x00006000, - 0x02020000, 0x00101d01, 0x59a80873, 0x8c040d3e, - 0x04020009, 0x59a80847, 0x82040d80, 0x01391077, - 0x04020005, 0x59e00813, 0x8c040d00, 0x02020000, - 0x00101d01, 0x4a035037, 0x00000003, 0x42000000, - 0x00000002, 0x0201f800, 0x0010169d, 0x42000000, - 0x00000002, 0x0201f800, 0x00101623, 0x599c1019, - 0x82081500, 0x0000e000, 0x599c0019, 0x8c000520, - 0x0400000d, 0x42000000, 0x00000004, 0x42000800, - 0x00000040, 0x0201f800, 0x0010173f, 0x42000000, - 0x00000010, 0x42000800, 0x000000c0, 0x0201f800, - 0x0010173f, 0x4a035013, 0x0000aaaa, 0x599c1018, - 0x82081500, 0x00000030, 0x59a8006a, 0x80000540, - 0x0400000c, 0x82080580, 0x00000000, 0x02000000, - 0x00101d01, 0x599c1018, 0x82081500, 0xffffffcf, - 0x82081540, 0x00000010, 0x480b3818, 0x0401f010, - 0x82080d80, 0x00000000, 0x04000007, 0x82080d80, - 0x00000010, 0x0400000a, 0x82080d80, 0x00000020, - 0x04020002, 0x48075013, 0x0201f800, 0x0010326c, - 0x04000008, 0x4803c856, 0x850e1d46, 0x0201f800, - 0x00101401, 0x59a8001f, 0x80040540, 0x4803501f, - 0x49f3c857, 0x42001000, 0x00104632, 0x0201f800, - 0x001057cd, 0x42001000, 0x00104621, 0x0201f800, - 0x0010591a, 0x4a038805, 0xffffffff, 0x4a03c014, - 0x00400040, 0x4a03c013, 0x00400000, 0x0201f800, - 0x00104092, 0x59a0001e, 0x84000540, 0x4803401e, - 0x49f3c857, 0x0201f000, 0x00101cba, 0x00000018, - 0x0000000c, 0x00000018, 0x00000020, 0x836c0580, - 0x00000000, 0x04020005, 0x42000800, 0x00000007, - 0x0201f000, 0x00101cfd, 0x42000800, 0x00000020, + 0x832c0400, 0x00000006, 0x0201f000, 0x001031dc, + 0x4031d800, 0x58ef400a, 0x58ec0002, 0x82000580, + 0x00000200, 0x02000000, 0x00101cfa, 0x59a25801, + 0x58ec1006, 0x58ec1807, 0x832c0400, 0x00000006, + 0x42000800, 0x0000000d, 0x0201f000, 0x001031dc, + 0x836c0580, 0x00000000, 0x04020005, 0x4a034407, + 0x00000007, 0x0201f000, 0x00101d02, 0x59a01407, + 0x800811c0, 0x04020017, 0x59c40801, 0x82040d00, + 0x00018000, 0x82040580, 0x00000000, 0x04020004, + 0x4a034407, 0x00000000, 0x0401f056, 0x82040580, + 0x00008000, 0x04020004, 0x4a034407, 0x00000001, + 0x0401f050, 0x82040580, 0x00010000, 0x02020800, + 0x0010032d, 0x4a034407, 0x00000003, 0x0401f049, + 0x59a80073, 0x8c00053e, 0x0400000d, 0x59a00a08, + 0x82040580, 0x00000003, 0x04000005, 0x82040580, + 0x00000002, 0x02020000, 0x00101d06, 0x42000000, + 0x00000003, 0x40000800, 0x0401f00b, 0x59a8006d, + 0x8c000508, 0x04000005, 0x42000000, 0x00000001, + 0x40000800, 0x0401f004, 0x59a00208, 0x48034002, + 0x59a80837, 0x48035037, 0x599c7819, 0x823c7d00, + 0xffff1fff, 0x800000da, 0x803c7d40, 0x483f3819, + 0x0201f800, 0x00101421, 0x0400000d, 0x0201f800, + 0x0010142f, 0x0400000a, 0x0201f800, 0x0010143d, + 0x04000007, 0x0201f800, 0x0010144b, 0x04000004, + 0x48075037, 0x0201f000, 0x00101d06, 0x82080580, + 0x00000002, 0x04020017, 0x59c40006, 0x84000500, + 0x48038806, 0x0201f800, 0x00106480, 0x497b8880, + 0x42000000, 0x0010bd85, 0x0201f800, 0x0010ae10, + 0x4803c856, 0x850e1d48, 0x4a038808, 0x00000000, + 0x4202d800, 0x00000004, 0x4a038805, 0x00000001, + 0x4a035043, 0x00000001, 0x0201f800, 0x00100454, + 0x0201f000, 0x00101cbf, 0x8d0e1d0e, 0x04000005, + 0x4a034407, 0x00000001, 0x0201f000, 0x00101d02, + 0x836c0580, 0x00000003, 0x04000005, 0x4a034407, + 0x00000007, 0x0201f000, 0x00101d02, 0x59a28c07, + 0x59a0320c, 0x82183500, 0x000000ff, 0x0201f800, + 0x00020319, 0x02020000, 0x00101d06, 0x83440580, + 0x000007fd, 0x04000008, 0x0201f800, 0x00104181, + 0x04000005, 0x42000800, 0x00000009, 0x0201f000, + 0x00101d02, 0x0201f800, 0x001031af, 0x04020005, + 0x4a034407, 0x00000002, 0x0201f000, 0x00101d02, + 0x497a5a05, 0x4a025c05, 0x00008000, 0x0201f800, + 0x00108a40, 0x04020005, 0x4a034407, 0x00000003, + 0x0201f000, 0x00101d02, 0x4a01d808, 0x0010296d, + 0x1c01f000, 0x592c0006, 0x82000d00, 0x0000ffff, + 0x82000500, 0xffff0000, 0x82000580, 0x01000000, + 0x04020005, 0x4a034407, 0x00000004, 0x0201f000, + 0x00101d02, 0x80040904, 0x4c500000, 0x4c540000, + 0x4c580000, 0x832ca400, 0x00000006, 0x4050a800, + 0x4004b000, 0x0201f800, 0x0010af0c, 0x5c00b000, + 0x5c00a800, 0x5c00a000, 0x59a00208, 0x59a01408, + 0x900001c0, 0x80081540, 0x59a0020a, 0x59a01c0a, + 0x900001c0, 0x800c1d40, 0x832c0400, 0x00000006, + 0x0201f000, 0x001031dc, 0x496fc857, 0x836c0580, + 0x00000000, 0x04000005, 0x4a034407, 0x0000001a, + 0x0201f000, 0x00101d02, 0x0201f800, 0x00104755, + 0x02020800, 0x00103929, 0x42000800, 0x00000020, 0x59a00408, 0x59a01208, 0x900811c0, 0x80081540, 0x59a0040a, 0x59a01a0a, 0x900c19c0, 0x800c1d40, - 0x419c0000, 0x0201f000, 0x001031d2, 0x8d0e1d0e, - 0x04000005, 0x4a034407, 0x00000001, 0x0201f000, - 0x00101cfd, 0x0201f800, 0x00104716, 0x04020005, - 0x4a034407, 0x00000016, 0x0201f000, 0x00101cfd, - 0x59a80056, 0x8c000500, 0x04000011, 0x4a034407, - 0x00000000, 0x42000800, 0x00000020, 0x59a00408, - 0x59a01208, 0x900811c0, 0x80081540, 0x59a0040a, - 0x59a01a0a, 0x900c19c0, 0x800c1d40, 0x42000000, - 0x0010c1c7, 0x0201f000, 0x001031d2, 0x4a034407, - 0x00000001, 0x4200b000, 0x00000020, 0x4200a800, - 0x0010c1c7, 0x4200a000, 0xffffffff, 0x4450a800, - 0x8054a800, 0x8058b040, 0x040207fd, 0x4d440000, - 0x4d340000, 0x42028800, 0xffffffff, 0x42002000, - 0xffffffff, 0x42003000, 0x00000001, 0x42003800, - 0x00000001, 0x42001800, 0x0010c1c7, 0x59a8100f, - 0x82081500, 0x000000ff, 0x40180000, 0x0c01f001, - 0x00102b60, 0x00102b63, 0x00102b67, 0x00102b6b, - 0x82102500, 0xffffff00, 0x0401f014, 0x82102500, - 0xffff00ff, 0x840811c0, 0x0401f010, 0x82102500, - 0xff00ffff, 0x900811c0, 0x0401f00c, 0x82102500, - 0x00ffffff, 0x9c0801c0, 0x80102540, 0x44101800, - 0x42003000, 0xffffffff, 0x42002000, 0xffffffff, - 0x800c1800, 0x0401f003, 0x40080000, 0x80102540, - 0x81468800, 0x83442c80, 0x0000007f, 0x04021014, - 0x4c080000, 0x4c0c0000, 0x4c180000, 0x4c1c0000, - 0x0201f800, 0x00020319, 0x5c003800, 0x5c003000, - 0x5c001800, 0x5c001000, 0x040207f2, 0x0201f800, - 0x00104178, 0x040207ef, 0x80183000, 0x801c3800, - 0x59341202, 0x40180000, 0x0c01f7ce, 0x82100580, - 0xffffffff, 0x04000002, 0x44101800, 0x42001800, - 0x0010c1c7, 0x500c0000, 0x82000500, 0xffffff00, - 0x801c0540, 0x44001800, 0x5c026800, 0x5c028800, + 0x419c0000, 0x49a3c857, 0x0201f800, 0x001031d3, + 0x4a01d808, 0x001029af, 0x1c01f000, 0x4833c857, + 0x59a80073, 0x8c00053e, 0x02020800, 0x0010a6b4, + 0x4031d800, 0x58ef400a, 0x58ec0002, 0x82000580, + 0x00000200, 0x02000000, 0x00101cfa, 0x599c0200, + 0x800001c0, 0x02000000, 0x00101d06, 0x59a8006d, + 0x8c000504, 0x04020003, 0x8c000506, 0x04000004, + 0x599c0019, 0x8400050c, 0x48033819, 0x0201f800, + 0x00109161, 0x59a8006d, 0x8c000502, 0x04000004, + 0x599c0017, 0x84000508, 0x48033817, 0x850e1d20, + 0x599c0017, 0x8c000508, 0x04000003, 0x850e1d60, + 0x0401f008, 0x8c00050a, 0x02020000, 0x00101d06, + 0x59a80806, 0x8c040d16, 0x02020000, 0x00101d06, + 0x4803c857, 0x8c000504, 0x04020004, 0x59c408a3, + 0x84040d7a, 0x480788a3, 0x8c000502, 0x04020004, + 0x59c408a3, 0x84040d08, 0x480788a3, 0x599c0c02, + 0x8c000500, 0x04020004, 0x8c000516, 0x04000012, + 0x0401f001, 0x82041480, 0x0000007f, 0x02021000, + 0x00101d06, 0x82041400, 0x00101b0f, 0x50081000, + 0x82081500, 0x000000ff, 0x8c000500, 0x04020006, + 0x480b500f, 0x42000800, 0x00000003, 0x0201f800, + 0x001061d9, 0x599c0019, 0x42000800, 0x00001000, + 0x50040800, 0x82040c80, 0x24320001, 0x04001003, + 0x84000546, 0x48033819, 0x8c000506, 0x0400000f, + 0x4a03b805, 0x90000000, 0x59a81007, 0x8c081516, + 0x0402000a, 0x42000800, 0x00007600, 0x4a000805, + 0xd0000000, 0x42000800, 0x0010b995, 0x58041401, + 0x84081542, 0x48080c01, 0x8c00050e, 0x04020007, + 0x4c000000, 0x0201f800, 0x00103314, 0x5c000000, + 0x02020000, 0x00101d06, 0x82000500, 0x00000030, + 0x04000003, 0x80000108, 0x0401f003, 0x42000000, + 0x00000002, 0x48039040, 0x42000800, 0x00000002, + 0x82000400, 0x00102b11, 0x50001000, 0x0201f800, + 0x001061d9, 0x599c0201, 0x82000c80, 0x00000100, + 0x02001000, 0x00101d06, 0x82000c80, 0x00000841, + 0x02021000, 0x00101d06, 0x82000500, 0x00000007, + 0x02020000, 0x00101d06, 0x599c0401, 0x80000540, + 0x02000000, 0x00101d06, 0x599c0409, 0x599c0c07, + 0x80040c80, 0x02021000, 0x00101d06, 0x80000040, + 0x02000000, 0x00101d06, 0x599c0209, 0x599c0a07, + 0x80040c80, 0x02021000, 0x00101d06, 0x80000040, + 0x02000000, 0x00101d06, 0x0201f800, 0x00104bdd, + 0x0201f800, 0x001044ff, 0x599c0201, 0x48035004, + 0x0201f800, 0x00101082, 0x599c020a, 0x800001c0, + 0x04000003, 0x48035031, 0x0401f003, 0x4a035031, + 0x000000c8, 0x8d0e1d20, 0x04000004, 0x0201f800, + 0x00105a18, 0x417a5000, 0x599c0003, 0x599c0804, + 0x9c0001c0, 0x9c0409c0, 0x48035002, 0x48075003, + 0x599c1017, 0x8c08151c, 0x04000006, 0x599c0005, + 0x599c0806, 0x9c0001c0, 0x9c0409c0, 0x0401f003, + 0x82000500, 0xf0ffffff, 0x48035000, 0x48075001, + 0x42001000, 0x0010b941, 0x48001000, 0x48041001, + 0x42001000, 0x0010b94e, 0x48001000, 0x48041001, + 0x59a8006d, 0x8c000508, 0x04020017, 0x8c00050a, + 0x04020023, 0x599c1019, 0x82081500, 0x0000e000, + 0x82080580, 0x00000000, 0x0402000c, 0x4a035037, + 0x00000000, 0x42000000, 0x00000001, 0x0201f800, + 0x0010169e, 0x42000000, 0x00000001, 0x0201f800, + 0x00101624, 0x0401f030, 0x82080580, 0x00002000, + 0x0402000c, 0x4a035037, 0x00000001, 0x42000000, + 0x00000000, 0x0201f800, 0x0010169e, 0x42000000, + 0x00000000, 0x0201f800, 0x00101624, 0x0401f022, + 0x82080580, 0x00004000, 0x04020006, 0x4a035037, + 0x00000002, 0x4a035043, 0x00000001, 0x0401f01a, + 0x82080580, 0x00006000, 0x02020000, 0x00101d06, + 0x59a80873, 0x8c040d3e, 0x04020009, 0x59a80847, + 0x82040d80, 0x01391077, 0x04020005, 0x59e00813, + 0x8c040d00, 0x02020000, 0x00101d06, 0x4a035037, + 0x00000003, 0x42000000, 0x00000002, 0x0201f800, + 0x0010169e, 0x42000000, 0x00000002, 0x0201f800, + 0x00101624, 0x599c1019, 0x82081500, 0x0000e000, + 0x599c0019, 0x8c000520, 0x0400000d, 0x42000000, + 0x00000004, 0x42000800, 0x00000040, 0x0201f800, + 0x00101740, 0x42000000, 0x00000010, 0x42000800, + 0x000000c0, 0x0201f800, 0x00101740, 0x4a035013, + 0x0000aaaa, 0x599c1018, 0x82081500, 0x00000030, + 0x59a8006a, 0x80000540, 0x0400000c, 0x82080580, + 0x00000000, 0x02000000, 0x00101d06, 0x599c1018, + 0x82081500, 0xffffffcf, 0x82081540, 0x00000010, + 0x480b3818, 0x0401f010, 0x82080d80, 0x00000000, + 0x04000007, 0x82080d80, 0x00000010, 0x0400000a, + 0x82080d80, 0x00000020, 0x04020002, 0x48075013, + 0x0201f800, 0x00103276, 0x04000008, 0x4803c856, + 0x850e1d46, 0x0201f800, 0x00101402, 0x59a8001f, + 0x80040540, 0x4803501f, 0x49f3c857, 0x42001000, + 0x00104671, 0x0201f800, 0x00105872, 0x42001000, + 0x00104660, 0x0201f800, 0x001059bf, 0x4a038805, + 0xffffffff, 0x4a03c014, 0x00400040, 0x4a03c013, + 0x00400000, 0x0201f800, 0x001040ac, 0x59a0001e, + 0x84000540, 0x4803401e, 0x49f3c857, 0x0201f000, + 0x00101cbf, 0x00000018, 0x0000000c, 0x00000018, + 0x00000020, 0x836c0580, 0x00000000, 0x04020005, + 0x42000800, 0x00000007, 0x0201f000, 0x00101d02, 0x42000800, 0x00000020, 0x59a00408, 0x59a01208, 0x900811c0, 0x80081540, 0x59a0040a, 0x59a01a0a, - 0x900c19c0, 0x800c1d40, 0x42000000, 0x0010c1c7, - 0x0201f000, 0x001031d2, 0x59a28c07, 0x59a0020c, - 0x8c000500, 0x0400000e, 0x59a01209, 0x59a00409, - 0x82000500, 0x000000ff, 0x900001c0, 0x80081540, - 0x41784000, 0x0201f800, 0x001040f8, 0x04000008, - 0x48034407, 0x0201f000, 0x00101d01, 0x0201f800, - 0x00020319, 0x02020000, 0x00101d01, 0x0201f800, - 0x001031a5, 0x04020005, 0x4a034407, 0x00000002, - 0x0201f000, 0x00101cfd, 0x59a0020c, 0x8c000500, - 0x04000005, 0x0201f800, 0x00104178, 0x02020000, - 0x00103276, 0x59a0020c, 0x8c000502, 0x04000019, - 0x83440480, 0x000007f0, 0x04021016, 0x0201f800, - 0x00104181, 0x04020013, 0x497a5a05, 0x4a025c05, - 0x00008000, 0x0201f800, 0x00108958, 0x04020005, - 0x4a034407, 0x00000003, 0x0201f000, 0x00101cfd, - 0x4a01d808, 0x00102be3, 0x1c01f000, 0x59a28c07, - 0x0201f800, 0x00020319, 0x02020000, 0x00101d01, - 0x4c580000, 0x4c500000, 0x4c540000, 0x4200b000, - 0x0000000a, 0x4134a000, 0x832e5c00, 0x00000002, - 0x412ca800, 0x0201f800, 0x0010adef, 0x832cac00, - 0x00000006, 0x4054a000, 0x4200b000, 0x00000004, - 0x0201f800, 0x0010ae19, 0x5c00a800, 0x5c00a000, - 0x5c00b000, 0x592c0802, 0x82040500, 0x00ff00ff, - 0x900001c0, 0x82041500, 0xff00ff00, 0x80080540, - 0x48025802, 0x592c0801, 0x82040500, 0x00ff00ff, - 0x900001c0, 0x82041500, 0xff00ff00, 0x80080540, - 0x48025801, 0x42000800, 0x0000000a, 0x59a00408, - 0x59a01208, 0x900811c0, 0x80081540, 0x59a0040a, - 0x59a01a0a, 0x900c19c0, 0x800c1d40, 0x412c0000, - 0x0201f000, 0x001031d2, 0x496fc857, 0x496f4407, - 0x59a80873, 0x8c040d3e, 0x02000000, 0x00101cba, - 0x59a81073, 0x82081500, 0x00000097, 0x59a81874, - 0x59340400, 0x82000580, 0x00000404, 0x04020002, - 0x84081546, 0x480b4408, 0x0201f000, 0x00101cba, - 0x59a28c07, 0x0201f800, 0x00020319, 0x02020000, - 0x00101d01, 0x836c0580, 0x00000003, 0x04000005, - 0x4a034407, 0x00000007, 0x0201f000, 0x00101cfd, - 0x83340c00, 0x00000006, 0x59a0020c, 0x8c000500, - 0x04000003, 0x83340c00, 0x00000008, 0x58040001, - 0x4803440a, 0x900001c0, 0x4803420a, 0x50040000, - 0x48034408, 0x900001c0, 0x48034208, 0x59340200, - 0x48034407, 0x0201f000, 0x00101cba, 0x8d0e1d0e, - 0x04000005, 0x4a034407, 0x00000001, 0x0201f000, - 0x00101cfd, 0x59a0220c, 0x8c102500, 0x0402002e, - 0x8c102506, 0x04020006, 0x59a03209, 0x82180480, - 0x00000003, 0x02021000, 0x00101d01, 0x59a28c07, - 0x0201f800, 0x00020319, 0x02020000, 0x00101d01, - 0x0201f800, 0x00104165, 0x04000005, 0x4a034407, - 0x00000009, 0x0201f000, 0x00101cfd, 0x0201f800, - 0x001031a5, 0x04020005, 0x4a034407, 0x00000002, - 0x0201f000, 0x00101cfd, 0x59a0220c, 0x8c102506, - 0x04000004, 0x59343002, 0x82183500, 0x00ffffff, + 0x900c19c0, 0x800c1d40, 0x419c0000, 0x0201f000, + 0x001031dc, 0x8d0e1d0e, 0x04000005, 0x4a034407, + 0x00000001, 0x0201f000, 0x00101d02, 0x0201f800, + 0x00104755, 0x04020005, 0x4a034407, 0x00000016, + 0x0201f000, 0x00101d02, 0x59a80056, 0x8c000500, + 0x04000011, 0x4a034407, 0x00000000, 0x42000800, + 0x00000020, 0x59a00408, 0x59a01208, 0x900811c0, + 0x80081540, 0x59a0040a, 0x59a01a0a, 0x900c19c0, + 0x800c1d40, 0x42000000, 0x0010c2c7, 0x0201f000, + 0x001031dc, 0x4a034407, 0x00000001, 0x4200b000, + 0x00000020, 0x4200a800, 0x0010c2c7, 0x4200a000, + 0xffffffff, 0x4450a800, 0x8054a800, 0x8058b040, + 0x040207fd, 0x4d440000, 0x4d340000, 0x42028800, + 0xffffffff, 0x42002000, 0xffffffff, 0x42003000, + 0x00000001, 0x42003800, 0x00000001, 0x42001800, + 0x0010c2c7, 0x59a8100f, 0x82081500, 0x000000ff, + 0x40180000, 0x0c01f001, 0x00102b6a, 0x00102b6d, + 0x00102b71, 0x00102b75, 0x82102500, 0xffffff00, + 0x0401f014, 0x82102500, 0xffff00ff, 0x840811c0, + 0x0401f010, 0x82102500, 0xff00ffff, 0x900811c0, + 0x0401f00c, 0x82102500, 0x00ffffff, 0x9c0801c0, + 0x80102540, 0x44101800, 0x42003000, 0xffffffff, + 0x42002000, 0xffffffff, 0x800c1800, 0x0401f003, + 0x40080000, 0x80102540, 0x81468800, 0x83442c80, + 0x0000007f, 0x04021014, 0x4c080000, 0x4c0c0000, + 0x4c180000, 0x4c1c0000, 0x0201f800, 0x00020319, + 0x5c003800, 0x5c003000, 0x5c001800, 0x5c001000, + 0x040207f2, 0x0201f800, 0x00104194, 0x040207ef, + 0x80183000, 0x801c3800, 0x59341202, 0x40180000, + 0x0c01f7ce, 0x82100580, 0xffffffff, 0x04000002, + 0x44101800, 0x42001800, 0x0010c2c7, 0x500c0000, + 0x82000500, 0xffffff00, 0x801c0540, 0x44001800, + 0x5c026800, 0x5c028800, 0x42000800, 0x00000020, + 0x59a00408, 0x59a01208, 0x900811c0, 0x80081540, + 0x59a0040a, 0x59a01a0a, 0x900c19c0, 0x800c1d40, + 0x42000000, 0x0010c2c7, 0x0201f000, 0x001031dc, + 0x59a28c07, 0x59a0020c, 0x8c000500, 0x0400000e, + 0x59a01209, 0x59a00409, 0x82000500, 0x000000ff, + 0x900001c0, 0x80081540, 0x41784000, 0x0201f800, + 0x00104112, 0x04000008, 0x48034407, 0x0201f000, + 0x00101d06, 0x0201f800, 0x00020319, 0x02020000, + 0x00101d06, 0x0201f800, 0x001031af, 0x04020005, + 0x4a034407, 0x00000002, 0x0201f000, 0x00101d02, + 0x59a0020c, 0x8c000500, 0x04000005, 0x0201f800, + 0x00104194, 0x02020000, 0x00103280, 0x59a0020c, + 0x8c000502, 0x04000019, 0x83440480, 0x000007f0, + 0x04021016, 0x0201f800, 0x0010419d, 0x04020013, 0x497a5a05, 0x4a025c05, 0x00008000, 0x0201f800, - 0x0010891a, 0x04020005, 0x4a034407, 0x00000003, - 0x0201f000, 0x00101cfd, 0x4a01d808, 0x00102cd7, + 0x00108a11, 0x04020005, 0x4a034407, 0x00000003, + 0x0201f000, 0x00101d02, 0x4a01d808, 0x00102bed, 0x1c01f000, 0x59a28c07, 0x0201f800, 0x00020319, - 0x02020000, 0x00101d01, 0x0201f800, 0x00104165, - 0x04000005, 0x4a034407, 0x00000009, 0x0201f000, - 0x00101cfd, 0x0201f800, 0x001031a5, 0x04020005, - 0x4a034407, 0x00000002, 0x0201f000, 0x00101cfd, - 0x497a5a05, 0x4a025c05, 0x00008000, 0x0201f800, - 0x001031a5, 0x04020005, 0x4a034407, 0x00000002, - 0x0201f000, 0x00101cfd, 0x592e5800, 0x0201f800, - 0x0010892f, 0x04020005, 0x4a034407, 0x00000003, - 0x0201f000, 0x00101cfd, 0x4a01d808, 0x00102ca9, - 0x1c01f000, 0x592c2806, 0x82140d80, 0x01000000, - 0x04020005, 0x4a034407, 0x00000004, 0x0201f000, - 0x00101cfd, 0x42000800, 0x00000008, 0x59a00208, - 0x59a01408, 0x900001c0, 0x80081540, 0x59a0020a, - 0x59a01c0a, 0x900001c0, 0x800c1d40, 0x832c0400, - 0x00000006, 0x0201f800, 0x001031d2, 0x8c142d00, - 0x04000003, 0x4a01d808, 0x00102cc4, 0x1c01f000, - 0x4031d800, 0x58ef400a, 0x58ee580d, 0x58ec0002, - 0x82000580, 0x00000200, 0x02000000, 0x00101cf5, - 0x812e59c0, 0x02000800, 0x0010032d, 0x42000800, - 0x00000008, 0x832c0400, 0x00000006, 0x58ec1006, - 0x58ec1807, 0x0201f000, 0x001031d2, 0x592c0006, - 0x82000580, 0x01000000, 0x04020005, 0x4a034407, - 0x00000004, 0x0201f000, 0x00101cfd, 0x59a00208, - 0x59a01408, 0x900001c0, 0x80081540, 0x59a0020a, - 0x59a01c0a, 0x900001c0, 0x800c1d40, 0x42000800, - 0x00000006, 0x832c0400, 0x00000007, 0x0201f000, - 0x001031d2, 0x59a00a0b, 0x800409c0, 0x02000000, - 0x00101d01, 0x82040480, 0x00000081, 0x04001003, - 0x42000800, 0x00000080, 0x59c40085, 0x59881004, - 0x80081400, 0x480b1004, 0x497b8885, 0x59c400b1, - 0x48031022, 0x59c400b2, 0x48031021, 0x59c400a2, - 0x48031023, 0x598810b7, 0x598800b8, 0x80081400, - 0x598800b9, 0x80081400, 0x598800ba, 0x80081400, - 0x5988011d, 0x80081400, 0x598800bb, 0x80081400, - 0x480b1024, 0x59a00208, 0x59a01408, 0x900001c0, - 0x80081540, 0x59a0020a, 0x59a01c0a, 0x900001c0, - 0x800c1d40, 0x83880400, 0x00000000, 0x0201f800, - 0x001031d2, 0x4a01d808, 0x00102d1c, 0x1c01f000, - 0x4031d800, 0x58ef400a, 0x58ec0002, 0x82000580, - 0x00000200, 0x02000000, 0x00101cf5, 0x59a0020c, - 0x8c000500, 0x04000008, 0x83880400, 0x00000000, - 0x4803c840, 0x4a03c842, 0x00000006, 0x04011000, - 0x497b8885, 0x4a034208, 0x00000080, 0x0201f000, - 0x00101cba, 0x8d0e1d0e, 0x04000005, 0x4a034407, - 0x00000001, 0x0201f000, 0x00101cfd, 0x0201f800, - 0x001031a5, 0x04020005, 0x4a034407, 0x00000002, - 0x0201f000, 0x00101cfd, 0x497a5a05, 0x4a025c05, - 0x00008000, 0x59a00407, 0x800001c0, 0x02000000, - 0x00101d01, 0x82001580, 0x000000ff, 0x04000005, - 0x82001480, 0x00000004, 0x02021000, 0x00101d01, - 0x40001000, 0x0201f800, 0x00101a3d, 0x04020005, - 0x4a034407, 0x00000003, 0x0201f000, 0x00101cfd, - 0x4a01d808, 0x00102d57, 0x1c01f000, 0x592c0006, - 0x82000580, 0x01000000, 0x02020000, 0x00101cba, - 0x4a034407, 0x00000004, 0x0201f000, 0x00101cfd, - 0x59a01407, 0x8c081508, 0x04020007, 0x8d0e1d0e, - 0x04000005, 0x4a034407, 0x00000001, 0x0201f000, - 0x00101cfd, 0x59a01c08, 0x820c0480, 0x00001000, - 0x02021000, 0x00101d01, 0x497b2804, 0x497b2805, - 0x497b2826, 0x497b2827, 0x497b2829, 0x497b282a, - 0x497b282c, 0x497b282d, 0x4803c856, 0x850e1d06, - 0x8c081500, 0x04000005, 0x4803c856, 0x830e1d40, - 0x00000011, 0x0401f004, 0x8c081506, 0x04000002, - 0x850e1d42, 0x850e1d0a, 0x4202d800, 0x00000001, - 0x82081500, 0x000000e0, 0x8008010a, 0x0c020038, - 0x0201f800, 0x00104716, 0x0402000b, 0x4a035014, - 0x00000001, 0x4a035013, 0x0000aaaa, 0x0201f800, - 0x00104670, 0x0401f01f, 0x4a035014, 0x00000000, - 0x0401f7f9, 0x497b5013, 0x0201f800, 0x00103916, - 0x0201f800, 0x0010610d, 0x0201f800, 0x001063db, - 0x0201f800, 0x001060fa, 0x59a00a08, 0x480788a7, - 0x59c400a3, 0x82000500, 0xfeffffff, 0x82000540, - 0x80018000, 0x40000800, 0x84040d20, 0x480388a3, - 0x480788a3, 0x497b5032, 0x42000800, 0x0000002d, - 0x42001000, 0x0010399e, 0x0201f800, 0x001057a4, - 0x59a00408, 0x800000c2, 0x800008c4, 0x8005d400, - 0x42000000, 0x0000ffff, 0x0201f800, 0x00104716, - 0x04000003, 0x59a00208, 0x80000110, 0x0201f800, - 0x001032ad, 0x0201f000, 0x00101cba, 0x00102d88, - 0x00102d8b, 0x00102d95, 0x00101d01, 0x00102d92, - 0x00101d01, 0x00101d01, 0x00101d01, 0x836c0580, + 0x02020000, 0x00101d06, 0x4c580000, 0x4c500000, + 0x4c540000, 0x4200b000, 0x0000000a, 0x4134a000, + 0x832e5c00, 0x00000002, 0x412ca800, 0x0201f800, + 0x0010aee2, 0x832cac00, 0x00000006, 0x4054a000, + 0x4200b000, 0x00000004, 0x0201f800, 0x0010af0c, + 0x5c00a800, 0x5c00a000, 0x5c00b000, 0x592c0802, + 0x82040500, 0x00ff00ff, 0x900001c0, 0x82041500, + 0xff00ff00, 0x80080540, 0x48025802, 0x592c0801, + 0x82040500, 0x00ff00ff, 0x900001c0, 0x82041500, + 0xff00ff00, 0x80080540, 0x48025801, 0x42000800, + 0x0000000a, 0x59a00408, 0x59a01208, 0x900811c0, + 0x80081540, 0x59a0040a, 0x59a01a0a, 0x900c19c0, + 0x800c1d40, 0x412c0000, 0x0201f000, 0x001031dc, + 0x496fc857, 0x496f4407, 0x59a80873, 0x8c040d3e, + 0x02000000, 0x00101cbf, 0x59a81073, 0x82081500, + 0x00000097, 0x59a81874, 0x59340400, 0x82000580, + 0x00000404, 0x04020002, 0x84081546, 0x480b4408, + 0x0201f000, 0x00101cbf, 0x59a28c07, 0x0201f800, + 0x00020319, 0x02020000, 0x00101d06, 0x836c0580, 0x00000003, 0x04000005, 0x4a034407, 0x00000007, - 0x0201f000, 0x00101cfd, 0x59a00408, 0x59a00a08, - 0x900409c0, 0x80040d40, 0x4805d806, 0x59a0040a, - 0x59a00a0a, 0x900409c0, 0x80040d40, 0x4805d807, - 0x4a01d801, 0x00000000, 0x0401fbcb, 0x04020005, - 0x4a034407, 0x00000002, 0x0201f000, 0x00101cfd, - 0x417a8800, 0x497b4001, 0x832c0400, 0x00000006, - 0x48034002, 0x59a00407, 0x8c000504, 0x0402009a, - 0x4c5c0000, 0x4c600000, 0x4c640000, 0x4178b800, - 0x59a0c407, 0x59a0c802, 0x0201f800, 0x00020319, - 0x0402002c, 0x0201f800, 0x00104165, 0x04000004, - 0x0201f800, 0x001040bb, 0x04020026, 0x8c60c53e, - 0x04020022, 0x8c60c500, 0x04000008, 0x59340009, - 0x4400c800, 0x8064c800, 0x59340008, 0x4400c800, - 0x8064c800, 0x0401f007, 0x59340007, 0x4400c800, - 0x8064c800, 0x59340006, 0x4400c800, 0x8064c800, - 0x83440580, 0x000007fe, 0x0400000d, 0x83440580, - 0x000007fc, 0x0400000a, 0x0201f800, 0x00104178, - 0x04000003, 0x85468d5e, 0x0401f005, 0x0201f800, - 0x00104087, 0x04020002, 0x85468d5e, 0x4544c800, - 0x85468d1e, 0x8064c800, 0x825cbc00, 0x0000000c, - 0x81468800, 0x83440480, 0x000007f0, 0x0400100e, - 0x8c60c506, 0x04000029, 0x83440580, 0x000007f0, - 0x04020004, 0x42028800, 0x000007fe, 0x0401f006, - 0x83440580, 0x000007ff, 0x04020020, 0x42028800, - 0x000007fc, 0x825c0580, 0x0000003c, 0x040207bf, - 0x59a00001, 0x805c0400, 0x48034001, 0x8c60c53e, - 0x04020007, 0x59a00a0b, 0x800409c0, 0x04000006, - 0x80040480, 0x04021004, 0x8460c57e, 0x4178b800, - 0x0401f7b2, 0x49474000, 0x485dd805, 0x59a00002, - 0x4801d803, 0x40ec1000, 0x0201f800, 0x00020016, - 0x4a01d808, 0x00102e78, 0x5c00c800, 0x5c00c000, - 0x5c00b800, 0x1c01f000, 0x8c60c53e, 0x0402001a, - 0x805cb9c0, 0x04000024, 0x59a00001, 0x805c0400, - 0x48034001, 0x59a00a0b, 0x800409c0, 0x04000005, - 0x80040480, 0x04021003, 0x4178b800, 0x0401f00e, - 0x59a00801, 0x48074407, 0x485dd805, 0x59a00002, - 0x4801d803, 0x4a01d808, 0x00101cb3, 0x40ec1000, - 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x0201f000, - 0x00020016, 0x59a00001, 0x805c0c00, 0x59a0020b, - 0x80040480, 0x48034208, 0x4a034407, 0x0000000a, - 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x0201f000, - 0x00101cfd, 0x59a00801, 0x48074407, 0x5c00c800, - 0x5c00c000, 0x5c00b800, 0x0201f000, 0x00101cba, - 0x4031d800, 0x58ef400a, 0x58ec0002, 0x82000580, - 0x00000200, 0x02000000, 0x00101cf5, 0x59a28800, - 0x0401f768, 0x4c5c0000, 0x4c600000, 0x4c640000, - 0x4178b800, 0x59a0c407, 0x59a0c802, 0x0201f800, - 0x00020319, 0x04020031, 0x0201f800, 0x00104165, - 0x04000004, 0x0201f800, 0x001040bb, 0x0402002b, - 0x8c60c53e, 0x04020027, 0x83440580, 0x000007fe, - 0x04000011, 0x83440580, 0x000007fc, 0x0400000e, - 0x0201f800, 0x00104178, 0x04000005, 0x59340403, - 0x8400055e, 0x48026c03, 0x0401f007, 0x0201f800, - 0x00104087, 0x04020004, 0x59340403, 0x8400055e, - 0x48026c03, 0x4134a000, 0x4064a800, 0x4200b000, - 0x00000006, 0x0201f800, 0x0010adef, 0x59340007, - 0x4400a800, 0x59340006, 0x4800a801, 0x59340009, - 0x4800a802, 0x59340008, 0x4800a803, 0x59340403, - 0x8400051e, 0x48026c03, 0x8264cc00, 0x0000000a, - 0x825cbc00, 0x00000028, 0x81468800, 0x83440480, - 0x000007f0, 0x0400100e, 0x8c60c506, 0x0400002a, + 0x0201f000, 0x00101d02, 0x83340c00, 0x00000006, + 0x59a0020c, 0x8c000500, 0x04000003, 0x83340c00, + 0x00000008, 0x58040001, 0x4803440a, 0x900001c0, + 0x4803420a, 0x50040000, 0x48034408, 0x900001c0, + 0x48034208, 0x59340200, 0x48034407, 0x0201f000, + 0x00101cbf, 0x8d0e1d0e, 0x04000005, 0x4a034407, + 0x00000001, 0x0201f000, 0x00101d02, 0x59a0220c, + 0x8c102500, 0x0402002e, 0x8c102506, 0x04020006, + 0x59a03209, 0x82180480, 0x00000003, 0x02021000, + 0x00101d06, 0x59a28c07, 0x0201f800, 0x00020319, + 0x02020000, 0x00101d06, 0x0201f800, 0x00104181, + 0x04000005, 0x4a034407, 0x00000009, 0x0201f000, + 0x00101d02, 0x0201f800, 0x001031af, 0x04020005, + 0x4a034407, 0x00000002, 0x0201f000, 0x00101d02, + 0x59a0220c, 0x8c102506, 0x04000004, 0x59343002, + 0x82183500, 0x00ffffff, 0x497a5a05, 0x4a025c05, + 0x00008000, 0x0201f800, 0x001089d3, 0x04020005, + 0x4a034407, 0x00000003, 0x0201f000, 0x00101d02, + 0x4a01d808, 0x00102ce1, 0x1c01f000, 0x59a28c07, + 0x0201f800, 0x00020319, 0x02020000, 0x00101d06, + 0x0201f800, 0x00104181, 0x04000005, 0x4a034407, + 0x00000009, 0x0201f000, 0x00101d02, 0x0201f800, + 0x001031af, 0x04020005, 0x4a034407, 0x00000002, + 0x0201f000, 0x00101d02, 0x497a5a05, 0x4a025c05, + 0x00008000, 0x0201f800, 0x001031af, 0x04020005, + 0x4a034407, 0x00000002, 0x0201f000, 0x00101d02, + 0x592e5800, 0x0201f800, 0x001089e8, 0x04020005, + 0x4a034407, 0x00000003, 0x0201f000, 0x00101d02, + 0x4a01d808, 0x00102cb3, 0x1c01f000, 0x592c2806, + 0x82140d80, 0x01000000, 0x04020005, 0x4a034407, + 0x00000004, 0x0201f000, 0x00101d02, 0x42000800, + 0x00000008, 0x59a00208, 0x59a01408, 0x900001c0, + 0x80081540, 0x59a0020a, 0x59a01c0a, 0x900001c0, + 0x800c1d40, 0x832c0400, 0x00000006, 0x0201f800, + 0x001031dc, 0x8c142d00, 0x04000003, 0x4a01d808, + 0x00102cce, 0x1c01f000, 0x4031d800, 0x58ef400a, + 0x58ee580d, 0x58ec0002, 0x82000580, 0x00000200, + 0x02000000, 0x00101cfa, 0x812e59c0, 0x02000800, + 0x0010032d, 0x42000800, 0x00000008, 0x832c0400, + 0x00000006, 0x58ec1006, 0x58ec1807, 0x0201f000, + 0x001031dc, 0x592c0006, 0x82000580, 0x01000000, + 0x04020005, 0x4a034407, 0x00000004, 0x0201f000, + 0x00101d02, 0x59a00208, 0x59a01408, 0x900001c0, + 0x80081540, 0x59a0020a, 0x59a01c0a, 0x900001c0, + 0x800c1d40, 0x42000800, 0x00000006, 0x832c0400, + 0x00000007, 0x0201f000, 0x001031dc, 0x59a00a0b, + 0x800409c0, 0x02000000, 0x00101d06, 0x82040480, + 0x00000081, 0x04001003, 0x42000800, 0x00000080, + 0x59c40085, 0x59881004, 0x80081400, 0x480b1004, + 0x497b8885, 0x59c400b1, 0x48031022, 0x59c400b2, + 0x48031021, 0x59c400a2, 0x48031023, 0x598810b7, + 0x598800b8, 0x80081400, 0x598800b9, 0x80081400, + 0x598800ba, 0x80081400, 0x5988011d, 0x80081400, + 0x598800bb, 0x80081400, 0x480b1024, 0x59a00208, + 0x59a01408, 0x900001c0, 0x80081540, 0x59a0020a, + 0x59a01c0a, 0x900001c0, 0x800c1d40, 0x83880400, + 0x00000000, 0x0201f800, 0x001031dc, 0x4a01d808, + 0x00102d26, 0x1c01f000, 0x4031d800, 0x58ef400a, + 0x58ec0002, 0x82000580, 0x00000200, 0x02000000, + 0x00101cfa, 0x59a0020c, 0x8c000500, 0x04000008, + 0x83880400, 0x00000000, 0x4803c840, 0x4a03c842, + 0x00000006, 0x04011000, 0x497b8885, 0x4a034208, + 0x00000080, 0x0201f000, 0x00101cbf, 0x8d0e1d0e, + 0x04000005, 0x4a034407, 0x00000001, 0x0201f000, + 0x00101d02, 0x0201f800, 0x001031af, 0x04020005, + 0x4a034407, 0x00000002, 0x0201f000, 0x00101d02, + 0x497a5a05, 0x4a025c05, 0x00008000, 0x59a00407, + 0x800001c0, 0x02000000, 0x00101d06, 0x82001580, + 0x000000ff, 0x04000005, 0x82001480, 0x00000004, + 0x02021000, 0x00101d06, 0x40001000, 0x0201f800, + 0x00101a3e, 0x04020005, 0x4a034407, 0x00000003, + 0x0201f000, 0x00101d02, 0x4a01d808, 0x00102d61, + 0x1c01f000, 0x592c0006, 0x82000580, 0x01000000, + 0x02020000, 0x00101cbf, 0x4a034407, 0x00000004, + 0x0201f000, 0x00101d02, 0x59a01407, 0x8c081508, + 0x04020007, 0x8d0e1d0e, 0x04000005, 0x4a034407, + 0x00000001, 0x0201f000, 0x00101d02, 0x59a01c08, + 0x820c0480, 0x00001000, 0x02021000, 0x00101d06, + 0x497b2804, 0x497b2805, 0x497b2826, 0x497b2827, + 0x497b2829, 0x497b282a, 0x497b282c, 0x497b282d, + 0x4803c856, 0x850e1d06, 0x8c081500, 0x04000005, + 0x4803c856, 0x830e1d40, 0x00000011, 0x0401f004, + 0x8c081506, 0x04000002, 0x850e1d42, 0x850e1d0a, + 0x4202d800, 0x00000001, 0x82081500, 0x000000e0, + 0x8008010a, 0x0c020038, 0x0201f800, 0x00104755, + 0x0402000b, 0x4a035014, 0x00000001, 0x4a035013, + 0x0000aaaa, 0x0201f800, 0x001046af, 0x0401f01f, + 0x4a035014, 0x00000000, 0x0401f7f9, 0x497b5013, + 0x0201f800, 0x00103929, 0x0201f800, 0x001061b2, + 0x0201f800, 0x00106480, 0x0201f800, 0x0010619f, + 0x59a00a08, 0x480788a7, 0x59c400a3, 0x82000500, + 0xfeffffff, 0x82000540, 0x80018000, 0x40000800, + 0x84040d20, 0x480388a3, 0x480788a3, 0x497b5032, + 0x42000800, 0x0000002d, 0x42001000, 0x001039b1, + 0x0201f800, 0x00105849, 0x59a00408, 0x800000c2, + 0x800008c4, 0x8005d400, 0x42000000, 0x0000ffff, + 0x0201f800, 0x00104755, 0x04000003, 0x59a00208, + 0x80000110, 0x0201f800, 0x001032b7, 0x0201f000, + 0x00101cbf, 0x00102d92, 0x00102d95, 0x00102d9f, + 0x00101d06, 0x00102d9c, 0x00101d06, 0x00101d06, + 0x00101d06, 0x836c0580, 0x00000003, 0x04000005, + 0x4a034407, 0x00000007, 0x0201f000, 0x00101d02, + 0x59a00408, 0x59a00a08, 0x900409c0, 0x80040d40, + 0x4805d806, 0x59a0040a, 0x59a00a0a, 0x900409c0, + 0x80040d40, 0x4805d807, 0x4a01d801, 0x00000000, + 0x0401fbcb, 0x04020005, 0x4a034407, 0x00000002, + 0x0201f000, 0x00101d02, 0x417a8800, 0x497b4001, + 0x832c0400, 0x00000006, 0x48034002, 0x59a00407, + 0x8c000504, 0x0402009a, 0x4c5c0000, 0x4c600000, + 0x4c640000, 0x4178b800, 0x59a0c407, 0x59a0c802, + 0x0201f800, 0x00020319, 0x0402002c, 0x0201f800, + 0x00104181, 0x04000004, 0x0201f800, 0x001040d5, + 0x04020026, 0x8c60c53e, 0x04020022, 0x8c60c500, + 0x04000008, 0x59340009, 0x4400c800, 0x8064c800, + 0x59340008, 0x4400c800, 0x8064c800, 0x0401f007, + 0x59340007, 0x4400c800, 0x8064c800, 0x59340006, + 0x4400c800, 0x8064c800, 0x83440580, 0x000007fe, + 0x0400000d, 0x83440580, 0x000007fc, 0x0400000a, + 0x0201f800, 0x00104194, 0x04000003, 0x85468d5e, + 0x0401f005, 0x0201f800, 0x001040a1, 0x04020002, + 0x85468d5e, 0x4544c800, 0x85468d1e, 0x8064c800, + 0x825cbc00, 0x0000000c, 0x81468800, 0x83440480, + 0x000007f0, 0x0400100e, 0x8c60c506, 0x04000029, 0x83440580, 0x000007f0, 0x04020004, 0x42028800, 0x000007fe, 0x0401f006, 0x83440580, 0x000007ff, - 0x04020021, 0x42028800, 0x000007fc, 0x825c0580, - 0x00000028, 0x04000002, 0x0401f7b9, 0x59a00001, - 0x805c0400, 0x48034001, 0x8c60c53e, 0x04020007, - 0x59a00a0b, 0x800409c0, 0x04000006, 0x80040480, - 0x04021004, 0x8460c57e, 0x4178b800, 0x0401f7ac, - 0x49474000, 0x485dd805, 0x59a00002, 0x4801d803, - 0x40ec1000, 0x0201f800, 0x00020016, 0x4a01d808, - 0x00102f17, 0x5c00c800, 0x5c00c000, 0x5c00b800, - 0x1c01f000, 0x8c60c53e, 0x0402001a, 0x805cb9c0, - 0x04000024, 0x59a00001, 0x805c0400, 0x48034001, - 0x59a00a0b, 0x800409c0, 0x04000005, 0x80040480, - 0x04021003, 0x4178b800, 0x0401f00e, 0x59a00801, - 0x48074407, 0x485dd805, 0x59a00002, 0x4801d803, - 0x4a01d808, 0x00101cb3, 0x40ec1000, 0x5c00c800, - 0x5c00c000, 0x5c00b800, 0x0201f000, 0x00020016, - 0x59a00001, 0x805c0c00, 0x59a0020b, 0x80040480, - 0x48034208, 0x4a034407, 0x0000000a, 0x5c00c800, - 0x5c00c000, 0x5c00b800, 0x0201f000, 0x00101cfd, - 0x59a00801, 0x48074407, 0x5c00c800, 0x5c00c000, - 0x5c00b800, 0x0201f000, 0x00101cba, 0x4031d800, - 0x58ef400a, 0x58ec0002, 0x82000580, 0x00000200, - 0x02000000, 0x00101cf5, 0x59a28800, 0x0401f762, - 0x42002800, 0x0000007e, 0x59a00c07, 0x59a01208, - 0x59a01c08, 0x59a0220a, 0x82040500, 0x0000ff00, - 0x840001c0, 0x82003480, 0x00000020, 0x02001000, - 0x00101d01, 0x80140480, 0x02001000, 0x00101d01, - 0x82040500, 0x000000ff, 0x82003480, 0x00000020, - 0x02001000, 0x00101d01, 0x80140480, 0x02001000, - 0x00101d01, 0x82080500, 0x0000ff00, 0x840001c0, - 0x82003480, 0x00000020, 0x02001000, 0x00101d01, - 0x80140480, 0x02001000, 0x00101d01, 0x82080500, - 0x000000ff, 0x82003480, 0x00000020, 0x02001000, - 0x00101d01, 0x80140480, 0x02001000, 0x00101d01, - 0x820c0500, 0x0000ff00, 0x840001c0, 0x82003480, - 0x00000020, 0x02001000, 0x00101d01, 0x80140480, - 0x02001000, 0x00101d01, 0x820c0500, 0x000000ff, - 0x82003480, 0x00000020, 0x02001000, 0x00101d01, - 0x80140480, 0x02001000, 0x00101d01, 0x82100500, - 0x0000ff00, 0x840001c0, 0x82003480, 0x00000020, - 0x02001000, 0x00101d01, 0x80140480, 0x02001000, - 0x00101d01, 0x82100500, 0x000000ff, 0x82003480, - 0x00000020, 0x02001000, 0x00101d01, 0x80140480, - 0x02001000, 0x00101d01, 0x900401c0, 0x80080d40, - 0x900c01c0, 0x80101d40, 0x83a83400, 0x0000002d, - 0x44043000, 0x80183000, 0x440c3000, 0x0201f000, - 0x00101cba, 0x0401fa28, 0x04020005, 0x4a034407, - 0x00000002, 0x0201f000, 0x00101cfd, 0x42000800, - 0x0000000c, 0x0401f84f, 0x4a01d808, 0x00102f89, - 0x1c01f000, 0x4031d800, 0x58ee580c, 0x58ef400a, + 0x04020020, 0x42028800, 0x000007fc, 0x825c0580, + 0x0000003c, 0x040207bf, 0x59a00001, 0x805c0400, + 0x48034001, 0x8c60c53e, 0x04020007, 0x59a00a0b, + 0x800409c0, 0x04000006, 0x80040480, 0x04021004, + 0x8460c57e, 0x4178b800, 0x0401f7b2, 0x49474000, + 0x485dd805, 0x59a00002, 0x4801d803, 0x40ec1000, + 0x0201f800, 0x00020016, 0x4a01d808, 0x00102e82, + 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x1c01f000, + 0x8c60c53e, 0x0402001a, 0x805cb9c0, 0x04000024, + 0x59a00001, 0x805c0400, 0x48034001, 0x59a00a0b, + 0x800409c0, 0x04000005, 0x80040480, 0x04021003, + 0x4178b800, 0x0401f00e, 0x59a00801, 0x48074407, + 0x485dd805, 0x59a00002, 0x4801d803, 0x4a01d808, + 0x00101cb8, 0x40ec1000, 0x5c00c800, 0x5c00c000, + 0x5c00b800, 0x0201f000, 0x00020016, 0x59a00001, + 0x805c0c00, 0x59a0020b, 0x80040480, 0x48034208, + 0x4a034407, 0x0000000a, 0x5c00c800, 0x5c00c000, + 0x5c00b800, 0x0201f000, 0x00101d02, 0x59a00801, + 0x48074407, 0x5c00c800, 0x5c00c000, 0x5c00b800, + 0x0201f000, 0x00101cbf, 0x4031d800, 0x58ef400a, 0x58ec0002, 0x82000580, 0x00000200, 0x02000000, - 0x00101cf5, 0x832ca400, 0x00000005, 0x4200b000, - 0x0000000c, 0x40c8a800, 0x0201f800, 0x0010adef, - 0x58c80200, 0x80000540, 0x04000030, 0x58c80400, - 0x82000500, 0xfffffffb, 0x0402002c, 0x58c80401, - 0x80000540, 0x04000029, 0x82000480, 0x0000ff01, - 0x04021026, 0x58c80202, 0x82000480, 0x0000005c, - 0x04001022, 0x0201f800, 0x00105c3d, 0x58c80c08, - 0x58c80204, 0x80040480, 0x0400101c, 0x58c80204, - 0x82000480, 0x00000005, 0x04021018, 0x58c80205, - 0x58c80c08, 0x80040902, 0x80040480, 0x04001013, - 0x58c80c08, 0x0201f800, 0x00105b8c, 0x04000017, - 0x0201f800, 0x00105a4d, 0x0402000e, 0x4979940b, - 0x59c408a3, 0x82040d40, 0x00000002, 0x480788a3, - 0x58c80202, 0x48030804, 0x0201f800, 0x00105a2f, - 0x0201f000, 0x00101cba, 0x0201f000, 0x00101d01, - 0x0201f800, 0x00105c8f, 0x0201f800, 0x00105c9c, - 0x0201f800, 0x00105b7f, 0x0201f000, 0x00101cfd, - 0x4c000000, 0x59a01208, 0x59a00408, 0x900811c0, - 0x80081540, 0x59a01a0a, 0x59a0040a, 0x900c19c0, - 0x800c1d40, 0x5c000000, 0x0401f1eb, 0x59840000, - 0x82000580, 0x00000000, 0x04000050, 0x59840002, - 0x8c000504, 0x0400004d, 0x84000546, 0x48030802, - 0x0201f800, 0x00105b7f, 0x59c408a3, 0x82040d00, - 0xfffffffd, 0x480788a3, 0x4c5c0000, 0x4200b800, - 0x0010af80, 0x505e6800, 0x813669c0, 0x04000008, - 0x5936600e, 0x813261c0, 0x04000005, 0x0201f800, - 0x00105b70, 0x02000800, 0x00105d48, 0x805cb800, - 0x825c0580, 0x0010b770, 0x040207f3, 0x59866003, - 0x813261c0, 0x0400000b, 0x59300407, 0x82000580, - 0x00000009, 0x02020800, 0x0010032d, 0x5930b800, - 0x0201f800, 0x00105b55, 0x405e6000, 0x0401f7f5, - 0x497b0803, 0x4200b800, 0x0010b86d, 0x505e6000, - 0x813261c0, 0x04000011, 0x59300407, 0x82000580, - 0x00000009, 0x0402000d, 0x59300203, 0x82000580, - 0x00000004, 0x04020009, 0x5932680a, 0x813669c0, - 0x02020800, 0x0010032d, 0x0201f800, 0x00100bd4, - 0x0201f800, 0x00105b55, 0x4578b800, 0x805cb800, - 0x825c0580, 0x0010b875, 0x040207e9, 0x42000800, - 0x0010b86b, 0x49780801, 0x49780800, 0x0201f800, - 0x00105c8f, 0x0201f800, 0x00105c9c, 0x5c00b800, - 0x0201f800, 0x00105a48, 0x0201f000, 0x00101cba, - 0x836c0580, 0x00000003, 0x04000005, 0x4a034407, - 0x00000007, 0x0201f000, 0x00101cfd, 0x59a00408, - 0x59a00a08, 0x900409c0, 0x80040d40, 0x4805d806, - 0x59a0040a, 0x59a00a0a, 0x900409c0, 0x80040d40, - 0x4805d807, 0x4a01d801, 0x00000000, 0x0401f95e, + 0x00101cfa, 0x59a28800, 0x0401f768, 0x4c5c0000, + 0x4c600000, 0x4c640000, 0x4178b800, 0x59a0c407, + 0x59a0c802, 0x0201f800, 0x00020319, 0x04020031, + 0x0201f800, 0x00104181, 0x04000004, 0x0201f800, + 0x001040d5, 0x0402002b, 0x8c60c53e, 0x04020027, + 0x83440580, 0x000007fe, 0x04000011, 0x83440580, + 0x000007fc, 0x0400000e, 0x0201f800, 0x00104194, + 0x04000005, 0x59340403, 0x8400055e, 0x48026c03, + 0x0401f007, 0x0201f800, 0x001040a1, 0x04020004, + 0x59340403, 0x8400055e, 0x48026c03, 0x4134a000, + 0x4064a800, 0x4200b000, 0x00000006, 0x0201f800, + 0x0010aee2, 0x59340007, 0x4400a800, 0x59340006, + 0x4800a801, 0x59340009, 0x4800a802, 0x59340008, + 0x4800a803, 0x59340403, 0x8400051e, 0x48026c03, + 0x8264cc00, 0x0000000a, 0x825cbc00, 0x00000028, + 0x81468800, 0x83440480, 0x000007f0, 0x0400100e, + 0x8c60c506, 0x0400002a, 0x83440580, 0x000007f0, + 0x04020004, 0x42028800, 0x000007fe, 0x0401f006, + 0x83440580, 0x000007ff, 0x04020021, 0x42028800, + 0x000007fc, 0x825c0580, 0x00000028, 0x04000002, + 0x0401f7b9, 0x59a00001, 0x805c0400, 0x48034001, + 0x8c60c53e, 0x04020007, 0x59a00a0b, 0x800409c0, + 0x04000006, 0x80040480, 0x04021004, 0x8460c57e, + 0x4178b800, 0x0401f7ac, 0x49474000, 0x485dd805, + 0x59a00002, 0x4801d803, 0x40ec1000, 0x0201f800, + 0x00020016, 0x4a01d808, 0x00102f21, 0x5c00c800, + 0x5c00c000, 0x5c00b800, 0x1c01f000, 0x8c60c53e, + 0x0402001a, 0x805cb9c0, 0x04000024, 0x59a00001, + 0x805c0400, 0x48034001, 0x59a00a0b, 0x800409c0, + 0x04000005, 0x80040480, 0x04021003, 0x4178b800, + 0x0401f00e, 0x59a00801, 0x48074407, 0x485dd805, + 0x59a00002, 0x4801d803, 0x4a01d808, 0x00101cb8, + 0x40ec1000, 0x5c00c800, 0x5c00c000, 0x5c00b800, + 0x0201f000, 0x00020016, 0x59a00001, 0x805c0c00, + 0x59a0020b, 0x80040480, 0x48034208, 0x4a034407, + 0x0000000a, 0x5c00c800, 0x5c00c000, 0x5c00b800, + 0x0201f000, 0x00101d02, 0x59a00801, 0x48074407, + 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x0201f000, + 0x00101cbf, 0x4031d800, 0x58ef400a, 0x58ec0002, + 0x82000580, 0x00000200, 0x02000000, 0x00101cfa, + 0x59a28800, 0x0401f762, 0x42002800, 0x0000007e, + 0x59a00c07, 0x59a01208, 0x59a01c08, 0x59a0220a, + 0x82040500, 0x0000ff00, 0x840001c0, 0x82003480, + 0x00000020, 0x02001000, 0x00101d06, 0x80140480, + 0x02001000, 0x00101d06, 0x82040500, 0x000000ff, + 0x82003480, 0x00000020, 0x02001000, 0x00101d06, + 0x80140480, 0x02001000, 0x00101d06, 0x82080500, + 0x0000ff00, 0x840001c0, 0x82003480, 0x00000020, + 0x02001000, 0x00101d06, 0x80140480, 0x02001000, + 0x00101d06, 0x82080500, 0x000000ff, 0x82003480, + 0x00000020, 0x02001000, 0x00101d06, 0x80140480, + 0x02001000, 0x00101d06, 0x820c0500, 0x0000ff00, + 0x840001c0, 0x82003480, 0x00000020, 0x02001000, + 0x00101d06, 0x80140480, 0x02001000, 0x00101d06, + 0x820c0500, 0x000000ff, 0x82003480, 0x00000020, + 0x02001000, 0x00101d06, 0x80140480, 0x02001000, + 0x00101d06, 0x82100500, 0x0000ff00, 0x840001c0, + 0x82003480, 0x00000020, 0x02001000, 0x00101d06, + 0x80140480, 0x02001000, 0x00101d06, 0x82100500, + 0x000000ff, 0x82003480, 0x00000020, 0x02001000, + 0x00101d06, 0x80140480, 0x02001000, 0x00101d06, + 0x900401c0, 0x80080d40, 0x900c01c0, 0x80101d40, + 0x83a83400, 0x0000002d, 0x44043000, 0x80183000, + 0x440c3000, 0x0201f000, 0x00101cbf, 0x0401fa28, 0x04020005, 0x4a034407, 0x00000002, 0x0201f000, - 0x00101cfd, 0x417a8800, 0x497b4001, 0x832c0400, - 0x00000005, 0x48034002, 0x4c5c0000, 0x4c600000, - 0x4c640000, 0x4178b800, 0x4178c800, 0x59a0c002, - 0x41440000, 0x81ac0400, 0x50026800, 0x813669c0, - 0x0400000d, 0x0201f800, 0x00104165, 0x0402000a, - 0x8c64cd3e, 0x04020006, 0x59340002, 0x4800c000, - 0x4944c001, 0x8260c400, 0x00000002, 0x825cbc00, - 0x00000008, 0x81468800, 0x83440480, 0x00000800, - 0x04021021, 0x825c0480, 0x00000040, 0x04021002, - 0x0401f7e8, 0x59a00001, 0x805c0400, 0x48034001, - 0x8c64cd3e, 0x04000003, 0x4178b800, 0x0401f7e1, - 0x59a00a0b, 0x800409c0, 0x04000006, 0x80040480, - 0x04021004, 0x4178b800, 0x8464cd7e, 0x0401f7d9, - 0x49474000, 0x485dd805, 0x59a00002, 0x4801d803, - 0x40ec1000, 0x0201f800, 0x00020016, 0x4a01d808, - 0x001030bd, 0x5c00c800, 0x5c00c000, 0x5c00b800, - 0x1c01f000, 0x8c64cd3e, 0x0402001b, 0x805cb9c0, - 0x04000025, 0x59a00001, 0x805c0400, 0x48034001, - 0x59a00a0b, 0x800409c0, 0x04000005, 0x80040480, - 0x04021003, 0x4178b800, 0x0401f00f, 0x59a00801, - 0x80040906, 0x48074407, 0x485dd805, 0x59a00002, - 0x4801d803, 0x4a01d808, 0x00101cb3, 0x40ec1000, - 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x0201f000, - 0x00020016, 0x59a00001, 0x805c0c00, 0x59a0020b, - 0x80040480, 0x48034208, 0x4a034407, 0x0000000a, - 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x0201f000, - 0x00101cfd, 0x59a00801, 0x80040906, 0x48074407, - 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x0201f000, - 0x00101cba, 0x4031d800, 0x58ef400a, 0x58ec0002, - 0x82000580, 0x00000200, 0x02000000, 0x00101cf5, - 0x59a28800, 0x0401f78d, 0x8d0e1d0e, 0x04000005, - 0x4a034407, 0x00000001, 0x0201f000, 0x00101cfd, - 0x59a8021b, 0x8c00050a, 0x04020007, 0x8c000506, - 0x04020005, 0x4a034407, 0x00000016, 0x0201f000, - 0x00101cfd, 0x0401f8d0, 0x04020005, 0x4a034407, - 0x00000002, 0x0201f000, 0x00101cfd, 0x59a00c07, - 0x80040902, 0x59a00408, 0x59a01208, 0x900811c0, - 0x80081540, 0x59a0040a, 0x59a01a0a, 0x900c19c0, - 0x800c1d40, 0x832c0400, 0x00000006, 0x0401f8e2, - 0x4a01d808, 0x001030eb, 0x1c01f000, 0x4031d800, - 0x58ef400a, 0x58ee580c, 0x58ec0002, 0x82000580, - 0x00000200, 0x02000000, 0x00101cf5, 0x592c000a, - 0x0201f800, 0x0010548f, 0x02000800, 0x00103dcb, - 0x02020000, 0x00101d01, 0x49474001, 0x481a6802, - 0x592c000b, 0x82001d80, 0x70000000, 0x04020007, - 0x0401f8a5, 0x04020011, 0x4a034407, 0x00000002, - 0x0201f000, 0x00101cfd, 0x82001d80, 0x72000000, - 0x02020000, 0x00101d01, 0x0401f89b, 0x0402089a, - 0x04020899, 0x04020005, 0x4a034407, 0x00000002, - 0x0201f000, 0x00101cfd, 0x58ee580c, 0x4a025c05, - 0x00008000, 0x497a5a05, 0x592c3209, 0x80183102, - 0x592c1801, 0x4a001806, 0x01000000, 0x0201f800, - 0x00108943, 0x04020005, 0x4a034407, 0x00000003, - 0x0201f000, 0x00101cfd, 0x4a01d808, 0x00103125, - 0x1c01f000, 0x592c4000, 0x592c0006, 0x82000580, - 0x01000000, 0x04020005, 0x4a034407, 0x00000004, - 0x0201f000, 0x00101cfd, 0x4c580000, 0x4c500000, - 0x4c540000, 0x832c3c00, 0x00000006, 0x401ca000, - 0x401ca800, 0x5820280b, 0x4200b000, 0x00000002, - 0x82143580, 0x70000000, 0x04000003, 0x4200b000, - 0x0000000f, 0x0201f800, 0x0010ae19, 0x5c00a800, - 0x5c00a000, 0x5c00b000, 0x401c0000, 0x58201007, - 0x58201808, 0x58202206, 0x80102102, 0x82143580, - 0x70000000, 0x04020008, 0x82103480, 0x00000002, - 0x02001000, 0x00101d01, 0x42000800, 0x00000002, - 0x0401f082, 0x82143580, 0x72000000, 0x02020000, - 0x00101d01, 0x82103480, 0x0000002a, 0x02001000, - 0x00101d01, 0x42000800, 0x0000000f, 0x0401f877, - 0x4a01d808, 0x0010315f, 0x1c01f000, 0x4031d800, - 0x58ef400a, 0x58ee580d, 0x58ec0002, 0x82000580, - 0x00000200, 0x02000000, 0x00101cf5, 0x592e5800, - 0x832c0c00, 0x00000006, 0x4c580000, 0x4c500000, - 0x4c540000, 0x4004a000, 0x4004a800, 0x4200b000, - 0x0000000f, 0x0201f800, 0x0010ae19, 0x5c00a800, - 0x5c00a000, 0x5c00b000, 0x40ec1000, 0x4a001001, - 0x00000000, 0x4a001005, 0x0000003c, 0x48041003, - 0x0201f800, 0x00020016, 0x4a01d808, 0x00103181, + 0x00101d02, 0x42000800, 0x0000000c, 0x0401f84f, + 0x4a01d808, 0x00102f93, 0x1c01f000, 0x4031d800, + 0x58ee580c, 0x58ef400a, 0x58ec0002, 0x82000580, + 0x00000200, 0x02000000, 0x00101cfa, 0x832ca400, + 0x00000005, 0x4200b000, 0x0000000c, 0x40c8a800, + 0x0201f800, 0x0010aee2, 0x58c80200, 0x80000540, + 0x04000030, 0x58c80400, 0x82000500, 0xfffffffb, + 0x0402002c, 0x58c80401, 0x80000540, 0x04000029, + 0x82000480, 0x0000ff01, 0x04021026, 0x58c80202, + 0x82000480, 0x0000005c, 0x04001022, 0x0201f800, + 0x00105ce2, 0x58c80c08, 0x58c80204, 0x80040480, + 0x0400101c, 0x58c80204, 0x82000480, 0x00000005, + 0x04021018, 0x58c80205, 0x58c80c08, 0x80040902, + 0x80040480, 0x04001013, 0x58c80c08, 0x0201f800, + 0x00105c31, 0x04000017, 0x0201f800, 0x00105af2, + 0x0402000e, 0x4979940b, 0x59c408a3, 0x82040d40, + 0x00000002, 0x480788a3, 0x58c80202, 0x48030804, + 0x0201f800, 0x00105ad4, 0x0201f000, 0x00101cbf, + 0x0201f000, 0x00101d06, 0x0201f800, 0x00105d34, + 0x0201f800, 0x00105d41, 0x0201f800, 0x00105c24, + 0x0201f000, 0x00101d02, 0x4c000000, 0x59a01208, + 0x59a00408, 0x900811c0, 0x80081540, 0x59a01a0a, + 0x59a0040a, 0x900c19c0, 0x800c1d40, 0x5c000000, + 0x0401f1eb, 0x59840000, 0x82000580, 0x00000000, + 0x04000050, 0x59840002, 0x8c000504, 0x0400004d, + 0x84000546, 0x48030802, 0x0201f800, 0x00105c24, + 0x59c408a3, 0x82040d00, 0xfffffffd, 0x480788a3, + 0x4c5c0000, 0x4200b800, 0x0010b080, 0x505e6800, + 0x813669c0, 0x04000008, 0x5936600e, 0x813261c0, + 0x04000005, 0x0201f800, 0x00105c15, 0x02000800, + 0x00105ded, 0x805cb800, 0x825c0580, 0x0010b870, + 0x040207f3, 0x59866003, 0x813261c0, 0x0400000b, + 0x59300407, 0x82000580, 0x00000009, 0x02020800, + 0x0010032d, 0x5930b800, 0x0201f800, 0x00105bfa, + 0x405e6000, 0x0401f7f5, 0x497b0803, 0x4200b800, + 0x0010b96d, 0x505e6000, 0x813261c0, 0x04000011, + 0x59300407, 0x82000580, 0x00000009, 0x0402000d, + 0x59300203, 0x82000580, 0x00000004, 0x04020009, + 0x5932680a, 0x813669c0, 0x02020800, 0x0010032d, + 0x0201f800, 0x00100bd5, 0x0201f800, 0x00105bfa, + 0x4578b800, 0x805cb800, 0x825c0580, 0x0010b975, + 0x040207e9, 0x42000800, 0x0010b96b, 0x49780801, + 0x49780800, 0x0201f800, 0x00105d34, 0x0201f800, + 0x00105d41, 0x5c00b800, 0x0201f800, 0x00105aed, + 0x0201f000, 0x00101cbf, 0x836c0580, 0x00000003, + 0x04000005, 0x4a034407, 0x00000007, 0x0201f000, + 0x00101d02, 0x59a00408, 0x59a00a08, 0x900409c0, + 0x80040d40, 0x4805d806, 0x59a0040a, 0x59a00a0a, + 0x900409c0, 0x80040d40, 0x4805d807, 0x4a01d801, + 0x00000000, 0x0401f95e, 0x04020005, 0x4a034407, + 0x00000002, 0x0201f000, 0x00101d02, 0x417a8800, + 0x497b4001, 0x832c0400, 0x00000005, 0x48034002, + 0x4c5c0000, 0x4c600000, 0x4c640000, 0x4178b800, + 0x4178c800, 0x59a0c002, 0x41440000, 0x81ac0400, + 0x50026800, 0x813669c0, 0x0400000d, 0x0201f800, + 0x00104181, 0x0402000a, 0x8c64cd3e, 0x04020006, + 0x59340002, 0x4800c000, 0x4944c001, 0x8260c400, + 0x00000002, 0x825cbc00, 0x00000008, 0x81468800, + 0x83440480, 0x00000800, 0x04021021, 0x825c0480, + 0x00000040, 0x04021002, 0x0401f7e8, 0x59a00001, + 0x805c0400, 0x48034001, 0x8c64cd3e, 0x04000003, + 0x4178b800, 0x0401f7e1, 0x59a00a0b, 0x800409c0, + 0x04000006, 0x80040480, 0x04021004, 0x4178b800, + 0x8464cd7e, 0x0401f7d9, 0x49474000, 0x485dd805, + 0x59a00002, 0x4801d803, 0x40ec1000, 0x0201f800, + 0x00020016, 0x4a01d808, 0x001030c7, 0x5c00c800, + 0x5c00c000, 0x5c00b800, 0x1c01f000, 0x8c64cd3e, + 0x0402001b, 0x805cb9c0, 0x04000025, 0x59a00001, + 0x805c0400, 0x48034001, 0x59a00a0b, 0x800409c0, + 0x04000005, 0x80040480, 0x04021003, 0x4178b800, + 0x0401f00f, 0x59a00801, 0x80040906, 0x48074407, + 0x485dd805, 0x59a00002, 0x4801d803, 0x4a01d808, + 0x00101cb8, 0x40ec1000, 0x5c00c800, 0x5c00c000, + 0x5c00b800, 0x0201f000, 0x00020016, 0x59a00001, + 0x805c0c00, 0x59a0020b, 0x80040480, 0x48034208, + 0x4a034407, 0x0000000a, 0x5c00c800, 0x5c00c000, + 0x5c00b800, 0x0201f000, 0x00101d02, 0x59a00801, + 0x80040906, 0x48074407, 0x5c00c800, 0x5c00c000, + 0x5c00b800, 0x0201f000, 0x00101cbf, 0x4031d800, + 0x58ef400a, 0x58ec0002, 0x82000580, 0x00000200, + 0x02000000, 0x00101cfa, 0x59a28800, 0x0401f78d, + 0x8d0e1d0e, 0x04000005, 0x4a034407, 0x00000001, + 0x0201f000, 0x00101d02, 0x59a8021b, 0x8c00050a, + 0x04020007, 0x8c000506, 0x04020005, 0x4a034407, + 0x00000016, 0x0201f000, 0x00101d02, 0x0401f8d0, + 0x04020005, 0x4a034407, 0x00000002, 0x0201f000, + 0x00101d02, 0x59a00c07, 0x80040902, 0x59a00408, + 0x59a01208, 0x900811c0, 0x80081540, 0x59a0040a, + 0x59a01a0a, 0x900c19c0, 0x800c1d40, 0x832c0400, + 0x00000006, 0x0401f8e2, 0x4a01d808, 0x001030f5, + 0x1c01f000, 0x4031d800, 0x58ef400a, 0x58ee580c, + 0x58ec0002, 0x82000580, 0x00000200, 0x02000000, + 0x00101cfa, 0x592c000a, 0x0201f800, 0x001054fb, + 0x02000800, 0x00103de1, 0x02020000, 0x00101d06, + 0x49474001, 0x481a6802, 0x592c000b, 0x82001d80, + 0x70000000, 0x04020007, 0x0401f8a5, 0x04020011, + 0x4a034407, 0x00000002, 0x0201f000, 0x00101d02, + 0x82001d80, 0x72000000, 0x02020000, 0x00101d06, + 0x0401f89b, 0x0402089a, 0x04020899, 0x04020005, + 0x4a034407, 0x00000002, 0x0201f000, 0x00101d02, + 0x58ee580c, 0x4a025c05, 0x00008000, 0x497a5a05, + 0x592c3209, 0x80183102, 0x592c1801, 0x4a001806, + 0x01000000, 0x0201f800, 0x001089fc, 0x04020005, + 0x4a034407, 0x00000003, 0x0201f000, 0x00101d02, + 0x4a01d808, 0x0010312f, 0x1c01f000, 0x592c4000, + 0x592c0006, 0x82000580, 0x01000000, 0x04020005, + 0x4a034407, 0x00000004, 0x0201f000, 0x00101d02, + 0x4c580000, 0x4c500000, 0x4c540000, 0x832c3c00, + 0x00000006, 0x401ca000, 0x401ca800, 0x5820280b, + 0x4200b000, 0x00000002, 0x82143580, 0x70000000, + 0x04000003, 0x4200b000, 0x0000000f, 0x0201f800, + 0x0010af0c, 0x5c00a800, 0x5c00a000, 0x5c00b000, + 0x401c0000, 0x58201007, 0x58201808, 0x58202206, + 0x80102102, 0x82143580, 0x70000000, 0x04020008, + 0x82103480, 0x00000002, 0x02001000, 0x00101d06, + 0x42000800, 0x00000002, 0x0401f082, 0x82143580, + 0x72000000, 0x02020000, 0x00101d06, 0x82103480, + 0x0000002a, 0x02001000, 0x00101d06, 0x42000800, + 0x0000000f, 0x0401f877, 0x4a01d808, 0x00103169, 0x1c01f000, 0x4031d800, 0x58ef400a, 0x58ee580d, 0x58ec0002, 0x82000580, 0x00000200, 0x02000000, - 0x00101cf5, 0x832c0c00, 0x00000006, 0x4c580000, - 0x4c500000, 0x4c540000, 0x4004a000, 0x4004a800, - 0x4200b000, 0x0000000c, 0x0201f800, 0x0010ae19, - 0x5c00a800, 0x5c00a000, 0x5c00b000, 0x40ec1000, - 0x4a001001, 0x00000000, 0x4a001005, 0x00000030, - 0x48041003, 0x0201f800, 0x00020016, 0x4a01d808, - 0x00101cb3, 0x1c01f000, 0x0401f803, 0x412d8800, - 0x1c01f000, 0x0201f800, 0x0010056f, 0x04000010, - 0x497a5800, 0x58ec000c, 0x80000540, 0x04020004, - 0x492dd80c, 0x492dd80d, 0x0401f007, 0x58ec000d, - 0x48025800, 0x82000400, 0x00000001, 0x452c0000, - 0x492dd80d, 0x832c0400, 0x00000005, 0x492fc857, - 0x4803c857, 0x1c01f000, 0x4d2c0000, 0x58ec400c, - 0x802041c0, 0x04000008, 0x4823c857, 0x40225800, - 0x592c4001, 0x497a5801, 0x0201f800, 0x00100580, - 0x0401f7f8, 0x4979d80c, 0x4979d80d, 0x5c025800, - 0x1c01f000, 0x42003000, 0x00000001, 0x0401f009, - 0x42003000, 0x00000001, 0x0401f007, 0x42003000, - 0x00000000, 0x0401f004, 0x42003000, 0x00000000, - 0x800408c4, 0x800409c0, 0x02000800, 0x0010032d, - 0x4803c857, 0x4807c857, 0x480bc857, 0x480fc857, - 0x481bc857, 0x48efc857, 0x4819d801, 0x4801d803, - 0x4809d806, 0x480dd807, 0x4805d805, 0x40ec1000, - 0x0201f800, 0x00020016, 0x4a01d808, 0x00101cb3, - 0x1c01f000, 0x40681000, 0x406c1800, 0x80002d80, - 0x480bc857, 0x480fc857, 0x4813c857, 0x4817c857, - 0x8d0e1d20, 0x04000005, 0x59a80005, 0x8c000516, - 0x02020000, 0x00109fa3, 0x4d2c0000, 0x4da00000, - 0x42034000, 0x0010b7fa, 0x59a00018, 0x800001c0, - 0x0402000f, 0x0400600e, 0x480bc020, 0x480fc021, - 0x4813c022, 0x4817c023, 0x900811c0, 0x82081540, - 0x00000012, 0x480bc011, 0x4a03c017, 0x00000000, - 0x4203e000, 0x30000001, 0x0401f050, 0x4c040000, - 0x4c1c0000, 0x80000800, 0x48074018, 0x59a0381b, - 0x481fc857, 0x801c39c0, 0x04020027, 0x82000480, - 0x0000000a, 0x04021010, 0x59a00019, 0x80000000, - 0x48034019, 0x59a0021a, 0x82000400, 0x00000002, - 0x82000c80, 0x00000014, 0x4803421a, 0x04001003, - 0x497b421a, 0x41780000, 0x59a03817, 0x801c3c00, - 0x0401f030, 0x4803c856, 0x0201f800, 0x0010056f, - 0x04000007, 0x492f401b, 0x492f401c, 0x412c3800, - 0x497b421d, 0x497a5814, 0x0401f026, 0x5988001e, + 0x00101cfa, 0x592e5800, 0x832c0c00, 0x00000006, + 0x4c580000, 0x4c500000, 0x4c540000, 0x4004a000, + 0x4004a800, 0x4200b000, 0x0000000f, 0x0201f800, + 0x0010af0c, 0x5c00a800, 0x5c00a000, 0x5c00b000, + 0x40ec1000, 0x4a001001, 0x00000000, 0x4a001005, + 0x0000003c, 0x48041003, 0x0201f800, 0x00020016, + 0x4a01d808, 0x0010318b, 0x1c01f000, 0x4031d800, + 0x58ef400a, 0x58ee580d, 0x58ec0002, 0x82000580, + 0x00000200, 0x02000000, 0x00101cfa, 0x832c0c00, + 0x00000006, 0x4c580000, 0x4c500000, 0x4c540000, + 0x4004a000, 0x4004a800, 0x4200b000, 0x0000000c, + 0x0201f800, 0x0010af0c, 0x5c00a800, 0x5c00a000, + 0x5c00b000, 0x40ec1000, 0x4a001001, 0x00000000, + 0x4a001005, 0x00000030, 0x48041003, 0x0201f800, + 0x00020016, 0x4a01d808, 0x00101cb8, 0x1c01f000, + 0x0401f803, 0x412d8800, 0x1c01f000, 0x0201f800, + 0x0010056f, 0x04000010, 0x497a5800, 0x58ec000c, + 0x80000540, 0x04020004, 0x492dd80c, 0x492dd80d, + 0x0401f007, 0x58ec000d, 0x48025800, 0x82000400, + 0x00000001, 0x452c0000, 0x492dd80d, 0x832c0400, + 0x00000005, 0x492fc857, 0x4803c857, 0x1c01f000, + 0x4d2c0000, 0x58ec400c, 0x802041c0, 0x04000008, + 0x4823c857, 0x40225800, 0x592c4001, 0x497a5801, + 0x0201f800, 0x00100580, 0x0401f7f8, 0x4979d80c, + 0x4979d80d, 0x5c025800, 0x1c01f000, 0x42003000, + 0x00000001, 0x0401f009, 0x42003000, 0x00000001, + 0x0401f007, 0x42003000, 0x00000000, 0x0401f004, + 0x42003000, 0x00000000, 0x800408c4, 0x800409c0, + 0x02000800, 0x0010032d, 0x4803c857, 0x4807c857, + 0x480bc857, 0x480fc857, 0x481bc857, 0x48efc857, + 0x4819d801, 0x4801d803, 0x4809d806, 0x480dd807, + 0x4805d805, 0x40ec1000, 0x0201f800, 0x00020016, + 0x4a01d808, 0x00101cb8, 0x1c01f000, 0x40681000, + 0x406c1800, 0x80002d80, 0x480bc857, 0x480fc857, + 0x4813c857, 0x4817c857, 0x8d0e1d20, 0x04000005, + 0x59a80005, 0x8c000516, 0x02020000, 0x0010a082, + 0x4d2c0000, 0x4da00000, 0x42034000, 0x0010b8fa, + 0x59a00018, 0x800001c0, 0x0402000f, 0x0400600e, + 0x480bc020, 0x480fc021, 0x4813c022, 0x4817c023, + 0x900811c0, 0x82081540, 0x00000012, 0x480bc011, + 0x4a03c017, 0x00000000, 0x4203e000, 0x30000001, + 0x0401f050, 0x4c040000, 0x4c1c0000, 0x80000800, + 0x48074018, 0x59a0381b, 0x481fc857, 0x801c39c0, + 0x04020027, 0x82000480, 0x0000000a, 0x04021010, + 0x59a00019, 0x80000000, 0x48034019, 0x59a0021a, + 0x82000400, 0x00000002, 0x82000c80, 0x00000014, + 0x4803421a, 0x04001003, 0x497b421a, 0x41780000, + 0x59a03817, 0x801c3c00, 0x0401f030, 0x4803c856, + 0x0201f800, 0x0010056f, 0x04000007, 0x492f401b, + 0x492f401c, 0x412c3800, 0x497b421d, 0x497a5814, + 0x0401f026, 0x5988001e, 0x80000000, 0x4803101e, + 0x59a00018, 0x80000040, 0x48034018, 0x59a0021a, + 0x59a03817, 0x801c3c00, 0x0401f01c, 0x59a0021d, + 0x82000400, 0x00000002, 0x82000c80, 0x00000013, + 0x04021004, 0x4803421d, 0x801c3c00, 0x0401f013, + 0x0201f800, 0x0010056f, 0x0402000b, 0x5988001e, 0x80000000, 0x4803101e, 0x59a00018, 0x80000040, - 0x48034018, 0x59a0021a, 0x59a03817, 0x801c3c00, - 0x0401f01c, 0x59a0021d, 0x82000400, 0x00000002, - 0x82000c80, 0x00000013, 0x04021004, 0x4803421d, - 0x801c3c00, 0x0401f013, 0x0201f800, 0x0010056f, - 0x0402000b, 0x5988001e, 0x80000000, 0x4803101e, - 0x59a00018, 0x80000040, 0x48034018, 0x4803c856, - 0x59a0021d, 0x801c3c00, 0x0401f006, 0x492f401b, - 0x492c3814, 0x412c3800, 0x497b421d, 0x497a5814, - 0x48083c00, 0x480c3a00, 0x48103c01, 0x48143a01, - 0x5c003800, 0x5c000800, 0x5c034000, 0x5c025800, - 0x1c01f000, 0x40681800, 0x406c2000, 0x40703000, - 0x480fc857, 0x4813c857, 0x481bc857, 0x42000000, - 0x0010bbda, 0x0201f800, 0x0010ad1d, 0x801800d0, - 0x40002800, 0x42001000, 0x00008014, 0x0401f781, - 0x4c000000, 0x599c0017, 0x8c000512, 0x5c000000, - 0x1c01f000, 0x4c000000, 0x599c0018, 0x8c00050e, - 0x5c000000, 0x1c01f000, 0x8d0e1d0e, 0x04000005, - 0x4a034407, 0x00000001, 0x0201f000, 0x00101cfd, - 0x836c0580, 0x00000003, 0x04000005, 0x4a034407, - 0x00000007, 0x0201f000, 0x00101cfd, 0x599c0017, - 0x8c00050a, 0x04000005, 0x4a034407, 0x00000008, - 0x0201f000, 0x00101cfd, 0x59340405, 0x8c000508, - 0x04020004, 0x8c00050a, 0x02020000, 0x00102bcd, - 0x497a5a05, 0x497a5806, 0x4a025c05, 0x00008000, - 0x0201f800, 0x001089f2, 0x04020005, 0x4a034407, - 0x00000003, 0x0201f000, 0x00101cfd, 0x4a01d808, - 0x0010329e, 0x1c01f000, 0x592c0006, 0x82000580, - 0x01000000, 0x04020005, 0x4a034407, 0x00000004, - 0x0201f000, 0x00101cfd, 0x59a28c07, 0x0201f800, - 0x00020319, 0x02020000, 0x00101d01, 0x0201f000, - 0x00102bcd, 0x82001580, 0x0000ffff, 0x04000009, - 0x0201f800, 0x0010548f, 0x02000800, 0x00020319, - 0x0402000c, 0x0201f800, 0x001057e8, 0x0401f009, - 0x42028800, 0x000007ef, 0x0201f800, 0x00020319, - 0x02000800, 0x001057e8, 0x81468840, 0x040217fb, - 0x1c01f000, 0x4803c856, 0x4c0c0000, 0x4d340000, - 0x4d440000, 0x42028800, 0x000007fe, 0x0201f800, - 0x00020319, 0x04020009, 0x5934180a, 0x820c1d00, - 0x00000001, 0x820c1d80, 0x00000001, 0x42001000, - 0x0000801b, 0x0401ff1a, 0x5c028800, 0x5c026800, - 0x5c001800, 0x1c01f000, 0x48efc857, 0x04011000, - 0x48efc840, 0x4a03c842, 0x0000000f, 0x40000000, - 0x040117ff, 0x4a01d80e, 0xbeefbeef, 0x1c01f000, - 0x497b4000, 0x497b4001, 0x497b4002, 0x497b4003, - 0x497b4004, 0x1c01f000, 0x42002000, 0x0010f584, - 0x41580000, 0x41781000, 0x58100c07, 0x800409c0, - 0x04000011, 0x82041d80, 0x00000003, 0x0400000e, - 0x82041c80, 0x00000006, 0x0400100a, 0x82041d80, - 0x0000000a, 0x04000007, 0x82041c80, 0x0000000f, - 0x04001005, 0x82041c80, 0x00000012, 0x04021002, - 0x80081000, 0x82102400, 0x00000024, 0x80100c80, - 0x040017ea, 0x40080000, 0x59a81251, 0x80080480, - 0x04021002, 0x41780000, 0x81640480, 0x04021002, - 0x41780000, 0x1c01f000, 0x59c400a4, 0x4c580000, - 0x4c500000, 0x4c540000, 0x82000500, 0x0000000f, - 0x82000480, 0x00000007, 0x0400100a, 0x82006c80, - 0x00000007, 0x02021800, 0x0010032d, 0x0c01f807, - 0x5c00a800, 0x5c00a000, 0x5c00b000, 0x1c01f000, - 0x0401f915, 0x0401f7fb, 0x00103325, 0x0010332b, - 0x00103350, 0x00103372, 0x0010343a, 0x00103324, - 0x1c01f000, 0x59c40806, 0x8c040d00, 0x04020003, - 0x84040d40, 0x48078806, 0x1c01f000, 0x59c40005, - 0x8c000534, 0x02020000, 0x00103a8b, 0x4a038805, - 0xffffffff, 0x42006000, 0x00020000, 0x0201f800, - 0x00103a70, 0x59a80015, 0x82000500, 0xfffffffa, - 0x84000542, 0x48035015, 0x497b521b, 0x42000800, - 0x0010c1c7, 0x45780800, 0x497b5056, 0x42006000, - 0xffefffff, 0x42006800, 0x40000000, 0x0201f800, - 0x00103a6a, 0x59c40006, 0x82000500, 0xffffff0f, - 0x48038806, 0x42000800, 0x00000010, 0x42001000, - 0x001039d5, 0x0201f800, 0x001057c0, 0x0401f001, - 0x42006000, 0xffffffff, 0x42006800, 0x00800000, - 0x0201f800, 0x00103a6a, 0x4200b000, 0x000000c8, - 0x59c400a4, 0x82000500, 0x0000000f, 0x82000580, - 0x0000000a, 0x0400000f, 0x8058b040, 0x040207f9, - 0x497b5010, 0x42006000, 0xbf7fffff, 0x42006800, - 0x00018000, 0x0201f800, 0x00103a6a, 0x42006000, - 0xfffeffff, 0x41786800, 0x0201f000, 0x00103a6a, - 0x497b5010, 0x4a035055, 0x00000000, 0x80000580, - 0x0201f000, 0x00103a77, 0x4a038805, 0xffffffff, - 0x59a80055, 0x82000c80, 0x00000004, 0x02021800, - 0x0010032d, 0x0c01f001, 0x0010337d, 0x001033ad, - 0x00103430, 0x4803c856, 0x59c400a3, 0x8400051e, - 0x480388a3, 0x4a035055, 0x00000001, 0x59c40008, - 0x82000540, 0x00000080, 0x48038808, 0x0201f800, - 0x00103a4e, 0x42007800, 0x0010b8a0, 0x4a007806, - 0x11010000, 0x4200a000, 0x0010b782, 0x4200a800, - 0x0010b8a7, 0x4200b000, 0x00000002, 0x0201f800, - 0x0010adef, 0x59c40802, 0x84040d0c, 0x48078802, - 0x42000800, 0x00000003, 0x497b505e, 0x0201f800, - 0x00103948, 0x4a03505e, 0x00000001, 0x497b505a, - 0x0201f800, 0x00103a7e, 0x42006000, 0xffffffff, - 0x42006800, 0x00080000, 0x0201f800, 0x00103a6a, - 0x42006000, 0xfff7ffff, 0x41786800, 0x0201f000, - 0x00103a6a, 0x59a8005a, 0x497b505a, 0x80002540, - 0x04000070, 0x59c40004, 0x82000500, 0x00000003, - 0x0402007b, 0x59a80815, 0x8c040d02, 0x04000055, - 0x82100580, 0x0000000c, 0x04020059, 0x82100400, - 0x00000018, 0x8000b104, 0x41cc1000, 0x42001800, - 0x0010b8a0, 0x50080800, 0x500c0000, 0x80040580, - 0x04020021, 0x80081000, 0x800c1800, 0x8058b040, - 0x040207f9, 0x0201f800, 0x00103a7e, 0x59c80015, - 0x84000508, 0x48039015, 0x42006000, 0xffffffff, - 0x42006800, 0x00500000, 0x0201f800, 0x00103a6a, - 0x4a035055, 0x00000002, 0x4a035010, 0x00000002, - 0x0201f800, 0x001013bd, 0x42000800, 0x000007d0, - 0x42001000, 0x0010391c, 0x0201f800, 0x00105904, - 0x59a80015, 0x84000506, 0x48035015, 0x0201f000, - 0x00103a4e, 0x59cc0806, 0x82040d80, 0x11010000, - 0x0402002b, 0x59cc0800, 0x82040500, 0x00ffffff, - 0x0400001a, 0x82000580, 0x000000ef, 0x04020017, - 0x59cc0801, 0x82040500, 0x00ffffff, 0x82000580, - 0x000000ef, 0x04020011, 0x83cca400, 0x00000007, - 0x4200a800, 0x0010b782, 0x4200b000, 0x00000002, - 0x50500800, 0x50540000, 0x80040480, 0x04001007, - 0x04020013, 0x8050a000, 0x8054a800, 0x8058b040, - 0x040207f8, 0x0401f00e, 0x59a80015, 0x84000502, - 0x48035015, 0x59c80015, 0x84000508, 0x48039015, - 0x41cca000, 0x4200a800, 0x0010b8a0, 0x4200b000, - 0x00000009, 0x0201f800, 0x0010adef, 0x0201f800, - 0x00103a7e, 0x42006000, 0xffffffff, 0x42006800, - 0x00080000, 0x0201f800, 0x00103a6a, 0x42006000, - 0xfff7ffff, 0x41786800, 0x0201f800, 0x00103a6a, - 0x42006000, 0xffffffff, 0x42006800, 0x00004000, - 0x0201f800, 0x00103a6a, 0x59c40004, 0x82000500, - 0x00000003, 0x04020006, 0x497b505a, 0x42000800, - 0x00000003, 0x0201f000, 0x00103948, 0x1c01f000, - 0x1c01f000, 0x59a80010, 0x82006d80, 0x0000000f, - 0x04000005, 0x82000580, 0x0000001b, 0x02020800, - 0x00103911, 0x1c01f000, 0x59a80015, 0x84000506, - 0x48035015, 0x497b505e, 0x59a80010, 0x82000c80, - 0x0000001e, 0x02021800, 0x0010032d, 0x0c01f001, - 0x00103478, 0x0010348f, 0x001034b8, 0x001034d3, - 0x001034f6, 0x00103526, 0x00103548, 0x0010357b, - 0x0010359d, 0x001035bf, 0x001035fb, 0x00103622, - 0x00103638, 0x0010364a, 0x00103662, 0x00103679, - 0x0010367e, 0x001036a6, 0x001036c9, 0x001036ef, - 0x00103712, 0x00103746, 0x00103788, 0x001037b0, - 0x001037c8, 0x00103808, 0x00103821, 0x00103834, - 0x00103835, 0x4803c856, 0x4202d800, 0x00000007, - 0x0201f800, 0x00104716, 0x04000007, 0x42006000, - 0xffffffd7, 0x41786800, 0x0201f800, 0x00103a6a, - 0x0401f00b, 0x59c40006, 0x82000500, 0xffffff0f, - 0x48038806, 0x4a038805, 0x000000f0, 0x0201f800, - 0x00104b50, 0x0201f800, 0x00104665, 0x1c01f000, - 0x4803c856, 0x42006000, 0xbf7fffff, 0x42006800, - 0x00400000, 0x0201f800, 0x00103a6a, 0x0201f800, - 0x001013bd, 0x4a035010, 0x00000001, 0x42001000, - 0x001039d5, 0x0201f800, 0x001057e0, 0x0201f800, - 0x001039de, 0x42000800, 0x000007d0, 0x42001000, - 0x0010391c, 0x0201f000, 0x00105904, 0x59a8005a, - 0x82000580, 0x00000014, 0x04020023, 0x4803c857, - 0x42006000, 0xffbfffff, 0x41786800, 0x0201f800, - 0x00103a6a, 0x59c40004, 0x82000500, 0x00000003, - 0x04020019, 0x42001000, 0x0010391c, 0x0201f800, - 0x001057cd, 0x59cc1006, 0x82081580, 0x11020000, + 0x48034018, 0x4803c856, 0x59a0021d, 0x801c3c00, + 0x0401f006, 0x492f401b, 0x492c3814, 0x412c3800, + 0x497b421d, 0x497a5814, 0x48083c00, 0x480c3a00, + 0x48103c01, 0x48143a01, 0x5c003800, 0x5c000800, + 0x5c034000, 0x5c025800, 0x1c01f000, 0x40681800, + 0x406c2000, 0x40703000, 0x480fc857, 0x4813c857, + 0x481bc857, 0x42000000, 0x0010bcda, 0x0201f800, + 0x0010ae10, 0x801800d0, 0x40002800, 0x42001000, + 0x00008014, 0x0401f781, 0x4c000000, 0x599c0017, + 0x8c000512, 0x5c000000, 0x1c01f000, 0x4c000000, + 0x599c0018, 0x8c00050e, 0x5c000000, 0x1c01f000, + 0x8d0e1d0e, 0x04000005, 0x4a034407, 0x00000001, + 0x0201f000, 0x00101d02, 0x836c0580, 0x00000003, + 0x04000005, 0x4a034407, 0x00000007, 0x0201f000, + 0x00101d02, 0x599c0017, 0x8c00050a, 0x04000005, + 0x4a034407, 0x00000008, 0x0201f000, 0x00101d02, + 0x59340405, 0x8c000508, 0x04020004, 0x8c00050a, + 0x02020000, 0x00102bd7, 0x497a5a05, 0x497a5806, + 0x4a025c05, 0x00008000, 0x0201f800, 0x00108aab, + 0x04020005, 0x4a034407, 0x00000003, 0x0201f000, + 0x00101d02, 0x4a01d808, 0x001032a8, 0x1c01f000, + 0x592c0006, 0x82000580, 0x01000000, 0x04020005, + 0x4a034407, 0x00000004, 0x0201f000, 0x00101d02, + 0x59a28c07, 0x0201f800, 0x00020319, 0x02020000, + 0x00101d06, 0x0201f000, 0x00102bd7, 0x82001580, + 0x0000ffff, 0x04000009, 0x0201f800, 0x001054fb, + 0x02000800, 0x00020319, 0x0402000c, 0x0201f800, + 0x0010588d, 0x0401f009, 0x42028800, 0x000007ef, + 0x0201f800, 0x00020319, 0x02000800, 0x0010588d, + 0x81468840, 0x040217fb, 0x1c01f000, 0x4803c856, + 0x4c0c0000, 0x4d340000, 0x4d440000, 0x42028800, + 0x000007fe, 0x0201f800, 0x00020319, 0x04020009, + 0x5934180a, 0x820c1d00, 0x00000001, 0x820c1d80, + 0x00000001, 0x42001000, 0x0000801b, 0x0401ff1a, + 0x5c028800, 0x5c026800, 0x5c001800, 0x1c01f000, + 0x48efc857, 0x04011000, 0x48efc840, 0x4a03c842, + 0x0000000f, 0x40000000, 0x040117ff, 0x4a01d80e, + 0xbeefbeef, 0x1c01f000, 0x497b4000, 0x497b4001, + 0x497b4002, 0x497b4003, 0x497b4004, 0x1c01f000, + 0x42002000, 0x0010f694, 0x41580000, 0x41781000, + 0x58100c07, 0x800409c0, 0x04000011, 0x82041d80, + 0x00000003, 0x0400000e, 0x82041c80, 0x00000006, + 0x0400100a, 0x82041d80, 0x0000000a, 0x04000007, + 0x82041c80, 0x0000000f, 0x04001005, 0x82041c80, + 0x00000012, 0x04021002, 0x80081000, 0x82102400, + 0x00000024, 0x80100c80, 0x040017ea, 0x40080000, + 0x59a81251, 0x80080480, 0x04021002, 0x41780000, + 0x81640480, 0x04021002, 0x41780000, 0x1c01f000, + 0x59a80005, 0x8c000514, 0x04000006, 0x42000000, + 0x0010b939, 0x50000000, 0x82000500, 0x00000028, + 0x1c01f000, 0x59c400a4, 0x4c580000, 0x4c500000, + 0x4c540000, 0x82000500, 0x0000000f, 0x82000480, + 0x00000007, 0x0400100a, 0x82006c80, 0x00000007, + 0x02021800, 0x0010032d, 0x0c01f807, 0x5c00a800, + 0x5c00a000, 0x5c00b000, 0x1c01f000, 0x0401f915, + 0x0401f7fb, 0x00103338, 0x0010333e, 0x00103363, + 0x00103385, 0x0010344d, 0x00103337, 0x1c01f000, + 0x59c40806, 0x8c040d00, 0x04020003, 0x84040d40, + 0x48078806, 0x1c01f000, 0x59c40005, 0x8c000534, + 0x02020000, 0x00103a9e, 0x4a038805, 0xffffffff, + 0x42006000, 0x00020000, 0x0201f800, 0x00103a83, + 0x59a80015, 0x82000500, 0xfffffffa, 0x84000542, + 0x48035015, 0x497b521b, 0x42000800, 0x0010c2c7, + 0x45780800, 0x497b5056, 0x42006000, 0xffefffff, + 0x42006800, 0x40000000, 0x0201f800, 0x00103a7d, + 0x59c40006, 0x82000500, 0xffffff0f, 0x48038806, + 0x42000800, 0x00000010, 0x42001000, 0x001039e8, + 0x0201f800, 0x00105865, 0x0401f001, 0x42006000, + 0xffffffff, 0x42006800, 0x00800000, 0x0201f800, + 0x00103a7d, 0x4200b000, 0x000000c8, 0x59c400a4, + 0x82000500, 0x0000000f, 0x82000580, 0x0000000a, + 0x0400000f, 0x8058b040, 0x040207f9, 0x497b5010, + 0x42006000, 0xbf7fffff, 0x42006800, 0x00018000, + 0x0201f800, 0x00103a7d, 0x42006000, 0xfffeffff, + 0x41786800, 0x0201f000, 0x00103a7d, 0x497b5010, + 0x4a035055, 0x00000000, 0x80000580, 0x0201f000, + 0x00103a8a, 0x4a038805, 0xffffffff, 0x59a80055, + 0x82000c80, 0x00000004, 0x02021800, 0x0010032d, + 0x0c01f001, 0x00103390, 0x001033c0, 0x00103443, + 0x4803c856, 0x59c400a3, 0x8400051e, 0x480388a3, + 0x4a035055, 0x00000001, 0x59c40008, 0x82000540, + 0x00000080, 0x48038808, 0x0201f800, 0x00103a61, + 0x42007800, 0x0010b9a0, 0x4a007806, 0x11010000, + 0x4200a000, 0x0010b882, 0x4200a800, 0x0010b9a7, + 0x4200b000, 0x00000002, 0x0201f800, 0x0010aee2, + 0x59c40802, 0x84040d0c, 0x48078802, 0x42000800, + 0x00000003, 0x497b505e, 0x0201f800, 0x0010395b, + 0x4a03505e, 0x00000001, 0x497b505a, 0x0201f800, + 0x00103a91, 0x42006000, 0xffffffff, 0x42006800, + 0x00080000, 0x0201f800, 0x00103a7d, 0x42006000, + 0xfff7ffff, 0x41786800, 0x0201f000, 0x00103a7d, + 0x59a8005a, 0x497b505a, 0x80002540, 0x04000070, + 0x59c40004, 0x82000500, 0x00000003, 0x0402007b, + 0x59a80815, 0x8c040d02, 0x04000055, 0x82100580, + 0x0000000c, 0x04020059, 0x82100400, 0x00000018, + 0x8000b104, 0x41cc1000, 0x42001800, 0x0010b9a0, + 0x50080800, 0x500c0000, 0x80040580, 0x04020021, + 0x80081000, 0x800c1800, 0x8058b040, 0x040207f9, + 0x0201f800, 0x00103a91, 0x59c80015, 0x84000508, + 0x48039015, 0x42006000, 0xffffffff, 0x42006800, + 0x00500000, 0x0201f800, 0x00103a7d, 0x4a035055, + 0x00000002, 0x4a035010, 0x00000002, 0x0201f800, + 0x001013be, 0x42000800, 0x000007d0, 0x42001000, + 0x0010392f, 0x0201f800, 0x001059a9, 0x59a80015, + 0x84000506, 0x48035015, 0x0201f000, 0x00103a61, + 0x59cc0806, 0x82040d80, 0x11010000, 0x0402002b, + 0x59cc0800, 0x82040500, 0x00ffffff, 0x0400001a, + 0x82000580, 0x000000ef, 0x04020017, 0x59cc0801, + 0x82040500, 0x00ffffff, 0x82000580, 0x000000ef, + 0x04020011, 0x83cca400, 0x00000007, 0x4200a800, + 0x0010b882, 0x4200b000, 0x00000002, 0x50500800, + 0x50540000, 0x80040480, 0x04001007, 0x04020013, + 0x8050a000, 0x8054a800, 0x8058b040, 0x040207f8, + 0x0401f00e, 0x59a80015, 0x84000502, 0x48035015, + 0x59c80015, 0x84000508, 0x48039015, 0x41cca000, + 0x4200a800, 0x0010b9a0, 0x4200b000, 0x00000009, + 0x0201f800, 0x0010aee2, 0x0201f800, 0x00103a91, + 0x42006000, 0xffffffff, 0x42006800, 0x00080000, + 0x0201f800, 0x00103a7d, 0x42006000, 0xfff7ffff, + 0x41786800, 0x0201f800, 0x00103a7d, 0x42006000, + 0xffffffff, 0x42006800, 0x00004000, 0x0201f800, + 0x00103a7d, 0x59c40004, 0x82000500, 0x00000003, + 0x04020006, 0x497b505a, 0x42000800, 0x00000003, + 0x0201f000, 0x0010395b, 0x1c01f000, 0x1c01f000, + 0x59a80010, 0x82006d80, 0x0000000f, 0x04000005, + 0x82000580, 0x0000001b, 0x02020800, 0x00103924, + 0x1c01f000, 0x59a80015, 0x84000506, 0x48035015, + 0x497b505e, 0x59a80010, 0x82000c80, 0x0000001e, + 0x02021800, 0x0010032d, 0x0c01f001, 0x0010348b, + 0x001034a2, 0x001034cb, 0x001034e6, 0x00103509, + 0x00103539, 0x0010355b, 0x0010358e, 0x001035b0, + 0x001035d2, 0x0010360e, 0x00103635, 0x0010364b, + 0x0010365d, 0x00103675, 0x0010368c, 0x00103691, + 0x001036b9, 0x001036dc, 0x00103702, 0x00103725, + 0x00103759, 0x0010379b, 0x001037c3, 0x001037db, + 0x0010381b, 0x00103834, 0x00103847, 0x00103848, + 0x4803c856, 0x4202d800, 0x00000007, 0x0201f800, + 0x00104755, 0x04000007, 0x42006000, 0xffffffd7, + 0x41786800, 0x0201f800, 0x00103a7d, 0x0401f00b, + 0x59c40006, 0x82000500, 0xffffff0f, 0x48038806, + 0x4a038805, 0x000000f0, 0x0201f800, 0x00104b8f, + 0x0201f800, 0x001046a4, 0x1c01f000, 0x4803c856, + 0x42006000, 0xbf7fffff, 0x42006800, 0x00400000, + 0x0201f800, 0x00103a7d, 0x0201f800, 0x001013be, + 0x4a035010, 0x00000001, 0x42001000, 0x001039e8, + 0x0201f800, 0x00105885, 0x0201f800, 0x001039f1, + 0x42000800, 0x000007d0, 0x42001000, 0x0010392f, + 0x0201f000, 0x001059a9, 0x59a8005a, 0x82000580, + 0x00000014, 0x04020023, 0x4803c857, 0x42006000, + 0xffbfffff, 0x41786800, 0x0201f800, 0x00103a7d, + 0x59c40004, 0x82000500, 0x00000003, 0x04020019, + 0x42001000, 0x0010392f, 0x0201f800, 0x00105872, + 0x59cc1006, 0x82081580, 0x11020000, 0x04020012, + 0x59cc1007, 0x8c08153e, 0x0400000b, 0x59a80015, + 0x8c000504, 0x04020008, 0x42000000, 0x0010bc6b, + 0x0201f800, 0x0010ae10, 0x59a80015, 0x84000544, + 0x48035015, 0x4a035010, 0x00000010, 0x0401f1ca, + 0x1c01f000, 0x0201f000, 0x00103924, 0x4803c856, + 0x4a035010, 0x00000003, 0x42006000, 0xbf3fffff, + 0x42006800, 0x00100000, 0x0201f800, 0x00103a7d, + 0x42001000, 0x001039e8, 0x0201f800, 0x00105885, + 0x0201f800, 0x001039f1, 0x42001000, 0x0010392f, + 0x0201f800, 0x00105872, 0x42007800, 0x0010b9a6, + 0x46007800, 0x11020000, 0x42000800, 0x00000005, + 0x0201f000, 0x0010395b, 0x59a8005a, 0x80000540, + 0x0400001e, 0x4803c857, 0x42001000, 0x0010392f, + 0x0201f800, 0x00105872, 0x59a8005a, 0x82000580, + 0x00000014, 0x04020016, 0x59cc1006, 0x82081580, + 0x11020000, 0x04020012, 0x59cc1007, 0x8c08153e, + 0x0400000b, 0x59a80015, 0x8c000504, 0x04020008, + 0x42000000, 0x0010bc6b, 0x0201f800, 0x0010ae10, + 0x59a80015, 0x84000544, 0x48035015, 0x4a035010, + 0x00000004, 0x0401f004, 0x1c01f000, 0x0201f000, + 0x00103924, 0x4803c856, 0x4a035010, 0x00000005, + 0x83cca400, 0x00000006, 0x4200a800, 0x0010b9a6, + 0x4200b000, 0x00000005, 0x0201f800, 0x0010aee2, + 0x42007800, 0x0010b9a6, 0x46007800, 0x11030000, + 0x8d0e1d06, 0x04020014, 0x59a80015, 0x8c000500, + 0x04020011, 0x59a8080f, 0x82040580, 0x00ffffff, + 0x0400000d, 0x82040d00, 0x000000ff, 0x82040400, + 0x00101b0f, 0x50000800, 0x80040910, 0x42001000, + 0x00000004, 0x0401fb92, 0x0400000b, 0x0201f800, + 0x00103a0b, 0x4200b000, 0x00000004, 0x83cca400, + 0x00000007, 0x4200a800, 0x0010b9a7, 0x0201f800, + 0x0010aee2, 0x42000800, 0x00000005, 0x0201f000, + 0x0010395b, 0x59a8005a, 0x80000540, 0x0400001e, + 0x4803c857, 0x42001000, 0x0010392f, 0x0201f800, + 0x00105872, 0x59a8005a, 0x82000580, 0x00000014, + 0x04020016, 0x59cc1006, 0x82081580, 0x11030000, 0x04020012, 0x59cc1007, 0x8c08153e, 0x0400000b, 0x59a80015, 0x8c000504, 0x04020008, 0x42000000, - 0x0010bb6b, 0x0201f800, 0x0010ad1d, 0x59a80015, - 0x84000544, 0x48035015, 0x4a035010, 0x00000010, - 0x0401f1ca, 0x1c01f000, 0x0201f000, 0x00103911, - 0x4803c856, 0x4a035010, 0x00000003, 0x42006000, - 0xbf3fffff, 0x42006800, 0x00100000, 0x0201f800, - 0x00103a6a, 0x42001000, 0x001039d5, 0x0201f800, - 0x001057e0, 0x0201f800, 0x001039de, 0x42001000, - 0x0010391c, 0x0201f800, 0x001057cd, 0x42007800, - 0x0010b8a6, 0x46007800, 0x11020000, 0x42000800, - 0x00000005, 0x0201f000, 0x00103948, 0x59a8005a, - 0x80000540, 0x0400001e, 0x4803c857, 0x42001000, - 0x0010391c, 0x0201f800, 0x001057cd, 0x59a8005a, - 0x82000580, 0x00000014, 0x04020016, 0x59cc1006, - 0x82081580, 0x11020000, 0x04020012, 0x59cc1007, - 0x8c08153e, 0x0400000b, 0x59a80015, 0x8c000504, - 0x04020008, 0x42000000, 0x0010bb6b, 0x0201f800, - 0x0010ad1d, 0x59a80015, 0x84000544, 0x48035015, - 0x4a035010, 0x00000004, 0x0401f004, 0x1c01f000, - 0x0201f000, 0x00103911, 0x4803c856, 0x4a035010, - 0x00000005, 0x83cca400, 0x00000006, 0x4200a800, - 0x0010b8a6, 0x4200b000, 0x00000005, 0x0201f800, - 0x0010adef, 0x42007800, 0x0010b8a6, 0x46007800, - 0x11030000, 0x8d0e1d06, 0x04020014, 0x59a80015, - 0x8c000500, 0x04020011, 0x59a8080f, 0x82040580, - 0x00ffffff, 0x0400000d, 0x82040d00, 0x000000ff, - 0x82040400, 0x00101b0a, 0x50000800, 0x80040910, - 0x42001000, 0x00000004, 0x0401fb92, 0x0400000b, - 0x0201f800, 0x001039f8, 0x4200b000, 0x00000004, - 0x83cca400, 0x00000007, 0x4200a800, 0x0010b8a7, - 0x0201f800, 0x0010adef, 0x42000800, 0x00000005, - 0x0201f000, 0x00103948, 0x59a8005a, 0x80000540, - 0x0400001e, 0x4803c857, 0x42001000, 0x0010391c, - 0x0201f800, 0x001057cd, 0x59a8005a, 0x82000580, - 0x00000014, 0x04020016, 0x59cc1006, 0x82081580, - 0x11030000, 0x04020012, 0x59cc1007, 0x8c08153e, - 0x0400000b, 0x59a80015, 0x8c000504, 0x04020008, - 0x42000000, 0x0010bb6b, 0x0201f800, 0x0010ad1d, - 0x59a80015, 0x84000544, 0x48035015, 0x4a035010, - 0x00000006, 0x0401f003, 0x1c01f000, 0x0401f3ca, - 0x4803c856, 0x4a035010, 0x00000007, 0x83cca400, - 0x00000006, 0x4200a800, 0x0010b8a6, 0x4200b000, - 0x00000005, 0x0201f800, 0x0010adef, 0x42007800, - 0x0010b8a6, 0x46007800, 0x11040000, 0x8d0e1d06, - 0x04020020, 0x59a80015, 0x8c000500, 0x0402001d, - 0x599c0017, 0x8c000500, 0x0400001a, 0x599c1402, - 0x82080480, 0x0000007f, 0x02021800, 0x0010032d, - 0x4c080000, 0x82081400, 0x00101b0a, 0x50081000, - 0x82081500, 0x000000ff, 0x480b500f, 0x42000800, - 0x00000003, 0x0201f800, 0x00106134, 0x5c000800, - 0x42001000, 0x00000004, 0x0401fb36, 0x04000005, - 0x0401fcfd, 0x04000003, 0x4803c856, 0x850e1d46, - 0x42000800, 0x00000005, 0x0401f3ce, 0x59a8005a, - 0x80000540, 0x0400001e, 0x4803c857, 0x42001000, - 0x0010391c, 0x0201f800, 0x001057cd, 0x59a8005a, - 0x82000580, 0x00000014, 0x04020016, 0x59cc1006, - 0x82081580, 0x11040000, 0x04020012, 0x59cc1007, - 0x8c08153e, 0x0400000b, 0x59a80015, 0x8c000504, - 0x04020008, 0x42000000, 0x0010bb6b, 0x0201f800, - 0x0010ad1d, 0x59a80015, 0x84000544, 0x48035015, - 0x4a035010, 0x00000008, 0x0401f003, 0x1c01f000, - 0x0401f375, 0x4803c856, 0x4a035010, 0x00000009, - 0x83cca400, 0x00000006, 0x4200a800, 0x0010b8a6, - 0x4200b000, 0x00000005, 0x0201f800, 0x0010adef, - 0x42007800, 0x0010b8a6, 0x46007800, 0x11050100, - 0x8d0e1d06, 0x04020008, 0x59a80015, 0x8c000500, - 0x04020005, 0x0401fa85, 0x04020003, 0x4803c856, - 0x850e1d46, 0x42000800, 0x00000005, 0x0401fb91, - 0x4d3c0000, 0x42027800, 0x00000001, 0x0201f800, - 0x00109146, 0x5c027800, 0x1c01f000, 0x59a8005a, - 0x80000540, 0x04000038, 0x4803c857, 0x42001000, - 0x0010391c, 0x0201f800, 0x001057cd, 0x59a8005a, - 0x82000580, 0x00000014, 0x04020030, 0x59cc1006, - 0x82080500, 0x11050000, 0x82000580, 0x11050000, - 0x0402002a, 0x8c081510, 0x04000014, 0x59cc1007, - 0x8c08153e, 0x0400000b, 0x59a80015, 0x8c000504, - 0x04020008, 0x42000000, 0x0010bb6b, 0x0201f800, - 0x0010ad1d, 0x59a80015, 0x84000544, 0x48035015, - 0x4a035056, 0x00000001, 0x4a035010, 0x0000000a, - 0x0401f817, 0x0401f014, 0x80000540, 0x04020013, - 0x59cc1007, 0x8c08153e, 0x0400000b, 0x59a80015, - 0x8c000504, 0x04020008, 0x42000000, 0x0010bb6b, - 0x0201f800, 0x0010ad1d, 0x59a80015, 0x84000544, - 0x48035015, 0x497b5056, 0x4a035010, 0x0000000e, - 0x0401f06a, 0x1c01f000, 0x0401f317, 0x4803c856, - 0x4a035010, 0x0000000b, 0x42001000, 0x0010b8a7, - 0x4008a800, 0x4200b000, 0x00000020, 0x4600a800, - 0xffffffff, 0x8054a800, 0x8058b040, 0x040207fc, - 0x42007800, 0x0010b8a6, 0x46007800, 0x11060000, - 0x42001000, 0x0010b8a7, 0x8d0e1d06, 0x04000005, - 0x50080000, 0x46001000, 0x00ffffff, 0x0401f00c, - 0x50080800, 0x82040d00, 0x0000ffff, 0x59a8000f, - 0x82000500, 0x000000ff, 0x82000540, 0x00000100, - 0x800000e0, 0x80040d40, 0x44041000, 0x42000800, - 0x00000021, 0x0401f327, 0x59a8005a, 0x80000540, - 0x04000012, 0x4803c857, 0x59a8005a, 0x42001000, - 0x0010391c, 0x0201f800, 0x001057cd, 0x59a8005a, - 0x82000580, 0x00000084, 0x04020009, 0x59cc1006, - 0x82081580, 0x11060000, 0x04020005, 0x4a035010, - 0x0000000c, 0x0401f003, 0x1c01f000, 0x0401f2da, - 0x4803c856, 0x4a035010, 0x0000000d, 0x83cca400, - 0x00000006, 0x4200a800, 0x0010b8a6, 0x4200b000, - 0x00000021, 0x0201f800, 0x0010adef, 0x42007800, - 0x0010b8a6, 0x46007800, 0x11070000, 0x42000800, - 0x00000021, 0x0401f2ff, 0x59a8005a, 0x80000540, - 0x04000014, 0x4803c857, 0x59a8005a, 0x42001000, - 0x0010391c, 0x0201f800, 0x001057cd, 0x82000580, - 0x00000084, 0x0402000c, 0x59cc1006, 0x82081580, - 0x11070000, 0x04020008, 0x4a035056, 0x00000001, - 0x0401fa90, 0x4a035010, 0x0000000e, 0x0401f003, - 0x1c01f000, 0x0401f2b0, 0x4803c856, 0x82040d40, - 0x00000001, 0x0201f800, 0x00103a77, 0x4a035010, - 0x0000000f, 0x497b505a, 0x42006000, 0xffffffff, - 0x42006800, 0x00300000, 0x0401fbfc, 0x42006000, - 0xffdfffff, 0x41786800, 0x0401fbf8, 0x42000800, - 0x000007d0, 0x42001000, 0x0010391c, 0x0201f000, - 0x001057a4, 0x4803c856, 0x59a8005a, 0x80000540, - 0x04020295, 0x1c01f000, 0x4803c856, 0x4a035010, - 0x00000011, 0x83cca400, 0x00000006, 0x4200a800, - 0x0010b8a6, 0x4200b000, 0x00000005, 0x0201f800, - 0x0010adef, 0x4200a800, 0x0010b8a6, 0x4600a800, - 0x11020000, 0x8d0e1d06, 0x04020015, 0x59a8000f, - 0x82000d00, 0xffff0000, 0x04000011, 0x82000500, - 0x000000ff, 0x0400000e, 0x82000c00, 0x00101b0a, - 0x50040800, 0x80040910, 0x82040580, 0x0000007e, - 0x04000007, 0x82040580, 0x00000080, 0x04000004, - 0x42001000, 0x00000004, 0x0401fa06, 0x42000800, - 0x00000005, 0x0401f2a3, 0x59a8005a, 0x80000540, - 0x04000020, 0x4803c857, 0x42001000, 0x0010391c, - 0x0201f800, 0x001057cd, 0x59a8005a, 0x82000580, - 0x00000014, 0x04020016, 0x59cc1006, 0x82081580, - 0x11030000, 0x04020012, 0x59cc1007, 0x8c08153e, - 0x0400000b, 0x59a80015, 0x8c000504, 0x04020008, - 0x42000000, 0x0010bb6b, 0x0201f800, 0x0010ad1d, - 0x59a80015, 0x84000544, 0x48035015, 0x4a035010, - 0x00000012, 0x0401f804, 0x0401f002, 0x0401fa4a, - 0x1c01f000, 0x4803c856, 0x4a035010, 0x00000013, - 0x83cca400, 0x00000006, 0x4200a800, 0x0010b8a6, - 0x4200b000, 0x00000005, 0x0201f800, 0x0010adef, - 0x4200a800, 0x0010b8a6, 0x4600a800, 0x11030000, - 0x8d0e1d06, 0x04020013, 0x59a80015, 0x8c000500, - 0x04020010, 0x59a8080f, 0x82040580, 0x00ffffff, - 0x0400000c, 0x82040d00, 0x000000ff, 0x82040400, - 0x00101b0a, 0x50000800, 0x80040910, 0x42001000, - 0x00000004, 0x0401f9bf, 0x04000002, 0x0401fb0d, - 0x42000800, 0x00000005, 0x0401f25a, 0x59a8005a, - 0x80000540, 0x04000020, 0x4803c857, 0x42001000, - 0x0010391c, 0x0201f800, 0x001057cd, 0x59a8005a, - 0x82000580, 0x00000014, 0x04020016, 0x59cc1006, - 0x82081580, 0x11040000, 0x04020012, 0x59cc1007, - 0x8c08153e, 0x0400000b, 0x59a80015, 0x8c000504, - 0x04020008, 0x42000000, 0x0010bb6b, 0x0201f800, - 0x0010ad1d, 0x59a80015, 0x84000544, 0x48035015, - 0x4a035010, 0x00000014, 0x0401f804, 0x0401f002, - 0x0401fa01, 0x1c01f000, 0x4803c856, 0x4a035010, - 0x00000015, 0x83cca400, 0x00000006, 0x4200a800, - 0x0010b8a6, 0x4200b000, 0x00000005, 0x0201f800, - 0x0010adef, 0x4200a800, 0x0010b8a6, 0x4600a800, - 0x11040000, 0x8d0e1d06, 0x04020021, 0x59a80015, - 0x8c000500, 0x0402001e, 0x599c0017, 0x8c000500, - 0x0400001b, 0x599c1402, 0x82080480, 0x0000007f, - 0x02021800, 0x0010032d, 0x4c080000, 0x82081400, - 0x00101b0a, 0x50081000, 0x82081500, 0x000000ff, - 0x480b500f, 0x42000800, 0x00000003, 0x0201f800, - 0x00106134, 0x5c000800, 0x42001000, 0x00000004, - 0x0401f96c, 0x04000006, 0x0201f800, 0x00103271, + 0x0010bc6b, 0x0201f800, 0x0010ae10, 0x59a80015, + 0x84000544, 0x48035015, 0x4a035010, 0x00000006, + 0x0401f003, 0x1c01f000, 0x0401f3ca, 0x4803c856, + 0x4a035010, 0x00000007, 0x83cca400, 0x00000006, + 0x4200a800, 0x0010b9a6, 0x4200b000, 0x00000005, + 0x0201f800, 0x0010aee2, 0x42007800, 0x0010b9a6, + 0x46007800, 0x11040000, 0x8d0e1d06, 0x04020020, + 0x59a80015, 0x8c000500, 0x0402001d, 0x599c0017, + 0x8c000500, 0x0400001a, 0x599c1402, 0x82080480, + 0x0000007f, 0x02021800, 0x0010032d, 0x4c080000, + 0x82081400, 0x00101b0f, 0x50081000, 0x82081500, + 0x000000ff, 0x480b500f, 0x42000800, 0x00000003, + 0x0201f800, 0x001061d9, 0x5c000800, 0x42001000, + 0x00000004, 0x0401fb36, 0x04000005, 0x0401fcf4, 0x04000003, 0x4803c856, 0x850e1d46, 0x42000800, - 0x00000005, 0x0401f203, 0x59a8005a, 0x80000540, - 0x0400003f, 0x4803c857, 0x42001000, 0x0010391c, - 0x0201f800, 0x001057cd, 0x59a8005a, 0x82000580, - 0x00000014, 0x04020035, 0x59cc1006, 0x82080500, - 0x11050000, 0x82000580, 0x11050000, 0x0402002f, - 0x8c081510, 0x04000010, 0x0401fb1d, 0x59cc1007, + 0x00000005, 0x0401f3ce, 0x59a8005a, 0x80000540, + 0x0400001e, 0x4803c857, 0x42001000, 0x0010392f, + 0x0201f800, 0x00105872, 0x59a8005a, 0x82000580, + 0x00000014, 0x04020016, 0x59cc1006, 0x82081580, + 0x11040000, 0x04020012, 0x59cc1007, 0x8c08153e, + 0x0400000b, 0x59a80015, 0x8c000504, 0x04020008, + 0x42000000, 0x0010bc6b, 0x0201f800, 0x0010ae10, + 0x59a80015, 0x84000544, 0x48035015, 0x4a035010, + 0x00000008, 0x0401f003, 0x1c01f000, 0x0401f375, + 0x4803c856, 0x4a035010, 0x00000009, 0x83cca400, + 0x00000006, 0x4200a800, 0x0010b9a6, 0x4200b000, + 0x00000005, 0x0201f800, 0x0010aee2, 0x42007800, + 0x0010b9a6, 0x46007800, 0x11050100, 0x8d0e1d06, + 0x04020008, 0x59a80015, 0x8c000500, 0x04020005, + 0x0401fa85, 0x04020003, 0x4803c856, 0x850e1d46, + 0x42000800, 0x00000005, 0x0401fb91, 0x4d3c0000, + 0x42027800, 0x00000001, 0x0201f800, 0x001091ff, + 0x5c027800, 0x1c01f000, 0x59a8005a, 0x80000540, + 0x04000038, 0x4803c857, 0x42001000, 0x0010392f, + 0x0201f800, 0x00105872, 0x59a8005a, 0x82000580, + 0x00000014, 0x04020030, 0x59cc1006, 0x82080500, + 0x11050000, 0x82000580, 0x11050000, 0x0402002a, + 0x8c081510, 0x04000014, 0x59cc1007, 0x8c08153e, + 0x0400000b, 0x59a80015, 0x8c000504, 0x04020008, + 0x42000000, 0x0010bc6b, 0x0201f800, 0x0010ae10, + 0x59a80015, 0x84000544, 0x48035015, 0x4a035056, + 0x00000001, 0x4a035010, 0x0000000a, 0x0401f817, + 0x0401f014, 0x80000540, 0x04020013, 0x59cc1007, 0x8c08153e, 0x0400000b, 0x59a80015, 0x8c000504, - 0x04020008, 0x42000000, 0x0010bb6b, 0x0201f800, - 0x0010ad1d, 0x59a80015, 0x84000544, 0x48035015, - 0x0401f013, 0x59cc1007, 0x8c08153e, 0x0400000b, + 0x04020008, 0x42000000, 0x0010bc6b, 0x0201f800, + 0x0010ae10, 0x59a80015, 0x84000544, 0x48035015, + 0x497b5056, 0x4a035010, 0x0000000e, 0x0401f06a, + 0x1c01f000, 0x0401f317, 0x4803c856, 0x4a035010, + 0x0000000b, 0x42001000, 0x0010b9a7, 0x4008a800, + 0x4200b000, 0x00000020, 0x4600a800, 0xffffffff, + 0x8054a800, 0x8058b040, 0x040207fc, 0x42007800, + 0x0010b9a6, 0x46007800, 0x11060000, 0x42001000, + 0x0010b9a7, 0x8d0e1d06, 0x04000005, 0x50080000, + 0x46001000, 0x00ffffff, 0x0401f00c, 0x50080800, + 0x82040d00, 0x0000ffff, 0x59a8000f, 0x82000500, + 0x000000ff, 0x82000540, 0x00000100, 0x800000e0, + 0x80040d40, 0x44041000, 0x42000800, 0x00000021, + 0x0401f327, 0x59a8005a, 0x80000540, 0x04000012, + 0x4803c857, 0x59a8005a, 0x42001000, 0x0010392f, + 0x0201f800, 0x00105872, 0x59a8005a, 0x82000580, + 0x00000084, 0x04020009, 0x59cc1006, 0x82081580, + 0x11060000, 0x04020005, 0x4a035010, 0x0000000c, + 0x0401f003, 0x1c01f000, 0x0401f2da, 0x4803c856, + 0x4a035010, 0x0000000d, 0x83cca400, 0x00000006, + 0x4200a800, 0x0010b9a6, 0x4200b000, 0x00000021, + 0x0201f800, 0x0010aee2, 0x42007800, 0x0010b9a6, + 0x46007800, 0x11070000, 0x42000800, 0x00000021, + 0x0401f2ff, 0x59a8005a, 0x80000540, 0x04000014, + 0x4803c857, 0x59a8005a, 0x42001000, 0x0010392f, + 0x0201f800, 0x00105872, 0x82000580, 0x00000084, + 0x0402000c, 0x59cc1006, 0x82081580, 0x11070000, + 0x04020008, 0x4a035056, 0x00000001, 0x0401fa90, + 0x4a035010, 0x0000000e, 0x0401f003, 0x1c01f000, + 0x0401f2b0, 0x4803c856, 0x82040d40, 0x00000001, + 0x0201f800, 0x00103a8a, 0x4a035010, 0x0000000f, + 0x497b505a, 0x42006000, 0xffffffff, 0x42006800, + 0x00300000, 0x0401fbfc, 0x42006000, 0xffdfffff, + 0x41786800, 0x0401fbf8, 0x42000800, 0x000007d0, + 0x42001000, 0x0010392f, 0x0201f000, 0x00105849, + 0x4803c856, 0x59a8005a, 0x80000540, 0x04020295, + 0x1c01f000, 0x4803c856, 0x4a035010, 0x00000011, + 0x83cca400, 0x00000006, 0x4200a800, 0x0010b9a6, + 0x4200b000, 0x00000005, 0x0201f800, 0x0010aee2, + 0x4200a800, 0x0010b9a6, 0x4600a800, 0x11020000, + 0x8d0e1d06, 0x04020015, 0x59a8000f, 0x82000d00, + 0xffff0000, 0x04000011, 0x82000500, 0x000000ff, + 0x0400000e, 0x82000c00, 0x00101b0f, 0x50040800, + 0x80040910, 0x82040580, 0x0000007e, 0x04000007, + 0x82040580, 0x00000080, 0x04000004, 0x42001000, + 0x00000004, 0x0401fa06, 0x42000800, 0x00000005, + 0x0401f2a3, 0x59a8005a, 0x80000540, 0x04000020, + 0x4803c857, 0x42001000, 0x0010392f, 0x0201f800, + 0x00105872, 0x59a8005a, 0x82000580, 0x00000014, + 0x04020016, 0x59cc1006, 0x82081580, 0x11030000, + 0x04020012, 0x59cc1007, 0x8c08153e, 0x0400000b, 0x59a80015, 0x8c000504, 0x04020008, 0x42000000, - 0x0010bb6b, 0x0201f800, 0x0010ad1d, 0x59a80015, - 0x84000544, 0x48035015, 0x82000540, 0x00000001, - 0x0401faff, 0x497b5056, 0x0401f003, 0x4a035056, - 0x00000001, 0x59cc1007, 0x8c08153c, 0x04000003, - 0x4a03521b, 0x00000008, 0x4a035010, 0x00000016, - 0x0401f804, 0x0401f002, 0x0401f98b, 0x1c01f000, - 0x4803c856, 0x83cca400, 0x00000006, 0x4200a800, - 0x0010b8a6, 0x4200b000, 0x00000005, 0x0201f800, - 0x0010adef, 0x4a035010, 0x00000017, 0x59a80056, - 0x8c000500, 0x04000006, 0x42001000, 0x0010b8a6, - 0x46001000, 0x11050100, 0x0401f003, 0x4a035010, - 0x0000001b, 0x8d0e1d06, 0x04020008, 0x59a80015, - 0x8c000500, 0x04020005, 0x0401f894, 0x04020003, + 0x0010bc6b, 0x0201f800, 0x0010ae10, 0x59a80015, + 0x84000544, 0x48035015, 0x4a035010, 0x00000012, + 0x0401f804, 0x0401f002, 0x0401fa4a, 0x1c01f000, + 0x4803c856, 0x4a035010, 0x00000013, 0x83cca400, + 0x00000006, 0x4200a800, 0x0010b9a6, 0x4200b000, + 0x00000005, 0x0201f800, 0x0010aee2, 0x4200a800, + 0x0010b9a6, 0x4600a800, 0x11030000, 0x8d0e1d06, + 0x04020013, 0x59a80015, 0x8c000500, 0x04020010, + 0x59a8080f, 0x82040580, 0x00ffffff, 0x0400000c, + 0x82040d00, 0x000000ff, 0x82040400, 0x00101b0f, + 0x50000800, 0x80040910, 0x42001000, 0x00000004, + 0x0401f9bf, 0x04000002, 0x0401fb0d, 0x42000800, + 0x00000005, 0x0401f25a, 0x59a8005a, 0x80000540, + 0x04000020, 0x4803c857, 0x42001000, 0x0010392f, + 0x0201f800, 0x00105872, 0x59a8005a, 0x82000580, + 0x00000014, 0x04020016, 0x59cc1006, 0x82081580, + 0x11040000, 0x04020012, 0x59cc1007, 0x8c08153e, + 0x0400000b, 0x59a80015, 0x8c000504, 0x04020008, + 0x42000000, 0x0010bc6b, 0x0201f800, 0x0010ae10, + 0x59a80015, 0x84000544, 0x48035015, 0x4a035010, + 0x00000014, 0x0401f804, 0x0401f002, 0x0401fa01, + 0x1c01f000, 0x4803c856, 0x4a035010, 0x00000015, + 0x83cca400, 0x00000006, 0x4200a800, 0x0010b9a6, + 0x4200b000, 0x00000005, 0x0201f800, 0x0010aee2, + 0x4200a800, 0x0010b9a6, 0x4600a800, 0x11040000, + 0x8d0e1d06, 0x04020021, 0x59a80015, 0x8c000500, + 0x0402001e, 0x599c0017, 0x8c000500, 0x0400001b, + 0x599c1402, 0x82080480, 0x0000007f, 0x02021800, + 0x0010032d, 0x4c080000, 0x82081400, 0x00101b0f, + 0x50081000, 0x82081500, 0x000000ff, 0x480b500f, + 0x42000800, 0x00000003, 0x0201f800, 0x001061d9, + 0x5c000800, 0x42001000, 0x00000004, 0x0401f96c, + 0x04000006, 0x0201f800, 0x0010327b, 0x04000003, 0x4803c856, 0x850e1d46, 0x42000800, 0x00000005, - 0x0401f9a0, 0x4d3c0000, 0x42027800, 0x00000001, - 0x0201f800, 0x00109146, 0x5c027800, 0x1c01f000, - 0x59a8005a, 0x80000540, 0x04000015, 0x4803c857, - 0x42001000, 0x0010391c, 0x0201f800, 0x001057cd, - 0x59a8005a, 0x82000580, 0x00000084, 0x0402000b, - 0x59cc1006, 0x82081580, 0x11060000, 0x04020007, - 0x80000580, 0x0401fab6, 0x4a035010, 0x00000018, - 0x0401f804, 0x0401f002, 0x0401f94b, 0x1c01f000, - 0x4803c856, 0x4a035010, 0x00000019, 0x83cca400, - 0x00000006, 0x4200a800, 0x0010b8a6, 0x4200b000, - 0x00000021, 0x0201f800, 0x0010adef, 0x42003800, - 0x0010b8a7, 0x8d0e1d06, 0x04020018, 0x401c2800, - 0x50141000, 0x80080130, 0x80000000, 0x40001800, - 0x82081500, 0x00ffffff, 0x800000f0, 0x80080540, - 0x44002800, 0x59a8080f, 0x82040d00, 0x000000ff, - 0x400c1000, 0x80081104, 0x82082400, 0x0010b8a7, - 0x50101000, 0x820c0500, 0x00000003, 0x0c01f806, - 0x80081540, 0x44082000, 0x42000800, 0x00000021, - 0x0401f158, 0x001037f5, 0x001037fa, 0x001037ff, - 0x00103804, 0x800408f0, 0x40040000, 0x82081500, - 0x00ffffff, 0x1c01f000, 0x800408e0, 0x40040000, - 0x82081500, 0xff00ffff, 0x1c01f000, 0x800408d0, - 0x40040000, 0x82081500, 0xffff00ff, 0x1c01f000, - 0x40040000, 0x82081500, 0xffffff00, 0x1c01f000, - 0x59a8005a, 0x80000540, 0x04000016, 0x4803c857, - 0x42001000, 0x0010391c, 0x0201f800, 0x001057cd, - 0x59a8005a, 0x82000580, 0x00000084, 0x0402000c, - 0x59cc1006, 0x82081580, 0x11070000, 0x04020008, - 0x4a035056, 0x00000001, 0x0401f8d2, 0x4a035010, - 0x0000001a, 0x0401f804, 0x0401f002, 0x0401f8f2, - 0x1c01f000, 0x82000540, 0x00000001, 0x0401fa54, - 0x4a035010, 0x0000001b, 0x83cca400, 0x00000006, - 0x4200a800, 0x0010b8a6, 0x59a8205a, 0x40100000, - 0x8000b104, 0x40580800, 0x5450a800, 0x8050a000, - 0x8054a800, 0x8058b040, 0x040207fc, 0x0401f115, - 0x1c01f000, 0x1c01f000, 0x4803c856, 0x42003000, - 0x00000004, 0x42004000, 0x0010b8a7, 0x599c2817, - 0x8c142d14, 0x0402001f, 0x42001000, 0x00000003, + 0x0401f203, 0x59a8005a, 0x80000540, 0x0400003f, + 0x4803c857, 0x42001000, 0x0010392f, 0x0201f800, + 0x00105872, 0x59a8005a, 0x82000580, 0x00000014, + 0x04020035, 0x59cc1006, 0x82080500, 0x11050000, + 0x82000580, 0x11050000, 0x0402002f, 0x8c081510, + 0x04000010, 0x0401fb1d, 0x59cc1007, 0x8c08153e, + 0x0400000b, 0x59a80015, 0x8c000504, 0x04020008, + 0x42000000, 0x0010bc6b, 0x0201f800, 0x0010ae10, + 0x59a80015, 0x84000544, 0x48035015, 0x0401f013, + 0x59cc1007, 0x8c08153e, 0x0400000b, 0x59a80015, + 0x8c000504, 0x04020008, 0x42000000, 0x0010bc6b, + 0x0201f800, 0x0010ae10, 0x59a80015, 0x84000544, + 0x48035015, 0x82000540, 0x00000001, 0x0401faff, + 0x497b5056, 0x0401f003, 0x4a035056, 0x00000001, + 0x59cc1007, 0x8c08153c, 0x04000003, 0x4a03521b, + 0x00000008, 0x4a035010, 0x00000016, 0x0401f804, + 0x0401f002, 0x0401f98b, 0x1c01f000, 0x4803c856, + 0x83cca400, 0x00000006, 0x4200a800, 0x0010b9a6, + 0x4200b000, 0x00000005, 0x0201f800, 0x0010aee2, + 0x4a035010, 0x00000017, 0x59a80056, 0x8c000500, + 0x04000006, 0x42001000, 0x0010b9a6, 0x46001000, + 0x11050100, 0x0401f003, 0x4a035010, 0x0000001b, + 0x8d0e1d06, 0x04020008, 0x59a80015, 0x8c000500, + 0x04020005, 0x0401f894, 0x04020003, 0x4803c856, + 0x850e1d46, 0x42000800, 0x00000005, 0x0401f9a0, + 0x4d3c0000, 0x42027800, 0x00000001, 0x0201f800, + 0x001091ff, 0x5c027800, 0x1c01f000, 0x59a8005a, + 0x80000540, 0x04000015, 0x4803c857, 0x42001000, + 0x0010392f, 0x0201f800, 0x00105872, 0x59a8005a, + 0x82000580, 0x00000084, 0x0402000b, 0x59cc1006, + 0x82081580, 0x11060000, 0x04020007, 0x80000580, + 0x0401fab6, 0x4a035010, 0x00000018, 0x0401f804, + 0x0401f002, 0x0401f94b, 0x1c01f000, 0x4803c856, + 0x4a035010, 0x00000019, 0x83cca400, 0x00000006, + 0x4200a800, 0x0010b9a6, 0x4200b000, 0x00000021, + 0x0201f800, 0x0010aee2, 0x42003800, 0x0010b9a7, + 0x8d0e1d06, 0x04020018, 0x401c2800, 0x50141000, + 0x80080130, 0x80000000, 0x40001800, 0x82081500, + 0x00ffffff, 0x800000f0, 0x80080540, 0x44002800, + 0x59a8080f, 0x82040d00, 0x000000ff, 0x400c1000, + 0x80081104, 0x82082400, 0x0010b9a7, 0x50101000, + 0x820c0500, 0x00000003, 0x0c01f806, 0x80081540, + 0x44082000, 0x42000800, 0x00000021, 0x0401f158, + 0x00103808, 0x0010380d, 0x00103812, 0x00103817, + 0x800408f0, 0x40040000, 0x82081500, 0x00ffffff, + 0x1c01f000, 0x800408e0, 0x40040000, 0x82081500, + 0xff00ffff, 0x1c01f000, 0x800408d0, 0x40040000, + 0x82081500, 0xffff00ff, 0x1c01f000, 0x40040000, + 0x82081500, 0xffffff00, 0x1c01f000, 0x59a8005a, + 0x80000540, 0x04000016, 0x4803c857, 0x42001000, + 0x0010392f, 0x0201f800, 0x00105872, 0x59a8005a, + 0x82000580, 0x00000084, 0x0402000c, 0x59cc1006, + 0x82081580, 0x11070000, 0x04020008, 0x4a035056, + 0x00000001, 0x0401f8d2, 0x4a035010, 0x0000001a, + 0x0401f804, 0x0401f002, 0x0401f8f2, 0x1c01f000, + 0x82000540, 0x00000001, 0x0401fa54, 0x4a035010, + 0x0000001b, 0x83cca400, 0x00000006, 0x4200a800, + 0x0010b9a6, 0x59a8205a, 0x40100000, 0x8000b104, + 0x40580800, 0x5450a800, 0x8050a000, 0x8054a800, + 0x8058b040, 0x040207fc, 0x0401f115, 0x1c01f000, + 0x1c01f000, 0x4803c856, 0x42003000, 0x00000004, + 0x42004000, 0x0010b9a7, 0x599c2817, 0x8c142d14, + 0x0402001f, 0x42001000, 0x00000003, 0x40200000, + 0x80080400, 0x50000800, 0x82042580, 0xffffffff, + 0x04020005, 0x80081040, 0x80183040, 0x040207f8, + 0x0401f05e, 0x800811c0, 0x04020006, 0x82042580, + 0x3fffffff, 0x04000058, 0x82040d40, 0xc0000000, + 0x4200b000, 0x00000020, 0x42001800, 0x00000001, + 0x40042000, 0x80102102, 0x04021021, 0x800c18c2, + 0x8058b040, 0x040207fc, 0x0401f04b, 0x41781000, 0x40200000, 0x80080400, 0x50000800, 0x82042580, - 0xffffffff, 0x04020005, 0x80081040, 0x80183040, - 0x040207f8, 0x0401f05e, 0x800811c0, 0x04020006, - 0x82042580, 0x3fffffff, 0x04000058, 0x82040d40, - 0xc0000000, 0x4200b000, 0x00000020, 0x42001800, - 0x00000001, 0x40042000, 0x80102102, 0x04021021, - 0x800c18c2, 0x8058b040, 0x040207fc, 0x0401f04b, - 0x41781000, 0x40200000, 0x80080400, 0x50000800, - 0x82042580, 0xffffffff, 0x04020005, 0x80081000, - 0x80183040, 0x040207f8, 0x0401f040, 0x800811c0, - 0x04020003, 0x82040d40, 0xc0000000, 0x4200b000, - 0x00000001, 0x42001800, 0x80000000, 0x40042000, - 0x801020c2, 0x04021007, 0x800c1902, 0x8058b000, - 0x82580480, 0x00000021, 0x040017fa, 0x0401f02f, - 0x40200000, 0x80082400, 0x50100000, 0x800c0540, - 0x44002000, 0x59a80015, 0x84000540, 0x48035015, - 0x40580000, 0x42002800, 0x00000020, 0x80142c80, - 0x40080000, 0x42003800, 0x00000003, 0x801c0480, - 0x800000ca, 0x80142d40, 0x82144c00, 0x00101b0a, - 0x50242800, 0x82142d00, 0x000000ff, 0x4817500f, - 0x4c040000, 0x40140800, 0x0201f800, 0x001013c8, - 0x5c000800, 0x40001800, 0x500c0000, 0x80100540, - 0x44001800, 0x59a80015, 0x84000540, 0x48035015, - 0x4200a800, 0x0010b8a7, 0x4020a000, 0x4200b000, - 0x00000004, 0x0201f800, 0x0010adef, 0x82000540, - 0x00000001, 0x0401f002, 0x80000580, 0x1c01f000, - 0x4807c857, 0x480bc857, 0x4008b000, 0x83cca400, - 0x00000007, 0x4200a800, 0x0010b8a7, 0x40541000, - 0x0201f800, 0x0010adef, 0x40041800, 0x41782000, - 0x42000000, 0x00000003, 0x820c1c80, 0x00000020, - 0x04001004, 0x80102000, 0x80000040, 0x0401f7fb, - 0x40041800, 0x801021c0, 0x04000005, 0x820c1c80, - 0x00000020, 0x80102040, 0x040207fd, 0x42002000, - 0x00000001, 0x800c19c0, 0x04000004, 0x801020c2, - 0x800c1840, 0x040207fe, 0x80083c00, 0x83cc2c00, - 0x00000007, 0x80142c00, 0x50140000, 0x80102d00, - 0x04020012, 0x80100540, 0x44003800, 0x82042400, - 0x00101b0a, 0x50102800, 0x82142d00, 0x000000ff, - 0x4817500f, 0x4c040000, 0x40140800, 0x0201f800, - 0x001013c8, 0x5c000800, 0x59a80015, 0x84000540, - 0x48035015, 0x80000580, 0x1c01f000, 0x4807c856, - 0x42001000, 0x00008017, 0x59a81832, 0x0201f800, - 0x0010ad27, 0x0201f800, 0x001031eb, 0x1c01f000, - 0x4807c856, 0x4200b000, 0x00000020, 0x83cca400, - 0x00000007, 0x4200a800, 0x0010c1c7, 0x0201f000, - 0x0010ae19, 0x4807c856, 0x0201f800, 0x001063db, - 0x42000800, 0x000000f7, 0x0401f8f1, 0x497b2804, - 0x497b2805, 0x497b2826, 0x497b2827, 0x4202d800, - 0x00000001, 0x42006000, 0xbe7fffff, 0x42006800, - 0x00018000, 0x0401f965, 0x42006000, 0xfffeffff, - 0x41786800, 0x0401f961, 0x497b5032, 0x42000800, - 0x0000002d, 0x42001000, 0x0010399e, 0x0201f000, - 0x001057a4, 0x4807c856, 0x0401ffe3, 0x497b5010, - 0x497b505a, 0x1c01f000, 0x4807c856, 0x42006000, - 0xffffffff, 0x42006800, 0x00000028, 0x0401f14f, - 0x4807c856, 0x0401ffc6, 0x0201f800, 0x0010610d, - 0x4df00000, 0x0201f800, 0x00106305, 0x5c03e000, - 0x02000800, 0x001060fa, 0x59c400a4, 0x82000500, - 0x0000000f, 0x82000580, 0x00000002, 0x0402000a, - 0x42006000, 0xffffffff, 0x42006800, 0x00200000, - 0x0401f93a, 0x42006000, 0xffdfffff, 0x41786800, - 0x0401f936, 0x497b5010, 0x42000800, 0x000000f7, - 0x0401f8b3, 0x59c400a3, 0x82000500, 0xbf20bfff, - 0x82000540, 0x0001c000, 0x480388a3, 0x84000520, - 0x480388a3, 0x497b5032, 0x42000800, 0x0000002d, - 0x42001000, 0x0010399e, 0x0201f000, 0x001057a4, - 0x497b505a, 0x59b400f5, 0x8c000500, 0x04020004, - 0x82000540, 0x00000001, 0x480368f5, 0x800400c4, - 0x82000400, 0x00002000, 0x4803910a, 0x59b400f6, - 0x82000500, 0x00000018, 0x040207fd, 0x4a0368f0, - 0x0010b89f, 0x42000000, 0x0010b8a6, 0x4c040000, - 0x50000800, 0x82040d80, 0x11010000, 0x04000003, - 0x50000800, 0x4807c857, 0x5c000800, 0x480368f1, - 0x82040400, 0x0000dc00, 0x480368f3, 0x59c400a4, - 0x82000500, 0x0000000f, 0x82000580, 0x00000008, - 0x04020017, 0x4c5c0000, 0x4c600000, 0x59c4b805, - 0x8c5cbd3a, 0x04020005, 0x42000000, 0x0010bb68, - 0x0201f800, 0x0010ad1d, 0x4a038805, 0x20000000, - 0x0201f800, 0x001017f1, 0x4000c000, 0x0201f800, - 0x0010175e, 0x4202d800, 0x00000001, 0x497b5010, - 0x5c00c000, 0x5c00b800, 0x1c01f000, 0x59c8010b, - 0x8c000502, 0x040007e2, 0x59c408a4, 0x82040d00, - 0x0000000f, 0x82040d80, 0x0000000b, 0x04020005, - 0x59a80810, 0x82040d40, 0x00002000, 0x0401f004, - 0x59a80855, 0x82040d40, 0x00001000, 0x48075032, - 0x59a8085e, 0x800409c0, 0x04020007, 0x42000800, - 0x000007d0, 0x42001000, 0x0010391c, 0x0201f800, - 0x00105904, 0x1c01f000, 0x4807c856, 0x0401ff44, - 0x0201f800, 0x0010610d, 0x4df00000, 0x0201f800, - 0x00106305, 0x5c03e000, 0x02000800, 0x001060fa, - 0x59c400a4, 0x82000500, 0x0000000f, 0x82000580, - 0x00000002, 0x0402000a, 0x42006000, 0xffffffff, - 0x42006800, 0x00200000, 0x0401f8b8, 0x42006000, - 0xffdfffff, 0x41786800, 0x0401f8b4, 0x0201f800, - 0x00104723, 0x04000014, 0x0201f800, 0x00104741, - 0x04020011, 0x4a035013, 0x0000aaaa, 0x4c040000, - 0x0201f800, 0x00101401, 0x59a8001f, 0x82000500, - 0xffff0000, 0x80040540, 0x4803501f, 0x5c000800, - 0x4a035014, 0x00000000, 0x0201f800, 0x00104670, - 0x0401f008, 0x4a035058, 0x00000005, 0x42000000, - 0x00000080, 0x0201f800, 0x00101364, 0x0401ff22, - 0x1c01f000, 0x0401f809, 0x42006000, 0xbf7f7fff, - 0x41786800, 0x0401f091, 0x42006000, 0xbf7f7fff, - 0x41786800, 0x0401f08d, 0x0201f800, 0x00104741, - 0x04020009, 0x59c40006, 0x82000540, 0x000000f0, - 0x48038806, 0x42006000, 0xbfffffff, 0x41786800, - 0x0401f882, 0x1c01f000, 0x40680800, 0x800408d0, - 0x59a80015, 0x8c000506, 0x04000006, 0x59a8000f, - 0x82000500, 0x000000ff, 0x80040540, 0x0401f003, - 0x82040540, 0x000000f7, 0x480388a7, 0x1c01f000, - 0x4807c856, 0x42000000, 0x0010bc00, 0x0201f800, - 0x0010ad1d, 0x42003000, 0x00000005, 0x4d3c0000, - 0x4c180000, 0x42003000, 0x0000000d, 0x42027800, - 0x00000002, 0x0401f038, 0x4807c856, 0x42000000, - 0x0010bc25, 0x0201f800, 0x0010ad1d, 0x42003000, - 0x00000000, 0x4d3c0000, 0x4c180000, 0x42003000, - 0x0000000f, 0x42027800, 0x00000002, 0x0401f02a, - 0x4807c856, 0x42000000, 0x0010bc23, 0x0201f800, - 0x0010ad1d, 0x42003000, 0x00000003, 0x4d3c0000, - 0x4c180000, 0x42003000, 0x0000000e, 0x42027800, - 0x00000202, 0x0401f01c, 0x4807c856, 0x42000000, - 0x0010bc22, 0x0201f800, 0x0010ad1d, 0x42003000, - 0x00000004, 0x4d3c0000, 0x4c180000, 0x42003000, - 0x00000010, 0x42027800, 0x00000202, 0x0401f00e, - 0x4807c856, 0x42000000, 0x0010bb6a, 0x0201f800, - 0x0010ad1d, 0x42003000, 0x00000001, 0x4d3c0000, - 0x4c180000, 0x42003000, 0x0000000c, 0x42027800, - 0x00000002, 0x42001800, 0x0000ffff, 0x42002000, - 0x00000007, 0x0201f800, 0x00103260, 0x5c003000, - 0x4d400000, 0x0201f800, 0x0010a4c1, 0x42028000, - 0x0000002a, 0x0201f800, 0x0010ded4, 0x5c028000, - 0x5c027800, 0x1c01f000, 0x4807c856, 0x04011000, - 0x4a03c840, 0x0010b89f, 0x4a03c842, 0x00000040, - 0x40000000, 0x040117ff, 0x42007800, 0x0010b89f, - 0x46007800, 0x00000011, 0x803c7800, 0x4a007800, - 0x220000ef, 0x4a007801, 0x000000ef, 0x4a007802, - 0x01380000, 0x4a007803, 0x00000000, 0x4a007804, - 0xffffffff, 0x4a007805, 0x00000000, 0x1c01f000, - 0x40686000, 0x406c6800, 0x59c400a3, 0x80300500, - 0x80340540, 0x480388a3, 0x1c01f000, 0x40686000, - 0x4833c857, 0x59c400a3, 0x80300540, 0x480388a3, - 0x80300580, 0x480388a3, 0x1c01f000, 0x4803c856, - 0x04000004, 0x4a03505f, 0x00000001, 0x0401f002, - 0x497b505f, 0x1c01f000, 0x59c80002, 0x80000540, - 0x0400000a, 0x80000040, 0x04000008, 0x4a039005, - 0x00000140, 0x42000000, 0x00000006, 0x80000040, - 0x040207ff, 0x0401f7f5, 0x1c01f000, 0x4c5c0000, - 0x4c600000, 0x59c4b805, 0x485fc856, 0x8c5cbd3a, - 0x04020005, 0x42000000, 0x0010bb68, 0x0201f800, - 0x0010ad1d, 0x4a038805, 0x20000000, 0x0201f800, - 0x001017f1, 0x4000c000, 0x0201f800, 0x0010175e, - 0x4a038805, 0x04000000, 0x5c00c000, 0x5c00b800, - 0x1c01f000, 0x497a6a00, 0x4a026c00, 0x00000707, - 0x497a6801, 0x497a6808, 0x497a6809, 0x497a6806, - 0x497a6807, 0x497a6c0b, 0x497a680c, 0x8d0e1d20, - 0x04020006, 0x5934080f, 0x59340010, 0x80040540, - 0x02020800, 0x0010032d, 0x4a026a04, 0x00000100, - 0x497a6a03, 0x59340402, 0x82000500, 0x000000ff, - 0x48026c02, 0x497a6c04, 0x497a6a05, 0x497a6c05, - 0x497a6811, 0x4d2c0000, 0x5934000d, 0x49466c03, - 0x80025d40, 0x04000004, 0x0201f800, 0x00100589, - 0x497a680d, 0x5c025800, 0x59a8006d, 0x8c000502, - 0x42000000, 0x00000010, 0x04020002, 0x599c0401, - 0x48026a0b, 0x599c0208, 0x48026c12, 0x4a02680a, - 0x00006000, 0x0201f000, 0x00104416, 0x42000000, - 0x00000005, 0x80000d80, 0x0401f02c, 0x0201f800, - 0x00104195, 0x04020017, 0x59a8021b, 0x8c00050a, - 0x04020010, 0x59340212, 0x82000500, 0x0000ff00, - 0x4803c857, 0x0400000b, 0x59340a00, 0x8c040d1e, - 0x02000000, 0x000202a3, 0x42000000, 0x00000029, - 0x42000800, 0x00001000, 0x492fc857, 0x0401f017, - 0x492fc857, 0x42000000, 0x00000028, 0x0401f011, - 0x8d0e1d02, 0x04020003, 0x8d0e1d00, 0x04000004, - 0x42000000, 0x00000004, 0x0401f00a, 0x42000000, - 0x00000029, 0x59340a00, 0x8c040d1e, 0x04000005, - 0x492fc857, 0x42000800, 0x00001000, 0x0401f003, - 0x492fc857, 0x80000d80, 0x4803c857, 0x80028540, - 0x1c01f000, 0x490fc857, 0x8d0e1d00, 0x040207ed, - 0x0201f800, 0x00104165, 0x040207e6, 0x59340200, - 0x8c00050e, 0x040007e3, 0x0201f000, 0x000202a3, - 0x4d480000, 0x4d4c0000, 0x592e9009, 0x592e980a, - 0x0201f800, 0x00104039, 0x5c029800, 0x5c029000, - 0x040007bb, 0x0201f000, 0x000202a7, 0x592c0207, - 0x492fc857, 0x82000d80, 0x000007ff, 0x04020006, - 0x4a025c0b, 0x00000030, 0x42026800, 0x0010b876, - 0x0401f021, 0x82000c80, 0x000007f0, 0x04021045, - 0x81ac0400, 0x50000000, 0x80026d40, 0x04000038, - 0x0201f800, 0x001040bb, 0x04020038, 0x592c040b, - 0x8c00050a, 0x04020014, 0x592e600a, 0x83300480, - 0x0010f584, 0x0400103a, 0x41580000, 0x81300480, - 0x04021037, 0x59300c07, 0x82040580, 0x00000009, - 0x04020036, 0x4a025a07, 0x00000000, 0x497a5800, - 0x59300009, 0x80000540, 0x04020018, 0x492e6009, - 0x0401f010, 0x0201f800, 0x000209ee, 0x04000019, - 0x592c0207, 0x4936600a, 0x492e6009, 0x4a026407, - 0x00000009, 0x497a6016, 0x4932580a, 0x82000d80, - 0x000007ff, 0x04020003, 0x4a026016, 0x00008000, - 0x42027000, 0x00000043, 0x0201f800, 0x00020a34, - 0x80000580, 0x0401f01f, 0x40000800, 0x58040000, - 0x80000540, 0x040207fd, 0x492c0800, 0x0401f019, - 0x42000000, 0x0000002c, 0x0401f015, 0x42000000, - 0x00000028, 0x0401f012, 0x830c0500, 0x00000003, - 0x04000004, 0x42000000, 0x00000004, 0x0401f00c, - 0x42000000, 0x00000029, 0x0401f009, 0x42000000, - 0x00000008, 0x0401f006, 0x82040580, 0x00000007, - 0x040207fb, 0x42000000, 0x00000005, 0x80000540, - 0x1c01f000, 0x492fc857, 0x592e8c07, 0x83440d80, - 0x000007fc, 0x04000004, 0x83440480, 0x000007f0, - 0x04021014, 0x0201f800, 0x00020319, 0x04020011, - 0x0201f800, 0x00104178, 0x04020011, 0x0201f800, - 0x001070f5, 0x0400001b, 0x4936600a, 0x492e6009, - 0x4a026407, 0x0000000a, 0x42027000, 0x00000040, - 0x0201f800, 0x00020a34, 0x80000580, 0x0401f010, - 0x42000000, 0x00000028, 0x0401f00c, 0x0201f800, - 0x00104195, 0x040007fb, 0x830c0d00, 0x00000003, - 0x04000004, 0x42000000, 0x00000004, 0x0401f003, - 0x42000000, 0x00000029, 0x80000540, 0x1c01f000, - 0x42000000, 0x0000002c, 0x0401f7fc, 0x492fc857, - 0x592e8c07, 0x4947c857, 0x83440c80, 0x00000800, - 0x42000000, 0x0000000a, 0x0402119b, 0x592c4208, - 0x4823c857, 0x82200500, 0x0000000f, 0x0c01f001, - 0x00103bc8, 0x00103c50, 0x00103ca0, 0x00103cab, - 0x00103cb6, 0x00103bc4, 0x00103bc4, 0x00103bc4, - 0x00103cc3, 0x00103d23, 0x00103d48, 0x00103bc4, - 0x00103bc4, 0x00103bc4, 0x00103bc4, 0x00103bc4, - 0x4803c857, 0x42000000, 0x0000000c, 0x0401f182, - 0x592c1009, 0x82081500, 0x00ffffff, 0x59a8000f, - 0x80084d80, 0x42000000, 0x00000010, 0x0400017a, - 0x0201f800, 0x001040f8, 0x04000036, 0x4803c857, - 0x82004d80, 0x0000001d, 0x0402001a, 0x0201f800, - 0x00104f41, 0x59340405, 0x4c000000, 0x0201f800, - 0x00104165, 0x5c000000, 0x04000004, 0x8c20450a, - 0x04000028, 0x80000580, 0x44002800, 0x59340008, - 0x48002802, 0x59340009, 0x48002801, 0x59340006, - 0x48002804, 0x59340007, 0x48002803, 0x4200b000, - 0x00000005, 0x0201f800, 0x00108e25, 0x0401f18b, - 0x4803c857, 0x82004d80, 0x0000001a, 0x04020003, - 0x40101000, 0x0401f15b, 0x4803c857, 0x82004d80, - 0x0000001b, 0x04020003, 0x40181000, 0x0401f155, - 0x4803c857, 0x82004d80, 0x0000001c, 0x04000156, - 0x82004d80, 0x00000019, 0x42000000, 0x0000000a, - 0x04000145, 0x42000000, 0x0000000a, 0x0402015c, + 0xffffffff, 0x04020005, 0x80081000, 0x80183040, + 0x040207f8, 0x0401f040, 0x800811c0, 0x04020003, + 0x82040d40, 0xc0000000, 0x4200b000, 0x00000001, + 0x42001800, 0x80000000, 0x40042000, 0x801020c2, + 0x04021007, 0x800c1902, 0x8058b000, 0x82580480, + 0x00000021, 0x040017fa, 0x0401f02f, 0x40200000, + 0x80082400, 0x50100000, 0x800c0540, 0x44002000, + 0x59a80015, 0x84000540, 0x48035015, 0x40580000, + 0x42002800, 0x00000020, 0x80142c80, 0x40080000, + 0x42003800, 0x00000003, 0x801c0480, 0x800000ca, + 0x80142d40, 0x82144c00, 0x00101b0f, 0x50242800, + 0x82142d00, 0x000000ff, 0x4817500f, 0x4c040000, + 0x40140800, 0x0201f800, 0x001013c9, 0x5c000800, + 0x40001800, 0x500c0000, 0x80100540, 0x44001800, + 0x59a80015, 0x84000540, 0x48035015, 0x4200a800, + 0x0010b9a7, 0x4020a000, 0x4200b000, 0x00000004, + 0x0201f800, 0x0010aee2, 0x82000540, 0x00000001, + 0x0401f002, 0x80000580, 0x1c01f000, 0x4807c857, + 0x480bc857, 0x4008b000, 0x83cca400, 0x00000007, + 0x4200a800, 0x0010b9a7, 0x40541000, 0x0201f800, + 0x0010aee2, 0x40041800, 0x41782000, 0x42000000, + 0x00000003, 0x820c1c80, 0x00000020, 0x04001004, + 0x80102000, 0x80000040, 0x0401f7fb, 0x40041800, + 0x801021c0, 0x04000005, 0x820c1c80, 0x00000020, + 0x80102040, 0x040207fd, 0x42002000, 0x00000001, + 0x800c19c0, 0x04000004, 0x801020c2, 0x800c1840, + 0x040207fe, 0x80083c00, 0x83cc2c00, 0x00000007, + 0x80142c00, 0x50140000, 0x80102d00, 0x04020012, + 0x80100540, 0x44003800, 0x82042400, 0x00101b0f, + 0x50102800, 0x82142d00, 0x000000ff, 0x4817500f, + 0x4c040000, 0x40140800, 0x0201f800, 0x001013c9, + 0x5c000800, 0x59a80015, 0x84000540, 0x48035015, + 0x80000580, 0x1c01f000, 0x4807c856, 0x42001000, + 0x00008017, 0x59a81832, 0x0201f800, 0x0010ae1a, + 0x0201f800, 0x001031f5, 0x1c01f000, 0x4807c856, + 0x4200b000, 0x00000020, 0x83cca400, 0x00000007, + 0x4200a800, 0x0010c2c7, 0x0201f000, 0x0010af0c, + 0x4807c856, 0x0201f800, 0x00106480, 0x42000800, + 0x000000f7, 0x0401f8f1, 0x497b2804, 0x497b2805, + 0x497b2826, 0x497b2827, 0x4202d800, 0x00000001, + 0x42006000, 0xbe7fffff, 0x42006800, 0x00018000, + 0x0401f965, 0x42006000, 0xfffeffff, 0x41786800, + 0x0401f961, 0x497b5032, 0x42000800, 0x0000002d, + 0x42001000, 0x001039b1, 0x0201f000, 0x00105849, + 0x4807c856, 0x0401ffe3, 0x497b5010, 0x497b505a, + 0x1c01f000, 0x4807c856, 0x42006000, 0xffffffff, + 0x42006800, 0x00000028, 0x0401f14f, 0x4807c856, + 0x0401ffc6, 0x0201f800, 0x001061b2, 0x4df00000, + 0x0201f800, 0x001063aa, 0x5c03e000, 0x02000800, + 0x0010619f, 0x59c400a4, 0x82000500, 0x0000000f, + 0x82000580, 0x00000002, 0x0402000a, 0x42006000, + 0xffffffff, 0x42006800, 0x00200000, 0x0401f93a, + 0x42006000, 0xffdfffff, 0x41786800, 0x0401f936, + 0x497b5010, 0x42000800, 0x000000f7, 0x0401f8b3, + 0x59c400a3, 0x82000500, 0xbf20bfff, 0x82000540, + 0x0001c000, 0x480388a3, 0x84000520, 0x480388a3, + 0x497b5032, 0x42000800, 0x0000002d, 0x42001000, + 0x001039b1, 0x0201f000, 0x00105849, 0x497b505a, + 0x59b400f5, 0x8c000500, 0x04020004, 0x82000540, + 0x00000001, 0x480368f5, 0x800400c4, 0x82000400, + 0x00002000, 0x4803910a, 0x59b400f6, 0x82000500, + 0x00000018, 0x040207fd, 0x4a0368f0, 0x0010b99f, + 0x42000000, 0x0010b9a6, 0x4c040000, 0x50000800, + 0x82040d80, 0x11010000, 0x04000003, 0x50000800, + 0x4807c857, 0x5c000800, 0x480368f1, 0x82040400, + 0x0000dc00, 0x480368f3, 0x59c400a4, 0x82000500, + 0x0000000f, 0x82000580, 0x00000008, 0x04020017, + 0x4c5c0000, 0x4c600000, 0x59c4b805, 0x8c5cbd3a, + 0x04020005, 0x42000000, 0x0010bc68, 0x0201f800, + 0x0010ae10, 0x4a038805, 0x20000000, 0x0201f800, + 0x001017f2, 0x4000c000, 0x0201f800, 0x0010175f, + 0x4202d800, 0x00000001, 0x497b5010, 0x5c00c000, + 0x5c00b800, 0x1c01f000, 0x59c8010b, 0x8c000502, + 0x040007e2, 0x59c408a4, 0x82040d00, 0x0000000f, + 0x82040d80, 0x0000000b, 0x04020005, 0x59a80810, + 0x82040d40, 0x00002000, 0x0401f004, 0x59a80855, + 0x82040d40, 0x00001000, 0x48075032, 0x59a8085e, + 0x800409c0, 0x04020007, 0x42000800, 0x000007d0, + 0x42001000, 0x0010392f, 0x0201f800, 0x001059a9, + 0x1c01f000, 0x4807c856, 0x0401ff44, 0x0201f800, + 0x001061b2, 0x4df00000, 0x0201f800, 0x001063aa, + 0x5c03e000, 0x02000800, 0x0010619f, 0x59c400a4, + 0x82000500, 0x0000000f, 0x82000580, 0x00000002, + 0x0402000a, 0x42006000, 0xffffffff, 0x42006800, + 0x00200000, 0x0401f8b8, 0x42006000, 0xffdfffff, + 0x41786800, 0x0401f8b4, 0x0201f800, 0x00104762, + 0x04000014, 0x0201f800, 0x00104780, 0x04020011, + 0x4a035013, 0x0000aaaa, 0x4c040000, 0x0201f800, + 0x00101402, 0x59a8001f, 0x82000500, 0xffff0000, + 0x80040540, 0x4803501f, 0x5c000800, 0x4a035014, + 0x00000000, 0x0201f800, 0x001046af, 0x0401f008, + 0x4a035058, 0x00000005, 0x42000000, 0x00000080, + 0x0201f800, 0x00101365, 0x0401ff22, 0x1c01f000, + 0x0401f809, 0x42006000, 0xbf7f7fff, 0x41786800, + 0x0401f091, 0x42006000, 0xbf7f7fff, 0x41786800, + 0x0401f08d, 0x0201f800, 0x00104780, 0x04020009, + 0x59c40006, 0x82000540, 0x000000f0, 0x48038806, + 0x42006000, 0xbfffffff, 0x41786800, 0x0401f882, + 0x1c01f000, 0x40680800, 0x800408d0, 0x59a80015, + 0x8c000506, 0x04000006, 0x59a8000f, 0x82000500, + 0x000000ff, 0x80040540, 0x0401f003, 0x82040540, + 0x000000f7, 0x480388a7, 0x1c01f000, 0x4807c856, + 0x42000000, 0x0010bd00, 0x0201f800, 0x0010ae10, + 0x42003000, 0x00000005, 0x4d3c0000, 0x4c180000, + 0x42003000, 0x0000000d, 0x42027800, 0x00000002, + 0x0401f038, 0x4807c856, 0x42000000, 0x0010bd25, + 0x0201f800, 0x0010ae10, 0x42003000, 0x00000000, + 0x4d3c0000, 0x4c180000, 0x42003000, 0x0000000f, + 0x42027800, 0x00000002, 0x0401f02a, 0x4807c856, + 0x42000000, 0x0010bd23, 0x0201f800, 0x0010ae10, + 0x42003000, 0x00000003, 0x4d3c0000, 0x4c180000, + 0x42003000, 0x0000000e, 0x42027800, 0x00000202, + 0x0401f01c, 0x4807c856, 0x42000000, 0x0010bd22, + 0x0201f800, 0x0010ae10, 0x42003000, 0x00000004, + 0x4d3c0000, 0x4c180000, 0x42003000, 0x00000010, + 0x42027800, 0x00000202, 0x0401f00e, 0x4807c856, + 0x42000000, 0x0010bc6a, 0x0201f800, 0x0010ae10, + 0x42003000, 0x00000001, 0x4d3c0000, 0x4c180000, + 0x42003000, 0x0000000c, 0x42027800, 0x00000002, + 0x42001800, 0x0000ffff, 0x42002000, 0x00000007, + 0x0201f800, 0x0010326a, 0x5c003000, 0x4d400000, + 0x0201f800, 0x0010a5b4, 0x42028000, 0x0000002a, + 0x0201f800, 0x0010dfe1, 0x5c028000, 0x5c027800, + 0x1c01f000, 0x4807c856, 0x04011000, 0x4a03c840, + 0x0010b99f, 0x4a03c842, 0x00000040, 0x40000000, + 0x040117ff, 0x42007800, 0x0010b99f, 0x46007800, + 0x00000011, 0x803c7800, 0x4a007800, 0x220000ef, + 0x4a007801, 0x000000ef, 0x4a007802, 0x01380000, + 0x4a007803, 0x00000000, 0x4a007804, 0xffffffff, + 0x4a007805, 0x00000000, 0x1c01f000, 0x40686000, + 0x406c6800, 0x59c400a3, 0x80300500, 0x80340540, + 0x480388a3, 0x1c01f000, 0x40686000, 0x4833c857, + 0x59c400a3, 0x80300540, 0x480388a3, 0x80300580, + 0x480388a3, 0x1c01f000, 0x4803c856, 0x04000004, + 0x4a03505f, 0x00000001, 0x0401f002, 0x497b505f, + 0x1c01f000, 0x59c80002, 0x80000540, 0x0400000a, + 0x80000040, 0x04000008, 0x4a039005, 0x00000140, + 0x42000000, 0x00000006, 0x80000040, 0x040207ff, + 0x0401f7f5, 0x1c01f000, 0x4c5c0000, 0x4c600000, + 0x59c4b805, 0x485fc856, 0x8c5cbd3a, 0x04020005, + 0x42000000, 0x0010bc68, 0x0201f800, 0x0010ae10, + 0x4a038805, 0x20000000, 0x0201f800, 0x001017f2, + 0x4000c000, 0x0201f800, 0x0010175f, 0x4a038805, + 0x04000000, 0x5c00c000, 0x5c00b800, 0x1c01f000, + 0x497a6a00, 0x4a026c00, 0x00000707, 0x497a6801, + 0x497a6808, 0x497a6809, 0x497a6806, 0x497a6807, + 0x497a6c0b, 0x497a680c, 0x8d0e1d20, 0x04020006, + 0x5934080f, 0x59340010, 0x80040540, 0x02020800, + 0x0010032d, 0x4a026a04, 0x00000100, 0x497a6a03, + 0x59340402, 0x82000500, 0x000000ff, 0x48026c02, + 0x497a6c04, 0x497a6a05, 0x497a6c05, 0x497a6811, + 0x4d2c0000, 0x5934000d, 0x49466c03, 0x80025d40, + 0x04000004, 0x0201f800, 0x00100589, 0x497a680d, + 0x5c025800, 0x59a8006d, 0x8c000502, 0x42000000, + 0x00000010, 0x04020002, 0x599c0401, 0x48026a0b, + 0x599c0208, 0x48026c12, 0x4a02680a, 0x00006000, + 0x0201f000, 0x00104435, 0x42000000, 0x00000005, + 0x80000d80, 0x0401f02c, 0x0201f800, 0x001041b1, + 0x04020017, 0x59a8021b, 0x8c00050a, 0x04020010, + 0x59340212, 0x82000500, 0x0000ff00, 0x4803c857, + 0x0400000b, 0x59340a00, 0x8c040d1e, 0x02000000, + 0x000202a3, 0x42000000, 0x00000029, 0x42000800, + 0x00001000, 0x492fc857, 0x0401f017, 0x492fc857, + 0x42000000, 0x00000028, 0x0401f011, 0x8d0e1d02, + 0x04020003, 0x8d0e1d00, 0x04000004, 0x42000000, + 0x00000004, 0x0401f00a, 0x42000000, 0x00000029, + 0x59340a00, 0x8c040d1e, 0x04000005, 0x492fc857, + 0x42000800, 0x00001000, 0x0401f003, 0x492fc857, + 0x80000d80, 0x4803c857, 0x80028540, 0x1c01f000, + 0x490fc857, 0x8d0e1d00, 0x040207ed, 0x0201f800, + 0x00104181, 0x040207e6, 0x59340200, 0x8c00050e, + 0x040007e3, 0x0201f000, 0x000202a3, 0x4d480000, + 0x4d4c0000, 0x592e9009, 0x592e980a, 0x0201f800, + 0x00104053, 0x5c029800, 0x5c029000, 0x040007bb, + 0x0201f000, 0x000202a7, 0x592c0207, 0x492fc857, + 0x82000d80, 0x000007ff, 0x04020006, 0x4a025c0b, + 0x00000030, 0x42026800, 0x0010b976, 0x0401f021, + 0x82000c80, 0x000007f0, 0x04021045, 0x81ac0400, + 0x50000000, 0x80026d40, 0x04000038, 0x0201f800, + 0x001040d5, 0x04020038, 0x592c040b, 0x8c00050a, + 0x04020014, 0x592e600a, 0x83300480, 0x0010f694, + 0x0400103a, 0x41580000, 0x81300480, 0x04021037, + 0x59300c07, 0x82040580, 0x00000009, 0x04020036, + 0x4a025a07, 0x00000000, 0x497a5800, 0x59300009, + 0x80000540, 0x04020018, 0x492e6009, 0x0401f010, + 0x0201f800, 0x000209ee, 0x04000019, 0x592c0207, + 0x4936600a, 0x492e6009, 0x4a026407, 0x00000009, + 0x497a6016, 0x4932580a, 0x82000d80, 0x000007ff, + 0x04020003, 0x4a026016, 0x00008000, 0x42027000, + 0x00000043, 0x0201f800, 0x00020a34, 0x80000580, + 0x0401f01f, 0x40000800, 0x58040000, 0x80000540, + 0x040207fd, 0x492c0800, 0x0401f019, 0x42000000, + 0x0000002c, 0x0401f015, 0x42000000, 0x00000028, + 0x0401f012, 0x830c0500, 0x00000003, 0x04000004, + 0x42000000, 0x00000004, 0x0401f00c, 0x42000000, + 0x00000029, 0x0401f009, 0x42000000, 0x00000008, + 0x0401f006, 0x82040580, 0x00000007, 0x040207fb, + 0x42000000, 0x00000005, 0x80000540, 0x1c01f000, + 0x492fc857, 0x592e8c07, 0x83440d80, 0x000007fc, + 0x04000004, 0x83440480, 0x000007f0, 0x04021014, + 0x0201f800, 0x00020319, 0x04020011, 0x0201f800, + 0x00104194, 0x04020011, 0x0201f800, 0x00107188, + 0x0400001b, 0x4936600a, 0x492e6009, 0x4a026407, + 0x0000000a, 0x42027000, 0x00000040, 0x0201f800, + 0x00020a34, 0x80000580, 0x0401f010, 0x42000000, + 0x00000028, 0x0401f00c, 0x0201f800, 0x001041b1, + 0x040007fb, 0x830c0d00, 0x00000003, 0x04000004, + 0x42000000, 0x00000004, 0x0401f003, 0x42000000, + 0x00000029, 0x80000540, 0x1c01f000, 0x42000000, + 0x0000002c, 0x0401f7fc, 0x492fc857, 0x592e8c07, + 0x4947c857, 0x83440c80, 0x00000800, 0x42000000, + 0x0000000a, 0x0402119b, 0x592c4208, 0x4823c857, + 0x82200500, 0x0000000f, 0x0c01f001, 0x00103bdb, + 0x00103c63, 0x00103cb3, 0x00103cbe, 0x00103cc9, + 0x00103bd7, 0x00103bd7, 0x00103bd7, 0x00103cd6, + 0x00103d36, 0x00103d5b, 0x00103bd7, 0x00103bd7, + 0x00103bd7, 0x00103bd7, 0x00103bd7, 0x4803c857, + 0x42000000, 0x0000000c, 0x0401f182, 0x592c1009, + 0x82081500, 0x00ffffff, 0x59a8000f, 0x80084d80, + 0x42000000, 0x00000010, 0x0400017a, 0x0201f800, + 0x00104112, 0x04000036, 0x4803c857, 0x82004d80, + 0x0000001d, 0x0402001a, 0x0201f800, 0x00104f93, + 0x59340405, 0x4c000000, 0x0201f800, 0x00104181, + 0x5c000000, 0x04000004, 0x8c20450a, 0x04000028, + 0x80000580, 0x44002800, 0x59340008, 0x48002802, + 0x59340009, 0x48002801, 0x59340006, 0x48002804, + 0x59340007, 0x48002803, 0x4200b000, 0x00000005, + 0x0201f800, 0x00108ede, 0x0401f18b, 0x4803c857, + 0x82004d80, 0x0000001a, 0x04020003, 0x40101000, + 0x0401f15b, 0x4803c857, 0x82004d80, 0x0000001b, + 0x04020003, 0x40181000, 0x0401f155, 0x4803c857, + 0x82004d80, 0x0000001c, 0x04000156, 0x82004d80, + 0x00000019, 0x42000000, 0x0000000a, 0x04000145, + 0x42000000, 0x0000000a, 0x0402015c, 0x59a8006d, + 0x8c000502, 0x0400001b, 0x0201f800, 0x00104181, + 0x04000018, 0x59340212, 0x82000500, 0x0000ff00, + 0x42001000, 0x00000010, 0x0402000c, 0x42001000, + 0x00000008, 0x59a8021b, 0x8c000506, 0x04020009, + 0x59340002, 0x82000500, 0x00ff0000, 0x82000580, + 0x00ff0000, 0x04000007, 0x0201f800, 0x00104448, + 0x42000000, 0x0000001c, 0x40181000, 0x0402012c, + 0x0201f800, 0x00107188, 0x04000136, 0x4936600a, + 0x492e6009, 0x4a026407, 0x00000001, 0x8c20450a, + 0x04000004, 0x592c0405, 0x8400055c, 0x48025c05, + 0x4c200000, 0x4d3c0000, 0x42027800, 0x00001800, + 0x0201f800, 0x0010e06f, 0x5c027800, 0x5c004000, + 0x8c204512, 0x0400000b, 0x599c0018, 0x8c000518, + 0x04000008, 0x592c000a, 0x82000500, 0x00000380, + 0x5934080a, 0x80040d40, 0x84040d54, 0x4806680a, + 0x417a7800, 0x0401f939, 0x42000800, 0x00000003, + 0x0401f941, 0x42027000, 0x00000002, 0x0201f800, + 0x00020a34, 0x80000580, 0x0401f12f, 0x0201f800, + 0x00020319, 0x04020111, 0x0201f800, 0x00104187, + 0x0400000c, 0x0201f800, 0x00104181, 0x04020111, + 0x4c600000, 0x4178c000, 0x42027800, 0x00001800, + 0x417a6000, 0x0201f800, 0x00101a94, 0x5c00c000, 0x59a8006d, 0x8c000502, 0x0400001b, 0x0201f800, - 0x00104165, 0x04000018, 0x59340212, 0x82000500, + 0x00104181, 0x04000018, 0x59340212, 0x82000500, 0x0000ff00, 0x42001000, 0x00000010, 0x0402000c, 0x42001000, 0x00000008, 0x59a8021b, 0x8c000506, 0x04020009, 0x59340002, 0x82000500, 0x00ff0000, 0x82000580, 0x00ff0000, 0x04000007, 0x0201f800, - 0x00104429, 0x42000000, 0x0000001c, 0x40181000, - 0x0402012c, 0x0201f800, 0x001070f5, 0x04000136, + 0x00104448, 0x42000000, 0x0000001c, 0x40181000, + 0x040200d3, 0x0201f800, 0x00107188, 0x040000dd, + 0x5934080a, 0x8c204512, 0x0400000c, 0x599c0018, + 0x8c000518, 0x04000009, 0x592c000a, 0x82000500, + 0x00000380, 0x82041500, 0xfffffc7f, 0x80080d40, + 0x84040d54, 0x0401f002, 0x84040d14, 0x4806680a, 0x4936600a, 0x492e6009, 0x4a026407, 0x00000001, - 0x8c20450a, 0x04000004, 0x592c0405, 0x8400055c, - 0x48025c05, 0x4c200000, 0x4d3c0000, 0x42027800, - 0x00001800, 0x0201f800, 0x0010df61, 0x5c027800, - 0x5c004000, 0x8c204512, 0x0400000b, 0x599c0018, - 0x8c000518, 0x04000008, 0x592c000a, 0x82000500, - 0x00000380, 0x5934080a, 0x80040d40, 0x84040d54, - 0x4806680a, 0x417a7800, 0x0401f939, 0x42000800, - 0x00000003, 0x0401f941, 0x42027000, 0x00000002, - 0x0201f800, 0x00020a34, 0x80000580, 0x0401f12f, - 0x0201f800, 0x00020319, 0x04020111, 0x0201f800, - 0x0010416b, 0x0400000c, 0x0201f800, 0x00104165, - 0x04020111, 0x4c600000, 0x4178c000, 0x42027800, - 0x00001800, 0x417a6000, 0x0201f800, 0x00101a8f, - 0x5c00c000, 0x59a8006d, 0x8c000502, 0x0400001b, - 0x0201f800, 0x00104165, 0x04000018, 0x59340212, - 0x82000500, 0x0000ff00, 0x42001000, 0x00000010, - 0x0402000c, 0x42001000, 0x00000008, 0x59a8021b, - 0x8c000506, 0x04020009, 0x59340002, 0x82000500, - 0x00ff0000, 0x82000580, 0x00ff0000, 0x04000007, - 0x0201f800, 0x00104429, 0x42000000, 0x0000001c, - 0x40181000, 0x040200d3, 0x0201f800, 0x001070f5, - 0x040000dd, 0x5934080a, 0x8c204512, 0x0400000c, - 0x599c0018, 0x8c000518, 0x04000009, 0x592c000a, - 0x82000500, 0x00000380, 0x82041500, 0xfffffc7f, - 0x80080d40, 0x84040d54, 0x0401f002, 0x84040d14, - 0x4806680a, 0x4936600a, 0x492e6009, 0x4a026407, - 0x00000001, 0x417a7800, 0x0401f8e9, 0x42000800, - 0x00000005, 0x0401f8f1, 0x42027000, 0x00000003, - 0x0201f800, 0x00020a34, 0x80000580, 0x0401f0df, - 0x0201f800, 0x00020319, 0x040200c1, 0x0201f800, - 0x00104181, 0x040200c4, 0x0201f800, 0x00108dde, - 0x040000b5, 0x80000580, 0x0401f0d4, 0x0201f800, - 0x00020319, 0x040200b6, 0x0201f800, 0x00104181, - 0x040200b9, 0x0201f800, 0x00108958, 0x040000aa, - 0x80000580, 0x0401f0c9, 0x0201f800, 0x00020319, - 0x040200ab, 0x83444d80, 0x000007fe, 0x42000000, - 0x0000000a, 0x0402008c, 0x0201f800, 0x00108df6, - 0x0400009d, 0x80000580, 0x0401f0bc, 0x82200500, - 0x00000070, 0x04020005, 0x8c20450e, 0x42000000, - 0x0000000c, 0x04020080, 0x8c20450a, 0x0400000e, + 0x417a7800, 0x0401f8e9, 0x42000800, 0x00000005, + 0x0401f8f1, 0x42027000, 0x00000003, 0x0201f800, + 0x00020a34, 0x80000580, 0x0401f0df, 0x0201f800, + 0x00020319, 0x040200c1, 0x0201f800, 0x0010419d, + 0x040200c4, 0x0201f800, 0x00108e97, 0x040000b5, + 0x80000580, 0x0401f0d4, 0x0201f800, 0x00020319, + 0x040200b6, 0x0201f800, 0x0010419d, 0x040200b9, + 0x0201f800, 0x00108a11, 0x040000aa, 0x80000580, + 0x0401f0c9, 0x0201f800, 0x00020319, 0x040200ab, + 0x83444d80, 0x000007fe, 0x42000000, 0x0000000a, + 0x0402008c, 0x0201f800, 0x00108eaf, 0x0400009d, + 0x80000580, 0x0401f0bc, 0x82200500, 0x00000070, + 0x04020005, 0x8c20450e, 0x42000000, 0x0000000c, + 0x04020080, 0x8c20450a, 0x0400000e, 0x4d3c0000, + 0x42027800, 0x00005000, 0x8c20450e, 0x04020003, + 0x853e7d56, 0x853e7d1c, 0x82200500, 0x000004a0, + 0x0201f800, 0x00104147, 0x5c027800, 0x0401f0a2, + 0x8c204508, 0x04020024, 0x592c1009, 0x82081500, + 0x00ffffff, 0x59a8000f, 0x80084d80, 0x42000000, + 0x00000010, 0x04000067, 0x0201f800, 0x00104112, + 0x0400002c, 0x4803c857, 0x82004d80, 0x0000001a, + 0x04020003, 0x40101000, 0x0401f065, 0x4803c857, + 0x82004d80, 0x0000001b, 0x04020003, 0x40181000, + 0x0401f05f, 0x4803c857, 0x82004d80, 0x0000001c, + 0x04000060, 0x82004d80, 0x00000019, 0x42000000, + 0x0000000a, 0x0400004f, 0x42000000, 0x0000000a, + 0x0401f066, 0x0201f800, 0x00020319, 0x04020063, 0x4d3c0000, 0x42027800, 0x00005000, 0x8c20450e, 0x04020003, 0x853e7d56, 0x853e7d1c, 0x82200500, - 0x000004a0, 0x0201f800, 0x0010412d, 0x5c027800, - 0x0401f0a2, 0x8c204508, 0x04020024, 0x592c1009, - 0x82081500, 0x00ffffff, 0x59a8000f, 0x80084d80, - 0x42000000, 0x00000010, 0x04000067, 0x0201f800, - 0x001040f8, 0x0400002c, 0x4803c857, 0x82004d80, - 0x0000001a, 0x04020003, 0x40101000, 0x0401f065, - 0x4803c857, 0x82004d80, 0x0000001b, 0x04020003, - 0x40181000, 0x0401f05f, 0x4803c857, 0x82004d80, - 0x0000001c, 0x04000060, 0x82004d80, 0x00000019, - 0x42000000, 0x0000000a, 0x0400004f, 0x42000000, - 0x0000000a, 0x0401f066, 0x0201f800, 0x00020319, - 0x04020063, 0x4d3c0000, 0x42027800, 0x00005000, - 0x8c20450e, 0x04020003, 0x853e7d56, 0x853e7d1c, - 0x82200500, 0x00000090, 0x0201f800, 0x00104115, - 0x5c027800, 0x42000000, 0x0000000a, 0x0402003a, - 0x0401f06a, 0x836c0580, 0x00000003, 0x42000800, - 0x00000007, 0x04020006, 0x0201f800, 0x00108d89, - 0x04000007, 0x80000580, 0x0401f064, 0x0201f800, - 0x001041ae, 0x04000059, 0x0401f05c, 0x0201f800, - 0x001041ae, 0x0400003c, 0x0401f058, 0x0201f800, - 0x00020319, 0x0402003e, 0x836c0580, 0x00000003, - 0x04020048, 0x8c204508, 0x0400000a, 0x4c600000, - 0x4178c000, 0x42027800, 0x00001800, 0x417a6000, - 0x0201f800, 0x00101a8f, 0x5c00c000, 0x0401f047, - 0x0201f800, 0x0010416b, 0x0400000c, 0x0201f800, - 0x00104165, 0x04020030, 0x4c600000, 0x4178c000, + 0x00000090, 0x0201f800, 0x0010412f, 0x5c027800, + 0x42000000, 0x0000000a, 0x0402003a, 0x0401f06a, + 0x836c0580, 0x00000003, 0x42000800, 0x00000007, + 0x04020006, 0x0201f800, 0x00108e42, 0x04000007, + 0x80000580, 0x0401f064, 0x0201f800, 0x001041ca, + 0x04000059, 0x0401f05c, 0x0201f800, 0x001041ca, + 0x0400003c, 0x0401f058, 0x0201f800, 0x00020319, + 0x0402003e, 0x836c0580, 0x00000003, 0x04020048, + 0x8c204508, 0x0400000a, 0x4c600000, 0x4178c000, 0x42027800, 0x00001800, 0x417a6000, 0x0201f800, - 0x00101a8f, 0x5c00c000, 0x480bc856, 0x0201f800, - 0x00108be7, 0x04000018, 0x80000580, 0x0401f037, - 0x0401f7db, 0x480bc857, 0x42000800, 0x00000019, - 0x40001000, 0x4200b000, 0x00000002, 0x0401f00a, - 0x480bc857, 0x40000800, 0x4200b000, 0x00000002, - 0x0401f005, 0x480bc857, 0x40000800, 0x4200b000, - 0x00000001, 0x480bc857, 0x42028000, 0x00000031, - 0x0401f020, 0x480bc857, 0x42000800, 0x00000003, - 0x4200b000, 0x00000001, 0x0401f7f7, 0x480bc857, - 0x42000800, 0x0000000a, 0x4200b000, 0x00000001, - 0x0401f7f1, 0x480bc857, 0x42000800, 0x00000009, - 0x40001000, 0x4200b000, 0x00000002, 0x0401f7ea, - 0x480bc857, 0x42000800, 0x00000007, 0x4200b000, - 0x00000001, 0x0401f7e4, 0x480bc857, 0x4200b000, - 0x00000001, 0x0401f7e0, 0x80028580, 0x4178b000, - 0x82000540, 0x00000001, 0x1c01f000, 0x4937c857, - 0x5932680a, 0x59341200, 0x813e79c0, 0x04000003, - 0x84081540, 0x0401f002, 0x84081500, 0x480a6a00, - 0x1c01f000, 0x40680800, 0x5932680a, 0x5c000000, - 0x4c000000, 0x4803c857, 0x4937c857, 0x82040580, - 0x00000006, 0x04020004, 0x42000000, 0x00000606, - 0x0401f021, 0x82040580, 0x00000004, 0x04020004, - 0x42000000, 0x00000404, 0x0401f01b, 0x82040580, - 0x00000007, 0x42000000, 0x00000707, 0x04000016, - 0x82040580, 0x00000003, 0x42000000, 0x00000703, - 0x04000011, 0x82040580, 0x00000005, 0x42000000, - 0x00000405, 0x0400000c, 0x82040580, 0x00000009, - 0x42000000, 0x00000409, 0x04000007, 0x82040580, - 0x0000000b, 0x42000000, 0x0000070b, 0x02020800, - 0x0010032d, 0x4803c857, 0x48026c00, 0x82040d80, - 0x00000006, 0x04020005, 0x59341404, 0x800811c0, - 0x02000800, 0x0010032d, 0x1c01f000, 0x40683000, - 0x0401f80b, 0x41358800, 0x04000002, 0x41798800, - 0x1c01f000, 0x40683000, 0x0401f80a, 0x41358800, - 0x04000002, 0x41798800, 0x1c01f000, 0x5c000000, - 0x4c000000, 0x4803c857, 0x4947c857, 0x481bc857, - 0x83440480, 0x00000800, 0x0402103a, 0x83441400, - 0x0010af80, 0x50080000, 0x80026d40, 0x04020011, - 0x4c180000, 0x4d2c0000, 0x0201f800, 0x0010055a, - 0x412e6800, 0x5c025800, 0x5c003000, 0x0400002d, - 0x45341000, 0x497a680d, 0x497a6810, 0x497a680f, - 0x497a680e, 0x4c180000, 0x0401fcbb, 0x5c003000, - 0x59340a12, 0x4c040000, 0x0201f800, 0x00104716, - 0x5c000800, 0x04000009, 0x82180500, 0x00ffff00, - 0x04000008, 0x59a8100f, 0x82081500, 0x00ffff00, - 0x80080580, 0x04000003, 0x80000580, 0x0401f004, - 0x82180500, 0x000000ff, 0x800000d0, 0x80040d80, - 0x04000003, 0x4803c857, 0x48026a12, 0x83440580, - 0x000007fe, 0x04020004, 0x4a026802, 0x00fffffe, - 0x0401f006, 0x59340002, 0x80180580, 0x04000003, - 0x481bc857, 0x481a6802, 0x80000580, 0x1c01f000, - 0x4803c856, 0x82000540, 0x00000001, 0x0401f7fc, - 0x0401f807, 0x42018800, 0x00000001, 0x04020003, - 0x42018800, 0x00000000, 0x1c01f000, 0x4947c857, - 0x83440480, 0x00000800, 0x04021010, 0x83441400, - 0x0010af80, 0x50080000, 0x80026d40, 0x0400000a, - 0x0401fb45, 0x04020009, 0x8d0e1d02, 0x04000004, - 0x59340200, 0x8c00050e, 0x04000004, 0x82000540, - 0x00000001, 0x1c01f000, 0x80000580, 0x0401f7fe, - 0x5c000000, 0x4c000000, 0x4803c857, 0x4947c857, - 0x0401f807, 0x42018800, 0x00000001, 0x04000003, - 0x42018800, 0x00000000, 0x1c01f000, 0x4d2c0000, - 0x4d300000, 0x83440480, 0x00000800, 0x04021024, - 0x83441400, 0x0010af80, 0x50080000, 0x80026d40, - 0x0400001b, 0x45781000, 0x5934000d, 0x80025d40, - 0x02020800, 0x00100589, 0x59366011, 0x813261c0, - 0x0400000e, 0x4c640000, 0x5930c800, 0x59325809, - 0x0201f800, 0x0010889a, 0x02020800, 0x00100589, - 0x0201f800, 0x00020a10, 0x82666540, 0x00000000, - 0x040207f6, 0x5c00c800, 0x0201f800, 0x00104416, - 0x41365800, 0x0201f800, 0x00100581, 0x80000580, - 0x5c026000, 0x5c025800, 0x1c01f000, 0x82000540, - 0x00000001, 0x0401f7fb, 0x0201f800, 0x00020319, - 0x41358800, 0x04000002, 0x41798800, 0x1c01f000, - 0x4c580000, 0x59cc0001, 0x4937c857, 0x82000500, - 0x00ffffff, 0x48026802, 0x497a6c01, 0x497a6a01, - 0x59340200, 0x84000502, 0x48026a00, 0x0201f800, - 0x00104716, 0x0402001a, 0x59340403, 0x82000580, - 0x000007fe, 0x04000005, 0x59a8021b, 0x8c00050a, - 0x04020013, 0x0401f008, 0x59cc0408, 0x8c000518, - 0x0400000f, 0x59cc0009, 0x48035028, 0x59cc000a, - 0x48035029, 0x59a80873, 0x8c040d3e, 0x04020008, - 0x59cc0207, 0x80000540, 0x04020003, 0x42000000, - 0x00000001, 0x48038893, 0x48035012, 0x59cc0a09, - 0x82040d00, 0x00000010, 0x59cc0408, 0x82000500, - 0x00000020, 0x04000005, 0x84040d40, 0x59a8121b, - 0x8408155a, 0x480b521b, 0x5934000a, 0x82000500, - 0xffffffee, 0x80040540, 0x4802680a, 0x83cca400, - 0x0000000b, 0x8334ac00, 0x00000006, 0x4200b000, - 0x00000002, 0x0201f800, 0x0010adef, 0x83cca400, - 0x0000000d, 0x8334ac00, 0x00000008, 0x4200b000, - 0x00000002, 0x0201f800, 0x0010adef, 0x59cc0a18, - 0x82040480, 0x00000800, 0x0402100c, 0x82040480, - 0x00000400, 0x04001004, 0x42000800, 0x00000400, - 0x0401f006, 0x82040480, 0x00000200, 0x04001003, - 0x42000800, 0x00000200, 0x42001000, 0x0010b895, - 0x58080201, 0x80041480, 0x04001002, 0x40000800, - 0x48066a04, 0x59340403, 0x82000580, 0x000007fe, - 0x04020003, 0x59cc0a08, 0x48066a04, 0x0201f800, - 0x0010444c, 0x5c00b000, 0x1c01f000, 0x59a8021b, - 0x4937c857, 0x8c000508, 0x04000008, 0x84000556, - 0x4803c857, 0x4803521b, 0x42001000, 0x0010eacd, - 0x0201f800, 0x001057cd, 0x59cc0207, 0x4803c857, - 0x48026a05, 0x59cc020a, 0x4803c857, 0x48026c05, - 0x59341200, 0x599c0818, 0x5934180a, 0x4807c857, - 0x480bc857, 0x480fc857, 0x59cc2006, 0x82102500, - 0xff000000, 0x82102580, 0x02000000, 0x04000007, - 0x8c00050e, 0x04000009, 0x8c0c1d14, 0x04000003, - 0x8c0c1d0e, 0x04000005, 0x8c040d18, 0x04000003, - 0x8408154a, 0x0401f002, 0x8408150a, 0x8c000510, - 0x04000009, 0x8c0c1d14, 0x04000003, 0x8c0c1d10, - 0x04000005, 0x8c040d18, 0x04000003, 0x8408154e, - 0x0401f002, 0x8408150e, 0x8c000512, 0x04000009, - 0x8c0c1d14, 0x04000003, 0x8c0c1d12, 0x04000005, - 0x8c040d18, 0x04000003, 0x8408155c, 0x0401f002, - 0x8408151c, 0x480a6a00, 0x1c01f000, 0x4803c856, - 0x4c5c0000, 0x4d2c0000, 0x4c580000, 0x5934000d, - 0x80025d40, 0x04000029, 0x592c0003, 0x82000480, - 0x00000008, 0x0400100b, 0x412cb800, 0x592c0001, - 0x80025d40, 0x040207f9, 0x0201f800, 0x0010056f, - 0x04000037, 0x492fc857, 0x492cb801, 0x0401f020, - 0x832c0c00, 0x00000004, 0x4200b000, 0x00000008, - 0x50040000, 0x82000580, 0xffffffff, 0x04020006, - 0x80041000, 0x50080000, 0x82000580, 0xffffffff, - 0x04000007, 0x82040c00, 0x00000002, 0x8058b040, - 0x040207f4, 0x0201f800, 0x0010032d, 0x45480800, - 0x454c1000, 0x592c1803, 0x800c1800, 0x480e5803, - 0x480fc857, 0x0401f014, 0x0201f800, 0x0010056f, - 0x04000017, 0x492fc857, 0x492e680d, 0x497a5802, - 0x4a025803, 0x00000001, 0x494a5804, 0x494e5805, - 0x832c0c00, 0x00000006, 0x4200b000, 0x0000000e, - 0x46000800, 0xffffffff, 0x80040800, 0x8058b040, - 0x040207fc, 0x82000540, 0x00000001, 0x5c00b000, - 0x5c025800, 0x5c00b800, 0x1c01f000, 0x80000580, - 0x0401f7fb, 0x4803c856, 0x4d3c0000, 0x4d2c0000, - 0x5934000d, 0x80025d40, 0x0400001f, 0x592c0002, - 0x80000540, 0x0402001f, 0x412e7800, 0x0401f8d6, - 0x0402001c, 0x46000800, 0xffffffff, 0x46001000, - 0xffffffff, 0x4813c857, 0x480fc857, 0x580c0003, - 0x82000c80, 0x00000002, 0x04021014, 0x480fc857, - 0x400c0000, 0x812c0580, 0x04020004, 0x580c0001, - 0x4802680d, 0x0401f003, 0x580c0001, 0x48002001, - 0x400e5800, 0x0201f800, 0x00100580, 0x82000540, - 0x00000001, 0x5c025800, 0x5c027800, 0x1c01f000, - 0x80000580, 0x0401f7fc, 0x80000040, 0x48001803, - 0x4803c857, 0x0401f7f6, 0x0201f800, 0x00020111, - 0x59300008, 0x8400054e, 0x48026008, 0x592c1a05, - 0x820c1d00, 0x000000ff, 0x820c0580, 0x00000048, - 0x04000013, 0x0201f000, 0x00020360, 0x8c000500, - 0x02020800, 0x00020179, 0x4a026203, 0x00000002, - 0x592c1a05, 0x820c1d00, 0x000000ff, 0x820c0580, - 0x00000018, 0x02000000, 0x00020360, 0x820c0580, - 0x00000048, 0x02020000, 0x00020360, 0x42000800, - 0x80000804, 0x0201f800, 0x000209a3, 0x0201f000, - 0x00020369, 0x4a025a07, 0x00000008, 0x0201f000, - 0x000203ab, 0x4a025a07, 0x00000029, 0x0201f000, - 0x000203ab, 0x4a025a07, 0x0000002a, 0x0201f000, - 0x000203ab, 0x4a025a07, 0x00000028, 0x0201f000, - 0x000203ab, 0x4a025a07, 0x0000000e, 0x0201f000, - 0x000203ab, 0x4943c857, 0x4d440000, 0x4d340000, - 0x4d2c0000, 0x4c580000, 0x4200b000, 0x000007f0, - 0x417a8800, 0x0201f800, 0x00020319, 0x04020007, - 0x8d3e7d06, 0x04000004, 0x59340200, 0x8c00050e, - 0x04020002, 0x0401f813, 0x81468800, 0x8058b040, - 0x040207f5, 0x83440480, 0x00000800, 0x04021008, - 0x8d3e7d02, 0x04000006, 0x42028800, 0x000007f0, - 0x4200b000, 0x00000010, 0x0401f7eb, 0x5c00b000, - 0x5c025800, 0x5c026800, 0x5c028800, 0x1c01f000, - 0x4d2c0000, 0x4c600000, 0x4c5c0000, 0x4178b800, - 0x5936580f, 0x812e59c0, 0x04000029, 0x592c0205, - 0x82000500, 0x000000ff, 0x82000580, 0x00000012, - 0x04000020, 0x8d3e7d00, 0x04000003, 0x0401f844, - 0x0402001c, 0x592cc000, 0x497a5800, 0x805cb9c0, - 0x04020009, 0x59340010, 0x812c0580, 0x04020004, - 0x497a680f, 0x497a6810, 0x0401f008, 0x4862680f, - 0x0401f006, 0x4860b800, 0x59340010, 0x812c0580, - 0x04020002, 0x485e6810, 0x4a025a05, 0x00000103, - 0x49425a07, 0x497a580a, 0x0201f800, 0x00108a42, - 0x0201f800, 0x000203ab, 0x40625800, 0x0401f7da, - 0x412cb800, 0x592e5800, 0x0401f7d7, 0x5c00b800, - 0x5c00c000, 0x5c025800, 0x1c01f000, 0x4803c856, - 0x41781800, 0x5934000f, 0x80025d40, 0x04000016, - 0x592c0006, 0x80200580, 0x592c0000, 0x04000003, - 0x412c1800, 0x0401f7f9, 0x592c0a05, 0x82040d00, - 0x000000ff, 0x82040d80, 0x00000012, 0x040007f9, - 0x497a5800, 0x800c19c0, 0x04000008, 0x48001800, - 0x80000540, 0x04020004, 0x480e6810, 0x82000540, - 0x00000001, 0x1c01f000, 0x4802680f, 0x80000540, - 0x040207fd, 0x497a6810, 0x0401f7f9, 0x592c0009, - 0x81480580, 0x04020003, 0x592c000a, 0x814c0580, - 0x1c01f000, 0x4803c856, 0x4c580000, 0x413c1800, - 0x400c2000, 0x593c0002, 0x80000540, 0x04020018, - 0x4200b000, 0x00000008, 0x820c0c00, 0x00000004, - 0x50040000, 0x81480580, 0x04020005, 0x80041000, - 0x50080000, 0x814c0580, 0x0400000d, 0x82040c00, - 0x00000002, 0x8058b040, 0x040207f6, 0x400c2000, - 0x580c0001, 0x80001d40, 0x040207ee, 0x82000540, - 0x00000001, 0x5c00b000, 0x1c01f000, 0x80000580, - 0x0401f7fd, 0x4937c857, 0x4c580000, 0x4d2c0000, - 0x5934000d, 0x80025d40, 0x04020016, 0x0201f800, - 0x0010056f, 0x04000010, 0x492e680d, 0x4a025802, - 0x00000001, 0x497a5803, 0x832c0c00, 0x00000004, - 0x4200b000, 0x00000010, 0x46000800, 0xffffffff, + 0x00101a94, 0x5c00c000, 0x0401f047, 0x0201f800, + 0x00104187, 0x0400000c, 0x0201f800, 0x00104181, + 0x04020030, 0x4c600000, 0x4178c000, 0x42027800, + 0x00001800, 0x417a6000, 0x0201f800, 0x00101a94, + 0x5c00c000, 0x480bc856, 0x0201f800, 0x00108ca0, + 0x04000018, 0x80000580, 0x0401f037, 0x0401f7db, + 0x480bc857, 0x42000800, 0x00000019, 0x40001000, + 0x4200b000, 0x00000002, 0x0401f00a, 0x480bc857, + 0x40000800, 0x4200b000, 0x00000002, 0x0401f005, + 0x480bc857, 0x40000800, 0x4200b000, 0x00000001, + 0x480bc857, 0x42028000, 0x00000031, 0x0401f020, + 0x480bc857, 0x42000800, 0x00000003, 0x4200b000, + 0x00000001, 0x0401f7f7, 0x480bc857, 0x42000800, + 0x0000000a, 0x4200b000, 0x00000001, 0x0401f7f1, + 0x480bc857, 0x42000800, 0x00000009, 0x40001000, + 0x4200b000, 0x00000002, 0x0401f7ea, 0x480bc857, + 0x42000800, 0x00000007, 0x4200b000, 0x00000001, + 0x0401f7e4, 0x480bc857, 0x4200b000, 0x00000001, + 0x0401f7e0, 0x80028580, 0x4178b000, 0x82000540, + 0x00000001, 0x1c01f000, 0x4937c857, 0x5932680a, + 0x59341200, 0x813e79c0, 0x04000003, 0x84081540, + 0x0401f002, 0x84081500, 0x480a6a00, 0x1c01f000, + 0x40680800, 0x5932680a, 0x5c000000, 0x4c000000, + 0x4803c857, 0x4937c857, 0x83340580, 0x0010c2b2, + 0x04000030, 0x82040580, 0x00000006, 0x04020004, + 0x42000000, 0x00000606, 0x0401f021, 0x82040580, + 0x00000004, 0x04020004, 0x42000000, 0x00000404, + 0x0401f01b, 0x82040580, 0x00000007, 0x42000000, + 0x00000707, 0x04000016, 0x82040580, 0x00000003, + 0x42000000, 0x00000703, 0x04000011, 0x82040580, + 0x00000005, 0x42000000, 0x00000405, 0x0400000c, + 0x82040580, 0x00000009, 0x42000000, 0x00000409, + 0x04000007, 0x82040580, 0x0000000b, 0x42000000, + 0x0000070b, 0x02020800, 0x0010032d, 0x4803c857, + 0x48026c00, 0x82040d80, 0x00000006, 0x04020005, + 0x59341404, 0x800811c0, 0x02000800, 0x0010032d, + 0x1c01f000, 0x40683000, 0x0401f80b, 0x41358800, + 0x04000002, 0x41798800, 0x1c01f000, 0x40683000, + 0x0401f80a, 0x41358800, 0x04000002, 0x41798800, + 0x1c01f000, 0x5c000000, 0x4c000000, 0x4803c857, + 0x4947c857, 0x481bc857, 0x83440480, 0x00000800, + 0x0402103a, 0x83441400, 0x0010b080, 0x50080000, + 0x80026d40, 0x04020011, 0x4c180000, 0x4d2c0000, + 0x0201f800, 0x0010055a, 0x412e6800, 0x5c025800, + 0x5c003000, 0x0400002d, 0x45341000, 0x497a680d, + 0x497a6810, 0x497a680f, 0x497a680e, 0x4c180000, + 0x0401fcb8, 0x5c003000, 0x59340a12, 0x4c040000, + 0x0201f800, 0x00104755, 0x5c000800, 0x04000009, + 0x82180500, 0x00ffff00, 0x04000008, 0x59a8100f, + 0x82081500, 0x00ffff00, 0x80080580, 0x04000003, + 0x80000580, 0x0401f004, 0x82180500, 0x000000ff, + 0x800000d0, 0x80040d80, 0x04000003, 0x4803c857, + 0x48026a12, 0x83440580, 0x000007fe, 0x04020004, + 0x4a026802, 0x00fffffe, 0x0401f006, 0x59340002, + 0x80180580, 0x04000003, 0x481bc857, 0x481a6802, + 0x80000580, 0x1c01f000, 0x4803c856, 0x82000540, + 0x00000001, 0x0401f7fc, 0x0401f807, 0x42018800, + 0x00000001, 0x04020003, 0x42018800, 0x00000000, + 0x1c01f000, 0x4947c857, 0x83440480, 0x00000800, + 0x04021010, 0x83441400, 0x0010b080, 0x50080000, + 0x80026d40, 0x0400000a, 0x0401fb4b, 0x04020009, + 0x8d0e1d02, 0x04000004, 0x59340200, 0x8c00050e, + 0x04000004, 0x82000540, 0x00000001, 0x1c01f000, + 0x80000580, 0x0401f7fe, 0x5c000000, 0x4c000000, + 0x4803c857, 0x4947c857, 0x0401f807, 0x42018800, + 0x00000001, 0x04000003, 0x42018800, 0x00000000, + 0x1c01f000, 0x4d2c0000, 0x4d300000, 0x83440480, + 0x00000800, 0x04021024, 0x83441400, 0x0010b080, + 0x50080000, 0x80026d40, 0x0400001b, 0x45781000, + 0x5934000d, 0x80025d40, 0x02020800, 0x00100589, + 0x59366011, 0x813261c0, 0x0400000e, 0x4c640000, + 0x5930c800, 0x59325809, 0x0201f800, 0x00108953, + 0x02020800, 0x00100589, 0x0201f800, 0x00020a10, + 0x82666540, 0x00000000, 0x040207f6, 0x5c00c800, + 0x0201f800, 0x00104435, 0x41365800, 0x0201f800, + 0x00100581, 0x80000580, 0x5c026000, 0x5c025800, + 0x1c01f000, 0x82000540, 0x00000001, 0x0401f7fb, + 0x0201f800, 0x00020319, 0x41358800, 0x04000002, + 0x41798800, 0x1c01f000, 0x4c580000, 0x59cc0001, + 0x4937c857, 0x82000500, 0x00ffffff, 0x48026802, + 0x497a6c01, 0x497a6a01, 0x59340200, 0x82000500, + 0xffffdffd, 0x48026a00, 0x0201f800, 0x00104755, + 0x0402001a, 0x59340403, 0x82000580, 0x000007fe, + 0x04000005, 0x59a8021b, 0x8c00050a, 0x04020013, + 0x0401f008, 0x59cc0408, 0x8c000518, 0x0400000f, + 0x59cc0009, 0x48035028, 0x59cc000a, 0x48035029, + 0x59a80873, 0x8c040d3e, 0x04020008, 0x59cc0207, + 0x80000540, 0x04020003, 0x42000000, 0x00000001, + 0x48038893, 0x48035012, 0x59cc0a09, 0x82040d00, + 0x00000010, 0x59cc0408, 0x82000500, 0x00000020, + 0x04000005, 0x84040d40, 0x59a8121b, 0x8408155a, + 0x480b521b, 0x5934000a, 0x82000500, 0xffffffee, + 0x80040540, 0x4802680a, 0x83cca400, 0x0000000b, + 0x8334ac00, 0x00000006, 0x4200b000, 0x00000002, + 0x0201f800, 0x0010aee2, 0x83cca400, 0x0000000d, + 0x8334ac00, 0x00000008, 0x4200b000, 0x00000002, + 0x0201f800, 0x0010aee2, 0x59cc0a18, 0x59a80006, + 0x8c00050c, 0x04020015, 0x82040480, 0x00000800, + 0x0402100c, 0x82040480, 0x00000400, 0x04001004, + 0x42000800, 0x00000400, 0x0401f006, 0x82040480, + 0x00000200, 0x04001003, 0x42000800, 0x00000200, + 0x42001000, 0x0010b995, 0x58080201, 0x80041480, + 0x04001002, 0x40000800, 0x48066a04, 0x59340403, + 0x82000580, 0x000007fe, 0x04020003, 0x59cc0a08, + 0x48066a04, 0x0201f800, 0x0010446b, 0x5c00b000, + 0x1c01f000, 0x59a8021b, 0x4937c857, 0x8c000508, + 0x04000008, 0x84000556, 0x4803c857, 0x4803521b, + 0x42001000, 0x0010ebc8, 0x0201f800, 0x00105872, + 0x59cc0207, 0x4803c857, 0x48026a05, 0x59cc020a, + 0x4803c857, 0x48026c05, 0x59341200, 0x599c0818, + 0x5934180a, 0x4807c857, 0x480bc857, 0x480fc857, + 0x59cc2006, 0x82102500, 0xff000000, 0x82102580, + 0x02000000, 0x04000007, 0x8c00050e, 0x04000009, + 0x8c0c1d14, 0x04000003, 0x8c0c1d0e, 0x04000005, + 0x8c040d18, 0x04000003, 0x8408154a, 0x0401f002, + 0x8408150a, 0x8c000510, 0x04000009, 0x8c0c1d14, + 0x04000003, 0x8c0c1d10, 0x04000005, 0x8c040d18, + 0x04000003, 0x8408154e, 0x0401f002, 0x8408150e, + 0x8c000512, 0x04000009, 0x8c0c1d14, 0x04000003, + 0x8c0c1d12, 0x04000005, 0x8c040d18, 0x04000003, + 0x8408155c, 0x0401f002, 0x8408151c, 0x480a6a00, + 0x1c01f000, 0x4803c856, 0x4c5c0000, 0x4d2c0000, + 0x4c580000, 0x5934000d, 0x80025d40, 0x04000029, + 0x592c0003, 0x82000480, 0x00000008, 0x0400100b, + 0x412cb800, 0x592c0001, 0x80025d40, 0x040207f9, + 0x0201f800, 0x0010056f, 0x04000037, 0x492fc857, + 0x492cb801, 0x0401f020, 0x832c0c00, 0x00000004, + 0x4200b000, 0x00000008, 0x50040000, 0x82000580, + 0xffffffff, 0x04020006, 0x80041000, 0x50080000, + 0x82000580, 0xffffffff, 0x04000007, 0x82040c00, + 0x00000002, 0x8058b040, 0x040207f4, 0x0201f800, + 0x0010032d, 0x45480800, 0x454c1000, 0x592c1803, + 0x800c1800, 0x480e5803, 0x480fc857, 0x0401f014, + 0x0201f800, 0x0010056f, 0x04000017, 0x492fc857, + 0x492e680d, 0x497a5802, 0x4a025803, 0x00000001, + 0x494a5804, 0x494e5805, 0x832c0c00, 0x00000006, + 0x4200b000, 0x0000000e, 0x46000800, 0xffffffff, 0x80040800, 0x8058b040, 0x040207fc, 0x82000540, - 0x00000001, 0x5c025800, 0x5c00b000, 0x1c01f000, - 0x4d2c0000, 0x592e5801, 0x0201f800, 0x00100589, - 0x5c025800, 0x497a5801, 0x0401f7e9, 0x4d2c0000, - 0x5936580d, 0x812e59c0, 0x04000007, 0x4937c857, - 0x497a680d, 0x0201f800, 0x00100589, 0x82000540, - 0x00000001, 0x5c025800, 0x1c01f000, 0x59340405, - 0x4937c857, 0x4803c857, 0x8c000508, 0x1c01f000, - 0x4933c857, 0x5930380a, 0x581c0200, 0x8400051a, - 0x48003a00, 0x1c01f000, 0x42026800, 0x0010b876, - 0x497a680e, 0x42028800, 0x000007ff, 0x0201f800, - 0x00103aa1, 0x4937c857, 0x4a026c00, 0x00000606, - 0x4a026802, 0x00ffffff, 0x4a026a04, 0x00000200, - 0x4a026c04, 0x00000002, 0x1c01f000, 0x0401f807, - 0x42018800, 0x00000001, 0x04020003, 0x42018800, - 0x00000000, 0x1c01f000, 0x5930000a, 0x50000000, - 0x4933c857, 0x4803c857, 0x8c00050e, 0x1c01f000, - 0x5930000a, 0x50000000, 0x8c00050a, 0x1c01f000, - 0x0401f807, 0x42018800, 0x00000001, 0x04000003, - 0x42018800, 0x00000000, 0x1c01f000, 0x4933c856, - 0x0401f8bc, 0x04000006, 0x59340400, 0x82000d00, - 0x000000ff, 0x82041580, 0x00000005, 0x1c01f000, - 0x0401f807, 0x42018800, 0x00000001, 0x04020003, - 0x42018800, 0x00000000, 0x1c01f000, 0x4d340000, - 0x83ac0400, 0x000007fe, 0x50000000, 0x80026d40, - 0x04000003, 0x59340200, 0x8c00051a, 0x5c026800, - 0x1c01f000, 0x4937c857, 0x493fc857, 0x59340403, - 0x81ac0400, 0x50000000, 0x81340580, 0x02020800, - 0x0010032d, 0x59341200, 0x813e79c0, 0x04000003, - 0x8408155e, 0x0401f002, 0x8408151e, 0x480a6a00, - 0x1c01f000, 0x4937c857, 0x0201f800, 0x00101b05, - 0x04000006, 0x59a80828, 0x42001000, 0x001040ef, - 0x0201f800, 0x00105904, 0x1c01f000, 0x4937c857, - 0x42001000, 0x001040ef, 0x0201f800, 0x001057cd, - 0x59a8121b, 0x84081512, 0x480b521b, 0x1c01f000, - 0x4008d000, 0x4020d800, 0x829d3c80, 0x00000004, - 0x409ce000, 0x0201f800, 0x0010ebbd, 0x589c0000, - 0x589c2001, 0x589c2802, 0x589c3003, 0x829d3c00, - 0x00000004, 0x800001c0, 0x1c01f000, 0x4d340000, - 0x406a6800, 0x0401f803, 0x5c026800, 0x1c01f000, - 0x5934000f, 0x5934140b, 0x80081040, 0x04001002, - 0x480a6c0b, 0x80000540, 0x02020800, 0x00020327, - 0x1c01f000, 0x4803c857, 0x4947c857, 0x4c300000, - 0x82006500, 0x00000030, 0x04000006, 0x4c000000, - 0x0201f800, 0x00108cef, 0x5c000000, 0x0402000b, - 0x8c00050e, 0x04000006, 0x0201f800, 0x00020319, - 0x04020006, 0x4937c857, 0x0401fd06, 0x80000580, - 0x5c006000, 0x1c01f000, 0x82000540, 0x00000001, - 0x0401f7fc, 0x4803c857, 0x4c580000, 0x4d440000, - 0x40001000, 0x80000d80, 0x4200b000, 0x000007f0, - 0x4c040000, 0x40068800, 0x4c080000, 0x40080000, - 0x0401ffdf, 0x5c001000, 0x5c000800, 0x80040800, - 0x8058b040, 0x040207f7, 0x8c081514, 0x04000007, - 0x84081514, 0x4200b000, 0x00000001, 0x42000800, - 0x000007fc, 0x0401f7ef, 0x4d300000, 0x4d400000, - 0x42028800, 0x0000ffff, 0x42026000, 0x0010f53c, - 0x497a600a, 0x42028000, 0x00000029, 0x0201f800, - 0x0010610d, 0x4df00000, 0x0201f800, 0x0010e4c8, - 0x0201f800, 0x0010ea62, 0x5c03e000, 0x02000800, - 0x001060fa, 0x5c028000, 0x5c026000, 0x5c028800, + 0x00000001, 0x5c00b000, 0x5c025800, 0x5c00b800, + 0x1c01f000, 0x80000580, 0x0401f7fb, 0x4803c856, + 0x4d3c0000, 0x4d2c0000, 0x5934000d, 0x80025d40, + 0x0400001f, 0x592c0002, 0x80000540, 0x0402001f, + 0x412e7800, 0x0401f8d6, 0x0402001c, 0x46000800, + 0xffffffff, 0x46001000, 0xffffffff, 0x4813c857, + 0x480fc857, 0x580c0003, 0x82000c80, 0x00000002, + 0x04021014, 0x480fc857, 0x400c0000, 0x812c0580, + 0x04020004, 0x580c0001, 0x4802680d, 0x0401f003, + 0x580c0001, 0x48002001, 0x400e5800, 0x0201f800, + 0x00100580, 0x82000540, 0x00000001, 0x5c025800, + 0x5c027800, 0x1c01f000, 0x80000580, 0x0401f7fc, + 0x80000040, 0x48001803, 0x4803c857, 0x0401f7f6, + 0x0201f800, 0x00020111, 0x59300008, 0x8400054e, + 0x48026008, 0x592c1a05, 0x820c1d00, 0x000000ff, + 0x820c0580, 0x00000048, 0x04000013, 0x0201f000, + 0x00020360, 0x8c000500, 0x02020800, 0x00020179, + 0x4a026203, 0x00000002, 0x592c1a05, 0x820c1d00, + 0x000000ff, 0x820c0580, 0x00000018, 0x02000000, + 0x00020360, 0x820c0580, 0x00000048, 0x02020000, + 0x00020360, 0x42000800, 0x80000804, 0x0201f800, + 0x000209a3, 0x0201f000, 0x00020369, 0x4a025a07, + 0x00000008, 0x0201f000, 0x000203ab, 0x4a025a07, + 0x00000029, 0x0201f000, 0x000203ab, 0x4a025a07, + 0x0000002a, 0x0201f000, 0x000203ab, 0x4a025a07, + 0x00000028, 0x0201f000, 0x000203ab, 0x4a025a07, + 0x0000000e, 0x0201f000, 0x000203ab, 0x4943c857, + 0x4d440000, 0x4d340000, 0x4d2c0000, 0x4c580000, + 0x4200b000, 0x000007f0, 0x417a8800, 0x0201f800, + 0x00020319, 0x04020007, 0x8d3e7d06, 0x04000004, + 0x59340200, 0x8c00050e, 0x04020002, 0x0401f813, + 0x81468800, 0x8058b040, 0x040207f5, 0x83440480, + 0x00000800, 0x04021008, 0x8d3e7d02, 0x04000006, + 0x42028800, 0x000007f0, 0x4200b000, 0x00000010, + 0x0401f7eb, 0x5c00b000, 0x5c025800, 0x5c026800, + 0x5c028800, 0x1c01f000, 0x4d2c0000, 0x4c600000, + 0x4c5c0000, 0x4178b800, 0x5936580f, 0x812e59c0, + 0x04000029, 0x592c0205, 0x82000500, 0x000000ff, + 0x82000580, 0x00000012, 0x04000020, 0x8d3e7d00, + 0x04000003, 0x0401f844, 0x0402001c, 0x592cc000, + 0x497a5800, 0x805cb9c0, 0x04020009, 0x59340010, + 0x812c0580, 0x04020004, 0x497a680f, 0x497a6810, + 0x0401f008, 0x4862680f, 0x0401f006, 0x4860b800, + 0x59340010, 0x812c0580, 0x04020002, 0x485e6810, + 0x4a025a05, 0x00000103, 0x49425a07, 0x497a580a, + 0x0201f800, 0x00108afb, 0x0201f800, 0x000203ab, + 0x40625800, 0x0401f7da, 0x412cb800, 0x592e5800, + 0x0401f7d7, 0x5c00b800, 0x5c00c000, 0x5c025800, + 0x1c01f000, 0x4803c856, 0x41781800, 0x5934000f, + 0x80025d40, 0x04000016, 0x592c0006, 0x80200580, + 0x592c0000, 0x04000003, 0x412c1800, 0x0401f7f9, + 0x592c0a05, 0x82040d00, 0x000000ff, 0x82040d80, + 0x00000012, 0x040007f9, 0x497a5800, 0x800c19c0, + 0x04000008, 0x48001800, 0x80000540, 0x04020004, + 0x480e6810, 0x82000540, 0x00000001, 0x1c01f000, + 0x4802680f, 0x80000540, 0x040207fd, 0x497a6810, + 0x0401f7f9, 0x592c0009, 0x81480580, 0x04020003, + 0x592c000a, 0x814c0580, 0x1c01f000, 0x4803c856, + 0x4c580000, 0x413c1800, 0x400c2000, 0x593c0002, + 0x80000540, 0x04020018, 0x4200b000, 0x00000008, + 0x820c0c00, 0x00000004, 0x50040000, 0x81480580, + 0x04020005, 0x80041000, 0x50080000, 0x814c0580, + 0x0400000d, 0x82040c00, 0x00000002, 0x8058b040, + 0x040207f6, 0x400c2000, 0x580c0001, 0x80001d40, + 0x040207ee, 0x82000540, 0x00000001, 0x5c00b000, + 0x1c01f000, 0x80000580, 0x0401f7fd, 0x4937c857, + 0x4c580000, 0x4d2c0000, 0x5934000d, 0x80025d40, + 0x04020016, 0x0201f800, 0x0010056f, 0x04000010, + 0x492e680d, 0x4a025802, 0x00000001, 0x497a5803, + 0x832c0c00, 0x00000004, 0x4200b000, 0x00000010, + 0x46000800, 0xffffffff, 0x80040800, 0x8058b040, + 0x040207fc, 0x82000540, 0x00000001, 0x5c025800, + 0x5c00b000, 0x1c01f000, 0x4d2c0000, 0x592e5801, + 0x0201f800, 0x00100589, 0x5c025800, 0x497a5801, + 0x0401f7e9, 0x4d2c0000, 0x5936580d, 0x812e59c0, + 0x04000007, 0x4937c857, 0x497a680d, 0x0201f800, + 0x00100589, 0x82000540, 0x00000001, 0x5c025800, + 0x1c01f000, 0x59340405, 0x4937c857, 0x4803c857, + 0x8c000508, 0x1c01f000, 0x4933c857, 0x5930380a, + 0x581c0200, 0x8400051a, 0x48003a00, 0x1c01f000, + 0x42026800, 0x0010b976, 0x497a680e, 0x42028800, + 0x000007ff, 0x0201f800, 0x00103ab4, 0x4937c857, + 0x4a026c00, 0x00000606, 0x4a026802, 0x00ffffff, + 0x4a026a04, 0x00000200, 0x4a026c04, 0x00000002, + 0x1c01f000, 0x0401f807, 0x42018800, 0x00000001, + 0x04020003, 0x42018800, 0x00000000, 0x1c01f000, + 0x5930000a, 0x50000000, 0x4933c857, 0x4803c857, + 0x8c00050e, 0x1c01f000, 0x5930000a, 0x50000000, + 0x8c00050a, 0x1c01f000, 0x0401f807, 0x42018800, + 0x00000001, 0x04000003, 0x42018800, 0x00000000, + 0x1c01f000, 0x4933c856, 0x0401f8be, 0x04000006, + 0x59340400, 0x82000d00, 0x000000ff, 0x82041580, + 0x00000005, 0x1c01f000, 0x0401f807, 0x42018800, + 0x00000001, 0x04020003, 0x42018800, 0x00000000, + 0x1c01f000, 0x4d340000, 0x83ac0400, 0x000007fe, + 0x50000000, 0x80026d40, 0x04000003, 0x59340200, + 0x8c00051a, 0x5c026800, 0x1c01f000, 0x4937c857, + 0x493fc857, 0x59340403, 0x81ac0400, 0x50000000, + 0x81340580, 0x02020800, 0x0010032d, 0x59341200, + 0x813e79c0, 0x04000003, 0x8408155e, 0x0401f002, + 0x8408151e, 0x480a6a00, 0x1c01f000, 0x4937c857, + 0x0201f800, 0x00101b0a, 0x04000006, 0x59a80828, + 0x42001000, 0x00104109, 0x0201f800, 0x001059a9, + 0x1c01f000, 0x4937c857, 0x42001000, 0x00104109, + 0x0201f800, 0x00105872, 0x59a8121b, 0x84081512, + 0x480b521b, 0x1c01f000, 0x4008d000, 0x4020d800, + 0x829d3c80, 0x00000004, 0x409ce000, 0x0201f800, + 0x0010ecc2, 0x589c0000, 0x589c2001, 0x589c2802, + 0x589c3003, 0x829d3c00, 0x00000004, 0x800001c0, + 0x1c01f000, 0x4d340000, 0x406a6800, 0x0401f803, + 0x5c026800, 0x1c01f000, 0x5934000f, 0x5934140b, + 0x80081040, 0x04001002, 0x480a6c0b, 0x80000540, + 0x02020800, 0x00020327, 0x1c01f000, 0x4803c857, + 0x4947c857, 0x4c300000, 0x82006500, 0x00000030, + 0x04000006, 0x4c000000, 0x0201f800, 0x00108da8, + 0x5c000000, 0x0402000b, 0x8c00050e, 0x04000006, + 0x0201f800, 0x00020319, 0x04020006, 0x4937c857, + 0x0401fd02, 0x80000580, 0x5c006000, 0x1c01f000, + 0x82000540, 0x00000001, 0x0401f7fc, 0x4803c857, + 0x4c580000, 0x4d440000, 0x40001000, 0x80000d80, + 0x4200b000, 0x000007f0, 0x4c040000, 0x40068800, + 0x4c080000, 0x40080000, 0x0401ffdf, 0x5c001000, + 0x5c000800, 0x80040800, 0x8058b040, 0x040207f7, + 0x8c081514, 0x04000007, 0x84081514, 0x4200b000, + 0x00000001, 0x42000800, 0x000007fc, 0x0401f7ef, + 0x4d300000, 0x4d400000, 0x0401fb63, 0x42028800, + 0x0000ffff, 0x42026000, 0x0010f64c, 0x4a02600a, + 0x0010c2b2, 0x42028000, 0x00000029, 0x0201f800, + 0x001061b2, 0x4df00000, 0x0201f800, 0x0010e5d8, + 0x0201f800, 0x0010eb5d, 0x5c03e000, 0x02000800, + 0x0010619f, 0x5c028000, 0x5c026000, 0x5c028800, 0x5c00b000, 0x1c01f000, 0x0401f807, 0x42018800, 0x00000001, 0x04000003, 0x42018800, 0x00000000, 0x1c01f000, 0x4c5c0000, 0x59340400, 0x8200bd80, @@ -4240,1221 +4242,1241 @@ static const uint32_t isp_2400_risc_code[] = { 0x5c00b800, 0x1c01f000, 0x4c040000, 0x4c080000, 0x592c0208, 0x8c00050c, 0x0400000f, 0x592e8c07, 0x82000500, 0x00000080, 0x84000548, 0x4d3c0000, - 0x42027800, 0x00001000, 0x0401ff5b, 0x5c027800, + 0x42027800, 0x00001000, 0x0401ff59, 0x5c027800, 0x82000540, 0x00000001, 0x5c001000, 0x5c000800, 0x1c01f000, 0x80000580, 0x0401f7fc, 0x592c040c, 0x82000500, 0x0000e000, 0x82000580, 0x00006000, 0x04000020, 0x836c0580, 0x00000003, 0x04000016, - 0x836c0580, 0x00000002, 0x04020113, 0x59a8021b, + 0x836c0580, 0x00000002, 0x04020116, 0x59a8021b, 0x82000d00, 0x00000038, 0x04020005, 0x59a80813, - 0x800409c0, 0x0400000c, 0x0401f10b, 0x82000d00, - 0x00000003, 0x82040d80, 0x00000003, 0x04020106, + 0x800409c0, 0x0400000c, 0x0401f10e, 0x82000d00, + 0x00000003, 0x82040d80, 0x00000003, 0x04020109, 0x82000d00, 0x00000028, 0x04020003, 0x8c00050c, - 0x04000101, 0x592c100b, 0x82080500, 0xff000000, - 0x040200df, 0x59a8000f, 0x80080580, 0x040000d9, + 0x04000104, 0x592c100b, 0x82080500, 0xff000000, + 0x040200e2, 0x59a8000f, 0x80080580, 0x040000dc, 0x592c0c0c, 0x82040d00, 0x0000e000, 0x82040480, - 0x00008000, 0x040210d9, 0x592e8c07, 0x83440480, - 0x00000800, 0x04001014, 0x83440580, 0x0000ffff, - 0x040200c0, 0x800409c0, 0x0402010b, 0x592c240a, - 0x82100500, 0xffffff00, 0x040200c3, 0x480bc857, + 0x00008000, 0x040210dc, 0x592e8c07, 0x83440480, + 0x00000800, 0x04001016, 0x83440580, 0x0000ffff, + 0x040200c3, 0x800409c0, 0x0402010e, 0x592c240a, + 0x82100500, 0xffffff00, 0x040200c6, 0x480bc857, 0x4813c857, 0x592c000e, 0x82000480, 0x00000841, - 0x040210c9, 0x42027000, 0x00000053, 0x417a6800, - 0x0401f099, 0x800409c0, 0x040200fb, 0x41784000, - 0x0401fef0, 0x040200e2, 0x59342204, 0x592c000e, - 0x80100480, 0x040010bc, 0x42027000, 0x00000053, - 0x592c240a, 0x82100500, 0xffffff00, 0x040200aa, - 0x4813c857, 0x592c000d, 0x800001c0, 0x04000083, - 0x82100580, 0x00000004, 0x040000a0, 0x82100580, - 0x00000051, 0x0400009d, 0x82100580, 0x00000003, - 0x04000016, 0x82100580, 0x00000020, 0x0400004b, - 0x82100580, 0x00000024, 0x04000042, 0x82100580, - 0x00000021, 0x04000042, 0x82100580, 0x00000050, - 0x04000037, 0x82100580, 0x00000052, 0x04000031, - 0x82100580, 0x00000005, 0x0402006b, 0x42027000, - 0x00000001, 0x0401f01b, 0x42027000, 0x00000002, - 0x59a8006d, 0x8c000502, 0x04000016, 0x0401ff2a, - 0x04000014, 0x59340212, 0x82000500, 0x0000ff00, - 0x42001000, 0x00000010, 0x0402000c, 0x59a8021b, - 0x8c000506, 0x0402006f, 0x42001000, 0x00000008, - 0x59340002, 0x82000500, 0x00ff0000, 0x82000580, - 0x00ff0000, 0x04000003, 0x0401f9db, 0x04020065, - 0x0201f800, 0x001070f5, 0x04000081, 0x4a026407, - 0x00000010, 0x4936600a, 0x42000800, 0x00000003, - 0x83380580, 0x00000002, 0x04000003, 0x42000800, - 0x0000000b, 0x0201f800, 0x00103d8a, 0x0401f044, - 0x42027000, 0x00000000, 0x0401f003, 0x42027000, - 0x00000004, 0x0401ff1c, 0x04020074, 0x0401f036, - 0x42027000, 0x00000033, 0x0401f006, 0x42027000, - 0x00000005, 0x0401f003, 0x42027000, 0x00000003, - 0x0401ff08, 0x04020069, 0x59a8006d, 0x8c000502, - 0x04000016, 0x0401fef0, 0x04000014, 0x59340212, + 0x040210cc, 0x42027000, 0x00000053, 0x0401faa6, + 0x42026800, 0x0010c2b2, 0x0401f099, 0x800409c0, + 0x040200fc, 0x41784000, 0x0401feec, 0x040200e3, + 0x59342204, 0x592c000e, 0x80100480, 0x040010bd, + 0x42027000, 0x00000053, 0x592c240a, 0x82100500, + 0xffffff00, 0x040200ab, 0x4813c857, 0x592c000d, + 0x800001c0, 0x04000083, 0x82100580, 0x00000004, + 0x040000a1, 0x82100580, 0x00000051, 0x0400009e, + 0x82100580, 0x00000003, 0x04000016, 0x82100580, + 0x00000020, 0x0400004b, 0x82100580, 0x00000024, + 0x04000042, 0x82100580, 0x00000021, 0x04000042, + 0x82100580, 0x00000050, 0x04000037, 0x82100580, + 0x00000052, 0x04000031, 0x82100580, 0x00000005, + 0x0402006b, 0x42027000, 0x00000001, 0x0401f01b, + 0x42027000, 0x00000002, 0x59a8006d, 0x8c000502, + 0x04000016, 0x0401ff28, 0x04000014, 0x59340212, 0x82000500, 0x0000ff00, 0x42001000, 0x00000010, - 0x0402000c, 0x59a8021b, 0x8c000506, 0x04020035, + 0x0402000c, 0x59a8021b, 0x8c000506, 0x04020070, 0x42001000, 0x00000008, 0x59340002, 0x82000500, 0x00ff0000, 0x82000580, 0x00ff0000, 0x04000003, - 0x0401f9a1, 0x0402002b, 0x0201f800, 0x001070f5, - 0x04000047, 0x4a026407, 0x00000010, 0x4936600a, - 0x42000800, 0x00000005, 0x83380580, 0x00000003, - 0x04000003, 0x42000800, 0x00000009, 0x0201f800, - 0x00103d8a, 0x0401f00a, 0x82102580, 0x00000011, - 0x04020030, 0x0201f800, 0x001070f5, 0x04000034, - 0x4a026407, 0x00000010, 0x4936600a, 0x492e6009, - 0x49325809, 0x813669c0, 0x04000007, 0x592c0c0c, - 0x8c040d18, 0x04000004, 0x59340200, 0x84000514, - 0x48026a00, 0x0201f800, 0x00020a34, 0x80000580, - 0x1c01f000, 0x82000540, 0x00000001, 0x0401f7fd, - 0x42001000, 0x0000000a, 0x0401f018, 0x42001000, - 0x00000010, 0x0401f015, 0x42001000, 0x00000016, - 0x0401f012, 0x42001000, 0x00000017, 0x0401f00f, - 0x42001000, 0x00000018, 0x0401f00c, 0x42001000, - 0x0000001b, 0x0401f009, 0x42001000, 0x0000001e, - 0x0401f006, 0x42001000, 0x00000024, 0x0401f003, - 0x42001000, 0x00000020, 0x42000800, 0x00000019, - 0x42028000, 0x00000031, 0x0401f7df, 0x42000800, - 0x00000003, 0x0401f003, 0x42000800, 0x0000000a, - 0x41781000, 0x0401f7f7, 0x42000800, 0x00000009, - 0x59341400, 0x0401f7f3, 0x42028000, 0x00000008, - 0x0401f005, 0x42000800, 0x00000007, 0x416c1000, - 0x0401f7ec, 0x41780800, 0x41781000, 0x0401f7ca, - 0x42028000, 0x00000000, 0x0401f7fb, 0x82004d80, - 0x0000001d, 0x02000800, 0x0010032d, 0x82004d80, - 0x0000001a, 0x04020004, 0x40101000, 0x40000800, - 0x0401f7dc, 0x82004d80, 0x0000001b, 0x04020003, - 0x40181000, 0x0401f7fa, 0x82004d80, 0x0000001c, - 0x040007f7, 0x82004d80, 0x00000019, 0x040007b5, - 0x0401f7d6, 0x592e6009, 0x0201f800, 0x00108ce2, - 0x040007b3, 0x59300c07, 0x82040580, 0x00000011, - 0x040207d6, 0x592c0c0c, 0x82041500, 0x0000e000, - 0x82080580, 0x00006000, 0x04000024, 0x83440580, - 0x0000ffff, 0x04020005, 0x5932680a, 0x813669c0, - 0x0400000e, 0x0401f7c9, 0x592c100b, 0x82081500, - 0x00ffffff, 0x41784000, 0x0401fdde, 0x040207d0, - 0x5930000a, 0x800001c0, 0x04000003, 0x81340580, - 0x040207be, 0x4936600a, 0x42000800, 0x00000840, - 0x813669c0, 0x04000002, 0x59340a04, 0x592c000e, - 0x80040480, 0x040017a0, 0x59300a03, 0x82040580, - 0x00000007, 0x040207b1, 0x492e6009, 0x42027000, - 0x00000054, 0x0401f774, 0x0201f800, 0x0010a43f, - 0x040007b4, 0x0401f7a9, 0x492fc857, 0x592e6009, - 0x83300580, 0xffffffff, 0x04020045, 0x592c0208, - 0x8c000500, 0x04020081, 0x8d0e1d0e, 0x04020067, - 0x592e8c07, 0x83440480, 0x00000800, 0x04021039, - 0x41784000, 0x592c100a, 0x82081500, 0x00ffffff, - 0x0401fdb0, 0x04020060, 0x592e6014, 0x4933c857, - 0x83300580, 0xffffffff, 0x0400001b, 0x0201f800, - 0x00108ce2, 0x0400003a, 0x591c1407, 0x800811c0, - 0x04000015, 0x592c040e, 0x591c0a02, 0x80040580, - 0x04020011, 0x591c000a, 0x800001c0, 0x04020007, - 0x591c081f, 0x59340002, 0x80040580, 0x82000500, - 0x00ffffff, 0x0401f002, 0x81340580, 0x04020006, - 0x82080580, 0x00000007, 0x0402003d, 0x4a023c03, - 0x00000024, 0x59a8000f, 0x592c100b, 0x82081500, - 0x00ffffff, 0x80081580, 0x0402001a, 0x592c080a, - 0x82041500, 0x00ffffff, 0x80081580, 0x0400000f, - 0x80040932, 0x82040580, 0x00000042, 0x0402000e, - 0x49365803, 0x0401f910, 0x80000580, 0x1c01f000, - 0x42001000, 0x0000000a, 0x0401f00f, 0x42001000, - 0x00000010, 0x0401f00c, 0x42001000, 0x00000014, - 0x0401f009, 0x42001000, 0x00000017, 0x0401f006, - 0x42001000, 0x00000018, 0x0401f003, 0x42001000, - 0x0000003c, 0x492fc857, 0x480bc857, 0x42000800, - 0x00000019, 0x42028000, 0x00000031, 0x82000540, - 0x00000001, 0x0401f7e6, 0x492fc857, 0x4803c857, - 0x480bc857, 0x40000800, 0x0401f7f7, 0x492fc857, - 0x42000800, 0x0000000a, 0x41781000, 0x0401f7f2, - 0x41780800, 0x41781000, 0x0401f7f1, 0x42000800, - 0x0000001e, 0x0401f7f9, 0x42000800, 0x00000001, - 0x0401f7f6, 0x82004d80, 0x0000001d, 0x02000800, - 0x0010032d, 0x82004d80, 0x0000001a, 0x04020003, - 0x40101000, 0x0401f7e5, 0x82004d80, 0x0000001b, - 0x04020003, 0x40181000, 0x0401f7e0, 0x82004d80, - 0x0000001c, 0x040007dd, 0x82004d80, 0x00000019, - 0x040007da, 0x0401f7de, 0x0201f800, 0x0010a52b, - 0x42028000, 0x00000000, 0x0401f7de, 0x5c000000, - 0x4c000000, 0x4803c857, 0x5930200a, 0x801021c0, - 0x04000035, 0x58101400, 0x4813c857, 0x480bc857, - 0x82081d00, 0x000000ff, 0x59300c03, 0x82040580, - 0x00000008, 0x04000022, 0x82040580, 0x0000000a, - 0x04000017, 0x82040580, 0x0000000c, 0x04000010, - 0x82040580, 0x00000002, 0x04000019, 0x82040580, - 0x00000001, 0x04000012, 0x82040580, 0x00000003, - 0x0400000b, 0x82040580, 0x00000005, 0x04000004, - 0x82040580, 0x00000033, 0x04020017, 0x820c0580, - 0x00000009, 0x0400000d, 0x0401f013, 0x820c0580, - 0x00000005, 0x04000009, 0x0401f00f, 0x820c0580, - 0x0000000b, 0x04000005, 0x0401f00b, 0x820c0580, - 0x00000003, 0x04020008, 0x82081d00, 0xffffff00, - 0x840c01c0, 0x800c0540, 0x4807c857, 0x4803c857, - 0x48002400, 0x1c01f000, 0x0401f807, 0x42018800, - 0x00000001, 0x04020003, 0x42018800, 0x00000000, - 0x1c01f000, 0x599c0017, 0x8c00050a, 0x04000003, - 0x80000580, 0x1c01f000, 0x59a8021b, 0x82000500, - 0x00000028, 0x04000008, 0x42028800, 0x000007fd, - 0x0201f800, 0x00020319, 0x04020003, 0x5934000a, - 0x8c000504, 0x1c01f000, 0x4d300000, 0x5934000e, - 0x80026540, 0x04000006, 0x0201f800, 0x00105b70, - 0x02000800, 0x00105d48, 0x497a680e, 0x5c026000, - 0x1c01f000, 0x40681000, 0x0401f807, 0x42018800, - 0x00000001, 0x04020003, 0x42018800, 0x00000000, - 0x1c01f000, 0x4d440000, 0x4d340000, 0x80000580, - 0x40001800, 0x40028800, 0x82080580, 0x00000008, - 0x04020003, 0x42001800, 0x00000001, 0x0201f800, - 0x00020319, 0x0402000a, 0x0401fd2f, 0x04020008, - 0x800c19c0, 0x04000004, 0x59340405, 0x8c000508, - 0x04000003, 0x80081040, 0x04000009, 0x81468800, - 0x83440480, 0x00000800, 0x040017f1, 0x80000580, - 0x5c026800, 0x5c028800, 0x1c01f000, 0x82000540, - 0x00000001, 0x5c026800, 0x5c028800, 0x1c01f000, - 0x42000800, 0x00000008, 0x59bc00e4, 0x8c000524, - 0x0402002e, 0x59a8021b, 0x8c000508, 0x0402002b, - 0x5934100a, 0x82081500, 0x0000e000, 0x41781800, - 0x82080580, 0x00000000, 0x04000006, 0x800c1800, - 0x82080580, 0x00002000, 0x04000002, 0x800c1800, - 0x42007000, 0x0010b895, 0x58380401, 0x8c000504, - 0x04000007, 0x820c2c80, 0x00000003, 0x04021017, - 0x820c0400, 0x00104480, 0x0401f013, 0x41782000, - 0x59342a04, 0x82140480, 0x00000800, 0x04021006, - 0x80102000, 0x82140480, 0x00000400, 0x04021002, - 0x80102000, 0x800c00c2, 0x800c0400, 0x80100400, - 0x82002c80, 0x00000006, 0x04021004, 0x82000400, - 0x00104483, 0x50000800, 0x48066c04, 0x1c01f000, - 0x00000002, 0x00000004, 0x00000008, 0x00002802, - 0x00001402, 0x00000a02, 0x00001402, 0x00000a02, - 0x00000502, 0x59a80853, 0x800409c0, 0x04020005, - 0x492f5052, 0x492f5053, 0x0201f000, 0x0010702d, - 0x492c0800, 0x492f5053, 0x1c01f000, 0x5934000f, - 0x41784000, 0x80001540, 0x0400000d, 0x58080205, - 0x82000500, 0x000000ff, 0x82000580, 0x00000012, - 0x04020004, 0x5808020d, 0x80040580, 0x04000006, - 0x58080000, 0x40084000, 0x0401f7f3, 0x82000540, - 0x00000001, 0x1c01f000, 0x4a033011, 0x00000000, - 0x4a03b104, 0x80000000, 0x4a03b104, 0x60000001, - 0x497b3016, 0x497b3017, 0x1c01f000, 0x599c0018, - 0x4803c856, 0x497b3014, 0x497b3015, 0x82000500, - 0x0000000f, 0x48033012, 0x04000009, 0x599c0216, - 0x82000500, 0x0000ffff, 0x04020003, 0x42000000, - 0x00000002, 0x48033013, 0x850e1d62, 0x1c01f000, - 0x0401ffef, 0x4a03c826, 0x00000004, 0x599c0209, - 0x80000540, 0x0400001e, 0x599c0207, 0x80000540, - 0x04000007, 0x800000cc, 0x599c080d, 0x80040400, - 0x4803b100, 0x497bb102, 0x59d80101, 0x599c000d, - 0x4803b100, 0x599c000e, 0x4803b101, 0x599c0207, - 0x80000540, 0x04020002, 0x497bb102, 0x599c0a09, - 0x82040540, 0x00400000, 0x4803b103, 0x4a03b109, - 0x00000005, 0x4a03b104, 0x10000001, 0x8d0e1d22, - 0x04020004, 0x4a033011, 0x00000001, 0x1c01f000, - 0x8d0e1d20, 0x04020004, 0x4a033011, 0x00000002, - 0x0401f7fb, 0x4a033011, 0x00000003, 0x0401f7f8, - 0x592c0205, 0x492fc857, 0x80000540, 0x04000008, - 0x42034000, 0x0010b7fa, 0x59a1d806, 0x80edd9c0, - 0x02000800, 0x0010032d, 0x0401f007, 0x0201f800, - 0x001091d9, 0x02020800, 0x0010032d, 0x5931d822, - 0x58ef400a, 0x58ec0008, 0x800001c0, 0x02000800, - 0x0010032d, 0x0801f800, 0x1c01f000, 0x40680800, - 0x5c000000, 0x4c000000, 0x4803c857, 0x492fc857, - 0x4943c857, 0x4807c857, 0x4a025a05, 0x00000103, - 0x49425a07, 0x48065a09, 0x4a025c07, 0x0000ffff, - 0x813261c0, 0x04000003, 0x59300402, 0x48025c07, - 0x832c0400, 0x0000000a, 0x04011000, 0x4803c840, - 0x4a03c842, 0x0000000b, 0x04011000, 0x1c01f000, - 0x59a80011, 0x82000c80, 0x0000000a, 0x02021800, - 0x0010032d, 0x0c01f809, 0x4a038805, 0x000000f0, - 0x59c400a3, 0x82000500, 0x02870000, 0x02020800, - 0x0010032d, 0x1c01f000, 0x001045c3, 0x00104535, - 0x00104554, 0x00104588, 0x001045b3, 0x0010032d, - 0x0010032d, 0x00104554, 0x0010032d, 0x00104534, - 0x1c01f000, 0x42002000, 0x00000003, 0x0201f800, - 0x00104a0a, 0x4a038808, 0x00000004, 0x0201f800, - 0x001049f1, 0x59c40805, 0x8c040d0e, 0x04020014, - 0x8c040d0a, 0x0402000b, 0x8c040d0c, 0x04020006, - 0x8c040d08, 0x0400000e, 0x4a035011, 0x00000003, - 0x0401f00a, 0x4a035011, 0x00000000, 0x0401f007, - 0x42000000, 0x0010bb72, 0x0201f800, 0x0010ad1d, - 0x4a035011, 0x00000002, 0x0401f8c4, 0x1c01f000, - 0x59a80073, 0x8c00053e, 0x04020018, 0x42002000, - 0x00000000, 0x0201f800, 0x00104a0a, 0x4a038808, - 0x00000002, 0x59c40805, 0x8c040d08, 0x04020025, - 0x8c040d0c, 0x04020020, 0x8c040d0e, 0x0402001b, - 0x82040500, 0x000000f0, 0x04020021, 0x0201f800, - 0x001049f1, 0x4a038808, 0x00000080, 0x59c40002, - 0x8400050c, 0x48038802, 0x0401f9db, 0x4d3c0000, - 0x42027800, 0x00000001, 0x0201f800, 0x00109146, - 0x5c027800, 0x4a038808, 0x00000080, 0x42002000, - 0x00000002, 0x0201f800, 0x00104a0a, 0x4a035011, - 0x00000009, 0x0401f00a, 0x4a035011, 0x00000001, - 0x0401f006, 0x4a035011, 0x00000000, 0x0401f003, - 0x4a035011, 0x00000003, 0x0401f890, 0x1c01f000, - 0x42002000, 0x00000001, 0x0201f800, 0x00104a0a, - 0x4a038808, 0x00000080, 0x59c40805, 0x8c040d0a, - 0x0402001f, 0x8c040d0c, 0x0402001a, 0x8c040d0e, - 0x04020015, 0x82040500, 0x000000f0, 0x0402001b, - 0x59c40002, 0x8400050c, 0x48038802, 0x0401f9ae, - 0x4d3c0000, 0x42027800, 0x00000001, 0x0201f800, - 0x00109146, 0x5c027800, 0x42002000, 0x00000002, - 0x0201f800, 0x00104a0a, 0x4a035011, 0x00000009, + 0x0401f9dc, 0x04020066, 0x0201f800, 0x00107188, + 0x04000082, 0x4a026407, 0x00000010, 0x4936600a, + 0x42000800, 0x00000003, 0x83380580, 0x00000002, + 0x04000003, 0x42000800, 0x0000000b, 0x0201f800, + 0x00103d9d, 0x0401f044, 0x42027000, 0x00000000, + 0x0401f003, 0x42027000, 0x00000004, 0x0401ff1a, + 0x04020075, 0x0401f036, 0x42027000, 0x00000033, + 0x0401f006, 0x42027000, 0x00000005, 0x0401f003, + 0x42027000, 0x00000003, 0x0401ff06, 0x0402006a, + 0x59a8006d, 0x8c000502, 0x04000016, 0x0401feee, + 0x04000014, 0x59340212, 0x82000500, 0x0000ff00, + 0x42001000, 0x00000010, 0x0402000c, 0x59a8021b, + 0x8c000506, 0x04020036, 0x42001000, 0x00000008, + 0x59340002, 0x82000500, 0x00ff0000, 0x82000580, + 0x00ff0000, 0x04000003, 0x0401f9a2, 0x0402002c, + 0x0201f800, 0x00107188, 0x04000048, 0x4a026407, + 0x00000010, 0x4936600a, 0x42000800, 0x00000005, + 0x83380580, 0x00000003, 0x04000003, 0x42000800, + 0x00000009, 0x0201f800, 0x00103d9d, 0x0401f00a, + 0x82102580, 0x00000011, 0x04020031, 0x0201f800, + 0x00107188, 0x04000035, 0x4a026407, 0x00000010, + 0x4936600a, 0x492e6009, 0x49325809, 0x83340580, + 0x0010c2b2, 0x04000007, 0x592c0c0c, 0x8c040d18, + 0x04000004, 0x59340200, 0x84000514, 0x48026a00, + 0x0201f800, 0x00020a34, 0x80000580, 0x1c01f000, + 0x82000540, 0x00000001, 0x0401f7fd, 0x42001000, + 0x0000000a, 0x0401f018, 0x42001000, 0x00000010, + 0x0401f015, 0x42001000, 0x00000016, 0x0401f012, + 0x42001000, 0x00000017, 0x0401f00f, 0x42001000, + 0x00000018, 0x0401f00c, 0x42001000, 0x0000001b, + 0x0401f009, 0x42001000, 0x0000001e, 0x0401f006, + 0x42001000, 0x00000024, 0x0401f003, 0x42001000, + 0x00000020, 0x42000800, 0x00000019, 0x42028000, + 0x00000031, 0x0401f7df, 0x42000800, 0x00000003, + 0x0401f003, 0x42000800, 0x0000000a, 0x41781000, + 0x0401f7f7, 0x42000800, 0x00000009, 0x59341400, + 0x0401f7f3, 0x42028000, 0x00000008, 0x0401f005, + 0x42000800, 0x00000007, 0x416c1000, 0x0401f7ec, + 0x41780800, 0x41781000, 0x0401f7ca, 0x42028000, + 0x00000000, 0x0401f7fb, 0x82004d80, 0x0000001d, + 0x02000800, 0x0010032d, 0x82004d80, 0x0000001a, + 0x04020004, 0x40101000, 0x40000800, 0x0401f7dc, + 0x82004d80, 0x0000001b, 0x04020003, 0x40181000, + 0x0401f7fa, 0x82004d80, 0x0000001c, 0x040007f7, + 0x82004d80, 0x00000019, 0x040007b5, 0x0401f7d6, + 0x592e6009, 0x0201f800, 0x00108d9b, 0x040007b3, + 0x59300c07, 0x82040580, 0x00000011, 0x040207d6, + 0x592c0c0c, 0x82041500, 0x0000e000, 0x82080580, + 0x00006000, 0x04000024, 0x83440580, 0x0000ffff, + 0x04020008, 0x5932680a, 0x83340580, 0x0010c2b2, + 0x040207c9, 0x42000800, 0x00000840, 0x0401f00f, + 0x592c100b, 0x82081500, 0x00ffffff, 0x41784000, + 0x0401fdd6, 0x040207cd, 0x5930000a, 0x82000d80, + 0x0010c2b2, 0x04000003, 0x81340580, 0x040207ba, + 0x4936600a, 0x59340a04, 0x592c000e, 0x80040480, + 0x040017a0, 0x59300a03, 0x82040580, 0x00000007, + 0x040207b1, 0x492e6009, 0x42027000, 0x00000054, + 0x0401f773, 0x0201f800, 0x0010a532, 0x040007b4, + 0x0401f7a9, 0x492fc857, 0x592e6009, 0x83300580, + 0xffffffff, 0x04020045, 0x592c0208, 0x8c000500, + 0x04020081, 0x8d0e1d0e, 0x04020067, 0x592e8c07, + 0x83440480, 0x00000800, 0x04021039, 0x41784000, + 0x592c100a, 0x82081500, 0x00ffffff, 0x0401fdab, + 0x04020060, 0x592e6014, 0x4933c857, 0x83300580, + 0xffffffff, 0x0400001b, 0x0201f800, 0x00108d9b, + 0x0400003a, 0x591c1407, 0x800811c0, 0x04000015, + 0x592c040e, 0x591c0a02, 0x80040580, 0x04020011, + 0x591c000a, 0x800001c0, 0x04020007, 0x591c081f, + 0x59340002, 0x80040580, 0x82000500, 0x00ffffff, + 0x0401f002, 0x81340580, 0x04020006, 0x82080580, + 0x00000007, 0x0402003d, 0x4a023c03, 0x00000024, + 0x59a8000f, 0x592c100b, 0x82081500, 0x00ffffff, + 0x80081580, 0x0402001a, 0x592c080a, 0x82041500, + 0x00ffffff, 0x80081580, 0x0400000f, 0x80040932, + 0x82040580, 0x00000042, 0x0402000e, 0x49365803, + 0x0401f910, 0x80000580, 0x1c01f000, 0x42001000, + 0x0000000a, 0x0401f00f, 0x42001000, 0x00000010, + 0x0401f00c, 0x42001000, 0x00000014, 0x0401f009, + 0x42001000, 0x00000017, 0x0401f006, 0x42001000, + 0x00000018, 0x0401f003, 0x42001000, 0x0000003c, + 0x492fc857, 0x480bc857, 0x42000800, 0x00000019, + 0x42028000, 0x00000031, 0x82000540, 0x00000001, + 0x0401f7e6, 0x492fc857, 0x4803c857, 0x480bc857, + 0x40000800, 0x0401f7f7, 0x492fc857, 0x42000800, + 0x0000000a, 0x41781000, 0x0401f7f2, 0x41780800, + 0x41781000, 0x0401f7f1, 0x42000800, 0x0000001e, + 0x0401f7f9, 0x42000800, 0x00000001, 0x0401f7f6, + 0x82004d80, 0x0000001d, 0x02000800, 0x0010032d, + 0x82004d80, 0x0000001a, 0x04020003, 0x40101000, + 0x0401f7e5, 0x82004d80, 0x0000001b, 0x04020003, + 0x40181000, 0x0401f7e0, 0x82004d80, 0x0000001c, + 0x040007dd, 0x82004d80, 0x00000019, 0x040007da, + 0x0401f7de, 0x0201f800, 0x0010a61e, 0x42028000, + 0x00000000, 0x0401f7de, 0x5c000000, 0x4c000000, + 0x4803c857, 0x5930200a, 0x801021c0, 0x04000035, + 0x58101400, 0x4813c857, 0x480bc857, 0x82081d00, + 0x000000ff, 0x59300c03, 0x82040580, 0x00000008, + 0x04000022, 0x82040580, 0x0000000a, 0x04000017, + 0x82040580, 0x0000000c, 0x04000010, 0x82040580, + 0x00000002, 0x04000019, 0x82040580, 0x00000001, + 0x04000012, 0x82040580, 0x00000003, 0x0400000b, + 0x82040580, 0x00000005, 0x04000004, 0x82040580, + 0x00000033, 0x04020017, 0x820c0580, 0x00000009, + 0x0400000d, 0x0401f013, 0x820c0580, 0x00000005, + 0x04000009, 0x0401f00f, 0x820c0580, 0x0000000b, + 0x04000005, 0x0401f00b, 0x820c0580, 0x00000003, + 0x04020008, 0x82081d00, 0xffffff00, 0x840c01c0, + 0x800c0540, 0x4807c857, 0x4803c857, 0x48002400, + 0x1c01f000, 0x0401f807, 0x42018800, 0x00000001, + 0x04020003, 0x42018800, 0x00000000, 0x1c01f000, + 0x599c0017, 0x8c00050a, 0x04000003, 0x80000580, + 0x1c01f000, 0x59a8021b, 0x82000500, 0x00000028, + 0x04000008, 0x42028800, 0x000007fd, 0x0201f800, + 0x00020319, 0x04020003, 0x5934000a, 0x8c000504, + 0x1c01f000, 0x4d300000, 0x5934000e, 0x80026540, + 0x04000006, 0x0201f800, 0x00105c15, 0x02000800, + 0x00105ded, 0x497a680e, 0x5c026000, 0x1c01f000, + 0x40681000, 0x0401f807, 0x42018800, 0x00000001, + 0x04020003, 0x42018800, 0x00000000, 0x1c01f000, + 0x4d440000, 0x4d340000, 0x80000580, 0x40001800, + 0x40028800, 0x82080580, 0x00000008, 0x04020003, + 0x42001800, 0x00000001, 0x0201f800, 0x00020319, + 0x0402000a, 0x0401fd2c, 0x04020008, 0x800c19c0, + 0x04000004, 0x59340405, 0x8c000508, 0x04000003, + 0x80081040, 0x04000009, 0x81468800, 0x83440480, + 0x00000800, 0x040017f1, 0x80000580, 0x5c026800, + 0x5c028800, 0x1c01f000, 0x82000540, 0x00000001, + 0x5c026800, 0x5c028800, 0x1c01f000, 0x42000800, + 0x00000008, 0x59bc00e4, 0x8c000524, 0x0402002e, + 0x59a8021b, 0x8c000508, 0x0402002b, 0x5934100a, + 0x82081500, 0x0000e000, 0x41781800, 0x82080580, + 0x00000000, 0x04000006, 0x800c1800, 0x82080580, + 0x00002000, 0x04000002, 0x800c1800, 0x42007000, + 0x0010b995, 0x58380401, 0x8c000504, 0x04000007, + 0x820c2c80, 0x00000003, 0x04021017, 0x820c0400, + 0x0010449f, 0x0401f013, 0x41782000, 0x59342a04, + 0x82140480, 0x00000800, 0x04021006, 0x80102000, + 0x82140480, 0x00000400, 0x04021002, 0x80102000, + 0x800c00c2, 0x800c0400, 0x80100400, 0x82002c80, + 0x00000006, 0x04021004, 0x82000400, 0x001044a2, + 0x50000800, 0x48066c04, 0x1c01f000, 0x00000002, + 0x00000004, 0x00000008, 0x00002802, 0x00001402, + 0x00000a02, 0x00001402, 0x00000a02, 0x00000502, + 0x59a80853, 0x800409c0, 0x04020005, 0x492f5052, + 0x492f5053, 0x0201f000, 0x001070bc, 0x492c0800, + 0x492f5053, 0x1c01f000, 0x5934000f, 0x41784000, + 0x80001540, 0x0400000d, 0x58080205, 0x82000500, + 0x000000ff, 0x82000580, 0x00000012, 0x04020004, + 0x5808020d, 0x80040580, 0x04000006, 0x58080000, + 0x40084000, 0x0401f7f3, 0x82000540, 0x00000001, + 0x1c01f000, 0x42000000, 0x0010c2b2, 0x4a000400, + 0x00000707, 0x4a000204, 0x00000840, 0x4a000403, + 0x0000ffff, 0x49780200, 0x1c01f000, 0x4d340000, + 0x4d440000, 0x4c580000, 0x4200b000, 0x000007f0, + 0x4803c856, 0x417a8800, 0x0201f800, 0x00020319, + 0x04020006, 0x59340200, 0x8c00051a, 0x04000003, + 0x8400051a, 0x48026a00, 0x81468800, 0x8058b040, + 0x040207f6, 0x5c00b000, 0x5c028800, 0x5c026800, + 0x1c01f000, 0x4a033011, 0x00000000, 0x4a03b104, + 0x80000000, 0x4a03b104, 0x60000001, 0x497b3016, + 0x497b3017, 0x1c01f000, 0x599c0018, 0x4803c856, + 0x497b3014, 0x497b3015, 0x82000500, 0x0000000f, + 0x48033012, 0x04000009, 0x599c0216, 0x82000500, + 0x0000ffff, 0x04020003, 0x42000000, 0x00000002, + 0x48033013, 0x850e1d62, 0x1c01f000, 0x0401ffef, + 0x4a03c826, 0x00000004, 0x599c0209, 0x80000540, + 0x0400001e, 0x599c0207, 0x80000540, 0x04000007, + 0x800000cc, 0x599c080d, 0x80040400, 0x4803b100, + 0x497bb102, 0x59d80101, 0x599c000d, 0x4803b100, + 0x599c000e, 0x4803b101, 0x599c0207, 0x80000540, + 0x04020002, 0x497bb102, 0x599c0a09, 0x82040540, + 0x00400000, 0x4803b103, 0x4a03b109, 0x00000005, + 0x4a03b104, 0x10000001, 0x8d0e1d22, 0x04020004, + 0x4a033011, 0x00000001, 0x1c01f000, 0x8d0e1d20, + 0x04020004, 0x4a033011, 0x00000002, 0x0401f7fb, + 0x4a033011, 0x00000003, 0x0401f7f8, 0x592c0205, + 0x492fc857, 0x80000540, 0x04000008, 0x42034000, + 0x0010b8fa, 0x59a1d806, 0x80edd9c0, 0x02000800, + 0x0010032d, 0x0401f007, 0x0201f800, 0x00109291, + 0x02020800, 0x0010032d, 0x5931d822, 0x58ef400a, + 0x58ec0008, 0x800001c0, 0x02000800, 0x0010032d, + 0x0801f800, 0x1c01f000, 0x40680800, 0x5c000000, + 0x4c000000, 0x4803c857, 0x492fc857, 0x4943c857, + 0x4807c857, 0x4a025a05, 0x00000103, 0x49425a07, + 0x48065a09, 0x4a025c07, 0x0000ffff, 0x813261c0, + 0x04000003, 0x59300402, 0x48025c07, 0x832c0400, + 0x0000000a, 0x04011000, 0x4803c840, 0x4a03c842, + 0x0000000b, 0x04011000, 0x1c01f000, 0x59a80011, + 0x82000c80, 0x0000000a, 0x02021800, 0x0010032d, + 0x0c01f809, 0x4a038805, 0x000000f0, 0x59c400a3, + 0x82000500, 0x02870000, 0x02020800, 0x0010032d, + 0x1c01f000, 0x00104602, 0x00104574, 0x00104593, + 0x001045c7, 0x001045f2, 0x0010032d, 0x0010032d, + 0x00104593, 0x0010032d, 0x00104573, 0x1c01f000, + 0x42002000, 0x00000003, 0x0201f800, 0x00104a49, + 0x4a038808, 0x00000004, 0x0201f800, 0x00104a30, + 0x59c40805, 0x8c040d0e, 0x04020014, 0x8c040d0a, + 0x0402000b, 0x8c040d0c, 0x04020006, 0x8c040d08, + 0x0400000e, 0x4a035011, 0x00000003, 0x0401f00a, + 0x4a035011, 0x00000000, 0x0401f007, 0x42000000, + 0x0010bc72, 0x0201f800, 0x0010ae10, 0x4a035011, + 0x00000002, 0x0401f8c4, 0x1c01f000, 0x59a80073, + 0x8c00053e, 0x04020018, 0x42002000, 0x00000000, + 0x0201f800, 0x00104a49, 0x4a038808, 0x00000002, + 0x59c40805, 0x8c040d08, 0x04020025, 0x8c040d0c, + 0x04020020, 0x8c040d0e, 0x0402001b, 0x82040500, + 0x000000f0, 0x04020021, 0x0201f800, 0x00104a30, + 0x4a038808, 0x00000080, 0x59c40002, 0x8400050c, + 0x48038802, 0x0401f9db, 0x4d3c0000, 0x42027800, + 0x00000001, 0x0201f800, 0x001091ff, 0x5c027800, + 0x4a038808, 0x00000080, 0x42002000, 0x00000002, + 0x0201f800, 0x00104a49, 0x4a035011, 0x00000009, 0x0401f00a, 0x4a035011, 0x00000001, 0x0401f006, 0x4a035011, 0x00000000, 0x0401f003, 0x4a035011, - 0x00000002, 0x0401f865, 0x1c01f000, 0x0201f800, - 0x00104b3e, 0x4a038808, 0x00000008, 0x59c40805, - 0x8c040d0c, 0x04020006, 0x8c040d0e, 0x04000007, - 0x4a035011, 0x00000001, 0x0401f003, 0x4a035011, - 0x00000000, 0x0401f855, 0x1c01f000, 0x42002000, - 0x00000004, 0x0201f800, 0x00104a0a, 0x0401f89e, - 0x59c40805, 0x8c040d0c, 0x0402000b, 0x8c040d0a, + 0x00000003, 0x0401f890, 0x1c01f000, 0x42002000, + 0x00000001, 0x0201f800, 0x00104a49, 0x4a038808, + 0x00000080, 0x59c40805, 0x8c040d0a, 0x0402001f, + 0x8c040d0c, 0x0402001a, 0x8c040d0e, 0x04020015, + 0x82040500, 0x000000f0, 0x0402001b, 0x59c40002, + 0x8400050c, 0x48038802, 0x0401f9ae, 0x4d3c0000, + 0x42027800, 0x00000001, 0x0201f800, 0x001091ff, + 0x5c027800, 0x42002000, 0x00000002, 0x0201f800, + 0x00104a49, 0x4a035011, 0x00000009, 0x0401f00a, + 0x4a035011, 0x00000001, 0x0401f006, 0x4a035011, + 0x00000000, 0x0401f003, 0x4a035011, 0x00000002, + 0x0401f865, 0x1c01f000, 0x0201f800, 0x00104b7d, + 0x4a038808, 0x00000008, 0x59c40805, 0x8c040d0c, 0x04020006, 0x8c040d0e, 0x04000007, 0x4a035011, - 0x00000001, 0x0401f003, 0x4a035011, 0x00000002, - 0x0401f842, 0x1c01f000, 0x0401f940, 0x02020800, - 0x0010032d, 0x59a80873, 0x8c040d3e, 0x04000004, - 0x4a035014, 0x00000001, 0x0401f037, 0x42002000, - 0x00000007, 0x0201f800, 0x00104a0a, 0x8d0e1d0c, - 0x04000014, 0x850e1d0c, 0x4a038805, 0x00000010, - 0x0201f800, 0x00101730, 0x59c40005, 0x8c000508, - 0x04000008, 0x4a038808, 0x00000008, 0x4a035014, - 0x00000001, 0x4202d800, 0x00000001, 0x0401f022, - 0x59c40006, 0x84000548, 0x48038806, 0x0401f01e, - 0x59a80011, 0x82000580, 0x00000001, 0x04020018, - 0x42000000, 0x0010bb72, 0x0201f800, 0x0010ad1d, - 0x4ce80000, 0x4201d000, 0x000003e8, 0x0201f800, - 0x0010592d, 0x59c40005, 0x82000500, 0x00000030, - 0x0400000a, 0x8c00050a, 0x04000005, 0x42002000, - 0x00000000, 0x0401fbfd, 0x0401f004, 0x42002000, - 0x00000001, 0x0401fbf9, 0x5c01d000, 0x4a035011, - 0x00000004, 0x1c01f000, 0x4c040000, 0x4c080000, - 0x42000800, 0x00000064, 0x42001000, 0x00104621, - 0x0201f800, 0x0010590f, 0x5c001000, 0x5c000800, - 0x1c01f000, 0x4803c856, 0x4c040000, 0x0201f800, - 0x0010610d, 0x4df00000, 0x0201f800, 0x00106305, - 0x5c03e000, 0x02000800, 0x001060fa, 0x42000000, - 0x0010bb71, 0x0201f800, 0x0010ad1d, 0x0401ffa7, - 0x5c000800, 0x1c01f000, 0x4803c856, 0x4c040000, - 0x4c080000, 0x0201f800, 0x0010610d, 0x4df00000, - 0x0201f800, 0x00106305, 0x5c03e000, 0x02000800, - 0x001060fa, 0x59c40006, 0x84000500, 0x48038806, - 0x0201f800, 0x001063db, 0x497b8880, 0x42000000, - 0x0010bb70, 0x0201f800, 0x0010ad1d, 0x0201f800, - 0x00101616, 0x4a035058, 0x00000004, 0x4202d800, - 0x00000004, 0x4a038805, 0x00000001, 0x42001000, - 0x00104621, 0x0201f800, 0x0010591a, 0x0201f800, - 0x00100454, 0x0401f8dd, 0x04000006, 0x42006000, - 0xfeffffff, 0x41786800, 0x0201f800, 0x00103a6a, - 0x0201f800, 0x0010ee13, 0x42000000, 0x00000080, - 0x0201f800, 0x00101364, 0x5c001000, 0x5c000800, - 0x1c01f000, 0x59c40008, 0x82000580, 0x00000010, - 0x04000007, 0x4a038808, 0x00000010, 0x4201d000, - 0x00001388, 0x0201f800, 0x0010592d, 0x1c01f000, - 0x4c040000, 0x59a80814, 0x82040580, 0x00000000, - 0x0400000b, 0x82040580, 0x00000001, 0x0400000b, - 0x82040580, 0x00000002, 0x04000013, 0x82040580, - 0x00000003, 0x04000013, 0x0401f05d, 0x4a035011, - 0x00000000, 0x0401f011, 0x59a80873, 0x8c040d3e, - 0x04000006, 0x4a035011, 0x00000003, 0x4a035014, - 0x00000004, 0x0401f052, 0x4a035011, 0x00000004, - 0x0401f006, 0x4a035011, 0x00000001, 0x0401f003, - 0x4a035011, 0x00000007, 0x497b8880, 0x4a038893, - 0x00000001, 0x41780000, 0x0201f800, 0x001013db, - 0x0201f800, 0x001063db, 0x836c0d80, 0x00000004, - 0x04000008, 0x59c40006, 0x82000500, 0xffffff0f, - 0x82000540, 0x04000001, 0x48038806, 0x0401f007, + 0x00000001, 0x0401f003, 0x4a035011, 0x00000000, + 0x0401f855, 0x1c01f000, 0x42002000, 0x00000004, + 0x0201f800, 0x00104a49, 0x0401f89e, 0x59c40805, + 0x8c040d0c, 0x0402000b, 0x8c040d0a, 0x04020006, + 0x8c040d0e, 0x04000007, 0x4a035011, 0x00000001, + 0x0401f003, 0x4a035011, 0x00000002, 0x0401f842, + 0x1c01f000, 0x0401f940, 0x02020800, 0x0010032d, + 0x59a80873, 0x8c040d3e, 0x04000004, 0x4a035014, + 0x00000001, 0x0401f037, 0x42002000, 0x00000007, + 0x0201f800, 0x00104a49, 0x8d0e1d0c, 0x04000014, + 0x850e1d0c, 0x4a038805, 0x00000010, 0x0201f800, + 0x00101731, 0x59c40005, 0x8c000508, 0x04000008, + 0x4a038808, 0x00000008, 0x4a035014, 0x00000001, + 0x4202d800, 0x00000001, 0x0401f022, 0x59c40006, + 0x84000548, 0x48038806, 0x0401f01e, 0x59a80011, + 0x82000580, 0x00000001, 0x04020018, 0x42000000, + 0x0010bc72, 0x0201f800, 0x0010ae10, 0x4ce80000, + 0x4201d000, 0x000003e8, 0x0201f800, 0x001059d2, + 0x59c40005, 0x82000500, 0x00000030, 0x0400000a, + 0x8c00050a, 0x04000005, 0x42002000, 0x00000000, + 0x0401fbfd, 0x0401f004, 0x42002000, 0x00000001, + 0x0401fbf9, 0x5c01d000, 0x4a035011, 0x00000004, + 0x1c01f000, 0x4c040000, 0x4c080000, 0x42000800, + 0x00000064, 0x42001000, 0x00104660, 0x0201f800, + 0x001059b4, 0x5c001000, 0x5c000800, 0x1c01f000, + 0x4803c856, 0x4c040000, 0x0201f800, 0x001061b2, + 0x4df00000, 0x0201f800, 0x001063aa, 0x5c03e000, + 0x02000800, 0x0010619f, 0x42000000, 0x0010bc71, + 0x0201f800, 0x0010ae10, 0x0401ffa7, 0x5c000800, + 0x1c01f000, 0x4803c856, 0x4c040000, 0x4c080000, + 0x0201f800, 0x001061b2, 0x4df00000, 0x0201f800, + 0x001063aa, 0x5c03e000, 0x02000800, 0x0010619f, + 0x59c40006, 0x84000500, 0x48038806, 0x0201f800, + 0x00106480, 0x497b8880, 0x42000000, 0x0010bc70, + 0x0201f800, 0x0010ae10, 0x0201f800, 0x00101617, + 0x4a035058, 0x00000004, 0x4202d800, 0x00000004, + 0x4a038805, 0x00000001, 0x42001000, 0x00104660, + 0x0201f800, 0x001059bf, 0x0201f800, 0x00100454, + 0x0401f8dd, 0x04000006, 0x42006000, 0xfeffffff, + 0x41786800, 0x0201f800, 0x00103a7d, 0x0201f800, + 0x0010ef18, 0x42000000, 0x00000080, 0x0201f800, + 0x00101365, 0x5c001000, 0x5c000800, 0x1c01f000, + 0x59c40008, 0x82000580, 0x00000010, 0x04000007, + 0x4a038808, 0x00000010, 0x4201d000, 0x00001388, + 0x0201f800, 0x001059d2, 0x1c01f000, 0x4c040000, + 0x59a80814, 0x82040580, 0x00000000, 0x0400000b, + 0x82040580, 0x00000001, 0x0400000b, 0x82040580, + 0x00000002, 0x04000013, 0x82040580, 0x00000003, + 0x04000013, 0x0401f05d, 0x4a035011, 0x00000000, + 0x0401f011, 0x59a80873, 0x8c040d3e, 0x04000006, + 0x4a035011, 0x00000003, 0x4a035014, 0x00000004, + 0x0401f052, 0x4a035011, 0x00000004, 0x0401f006, + 0x4a035011, 0x00000001, 0x0401f003, 0x4a035011, + 0x00000007, 0x497b8880, 0x4a038893, 0x00000001, + 0x41780000, 0x0201f800, 0x001013dc, 0x0201f800, + 0x00106480, 0x836c0d80, 0x00000004, 0x04000008, 0x59c40006, 0x82000500, 0xffffff0f, 0x82000540, - 0x04000000, 0x48038806, 0x0401f888, 0x04020005, - 0x59c40806, 0x82040d00, 0xfbffff0f, 0x48078806, - 0x59c40005, 0x8c000534, 0x04020033, 0x42006000, - 0xfc18ffff, 0x42006800, 0x01000000, 0x0201f800, - 0x00103a6a, 0x0201f800, 0x00101730, 0x59c408a4, - 0x82040d00, 0x0000000f, 0x82040d80, 0x0000000c, - 0x040208b7, 0x0401f871, 0x04000006, 0x42006000, - 0xfeffffff, 0x41786800, 0x0201f800, 0x00103a6a, - 0x836c0d80, 0x00000004, 0x0400000f, 0x0401ff4b, - 0x5994102e, 0x41780800, 0x42000000, 0x0000000a, - 0x0201f800, 0x00105f69, 0x40080000, 0x59a80831, - 0x80040c00, 0x42001000, 0x00104632, 0x0201f800, - 0x00105904, 0x4a035014, 0x00000004, 0x0401fe41, - 0x0401f856, 0x04020008, 0x59c408a4, 0x82040d00, - 0x0000000f, 0x82040580, 0x0000000c, 0x02020800, - 0x0010032d, 0x5c000800, 0x1c01f000, 0x4803c856, - 0x4c000000, 0x0201f800, 0x0010593d, 0x4a03500f, - 0x00ffffff, 0x497b5013, 0x59a8001f, 0x82000500, - 0xffff0000, 0x4803501f, 0x497b8880, 0x497b8893, - 0x41780000, 0x0201f800, 0x001013db, 0x59c40001, - 0x82000500, 0xfffffcff, 0x48038801, 0x42006000, - 0xfc18ffff, 0x41786800, 0x0201f800, 0x00103a6a, - 0x4a038808, 0x00000000, 0x5c000000, 0x800001c0, - 0x02020800, 0x001038f5, 0x4a038805, 0x040000f0, - 0x59c40006, 0x82000500, 0xffffffcf, 0x82000540, - 0x440000c1, 0x48038806, 0x1c01f000, 0x0401f807, - 0x42018800, 0x00000001, 0x04000003, 0x42018800, - 0x00000000, 0x1c01f000, 0x4c5c0000, 0x59a8b813, - 0x825cbd80, 0x0000aaaa, 0x5c00b800, 0x1c01f000, - 0x0401f807, 0x42018800, 0x00000001, 0x04000003, - 0x42018800, 0x00000000, 0x1c01f000, 0x4c5c0000, - 0x599cb818, 0x825cbd00, 0x00000030, 0x825cbd80, - 0x00000000, 0x5c00b800, 0x1c01f000, 0x0401f807, + 0x04000001, 0x48038806, 0x0401f007, 0x59c40006, + 0x82000500, 0xffffff0f, 0x82000540, 0x04000000, + 0x48038806, 0x0401f888, 0x04020005, 0x59c40806, + 0x82040d00, 0xfbffff0f, 0x48078806, 0x59c40005, + 0x8c000534, 0x04020033, 0x42006000, 0xfc18ffff, + 0x42006800, 0x01000000, 0x0201f800, 0x00103a7d, + 0x0201f800, 0x00101731, 0x59c408a4, 0x82040d00, + 0x0000000f, 0x82040d80, 0x0000000c, 0x040208b7, + 0x0401f871, 0x04000006, 0x42006000, 0xfeffffff, + 0x41786800, 0x0201f800, 0x00103a7d, 0x836c0d80, + 0x00000004, 0x0400000f, 0x0401ff4b, 0x5994102e, + 0x41780800, 0x42000000, 0x0000000a, 0x0201f800, + 0x0010600e, 0x40080000, 0x59a80831, 0x80040c00, + 0x42001000, 0x00104671, 0x0201f800, 0x001059a9, + 0x4a035014, 0x00000004, 0x0401fe41, 0x0401f856, + 0x04020008, 0x59c408a4, 0x82040d00, 0x0000000f, + 0x82040580, 0x0000000c, 0x02020800, 0x0010032d, + 0x5c000800, 0x1c01f000, 0x4803c856, 0x4c000000, + 0x0201f800, 0x001059e2, 0x4a03500f, 0x00ffffff, + 0x497b5013, 0x59a8001f, 0x82000500, 0xffff0000, + 0x4803501f, 0x497b8880, 0x497b8893, 0x41780000, + 0x0201f800, 0x001013dc, 0x59c40001, 0x82000500, + 0xfffffcff, 0x48038801, 0x42006000, 0xfc18ffff, + 0x41786800, 0x0201f800, 0x00103a7d, 0x4a038808, + 0x00000000, 0x5c000000, 0x800001c0, 0x02020800, + 0x00103908, 0x4a038805, 0x040000f0, 0x59c40006, + 0x82000500, 0xffffffcf, 0x82000540, 0x440000c1, + 0x48038806, 0x1c01f000, 0x0401f807, 0x42018800, + 0x00000001, 0x04000003, 0x42018800, 0x00000000, + 0x1c01f000, 0x4c5c0000, 0x59a8b813, 0x825cbd80, + 0x0000aaaa, 0x5c00b800, 0x1c01f000, 0x0401f807, 0x42018800, 0x00000001, 0x04000003, 0x42018800, 0x00000000, 0x1c01f000, 0x4c5c0000, 0x599cb818, - 0x825cbd00, 0x00000030, 0x825cbd80, 0x00000010, + 0x825cbd00, 0x00000030, 0x825cbd80, 0x00000000, 0x5c00b800, 0x1c01f000, 0x0401f807, 0x42018800, 0x00000001, 0x04000003, 0x42018800, 0x00000000, 0x1c01f000, 0x4c5c0000, 0x599cb818, 0x825cbd00, - 0x00000030, 0x825cbd80, 0x00000020, 0x5c00b800, - 0x1c01f000, 0x490fc857, 0x830c0d00, 0x00000013, - 0x04000022, 0x599c1017, 0x4d3c0000, 0x830c0500, - 0x00000011, 0x04000005, 0x417a7800, 0x8d0e1d20, - 0x04020009, 0x0401f011, 0x42027800, 0x00000008, - 0x8d0e1d20, 0x0400000d, 0x42003000, 0x00000003, - 0x0401f003, 0x42003000, 0x00000004, 0x42028000, - 0x0000000e, 0x0201f800, 0x00109f44, 0x599c1017, - 0x8c08150a, 0x04020007, 0x42028000, 0x00000004, - 0x0201f800, 0x0010ded4, 0x4803c856, 0x850e1d08, - 0x5c027800, 0x0401f009, 0x8d0e1d20, 0x04000007, - 0x42028000, 0x0000000f, 0x42003000, 0x00000001, - 0x0201f800, 0x00109f44, 0x1c01f000, 0x4803c856, - 0x4c580000, 0x42000000, 0x0010bc86, 0x0201f800, - 0x0010ad1d, 0x42000800, 0x0010c474, 0x59c40003, - 0x44000800, 0x59c40004, 0x48000801, 0x59c4000b, - 0x48000802, 0x59c4008e, 0x48000803, 0x59c4008f, - 0x48000804, 0x59c40090, 0x48000805, 0x59c40091, - 0x48000806, 0x59c40092, 0x48000807, 0x59c40093, - 0x48000808, 0x59c40099, 0x48000809, 0x59c4009e, - 0x4800080a, 0x59c400aa, 0x4800080b, 0x59c400af, - 0x4800080c, 0x59c400b2, 0x4800080d, 0x59c400b1, - 0x4800080e, 0x82040c00, 0x0000000f, 0x41c41800, - 0x4200b000, 0x00000030, 0x580c0050, 0x44000800, + 0x00000030, 0x825cbd80, 0x00000010, 0x5c00b800, + 0x1c01f000, 0x0401f807, 0x42018800, 0x00000001, + 0x04000003, 0x42018800, 0x00000000, 0x1c01f000, + 0x4c5c0000, 0x599cb818, 0x825cbd00, 0x00000030, + 0x825cbd80, 0x00000020, 0x5c00b800, 0x1c01f000, + 0x490fc857, 0x830c0d00, 0x00000013, 0x04000022, + 0x599c1017, 0x4d3c0000, 0x830c0500, 0x00000011, + 0x04000005, 0x417a7800, 0x8d0e1d20, 0x04020009, + 0x0401f011, 0x42027800, 0x00000008, 0x8d0e1d20, + 0x0400000d, 0x42003000, 0x00000003, 0x0401f003, + 0x42003000, 0x00000004, 0x42028000, 0x0000000e, + 0x0201f800, 0x0010a01b, 0x599c1017, 0x8c08150a, + 0x04020007, 0x42028000, 0x00000004, 0x0201f800, + 0x0010dfe1, 0x4803c856, 0x850e1d08, 0x5c027800, + 0x0401f009, 0x8d0e1d20, 0x04000007, 0x42028000, + 0x0000000f, 0x42003000, 0x00000001, 0x0201f800, + 0x0010a01b, 0x1c01f000, 0x4803c856, 0x4c580000, + 0x42000000, 0x0010bd86, 0x0201f800, 0x0010ae10, + 0x42000800, 0x0010c574, 0x59c40003, 0x44000800, + 0x59c40004, 0x48000801, 0x59c4000b, 0x48000802, + 0x59c4008e, 0x48000803, 0x59c4008f, 0x48000804, + 0x59c40090, 0x48000805, 0x59c40091, 0x48000806, + 0x59c40092, 0x48000807, 0x59c40093, 0x48000808, + 0x59c40099, 0x48000809, 0x59c4009e, 0x4800080a, + 0x59c400aa, 0x4800080b, 0x59c400af, 0x4800080c, + 0x59c400b2, 0x4800080d, 0x59c400b1, 0x4800080e, + 0x82040c00, 0x0000000f, 0x41c41800, 0x4200b000, + 0x00000030, 0x580c0050, 0x44000800, 0x80040800, + 0x800c1800, 0x8058b040, 0x040207fb, 0x41c41800, + 0x4200b000, 0x00000020, 0x580c0010, 0x44000800, 0x80040800, 0x800c1800, 0x8058b040, 0x040207fb, - 0x41c41800, 0x4200b000, 0x00000020, 0x580c0010, - 0x44000800, 0x80040800, 0x800c1800, 0x8058b040, - 0x040207fb, 0x497b8830, 0x4200b000, 0x00000040, - 0x59c40031, 0x44000800, 0x80040800, 0x8058b040, - 0x040207fc, 0x497b88ac, 0x4200b000, 0x00000010, - 0x59c400ad, 0x44000800, 0x80040800, 0x8058b040, - 0x040207fc, 0x59c41001, 0x4c080000, 0x8408150c, - 0x480b8801, 0x4a0370e4, 0x00000300, 0x4a0370e5, - 0xb0000000, 0x42000800, 0x00000800, 0x80040840, - 0x02000800, 0x0010032d, 0x59b800e5, 0x8c000538, - 0x040207fb, 0x4a0370e4, 0x00000200, 0x42006000, - 0xffffffff, 0x42006800, 0x80000000, 0x0201f800, - 0x00103a6a, 0x4a038807, 0x00000001, 0x497b8807, - 0x0401fb74, 0x4a038808, 0x00000010, 0x42006000, - 0xfcf8ffff, 0x42006800, 0x01000000, 0x0201f800, - 0x00103a6a, 0x5c001000, 0x480b8801, 0x42000800, - 0x0010c474, 0x50040000, 0x48038803, 0x58040001, - 0x48038804, 0x58040002, 0x4803880b, 0x58040003, - 0x4803888e, 0x58040004, 0x4803888f, 0x58040005, - 0x48038890, 0x58040006, 0x48038891, 0x58040007, - 0x48038892, 0x58040008, 0x48038893, 0x58040009, - 0x48038899, 0x5804000a, 0x4803889e, 0x5804000b, - 0x480388aa, 0x5804000c, 0x480388af, 0x5804000d, - 0x480388b2, 0x5804000e, 0x480388b1, 0x82040c00, - 0x0000000f, 0x41c41800, 0x4200b000, 0x00000030, - 0x50040000, 0x48001850, 0x80040800, 0x800c1800, - 0x8058b040, 0x040207fb, 0x41c41800, 0x4200b000, - 0x00000020, 0x50040000, 0x48001810, 0x80040800, - 0x800c1800, 0x8058b040, 0x040207fb, 0x497b8830, - 0x4200b000, 0x00000040, 0x50040000, 0x48038831, - 0x80040800, 0x8058b040, 0x040207fc, 0x497b88ac, - 0x4200b000, 0x00000010, 0x50040000, 0x480388ad, - 0x80040800, 0x8058b040, 0x040207fc, 0x497b8880, - 0x41780000, 0x0201f800, 0x001013db, 0x59c408a4, - 0x82040d00, 0x0000000f, 0x82040580, 0x0000000c, - 0x02020800, 0x0010032d, 0x4a038805, 0x04000000, - 0x5c00b000, 0x1c01f000, 0x4803c856, 0x42000800, - 0x00000001, 0x0201f800, 0x00101993, 0x4c580000, - 0x4ce80000, 0x42000000, 0x0010bb73, 0x0201f800, - 0x0010ad1d, 0x59c41008, 0x4c080000, 0x82081500, - 0xffffff7f, 0x480b8808, 0x59c40004, 0x82000500, - 0x00003e02, 0x04000005, 0x4201d000, 0x00000014, - 0x0201f800, 0x0010592d, 0x59c40006, 0x82000500, - 0xffffff0f, 0x48038806, 0x0401faf1, 0x59a8006a, - 0x80000540, 0x04000014, 0x4a038805, 0x00000001, - 0x4c580000, 0x4200b000, 0x000006a4, 0x4201d000, - 0x00000064, 0x4c580000, 0x0201f800, 0x0010592d, - 0x0201f800, 0x001016ee, 0x5c00b000, 0x04000005, - 0x8058b040, 0x040207f6, 0x5c00b000, 0x0401f011, - 0x5c00b000, 0x4a038805, 0x00000010, 0x4a038808, - 0x00000004, 0x4200b000, 0x00000065, 0x59c40005, - 0x8c000508, 0x0402001d, 0x4201d000, 0x000003e8, - 0x0201f800, 0x0010592d, 0x8058b040, 0x040207f8, - 0x42002000, 0x00000007, 0x0401f98c, 0x0401fabf, - 0x0201f800, 0x001063db, 0x4803c856, 0x59a80073, - 0x8c00053e, 0x04000004, 0x0201f800, 0x0010a616, - 0x0401f003, 0x4a038808, 0x00000008, 0x4a035014, - 0x00000001, 0x4202d800, 0x00000001, 0x82000540, - 0x00000001, 0x0401f048, 0x42002000, 0x00000001, - 0x0401f976, 0x0201f800, 0x001007ca, 0x42000000, - 0x0010bc62, 0x0201f800, 0x0010ad1d, 0x0201f800, - 0x00100c45, 0x497b8880, 0x59a8001f, 0x82000500, - 0x0000ffff, 0x4c000000, 0x0201f800, 0x001013db, - 0x5c000000, 0x48038880, 0x41780800, 0x0201f800, - 0x00101993, 0x4a038808, 0x00000000, 0x4a038805, - 0x00000008, 0x4200b000, 0x00000065, 0x4a038805, - 0x000000f0, 0x59a8006a, 0x80000540, 0x04000005, - 0x4201d000, 0x00000002, 0x0201f800, 0x0010592d, - 0x0201f800, 0x00101730, 0x42000800, 0x000000f0, - 0x59c40005, 0x80040d00, 0x04000008, 0x4201d000, - 0x000003e8, 0x0201f800, 0x0010592d, 0x8058b040, - 0x040207eb, 0x0401f7b7, 0x59a8006a, 0x80000540, - 0x04000004, 0x59c40005, 0x8c000506, 0x040007f4, - 0x42002000, 0x00000002, 0x0401f93c, 0x59c40006, - 0x82000540, 0x000000f0, 0x48038806, 0x59a80012, - 0x80000540, 0x04020002, 0x80000000, 0x48038893, - 0x80000580, 0x4df00000, 0x0201f800, 0x00101758, - 0x5c03e000, 0x5c001000, 0x480b8808, 0x5c01d000, - 0x5c00b000, 0x1c01f000, 0x4803c856, 0x42000800, - 0x00000001, 0x0201f800, 0x00101993, 0x4c580000, - 0x4ce80000, 0x59c41008, 0x4c080000, 0x82081500, - 0xffffff7f, 0x480b8808, 0x59c40004, 0x82000500, - 0x00003e02, 0x04000005, 0x4201d000, 0x00000014, - 0x0201f800, 0x0010592d, 0x0201f800, 0x001007ca, - 0x42000000, 0x0010bc63, 0x0201f800, 0x0010ad1d, - 0x0201f800, 0x00100c45, 0x42002000, 0x00000000, - 0x0401f90a, 0x4a038808, 0x00000002, 0x80000580, - 0x48038880, 0x48038893, 0x0201f800, 0x001013db, - 0x4200b000, 0x00000384, 0x4a038805, 0x000000f0, - 0x0201f800, 0x00101730, 0x42000800, 0x000000f0, - 0x59c40005, 0x80040d00, 0x04000024, 0x82000500, - 0x000000d0, 0x04020024, 0x4201d000, 0x00000067, - 0x0201f800, 0x0010592d, 0x8058b040, 0x040207ef, - 0x42002000, 0x00000007, 0x0401f8ec, 0x0201f800, - 0x001063db, 0x0401fa1d, 0x59a80073, 0x8c00053e, - 0x04000004, 0x0201f800, 0x0010a616, 0x0401f003, + 0x497b8830, 0x4200b000, 0x00000040, 0x59c40031, + 0x44000800, 0x80040800, 0x8058b040, 0x040207fc, + 0x497b88ac, 0x4200b000, 0x00000010, 0x59c400ad, + 0x44000800, 0x80040800, 0x8058b040, 0x040207fc, + 0x59c41001, 0x4c080000, 0x8408150c, 0x480b8801, + 0x4a0370e4, 0x00000300, 0x4a0370e5, 0xb0000000, + 0x42000800, 0x00000800, 0x80040840, 0x02000800, + 0x0010032d, 0x59b800e5, 0x8c000538, 0x040207fb, + 0x4a0370e4, 0x00000200, 0x42006000, 0xffffffff, + 0x42006800, 0x80000000, 0x0201f800, 0x00103a7d, + 0x4a038807, 0x00000001, 0x497b8807, 0x0401fb74, + 0x4a038808, 0x00000010, 0x42006000, 0xfcf8ffff, + 0x42006800, 0x01000000, 0x0201f800, 0x00103a7d, + 0x5c001000, 0x480b8801, 0x42000800, 0x0010c574, + 0x50040000, 0x48038803, 0x58040001, 0x48038804, + 0x58040002, 0x4803880b, 0x58040003, 0x4803888e, + 0x58040004, 0x4803888f, 0x58040005, 0x48038890, + 0x58040006, 0x48038891, 0x58040007, 0x48038892, + 0x58040008, 0x48038893, 0x58040009, 0x48038899, + 0x5804000a, 0x4803889e, 0x5804000b, 0x480388aa, + 0x5804000c, 0x480388af, 0x5804000d, 0x480388b2, + 0x5804000e, 0x480388b1, 0x82040c00, 0x0000000f, + 0x41c41800, 0x4200b000, 0x00000030, 0x50040000, + 0x48001850, 0x80040800, 0x800c1800, 0x8058b040, + 0x040207fb, 0x41c41800, 0x4200b000, 0x00000020, + 0x50040000, 0x48001810, 0x80040800, 0x800c1800, + 0x8058b040, 0x040207fb, 0x497b8830, 0x4200b000, + 0x00000040, 0x50040000, 0x48038831, 0x80040800, + 0x8058b040, 0x040207fc, 0x497b88ac, 0x4200b000, + 0x00000010, 0x50040000, 0x480388ad, 0x80040800, + 0x8058b040, 0x040207fc, 0x497b8880, 0x41780000, + 0x0201f800, 0x001013dc, 0x59c408a4, 0x82040d00, + 0x0000000f, 0x82040580, 0x0000000c, 0x02020800, + 0x0010032d, 0x4a038805, 0x04000000, 0x5c00b000, + 0x1c01f000, 0x4803c856, 0x42000800, 0x00000001, + 0x0201f800, 0x00101994, 0x4c580000, 0x4ce80000, + 0x42000000, 0x0010bc73, 0x0201f800, 0x0010ae10, + 0x59c41008, 0x4c080000, 0x82081500, 0xffffff7f, + 0x480b8808, 0x59c40004, 0x82000500, 0x00003e02, + 0x04000005, 0x4201d000, 0x00000014, 0x0201f800, + 0x001059d2, 0x59c40006, 0x82000500, 0xffffff0f, + 0x48038806, 0x0401faf1, 0x59a8006a, 0x80000540, + 0x04000014, 0x4a038805, 0x00000001, 0x4c580000, + 0x4200b000, 0x000006a4, 0x4201d000, 0x00000064, + 0x4c580000, 0x0201f800, 0x001059d2, 0x0201f800, + 0x001016ef, 0x5c00b000, 0x04000005, 0x8058b040, + 0x040207f6, 0x5c00b000, 0x0401f011, 0x5c00b000, + 0x4a038805, 0x00000010, 0x4a038808, 0x00000004, + 0x4200b000, 0x00000065, 0x59c40005, 0x8c000508, + 0x0402001d, 0x4201d000, 0x000003e8, 0x0201f800, + 0x001059d2, 0x8058b040, 0x040207f8, 0x42002000, + 0x00000007, 0x0401f98c, 0x0401fabf, 0x0201f800, + 0x00106480, 0x4803c856, 0x59a80073, 0x8c00053e, + 0x04000004, 0x0201f800, 0x0010a709, 0x0401f003, 0x4a038808, 0x00000008, 0x4a035014, 0x00000001, - 0x4202d800, 0x00000001, 0x59c40006, 0x8400050a, - 0x48038806, 0x4a038805, 0x00000020, 0x82000540, - 0x00000001, 0x0401f016, 0x42002000, 0x00000002, - 0x0401f8d2, 0x497b8880, 0x59a80012, 0x80000540, - 0x04020002, 0x80000000, 0x48038893, 0x59a8001f, - 0x82000500, 0x0000ffff, 0x4c000000, 0x0201f800, - 0x001013db, 0x5c000000, 0x48038880, 0x41780800, - 0x0201f800, 0x00101993, 0x80000580, 0x4df00000, - 0x0201f800, 0x00101758, 0x5c03e000, 0x5c001000, - 0x480b8808, 0x5c01d000, 0x5c00b000, 0x1c01f000, - 0x4803c856, 0x42000800, 0x00000001, 0x0201f800, - 0x00101993, 0x42002000, 0x00000001, 0x0401f8af, - 0x59c40004, 0x82000500, 0x00003e02, 0x0400000b, - 0x0201f800, 0x001063db, 0x0401f9dc, 0x4a038808, + 0x4202d800, 0x00000001, 0x82000540, 0x00000001, + 0x0401f048, 0x42002000, 0x00000001, 0x0401f976, + 0x0201f800, 0x001007c8, 0x42000000, 0x0010bd62, + 0x0201f800, 0x0010ae10, 0x0201f800, 0x00100c46, + 0x497b8880, 0x59a8001f, 0x82000500, 0x0000ffff, + 0x4c000000, 0x0201f800, 0x001013dc, 0x5c000000, + 0x48038880, 0x41780800, 0x0201f800, 0x00101994, + 0x4a038808, 0x00000000, 0x4a038805, 0x00000008, + 0x4200b000, 0x00000065, 0x4a038805, 0x000000f0, + 0x59a8006a, 0x80000540, 0x04000005, 0x4201d000, + 0x00000002, 0x0201f800, 0x001059d2, 0x0201f800, + 0x00101731, 0x42000800, 0x000000f0, 0x59c40005, + 0x80040d00, 0x04000008, 0x4201d000, 0x000003e8, + 0x0201f800, 0x001059d2, 0x8058b040, 0x040207eb, + 0x0401f7b7, 0x59a8006a, 0x80000540, 0x04000004, + 0x59c40005, 0x8c000506, 0x040007f4, 0x42002000, + 0x00000002, 0x0401f93c, 0x59c40006, 0x82000540, + 0x000000f0, 0x48038806, 0x59a80012, 0x80000540, + 0x04020002, 0x80000000, 0x48038893, 0x80000580, + 0x4df00000, 0x0201f800, 0x00101759, 0x5c03e000, + 0x5c001000, 0x480b8808, 0x5c01d000, 0x5c00b000, + 0x1c01f000, 0x4803c856, 0x42000800, 0x00000001, + 0x0201f800, 0x00101994, 0x4c580000, 0x4ce80000, + 0x59c41008, 0x4c080000, 0x82081500, 0xffffff7f, + 0x480b8808, 0x59c40004, 0x82000500, 0x00003e02, + 0x04000005, 0x4201d000, 0x00000014, 0x0201f800, + 0x001059d2, 0x0201f800, 0x001007c8, 0x42000000, + 0x0010bd63, 0x0201f800, 0x0010ae10, 0x0201f800, + 0x00100c46, 0x42002000, 0x00000000, 0x0401f90a, + 0x4a038808, 0x00000002, 0x80000580, 0x48038880, + 0x48038893, 0x0201f800, 0x001013dc, 0x4200b000, + 0x00000384, 0x4a038805, 0x000000f0, 0x0201f800, + 0x00101731, 0x42000800, 0x000000f0, 0x59c40005, + 0x80040d00, 0x04000024, 0x82000500, 0x000000d0, + 0x04020024, 0x4201d000, 0x00000067, 0x0201f800, + 0x001059d2, 0x8058b040, 0x040207ef, 0x42002000, + 0x00000007, 0x0401f8ec, 0x0201f800, 0x00106480, + 0x0401fa1d, 0x59a80073, 0x8c00053e, 0x04000004, + 0x0201f800, 0x0010a709, 0x0401f003, 0x4a038808, 0x00000008, 0x4a035014, 0x00000001, 0x4202d800, - 0x00000001, 0x0401f055, 0x0201f800, 0x001007ca, - 0x42000000, 0x0010bc64, 0x0201f800, 0x0010ad1d, - 0x0201f800, 0x00100c45, 0x59c40006, 0x84000508, - 0x48038806, 0x4a038805, 0x00000010, 0x850e1d4c, - 0x42000800, 0x00000064, 0x42001000, 0x00104621, - 0x0201f800, 0x0010590f, 0x41780800, 0x0201f800, - 0x00101993, 0x4a038808, 0x00000000, 0x497b8880, - 0x4a038805, 0x000000f0, 0x0201f800, 0x00101730, - 0x42000800, 0x000000f0, 0x59c40005, 0x80040d00, - 0x0400000e, 0x82000500, 0x000000e0, 0x0402000e, - 0x4201d000, 0x000003e8, 0x0201f800, 0x0010592d, - 0x0201f800, 0x00105749, 0x59940004, 0x80000540, - 0x040207ec, 0x0401f025, 0x42002000, 0x00000002, - 0x0401f86e, 0x4c080000, 0x42001000, 0x00104621, - 0x0201f800, 0x0010591a, 0x5c001000, 0x497b8880, - 0x59a80012, 0x80000540, 0x04020002, 0x80000000, - 0x48038893, 0x59a8001f, 0x82000500, 0x0000ffff, - 0x4c000000, 0x0201f800, 0x001013db, 0x5c000000, - 0x48038880, 0x850e1d0c, 0x59c40006, 0x84000548, - 0x48038806, 0x0201f800, 0x00101758, 0x41780800, - 0x0201f800, 0x00101993, 0x59c40008, 0x82000540, - 0x00000080, 0x48038808, 0x1c01f000, 0x4803c856, - 0x4d400000, 0x4d3c0000, 0x0201f800, 0x001063db, - 0x0201f800, 0x0010ae24, 0x04020024, 0x599c1017, - 0x8d0e1d00, 0x0402000b, 0x8c08151a, 0x0400001f, - 0x850e1d42, 0x42028000, 0x00000004, 0x42027800, - 0x00000008, 0x8d0e1d20, 0x04020007, 0x0401f013, - 0x42028000, 0x00000004, 0x417a7800, 0x8d0e1d20, - 0x0400000e, 0x4d400000, 0x42028000, 0x0000000e, - 0x42003000, 0x00000003, 0x42028800, 0x0000ffff, - 0x0201f800, 0x00109f41, 0x5c028000, 0x599c0817, - 0x8c040d0a, 0x04020005, 0x4943c857, 0x493fc857, - 0x0201f800, 0x0010ded4, 0x497b8880, 0x4202d800, - 0x00000001, 0x0401fc83, 0x5c027800, 0x5c028000, - 0x1c01f000, 0x42000800, 0x00000001, 0x0201f800, - 0x00101993, 0x0201f800, 0x001007ca, 0x42000000, - 0x0010bc65, 0x0201f800, 0x0010ad1d, 0x0201f800, - 0x00100c45, 0x42000000, 0x00000001, 0x0201f800, - 0x001013db, 0x4a038880, 0x00000001, 0x59c80835, - 0x59a80072, 0x80040d80, 0x04000002, 0x48039035, - 0x0201f000, 0x00101758, 0x42000800, 0x0010b7f6, - 0x48100802, 0x82101480, 0x00000008, 0x04001009, - 0x58040001, 0x4803c857, 0x4813c857, 0x58040003, - 0x80000000, 0x48000803, 0x42002000, 0x00000002, - 0x58040001, 0x82001480, 0x0000000b, 0x04001008, + 0x00000001, 0x59c40006, 0x8400050a, 0x48038806, + 0x4a038805, 0x00000020, 0x82000540, 0x00000001, + 0x0401f016, 0x42002000, 0x00000002, 0x0401f8d2, + 0x497b8880, 0x59a80012, 0x80000540, 0x04020002, + 0x80000000, 0x48038893, 0x59a8001f, 0x82000500, + 0x0000ffff, 0x4c000000, 0x0201f800, 0x001013dc, + 0x5c000000, 0x48038880, 0x41780800, 0x0201f800, + 0x00101994, 0x80000580, 0x4df00000, 0x0201f800, + 0x00101759, 0x5c03e000, 0x5c001000, 0x480b8808, + 0x5c01d000, 0x5c00b000, 0x1c01f000, 0x4803c856, + 0x42000800, 0x00000001, 0x0201f800, 0x00101994, + 0x42002000, 0x00000001, 0x0401f8af, 0x59c40004, + 0x82000500, 0x00003e02, 0x0400000b, 0x0201f800, + 0x00106480, 0x0401f9dc, 0x4a038808, 0x00000008, + 0x4a035014, 0x00000001, 0x4202d800, 0x00000001, + 0x0401f055, 0x0201f800, 0x001007c8, 0x42000000, + 0x0010bd64, 0x0201f800, 0x0010ae10, 0x0201f800, + 0x00100c46, 0x59c40006, 0x84000508, 0x48038806, + 0x4a038805, 0x00000010, 0x850e1d4c, 0x42000800, + 0x00000064, 0x42001000, 0x00104660, 0x0201f800, + 0x001059b4, 0x41780800, 0x0201f800, 0x00101994, + 0x4a038808, 0x00000000, 0x497b8880, 0x4a038805, + 0x000000f0, 0x0201f800, 0x00101731, 0x42000800, + 0x000000f0, 0x59c40005, 0x80040d00, 0x0400000e, + 0x82000500, 0x000000e0, 0x0402000e, 0x4201d000, + 0x000003e8, 0x0201f800, 0x001059d2, 0x0201f800, + 0x001057ee, 0x59940004, 0x80000540, 0x040207ec, + 0x0401f025, 0x42002000, 0x00000002, 0x0401f86e, + 0x4c080000, 0x42001000, 0x00104660, 0x0201f800, + 0x001059bf, 0x5c001000, 0x497b8880, 0x59a80012, + 0x80000540, 0x04020002, 0x80000000, 0x48038893, + 0x59a8001f, 0x82000500, 0x0000ffff, 0x4c000000, + 0x0201f800, 0x001013dc, 0x5c000000, 0x48038880, + 0x850e1d0c, 0x59c40006, 0x84000548, 0x48038806, + 0x0201f800, 0x00101759, 0x41780800, 0x0201f800, + 0x00101994, 0x59c40008, 0x82000540, 0x00000080, + 0x48038808, 0x1c01f000, 0x4803c856, 0x4d400000, + 0x4d3c0000, 0x0201f800, 0x00106480, 0x0201f800, + 0x0010af17, 0x04020024, 0x599c1017, 0x8d0e1d00, + 0x0402000b, 0x8c08151a, 0x0400001f, 0x850e1d42, + 0x42028000, 0x00000004, 0x42027800, 0x00000008, + 0x8d0e1d20, 0x04020007, 0x0401f013, 0x42028000, + 0x00000004, 0x417a7800, 0x8d0e1d20, 0x0400000e, + 0x4d400000, 0x42028000, 0x0000000e, 0x42003000, + 0x00000003, 0x42028800, 0x0000ffff, 0x0201f800, + 0x0010a018, 0x5c028000, 0x599c0817, 0x8c040d0a, + 0x04020005, 0x4943c857, 0x493fc857, 0x0201f800, + 0x0010dfe1, 0x497b8880, 0x4202d800, 0x00000001, + 0x0401fc83, 0x5c027800, 0x5c028000, 0x1c01f000, + 0x42000800, 0x00000001, 0x0201f800, 0x00101994, + 0x0201f800, 0x001007c8, 0x42000000, 0x0010bd65, + 0x0201f800, 0x0010ae10, 0x0201f800, 0x00100c46, + 0x42000000, 0x00000001, 0x0201f800, 0x001013dc, + 0x4a038880, 0x00000001, 0x59c80835, 0x59a80072, + 0x80040d80, 0x04000002, 0x48039035, 0x0201f000, + 0x00101759, 0x42000800, 0x0010b8f6, 0x48100802, + 0x82101480, 0x00000008, 0x04001009, 0x58040001, 0x4803c857, 0x4813c857, 0x58040003, 0x80000000, - 0x48000803, 0x42000000, 0x00000000, 0x48000800, - 0x59c428a4, 0x82142d00, 0x0000000f, 0x82142d80, - 0x0000000c, 0x0c000002, 0x0401f136, 0x00104a36, - 0x00104a56, 0x00104a77, 0x00104a98, 0x00104ab9, - 0x00104ad4, 0x00104ae5, 0x00104afc, 0x00104b13, - 0x00104b2a, 0x00104b2d, 0x40100000, 0x0c01f001, - 0x00104a40, 0x00104a43, 0x00104a46, 0x00104a47, - 0x00104a4a, 0x00104a4d, 0x00104a51, 0x00104a54, - 0x4a000801, 0x00000002, 0x1c01f000, 0x4a000801, - 0x00000003, 0x0401f0e9, 0x1c01f000, 0x4a000801, + 0x48000803, 0x42002000, 0x00000002, 0x58040001, + 0x82001480, 0x0000000b, 0x04001008, 0x4803c857, + 0x4813c857, 0x58040003, 0x80000000, 0x48000803, + 0x42000000, 0x00000000, 0x48000800, 0x59c428a4, + 0x82142d00, 0x0000000f, 0x82142d80, 0x0000000c, + 0x0c000002, 0x0401f136, 0x00104a75, 0x00104a95, + 0x00104ab6, 0x00104ad7, 0x00104af8, 0x00104b13, + 0x00104b24, 0x00104b3b, 0x00104b52, 0x00104b69, + 0x00104b6c, 0x40100000, 0x0c01f001, 0x00104a7f, + 0x00104a82, 0x00104a85, 0x00104a86, 0x00104a89, + 0x00104a8c, 0x00104a90, 0x00104a93, 0x4a000801, + 0x00000002, 0x1c01f000, 0x4a000801, 0x00000003, + 0x0401f0e9, 0x1c01f000, 0x4a000801, 0x00000007, + 0x1c01f000, 0x4a000801, 0x00000004, 0x0401f0e6, + 0x4a000801, 0x00000005, 0x0401f8eb, 0x0401f0e6, + 0x4a000801, 0x00000005, 0x0401f0e7, 0x4813c857, + 0x1c01f000, 0x40100000, 0x0c01f001, 0x00104a9f, + 0x00104aa2, 0x00104aa5, 0x00104aa6, 0x00104aa9, + 0x00104aac, 0x00104ab0, 0x00104ab3, 0x4a000801, + 0x00000002, 0x1c01f000, 0x4a000801, 0x00000003, + 0x1c01f000, 0x1c01f000, 0x4a000801, 0x00000007, + 0x1c01f000, 0x4a000801, 0x00000004, 0x0401f0c6, + 0x4a000801, 0x00000005, 0x0401f8cb, 0x0401f0c6, + 0x4a000801, 0x00000005, 0x1c01f000, 0x4a000801, + 0x00000005, 0x0401f0bc, 0x40100000, 0x0c01f001, + 0x00104ac0, 0x00104ac1, 0x00104ac4, 0x00104ac7, + 0x00104aca, 0x00104acd, 0x00104ad1, 0x00104ad4, + 0x1c01f000, 0x4a000801, 0x00000003, 0x1c01f000, + 0x4a000801, 0x00000000, 0x1c01f000, 0x4a000801, 0x00000007, 0x1c01f000, 0x4a000801, 0x00000004, - 0x0401f0e6, 0x4a000801, 0x00000005, 0x0401f8eb, - 0x0401f0e6, 0x4a000801, 0x00000005, 0x0401f0e7, - 0x4813c857, 0x1c01f000, 0x40100000, 0x0c01f001, - 0x00104a60, 0x00104a63, 0x00104a66, 0x00104a67, - 0x00104a6a, 0x00104a6d, 0x00104a71, 0x00104a74, - 0x4a000801, 0x00000002, 0x1c01f000, 0x4a000801, - 0x00000003, 0x1c01f000, 0x1c01f000, 0x4a000801, - 0x00000007, 0x1c01f000, 0x4a000801, 0x00000004, - 0x0401f0c6, 0x4a000801, 0x00000005, 0x0401f8cb, - 0x0401f0c6, 0x4a000801, 0x00000005, 0x1c01f000, - 0x4a000801, 0x00000005, 0x0401f0bc, 0x40100000, - 0x0c01f001, 0x00104a81, 0x00104a82, 0x00104a85, - 0x00104a88, 0x00104a8b, 0x00104a8e, 0x00104a92, - 0x00104a95, 0x1c01f000, 0x4a000801, 0x00000003, + 0x0401f0a5, 0x4a000801, 0x00000005, 0x0401f8aa, + 0x0401f0a5, 0x4a000801, 0x00000005, 0x1c01f000, + 0x4a000801, 0x00000005, 0x0401f09b, 0x40100000, + 0x0c01f001, 0x00104ae1, 0x00104ae4, 0x00104ae5, + 0x00104ae8, 0x00104aeb, 0x00104aee, 0x00104af2, + 0x00104af5, 0x4a000801, 0x00000002, 0x1c01f000, 0x1c01f000, 0x4a000801, 0x00000000, 0x1c01f000, 0x4a000801, 0x00000007, 0x1c01f000, 0x4a000801, - 0x00000004, 0x0401f0a5, 0x4a000801, 0x00000005, - 0x0401f8aa, 0x0401f0a5, 0x4a000801, 0x00000005, - 0x1c01f000, 0x4a000801, 0x00000005, 0x0401f09b, - 0x40100000, 0x0c01f001, 0x00104aa2, 0x00104aa5, - 0x00104aa6, 0x00104aa9, 0x00104aac, 0x00104aaf, - 0x00104ab3, 0x00104ab6, 0x4a000801, 0x00000002, - 0x1c01f000, 0x1c01f000, 0x4a000801, 0x00000000, - 0x1c01f000, 0x4a000801, 0x00000007, 0x1c01f000, - 0x4a000801, 0x00000004, 0x0401f084, 0x4a000801, - 0x00000005, 0x0401f889, 0x0401f084, 0x4a000801, - 0x00000005, 0x1c01f000, 0x4a000801, 0x00000005, - 0x0401f07a, 0x40100000, 0x0c01f001, 0x00104ac3, - 0x00104ac6, 0x00104ac6, 0x00104ac7, 0x00104ac6, - 0x00104aca, 0x00104ace, 0x00104ad1, 0x4a000801, - 0x00000002, 0x1c01f000, 0x1c01f000, 0x4a000801, - 0x00000007, 0x1c01f000, 0x4a000801, 0x00000005, - 0x0401f86e, 0x0401f069, 0x4a000801, 0x00000005, - 0x1c01f000, 0x4a000801, 0x00000005, 0x0401f05f, - 0x40100000, 0x0c01f001, 0x00104ae4, 0x00104ae4, - 0x00104ae4, 0x00104ade, 0x00104ae1, 0x00104ae4, - 0x00104ae4, 0x00104ae4, 0x4a000801, 0x00000007, - 0x1c01f000, 0x4a000801, 0x00000004, 0x1c01f000, - 0x1c01f000, 0x40100000, 0x0c01f001, 0x00104aef, - 0x00104af2, 0x00104af2, 0x00104af3, 0x00104af6, - 0x00104af9, 0x00104af9, 0x00104af9, 0x4a000801, - 0x00000002, 0x1c01f000, 0x1c01f000, 0x4a000801, - 0x00000007, 0x1c01f000, 0x4a000801, 0x00000004, - 0x0401f03a, 0x4a000801, 0x00000008, 0x1c01f000, - 0x40100000, 0x0c01f001, 0x00104b06, 0x00104b09, - 0x00104b0c, 0x00104b0c, 0x00104b0d, 0x00104b10, - 0x00104b10, 0x00104b10, 0x4a000801, 0x00000002, - 0x1c01f000, 0x4a000801, 0x00000003, 0x1c01f000, - 0x1c01f000, 0x4a000801, 0x00000004, 0x0401f023, + 0x00000004, 0x0401f084, 0x4a000801, 0x00000005, + 0x0401f889, 0x0401f084, 0x4a000801, 0x00000005, + 0x1c01f000, 0x4a000801, 0x00000005, 0x0401f07a, + 0x40100000, 0x0c01f001, 0x00104b02, 0x00104b05, + 0x00104b05, 0x00104b06, 0x00104b05, 0x00104b09, + 0x00104b0d, 0x00104b10, 0x4a000801, 0x00000002, + 0x1c01f000, 0x1c01f000, 0x4a000801, 0x00000007, + 0x1c01f000, 0x4a000801, 0x00000005, 0x0401f86e, + 0x0401f069, 0x4a000801, 0x00000005, 0x1c01f000, + 0x4a000801, 0x00000005, 0x0401f05f, 0x40100000, + 0x0c01f001, 0x00104b23, 0x00104b23, 0x00104b23, + 0x00104b1d, 0x00104b20, 0x00104b23, 0x00104b23, + 0x00104b23, 0x4a000801, 0x00000007, 0x1c01f000, + 0x4a000801, 0x00000004, 0x1c01f000, 0x1c01f000, + 0x40100000, 0x0c01f001, 0x00104b2e, 0x00104b31, + 0x00104b31, 0x00104b32, 0x00104b35, 0x00104b38, + 0x00104b38, 0x00104b38, 0x4a000801, 0x00000002, + 0x1c01f000, 0x1c01f000, 0x4a000801, 0x00000007, + 0x1c01f000, 0x4a000801, 0x00000004, 0x0401f03a, 0x4a000801, 0x00000008, 0x1c01f000, 0x40100000, - 0x0c01f001, 0x00104b1d, 0x00104b1d, 0x00104b20, - 0x00104b21, 0x00104b24, 0x00104b20, 0x00104b27, - 0x00104b20, 0x4a000801, 0x00000005, 0x0401f00f, - 0x1c01f000, 0x4a000801, 0x00000007, 0x1c01f000, - 0x4a000801, 0x00000004, 0x1c01f000, 0x4a000801, - 0x00000008, 0x1c01f000, 0x4a000801, 0x00000009, - 0x1c01f000, 0x1c01f000, 0x42000000, 0x0010bb5d, - 0x0201f000, 0x0010ad1d, 0x42000000, 0x0010bb5a, - 0x0201f000, 0x0010ad1d, 0x42000000, 0x0010bb5c, - 0x0201f000, 0x0010ad1d, 0x42000000, 0x0010bb5b, - 0x0201f000, 0x0010ad1d, 0x42000800, 0x0010b7f6, - 0x58040001, 0x48000800, 0x4a000801, 0x00000005, - 0x4a000802, 0x00000008, 0x1c01f000, 0x42000800, - 0x0010b7f6, 0x58040001, 0x48000800, 0x4a000801, - 0x00000001, 0x4a000802, 0x0000000a, 0x1c01f000, - 0x42000800, 0x0010b7f6, 0x58040001, 0x48000800, - 0x4a000801, 0x00000006, 0x4a000802, 0x00000009, - 0x1c01f000, 0x42000800, 0x0010b7f6, 0x4a000801, - 0x0000000a, 0x4a000800, 0x0000000a, 0x1c01f000, - 0x496fc857, 0x4813c857, 0x40100000, 0x0c01f001, - 0x00104b7a, 0x00104b7a, 0x00104b7a, 0x00104b7a, - 0x00104b6c, 0x00104b74, 0x00104b78, 0x00104b7a, - 0x59a8021b, 0x8c000506, 0x04000003, 0x8c000502, - 0x0400000a, 0x0401f80a, 0x040207c0, 0x0401f007, - 0x0401f807, 0x04000005, 0x0401ffc0, 0x0401f7c3, - 0x0401f803, 0x040207c1, 0x1c01f000, 0x496fc857, - 0x416c0000, 0x82000c80, 0x00000008, 0x02021800, - 0x0010032d, 0x0c01f001, 0x00104b8a, 0x00104b8c, - 0x00104b8c, 0x00104b8c, 0x00104b8a, 0x00104b8a, - 0x00104b8a, 0x00104b8c, 0x80000580, 0x1c01f000, - 0x82000540, 0x00000001, 0x1c01f000, 0x4202e000, - 0x00000000, 0x497b3004, 0x4a03b004, 0x60000001, - 0x59d80005, 0x4a03b004, 0x90000001, 0x4a03a804, - 0x60000001, 0x59d40005, 0x4a03a804, 0x90000001, - 0x0201f000, 0x001050c1, 0x4a03c825, 0x00000004, - 0x4a03c827, 0x00000004, 0x599c0409, 0x80000d40, - 0x04000020, 0x599c0407, 0x80000540, 0x04000007, - 0x800000cc, 0x599c100b, 0x80080400, 0x4803b000, - 0x497bb002, 0x59d80001, 0x599c000b, 0x4803b000, - 0x599c000c, 0x4803b001, 0x599c0407, 0x80000540, - 0x04020002, 0x497bb002, 0x599c0c09, 0x82040540, - 0x00400000, 0x4803b003, 0x4a03b009, 0x00000005, - 0x4a03b004, 0x10000001, 0x59e00803, 0x82040d00, - 0xfffffeff, 0x82040d40, 0x00008000, 0x4807c003, - 0x599c040a, 0x80000540, 0x04000020, 0x599c0408, - 0x80000540, 0x04000007, 0x800000cc, 0x599c100f, - 0x80080400, 0x4803a800, 0x497ba802, 0x59d40001, - 0x599c000f, 0x4803a800, 0x599c0010, 0x4803a801, - 0x599c0408, 0x80000540, 0x04020002, 0x497ba802, - 0x599c0c0a, 0x82040540, 0x00400000, 0x4803a803, - 0x4a03a809, 0x00000005, 0x4a03a804, 0x10000001, - 0x59e00803, 0x82040d00, 0xfffffbff, 0x82040d40, - 0x00008000, 0x4807c003, 0x800409c0, 0x04000007, - 0x4202e000, 0x00000001, 0x0200b800, 0x00020713, - 0x0200f000, 0x00020728, 0x1c01f000, 0x0201f800, - 0x0010032d, 0x1c01f000, 0x0401f852, 0x5c03e000, - 0x0201f000, 0x0002067a, 0x0201f800, 0x000206b1, - 0x0401f7fb, 0x00104c44, 0x00104c44, 0x00104c44, - 0x00104c44, 0x00104c54, 0x00104c44, 0x00104c44, - 0x00104c44, 0x00104c44, 0x00104c44, 0x000206a8, - 0x00104c44, 0x00104c44, 0x00104c54, 0x00104c54, - 0x00104c44, 0x00104c44, 0x00104c44, 0x00104c44, - 0x00104c44, 0x00104c44, 0x00104c44, 0x00104c44, - 0x00104c44, 0x00104c44, 0x00104c44, 0x00104c44, - 0x00104c44, 0x00104c44, 0x00104c44, 0x00104c44, - 0x00104c44, 0x00104c44, 0x00104c44, 0x00104c44, - 0x00104c44, 0x00104c44, 0x00104c44, 0x00104c44, - 0x00104c44, 0x00104c44, 0x00104c44, 0x00104c44, - 0x00104c44, 0x00104c44, 0x00104c44, 0x00104c44, - 0x00104c44, 0x00104c44, 0x00104c44, 0x00104c44, - 0x00104c44, 0x00104c44, 0x00104c44, 0x00104c44, - 0x00104c44, 0x00104c44, 0x00104c44, 0x00104c44, - 0x00104c44, 0x00104c44, 0x00104c44, 0x00104c44, - 0x00104c44, 0x00104c44, 0x00104c44, 0x00104c44, - 0x00104c44, 0x00104c44, 0x00104c44, 0x00104c44, - 0x00104c44, 0x00104c44, 0x00104c44, 0x00104c44, - 0x492fc857, 0x42000000, 0x0010bc18, 0x0201f800, - 0x0010ad1d, 0x42000000, 0x00000400, 0x0401f019, - 0x492fc857, 0x42000000, 0x0010bc17, 0x0201f800, - 0x0010ad1d, 0x42000000, 0x00001000, 0x0401f011, - 0x492fc857, 0x42000000, 0x0010bc16, 0x0201f800, - 0x0010ad1d, 0x42000000, 0x00002000, 0x0401f009, - 0x492fc857, 0x42000000, 0x0010bc19, 0x0201f800, - 0x0010ad1d, 0x42000000, 0x00000800, 0x0401f001, - 0x4803c857, 0x592c0c05, 0x82040d00, 0xffff80ff, - 0x80040540, 0x59980803, 0x800409c0, 0x04000002, - 0x8400051e, 0x48025c05, 0x0201f800, 0x000203ab, - 0x83700580, 0x00000003, 0x4202e000, 0x00000001, - 0x04000002, 0x1c01f000, 0x599a5801, 0x812e59c0, - 0x040207dc, 0x0201f800, 0x0010032d, 0x492fc857, - 0x80140110, 0x80000040, 0x04000033, 0x040017cd, - 0x4a033006, 0x00104cb1, 0x0201f000, 0x00020684, - 0x492fc857, 0x80140110, 0x040007c6, 0x80000040, - 0x04000044, 0x4a033006, 0x00104ccc, 0x0201f000, - 0x00020684, 0x492fc857, 0x0201f800, 0x0010ae24, - 0x02020000, 0x00020692, 0x492fc856, 0x83440400, - 0x0010af80, 0x50000000, 0x80026d40, 0x04000006, - 0x4937c857, 0x59340200, 0x8c00050e, 0x02020000, - 0x00020692, 0x42028000, 0x00000028, 0x41780800, - 0x417a6000, 0x0201f800, 0x00104504, 0x0201f800, - 0x00108a42, 0x0201f000, 0x000203ab, 0x82000500, - 0x0f000000, 0x8000012a, 0x592c0c0b, 0x82040d00, - 0x0000ff87, 0x80040540, 0x48025c0b, 0x0201f000, - 0x000206a3, 0x592c0a0b, 0x8c040d02, 0x04020015, - 0x492fc857, 0x8d0e1d0e, 0x0402000f, 0x592c0208, - 0x80000540, 0x04000005, 0x0201f800, 0x00103b1b, - 0x04020004, 0x1c01f000, 0x42000000, 0x00000000, - 0x592c0a07, 0x48065c07, 0x48025a07, 0x0201f000, - 0x000203ab, 0x42000000, 0x00000028, 0x0401f7f9, - 0x42000800, 0x00000009, 0x0201f000, 0x00105f24, - 0x492fc857, 0x592c0409, 0x80000540, 0x0402078d, - 0x8d0e1d0e, 0x04020009, 0x592c0208, 0x80000540, - 0x04000788, 0x497a5a07, 0x0201f800, 0x00103b79, - 0x04020004, 0x1c01f000, 0x42000000, 0x00000028, - 0x48025a07, 0x0201f000, 0x000203ab, 0x592e8a07, - 0x592c0407, 0x4947c857, 0x4803c857, 0x82000500, - 0x000000ff, 0x4200b800, 0x00000001, 0x82000d80, - 0x00000001, 0x04000015, 0x417a8800, 0x4200b800, - 0x000007f0, 0x82000d80, 0x00000002, 0x0400000f, - 0x80000540, 0x02020000, 0x000203ab, 0x592e8a07, - 0x0201f800, 0x00020319, 0x02020000, 0x000203ab, - 0x592e9009, 0x592e980a, 0x0201f800, 0x00103f59, - 0x0201f000, 0x000203ab, 0x850e1d00, 0x0201f800, - 0x00020319, 0x02000800, 0x0010407b, 0x81468800, - 0x805cb840, 0x040207fa, 0x0201f000, 0x000203ab, - 0x592c0a09, 0x4807c857, 0x82040580, 0x0000000e, - 0x04000065, 0x82040580, 0x0000002a, 0x04000020, - 0x82040580, 0x0000000f, 0x040003c5, 0x82040580, - 0x0000002e, 0x040003c2, 0x82040580, 0x00000046, - 0x0400005d, 0x82040580, 0x00000045, 0x04000016, - 0x82040580, 0x00000049, 0x040003b9, 0x82040580, - 0x00000029, 0x040203bc, 0x592e8a07, 0x0201f800, - 0x00020319, 0x040203b2, 0x59340200, 0x84000518, + 0x0c01f001, 0x00104b45, 0x00104b48, 0x00104b4b, + 0x00104b4b, 0x00104b4c, 0x00104b4f, 0x00104b4f, + 0x00104b4f, 0x4a000801, 0x00000002, 0x1c01f000, + 0x4a000801, 0x00000003, 0x1c01f000, 0x1c01f000, + 0x4a000801, 0x00000004, 0x0401f023, 0x4a000801, + 0x00000008, 0x1c01f000, 0x40100000, 0x0c01f001, + 0x00104b5c, 0x00104b5c, 0x00104b5f, 0x00104b60, + 0x00104b63, 0x00104b5f, 0x00104b66, 0x00104b5f, + 0x4a000801, 0x00000005, 0x0401f00f, 0x1c01f000, + 0x4a000801, 0x00000007, 0x1c01f000, 0x4a000801, + 0x00000004, 0x1c01f000, 0x4a000801, 0x00000008, + 0x1c01f000, 0x4a000801, 0x00000009, 0x1c01f000, + 0x1c01f000, 0x42000000, 0x0010bc5d, 0x0201f000, + 0x0010ae10, 0x42000000, 0x0010bc5a, 0x0201f000, + 0x0010ae10, 0x42000000, 0x0010bc5c, 0x0201f000, + 0x0010ae10, 0x42000000, 0x0010bc5b, 0x0201f000, + 0x0010ae10, 0x42000800, 0x0010b8f6, 0x58040001, + 0x48000800, 0x4a000801, 0x00000005, 0x4a000802, + 0x00000008, 0x1c01f000, 0x42000800, 0x0010b8f6, + 0x58040001, 0x48000800, 0x4a000801, 0x00000001, + 0x4a000802, 0x0000000a, 0x1c01f000, 0x42000800, + 0x0010b8f6, 0x58040001, 0x48000800, 0x4a000801, + 0x00000006, 0x4a000802, 0x00000009, 0x1c01f000, + 0x42000800, 0x0010b8f6, 0x4a000801, 0x0000000a, + 0x4a000800, 0x0000000a, 0x1c01f000, 0x496fc857, + 0x4813c857, 0x40100000, 0x0c01f001, 0x00104bb9, + 0x00104bb9, 0x00104bb9, 0x00104bb9, 0x00104bab, + 0x00104bb3, 0x00104bb7, 0x00104bb9, 0x59a8021b, + 0x8c000506, 0x04000003, 0x8c000502, 0x0400000a, + 0x0401f80a, 0x040207c0, 0x0401f007, 0x0401f807, + 0x04000005, 0x0401ffc0, 0x0401f7c3, 0x0401f803, + 0x040207c1, 0x1c01f000, 0x496fc857, 0x416c0000, + 0x82000c80, 0x00000008, 0x02021800, 0x0010032d, + 0x0c01f001, 0x00104bc9, 0x00104bcb, 0x00104bcb, + 0x00104bcb, 0x00104bc9, 0x00104bc9, 0x00104bc9, + 0x00104bcb, 0x80000580, 0x1c01f000, 0x82000540, + 0x00000001, 0x1c01f000, 0x4202e000, 0x00000000, + 0x497b3004, 0x4a03b004, 0x60000001, 0x59d80005, + 0x4a03b004, 0x90000001, 0x4a03a804, 0x60000001, + 0x59d40005, 0x4a03a804, 0x90000001, 0x0201f000, + 0x00105117, 0x4a03c825, 0x00000004, 0x4a03c827, + 0x00000004, 0x599c0409, 0x80000d40, 0x04000020, + 0x599c0407, 0x80000540, 0x04000007, 0x800000cc, + 0x599c100b, 0x80080400, 0x4803b000, 0x497bb002, + 0x59d80001, 0x599c000b, 0x4803b000, 0x599c000c, + 0x4803b001, 0x599c0407, 0x80000540, 0x04020002, + 0x497bb002, 0x599c0c09, 0x82040540, 0x00400000, + 0x4803b003, 0x4a03b009, 0x00000005, 0x4a03b004, + 0x10000001, 0x59e00803, 0x82040d00, 0xfffffeff, + 0x82040d40, 0x00008000, 0x4807c003, 0x599c040a, + 0x80000540, 0x04000020, 0x599c0408, 0x80000540, + 0x04000007, 0x800000cc, 0x599c100f, 0x80080400, + 0x4803a800, 0x497ba802, 0x59d40001, 0x599c000f, + 0x4803a800, 0x599c0010, 0x4803a801, 0x599c0408, + 0x80000540, 0x04020002, 0x497ba802, 0x599c0c0a, + 0x82040540, 0x00400000, 0x4803a803, 0x4a03a809, + 0x00000005, 0x4a03a804, 0x10000001, 0x59e00803, + 0x82040d00, 0xfffffbff, 0x82040d40, 0x00008000, + 0x4807c003, 0x800409c0, 0x04000007, 0x4202e000, + 0x00000001, 0x0200b800, 0x00020713, 0x0200f000, + 0x00020728, 0x1c01f000, 0x0201f800, 0x0010032d, + 0x1c01f000, 0x0401f852, 0x5c03e000, 0x0201f000, + 0x0002067a, 0x0201f800, 0x000206b1, 0x0401f7fb, + 0x00104c83, 0x00104c83, 0x00104c83, 0x00104c83, + 0x00104c93, 0x00104c83, 0x00104c83, 0x00104c83, + 0x00104c83, 0x00104c83, 0x000206a8, 0x00104c83, + 0x00104c83, 0x00104c93, 0x00104c93, 0x00104c83, + 0x00104c83, 0x00104c83, 0x00104c83, 0x00104c83, + 0x00104c83, 0x00104c83, 0x00104c83, 0x00104c83, + 0x00104c83, 0x00104c83, 0x00104c83, 0x00104c83, + 0x00104c83, 0x00104c83, 0x00104c83, 0x00104c83, + 0x00104c83, 0x00104c83, 0x00104c83, 0x00104c83, + 0x00104c83, 0x00104c83, 0x00104c83, 0x00104c83, + 0x00104c83, 0x00104c83, 0x00104c83, 0x00104c83, + 0x00104c83, 0x00104c83, 0x00104c83, 0x00104c83, + 0x00104c83, 0x00104c83, 0x00104c83, 0x00104c83, + 0x00104c83, 0x00104c83, 0x00104c83, 0x00104c83, + 0x00104c83, 0x00104c83, 0x00104c83, 0x00104c83, + 0x00104c83, 0x00104c83, 0x00104c83, 0x00104c83, + 0x00104c83, 0x00104c83, 0x00104c83, 0x00104c83, + 0x00104c83, 0x00104c83, 0x00104c83, 0x00104c83, + 0x00104c83, 0x00104c83, 0x00104c83, 0x492fc857, + 0x42000000, 0x0010bd18, 0x0201f800, 0x0010ae10, + 0x42000000, 0x00000400, 0x0401f019, 0x492fc857, + 0x42000000, 0x0010bd17, 0x0201f800, 0x0010ae10, + 0x42000000, 0x00001000, 0x0401f011, 0x492fc857, + 0x42000000, 0x0010bd16, 0x0201f800, 0x0010ae10, + 0x42000000, 0x00002000, 0x0401f009, 0x492fc857, + 0x42000000, 0x0010bd19, 0x0201f800, 0x0010ae10, + 0x42000000, 0x00000800, 0x0401f001, 0x4803c857, + 0x592c0c05, 0x82040d00, 0xffff80ff, 0x80040540, + 0x59980803, 0x800409c0, 0x04000002, 0x8400051e, + 0x48025c05, 0x0201f800, 0x000203ab, 0x83700580, + 0x00000003, 0x4202e000, 0x00000001, 0x04000002, + 0x1c01f000, 0x599a5801, 0x812e59c0, 0x040207dc, + 0x0201f800, 0x0010032d, 0x492fc857, 0x80140110, + 0x80000040, 0x04000033, 0x040017cd, 0x4a033006, + 0x00104cf0, 0x0201f000, 0x00020684, 0x492fc857, + 0x80140110, 0x040007c6, 0x80000040, 0x04000044, + 0x4a033006, 0x00104d0b, 0x0201f000, 0x00020684, + 0x492fc857, 0x0201f800, 0x0010af17, 0x02020000, + 0x00020692, 0x492fc856, 0x83440400, 0x0010b080, + 0x50000000, 0x80026d40, 0x04000006, 0x4937c857, + 0x59340200, 0x8c00050e, 0x02020000, 0x00020692, + 0x42028000, 0x00000028, 0x41780800, 0x417a6000, + 0x0201f800, 0x00104543, 0x0201f800, 0x00108afb, + 0x0201f000, 0x000203ab, 0x82000500, 0x0f000000, + 0x8000012a, 0x592c0c0b, 0x82040d00, 0x0000ff87, + 0x80040540, 0x48025c0b, 0x0201f000, 0x000206a3, + 0x592c0a0b, 0x8c040d02, 0x04020015, 0x492fc857, + 0x8d0e1d0e, 0x0402000f, 0x592c0208, 0x80000540, + 0x04000005, 0x0201f800, 0x00103b2e, 0x04020004, + 0x1c01f000, 0x42000000, 0x00000000, 0x592c0a07, + 0x48065c07, 0x48025a07, 0x0201f000, 0x000203ab, + 0x42000000, 0x00000028, 0x0401f7f9, 0x42000800, + 0x00000009, 0x0201f000, 0x00105fc9, 0x492fc857, + 0x592c0409, 0x80000540, 0x0402078d, 0x8d0e1d0e, + 0x04020009, 0x592c0208, 0x80000540, 0x04000788, + 0x497a5a07, 0x0201f800, 0x00103b8c, 0x04020004, + 0x1c01f000, 0x42000000, 0x00000028, 0x48025a07, + 0x0201f000, 0x000203ab, 0x592e8a07, 0x592c0407, + 0x4947c857, 0x4803c857, 0x82000500, 0x000000ff, + 0x4200b800, 0x00000001, 0x82000d80, 0x00000001, + 0x04000015, 0x417a8800, 0x4200b800, 0x000007f0, + 0x82000d80, 0x00000002, 0x0400000f, 0x80000540, + 0x02020000, 0x000203ab, 0x592e8a07, 0x0201f800, + 0x00020319, 0x02020000, 0x000203ab, 0x592e9009, + 0x592e980a, 0x0201f800, 0x00103f73, 0x0201f000, + 0x000203ab, 0x850e1d00, 0x0201f800, 0x00020319, + 0x02000800, 0x00104095, 0x81468800, 0x805cb840, + 0x040207fa, 0x0201f000, 0x000203ab, 0x592c0a09, + 0x4807c857, 0x82040580, 0x0000000e, 0x0400006a, + 0x82040580, 0x0000002a, 0x04000025, 0x82040580, + 0x0000000f, 0x040003dc, 0x82040580, 0x0000002e, + 0x040003d9, 0x82040580, 0x00000046, 0x04000062, + 0x82040580, 0x00000045, 0x0400001b, 0x82040580, + 0x00000049, 0x040003d0, 0x82040580, 0x00000029, + 0x040203d3, 0x592e8a07, 0x42026800, 0x0010c2b2, + 0x83440580, 0x0000ffff, 0x04000007, 0x0201f800, + 0x00020319, 0x040203c4, 0x59340200, 0x84000518, 0x48026a00, 0x592e600a, 0x4933c857, 0x83300580, - 0xffffffff, 0x0402004d, 0x0401f3a9, 0x850e1d04, - 0x0401f3a7, 0x592c1408, 0x480bc857, 0x0201f800, - 0x00108cd8, 0x411e6000, 0x04020003, 0x4803c856, - 0x0401f3a5, 0x59300c07, 0x82040580, 0x00000004, - 0x04000003, 0x4803c856, 0x0401f39f, 0x592c0208, - 0x8c000506, 0x0400000f, 0x0201f800, 0x0010610d, - 0x4df00000, 0x0201f800, 0x00105ff7, 0x0201f800, - 0x0010e2ad, 0x80c40040, 0x5c03e000, 0x02000800, - 0x001060fa, 0x0201f800, 0x001070b5, 0x0401f388, - 0x592e380a, 0x591c1415, 0x8c081516, 0x0400038a, + 0xffffffff, 0x0402004d, 0x0401f3bb, 0x850e1d04, + 0x0401f3b9, 0x592c1408, 0x480bc857, 0x0201f800, + 0x00108d91, 0x411e6000, 0x04020003, 0x4803c856, + 0x0401f3b7, 0x59300c07, 0x82040580, 0x00000004, + 0x04000003, 0x4803c856, 0x0401f3b1, 0x592c0208, + 0x8c000506, 0x0400000f, 0x0201f800, 0x001061b2, + 0x4df00000, 0x0201f800, 0x0010609c, 0x0201f800, + 0x0010e3bd, 0x80c40040, 0x5c03e000, 0x02000800, + 0x0010619f, 0x0201f800, 0x00107144, 0x0401f39a, + 0x592e380a, 0x591c1415, 0x8c081516, 0x0400039c, 0x59300009, 0x800001c0, 0x02020800, 0x0010032d, 0x84081554, 0x480a3c15, 0x4a026403, 0x0000003a, 0x592c040c, 0x80000540, 0x04000007, 0x4a026403, 0x0000003b, 0x592c020d, 0x4802641b, 0x592c040d, 0x4802621b, 0x4a026203, 0x00000001, 0x42000800, - 0x80000040, 0x0401fb7d, 0x04000004, 0x492e6009, + 0x80000040, 0x0401fb8f, 0x04000004, 0x492e6009, 0x0201f000, 0x000209b1, 0x0201f800, 0x000209b1, - 0x0401f367, 0x59a80069, 0x84000510, 0x48035069, - 0x0401f363, 0x592c1208, 0x8c081500, 0x04020360, - 0x592e8a07, 0x592e600a, 0x0201f800, 0x00108ce2, - 0x04020003, 0x4803c856, 0x0401f35f, 0x59300c07, + 0x0401f379, 0x59a80069, 0x84000510, 0x48035069, + 0x0401f375, 0x592c1208, 0x8c081500, 0x04020372, + 0x592e8a07, 0x592e600a, 0x0201f800, 0x00108d9b, + 0x04020003, 0x4803c856, 0x0401f371, 0x59300c07, 0x82040580, 0x00000004, 0x04000003, 0x4803c856, - 0x0401f359, 0x59300a03, 0x82040580, 0x00000007, - 0x04000003, 0x4803c856, 0x0401f353, 0x59300c03, + 0x0401f36b, 0x59300a03, 0x82040580, 0x00000007, + 0x04000003, 0x4803c856, 0x0401f365, 0x59300c03, 0x82040580, 0x00000001, 0x0400001f, 0x82040580, 0x00000002, 0x04000014, 0x82040580, 0x00000008, 0x04000016, 0x82040580, 0x0000000a, 0x04000007, - 0x82040580, 0x0000000c, 0x0402001c, 0x42000800, - 0x00000009, 0x0401f017, 0x5932680a, 0x0201f800, - 0x00104181, 0x04020015, 0x42000800, 0x00000005, - 0x0401f010, 0x417a7800, 0x0201f800, 0x0010df61, + 0x82040580, 0x0000000c, 0x04020026, 0x42000800, + 0x00000009, 0x0401f021, 0x5932680a, 0x0201f800, + 0x0010419d, 0x0402001f, 0x42000800, 0x00000005, + 0x0401f01a, 0x417a7800, 0x0201f800, 0x0010e06f, 0x4a026407, 0x00000001, 0x42000800, 0x00000003, - 0x0401f008, 0x417a7800, 0x0201f800, 0x0010df61, - 0x4a026407, 0x00000001, 0x42000800, 0x0000000b, - 0x0201f800, 0x00103d8a, 0x4a026203, 0x00000001, - 0x0401fb2e, 0x04000004, 0x492e6009, 0x0201f000, - 0x00105fe8, 0x0201f800, 0x00105fe8, 0x0401f318, - 0x59300415, 0x8c000518, 0x02020000, 0x0010a168, - 0x0401f0a9, 0x40000800, 0x58040000, 0x80000540, - 0x040207fd, 0x492c0800, 0x1c01f000, 0x492fc857, - 0x59300c07, 0x82040580, 0x00000006, 0x04020099, - 0x59340400, 0x82000580, 0x00000606, 0x04020005, - 0x59340200, 0x8c00051a, 0x02000000, 0x000206f7, - 0x59340200, 0x8c00050e, 0x0400008e, 0x59300203, - 0x42027800, 0x00000001, 0x82000580, 0x00000007, - 0x02020000, 0x000206f7, 0x4a026203, 0x00000002, - 0x0201f000, 0x000206f7, 0x42028000, 0x00000002, - 0x4a026006, 0x00000014, 0x4d2c0000, 0x0201f800, - 0x00109d73, 0x5c025800, 0x59300c07, 0x4807c857, - 0x82040580, 0x00000007, 0x0402005d, 0x492fc857, - 0x4a025a07, 0x00000001, 0x0201f000, 0x000203ab, - 0x83300580, 0xffffffff, 0x04020055, 0x592c240b, - 0x492fc857, 0x4813c857, 0x8c10251c, 0x04020018, - 0x8c10251a, 0x04000003, 0x8c10250a, 0x0400006a, - 0x59340a00, 0x8c040d0e, 0x04000003, 0x8c10251e, - 0x04000065, 0x0201f800, 0x000209ee, 0x04000073, - 0x592c240b, 0x592c020d, 0x48026202, 0x4936600a, - 0x4932580a, 0x4a026407, 0x00000006, 0x4a026203, - 0x00000007, 0x0201f000, 0x000206f0, 0x592c0a0d, - 0x4c040000, 0x0201f800, 0x00104493, 0x5c000800, - 0x04020077, 0x58080000, 0x49781000, 0x802041c0, - 0x04000006, 0x48004000, 0x80000540, 0x04020007, - 0x48226810, 0x0401f005, 0x4802680f, 0x80000540, - 0x04020002, 0x497a6810, 0x4d2c0000, 0x400a5800, - 0x4a025a07, 0x00000002, 0x0201f800, 0x000203ab, - 0x5c025800, 0x0401f7c2, 0x8c10251c, 0x04000017, - 0x592c0207, 0x82000580, 0x0000ffff, 0x04020013, - 0x592e600a, 0x83300580, 0xffffffff, 0x040007b8, - 0x0201f800, 0x001091d9, 0x04020011, 0x592c220d, - 0x59300202, 0x80100580, 0x0402000d, 0x59300009, - 0x800001c0, 0x04020005, 0x59300203, 0x82000580, - 0x00000007, 0x0400079d, 0x492fc857, 0x4a025a07, - 0x00000029, 0x0201f000, 0x000203ab, 0x492fc857, - 0x4a025a07, 0x00000008, 0x0201f000, 0x000203ab, - 0x4803c857, 0x8c000514, 0x04000008, 0x42000000, - 0x0010bc07, 0x0201f800, 0x0010ad1d, 0x492fc857, - 0x492e6009, 0x1c01f000, 0x492fc857, 0x4a025a07, - 0x00000045, 0x0201f000, 0x000203ab, 0x492fc857, - 0x4a025a07, 0x0000002a, 0x0201f000, 0x000203ab, - 0x492fc857, 0x4a025a07, 0x00000028, 0x0201f000, - 0x000203ab, 0x492fc857, 0x4a025a07, 0x00000006, + 0x0401f012, 0x83340580, 0x0010c2b2, 0x04020008, + 0x5930000a, 0x82000580, 0x0010c2b2, 0x0402033c, + 0x4a026407, 0x00000001, 0x0401f00a, 0x417a7800, + 0x0201f800, 0x0010e06f, 0x4a026407, 0x00000001, + 0x42000800, 0x0000000b, 0x0201f800, 0x00103d9d, + 0x4a026203, 0x00000001, 0x0401fb36, 0x04000004, + 0x492e6009, 0x0201f000, 0x0010608d, 0x0201f800, + 0x0010608d, 0x0401f320, 0x59300415, 0x8c000518, + 0x02020000, 0x0010a247, 0x0401f0a9, 0x40000800, + 0x58040000, 0x80000540, 0x040207fd, 0x492c0800, + 0x1c01f000, 0x492fc857, 0x59300c07, 0x82040580, + 0x00000006, 0x04020099, 0x59340400, 0x82000580, + 0x00000606, 0x04020005, 0x59340200, 0x8c00051a, + 0x02000000, 0x000206f7, 0x59340200, 0x8c00050e, + 0x0400008e, 0x59300203, 0x42027800, 0x00000001, + 0x82000580, 0x00000007, 0x02020000, 0x000206f7, + 0x4a026203, 0x00000002, 0x0201f000, 0x000206f7, + 0x42028000, 0x00000002, 0x4a026006, 0x00000014, + 0x4d2c0000, 0x0201f800, 0x00109e4a, 0x5c025800, + 0x59300c07, 0x4807c857, 0x82040580, 0x00000007, + 0x0402005d, 0x492fc857, 0x4a025a07, 0x00000001, + 0x0201f000, 0x000203ab, 0x83300580, 0xffffffff, + 0x04020055, 0x592c240b, 0x492fc857, 0x4813c857, + 0x8c10251c, 0x04020018, 0x8c10251a, 0x04000003, + 0x8c10250a, 0x0400006a, 0x59340a00, 0x8c040d0e, + 0x04000003, 0x8c10251e, 0x04000065, 0x0201f800, + 0x000209ee, 0x04000073, 0x592c240b, 0x592c020d, + 0x48026202, 0x4936600a, 0x4932580a, 0x4a026407, + 0x00000006, 0x4a026203, 0x00000007, 0x0201f000, + 0x000206f0, 0x592c0a0d, 0x4c040000, 0x0201f800, + 0x001044b2, 0x5c000800, 0x04020077, 0x58080000, + 0x49781000, 0x802041c0, 0x04000006, 0x48004000, + 0x80000540, 0x04020007, 0x48226810, 0x0401f005, + 0x4802680f, 0x80000540, 0x04020002, 0x497a6810, + 0x4d2c0000, 0x400a5800, 0x4a025a07, 0x00000002, + 0x0201f800, 0x000203ab, 0x5c025800, 0x0401f7c2, + 0x8c10251c, 0x04000017, 0x592c0207, 0x82000580, + 0x0000ffff, 0x04020013, 0x592e600a, 0x83300580, + 0xffffffff, 0x040007b8, 0x0201f800, 0x00109291, + 0x04020011, 0x592c220d, 0x59300202, 0x80100580, + 0x0402000d, 0x59300009, 0x800001c0, 0x04020005, + 0x59300203, 0x82000580, 0x00000007, 0x0400079d, + 0x492fc857, 0x4a025a07, 0x00000029, 0x0201f000, + 0x000203ab, 0x492fc857, 0x4a025a07, 0x00000008, + 0x0201f000, 0x000203ab, 0x4803c857, 0x8c000514, + 0x04000008, 0x42000000, 0x0010bd07, 0x0201f800, + 0x0010ae10, 0x492fc857, 0x492e6009, 0x1c01f000, + 0x492fc857, 0x4a025a07, 0x00000045, 0x0201f000, + 0x000203ab, 0x492fc857, 0x4a025a07, 0x0000002a, 0x0201f000, 0x000203ab, 0x492fc857, 0x4a025a07, - 0x0000000e, 0x0201f000, 0x000203ab, 0x82040580, - 0x00000007, 0x040207d6, 0x4a025a07, 0x00000002, - 0x0201f000, 0x000203ab, 0x592c0407, 0x800000c2, - 0x800008c4, 0x80040400, 0x48025804, 0x59340010, - 0x492e6810, 0x492fc857, 0x80000d40, 0x04000003, - 0x492c0800, 0x1c01f000, 0x59340203, 0x492e680f, - 0x492fc857, 0x4803c857, 0x80000540, 0x04020003, - 0x4a026a03, 0x00000001, 0x1c01f000, 0x59a8000d, - 0x81640480, 0x0402175e, 0x42026000, 0x0010f584, - 0x5930000a, 0x81340580, 0x04020004, 0x59300202, - 0x80040580, 0x04000749, 0x83326400, 0x00000024, - 0x41580000, 0x81300480, 0x040017f6, 0x0401f750, - 0x492fc857, 0x592c0205, 0x80000112, 0x040205a5, - 0x592e8a07, 0x0201f800, 0x00020319, 0x0402005b, - 0x0201f800, 0x00104165, 0x0402005b, 0x592e780b, - 0x493fc857, 0x8d3e7d3e, 0x04020006, 0x8d0e1d0e, - 0x04020052, 0x0201f800, 0x00104087, 0x040005a5, - 0x833c1d00, 0x0000001f, 0x040005a2, 0x592c0208, - 0x82000c80, 0x00001000, 0x0402159e, 0x800000c2, - 0x800008c4, 0x8005d400, 0x592e9009, 0x592e980a, - 0x5934080d, 0x800409c0, 0x04000004, 0x58041802, - 0x800c19c0, 0x04020037, 0x833c1d00, 0x0000001f, - 0x81780040, 0x80000000, 0x800c1902, 0x040217fe, - 0x0402058c, 0x0c01f001, 0x00104ed7, 0x00104eda, - 0x00104ee7, 0x00104eea, 0x00104eed, 0x0201f800, - 0x001088aa, 0x0401f023, 0x0201f800, 0x00104059, - 0x04000027, 0x80e9d1c0, 0x02020800, 0x001057e8, - 0x42028000, 0x00000005, 0x417a9000, 0x417a9800, - 0x0201f800, 0x001088ba, 0x0401f016, 0x42027000, - 0x0000004d, 0x0401f006, 0x42027000, 0x0000004e, - 0x0401f003, 0x42027000, 0x00000052, 0x5934080d, - 0x800409c0, 0x04000007, 0x4d3c0000, 0x40067800, - 0x0201f800, 0x00104039, 0x5c027800, 0x04000009, - 0x0201f800, 0x00103f0f, 0x02020800, 0x001088ed, - 0x04000007, 0x8d3e7d3e, 0x0402000e, 0x1c01f000, - 0x4a025a07, 0x00000030, 0x0401f00d, 0x4a025a07, - 0x0000002c, 0x0401f00a, 0x4a025a07, 0x00000028, - 0x0401f007, 0x4a025a07, 0x00000029, 0x0401f004, - 0x497a580a, 0x4a025a07, 0x00000000, 0x4a025a05, - 0x00000103, 0x0201f000, 0x000203ab, 0x492fc857, - 0x80140110, 0x80000040, 0x04000002, 0x0401f535, - 0x592c0208, 0x82000500, 0x000003ff, 0x48025a08, - 0x8c000506, 0x04000004, 0x82000500, 0x00000070, - 0x04020003, 0x8d0e1d0e, 0x04020018, 0x4a025a07, - 0x0000dead, 0x592c0409, 0x82000500, 0x0000f0ff, - 0x48025c09, 0x0201f800, 0x00103ba7, 0x04020002, - 0x1c01f000, 0x49425a07, 0x8058b1c0, 0x04000009, - 0x0201f800, 0x00108e25, 0x0401f80f, 0x44042800, - 0x82580580, 0x00000002, 0x04020002, 0x48082801, - 0x0201f000, 0x000203ab, 0x42028000, 0x00000031, - 0x42000800, 0x00000001, 0x4200b000, 0x00000001, - 0x0401f7ed, 0x592c0409, 0x80000118, 0x832c2c00, - 0x0000000a, 0x80142c00, 0x1c01f000, 0x492fc857, - 0x4a025a09, 0x00000006, 0x0201f000, 0x000203ab, - 0x492fc857, 0x4a025a09, 0x00000001, 0x0201f000, - 0x000203ab, 0x492fc857, 0x592c040b, 0x82000500, - 0x00000003, 0x04000020, 0x0201f800, 0x001070f5, - 0x04000021, 0x592c0205, 0x492e6009, 0x82000500, - 0x000000ff, 0x82000580, 0x00000045, 0x0400000e, - 0x592c000c, 0x0201f800, 0x0010548f, 0x02000800, - 0x00020319, 0x04020018, 0x42027000, 0x00000041, - 0x4936600a, 0x4a026407, 0x00000001, 0x0201f000, - 0x00020a34, 0x59300016, 0x8400055e, 0x48026016, - 0x42026800, 0x0010b876, 0x42027000, 0x00000040, - 0x0401f7f4, 0x4a025a07, 0x00000101, 0x0201f000, - 0x000203ab, 0x4a025a07, 0x0000002c, 0x0201f000, - 0x000203ab, 0x4a025a07, 0x00000028, 0x0201f800, - 0x000203ab, 0x0201f000, 0x00020a10, 0x492fc857, - 0x0201f800, 0x00105b7c, 0x0400000b, 0x592c0205, - 0x80000110, 0x80000040, 0x040204c2, 0x592c0c07, - 0x800409c0, 0x04000009, 0x42000000, 0x00000102, - 0x0401f003, 0x42000000, 0x00000104, 0x48025a07, - 0x0201f000, 0x000203ab, 0x592c0c08, 0x800409c0, - 0x04000020, 0x82040480, 0x00000005, 0x0402101d, - 0x4c040000, 0x80040800, 0x0201f800, 0x00105ba1, - 0x5c001000, 0x04020014, 0x832c0400, 0x00000009, - 0x4000a000, 0x0201f800, 0x00105bca, 0x0402000e, - 0x592c1208, 0x58c80c0b, 0x84040d00, 0x84040d02, - 0x8c081500, 0x04000002, 0x84040d5e, 0x4805940b, - 0x42000000, 0x00000000, 0x48025a07, 0x0201f000, - 0x000203ab, 0x42000000, 0x00000103, 0x0401f7fb, - 0x42000000, 0x00000102, 0x0401f7f8, 0x492fc857, - 0x592e7c07, 0x833c0500, 0xfffffffe, 0x04020047, - 0x592c4008, 0x42026000, 0x0010f584, 0x41581800, - 0x400c0000, 0x81300480, 0x04021026, 0x59300203, - 0x82000580, 0x00000000, 0x04000007, 0x59300009, - 0x80000d40, 0x04000004, 0x58040006, 0x80200580, - 0x04000004, 0x83326400, 0x00000024, 0x0401f7f1, - 0x58040205, 0x82000500, 0x000000ff, 0x82000d80, - 0x00000053, 0x0400000a, 0x82000d80, 0x00000048, - 0x04000007, 0x82000d80, 0x00000018, 0x04000004, - 0x82000d80, 0x00000029, 0x040207ef, 0x4d2c0000, - 0x0201f800, 0x00108487, 0x5c025800, 0x0400001f, - 0x4a025a07, 0x00000000, 0x0201f000, 0x000203ab, - 0x592e8a07, 0x83440480, 0x000007f0, 0x04021017, - 0x83440400, 0x0010af80, 0x50000000, 0x80026d40, - 0x04000012, 0x4d2c0000, 0x0201f800, 0x00104013, - 0x0400000d, 0x42028000, 0x00000005, 0x592c0a09, - 0x417a6000, 0x0201f800, 0x00104504, 0x0201f800, - 0x00108a48, 0x0201f800, 0x000203ab, 0x5c025800, - 0x0401f7e4, 0x5c025800, 0x4a025a07, 0x00000031, - 0x0201f000, 0x000203ab, 0x492fc857, 0x4d2c0000, - 0x0201f800, 0x0010056f, 0x04000017, 0x492fc857, - 0x412f4000, 0x0201f800, 0x0010056f, 0x0400000f, - 0x492fc857, 0x412dd800, 0x0201f800, 0x001032d6, - 0x0201f800, 0x001032e0, 0x49a1d80a, 0x5c025800, - 0x492dd809, 0x48ef4006, 0x0201f800, 0x00101c10, - 0x0201f000, 0x00101c2f, 0x41a25800, 0x0201f800, - 0x00100580, 0x5c025800, 0x4a025a07, 0x00004005, - 0x4a025c07, 0x00000002, 0x0201f000, 0x000203ab, - 0x4807c857, 0x485fc857, 0x4200b800, 0x00000001, - 0x5c000800, 0x4c5c0000, 0x0401f005, 0x4807c857, - 0x485fc857, 0x5c000800, 0x4d780000, 0x4803c857, - 0x492fc857, 0x8c00050e, 0x02020800, 0x00100322, - 0x4203e000, 0x50000000, 0x4200b800, 0x00008003, - 0x0201f000, 0x00100332, 0x80140110, 0x80000040, - 0x04020408, 0x599c0019, 0x8c000510, 0x0402000d, - 0x0201f800, 0x001041c3, 0x04020002, 0x1c01f000, - 0x49425a07, 0x4806580e, 0x480a580f, 0x4943c857, - 0x4807c857, 0x480bc857, 0x0201f000, 0x000203ab, - 0x592c040c, 0x82000500, 0x0000e000, 0x82000580, - 0x00006000, 0x040007ef, 0x59a8021b, 0x8c000508, - 0x040007ec, 0x592c120c, 0x592c080b, 0x82040500, - 0xff000000, 0x80040d80, 0x80000110, 0x80081540, - 0x04000004, 0x4806580b, 0x0401f883, 0x0401f7e1, - 0x42001000, 0x0000001c, 0x42000800, 0x00000019, - 0x42028000, 0x00000031, 0x0401f7de, 0x80140110, - 0x80000040, 0x02020000, 0x00104c4c, 0x0201f800, - 0x00104336, 0x04020002, 0x1c01f000, 0x49425a07, - 0x48065812, 0x480a5813, 0x0201f000, 0x000203ab, - 0x80140110, 0x02000000, 0x00104c4c, 0x80000040, - 0x0402000d, 0x4202e000, 0x00000001, 0x592c020b, - 0x8c000504, 0x02000000, 0x0002068a, 0x592c0208, - 0x82000c80, 0x00001001, 0x02021000, 0x00104c5c, - 0x0401f005, 0x4a033006, 0x0002068a, 0x0201f000, - 0x00020684, 0x592c1014, 0x82080500, 0xffff0003, - 0x02020000, 0x00104c5c, 0x4202e000, 0x00000002, - 0x42000000, 0x0010c25d, 0x50007000, 0x592c0012, - 0x592c0813, 0x48007006, 0x48047007, 0x492c700a, - 0x4978700d, 0x4978700b, 0x0401f001, 0x4978700c, - 0x82080480, 0x00000180, 0x4803c857, 0x04001007, - 0x4800700e, 0x4a007005, 0x00000180, 0x4a007004, - 0x00000060, 0x0401f005, 0x4978700e, 0x48087005, - 0x80081104, 0x48087004, 0x58380009, 0x48007003, - 0x40381000, 0x0201f000, 0x00020016, 0x4df00000, - 0x4203e000, 0x50000000, 0x0201f800, 0x0010055a, - 0x04000003, 0x59980005, 0x0801f800, 0x5c03e000, - 0x1c01f000, 0x0201f800, 0x0010055a, 0x02000800, - 0x0010032d, 0x4a025809, 0x0010c1fc, 0x42000800, - 0x0010c25d, 0x452c0800, 0x497a580a, 0x497a580b, - 0x497a580c, 0x497a580d, 0x497a580e, 0x4a025808, - 0x0002073d, 0x497a580f, 0x4a025802, 0x00000100, - 0x4a025801, 0x00000001, 0x1c01f000, 0x0401f80c, - 0x04000674, 0x4a025a09, 0x00000001, 0x0201f000, - 0x0010a3e5, 0x0401f806, 0x04000669, 0x4a025a09, - 0x00000006, 0x0201f000, 0x0010a3e5, 0x59a80005, - 0x8c00051a, 0x1c01f000, 0x59a80005, 0x8c00051c, - 0x1c01f000, 0x59a8000f, 0x80080580, 0x04020002, - 0x1c01f000, 0x480bc857, 0x480b500f, 0x497b8830, - 0x82080d40, 0x01000000, 0x48078832, 0x59c40002, - 0x8400054c, 0x48038802, 0x42000800, 0x00000003, - 0x0201f000, 0x00106134, 0x59c80007, 0x8c000502, - 0x0400007b, 0x835c2c80, 0x00000005, 0x02001000, - 0x00105724, 0x59c82817, 0x4817506c, 0x497b9005, - 0x82140500, 0x00e00000, 0x04020059, 0x82140500, - 0x000003ff, 0x82001c00, 0x00000006, 0x41cc2000, - 0x42003000, 0x00006080, 0x820c0480, 0x00000040, - 0x04001006, 0x42001000, 0x00000040, 0x820c1c80, - 0x00000040, 0x0401f003, 0x400c1000, 0x41781800, - 0x54182000, 0x80102000, 0x80183000, 0x80081040, - 0x040207fc, 0x800c19c0, 0x04000005, 0x59c80005, - 0x80000000, 0x48039005, 0x0401f7ea, 0x82140500, - 0x000003ff, 0x800018c4, 0x8c142d14, 0x04000005, - 0x59cc0002, 0x82000500, 0x00000003, 0x800c1c80, - 0x480f505a, 0x82140500, 0x01f60000, 0x04020029, - 0x82140500, 0x0000f000, 0x0400000b, 0x82000c80, - 0x00002000, 0x0402100f, 0x4a039005, 0x00000140, - 0x82140500, 0x0e000000, 0x80000132, 0x0c01f83e, - 0x1c01f000, 0x59cc0400, 0x82000500, 0x0000ff00, - 0x82000580, 0x00008100, 0x040007f4, 0x0401f01c, - 0x4817c857, 0x82140500, 0x000003ff, 0x04020007, - 0x59cc0400, 0x82000500, 0x0000ff00, 0x82000580, - 0x00008100, 0x04020012, 0x42000000, 0x0010bc77, - 0x0201f800, 0x0010ad1d, 0x0201f800, 0x001055d9, - 0x4803c856, 0x4a039005, 0x00000140, 0x0401f020, - 0x4817c857, 0x82140500, 0x00f60000, 0x04020004, - 0x0201f800, 0x00105617, 0x040207d2, 0x0201f800, - 0x00104716, 0x04000010, 0x59c400a4, 0x4803c857, - 0x82000500, 0x0000000f, 0x82000580, 0x0000000a, - 0x04020009, 0x497b505a, 0x59c400a3, 0x82000540, - 0x00080000, 0x480388a3, 0x82000500, 0xfff7ffff, - 0x480388a3, 0x4817c856, 0x0201f800, 0x0010ac62, - 0x4a039005, 0x00000140, 0x0401f03f, 0x4803c856, - 0x1c01f000, 0x00105187, 0x00105499, 0x00105181, - 0x00105181, 0x00105181, 0x00105181, 0x00105181, - 0x00105181, 0x4803c857, 0x42000000, 0x0010bc14, - 0x0201f800, 0x0010ad1d, 0x1c01f000, 0x59cc0002, - 0x82000500, 0xff000000, 0x82000580, 0xfe000000, - 0x04020004, 0x0201f800, 0x0010a731, 0x0401f025, - 0x59cc0400, 0x82000d00, 0x0000ff00, 0x82041500, - 0x0000f000, 0x840409c0, 0x82080580, 0x00002000, - 0x04020013, 0x836c0580, 0x00000001, 0x0402000e, - 0x59cc0006, 0x82000500, 0xff000000, 0x82000580, - 0x11000000, 0x02020800, 0x001003f4, 0x04020011, - 0x0201f800, 0x0010330a, 0x0201f800, 0x00105749, - 0x0401f00c, 0x0401f81f, 0x0401f00a, 0x82080580, - 0x00003000, 0x04020003, 0x0401fa83, 0x0401f005, - 0x82080580, 0x00008000, 0x04020002, 0x0401fb4c, - 0x1c01f000, 0x4817c857, 0x42000000, 0x0010bc13, - 0x0201f800, 0x0010ad1d, 0x836c0580, 0x00000003, - 0x0402000b, 0x4c080000, 0x4c0c0000, 0x42001000, - 0x00008048, 0x40141800, 0x80142120, 0x0201f800, - 0x001031eb, 0x5c001800, 0x5c001000, 0x1c01f000, - 0x59cc0002, 0x82000500, 0xff000000, 0x82001580, - 0x01000000, 0x04000006, 0x82001580, 0x23000000, - 0x02020800, 0x001003f4, 0x04020209, 0x59a8005a, - 0x82000480, 0x00000004, 0x04001205, 0x82040580, - 0x00000023, 0x04020051, 0x59cc0004, 0x4803c857, - 0x59cc0006, 0x82000500, 0xff000000, 0x59cc0801, - 0x82040d00, 0x00ffffff, 0x80040540, 0x4803c857, - 0x0401fbc6, 0x02000800, 0x001003f4, 0x040001f4, - 0x59300c07, 0x82040580, 0x00000010, 0x0400000f, - 0x82040580, 0x00000011, 0x0400000c, 0x82040580, - 0x00000001, 0x04000009, 0x82040580, 0x00000004, - 0x04000006, 0x82040580, 0x00000008, 0x02020800, - 0x001003f4, 0x040201e2, 0x59300004, 0x82000500, - 0x80010000, 0x04000006, 0x0201f800, 0x0010644d, - 0x02020800, 0x001003f4, 0x040201d9, 0x59cc0a04, - 0x48066202, 0x59cc0006, 0x82000500, 0xffff0000, - 0x82000d80, 0x02000000, 0x04020005, 0x42027000, - 0x00000015, 0x0201f000, 0x00020a34, 0x82000d80, - 0x02140000, 0x040007fa, 0x82000d80, 0x02100000, - 0x040007f7, 0x82000d80, 0x02100000, 0x040007f4, - 0x82000d80, 0x01000000, 0x02020800, 0x001003f4, - 0x040201bf, 0x59cc0006, 0x82000500, 0x0000ffff, - 0x02020800, 0x001003f4, 0x040201b9, 0x59a8005a, - 0x82000480, 0x00000008, 0x040011b5, 0x42027000, - 0x00000016, 0x0401f7e4, 0x82040580, 0x00000022, - 0x02020800, 0x001003f4, 0x040201ad, 0x59cc0004, - 0x4803c857, 0x59cc0006, 0x4803c857, 0x59cc0001, - 0x4803c857, 0x59a8005a, 0x800001c0, 0x02000800, - 0x001003f4, 0x040001a2, 0x59a80805, 0x8c040d14, - 0x0400002b, 0x0401f9bd, 0x04020029, 0x0401f9d6, - 0x04000027, 0x42027000, 0x0000004c, 0x59cc0001, - 0x82000500, 0x00ffffff, 0x0201f800, 0x001056f0, - 0x04000004, 0x42028800, 0x0000ffff, 0x417a6800, - 0x599c0019, 0x8c000510, 0x04000178, 0x59a8021b, - 0x8c000508, 0x04000175, 0x59cc1006, 0x82081500, - 0xffff0000, 0x82081580, 0x03000000, 0x0402016f, - 0x83641480, 0x00000010, 0x04001186, 0x8400054c, - 0x4803521b, 0x59cc1000, 0x82081500, 0x00ffffff, - 0x0401fe89, 0x59cc0007, 0x82000500, 0x0000ffff, - 0x48038893, 0x48035012, 0x0401f160, 0x59cc0006, - 0x82000500, 0xffff0000, 0x82000d80, 0x03000000, - 0x04020029, 0x59a8021b, 0x8c000508, 0x04000020, - 0x8400054c, 0x4803521b, 0x59cc0800, 0x82040d00, - 0x00ffffff, 0x4807500f, 0x497b8830, 0x84040d70, - 0x48078832, 0x59c40802, 0x84040d4c, 0x48078802, + 0x00000028, 0x0201f000, 0x000203ab, 0x492fc857, + 0x4a025a07, 0x00000006, 0x0201f000, 0x000203ab, + 0x492fc857, 0x4a025a07, 0x0000000e, 0x0201f000, + 0x000203ab, 0x82040580, 0x00000007, 0x040207d6, + 0x4a025a07, 0x00000002, 0x0201f000, 0x000203ab, + 0x592c0407, 0x800000c2, 0x800008c4, 0x80040400, + 0x48025804, 0x59340010, 0x492e6810, 0x492fc857, + 0x80000d40, 0x04000003, 0x492c0800, 0x1c01f000, + 0x59340203, 0x492e680f, 0x492fc857, 0x4803c857, + 0x80000540, 0x04020003, 0x4a026a03, 0x00000001, + 0x1c01f000, 0x59a8000d, 0x81640480, 0x0402175e, + 0x42026000, 0x0010f694, 0x59300407, 0x82000580, + 0x00000006, 0x04020007, 0x5930000a, 0x81340580, + 0x04020004, 0x59300202, 0x80040580, 0x04000745, + 0x83326400, 0x00000024, 0x41580000, 0x81300480, + 0x040017f2, 0x0401f74c, 0x492fc857, 0x592c0205, + 0x80000112, 0x04020592, 0x592e8a07, 0x0201f800, + 0x00020319, 0x0402005b, 0x0201f800, 0x00104181, + 0x0402005b, 0x592e780b, 0x493fc857, 0x8d3e7d3e, + 0x04020006, 0x8d0e1d0e, 0x04020052, 0x0201f800, + 0x001040a1, 0x04000592, 0x833c1d00, 0x0000001f, + 0x0400058f, 0x592c0208, 0x82000c80, 0x00001000, + 0x0402158b, 0x800000c2, 0x800008c4, 0x8005d400, + 0x592e9009, 0x592e980a, 0x5934080d, 0x800409c0, + 0x04000004, 0x58041802, 0x800c19c0, 0x04020037, + 0x833c1d00, 0x0000001f, 0x81780040, 0x80000000, + 0x800c1902, 0x040217fe, 0x04020579, 0x0c01f001, + 0x00104f29, 0x00104f2c, 0x00104f39, 0x00104f3c, + 0x00104f3f, 0x0201f800, 0x00108963, 0x0401f023, + 0x0201f800, 0x00104073, 0x04000027, 0x80e9d1c0, + 0x02020800, 0x0010588d, 0x42028000, 0x00000005, + 0x417a9000, 0x417a9800, 0x0201f800, 0x00108973, + 0x0401f016, 0x42027000, 0x0000004d, 0x0401f006, + 0x42027000, 0x0000004e, 0x0401f003, 0x42027000, + 0x00000052, 0x5934080d, 0x800409c0, 0x04000007, + 0x4d3c0000, 0x40067800, 0x0201f800, 0x00104053, + 0x5c027800, 0x04000009, 0x0201f800, 0x00103f29, + 0x02020800, 0x001089a6, 0x04000007, 0x8d3e7d3e, + 0x0402000e, 0x1c01f000, 0x4a025a07, 0x00000030, + 0x0401f00d, 0x4a025a07, 0x0000002c, 0x0401f00a, + 0x4a025a07, 0x00000028, 0x0401f007, 0x4a025a07, + 0x00000029, 0x0401f004, 0x497a580a, 0x4a025a07, + 0x00000000, 0x4a025a05, 0x00000103, 0x0201f000, + 0x000203ab, 0x492fc857, 0x80140110, 0x80000040, + 0x04000002, 0x0401f522, 0x592c0208, 0x82000500, + 0x000003ff, 0x48025a08, 0x8c000506, 0x04000004, + 0x82000500, 0x00000070, 0x04020003, 0x8d0e1d0e, + 0x04020018, 0x4a025a07, 0x0000dead, 0x592c0409, + 0x82000500, 0x0000f0ff, 0x48025c09, 0x0201f800, + 0x00103bba, 0x04020002, 0x1c01f000, 0x49425a07, + 0x8058b1c0, 0x04000009, 0x0201f800, 0x00108ede, + 0x0401f80f, 0x44042800, 0x82580580, 0x00000002, + 0x04020002, 0x48082801, 0x0201f000, 0x000203ab, + 0x42028000, 0x00000031, 0x42000800, 0x00000001, + 0x4200b000, 0x00000001, 0x0401f7ed, 0x592c0409, + 0x80000118, 0x832c2c00, 0x0000000a, 0x80142c00, + 0x1c01f000, 0x492fc857, 0x4a025a09, 0x00000006, + 0x0201f000, 0x000203ab, 0x492fc857, 0x4a025a09, + 0x00000001, 0x0201f000, 0x000203ab, 0x492fc857, + 0x592c040b, 0x82000500, 0x00000003, 0x04000020, + 0x0201f800, 0x00107188, 0x04000021, 0x592c0205, + 0x492e6009, 0x82000500, 0x000000ff, 0x82000580, + 0x00000045, 0x0400000e, 0x592c000c, 0x0201f800, + 0x001054fb, 0x02000800, 0x00020319, 0x04020018, + 0x42027000, 0x00000041, 0x4936600a, 0x4a026407, + 0x00000001, 0x0201f000, 0x00020a34, 0x59300016, + 0x8400055e, 0x48026016, 0x42026800, 0x0010b976, + 0x42027000, 0x00000040, 0x0401f7f4, 0x4a025a07, + 0x00000101, 0x0201f000, 0x000203ab, 0x4a025a07, + 0x0000002c, 0x0201f000, 0x000203ab, 0x4a025a07, + 0x00000028, 0x0201f800, 0x000203ab, 0x0201f000, + 0x00020a10, 0x492fc857, 0x0201f800, 0x00105c21, + 0x0400000b, 0x592c0205, 0x80000110, 0x80000040, + 0x040204af, 0x592c0c07, 0x800409c0, 0x04000009, + 0x42000000, 0x00000102, 0x0401f003, 0x42000000, + 0x00000104, 0x48025a07, 0x0201f000, 0x000203ab, + 0x592c0c08, 0x800409c0, 0x04000020, 0x82040480, + 0x00000005, 0x0402101d, 0x4c040000, 0x80040800, + 0x0201f800, 0x00105c46, 0x5c001000, 0x04020014, + 0x832c0400, 0x00000009, 0x4000a000, 0x0201f800, + 0x00105c6f, 0x0402000e, 0x592c1208, 0x58c80c0b, + 0x84040d00, 0x84040d02, 0x8c081500, 0x04000002, + 0x84040d5e, 0x4805940b, 0x42000000, 0x00000000, + 0x48025a07, 0x0201f000, 0x000203ab, 0x42000000, + 0x00000103, 0x0401f7fb, 0x42000000, 0x00000102, + 0x0401f7f8, 0x492fc857, 0x592e7c07, 0x833c0500, + 0xfffffffe, 0x0402004a, 0x592c4008, 0x42026000, + 0x0010f694, 0x41581800, 0x400c0000, 0x81300480, + 0x04021029, 0x59300203, 0x82000580, 0x00000000, + 0x04000007, 0x59300009, 0x80000d40, 0x04000004, + 0x58040006, 0x80200580, 0x04000004, 0x83326400, + 0x00000024, 0x0401f7f1, 0x58040205, 0x82000500, + 0x000000ff, 0x82000d80, 0x00000053, 0x0400000d, + 0x82000d80, 0x00000048, 0x0400000a, 0x82000d80, + 0x00000018, 0x04000007, 0x82000d80, 0x00000029, + 0x04000004, 0x82000d80, 0x00000014, 0x040207ec, + 0x4d2c0000, 0x0201f800, 0x0010853c, 0x5c025800, + 0x0400001f, 0x4a025a07, 0x00000000, 0x0201f000, + 0x000203ab, 0x592e8a07, 0x83440480, 0x000007f0, + 0x04021017, 0x83440400, 0x0010b080, 0x50000000, + 0x80026d40, 0x04000012, 0x4d2c0000, 0x0201f800, + 0x0010402d, 0x0400000d, 0x42028000, 0x00000005, + 0x592c0a09, 0x417a6000, 0x0201f800, 0x00104543, + 0x0201f800, 0x00108b01, 0x0201f800, 0x000203ab, + 0x5c025800, 0x0401f7e4, 0x5c025800, 0x4a025a07, + 0x00000031, 0x0201f000, 0x000203ab, 0x492fc857, + 0x4d2c0000, 0x0201f800, 0x0010056f, 0x04000017, + 0x492fc857, 0x412f4000, 0x0201f800, 0x0010056f, + 0x0400000f, 0x492fc857, 0x412dd800, 0x0201f800, + 0x001032e0, 0x0201f800, 0x001032ea, 0x49a1d80a, + 0x5c025800, 0x492dd809, 0x48ef4006, 0x0201f800, + 0x00101c15, 0x0201f000, 0x00101c34, 0x41a25800, + 0x0201f800, 0x00100580, 0x5c025800, 0x4a025a07, + 0x00004005, 0x4a025c07, 0x00000002, 0x0201f000, + 0x000203ab, 0x4807c857, 0x485fc857, 0x4200b800, + 0x00000001, 0x5c000800, 0x4c5c0000, 0x0401f005, + 0x4807c857, 0x485fc857, 0x5c000800, 0x4d780000, + 0x4803c857, 0x492fc857, 0x8c00050e, 0x02020800, + 0x00100322, 0x4203e000, 0x50000000, 0x4200b800, + 0x00008003, 0x0201f000, 0x00100332, 0x80140110, + 0x80000040, 0x02020000, 0x00104c8b, 0x599c0019, + 0x8c000510, 0x0402000d, 0x0201f800, 0x001041df, + 0x04020002, 0x1c01f000, 0x49425a07, 0x4806580e, + 0x480a580f, 0x4943c857, 0x4807c857, 0x480bc857, + 0x0201f000, 0x000203ab, 0x592c040c, 0x82000500, + 0x0000e000, 0x82000580, 0x00006000, 0x040007ef, + 0x59a8021b, 0x8c000508, 0x040007ec, 0x592c120c, + 0x592c080b, 0x82040500, 0xff000000, 0x80040d80, + 0x80000110, 0x80081540, 0x04000004, 0x4806580b, + 0x0401f883, 0x0401f7e1, 0x42001000, 0x0000001c, + 0x42000800, 0x00000019, 0x42028000, 0x00000031, + 0x0401f7de, 0x80140110, 0x80000040, 0x02020000, + 0x00104c8b, 0x0201f800, 0x00104355, 0x04020002, + 0x1c01f000, 0x49425a07, 0x48065812, 0x480a5813, + 0x0201f000, 0x000203ab, 0x80140110, 0x02000000, + 0x00104c8b, 0x80000040, 0x0402000d, 0x4202e000, + 0x00000001, 0x592c020b, 0x8c000504, 0x02000000, + 0x0002068a, 0x592c0208, 0x82000c80, 0x00001001, + 0x02021000, 0x00104c9b, 0x0401f005, 0x4a033006, + 0x0002068a, 0x0201f000, 0x00020684, 0x592c1014, + 0x82080500, 0xffff0003, 0x02020000, 0x00104c9b, + 0x4202e000, 0x00000002, 0x42000000, 0x0010c35d, + 0x50007000, 0x592c0012, 0x592c0813, 0x48007006, + 0x48047007, 0x492c700a, 0x4978700d, 0x4978700b, + 0x0401f001, 0x4978700c, 0x82080480, 0x00000180, + 0x4803c857, 0x04001007, 0x4800700e, 0x4a007005, + 0x00000180, 0x4a007004, 0x00000060, 0x0401f005, + 0x4978700e, 0x48087005, 0x80081104, 0x48087004, + 0x58380009, 0x48007003, 0x40381000, 0x0201f000, + 0x00020016, 0x4df00000, 0x4203e000, 0x50000000, + 0x0201f800, 0x0010055a, 0x04000003, 0x59980005, + 0x0801f800, 0x5c03e000, 0x1c01f000, 0x0201f800, + 0x0010055a, 0x02000800, 0x0010032d, 0x4a025809, + 0x0010c2fc, 0x42000800, 0x0010c35d, 0x452c0800, + 0x497a580a, 0x497a580b, 0x497a580c, 0x497a580d, + 0x497a580e, 0x4a025808, 0x0002073d, 0x497a580f, + 0x4a025802, 0x00000100, 0x4a025801, 0x00000001, + 0x1c01f000, 0x0401f80c, 0x04000670, 0x4a025a09, + 0x00000001, 0x0201f000, 0x0010a4d8, 0x0401f806, + 0x04000665, 0x4a025a09, 0x00000006, 0x0201f000, + 0x0010a4d8, 0x59a80005, 0x8c00051a, 0x1c01f000, + 0x59a80005, 0x8c00051c, 0x1c01f000, 0x59a8000f, + 0x80080580, 0x04020002, 0x1c01f000, 0x480bc857, + 0x480b500f, 0x497b8830, 0x82080d40, 0x01000000, + 0x48078832, 0x59c40002, 0x8400054c, 0x48038802, + 0x42000800, 0x00000003, 0x0201f000, 0x001061d9, + 0x59c80007, 0x8c000502, 0x0400004f, 0x835c2c80, + 0x00000005, 0x02001000, 0x00105790, 0x59c82817, + 0x4817506c, 0x497b9005, 0x82140500, 0x00e00000, + 0x04020040, 0x82140500, 0x000003ff, 0x82001c00, + 0x00000006, 0x41cc2000, 0x42003000, 0x00006080, + 0x820c0480, 0x00000040, 0x04001006, 0x42001000, + 0x00000040, 0x820c1c80, 0x00000040, 0x0401f003, + 0x400c1000, 0x41781800, 0x54182000, 0x80102000, + 0x80183000, 0x80081040, 0x040207fc, 0x800c19c0, + 0x04000005, 0x59c80005, 0x80000000, 0x48039005, + 0x0401f7ea, 0x82140500, 0x000003ff, 0x800018c4, + 0x8c142d14, 0x04000005, 0x59cc0002, 0x82000500, + 0x00000003, 0x800c1c80, 0x480f505a, 0x82140500, + 0x01f60000, 0x04020010, 0x0201f800, 0x00105795, + 0x04020008, 0x4a039005, 0x00000140, 0x82140500, + 0x0e000000, 0x80000132, 0x0c01f815, 0x1c01f000, + 0x800001c0, 0x0402000b, 0x4a039005, 0x00000140, + 0x0401f00d, 0x4817c857, 0x82140500, 0x00f60000, + 0x04020004, 0x0201f800, 0x00105683, 0x040207eb, + 0x0201f800, 0x001057b9, 0x4a039005, 0x00000140, + 0x0401f03f, 0x4803c856, 0x1c01f000, 0x001051b1, + 0x00105505, 0x001051ab, 0x001051ab, 0x001051ab, + 0x001051ab, 0x001051ab, 0x001051ab, 0x4803c857, + 0x42000000, 0x0010bd14, 0x0201f800, 0x0010ae10, + 0x1c01f000, 0x59cc0002, 0x82000500, 0xff000000, + 0x82000580, 0xfe000000, 0x04020004, 0x0201f800, + 0x0010a824, 0x0401f025, 0x59cc0400, 0x82000d00, + 0x0000ff00, 0x82041500, 0x0000f000, 0x840409c0, + 0x82080580, 0x00002000, 0x04020013, 0x836c0580, + 0x00000001, 0x0402000e, 0x59cc0006, 0x82000500, + 0xff000000, 0x82000580, 0x11000000, 0x02020800, + 0x001003f4, 0x04020011, 0x0201f800, 0x0010331d, + 0x0201f800, 0x001057ee, 0x0401f00c, 0x0401f81f, + 0x0401f00a, 0x82080580, 0x00003000, 0x04020003, + 0x0401faa7, 0x0401f005, 0x82080580, 0x00008000, + 0x04020002, 0x0401fb8e, 0x1c01f000, 0x4817c857, + 0x42000000, 0x0010bd13, 0x0201f800, 0x0010ae10, + 0x836c0580, 0x00000003, 0x0402000b, 0x4c080000, + 0x4c0c0000, 0x42001000, 0x00008048, 0x40141800, + 0x80142120, 0x0201f800, 0x001031f5, 0x5c001800, + 0x5c001000, 0x1c01f000, 0x59cc0002, 0x82000500, + 0xff000000, 0x82001580, 0x01000000, 0x04000006, + 0x82001580, 0x23000000, 0x02020800, 0x001003f4, + 0x04020226, 0x59a8005a, 0x82000480, 0x00000004, + 0x04001222, 0x82040580, 0x00000023, 0x04020052, + 0x59cc0004, 0x4803c857, 0x59cc0006, 0x82000500, + 0xff000000, 0x59cc0801, 0x82040d00, 0x00ffffff, + 0x80040540, 0x4803c857, 0x0201f800, 0x00105616, + 0x02000800, 0x001003f4, 0x04000210, 0x59300c07, + 0x82040580, 0x00000010, 0x0400000f, 0x82040580, + 0x00000011, 0x0400000c, 0x82040580, 0x00000001, + 0x04000009, 0x82040580, 0x00000004, 0x04000006, + 0x82040580, 0x00000008, 0x02020800, 0x001003f4, + 0x040201fe, 0x59300004, 0x82000500, 0x80010000, + 0x04000006, 0x0201f800, 0x001064f2, 0x02020800, + 0x001003f4, 0x040201f5, 0x59cc0a04, 0x48066202, + 0x59cc0006, 0x82000500, 0xffff0000, 0x82000d80, + 0x02000000, 0x04020005, 0x42027000, 0x00000015, + 0x0201f000, 0x00020a34, 0x82000d80, 0x02140000, + 0x040007fa, 0x82000d80, 0x02100000, 0x040007f7, + 0x82000d80, 0x02100000, 0x040007f4, 0x82000d80, + 0x01000000, 0x02020800, 0x001003f4, 0x040201db, + 0x59cc0006, 0x82000500, 0x0000ffff, 0x02020800, + 0x001003f4, 0x040201d5, 0x59a8005a, 0x82000480, + 0x00000008, 0x040011d1, 0x42027000, 0x00000016, + 0x0401f7e4, 0x82040580, 0x00000022, 0x02020800, + 0x001003f4, 0x040201c9, 0x59cc0004, 0x4803c857, + 0x59cc0006, 0x4803c857, 0x59cc0001, 0x4803c857, + 0x59a8005a, 0x800001c0, 0x02000800, 0x001003f4, + 0x040001be, 0x59a80805, 0x8c040d14, 0x0400002f, + 0x0401f9e0, 0x0402002d, 0x0401f9f9, 0x0400002b, + 0x42027000, 0x0000004c, 0x59cc0001, 0x82000500, + 0x00ffffff, 0x0201f800, 0x0010575c, 0x04000008, + 0x42028800, 0x0000ffff, 0x42026800, 0x0010c2b2, + 0x0201f800, 0x001044c5, 0x481a6802, 0x599c0019, + 0x8c000510, 0x0400018f, 0x59a8021b, 0x8c000508, + 0x0400018c, 0x59cc1006, 0x82081500, 0xffff0000, + 0x82081580, 0x03000000, 0x04020186, 0x83641480, + 0x00000010, 0x0400119e, 0x8400054c, 0x4803521b, + 0x59cc1000, 0x82081500, 0x00ffffff, 0x0401feb0, 0x59cc0007, 0x82000500, 0x0000ffff, 0x48038893, - 0x48035012, 0x42000800, 0x00000003, 0x59a8100f, - 0x0201f800, 0x00106134, 0x59cc0006, 0x82000500, - 0x0000ffff, 0x02020800, 0x001003f4, 0x04020150, - 0x42027000, 0x00000017, 0x0401f10b, 0x0201f800, - 0x00104716, 0x040207f5, 0x8c000502, 0x040207f3, - 0x0401f147, 0x82000d80, 0x04000000, 0x04020018, - 0x59cc0006, 0x82000500, 0x0000ffff, 0x02020800, - 0x001003f4, 0x0402013e, 0x0201f800, 0x00104716, - 0x04000004, 0x42027000, 0x0000001d, 0x0401f0f6, - 0x497b5064, 0x42001000, 0x0010eacd, 0x0201f800, - 0x001057cd, 0x59a8021b, 0x84000548, 0x4803521b, - 0x42027000, 0x00000030, 0x0401f0eb, 0x82000d80, - 0x05000000, 0x0402000a, 0x59cc0006, 0x82000500, - 0x0000ffff, 0x02020800, 0x001003f4, 0x04020124, - 0x42027000, 0x00000018, 0x0401f0df, 0x82000d80, - 0x20100000, 0x04020004, 0x42027000, 0x00000019, - 0x0401f0d9, 0x82000d80, 0x21100000, 0x04020004, - 0x42027000, 0x0000001a, 0x0401f0d3, 0x82000d80, - 0x52000000, 0x0402000a, 0x59cc0006, 0x82000500, - 0x0000ffff, 0x02020800, 0x001003f4, 0x0402010c, - 0x42027000, 0x0000001b, 0x0401f0c7, 0x82000d80, - 0x50000000, 0x0402000a, 0x59cc0006, 0x82000500, - 0x0000ffff, 0x02020800, 0x001003f4, 0x04020100, - 0x42027000, 0x0000001c, 0x0401f0bb, 0x82000d80, - 0x13000000, 0x04020004, 0x42027000, 0x00000034, - 0x0401f0b5, 0x82000d80, 0x12000000, 0x0402000a, - 0x59cc0006, 0x82000500, 0x0000ffff, 0x02020800, - 0x001003f4, 0x040200ee, 0x42027000, 0x00000024, - 0x0401f0a9, 0x82000d00, 0xff000000, 0x82040d80, - 0x24000000, 0x04020004, 0x42027000, 0x0000002d, - 0x0401f0a1, 0x82000d00, 0xff000000, 0x82040d80, - 0x53000000, 0x04020004, 0x42027000, 0x0000002a, - 0x0401f099, 0x82000d80, 0x0f000000, 0x04020004, - 0x42027000, 0x00000020, 0x0401f093, 0x82000d80, - 0x61040000, 0x0402004b, 0x4c5c0000, 0x4c600000, - 0x4c640000, 0x4c580000, 0x83ccc400, 0x00000006, - 0x8060b800, 0x50600000, 0x82000500, 0x0000ffff, - 0x82001480, 0x00000401, 0x04021036, 0x82001500, - 0x00000003, 0x04020033, 0x59a8105a, 0x80081480, - 0x04001030, 0x82000480, 0x00000004, 0x8000b104, - 0x8058b1c0, 0x0400002b, 0x505cc800, 0x8264c500, - 0x03000000, 0x8060c130, 0x42000000, 0x0010bbde, - 0x82602580, 0x00000000, 0x04020004, 0x42000000, - 0x0010bbdb, 0x0401f00c, 0x82602580, 0x00000001, - 0x04020004, 0x42000000, 0x0010bbdc, 0x0401f006, - 0x82602580, 0x00000002, 0x04020003, 0x42000000, - 0x0010bbdd, 0x0201f800, 0x0010ad1d, 0x42001000, - 0x00008015, 0x82642500, 0x0000ffff, 0x80641920, - 0x0201f800, 0x001031eb, 0x805cb800, 0x8058b040, - 0x040207de, 0x5c00b000, 0x5c00c800, 0x5c00c000, - 0x5c00b800, 0x42027000, 0x00000023, 0x0401f04e, + 0x48035012, 0x0401f177, 0x59cc0006, 0x82000500, + 0xffff0000, 0x82000d80, 0x03000000, 0x04020029, + 0x59a8021b, 0x8c000508, 0x04000020, 0x8400054c, + 0x4803521b, 0x59cc0800, 0x82040d00, 0x00ffffff, + 0x4807500f, 0x497b8830, 0x84040d70, 0x48078832, + 0x59c40802, 0x84040d4c, 0x48078802, 0x59cc0007, + 0x82000500, 0x0000ffff, 0x48038893, 0x48035012, + 0x42000800, 0x00000003, 0x59a8100f, 0x0201f800, + 0x001061d9, 0x59cc0006, 0x82000500, 0x0000ffff, + 0x02020800, 0x001003f4, 0x04020168, 0x42027000, + 0x00000017, 0x0401f10b, 0x0201f800, 0x00104755, + 0x040207f5, 0x8c000502, 0x040207f3, 0x0401f15f, + 0x82000d80, 0x04000000, 0x04020018, 0x59cc0006, + 0x82000500, 0x0000ffff, 0x02020800, 0x001003f4, + 0x04020156, 0x0201f800, 0x00104755, 0x04000002, + 0x0401f0f6, 0x497b5064, 0x42001000, 0x0010ebc8, + 0x0201f800, 0x00105872, 0x0201f800, 0x001044cf, + 0x59a8021b, 0x84000548, 0x4803521b, 0x42027000, + 0x00000030, 0x0401f0eb, 0x82000d80, 0x05000000, + 0x0402000a, 0x59cc0006, 0x82000500, 0x0000ffff, + 0x02020800, 0x001003f4, 0x0402013c, 0x42027000, + 0x00000018, 0x0401f0df, 0x82000d80, 0x20100000, + 0x04020004, 0x42027000, 0x00000019, 0x0401f0d9, + 0x82000d80, 0x21100000, 0x04020004, 0x42027000, + 0x0000001a, 0x0401f0d3, 0x82000d80, 0x52000000, + 0x0402000a, 0x59cc0006, 0x82000500, 0x0000ffff, + 0x02020800, 0x001003f4, 0x04020124, 0x42027000, + 0x0000001b, 0x0401f0c7, 0x82000d80, 0x50000000, + 0x0402000a, 0x59cc0006, 0x82000500, 0x0000ffff, + 0x02020800, 0x001003f4, 0x04020118, 0x42027000, + 0x0000001c, 0x0401f0bb, 0x82000d80, 0x13000000, + 0x04020004, 0x42027000, 0x00000034, 0x0401f0b5, + 0x82000d80, 0x12000000, 0x0402000a, 0x59cc0006, + 0x82000500, 0x0000ffff, 0x02020800, 0x001003f4, + 0x04020106, 0x42027000, 0x00000024, 0x0401f0a9, + 0x82000d00, 0xff000000, 0x82040d80, 0x24000000, + 0x04020004, 0x42027000, 0x0000002d, 0x0401f0a1, + 0x82000d00, 0xff000000, 0x82040d80, 0x53000000, + 0x04020004, 0x42027000, 0x0000002a, 0x0401f099, + 0x82000d80, 0x0f000000, 0x04020004, 0x42027000, + 0x00000020, 0x0401f093, 0x82000d80, 0x61040000, + 0x0402004b, 0x4c5c0000, 0x4c600000, 0x4c640000, + 0x4c580000, 0x83ccc400, 0x00000006, 0x8060b800, + 0x50600000, 0x82000500, 0x0000ffff, 0x82001480, + 0x00000401, 0x04021036, 0x82001500, 0x00000003, + 0x04020033, 0x59a8105a, 0x80081480, 0x04001030, + 0x82000480, 0x00000004, 0x8000b104, 0x8058b1c0, + 0x0400002b, 0x505cc800, 0x8264c500, 0x03000000, + 0x8060c130, 0x42000000, 0x0010bcde, 0x82602580, + 0x00000000, 0x04020004, 0x42000000, 0x0010bcdb, + 0x0401f00c, 0x82602580, 0x00000001, 0x04020004, + 0x42000000, 0x0010bcdc, 0x0401f006, 0x82602580, + 0x00000002, 0x04020003, 0x42000000, 0x0010bcdd, + 0x0201f800, 0x0010ae10, 0x42001000, 0x00008015, + 0x82642500, 0x0000ffff, 0x80641920, 0x0201f800, + 0x001031f5, 0x805cb800, 0x8058b040, 0x040207de, 0x5c00b000, 0x5c00c800, 0x5c00c000, 0x5c00b800, - 0x42000000, 0x0010bc11, 0x0201f000, 0x0010ad1d, - 0x82000d80, 0x60000000, 0x04020004, 0x42027000, - 0x0000003f, 0x0401f040, 0x82000d80, 0x54000000, - 0x04020008, 0x0401fb43, 0x02020800, 0x001003f4, - 0x0402007b, 0x42027000, 0x00000046, 0x0401f036, - 0x82000d80, 0x55000000, 0x04020009, 0x0401fb61, - 0x04020004, 0x42027000, 0x00000041, 0x0401f02e, - 0x42027000, 0x00000042, 0x0401f02b, 0x82000d80, - 0x78000000, 0x04020004, 0x42027000, 0x00000045, - 0x0401f025, 0x82000d80, 0x10000000, 0x04020004, - 0x42027000, 0x0000004e, 0x0401f01f, 0x82000d80, - 0x63000000, 0x04020004, 0x42027000, 0x0000004a, - 0x0401f019, 0x82000d00, 0xff000000, 0x82040d80, - 0x56000000, 0x04020004, 0x42027000, 0x0000004f, - 0x0401f011, 0x82000d00, 0xff000000, 0x82040d80, - 0x57000000, 0x04020004, 0x42027000, 0x00000050, - 0x0401f009, 0x82000d80, 0x7d000000, 0x04020004, - 0x42027000, 0x00000056, 0x0401f003, 0x42027000, - 0x0000001d, 0x59cc3800, 0x821c3d00, 0x00ffffff, - 0x821c0580, 0x00fffffe, 0x59cc0001, 0x04020005, - 0x40003000, 0x42028800, 0x000007fe, 0x0401f005, - 0x0401f8ec, 0x02020800, 0x001003f4, 0x04020034, - 0x0201f800, 0x00103dd0, 0x02020800, 0x001003f4, - 0x0402002f, 0x83380580, 0x00000046, 0x04020006, - 0x59a8000f, 0x80180580, 0x02000800, 0x001003f4, - 0x04000027, 0x59340200, 0x8c000514, 0x0400000f, - 0x83380580, 0x00000030, 0x0400000c, 0x83380580, - 0x0000003f, 0x04000009, 0x83380580, 0x00000034, - 0x04000006, 0x83380580, 0x00000024, 0x04000003, - 0x42027000, 0x0000004c, 0x0201f800, 0x001070f5, - 0x04000018, 0x4936600a, 0x4a026407, 0x00000004, - 0x59cc0c04, 0x48066202, 0x83380580, 0x0000004c, - 0x04020009, 0x4a026407, 0x00000011, 0x813669c0, + 0x42027000, 0x00000023, 0x0401f04e, 0x5c00b000, + 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x42000000, + 0x0010bd11, 0x0201f000, 0x0010ae10, 0x82000d80, + 0x60000000, 0x04020004, 0x42027000, 0x0000003f, + 0x0401f040, 0x82000d80, 0x54000000, 0x04020008, + 0x0401fb80, 0x02020800, 0x001003f4, 0x04020093, + 0x42027000, 0x00000046, 0x0401f036, 0x82000d80, + 0x55000000, 0x04020009, 0x0401fb9e, 0x04020004, + 0x42027000, 0x00000041, 0x0401f02e, 0x42027000, + 0x00000042, 0x0401f02b, 0x82000d80, 0x78000000, + 0x04020004, 0x42027000, 0x00000045, 0x0401f025, + 0x82000d80, 0x10000000, 0x04020004, 0x42027000, + 0x0000004e, 0x0401f01f, 0x82000d80, 0x63000000, + 0x04020004, 0x42027000, 0x0000004a, 0x0401f019, + 0x82000d00, 0xff000000, 0x82040d80, 0x56000000, + 0x04020004, 0x42027000, 0x0000004f, 0x0401f011, + 0x82000d00, 0xff000000, 0x82040d80, 0x57000000, + 0x04020004, 0x42027000, 0x00000050, 0x0401f009, + 0x82000d80, 0x7d000000, 0x04020004, 0x42027000, + 0x00000056, 0x0401f003, 0x42027000, 0x0000001d, + 0x59cc3800, 0x821c3d00, 0x00ffffff, 0x821c0580, + 0x00fffffe, 0x59cc0001, 0x04020005, 0x40003000, + 0x42028800, 0x000007fe, 0x0401f01c, 0x0401f929, + 0x02020800, 0x001003f4, 0x0402004c, 0x83440480, + 0x000007f0, 0x04001001, 0x0201f800, 0x00103314, + 0x04000012, 0x4c180000, 0x0201f800, 0x00020319, + 0x5c003000, 0x04000012, 0x4c180000, 0x0401f865, + 0x5c003000, 0x04020009, 0x0201f800, 0x001044c5, + 0x42026800, 0x0010c2b2, 0x481a6802, 0x42028800, + 0x0000ffff, 0x0401f006, 0x0201f800, 0x00103de6, + 0x02020800, 0x001003f4, 0x04020030, 0x83380580, + 0x00000046, 0x04020006, 0x59a8000f, 0x80180580, + 0x02000800, 0x001003f4, 0x04000028, 0x59340200, + 0x8c000514, 0x0400000f, 0x83380580, 0x00000030, + 0x0400000c, 0x83380580, 0x0000003f, 0x04000009, + 0x83380580, 0x00000034, 0x04000006, 0x83380580, + 0x00000024, 0x04000003, 0x42027000, 0x0000004c, + 0x0201f800, 0x00107188, 0x04000019, 0x4936600a, + 0x4a026407, 0x00000004, 0x83340580, 0x0010c2b2, 0x04020005, 0x59cc0001, 0x82000500, 0x00ffffff, - 0x4802601f, 0x0201f000, 0x00020a34, 0x598800b7, - 0x4803c857, 0x80000000, 0x480310b7, 0x1c01f000, - 0x42001000, 0x00008049, 0x59cc1806, 0x800c1930, - 0x0201f800, 0x001031eb, 0x0201f800, 0x001070ff, - 0x02000800, 0x001003f4, 0x040007f1, 0x4936600a, - 0x4a026407, 0x00000004, 0x59cc0c04, 0x48066202, - 0x4a026403, 0x00000009, 0x4a02641b, 0x00000009, - 0x4a02621b, 0x00002900, 0x4a026203, 0x00000001, - 0x0201f000, 0x00105fe8, 0x59a8021b, 0x4803c857, - 0x8c000508, 0x04000013, 0x599c0019, 0x8c000510, - 0x04020010, 0x59cc0006, 0x82000500, 0xff000000, - 0x82000d80, 0x03000000, 0x0400000c, 0x82000d80, - 0x20000000, 0x04000009, 0x82000d80, 0x05000000, - 0x04000006, 0x82000d80, 0x21000000, 0x04000003, - 0x80000580, 0x1c01f000, 0x82000540, 0x00000001, - 0x0401f7fd, 0x59cc2006, 0x82102500, 0xff000000, - 0x9c1021c0, 0x0401f807, 0x820c1c00, 0x0010b839, - 0x500c1800, 0x800c0500, 0x4803c857, 0x1c01f000, - 0x40100800, 0x41781800, 0x82040480, 0x00000020, - 0x04001004, 0x800c1800, 0x40000800, 0x0401f7fb, - 0x82040500, 0x0000000f, 0x82000400, 0x0010ae3e, - 0x50000000, 0x8c040d08, 0x04000002, 0x900001c0, - 0x1c01f000, 0x4803c856, 0x0401fae1, 0x0402000a, - 0x0201f800, 0x00101b05, 0x04020007, 0x59cc0002, - 0x82000500, 0xff000000, 0x82000d80, 0x08000000, - 0x04000802, 0x1c01f000, 0x4803c856, 0x59cc0400, - 0x82000d00, 0x0000ff00, 0x840409c0, 0x82040580, - 0x00000033, 0x04020027, 0x0401f964, 0x04000044, - 0x59cc0a04, 0x48066202, 0x59a8005a, 0x82000480, - 0x00000004, 0x0400103e, 0x59cc0006, 0x4803c857, - 0x82000500, 0xffff0000, 0x82000d80, 0x02000000, - 0x04020009, 0x59cc0006, 0x82000500, 0x0000ffff, - 0x04020033, 0x42027000, 0x00000015, 0x0201f000, - 0x00020a34, 0x82000d80, 0x01000000, 0x0402002c, - 0x59cc0006, 0x82000500, 0x0000ffff, 0x04020028, - 0x59a8005a, 0x82000480, 0x00000008, 0x04001024, - 0x42027000, 0x00000016, 0x0201f000, 0x00020a34, - 0x82040580, 0x00000032, 0x0402001d, 0x59cc0006, - 0x82000500, 0xffff0000, 0x82000d80, 0x14000000, - 0x04020017, 0x59a8005a, 0x82000480, 0x00000010, - 0x04001013, 0x42027000, 0x00000038, 0x59cc0001, - 0x0401f813, 0x0402000e, 0x0201f800, 0x00103dcb, - 0x0402000b, 0x0201f800, 0x001070f5, 0x04000008, - 0x4936600a, 0x4a026407, 0x00000004, 0x59cc0c04, + 0x4802601f, 0x59cc0c04, 0x48066202, 0x83380580, + 0x0000004c, 0x04020003, 0x4a026407, 0x00000011, + 0x0201f000, 0x00020a34, 0x598800b7, 0x4803c857, + 0x80000000, 0x480310b7, 0x1c01f000, 0x42001000, + 0x00008049, 0x59cc1806, 0x800c1930, 0x0201f800, + 0x001031f5, 0x0201f800, 0x00107192, 0x02000800, + 0x001003f4, 0x040007f1, 0x4936600a, 0x83340580, + 0x0010c2b2, 0x04020005, 0x59cc0001, 0x82000500, + 0x00ffffff, 0x4802601f, 0x4a026407, 0x00000004, + 0x59cc0c04, 0x48066202, 0x4a026403, 0x00000009, + 0x4a02641b, 0x00000009, 0x4a02621b, 0x00002900, + 0x4a026203, 0x00000001, 0x0201f000, 0x0010608d, + 0x59a8021b, 0x4803c857, 0x8c000508, 0x04000013, + 0x599c0019, 0x8c000510, 0x04020010, 0x59cc0006, + 0x82000500, 0xff000000, 0x82000d80, 0x03000000, + 0x0400000c, 0x82000d80, 0x20000000, 0x04000009, + 0x82000d80, 0x05000000, 0x04000006, 0x82000d80, + 0x21000000, 0x04000003, 0x80000580, 0x1c01f000, + 0x82000540, 0x00000001, 0x0401f7fd, 0x59cc2006, + 0x82102500, 0xff000000, 0x9c1021c0, 0x0401f807, + 0x820c1c00, 0x0010b939, 0x500c1800, 0x800c0500, + 0x4803c857, 0x1c01f000, 0x40100800, 0x41781800, + 0x82040480, 0x00000020, 0x04001004, 0x800c1800, + 0x40000800, 0x0401f7fb, 0x82040500, 0x0000000f, + 0x82000400, 0x0010af34, 0x50000000, 0x8c040d08, + 0x04000002, 0x900001c0, 0x1c01f000, 0x4803c856, + 0x0401faff, 0x0402000a, 0x0201f800, 0x00101b0a, + 0x04020007, 0x59cc0002, 0x82000500, 0xff000000, + 0x82000d80, 0x08000000, 0x04000802, 0x1c01f000, + 0x4803c856, 0x59cc0400, 0x82000d00, 0x0000ff00, + 0x840409c0, 0x82040580, 0x00000033, 0x04020027, + 0x0401f982, 0x04000062, 0x59cc0a04, 0x48066202, + 0x59a8005a, 0x82000480, 0x00000004, 0x0400105c, + 0x59cc0006, 0x4803c857, 0x82000500, 0xffff0000, + 0x82000d80, 0x02000000, 0x04020009, 0x59cc0006, + 0x82000500, 0x0000ffff, 0x04020051, 0x42027000, + 0x00000015, 0x0201f000, 0x00020a34, 0x82000d80, + 0x01000000, 0x0402004a, 0x59cc0006, 0x82000500, + 0x0000ffff, 0x04020046, 0x59a8005a, 0x82000480, + 0x00000008, 0x04001042, 0x42027000, 0x00000016, + 0x0201f000, 0x00020a34, 0x82040580, 0x00000032, + 0x0402003b, 0x59cc0006, 0x82000500, 0xffff0000, + 0x82000d80, 0x14000000, 0x04020035, 0x59a8005a, + 0x82000480, 0x00000010, 0x04001031, 0x42027000, + 0x00000038, 0x59cc0001, 0x0401f831, 0x0402002c, + 0x83440480, 0x000007f0, 0x04001001, 0x0201f800, + 0x00103314, 0x04000012, 0x4c180000, 0x0201f800, + 0x00020319, 0x5c003000, 0x04000010, 0x4c180000, + 0x0401ff70, 0x5c003000, 0x04020009, 0x0201f800, + 0x001044c5, 0x42026800, 0x0010c2b2, 0x481a6802, + 0x42028800, 0x0000ffff, 0x0401f004, 0x0201f800, + 0x00103de1, 0x04020012, 0x0201f800, 0x00107188, + 0x0400000f, 0x4936600a, 0x83340580, 0x0010c2b2, + 0x04020005, 0x59cc0001, 0x82000500, 0x00ffffff, + 0x4802601f, 0x4a026407, 0x00000004, 0x59cc0c04, 0x48066202, 0x0201f000, 0x00020a34, 0x42000000, - 0x0010bc11, 0x0201f000, 0x0010ad1d, 0x4803c857, + 0x0010bd11, 0x0201f000, 0x0010ae10, 0x4803c857, 0x4000d000, 0x82003500, 0x00ffffff, 0x0201f800, - 0x0010f02b, 0x40c40000, 0x82000580, 0x00000001, + 0x0010f133, 0x40c40000, 0x82000580, 0x00000001, 0x1c01f000, 0x59a8021b, 0x8c00050e, 0x04000003, 0x8c000502, 0x04000006, 0x59cc0c00, 0x80040910, 0x82040500, 0x0000000f, 0x0c01f002, 0x1c01f000, - 0x001054b4, 0x001054b4, 0x001054b4, 0x001055b8, - 0x001054b4, 0x001054b6, 0x001054db, 0x001054de, - 0x001054b4, 0x001054b4, 0x001054b4, 0x001054b4, - 0x001054b4, 0x001054b4, 0x001054b4, 0x001054b4, + 0x00105520, 0x00105520, 0x00105520, 0x00105624, + 0x00105520, 0x00105522, 0x00105547, 0x0010554a, + 0x00105520, 0x00105520, 0x00105520, 0x00105520, + 0x00105520, 0x00105520, 0x00105520, 0x00105520, 0x4803c856, 0x1c01f000, 0x0401f8f4, 0x0400001e, 0x59a8005a, 0x82000480, 0x0000000c, 0x0400101a, 0x59300407, 0x82000580, 0x00000003, 0x04020016, @@ -5464,7 +5486,7 @@ static const uint32_t isp_2400_risc_code[] = { 0x0000ffff, 0x04000003, 0x80040580, 0x04020006, 0x48066202, 0x42027000, 0x00000046, 0x0201f000, 0x00020a34, 0x59cc0004, 0x4803c857, 0x42000000, - 0x0010bc12, 0x0201f000, 0x0010ad1d, 0x59cc0004, + 0x0010bd12, 0x0201f000, 0x0010ae10, 0x59cc0004, 0x4803c857, 0x1c01f000, 0x0401f8cc, 0x0400001a, 0x59a8005a, 0x82000480, 0x0000000c, 0x04001016, 0x59300407, 0x82000580, 0x00000003, 0x04020012, @@ -5473,21 +5495,21 @@ static const uint32_t isp_2400_risc_code[] = { 0x00ffffff, 0x80040580, 0x04020007, 0x59cc0a04, 0x48066202, 0x42027000, 0x00000045, 0x0201f000, 0x00020a34, 0x59cc0004, 0x4803c857, 0x42000000, - 0x0010bc12, 0x0201f000, 0x0010ad1d, 0x59cc0004, + 0x0010bd12, 0x0201f000, 0x0010ae10, 0x59cc0004, 0x4803c857, 0x59cc0000, 0x82000500, 0xff000000, 0x59cc1001, 0x82081500, 0x00ffffff, 0x80080540, 0x4803c857, 0x4817c857, 0x0401fa09, 0x02020800, - 0x001003f4, 0x04020016, 0x0201f800, 0x00101b05, + 0x001003f4, 0x04020016, 0x0201f800, 0x00101b0a, 0x02020800, 0x001003f4, 0x04020011, 0x59cc0002, 0x82000500, 0xff000000, 0x82000580, 0x00000000, 0x02020800, 0x001003f4, 0x04020009, 0x82040500, 0x0000000f, 0x82000c80, 0x00000006, 0x02021800, 0x001003f4, 0x04021002, 0x0c01f003, 0x4803c856, - 0x1c01f000, 0x0010552b, 0x0010552d, 0x0010552b, - 0x0010552b, 0x00105581, 0x00105590, 0x4803c856, + 0x1c01f000, 0x00105597, 0x00105599, 0x00105597, + 0x00105597, 0x001055ed, 0x001055fc, 0x4803c856, 0x1c01f000, 0x59a8005a, 0x800001c0, 0x02020800, 0x001003f4, 0x040207fa, 0x59cc0802, 0x4807c856, - 0x8c040d2e, 0x0402001b, 0x42026000, 0x0010f53c, + 0x8c040d2e, 0x0402001b, 0x42026000, 0x0010f64c, 0x59cc0001, 0x0401ff56, 0x0402000d, 0x0201f800, 0x00020319, 0x0402000a, 0x4a026407, 0x00000005, 0x4a026203, 0x00000008, 0x4936600a, 0x42027000, @@ -5495,15 +5517,15 @@ static const uint32_t isp_2400_risc_code[] = { 0x42028800, 0x0000ffff, 0x417a6800, 0x59cc0001, 0x82000500, 0x00ffffff, 0x4802601f, 0x0401f7ef, 0x59cc0001, 0x4803c857, 0x0401ff3d, 0x02020800, - 0x001003f4, 0x040207d6, 0x0201f800, 0x00103dcb, + 0x001003f4, 0x040207d6, 0x0201f800, 0x00103de1, 0x02020800, 0x001003f4, 0x040207d1, 0x59cc0005, 0x8c000500, 0x04020006, 0x59340200, 0x8c00050e, 0x02020800, 0x001003f4, 0x040207c9, 0x0201f800, - 0x00104178, 0x04020010, 0x0401f844, 0x02000800, - 0x001003f4, 0x040007c2, 0x42026000, 0x0010f53c, + 0x00104194, 0x04020010, 0x0401f844, 0x02000800, + 0x001003f4, 0x040007c2, 0x42026000, 0x0010f64c, 0x4936600a, 0x4a026407, 0x00000002, 0x4a026203, 0x00000008, 0x42027000, 0x00000088, 0x0201f000, - 0x00020a34, 0x0201f800, 0x001070f5, 0x040007b4, + 0x00020a34, 0x0201f800, 0x00107188, 0x040007b4, 0x4936600a, 0x4a026407, 0x00000004, 0x59cc0c04, 0x48066202, 0x42027000, 0x00000001, 0x0201f000, 0x00020a34, 0x59cc0802, 0x8c040d2e, 0x0400000b, @@ -5515,11 +5537,11 @@ static const uint32_t isp_2400_risc_code[] = { 0x0400000b, 0x0401f811, 0x04000009, 0x0401f982, 0x04020007, 0x59cc0a04, 0x48066202, 0x42027000, 0x0000008a, 0x0201f000, 0x00020a34, 0x4933c857, - 0x42000000, 0x0010bc11, 0x0201f000, 0x0010ad1d, + 0x42000000, 0x0010bd11, 0x0201f000, 0x0010ae10, 0x59cc0a04, 0x0401f002, 0x59cc0c04, 0x59a8000d, 0x59a8104f, 0x80080400, 0x80040480, 0x04021007, 0x800400c4, 0x800408ca, 0x80040c00, 0x82066400, - 0x0010f584, 0x1c01f000, 0x80000580, 0x0401f7fe, + 0x0010f694, 0x1c01f000, 0x80000580, 0x0401f7fe, 0x59cc0802, 0x8c040d2e, 0x04020019, 0x0401ffed, 0x04000017, 0x59300407, 0x82000580, 0x00000006, 0x04020013, 0x59cc0001, 0x82000500, 0x00ffffff, @@ -5527,22 +5549,22 @@ static const uint32_t isp_2400_risc_code[] = { 0x82040d00, 0x00ffffff, 0x80040580, 0x04020008, 0x59a8005a, 0x800001c0, 0x04020005, 0x42027000, 0x00000051, 0x0201f000, 0x00020a34, 0x59cc0004, - 0x4803c857, 0x42000000, 0x0010bc12, 0x0201f000, - 0x0010ad1d, 0x4803c856, 0x42003000, 0x00000105, + 0x4803c857, 0x42000000, 0x0010bd12, 0x0201f000, + 0x0010ae10, 0x4803c856, 0x42003000, 0x00000105, 0x0401f001, 0x481bc857, 0x4c5c0000, 0x4c600000, 0x4c640000, 0x41ccc800, 0x4014b800, 0x4018c000, 0x0401f805, 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x1c01f000, 0x4803c856, 0x4c580000, 0x58640400, 0x82000500, 0x0000f000, 0x82000580, 0x0000c000, - 0x04000022, 0x0201f800, 0x001070f5, 0x0400001f, + 0x04000022, 0x0201f800, 0x00107188, 0x0400001f, 0x58640001, 0x0401fe9a, 0x0402001e, 0x0201f800, - 0x00103dcb, 0x0402001b, 0x4936600a, 0x0201f800, + 0x00103de1, 0x0402001b, 0x4936600a, 0x0201f800, 0x0010056f, 0x04000017, 0x492e6018, 0x497a5800, 0x497a5a05, 0x485e5c05, 0x832cac00, 0x00000006, 0x4200b000, 0x00000007, 0x4064a000, 0x0201f800, - 0x0010adef, 0x4862641b, 0x4a026403, 0x0000003e, + 0x0010aee2, 0x4862641b, 0x4a026403, 0x0000003e, 0x4a026407, 0x00000001, 0x4a026203, 0x00000001, - 0x0201f800, 0x00105fe8, 0x5c00b000, 0x1c01f000, + 0x0201f800, 0x0010608d, 0x5c00b000, 0x1c01f000, 0x0201f800, 0x00020a10, 0x0401f7fc, 0x4803c856, 0x59cc0400, 0x82000d00, 0x0000ff00, 0x82040500, 0x0000f000, 0x840409c0, 0x82000580, 0x00002000, @@ -5555,8 +5577,8 @@ static const uint32_t isp_2400_risc_code[] = { 0x04000055, 0x82000d80, 0x03000000, 0x0402001b, 0x59a80a1b, 0x8c040d02, 0x0402004f, 0x8c040d08, 0x0402004d, 0x82000d80, 0x03000000, 0x04020004, - 0x0201f800, 0x00104716, 0x04000047, 0x0201f800, - 0x001040cb, 0x04000047, 0x59a80018, 0x800000d0, + 0x0201f800, 0x00104755, 0x04000047, 0x0201f800, + 0x001040e5, 0x04000047, 0x59a80018, 0x800000d0, 0x59a8080f, 0x82040d00, 0x000000ff, 0x80040540, 0x59cc0800, 0x82040d00, 0x00ffffff, 0x80040580, 0x04020018, 0x0401f038, 0x59c40802, 0x8c040d0c, @@ -5567,8 +5589,8 @@ static const uint32_t isp_2400_risc_code[] = { 0x59300c03, 0x82040580, 0x00000002, 0x04000022, 0x59a80073, 0x8c00053e, 0x0400001d, 0x59cc0800, 0x82040d00, 0x00ffffff, 0x82040580, 0x0000fc0e, - 0x04000019, 0x4c040000, 0x42000000, 0x0010bcaa, - 0x0201f800, 0x0010ad1d, 0x0201f800, 0x000209ee, + 0x04000019, 0x4c040000, 0x42000000, 0x0010bdaa, + 0x0201f800, 0x0010ae10, 0x0201f800, 0x000209ee, 0x5c000800, 0x0400000e, 0x59aa6874, 0x4936600a, 0x4a026407, 0x00000012, 0x42027000, 0x000000d2, 0x48066019, 0x4a02601a, 0x00000000, 0x4a02601b, @@ -5583,9 +5605,9 @@ static const uint32_t isp_2400_risc_code[] = { 0x9c5cb9c0, 0x825cbd00, 0x00000007, 0x8c5cbd00, 0x0400000a, 0x4200b000, 0x00000002, 0x83a81c00, 0x00000002, 0x83cc1400, 0x0000000d, 0x0201f800, - 0x00107d52, 0x04020010, 0x8c5cbd02, 0x0400000a, + 0x00107df9, 0x04020010, 0x8c5cbd02, 0x0400000a, 0x4200b000, 0x00000002, 0x83a81c00, 0x00000000, - 0x83cc1400, 0x0000000f, 0x0201f800, 0x00107d52, + 0x83cc1400, 0x0000000f, 0x0201f800, 0x00107df9, 0x04020005, 0x8c5cbd04, 0x04000003, 0x82000540, 0x00000001, 0x5c00b000, 0x5c00b800, 0x1c01f000, 0x4803c856, 0x4c5c0000, 0x4c580000, 0x59a8005a, @@ -5593,9 +5615,9 @@ static const uint32_t isp_2400_risc_code[] = { 0x9c5cb9c0, 0x825cbd00, 0x00000007, 0x8c5cbd00, 0x0400000a, 0x4200b000, 0x00000002, 0x83a81c00, 0x00000002, 0x83cc1400, 0x00000009, 0x0201f800, - 0x00107d52, 0x04020010, 0x8c5cbd02, 0x0400000a, + 0x00107df9, 0x04020010, 0x8c5cbd02, 0x0400000a, 0x4200b000, 0x00000002, 0x83a81c00, 0x00000000, - 0x83cc1400, 0x0000000b, 0x0201f800, 0x00107d52, + 0x83cc1400, 0x0000000b, 0x0201f800, 0x00107df9, 0x04020005, 0x8c5cbd04, 0x04000003, 0x82000540, 0x00000001, 0x5c00b000, 0x5c00b800, 0x1c01f000, 0x4803c857, 0x4c580000, 0x40003000, 0x42002000, @@ -5612,2199 +5634,2213 @@ static const uint32_t isp_2400_risc_code[] = { 0x0401f7fd, 0x59300c07, 0x82040580, 0x00000002, 0x04000003, 0x82040580, 0x00000005, 0x1c01f000, 0x59c80000, 0x84000558, 0x84000512, 0x48039000, - 0x1c01f000, 0x4a032824, 0x000003e8, 0x4a032802, - 0x0010f584, 0x4a032800, 0x00000000, 0x4a032808, - 0x0010663d, 0x42000000, 0x00000005, 0x83947c00, - 0x00000009, 0x49787801, 0x4a007804, 0x00106500, - 0x823c7c00, 0x00000005, 0x80000040, 0x040207fa, - 0x4a032823, 0xffff0000, 0x4201d000, 0x00000064, - 0x0401fa0f, 0x4201d000, 0x000186a0, 0x0401f21e, - 0x00000000, 0x00000005, 0x0000000a, 0x0000000f, - 0x00000014, 0x4d300000, 0x4d2c0000, 0x4d340000, - 0x4d400000, 0x4cfc0000, 0x4d380000, 0x4d3c0000, - 0x4d440000, 0x4d4c0000, 0x4d480000, 0x4c5c0000, - 0x4c600000, 0x4c640000, 0x4cc80000, 0x4ccc0000, - 0x0201f800, 0x00020814, 0x5c019800, 0x5c019000, - 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x5c029000, - 0x5c029800, 0x5c028800, 0x5c027800, 0x5c027000, - 0x5c01f800, 0x5c028000, 0x5c026800, 0x5c025800, - 0x5c026000, 0x1c01f000, 0x59940031, 0x59940832, - 0x80040480, 0x48032832, 0x04001002, 0x04020034, - 0x59bc00e4, 0x8c000530, 0x04000009, 0x4a030000, - 0x00000000, 0x4803c856, 0x4a0378e4, 0x02000000, - 0x4a032832, 0x000004b0, 0x0401f029, 0x42000800, - 0x00000100, 0x80040840, 0x040007f5, 0x0201f800, - 0x0010ae33, 0x040007fc, 0x0201f800, 0x0010610d, - 0x4df00000, 0x4d180000, 0x42023000, 0x00000005, - 0x0201f800, 0x00100d87, 0x5c023000, 0x0201f800, - 0x00100636, 0x42000800, 0x00007a00, 0x58040015, - 0x82000500, 0xffff8fff, 0x59a81075, 0x80080540, - 0x48000815, 0x4a030000, 0x00000000, 0x497b2832, - 0x4a0378e4, 0x02800000, 0x0201f800, 0x00100de5, - 0x5c03e000, 0x02000800, 0x001060fa, 0x42000000, - 0x0010bcb0, 0x0201f800, 0x0010ad1d, 0x1c01f000, - 0x59940004, 0x80000540, 0x0402000a, 0x5994002f, - 0x80040400, 0x02001800, 0x0010032d, 0x48032804, - 0x480b2805, 0x4a032803, 0x0000000a, 0x80000580, - 0x1c01f000, 0x59940029, 0x80000540, 0x0402000a, + 0x1c01f000, 0x82140500, 0x0000f000, 0x04000006, + 0x82000c80, 0x00002000, 0x0402100a, 0x80000580, + 0x1c01f000, 0x59cc0400, 0x82000500, 0x0000ff00, + 0x82000580, 0x00008100, 0x040007fa, 0x0401f014, + 0x4817c857, 0x82140500, 0x000003ff, 0x04020007, + 0x59cc0400, 0x82000500, 0x0000ff00, 0x82000580, + 0x00008100, 0x0402000a, 0x42000000, 0x0010bd77, + 0x0201f800, 0x0010ae10, 0x0401fe93, 0x4803c856, + 0x82000540, 0x00000001, 0x0401f7e6, 0x41780000, + 0x0401f7e4, 0x0201f800, 0x00104755, 0x04000010, + 0x59c400a4, 0x4803c857, 0x82000500, 0x0000000f, + 0x82000580, 0x0000000a, 0x04020009, 0x497b505a, + 0x59c400a3, 0x82000540, 0x00080000, 0x480388a3, + 0x82000500, 0xfff7ffff, 0x480388a3, 0x4817c856, + 0x0201f000, 0x0010ad55, 0x4a032824, 0x000003e8, + 0x4a032802, 0x0010f694, 0x4a032800, 0x00000000, + 0x4a032808, 0x001066e2, 0x42000000, 0x00000005, + 0x83947c00, 0x00000009, 0x49787801, 0x4a007804, + 0x001065a5, 0x823c7c00, 0x00000005, 0x80000040, + 0x040207fa, 0x4a032823, 0xffff0000, 0x4201d000, + 0x00000064, 0x0401fa0f, 0x4201d000, 0x000186a0, + 0x0401f21e, 0x00000000, 0x00000005, 0x0000000a, + 0x0000000f, 0x00000014, 0x4d300000, 0x4d2c0000, + 0x4d340000, 0x4d400000, 0x4cfc0000, 0x4d380000, + 0x4d3c0000, 0x4d440000, 0x4d4c0000, 0x4d480000, + 0x4c5c0000, 0x4c600000, 0x4c640000, 0x4cc80000, + 0x4ccc0000, 0x0201f800, 0x00020814, 0x5c019800, + 0x5c019000, 0x5c00c800, 0x5c00c000, 0x5c00b800, + 0x5c029000, 0x5c029800, 0x5c028800, 0x5c027800, + 0x5c027000, 0x5c01f800, 0x5c028000, 0x5c026800, + 0x5c025800, 0x5c026000, 0x1c01f000, 0x59940031, + 0x59940832, 0x80040480, 0x48032832, 0x04001002, + 0x04020034, 0x59bc00e4, 0x8c000530, 0x04000009, + 0x4a030000, 0x00000000, 0x4803c856, 0x4a0378e4, + 0x02000000, 0x4a032832, 0x000004b0, 0x0401f029, + 0x42000800, 0x00000100, 0x80040840, 0x040007f5, + 0x0201f800, 0x0010af26, 0x040007fc, 0x0201f800, + 0x001061b2, 0x4df00000, 0x4d180000, 0x42023000, + 0x00000005, 0x0201f800, 0x00100d88, 0x5c023000, + 0x0201f800, 0x00100636, 0x42000800, 0x00007a00, + 0x58040015, 0x82000500, 0xffff8fff, 0x59a81075, + 0x80080540, 0x48000815, 0x4a030000, 0x00000000, + 0x497b2832, 0x4a0378e4, 0x02800000, 0x0201f800, + 0x00100de6, 0x5c03e000, 0x02000800, 0x0010619f, + 0x42000000, 0x0010bdb0, 0x0201f800, 0x0010ae10, + 0x1c01f000, 0x59940004, 0x80000540, 0x0402000a, 0x5994002f, 0x80040400, 0x02001800, 0x0010032d, - 0x48032829, 0x480b282a, 0x4a032828, 0x00000001, - 0x80000580, 0x1c01f000, 0x40680800, 0x406c1000, - 0x5994002c, 0x80000540, 0x0402000a, 0x5994002f, - 0x80040400, 0x02001800, 0x0010032d, 0x4803282c, - 0x480b282d, 0x4a03282b, 0x0000000a, 0x80000580, - 0x1c01f000, 0x4c000000, 0x59940005, 0x80080580, - 0x04020003, 0x497b2804, 0x497b2805, 0x5c000000, - 0x1c01f000, 0x40681000, 0x0401fff7, 0x1c01f000, - 0x4c000000, 0x5994002a, 0x80080580, 0x04020003, - 0x497b2829, 0x497b282a, 0x5c000000, 0x1c01f000, - 0x4c000000, 0x5994002d, 0x80080580, 0x04020003, - 0x497b282c, 0x497b282d, 0x5c000000, 0x1c01f000, - 0x4937c857, 0x48ebc857, 0x59340203, 0x80e80480, - 0x04001002, 0x48ea6a03, 0x1c01f000, 0x4d440000, - 0x42007800, 0x00000010, 0x59968801, 0x0201f800, - 0x00020319, 0x04020056, 0x59341a03, 0x800c1840, - 0x04001017, 0x59940031, 0x800c0480, 0x04000003, - 0x48026a03, 0x04021012, 0x5934000f, 0x497a6a03, - 0x80000540, 0x0400004a, 0x5934000b, 0x80001120, - 0x82000500, 0x0000ffff, 0x80080480, 0x04001004, - 0x4a026a03, 0x00000001, 0x0401f005, 0x4c3c0000, - 0x0201f800, 0x00020327, 0x5c007800, 0x4d2c0000, - 0x41781800, 0x5934000f, 0x80025d40, 0x04000037, - 0x592c0004, 0x80000d40, 0x04000006, 0x59940031, - 0x80040480, 0x48025804, 0x04001007, 0x04000006, - 0x412c1800, 0x592c0000, 0x80025d40, 0x0400002b, - 0x0401f7f4, 0x592c2000, 0x497a5800, 0x800c19c0, - 0x04020009, 0x59340010, 0x812c0580, 0x04020004, - 0x497a680f, 0x497a6810, 0x0401f008, 0x4812680f, - 0x0401f006, 0x48101800, 0x59340010, 0x812c0580, - 0x04020002, 0x480e6810, 0x592c0205, 0x82000500, - 0x000000ff, 0x82000580, 0x00000012, 0x04020004, - 0x4a025a07, 0x0000000b, 0x0401f008, 0x4a025a05, - 0x00000103, 0x4a025a07, 0x00000006, 0x497a580a, - 0x4a025c07, 0x0000ffff, 0x4c0c0000, 0x4c100000, - 0x0201f800, 0x000203ab, 0x5c002000, 0x5c001800, - 0x40100000, 0x0401f7d5, 0x5c025800, 0x81468800, - 0x83440480, 0x00000800, 0x04021007, 0x803c7840, - 0x040207a3, 0x49472801, 0x5c028800, 0x5c03e000, - 0x1c01f000, 0x4a032800, 0x00000002, 0x497b2801, - 0x0401f7fa, 0x42007800, 0x00000010, 0x59966002, - 0x59300205, 0x80000d40, 0x04000006, 0x59940031, - 0x80040480, 0x48026205, 0x0400102d, 0x0400002c, - 0x59300006, 0x80000d40, 0x04000014, 0x59b800e4, - 0x8c000524, 0x04020011, 0x4a0370e4, 0x00030000, - 0x40000000, 0x59b800e4, 0x8c000524, 0x04000004, - 0x4a0370e4, 0x00020000, 0x0401f008, 0x59940031, - 0x80040480, 0x48026006, 0x4a0370e4, 0x00020000, - 0x0400101c, 0x0400001b, 0x83326400, 0x00000024, - 0x49332802, 0x41540000, 0x81300480, 0x04021005, - 0x803c7840, 0x040207db, 0x5c03e000, 0x1c01f000, - 0x59940030, 0x48032831, 0x4a032802, 0x0010f584, - 0x497b2830, 0x80000540, 0x0400000f, 0x4a032800, - 0x00000001, 0x5c03e000, 0x1c01f000, 0x4c3c0000, - 0x0201f800, 0x00108a77, 0x5c007800, 0x0401f7d1, - 0x4c3c0000, 0x0201f800, 0x00108630, 0x5c007800, - 0x0401f7e2, 0x4a032800, 0x00000000, 0x5c03e000, - 0x1c01f000, 0x59a80859, 0x8c040d30, 0x04020029, - 0x8c040d32, 0x0400000f, 0x59a80050, 0x81640480, - 0x04001019, 0x59a8000b, 0x81500580, 0x04000005, - 0x59a8004e, 0x59a8104d, 0x80080580, 0x04020012, - 0x900411c0, 0x82081500, 0x00007000, 0x0401f012, - 0x82040500, 0x0000001f, 0x04000016, 0x80040840, - 0x82040500, 0x0000001f, 0x04000003, 0x48075059, - 0x0401f010, 0x900401c0, 0x82000500, 0x0000001f, - 0x80040d40, 0x900401c0, 0x80040580, 0x82001500, - 0x00007000, 0x82040500, 0xffff8fff, 0x80080540, - 0x48035059, 0x80081114, 0x0201f800, 0x00100462, - 0x1c01f000, 0x4a032807, 0x000007d0, 0x4a032806, - 0x0000000a, 0x1c01f000, 0x42000800, 0x00000004, - 0x83180480, 0x00000005, 0x02021800, 0x0010032d, - 0x83947c00, 0x00000009, 0x83180400, 0x00105744, - 0x50000000, 0x803c7c00, 0x4a007801, 0x000001f4, - 0x48047802, 0x4a007800, 0x0000000a, 0x49787803, - 0x1c01f000, 0x83180480, 0x00000005, 0x02021800, - 0x0010032d, 0x83947c00, 0x00000009, 0x83180400, - 0x00105744, 0x50000000, 0x803c7c00, 0x583c0002, - 0x80000040, 0x48007802, 0x04000005, 0x4a007801, - 0x000001f4, 0x4a007800, 0x0000000a, 0x1c01f000, - 0x83180480, 0x00000005, 0x02021800, 0x0010032d, - 0x83947c00, 0x00000009, 0x83180400, 0x00105744, - 0x50000000, 0x803c7c00, 0x49787801, 0x1c01f000, - 0x40680800, 0x406c1000, 0x0401f802, 0x1c01f000, - 0x4807c857, 0x480bc857, 0x5994002f, 0x80040400, - 0x02001800, 0x0010032d, 0x48032804, 0x480b2805, - 0x4a032803, 0x0000000a, 0x1c01f000, 0x4807c857, - 0x480bc857, 0x5994002f, 0x80040400, 0x02001800, - 0x0010032d, 0x48032826, 0x480b2827, 0x4a032825, - 0x0000000a, 0x1c01f000, 0x4c000000, 0x59940027, - 0x80080580, 0x04020003, 0x48032826, 0x48032827, - 0x5c000000, 0x1c01f000, 0x4807c857, 0x480bc857, + 0x48032804, 0x480b2805, 0x4a032803, 0x0000000a, + 0x80000580, 0x1c01f000, 0x59940029, 0x80000540, + 0x0402000a, 0x5994002f, 0x80040400, 0x02001800, + 0x0010032d, 0x48032829, 0x480b282a, 0x4a032828, + 0x00000001, 0x80000580, 0x1c01f000, 0x40680800, + 0x406c1000, 0x5994002c, 0x80000540, 0x0402000a, 0x5994002f, 0x80040400, 0x02001800, 0x0010032d, 0x4803282c, 0x480b282d, 0x4a03282b, 0x0000000a, - 0x1c01f000, 0x80e9d1c0, 0x0400000e, 0x0401f832, - 0x04025000, 0x4203e000, 0x80000000, 0x40e81000, - 0x41780800, 0x42000000, 0x00000064, 0x0201f800, - 0x00105f69, 0x5994002e, 0x80080400, 0x4803282e, - 0x1c01f000, 0x42001000, 0x00104632, 0x0401fe8e, - 0x42001000, 0x00104621, 0x0401ffd8, 0x42001000, - 0x0010391c, 0x0401fe88, 0x42001000, 0x0010399e, - 0x0401fe85, 0x42001000, 0x001038f5, 0x0401fe82, - 0x42001000, 0x001039d5, 0x0401f692, 0x4203e000, - 0x70000000, 0x4203e000, 0xb0300000, 0x40ebf800, - 0x42000000, 0x0000003c, 0x04004004, 0x80000040, - 0x040207fe, 0x0401f007, 0x4203e000, 0x70000000, - 0x42000000, 0x0010bc38, 0x0201f800, 0x0010ad1d, - 0x1c01f000, 0x4203e000, 0x80000000, 0x4203e000, - 0xb0400000, 0x40ebf800, 0x42000000, 0x0000003c, - 0x04005004, 0x80000040, 0x040207fe, 0x0401f007, - 0x4203e000, 0x80000000, 0x42000000, 0x0010bc39, - 0x0201f800, 0x0010ad1d, 0x1c01f000, 0x59a8080d, - 0x59a80251, 0x80040480, 0x599c0a02, 0x800409c0, - 0x04020002, 0x80040800, 0x80041480, 0x04001002, - 0x40000800, 0x4807504f, 0x59a8100d, 0x40040000, - 0x800acc80, 0x4967500d, 0x49675050, 0x59aaa80b, - 0x41640800, 0x42001000, 0x00000024, 0x0201f800, - 0x00105f4a, 0x8206a400, 0x0010f584, 0x4953504c, - 0x4152b000, 0x42006000, 0x0010c1e7, 0x4a006005, - 0x0000012c, 0x4a006006, 0xda10da10, 0x4a006009, - 0x00000012, 0x4a00600a, 0x0010c1e7, 0x4a00600b, - 0x00100e34, 0x599c0014, 0x48006012, 0x599c0015, - 0x48006013, 0x42006000, 0x0010f4f4, 0x4a006203, - 0x00000008, 0x4a006407, 0x00000006, 0x4a006002, - 0xffff0000, 0x4a006009, 0x0010c1e7, 0x4a006015, - 0x0010c1e7, 0x599c0014, 0x48006016, 0x599c0015, - 0x48006017, 0x599c0413, 0x48006018, 0x49506019, - 0x4954601a, 0x59a8004f, 0x4800601b, 0x4a00601c, - 0x0010b7cc, 0x4a00601d, 0x0010b7cd, 0x4a00601e, - 0x0010b7ce, 0x42000000, 0xb0000000, 0x42000800, - 0x0010f4f4, 0x0201f800, 0x00020105, 0x1c01f000, - 0x82000d00, 0x000000c0, 0x04000004, 0x82040d80, - 0x000000c0, 0x04020055, 0x82000d00, 0x00002020, - 0x59300415, 0x84000512, 0x82040d80, 0x00002020, - 0x0400000b, 0x8c000514, 0x0402000f, 0x48026415, + 0x80000580, 0x1c01f000, 0x4c000000, 0x59940005, + 0x80080580, 0x04020003, 0x497b2804, 0x497b2805, + 0x5c000000, 0x1c01f000, 0x40681000, 0x0401fff7, + 0x1c01f000, 0x4c000000, 0x5994002a, 0x80080580, + 0x04020003, 0x497b2829, 0x497b282a, 0x5c000000, + 0x1c01f000, 0x4c000000, 0x5994002d, 0x80080580, + 0x04020003, 0x497b282c, 0x497b282d, 0x5c000000, + 0x1c01f000, 0x4937c857, 0x48ebc857, 0x59340203, + 0x80e80480, 0x04001002, 0x48ea6a03, 0x1c01f000, + 0x4d440000, 0x42007800, 0x00000010, 0x59968801, + 0x0201f800, 0x00020319, 0x04020056, 0x59341a03, + 0x800c1840, 0x04001017, 0x59940031, 0x800c0480, + 0x04000003, 0x48026a03, 0x04021012, 0x5934000f, + 0x497a6a03, 0x80000540, 0x0400004a, 0x5934000b, + 0x80001120, 0x82000500, 0x0000ffff, 0x80080480, + 0x04001004, 0x4a026a03, 0x00000001, 0x0401f005, + 0x4c3c0000, 0x0201f800, 0x00020327, 0x5c007800, + 0x4d2c0000, 0x41781800, 0x5934000f, 0x80025d40, + 0x04000037, 0x592c0004, 0x80000d40, 0x04000006, + 0x59940031, 0x80040480, 0x48025804, 0x04001007, + 0x04000006, 0x412c1800, 0x592c0000, 0x80025d40, + 0x0400002b, 0x0401f7f4, 0x592c2000, 0x497a5800, + 0x800c19c0, 0x04020009, 0x59340010, 0x812c0580, + 0x04020004, 0x497a680f, 0x497a6810, 0x0401f008, + 0x4812680f, 0x0401f006, 0x48101800, 0x59340010, + 0x812c0580, 0x04020002, 0x480e6810, 0x592c0205, + 0x82000500, 0x000000ff, 0x82000580, 0x00000012, + 0x04020004, 0x4a025a07, 0x0000000b, 0x0401f008, + 0x4a025a05, 0x00000103, 0x4a025a07, 0x00000006, + 0x497a580a, 0x4a025c07, 0x0000ffff, 0x4c0c0000, + 0x4c100000, 0x0201f800, 0x000203ab, 0x5c002000, + 0x5c001800, 0x40100000, 0x0401f7d5, 0x5c025800, + 0x81468800, 0x83440480, 0x00000800, 0x04021007, + 0x803c7840, 0x040207a3, 0x49472801, 0x5c028800, + 0x5c03e000, 0x1c01f000, 0x4a032800, 0x00000002, + 0x497b2801, 0x0401f7fa, 0x42007800, 0x00000010, + 0x59966002, 0x59300205, 0x80000d40, 0x04000006, + 0x59940031, 0x80040480, 0x48026205, 0x0400102d, + 0x0400002c, 0x59300006, 0x80000d40, 0x04000014, + 0x59b800e4, 0x8c000524, 0x04020011, 0x4a0370e4, + 0x00030000, 0x40000000, 0x59b800e4, 0x8c000524, + 0x04000004, 0x4a0370e4, 0x00020000, 0x0401f008, + 0x59940031, 0x80040480, 0x48026006, 0x4a0370e4, + 0x00020000, 0x0400101c, 0x0400001b, 0x83326400, + 0x00000024, 0x49332802, 0x41540000, 0x81300480, + 0x04021005, 0x803c7840, 0x040207db, 0x5c03e000, + 0x1c01f000, 0x59940030, 0x48032831, 0x4a032802, + 0x0010f694, 0x497b2830, 0x80000540, 0x0400000f, + 0x4a032800, 0x00000001, 0x5c03e000, 0x1c01f000, + 0x4c3c0000, 0x0201f800, 0x00108b30, 0x5c007800, + 0x0401f7d1, 0x4c3c0000, 0x0201f800, 0x001086e5, + 0x5c007800, 0x0401f7e2, 0x4a032800, 0x00000000, + 0x5c03e000, 0x1c01f000, 0x59a80859, 0x8c040d30, + 0x04020029, 0x8c040d32, 0x0400000f, 0x59a80050, + 0x81640480, 0x04001019, 0x59a8000b, 0x81500580, + 0x04000005, 0x59a8004e, 0x59a8104d, 0x80080580, + 0x04020012, 0x900411c0, 0x82081500, 0x00007000, + 0x0401f012, 0x82040500, 0x0000001f, 0x04000016, + 0x80040840, 0x82040500, 0x0000001f, 0x04000003, + 0x48075059, 0x0401f010, 0x900401c0, 0x82000500, + 0x0000001f, 0x80040d40, 0x900401c0, 0x80040580, + 0x82001500, 0x00007000, 0x82040500, 0xffff8fff, + 0x80080540, 0x48035059, 0x80081114, 0x0201f800, + 0x00100462, 0x1c01f000, 0x4a032807, 0x000007d0, + 0x4a032806, 0x0000000a, 0x1c01f000, 0x42000800, + 0x00000004, 0x83180480, 0x00000005, 0x02021800, + 0x0010032d, 0x83947c00, 0x00000009, 0x83180400, + 0x001057e9, 0x50000000, 0x803c7c00, 0x4a007801, + 0x000001f4, 0x48047802, 0x4a007800, 0x0000000a, + 0x49787803, 0x1c01f000, 0x83180480, 0x00000005, + 0x02021800, 0x0010032d, 0x83947c00, 0x00000009, + 0x83180400, 0x001057e9, 0x50000000, 0x803c7c00, + 0x583c0002, 0x80000040, 0x48007802, 0x04000005, + 0x4a007801, 0x000001f4, 0x4a007800, 0x0000000a, + 0x1c01f000, 0x83180480, 0x00000005, 0x02021800, + 0x0010032d, 0x83947c00, 0x00000009, 0x83180400, + 0x001057e9, 0x50000000, 0x803c7c00, 0x49787801, + 0x1c01f000, 0x40680800, 0x406c1000, 0x0401f802, + 0x1c01f000, 0x4807c857, 0x480bc857, 0x5994002f, + 0x80040400, 0x02001800, 0x0010032d, 0x48032804, + 0x480b2805, 0x4a032803, 0x0000000a, 0x1c01f000, + 0x4807c857, 0x480bc857, 0x5994002f, 0x80040400, + 0x02001800, 0x0010032d, 0x48032826, 0x480b2827, + 0x4a032825, 0x0000000a, 0x1c01f000, 0x4c000000, + 0x59940027, 0x80080580, 0x04020003, 0x48032826, + 0x48032827, 0x5c000000, 0x1c01f000, 0x4807c857, + 0x480bc857, 0x5994002f, 0x80040400, 0x02001800, + 0x0010032d, 0x4803282c, 0x480b282d, 0x4a03282b, + 0x0000000a, 0x1c01f000, 0x80e9d1c0, 0x0400000e, + 0x0401f832, 0x04025000, 0x4203e000, 0x80000000, + 0x40e81000, 0x41780800, 0x42000000, 0x00000064, + 0x0201f800, 0x0010600e, 0x5994002e, 0x80080400, + 0x4803282e, 0x1c01f000, 0x42001000, 0x00104671, + 0x0401fe8e, 0x42001000, 0x00104660, 0x0401ffd8, + 0x42001000, 0x0010392f, 0x0401fe88, 0x42001000, + 0x001039b1, 0x0401fe85, 0x42001000, 0x00103908, + 0x0401fe82, 0x42001000, 0x001039e8, 0x0401f692, + 0x4203e000, 0x70000000, 0x4203e000, 0xb0300000, + 0x40ebf800, 0x42000000, 0x0000003c, 0x04004004, + 0x80000040, 0x040207fe, 0x0401f007, 0x4203e000, + 0x70000000, 0x42000000, 0x0010bd38, 0x0201f800, + 0x0010ae10, 0x1c01f000, 0x4203e000, 0x80000000, + 0x4203e000, 0xb0400000, 0x40ebf800, 0x42000000, + 0x0000003c, 0x04005004, 0x80000040, 0x040207fe, + 0x0401f007, 0x4203e000, 0x80000000, 0x42000000, + 0x0010bd39, 0x0201f800, 0x0010ae10, 0x1c01f000, + 0x59a8080d, 0x59a80251, 0x80040480, 0x599c0a02, + 0x800409c0, 0x04020002, 0x80040800, 0x80041480, + 0x04001002, 0x40000800, 0x4807504f, 0x59a8100d, + 0x40040000, 0x800acc80, 0x4967500d, 0x49675050, + 0x59aaa80b, 0x41640800, 0x42001000, 0x00000024, + 0x0201f800, 0x00105fef, 0x8206a400, 0x0010f694, + 0x4953504c, 0x4152b000, 0x42006000, 0x0010c2e7, + 0x4a006005, 0x0000012c, 0x4a006006, 0xda10da10, + 0x4a006009, 0x00000012, 0x4a00600a, 0x0010c2e7, + 0x4a00600b, 0x00100e35, 0x599c0014, 0x48006012, + 0x599c0015, 0x48006013, 0x42006000, 0x0010f604, + 0x4a006203, 0x00000008, 0x4a006407, 0x00000006, + 0x4a006002, 0xffff0000, 0x4a006009, 0x0010c2e7, + 0x4a006015, 0x0010c2e7, 0x599c0014, 0x48006016, + 0x599c0015, 0x48006017, 0x599c0413, 0x48006018, + 0x49506019, 0x4954601a, 0x59a8004f, 0x4800601b, + 0x4a00601c, 0x0010b8cc, 0x4a00601d, 0x0010b8cd, + 0x4a00601e, 0x0010b8ce, 0x42000000, 0xb0000000, + 0x42000800, 0x0010f604, 0x0201f800, 0x00020105, + 0x1c01f000, 0x82000d00, 0x000000c0, 0x04000004, + 0x82040d80, 0x000000c0, 0x04020055, 0x82000d00, + 0x00002020, 0x59300415, 0x84000512, 0x82040d80, + 0x00002020, 0x0400000b, 0x8c000514, 0x0402000f, + 0x48026415, 0x813e79c0, 0x02020000, 0x0002094c, + 0x42027000, 0x00000043, 0x0201f000, 0x00020a34, + 0x5932680a, 0x59340a00, 0x8c040d0a, 0x040007f3, + 0x84000552, 0x0401f7f1, 0x84000514, 0x592c080e, + 0x48066016, 0x0401f7ef, 0x5932680a, 0x59340a00, + 0x8c040d0a, 0x02000000, 0x0002095f, 0x59300c15, + 0x84040d52, 0x48066415, 0x0201f000, 0x0002095f, + 0x0201f800, 0x00020111, 0x813e79c0, 0x02020000, + 0x0002094c, 0x0201f000, 0x0002096d, 0x8c00051e, + 0x02000000, 0x00020979, 0x82000d00, 0x00002020, + 0x82040d80, 0x00002020, 0x04000014, 0x82000500, + 0x000000c0, 0x82000d80, 0x00000080, 0x04000008, 0x813e79c0, 0x02020000, 0x0002094c, 0x42027000, - 0x00000043, 0x0201f000, 0x00020a34, 0x5932680a, - 0x59340a00, 0x8c040d0a, 0x040007f3, 0x84000552, - 0x0401f7f1, 0x84000514, 0x592c080e, 0x48066016, - 0x0401f7ef, 0x5932680a, 0x59340a00, 0x8c040d0a, - 0x02000000, 0x0002095f, 0x59300c15, 0x84040d52, - 0x48066415, 0x0201f000, 0x0002095f, 0x0201f800, - 0x00020111, 0x813e79c0, 0x02020000, 0x0002094c, - 0x0201f000, 0x0002096d, 0x8c00051e, 0x02000000, - 0x00020979, 0x82000d00, 0x00002020, 0x82040d80, - 0x00002020, 0x04000014, 0x82000500, 0x000000c0, - 0x82000d80, 0x00000080, 0x04000008, 0x813e79c0, - 0x02020000, 0x0002094c, 0x42027000, 0x00000041, - 0x0201f000, 0x00020a34, 0x813e79c0, 0x02020000, - 0x0002094c, 0x42027000, 0x00000043, 0x0201f000, - 0x00020a34, 0x5932680a, 0x59340a00, 0x8c040d0a, - 0x040007ea, 0x59300c15, 0x84040d52, 0x48066415, - 0x0401f7e6, 0x492fc857, 0x42000800, 0x00000006, - 0x0201f000, 0x00020974, 0x492fc857, 0x42000800, - 0x00000004, 0x0201f000, 0x00020974, 0x4807c856, - 0x59a80069, 0x800409c0, 0x04000003, 0x80080540, - 0x0401f002, 0x80080500, 0x48035069, 0x1c01f000, - 0x4a030800, 0x00000000, 0x4a030802, 0x00000001, - 0x497b0803, 0x497b0804, 0x1c01f000, 0x59840002, - 0x8c000500, 0x04000004, 0x84000500, 0x4a030800, - 0x00000001, 0x84000544, 0x84000506, 0x48030802, - 0x82000d00, 0x0fffffff, 0x42000000, 0x90000000, - 0x0201f800, 0x00100899, 0x59a80050, 0x82000480, - 0x00000007, 0x48035050, 0x80000580, 0x42000800, - 0x0010b86b, 0x48000800, 0x48000801, 0x1c01f000, - 0x59a80050, 0x82000400, 0x00000007, 0x48035050, - 0x1c01f000, 0x83640480, 0x00000008, 0x0400101b, - 0x58c80a03, 0x80000580, 0x82000400, 0x00000008, - 0x80040840, 0x040207fd, 0x815c0480, 0x04001013, - 0x4200b000, 0x00000007, 0x0201f800, 0x000209ee, - 0x4a026203, 0x00000004, 0x4a026407, 0x00000009, - 0x4a026203, 0x00000004, 0x4a026008, 0x00000101, - 0x0401f809, 0x0401f880, 0x8058b040, 0x040207f3, - 0x80000580, 0x1c01f000, 0x82000540, 0x00000001, - 0x0401f7fd, 0x0201f800, 0x0010056f, 0x492e6009, - 0x58c80a03, 0x4a025a05, 0x0000002c, 0x497a5800, - 0x497a5801, 0x497a5c05, 0x497a5c07, 0x497a5806, - 0x4a025a09, 0x00000005, 0x4a025a08, 0x00000002, - 0x58c80201, 0x48025c05, 0x58c80202, 0x48025c08, - 0x58c80204, 0x48025c09, 0x4a02580e, 0x0000ffff, - 0x80040840, 0x0400000c, 0x412c2000, 0x0201f800, - 0x0010056f, 0x4a025a05, 0x0000000a, 0x497a5c05, - 0x48125800, 0x492c2001, 0x412c2000, 0x80040840, - 0x040207f7, 0x1c01f000, 0x4d7c0000, 0x4202f800, - 0x00000010, 0x4df00000, 0x4203e000, 0x50000000, - 0x59847803, 0x803c79c0, 0x0400001e, 0x4c5c0000, - 0x583cb809, 0x585c3409, 0x801831c0, 0x0400000b, - 0x0401f84a, 0x04000016, 0x42001000, 0x0010b86b, - 0x0401f87f, 0x04000012, 0x0201f800, 0x0010055a, - 0x0400000f, 0x492cb806, 0x585c0006, 0x80000540, - 0x02000800, 0x0010032d, 0x0401f830, 0x585c5409, - 0x0401f80b, 0x5c00b800, 0x5c03e000, 0x817ef840, - 0x040207e1, 0x5c02f800, 0x1c01f000, 0x5c00b800, - 0x5c03e000, 0x5c02f800, 0x1c01f000, 0x4803c856, - 0x405c6000, 0x802851c0, 0x04000018, 0x585c0205, - 0x82000d00, 0x0000000f, 0x82040c00, 0x00100e39, - 0x50044000, 0x4c600000, 0x4c640000, 0x4d040000, - 0x4020c000, 0x40320800, 0x5984c804, 0x4c280000, - 0x0401f93b, 0x5c005000, 0x40604000, 0x41046000, - 0x0201f800, 0x00100e17, 0x040207f6, 0x5c020800, - 0x5c00c800, 0x5c00c000, 0x58c80204, 0x4800bc09, - 0x0201f800, 0x00020111, 0x4a026008, 0x00000101, - 0x497a600a, 0x0401f055, 0x4803c856, 0x59840003, - 0x80026540, 0x04000003, 0x59300000, 0x48030803, - 0x1c01f000, 0x4803c856, 0x59840003, 0x48026000, - 0x49330803, 0x1c01f000, 0x58cc0805, 0x40180000, - 0x80040480, 0x0400100d, 0x82cc0580, 0x0010b860, - 0x02020800, 0x0010032d, 0x58c80205, 0x80040480, - 0x0400101d, 0x82000540, 0x00000001, 0x1c01f000, - 0x80003580, 0x0401f7fe, 0x82cc0580, 0x0010b860, - 0x02020800, 0x0010032d, 0x58c80400, 0x8c000504, - 0x040007f8, 0x58c8040b, 0x8c00051e, 0x040007f5, - 0x8c000500, 0x040207f3, 0x84000540, 0x4801940b, - 0x42000000, 0x0010bbff, 0x0201f800, 0x0010ad1d, - 0x42001000, 0x00008026, 0x0201f800, 0x001031eb, - 0x0401f7e8, 0x58c8040b, 0x8c00051e, 0x040007e2, - 0x8c000502, 0x040207e0, 0x84000542, 0x4801940b, - 0x42000000, 0x0010bbfe, 0x0201f800, 0x0010ad1d, - 0x42001000, 0x00008025, 0x42001800, 0x00000000, - 0x0201f800, 0x001031eb, 0x0401f7d3, 0x4803c856, - 0x58080000, 0x42001800, 0x00000007, 0x58080801, - 0x80040480, 0x04020004, 0x400c0000, 0x80000540, - 0x0401f005, 0x04001003, 0x800c0480, 0x0401f002, - 0x80000080, 0x1c01f000, 0x4803c856, 0x59300009, - 0x80000d40, 0x02000800, 0x0010032d, 0x58040006, - 0x80000540, 0x02000800, 0x0010032d, 0x59300008, - 0x82000500, 0x00000101, 0x82000580, 0x00000101, - 0x02020800, 0x0010032d, 0x42001000, 0x0010b86b, - 0x58080801, 0x82040400, 0x0010b86d, 0x497a6415, - 0x4a026016, 0x0000ffff, 0x45300000, 0x80040800, - 0x82040480, 0x00000008, 0x04001002, 0x80000d80, - 0x48041001, 0x82040400, 0x0010b86d, 0x45780000, - 0x1c01f000, 0x4933c857, 0x59300809, 0x800409c0, - 0x02000800, 0x0010032d, 0x4d2c0000, 0x58065806, - 0x812e59c0, 0x02020800, 0x00100580, 0x49780806, - 0x40065800, 0x0201f800, 0x00100589, 0x5c025800, - 0x4d300000, 0x0201f800, 0x00020a10, 0x5c026000, - 0x1c01f000, 0x0401f807, 0x42018800, 0x00000001, - 0x04000003, 0x42018800, 0x00000000, 0x1c01f000, - 0x59300407, 0x82000580, 0x00000009, 0x04020006, - 0x59300008, 0x8c000510, 0x04000003, 0x80000580, - 0x1c01f000, 0x82000540, 0x00000001, 0x1c01f000, - 0x59840802, 0x8c040d04, 0x1c01f000, 0x4803c856, - 0x59840802, 0x84040d04, 0x84040d40, 0x4a030800, - 0x00000000, 0x48070802, 0x82040d00, 0x0fffffff, - 0x42000000, 0x90000000, 0x0201f000, 0x00100899, - 0x4807c857, 0x4805980a, 0x49799801, 0x49799803, - 0x49799806, 0x49799807, 0x49799808, 0x49799805, - 0x49799809, 0x0401f8c8, 0x0400000a, 0x0401f8ea, - 0x04000008, 0x48359800, 0x48359802, 0x48359806, - 0x4a019804, 0x00000001, 0x4a019807, 0x00000006, - 0x1c01f000, 0x4807c857, 0x58cc1007, 0x40040000, - 0x80080480, 0x04021020, 0x4c040000, 0x4c080000, - 0x0401f8d9, 0x5c001000, 0x5c000800, 0x0400001c, - 0x58cc0006, 0x80006540, 0x0402000b, 0x48359800, - 0x48359802, 0x48359806, 0x49799801, 0x49799803, - 0x49786801, 0x49786800, 0x49799804, 0x49799807, - 0x0401f005, 0x48306801, 0x48346000, 0x48359806, - 0x49786800, 0x58cc0004, 0x58cc1007, 0x80000000, - 0x82081400, 0x00000006, 0x48019804, 0x48099807, - 0x0401f7df, 0x80000580, 0x1c01f000, 0x82000540, - 0x00000001, 0x1c01f000, 0x480bc857, 0x4c500000, - 0x4c540000, 0x4c580000, 0x40083000, 0x58cc0801, - 0x82040480, 0x00000006, 0x02021800, 0x0010032d, - 0x82040400, 0x00105cb2, 0x50000000, 0x58cca800, - 0x8054ac00, 0x42001800, 0x00000006, 0x40040000, - 0x800c0480, 0x80082480, 0x04021002, 0x40080000, - 0x8000b0c2, 0x8058b400, 0x5450a800, 0x8050a000, - 0x8054a800, 0x8058b040, 0x040207fc, 0x40001000, - 0x58cc2805, 0x58cc0807, 0x58cc2001, 0x80142c00, - 0x80040c80, 0x80102400, 0x48159805, 0x48059807, - 0x48119801, 0x82100580, 0x00000006, 0x0400000c, - 0x48119801, 0x40080000, 0x80181480, 0x40083000, - 0x04000003, 0x040217d6, 0x80000580, 0x5c00b000, - 0x5c00a800, 0x5c00a000, 0x1c01f000, 0x58cc0800, - 0x800409c0, 0x02000800, 0x0010032d, 0x58040800, - 0x48059800, 0x41782000, 0x0401f7ee, 0x0401f812, - 0x50600000, 0x81041c00, 0x585c0205, 0x4803c857, - 0x82000580, 0x0000002c, 0x02020800, 0x0010032d, - 0x58040202, 0x800000e0, 0x80640540, 0x48001802, - 0x58040000, 0x48001800, 0x58040001, 0x48001801, - 0x1c01f000, 0x4807c856, 0x58cc0005, 0x80000040, - 0x02001800, 0x0010032d, 0x48019805, 0x58cc1003, - 0x82080480, 0x00000006, 0x02021800, 0x0010032d, - 0x82080400, 0x00105cb2, 0x50000000, 0x58cc0802, - 0x80040c00, 0x80081000, 0x82080480, 0x00000006, - 0x0402000f, 0x58cc2002, 0x58100000, 0x80006d40, - 0x04000009, 0x4c340000, 0x0401f858, 0x5c006800, - 0x49786801, 0x48359802, 0x58cc0004, 0x80000040, - 0x48019804, 0x49799803, 0x0401f002, 0x48099803, - 0x1c01f000, 0x4807c856, 0x41781800, 0x58c80201, - 0x80000540, 0x04000002, 0x800c1800, 0x58c80c01, - 0x80040c80, 0x0400100a, 0x04000009, 0x800c1800, - 0x58c80202, 0x80041480, 0x04001005, 0x04000004, - 0x800c1800, 0x40080800, 0x0401f7fb, 0x480d9204, - 0x400c0000, 0x42002000, 0x00000001, 0x80000040, - 0x04000007, 0x04001006, 0x80102000, 0x82000480, - 0x00000005, 0x04000002, 0x040217fc, 0x48119203, - 0x1c01f000, 0x4807c856, 0x4d2c0000, 0x58cc000a, - 0x80000540, 0x02000800, 0x0010032d, 0x82002400, - 0x00000006, 0x0201f800, 0x0010055a, 0x04000012, - 0x492d9809, 0x497a5800, 0x497a5801, 0x0201f800, - 0x0010055a, 0x0400000c, 0x58cc0009, 0x48025800, - 0x497a5801, 0x492d9809, 0x82102480, 0x00000006, - 0x040217f7, 0x82000540, 0x00000001, 0x5c025800, - 0x1c01f000, 0x58cc0009, 0x80025d40, 0x040007fc, - 0x592c2000, 0x0201f800, 0x00100580, 0x40100000, - 0x0401f7fa, 0x58cc0009, 0x48cfc857, 0x80006d40, - 0x04000005, 0x50340000, 0x48019809, 0x49786800, - 0x49786801, 0x1c01f000, 0x4813c857, 0x58cc0009, - 0x48002000, 0x48119809, 0x1c01f000, 0x4807c856, - 0x4d2c0000, 0x58cc0009, 0x80025d40, 0x04000007, - 0x592c0000, 0x4c000000, 0x0201f800, 0x00100580, - 0x5c000000, 0x0401f7f9, 0x5c025800, 0x1c01f000, - 0x4807c856, 0x4d2c0000, 0x58cc0002, 0x80025d40, - 0x04000007, 0x592c0000, 0x4c000000, 0x0201f800, - 0x00100580, 0x5c000000, 0x0401f7f9, 0x49799800, - 0x49799802, 0x49799801, 0x49799803, 0x49799806, - 0x49799807, 0x49799808, 0x49799809, 0x4979980a, - 0x5c025800, 0x1c01f000, 0x00000003, 0x00000006, - 0x00000009, 0x0000000c, 0x0000000f, 0x00000012, - 0x4803c856, 0x0401f858, 0x4a00c205, 0x0000003c, - 0x5930100a, 0x82080580, 0x0010b876, 0x04000013, - 0x58080802, 0x82040d00, 0x00ffffff, 0x58080403, - 0x4804c006, 0x4800c407, 0x4a00c208, 0x00000003, - 0x59300812, 0x585c0405, 0x4978c207, 0x4804c408, - 0x80000540, 0x0400000d, 0x58600207, 0x84000540, - 0x4800c207, 0x0401f009, 0x585c080b, 0x82040d00, - 0x00ffffff, 0x4804c006, 0x4a00c407, 0x000007ff, - 0x4978c208, 0x0401f7ef, 0x82603c00, 0x00000009, - 0x58605405, 0x40282000, 0x405c6000, 0x585c0a05, - 0x82040d00, 0x0000000f, 0x82040c00, 0x00100e39, - 0x50044000, 0x80004d80, 0x50200000, 0x80307400, - 0x58380402, 0x8c244d00, 0x04020003, 0x48003a00, - 0x0401f003, 0x48003c00, 0x801c3800, 0x80244800, - 0x80102040, 0x04000006, 0x0201f800, 0x00100e17, - 0x02000800, 0x0010032d, 0x0401f7f0, 0x1c01f000, - 0x4803c856, 0x4d340000, 0x5930000a, 0x80026d40, - 0x02000800, 0x0010032d, 0x59340212, 0x82000500, - 0x0000ff00, 0x0402000e, 0x59840000, 0x80000540, - 0x0400000b, 0x836c0580, 0x00000003, 0x04020008, - 0x59341c03, 0x42002000, 0x00000004, 0x42003000, - 0x00000004, 0x0201f800, 0x00103260, 0x5c026800, - 0x1c01f000, 0x4803c856, 0x80001580, 0x58c80c01, - 0x59300012, 0x80040c80, 0x48066012, 0x58c80201, - 0x80000540, 0x04000005, 0x80081000, 0x80040c80, - 0x04001007, 0x04000006, 0x58c80202, 0x80081000, - 0x80040c80, 0x04001002, 0x040207fd, 0x4808bc09, - 0x4808c405, 0x1c01f000, 0x4803c856, 0x4a0370e5, - 0x00020000, 0x59b800e5, 0x8c000524, 0x040207fc, - 0x4a0370e5, 0x00030000, 0x40000000, 0x40000000, - 0x59b800e5, 0x8c000524, 0x040207f5, 0x5934000e, - 0x80006d40, 0x04000010, 0x81300580, 0x04020004, - 0x58340000, 0x4802680e, 0x0401f00a, 0x40347800, - 0x58340000, 0x80006d40, 0x02000800, 0x0010032d, - 0x81300580, 0x040207fa, 0x58340000, 0x48007800, - 0x497a6000, 0x4a0370e5, 0x00020000, 0x1c01f000, - 0x4803c856, 0x4d300000, 0x4d2c0000, 0x42000800, - 0x000003ff, 0x4a0370e5, 0x00020000, 0x59b800e5, - 0x8c000524, 0x04000005, 0x80040840, 0x040207fa, - 0x0201f800, 0x0010032d, 0x4a0370e5, 0x00030000, - 0x40000000, 0x40000000, 0x59b800e5, 0x8c000524, - 0x040207f1, 0x5934000e, 0x80026540, 0x0400000e, - 0x4933c857, 0x59300000, 0x4802680e, 0x4a026203, - 0x00000004, 0x497a6006, 0x497a600a, 0x4a026008, - 0x00000101, 0x59325809, 0x497a5c09, 0x0401fd7a, - 0x0401f7f1, 0x4a0370e5, 0x00020000, 0x5c025800, - 0x5c026000, 0x1c01f000, 0x4803c856, 0x4c000000, - 0x0201f800, 0x0010548f, 0x04020011, 0x0201f800, - 0x00103dcb, 0x02020800, 0x0010032d, 0x5c000000, - 0x48026802, 0x0201f800, 0x001070f5, 0x04000009, - 0x4936600a, 0x4a026407, 0x00000001, 0x42027000, - 0x00000001, 0x0201f000, 0x00020a34, 0x5c000000, - 0x1c01f000, 0x59300203, 0x82000c80, 0x0000000e, - 0x02021800, 0x0010032d, 0x4803c857, 0x0c01f001, - 0x00105d9e, 0x00105d9e, 0x00105d9e, 0x00105da0, - 0x00105e0d, 0x00105d9e, 0x00105d9e, 0x00105e5f, - 0x00105e60, 0x00105d9e, 0x00105d9e, 0x00105d9e, - 0x00105d9e, 0x00105d9e, 0x0201f800, 0x0010032d, - 0x493bc857, 0x83380480, 0x00000050, 0x02021800, - 0x0010032d, 0x83380480, 0x00000049, 0x02001800, - 0x0010032d, 0x0c01f001, 0x00105db3, 0x00105de4, - 0x00105db1, 0x00105db1, 0x00105db1, 0x00105db1, - 0x00105df2, 0x0201f800, 0x0010032d, 0x4d2c0000, - 0x59325809, 0x592c0207, 0x48025c07, 0x4a025a07, - 0x00000000, 0x4c5c0000, 0x592cbc0b, 0x592c0000, - 0x48026009, 0x0201f800, 0x000203ab, 0x59300c15, - 0x59300009, 0x80000540, 0x0400000b, 0x8c040d18, - 0x04020014, 0x4a026203, 0x00000007, 0x42027000, - 0x00000043, 0x497a6415, 0x5c00b800, 0x5c025800, - 0x0401f093, 0x8c040d18, 0x04020010, 0x8c5cbd08, - 0x04020011, 0x4a026203, 0x00000007, 0x497a6415, - 0x497a6006, 0x5c00b800, 0x5c025800, 0x1c01f000, - 0x4d400000, 0x59325809, 0x42028000, 0x00000005, - 0x0401f922, 0x5c028000, 0x0201f800, 0x001070b5, - 0x0401f7f5, 0x0201f800, 0x00020a10, 0x0401f7f2, - 0x0401fa59, 0x4d2c0000, 0x59325809, 0x0201f800, - 0x0010889a, 0x04000006, 0x4d400000, 0x42028000, - 0x00000001, 0x0401f911, 0x5c028000, 0x5c025800, - 0x0201f000, 0x00020a10, 0x0401fa4b, 0x4d3c0000, - 0x417a7800, 0x0201f800, 0x0010df61, 0x5c027800, - 0x42003000, 0x00000014, 0x0201f800, 0x0010a4ae, - 0x42000000, 0x0010bc1d, 0x0201f800, 0x0010ad1d, - 0x4d2c0000, 0x59325809, 0x0201f800, 0x0010889a, - 0x04000006, 0x4d400000, 0x42028000, 0x00000029, - 0x0401f8f6, 0x5c028000, 0x5c025800, 0x0201f000, - 0x00020a10, 0x493bc857, 0x497a6006, 0x83380480, - 0x00000054, 0x02021800, 0x0010032d, 0x83380480, - 0x00000047, 0x02001800, 0x0010032d, 0x0c01f001, - 0x00105e5e, 0x00105e27, 0x00105e25, 0x00105e25, - 0x00105e25, 0x00105e25, 0x00105e25, 0x00105e25, - 0x00105e25, 0x00105e25, 0x00105e25, 0x00105e25, - 0x00105e2b, 0x0201f800, 0x0010032d, 0x59300012, - 0x82000500, 0xffff0000, 0x04020034, 0x59840802, - 0x8c040d04, 0x04000025, 0x5930000a, 0x80026d40, - 0x0400001f, 0x4c5c0000, 0x4c600000, 0x497a6006, - 0x5930b809, 0x585c0006, 0x8000c540, 0x02000800, - 0x0010032d, 0x0401fe7f, 0x40625800, 0x0201f800, - 0x000203af, 0x4978b806, 0x0401fee8, 0x497a600a, - 0x585c3409, 0x0401fca9, 0x0400000e, 0x42001000, - 0x0010b86b, 0x0401fcde, 0x0400000a, 0x0201f800, - 0x0010056f, 0x04000007, 0x492cb806, 0x585c5409, - 0x0401fc6f, 0x5c00c000, 0x5c00b800, 0x1c01f000, - 0x0401fc95, 0x0401f7fc, 0x8c040d06, 0x040207fc, - 0x5930000a, 0x80026d40, 0x04000006, 0x5934000e, - 0x80000540, 0x02020800, 0x0010032d, 0x497a600a, - 0x0401fcf9, 0x0401f7f2, 0x0401f088, 0x4803c856, - 0x4803c856, 0x83380580, 0x00000043, 0x02020800, - 0x0010032d, 0x4a026203, 0x00000003, 0x493a6403, - 0x59325809, 0x592c0010, 0x48026012, 0x497a6014, - 0x592c0407, 0x800000c2, 0x800010c4, 0x80081400, - 0x480a6006, 0x0201f800, 0x00020154, 0x42000800, - 0x80000060, 0x0201f000, 0x000209a3, 0x42000000, - 0x0010bc2f, 0x0201f800, 0x0010ad1d, 0x59300203, - 0x82000c80, 0x0000000e, 0x02021800, 0x0010032d, - 0x4803c857, 0x82000d80, 0x00000003, 0x04000006, - 0x82000d80, 0x00000004, 0x0400005d, 0x0201f800, - 0x0010032d, 0x4d400000, 0x42028000, 0x00000006, - 0x0401f82d, 0x5c028000, 0x1c01f000, 0x4803c856, - 0x59300203, 0x82000c80, 0x0000000e, 0x02021800, - 0x0010032d, 0x82000d80, 0x00000002, 0x0400000f, - 0x82000d80, 0x00000003, 0x04000006, 0x82000d80, - 0x00000004, 0x04000046, 0x0201f800, 0x0010032d, - 0x4d400000, 0x42028000, 0x00000005, 0x0401f816, - 0x5c028000, 0x1c01f000, 0x4933c857, 0x4d2c0000, - 0x59325809, 0x812e59c0, 0x02000800, 0x0010032d, - 0x592c1a09, 0x8c0c1d0e, 0x02000800, 0x0010032d, - 0x4d400000, 0x42028000, 0x00000001, 0x0401f84b, - 0x0201f800, 0x001070b5, 0x5c028000, 0x5c025800, - 0x1c01f000, 0x4933c857, 0x4943c857, 0x0401fa52, - 0x4df00000, 0x59300004, 0x8c00053e, 0x04020006, - 0x0201f800, 0x0010644d, 0x02020800, 0x0010032d, - 0x0401f01b, 0x0201f800, 0x001085a4, 0x04020007, - 0x59300415, 0x84000558, 0x48026415, 0x0201f800, - 0x00106351, 0x04020012, 0x0201f800, 0x0010e1ca, - 0x80c40040, 0x04000005, 0x0401f946, 0x02020800, - 0x0010032d, 0x0401f00a, 0x59325809, 0x0401f827, - 0x0201f800, 0x001070b5, 0x5c03e000, 0x04000a1f, - 0x82000540, 0x00000001, 0x1c01f000, 0x5c03e000, - 0x04000a1a, 0x80000580, 0x1c01f000, 0x4933c857, - 0x0201f800, 0x00100bd4, 0x4933c857, 0x4c5c0000, - 0x4d340000, 0x497a6006, 0x5930b809, 0x5930000a, - 0x80026d40, 0x04020e39, 0x42001000, 0x0010b86b, - 0x0401fc33, 0x04000009, 0x58c80204, 0x4800bc09, - 0x41785000, 0x0201f800, 0x00105abb, 0x5c026800, - 0x5c00b800, 0x1c01f000, 0x4978bc09, 0x0201f800, - 0x00105ae5, 0x0401f7fa, 0x4803c856, 0x0201f800, - 0x0010889a, 0x0400000f, 0x592c0000, 0x80000d40, - 0x04000009, 0x497a5800, 0x49425a07, 0x4c040000, - 0x0201f800, 0x000203ab, 0x5c000800, 0x40065800, - 0x0401f7f6, 0x49425a07, 0x0201f800, 0x000203ab, - 0x1c01f000, 0x0401f807, 0x42018800, 0x00000001, - 0x04000003, 0x42018800, 0x00000000, 0x1c01f000, - 0x4933c857, 0x59300c07, 0x82040580, 0x0000000e, - 0x04000004, 0x82040580, 0x00000009, 0x04020004, - 0x0401ffde, 0x497a6009, 0x80000580, 0x1c01f000, - 0x592e600a, 0x83300480, 0x0010f584, 0x04001016, - 0x41580000, 0x81300480, 0x04021013, 0x40040000, - 0x59300c07, 0x80040580, 0x04020012, 0x59300a03, - 0x82040580, 0x00000007, 0x02020800, 0x0010032d, - 0x59300009, 0x80000540, 0x02020800, 0x0010032d, - 0x0201f800, 0x00020a10, 0x42000000, 0x00000000, - 0x0401f009, 0x42000000, 0x00000008, 0x0401f006, - 0x82040580, 0x00000007, 0x040207fb, 0x42000000, - 0x00000005, 0x592c0a07, 0x48065c07, 0x48025a07, - 0x0201f000, 0x000203ab, 0x4c0c0000, 0x4c100000, - 0x4c140000, 0x4c180000, 0x80001d80, 0x80002580, - 0x42003000, 0x00000020, 0x82040500, 0x00000001, - 0x04000003, 0x40080000, 0x800c1c00, 0x400c2800, - 0x800c1902, 0x80102102, 0x82140500, 0x00000001, - 0x04000003, 0x82102540, 0x80000000, 0x80040902, - 0x80183040, 0x040207f1, 0x40100800, 0x400c0000, - 0x5c003000, 0x5c002800, 0x5c002000, 0x5c001800, - 0x1c01f000, 0x4c580000, 0x4200b000, 0x00000020, - 0x80000540, 0x04000018, 0x80041c80, 0x04021016, - 0x800810c2, 0x80040982, 0x04001006, 0x80041c80, - 0x04021005, 0x8058b040, 0x040207fa, 0x0401f006, - 0x80041c80, 0x400c0800, 0x80081000, 0x8058b040, - 0x040207f4, 0x4c000000, 0x41f00000, 0x82000500, - 0xf7ffffff, 0x4003e000, 0x5c000000, 0x5c00b000, - 0x1c01f000, 0x4c000000, 0x41f00000, 0x82000540, - 0x08000000, 0x0401f7f8, 0x42007000, 0x0010b895, - 0x4a007000, 0x00000005, 0x4a007401, 0x00000000, - 0x4a007201, 0x00000840, 0x4a007202, 0x00000005, - 0x4a0378e8, 0x00000000, 0x4a03c821, 0x00000010, - 0x4a03c823, 0x00000004, 0x0401f81e, 0x4a0378e9, - 0x00003a0d, 0x4a0378e8, 0x00000001, 0x41780800, - 0x4203a000, 0x00007600, 0x4a03a005, 0xd0000001, - 0x59d00006, 0x4a03a005, 0x90000001, 0x83d3a400, - 0x00000020, 0x80040800, 0x82040480, 0x00000005, - 0x040017f8, 0x59e00003, 0x82000500, 0xffffffe0, - 0x82000540, 0x00008000, 0x4803c003, 0x59c40006, - 0x82000500, 0xfffcffff, 0x48038806, 0x1c01f000, - 0x4d900000, 0x4d180000, 0x4a0378e7, 0xaaaaaaaa, - 0x4a0378e6, 0xaaaaaaaa, 0x4a0378e5, 0xaaaaaaaa, - 0x4a0378e4, 0xaaaaaaaa, 0x4a03781a, 0x0010bb28, - 0x4a03781b, 0x00100e39, 0x4a03781c, 0x00100e49, - 0x4a031800, 0x00000000, 0x4a031801, 0x0010b898, - 0x4a031802, 0x0010b89f, 0x42000800, 0x0010bb2b, - 0x417a3000, 0x811b20c8, 0x83932400, 0x0000bf32, - 0x48072000, 0x4a032001, 0x00000000, 0x83180400, - 0x00106717, 0x50000000, 0x48032002, 0x82040c00, - 0x00000005, 0x811a3000, 0x83180480, 0x00000005, - 0x040017f1, 0x5c023000, 0x5c032000, 0x1c01f000, - 0x40680800, 0x0201f800, 0x000209b1, 0x1c01f000, - 0x4933c857, 0x59300804, 0x82040d00, 0x00000100, - 0x82040d40, 0x80000040, 0x48066004, 0x497a6000, - 0x59bc00ea, 0x8c000516, 0x040207fe, 0x83300400, - 0x60000000, 0x480378e1, 0x1c01f000, 0x598c000f, - 0x81300580, 0x04000003, 0x497a6008, 0x1c01f000, - 0x59c40004, 0x82000500, 0x0000000c, 0x04000005, - 0x4a038804, 0x0000000c, 0x497b2807, 0x0401f00a, - 0x0401fb01, 0x59300403, 0x82000d80, 0x00000040, - 0x04000004, 0x82000580, 0x00000042, 0x04020002, - 0x497a6008, 0x0201f800, 0x001066dd, 0x80000580, - 0x1c01f000, 0x0401f807, 0x42018800, 0x00000001, - 0x04000003, 0x42018800, 0x00000000, 0x1c01f000, - 0x59300804, 0x8c040d20, 0x04020004, 0x82000540, - 0x00000001, 0x1c01f000, 0x4933c857, 0x4d380000, - 0x59300804, 0x84040d20, 0x48066004, 0x42027000, - 0x00000049, 0x59300203, 0x82000580, 0x00000003, - 0x04000003, 0x42027000, 0x00000013, 0x0201f800, - 0x00020a34, 0x80000580, 0x5c027000, 0x1c01f000, - 0x0401f807, 0x42018800, 0x00000001, 0x04000003, - 0x42018800, 0x00000000, 0x1c01f000, 0x59300018, - 0x81480580, 0x04020003, 0x59300019, 0x814c0580, - 0x1c01f000, 0x4d2c0000, 0x4d300000, 0x0401f8ce, - 0x4df00000, 0x0201f800, 0x001058f4, 0x59900001, - 0x82000500, 0x00000003, 0x0c01f001, 0x00106058, - 0x0010604d, 0x0010604b, 0x0010604b, 0x0201f800, - 0x0010032d, 0x59926004, 0x0401f88a, 0x813261c0, - 0x04000008, 0x59300004, 0x8c000516, 0x04000004, - 0x59325809, 0x497a5809, 0x497a580a, 0x0401f88a, - 0x5c03e000, 0x040008a1, 0x5c026000, 0x5c025800, - 0x1c01f000, 0x5c000000, 0x4c000000, 0x4803c857, - 0x4d300000, 0x497b2807, 0x0401f8ab, 0x4df00000, - 0x598c0000, 0x82000500, 0x0000000f, 0x4803c857, - 0x0c01f001, 0x0010609e, 0x0010607b, 0x00106084, - 0x0010608b, 0x00106099, 0x0010609e, 0x00106079, - 0x00106088, 0x0010609e, 0x00106079, 0x00106079, - 0x00106079, 0x00106079, 0x00106079, 0x00106079, - 0x00106079, 0x0201f800, 0x0010032d, 0x598c000f, - 0x80026540, 0x04000004, 0x0401f824, 0x02020800, - 0x0010032d, 0x0201f800, 0x001066dd, 0x0401f01b, - 0x0401f82d, 0x0201f800, 0x001066dd, 0x0401f017, - 0x0201f800, 0x0010a7c6, 0x0401f7f7, 0x598c000f, - 0x80026540, 0x04000011, 0x0401f83b, 0x04000007, - 0x0401f812, 0x04000005, 0x0401f81f, 0x04000003, - 0x0201f800, 0x0010a7c6, 0x0201f800, 0x001066dd, - 0x0401f006, 0x0401f830, 0x02020800, 0x0010032d, - 0x0201f800, 0x001066dd, 0x5c03e000, 0x0400085b, - 0x5c026000, 0x1c01f000, 0x598c0009, 0x81300580, - 0x0402000c, 0x0401f84e, 0x0401f83b, 0x59300000, - 0x800001c0, 0x04000004, 0x48031809, 0x497a6000, - 0x0401f003, 0x497b1809, 0x497b1808, 0x80000580, - 0x1c01f000, 0x4d2c0000, 0x59300407, 0x82000580, - 0x00000003, 0x04020012, 0x598c000b, 0x81300580, - 0x0402000f, 0x0401f83a, 0x59325809, 0x497a5809, - 0x497a580a, 0x0401f824, 0x59300000, 0x800001c0, - 0x04000004, 0x4803180b, 0x497a6000, 0x0401f003, - 0x497b180a, 0x497b180b, 0x80000580, 0x5c025800, - 0x1c01f000, 0x598c0005, 0x81300580, 0x0402000c, - 0x0401f827, 0x0401f814, 0x59300000, 0x800001c0, - 0x04000004, 0x48031805, 0x497a6000, 0x0401f003, - 0x497b1805, 0x497b1804, 0x80000580, 0x1c01f000, - 0x4a032001, 0x00000000, 0x497b2004, 0x497b2005, - 0x59900006, 0x82000500, 0x0000ffff, 0x48032006, - 0x1c01f000, 0x4c040000, 0x59300004, 0x82000500, - 0x7ffeffff, 0x48026004, 0x59bc00e4, 0x8c000514, - 0x04000009, 0x42000800, 0x0000bf00, 0x58040012, - 0x81300580, 0x04020004, 0x49780812, 0x4a0378e4, - 0x00000800, 0x5c000800, 0x1c01f000, 0x4803c856, - 0x598c000e, 0x80000540, 0x04000003, 0x80000040, - 0x4803180e, 0x1c01f000, 0x59bc00ea, 0x82000500, - 0x00000007, 0x82000580, 0x00000003, 0x04020006, - 0x4803c856, 0x4a0378e8, 0x00000001, 0x4a0370e4, - 0x00000800, 0x1c01f000, 0x0401f807, 0x42018800, + 0x00000041, 0x0201f000, 0x00020a34, 0x813e79c0, + 0x02020000, 0x0002094c, 0x42027000, 0x00000043, + 0x0201f000, 0x00020a34, 0x5932680a, 0x59340a00, + 0x8c040d0a, 0x040007ea, 0x59300c15, 0x84040d52, + 0x48066415, 0x0401f7e6, 0x492fc857, 0x42000800, + 0x00000006, 0x0201f000, 0x00020974, 0x492fc857, + 0x42000800, 0x00000004, 0x0201f000, 0x00020974, + 0x4807c856, 0x59a80069, 0x800409c0, 0x04000003, + 0x80080540, 0x0401f002, 0x80080500, 0x48035069, + 0x1c01f000, 0x4a030800, 0x00000000, 0x4a030802, + 0x00000001, 0x497b0803, 0x497b0804, 0x1c01f000, + 0x59840002, 0x8c000500, 0x04000004, 0x84000500, + 0x4a030800, 0x00000001, 0x84000544, 0x84000506, + 0x48030802, 0x82000d00, 0x0fffffff, 0x42000000, + 0x90000000, 0x0201f800, 0x00100897, 0x59a80050, + 0x82000480, 0x00000007, 0x48035050, 0x80000580, + 0x42000800, 0x0010b96b, 0x48000800, 0x48000801, + 0x1c01f000, 0x59a80050, 0x82000400, 0x00000007, + 0x48035050, 0x1c01f000, 0x83640480, 0x00000008, + 0x0400101b, 0x58c80a03, 0x80000580, 0x82000400, + 0x00000008, 0x80040840, 0x040207fd, 0x815c0480, + 0x04001013, 0x4200b000, 0x00000007, 0x0201f800, + 0x000209ee, 0x4a026203, 0x00000004, 0x4a026407, + 0x00000009, 0x4a026203, 0x00000004, 0x4a026008, + 0x00000101, 0x0401f809, 0x0401f880, 0x8058b040, + 0x040207f3, 0x80000580, 0x1c01f000, 0x82000540, + 0x00000001, 0x0401f7fd, 0x0201f800, 0x0010056f, + 0x492e6009, 0x58c80a03, 0x4a025a05, 0x0000002c, + 0x497a5800, 0x497a5801, 0x497a5c05, 0x497a5c07, + 0x497a5806, 0x4a025a09, 0x00000005, 0x4a025a08, + 0x00000002, 0x58c80201, 0x48025c05, 0x58c80202, + 0x48025c08, 0x58c80204, 0x48025c09, 0x4a02580e, + 0x0000ffff, 0x80040840, 0x0400000c, 0x412c2000, + 0x0201f800, 0x0010056f, 0x4a025a05, 0x0000000a, + 0x497a5c05, 0x48125800, 0x492c2001, 0x412c2000, + 0x80040840, 0x040207f7, 0x1c01f000, 0x4d7c0000, + 0x4202f800, 0x00000010, 0x4df00000, 0x4203e000, + 0x50000000, 0x59847803, 0x803c79c0, 0x0400001e, + 0x4c5c0000, 0x583cb809, 0x585c3409, 0x801831c0, + 0x0400000b, 0x0401f84a, 0x04000016, 0x42001000, + 0x0010b96b, 0x0401f87f, 0x04000012, 0x0201f800, + 0x0010055a, 0x0400000f, 0x492cb806, 0x585c0006, + 0x80000540, 0x02000800, 0x0010032d, 0x0401f830, + 0x585c5409, 0x0401f80b, 0x5c00b800, 0x5c03e000, + 0x817ef840, 0x040207e1, 0x5c02f800, 0x1c01f000, + 0x5c00b800, 0x5c03e000, 0x5c02f800, 0x1c01f000, + 0x4803c856, 0x405c6000, 0x802851c0, 0x04000018, + 0x585c0205, 0x82000d00, 0x0000000f, 0x82040c00, + 0x00100e3a, 0x50044000, 0x4c600000, 0x4c640000, + 0x4d040000, 0x4020c000, 0x40320800, 0x5984c804, + 0x4c280000, 0x0401f93b, 0x5c005000, 0x40604000, + 0x41046000, 0x0201f800, 0x00100e18, 0x040207f6, + 0x5c020800, 0x5c00c800, 0x5c00c000, 0x58c80204, + 0x4800bc09, 0x0201f800, 0x00020111, 0x4a026008, + 0x00000101, 0x497a600a, 0x0401f055, 0x4803c856, + 0x59840003, 0x80026540, 0x04000003, 0x59300000, + 0x48030803, 0x1c01f000, 0x4803c856, 0x59840003, + 0x48026000, 0x49330803, 0x1c01f000, 0x58cc0805, + 0x40180000, 0x80040480, 0x0400100d, 0x82cc0580, + 0x0010b960, 0x02020800, 0x0010032d, 0x58c80205, + 0x80040480, 0x0400101d, 0x82000540, 0x00000001, + 0x1c01f000, 0x80003580, 0x0401f7fe, 0x82cc0580, + 0x0010b960, 0x02020800, 0x0010032d, 0x58c80400, + 0x8c000504, 0x040007f8, 0x58c8040b, 0x8c00051e, + 0x040007f5, 0x8c000500, 0x040207f3, 0x84000540, + 0x4801940b, 0x42000000, 0x0010bcff, 0x0201f800, + 0x0010ae10, 0x42001000, 0x00008026, 0x0201f800, + 0x001031f5, 0x0401f7e8, 0x58c8040b, 0x8c00051e, + 0x040007e2, 0x8c000502, 0x040207e0, 0x84000542, + 0x4801940b, 0x42000000, 0x0010bcfe, 0x0201f800, + 0x0010ae10, 0x42001000, 0x00008025, 0x42001800, + 0x00000000, 0x0201f800, 0x001031f5, 0x0401f7d3, + 0x4803c856, 0x58080000, 0x42001800, 0x00000007, + 0x58080801, 0x80040480, 0x04020004, 0x400c0000, + 0x80000540, 0x0401f005, 0x04001003, 0x800c0480, + 0x0401f002, 0x80000080, 0x1c01f000, 0x4803c856, + 0x59300009, 0x80000d40, 0x02000800, 0x0010032d, + 0x58040006, 0x80000540, 0x02000800, 0x0010032d, + 0x59300008, 0x82000500, 0x00000101, 0x82000580, + 0x00000101, 0x02020800, 0x0010032d, 0x42001000, + 0x0010b96b, 0x58080801, 0x82040400, 0x0010b96d, + 0x497a6415, 0x4a026016, 0x0000ffff, 0x45300000, + 0x80040800, 0x82040480, 0x00000008, 0x04001002, + 0x80000d80, 0x48041001, 0x82040400, 0x0010b96d, + 0x45780000, 0x1c01f000, 0x4933c857, 0x59300809, + 0x800409c0, 0x02000800, 0x0010032d, 0x4d2c0000, + 0x58065806, 0x812e59c0, 0x02020800, 0x00100580, + 0x49780806, 0x40065800, 0x0201f800, 0x00100589, + 0x5c025800, 0x4d300000, 0x0201f800, 0x00020a10, + 0x5c026000, 0x1c01f000, 0x0401f807, 0x42018800, 0x00000001, 0x04000003, 0x42018800, 0x00000000, - 0x1c01f000, 0x59bc00ea, 0x82000500, 0x00000007, - 0x82000580, 0x00000001, 0x04020013, 0x4803c856, - 0x42000800, 0x00000000, 0x0401f810, 0x4a0370e4, - 0x00000c00, 0x42000800, 0x00001000, 0x59bc00ea, + 0x1c01f000, 0x59300407, 0x82000580, 0x00000009, + 0x04020006, 0x59300008, 0x8c000510, 0x04000003, + 0x80000580, 0x1c01f000, 0x82000540, 0x00000001, + 0x1c01f000, 0x59840802, 0x8c040d04, 0x1c01f000, + 0x4803c856, 0x59840802, 0x84040d04, 0x84040d40, + 0x4a030800, 0x00000000, 0x48070802, 0x82040d00, + 0x0fffffff, 0x42000000, 0x90000000, 0x0201f000, + 0x00100897, 0x4807c857, 0x4805980a, 0x49799801, + 0x49799803, 0x49799806, 0x49799807, 0x49799808, + 0x49799805, 0x49799809, 0x0401f8c8, 0x0400000a, + 0x0401f8ea, 0x04000008, 0x48359800, 0x48359802, + 0x48359806, 0x4a019804, 0x00000001, 0x4a019807, + 0x00000006, 0x1c01f000, 0x4807c857, 0x58cc1007, + 0x40040000, 0x80080480, 0x04021020, 0x4c040000, + 0x4c080000, 0x0401f8d9, 0x5c001000, 0x5c000800, + 0x0400001c, 0x58cc0006, 0x80006540, 0x0402000b, + 0x48359800, 0x48359802, 0x48359806, 0x49799801, + 0x49799803, 0x49786801, 0x49786800, 0x49799804, + 0x49799807, 0x0401f005, 0x48306801, 0x48346000, + 0x48359806, 0x49786800, 0x58cc0004, 0x58cc1007, + 0x80000000, 0x82081400, 0x00000006, 0x48019804, + 0x48099807, 0x0401f7df, 0x80000580, 0x1c01f000, + 0x82000540, 0x00000001, 0x1c01f000, 0x480bc857, + 0x4c500000, 0x4c540000, 0x4c580000, 0x40083000, + 0x58cc0801, 0x82040480, 0x00000006, 0x02021800, + 0x0010032d, 0x82040400, 0x00105d57, 0x50000000, + 0x58cca800, 0x8054ac00, 0x42001800, 0x00000006, + 0x40040000, 0x800c0480, 0x80082480, 0x04021002, + 0x40080000, 0x8000b0c2, 0x8058b400, 0x5450a800, + 0x8050a000, 0x8054a800, 0x8058b040, 0x040207fc, + 0x40001000, 0x58cc2805, 0x58cc0807, 0x58cc2001, + 0x80142c00, 0x80040c80, 0x80102400, 0x48159805, + 0x48059807, 0x48119801, 0x82100580, 0x00000006, + 0x0400000c, 0x48119801, 0x40080000, 0x80181480, + 0x40083000, 0x04000003, 0x040217d6, 0x80000580, + 0x5c00b000, 0x5c00a800, 0x5c00a000, 0x1c01f000, + 0x58cc0800, 0x800409c0, 0x02000800, 0x0010032d, + 0x58040800, 0x48059800, 0x41782000, 0x0401f7ee, + 0x0401f812, 0x50600000, 0x81041c00, 0x585c0205, + 0x4803c857, 0x82000580, 0x0000002c, 0x02020800, + 0x0010032d, 0x58040202, 0x800000e0, 0x80640540, + 0x48001802, 0x58040000, 0x48001800, 0x58040001, + 0x48001801, 0x1c01f000, 0x4807c856, 0x58cc0005, + 0x80000040, 0x02001800, 0x0010032d, 0x48019805, + 0x58cc1003, 0x82080480, 0x00000006, 0x02021800, + 0x0010032d, 0x82080400, 0x00105d57, 0x50000000, + 0x58cc0802, 0x80040c00, 0x80081000, 0x82080480, + 0x00000006, 0x0402000f, 0x58cc2002, 0x58100000, + 0x80006d40, 0x04000009, 0x4c340000, 0x0401f858, + 0x5c006800, 0x49786801, 0x48359802, 0x58cc0004, + 0x80000040, 0x48019804, 0x49799803, 0x0401f002, + 0x48099803, 0x1c01f000, 0x4807c856, 0x41781800, + 0x58c80201, 0x80000540, 0x04000002, 0x800c1800, + 0x58c80c01, 0x80040c80, 0x0400100a, 0x04000009, + 0x800c1800, 0x58c80202, 0x80041480, 0x04001005, + 0x04000004, 0x800c1800, 0x40080800, 0x0401f7fb, + 0x480d9204, 0x400c0000, 0x42002000, 0x00000001, + 0x80000040, 0x04000007, 0x04001006, 0x80102000, + 0x82000480, 0x00000005, 0x04000002, 0x040217fc, + 0x48119203, 0x1c01f000, 0x4807c856, 0x4d2c0000, + 0x58cc000a, 0x80000540, 0x02000800, 0x0010032d, + 0x82002400, 0x00000006, 0x0201f800, 0x0010055a, + 0x04000012, 0x492d9809, 0x497a5800, 0x497a5801, + 0x0201f800, 0x0010055a, 0x0400000c, 0x58cc0009, + 0x48025800, 0x497a5801, 0x492d9809, 0x82102480, + 0x00000006, 0x040217f7, 0x82000540, 0x00000001, + 0x5c025800, 0x1c01f000, 0x58cc0009, 0x80025d40, + 0x040007fc, 0x592c2000, 0x0201f800, 0x00100580, + 0x40100000, 0x0401f7fa, 0x58cc0009, 0x48cfc857, + 0x80006d40, 0x04000005, 0x50340000, 0x48019809, + 0x49786800, 0x49786801, 0x1c01f000, 0x4813c857, + 0x58cc0009, 0x48002000, 0x48119809, 0x1c01f000, + 0x4807c856, 0x4d2c0000, 0x58cc0009, 0x80025d40, + 0x04000007, 0x592c0000, 0x4c000000, 0x0201f800, + 0x00100580, 0x5c000000, 0x0401f7f9, 0x5c025800, + 0x1c01f000, 0x4807c856, 0x4d2c0000, 0x58cc0002, + 0x80025d40, 0x04000007, 0x592c0000, 0x4c000000, + 0x0201f800, 0x00100580, 0x5c000000, 0x0401f7f9, + 0x49799800, 0x49799802, 0x49799801, 0x49799803, + 0x49799806, 0x49799807, 0x49799808, 0x49799809, + 0x4979980a, 0x5c025800, 0x1c01f000, 0x00000003, + 0x00000006, 0x00000009, 0x0000000c, 0x0000000f, + 0x00000012, 0x4803c856, 0x0401f858, 0x4a00c205, + 0x0000003c, 0x5930100a, 0x82080580, 0x0010b976, + 0x04000013, 0x58080802, 0x82040d00, 0x00ffffff, + 0x58080403, 0x4804c006, 0x4800c407, 0x4a00c208, + 0x00000003, 0x59300812, 0x585c0405, 0x4978c207, + 0x4804c408, 0x80000540, 0x0400000d, 0x58600207, + 0x84000540, 0x4800c207, 0x0401f009, 0x585c080b, + 0x82040d00, 0x00ffffff, 0x4804c006, 0x4a00c407, + 0x000007ff, 0x4978c208, 0x0401f7ef, 0x82603c00, + 0x00000009, 0x58605405, 0x40282000, 0x405c6000, + 0x585c0a05, 0x82040d00, 0x0000000f, 0x82040c00, + 0x00100e3a, 0x50044000, 0x80004d80, 0x50200000, + 0x80307400, 0x58380402, 0x8c244d00, 0x04020003, + 0x48003a00, 0x0401f003, 0x48003c00, 0x801c3800, + 0x80244800, 0x80102040, 0x04000006, 0x0201f800, + 0x00100e18, 0x02000800, 0x0010032d, 0x0401f7f0, + 0x1c01f000, 0x4803c856, 0x4d340000, 0x5930000a, + 0x80026d40, 0x02000800, 0x0010032d, 0x59340212, + 0x82000500, 0x0000ff00, 0x0402000e, 0x59840000, + 0x80000540, 0x0400000b, 0x836c0580, 0x00000003, + 0x04020008, 0x59341c03, 0x42002000, 0x00000004, + 0x42003000, 0x00000004, 0x0201f800, 0x0010326a, + 0x5c026800, 0x1c01f000, 0x4803c856, 0x80001580, + 0x58c80c01, 0x59300012, 0x80040c80, 0x48066012, + 0x58c80201, 0x80000540, 0x04000005, 0x80081000, + 0x80040c80, 0x04001007, 0x04000006, 0x58c80202, + 0x80081000, 0x80040c80, 0x04001002, 0x040207fd, + 0x4808bc09, 0x4808c405, 0x1c01f000, 0x4803c856, + 0x4a0370e5, 0x00020000, 0x59b800e5, 0x8c000524, + 0x040207fc, 0x4a0370e5, 0x00030000, 0x40000000, + 0x40000000, 0x59b800e5, 0x8c000524, 0x040207f5, + 0x5934000e, 0x80006d40, 0x04000010, 0x81300580, + 0x04020004, 0x58340000, 0x4802680e, 0x0401f00a, + 0x40347800, 0x58340000, 0x80006d40, 0x02000800, + 0x0010032d, 0x81300580, 0x040207fa, 0x58340000, + 0x48007800, 0x497a6000, 0x4a0370e5, 0x00020000, + 0x1c01f000, 0x4803c856, 0x4d300000, 0x4d2c0000, + 0x42000800, 0x000003ff, 0x4a0370e5, 0x00020000, + 0x59b800e5, 0x8c000524, 0x04000005, 0x80040840, + 0x040207fa, 0x0201f800, 0x0010032d, 0x4a0370e5, + 0x00030000, 0x40000000, 0x40000000, 0x59b800e5, + 0x8c000524, 0x040207f1, 0x5934000e, 0x80026540, + 0x0400000e, 0x4933c857, 0x59300000, 0x4802680e, + 0x4a026203, 0x00000004, 0x497a6006, 0x497a600a, + 0x4a026008, 0x00000101, 0x59325809, 0x497a5c09, + 0x0401fd7a, 0x0401f7f1, 0x4a0370e5, 0x00020000, + 0x5c025800, 0x5c026000, 0x1c01f000, 0x4803c856, + 0x4c000000, 0x0201f800, 0x001054fb, 0x04020011, + 0x0201f800, 0x00103de1, 0x02020800, 0x0010032d, + 0x5c000000, 0x48026802, 0x0201f800, 0x00107188, + 0x04000009, 0x4936600a, 0x4a026407, 0x00000001, + 0x42027000, 0x00000001, 0x0201f000, 0x00020a34, + 0x5c000000, 0x1c01f000, 0x59300203, 0x82000c80, + 0x0000000e, 0x02021800, 0x0010032d, 0x4803c857, + 0x0c01f001, 0x00105e43, 0x00105e43, 0x00105e43, + 0x00105e45, 0x00105eb2, 0x00105e43, 0x00105e43, + 0x00105f04, 0x00105f05, 0x00105e43, 0x00105e43, + 0x00105e43, 0x00105e43, 0x00105e43, 0x0201f800, + 0x0010032d, 0x493bc857, 0x83380480, 0x00000050, + 0x02021800, 0x0010032d, 0x83380480, 0x00000049, + 0x02001800, 0x0010032d, 0x0c01f001, 0x00105e58, + 0x00105e89, 0x00105e56, 0x00105e56, 0x00105e56, + 0x00105e56, 0x00105e97, 0x0201f800, 0x0010032d, + 0x4d2c0000, 0x59325809, 0x592c0207, 0x48025c07, + 0x4a025a07, 0x00000000, 0x4c5c0000, 0x592cbc0b, + 0x592c0000, 0x48026009, 0x0201f800, 0x000203ab, + 0x59300c15, 0x59300009, 0x80000540, 0x0400000b, + 0x8c040d18, 0x04020014, 0x4a026203, 0x00000007, + 0x42027000, 0x00000043, 0x497a6415, 0x5c00b800, + 0x5c025800, 0x0401f093, 0x8c040d18, 0x04020010, + 0x8c5cbd08, 0x04020011, 0x4a026203, 0x00000007, + 0x497a6415, 0x497a6006, 0x5c00b800, 0x5c025800, + 0x1c01f000, 0x4d400000, 0x59325809, 0x42028000, + 0x00000005, 0x0401f922, 0x5c028000, 0x0201f800, + 0x00107144, 0x0401f7f5, 0x0201f800, 0x00020a10, + 0x0401f7f2, 0x0401fa59, 0x4d2c0000, 0x59325809, + 0x0201f800, 0x00108953, 0x04000006, 0x4d400000, + 0x42028000, 0x00000001, 0x0401f911, 0x5c028000, + 0x5c025800, 0x0201f000, 0x00020a10, 0x0401fa4b, + 0x4d3c0000, 0x417a7800, 0x0201f800, 0x0010e06f, + 0x5c027800, 0x42003000, 0x00000014, 0x0201f800, + 0x0010a5a1, 0x42000000, 0x0010bd1d, 0x0201f800, + 0x0010ae10, 0x4d2c0000, 0x59325809, 0x0201f800, + 0x00108953, 0x04000006, 0x4d400000, 0x42028000, + 0x00000029, 0x0401f8f6, 0x5c028000, 0x5c025800, + 0x0201f000, 0x00020a10, 0x493bc857, 0x497a6006, + 0x83380480, 0x00000054, 0x02021800, 0x0010032d, + 0x83380480, 0x00000047, 0x02001800, 0x0010032d, + 0x0c01f001, 0x00105f03, 0x00105ecc, 0x00105eca, + 0x00105eca, 0x00105eca, 0x00105eca, 0x00105eca, + 0x00105eca, 0x00105eca, 0x00105eca, 0x00105eca, + 0x00105eca, 0x00105ed0, 0x0201f800, 0x0010032d, + 0x59300012, 0x82000500, 0xffff0000, 0x04020034, + 0x59840802, 0x8c040d04, 0x04000025, 0x5930000a, + 0x80026d40, 0x0400001f, 0x4c5c0000, 0x4c600000, + 0x497a6006, 0x5930b809, 0x585c0006, 0x8000c540, + 0x02000800, 0x0010032d, 0x0401fe7f, 0x40625800, + 0x0201f800, 0x000203af, 0x4978b806, 0x0401fee8, + 0x497a600a, 0x585c3409, 0x0401fca9, 0x0400000e, + 0x42001000, 0x0010b96b, 0x0401fcde, 0x0400000a, + 0x0201f800, 0x0010056f, 0x04000007, 0x492cb806, + 0x585c5409, 0x0401fc6f, 0x5c00c000, 0x5c00b800, + 0x1c01f000, 0x0401fc95, 0x0401f7fc, 0x8c040d06, + 0x040207fc, 0x5930000a, 0x80026d40, 0x04000006, + 0x5934000e, 0x80000540, 0x02020800, 0x0010032d, + 0x497a600a, 0x0401fcf9, 0x0401f7f2, 0x0401f088, + 0x4803c856, 0x4803c856, 0x83380580, 0x00000043, + 0x02020800, 0x0010032d, 0x4a026203, 0x00000003, + 0x493a6403, 0x59325809, 0x592c0010, 0x48026012, + 0x497a6014, 0x592c0407, 0x800000c2, 0x800010c4, + 0x80081400, 0x480a6006, 0x0201f800, 0x00020154, + 0x42000800, 0x80000060, 0x0201f000, 0x000209a3, + 0x42000000, 0x0010bd2f, 0x0201f800, 0x0010ae10, + 0x59300203, 0x82000c80, 0x0000000e, 0x02021800, + 0x0010032d, 0x4803c857, 0x82000d80, 0x00000003, + 0x04000006, 0x82000d80, 0x00000004, 0x0400005d, + 0x0201f800, 0x0010032d, 0x4d400000, 0x42028000, + 0x00000006, 0x0401f82d, 0x5c028000, 0x1c01f000, + 0x4803c856, 0x59300203, 0x82000c80, 0x0000000e, + 0x02021800, 0x0010032d, 0x82000d80, 0x00000002, + 0x0400000f, 0x82000d80, 0x00000003, 0x04000006, + 0x82000d80, 0x00000004, 0x04000046, 0x0201f800, + 0x0010032d, 0x4d400000, 0x42028000, 0x00000005, + 0x0401f816, 0x5c028000, 0x1c01f000, 0x4933c857, + 0x4d2c0000, 0x59325809, 0x812e59c0, 0x02000800, + 0x0010032d, 0x592c1a09, 0x8c0c1d0e, 0x02000800, + 0x0010032d, 0x4d400000, 0x42028000, 0x00000001, + 0x0401f84b, 0x0201f800, 0x00107144, 0x5c028000, + 0x5c025800, 0x1c01f000, 0x4933c857, 0x4943c857, + 0x0401fa52, 0x4df00000, 0x59300004, 0x8c00053e, + 0x04020006, 0x0201f800, 0x001064f2, 0x02020800, + 0x0010032d, 0x0401f01b, 0x0201f800, 0x00108659, + 0x04020007, 0x59300415, 0x84000558, 0x48026415, + 0x0201f800, 0x001063f6, 0x04020012, 0x0201f800, + 0x0010e2da, 0x80c40040, 0x04000005, 0x0401f946, + 0x02020800, 0x0010032d, 0x0401f00a, 0x59325809, + 0x0401f827, 0x0201f800, 0x00107144, 0x5c03e000, + 0x04000a1f, 0x82000540, 0x00000001, 0x1c01f000, + 0x5c03e000, 0x04000a1a, 0x80000580, 0x1c01f000, + 0x4933c857, 0x0201f800, 0x00100bd5, 0x4933c857, + 0x4c5c0000, 0x4d340000, 0x497a6006, 0x5930b809, + 0x5930000a, 0x80026d40, 0x04020e39, 0x42001000, + 0x0010b96b, 0x0401fc33, 0x04000009, 0x58c80204, + 0x4800bc09, 0x41785000, 0x0201f800, 0x00105b60, + 0x5c026800, 0x5c00b800, 0x1c01f000, 0x4978bc09, + 0x0201f800, 0x00105b8a, 0x0401f7fa, 0x4803c856, + 0x0201f800, 0x00108953, 0x0400000f, 0x592c0000, + 0x80000d40, 0x04000009, 0x497a5800, 0x49425a07, + 0x4c040000, 0x0201f800, 0x000203ab, 0x5c000800, + 0x40065800, 0x0401f7f6, 0x49425a07, 0x0201f800, + 0x000203ab, 0x1c01f000, 0x0401f807, 0x42018800, + 0x00000001, 0x04000003, 0x42018800, 0x00000000, + 0x1c01f000, 0x4933c857, 0x59300c07, 0x82040580, + 0x0000000e, 0x04000004, 0x82040580, 0x00000009, + 0x04020004, 0x0401ffde, 0x497a6009, 0x80000580, + 0x1c01f000, 0x592e600a, 0x83300480, 0x0010f694, + 0x04001016, 0x41580000, 0x81300480, 0x04021013, + 0x40040000, 0x59300c07, 0x80040580, 0x04020012, + 0x59300a03, 0x82040580, 0x00000007, 0x02020800, + 0x0010032d, 0x59300009, 0x80000540, 0x02020800, + 0x0010032d, 0x0201f800, 0x00020a10, 0x42000000, + 0x00000000, 0x0401f009, 0x42000000, 0x00000008, + 0x0401f006, 0x82040580, 0x00000007, 0x040207fb, + 0x42000000, 0x00000005, 0x592c0a07, 0x48065c07, + 0x48025a07, 0x0201f000, 0x000203ab, 0x4c0c0000, + 0x4c100000, 0x4c140000, 0x4c180000, 0x80001d80, + 0x80002580, 0x42003000, 0x00000020, 0x82040500, + 0x00000001, 0x04000003, 0x40080000, 0x800c1c00, + 0x400c2800, 0x800c1902, 0x80102102, 0x82140500, + 0x00000001, 0x04000003, 0x82102540, 0x80000000, + 0x80040902, 0x80183040, 0x040207f1, 0x40100800, + 0x400c0000, 0x5c003000, 0x5c002800, 0x5c002000, + 0x5c001800, 0x1c01f000, 0x4c580000, 0x4200b000, + 0x00000020, 0x80000540, 0x04000018, 0x80041c80, + 0x04021016, 0x800810c2, 0x80040982, 0x04001006, + 0x80041c80, 0x04021005, 0x8058b040, 0x040207fa, + 0x0401f006, 0x80041c80, 0x400c0800, 0x80081000, + 0x8058b040, 0x040207f4, 0x4c000000, 0x41f00000, + 0x82000500, 0xf7ffffff, 0x4003e000, 0x5c000000, + 0x5c00b000, 0x1c01f000, 0x4c000000, 0x41f00000, + 0x82000540, 0x08000000, 0x0401f7f8, 0x42007000, + 0x0010b995, 0x4a007000, 0x00000005, 0x4a007401, + 0x00000000, 0x4a007201, 0x00000840, 0x4a007202, + 0x00000005, 0x4a0378e8, 0x00000000, 0x4a03c821, + 0x00000010, 0x4a03c823, 0x00000004, 0x0401f81e, + 0x4a0378e9, 0x00003a0d, 0x4a0378e8, 0x00000001, + 0x41780800, 0x4203a000, 0x00007600, 0x4a03a005, + 0xd0000001, 0x59d00006, 0x4a03a005, 0x90000001, + 0x83d3a400, 0x00000020, 0x80040800, 0x82040480, + 0x00000005, 0x040017f8, 0x59e00003, 0x82000500, + 0xffffffe0, 0x82000540, 0x00008000, 0x4803c003, + 0x59c40006, 0x82000500, 0xfffcffff, 0x48038806, + 0x1c01f000, 0x4d900000, 0x4d180000, 0x4a0378e7, + 0xaaaaaaaa, 0x4a0378e6, 0xaaaaaaaa, 0x4a0378e5, + 0xaaaaaaaa, 0x4a0378e4, 0xaaaaaaaa, 0x4a03781a, + 0x0010bc28, 0x4a03781b, 0x00100e3a, 0x4a03781c, + 0x00100e4a, 0x4a031800, 0x00000000, 0x4a031801, + 0x0010b998, 0x4a031802, 0x0010b99f, 0x42000800, + 0x0010bc2b, 0x417a3000, 0x811b20c8, 0x83932400, + 0x0000bf32, 0x48072000, 0x4a032001, 0x00000000, + 0x83180400, 0x001067bc, 0x50000000, 0x48032002, + 0x82040c00, 0x00000005, 0x811a3000, 0x83180480, + 0x00000005, 0x040017f1, 0x5c023000, 0x5c032000, + 0x1c01f000, 0x40680800, 0x0201f800, 0x000209b1, + 0x1c01f000, 0x4933c857, 0x59300804, 0x82040d00, + 0x00000100, 0x82040d40, 0x80000040, 0x48066004, + 0x497a6000, 0x59bc00ea, 0x8c000516, 0x040207fe, + 0x83300400, 0x60000000, 0x480378e1, 0x1c01f000, + 0x598c000f, 0x81300580, 0x04000003, 0x497a6008, + 0x1c01f000, 0x59c40004, 0x82000500, 0x0000000c, + 0x04000005, 0x4a038804, 0x0000000c, 0x497b2807, + 0x0401f00a, 0x0401fb01, 0x59300403, 0x82000d80, + 0x00000040, 0x04000004, 0x82000580, 0x00000042, + 0x04020002, 0x497a6008, 0x0201f800, 0x00106782, + 0x80000580, 0x1c01f000, 0x0401f807, 0x42018800, + 0x00000001, 0x04000003, 0x42018800, 0x00000000, + 0x1c01f000, 0x59300804, 0x8c040d20, 0x04020004, + 0x82000540, 0x00000001, 0x1c01f000, 0x4933c857, + 0x4d380000, 0x59300804, 0x84040d20, 0x48066004, + 0x42027000, 0x00000049, 0x59300203, 0x82000580, + 0x00000003, 0x04000003, 0x42027000, 0x00000013, + 0x0201f800, 0x00020a34, 0x80000580, 0x5c027000, + 0x1c01f000, 0x0401f807, 0x42018800, 0x00000001, + 0x04000003, 0x42018800, 0x00000000, 0x1c01f000, + 0x59300018, 0x81480580, 0x04020003, 0x59300019, + 0x814c0580, 0x1c01f000, 0x4d2c0000, 0x4d300000, + 0x0401f8ce, 0x4df00000, 0x0201f800, 0x00105999, + 0x59900001, 0x82000500, 0x00000003, 0x0c01f001, + 0x001060fd, 0x001060f2, 0x001060f0, 0x001060f0, + 0x0201f800, 0x0010032d, 0x59926004, 0x0401f88a, + 0x813261c0, 0x04000008, 0x59300004, 0x8c000516, + 0x04000004, 0x59325809, 0x497a5809, 0x497a580a, + 0x0401f88a, 0x5c03e000, 0x040008a1, 0x5c026000, + 0x5c025800, 0x1c01f000, 0x5c000000, 0x4c000000, + 0x4803c857, 0x4d300000, 0x497b2807, 0x0401f8ab, + 0x4df00000, 0x598c0000, 0x82000500, 0x0000000f, + 0x4803c857, 0x0c01f001, 0x00106143, 0x00106120, + 0x00106129, 0x00106130, 0x0010613e, 0x00106143, + 0x0010611e, 0x0010612d, 0x00106143, 0x0010611e, + 0x0010611e, 0x0010611e, 0x0010611e, 0x0010611e, + 0x0010611e, 0x0010611e, 0x0201f800, 0x0010032d, + 0x598c000f, 0x80026540, 0x04000004, 0x0401f824, + 0x02020800, 0x0010032d, 0x0201f800, 0x00106782, + 0x0401f01b, 0x0401f82d, 0x0201f800, 0x00106782, + 0x0401f017, 0x0201f800, 0x0010a8b9, 0x0401f7f7, + 0x598c000f, 0x80026540, 0x04000011, 0x0401f83b, + 0x04000007, 0x0401f812, 0x04000005, 0x0401f81f, + 0x04000003, 0x0201f800, 0x0010a8b9, 0x0201f800, + 0x00106782, 0x0401f006, 0x0401f830, 0x02020800, + 0x0010032d, 0x0201f800, 0x00106782, 0x5c03e000, + 0x0400085b, 0x5c026000, 0x1c01f000, 0x598c0009, + 0x81300580, 0x0402000c, 0x0401f84e, 0x0401f83b, + 0x59300000, 0x800001c0, 0x04000004, 0x48031809, + 0x497a6000, 0x0401f003, 0x497b1809, 0x497b1808, + 0x80000580, 0x1c01f000, 0x4d2c0000, 0x59300407, + 0x82000580, 0x00000003, 0x04020012, 0x598c000b, + 0x81300580, 0x0402000f, 0x0401f83a, 0x59325809, + 0x497a5809, 0x497a580a, 0x0401f824, 0x59300000, + 0x800001c0, 0x04000004, 0x4803180b, 0x497a6000, + 0x0401f003, 0x497b180a, 0x497b180b, 0x80000580, + 0x5c025800, 0x1c01f000, 0x598c0005, 0x81300580, + 0x0402000c, 0x0401f827, 0x0401f814, 0x59300000, + 0x800001c0, 0x04000004, 0x48031805, 0x497a6000, + 0x0401f003, 0x497b1805, 0x497b1804, 0x80000580, + 0x1c01f000, 0x4a032001, 0x00000000, 0x497b2004, + 0x497b2005, 0x59900006, 0x82000500, 0x0000ffff, + 0x48032006, 0x1c01f000, 0x4c040000, 0x59300004, + 0x82000500, 0x7ffeffff, 0x48026004, 0x59bc00e4, + 0x8c000514, 0x04000009, 0x42000800, 0x0000bf00, + 0x58040012, 0x81300580, 0x04020004, 0x49780812, + 0x4a0378e4, 0x00000800, 0x5c000800, 0x1c01f000, + 0x4803c856, 0x598c000e, 0x80000540, 0x04000003, + 0x80000040, 0x4803180e, 0x1c01f000, 0x59bc00ea, 0x82000500, 0x00000007, 0x82000580, 0x00000003, - 0x04000005, 0x80040840, 0x040207f9, 0x0201f800, - 0x0010032d, 0x1c01f000, 0x59bc00ea, 0x82000500, - 0x00000007, 0x82000580, 0x00000001, 0x02020800, - 0x0010032d, 0x59bc00ea, 0x8c000516, 0x040207fe, - 0x480778e1, 0x1c01f000, 0x40681000, 0x406c0800, - 0x59bc00ea, 0x8c000516, 0x040207fe, 0x480778e1, - 0x59bc00ea, 0x8c000516, 0x040207fe, 0x480b78e1, - 0x1c01f000, 0x4a0378e4, 0x00002000, 0x59a8006d, - 0x82000500, 0x0000000c, 0x04020008, 0x42007000, - 0x0010b895, 0x58380401, 0x8c000506, 0x04020003, - 0x4a0378e4, 0x00080000, 0x1c01f000, 0x82000d00, - 0x80000018, 0x02020800, 0x00100322, 0x0201f800, - 0x0010032d, 0x00106161, 0x00106206, 0x00106221, - 0x00106161, 0x00106163, 0x00106184, 0x001061a3, - 0x001061d7, 0x00106161, 0x00106204, 0x00106161, - 0x00106161, 0x00106161, 0x00106161, 0x00106161, - 0x00106161, 0x0201f800, 0x0010032d, 0x4d300000, - 0x4d900000, 0x4dd00000, 0x4da40000, 0x4d140000, - 0x0201f800, 0x00106705, 0x59bc00ea, 0x8c000510, - 0x040007fe, 0x59be60e0, 0x59300004, 0x8c000520, - 0x04000011, 0x82000500, 0xfffefeff, 0x48026004, - 0x4a026203, 0x00000003, 0x0401ff97, 0x0201f800, - 0x00100d39, 0x5c022800, 0x5c034800, 0x5c03a000, - 0x5c032000, 0x5c026000, 0x4a0378e4, 0x00000008, - 0x0401f77a, 0x84000510, 0x48026004, 0x0401f7f6, + 0x04020006, 0x4803c856, 0x4a0378e8, 0x00000001, + 0x4a0370e4, 0x00000800, 0x1c01f000, 0x0401f807, + 0x42018800, 0x00000001, 0x04000003, 0x42018800, + 0x00000000, 0x1c01f000, 0x59bc00ea, 0x82000500, + 0x00000007, 0x82000580, 0x00000001, 0x04020013, + 0x4803c856, 0x42000800, 0x00000000, 0x0401f810, + 0x4a0370e4, 0x00000c00, 0x42000800, 0x00001000, + 0x59bc00ea, 0x82000500, 0x00000007, 0x82000580, + 0x00000003, 0x04000005, 0x80040840, 0x040207f9, + 0x0201f800, 0x0010032d, 0x1c01f000, 0x59bc00ea, + 0x82000500, 0x00000007, 0x82000580, 0x00000001, + 0x02020800, 0x0010032d, 0x59bc00ea, 0x8c000516, + 0x040207fe, 0x480778e1, 0x1c01f000, 0x40681000, + 0x406c0800, 0x59bc00ea, 0x8c000516, 0x040207fe, + 0x480778e1, 0x59bc00ea, 0x8c000516, 0x040207fe, + 0x480b78e1, 0x1c01f000, 0x4a0378e4, 0x00002000, + 0x59a8006d, 0x82000500, 0x0000000c, 0x04020008, + 0x42007000, 0x0010b995, 0x58380401, 0x8c000506, + 0x04020003, 0x4a0378e4, 0x00080000, 0x1c01f000, + 0x82000d00, 0x80000018, 0x02020800, 0x00100322, + 0x0201f800, 0x0010032d, 0x00106206, 0x001062ab, + 0x001062c6, 0x00106206, 0x00106208, 0x00106229, + 0x00106248, 0x0010627c, 0x00106206, 0x001062a9, + 0x00106206, 0x00106206, 0x00106206, 0x00106206, + 0x00106206, 0x00106206, 0x0201f800, 0x0010032d, 0x4d300000, 0x4d900000, 0x4dd00000, 0x4da40000, - 0x4d140000, 0x0201f800, 0x00106705, 0x59bc00ea, + 0x4d140000, 0x0201f800, 0x001067aa, 0x59bc00ea, 0x8c000510, 0x040007fe, 0x59be60e0, 0x59300004, - 0x8c000520, 0x0400000f, 0x82000500, 0xfffefeff, - 0x48026004, 0x0401ff78, 0x0201f800, 0x00100d78, - 0x5c022800, 0x5c034800, 0x5c03a000, 0x5c032000, - 0x5c026000, 0x4a0378e4, 0x00000008, 0x0401f75b, - 0x84000510, 0x48026004, 0x0401f7f6, 0x4d300000, - 0x4d2c0000, 0x4d340000, 0x4da40000, 0x4cd00000, + 0x8c000520, 0x04000011, 0x82000500, 0xfffefeff, + 0x48026004, 0x4a026203, 0x00000003, 0x0401ff97, + 0x0201f800, 0x00100d3a, 0x5c022800, 0x5c034800, + 0x5c03a000, 0x5c032000, 0x5c026000, 0x4a0378e4, + 0x00000008, 0x0401f77a, 0x84000510, 0x48026004, + 0x0401f7f6, 0x4d300000, 0x4d900000, 0x4dd00000, + 0x4da40000, 0x4d140000, 0x0201f800, 0x001067aa, 0x59bc00ea, 0x8c000510, 0x040007fe, 0x59be60e0, - 0x813261c0, 0x02000800, 0x0010032d, 0x59300004, - 0x8c000520, 0x0400001e, 0x82000500, 0xfffefeff, - 0x48026004, 0x5932680a, 0x42034800, 0x0010b898, - 0x04011000, 0x4a03c840, 0x0010b89f, 0x4a03c842, - 0x00000012, 0x04011000, 0x4a03c840, 0x0010b8b1, - 0x4a03c842, 0x000000ff, 0x04011000, 0x4a03c840, - 0x0010b9b0, 0x4a03c842, 0x000000ff, 0x0201f800, - 0x0010671c, 0x5c01a000, 0x5c034800, 0x5c026800, - 0x5c025800, 0x5c026000, 0x1c01f000, 0x84000510, - 0x48026004, 0x5c01a000, 0x5c034800, 0x5c026800, - 0x5c025800, 0x5c026000, 0x1c01f000, 0x4d300000, - 0x4d2c0000, 0x4d340000, 0x4cd00000, 0x4d900000, - 0x4dd00000, 0x4da40000, 0x4d140000, 0x0201f800, - 0x00106705, 0x59bc00ea, 0x8c000510, 0x040007fe, - 0x59be60e0, 0x813261c0, 0x02000800, 0x0010032d, 0x59300004, 0x8c000520, 0x0400000f, 0x82000500, - 0xfffefeff, 0x48026004, 0x0201f800, 0x00106ef3, + 0xfffefeff, 0x48026004, 0x0401ff78, 0x0201f800, + 0x00100d79, 0x5c022800, 0x5c034800, 0x5c03a000, + 0x5c032000, 0x5c026000, 0x4a0378e4, 0x00000008, + 0x0401f75b, 0x84000510, 0x48026004, 0x0401f7f6, + 0x4d300000, 0x4d2c0000, 0x4d340000, 0x4da40000, + 0x4cd00000, 0x59bc00ea, 0x8c000510, 0x040007fe, + 0x59be60e0, 0x813261c0, 0x02000800, 0x0010032d, + 0x59300004, 0x8c000520, 0x0400001e, 0x82000500, + 0xfffefeff, 0x48026004, 0x5932680a, 0x42034800, + 0x0010b998, 0x04011000, 0x4a03c840, 0x0010b99f, + 0x4a03c842, 0x00000012, 0x04011000, 0x4a03c840, + 0x0010b9b1, 0x4a03c842, 0x000000ff, 0x04011000, + 0x4a03c840, 0x0010bab0, 0x4a03c842, 0x000000ff, + 0x0201f800, 0x001067c1, 0x5c01a000, 0x5c034800, + 0x5c026800, 0x5c025800, 0x5c026000, 0x1c01f000, + 0x84000510, 0x48026004, 0x5c01a000, 0x5c034800, + 0x5c026800, 0x5c025800, 0x5c026000, 0x1c01f000, + 0x4d300000, 0x4d2c0000, 0x4d340000, 0x4cd00000, + 0x4d900000, 0x4dd00000, 0x4da40000, 0x4d140000, + 0x0201f800, 0x001067aa, 0x59bc00ea, 0x8c000510, + 0x040007fe, 0x59be60e0, 0x813261c0, 0x02000800, + 0x0010032d, 0x59300004, 0x8c000520, 0x0400000f, + 0x82000500, 0xfffefeff, 0x48026004, 0x0201f800, + 0x00106f82, 0x5c022800, 0x5c034800, 0x5c03a000, + 0x5c032000, 0x5c01a000, 0x5c026800, 0x5c025800, + 0x5c026000, 0x1c01f000, 0x84000510, 0x48026004, 0x5c022800, 0x5c034800, 0x5c03a000, 0x5c032000, 0x5c01a000, 0x5c026800, 0x5c025800, 0x5c026000, - 0x1c01f000, 0x84000510, 0x48026004, 0x5c022800, - 0x5c034800, 0x5c03a000, 0x5c032000, 0x5c01a000, - 0x5c026800, 0x5c025800, 0x5c026000, 0x1c01f000, - 0x0201f800, 0x0010032d, 0x4d300000, 0x4d380000, - 0x42000000, 0x0010bc7e, 0x0201f800, 0x0010ad1d, - 0x0401ff01, 0x598e600f, 0x59c40004, 0x8c000506, - 0x04000004, 0x0401f8f4, 0x4a038804, 0x00000008, - 0x813261c0, 0x04000007, 0x0201f800, 0x001066ff, - 0x42027000, 0x00000014, 0x0201f800, 0x00020a34, - 0x4a0378e4, 0x00000002, 0x5c027000, 0x5c026000, - 0x0401f6da, 0x4d180000, 0x4d300000, 0x4d380000, - 0x4d900000, 0x4dd00000, 0x4da40000, 0x4d140000, - 0x0401fee5, 0x417a3000, 0x59c40804, 0x83180400, - 0x001066af, 0x50000000, 0x80040500, 0x0400001c, - 0x42000000, 0x0010bc7f, 0x0201f800, 0x0010ad1d, - 0x0201f800, 0x00106705, 0x59926004, 0x0401f86a, - 0x83180400, 0x001066af, 0x50000000, 0x48038804, - 0x813261c0, 0x0400000a, 0x59300004, 0x8c00050c, - 0x04020003, 0x4a026203, 0x00000003, 0x42027000, - 0x0000004a, 0x0201f800, 0x00020a34, 0x59c40004, - 0x82000500, 0x00f80000, 0x04000005, 0x811a3000, - 0x83180480, 0x00000005, 0x040017dc, 0x4a0378e4, - 0x00000008, 0x5c022800, 0x5c034800, 0x5c03a000, - 0x5c032000, 0x5c027000, 0x5c026000, 0x5c023000, - 0x0401f6a2, 0x4d2c0000, 0x4d340000, 0x5932680a, - 0x598c0800, 0x82040580, 0x00000004, 0x04020006, - 0x838c1400, 0x00000005, 0x838c1c00, 0x00000004, - 0x0401f010, 0x82040580, 0x00000001, 0x04020006, - 0x838c1400, 0x00000009, 0x838c1c00, 0x00000008, - 0x0401f008, 0x82040580, 0x00000002, 0x04020028, - 0x838c1400, 0x0000000b, 0x838c1c00, 0x0000000a, - 0x41306800, 0x58340000, 0x80007d40, 0x04000020, - 0x583c000a, 0x81340580, 0x04020006, 0x403c6800, - 0x583c0000, 0x80007d40, 0x040207fa, 0x0401f018, - 0x4933c857, 0x483fc857, 0x583c0000, 0x48006800, - 0x49307800, 0x443c1000, 0x500c0000, 0x803c0580, - 0x04020002, 0x44341800, 0x80000580, 0x4803180f, - 0x48031811, 0x598c0000, 0x82000580, 0x00000003, - 0x04000003, 0x4a031800, 0x00000000, 0x80000580, - 0x5c026800, 0x5c025800, 0x1c01f000, 0x82000540, - 0x00000001, 0x0401f7fb, 0x0401f807, 0x42018800, - 0x00000000, 0x04000003, 0x42018800, 0x00000001, - 0x1c01f000, 0x491bc857, 0x59b400f6, 0x82000500, - 0x00000038, 0x040207fd, 0x59c80840, 0x82040540, - 0x00000010, 0x48039040, 0x59c41008, 0x4c040000, - 0x4c080000, 0x82081500, 0xffffff7f, 0x480b8808, - 0x0401fbe1, 0x04020007, 0x0401fbe5, 0x04000024, - 0x48038804, 0x0201f800, 0x00100df6, 0x0401f044, + 0x1c01f000, 0x0201f800, 0x0010032d, 0x4d300000, + 0x4d380000, 0x42000000, 0x0010bd7e, 0x0201f800, + 0x0010ae10, 0x0401ff01, 0x598e600f, 0x59c40004, + 0x8c000506, 0x04000004, 0x0401f8f4, 0x4a038804, + 0x00000008, 0x813261c0, 0x04000007, 0x0201f800, + 0x001067a4, 0x42027000, 0x00000014, 0x0201f800, + 0x00020a34, 0x4a0378e4, 0x00000002, 0x5c027000, + 0x5c026000, 0x0401f6da, 0x4d180000, 0x4d300000, + 0x4d380000, 0x4d900000, 0x4dd00000, 0x4da40000, + 0x4d140000, 0x0401fee5, 0x417a3000, 0x59c40804, + 0x83180400, 0x00106754, 0x50000000, 0x80040500, + 0x0400001c, 0x42000000, 0x0010bd7f, 0x0201f800, + 0x0010ae10, 0x0201f800, 0x001067aa, 0x59926004, + 0x0401f86a, 0x83180400, 0x00106754, 0x50000000, + 0x48038804, 0x813261c0, 0x0400000a, 0x59300004, + 0x8c00050c, 0x04020003, 0x4a026203, 0x00000003, + 0x42027000, 0x0000004a, 0x0201f800, 0x00020a34, + 0x59c40004, 0x82000500, 0x00f80000, 0x04000005, + 0x811a3000, 0x83180480, 0x00000005, 0x040017dc, + 0x4a0378e4, 0x00000008, 0x5c022800, 0x5c034800, + 0x5c03a000, 0x5c032000, 0x5c027000, 0x5c026000, + 0x5c023000, 0x0401f6a2, 0x4d2c0000, 0x4d340000, + 0x5932680a, 0x598c0800, 0x82040580, 0x00000004, + 0x04020006, 0x838c1400, 0x00000005, 0x838c1c00, + 0x00000004, 0x0401f010, 0x82040580, 0x00000001, + 0x04020006, 0x838c1400, 0x00000009, 0x838c1c00, + 0x00000008, 0x0401f008, 0x82040580, 0x00000002, + 0x04020028, 0x838c1400, 0x0000000b, 0x838c1c00, + 0x0000000a, 0x41306800, 0x58340000, 0x80007d40, + 0x04000020, 0x583c000a, 0x81340580, 0x04020006, + 0x403c6800, 0x583c0000, 0x80007d40, 0x040207fa, + 0x0401f018, 0x4933c857, 0x483fc857, 0x583c0000, + 0x48006800, 0x49307800, 0x443c1000, 0x500c0000, + 0x803c0580, 0x04020002, 0x44341800, 0x80000580, + 0x4803180f, 0x48031811, 0x598c0000, 0x82000580, + 0x00000003, 0x04000003, 0x4a031800, 0x00000000, + 0x80000580, 0x5c026800, 0x5c025800, 0x1c01f000, + 0x82000540, 0x00000001, 0x0401f7fb, 0x0401f807, + 0x42018800, 0x00000000, 0x04000003, 0x42018800, + 0x00000001, 0x1c01f000, 0x491bc857, 0x59b400f6, + 0x82000500, 0x00000038, 0x040207fd, 0x59c80840, + 0x82040540, 0x00000010, 0x48039040, 0x59c41008, + 0x4c040000, 0x4c080000, 0x82081500, 0xffffff7f, + 0x480b8808, 0x0401fbe1, 0x04020007, 0x0401fbe5, + 0x04000024, 0x48038804, 0x0201f800, 0x00100df7, + 0x0401f044, 0x4a038803, 0x00000008, 0x59c40003, + 0x82000500, 0x00000003, 0x040007fd, 0x8c000502, + 0x04020007, 0x0401fbd7, 0x04000016, 0x48038804, + 0x0201f800, 0x00100df7, 0x0401f036, 0x0401fbd7, + 0x04020007, 0x59c80040, 0x8400056a, 0x48039040, + 0x59c80040, 0x8c00052a, 0x040207fe, 0x59c40005, + 0x82000500, 0xc0000000, 0x04000006, 0x59c400a3, + 0x84000540, 0x480388a3, 0x4a038805, 0xc0000000, + 0x0201f800, 0x00100d88, 0x4a03a005, 0x30000000, + 0x59d00006, 0x4a03a005, 0x30000000, 0x59900006, + 0x82000500, 0xffff0000, 0x48032006, 0x59d00005, + 0x8c000504, 0x040207fe, 0x42000800, 0x00007600, + 0x83180540, 0x60000000, 0x480008a1, 0x811800dc, + 0x59c80840, 0x80040540, 0x48039040, 0x82000540, + 0x00003000, 0x48039040, 0x59c80040, 0x82000500, + 0x00003000, 0x040207fd, 0x0201f800, 0x00100de6, + 0x83180400, 0x00106754, 0x50000000, 0x48038804, + 0x80000580, 0x4df00000, 0x0201f800, 0x00105999, + 0x5c03e000, 0x5c001000, 0x5c000800, 0x480b8808, + 0x48079040, 0x1c01f000, 0x4803c856, 0x59b400f6, + 0x82000500, 0x00000038, 0x040207fd, 0x59c80840, + 0x82040540, 0x00000010, 0x48039040, 0x59c41008, + 0x4c040000, 0x4c080000, 0x82081500, 0xffffff7f, + 0x480b8808, 0x59c40004, 0x82000500, 0x00000003, + 0x04020010, 0x59c40004, 0x82000500, 0x0000000c, + 0x04000005, 0x4a038804, 0x0000000c, 0x8c000504, + 0x0401f025, 0x59c80040, 0x8400056e, 0x48039040, + 0x59c80040, 0x8c00052e, 0x040207fe, 0x0401f01e, 0x4a038803, 0x00000008, 0x59c40003, 0x82000500, - 0x00000003, 0x040007fd, 0x8c000502, 0x04020007, - 0x0401fbd7, 0x04000016, 0x48038804, 0x0201f800, - 0x00100df6, 0x0401f036, 0x0401fbd7, 0x04020007, - 0x59c80040, 0x8400056a, 0x48039040, 0x59c80040, - 0x8c00052a, 0x040207fe, 0x59c40005, 0x82000500, - 0xc0000000, 0x04000006, 0x59c400a3, 0x84000540, - 0x480388a3, 0x4a038805, 0xc0000000, 0x0201f800, - 0x00100d87, 0x4a03a005, 0x30000000, 0x59d00006, - 0x4a03a005, 0x30000000, 0x59900006, 0x82000500, - 0xffff0000, 0x48032006, 0x59d00005, 0x8c000504, - 0x040207fe, 0x42000800, 0x00007600, 0x83180540, - 0x60000000, 0x480008a1, 0x811800dc, 0x59c80840, - 0x80040540, 0x48039040, 0x82000540, 0x00003000, - 0x48039040, 0x59c80040, 0x82000500, 0x00003000, - 0x040207fd, 0x0201f800, 0x00100de5, 0x83180400, - 0x001066af, 0x50000000, 0x48038804, 0x80000580, - 0x4df00000, 0x0201f800, 0x001058f4, 0x5c03e000, - 0x5c001000, 0x5c000800, 0x480b8808, 0x48079040, - 0x1c01f000, 0x4803c856, 0x59b400f6, 0x82000500, - 0x00000038, 0x040207fd, 0x59c80840, 0x82040540, - 0x00000010, 0x48039040, 0x59c41008, 0x4c040000, - 0x4c080000, 0x82081500, 0xffffff7f, 0x480b8808, - 0x59c40004, 0x82000500, 0x00000003, 0x04020010, - 0x59c40004, 0x82000500, 0x0000000c, 0x04000005, - 0x4a038804, 0x0000000c, 0x8c000504, 0x0401f025, - 0x59c80040, 0x8400056e, 0x48039040, 0x59c80040, - 0x8c00052e, 0x040207fe, 0x0401f01e, 0x4a038803, - 0x00000008, 0x59c40003, 0x82000500, 0x00000003, - 0x040007fd, 0x8c000502, 0x04020006, 0x59c40004, - 0x4a038804, 0x0000000c, 0x8c000504, 0x0401f011, - 0x59c80040, 0x8400056a, 0x48039040, 0x59c80040, - 0x8c00052a, 0x040207fe, 0x59c40005, 0x82000500, - 0xc0000000, 0x04000007, 0x59c400a3, 0x84000540, - 0x480388a3, 0x4a038805, 0xc0000000, 0x80000580, - 0x497b2807, 0x5c001000, 0x5c000800, 0x480b8808, - 0x48079040, 0x1c01f000, 0x0401f807, 0x42018800, + 0x00000003, 0x040007fd, 0x8c000502, 0x04020006, + 0x59c40004, 0x4a038804, 0x0000000c, 0x8c000504, + 0x0401f011, 0x59c80040, 0x8400056a, 0x48039040, + 0x59c80040, 0x8c00052a, 0x040207fe, 0x59c40005, + 0x82000500, 0xc0000000, 0x04000007, 0x59c400a3, + 0x84000540, 0x480388a3, 0x4a038805, 0xc0000000, + 0x80000580, 0x497b2807, 0x5c001000, 0x5c000800, + 0x480b8808, 0x48079040, 0x1c01f000, 0x0401f807, + 0x42018800, 0x00000001, 0x04000003, 0x42018800, + 0x00000000, 0x1c01f000, 0x5c000000, 0x4c000000, + 0x4803c857, 0x491bc857, 0x4933c857, 0x4d900000, + 0x4dd00000, 0x4da40000, 0x4d140000, 0x0401fdb3, + 0x4df00000, 0x0401fba9, 0x59900004, 0x800001c0, + 0x04000011, 0x81300580, 0x0402000f, 0x59300004, + 0x84000520, 0x48026004, 0x0401ff3c, 0x04020009, + 0x5c03e000, 0x04000d92, 0x80000580, 0x5c022800, + 0x5c034800, 0x5c03a000, 0x5c032000, 0x1c01f000, + 0x0401fcce, 0x42027000, 0x00000049, 0x59300004, + 0x84000520, 0x48026004, 0x8c00050c, 0x02020800, + 0x00020a34, 0x5c03e000, 0x04000d81, 0x82000540, + 0x00000001, 0x5c022800, 0x5c034800, 0x5c03a000, + 0x5c032000, 0x1c01f000, 0x0401f807, 0x42018800, 0x00000001, 0x04000003, 0x42018800, 0x00000000, - 0x1c01f000, 0x5c000000, 0x4c000000, 0x4803c857, - 0x491bc857, 0x4933c857, 0x4d900000, 0x4dd00000, - 0x4da40000, 0x4d140000, 0x0401fdb3, 0x4df00000, - 0x0401fba9, 0x59900004, 0x800001c0, 0x04000011, - 0x81300580, 0x0402000f, 0x59300004, 0x84000520, - 0x48026004, 0x0401ff3c, 0x04020009, 0x5c03e000, - 0x04000d92, 0x80000580, 0x5c022800, 0x5c034800, - 0x5c03a000, 0x5c032000, 0x1c01f000, 0x0401fcce, - 0x42027000, 0x00000049, 0x59300004, 0x84000520, - 0x48026004, 0x8c00050c, 0x02020800, 0x00020a34, - 0x5c03e000, 0x04000d81, 0x82000540, 0x00000001, + 0x1c01f000, 0x4933c857, 0x0401fd84, 0x4df00000, + 0x598c000f, 0x80026540, 0x04000012, 0x59300004, + 0x84000520, 0x48026004, 0x0401ff74, 0x04000017, + 0x0401fcca, 0x42027000, 0x00000013, 0x59300004, + 0x8c00050c, 0x02020800, 0x00020a34, 0x5c03e000, + 0x04000d5f, 0x82000540, 0x00000001, 0x1c01f000, + 0x836c1580, 0x00000001, 0x040007f9, 0x836c1580, + 0x00000004, 0x040007f6, 0x42001000, 0x0010392f, + 0x0201f800, 0x00105872, 0x5c03e000, 0x04000d50, + 0x80000580, 0x1c01f000, 0x4d300000, 0x4d180000, + 0x4d3c0000, 0x0401fd5d, 0x4df00000, 0x4a0378e4, + 0x0000000f, 0x0401fb29, 0x417a3000, 0x811808c8, + 0x82040c00, 0x0000bf32, 0x58066004, 0x813261c0, + 0x04000010, 0x417a7800, 0x0201f800, 0x001040c4, + 0x0400000a, 0x59300c07, 0x82040580, 0x00000003, + 0x04000004, 0x82040580, 0x00000006, 0x04020003, + 0x42027800, 0x00000002, 0x0201f800, 0x0010853c, + 0x811a3000, 0x83180480, 0x00000005, 0x040017e8, + 0x42000800, 0x00000040, 0x0201f800, 0x001010db, + 0x4a0378e4, 0x0000000a, 0x5c03e000, 0x04000d24, + 0x5c027800, 0x5c023000, 0x5c026000, 0x1c01f000, + 0x4803c856, 0x4d300000, 0x0401fd30, 0x4df00000, + 0x59c80840, 0x84040d74, 0x82040540, 0x00000010, + 0x48039040, 0x59c41008, 0x4c040000, 0x4c080000, + 0x82081500, 0xffffff7f, 0x480b8808, 0x42001000, + 0x00000003, 0x0401fae4, 0x598e600f, 0x813261c0, + 0x04020f99, 0x04000aed, 0x497b2807, 0x0401f809, + 0x5c001000, 0x5c000800, 0x480b8808, 0x48079040, + 0x5c03e000, 0x04000d02, 0x5c026000, 0x1c01f000, + 0x4d380000, 0x4d180000, 0x4d300000, 0x4d900000, + 0x4dd00000, 0x4da40000, 0x4d140000, 0x417a3000, + 0x0201f800, 0x00105999, 0x811a3000, 0x83180580, + 0x00000005, 0x040207fb, 0x0401fabc, 0x04020009, 0x5c022800, 0x5c034800, 0x5c03a000, 0x5c032000, - 0x1c01f000, 0x0401f807, 0x42018800, 0x00000001, - 0x04000003, 0x42018800, 0x00000000, 0x1c01f000, - 0x4933c857, 0x0401fd84, 0x4df00000, 0x598c000f, - 0x80026540, 0x04000012, 0x59300004, 0x84000520, - 0x48026004, 0x0401ff74, 0x04000017, 0x0401fcca, - 0x42027000, 0x00000013, 0x59300004, 0x8c00050c, - 0x02020800, 0x00020a34, 0x5c03e000, 0x04000d5f, - 0x82000540, 0x00000001, 0x1c01f000, 0x836c1580, - 0x00000001, 0x040007f9, 0x836c1580, 0x00000004, - 0x040007f6, 0x42001000, 0x0010391c, 0x0201f800, - 0x001057cd, 0x5c03e000, 0x04000d50, 0x80000580, - 0x1c01f000, 0x4d300000, 0x4d180000, 0x4d3c0000, - 0x0401fd5d, 0x4df00000, 0x4a0378e4, 0x0000000f, - 0x0401fb29, 0x417a3000, 0x811808c8, 0x82040c00, - 0x0000bf32, 0x58066004, 0x813261c0, 0x04000010, - 0x417a7800, 0x0201f800, 0x001040aa, 0x0400000a, - 0x59300c07, 0x82040580, 0x00000003, 0x04000004, - 0x82040580, 0x00000006, 0x04020003, 0x42027800, - 0x00000002, 0x0201f800, 0x00108487, 0x811a3000, - 0x83180480, 0x00000005, 0x040017e8, 0x42000800, - 0x00000040, 0x0201f800, 0x001010da, 0x4a0378e4, - 0x0000000a, 0x5c03e000, 0x04000d24, 0x5c027800, - 0x5c023000, 0x5c026000, 0x1c01f000, 0x4803c856, - 0x4d300000, 0x0401fd30, 0x4df00000, 0x59c80840, - 0x84040d74, 0x82040540, 0x00000010, 0x48039040, - 0x59c41008, 0x4c040000, 0x4c080000, 0x82081500, - 0xffffff7f, 0x480b8808, 0x42001000, 0x00000003, - 0x0401fae4, 0x598e600f, 0x813261c0, 0x04020f99, - 0x04000aed, 0x497b2807, 0x0401f809, 0x5c001000, - 0x5c000800, 0x480b8808, 0x48079040, 0x5c03e000, - 0x04000d02, 0x5c026000, 0x1c01f000, 0x4d380000, - 0x4d180000, 0x4d300000, 0x4d900000, 0x4dd00000, - 0x4da40000, 0x4d140000, 0x417a3000, 0x0201f800, - 0x001058f4, 0x811a3000, 0x83180580, 0x00000005, - 0x040207fb, 0x0401fabc, 0x04020009, 0x5c022800, - 0x5c034800, 0x5c03a000, 0x5c032000, 0x5c026000, - 0x5c023000, 0x5c027000, 0x1c01f000, 0x0401faf2, - 0x59926004, 0x4933c857, 0x0401fe8b, 0x813261c0, - 0x040007f3, 0x42027000, 0x0000004a, 0x4a026203, - 0x00000003, 0x0201f800, 0x00020a34, 0x0401f7ec, - 0x4d300000, 0x4d180000, 0x4d900000, 0x0401fcea, - 0x42001000, 0x00000000, 0x598c0800, 0x82040580, - 0x00000005, 0x04000003, 0x82040580, 0x00000008, - 0x04000aa4, 0x417a3000, 0x811b20c8, 0x83932400, - 0x0000bf32, 0x59900001, 0x82000580, 0x00000001, - 0x0402000d, 0x42000800, 0x00000004, 0x59926004, - 0x59300012, 0x82000500, 0xfff00000, 0x80000540, - 0x04000003, 0x42000800, 0x0000000e, 0x0201f800, - 0x001058d0, 0x811a3000, 0x83180480, 0x00000005, - 0x040017ea, 0x59c81040, 0x84081534, 0x480b9040, - 0x0401fcb2, 0x5c032000, 0x5c023000, 0x5c026000, - 0x1c01f000, 0x4933c857, 0x4d900000, 0x4dd00000, - 0x4da40000, 0x4d140000, 0x4d380000, 0x0401fcba, - 0x4df00000, 0x59300004, 0x8c00053e, 0x04020007, - 0x8c000520, 0x04000027, 0x0201f800, 0x00106018, - 0x04000024, 0x0401f02c, 0x598c000f, 0x81300580, - 0x04000012, 0x0201f800, 0x001085a4, 0x04020026, - 0x0401fa33, 0x04000024, 0x48038804, 0x0401fa9e, - 0x0201f800, 0x00100df6, 0x0201f800, 0x0010603d, - 0x42027000, 0x00000049, 0x59300004, 0x8c00050c, - 0x0402000e, 0x0401f00f, 0x59c40004, 0x8c000504, - 0x04000015, 0x4a038804, 0x00000004, 0x0201f800, - 0x0010605d, 0x42027000, 0x00000013, 0x59300004, - 0x8c00050c, 0x04000003, 0x0201f800, 0x00020a34, - 0x5c03e000, 0x04000c79, 0x5c027000, 0x5c022800, - 0x5c034800, 0x5c03a000, 0x5c032000, 0x80000580, - 0x1c01f000, 0x5c03e000, 0x04000c70, 0x5c027000, + 0x5c026000, 0x5c023000, 0x5c027000, 0x1c01f000, + 0x0401faf2, 0x59926004, 0x4933c857, 0x0401fe8b, + 0x813261c0, 0x040007f3, 0x42027000, 0x0000004a, + 0x4a026203, 0x00000003, 0x0201f800, 0x00020a34, + 0x0401f7ec, 0x4d300000, 0x4d180000, 0x4d900000, + 0x0401fcea, 0x42001000, 0x00000000, 0x598c0800, + 0x82040580, 0x00000005, 0x04000003, 0x82040580, + 0x00000008, 0x04000aa4, 0x417a3000, 0x811b20c8, + 0x83932400, 0x0000bf32, 0x59900001, 0x82000580, + 0x00000001, 0x0402000d, 0x42000800, 0x00000004, + 0x59926004, 0x59300012, 0x82000500, 0xfff00000, + 0x80000540, 0x04000003, 0x42000800, 0x0000000e, + 0x0201f800, 0x00105975, 0x811a3000, 0x83180480, + 0x00000005, 0x040017ea, 0x59c81040, 0x84081534, + 0x480b9040, 0x0401fcb2, 0x5c032000, 0x5c023000, + 0x5c026000, 0x1c01f000, 0x4933c857, 0x4d900000, + 0x4dd00000, 0x4da40000, 0x4d140000, 0x4d380000, + 0x0401fcba, 0x4df00000, 0x59300004, 0x8c00053e, + 0x04020007, 0x8c000520, 0x04000027, 0x0201f800, + 0x001060bd, 0x04000024, 0x0401f02c, 0x598c000f, + 0x81300580, 0x04000012, 0x0201f800, 0x00108659, + 0x04020026, 0x0401fa33, 0x04000024, 0x48038804, + 0x0401fa9e, 0x0201f800, 0x00100df7, 0x0201f800, + 0x001060e2, 0x42027000, 0x00000049, 0x59300004, + 0x8c00050c, 0x0402000e, 0x0401f00f, 0x59c40004, + 0x8c000504, 0x04000015, 0x4a038804, 0x00000004, + 0x0201f800, 0x00106102, 0x42027000, 0x00000013, + 0x59300004, 0x8c00050c, 0x04000003, 0x0201f800, + 0x00020a34, 0x5c03e000, 0x04000c79, 0x5c027000, 0x5c022800, 0x5c034800, 0x5c03a000, 0x5c032000, - 0x82000540, 0x00000001, 0x1c01f000, 0x59300407, - 0x82000580, 0x00000003, 0x04020008, 0x0201f800, - 0x0010889a, 0x04000005, 0x59301009, 0x58080409, - 0x84000550, 0x48001409, 0x1c01f000, 0x497b2807, - 0x0401fc6d, 0x59c400af, 0x800001c0, 0x04020004, - 0x0401fc56, 0x0201f000, 0x001012cf, 0x598c0011, - 0x82001480, 0x00000002, 0x04021007, 0x80000000, - 0x48031811, 0x80000580, 0x0201f800, 0x001058c9, - 0x04000011, 0x0401fed7, 0x0402000f, 0x0401ffe0, - 0x42000000, 0x0010bc36, 0x0201f800, 0x0010ad1d, - 0x0401fda1, 0x04000008, 0x0401fa45, 0x4d380000, - 0x42027000, 0x00000014, 0x0201f800, 0x00020a34, - 0x5c027000, 0x0401fc39, 0x0201f000, 0x001012cf, - 0x4d900000, 0x4dd00000, 0x4da40000, 0x4d140000, - 0x4d300000, 0x0201f800, 0x001058f4, 0x0401fc42, - 0x59c400af, 0x800001c0, 0x0400002a, 0x0401fa36, - 0x59926004, 0x4933c857, 0x59300004, 0x8c000516, - 0x0400000b, 0x0401fe7c, 0x04020022, 0x0201f800, - 0x0010603d, 0x0401fc21, 0x42000800, 0x80000804, - 0x0201f800, 0x000209a3, 0x0401f01a, 0x42001800, - 0x00007530, 0x0401f9d8, 0x04020004, 0x0201f800, - 0x001058ce, 0x0401f013, 0x0401fe6b, 0x04020011, - 0x0401ffab, 0x42000000, 0x0010bc37, 0x0201f800, - 0x0010ad1d, 0x59300004, 0x8c00050c, 0x04020003, - 0x4a026203, 0x00000003, 0x4d380000, 0x42027000, - 0x0000004a, 0x0201f800, 0x00020a34, 0x5c027000, - 0x0401fc02, 0x5c026000, 0x5c022800, 0x5c034800, - 0x5c03a000, 0x5c032000, 0x0201f000, 0x001012cf, - 0x4c600000, 0x4d900000, 0x4dd00000, 0x4da40000, - 0x4d140000, 0x4d300000, 0x4d2c0000, 0x0401fc06, - 0x0401f9fd, 0x59926004, 0x813261c0, 0x04000091, - 0x0201f800, 0x00104716, 0x04020007, 0x4178c000, - 0x0201f800, 0x0010704e, 0x04000003, 0x4200c000, - 0x00000001, 0x42000000, 0x00001000, 0x50000000, - 0x82000480, 0x24320001, 0x04001038, 0x0201f800, - 0x00100d87, 0x59303004, 0x8c183536, 0x0400002f, - 0x42003000, 0x00001000, 0x80183040, 0x04000014, - 0x0201f800, 0x0010ae33, 0x040007fc, 0x0201f800, - 0x00100636, 0x42003000, 0x00007a15, 0x50183800, - 0x821c0500, 0x00007000, 0x04000009, 0x48035075, - 0x821c0500, 0xffff8fff, 0x44003000, 0x4a032832, - 0x000004b0, 0x4a0378e4, 0x02c00000, 0x4a030000, - 0x00000000, 0x0201f800, 0x00100de5, 0x850e1d2e, - 0x42000000, 0x0010bcaf, 0x0201f800, 0x0010ad1d, - 0x59325809, 0x812e59c0, 0x02000800, 0x0010032d, - 0x0401f861, 0x04000057, 0x59303004, 0x84183536, - 0x481a6004, 0x0401f032, 0x0201f800, 0x001058e1, - 0x0400002c, 0x0401f04f, 0x0201f800, 0x00100de5, - 0x8d0e1d2e, 0x040207f9, 0x0201f800, 0x00104716, - 0x04020006, 0x8060c1c0, 0x04000004, 0x0201f800, - 0x00107078, 0x0401f043, 0x0201f800, 0x001058e1, - 0x04020040, 0x4933c857, 0x0401f93f, 0x04020019, - 0x0201f800, 0x001058f4, 0x813261c0, 0x04000039, - 0x59325809, 0x812e59c0, 0x02000800, 0x0010032d, - 0x0201f800, 0x00104716, 0x04020022, 0x59c40093, - 0x4803c857, 0x800001c0, 0x0402000a, 0x592c0209, - 0x84000550, 0x48025a09, 0x0201f800, 0x0010483a, - 0x04020028, 0x592c0209, 0x84000510, 0x48025a09, - 0x0201f800, 0x001058ce, 0x0401f022, 0x42000000, - 0x0010bc37, 0x0201f800, 0x0010ad1d, 0x0401fd22, - 0x592c0209, 0x84000550, 0x48025a09, 0x4d380000, - 0x42027000, 0x0000004a, 0x4a026203, 0x00000003, - 0x0201f800, 0x00020a34, 0x5c027000, 0x0401f011, - 0x59900006, 0x82000500, 0xffff0000, 0x040207ec, - 0x59c408af, 0x82040480, 0x000003e8, 0x040217e8, - 0x59900006, 0x82000400, 0x00010000, 0x48032006, - 0x0201f800, 0x001058ce, 0x0201f800, 0x001038f5, - 0x5c025800, 0x5c026000, 0x5c022800, 0x5c034800, - 0x5c03a000, 0x5c032000, 0x5c00c000, 0x0201f000, - 0x001060fa, 0x4c5c0000, 0x4c640000, 0x5930bc07, - 0x5930c804, 0x825c0580, 0x00000003, 0x04000004, - 0x825c0580, 0x00000006, 0x0402002f, 0x0201f800, - 0x001040aa, 0x0402002c, 0x0401fcef, 0x0201f800, - 0x0010603d, 0x825c0580, 0x00000003, 0x04020005, - 0x8c64cd16, 0x0400000c, 0x8464cd36, 0x0401f01b, - 0x82640500, 0x0000001f, 0x82000580, 0x00000005, - 0x04000005, 0x0201f800, 0x0002015e, 0x8464cd4a, - 0x0401f7f6, 0x0401f820, 0x04020017, 0x48166012, - 0x0201f800, 0x00100e59, 0x04020013, 0x8264cd00, - 0xfff7ffdf, 0x592c0209, 0x8c00051e, 0x04020011, - 0x8464cd4a, 0x50201800, 0x480e600b, 0x4832600c, - 0x4822600d, 0x482a600e, 0x8464cd7e, 0x48666004, - 0x0401f835, 0x80000580, 0x5c00c800, 0x5c00b800, - 0x1c01f000, 0x82000540, 0x00000001, 0x0401f7fb, - 0x8400051e, 0x48025a09, 0x0201f800, 0x00100e17, - 0x0401f7ed, 0x59302013, 0x811808c2, 0x82040c00, - 0x00006000, 0x58040101, 0x82000500, 0xffff0000, - 0x800001c0, 0x0400000b, 0x811808ca, 0x82040c00, - 0x00006000, 0x58040138, 0x58042139, 0x81a41000, - 0x58081403, 0x800810e0, 0x80081540, 0x480a601b, - 0x59300013, 0x80100480, 0x04001010, 0x59902808, - 0x59303016, 0x80140480, 0x0400100c, 0x40002800, - 0x80180480, 0x04001009, 0x48026016, 0x8464cd36, - 0x59300014, 0x80100580, 0x04000003, 0x8464cd76, - 0x80000580, 0x1c01f000, 0x82000540, 0x00000001, - 0x1c01f000, 0x59bc00ea, 0x82000500, 0x00000007, - 0x82000580, 0x00000001, 0x02000800, 0x0010032d, - 0x5930080a, 0x5804100c, 0x480bc857, 0x800811c0, - 0x04020003, 0x4930080c, 0x0401f01b, 0x59bc1031, - 0x40081800, 0x800811c0, 0x02000800, 0x0010032d, - 0x5808000a, 0x80040580, 0x04000004, 0x40081800, - 0x58081000, 0x0401f7f8, 0x58082000, 0x49781000, - 0x480a6001, 0x400c0000, 0x80080580, 0x04020006, - 0x49337831, 0x48126000, 0x801021c0, 0x0402000d, - 0x0401f00b, 0x48101800, 0x801021c0, 0x04020002, - 0x480f7830, 0x59bc0831, 0x4807c857, 0x48066000, - 0x49337831, 0x800409c0, 0x04020002, 0x49337830, - 0x1c01f000, 0x4d300000, 0x4d2c0000, 0x0201f800, - 0x0010610d, 0x598e600f, 0x4933c857, 0x813261c0, - 0x04000049, 0x59c41004, 0x480bc857, 0x8c081500, - 0x0400000a, 0x0201f800, 0x00104716, 0x04020015, - 0x0201f800, 0x0010483a, 0x0402003f, 0x0201f800, - 0x001058c9, 0x0401f03c, 0x82080500, 0x000001fe, - 0x040207fb, 0x59c8010b, 0x4803c857, 0x8c000500, - 0x040007f7, 0x42000000, 0x0010bc80, 0x0201f800, - 0x0010ad1d, 0x0401fd2b, 0x0400087f, 0x0401f02e, - 0x598c0011, 0x80000540, 0x04020011, 0x59c408af, - 0x82040480, 0x000003e8, 0x0402100d, 0x598c0811, - 0x80040800, 0x48071811, 0x0201f800, 0x001058c9, - 0x42000000, 0x0010bb75, 0x0201f800, 0x0010ad1d, - 0x0201f800, 0x001038f5, 0x0401f01b, 0x42000000, - 0x0010bc36, 0x0201f800, 0x0010ad1d, 0x0401fc8e, - 0x813261c0, 0x04020003, 0x0401f863, 0x0401f012, - 0x59300407, 0x82000580, 0x00000003, 0x04020007, - 0x59325809, 0x812e59c0, 0x04000004, 0x592c0209, - 0x84000550, 0x48025a09, 0x0401f879, 0x4d380000, - 0x42027000, 0x00000014, 0x0201f800, 0x00020a34, - 0x5c027000, 0x5c025800, 0x5c026000, 0x0201f000, - 0x001060fa, 0x59c40804, 0x83180400, 0x001066a5, - 0x50000000, 0x80040500, 0x1c01f000, 0x59c40804, - 0x83180400, 0x001066aa, 0x50000000, 0x80040500, - 0x1c01f000, 0x59c80840, 0x82040d00, 0x000e0000, - 0x83180400, 0x001066b4, 0x50000000, 0x80040580, - 0x1c01f000, 0x00000210, 0x00000420, 0x00000840, - 0x00001080, 0x00002100, 0x00004000, 0x00008000, - 0x00010000, 0x00020000, 0x00040000, 0x00080000, - 0x00100000, 0x00200000, 0x00400000, 0x00800000, - 0x00000000, 0x00020000, 0x00040000, 0x00060000, - 0x00080000, 0x59900806, 0x80040120, 0x800c0480, - 0x04021004, 0x82000540, 0x00000001, 0x0401f005, - 0x82040c00, 0x00010000, 0x48072006, 0x80000580, - 0x1c01f000, 0x417a3000, 0x0401ffd7, 0x04000006, - 0x811a3000, 0x83180580, 0x00000005, 0x040207fb, - 0x1c01f000, 0x81780080, 0x1c01f000, 0x40681000, - 0x480bc857, 0x0201f800, 0x0010610d, 0x4df00000, - 0x598c0800, 0x82040d80, 0x00000007, 0x04000002, - 0x480b1800, 0x5c03e000, 0x02000800, 0x001060fa, - 0x1c01f000, 0x4803c856, 0x0201f800, 0x0010610d, - 0x4df00000, 0x497b180f, 0x497b1803, 0x497b1810, - 0x497b1811, 0x497b1812, 0x598c0000, 0x82000580, - 0x00000003, 0x04000012, 0x59a80073, 0x8c00053e, - 0x04000007, 0x59bc00e4, 0x8c000534, 0x04000004, - 0x4a031800, 0x00000008, 0x0401f009, 0x836c0580, - 0x00000002, 0x04020004, 0x4a031800, 0x00000005, - 0x0401f003, 0x4a031800, 0x00000000, 0x5c03e000, - 0x02000800, 0x001060fa, 0x1c01f000, 0x59300004, - 0x8c00050c, 0x04020003, 0x4a026203, 0x00000001, - 0x1c01f000, 0x83180480, 0x00000005, 0x02021800, - 0x0010032d, 0x491bc857, 0x811b20c8, 0x83932400, - 0x0000bf32, 0x811ba0ca, 0x83d3a400, 0x00007600, - 0x83180400, 0x00106717, 0x50034800, 0x811a28c2, - 0x83162c00, 0x00006100, 0x1c01f000, 0x0010baaf, - 0x0010bac6, 0x0010badd, 0x0010baf4, 0x0010bb0b, - 0x4933c857, 0x59300407, 0x82000c80, 0x00000014, - 0x04021017, 0x04011000, 0x0c01f001, 0x00106737, - 0x001067de, 0x00106b6d, 0x00106bc7, 0x001067de, - 0x00106b6d, 0x00106bc7, 0x00106737, 0x001067de, - 0x00106737, 0x00106737, 0x00106737, 0x00106737, - 0x00106737, 0x00106737, 0x00106737, 0x0010673e, - 0x0010673e, 0x0010a821, 0x0010a8f0, 0x4803c857, - 0x0201f800, 0x0010610d, 0x0201f800, 0x0010605d, - 0x0201f000, 0x001060fa, 0x42001000, 0x0010bb55, - 0x50081000, 0x4930100b, 0x58080002, 0x82000580, - 0x00000100, 0x0402003e, 0x59325809, 0x812e59c0, - 0x02000800, 0x0010032d, 0x492fc856, 0x5932680a, - 0x813669c0, 0x04000024, 0x592c040c, 0x82000500, - 0x0000e000, 0x04000004, 0x0201f800, 0x00106b66, - 0x0401f003, 0x0201f800, 0x00106b58, 0x592c000e, + 0x80000580, 0x1c01f000, 0x5c03e000, 0x04000c70, + 0x5c027000, 0x5c022800, 0x5c034800, 0x5c03a000, + 0x5c032000, 0x82000540, 0x00000001, 0x1c01f000, + 0x59300407, 0x82000580, 0x00000003, 0x04020008, + 0x0201f800, 0x00108953, 0x04000005, 0x59301009, + 0x58080409, 0x84000550, 0x48001409, 0x1c01f000, + 0x497b2807, 0x0401fc6d, 0x59c400af, 0x800001c0, + 0x04020004, 0x0401fc56, 0x0201f000, 0x001012d0, + 0x598c0011, 0x82001480, 0x00000002, 0x04021007, + 0x80000000, 0x48031811, 0x80000580, 0x0201f800, + 0x0010596e, 0x04000011, 0x0401fed7, 0x0402000f, + 0x0401ffe0, 0x42000000, 0x0010bd36, 0x0201f800, + 0x0010ae10, 0x0401fda1, 0x04000008, 0x0401fa45, + 0x4d380000, 0x42027000, 0x00000014, 0x0201f800, + 0x00020a34, 0x5c027000, 0x0401fc39, 0x0201f000, + 0x001012d0, 0x4d900000, 0x4dd00000, 0x4da40000, + 0x4d140000, 0x4d300000, 0x0201f800, 0x00105999, + 0x0401fc42, 0x59c400af, 0x800001c0, 0x0400002a, + 0x0401fa36, 0x59926004, 0x4933c857, 0x59300004, + 0x8c000516, 0x0400000b, 0x0401fe7c, 0x04020022, + 0x0201f800, 0x001060e2, 0x0401fc21, 0x42000800, + 0x80000804, 0x0201f800, 0x000209a3, 0x0401f01a, + 0x42001800, 0x00007530, 0x0401f9d8, 0x04020004, + 0x0201f800, 0x00105973, 0x0401f013, 0x0401fe6b, + 0x04020011, 0x0401ffab, 0x42000000, 0x0010bd37, + 0x0201f800, 0x0010ae10, 0x59300004, 0x8c00050c, + 0x04020003, 0x4a026203, 0x00000003, 0x4d380000, + 0x42027000, 0x0000004a, 0x0201f800, 0x00020a34, + 0x5c027000, 0x0401fc02, 0x5c026000, 0x5c022800, + 0x5c034800, 0x5c03a000, 0x5c032000, 0x0201f000, + 0x001012d0, 0x4c600000, 0x4d900000, 0x4dd00000, + 0x4da40000, 0x4d140000, 0x4d300000, 0x4d2c0000, + 0x0401fc06, 0x0401f9fd, 0x59926004, 0x813261c0, + 0x04000091, 0x0201f800, 0x00104755, 0x04020007, + 0x4178c000, 0x0201f800, 0x001070dd, 0x04000003, + 0x4200c000, 0x00000001, 0x42000000, 0x00001000, + 0x50000000, 0x82000480, 0x24320001, 0x04001038, + 0x0201f800, 0x00100d88, 0x59303004, 0x8c183536, + 0x0400002f, 0x42003000, 0x00001000, 0x80183040, + 0x04000014, 0x0201f800, 0x0010af26, 0x040007fc, + 0x0201f800, 0x00100636, 0x42003000, 0x00007a15, + 0x50183800, 0x821c0500, 0x00007000, 0x04000009, + 0x48035075, 0x821c0500, 0xffff8fff, 0x44003000, + 0x4a032832, 0x000004b0, 0x4a0378e4, 0x02c00000, + 0x4a030000, 0x00000000, 0x0201f800, 0x00100de6, + 0x850e1d2e, 0x42000000, 0x0010bdaf, 0x0201f800, + 0x0010ae10, 0x59325809, 0x812e59c0, 0x02000800, + 0x0010032d, 0x0401f861, 0x04000057, 0x59303004, + 0x84183536, 0x481a6004, 0x0401f032, 0x0201f800, + 0x00105986, 0x0400002c, 0x0401f04f, 0x0201f800, + 0x00100de6, 0x8d0e1d2e, 0x040207f9, 0x0201f800, + 0x00104755, 0x04020006, 0x8060c1c0, 0x04000004, + 0x0201f800, 0x00107107, 0x0401f043, 0x0201f800, + 0x00105986, 0x04020040, 0x4933c857, 0x0401f93f, + 0x04020019, 0x0201f800, 0x00105999, 0x813261c0, + 0x04000039, 0x59325809, 0x812e59c0, 0x02000800, + 0x0010032d, 0x0201f800, 0x00104755, 0x04020022, + 0x59c40093, 0x4803c857, 0x800001c0, 0x0402000a, + 0x592c0209, 0x84000550, 0x48025a09, 0x0201f800, + 0x00104879, 0x04020028, 0x592c0209, 0x84000510, + 0x48025a09, 0x0201f800, 0x00105973, 0x0401f022, + 0x42000000, 0x0010bd37, 0x0201f800, 0x0010ae10, + 0x0401fd22, 0x592c0209, 0x84000550, 0x48025a09, + 0x4d380000, 0x42027000, 0x0000004a, 0x4a026203, + 0x00000003, 0x0201f800, 0x00020a34, 0x5c027000, + 0x0401f011, 0x59900006, 0x82000500, 0xffff0000, + 0x040207ec, 0x59c408af, 0x82040480, 0x000003e8, + 0x040217e8, 0x59900006, 0x82000400, 0x00010000, + 0x48032006, 0x0201f800, 0x00105973, 0x0201f800, + 0x00103908, 0x5c025800, 0x5c026000, 0x5c022800, + 0x5c034800, 0x5c03a000, 0x5c032000, 0x5c00c000, + 0x0201f000, 0x0010619f, 0x4c5c0000, 0x4c640000, + 0x5930bc07, 0x5930c804, 0x825c0580, 0x00000003, + 0x04000004, 0x825c0580, 0x00000006, 0x0402002f, + 0x0201f800, 0x001040c4, 0x0402002c, 0x0401fcef, + 0x0201f800, 0x001060e2, 0x825c0580, 0x00000003, + 0x04020005, 0x8c64cd16, 0x0400000c, 0x8464cd36, + 0x0401f01b, 0x82640500, 0x0000001f, 0x82000580, + 0x00000005, 0x04000005, 0x0201f800, 0x0002015e, + 0x8464cd4a, 0x0401f7f6, 0x0401f820, 0x04020017, + 0x48166012, 0x0201f800, 0x00100e5a, 0x04020013, + 0x8264cd00, 0xfff7ffdf, 0x592c0209, 0x8c00051e, + 0x04020011, 0x8464cd4a, 0x50201800, 0x480e600b, + 0x4832600c, 0x4822600d, 0x482a600e, 0x8464cd7e, + 0x48666004, 0x0401f835, 0x80000580, 0x5c00c800, + 0x5c00b800, 0x1c01f000, 0x82000540, 0x00000001, + 0x0401f7fb, 0x8400051e, 0x48025a09, 0x0201f800, + 0x00100e18, 0x0401f7ed, 0x59302013, 0x811808c2, + 0x82040c00, 0x00006000, 0x58040101, 0x82000500, + 0xffff0000, 0x800001c0, 0x0400000b, 0x811808ca, + 0x82040c00, 0x00006000, 0x58040138, 0x58042139, + 0x81a41000, 0x58081403, 0x800810e0, 0x80081540, + 0x480a601b, 0x59300013, 0x80100480, 0x04001010, + 0x59902808, 0x59303016, 0x80140480, 0x0400100c, + 0x40002800, 0x80180480, 0x04001009, 0x48026016, + 0x8464cd36, 0x59300014, 0x80100580, 0x04000003, + 0x8464cd76, 0x80000580, 0x1c01f000, 0x82000540, + 0x00000001, 0x1c01f000, 0x59bc00ea, 0x82000500, + 0x00000007, 0x82000580, 0x00000001, 0x02000800, + 0x0010032d, 0x5930080a, 0x5804100c, 0x480bc857, + 0x800811c0, 0x04020003, 0x4930080c, 0x0401f01b, + 0x59bc1031, 0x40081800, 0x800811c0, 0x02000800, + 0x0010032d, 0x5808000a, 0x80040580, 0x04000004, + 0x40081800, 0x58081000, 0x0401f7f8, 0x58082000, + 0x49781000, 0x480a6001, 0x400c0000, 0x80080580, + 0x04020006, 0x49337831, 0x48126000, 0x801021c0, + 0x0402000d, 0x0401f00b, 0x48101800, 0x801021c0, + 0x04020002, 0x480f7830, 0x59bc0831, 0x4807c857, + 0x48066000, 0x49337831, 0x800409c0, 0x04020002, + 0x49337830, 0x1c01f000, 0x4d300000, 0x4d2c0000, + 0x0201f800, 0x001061b2, 0x598e600f, 0x4933c857, + 0x813261c0, 0x04000049, 0x59c41004, 0x480bc857, + 0x8c081500, 0x0400000a, 0x0201f800, 0x00104755, + 0x04020015, 0x0201f800, 0x00104879, 0x0402003f, + 0x0201f800, 0x0010596e, 0x0401f03c, 0x82080500, + 0x000001fe, 0x040207fb, 0x59c8010b, 0x4803c857, + 0x8c000500, 0x040007f7, 0x42000000, 0x0010bd80, + 0x0201f800, 0x0010ae10, 0x0401fd2b, 0x0400087f, + 0x0401f02e, 0x598c0011, 0x80000540, 0x04020011, + 0x59c408af, 0x82040480, 0x000003e8, 0x0402100d, + 0x598c0811, 0x80040800, 0x48071811, 0x0201f800, + 0x0010596e, 0x42000000, 0x0010bc75, 0x0201f800, + 0x0010ae10, 0x0201f800, 0x00103908, 0x0401f01b, + 0x42000000, 0x0010bd36, 0x0201f800, 0x0010ae10, + 0x0401fc8e, 0x813261c0, 0x04020003, 0x0401f863, + 0x0401f012, 0x59300407, 0x82000580, 0x00000003, + 0x04020007, 0x59325809, 0x812e59c0, 0x04000004, + 0x592c0209, 0x84000550, 0x48025a09, 0x0401f879, + 0x4d380000, 0x42027000, 0x00000014, 0x0201f800, + 0x00020a34, 0x5c027000, 0x5c025800, 0x5c026000, + 0x0201f000, 0x0010619f, 0x59c40804, 0x83180400, + 0x0010674a, 0x50000000, 0x80040500, 0x1c01f000, + 0x59c40804, 0x83180400, 0x0010674f, 0x50000000, + 0x80040500, 0x1c01f000, 0x59c80840, 0x82040d00, + 0x000e0000, 0x83180400, 0x00106759, 0x50000000, + 0x80040580, 0x1c01f000, 0x00000210, 0x00000420, + 0x00000840, 0x00001080, 0x00002100, 0x00004000, + 0x00008000, 0x00010000, 0x00020000, 0x00040000, + 0x00080000, 0x00100000, 0x00200000, 0x00400000, + 0x00800000, 0x00000000, 0x00020000, 0x00040000, + 0x00060000, 0x00080000, 0x59900806, 0x80040120, + 0x800c0480, 0x04021004, 0x82000540, 0x00000001, + 0x0401f005, 0x82040c00, 0x00010000, 0x48072006, + 0x80000580, 0x1c01f000, 0x417a3000, 0x0401ffd7, + 0x04000006, 0x811a3000, 0x83180580, 0x00000005, + 0x040207fb, 0x1c01f000, 0x81780080, 0x1c01f000, + 0x40681000, 0x480bc857, 0x0201f800, 0x001061b2, + 0x4df00000, 0x598c0800, 0x82040d80, 0x00000007, + 0x04000002, 0x480b1800, 0x5c03e000, 0x02000800, + 0x0010619f, 0x1c01f000, 0x4803c856, 0x0201f800, + 0x001061b2, 0x4df00000, 0x497b180f, 0x497b1803, + 0x497b1810, 0x497b1811, 0x497b1812, 0x598c0000, + 0x82000580, 0x00000003, 0x04000012, 0x59a80073, + 0x8c00053e, 0x04000007, 0x59bc00e4, 0x8c000534, + 0x04000004, 0x4a031800, 0x00000008, 0x0401f009, + 0x836c0580, 0x00000002, 0x04020004, 0x4a031800, + 0x00000005, 0x0401f003, 0x4a031800, 0x00000000, + 0x5c03e000, 0x02000800, 0x0010619f, 0x1c01f000, + 0x59300004, 0x8c00050c, 0x04020003, 0x4a026203, + 0x00000001, 0x1c01f000, 0x83180480, 0x00000005, + 0x02021800, 0x0010032d, 0x491bc857, 0x811b20c8, + 0x83932400, 0x0000bf32, 0x811ba0ca, 0x83d3a400, + 0x00007600, 0x83180400, 0x001067bc, 0x50034800, + 0x811a28c2, 0x83162c00, 0x00006100, 0x1c01f000, + 0x0010bbaf, 0x0010bbc6, 0x0010bbdd, 0x0010bbf4, + 0x0010bc0b, 0x4933c857, 0x59300407, 0x82000c80, + 0x00000014, 0x04021017, 0x04011000, 0x0c01f001, + 0x001067dc, 0x00106880, 0x00106bfc, 0x00106c56, + 0x00106880, 0x00106bfc, 0x00106c56, 0x001067dc, + 0x00106880, 0x001067dc, 0x001067dc, 0x001067dc, + 0x001067dc, 0x001067dc, 0x001067dc, 0x001067dc, + 0x001067e3, 0x001067e3, 0x0010a914, 0x0010a9e3, + 0x4803c857, 0x0201f800, 0x001061b2, 0x0201f800, + 0x00106102, 0x0201f000, 0x0010619f, 0x42001000, + 0x0010bc55, 0x50081000, 0x4930100b, 0x58080002, + 0x82000580, 0x00000100, 0x0402003b, 0x59325809, + 0x812e59c0, 0x02000800, 0x0010032d, 0x492fc856, + 0x5932680a, 0x83340580, 0x0010c2b2, 0x04000022, + 0x592c040c, 0x82000500, 0x0000e000, 0x04000003, + 0x0401fbfd, 0x0401f002, 0x0401fbed, 0x592c000e, 0x82000500, 0x00000003, 0x04000007, 0x82000580, 0x00000003, 0x80000000, 0x58d00802, 0x80040540, - 0x4801a002, 0x42001000, 0x0010bb55, 0x50081000, + 0x4801a002, 0x42001000, 0x0010bc55, 0x50081000, 0x4930100a, 0x492c1009, 0x82d00400, 0x00000006, 0x48001003, 0x592c000e, 0x48001005, 0x592c000f, 0x48001006, 0x592c0010, 0x48001007, 0x0201f000, - 0x00020016, 0x42026800, 0x0010c1b2, 0x592c080b, - 0x48066802, 0x82040500, 0x00ffff00, 0x04000007, - 0x497a6a12, 0x59a8100f, 0x82081500, 0x00ffff00, - 0x80080580, 0x040207d1, 0x82040d00, 0x000000ff, - 0x800408d0, 0x48066a12, 0x0401f7cc, 0x1c01f000, - 0x4d2c0000, 0x4d300000, 0x4c580000, 0x4c540000, - 0x4c500000, 0x58325809, 0x812e59c0, 0x02000800, - 0x0010032d, 0x58300002, 0x82000580, 0x00000100, - 0x04020022, 0x5830000a, 0x5832600b, 0x81300d80, - 0x04020012, 0x0401f834, 0x04020016, 0x592c080e, - 0x82040c00, 0x00000003, 0x80040904, 0x4004b000, - 0x4200a000, 0x0010b89f, 0x4050a800, 0x0201f800, - 0x0010ae19, 0x42001000, 0x0000dc00, 0x0201f800, - 0x00106f71, 0x0401f007, 0x4803c857, 0x4933c857, - 0x813261c0, 0x04000003, 0x0401f81f, 0x04000f93, - 0x5c00a000, 0x5c00a800, 0x5c00b000, 0x5c026000, - 0x5c025800, 0x1c01f000, 0x5830000a, 0x5832600b, - 0x4a006002, 0x00000100, 0x4803c857, 0x4933c857, - 0x81300d80, 0x040207ed, 0x0401f80f, 0x040207f1, - 0x4803c857, 0x0201f800, 0x0010e343, 0x80c40040, - 0x02020800, 0x0010032d, 0x4a025a07, 0x00000002, - 0x0201f800, 0x000203ab, 0x0201f800, 0x001070b5, - 0x0401f7e4, 0x0201f800, 0x0010610d, 0x4df00000, - 0x598c000f, 0x81300580, 0x04020009, 0x598c0005, - 0x81300580, 0x04020006, 0x5c03e000, 0x02000800, - 0x001060fa, 0x80000580, 0x1c01f000, 0x4803c857, - 0x5c03e000, 0x02000800, 0x001060fa, 0x82000540, - 0x00000001, 0x1c01f000, 0x59300403, 0x82000c80, - 0x00000058, 0x02021800, 0x0010032d, 0x4803c857, - 0x0c01f001, 0x00106965, 0x00106981, 0x001069a6, - 0x00106acb, 0x00106a7a, 0x00106a7e, 0x00106a8d, - 0x00106aa1, 0x00106a96, 0x00106aa1, 0x00106af0, - 0x00106aa1, 0x00106b33, 0x00106aa1, 0x00106b41, - 0x00106aa1, 0x00106a96, 0x00106aa1, 0x00106b45, - 0x00106845, 0x00106845, 0x00106845, 0x00106845, - 0x00106845, 0x00106845, 0x00106845, 0x00106845, - 0x00106845, 0x00106845, 0x00106845, 0x00106be5, - 0x00106bfc, 0x00106c06, 0x00106845, 0x00106c1f, - 0x00106a8d, 0x00106845, 0x00106a8d, 0x00106aa1, - 0x00106845, 0x001069a6, 0x00106acb, 0x00106845, - 0x00106c6f, 0x00106aa1, 0x00106845, 0x00106c7f, - 0x00106aa1, 0x00106845, 0x00106a96, 0x00106956, - 0x00106847, 0x00106845, 0x00106c96, 0x00106cd5, - 0x00106d5a, 0x00106845, 0x00106d6a, 0x00106a8b, - 0x00106d5d, 0x00106845, 0x00106c2b, 0x00106db9, - 0x00106845, 0x00106dee, 0x00106e41, 0x00106845, - 0x0010685c, 0x001068d0, 0x001068dd, 0x00106845, - 0x00106a8d, 0x00106845, 0x0010691c, 0x00106927, - 0x00106845, 0x00106845, 0x00106870, 0x001068a3, - 0x00106e80, 0x00106ec1, 0x00106ee7, 0x00106845, - 0x00106845, 0x00106845, 0x00106eb5, 0x00106d83, - 0x00106c96, 0x00106845, 0x00106845, 0x00106845, - 0x00106845, 0x00106845, 0x00106845, 0x00106845, - 0x00106845, 0x0201f800, 0x0010032d, 0x0401fb11, - 0x59325809, 0x592c000a, 0x4801a006, 0x592c000b, - 0x4801a007, 0x592c000c, 0x4801a008, 0x592c000d, - 0x4801a009, 0x592c000e, 0x4801a00a, 0x4979a00b, - 0x592c080a, 0x82040d00, 0x00000fff, 0x80040904, - 0x42001000, 0x0000dc00, 0x0201f000, 0x00106f71, - 0x4a026202, 0x0000ffff, 0x0401fafa, 0x4d2c0000, - 0x4a01a006, 0x05000000, 0x59325809, 0x592c000a, - 0x4801a007, 0x592c000b, 0x4801a008, 0x592c000c, - 0x4801a009, 0x5c025800, 0x42000800, 0x00000004, - 0x42001000, 0x0000dc00, 0x0201f000, 0x00106f71, - 0x4c580000, 0x4c500000, 0x4c540000, 0x4d2c0000, - 0x0401fae4, 0x5930040b, 0x82000500, 0x00000003, - 0x04000007, 0x82000580, 0x00000003, 0x80000000, - 0x58d00802, 0x80040540, 0x4801a002, 0x59325809, - 0x4200a800, 0x0010b89f, 0x592cb206, 0x8258b400, - 0x00000003, 0x8058b104, 0x832ca400, 0x00000007, - 0x0201f800, 0x0010adef, 0x40580000, 0x8054ac00, - 0x592c0001, 0x80000540, 0x04000003, 0x40025800, - 0x0401f7f2, 0x4200a000, 0x0010b89f, 0x4050a800, - 0x5930b40b, 0x8258b400, 0x00000003, 0x8058b104, - 0x40580800, 0x0201f800, 0x0010ae19, 0x42001000, - 0x0000dc00, 0x5c025800, 0x5c00a800, 0x5c00a000, - 0x5c00b000, 0x0201f000, 0x00106f71, 0x4c580000, - 0x4c500000, 0x4c540000, 0x4d2c0000, 0x42034800, - 0x0010b898, 0x0401fabd, 0x59325809, 0x592c0802, - 0x4807c857, 0x40041000, 0x80040904, 0x82081500, - 0x00000003, 0x04000008, 0x80040800, 0x82081580, - 0x00000003, 0x80081000, 0x58d00002, 0x80080540, - 0x4801a002, 0x4a025806, 0x02000000, 0x82d0ac00, - 0x00000006, 0x592cb011, 0x832ca400, 0x00000006, - 0x0201f800, 0x0010adef, 0x40580000, 0x8054ac00, - 0x592e5801, 0x41780000, 0x812e5d40, 0x040207f6, - 0x42001000, 0x0000dc00, 0x5c025800, 0x5c00a800, - 0x5c00a000, 0x5c00b000, 0x0201f000, 0x00106f71, - 0x0401fa88, 0x4a01a006, 0x78000000, 0x5930001d, - 0x840001c0, 0x4801a407, 0x4979a207, 0x42000800, - 0x00000002, 0x42001000, 0x0000dc00, 0x0201f000, - 0x00106f71, 0x4c580000, 0x4c540000, 0x4c500000, - 0x0401fa86, 0x4a01a006, 0x02000000, 0x59a80002, - 0x4801a008, 0x59a80003, 0x4801a009, 0x59a80000, - 0x4801a00a, 0x59a80001, 0x4801a00b, 0x5930001d, - 0x82000d80, 0x0000e000, 0x04000012, 0x82000d80, - 0x0000df00, 0x04000006, 0x4a01a407, 0x00000010, - 0x42000800, 0x00000006, 0x0401f01f, 0x42001800, - 0x0010b841, 0x0201f800, 0x00100532, 0x42000000, - 0x0000df00, 0x4200a000, 0x0010b841, 0x0401f009, - 0x42001800, 0x0010b84e, 0x0201f800, 0x00100532, - 0x42000000, 0x0000e000, 0x4200a000, 0x0010b84e, - 0x82000540, 0x00000010, 0x4801a407, 0x4a01a207, - 0x00000034, 0x4200b000, 0x0000000d, 0x82d0ac00, - 0x0000000c, 0x0201f800, 0x0010adef, 0x42000800, - 0x00000013, 0x42001000, 0x0000dc00, 0x5c00a000, - 0x5c00a800, 0x5c00b000, 0x0201f000, 0x00106f71, - 0x0401fa3c, 0x4a01a006, 0x63000028, 0x5930001d, - 0x4801a007, 0x42000800, 0x00000002, 0x42001000, - 0x0000dc00, 0x0201f000, 0x00106f71, 0x0401fa3f, - 0x41780000, 0x41780800, 0x42002000, 0x00080000, - 0x0c01f81b, 0x80000000, 0x80040800, 0x42001000, - 0x0000000c, 0x59841802, 0x8c0c1d00, 0x04020008, - 0x42002000, 0x00050000, 0x0c01f811, 0x80000000, - 0x80040800, 0x82081400, 0x00000004, 0x82080540, - 0x02000000, 0x4801a006, 0x800408e0, 0x5930001d, - 0x80040540, 0x4801a007, 0x80080904, 0x42001000, - 0x0000dc00, 0x0201f000, 0x00106f71, 0x0010694c, - 0x0010694e, 0x00106950, 0x00106952, 0x00106954, - 0x4811a008, 0x1c01f000, 0x4811a009, 0x1c01f000, - 0x4811a00a, 0x1c01f000, 0x4811a00b, 0x1c01f000, - 0x4811a00c, 0x1c01f000, 0x4a02600a, 0x0010c1b2, - 0x59a8000f, 0x82000500, 0x000000ff, 0x800000d0, - 0x42026800, 0x0010c1b2, 0x48026a12, 0x0401fa5b, - 0x41780800, 0x42001000, 0x00005c00, 0x0201f000, - 0x00106f71, 0x0401f9f3, 0x4a01a006, 0x52000000, - 0x4979a007, 0x599c0017, 0x82000500, 0x00000801, - 0x04000005, 0x599c0402, 0x0201f800, 0x001013b6, - 0x4805a007, 0x59a80002, 0x4801a008, 0x59a80003, - 0x4801a009, 0x59a80000, 0x4801a00a, 0x59a80001, - 0x4801a00b, 0x59a8000f, 0x4801a00c, 0x42000800, - 0x00000007, 0x42001000, 0x0000dc00, 0x0201f000, - 0x00106f71, 0x4a026202, 0x0000ffff, 0x4d340000, - 0x813669c0, 0x04020011, 0x42026800, 0x0010c1b2, - 0x4936600a, 0x4a026c03, 0x0000ffff, 0x497a6a00, - 0x5930001f, 0x48026802, 0x497a601f, 0x497a6a12, - 0x82000d00, 0x00ffff00, 0x04020004, 0x800000d0, - 0x48026a12, 0x0401f001, 0x0401f9c2, 0x5c026800, - 0x4a01a006, 0x05000000, 0x59a8000f, 0x4801a007, - 0x59a80002, 0x59a80803, 0x4801a008, 0x4805a009, + 0x00020016, 0x592c080b, 0x48066802, 0x82040500, + 0x00ffff00, 0x04000007, 0x497a6a12, 0x59a8100f, + 0x82081500, 0x00ffff00, 0x80080580, 0x040207d5, + 0x82040d00, 0x000000ff, 0x800408d0, 0x48066a12, + 0x0401f7d0, 0x1c01f000, 0x4d2c0000, 0x4d300000, + 0x4c580000, 0x4c540000, 0x4c500000, 0x58325809, + 0x812e59c0, 0x02000800, 0x0010032d, 0x58300002, + 0x82000580, 0x00000100, 0x04020022, 0x5830000a, + 0x5832600b, 0x81300d80, 0x04020012, 0x0401f834, + 0x04020016, 0x592c080e, 0x82040c00, 0x00000003, + 0x80040904, 0x4004b000, 0x4200a000, 0x0010b99f, + 0x4050a800, 0x0201f800, 0x0010af0c, 0x42001000, + 0x0000dc00, 0x0201f800, 0x00107000, 0x0401f007, + 0x4803c857, 0x4933c857, 0x813261c0, 0x04000003, + 0x0401f81f, 0x04000f96, 0x5c00a000, 0x5c00a800, + 0x5c00b000, 0x5c026000, 0x5c025800, 0x1c01f000, + 0x5830000a, 0x5832600b, 0x4a006002, 0x00000100, + 0x4803c857, 0x4933c857, 0x81300d80, 0x040207ed, + 0x0401f80f, 0x040207f1, 0x4803c857, 0x0201f800, + 0x0010e453, 0x80c40040, 0x02020800, 0x0010032d, + 0x4a025a07, 0x00000002, 0x0201f800, 0x000203ab, + 0x0201f800, 0x00107144, 0x0401f7e4, 0x0201f800, + 0x001061b2, 0x4df00000, 0x598c000f, 0x81300580, + 0x04020009, 0x598c0005, 0x81300580, 0x04020006, + 0x5c03e000, 0x02000800, 0x0010619f, 0x80000580, + 0x1c01f000, 0x4803c857, 0x5c03e000, 0x02000800, + 0x0010619f, 0x82000540, 0x00000001, 0x1c01f000, + 0x59300403, 0x82000c80, 0x00000058, 0x02021800, + 0x0010032d, 0x83340d80, 0x0010c2b2, 0x0402000a, + 0x5930081f, 0x48066802, 0x82041500, 0x00ffff00, + 0x04020004, 0x800408d0, 0x48066a12, 0x0401f002, + 0x497a6a12, 0x4803c857, 0x0c01f001, 0x00106a13, + 0x00106a2f, 0x00106a40, 0x00106b52, 0x00106b14, + 0x00106b18, 0x00106b27, 0x00106b3b, 0x00106b30, + 0x00106b3b, 0x00106b7b, 0x00106b3b, 0x00106bc2, + 0x00106b3b, 0x00106bd0, 0x00106b3b, 0x00106b30, + 0x00106b3b, 0x00106bd4, 0x001068f3, 0x001068f3, + 0x001068f3, 0x001068f3, 0x001068f3, 0x001068f3, + 0x001068f3, 0x001068f3, 0x001068f3, 0x001068f3, + 0x001068f3, 0x00106c74, 0x00106c8b, 0x00106c95, + 0x001068f3, 0x00106cae, 0x00106b27, 0x001068f3, + 0x00106b27, 0x00106b3b, 0x001068f3, 0x00106a40, + 0x00106b52, 0x001068f3, 0x00106cfe, 0x00106b3b, + 0x001068f3, 0x00106d0e, 0x00106b3b, 0x001068f3, + 0x00106b30, 0x00106a04, 0x001068f5, 0x001068f3, + 0x00106d25, 0x00106d64, 0x00106de9, 0x001068f3, + 0x00106df9, 0x00106b25, 0x00106dec, 0x001068f3, + 0x00106cba, 0x00106e48, 0x001068f3, 0x00106e7d, + 0x00106ed0, 0x001068f3, 0x0010690a, 0x0010697e, + 0x0010698b, 0x001068f3, 0x00106b27, 0x001068f3, + 0x001069ca, 0x001069d5, 0x001068f3, 0x001068f3, + 0x0010691e, 0x00106951, 0x00106f0f, 0x00106f50, + 0x00106f76, 0x001068f3, 0x001068f3, 0x001068f3, + 0x00106f44, 0x00106e12, 0x00106d25, 0x001068f3, + 0x001068f3, 0x001068f3, 0x001068f3, 0x001068f3, + 0x001068f3, 0x001068f3, 0x001068f3, 0x0201f800, + 0x0010032d, 0x0401faf2, 0x59325809, 0x592c000a, + 0x4801a006, 0x592c000b, 0x4801a007, 0x592c000c, + 0x4801a008, 0x592c000d, 0x4801a009, 0x592c000e, + 0x4801a00a, 0x4979a00b, 0x592c080a, 0x82040d00, + 0x00000fff, 0x80040904, 0x42001000, 0x0000dc00, + 0x0201f000, 0x00107000, 0x4a026202, 0x0000ffff, + 0x0401fadb, 0x4d2c0000, 0x4a01a006, 0x05000000, + 0x59325809, 0x592c000a, 0x4801a007, 0x592c000b, + 0x4801a008, 0x592c000c, 0x4801a009, 0x5c025800, 0x42000800, 0x00000004, 0x42001000, 0x0000dc00, - 0x0201f000, 0x00106f71, 0x4a026202, 0x0000ffff, - 0x0401f9b0, 0x4d3c0000, 0x417a7800, 0x0201f800, - 0x001040d5, 0x5c027800, 0x4a01a006, 0x03000000, - 0x59340403, 0x82000580, 0x000007fe, 0x04020079, - 0x4a01a006, 0x04000000, 0x81a40800, 0x4a000800, - 0x22fffffe, 0x5934000a, 0x84000500, 0x4802680a, - 0x59a8021b, 0x8c000508, 0x04000010, 0x59a8001f, - 0x4801a007, 0x59a80020, 0x82000500, 0x07deffff, - 0x599c0818, 0x8c040d16, 0x04000002, 0x8400056a, - 0x4801a008, 0x4a01a009, 0x00002710, 0x59a80022, - 0x4801a00a, 0x0401f047, 0x59a8001f, 0x59a8121b, - 0x8c081506, 0x04000003, 0x82000500, 0xffff0000, - 0x4801a007, 0x0201f800, 0x00104716, 0x04020013, - 0x59a80873, 0x8c040d3e, 0x04020010, 0x59300c03, - 0x82041580, 0x00000051, 0x0400000c, 0x497b8880, - 0x82000500, 0x0000ffff, 0x4c000000, 0x0201f800, - 0x001013db, 0x5c000000, 0x48038880, 0x41780800, - 0x0201f800, 0x00101993, 0x59a80020, 0x0201f800, - 0x00104716, 0x04020004, 0x82000500, 0x37ffffff, - 0x0401f003, 0x82000500, 0x3fffffff, 0x599c0818, - 0x8c040d16, 0x04000002, 0x8400056a, 0x8d0e1d10, - 0x04000019, 0x59300c03, 0x82041580, 0x00000051, - 0x04000015, 0x82041580, 0x00000031, 0x04000012, - 0x4c580000, 0x4c500000, 0x4c540000, 0x4200b000, - 0x00000004, 0x4200a000, 0x0010bcc3, 0x82d0ac00, - 0x0000001f, 0x4c000000, 0x0201f800, 0x0010adef, - 0x5c000000, 0x5c00a800, 0x5c00a000, 0x5c00b000, - 0x8400057a, 0x4801a008, 0x4979a009, 0x4979a00a, - 0x59a80002, 0x59a80803, 0x4801a00b, 0x4805a00c, - 0x59a80000, 0x59a80801, 0x4801a00d, 0x4805a00e, - 0x4979a00f, 0x4979a010, 0x4979a011, 0x4979a012, - 0x4979a013, 0x4979a014, 0x4979a015, 0x4979a016, - 0x59a80023, 0x84000576, 0x4801a017, 0x59a80024, - 0x4801a018, 0x4979a019, 0x4979a01a, 0x0401f049, - 0x59a8021b, 0x8c000508, 0x0400000d, 0x59a8001f, - 0x82000500, 0x0000ffff, 0x59c40880, 0x80040d80, - 0x04000007, 0x497b8880, 0x4c000000, 0x0201f800, - 0x001013db, 0x5c000000, 0x48038880, 0x59a8001f, - 0x4801a007, 0x4c640000, 0x4d2c0000, 0x59a8c820, - 0x0201f800, 0x0010889a, 0x0400000e, 0x0201f800, - 0x00108e64, 0x0402000b, 0x592c0208, 0x8c00050e, - 0x04000008, 0x8264cd00, 0x0000ffff, 0x592c000a, - 0x82000500, 0xffff0000, 0x8064cd40, 0x0401f006, - 0x59a80a1b, 0x82040d00, 0x00000030, 0x04000002, - 0x8464cd36, 0x4865a008, 0x5c025800, 0x5c00c800, - 0x59a80021, 0x4801a009, 0x59a80022, 0x4801a00a, - 0x59a80002, 0x59a80803, 0x4801a00b, 0x4805a00c, - 0x59a80000, 0x59a80801, 0x4801a00d, 0x4805a00e, - 0x4979a00f, 0x4979a010, 0x4979a011, 0x4979a012, - 0x4979a013, 0x4979a014, 0x4979a015, 0x4979a016, - 0x59a80023, 0x4801a017, 0x59a80024, 0x4801a018, - 0x59a80025, 0x4801a019, 0x59a80026, 0x4801a01a, - 0x42000800, 0x0000001d, 0x42001000, 0x0000dc00, - 0x0201f000, 0x00106f71, 0x0401f8de, 0x4a01a006, - 0x50000000, 0x0401f7af, 0x0401f8da, 0x4a01a006, - 0x21100014, 0x4979a007, 0x4979a008, 0x4979a009, - 0x4979a00a, 0x42000800, 0x00000005, 0x42001000, - 0x0000dc00, 0x0201f000, 0x00106f71, 0x0401f8d4, - 0x0401f002, 0x0401f8d9, 0x4a01a006, 0x02000000, - 0x42000800, 0x00000001, 0x42001000, 0x0000dc00, - 0x0201f000, 0x00106f71, 0x0401f8d0, 0x4a01a006, - 0x02000000, 0x59300403, 0x82000580, 0x00000031, - 0x04020790, 0x81a40800, 0x4a000801, 0x00fffffe, - 0x0401f71c, 0x4d340000, 0x813669c0, 0x04020010, - 0x42026800, 0x0010c1b2, 0x4936600a, 0x4a026c03, - 0x0000ffff, 0x497a6a00, 0x5930001f, 0x48026802, - 0x497a601f, 0x497a6a12, 0x82000d00, 0x00ffff00, - 0x04020003, 0x800000d0, 0x48026a12, 0x0401f8b3, - 0x5c026800, 0x4a01a006, 0x01000000, 0x5930041b, - 0x80000540, 0x04000003, 0x4801a407, 0x0401f003, - 0x4a01a407, 0x00000003, 0x5930021b, 0x80000540, - 0x04000003, 0x4801a207, 0x0401f003, 0x4a01a207, - 0x00002a00, 0x42000800, 0x00000002, 0x42001000, - 0x0000dc00, 0x0201f000, 0x00106f71, 0x4a026202, - 0x0000ffff, 0x0401f88b, 0x4a01a406, 0x00002010, - 0x4a01a206, 0x00000014, 0x4a01a407, 0x00000800, - 0x4a01a207, 0x00002000, 0x42000000, 0x00000400, - 0x599c0817, 0x8c040d0a, 0x04020003, 0x82000540, - 0x00000020, 0x8c040d08, 0x04000003, 0x82000540, - 0x00000010, 0x82000540, 0x00000002, 0x5934080a, - 0x8c040d14, 0x04000005, 0x82040d00, 0x00000380, - 0x80040540, 0x0401f006, 0x599c0818, 0x8c040d18, - 0x04000003, 0x82000540, 0x00000380, 0x0401f03d, - 0x0401f876, 0x4a01a406, 0x00000210, 0x4a01a206, - 0x00000014, 0x4a01a407, 0x00000800, 0x5934000a, - 0x8c000516, 0x04000014, 0x59340c05, 0x82040500, - 0x00000030, 0x04000013, 0x59340a05, 0x82040500, - 0x0000c000, 0x04020009, 0x8c040d1a, 0x04000004, - 0x4a01a207, 0x00002100, 0x0401f00c, 0x4a01a207, - 0x00000100, 0x0401f009, 0x4a01a207, 0x00000400, - 0x0401f006, 0x4a01a207, 0x00000700, 0x0401f003, - 0x4a01a207, 0x00000800, 0x42000000, 0x00000400, - 0x599c0817, 0x8c040d0a, 0x04020003, 0x82000540, - 0x00000020, 0x8c040d08, 0x04000003, 0x82000540, - 0x00000010, 0x82000540, 0x00000002, 0x59340a00, - 0x8c040d0e, 0x0400000b, 0x84000550, 0x599c1017, - 0x8c08150a, 0x04020004, 0x8c040d0a, 0x04000002, - 0x8400054e, 0x8c040d1c, 0x04000002, 0x84000552, - 0x4801a20a, 0x42000800, 0x00000005, 0x42001000, - 0x0000dc00, 0x0201f000, 0x00106f71, 0x0401f833, - 0x4a01a006, 0x02100014, 0x4a01a007, 0x00000100, + 0x0201f000, 0x00107000, 0x4c580000, 0x4c500000, + 0x4c540000, 0x4d2c0000, 0x0401fac5, 0x5930040b, + 0x82000500, 0x00000003, 0x04000007, 0x82000580, + 0x00000003, 0x80000000, 0x58d00802, 0x80040540, + 0x4801a002, 0x59325809, 0x4200a800, 0x0010b99f, + 0x592cb206, 0x8258b400, 0x00000003, 0x8058b104, + 0x832ca400, 0x00000007, 0x0201f800, 0x0010aee2, + 0x40580000, 0x8054ac00, 0x592c0001, 0x80000540, + 0x04000003, 0x40025800, 0x0401f7f2, 0x4200a000, + 0x0010b99f, 0x4050a800, 0x5930b40b, 0x8258b400, + 0x00000003, 0x8058b104, 0x40580800, 0x0201f800, + 0x0010af0c, 0x42001000, 0x0000dc00, 0x5c025800, + 0x5c00a800, 0x5c00a000, 0x5c00b000, 0x0201f000, + 0x00107000, 0x4c580000, 0x4c500000, 0x4c540000, + 0x4d2c0000, 0x42034800, 0x0010b998, 0x0401fa9e, + 0x59325809, 0x592c0802, 0x4807c857, 0x40041000, + 0x80040904, 0x82081500, 0x00000003, 0x04000008, + 0x80040800, 0x82081580, 0x00000003, 0x80081000, + 0x58d00002, 0x80080540, 0x4801a002, 0x4a025806, + 0x02000000, 0x82d0ac00, 0x00000006, 0x592cb011, + 0x832ca400, 0x00000006, 0x0201f800, 0x0010aee2, + 0x40580000, 0x8054ac00, 0x592e5801, 0x41780000, + 0x812e5d40, 0x040207f6, 0x42001000, 0x0000dc00, + 0x5c025800, 0x5c00a800, 0x5c00a000, 0x5c00b000, + 0x0201f000, 0x00107000, 0x0401fa69, 0x4a01a006, + 0x78000000, 0x5930001d, 0x840001c0, 0x4801a407, + 0x4979a207, 0x42000800, 0x00000002, 0x42001000, + 0x0000dc00, 0x0201f000, 0x00107000, 0x4c580000, + 0x4c540000, 0x4c500000, 0x0401fa67, 0x4a01a006, + 0x02000000, 0x59a80002, 0x4801a008, 0x59a80003, + 0x4801a009, 0x59a80000, 0x4801a00a, 0x59a80001, + 0x4801a00b, 0x5930001d, 0x82000d80, 0x0000e000, + 0x04000012, 0x82000d80, 0x0000df00, 0x04000006, + 0x4a01a407, 0x00000010, 0x42000800, 0x00000006, + 0x0401f01f, 0x42001800, 0x0010b941, 0x0201f800, + 0x00100532, 0x42000000, 0x0000df00, 0x4200a000, + 0x0010b941, 0x0401f009, 0x42001800, 0x0010b94e, + 0x0201f800, 0x00100532, 0x42000000, 0x0000e000, + 0x4200a000, 0x0010b94e, 0x82000540, 0x00000010, + 0x4801a407, 0x4a01a207, 0x00000034, 0x4200b000, + 0x0000000d, 0x82d0ac00, 0x0000000c, 0x0201f800, + 0x0010aee2, 0x42000800, 0x00000013, 0x42001000, + 0x0000dc00, 0x5c00a000, 0x5c00a800, 0x5c00b000, + 0x0201f000, 0x00107000, 0x0401fa1d, 0x4a01a006, + 0x63000028, 0x5930001d, 0x4801a007, 0x42000800, + 0x00000002, 0x42001000, 0x0000dc00, 0x0201f000, + 0x00107000, 0x0401fa20, 0x41780000, 0x41780800, + 0x42002000, 0x00080000, 0x0c01f81b, 0x80000000, + 0x80040800, 0x42001000, 0x0000000c, 0x59841802, + 0x8c0c1d00, 0x04020008, 0x42002000, 0x00050000, + 0x0c01f811, 0x80000000, 0x80040800, 0x82081400, + 0x00000004, 0x82080540, 0x02000000, 0x4801a006, + 0x800408e0, 0x5930001d, 0x80040540, 0x4801a007, + 0x80080904, 0x42001000, 0x0000dc00, 0x0201f000, + 0x00107000, 0x001069fa, 0x001069fc, 0x001069fe, + 0x00106a00, 0x00106a02, 0x4811a008, 0x1c01f000, + 0x4811a009, 0x1c01f000, 0x4811a00a, 0x1c01f000, + 0x4811a00b, 0x1c01f000, 0x4811a00c, 0x1c01f000, + 0x4a02600a, 0x0010c2b2, 0x59a8000f, 0x82000500, + 0x000000ff, 0x800000d0, 0x42026800, 0x0010c2b2, + 0x48026a12, 0x0401fa3c, 0x41780800, 0x42001000, + 0x00005c00, 0x0201f000, 0x00107000, 0x0401f9d4, + 0x4a01a006, 0x52000000, 0x4979a007, 0x599c0017, + 0x82000500, 0x00000801, 0x04000005, 0x599c0402, + 0x0201f800, 0x001013b7, 0x4805a007, 0x59a80002, + 0x4801a008, 0x59a80003, 0x4801a009, 0x59a80000, + 0x4801a00a, 0x59a80001, 0x4801a00b, 0x59a8000f, + 0x4801a00c, 0x42000800, 0x00000007, 0x42001000, + 0x0000dc00, 0x0201f000, 0x00107000, 0x4a026202, + 0x0000ffff, 0x0401f9b6, 0x4a01a006, 0x05000000, + 0x59a8000f, 0x4801a007, 0x59a80002, 0x59a80803, + 0x4801a008, 0x4805a009, 0x42000800, 0x00000004, + 0x42001000, 0x0000dc00, 0x0201f000, 0x00107000, + 0x4a026202, 0x0000ffff, 0x0401f9a5, 0x4d3c0000, + 0x417a7800, 0x0201f800, 0x001040ef, 0x5c027800, + 0x4a01a006, 0x03000000, 0x59340403, 0x82000580, + 0x000007fe, 0x04020079, 0x4a01a006, 0x04000000, + 0x81a40800, 0x4a000800, 0x22fffffe, 0x5934000a, + 0x84000500, 0x4802680a, 0x59a8021b, 0x8c000508, + 0x04000010, 0x59a8001f, 0x4801a007, 0x59a80020, + 0x82000500, 0x07deffff, 0x599c0818, 0x8c040d16, + 0x04000002, 0x8400056a, 0x4801a008, 0x4a01a009, + 0x00002710, 0x59a80022, 0x4801a00a, 0x0401f047, + 0x59a8001f, 0x59a8121b, 0x8c081506, 0x04000003, + 0x82000500, 0xffff0000, 0x4801a007, 0x0201f800, + 0x00104755, 0x04020013, 0x59a80873, 0x8c040d3e, + 0x04020010, 0x59300c03, 0x82041580, 0x00000051, + 0x0400000c, 0x497b8880, 0x82000500, 0x0000ffff, + 0x4c000000, 0x0201f800, 0x001013dc, 0x5c000000, + 0x48038880, 0x41780800, 0x0201f800, 0x00101994, + 0x59a80020, 0x0201f800, 0x00104755, 0x04020004, + 0x82000500, 0x37ffffff, 0x0401f003, 0x82000500, + 0x3fffffff, 0x599c0818, 0x8c040d16, 0x04000002, + 0x8400056a, 0x8d0e1d10, 0x04000019, 0x59300c03, + 0x82041580, 0x00000051, 0x04000015, 0x82041580, + 0x00000031, 0x04000012, 0x4c580000, 0x4c500000, + 0x4c540000, 0x4200b000, 0x00000004, 0x4200a000, + 0x0010bdc3, 0x82d0ac00, 0x0000001f, 0x4c000000, + 0x0201f800, 0x0010aee2, 0x5c000000, 0x5c00a800, + 0x5c00a000, 0x5c00b000, 0x8400057a, 0x4801a008, + 0x4979a009, 0x4979a00a, 0x59a80002, 0x59a80803, + 0x4801a00b, 0x4805a00c, 0x59a80000, 0x59a80801, + 0x4801a00d, 0x4805a00e, 0x4979a00f, 0x4979a010, + 0x4979a011, 0x4979a012, 0x4979a013, 0x4979a014, + 0x4979a015, 0x4979a016, 0x59a80023, 0x84000576, + 0x4801a017, 0x59a80024, 0x4801a018, 0x4979a019, + 0x4979a01a, 0x0401f049, 0x59a8021b, 0x8c000508, + 0x0400000d, 0x59a8001f, 0x82000500, 0x0000ffff, + 0x59c40880, 0x80040d80, 0x04000007, 0x497b8880, + 0x4c000000, 0x0201f800, 0x001013dc, 0x5c000000, + 0x48038880, 0x59a8001f, 0x4801a007, 0x4c640000, + 0x4d2c0000, 0x59a8c820, 0x0201f800, 0x00108953, + 0x0400000e, 0x0201f800, 0x00108f1d, 0x0402000b, + 0x592c0208, 0x8c00050e, 0x04000008, 0x8264cd00, + 0x0000ffff, 0x592c000a, 0x82000500, 0xffff0000, + 0x8064cd40, 0x0401f006, 0x59a80a1b, 0x82040d00, + 0x00000030, 0x04000002, 0x8464cd36, 0x4865a008, + 0x5c025800, 0x5c00c800, 0x59a80021, 0x4801a009, + 0x59a80022, 0x4801a00a, 0x59a80002, 0x59a80803, + 0x4801a00b, 0x4805a00c, 0x59a80000, 0x59a80801, + 0x4801a00d, 0x4805a00e, 0x4979a00f, 0x4979a010, + 0x4979a011, 0x4979a012, 0x4979a013, 0x4979a014, + 0x4979a015, 0x4979a016, 0x59a80023, 0x4801a017, + 0x59a80024, 0x4801a018, 0x59a80025, 0x4801a019, + 0x59a80026, 0x4801a01a, 0x42000800, 0x0000001d, + 0x42001000, 0x0000dc00, 0x0201f000, 0x00107000, + 0x0401f8d3, 0x4a01a006, 0x50000000, 0x0401f7af, + 0x0401f8cf, 0x4a01a006, 0x21100014, 0x4979a007, 0x4979a008, 0x4979a009, 0x4979a00a, 0x42000800, 0x00000005, 0x42001000, 0x0000dc00, 0x0201f000, - 0x00106f71, 0x0401f825, 0x4a01a006, 0x02000000, - 0x0401f624, 0x4933c857, 0x0401f820, 0x4a01a006, - 0x01000000, 0x4a01a407, 0x0000000b, 0x42000800, - 0x00000002, 0x42001000, 0x0000dc00, 0x0201f000, - 0x00106f71, 0x42005000, 0x32000000, 0x42006000, - 0x08290000, 0x41786800, 0x41787800, 0x0401f3f3, - 0x42005000, 0x22000000, 0x42006000, 0x01290000, - 0x41786800, 0x41787800, 0x0401f3ec, 0x42005000, - 0x33000000, 0x42006000, 0x08980000, 0x41786800, - 0x41787800, 0x0401f3e5, 0x42005000, 0x23000000, - 0x42006000, 0x01980000, 0x41786800, 0x41787800, - 0x0401f3de, 0x59300403, 0x82000c80, 0x00000085, - 0x02001800, 0x0010032d, 0x82000c80, 0x00000093, - 0x02021800, 0x0010032d, 0x82000480, 0x00000085, - 0x0c01f001, 0x00106b87, 0x00106b87, 0x00106b87, - 0x00106b87, 0x00106b87, 0x00106b87, 0x00106b87, - 0x00106b87, 0x00106b87, 0x00106b87, 0x00106b87, - 0x00106b87, 0x00106b87, 0x00106b89, 0x0201f800, - 0x0010032d, 0x4d2c0000, 0x59325809, 0x4933c857, - 0x492fc857, 0x812e59c0, 0x02000800, 0x0010032d, - 0x59340a12, 0x82040d00, 0x0000ff00, 0x592c000b, - 0x82000500, 0x000000ff, 0x900001c0, 0x80040540, - 0x82000540, 0x00000011, 0x44034800, 0x81a5a000, - 0x42001000, 0x00000009, 0x42000800, 0x00000003, - 0x592c000a, 0x82000500, 0xff000000, 0x82001d80, - 0x84000000, 0x04000009, 0x82001d80, 0x85000000, - 0x02020800, 0x0010032d, 0x42001000, 0x00000007, - 0x42000800, 0x00000001, 0x832c1c00, 0x0000000a, - 0x500c0000, 0x4401a000, 0x800c1800, 0x80d1a000, - 0x80081040, 0x040207fb, 0x42001000, 0x0000dc00, - 0x5c025800, 0x0401f3b8, 0x42005000, 0x81000000, - 0x42006000, 0x00090000, 0x41786800, 0x41787800, - 0x59301407, 0x82081580, 0x00000005, 0x04020003, - 0x42006000, 0x00890000, 0x0401f384, 0x59300403, - 0x82000c80, 0x00000053, 0x02021800, 0x0010032d, - 0x82000480, 0x0000004b, 0x02001800, 0x0010032d, - 0x5932680a, 0x59368c03, 0x4803c857, 0x0c01f001, - 0x00106c46, 0x00106c4e, 0x00106c56, 0x00106c5e, - 0x00106bdc, 0x00106bdc, 0x00106bdc, 0x00106c3e, - 0x0201f800, 0x0010032d, 0x42005000, 0x06000000, - 0x42006000, 0x08290000, 0x41786800, 0x41787800, - 0x0401f366, 0x4933c857, 0x0401ff72, 0x4a01a006, - 0x12000000, 0x59300407, 0x82000580, 0x00000004, - 0x04020003, 0x59340002, 0x0401f002, 0x59a8000f, - 0x82000500, 0x00ffffff, 0x4801a007, 0x5930041a, - 0x4801a408, 0x5930021a, 0x4801a208, 0x42000800, - 0x00000003, 0x42001000, 0x0000dc00, 0x0401f376, - 0x0401ff5c, 0x4a01a006, 0x0f000000, 0x5930001d, - 0x4801a007, 0x42000800, 0x00000002, 0x42001000, - 0x0000dc00, 0x0401f36c, 0x0401ff60, 0x4a01a006, - 0x02000000, 0x59c40085, 0x59880804, 0x80040c00, - 0x48071004, 0x497b8885, 0x59880000, 0x4801a007, - 0x59880001, 0x4801a008, 0x59880002, 0x4801a009, - 0x59880003, 0x4801a00a, 0x59880004, 0x4801a00b, - 0x59880005, 0x4801a00c, 0x42000800, 0x00000007, - 0x42001000, 0x0000dc00, 0x0401f353, 0x4a026202, - 0x0000ffff, 0x0401ff37, 0x4a01a006, 0x62000000, - 0x5930001d, 0x4801a007, 0x42000800, 0x00000002, - 0x42001000, 0x0000dc00, 0x0401f347, 0x0401ff2d, - 0x59300809, 0x4c500000, 0x4c540000, 0x4c580000, - 0x8204a400, 0x0000000b, 0x5930b01d, 0x82d0ac00, - 0x00000006, 0x0201f800, 0x0010adef, 0x5930081d, - 0x42001000, 0x0000dc00, 0x5c00b000, 0x5c00a800, - 0x5c00a000, 0x0401f334, 0x0401ffa0, 0x59300018, - 0x4801a006, 0x59300019, 0x4801a007, 0x4a01a008, - 0x00001000, 0x0401f020, 0x0401ff98, 0x59300018, - 0x4801a006, 0x59300019, 0x4801a007, 0x4a01a008, - 0x00004000, 0x0401f018, 0x0401ff90, 0x59300018, - 0x4801a006, 0x59300019, 0x4801a007, 0x4a01a008, - 0x00002000, 0x0401f010, 0x0401ff88, 0x59300018, - 0x4801a006, 0x59300019, 0x4801a007, 0x4a01a008, - 0x00000400, 0x0401f008, 0x0401ff80, 0x59300018, - 0x4801a006, 0x59300019, 0x4801a007, 0x4a01a008, - 0x00000200, 0x4979a009, 0x4979a00a, 0x4979a00b, - 0x4979a00c, 0x4979a00d, 0x42000800, 0x00000008, - 0x42001000, 0x0000dc00, 0x0401f303, 0x0401fef7, - 0x4a01a006, 0x02000014, 0x4979a407, 0x4979a207, - 0x59a8002d, 0x4801a008, 0x59a8002e, 0x4801a009, - 0x4a01a00a, 0x00047878, 0x42000800, 0x00000005, - 0x42001000, 0x0000dc00, 0x0401f2f3, 0x0401fee7, - 0x4a01a006, 0x02140018, 0x4a01a407, 0x00000800, - 0x5930001d, 0x82000d00, 0xff000000, 0x900409c0, - 0x4805a207, 0x82000500, 0x00ffffff, 0x4801a00a, - 0x4979a408, 0x4979a208, 0x4979a409, 0x4979a209, - 0x4979a00b, 0x42000800, 0x00000006, 0x42001000, - 0x0000dc00, 0x0401f2dc, 0x4933c857, 0x4937c857, - 0x4d1c0000, 0x42000800, 0x00000035, 0x0201f800, - 0x00108c7b, 0x04020025, 0x0401feba, 0x4a01a006, - 0x13000000, 0x5932381f, 0x59300403, 0x82000580, - 0x00000057, 0x04000005, 0x591c0415, 0x8c000502, - 0x02000800, 0x0010032d, 0x591c001a, 0x4801a005, - 0x591c0407, 0x82000580, 0x00000003, 0x04000007, - 0x5930080a, 0x58040002, 0x82000500, 0x00ffffff, - 0x4801a007, 0x0401f003, 0x59a8000f, 0x4801a007, - 0x5930041a, 0x4801a408, 0x5930021a, 0x4801a208, - 0x42000800, 0x00000003, 0x42001000, 0x0000dc00, - 0x5c023800, 0x0401f2b0, 0x4803c856, 0x0201f800, - 0x0010610d, 0x598c000f, 0x81300580, 0x02020800, - 0x0010032d, 0x0201f800, 0x0010605d, 0x59300403, - 0x82000580, 0x00000057, 0x02000800, 0x00107851, - 0x0201f800, 0x00020a10, 0x5c023800, 0x0201f000, - 0x001060fa, 0x4803c856, 0x4d2c0000, 0x4d1c0000, - 0x5932381f, 0x811e39c0, 0x02000800, 0x0010032d, - 0x831c0580, 0xffffffff, 0x0400003d, 0x591c0c07, - 0x82040580, 0x00000006, 0x0400000d, 0x82040580, - 0x00000003, 0x0400003b, 0x4a026403, 0x00000037, - 0x4a02641b, 0x00000003, 0x4a02621b, 0x00001700, - 0x5c023800, 0x5c025800, 0x0401f06c, 0x0401f850, - 0x42001000, 0x40000000, 0x591c0203, 0x591c0804, - 0x8c040d3e, 0x04020023, 0x82000c80, 0x0000000e, - 0x0c001003, 0x0201f800, 0x0010032d, 0x00106d0c, - 0x00106d18, 0x00106d0e, 0x00106d18, 0x00106d14, - 0x00106d0c, 0x00106d0c, 0x00106d18, 0x00106d18, - 0x00106d0c, 0x00106d0c, 0x00106d0c, 0x00106d0c, - 0x00106d0c, 0x00106d18, 0x00106d0c, 0x00106d18, - 0x0201f800, 0x0010032d, 0x591c0415, 0x4803c857, - 0x8c000518, 0x04000003, 0x8c000512, 0x04000003, - 0x80001580, 0x0401f003, 0x42001000, 0x20000000, - 0x591c0016, 0x4801a00a, 0x0401f01d, 0x0401f824, - 0x42001000, 0x40000000, 0x41780000, 0x0401f7fa, - 0x0401f81f, 0x591e5809, 0x812e59c0, 0x02000800, - 0x0010032d, 0x592c1010, 0x591c0012, 0x80080480, - 0x4801a00a, 0x591c0203, 0x591c0804, 0x8c040d3e, - 0x04020007, 0x82000d80, 0x00000002, 0x04000007, - 0x82000d80, 0x00000004, 0x04000004, 0x42001000, - 0x40000000, 0x0401f002, 0x80001580, 0x4809a00b, - 0x42000800, 0x00000006, 0x42001000, 0x0000dc00, - 0x5c023800, 0x5c025800, 0x0401f233, 0x4803c856, - 0x0401fe26, 0x4a01a006, 0x02000000, 0x59300c1a, - 0x4805a407, 0x59300a1a, 0x4805a207, 0x59a8100f, - 0x5930080a, 0x58041802, 0x820c1d00, 0x00ffffff, - 0x5930081f, 0x82040580, 0xffffffff, 0x04000008, - 0x58040407, 0x82000580, 0x00000003, 0x04020004, - 0x4809a008, 0x480da009, 0x0401f003, 0x480da008, - 0x4809a009, 0x1c01f000, 0x4803c856, 0x0401fe0b, - 0x0401f003, 0x4803c856, 0x0401fe01, 0x4a01a006, - 0x01000000, 0x5930041b, 0x4801a407, 0x5930021b, - 0x4801a207, 0x42000800, 0x00000002, 0x42001000, - 0x0000dc00, 0x0401f208, 0x4803c856, 0x4d1c0000, - 0x0401fde5, 0x4a01a006, 0x14000000, 0x5932381f, - 0x591c001a, 0x4801a005, 0x5930041a, 0x4801a407, - 0x5930021a, 0x4801a207, 0x59300016, 0x4801a008, - 0x59300217, 0x82000500, 0x000000ff, 0x840001c0, - 0x4801a409, 0x42000800, 0x00000004, 0x42001000, - 0x0000dc00, 0x5c023800, 0x0401f1ef, 0x4803c856, - 0x0401fde2, 0x4a01a006, 0x02000001, 0x42001000, - 0xe0000000, 0x59a80873, 0x8c040d3e, 0x04000004, - 0x42001000, 0x20000000, 0x0401f010, 0x59a8006d, - 0x8c000508, 0x04000004, 0x82081500, 0xdfffffff, - 0x0401f00a, 0x59a80847, 0x82040d80, 0x01391077, - 0x04020006, 0x59e00813, 0x8c040d00, 0x04000003, - 0x82081500, 0xdfffffff, 0x59c40801, 0x82040d00, - 0x00018000, 0x82040580, 0x00000000, 0x42000000, - 0x00008000, 0x0400000d, 0x82040580, 0x00008000, - 0x42000000, 0x00004000, 0x04000008, 0x82040580, - 0x00010000, 0x42000000, 0x00002000, 0x04000003, - 0x42000000, 0x00000002, 0x80080540, 0x4801a007, + 0x00107000, 0x0401f8c9, 0x0401f002, 0x0401f8ce, + 0x4a01a006, 0x02000000, 0x42000800, 0x00000001, + 0x42001000, 0x0000dc00, 0x0201f000, 0x00107000, + 0x0401f8c5, 0x4a01a006, 0x02000000, 0x59300403, + 0x82000580, 0x00000031, 0x04020790, 0x81a40800, + 0x4a000801, 0x00fffffe, 0x0401f71c, 0x0401f8ba, + 0x4a01a006, 0x01000000, 0x5930041b, 0x80000540, + 0x04000003, 0x4801a407, 0x0401f003, 0x4a01a407, + 0x00000003, 0x5930021b, 0x80000540, 0x04000003, + 0x4801a207, 0x0401f003, 0x4a01a207, 0x00002a00, 0x42000800, 0x00000002, 0x42001000, 0x0000dc00, - 0x0401f1b9, 0x4803c856, 0x0401f80b, 0x5930041b, - 0x900001c0, 0x4801a005, 0x0401f9f0, 0x41780800, - 0x42001000, 0x00005c00, 0x0401f9af, 0x0201f000, - 0x001058c9, 0x4803c856, 0x59300818, 0x82041c00, - 0x00000006, 0x46034800, 0x00000021, 0x58040405, - 0x82000500, 0x0000f000, 0x82000580, 0x00003000, - 0x04000003, 0x46034800, 0x00000041, 0x81a5a000, - 0x580c0001, 0x82000d00, 0x00ffffff, 0x82040d40, - 0xc2000000, 0x4805a000, 0x580c0800, 0x82041500, - 0x00ffffff, 0x82000500, 0xff000000, 0x80080540, - 0x4801a001, 0x580c0002, 0x82000580, 0x00c00000, - 0x82000500, 0x00fd0300, 0x4801a002, 0x580c0003, - 0x4801a003, 0x580c0404, 0x4801a404, 0x580c0204, - 0x4801a204, 0x1c01f000, 0x4803c856, 0x59a8021b, - 0x82000500, 0x00000028, 0x04020009, 0x59a8021b, - 0x82000500, 0x00000028, 0x04000003, 0x497a6a12, - 0x0401f003, 0x4a026a12, 0x0000ff00, 0x42005000, - 0x22000000, 0x42006000, 0x01380000, 0x41786800, - 0x41787800, 0x0401f949, 0x59301009, 0x4a01a006, - 0x54000000, 0x59a8000f, 0x82000500, 0x00ffffff, - 0x58080c0b, 0x800408f0, 0x80040540, 0x4801a007, - 0x5808000b, 0x82000500, 0xff000000, 0x4801a008, - 0x59a80002, 0x4801a009, 0x59a80003, 0x4801a00a, - 0x59a80000, 0x4801a00b, 0x59a80001, 0x4801a00c, - 0x5808000d, 0x9c0001c0, 0x4801a00d, 0x5808000e, - 0x9c0001c0, 0x4801a00e, 0x5808000f, 0x9c0001c0, - 0x4801a00f, 0x58080010, 0x9c0001c0, 0x4801a010, - 0x58080011, 0x9c0001c0, 0x4801a011, 0x58080012, - 0x9c0001c0, 0x4801a012, 0x58080013, 0x9c0001c0, - 0x4801a013, 0x58080014, 0x9c0001c0, 0x4801a014, - 0x58080011, 0x9c0001c0, 0x4801a015, 0x58080012, - 0x9c0001c0, 0x4801a016, 0x58080013, 0x9c0001c0, - 0x4801a017, 0x58080014, 0x9c0001c0, 0x4801a018, - 0x42000800, 0x00000013, 0x42001000, 0x0000dc00, - 0x0401f131, 0x4803c856, 0x42005000, 0x22000000, - 0x42006000, 0x01290000, 0x41786800, 0x41787800, - 0x0401f902, 0x59301009, 0x4a01a006, 0x55000000, - 0x5808000c, 0x82000500, 0x00ffffff, 0x58080c0b, - 0x800408f0, 0x80040540, 0x4801a007, 0x5808080b, - 0x82040d00, 0xff000000, 0x59a8000f, 0x82000500, - 0x00ffffff, 0x80040540, 0x4801a008, 0x5808000d, - 0x9c0001c0, 0x4801a009, 0x5808000e, 0x9c0001c0, - 0x4801a00a, 0x5808000f, 0x9c0001c0, 0x4801a00b, - 0x58080010, 0x9c0001c0, 0x4801a00c, 0x59a80002, - 0x4801a00d, 0x59a80003, 0x4801a00e, 0x59a80000, - 0x4801a00f, 0x59a80001, 0x4801a010, 0x58080011, - 0x4801a011, 0x58080012, 0x4801a012, 0x58080013, - 0x4801a013, 0x58080014, 0x4801a014, 0x4979a015, - 0x4979a016, 0x4979a017, 0x4979a018, 0x42000800, - 0x00000013, 0x42001000, 0x0000dc00, 0x0401f0f2, - 0x0401fce6, 0x5930001d, 0x800001c0, 0x04000008, - 0x4a01a006, 0x01000000, 0x4a01a407, 0x00000003, - 0x42000800, 0x00000002, 0x0401f028, 0x4a01a006, - 0x02000000, 0x41780800, 0x836c0580, 0x00000004, - 0x04020003, 0x84040d42, 0x0401f00d, 0x0201f800, - 0x00104716, 0x04020003, 0x84040d4a, 0x0401f002, - 0x84040d48, 0x59a8021b, 0x8c000506, 0x04020003, - 0x8c00050a, 0x04000002, 0x84040d46, 0x4805a207, - 0x59c40085, 0x48031004, 0x4c580000, 0x4c500000, - 0x4c540000, 0x4200b000, 0x00000006, 0x8388a400, - 0x00000000, 0x82d0ac00, 0x00000008, 0x0201f800, - 0x0010adef, 0x5c00a800, 0x5c00a000, 0x5c00b000, - 0x42000800, 0x00000008, 0x42001000, 0x0000dc00, - 0x0401f0bd, 0x0401fca3, 0x4a01a006, 0x56000000, - 0x59340006, 0x4801a007, 0x59340007, 0x4801a008, - 0x42000800, 0x00000003, 0x42001000, 0x0000dc00, - 0x0401f0b1, 0x4803c856, 0x0401fca4, 0x5930081d, - 0x800409c0, 0x0400000e, 0x82040580, 0x0000ffff, - 0x04000004, 0x82040480, 0x00000007, 0x04021008, - 0x4a01a006, 0x01000000, 0x4a01a407, 0x00000003, - 0x42000800, 0x00000002, 0x0401f012, 0x4a01a006, - 0x0200001c, 0x4a01a007, 0x00000001, 0x42001000, - 0x0010b846, 0x50080000, 0x9c0001c0, 0x4801a009, - 0x59a8000f, 0x4801a00a, 0x59a80002, 0x59a80803, - 0x4801a00b, 0x4805a00c, 0x42000800, 0x00000007, - 0x42001000, 0x0000dc00, 0x0401f08b, 0x4d2c0000, - 0x0401fc70, 0x59325809, 0x592c0009, 0x82000500, - 0x00ffffff, 0x4801a001, 0x4a01a006, 0x51000000, - 0x5c025800, 0x0201f000, 0x001069bc, 0x4803c856, - 0x59325809, 0x5932680a, 0x59300407, 0x4803c857, - 0x82000d80, 0x00000009, 0x0400000a, 0x82000d80, - 0x0000000a, 0x04000032, 0x82000d80, 0x00000012, - 0x02000000, 0x0010a931, 0x0201f800, 0x0010032d, - 0x59300016, 0x8c00051e, 0x04020020, 0x42005000, - 0x04000000, 0x42006000, 0x05000000, 0x592c040b, - 0x82000500, 0x00000030, 0x800000e0, 0x80306540, - 0x5934000a, 0x8c000508, 0x04000002, 0x84306546, - 0x41786800, 0x41787800, 0x0401f831, 0x59300c17, - 0x80040000, 0x48026417, 0x40040000, 0x800000d0, - 0x82000540, 0x00000020, 0x4801a403, 0x83180d40, - 0x00000038, 0x42001000, 0x0000c920, 0x0401f86d, - 0x0201f000, 0x001058ce, 0x59a8021b, 0x82000500, - 0x00000028, 0x04000003, 0x497a6a12, 0x0401f7dc, - 0x4a026a12, 0x0000ff00, 0x0401f7d9, 0x42005000, - 0x02000000, 0x42006000, 0x20290000, 0x41786800, - 0x41787800, 0x0401f812, 0x83180d40, 0x00000038, - 0x42001000, 0x0000c9a0, 0x0401f856, 0x42000800, - 0x00000004, 0x59300012, 0x82000500, 0xfff00000, - 0x80000540, 0x02000000, 0x001058d0, 0x42000800, - 0x0000000e, 0x0201f000, 0x001058d0, 0x4201a000, - 0x00000000, 0x0401f003, 0x4201a000, 0x00000011, - 0x59340a12, 0x82040d00, 0x0000ff00, 0x59a8000f, - 0x82000500, 0x000000ff, 0x900001c0, 0x80040540, - 0x80d00540, 0x44034800, 0x81a5a000, 0x59340002, - 0x82000500, 0x00ffffff, 0x59300c03, 0x82040d80, - 0x00000031, 0x04020002, 0x41780000, 0x80280540, - 0x4801a000, 0x59a8000f, 0x4801a001, 0x4831a002, - 0x82340540, 0x00000000, 0x4801a003, 0x59300402, - 0x4801a404, 0x59300a02, 0x4805a204, 0x8c30652e, - 0x04000003, 0x4805a404, 0x4801a204, 0x483da005, - 0x1c01f000, 0x4807c857, 0x4c040000, 0x0401f82a, - 0x5c000800, 0x40040000, 0x80081540, 0x800000c4, - 0x82000540, 0x00002000, 0x4803910a, 0x59b400f6, - 0x82000500, 0x00000018, 0x040207fd, 0x42001800, - 0x0010b899, 0x580c0004, 0x4803c857, 0x580c0006, - 0x4803c857, 0x580c1800, 0x480fc857, 0x4a0368f0, - 0x0010b898, 0x4a0368f1, 0x0010b89f, 0x480b68f3, - 0x4a0378e4, 0x00008000, 0x0201f000, 0x001058c9, - 0x4807c857, 0x480a2800, 0x4c040000, 0x0401f80a, - 0x5c000800, 0x59b400f6, 0x8c00050a, 0x040207fe, - 0x49a768f2, 0x480768f4, 0x4a0378e4, 0x00008000, - 0x1c01f000, 0x4a0378e4, 0x0000c000, 0x59bc00e4, - 0x8c000520, 0x0400000c, 0x4a0378e4, 0x00008000, - 0x42007000, 0x000003e8, 0x59bc00e4, 0x8c000520, - 0x040007f5, 0x80387040, 0x02000800, 0x0010032d, - 0x0401f7fa, 0x1c01f000, 0x82000500, 0xffff0000, - 0x82000580, 0x01050000, 0x0402000d, 0x599c0818, - 0x8c040d10, 0x0400000a, 0x59a80806, 0x8c040d0a, - 0x04000007, 0x42001000, 0x0000804f, 0x41781800, - 0x41782000, 0x0201f800, 0x001031eb, 0x1c01f000, - 0x1c01f000, 0x59a80052, 0x800001c0, 0x0400004d, - 0x4d2c0000, 0x4d300000, 0x4c5c0000, 0x4c600000, - 0x4c640000, 0x40025800, 0x4000c000, 0x4000c800, - 0x42026000, 0x0010f518, 0x592c0407, 0x81440580, - 0x04020035, 0x592c0205, 0x82000580, 0x00000055, - 0x04000005, 0x8d3e7d18, 0x0400002f, 0x8d3e7d16, - 0x0402002d, 0x40640000, 0x812c0580, 0x0402001b, - 0x59300203, 0x82000580, 0x00000000, 0x04000013, - 0x59300009, 0x800001c0, 0x04000010, 0x0201f800, - 0x0010610d, 0x4df00000, 0x0201f800, 0x00105ff7, - 0x0201f800, 0x0010e2ad, 0x80c40040, 0x04020003, - 0x4a026203, 0x00000000, 0x5c03e000, 0x02000800, - 0x001060fa, 0x497a6009, 0x592cc800, 0x4064c000, - 0x4064b800, 0x0401f003, 0x592cb800, 0x485cc000, - 0x497a5800, 0x592c0205, 0x82000580, 0x00000155, - 0x04000004, 0x0201f800, 0x00100580, 0x0401f004, - 0x49425a07, 0x0201f800, 0x000203ab, 0x405e5800, - 0x0401f003, 0x412cc000, 0x592e5800, 0x812e59c0, - 0x040207c6, 0x48675052, 0x48635053, 0x5c00c800, - 0x5c00c000, 0x5c00b800, 0x5c026000, 0x5c025800, - 0x1c01f000, 0x4943c857, 0x4d440000, 0x4d340000, - 0x4c580000, 0x4200b000, 0x000007f0, 0x417a8800, - 0x0201f800, 0x00020319, 0x04020002, 0x0401ffa6, - 0x81468800, 0x8058b040, 0x040207fa, 0x83440480, - 0x00000800, 0x04021008, 0x8d3e7d02, 0x04000006, - 0x42028800, 0x000007f0, 0x4200b000, 0x00000010, - 0x0401f7f0, 0x5c00b000, 0x5c026800, 0x5c028800, - 0x1c01f000, 0x4d300000, 0x59a81052, 0x800811c0, - 0x0400001c, 0x42026000, 0x0010f518, 0x59300203, - 0x82000580, 0x00000000, 0x04020016, 0x58080803, - 0x4806600a, 0x480a6009, 0x4a026407, 0x00000005, - 0x4a026203, 0x00000001, 0x4a026403, 0x00000092, - 0x41780800, 0x58080205, 0x82000580, 0x00000055, - 0x04000003, 0x42000800, 0x00000001, 0x48066421, - 0x42000800, 0x80000040, 0x0201f800, 0x000209b1, - 0x5c026000, 0x1c01f000, 0x4d900000, 0x4dd00000, - 0x4da40000, 0x4d140000, 0x4d180000, 0x4803c856, - 0x417a3000, 0x0201f800, 0x00106705, 0x59900804, - 0x800409c0, 0x04000015, 0x83947c00, 0x00000009, - 0x83180400, 0x00105744, 0x50000000, 0x803c7c00, - 0x583c0003, 0x811808ca, 0x82040c00, 0x00006139, - 0x50040800, 0x80040580, 0x04000008, 0x42000000, - 0x0010bc81, 0x0201f800, 0x0010ad1d, 0x82000540, - 0x00000001, 0x0401f005, 0x811a3000, 0x83180580, - 0x00000005, 0x040207e4, 0x5c023000, 0x5c022800, - 0x5c034800, 0x5c03a000, 0x5c032000, 0x1c01f000, - 0x4d900000, 0x4dd00000, 0x4da40000, 0x4d140000, - 0x4d180000, 0x4803c856, 0x598c080f, 0x800409c0, - 0x04000003, 0x0201f800, 0x001058c9, 0x417a3000, - 0x0201f800, 0x00106705, 0x59900804, 0x800409c0, - 0x04000012, 0x83947c00, 0x00000009, 0x83180400, - 0x00105744, 0x50000000, 0x803c7c00, 0x811808ca, - 0x82040c00, 0x00006139, 0x50040800, 0x48047803, - 0x4a007801, 0x000001f4, 0x4a007800, 0x0000000a, - 0x4a007802, 0x00000004, 0x811a3000, 0x83180580, - 0x00000005, 0x040207e7, 0x5c023000, 0x5c022800, - 0x5c034800, 0x5c03a000, 0x5c032000, 0x1c01f000, - 0x41781000, 0x42026000, 0x0010f584, 0x59a8180d, - 0x480a6402, 0x4a026202, 0x0000ffff, 0x80081000, - 0x800c1840, 0x04000004, 0x83326400, 0x00000024, - 0x0401f7f8, 0x1c01f000, 0x0201f800, 0x00020a10, - 0x1c01f000, 0x5c036000, 0x4db00000, 0x49b3c857, - 0x4933c857, 0x813261c0, 0x04000037, 0x59300203, - 0x82000580, 0x00000000, 0x04000033, 0x59300004, - 0x8c00053e, 0x02020800, 0x0010032d, 0x59300407, - 0x4803c857, 0x82000d80, 0x00000004, 0x04000011, - 0x82000d80, 0x00000001, 0x0400000e, 0x82000d80, - 0x00000003, 0x04000006, 0x82000d80, 0x00000006, - 0x04020015, 0x0201f800, 0x0010a18b, 0x5930001d, - 0x800001c0, 0x02020800, 0x0010911f, 0x0401f00e, - 0x5930081f, 0x4807c857, 0x4d300000, 0x40066000, - 0x0201f800, 0x001091d9, 0x5c026000, 0x04020006, - 0x5804001d, 0x4803c857, 0x81300580, 0x04020002, - 0x4978081d, 0x4a026407, 0x00000007, 0x497a6009, - 0x4a026004, 0x00004000, 0x59a8002a, 0x82000c80, - 0x00000051, 0x04001002, 0x80000102, 0x48026006, - 0x497a6205, 0x1c01f000, 0x0401f803, 0x41318800, - 0x1c01f000, 0x83640480, 0x00000010, 0x04021008, - 0x42000000, 0x0010bc10, 0x0201f800, 0x0010ad1d, - 0x4967c857, 0x80026580, 0x1c01f000, 0x8166c9c0, - 0x0400001c, 0x41626000, 0x41580000, 0x59300a03, - 0x82040d80, 0x00000000, 0x04000008, 0x83326400, - 0x00000024, 0x81300c80, 0x040017f9, 0x42026000, - 0x0010f584, 0x0401f7f6, 0x4933c857, 0x8166c840, - 0x83300c00, 0x00000024, 0x80040480, 0x04021006, - 0x4006c000, 0x4a026203, 0x00000008, 0x813261c0, - 0x1c01f000, 0x4202c000, 0x0010f584, 0x0401f7fa, - 0x42000000, 0x0010bc10, 0x0201f800, 0x0010ad1d, - 0x4933c856, 0x417a6000, 0x0401f7f5, 0x0201f800, - 0x00020a34, 0x1c01f000, 0x4933c857, 0x83380580, - 0x00000013, 0x0402000b, 0x59300004, 0x8c00053e, - 0x04000007, 0x0201f800, 0x0010610d, 0x0201f800, - 0x0010605d, 0x0201f800, 0x001060fa, 0x1c01f000, - 0x4933c857, 0x598800b7, 0x80000000, 0x480310b7, - 0x1c01f000, 0x4933c857, 0x59300203, 0x82003480, - 0x0000000e, 0x02021800, 0x0010032d, 0x4d2c0000, - 0x0c01f803, 0x5c025800, 0x1c01f000, 0x00107151, - 0x0010771e, 0x00107883, 0x00107151, 0x001078ed, - 0x001072d6, 0x00107151, 0x00107151, 0x001076aa, - 0x00107151, 0x00107151, 0x00107151, 0x00107151, - 0x00107151, 0x0201f800, 0x0010032d, 0x4933c857, - 0x59300203, 0x82003480, 0x0000000e, 0x02021800, - 0x0010032d, 0x0c01f001, 0x00107168, 0x001082ab, - 0x00107168, 0x00107168, 0x00107168, 0x00107168, - 0x00107168, 0x00107168, 0x00108247, 0x001082c7, - 0x0010833d, 0x001082c7, 0x0010833d, 0x00107168, - 0x0201f800, 0x0010032d, 0x0201f800, 0x0010032d, - 0x4933c857, 0x4d2c0000, 0x59325809, 0x59300203, + 0x0201f000, 0x00107000, 0x4a026202, 0x0000ffff, + 0x0401f893, 0x4a01a406, 0x00002010, 0x4a01a206, + 0x00000014, 0x4a01a407, 0x00000800, 0x4a01a207, + 0x00002000, 0x42000000, 0x00000400, 0x59a80807, + 0x8c040d0c, 0x04000002, 0x80000580, 0x599c0817, + 0x8c040d0a, 0x04020003, 0x82000540, 0x00000020, + 0x8c040d08, 0x04000003, 0x82000540, 0x00000010, + 0x82000540, 0x00000002, 0x5934080a, 0x8c040d14, + 0x04000005, 0x82040d00, 0x00000380, 0x80040540, + 0x0401f006, 0x599c0818, 0x8c040d18, 0x04000003, + 0x82000540, 0x00000380, 0x0401f041, 0x0401f87a, + 0x4a01a406, 0x00000210, 0x4a01a206, 0x00000014, + 0x4a01a407, 0x00000800, 0x5934000a, 0x8c000516, + 0x04000014, 0x59340c05, 0x82040500, 0x00000030, + 0x04000013, 0x59340a05, 0x82040500, 0x0000c000, + 0x04020009, 0x8c040d1a, 0x04000004, 0x4a01a207, + 0x00002100, 0x0401f00c, 0x4a01a207, 0x00000100, + 0x0401f009, 0x4a01a207, 0x00000400, 0x0401f006, + 0x4a01a207, 0x00000700, 0x0401f003, 0x4a01a207, + 0x00000800, 0x42000000, 0x00000400, 0x59a80807, + 0x8c040d0c, 0x04000002, 0x80000580, 0x599c0817, + 0x8c040d0a, 0x04020003, 0x82000540, 0x00000020, + 0x8c040d08, 0x04000003, 0x82000540, 0x00000010, + 0x82000540, 0x00000002, 0x59340a00, 0x8c040d0e, + 0x0400000b, 0x84000550, 0x599c1017, 0x8c08150a, + 0x04020004, 0x8c040d0a, 0x04000002, 0x8400054e, + 0x8c040d1c, 0x04000002, 0x84000552, 0x4801a20a, + 0x42000800, 0x00000005, 0x42001000, 0x0000dc00, + 0x0201f000, 0x00107000, 0x0401f833, 0x4a01a006, + 0x02100014, 0x4a01a007, 0x00000100, 0x4979a008, + 0x4979a009, 0x4979a00a, 0x42000800, 0x00000005, + 0x42001000, 0x0000dc00, 0x0201f000, 0x00107000, + 0x0401f825, 0x4a01a006, 0x02000000, 0x0401f643, + 0x4933c857, 0x0401f820, 0x4a01a006, 0x01000000, + 0x4a01a407, 0x0000000b, 0x42000800, 0x00000002, + 0x42001000, 0x0000dc00, 0x0201f000, 0x00107000, + 0x42005000, 0x32000000, 0x42006000, 0x08290000, + 0x41786800, 0x41787800, 0x0401f3f3, 0x42005000, + 0x22000000, 0x42006000, 0x01290000, 0x41786800, + 0x41787800, 0x0401f3ec, 0x42005000, 0x33000000, + 0x42006000, 0x08980000, 0x41786800, 0x41787800, + 0x0401f3e5, 0x42005000, 0x23000000, 0x42006000, + 0x01980000, 0x41786800, 0x41787800, 0x0401f3de, + 0x59300403, 0x82000c80, 0x00000085, 0x02001800, + 0x0010032d, 0x82000c80, 0x00000093, 0x02021800, + 0x0010032d, 0x82000480, 0x00000085, 0x0c01f001, + 0x00106c16, 0x00106c16, 0x00106c16, 0x00106c16, + 0x00106c16, 0x00106c16, 0x00106c16, 0x00106c16, + 0x00106c16, 0x00106c16, 0x00106c16, 0x00106c16, + 0x00106c16, 0x00106c18, 0x0201f800, 0x0010032d, + 0x4d2c0000, 0x59325809, 0x4933c857, 0x492fc857, + 0x812e59c0, 0x02000800, 0x0010032d, 0x59340a12, + 0x82040d00, 0x0000ff00, 0x592c000b, 0x82000500, + 0x000000ff, 0x900001c0, 0x80040540, 0x82000540, + 0x00000011, 0x44034800, 0x81a5a000, 0x42001000, + 0x00000009, 0x42000800, 0x00000003, 0x592c000a, + 0x82000500, 0xff000000, 0x82001d80, 0x84000000, + 0x04000009, 0x82001d80, 0x85000000, 0x02020800, + 0x0010032d, 0x42001000, 0x00000007, 0x42000800, + 0x00000001, 0x832c1c00, 0x0000000a, 0x500c0000, + 0x4401a000, 0x800c1800, 0x80d1a000, 0x80081040, + 0x040207fb, 0x42001000, 0x0000dc00, 0x5c025800, + 0x0401f3b8, 0x42005000, 0x81000000, 0x42006000, + 0x00090000, 0x41786800, 0x41787800, 0x59301407, + 0x82081580, 0x00000005, 0x04020003, 0x42006000, + 0x00890000, 0x0401f384, 0x59300403, 0x82000c80, + 0x00000053, 0x02021800, 0x0010032d, 0x82000480, + 0x0000004b, 0x02001800, 0x0010032d, 0x5932680a, + 0x59368c03, 0x4803c857, 0x0c01f001, 0x00106cd5, + 0x00106cdd, 0x00106ce5, 0x00106ced, 0x00106c6b, + 0x00106c6b, 0x00106c6b, 0x00106ccd, 0x0201f800, + 0x0010032d, 0x42005000, 0x06000000, 0x42006000, + 0x08290000, 0x41786800, 0x41787800, 0x0401f366, + 0x4933c857, 0x0401ff72, 0x4a01a006, 0x12000000, + 0x59300407, 0x82000580, 0x00000004, 0x04020003, + 0x59340002, 0x0401f002, 0x59a8000f, 0x82000500, + 0x00ffffff, 0x4801a007, 0x5930041a, 0x4801a408, + 0x5930021a, 0x4801a208, 0x42000800, 0x00000003, + 0x42001000, 0x0000dc00, 0x0401f376, 0x0401ff5c, + 0x4a01a006, 0x0f000000, 0x5930001d, 0x4801a007, + 0x42000800, 0x00000002, 0x42001000, 0x0000dc00, + 0x0401f36c, 0x0401ff60, 0x4a01a006, 0x02000000, + 0x59c40085, 0x59880804, 0x80040c00, 0x48071004, + 0x497b8885, 0x59880000, 0x4801a007, 0x59880001, + 0x4801a008, 0x59880002, 0x4801a009, 0x59880003, + 0x4801a00a, 0x59880004, 0x4801a00b, 0x59880005, + 0x4801a00c, 0x42000800, 0x00000007, 0x42001000, + 0x0000dc00, 0x0401f353, 0x4a026202, 0x0000ffff, + 0x0401ff37, 0x4a01a006, 0x62000000, 0x5930001d, + 0x4801a007, 0x42000800, 0x00000002, 0x42001000, + 0x0000dc00, 0x0401f347, 0x0401ff2d, 0x59300809, + 0x4c500000, 0x4c540000, 0x4c580000, 0x8204a400, + 0x0000000b, 0x5930b01d, 0x82d0ac00, 0x00000006, + 0x0201f800, 0x0010aee2, 0x5930081d, 0x42001000, + 0x0000dc00, 0x5c00b000, 0x5c00a800, 0x5c00a000, + 0x0401f334, 0x0401ffa0, 0x59300018, 0x4801a006, + 0x59300019, 0x4801a007, 0x4a01a008, 0x00001000, + 0x0401f020, 0x0401ff98, 0x59300018, 0x4801a006, + 0x59300019, 0x4801a007, 0x4a01a008, 0x00004000, + 0x0401f018, 0x0401ff90, 0x59300018, 0x4801a006, + 0x59300019, 0x4801a007, 0x4a01a008, 0x00002000, + 0x0401f010, 0x0401ff88, 0x59300018, 0x4801a006, + 0x59300019, 0x4801a007, 0x4a01a008, 0x00000400, + 0x0401f008, 0x0401ff80, 0x59300018, 0x4801a006, + 0x59300019, 0x4801a007, 0x4a01a008, 0x00000200, + 0x4979a009, 0x4979a00a, 0x4979a00b, 0x4979a00c, + 0x4979a00d, 0x42000800, 0x00000008, 0x42001000, + 0x0000dc00, 0x0401f303, 0x0401fef7, 0x4a01a006, + 0x02000014, 0x4979a407, 0x4979a207, 0x59a8002d, + 0x4801a008, 0x59a8002e, 0x4801a009, 0x4a01a00a, + 0x00047878, 0x42000800, 0x00000005, 0x42001000, + 0x0000dc00, 0x0401f2f3, 0x0401fee7, 0x4a01a006, + 0x02140018, 0x4a01a407, 0x00000800, 0x5930001d, + 0x82000d00, 0xff000000, 0x900409c0, 0x4805a207, + 0x82000500, 0x00ffffff, 0x4801a00a, 0x4979a408, + 0x4979a208, 0x4979a409, 0x4979a209, 0x4979a00b, + 0x42000800, 0x00000006, 0x42001000, 0x0000dc00, + 0x0401f2dc, 0x4933c857, 0x4937c857, 0x4d1c0000, + 0x42000800, 0x00000035, 0x0201f800, 0x00108d34, + 0x04020025, 0x0401feba, 0x4a01a006, 0x13000000, + 0x5932381f, 0x59300403, 0x82000580, 0x00000057, + 0x04000005, 0x591c0415, 0x8c000502, 0x02000800, + 0x0010032d, 0x591c001a, 0x4801a005, 0x591c0407, + 0x82000580, 0x00000003, 0x04000007, 0x5930080a, + 0x58040002, 0x82000500, 0x00ffffff, 0x4801a007, + 0x0401f003, 0x59a8000f, 0x4801a007, 0x5930041a, + 0x4801a408, 0x5930021a, 0x4801a208, 0x42000800, + 0x00000003, 0x42001000, 0x0000dc00, 0x5c023800, + 0x0401f2b0, 0x4803c856, 0x0201f800, 0x001061b2, + 0x598c000f, 0x81300580, 0x02020800, 0x0010032d, + 0x0201f800, 0x00106102, 0x59300403, 0x82000580, + 0x00000057, 0x02000800, 0x001078e7, 0x0201f800, + 0x00020a10, 0x5c023800, 0x0201f000, 0x0010619f, + 0x4803c856, 0x4d2c0000, 0x4d1c0000, 0x5932381f, + 0x811e39c0, 0x02000800, 0x0010032d, 0x831c0580, + 0xffffffff, 0x0400003d, 0x591c0c07, 0x82040580, + 0x00000006, 0x0400000d, 0x82040580, 0x00000003, + 0x0400003b, 0x4a026403, 0x00000037, 0x4a02641b, + 0x00000003, 0x4a02621b, 0x00001700, 0x5c023800, + 0x5c025800, 0x0401f06c, 0x0401f850, 0x42001000, + 0x40000000, 0x591c0203, 0x591c0804, 0x8c040d3e, + 0x04020023, 0x82000c80, 0x0000000e, 0x0c001003, + 0x0201f800, 0x0010032d, 0x00106d9b, 0x00106da7, + 0x00106d9d, 0x00106da7, 0x00106da3, 0x00106d9b, + 0x00106d9b, 0x00106da7, 0x00106da7, 0x00106d9b, + 0x00106d9b, 0x00106d9b, 0x00106d9b, 0x00106d9b, + 0x00106da7, 0x00106d9b, 0x00106da7, 0x0201f800, + 0x0010032d, 0x591c0415, 0x4803c857, 0x8c000518, + 0x04000003, 0x8c000512, 0x04000003, 0x80001580, + 0x0401f003, 0x42001000, 0x20000000, 0x591c0016, + 0x4801a00a, 0x0401f01d, 0x0401f824, 0x42001000, + 0x40000000, 0x41780000, 0x0401f7fa, 0x0401f81f, + 0x591e5809, 0x812e59c0, 0x02000800, 0x0010032d, + 0x592c1010, 0x591c0012, 0x80080480, 0x4801a00a, + 0x591c0203, 0x591c0804, 0x8c040d3e, 0x04020007, + 0x82000d80, 0x00000002, 0x04000007, 0x82000d80, + 0x00000004, 0x04000004, 0x42001000, 0x40000000, + 0x0401f002, 0x80001580, 0x4809a00b, 0x42000800, + 0x00000006, 0x42001000, 0x0000dc00, 0x5c023800, + 0x5c025800, 0x0401f233, 0x4803c856, 0x0401fe26, + 0x4a01a006, 0x02000000, 0x59300c1a, 0x4805a407, + 0x59300a1a, 0x4805a207, 0x59a8100f, 0x5930080a, + 0x58041802, 0x820c1d00, 0x00ffffff, 0x5930081f, + 0x82040580, 0xffffffff, 0x04000008, 0x58040407, + 0x82000580, 0x00000003, 0x04020004, 0x4809a008, + 0x480da009, 0x0401f003, 0x480da008, 0x4809a009, + 0x1c01f000, 0x4803c856, 0x0401fe0b, 0x0401f003, + 0x4803c856, 0x0401fe01, 0x4a01a006, 0x01000000, + 0x5930041b, 0x4801a407, 0x5930021b, 0x4801a207, + 0x42000800, 0x00000002, 0x42001000, 0x0000dc00, + 0x0401f208, 0x4803c856, 0x4d1c0000, 0x0401fde5, + 0x4a01a006, 0x14000000, 0x5932381f, 0x591c001a, + 0x4801a005, 0x5930041a, 0x4801a407, 0x5930021a, + 0x4801a207, 0x59300016, 0x4801a008, 0x59300217, + 0x82000500, 0x000000ff, 0x840001c0, 0x4801a409, + 0x42000800, 0x00000004, 0x42001000, 0x0000dc00, + 0x5c023800, 0x0401f1ef, 0x4803c856, 0x0401fde2, + 0x4a01a006, 0x02000001, 0x42001000, 0xe0000000, + 0x59a80873, 0x8c040d3e, 0x04000004, 0x42001000, + 0x20000000, 0x0401f010, 0x59a8006d, 0x8c000508, + 0x04000004, 0x82081500, 0xdfffffff, 0x0401f00a, + 0x59a80847, 0x82040d80, 0x01391077, 0x04020006, + 0x59e00813, 0x8c040d00, 0x04000003, 0x82081500, + 0xdfffffff, 0x59c40801, 0x82040d00, 0x00018000, + 0x82040580, 0x00000000, 0x42000000, 0x00008000, + 0x0400000d, 0x82040580, 0x00008000, 0x42000000, + 0x00004000, 0x04000008, 0x82040580, 0x00010000, + 0x42000000, 0x00002000, 0x04000003, 0x42000000, + 0x00000002, 0x80080540, 0x4801a007, 0x42000800, + 0x00000002, 0x42001000, 0x0000dc00, 0x0401f1b9, + 0x4803c856, 0x0401f80b, 0x5930041b, 0x900001c0, + 0x4801a005, 0x0401f9f0, 0x41780800, 0x42001000, + 0x00005c00, 0x0401f9af, 0x0201f000, 0x0010596e, + 0x4803c856, 0x59300818, 0x82041c00, 0x00000006, + 0x46034800, 0x00000021, 0x58040405, 0x82000500, + 0x0000f000, 0x82000580, 0x00003000, 0x04000003, + 0x46034800, 0x00000041, 0x81a5a000, 0x580c0001, + 0x82000d00, 0x00ffffff, 0x82040d40, 0xc2000000, + 0x4805a000, 0x580c0800, 0x82041500, 0x00ffffff, + 0x82000500, 0xff000000, 0x80080540, 0x4801a001, + 0x580c0002, 0x82000580, 0x00c00000, 0x82000500, + 0x00fd0300, 0x4801a002, 0x580c0003, 0x4801a003, + 0x580c0404, 0x4801a404, 0x580c0204, 0x4801a204, + 0x1c01f000, 0x4803c856, 0x59a8021b, 0x82000500, + 0x00000028, 0x04020009, 0x59a8021b, 0x82000500, + 0x00000028, 0x04000003, 0x497a6a12, 0x0401f003, + 0x4a026a12, 0x0000ff00, 0x42005000, 0x22000000, + 0x42006000, 0x01380000, 0x41786800, 0x41787800, + 0x0401f949, 0x59301009, 0x4a01a006, 0x54000000, + 0x59a8000f, 0x82000500, 0x00ffffff, 0x58080c0b, + 0x800408f0, 0x80040540, 0x4801a007, 0x5808000b, + 0x82000500, 0xff000000, 0x4801a008, 0x59a80002, + 0x4801a009, 0x59a80003, 0x4801a00a, 0x59a80000, + 0x4801a00b, 0x59a80001, 0x4801a00c, 0x5808000d, + 0x9c0001c0, 0x4801a00d, 0x5808000e, 0x9c0001c0, + 0x4801a00e, 0x5808000f, 0x9c0001c0, 0x4801a00f, + 0x58080010, 0x9c0001c0, 0x4801a010, 0x58080011, + 0x9c0001c0, 0x4801a011, 0x58080012, 0x9c0001c0, + 0x4801a012, 0x58080013, 0x9c0001c0, 0x4801a013, + 0x58080014, 0x9c0001c0, 0x4801a014, 0x58080011, + 0x9c0001c0, 0x4801a015, 0x58080012, 0x9c0001c0, + 0x4801a016, 0x58080013, 0x9c0001c0, 0x4801a017, + 0x58080014, 0x9c0001c0, 0x4801a018, 0x42000800, + 0x00000013, 0x42001000, 0x0000dc00, 0x0401f131, + 0x4803c856, 0x42005000, 0x22000000, 0x42006000, + 0x01290000, 0x41786800, 0x41787800, 0x0401f902, + 0x59301009, 0x4a01a006, 0x55000000, 0x5808000c, + 0x82000500, 0x00ffffff, 0x58080c0b, 0x800408f0, + 0x80040540, 0x4801a007, 0x5808080b, 0x82040d00, + 0xff000000, 0x59a8000f, 0x82000500, 0x00ffffff, + 0x80040540, 0x4801a008, 0x5808000d, 0x9c0001c0, + 0x4801a009, 0x5808000e, 0x9c0001c0, 0x4801a00a, + 0x5808000f, 0x9c0001c0, 0x4801a00b, 0x58080010, + 0x9c0001c0, 0x4801a00c, 0x59a80002, 0x4801a00d, + 0x59a80003, 0x4801a00e, 0x59a80000, 0x4801a00f, + 0x59a80001, 0x4801a010, 0x58080011, 0x4801a011, + 0x58080012, 0x4801a012, 0x58080013, 0x4801a013, + 0x58080014, 0x4801a014, 0x4979a015, 0x4979a016, + 0x4979a017, 0x4979a018, 0x42000800, 0x00000013, + 0x42001000, 0x0000dc00, 0x0401f0f2, 0x0401fce6, + 0x5930001d, 0x800001c0, 0x04000008, 0x4a01a006, + 0x01000000, 0x4a01a407, 0x00000003, 0x42000800, + 0x00000002, 0x0401f028, 0x4a01a006, 0x02000000, + 0x41780800, 0x836c0580, 0x00000004, 0x04020003, + 0x84040d42, 0x0401f00d, 0x0201f800, 0x00104755, + 0x04020003, 0x84040d4a, 0x0401f002, 0x84040d48, + 0x59a8021b, 0x8c000506, 0x04020003, 0x8c00050a, + 0x04000002, 0x84040d46, 0x4805a207, 0x59c40085, + 0x48031004, 0x4c580000, 0x4c500000, 0x4c540000, + 0x4200b000, 0x00000006, 0x8388a400, 0x00000000, + 0x82d0ac00, 0x00000008, 0x0201f800, 0x0010aee2, + 0x5c00a800, 0x5c00a000, 0x5c00b000, 0x42000800, + 0x00000008, 0x42001000, 0x0000dc00, 0x0401f0bd, + 0x0401fca3, 0x4a01a006, 0x56000000, 0x59340006, + 0x4801a007, 0x59340007, 0x4801a008, 0x42000800, + 0x00000003, 0x42001000, 0x0000dc00, 0x0401f0b1, + 0x4803c856, 0x0401fca4, 0x5930081d, 0x800409c0, + 0x0400000e, 0x82040580, 0x0000ffff, 0x04000004, + 0x82040480, 0x00000007, 0x04021008, 0x4a01a006, + 0x01000000, 0x4a01a407, 0x00000003, 0x42000800, + 0x00000002, 0x0401f012, 0x4a01a006, 0x0200001c, + 0x4a01a007, 0x00000001, 0x42001000, 0x0010b946, + 0x50080000, 0x9c0001c0, 0x4801a009, 0x59a8000f, + 0x4801a00a, 0x59a80002, 0x59a80803, 0x4801a00b, + 0x4805a00c, 0x42000800, 0x00000007, 0x42001000, + 0x0000dc00, 0x0401f08b, 0x4d2c0000, 0x0401fc70, + 0x59325809, 0x592c0009, 0x82000500, 0x00ffffff, + 0x4801a001, 0x4a01a006, 0x51000000, 0x5c025800, + 0x0201f000, 0x00106a56, 0x4803c856, 0x59325809, + 0x5932680a, 0x59300407, 0x4803c857, 0x82000d80, + 0x00000009, 0x0400000a, 0x82000d80, 0x0000000a, + 0x04000032, 0x82000d80, 0x00000012, 0x02000000, + 0x0010aa24, 0x0201f800, 0x0010032d, 0x59300016, + 0x8c00051e, 0x04020020, 0x42005000, 0x04000000, + 0x42006000, 0x05000000, 0x592c040b, 0x82000500, + 0x00000030, 0x800000e0, 0x80306540, 0x5934000a, + 0x8c000508, 0x04000002, 0x84306546, 0x41786800, + 0x41787800, 0x0401f831, 0x59300c17, 0x80040000, + 0x48026417, 0x40040000, 0x800000d0, 0x82000540, + 0x00000020, 0x4801a403, 0x83180d40, 0x00000038, + 0x42001000, 0x0000c920, 0x0401f86d, 0x0201f000, + 0x00105973, 0x59a8021b, 0x82000500, 0x00000028, + 0x04000003, 0x497a6a12, 0x0401f7dc, 0x4a026a12, + 0x0000ff00, 0x0401f7d9, 0x42005000, 0x02000000, + 0x42006000, 0x20290000, 0x41786800, 0x41787800, + 0x0401f812, 0x83180d40, 0x00000038, 0x42001000, + 0x0000c9a0, 0x0401f856, 0x42000800, 0x00000004, + 0x59300012, 0x82000500, 0xfff00000, 0x80000540, + 0x02000000, 0x00105975, 0x42000800, 0x0000000e, + 0x0201f000, 0x00105975, 0x4201a000, 0x00000000, + 0x0401f003, 0x4201a000, 0x00000011, 0x59340a12, + 0x82040d00, 0x0000ff00, 0x59a8000f, 0x82000500, + 0x000000ff, 0x900001c0, 0x80040540, 0x80d00540, + 0x44034800, 0x81a5a000, 0x59340002, 0x82000500, + 0x00ffffff, 0x59300c03, 0x82040d80, 0x00000031, + 0x04020002, 0x41780000, 0x80280540, 0x4801a000, + 0x59a8000f, 0x4801a001, 0x4831a002, 0x82340540, + 0x00000000, 0x4801a003, 0x59300402, 0x4801a404, + 0x59300a02, 0x4805a204, 0x8c30652e, 0x04000003, + 0x4805a404, 0x4801a204, 0x483da005, 0x1c01f000, + 0x4807c857, 0x4c040000, 0x0401f82a, 0x5c000800, + 0x40040000, 0x80081540, 0x800000c4, 0x82000540, + 0x00002000, 0x4803910a, 0x59b400f6, 0x82000500, + 0x00000018, 0x040207fd, 0x42001800, 0x0010b999, + 0x580c0004, 0x4803c857, 0x580c0006, 0x4803c857, + 0x580c1800, 0x480fc857, 0x4a0368f0, 0x0010b998, + 0x4a0368f1, 0x0010b99f, 0x480b68f3, 0x4a0378e4, + 0x00008000, 0x0201f000, 0x0010596e, 0x4807c857, + 0x480a2800, 0x4c040000, 0x0401f80a, 0x5c000800, + 0x59b400f6, 0x8c00050a, 0x040207fe, 0x49a768f2, + 0x480768f4, 0x4a0378e4, 0x00008000, 0x1c01f000, + 0x4a0378e4, 0x0000c000, 0x59bc00e4, 0x8c000520, + 0x0400000c, 0x4a0378e4, 0x00008000, 0x42007000, + 0x000003e8, 0x59bc00e4, 0x8c000520, 0x040007f5, + 0x80387040, 0x02000800, 0x0010032d, 0x0401f7fa, + 0x1c01f000, 0x82000500, 0xffff0000, 0x82000580, + 0x01050000, 0x0402000d, 0x599c0818, 0x8c040d10, + 0x0400000a, 0x59a80806, 0x8c040d0a, 0x04000007, + 0x42001000, 0x0000804f, 0x41781800, 0x41782000, + 0x0201f800, 0x001031f5, 0x1c01f000, 0x1c01f000, + 0x59a80052, 0x800001c0, 0x0400004d, 0x4d2c0000, + 0x4d300000, 0x4c5c0000, 0x4c600000, 0x4c640000, + 0x40025800, 0x4000c000, 0x4000c800, 0x42026000, + 0x0010f628, 0x592c0407, 0x81440580, 0x04020035, + 0x592c0205, 0x82000580, 0x00000055, 0x04000005, + 0x8d3e7d18, 0x0400002f, 0x8d3e7d16, 0x0402002d, + 0x40640000, 0x812c0580, 0x0402001b, 0x59300203, + 0x82000580, 0x00000000, 0x04000013, 0x59300009, + 0x800001c0, 0x04000010, 0x0201f800, 0x001061b2, + 0x4df00000, 0x0201f800, 0x0010609c, 0x0201f800, + 0x0010e3bd, 0x80c40040, 0x04020003, 0x4a026203, + 0x00000000, 0x5c03e000, 0x02000800, 0x0010619f, + 0x497a6009, 0x592cc800, 0x4064c000, 0x4064b800, + 0x0401f003, 0x592cb800, 0x485cc000, 0x497a5800, + 0x592c0205, 0x82000580, 0x00000155, 0x04000004, + 0x0201f800, 0x00100580, 0x0401f004, 0x49425a07, + 0x0201f800, 0x000203ab, 0x405e5800, 0x0401f003, + 0x412cc000, 0x592e5800, 0x812e59c0, 0x040207c6, + 0x48675052, 0x48635053, 0x5c00c800, 0x5c00c000, + 0x5c00b800, 0x5c026000, 0x5c025800, 0x1c01f000, + 0x4943c857, 0x4d440000, 0x4d340000, 0x4c580000, + 0x4200b000, 0x000007f0, 0x417a8800, 0x0201f800, + 0x00020319, 0x04020002, 0x0401ffa6, 0x81468800, + 0x8058b040, 0x040207fa, 0x83440480, 0x00000800, + 0x04021008, 0x8d3e7d02, 0x04000006, 0x42028800, + 0x000007f0, 0x4200b000, 0x00000010, 0x0401f7f0, + 0x5c00b000, 0x5c026800, 0x5c028800, 0x1c01f000, + 0x4d300000, 0x59a81052, 0x800811c0, 0x0400001c, + 0x42026000, 0x0010f628, 0x59300203, 0x82000580, + 0x00000000, 0x04020016, 0x58080803, 0x4806600a, + 0x480a6009, 0x4a026407, 0x00000005, 0x4a026203, + 0x00000001, 0x4a026403, 0x00000092, 0x41780800, + 0x58080205, 0x82000580, 0x00000055, 0x04000003, + 0x42000800, 0x00000001, 0x48066421, 0x42000800, + 0x80000040, 0x0201f800, 0x000209b1, 0x5c026000, + 0x1c01f000, 0x4d900000, 0x4dd00000, 0x4da40000, + 0x4d140000, 0x4d180000, 0x4803c856, 0x417a3000, + 0x0201f800, 0x001067aa, 0x59900804, 0x800409c0, + 0x04000015, 0x83947c00, 0x00000009, 0x83180400, + 0x001057e9, 0x50000000, 0x803c7c00, 0x583c0003, + 0x811808ca, 0x82040c00, 0x00006139, 0x50040800, + 0x80040580, 0x04000008, 0x42000000, 0x0010bd81, + 0x0201f800, 0x0010ae10, 0x82000540, 0x00000001, + 0x0401f005, 0x811a3000, 0x83180580, 0x00000005, + 0x040207e4, 0x5c023000, 0x5c022800, 0x5c034800, + 0x5c03a000, 0x5c032000, 0x1c01f000, 0x4d900000, + 0x4dd00000, 0x4da40000, 0x4d140000, 0x4d180000, + 0x4803c856, 0x598c080f, 0x800409c0, 0x04000003, + 0x0201f800, 0x0010596e, 0x417a3000, 0x0201f800, + 0x001067aa, 0x59900804, 0x800409c0, 0x04000012, + 0x83947c00, 0x00000009, 0x83180400, 0x001057e9, + 0x50000000, 0x803c7c00, 0x811808ca, 0x82040c00, + 0x00006139, 0x50040800, 0x48047803, 0x4a007801, + 0x000001f4, 0x4a007800, 0x0000000a, 0x4a007802, + 0x00000004, 0x811a3000, 0x83180580, 0x00000005, + 0x040207e7, 0x5c023000, 0x5c022800, 0x5c034800, + 0x5c03a000, 0x5c032000, 0x1c01f000, 0x41781000, + 0x42026000, 0x0010f694, 0x59a8180d, 0x480a6402, + 0x4a026202, 0x0000ffff, 0x80081000, 0x800c1840, + 0x04000004, 0x83326400, 0x00000024, 0x0401f7f8, + 0x1c01f000, 0x0201f800, 0x00020a10, 0x1c01f000, + 0x5c036000, 0x4db00000, 0x49b3c857, 0x4933c857, + 0x813261c0, 0x0400003b, 0x59300203, 0x82000580, + 0x00000000, 0x04000037, 0x59300004, 0x8c00053e, + 0x02020800, 0x0010032d, 0x59300407, 0x4803c857, + 0x82000d80, 0x00000004, 0x04000011, 0x82000d80, + 0x00000001, 0x0400000e, 0x82000d80, 0x00000003, + 0x04000006, 0x82000d80, 0x00000006, 0x04020019, + 0x0201f800, 0x0010a26a, 0x5930001d, 0x800001c0, + 0x02020800, 0x001091d8, 0x0401f012, 0x5930000a, + 0x82000580, 0x0010c2b2, 0x0400000e, 0x5930081f, + 0x4807c857, 0x4d300000, 0x40066000, 0x0201f800, + 0x00109291, 0x5c026000, 0x04020006, 0x5804001d, + 0x4803c857, 0x81300580, 0x04020002, 0x4978081d, + 0x4a026407, 0x00000007, 0x497a6009, 0x4a026004, + 0x00004000, 0x59a8002a, 0x82000c80, 0x00000051, + 0x04001002, 0x80000102, 0x48026006, 0x497a6205, + 0x1c01f000, 0x0401f803, 0x41318800, 0x1c01f000, + 0x83640480, 0x00000010, 0x04021008, 0x42000000, + 0x0010bd10, 0x0201f800, 0x0010ae10, 0x4967c857, + 0x80026580, 0x1c01f000, 0x8166c9c0, 0x0400001c, + 0x41626000, 0x41580000, 0x59300a03, 0x82040d80, + 0x00000000, 0x04000008, 0x83326400, 0x00000024, + 0x81300c80, 0x040017f9, 0x42026000, 0x0010f694, + 0x0401f7f6, 0x4933c857, 0x8166c840, 0x83300c00, + 0x00000024, 0x80040480, 0x04021006, 0x4006c000, + 0x4a026203, 0x00000008, 0x813261c0, 0x1c01f000, + 0x4202c000, 0x0010f694, 0x0401f7fa, 0x42000000, + 0x0010bd10, 0x0201f800, 0x0010ae10, 0x4933c856, + 0x417a6000, 0x0401f7f5, 0x0201f800, 0x00020a34, + 0x1c01f000, 0x4933c857, 0x83380580, 0x00000013, + 0x0402000b, 0x59300004, 0x8c00053e, 0x04000007, + 0x0201f800, 0x001061b2, 0x0201f800, 0x00106102, + 0x0201f800, 0x0010619f, 0x1c01f000, 0x4933c857, + 0x598800b7, 0x80000000, 0x480310b7, 0x1c01f000, + 0x4933c857, 0x59300203, 0x82003480, 0x0000000e, + 0x02021800, 0x0010032d, 0x4d2c0000, 0x0c01f803, + 0x5c025800, 0x1c01f000, 0x001071e4, 0x001077b4, + 0x00107919, 0x001071e4, 0x00107991, 0x0010736c, + 0x001071e4, 0x001071e4, 0x00107740, 0x001071e4, + 0x001071e4, 0x001071e4, 0x001071e4, 0x001071e4, + 0x0201f800, 0x0010032d, 0x4933c857, 0x59300203, 0x82003480, 0x0000000e, 0x02021800, 0x0010032d, - 0x0c01f803, 0x5c025800, 0x1c01f000, 0x00107185, - 0x00107185, 0x00107185, 0x001071a1, 0x001071ed, - 0x00107185, 0x00107185, 0x00107185, 0x00107187, - 0x00107185, 0x00107185, 0x00107185, 0x00107185, - 0x00107185, 0x0201f800, 0x0010032d, 0x4933c857, - 0x83380580, 0x00000040, 0x02020800, 0x0010032d, - 0x4a026008, 0x00082000, 0x4a026203, 0x00000003, - 0x493a6403, 0x4a025c09, 0x00000001, 0x592c000e, - 0x48026012, 0x497a6014, 0x592c0209, 0x800000c2, - 0x800010c4, 0x80081400, 0x480a6006, 0x0201f800, - 0x00020154, 0x42000800, 0x80000060, 0x0201f000, - 0x000209a3, 0x4933c857, 0x83380480, 0x00000050, - 0x02021800, 0x0010032d, 0x83380480, 0x00000049, - 0x02001800, 0x0010032d, 0x0c01f001, 0x001071b4, - 0x001071bf, 0x001071b2, 0x001071b2, 0x001071b2, - 0x001071b2, 0x001071ca, 0x0201f800, 0x0010032d, - 0x4a026203, 0x00000004, 0x4a025c09, 0x00000002, - 0x592c0208, 0x48025c0a, 0x592c020a, 0x48025a08, - 0x592c000d, 0x4802580e, 0x1c01f000, 0x0201f800, - 0x0010603d, 0x0201f800, 0x0010889a, 0x04000005, - 0x4a025a07, 0x00000006, 0x0201f800, 0x000203ab, - 0x0201f000, 0x00020a10, 0x0201f800, 0x0010603d, - 0x4d3c0000, 0x417a7800, 0x0201f800, 0x0010df61, - 0x5c027800, 0x42003000, 0x00000014, 0x41782800, - 0x42002000, 0x00000002, 0x4d400000, 0x4d440000, - 0x59368c03, 0x42028000, 0x00000029, 0x0201f800, - 0x00109131, 0x5c028800, 0x5c028000, 0x42000000, - 0x0010bc1d, 0x0201f800, 0x0010ad1d, 0x0201f800, - 0x0010889a, 0x02000000, 0x00020a10, 0x4a025a07, - 0x00000029, 0x0201f800, 0x000203ab, 0x0201f000, - 0x00020a10, 0x4933c857, 0x83380580, 0x00000048, - 0x04000005, 0x83380580, 0x00000053, 0x02020800, - 0x0010032d, 0x592c0207, 0x82000580, 0x00000007, - 0x04000009, 0x59300012, 0x80000540, 0x04000006, - 0x592c080d, 0x80040480, 0x4802580d, 0x4a025a07, - 0x00000015, 0x592c0207, 0x80000540, 0x04020003, - 0x4a025a07, 0x00000000, 0x0201f800, 0x000203ab, - 0x0201f000, 0x00020a10, 0x4933c857, 0x4d2c0000, - 0x4c500000, 0x4c540000, 0x4c580000, 0x4c5c0000, - 0x4c600000, 0x4c640000, 0x4c100000, 0x0201f800, - 0x0010056f, 0x02000800, 0x0010032d, 0x497a5a07, - 0x59a8006c, 0x82000500, 0x0000f000, 0x48025c08, - 0x59a8085a, 0x82040c00, 0x00000018, 0x48065a08, - 0x412cb800, 0x4d2c0000, 0x41cca000, 0x4200c000, - 0x00000001, 0x4200c800, 0x0000002c, 0x82040480, - 0x0000002d, 0x04021006, 0x832cac00, 0x0000000a, - 0x0201f800, 0x00108413, 0x0401f030, 0x40043000, - 0x42000800, 0x0000002c, 0x832cac00, 0x0000000a, - 0x0201f800, 0x00108413, 0x82183480, 0x0000002c, - 0x4c180000, 0x0201f800, 0x0010056f, 0x5c003000, - 0x0400001a, 0x8060c000, 0x4a025805, 0x00000110, - 0x492cb801, 0x82180c80, 0x0000003d, 0x04021007, - 0x40180800, 0x832cac00, 0x00000006, 0x0201f800, - 0x00108413, 0x0401f015, 0x8264cc00, 0x0000003c, - 0x82183480, 0x0000003c, 0x42000800, 0x0000003c, - 0x412cb800, 0x832cac00, 0x00000006, 0x0201f800, - 0x00108413, 0x0401f7e3, 0x5c025800, 0x592c0207, - 0x8400055e, 0x48025a07, 0x592c0408, 0x80640540, - 0x48025c08, 0x0401f002, 0x5c025800, 0x5c002000, - 0x813669c0, 0x04000003, 0x59343403, 0x0401f003, - 0x42003000, 0x0000ffff, 0x49325809, 0x481a5c07, - 0x82100580, 0x00000054, 0x04020013, 0x4a025809, - 0xffffffff, 0x491e5814, 0x41781000, 0x831c0580, - 0xffffffff, 0x0400000b, 0x591c0009, 0x80000d40, - 0x04000008, 0x58040205, 0x82000500, 0x000000ff, - 0x82000580, 0x00000012, 0x04020002, 0x58041006, - 0x480a5806, 0x846001c0, 0x80100540, 0x48025805, - 0x592c0001, 0x497a5801, 0x4c000000, 0x0201f800, - 0x000203ab, 0x5c025800, 0x812e59c0, 0x040207f9, - 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x5c00b000, - 0x5c00a800, 0x5c00a000, 0x5c025800, 0x1c01f000, - 0x0201f800, 0x0010a3e5, 0x0401f7f6, 0x4803c856, - 0x4c5c0000, 0x4d2c0000, 0x4c500000, 0x4c540000, - 0x4c580000, 0x412cb800, 0x592c040c, 0x8c000516, - 0x04000003, 0x41cca000, 0x0401f003, 0x83cca400, - 0x00000006, 0x4008b000, 0x41781000, 0x82580480, - 0x0000004c, 0x04001004, 0x4200b000, 0x0000004c, - 0x40001000, 0x4c080000, 0x4d2c0000, 0x0201f800, - 0x0010056f, 0x04000026, 0x5c001800, 0x492c1801, - 0x485a5800, 0x8258b400, 0x00000003, 0x8058b104, - 0x832cac00, 0x00000002, 0x0201f800, 0x0010ae19, - 0x585c040c, 0x8c000500, 0x0400000e, 0x832c1400, - 0x00000002, 0x8c000516, 0x04000003, 0x82081400, - 0x00000006, 0x46001000, 0x00000001, 0x80081000, - 0x46001000, 0x00000900, 0x84000500, 0x4800bc0c, - 0x5c001000, 0x800811c0, 0x040207d7, 0x82000540, - 0x00000001, 0x5c00b000, 0x5c00a800, 0x5c00a000, - 0x5c025800, 0x5c00b800, 0x1c01f000, 0x5c025800, - 0x5c001000, 0x0401f7f8, 0x4933c857, 0x83380d80, - 0x00000015, 0x04020003, 0x0201f000, 0x00020a10, - 0x83380d80, 0x00000016, 0x02020800, 0x0010032d, - 0x0201f000, 0x00020a10, 0x4933c857, 0x4d2c0000, - 0x4c500000, 0x4c540000, 0x4c580000, 0x59325809, - 0x83cca400, 0x00000006, 0x59cc1806, 0x820c0580, - 0x01000000, 0x04020004, 0x4200b000, 0x00000002, - 0x0401f00f, 0x4200b000, 0x00000008, 0x832cac00, - 0x00000006, 0x0201f800, 0x0010adef, 0x8c0c1d00, - 0x0400000b, 0x4200b000, 0x00000008, 0x592e5801, - 0x812e59c0, 0x02000800, 0x0010032d, 0x832cac00, - 0x00000006, 0x0201f800, 0x0010adef, 0x0401f816, - 0x5c00b000, 0x5c00a800, 0x5c00a000, 0x5c025800, - 0x1c01f000, 0x4933c857, 0x4c500000, 0x4c540000, - 0x4c580000, 0x83cca400, 0x00000006, 0x5930a809, - 0x8254ac00, 0x00000006, 0x4200b000, 0x00000007, - 0x0201f800, 0x0010adef, 0x5c00b000, 0x5c00a800, - 0x5c00a000, 0x4933c857, 0x0201f800, 0x0010889a, - 0x02000000, 0x00020a10, 0x4d2c0000, 0x0201f800, - 0x00108e64, 0x0402000b, 0x41780800, 0x4d400000, - 0x42028000, 0x00000000, 0x0201f800, 0x00108cff, - 0x5c028000, 0x5c025800, 0x0201f000, 0x00020a10, - 0x5931d822, 0x58ef400a, 0x58ee580c, 0x4a025a05, - 0x00000103, 0x58ec0008, 0x0801f800, 0x5c025800, - 0x0201f000, 0x00020a10, 0x4933c857, 0x59cc1806, - 0x820c0580, 0x02000000, 0x04020020, 0x4a026802, - 0x00fffffd, 0x5934000a, 0x84000504, 0x4802680a, - 0x59300c1e, 0x82040580, 0x00000021, 0x04020009, - 0x42001800, 0x0000ffff, 0x42002000, 0x00000004, - 0x42003000, 0x00000012, 0x0201f800, 0x00103260, - 0x59300809, 0x800409c0, 0x02000000, 0x00020a10, - 0x4a000a05, 0x00000103, 0x480c0806, 0x5931d822, - 0x58ef400a, 0x58ee580c, 0x58ec0008, 0x0801f800, - 0x0201f000, 0x00020a10, 0x42000000, 0x0010bc26, - 0x0201f800, 0x0010ad1d, 0x4c0c0000, 0x0401f804, - 0x5c001800, 0x040207eb, 0x1c01f000, 0x4933c857, - 0x4d2c0000, 0x59325809, 0x812e59c0, 0x04020009, - 0x497a6006, 0x497a6205, 0x4d380000, 0x42027000, - 0x00000022, 0x0401fbab, 0x5c027000, 0x80000580, - 0x5c025800, 0x1c01f000, 0x4933c857, 0x4d2c0000, - 0x4c500000, 0x4c540000, 0x4c580000, 0x59325809, - 0x592e5801, 0x832cac00, 0x00000006, 0x83cca400, - 0x00000006, 0x59a8086c, 0x82040d00, 0x000003ff, - 0x82041480, 0x0000000f, 0x0400101b, 0x4200b000, - 0x0000000f, 0x0201f800, 0x0010adef, 0x592e5801, - 0x832cac00, 0x00000006, 0x82080c80, 0x0000000f, - 0x0400100d, 0x4200b000, 0x0000000f, 0x0201f800, - 0x0010adef, 0x592e5801, 0x832cac00, 0x00000006, - 0x82041480, 0x0000000f, 0x04001007, 0x42001000, - 0x0000000f, 0x4008b000, 0x0201f800, 0x0010adef, - 0x0401f004, 0x4004b000, 0x0201f800, 0x0010adef, - 0x5931d822, 0x58ef400a, 0x58ee580c, 0x4a025a05, - 0x00000103, 0x592e5801, 0x58ec0008, 0x0801f800, - 0x0201f800, 0x00020a10, 0x5c00b000, 0x5c00a800, - 0x5c00a000, 0x5c025800, 0x1c01f000, 0x4933c857, - 0x4d2c0000, 0x4c500000, 0x4c540000, 0x4c580000, - 0x59cc0006, 0x82000d80, 0x01000000, 0x0400002d, - 0x59cc0007, 0x9000b1c0, 0x8258b500, 0x000000ff, - 0x8058b104, 0x8258b400, 0x00000002, 0x82580c80, - 0x00000007, 0x04001003, 0x4200b000, 0x00000006, - 0x83cca400, 0x00000006, 0x59301009, 0x800811c0, - 0x02000800, 0x0010032d, 0x8208ac00, 0x00000006, - 0x0201f800, 0x0010adef, 0x82000d00, 0xff000000, - 0x800409c0, 0x0400001a, 0x8200b500, 0x000000ff, - 0x04000017, 0x8058b104, 0x82580c80, 0x0000000e, - 0x04001003, 0x4200b000, 0x0000000d, 0x58081001, - 0x800811c0, 0x02000800, 0x0010032d, 0x8208ac00, - 0x00000006, 0x0201f800, 0x0010adef, 0x0401f008, - 0x59301009, 0x800811c0, 0x02000800, 0x0010032d, - 0x48001006, 0x59cc0007, 0x48001007, 0x0401ff2e, - 0x5c00b000, 0x5c00a800, 0x5c00a000, 0x5c025800, - 0x1c01f000, 0x4933c857, 0x42000800, 0x00000000, - 0x59cc0006, 0x82000580, 0x02000000, 0x04000003, - 0x42000800, 0x00000001, 0x4d2c0000, 0x59325809, - 0x812e59c0, 0x02000800, 0x0010032d, 0x48065a07, - 0x0201f800, 0x000203ab, 0x5c025800, 0x0201f000, + 0x0c01f001, 0x001071fb, 0x00108352, 0x001071fb, + 0x001071fb, 0x001071fb, 0x001071fb, 0x001071fb, + 0x001071fb, 0x001082ee, 0x0010837c, 0x001083f2, + 0x0010837c, 0x001083f2, 0x001071fb, 0x0201f800, + 0x0010032d, 0x0201f800, 0x0010032d, 0x4933c857, + 0x4d2c0000, 0x59325809, 0x59300203, 0x82003480, + 0x0000000e, 0x02021800, 0x0010032d, 0x0c01f803, + 0x5c025800, 0x1c01f000, 0x00107218, 0x00107218, + 0x00107218, 0x00107234, 0x00107280, 0x00107218, + 0x00107218, 0x00107218, 0x0010721a, 0x00107218, + 0x00107218, 0x00107218, 0x00107218, 0x00107218, + 0x0201f800, 0x0010032d, 0x4933c857, 0x83380580, + 0x00000040, 0x02020800, 0x0010032d, 0x4a026008, + 0x00082000, 0x4a026203, 0x00000003, 0x493a6403, + 0x4a025c09, 0x00000001, 0x592c000e, 0x48026012, + 0x497a6014, 0x592c0209, 0x800000c2, 0x800010c4, + 0x80081400, 0x480a6006, 0x0201f800, 0x00020154, + 0x42000800, 0x80000060, 0x0201f000, 0x000209a3, + 0x4933c857, 0x83380480, 0x00000050, 0x02021800, + 0x0010032d, 0x83380480, 0x00000049, 0x02001800, + 0x0010032d, 0x0c01f001, 0x00107247, 0x00107252, + 0x00107245, 0x00107245, 0x00107245, 0x00107245, + 0x0010725d, 0x0201f800, 0x0010032d, 0x4a026203, + 0x00000004, 0x4a025c09, 0x00000002, 0x592c0208, + 0x48025c0a, 0x592c020a, 0x48025a08, 0x592c000d, + 0x4802580e, 0x1c01f000, 0x0201f800, 0x001060e2, + 0x0201f800, 0x00108953, 0x04000005, 0x4a025a07, + 0x00000006, 0x0201f800, 0x000203ab, 0x0201f000, + 0x00020a10, 0x0201f800, 0x001060e2, 0x4d3c0000, + 0x417a7800, 0x0201f800, 0x0010e06f, 0x5c027800, + 0x42003000, 0x00000014, 0x41782800, 0x42002000, + 0x00000002, 0x4d400000, 0x4d440000, 0x59368c03, + 0x42028000, 0x00000029, 0x0201f800, 0x001091ea, + 0x5c028800, 0x5c028000, 0x42000000, 0x0010bd1d, + 0x0201f800, 0x0010ae10, 0x0201f800, 0x00108953, + 0x02000000, 0x00020a10, 0x4a025a07, 0x00000029, + 0x0201f800, 0x000203ab, 0x0201f000, 0x00020a10, + 0x4933c857, 0x83380580, 0x00000048, 0x04000005, + 0x83380580, 0x00000053, 0x02020800, 0x0010032d, + 0x592c0207, 0x82000580, 0x00000007, 0x04000009, + 0x59300012, 0x80000540, 0x04000006, 0x592c080d, + 0x80040480, 0x4802580d, 0x4a025a07, 0x00000015, + 0x592c0207, 0x80000540, 0x04020003, 0x4a025a07, + 0x00000000, 0x0201f800, 0x000203ab, 0x0201f000, 0x00020a10, 0x4933c857, 0x4d2c0000, 0x4c500000, - 0x4c540000, 0x4c580000, 0x4200b000, 0x00000002, - 0x59cc0806, 0x82040580, 0x01000000, 0x04000004, - 0x8204b500, 0x0000ffff, 0x8058b104, 0x83cca400, - 0x00000006, 0x59300009, 0x8200ac00, 0x00000006, - 0x0201f800, 0x0010adef, 0x0401feff, 0x5c00b000, - 0x5c00a800, 0x5c00a000, 0x5c025800, 0x1c01f000, - 0x4933c857, 0x4803c857, 0x4807c857, 0x480bc857, - 0x480fc857, 0x4813c857, 0x481bc857, 0x492fc857, - 0x4d2c0000, 0x4c000000, 0x0201f800, 0x0010055a, - 0x5c000000, 0x0400000f, 0x48025803, 0x481a5801, - 0x48125808, 0x48065805, 0x480a5806, 0x480e5807, - 0x5c001000, 0x4c080000, 0x480a5809, 0x412c1000, - 0x0201f800, 0x00020016, 0x82000540, 0x00000001, - 0x5c025800, 0x1c01f000, 0x4933c857, 0x4937c857, - 0x4d1c0000, 0x0201f800, 0x00105713, 0x04020025, - 0x59cc0001, 0x82000500, 0x00ffffff, 0x59341002, - 0x82081500, 0x00ffffff, 0x80080580, 0x0402001d, - 0x497a6205, 0x42000800, 0x00000035, 0x0201f800, - 0x00108c7b, 0x04020012, 0x591c001d, 0x800001c0, - 0x0400000f, 0x497a381d, 0x591c0415, 0x8c000502, - 0x02000800, 0x0010032d, 0x84000502, 0x48023c15, - 0x591c1407, 0x82080580, 0x00000003, 0x04000006, - 0x82080580, 0x00000006, 0x04000005, 0x0401fc52, - 0x0401f004, 0x0401f805, 0x0401f002, 0x0401f8d2, - 0x5c023800, 0x1c01f000, 0x4d2c0000, 0x591e5809, - 0x4933c857, 0x491fc857, 0x493bc857, 0x492fc857, - 0x83380580, 0x00000015, 0x040000c5, 0x83380580, - 0x00000016, 0x040200c0, 0x4d300000, 0x411e6000, - 0x59cc0207, 0x4803c857, 0x82000d00, 0x0000ff00, - 0x82040580, 0x00001700, 0x04000004, 0x82040580, - 0x00000300, 0x04020063, 0x591c0203, 0x4803c857, - 0x82000580, 0x0000000d, 0x04000044, 0x812e59c0, - 0x040000ac, 0x591c0202, 0x4803c857, 0x82000580, - 0x0000ffff, 0x0402008f, 0x592c020b, 0x4803c857, - 0x82000500, 0x00000003, 0x82000580, 0x00000002, - 0x04020007, 0x592c0810, 0x591c0012, 0x4803c857, - 0x4807c857, 0x80040580, 0x04020082, 0x591c0415, - 0x4803c857, 0x8c000500, 0x0402007e, 0x42000000, - 0x0010bc03, 0x0201f800, 0x0010ad1d, 0x41780800, - 0x591c1006, 0x42000000, 0x0000000a, 0x0201f800, - 0x00105f69, 0x592c0407, 0x4803c857, 0x800001c0, - 0x0400000c, 0x80080c80, 0x04001004, 0x02020800, - 0x0010032d, 0x80001040, 0x480a5c07, 0x800811c0, - 0x04020004, 0x0201f800, 0x0010e95c, 0x0401f079, - 0x0201f800, 0x0010899c, 0x591c0818, 0x591c0019, - 0x48065809, 0x4802580a, 0x59300008, 0x8c000500, - 0x02020800, 0x00100bd4, 0x497a3809, 0x0201f800, - 0x0002029a, 0x04020057, 0x411e6000, 0x0201f800, - 0x001070b5, 0x0401f067, 0x0401fc2b, 0x04000016, - 0x591c0006, 0x48026006, 0x4936600a, 0x4a026407, - 0x00000003, 0x492e6009, 0x591c0818, 0x591c1019, - 0x48066018, 0x480a6019, 0x4d380000, 0x591e7403, - 0x4d300000, 0x411e6000, 0x0201f800, 0x001070b5, - 0x5c026000, 0x0201f800, 0x00020a34, 0x5c027000, - 0x0401f050, 0x59a8002c, 0x48023a05, 0x0401f04d, - 0x59cc0407, 0x82000580, 0x0000000b, 0x0402002e, - 0x59340a00, 0x84040d0e, 0x48066a00, 0x592c0a05, - 0x82040d00, 0x000000ff, 0x82040d80, 0x00000014, - 0x04000003, 0x4a02621e, 0x00000003, 0x59300008, - 0x8c000500, 0x02020800, 0x00100bd4, 0x4d400000, - 0x497a5c0a, 0x42028000, 0x00000003, 0x592c0a09, - 0x0201f800, 0x00104504, 0x0201f800, 0x0010ae30, - 0x04020009, 0x0201f800, 0x000203ab, 0x59300a1e, - 0x82040d80, 0x00000003, 0x02000800, 0x0010899c, - 0x497a6009, 0x5c028000, 0x4a026403, 0x00000085, - 0x4a026203, 0x00000009, 0x4a026407, 0x00000002, - 0x42000800, 0x8000404b, 0x0201f800, 0x000209b1, - 0x0401f01c, 0x59cc0207, 0x82000580, 0x00002a00, - 0x04020004, 0x59a8002c, 0x48023a05, 0x0401f015, - 0x812e59c0, 0x02000800, 0x0010032d, 0x4a025a05, - 0x00000103, 0x591c0008, 0x8c000500, 0x02020800, - 0x00100bd4, 0x591c0402, 0x48025c07, 0x4a025a07, - 0x00000003, 0x497a5c0a, 0x0201f800, 0x000203ab, - 0x0201f800, 0x001070b5, 0x0201f800, 0x0010410c, - 0x5c026000, 0x0201f800, 0x00020a10, 0x0401f002, - 0x5c026000, 0x5c025800, 0x1c01f000, 0x0401f819, - 0x0401f7fd, 0x4933c857, 0x83380580, 0x00000015, - 0x04020004, 0x59a8002c, 0x48023a05, 0x0401f00d, - 0x83380580, 0x00000016, 0x0402000d, 0x4d300000, - 0x411e6000, 0x0201f800, 0x0010a18b, 0x0201f800, - 0x00020979, 0x0201f800, 0x00020a10, 0x5c026000, - 0x497a381d, 0x0201f800, 0x00020a10, 0x1c01f000, - 0x4c5c0000, 0x591c0415, 0x84000540, 0x48023c15, - 0x59ccb80b, 0x4933c857, 0x491fc857, 0x492fc857, - 0x4803c857, 0x485fc857, 0x8c5cbd3c, 0x04000005, - 0x59a8002c, 0x48023a05, 0x497a381d, 0x0401f057, - 0x4d300000, 0x411e6000, 0x0201f800, 0x0010847b, - 0x5c026000, 0x591c0407, 0x82000580, 0x00000000, - 0x0400004e, 0x591c0403, 0x82000580, 0x00000050, - 0x0402000c, 0x4d300000, 0x411e6000, 0x4a026203, - 0x00000001, 0x42000800, 0x80000043, 0x0201f800, - 0x000209b1, 0x5c026000, 0x497a381d, 0x0401f03f, - 0x591c0203, 0x82000580, 0x0000000d, 0x0400001f, - 0x812e59c0, 0x02000800, 0x0010032d, 0x592c020b, - 0x4803c857, 0x8c000500, 0x0402001f, 0x8c000502, - 0x04000016, 0x591c0415, 0x8c00051c, 0x04020007, - 0x591c0012, 0x4803c857, 0x800001c0, 0x0400000f, - 0x591c0013, 0x48023817, 0x4a023813, 0x0fffffff, - 0x592c0209, 0x8400051e, 0x48025a09, 0x42000000, - 0x0010bc05, 0x0201f800, 0x0010ad1d, 0x4a023a15, - 0x00000001, 0x0401f01a, 0x42000000, 0x0010bc06, - 0x0201f800, 0x0010ad1d, 0x4a023a15, 0x00000007, - 0x0401f013, 0x8c5cbd3a, 0x040207f8, 0x59cc000a, - 0x592c1810, 0x4803c857, 0x480fc857, 0x800c0580, - 0x040007f2, 0x59cc000a, 0x4803c857, 0x48023817, - 0x48023816, 0x42000000, 0x0010bc04, 0x0201f800, - 0x0010ad1d, 0x4a023a15, 0x00000005, 0x5c00b800, - 0x0201f000, 0x00108b01, 0x5c00b800, 0x0201f000, - 0x00020a10, 0x4933c857, 0x4d1c0000, 0x0201f800, - 0x00105713, 0x04020053, 0x59cc0001, 0x59341002, - 0x80080580, 0x82000500, 0x00ffffff, 0x0402004a, - 0x5930141a, 0x0201f800, 0x00108cd8, 0x02000800, - 0x0010032d, 0x591c1407, 0x82080580, 0x00000007, - 0x04000041, 0x82080580, 0x00000002, 0x0400003e, - 0x82080580, 0x00000000, 0x0400003b, 0x591c0202, - 0x82000d80, 0x0000ffff, 0x04000004, 0x59301a1a, - 0x800c0580, 0x04020034, 0x83380580, 0x00000015, - 0x0400002f, 0x4d300000, 0x4d2c0000, 0x411e6000, - 0x59325809, 0x0201f800, 0x0010889a, 0x02000800, - 0x0010032d, 0x592c0205, 0x82000500, 0x000000ff, - 0x82000580, 0x00000014, 0x04000003, 0x4a02621e, - 0x00000003, 0x497a5c0a, 0x42028000, 0x00000003, - 0x592c0a09, 0x0201f800, 0x00104504, 0x0201f800, - 0x0010ae30, 0x04020009, 0x0201f800, 0x000203ab, - 0x59300a1e, 0x82040d80, 0x00000003, 0x02000800, - 0x0010899c, 0x497a6009, 0x5c025800, 0x4a026403, - 0x00000085, 0x4a026203, 0x00000009, 0x4a026407, - 0x00000002, 0x42000800, 0x8000404b, 0x0201f800, - 0x000209b1, 0x5c026000, 0x0401f003, 0x59a8002c, - 0x48023a05, 0x497a381d, 0x0201f800, 0x00020a10, - 0x5c023800, 0x1c01f000, 0x4933c857, 0x4c580000, - 0x4d2c0000, 0x59325809, 0x59342200, 0x82102500, - 0xffffdffd, 0x48126a00, 0x83383580, 0x00000015, - 0x0400000d, 0x0201f800, 0x0010889a, 0x04000064, - 0x0201f800, 0x00108e64, 0x04020005, 0x4200b000, - 0x00000002, 0x0201f800, 0x00108e43, 0x0401fa2a, - 0x0401f07b, 0x83cc1400, 0x00000008, 0x4200b000, - 0x00000002, 0x83341c00, 0x00000006, 0x0201f800, - 0x00107d52, 0x04020014, 0x83cc1400, 0x0000000a, - 0x4200b000, 0x00000002, 0x83341c00, 0x00000008, - 0x0201f800, 0x00107d52, 0x0402000b, 0x0201f800, - 0x00101a67, 0x59342200, 0x59cc1007, 0x800811c0, - 0x04000003, 0x480a6801, 0x84102542, 0x48126a00, - 0x0401f062, 0x4d3c0000, 0x417a7800, 0x0201f800, - 0x0010df61, 0x5c027800, 0x42000000, 0x0010bc1d, - 0x0201f800, 0x0010ad1d, 0x59340200, 0x84000558, - 0x48026a00, 0x4d300000, 0x0201f800, 0x001070f5, - 0x02000800, 0x0010032d, 0x4936600a, 0x497a6009, - 0x4a026407, 0x00000001, 0x4a026403, 0x00000001, - 0x42003000, 0x00000003, 0x0201f800, 0x0010a4ae, - 0x8d0e1d20, 0x04000011, 0x41782800, 0x42003000, - 0x00000001, 0x4d400000, 0x42028000, 0x00000029, - 0x0201f800, 0x00109f37, 0x5c028000, 0x4a026407, - 0x00000004, 0x4a026203, 0x00000007, 0x4a026421, - 0x00000001, 0x0401f009, 0x4a026203, 0x00000001, - 0x42000800, 0x0000000b, 0x0201f800, 0x00103d8a, - 0x0201f800, 0x00105fe8, 0x5c026000, 0x0201f800, - 0x0010889a, 0x04000026, 0x0201f800, 0x00108e64, - 0x04020026, 0x0401f9d0, 0x0401f021, 0x42000000, - 0x0010bc20, 0x0201f800, 0x0010ad1d, 0x4d3c0000, - 0x417a7800, 0x0201f800, 0x0010df61, 0x42000000, - 0x0010bc1d, 0x0201f800, 0x0010ad1d, 0x59340200, - 0x84000558, 0x48026a00, 0x42003000, 0x00000003, - 0x41782800, 0x42002000, 0x00000005, 0x4d400000, - 0x4d440000, 0x59368c03, 0x42028000, 0x00000029, - 0x0201f800, 0x00109131, 0x5c028800, 0x5c028000, - 0x5c027800, 0x0201f800, 0x00101a67, 0x0201f800, - 0x00020a10, 0x0401f002, 0x0401fc73, 0x5c025800, - 0x5c00b000, 0x1c01f000, 0x4933c857, 0x41380000, - 0x83383480, 0x00000058, 0x02021800, 0x0010032d, - 0x0c01f001, 0x00107718, 0x00107713, 0x00107718, - 0x00107718, 0x00107718, 0x00107718, 0x00107711, - 0x00107711, 0x00107711, 0x00107711, 0x00107711, - 0x00107711, 0x00107711, 0x00107711, 0x00107711, - 0x00107711, 0x00107711, 0x00107711, 0x00107711, - 0x00107711, 0x00107711, 0x00107711, 0x00107711, - 0x00107711, 0x00107711, 0x00107711, 0x00107711, - 0x00107711, 0x00107711, 0x00107711, 0x00107711, - 0x00107718, 0x00107711, 0x00107718, 0x00107718, - 0x00107711, 0x00107711, 0x00107711, 0x00107711, - 0x00107711, 0x00107718, 0x00107711, 0x00107711, - 0x00107711, 0x00107711, 0x00107711, 0x00107711, - 0x00107711, 0x00107711, 0x00107711, 0x00107718, - 0x00107718, 0x00107711, 0x00107711, 0x00107711, - 0x00107711, 0x00107711, 0x00107711, 0x00107711, - 0x00107711, 0x00107711, 0x00107718, 0x00107711, - 0x00107711, 0x00107718, 0x00107718, 0x00107711, - 0x00107718, 0x00107718, 0x00107711, 0x00107711, - 0x00107711, 0x00107711, 0x00107718, 0x00107711, - 0x00107711, 0x00107711, 0x00107718, 0x00107711, - 0x00107711, 0x00107711, 0x00107718, 0x00107711, - 0x00107711, 0x00107711, 0x00107718, 0x00107711, - 0x00107718, 0x00107711, 0x00107711, 0x00107711, - 0x00107711, 0x00107711, 0x00107711, 0x00107711, - 0x00107711, 0x0201f800, 0x0010032d, 0x4a026203, - 0x00000001, 0x493a6403, 0x0201f000, 0x00105fe8, - 0x4933c857, 0x4a026203, 0x00000001, 0x493a6403, - 0x0201f000, 0x00105fe8, 0x59300403, 0x82003480, - 0x00000058, 0x02021800, 0x0010032d, 0x83383580, - 0x00000013, 0x04000099, 0x83383580, 0x00000027, - 0x0402004e, 0x4933c857, 0x0201f800, 0x0010605d, - 0x0201f800, 0x0010a591, 0x0201f800, 0x001089af, - 0x0400000b, 0x0201f800, 0x001089ca, 0x04000041, - 0x59300403, 0x82000d80, 0x00000022, 0x04020038, - 0x0401fc2b, 0x0400003a, 0x0401f03a, 0x0201f800, - 0x00101a67, 0x42000800, 0x00000007, 0x0201f800, - 0x00103d8a, 0x0401f910, 0x4d440000, 0x59368c03, - 0x83440580, 0x000007fe, 0x04020008, 0x59a8121b, - 0x84081540, 0x0201f800, 0x00104716, 0x04020002, - 0x8408154a, 0x480b521b, 0x42028000, 0x00000029, - 0x4d3c0000, 0x417a7800, 0x0201f800, 0x0010df61, - 0x5c027800, 0x836c0580, 0x00000003, 0x0400000c, - 0x5932680a, 0x59340008, 0x800001c0, 0x04020008, - 0x59368c03, 0x4933c857, 0x4937c857, 0x4947c857, - 0x0201f800, 0x00103e2c, 0x0401f00c, 0x42000000, - 0x0010bc1d, 0x0201f800, 0x0010ad1d, 0x42003000, - 0x00000015, 0x41782800, 0x42002000, 0x00000003, - 0x0201f800, 0x00109131, 0x5c028800, 0x0201f800, - 0x00108bdb, 0x0201f000, 0x00020a10, 0x1c01f000, - 0x0401f8dd, 0x0401f7fa, 0x83380580, 0x00000014, - 0x0400000c, 0x4933c857, 0x0201f800, 0x0010644d, - 0x02020000, 0x00107134, 0x59300203, 0x82000580, - 0x00000002, 0x04000102, 0x0201f800, 0x0010032d, - 0x4933c857, 0x0201f800, 0x0010605d, 0x0201f800, - 0x0010a591, 0x4d3c0000, 0x417a7800, 0x0201f800, - 0x0010df61, 0x5c027800, 0x42003000, 0x00000016, - 0x41782800, 0x4d400000, 0x4d440000, 0x59368c03, - 0x42002000, 0x00000009, 0x42028000, 0x00000029, - 0x0201f800, 0x00109131, 0x5c028800, 0x5c028000, - 0x42000000, 0x0010bc1d, 0x0201f800, 0x0010ad1d, - 0x0201f800, 0x001089af, 0x0402000c, 0x0201f800, - 0x00101a67, 0x0401f8ac, 0x59340c03, 0x82040580, - 0x000007fe, 0x040207c6, 0x59a80a1b, 0x84040d40, - 0x4807521b, 0x0401f7c2, 0x0201f800, 0x001089ca, - 0x04020003, 0x0401f8a0, 0x0401f7bd, 0x59300403, - 0x82000d80, 0x00000032, 0x04020004, 0x0201f800, - 0x00101cfd, 0x0401f7b6, 0x82000d80, 0x00000022, - 0x04000895, 0x0401f7b2, 0x4933c857, 0x4803c857, - 0x0c01f001, 0x0010782a, 0x0010782a, 0x0010782a, - 0x0010782a, 0x0010782a, 0x0010782a, 0x00107821, - 0x00107821, 0x00107821, 0x00107821, 0x00107821, - 0x00107821, 0x00107821, 0x00107821, 0x00107821, - 0x00107821, 0x00107821, 0x00107821, 0x00107821, - 0x00107821, 0x00107821, 0x00107821, 0x00107821, - 0x00107821, 0x00107821, 0x00107821, 0x00107821, - 0x00107821, 0x00107821, 0x00107821, 0x0010782e, - 0x0010784b, 0x00107821, 0x0010784b, 0x0010784b, - 0x00107821, 0x00107821, 0x00107821, 0x00107821, - 0x00107821, 0x0010784b, 0x0010784b, 0x00107821, - 0x00107821, 0x00107821, 0x00107821, 0x00107821, - 0x00107821, 0x00107821, 0x00107821, 0x0010783c, - 0x0010784b, 0x00107821, 0x00107835, 0x00107821, - 0x00107821, 0x00107821, 0x00107835, 0x00107821, - 0x00107821, 0x00107821, 0x0010784b, 0x00107838, - 0x00107821, 0x00107823, 0x0010784b, 0x00107821, - 0x0010784b, 0x0010784b, 0x00107821, 0x00107821, - 0x00107821, 0x00107821, 0x0010784b, 0x00107821, - 0x00107821, 0x00107821, 0x0010784b, 0x00107821, - 0x00107821, 0x00107821, 0x0010784b, 0x00107821, - 0x00107821, 0x00107821, 0x0010784b, 0x00107821, - 0x0010784b, 0x00107821, 0x00107821, 0x00107821, - 0x00107821, 0x00107821, 0x00107821, 0x00107821, - 0x00107821, 0x0201f800, 0x0010032d, 0x4d2c0000, - 0x59325809, 0x0201f800, 0x000203ab, 0x5c025800, - 0x0201f000, 0x00020a10, 0x4a026203, 0x00000002, - 0x0201f000, 0x00108a4d, 0x4a026203, 0x00000005, - 0x59a8002c, 0x48026205, 0x59a8002a, 0x48026006, - 0x1c01f000, 0x5930081f, 0x49780a05, 0x0401f014, - 0x0201f800, 0x00108bdb, 0x0201f000, 0x00020a10, - 0x0201f800, 0x00101cfd, 0x0201f800, 0x0010610d, - 0x04000005, 0x0201f800, 0x0010605d, 0x0201f000, - 0x00020a10, 0x0201f800, 0x0010605d, 0x0201f800, - 0x00020a10, 0x0201f000, 0x001060fa, 0x4933c857, - 0x4a026203, 0x00000002, 0x59a8002a, 0x48026006, - 0x1c01f000, 0x4933c857, 0x0201f800, 0x0010889a, - 0x0400002e, 0x4d2c0000, 0x0201f800, 0x00108e64, - 0x0402000a, 0x4d400000, 0x42028000, 0x00000031, - 0x42000800, 0x00000004, 0x0201f800, 0x00108cff, - 0x5c028000, 0x0401f020, 0x59300c07, 0x82040580, - 0x00000010, 0x04000004, 0x82040580, 0x00000011, - 0x0402000a, 0x4a025a07, 0x00000031, 0x4a02580e, - 0x00000004, 0x4a02580f, 0x000000ff, 0x0201f800, - 0x000203ab, 0x0401f010, 0x592c0405, 0x8c00051e, - 0x0400000d, 0x4a025a05, 0x00000103, 0x4a025806, - 0x01000000, 0x4da00000, 0x4cec0000, 0x5931d822, - 0x58ef400a, 0x58ec0008, 0x0801f800, 0x5c01d800, - 0x5c034000, 0x5c025800, 0x1c01f000, 0x4933c857, + 0x4c540000, 0x4c580000, 0x4c5c0000, 0x4c600000, + 0x4c640000, 0x4c100000, 0x0201f800, 0x0010056f, + 0x02000800, 0x0010032d, 0x497a5a07, 0x59a8006c, + 0x82000500, 0x0000f000, 0x48025c08, 0x59a8085a, + 0x82040c00, 0x00000018, 0x48065a08, 0x412cb800, + 0x4d2c0000, 0x41cca000, 0x4200c000, 0x00000001, + 0x4200c800, 0x0000002c, 0x82040480, 0x0000002d, + 0x04021006, 0x832cac00, 0x0000000a, 0x0201f800, + 0x001084c8, 0x0401f030, 0x40043000, 0x42000800, + 0x0000002c, 0x832cac00, 0x0000000a, 0x0201f800, + 0x001084c8, 0x82183480, 0x0000002c, 0x4c180000, + 0x0201f800, 0x0010056f, 0x5c003000, 0x0400001a, + 0x8060c000, 0x4a025805, 0x00000110, 0x492cb801, + 0x82180c80, 0x0000003d, 0x04021007, 0x40180800, + 0x832cac00, 0x00000006, 0x0201f800, 0x001084c8, + 0x0401f015, 0x8264cc00, 0x0000003c, 0x82183480, + 0x0000003c, 0x42000800, 0x0000003c, 0x412cb800, + 0x832cac00, 0x00000006, 0x0201f800, 0x001084c8, + 0x0401f7e3, 0x5c025800, 0x592c0207, 0x8400055e, + 0x48025a07, 0x592c0408, 0x80640540, 0x48025c08, + 0x0401f002, 0x5c025800, 0x5c002000, 0x813669c0, + 0x04000003, 0x59343403, 0x0401f003, 0x42003000, + 0x0000ffff, 0x49325809, 0x481a5c07, 0x82100580, + 0x00000054, 0x04020013, 0x4a025809, 0xffffffff, + 0x491e5814, 0x41781000, 0x831c0580, 0xffffffff, + 0x0400000b, 0x591c0009, 0x80000d40, 0x04000008, + 0x58040205, 0x82000500, 0x000000ff, 0x82000580, + 0x00000012, 0x04020002, 0x58041006, 0x480a5806, + 0x846001c0, 0x80100540, 0x48025805, 0x0201f800, + 0x0010af31, 0x04020011, 0x592c0001, 0x497a5801, + 0x4c000000, 0x0201f800, 0x000203ab, 0x5c025800, + 0x812e59c0, 0x040207f6, 0x5c00c800, 0x5c00c000, + 0x5c00b800, 0x5c00b000, 0x5c00a800, 0x5c00a000, + 0x5c025800, 0x1c01f000, 0x0201f800, 0x0010a4d8, + 0x0401f7f6, 0x4803c856, 0x4c5c0000, 0x4d2c0000, + 0x4c500000, 0x4c540000, 0x4c580000, 0x412cb800, + 0x592c040c, 0x8c000516, 0x04000003, 0x41cca000, + 0x0401f003, 0x83cca400, 0x00000006, 0x4008b000, + 0x41781000, 0x82580480, 0x0000004c, 0x04001004, + 0x4200b000, 0x0000004c, 0x40001000, 0x4c080000, + 0x4d2c0000, 0x0201f800, 0x0010056f, 0x04000026, + 0x5c001800, 0x492c1801, 0x485a5800, 0x8258b400, + 0x00000003, 0x8058b104, 0x832cac00, 0x00000002, + 0x0201f800, 0x0010af0c, 0x585c040c, 0x8c000500, + 0x0400000e, 0x832c1400, 0x00000002, 0x8c000516, + 0x04000003, 0x82081400, 0x00000006, 0x46001000, + 0x00000001, 0x80081000, 0x46001000, 0x00000900, + 0x84000500, 0x4800bc0c, 0x5c001000, 0x800811c0, + 0x040207d7, 0x82000540, 0x00000001, 0x5c00b000, + 0x5c00a800, 0x5c00a000, 0x5c025800, 0x5c00b800, + 0x1c01f000, 0x5c025800, 0x5c001000, 0x0401f7f8, + 0x4933c857, 0x83380d80, 0x00000015, 0x04020003, + 0x0201f000, 0x00020a10, 0x83380d80, 0x00000016, + 0x02020800, 0x0010032d, 0x0201f000, 0x00020a10, + 0x4933c857, 0x4d2c0000, 0x4c500000, 0x4c540000, + 0x4c580000, 0x59325809, 0x83cca400, 0x00000006, + 0x59cc1806, 0x820c0580, 0x01000000, 0x04020004, + 0x4200b000, 0x00000002, 0x0401f00f, 0x4200b000, + 0x00000008, 0x832cac00, 0x00000006, 0x0201f800, + 0x0010aee2, 0x8c0c1d00, 0x0400000b, 0x4200b000, + 0x00000008, 0x592e5801, 0x812e59c0, 0x02000800, + 0x0010032d, 0x832cac00, 0x00000006, 0x0201f800, + 0x0010aee2, 0x0401f816, 0x5c00b000, 0x5c00a800, + 0x5c00a000, 0x5c025800, 0x1c01f000, 0x4933c857, + 0x4c500000, 0x4c540000, 0x4c580000, 0x83cca400, + 0x00000006, 0x5930a809, 0x8254ac00, 0x00000006, + 0x4200b000, 0x00000007, 0x0201f800, 0x0010aee2, + 0x5c00b000, 0x5c00a800, 0x5c00a000, 0x4933c857, + 0x0201f800, 0x00108953, 0x02000000, 0x00020a10, + 0x4d2c0000, 0x0201f800, 0x00108f1d, 0x0402000b, + 0x41780800, 0x4d400000, 0x42028000, 0x00000000, + 0x0201f800, 0x00108db8, 0x5c028000, 0x5c025800, + 0x0201f000, 0x00020a10, 0x5931d822, 0x58ef400a, + 0x58ee580c, 0x4a025a05, 0x00000103, 0x58ec0008, + 0x0801f800, 0x5c025800, 0x0201f000, 0x00020a10, + 0x4933c857, 0x59cc1806, 0x820c0580, 0x02000000, + 0x04020020, 0x4a026802, 0x00fffffd, 0x5934000a, + 0x84000504, 0x4802680a, 0x59300c1e, 0x82040580, + 0x00000021, 0x04020009, 0x42001800, 0x0000ffff, + 0x42002000, 0x00000004, 0x42003000, 0x00000012, + 0x0201f800, 0x0010326a, 0x59300809, 0x800409c0, + 0x02000000, 0x00020a10, 0x4a000a05, 0x00000103, + 0x480c0806, 0x5931d822, 0x58ef400a, 0x58ee580c, + 0x58ec0008, 0x0801f800, 0x0201f000, 0x00020a10, + 0x42000000, 0x0010bd26, 0x0201f800, 0x0010ae10, + 0x4c0c0000, 0x0401f804, 0x5c001800, 0x040207eb, + 0x1c01f000, 0x4933c857, 0x4d2c0000, 0x59325809, + 0x812e59c0, 0x04020009, 0x497a6006, 0x497a6205, + 0x4d380000, 0x42027000, 0x00000022, 0x0401fbab, + 0x5c027000, 0x80000580, 0x5c025800, 0x1c01f000, + 0x4933c857, 0x4d2c0000, 0x4c500000, 0x4c540000, + 0x4c580000, 0x59325809, 0x592e5801, 0x832cac00, + 0x00000006, 0x83cca400, 0x00000006, 0x59a8086c, + 0x82040d00, 0x000003ff, 0x82041480, 0x0000000f, + 0x0400101b, 0x4200b000, 0x0000000f, 0x0201f800, + 0x0010aee2, 0x592e5801, 0x832cac00, 0x00000006, + 0x82080c80, 0x0000000f, 0x0400100d, 0x4200b000, + 0x0000000f, 0x0201f800, 0x0010aee2, 0x592e5801, + 0x832cac00, 0x00000006, 0x82041480, 0x0000000f, + 0x04001007, 0x42001000, 0x0000000f, 0x4008b000, + 0x0201f800, 0x0010aee2, 0x0401f004, 0x4004b000, + 0x0201f800, 0x0010aee2, 0x5931d822, 0x58ef400a, + 0x58ee580c, 0x4a025a05, 0x00000103, 0x592e5801, + 0x58ec0008, 0x0801f800, 0x0201f800, 0x00020a10, + 0x5c00b000, 0x5c00a800, 0x5c00a000, 0x5c025800, + 0x1c01f000, 0x4933c857, 0x4d2c0000, 0x4c500000, + 0x4c540000, 0x4c580000, 0x59cc0006, 0x82000d80, + 0x01000000, 0x0400002d, 0x59cc0007, 0x9000b1c0, + 0x8258b500, 0x000000ff, 0x8058b104, 0x8258b400, + 0x00000002, 0x82580c80, 0x00000007, 0x04001003, + 0x4200b000, 0x00000006, 0x83cca400, 0x00000006, + 0x59301009, 0x800811c0, 0x02000800, 0x0010032d, + 0x8208ac00, 0x00000006, 0x0201f800, 0x0010aee2, + 0x82000d00, 0xff000000, 0x800409c0, 0x0400001a, + 0x8200b500, 0x000000ff, 0x04000017, 0x8058b104, + 0x82580c80, 0x0000000e, 0x04001003, 0x4200b000, + 0x0000000d, 0x58081001, 0x800811c0, 0x02000800, + 0x0010032d, 0x8208ac00, 0x00000006, 0x0201f800, + 0x0010aee2, 0x0401f008, 0x59301009, 0x800811c0, + 0x02000800, 0x0010032d, 0x48001006, 0x59cc0007, + 0x48001007, 0x0401ff2e, 0x5c00b000, 0x5c00a800, + 0x5c00a000, 0x5c025800, 0x1c01f000, 0x4933c857, + 0x42000800, 0x00000000, 0x59cc0006, 0x82000580, + 0x02000000, 0x04000003, 0x42000800, 0x00000001, + 0x4d2c0000, 0x59325809, 0x812e59c0, 0x02000800, + 0x0010032d, 0x48065a07, 0x0201f800, 0x000203ab, + 0x5c025800, 0x0201f000, 0x00020a10, 0x4933c857, + 0x4d2c0000, 0x4c500000, 0x4c540000, 0x4c580000, + 0x4200b000, 0x00000002, 0x59cc0806, 0x82040580, + 0x01000000, 0x04000004, 0x8204b500, 0x0000ffff, + 0x8058b104, 0x83cca400, 0x00000006, 0x59300009, + 0x8200ac00, 0x00000006, 0x0201f800, 0x0010aee2, + 0x0401feff, 0x5c00b000, 0x5c00a800, 0x5c00a000, + 0x5c025800, 0x1c01f000, 0x4933c857, 0x4803c857, + 0x4807c857, 0x480bc857, 0x480fc857, 0x4813c857, + 0x481bc857, 0x492fc857, 0x4d2c0000, 0x4c000000, + 0x0201f800, 0x0010055a, 0x5c000000, 0x0400000f, + 0x48025803, 0x481a5801, 0x48125808, 0x48065805, + 0x480a5806, 0x480e5807, 0x5c001000, 0x4c080000, + 0x480a5809, 0x412c1000, 0x0201f800, 0x00020016, + 0x82000540, 0x00000001, 0x5c025800, 0x1c01f000, + 0x4933c857, 0x4937c857, 0x4d1c0000, 0x0201f800, + 0x0010577f, 0x04020025, 0x59cc0001, 0x82000500, + 0x00ffffff, 0x59341002, 0x82081500, 0x00ffffff, + 0x80080580, 0x0402001d, 0x497a6205, 0x42000800, + 0x00000035, 0x0201f800, 0x00108d34, 0x04020012, + 0x591c001d, 0x800001c0, 0x0400000f, 0x497a381d, + 0x591c0415, 0x8c000502, 0x02000800, 0x0010032d, + 0x84000502, 0x48023c15, 0x591c1407, 0x82080580, + 0x00000003, 0x04000006, 0x82080580, 0x00000006, + 0x04000005, 0x0401fc4b, 0x0401f004, 0x0401f805, + 0x0401f002, 0x0401f8d2, 0x5c023800, 0x1c01f000, + 0x4d2c0000, 0x591e5809, 0x4933c857, 0x491fc857, + 0x493bc857, 0x492fc857, 0x83380580, 0x00000015, + 0x040000c5, 0x83380580, 0x00000016, 0x040200c0, + 0x4d300000, 0x411e6000, 0x59cc0207, 0x4803c857, + 0x82000d00, 0x0000ff00, 0x82040580, 0x00001700, + 0x04000004, 0x82040580, 0x00000300, 0x04020063, + 0x591c0203, 0x4803c857, 0x82000580, 0x0000000d, + 0x04000044, 0x812e59c0, 0x040000ac, 0x591c0202, + 0x4803c857, 0x82000580, 0x0000ffff, 0x0402008f, + 0x592c020b, 0x4803c857, 0x82000500, 0x00000003, + 0x82000580, 0x00000002, 0x04020007, 0x592c0810, + 0x591c0012, 0x4803c857, 0x4807c857, 0x80040580, + 0x04020082, 0x591c0415, 0x4803c857, 0x8c000500, + 0x0402007e, 0x42000000, 0x0010bd03, 0x0201f800, + 0x0010ae10, 0x41780800, 0x591c1006, 0x42000000, + 0x0000000a, 0x0201f800, 0x0010600e, 0x592c0407, + 0x4803c857, 0x800001c0, 0x0400000c, 0x80080c80, + 0x04001004, 0x02020800, 0x0010032d, 0x80001040, + 0x480a5c07, 0x800811c0, 0x04020004, 0x0201f800, + 0x0010ea61, 0x0401f079, 0x0201f800, 0x00108a55, + 0x591c0818, 0x591c0019, 0x48065809, 0x4802580a, + 0x59300008, 0x8c000500, 0x02020800, 0x00100bd5, + 0x497a3809, 0x0201f800, 0x0002029a, 0x04020057, + 0x411e6000, 0x0201f800, 0x00107144, 0x0401f067, + 0x0401fc28, 0x04000016, 0x591c0006, 0x48026006, + 0x4936600a, 0x4a026407, 0x00000003, 0x492e6009, + 0x591c0818, 0x591c1019, 0x48066018, 0x480a6019, + 0x4d380000, 0x591e7403, 0x4d300000, 0x411e6000, + 0x0201f800, 0x00107144, 0x5c026000, 0x0201f800, + 0x00020a34, 0x5c027000, 0x0401f050, 0x59a8002c, + 0x48023a05, 0x0401f04d, 0x59cc0407, 0x82000580, + 0x0000000b, 0x0402002e, 0x59340a00, 0x84040d0e, + 0x48066a00, 0x592c0a05, 0x82040d00, 0x000000ff, + 0x82040d80, 0x00000014, 0x04000003, 0x4a02621e, + 0x00000003, 0x59300008, 0x8c000500, 0x02020800, + 0x00100bd5, 0x4d400000, 0x497a5c0a, 0x42028000, + 0x00000003, 0x592c0a09, 0x0201f800, 0x00104543, + 0x0201f800, 0x0010af23, 0x04020009, 0x0201f800, + 0x000203ab, 0x59300a1e, 0x82040d80, 0x00000003, + 0x02000800, 0x00108a55, 0x497a6009, 0x5c028000, + 0x4a026403, 0x00000085, 0x4a026203, 0x00000009, + 0x4a026407, 0x00000002, 0x42000800, 0x8000404b, + 0x0201f800, 0x000209b1, 0x0401f01c, 0x59cc0207, + 0x82000580, 0x00002a00, 0x04020004, 0x59a8002c, + 0x48023a05, 0x0401f015, 0x812e59c0, 0x02000800, + 0x0010032d, 0x4a025a05, 0x00000103, 0x591c0008, + 0x8c000500, 0x02020800, 0x00100bd5, 0x591c0402, + 0x48025c07, 0x4a025a07, 0x00000003, 0x497a5c0a, + 0x0201f800, 0x000203ab, 0x0201f800, 0x00107144, + 0x0201f800, 0x00104126, 0x5c026000, 0x0201f800, + 0x00020a10, 0x0401f002, 0x5c026000, 0x5c025800, + 0x1c01f000, 0x0401f819, 0x0401f7fd, 0x4933c857, + 0x83380580, 0x00000015, 0x04020004, 0x59a8002c, + 0x48023a05, 0x0401f00d, 0x83380580, 0x00000016, + 0x0402000d, 0x4d300000, 0x411e6000, 0x0201f800, + 0x0010a26a, 0x0201f800, 0x00020979, 0x0201f800, + 0x00020a10, 0x5c026000, 0x497a381d, 0x0201f800, + 0x00020a10, 0x1c01f000, 0x4c5c0000, 0x591c0415, + 0x84000540, 0x48023c15, 0x59ccb80b, 0x4933c857, + 0x491fc857, 0x492fc857, 0x4803c857, 0x485fc857, + 0x8c5cbd3c, 0x04000005, 0x59a8002c, 0x48023a05, + 0x497a381d, 0x0401f057, 0x4d300000, 0x411e6000, + 0x0201f800, 0x00108530, 0x5c026000, 0x591c0407, + 0x82000580, 0x00000000, 0x0400004e, 0x591c0403, + 0x82000580, 0x00000050, 0x0402000c, 0x4d300000, + 0x411e6000, 0x4a026203, 0x00000001, 0x42000800, + 0x80000043, 0x0201f800, 0x000209b1, 0x5c026000, + 0x497a381d, 0x0401f03f, 0x591c0203, 0x82000580, + 0x0000000d, 0x0400001f, 0x812e59c0, 0x02000800, + 0x0010032d, 0x592c020b, 0x4803c857, 0x8c000500, + 0x0402001f, 0x8c000502, 0x04000016, 0x591c0415, + 0x8c00051c, 0x04020007, 0x591c0012, 0x4803c857, + 0x800001c0, 0x0400000f, 0x591c0013, 0x48023817, + 0x4a023813, 0x0fffffff, 0x592c0209, 0x8400051e, + 0x48025a09, 0x42000000, 0x0010bd05, 0x0201f800, + 0x0010ae10, 0x4a023a15, 0x00000001, 0x0401f01a, + 0x42000000, 0x0010bd06, 0x0201f800, 0x0010ae10, + 0x4a023a15, 0x00000007, 0x0401f013, 0x8c5cbd3a, + 0x040207f8, 0x59cc000a, 0x592c1810, 0x4803c857, + 0x480fc857, 0x800c0580, 0x040007f2, 0x59cc000a, + 0x4803c857, 0x48023817, 0x48023816, 0x42000000, + 0x0010bd04, 0x0201f800, 0x0010ae10, 0x4a023a15, + 0x00000005, 0x5c00b800, 0x0201f000, 0x00108bba, + 0x5c00b800, 0x0201f000, 0x00020a10, 0x4933c857, + 0x4d1c0000, 0x0201f800, 0x0010577f, 0x04020053, + 0x59cc0001, 0x59341002, 0x80080580, 0x82000500, + 0x00ffffff, 0x0402004a, 0x5930141a, 0x0201f800, + 0x00108d91, 0x02000800, 0x0010032d, 0x591c1407, + 0x82080580, 0x00000007, 0x04000041, 0x82080580, + 0x00000002, 0x0400003e, 0x82080580, 0x00000000, + 0x0400003b, 0x591c0202, 0x82000d80, 0x0000ffff, + 0x04000004, 0x59301a1a, 0x800c0580, 0x04020034, + 0x83380580, 0x00000015, 0x0400002f, 0x4d300000, + 0x4d2c0000, 0x411e6000, 0x59325809, 0x0201f800, + 0x00108953, 0x02000800, 0x0010032d, 0x592c0205, + 0x82000500, 0x000000ff, 0x82000580, 0x00000014, + 0x04000003, 0x4a02621e, 0x00000003, 0x497a5c0a, + 0x42028000, 0x00000003, 0x592c0a09, 0x0201f800, + 0x00104543, 0x0201f800, 0x0010af23, 0x04020009, + 0x0201f800, 0x000203ab, 0x59300a1e, 0x82040d80, + 0x00000003, 0x02000800, 0x00108a55, 0x497a6009, + 0x5c025800, 0x4a026403, 0x00000085, 0x4a026203, + 0x00000009, 0x4a026407, 0x00000002, 0x42000800, + 0x8000404b, 0x0201f800, 0x000209b1, 0x5c026000, + 0x0401f003, 0x59a8002c, 0x48023a05, 0x497a381d, + 0x0201f800, 0x00020a10, 0x5c023800, 0x1c01f000, + 0x4933c857, 0x4c580000, 0x4d2c0000, 0x59325809, + 0x59342200, 0x82102500, 0xffffdffd, 0x48126a00, + 0x83383580, 0x00000015, 0x0400000d, 0x0201f800, + 0x00108953, 0x04000064, 0x0201f800, 0x00108f1d, + 0x04020005, 0x4200b000, 0x00000002, 0x0201f800, + 0x00108efc, 0x0401fa2a, 0x0401f07b, 0x83cc1400, + 0x00000008, 0x4200b000, 0x00000002, 0x83341c00, + 0x00000006, 0x0201f800, 0x00107df9, 0x04020014, + 0x83cc1400, 0x0000000a, 0x4200b000, 0x00000002, + 0x83341c00, 0x00000008, 0x0201f800, 0x00107df9, + 0x0402000b, 0x0201f800, 0x00101a68, 0x59342200, + 0x59cc1007, 0x800811c0, 0x04000003, 0x480a6801, + 0x84102542, 0x48126a00, 0x0401f062, 0x4d3c0000, + 0x417a7800, 0x0201f800, 0x0010e06f, 0x5c027800, + 0x42000000, 0x0010bd1d, 0x0201f800, 0x0010ae10, + 0x59340200, 0x84000558, 0x48026a00, 0x4d300000, + 0x0201f800, 0x00107188, 0x02000800, 0x0010032d, + 0x4936600a, 0x497a6009, 0x4a026407, 0x00000001, + 0x4a026403, 0x00000001, 0x42003000, 0x00000003, + 0x0201f800, 0x0010a5a1, 0x8d0e1d20, 0x04000011, + 0x41782800, 0x42003000, 0x00000001, 0x4d400000, + 0x42028000, 0x00000029, 0x0201f800, 0x0010a00e, + 0x5c028000, 0x4a026407, 0x00000004, 0x4a026203, + 0x00000007, 0x4a026421, 0x00000001, 0x0401f009, + 0x4a026203, 0x00000001, 0x42000800, 0x0000000b, + 0x0201f800, 0x00103d9d, 0x0201f800, 0x0010608d, + 0x5c026000, 0x0201f800, 0x00108953, 0x04000026, + 0x0201f800, 0x00108f1d, 0x04020026, 0x0401f9d0, + 0x0401f021, 0x42000000, 0x0010bd20, 0x0201f800, + 0x0010ae10, 0x4d3c0000, 0x417a7800, 0x0201f800, + 0x0010e06f, 0x42000000, 0x0010bd1d, 0x0201f800, + 0x0010ae10, 0x59340200, 0x84000558, 0x48026a00, + 0x42003000, 0x00000003, 0x41782800, 0x42002000, + 0x00000005, 0x4d400000, 0x4d440000, 0x59368c03, + 0x42028000, 0x00000029, 0x0201f800, 0x001091ea, + 0x5c028800, 0x5c028000, 0x5c027800, 0x0201f800, + 0x00101a68, 0x0201f800, 0x00020a10, 0x0401f002, + 0x0401fc73, 0x5c025800, 0x5c00b000, 0x1c01f000, + 0x4933c857, 0x41380000, 0x83383480, 0x00000058, + 0x02021800, 0x0010032d, 0x0c01f001, 0x001077ae, + 0x001077a9, 0x001077ae, 0x001077ae, 0x001077ae, + 0x001077ae, 0x001077a7, 0x001077a7, 0x001077a7, + 0x001077a7, 0x001077a7, 0x001077a7, 0x001077a7, + 0x001077a7, 0x001077a7, 0x001077a7, 0x001077a7, + 0x001077a7, 0x001077a7, 0x001077a7, 0x001077a7, + 0x001077a7, 0x001077a7, 0x001077a7, 0x001077a7, + 0x001077a7, 0x001077a7, 0x001077a7, 0x001077a7, + 0x001077a7, 0x001077a7, 0x001077ae, 0x001077a7, + 0x001077ae, 0x001077ae, 0x001077a7, 0x001077a7, + 0x001077a7, 0x001077a7, 0x001077a7, 0x001077ae, + 0x001077a7, 0x001077a7, 0x001077a7, 0x001077a7, + 0x001077a7, 0x001077a7, 0x001077a7, 0x001077a7, + 0x001077a7, 0x001077ae, 0x001077ae, 0x001077a7, + 0x001077a7, 0x001077a7, 0x001077a7, 0x001077a7, + 0x001077a7, 0x001077a7, 0x001077a7, 0x001077a7, + 0x001077ae, 0x001077a7, 0x001077a7, 0x001077ae, + 0x001077ae, 0x001077a7, 0x001077ae, 0x001077ae, + 0x001077a7, 0x001077a7, 0x001077a7, 0x001077a7, + 0x001077ae, 0x001077a7, 0x001077a7, 0x001077a7, + 0x001077ae, 0x001077a7, 0x001077a7, 0x001077a7, + 0x001077ae, 0x001077a7, 0x001077a7, 0x001077a7, + 0x001077ae, 0x001077a7, 0x001077ae, 0x001077a7, + 0x001077a7, 0x001077a7, 0x001077a7, 0x001077a7, + 0x001077a7, 0x001077a7, 0x001077a7, 0x0201f800, + 0x0010032d, 0x4a026203, 0x00000001, 0x493a6403, + 0x0201f000, 0x0010608d, 0x4933c857, 0x4a026203, + 0x00000001, 0x493a6403, 0x0201f000, 0x0010608d, + 0x59300403, 0x82003480, 0x00000058, 0x02021800, + 0x0010032d, 0x83383580, 0x00000013, 0x04000099, + 0x83383580, 0x00000027, 0x0402004e, 0x4933c857, + 0x0201f800, 0x00106102, 0x0201f800, 0x0010a684, + 0x0201f800, 0x00108a68, 0x0400000b, 0x0201f800, + 0x00108a83, 0x04000041, 0x59300403, 0x82000d80, + 0x00000022, 0x04020038, 0x0401fc2b, 0x0400003a, + 0x0401f03a, 0x0201f800, 0x00101a68, 0x42000800, + 0x00000007, 0x0201f800, 0x00103d9d, 0x0401f910, + 0x4d440000, 0x59368c03, 0x83440580, 0x000007fe, + 0x04020008, 0x59a8121b, 0x84081540, 0x0201f800, + 0x00104755, 0x04020002, 0x8408154a, 0x480b521b, + 0x42028000, 0x00000029, 0x4d3c0000, 0x417a7800, + 0x0201f800, 0x0010e06f, 0x5c027800, 0x836c0580, + 0x00000003, 0x0400000c, 0x5932680a, 0x59340008, + 0x800001c0, 0x04020008, 0x59368c03, 0x4933c857, + 0x4937c857, 0x4947c857, 0x0201f800, 0x00103e42, + 0x0401f00c, 0x42000000, 0x0010bd1d, 0x0201f800, + 0x0010ae10, 0x42003000, 0x00000015, 0x41782800, + 0x42002000, 0x00000003, 0x0201f800, 0x001091ea, + 0x5c028800, 0x0201f800, 0x00108c94, 0x0201f000, + 0x00020a10, 0x1c01f000, 0x0401f8dd, 0x0401f7fa, + 0x83380580, 0x00000014, 0x0400000c, 0x4933c857, + 0x0201f800, 0x001064f2, 0x02020000, 0x001071c7, + 0x59300203, 0x82000580, 0x00000002, 0x04000102, + 0x0201f800, 0x0010032d, 0x4933c857, 0x0201f800, + 0x00106102, 0x0201f800, 0x0010a684, 0x4d3c0000, + 0x417a7800, 0x0201f800, 0x0010e06f, 0x5c027800, + 0x42003000, 0x00000016, 0x41782800, 0x4d400000, + 0x4d440000, 0x59368c03, 0x42002000, 0x00000009, + 0x42028000, 0x00000029, 0x0201f800, 0x001091ea, + 0x5c028800, 0x5c028000, 0x42000000, 0x0010bd1d, + 0x0201f800, 0x0010ae10, 0x0201f800, 0x00108a68, + 0x0402000c, 0x0201f800, 0x00101a68, 0x0401f8ac, + 0x59340c03, 0x82040580, 0x000007fe, 0x040207c6, + 0x59a80a1b, 0x84040d40, 0x4807521b, 0x0401f7c2, + 0x0201f800, 0x00108a83, 0x04020003, 0x0401f8a0, + 0x0401f7bd, 0x59300403, 0x82000d80, 0x00000032, + 0x04020004, 0x0201f800, 0x00101d02, 0x0401f7b6, + 0x82000d80, 0x00000022, 0x04000895, 0x0401f7b2, + 0x4933c857, 0x4803c857, 0x0c01f001, 0x001078c0, + 0x001078c0, 0x001078c0, 0x001078c0, 0x001078c0, + 0x001078c0, 0x001078b7, 0x001078b7, 0x001078b7, + 0x001078b7, 0x001078b7, 0x001078b7, 0x001078b7, + 0x001078b7, 0x001078b7, 0x001078b7, 0x001078b7, + 0x001078b7, 0x001078b7, 0x001078b7, 0x001078b7, + 0x001078b7, 0x001078b7, 0x001078b7, 0x001078b7, + 0x001078b7, 0x001078b7, 0x001078b7, 0x001078b7, + 0x001078b7, 0x001078c4, 0x001078e1, 0x001078b7, + 0x001078e1, 0x001078e1, 0x001078b7, 0x001078b7, + 0x001078b7, 0x001078b7, 0x001078b7, 0x001078e1, + 0x001078e1, 0x001078b7, 0x001078b7, 0x001078b7, + 0x001078b7, 0x001078b7, 0x001078b7, 0x001078b7, + 0x001078b7, 0x001078d2, 0x001078e1, 0x001078b7, + 0x001078cb, 0x001078b7, 0x001078b7, 0x001078b7, + 0x001078cb, 0x001078b7, 0x001078b7, 0x001078b7, + 0x001078e1, 0x001078ce, 0x001078b7, 0x001078b9, + 0x001078e1, 0x001078b7, 0x001078e1, 0x001078e1, + 0x001078b7, 0x001078b7, 0x001078b7, 0x001078b7, + 0x001078e1, 0x001078b7, 0x001078b7, 0x001078b7, + 0x001078e1, 0x001078b7, 0x001078b7, 0x001078b7, + 0x001078e1, 0x001078b7, 0x001078b7, 0x001078b7, + 0x001078e1, 0x001078b7, 0x001078e1, 0x001078b7, + 0x001078b7, 0x001078b7, 0x001078b7, 0x001078b7, + 0x001078b7, 0x001078b7, 0x001078b7, 0x0201f800, + 0x0010032d, 0x4d2c0000, 0x59325809, 0x0201f800, + 0x000203ab, 0x5c025800, 0x0201f000, 0x00020a10, + 0x4a026203, 0x00000002, 0x0201f000, 0x00108b06, + 0x4a026203, 0x00000005, 0x59a8002c, 0x48026205, + 0x59a8002a, 0x48026006, 0x1c01f000, 0x5930081f, + 0x49780a05, 0x0401f014, 0x0201f800, 0x00108c94, + 0x0201f000, 0x00020a10, 0x0201f800, 0x00101d02, + 0x0201f800, 0x001061b2, 0x04000005, 0x0201f800, + 0x00106102, 0x0201f000, 0x00020a10, 0x0201f800, + 0x00106102, 0x0201f800, 0x00020a10, 0x0201f000, + 0x0010619f, 0x4933c857, 0x4a026203, 0x00000002, + 0x59a8002a, 0x48026006, 0x1c01f000, 0x4933c857, + 0x0201f800, 0x00108953, 0x0400002e, 0x4d2c0000, + 0x0201f800, 0x00108f1d, 0x0402000a, 0x4d400000, + 0x42028000, 0x00000031, 0x42000800, 0x00000004, + 0x0201f800, 0x00108db8, 0x5c028000, 0x0401f020, + 0x59300c07, 0x82040580, 0x00000010, 0x04000004, + 0x82040580, 0x00000011, 0x0402000a, 0x4a025a07, + 0x00000031, 0x4a02580e, 0x00000004, 0x4a02580f, + 0x000000ff, 0x0201f800, 0x000203ab, 0x0401f010, + 0x592c0405, 0x8c00051e, 0x0400000d, 0x4a025a05, + 0x00000103, 0x4a025806, 0x01000000, 0x4da00000, + 0x4cec0000, 0x5931d822, 0x58ef400a, 0x58ec0008, + 0x0801f800, 0x5c01d800, 0x5c034000, 0x5c025800, + 0x1c01f000, 0x4933c857, 0x83340580, 0x0010c2b2, + 0x0402000c, 0x83380d80, 0x00000015, 0x04000005, + 0x83380d80, 0x00000016, 0x02020000, 0x001071c7, + 0x0201f800, 0x0010a687, 0x0201f000, 0x00020a10, 0x59340400, 0x82000500, 0x000000ff, 0x82003480, 0x0000000c, 0x02021800, 0x0010032d, 0x59303403, - 0x82180d80, 0x0000004d, 0x02000000, 0x00108c47, - 0x82180d80, 0x00000033, 0x02000000, 0x00108bfe, - 0x82180d80, 0x00000028, 0x02000000, 0x00108a0b, - 0x82180d80, 0x00000029, 0x02000000, 0x00108a1f, - 0x82180d80, 0x00000057, 0x02000000, 0x00109235, - 0x82180d80, 0x0000001f, 0x02000000, 0x00107309, - 0x82180d80, 0x00000055, 0x02000000, 0x001072e2, - 0x82180d80, 0x00000000, 0x04000568, 0x82180d80, - 0x00000022, 0x02000000, 0x00107336, 0x82180d80, - 0x00000035, 0x02000000, 0x0010743e, 0x82180d80, - 0x00000039, 0x04000504, 0x82180d80, 0x0000003d, - 0x02000000, 0x00107372, 0x82180d80, 0x00000044, - 0x02000000, 0x001073af, 0x82180d80, 0x00000049, - 0x02000000, 0x00107405, 0x82180d80, 0x00000041, - 0x02000000, 0x001073f1, 0x82180d80, 0x00000043, - 0x02000000, 0x00108da0, 0x82180d80, 0x00000004, + 0x82180d80, 0x0000004d, 0x02000000, 0x00108d00, + 0x82180d80, 0x00000033, 0x02000000, 0x00108cb7, + 0x82180d80, 0x00000028, 0x02000000, 0x00108ac4, + 0x82180d80, 0x00000029, 0x02000000, 0x00108ad8, + 0x82180d80, 0x00000057, 0x02000000, 0x001092ed, + 0x82180d80, 0x0000001f, 0x02000000, 0x0010739f, + 0x82180d80, 0x00000055, 0x02000000, 0x00107378, + 0x82180d80, 0x00000000, 0x0400055a, 0x82180d80, + 0x00000022, 0x02000000, 0x001073cc, 0x82180d80, + 0x00000035, 0x02000000, 0x001074d4, 0x82180d80, + 0x00000039, 0x040004f6, 0x82180d80, 0x0000003d, + 0x02000000, 0x00107408, 0x82180d80, 0x00000044, + 0x02000000, 0x00107445, 0x82180d80, 0x00000049, + 0x02000000, 0x0010749b, 0x82180d80, 0x00000041, + 0x02000000, 0x00107487, 0x82180d80, 0x00000043, + 0x02000000, 0x00108e59, 0x82180d80, 0x00000004, 0x04020003, 0x42000000, 0x00000001, 0x83380d80, 0x00000015, 0x04000006, 0x83380d80, 0x00000016, - 0x02020000, 0x00107134, 0x0401f25e, 0x4c000000, - 0x0201f800, 0x0010a594, 0x5c000000, 0x4d2c0000, + 0x02020000, 0x001071c7, 0x0401f25e, 0x4c000000, + 0x0201f800, 0x0010a687, 0x5c000000, 0x4d2c0000, 0x4d3c0000, 0x0c01f804, 0x5c027800, 0x5c025800, - 0x1c01f000, 0x001078f5, 0x001078f9, 0x001078f5, - 0x0010796c, 0x001078f5, 0x00107aad, 0x00107b47, - 0x001078f5, 0x001078f5, 0x00107b10, 0x001078f5, - 0x00107b22, 0x4933c857, 0x497a6008, 0x59300809, + 0x1c01f000, 0x00107999, 0x0010799d, 0x00107999, + 0x00107a10, 0x00107999, 0x00107b51, 0x00107beb, + 0x00107999, 0x00107999, 0x00107bb4, 0x00107999, + 0x00107bc6, 0x4933c857, 0x497a6008, 0x59300809, 0x58040000, 0x4a000a05, 0x00000103, 0x0201f000, 0x00020a10, 0x4933c857, 0x40000000, 0x40000000, - 0x1c01f000, 0x4933c857, 0x0201f800, 0x0010408c, + 0x1c01f000, 0x4933c857, 0x0201f800, 0x001040a6, 0x59a8005a, 0x82000580, 0x00000074, 0x04020059, - 0x0201f800, 0x00109eb3, 0x04020014, 0x0401f859, - 0x0201f800, 0x0010889a, 0x0400000c, 0x0201f800, - 0x00108e64, 0x04020009, 0x41780800, 0x4d400000, - 0x42028000, 0x00000000, 0x0201f800, 0x00108cff, - 0x5c028000, 0x0401f003, 0x0201f800, 0x00101a67, - 0x0201f000, 0x00020a10, 0x0201f800, 0x0010889a, - 0x04000007, 0x0201f800, 0x00108e64, 0x04020004, - 0x0401ff35, 0x0201f000, 0x00020a10, 0x417a7800, - 0x0201f800, 0x0010df61, 0x42000000, 0x0010bc1d, - 0x0201f800, 0x0010ad1d, 0x59340200, 0x84000558, + 0x0201f800, 0x00109f8a, 0x04020014, 0x0401f859, + 0x0201f800, 0x00108953, 0x0400000c, 0x0201f800, + 0x00108f1d, 0x04020009, 0x41780800, 0x4d400000, + 0x42028000, 0x00000000, 0x0201f800, 0x00108db8, + 0x5c028000, 0x0401f003, 0x0201f800, 0x00101a68, + 0x0201f000, 0x00020a10, 0x0201f800, 0x00108953, + 0x04000007, 0x0201f800, 0x00108f1d, 0x04020004, + 0x0401ff27, 0x0201f000, 0x00020a10, 0x417a7800, + 0x0201f800, 0x0010e06f, 0x42000000, 0x0010bd1d, + 0x0201f800, 0x0010ae10, 0x59340200, 0x84000558, 0x48026a00, 0x42003000, 0x00000003, 0x0201f800, - 0x0010a4ae, 0x4d300000, 0x0201f800, 0x001070f5, + 0x0010a5a1, 0x4d300000, 0x0201f800, 0x00107188, 0x02000800, 0x0010032d, 0x4936600a, 0x497a6009, 0x4a026407, 0x00000001, 0x4a026403, 0x00000001, 0x8d0e1d20, 0x04000011, 0x4a026407, 0x00000004, 0x4a026203, 0x00000007, 0x4a026421, 0x00000001, 0x42003000, 0x00000001, 0x4d400000, 0x42028000, - 0x00000029, 0x41782800, 0x0201f800, 0x00109f37, + 0x00000029, 0x41782800, 0x0201f800, 0x0010a00e, 0x5c028000, 0x0401f009, 0x42000800, 0x0000000b, - 0x0201f800, 0x00103d8a, 0x4a026203, 0x00000001, - 0x0201f800, 0x00105fe8, 0x5c026000, 0x0401fefe, - 0x0201f800, 0x00101a67, 0x0201f000, 0x00020a10, - 0x0401fef9, 0x42000000, 0x00000001, 0x0401f112, + 0x0201f800, 0x00103d9d, 0x4a026203, 0x00000001, + 0x0201f800, 0x0010608d, 0x5c026000, 0x0401fef0, + 0x0201f800, 0x00101a68, 0x0201f000, 0x00020a10, + 0x0401feeb, 0x42000000, 0x00000001, 0x0401f112, 0x4933c857, 0x59340200, 0x8c000500, 0x0400000c, - 0x4d3c0000, 0x417a7800, 0x0201f800, 0x00103d7f, + 0x4d3c0000, 0x417a7800, 0x0201f800, 0x00103d92, 0x5c027800, 0x8d0e1d20, 0x04000005, 0x42000800, - 0x00000006, 0x0201f800, 0x00103d8a, 0x1c01f000, + 0x00000006, 0x0201f800, 0x00103d9d, 0x1c01f000, 0x4933c857, 0x59a8085a, 0x82040580, 0x00000074, 0x0400000e, 0x4807c857, 0x82040580, 0x00000100, 0x040200df, 0x59cc0408, 0x4803c857, 0x8c000500, @@ -7813,36 +7849,36 @@ static const uint32_t isp_2400_risc_code[] = { 0x000007fe, 0x0402001a, 0x59a8021b, 0x8c000506, 0x04000015, 0x59cc0000, 0x82000500, 0x000000ff, 0x59a8080f, 0x82040d00, 0x000000ff, 0x80040580, - 0x0400000d, 0x0201f800, 0x00101a67, 0x0201f800, - 0x00020a10, 0x42000000, 0x0010bc0e, 0x0201f800, - 0x0010ad1d, 0x4202d800, 0x00000001, 0x0201f000, - 0x001038f5, 0x0401fad8, 0x0401f062, 0x0201f800, - 0x00103e68, 0x59341403, 0x82080580, 0x000007fc, + 0x0400000d, 0x0201f800, 0x00101a68, 0x0201f800, + 0x00020a10, 0x42000000, 0x0010bd0e, 0x0201f800, + 0x0010ae10, 0x4202d800, 0x00000001, 0x0201f000, + 0x00103908, 0x0401fad8, 0x0401f062, 0x0201f800, + 0x00103e7e, 0x59341403, 0x82080580, 0x000007fc, 0x04020035, 0x4a026802, 0x00fffffc, 0x0201f800, - 0x0010889a, 0x04000012, 0x0201f800, 0x00108e64, + 0x00108953, 0x04000012, 0x0201f800, 0x00108f1d, 0x0402000f, 0x0401f8de, 0x41780800, 0x4d400000, - 0x42028000, 0x00000000, 0x0201f800, 0x00108cff, + 0x42028000, 0x00000000, 0x0201f800, 0x00108db8, 0x5c028000, 0x42000800, 0x00000004, 0x0201f800, - 0x00103d8a, 0x0201f000, 0x00020a10, 0x42000800, - 0x00000004, 0x0201f800, 0x00103d8a, 0x0201f800, - 0x00101a67, 0x59300c1e, 0x82040580, 0x00000021, + 0x00103d9d, 0x0201f000, 0x00020a10, 0x42000800, + 0x00000004, 0x0201f800, 0x00103d9d, 0x0201f800, + 0x00101a68, 0x59300c1e, 0x82040580, 0x00000021, 0x04000003, 0x0201f000, 0x00020a10, 0x42028800, 0x000007fd, 0x42003000, 0x00fffffd, 0x0201f800, - 0x00103dcb, 0x02020800, 0x0010032d, 0x4936600a, + 0x00103de1, 0x02020800, 0x0010032d, 0x4936600a, 0x497a6c12, 0x4a02601d, 0x00000003, 0x4a026203, 0x00000001, 0x4a026403, 0x00000022, 0x0201f000, - 0x00105fe8, 0x59a8006d, 0x8c000502, 0x04000011, - 0x0201f800, 0x00104716, 0x42001000, 0x00000010, + 0x0010608d, 0x59a8006d, 0x8c000502, 0x04000011, + 0x0201f800, 0x00104755, 0x42001000, 0x00000010, 0x04020009, 0x59340002, 0x82000500, 0x00ff0000, 0x82000580, 0x00ff0000, 0x04000006, 0x42001000, - 0x00000008, 0x0201f800, 0x00104429, 0x0402006c, - 0x0201f800, 0x0010889a, 0x0400006d, 0x0201f800, - 0x00108e64, 0x04020005, 0x592c0405, 0x8c00051c, + 0x00000008, 0x0201f800, 0x00104448, 0x0402006c, + 0x0201f800, 0x00108953, 0x0400006d, 0x0201f800, + 0x00108f1d, 0x04020005, 0x592c0405, 0x8c00051c, 0x040207b3, 0x0401f896, 0x42000800, 0x00000005, - 0x0201f800, 0x00103d8a, 0x4a026203, 0x00000001, - 0x4a026403, 0x00000003, 0x0201f000, 0x00105fe8, + 0x0201f800, 0x00103d9d, 0x4a026203, 0x00000001, + 0x4a026403, 0x00000003, 0x0201f000, 0x0010608d, 0x59cc0408, 0x8c000518, 0x0400001a, 0x0201f800, - 0x00108b9a, 0x0201f800, 0x00104716, 0x04000009, + 0x00108c53, 0x0201f800, 0x00104755, 0x04000009, 0x59cc0408, 0x8c000516, 0x04000006, 0x5930041e, 0x82000580, 0x00000021, 0x04020799, 0x1c01f000, 0x59a8021b, 0x8400054a, 0x4803521b, 0x4803541b, @@ -7851,32 +7887,32 @@ static const uint32_t isp_2400_risc_code[] = { 0x42001000, 0x000000ef, 0x59a80073, 0x8c00053e, 0x04000005, 0x59a8021b, 0x8c000516, 0x04000002, 0x59a8100f, 0x480b500f, 0x497b8830, 0x84081570, - 0x480b8832, 0x0201f800, 0x00108bc4, 0x59a8021b, + 0x480b8832, 0x0201f800, 0x00108c7d, 0x59a8021b, 0x84000548, 0x4803521b, 0x4803541b, 0x0201f800, - 0x00109f0c, 0x04020776, 0x599c0019, 0x8c000510, + 0x00109fe3, 0x04020776, 0x599c0019, 0x8c000510, 0x0402003b, 0x59a8021b, 0x8400054c, 0x4803521b, - 0x42000800, 0x00000007, 0x0201f800, 0x00103d8a, - 0x417a7800, 0x0201f800, 0x00103d7f, 0x42000000, - 0x000000e8, 0x0201f800, 0x0010548f, 0x02000800, - 0x00103dcb, 0x02020800, 0x0010032d, 0x4936600a, + 0x42000800, 0x00000007, 0x0201f800, 0x00103d9d, + 0x417a7800, 0x0201f800, 0x00103d92, 0x42000000, + 0x000000e8, 0x0201f800, 0x001054fb, 0x02000800, + 0x00103de1, 0x02020800, 0x0010032d, 0x4936600a, 0x59340200, 0x8400051a, 0x48026a00, 0x42000800, - 0x00000003, 0x0201f800, 0x00103d8a, 0x4a026407, + 0x00000003, 0x0201f800, 0x00103d9d, 0x4a026407, 0x00000001, 0x4a026203, 0x00000001, 0x4a026403, - 0x00000002, 0x0201f000, 0x00105fe8, 0x0401fdfe, + 0x00000002, 0x0201f000, 0x0010608d, 0x0401fdf0, 0x42000000, 0x00000001, 0x0401f017, 0x599c0017, 0x8c00050a, 0x04000799, 0x42000800, 0x00000004, - 0x0201f800, 0x00103d8a, 0x49375064, 0x59a8021b, + 0x0201f800, 0x00103d9d, 0x49375064, 0x59a8021b, 0x8c000508, 0x0400000a, 0x599c0018, 0x8c00051c, 0x04000007, 0x42000800, 0x000003e8, 0x42001000, - 0x0010eacd, 0x0201f800, 0x00105904, 0x0201f000, + 0x0010ebc8, 0x0201f800, 0x001059a9, 0x0201f000, 0x00020a10, 0x4933c857, 0x80003540, 0x04000005, - 0x42000800, 0x00000007, 0x0201f800, 0x00103d8a, + 0x42000800, 0x00000007, 0x0201f800, 0x00103d9d, 0x801831c0, 0x0402000e, 0x59302009, 0x801021c0, 0x04000004, 0x58100405, 0x8c00051e, 0x04020008, 0x59341c03, 0x42002000, 0x00000004, 0x42003000, - 0x00000012, 0x0201f800, 0x00103260, 0x0201f800, - 0x00101a67, 0x0201f000, 0x00020a10, 0x4c5c0000, - 0x4d2c0000, 0x59325809, 0x0201f800, 0x00104f41, + 0x00000012, 0x0201f800, 0x0010326a, 0x0201f800, + 0x00101a68, 0x0201f000, 0x00020a10, 0x4c5c0000, + 0x4d2c0000, 0x59325809, 0x0201f800, 0x00104f93, 0x5c025800, 0x59cc0008, 0x48002805, 0x59cc0009, 0x48002806, 0x49782807, 0x49782808, 0x49782809, 0x4978280a, 0x59cc0013, 0x8c00053e, 0x04000009, @@ -7887,112 +7923,112 @@ static const uint32_t isp_2400_risc_code[] = { 0x59cc041a, 0x900001c0, 0x4800280a, 0x5c00b800, 0x1c01f000, 0x4933c857, 0x59a8005a, 0x82000580, 0x00000014, 0x04020048, 0x59a8006d, 0x8c000502, - 0x04000015, 0x0201f800, 0x00104716, 0x42001000, + 0x04000015, 0x0201f800, 0x00104755, 0x42001000, 0x00000010, 0x04020009, 0x59340002, 0x82000500, 0x00ff0000, 0x82000580, 0x00ff0000, 0x0400000a, - 0x42001000, 0x00000008, 0x0201f800, 0x00104429, + 0x42001000, 0x00000008, 0x0201f800, 0x00104448, 0x04000005, 0x59a8006d, 0x8400054c, 0x4803506d, 0x0401f031, 0x836c0580, 0x00000003, 0x0402000b, 0x59300009, 0x80000540, 0x04020008, 0x59341c03, 0x42002000, 0x00000006, 0x42003000, 0x00000013, - 0x0201f800, 0x00103260, 0x0201f800, 0x00103ecf, - 0x0401fe84, 0x0401fa5e, 0x0402001f, 0x59340404, + 0x0201f800, 0x0010326a, 0x0201f800, 0x00103ee9, + 0x0401fe84, 0x0401fa61, 0x0402001f, 0x59340404, 0x80000540, 0x0400001c, 0x42000800, 0x00000006, - 0x0201f800, 0x00103d8a, 0x0201f800, 0x0010889a, - 0x04000011, 0x0201f800, 0x00108e64, 0x0402000a, + 0x0201f800, 0x00103d9d, 0x0201f800, 0x00108953, + 0x04000011, 0x0201f800, 0x00108f1d, 0x0402000a, 0x41780800, 0x4d400000, 0x42028000, 0x00000000, - 0x0201f800, 0x00108cff, 0x5c028000, 0x0201f000, + 0x0201f800, 0x00108db8, 0x5c028000, 0x0201f000, 0x00020a10, 0x4a025a05, 0x00000103, 0x4a025806, - 0x02000000, 0x0201f800, 0x00101a67, 0x0201f000, - 0x00020a10, 0x0201f800, 0x001043c3, 0x0201f800, - 0x0010889a, 0x04000007, 0x0201f800, 0x00108e64, - 0x04020004, 0x0401fd50, 0x0201f000, 0x00020a10, - 0x0401fd4d, 0x0201f800, 0x0010a594, 0x80000580, + 0x02000000, 0x0201f800, 0x00101a68, 0x0201f000, + 0x00020a10, 0x0201f800, 0x001043e2, 0x0201f800, + 0x00108953, 0x04000007, 0x0201f800, 0x00108f1d, + 0x04020004, 0x0401fd42, 0x0201f000, 0x00020a10, + 0x0401fd3f, 0x0201f800, 0x0010a687, 0x80000580, 0x59a8006d, 0x8c00050c, 0x04000005, 0x8400050c, 0x4803506d, 0x82000540, 0x00000001, 0x0401f75e, 0x4933c857, 0x59a8005a, 0x82000580, 0x00000014, 0x0402000b, 0x42000800, 0x0000000b, 0x0201f800, - 0x00103d8a, 0x4a026203, 0x00000001, 0x4a026403, - 0x00000001, 0x0201f000, 0x00105fe8, 0x42000000, + 0x00103d9d, 0x4a026203, 0x00000001, 0x4a026403, + 0x00000001, 0x0201f000, 0x0010608d, 0x42000000, 0x00000001, 0x0401f74c, 0x4933c857, 0x40003000, 0x59a8005a, 0x82000580, 0x00000004, 0x0402000a, 0x82183580, 0x0000000b, 0x04020005, 0x42000800, - 0x00000007, 0x0201f800, 0x00103d8a, 0x0201f000, + 0x00000007, 0x0201f800, 0x00103d9d, 0x0201f000, 0x00020a10, 0x42000000, 0x00000001, 0x0401f73a, 0x4803c857, 0x4d2c0000, 0x4d3c0000, 0x0c01f804, - 0x5c027800, 0x5c025800, 0x1c01f000, 0x001078f5, - 0x00107b56, 0x001078f5, 0x00107bb2, 0x001078f5, - 0x00107c19, 0x00107b47, 0x001078f5, 0x001078f5, - 0x00107c3b, 0x001078f5, 0x00107c4d, 0x4933c857, + 0x5c027800, 0x5c025800, 0x1c01f000, 0x00107999, + 0x00107bfa, 0x00107999, 0x00107c56, 0x00107999, + 0x00107cbd, 0x00107beb, 0x00107999, 0x00107999, + 0x00107cdf, 0x00107999, 0x00107cf1, 0x4933c857, 0x4d1c0000, 0x59301403, 0x82080580, 0x00000003, 0x04000008, 0x82081580, 0x0000001e, 0x04020003, 0x0201f800, 0x00020a10, 0x5c023800, 0x1c01f000, 0x0401ff59, 0x0401f7fd, 0x4933c857, 0x42000000, - 0x0010bc21, 0x0201f800, 0x0010ad1d, 0x0201f800, - 0x0010a594, 0x0201f800, 0x0010408c, 0x0201f800, - 0x0010889a, 0x0400000b, 0x0201f800, 0x00108e64, + 0x0010bd21, 0x0201f800, 0x0010ae10, 0x0201f800, + 0x0010a687, 0x0201f800, 0x001040a6, 0x0201f800, + 0x00108953, 0x0400000b, 0x0201f800, 0x00108f1d, 0x04020008, 0x4200b000, 0x00000002, 0x0201f800, - 0x00108e43, 0x0401fce8, 0x0201f000, 0x00020a10, + 0x00108efc, 0x0401fcda, 0x0201f000, 0x00020a10, 0x0401f8f3, 0x0402002f, 0x417a7800, 0x0201f800, - 0x00103d7f, 0x417a7800, 0x0201f800, 0x0010df61, - 0x42000000, 0x0010bc1d, 0x0201f800, 0x0010ad1d, + 0x00103d92, 0x417a7800, 0x0201f800, 0x0010e06f, + 0x42000000, 0x0010bd1d, 0x0201f800, 0x0010ae10, 0x59340200, 0x84000558, 0x48026a00, 0x4a026403, 0x00000002, 0x42003000, 0x00000003, 0x0201f800, - 0x0010a4ae, 0x8d0e1d20, 0x04000011, 0x4d400000, + 0x0010a5a1, 0x8d0e1d20, 0x04000011, 0x4d400000, 0x41782800, 0x42003000, 0x00000005, 0x42028000, - 0x00000029, 0x0201f800, 0x00109f37, 0x5c028000, + 0x00000029, 0x0201f800, 0x0010a00e, 0x5c028000, 0x4a026203, 0x00000007, 0x4a026407, 0x00000004, 0x4a026421, 0x00000001, 0x1c01f000, 0x42000800, - 0x00000003, 0x0201f800, 0x00103d8a, 0x4a026203, - 0x00000001, 0x0201f800, 0x00105fe8, 0x0401f7f7, + 0x00000003, 0x0201f800, 0x00103d9d, 0x4a026203, + 0x00000001, 0x0201f800, 0x0010608d, 0x0401f7f7, 0x59cc0407, 0x82000580, 0x00000009, 0x0402000a, 0x59340412, 0x82000500, 0x000000ff, 0x0400000c, 0x80000040, 0x48026c12, 0x4a026006, 0x0000000a, 0x0401f7ea, 0x59cc0207, 0x82000500, 0x0000ff00, - 0x82000580, 0x00001900, 0x040007c3, 0x0401fca2, + 0x82000580, 0x00001900, 0x040007c3, 0x0401fc94, 0x80000580, 0x0401f6bc, 0x4933c857, 0x0201f800, - 0x0010889a, 0x04000011, 0x0201f800, 0x00108e64, + 0x00108953, 0x04000011, 0x0201f800, 0x00108f1d, 0x0402000e, 0x4c580000, 0x4200b000, 0x00000002, - 0x0201f800, 0x00108e43, 0x5c00b000, 0x0401fc92, - 0x42000800, 0x00000007, 0x0201f800, 0x00103d8a, - 0x0201f000, 0x00020a10, 0x0401fc8b, 0x59cc3407, + 0x0201f800, 0x00108efc, 0x5c00b000, 0x0401fc84, + 0x42000800, 0x00000007, 0x0201f800, 0x00103d9d, + 0x0201f000, 0x00020a10, 0x0401fc7d, 0x59cc3407, 0x82183500, 0x000000ff, 0x82180580, 0x00000005, 0x04000020, 0x82180580, 0x0000000b, 0x04000018, 0x59cc0207, 0x82000500, 0x0000ff00, 0x04020004, 0x82180580, 0x00000009, 0x04000016, 0x82000580, 0x00001900, 0x0402000e, 0x82180580, 0x00000009, 0x04000010, 0x42000800, 0x00000004, 0x0201f800, - 0x00103d8a, 0x0201f800, 0x00101a67, 0x0201f800, - 0x0010a594, 0x0201f000, 0x00020a10, 0x0201f800, - 0x0010a594, 0x42000000, 0x00000001, 0x0401f682, - 0x0201f800, 0x0010889a, 0x59325809, 0x04000008, + 0x00103d9d, 0x0201f800, 0x00101a68, 0x0201f800, + 0x0010a687, 0x0201f000, 0x00020a10, 0x0201f800, + 0x0010a687, 0x42000000, 0x00000001, 0x0401f682, + 0x0201f800, 0x00108953, 0x59325809, 0x04000008, 0x592c0205, 0x82000580, 0x00000139, 0x040007f4, 0x592c0405, 0x8c00051e, 0x040207f1, 0x59340412, 0x800001c0, 0x04000008, 0x80000040, 0x48026c12, 0x4a026006, 0x0000000a, 0x4a026403, 0x00000016, 0x1c01f000, 0x59340403, 0x82000580, 0x000007fe, 0x04020007, 0x59a8021b, 0x84000540, 0x4803521b, - 0x0201f800, 0x00103a14, 0x0401f7dd, 0x0201f800, - 0x0010a594, 0x417a7800, 0x0201f800, 0x0010df61, - 0x42003000, 0x00000005, 0x0201f800, 0x0010a4ae, - 0x42000000, 0x0010bc1d, 0x0201f800, 0x0010ad1d, + 0x0201f800, 0x00103a27, 0x0401f7dd, 0x0201f800, + 0x0010a687, 0x417a7800, 0x0201f800, 0x0010e06f, + 0x42003000, 0x00000005, 0x0201f800, 0x0010a5a1, + 0x42000000, 0x0010bd1d, 0x0201f800, 0x0010ae10, 0x0401f7d1, 0x4933c857, 0x0401f853, 0x0402000b, - 0x42000800, 0x00000005, 0x0201f800, 0x00103d8a, + 0x42000800, 0x00000005, 0x0201f800, 0x00103d9d, 0x4a026203, 0x00000001, 0x4a026403, 0x00000003, - 0x0201f000, 0x00105fe8, 0x42000800, 0x00000004, - 0x0201f800, 0x00103d8a, 0x0201f800, 0x00108e64, + 0x0201f000, 0x0010608d, 0x42000800, 0x00000004, + 0x0201f800, 0x00103d9d, 0x0201f800, 0x00108f1d, 0x0402000a, 0x4c580000, 0x4200b000, 0x00000002, - 0x0201f800, 0x00108e43, 0x5c00b000, 0x0401fc1e, - 0x0201f000, 0x00020a10, 0x0401fc1b, 0x0201f800, - 0x0010a594, 0x80000580, 0x0401f633, 0x4933c857, + 0x0201f800, 0x00108efc, 0x5c00b000, 0x0401fc10, + 0x0201f000, 0x00020a10, 0x0401fc0d, 0x0201f800, + 0x0010a687, 0x80000580, 0x0401f633, 0x4933c857, 0x0401f831, 0x0402000b, 0x42000800, 0x00000009, - 0x0201f800, 0x00103d8a, 0x4a026203, 0x00000001, - 0x4a026403, 0x00000005, 0x0201f000, 0x00105fe8, - 0x0201f800, 0x0010a594, 0x42000000, 0x00000001, + 0x0201f800, 0x00103d9d, 0x4a026203, 0x00000001, + 0x4a026403, 0x00000005, 0x0201f000, 0x0010608d, + 0x0201f800, 0x0010a687, 0x42000000, 0x00000001, 0x0401f621, 0x4933c857, 0x0401f81f, 0x0402000b, - 0x42000800, 0x0000000b, 0x0201f800, 0x00103d8a, + 0x42000800, 0x0000000b, 0x0201f800, 0x00103d9d, 0x4a026203, 0x00000001, 0x4a026403, 0x00000001, - 0x0201f000, 0x00105fe8, 0x0201f800, 0x0010a594, + 0x0201f000, 0x0010608d, 0x0201f800, 0x0010a687, 0x42000000, 0x00000001, 0x0401f60f, 0x4933c857, 0x59cc0407, 0x82000580, 0x00000003, 0x04020009, 0x59cc0207, 0x82000500, 0x0000ff00, 0x82000d80, @@ -8000,1375 +8036,1380 @@ static const uint32_t isp_2400_risc_code[] = { 0x1c01f000, 0x4933c857, 0x82000540, 0x00000001, 0x1c01f000, 0x4933c857, 0x4d400000, 0x4c580000, 0x59a8021b, 0x82000540, 0x00000003, 0x4803521b, - 0x0401f85e, 0x04000005, 0x4d300000, 0x4d340000, - 0x4d440000, 0x0401f022, 0x0401f890, 0x04000031, + 0x0401f861, 0x04000005, 0x4d300000, 0x4d340000, + 0x4d440000, 0x0401f022, 0x0401f893, 0x04000031, 0x4d300000, 0x4d340000, 0x4d440000, 0x59cc0408, 0x8c00051e, 0x04020004, 0x59a8021b, 0x84000552, 0x4803521b, 0x8d0e1d20, 0x04000009, 0x42028000, 0x0000002a, 0x42028800, 0x0000ffff, 0x42003000, - 0x00000002, 0x0201f800, 0x0010a4c1, 0x42028000, + 0x00000002, 0x0201f800, 0x0010a5b4, 0x42028000, 0x0000002a, 0x4d3c0000, 0x42027800, 0x00000200, - 0x0201f800, 0x0010ded4, 0x5c027800, 0x42000000, - 0x0010bc1d, 0x0201f800, 0x0010ad1d, 0x0201f800, - 0x0010e14a, 0x4200b000, 0x00000010, 0x42028800, + 0x0201f800, 0x0010dfe1, 0x5c027800, 0x42000000, + 0x0010bd1d, 0x0201f800, 0x0010ae10, 0x0201f800, + 0x0010e25a, 0x4200b000, 0x00000010, 0x42028800, 0x000007f0, 0x83440580, 0x000007fe, 0x04000003, - 0x0201f800, 0x00103e2c, 0x81468800, 0x8058b040, + 0x0201f800, 0x00103e42, 0x81468800, 0x8058b040, 0x040207f9, 0x5c028800, 0x5c026800, 0x5c026000, - 0x0201f800, 0x00103e68, 0x59cc0800, 0x82040d00, + 0x0201f800, 0x00103e7e, 0x59cc0800, 0x82040d00, 0x00ffffff, 0x4807500f, 0x80040110, 0x48035018, 0x48038881, 0x59a80a1b, 0x84040d50, 0x59cc0013, 0x8c00053e, 0x04000003, 0x8c000536, 0x04000004, 0x59cc0017, 0x8c000536, 0x04020002, 0x84040d10, - 0x4807521b, 0x4807541b, 0x4c040000, 0x0201f800, - 0x001092c0, 0x5c000800, 0x0201f800, 0x00104716, - 0x04000007, 0x59cc0009, 0x48035028, 0x59cc000a, - 0x48035029, 0x0201f800, 0x00108b9a, 0x5c00b000, - 0x5c028000, 0x1c01f000, 0x4933c857, 0x59a8141b, - 0x82080580, 0x0000ffff, 0x0400000c, 0x4c080000, - 0x0201f800, 0x00104716, 0x5c001000, 0x0402000b, - 0x59cc0408, 0x8c000518, 0x04000005, 0x8c08150a, - 0x0400000b, 0x80000580, 0x1c01f000, 0x8c081508, - 0x040207fd, 0x0401f006, 0x82080500, 0x00000030, - 0x04020003, 0x8c081506, 0x040207f7, 0x4a03541b, - 0x0000ffff, 0x42000000, 0x0010bb6a, 0x0201f800, - 0x0010ad1d, 0x42003000, 0x0000000c, 0x42001800, - 0x0000ffff, 0x42002000, 0x00000007, 0x0201f800, - 0x00103260, 0x4d400000, 0x4d3c0000, 0x42003000, - 0x00000001, 0x0201f800, 0x0010a4c1, 0x42028000, - 0x0000002a, 0x42027800, 0x00000200, 0x0201f800, - 0x0010ded4, 0x5c028000, 0x5c027800, 0x82000540, - 0x00000001, 0x1c01f000, 0x4933c857, 0x4c580000, - 0x59a80018, 0x800001c0, 0x04000023, 0x59cc1000, - 0x82081500, 0x00ffff00, 0x80081110, 0x80080580, - 0x04000004, 0x42000000, 0x0010bc00, 0x0401f016, - 0x83cc1400, 0x0000000b, 0x4200b000, 0x00000002, - 0x83341c00, 0x00000006, 0x0401f830, 0x04000004, - 0x42000000, 0x0010bc01, 0x0401f00b, 0x83cc1400, - 0x0000000d, 0x4200b000, 0x00000002, 0x83341c00, - 0x00000008, 0x0401f825, 0x04000007, 0x42000000, - 0x0010bc02, 0x0201f800, 0x0010ad1d, 0x82000540, - 0x00000001, 0x5c00b000, 0x1c01f000, 0x4933c857, - 0x59cc0206, 0x82000580, 0x00000014, 0x04020016, - 0x59cc0407, 0x82000580, 0x00000800, 0x04020012, - 0x59cc0207, 0x8c00051a, 0x0400000d, 0x82000500, - 0x00000f00, 0x82000580, 0x00000100, 0x04020008, - 0x59cc020a, 0x8c000508, 0x04020003, 0x8c00050a, - 0x04000003, 0x80000580, 0x1c01f000, 0x82000540, - 0x00000001, 0x1c01f000, 0x5c000000, 0x4c000000, - 0x4803c857, 0x480bc857, 0x480fc857, 0x485bc857, - 0x50080800, 0x500c0000, 0x80042580, 0x04020007, - 0x80081000, 0x800c1800, 0x8058b040, 0x040207f9, - 0x80000580, 0x1c01f000, 0x4803c857, 0x4807c857, - 0x480bc857, 0x480fc857, 0x80040480, 0x04001006, - 0x42000000, 0x00000001, 0x82040d40, 0x00000001, - 0x1c01f000, 0x41780000, 0x0401f7fc, 0x83380480, - 0x00000053, 0x02021800, 0x0010032d, 0x83380480, - 0x0000004b, 0x02001800, 0x0010032d, 0x0c01f001, - 0x00107d82, 0x00107d82, 0x00107d82, 0x00107d82, - 0x00107d80, 0x00107d80, 0x00107d80, 0x00107d82, - 0x0201f800, 0x0010032d, 0x493bc857, 0x4a026203, - 0x0000000d, 0x493a6403, 0x42000800, 0x80000000, - 0x0201f000, 0x000209b1, 0x83380580, 0x00000013, - 0x04020008, 0x59300403, 0x82000580, 0x00000050, - 0x02020800, 0x0010032d, 0x0201f000, 0x00020a10, - 0x4933c857, 0x83380580, 0x00000027, 0x04020030, - 0x4933c857, 0x0201f800, 0x0010605d, 0x4d3c0000, - 0x417a7800, 0x0201f800, 0x0010df61, 0x5c027800, - 0x42000000, 0x0010bc1d, 0x0201f800, 0x0010ad1d, - 0x4d2c0000, 0x59325809, 0x0201f800, 0x0010889a, - 0x492fc857, 0x0400000d, 0x4a025a05, 0x00000103, - 0x59300c02, 0x48065c07, 0x4a025a07, 0x00000029, - 0x497a580a, 0x592c0c09, 0x84040d50, 0x48065c09, - 0x0201f800, 0x000203ab, 0x5c025800, 0x42003000, - 0x00000015, 0x41782800, 0x42002000, 0x00000003, - 0x4d400000, 0x4d440000, 0x59368c03, 0x42028000, - 0x00000029, 0x0201f800, 0x00109131, 0x5c028800, - 0x5c028000, 0x0201f000, 0x00020a10, 0x83380580, - 0x00000014, 0x0402000d, 0x59300403, 0x82000c80, - 0x00000053, 0x02021800, 0x0010032d, 0x82000480, - 0x00000040, 0x02001800, 0x0010032d, 0x4933c857, - 0x4803c857, 0x0c01f00e, 0x83380580, 0x00000053, - 0x0400000a, 0x83380580, 0x00000048, 0x02020800, - 0x0010032d, 0x59300403, 0x82000580, 0x00000050, - 0x02020800, 0x0010032d, 0x1c01f000, 0x00107df8, - 0x00107df6, 0x00107df6, 0x00107df6, 0x00107df6, - 0x00107df6, 0x00107df6, 0x00107df6, 0x00107df6, - 0x00107df6, 0x00107df6, 0x00107e0f, 0x00107e0f, - 0x00107e0f, 0x00107e0f, 0x00107df6, 0x00107e0f, - 0x00107df6, 0x00107e0f, 0x0201f800, 0x0010032d, - 0x4933c857, 0x0201f800, 0x0010605d, 0x0201f800, - 0x0010889a, 0x02000000, 0x00020a10, 0x4d2c0000, - 0x59325809, 0x4a025a05, 0x00000103, 0x59300402, - 0x48025c07, 0x4a025a07, 0x00000006, 0x497a580a, - 0x0201f800, 0x000203ab, 0x5c025800, 0x0201f800, - 0x0010899c, 0x0201f000, 0x00020a10, 0x4933c857, - 0x0201f800, 0x0010605d, 0x0201f000, 0x00020a10, - 0x0201f800, 0x0010032d, 0x5930001d, 0x800001c0, - 0x02020800, 0x0010911f, 0x59300004, 0x8c00053e, - 0x0402002f, 0x0201f800, 0x001091e3, 0x040200c3, - 0x59325809, 0x592c0c09, 0x59cc2808, 0x82141d00, - 0x00000c00, 0x04000002, 0x59cc1809, 0x84040d58, - 0x48065c09, 0x82143500, 0x00000fff, 0x0402002a, - 0x59340200, 0x8c00050e, 0x040200a9, 0x0201f800, - 0x00020abe, 0x04020006, 0x4a025a07, 0x00000000, - 0x59300812, 0x800409c0, 0x04020990, 0x4a025a05, - 0x00000103, 0x48065808, 0x480e580b, 0x901409c0, - 0x4806580a, 0x59300c02, 0x48065c07, 0x0201f800, - 0x00108e69, 0x0201f800, 0x000203ab, 0x0201f800, - 0x0010410c, 0x59cc0008, 0x8c000518, 0x02020000, - 0x00108a6d, 0x0201f000, 0x00020a10, 0x0201f800, - 0x0010644d, 0x040007d0, 0x4d3c0000, 0x42027800, - 0x00000002, 0x0201f800, 0x00108487, 0x5c027800, - 0x0401f7c9, 0x4817c857, 0x480fc857, 0x82180500, - 0x000000ff, 0x0400000e, 0x592c0205, 0x82000500, - 0x000000ff, 0x82000580, 0x00000048, 0x04020008, - 0x592c0408, 0x800001c0, 0x04000005, 0x0201f800, - 0x0010900d, 0x0201f000, 0x00109051, 0x82180d00, - 0x00000c00, 0x04000004, 0x59340200, 0x8c00050e, - 0x04020058, 0x4a025a07, 0x00000000, 0x41782000, - 0x8c183510, 0x04000009, 0x59cc200b, 0x801021c0, - 0x04000006, 0x59cc000c, 0x82000500, 0x000000ff, - 0x04000002, 0x4803c857, 0x4812580d, 0x41780000, - 0x8c183512, 0x04000002, 0x59cc000a, 0x4802580c, - 0x80100c00, 0x040007ae, 0x82041480, 0x0000001d, - 0x04001006, 0x592c0405, 0x8c00051e, 0x04000022, - 0x42000800, 0x0000001c, 0x4c040000, 0x4c0c0000, - 0x4c140000, 0x0201f800, 0x00020abe, 0x04020006, - 0x4a025a07, 0x00000000, 0x59300812, 0x800409c0, - 0x04020932, 0x5c002800, 0x5c001800, 0x4a025a05, - 0x00000103, 0x48065808, 0x480e580b, 0x901409c0, - 0x4806580a, 0x5c000800, 0x4c500000, 0x4c540000, - 0x83cca400, 0x0000000c, 0x832cac00, 0x0000000e, - 0x0201f800, 0x0010841c, 0x5c00a800, 0x5c00a000, - 0x0401f795, 0x4c040000, 0x4c0c0000, 0x4c140000, - 0x0201f800, 0x00020abe, 0x04020006, 0x4a025a07, - 0x00000000, 0x59300812, 0x800409c0, 0x04020913, - 0x48065808, 0x5c002800, 0x5c001800, 0x59301402, - 0x480a5c07, 0x480e580b, 0x901401c0, 0x4802580a, - 0x0201f800, 0x00108e69, 0x5c000800, 0x0201f800, - 0x001083c6, 0x0201f800, 0x00108401, 0x0401f780, - 0x592c020b, 0x8c000502, 0x040007a7, 0x592c0209, - 0x8c00050e, 0x040207a4, 0x59300012, 0x800c0d80, - 0x040007a1, 0x4803c857, 0x480fc857, 0x8c183514, - 0x02000000, 0x00108aad, 0x80000540, 0x0400079a, - 0x4807c856, 0x0201f000, 0x00108aad, 0x592c020b, - 0x8c000502, 0x04000756, 0x59300012, 0x800001c0, - 0x04000756, 0x592c0209, 0x8c00050e, 0x04020753, - 0x0201f000, 0x00108aad, 0x1c01f000, 0x59cc2006, - 0x59cc2807, 0x0401f040, 0x0401f03f, 0x1c01f000, - 0x4933c857, 0x59300004, 0x8c00053e, 0x04020035, - 0x5930001d, 0x800001c0, 0x02020800, 0x0010911f, - 0x59325809, 0x592c0c09, 0x41782800, 0x41781800, - 0x84040d58, 0x48065c09, 0x41783000, 0x59340200, - 0x8c00050e, 0x0402001b, 0x0201f800, 0x00020abe, - 0x04020007, 0x4a025a07, 0x00000000, 0x59300812, - 0x4807c857, 0x800409c0, 0x040208c4, 0x4a025a05, - 0x00000103, 0x48065808, 0x480e580b, 0x901409c0, - 0x4806580a, 0x4933c857, 0x59300c02, 0x48065c07, - 0x0201f800, 0x00108e69, 0x0201f800, 0x000203ab, - 0x0201f800, 0x0010410c, 0x0201f000, 0x00020a10, - 0x592c020b, 0x8c000502, 0x040007e4, 0x59300012, - 0x4803c857, 0x800001c0, 0x040007e3, 0x592c0209, - 0x8c00050e, 0x040207e0, 0x0201f000, 0x00108aad, - 0x0201f800, 0x0010644d, 0x040007ca, 0x4933c857, - 0x1c01f000, 0x4c5c0000, 0x4c600000, 0x4010b800, - 0x4014c000, 0x5930001d, 0x800001c0, 0x4c140000, - 0x02020800, 0x0010911f, 0x5c002800, 0x59325809, - 0x592c020b, 0x8c000502, 0x04020026, 0x8c000500, - 0x0400002b, 0x4a026203, 0x00000002, 0x4a026403, - 0x00000043, 0x405c0000, 0x592c0810, 0x80040c80, - 0x40600000, 0x80040480, 0x0400101e, 0x8060c1c0, - 0x04000014, 0x59300004, 0x8c00053e, 0x0402000c, - 0x485e6014, 0x48626012, 0x497a6205, 0x5c00c000, - 0x5c00b800, 0x0201f800, 0x00100cee, 0x0402000f, - 0x59300804, 0x0201f000, 0x000209a3, 0x4c140000, - 0x0201f800, 0x0010644d, 0x5c002800, 0x040007f1, - 0x5c00c000, 0x5c00b800, 0x0201f000, 0x00107134, - 0x5c00c000, 0x5c00b800, 0x4933c857, 0x1c01f000, - 0x4807c857, 0x4004c000, 0x0401f7e1, 0x4803c857, - 0x0401f7f4, 0x83380480, 0x00000058, 0x04021005, - 0x83380480, 0x00000040, 0x04001002, 0x0c01f002, - 0x1c01f000, 0x00107f81, 0x00107f81, 0x00107f81, - 0x00107f81, 0x00107f81, 0x00107f81, 0x00107f81, - 0x00107f81, 0x00107f81, 0x00107f81, 0x00107f83, - 0x00107f81, 0x00107f81, 0x00107f81, 0x00107f81, - 0x00107f90, 0x00107f81, 0x00107f81, 0x00107f81, - 0x00107f81, 0x00107fbe, 0x00107f81, 0x00107f81, - 0x00107f81, 0x0201f800, 0x0010032d, 0x4933c857, - 0x0201f800, 0x001062a1, 0x4a026203, 0x00000002, - 0x59a8002c, 0x48026205, 0x59300012, 0x59300816, - 0x80040c80, 0x48066016, 0x0201f000, 0x0010603d, - 0x4933c857, 0x0201f800, 0x0010603d, 0x4d3c0000, - 0x417a7800, 0x0201f800, 0x0010df61, 0x5c027800, - 0x42000000, 0x0010bc1d, 0x0201f800, 0x0010ad1d, - 0x0201f800, 0x0010889a, 0x04000010, 0x4d2c0000, - 0x59325809, 0x4a025a05, 0x00000103, 0x59300402, - 0x48025c07, 0x4a025a07, 0x00000029, 0x497a580a, + 0x4807521b, 0x4807541b, 0x59cc0408, 0x8c000518, + 0x04000005, 0x4c040000, 0x0201f800, 0x00109378, + 0x5c000800, 0x0201f800, 0x00104755, 0x04000007, + 0x59cc0009, 0x48035028, 0x59cc000a, 0x48035029, + 0x0201f800, 0x00108c53, 0x5c00b000, 0x5c028000, + 0x1c01f000, 0x4933c857, 0x59a8141b, 0x82080580, + 0x0000ffff, 0x0400000c, 0x4c080000, 0x0201f800, + 0x00104755, 0x5c001000, 0x0402000b, 0x59cc0408, + 0x8c000518, 0x04000005, 0x8c08150a, 0x0400000b, + 0x80000580, 0x1c01f000, 0x8c081508, 0x040207fd, + 0x0401f006, 0x82080500, 0x00000030, 0x04020003, + 0x8c081506, 0x040207f7, 0x4a03541b, 0x0000ffff, + 0x42000000, 0x0010bc6a, 0x0201f800, 0x0010ae10, + 0x42003000, 0x0000000c, 0x42001800, 0x0000ffff, + 0x42002000, 0x00000007, 0x0201f800, 0x0010326a, + 0x4d400000, 0x4d3c0000, 0x42003000, 0x00000001, + 0x0201f800, 0x0010a5b4, 0x42028000, 0x0000002a, + 0x42027800, 0x00000200, 0x0201f800, 0x0010dfe1, + 0x5c028000, 0x5c027800, 0x82000540, 0x00000001, + 0x1c01f000, 0x4933c857, 0x4c580000, 0x59a80018, + 0x800001c0, 0x04000023, 0x59cc1000, 0x82081500, + 0x00ffff00, 0x80081110, 0x80080580, 0x04000004, + 0x42000000, 0x0010bd00, 0x0401f016, 0x83cc1400, + 0x0000000b, 0x4200b000, 0x00000002, 0x83341c00, + 0x00000006, 0x0401f830, 0x04000004, 0x42000000, + 0x0010bd01, 0x0401f00b, 0x83cc1400, 0x0000000d, + 0x4200b000, 0x00000002, 0x83341c00, 0x00000008, + 0x0401f825, 0x04000007, 0x42000000, 0x0010bd02, + 0x0201f800, 0x0010ae10, 0x82000540, 0x00000001, + 0x5c00b000, 0x1c01f000, 0x4933c857, 0x59cc0206, + 0x82000580, 0x00000014, 0x04020016, 0x59cc0407, + 0x82000580, 0x00000800, 0x04020012, 0x59cc0207, + 0x8c00051a, 0x0400000d, 0x82000500, 0x00000f00, + 0x82000580, 0x00000100, 0x04020008, 0x59cc020a, + 0x8c000508, 0x04020003, 0x8c00050a, 0x04000003, + 0x80000580, 0x1c01f000, 0x82000540, 0x00000001, + 0x1c01f000, 0x5c000000, 0x4c000000, 0x4803c857, + 0x480bc857, 0x480fc857, 0x485bc857, 0x50080800, + 0x500c0000, 0x80042580, 0x04020007, 0x80081000, + 0x800c1800, 0x8058b040, 0x040207f9, 0x80000580, + 0x1c01f000, 0x4803c857, 0x4807c857, 0x480bc857, + 0x480fc857, 0x80040480, 0x04001006, 0x42000000, + 0x00000001, 0x82040d40, 0x00000001, 0x1c01f000, + 0x41780000, 0x0401f7fc, 0x83380480, 0x00000053, + 0x02021800, 0x0010032d, 0x83380480, 0x0000004b, + 0x02001800, 0x0010032d, 0x0c01f001, 0x00107e29, + 0x00107e29, 0x00107e29, 0x00107e29, 0x00107e27, + 0x00107e27, 0x00107e27, 0x00107e29, 0x0201f800, + 0x0010032d, 0x493bc857, 0x4a026203, 0x0000000d, + 0x493a6403, 0x42000800, 0x80000000, 0x0201f000, + 0x000209b1, 0x83380580, 0x00000013, 0x04020008, + 0x59300403, 0x82000580, 0x00000050, 0x02020800, + 0x0010032d, 0x0201f000, 0x00020a10, 0x4933c857, + 0x83380580, 0x00000027, 0x04020030, 0x4933c857, + 0x0201f800, 0x00106102, 0x4d3c0000, 0x417a7800, + 0x0201f800, 0x0010e06f, 0x5c027800, 0x42000000, + 0x0010bd1d, 0x0201f800, 0x0010ae10, 0x4d2c0000, + 0x59325809, 0x0201f800, 0x00108953, 0x492fc857, + 0x0400000d, 0x4a025a05, 0x00000103, 0x59300c02, + 0x48065c07, 0x4a025a07, 0x00000029, 0x497a580a, 0x592c0c09, 0x84040d50, 0x48065c09, 0x0201f800, - 0x000203ab, 0x5c025800, 0x42003000, 0x00000014, - 0x41782800, 0x4d400000, 0x4d440000, 0x59368c03, - 0x42002000, 0x00000002, 0x42028000, 0x00000029, - 0x0201f800, 0x00109131, 0x5c028800, 0x5c028000, - 0x0201f000, 0x00020a10, 0x4933c857, 0x59300809, - 0x4978080a, 0x4978080b, 0x58041409, 0x84081558, - 0x48080c09, 0x1c01f000, 0x4807c857, 0x8c040d3e, - 0x04020024, 0x497a5a07, 0x59300020, 0x80000540, - 0x04000018, 0x497a5a07, 0x4c040000, 0x4c080000, - 0x4c0c0000, 0x4c100000, 0x4c140000, 0x40002800, - 0x58141003, 0x40040000, 0x80081480, 0x48082803, - 0x40140000, 0x0201f800, 0x00100a76, 0x5c002800, - 0x5c002000, 0x5c001800, 0x5c001000, 0x5c000800, - 0x592c0207, 0x80000540, 0x04020009, 0x0401f005, - 0x592c0409, 0x8c00051c, 0x04000002, 0x592c0803, - 0x4807c857, 0x4a025a07, 0x00000015, 0x1c01f000, - 0x59300020, 0x80000540, 0x04000009, 0x4a025a07, - 0x00000011, 0x59300020, 0x4c040000, 0x0201f800, - 0x00100a76, 0x5c000800, 0x0401f7f5, 0x4807c856, - 0x4a025a07, 0x00000007, 0x1c01f000, 0x83380480, - 0x00000058, 0x04021007, 0x83380480, 0x00000040, - 0x04001004, 0x4d2c0000, 0x0c01f803, 0x5c025800, - 0x1c01f000, 0x0010801d, 0x0010801d, 0x0010801d, - 0x0010801d, 0x0010801d, 0x00108020, 0x0010801f, - 0x0010801d, 0x001080a5, 0x0010801d, 0x0010801d, - 0x0010801d, 0x0010801d, 0x0010801d, 0x0010801d, - 0x0010801d, 0x0010801d, 0x0010801d, 0x0010801d, - 0x00108171, 0x0010819c, 0x00108179, 0x0010801f, - 0x001081a8, 0x0201f800, 0x0010032d, 0x1c01f000, - 0x5930001d, 0x800001c0, 0x02020800, 0x0010911f, - 0x59300008, 0x8c00050e, 0x0400007e, 0x8c000500, - 0x04000070, 0x8c00051c, 0x04000009, 0x84000500, - 0x48026008, 0x59325809, 0x592c3c09, 0x841c3d58, - 0x481e5c09, 0x0201f000, 0x00020a70, 0x59325809, - 0x592c3c09, 0x841c3d58, 0x59300008, 0x8c00051c, - 0x040207f3, 0x481e5c09, 0x42000000, 0x00000005, - 0x40000000, 0x80000040, 0x040207fe, 0x59300008, - 0x8c00051c, 0x040207ea, 0x59cc0808, 0x592c0205, - 0x82000500, 0x000000ff, 0x82000580, 0x00000048, - 0x0402000c, 0x497a580c, 0x82040500, 0x000000ff, - 0x04000008, 0x592c0408, 0x800001c0, 0x04000005, - 0x0201f800, 0x0010900d, 0x0201f000, 0x00100b8e, - 0x900421c0, 0x4812580a, 0x41782000, 0x82040500, - 0x00000c00, 0x04000002, 0x59cc2009, 0x82043500, - 0x00000fff, 0x04020027, 0x481e5c09, 0x4a025a07, - 0x00000000, 0x801831c0, 0x02000000, 0x00100b8e, - 0x41782000, 0x8c183510, 0x04000002, 0x59cc200b, - 0x4812580d, 0x41780000, 0x8c183512, 0x04000002, - 0x59cc000a, 0x4802580c, 0x80100c00, 0x02001800, - 0x0010032d, 0x02000000, 0x00100b8e, 0x82041480, - 0x0000001d, 0x0402100c, 0x4c500000, 0x4c540000, - 0x83cca400, 0x0000000c, 0x832cac00, 0x0000000e, - 0x0401fba0, 0x5c00a800, 0x5c00a000, 0x0201f000, - 0x00100b8e, 0x0401fb45, 0x0201f000, 0x00100b8e, - 0x412c7800, 0x0201f800, 0x0010056f, 0x02000800, - 0x0010032d, 0x492c780a, 0x841c3d52, 0x481c7c09, - 0x4a025a05, 0x00000103, 0x4812580b, 0x900401c0, - 0x4802580a, 0x583c0405, 0x583c1006, 0x583c2209, - 0x48025c05, 0x480a5806, 0x48125a09, 0x0401f7c7, - 0x8c000524, 0x04000792, 0x59325809, 0x4c000000, - 0x592c0409, 0x8c00051c, 0x5c000000, 0x04020003, - 0x4a026012, 0xffffffff, 0x84000524, 0x0401f788, - 0x1c01f000, 0x59a8002c, 0x48026205, 0x59325809, - 0x4a026203, 0x00000002, 0x592c2409, 0x59300808, - 0x4933c857, 0x4807c857, 0x592c0205, 0x82000500, - 0x000000ff, 0x82000580, 0x00000048, 0x04020004, - 0x8c102500, 0x02020000, 0x00109051, 0x4a025a07, - 0x00000000, 0x8c040d1e, 0x04000027, 0x41780800, - 0x497a580a, 0x592c1c0a, 0x59300012, 0x59341200, - 0x497a6205, 0x8c08150e, 0x04020070, 0x4807c857, - 0x4806580b, 0x80000d40, 0x04020f00, 0x59300402, - 0x48025c07, 0x48065808, 0x4a025a05, 0x00000103, - 0x4c040000, 0x4c0c0000, 0x4c100000, 0x0201f800, - 0x00108e69, 0x5c002000, 0x5c001800, 0x5c000800, - 0x8c102512, 0x0402001a, 0x4c0c0000, 0x0201f800, - 0x000203ab, 0x0201f800, 0x0010410c, 0x5c001800, - 0x8c0c1d18, 0x02000000, 0x00020a10, 0x0201f000, - 0x00108a6d, 0x4813c857, 0x8c102518, 0x0400004d, - 0x41780800, 0x592c1c0a, 0x820c0580, 0x00001000, - 0x040007d6, 0x8c102512, 0x040007d4, 0x592c780a, - 0x583c080b, 0x583c1c0a, 0x0401f7d0, 0x4807c857, - 0x592c780a, 0x59300402, 0x592c1405, 0x8c08151e, - 0x0402000d, 0x592c1207, 0x48007c07, 0x48047808, - 0x48087a07, 0x84102512, 0x48107c09, 0x4c0c0000, - 0x0201f800, 0x00100589, 0x403e5800, 0x0401fb02, - 0x0401f7d9, 0x48025c07, 0x48065808, 0x583c080d, - 0x583c000c, 0x80040c00, 0x82041480, 0x0000001d, - 0x04001006, 0x583c1001, 0x480a5801, 0x49787801, - 0x42000800, 0x0000001c, 0x82040c00, 0x00000014, - 0x4c0c0000, 0x4c500000, 0x4c540000, 0x823ca400, - 0x00000009, 0x832cac00, 0x00000009, 0x4c100000, - 0x4c3c0000, 0x0401fb03, 0x5c007800, 0x5c002000, - 0x5c00a800, 0x5c00a000, 0x84102512, 0x48125c09, - 0x403e5800, 0x0201f800, 0x00100589, 0x0201f800, - 0x00108e69, 0x42034000, 0x0010b7fa, 0x59a1d806, - 0x80edd9c0, 0x02000800, 0x0010032d, 0x48efc857, - 0x58ec0008, 0x4803c857, 0x0801f800, 0x0401f7aa, - 0x4933c857, 0x1c01f000, 0x59301415, 0x480bc857, - 0x8c08151c, 0x0402000e, 0x80000540, 0x4803c857, - 0x0400078b, 0x80042c80, 0x04021789, 0x8c081514, - 0x04020005, 0x592c0810, 0x4807c857, 0x80040480, - 0x48026017, 0x8408155c, 0x480a6415, 0x59301008, - 0x8408151e, 0x480a6008, 0x4c100000, 0x4c3c0000, - 0x4d400000, 0x592e8207, 0x4a025a07, 0x00000001, - 0x0201f800, 0x00108e69, 0x49425a07, 0x5c028000, - 0x5c007800, 0x5c002000, 0x497a580a, 0x8c102512, - 0x04000006, 0x4d2c0000, 0x403e5800, 0x0201f800, - 0x00100589, 0x5c025800, 0x82102500, 0xffffedff, - 0x48125c09, 0x59301006, 0x800811c0, 0x02000000, - 0x00108aad, 0x59a8002c, 0x80080480, 0x02021000, - 0x00108aad, 0x4a025a05, 0x00000103, 0x4a025a07, - 0x00000006, 0x497a5c0a, 0x492fc857, 0x0201f800, - 0x000203ab, 0x0201f800, 0x0010410c, 0x0201f000, - 0x00020a10, 0x59325809, 0x592c0409, 0x8c000518, - 0x04000004, 0x412df800, 0x0201f000, 0x00100bad, - 0x1c01f000, 0x4933c857, 0x59325809, 0x497a580a, - 0x4a025a07, 0x00000000, 0x4a025a05, 0x00000103, - 0x59300812, 0x4807c857, 0x800409c0, 0x0402000c, - 0x48065808, 0x59300c02, 0x48065c07, 0x0201f800, - 0x00108e69, 0x0201f800, 0x000203ab, 0x0201f800, - 0x0010410c, 0x0201f000, 0x00020a10, 0x59340200, - 0x8c00050e, 0x04020005, 0x59300812, 0x0401fe33, - 0x48065808, 0x0401f7f0, 0x592c0209, 0x8c00050e, - 0x040207fa, 0x4933c857, 0x0201f000, 0x00108aad, - 0x4933c857, 0x59325809, 0x812e59c0, 0x02000800, - 0x0010032d, 0x592c020b, 0x8c000502, 0x02000800, - 0x0010032d, 0x4a026006, 0x00000002, 0x1c01f000, - 0x5930001d, 0x800001c0, 0x02020800, 0x0010911f, - 0x59300008, 0x4933c857, 0x4803c857, 0x8c00050e, - 0x04000037, 0x8c000500, 0x04000029, 0x8c00051c, - 0x0400000a, 0x84000500, 0x48026008, 0x59325809, - 0x592c3c09, 0x481fc857, 0x841c3d58, 0x481e5c09, + 0x000203ab, 0x5c025800, 0x42003000, 0x00000015, + 0x41782800, 0x42002000, 0x00000003, 0x4d400000, + 0x4d440000, 0x59368c03, 0x42028000, 0x00000029, + 0x0201f800, 0x001091ea, 0x5c028800, 0x5c028000, + 0x0201f000, 0x00020a10, 0x83380580, 0x00000014, + 0x0402000d, 0x59300403, 0x82000c80, 0x00000053, + 0x02021800, 0x0010032d, 0x82000480, 0x00000040, + 0x02001800, 0x0010032d, 0x4933c857, 0x4803c857, + 0x0c01f00e, 0x83380580, 0x00000053, 0x0400000a, + 0x83380580, 0x00000048, 0x02020800, 0x0010032d, + 0x59300403, 0x82000580, 0x00000050, 0x02020800, + 0x0010032d, 0x1c01f000, 0x00107e9f, 0x00107e9d, + 0x00107e9d, 0x00107e9d, 0x00107e9d, 0x00107e9d, + 0x00107e9d, 0x00107e9d, 0x00107e9d, 0x00107e9d, + 0x00107e9d, 0x00107eb6, 0x00107eb6, 0x00107eb6, + 0x00107eb6, 0x00107e9d, 0x00107eb6, 0x00107e9d, + 0x00107eb6, 0x0201f800, 0x0010032d, 0x4933c857, + 0x0201f800, 0x00106102, 0x0201f800, 0x00108953, + 0x02000000, 0x00020a10, 0x4d2c0000, 0x59325809, + 0x4a025a05, 0x00000103, 0x59300402, 0x48025c07, + 0x4a025a07, 0x00000006, 0x497a580a, 0x0201f800, + 0x000203ab, 0x5c025800, 0x0201f800, 0x00108a55, + 0x0201f000, 0x00020a10, 0x4933c857, 0x0201f800, + 0x00106102, 0x0201f000, 0x00020a10, 0x0201f800, + 0x0010032d, 0x5930001d, 0x800001c0, 0x02020800, + 0x001091d8, 0x59300004, 0x8c00053e, 0x0402002f, + 0x0201f800, 0x0010929b, 0x040200c3, 0x59325809, + 0x592c0c09, 0x59cc2808, 0x82141d00, 0x00000c00, + 0x04000002, 0x59cc1809, 0x84040d58, 0x48065c09, + 0x82143500, 0x00000fff, 0x0402002a, 0x59340200, + 0x8c00050e, 0x040200a9, 0x0201f800, 0x00020abe, + 0x04020006, 0x4a025a07, 0x00000000, 0x59300812, + 0x800409c0, 0x04020990, 0x4a025a05, 0x00000103, + 0x48065808, 0x480e580b, 0x901409c0, 0x4806580a, + 0x59300c02, 0x48065c07, 0x0201f800, 0x00108f22, + 0x0201f800, 0x000203ab, 0x0201f800, 0x00104126, + 0x59cc0008, 0x8c000518, 0x02020000, 0x00108b26, + 0x0201f000, 0x00020a10, 0x0201f800, 0x001064f2, + 0x040007d0, 0x4d3c0000, 0x42027800, 0x00000002, + 0x0201f800, 0x0010853c, 0x5c027800, 0x0401f7c9, + 0x4817c857, 0x480fc857, 0x82180500, 0x000000ff, + 0x0400000e, 0x592c0205, 0x82000500, 0x000000ff, + 0x82000580, 0x00000048, 0x04020008, 0x592c0408, + 0x800001c0, 0x04000005, 0x0201f800, 0x001090c6, + 0x0201f000, 0x0010910a, 0x82180d00, 0x00000c00, + 0x04000004, 0x59340200, 0x8c00050e, 0x04020058, + 0x4a025a07, 0x00000000, 0x41782000, 0x8c183510, + 0x04000009, 0x59cc200b, 0x801021c0, 0x04000006, + 0x59cc000c, 0x82000500, 0x000000ff, 0x04000002, + 0x4803c857, 0x4812580d, 0x41780000, 0x8c183512, + 0x04000002, 0x59cc000a, 0x4802580c, 0x80100c00, + 0x040007ae, 0x82041480, 0x0000001d, 0x04001006, + 0x592c0405, 0x8c00051e, 0x04000022, 0x42000800, + 0x0000001c, 0x4c040000, 0x4c0c0000, 0x4c140000, + 0x0201f800, 0x00020abe, 0x04020006, 0x4a025a07, + 0x00000000, 0x59300812, 0x800409c0, 0x04020932, + 0x5c002800, 0x5c001800, 0x4a025a05, 0x00000103, + 0x48065808, 0x480e580b, 0x901409c0, 0x4806580a, + 0x5c000800, 0x4c500000, 0x4c540000, 0x83cca400, + 0x0000000c, 0x832cac00, 0x0000000e, 0x0201f800, + 0x001084d1, 0x5c00a800, 0x5c00a000, 0x0401f795, + 0x4c040000, 0x4c0c0000, 0x4c140000, 0x0201f800, + 0x00020abe, 0x04020006, 0x4a025a07, 0x00000000, + 0x59300812, 0x800409c0, 0x04020913, 0x48065808, + 0x5c002800, 0x5c001800, 0x59301402, 0x480a5c07, + 0x480e580b, 0x901401c0, 0x4802580a, 0x0201f800, + 0x00108f22, 0x5c000800, 0x0201f800, 0x0010847b, + 0x0201f800, 0x001084b6, 0x0401f780, 0x592c020b, + 0x8c000502, 0x040007a7, 0x592c0209, 0x8c00050e, + 0x040207a4, 0x59300012, 0x800c0d80, 0x040007a1, + 0x4803c857, 0x480fc857, 0x8c183514, 0x02000000, + 0x00108b66, 0x80000540, 0x0400079a, 0x4807c856, + 0x0201f000, 0x00108b66, 0x592c020b, 0x8c000502, + 0x04000756, 0x59300012, 0x800001c0, 0x04000756, + 0x592c0209, 0x8c00050e, 0x04020753, 0x0201f000, + 0x00108b66, 0x1c01f000, 0x59cc2006, 0x59cc2807, + 0x0401f040, 0x0401f03f, 0x1c01f000, 0x4933c857, + 0x59300004, 0x8c00053e, 0x04020035, 0x5930001d, + 0x800001c0, 0x02020800, 0x001091d8, 0x59325809, + 0x592c0c09, 0x41782800, 0x41781800, 0x84040d58, + 0x48065c09, 0x41783000, 0x59340200, 0x8c00050e, + 0x0402001b, 0x0201f800, 0x00020abe, 0x04020007, + 0x4a025a07, 0x00000000, 0x59300812, 0x4807c857, + 0x800409c0, 0x040208c4, 0x4a025a05, 0x00000103, + 0x48065808, 0x480e580b, 0x901409c0, 0x4806580a, + 0x4933c857, 0x59300c02, 0x48065c07, 0x0201f800, + 0x00108f22, 0x0201f800, 0x000203ab, 0x0201f800, + 0x00104126, 0x0201f000, 0x00020a10, 0x592c020b, + 0x8c000502, 0x040007e4, 0x59300012, 0x4803c857, + 0x800001c0, 0x040007e3, 0x592c0209, 0x8c00050e, + 0x040207e0, 0x0201f000, 0x00108b66, 0x0201f800, + 0x001064f2, 0x040007ca, 0x4933c857, 0x1c01f000, + 0x4c5c0000, 0x4c600000, 0x4010b800, 0x4014c000, + 0x5930001d, 0x800001c0, 0x4c140000, 0x02020800, + 0x001091d8, 0x5c002800, 0x59325809, 0x592c020b, + 0x8c000502, 0x04020026, 0x8c000500, 0x0400002b, + 0x4a026203, 0x00000002, 0x4a026403, 0x00000043, + 0x405c0000, 0x592c0810, 0x80040c80, 0x40600000, + 0x80040480, 0x0400101e, 0x8060c1c0, 0x04000014, + 0x59300004, 0x8c00053e, 0x0402000c, 0x485e6014, + 0x48626012, 0x497a6205, 0x5c00c000, 0x5c00b800, + 0x0201f800, 0x00100cef, 0x0402000f, 0x59300804, + 0x0201f000, 0x000209a3, 0x4c140000, 0x0201f800, + 0x001064f2, 0x5c002800, 0x040007f1, 0x5c00c000, + 0x5c00b800, 0x0201f000, 0x001071c7, 0x5c00c000, + 0x5c00b800, 0x4933c857, 0x1c01f000, 0x4807c857, + 0x4004c000, 0x0401f7e1, 0x4803c857, 0x0401f7f4, + 0x83380480, 0x00000058, 0x04021005, 0x83380480, + 0x00000040, 0x04001002, 0x0c01f002, 0x1c01f000, + 0x00108028, 0x00108028, 0x00108028, 0x00108028, + 0x00108028, 0x00108028, 0x00108028, 0x00108028, + 0x00108028, 0x00108028, 0x0010802a, 0x00108028, + 0x00108028, 0x00108028, 0x00108028, 0x00108037, + 0x00108028, 0x00108028, 0x00108028, 0x00108028, + 0x00108065, 0x00108028, 0x00108028, 0x00108028, + 0x0201f800, 0x0010032d, 0x4933c857, 0x0201f800, + 0x00106346, 0x4a026203, 0x00000002, 0x59a8002c, + 0x48026205, 0x59300012, 0x59300816, 0x80040c80, + 0x48066016, 0x0201f000, 0x001060e2, 0x4933c857, + 0x0201f800, 0x001060e2, 0x4d3c0000, 0x417a7800, + 0x0201f800, 0x0010e06f, 0x5c027800, 0x42000000, + 0x0010bd1d, 0x0201f800, 0x0010ae10, 0x0201f800, + 0x00108953, 0x04000010, 0x4d2c0000, 0x59325809, + 0x4a025a05, 0x00000103, 0x59300402, 0x48025c07, + 0x4a025a07, 0x00000029, 0x497a580a, 0x592c0c09, + 0x84040d50, 0x48065c09, 0x0201f800, 0x000203ab, + 0x5c025800, 0x42003000, 0x00000014, 0x41782800, + 0x4d400000, 0x4d440000, 0x59368c03, 0x42002000, + 0x00000002, 0x42028000, 0x00000029, 0x0201f800, + 0x001091ea, 0x5c028800, 0x5c028000, 0x0201f000, + 0x00020a10, 0x4933c857, 0x59300809, 0x4978080a, + 0x4978080b, 0x58041409, 0x84081558, 0x48080c09, + 0x1c01f000, 0x4807c857, 0x8c040d3e, 0x04020024, + 0x497a5a07, 0x59300020, 0x80000540, 0x04000018, + 0x497a5a07, 0x4c040000, 0x4c080000, 0x4c0c0000, + 0x4c100000, 0x4c140000, 0x40002800, 0x58141003, + 0x40040000, 0x80081480, 0x48082803, 0x40140000, + 0x0201f800, 0x00100a77, 0x5c002800, 0x5c002000, + 0x5c001800, 0x5c001000, 0x5c000800, 0x592c0207, + 0x80000540, 0x04020009, 0x0401f005, 0x592c0409, + 0x8c00051c, 0x04000002, 0x592c0803, 0x4807c857, + 0x4a025a07, 0x00000015, 0x1c01f000, 0x59300020, + 0x80000540, 0x04000009, 0x4a025a07, 0x00000011, + 0x59300020, 0x4c040000, 0x0201f800, 0x00100a77, + 0x5c000800, 0x0401f7f5, 0x4807c856, 0x4a025a07, + 0x00000007, 0x1c01f000, 0x83380480, 0x00000058, + 0x04021007, 0x83380480, 0x00000040, 0x04001004, + 0x4d2c0000, 0x0c01f803, 0x5c025800, 0x1c01f000, + 0x001080c4, 0x001080c4, 0x001080c4, 0x001080c4, + 0x001080c4, 0x001080c7, 0x001080c6, 0x001080c4, + 0x0010814c, 0x001080c4, 0x001080c4, 0x001080c4, + 0x001080c4, 0x001080c4, 0x001080c4, 0x001080c4, + 0x001080c4, 0x001080c4, 0x001080c4, 0x00108218, + 0x00108243, 0x00108220, 0x001080c6, 0x0010824f, + 0x0201f800, 0x0010032d, 0x1c01f000, 0x5930001d, + 0x800001c0, 0x02020800, 0x001091d8, 0x59300008, + 0x8c00050e, 0x0400007e, 0x8c000500, 0x04000070, + 0x8c00051c, 0x04000009, 0x84000500, 0x48026008, + 0x59325809, 0x592c3c09, 0x841c3d58, 0x481e5c09, 0x0201f000, 0x00020a70, 0x59325809, 0x592c3c09, - 0x841c3d58, 0x59300008, 0x8c00051c, 0x040207f2, + 0x841c3d58, 0x59300008, 0x8c00051c, 0x040207f3, 0x481e5c09, 0x42000000, 0x00000005, 0x40000000, 0x80000040, 0x040207fe, 0x59300008, 0x8c00051c, - 0x040207e9, 0x592c0205, 0x82000500, 0x000000ff, - 0x82000580, 0x00000048, 0x04020003, 0x497a580c, - 0x0401f002, 0x497a580a, 0x481e5c09, 0x4a025a07, - 0x00000000, 0x0201f000, 0x00100b8e, 0x8c000524, - 0x040007d9, 0x59325809, 0x4c000000, 0x592c0409, - 0x8c00051c, 0x5c000000, 0x04020003, 0x4a026012, - 0xffffffff, 0x84000524, 0x0401f7cf, 0x1c01f000, - 0x4933c857, 0x41780800, 0x83380480, 0x00000058, - 0x0402100b, 0x83380480, 0x00000040, 0x04001008, - 0x4d2c0000, 0x59325809, 0x812e59c0, 0x0c020806, - 0x5c025800, 0x0201f000, 0x00020a10, 0x493bc857, - 0x1c01f000, 0x00108211, 0x00108211, 0x00108211, - 0x00108211, 0x00108211, 0x00108213, 0x00108211, - 0x00108211, 0x00108211, 0x00108211, 0x00108211, - 0x00108211, 0x00108211, 0x00108211, 0x00108211, - 0x00108211, 0x00108211, 0x00108211, 0x00108211, - 0x00108211, 0x00108216, 0x00108211, 0x00108211, - 0x00108211, 0x0201f800, 0x0010032d, 0x59cc0808, - 0x497a5808, 0x4807c857, 0x59300402, 0x48025c07, - 0x4a025a05, 0x00000103, 0x900401c0, 0x4802580a, - 0x4a025a07, 0x00000000, 0x800409c0, 0x02000000, - 0x000203ab, 0x59cc0009, 0x4802580b, 0x82042500, - 0x00000100, 0x04000002, 0x59cc200b, 0x4812580d, - 0x82040500, 0x00000200, 0x04000002, 0x59cc000a, + 0x040207ea, 0x59cc0808, 0x592c0205, 0x82000500, + 0x000000ff, 0x82000580, 0x00000048, 0x0402000c, + 0x497a580c, 0x82040500, 0x000000ff, 0x04000008, + 0x592c0408, 0x800001c0, 0x04000005, 0x0201f800, + 0x001090c6, 0x0201f000, 0x00100b8f, 0x900421c0, + 0x4812580a, 0x41782000, 0x82040500, 0x00000c00, + 0x04000002, 0x59cc2009, 0x82043500, 0x00000fff, + 0x04020027, 0x481e5c09, 0x4a025a07, 0x00000000, + 0x801831c0, 0x02000000, 0x00100b8f, 0x41782000, + 0x8c183510, 0x04000002, 0x59cc200b, 0x4812580d, + 0x41780000, 0x8c183512, 0x04000002, 0x59cc000a, 0x4802580c, 0x80100c00, 0x02001800, 0x0010032d, - 0x02000000, 0x000203ab, 0x82041480, 0x0000001d, - 0x04001006, 0x592c0405, 0x8c00051e, 0x0400000e, - 0x42000800, 0x0000001c, 0x4c500000, 0x4c540000, - 0x83cca400, 0x0000000c, 0x832cac00, 0x0000000e, - 0x0401f9dc, 0x5c00a800, 0x5c00a000, 0x0201f000, - 0x000203ab, 0x0401f981, 0x0401f1bb, 0x83380480, - 0x00000093, 0x02021800, 0x0010032d, 0x83380480, - 0x00000085, 0x02001800, 0x0010032d, 0x0c01f001, - 0x0010825f, 0x0010825d, 0x0010825d, 0x00108266, - 0x0010825d, 0x0010825d, 0x0010825d, 0x0010825d, - 0x0010825d, 0x0010825d, 0x0010825d, 0x0010825d, - 0x0010825d, 0x0201f800, 0x0010032d, 0x4a026203, - 0x00000001, 0x493a6403, 0x42000800, 0x80000040, - 0x0201f000, 0x000209b1, 0x83300580, 0x0010f53c, - 0x02020800, 0x0010032d, 0x4933c857, 0x59cc1404, - 0x0201f800, 0x00108cd8, 0x04000025, 0x591c0203, - 0x82000580, 0x00000000, 0x04000021, 0x591c000a, - 0x81340580, 0x0402001e, 0x59cc1204, 0x82080580, - 0x0000ffff, 0x04000007, 0x591c0202, 0x82000d80, - 0x0000ffff, 0x04000003, 0x80080580, 0x04020014, - 0x4d300000, 0x4d1c0000, 0x411e6000, 0x0401f9f8, - 0x5c023800, 0x5c026000, 0x0400000b, 0x59cc0005, - 0x8c000500, 0x04020003, 0x0401f99b, 0x0401f003, - 0x4a023a03, 0x00000002, 0x4a026403, 0x00000086, - 0x0401f005, 0x0401f9dc, 0x040007f5, 0x4a026403, - 0x00000087, 0x4d2c0000, 0x0201f800, 0x0010a4f8, - 0x0201f800, 0x00104489, 0x5c025800, 0x59340200, - 0x8c00050e, 0x0400000d, 0x59cc1404, 0x0201f800, - 0x00108cd8, 0x04000009, 0x591c0415, 0x8c00051a, - 0x04000006, 0x4d300000, 0x411e6000, 0x0201f800, - 0x00108ac2, 0x5c026000, 0x1c01f000, 0x83380580, - 0x00000013, 0x0402000b, 0x59300403, 0x4803c857, - 0x82000d80, 0x00000086, 0x04000012, 0x82000d80, - 0x00000087, 0x02020800, 0x0010032d, 0x0401f00d, - 0x83380580, 0x00000027, 0x04000005, 0x83380580, - 0x00000014, 0x02020800, 0x0010032d, 0x493bc857, - 0x0201f800, 0x0010605d, 0x0201f000, 0x001070b5, - 0x4933c857, 0x0201f000, 0x00020a10, 0x83380580, - 0x00000013, 0x04020006, 0x59300403, 0x4803c857, - 0x82000480, 0x00000085, 0x0c01f053, 0x83380580, - 0x00000027, 0x04020047, 0x4933c857, 0x0201f800, - 0x0010605d, 0x4d3c0000, 0x417a7800, 0x0201f800, - 0x0010df61, 0x5c027800, 0x42003000, 0x00000015, - 0x41782800, 0x42002000, 0x00000003, 0x42028000, - 0x00000029, 0x4d400000, 0x4d440000, 0x59368c03, - 0x0201f800, 0x00109131, 0x5c028800, 0x5c028000, - 0x42000000, 0x0010bc1d, 0x0201f800, 0x0010ad1d, - 0x0201f800, 0x0010889a, 0x02000000, 0x00020a10, - 0x4d2c0000, 0x59325809, 0x592c0205, 0x82000500, - 0x000000ff, 0x82000580, 0x00000014, 0x02020800, - 0x0010899c, 0x4a025a05, 0x00000103, 0x59300402, - 0x48025c07, 0x497a580a, 0x49425a07, 0x0201f800, - 0x000203ab, 0x5c025800, 0x0201f000, 0x00020a10, - 0x83380580, 0x00000089, 0x04000005, 0x83380580, - 0x0000008a, 0x02020000, 0x00107134, 0x0201f800, - 0x0010644d, 0x02020000, 0x00107134, 0x59300a03, - 0x82040580, 0x0000000a, 0x0400002a, 0x82040580, - 0x0000000c, 0x04000027, 0x0201f800, 0x0010032d, - 0x83380580, 0x00000014, 0x040207ea, 0x4933c857, - 0x0201f800, 0x0010605d, 0x42028000, 0x00000006, - 0x0401f7cc, 0x00108330, 0x0010832e, 0x0010832e, - 0x0010832e, 0x0010832e, 0x0010832e, 0x00108336, - 0x0010832e, 0x0010832e, 0x0010832e, 0x0010832e, - 0x0010832e, 0x0010832e, 0x0201f800, 0x0010032d, - 0x4933c857, 0x59a8002a, 0x48026006, 0x4a026203, - 0x0000000a, 0x1c01f000, 0x4933c857, 0x59a8002a, - 0x48026006, 0x4a026203, 0x0000000c, 0x1c01f000, - 0x5932680a, 0x83380580, 0x00000089, 0x04000008, - 0x83380580, 0x0000008a, 0x04000029, 0x4933c857, - 0x493bc857, 0x0201f000, 0x00107134, 0x4933c857, - 0x59325809, 0x59300a1e, 0x82040580, 0x00000003, - 0x0402000a, 0x0201f800, 0x0010889a, 0x04000012, - 0x0201f800, 0x000203ab, 0x0201f800, 0x0010410c, - 0x497a6009, 0x0401f00c, 0x5930021e, 0x82000580, - 0x00000001, 0x04020008, 0x59300c17, 0x82040580, - 0x00000039, 0x0400001d, 0x82040580, 0x00000035, - 0x0400001a, 0x59cc0c07, 0x4806641a, 0x59cc0a07, - 0x4806621a, 0x59300203, 0x4802641e, 0x4a026203, - 0x00000011, 0x0201f000, 0x001070b5, 0x4933c857, - 0x5930021e, 0x82000580, 0x00000001, 0x04020048, - 0x59300c17, 0x82040580, 0x00000035, 0x04000007, - 0x82040580, 0x0000001e, 0x04000004, 0x82040580, - 0x00000039, 0x0402003e, 0x4933c857, 0x4c5c0000, - 0x4c600000, 0x4d1c0000, 0x4130b800, 0x4004c000, - 0x0201f800, 0x00108c7b, 0x0402002f, 0x82600580, - 0x00000035, 0x04020004, 0x591c0c15, 0x8c040d02, - 0x04000029, 0x0201f800, 0x001070f5, 0x04000026, - 0x491fc857, 0x4933c857, 0x82600580, 0x00000035, - 0x04000004, 0x82600580, 0x00000039, 0x04020002, - 0x4932381d, 0x48626403, 0x4a026203, 0x00000001, - 0x4a026407, 0x00000001, 0x585c080a, 0x4807c857, - 0x4806600a, 0x585c0c16, 0x4807c857, 0x48066416, - 0x585c0a16, 0x4807c857, 0x48066216, 0x585c0a17, - 0x4807c857, 0x48066217, 0x585c0c1a, 0x4807c857, - 0x4806641a, 0x585c0a1a, 0x4807c857, 0x4806621a, - 0x491e601f, 0x42000800, 0x80000040, 0x0201f800, - 0x000209b1, 0x405e6000, 0x5c023800, 0x5c00c000, - 0x5c00b800, 0x0201f000, 0x00020a10, 0x0201f800, - 0x0010889a, 0x0400000b, 0x4d2c0000, 0x59325809, - 0x0201f800, 0x000203ab, 0x5930021e, 0x82000580, - 0x00000003, 0x02000800, 0x0010410c, 0x5c025800, - 0x0201f000, 0x00020a10, 0x4803c856, 0x4c500000, - 0x4c540000, 0x412c7800, 0x4c3c0000, 0x42002800, - 0x00000001, 0x82040480, 0x00000101, 0x04001003, - 0x42000800, 0x00000100, 0x40043000, 0x42000800, - 0x0000001c, 0x83cca400, 0x0000000c, 0x832cac00, - 0x0000000e, 0x0401f843, 0x82183480, 0x0000001c, - 0x592e5801, 0x812e59c0, 0x02020800, 0x00100589, - 0x0201f800, 0x0010056f, 0x04000016, 0x80142800, - 0x4a025805, 0x00000110, 0x492c7801, 0x82180c80, - 0x0000003d, 0x04021006, 0x40180800, 0x832cac00, - 0x00000006, 0x0401f82f, 0x0401f00a, 0x82183480, - 0x0000003c, 0x42000800, 0x0000003c, 0x412c7800, - 0x832cac00, 0x00000006, 0x0401f826, 0x0401f7e9, - 0x5c007800, 0x841429c0, 0x82142d40, 0x00000003, - 0x48147a05, 0x403e5800, 0x5c00a800, 0x5c00a000, - 0x1c01f000, 0x492fc857, 0x812e59c0, 0x0400000f, - 0x4d2c0000, 0x4c3c0000, 0x592c7801, 0x803c79c0, - 0x04000006, 0x497a5801, 0x0201f800, 0x000203ab, - 0x403e5800, 0x0401f7f9, 0x5c007800, 0x0201f800, - 0x000203ab, 0x5c025800, 0x1c01f000, 0x4803c856, - 0x4c580000, 0x82040400, 0x00000003, 0x8000b104, - 0x0201f800, 0x0010adef, 0x5c00b000, 0x1c01f000, - 0x4803c856, 0x4c580000, 0x82040c00, 0x00000003, - 0x8004b104, 0x0201f800, 0x0010adef, 0x5c00b000, - 0x1c01f000, 0x591c0c07, 0x82040580, 0x00000003, - 0x04000007, 0x82040580, 0x00000002, 0x04000004, - 0x82040580, 0x0000000a, 0x0402002d, 0x4d300000, - 0x4d2c0000, 0x411e6000, 0x59325809, 0x0201f800, - 0x0010889a, 0x04000022, 0x59300c07, 0x82040580, - 0x0000000a, 0x04000023, 0x82040580, 0x00000003, - 0x04020009, 0x592c0a05, 0x82040d00, 0x000000ff, - 0x82040d80, 0x00000014, 0x04000003, 0x4a02621e, - 0x00000003, 0x0401f81c, 0x4d400000, 0x42028000, - 0x00000013, 0x592c0a09, 0x84040d54, 0x0201f800, - 0x00104504, 0x5c028000, 0x0201f800, 0x00108e69, - 0x0201f800, 0x000203ab, 0x5930021e, 0x82000580, - 0x00000003, 0x02000800, 0x0010899c, 0x0201f800, - 0x001070b5, 0x5c025800, 0x5c026000, 0x1c01f000, - 0x4a025a07, 0x00000013, 0x4a02621e, 0x0000000a, - 0x0401f7ee, 0x592c0409, 0x8c000512, 0x04000009, - 0x84000512, 0x48025c09, 0x4d2c0000, 0x592e580a, - 0x0201f800, 0x00100589, 0x5c025800, 0x497a580a, - 0x1c01f000, 0x59cc0005, 0x8c000500, 0x0402000b, - 0x591c0407, 0x82000580, 0x00000002, 0x04020007, - 0x591c0c03, 0x82040580, 0x00000085, 0x04000003, - 0x82040580, 0x0000008b, 0x1c01f000, 0x4933c857, - 0x4d3c0000, 0x42027800, 0x00000002, 0x59300407, - 0x82000c80, 0x00000014, 0x02021800, 0x0010032d, - 0x0c01f80a, 0x5c027800, 0x1c01f000, 0x4933c857, + 0x02000000, 0x00100b8f, 0x82041480, 0x0000001d, + 0x0402100c, 0x4c500000, 0x4c540000, 0x83cca400, + 0x0000000c, 0x832cac00, 0x0000000e, 0x0401fbae, + 0x5c00a800, 0x5c00a000, 0x0201f000, 0x00100b8f, + 0x0401fb53, 0x0201f000, 0x00100b8f, 0x412c7800, + 0x0201f800, 0x0010056f, 0x02000800, 0x0010032d, + 0x492c780a, 0x841c3d52, 0x481c7c09, 0x4a025a05, + 0x00000103, 0x4812580b, 0x900401c0, 0x4802580a, + 0x583c0405, 0x583c1006, 0x583c2209, 0x48025c05, + 0x480a5806, 0x48125a09, 0x0401f7c7, 0x8c000524, + 0x04000792, 0x59325809, 0x4c000000, 0x592c0409, + 0x8c00051c, 0x5c000000, 0x04020003, 0x4a026012, + 0xffffffff, 0x84000524, 0x0401f788, 0x1c01f000, + 0x59a8002c, 0x48026205, 0x59325809, 0x4a026203, + 0x00000002, 0x592c2409, 0x59300808, 0x4933c857, + 0x4807c857, 0x592c0205, 0x82000500, 0x000000ff, + 0x82000580, 0x00000048, 0x04020004, 0x8c102500, + 0x02020000, 0x0010910a, 0x4a025a07, 0x00000000, + 0x8c040d1e, 0x04000027, 0x41780800, 0x497a580a, + 0x592c1c0a, 0x59300012, 0x59341200, 0x497a6205, + 0x8c08150e, 0x04020070, 0x4807c857, 0x4806580b, + 0x80000d40, 0x04020f00, 0x59300402, 0x48025c07, + 0x48065808, 0x4a025a05, 0x00000103, 0x4c040000, + 0x4c0c0000, 0x4c100000, 0x0201f800, 0x00108f22, + 0x5c002000, 0x5c001800, 0x5c000800, 0x8c102512, + 0x0402001a, 0x4c0c0000, 0x0201f800, 0x000203ab, + 0x0201f800, 0x00104126, 0x5c001800, 0x8c0c1d18, + 0x02000000, 0x00020a10, 0x0201f000, 0x00108b26, + 0x4813c857, 0x8c102518, 0x0400004d, 0x41780800, + 0x592c1c0a, 0x820c0580, 0x00001000, 0x040007d6, + 0x8c102512, 0x040007d4, 0x592c780a, 0x583c080b, + 0x583c1c0a, 0x0401f7d0, 0x4807c857, 0x592c780a, + 0x59300402, 0x592c1405, 0x8c08151e, 0x0402000d, + 0x592c1207, 0x48007c07, 0x48047808, 0x48087a07, + 0x84102512, 0x48107c09, 0x4c0c0000, 0x0201f800, + 0x00100589, 0x403e5800, 0x0401fb10, 0x0401f7d9, + 0x48025c07, 0x48065808, 0x583c080d, 0x583c000c, + 0x80040c00, 0x82041480, 0x0000001d, 0x04001006, + 0x583c1001, 0x480a5801, 0x49787801, 0x42000800, + 0x0000001c, 0x82040c00, 0x00000014, 0x4c0c0000, + 0x4c500000, 0x4c540000, 0x823ca400, 0x00000009, + 0x832cac00, 0x00000009, 0x4c100000, 0x4c3c0000, + 0x0401fb11, 0x5c007800, 0x5c002000, 0x5c00a800, + 0x5c00a000, 0x84102512, 0x48125c09, 0x403e5800, + 0x0201f800, 0x00100589, 0x0201f800, 0x00108f22, + 0x42034000, 0x0010b8fa, 0x59a1d806, 0x80edd9c0, + 0x02000800, 0x0010032d, 0x48efc857, 0x58ec0008, + 0x4803c857, 0x0801f800, 0x0401f7aa, 0x4933c857, + 0x1c01f000, 0x59301415, 0x480bc857, 0x8c08151c, + 0x0402000e, 0x80000540, 0x4803c857, 0x0400078b, + 0x80042c80, 0x04021789, 0x8c081514, 0x04020005, + 0x592c0810, 0x4807c857, 0x80040480, 0x48026017, + 0x8408155c, 0x480a6415, 0x59301008, 0x8408151e, + 0x480a6008, 0x4c100000, 0x4c3c0000, 0x4d400000, + 0x592e8207, 0x4a025a07, 0x00000001, 0x0201f800, + 0x00108f22, 0x49425a07, 0x5c028000, 0x5c007800, + 0x5c002000, 0x497a580a, 0x8c102512, 0x04000006, + 0x4d2c0000, 0x403e5800, 0x0201f800, 0x00100589, + 0x5c025800, 0x82102500, 0xffffedff, 0x48125c09, + 0x59301006, 0x800811c0, 0x02000000, 0x00108b66, + 0x59a8002c, 0x80080480, 0x02021000, 0x00108b66, + 0x4a025a05, 0x00000103, 0x4a025a07, 0x00000006, + 0x497a5c0a, 0x492fc857, 0x0201f800, 0x000203ab, + 0x0201f800, 0x00104126, 0x0201f000, 0x00020a10, + 0x59325809, 0x592c0409, 0x8c000518, 0x04000004, + 0x412df800, 0x0201f000, 0x00100bae, 0x1c01f000, + 0x4933c857, 0x59325809, 0x497a580a, 0x4a025a07, + 0x00000000, 0x4a025a05, 0x00000103, 0x59300812, + 0x4807c857, 0x800409c0, 0x0402000c, 0x48065808, + 0x59300c02, 0x48065c07, 0x0201f800, 0x00108f22, + 0x0201f800, 0x000203ab, 0x0201f800, 0x00104126, + 0x0201f000, 0x00020a10, 0x59340200, 0x8c00050e, + 0x04020005, 0x59300812, 0x0401fe33, 0x48065808, + 0x0401f7f0, 0x592c0209, 0x8c00050e, 0x040207fa, + 0x4933c857, 0x0201f000, 0x00108b66, 0x4933c857, + 0x59325809, 0x812e59c0, 0x02000800, 0x0010032d, + 0x592c020b, 0x8c000502, 0x02000800, 0x0010032d, + 0x4a026006, 0x00000002, 0x1c01f000, 0x5930001d, + 0x800001c0, 0x02020800, 0x001091d8, 0x59300008, + 0x4933c857, 0x4803c857, 0x8c00050e, 0x04000037, + 0x8c000500, 0x04000029, 0x8c00051c, 0x0400000a, + 0x84000500, 0x48026008, 0x59325809, 0x592c3c09, + 0x481fc857, 0x841c3d58, 0x481e5c09, 0x0201f000, + 0x00020a70, 0x59325809, 0x592c3c09, 0x841c3d58, + 0x59300008, 0x8c00051c, 0x040207f2, 0x481e5c09, + 0x42000000, 0x00000005, 0x40000000, 0x80000040, + 0x040207fe, 0x59300008, 0x8c00051c, 0x040207e9, + 0x592c0205, 0x82000500, 0x000000ff, 0x82000580, + 0x00000048, 0x04020003, 0x497a580c, 0x0401f002, + 0x497a580a, 0x481e5c09, 0x4a025a07, 0x00000000, + 0x0201f000, 0x00100b8f, 0x8c000524, 0x040007d9, + 0x59325809, 0x4c000000, 0x592c0409, 0x8c00051c, + 0x5c000000, 0x04020003, 0x4a026012, 0xffffffff, + 0x84000524, 0x0401f7cf, 0x1c01f000, 0x4933c857, + 0x41780800, 0x83380480, 0x00000058, 0x0402100b, + 0x83380480, 0x00000040, 0x04001008, 0x4d2c0000, + 0x59325809, 0x812e59c0, 0x0c020806, 0x5c025800, + 0x0201f000, 0x00020a10, 0x493bc857, 0x1c01f000, + 0x001082b8, 0x001082b8, 0x001082b8, 0x001082b8, + 0x001082b8, 0x001082ba, 0x001082b8, 0x001082b8, + 0x001082b8, 0x001082b8, 0x001082b8, 0x001082b8, + 0x001082b8, 0x001082b8, 0x001082b8, 0x001082b8, + 0x001082b8, 0x001082b8, 0x001082b8, 0x001082b8, + 0x001082bd, 0x001082b8, 0x001082b8, 0x001082b8, + 0x0201f800, 0x0010032d, 0x59cc0808, 0x497a5808, + 0x4807c857, 0x59300402, 0x48025c07, 0x4a025a05, + 0x00000103, 0x900401c0, 0x4802580a, 0x4a025a07, + 0x00000000, 0x800409c0, 0x02000000, 0x000203ab, + 0x59cc0009, 0x4802580b, 0x82042500, 0x00000100, + 0x04000002, 0x59cc200b, 0x4812580d, 0x82040500, + 0x00000200, 0x04000002, 0x59cc000a, 0x4802580c, + 0x80100c00, 0x02001800, 0x0010032d, 0x02000000, + 0x000203ab, 0x82041480, 0x0000001d, 0x04001006, + 0x592c0405, 0x8c00051e, 0x0400000e, 0x42000800, + 0x0000001c, 0x4c500000, 0x4c540000, 0x83cca400, + 0x0000000c, 0x832cac00, 0x0000000e, 0x0401f9ea, + 0x5c00a800, 0x5c00a000, 0x0201f000, 0x000203ab, + 0x0401f98f, 0x0401f1c9, 0x83380480, 0x00000093, + 0x02021800, 0x0010032d, 0x83380480, 0x00000085, + 0x02001800, 0x0010032d, 0x0c01f001, 0x00108306, + 0x00108304, 0x00108304, 0x0010830d, 0x00108304, + 0x00108304, 0x00108304, 0x00108304, 0x00108304, + 0x00108304, 0x00108304, 0x00108304, 0x00108304, + 0x0201f800, 0x0010032d, 0x4a026203, 0x00000001, + 0x493a6403, 0x42000800, 0x80000040, 0x0201f000, + 0x000209b1, 0x83300580, 0x0010f64c, 0x02020800, + 0x0010032d, 0x4933c857, 0x59cc1404, 0x0201f800, + 0x00108d91, 0x04000025, 0x591c0203, 0x82000580, + 0x00000000, 0x04000021, 0x591c000a, 0x81340580, + 0x0402001e, 0x59cc1204, 0x82080580, 0x0000ffff, + 0x04000007, 0x591c0202, 0x82000d80, 0x0000ffff, + 0x04000003, 0x80080580, 0x04020014, 0x4d300000, + 0x4d1c0000, 0x411e6000, 0x0401fa06, 0x5c023800, + 0x5c026000, 0x0400000b, 0x59cc0005, 0x8c000500, + 0x04020003, 0x0401f9a9, 0x0401f003, 0x4a023a03, + 0x00000002, 0x4a026403, 0x00000086, 0x0401f005, + 0x0401f9ea, 0x040007f5, 0x4a026403, 0x00000087, + 0x4d2c0000, 0x0201f800, 0x0010a5eb, 0x0201f800, + 0x001044a8, 0x5c025800, 0x59340200, 0x8c00050e, + 0x0400000d, 0x59cc1404, 0x0201f800, 0x00108d91, + 0x04000009, 0x591c0415, 0x8c00051a, 0x04000006, + 0x4d300000, 0x411e6000, 0x0201f800, 0x00108b7b, + 0x5c026000, 0x1c01f000, 0x83380580, 0x00000013, + 0x0402000b, 0x59300403, 0x4803c857, 0x82000d80, + 0x00000086, 0x04000020, 0x82000d80, 0x00000087, + 0x02020800, 0x0010032d, 0x0401f01b, 0x83380580, + 0x00000027, 0x04000005, 0x83380580, 0x00000014, + 0x02020800, 0x0010032d, 0x493bc857, 0x0201f800, + 0x00106102, 0x0201f800, 0x00108953, 0x02000000, + 0x00107144, 0x4d2c0000, 0x59325809, 0x0201f800, + 0x000203ab, 0x59300a1e, 0x82040d80, 0x00000003, + 0x02000800, 0x00108a55, 0x5c025800, 0x0201f000, + 0x00107144, 0x4933c857, 0x0201f000, 0x00020a10, + 0x83380580, 0x00000013, 0x04020006, 0x59300403, + 0x4803c857, 0x82000480, 0x00000085, 0x0c01f053, + 0x83380580, 0x00000027, 0x04020047, 0x4933c857, + 0x0201f800, 0x00106102, 0x4d3c0000, 0x417a7800, + 0x0201f800, 0x0010e06f, 0x5c027800, 0x42003000, + 0x00000015, 0x41782800, 0x42002000, 0x00000003, + 0x42028000, 0x00000029, 0x4d400000, 0x4d440000, + 0x59368c03, 0x0201f800, 0x001091ea, 0x5c028800, + 0x5c028000, 0x42000000, 0x0010bd1d, 0x0201f800, + 0x0010ae10, 0x0201f800, 0x00108953, 0x02000000, + 0x00020a10, 0x4d2c0000, 0x59325809, 0x592c0205, + 0x82000500, 0x000000ff, 0x82000580, 0x00000014, + 0x02020800, 0x00108a55, 0x4a025a05, 0x00000103, + 0x59300402, 0x48025c07, 0x497a580a, 0x49425a07, + 0x0201f800, 0x000203ab, 0x5c025800, 0x0201f000, + 0x00020a10, 0x83380580, 0x00000089, 0x04000005, + 0x83380580, 0x0000008a, 0x02020000, 0x001071c7, + 0x0201f800, 0x001064f2, 0x02020000, 0x001071c7, + 0x59300a03, 0x82040580, 0x0000000a, 0x0400002a, + 0x82040580, 0x0000000c, 0x04000027, 0x0201f800, + 0x0010032d, 0x83380580, 0x00000014, 0x040207ea, + 0x4933c857, 0x0201f800, 0x00106102, 0x42028000, + 0x00000006, 0x0401f7cc, 0x001083e5, 0x001083e3, + 0x001083e3, 0x001083e3, 0x001083e3, 0x001083e3, + 0x001083eb, 0x001083e3, 0x001083e3, 0x001083e3, + 0x001083e3, 0x001083e3, 0x001083e3, 0x0201f800, + 0x0010032d, 0x4933c857, 0x59a8002a, 0x48026006, + 0x4a026203, 0x0000000a, 0x1c01f000, 0x4933c857, + 0x59a8002a, 0x48026006, 0x4a026203, 0x0000000c, + 0x1c01f000, 0x5932680a, 0x83380580, 0x00000089, + 0x04000008, 0x83380580, 0x0000008a, 0x04000029, + 0x4933c857, 0x493bc857, 0x0201f000, 0x001071c7, + 0x4933c857, 0x59325809, 0x59300a1e, 0x82040580, + 0x00000003, 0x0402000a, 0x0201f800, 0x00108953, + 0x04000012, 0x0201f800, 0x000203ab, 0x0201f800, + 0x00104126, 0x497a6009, 0x0401f00c, 0x5930021e, + 0x82000580, 0x00000001, 0x04020008, 0x59300c17, + 0x82040580, 0x00000039, 0x0400001d, 0x82040580, + 0x00000035, 0x0400001a, 0x59cc0c07, 0x4806641a, + 0x59cc0a07, 0x4806621a, 0x59300203, 0x4802641e, + 0x4a026203, 0x00000011, 0x0201f000, 0x00107144, + 0x4933c857, 0x5930021e, 0x82000580, 0x00000001, + 0x04020048, 0x59300c17, 0x82040580, 0x00000035, + 0x04000007, 0x82040580, 0x0000001e, 0x04000004, + 0x82040580, 0x00000039, 0x0402003e, 0x4933c857, + 0x4c5c0000, 0x4c600000, 0x4d1c0000, 0x4130b800, + 0x4004c000, 0x0201f800, 0x00108d34, 0x0402002f, + 0x82600580, 0x00000035, 0x04020004, 0x591c0c15, + 0x8c040d02, 0x04000029, 0x0201f800, 0x00107188, + 0x04000026, 0x491fc857, 0x4933c857, 0x82600580, + 0x00000035, 0x04000004, 0x82600580, 0x00000039, + 0x04020002, 0x4932381d, 0x48626403, 0x4a026203, + 0x00000001, 0x4a026407, 0x00000001, 0x585c080a, + 0x4807c857, 0x4806600a, 0x585c0c16, 0x4807c857, + 0x48066416, 0x585c0a16, 0x4807c857, 0x48066216, + 0x585c0a17, 0x4807c857, 0x48066217, 0x585c0c1a, + 0x4807c857, 0x4806641a, 0x585c0a1a, 0x4807c857, + 0x4806621a, 0x491e601f, 0x42000800, 0x80000040, + 0x0201f800, 0x000209b1, 0x405e6000, 0x5c023800, + 0x5c00c000, 0x5c00b800, 0x0201f000, 0x00020a10, + 0x0201f800, 0x00108953, 0x0400000b, 0x4d2c0000, + 0x59325809, 0x0201f800, 0x000203ab, 0x5930021e, + 0x82000580, 0x00000003, 0x02000800, 0x00104126, + 0x5c025800, 0x0201f000, 0x00020a10, 0x4803c856, + 0x4c500000, 0x4c540000, 0x412c7800, 0x4c3c0000, + 0x42002800, 0x00000001, 0x82040480, 0x00000101, + 0x04001003, 0x42000800, 0x00000100, 0x40043000, + 0x42000800, 0x0000001c, 0x83cca400, 0x0000000c, + 0x832cac00, 0x0000000e, 0x0401f843, 0x82183480, + 0x0000001c, 0x592e5801, 0x812e59c0, 0x02020800, + 0x00100589, 0x0201f800, 0x0010056f, 0x04000016, + 0x80142800, 0x4a025805, 0x00000110, 0x492c7801, + 0x82180c80, 0x0000003d, 0x04021006, 0x40180800, + 0x832cac00, 0x00000006, 0x0401f82f, 0x0401f00a, + 0x82183480, 0x0000003c, 0x42000800, 0x0000003c, + 0x412c7800, 0x832cac00, 0x00000006, 0x0401f826, + 0x0401f7e9, 0x5c007800, 0x841429c0, 0x82142d40, + 0x00000003, 0x48147a05, 0x403e5800, 0x5c00a800, + 0x5c00a000, 0x1c01f000, 0x492fc857, 0x812e59c0, + 0x0400000f, 0x4d2c0000, 0x4c3c0000, 0x592c7801, + 0x803c79c0, 0x04000006, 0x497a5801, 0x0201f800, + 0x000203ab, 0x403e5800, 0x0401f7f9, 0x5c007800, + 0x0201f800, 0x000203ab, 0x5c025800, 0x1c01f000, + 0x4803c856, 0x4c580000, 0x82040400, 0x00000003, + 0x8000b104, 0x0201f800, 0x0010aee2, 0x5c00b000, + 0x1c01f000, 0x4803c856, 0x4c580000, 0x82040c00, + 0x00000003, 0x8004b104, 0x0201f800, 0x0010aee2, + 0x5c00b000, 0x1c01f000, 0x591c0c07, 0x82040580, + 0x00000003, 0x04000007, 0x82040580, 0x00000002, + 0x04000004, 0x82040580, 0x0000000a, 0x0402002d, + 0x4d300000, 0x4d2c0000, 0x411e6000, 0x59325809, + 0x0201f800, 0x00108953, 0x04000022, 0x59300c07, + 0x82040580, 0x0000000a, 0x04000023, 0x82040580, + 0x00000003, 0x04020009, 0x592c0a05, 0x82040d00, + 0x000000ff, 0x82040d80, 0x00000014, 0x04000003, + 0x4a02621e, 0x00000003, 0x0401f81c, 0x4d400000, + 0x42028000, 0x00000013, 0x592c0a09, 0x84040d54, + 0x0201f800, 0x00104543, 0x5c028000, 0x0201f800, + 0x00108f22, 0x0201f800, 0x000203ab, 0x5930021e, + 0x82000580, 0x00000003, 0x02000800, 0x00108a55, + 0x0201f800, 0x00107144, 0x5c025800, 0x5c026000, + 0x1c01f000, 0x4a025a07, 0x00000013, 0x4a02621e, + 0x0000000a, 0x0401f7ee, 0x592c0409, 0x8c000512, + 0x04000009, 0x84000512, 0x48025c09, 0x4d2c0000, + 0x592e580a, 0x0201f800, 0x00100589, 0x5c025800, + 0x497a580a, 0x1c01f000, 0x59cc0005, 0x8c000500, + 0x0402000b, 0x591c0407, 0x82000580, 0x00000002, + 0x04020007, 0x591c0c03, 0x82040580, 0x00000085, + 0x04000003, 0x82040580, 0x0000008b, 0x1c01f000, + 0x4933c857, 0x4d3c0000, 0x42027800, 0x00000002, 0x59300407, 0x82000c80, 0x00000014, 0x02021800, - 0x0010032d, 0x0c01f001, 0x001084a7, 0x001084a4, - 0x001084a4, 0x001084d8, 0x001084a2, 0x001084a4, - 0x001084bf, 0x001084a4, 0x001084a2, 0x00105e8f, - 0x00109267, 0x001084a4, 0x001084a4, 0x001084a2, - 0x001084a2, 0x001084a2, 0x001085ca, 0x001084a4, - 0x0010ab98, 0x0010ab98, 0x0201f800, 0x0010032d, - 0x4803c856, 0x80000580, 0x1c01f000, 0x4803c856, - 0x8d3e7d02, 0x04020015, 0x0401fbf0, 0x0400000f, - 0x59325809, 0x41780800, 0x4d400000, 0x42028000, - 0x00000005, 0x0201f800, 0x00104504, 0x5c028000, - 0x0201f800, 0x00108e69, 0x0201f800, 0x00108a48, - 0x0201f800, 0x000203ab, 0x0201f800, 0x001070b5, - 0x82000540, 0x00000001, 0x1c01f000, 0x4933c857, - 0x0201f800, 0x001040aa, 0x0400000b, 0x59300415, - 0x84000556, 0x48026415, 0x0401f812, 0x4df00000, - 0x59300415, 0x84000516, 0x48026415, 0x5c03e000, - 0x1c01f000, 0x4d400000, 0x42028000, 0x00000010, - 0x0201f800, 0x00109d73, 0x4a026407, 0x00000006, - 0x4a026203, 0x00000007, 0x5c028000, 0x1c01f000, - 0x4933c857, 0x0201f800, 0x0010610d, 0x4df00000, - 0x0401f8da, 0x82000c80, 0x0000000e, 0x02021800, - 0x0010032d, 0x0c01f001, 0x001084f2, 0x00108575, - 0x00108509, 0x00108589, 0x00108570, 0x001084f0, - 0x001084f2, 0x001084f2, 0x001084f6, 0x001084f2, - 0x001084f2, 0x001084f2, 0x001084f2, 0x00108509, - 0x0201f800, 0x0010032d, 0x5c03e000, 0x02000800, - 0x001060fa, 0x0401f7af, 0x5c03e000, 0x02000800, - 0x001060fa, 0x59300407, 0x82000580, 0x00000003, - 0x040207ab, 0x59300203, 0x82000580, 0x0000000d, - 0x040007a7, 0x8d3e7d02, 0x040207a5, 0x4d340000, - 0x5932680a, 0x0201f800, 0x0010410c, 0x5c026800, - 0x0401f79f, 0x0201f800, 0x001092d9, 0x59300004, - 0x8400055c, 0x48026004, 0x0201f800, 0x001060fa, - 0x59300407, 0x82000580, 0x00000006, 0x04000057, - 0x8d3e7d02, 0x04020055, 0x497a621e, 0x59300203, - 0x82000580, 0x0000000d, 0x04000003, 0x4a02621e, - 0x00000003, 0x0401fb7d, 0x04020004, 0x8d3e7d00, - 0x04000040, 0x0401f034, 0x4d2c0000, 0x4d400000, - 0x59325809, 0x0201f800, 0x00108a48, 0x592c0409, - 0x8c000512, 0x04000009, 0x4d2c0000, 0x84000512, - 0x48025c09, 0x592c080a, 0x40065800, 0x0201f800, - 0x00100589, 0x5c025800, 0x4d400000, 0x42028000, - 0x00000005, 0x592c0a09, 0x8c040d0e, 0x04000004, - 0x42028000, 0x00000002, 0x0401f001, 0x0201f800, - 0x00104504, 0x5c028000, 0x0201f800, 0x00108e69, - 0x8d3e7d00, 0x04020004, 0x0201f800, 0x0010ae30, - 0x04020004, 0x0201f800, 0x000203ab, 0x497a6009, - 0x5c028000, 0x5c025800, 0x8d3e7d00, 0x0400000d, - 0x59300a1e, 0x82040d80, 0x00000003, 0x04020006, - 0x4d340000, 0x5932680a, 0x0201f800, 0x0010410c, - 0x5c026800, 0x0201f800, 0x001070b5, 0x0401f013, - 0x0201f800, 0x0010ae30, 0x04020006, 0x59300a1e, - 0x82040d80, 0x00000003, 0x02000800, 0x0010899c, - 0x4a026403, 0x00000085, 0x4a026203, 0x00000009, - 0x4a026407, 0x00000002, 0x42000800, 0x8000404b, - 0x0201f800, 0x000209b1, 0x5c03e000, 0x02020800, - 0x0010610d, 0x82000540, 0x00000001, 0x1c01f000, - 0x0201f800, 0x001060fa, 0x0201f800, 0x00100bd4, - 0x0401f795, 0x598c000f, 0x81300580, 0x04020004, - 0x0201f800, 0x00106388, 0x0402001d, 0x0201f800, - 0x0010e343, 0x80c40040, 0x04020006, 0x59300c03, - 0x82040580, 0x00000040, 0x04000774, 0x0401f786, - 0x0201f800, 0x00106018, 0x04000011, 0x0201f800, - 0x0010032d, 0x0401f81b, 0x04020004, 0x0201f800, - 0x00106351, 0x0402000a, 0x0201f800, 0x0010e1ca, - 0x80c40040, 0x040207f3, 0x59300c03, 0x82040580, - 0x00000040, 0x04000761, 0x0401f773, 0x59300203, - 0x82000c80, 0x0000000e, 0x02021800, 0x0010032d, - 0x0c01f746, 0x0401f807, 0x42018800, 0x00000001, - 0x04000003, 0x42018800, 0x00000000, 0x1c01f000, - 0x417a3000, 0x42032000, 0x0000bf32, 0x59900004, - 0x81300580, 0x04000009, 0x83932400, 0x00000010, - 0x811a3000, 0x83180480, 0x00000005, 0x040017f8, - 0x82000540, 0x00000001, 0x1c01f000, 0x0401f803, - 0x40018800, 0x1c01f000, 0x59300004, 0x8c00053e, - 0x04000010, 0x8c00050c, 0x0402000e, 0x8c000516, - 0x04020006, 0x82000d00, 0x0000001f, 0x82040580, - 0x00000005, 0x04020004, 0x42000000, 0x00000003, - 0x0401f005, 0x42000000, 0x00000001, 0x0401f002, - 0x59300203, 0x1c01f000, 0x4933c857, 0x0201f800, - 0x0010610d, 0x4df00000, 0x59300203, 0x82000c80, - 0x0000000e, 0x02021800, 0x0010032d, 0x0c01f001, - 0x001085e4, 0x00108601, 0x001085e8, 0x001085e2, - 0x001085e2, 0x001085e2, 0x001085e2, 0x001085e2, - 0x001085e2, 0x001085e2, 0x001085e2, 0x001085e2, - 0x001085e2, 0x001085e2, 0x0201f800, 0x0010032d, - 0x5c03e000, 0x02000800, 0x001060fa, 0x0401f6bd, - 0x5c03e000, 0x02000800, 0x001060fa, 0x4d2c0000, - 0x59325809, 0x59300403, 0x82000580, 0x00000052, - 0x02000800, 0x00100fb9, 0x0401faa8, 0x02000800, - 0x0010032d, 0x4a025a07, 0x00000005, 0x0201f800, - 0x000203ab, 0x0201f800, 0x001043c3, 0x0201f800, - 0x001070b5, 0x5c025800, 0x82000540, 0x00000001, - 0x1c01f000, 0x598c000f, 0x81300580, 0x0402001b, - 0x59300004, 0x8c000520, 0x04000004, 0x84000520, - 0x48026004, 0x0401f01b, 0x42001000, 0x0010bb55, - 0x50081000, 0x58080002, 0x82000580, 0x00000100, - 0x0400000b, 0x5808000b, 0x81300580, 0x02020800, - 0x0010032d, 0x0201f800, 0x0010e343, 0x80c40040, - 0x02020800, 0x0010032d, 0x0401f7ce, 0x0201f800, - 0x00106388, 0x0402000d, 0x59300004, 0x8c000520, - 0x04000004, 0x84000520, 0x48026004, 0x0401f7c5, - 0x0201f800, 0x0010e343, 0x80c40040, 0x040007c1, - 0x0201f800, 0x0010032d, 0x59300203, 0x82000c80, - 0x0000000e, 0x02021800, 0x0010032d, 0x0c01f7a5, - 0x4d340000, 0x5932680a, 0x59300407, 0x4933c857, - 0x4803c857, 0x82000c80, 0x00000014, 0x02021800, - 0x0010032d, 0x0c01f803, 0x5c026800, 0x1c01f000, - 0x00108655, 0x00108681, 0x001087c7, 0x0010e95c, - 0x001087ba, 0x001087c2, 0x00109d62, 0x00108661, - 0x001087b5, 0x00105e77, 0x00108835, 0x00108650, - 0x00108650, 0x00108650, 0x00108650, 0x00020a10, - 0x00108fb8, 0x00108fb8, 0x0010aba8, 0x0010aba8, - 0x0201f800, 0x0010032d, 0x0401fb78, 0x02000000, - 0x00107851, 0x1c01f000, 0x0201f800, 0x0010610d, - 0x0201f800, 0x0010605d, 0x0201f800, 0x001060fa, - 0x0201f000, 0x00020a10, 0x4a026006, 0x00000001, - 0x1c01f000, 0x4d340000, 0x4c5c0000, 0x59300203, - 0x82000580, 0x00000011, 0x04020016, 0x5932680a, - 0x4130b800, 0x0201f800, 0x000209ee, 0x04000010, - 0x4a026203, 0x00000001, 0x4a026403, 0x0000001e, - 0x585c041a, 0x4802641a, 0x585c021a, 0x4802621a, - 0x4936600a, 0x4a026407, 0x00000001, 0x42000800, - 0x80000040, 0x0201f800, 0x000209b1, 0x405e6000, - 0x0201f800, 0x00020a10, 0x5c00b800, 0x5c026800, - 0x1c01f000, 0x42000000, 0x0010bc28, 0x0201f800, - 0x0010ad1d, 0x0201f800, 0x0010a58e, 0x59300203, - 0x82000c80, 0x0000000e, 0x02021800, 0x0010032d, - 0x4803c857, 0x0c01f001, 0x0010869c, 0x0010865e, - 0x0010869e, 0x0010869c, 0x0010869e, 0x0010869e, - 0x00108656, 0x0010869c, 0x00108652, 0x0010869c, - 0x0010869c, 0x0010869c, 0x0010869c, 0x0010869c, - 0x0201f800, 0x0010032d, 0x4d2c0000, 0x59340400, - 0x82000500, 0x000000ff, 0x82000c80, 0x0000000c, - 0x02021800, 0x0010032d, 0x59303403, 0x82180d80, - 0x00000004, 0x04020004, 0x42000000, 0x00000001, - 0x0401f006, 0x82180d80, 0x00000000, 0x04020003, - 0x42000000, 0x00000001, 0x4803c857, 0x0c01f803, - 0x5c025800, 0x1c01f000, 0x001086c2, 0x00108762, - 0x001086c4, 0x001086f9, 0x001086c4, 0x0010877f, - 0x001086c4, 0x001086ce, 0x001086c2, 0x0010877f, - 0x001086c2, 0x001086dd, 0x0201f800, 0x0010032d, - 0x59300403, 0x82000d80, 0x00000016, 0x0400002e, - 0x82000d80, 0x00000004, 0x0400002b, 0x82000d80, - 0x00000002, 0x04000028, 0x0401fafc, 0x04000026, - 0x59300403, 0x82000d80, 0x00000022, 0x040000af, - 0x82000d80, 0x00000039, 0x040000b4, 0x82000d80, - 0x00000035, 0x040000b1, 0x82000d80, 0x0000001e, - 0x0400001b, 0x0401f9bd, 0x04000007, 0x0201f800, - 0x00108e64, 0x04020004, 0x0201f800, 0x001041a0, - 0x0401f011, 0x59300403, 0x82000d80, 0x00000001, - 0x04020004, 0x0201f800, 0x00104165, 0x0400000a, - 0x4d3c0000, 0x417a7800, 0x0201f800, 0x0010df61, - 0x5c027800, 0x42000000, 0x0010bc1d, 0x0201f800, - 0x0010ad1d, 0x0201f800, 0x00107851, 0x0201f000, - 0x001070b5, 0x0401f9a1, 0x04000004, 0x0201f800, - 0x00108e64, 0x040000a6, 0x59300c03, 0x82040580, - 0x00000016, 0x04000057, 0x82040580, 0x00000002, - 0x0402002f, 0x59a8021b, 0x8c000502, 0x04020016, - 0x59a81073, 0x8c08153e, 0x04020013, 0x0201f800, - 0x00104716, 0x04020010, 0x0201f800, 0x00104741, - 0x04020006, 0x42000000, 0x00000001, 0x0201f800, - 0x001046e7, 0x0401f08e, 0x4a035014, 0x00000001, - 0x4202d800, 0x00000001, 0x0201f800, 0x00104670, - 0x0401f087, 0x59340412, 0x82000500, 0x000000ff, - 0x04000013, 0x80000040, 0x48026c12, 0x497a6205, - 0x4d300000, 0x0201f800, 0x001070f5, 0x5c000000, - 0x0400000a, 0x49780009, 0x4a000407, 0x00000007, - 0x4a000006, 0x00000398, 0x4936600a, 0x4a026407, - 0x00000001, 0x0401f027, 0x40026000, 0x59300403, - 0x82000d80, 0x00000002, 0x04020010, 0x59340403, - 0x82000580, 0x000007fe, 0x0402000c, 0x59a81073, - 0x8c08153e, 0x04020004, 0x59a8021b, 0x84000540, - 0x4803521b, 0x0201f800, 0x00103a22, 0x0201f800, - 0x00107851, 0x0401f00c, 0x0201f800, 0x00107851, - 0x4d3c0000, 0x417a7800, 0x0201f800, 0x0010df61, - 0x5c027800, 0x42000000, 0x0010bc1d, 0x0201f800, - 0x0010ad1d, 0x59a81073, 0x8c08153e, 0x04020003, - 0x0201f800, 0x00101a67, 0x0201f000, 0x001070b5, - 0x42000800, 0x00000003, 0x0201f800, 0x00103d8a, - 0x4a026203, 0x00000001, 0x4a026403, 0x00000002, - 0x0201f000, 0x00105fe8, 0x0401f938, 0x04020792, - 0x0201f800, 0x00101a67, 0x4d3c0000, 0x417a7800, - 0x0201f800, 0x0010df61, 0x5c027800, 0x42000000, - 0x0010bc1d, 0x0201f800, 0x0010ad1d, 0x42003000, - 0x00000018, 0x41782800, 0x42002000, 0x00000000, - 0x4d400000, 0x4d440000, 0x59368c03, 0x42028000, - 0x00000029, 0x0201f800, 0x00109131, 0x5c028800, - 0x5c028000, 0x0201f000, 0x001070b5, 0x0201f800, - 0x001041a0, 0x0401f7c5, 0x42000000, 0x0010bc27, - 0x0201f800, 0x0010ad1d, 0x0201f800, 0x00107363, - 0x040207be, 0x1c01f000, 0x59300c03, 0x0201f800, - 0x00108c7b, 0x02020000, 0x00020a10, 0x836c0580, - 0x00000003, 0x04000004, 0x4a026006, 0x00000002, - 0x1c01f000, 0x59300403, 0x48026417, 0x4a02621e, - 0x00000001, 0x4a026403, 0x00000085, 0x4a026203, - 0x00000009, 0x4a026407, 0x00000002, 0x42000800, - 0x8000004b, 0x0201f000, 0x000209b1, 0x0201f800, - 0x00107851, 0x4d3c0000, 0x417a7800, 0x0201f800, - 0x0010df61, 0x5c027800, 0x42000000, 0x0010bc1d, - 0x0201f800, 0x0010ad1d, 0x497a6009, 0x4a026407, - 0x00000007, 0x4a026006, 0x00000398, 0x497a6205, - 0x1c01f000, 0x42000000, 0x0010bc2e, 0x0201f800, - 0x0010ad1d, 0x0401f6c8, 0x42000000, 0x0010bc29, - 0x0201f800, 0x0010ad1d, 0x0201f800, 0x0010a58e, - 0x0201f000, 0x001070b5, 0x42000000, 0x0010bc2b, - 0x0201f800, 0x0010ad1d, 0x1c01f000, 0x42000000, - 0x0010bc2a, 0x0201f800, 0x0010ad1d, 0x59300203, - 0x82000c80, 0x0000000e, 0x02021800, 0x0010032d, - 0x4803c857, 0x0c01f001, 0x001087e0, 0x0010865e, - 0x001087e0, 0x001087e0, 0x001087e0, 0x001087e0, - 0x001087e0, 0x001087e0, 0x001087e0, 0x0010865e, - 0x001087e2, 0x0010865e, 0x001087ea, 0x001087e0, - 0x0201f800, 0x0010032d, 0x4a026403, 0x0000008b, - 0x4a026203, 0x0000000b, 0x42000800, 0x8000404b, - 0x0201f000, 0x000209b1, 0x59300a1e, 0x0401f8af, - 0x0400000f, 0x4d2c0000, 0x59325809, 0x4a025a07, - 0x00000006, 0x497a5c0a, 0x0201f800, 0x000203ab, + 0x0010032d, 0x0c01f80a, 0x5c027800, 0x1c01f000, + 0x4933c857, 0x59300407, 0x82000c80, 0x00000014, + 0x02021800, 0x0010032d, 0x0c01f001, 0x0010855c, + 0x00108559, 0x00108559, 0x0010858d, 0x00108557, + 0x00108559, 0x00108574, 0x00108559, 0x00108557, + 0x00105f34, 0x0010931f, 0x00108559, 0x00108559, + 0x00108557, 0x00108557, 0x00108557, 0x0010867f, + 0x00108559, 0x0010ac8b, 0x0010ac8b, 0x0201f800, + 0x0010032d, 0x4803c856, 0x80000580, 0x1c01f000, + 0x4803c856, 0x8d3e7d02, 0x04020015, 0x0401fbf4, + 0x0400000f, 0x59325809, 0x41780800, 0x4d400000, + 0x42028000, 0x00000005, 0x0201f800, 0x00104543, + 0x5c028000, 0x0201f800, 0x00108f22, 0x0201f800, + 0x00108b01, 0x0201f800, 0x000203ab, 0x0201f800, + 0x00107144, 0x82000540, 0x00000001, 0x1c01f000, + 0x4933c857, 0x0201f800, 0x001040c4, 0x0400000b, + 0x59300415, 0x84000556, 0x48026415, 0x0401f812, + 0x4df00000, 0x59300415, 0x84000516, 0x48026415, + 0x5c03e000, 0x1c01f000, 0x4d400000, 0x42028000, + 0x00000010, 0x0201f800, 0x00109e4a, 0x4a026407, + 0x00000006, 0x4a026203, 0x00000007, 0x5c028000, + 0x1c01f000, 0x4933c857, 0x0201f800, 0x001061b2, + 0x4df00000, 0x0401f8da, 0x82000c80, 0x0000000e, + 0x02021800, 0x0010032d, 0x0c01f001, 0x001085a7, + 0x0010862a, 0x001085be, 0x0010863e, 0x00108625, + 0x001085a5, 0x001085a7, 0x001085a7, 0x001085ab, + 0x001085a7, 0x001085a7, 0x001085a7, 0x001085a7, + 0x001085be, 0x0201f800, 0x0010032d, 0x5c03e000, + 0x02000800, 0x0010619f, 0x0401f7af, 0x5c03e000, + 0x02000800, 0x0010619f, 0x59300407, 0x82000580, + 0x00000003, 0x040207ab, 0x59300203, 0x82000580, + 0x0000000d, 0x040007a7, 0x8d3e7d02, 0x040207a5, + 0x4d340000, 0x5932680a, 0x0201f800, 0x00104126, + 0x5c026800, 0x0401f79f, 0x0201f800, 0x00109391, + 0x59300004, 0x8400055c, 0x48026004, 0x0201f800, + 0x0010619f, 0x59300407, 0x82000580, 0x00000006, + 0x04000057, 0x8d3e7d02, 0x04020055, 0x497a621e, + 0x59300203, 0x82000580, 0x0000000d, 0x04000003, + 0x4a02621e, 0x00000003, 0x0401fb81, 0x04020004, + 0x8d3e7d00, 0x04000040, 0x0401f034, 0x4d2c0000, + 0x4d400000, 0x59325809, 0x0201f800, 0x00108b01, + 0x592c0409, 0x8c000512, 0x04000009, 0x4d2c0000, + 0x84000512, 0x48025c09, 0x592c080a, 0x40065800, + 0x0201f800, 0x00100589, 0x5c025800, 0x4d400000, + 0x42028000, 0x00000005, 0x592c0a09, 0x8c040d0e, + 0x04000004, 0x42028000, 0x00000002, 0x0401f001, + 0x0201f800, 0x00104543, 0x5c028000, 0x0201f800, + 0x00108f22, 0x8d3e7d00, 0x04020004, 0x0201f800, + 0x0010af23, 0x04020004, 0x0201f800, 0x000203ab, + 0x497a6009, 0x5c028000, 0x5c025800, 0x8d3e7d00, + 0x0400000d, 0x59300a1e, 0x82040d80, 0x00000003, + 0x04020006, 0x4d340000, 0x5932680a, 0x0201f800, + 0x00104126, 0x5c026800, 0x0201f800, 0x00107144, + 0x0401f013, 0x0201f800, 0x0010af23, 0x04020006, 0x59300a1e, 0x82040d80, 0x00000003, 0x02000800, - 0x0010410c, 0x5c025800, 0x497a6009, 0x4d3c0000, - 0x417a7800, 0x0201f800, 0x0010df61, 0x5c027800, - 0x42003000, 0x00000011, 0x0201f800, 0x0010a4ae, - 0x42000000, 0x0010bc1d, 0x0201f800, 0x0010ad1d, - 0x4c5c0000, 0x4130b800, 0x0201f800, 0x001070f5, - 0x04000008, 0x4936600a, 0x4d300000, 0x405e6000, - 0x0201f800, 0x001070b5, 0x5c026000, 0x0401f002, - 0x405e6000, 0x5c00b800, 0x497a6009, 0x4a026407, - 0x00000001, 0x4a026403, 0x00000001, 0x8d0e1d20, - 0x04000011, 0x4a026407, 0x00000004, 0x4a026203, - 0x00000007, 0x4a026421, 0x00000001, 0x42003000, - 0x00000004, 0x4d400000, 0x42028000, 0x00000029, - 0x41782800, 0x0201f800, 0x00109f37, 0x5c028000, - 0x1c01f000, 0x42000800, 0x0000000b, 0x0201f800, - 0x00103d8a, 0x4a026203, 0x00000001, 0x0201f000, - 0x00105fe8, 0x42000000, 0x0010bc30, 0x0201f800, - 0x0010ad1d, 0x59300203, 0x82000c80, 0x0000000e, - 0x02021800, 0x0010032d, 0x4803c857, 0x0c01f001, - 0x00108866, 0x0010884e, 0x00108852, 0x00108867, - 0x00108850, 0x0010884e, 0x0010884e, 0x0010884e, - 0x0010884e, 0x0010884e, 0x0010884e, 0x0010884e, - 0x0010884e, 0x0010884e, 0x0201f800, 0x0010032d, - 0x0201f800, 0x00100bd4, 0x4d2c0000, 0x59325809, - 0x4a025a07, 0x00000006, 0x0201f800, 0x000203ab, - 0x5c025800, 0x497a6009, 0x4a02621e, 0x0000000a, - 0x4a026403, 0x00000085, 0x4a026203, 0x00000009, - 0x4a026407, 0x00000002, 0x42000800, 0x8000404b, - 0x0201f000, 0x000209b1, 0x1c01f000, 0x0201f800, - 0x0010610d, 0x4df00000, 0x0401fd3a, 0x04020004, - 0x0201f800, 0x00106351, 0x0402000d, 0x0201f800, - 0x0010e1ca, 0x80c40040, 0x04020005, 0x5c03e000, - 0x0201f800, 0x001060fa, 0x0401f7dc, 0x0201f800, - 0x00106018, 0x02020800, 0x0010032d, 0x5c03e000, - 0x0201f800, 0x001060fa, 0x59300203, 0x82000d80, - 0x00000003, 0x02000800, 0x0010032d, 0x82000c80, - 0x0000000e, 0x02021800, 0x0010032d, 0x0c01f7b9, - 0x59a8000d, 0x59a8084f, 0x80040400, 0x80080480, - 0x04021004, 0x82000540, 0x00000001, 0x1c01f000, - 0x480bc857, 0x80000580, 0x1c01f000, 0x0401f807, - 0x42018800, 0x00000000, 0x04000003, 0x42018800, - 0x00000001, 0x1c01f000, 0x4c040000, 0x59300809, - 0x59a8000c, 0x80040480, 0x04001007, 0x59a8000a, - 0x80040480, 0x04021004, 0x800409c0, 0x5c000800, - 0x1c01f000, 0x800409c0, 0x02020800, 0x0010032d, - 0x4803c856, 0x0401f7fa, 0x4803c856, 0x4d300000, - 0x0201f800, 0x000209ee, 0x0400000a, 0x0401f832, - 0x4d380000, 0x42027000, 0x0000004b, 0x0201f800, - 0x00020a34, 0x5c027000, 0x82000540, 0x00000001, - 0x5c026000, 0x1c01f000, 0x4803c856, 0x4d300000, - 0x0201f800, 0x001070f5, 0x0400001e, 0x0401f822, - 0x4d300000, 0x0201f800, 0x0010610d, 0x4df00000, - 0x4d3c0000, 0x42027800, 0x00002000, 0x0201f800, - 0x0010e5a4, 0x0201f800, 0x0010e63d, 0x0201f800, - 0x0010ea62, 0x5c027800, 0x5c03e000, 0x02000800, - 0x001060fa, 0x5c026000, 0x8d3e7d3e, 0x0402000b, - 0x4d380000, 0x42027000, 0x0000004c, 0x0201f800, - 0x00020a34, 0x5c027000, 0x82000540, 0x00000001, - 0x5c026000, 0x1c01f000, 0x0201f800, 0x00020a10, - 0x0401f7fa, 0x592c0408, 0x494a6018, 0x494e6019, - 0x4936600a, 0x492e6009, 0x4a026407, 0x00000003, - 0x800000c2, 0x800008c4, 0x80040400, 0x48026006, - 0x1c01f000, 0x493bc857, 0x4d300000, 0x0201f800, - 0x000209ee, 0x0400000d, 0x0401ffef, 0x4d400000, - 0x42028000, 0x00000005, 0x0401f80d, 0x5c028000, - 0x8d3e7d3e, 0x04020007, 0x0201f800, 0x00020a34, - 0x82000540, 0x00000001, 0x5c026000, 0x1c01f000, - 0x0201f800, 0x00020a10, 0x0401f7fa, 0x4803c856, - 0x0201f800, 0x0010610d, 0x4df00000, 0x4d3c0000, - 0x4d440000, 0x59368c03, 0x42027800, 0x00002001, - 0x0201f800, 0x0010e51f, 0x0201f800, 0x0010e569, - 0x0201f800, 0x0010e63d, 0x0201f800, 0x0010ea62, - 0x5c028800, 0x5c027800, 0x5c03e000, 0x02000000, - 0x001060fa, 0x1c01f000, 0x4803c856, 0x4d300000, - 0x0201f800, 0x001070f5, 0x0400000f, 0x481a601d, - 0x48ee6022, 0x4936600a, 0x4a026407, 0x00000001, - 0x492e6009, 0x4d380000, 0x42027000, 0x0000001f, - 0x0201f800, 0x00020a34, 0x5c027000, 0x82000540, - 0x00000001, 0x5c026000, 0x1c01f000, 0x4803c856, - 0x4d300000, 0x0201f800, 0x001070f5, 0x0400000e, - 0x48ee6022, 0x4936600a, 0x4a026407, 0x00000001, - 0x492e6009, 0x4d380000, 0x42027000, 0x00000055, - 0x0201f800, 0x00020a34, 0x5c027000, 0x82000540, - 0x00000001, 0x5c026000, 0x1c01f000, 0x4803c856, - 0x4d300000, 0x0201f800, 0x001070f5, 0x0400000f, - 0x481a601d, 0x48ee6022, 0x4936600a, 0x4a026407, - 0x00000001, 0x492e6009, 0x4d380000, 0x42027000, - 0x0000003d, 0x0201f800, 0x00020a34, 0x5c027000, - 0x82000540, 0x00000001, 0x5c026000, 0x1c01f000, - 0x4803c856, 0x4d300000, 0x0201f800, 0x001070f5, - 0x04000014, 0x4936600a, 0x492fc857, 0x4933c857, - 0x592c0405, 0x8c00051e, 0x04000003, 0x48efc857, - 0x48ee6022, 0x4a026407, 0x00000001, 0x492e6009, - 0x4d380000, 0x42027000, 0x00000000, 0x0201f800, - 0x00020a34, 0x5c027000, 0x82000540, 0x00000001, - 0x5c026000, 0x1c01f000, 0x4803c856, 0x4d300000, - 0x0201f800, 0x001070f5, 0x0400000f, 0x48ee6022, - 0x481a601d, 0x4936600a, 0x4a026407, 0x00000001, - 0x492e6009, 0x4d380000, 0x42027000, 0x00000044, - 0x0201f800, 0x00020a34, 0x5c027000, 0x82000540, - 0x00000001, 0x5c026000, 0x1c01f000, 0x4803c856, - 0x4d300000, 0x0201f800, 0x001070f5, 0x0400000f, - 0x481a601d, 0x48ee6022, 0x4936600a, 0x4a026407, - 0x00000001, 0x492e6009, 0x4d380000, 0x42027000, - 0x00000049, 0x0201f800, 0x00020a34, 0x5c027000, - 0x82000540, 0x00000001, 0x5c026000, 0x1c01f000, - 0x5930000a, 0x80001540, 0x02000800, 0x0010032d, - 0x5808040b, 0x4803c856, 0x80000040, 0x04001003, - 0x4800140b, 0x04020009, 0x58080010, 0x80000540, - 0x04000006, 0x58080203, 0x80000540, 0x04020003, - 0x4a001203, 0x00000001, 0x1c01f000, 0x4803c856, - 0x59300403, 0x82000d80, 0x00000002, 0x0400000f, - 0x82000d80, 0x00000003, 0x0400000c, 0x82000d80, - 0x00000004, 0x04000009, 0x599c0819, 0x8c040d0e, - 0x04000004, 0x82000d80, 0x00000000, 0x04000003, - 0x82000540, 0x00000001, 0x1c01f000, 0x0401f807, - 0x42018800, 0x00000001, 0x04000003, 0x42018800, - 0x00000000, 0x1c01f000, 0x4803c856, 0x4c000000, - 0x4d2c0000, 0x59300407, 0x82000580, 0x00000004, - 0x0400001d, 0x59300009, 0x80025d40, 0x800001c0, - 0x04000019, 0x0201f800, 0x00108e64, 0x04000014, - 0x59300407, 0x82004580, 0x00000010, 0x04000010, - 0x82004580, 0x00000011, 0x0400000d, 0x82004580, - 0x00000003, 0x0400000c, 0x82004580, 0x00000002, - 0x04000009, 0x82004580, 0x0000000a, 0x04000006, - 0x592c0405, 0x8c00051e, 0x04000003, 0x80000580, - 0x0401f003, 0x82000540, 0x00000001, 0x5c025800, - 0x5c000000, 0x1c01f000, 0x4803c856, 0x4d300000, - 0x0201f800, 0x001070f5, 0x04000013, 0x4936600a, - 0x48ee6022, 0x4a026407, 0x00000001, 0x492e6009, - 0x4d3c0000, 0x417a7800, 0x0201f800, 0x0010df61, - 0x5c027800, 0x4d380000, 0x42027000, 0x00000028, - 0x0201f800, 0x00020a34, 0x5c027000, 0x82000540, - 0x00000001, 0x5c026000, 0x1c01f000, 0x4803c856, - 0x83380580, 0x00000015, 0x0402000d, 0x59a8005a, - 0x82000580, 0x00000074, 0x04020009, 0x0201f800, - 0x00103e68, 0x4a026203, 0x00000001, 0x4a026403, - 0x00000029, 0x0201f000, 0x00105fe8, 0x0201f800, - 0x00107851, 0x0201f000, 0x00020a10, 0x4803c856, - 0x83380580, 0x00000016, 0x04020007, 0x42000800, - 0x00000004, 0x0201f800, 0x00103d8a, 0x0201f000, - 0x00107319, 0x83380580, 0x00000015, 0x04020013, - 0x59a8005a, 0x82000580, 0x00000014, 0x0402000f, - 0x0201f800, 0x00103ecf, 0x0201f800, 0x00107d37, - 0x0402000a, 0x59340404, 0x80000540, 0x04000007, - 0x42000800, 0x00000006, 0x0201f800, 0x00103d8a, - 0x0201f000, 0x00107319, 0x0201f800, 0x00107851, - 0x0201f000, 0x00020a10, 0x4803c856, 0x592c0207, - 0x82000580, 0x00000005, 0x04000002, 0x1c01f000, - 0x4803c856, 0x592c0209, 0x8400054a, 0x48025a09, - 0x1c01f000, 0x59300809, 0x800409c0, 0x04000008, - 0x58040205, 0x82000580, 0x00000152, 0x04020004, - 0x59a8082a, 0x48066006, 0x1c01f000, 0x599c0416, - 0x800001c0, 0x04000008, 0x82000c80, 0x00000004, - 0x04001005, 0x800000c2, 0x800008c4, 0x80040c00, - 0x0401f7f5, 0x59300403, 0x82000580, 0x00000002, - 0x040207f0, 0x5930080a, 0x58040403, 0x82000580, - 0x000007fe, 0x040207eb, 0x42000800, 0x00000028, - 0x0401f7e9, 0x497a6205, 0x497a6009, 0x4a026203, - 0x00000001, 0x4a026403, 0x00000050, 0x42000800, - 0x80000043, 0x0201f000, 0x000209b1, 0x4933c857, - 0x4d340000, 0x5932680a, 0x59340200, 0x8c00050e, - 0x04000006, 0x59300407, 0x82000c80, 0x00000014, - 0x04021004, 0x0c01f806, 0x5c026800, 0x1c01f000, - 0x0201f800, 0x00108655, 0x0401f7fc, 0x00108655, - 0x00108a9b, 0x00108a9f, 0x00108aa2, 0x0010a040, - 0x0010a05d, 0x0010a061, 0x00108655, 0x00108655, - 0x00108655, 0x00108655, 0x00108655, 0x00108655, - 0x00108655, 0x00108655, 0x00108655, 0x00108655, - 0x00108655, 0x00108655, 0x00108655, 0x4803c856, - 0x40000000, 0x40000000, 0x1c01f000, 0x40000000, - 0x40000000, 0x1c01f000, 0x5930001d, 0x4803c857, - 0x59300415, 0x4933c857, 0x4803c857, 0x8c000502, - 0x04000005, 0x4803c857, 0x84000540, 0x48026415, - 0x1c01f000, 0x42000000, 0xd0000000, 0x41300800, - 0x0201f800, 0x00100899, 0x0401f810, 0x0402000e, - 0x59300c15, 0x59300403, 0x82000580, 0x00000040, - 0x04000003, 0x84040d40, 0x0401f005, 0x59a8002a, - 0x82000400, 0x0000000a, 0x48026205, 0x84040d42, - 0x48066415, 0x1c01f000, 0x4933c857, 0x4d340000, - 0x5932680a, 0x59340a00, 0x8c040d0e, 0x02000800, - 0x0010032d, 0x5930001d, 0x80000540, 0x04020033, - 0x59300403, 0x4803c857, 0x82000580, 0x00000040, - 0x04000003, 0x8d0e1d0e, 0x0402002a, 0x4d1c0000, - 0x41323800, 0x0201f800, 0x001070f5, 0x04000023, - 0x4932381d, 0x591c0415, 0x84000542, 0x48023c15, - 0x4936600a, 0x591c0407, 0x82000580, 0x00000003, - 0x04000006, 0x591c0202, 0x4802641a, 0x591c0402, - 0x4802621a, 0x0401f005, 0x591c0202, 0x4802621a, - 0x591c0402, 0x4802641a, 0x491e601f, 0x4a026407, - 0x00000001, 0x4a026403, 0x00000035, 0x4a026203, - 0x00000001, 0x42000800, 0x80000040, 0x0201f800, - 0x000209b1, 0x411e6000, 0x5c023800, 0x80000580, - 0x5c026800, 0x1c01f000, 0x411e6000, 0x5c023800, - 0x59a8002c, 0x48026205, 0x82000540, 0x00000001, - 0x0401f7f8, 0x4933c857, 0x4d2c0000, 0x4932381d, - 0x4a026202, 0x0000ffff, 0x591e5809, 0x591c0008, - 0x8c00051e, 0x04000005, 0x8400051e, 0x48023808, - 0x497a580a, 0x0401f018, 0x592c0409, 0x8c000518, - 0x04000015, 0x84000518, 0x48025c09, 0x4d400000, - 0x592e8207, 0x4a025a07, 0x00000001, 0x0401fb52, - 0x49425a07, 0x5c028000, 0x497a580a, 0x592c0409, - 0x8c000512, 0x04000008, 0x4d2c0000, 0x84000512, - 0x48025c09, 0x592e580a, 0x0201f800, 0x00100589, - 0x5c025800, 0x59a8002c, 0x48026205, 0x591c0215, - 0x48026217, 0x82000d80, 0x00000001, 0x04000008, - 0x4a023a03, 0x00000002, 0x82000580, 0x00000005, - 0x04000008, 0x497a6016, 0x0401f01e, 0x591c0008, - 0x84000540, 0x48023808, 0x4a023a03, 0x00000004, - 0x591c0415, 0x4803c857, 0x8400051c, 0x84000554, - 0x48023c15, 0x592c0010, 0x40001000, 0x591c0817, - 0x80040480, 0x040217f0, 0x591c0017, 0x82000500, - 0xfffffffc, 0x48026016, 0x48023817, 0x591c0a15, - 0x4807c857, 0x82040d80, 0x00000005, 0x04020005, - 0x480bc857, 0x4803c857, 0x4a023813, 0xffffffff, - 0x591c0402, 0x4802641a, 0x591c0202, 0x4802621a, - 0x591e680a, 0x4936600a, 0x4a026407, 0x00000001, - 0x4a026403, 0x00000039, 0x4a026203, 0x00000001, - 0x42000800, 0x80000040, 0x0201f800, 0x000209b1, - 0x5c025800, 0x1c01f000, 0x4933c857, 0x59300415, - 0x8c000514, 0x04000015, 0x8c00051c, 0x04020012, - 0x59300017, 0x80100480, 0x04001006, 0x04000005, - 0x59300415, 0x84000514, 0x8400055c, 0x0401f009, - 0x48126017, 0x48126013, 0x40100000, 0x592c1810, - 0x800c0480, 0x48026012, 0x59300415, 0x84000514, - 0x48026415, 0x1c01f000, 0x4933c857, 0x8c00051c, - 0x04020008, 0x59300013, 0x4803c857, 0x48026017, - 0x59300415, 0x8400055c, 0x4803c857, 0x48026415, - 0x1c01f000, 0x0401f807, 0x42018800, 0x00000001, - 0x04000003, 0x42018800, 0x00000000, 0x1c01f000, - 0x59300c03, 0x4933c857, 0x4807c857, 0x82040480, - 0x00000034, 0x04001006, 0x82040480, 0x0000003c, - 0x04021003, 0x80000580, 0x1c01f000, 0x82000540, - 0x00000001, 0x0401f7fd, 0x41780800, 0x59a81028, - 0x42000000, 0x00000032, 0x0201f800, 0x00105f69, - 0x800811c0, 0x04020003, 0x42001000, 0x00000014, - 0x480b502a, 0x59a81029, 0x480b5022, 0x41780800, - 0x42000000, 0x00000064, 0x0201f800, 0x00105f69, - 0x800811c0, 0x04020003, 0x42001000, 0x00000014, - 0x480b502b, 0x82081400, 0x0000000a, 0x480b502c, - 0x42000800, 0x00000001, 0x0201f800, 0x00106134, - 0x42000000, 0x30000000, 0x40080800, 0x0201f800, - 0x00020105, 0x42000800, 0x00000003, 0x59a8100f, - 0x0201f800, 0x00106134, 0x0201f000, 0x001040e5, - 0x4a03502a, 0x00000028, 0x4a03502b, 0x00000014, - 0x4a035022, 0x000007d0, 0x42001000, 0x0000001e, - 0x480b502c, 0x42000800, 0x00000001, 0x0201f800, - 0x00106134, 0x42000000, 0x30000000, 0x40080800, - 0x0201f800, 0x00020105, 0x42000800, 0x00000003, - 0x59a8100f, 0x0201f000, 0x00106134, 0x4933c857, - 0x4d2c0000, 0x59300403, 0x82000580, 0x0000003e, - 0x04020005, 0x59325818, 0x812e59c0, 0x02020800, - 0x00100580, 0x5c025800, 0x1c01f000, 0x4937c857, - 0x4d300000, 0x0201f800, 0x001070f5, 0x04000011, - 0x4936600a, 0x4a026407, 0x00000001, 0x492e6009, - 0x42000800, 0x00000009, 0x0201f800, 0x00103d8a, - 0x4d380000, 0x42027000, 0x00000033, 0x0201f800, - 0x00020a34, 0x5c027000, 0x82000540, 0x00000001, - 0x5c026000, 0x1c01f000, 0x4933c857, 0x4d2c0000, - 0x4c580000, 0x4d3c0000, 0x59325809, 0x83380580, - 0x00000015, 0x04020025, 0x59a8b05a, 0x82580c80, - 0x00000019, 0x04001003, 0x4200b000, 0x00000018, - 0x8058b104, 0x0401fa18, 0x80000580, 0x0401fa28, - 0x832cac00, 0x0000000a, 0x83cca400, 0x00000006, - 0x0201f800, 0x0010adef, 0x4c600000, 0x4200c000, - 0x00000001, 0x592c100b, 0x8c081518, 0x04020006, - 0x59a8000f, 0x592c100e, 0x80080580, 0x04020007, - 0x4178c000, 0x5930100a, 0x58081403, 0x417a7800, - 0x0201f800, 0x00101a8f, 0x5c00c000, 0x0201f800, - 0x00107319, 0x0401f008, 0x4200b000, 0x00000002, - 0x0401fa17, 0x0201f800, 0x00107851, 0x0201f800, - 0x00020a10, 0x5c027800, 0x5c00b000, 0x5c025800, - 0x1c01f000, 0x4933c856, 0x42018800, 0x00000000, - 0x4936600a, 0x4a026407, 0x00000001, 0x492e6009, - 0x4d380000, 0x42027000, 0x0000004d, 0x0201f800, - 0x00020a34, 0x5c027000, 0x82000540, 0x00000001, - 0x42018800, 0x00000001, 0x1c01f000, 0x4803c856, - 0x4d2c0000, 0x83380580, 0x00000015, 0x0402002c, - 0x59a8085a, 0x59325809, 0x5930040b, 0x80040580, - 0x04020027, 0x4c500000, 0x4c540000, 0x4c580000, - 0x83cca400, 0x00000006, 0x4050a800, 0x5930b40b, - 0x8258b400, 0x00000003, 0x8058b104, 0x0201f800, - 0x0010ae19, 0x83cca400, 0x00000006, 0x592cb206, - 0x8258b400, 0x00000003, 0x8058b104, 0x832cac00, - 0x00000007, 0x0201f800, 0x0010adef, 0x592e5801, - 0x812e59c0, 0x040207f6, 0x5931d822, 0x58ef400a, - 0x58ee580c, 0x4a025a05, 0x00000103, 0x58ec0008, - 0x0801f800, 0x59300402, 0x5c00b000, 0x5c00a800, - 0x5c00a000, 0x5c025800, 0x1c01f000, 0x0201f800, - 0x00107851, 0x5c025800, 0x1c01f000, 0x4933c857, - 0x82040d80, 0x00000035, 0x04000005, 0x5930141a, - 0x0401f858, 0x04000027, 0x0401f006, 0x4d300000, - 0x5932601f, 0x0401f85d, 0x5c026000, 0x04000020, - 0x591c0c07, 0x82040580, 0x00000003, 0x04000004, - 0x82040580, 0x00000006, 0x0402001c, 0x591c0c02, - 0x5930041a, 0x80040580, 0x04000009, 0x5930021a, - 0x80040580, 0x04020015, 0x591c0a02, 0x5930041a, - 0x80040580, 0x04020011, 0x0401f009, 0x59300a1a, - 0x82040580, 0x0000ffff, 0x04000005, 0x591c0202, - 0x59300a1a, 0x80040580, 0x04020008, 0x591c000a, - 0x5930080a, 0x80040580, 0x1c01f000, 0x417a3800, - 0x82000540, 0x00000001, 0x1c01f000, 0x4803c856, - 0x59b800e4, 0x8c000538, 0x02020800, 0x0010032d, - 0x42000800, 0x0000ff00, 0x4a0370e4, 0x20000000, - 0x59b800e4, 0x80040840, 0x02000800, 0x0010032d, - 0x8c00053c, 0x040207f9, 0x4a0370e4, 0x30000000, - 0x40000000, 0x40000000, 0x40000000, 0x59b800e4, - 0x8c00053c, 0x040207f1, 0x1c01f000, 0x4803c856, - 0x4a0370e4, 0x20000000, 0x40000000, 0x59b800e4, - 0x8c000538, 0x040207fb, 0x1c01f000, 0x0401f807, - 0x42018800, 0x00000001, 0x04020003, 0x42018800, - 0x00000000, 0x1c01f000, 0x59300808, 0x8c040d1e, - 0x592c0c09, 0x04020002, 0x8c040d18, 0x1c01f000, - 0x0201f800, 0x00108888, 0x04000007, 0x800800c4, - 0x800808ca, 0x80040c00, 0x82063c00, 0x0010f584, - 0x491fc857, 0x1c01f000, 0x0201f800, 0x001091d9, - 0x04020007, 0x59301402, 0x0401fff2, 0x04000007, - 0x411c0000, 0x81300580, 0x04000003, 0x81780500, - 0x0401f002, 0x81300540, 0x1c01f000, 0x4d300000, - 0x0201f800, 0x00020319, 0x0402000a, 0x42026000, - 0x0010f53c, 0x4936600a, 0x492e6009, 0x0201f800, - 0x0010df61, 0x80000580, 0x5c026000, 0x1c01f000, - 0x82000540, 0x00000001, 0x0401f7fc, 0x4933c857, - 0x0201f800, 0x0010889a, 0x02000800, 0x0010032d, - 0x4d2c0000, 0x4d340000, 0x4d440000, 0x4c580000, - 0x59325809, 0x5932680a, 0x49425a07, 0x0201f800, - 0x00104f41, 0x592e8c07, 0x592c4208, 0x82200500, - 0x0000000f, 0x0c01f806, 0x5c00b000, 0x5c028800, - 0x5c026800, 0x5c025800, 0x1c01f000, 0x00108d2a, - 0x00108d4c, 0x00108d53, 0x00108d57, 0x00108d60, - 0x00108d27, 0x00108d27, 0x00108d27, 0x00108d64, - 0x00108d70, 0x00108d70, 0x00108d27, 0x00108d27, - 0x00108d27, 0x00108d27, 0x00108d27, 0x4803c857, - 0x0201f800, 0x0010032d, 0x814281c0, 0x04020012, - 0x41785800, 0x592c0405, 0x8c00051c, 0x04020002, - 0x59345c05, 0x442c2800, 0x59340008, 0x48002802, - 0x59340009, 0x48002801, 0x59340006, 0x48002804, - 0x59340007, 0x48002803, 0x4200b000, 0x0000000b, - 0x0401f037, 0x592c0208, 0x8c00051e, 0x4200b000, - 0x00000002, 0x04020032, 0x8204b540, 0x00000000, - 0x0400002f, 0x44042800, 0x5932680a, 0x59340400, - 0x48002801, 0x4200b000, 0x00000002, 0x0401f028, - 0x814281c0, 0x040207f0, 0x59345c05, 0x442c2800, - 0x4200b000, 0x00000001, 0x0401f021, 0x8340b540, - 0x00000000, 0x0400001e, 0x0401f027, 0x814281c0, - 0x04020025, 0x59340200, 0x44002800, 0x59340001, - 0x48002801, 0x4200b000, 0x00000002, 0x0401f014, - 0x8340b540, 0x00000000, 0x0402001b, 0x0401f010, - 0x8340b540, 0x00000000, 0x0400000d, 0x0201f800, - 0x001041ae, 0x04000014, 0x8c20450e, 0x04000002, - 0x497a600a, 0x4178b000, 0x497a5a07, 0x0401f004, - 0x8340b540, 0x00000000, 0x0402000b, 0x592c0405, - 0x8400051c, 0x48025c05, 0x592c0208, 0x8400051e, - 0x48025a08, 0x0401f8ac, 0x497a6009, 0x0201f000, - 0x000203ab, 0x592c0208, 0x8c00051e, 0x4200b000, - 0x00000002, 0x040207f2, 0x8204b540, 0x00000000, - 0x040007ef, 0x44042800, 0x4200b000, 0x00000001, - 0x0401f7eb, 0x4937c857, 0x4d300000, 0x0201f800, - 0x001070f5, 0x04000011, 0x4936600a, 0x4a026407, - 0x00000001, 0x492e6009, 0x42000800, 0x0000000b, - 0x0201f800, 0x00103d8a, 0x4d380000, 0x42027000, - 0x00000043, 0x0201f800, 0x00020a34, 0x5c027000, - 0x82000540, 0x00000001, 0x5c026000, 0x1c01f000, - 0x4937c857, 0x4d2c0000, 0x59325809, 0x83380580, - 0x00000015, 0x04020028, 0x59a8005a, 0x82000580, - 0x00000004, 0x04020024, 0x59a8000f, 0x592c100a, - 0x80080580, 0x04020013, 0x4d440000, 0x592e8c07, - 0x592c0208, 0x4803c856, 0x82000500, 0x00000080, - 0x84000548, 0x4d3c0000, 0x42027800, 0x00001000, - 0x8c00050e, 0x04000002, 0x853e7d5c, 0x0201f800, - 0x00104115, 0x5c027800, 0x5c028800, 0x0401f004, - 0x4803c856, 0x0201f800, 0x001041ae, 0x0201f800, - 0x0010889a, 0x04000017, 0x4d400000, 0x42028000, - 0x00000000, 0x41780800, 0x0401ff35, 0x5c028000, - 0x0401f00e, 0x0201f800, 0x001041ae, 0x040207f4, - 0x0201f800, 0x0010889a, 0x0400000a, 0x4c580000, - 0x4200b000, 0x00000002, 0x0401f86d, 0x5c00b000, - 0x0201f800, 0x00107851, 0x0201f800, 0x00020a10, - 0x5c025800, 0x1c01f000, 0x4937c857, 0x4d300000, - 0x0201f800, 0x001070f5, 0x04000012, 0x4936600a, - 0x4a026407, 0x00000001, 0x4d3c0000, 0x4d380000, - 0x417a7800, 0x0201f800, 0x00103d7f, 0x492e6009, - 0x42027000, 0x00000004, 0x0201f800, 0x00020a34, - 0x5c027000, 0x5c027800, 0x82000540, 0x00000001, - 0x5c026000, 0x1c01f000, 0x4937c857, 0x4d300000, - 0x0201f800, 0x001070f5, 0x04000011, 0x4936600a, - 0x42000800, 0x00000003, 0x0201f800, 0x00103d8a, - 0x4a026407, 0x00000001, 0x492e6009, 0x4d380000, - 0x42027000, 0x00000051, 0x0201f800, 0x00020a34, - 0x5c027000, 0x82000540, 0x00000001, 0x5c026000, - 0x1c01f000, 0x4933c857, 0x42028800, 0x000007fc, - 0x42003000, 0x00fffffc, 0x0201f800, 0x00103dcb, - 0x02020800, 0x0010032d, 0x4936600a, 0x417a7800, - 0x0201f800, 0x00103d7f, 0x42000800, 0x00000003, - 0x0201f800, 0x00103d8a, 0x497a6c12, 0x4a026203, - 0x00000001, 0x4a026403, 0x00000002, 0x0201f000, - 0x00105fe8, 0x492fc857, 0x4c580000, 0x4c000000, - 0x8058b1c0, 0x0400000b, 0x82580500, 0xfffffff0, - 0x02020800, 0x0010032d, 0x8058b0d0, 0x592c0409, - 0x82000500, 0xfffff0ff, 0x80580540, 0x48025c09, - 0x5c000000, 0x5c00b000, 0x1c01f000, 0x492fc857, - 0x4c000000, 0x4c040000, 0x800000d8, 0x592c0c09, - 0x82040d00, 0xffff0fff, 0x80040540, 0x48025c09, - 0x5c000800, 0x5c000000, 0x1c01f000, 0x4933c857, - 0x4d2c0000, 0x59325809, 0x592c0208, 0x8400055e, - 0x48025a08, 0x4c500000, 0x4c540000, 0x4c580000, - 0x0401ffd9, 0x0201f800, 0x00104f41, 0x46002800, - 0x00000018, 0x80142800, 0x8058b040, 0x83cca400, - 0x00000007, 0x4014a800, 0x0201f800, 0x0010adef, - 0x5c00b000, 0x5c00a800, 0x5c00a000, 0x5c025800, - 0x1c01f000, 0x0401f807, 0x42018800, 0x00000001, - 0x04000003, 0x42018800, 0x00000000, 0x1c01f000, - 0x59325809, 0x592c0205, 0x82000580, 0x00000152, - 0x1c01f000, 0x59300020, 0x80000540, 0x02020800, - 0x00100a76, 0x1c01f000, 0x4d2c0000, 0x59325809, - 0x59300203, 0x4933c857, 0x492fc857, 0x493bc857, - 0x4803c857, 0x82003480, 0x0000000e, 0x02021800, - 0x0010032d, 0x0c01f803, 0x5c025800, 0x1c01f000, - 0x00108e8a, 0x00108e95, 0x00108ed3, 0x00108e8a, - 0x00108e8a, 0x00108e8a, 0x00108e8a, 0x00108e8a, - 0x00108e8c, 0x00108e8a, 0x00108e8a, 0x00108e8a, - 0x00108e8a, 0x00108e8a, 0x0201f800, 0x0010032d, - 0x83383480, 0x00000058, 0x02021800, 0x0010032d, - 0x493a6403, 0x4a026203, 0x00000001, 0x0201f000, - 0x00105fe8, 0x83380580, 0x00000013, 0x04020010, - 0x492fc857, 0x592c000d, 0x800001c0, 0x04000006, - 0x4a026203, 0x00000002, 0x59a8002a, 0x48026006, - 0x1c01f000, 0x4a025a07, 0x00000000, 0x0201f800, - 0x000203ab, 0x0201f000, 0x00020a10, 0x83380580, - 0x00000027, 0x0400001b, 0x83380580, 0x00000014, - 0x04000012, 0x83380580, 0x00000015, 0x04000005, - 0x83380580, 0x00000016, 0x02020800, 0x0010032d, - 0x0201f800, 0x0010644d, 0x02020000, 0x00107134, - 0x59300203, 0x82000580, 0x00000002, 0x02020800, - 0x0010032d, 0x0401f016, 0x4937c857, 0x0201f800, - 0x0010605d, 0x4a02580f, 0x00000011, 0x0401f006, - 0x4937c857, 0x0201f800, 0x0010605d, 0x4a02580f, - 0x00000010, 0x4a025a07, 0x00000031, 0x4a02580e, - 0x00000004, 0x0201f800, 0x000203ab, 0x0201f800, - 0x001043c3, 0x0201f000, 0x001070b5, 0x59341400, - 0x82081d00, 0x000000ff, 0x59300c03, 0x480bc857, - 0x4807c857, 0x82040580, 0x00000053, 0x0400002e, - 0x82040580, 0x00000002, 0x04000016, 0x82040580, - 0x00000001, 0x04000017, 0x82040580, 0x00000003, - 0x0400001c, 0x82040580, 0x00000005, 0x0400001d, - 0x82040580, 0x00000033, 0x0400001a, 0x82040580, - 0x00000000, 0x0400001b, 0x82040580, 0x00000004, - 0x02020800, 0x0010032d, 0x0401f89e, 0x0401f016, - 0x820c0580, 0x00000003, 0x04000849, 0x0401f012, - 0x820c0580, 0x0000000b, 0x0402000f, 0x42000800, - 0x00000007, 0x0201f800, 0x00103d8a, 0x0401f00a, - 0x820c0580, 0x00000005, 0x04000861, 0x0401f006, - 0x820c0580, 0x00000009, 0x04000886, 0x0401f002, - 0x0401f890, 0x4a026403, 0x00000052, 0x59a8105a, - 0x592c040c, 0x8c000500, 0x04000003, 0x42001000, - 0x00000008, 0x592c040c, 0x8c000516, 0x04000003, - 0x82081400, 0x00000018, 0x592c000d, 0x497a580e, - 0x497a580f, 0x80080c80, 0x04000009, 0x04001005, - 0x4a025a07, 0x00000007, 0x40001000, 0x0401f006, - 0x4a025a07, 0x00000015, 0x0401f003, 0x4a025a07, - 0x00000000, 0x480a580d, 0x0201f800, 0x00107293, - 0x04000010, 0x592c1001, 0x480a600c, 0x58080800, - 0x82080400, 0x00000002, 0x592c1012, 0x592c1813, - 0x42003000, 0x00000000, 0x42002000, 0x00100f89, - 0x0201f800, 0x00107420, 0x04000002, 0x1c01f000, - 0x4a025a07, 0x0000002c, 0x497a580d, 0x0201f800, - 0x000203ab, 0x0201f000, 0x00020a10, 0x83380580, - 0x00000015, 0x0402000a, 0x59a8006d, 0x8c000502, - 0x0402000b, 0x0201f800, 0x00103e68, 0x42000800, - 0x00000004, 0x0201f000, 0x00103d8a, 0x42000800, - 0x00000007, 0x0201f000, 0x00103d8a, 0x0201f800, - 0x00104716, 0x42001000, 0x00000010, 0x04020009, - 0x59340002, 0x82000500, 0x00ff0000, 0x82000580, - 0x00ff0000, 0x040007ec, 0x42001000, 0x00000008, - 0x0201f800, 0x00104429, 0x040007e7, 0x592c040c, - 0x84000540, 0x48025c0c, 0x0401f7e9, 0x83380580, - 0x00000015, 0x0402000f, 0x59a8006d, 0x8c000502, - 0x04020010, 0x0201f800, 0x00103ecf, 0x4d3c0000, - 0x417a7800, 0x0201f800, 0x00103d7f, 0x5c027800, - 0x42000800, 0x00000006, 0x0201f000, 0x00103d8a, - 0x42000800, 0x00000004, 0x0201f000, 0x00103d8a, - 0x0201f800, 0x00104716, 0x42001000, 0x00000010, - 0x04020009, 0x59340002, 0x82000500, 0x00ff0000, - 0x82000580, 0x00ff0000, 0x040007e7, 0x42001000, - 0x00000008, 0x0201f800, 0x00104429, 0x040007e2, - 0x592c040c, 0x84000540, 0x48025c0c, 0x0401f7e9, - 0x42000800, 0x00000004, 0x0201f000, 0x00103d8a, - 0x83380580, 0x00000015, 0x04020005, 0x0201f800, - 0x00109eb3, 0x02000800, 0x0010408c, 0x1c01f000, - 0x83380580, 0x00000015, 0x0402001d, 0x4c580000, - 0x83cc1400, 0x00000008, 0x4200b000, 0x00000002, - 0x83341c00, 0x00000006, 0x0201f800, 0x00107d52, - 0x04020012, 0x83cc1400, 0x0000000a, 0x4200b000, - 0x00000002, 0x83341c00, 0x00000008, 0x0201f800, - 0x00107d52, 0x04020009, 0x59342200, 0x59cc1007, - 0x800811c0, 0x04000003, 0x480a6801, 0x84102542, - 0x8410251a, 0x48126a00, 0x5c00b000, 0x1c01f000, - 0x42000000, 0x0010bc35, 0x0201f800, 0x0010ad1d, - 0x0201f800, 0x0010610d, 0x59300203, 0x4933c857, - 0x4803c857, 0x82000c80, 0x0000000e, 0x02021800, - 0x0010032d, 0x0c01f803, 0x0201f000, 0x001060fa, - 0x00108fd8, 0x00108fe7, 0x00108fd9, 0x00108fd6, - 0x00108fd6, 0x00108fd6, 0x00108fd6, 0x00108fd6, - 0x00108fd6, 0x00108fd6, 0x00108fd6, 0x00108fd6, - 0x00108fd6, 0x00108fd6, 0x0201f800, 0x0010032d, - 0x1c01f000, 0x59300403, 0x82000580, 0x00000052, - 0x02000000, 0x0010865e, 0x0201f800, 0x001043c3, - 0x59325809, 0x4a025a07, 0x00000006, 0x0201f800, - 0x000203ab, 0x0201f000, 0x001070b5, 0x59301804, - 0x840c0520, 0x48026004, 0x598c000f, 0x81300580, - 0x04020010, 0x8c0c1d20, 0x04020010, 0x42001000, - 0x0010bb55, 0x50081000, 0x58080002, 0x82000580, - 0x00000100, 0x0400000f, 0x5808000b, 0x81300580, - 0x02020800, 0x0010032d, 0x4978100b, 0x0401f003, - 0x8c0c1d20, 0x040207dc, 0x0201f800, 0x0010e343, - 0x80c40040, 0x040007d8, 0x0201f800, 0x0010032d, - 0x0201f800, 0x00106388, 0x040007f8, 0x59300203, + 0x00108a55, 0x4a026403, 0x00000085, 0x4a026203, + 0x00000009, 0x4a026407, 0x00000002, 0x42000800, + 0x8000404b, 0x0201f800, 0x000209b1, 0x5c03e000, + 0x02020800, 0x001061b2, 0x82000540, 0x00000001, + 0x1c01f000, 0x0201f800, 0x0010619f, 0x0201f800, + 0x00100bd5, 0x0401f795, 0x598c000f, 0x81300580, + 0x04020004, 0x0201f800, 0x0010642d, 0x0402001d, + 0x0201f800, 0x0010e453, 0x80c40040, 0x04020006, + 0x59300c03, 0x82040580, 0x00000040, 0x04000774, + 0x0401f786, 0x0201f800, 0x001060bd, 0x04000011, + 0x0201f800, 0x0010032d, 0x0401f81b, 0x04020004, + 0x0201f800, 0x001063f6, 0x0402000a, 0x0201f800, + 0x0010e2da, 0x80c40040, 0x040207f3, 0x59300c03, + 0x82040580, 0x00000040, 0x04000761, 0x0401f773, + 0x59300203, 0x82000c80, 0x0000000e, 0x02021800, + 0x0010032d, 0x0c01f746, 0x0401f807, 0x42018800, + 0x00000001, 0x04000003, 0x42018800, 0x00000000, + 0x1c01f000, 0x417a3000, 0x42032000, 0x0000bf32, + 0x59900004, 0x81300580, 0x04000009, 0x83932400, + 0x00000010, 0x811a3000, 0x83180480, 0x00000005, + 0x040017f8, 0x82000540, 0x00000001, 0x1c01f000, + 0x0401f803, 0x40018800, 0x1c01f000, 0x59300004, + 0x8c00053e, 0x04000010, 0x8c00050c, 0x0402000e, + 0x8c000516, 0x04020006, 0x82000d00, 0x0000001f, + 0x82040580, 0x00000005, 0x04020004, 0x42000000, + 0x00000003, 0x0401f005, 0x42000000, 0x00000001, + 0x0401f002, 0x59300203, 0x1c01f000, 0x4933c857, + 0x0201f800, 0x001061b2, 0x4df00000, 0x59300203, 0x82000c80, 0x0000000e, 0x02021800, 0x0010032d, - 0x0c01f7bc, 0x4933c857, 0x4c500000, 0x4c540000, - 0x4c580000, 0x592c0c08, 0x48065814, 0x59cc0809, - 0x48065808, 0x59cc0808, 0x4806580c, 0x59a8086c, - 0x82040500, 0x000003ff, 0x800010c4, 0x8c040d14, - 0x04000005, 0x59cc0002, 0x82000500, 0x00000003, - 0x80081480, 0x480a621b, 0x412c0800, 0x0201f800, - 0x0010055a, 0x02000800, 0x0010032d, 0x492c080a, - 0x58040409, 0x84000552, 0x84000540, 0x48000c09, - 0x82081400, 0x00000003, 0x80081104, 0x83cca400, - 0x00000006, 0x832cac00, 0x00000005, 0x42000800, - 0x00000010, 0x82080480, 0x00000010, 0x04021003, - 0x40080800, 0x80000580, 0x4004b000, 0x4c000000, - 0x0201f800, 0x0010ae19, 0x5c000000, 0x800001c0, - 0x0400000d, 0x412c1000, 0x4c000000, 0x0201f800, - 0x0010055a, 0x02000800, 0x0010032d, 0x492c1001, - 0x832cac00, 0x00000005, 0x5c000000, 0x40001000, - 0x0401f7e9, 0x5c00b000, 0x5c00a800, 0x5c00a000, - 0x1c01f000, 0x4933c857, 0x4d2c0000, 0x4c380000, - 0x59325809, 0x5930021b, 0x48025a09, 0x59301012, - 0x4a026203, 0x00000002, 0x592c020b, 0x8c000500, - 0x04000004, 0x59300016, 0x592c1010, 0x80081480, - 0x800811c0, 0x04020008, 0x4a025a07, 0x00000000, - 0x592c000c, 0x82000500, 0x00000c00, 0x0400000b, - 0x0401f00b, 0x8c08153e, 0x04000006, 0x4a025a07, - 0x00000007, 0x80081080, 0x80081000, 0x0401f003, - 0x4a025a07, 0x00000015, 0x480a5808, 0x42000000, - 0x0010c25c, 0x50007000, 0x5838000a, 0x80000540, - 0x04020008, 0x4930700b, 0x4930700a, 0x58380002, - 0x82000580, 0x00000000, 0x04020809, 0x0401f005, - 0x82001400, 0x00000000, 0x45301000, 0x4930700a, - 0x5c007000, 0x5c025800, 0x1c01f000, 0x4933c857, - 0x592c000a, 0x40001000, 0x48007009, 0x82080400, - 0x00000005, 0x48007003, 0x592c000e, 0x592c100f, - 0x48007006, 0x48087007, 0x592c0014, 0x592c1209, - 0x80080c80, 0x04001002, 0x40001000, 0x82081400, - 0x00000003, 0x80081104, 0x82080480, 0x00000010, + 0x0c01f001, 0x00108699, 0x001086b6, 0x0010869d, + 0x00108697, 0x00108697, 0x00108697, 0x00108697, + 0x00108697, 0x00108697, 0x00108697, 0x00108697, + 0x00108697, 0x00108697, 0x00108697, 0x0201f800, + 0x0010032d, 0x5c03e000, 0x02000800, 0x0010619f, + 0x0401f6bd, 0x5c03e000, 0x02000800, 0x0010619f, + 0x4d2c0000, 0x59325809, 0x59300403, 0x82000580, + 0x00000052, 0x02000800, 0x00100fba, 0x0401faac, + 0x02000800, 0x0010032d, 0x4a025a07, 0x00000005, + 0x0201f800, 0x000203ab, 0x0201f800, 0x001043e2, + 0x0201f800, 0x00107144, 0x5c025800, 0x82000540, + 0x00000001, 0x1c01f000, 0x598c000f, 0x81300580, + 0x0402001b, 0x59300004, 0x8c000520, 0x04000004, + 0x84000520, 0x48026004, 0x0401f01b, 0x42001000, + 0x0010bc55, 0x50081000, 0x58080002, 0x82000580, + 0x00000100, 0x0400000b, 0x5808000b, 0x81300580, + 0x02020800, 0x0010032d, 0x0201f800, 0x0010e453, + 0x80c40040, 0x02020800, 0x0010032d, 0x0401f7ce, + 0x0201f800, 0x0010642d, 0x0402000d, 0x59300004, + 0x8c000520, 0x04000004, 0x84000520, 0x48026004, + 0x0401f7c5, 0x0201f800, 0x0010e453, 0x80c40040, + 0x040007c1, 0x0201f800, 0x0010032d, 0x59300203, + 0x82000c80, 0x0000000e, 0x02021800, 0x0010032d, + 0x0c01f7a5, 0x4d340000, 0x5932680a, 0x59300407, + 0x4933c857, 0x4803c857, 0x82000c80, 0x00000014, + 0x02021800, 0x0010032d, 0x0c01f803, 0x5c026800, + 0x1c01f000, 0x0010870a, 0x00108736, 0x00108880, + 0x0010ea61, 0x00108873, 0x0010887b, 0x00109e39, + 0x00108716, 0x0010886e, 0x00105f1c, 0x001088ee, + 0x00108705, 0x00108705, 0x00108705, 0x00108705, + 0x00020a10, 0x00109071, 0x00109071, 0x0010ac9b, + 0x0010ac9b, 0x0201f800, 0x0010032d, 0x0401fb7c, + 0x02000000, 0x001078e7, 0x1c01f000, 0x0201f800, + 0x001061b2, 0x0201f800, 0x00106102, 0x0201f800, + 0x0010619f, 0x0201f000, 0x00020a10, 0x4a026006, + 0x00000001, 0x1c01f000, 0x4d340000, 0x4c5c0000, + 0x59300203, 0x82000580, 0x00000011, 0x04020016, + 0x5932680a, 0x4130b800, 0x0201f800, 0x000209ee, + 0x04000010, 0x4a026203, 0x00000001, 0x4a026403, + 0x0000001e, 0x585c041a, 0x4802641a, 0x585c021a, + 0x4802621a, 0x4936600a, 0x4a026407, 0x00000001, + 0x42000800, 0x80000040, 0x0201f800, 0x000209b1, + 0x405e6000, 0x0201f800, 0x00020a10, 0x5c00b800, + 0x5c026800, 0x1c01f000, 0x42000000, 0x0010bd28, + 0x0201f800, 0x0010ae10, 0x0201f800, 0x0010a681, + 0x59300203, 0x82000c80, 0x0000000e, 0x02021800, + 0x0010032d, 0x4803c857, 0x0c01f001, 0x00108751, + 0x00108713, 0x00108753, 0x00108751, 0x00108753, + 0x00108753, 0x0010870b, 0x00108751, 0x00108707, + 0x00108751, 0x00108751, 0x00108751, 0x00108751, + 0x00108751, 0x0201f800, 0x0010032d, 0x83340580, + 0x0010c2b2, 0x02000000, 0x00107144, 0x4d2c0000, + 0x59340400, 0x82000500, 0x000000ff, 0x82000c80, + 0x0000000c, 0x02021800, 0x0010032d, 0x59303403, + 0x82180d80, 0x00000004, 0x04020004, 0x42000000, + 0x00000001, 0x0401f006, 0x82180d80, 0x00000000, + 0x04020003, 0x42000000, 0x00000001, 0x4803c857, + 0x0c01f803, 0x5c025800, 0x1c01f000, 0x0010877b, + 0x0010881b, 0x0010877d, 0x001087b2, 0x0010877d, + 0x00108838, 0x0010877d, 0x00108787, 0x0010877b, + 0x00108838, 0x0010877b, 0x00108796, 0x0201f800, + 0x0010032d, 0x59300403, 0x82000d80, 0x00000016, + 0x0400002e, 0x82000d80, 0x00000004, 0x0400002b, + 0x82000d80, 0x00000002, 0x04000028, 0x0401fafc, + 0x04000026, 0x59300403, 0x82000d80, 0x00000022, + 0x040000af, 0x82000d80, 0x00000039, 0x040000b4, + 0x82000d80, 0x00000035, 0x040000b1, 0x82000d80, + 0x0000001e, 0x0400001b, 0x0401f9bd, 0x04000007, + 0x0201f800, 0x00108f1d, 0x04020004, 0x0201f800, + 0x001041bc, 0x0401f011, 0x59300403, 0x82000d80, + 0x00000001, 0x04020004, 0x0201f800, 0x00104181, + 0x0400000a, 0x4d3c0000, 0x417a7800, 0x0201f800, + 0x0010e06f, 0x5c027800, 0x42000000, 0x0010bd1d, + 0x0201f800, 0x0010ae10, 0x0201f800, 0x001078e7, + 0x0201f000, 0x00107144, 0x0401f9a1, 0x04000004, + 0x0201f800, 0x00108f1d, 0x040000a6, 0x59300c03, + 0x82040580, 0x00000016, 0x04000057, 0x82040580, + 0x00000002, 0x0402002f, 0x59a8021b, 0x8c000502, + 0x04020016, 0x59a81073, 0x8c08153e, 0x04020013, + 0x0201f800, 0x00104755, 0x04020010, 0x0201f800, + 0x00104780, 0x04020006, 0x42000000, 0x00000001, + 0x0201f800, 0x00104726, 0x0401f08e, 0x4a035014, + 0x00000001, 0x4202d800, 0x00000001, 0x0201f800, + 0x001046af, 0x0401f087, 0x59340412, 0x82000500, + 0x000000ff, 0x04000013, 0x80000040, 0x48026c12, + 0x497a6205, 0x4d300000, 0x0201f800, 0x00107188, + 0x5c000000, 0x0400000a, 0x49780009, 0x4a000407, + 0x00000007, 0x4a000006, 0x00000398, 0x4936600a, + 0x4a026407, 0x00000001, 0x0401f027, 0x40026000, + 0x59300403, 0x82000d80, 0x00000002, 0x04020010, + 0x59340403, 0x82000580, 0x000007fe, 0x0402000c, + 0x59a81073, 0x8c08153e, 0x04020004, 0x59a8021b, + 0x84000540, 0x4803521b, 0x0201f800, 0x00103a35, + 0x0201f800, 0x001078e7, 0x0401f00c, 0x0201f800, + 0x001078e7, 0x4d3c0000, 0x417a7800, 0x0201f800, + 0x0010e06f, 0x5c027800, 0x42000000, 0x0010bd1d, + 0x0201f800, 0x0010ae10, 0x59a81073, 0x8c08153e, + 0x04020003, 0x0201f800, 0x00101a68, 0x0201f000, + 0x00107144, 0x42000800, 0x00000003, 0x0201f800, + 0x00103d9d, 0x4a026203, 0x00000001, 0x4a026403, + 0x00000002, 0x0201f000, 0x0010608d, 0x0401f938, + 0x04020792, 0x0201f800, 0x00101a68, 0x4d3c0000, + 0x417a7800, 0x0201f800, 0x0010e06f, 0x5c027800, + 0x42000000, 0x0010bd1d, 0x0201f800, 0x0010ae10, + 0x42003000, 0x00000018, 0x41782800, 0x42002000, + 0x00000000, 0x4d400000, 0x4d440000, 0x59368c03, + 0x42028000, 0x00000029, 0x0201f800, 0x001091ea, + 0x5c028800, 0x5c028000, 0x0201f000, 0x00107144, + 0x0201f800, 0x001041bc, 0x0401f7c5, 0x42000000, + 0x0010bd27, 0x0201f800, 0x0010ae10, 0x0201f800, + 0x001073f9, 0x040207be, 0x1c01f000, 0x59300c03, + 0x0201f800, 0x00108d34, 0x02020000, 0x00020a10, + 0x836c0580, 0x00000003, 0x04000004, 0x4a026006, + 0x00000002, 0x1c01f000, 0x59300403, 0x48026417, + 0x4a02621e, 0x00000001, 0x4a026403, 0x00000085, + 0x4a026203, 0x00000009, 0x4a026407, 0x00000002, + 0x42000800, 0x8000004b, 0x0201f000, 0x000209b1, + 0x0201f800, 0x001078e7, 0x4d3c0000, 0x417a7800, + 0x0201f800, 0x0010e06f, 0x5c027800, 0x42000000, + 0x0010bd1d, 0x0201f800, 0x0010ae10, 0x497a6009, + 0x4a026407, 0x00000007, 0x4a026006, 0x00000398, + 0x497a6205, 0x1c01f000, 0x42000000, 0x0010bd2e, + 0x0201f800, 0x0010ae10, 0x0401f6c4, 0x42000000, + 0x0010bd29, 0x0201f800, 0x0010ae10, 0x0201f800, + 0x0010a681, 0x0201f000, 0x00107144, 0x42000000, + 0x0010bd2b, 0x0201f800, 0x0010ae10, 0x1c01f000, + 0x42000000, 0x0010bd2a, 0x0201f800, 0x0010ae10, + 0x59300203, 0x82000c80, 0x0000000e, 0x02021800, + 0x0010032d, 0x4803c857, 0x0c01f001, 0x00108899, + 0x00108713, 0x00108899, 0x00108899, 0x00108899, + 0x00108899, 0x00108899, 0x00108899, 0x00108899, + 0x00108713, 0x0010889b, 0x00108713, 0x001088a3, + 0x00108899, 0x0201f800, 0x0010032d, 0x4a026403, + 0x0000008b, 0x4a026203, 0x0000000b, 0x42000800, + 0x8000404b, 0x0201f000, 0x000209b1, 0x59300a1e, + 0x0401f8af, 0x0400000f, 0x4d2c0000, 0x59325809, + 0x4a025a07, 0x00000006, 0x497a5c0a, 0x0201f800, + 0x000203ab, 0x59300a1e, 0x82040d80, 0x00000003, + 0x02000800, 0x00104126, 0x5c025800, 0x497a6009, + 0x4d3c0000, 0x417a7800, 0x0201f800, 0x0010e06f, + 0x5c027800, 0x42003000, 0x00000011, 0x0201f800, + 0x0010a5a1, 0x42000000, 0x0010bd1d, 0x0201f800, + 0x0010ae10, 0x4c5c0000, 0x4130b800, 0x0201f800, + 0x00107188, 0x04000008, 0x4936600a, 0x4d300000, + 0x405e6000, 0x0201f800, 0x00107144, 0x5c026000, + 0x0401f002, 0x405e6000, 0x5c00b800, 0x497a6009, + 0x4a026407, 0x00000001, 0x4a026403, 0x00000001, + 0x8d0e1d20, 0x04000011, 0x4a026407, 0x00000004, + 0x4a026203, 0x00000007, 0x4a026421, 0x00000001, + 0x42003000, 0x00000004, 0x4d400000, 0x42028000, + 0x00000029, 0x41782800, 0x0201f800, 0x0010a00e, + 0x5c028000, 0x1c01f000, 0x42000800, 0x0000000b, + 0x0201f800, 0x00103d9d, 0x4a026203, 0x00000001, + 0x0201f000, 0x0010608d, 0x42000000, 0x0010bd30, + 0x0201f800, 0x0010ae10, 0x59300203, 0x82000c80, + 0x0000000e, 0x02021800, 0x0010032d, 0x4803c857, + 0x0c01f001, 0x0010891f, 0x00108907, 0x0010890b, + 0x00108920, 0x00108909, 0x00108907, 0x00108907, + 0x00108907, 0x00108907, 0x00108907, 0x00108907, + 0x00108907, 0x00108907, 0x00108907, 0x0201f800, + 0x0010032d, 0x0201f800, 0x00100bd5, 0x4d2c0000, + 0x59325809, 0x4a025a07, 0x00000006, 0x0201f800, + 0x000203ab, 0x5c025800, 0x497a6009, 0x4a02621e, + 0x0000000a, 0x4a026403, 0x00000085, 0x4a026203, + 0x00000009, 0x4a026407, 0x00000002, 0x42000800, + 0x8000404b, 0x0201f000, 0x000209b1, 0x1c01f000, + 0x0201f800, 0x001061b2, 0x4df00000, 0x0401fd36, + 0x04020004, 0x0201f800, 0x001063f6, 0x0402000d, + 0x0201f800, 0x0010e2da, 0x80c40040, 0x04020005, + 0x5c03e000, 0x0201f800, 0x0010619f, 0x0401f7dc, + 0x0201f800, 0x001060bd, 0x02020800, 0x0010032d, + 0x5c03e000, 0x0201f800, 0x0010619f, 0x59300203, + 0x82000d80, 0x00000003, 0x02000800, 0x0010032d, + 0x82000c80, 0x0000000e, 0x02021800, 0x0010032d, + 0x0c01f7b9, 0x59a8000d, 0x59a8084f, 0x80040400, + 0x80080480, 0x04021004, 0x82000540, 0x00000001, + 0x1c01f000, 0x480bc857, 0x80000580, 0x1c01f000, + 0x0401f807, 0x42018800, 0x00000000, 0x04000003, + 0x42018800, 0x00000001, 0x1c01f000, 0x4c040000, + 0x59300809, 0x59a8000c, 0x80040480, 0x04001007, + 0x59a8000a, 0x80040480, 0x04021004, 0x800409c0, + 0x5c000800, 0x1c01f000, 0x800409c0, 0x02020800, + 0x0010032d, 0x4803c856, 0x0401f7fa, 0x4803c856, + 0x4d300000, 0x0201f800, 0x000209ee, 0x0400000a, + 0x0401f832, 0x4d380000, 0x42027000, 0x0000004b, + 0x0201f800, 0x00020a34, 0x5c027000, 0x82000540, + 0x00000001, 0x5c026000, 0x1c01f000, 0x4803c856, + 0x4d300000, 0x0201f800, 0x00107188, 0x0400001e, + 0x0401f822, 0x4d300000, 0x0201f800, 0x001061b2, + 0x4df00000, 0x4d3c0000, 0x42027800, 0x00002000, + 0x0201f800, 0x0010e6a9, 0x0201f800, 0x0010e742, + 0x0201f800, 0x0010eb5d, 0x5c027800, 0x5c03e000, + 0x02000800, 0x0010619f, 0x5c026000, 0x8d3e7d3e, + 0x0402000b, 0x4d380000, 0x42027000, 0x0000004c, + 0x0201f800, 0x00020a34, 0x5c027000, 0x82000540, + 0x00000001, 0x5c026000, 0x1c01f000, 0x0201f800, + 0x00020a10, 0x0401f7fa, 0x592c0408, 0x494a6018, + 0x494e6019, 0x4936600a, 0x492e6009, 0x4a026407, + 0x00000003, 0x800000c2, 0x800008c4, 0x80040400, + 0x48026006, 0x1c01f000, 0x493bc857, 0x4d300000, + 0x0201f800, 0x000209ee, 0x0400000d, 0x0401ffef, + 0x4d400000, 0x42028000, 0x00000005, 0x0401f80d, + 0x5c028000, 0x8d3e7d3e, 0x04020007, 0x0201f800, + 0x00020a34, 0x82000540, 0x00000001, 0x5c026000, + 0x1c01f000, 0x0201f800, 0x00020a10, 0x0401f7fa, + 0x4803c856, 0x0201f800, 0x001061b2, 0x4df00000, + 0x4d3c0000, 0x4d440000, 0x59368c03, 0x42027800, + 0x00002001, 0x0201f800, 0x0010e624, 0x0201f800, + 0x0010e66e, 0x0201f800, 0x0010e742, 0x0201f800, + 0x0010eb5d, 0x5c028800, 0x5c027800, 0x5c03e000, + 0x02000000, 0x0010619f, 0x1c01f000, 0x4803c856, + 0x4d300000, 0x0201f800, 0x00107188, 0x0400000f, + 0x481a601d, 0x48ee6022, 0x4936600a, 0x4a026407, + 0x00000001, 0x492e6009, 0x4d380000, 0x42027000, + 0x0000001f, 0x0201f800, 0x00020a34, 0x5c027000, + 0x82000540, 0x00000001, 0x5c026000, 0x1c01f000, + 0x4803c856, 0x4d300000, 0x0201f800, 0x00107188, + 0x0400000e, 0x48ee6022, 0x4936600a, 0x4a026407, + 0x00000001, 0x492e6009, 0x4d380000, 0x42027000, + 0x00000055, 0x0201f800, 0x00020a34, 0x5c027000, + 0x82000540, 0x00000001, 0x5c026000, 0x1c01f000, + 0x4803c856, 0x4d300000, 0x0201f800, 0x00107188, + 0x0400000f, 0x481a601d, 0x48ee6022, 0x4936600a, + 0x4a026407, 0x00000001, 0x492e6009, 0x4d380000, + 0x42027000, 0x0000003d, 0x0201f800, 0x00020a34, + 0x5c027000, 0x82000540, 0x00000001, 0x5c026000, + 0x1c01f000, 0x4803c856, 0x4d300000, 0x0201f800, + 0x00107188, 0x04000014, 0x4936600a, 0x492fc857, + 0x4933c857, 0x592c0405, 0x8c00051e, 0x04000003, + 0x48efc857, 0x48ee6022, 0x4a026407, 0x00000001, + 0x492e6009, 0x4d380000, 0x42027000, 0x00000000, + 0x0201f800, 0x00020a34, 0x5c027000, 0x82000540, + 0x00000001, 0x5c026000, 0x1c01f000, 0x4803c856, + 0x4d300000, 0x0201f800, 0x00107188, 0x0400000f, + 0x48ee6022, 0x481a601d, 0x4936600a, 0x4a026407, + 0x00000001, 0x492e6009, 0x4d380000, 0x42027000, + 0x00000044, 0x0201f800, 0x00020a34, 0x5c027000, + 0x82000540, 0x00000001, 0x5c026000, 0x1c01f000, + 0x4803c856, 0x4d300000, 0x0201f800, 0x00107188, + 0x0400000f, 0x481a601d, 0x48ee6022, 0x4936600a, + 0x4a026407, 0x00000001, 0x492e6009, 0x4d380000, + 0x42027000, 0x00000049, 0x0201f800, 0x00020a34, + 0x5c027000, 0x82000540, 0x00000001, 0x5c026000, + 0x1c01f000, 0x5930000a, 0x80001540, 0x02000800, + 0x0010032d, 0x5808040b, 0x4803c856, 0x80000040, + 0x04001003, 0x4800140b, 0x04020009, 0x58080010, + 0x80000540, 0x04000006, 0x58080203, 0x80000540, + 0x04020003, 0x4a001203, 0x00000001, 0x1c01f000, + 0x4803c856, 0x59300403, 0x82000d80, 0x00000002, + 0x0400000f, 0x82000d80, 0x00000003, 0x0400000c, + 0x82000d80, 0x00000004, 0x04000009, 0x599c0819, + 0x8c040d0e, 0x04000004, 0x82000d80, 0x00000000, + 0x04000003, 0x82000540, 0x00000001, 0x1c01f000, + 0x0401f807, 0x42018800, 0x00000001, 0x04000003, + 0x42018800, 0x00000000, 0x1c01f000, 0x4803c856, + 0x4c000000, 0x4d2c0000, 0x59300407, 0x82000580, + 0x00000004, 0x0400001d, 0x59300009, 0x80025d40, + 0x800001c0, 0x04000019, 0x0201f800, 0x00108f1d, + 0x04000014, 0x59300407, 0x82004580, 0x00000010, + 0x04000010, 0x82004580, 0x00000011, 0x0400000d, + 0x82004580, 0x00000003, 0x0400000c, 0x82004580, + 0x00000002, 0x04000009, 0x82004580, 0x0000000a, + 0x04000006, 0x592c0405, 0x8c00051e, 0x04000003, + 0x80000580, 0x0401f003, 0x82000540, 0x00000001, + 0x5c025800, 0x5c000000, 0x1c01f000, 0x4803c856, + 0x4d300000, 0x0201f800, 0x00107188, 0x04000013, + 0x4936600a, 0x48ee6022, 0x4a026407, 0x00000001, + 0x492e6009, 0x4d3c0000, 0x417a7800, 0x0201f800, + 0x0010e06f, 0x5c027800, 0x4d380000, 0x42027000, + 0x00000028, 0x0201f800, 0x00020a34, 0x5c027000, + 0x82000540, 0x00000001, 0x5c026000, 0x1c01f000, + 0x4803c856, 0x83380580, 0x00000015, 0x0402000d, + 0x59a8005a, 0x82000580, 0x00000074, 0x04020009, + 0x0201f800, 0x00103e7e, 0x4a026203, 0x00000001, + 0x4a026403, 0x00000029, 0x0201f000, 0x0010608d, + 0x0201f800, 0x001078e7, 0x0201f000, 0x00020a10, + 0x4803c856, 0x83380580, 0x00000016, 0x04020007, + 0x42000800, 0x00000004, 0x0201f800, 0x00103d9d, + 0x0201f000, 0x001073af, 0x83380580, 0x00000015, + 0x04020013, 0x59a8005a, 0x82000580, 0x00000014, + 0x0402000f, 0x0201f800, 0x00103ee9, 0x0201f800, + 0x00107dde, 0x0402000a, 0x59340404, 0x80000540, + 0x04000007, 0x42000800, 0x00000006, 0x0201f800, + 0x00103d9d, 0x0201f000, 0x001073af, 0x0201f800, + 0x001078e7, 0x0201f000, 0x00020a10, 0x4803c856, + 0x592c0207, 0x82000580, 0x00000005, 0x04000002, + 0x1c01f000, 0x4803c856, 0x592c0209, 0x8400054a, + 0x48025a09, 0x1c01f000, 0x59300809, 0x800409c0, + 0x04000008, 0x58040205, 0x82000580, 0x00000152, + 0x04020004, 0x59a8082a, 0x48066006, 0x1c01f000, + 0x599c0416, 0x800001c0, 0x04000008, 0x82000c80, + 0x00000004, 0x04001005, 0x800000c2, 0x800008c4, + 0x80040c00, 0x0401f7f5, 0x59300403, 0x82000580, + 0x00000002, 0x040207f0, 0x5930080a, 0x58040403, + 0x82000580, 0x000007fe, 0x040207eb, 0x42000800, + 0x00000028, 0x0401f7e9, 0x497a6205, 0x497a6009, + 0x4a026203, 0x00000001, 0x4a026403, 0x00000050, + 0x42000800, 0x80000043, 0x0201f000, 0x000209b1, + 0x4933c857, 0x4d340000, 0x5932680a, 0x59340200, + 0x8c00050e, 0x04000006, 0x59300407, 0x82000c80, + 0x00000014, 0x04021004, 0x0c01f806, 0x5c026800, + 0x1c01f000, 0x0201f800, 0x0010870a, 0x0401f7fc, + 0x0010870a, 0x00108b54, 0x00108b58, 0x00108b5b, + 0x0010a11f, 0x0010a13c, 0x0010a140, 0x0010870a, + 0x0010870a, 0x0010870a, 0x0010870a, 0x0010870a, + 0x0010870a, 0x0010870a, 0x0010870a, 0x0010870a, + 0x0010870a, 0x0010870a, 0x0010870a, 0x0010870a, + 0x4803c856, 0x40000000, 0x40000000, 0x1c01f000, + 0x40000000, 0x40000000, 0x1c01f000, 0x5930001d, + 0x4803c857, 0x59300415, 0x4933c857, 0x4803c857, + 0x8c000502, 0x04000005, 0x4803c857, 0x84000540, + 0x48026415, 0x1c01f000, 0x42000000, 0xd0000000, + 0x41300800, 0x0201f800, 0x00100897, 0x0401f810, + 0x0402000e, 0x59300c15, 0x59300403, 0x82000580, + 0x00000040, 0x04000003, 0x84040d40, 0x0401f005, + 0x59a8002a, 0x82000400, 0x0000000a, 0x48026205, + 0x84040d42, 0x48066415, 0x1c01f000, 0x4933c857, + 0x4d340000, 0x5932680a, 0x59340a00, 0x8c040d0e, + 0x02000800, 0x0010032d, 0x5930001d, 0x80000540, + 0x04020033, 0x59300403, 0x4803c857, 0x82000580, + 0x00000040, 0x04000003, 0x8d0e1d0e, 0x0402002a, + 0x4d1c0000, 0x41323800, 0x0201f800, 0x00107188, + 0x04000023, 0x4932381d, 0x591c0415, 0x84000542, + 0x48023c15, 0x4936600a, 0x591c0407, 0x82000580, + 0x00000003, 0x04000006, 0x591c0202, 0x4802641a, + 0x591c0402, 0x4802621a, 0x0401f005, 0x591c0202, + 0x4802621a, 0x591c0402, 0x4802641a, 0x491e601f, + 0x4a026407, 0x00000001, 0x4a026403, 0x00000035, + 0x4a026203, 0x00000001, 0x42000800, 0x80000040, + 0x0201f800, 0x000209b1, 0x411e6000, 0x5c023800, + 0x80000580, 0x5c026800, 0x1c01f000, 0x411e6000, + 0x5c023800, 0x59a8002c, 0x48026205, 0x82000540, + 0x00000001, 0x0401f7f8, 0x4933c857, 0x4d2c0000, + 0x4932381d, 0x4a026202, 0x0000ffff, 0x591e5809, + 0x591c0008, 0x8c00051e, 0x04000005, 0x8400051e, + 0x48023808, 0x497a580a, 0x0401f018, 0x592c0409, + 0x8c000518, 0x04000015, 0x84000518, 0x48025c09, + 0x4d400000, 0x592e8207, 0x4a025a07, 0x00000001, + 0x0401fb52, 0x49425a07, 0x5c028000, 0x497a580a, + 0x592c0409, 0x8c000512, 0x04000008, 0x4d2c0000, + 0x84000512, 0x48025c09, 0x592e580a, 0x0201f800, + 0x00100589, 0x5c025800, 0x59a8002c, 0x48026205, + 0x591c0215, 0x48026217, 0x82000d80, 0x00000001, + 0x04000008, 0x4a023a03, 0x00000002, 0x82000580, + 0x00000005, 0x04000008, 0x497a6016, 0x0401f01e, + 0x591c0008, 0x84000540, 0x48023808, 0x4a023a03, + 0x00000004, 0x591c0415, 0x4803c857, 0x8400051c, + 0x84000554, 0x48023c15, 0x592c0010, 0x40001000, + 0x591c0817, 0x80040480, 0x040217f0, 0x591c0017, + 0x82000500, 0xfffffffc, 0x48026016, 0x48023817, + 0x591c0a15, 0x4807c857, 0x82040d80, 0x00000005, + 0x04020005, 0x480bc857, 0x4803c857, 0x4a023813, + 0xffffffff, 0x591c0402, 0x4802641a, 0x591c0202, + 0x4802621a, 0x591e680a, 0x4936600a, 0x4a026407, + 0x00000001, 0x4a026403, 0x00000039, 0x4a026203, + 0x00000001, 0x42000800, 0x80000040, 0x0201f800, + 0x000209b1, 0x5c025800, 0x1c01f000, 0x4933c857, + 0x59300415, 0x8c000514, 0x04000015, 0x8c00051c, + 0x04020012, 0x59300017, 0x80100480, 0x04001006, + 0x04000005, 0x59300415, 0x84000514, 0x8400055c, + 0x0401f009, 0x48126017, 0x48126013, 0x40100000, + 0x592c1810, 0x800c0480, 0x48026012, 0x59300415, + 0x84000514, 0x48026415, 0x1c01f000, 0x4933c857, + 0x8c00051c, 0x04020008, 0x59300013, 0x4803c857, + 0x48026017, 0x59300415, 0x8400055c, 0x4803c857, + 0x48026415, 0x1c01f000, 0x0401f807, 0x42018800, + 0x00000001, 0x04000003, 0x42018800, 0x00000000, + 0x1c01f000, 0x59300c03, 0x4933c857, 0x4807c857, + 0x82040480, 0x00000034, 0x04001006, 0x82040480, + 0x0000003c, 0x04021003, 0x80000580, 0x1c01f000, + 0x82000540, 0x00000001, 0x0401f7fd, 0x41780800, + 0x59a81028, 0x42000000, 0x00000032, 0x0201f800, + 0x0010600e, 0x800811c0, 0x04020003, 0x42001000, + 0x00000014, 0x480b502a, 0x59a81029, 0x480b5022, + 0x41780800, 0x42000000, 0x00000064, 0x0201f800, + 0x0010600e, 0x800811c0, 0x04020003, 0x42001000, + 0x00000014, 0x480b502b, 0x82081400, 0x0000000a, + 0x480b502c, 0x42000800, 0x00000001, 0x0201f800, + 0x001061d9, 0x42000000, 0x30000000, 0x40080800, + 0x0201f800, 0x00020105, 0x42000800, 0x00000003, + 0x59a8100f, 0x0201f800, 0x001061d9, 0x0201f000, + 0x001040ff, 0x4a03502a, 0x00000028, 0x4a03502b, + 0x00000014, 0x4a035022, 0x000007d0, 0x42001000, + 0x0000001e, 0x480b502c, 0x42000800, 0x00000001, + 0x0201f800, 0x001061d9, 0x42000000, 0x30000000, + 0x40080800, 0x0201f800, 0x00020105, 0x42000800, + 0x00000003, 0x59a8100f, 0x0201f000, 0x001061d9, + 0x4933c857, 0x4d2c0000, 0x59300403, 0x82000580, + 0x0000003e, 0x04020005, 0x59325818, 0x812e59c0, + 0x02020800, 0x00100580, 0x5c025800, 0x1c01f000, + 0x4937c857, 0x4d300000, 0x0201f800, 0x00107188, + 0x04000011, 0x4936600a, 0x4a026407, 0x00000001, + 0x492e6009, 0x42000800, 0x00000009, 0x0201f800, + 0x00103d9d, 0x4d380000, 0x42027000, 0x00000033, + 0x0201f800, 0x00020a34, 0x5c027000, 0x82000540, + 0x00000001, 0x5c026000, 0x1c01f000, 0x4933c857, + 0x4d2c0000, 0x4c580000, 0x4d3c0000, 0x59325809, + 0x83380580, 0x00000015, 0x04020025, 0x59a8b05a, + 0x82580c80, 0x00000019, 0x04001003, 0x4200b000, + 0x00000018, 0x8058b104, 0x0401fa18, 0x80000580, + 0x0401fa28, 0x832cac00, 0x0000000a, 0x83cca400, + 0x00000006, 0x0201f800, 0x0010aee2, 0x4c600000, + 0x4200c000, 0x00000001, 0x592c100b, 0x8c081518, + 0x04020006, 0x59a8000f, 0x592c100e, 0x80080580, + 0x04020007, 0x4178c000, 0x5930100a, 0x58081403, + 0x417a7800, 0x0201f800, 0x00101a94, 0x5c00c000, + 0x0201f800, 0x001073af, 0x0401f008, 0x4200b000, + 0x00000002, 0x0401fa17, 0x0201f800, 0x001078e7, + 0x0201f800, 0x00020a10, 0x5c027800, 0x5c00b000, + 0x5c025800, 0x1c01f000, 0x4933c856, 0x42018800, + 0x00000000, 0x4936600a, 0x4a026407, 0x00000001, + 0x492e6009, 0x4d380000, 0x42027000, 0x0000004d, + 0x0201f800, 0x00020a34, 0x5c027000, 0x82000540, + 0x00000001, 0x42018800, 0x00000001, 0x1c01f000, + 0x4803c856, 0x4d2c0000, 0x83380580, 0x00000015, + 0x0402002c, 0x59a8085a, 0x59325809, 0x5930040b, + 0x80040580, 0x04020027, 0x4c500000, 0x4c540000, + 0x4c580000, 0x83cca400, 0x00000006, 0x4050a800, + 0x5930b40b, 0x8258b400, 0x00000003, 0x8058b104, + 0x0201f800, 0x0010af0c, 0x83cca400, 0x00000006, + 0x592cb206, 0x8258b400, 0x00000003, 0x8058b104, + 0x832cac00, 0x00000007, 0x0201f800, 0x0010aee2, + 0x592e5801, 0x812e59c0, 0x040207f6, 0x5931d822, + 0x58ef400a, 0x58ee580c, 0x4a025a05, 0x00000103, + 0x58ec0008, 0x0801f800, 0x59300402, 0x5c00b000, + 0x5c00a800, 0x5c00a000, 0x5c025800, 0x1c01f000, + 0x0201f800, 0x001078e7, 0x5c025800, 0x1c01f000, + 0x4933c857, 0x82040d80, 0x00000035, 0x04000005, + 0x5930141a, 0x0401f858, 0x04000027, 0x0401f006, + 0x4d300000, 0x5932601f, 0x0401f85d, 0x5c026000, + 0x04000020, 0x591c0c07, 0x82040580, 0x00000003, + 0x04000004, 0x82040580, 0x00000006, 0x0402001c, + 0x591c0c02, 0x5930041a, 0x80040580, 0x04000009, + 0x5930021a, 0x80040580, 0x04020015, 0x591c0a02, + 0x5930041a, 0x80040580, 0x04020011, 0x0401f009, + 0x59300a1a, 0x82040580, 0x0000ffff, 0x04000005, + 0x591c0202, 0x59300a1a, 0x80040580, 0x04020008, + 0x591c000a, 0x5930080a, 0x80040580, 0x1c01f000, + 0x417a3800, 0x82000540, 0x00000001, 0x1c01f000, + 0x4803c856, 0x59b800e4, 0x8c000538, 0x02020800, + 0x0010032d, 0x42000800, 0x0000ff00, 0x4a0370e4, + 0x20000000, 0x59b800e4, 0x80040840, 0x02000800, + 0x0010032d, 0x8c00053c, 0x040207f9, 0x4a0370e4, + 0x30000000, 0x40000000, 0x40000000, 0x40000000, + 0x59b800e4, 0x8c00053c, 0x040207f1, 0x1c01f000, + 0x4803c856, 0x4a0370e4, 0x20000000, 0x40000000, + 0x59b800e4, 0x8c000538, 0x040207fb, 0x1c01f000, + 0x0401f807, 0x42018800, 0x00000001, 0x04020003, + 0x42018800, 0x00000000, 0x1c01f000, 0x59300808, + 0x8c040d1e, 0x592c0c09, 0x04020002, 0x8c040d18, + 0x1c01f000, 0x0201f800, 0x00108941, 0x04000007, + 0x800800c4, 0x800808ca, 0x80040c00, 0x82063c00, + 0x0010f694, 0x491fc857, 0x1c01f000, 0x0201f800, + 0x00109291, 0x04020007, 0x59301402, 0x0401fff2, + 0x04000007, 0x411c0000, 0x81300580, 0x04000003, + 0x81780500, 0x0401f002, 0x81300540, 0x1c01f000, + 0x4d300000, 0x0201f800, 0x00020319, 0x0402000a, + 0x42026000, 0x0010f64c, 0x4936600a, 0x492e6009, + 0x0201f800, 0x0010e06f, 0x80000580, 0x5c026000, + 0x1c01f000, 0x82000540, 0x00000001, 0x0401f7fc, + 0x4933c857, 0x0201f800, 0x00108953, 0x02000800, + 0x0010032d, 0x4d2c0000, 0x4d340000, 0x4d440000, + 0x4c580000, 0x59325809, 0x5932680a, 0x49425a07, + 0x0201f800, 0x00104f93, 0x592e8c07, 0x592c4208, + 0x82200500, 0x0000000f, 0x0c01f806, 0x5c00b000, + 0x5c028800, 0x5c026800, 0x5c025800, 0x1c01f000, + 0x00108de3, 0x00108e05, 0x00108e0c, 0x00108e10, + 0x00108e19, 0x00108de0, 0x00108de0, 0x00108de0, + 0x00108e1d, 0x00108e29, 0x00108e29, 0x00108de0, + 0x00108de0, 0x00108de0, 0x00108de0, 0x00108de0, + 0x4803c857, 0x0201f800, 0x0010032d, 0x814281c0, + 0x04020012, 0x41785800, 0x592c0405, 0x8c00051c, + 0x04020002, 0x59345c05, 0x442c2800, 0x59340008, + 0x48002802, 0x59340009, 0x48002801, 0x59340006, + 0x48002804, 0x59340007, 0x48002803, 0x4200b000, + 0x0000000b, 0x0401f037, 0x592c0208, 0x8c00051e, + 0x4200b000, 0x00000002, 0x04020032, 0x8204b540, + 0x00000000, 0x0400002f, 0x44042800, 0x5932680a, + 0x59340400, 0x48002801, 0x4200b000, 0x00000002, + 0x0401f028, 0x814281c0, 0x040207f0, 0x59345c05, + 0x442c2800, 0x4200b000, 0x00000001, 0x0401f021, + 0x8340b540, 0x00000000, 0x0400001e, 0x0401f027, + 0x814281c0, 0x04020025, 0x59340200, 0x44002800, + 0x59340001, 0x48002801, 0x4200b000, 0x00000002, + 0x0401f014, 0x8340b540, 0x00000000, 0x0402001b, + 0x0401f010, 0x8340b540, 0x00000000, 0x0400000d, + 0x0201f800, 0x001041ca, 0x04000014, 0x8c20450e, + 0x04000002, 0x497a600a, 0x4178b000, 0x497a5a07, + 0x0401f004, 0x8340b540, 0x00000000, 0x0402000b, + 0x592c0405, 0x8400051c, 0x48025c05, 0x592c0208, + 0x8400051e, 0x48025a08, 0x0401f8ac, 0x497a6009, + 0x0201f000, 0x000203ab, 0x592c0208, 0x8c00051e, + 0x4200b000, 0x00000002, 0x040207f2, 0x8204b540, + 0x00000000, 0x040007ef, 0x44042800, 0x4200b000, + 0x00000001, 0x0401f7eb, 0x4937c857, 0x4d300000, + 0x0201f800, 0x00107188, 0x04000011, 0x4936600a, + 0x4a026407, 0x00000001, 0x492e6009, 0x42000800, + 0x0000000b, 0x0201f800, 0x00103d9d, 0x4d380000, + 0x42027000, 0x00000043, 0x0201f800, 0x00020a34, + 0x5c027000, 0x82000540, 0x00000001, 0x5c026000, + 0x1c01f000, 0x4937c857, 0x4d2c0000, 0x59325809, + 0x83380580, 0x00000015, 0x04020028, 0x59a8005a, + 0x82000580, 0x00000004, 0x04020024, 0x59a8000f, + 0x592c100a, 0x80080580, 0x04020013, 0x4d440000, + 0x592e8c07, 0x592c0208, 0x4803c856, 0x82000500, + 0x00000080, 0x84000548, 0x4d3c0000, 0x42027800, + 0x00001000, 0x8c00050e, 0x04000002, 0x853e7d5c, + 0x0201f800, 0x0010412f, 0x5c027800, 0x5c028800, + 0x0401f004, 0x4803c856, 0x0201f800, 0x001041ca, + 0x0201f800, 0x00108953, 0x04000017, 0x4d400000, + 0x42028000, 0x00000000, 0x41780800, 0x0401ff35, + 0x5c028000, 0x0401f00e, 0x0201f800, 0x001041ca, + 0x040207f4, 0x0201f800, 0x00108953, 0x0400000a, + 0x4c580000, 0x4200b000, 0x00000002, 0x0401f86d, + 0x5c00b000, 0x0201f800, 0x001078e7, 0x0201f800, + 0x00020a10, 0x5c025800, 0x1c01f000, 0x4937c857, + 0x4d300000, 0x0201f800, 0x00107188, 0x04000012, + 0x4936600a, 0x4a026407, 0x00000001, 0x4d3c0000, + 0x4d380000, 0x417a7800, 0x0201f800, 0x00103d92, + 0x492e6009, 0x42027000, 0x00000004, 0x0201f800, + 0x00020a34, 0x5c027000, 0x5c027800, 0x82000540, + 0x00000001, 0x5c026000, 0x1c01f000, 0x4937c857, + 0x4d300000, 0x0201f800, 0x00107188, 0x04000011, + 0x4936600a, 0x42000800, 0x00000003, 0x0201f800, + 0x00103d9d, 0x4a026407, 0x00000001, 0x492e6009, + 0x4d380000, 0x42027000, 0x00000051, 0x0201f800, + 0x00020a34, 0x5c027000, 0x82000540, 0x00000001, + 0x5c026000, 0x1c01f000, 0x4933c857, 0x42028800, + 0x000007fc, 0x42003000, 0x00fffffc, 0x0201f800, + 0x00103de1, 0x02020800, 0x0010032d, 0x4936600a, + 0x417a7800, 0x0201f800, 0x00103d92, 0x42000800, + 0x00000003, 0x0201f800, 0x00103d9d, 0x497a6c12, + 0x4a026203, 0x00000001, 0x4a026403, 0x00000002, + 0x0201f000, 0x0010608d, 0x492fc857, 0x4c580000, + 0x4c000000, 0x8058b1c0, 0x0400000b, 0x82580500, + 0xfffffff0, 0x02020800, 0x0010032d, 0x8058b0d0, + 0x592c0409, 0x82000500, 0xfffff0ff, 0x80580540, + 0x48025c09, 0x5c000000, 0x5c00b000, 0x1c01f000, + 0x492fc857, 0x4c000000, 0x4c040000, 0x800000d8, + 0x592c0c09, 0x82040d00, 0xffff0fff, 0x80040540, + 0x48025c09, 0x5c000800, 0x5c000000, 0x1c01f000, + 0x4933c857, 0x4d2c0000, 0x59325809, 0x592c0208, + 0x8400055e, 0x48025a08, 0x4c500000, 0x4c540000, + 0x4c580000, 0x0401ffd9, 0x0201f800, 0x00104f93, + 0x46002800, 0x00000018, 0x80142800, 0x8058b040, + 0x83cca400, 0x00000007, 0x4014a800, 0x0201f800, + 0x0010aee2, 0x5c00b000, 0x5c00a800, 0x5c00a000, + 0x5c025800, 0x1c01f000, 0x0401f807, 0x42018800, + 0x00000001, 0x04000003, 0x42018800, 0x00000000, + 0x1c01f000, 0x59325809, 0x592c0205, 0x82000580, + 0x00000152, 0x1c01f000, 0x59300020, 0x80000540, + 0x02020800, 0x00100a77, 0x1c01f000, 0x4d2c0000, + 0x59325809, 0x59300203, 0x4933c857, 0x492fc857, + 0x493bc857, 0x4803c857, 0x82003480, 0x0000000e, + 0x02021800, 0x0010032d, 0x0c01f803, 0x5c025800, + 0x1c01f000, 0x00108f43, 0x00108f4e, 0x00108f8c, + 0x00108f43, 0x00108f43, 0x00108f43, 0x00108f43, + 0x00108f43, 0x00108f45, 0x00108f43, 0x00108f43, + 0x00108f43, 0x00108f43, 0x00108f43, 0x0201f800, + 0x0010032d, 0x83383480, 0x00000058, 0x02021800, + 0x0010032d, 0x493a6403, 0x4a026203, 0x00000001, + 0x0201f000, 0x0010608d, 0x83380580, 0x00000013, + 0x04020010, 0x492fc857, 0x592c000d, 0x800001c0, + 0x04000006, 0x4a026203, 0x00000002, 0x59a8002a, + 0x48026006, 0x1c01f000, 0x4a025a07, 0x00000000, + 0x0201f800, 0x000203ab, 0x0201f000, 0x00020a10, + 0x83380580, 0x00000027, 0x0400001b, 0x83380580, + 0x00000014, 0x04000012, 0x83380580, 0x00000015, + 0x04000005, 0x83380580, 0x00000016, 0x02020800, + 0x0010032d, 0x0201f800, 0x001064f2, 0x02020000, + 0x001071c7, 0x59300203, 0x82000580, 0x00000002, + 0x02020800, 0x0010032d, 0x0401f016, 0x4937c857, + 0x0201f800, 0x00106102, 0x4a02580f, 0x00000011, + 0x0401f006, 0x4937c857, 0x0201f800, 0x00106102, + 0x4a02580f, 0x00000010, 0x4a025a07, 0x00000031, + 0x4a02580e, 0x00000004, 0x0201f800, 0x000203ab, + 0x0201f800, 0x001043e2, 0x0201f000, 0x00107144, + 0x59341400, 0x82081d00, 0x000000ff, 0x59300c03, + 0x480bc857, 0x4807c857, 0x82040580, 0x00000053, + 0x0400002e, 0x82040580, 0x00000002, 0x04000016, + 0x82040580, 0x00000001, 0x04000017, 0x82040580, + 0x00000003, 0x0400001c, 0x82040580, 0x00000005, + 0x0400001d, 0x82040580, 0x00000033, 0x0400001a, + 0x82040580, 0x00000000, 0x0400001b, 0x82040580, + 0x00000004, 0x02020800, 0x0010032d, 0x0401f89e, + 0x0401f016, 0x820c0580, 0x00000003, 0x04000849, + 0x0401f012, 0x820c0580, 0x0000000b, 0x0402000f, + 0x42000800, 0x00000007, 0x0201f800, 0x00103d9d, + 0x0401f00a, 0x820c0580, 0x00000005, 0x04000861, + 0x0401f006, 0x820c0580, 0x00000009, 0x04000886, + 0x0401f002, 0x0401f890, 0x4a026403, 0x00000052, + 0x59a8105a, 0x592c040c, 0x8c000500, 0x04000003, + 0x42001000, 0x00000008, 0x592c040c, 0x8c000516, + 0x04000003, 0x82081400, 0x00000018, 0x592c000d, + 0x497a580e, 0x497a580f, 0x80080c80, 0x04000009, + 0x04001005, 0x4a025a07, 0x00000007, 0x40001000, + 0x0401f006, 0x4a025a07, 0x00000015, 0x0401f003, + 0x4a025a07, 0x00000000, 0x480a580d, 0x0201f800, + 0x00107329, 0x04000010, 0x592c1001, 0x480a600c, + 0x58080800, 0x82080400, 0x00000002, 0x592c1012, + 0x592c1813, 0x42003000, 0x00000000, 0x42002000, + 0x00100f8a, 0x0201f800, 0x001074b6, 0x04000002, + 0x1c01f000, 0x4a025a07, 0x0000002c, 0x497a580d, + 0x0201f800, 0x000203ab, 0x0201f000, 0x00020a10, + 0x83380580, 0x00000015, 0x0402000a, 0x59a8006d, + 0x8c000502, 0x0402000b, 0x0201f800, 0x00103e7e, + 0x42000800, 0x00000004, 0x0201f000, 0x00103d9d, + 0x42000800, 0x00000007, 0x0201f000, 0x00103d9d, + 0x0201f800, 0x00104755, 0x42001000, 0x00000010, + 0x04020009, 0x59340002, 0x82000500, 0x00ff0000, + 0x82000580, 0x00ff0000, 0x040007ec, 0x42001000, + 0x00000008, 0x0201f800, 0x00104448, 0x040007e7, + 0x592c040c, 0x84000540, 0x48025c0c, 0x0401f7e9, + 0x83380580, 0x00000015, 0x0402000f, 0x59a8006d, + 0x8c000502, 0x04020010, 0x0201f800, 0x00103ee9, + 0x4d3c0000, 0x417a7800, 0x0201f800, 0x00103d92, + 0x5c027800, 0x42000800, 0x00000006, 0x0201f000, + 0x00103d9d, 0x42000800, 0x00000004, 0x0201f000, + 0x00103d9d, 0x0201f800, 0x00104755, 0x42001000, + 0x00000010, 0x04020009, 0x59340002, 0x82000500, + 0x00ff0000, 0x82000580, 0x00ff0000, 0x040007e7, + 0x42001000, 0x00000008, 0x0201f800, 0x00104448, + 0x040007e2, 0x592c040c, 0x84000540, 0x48025c0c, + 0x0401f7e9, 0x42000800, 0x00000004, 0x0201f000, + 0x00103d9d, 0x83380580, 0x00000015, 0x04020005, + 0x0201f800, 0x00109f8a, 0x02000800, 0x001040a6, + 0x1c01f000, 0x83380580, 0x00000015, 0x0402001d, + 0x4c580000, 0x83cc1400, 0x00000008, 0x4200b000, + 0x00000002, 0x83341c00, 0x00000006, 0x0201f800, + 0x00107df9, 0x04020012, 0x83cc1400, 0x0000000a, + 0x4200b000, 0x00000002, 0x83341c00, 0x00000008, + 0x0201f800, 0x00107df9, 0x04020009, 0x59342200, + 0x59cc1007, 0x800811c0, 0x04000003, 0x480a6801, + 0x84102542, 0x8410251a, 0x48126a00, 0x5c00b000, + 0x1c01f000, 0x42000000, 0x0010bd35, 0x0201f800, + 0x0010ae10, 0x0201f800, 0x001061b2, 0x59300203, + 0x4933c857, 0x4803c857, 0x82000c80, 0x0000000e, + 0x02021800, 0x0010032d, 0x0c01f803, 0x0201f000, + 0x0010619f, 0x00109091, 0x001090a0, 0x00109092, + 0x0010908f, 0x0010908f, 0x0010908f, 0x0010908f, + 0x0010908f, 0x0010908f, 0x0010908f, 0x0010908f, + 0x0010908f, 0x0010908f, 0x0010908f, 0x0201f800, + 0x0010032d, 0x1c01f000, 0x59300403, 0x82000580, + 0x00000052, 0x02000000, 0x00108713, 0x0201f800, + 0x001043e2, 0x59325809, 0x4a025a07, 0x00000006, + 0x0201f800, 0x000203ab, 0x0201f000, 0x00107144, + 0x59301804, 0x840c0520, 0x48026004, 0x598c000f, + 0x81300580, 0x04020010, 0x8c0c1d20, 0x04020010, + 0x42001000, 0x0010bc55, 0x50081000, 0x58080002, + 0x82000580, 0x00000100, 0x0400000f, 0x5808000b, + 0x81300580, 0x02020800, 0x0010032d, 0x4978100b, + 0x0401f003, 0x8c0c1d20, 0x040207dc, 0x0201f800, + 0x0010e453, 0x80c40040, 0x040007d8, 0x0201f800, + 0x0010032d, 0x0201f800, 0x0010642d, 0x040007f8, + 0x59300203, 0x82000c80, 0x0000000e, 0x02021800, + 0x0010032d, 0x0c01f7bc, 0x4933c857, 0x4c500000, + 0x4c540000, 0x4c580000, 0x592c0c08, 0x48065814, + 0x59cc0809, 0x48065808, 0x59cc0808, 0x4806580c, + 0x59a8086c, 0x82040500, 0x000003ff, 0x800010c4, + 0x8c040d14, 0x04000005, 0x59cc0002, 0x82000500, + 0x00000003, 0x80081480, 0x480a621b, 0x412c0800, + 0x0201f800, 0x0010055a, 0x02000800, 0x0010032d, + 0x492c080a, 0x58040409, 0x84000552, 0x84000540, + 0x48000c09, 0x82081400, 0x00000003, 0x80081104, + 0x83cca400, 0x00000006, 0x832cac00, 0x00000005, + 0x42000800, 0x00000010, 0x82080480, 0x00000010, + 0x04021003, 0x40080800, 0x80000580, 0x4004b000, + 0x4c000000, 0x0201f800, 0x0010af0c, 0x5c000000, + 0x800001c0, 0x0400000d, 0x412c1000, 0x4c000000, + 0x0201f800, 0x0010055a, 0x02000800, 0x0010032d, + 0x492c1001, 0x832cac00, 0x00000005, 0x5c000000, + 0x40001000, 0x0401f7e9, 0x5c00b000, 0x5c00a800, + 0x5c00a000, 0x1c01f000, 0x4933c857, 0x4d2c0000, + 0x4c380000, 0x59325809, 0x5930021b, 0x48025a09, + 0x59301012, 0x4a026203, 0x00000002, 0x592c020b, + 0x8c000500, 0x04000004, 0x59300016, 0x592c1010, + 0x80081480, 0x800811c0, 0x04020008, 0x4a025a07, + 0x00000000, 0x592c000c, 0x82000500, 0x00000c00, + 0x0400000b, 0x0401f00b, 0x8c08153e, 0x04000006, + 0x4a025a07, 0x00000007, 0x80081080, 0x80081000, + 0x0401f003, 0x4a025a07, 0x00000015, 0x480a5808, + 0x42000000, 0x0010c35c, 0x50007000, 0x5838000a, + 0x80000540, 0x04020008, 0x4930700b, 0x4930700a, + 0x58380002, 0x82000580, 0x00000000, 0x04020809, + 0x0401f005, 0x82001400, 0x00000000, 0x45301000, + 0x4930700a, 0x5c007000, 0x5c025800, 0x1c01f000, + 0x4933c857, 0x592c000a, 0x40001000, 0x48007009, + 0x82080400, 0x00000005, 0x48007003, 0x592c000e, + 0x592c100f, 0x48007006, 0x48087007, 0x592c0014, + 0x592c1209, 0x80080c80, 0x04001002, 0x40001000, + 0x82081400, 0x00000003, 0x80081104, 0x82080480, + 0x00000010, 0x04021003, 0x80000580, 0x0401f003, + 0x42001000, 0x00000010, 0x4800700c, 0x48087004, + 0x800810c4, 0x48087005, 0x40381000, 0x0201f000, + 0x00020016, 0x4d2c0000, 0x0201f800, 0x0010055a, + 0x02000800, 0x0010032d, 0x42000800, 0x0010c35c, + 0x452c0800, 0x497a580a, 0x497a580b, 0x497a580c, + 0x4a025808, 0x00109174, 0x4a025802, 0x00000100, + 0x4a025801, 0x00000000, 0x5c025800, 0x1c01f000, + 0x4833c857, 0x4d300000, 0x4d2c0000, 0x4c5c0000, + 0x4030b800, 0x585c0009, 0x80025d40, 0x04020004, + 0x585c000b, 0x4c000000, 0x0401f044, 0x585c0002, + 0x82000580, 0x00000100, 0x04020022, 0x592c0801, + 0x4c040000, 0x0201f800, 0x00100580, 0x5c000800, + 0x800409c0, 0x0400001c, 0x4804b809, 0x585c100c, + 0x800811c0, 0x04020005, 0x40065800, 0x0201f800, + 0x00100589, 0x0401f014, 0x82080480, 0x00000010, 0x04021003, 0x80000580, 0x0401f003, 0x42001000, - 0x00000010, 0x4800700c, 0x48087004, 0x800810c4, - 0x48087005, 0x40381000, 0x0201f000, 0x00020016, - 0x4d2c0000, 0x0201f800, 0x0010055a, 0x02000800, - 0x0010032d, 0x42000800, 0x0010c25c, 0x452c0800, - 0x497a580a, 0x497a580b, 0x497a580c, 0x4a025808, - 0x001090bb, 0x4a025802, 0x00000100, 0x4a025801, - 0x00000000, 0x5c025800, 0x1c01f000, 0x4833c857, - 0x4d300000, 0x4d2c0000, 0x4c5c0000, 0x4030b800, - 0x585c0009, 0x80025d40, 0x04020004, 0x585c000b, - 0x4c000000, 0x0401f044, 0x585c0002, 0x82000580, - 0x00000100, 0x04020022, 0x592c0801, 0x4c040000, - 0x0201f800, 0x00100580, 0x5c000800, 0x800409c0, - 0x0400001c, 0x4804b809, 0x585c100c, 0x800811c0, - 0x04020005, 0x40065800, 0x0201f800, 0x00100589, - 0x0401f014, 0x82080480, 0x00000010, 0x04021003, - 0x80000580, 0x0401f003, 0x42001000, 0x00000010, - 0x4800b80c, 0x4808b804, 0x800810c4, 0x4808b805, - 0x82040400, 0x00000005, 0x4800b803, 0x405c1000, - 0x0201f800, 0x00020016, 0x0401f025, 0x0401f828, - 0x585c000b, 0x80026540, 0x59300000, 0x80000d40, - 0x04020002, 0x4800b80a, 0x4800b80b, 0x497a6000, - 0x4c000000, 0x4978b809, 0x59325809, 0x4a025a05, - 0x00000103, 0x59300402, 0x48025c07, 0x592c100c, - 0x4c080000, 0x0201f800, 0x000203ab, 0x0201f800, - 0x0010899c, 0x5c001000, 0x8c081518, 0x04000004, - 0x0201f800, 0x00108a6d, 0x0401f003, 0x0201f800, - 0x00020a10, 0x405c7000, 0x5c000000, 0x80026540, - 0x04000003, 0x59325809, 0x0401ff79, 0x5c00b800, - 0x5c025800, 0x5c026000, 0x1c01f000, 0x483bc857, - 0x58380009, 0x40025800, 0x0201f800, 0x00100589, - 0x5838000b, 0x80026540, 0x59300009, 0x80025d40, - 0x4a025a07, 0x00000002, 0x1c01f000, 0x4803c857, - 0x4933c857, 0x4d1c0000, 0x497a601d, 0x41323800, - 0x40026000, 0x4d3c0000, 0x42027800, 0x00000005, - 0x0401f840, 0x5c027800, 0x411e6000, 0x4933c857, - 0x59300415, 0x84000502, 0x48026415, 0x5c023800, - 0x1c01f000, 0x481bc857, 0x4933c857, 0x4c5c0000, - 0x4c600000, 0x4010b800, 0x4014c000, 0x0201f800, - 0x0010a4ae, 0x8d0e1d20, 0x04000008, 0x40602800, - 0x405c3000, 0x0201f800, 0x00109f41, 0x82000540, - 0x00000001, 0x0401f002, 0x80000580, 0x5c00c000, - 0x5c00b800, 0x1c01f000, 0x4803c856, 0x4d300000, - 0x42026000, 0x0010f584, 0x59a8000d, 0x81640580, - 0x0400001a, 0x59300c07, 0x82040580, 0x00000001, - 0x0400000d, 0x82040580, 0x00000004, 0x04000006, - 0x82040580, 0x00000010, 0x02000800, 0x001085ca, - 0x0401f009, 0x59300203, 0x82000d80, 0x00000007, - 0x04000005, 0x4807c857, 0x0201f800, 0x00108b8c, - 0x04020808, 0x83326400, 0x00000024, 0x41580000, - 0x81300480, 0x040017e5, 0x5c026000, 0x1c01f000, - 0x4933c857, 0x59300403, 0x4803c857, 0x0201f800, - 0x0010610d, 0x4df00000, 0x59300407, 0x4803c857, - 0x82000d80, 0x00000002, 0x04000018, 0x82000d80, - 0x00000001, 0x04000009, 0x82000d80, 0x00000004, - 0x04000006, 0x4933c856, 0x5c03e000, 0x02000800, - 0x001060fa, 0x0401f04c, 0x59300203, 0x82000d80, - 0x00000001, 0x04000018, 0x82000d80, 0x00000002, - 0x04000036, 0x82000d80, 0x00000005, 0x04000033, - 0x0201f800, 0x0010032d, 0x59300203, 0x82000d80, - 0x00000009, 0x0400000c, 0x82000d80, 0x0000000b, - 0x04000009, 0x82000d80, 0x0000000a, 0x04000027, - 0x82000d80, 0x0000000c, 0x04000024, 0x0201f800, - 0x0010032d, 0x598c000f, 0x81300580, 0x04020004, - 0x0201f800, 0x00106388, 0x0402001c, 0x59300004, - 0x4803c857, 0x8c000520, 0x04000004, 0x84000520, - 0x48026004, 0x0401f015, 0x0201f800, 0x0010e343, - 0x80c40040, 0x02020800, 0x0010032d, 0x5c03e000, - 0x02000800, 0x001060fa, 0x59300407, 0x82000d80, - 0x00000002, 0x04000007, 0x0201f800, 0x001043c3, - 0x0201f800, 0x001089ca, 0x02000800, 0x00107851, - 0x0201f000, 0x001070b5, 0x5c03e000, 0x02000800, - 0x001060fa, 0x59300407, 0x82000d80, 0x00000002, - 0x04000009, 0x0201f800, 0x001043c3, 0x0201f800, - 0x001089ca, 0x02000800, 0x00107851, 0x8d3e7d00, - 0x04000005, 0x0201f800, 0x0010a591, 0x0201f000, - 0x001070b5, 0x4a02621e, 0x00000001, 0x4a026403, + 0x00000010, 0x4800b80c, 0x4808b804, 0x800810c4, + 0x4808b805, 0x82040400, 0x00000005, 0x4800b803, + 0x405c1000, 0x0201f800, 0x00020016, 0x0401f025, + 0x0401f828, 0x585c000b, 0x80026540, 0x59300000, + 0x80000d40, 0x04020002, 0x4800b80a, 0x4800b80b, + 0x497a6000, 0x4c000000, 0x4978b809, 0x59325809, + 0x4a025a05, 0x00000103, 0x59300402, 0x48025c07, + 0x592c100c, 0x4c080000, 0x0201f800, 0x000203ab, + 0x0201f800, 0x00108a55, 0x5c001000, 0x8c081518, + 0x04000004, 0x0201f800, 0x00108b26, 0x0401f003, + 0x0201f800, 0x00020a10, 0x405c7000, 0x5c000000, + 0x80026540, 0x04000003, 0x59325809, 0x0401ff79, + 0x5c00b800, 0x5c025800, 0x5c026000, 0x1c01f000, + 0x483bc857, 0x58380009, 0x40025800, 0x0201f800, + 0x00100589, 0x5838000b, 0x80026540, 0x59300009, + 0x80025d40, 0x4a025a07, 0x00000002, 0x1c01f000, + 0x4803c857, 0x4933c857, 0x4d1c0000, 0x497a601d, + 0x41323800, 0x40026000, 0x4d3c0000, 0x42027800, + 0x00000005, 0x0401f840, 0x5c027800, 0x411e6000, + 0x4933c857, 0x59300415, 0x84000502, 0x48026415, + 0x5c023800, 0x1c01f000, 0x481bc857, 0x4933c857, + 0x4c5c0000, 0x4c600000, 0x4010b800, 0x4014c000, + 0x0201f800, 0x0010a5a1, 0x8d0e1d20, 0x04000008, + 0x40602800, 0x405c3000, 0x0201f800, 0x0010a018, + 0x82000540, 0x00000001, 0x0401f002, 0x80000580, + 0x5c00c000, 0x5c00b800, 0x1c01f000, 0x4803c856, + 0x4d300000, 0x42026000, 0x0010f694, 0x59a8000d, + 0x81640580, 0x0400001a, 0x59300c07, 0x82040580, + 0x00000001, 0x0400000d, 0x82040580, 0x00000004, + 0x04000006, 0x82040580, 0x00000010, 0x02000800, + 0x0010867f, 0x0401f009, 0x59300203, 0x82000d80, + 0x00000007, 0x04000005, 0x4807c857, 0x0201f800, + 0x00108c45, 0x04020808, 0x83326400, 0x00000024, + 0x41580000, 0x81300480, 0x040017e5, 0x5c026000, + 0x1c01f000, 0x4933c857, 0x59300403, 0x4803c857, + 0x0201f800, 0x001061b2, 0x4df00000, 0x59300407, + 0x4803c857, 0x82000d80, 0x00000002, 0x04000018, + 0x82000d80, 0x00000001, 0x04000009, 0x82000d80, + 0x00000004, 0x04000006, 0x4933c856, 0x5c03e000, + 0x02000800, 0x0010619f, 0x0401f04b, 0x59300203, + 0x82000d80, 0x00000001, 0x04000018, 0x82000d80, + 0x00000002, 0x04000035, 0x82000d80, 0x00000005, + 0x04000032, 0x0201f800, 0x0010032d, 0x59300203, + 0x82000d80, 0x00000009, 0x0400000c, 0x82000d80, + 0x0000000b, 0x04000009, 0x82000d80, 0x0000000a, + 0x04000026, 0x82000d80, 0x0000000c, 0x04000023, + 0x0201f800, 0x0010032d, 0x598c000f, 0x81300580, + 0x04020004, 0x0201f800, 0x0010642d, 0x0402001b, + 0x59300004, 0x4803c857, 0x8c000520, 0x04000004, + 0x84000520, 0x48026004, 0x0401f014, 0x0201f800, + 0x0010e453, 0x80c40040, 0x02020800, 0x0010032d, + 0x5c03e000, 0x02000800, 0x0010619f, 0x59300407, + 0x82000d80, 0x00000002, 0x04000017, 0x0201f800, + 0x001043e2, 0x0201f800, 0x00108a83, 0x02000800, + 0x001078e7, 0x0401f010, 0x5c03e000, 0x02000800, + 0x0010619f, 0x59300407, 0x82000d80, 0x00000002, + 0x04000009, 0x0201f800, 0x001043e2, 0x0201f800, + 0x00108a83, 0x02000800, 0x001078e7, 0x8d3e7d00, + 0x04000005, 0x0201f800, 0x0010a684, 0x0201f000, + 0x00107144, 0x4a02621e, 0x00000001, 0x4a026403, 0x00000085, 0x4a026203, 0x00000009, 0x4a026407, 0x00000002, 0x42000800, 0x8000004b, 0x0201f000, - 0x000209b1, 0x83300480, 0x0010f518, 0x04001006, + 0x000209b1, 0x83300480, 0x0010f628, 0x04001006, 0x41540000, 0x81300480, 0x04021003, 0x80000580, 0x1c01f000, 0x81780080, 0x1c01f000, 0x59a8085a, 0x59cc2808, 0x82140500, 0x00000c00, 0x04000004, @@ -9378,11 +9419,11 @@ static const uint32_t isp_2400_risc_code[] = { 0x04000005, 0x82040480, 0x00000018, 0x0400100b, 0x59cc000b, 0x80080400, 0x04001008, 0x04000006, 0x82000400, 0x00000018, 0x80040480, 0x04001003, - 0x80000580, 0x1c01f000, 0x42000000, 0x0010bc12, - 0x0201f800, 0x0010ad1d, 0x82000540, 0x00000001, + 0x80000580, 0x1c01f000, 0x42000000, 0x0010bd12, + 0x0201f800, 0x0010ae10, 0x82000540, 0x00000001, 0x0401f7f9, 0x4933c857, 0x4937c857, 0x492fc857, 0x48efc857, 0x4d1c0000, 0x4d300000, 0x41323800, - 0x0201f800, 0x001070f5, 0x04000020, 0x48ee6022, + 0x0201f800, 0x00107188, 0x04000020, 0x48ee6022, 0x4936600a, 0x591c0407, 0x82000580, 0x00000003, 0x04000008, 0x591c0202, 0x4803c857, 0x4802641a, 0x591c0402, 0x4802621a, 0x4803c857, 0x0401f007, @@ -9393,49 +9434,49 @@ static const uint32_t isp_2400_risc_code[] = { 0x82000540, 0x00000001, 0x5c026000, 0x5c023800, 0x1c01f000, 0x4933c857, 0x493bc857, 0x4937c857, 0x4d2c0000, 0x4c500000, 0x4c540000, 0x4c580000, - 0x59325809, 0x0201f800, 0x0010889a, 0x04000023, + 0x59325809, 0x0201f800, 0x00108953, 0x04000023, 0x83cca400, 0x00000006, 0x832cac00, 0x00000007, 0x83380580, 0x00000016, 0x04020009, 0x59a8005a, 0x82000580, 0x00000008, 0x04020014, 0x492fc857, 0x4200b000, 0x00000002, 0x0401f00b, 0x83380580, 0x00000015, 0x0402000d, 0x492fc857, 0x59a8005a, 0x82000580, 0x00000018, 0x04020008, 0x4200b000, - 0x00000006, 0x0201f800, 0x0010adef, 0x0201f800, - 0x00107319, 0x0401f005, 0x0201f800, 0x00107851, + 0x00000006, 0x0201f800, 0x0010aee2, 0x0201f800, + 0x001073af, 0x0401f005, 0x0201f800, 0x001078e7, 0x0201f800, 0x00020a10, 0x5c00b000, 0x5c00a800, 0x5c00a000, 0x5c025800, 0x1c01f000, 0x4933c857, - 0x0201f800, 0x0010610d, 0x4df00000, 0x59300203, + 0x0201f800, 0x001061b2, 0x4df00000, 0x59300203, 0x82000c80, 0x0000000e, 0x02021800, 0x0010032d, - 0x0c01f001, 0x00109281, 0x0010927f, 0x00109288, - 0x001092a8, 0x00109286, 0x0010927f, 0x0010927f, - 0x0010927f, 0x0010927f, 0x0010927f, 0x0010927f, - 0x0010927f, 0x0010927f, 0x0010927f, 0x0201f800, - 0x0010032d, 0x5c03e000, 0x02000800, 0x001060fa, - 0x80000580, 0x1c01f000, 0x0201f800, 0x00100bd4, - 0x5c03e000, 0x02000800, 0x001060fa, 0x8d3e7d02, + 0x0c01f001, 0x00109339, 0x00109337, 0x00109340, + 0x00109360, 0x0010933e, 0x00109337, 0x00109337, + 0x00109337, 0x00109337, 0x00109337, 0x00109337, + 0x00109337, 0x00109337, 0x00109337, 0x0201f800, + 0x0010032d, 0x5c03e000, 0x02000800, 0x0010619f, + 0x80000580, 0x1c01f000, 0x0201f800, 0x00100bd5, + 0x5c03e000, 0x02000800, 0x0010619f, 0x8d3e7d02, 0x04020017, 0x4d2c0000, 0x59325809, 0x4a025a07, 0x00000005, 0x0201f800, 0x000203ab, 0x5c025800, 0x497a6009, 0x8d3e7d00, 0x0402000f, 0x4a02621e, 0x0000000a, 0x4a026403, 0x00000085, 0x4a026203, 0x00000009, 0x4a026407, 0x00000002, 0x42000800, 0x8000404b, 0x0201f800, 0x000209b1, 0x81780080, - 0x1c01f000, 0x0201f800, 0x001070b5, 0x0401f7fc, - 0x0201f800, 0x001085a4, 0x04020004, 0x0201f800, - 0x00106351, 0x04020009, 0x0201f800, 0x0010e1ca, - 0x80c40040, 0x040007d7, 0x0201f800, 0x00106018, + 0x1c01f000, 0x0201f800, 0x00107144, 0x0401f7fc, + 0x0201f800, 0x00108659, 0x04020004, 0x0201f800, + 0x001063f6, 0x04020009, 0x0201f800, 0x0010e2da, + 0x80c40040, 0x040007d7, 0x0201f800, 0x001060bd, 0x02020800, 0x0010032d, 0x59300203, 0x82000d80, 0x00000003, 0x02000800, 0x0010032d, 0x82000c80, 0x0000000e, 0x02021800, 0x0010032d, 0x0c01f7b2, 0x4933c857, 0x4d340000, 0x836c0580, 0x00000003, 0x04020013, 0x599c0018, 0x8c000516, 0x04000004, - 0x0201f800, 0x001032c1, 0x0401f00d, 0x42000800, - 0x00000004, 0x0201f800, 0x00103d8a, 0x4a02641e, - 0x00000021, 0x0201f800, 0x00108e0d, 0x82000540, + 0x0201f800, 0x001032cb, 0x0401f00d, 0x42000800, + 0x00000004, 0x0201f800, 0x00103d9d, 0x4a02641e, + 0x00000021, 0x0201f800, 0x00108ec6, 0x82000540, 0x00000001, 0x5c026800, 0x1c01f000, 0x80000580, 0x0401f7fd, 0x59303009, 0x58181a05, 0x820c1d00, 0x000000ff, 0x820c0580, 0x00000048, 0x04000004, 0x820c0580, 0x0000006a, 0x04020046, 0x58180409, - 0x8c000500, 0x04000043, 0x42000000, 0x0010c25c, + 0x8c000500, 0x04000043, 0x42000000, 0x0010c35c, 0x50006000, 0x41781800, 0x5830200b, 0x41300000, 0x80100580, 0x04000006, 0x40101800, 0x580c2000, 0x801021c0, 0x040207fa, 0x0401f036, 0x4933c857, @@ -9446,7 +9487,7 @@ static const uint32_t isp_2400_risc_code[] = { 0x4810600b, 0x801021c0, 0x0402001e, 0x4978600a, 0x0401f01c, 0x4933c856, 0x4810600b, 0x801021c0, 0x04020002, 0x4978600a, 0x4c180000, 0x4c300000, - 0x0201f800, 0x00100643, 0x5c006000, 0x0401fda8, + 0x0201f800, 0x00100643, 0x5c006000, 0x0401fda9, 0x5c003000, 0x0401f00f, 0x4933c856, 0x800c19c0, 0x04020008, 0x801021c0, 0x04000003, 0x4810600b, 0x0401f008, 0x4978600b, 0x4978600a, 0x0401f005, @@ -9455,432 +9496,437 @@ static const uint32_t isp_2400_risc_code[] = { 0x1c01f000, 0x4933c857, 0x59368c03, 0x4c180000, 0x59300203, 0x82003480, 0x0000000e, 0x02021800, 0x0010032d, 0x0c01f803, 0x5c003000, 0x1c01f000, - 0x00109342, 0x001098cd, 0x00109a07, 0x00109342, - 0x00109342, 0x00109342, 0x00109342, 0x00109342, - 0x00109365, 0x00109342, 0x00109342, 0x00109342, - 0x00109342, 0x00109342, 0x0201f800, 0x0010032d, + 0x001093fa, 0x00109996, 0x00109ad3, 0x001093fa, + 0x001093fa, 0x001093fa, 0x001093fa, 0x001093fa, + 0x0010941d, 0x001093fa, 0x001093fa, 0x001093fa, + 0x001093fa, 0x001093fa, 0x0201f800, 0x0010032d, 0x4933c857, 0x42028800, 0x0000ffff, 0x813669c0, 0x04000002, 0x59368c03, 0x4c180000, 0x59300203, 0x82003480, 0x0000000e, 0x02021800, 0x0010032d, - 0x0c01f803, 0x5c003000, 0x1c01f000, 0x00109361, - 0x00109ce1, 0x00109361, 0x00109361, 0x00109361, - 0x00109361, 0x00109361, 0x00109361, 0x00109c2b, - 0x0010a0db, 0x0010a111, 0x0010a0db, 0x0010a111, - 0x00109361, 0x0201f800, 0x0010032d, 0x0201f800, + 0x0c01f803, 0x5c003000, 0x1c01f000, 0x00109419, + 0x00109db8, 0x00109419, 0x00109419, 0x00109419, + 0x00109419, 0x00109419, 0x00109419, 0x00109cfa, + 0x0010a1ba, 0x0010a1f0, 0x0010a1ba, 0x0010a1f0, + 0x00109419, 0x0201f800, 0x0010032d, 0x0201f800, 0x0010032d, 0x83383480, 0x00000057, 0x02021800, 0x0010032d, 0x41380000, 0x493bc857, 0x4d1c0000, 0x4d400000, 0x0c01f804, 0x5c028000, 0x5c023800, - 0x1c01f000, 0x001093d1, 0x001095f4, 0x001093d1, - 0x001093d1, 0x001093d1, 0x001095ff, 0x001093d1, - 0x001093d1, 0x001093d1, 0x001093d1, 0x001093d1, - 0x001093d1, 0x001093d1, 0x001093d1, 0x001093d1, - 0x001093d1, 0x001093d1, 0x001093d1, 0x001093d1, - 0x001093d1, 0x001093d1, 0x001093d1, 0x001093d1, - 0x00109406, 0x00109457, 0x00109471, 0x001094f0, - 0x0010954e, 0x00109592, 0x001095c3, 0x001093d1, - 0x001093d1, 0x00109607, 0x001093d1, 0x001093d1, - 0x00109615, 0x0010961e, 0x001093d1, 0x001093d1, - 0x001093d1, 0x001093d1, 0x001093d1, 0x001096be, - 0x001093d1, 0x001093d1, 0x0010952e, 0x001093d1, - 0x001093d1, 0x0010967d, 0x001093d1, 0x001093d1, - 0x001093d1, 0x001096cc, 0x001093d1, 0x001093d1, - 0x001093d1, 0x00109715, 0x001093d1, 0x001093d1, - 0x001093d1, 0x001093d1, 0x001093d1, 0x001093d1, - 0x00109782, 0x001093d1, 0x001097ae, 0x001097b9, - 0x001093d1, 0x001093d1, 0x001093d3, 0x001097c4, - 0x001093d1, 0x001093d1, 0x001093d1, 0x001093e4, - 0x001093d1, 0x001093d1, 0x001093d1, 0x001097cb, - 0x001097d3, 0x001097f1, 0x001093d1, 0x001093d1, - 0x001093d1, 0x001093d1, 0x001093d1, 0x001093f8, - 0x001093d1, 0x001093d1, 0x001093d1, 0x001093d1, - 0x001093d1, 0x001093d1, 0x001093d1, 0x001093d1, - 0x001093d1, 0x0201f800, 0x0010032d, 0x4933c857, - 0x0201f800, 0x0010a141, 0x02020000, 0x001097fc, - 0x0201f800, 0x00101b05, 0x02020000, 0x001097fc, + 0x1c01f000, 0x00109489, 0x001096b3, 0x00109489, + 0x00109489, 0x00109489, 0x001096be, 0x00109489, + 0x00109489, 0x00109489, 0x00109489, 0x00109489, + 0x00109489, 0x00109489, 0x00109489, 0x00109489, + 0x00109489, 0x00109489, 0x00109489, 0x00109489, + 0x00109489, 0x00109489, 0x00109489, 0x00109489, + 0x001094c2, 0x00109513, 0x0010952d, 0x001095ac, + 0x0010960a, 0x0010964e, 0x0010967f, 0x00109489, + 0x00109489, 0x001096c6, 0x00109489, 0x00109489, + 0x001096d4, 0x001096dd, 0x00109489, 0x00109489, + 0x00109489, 0x00109489, 0x00109489, 0x0010977d, + 0x00109489, 0x00109489, 0x001095ea, 0x00109489, + 0x00109489, 0x0010973c, 0x00109489, 0x00109489, + 0x00109489, 0x0010978b, 0x00109489, 0x00109489, + 0x00109489, 0x001097d4, 0x00109489, 0x00109489, + 0x00109489, 0x00109489, 0x00109489, 0x00109489, + 0x00109841, 0x00109489, 0x00109871, 0x0010987c, + 0x00109489, 0x00109489, 0x0010948b, 0x00109887, + 0x00109489, 0x00109489, 0x00109489, 0x0010949c, + 0x00109489, 0x00109489, 0x00109489, 0x0010988e, + 0x00109896, 0x001098b7, 0x00109489, 0x00109489, + 0x00109489, 0x00109489, 0x00109489, 0x001094b0, + 0x00109489, 0x00109489, 0x00109489, 0x00109489, + 0x00109489, 0x00109489, 0x00109489, 0x00109489, + 0x00109489, 0x0201f800, 0x0010032d, 0x4933c857, + 0x0201f800, 0x0010a220, 0x02020000, 0x001098c5, + 0x0201f800, 0x00101b0a, 0x02020000, 0x001098c5, 0x59cc0407, 0x4802601d, 0x4a026403, 0x00000045, - 0x4a026203, 0x00000001, 0x0201f000, 0x00105fe8, - 0x4933c857, 0x0201f800, 0x0010a141, 0x02020000, - 0x001097fc, 0x0201f800, 0x00101b05, 0x02020000, - 0x001097fc, 0x0201f800, 0x0010983d, 0x040201e3, + 0x4a026203, 0x00000001, 0x0201f000, 0x0010608d, + 0x4933c857, 0x0201f800, 0x0010a220, 0x02020000, + 0x001098c5, 0x0201f800, 0x00101b0a, 0x02020000, + 0x001098c5, 0x0201f800, 0x00109906, 0x040201e7, 0x59cc0007, 0x4802601d, 0x4a026403, 0x0000004a, - 0x4a026203, 0x00000001, 0x0201f000, 0x00105fe8, - 0x4933c857, 0x0201f800, 0x0010a141, 0x02020000, - 0x001097fc, 0x0201f800, 0x00101b05, 0x040203fd, + 0x4a026203, 0x00000001, 0x0201f000, 0x0010608d, + 0x4933c857, 0x0201f800, 0x0010a220, 0x02020000, + 0x001098c5, 0x0201f800, 0x00101b0a, 0x02020000, + 0x001098c5, 0x0201f800, 0x00109906, 0x040201d3, 0x4a026403, 0x00000056, 0x4a026203, 0x00000001, - 0x0201f000, 0x00105fe8, 0x4933c857, 0x0201f800, - 0x00101b05, 0x0402000d, 0x0201f800, 0x001040cb, + 0x0201f000, 0x0010608d, 0x4933c857, 0x0201f800, + 0x00101b0a, 0x0402000d, 0x0201f800, 0x001040e5, 0x0402000a, 0x59a8021b, 0x8c000500, 0x0402000e, - 0x8c000506, 0x04020005, 0x0201f800, 0x00104716, - 0x04020009, 0x0401f3e7, 0x4a026403, 0x00000009, + 0x8c000506, 0x04020005, 0x0201f800, 0x00104755, + 0x04020009, 0x0401f3f4, 0x4a026403, 0x00000009, 0x4a02641b, 0x00000009, 0x4a02621b, 0x00000000, - 0x0401f1df, 0x0201f800, 0x00104195, 0x04000029, + 0x0401f1e2, 0x0201f800, 0x001041b1, 0x04000029, 0x59340200, 0x8c00051a, 0x04000004, 0x5934000a, - 0x84000560, 0x4802680a, 0x0201f800, 0x00109e43, + 0x84000560, 0x4802680a, 0x0201f800, 0x00109f1a, 0x0402002a, 0x42028000, 0x00000029, 0x4d3c0000, - 0x417a7800, 0x0201f800, 0x0010df61, 0x5c027800, - 0x42000000, 0x0010bc1f, 0x0201f800, 0x0010ad1d, - 0x0201f800, 0x00103e68, 0x4a026403, 0x00000008, - 0x42003000, 0x00000003, 0x8d0e1d20, 0x040001c0, + 0x417a7800, 0x0201f800, 0x0010e06f, 0x5c027800, + 0x42000000, 0x0010bd1f, 0x0201f800, 0x0010ae10, + 0x0201f800, 0x00103e7e, 0x4a026403, 0x00000008, + 0x42003000, 0x00000003, 0x8d0e1d20, 0x040001c3, 0x59cc400b, 0x59cc380c, 0x59cc180d, 0x59cc080e, 0x9c2041c0, 0x9c1c39c0, 0x9c0c19c0, 0x9c0409c0, - 0x4a026203, 0x00000007, 0x41782800, 0x0401f1a7, - 0x0201f800, 0x00109f0c, 0x040207dc, 0x4a026403, + 0x4a026203, 0x00000007, 0x41782800, 0x0401f1aa, + 0x0201f800, 0x00109fe3, 0x040207dc, 0x4a026403, 0x00000009, 0x4a02641b, 0x0000000e, 0x4a02621b, - 0x00001900, 0x0401f1aa, 0x4a026403, 0x00000009, - 0x4a02641b, 0x00000003, 0x0401f1a5, 0x4933c857, - 0x0201f800, 0x00101b05, 0x040203a2, 0x0201f800, - 0x001040cb, 0x0402039f, 0x493a6403, 0x0201f800, - 0x00109ddd, 0x04020009, 0x4a026403, 0x00000006, - 0x8d0e1d20, 0x04000196, 0x4a026203, 0x00000007, - 0x0201f000, 0x0010a4d5, 0x4a026403, 0x00000007, + 0x00001900, 0x0401f1ad, 0x4a026403, 0x00000009, + 0x4a02641b, 0x00000003, 0x0401f1a8, 0x4933c857, + 0x0201f800, 0x00101b0a, 0x040203af, 0x0201f800, + 0x001040e5, 0x040203ac, 0x493a6403, 0x0201f800, + 0x00109eb4, 0x04020009, 0x4a026403, 0x00000006, + 0x8d0e1d20, 0x04000199, 0x4a026203, 0x00000007, + 0x0201f000, 0x0010a5c8, 0x4a026403, 0x00000007, 0x4a02641b, 0x00000009, 0x4a02621b, 0x00000000, - 0x0401f18b, 0x4933c857, 0x0201f800, 0x001040cb, - 0x04020388, 0x5934000a, 0x82000500, 0x00010000, - 0x82000580, 0x00010000, 0x02020800, 0x0010a141, - 0x02000800, 0x00101b05, 0x0402037e, 0x59cc0001, + 0x0401f18e, 0x4933c857, 0x0201f800, 0x001040e5, + 0x04020395, 0x5934000a, 0x82000500, 0x00010000, + 0x82000580, 0x00010000, 0x02020800, 0x0010a220, + 0x02000800, 0x00101b0a, 0x0402038b, 0x59cc0001, 0x82000500, 0x00ffff00, 0x82000580, 0x00fffc00, 0x04020006, 0x59a80006, 0x8c00050e, 0x04000003, - 0x8d0e1d20, 0x04000047, 0x0201f800, 0x00104195, + 0x8d0e1d20, 0x04000047, 0x0201f800, 0x001041b1, 0x04020005, 0x42027800, 0x00000001, 0x0201f800, - 0x00103d7f, 0x0201f800, 0x00104181, 0x04000004, + 0x00103d92, 0x0201f800, 0x0010419d, 0x04000004, 0x82000580, 0x00000703, 0x04020041, 0x59cc0206, 0x82003500, 0x00000003, 0x04020044, 0x82003480, 0x00000014, 0x04001041, 0x59a8305a, 0x80183480, 0x0400103e, 0x5934300a, 0x84183516, 0x82000580, 0x00000014, 0x04020002, 0x84183556, 0x481a680a, 0x59cc0406, 0x82000500, 0x00000003, 0x04020033, - 0x0201f800, 0x00109e90, 0x0402003b, 0x0201f800, - 0x00104165, 0x04020007, 0x4c600000, 0x4178c000, - 0x417a7800, 0x0201f800, 0x00101a8f, 0x5c00c000, + 0x0201f800, 0x00109f67, 0x0402003b, 0x0201f800, + 0x00104181, 0x04020007, 0x4c600000, 0x4178c000, + 0x417a7800, 0x0201f800, 0x00101a94, 0x5c00c000, 0x836c0580, 0x00000003, 0x04020009, 0x42003000, - 0x00000006, 0x0201f800, 0x0010a4a6, 0x42000000, - 0x0010bc1e, 0x0201f800, 0x0010ad1d, 0x0201f800, - 0x00103ecf, 0x4a026403, 0x0000000a, 0x42003000, + 0x00000006, 0x0201f800, 0x0010a599, 0x42000000, + 0x0010bd1e, 0x0201f800, 0x0010ae10, 0x0201f800, + 0x00103ee9, 0x4a026403, 0x0000000a, 0x42003000, 0x00000020, 0x59cc1a0a, 0x41780800, 0x41784000, - 0x41783800, 0x8d0e1d20, 0x0400012d, 0x0401f775, + 0x41783800, 0x8d0e1d20, 0x04000130, 0x0401f775, 0x4a026403, 0x0000000b, 0x4a02641b, 0x0000000b, - 0x4a02621b, 0x00002c00, 0x0401f125, 0x4a026403, + 0x4a02621b, 0x00002c00, 0x0401f128, 0x4a026403, 0x0000000b, 0x4a02641b, 0x00000009, 0x4a02621b, - 0x00001e00, 0x0401f11e, 0x42000000, 0x0010bb79, - 0x0201f800, 0x0010ad1d, 0x4a026403, 0x0000000b, + 0x00001e00, 0x0401f121, 0x42000000, 0x0010bc79, + 0x0201f800, 0x0010ae10, 0x4a026403, 0x0000000b, 0x4a02641b, 0x00000007, 0x4a02621b, 0x00000000, - 0x0401f113, 0x4a026403, 0x0000000b, 0x4a02641b, - 0x00000003, 0x4a02621b, 0x00000000, 0x0401f10c, - 0x4933c857, 0x0201f800, 0x001040cb, 0x04020309, - 0x0201f800, 0x0010a141, 0x04020306, 0x0201f800, - 0x00101b05, 0x04020303, 0x59cc0206, 0x82003500, + 0x0401f116, 0x4a026403, 0x0000000b, 0x4a02641b, + 0x00000003, 0x4a02621b, 0x00000000, 0x0401f10f, + 0x4933c857, 0x0201f800, 0x001040e5, 0x04020316, + 0x0201f800, 0x0010a220, 0x04020313, 0x0201f800, + 0x00101b0a, 0x04020310, 0x59cc0206, 0x82003500, 0x00000003, 0x04020023, 0x82003480, 0x00000014, 0x04001020, 0x59a8305a, 0x80180480, 0x0400101d, 0x59cc0406, 0x82000500, 0x00000003, 0x04020019, 0x59340400, 0x82000580, 0x00000707, 0x0400001c, 0x417a7800, 0x4c600000, 0x4178c000, 0x0201f800, - 0x00101a8f, 0x5c00c000, 0x42003000, 0x0000000a, - 0x0201f800, 0x0010a4a6, 0x42000000, 0x0010bc1b, - 0x0201f800, 0x0010ad1d, 0x4a026403, 0x0000000c, + 0x00101a94, 0x5c00c000, 0x42003000, 0x0000000a, + 0x0201f800, 0x0010a599, 0x42000000, 0x0010bd1b, + 0x0201f800, 0x0010ae10, 0x4a026403, 0x0000000c, 0x41782800, 0x42003000, 0x00000021, 0x0401f7ae, 0x4a026403, 0x0000000d, 0x4a02641b, 0x00000007, - 0x4a02621b, 0x00000000, 0x0401f0d5, 0x4a026403, + 0x4a02621b, 0x00000000, 0x0401f0d8, 0x4a026403, 0x0000000d, 0x4a02641b, 0x00000009, 0x4a02621b, - 0x00001e00, 0x0401f0ce, 0x4933c857, 0x0201f800, - 0x001040cb, 0x040202cb, 0x0201f800, 0x0010a141, - 0x040202c8, 0x0201f800, 0x00101b05, 0x040202c5, - 0x0401fb05, 0x0402000e, 0x493a6403, 0x0401fb0c, + 0x00001e00, 0x0401f0d1, 0x4933c857, 0x0201f800, + 0x001040e5, 0x040202d8, 0x0201f800, 0x0010a220, + 0x040202d5, 0x0201f800, 0x00101b0a, 0x040202d2, + 0x0401fb12, 0x0402000e, 0x493a6403, 0x0401fb19, 0x04020004, 0x4a026403, 0x0000002e, 0x0401f725, 0x4a026403, 0x0000000d, 0x4a02641b, 0x00000007, - 0x4a02621b, 0x00000000, 0x0401f0b5, 0x4a026403, + 0x4a02621b, 0x00000000, 0x0401f0b8, 0x4a026403, 0x0000000d, 0x4a02641b, 0x00000009, 0x4a02621b, - 0x00001e00, 0x0401f0ae, 0x4933c857, 0x0201f800, - 0x001040cb, 0x040206c5, 0x59a8021b, 0x8c000500, + 0x00001e00, 0x0401f0b1, 0x4933c857, 0x0201f800, + 0x001040e5, 0x040206c5, 0x59a8021b, 0x8c000500, 0x04020006, 0x8c000506, 0x040206c0, 0x0201f800, - 0x00104716, 0x040002a3, 0x0201f800, 0x00104181, - 0x04020031, 0x0201f800, 0x00109e98, 0x0402000c, - 0x4a026403, 0x0000000e, 0x8d0e1d20, 0x04000098, + 0x00104755, 0x040002b0, 0x0201f800, 0x0010419d, + 0x04020031, 0x0201f800, 0x00109f6f, 0x0402000c, + 0x4a026403, 0x0000000e, 0x8d0e1d20, 0x0400009b, 0x42003000, 0x00000052, 0x59cc4008, 0x59cc3809, 0x59cc180a, 0x59cc080b, 0x0401f6d6, 0x4933c857, - 0x42003000, 0x00000003, 0x0201f800, 0x0010a4ae, - 0x4d3c0000, 0x417a7800, 0x0201f800, 0x0010df61, - 0x5c027800, 0x42000000, 0x0010bc1d, 0x0201f800, - 0x0010ad1d, 0x59340200, 0x84000558, 0x48026a00, - 0x42000800, 0x0000000b, 0x0201f800, 0x00103d8a, - 0x8d0e1d20, 0x04000073, 0x42003000, 0x00000007, - 0x0401f061, 0x4933c857, 0x4a026403, 0x0000000f, + 0x42003000, 0x00000003, 0x0201f800, 0x0010a5a1, + 0x4d3c0000, 0x417a7800, 0x0201f800, 0x0010e06f, + 0x5c027800, 0x42000000, 0x0010bd1d, 0x0201f800, + 0x0010ae10, 0x59340200, 0x84000558, 0x48026a00, + 0x42000800, 0x0000000b, 0x0201f800, 0x00103d9d, + 0x8d0e1d20, 0x04000076, 0x42003000, 0x00000007, + 0x0401f064, 0x4933c857, 0x4a026403, 0x0000000f, 0x4a02641b, 0x00000003, 0x4a02621b, 0x00001e00, - 0x0401f06f, 0x59340400, 0x82000580, 0x00000703, + 0x0401f072, 0x59340400, 0x82000580, 0x00000703, 0x040007f5, 0x0401f041, 0x4933c857, 0x0201f800, - 0x001040cb, 0x04020267, 0x59a8021b, 0x8c000500, - 0x04020006, 0x8c000506, 0x04020262, 0x0201f800, - 0x00104716, 0x0400025f, 0x0201f800, 0x00104178, - 0x0402002e, 0x0201f800, 0x00109eb3, 0x02000800, - 0x00109e43, 0x04020006, 0x4a026403, 0x00000010, + 0x001040e5, 0x04020274, 0x59a8021b, 0x8c000500, + 0x04020006, 0x8c000506, 0x0402026f, 0x0201f800, + 0x00104755, 0x0400026c, 0x0201f800, 0x00104194, + 0x0402002e, 0x0201f800, 0x00109f8a, 0x02000800, + 0x00109f1a, 0x04020006, 0x4a026403, 0x00000010, 0x42003000, 0x00000050, 0x0401f690, 0x4d3c0000, - 0x417a7800, 0x0201f800, 0x0010df61, 0x5c027800, - 0x42003000, 0x00000003, 0x0201f800, 0x0010a4ae, - 0x42000000, 0x0010bc1d, 0x0201f800, 0x0010ad1d, + 0x417a7800, 0x0201f800, 0x0010e06f, 0x5c027800, + 0x42003000, 0x00000003, 0x0201f800, 0x0010a5a1, + 0x42000000, 0x0010bd1d, 0x0201f800, 0x0010ae10, 0x59340200, 0x84000558, 0x48026a00, 0x0401f7c5, 0x4a026403, 0x00000011, 0x4a02641b, 0x00000003, - 0x4a02621b, 0x00001e00, 0x0401f039, 0x4933c857, - 0x0201f800, 0x00101b05, 0x02000800, 0x0010a141, - 0x04020234, 0x0401fa74, 0x04020008, 0x4a026403, - 0x00000012, 0x0401f02e, 0x59340400, 0x82000580, - 0x00000703, 0x040007eb, 0x4d3c0000, 0x417a7800, - 0x42028000, 0x00000029, 0x0201f800, 0x0010df61, - 0x5c027800, 0x42003000, 0x00000017, 0x0201f800, - 0x0010a4ae, 0x42000000, 0x0010bc1d, 0x0201f800, - 0x0010ad1d, 0x8d0e1d20, 0x04000012, 0x42003000, - 0x00000006, 0x42028000, 0x00000029, 0x4933c857, - 0x4a026403, 0x00000001, 0x4a026203, 0x00000007, - 0x41782800, 0x0401f003, 0x42028000, 0x00000046, - 0x0201f800, 0x00109f37, 0x0201f000, 0x0010a4d5, - 0x4933c857, 0x4a026403, 0x00000001, 0x42000800, - 0x0000000b, 0x0201f800, 0x00103d8a, 0x4a026203, - 0x00000001, 0x0201f000, 0x00105fe8, 0x4933c857, - 0x42000800, 0x00000009, 0x0201f800, 0x00103d8a, - 0x4a026403, 0x00000005, 0x0401f7f5, 0x0201f800, - 0x0010a141, 0x040201f3, 0x0201f800, 0x00101b05, - 0x040201f0, 0x0401fa30, 0x040207c4, 0x4a026403, - 0x00000020, 0x4a026203, 0x00000001, 0x0201f000, - 0x00105fe8, 0x0201f800, 0x00101b05, 0x040201e5, - 0x4a026403, 0x00000023, 0x4a026203, 0x00000001, - 0x0201f000, 0x00105fe8, 0x0201f800, 0x0010a141, - 0x02000800, 0x00101b05, 0x040201da, 0x0401fa1a, - 0x040207ae, 0x59cc0807, 0x82040500, 0x00ffff00, - 0x04020009, 0x59340212, 0x82000500, 0x0000ff00, - 0x04000005, 0x59a8000f, 0x82000500, 0x000000ff, - 0x0401f002, 0x59a8000f, 0x82040d00, 0x00ffffff, - 0x80040580, 0x04020014, 0x59cc1408, 0x0201f800, - 0x00108cd8, 0x04000025, 0x591c0202, 0x82001580, - 0x0000ffff, 0x04000004, 0x59cc1208, 0x80080580, - 0x0402001e, 0x591c000a, 0x81340580, 0x0402001b, - 0x591c0407, 0x82000580, 0x00000007, 0x04020017, - 0x0401f027, 0x59cc1208, 0x82080580, 0x0000ffff, - 0x0400000c, 0x0201f800, 0x00108cd8, 0x0400000f, - 0x59cc1408, 0x591c0202, 0x80080580, 0x04020024, - 0x591c000a, 0x81340580, 0x04020021, 0x0401f010, - 0x59cc1408, 0x41780000, 0x0201f800, 0x00109c91, - 0x040207f8, 0x0401f017, 0x4a026403, 0x00000026, - 0x4a02621b, 0x00001700, 0x59cc1208, 0x82081580, - 0x0000ffff, 0x04020796, 0x0401f00e, 0x591c0407, - 0x82000580, 0x00000007, 0x040207f4, 0x591c0403, - 0x82000580, 0x00000024, 0x04020006, 0x4d300000, - 0x411e6000, 0x0201f800, 0x00020a10, 0x5c026000, - 0x4a026403, 0x00000025, 0x0401f785, 0x59cc1408, - 0x41780000, 0x0201f800, 0x00109c91, 0x040207e3, - 0x0401f7f8, 0x4933c857, 0x4d3c0000, 0x42027800, - 0x00000001, 0x0201f800, 0x00103d7f, 0x5c027800, - 0x4c580000, 0x4200b000, 0x00000002, 0x83a81c00, - 0x00000002, 0x83cc1400, 0x0000000b, 0x0201f800, - 0x00107d52, 0x5c00b000, 0x04000004, 0x4a026403, - 0x00000031, 0x0401f76a, 0x0201f800, 0x00020a10, - 0x4200b000, 0x00000002, 0x83a81c00, 0x00000000, - 0x83cc1400, 0x0000000d, 0x0201f800, 0x00107d52, - 0x04020010, 0x0201f800, 0x001055aa, 0x0400000d, - 0x59300407, 0x82000580, 0x00000001, 0x04020009, - 0x59300403, 0x82000580, 0x00000002, 0x04020005, - 0x5930000a, 0x81340580, 0x02000800, 0x00020a10, - 0x0201f800, 0x00104716, 0x0402000f, 0x0201f800, - 0x00104732, 0x04020008, 0x4a035014, 0x00000001, - 0x4202d800, 0x00000001, 0x0201f800, 0x00104670, - 0x0401f005, 0x42000000, 0x00000001, 0x0201f800, - 0x001046e7, 0x1c01f000, 0x0201f800, 0x00101b05, - 0x0402013c, 0x0401f97c, 0x04020710, 0x493a6403, - 0x0401f9e0, 0x04020004, 0x4a026403, 0x0000002b, - 0x0401f733, 0x4a026403, 0x0000002c, 0x0401f730, - 0x4933c857, 0x0201f800, 0x00105713, 0x0402012d, - 0x0201f800, 0x00101b05, 0x0402012a, 0x0201f800, - 0x00104165, 0x0402071f, 0x59cc0408, 0x4802641a, - 0x59cc0208, 0x4802621a, 0x59cc0807, 0x59340002, - 0x82000500, 0x00ffffff, 0x80040580, 0x04000015, - 0x59a8000f, 0x80040580, 0x04020025, 0x59cc1408, - 0x0201f800, 0x00108cd8, 0x04000027, 0x831c0580, - 0xffffffff, 0x04000007, 0x0201f800, 0x0010a06f, - 0x04000021, 0x0201f800, 0x0010a48d, 0x0400001e, - 0x491e601f, 0x4a026403, 0x00000036, 0x0401f103, - 0x59cc1208, 0x82080580, 0x0000ffff, 0x04000009, - 0x0201f800, 0x00108cd8, 0x04000013, 0x591c0202, - 0x59cc0c08, 0x80040580, 0x0402000f, 0x0401f7e8, - 0x59cc1408, 0x42000000, 0x00000001, 0x0201f800, - 0x00109c91, 0x04000008, 0x0401f7e1, 0x4803c856, - 0x4a02641b, 0x00000009, 0x4a02621b, 0x00001500, + 0x4a02621b, 0x00001e00, 0x0401f03c, 0x4933c857, + 0x0201f800, 0x00101b0a, 0x02000800, 0x0010a220, + 0x04020241, 0x0401fa81, 0x04020008, 0x4a026403, + 0x00000012, 0x0401f031, 0x59340400, 0x82000580, + 0x00000703, 0x040007eb, 0x83340580, 0x0010c2b2, + 0x0400000c, 0x4d3c0000, 0x417a7800, 0x42028000, + 0x00000029, 0x0201f800, 0x0010e06f, 0x5c027800, + 0x42003000, 0x00000017, 0x0201f800, 0x0010a5a1, + 0x42000000, 0x0010bd1d, 0x0201f800, 0x0010ae10, + 0x8d0e1d20, 0x04000012, 0x42003000, 0x00000006, + 0x42028000, 0x00000029, 0x4933c857, 0x4a026403, + 0x00000001, 0x4a026203, 0x00000007, 0x41782800, + 0x0401f003, 0x42028000, 0x00000046, 0x0201f800, + 0x0010a00e, 0x0201f000, 0x0010a5c8, 0x4933c857, + 0x4a026403, 0x00000001, 0x42000800, 0x0000000b, + 0x0201f800, 0x00103d9d, 0x4a026203, 0x00000001, + 0x0201f000, 0x0010608d, 0x4933c857, 0x42000800, + 0x00000009, 0x0201f800, 0x00103d9d, 0x4a026403, + 0x00000005, 0x0401f7f5, 0x0201f800, 0x0010a220, + 0x040201fd, 0x0201f800, 0x00101b0a, 0x040201fa, + 0x0401fa3a, 0x040207c1, 0x4a026403, 0x00000020, + 0x4a026203, 0x00000001, 0x0201f000, 0x0010608d, + 0x0201f800, 0x00101b0a, 0x040201ef, 0x4a026403, + 0x00000023, 0x4a026203, 0x00000001, 0x0201f000, + 0x0010608d, 0x0201f800, 0x0010a220, 0x02000800, + 0x00101b0a, 0x040201e4, 0x0401fa24, 0x040207ab, + 0x59cc0807, 0x82040500, 0x00ffff00, 0x04020009, + 0x59340212, 0x82000500, 0x0000ff00, 0x04000005, + 0x59a8000f, 0x82000500, 0x000000ff, 0x0401f002, + 0x59a8000f, 0x82040d00, 0x00ffffff, 0x80040580, + 0x04020014, 0x59cc1408, 0x0201f800, 0x00108d91, + 0x04000025, 0x591c0202, 0x82001580, 0x0000ffff, + 0x04000004, 0x59cc1208, 0x80080580, 0x0402001e, + 0x591c000a, 0x81340580, 0x0402001b, 0x591c0407, + 0x82000580, 0x00000007, 0x04020017, 0x0401f027, + 0x59cc1208, 0x82080580, 0x0000ffff, 0x0400000c, + 0x0201f800, 0x00108d91, 0x0400000f, 0x59cc1408, + 0x591c0202, 0x80080580, 0x04020024, 0x591c000a, + 0x81340580, 0x04020021, 0x0401f010, 0x59cc1408, + 0x41780000, 0x0201f800, 0x00109d60, 0x040207f8, + 0x0401f017, 0x4a026403, 0x00000026, 0x4a02621b, + 0x00001700, 0x59cc1208, 0x82081580, 0x0000ffff, + 0x04020796, 0x0401f00e, 0x591c0407, 0x82000580, + 0x00000007, 0x040207f4, 0x591c0403, 0x82000580, + 0x00000024, 0x04020006, 0x4d300000, 0x411e6000, + 0x0201f800, 0x00020a10, 0x5c026000, 0x4a026403, + 0x00000025, 0x0401f785, 0x59cc1408, 0x41780000, + 0x0201f800, 0x00109d60, 0x040207e3, 0x0401f7f8, + 0x4933c857, 0x4d3c0000, 0x42027800, 0x00000001, + 0x0201f800, 0x00103d92, 0x5c027800, 0x4c580000, + 0x4200b000, 0x00000002, 0x83a81c00, 0x00000002, + 0x83cc1400, 0x0000000b, 0x0201f800, 0x00107df9, + 0x5c00b000, 0x04000004, 0x4a026403, 0x00000031, + 0x0401f76a, 0x0201f800, 0x00020a10, 0x4200b000, + 0x00000002, 0x83a81c00, 0x00000000, 0x83cc1400, + 0x0000000d, 0x0201f800, 0x00107df9, 0x04020010, + 0x0201f800, 0x00105616, 0x0400000d, 0x59300407, + 0x82000580, 0x00000001, 0x04020009, 0x59300403, + 0x82000580, 0x00000002, 0x04020005, 0x5930000a, + 0x81340580, 0x02000800, 0x00020a10, 0x0201f800, + 0x00104755, 0x0402000f, 0x0201f800, 0x00104771, + 0x04020008, 0x4a035014, 0x00000001, 0x4202d800, + 0x00000001, 0x0201f800, 0x001046af, 0x0401f005, + 0x42000000, 0x00000001, 0x0201f800, 0x00104726, + 0x1c01f000, 0x0201f800, 0x00101b0a, 0x04020146, + 0x0401f986, 0x0402070d, 0x493a6403, 0x0401f9ea, + 0x04020004, 0x4a026403, 0x0000002b, 0x0401f733, + 0x4a026403, 0x0000002c, 0x0401f730, 0x4933c857, + 0x0201f800, 0x0010577f, 0x04020137, 0x0201f800, + 0x00101b0a, 0x04020134, 0x0201f800, 0x00104181, + 0x040206fa, 0x59cc0408, 0x4802641a, 0x59cc0208, + 0x4802621a, 0x59cc0807, 0x59340002, 0x82000500, + 0x00ffffff, 0x80040580, 0x04000015, 0x59a8000f, + 0x80040580, 0x04020025, 0x59cc1408, 0x0201f800, + 0x00108d91, 0x04000027, 0x831c0580, 0xffffffff, + 0x04000007, 0x0201f800, 0x0010a14e, 0x04000021, + 0x0201f800, 0x0010a580, 0x0400001e, 0x491e601f, + 0x4a026403, 0x00000036, 0x0401f10d, 0x59cc1208, + 0x82080580, 0x0000ffff, 0x04000009, 0x0201f800, + 0x00108d91, 0x04000013, 0x591c0202, 0x59cc0c08, + 0x80040580, 0x0402000f, 0x0401f7e8, 0x59cc1408, + 0x42000000, 0x00000001, 0x0201f800, 0x00109d60, + 0x04000008, 0x0401f7e1, 0x4803c856, 0x4a02641b, + 0x00000009, 0x4a02621b, 0x00001500, 0x0401f006, + 0x4803c856, 0x4a02641b, 0x00000003, 0x4a02621b, + 0x00001700, 0x4a026403, 0x00000037, 0x0401f0ec, + 0x4933c857, 0x0201f800, 0x0010577f, 0x040200ee, + 0x0201f800, 0x00101b0a, 0x040200eb, 0x0201f800, + 0x00104181, 0x040206b1, 0x0201f800, 0x001040c4, + 0x04000055, 0x59cc0407, 0x4802641a, 0x59cc1207, + 0x480a621a, 0x82080580, 0x0000ffff, 0x04000005, + 0x0201f800, 0x00108d91, 0x04000043, 0x0401f00a, + 0x59cc1407, 0x42000000, 0x00000001, 0x0201f800, + 0x00109d60, 0x0400003c, 0x831c0580, 0xffffffff, + 0x04000039, 0x59cc0c07, 0x591c0202, 0x80040580, + 0x04020035, 0x0201f800, 0x0010a580, 0x04000032, + 0x591c0415, 0x8c000516, 0x0402003d, 0x4d300000, + 0x411e6000, 0x0201f800, 0x00108530, 0x5c026000, + 0x4a023a03, 0x00000007, 0x59cc0c09, 0x82040d00, + 0x0000ff00, 0x840409c0, 0x82040580, 0x00000001, + 0x0400000c, 0x82040580, 0x00000005, 0x0400000e, + 0x82040580, 0x00000007, 0x04020015, 0x42000000, + 0x0010bd0a, 0x0201f800, 0x0010ae10, 0x0401f00a, + 0x42000000, 0x0010bd09, 0x0201f800, 0x0010ae10, + 0x0401f008, 0x42000000, 0x0010bd08, 0x0201f800, + 0x0010ae10, 0x591c0009, 0x80000540, 0x04000004, + 0x59cc2808, 0x0201f000, 0x0010a162, 0x4803c856, + 0x4a02641b, 0x00000009, 0x4a02621b, 0x00002a00, 0x0401f006, 0x4803c856, 0x4a02641b, 0x00000003, - 0x4a02621b, 0x00001700, 0x4a026403, 0x00000037, - 0x0401f0e2, 0x4933c857, 0x0201f800, 0x00105713, - 0x040200e4, 0x0201f800, 0x00101b05, 0x040200e1, - 0x0201f800, 0x00104165, 0x040206d6, 0x0201f800, - 0x001040aa, 0x04000055, 0x59cc0407, 0x4802641a, - 0x59cc1207, 0x480a621a, 0x82080580, 0x0000ffff, - 0x04000005, 0x0201f800, 0x00108cd8, 0x04000043, - 0x0401f00a, 0x59cc1407, 0x42000000, 0x00000001, - 0x0201f800, 0x00109c91, 0x0400003c, 0x831c0580, - 0xffffffff, 0x04000039, 0x59cc0c07, 0x591c0202, - 0x80040580, 0x04020035, 0x0201f800, 0x0010a48d, - 0x04000032, 0x591c0415, 0x8c000516, 0x0402003d, - 0x4d300000, 0x411e6000, 0x0201f800, 0x0010847b, - 0x5c026000, 0x4a023a03, 0x00000007, 0x59cc0c09, - 0x82040d00, 0x0000ff00, 0x840409c0, 0x82040580, - 0x00000001, 0x0400000c, 0x82040580, 0x00000005, - 0x0400000e, 0x82040580, 0x00000007, 0x04020015, - 0x42000000, 0x0010bc0a, 0x0201f800, 0x0010ad1d, - 0x0401f00a, 0x42000000, 0x0010bc09, 0x0201f800, - 0x0010ad1d, 0x0401f008, 0x42000000, 0x0010bc08, - 0x0201f800, 0x0010ad1d, 0x591c0009, 0x80000540, - 0x04000004, 0x59cc2808, 0x0201f000, 0x0010a083, - 0x4803c856, 0x4a02641b, 0x00000009, 0x4a02621b, - 0x00002a00, 0x0401f006, 0x4803c856, 0x4a02641b, - 0x00000003, 0x4a02621b, 0x00000300, 0x4a026403, - 0x0000003b, 0x0401f081, 0x4803c856, 0x4a02641b, - 0x0000000b, 0x4a02621b, 0x00000000, 0x0401f7f8, - 0x4803c856, 0x4a02641b, 0x00000007, 0x4a02621b, - 0x00000000, 0x0401f7f2, 0x4c080000, 0x0201f800, - 0x001040cb, 0x04000026, 0x0201f800, 0x0010408c, - 0x0201f800, 0x0010a1ae, 0x0402001e, 0x59a8021b, - 0x82000540, 0x00000003, 0x4803521b, 0x59a80018, - 0x800000d0, 0x59a8080f, 0x82040d00, 0x000000ff, - 0x80041540, 0x480b500f, 0x42000800, 0x00000003, - 0x0201f800, 0x00106134, 0x497b501d, 0x8d0e1d20, - 0x04000006, 0x4a032804, 0x000007d0, 0x599c0017, - 0x8c00050a, 0x0402000a, 0x0201f800, 0x00020a10, - 0x0201f800, 0x0010e14a, 0x5c001000, 0x1c01f000, - 0x0201f800, 0x0010a1d0, 0x0401f7fc, 0x5c001000, - 0x0201f000, 0x00020a10, 0x0201f800, 0x00101b05, - 0x0402004c, 0x0201f800, 0x0010a1d6, 0x4a026403, - 0x00000047, 0x4a026203, 0x00000001, 0x0201f000, - 0x00105fe8, 0x0201f800, 0x00101b05, 0x04020041, - 0x0201f800, 0x0010a1d6, 0x4a026403, 0x00000047, - 0x4a026203, 0x00000001, 0x0201f000, 0x00105fe8, - 0x0201f800, 0x00101b05, 0x04020036, 0x0201f800, - 0x0010a1d6, 0x0201f000, 0x00020a10, 0x0401f834, - 0x04000030, 0x4a026403, 0x0000004e, 0x4a026203, - 0x00000001, 0x0201f000, 0x00105fe8, 0x4a026403, - 0x0000004f, 0x497a601d, 0x59cc0a06, 0x82040d00, - 0x000000ff, 0x800409c0, 0x04000621, 0x82040580, - 0x00000001, 0x04020005, 0x59cc0808, 0x59a80005, - 0x80040580, 0x0400061a, 0x82040580, 0x00000002, - 0x0402000a, 0x83cc1400, 0x0000000b, 0x4200b000, - 0x00000002, 0x83341c00, 0x00000006, 0x0201f800, - 0x00107d52, 0x0400060e, 0x4a02601d, 0x00000001, - 0x0401f60b, 0x4a026403, 0x00000050, 0x59cc0207, - 0x4802601d, 0x0401f606, 0x4a026203, 0x00000001, - 0x42000800, 0x80000040, 0x0201f000, 0x000209b1, - 0x4803c857, 0x0201f000, 0x00020a10, 0x4d2c0000, - 0x4c500000, 0x4c580000, 0x4c540000, 0x59a8005a, - 0x82000c80, 0x00000841, 0x0402102d, 0x0201f800, - 0x0010055a, 0x0400002a, 0x492e6009, 0x59a8005a, - 0x48025802, 0x82000400, 0x00000003, 0x80000104, - 0x83cca400, 0x00000006, 0x82000c80, 0x0000000a, - 0x04001015, 0x4a025811, 0x0000000a, 0x4200b000, - 0x0000000a, 0x832c0400, 0x00000006, 0x4000a800, - 0x0201f800, 0x0010adef, 0x412c7000, 0x800409c0, - 0x04020003, 0x49787001, 0x0401f00e, 0x0201f800, - 0x0010055a, 0x0400000e, 0x492c7001, 0x40040000, - 0x0401f7ea, 0x48025811, 0x4000b000, 0x832c0400, - 0x00000006, 0x4000a800, 0x0201f800, 0x0010adef, - 0x82000540, 0x00000001, 0x0401f006, 0x497b505a, - 0x59325809, 0x0201f800, 0x00100589, 0x80000580, - 0x5c00a800, 0x5c00b000, 0x5c00a000, 0x5c025800, - 0x1c01f000, 0x4d340000, 0x5932680a, 0x59343400, - 0x4933c857, 0x4937c857, 0x481bc857, 0x0201f800, - 0x00104178, 0x5c026800, 0x1c01f000, 0x4933c857, - 0x4c600000, 0x4d3c0000, 0x4d440000, 0x4d340000, - 0x0401f864, 0x0402004e, 0x59cc0207, 0x82000d00, - 0x0000ff00, 0x900411c0, 0x59cc000a, 0x82000500, - 0x00ffffff, 0x80081540, 0x480a601d, 0x8c040d18, - 0x04000019, 0x42003000, 0x00000008, 0x0201f800, - 0x0010a49e, 0x42000000, 0x0010bc1c, 0x0201f800, - 0x0010ad1d, 0x8d0e1d20, 0x04000009, 0x42002800, - 0x00000002, 0x42003000, 0x00000024, 0x42028000, - 0x00000046, 0x0201f800, 0x00109f37, 0x4200c000, - 0x00000001, 0x417a7800, 0x0201f800, 0x00101a8f, - 0x0401f02e, 0x8c040d1a, 0x04000029, 0x59cc000a, - 0x0201f800, 0x0010548f, 0x02000800, 0x00020319, - 0x04020023, 0x5930000a, 0x4c000000, 0x8d0e1d20, - 0x0400000f, 0x59340c03, 0x59341802, 0x820c1d00, - 0x00ffffff, 0x58002403, 0x42002800, 0x00000004, - 0x42003000, 0x00000024, 0x42028000, 0x00000046, - 0x41301000, 0x0201f800, 0x00109f47, 0x4936600a, - 0x42003000, 0x00000009, 0x0201f800, 0x0010a4a6, - 0x42000000, 0x0010bc1c, 0x0201f800, 0x0010ad1d, - 0x417a7800, 0x4178c000, 0x0201f800, 0x00101a8f, - 0x5c000000, 0x4802600a, 0x0401f004, 0x82000540, - 0x00000001, 0x0401f002, 0x80000580, 0x5c026800, - 0x5c028800, 0x5c027800, 0x5c00c000, 0x1c01f000, - 0x4933c857, 0x59cc0206, 0x82000480, 0x00000010, - 0x04021006, 0x4a02621b, 0x00000000, 0x82000540, - 0x00000001, 0x0401f002, 0x80000580, 0x1c01f000, - 0x4933c857, 0x4a02621b, 0x00000000, 0x59cc0407, - 0x82000500, 0x0000ff00, 0x82000580, 0x00000800, - 0x0402000d, 0x59cc0206, 0x59a8085a, 0x80040480, - 0x0400100a, 0x59cc0006, 0x82000500, 0x00ff0000, - 0x82000d80, 0x00140000, 0x04000003, 0x82000d80, - 0x00100000, 0x1c01f000, 0x42000000, 0x0010bc11, - 0x0201f800, 0x0010ad1d, 0x82000540, 0x00000001, - 0x0401f7f9, 0x59300403, 0x82003480, 0x00000057, - 0x02021800, 0x0010032d, 0x83383580, 0x00000013, - 0x04020007, 0x4803c857, 0x4c000000, 0x0201f800, - 0x0010a594, 0x5c000000, 0x0c01f018, 0x4933c857, - 0x493bc857, 0x83383580, 0x00000027, 0x04000005, - 0x83383580, 0x00000014, 0x02020800, 0x0010032d, - 0x493bc857, 0x4937c857, 0x0201f800, 0x0010a591, - 0x0201f800, 0x0010408c, 0x42000800, 0x00000007, - 0x0201f800, 0x00103d8a, 0x0201f800, 0x0010605d, - 0x0201f000, 0x001070b5, 0x00109952, 0x0010995b, - 0x00109952, 0x00109952, 0x00109952, 0x0010995b, - 0x00109966, 0x001099f7, 0x001099b2, 0x001099f7, - 0x001099cd, 0x001099f7, 0x001099d4, 0x001099f7, - 0x001099d9, 0x001099f7, 0x001099d9, 0x001099f7, - 0x001099f7, 0x00109952, 0x00109952, 0x00109952, - 0x00109952, 0x00109952, 0x00109952, 0x00109952, - 0x00109952, 0x00109952, 0x00109952, 0x00109952, - 0x0010995b, 0x00109952, 0x001099f7, 0x00109952, - 0x00109952, 0x001099f7, 0x00109952, 0x001099f7, - 0x001099f7, 0x00109952, 0x00109952, 0x00109952, - 0x00109952, 0x001099f7, 0x001099f7, 0x00109952, - 0x001099f7, 0x001099f7, 0x00109952, 0x00109960, - 0x00109952, 0x00109952, 0x00109952, 0x00109952, - 0x001099dc, 0x001099f7, 0x00109952, 0x00109952, - 0x001099dd, 0x001099f7, 0x00109952, 0x00109952, - 0x00109952, 0x00109952, 0x00109952, 0x00109952, - 0x00109952, 0x00109952, 0x00109952, 0x00109954, - 0x00109952, 0x00109954, 0x00109952, 0x00109952, - 0x00109954, 0x00109952, 0x00109952, 0x00109952, - 0x00109954, 0x00109954, 0x00109954, 0x00109952, - 0x00109952, 0x00109952, 0x00109952, 0x00109952, - 0x00109954, 0x00109952, 0x00109952, 0x00109952, - 0x00109952, 0x00109952, 0x00109952, 0x00109952, - 0x00109952, 0x00109952, 0x0201f800, 0x0010032d, - 0x4d2c0000, 0x59325809, 0x0201f800, 0x00100589, - 0x5c025800, 0x0201f000, 0x00020a10, 0x59a8002a, - 0x48026006, 0x4a026203, 0x00000002, 0x1c01f000, - 0x4d3c0000, 0x417a7800, 0x0201f800, 0x00103d7f, - 0x5c027800, 0x0401f092, 0x0201f800, 0x00104181, - 0x0400008f, 0x59a8021b, 0x8c000508, 0x04000012, - 0x5932680a, 0x4c580000, 0x4200b000, 0x00000002, - 0x83a81c00, 0x00000002, 0x83341400, 0x00000006, - 0x0201f800, 0x00107d52, 0x80000540, 0x5c00b000, - 0x0402007f, 0x59340200, 0x8400051a, 0x48026a00, - 0x0401f023, 0x599c0017, 0x8c00050a, 0x04020078, - 0x4d3c0000, 0x417a7800, 0x0201f800, 0x00103d7f, - 0x5c027800, 0x42000800, 0x00000007, 0x0201f800, - 0x00103d8a, 0x59340212, 0x82000500, 0x0000ff00, - 0x04020009, 0x83440d80, 0x000007fe, 0x04020068, - 0x4d300000, 0x02000800, 0x0010dfe9, 0x5c026000, - 0x0401f063, 0x599c0019, 0x8c00050e, 0x04020060, + 0x4a02621b, 0x00000300, 0x4a026403, 0x0000003b, + 0x0401f08b, 0x4803c856, 0x4a02641b, 0x0000000b, + 0x4a02621b, 0x00000000, 0x0401f7f8, 0x4803c856, + 0x4a02641b, 0x00000007, 0x4a02621b, 0x00000000, + 0x0401f7f2, 0x59cc0001, 0x82000580, 0x00fffffe, + 0x04020081, 0x4c080000, 0x0201f800, 0x001040e5, + 0x04000026, 0x0201f800, 0x001040a6, 0x0201f800, + 0x0010a28d, 0x0402001e, 0x59a8021b, 0x82000540, + 0x00000003, 0x4803521b, 0x59a80018, 0x800000d0, + 0x59a8080f, 0x82040d00, 0x000000ff, 0x80041540, + 0x480b500f, 0x42000800, 0x00000003, 0x0201f800, + 0x001061d9, 0x497b501d, 0x8d0e1d20, 0x04000006, + 0x4a032804, 0x000007d0, 0x599c0017, 0x8c00050a, + 0x0402000a, 0x0201f800, 0x00020a10, 0x0201f800, + 0x0010e25a, 0x5c001000, 0x1c01f000, 0x0201f800, + 0x0010a2af, 0x0401f7fc, 0x5c001000, 0x0201f000, + 0x00020a10, 0x0201f800, 0x00101b0a, 0x04020052, + 0x0201f800, 0x0010a2b5, 0x4a026403, 0x00000047, + 0x4a026203, 0x00000001, 0x0201f000, 0x0010608d, + 0x0201f800, 0x00101b0a, 0x04020047, 0x0201f800, + 0x0010a2b5, 0x4a026403, 0x00000047, 0x4a026203, + 0x00000001, 0x0201f000, 0x0010608d, 0x0201f800, + 0x00101b0a, 0x0402003c, 0x0201f800, 0x0010a2b5, + 0x0201f000, 0x00020a10, 0x0401f83a, 0x04000036, + 0x4a026403, 0x0000004e, 0x4a026203, 0x00000001, + 0x0201f000, 0x0010608d, 0x0201f800, 0x00104194, + 0x040205f6, 0x4a026403, 0x0000004f, 0x497a601d, + 0x59cc0a06, 0x82040d00, 0x000000ff, 0x800409c0, + 0x0400061a, 0x82040580, 0x00000001, 0x04020005, + 0x59cc0808, 0x59a80005, 0x80040580, 0x04000613, + 0x82040580, 0x00000002, 0x0402000a, 0x83cc1400, + 0x0000000b, 0x4200b000, 0x00000002, 0x83341c00, + 0x00000006, 0x0201f800, 0x00107df9, 0x04000607, + 0x4a02601d, 0x00000001, 0x0401f604, 0x0201f800, + 0x00104194, 0x040205d5, 0x4a026403, 0x00000050, + 0x59cc0207, 0x4802601d, 0x0401f5fc, 0x4a026203, + 0x00000001, 0x42000800, 0x80000040, 0x0201f000, + 0x000209b1, 0x4803c857, 0x0201f000, 0x00020a10, + 0x4d2c0000, 0x4c500000, 0x4c580000, 0x4c540000, + 0x59a8005a, 0x82000c80, 0x00000841, 0x0402102d, + 0x0201f800, 0x0010055a, 0x0400002a, 0x492e6009, + 0x59a8005a, 0x48025802, 0x82000400, 0x00000003, + 0x80000104, 0x83cca400, 0x00000006, 0x82000c80, + 0x0000000a, 0x04001015, 0x4a025811, 0x0000000a, + 0x4200b000, 0x0000000a, 0x832c0400, 0x00000006, + 0x4000a800, 0x0201f800, 0x0010aee2, 0x412c7000, + 0x800409c0, 0x04020003, 0x49787001, 0x0401f00e, + 0x0201f800, 0x0010055a, 0x0400000e, 0x492c7001, + 0x40040000, 0x0401f7ea, 0x48025811, 0x4000b000, + 0x832c0400, 0x00000006, 0x4000a800, 0x0201f800, + 0x0010aee2, 0x82000540, 0x00000001, 0x0401f006, + 0x497b505a, 0x59325809, 0x0201f800, 0x00100589, + 0x80000580, 0x5c00a800, 0x5c00b000, 0x5c00a000, + 0x5c025800, 0x1c01f000, 0x4d340000, 0x5932680a, + 0x59343400, 0x4933c857, 0x4937c857, 0x481bc857, + 0x0201f800, 0x00104194, 0x5c026800, 0x1c01f000, + 0x4933c857, 0x4c600000, 0x4d3c0000, 0x4d440000, + 0x4d340000, 0x0401f864, 0x0402004e, 0x59cc0207, + 0x82000d00, 0x0000ff00, 0x900411c0, 0x59cc000a, + 0x82000500, 0x00ffffff, 0x80081540, 0x480a601d, + 0x8c040d18, 0x04000019, 0x42003000, 0x00000008, + 0x0201f800, 0x0010a591, 0x42000000, 0x0010bd1c, + 0x0201f800, 0x0010ae10, 0x8d0e1d20, 0x04000009, + 0x42002800, 0x00000002, 0x42003000, 0x00000024, + 0x42028000, 0x00000046, 0x0201f800, 0x0010a00e, + 0x4200c000, 0x00000001, 0x417a7800, 0x0201f800, + 0x00101a94, 0x0401f02e, 0x8c040d1a, 0x04000029, + 0x59cc000a, 0x0201f800, 0x001054fb, 0x02000800, + 0x00020319, 0x04020023, 0x5930000a, 0x4c000000, + 0x8d0e1d20, 0x0400000f, 0x59340c03, 0x59341802, + 0x820c1d00, 0x00ffffff, 0x58002403, 0x42002800, + 0x00000004, 0x42003000, 0x00000024, 0x42028000, + 0x00000046, 0x41301000, 0x0201f800, 0x0010a01e, + 0x4936600a, 0x42003000, 0x00000009, 0x0201f800, + 0x0010a599, 0x42000000, 0x0010bd1c, 0x0201f800, + 0x0010ae10, 0x417a7800, 0x4178c000, 0x0201f800, + 0x00101a94, 0x5c000000, 0x4802600a, 0x0401f004, + 0x82000540, 0x00000001, 0x0401f002, 0x80000580, + 0x5c026800, 0x5c028800, 0x5c027800, 0x5c00c000, + 0x1c01f000, 0x4933c857, 0x59cc0206, 0x82000480, + 0x00000010, 0x04021006, 0x4a02621b, 0x00000000, + 0x82000540, 0x00000001, 0x0401f002, 0x80000580, + 0x1c01f000, 0x4933c857, 0x4a02621b, 0x00000000, + 0x59cc0407, 0x82000500, 0x0000ff00, 0x82000580, + 0x00000800, 0x0402000d, 0x59cc0206, 0x59a8085a, + 0x80040480, 0x0400100a, 0x59cc0006, 0x82000500, + 0x00ff0000, 0x82000d80, 0x00140000, 0x04000003, + 0x82000d80, 0x00100000, 0x1c01f000, 0x42000000, + 0x0010bd11, 0x0201f800, 0x0010ae10, 0x82000540, + 0x00000001, 0x0401f7f9, 0x59300403, 0x82003480, + 0x00000057, 0x02021800, 0x0010032d, 0x83383580, + 0x00000013, 0x04020007, 0x4803c857, 0x4c000000, + 0x0201f800, 0x0010a687, 0x5c000000, 0x0c01f018, + 0x4933c857, 0x493bc857, 0x83383580, 0x00000027, + 0x04000005, 0x83383580, 0x00000014, 0x02020800, + 0x0010032d, 0x493bc857, 0x4937c857, 0x0201f800, + 0x0010a684, 0x0201f800, 0x001040a6, 0x42000800, + 0x00000007, 0x0201f800, 0x00103d9d, 0x0201f800, + 0x00106102, 0x0201f000, 0x00107144, 0x00109a1b, + 0x00109a24, 0x00109a1b, 0x00109a1b, 0x00109a1b, + 0x00109a24, 0x00109a2f, 0x00109ac3, 0x00109a7e, + 0x00109ac3, 0x00109a99, 0x00109ac3, 0x00109aa0, + 0x00109ac3, 0x00109aa5, 0x00109ac3, 0x00109aa5, + 0x00109ac3, 0x00109ac3, 0x00109a1b, 0x00109a1b, + 0x00109a1b, 0x00109a1b, 0x00109a1b, 0x00109a1b, + 0x00109a1b, 0x00109a1b, 0x00109a1b, 0x00109a1b, + 0x00109a1b, 0x00109a24, 0x00109a1b, 0x00109ac3, + 0x00109a1b, 0x00109a1b, 0x00109ac3, 0x00109a1b, + 0x00109ac3, 0x00109ac3, 0x00109a1b, 0x00109a1b, + 0x00109a1b, 0x00109a1b, 0x00109ac3, 0x00109ac3, + 0x00109a1b, 0x00109ac3, 0x00109ac3, 0x00109a1b, + 0x00109a29, 0x00109a1b, 0x00109a1b, 0x00109a1b, + 0x00109a1b, 0x00109aa8, 0x00109ac3, 0x00109a1b, + 0x00109a1b, 0x00109aa9, 0x00109ac3, 0x00109a1b, + 0x00109a1b, 0x00109a1b, 0x00109a1b, 0x00109a1b, + 0x00109a1b, 0x00109a1b, 0x00109a1b, 0x00109a1b, + 0x00109a1d, 0x00109a1b, 0x00109a1d, 0x00109a1b, + 0x00109a1b, 0x00109a1d, 0x00109a1b, 0x00109a1b, + 0x00109a1b, 0x00109a1d, 0x00109a1d, 0x00109a1d, + 0x00109a1b, 0x00109a1b, 0x00109a1b, 0x00109a1b, + 0x00109a1b, 0x00109a1d, 0x00109a1b, 0x00109a1b, + 0x00109a1b, 0x00109a1b, 0x00109a1b, 0x00109a1b, + 0x00109a1b, 0x00109a1b, 0x00109a1b, 0x0201f800, + 0x0010032d, 0x4d2c0000, 0x59325809, 0x0201f800, + 0x00100589, 0x5c025800, 0x0201f000, 0x00020a10, + 0x59a8002a, 0x48026006, 0x4a026203, 0x00000002, + 0x1c01f000, 0x4d3c0000, 0x417a7800, 0x0201f800, + 0x00103d92, 0x5c027800, 0x0401f095, 0x0201f800, + 0x0010419d, 0x04000092, 0x59a8021b, 0x8c000508, + 0x04000012, 0x5932680a, 0x4c580000, 0x4200b000, + 0x00000002, 0x83a81c00, 0x00000002, 0x83341400, + 0x00000006, 0x0201f800, 0x00107df9, 0x80000540, + 0x5c00b000, 0x04020082, 0x59340200, 0x8400051a, + 0x48026a00, 0x0401f026, 0x599c0017, 0x8c00050a, + 0x0402000a, 0x4d3c0000, 0x417a7800, 0x0201f800, + 0x00103d92, 0x5c027800, 0x42000800, 0x00000007, + 0x0201f800, 0x00103d9d, 0x59340212, 0x82000500, + 0x0000ff00, 0x04020009, 0x83440d80, 0x000007fe, + 0x0402006b, 0x4d300000, 0x02000800, 0x0010e0f9, + 0x5c026000, 0x0401f066, 0x599c0017, 0x8c00050a, + 0x04020063, 0x599c0019, 0x8c00050e, 0x04020060, 0x416c0000, 0x82000580, 0x00000002, 0x04020004, 0x59a80016, 0x80000000, 0x48035016, 0x42000800, - 0x00000003, 0x0201f800, 0x00103d8a, 0x4a026407, + 0x00000003, 0x0201f800, 0x00103d9d, 0x4a026407, 0x00000001, 0x4a026203, 0x00000001, 0x4a026403, - 0x00000002, 0x0201f800, 0x00105fe8, 0x4ce80000, - 0x4201d000, 0x00000001, 0x0201f800, 0x001057e8, + 0x00000002, 0x0201f800, 0x0010608d, 0x4ce80000, + 0x4201d000, 0x00000001, 0x0201f800, 0x0010588d, 0x5c01d000, 0x1c01f000, 0x59340200, 0x8400051a, - 0x48026a00, 0x0201f800, 0x00104178, 0x04000040, - 0x0201f800, 0x00105cf8, 0x42000800, 0x00000004, - 0x0201f800, 0x00103d8a, 0x0201f800, 0x0010a4cb, + 0x48026a00, 0x0201f800, 0x00104194, 0x04000040, + 0x0201f800, 0x00105d9d, 0x42000800, 0x00000004, + 0x0201f800, 0x00103d9d, 0x0201f800, 0x0010a5be, 0x04020037, 0x42000800, 0x00000005, 0x0201f800, - 0x00103d8a, 0x4a026407, 0x00000001, 0x4a026203, + 0x00103d9d, 0x4a026407, 0x00000001, 0x4a026203, 0x00000001, 0x4a026403, 0x00000003, 0x0201f000, - 0x00105fe8, 0x0201f800, 0x00104181, 0x04020028, + 0x0010608d, 0x0201f800, 0x0010419d, 0x04020028, 0x42000800, 0x00000006, 0x0401f827, 0x0401f024, - 0x42000800, 0x00000004, 0x0201f800, 0x00103d8a, - 0x0401f791, 0x0201f800, 0x0010408c, 0x0401f01c, + 0x42000800, 0x00000004, 0x0201f800, 0x00103d9d, + 0x0401f78e, 0x0201f800, 0x001040a6, 0x0401f01c, 0x0401f01b, 0x5930081f, 0x4807c857, 0x800409c0, 0x04000017, 0x5804001d, 0x81300580, 0x04020014, 0x4978081d, 0x58041415, 0x8c081516, 0x04000010, @@ -9889,1338 +9935,1349 @@ static const uint32_t isp_2400_risc_code[] = { 0x4d300000, 0x40066000, 0x417a7800, 0x0201f800, 0x00020912, 0x5c026000, 0x0401f001, 0x0201f000, 0x00020a10, 0x4933c857, 0x4807c857, 0x0201f800, - 0x00103d8a, 0x4d3c0000, 0x417a7800, 0x0201f800, - 0x00103d7f, 0x5c027800, 0x5934000a, 0x84000520, - 0x4802680a, 0x0201f000, 0x0010408c, 0x59340400, + 0x00103d9d, 0x4d3c0000, 0x417a7800, 0x0201f800, + 0x00103d92, 0x5c027800, 0x5934000a, 0x84000520, + 0x4802680a, 0x0201f000, 0x001040a6, 0x59340400, 0x4803c857, 0x80000110, 0x82003480, 0x0000000c, 0x02021800, 0x0010032d, 0x83383580, 0x00000015, 0x04020002, 0x0c01f006, 0x83383580, 0x00000016, - 0x02020800, 0x0010032d, 0x0c01f00d, 0x001078f5, - 0x001078f5, 0x001078f5, 0x001078f5, 0x001078f5, - 0x001078f5, 0x00109a5a, 0x00109a2f, 0x001078f5, - 0x001078f5, 0x001078f5, 0x001078f5, 0x001078f5, - 0x001078f5, 0x001078f5, 0x001078f5, 0x001078f5, - 0x001078f5, 0x00109a5a, 0x00109a61, 0x001078f5, - 0x001078f5, 0x001078f5, 0x001078f5, 0x4933c857, + 0x02020800, 0x0010032d, 0x0c01f00d, 0x00107999, + 0x00107999, 0x00107999, 0x00107999, 0x00107999, + 0x00107999, 0x00109b26, 0x00109afb, 0x00107999, + 0x00107999, 0x00107999, 0x00107999, 0x00107999, + 0x00107999, 0x00107999, 0x00107999, 0x00107999, + 0x00107999, 0x00109b26, 0x00109b2d, 0x00107999, + 0x00107999, 0x00107999, 0x00107999, 0x4933c857, 0x599c0017, 0x8c00050a, 0x0402001b, 0x813669c0, 0x04000019, 0x59340212, 0x82000500, 0x0000ff00, 0x04000015, 0x599c0019, 0x8c00050e, 0x04020012, - 0x4d3c0000, 0x417a7800, 0x0201f800, 0x00103d7f, + 0x4d3c0000, 0x417a7800, 0x0201f800, 0x00103d92, 0x5c027800, 0x42000800, 0x00000003, 0x0201f800, - 0x00103d8a, 0x4a026407, 0x00000001, 0x4a026203, + 0x00103d9d, 0x4a026407, 0x00000001, 0x4a026203, 0x00000001, 0x4a026403, 0x00000002, 0x0201f000, - 0x00105fe8, 0x59cc0001, 0x59340802, 0x80040580, + 0x0010608d, 0x59cc0001, 0x59340802, 0x80040580, 0x82000500, 0x00ffffff, 0x02020000, 0x00020a10, - 0x59345002, 0x0201f800, 0x00103aa1, 0x482a6802, + 0x59345002, 0x0201f800, 0x00103ab4, 0x482a6802, 0x0201f000, 0x00020a10, 0x4933c857, 0x59303403, 0x82183580, 0x0000001e, 0x02000000, 0x00020a10, - 0x1c01f000, 0x4933c857, 0x0201f800, 0x00107c6d, + 0x1c01f000, 0x4933c857, 0x0201f800, 0x00107d11, 0x02020000, 0x00020a10, 0x4a026203, 0x00000001, - 0x4a026403, 0x00000001, 0x0201f000, 0x00105fe8, + 0x4a026403, 0x00000001, 0x0201f000, 0x0010608d, 0x493bc857, 0x83380580, 0x00000051, 0x0402000b, - 0x0201f800, 0x0010644d, 0x02020000, 0x00107134, + 0x0201f800, 0x001064f2, 0x02020000, 0x001071c7, 0x59300203, 0x82000580, 0x00000002, 0x0400006e, 0x0201f800, 0x0010032d, 0x83380580, 0x00000027, 0x04000014, 0x83380580, 0x00000048, 0x04000006, 0x83380580, 0x00000014, 0x0400000e, 0x02020800, - 0x0010032d, 0x0201f800, 0x0010644d, 0x02020000, - 0x00107134, 0x59300203, 0x82000580, 0x00000004, + 0x0010032d, 0x0201f800, 0x001064f2, 0x02020000, + 0x001071c7, 0x59300203, 0x82000580, 0x00000004, 0x02000000, 0x00020b01, 0x0201f800, 0x0010032d, 0x4933c857, 0x59300403, 0x82000c80, 0x00000044, 0x02021800, 0x0010032d, 0x82000480, 0x00000040, 0x02001800, 0x0010032d, 0x40027000, 0x4803c857, - 0x0c01f001, 0x00109aa1, 0x00109aa3, 0x00109aa3, - 0x00109abe, 0x0201f800, 0x0010032d, 0x0201f800, - 0x0010605d, 0x59325809, 0x812e59c0, 0x04000016, + 0x0c01f001, 0x00109b6d, 0x00109b6f, 0x00109b6f, + 0x00109b8a, 0x0201f800, 0x0010032d, 0x0201f800, + 0x00106102, 0x59325809, 0x812e59c0, 0x04000016, 0x832c0500, 0x00ff0000, 0x04000013, 0x4a026203, 0x00000002, 0x5932680a, 0x59340200, 0x8c00050e, 0x0402000d, 0x42028000, 0x00000004, 0x0201f800, - 0x00109f21, 0x497a6009, 0x59300006, 0x80000540, + 0x00109ff8, 0x497a6009, 0x59300006, 0x80000540, 0x04020003, 0x59a8002b, 0x48026006, 0x4a026203, - 0x00000007, 0x1c01f000, 0x0201f800, 0x0010605d, - 0x0201f800, 0x0010889a, 0x02000000, 0x001070b5, + 0x00000007, 0x1c01f000, 0x0201f800, 0x00106102, + 0x0201f800, 0x00108953, 0x02000000, 0x00107144, 0x59325809, 0x0201f800, 0x00100580, 0x0201f000, - 0x001070b5, 0x0201f800, 0x0010032d, 0x59325809, + 0x00107144, 0x0201f800, 0x0010032d, 0x59325809, 0x592c040b, 0x8c000502, 0x04000007, 0x4a026203, 0x00000007, 0x42027000, 0x00000043, 0x0201f000, 0x00020a34, 0x4a026203, 0x00000004, 0x1c01f000, - 0x0201f800, 0x0010a147, 0x02000000, 0x00020aff, + 0x0201f800, 0x0010a226, 0x02000000, 0x00020aff, 0x1c01f000, 0x4a026203, 0x00000001, 0x4a026403, 0x00000041, 0x42027800, 0x80002042, 0x0201f000, 0x000209b1, 0x83380580, 0x00000051, 0x04000006, 0x83380580, 0x00000041, 0x02020800, 0x0010032d, 0x1c01f000, 0x0201f800, 0x00020979, 0x0201f800, - 0x0010a18b, 0x0201f000, 0x00020a10, 0x83380480, + 0x0010a26a, 0x0201f000, 0x00020a10, 0x83380480, 0x00000052, 0x02021800, 0x0010032d, 0x83380480, 0x00000049, 0x02001800, 0x0010032d, 0x0c01f001, - 0x00109b07, 0x00109b2e, 0x00109b05, 0x00109b05, - 0x00109b05, 0x00109b05, 0x00109b2e, 0x00109b05, - 0x00109b4f, 0x0201f800, 0x0010032d, 0x59325809, + 0x00109bd3, 0x00109bfd, 0x00109bd1, 0x00109bd1, + 0x00109bd1, 0x00109bd1, 0x00109bfd, 0x00109bd1, + 0x00109c1e, 0x0201f800, 0x0010032d, 0x59325809, 0x592c040b, 0x8c00051e, 0x04000013, 0x82000d00, - 0x000000c0, 0x82040d80, 0x00000080, 0x04000013, - 0x59300804, 0x8c040d18, 0x04020010, 0x59300415, + 0x000000c0, 0x82040d80, 0x00000080, 0x04000016, + 0x59300804, 0x8c040d18, 0x04020013, 0x59300415, 0x8c000516, 0x04000004, 0x4a026203, 0x00000007, - 0x0401f015, 0x42027000, 0x00000041, 0x0201f000, + 0x0401f018, 0x42027000, 0x00000041, 0x0201f000, 0x00020b20, 0x4a026203, 0x00000007, 0x497a6006, - 0x0201f000, 0x00020979, 0x59325809, 0x592c0c0b, - 0x8c040d1a, 0x04020005, 0x0201f800, 0x00020979, - 0x0201f000, 0x00020a10, 0x0201f800, 0x0010a147, - 0x040007fa, 0x1c01f000, 0x0201f800, 0x0010603d, - 0x59325809, 0x5932680a, 0x59340200, 0x8c00050e, - 0x0400000e, 0x592c040b, 0x82000500, 0x000000c0, - 0x82000580, 0x00000080, 0x04000005, 0x592c0010, - 0x59301816, 0x800c1c80, 0x480e6016, 0x4a026203, - 0x00000002, 0x0401f00d, 0x42028000, 0x00000004, - 0x0401fbdd, 0x59300006, 0x80000540, 0x04020004, - 0x59a8002b, 0x800000c2, 0x48026006, 0x497a6009, - 0x4a026203, 0x00000007, 0x1c01f000, 0x4933c857, - 0x0201f800, 0x0010644d, 0x02020800, 0x0010032d, - 0x59300203, 0x82000580, 0x00000002, 0x0400078e, - 0x0201f800, 0x0010032d, 0x4a026203, 0x00000007, - 0x497a6006, 0x0201f000, 0x00020979, 0x4a026203, - 0x00000007, 0x497a6006, 0x0201f000, 0x00020974, - 0x59300415, 0x8c00051c, 0x02020000, 0x00020b11, - 0x59325809, 0x592c2010, 0x40080000, 0x80102480, - 0x59300016, 0x80102400, 0x48126016, 0x0201f000, - 0x00020b11, 0x8c040d0e, 0x0402000a, 0x4a026203, - 0x00000006, 0x0401f823, 0x59300020, 0x80000540, - 0x02020800, 0x00100aa0, 0x0201f000, 0x00020974, - 0x4a026203, 0x00000002, 0x1c01f000, 0x42000800, - 0x00000001, 0x0201f800, 0x00100aa0, 0x82040580, - 0x00000001, 0x02000000, 0x00020b18, 0x0401f7d8, - 0x59300415, 0x8c00051c, 0x04000006, 0x0201f800, - 0x0010086c, 0x02000000, 0x00020b0a, 0x1c01f000, - 0x59300012, 0x80000540, 0x04020005, 0x0201f800, - 0x0010086c, 0x02000000, 0x00020b0a, 0x1c01f000, - 0x492fc857, 0x480bc857, 0x8c08153e, 0x04000006, - 0x80081080, 0x80081000, 0x42000800, 0x00000009, - 0x0401f003, 0x42000800, 0x00000015, 0x480a580c, - 0x1c01f000, 0x83380580, 0x00000013, 0x04000005, - 0x83380580, 0x00000014, 0x02020800, 0x0010032d, - 0x59300415, 0x8c000516, 0x02000800, 0x0010032d, - 0x1c01f000, 0x0201f800, 0x0010032d, 0x59300009, - 0x80000540, 0x02020800, 0x0010032d, 0x1c01f000, - 0x59300415, 0x8c000516, 0x02000800, 0x0010032d, - 0x1c01f000, 0x4a026203, 0x00000004, 0x493a6403, - 0x42000800, 0x80002001, 0x0201f000, 0x000209b1, - 0x4a026203, 0x00000003, 0x493a6403, 0x0201f800, - 0x0002015e, 0x59325809, 0x592c040b, 0x8c00051e, - 0x04000012, 0x82000500, 0x000000c0, 0x82000580, - 0x00000080, 0x04000011, 0x59300415, 0x8c000512, - 0x0402000a, 0x8c000510, 0x04020008, 0x592c040d, - 0x80000540, 0x04020005, 0x82080d40, 0x80003065, - 0x0201f000, 0x000209a3, 0x82080d40, 0x80002065, - 0x0201f000, 0x000209a3, 0x82080d40, 0x80002042, + 0x59300415, 0x8c000516, 0x0402000e, 0x0201f000, + 0x00020979, 0x59325809, 0x592c0c0b, 0x8c040d1a, + 0x04020005, 0x0201f800, 0x00020979, 0x0201f000, + 0x00020a10, 0x0201f800, 0x0010a226, 0x040007fa, + 0x1c01f000, 0x0201f800, 0x001060e2, 0x59325809, + 0x5932680a, 0x59340200, 0x8c00050e, 0x0400000e, + 0x592c040b, 0x82000500, 0x000000c0, 0x82000580, + 0x00000080, 0x04000005, 0x592c0010, 0x59301816, + 0x800c1c80, 0x480e6016, 0x4a026203, 0x00000002, + 0x0401f00d, 0x42028000, 0x00000004, 0x0401fbe5, + 0x59300006, 0x80000540, 0x04020004, 0x59a8002b, + 0x800000c2, 0x48026006, 0x497a6009, 0x4a026203, + 0x00000007, 0x1c01f000, 0x4933c857, 0x0201f800, + 0x001064f2, 0x02020800, 0x0010032d, 0x59300203, + 0x82000580, 0x00000002, 0x0400078b, 0x0201f800, + 0x0010032d, 0x4a026203, 0x00000007, 0x497a6006, + 0x0201f000, 0x00020979, 0x4a026203, 0x00000007, + 0x497a6006, 0x0201f000, 0x00020974, 0x59300415, + 0x8c00051c, 0x02020000, 0x00020b11, 0x59325809, + 0x592c2010, 0x40080000, 0x80102480, 0x59300016, + 0x80102400, 0x48126016, 0x0201f000, 0x00020b11, + 0x8c040d0e, 0x0402000a, 0x4a026203, 0x00000006, + 0x0401f823, 0x59300020, 0x80000540, 0x02020800, + 0x00100aa1, 0x0201f000, 0x00020974, 0x4a026203, + 0x00000002, 0x1c01f000, 0x42000800, 0x00000001, + 0x0201f800, 0x00100aa1, 0x82040580, 0x00000001, + 0x02000000, 0x00020b18, 0x0401f7d8, 0x59300415, + 0x8c00051c, 0x04000006, 0x0201f800, 0x0010086a, + 0x02000000, 0x00020b0a, 0x1c01f000, 0x59300012, + 0x80000540, 0x04020005, 0x0201f800, 0x0010086a, + 0x02000000, 0x00020b0a, 0x1c01f000, 0x492fc857, + 0x480bc857, 0x8c08153e, 0x04000006, 0x80081080, + 0x80081000, 0x42000800, 0x00000009, 0x0401f003, + 0x42000800, 0x00000015, 0x480a580c, 0x1c01f000, + 0x83380580, 0x00000013, 0x04000005, 0x83380580, + 0x00000014, 0x02020800, 0x0010032d, 0x59300415, + 0x8c000516, 0x02000800, 0x0010032d, 0x1c01f000, + 0x0201f800, 0x0010032d, 0x59300009, 0x80000540, + 0x02020800, 0x0010032d, 0x1c01f000, 0x59300415, + 0x8c000516, 0x02000800, 0x0010032d, 0x1c01f000, + 0x4a026203, 0x00000004, 0x493a6403, 0x42000800, + 0x80002001, 0x0201f000, 0x000209b1, 0x4a026203, + 0x00000003, 0x493a6403, 0x0201f800, 0x0002015e, + 0x59325809, 0x592c040b, 0x8c00051e, 0x04000012, + 0x82000500, 0x000000c0, 0x82000580, 0x00000080, + 0x04000011, 0x59300415, 0x8c000512, 0x0402000a, + 0x8c000510, 0x04020008, 0x592c040d, 0x80000540, + 0x04020005, 0x82080d40, 0x80003065, 0x0201f000, + 0x000209a3, 0x82080d40, 0x80002065, 0x0201f000, + 0x000209a3, 0x82080d40, 0x80002042, 0x0201f000, + 0x000209a3, 0x4933c857, 0x493bc857, 0x83380480, + 0x00000044, 0x02021800, 0x0010032d, 0x83380480, + 0x00000041, 0x02001800, 0x0010032d, 0x0c01f001, + 0x00109cc3, 0x00109cd3, 0x00109ce8, 0x59325809, + 0x592c040b, 0x8c00051e, 0x0400001d, 0x82001d00, + 0x000000c0, 0x820c1d80, 0x000000c0, 0x04000018, + 0x4a026203, 0x00000001, 0x493a6403, 0x42000800, + 0x80002042, 0x0201f000, 0x000209b1, 0x59325809, + 0x592c040b, 0x8c00051e, 0x0400000d, 0x82001d00, + 0x000000c0, 0x820c1d80, 0x000000c0, 0x04000008, + 0x4a026203, 0x00000001, 0x493a6403, 0x42000800, + 0x80002001, 0x0201f000, 0x000209b1, 0x497a6009, + 0x497a6006, 0x42028000, 0x00000004, 0x0401f311, + 0x59325809, 0x592c040b, 0x8c00051e, 0x040007f8, + 0x82001d00, 0x000000c0, 0x820c1d80, 0x000000c0, + 0x040007f3, 0x4a026203, 0x00000003, 0x493a6403, + 0x0201f800, 0x0002015e, 0x82080d40, 0x80002065, 0x0201f000, 0x000209a3, 0x4933c857, 0x493bc857, - 0x83380480, 0x00000044, 0x02021800, 0x0010032d, - 0x83380480, 0x00000041, 0x02001800, 0x0010032d, - 0x0c01f001, 0x00109bf4, 0x00109c04, 0x00109c19, - 0x59325809, 0x592c040b, 0x8c00051e, 0x0400001d, - 0x82001d00, 0x000000c0, 0x820c1d80, 0x000000c0, - 0x04000018, 0x4a026203, 0x00000001, 0x493a6403, - 0x42000800, 0x80002042, 0x0201f000, 0x000209b1, - 0x59325809, 0x592c040b, 0x8c00051e, 0x0400000d, - 0x82001d00, 0x000000c0, 0x820c1d80, 0x000000c0, - 0x04000008, 0x4a026203, 0x00000001, 0x493a6403, - 0x42000800, 0x80002001, 0x0201f000, 0x000209b1, - 0x497a6009, 0x497a6006, 0x42028000, 0x00000004, - 0x0401f309, 0x59325809, 0x592c040b, 0x8c00051e, - 0x040007f8, 0x82001d00, 0x000000c0, 0x820c1d80, - 0x000000c0, 0x040007f3, 0x4a026203, 0x00000003, - 0x493a6403, 0x0201f800, 0x0002015e, 0x82080d40, - 0x80002065, 0x0201f000, 0x000209a3, 0x4933c857, - 0x493bc857, 0x83380580, 0x00000085, 0x04000006, - 0x83380580, 0x00000088, 0x0400000a, 0x0201f800, - 0x0010032d, 0x4a026203, 0x00000009, 0x493a6403, - 0x42000800, 0x8000004b, 0x0201f000, 0x000209b1, - 0x83300580, 0x0010f53c, 0x02020800, 0x0010032d, - 0x4d1c0000, 0x813669c0, 0x04000004, 0x0201f800, - 0x0010a141, 0x0402004a, 0x59cc1404, 0x41780000, - 0x0401f849, 0x0400001a, 0x59cc0204, 0x82001580, - 0x0000ffff, 0x04000004, 0x591c1402, 0x80080580, - 0x04020013, 0x591c0407, 0x82000500, 0x0000001f, - 0x82002580, 0x00000006, 0x04000007, 0x82002580, - 0x00000004, 0x04000028, 0x82002580, 0x00000011, - 0x04020007, 0x497a3a05, 0x42002000, 0x00000054, - 0x0201f800, 0x0010720a, 0x0401f02d, 0x8d0e1d20, - 0x04000004, 0x42023800, 0xffffffff, 0x0401f7f7, - 0x813669c0, 0x04020009, 0x59cc0001, 0x0201f800, - 0x0010548f, 0x04020022, 0x0201f800, 0x00103dcb, - 0x0402001f, 0x4936600a, 0x4a026403, 0x00000087, - 0x59cc1204, 0x82081580, 0x0000ffff, 0x04020003, - 0x4a026403, 0x00000086, 0x4d2c0000, 0x0201f800, - 0x0010a4f8, 0x0201f800, 0x00104489, 0x5c025800, - 0x0401f00f, 0x591c0403, 0x82000580, 0x00000038, - 0x040007da, 0x591c0203, 0x82000580, 0x00000007, - 0x040207db, 0x4d300000, 0x411e6000, 0x0201f800, - 0x001070b5, 0x5c026000, 0x0401f7d5, 0x5c023800, - 0x1c01f000, 0x4933c857, 0x480bc857, 0x4c5c0000, - 0x4000b800, 0x42002800, 0x0010f584, 0x41300000, - 0x80140580, 0x0400001c, 0x58140203, 0x82000580, - 0x00000000, 0x04000018, 0x58140202, 0x80080580, - 0x04020015, 0x58141c07, 0x820c0580, 0x00000005, - 0x04000011, 0x8c5cbd00, 0x04000004, 0x820c0580, - 0x00000007, 0x0400000c, 0x820c0580, 0x00000009, - 0x04000031, 0x5930200a, 0x5814000a, 0x800001c0, - 0x0400000b, 0x801021c0, 0x04000003, 0x80100580, - 0x04000012, 0x82142c00, 0x00000024, 0x41540000, - 0x80140480, 0x04021019, 0x0401f7dd, 0x5814001f, - 0x801021c0, 0x04000005, 0x58102002, 0x82102500, - 0x00ffffff, 0x0401f7f2, 0x8c5cbd00, 0x040207f2, - 0x5930201f, 0x0401f7ee, 0x40163800, 0x8c5cbd00, - 0x04000008, 0x4c080000, 0x4c140000, 0x0201f800, - 0x0010a48d, 0x5c002800, 0x5c001000, 0x040007e6, - 0x81300540, 0x0401f00a, 0x8c5cbd00, 0x04000008, - 0x40080800, 0x42023800, 0xffffffff, 0x0201f800, - 0x00104493, 0x040007f7, 0x80000580, 0x5c00b800, - 0x1c01f000, 0x58141808, 0x8c0c1d10, 0x040207d6, - 0x0401f7cd, 0x4933c857, 0x83300580, 0x0010f518, - 0x0402003e, 0x4a026203, 0x00000000, 0x83380580, - 0x00000013, 0x0402002d, 0x59300403, 0x82000580, - 0x00000092, 0x02020800, 0x0010032d, 0x59a80052, - 0x59325809, 0x812e59c0, 0x04000006, 0x812c0580, - 0x02020800, 0x0010032d, 0x592c0000, 0x497a5800, - 0x800001c0, 0x04000005, 0x48035052, 0x0201f800, - 0x0010702d, 0x0401f003, 0x497b5052, 0x497b5053, - 0x812e59c0, 0x04000020, 0x592c0205, 0x82000580, - 0x00000055, 0x02000000, 0x00100580, 0x83380580, - 0x00000013, 0x04020005, 0x4a025a07, 0x00000000, - 0x0201f000, 0x000203ab, 0x4a025a07, 0x00000031, - 0x4a025812, 0x00000004, 0x4a025813, 0x000000ff, - 0x0201f000, 0x000203ab, 0x83380580, 0x00000027, - 0x04000005, 0x83380580, 0x00000014, 0x02020800, - 0x0010032d, 0x493bc857, 0x0201f800, 0x0010605d, - 0x0401f7ca, 0x1c01f000, 0x4933c857, 0x83380580, - 0x00000013, 0x0402000e, 0x59300403, 0x4803c857, - 0x82000c80, 0x00000085, 0x02001800, 0x0010032d, - 0x82000c80, 0x00000093, 0x02021800, 0x0010032d, - 0x82000480, 0x00000085, 0x0c01f019, 0x83380580, - 0x00000027, 0x04000005, 0x83380580, 0x00000014, - 0x02020000, 0x00107134, 0x493bc857, 0x0201f800, - 0x0010605d, 0x59325809, 0x812e59c0, 0x02000000, - 0x001070b5, 0x4a025a07, 0x00000031, 0x4a025812, - 0x00000004, 0x4a025813, 0x000000ff, 0x0201f800, - 0x000203ab, 0x0201f000, 0x001070b5, 0x00109d59, - 0x00109d60, 0x00109d60, 0x00109d59, 0x00109d59, - 0x00109d59, 0x00109d59, 0x00109d59, 0x00109d59, - 0x00109d59, 0x00109d59, 0x00109d59, 0x00109d59, - 0x00109d5b, 0x0201f800, 0x0010032d, 0x59325809, - 0x4a025a07, 0x00000000, 0x0201f800, 0x000203ab, - 0x0201f000, 0x00020a10, 0x4933c857, 0x42000000, - 0x0010bc2d, 0x0201f800, 0x0010ad1d, 0x0201f800, - 0x0010a18b, 0x497a6205, 0x42028000, 0x0000000b, - 0x0401f807, 0x4a026407, 0x00000006, 0x4a026203, - 0x00000007, 0x497a6006, 0x1c01f000, 0x4933c857, - 0x4943c857, 0x59300407, 0x82000580, 0x00000007, - 0x04020002, 0x1c01f000, 0x0201f800, 0x0010610d, - 0x4df00000, 0x0201f800, 0x0010889a, 0x0400000a, - 0x59300809, 0x58040000, 0x80001540, 0x04000006, - 0x49780800, 0x4d2c0000, 0x400a5800, 0x0401f99a, - 0x5c025800, 0x0201f800, 0x001085b6, 0x82000c80, - 0x0000000e, 0x02021800, 0x0010032d, 0x0c01f001, - 0x00109db3, 0x00109db7, 0x00109d9e, 0x00109dc6, - 0x00109dda, 0x00109d9e, 0x00109d9e, 0x00109d9e, - 0x00109d9e, 0x00109d9e, 0x00109d9e, 0x00109d9e, - 0x00109d9e, 0x00109d9e, 0x4d400000, 0x59300020, - 0x80000540, 0x04000005, 0x41400800, 0x0201f800, - 0x00100aa0, 0x40068000, 0x4d2c0000, 0x59325809, - 0x0201f800, 0x0010889a, 0x04020977, 0x4c5c0000, - 0x5930b80a, 0x0201f800, 0x001070b5, 0x485e600a, - 0x5c00b800, 0x5c025800, 0x5c028000, 0x5c03e000, - 0x02000000, 0x001060fa, 0x1c01f000, 0x598c000f, - 0x81300580, 0x04020004, 0x0201f800, 0x00106388, - 0x04020018, 0x0201f800, 0x0010e343, 0x80c40040, - 0x040007de, 0x0201f800, 0x00106018, 0x04000011, - 0x0201f800, 0x0010032d, 0x0201f800, 0x001085a4, - 0x04020004, 0x0201f800, 0x00106351, 0x04020009, - 0x0201f800, 0x0010e1ca, 0x80c40040, 0x040007cf, - 0x0201f800, 0x00106018, 0x02020800, 0x0010032d, - 0x59300203, 0x82000c80, 0x0000000e, 0x02021800, - 0x0010032d, 0x0c01f7b7, 0x0201f800, 0x00100bd4, - 0x0401f7c2, 0x4933c857, 0x4d440000, 0x4d340000, - 0x59cc3800, 0x821c3d00, 0x00ffffff, 0x59cc0007, - 0x4c000000, 0x59cc0001, 0x82000500, 0x00ffffff, - 0x82000d80, 0x00fffffe, 0x5c000000, 0x04020005, - 0x801c0d80, 0x04020053, 0x42000000, 0x00fffffe, - 0x0201f800, 0x0010548f, 0x02000800, 0x00020319, - 0x0402004c, 0x5930000a, 0x4c000000, 0x8d0e1d20, - 0x04000014, 0x81342d80, 0x04000003, 0x42002800, - 0x00000004, 0x58002403, 0x59340c03, 0x59341802, - 0x820c1d00, 0x00ffffff, 0x42003000, 0x00000005, - 0x59cc4008, 0x59cc3809, 0x9c2041c0, 0x9c1c39c0, - 0x42028000, 0x00000046, 0x41301000, 0x0401f93c, - 0x4936600a, 0x83440d80, 0x000007fe, 0x04020014, - 0x42003000, 0x0000001a, 0x0201f800, 0x0010a4ae, - 0x42000000, 0x0010bc1a, 0x0201f800, 0x0010ad1d, - 0x4d3c0000, 0x4d400000, 0x42028000, 0x00000029, - 0x42027800, 0x0000020a, 0x0201f800, 0x0010ded4, - 0x5c028000, 0x5c027800, 0x0401f012, 0x42003000, - 0x0000000b, 0x0201f800, 0x0010a4ae, 0x42000000, - 0x0010bc1a, 0x0201f800, 0x0010ad1d, 0x4d3c0000, - 0x4d400000, 0x42028000, 0x00000029, 0x417a7800, - 0x0201f800, 0x0010df61, 0x5c028000, 0x5c027800, - 0x5c000000, 0x4802600a, 0x59cc0007, 0x83440d80, - 0x000007fe, 0x04020005, 0x42000000, 0x00fffffe, - 0x4a026c00, 0x00000707, 0x48026802, 0x80000580, - 0x5c026800, 0x5c028800, 0x1c01f000, 0x4933c857, - 0x4c040000, 0x59a8005a, 0x82000580, 0x00000074, - 0x04020040, 0x59cc0a08, 0x82040480, 0x00000100, - 0x04001033, 0x59cc0c08, 0x82040500, 0x00008000, - 0x04000035, 0x59a80013, 0x80000540, 0x04020009, - 0x5930100a, 0x58080212, 0x82000500, 0x0000ff00, - 0x04000004, 0x82040500, 0x00000800, 0x0400002a, - 0x59cc0c09, 0x80040840, 0x04001024, 0x59a80a1b, - 0x8c040d06, 0x04000004, 0x59cc0c0f, 0x8c040d1e, - 0x04020012, 0x59cc0a17, 0x800409c0, 0x04020012, - 0x59cc0a18, 0x82040480, 0x00000100, 0x04001014, - 0x59cc0c18, 0x800409c0, 0x0402000e, 0x59cc0c19, - 0x80040840, 0x04001011, 0x59cc0c1a, 0x80040840, - 0x04001011, 0x0401f018, 0x4a02621b, 0x00000100, - 0x0401f012, 0x4a02621b, 0x00000300, 0x0401f00f, - 0x4a02621b, 0x00000500, 0x0401f00c, 0x4a02621b, - 0x00000700, 0x0401f009, 0x4a02621b, 0x00000900, - 0x0401f006, 0x4a02621b, 0x00000f00, 0x0401f003, - 0x4a02621b, 0x00002d00, 0x82000540, 0x00000001, - 0x0401f002, 0x80000580, 0x5c000800, 0x1c01f000, - 0x59cc0407, 0x4803c857, 0x82000580, 0x00000800, - 0x04000003, 0x4a02621b, 0x00000000, 0x1c01f000, - 0x4933c857, 0x4c580000, 0x59cc000c, 0x59340802, - 0x82040d00, 0x00ffffff, 0x80040580, 0x04020012, - 0x83cc1400, 0x00000008, 0x4200b000, 0x00000002, - 0x83341c00, 0x00000006, 0x0201f800, 0x00107d52, - 0x04020009, 0x83cc1400, 0x0000000a, 0x4200b000, + 0x83380580, 0x00000085, 0x04000006, 0x83380580, + 0x00000088, 0x0400000a, 0x0201f800, 0x0010032d, + 0x4a026203, 0x00000009, 0x493a6403, 0x42000800, + 0x8000004b, 0x0201f000, 0x000209b1, 0x83300580, + 0x0010f64c, 0x02020800, 0x0010032d, 0x4d1c0000, + 0x813669c0, 0x04000004, 0x0201f800, 0x0010a220, + 0x0402004a, 0x59cc1404, 0x41780000, 0x0401f849, + 0x0400001a, 0x59cc0204, 0x82001580, 0x0000ffff, + 0x04000004, 0x591c1402, 0x80080580, 0x04020013, + 0x591c0407, 0x82000500, 0x0000001f, 0x82002580, + 0x00000006, 0x04000007, 0x82002580, 0x00000004, + 0x04000028, 0x82002580, 0x00000011, 0x04020007, + 0x497a3a05, 0x42002000, 0x00000054, 0x0201f800, + 0x0010729d, 0x0401f02d, 0x8d0e1d20, 0x04000004, + 0x42023800, 0xffffffff, 0x0401f7f7, 0x813669c0, + 0x04020009, 0x59cc0001, 0x0201f800, 0x001054fb, + 0x04020022, 0x0201f800, 0x00103de1, 0x0402001f, + 0x4936600a, 0x4a026403, 0x00000087, 0x59cc1204, + 0x82081580, 0x0000ffff, 0x04020003, 0x4a026403, + 0x00000086, 0x4d2c0000, 0x0201f800, 0x0010a5eb, + 0x0201f800, 0x001044a8, 0x5c025800, 0x0401f00f, + 0x591c0403, 0x82000580, 0x00000038, 0x040007da, + 0x591c0203, 0x82000580, 0x00000007, 0x040207db, + 0x4d300000, 0x411e6000, 0x0201f800, 0x00107144, + 0x5c026000, 0x0401f7d5, 0x5c023800, 0x1c01f000, + 0x4933c857, 0x480bc857, 0x4c5c0000, 0x4000b800, + 0x42002800, 0x0010f694, 0x41300000, 0x80140580, + 0x0400001f, 0x58140203, 0x82000580, 0x00000000, + 0x0400001b, 0x58140202, 0x80080580, 0x04020018, + 0x58141c07, 0x820c0580, 0x00000005, 0x04000014, + 0x8c5cbd00, 0x04000004, 0x820c0580, 0x00000007, + 0x0400000f, 0x820c0580, 0x00000009, 0x04000039, + 0x5930200a, 0x5814000a, 0x800001c0, 0x0400000e, + 0x82001d80, 0x0010c2b2, 0x0400000b, 0x801021c0, + 0x04000003, 0x80100580, 0x04000012, 0x82142c00, + 0x00000024, 0x41540000, 0x80140480, 0x0402101e, + 0x0401f7da, 0x5814001f, 0x801021c0, 0x04000005, + 0x58102002, 0x82102500, 0x00ffffff, 0x0401f7f2, + 0x8c5cbd00, 0x040207f2, 0x5930201f, 0x0401f7ee, + 0x40163800, 0x8c5cbd00, 0x04000008, 0x4c080000, + 0x4c140000, 0x0201f800, 0x0010a580, 0x5c002800, + 0x5c001000, 0x040007e6, 0x591c000a, 0x800001c0, + 0x04020003, 0x5930000a, 0x4802380a, 0x81300540, + 0x0401f00a, 0x8c5cbd00, 0x04000008, 0x40080800, + 0x42023800, 0xffffffff, 0x0201f800, 0x001044b2, + 0x040007f2, 0x80000580, 0x5c00b800, 0x1c01f000, + 0x58141808, 0x8c0c1d10, 0x040207d1, 0x0401f7c5, + 0x4933c857, 0x83300580, 0x0010f628, 0x0402003e, + 0x4a026203, 0x00000000, 0x83380580, 0x00000013, + 0x0402002d, 0x59300403, 0x82000580, 0x00000092, + 0x02020800, 0x0010032d, 0x59a80052, 0x59325809, + 0x812e59c0, 0x04000006, 0x812c0580, 0x02020800, + 0x0010032d, 0x592c0000, 0x497a5800, 0x800001c0, + 0x04000005, 0x48035052, 0x0201f800, 0x001070bc, + 0x0401f003, 0x497b5052, 0x497b5053, 0x812e59c0, + 0x04000020, 0x592c0205, 0x82000580, 0x00000055, + 0x02000000, 0x00100580, 0x83380580, 0x00000013, + 0x04020005, 0x4a025a07, 0x00000000, 0x0201f000, + 0x000203ab, 0x4a025a07, 0x00000031, 0x4a025812, + 0x00000004, 0x4a025813, 0x000000ff, 0x0201f000, + 0x000203ab, 0x83380580, 0x00000027, 0x04000005, + 0x83380580, 0x00000014, 0x02020800, 0x0010032d, + 0x493bc857, 0x0201f800, 0x00106102, 0x0401f7ca, + 0x1c01f000, 0x4933c857, 0x83380580, 0x00000013, + 0x0402000e, 0x59300403, 0x4803c857, 0x82000c80, + 0x00000085, 0x02001800, 0x0010032d, 0x82000c80, + 0x00000093, 0x02021800, 0x0010032d, 0x82000480, + 0x00000085, 0x0c01f019, 0x83380580, 0x00000027, + 0x04000005, 0x83380580, 0x00000014, 0x02020000, + 0x001071c7, 0x493bc857, 0x0201f800, 0x00106102, + 0x59325809, 0x812e59c0, 0x02000000, 0x00107144, + 0x4a025a07, 0x00000031, 0x4a025812, 0x00000004, + 0x4a025813, 0x000000ff, 0x0201f800, 0x000203ab, + 0x0201f000, 0x00107144, 0x00109e30, 0x00109e37, + 0x00109e37, 0x00109e30, 0x00109e30, 0x00109e30, + 0x00109e30, 0x00109e30, 0x00109e30, 0x00109e30, + 0x00109e30, 0x00109e30, 0x00109e30, 0x00109e32, + 0x0201f800, 0x0010032d, 0x59325809, 0x4a025a07, + 0x00000000, 0x0201f800, 0x000203ab, 0x0201f000, + 0x00020a10, 0x4933c857, 0x42000000, 0x0010bd2d, + 0x0201f800, 0x0010ae10, 0x0201f800, 0x0010a26a, + 0x497a6205, 0x42028000, 0x0000000b, 0x0401f807, + 0x4a026407, 0x00000006, 0x4a026203, 0x00000007, + 0x497a6006, 0x1c01f000, 0x4933c857, 0x4943c857, + 0x59300407, 0x82000580, 0x00000007, 0x04020002, + 0x1c01f000, 0x0201f800, 0x001061b2, 0x4df00000, + 0x0201f800, 0x00108953, 0x0400000a, 0x59300809, + 0x58040000, 0x80001540, 0x04000006, 0x49780800, + 0x4d2c0000, 0x400a5800, 0x0401f99a, 0x5c025800, + 0x0201f800, 0x0010866b, 0x82000c80, 0x0000000e, + 0x02021800, 0x0010032d, 0x0c01f001, 0x00109e8a, + 0x00109e8e, 0x00109e75, 0x00109e9d, 0x00109eb1, + 0x00109e75, 0x00109e75, 0x00109e75, 0x00109e75, + 0x00109e75, 0x00109e75, 0x00109e75, 0x00109e75, + 0x00109e75, 0x4d400000, 0x59300020, 0x80000540, + 0x04000005, 0x41400800, 0x0201f800, 0x00100aa1, + 0x40068000, 0x4d2c0000, 0x59325809, 0x0201f800, + 0x00108953, 0x04020977, 0x4c5c0000, 0x5930b80a, + 0x0201f800, 0x00107144, 0x485e600a, 0x5c00b800, + 0x5c025800, 0x5c028000, 0x5c03e000, 0x02000000, + 0x0010619f, 0x1c01f000, 0x598c000f, 0x81300580, + 0x04020004, 0x0201f800, 0x0010642d, 0x04020018, + 0x0201f800, 0x0010e453, 0x80c40040, 0x040007de, + 0x0201f800, 0x001060bd, 0x04000011, 0x0201f800, + 0x0010032d, 0x0201f800, 0x00108659, 0x04020004, + 0x0201f800, 0x001063f6, 0x04020009, 0x0201f800, + 0x0010e2da, 0x80c40040, 0x040007cf, 0x0201f800, + 0x001060bd, 0x02020800, 0x0010032d, 0x59300203, + 0x82000c80, 0x0000000e, 0x02021800, 0x0010032d, + 0x0c01f7b7, 0x0201f800, 0x00100bd5, 0x0401f7c2, + 0x4933c857, 0x4d440000, 0x4d340000, 0x59cc3800, + 0x821c3d00, 0x00ffffff, 0x59cc0007, 0x4c000000, + 0x59cc0001, 0x82000500, 0x00ffffff, 0x82000d80, + 0x00fffffe, 0x5c000000, 0x04020005, 0x801c0d80, + 0x04020053, 0x42000000, 0x00fffffe, 0x0201f800, + 0x001054fb, 0x02000800, 0x00020319, 0x0402004c, + 0x5930000a, 0x4c000000, 0x8d0e1d20, 0x04000014, + 0x81342d80, 0x04000003, 0x42002800, 0x00000004, + 0x58002403, 0x59340c03, 0x59341802, 0x820c1d00, + 0x00ffffff, 0x42003000, 0x00000005, 0x59cc4008, + 0x59cc3809, 0x9c2041c0, 0x9c1c39c0, 0x42028000, + 0x00000046, 0x41301000, 0x0401f93c, 0x4936600a, + 0x83440d80, 0x000007fe, 0x04020014, 0x42003000, + 0x0000001a, 0x0201f800, 0x0010a5a1, 0x42000000, + 0x0010bd1a, 0x0201f800, 0x0010ae10, 0x4d3c0000, + 0x4d400000, 0x42028000, 0x00000029, 0x42027800, + 0x0000020a, 0x0201f800, 0x0010dfe1, 0x5c028000, + 0x5c027800, 0x0401f012, 0x42003000, 0x0000000b, + 0x0201f800, 0x0010a5a1, 0x42000000, 0x0010bd1a, + 0x0201f800, 0x0010ae10, 0x4d3c0000, 0x4d400000, + 0x42028000, 0x00000029, 0x417a7800, 0x0201f800, + 0x0010e06f, 0x5c028000, 0x5c027800, 0x5c000000, + 0x4802600a, 0x59cc0007, 0x83440d80, 0x000007fe, + 0x04020005, 0x42000000, 0x00fffffe, 0x4a026c00, + 0x00000707, 0x48026802, 0x80000580, 0x5c026800, + 0x5c028800, 0x1c01f000, 0x4933c857, 0x4c040000, + 0x59a8005a, 0x82000580, 0x00000074, 0x04020040, + 0x59cc0a08, 0x82040480, 0x00000100, 0x04001033, + 0x59cc0c08, 0x82040500, 0x00008000, 0x04000035, + 0x59a80013, 0x80000540, 0x04020009, 0x5930100a, + 0x58080212, 0x82000500, 0x0000ff00, 0x04000004, + 0x82040500, 0x00000800, 0x0400002a, 0x59cc0c09, + 0x80040840, 0x04001024, 0x59a80a1b, 0x8c040d06, + 0x04000004, 0x59cc0c0f, 0x8c040d1e, 0x04020012, + 0x59cc0a17, 0x800409c0, 0x04020012, 0x59cc0a18, + 0x82040480, 0x00000100, 0x04001014, 0x59cc0c18, + 0x800409c0, 0x0402000e, 0x59cc0c19, 0x80040840, + 0x04001011, 0x59cc0c1a, 0x80040840, 0x04001011, + 0x0401f018, 0x4a02621b, 0x00000100, 0x0401f012, + 0x4a02621b, 0x00000300, 0x0401f00f, 0x4a02621b, + 0x00000500, 0x0401f00c, 0x4a02621b, 0x00000700, + 0x0401f009, 0x4a02621b, 0x00000900, 0x0401f006, + 0x4a02621b, 0x00000f00, 0x0401f003, 0x4a02621b, + 0x00002d00, 0x82000540, 0x00000001, 0x0401f002, + 0x80000580, 0x5c000800, 0x1c01f000, 0x59cc0407, + 0x4803c857, 0x82000580, 0x00000800, 0x04000003, + 0x4a02621b, 0x00000000, 0x1c01f000, 0x4933c857, + 0x4c580000, 0x59cc000c, 0x59340802, 0x82040d00, + 0x00ffffff, 0x80040580, 0x04020012, 0x83cc1400, + 0x00000008, 0x4200b000, 0x00000002, 0x83341c00, + 0x00000006, 0x0201f800, 0x00107df9, 0x04020009, + 0x83cc1400, 0x0000000a, 0x4200b000, 0x00000002, + 0x83341c00, 0x00000008, 0x0201f800, 0x00107df9, + 0x5c00b000, 0x1c01f000, 0x4933c857, 0x4c580000, + 0x83cc1400, 0x0000000b, 0x4200b000, 0x00000002, + 0x83341c00, 0x00000006, 0x0201f800, 0x00107df9, + 0x0402000c, 0x83cc1400, 0x0000000d, 0x4200b000, 0x00000002, 0x83341c00, 0x00000008, 0x0201f800, - 0x00107d52, 0x5c00b000, 0x1c01f000, 0x4933c857, - 0x4c580000, 0x83cc1400, 0x0000000b, 0x4200b000, - 0x00000002, 0x83341c00, 0x00000006, 0x0201f800, - 0x00107d52, 0x0402000c, 0x83cc1400, 0x0000000d, - 0x4200b000, 0x00000002, 0x83341c00, 0x00000008, - 0x0201f800, 0x00107d52, 0x04000014, 0x4933c856, - 0x4933c856, 0x4933c857, 0x59340009, 0x4803c857, - 0x5934000e, 0x4803c857, 0x59340008, 0x4803c857, - 0x5934000d, 0x4803c857, 0x59340007, 0x4803c857, - 0x5934000c, 0x4803c857, 0x59340006, 0x4803c857, - 0x5934000b, 0x4803c857, 0x5c00b000, 0x1c01f000, - 0x4933c857, 0x813261c0, 0x0400002d, 0x83300d80, - 0x0010f53c, 0x0400002a, 0x8d3e7d06, 0x04020028, - 0x59300c07, 0x82040580, 0x00000001, 0x0400000a, - 0x82040580, 0x00000002, 0x04020021, 0x5930021e, - 0x82000580, 0x00000001, 0x0402001d, 0x59300c17, - 0x0401f002, 0x59300c03, 0x82040580, 0x00000039, - 0x04000004, 0x82040580, 0x00000035, 0x04020014, - 0x4d300000, 0x4d1c0000, 0x5932601f, 0x4933c857, - 0x0201f800, 0x00108ce2, 0x02000800, 0x0010032d, - 0x591c001d, 0x497a381d, 0x591c0c15, 0x84040d02, - 0x48063c15, 0x5c023800, 0x5c026000, 0x81300580, - 0x02020800, 0x0010032d, 0x497a601f, 0x1c01f000, - 0x5c000000, 0x4c000000, 0x4803c857, 0x4d3c0000, - 0x42027800, 0x00000001, 0x0201f800, 0x00103d7f, - 0x5c027800, 0x4c580000, 0x4200b000, 0x00000002, - 0x83a81c00, 0x00000002, 0x83cc1400, 0x0000000b, - 0x0201f800, 0x00107d52, 0x5c00b000, 0x80000540, - 0x1c01f000, 0x492fc857, 0x4943c857, 0x59a8000c, - 0x812c0480, 0x04001011, 0x59a8000a, 0x812c0480, - 0x0402100e, 0x592c0000, 0x80005d40, 0x04000008, - 0x497a5800, 0x49425a07, 0x4c2c0000, 0x0201f800, - 0x000203ab, 0x5c025800, 0x0401f7f7, 0x49425a07, - 0x0201f000, 0x000203ab, 0x1c01f000, 0x42002000, - 0x0000ffff, 0x5930100a, 0x800811c0, 0x04000002, - 0x58082403, 0x41301000, 0x0401f009, 0x40682800, - 0x406c3000, 0x41781000, 0x41442000, 0x0401f004, - 0x41781000, 0x42002000, 0x0000ffff, 0x5c000000, - 0x4c000000, 0x4803c857, 0x480bc857, 0x4813c857, - 0x492fc857, 0x4943c857, 0x4d2c0000, 0x4c040000, - 0x4c080000, 0x4c0c0000, 0x4c100000, 0x4c140000, - 0x4c180000, 0x4c1c0000, 0x4c200000, 0x0201f800, - 0x0010056f, 0x02000800, 0x0010032d, 0x5c004000, - 0x5c003800, 0x5c003000, 0x5c002800, 0x5c002000, - 0x5c001800, 0x5c001000, 0x5c000800, 0x4a025805, - 0x0000010d, 0x800811c0, 0x04000017, 0x83400580, - 0x00000029, 0x04020010, 0x82180580, 0x00000002, - 0x0400000a, 0x82180580, 0x00000003, 0x04000007, - 0x82180580, 0x00000008, 0x04000004, 0x82180580, - 0x00000009, 0x04020004, 0x4a02580a, 0xffffffff, - 0x0401f002, 0x480a580a, 0x58080202, 0x48025c14, - 0x0401f005, 0x4a02580a, 0xffffffff, 0x4a025c14, - 0x0000ffff, 0x83400580, 0x00000046, 0x04000002, - 0x41782800, 0x480e580d, 0x4806580e, 0x4822580f, - 0x481e5810, 0x48165a08, 0x481a5c09, 0x49425a09, - 0x48125a07, 0x82100580, 0x0000ffff, 0x0400000e, - 0x4d440000, 0x4d340000, 0x40128800, 0x0201f800, - 0x00020319, 0x02020800, 0x0010032d, 0x59340002, - 0x82000500, 0x00ffffff, 0x48025813, 0x5c026800, - 0x5c028800, 0x497a5800, 0x497a5c05, 0x0201f800, - 0x0010a3e5, 0x5c025800, 0x1c01f000, 0x5c000000, - 0x4c000000, 0x4803c857, 0x480bc857, 0x480fc857, - 0x4813c857, 0x4817c857, 0x4d2c0000, 0x4c080000, - 0x4c0c0000, 0x4c100000, 0x4c140000, 0x0201f800, + 0x00107df9, 0x04000014, 0x4933c856, 0x4933c856, + 0x4933c857, 0x59340009, 0x4803c857, 0x5934000e, + 0x4803c857, 0x59340008, 0x4803c857, 0x5934000d, + 0x4803c857, 0x59340007, 0x4803c857, 0x5934000c, + 0x4803c857, 0x59340006, 0x4803c857, 0x5934000b, + 0x4803c857, 0x5c00b000, 0x1c01f000, 0x4933c857, + 0x813261c0, 0x0400002d, 0x83300d80, 0x0010f64c, + 0x0400002a, 0x8d3e7d06, 0x04020028, 0x59300c07, + 0x82040580, 0x00000001, 0x0400000a, 0x82040580, + 0x00000002, 0x04020021, 0x5930021e, 0x82000580, + 0x00000001, 0x0402001d, 0x59300c17, 0x0401f002, + 0x59300c03, 0x82040580, 0x00000039, 0x04000004, + 0x82040580, 0x00000035, 0x04020014, 0x4d300000, + 0x4d1c0000, 0x5932601f, 0x4933c857, 0x0201f800, + 0x00108d9b, 0x02000800, 0x0010032d, 0x591c001d, + 0x497a381d, 0x591c0c15, 0x84040d02, 0x48063c15, + 0x5c023800, 0x5c026000, 0x81300580, 0x02020800, + 0x0010032d, 0x497a601f, 0x1c01f000, 0x5c000000, + 0x4c000000, 0x4803c857, 0x4d3c0000, 0x42027800, + 0x00000001, 0x0201f800, 0x00103d92, 0x5c027800, + 0x4c580000, 0x4200b000, 0x00000002, 0x83a81c00, + 0x00000002, 0x83cc1400, 0x0000000b, 0x0201f800, + 0x00107df9, 0x5c00b000, 0x80000540, 0x1c01f000, + 0x492fc857, 0x4943c857, 0x59a8000c, 0x812c0480, + 0x04001011, 0x59a8000a, 0x812c0480, 0x0402100e, + 0x592c0000, 0x80005d40, 0x04000008, 0x497a5800, + 0x49425a07, 0x4c2c0000, 0x0201f800, 0x000203ab, + 0x5c025800, 0x0401f7f7, 0x49425a07, 0x0201f000, + 0x000203ab, 0x1c01f000, 0x42002000, 0x0000ffff, + 0x5930100a, 0x800811c0, 0x04000002, 0x58082403, + 0x41301000, 0x0401f009, 0x40682800, 0x406c3000, + 0x41781000, 0x41442000, 0x0401f004, 0x41781000, + 0x42002000, 0x0000ffff, 0x5c000000, 0x4c000000, + 0x4803c857, 0x480bc857, 0x4813c857, 0x492fc857, + 0x4943c857, 0x4d2c0000, 0x4c040000, 0x4c080000, + 0x4c0c0000, 0x4c100000, 0x4c140000, 0x4c180000, + 0x4c1c0000, 0x4c200000, 0x0201f800, 0x0010056f, + 0x02000800, 0x0010032d, 0x5c004000, 0x5c003800, + 0x5c003000, 0x5c002800, 0x5c002000, 0x5c001800, + 0x5c001000, 0x5c000800, 0x4a025805, 0x0000010d, + 0x800811c0, 0x0400001f, 0x83400580, 0x00000029, + 0x04020018, 0x82180580, 0x00000002, 0x0400000d, + 0x82180580, 0x00000003, 0x0400000a, 0x82180580, + 0x00000008, 0x04000007, 0x82180580, 0x00000006, + 0x04000007, 0x82180580, 0x00000009, 0x04020009, + 0x4a02580a, 0xffffffff, 0x0401f007, 0x5808280a, + 0x58140002, 0x82000500, 0x00ffffff, 0x48025813, + 0x480a580a, 0x58080202, 0x48025c14, 0x0401f005, + 0x4a02580a, 0xffffffff, 0x4a025c14, 0x0000ffff, + 0x83400580, 0x00000046, 0x04000002, 0x41782800, + 0x480e580d, 0x4806580e, 0x4822580f, 0x481e5810, + 0x48165a08, 0x481a5c09, 0x49425a09, 0x48125a07, + 0x82100580, 0x0000ffff, 0x0400000e, 0x4d440000, + 0x4d340000, 0x40128800, 0x0201f800, 0x00020319, + 0x02020800, 0x0010032d, 0x59340002, 0x82000500, + 0x00ffffff, 0x48025813, 0x5c026800, 0x5c028800, + 0x497a5800, 0x497a5c05, 0x0201f800, 0x0010a4d8, + 0x5c025800, 0x1c01f000, 0x5c000000, 0x4c000000, + 0x4803c857, 0x480bc857, 0x480fc857, 0x4813c857, + 0x4817c857, 0x4d2c0000, 0x4c080000, 0x4c0c0000, + 0x4c100000, 0x4c140000, 0x0201f800, 0x0010056f, + 0x02000800, 0x0010032d, 0x5c002800, 0x5c002000, + 0x5c001800, 0x5c001000, 0x04011000, 0x832c0400, + 0x00000005, 0x4803c840, 0x4a03c842, 0x00000010, + 0x40000000, 0x040117ff, 0x4a025805, 0x0000010d, + 0x4a025a09, 0x00000049, 0x480a5a0b, 0x480e5c0b, + 0x48125a0c, 0x48165c0c, 0x82080580, 0x00008014, + 0x04020064, 0x820c0580, 0x0000ffff, 0x04020061, + 0x82100580, 0x00000006, 0x0402005e, 0x59a8000f, + 0x0201f800, 0x00104755, 0x04000009, 0x82000d00, + 0x00ffff00, 0x04020006, 0x82000c00, 0x00101b0f, + 0x50040800, 0x80040910, 0x48065a0d, 0x82000d00, + 0x0000ffff, 0x48065c0d, 0x80000120, 0x48025a0e, + 0x59a8021b, 0x82001500, 0x00002100, 0x480a5a0f, + 0x8c000502, 0x0400001f, 0x8c000506, 0x04000009, + 0x82000d00, 0x0000000a, 0x82040d80, 0x0000000a, + 0x04020004, 0x4a025c0e, 0x00000001, 0x0401f022, + 0x8c00050a, 0x04000009, 0x82000d00, 0x00000022, + 0x82040d80, 0x00000022, 0x04020004, 0x4a025c0e, + 0x00000003, 0x0401f018, 0x8c000508, 0x04000009, + 0x82000d00, 0x00000012, 0x82040d80, 0x00000012, + 0x04020004, 0x4a025c0e, 0x00000002, 0x0401f00e, + 0x0201f800, 0x00104755, 0x04020004, 0x4a025c0e, + 0x00000004, 0x0401f008, 0x8c000506, 0x04000004, + 0x4a025c0e, 0x00000005, 0x0401f003, 0x4a025c0e, + 0x00000000, 0x59a8002a, 0x48025c0f, 0x59a8002b, + 0x48025a10, 0x59c40801, 0x82040d00, 0x00018000, + 0x82040580, 0x00000000, 0x04020004, 0x4a025c10, + 0x00000000, 0x0401f00f, 0x82040580, 0x00008000, + 0x04020004, 0x4a025c10, 0x00000001, 0x0401f009, + 0x82040580, 0x00010000, 0x04020004, 0x4a025c10, + 0x00000003, 0x0401f003, 0x4a025c10, 0x00000004, + 0x0401fbcc, 0x5c025800, 0x1c01f000, 0x0401f807, + 0x42018800, 0x00000001, 0x04000003, 0x42018800, + 0x00000000, 0x1c01f000, 0x5930080a, 0x800409c0, + 0x04000004, 0x58040403, 0x81440580, 0x1c01f000, + 0x82000540, 0x00000001, 0x0401f7fd, 0x4933c857, + 0x4c040000, 0x59300403, 0x82000d80, 0x0000001e, + 0x04020016, 0x800000d0, 0x59300a17, 0x82040d00, + 0x000000ff, 0x80040540, 0x4803c857, 0x48026417, + 0x4a026403, 0x00000085, 0x4a026203, 0x00000009, + 0x4a026407, 0x00000005, 0x4a02621e, 0x00000004, + 0x59a8002b, 0x48026006, 0x42000800, 0x8000004b, + 0x0201f800, 0x000209b1, 0x5c000800, 0x1c01f000, + 0x4933c857, 0x40000000, 0x40000000, 0x1c01f000, + 0x59300415, 0x4933c857, 0x4803c857, 0x8c000518, + 0x04000009, 0x8c000512, 0x02020000, 0x00108b7b, + 0x0401f922, 0x0201f800, 0x00020979, 0x0201f800, + 0x00020a10, 0x1c01f000, 0x591c0407, 0x4803c857, + 0x82000c80, 0x00000009, 0x0402100b, 0x0c01f001, + 0x0010a15d, 0x0010a15d, 0x0010a15d, 0x0010a15f, + 0x0010a15d, 0x0010a15f, 0x0010a15f, 0x0010a15d, + 0x0010a15f, 0x80000580, 0x1c01f000, 0x82000540, + 0x00000001, 0x1c01f000, 0x591c0407, 0x82000500, + 0x0000001f, 0x82000580, 0x00000006, 0x0400000e, + 0x4803c857, 0x4a026403, 0x0000003b, 0x4a02641b, + 0x00000009, 0x4a02621b, 0x00002a00, 0x4a026203, + 0x00000001, 0x42000800, 0x80000040, 0x0201f000, + 0x000209b1, 0x4803c856, 0x4c040000, 0x4c140000, + 0x4d300000, 0x411e6000, 0x0401f8f0, 0x497a6205, + 0x59300415, 0x4803c857, 0x82000500, 0xffffadff, + 0x48026415, 0x497a6405, 0x5c026000, 0x0201f800, 0x0010056f, 0x02000800, 0x0010032d, 0x5c002800, - 0x5c002000, 0x5c001800, 0x5c001000, 0x04011000, - 0x832c0400, 0x00000005, 0x4803c840, 0x4a03c842, - 0x00000010, 0x40000000, 0x040117ff, 0x4a025805, - 0x0000010d, 0x4a025a09, 0x00000049, 0x480a5a0b, - 0x480e5c0b, 0x48125a0c, 0x48165c0c, 0x82080580, - 0x00008014, 0x04020064, 0x820c0580, 0x0000ffff, - 0x04020061, 0x82100580, 0x00000006, 0x0402005e, - 0x59a8000f, 0x0201f800, 0x00104716, 0x04000009, - 0x82000d00, 0x00ffff00, 0x04020006, 0x82000c00, - 0x00101b0a, 0x50040800, 0x80040910, 0x48065a0d, - 0x82000d00, 0x0000ffff, 0x48065c0d, 0x80000120, - 0x48025a0e, 0x59a8021b, 0x82001500, 0x00002100, - 0x480a5a0f, 0x8c000502, 0x0400001f, 0x8c000506, - 0x04000009, 0x82000d00, 0x0000000a, 0x82040d80, - 0x0000000a, 0x04020004, 0x4a025c0e, 0x00000001, - 0x0401f022, 0x8c00050a, 0x04000009, 0x82000d00, - 0x00000022, 0x82040d80, 0x00000022, 0x04020004, - 0x4a025c0e, 0x00000003, 0x0401f018, 0x8c000508, - 0x04000009, 0x82000d00, 0x00000012, 0x82040d80, - 0x00000012, 0x04020004, 0x4a025c0e, 0x00000002, - 0x0401f00e, 0x0201f800, 0x00104716, 0x04020004, - 0x4a025c0e, 0x00000004, 0x0401f008, 0x8c000506, - 0x04000004, 0x4a025c0e, 0x00000005, 0x0401f003, - 0x4a025c0e, 0x00000000, 0x59a8002a, 0x48025c0f, - 0x59a8002b, 0x48025a10, 0x59c40801, 0x82040d00, - 0x00018000, 0x82040580, 0x00000000, 0x04020004, - 0x4a025c10, 0x00000000, 0x0401f00f, 0x82040580, - 0x00008000, 0x04020004, 0x4a025c10, 0x00000001, - 0x0401f009, 0x82040580, 0x00010000, 0x04020004, - 0x4a025c10, 0x00000003, 0x0401f003, 0x4a025c10, - 0x00000004, 0x0401fbb8, 0x5c025800, 0x1c01f000, - 0x0401f807, 0x42018800, 0x00000001, 0x04000003, - 0x42018800, 0x00000000, 0x1c01f000, 0x5930080a, - 0x800409c0, 0x04000004, 0x58040403, 0x81440580, - 0x1c01f000, 0x82000540, 0x00000001, 0x0401f7fd, - 0x4933c857, 0x4c040000, 0x59300403, 0x82000d80, - 0x0000001e, 0x04020016, 0x800000d0, 0x59300a17, - 0x82040d00, 0x000000ff, 0x80040540, 0x4803c857, - 0x48026417, 0x4a026403, 0x00000085, 0x4a026203, - 0x00000009, 0x4a026407, 0x00000005, 0x4a02621e, - 0x00000004, 0x59a8002b, 0x48026006, 0x42000800, - 0x8000004b, 0x0201f800, 0x000209b1, 0x5c000800, - 0x1c01f000, 0x4933c857, 0x40000000, 0x40000000, - 0x1c01f000, 0x59300415, 0x4933c857, 0x4803c857, - 0x8c000518, 0x04000009, 0x8c000512, 0x02020000, - 0x00108ac2, 0x0401f922, 0x0201f800, 0x00020979, - 0x0201f800, 0x00020a10, 0x1c01f000, 0x591c0407, - 0x4803c857, 0x82000c80, 0x00000009, 0x0402100b, - 0x0c01f001, 0x0010a07e, 0x0010a07e, 0x0010a07e, - 0x0010a080, 0x0010a07e, 0x0010a080, 0x0010a080, - 0x0010a07e, 0x0010a080, 0x80000580, 0x1c01f000, - 0x82000540, 0x00000001, 0x1c01f000, 0x591c0407, - 0x82000500, 0x0000001f, 0x82000580, 0x00000006, - 0x0400000e, 0x4803c857, 0x4a026403, 0x0000003b, - 0x4a02641b, 0x00000009, 0x4a02621b, 0x00002a00, - 0x4a026203, 0x00000001, 0x42000800, 0x80000040, - 0x0201f000, 0x000209b1, 0x4803c856, 0x4c040000, - 0x4c140000, 0x4d300000, 0x411e6000, 0x0401f8f0, - 0x497a6205, 0x59300415, 0x4803c857, 0x82000500, - 0xffffadff, 0x48026415, 0x497a6405, 0x5c026000, - 0x0201f800, 0x0010056f, 0x02000800, 0x0010032d, - 0x5c002800, 0x5c000800, 0x4a025805, 0x0000010d, - 0x497a5800, 0x497a5c05, 0x4a025a09, 0x00000045, - 0x491e580a, 0x59300402, 0x48025c08, 0x5930041a, - 0x48025c0c, 0x591c0415, 0x84000556, 0x48023c15, - 0x591c180a, 0x580c0403, 0x48025a07, 0x580c0002, - 0x82000500, 0x00ffffff, 0x48025813, 0x59cc0404, - 0x48025c14, 0x497a5a08, 0x4816580b, 0x48065a0c, - 0x0401fb21, 0x493a6403, 0x4d400000, 0x42028000, - 0x00000045, 0x591c0202, 0x4c000000, 0x4d300000, - 0x411e6000, 0x0401fca6, 0x5c026000, 0x5c000000, - 0x48023a02, 0x5c028000, 0x491e601f, 0x4932381d, - 0x4a023c07, 0x00000006, 0x4a023a03, 0x00000007, - 0x497a3806, 0x497a3a05, 0x1c01f000, 0x4933c857, - 0x83380580, 0x00000013, 0x0402000b, 0x59300403, - 0x4803c857, 0x82000d80, 0x00000085, 0x0400002b, - 0x82000d80, 0x0000008b, 0x04000028, 0x0201f800, - 0x0010032d, 0x83380580, 0x00000027, 0x0402000c, - 0x0201f800, 0x0010605d, 0x4d2c0000, 0x4d400000, - 0x59325809, 0x42028000, 0x00000004, 0x0401fe2e, - 0x5c028000, 0x5c025800, 0x1c01f000, 0x83380580, - 0x00000014, 0x040007f3, 0x83380580, 0x00000089, - 0x04000005, 0x83380580, 0x0000008a, 0x02020000, - 0x00107134, 0x0201f800, 0x0010644d, 0x02020000, - 0x00107134, 0x59300a03, 0x82040580, 0x0000000a, - 0x04000009, 0x82040580, 0x0000000c, 0x04000006, - 0x0201f800, 0x0010032d, 0x4a026203, 0x0000000a, - 0x1c01f000, 0x83380480, 0x00000093, 0x0402100c, - 0x83380480, 0x00000085, 0x04001009, 0x83380580, - 0x00000089, 0x0400000a, 0x83380580, 0x0000008a, - 0x04000022, 0x0201f800, 0x0010032d, 0x493bc857, - 0x4933c857, 0x0201f000, 0x00107134, 0x4933c857, - 0x4c340000, 0x41306800, 0x0201f800, 0x001070f5, - 0x04000011, 0x4a026203, 0x00000001, 0x4a026403, - 0x0000001e, 0x59cc0c07, 0x4806641a, 0x59cc0a07, - 0x4806621a, 0x5834080a, 0x4806600a, 0x4a026407, - 0x00000004, 0x42000800, 0x80000040, 0x0201f800, - 0x000209b1, 0x40366000, 0x0201f800, 0x00020a10, - 0x5c006800, 0x1c01f000, 0x4933c857, 0x0201f000, - 0x00020a10, 0x5930080a, 0x58040200, 0x8c00051a, - 0x02020800, 0x001003f4, 0x1c01f000, 0x0201f800, - 0x001040b0, 0x0400001e, 0x4a026203, 0x00000002, - 0x59300415, 0x84000558, 0x48026415, 0x8c000512, - 0x04000004, 0x59a8002c, 0x48026205, 0x0401f007, - 0x59a8082c, 0x59a8002a, 0x80040400, 0x82000400, - 0x0000001e, 0x48026205, 0x5930000a, 0x82000c00, - 0x00000011, 0x50040000, 0x80000540, 0x04000004, - 0x82000c00, 0x00000000, 0x0401f7fb, 0x45300800, - 0x497a6000, 0x82000540, 0x00000001, 0x1c01f000, - 0x82100500, 0xfffffeef, 0x0402001c, 0x4d2c0000, - 0x4937c857, 0x59340811, 0x83341400, 0x00000011, - 0x800409c0, 0x0400000e, 0x40040000, 0x81300580, - 0x04000005, 0x82041400, 0x00000000, 0x58040800, - 0x0401f7f8, 0x59300800, 0x497a6000, 0x44041000, - 0x0201f800, 0x00020979, 0x0401f002, 0x4933c857, - 0x5c025800, 0x492e6009, 0x0201f800, 0x00020979, - 0x0201f000, 0x00020a10, 0x492fc857, 0x4a025a07, - 0x00000006, 0x0201f000, 0x000203ab, 0x4c340000, - 0x5930000a, 0x800001c0, 0x04000011, 0x82006c00, - 0x00000011, 0x50340000, 0x80000540, 0x0400000a, - 0x81300580, 0x04000005, 0x50340000, 0x82006c00, - 0x00000000, 0x0401f7f8, 0x59300000, 0x44006800, - 0x497a6000, 0x5c006800, 0x1c01f000, 0x59300c07, - 0x82040580, 0x00000005, 0x040007fb, 0x82040580, - 0x00000011, 0x040007f8, 0x82040580, 0x00000006, - 0x040007f5, 0x82040580, 0x00000001, 0x040007f2, - 0x0201f800, 0x0010032d, 0x4933c857, 0x4c080000, - 0x4c0c0000, 0x4c580000, 0x59a81018, 0x59cc1807, - 0x820c1d00, 0x00ffffff, 0x800c0110, 0x80083580, - 0x04020014, 0x83cc1400, 0x00000008, 0x4200b000, - 0x00000002, 0x5930000a, 0x82001c00, 0x00000006, - 0x0201f800, 0x00107d52, 0x0402000a, 0x83cc1400, - 0x0000000a, 0x4200b000, 0x00000002, 0x5930000a, - 0x82001c00, 0x00000008, 0x0201f800, 0x00107d52, - 0x5c00b000, 0x5c001800, 0x5c001000, 0x1c01f000, - 0x4933c856, 0x493a6403, 0x0201f800, 0x00103a06, - 0x0201f000, 0x0010e14a, 0x493bc857, 0x4d2c0000, - 0x0201f800, 0x0010056f, 0x02000800, 0x0010032d, - 0x832cac00, 0x00000006, 0x4c580000, 0x4c540000, - 0x4200b000, 0x00000006, 0x4578a800, 0x8054a800, - 0x8058b040, 0x040207fd, 0x83380580, 0x00000046, - 0x04020004, 0x4a025805, 0x00000144, 0x0401f008, - 0x4a025805, 0x00000146, 0x83380580, 0x00000041, - 0x04000003, 0x4a025a07, 0x00000001, 0x59cc0007, - 0x82000500, 0xff000000, 0x80000110, 0x59cc1008, - 0x82081500, 0xff000000, 0x80081540, 0x480a580b, - 0x83380580, 0x00000046, 0x04020006, 0x59cc0007, - 0x82000500, 0x00ffffff, 0x4802580c, 0x0401f005, - 0x59cc0008, 0x82000500, 0x00ffffff, 0x4802580c, - 0x83380580, 0x00000046, 0x04020004, 0x83cc1400, - 0x00000009, 0x0401f003, 0x83cc1400, 0x0000000d, - 0x50080000, 0x9c0001c0, 0x4802580d, 0x80081000, - 0x50080000, 0x9c0001c0, 0x4802580e, 0x83380580, - 0x00000046, 0x04020008, 0x59cc000b, 0x9c0001c0, - 0x4802580f, 0x59cc000c, 0x9c0001c0, 0x48025810, - 0x0401f007, 0x59cc000f, 0x9c0001c0, 0x4802580f, - 0x59cc0010, 0x9c0001c0, 0x48025810, 0x83380580, - 0x00000046, 0x04020004, 0x83cc1400, 0x00000011, - 0x0401f003, 0x83cc1400, 0x00000015, 0x412c3000, - 0x82183400, 0x00000011, 0x4200b000, 0x00000004, - 0x50080000, 0x9c0001c0, 0x44003000, 0x80081000, - 0x80183000, 0x8058b040, 0x040207fa, 0x5c00a800, - 0x5c00b000, 0x0201f800, 0x000203ab, 0x5c025800, - 0x1c01f000, 0x4933c857, 0x492fc857, 0x5930080a, - 0x58040200, 0x8c00051e, 0x04000004, 0x592c0209, - 0x84000558, 0x48025a09, 0x1c01f000, 0x59e0180f, - 0x599c0413, 0x800c1000, 0x80080580, 0x04020002, - 0x41781000, 0x59e00010, 0x59e00810, 0x80040d80, - 0x040207fd, 0x80080580, 0x0400000b, 0x4c080000, - 0x599c0814, 0x599c1015, 0x800c00cc, 0x80040c00, - 0x82081440, 0x00000000, 0x5c001800, 0x82000540, - 0x00000001, 0x4803c857, 0x1c01f000, 0x59300203, - 0x4933c857, 0x4937c857, 0x493bc857, 0x4803c857, - 0x82003480, 0x0000000e, 0x02021800, 0x0010032d, - 0x0c01f001, 0x0010a27b, 0x0010a392, 0x0010a27b, - 0x0010a27b, 0x0010a27b, 0x0010a27b, 0x0010a27b, - 0x0010a2f5, 0x0010a27d, 0x0010a27b, 0x0010a27b, - 0x0010a27b, 0x0010a27b, 0x0010a27b, 0x0201f800, - 0x0010032d, 0x83380580, 0x0000004c, 0x02020800, - 0x0010032d, 0x0201f800, 0x001040cb, 0x04020021, - 0x59a80a1b, 0x82040500, 0x00000009, 0x82000580, - 0x00000008, 0x0400001b, 0x8c040d12, 0x04000032, - 0x59cc0806, 0x82040d00, 0xff000000, 0x82040580, - 0x03000000, 0x04000020, 0x82040580, 0x50000000, - 0x04000005, 0x82040580, 0x52000000, 0x02020000, - 0x00020a10, 0x813669c0, 0x04000007, 0x497a601f, - 0x4d3c0000, 0x417a7800, 0x0201f800, 0x0010df61, - 0x5c027800, 0x4a026403, 0x00000001, 0x0401f014, - 0x59cc0806, 0x82040d00, 0xff000000, 0x82040580, - 0x03000000, 0x04000008, 0x82040580, 0x50000000, - 0x04000005, 0x82040580, 0x52000000, 0x02020000, - 0x00020a10, 0x4a026403, 0x00000009, 0x4a02641b, - 0x00000009, 0x4a02621b, 0x00000000, 0x4a026407, - 0x00000004, 0x4a026203, 0x00000001, 0x0201f000, - 0x00105fe8, 0x8d0e1d20, 0x04000020, 0x59cc0806, - 0x4807c857, 0x82040d00, 0xff000000, 0x82040580, - 0x03000000, 0x04000013, 0x82040580, 0x20000000, - 0x04000010, 0x82040580, 0x21000000, 0x0400000d, - 0x82040580, 0x24000000, 0x0400000a, 0x82040580, - 0x50000000, 0x04000007, 0x82040580, 0x52000000, - 0x04000004, 0x82040580, 0x05000000, 0x0402000a, - 0x9c0431c0, 0x42028000, 0x00000046, 0x42002800, - 0x00000001, 0x0401fc5a, 0x0401f913, 0x02000800, - 0x0010032d, 0x42002000, 0x00000051, 0x0201f800, - 0x0010720a, 0x59cc0000, 0x82000500, 0x00ffffff, - 0x82000580, 0x00ffffff, 0x04000005, 0x4a026203, - 0x00000007, 0x493a6403, 0x1c01f000, 0x59325818, - 0x812e59c0, 0x02020800, 0x00100589, 0x0201f000, - 0x00020a10, 0x4d2c0000, 0x4c580000, 0x4c500000, - 0x4c540000, 0x41385000, 0x83380580, 0x00000054, - 0x02020800, 0x0010032d, 0x59325809, 0x592c0c0c, - 0x82040d00, 0x0000e000, 0x82040580, 0x00002000, - 0x04020078, 0x59300818, 0x800409c0, 0x04000016, - 0x58041405, 0x41cca800, 0x8204a400, 0x00000006, - 0x82080480, 0x00000010, 0x04021005, 0x4008b000, - 0x0201f800, 0x0010adef, 0x0401f00b, 0x40001000, - 0x4200b000, 0x0000000f, 0x0201f800, 0x0010adef, - 0x58040801, 0x800409c0, 0x040207f0, 0x0201f800, - 0x0010032d, 0x813669c0, 0x0400005e, 0x59344c00, - 0x592c0c0a, 0x4807c857, 0x4827c857, 0x82040d00, - 0x000000ff, 0x82040580, 0x00000003, 0x0400002a, - 0x82040580, 0x00000005, 0x04000032, 0x82040580, - 0x00000020, 0x04000036, 0x82040580, 0x00000052, - 0x04000042, 0x82040580, 0x00000050, 0x04000042, - 0x82040580, 0x00000021, 0x04000004, 0x82040580, - 0x00000024, 0x04020043, 0x82240500, 0x0000ff00, - 0x82000580, 0x00000700, 0x04000008, 0x42000800, - 0x00000009, 0x0201f800, 0x00103d8a, 0x42005000, - 0x0000000c, 0x0401f037, 0x4a025a07, 0x00000031, - 0x4a02580e, 0x00000009, 0x59340400, 0x4802580f, - 0x0201f800, 0x000203ab, 0x0201f800, 0x001070b5, - 0x0401f03d, 0x0201f800, 0x00103aa1, 0x0201f800, - 0x00103e68, 0x42000800, 0x00000003, 0x0201f800, - 0x00103d8a, 0x42005000, 0x00000008, 0x0401f021, - 0x59cc0007, 0x0201f800, 0x001056f0, 0x0402001d, - 0x0201f800, 0x00103aa1, 0x0401f01a, 0x82240500, - 0x0000ff00, 0x82000580, 0x00000700, 0x040007df, - 0x82240500, 0x000000ff, 0x82000580, 0x00000009, - 0x040007da, 0x0201f800, 0x00103ecf, 0x42005000, - 0x0000000a, 0x0401f00b, 0x42005000, 0x0000000e, - 0x0401f003, 0x42005000, 0x00000010, 0x82240500, - 0x0000ff00, 0x82000580, 0x00000700, 0x040007cb, - 0x482a6403, 0x4a026203, 0x00000001, 0x592c000e, - 0x48026012, 0x497a6014, 0x59a8002b, 0x48026006, - 0x417a7800, 0x0201f800, 0x00105fe8, 0x59325818, - 0x812e59c0, 0x04000004, 0x0201f800, 0x00100589, - 0x497a6018, 0x5c00a800, 0x5c00a000, 0x5c00b000, - 0x5c025800, 0x1c01f000, 0x4d2c0000, 0x59325809, - 0x83380580, 0x00000013, 0x0402002a, 0x492fc857, - 0x59300c03, 0x82040580, 0x00000054, 0x0400001e, - 0x82040580, 0x00000010, 0x04000018, 0x82040580, - 0x0000000e, 0x04000015, 0x82040580, 0x00000008, - 0x0400000d, 0x82040580, 0x0000000c, 0x0400000a, - 0x82040580, 0x0000000a, 0x02020800, 0x0010032d, - 0x42000800, 0x00000006, 0x0201f800, 0x00103d8a, - 0x0401f009, 0x42000800, 0x00000004, 0x0201f800, - 0x00103d8a, 0x0401f004, 0x59340200, 0x8400051a, - 0x48026a00, 0x4a025a07, 0x00000000, 0x0201f800, - 0x000203ab, 0x0201f800, 0x00020a10, 0x0401f024, - 0x83380580, 0x00000027, 0x0400000f, 0x83380580, - 0x00000014, 0x02020800, 0x0010032d, 0x492fc857, - 0x0201f800, 0x0010605d, 0x42028000, 0x00000031, - 0x42000800, 0x00000004, 0x42001000, 0x000000ff, - 0x0401f00a, 0x492fc857, 0x0201f800, 0x0010605d, - 0x42028000, 0x00000031, 0x42000800, 0x00000004, - 0x42001000, 0x00000010, 0x49425a07, 0x4806580e, - 0x480a580f, 0x0201f800, 0x000203ab, 0x0201f800, - 0x001043c3, 0x0201f800, 0x001070b5, 0x5c025800, - 0x1c01f000, 0x492fc857, 0x42007000, 0x00020b54, - 0x58380806, 0x492c7006, 0x800409c0, 0x04020004, - 0x492c7007, 0x0201f000, 0x00020026, 0x492c0800, - 0x1c01f000, 0x4d2c0000, 0x4c580000, 0x4c500000, - 0x4c540000, 0x4933c857, 0x4937c857, 0x59cc0806, - 0x4807c857, 0x82040d00, 0xff000000, 0x82040580, - 0x03000000, 0x0400000d, 0x82040580, 0x05000000, - 0x0400000a, 0x82040580, 0x21000000, 0x04000032, - 0x82040580, 0x24000000, 0x0400002f, 0x82040580, - 0x20000000, 0x04020031, 0x0201f800, 0x0010056f, - 0x0400002e, 0x492fc857, 0x492e6018, 0x59a8b05a, - 0x8258b400, 0x0000001b, 0x8258b500, 0xfffffffc, - 0x8058b104, 0x485a5c05, 0x412c7800, 0x41cca000, - 0x82580480, 0x00000010, 0x04021006, 0x832cac00, - 0x00000006, 0x0201f800, 0x0010adef, 0x0401f016, - 0x40580800, 0x4200b000, 0x0000000f, 0x832cac00, - 0x00000006, 0x0201f800, 0x0010adef, 0x8204b480, - 0x0000000f, 0x0201f800, 0x0010056f, 0x04000004, - 0x492c7801, 0x412c7800, 0x0401f7ea, 0x59325818, - 0x0201f800, 0x00100589, 0x497a6018, 0x80000580, - 0x0401f006, 0x59340200, 0x84000554, 0x48026a00, - 0x82000540, 0x00000001, 0x5c00a800, 0x5c00a000, - 0x5c00b000, 0x5c025800, 0x1c01f000, 0x4933c857, - 0x492fc857, 0x4d2c0000, 0x59300a03, 0x82040580, - 0x00000007, 0x04000037, 0x82040580, 0x00000001, - 0x02020800, 0x0010032d, 0x0201f800, 0x0010610d, - 0x4df00000, 0x598c000f, 0x81300580, 0x04020016, + 0x5c000800, 0x4a025805, 0x0000010d, 0x497a5800, + 0x497a5c05, 0x4a025a09, 0x00000045, 0x491e580a, + 0x59300402, 0x48025c08, 0x5930041a, 0x48025c0c, + 0x591c0415, 0x84000556, 0x48023c15, 0x591c180a, + 0x580c0403, 0x48025a07, 0x580c0002, 0x82000500, + 0x00ffffff, 0x48025813, 0x59cc0404, 0x48025c14, + 0x497a5a08, 0x4816580b, 0x48065a0c, 0x0401fb35, + 0x493a6403, 0x4d400000, 0x42028000, 0x00000045, + 0x591c0202, 0x4c000000, 0x4d300000, 0x411e6000, + 0x0401fc9e, 0x5c026000, 0x5c000000, 0x48023a02, + 0x5c028000, 0x491e601f, 0x4932381d, 0x4a023c07, + 0x00000006, 0x4a023a03, 0x00000007, 0x497a3806, + 0x497a3a05, 0x1c01f000, 0x4933c857, 0x83380580, + 0x00000013, 0x0402000b, 0x59300403, 0x4803c857, + 0x82000d80, 0x00000085, 0x0400002b, 0x82000d80, + 0x0000008b, 0x04000028, 0x0201f800, 0x0010032d, + 0x83380580, 0x00000027, 0x0402000c, 0x0201f800, + 0x00106102, 0x4d2c0000, 0x4d400000, 0x59325809, + 0x42028000, 0x00000004, 0x0401fe26, 0x5c028000, + 0x5c025800, 0x1c01f000, 0x83380580, 0x00000014, + 0x040007f3, 0x83380580, 0x00000089, 0x04000005, + 0x83380580, 0x0000008a, 0x02020000, 0x001071c7, + 0x0201f800, 0x001064f2, 0x02020000, 0x001071c7, + 0x59300a03, 0x82040580, 0x0000000a, 0x04000009, + 0x82040580, 0x0000000c, 0x04000006, 0x0201f800, + 0x0010032d, 0x4a026203, 0x0000000a, 0x1c01f000, + 0x83380480, 0x00000093, 0x0402100c, 0x83380480, + 0x00000085, 0x04001009, 0x83380580, 0x00000089, + 0x0400000a, 0x83380580, 0x0000008a, 0x04000022, + 0x0201f800, 0x0010032d, 0x493bc857, 0x4933c857, + 0x0201f000, 0x001071c7, 0x4933c857, 0x4c340000, + 0x41306800, 0x0201f800, 0x00107188, 0x04000011, + 0x4a026203, 0x00000001, 0x4a026403, 0x0000001e, + 0x59cc0c07, 0x4806641a, 0x59cc0a07, 0x4806621a, + 0x5834080a, 0x4806600a, 0x4a026407, 0x00000004, + 0x42000800, 0x80000040, 0x0201f800, 0x000209b1, + 0x40366000, 0x0201f800, 0x00020a10, 0x5c006800, + 0x1c01f000, 0x4933c857, 0x0201f000, 0x00020a10, + 0x5930080a, 0x58040200, 0x8c00051a, 0x02020800, + 0x001003f4, 0x1c01f000, 0x0201f800, 0x001040ca, + 0x0400001e, 0x4a026203, 0x00000002, 0x59300415, + 0x84000558, 0x48026415, 0x8c000512, 0x04000004, + 0x59a8002c, 0x48026205, 0x0401f007, 0x59a8082c, + 0x59a8002a, 0x80040400, 0x82000400, 0x0000001e, + 0x48026205, 0x5930000a, 0x82000c00, 0x00000011, + 0x50040000, 0x80000540, 0x04000004, 0x82000c00, + 0x00000000, 0x0401f7fb, 0x45300800, 0x497a6000, + 0x82000540, 0x00000001, 0x1c01f000, 0x82100500, + 0xfffffeef, 0x0402001c, 0x4d2c0000, 0x4937c857, + 0x59340811, 0x83341400, 0x00000011, 0x800409c0, + 0x0400000e, 0x40040000, 0x81300580, 0x04000005, + 0x82041400, 0x00000000, 0x58040800, 0x0401f7f8, + 0x59300800, 0x497a6000, 0x44041000, 0x0201f800, + 0x00020979, 0x0401f002, 0x4933c857, 0x5c025800, + 0x492e6009, 0x0201f800, 0x00020979, 0x0201f000, + 0x00020a10, 0x492fc857, 0x4a025a07, 0x00000006, + 0x0201f000, 0x000203ab, 0x4c340000, 0x5930000a, + 0x800001c0, 0x04000011, 0x82006c00, 0x00000011, + 0x50340000, 0x80000540, 0x0400000a, 0x81300580, + 0x04000005, 0x50340000, 0x82006c00, 0x00000000, + 0x0401f7f8, 0x59300000, 0x44006800, 0x497a6000, + 0x5c006800, 0x1c01f000, 0x59300c07, 0x82040580, + 0x00000005, 0x040007fb, 0x82040580, 0x00000011, + 0x040007f8, 0x82040580, 0x00000006, 0x040007f5, + 0x82040580, 0x00000001, 0x040007f2, 0x0201f800, + 0x0010032d, 0x4933c857, 0x4c080000, 0x4c0c0000, + 0x4c580000, 0x59a81018, 0x59cc1807, 0x820c1d00, + 0x00ffffff, 0x800c0110, 0x80083580, 0x04020014, + 0x83cc1400, 0x00000008, 0x4200b000, 0x00000002, + 0x5930000a, 0x82001c00, 0x00000006, 0x0201f800, + 0x00107df9, 0x0402000a, 0x83cc1400, 0x0000000a, + 0x4200b000, 0x00000002, 0x5930000a, 0x82001c00, + 0x00000008, 0x0201f800, 0x00107df9, 0x5c00b000, + 0x5c001800, 0x5c001000, 0x1c01f000, 0x4933c856, + 0x493a6403, 0x0201f800, 0x00103a19, 0x0201f000, + 0x0010e25a, 0x493bc857, 0x4d2c0000, 0x0201f800, + 0x0010056f, 0x02000800, 0x0010032d, 0x832cac00, + 0x00000006, 0x4c580000, 0x4c540000, 0x4200b000, + 0x00000006, 0x4578a800, 0x8054a800, 0x8058b040, + 0x040207fd, 0x83380580, 0x00000046, 0x04020004, + 0x4a025805, 0x00000144, 0x0401f008, 0x4a025805, + 0x00000146, 0x83380580, 0x00000041, 0x04000003, + 0x4a025a07, 0x00000001, 0x59cc0007, 0x82000500, + 0xff000000, 0x80000110, 0x59cc1008, 0x82081500, + 0xff000000, 0x80081540, 0x480a580b, 0x83380580, + 0x00000046, 0x04020006, 0x59cc0007, 0x82000500, + 0x00ffffff, 0x4802580c, 0x0401f005, 0x59cc0008, + 0x82000500, 0x00ffffff, 0x4802580c, 0x83380580, + 0x00000046, 0x04020004, 0x83cc1400, 0x00000009, + 0x0401f003, 0x83cc1400, 0x0000000d, 0x50080000, + 0x9c0001c0, 0x4802580d, 0x80081000, 0x50080000, + 0x9c0001c0, 0x4802580e, 0x83380580, 0x00000046, + 0x04020008, 0x59cc000b, 0x9c0001c0, 0x4802580f, + 0x59cc000c, 0x9c0001c0, 0x48025810, 0x0401f007, + 0x59cc000f, 0x9c0001c0, 0x4802580f, 0x59cc0010, + 0x9c0001c0, 0x48025810, 0x83380580, 0x00000046, + 0x04020004, 0x83cc1400, 0x00000011, 0x0401f003, + 0x83cc1400, 0x00000015, 0x412c3000, 0x82183400, + 0x00000011, 0x4200b000, 0x00000004, 0x50080000, + 0x9c0001c0, 0x44003000, 0x80081000, 0x80183000, + 0x8058b040, 0x040207fa, 0x5c00a800, 0x5c00b000, + 0x0201f800, 0x000203ab, 0x5c025800, 0x1c01f000, + 0x4933c857, 0x492fc857, 0x5930080a, 0x58040200, + 0x8c00051e, 0x04000004, 0x592c0209, 0x84000558, + 0x48025a09, 0x1c01f000, 0x59e0180f, 0x599c0413, + 0x800c1000, 0x80080580, 0x04020002, 0x41781000, + 0x59e00010, 0x59e00810, 0x80040d80, 0x040207fd, + 0x80080580, 0x0400000b, 0x4c080000, 0x599c0814, + 0x599c1015, 0x800c00cc, 0x80040c00, 0x82081440, + 0x00000000, 0x5c001800, 0x82000540, 0x00000001, + 0x4803c857, 0x1c01f000, 0x59300203, 0x4933c857, + 0x4937c857, 0x493bc857, 0x4803c857, 0x82003480, + 0x0000000e, 0x02021800, 0x0010032d, 0x0c01f001, + 0x0010a35a, 0x0010a473, 0x0010a35a, 0x0010a35a, + 0x0010a35a, 0x0010a35a, 0x0010a35a, 0x0010a3d7, + 0x0010a35c, 0x0010a35a, 0x0010a35a, 0x0010a35a, + 0x0010a35a, 0x0010a35a, 0x0201f800, 0x0010032d, + 0x83380580, 0x0000004c, 0x02020800, 0x0010032d, + 0x0201f800, 0x001040e5, 0x04020021, 0x59a80a1b, + 0x82040500, 0x00000009, 0x82000580, 0x00000008, + 0x0400001b, 0x8c040d12, 0x04000032, 0x59cc0806, + 0x82040d00, 0xff000000, 0x82040580, 0x03000000, + 0x04000020, 0x82040580, 0x50000000, 0x04000005, + 0x82040580, 0x52000000, 0x02020000, 0x00020a10, + 0x83340580, 0x0010c2b2, 0x04000006, 0x4d3c0000, + 0x417a7800, 0x0201f800, 0x0010e06f, 0x5c027800, + 0x4a026403, 0x00000001, 0x0401f014, 0x59cc0806, + 0x82040d00, 0xff000000, 0x82040580, 0x03000000, + 0x04000008, 0x82040580, 0x50000000, 0x04000005, + 0x82040580, 0x52000000, 0x02020000, 0x00020a10, + 0x4a026403, 0x00000009, 0x4a02641b, 0x00000009, + 0x4a02621b, 0x00000000, 0x4a026407, 0x00000004, + 0x4a026203, 0x00000001, 0x0201f000, 0x0010608d, + 0x8d0e1d20, 0x04000023, 0x0201f800, 0x0010af31, + 0x04020020, 0x59cc0806, 0x4807c857, 0x82040d00, + 0xff000000, 0x82040580, 0x03000000, 0x04000013, + 0x82040580, 0x20000000, 0x04000010, 0x82040580, + 0x21000000, 0x0400000d, 0x82040580, 0x24000000, + 0x0400000a, 0x82040580, 0x50000000, 0x04000007, + 0x82040580, 0x52000000, 0x04000004, 0x82040580, + 0x05000000, 0x0402000a, 0x9c0431c0, 0x42028000, + 0x00000046, 0x42002800, 0x00000001, 0x0401fc4f, + 0x0401f924, 0x02000800, 0x0010032d, 0x42002000, + 0x00000051, 0x0201f800, 0x0010729d, 0x59cc0000, + 0x82000500, 0x00ffffff, 0x82000580, 0x00ffffff, + 0x04000005, 0x4a026203, 0x00000007, 0x493a6403, + 0x1c01f000, 0x59325818, 0x812e59c0, 0x02020800, + 0x00100589, 0x0201f000, 0x00020a10, 0x4d2c0000, + 0x4c580000, 0x4c500000, 0x4c540000, 0x41385000, + 0x83380580, 0x00000054, 0x02020800, 0x0010032d, + 0x59325809, 0x592c0c0c, 0x82040d00, 0x0000e000, + 0x82040580, 0x00002000, 0x04020077, 0x59300818, + 0x800409c0, 0x04000016, 0x58041405, 0x41cca800, + 0x8204a400, 0x00000006, 0x82080480, 0x00000010, + 0x04021005, 0x4008b000, 0x0201f800, 0x0010aee2, + 0x0401f00b, 0x40001000, 0x4200b000, 0x0000000f, + 0x0201f800, 0x0010aee2, 0x58040801, 0x800409c0, + 0x040207f0, 0x0201f800, 0x0010032d, 0x83340580, + 0x0010c2b2, 0x0400005c, 0x59344c00, 0x592c0c0a, + 0x4807c857, 0x4827c857, 0x82040d00, 0x000000ff, + 0x82040580, 0x00000003, 0x0400002a, 0x82040580, + 0x00000005, 0x04000030, 0x82040580, 0x00000020, + 0x04000034, 0x82040580, 0x00000052, 0x04000040, + 0x82040580, 0x00000050, 0x04000040, 0x82040580, + 0x00000021, 0x04000004, 0x82040580, 0x00000024, + 0x04020041, 0x82240500, 0x0000ff00, 0x82000580, + 0x00000700, 0x04000008, 0x42000800, 0x00000009, + 0x0201f800, 0x00103d9d, 0x42005000, 0x0000000c, + 0x0401f035, 0x4a025a07, 0x00000031, 0x4a02580e, + 0x00000009, 0x59340400, 0x4802580f, 0x0201f800, + 0x000203ab, 0x0201f800, 0x00107144, 0x0401f03b, + 0x0201f800, 0x00103e7e, 0x42000800, 0x00000003, + 0x0201f800, 0x00103d9d, 0x42005000, 0x00000008, + 0x0401f021, 0x59cc0007, 0x0201f800, 0x0010575c, + 0x0402001d, 0x4a026c00, 0x00000707, 0x0401f01a, + 0x82240500, 0x0000ff00, 0x82000580, 0x00000700, + 0x040007e1, 0x82240500, 0x000000ff, 0x82000580, + 0x00000009, 0x040007dc, 0x0201f800, 0x00103ee9, + 0x42005000, 0x0000000a, 0x0401f00b, 0x42005000, + 0x0000000e, 0x0401f003, 0x42005000, 0x00000010, + 0x82240500, 0x0000ff00, 0x82000580, 0x00000700, + 0x040007cd, 0x482a6403, 0x4a026203, 0x00000001, + 0x592c000e, 0x48026012, 0x497a6014, 0x59a8002b, + 0x48026006, 0x417a7800, 0x0201f800, 0x0010608d, + 0x59325818, 0x812e59c0, 0x04000004, 0x0201f800, + 0x00100589, 0x497a6018, 0x5c00a800, 0x5c00a000, + 0x5c00b000, 0x5c025800, 0x1c01f000, 0x4d2c0000, + 0x59325809, 0x83380580, 0x00000013, 0x0402003c, + 0x492fc857, 0x59300c03, 0x82040580, 0x00000054, + 0x04000030, 0x82040580, 0x00000010, 0x0400002a, + 0x82040580, 0x0000000e, 0x04000027, 0x59341400, + 0x82081d00, 0x0000ff00, 0x82081500, 0x000000ff, + 0x82040580, 0x00000008, 0x04000013, 0x82040580, + 0x0000000c, 0x04000013, 0x82040580, 0x0000000a, + 0x02020800, 0x0010032d, 0x820c0580, 0x00000700, + 0x04000018, 0x82080580, 0x00000009, 0x04000015, + 0x42000800, 0x00000006, 0x0201f800, 0x00103d9d, + 0x0401f010, 0x42000000, 0x00000003, 0x0401f003, + 0x42000000, 0x00000009, 0x80080580, 0x04020009, + 0x42000800, 0x00000004, 0x0201f800, 0x00103d9d, + 0x0401f004, 0x59340200, 0x8400051a, 0x48026a00, + 0x4a025a07, 0x00000000, 0x0201f800, 0x000203ab, + 0x0201f800, 0x00020a10, 0x0401f024, 0x83380580, + 0x00000027, 0x0400000f, 0x83380580, 0x00000014, + 0x02020800, 0x0010032d, 0x492fc857, 0x0201f800, + 0x00106102, 0x42028000, 0x00000031, 0x42000800, + 0x00000004, 0x42001000, 0x000000ff, 0x0401f00a, + 0x492fc857, 0x0201f800, 0x00106102, 0x42028000, + 0x00000031, 0x42000800, 0x00000004, 0x42001000, + 0x00000010, 0x49425a07, 0x4806580e, 0x480a580f, + 0x0201f800, 0x000203ab, 0x0201f800, 0x001043e2, + 0x0201f800, 0x00107144, 0x5c025800, 0x1c01f000, + 0x492fc857, 0x42007000, 0x00020b54, 0x58380806, + 0x492c7006, 0x800409c0, 0x04020004, 0x492c7007, + 0x0201f000, 0x00020026, 0x492c0800, 0x1c01f000, + 0x4d2c0000, 0x4c580000, 0x4c500000, 0x4c540000, + 0x4933c857, 0x4937c857, 0x59cc0806, 0x4807c857, + 0x82040d00, 0xff000000, 0x82040580, 0x03000000, + 0x0400000d, 0x82040580, 0x05000000, 0x0400000a, + 0x82040580, 0x21000000, 0x04000032, 0x82040580, + 0x24000000, 0x0400002f, 0x82040580, 0x20000000, + 0x04020031, 0x0201f800, 0x0010056f, 0x0400002e, + 0x492fc857, 0x492e6018, 0x59a8b05a, 0x8258b400, + 0x0000001b, 0x8258b500, 0xfffffffc, 0x8058b104, + 0x485a5c05, 0x412c7800, 0x41cca000, 0x82580480, + 0x00000010, 0x04021006, 0x832cac00, 0x00000006, + 0x0201f800, 0x0010aee2, 0x0401f016, 0x40580800, + 0x4200b000, 0x0000000f, 0x832cac00, 0x00000006, + 0x0201f800, 0x0010aee2, 0x8204b480, 0x0000000f, + 0x0201f800, 0x0010056f, 0x04000004, 0x492c7801, + 0x412c7800, 0x0401f7ea, 0x59325818, 0x0201f800, + 0x00100589, 0x497a6018, 0x80000580, 0x0401f006, + 0x59340200, 0x84000554, 0x48026a00, 0x82000540, + 0x00000001, 0x5c00a800, 0x5c00a000, 0x5c00b000, + 0x5c025800, 0x1c01f000, 0x4933c857, 0x492fc857, + 0x4d2c0000, 0x59300a03, 0x82040580, 0x00000007, + 0x04000037, 0x82040580, 0x00000001, 0x02020800, + 0x0010032d, 0x0201f800, 0x001061b2, 0x4df00000, + 0x598c000f, 0x81300580, 0x04020016, 0x59300004, + 0x8c000520, 0x04000004, 0x84000520, 0x48026004, + 0x0401f016, 0x42001000, 0x0010bc55, 0x50081000, + 0x58080002, 0x82000580, 0x00000100, 0x04000006, + 0x5808000b, 0x81300580, 0x02020800, 0x0010032d, + 0x0401f00a, 0x0201f800, 0x0010642d, 0x04020021, 0x59300004, 0x8c000520, 0x04000004, 0x84000520, - 0x48026004, 0x0401f016, 0x42001000, 0x0010bb55, - 0x50081000, 0x58080002, 0x82000580, 0x00000100, - 0x04000006, 0x5808000b, 0x81300580, 0x02020800, - 0x0010032d, 0x0401f00a, 0x0201f800, 0x00106388, - 0x04020021, 0x59300004, 0x8c000520, 0x04000004, - 0x84000520, 0x48026004, 0x0401f004, 0x0201f800, - 0x0010e343, 0x80c40040, 0x5c03e000, 0x02000800, - 0x001060fa, 0x0201f800, 0x0010889a, 0x02000800, - 0x0010032d, 0x59325809, 0x4a025a07, 0x00000005, - 0x0201f800, 0x000203ab, 0x0201f800, 0x001043c3, - 0x59325818, 0x812e59c0, 0x02020800, 0x00100589, - 0x0201f800, 0x001070b5, 0x80000580, 0x5c025800, - 0x1c01f000, 0x5c03e000, 0x02000800, 0x001060fa, - 0x59300c07, 0x82040580, 0x00000011, 0x040007b7, - 0x0401f7f7, 0x4c040000, 0x59340200, 0x4803c857, - 0x8c00051c, 0x04000009, 0x59cc0805, 0x591c001a, - 0x4803c857, 0x80040580, 0x04000004, 0x80000580, - 0x4803c856, 0x0401f003, 0x82000540, 0x00000001, - 0x5c000800, 0x1c01f000, 0x4c000000, 0x4c0c0000, - 0x4c100000, 0x42001800, 0x0000ffff, 0x42002000, - 0x00000004, 0x0401f013, 0x4c000000, 0x4c0c0000, - 0x4c100000, 0x5930200a, 0x58101c03, 0x42002000, - 0x00000004, 0x0401f00b, 0x4c000000, 0x4c0c0000, - 0x4c100000, 0x5930200a, 0x801021c0, 0x02000800, - 0x0010032d, 0x58101c03, 0x42002000, 0x00000007, - 0x480fc857, 0x4813c857, 0x481bc857, 0x0201f800, - 0x00103260, 0x5c002000, 0x5c001800, 0x5c000000, - 0x1c01f000, 0x8d0e1d20, 0x04000008, 0x4d400000, - 0x850e1d44, 0x42028000, 0x0000002a, 0x0201f800, - 0x00109f44, 0x5c028000, 0x1c01f000, 0x59a8021b, - 0x8c000508, 0x04000005, 0x599c0017, 0x8c00050a, - 0x04020002, 0x1c01f000, 0x82000540, 0x00000001, - 0x1c01f000, 0x59300421, 0x84000540, 0x48026421, - 0x1c01f000, 0x4c640000, 0x0201f800, 0x00108cab, - 0x59300203, 0x82000580, 0x00000008, 0x04020015, - 0x4200c800, 0x00000032, 0x42000000, 0x20000000, - 0x41300800, 0x0201f800, 0x00100899, 0x0400000d, - 0x59300203, 0x82000580, 0x00000008, 0x04020009, - 0x42000000, 0x0000001e, 0x80000040, 0x040207ff, - 0x8064c840, 0x040207f1, 0x0201f800, 0x0010032d, - 0x0201f800, 0x00108cc3, 0x5c00c800, 0x1c01f000, - 0x0201f800, 0x0010056f, 0x02000800, 0x0010032d, - 0x59340403, 0x49365803, 0x4a025a05, 0x00000055, - 0x48025c07, 0x4a025c08, 0x00001000, 0x59340802, - 0x82040d00, 0x00ffffff, 0x59300403, 0x82000580, - 0x00000086, 0x42000000, 0x85000000, 0x04020003, - 0x42000000, 0x84000000, 0x80040540, 0x4802580a, - 0x59a8000f, 0x4802580b, 0x42000000, 0x00990000, - 0x59300c07, 0x82040d80, 0x00000005, 0x04000002, - 0x8400052e, 0x4802580c, 0x497a580d, 0x59cc0004, - 0x4802580e, 0x497a580f, 0x42000800, 0x00030300, - 0x59300403, 0x82000580, 0x00000086, 0x04020006, - 0x59cc0004, 0x48025811, 0x4a025812, 0x0000ffff, - 0x41780800, 0x48065810, 0x1c01f000, 0x492fc857, - 0x59a82852, 0x801429c0, 0x0400005f, 0x4c5c0000, - 0x4c600000, 0x4c640000, 0x4d2c0000, 0x4d300000, - 0x42026000, 0x0010f518, 0x592c0c07, 0x592c100a, - 0x82081500, 0x00ffffff, 0x592c180b, 0x592c200e, - 0x40165800, 0x4014c000, 0x4014c800, 0x592c0205, - 0x82000580, 0x00000155, 0x0402003e, 0x592c0407, - 0x80040580, 0x0402003b, 0x592c000a, 0x82000500, - 0x00ffffff, 0x80080580, 0x04020036, 0x592c000b, - 0x82000500, 0x00ffffff, 0x800c0580, 0x04020031, - 0x592c000e, 0x80100580, 0x0402002e, 0x4c040000, - 0x4c080000, 0x4c0c0000, 0x4c100000, 0x40640000, - 0x812c0580, 0x0402001b, 0x59300203, 0x82000580, - 0x00000000, 0x04000013, 0x59300009, 0x800001c0, - 0x04000010, 0x0201f800, 0x0010610d, 0x4df00000, - 0x0201f800, 0x00105ff7, 0x0201f800, 0x0010e2ad, - 0x80c40040, 0x04020003, 0x4a026203, 0x00000000, - 0x5c03e000, 0x02000800, 0x001060fa, 0x497a6009, - 0x592cc800, 0x4064c000, 0x4064b800, 0x0401f003, - 0x592cb800, 0x485cc000, 0x4a025a07, 0x00000005, - 0x0201f800, 0x000203ab, 0x405e5800, 0x5c002000, - 0x5c001800, 0x5c001000, 0x5c000800, 0x0401f003, - 0x412cc000, 0x592e5800, 0x812e59c0, 0x040207bc, - 0x48675052, 0x48635053, 0x0201f800, 0x0010702d, - 0x5c026000, 0x5c025800, 0x5c00c800, 0x5c00c000, - 0x5c00b800, 0x1c01f000, 0x42000800, 0x0000000b, - 0x0401f006, 0x42000800, 0x00000004, 0x0401f003, - 0x42000800, 0x00000001, 0x4d2c0000, 0x59325809, - 0x812e59c0, 0x04000012, 0x592c0205, 0x82000500, - 0x000000ff, 0x82000580, 0x0000000e, 0x0402000c, - 0x592c0000, 0x48026009, 0x497a5800, 0x48065a09, - 0x0201f800, 0x001050e3, 0x04000003, 0x0401fe3e, - 0x0401f003, 0x0201f800, 0x000203ab, 0x5c025800, - 0x1c01f000, 0x42001000, 0x00001000, 0x80081040, - 0x04000010, 0x0201f800, 0x0010ae33, 0x040007fc, - 0x42001000, 0x00007b00, 0x5808081c, 0x4a030000, - 0x00000000, 0x82040d00, 0xffff0000, 0x82040580, - 0x84320000, 0x04020003, 0x4a035073, 0x8000001b, - 0x1c01f000, 0x4d340000, 0x4d440000, 0x599c0018, - 0x82000500, 0xffffffcf, 0x82000540, 0x00000010, - 0x48033818, 0x599c0019, 0x82000500, 0xffff1fff, - 0x82000540, 0x00006000, 0x48033819, 0x42003000, - 0x0000fc0e, 0x417a8800, 0x0201f800, 0x00103dd0, - 0x42003000, 0x0010af80, 0x45783000, 0x49375074, - 0x4a026c03, 0x0000ffff, 0x497a6806, 0x497a6807, - 0x4a026c08, 0x000004b0, 0x4a026a08, 0x00000014, - 0x497a6809, 0x4a026c04, 0x00000008, 0x5c028800, - 0x5c026800, 0x1c01f000, 0x4a038893, 0x00000001, - 0x59340400, 0x82000500, 0x000000ff, 0x82000580, - 0x00000003, 0x04000017, 0x0201f800, 0x001070ff, - 0x04000014, 0x4933c857, 0x59aa6874, 0x4936600a, - 0x4a026407, 0x00000012, 0x42000800, 0x00000003, - 0x0201f800, 0x00103d8a, 0x42001000, 0x00000008, - 0x0201f800, 0x001066d0, 0x4a0378e4, 0x0c000000, - 0x42027000, 0x000000d0, 0x0201f800, 0x00020a34, - 0x1c01f000, 0x4d400000, 0x4d340000, 0x0201f800, - 0x0010610d, 0x4df00000, 0x59aa6874, 0x42028000, - 0x00000029, 0x0401f9cc, 0x4a026c00, 0x00000707, - 0x5c03e000, 0x02000800, 0x001060fa, 0x5c026800, - 0x5c028000, 0x1c01f000, 0x4a03c013, 0x00010001, - 0x4a03c014, 0x00010001, 0x4a03c013, 0x00010000, - 0x42000000, 0x0000000f, 0x80000040, 0x040207ff, - 0x4a03c013, 0x00010001, 0x1c01f000, 0x4803c856, - 0x592c0a07, 0x8c040d1e, 0x04020008, 0x80140110, - 0x80000040, 0x04000022, 0x4a033006, 0x0010a64b, - 0x0201f000, 0x00020684, 0x80140110, 0x80000040, - 0x02020000, 0x00104c4c, 0x592c0208, 0x82000c80, - 0x00001001, 0x04001003, 0x0201f000, 0x00104c5c, - 0x592c1014, 0x82080500, 0xffff0003, 0x02020000, - 0x00104c5c, 0x4202e000, 0x00000002, 0x42000000, - 0x0010c25d, 0x50007000, 0x592c0012, 0x592c0813, - 0x48007006, 0x48047007, 0x492c700a, 0x4978700d, - 0x4978700b, 0x0201f000, 0x001050a3, 0x59a80873, - 0x8c040d3e, 0x02000000, 0x00104c44, 0x59aa6874, - 0x59340400, 0x82000580, 0x00000404, 0x04020053, - 0x59a80073, 0x8c000506, 0x0402004c, 0x592c080a, - 0x48066809, 0x592c1207, 0x59341806, 0x8c081506, - 0x04000002, 0x59341807, 0x480e580a, 0x8c081502, - 0x04020005, 0x40040000, 0x800c0480, 0x0400102d, - 0x0401f02f, 0x592c0810, 0x82040500, 0x00000003, - 0x0402004a, 0x592c0011, 0x80000540, 0x04020011, - 0x592c000f, 0x82000500, 0x00000003, 0x04020043, - 0x0201f800, 0x000209ee, 0x04000038, 0x4932580b, + 0x48026004, 0x0401f004, 0x0201f800, 0x0010e453, + 0x80c40040, 0x5c03e000, 0x02000800, 0x0010619f, + 0x0201f800, 0x00108953, 0x02000800, 0x0010032d, + 0x59325809, 0x4a025a07, 0x00000005, 0x0201f800, + 0x000203ab, 0x0201f800, 0x001043e2, 0x59325818, + 0x812e59c0, 0x02020800, 0x00100589, 0x0201f800, + 0x00107144, 0x80000580, 0x5c025800, 0x1c01f000, + 0x5c03e000, 0x02000800, 0x0010619f, 0x59300c07, + 0x82040580, 0x00000011, 0x040007b7, 0x0401f7f7, + 0x4c040000, 0x59340200, 0x4803c857, 0x8c00051c, + 0x04000009, 0x59cc0805, 0x591c001a, 0x4803c857, + 0x80040580, 0x04000004, 0x80000580, 0x4803c856, + 0x0401f003, 0x82000540, 0x00000001, 0x5c000800, + 0x1c01f000, 0x4c000000, 0x4c0c0000, 0x4c100000, + 0x42001800, 0x0000ffff, 0x42002000, 0x00000004, + 0x0401f013, 0x4c000000, 0x4c0c0000, 0x4c100000, + 0x5930200a, 0x58101c03, 0x42002000, 0x00000004, + 0x0401f00b, 0x4c000000, 0x4c0c0000, 0x4c100000, + 0x5930200a, 0x801021c0, 0x02000800, 0x0010032d, + 0x58101c03, 0x42002000, 0x00000007, 0x480fc857, + 0x4813c857, 0x481bc857, 0x0201f800, 0x0010326a, + 0x5c002000, 0x5c001800, 0x5c000000, 0x1c01f000, + 0x8d0e1d20, 0x04000008, 0x4d400000, 0x850e1d44, + 0x42028000, 0x0000002a, 0x0201f800, 0x0010a01b, + 0x5c028000, 0x1c01f000, 0x59a8021b, 0x8c000508, + 0x04000005, 0x599c0017, 0x8c00050a, 0x04020002, + 0x1c01f000, 0x82000540, 0x00000001, 0x1c01f000, + 0x59300421, 0x84000540, 0x48026421, 0x1c01f000, + 0x4c640000, 0x0201f800, 0x00108d64, 0x59300203, + 0x82000580, 0x00000008, 0x04020015, 0x4200c800, + 0x00000032, 0x42000000, 0x20000000, 0x41300800, + 0x0201f800, 0x00100897, 0x0400000d, 0x59300203, + 0x82000580, 0x00000008, 0x04020009, 0x42000000, + 0x0000001e, 0x80000040, 0x040207ff, 0x8064c840, + 0x040207f1, 0x0201f800, 0x0010032d, 0x0201f800, + 0x00108d7c, 0x5c00c800, 0x1c01f000, 0x0201f800, + 0x0010056f, 0x02000800, 0x0010032d, 0x59340403, + 0x49365803, 0x4a025a05, 0x00000055, 0x48025c07, + 0x4a025c08, 0x00001000, 0x59340802, 0x82040d00, + 0x00ffffff, 0x59300403, 0x82000580, 0x00000086, + 0x42000000, 0x85000000, 0x04020003, 0x42000000, + 0x84000000, 0x80040540, 0x4802580a, 0x59a8000f, + 0x4802580b, 0x42000000, 0x00990000, 0x59300c07, + 0x82040d80, 0x00000005, 0x04000002, 0x8400052e, + 0x4802580c, 0x497a580d, 0x59cc0004, 0x4802580e, + 0x497a580f, 0x42000800, 0x00030300, 0x59300403, + 0x82000580, 0x00000086, 0x04020006, 0x59cc0004, + 0x48025811, 0x4a025812, 0x0000ffff, 0x41780800, + 0x48065810, 0x1c01f000, 0x492fc857, 0x59a82852, + 0x801429c0, 0x0400005f, 0x4c5c0000, 0x4c600000, + 0x4c640000, 0x4d2c0000, 0x4d300000, 0x42026000, + 0x0010f628, 0x592c0c07, 0x592c100a, 0x82081500, + 0x00ffffff, 0x592c180b, 0x592c200e, 0x40165800, + 0x4014c000, 0x4014c800, 0x592c0205, 0x82000580, + 0x00000155, 0x0402003e, 0x592c0407, 0x80040580, + 0x0402003b, 0x592c000a, 0x82000500, 0x00ffffff, + 0x80080580, 0x04020036, 0x592c000b, 0x82000500, + 0x00ffffff, 0x800c0580, 0x04020031, 0x592c000e, + 0x80100580, 0x0402002e, 0x4c040000, 0x4c080000, + 0x4c0c0000, 0x4c100000, 0x40640000, 0x812c0580, + 0x0402001b, 0x59300203, 0x82000580, 0x00000000, + 0x04000013, 0x59300009, 0x800001c0, 0x04000010, + 0x0201f800, 0x001061b2, 0x4df00000, 0x0201f800, + 0x0010609c, 0x0201f800, 0x0010e3bd, 0x80c40040, + 0x04020003, 0x4a026203, 0x00000000, 0x5c03e000, + 0x02000800, 0x0010619f, 0x497a6009, 0x592cc800, + 0x4064c000, 0x4064b800, 0x0401f003, 0x592cb800, + 0x485cc000, 0x4a025a07, 0x00000005, 0x0201f800, + 0x000203ab, 0x405e5800, 0x5c002000, 0x5c001800, + 0x5c001000, 0x5c000800, 0x0401f003, 0x412cc000, + 0x592e5800, 0x812e59c0, 0x040207bc, 0x48675052, + 0x48635053, 0x0201f800, 0x001070bc, 0x5c026000, + 0x5c025800, 0x5c00c800, 0x5c00c000, 0x5c00b800, + 0x1c01f000, 0x42000800, 0x0000000b, 0x0401f006, + 0x42000800, 0x00000004, 0x0401f003, 0x42000800, + 0x00000001, 0x4d2c0000, 0x59325809, 0x812e59c0, + 0x04000012, 0x592c0205, 0x82000500, 0x000000ff, + 0x82000580, 0x0000000e, 0x0402000c, 0x592c0000, + 0x48026009, 0x497a5800, 0x48065a09, 0x0201f800, + 0x00105139, 0x04000003, 0x0401fe3e, 0x0401f003, + 0x0201f800, 0x000203ab, 0x5c025800, 0x1c01f000, + 0x42001000, 0x00001000, 0x80081040, 0x04000010, + 0x0201f800, 0x0010af26, 0x040007fc, 0x42001000, + 0x00007b00, 0x5808081c, 0x4a030000, 0x00000000, + 0x82040d00, 0xffff0000, 0x82040580, 0x84320000, + 0x04020003, 0x4a035073, 0x8000001b, 0x1c01f000, + 0x4d340000, 0x4d440000, 0x599c0018, 0x82000500, + 0xffffffcf, 0x82000540, 0x00000010, 0x48033818, + 0x599c0019, 0x82000500, 0xffff1fff, 0x82000540, + 0x00006000, 0x48033819, 0x42003000, 0x0000fc0e, + 0x417a8800, 0x0201f800, 0x00103de6, 0x42003000, + 0x0010b080, 0x45783000, 0x49375074, 0x4a026c03, + 0x0000ffff, 0x497a6806, 0x497a6807, 0x4a026c08, + 0x000004b0, 0x4a026a08, 0x00000014, 0x497a6809, + 0x4a026c04, 0x00000008, 0x5c028800, 0x5c026800, + 0x1c01f000, 0x4a038893, 0x00000001, 0x59340400, + 0x82000500, 0x000000ff, 0x82000580, 0x00000003, + 0x04000017, 0x0201f800, 0x00107192, 0x04000014, + 0x4933c857, 0x59aa6874, 0x4936600a, 0x4a026407, + 0x00000012, 0x42000800, 0x00000003, 0x0201f800, + 0x00103d9d, 0x42001000, 0x00000008, 0x0201f800, + 0x00106775, 0x4a0378e4, 0x0c000000, 0x42027000, + 0x000000d0, 0x0201f800, 0x00020a34, 0x1c01f000, + 0x4d400000, 0x4d340000, 0x0201f800, 0x001061b2, + 0x4df00000, 0x59aa6874, 0x42028000, 0x00000029, + 0x0401f9cc, 0x4a026c00, 0x00000707, 0x5c03e000, + 0x02000800, 0x0010619f, 0x5c026800, 0x5c028000, + 0x1c01f000, 0x4a03c013, 0x00010001, 0x4a03c014, + 0x00010001, 0x4a03c013, 0x00010000, 0x42000000, + 0x0000000f, 0x80000040, 0x040207ff, 0x4a03c013, + 0x00010001, 0x1c01f000, 0x4803c856, 0x592c0a07, + 0x8c040d1e, 0x04020008, 0x80140110, 0x80000040, + 0x04000022, 0x4a033006, 0x0010a73e, 0x0201f000, + 0x00020684, 0x80140110, 0x80000040, 0x02020000, + 0x00104c8b, 0x592c0208, 0x82000c80, 0x00001001, + 0x04001003, 0x0201f000, 0x00104c9b, 0x592c1014, + 0x82080500, 0xffff0003, 0x02020000, 0x00104c9b, + 0x4202e000, 0x00000002, 0x42000000, 0x0010c35d, + 0x50007000, 0x592c0012, 0x592c0813, 0x48007006, + 0x48047007, 0x492c700a, 0x4978700d, 0x4978700b, + 0x0201f000, 0x001050f9, 0x59a80873, 0x8c040d3e, + 0x02000000, 0x00104c83, 0x59aa6874, 0x59340400, + 0x82000580, 0x00000404, 0x04020053, 0x59a80073, + 0x8c000506, 0x0402004c, 0x592c080a, 0x48066809, + 0x592c1207, 0x59341806, 0x8c081506, 0x04000002, + 0x59341807, 0x480e580a, 0x8c081502, 0x04020005, + 0x40040000, 0x800c0480, 0x0400102d, 0x0401f02f, + 0x592c0810, 0x82040500, 0x00000003, 0x0402004a, + 0x592c0011, 0x80000540, 0x04020011, 0x592c000f, + 0x82000500, 0x00000003, 0x04020043, 0x0201f800, + 0x000209ee, 0x04000038, 0x4932580b, 0x4a026407, + 0x00000012, 0x492e6009, 0x4936600a, 0x42027000, + 0x000000d1, 0x0201f000, 0x00020a34, 0x592e600b, + 0x0201f800, 0x00108d9b, 0x0400002f, 0x59300407, + 0x82000580, 0x00000012, 0x0402002b, 0x59300809, + 0x800409c0, 0x04020015, 0x59300203, 0x82000580, + 0x00000007, 0x04020024, 0x492e6009, 0x42027000, + 0x000000d9, 0x0201f000, 0x00020a34, 0x8c081500, + 0x040007d4, 0x480e580a, 0x59a80073, 0x8400054c, + 0x84000508, 0x48035073, 0x4a025a07, 0x00000000, + 0x0201f000, 0x000203ab, 0x58041000, 0x800811c0, + 0x04000003, 0x40080800, 0x0401f7fc, 0x492c0800, + 0x1c01f000, 0x4a025a07, 0x00000028, 0x0201f000, + 0x000203ab, 0x4a025a07, 0x00000029, 0x0201f000, + 0x000203ab, 0x4a025a07, 0x0000002c, 0x0201f000, + 0x000203ab, 0x4a025a07, 0x00000008, 0x0201f000, + 0x000203ab, 0x4a025a07, 0x00000003, 0x4a025c07, + 0x00000002, 0x0201f000, 0x000203ab, 0x4803c856, + 0x80140110, 0x80000040, 0x04000005, 0x4a033006, + 0x0010a7b3, 0x0201f000, 0x00020684, 0x59a80873, + 0x8c040d3e, 0x02000000, 0x00104c83, 0x592c0a07, + 0x82040480, 0x00000004, 0x02021000, 0x00104c9b, + 0x59a80073, 0x8c000506, 0x0402001d, 0x59aa6874, + 0x59340400, 0x82000580, 0x00000404, 0x0402001c, + 0x0201f800, 0x000209ee, 0x0400001d, 0x4a026407, + 0x00000012, 0x492e6009, 0x4936600a, 0x592c0a07, + 0x82040580, 0x00000002, 0x04000004, 0x592c0010, + 0x800001c0, 0x04000016, 0x82040400, 0x0010a7d7, + 0x50027000, 0x0201f000, 0x00020a34, 0x000000d4, + 0x000000d5, 0x000000d3, 0x000000d6, 0x4a025a07, + 0x00000028, 0x0201f000, 0x000203ab, 0x4a025a07, + 0x00000029, 0x0201f000, 0x000203ab, 0x4a025a07, + 0x0000002c, 0x0201f000, 0x000203ab, 0x0201f800, + 0x00020a10, 0x0201f000, 0x00104c9b, 0x492fc857, + 0x59a80873, 0x8c040d3e, 0x42000800, 0x00004001, + 0x040000b6, 0x59a80073, 0x8c000506, 0x42000800, + 0x00000028, 0x040200b1, 0x59aa6874, 0x59340400, + 0x82000580, 0x00000404, 0x42000800, 0x00000029, + 0x040200aa, 0x4a025a05, 0x0000012b, 0x4a025806, + 0xaa00feed, 0x4a025a07, 0x00000004, 0x4a025a08, + 0x00000001, 0x59a0020b, 0x48025810, 0x48025814, + 0x48025a0a, 0x59a00408, 0x59a01208, 0x900811c0, + 0x80081540, 0x480a5812, 0x59a0040a, 0x59a0120a, + 0x900811c0, 0x80081540, 0x480a5813, 0x59a00407, + 0x48025a0b, 0x59a0040b, 0x48025c0b, 0x0201f800, + 0x000209ee, 0x42000800, 0x0000002c, 0x0400008b, 0x4a026407, 0x00000012, 0x492e6009, 0x4936600a, - 0x42027000, 0x000000d1, 0x0201f000, 0x00020a34, - 0x592e600b, 0x0201f800, 0x00108ce2, 0x0400002f, - 0x59300407, 0x82000580, 0x00000012, 0x0402002b, - 0x59300809, 0x800409c0, 0x04020015, 0x59300203, - 0x82000580, 0x00000007, 0x04020024, 0x492e6009, - 0x42027000, 0x000000d9, 0x0201f000, 0x00020a34, - 0x8c081500, 0x040007d4, 0x480e580a, 0x59a80073, - 0x8400054c, 0x84000508, 0x48035073, 0x4a025a07, - 0x00000000, 0x0201f000, 0x000203ab, 0x58041000, - 0x800811c0, 0x04000003, 0x40080800, 0x0401f7fc, - 0x492c0800, 0x1c01f000, 0x4a025a07, 0x00000028, - 0x0201f000, 0x000203ab, 0x4a025a07, 0x00000029, - 0x0201f000, 0x000203ab, 0x4a025a07, 0x0000002c, - 0x0201f000, 0x000203ab, 0x4a025a07, 0x00000008, - 0x0201f000, 0x000203ab, 0x4a025a07, 0x00000003, - 0x4a025c07, 0x00000002, 0x0201f000, 0x000203ab, - 0x4803c856, 0x80140110, 0x80000040, 0x04000005, - 0x4a033006, 0x0010a6c0, 0x0201f000, 0x00020684, - 0x59a80873, 0x8c040d3e, 0x02000000, 0x00104c44, - 0x592c0a07, 0x82040480, 0x00000004, 0x02021000, - 0x00104c5c, 0x59a80073, 0x8c000506, 0x0402001d, - 0x59aa6874, 0x59340400, 0x82000580, 0x00000404, - 0x0402001c, 0x0201f800, 0x000209ee, 0x0400001d, - 0x4a026407, 0x00000012, 0x492e6009, 0x4936600a, - 0x592c0a07, 0x82040580, 0x00000002, 0x04000004, - 0x592c0010, 0x800001c0, 0x04000016, 0x82040400, - 0x0010a6e4, 0x50027000, 0x0201f000, 0x00020a34, - 0x000000d4, 0x000000d5, 0x000000d3, 0x000000d6, - 0x4a025a07, 0x00000028, 0x0201f000, 0x000203ab, - 0x4a025a07, 0x00000029, 0x0201f000, 0x000203ab, - 0x4a025a07, 0x0000002c, 0x0201f000, 0x000203ab, - 0x0201f800, 0x00020a10, 0x0201f000, 0x00104c5c, - 0x492fc857, 0x59a80873, 0x8c040d3e, 0x42000800, - 0x00004001, 0x040000b6, 0x59a80073, 0x8c000506, - 0x42000800, 0x00000028, 0x040200b1, 0x59aa6874, - 0x59340400, 0x82000580, 0x00000404, 0x42000800, - 0x00000029, 0x040200aa, 0x4a025a05, 0x0000012b, - 0x4a025806, 0xaa00feed, 0x4a025a07, 0x00000004, - 0x4a025a08, 0x00000001, 0x59a0020b, 0x48025810, - 0x48025814, 0x48025a0a, 0x59a00408, 0x59a01208, - 0x900811c0, 0x80081540, 0x480a5812, 0x59a0040a, - 0x59a0120a, 0x900811c0, 0x80081540, 0x480a5813, - 0x59a00407, 0x48025a0b, 0x59a0040b, 0x48025c0b, - 0x0201f800, 0x000209ee, 0x42000800, 0x0000002c, - 0x0400008b, 0x4a026407, 0x00000012, 0x492e6009, - 0x4936600a, 0x42027000, 0x000000de, 0x0201f000, - 0x00020a34, 0x59cc0801, 0x82040d00, 0x00ffffff, - 0x82040580, 0x0000fc0e, 0x04020014, 0x59cc0800, - 0x82040d00, 0x00ffffff, 0x82040580, 0x0000fc0e, - 0x04020010, 0x59cc0c00, 0x80040910, 0x82040580, - 0x00000022, 0x04000011, 0x82040580, 0x00000023, - 0x04000027, 0x82040580, 0x00000005, 0x0400004e, - 0x4807c857, 0x0401f008, 0x4807c857, 0x0401f006, - 0x4807c857, 0x42000000, 0x0010bcac, 0x0201f800, - 0x0010ad1d, 0x1c01f000, 0x59cc0806, 0x59a80073, - 0x8c00050a, 0x04020010, 0x82040580, 0x05000000, - 0x0402000d, 0x42027000, 0x000000da, 0x0201f800, - 0x001070ff, 0x59aa6874, 0x4936600a, 0x4a026407, - 0x00000013, 0x59cc0404, 0x48026202, 0x0201f000, - 0x00020a34, 0x4807c857, 0x42000000, 0x0010bcac, - 0x0201f800, 0x0010ad1d, 0x1c01f000, 0x0201f800, - 0x001055aa, 0x0400001f, 0x59300c07, 0x82040580, - 0x00000012, 0x02020800, 0x001003f4, 0x0402001c, - 0x5932680a, 0x59cc0a04, 0x48066202, 0x59300004, - 0x8c00053e, 0x02020800, 0x0010644d, 0x04020014, - 0x42027000, 0x000000dc, 0x59cc0806, 0x82040580, - 0x02000000, 0x02000000, 0x00020a34, 0x82040580, - 0x01000000, 0x02020800, 0x001003f4, 0x04020008, - 0x42027000, 0x000000dd, 0x0201f000, 0x00020a34, - 0x59cc0c04, 0x4807c857, 0x0401f002, 0x4933c857, - 0x42000000, 0x0010bcac, 0x0201f800, 0x0010ad1d, - 0x1c01f000, 0x0201f800, 0x001055aa, 0x04000013, - 0x59300c07, 0x82040580, 0x00000012, 0x02020800, - 0x001003f4, 0x04020010, 0x5932680a, 0x59cc0a04, - 0x48066202, 0x59300004, 0x8c00053e, 0x02020800, - 0x0010644d, 0x04020008, 0x42027000, 0x000000db, - 0x0201f000, 0x00020a34, 0x59cc0c04, 0x4807c857, - 0x0401f002, 0x4933c857, 0x42000000, 0x0010bcac, - 0x0201f800, 0x0010ad1d, 0x1c01f000, 0x492fc857, - 0x4807c857, 0x82040580, 0x00000000, 0x02000000, - 0x00101cba, 0x4a034207, 0x00004005, 0x48074407, - 0x0201f000, 0x00101cbd, 0x48066004, 0x59bc00ea, - 0x8c000516, 0x040207fe, 0x83300400, 0xc0000000, - 0x480378e1, 0x1c01f000, 0x4d300000, 0x598c000d, - 0x80026540, 0x0400000e, 0x0201f800, 0x001060f3, - 0x0201f800, 0x001060e1, 0x59300000, 0x800001c0, - 0x04000004, 0x4803180d, 0x497a6000, 0x0401f003, - 0x497b180d, 0x497b180c, 0x80000580, 0x5c026000, - 0x1c01f000, 0x4d2c0000, 0x4d300000, 0x4d340000, - 0x4c5c0000, 0x4178b800, 0x598e600d, 0x813261c0, - 0x0400000b, 0x0201f800, 0x00105ff7, 0x59300000, - 0x4c000000, 0x405c3000, 0x0401f826, 0x0201f800, - 0x0010e35f, 0x5c026000, 0x0401f7f5, 0x5c00b800, - 0x5c026800, 0x5c026000, 0x5c025800, 0x1c01f000, - 0x4933c857, 0x4c5c0000, 0x813261c0, 0x02000800, - 0x0010032d, 0x41300000, 0x598cb80d, 0x41783000, - 0x805cb9c0, 0x0400000f, 0x805c0d80, 0x04000004, - 0x405c3000, 0x5818b800, 0x0401f7fa, 0x0401f80d, - 0x598c000f, 0x81300580, 0x02000800, 0x001066dd, - 0x497a6008, 0x80000580, 0x5c00b800, 0x1c01f000, - 0x82000540, 0x00000001, 0x5c00b800, 0x1c01f000, - 0x59300800, 0x497a6000, 0x0201f800, 0x001060e1, - 0x801831c0, 0x04020009, 0x598c000c, 0x81300580, - 0x04020004, 0x4803180c, 0x4803180d, 0x0401f008, - 0x4807180d, 0x0401f006, 0x48043000, 0x598c000c, - 0x81300580, 0x04020002, 0x481b180c, 0x0201f000, - 0x001060f3, 0x59325809, 0x59300c03, 0x82040480, - 0x000000df, 0x04021004, 0x82040480, 0x000000d0, - 0x0401f002, 0x81780040, 0x04001002, 0x0c01f008, - 0x4933c857, 0x493bc857, 0x42000000, 0x0010bcae, - 0x0201f800, 0x0010ad1d, 0x1c01f000, 0x0010a855, - 0x0010a86c, 0x0010a889, 0x0010a89a, 0x0010a8ab, - 0x0010a8be, 0x0010a8d1, 0x0010a8e5, 0x0010a82c, - 0x0010a82c, 0x0010a82c, 0x0010a82c, 0x0010a82c, - 0x0010a82c, 0x0010a842, 0x42000800, 0x00000022, - 0x0401f8d1, 0x592c0a0a, 0x4805a207, 0x592c0a0b, - 0x4805a208, 0x592c0c0b, 0x4805a408, 0x4a01a006, - 0x0c000000, 0x59340408, 0x48026006, 0x42000800, - 0x00000003, 0x42001000, 0x0000dc00, 0x0201f000, - 0x00106f71, 0x42000800, 0x00000022, 0x0401f8be, - 0x497b8880, 0x59a8001f, 0x82000500, 0x0000ffff, - 0x4c000000, 0x0201f800, 0x001013db, 0x5c000000, - 0x48038880, 0x4a01a006, 0x03000000, 0x4801a207, - 0x59a80004, 0x4801a407, 0x42000800, 0x00000002, - 0x42001000, 0x0000dc00, 0x0201f000, 0x00106f71, - 0x42000800, 0x00000022, 0x0401f8a7, 0x592c0a07, - 0x592c100f, 0x592c0010, 0x80080580, 0x82000500, - 0x00000003, 0x0402008c, 0x82080500, 0x00000003, - 0x04020089, 0x42001800, 0x00000002, 0x8c040d06, - 0x04020003, 0x42001800, 0x00000001, 0x4a01a006, - 0x04000000, 0x4809a007, 0x480da008, 0x42000800, - 0x00000003, 0x42001000, 0x0000dc00, 0x0201f000, - 0x00106f71, 0x42000800, 0x00000022, 0x0401f88a, - 0x59300819, 0x5930101a, 0x5930181b, 0x4a01a006, - 0x06000000, 0x4805a007, 0x4809a008, 0x480da009, + 0x42027000, 0x000000de, 0x0201f000, 0x00020a34, + 0x59cc0801, 0x82040d00, 0x00ffffff, 0x82040580, + 0x0000fc0e, 0x04020014, 0x59cc0800, 0x82040d00, + 0x00ffffff, 0x82040580, 0x0000fc0e, 0x04020010, + 0x59cc0c00, 0x80040910, 0x82040580, 0x00000022, + 0x04000011, 0x82040580, 0x00000023, 0x04000027, + 0x82040580, 0x00000005, 0x0400004e, 0x4807c857, + 0x0401f008, 0x4807c857, 0x0401f006, 0x4807c857, + 0x42000000, 0x0010bdac, 0x0201f800, 0x0010ae10, + 0x1c01f000, 0x59cc0806, 0x59a80073, 0x8c00050a, + 0x04020010, 0x82040580, 0x05000000, 0x0402000d, + 0x42027000, 0x000000da, 0x0201f800, 0x00107192, + 0x59aa6874, 0x4936600a, 0x4a026407, 0x00000013, + 0x59cc0404, 0x48026202, 0x0201f000, 0x00020a34, + 0x4807c857, 0x42000000, 0x0010bdac, 0x0201f800, + 0x0010ae10, 0x1c01f000, 0x0201f800, 0x00105616, + 0x0400001f, 0x59300c07, 0x82040580, 0x00000012, + 0x02020800, 0x001003f4, 0x0402001c, 0x5932680a, + 0x59cc0a04, 0x48066202, 0x59300004, 0x8c00053e, + 0x02020800, 0x001064f2, 0x04020014, 0x42027000, + 0x000000dc, 0x59cc0806, 0x82040580, 0x02000000, + 0x02000000, 0x00020a34, 0x82040580, 0x01000000, + 0x02020800, 0x001003f4, 0x04020008, 0x42027000, + 0x000000dd, 0x0201f000, 0x00020a34, 0x59cc0c04, + 0x4807c857, 0x0401f002, 0x4933c857, 0x42000000, + 0x0010bdac, 0x0201f800, 0x0010ae10, 0x1c01f000, + 0x0201f800, 0x00105616, 0x04000013, 0x59300c07, + 0x82040580, 0x00000012, 0x02020800, 0x001003f4, + 0x04020010, 0x5932680a, 0x59cc0a04, 0x48066202, + 0x59300004, 0x8c00053e, 0x02020800, 0x001064f2, + 0x04020008, 0x42027000, 0x000000db, 0x0201f000, + 0x00020a34, 0x59cc0c04, 0x4807c857, 0x0401f002, + 0x4933c857, 0x42000000, 0x0010bdac, 0x0201f800, + 0x0010ae10, 0x1c01f000, 0x492fc857, 0x4807c857, + 0x82040580, 0x00000000, 0x02000000, 0x00101cbf, + 0x4a034207, 0x00004005, 0x48074407, 0x0201f000, + 0x00101cc2, 0x48066004, 0x59bc00ea, 0x8c000516, + 0x040207fe, 0x83300400, 0xc0000000, 0x480378e1, + 0x1c01f000, 0x4d300000, 0x598c000d, 0x80026540, + 0x0400000e, 0x0201f800, 0x00106198, 0x0201f800, + 0x00106186, 0x59300000, 0x800001c0, 0x04000004, + 0x4803180d, 0x497a6000, 0x0401f003, 0x497b180d, + 0x497b180c, 0x80000580, 0x5c026000, 0x1c01f000, + 0x4d2c0000, 0x4d300000, 0x4d340000, 0x4c5c0000, + 0x4178b800, 0x598e600d, 0x813261c0, 0x0400000b, + 0x0201f800, 0x0010609c, 0x59300000, 0x4c000000, + 0x405c3000, 0x0401f826, 0x0201f800, 0x0010e46f, + 0x5c026000, 0x0401f7f5, 0x5c00b800, 0x5c026800, + 0x5c026000, 0x5c025800, 0x1c01f000, 0x4933c857, + 0x4c5c0000, 0x813261c0, 0x02000800, 0x0010032d, + 0x41300000, 0x598cb80d, 0x41783000, 0x805cb9c0, + 0x0400000f, 0x805c0d80, 0x04000004, 0x405c3000, + 0x5818b800, 0x0401f7fa, 0x0401f80d, 0x598c000f, + 0x81300580, 0x02000800, 0x00106782, 0x497a6008, + 0x80000580, 0x5c00b800, 0x1c01f000, 0x82000540, + 0x00000001, 0x5c00b800, 0x1c01f000, 0x59300800, + 0x497a6000, 0x0201f800, 0x00106186, 0x801831c0, + 0x04020009, 0x598c000c, 0x81300580, 0x04020004, + 0x4803180c, 0x4803180d, 0x0401f008, 0x4807180d, + 0x0401f006, 0x48043000, 0x598c000c, 0x81300580, + 0x04020002, 0x481b180c, 0x0201f000, 0x00106198, + 0x59325809, 0x59300c03, 0x82040480, 0x000000df, + 0x04021004, 0x82040480, 0x000000d0, 0x0401f002, + 0x81780040, 0x04001002, 0x0c01f008, 0x4933c857, + 0x493bc857, 0x42000000, 0x0010bdae, 0x0201f800, + 0x0010ae10, 0x1c01f000, 0x0010a948, 0x0010a95f, + 0x0010a97c, 0x0010a98d, 0x0010a99e, 0x0010a9b1, + 0x0010a9c4, 0x0010a9d8, 0x0010a91f, 0x0010a91f, + 0x0010a91f, 0x0010a91f, 0x0010a91f, 0x0010a91f, + 0x0010a935, 0x42000800, 0x00000022, 0x0401f8d1, + 0x592c0a0a, 0x4805a207, 0x592c0a0b, 0x4805a208, + 0x592c0c0b, 0x4805a408, 0x4a01a006, 0x0c000000, + 0x59340408, 0x48026006, 0x42000800, 0x00000003, + 0x42001000, 0x0000dc00, 0x0201f000, 0x00107000, + 0x42000800, 0x00000022, 0x0401f8be, 0x497b8880, + 0x59a8001f, 0x82000500, 0x0000ffff, 0x4c000000, + 0x0201f800, 0x001013dc, 0x5c000000, 0x48038880, + 0x4a01a006, 0x03000000, 0x4801a207, 0x59a80004, + 0x4801a407, 0x42000800, 0x00000002, 0x42001000, + 0x0000dc00, 0x0201f000, 0x00107000, 0x42000800, + 0x00000022, 0x0401f8a7, 0x592c0a07, 0x592c100f, + 0x592c0010, 0x80080580, 0x82000500, 0x00000003, + 0x0402008c, 0x82080500, 0x00000003, 0x04020089, + 0x42001800, 0x00000002, 0x8c040d06, 0x04020003, + 0x42001800, 0x00000001, 0x4a01a006, 0x04000000, + 0x4809a007, 0x480da008, 0x42000800, 0x00000003, + 0x42001000, 0x0000dc00, 0x0201f000, 0x00107000, + 0x42000800, 0x00000022, 0x0401f88a, 0x59300819, + 0x5930101a, 0x5930181b, 0x4a01a006, 0x06000000, + 0x4805a007, 0x4809a008, 0x480da009, 0x42000800, + 0x00000004, 0x42001000, 0x0000dc00, 0x0201f000, + 0x00107000, 0x42000800, 0x00000022, 0x0401f879, + 0x592c0a0a, 0x592c100b, 0x592c180c, 0x4a01a006, + 0x07000000, 0x4805a207, 0x480da008, 0x4809a009, 0x42000800, 0x00000004, 0x42001000, 0x0000dc00, - 0x0201f000, 0x00106f71, 0x42000800, 0x00000022, - 0x0401f879, 0x592c0a0a, 0x592c100b, 0x592c180c, - 0x4a01a006, 0x07000000, 0x4805a207, 0x480da008, - 0x4809a009, 0x42000800, 0x00000004, 0x42001000, - 0x0000dc00, 0x0201f000, 0x00106f71, 0x42000800, - 0x00000022, 0x0401f868, 0x592c080a, 0x592c1010, - 0x82080500, 0xfffc0003, 0x0402004f, 0x80081104, - 0x4a01a006, 0x08000000, 0x4805a007, 0x4809a008, - 0x42000800, 0x00000003, 0x42001000, 0x0000dc00, - 0x0201f000, 0x00106f71, 0x42000800, 0x00000022, - 0x0401f855, 0x592c080a, 0x592c1010, 0x82080500, - 0xfffc0003, 0x0402003c, 0x80081104, 0x4a01a006, - 0x09000000, 0x4805a007, 0x4809a008, 0x42000800, + 0x0201f000, 0x00107000, 0x42000800, 0x00000022, + 0x0401f868, 0x592c080a, 0x592c1010, 0x82080500, + 0xfffc0003, 0x0402004f, 0x80081104, 0x4a01a006, + 0x08000000, 0x4805a007, 0x4809a008, 0x42000800, 0x00000003, 0x42001000, 0x0000dc00, 0x0201f000, - 0x00106f71, 0x42000800, 0x00000022, 0x0401f842, - 0x592c080a, 0x592c1010, 0x592c180b, 0x82080500, - 0xffff0000, 0x04020028, 0x4a01a006, 0x0a000000, - 0x4805a207, 0x480da407, 0x4809a008, 0x42000800, - 0x00000003, 0x42001000, 0x0000dc00, 0x0201f000, - 0x00106f71, 0x42000800, 0x00000022, 0x0401f82e, - 0x4a01a006, 0x0b000000, 0x42000800, 0x00000001, - 0x42001000, 0x0000dc00, 0x0201f000, 0x00106f71, - 0x59300c03, 0x82040580, 0x000000d8, 0x04000003, - 0x0201f800, 0x0010032d, 0x42000800, 0x00000023, - 0x0401f81d, 0x4a01a006, 0x02000000, 0x42000800, - 0x00000001, 0x42001000, 0x0000dc00, 0x0201f000, - 0x00106f71, 0x592c0006, 0x4803c857, 0x480bc857, - 0x0201f800, 0x0010605d, 0x4a025a07, 0x00000003, - 0x4a025c07, 0x00000002, 0x592c0205, 0x82000500, - 0x000000ff, 0x82000580, 0x0000002b, 0x04020002, - 0x480a5808, 0x0201f800, 0x000203ab, 0x0201f000, - 0x00020a10, 0x81a5a000, 0x4a01a001, 0x0000fc0e, - 0x4979a005, 0x4979a003, 0x4a034800, 0x00000011, - 0x59307002, 0x82040580, 0x00000022, 0x04020007, - 0x4a01a000, 0x2200fc0e, 0x4a01a002, 0xfe290000, - 0x4839a004, 0x1c01f000, 0x82040580, 0x00000023, - 0x02020800, 0x0010032d, 0x4a01a000, 0x2300fc0e, - 0x4a01a002, 0xfe980000, 0x903871c0, 0x4839a004, - 0x1c01f000, 0x4a034800, 0x00000011, 0x81a5a000, - 0x4a01a000, 0x0100fc0e, 0x4a01a001, 0x0000fc0e, - 0x4a01a002, 0xfe000008, 0x41781000, 0x42000800, - 0x01000000, 0x592c0205, 0x82000500, 0x000000ff, - 0x82000580, 0x0000001b, 0x04020006, 0x592c1011, - 0x592c0207, 0x8c00051c, 0x04020002, 0x41780800, - 0x4805a003, 0x59300002, 0x4801a004, 0x4809a005, - 0x59340c08, 0x42001000, 0x00000100, 0x0201f800, - 0x00105f4a, 0x0201f800, 0x001058d0, 0x83180d40, - 0x00000038, 0x42001000, 0x0000c920, 0x0201f000, - 0x00106f90, 0x59300a03, 0x82040480, 0x00000009, - 0x04021004, 0x82040480, 0x00000001, 0x0401f002, - 0x81780040, 0x0c021002, 0x0401f22c, 0x0010a96b, - 0x0010a988, 0x0010a9e8, 0x0010aa2a, 0x0010ab8e, - 0x0010ab8e, 0x0010aa8a, 0x0010aab3, 0x83380580, - 0x00000013, 0x04000015, 0x83380580, 0x00000014, - 0x0402021e, 0x59300c03, 0x4807c857, 0x0201f800, - 0x0010605d, 0x0201f800, 0x0010889a, 0x04000009, - 0x4d2c0000, 0x59325809, 0x4a025a07, 0x00000001, - 0x497a5c07, 0x0201f800, 0x000203ab, 0x5c025800, - 0x0201f000, 0x001070b5, 0x59300c03, 0x82040580, - 0x000000d8, 0x04020209, 0x0201f000, 0x00020a10, - 0x83380480, 0x000000de, 0x04021004, 0x83380480, - 0x000000db, 0x0401f002, 0x81780040, 0x040011ff, - 0x0c01f001, 0x0010a994, 0x0010a9aa, 0x0010a9b4, - 0x59300c03, 0x82040580, 0x000000d1, 0x0400000c, - 0x82040580, 0x000000d5, 0x040201f4, 0x42000800, - 0x80000000, 0x4a026203, 0x00000002, 0x4a026403, - 0x000000d9, 0x0201f000, 0x000209a3, 0x59340408, - 0x48026006, 0x42000800, 0x80000040, 0x4a026203, - 0x00000003, 0x0401f7f6, 0x59300c03, 0x82040480, - 0x000000da, 0x04021004, 0x82040480, 0x000000d0, - 0x0401f002, 0x81780040, 0x0c02101b, 0x0401f1db, - 0x0201f800, 0x0010889a, 0x0402000a, 0x59300c03, - 0x82040580, 0x000000d2, 0x040201d4, 0x42000000, - 0x0010bcab, 0x0401fb60, 0x0201f000, 0x00020a10, - 0x4933c857, 0x59cc1207, 0x80081110, 0x4d2c0000, - 0x59325809, 0x4a025a07, 0x00000003, 0x480a5c07, + 0x00107000, 0x42000800, 0x00000022, 0x0401f855, + 0x592c080a, 0x592c1010, 0x82080500, 0xfffc0003, + 0x0402003c, 0x80081104, 0x4a01a006, 0x09000000, + 0x4805a007, 0x4809a008, 0x42000800, 0x00000003, + 0x42001000, 0x0000dc00, 0x0201f000, 0x00107000, + 0x42000800, 0x00000022, 0x0401f842, 0x592c080a, + 0x592c1010, 0x592c180b, 0x82080500, 0xffff0000, + 0x04020028, 0x4a01a006, 0x0a000000, 0x4805a207, + 0x480da407, 0x4809a008, 0x42000800, 0x00000003, + 0x42001000, 0x0000dc00, 0x0201f000, 0x00107000, + 0x42000800, 0x00000022, 0x0401f82e, 0x4a01a006, + 0x0b000000, 0x42000800, 0x00000001, 0x42001000, + 0x0000dc00, 0x0201f000, 0x00107000, 0x59300c03, + 0x82040580, 0x000000d8, 0x04000003, 0x0201f800, + 0x0010032d, 0x42000800, 0x00000023, 0x0401f81d, + 0x4a01a006, 0x02000000, 0x42000800, 0x00000001, + 0x42001000, 0x0000dc00, 0x0201f000, 0x00107000, + 0x592c0006, 0x4803c857, 0x480bc857, 0x0201f800, + 0x00106102, 0x4a025a07, 0x00000003, 0x4a025c07, + 0x00000002, 0x592c0205, 0x82000500, 0x000000ff, + 0x82000580, 0x0000002b, 0x04020002, 0x480a5808, + 0x0201f800, 0x000203ab, 0x0201f000, 0x00020a10, + 0x81a5a000, 0x4a01a001, 0x0000fc0e, 0x4979a005, + 0x4979a003, 0x4a034800, 0x00000011, 0x59307002, + 0x82040580, 0x00000022, 0x04020007, 0x4a01a000, + 0x2200fc0e, 0x4a01a002, 0xfe290000, 0x4839a004, + 0x1c01f000, 0x82040580, 0x00000023, 0x02020800, + 0x0010032d, 0x4a01a000, 0x2300fc0e, 0x4a01a002, + 0xfe980000, 0x903871c0, 0x4839a004, 0x1c01f000, + 0x4a034800, 0x00000011, 0x81a5a000, 0x4a01a000, + 0x0100fc0e, 0x4a01a001, 0x0000fc0e, 0x4a01a002, + 0xfe000008, 0x41781000, 0x42000800, 0x01000000, + 0x592c0205, 0x82000500, 0x000000ff, 0x82000580, + 0x0000001b, 0x04020006, 0x592c1011, 0x592c0207, + 0x8c00051c, 0x04020002, 0x41780800, 0x4805a003, + 0x59300002, 0x4801a004, 0x4809a005, 0x59340c08, + 0x42001000, 0x00000100, 0x0201f800, 0x00105fef, + 0x0201f800, 0x00105975, 0x83180d40, 0x00000038, + 0x42001000, 0x0000c920, 0x0201f000, 0x0010701f, + 0x59300a03, 0x82040480, 0x00000009, 0x04021004, + 0x82040480, 0x00000001, 0x0401f002, 0x81780040, + 0x0c021002, 0x0401f22c, 0x0010aa5e, 0x0010aa7b, + 0x0010aadb, 0x0010ab1d, 0x0010ac81, 0x0010ac81, + 0x0010ab7d, 0x0010aba6, 0x83380580, 0x00000013, + 0x04000015, 0x83380580, 0x00000014, 0x0402021e, + 0x59300c03, 0x4807c857, 0x0201f800, 0x00106102, + 0x0201f800, 0x00108953, 0x04000009, 0x4d2c0000, + 0x59325809, 0x4a025a07, 0x00000001, 0x497a5c07, 0x0201f800, 0x000203ab, 0x5c025800, 0x0201f000, - 0x00020a10, 0x0010aae2, 0x0010ab8e, 0x0010a9db, - 0x0010a9db, 0x0010ab8e, 0x0010a9db, 0x0010ab8e, - 0x0010a9d7, 0x0010ab8e, 0x0010ab22, 0x41780800, - 0x0401fa83, 0x0201f000, 0x00020a10, 0x0201f800, - 0x0010889a, 0x04000009, 0x4d2c0000, 0x59325809, - 0x4a025a07, 0x00000000, 0x497a5c07, 0x0201f800, - 0x000203ab, 0x5c025800, 0x0201f000, 0x00020a10, - 0x0201f800, 0x0010889a, 0x0400003e, 0x83380580, - 0x0000004a, 0x0400002c, 0x83380580, 0x00000049, - 0x0402019e, 0x4d2c0000, 0x59325809, 0x592c0a05, - 0x82040500, 0x000000ff, 0x82000580, 0x0000001b, - 0x04020019, 0x592c0207, 0x8c00051c, 0x0402000f, - 0x4a025a07, 0x00000040, 0x497a5c07, 0x592c0000, - 0x48026009, 0x0201f800, 0x000203ab, 0x5c025800, - 0x4a026203, 0x00000007, 0x59300009, 0x800001c0, - 0x04020082, 0x1c01f000, 0x59a80073, 0x8400050a, - 0x48035073, 0x4a026203, 0x00000002, 0x5c025800, - 0x1c01f000, 0x4a025a07, 0x00000000, 0x497a5c07, - 0x0201f800, 0x000203ab, 0x5c025800, 0x0201f000, - 0x00020a10, 0x4933c857, 0x0201f800, 0x001062a1, - 0x0201f800, 0x0010603d, 0x4d2c0000, 0x59325809, - 0x4a025a07, 0x00000001, 0x497a5c07, 0x0201f800, - 0x000203ab, 0x5c025800, 0x0201f000, 0x00020a10, - 0x4803c856, 0x0401f165, 0x0201f800, 0x0010889a, - 0x0400002c, 0x83380480, 0x00000054, 0x04021004, - 0x83380480, 0x00000047, 0x0401f002, 0x81780040, - 0x04001006, 0x4d2c0000, 0x59325809, 0x0c01f823, - 0x5c025800, 0x1c01f000, 0x83380580, 0x000000dd, - 0x04020152, 0x4933c857, 0x0201f800, 0x00100bd4, - 0x0201f800, 0x0010889a, 0x04000016, 0x592c0a07, - 0x82040580, 0x00000004, 0x04020006, 0x42000800, - 0x00000001, 0x0401fd6a, 0x0201f000, 0x00020a10, - 0x4d2c0000, 0x59325809, 0x59cc1207, 0x80081110, + 0x00107144, 0x59300c03, 0x82040580, 0x000000d8, + 0x04020209, 0x0201f000, 0x00020a10, 0x83380480, + 0x000000de, 0x04021004, 0x83380480, 0x000000db, + 0x0401f002, 0x81780040, 0x040011ff, 0x0c01f001, + 0x0010aa87, 0x0010aa9d, 0x0010aaa7, 0x59300c03, + 0x82040580, 0x000000d1, 0x0400000c, 0x82040580, + 0x000000d5, 0x040201f4, 0x42000800, 0x80000000, + 0x4a026203, 0x00000002, 0x4a026403, 0x000000d9, + 0x0201f000, 0x000209a3, 0x59340408, 0x48026006, + 0x42000800, 0x80000040, 0x4a026203, 0x00000003, + 0x0401f7f6, 0x59300c03, 0x82040480, 0x000000da, + 0x04021004, 0x82040480, 0x000000d0, 0x0401f002, + 0x81780040, 0x0c02101b, 0x0401f1db, 0x0201f800, + 0x00108953, 0x0402000a, 0x59300c03, 0x82040580, + 0x000000d2, 0x040201d4, 0x42000000, 0x0010bdab, + 0x0401fb60, 0x0201f000, 0x00020a10, 0x4933c857, + 0x59cc1207, 0x80081110, 0x4d2c0000, 0x59325809, 0x4a025a07, 0x00000003, 0x480a5c07, 0x0201f800, 0x000203ab, 0x5c025800, 0x0201f000, 0x00020a10, - 0x4803c856, 0x0401f135, 0x0010aa86, 0x0010aa67, - 0x0010ab8e, 0x0010ab8e, 0x0010ab8e, 0x0010ab8e, - 0x0010ab8e, 0x0010ab8e, 0x0010ab8e, 0x0010ab8e, - 0x0010ab8e, 0x0010ab8e, 0x0010aa67, 0x59300812, - 0x82040500, 0xffff0000, 0x0402001c, 0x42001000, - 0x00000000, 0x592c0a07, 0x82040580, 0x00000004, - 0x0402000e, 0x82080580, 0x00000007, 0x04000007, - 0x59300812, 0x800409c0, 0x04000004, 0x4807c857, - 0x42001000, 0x00000015, 0x40080800, 0x0401fd38, - 0x0201f000, 0x00020a10, 0x59300812, 0x48065808, - 0x480a5a07, 0x497a5c07, 0x0201f800, 0x000203ab, - 0x0201f000, 0x00020a10, 0x4803c856, 0x42001000, - 0x00000007, 0x0401f7e4, 0x0201f800, 0x0010889a, - 0x0400001b, 0x83380580, 0x000000d9, 0x040200ff, - 0x59340408, 0x48026006, 0x4a026403, 0x000000d9, - 0x0201f800, 0x00020154, 0x59306809, 0x58340207, - 0x8c00051c, 0x04020006, 0x42000800, 0x80000040, - 0x4a026203, 0x00000003, 0x0401f005, 0x42000800, - 0x80000000, 0x4a026203, 0x00000002, 0x4a026403, - 0x000000d9, 0x0201f000, 0x000209a3, 0x4803c856, - 0x83380580, 0x000000dd, 0x040200e4, 0x42001000, - 0x0000800f, 0x42001800, 0x00000005, 0x59cc2207, - 0x80102110, 0x0201f000, 0x001031eb, 0x83380480, - 0x000000df, 0x04021004, 0x83380480, 0x000000d0, - 0x0401f002, 0x81780040, 0x040010d4, 0x4933c857, - 0x493bc857, 0x59340a08, 0x48066006, 0x0c01f001, - 0x0010aad4, 0x0010aad0, 0x0010aad4, 0x0010aad4, - 0x0010aada, 0x0010aad2, 0x0010aada, 0x0010aad4, - 0x0010aacf, 0x0010aacf, 0x0010aacf, 0x0010aacf, - 0x0010aacf, 0x0010aacf, 0x0010aada, 0x0401f0bf, - 0x59340408, 0x48026006, 0x0201f800, 0x00020154, - 0x4a026203, 0x00000002, 0x493a6403, 0x42000800, - 0x80000000, 0x0401f4e5, 0x0201f800, 0x00020111, - 0x4a026203, 0x00000004, 0x493a6403, 0x42000800, - 0x80000000, 0x0401f4dd, 0x59cc0207, 0x59cc0c07, - 0x59cc1008, 0x59cc1809, 0x59cc220a, 0x59cc2c0a, - 0x59cc300b, 0x4a026c00, 0x00000404, 0x48026c04, - 0x48038893, 0x48035012, 0x48066a04, 0x480a6806, - 0x480e6807, 0x48126a08, 0x48166c08, 0x8c183500, - 0x0400000d, 0x59cc200d, 0x59cc280d, 0x4813c857, - 0x4817c857, 0x59cc200c, 0x42001000, 0x0000800f, - 0x42001800, 0x00000001, 0x901029c0, 0x0201f800, - 0x001031ec, 0x59a80873, 0x42001800, 0x00000003, - 0x84040d4e, 0x59342007, 0x8c183502, 0x0402000c, - 0x82040d00, 0xffffff7b, 0x8c183504, 0x04020004, - 0x42001800, 0x00000002, 0x0401f004, 0x42001800, - 0x00000004, 0x84040d44, 0x59342006, 0x48075073, - 0x42001000, 0x0000800f, 0x82102d00, 0xffff0000, - 0x80142920, 0x82102500, 0x0000ffff, 0x0201f800, - 0x001031ec, 0x59c80040, 0x84000534, 0x48039040, - 0x0201f000, 0x00020a10, 0x0201f800, 0x0010889a, - 0x04000023, 0x4d2c0000, 0x59325809, 0x592c0a05, - 0x82040d00, 0x000000ff, 0x82040580, 0x0000001b, - 0x04020019, 0x592c0a07, 0x8c040d04, 0x04020003, - 0x0201f800, 0x0010a616, 0x59340009, 0x4802580a, - 0x8c040d06, 0x04020007, 0x48026806, 0x59a80073, - 0x8400054c, 0x84000508, 0x48035073, 0x0401f002, - 0x48026807, 0x4a025a07, 0x00000000, 0x497a5c07, - 0x0201f800, 0x000203ab, 0x5c025800, 0x0201f000, - 0x00020a10, 0x497a5808, 0x0401f7f7, 0x4803c856, - 0x0401f046, 0x59300a03, 0x82040480, 0x00000009, - 0x04021004, 0x82040480, 0x00000001, 0x0401f002, - 0x81780040, 0x0c021002, 0x0401f03c, 0x0010ab5b, - 0x0010ab8e, 0x0010ab8e, 0x0010ab8e, 0x0010ab8e, - 0x0010ab8e, 0x0010ab8e, 0x0010ab67, 0x83380580, - 0x00000013, 0x04000008, 0x83380580, 0x00000014, - 0x0402002e, 0x59300c03, 0x4807c857, 0x0201f800, - 0x0010605d, 0x0201f000, 0x00020a10, 0x83380580, - 0x000000da, 0x04020025, 0x4933c857, 0x493bc857, - 0x59cc0808, 0x59cc1007, 0x59a81873, 0x820c1d00, - 0xfffffffc, 0x82040580, 0x00000000, 0x04020002, - 0x840c1d42, 0x82080580, 0x00000000, 0x04020002, - 0x840c1d40, 0x480f5073, 0x480fc857, 0x836c0580, - 0x00000001, 0x0400000a, 0x4202d800, 0x00000004, - 0x4a035038, 0x00000000, 0x497b5058, 0x42000000, - 0x00000080, 0x0201f800, 0x00101364, 0x4a026403, - 0x000000d8, 0x4a026203, 0x00000001, 0x42000800, - 0x80000040, 0x0401f431, 0x4933c857, 0x493bc857, - 0x59300203, 0x4803c857, 0x59300403, 0x4803c857, - 0x42000000, 0x0010bcad, 0x0401f987, 0x1c01f000, - 0x4933c857, 0x4d2c0000, 0x4d3c0000, 0x417a5800, - 0x417a7800, 0x0201f800, 0x0010889a, 0x04000003, - 0x59325809, 0x592e7a09, 0x0401f81a, 0x82000540, - 0x00000001, 0x5c027800, 0x5c025800, 0x1c01f000, - 0x4933c857, 0x4d2c0000, 0x4d3c0000, 0x42027800, - 0x00000040, 0x42000000, 0x0010bca8, 0x0401f96e, - 0x417a5800, 0x0201f800, 0x0010889a, 0x04000005, - 0x59325809, 0x592e7a09, 0x853e7d4c, 0x493e5a09, - 0x0401f804, 0x5c027800, 0x5c025800, 0x1c01f000, - 0x0201f800, 0x0010610d, 0x4df00000, 0x0401f88b, - 0x4803c857, 0x82000c80, 0x00000009, 0x04021006, - 0x0c01f808, 0x5c03e000, 0x02000800, 0x001060fa, - 0x1c01f000, 0x42000000, 0x00000006, 0x0401f7f9, - 0x0010ac21, 0x0010ac22, 0x0010abdb, 0x0010ac38, - 0x0010ac43, 0x0010abd5, 0x0010abd5, 0x0010abd5, - 0x0010ac21, 0x4d380000, 0x417a7000, 0x0401ffb7, - 0x5c027000, 0x0201f000, 0x001070b5, 0x812e59c0, - 0x04000021, 0x42001000, 0x00000002, 0x833c0500, - 0x00000081, 0x04020007, 0x42001000, 0x00000006, - 0x8d3e7d0c, 0x04020003, 0x42001000, 0x00000004, - 0x592c0a07, 0x82040580, 0x00000004, 0x04020006, - 0x40080800, 0x0201f800, 0x0010a7b3, 0x0201f000, - 0x001070b5, 0x480a5a07, 0x0201f800, 0x000203ab, - 0x59300403, 0x82000580, 0x000000d0, 0x04020004, - 0x5930100a, 0x4a001400, 0x00000707, 0x0201f000, - 0x001070b5, 0x59300c03, 0x82040580, 0x000000d7, - 0x04020005, 0x42000800, 0x00000004, 0x0401f858, - 0x0401f7f0, 0x8d3e7d0c, 0x040007ee, 0x5932680a, - 0x59300816, 0x59340412, 0x80040580, 0x04020007, - 0x42000000, 0x0010bca9, 0x0401f90f, 0x0201f800, - 0x0010a616, 0x0401f7e3, 0x4933c857, 0x80040800, - 0x48066016, 0x4d380000, 0x59327403, 0x83380580, - 0x000000d0, 0x04020003, 0x4a038893, 0x00000001, - 0x4a026203, 0x00000008, 0x0201f800, 0x00020a34, - 0x5c027000, 0x1c01f000, 0x8d3e7d0c, 0x04000006, - 0x59300407, 0x82000580, 0x00000013, 0x02000000, - 0x00108655, 0x598c000f, 0x4803c857, 0x81300580, - 0x04020004, 0x0201f800, 0x00106388, 0x040207ac, - 0x0201f800, 0x0010a7f0, 0x040007a9, 0x4803c856, - 0x0201f800, 0x00106018, 0x040007a5, 0x0401f79e, - 0x0201f800, 0x001085a4, 0x04020004, 0x0201f800, - 0x00106351, 0x0402079e, 0x0201f800, 0x0010e1ca, - 0x80c40040, 0x040207f2, 0x0401f799, 0x812e59c0, - 0x04000006, 0x0201f800, 0x001060fa, 0x0201f800, - 0x00100bd4, 0x0401f792, 0x59300004, 0x8c00053e, - 0x0400000d, 0x8c00050c, 0x0402000b, 0x59306c03, - 0x82340580, 0x000000d9, 0x04020004, 0x42000000, - 0x00000003, 0x0401f005, 0x42000000, 0x00000001, - 0x0401f002, 0x59300203, 0x1c01f000, 0x5931d822, - 0x58ef400a, 0x58ee580c, 0x58ec0008, 0x48074407, - 0x0801f800, 0x1c01f000, 0x4817c857, 0x4c000000, - 0x4c040000, 0x8c142d2a, 0x04000004, 0x5988011e, - 0x80000000, 0x4803111e, 0x8c142d2e, 0x04000004, - 0x5988011f, 0x80000000, 0x4803111f, 0x8c142d2c, - 0x04000013, 0x40140000, 0x82000500, 0x00070000, - 0x82000d80, 0x00030000, 0x0400000d, 0x82000d80, - 0x00040000, 0x0400000a, 0x82000d80, 0x00050000, - 0x04000007, 0x59880005, 0x80000000, 0x48031005, - 0x59880120, 0x80000000, 0x48031120, 0x5c000800, - 0x5c000000, 0x1c01f000, 0x4817c857, 0x4c000000, - 0x4c040000, 0x8c142d2a, 0x04000004, 0x59880121, - 0x80000000, 0x48031121, 0x8c142d2e, 0x04000004, - 0x59880122, 0x80000000, 0x48031122, 0x8c142d2c, - 0x04000013, 0x40140000, 0x82000500, 0x00070000, - 0x82000d80, 0x00030000, 0x0400000d, 0x82000d80, - 0x00040000, 0x0400000a, 0x82000d80, 0x00050000, - 0x04000007, 0x59880005, 0x80000000, 0x48031005, - 0x59880123, 0x80000000, 0x48031123, 0x5c000800, + 0x0010abd5, 0x0010ac81, 0x0010aace, 0x0010aace, + 0x0010ac81, 0x0010aace, 0x0010ac81, 0x0010aaca, + 0x0010ac81, 0x0010ac15, 0x41780800, 0x0401fa83, + 0x0201f000, 0x00020a10, 0x0201f800, 0x00108953, + 0x04000009, 0x4d2c0000, 0x59325809, 0x4a025a07, + 0x00000000, 0x497a5c07, 0x0201f800, 0x000203ab, + 0x5c025800, 0x0201f000, 0x00020a10, 0x0201f800, + 0x00108953, 0x0400003e, 0x83380580, 0x0000004a, + 0x0400002c, 0x83380580, 0x00000049, 0x0402019e, + 0x4d2c0000, 0x59325809, 0x592c0a05, 0x82040500, + 0x000000ff, 0x82000580, 0x0000001b, 0x04020019, + 0x592c0207, 0x8c00051c, 0x0402000f, 0x4a025a07, + 0x00000040, 0x497a5c07, 0x592c0000, 0x48026009, + 0x0201f800, 0x000203ab, 0x5c025800, 0x4a026203, + 0x00000007, 0x59300009, 0x800001c0, 0x04020082, + 0x1c01f000, 0x59a80073, 0x8400050a, 0x48035073, + 0x4a026203, 0x00000002, 0x5c025800, 0x1c01f000, + 0x4a025a07, 0x00000000, 0x497a5c07, 0x0201f800, + 0x000203ab, 0x5c025800, 0x0201f000, 0x00020a10, + 0x4933c857, 0x0201f800, 0x00106346, 0x0201f800, + 0x001060e2, 0x4d2c0000, 0x59325809, 0x4a025a07, + 0x00000001, 0x497a5c07, 0x0201f800, 0x000203ab, + 0x5c025800, 0x0201f000, 0x00020a10, 0x4803c856, + 0x0401f165, 0x0201f800, 0x00108953, 0x0400002c, + 0x83380480, 0x00000054, 0x04021004, 0x83380480, + 0x00000047, 0x0401f002, 0x81780040, 0x04001006, + 0x4d2c0000, 0x59325809, 0x0c01f823, 0x5c025800, + 0x1c01f000, 0x83380580, 0x000000dd, 0x04020152, + 0x4933c857, 0x0201f800, 0x00100bd5, 0x0201f800, + 0x00108953, 0x04000016, 0x592c0a07, 0x82040580, + 0x00000004, 0x04020006, 0x42000800, 0x00000001, + 0x0401fd6a, 0x0201f000, 0x00020a10, 0x4d2c0000, + 0x59325809, 0x59cc1207, 0x80081110, 0x4a025a07, + 0x00000003, 0x480a5c07, 0x0201f800, 0x000203ab, + 0x5c025800, 0x0201f000, 0x00020a10, 0x4803c856, + 0x0401f135, 0x0010ab79, 0x0010ab5a, 0x0010ac81, + 0x0010ac81, 0x0010ac81, 0x0010ac81, 0x0010ac81, + 0x0010ac81, 0x0010ac81, 0x0010ac81, 0x0010ac81, + 0x0010ac81, 0x0010ab5a, 0x59300812, 0x82040500, + 0xffff0000, 0x0402001c, 0x42001000, 0x00000000, + 0x592c0a07, 0x82040580, 0x00000004, 0x0402000e, + 0x82080580, 0x00000007, 0x04000007, 0x59300812, + 0x800409c0, 0x04000004, 0x4807c857, 0x42001000, + 0x00000015, 0x40080800, 0x0401fd38, 0x0201f000, + 0x00020a10, 0x59300812, 0x48065808, 0x480a5a07, + 0x497a5c07, 0x0201f800, 0x000203ab, 0x0201f000, + 0x00020a10, 0x4803c856, 0x42001000, 0x00000007, + 0x0401f7e4, 0x0201f800, 0x00108953, 0x0400001b, + 0x83380580, 0x000000d9, 0x040200ff, 0x59340408, + 0x48026006, 0x4a026403, 0x000000d9, 0x0201f800, + 0x00020154, 0x59306809, 0x58340207, 0x8c00051c, + 0x04020006, 0x42000800, 0x80000040, 0x4a026203, + 0x00000003, 0x0401f005, 0x42000800, 0x80000000, + 0x4a026203, 0x00000002, 0x4a026403, 0x000000d9, + 0x0201f000, 0x000209a3, 0x4803c856, 0x83380580, + 0x000000dd, 0x040200e4, 0x42001000, 0x0000800f, + 0x42001800, 0x00000005, 0x59cc2207, 0x80102110, + 0x0201f000, 0x001031f5, 0x83380480, 0x000000df, + 0x04021004, 0x83380480, 0x000000d0, 0x0401f002, + 0x81780040, 0x040010d4, 0x4933c857, 0x493bc857, + 0x59340a08, 0x48066006, 0x0c01f001, 0x0010abc7, + 0x0010abc3, 0x0010abc7, 0x0010abc7, 0x0010abcd, + 0x0010abc5, 0x0010abcd, 0x0010abc7, 0x0010abc2, + 0x0010abc2, 0x0010abc2, 0x0010abc2, 0x0010abc2, + 0x0010abc2, 0x0010abcd, 0x0401f0bf, 0x59340408, + 0x48026006, 0x0201f800, 0x00020154, 0x4a026203, + 0x00000002, 0x493a6403, 0x42000800, 0x80000000, + 0x0401f4e5, 0x0201f800, 0x00020111, 0x4a026203, + 0x00000004, 0x493a6403, 0x42000800, 0x80000000, + 0x0401f4dd, 0x59cc0207, 0x59cc0c07, 0x59cc1008, + 0x59cc1809, 0x59cc220a, 0x59cc2c0a, 0x59cc300b, + 0x4a026c00, 0x00000404, 0x48026c04, 0x48038893, + 0x48035012, 0x48066a04, 0x480a6806, 0x480e6807, + 0x48126a08, 0x48166c08, 0x8c183500, 0x0400000d, + 0x59cc200d, 0x59cc280d, 0x4813c857, 0x4817c857, + 0x59cc200c, 0x42001000, 0x0000800f, 0x42001800, + 0x00000001, 0x901029c0, 0x0201f800, 0x001031f6, + 0x59a80873, 0x42001800, 0x00000003, 0x84040d4e, + 0x59342007, 0x8c183502, 0x0402000c, 0x82040d00, + 0xffffff7b, 0x8c183504, 0x04020004, 0x42001800, + 0x00000002, 0x0401f004, 0x42001800, 0x00000004, + 0x84040d44, 0x59342006, 0x48075073, 0x42001000, + 0x0000800f, 0x82102d00, 0xffff0000, 0x80142920, + 0x82102500, 0x0000ffff, 0x0201f800, 0x001031f6, + 0x59c80040, 0x84000534, 0x48039040, 0x0201f000, + 0x00020a10, 0x0201f800, 0x00108953, 0x04000023, + 0x4d2c0000, 0x59325809, 0x592c0a05, 0x82040d00, + 0x000000ff, 0x82040580, 0x0000001b, 0x04020019, + 0x592c0a07, 0x8c040d04, 0x04020003, 0x0201f800, + 0x0010a709, 0x59340009, 0x4802580a, 0x8c040d06, + 0x04020007, 0x48026806, 0x59a80073, 0x8400054c, + 0x84000508, 0x48035073, 0x0401f002, 0x48026807, + 0x4a025a07, 0x00000000, 0x497a5c07, 0x0201f800, + 0x000203ab, 0x5c025800, 0x0201f000, 0x00020a10, + 0x497a5808, 0x0401f7f7, 0x4803c856, 0x0401f046, + 0x59300a03, 0x82040480, 0x00000009, 0x04021004, + 0x82040480, 0x00000001, 0x0401f002, 0x81780040, + 0x0c021002, 0x0401f03c, 0x0010ac4e, 0x0010ac81, + 0x0010ac81, 0x0010ac81, 0x0010ac81, 0x0010ac81, + 0x0010ac81, 0x0010ac5a, 0x83380580, 0x00000013, + 0x04000008, 0x83380580, 0x00000014, 0x0402002e, + 0x59300c03, 0x4807c857, 0x0201f800, 0x00106102, + 0x0201f000, 0x00020a10, 0x83380580, 0x000000da, + 0x04020025, 0x4933c857, 0x493bc857, 0x59cc0808, + 0x59cc1007, 0x59a81873, 0x820c1d00, 0xfffffffc, + 0x82040580, 0x00000000, 0x04020002, 0x840c1d42, + 0x82080580, 0x00000000, 0x04020002, 0x840c1d40, + 0x480f5073, 0x480fc857, 0x836c0580, 0x00000001, + 0x0400000a, 0x4202d800, 0x00000004, 0x4a035038, + 0x00000000, 0x497b5058, 0x42000000, 0x00000080, + 0x0201f800, 0x00101365, 0x4a026403, 0x000000d8, + 0x4a026203, 0x00000001, 0x42000800, 0x80000040, + 0x0401f431, 0x4933c857, 0x493bc857, 0x59300203, + 0x4803c857, 0x59300403, 0x4803c857, 0x42000000, + 0x0010bdad, 0x0401f987, 0x1c01f000, 0x4933c857, + 0x4d2c0000, 0x4d3c0000, 0x417a5800, 0x417a7800, + 0x0201f800, 0x00108953, 0x04000003, 0x59325809, + 0x592e7a09, 0x0401f81a, 0x82000540, 0x00000001, + 0x5c027800, 0x5c025800, 0x1c01f000, 0x4933c857, + 0x4d2c0000, 0x4d3c0000, 0x42027800, 0x00000040, + 0x42000000, 0x0010bda8, 0x0401f96e, 0x417a5800, + 0x0201f800, 0x00108953, 0x04000005, 0x59325809, + 0x592e7a09, 0x853e7d4c, 0x493e5a09, 0x0401f804, + 0x5c027800, 0x5c025800, 0x1c01f000, 0x0201f800, + 0x001061b2, 0x4df00000, 0x0401f88b, 0x4803c857, + 0x82000c80, 0x00000009, 0x04021006, 0x0c01f808, + 0x5c03e000, 0x02000800, 0x0010619f, 0x1c01f000, + 0x42000000, 0x00000006, 0x0401f7f9, 0x0010ad14, + 0x0010ad15, 0x0010acce, 0x0010ad2b, 0x0010ad36, + 0x0010acc8, 0x0010acc8, 0x0010acc8, 0x0010ad14, + 0x4d380000, 0x417a7000, 0x0401ffb7, 0x5c027000, + 0x0201f000, 0x00107144, 0x812e59c0, 0x04000021, + 0x42001000, 0x00000002, 0x833c0500, 0x00000081, + 0x04020007, 0x42001000, 0x00000006, 0x8d3e7d0c, + 0x04020003, 0x42001000, 0x00000004, 0x592c0a07, + 0x82040580, 0x00000004, 0x04020006, 0x40080800, + 0x0201f800, 0x0010a8a6, 0x0201f000, 0x00107144, + 0x480a5a07, 0x0201f800, 0x000203ab, 0x59300403, + 0x82000580, 0x000000d0, 0x04020004, 0x5930100a, + 0x4a001400, 0x00000707, 0x0201f000, 0x00107144, + 0x59300c03, 0x82040580, 0x000000d7, 0x04020005, + 0x42000800, 0x00000004, 0x0401f858, 0x0401f7f0, + 0x8d3e7d0c, 0x040007ee, 0x5932680a, 0x59300816, + 0x59340412, 0x80040580, 0x04020007, 0x42000000, + 0x0010bda9, 0x0401f90f, 0x0201f800, 0x0010a709, + 0x0401f7e3, 0x4933c857, 0x80040800, 0x48066016, + 0x4d380000, 0x59327403, 0x83380580, 0x000000d0, + 0x04020003, 0x4a038893, 0x00000001, 0x4a026203, + 0x00000008, 0x0201f800, 0x00020a34, 0x5c027000, + 0x1c01f000, 0x8d3e7d0c, 0x04000006, 0x59300407, + 0x82000580, 0x00000013, 0x02000000, 0x0010870a, + 0x598c000f, 0x4803c857, 0x81300580, 0x04020004, + 0x0201f800, 0x0010642d, 0x040207ac, 0x0201f800, + 0x0010a8e3, 0x040007a9, 0x4803c856, 0x0201f800, + 0x001060bd, 0x040007a5, 0x0401f79e, 0x0201f800, + 0x00108659, 0x04020004, 0x0201f800, 0x001063f6, + 0x0402079e, 0x0201f800, 0x0010e2da, 0x80c40040, + 0x040207f2, 0x0401f799, 0x812e59c0, 0x04000006, + 0x0201f800, 0x0010619f, 0x0201f800, 0x00100bd5, + 0x0401f792, 0x59300004, 0x8c00053e, 0x0400000d, + 0x8c00050c, 0x0402000b, 0x59306c03, 0x82340580, + 0x000000d9, 0x04020004, 0x42000000, 0x00000003, + 0x0401f005, 0x42000000, 0x00000001, 0x0401f002, + 0x59300203, 0x1c01f000, 0x5931d822, 0x58ef400a, + 0x58ee580c, 0x58ec0008, 0x48074407, 0x0801f800, + 0x1c01f000, 0x4817c857, 0x4c000000, 0x4c040000, + 0x8c142d2a, 0x04000004, 0x5988011e, 0x80000000, + 0x4803111e, 0x8c142d2e, 0x04000004, 0x5988011f, + 0x80000000, 0x4803111f, 0x8c142d2c, 0x04000013, + 0x40140000, 0x82000500, 0x00070000, 0x82000d80, + 0x00030000, 0x0400000d, 0x82000d80, 0x00040000, + 0x0400000a, 0x82000d80, 0x00050000, 0x04000007, + 0x59880005, 0x80000000, 0x48031005, 0x59880120, + 0x80000000, 0x48031120, 0x5c000800, 0x5c000000, + 0x1c01f000, 0x4817c857, 0x4c000000, 0x4c040000, + 0x8c142d2a, 0x04000004, 0x59880121, 0x80000000, + 0x48031121, 0x8c142d2e, 0x04000004, 0x59880122, + 0x80000000, 0x48031122, 0x8c142d2c, 0x04000013, + 0x40140000, 0x82000500, 0x00070000, 0x82000d80, + 0x00030000, 0x0400000d, 0x82000d80, 0x00040000, + 0x0400000a, 0x82000d80, 0x00050000, 0x04000007, + 0x59880005, 0x80000000, 0x48031005, 0x59880123, + 0x80000000, 0x48031123, 0x5c000800, 0x5c000000, + 0x1c01f000, 0x4807c857, 0x4c000000, 0x8c040d2c, + 0x04000004, 0x5988010c, 0x80000000, 0x4803110c, + 0x8c040d2a, 0x04000004, 0x5988010d, 0x80000000, + 0x4803110d, 0x8c040d28, 0x04000004, 0x5988010e, + 0x80000000, 0x4803110e, 0x8c040d26, 0x04000004, + 0x5988010f, 0x80000000, 0x4803110f, 0x8c040d24, + 0x04000004, 0x59880110, 0x80000000, 0x48031110, + 0x8c040d22, 0x04000004, 0x59880111, 0x80000000, + 0x48031111, 0x8c040d20, 0x04000004, 0x59880112, + 0x80000000, 0x48031112, 0x5c000000, 0x1c01f000, + 0x4807c857, 0x4c000000, 0x59880113, 0x80000000, + 0x48031113, 0x5c000000, 0x1c01f000, 0x4807c857, + 0x4c000000, 0x8c040d1c, 0x04000004, 0x59880114, + 0x80000000, 0x48031114, 0x8c040d1a, 0x04000004, + 0x59880115, 0x80000000, 0x48031115, 0x5c000000, + 0x1c01f000, 0x4807c857, 0x4c000000, 0x8c040d18, + 0x04000004, 0x59880116, 0x80000000, 0x48031116, + 0x8c040d16, 0x04000004, 0x59880117, 0x80000000, + 0x48031117, 0x8c040d14, 0x04000004, 0x59880118, + 0x80000000, 0x48031118, 0x5c000000, 0x1c01f000, + 0x4807c857, 0x4c000000, 0x8c040d10, 0x04000004, + 0x59880119, 0x80000000, 0x48031119, 0x8c040d0c, + 0x04000004, 0x5988011a, 0x80000000, 0x4803111a, 0x5c000000, 0x1c01f000, 0x4807c857, 0x4c000000, - 0x8c040d2c, 0x04000004, 0x5988010c, 0x80000000, - 0x4803110c, 0x8c040d2a, 0x04000004, 0x5988010d, - 0x80000000, 0x4803110d, 0x8c040d28, 0x04000004, - 0x5988010e, 0x80000000, 0x4803110e, 0x8c040d26, - 0x04000004, 0x5988010f, 0x80000000, 0x4803110f, - 0x8c040d24, 0x04000004, 0x59880110, 0x80000000, - 0x48031110, 0x8c040d22, 0x04000004, 0x59880111, - 0x80000000, 0x48031111, 0x8c040d20, 0x04000004, - 0x59880112, 0x80000000, 0x48031112, 0x5c000000, - 0x1c01f000, 0x4807c857, 0x4c000000, 0x59880113, - 0x80000000, 0x48031113, 0x5c000000, 0x1c01f000, - 0x4807c857, 0x4c000000, 0x8c040d1c, 0x04000004, - 0x59880114, 0x80000000, 0x48031114, 0x8c040d1a, - 0x04000004, 0x59880115, 0x80000000, 0x48031115, - 0x5c000000, 0x1c01f000, 0x4807c857, 0x4c000000, - 0x8c040d18, 0x04000004, 0x59880116, 0x80000000, - 0x48031116, 0x8c040d16, 0x04000004, 0x59880117, - 0x80000000, 0x48031117, 0x8c040d14, 0x04000004, - 0x59880118, 0x80000000, 0x48031118, 0x5c000000, - 0x1c01f000, 0x4807c857, 0x4c000000, 0x8c040d10, - 0x04000004, 0x59880119, 0x80000000, 0x48031119, - 0x8c040d0c, 0x04000004, 0x5988011a, 0x80000000, - 0x4803111a, 0x5c000000, 0x1c01f000, 0x4807c857, - 0x4c000000, 0x8c040d08, 0x04000004, 0x5988011b, - 0x80000000, 0x4803111b, 0x8c040d04, 0x04000004, - 0x5988011c, 0x80000000, 0x4803111c, 0x5c000000, - 0x1c01f000, 0x4807c856, 0x4c000000, 0x598800e5, - 0x80000000, 0x480310e5, 0x5c000000, 0x1c01f000, - 0x40680000, 0x5c036000, 0x4db00000, 0x49b3c857, - 0x4c040000, 0x50000800, 0x80040800, 0x04001002, - 0x44040000, 0x5c000800, 0x1c01f000, 0x480fc857, - 0x4c000000, 0x820c0580, 0x00000000, 0x04020004, - 0x42000000, 0x0010bbdf, 0x0401f014, 0x820c0580, - 0x00001001, 0x04020004, 0x42000000, 0x0010bbe0, - 0x0401f00e, 0x820c0580, 0x00001002, 0x04020004, - 0x42000000, 0x0010bbe1, 0x0401f008, 0x820c0c80, - 0x0000201c, 0x02021800, 0x0010032d, 0x820c0500, - 0x0000001f, 0x0c01f804, 0x0401ffdb, 0x5c000000, - 0x1c01f000, 0x0010ad61, 0x0010ad64, 0x0010ad67, - 0x0010ad6a, 0x0010ad6d, 0x0010ad70, 0x0010ad73, - 0x0010ad76, 0x0010ad79, 0x0010ad7c, 0x0010ad7f, - 0x0010ad82, 0x0010ad85, 0x0010ad88, 0x0010ad8b, - 0x0010ad8e, 0x0010ad91, 0x0010ad94, 0x0010ad97, - 0x0010ad9a, 0x0010ad9d, 0x0010ada0, 0x0010ada3, - 0x0010ada6, 0x0010ada9, 0x0010adac, 0x0010adaf, - 0x0010adb2, 0x42000000, 0x0010bbe2, 0x1c01f000, - 0x42000000, 0x0010bbe3, 0x1c01f000, 0x42000000, - 0x0010bbe4, 0x1c01f000, 0x42000000, 0x0010bbe5, - 0x1c01f000, 0x42000000, 0x0010bbe6, 0x1c01f000, - 0x42000000, 0x0010bbe7, 0x1c01f000, 0x42000000, - 0x0010bbe8, 0x1c01f000, 0x42000000, 0x0010bbe9, - 0x1c01f000, 0x42000000, 0x0010bbea, 0x1c01f000, - 0x42000000, 0x0010bbeb, 0x1c01f000, 0x42000000, - 0x0010bbec, 0x1c01f000, 0x42000000, 0x0010bbed, - 0x1c01f000, 0x42000000, 0x0010bbee, 0x1c01f000, - 0x42000000, 0x0010bbef, 0x1c01f000, 0x42000000, - 0x0010bbf0, 0x1c01f000, 0x42000000, 0x0010bbf1, - 0x1c01f000, 0x42000000, 0x0010bbf2, 0x1c01f000, - 0x42000000, 0x0010bbf3, 0x1c01f000, 0x42000000, - 0x0010bbf4, 0x1c01f000, 0x42000000, 0x0010bbf5, - 0x1c01f000, 0x42000000, 0x0010bbf6, 0x1c01f000, - 0x42000000, 0x0010bbf7, 0x1c01f000, 0x42000000, - 0x0010bbf8, 0x1c01f000, 0x42000000, 0x0010bbf9, - 0x1c01f000, 0x42000000, 0x0010bbfa, 0x1c01f000, - 0x42000000, 0x0010bbfb, 0x1c01f000, 0x42000000, - 0x0010bbfc, 0x1c01f000, 0x42000000, 0x0010bbfd, - 0x1c01f000, 0x480fc857, 0x4c000000, 0x820c0580, - 0x00000001, 0x04020004, 0x42000000, 0x0010bb62, - 0x0401f012, 0x820c0580, 0x00000002, 0x04020004, - 0x42000000, 0x0010bb63, 0x0401f00c, 0x820c0580, - 0x00000003, 0x04020004, 0x42000000, 0x0010bb64, - 0x0401f006, 0x820c0580, 0x00000004, 0x04020004, - 0x42000000, 0x0010bb65, 0x0401ff4f, 0x5c000000, - 0x1c01f000, 0x4c000000, 0x59a8021b, 0x4803c857, - 0x8c000502, 0x04000010, 0x8c000506, 0x04000004, - 0x42000000, 0x0010bb6d, 0x0401f012, 0x8c00050a, - 0x04000004, 0x42000000, 0x0010bb6c, 0x0401f00d, - 0x8c000508, 0x04000004, 0x42000000, 0x0010bb6f, - 0x0401f008, 0x0201f800, 0x00104716, 0x04000006, - 0x8c000506, 0x04020004, 0x42000000, 0x0010bb6e, - 0x0401ff31, 0x5c000000, 0x1c01f000, 0x8058b1c0, - 0x02000800, 0x0010032d, 0x5450a800, 0x8050a000, - 0x8054a800, 0x8058b040, 0x040207fc, 0x1c01f000, - 0x8058b1c0, 0x02000800, 0x0010032d, 0x4450a800, - 0x8054a800, 0x8058b040, 0x040207fd, 0x1c01f000, - 0x4813c857, 0x4817c857, 0x40140000, 0x80100480, - 0x02021800, 0x0010032d, 0x497bc841, 0x42007800, - 0x000000ff, 0x40100000, 0x80140480, 0x82006d00, - 0xffffff00, 0x04020002, 0x40007800, 0x4813c840, - 0x483fc842, 0x04011000, 0x40100000, 0x803c2400, - 0x40100000, 0x80140580, 0x040207f3, 0x45782800, - 0x1c01f000, 0x8058b1c0, 0x02000800, 0x0010032d, - 0x50500000, 0x9c0001c0, 0x4400a800, 0x8050a000, - 0x8054a800, 0x8058b040, 0x040207fa, 0x1c01f000, - 0x4c000000, 0x59a80007, 0x8c00051c, 0x5c000000, - 0x1c01f000, 0x0401f807, 0x42018800, 0x00000001, - 0x04020003, 0x42018800, 0x00000000, 0x1c01f000, - 0x59a80007, 0x8c000518, 0x1c01f000, 0x42006800, - 0x00000064, 0x80346840, 0x04000007, 0x4a030000, - 0x00000001, 0x40000000, 0x59807000, 0x8c387500, - 0x040007f9, 0x1c01f000, 0x00000001, 0x00000002, - 0x00000004, 0x00000008, 0x00000010, 0x00000020, - 0x00000040, 0x00000080, 0x00000100, 0x00000200, - 0x00000400, 0x00000800, 0x00001000, 0x00002000, - 0x00004000, 0x00008000, 0x00010000, 0x4a03506e, - 0x00000026, 0x4a03506f, 0x0000001d, 0x4a035070, - 0x00000001, 0x4a035071, 0x00000000, 0x59e00002, - 0x8c00051e, 0x42000000, 0x7ffe00fe, 0x04000003, - 0x42000000, 0x7ffe01fe, 0x50000800, 0x48075047, - 0x80040920, 0x82040580, 0x0000013e, 0x0402000b, - 0x59a8006d, 0x84000548, 0x4803506d, 0x4a03506e, - 0x0000005a, 0x4a03506f, 0x00000058, 0x4a035071, - 0x0000000f, 0x0401f045, 0x82040580, 0x0000013f, - 0x0400000a, 0x82040580, 0x0000014e, 0x04000007, - 0x82040580, 0x00000155, 0x04000004, 0x82040580, - 0x00000156, 0x0402000b, 0x59a8006d, 0x8400054a, - 0x4803506d, 0x4a03506e, 0x00000055, 0x4a03506f, - 0x00000052, 0x4a035071, 0x00000009, 0x0401f02f, - 0x59e00003, 0x82000500, 0x00030000, 0x82000580, - 0x00000000, 0x04020029, 0x82040580, 0x00000147, - 0x04000019, 0x82040580, 0x0000012c, 0x04000016, - 0x82040580, 0x0000012a, 0x04000007, 0x82040580, - 0x0000012b, 0x04000004, 0x82040580, 0x00000145, - 0x0402001a, 0x59a8006d, 0x84000546, 0x4803506d, - 0x4a03506e, 0x00000043, 0x4a03506f, 0x0000003e, - 0x4a035070, 0x00000025, 0x4a035071, 0x00000001, - 0x0401f00c, 0x59a8006d, 0x84000544, 0x4803506d, - 0x4a03506e, 0x00000043, 0x4a03506f, 0x0000003e, - 0x4a035070, 0x00000025, 0x4a035071, 0x00000001, - 0x4a0378e4, 0x000c0000, 0x59a8006d, 0x8c000502, - 0x04000005, 0x82000500, 0x00000030, 0x02000800, - 0x0010032d, 0x1c01f000, 0xaa818c01, - 0x00000000, 0x00000000, 0x00110000, 0x000033d6, + 0x8c040d08, 0x04000004, 0x5988011b, 0x80000000, + 0x4803111b, 0x8c040d04, 0x04000004, 0x5988011c, + 0x80000000, 0x4803111c, 0x5c000000, 0x1c01f000, + 0x4807c856, 0x4c000000, 0x598800e5, 0x80000000, + 0x480310e5, 0x5c000000, 0x1c01f000, 0x40680000, + 0x5c036000, 0x4db00000, 0x49b3c857, 0x4c040000, + 0x50000800, 0x80040800, 0x04001002, 0x44040000, + 0x5c000800, 0x1c01f000, 0x480fc857, 0x4c000000, + 0x820c0580, 0x00000000, 0x04020004, 0x42000000, + 0x0010bcdf, 0x0401f014, 0x820c0580, 0x00001001, + 0x04020004, 0x42000000, 0x0010bce0, 0x0401f00e, + 0x820c0580, 0x00001002, 0x04020004, 0x42000000, + 0x0010bce1, 0x0401f008, 0x820c0c80, 0x0000201c, + 0x02021800, 0x0010032d, 0x820c0500, 0x0000001f, + 0x0c01f804, 0x0401ffdb, 0x5c000000, 0x1c01f000, + 0x0010ae54, 0x0010ae57, 0x0010ae5a, 0x0010ae5d, + 0x0010ae60, 0x0010ae63, 0x0010ae66, 0x0010ae69, + 0x0010ae6c, 0x0010ae6f, 0x0010ae72, 0x0010ae75, + 0x0010ae78, 0x0010ae7b, 0x0010ae7e, 0x0010ae81, + 0x0010ae84, 0x0010ae87, 0x0010ae8a, 0x0010ae8d, + 0x0010ae90, 0x0010ae93, 0x0010ae96, 0x0010ae99, + 0x0010ae9c, 0x0010ae9f, 0x0010aea2, 0x0010aea5, + 0x42000000, 0x0010bce2, 0x1c01f000, 0x42000000, + 0x0010bce3, 0x1c01f000, 0x42000000, 0x0010bce4, + 0x1c01f000, 0x42000000, 0x0010bce5, 0x1c01f000, + 0x42000000, 0x0010bce6, 0x1c01f000, 0x42000000, + 0x0010bce7, 0x1c01f000, 0x42000000, 0x0010bce8, + 0x1c01f000, 0x42000000, 0x0010bce9, 0x1c01f000, + 0x42000000, 0x0010bcea, 0x1c01f000, 0x42000000, + 0x0010bceb, 0x1c01f000, 0x42000000, 0x0010bcec, + 0x1c01f000, 0x42000000, 0x0010bced, 0x1c01f000, + 0x42000000, 0x0010bcee, 0x1c01f000, 0x42000000, + 0x0010bcef, 0x1c01f000, 0x42000000, 0x0010bcf0, + 0x1c01f000, 0x42000000, 0x0010bcf1, 0x1c01f000, + 0x42000000, 0x0010bcf2, 0x1c01f000, 0x42000000, + 0x0010bcf3, 0x1c01f000, 0x42000000, 0x0010bcf4, + 0x1c01f000, 0x42000000, 0x0010bcf5, 0x1c01f000, + 0x42000000, 0x0010bcf6, 0x1c01f000, 0x42000000, + 0x0010bcf7, 0x1c01f000, 0x42000000, 0x0010bcf8, + 0x1c01f000, 0x42000000, 0x0010bcf9, 0x1c01f000, + 0x42000000, 0x0010bcfa, 0x1c01f000, 0x42000000, + 0x0010bcfb, 0x1c01f000, 0x42000000, 0x0010bcfc, + 0x1c01f000, 0x42000000, 0x0010bcfd, 0x1c01f000, + 0x480fc857, 0x4c000000, 0x820c0580, 0x00000001, + 0x04020004, 0x42000000, 0x0010bc62, 0x0401f012, + 0x820c0580, 0x00000002, 0x04020004, 0x42000000, + 0x0010bc63, 0x0401f00c, 0x820c0580, 0x00000003, + 0x04020004, 0x42000000, 0x0010bc64, 0x0401f006, + 0x820c0580, 0x00000004, 0x04020004, 0x42000000, + 0x0010bc65, 0x0401ff4f, 0x5c000000, 0x1c01f000, + 0x4c000000, 0x59a8021b, 0x4803c857, 0x8c000502, + 0x04000010, 0x8c000506, 0x04000004, 0x42000000, + 0x0010bc6d, 0x0401f012, 0x8c00050a, 0x04000004, + 0x42000000, 0x0010bc6c, 0x0401f00d, 0x8c000508, + 0x04000004, 0x42000000, 0x0010bc6f, 0x0401f008, + 0x0201f800, 0x00104755, 0x04000006, 0x8c000506, + 0x04020004, 0x42000000, 0x0010bc6e, 0x0401ff31, + 0x5c000000, 0x1c01f000, 0x8058b1c0, 0x02000800, + 0x0010032d, 0x5450a800, 0x8050a000, 0x8054a800, + 0x8058b040, 0x040207fc, 0x1c01f000, 0x8058b1c0, + 0x02000800, 0x0010032d, 0x4450a800, 0x8054a800, + 0x8058b040, 0x040207fd, 0x1c01f000, 0x4813c857, + 0x4817c857, 0x40140000, 0x80100480, 0x02021800, + 0x0010032d, 0x497bc841, 0x42007800, 0x000000ff, + 0x40100000, 0x80140480, 0x82006d00, 0xffffff00, + 0x04020002, 0x40007800, 0x4813c840, 0x483fc842, + 0x04011000, 0x40100000, 0x803c2400, 0x40100000, + 0x80140580, 0x040207f3, 0x45782800, 0x1c01f000, + 0x8058b1c0, 0x02000800, 0x0010032d, 0x50500000, + 0x9c0001c0, 0x4400a800, 0x8050a000, 0x8054a800, + 0x8058b040, 0x040207fa, 0x1c01f000, 0x4c000000, + 0x59a80007, 0x8c00051c, 0x5c000000, 0x1c01f000, + 0x0401f807, 0x42018800, 0x00000001, 0x04020003, + 0x42018800, 0x00000000, 0x1c01f000, 0x59a80007, + 0x8c000518, 0x1c01f000, 0x42006800, 0x00000064, + 0x80346840, 0x04000007, 0x4a030000, 0x00000001, + 0x40000000, 0x59807000, 0x8c387500, 0x040007f9, + 0x1c01f000, 0x59a80006, 0x8c000516, 0x1c01f000, + 0x00000001, 0x00000002, 0x00000004, 0x00000008, + 0x00000010, 0x00000020, 0x00000040, 0x00000080, + 0x00000100, 0x00000200, 0x00000400, 0x00000800, + 0x00001000, 0x00002000, 0x00004000, 0x00008000, + 0x00010000, 0x4a03506e, 0x00000026, 0x4a03506f, + 0x0000001d, 0x4a035070, 0x00000001, 0x4a035071, + 0x00000000, 0x59e00002, 0x8c00051e, 0x42000000, + 0x7ffe00fe, 0x04000003, 0x42000000, 0x7ffe01fe, + 0x50000800, 0x48075047, 0x80040920, 0x82040580, + 0x0000013e, 0x0402000b, 0x59a8006d, 0x84000548, + 0x4803506d, 0x4a03506e, 0x0000005a, 0x4a03506f, + 0x00000058, 0x4a035071, 0x0000000f, 0x0401f045, + 0x82040580, 0x0000013f, 0x0400000a, 0x82040580, + 0x0000014e, 0x04000007, 0x82040580, 0x00000155, + 0x04000004, 0x82040580, 0x00000156, 0x0402000b, + 0x59a8006d, 0x8400054a, 0x4803506d, 0x4a03506e, + 0x00000055, 0x4a03506f, 0x00000052, 0x4a035071, + 0x00000009, 0x0401f02f, 0x59e00003, 0x82000500, + 0x00030000, 0x82000580, 0x00000000, 0x04020029, + 0x82040580, 0x00000147, 0x04000019, 0x82040580, + 0x0000012c, 0x04000016, 0x82040580, 0x0000012a, + 0x04000007, 0x82040580, 0x0000012b, 0x04000004, + 0x82040580, 0x00000145, 0x0402001a, 0x59a8006d, + 0x84000546, 0x4803506d, 0x4a03506e, 0x00000043, + 0x4a03506f, 0x0000003e, 0x4a035070, 0x00000025, + 0x4a035071, 0x00000001, 0x0401f00c, 0x59a8006d, + 0x84000544, 0x4803506d, 0x4a03506e, 0x00000043, + 0x4a03506f, 0x0000003e, 0x4a035070, 0x00000025, + 0x4a035071, 0x00000001, 0x4a0378e4, 0x000c0000, + 0x59a8006d, 0x8c000502, 0x04000005, 0x82000500, + 0x00000030, 0x02000800, 0x0010032d, 0x1c01f000, + 0x2d884b25, + 0x00000000, 0x00000000, 0x00110000, 0x000033e5, 0x00000000, 0x00000000, 0x00020000, 0x00000b53, 0x836c0580, 0x00000003, 0x02020000, 0x001002bc, - 0x42000000, 0x0010b812, 0x50000000, 0x800001c0, + 0x42000000, 0x0010b912, 0x50000000, 0x800001c0, 0x04020a37, 0x0401f9e1, 0x0201f800, 0x0002058a, 0x0401fbb7, 0x0201f800, 0x0002099a, 0x0201f800, 0x00020814, 0x0401f7ef, 0x42007000, 0x00020b54, @@ -11246,7 +11303,7 @@ static const uint32_t isp_2400_risc_code[] = { 0x0010032d, 0x42007000, 0x00020b54, 0x58380000, 0x82001480, 0x00000004, 0x0c001004, 0x0201f800, 0x0010032d, 0x1c01f000, 0x0002002c, 0x00020072, - 0x0002007b, 0x00100f6f, 0x82040d00, 0x43000f80, + 0x0002007b, 0x00100f70, 0x82040d00, 0x43000f80, 0x02020000, 0x00100626, 0x58380002, 0x80000540, 0x0400000a, 0x0201f000, 0x00100618, 0x82040d00, 0x43000f80, 0x02020000, 0x00100626, 0x58380002, @@ -11256,8 +11313,8 @@ static const uint32_t isp_2400_risc_code[] = { 0x80040400, 0x58300807, 0x48006006, 0x82040c40, 0x00000000, 0x48046007, 0x4030d000, 0x0809f800, 0x0401f792, 0x59b800ea, 0x82000d00, 0xf0000038, - 0x02020000, 0x00100765, 0x8c000510, 0x02000000, - 0x00100764, 0x59ba60e0, 0x81300182, 0x04021042, + 0x02020000, 0x00100763, 0x8c000510, 0x02000000, + 0x00100762, 0x59ba60e0, 0x81300182, 0x04021042, 0x04002028, 0x8532653e, 0x59300407, 0x82000580, 0x00000003, 0x04020020, 0x59300203, 0x82000580, 0x00000004, 0x0402001c, 0x59325809, 0x59300004, @@ -11266,8 +11323,8 @@ static const uint32_t isp_2400_risc_code[] = { 0x00020a10, 0x5934000f, 0x5934140b, 0x80081040, 0x04001002, 0x480a6c0b, 0x80000540, 0x04020a6c, 0x59b800ea, 0x8c000510, 0x040207df, 0x1c01f000, - 0x0201f800, 0x0010644d, 0x040007ef, 0x0201f000, - 0x0010075a, 0x42027000, 0x00000055, 0x0401f022, + 0x0201f800, 0x001064f2, 0x040007ef, 0x0201f000, + 0x00100758, 0x42027000, 0x00000055, 0x0401f022, 0x83326500, 0x3fffffff, 0x59300407, 0x82000580, 0x00000003, 0x04020011, 0x59325809, 0x5932680a, 0x4a025a05, 0x00000103, 0x497a580a, 0x0401fad8, @@ -11275,46 +11332,46 @@ static const uint32_t isp_2400_risc_code[] = { 0x80081040, 0x04001002, 0x480a6c0b, 0x80000540, 0x04020a4b, 0x0401f7df, 0x42027000, 0x00000054, 0x0401f009, 0x83300500, 0x60000000, 0x04000016, - 0x81326580, 0x8000013a, 0x82000400, 0x0010076b, + 0x81326580, 0x8000013a, 0x82000400, 0x00100769, 0x50027000, 0x59300c07, 0x82040580, 0x00000002, - 0x02000000, 0x0010075a, 0x59300004, 0x8c00053e, + 0x02000000, 0x00100758, 0x59300004, 0x8c00053e, 0x04020004, 0x0201f800, 0x00020a34, 0x0401f7c9, - 0x0201f800, 0x0010644d, 0x040007fb, 0x0201f000, - 0x0010075a, 0x83300500, 0x1f000000, 0x02000000, - 0x0010075d, 0x81326580, 0x80000130, 0x82000c80, + 0x0201f800, 0x001064f2, 0x040007fb, 0x0201f000, + 0x00100758, 0x83300500, 0x1f000000, 0x02000000, + 0x0010075b, 0x81326580, 0x80000130, 0x82000c80, 0x00000014, 0x02021800, 0x0010032d, 0x1201f000, - 0x0010076f, 0x82000500, 0xf0000000, 0x82040d00, + 0x0010076d, 0x82000500, 0xf0000000, 0x82040d00, 0x0fffffff, 0x80040d40, 0x4807c857, 0x59b800ea, - 0x8c000516, 0x02020000, 0x00100871, 0x480770e1, + 0x8c000516, 0x02020000, 0x0010086f, 0x480770e1, 0x1c01f000, 0x59325809, 0x412c7000, 0x58380a05, - 0x82040500, 0x0000000f, 0x82000c00, 0x00100e39, - 0x50044000, 0x0c01f001, 0x00100afc, 0x00100afc, - 0x0002012a, 0x00100afc, 0x00100afc, 0x00100afc, - 0x00100afc, 0x00100afc, 0x0002013a, 0x00100b25, - 0x00100afc, 0x00100afe, 0x00100b13, 0x00100afc, - 0x00100afc, 0x00100afc, 0x5838040b, 0x8c000500, + 0x82040500, 0x0000000f, 0x82000c00, 0x00100e3a, + 0x50044000, 0x0c01f001, 0x00100afd, 0x00100afd, + 0x0002012a, 0x00100afd, 0x00100afd, 0x00100afd, + 0x00100afd, 0x00100afd, 0x0002013a, 0x00100b26, + 0x00100afd, 0x00100aff, 0x00100b14, 0x00100afd, + 0x00100afd, 0x00100afd, 0x5838040b, 0x8c000500, 0x02000800, 0x0010032d, 0x50200000, 0x80387c00, 0x583c1002, 0x583c2800, 0x583c2001, 0x58380a08, 0x58383010, 0x59303808, 0x58384c09, 0x5838000e, 0x48026013, 0x0401f010, 0x5838020b, 0x8c000502, - 0x02000000, 0x00100afc, 0x50200000, 0x80387c00, + 0x02000000, 0x00100afd, 0x50200000, 0x80387c00, 0x583c2800, 0x583c2001, 0x583c1002, 0x592c0a08, 0x592c4c09, 0x592c3010, 0x59303808, 0x497a6013, 0x497a6014, 0x4816600f, 0x48126010, 0x480a6011, 0x481a6012, 0x80040840, 0x4806600e, 0x02020000, - 0x00100b52, 0x841c3d40, 0x481e6008, 0x1c01f000, + 0x00100b53, 0x841c3d40, 0x481e6008, 0x1c01f000, 0x4d2c0000, 0x59325809, 0x592c0a05, 0x4807c857, 0x82040d00, 0x000000ff, 0x82040500, 0x0000000f, - 0x1201f000, 0x00100ca6, 0x41787800, 0x59325809, - 0x592c0c0b, 0x8c040d02, 0x02000000, 0x00100ce7, + 0x1201f000, 0x00100ca7, 0x41787800, 0x59325809, + 0x592c0c0b, 0x8c040d02, 0x02000000, 0x00100ce8, 0x592c000e, 0x592c1010, 0x592c0a05, 0x480a6012, 0x48026013, 0x48026014, 0x412c3000, 0x82040500, - 0x0000000f, 0x82000400, 0x00100e39, 0x50003800, + 0x0000000f, 0x82000400, 0x00100e3a, 0x50003800, 0x501c0000, 0x592c1a08, 0x4802600b, 0x481a600c, 0x481e600d, 0x480e600e, 0x843c7d4a, 0x403c1000, 0x1c01f000, 0x592c0a05, 0x497a6013, 0x41787800, 0x592c1a08, 0x82040500, 0x0000000f, 0x82000400, - 0x00100e39, 0x50004000, 0x50200000, 0x4802600b, + 0x00100e3a, 0x50004000, 0x50200000, 0x4802600b, 0x492e600c, 0x4822600d, 0x480e600e, 0x483e6004, 0x80000580, 0x1c01f000, 0x59e00004, 0x8c00050e, 0x040206d1, 0x1c01f000, 0x000201e1, 0x000201ce, @@ -11335,17 +11392,17 @@ static const uint32_t isp_2400_risc_code[] = { 0x000201ce, 0x000201ce, 0x000201ce, 0x000201ce, 0x000201ce, 0x000201ce, 0x4c000000, 0x4df00000, 0x4203e000, 0xb0100000, 0x41f00000, 0x81fe1500, - 0x8d0a1512, 0x02020800, 0x001011b7, 0x8d0a1518, + 0x8d0a1512, 0x02020800, 0x001011b8, 0x8d0a1518, 0x02020800, 0x000209bd, 0x8d0a151a, 0x04020eba, 0x83080500, 0x00000d00, 0x04020804, 0x5c03e000, 0x5c000000, 0x1801f000, 0x8d0a1516, 0x02020800, - 0x0010100b, 0x8d0a1514, 0x04020fa4, 0x8d0a1508, - 0x02020800, 0x00100ed1, 0x8d0a1500, 0x02020000, - 0x0002090c, 0x1c01f000, 0x42000000, 0x0010b818, + 0x0010100c, 0x8d0a1514, 0x04020fa4, 0x8d0a1508, + 0x02020800, 0x00100ed2, 0x8d0a1500, 0x02020000, + 0x0002090c, 0x1c01f000, 0x42000000, 0x0010b918, 0x50000000, 0x8c000504, 0x04000014, 0x42000000, - 0x0010b818, 0x50000000, 0x8c000502, 0x04020002, + 0x0010b918, 0x50000000, 0x8c000502, 0x04020002, 0x1c01f000, 0x4df00000, 0x4203e000, 0x50000000, - 0x42034000, 0x0010b7fa, 0x59a0001e, 0x59a1d806, + 0x42034000, 0x0010b8fa, 0x59a0001e, 0x59a1d806, 0x84000502, 0x4803401e, 0x58ec0008, 0x0801f800, 0x5c03e000, 0x1c01f000, 0x04027002, 0x04026002, 0x1c01f000, 0x4df00000, 0x4203e000, 0x50000000, @@ -11354,17 +11411,17 @@ static const uint32_t isp_2400_risc_code[] = { 0x42000800, 0x00020b54, 0x58040800, 0x82040d80, 0x00000000, 0x0402001d, 0x0201f800, 0x0010056f, 0x0400001a, 0x412dd800, 0x48efc857, 0x0201f800, - 0x001032d6, 0x42034000, 0x0010b7fa, 0x49a1d80a, + 0x001032e0, 0x42034000, 0x0010b8fa, 0x49a1d80a, 0x48ef4006, 0x59a0001e, 0x84000544, 0x4803401e, 0x59e00020, 0x4803c857, 0x59e00021, 0x4803c857, 0x59e00022, 0x4803c857, 0x59e00023, 0x4803c857, - 0x59e00024, 0x4803c857, 0x0201f800, 0x00101c10, - 0x0201f800, 0x00101c2f, 0x5c03e000, 0x1c01f000, - 0x0201f800, 0x0010ae33, 0x040007fe, 0x4203e000, + 0x59e00024, 0x4803c857, 0x0201f800, 0x00101c15, + 0x0201f800, 0x00101c34, 0x5c03e000, 0x1c01f000, + 0x0201f800, 0x0010af26, 0x040007fe, 0x4203e000, 0x30000001, 0x4203e000, 0x40000000, 0x42000800, 0x00007a12, 0x45780800, 0x0401f7ff, 0x4da00000, 0x4df00000, 0x4203e000, 0x50000000, 0x04006050, - 0x42034000, 0x0010b7fa, 0x59a01018, 0x59a01819, + 0x42034000, 0x0010b8fa, 0x59a01018, 0x59a01819, 0x800c19c0, 0x0402000a, 0x59a0381c, 0x801c39c0, 0x02000800, 0x0010032d, 0x49a3c857, 0x481fc857, 0x59a0041d, 0x801c3c00, 0x0401f00c, 0x59a0041a, @@ -11385,9 +11442,9 @@ static const uint32_t isp_2400_risc_code[] = { 0x59a2581c, 0x592c3814, 0x481f401c, 0x497b441d, 0x0201f800, 0x00100580, 0x5c025800, 0x5c03e000, 0x5c034000, 0x1c01f000, 0x830c0500, 0x00000003, - 0x02020000, 0x00103b05, 0x59340400, 0x82000580, - 0x00000606, 0x02020000, 0x00103ad7, 0x5934000d, - 0x80027d40, 0x02020000, 0x00103b10, 0x0401f803, + 0x02020000, 0x00103b18, 0x59340400, 0x82000580, + 0x00000606, 0x02020000, 0x00103aea, 0x5934000d, + 0x80027d40, 0x02020000, 0x00103b23, 0x0401f803, 0x80000580, 0x1c01f000, 0x5934000f, 0x59341203, 0x80080540, 0x0402005f, 0x5934000b, 0x80001120, 0x82000500, 0x0000ffff, 0x80080480, 0x04021059, @@ -11417,7 +11474,7 @@ static const uint32_t isp_2400_risc_code[] = { 0x492e680f, 0x592c0407, 0x800000c2, 0x800018c4, 0x800c0400, 0x48025804, 0x1c01f000, 0x492c0800, 0x0401f7f9, 0x83440c80, 0x00000800, 0x04021009, - 0x83440400, 0x0010af80, 0x50000000, 0x80000540, + 0x83440400, 0x0010b080, 0x50000000, 0x80000540, 0x04000004, 0x40026800, 0x80000580, 0x1c01f000, 0x82000540, 0x00000001, 0x1c01f000, 0x59340203, 0x80000540, 0x0402004b, 0x4d300000, 0x4d2c0000, @@ -11429,10 +11486,10 @@ static const uint32_t isp_2400_risc_code[] = { 0x480a6c0b, 0x4a026407, 0x00000003, 0x4a026403, 0x00000040, 0x592c0004, 0x497a5804, 0x48026006, 0x592c0809, 0x592c180a, 0x592c020b, 0x48066018, - 0x480e6019, 0x8c000502, 0x02000000, 0x00103f93, + 0x480e6019, 0x8c000502, 0x02000000, 0x00103fad, 0x4a026203, 0x00000004, 0x592c0208, 0x80000040, - 0x02020000, 0x00103f86, 0x82140580, 0x00000018, - 0x02020000, 0x00103f86, 0x592c1810, 0x59300008, + 0x02020000, 0x00103fa0, 0x82140580, 0x00000018, + 0x02020000, 0x00103fa0, 0x592c1810, 0x59300008, 0x82000540, 0x00000091, 0x480e6012, 0x48026008, 0x42000000, 0x80080004, 0x48026004, 0x59bc00ea, 0x8c000516, 0x040207fe, 0x83300400, 0x20000000, @@ -11442,22 +11499,22 @@ static const uint32_t isp_2400_risc_code[] = { 0x1c01f000, 0x497a5800, 0x4932580a, 0x4a026407, 0x00000006, 0x4a026203, 0x00000007, 0x0401f802, 0x0401f7ed, 0x592c020d, 0x48026202, 0x59a80069, - 0x8c000510, 0x02020000, 0x00103fb9, 0x8d0e1d0e, - 0x02020000, 0x00103fb5, 0x8d0e1d04, 0x02020000, - 0x00103fb1, 0x59340200, 0x8c000518, 0x02020000, - 0x00103fad, 0x4a025a07, 0x00000000, 0x8c000508, - 0x02020000, 0x00103fa9, 0x492e6009, 0x4d3c0000, + 0x8c000510, 0x02020000, 0x00103fd3, 0x8d0e1d0e, + 0x02020000, 0x00103fcf, 0x8d0e1d04, 0x02020000, + 0x00103fcb, 0x59340200, 0x8c000518, 0x02020000, + 0x00103fc7, 0x4a025a07, 0x00000000, 0x8c000508, + 0x02020000, 0x00103fc3, 0x492e6009, 0x4d3c0000, 0x417a7800, 0x0201f800, 0x00020912, 0x5c027800, 0x1c01f000, 0x58040001, 0x49680800, 0x49780801, 0x815eb800, 0x4006d000, 0x80000d40, 0x040207fa, 0x497a5801, 0x59c80000, 0x82000540, 0x00001200, 0x48039000, 0x1c01f000, 0x59980013, 0x48032823, 0x59d8010b, 0x48033014, 0x1c01f000, 0x592c0405, - 0x8c00051e, 0x02020000, 0x001044ec, 0x497a5800, + 0x8c00051e, 0x02020000, 0x0010452b, 0x497a5800, 0x8d0e1d26, 0x0402000e, 0x0402d007, 0x592c0001, 0x492fb107, 0x80000d40, 0x04020fe3, 0x0400e0cd, 0x1c01f000, 0x0400e8cb, 0x0400d7f9, 0x42000000, - 0x0010bb76, 0x0201f800, 0x0010ad20, 0x0401f916, + 0x0010bc76, 0x0201f800, 0x0010ae13, 0x0401f916, 0x0400d921, 0x0400e0c3, 0x59d80105, 0x82000d00, 0x00018780, 0x04020130, 0x1c01f000, 0x59980011, 0x0c01f001, 0x000203cd, 0x000203ce, 0x000203d9, @@ -11534,8 +11591,8 @@ static const uint32_t isp_2400_risc_code[] = { 0x4807b107, 0x80000d40, 0x04020005, 0x48033016, 0x850e1d26, 0x48033017, 0x1c01f000, 0x0400d7f8, 0x0401f7fd, 0x59d80105, 0x82000500, 0x00018780, - 0x04020005, 0x42000000, 0x0010bb76, 0x0201f000, - 0x0010ad20, 0x4803c857, 0x485fc857, 0x8c00050e, + 0x04020005, 0x42000000, 0x0010bc76, 0x0201f000, + 0x0010ae13, 0x4803c857, 0x485fc857, 0x8c00050e, 0x02020800, 0x00100322, 0x4203e000, 0x50000000, 0x4200b800, 0x00008004, 0x0201f000, 0x00100332, 0x0400e784, 0x59d80105, 0x82000500, 0x00018780, @@ -11573,9 +11630,9 @@ static const uint32_t isp_2400_risc_code[] = { 0x400a5000, 0x900811c0, 0x82081540, 0x0000001c, 0x480bc011, 0x4a03c017, 0x00000000, 0x4203e000, 0x30000001, 0x1c01f000, 0x41700000, 0x0c01f001, - 0x00104bf1, 0x00020595, 0x00104bf1, 0x0002065b, - 0x00104bef, 0x00104bef, 0x00104bef, 0x00104bef, - 0x001050b7, 0x04010036, 0x59980004, 0x80000540, + 0x00104c30, 0x00020595, 0x00104c30, 0x0002065b, + 0x00104c2e, 0x00104c2e, 0x00104c2e, 0x00104c2e, + 0x0010510d, 0x04010036, 0x59980004, 0x80000540, 0x0402003b, 0x0402c01c, 0x4202f800, 0x00000010, 0x4df00000, 0x4203e000, 0x50000000, 0x49db3003, 0x59da5808, 0x592c2a05, 0x497a5800, 0x497a5801, @@ -11584,103 +11641,103 @@ static const uint32_t isp_2400_risc_code[] = { 0x04000009, 0x836c0580, 0x00000003, 0x04020006, 0x83700580, 0x00000001, 0x04020010, 0x0401001a, 0x0400c7e8, 0x0400f973, 0x0400b15d, 0x59d40005, - 0x82000500, 0x43018780, 0x02020000, 0x0010502c, + 0x82000500, 0x43018780, 0x02020000, 0x00105081, 0x59d80005, 0x82000500, 0x43018780, 0x02020000, - 0x00105033, 0x1c01f000, 0x83700580, 0x00000003, + 0x00105088, 0x1c01f000, 0x83700580, 0x00000003, 0x04000897, 0x83700580, 0x00000001, 0x040207ee, 0x04010005, 0x0400c7d3, 0x0401f7eb, 0x4202f800, 0x00000010, 0x4df00000, 0x4203e000, 0x50000000, 0x49d73003, 0x59d65808, 0x0401f7cf, 0x4df00000, 0x4203e000, 0x50000000, 0x40025800, 0x592c2a05, 0x497b3003, 0x497b3004, 0x4202f800, 0x00000010, - 0x0401f7c8, 0x0201f800, 0x00104c44, 0x5c03e000, - 0x0401f7d5, 0x00104c44, 0x00104c44, 0x00104c44, - 0x00104c44, 0x00104cdf, 0x00104c44, 0x00104c44, - 0x00104c44, 0x00104c44, 0x00104c44, 0x00104c54, - 0x00104c44, 0x00104c44, 0x00104c44, 0x00104d08, - 0x00104c44, 0x00104c44, 0x00104c44, 0x000206b7, - 0x00104c44, 0x00104ea4, 0x00104c44, 0x00104c44, - 0x00104c44, 0x0002067d, 0x00104c44, 0x00104c44, - 0x0010a623, 0x00104c44, 0x00104c44, 0x00104c44, - 0x00104c44, 0x00104c44, 0x00104c44, 0x00104c44, - 0x00104c44, 0x00104c44, 0x00104c44, 0x00104c44, - 0x00104c44, 0x00104c44, 0x00104c84, 0x00104c44, - 0x0010a6b8, 0x00104c44, 0x00104c44, 0x00104c44, - 0x00104c44, 0x00104c44, 0x00104c44, 0x00104c44, - 0x00104fbb, 0x00104c44, 0x00104c44, 0x00104c44, - 0x00104c44, 0x00104c44, 0x0010500a, 0x00104c44, - 0x00104c7b, 0x00104c44, 0x00104f83, 0x00104c44, - 0x00104c44, 0x00104c44, 0x00104c44, 0x00104c44, - 0x00104c44, 0x00104c44, 0x00104f51, 0x00104c44, - 0x00104f51, 0x0010507c, 0x00104c44, 0x00104c44, - 0x00104c44, 0x00104c44, 0x00104c44, 0x00104c44, - 0x00104c44, 0x00104c44, 0x00104c44, 0x00104f13, - 0x00105042, 0x00104c44, 0x0010506f, 0x00104c44, - 0x00104c44, 0x00104c44, 0x00104c44, 0x00104c44, - 0x00104c44, 0x00104c44, 0x00104c44, 0x00104c44, - 0x00104c44, 0x00104c44, 0x00104c44, 0x00104c44, - 0x00104c44, 0x00104c44, 0x00104c44, 0x00104c44, - 0x00104c44, 0x00104c44, 0x00104c44, 0x00104c44, - 0x00104c44, 0x00104c44, 0x00104c44, 0x00104c44, - 0x00104c44, 0x00104c44, 0x00104c44, 0x00104c44, - 0x00104c44, 0x00104c44, 0x00104c44, 0x00104c44, - 0x00104c44, 0x00104c44, 0x00104c44, 0x4df00000, + 0x0401f7c8, 0x0201f800, 0x00104c83, 0x5c03e000, + 0x0401f7d5, 0x00104c83, 0x00104c83, 0x00104c83, + 0x00104c83, 0x00104d1e, 0x00104c83, 0x00104c83, + 0x00104c83, 0x00104c83, 0x00104c83, 0x00104c93, + 0x00104c83, 0x00104c83, 0x00104c83, 0x00104d47, + 0x00104c83, 0x00104c83, 0x00104c83, 0x000206b7, + 0x00104c83, 0x00104ef6, 0x00104c83, 0x00104c83, + 0x00104c83, 0x0002067d, 0x00104c83, 0x00104c83, + 0x0010a716, 0x00104c83, 0x00104c83, 0x00104c83, + 0x00104c83, 0x00104c83, 0x00104c83, 0x00104c83, + 0x00104c83, 0x00104c83, 0x00104c83, 0x00104c83, + 0x00104c83, 0x00104c83, 0x00104cc3, 0x00104c83, + 0x0010a7ab, 0x00104c83, 0x00104c83, 0x00104c83, + 0x00104c83, 0x00104c83, 0x00104c83, 0x00104c83, + 0x0010500d, 0x00104c83, 0x00104c83, 0x00104c83, + 0x00104c83, 0x00104c83, 0x0010505f, 0x00104c83, + 0x00104cba, 0x00104c83, 0x00104fd5, 0x00104c83, + 0x00104c83, 0x00104c83, 0x00104c83, 0x00104c83, + 0x00104c83, 0x00104c83, 0x00104fa3, 0x00104c83, + 0x00104fa3, 0x001050d2, 0x00104c83, 0x00104c83, + 0x00104c83, 0x00104c83, 0x00104c83, 0x00104c83, + 0x00104c83, 0x00104c83, 0x00104c83, 0x00104f65, + 0x00105097, 0x00104c83, 0x001050c5, 0x00104c83, + 0x00104c83, 0x00104c83, 0x00104c83, 0x00104c83, + 0x00104c83, 0x00104c83, 0x00104c83, 0x00104c83, + 0x00104c83, 0x00104c83, 0x00104c83, 0x00104c83, + 0x00104c83, 0x00104c83, 0x00104c83, 0x00104c83, + 0x00104c83, 0x00104c83, 0x00104c83, 0x00104c83, + 0x00104c83, 0x00104c83, 0x00104c83, 0x00104c83, + 0x00104c83, 0x00104c83, 0x00104c83, 0x00104c83, + 0x00104c83, 0x00104c83, 0x00104c83, 0x00104c83, + 0x00104c83, 0x00104c83, 0x00104c83, 0x4df00000, 0x4203e000, 0x50000000, 0x59981003, 0x800811c0, - 0x02000000, 0x00104bf6, 0x58080005, 0x82000d00, - 0x43018780, 0x02020000, 0x00105033, 0x8c000508, - 0x02000000, 0x00104bf3, 0x580a5808, 0x592c0205, + 0x02000000, 0x00104c35, 0x58080005, 0x82000d00, + 0x43018780, 0x02020000, 0x00105088, 0x8c000508, + 0x02000000, 0x00104c32, 0x580a5808, 0x592c0205, 0x497a5800, 0x497a5801, 0x82000500, 0x000000ff, - 0x82000c80, 0x0000004b, 0x02021000, 0x00104bf2, - 0x1201f800, 0x00104bf9, 0x5c03e000, 0x83700580, + 0x82000c80, 0x0000004b, 0x02021000, 0x00104c31, + 0x1201f800, 0x00104c38, 0x5c03e000, 0x83700580, 0x00000003, 0x040007e2, 0x0400f8ae, 0x0400b098, 0x1c01f000, 0x80140110, 0x80000040, 0x0400000b, - 0x02001000, 0x00104c4c, 0x4a033006, 0x0002068a, + 0x02001000, 0x00104c8b, 0x4a033006, 0x0002068a, 0x48033000, 0x492f3001, 0x492f3002, 0x4202e000, 0x00000003, 0x1c01f000, 0x592e8a07, 0x83440c80, - 0x000007f0, 0x02021000, 0x00104c5c, 0x8d0e1d0e, - 0x02020000, 0x00104c8d, 0x83440400, 0x0010af80, - 0x50000000, 0x80026d40, 0x02000000, 0x00104c9d, + 0x000007f0, 0x02021000, 0x00104c9b, 0x8d0e1d0e, + 0x02020000, 0x00104ccc, 0x83440400, 0x0010b080, + 0x50000000, 0x80026d40, 0x02000000, 0x00104cdc, 0x59340002, 0x592c0811, 0x80040580, 0x82000500, - 0x00ffffff, 0x02020000, 0x00104c5c, 0x5934000a, - 0x8c00052e, 0x02020000, 0x00104ca7, 0x0201f800, - 0x0002029a, 0x02020000, 0x00104ca0, 0x1c01f000, + 0x00ffffff, 0x02020000, 0x00104c9b, 0x5934000a, + 0x8c00052e, 0x02020000, 0x00104ce6, 0x0201f800, + 0x0002029a, 0x02020000, 0x00104cdf, 0x1c01f000, 0x59980802, 0x59980000, 0x48065800, 0x492c0801, 0x492f3002, 0x80000040, 0x48033000, 0x04000002, 0x1c01f000, 0x599a5801, 0x59980006, 0x4202e000, 0x00000001, 0x0801f800, 0x1c01f000, 0x80140110, - 0x02000000, 0x00104c4c, 0x80000040, 0x0402000b, + 0x02000000, 0x00104c8b, 0x80000040, 0x0402000b, 0x592c240b, 0x8c102504, 0x0400000c, 0x592c0208, - 0x82000c80, 0x00001001, 0x02021000, 0x00104c5c, - 0x0201f000, 0x00105091, 0x4a033006, 0x000206c9, + 0x82000c80, 0x00001001, 0x02021000, 0x00104c9b, + 0x0201f000, 0x001050e7, 0x4a033006, 0x000206c9, 0x0401f7bc, 0x592c240b, 0x592e8a07, 0x417a7800, - 0x83440480, 0x00000800, 0x02021000, 0x00104e32, - 0x83440400, 0x0010af80, 0x50000000, 0x80026d40, - 0x02000000, 0x00104e32, 0x59340002, 0x592c0809, + 0x83440480, 0x00000800, 0x02021000, 0x00104e80, + 0x83440400, 0x0010b080, 0x50000000, 0x80026d40, + 0x02000000, 0x00104e80, 0x59340002, 0x592c0809, 0x80040580, 0x82000500, 0x00ffffff, 0x02020000, - 0x00104c5c, 0x592e600a, 0x497a5809, 0x83300480, - 0x0010f584, 0x02001000, 0x00104e4f, 0x41540000, - 0x81300480, 0x02021000, 0x00104df8, 0x592c0a0d, - 0x59300202, 0x80040580, 0x02020000, 0x00104e4f, - 0x4936600a, 0x8c10251c, 0x02020000, 0x00104de6, - 0x59a80069, 0x8c000510, 0x02020000, 0x00104e72, - 0x8d0e1d0e, 0x02020000, 0x00104dcb, 0x8d0e1d04, - 0x02020000, 0x00104e63, 0x59340200, 0x8c000518, - 0x02020000, 0x00104e4a, 0x59300c07, 0x82040580, - 0x00000006, 0x02020000, 0x00104e77, 0x8c102508, - 0x02020000, 0x00104dc0, 0x59300809, 0x497a5804, + 0x00104c9b, 0x592e600a, 0x497a5809, 0x83300480, + 0x0010f694, 0x02001000, 0x00104e9d, 0x41540000, + 0x81300480, 0x02021000, 0x00104e46, 0x592c0a0d, + 0x59300202, 0x80040580, 0x02020000, 0x00104e9d, + 0x4936600a, 0x8c10251c, 0x02020000, 0x00104e34, + 0x59a80069, 0x8c000510, 0x02020000, 0x00104ec0, + 0x8d0e1d0e, 0x02020000, 0x00104e19, 0x8d0e1d04, + 0x02020000, 0x00104eb1, 0x59340200, 0x8c000518, + 0x02020000, 0x00104e98, 0x59300c07, 0x82040580, + 0x00000006, 0x02020000, 0x00104ec5, 0x8c102508, + 0x02020000, 0x00104e0e, 0x59300809, 0x497a5804, 0x4a025a07, 0x00000000, 0x800409c0, 0x02020000, - 0x00104dc6, 0x59300415, 0x8c000516, 0x02020000, - 0x00104e54, 0x492e6009, 0x0401f200, 0x4df00000, + 0x00104e14, 0x59300415, 0x8c000516, 0x02020000, + 0x00104ea2, 0x492e6009, 0x0401f200, 0x4df00000, 0x4203e000, 0x50000000, 0x0402b00b, 0x835c0480, 0x00000020, 0x0400100d, 0x815eb840, 0x416a5800, 0x592ed000, 0x492fb007, 0x497a5800, 0x497a5801, 0x0400b7f7, 0x59d80005, 0x82000500, 0x43018780, - 0x02020000, 0x00105033, 0x5c03e000, 0x1c01f000, + 0x02020000, 0x00105088, 0x5c03e000, 0x1c01f000, 0x4df00000, 0x4203e000, 0x50000000, 0x0402f00b, 0x835c0480, 0x00000020, 0x0400100d, 0x815eb840, 0x416a5800, 0x592ed000, 0x492fa807, 0x497a5800, 0x497a5801, 0x0400f7f7, 0x59d40005, 0x82000500, - 0x43018780, 0x02020000, 0x0010502c, 0x5c03e000, + 0x43018780, 0x02020000, 0x00105081, 0x5c03e000, 0x1c01f000, 0x40307000, 0x5838000a, 0x80025d40, 0x04000021, 0x58380002, 0x82000580, 0x00000100, 0x04000023, 0x4c380000, 0x592c0a05, 0x82040d00, @@ -11695,7 +11752,7 @@ static const uint32_t isp_2400_risc_code[] = { 0x82000480, 0x00000003, 0x04000088, 0x5838000f, 0x8c000500, 0x04020019, 0x4200b000, 0x00000003, 0x832cac00, 0x00000012, 0x58380009, 0x5838100c, - 0x8008a400, 0x4c380000, 0x0201f800, 0x0010adef, + 0x8008a400, 0x4c380000, 0x0201f800, 0x0010aee2, 0x5c007000, 0x5838000c, 0x82000400, 0x00000003, 0x4800700c, 0x4a00700f, 0x00000001, 0x58380004, 0x82000480, 0x00000003, 0x48007004, 0x82000580, @@ -11707,7 +11764,7 @@ static const uint32_t isp_2400_risc_code[] = { 0x492c0801, 0x492c700b, 0x42000800, 0x0000000f, 0x0401f011, 0x4202e000, 0x00000008, 0x4a033005, 0x000207a2, 0x1c01f000, 0x4202e000, 0x00000002, - 0x42000000, 0x0010c25d, 0x50007000, 0x0401f7e7, + 0x42000000, 0x0010c35d, 0x50007000, 0x0401f7e7, 0x583a580b, 0x400c0000, 0x42000800, 0x00000015, 0x80040c80, 0x58381004, 0x5838000e, 0x41783000, 0x80000540, 0x04020005, 0x84183540, 0x82081480, @@ -11715,7 +11772,7 @@ static const uint32_t isp_2400_risc_code[] = { 0x04001002, 0x40080800, 0x4004b000, 0x412c0000, 0x800c0400, 0x4000a800, 0x58380009, 0x5838100c, 0x8008a400, 0x4c080000, 0x4c040000, 0x4c0c0000, - 0x4c380000, 0x0201f800, 0x0010adef, 0x5c007000, + 0x4c380000, 0x0201f800, 0x0010aee2, 0x5c007000, 0x5c001800, 0x5c000800, 0x40040000, 0x58381004, 0x80080480, 0x48007004, 0x82000580, 0x00000003, 0x04000002, 0x84183500, 0x5c000000, 0x80041400, @@ -11726,21 +11783,21 @@ static const uint32_t isp_2400_risc_code[] = { 0x0c01f001, 0x000207ed, 0x000207f2, 0x000207ef, 0x000207ed, 0x00020789, 0x000207f2, 0x000207ef, 0x000207ed, 0x0201f800, 0x0010032d, 0x5838100e, - 0x0201f000, 0x001050a3, 0x5838080c, 0x82040400, + 0x0201f000, 0x001050f9, 0x5838080c, 0x82040400, 0x00000002, 0x58381009, 0x80080400, 0x50001000, 0x800811c0, 0x04020011, 0x4202e000, 0x00000001, 0x583a580a, 0x4978700a, 0x4978700f, 0x592c0a05, 0x82040d00, 0x000000ff, 0x82040580, 0x00000012, 0x040006c5, 0x82040580, 0x0000001b, 0x02000000, - 0x0010a64b, 0x0401f681, 0x58380009, 0x80040c00, + 0x0010a73e, 0x0401f681, 0x58380009, 0x80040c00, 0x82381c00, 0x00000006, 0x54041800, 0x80040800, - 0x800c1800, 0x54041800, 0x0201f000, 0x001050a3, + 0x800c1800, 0x54041800, 0x0201f000, 0x001050f9, 0x4df00000, 0x4203e000, 0x50000000, 0x5994002e, 0x80000540, 0x040000ec, 0x4c000000, 0x8d0e1d32, - 0x02020800, 0x00100f5c, 0x59e00002, 0x8c00051e, + 0x02020800, 0x00100f5d, 0x59e00002, 0x8c00051e, 0x04020013, 0x42000000, 0x00001000, 0x50000000, 0x82000480, 0x24320002, 0x0402000d, 0x0201f800, - 0x0010ae33, 0x04000008, 0x42000800, 0x00007a17, + 0x0010af26, 0x04000008, 0x42000800, 0x00007a17, 0x50040000, 0x8c00050e, 0x04020003, 0x8400054e, 0x44000800, 0x4a030000, 0x00000000, 0x5c000000, 0x59947824, 0x4803282f, 0x803c0480, 0x04001004, @@ -11750,10 +11807,10 @@ static const uint32_t isp_2400_risc_code[] = { 0x803c0040, 0x04000002, 0x483fc857, 0x59e40852, 0x59a8005d, 0x80040580, 0x04000004, 0x480bc857, 0x59e40052, 0x4803505d, 0x59940030, 0x803c0400, - 0x48032830, 0x0201f800, 0x0010589d, 0x59940000, + 0x48032830, 0x0201f800, 0x00105942, 0x59940000, 0x82000580, 0x00000000, 0x04020006, 0x59940030, 0x48032831, 0x497b2830, 0x4a032800, 0x00000001, - 0x59bc00e4, 0x8c00052c, 0x02020800, 0x0010576a, + 0x59bc00e4, 0x8c00052c, 0x02020800, 0x0010580f, 0x4c0c0000, 0x59940007, 0x80000d40, 0x04000013, 0x59941006, 0x5994002f, 0x80081c80, 0x04001004, 0x04000003, 0x480f2806, 0x0401f00c, 0x80040840, @@ -11796,30 +11853,30 @@ static const uint32_t isp_2400_risc_code[] = { 0x0000000a, 0x4803282b, 0x040027f7, 0x5994082e, 0x5994002f, 0x80040480, 0x02001800, 0x0010032d, 0x4803282e, 0x59940000, 0x0c01f001, 0x0002090a, - 0x001057ef, 0x00105859, 0x5c03e000, 0x1c01f000, + 0x00105894, 0x001058fe, 0x5c03e000, 0x1c01f000, 0x5994002e, 0x80000000, 0x4803282e, 0x4203e000, 0x70000000, 0x1c01f000, 0x592c0004, 0x497a5804, 0x80000d40, 0x04020005, 0x592c0407, 0x800000c2, 0x800008c4, 0x80040c00, 0x592c040b, 0x48066006, - 0x82000d00, 0x00000003, 0x02000000, 0x001059f2, + 0x82000d00, 0x00000003, 0x02000000, 0x00105a97, 0x8c000500, 0x0402002c, 0x59a80870, 0x80040840, - 0x040207ff, 0x8c00051e, 0x02000000, 0x001059cd, - 0x82000d00, 0x000000c0, 0x02020000, 0x001059c3, - 0x82000d00, 0x00002020, 0x02020000, 0x001059c0, - 0x813e79c0, 0x02020000, 0x001059c0, 0x592c0c0d, - 0x800409c0, 0x02020000, 0x001059c0, 0x59300a03, - 0x82040d80, 0x00000007, 0x02020000, 0x001059c0, + 0x040207ff, 0x8c00051e, 0x02000000, 0x00105a72, + 0x82000d00, 0x000000c0, 0x02020000, 0x00105a68, + 0x82000d00, 0x00002020, 0x02020000, 0x00105a65, + 0x813e79c0, 0x02020000, 0x00105a65, 0x592c0c0d, + 0x800409c0, 0x02020000, 0x00105a65, 0x59300a03, + 0x82040d80, 0x00000007, 0x02020000, 0x00105a65, 0x4a026203, 0x00000003, 0x4a026403, 0x00000043, 0x0201f800, 0x0002015e, 0x82080d40, 0x80003465, 0x48066004, 0x497a6000, 0x59bc00ea, 0x8c000516, 0x040207fe, 0x83300400, 0xa0000000, 0x480378e1, - 0x1c01f000, 0x8c000502, 0x02020000, 0x00105a15, + 0x1c01f000, 0x8c000502, 0x02020000, 0x00105aba, 0x8c00051e, 0x0400000e, 0x82000d00, 0x000000c0, 0x04000005, 0x82040d80, 0x000000c0, 0x02020000, - 0x00105a1a, 0x82000d00, 0x00002020, 0x82040d80, - 0x00002020, 0x02000000, 0x001059e1, 0x592c0208, - 0x80000040, 0x02020000, 0x001059eb, 0x592c180e, - 0x800c19c0, 0x02020000, 0x001059eb, 0x592c1810, + 0x00105abf, 0x82000d00, 0x00002020, 0x82040d80, + 0x00002020, 0x02000000, 0x00105a86, 0x592c0208, + 0x80000040, 0x02020000, 0x00105a90, 0x592c180e, + 0x800c19c0, 0x02020000, 0x00105a90, 0x592c1810, 0x59300008, 0x82000540, 0x00000011, 0x480e6012, 0x48026008, 0x4a026203, 0x00000004, 0x4a026403, 0x00000042, 0x42000800, 0x80002001, 0x0401f03e, @@ -11834,35 +11891,35 @@ static const uint32_t isp_2400_risc_code[] = { 0x00001200, 0x48039000, 0x0401f7f1, 0x0201f800, 0x00020399, 0x0401f7ee, 0x59840000, 0x80000540, 0x04020002, 0x1c01f000, 0x59840003, 0x80000540, - 0x02020000, 0x00105a92, 0x1c01f000, 0x48066004, + 0x02020000, 0x00105b37, 0x1c01f000, 0x48066004, 0x497a6000, 0x497a6001, 0x8d0e1d32, 0x02000800, - 0x00100f5c, 0x850e1d72, 0x59bc00ea, 0x8c000516, + 0x00100f5d, 0x850e1d72, 0x59bc00ea, 0x8c000516, 0x040207fe, 0x83300400, 0xa0000000, 0x480378e1, 0x1c01f000, 0x59300004, 0x82000500, 0x00000100, 0x80040d40, 0x48066004, 0x59bc00ea, 0x8c000516, 0x040207fe, 0x83300400, 0x40000000, 0x480378e1, 0x1c01f000, 0x59bc00ea, 0x82001500, 0xb0000018, - 0x02020000, 0x0010614b, 0x8c000510, 0x0400002a, + 0x02020000, 0x001061f0, 0x8c000510, 0x0400002a, 0x59bc10e0, 0x82080500, 0xfffff000, 0x0402000a, 0x80080108, 0x820a3500, 0x0000000f, 0x4803c857, - 0x1201f000, 0x00106151, 0x84000510, 0x48026004, + 0x1201f000, 0x001061f6, 0x84000510, 0x48026004, 0x0401f016, 0x840a653e, 0x59300004, 0x8c000520, 0x040007fa, 0x82000500, 0xfffefeff, 0x48026004, 0x8c08153e, 0x04020005, 0x42027000, 0x00000013, 0x0401f858, 0x0401f009, 0x59300004, 0x8c000514, 0x04000003, 0x0401ff98, 0x0401f02e, 0x42027000, 0x00000049, 0x0401f84f, 0x59bc00ea, 0x82001500, - 0xb0000018, 0x02020000, 0x0010614b, 0x8c000510, + 0xb0000018, 0x02020000, 0x001061f0, 0x8c000510, 0x040207d8, 0x1c01f000, 0x59a80251, 0x81640480, 0x04001019, 0x41626000, 0x41580000, 0x59300a03, 0x82040d80, 0x00000000, 0x04020009, 0x4a026203, 0x00000008, 0x8166c840, 0x8332c400, 0x00000024, 0x81600480, 0x04021009, 0x1c01f000, 0x83326400, 0x00000024, 0x81300c80, 0x040017f1, 0x42026000, - 0x0010f584, 0x0401f7ee, 0x837ac540, 0x0010f584, - 0x1c01f000, 0x42000000, 0x0010bc10, 0x0201f800, - 0x0010ad1d, 0x4967c857, 0x80026580, 0x1c01f000, - 0x83300480, 0x0010f584, 0x02001800, 0x0010032d, + 0x0010f694, 0x0401f7ee, 0x837ac540, 0x0010f694, + 0x1c01f000, 0x42000000, 0x0010bd10, 0x0201f800, + 0x0010ae10, 0x4967c857, 0x80026580, 0x1c01f000, + 0x83300480, 0x0010f694, 0x02001800, 0x0010032d, 0x41580000, 0x81300480, 0x0402100c, 0x457a6000, 0x4a026202, 0x0000ffff, 0x04011000, 0x83300400, 0x00000003, 0x4803c840, 0x4a03c842, 0x00000021, @@ -11873,79 +11930,79 @@ static const uint32_t isp_2400_risc_code[] = { 0x4803c840, 0x4a03c842, 0x00000021, 0x1c01f000, 0x4d340000, 0x5932680a, 0x59300407, 0x82000500, 0x0000001f, 0x0c01f803, 0x5c026800, 0x1c01f000, - 0x00107126, 0x00107139, 0x00107153, 0x00020a5c, - 0x00109329, 0x00109344, 0x00020ad1, 0x00107126, - 0x00107139, 0x00105d89, 0x0010716c, 0x00107126, - 0x00107126, 0x00107126, 0x00107126, 0x00107126, - 0x00108e6e, 0x0010a263, 0x0010a959, 0x0010ab49, - 0x00107126, 0x00107126, 0x00107126, 0x00107126, - 0x00107126, 0x00107126, 0x00107126, 0x00107126, - 0x00107126, 0x00107126, 0x00107126, 0x00107126, + 0x001071b9, 0x001071cc, 0x001071e6, 0x00020a5c, + 0x001093e1, 0x001093fc, 0x00020ad1, 0x001071b9, + 0x001071cc, 0x00105e2e, 0x001071ff, 0x001071b9, + 0x001071b9, 0x001071b9, 0x001071b9, 0x001071b9, + 0x00108f27, 0x0010a342, 0x0010aa4c, 0x0010ac3c, + 0x001071b9, 0x001071b9, 0x001071b9, 0x001071b9, + 0x001071b9, 0x001071b9, 0x001071b9, 0x001071b9, + 0x001071b9, 0x001071b9, 0x001071b9, 0x001071b9, 0x59300203, 0x82000c80, 0x0000000e, 0x02021800, - 0x0010032d, 0x0c01f001, 0x0010716a, 0x00107d8a, - 0x00020a70, 0x00107f61, 0x00107ffb, 0x0010716a, - 0x0010716a, 0x0010716a, 0x00107d6f, 0x0010716a, - 0x0010716a, 0x0010716a, 0x0010716a, 0x001081e8, + 0x0010032d, 0x0c01f001, 0x001071fd, 0x00107e31, + 0x00020a70, 0x00108008, 0x001080a2, 0x001071fd, + 0x001071fd, 0x001071fd, 0x00107e16, 0x001071fd, + 0x001071fd, 0x001071fd, 0x001071fd, 0x0010828f, 0x83380480, 0x00000058, 0x04021007, 0x83380480, 0x00000040, 0x04001004, 0x4d2c0000, 0x0c01f803, - 0x5c025800, 0x1c01f000, 0x00107e14, 0x00107e14, - 0x00107e14, 0x00107e14, 0x00107e14, 0x00107e16, - 0x00107ee3, 0x00107e14, 0x00107e14, 0x00107e14, - 0x00107e14, 0x00107e14, 0x00107e14, 0x00107e14, - 0x00107e14, 0x00107e14, 0x00107e14, 0x00107e14, - 0x00107e14, 0x00107ee7, 0x00020a92, 0x00107e14, - 0x00107ee6, 0x00107ee8, 0x59325809, 0x59300812, + 0x5c025800, 0x1c01f000, 0x00107ebb, 0x00107ebb, + 0x00107ebb, 0x00107ebb, 0x00107ebb, 0x00107ebd, + 0x00107f8a, 0x00107ebb, 0x00107ebb, 0x00107ebb, + 0x00107ebb, 0x00107ebb, 0x00107ebb, 0x00107ebb, + 0x00107ebb, 0x00107ebb, 0x00107ebb, 0x00107ebb, + 0x00107ebb, 0x00107f8e, 0x00020a92, 0x00107ebb, + 0x00107f8d, 0x00107f8f, 0x59325809, 0x59300812, 0x59301402, 0x59340200, 0x8c00050e, 0x0402001c, 0x0401f826, 0x04000005, 0x4a025a05, 0x00000103, 0x497a580a, 0x0401f009, 0x4a025a05, 0x00000103, 0x4a025a07, 0x00000000, 0x497a580a, 0x800409c0, - 0x02020800, 0x00107fc6, 0x48065808, 0x480a5c07, + 0x02020800, 0x0010806d, 0x48065808, 0x480a5c07, 0x0201f800, 0x000203ab, 0x5934000f, 0x5934140b, 0x80081040, 0x04001002, 0x480a6c0b, 0x80000540, 0x02020800, 0x00020327, 0x0401f75e, 0x592c020b, 0x8c000502, 0x040007e3, 0x800409c0, 0x040007e7, 0x592c0209, 0x8c00050e, 0x040207e4, 0x4933c857, - 0x0201f000, 0x00108aad, 0x592c020b, 0x8c000500, + 0x0201f000, 0x00108b66, 0x592c020b, 0x8c000500, 0x04000010, 0x59300016, 0x592c3810, 0x801c3c80, 0x0400000c, 0x4a025a07, 0x00000015, 0x8c1c3d3e, 0x04000005, 0x4a025a07, 0x00000007, 0x801c3880, 0x801c3800, 0x481fc857, 0x821c0d40, 0x00000000, 0x1c01f000, 0x59300203, 0x82003480, 0x0000000e, - 0x02021800, 0x0010032d, 0x0c01f001, 0x00109363, - 0x00020ae5, 0x00109ae5, 0x00109af3, 0x00020b01, - 0x00109363, 0x00109be6, 0x00020b20, 0x00109363, - 0x00109363, 0x00109363, 0x00109363, 0x00109363, - 0x00109363, 0x83380580, 0x00000013, 0x02020000, - 0x00109a6c, 0x59300403, 0x82027480, 0x00000044, + 0x02021800, 0x0010032d, 0x0c01f001, 0x0010941b, + 0x00020ae5, 0x00109bb1, 0x00109bbf, 0x00020b01, + 0x0010941b, 0x00109cb5, 0x00020b20, 0x0010941b, + 0x0010941b, 0x0010941b, 0x0010941b, 0x0010941b, + 0x0010941b, 0x83380580, 0x00000013, 0x02020000, + 0x00109b38, 0x59300403, 0x82027480, 0x00000044, 0x02021800, 0x0010032d, 0x82000480, 0x00000040, - 0x02001800, 0x0010032d, 0x0c01f001, 0x00109ac9, - 0x00020af7, 0x00109acb, 0x00109add, 0x59325809, + 0x02001800, 0x0010032d, 0x0c01f001, 0x00109b95, + 0x00020af7, 0x00109b97, 0x00109ba9, 0x59325809, 0x832c0500, 0x00ff0000, 0x04000005, 0x592c0c0b, - 0x8c040d1a, 0x02020000, 0x00109ad8, 0x0401fe7a, + 0x8c040d1a, 0x02020000, 0x00109ba4, 0x0401fe7a, 0x0401f710, 0x83380580, 0x00000048, 0x04000007, - 0x83380580, 0x00000053, 0x02000000, 0x00109b88, + 0x83380580, 0x00000053, 0x02000000, 0x00109c57, 0x0201f800, 0x0010032d, 0x59300020, 0x59301012, 0x5930080a, 0x58040a00, 0x8c040d0e, 0x02020000, - 0x00109b64, 0x800811c0, 0x02020000, 0x00109b71, - 0x59300020, 0x80000540, 0x02020000, 0x00109b7f, + 0x00109c33, 0x800811c0, 0x02020000, 0x00109c40, + 0x59300020, 0x80000540, 0x02020000, 0x00109c4e, 0x59325809, 0x592c040b, 0x8c00051e, 0x02000000, - 0x00109b5a, 0x42027000, 0x00000041, 0x0401f001, + 0x00109c29, 0x42027000, 0x00000041, 0x0401f001, 0x83380480, 0x00000054, 0x02021800, 0x0010032d, - 0x83380480, 0x00000040, 0x02001000, 0x00109ba5, - 0x0c01f001, 0x00109bb1, 0x00020b3d, 0x00109bbd, - 0x00109bc4, 0x00109bb1, 0x00109bb1, 0x00109bb1, - 0x00109bb1, 0x00109bb3, 0x00109bb8, 0x00109bb8, - 0x00109bb1, 0x00109bb1, 0x00109bb1, 0x00109bb1, - 0x00109bb8, 0x00109bb1, 0x00109bb8, 0x00109bb1, - 0x00109bb3, 0x4a026203, 0x00000001, 0x493a6403, + 0x83380480, 0x00000040, 0x02001000, 0x00109c74, + 0x0c01f001, 0x00109c80, 0x00020b3d, 0x00109c8c, + 0x00109c93, 0x00109c80, 0x00109c80, 0x00109c80, + 0x00109c80, 0x00109c82, 0x00109c87, 0x00109c87, + 0x00109c80, 0x00109c80, 0x00109c80, 0x00109c80, + 0x00109c87, 0x00109c80, 0x00109c87, 0x00109c80, + 0x00109c82, 0x4a026203, 0x00000001, 0x493a6403, 0x42000800, 0x80002042, 0x0401f66f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x6bc7416d, 0x00000000, - 0x00000000, 0x0010d600, 0x00001ab8, 0x42000000, - 0x0010f0f0, 0x42001000, 0x0010f0e1, 0x48001000, - 0x42013800, 0x0010f4f0, 0x42000000, 0x0010f0e0, + 0x00000000, 0x00000000, 0x6bc6a178, 0x00000000, + 0x00000000, 0x0010d700, 0x00001ac0, 0x42000000, + 0x0010f200, 0x42001000, 0x0010f1f1, 0x48001000, + 0x42013800, 0x0010f600, 0x42000000, 0x0010f1f0, 0x489c0000, 0x409d4000, 0x409d6800, 0x1c01f000, 0x4200d000, 0x0000000d, 0x42000000, 0x00000002, 0x4800d000, 0x0401f7fb, 0x4200d000, 0x0000000d, @@ -11953,7 +12010,7 @@ static const uint32_t isp_2400_risc_code[] = { 0x1c01f000, 0x809d3840, 0x48813800, 0x4933c857, 0x5931040b, 0x82817480, 0x00000038, 0x0400000d, 0x0400100c, 0x82810480, 0x00000038, 0x4a025a06, - 0x00000038, 0x0201f800, 0x001031a2, 0x40c65800, + 0x00000038, 0x0201f800, 0x001031ac, 0x40c65800, 0x80c589c0, 0x040207f4, 0x4178d000, 0x0401f004, 0x48825a06, 0x4200d000, 0x00000001, 0x40698800, 0x589d0000, 0x809d3800, 0x1c01f000, 0x42038000, @@ -11984,21 +12041,21 @@ static const uint32_t isp_2400_risc_code[] = { 0xe1290008, 0x486f9122, 0x0401f7e2, 0x4a039100, 0x0000e980, 0x1c01f000, 0x59c8d007, 0x8c68d500, 0x04000003, 0x4a03900d, 0x00000030, 0x1c01f000, - 0x0201f800, 0x001060fa, 0x59b8d0ea, 0x8268d500, + 0x0201f800, 0x0010619f, 0x59b8d0ea, 0x8268d500, 0x00000007, 0x82697480, 0x00000003, 0x04000002, 0x0401f003, 0x4a0370e8, 0x00000001, 0x1c01f000, 0x4a038805, 0x00020000, 0x4200d000, 0x0000003c, - 0x0201f800, 0x001010d9, 0x4a038891, 0x0000ffff, + 0x0201f800, 0x001010da, 0x4a038891, 0x0000ffff, 0x59c97035, 0x48bb9035, 0x4a03900d, 0x00000040, - 0x42038000, 0x00007700, 0x0201f800, 0x00100c06, + 0x42038000, 0x00007700, 0x0201f800, 0x00100c07, 0x4a038006, 0x20000000, 0x42038000, 0x00007720, - 0x0201f800, 0x00100c06, 0x4a038006, 0x20000000, + 0x0201f800, 0x00100c07, 0x4a038006, 0x20000000, 0x4a03a005, 0x20000000, 0x4a03a005, 0x30000000, 0x4a03b805, 0x30000001, 0x4a03b805, 0x20000000, 0x59d0d006, 0x8c68d50a, 0x040207fe, 0x59dcd006, 0x8c68d50a, 0x040207fb, 0x1c01f000, 0x4203a000, 0x00007600, 0x4200d000, 0x00000040, 0x0201f800, - 0x001010d9, 0x4a03a00a, 0x00000001, 0x4a03a005, + 0x001010da, 0x4a03a00a, 0x00000001, 0x4a03a005, 0x20000000, 0x59d0d006, 0x4a03a005, 0x30000000, 0x59d0d006, 0x8c68d50a, 0x040207fe, 0x59d0d005, 0x59a0d211, 0x59a0dc11, 0x806c00e0, 0x8068d540, @@ -12023,24 +12080,24 @@ static const uint32_t isp_2400_risc_code[] = { 0x59a8d00d, 0x41640000, 0x80697480, 0x04000015, 0x4967c857, 0x59a9704f, 0x48bbc857, 0x59a9704e, 0x48bbc857, 0x59a9704d, 0x48bbc857, 0x4a034407, - 0x00000018, 0x0201f800, 0x00101cfd, 0x0401f12b, - 0x4a034407, 0x00000005, 0x0201f800, 0x00101cfd, - 0x0401f126, 0x0201f800, 0x00101d05, 0x0401f123, + 0x00000018, 0x0201f800, 0x00101d02, 0x0401f12b, + 0x4a034407, 0x00000005, 0x0201f800, 0x00101d02, + 0x0401f126, 0x0201f800, 0x00101d0a, 0x0401f123, 0x59a8d04e, 0x59a8004d, 0x80697480, 0x040207e9, - 0x0201f800, 0x00106106, 0x598e600f, 0x0201f800, - 0x00106381, 0x0201f800, 0x00106106, 0x408e3000, - 0x0201f800, 0x00106705, 0x59926004, 0x813261c0, - 0x0400000d, 0x0201f800, 0x0010629a, 0x0201f800, - 0x001060d8, 0x0201f800, 0x001060e1, 0x42027800, + 0x0201f800, 0x001061ab, 0x598e600f, 0x0201f800, + 0x00106426, 0x0201f800, 0x001061ab, 0x408e3000, + 0x0201f800, 0x001067aa, 0x59926004, 0x813261c0, + 0x0400000d, 0x0201f800, 0x0010633f, 0x0201f800, + 0x0010617d, 0x0201f800, 0x00106186, 0x42027800, 0x00001000, 0x42028000, 0x0000002e, 0x0201f800, - 0x0010e35f, 0x811a3000, 0x83197480, 0x00000004, - 0x040007ec, 0x040017eb, 0x0201f800, 0x001007ca, - 0x0201f800, 0x0010247e, 0x497b5060, 0x497b4408, - 0x4201d000, 0x003d0900, 0x0201f800, 0x00105961, + 0x0010e46f, 0x811a3000, 0x83197480, 0x00000004, + 0x040007ec, 0x040017eb, 0x0201f800, 0x001007c8, + 0x0201f800, 0x00102488, 0x497b5060, 0x497b4408, + 0x4201d000, 0x003d0900, 0x0201f800, 0x00105a06, 0x59c50880, 0x59c510a3, 0x497b4002, 0x0401febc, 0x0401ff5b, 0x4a03a005, 0x10000000, 0x59c4d005, 0x8268d540, 0x000000f0, 0x486b8805, 0x0401fed4, - 0x0201f800, 0x00102487, 0x40c50000, 0x80c589c0, + 0x0201f800, 0x00102491, 0x40c50000, 0x80c589c0, 0x04020020, 0x59c8d001, 0x8068d1c0, 0x0402001d, 0x59dcd006, 0x8268d500, 0x43000f80, 0x0400000a, 0x59dcd006, 0x82697480, 0x00000000, 0x83f17500, @@ -12052,7 +12109,7 @@ static const uint32_t isp_2400_risc_code[] = { 0x808101c0, 0x04020090, 0x59a0d408, 0x82697480, 0x0000dddd, 0x0400008c, 0x59c0d008, 0x8268d500, 0x0fffffff, 0x59c8d818, 0x826c0500, 0xf0000000, - 0x8068d540, 0x486b8008, 0x0201f800, 0x00100c06, + 0x8068d540, 0x486b8008, 0x0201f800, 0x00100c07, 0x59c0d806, 0x4a038006, 0x10000000, 0x59c0d809, 0x4883900d, 0x59c8d020, 0x8068e130, 0x59c8d020, 0x82690500, 0x00ffffff, 0x59c8d021, 0x8268fd00, @@ -12061,16 +12118,16 @@ static const uint32_t isp_2400_risc_code[] = { 0x04020004, 0x82717480, 0x00000032, 0x04000073, 0x486fc857, 0x4873c857, 0x4877c857, 0x4883c857, 0x487fc857, 0x487bc857, 0x59a9700f, 0x48bbc857, - 0x0201f800, 0x0010249e, 0x4a035060, 0x00000001, + 0x0201f800, 0x001024a8, 0x4a035060, 0x00000001, 0x4200d000, 0x00000064, 0x0401f004, 0x8068d1c0, 0x04000070, 0x8068d040, 0x59c0d807, 0x8c6cdd04, - 0x040007fb, 0x0401fecb, 0x0201f800, 0x00106420, + 0x040007fb, 0x0401fecb, 0x0201f800, 0x001064c5, 0x0401febc, 0x4201d000, 0x000186a0, 0x0201f800, - 0x00105961, 0x488b88a3, 0x48878880, 0x59a8d060, - 0x8068d1c0, 0x0402004e, 0x0201f800, 0x00101cba, - 0x0401f07a, 0x4887c857, 0x0201f800, 0x00101d01, - 0x0401f076, 0x0201f800, 0x001070f2, 0x40c66000, - 0x80c589c0, 0x0400003f, 0x0201f800, 0x001031a2, + 0x00105a06, 0x488b88a3, 0x48878880, 0x59a8d060, + 0x8068d1c0, 0x0402004e, 0x0201f800, 0x00101cbf, + 0x0401f07a, 0x4887c857, 0x0201f800, 0x00101d06, + 0x0401f076, 0x0201f800, 0x00107185, 0x40c66000, + 0x80c589c0, 0x0400003f, 0x0201f800, 0x001031ac, 0x40c65800, 0x80c589c0, 0x04000020, 0x48898a05, 0x48898c05, 0x4882620b, 0x4886640b, 0x59a0d40f, 0x8068d0e0, 0x59a0da0f, 0x406c0000, 0x8068d540, @@ -12079,23 +12136,23 @@ static const uint32_t isp_2400_risc_code[] = { 0x8068d0e0, 0x59a0da0e, 0x406c0000, 0x8068d540, 0x486a600e, 0x59a0d411, 0x8068d0e0, 0x59a0da11, 0x406c0000, 0x8068d540, 0x486a600f, 0x0401fdfe, - 0x80c589c0, 0x04020006, 0x0201f800, 0x001070b2, + 0x80c589c0, 0x04020006, 0x0201f800, 0x00107141, 0x4a034407, 0x00000002, 0x0401f720, 0x48ee6022, 0x58ee580c, 0x4a01d801, 0x00000001, 0x592cd206, 0x4869d805, 0x832cd400, 0x00000007, 0x4869d803, - 0x4895d806, 0x4891d807, 0x4a01d808, 0x0010d89e, + 0x4895d806, 0x4891d807, 0x4a01d808, 0x0010d99e, 0x4a034000, 0x00000001, 0x49334001, 0x0401fec2, 0x0401f036, 0x4a035060, 0x00000001, 0x0401f7aa, 0x4a034407, 0x00000003, 0x0401f708, 0x0201f800, - 0x00101d09, 0x0401f02d, 0x82757480, 0x000000e1, + 0x00101d0e, 0x0401f02d, 0x82757480, 0x000000e1, 0x0402078c, 0x407c0000, 0x80817480, 0x04020789, 0x59a8d00f, 0x80697480, 0x04020786, 0x8278d500, 0x000000f0, 0x04020783, 0x0401fe50, 0x0401f78d, - 0x4a035060, 0x00000001, 0x0201f800, 0x001016e7, + 0x4a035060, 0x00000001, 0x0201f800, 0x001016e8, 0x80c589c0, 0x04000008, 0x59c4d005, 0x8268d500, 0x000000f0, 0x04000007, 0x4a034408, 0x0000bbbb, 0x0401f789, 0x4a034408, 0x0000aaaa, 0x0401f786, - 0x0201f800, 0x00102487, 0x80c57040, 0x04000008, + 0x0201f800, 0x00102491, 0x80c57040, 0x04000008, 0x59c0d007, 0x8268d500, 0x000501c0, 0x0400077e, 0x4a034408, 0x0000dddd, 0x0401f77b, 0x4a034408, 0x0000cccc, 0x0401f778, 0x589d2805, 0x589d2004, @@ -12106,10 +12163,10 @@ static const uint32_t isp_2400_risc_code[] = { 0x58ee580c, 0x4979d801, 0x592cd206, 0x4869d805, 0x832cd400, 0x00000007, 0x4869d803, 0x5931700c, 0x48b9d806, 0x5931700d, 0x48b9d807, 0x4a01d808, - 0x0010d89e, 0x4a034000, 0x00000001, 0x40826000, + 0x0010d99e, 0x4a034000, 0x00000001, 0x40826000, 0x0401fe69, 0x0401f009, 0x41310000, 0x59a26001, - 0x4933c857, 0x0201f800, 0x001070b5, 0x40826000, - 0x0201f800, 0x00101d09, 0x589d0000, 0x809d3800, + 0x4933c857, 0x0201f800, 0x00107144, 0x40826000, + 0x0201f800, 0x00101d0e, 0x589d0000, 0x809d3800, 0x1c01f000, 0x829d3c80, 0x00000005, 0x48813800, 0x48853801, 0x48893802, 0x488d3803, 0x48913804, 0x412d1000, 0x41310800, 0x59a26001, 0x4069d800, @@ -12125,18 +12182,18 @@ static const uint32_t isp_2400_risc_code[] = { 0x58ee580c, 0x592cd205, 0x82697480, 0x00000103, 0x04000030, 0x41351800, 0x41452000, 0x592cd405, 0x8468d55e, 0x486a5c05, 0x42028800, 0x000007fd, - 0x4200d000, 0x00fffffd, 0x0201f800, 0x00103dbf, + 0x4200d000, 0x00fffffd, 0x0201f800, 0x00103dd5, 0x40c66800, 0x80c589c0, 0x04000010, 0x0201f800, - 0x00108c35, 0x80c589c0, 0x04000018, 0x40866000, - 0x4881d801, 0x4a01d808, 0x0010d878, 0x0401f00f, - 0x0201f800, 0x00101cf5, 0x0201f800, 0x001070b2, + 0x00108cee, 0x80c589c0, 0x04000018, 0x40866000, + 0x4881d801, 0x4a01d808, 0x0010d978, 0x0401f00f, + 0x0201f800, 0x00101cfa, 0x0201f800, 0x00107141, 0x40866000, 0x0401f019, 0x59a26001, 0x0201f800, - 0x001070b2, 0x40866000, 0x4a034407, 0x00000002, - 0x0201f800, 0x00101cfd, 0x408a5800, 0x408e6800, - 0x40928800, 0x0401f00d, 0x0201f800, 0x001070b2, + 0x00107141, 0x40866000, 0x4a034407, 0x00000002, + 0x0201f800, 0x00101d02, 0x408a5800, 0x408e6800, + 0x40928800, 0x0401f00d, 0x0201f800, 0x00107141, 0x40866000, 0x4a034407, 0x00000004, 0x0401f7f5, - 0x0201f800, 0x001070b2, 0x40866000, 0x0201f800, - 0x00101cba, 0x408a5800, 0x589d2004, 0x589d1803, + 0x0201f800, 0x00107141, 0x40866000, 0x0201f800, + 0x00101cbf, 0x408a5800, 0x589d2004, 0x589d1803, 0x589d1002, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000005, 0x1c01f000, 0x829d3c80, 0x00000004, 0x48813800, 0x48853801, 0x48893802, 0x488d3803, @@ -12153,12 +12210,12 @@ static const uint32_t isp_2400_risc_code[] = { 0x4883a003, 0x59a0d40e, 0x8068d0e0, 0x59a0da0e, 0x406c0000, 0x80691d40, 0x59a0d411, 0x8068d0e0, 0x59a0da11, 0x406c0000, 0x80691540, 0x4201d000, - 0x00003a98, 0x0201f800, 0x00105961, 0x4883a002, + 0x00003a98, 0x0201f800, 0x00105a06, 0x4883a002, 0x59a97061, 0x48bba008, 0x488fa000, 0x488ba001, 0x59d0d005, 0x4a03a005, 0x10000000, 0x4178d000, 0x04025002, 0x8068d000, 0x8068d1c0, 0x04020007, 0x5884d001, 0x8068d000, 0x48690801, 0x4200d800, - 0x00000001, 0x0401f011, 0x4200d000, 0x0010d90f, + 0x00000001, 0x0401f011, 0x4200d000, 0x0010da0f, 0x4084d800, 0x4178e000, 0x0201f800, 0x0010032a, 0x0401f7f4, 0x497a600d, 0x592e5801, 0x812e59c0, 0x040007df, 0x492e600c, 0x832cdc00, 0x00000006, @@ -12173,7 +12230,7 @@ static const uint32_t isp_2400_risc_code[] = { 0x8c68d504, 0x0400000a, 0x59d0d006, 0x82697480, 0x00000000, 0x83f17500, 0x0c000000, 0x04000004, 0x82b97580, 0x0c000000, 0x04020010, 0x0401f033, - 0x4200d000, 0x0010d977, 0x4080e000, 0x0201f800, + 0x4200d000, 0x0010da77, 0x4080e000, 0x0201f800, 0x0010032a, 0x59d0d006, 0x82697480, 0x00000000, 0x83f17500, 0x0c000000, 0x040007f5, 0x82b97480, 0x0c000000, 0x040007f2, 0x4a03a005, 0x20000000, @@ -12186,9 +12243,9 @@ static const uint32_t isp_2400_risc_code[] = { 0x0401ff4e, 0x0401f009, 0x4a034408, 0x0000dddd, 0x0401f006, 0x48690001, 0x4080d000, 0x0401ff47, 0x80c589c0, 0x040207f6, 0x589d0000, 0x809d3800, - 0x1c01f000, 0x0201f800, 0x001016e7, 0x80c589c0, + 0x1c01f000, 0x0201f800, 0x001016e8, 0x80c589c0, 0x04020002, 0x0401f009, 0x4a034407, 0x00000017, - 0x0201f800, 0x00101cfd, 0x4203e000, 0x50000000, + 0x0201f800, 0x00101d02, 0x4203e000, 0x50000000, 0x497bc856, 0x0401f000, 0x1c01f000, 0x4068d800, 0x59c17009, 0x48bbc857, 0x59c0e009, 0x8270d500, 0x00e00000, 0x04000019, 0x586cd000, 0x486b4210, @@ -12229,7 +12286,7 @@ static const uint32_t isp_2400_risc_code[] = { 0x48bbc857, 0x59c0d007, 0x82697480, 0x00000000, 0x83f17500, 0x0c000000, 0x04000004, 0x82b97580, 0x0c000000, 0x04020010, 0x0401f035, 0x4200d000, - 0x0010da59, 0x4080e000, 0x0201f800, 0x0010032a, + 0x0010db59, 0x4080e000, 0x0201f800, 0x0010032a, 0x59c0d007, 0x82697480, 0x00000000, 0x83f17500, 0x0c000000, 0x040007f5, 0x82b97480, 0x0c000000, 0x040007f2, 0x4a038006, 0x20000000, 0x59c0d007, @@ -12244,12 +12301,12 @@ static const uint32_t isp_2400_risc_code[] = { 0x0401ff54, 0x80c589c0, 0x040207f6, 0x589d0000, 0x809d3800, 0x1c01f000, 0x59a26000, 0x813261c0, 0x04000009, 0x59325809, 0x812e59c0, 0x04000005, - 0x0201f800, 0x001070b2, 0x0201f800, 0x00100589, + 0x0201f800, 0x00107141, 0x0201f800, 0x00100589, 0x497b4000, 0x59a26001, 0x813261c0, 0x04000009, 0x59325809, 0x812e59c0, 0x04000005, 0x0201f800, - 0x001070b2, 0x0201f800, 0x00100589, 0x497b4001, + 0x00107141, 0x0201f800, 0x00100589, 0x497b4001, 0x1c01f000, 0x809d3840, 0x48813800, 0x40690000, - 0x0201f800, 0x0010249e, 0x0201f800, 0x0010d6b1, + 0x0201f800, 0x001024a8, 0x0201f800, 0x0010d7b1, 0x5880d00b, 0x8068d1c0, 0x04020004, 0x5880d00c, 0x8068d1c0, 0x04000007, 0x59a0d00d, 0x8068d1c0, 0x0402000a, 0x4200d000, 0x00000001, 0x0401f009, @@ -12278,7 +12335,7 @@ static const uint32_t isp_2400_risc_code[] = { 0x589d0000, 0x829d3c00, 0x00000003, 0x1c01f000, 0x809d3840, 0x48813800, 0x40690000, 0x497bc856, 0x4203a000, 0x00007600, 0x4200d000, 0x00000040, - 0x0201f800, 0x001010d9, 0x4a03a00a, 0x00000001, + 0x0201f800, 0x001010da, 0x4a03a00a, 0x00000001, 0x4a03a005, 0x20000000, 0x59d0d006, 0x4a03a005, 0x30000000, 0x59d0d006, 0x8c68d50a, 0x040207fe, 0x59a0d20d, 0x48690005, 0x8068d1c0, 0x04020002, @@ -12287,7 +12344,7 @@ static const uint32_t isp_2400_risc_code[] = { 0x8068d0e0, 0x59a0da0e, 0x406c0000, 0x8068d540, 0x48690006, 0x59a0d40c, 0x8068d0e0, 0x59a0da0c, 0x826c0500, 0x0000fffc, 0x8068d540, 0x48690009, - 0x486ba003, 0x0201f800, 0x001070f2, 0x40c66000, + 0x486ba003, 0x0201f800, 0x00107185, 0x40c66000, 0x80c589c0, 0x0400004c, 0x49334001, 0x0201f800, 0x0010056c, 0x40c65800, 0x80c589c0, 0x0400003e, 0x4a025a05, 0x00000018, 0x4a025806, 0x00abcdef, @@ -12305,13 +12362,13 @@ static const uint32_t isp_2400_risc_code[] = { 0x03000000, 0x040007ef, 0x4979000a, 0x4178e000, 0x8270e400, 0x0000000c, 0x8068d840, 0x406cd000, 0x806cd9c0, 0x040207fb, 0x4871000a, 0x486d0005, - 0x0401f7e9, 0x4200d000, 0x0010db35, 0x4200d800, + 0x0401f7e9, 0x4200d000, 0x0010dc35, 0x4200d800, 0x0010056c, 0x4080e000, 0x0201f800, 0x0010032a, - 0x0401f7bc, 0x4200d000, 0x0010db35, 0x4200d800, - 0x001070f2, 0x4080e000, 0x0201f800, 0x0010032a, + 0x0401f7bc, 0x4200d000, 0x0010dc35, 0x4200d800, + 0x00107185, 0x4080e000, 0x0201f800, 0x0010032a, 0x0401f7ae, 0x589d0000, 0x809d3800, 0x1c01f000, 0x809d3840, 0x48813800, 0x40690000, 0x497bc856, - 0x42038000, 0x00007700, 0x0201f800, 0x00100c06, + 0x42038000, 0x00007700, 0x0201f800, 0x00100c07, 0x59c0d006, 0x59a0d40d, 0x48690005, 0x8068d1c0, 0x04020009, 0x497b9009, 0x59e0d003, 0x8268d540, 0x00008060, 0x486bc003, 0x4a038009, 0x00e00000, @@ -12321,7 +12378,7 @@ static const uint32_t isp_2400_risc_code[] = { 0x48690006, 0x59a0d40c, 0x8068d0e0, 0x59a0da0c, 0x826c0500, 0x0000fffc, 0x8068d540, 0x48690009, 0x486bc857, 0x58817009, 0x48bb8003, 0x0201f800, - 0x001070f2, 0x40c66000, 0x80c589c0, 0x04000057, + 0x00107185, 0x40c66000, 0x80c589c0, 0x04000057, 0x49334000, 0x0201f800, 0x0010056c, 0x40c65800, 0x80c589c0, 0x04000049, 0x4a025a05, 0x00000018, 0x4a025806, 0x00abcdef, 0x492e6009, 0x492e600c, @@ -12341,49 +12398,49 @@ static const uint32_t isp_2400_risc_code[] = { 0x4871000a, 0x486d0005, 0x832cd400, 0x00000006, 0x48690008, 0x4080d000, 0x0401feb2, 0x80c589c0, 0x040207ea, 0x59a0d408, 0x82697480, 0x0000dddd, - 0x04020791, 0x0401f011, 0x4200d000, 0x0010dbbd, + 0x04020791, 0x0401f011, 0x4200d000, 0x0010dcbd, 0x4200d800, 0x0010056c, 0x4080e000, 0x0201f800, - 0x0010032a, 0x0401f7b1, 0x4200d000, 0x0010dbbd, - 0x4200d800, 0x001070f2, 0x4080e000, 0x0201f800, + 0x0010032a, 0x0401f7b1, 0x4200d000, 0x0010dcbd, + 0x4200d800, 0x00107185, 0x4080e000, 0x0201f800, 0x0010032a, 0x0401f7a3, 0x589d0000, 0x809d3800, 0x1c01f000, 0x829d3c80, 0x00000002, 0x48813800, 0x48853801, 0x40690800, 0x406d0000, 0x0201f800, - 0x00101736, 0x40800000, 0x4084d000, 0x80c4dd00, - 0x0201f800, 0x0010173d, 0x589d0801, 0x589d0000, + 0x00101737, 0x40800000, 0x4084d000, 0x80c4dd00, + 0x0201f800, 0x0010173e, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000002, 0x1c01f000, 0x829d3c80, 0x00000002, 0x48813800, 0x48853801, 0x40690800, - 0x406d0000, 0x0201f800, 0x00101736, 0x40800000, - 0x4084d000, 0x80c4dd40, 0x0201f800, 0x0010173d, + 0x406d0000, 0x0201f800, 0x00101737, 0x40800000, + 0x4084d000, 0x80c4dd40, 0x0201f800, 0x0010173e, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000002, 0x1c01f000, 0x809d3840, 0x48813800, 0x4200d000, - 0x000000ef, 0x0201f800, 0x001013c7, 0x59c4d0a3, + 0x000000ef, 0x0201f800, 0x001013c8, 0x59c4d0a3, 0x8468d55a, 0x8468d53a, 0x486b88a3, 0x0201f800, - 0x00101419, 0x80c589c0, 0x04000043, 0x4200d000, - 0x00000001, 0x0201f800, 0x0010169c, 0x4200d000, - 0x00000001, 0x0201f800, 0x00101622, 0x4178d000, + 0x0010141a, 0x80c589c0, 0x04000043, 0x4200d000, + 0x00000001, 0x0201f800, 0x0010169d, 0x4200d000, + 0x00000001, 0x0201f800, 0x00101623, 0x4178d000, 0x4200d800, 0x00000004, 0x0401ffd5, 0x4201d000, - 0x00000014, 0x0201f800, 0x0010592d, 0x59c4d008, + 0x00000014, 0x0201f800, 0x001059d2, 0x59c4d008, 0x8468d54e, 0x8268d500, 0xffffffe1, 0x486b8808, 0x4a0388a7, 0x0000f7f7, 0x4a038805, 0x04000001, 0x4200d000, 0xbe20bfff, 0x4200d800, 0x80018000, - 0x0201f800, 0x00103a68, 0x4200d000, 0xfffeffff, - 0x4178d800, 0x0201f800, 0x00103a68, 0x42010000, + 0x0201f800, 0x00103a7b, 0x4200d000, 0xfffeffff, + 0x4178d800, 0x0201f800, 0x00103a7b, 0x42010000, 0x00001387, 0x0401f008, 0x80817040, 0x04000048, 0x80810040, 0x42000000, 0xffffffff, 0x80817480, 0x04000009, 0x4201d000, 0x00000014, 0x0201f800, - 0x0010592d, 0x0201f800, 0x001016e7, 0x80c589c0, + 0x001059d2, 0x0201f800, 0x001016e8, 0x80c589c0, 0x040007f2, 0x59c4d005, 0x8268dd00, 0x04000000, 0x8c68d534, 0x04020018, 0x59c4d0a4, 0x8268d500, 0x0000000f, 0x82697480, 0x00000008, 0x04020031, - 0x0401f011, 0x0201f800, 0x00101427, 0x80c589c0, - 0x04000006, 0x4178d000, 0x0201f800, 0x0010169c, + 0x0401f011, 0x0201f800, 0x00101428, 0x80c589c0, + 0x04000006, 0x4178d000, 0x0201f800, 0x0010169d, 0x4178d000, 0x0401f7bc, 0x4200d000, 0x00000002, - 0x0201f800, 0x0010169c, 0x4200d000, 0x00000002, + 0x0201f800, 0x0010169d, 0x4200d000, 0x00000002, 0x0401f7b5, 0x4200d000, 0x00020000, 0x0201f800, - 0x00103a6f, 0x4201d000, 0x00000064, 0x0201f800, - 0x0010592d, 0x4200d000, 0xfeffffff, 0x4200d800, - 0x02000000, 0x0201f800, 0x00103a68, 0x4200d000, - 0xfdffffff, 0x4178d800, 0x0201f800, 0x00103a68, + 0x00103a82, 0x4201d000, 0x00000064, 0x0201f800, + 0x001059d2, 0x4200d000, 0xfeffffff, 0x4200d800, + 0x02000000, 0x0201f800, 0x00103a7b, 0x4200d000, + 0xfdffffff, 0x4178d800, 0x0201f800, 0x00103a7b, 0x4a038805, 0x04000001, 0x59c4d0a4, 0x8268d500, 0x0000000f, 0x4178d800, 0x8068d1c0, 0x04020005, 0x4200d800, 0x00000001, 0x0401f002, 0x40c4d800, @@ -12396,45 +12453,45 @@ static const uint32_t isp_2400_risc_code[] = { 0x0402000e, 0x59a0d407, 0x82690500, 0x00000007, 0x82817480, 0x00000002, 0x04000015, 0x808101c0, 0x04000023, 0x80817040, 0x040000e0, 0x0201f800, - 0x00101d01, 0x0401f18d, 0x0201f800, 0x00101443, + 0x00101d06, 0x0401f18d, 0x0201f800, 0x00101444, 0x80c589c0, 0x040007f0, 0x4200d000, 0x00000002, - 0x0201f800, 0x0010169c, 0x4200d000, 0x00000002, - 0x0201f800, 0x00101622, 0x0401f7e7, 0x8d0e1d0e, - 0x0402000c, 0x0201f800, 0x0010470f, 0x80c589c0, + 0x0201f800, 0x0010169d, 0x4200d000, 0x00000002, + 0x0201f800, 0x00101623, 0x0401f7e7, 0x8d0e1d0e, + 0x0402000c, 0x0201f800, 0x0010474e, 0x80c589c0, 0x04020170, 0x836d7480, 0x00000003, 0x04020005, 0x59c4d0a4, 0x8268d500, 0x0000000f, 0x04000010, - 0x0201f800, 0x00101d05, 0x0401f170, 0x4200d000, + 0x0201f800, 0x00101d0a, 0x0401f170, 0x4200d000, 0x000000c0, 0x4200d800, 0x00000002, 0x0401ff28, 0x4080d000, 0x4200d800, 0x00000008, 0x0401ff24, 0x0401ff35, 0x80c589c0, 0x040000bb, 0x59a0d410, 0x8068d0e0, 0x59a0da10, 0x406c0000, 0x8068d540, 0x48694000, 0x497b4408, 0x4979400b, 0x4979400c, 0x4979400d, 0x49794002, 0x49794001, 0x0201f800, - 0x0010247e, 0x0201f800, 0x00106106, 0x598e600f, - 0x0201f800, 0x00106381, 0x0201f800, 0x00106106, - 0x417a3000, 0x0201f800, 0x00106705, 0x59926004, - 0x813261c0, 0x0400000d, 0x0201f800, 0x0010629a, - 0x0201f800, 0x001060d8, 0x0201f800, 0x001060e1, + 0x00102488, 0x0201f800, 0x001061ab, 0x598e600f, + 0x0201f800, 0x00106426, 0x0201f800, 0x001061ab, + 0x417a3000, 0x0201f800, 0x001067aa, 0x59926004, + 0x813261c0, 0x0400000d, 0x0201f800, 0x0010633f, + 0x0201f800, 0x0010617d, 0x0201f800, 0x00106186, 0x42027800, 0x00001000, 0x42028000, 0x0000002e, - 0x0201f800, 0x0010e35f, 0x811a3000, 0x83197480, + 0x0201f800, 0x0010e46f, 0x811a3000, 0x83197480, 0x00000004, 0x040007ec, 0x040017eb, 0x0201f800, - 0x001007ca, 0x59a8d06a, 0x8068d1c0, 0x0402007f, + 0x001007c8, 0x59a8d06a, 0x8068d1c0, 0x0402007f, 0x49794004, 0x497b4002, 0x40a0d000, 0x0401fe49, 0x59a0d408, 0x82697480, 0x0000dddd, 0x04000126, 0x40a0d000, 0x0401fdbb, 0x59a0d408, 0x82697480, 0x0000dddd, 0x04000120, 0x59a0d00d, 0x8068d1c0, 0x040200ef, 0x4979400e, 0x40a0d000, 0x0201f800, - 0x0010d90f, 0x0201f800, 0x0010d658, 0x58a0d004, + 0x0010da0f, 0x0201f800, 0x0010d758, 0x58a0d004, 0x8068d1c0, 0x04000053, 0x58a0e00e, 0x80717040, 0x0400007c, 0x59c8d001, 0x8068d1c0, 0x04020070, 0x59a0d002, 0x42000000, 0xfeedbeef, 0x80697480, 0x040000d8, 0x4a014003, 0x10000000, 0x40a0d000, 0x0401fc64, 0x4a034002, 0xfeedbeef, 0x40a0d000, - 0x0201f800, 0x0010d977, 0x59a0d408, 0x82697480, + 0x0201f800, 0x0010da77, 0x59a0d408, 0x82697480, 0x0000dddd, 0x04000028, 0x40a0d000, 0x0401fcb5, 0x59a0d408, 0x82697480, 0x0000dddd, 0x04000022, - 0x0201f800, 0x0010d69f, 0x59c4d005, 0x8c68d534, - 0x040200cf, 0x0201f800, 0x00102487, 0x80c589c0, + 0x0201f800, 0x0010d79f, 0x59c4d005, 0x8c68d534, + 0x040200cf, 0x0201f800, 0x00102491, 0x80c589c0, 0x040200ce, 0x59a0d00d, 0x8068d1c0, 0x04000016, 0x59a26000, 0x59a0d40d, 0x8068d1c0, 0x04000004, 0x5930d00e, 0x8068d1c0, 0x040207c7, 0x59a26001, @@ -12446,16 +12503,16 @@ static const uint32_t isp_2400_risc_code[] = { 0x04020042, 0x40a0d000, 0x0401fcf3, 0x80c589c0, 0x04020051, 0x58a0d000, 0x8068d1c0, 0x04020047, 0x0401f04d, 0x59c8d001, 0x8068d1c0, 0x040207af, - 0x40a0d000, 0x0201f800, 0x0010d977, 0x59a0d408, + 0x40a0d000, 0x0201f800, 0x0010da77, 0x59a0d408, 0x82697480, 0x0000dddd, 0x040007a8, 0x0201f800, - 0x00102487, 0x80c589c0, 0x040007f3, 0x0201f800, - 0x0010d9ce, 0x4a01400d, 0x0000aaaa, 0x4a01400e, + 0x00102491, 0x80c589c0, 0x040007f3, 0x0201f800, + 0x0010dace, 0x4a01400d, 0x0000aaaa, 0x4a01400e, 0x00000001, 0x0401f79d, 0x59c4d001, 0x8468d518, 0x486b8801, 0x0401f77f, 0x4200d000, 0x000000c0, 0x4080d800, 0x0401fe6a, 0x0401fe7b, 0x80c589c0, 0x04020747, 0x4088d000, 0x408cd800, 0x4090e000, 0x0201f800, 0x0010032a, 0x0401f741, 0x40a0d000, - 0x0201f800, 0x0010d9dc, 0x80c589c0, 0x0400078d, + 0x0201f800, 0x0010dadc, 0x80c589c0, 0x0400078d, 0x4a01400e, 0x00000001, 0x4200e000, 0x00000001, 0x58a0d000, 0x8068d040, 0x48694000, 0x4200d800, 0x00030d40, 0x80717040, 0x04020004, 0x0401f7c2, @@ -12464,8 +12521,8 @@ static const uint32_t isp_2400_risc_code[] = { 0x59c0d007, 0x8268d500, 0x000501c0, 0x04000058, 0x4a01400d, 0x0000dddd, 0x40a0d000, 0x0401fca6, 0x80c589c0, 0x04020004, 0x58a0d000, 0x8068d1c0, - 0x0402074c, 0x0201f800, 0x00106420, 0x0201f800, - 0x0010d6a5, 0x4201d000, 0x000186a0, 0x48978880, + 0x0402074c, 0x0201f800, 0x001064c5, 0x0201f800, + 0x0010d7a5, 0x4201d000, 0x000186a0, 0x48978880, 0x48938808, 0x488f88a3, 0x4887500f, 0x488b9040, 0x42038000, 0x00007700, 0x4a038009, 0xf4f60000, 0x4a038891, 0x0000ffff, 0x4a03900d, 0x00000040, @@ -12475,117 +12532,121 @@ static const uint32_t isp_2400_risc_code[] = { 0x04000013, 0x4200d000, 0x000000c0, 0x4200d800, 0xfffffffc, 0x0401fe04, 0x4178d000, 0x4200d800, 0xfffffff7, 0x0401fe00, 0x4178d000, 0x4200d800, - 0xfffffffb, 0x0401fdfc, 0x0201f800, 0x0010472b, + 0xfffffffb, 0x0401fdfc, 0x0201f800, 0x0010476a, 0x40c50000, 0x80c589c0, 0x04000034, 0x59a0d408, 0x82697480, 0x0000dddd, 0x0400000f, 0x58a0d80b, 0x806cd9c0, 0x04020007, 0x58a0d00c, 0x8068d1c0, 0x04020004, 0x58a0d00d, 0x8068d1c0, 0x0400003d, 0x486f4407, 0x58a0d00c, 0x486b4208, 0x58a0d00d, - 0x486b4408, 0x0201f800, 0x00101d0d, 0x0401f037, + 0x486b4408, 0x0201f800, 0x00101d12, 0x0401f037, 0x4a014003, 0x10000004, 0x0401f729, 0x40a0d000, - 0x0201f800, 0x0010d90f, 0x0401f70f, 0x0201f800, - 0x0010d9ce, 0x0401f7a7, 0x40a0d000, 0x0401fc4e, + 0x0201f800, 0x0010da0f, 0x0401f70f, 0x0201f800, + 0x0010dace, 0x0401f7a7, 0x40a0d000, 0x0401fc4e, 0x80c589c0, 0x040007a5, 0x0401f7ab, 0x4a01400d, 0x0000bbbb, 0x0401f787, 0x4a01400d, 0x0000cccc, 0x58a0d000, 0x486b4210, 0x58a0d000, 0x8068d120, 0x486b4410, 0x0401f77f, 0x59a8d06b, 0x0201f800, - 0x001018fd, 0x0401f7b6, 0x4a0388a7, 0x0000f7f7, + 0x001018fe, 0x0401f7b6, 0x4a0388a7, 0x0000f7f7, 0x4200d000, 0xbeffffff, 0x4200d800, 0x80018000, - 0x0201f800, 0x00103a68, 0x4200d000, 0xfffeffff, - 0x4080d800, 0x0201f800, 0x00103a68, 0x0401f7c0, - 0x4a034407, 0x00000016, 0x0201f800, 0x00101cfd, + 0x0201f800, 0x00103a7b, 0x4200d000, 0xfffeffff, + 0x4080d800, 0x0201f800, 0x00103a7b, 0x0401f7c0, + 0x4a034407, 0x00000016, 0x0201f800, 0x00101d02, 0x0401f006, 0x40a0d000, 0x0401fc27, 0x0401f786, - 0x0201f800, 0x00101cba, 0x589d2805, 0x589d2004, + 0x0201f800, 0x00101cbf, 0x589d2805, 0x589d2004, 0x589d1803, 0x589d1002, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000015, 0x589d4000, 0x809d3800, 0x1c01f000, 0x4937c857, 0x5934d200, 0x8468d502, - 0x486a6a00, 0x1c01f000, 0x809d3840, 0x48813800, + 0x486a6a00, 0x1c01f000, 0x829d3c80, 0x00000002, + 0x48813800, 0x48853801, 0x59a8d006, 0x82690d00, + 0x00004000, 0x4178d800, 0x8c68d51c, 0x0402001f, 0x4937c857, 0x42010000, 0x00000001, 0x0201f800, - 0x001070f2, 0x40c66000, 0x80c589c0, 0x04000014, - 0x4935880a, 0x48818c07, 0x417a7800, 0x0201f800, - 0x00103d7f, 0x59a8d016, 0x8068d000, 0x486b5016, - 0x599cd019, 0x417a7000, 0x8c68d50e, 0x04020003, - 0x42027000, 0x00000004, 0x0201f800, 0x00107123, - 0x599cd208, 0x486a6c12, 0x41790000, 0x40818800, - 0x589d0000, 0x809d3800, 0x1c01f000, 0x829d3c80, - 0x00000004, 0x48813800, 0x48853801, 0x48893802, - 0x488d3803, 0x41350800, 0x41451000, 0x412d1800, - 0x4943c857, 0x493fc857, 0x0201f800, 0x00106106, - 0x40c50000, 0x59a8d073, 0x82697480, 0x00000000, - 0x83f17500, 0x0c000000, 0x04000004, 0x82b97580, - 0x0c000000, 0x04020068, 0x0201f800, 0x0010e613, - 0x0201f800, 0x0010e603, 0x0201f800, 0x0010e6ab, - 0x0201f800, 0x0010e80e, 0x808101c0, 0x04000003, - 0x0201f800, 0x001060fa, 0x417a8800, 0x0401f00a, - 0x58c4d200, 0x8c68d50e, 0x0400000e, 0x81468800, - 0x83457480, 0x000007ef, 0x83f17500, 0x03000000, - 0x04000026, 0x0201f800, 0x00103e62, 0x40c66800, - 0x80c589c0, 0x040007f6, 0x8d3e7d06, 0x040207f1, - 0x8d3e7d18, 0x0400003f, 0x5935000f, 0x0401f007, - 0x49410207, 0x40825800, 0x58810000, 0x492fc857, - 0x0201f800, 0x000203ab, 0x808101c0, 0x040207f9, - 0x497a680f, 0x497a6810, 0x4937c857, 0x4a026c00, - 0x00000707, 0x497a6a03, 0x497a6811, 0x599cd401, - 0x486a6a0b, 0x5934d402, 0x8268d500, 0x000000ff, - 0x486a6c02, 0x81468800, 0x83457480, 0x000007ef, - 0x040007dd, 0x040017dc, 0x8d3e7d02, 0x0400002f, - 0x497b5018, 0x42028800, 0x000007f0, 0x0401f007, - 0x81468800, 0x83457480, 0x000007ff, 0x83f17500, - 0x03000000, 0x04000025, 0x0201f800, 0x00103e62, - 0x40c66800, 0x80c589c0, 0x040007f6, 0x48c7c857, - 0x4a018c00, 0x00000707, 0x58c4d00c, 0x8068d1c0, - 0x040207f0, 0x58c4d00f, 0x8068d1c0, 0x040207ed, - 0x0201f800, 0x00103aa1, 0x81468800, 0x83457480, - 0x000007ff, 0x040007ed, 0x040017ec, 0x0401f00f, - 0x4937c857, 0x8d0e1d20, 0x04000004, 0x4a026c00, - 0x00000707, 0x0401f7ae, 0x0201f800, 0x00103aa1, - 0x0401f7ab, 0x8c68d506, 0x04000798, 0x0201f800, - 0x0010a605, 0x0401f795, 0x40866800, 0x408a8800, - 0x408e5800, 0x589d1803, 0x589d1002, 0x589d0801, - 0x589d0000, 0x829d3c00, 0x00000004, 0x1c01f000, - 0x829d3c80, 0x00000006, 0x48813800, 0x48853801, - 0x48893802, 0x488d3803, 0x48913804, 0x48953805, - 0x41352800, 0x41412000, 0x41451800, 0x412d1000, - 0x4933c857, 0x493fc857, 0x0201f800, 0x00106106, - 0x40c50800, 0x5932680a, 0x813669c0, 0x0400002a, - 0x5934d403, 0x406a8800, 0x42028000, 0x00000029, - 0x0201f800, 0x0010e4c8, 0x0201f800, 0x0010e5a4, - 0x0201f800, 0x0010e63d, 0x0201f800, 0x0010ea62, - 0x4937c857, 0x8d3e7d06, 0x0402001e, 0x8d3e7d18, - 0x04000021, 0x5935000f, 0x808101c0, 0x0400000b, - 0x49410207, 0x40825800, 0x58810000, 0x492fc857, - 0x0201f800, 0x000203ab, 0x808101c0, 0x040207f9, - 0x4882680f, 0x48826810, 0x4937c857, 0x4a026c00, - 0x00000707, 0x497a6a03, 0x497a6811, 0x599cd401, - 0x486a6a0b, 0x5934d402, 0x8268d500, 0x000000ff, - 0x486a6c02, 0x808509c0, 0x04000013, 0x0401f00c, - 0x5934d200, 0x8c68d50e, 0x040207fb, 0x8d3e7d18, - 0x040207e1, 0x8d0e1d20, 0x04000008, 0x4a026c00, + 0x00107185, 0x40c66000, 0x80c589c0, 0x04020003, + 0x4080d800, 0x0401f015, 0x4935880a, 0x48818c07, + 0x40867800, 0x0201f800, 0x00103d92, 0x59a8d016, + 0x8068d000, 0x486b5016, 0x599cd019, 0x40867000, + 0x8c68d50e, 0x04020003, 0x42027000, 0x00000004, + 0x0201f800, 0x001071b6, 0x599cd208, 0x486a6c12, + 0x41790000, 0x4080d800, 0x406d8800, 0x589d0801, + 0x589d0000, 0x829d3c00, 0x00000002, 0x1c01f000, + 0x829d3c80, 0x00000004, 0x48813800, 0x48853801, + 0x48893802, 0x488d3803, 0x41350800, 0x41451000, + 0x412d1800, 0x4943c857, 0x493fc857, 0x0201f800, + 0x001061ab, 0x40c50000, 0x59a8d073, 0x82697480, + 0x00000000, 0x83f17500, 0x0c000000, 0x04000004, + 0x82b97580, 0x0c000000, 0x04020069, 0x0201f800, + 0x0010e718, 0x0201f800, 0x0010e708, 0x0201f800, + 0x0010e7b0, 0x0201f800, 0x0010e913, 0x808101c0, + 0x04000003, 0x0201f800, 0x0010619f, 0x417a8800, + 0x0401f00a, 0x58c4d200, 0x8c68d50e, 0x0400000e, + 0x81468800, 0x83457480, 0x000007ef, 0x83f17500, + 0x03000000, 0x04000027, 0x0201f800, 0x00103e78, + 0x40c66800, 0x80c589c0, 0x040007f6, 0x8d3e7d06, + 0x040207f1, 0x497a6c0b, 0x8d3e7d18, 0x0400003f, + 0x5935000f, 0x0401f007, 0x49410207, 0x40825800, + 0x58810000, 0x492fc857, 0x0201f800, 0x000203ab, + 0x808101c0, 0x040207f9, 0x497a680f, 0x497a6810, + 0x4937c857, 0x4a026c00, 0x00000707, 0x497a6a03, + 0x497a6811, 0x599cd401, 0x486a6a0b, 0x5934d402, + 0x8268d500, 0x000000ff, 0x486a6c02, 0x81468800, + 0x83457480, 0x000007ef, 0x040007dc, 0x040017db, + 0x8d3e7d02, 0x0400002f, 0x497b5018, 0x42028800, + 0x000007f0, 0x0401f007, 0x81468800, 0x83457480, + 0x000007ff, 0x83f17500, 0x03000000, 0x04000025, + 0x0201f800, 0x00103e78, 0x40c66800, 0x80c589c0, + 0x040007f6, 0x48c7c857, 0x4a018c00, 0x00000707, + 0x58c4d00c, 0x8068d1c0, 0x040207f0, 0x58c4d00f, + 0x8068d1c0, 0x040207ed, 0x0201f800, 0x00103ab4, + 0x81468800, 0x83457480, 0x000007ff, 0x040007ed, + 0x040017ec, 0x0401f00f, 0x4937c857, 0x8d0e1d20, + 0x04000004, 0x4a026c00, 0x00000707, 0x0401f7ad, + 0x0201f800, 0x00103ab4, 0x0401f7aa, 0x8c68d506, + 0x04000797, 0x0201f800, 0x0010a6f8, 0x0401f794, + 0x40866800, 0x408a8800, 0x408e5800, 0x589d1803, + 0x589d1002, 0x589d0801, 0x589d0000, 0x829d3c00, + 0x00000004, 0x1c01f000, 0x829d3c80, 0x00000006, + 0x48813800, 0x48853801, 0x48893802, 0x488d3803, + 0x48913804, 0x48953805, 0x41352800, 0x41412000, + 0x41451800, 0x412d1000, 0x4933c857, 0x493fc857, + 0x0201f800, 0x001061ab, 0x40c50800, 0x5932680a, + 0x813669c0, 0x0400002b, 0x5934d403, 0x406a8800, + 0x42028000, 0x00000029, 0x0201f800, 0x0010e5d8, + 0x0201f800, 0x0010e6a9, 0x0201f800, 0x0010e742, + 0x0201f800, 0x0010eb5d, 0x4937c857, 0x8d3e7d06, + 0x0402001f, 0x497a6c0b, 0x8d3e7d18, 0x04000022, + 0x5935000f, 0x808101c0, 0x0400000b, 0x49410207, + 0x40825800, 0x58810000, 0x492fc857, 0x0201f800, + 0x000203ab, 0x808101c0, 0x040207f9, 0x4882680f, + 0x48826810, 0x4937c857, 0x4a026c00, 0x00000707, + 0x497a6a03, 0x497a6811, 0x599cd401, 0x486a6a0b, + 0x5934d402, 0x8268d500, 0x000000ff, 0x486a6c02, + 0x808509c0, 0x04000014, 0x0401f00d, 0x5934d200, + 0x8c68d50e, 0x040207fb, 0x497a6c0b, 0x8d3e7d18, + 0x040207e0, 0x8d0e1d20, 0x04000008, 0x4a026c00, 0x00000707, 0x808509c0, 0x04000007, 0x0201f800, - 0x001060fa, 0x0401f004, 0x0201f800, 0x00103aa1, - 0x0401f7ed, 0x408a5800, 0x408e8800, 0x40928000, + 0x0010619f, 0x0401f004, 0x0201f800, 0x00103ab4, + 0x0401f7ec, 0x408a5800, 0x408e8800, 0x40928000, 0x40966800, 0x589d2805, 0x589d2004, 0x589d1803, 0x589d1002, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000006, 0x1c01f000, 0x809d3840, 0x48813800, 0x4937c857, 0x42010000, 0x00000001, 0x0201f800, - 0x001070f2, 0x40c66000, 0x80c589c0, 0x0400001d, + 0x00107185, 0x40c66000, 0x80c589c0, 0x0400001d, 0x4935880a, 0x5934d403, 0x82697480, 0x000007fe, - 0x04000003, 0x417a7800, 0x0401ff92, 0x48826407, - 0x417a7800, 0x0201f800, 0x00103d7f, 0x4200d000, - 0x00000003, 0x0201f800, 0x00103d89, 0x836d7480, + 0x04000003, 0x417a7800, 0x0401ff90, 0x48826407, + 0x417a7800, 0x0201f800, 0x00103d92, 0x4200d000, + 0x00000003, 0x0201f800, 0x00103d9c, 0x836d7480, 0x00000003, 0x04000004, 0x59a8d016, 0x8068d000, 0x486b5016, 0x42027000, 0x00000002, 0x0201f800, - 0x00107123, 0x599cd208, 0x486a6c12, 0x41790000, + 0x001071b6, 0x599cd208, 0x486a6c12, 0x41790000, 0x40818800, 0x589d0000, 0x809d3800, 0x1c01f000, 0x829d3c80, 0x00000002, 0x48813800, 0x48853801, 0x497bc856, 0x42010000, 0x00000001, 0x48835017, 0x42028800, 0x000007fe, 0x4200d000, 0x00fffffe, - 0x0201f800, 0x00103dbf, 0x40c66800, 0x80c589c0, - 0x04000012, 0x0401feb4, 0x0401ffc4, 0x40c50800, + 0x0201f800, 0x00103dd5, 0x40c66800, 0x80c589c0, + 0x04000012, 0x0401fea4, 0x0401ffc4, 0x40c50800, 0x80c589c0, 0x0402000d, 0x599cd208, 0x486a6c12, 0x59a8d21b, 0x8268d500, 0xffffdefc, 0x486b521b, 0x59a8d21b, 0x8468d54e, 0x486b521b, 0x0201f800, - 0x00108bc4, 0x40850000, 0x40818800, 0x589d0801, + 0x00108c7d, 0x40850000, 0x40818800, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000002, 0x1c01f000, 0x829d3c80, 0x00000005, 0x48813800, 0x48853801, 0x48893802, 0x488d3803, 0x48913804, 0x41791000, @@ -12594,58 +12655,58 @@ static const uint32_t isp_2400_risc_code[] = { 0x826d7480, 0x0000007e, 0x83f17500, 0x03000000, 0x04000044, 0x406d1000, 0x497bc856, 0x406c0000, 0x4200d000, 0x0000007e, 0x8068b480, 0x8058b1c0, - 0x0400003c, 0x42012000, 0x00101b0a, 0x0401f014, - 0x42010800, 0x00000001, 0x0201f800, 0x00104416, - 0x0201f800, 0x0010415e, 0x80c57040, 0x04000034, + 0x0400003c, 0x42012000, 0x00101b0f, 0x0401f014, + 0x42010800, 0x00000001, 0x0201f800, 0x00104435, + 0x0201f800, 0x0010417a, 0x80c57040, 0x04000034, 0x59a8d056, 0x8c68d502, 0x04020041, 0x4937c857, 0x599cd019, 0x8c68d50e, 0x04000066, 0x8058b040, 0x80891000, 0x8058b1c0, 0x04000026, 0x40880000, 0x8090d400, 0x5868d000, 0x82690500, 0x000000ff, 0x408c0000, 0x80817480, 0x040007f5, 0x4080d000, - 0x0201f800, 0x0010f02b, 0x80c589c0, 0x0400005e, + 0x0201f800, 0x0010f133, 0x80c589c0, 0x0400005e, 0x59a8d06d, 0x8c68d502, 0x04000007, 0x4200d000, - 0x00000010, 0x0201f800, 0x00104421, 0x80c57040, - 0x04000010, 0x41790800, 0x0201f800, 0x00103e62, + 0x00000010, 0x0201f800, 0x00104440, 0x80c57040, + 0x04000010, 0x41790800, 0x0201f800, 0x00103e78, 0x80c589c0, 0x040207d3, 0x599cd019, 0x8c68d50e, - 0x040207df, 0x4080d000, 0x0201f800, 0x00103dc5, + 0x040207df, 0x4080d000, 0x0201f800, 0x00103ddb, 0x80c589c0, 0x040207cd, 0x488b5017, 0x0401f048, 0x4a035017, 0x0000ffff, 0x0401f045, 0x8d0e1d02, 0x04020034, 0x59a8d056, 0x8c68d500, 0x04000005, - 0x0201f800, 0x00101aca, 0x80c57040, 0x040007cc, - 0x0401fe3e, 0x80c57040, 0x040207c9, 0x0401f7ef, + 0x0201f800, 0x00101acf, 0x80c57040, 0x040007cc, + 0x0401fe2e, 0x80c57040, 0x040207c9, 0x0401f7ef, 0x4200b000, 0x0000007e, 0x0401f7b1, 0x0201f800, - 0x0010418e, 0x40c50000, 0x80c589c0, 0x040207c0, - 0x808509c0, 0x04000029, 0x0201f800, 0x00101aca, - 0x80c57040, 0x040007ba, 0x42026000, 0x0010f53c, - 0x4936600a, 0x48826009, 0x40827800, 0x0401fed5, - 0x4200d000, 0x0010bc1d, 0x0201f800, 0x0010ad1c, + 0x001041aa, 0x40c50000, 0x80c589c0, 0x040207c0, + 0x808509c0, 0x04000029, 0x0201f800, 0x00101acf, + 0x80c57040, 0x040007ba, 0x42026000, 0x0010f64c, + 0x4936600a, 0x48826009, 0x40827800, 0x0401fed3, + 0x4200d000, 0x0010bd1d, 0x0201f800, 0x0010ae0f, 0x8d0e1d20, 0x040007ae, 0x41450000, 0x41410800, 0x5934d403, 0x406a8800, 0x42028000, 0x00000029, 0x4178d000, 0x4200d800, 0x00000008, 0x0201f800, - 0x00109f3f, 0x40828800, 0x40868000, 0x0401f7a0, + 0x0010a016, 0x40828800, 0x40868000, 0x0401f7a0, 0x5934d200, 0x8c68d50e, 0x04000796, 0x0401f7ca, - 0x0401fe09, 0x0401ff19, 0x80c57040, 0x04020798, - 0x488b5017, 0x0401f796, 0x0201f800, 0x00103e30, + 0x0401fdf9, 0x0401ff19, 0x80c57040, 0x04020798, + 0x488b5017, 0x0401f796, 0x0201f800, 0x00103e46, 0x0401f793, 0x4937c857, 0x0401f7b8, 0x589d2004, 0x589d1803, 0x589d1002, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000005, 0x1c01f000, 0x829d3c80, 0x00000005, 0x48813800, 0x48853801, 0x48893802, 0x488d3803, 0x48913804, 0x59a8d00f, 0x82691d00, 0x000000ff, 0x59a90817, 0x82857480, 0x0000ffff, - 0x0400006a, 0x41791000, 0x42012000, 0x0010c1c7, + 0x0400006a, 0x41791000, 0x42012000, 0x0010c2c7, 0x80840104, 0x8090d400, 0x5868d000, 0x8284dd00, 0x00000003, 0x826d7480, 0x00000002, 0x04000057, 0x826d7480, 0x00000002, 0x83f17500, 0x03000000, 0x04000030, 0x806d7040, 0x04000052, 0x82690500, 0x000000ff, 0x82817480, 0x000000ff, 0x04000032, - 0x40800000, 0x4200d000, 0x00101b0a, 0x8068d400, + 0x40800000, 0x4200d000, 0x00101b0f, 0x8068d400, 0x5868d000, 0x8068d110, 0x82697480, 0x00000080, 0x0400001c, 0x408c0000, 0x80817480, 0x04000019, 0x808101c0, 0x04000017, 0x59a8d06d, 0x8c68d502, 0x04000007, 0x4200d000, 0x00000010, 0x0201f800, - 0x00104421, 0x80c57040, 0x0400003f, 0x417a8800, - 0x4080d000, 0x0201f800, 0x0010f0a4, 0x80c589c0, - 0x0400002c, 0x0201f800, 0x00103e10, 0x80c589c0, + 0x00104440, 0x80c57040, 0x0400003f, 0x417a8800, + 0x4080d000, 0x0201f800, 0x0010f1ac, 0x80c589c0, + 0x0400002c, 0x0201f800, 0x00103e26, 0x80c589c0, 0x0402002e, 0x599cd019, 0x8c68d50e, 0x0400001a, 0x80850800, 0x80897040, 0x040207c6, 0x0401f030, 0x826d7480, 0x00000003, 0x040207d1, 0x8068d130, @@ -12653,12 +12714,12 @@ static const uint32_t isp_2400_risc_code[] = { 0x040207d0, 0x830cd500, 0x00000003, 0x04020022, 0x59a8d056, 0x8468d542, 0x486b5056, 0x4a035017, 0x0000ffff, 0x0401fefb, 0x42011000, 0x00000001, - 0x0401f7e9, 0x4080d000, 0x0201f800, 0x00103dbf, - 0x80c589c0, 0x04000007, 0x0201f800, 0x00104416, - 0x0401fd8d, 0x0401fe9d, 0x80c589c0, 0x040007dd, + 0x0401f7e9, 0x4080d000, 0x0201f800, 0x00103dd5, + 0x80c589c0, 0x04000007, 0x0201f800, 0x00104435, + 0x0401fd7d, 0x0401fe9d, 0x80c589c0, 0x040007dd, 0x48875017, 0x0401f00e, 0x8068d120, 0x0401f7b0, - 0x8068d110, 0x0401f7ae, 0x0201f800, 0x00104416, - 0x0401fd86, 0x0401f7f5, 0x42010800, 0x00000001, + 0x8068d110, 0x0401f7ae, 0x0201f800, 0x00104435, + 0x0401fd76, 0x0401f7f5, 0x42010800, 0x00000001, 0x0401f795, 0x4a035017, 0x0000ffff, 0x589d2004, 0x589d1803, 0x589d1002, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000005, 0x1c01f000, 0x8c68d504, @@ -12666,18 +12727,18 @@ static const uint32_t isp_2400_risc_code[] = { 0x59a8d056, 0x8c68d500, 0x04000003, 0x8c68d502, 0x04000003, 0x0401fecb, 0x0401f002, 0x0401ff70, 0x1c01f000, 0x809d3840, 0x48813800, 0x59a9021b, - 0x0201f800, 0x001040c4, 0x80c589c0, 0x04000002, - 0x0401f01d, 0x0201f800, 0x0010470f, 0x80c589c0, + 0x0201f800, 0x001040de, 0x80c589c0, 0x04000002, + 0x0401f01d, 0x0201f800, 0x0010474e, 0x80c589c0, 0x04000007, 0x8c810500, 0x0402000a, 0x8c81050e, 0x040207f8, 0x0401fe8f, 0x0401f013, 0x8c810506, 0x040207f9, 0x4080d000, 0x0401ffdd, 0x0401f00e, - 0x0201f800, 0x00101afe, 0x80c589c0, 0x040207ed, - 0x0201f800, 0x0010470f, 0x80c589c0, 0x04000004, + 0x0201f800, 0x00101b03, 0x80c589c0, 0x040207ed, + 0x0201f800, 0x0010474e, 0x80c589c0, 0x04000004, 0x4a035017, 0x0000ffff, 0x0401f003, 0x4080d000, 0x0401ffcf, 0x589d0000, 0x809d3800, 0x1c01f000, 0x829d3c80, 0x00000003, 0x48813800, 0x48853801, 0x48893802, 0x40690800, 0x406d1000, 0x41bd0000, - 0x0201f800, 0x001060e1, 0x5880d031, 0x41300000, + 0x0201f800, 0x00106186, 0x5880d031, 0x41300000, 0x80697480, 0x04000018, 0x5880d030, 0x41300000, 0x80697480, 0x0400001f, 0x5930d800, 0x806cd9c0, 0x04020008, 0x59317001, 0x48b91001, 0x5930d001, @@ -12701,7 +12762,7 @@ static const uint32_t isp_2400_risc_code[] = { 0x00000004, 0x409d4000, 0x829d3c80, 0x00000005, 0x48813800, 0x48853801, 0x48893802, 0x488d3803, 0x48913804, 0x41790800, 0x40850000, 0x4933c857, - 0x0201f800, 0x00106106, 0x40c52000, 0x41351800, + 0x0201f800, 0x001061ab, 0x40c52000, 0x41351800, 0x41191000, 0x49914003, 0x49d14000, 0x49a54001, 0x49154002, 0x5932680a, 0x59bce031, 0x4070d800, 0x8070e1c0, 0x04020008, 0x0401f01e, 0x406ce000, @@ -12713,46 +12774,46 @@ static const uint32_t isp_2400_risc_code[] = { 0x806cd9c0, 0x040007ec, 0x806d7480, 0x040207fb, 0x42010800, 0x00000001, 0x806cd9c0, 0x040207e8, 0x80857040, 0x04000029, 0x417a3000, 0x0201f800, - 0x00106705, 0x5990d004, 0x41300000, 0x80697480, + 0x001067aa, 0x5990d004, 0x41300000, 0x80697480, 0x0400000f, 0x811a3000, 0x83197480, 0x00000004, 0x040007f7, 0x040017f6, 0x408a3000, 0x408e6800, 0x58a32003, 0x58a3a000, 0x58a34801, 0x58a22802, 0x80917040, 0x04020019, 0x0401f011, 0x42010800, - 0x00000001, 0x0201f800, 0x0010629a, 0x0201f800, - 0x001060d8, 0x0201f800, 0x001060e1, 0x408a3000, + 0x00000001, 0x0201f800, 0x0010633f, 0x0201f800, + 0x0010617d, 0x0201f800, 0x00106186, 0x408a3000, 0x408e6800, 0x58a32003, 0x58a3a000, 0x58a34801, 0x58a22802, 0x80917040, 0x04020008, 0x0201f800, - 0x001060fa, 0x0401f005, 0x4070d000, 0x4080d800, + 0x0010619f, 0x0401f005, 0x4070d000, 0x4080d800, 0x0401ff40, 0x0401f7e1, 0x40858800, 0x589d2004, 0x589d1803, 0x589d1002, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000009, 0x589d4000, 0x809d3800, 0x1c01f000, 0x829d3c80, 0x00000002, 0x48813800, 0x48853801, 0x40690000, 0x59310800, 0x497a6000, - 0x0201f800, 0x001060e1, 0x808101c0, 0x04000008, + 0x0201f800, 0x00106186, 0x808101c0, 0x04000008, 0x48850000, 0x598cd00a, 0x41300000, 0x80697480, 0x0402000b, 0x4883180a, 0x0401f009, 0x598cd00a, 0x41300000, 0x80697480, 0x04000003, 0x4887180b, 0x0401f003, 0x4883180a, 0x4883180b, 0x0201f800, - 0x001060f3, 0x589d0801, 0x589d0000, 0x829d3c00, + 0x00106198, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000002, 0x1c01f000, 0x829d3c80, 0x00000002, 0x48813800, 0x48853801, 0x598d000b, 0x41790800, 0x4933c857, 0x813261c0, 0x04020007, 0x0401f00a, 0x41300000, 0x80817480, 0x0400000e, 0x40810800, 0x58810000, 0x808101c0, 0x040207fa, 0x4178d000, - 0x0401f015, 0x4200d000, 0x000005a7, 0x4080d800, + 0x0401f015, 0x4200d000, 0x000005aa, 0x4080d800, 0x4084e000, 0x0201f800, 0x0010032a, 0x0401f7f6, 0x4084d000, 0x0401ffc4, 0x598cd00f, 0x41300000, 0x80697480, 0x04000005, 0x497a6008, 0x4200d000, - 0x00000001, 0x0401f004, 0x0201f800, 0x001066dd, + 0x00000001, 0x0401f004, 0x0201f800, 0x00106782, 0x0401f7fa, 0x40698800, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000002, 0x1c01f000, 0x829d3c80, 0x00000002, 0x48813800, 0x48853801, 0x40690000, - 0x59310800, 0x497a6000, 0x0201f800, 0x001060e1, + 0x59310800, 0x497a6000, 0x0201f800, 0x00106186, 0x808101c0, 0x04000008, 0x48850000, 0x598cd008, 0x41300000, 0x80697480, 0x0402000b, 0x48831808, 0x0401f009, 0x598cd008, 0x41300000, 0x80697480, 0x04000003, 0x48871809, 0x0401f003, 0x48831808, - 0x48831809, 0x0201f800, 0x001060f3, 0x589d0801, + 0x48831809, 0x0201f800, 0x00106198, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000002, 0x1c01f000, 0x829d3c80, 0x00000002, 0x48813800, 0x48853801, 0x598d0009, 0x41790800, 0x4933c857, 0x813261c0, @@ -12762,41 +12823,41 @@ static const uint32_t isp_2400_risc_code[] = { 0x0401ffcb, 0x598cd00f, 0x41300000, 0x80697480, 0x04000011, 0x5930d403, 0x82697480, 0x00000042, 0x0400000b, 0x4200d000, 0x00000001, 0x0401f00d, - 0x4200d000, 0x0000055e, 0x4080d800, 0x4084e000, + 0x4200d000, 0x00000561, 0x4080d800, 0x4084e000, 0x0201f800, 0x0010032a, 0x0401f7e9, 0x497a6008, - 0x0401f7f5, 0x0201f800, 0x001066dd, 0x0401f7ee, + 0x0401f7f5, 0x0201f800, 0x00106782, 0x0401f7ee, 0x40698800, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000002, 0x1c01f000, 0x829d3c80, 0x00000002, 0x48813800, 0x48853801, 0x40690000, 0x59310800, - 0x497a6000, 0x0201f800, 0x001060e1, 0x808101c0, + 0x497a6000, 0x0201f800, 0x00106186, 0x808101c0, 0x04000008, 0x48850000, 0x598cd004, 0x41300000, 0x80697480, 0x0402000b, 0x48831804, 0x0401f009, 0x598cd004, 0x41300000, 0x80697480, 0x04000003, 0x48871805, 0x0401f003, 0x48831804, 0x48831805, - 0x0201f800, 0x001060f3, 0x589d0801, 0x589d0000, + 0x0201f800, 0x00106198, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000002, 0x1c01f000, 0x829d3c80, 0x00000002, 0x48813800, 0x48853801, 0x598d0005, 0x40810800, 0x4933c857, 0x813261c0, 0x04020007, 0x0401f022, 0x41300000, 0x80817480, 0x04000007, 0x40810800, 0x58810000, 0x808101c0, 0x040207fa, 0x4178d000, 0x0401f02b, 0x598cd00f, 0x80697480, - 0x04000025, 0x0201f800, 0x001060e1, 0x598cd005, + 0x04000025, 0x0201f800, 0x00106186, 0x598cd005, 0x40800000, 0x80697480, 0x04000017, 0x598cd004, 0x80697480, 0x04000009, 0x58817000, 0x48b90800, - 0x49790000, 0x0201f800, 0x001060f3, 0x4200d000, + 0x49790000, 0x0201f800, 0x00106198, 0x4200d000, 0x00000001, 0x0401f017, 0x48871804, 0x49790000, - 0x49790800, 0x0401f7f8, 0x4200d000, 0x000005ea, + 0x49790800, 0x0401f7f8, 0x4200d000, 0x000005ed, 0x4080d800, 0x4080e000, 0x0201f800, 0x0010032a, 0x0401f7de, 0x58817000, 0x48bb1805, 0x49790000, 0x598cd004, 0x80697480, 0x040207eb, 0x497b1804, - 0x0401f7e9, 0x0201f800, 0x001066dd, 0x0401f7da, + 0x0401f7e9, 0x0201f800, 0x00106782, 0x0401f7da, 0x40698800, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000002, 0x1c01f000, 0x829d3c80, 0x00000002, 0x48813800, 0x48853801, 0x41790000, 0x0201f800, - 0x00106106, 0x40c50800, 0x0401ff62, 0x80c57040, + 0x001061ab, 0x40c50800, 0x0401ff62, 0x80c57040, 0x04000007, 0x0401ff11, 0x80c57040, 0x04000004, 0x0401ffaf, 0x80c57040, 0x04020002, 0x40c50000, - 0x80857040, 0x04020003, 0x0201f800, 0x001060fa, + 0x80857040, 0x04020003, 0x0201f800, 0x0010619f, 0x40818800, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000002, 0x1c01f000, 0x829d3c80, 0x00000002, 0x48813800, 0x48853801, 0x5c00d000, 0x4c680000, @@ -12804,48 +12865,48 @@ static const uint32_t isp_2400_risc_code[] = { 0x59325809, 0x4933c857, 0x4943c857, 0x493fc857, 0x5930d407, 0x486bc857, 0x5930dc07, 0x806c0040, 0x4000d000, 0x82697480, 0x00000012, 0x83f17500, - 0x03000000, 0x04000015, 0x0c01f001, 0x0010e3bc, - 0x0010e398, 0x0010e3a2, 0x0010e3bc, 0x0010e3c5, - 0x0010e3d2, 0x0010e38b, 0x0010e38b, 0x0010e3dc, - 0x0010e3e3, 0x0010e38b, 0x0010e38b, 0x0010e38b, - 0x0010e38b, 0x0010e38b, 0x0010e3ec, 0x0010e3ec, - 0x0010e391, 0x0010e391, 0x4200d000, 0x00000a6e, + 0x03000000, 0x04000015, 0x0c01f001, 0x0010e4cc, + 0x0010e4a8, 0x0010e4b2, 0x0010e4cc, 0x0010e4d5, + 0x0010e4e2, 0x0010e49b, 0x0010e49b, 0x0010e4ec, + 0x0010e4f3, 0x0010e49b, 0x0010e49b, 0x0010e49b, + 0x0010e49b, 0x0010e49b, 0x0010e4fc, 0x0010e4fc, + 0x0010e4a1, 0x0010e4a1, 0x4200d000, 0x00000a7f, 0x4130e000, 0x0201f800, 0x0010032a, 0x0401f0a1, - 0x0201f800, 0x00108893, 0x80c589c0, 0x04020077, - 0x0201f800, 0x001070b5, 0x0401f09a, 0x0201f800, - 0x00108893, 0x80c589c0, 0x04020066, 0x0201f800, - 0x001070b5, 0x8d3e7d1c, 0x04000092, 0x497a600a, + 0x0201f800, 0x0010894c, 0x80c589c0, 0x04020077, + 0x0201f800, 0x00107144, 0x0401f09a, 0x0201f800, + 0x0010894c, 0x80c589c0, 0x04020066, 0x0201f800, + 0x00107144, 0x8d3e7d1c, 0x04000092, 0x497a600a, 0x0401f090, 0x5930d008, 0x8c68d500, 0x04020053, - 0x0201f800, 0x00108893, 0x80c589c0, 0x040007f4, + 0x0201f800, 0x0010894c, 0x80c589c0, 0x040007f4, 0x592cd205, 0x8268d500, 0x000000ff, 0x82697480, - 0x00000014, 0x04000003, 0x0201f800, 0x0010899c, + 0x00000014, 0x04000003, 0x0201f800, 0x00108a55, 0x4a025a05, 0x00000103, 0x49425a07, 0x497a580a, - 0x0201f800, 0x00108a42, 0x0201f800, 0x0010a241, + 0x0201f800, 0x00108afb, 0x0201f800, 0x0010a320, 0x0201f800, 0x000203ab, 0x0401f7e1, 0x0201f800, - 0x0010e719, 0x80c589c0, 0x04020035, 0x0201f800, - 0x00108bdb, 0x0201f800, 0x00107851, 0x0401f7d8, - 0x42000000, 0x0010f518, 0x81317480, 0x0400004a, - 0x0201f800, 0x00108893, 0x80c589c0, 0x040007d0, - 0x4200d000, 0x000009b7, 0x412cd800, 0x4130e000, + 0x0010e81e, 0x80c589c0, 0x04020035, 0x0201f800, + 0x00108c94, 0x0201f800, 0x001078e7, 0x0401f7d8, + 0x42000000, 0x0010f628, 0x81317480, 0x0400004a, + 0x0201f800, 0x0010894c, 0x80c589c0, 0x040007d0, + 0x4200d000, 0x000009c8, 0x412cd800, 0x4130e000, 0x0401f7bd, 0x5930d008, 0x8c68d500, 0x0402002a, - 0x0201f800, 0x00108893, 0x80c589c0, 0x040007c4, - 0x0201f800, 0x00109f21, 0x0401f7c1, 0x0201f800, - 0x00108893, 0x80c589c0, 0x040007bd, 0x0201f800, - 0x00105f11, 0x0401f7ba, 0x0201f800, 0x00108893, + 0x0201f800, 0x0010894c, 0x80c589c0, 0x040007c4, + 0x0201f800, 0x00109ff8, 0x0401f7c1, 0x0201f800, + 0x0010894c, 0x80c589c0, 0x040007bd, 0x0201f800, + 0x00105fb6, 0x0401f7ba, 0x0201f800, 0x0010894c, 0x80c589c0, 0x040007b6, 0x49425a07, 0x497a5c0a, 0x0201f800, 0x000203ab, 0x0401f7b1, 0x0201f800, - 0x00108893, 0x80c589c0, 0x0402000b, 0x59325818, + 0x0010894c, 0x80c589c0, 0x0402000b, 0x59325818, 0x0201f800, 0x00100589, 0x0401f7a9, 0x0201f800, - 0x00101a67, 0x0401f7ca, 0x0201f800, 0x00100bd4, + 0x00101a68, 0x0401f7ca, 0x0201f800, 0x00100bd5, 0x0401f7ac, 0x49425a07, 0x0201f800, 0x000203ab, - 0x0401f7f3, 0x0201f800, 0x00100bd4, 0x0401f7d5, + 0x0401f7f3, 0x0201f800, 0x00100bd5, 0x0401f7d5, 0x49425a07, 0x0201f800, 0x000203ab, 0x5930d21e, 0x82697480, 0x00000003, 0x04020795, 0x0201f800, - 0x0010899c, 0x0401f792, 0x49425a07, 0x497a5c07, - 0x0201f800, 0x000203ab, 0x0201f800, 0x001070b5, - 0x0401f020, 0x0201f800, 0x00108893, 0x80c589c0, + 0x00108a55, 0x0401f792, 0x49425a07, 0x497a5c07, + 0x0201f800, 0x000203ab, 0x0201f800, 0x00107144, + 0x0401f020, 0x0201f800, 0x0010894c, 0x80c589c0, 0x04000016, 0x59a8e052, 0x412c0000, 0x80717480, - 0x04000005, 0x4200d000, 0x000009d0, 0x412cd800, + 0x04000005, 0x4200d000, 0x000009e1, 0x412cd800, 0x0401f771, 0x592d7000, 0x48bb5052, 0x592cd000, 0x8068d1c0, 0x04020002, 0x486b5053, 0x592cd205, 0x82697480, 0x00000055, 0x04000007, 0x49425a07, @@ -12855,12 +12916,12 @@ static const uint32_t isp_2400_risc_code[] = { 0x829d3c00, 0x00000002, 0x1c01f000, 0x809d3840, 0x48813800, 0x5930dc07, 0x406c0000, 0x826d7480, 0x00000013, 0x83f17500, 0x03000000, 0x04000016, - 0x0c01f001, 0x0010e498, 0x0010e46f, 0x0010e47f, - 0x0010e48b, 0x0010e45e, 0x0010e461, 0x0010e4a9, - 0x0010e498, 0x0010e498, 0x0010e498, 0x0010e498, - 0x0010e456, 0x0010e456, 0x0010e498, 0x0010e456, - 0x0010e498, 0x0010e498, 0x0010e49c, 0x0010e4b4, - 0x0010e4b4, 0x4200d000, 0x00000b61, 0x4130e000, + 0x0c01f001, 0x0010e5a8, 0x0010e57f, 0x0010e58f, + 0x0010e59b, 0x0010e56e, 0x0010e571, 0x0010e5b9, + 0x0010e5a8, 0x0010e5a8, 0x0010e5a8, 0x0010e5a8, + 0x0010e566, 0x0010e566, 0x0010e5a8, 0x0010e566, + 0x0010e5a8, 0x0010e5a8, 0x0010e5ac, 0x0010e5c4, + 0x0010e5c4, 0x4200d000, 0x00000b72, 0x4130e000, 0x0201f800, 0x0010032a, 0x4200d800, 0x00000001, 0x0401f067, 0x4178d800, 0x8d3e7d1a, 0x04020064, 0x833ce500, 0x00000001, 0x4178d800, 0x8d3e7d00, @@ -12869,10 +12930,10 @@ static const uint32_t isp_2400_risc_code[] = { 0x04020057, 0x0401f7ed, 0x8d3e7d1a, 0x04020019, 0x8d3e7d00, 0x04020017, 0x833d0500, 0x00001000, 0x8d3e7d18, 0x040207e5, 0x8d3e7d06, 0x040007e3, - 0x0201f800, 0x00108b85, 0x4080d800, 0x80c589c0, + 0x0201f800, 0x00108c3e, 0x4080d800, 0x80c589c0, 0x04020047, 0x0401f7dd, 0x8d3e7d00, 0x040007db, 0x5930d21e, 0x82697480, 0x00000003, 0x04020005, - 0x0201f800, 0x00106030, 0x80c589c0, 0x040207d3, + 0x0201f800, 0x001060d5, 0x80c589c0, 0x040207d3, 0x4178d800, 0x0401f03a, 0x8d3e7d00, 0x04020033, 0x5930d00a, 0x833cdd00, 0x00001000, 0x8d3e7d18, 0x040207ca, 0x8d3e7d06, 0x040007c8, 0x5868d200, @@ -12886,738 +12947,736 @@ static const uint32_t isp_2400_risc_code[] = { 0x04020013, 0x4068d800, 0x0401f011, 0x59a8d074, 0x5868d400, 0x8268d580, 0x00000707, 0x8068d080, 0x8068d000, 0x8068013e, 0x4200d000, 0x00000001, - 0x8068dc80, 0x0401f006, 0x0201f800, 0x00106030, + 0x8068dc80, 0x0401f006, 0x0201f800, 0x001060d5, 0x40c4d800, 0x80c589c0, 0x040207ca, 0x406d8800, 0x589d0000, 0x809d3800, 0x1c01f000, 0x829d3c80, 0x00000006, 0x48813800, 0x48853801, 0x48893802, 0x488d3803, 0x48913804, 0x48953805, 0x4933c857, - 0x0201f800, 0x00106106, 0x40c52800, 0x41352000, + 0x0201f800, 0x001061ab, 0x40c52800, 0x41352000, 0x41311000, 0x412d1800, 0x41790800, 0x598e6005, - 0x0401f005, 0x813669c0, 0x04000026, 0x41310800, - 0x59326000, 0x813261c0, 0x0400001c, 0x5932680a, - 0x813669c0, 0x040007f8, 0x5934d403, 0x41440000, - 0x80697480, 0x040207f4, 0x0401ff51, 0x80c589c0, - 0x040007f3, 0x42010000, 0x00000001, 0x0201f800, - 0x00108893, 0x80c589c0, 0x0402001d, 0x808101c0, - 0x040007eb, 0x0201f800, 0x00105ff7, 0x59310000, - 0x4084d000, 0x0401fde9, 0x0401fe68, 0x40826000, - 0x813261c0, 0x040207e6, 0x408a6000, 0x408e5800, - 0x40926800, 0x80957040, 0x0400000a, 0x0401f016, - 0x5930d407, 0x82697480, 0x00000010, 0x040207d8, - 0x83457480, 0x0000ffff, 0x040207d5, 0x0401f7df, - 0x0201f800, 0x001060fa, 0x0401f00b, 0x0201f800, - 0x00108e5d, 0x80c589c0, 0x040007e1, 0x5930d403, - 0x82697480, 0x00000043, 0x040207dd, 0x41790000, - 0x0401f7db, 0x589d2805, 0x589d2004, 0x589d1803, - 0x589d1002, 0x589d0801, 0x589d0000, 0x829d3c00, - 0x00000006, 0x1c01f000, 0x829d3c80, 0x00000006, - 0x48813800, 0x48853801, 0x48893802, 0x488d3803, - 0x48913804, 0x48953805, 0x412d1800, 0x41312000, - 0x41352800, 0x41790800, 0x0201f800, 0x00106106, - 0x40c51000, 0x0201f800, 0x00103e62, 0x40c66800, - 0x80c589c0, 0x04000027, 0x598e600b, 0x0401f003, - 0x41310800, 0x59326000, 0x813261c0, 0x04000011, - 0x5930d00a, 0x41340000, 0x80697480, 0x040207f9, - 0x0401fefb, 0x80c589c0, 0x040007f6, 0x0201f800, - 0x00105ff7, 0x59310000, 0x4084d000, 0x0401fcfa, - 0x0401fe1a, 0x40826000, 0x813261c0, 0x040207f1, - 0x8d3e7d06, 0x04000004, 0x5934d200, 0x8c68d50e, - 0x04020003, 0x0201f800, 0x00103fe0, 0x408e5800, - 0x40926000, 0x40966800, 0x80897040, 0x04000002, - 0x0401f00b, 0x0201f800, 0x001060fa, 0x0401f008, - 0x4200d000, 0x00000711, 0x40c4d800, 0x4144e000, - 0x0201f800, 0x0010032a, 0x0401f7d4, 0x589d2805, - 0x589d2004, 0x589d1803, 0x589d1002, 0x589d0801, - 0x589d0000, 0x829d3c00, 0x00000006, 0x1c01f000, - 0x829d3c80, 0x00000006, 0x48813800, 0x48853801, - 0x48893802, 0x488d3803, 0x48913804, 0x48953805, - 0x41311800, 0x41352000, 0x412d2800, 0x41790800, - 0x0201f800, 0x00106106, 0x40c51000, 0x598e6009, - 0x0401f003, 0x41310800, 0x59326000, 0x813261c0, - 0x04000012, 0x5932680a, 0x5934d403, 0x41440000, - 0x80697480, 0x040207f8, 0x0401feb5, 0x80c589c0, - 0x040007f5, 0x59310000, 0x0201f800, 0x00105ff7, - 0x4084d000, 0x0401fd02, 0x0401fdd4, 0x40826000, - 0x813261c0, 0x040207f0, 0x0201f800, 0x00106fc1, - 0x0201f800, 0x0010702d, 0x408e6000, 0x40926800, - 0x40965800, 0x80897040, 0x04000002, 0x0401f003, - 0x0201f800, 0x001060fa, 0x589d2805, 0x589d2004, + 0x0401f00a, 0x5932680a, 0x813669c0, 0x04000005, + 0x5934d403, 0x41440000, 0x80697480, 0x0400000b, + 0x41310800, 0x59326000, 0x813261c0, 0x040207f6, + 0x408a6000, 0x408e5800, 0x40926800, 0x80957040, + 0x04000015, 0x0401f021, 0x0401ff4d, 0x80c589c0, + 0x040007f4, 0x42010000, 0x00000001, 0x0201f800, + 0x0010894c, 0x80c589c0, 0x0402000e, 0x808101c0, + 0x040007ec, 0x0201f800, 0x0010609c, 0x59310000, + 0x4084d000, 0x0401fde5, 0x0401fe64, 0x40826000, + 0x0401f7e6, 0x0201f800, 0x0010619f, 0x0401f00b, + 0x0201f800, 0x00108f16, 0x80c589c0, 0x040007f0, + 0x5930d403, 0x82697480, 0x00000043, 0x040207ec, + 0x41790000, 0x0401f7ea, 0x589d2805, 0x589d2004, 0x589d1803, 0x589d1002, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000006, 0x1c01f000, 0x829d3c80, - 0x00000002, 0x48813800, 0x48853801, 0x4947c857, - 0x0201f800, 0x00106106, 0x40c50800, 0x413d0000, - 0x853e7d00, 0x0401ffbb, 0x0401ff70, 0x40827800, - 0x80857040, 0x04000002, 0x0401f003, 0x0201f800, - 0x001060fa, 0x589d0801, 0x589d0000, 0x829d3c00, - 0x00000002, 0x1c01f000, 0x829d3c80, 0x00000003, - 0x48813800, 0x48853801, 0x48893802, 0x41311000, - 0x41790800, 0x598e600b, 0x813261c0, 0x04000011, - 0x0401fe73, 0x80c589c0, 0x04020006, 0x41310800, - 0x59326000, 0x813261c0, 0x040207fa, 0x0401f009, - 0x0201f800, 0x00105ff7, 0x59310000, 0x4084d000, - 0x0401fc6d, 0x0401fd8d, 0x40826000, 0x0401f7ef, - 0x0201f800, 0x00103fbd, 0x408a6000, 0x589d1002, - 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000003, - 0x1c01f000, 0x829d3c80, 0x00000003, 0x48813800, - 0x48853801, 0x48893802, 0x41311000, 0x41790800, - 0x598e6009, 0x813261c0, 0x04000011, 0x0401fe50, - 0x80c589c0, 0x04020006, 0x41310800, 0x59326000, - 0x813261c0, 0x040207fa, 0x0401f009, 0x59310000, - 0x0201f800, 0x00105ff7, 0x4084d000, 0x0401fc98, - 0x0401fd6a, 0x40826000, 0x0401f7ef, 0x0201f800, - 0x00107011, 0x0201f800, 0x0010702d, 0x408a6000, - 0x589d1002, 0x589d0801, 0x589d0000, 0x829d3c00, - 0x00000003, 0x1c01f000, 0x809d3840, 0x48813800, - 0x4943c857, 0x0201f800, 0x00106106, 0x40c50000, - 0x0401ffd5, 0x0401ffb1, 0x80817040, 0x04000002, - 0x0401f003, 0x0201f800, 0x001060fa, 0x589d0000, - 0x809d3800, 0x1c01f000, 0x829d3c80, 0x00000004, - 0x48813800, 0x48853801, 0x48893802, 0x488d3803, - 0x0201f800, 0x00106106, 0x40c51800, 0x41311000, - 0x41790800, 0x598e6005, 0x813261c0, 0x04000008, - 0x0401fe17, 0x80c589c0, 0x04020009, 0x41310800, - 0x59326000, 0x813261c0, 0x040207fa, 0x408a6000, - 0x808d7040, 0x0400000a, 0x0401f00b, 0x0201f800, - 0x00105ff7, 0x59310000, 0x4084d000, 0x0401fcaf, - 0x0401fd2e, 0x40826000, 0x0401f7ec, 0x0201f800, - 0x001060fa, 0x589d1803, 0x589d1002, 0x589d0801, - 0x589d0000, 0x829d3c00, 0x00000004, 0x1c01f000, - 0x809d3840, 0x48a13800, 0x829d3c80, 0x00000005, - 0x409d4000, 0x829d3c80, 0x00000007, 0x48813800, + 0x00000006, 0x48813800, 0x48853801, 0x48893802, + 0x488d3803, 0x48913804, 0x48953805, 0x412d1800, + 0x41312000, 0x41352800, 0x41790800, 0x0201f800, + 0x001061ab, 0x40c51000, 0x0201f800, 0x00103e78, + 0x40c66800, 0x80c589c0, 0x04000027, 0x598e600b, + 0x0401f003, 0x41310800, 0x59326000, 0x813261c0, + 0x04000011, 0x5930d00a, 0x41340000, 0x80697480, + 0x040207f9, 0x0401ff06, 0x80c589c0, 0x040007f6, + 0x0201f800, 0x0010609c, 0x59310000, 0x4084d000, + 0x0401fd05, 0x0401fe25, 0x40826000, 0x813261c0, + 0x040207f1, 0x8d3e7d06, 0x04000004, 0x5934d200, + 0x8c68d50e, 0x04020003, 0x0201f800, 0x00103ffa, + 0x408e5800, 0x40926000, 0x40966800, 0x80897040, + 0x04000002, 0x0401f00b, 0x0201f800, 0x0010619f, + 0x0401f008, 0x4200d000, 0x00000714, 0x40c4d800, + 0x4144e000, 0x0201f800, 0x0010032a, 0x0401f7d4, + 0x589d2805, 0x589d2004, 0x589d1803, 0x589d1002, + 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000006, + 0x1c01f000, 0x829d3c80, 0x00000006, 0x48813800, 0x48853801, 0x48893802, 0x488d3803, 0x48913804, - 0x48953805, 0x48993806, 0x41791000, 0x0201f800, - 0x00106106, 0x48c54004, 0x41311800, 0x41352800, - 0x41193000, 0x412d2000, 0x49914003, 0x49d14000, - 0x49a54001, 0x49154002, 0x59be6031, 0x813261c0, - 0x0400000e, 0x41310800, 0x59310000, 0x5932680a, - 0x5934d403, 0x41440000, 0x80697480, 0x04000027, - 0x808101c0, 0x04000003, 0x41310800, 0x40826000, - 0x808101c0, 0x040207f5, 0x417a3000, 0x0201f800, - 0x00106705, 0x59926004, 0x813261c0, 0x04000006, - 0x5932680a, 0x5934d403, 0x41440000, 0x80697480, - 0x04000023, 0x811a3000, 0x83197480, 0x00000004, - 0x040007f3, 0x040017f2, 0x408e6000, 0x40966800, - 0x409a3000, 0x40925800, 0x58a32003, 0x58a3a000, - 0x58a34801, 0x58a22802, 0x58a0d004, 0x80697040, - 0x04000010, 0x0401f01d, 0x41311000, 0x40826000, - 0x808101c0, 0x040007e1, 0x59310001, 0x0401fdb0, - 0x80c589c0, 0x040007f9, 0x4084d000, 0x4088d800, - 0x0201f800, 0x0010e171, 0x0401fcd0, 0x0401f7f4, - 0x0201f800, 0x001060fa, 0x0401f00c, 0x0401fda4, - 0x80c589c0, 0x040007dc, 0x0201f800, 0x0010629a, - 0x0201f800, 0x001060d8, 0x0201f800, 0x001060e1, - 0x0401fcc2, 0x0401f7d4, 0x589d3006, 0x589d2805, + 0x48953805, 0x41311800, 0x41352000, 0x412d2800, + 0x41790800, 0x0201f800, 0x001061ab, 0x40c51000, + 0x598e6009, 0x0401f003, 0x41310800, 0x59326000, + 0x813261c0, 0x04000012, 0x5932680a, 0x5934d403, + 0x41440000, 0x80697480, 0x040207f8, 0x0401fec0, + 0x80c589c0, 0x040007f5, 0x59310000, 0x0201f800, + 0x0010609c, 0x4084d000, 0x0401fd0d, 0x0401fddf, + 0x40826000, 0x813261c0, 0x040207f0, 0x0201f800, + 0x00107050, 0x0201f800, 0x001070bc, 0x408e6000, + 0x40926800, 0x40965800, 0x80897040, 0x04000002, + 0x0401f003, 0x0201f800, 0x0010619f, 0x589d2805, 0x589d2004, 0x589d1803, 0x589d1002, 0x589d0801, - 0x589d0000, 0x829d3c00, 0x0000000c, 0x589d4000, - 0x809d3800, 0x1c01f000, 0x809d3840, 0x48a13800, - 0x829d3c80, 0x00000007, 0x409d4000, 0x829d3c80, - 0x00000007, 0x48813800, 0x48853801, 0x48893802, - 0x488d3803, 0x48913804, 0x48953805, 0x48993806, - 0x41791800, 0x0201f800, 0x00106106, 0x40c52800, - 0x41313000, 0x49354005, 0x492d4004, 0x49194006, - 0x49914003, 0x49d14000, 0x49a54001, 0x49154002, - 0x59be6031, 0x813261c0, 0x04000023, 0x41312000, - 0x408d0800, 0x59311000, 0x5932680a, 0x0401f009, - 0x41311800, 0x808509c0, 0x04000010, 0x808101c0, - 0x04000002, 0x40826000, 0x808101c0, 0x0400000d, - 0x59310001, 0x0401fd62, 0x80c589c0, 0x040007f5, - 0x4090d000, 0x408cd800, 0x0201f800, 0x0010e171, - 0x0401fc82, 0x0401f7f2, 0x41310800, 0x0401f7f0, - 0x808911c0, 0x04000006, 0x408a6000, 0x808509c0, - 0x04000003, 0x40852000, 0x40810800, 0x808911c0, - 0x040207e1, 0x417a3000, 0x0201f800, 0x00106705, - 0x59926004, 0x813261c0, 0x04000004, 0x0401fd48, - 0x80c589c0, 0x04020011, 0x811a3000, 0x83197480, - 0x00000004, 0x040007f5, 0x040017f4, 0x409a6000, - 0x58a26805, 0x58a25804, 0x58a23006, 0x58a32003, - 0x58a3a000, 0x58a34801, 0x58a22802, 0x80957040, - 0x0400000a, 0x0401f00b, 0x0201f800, 0x0010629a, - 0x0201f800, 0x001060d8, 0x0201f800, 0x001060e1, - 0x0401fc56, 0x0401f7e9, 0x0201f800, 0x001060fa, - 0x589d3006, 0x589d2805, 0x589d2004, 0x589d1803, - 0x589d1002, 0x589d0801, 0x589d0000, 0x829d3c00, - 0x0000000e, 0x589d4000, 0x809d3800, 0x1c01f000, - 0x4178e000, 0x497bc856, 0x5930dc03, 0x826cd480, - 0x00000002, 0x82697480, 0x00000002, 0x04000007, - 0x04001006, 0x599cd019, 0x8c68d50e, 0x04000005, - 0x806cd9c0, 0x04020003, 0x4200e000, 0x00000001, - 0x40718800, 0x1c01f000, 0x829d3c80, 0x00000004, - 0x48813800, 0x48853801, 0x48893802, 0x488d3803, - 0x412d0800, 0x41351000, 0x41391800, 0x0201f800, - 0x0010e438, 0x80c589c0, 0x040000cd, 0x5932680a, - 0x5930d407, 0x40680000, 0x82697480, 0x00000013, - 0x83f17500, 0x03000000, 0x04000028, 0x0c01f001, - 0x0010e804, 0x0010e7b1, 0x0010e7c1, 0x0010e776, - 0x0010e7b1, 0x0010e7c1, 0x0010e799, 0x0010e7aa, - 0x0010e76e, 0x0010e7d1, 0x0010e758, 0x0010e76e, - 0x0010e76e, 0x0010e76e, 0x0010e76e, 0x0010e804, - 0x0010e758, 0x0010e755, 0x0010e76e, 0x0010e76e, - 0x59325818, 0x0201f800, 0x00100589, 0x5930d203, - 0x82697480, 0x00000004, 0x04000090, 0x59325809, - 0x0201f800, 0x00108893, 0x80c589c0, 0x04020083, - 0x0201f800, 0x001070b5, 0x8d3e7d1c, 0x040000a0, - 0x497a600a, 0x0401f09e, 0x4200d000, 0x0000030f, - 0x4000d800, 0x4130e000, 0x0201f800, 0x0010032a, - 0x0401f097, 0x59325809, 0x0201f800, 0x00108893, - 0x80c589c0, 0x0402006a, 0x0201f800, 0x001070b5, - 0x0401f08f, 0x813669c0, 0x04000077, 0x0201f800, - 0x001092d9, 0x5930d203, 0x82697480, 0x00000004, - 0x04000081, 0x59325809, 0x0201f800, 0x00108893, - 0x80c589c0, 0x040007df, 0x592cd205, 0x8268d500, - 0x000000ff, 0x82697480, 0x00000014, 0x04000003, - 0x0201f800, 0x0010899c, 0x4a025a05, 0x00000103, - 0x5930d402, 0x486a5c07, 0x592cd409, 0x8c68d512, - 0x04020067, 0x49425a07, 0x497a580a, 0x0201f800, - 0x00108e69, 0x0201f800, 0x000203ab, 0x0401f7c9, - 0x5930d203, 0x82697480, 0x00000004, 0x04000065, - 0x59325809, 0x0201f800, 0x00108893, 0x80c589c0, - 0x040007c0, 0x49425a07, 0x813669c0, 0x040007f0, - 0x0201f800, 0x0010a241, 0x0201f800, 0x00108e69, - 0x0401f7ed, 0x5930d203, 0x82697480, 0x00000011, - 0x04020057, 0x5930d41e, 0x486a6203, 0x0401f054, - 0x5930d403, 0x82697480, 0x00000043, 0x04000050, - 0x0201f800, 0x0010a591, 0x0401ff62, 0x80c589c0, - 0x0402003c, 0x0201f800, 0x001089c3, 0x80c589c0, - 0x040007a4, 0x0201f800, 0x00107851, 0x0401f7a1, - 0x59325809, 0x0201f800, 0x00108893, 0x80c589c0, - 0x0400079c, 0x49425a07, 0x497a5c0a, 0x0201f800, - 0x000203ab, 0x5930d21e, 0x82697480, 0x00000003, - 0x04020794, 0x0201f800, 0x0010899c, 0x0401f791, - 0x5930d203, 0x82697480, 0x00000004, 0x04020013, - 0x5930d006, 0x8068d1c0, 0x0400002d, 0x5930d415, - 0x8468d558, 0x486a6415, 0x0401f029, 0x49425a07, - 0x497a5c07, 0x0201f800, 0x000203ab, 0x0201f800, - 0x001070b5, 0x0401f022, 0x49425a07, 0x0201f800, - 0x000203ab, 0x0401f77b, 0x59325809, 0x0201f800, - 0x00105efe, 0x0401f777, 0x0201f800, 0x00100bd4, - 0x0401f76f, 0x4200d000, 0x00000182, 0x4134d800, - 0x4130e000, 0x0201f800, 0x0010032a, 0x0401f784, - 0x0201f800, 0x00101a67, 0x0401f7c3, 0x412d0000, - 0x592e580a, 0x0201f800, 0x00100589, 0x40825800, - 0x0401f795, 0x0201f800, 0x00100bd4, 0x0401f77e, - 0x0201f800, 0x00100bd4, 0x0401f79a, 0x40865800, - 0x408a6800, 0x408e7000, 0x589d1803, 0x589d1002, - 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000004, - 0x1c01f000, 0x829d3c80, 0x00000002, 0x48813800, - 0x48853801, 0x41310800, 0x4933c857, 0x4943c857, - 0x493fc857, 0x42010000, 0x0010f584, 0x59a8d00d, - 0x41640000, 0x80697480, 0x04000010, 0x41580000, - 0x80817480, 0x0402100d, 0x40826000, 0x8d3e7d12, - 0x04000004, 0x40800000, 0x80857480, 0x04000002, - 0x0401ff06, 0x82810400, 0x00000024, 0x41580000, - 0x80817480, 0x040017f5, 0x41510000, 0x41540000, - 0x80817480, 0x04021019, 0x8d3e7d18, 0x04000017, - 0x59a8d04d, 0x59a8004e, 0x80697480, 0x04000013, - 0x40826000, 0x5880d00a, 0x8068d1c0, 0x04020005, - 0x5880d203, 0x82697480, 0x00000008, 0x04000008, - 0x0401feee, 0x82810400, 0x00000024, 0x41540000, - 0x80817480, 0x040017ed, 0x0401f004, 0x0201f800, - 0x0010a4d9, 0x0401f7f7, 0x40866000, 0x589d0801, - 0x589d0000, 0x829d3c00, 0x00000002, 0x1c01f000, - 0x497a621e, 0x812e59c0, 0x0400003d, 0x592cd205, - 0x486bc857, 0x592cd205, 0x8268d500, 0x000000ff, - 0x82697480, 0x00000014, 0x04000003, 0x4a02621e, - 0x00000003, 0x592cd409, 0x8c68d510, 0x0402001d, - 0x592cd209, 0x0201f800, 0x00104503, 0x0201f800, - 0x00108e69, 0x0201f800, 0x0010ae29, 0x80c589c0, - 0x0400001f, 0x4a026403, 0x00000085, 0x4a026203, - 0x00000009, 0x4a026407, 0x00000002, 0x5930d004, - 0x8268d500, 0x00000100, 0x8268d540, 0x8000404b, - 0x486a6004, 0x0201f800, 0x001060fa, 0x4200d000, - 0x8000404b, 0x0201f800, 0x00105fe4, 0x0401f01f, - 0x592cd209, 0x0201f800, 0x00104503, 0x4a025c09, - 0x00000100, 0x0201f800, 0x00108e69, 0x0201f800, - 0x0010ae29, 0x80c589c0, 0x040207e3, 0x0201f800, - 0x000203ab, 0x5930d21e, 0x82697480, 0x00000003, - 0x0400000a, 0x497a6009, 0x0401f7db, 0x4200d000, - 0x00000527, 0x4130d800, 0x412ce000, 0x0201f800, - 0x0010032a, 0x0401f005, 0x0201f800, 0x0010899c, - 0x497a6009, 0x0401f7d0, 0x1c01f000, 0x0201f800, - 0x001060fa, 0x812e59c0, 0x0400001b, 0x592cd409, - 0x8c68d510, 0x04020012, 0x592cd209, 0x0201f800, - 0x00104503, 0x0201f800, 0x00108e69, 0x0201f800, - 0x000203ab, 0x5930d203, 0x82697480, 0x0000000d, - 0x0400000d, 0x0201f800, 0x001060fa, 0x5930d00a, - 0x0201f800, 0x00104107, 0x0401f007, 0x592cd209, - 0x0201f800, 0x00104503, 0x4a025c09, 0x00000100, - 0x0401f7ed, 0x0201f800, 0x001070b5, 0x1c01f000, + 0x589d0000, 0x829d3c00, 0x00000006, 0x1c01f000, 0x829d3c80, 0x00000002, 0x48813800, 0x48853801, - 0x41790000, 0x0201f800, 0x001085b3, 0x40c50800, - 0x48c7c857, 0x40840000, 0x82857480, 0x0000000d, - 0x83f17500, 0x03000000, 0x0400002b, 0x0c01f001, - 0x0010e8ea, 0x0010e922, 0x0010e900, 0x0010e8d7, - 0x0010e902, 0x0010e8f2, 0x0010e8ea, 0x0010e8ea, - 0x0010e8ea, 0x0010e8f2, 0x0010e8f2, 0x0010e8f2, - 0x0010e8f2, 0x0010e900, 0x0201f800, 0x0010859d, - 0x80c589c0, 0x04000005, 0x0201f800, 0x0010634a, - 0x80c589c0, 0x04000055, 0x0201f800, 0x0010e1ca, - 0x80c589c0, 0x04000017, 0x5930d403, 0x486bc857, - 0x5930d403, 0x82697480, 0x00000040, 0x04020018, - 0x0401ffaf, 0x42010000, 0x00000001, 0x0401f069, - 0x40840000, 0x82857480, 0x0000000d, 0x040007d8, - 0x040017d7, 0x4200d000, 0x000004b7, 0x4130d800, - 0x4084e000, 0x0201f800, 0x0010032a, 0x0401f05d, - 0x497bc856, 0x0201f800, 0x00106011, 0x80c589c0, - 0x04020036, 0x59317004, 0x48bbc857, 0x0401ff4d, - 0x0401f7e9, 0x812e59c0, 0x0400004c, 0x0201f800, - 0x00108ccb, 0x80c589c0, 0x04000030, 0x0201f800, - 0x001060fa, 0x592cd209, 0x8468d50c, 0x486a5a09, - 0x592cdc07, 0x806cd0c6, 0x406c0000, 0x8068d400, - 0x8068d400, 0x486a6006, 0x4200d000, 0x10000000, - 0x4130d800, 0x0201f800, 0x00100890, 0x80c589c0, - 0x0400002b, 0x592cd209, 0x8c68d51c, 0x04020024, - 0x8468d55c, 0x486a5a09, 0x4a026006, 0x00000002, - 0x0401f7c9, 0x598d700f, 0x48bbc857, 0x40b8d000, - 0x41300000, 0x80697480, 0x04000014, 0x0201f800, - 0x0010e343, 0x80c589c0, 0x040207be, 0x497bc856, - 0x0201f800, 0x00106011, 0x4200d000, 0x000003f5, - 0x80c589c0, 0x040007c2, 0x5930d203, 0x486bc857, - 0x59310a03, 0x0401f01f, 0x0201f800, 0x00100bd4, - 0x0401ff14, 0x0401f7b0, 0x0201f800, 0x00106381, - 0x80c589c0, 0x040007f5, 0x0401f7e9, 0x41310000, - 0x0201f800, 0x00101078, 0x40826000, 0x5930d203, - 0x82697480, 0x00000004, 0x040207a3, 0x41390000, - 0x42027000, 0x00000048, 0x0201f800, 0x00107123, - 0x40827000, 0x0401f79c, 0x4200d000, 0x000004a7, - 0x4130d800, 0x412ce000, 0x0201f800, 0x0010032a, - 0x808101c0, 0x04000797, 0x589d0801, 0x589d0000, + 0x4947c857, 0x0201f800, 0x001061ab, 0x40c50800, + 0x413d0000, 0x853e7d00, 0x0401ffbb, 0x0401ff70, + 0x40827800, 0x80857040, 0x04000002, 0x0401f003, + 0x0201f800, 0x0010619f, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000002, 0x1c01f000, 0x829d3c80, - 0x00000002, 0x48813800, 0x48853801, 0x412d0800, - 0x41410000, 0x4200d000, 0x0010bc2c, 0x0201f800, - 0x0010ad1c, 0x417a5800, 0x0201f800, 0x00108893, - 0x80c589c0, 0x04000009, 0x0201f800, 0x001092d9, - 0x59325809, 0x592cd209, 0x8468d54c, 0x486a5a09, - 0x42028000, 0x00000006, 0x0201f800, 0x00106106, - 0x0401ff44, 0x0201f800, 0x001060fa, 0x40828000, - 0x40865800, 0x589d0801, 0x589d0000, 0x829d3c00, - 0x00000002, 0x1c01f000, 0x829d3c80, 0x00000002, - 0x48813800, 0x48853801, 0x412d0800, 0x0201f800, - 0x0010e438, 0x80c589c0, 0x040000c3, 0x5930d407, - 0x40680000, 0x82697480, 0x00000013, 0x83f17500, - 0x03000000, 0x04000025, 0x0c01f001, 0x0010ea4a, - 0x0010e9ee, 0x0010ea04, 0x0010e9cb, 0x0010e9ee, - 0x0010ea04, 0x0010ea14, 0x0010e9fd, 0x0010ea29, - 0x0010e9a4, 0x0010e9ba, 0x0010ea29, 0x0010ea29, - 0x0010ea29, 0x0010ea29, 0x0010ea4a, 0x0010e9c0, - 0x0010ea25, 0x0010ea29, 0x0010ea29, 0x0201f800, - 0x00105b69, 0x80c589c0, 0x04000090, 0x5930d203, - 0x82697480, 0x00000004, 0x0402009f, 0x5930d006, - 0x8068d1c0, 0x0400009c, 0x5930d415, 0x8468d558, - 0x486a6415, 0x0401f098, 0x4200d000, 0x0000031c, - 0x4000d800, 0x4130e000, 0x0201f800, 0x0010032a, - 0x0401f091, 0x5930d203, 0x82697480, 0x00000004, - 0x04020003, 0x0201f800, 0x00100bd4, 0x59325809, - 0x0201f800, 0x00108893, 0x80c589c0, 0x0402006f, - 0x0201f800, 0x001070b5, 0x8d3e7d1c, 0x04000082, - 0x497a600a, 0x0401f080, 0x0201f800, 0x001092d9, - 0x5930d203, 0x82697480, 0x00000004, 0x04000074, - 0x59325809, 0x0201f800, 0x00108893, 0x80c589c0, - 0x040007f0, 0x592cd205, 0x8268d500, 0x000000ff, - 0x82697480, 0x00000014, 0x04000003, 0x0201f800, - 0x0010899c, 0x4a025a05, 0x00000103, 0x592cd409, - 0x8c68d512, 0x0402005c, 0x49425a07, 0x497a580a, - 0x0201f800, 0x0010a241, 0x0201f800, 0x00108e69, - 0x0201f800, 0x00108a42, 0x0201f800, 0x000203ab, - 0x0401f7d8, 0x5930d403, 0x82697480, 0x00000043, - 0x04000059, 0x0201f800, 0x0010e719, 0x80c589c0, - 0x04020046, 0x0201f800, 0x001089c3, 0x80c589c0, - 0x040007cc, 0x0201f800, 0x00107851, 0x0401f7c9, - 0x5930d203, 0x82697480, 0x00000011, 0x0402004a, - 0x5930d41e, 0x486a6203, 0x0401f047, 0x59325809, - 0x0201f800, 0x00108893, 0x80c589c0, 0x040007bd, - 0x49425a07, 0x497a5c0a, 0x0201f800, 0x000203ab, - 0x5930d21e, 0x82697480, 0x00000003, 0x040207b5, - 0x0201f800, 0x0010899c, 0x0401f7b2, 0x5930d203, - 0x82697480, 0x00000004, 0x04000030, 0x59325809, - 0x0201f800, 0x00108893, 0x80c589c0, 0x040007a9, - 0x49425a07, 0x0201f800, 0x0010a241, 0x0201f800, - 0x00108e69, 0x0201f800, 0x000203ab, 0x0401f7a1, - 0x59325818, 0x0201f800, 0x00100589, 0x0401f798, - 0x59325809, 0x0201f800, 0x00108893, 0x80c589c0, - 0x04000798, 0x49425a07, 0x497a5c07, 0x0201f800, - 0x000203ab, 0x0401f793, 0x49425a07, 0x0201f800, - 0x000203ab, 0x0401f78f, 0x59325809, 0x0201f800, - 0x00105efe, 0x0401f78b, 0x0201f800, 0x00101a67, - 0x0401f7b9, 0x412d0000, 0x592e580a, 0x0201f800, - 0x00100589, 0x40825800, 0x0401f7a0, 0x0201f800, - 0x00100bd4, 0x0401f78b, 0x0201f800, 0x00100bd4, - 0x0401f7cf, 0x40865800, 0x589d0801, 0x589d0000, - 0x829d3c00, 0x00000002, 0x1c01f000, 0x0201f800, - 0x0010a030, 0x80c589c0, 0x0402000c, 0x5930d407, - 0x82697480, 0x00000010, 0x04000002, 0x0401f009, - 0x83457480, 0x0000ffff, 0x040207fd, 0x5930d00a, - 0x8068d1c0, 0x040207fa, 0x5932680a, 0x0401ff1f, - 0x1c01f000, 0x829d3c80, 0x00000005, 0x48813800, - 0x48853801, 0x48893802, 0x488d3803, 0x48913804, - 0x41311000, 0x41352000, 0x4933c857, 0x4947c857, - 0x4943c857, 0x0201f800, 0x00106106, 0x40c51800, - 0x0201f800, 0x00109edc, 0x41310800, 0x813261c0, - 0x04000048, 0x42000000, 0x0010f53c, 0x81317480, - 0x04000044, 0x59a8d00d, 0x8068d040, 0x42010000, - 0x0010f584, 0x40680000, 0x81657480, 0x0400000f, - 0x41580000, 0x80817480, 0x0402100c, 0x40826000, - 0x40800000, 0x80857480, 0x04000003, 0x4084d000, - 0x0401ffc7, 0x82810400, 0x00000024, 0x41580000, - 0x80817480, 0x040017f6, 0x41510000, 0x41540000, - 0x80817480, 0x04021012, 0x8d3e7d18, 0x04000010, - 0x59a8d04d, 0x59a8004e, 0x80697480, 0x0400000c, - 0x40826000, 0x5880d00a, 0x8068d1c0, 0x0400000d, - 0x4084d000, 0x0401ffb2, 0x82810400, 0x00000024, - 0x41540000, 0x80817480, 0x040017f0, 0x408a6000, - 0x40926800, 0x808d7040, 0x04000018, 0x0401f01d, - 0x0201f800, 0x00103e62, 0x40c66800, 0x80c589c0, - 0x040007f2, 0x58c4d002, 0x5930d81f, 0x82680500, - 0x00ffffff, 0x806d7480, 0x040207ec, 0x5930d203, - 0x82697480, 0x00000008, 0x0400000b, 0x4936600a, - 0x0401fec6, 0x82810400, 0x00000024, 0x0401f7e5, - 0x59a8d00d, 0x0401f7be, 0x0201f800, 0x001060fa, - 0x0401f004, 0x0201f800, 0x0010a4d9, 0x0401f7f4, - 0x589d2004, 0x589d1803, 0x589d1002, 0x589d0801, - 0x589d0000, 0x829d3c00, 0x00000005, 0x1c01f000, + 0x00000003, 0x48813800, 0x48853801, 0x48893802, + 0x41311000, 0x41790800, 0x598e600b, 0x813261c0, + 0x04000011, 0x0401fe7e, 0x80c589c0, 0x04020006, + 0x41310800, 0x59326000, 0x813261c0, 0x040207fa, + 0x0401f009, 0x0201f800, 0x0010609c, 0x59310000, + 0x4084d000, 0x0401fc78, 0x0401fd98, 0x40826000, + 0x0401f7ef, 0x0201f800, 0x00103fd7, 0x408a6000, + 0x589d1002, 0x589d0801, 0x589d0000, 0x829d3c00, + 0x00000003, 0x1c01f000, 0x829d3c80, 0x00000003, + 0x48813800, 0x48853801, 0x48893802, 0x41311000, + 0x41790800, 0x598e6009, 0x813261c0, 0x04000011, + 0x0401fe5b, 0x80c589c0, 0x04020006, 0x41310800, + 0x59326000, 0x813261c0, 0x040207fa, 0x0401f009, + 0x59310000, 0x0201f800, 0x0010609c, 0x4084d000, + 0x0401fca3, 0x0401fd75, 0x40826000, 0x0401f7ef, + 0x0201f800, 0x001070a0, 0x0201f800, 0x001070bc, + 0x408a6000, 0x589d1002, 0x589d0801, 0x589d0000, + 0x829d3c00, 0x00000003, 0x1c01f000, 0x809d3840, + 0x48813800, 0x4943c857, 0x0201f800, 0x001061ab, + 0x40c50000, 0x0401ffd5, 0x0401ffb1, 0x80817040, + 0x04000002, 0x0401f003, 0x0201f800, 0x0010619f, + 0x589d0000, 0x809d3800, 0x1c01f000, 0x829d3c80, + 0x00000004, 0x48813800, 0x48853801, 0x48893802, + 0x488d3803, 0x0201f800, 0x001061ab, 0x40c51800, + 0x41311000, 0x41790800, 0x598e6005, 0x813261c0, + 0x04000008, 0x0401fe22, 0x80c589c0, 0x04020009, + 0x41310800, 0x59326000, 0x813261c0, 0x040207fa, + 0x408a6000, 0x808d7040, 0x0400000a, 0x0401f00b, + 0x0201f800, 0x0010609c, 0x59310000, 0x4084d000, + 0x0401fcba, 0x0401fd39, 0x40826000, 0x0401f7ec, + 0x0201f800, 0x0010619f, 0x589d1803, 0x589d1002, + 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000004, + 0x1c01f000, 0x809d3840, 0x48a13800, 0x829d3c80, + 0x00000005, 0x409d4000, 0x829d3c80, 0x00000007, + 0x48813800, 0x48853801, 0x48893802, 0x488d3803, + 0x48913804, 0x48953805, 0x48993806, 0x41791000, + 0x0201f800, 0x001061ab, 0x48c54004, 0x41311800, + 0x41352800, 0x41193000, 0x412d2000, 0x49914003, + 0x49d14000, 0x49a54001, 0x49154002, 0x59be6031, + 0x813261c0, 0x0400000e, 0x41310800, 0x59310000, + 0x5932680a, 0x5934d403, 0x41440000, 0x80697480, + 0x04000027, 0x808101c0, 0x04000003, 0x41310800, + 0x40826000, 0x808101c0, 0x040207f5, 0x417a3000, + 0x0201f800, 0x001067aa, 0x59926004, 0x813261c0, + 0x04000006, 0x5932680a, 0x5934d403, 0x41440000, + 0x80697480, 0x04000023, 0x811a3000, 0x83197480, + 0x00000004, 0x040007f3, 0x040017f2, 0x408e6000, + 0x40966800, 0x409a3000, 0x40925800, 0x58a32003, + 0x58a3a000, 0x58a34801, 0x58a22802, 0x58a0d004, + 0x80697040, 0x04000010, 0x0401f01d, 0x41311000, + 0x40826000, 0x808101c0, 0x040007e1, 0x59310001, + 0x0401fdbb, 0x80c589c0, 0x040007f9, 0x4084d000, + 0x4088d800, 0x0201f800, 0x0010e281, 0x0401fcdb, + 0x0401f7f4, 0x0201f800, 0x0010619f, 0x0401f00c, + 0x0401fdaf, 0x80c589c0, 0x040007dc, 0x0201f800, + 0x0010633f, 0x0201f800, 0x0010617d, 0x0201f800, + 0x00106186, 0x0401fccd, 0x0401f7d4, 0x589d3006, + 0x589d2805, 0x589d2004, 0x589d1803, 0x589d1002, + 0x589d0801, 0x589d0000, 0x829d3c00, 0x0000000c, + 0x589d4000, 0x809d3800, 0x1c01f000, 0x809d3840, + 0x48a13800, 0x829d3c80, 0x00000007, 0x409d4000, 0x829d3c80, 0x00000007, 0x48813800, 0x48853801, 0x48893802, 0x488d3803, 0x48913804, 0x48953805, - 0x48993806, 0x42010000, 0x00000001, 0x41790800, - 0x497bc856, 0x41311000, 0x41351800, 0x41452000, - 0x413d2800, 0x40593000, 0x4200d000, 0x0010eacd, - 0x0201f800, 0x001057d5, 0x59a8d21b, 0x8c68d508, - 0x0400001d, 0x8c68d516, 0x0402001b, 0x59aa6864, - 0x813669c0, 0x04000076, 0x5934d400, 0x82697480, - 0x00000404, 0x04020072, 0x0201f800, 0x001070f2, - 0x40c66000, 0x80c589c0, 0x04000067, 0x48818c07, - 0x4935880a, 0x40867800, 0x0201f800, 0x00103d7f, - 0x4200d000, 0x00000005, 0x0201f800, 0x00103d89, - 0x42027000, 0x00000003, 0x0201f800, 0x00107123, - 0x0401f05f, 0x8c68d506, 0x04020003, 0x8c68d50a, - 0x04000014, 0x0201f800, 0x001040c4, 0x80c589c0, - 0x0400000a, 0x83acd400, 0x000007fe, 0x586a6800, - 0x5934d200, 0x8468d51a, 0x486a6a00, 0x59a8d21b, - 0x8c68d506, 0x0402003b, 0x808509c0, 0x04000005, - 0x8d0e1d20, 0x0402003b, 0x0201f800, 0x0010e14a, - 0x80817040, 0x04020046, 0x4200b000, 0x000007f0, - 0x417a8800, 0x0401f004, 0x81468800, 0x8058b040, - 0x0400003f, 0x0201f800, 0x00103e62, 0x80c589c0, - 0x040007fa, 0x5934d200, 0x8c68d51a, 0x040007f7, - 0x5934d403, 0x406a8800, 0x417a7800, 0x42028000, - 0x00000029, 0x413cd000, 0x413cd800, 0x0201f800, - 0x00109f3f, 0x5934d200, 0x8468d558, 0x486a6a00, + 0x48993806, 0x41791800, 0x0201f800, 0x001061ab, + 0x40c52800, 0x41313000, 0x49354005, 0x492d4004, + 0x49194006, 0x49914003, 0x49d14000, 0x49a54001, + 0x49154002, 0x59be6031, 0x813261c0, 0x04000023, + 0x41312000, 0x408d0800, 0x59311000, 0x5932680a, + 0x0401f009, 0x41311800, 0x808509c0, 0x04000010, + 0x808101c0, 0x04000002, 0x40826000, 0x808101c0, + 0x0400000d, 0x59310001, 0x0401fd6d, 0x80c589c0, + 0x040007f5, 0x4090d000, 0x408cd800, 0x0201f800, + 0x0010e281, 0x0401fc8d, 0x0401f7f2, 0x41310800, + 0x0401f7f0, 0x808911c0, 0x04000006, 0x408a6000, + 0x808509c0, 0x04000003, 0x40852000, 0x40810800, + 0x808911c0, 0x040207e1, 0x417a3000, 0x0201f800, + 0x001067aa, 0x59926004, 0x813261c0, 0x04000004, + 0x0401fd53, 0x80c589c0, 0x04020011, 0x811a3000, + 0x83197480, 0x00000004, 0x040007f5, 0x040017f4, + 0x409a6000, 0x58a26805, 0x58a25804, 0x58a23006, + 0x58a32003, 0x58a3a000, 0x58a34801, 0x58a22802, + 0x80957040, 0x0400000a, 0x0401f00b, 0x0201f800, + 0x0010633f, 0x0201f800, 0x0010617d, 0x0201f800, + 0x00106186, 0x0401fc61, 0x0401f7e9, 0x0201f800, + 0x0010619f, 0x589d3006, 0x589d2805, 0x589d2004, + 0x589d1803, 0x589d1002, 0x589d0801, 0x589d0000, + 0x829d3c00, 0x0000000e, 0x589d4000, 0x809d3800, + 0x1c01f000, 0x4178e000, 0x497bc856, 0x5930dc03, + 0x826cd480, 0x00000002, 0x82697480, 0x00000002, + 0x04000007, 0x04001006, 0x599cd019, 0x8c68d50e, + 0x04000005, 0x806cd9c0, 0x04020003, 0x4200e000, + 0x00000001, 0x40718800, 0x1c01f000, 0x829d3c80, + 0x00000004, 0x48813800, 0x48853801, 0x48893802, + 0x488d3803, 0x412d0800, 0x41351000, 0x41391800, + 0x0201f800, 0x0010e548, 0x80c589c0, 0x040000cd, + 0x5932680a, 0x5930d407, 0x40680000, 0x82697480, + 0x00000013, 0x83f17500, 0x03000000, 0x04000028, + 0x0c01f001, 0x0010e909, 0x0010e8b6, 0x0010e8c6, + 0x0010e87b, 0x0010e8b6, 0x0010e8c6, 0x0010e89e, + 0x0010e8af, 0x0010e873, 0x0010e8d6, 0x0010e85d, + 0x0010e873, 0x0010e873, 0x0010e873, 0x0010e873, + 0x0010e909, 0x0010e85d, 0x0010e85a, 0x0010e873, + 0x0010e873, 0x59325818, 0x0201f800, 0x00100589, + 0x5930d203, 0x82697480, 0x00000004, 0x04000090, + 0x59325809, 0x0201f800, 0x0010894c, 0x80c589c0, + 0x04020083, 0x0201f800, 0x00107144, 0x8d3e7d1c, + 0x040000a0, 0x497a600a, 0x0401f09e, 0x4200d000, + 0x0000030f, 0x4000d800, 0x4130e000, 0x0201f800, + 0x0010032a, 0x0401f097, 0x59325809, 0x0201f800, + 0x0010894c, 0x80c589c0, 0x0402006a, 0x0201f800, + 0x00107144, 0x0401f08f, 0x813669c0, 0x04000077, + 0x0201f800, 0x00109391, 0x5930d203, 0x82697480, + 0x00000004, 0x04000081, 0x59325809, 0x0201f800, + 0x0010894c, 0x80c589c0, 0x040007df, 0x592cd205, + 0x8268d500, 0x000000ff, 0x82697480, 0x00000014, + 0x04000003, 0x0201f800, 0x00108a55, 0x4a025a05, + 0x00000103, 0x5930d402, 0x486a5c07, 0x592cd409, + 0x8c68d512, 0x04020067, 0x49425a07, 0x497a580a, + 0x0201f800, 0x00108f22, 0x0201f800, 0x000203ab, + 0x0401f7c9, 0x5930d203, 0x82697480, 0x00000004, + 0x04000065, 0x59325809, 0x0201f800, 0x0010894c, + 0x80c589c0, 0x040007c0, 0x49425a07, 0x813669c0, + 0x040007f0, 0x0201f800, 0x0010a320, 0x0201f800, + 0x00108f22, 0x0401f7ed, 0x5930d203, 0x82697480, + 0x00000011, 0x04020057, 0x5930d41e, 0x486a6203, + 0x0401f054, 0x5930d403, 0x82697480, 0x00000043, + 0x04000050, 0x0201f800, 0x0010a684, 0x0401ff62, + 0x80c589c0, 0x0402003c, 0x0201f800, 0x00108a7c, + 0x80c589c0, 0x040007a4, 0x0201f800, 0x001078e7, + 0x0401f7a1, 0x59325809, 0x0201f800, 0x0010894c, + 0x80c589c0, 0x0400079c, 0x49425a07, 0x497a5c0a, + 0x0201f800, 0x000203ab, 0x5930d21e, 0x82697480, + 0x00000003, 0x04020794, 0x0201f800, 0x00108a55, + 0x0401f791, 0x5930d203, 0x82697480, 0x00000004, + 0x04020013, 0x5930d006, 0x8068d1c0, 0x0400002d, + 0x5930d415, 0x8468d558, 0x486a6415, 0x0401f029, + 0x49425a07, 0x497a5c07, 0x0201f800, 0x000203ab, + 0x0201f800, 0x00107144, 0x0401f022, 0x49425a07, + 0x0201f800, 0x000203ab, 0x0401f77b, 0x59325809, + 0x0201f800, 0x00105fa3, 0x0401f777, 0x0201f800, + 0x00100bd5, 0x0401f76f, 0x4200d000, 0x00000182, + 0x4134d800, 0x4130e000, 0x0201f800, 0x0010032a, + 0x0401f784, 0x0201f800, 0x00101a68, 0x0401f7c3, + 0x412d0000, 0x592e580a, 0x0201f800, 0x00100589, + 0x40825800, 0x0401f795, 0x0201f800, 0x00100bd5, + 0x0401f77e, 0x0201f800, 0x00100bd5, 0x0401f79a, + 0x40865800, 0x408a6800, 0x408e7000, 0x589d1803, + 0x589d1002, 0x589d0801, 0x589d0000, 0x829d3c00, + 0x00000004, 0x1c01f000, 0x829d3c80, 0x00000002, + 0x48813800, 0x48853801, 0x41310800, 0x4933c857, + 0x4943c857, 0x493fc857, 0x42010000, 0x0010f694, + 0x59a8d00d, 0x41640000, 0x80697480, 0x04000010, + 0x41580000, 0x80817480, 0x0402100d, 0x40826000, + 0x8d3e7d12, 0x04000004, 0x40800000, 0x80857480, + 0x04000002, 0x0401ff06, 0x82810400, 0x00000024, + 0x41580000, 0x80817480, 0x040017f5, 0x41510000, + 0x41540000, 0x80817480, 0x04021019, 0x8d3e7d18, + 0x04000017, 0x59a8d04d, 0x59a8004e, 0x80697480, + 0x04000013, 0x40826000, 0x5880d00a, 0x8068d1c0, + 0x04020005, 0x5880d203, 0x82697480, 0x00000008, + 0x04000008, 0x0401feee, 0x82810400, 0x00000024, + 0x41540000, 0x80817480, 0x040017ed, 0x0401f004, + 0x0201f800, 0x0010a5cc, 0x0401f7f7, 0x40866000, + 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000002, + 0x1c01f000, 0x497a621e, 0x812e59c0, 0x0400003d, + 0x592cd205, 0x486bc857, 0x592cd205, 0x8268d500, + 0x000000ff, 0x82697480, 0x00000014, 0x04000003, + 0x4a02621e, 0x00000003, 0x592cd409, 0x8c68d510, + 0x0402001d, 0x592cd209, 0x0201f800, 0x00104542, + 0x0201f800, 0x00108f22, 0x0201f800, 0x0010af1c, + 0x80c589c0, 0x0400001f, 0x4a026403, 0x00000085, + 0x4a026203, 0x00000009, 0x4a026407, 0x00000002, + 0x5930d004, 0x8268d500, 0x00000100, 0x8268d540, + 0x8000404b, 0x486a6004, 0x0201f800, 0x0010619f, + 0x4200d000, 0x8000404b, 0x0201f800, 0x00106089, + 0x0401f01f, 0x592cd209, 0x0201f800, 0x00104542, + 0x4a025c09, 0x00000100, 0x0201f800, 0x00108f22, + 0x0201f800, 0x0010af1c, 0x80c589c0, 0x040207e3, + 0x0201f800, 0x000203ab, 0x5930d21e, 0x82697480, + 0x00000003, 0x0400000a, 0x497a6009, 0x0401f7db, + 0x4200d000, 0x00000527, 0x4130d800, 0x412ce000, + 0x0201f800, 0x0010032a, 0x0401f005, 0x0201f800, + 0x00108a55, 0x497a6009, 0x0401f7d0, 0x1c01f000, + 0x0201f800, 0x0010619f, 0x812e59c0, 0x0400001b, + 0x592cd409, 0x8c68d510, 0x04020012, 0x592cd209, + 0x0201f800, 0x00104542, 0x0201f800, 0x00108f22, + 0x0201f800, 0x000203ab, 0x5930d203, 0x82697480, + 0x0000000d, 0x0400000d, 0x0201f800, 0x0010619f, + 0x5930d00a, 0x0201f800, 0x00104121, 0x0401f007, + 0x592cd209, 0x0201f800, 0x00104542, 0x4a025c09, + 0x00000100, 0x0401f7ed, 0x0201f800, 0x00107144, + 0x1c01f000, 0x829d3c80, 0x00000002, 0x48813800, + 0x48853801, 0x41790000, 0x0201f800, 0x00108668, + 0x40c50800, 0x48c7c857, 0x40840000, 0x82857480, + 0x0000000d, 0x83f17500, 0x03000000, 0x0400002b, + 0x0c01f001, 0x0010e9ef, 0x0010ea27, 0x0010ea05, + 0x0010e9dc, 0x0010ea07, 0x0010e9f7, 0x0010e9ef, + 0x0010e9ef, 0x0010e9ef, 0x0010e9f7, 0x0010e9f7, + 0x0010e9f7, 0x0010e9f7, 0x0010ea05, 0x0201f800, + 0x00108652, 0x80c589c0, 0x04000005, 0x0201f800, + 0x001063ef, 0x80c589c0, 0x04000055, 0x0201f800, + 0x0010e2da, 0x80c589c0, 0x04000017, 0x5930d403, + 0x486bc857, 0x5930d403, 0x82697480, 0x00000040, + 0x04020018, 0x0401ffaf, 0x42010000, 0x00000001, + 0x0401f069, 0x40840000, 0x82857480, 0x0000000d, + 0x040007d8, 0x040017d7, 0x4200d000, 0x000004b7, + 0x4130d800, 0x4084e000, 0x0201f800, 0x0010032a, + 0x0401f05d, 0x497bc856, 0x0201f800, 0x001060b6, + 0x80c589c0, 0x04020036, 0x59317004, 0x48bbc857, + 0x0401ff4d, 0x0401f7e9, 0x812e59c0, 0x0400004c, + 0x0201f800, 0x00108d84, 0x80c589c0, 0x04000030, + 0x0201f800, 0x0010619f, 0x592cd209, 0x8468d50c, + 0x486a5a09, 0x592cdc07, 0x806cd0c6, 0x406c0000, + 0x8068d400, 0x8068d400, 0x486a6006, 0x4200d000, + 0x10000000, 0x4130d800, 0x0201f800, 0x0010088e, + 0x80c589c0, 0x0400002b, 0x592cd209, 0x8c68d51c, + 0x04020024, 0x8468d55c, 0x486a5a09, 0x4a026006, + 0x00000002, 0x0401f7c9, 0x598d700f, 0x48bbc857, + 0x40b8d000, 0x41300000, 0x80697480, 0x04000014, + 0x0201f800, 0x0010e453, 0x80c589c0, 0x040207be, + 0x497bc856, 0x0201f800, 0x001060b6, 0x4200d000, + 0x000003f5, 0x80c589c0, 0x040007c2, 0x5930d203, + 0x486bc857, 0x59310a03, 0x0401f01f, 0x0201f800, + 0x00100bd5, 0x0401ff14, 0x0401f7b0, 0x0201f800, + 0x00106426, 0x80c589c0, 0x040007f5, 0x0401f7e9, + 0x41310000, 0x0201f800, 0x00101079, 0x40826000, + 0x5930d203, 0x82697480, 0x00000004, 0x040207a3, + 0x41390000, 0x42027000, 0x00000048, 0x0201f800, + 0x001071b6, 0x40827000, 0x0401f79c, 0x4200d000, + 0x000004a7, 0x4130d800, 0x412ce000, 0x0201f800, + 0x0010032a, 0x808101c0, 0x04000797, 0x589d0801, + 0x589d0000, 0x829d3c00, 0x00000002, 0x1c01f000, + 0x829d3c80, 0x00000002, 0x48813800, 0x48853801, + 0x412d0800, 0x41410000, 0x4200d000, 0x0010bd2c, + 0x0201f800, 0x0010ae0f, 0x417a5800, 0x0201f800, + 0x0010894c, 0x80c589c0, 0x04000009, 0x0201f800, + 0x00109391, 0x59325809, 0x592cd209, 0x8468d54c, + 0x486a5a09, 0x42028000, 0x00000006, 0x0201f800, + 0x001061ab, 0x0401ff44, 0x0201f800, 0x0010619f, + 0x40828000, 0x40865800, 0x589d0801, 0x589d0000, + 0x829d3c00, 0x00000002, 0x1c01f000, 0x829d3c80, + 0x00000002, 0x48813800, 0x48853801, 0x412d0800, + 0x0201f800, 0x0010e548, 0x80c589c0, 0x040000c3, + 0x5930d407, 0x40680000, 0x82697480, 0x00000013, + 0x83f17500, 0x03000000, 0x04000025, 0x0c01f001, + 0x0010eb4f, 0x0010eaf3, 0x0010eb09, 0x0010ead0, + 0x0010eaf3, 0x0010eb09, 0x0010eb19, 0x0010eb02, + 0x0010eb2e, 0x0010eaa9, 0x0010eabf, 0x0010eb2e, + 0x0010eb2e, 0x0010eb2e, 0x0010eb2e, 0x0010eb4f, + 0x0010eac5, 0x0010eb2a, 0x0010eb2e, 0x0010eb2e, + 0x0201f800, 0x00105c0e, 0x80c589c0, 0x04000090, + 0x5930d203, 0x82697480, 0x00000004, 0x0402009f, + 0x5930d006, 0x8068d1c0, 0x0400009c, 0x5930d415, + 0x8468d558, 0x486a6415, 0x0401f098, 0x4200d000, + 0x00000328, 0x4000d800, 0x4130e000, 0x0201f800, + 0x0010032a, 0x0401f091, 0x5930d203, 0x82697480, + 0x00000004, 0x04020003, 0x0201f800, 0x00100bd5, + 0x59325809, 0x0201f800, 0x0010894c, 0x80c589c0, + 0x0402006f, 0x0201f800, 0x00107144, 0x8d3e7d1c, + 0x04000082, 0x497a600a, 0x0401f080, 0x0201f800, + 0x00109391, 0x5930d203, 0x82697480, 0x00000004, + 0x04000074, 0x59325809, 0x0201f800, 0x0010894c, + 0x80c589c0, 0x040007f0, 0x592cd205, 0x8268d500, + 0x000000ff, 0x82697480, 0x00000014, 0x04000003, + 0x0201f800, 0x00108a55, 0x4a025a05, 0x00000103, + 0x592cd409, 0x8c68d512, 0x0402005c, 0x49425a07, + 0x497a580a, 0x0201f800, 0x0010a320, 0x0201f800, + 0x00108f22, 0x0201f800, 0x00108afb, 0x0201f800, + 0x000203ab, 0x0401f7d8, 0x5930d403, 0x82697480, + 0x00000043, 0x04000059, 0x0201f800, 0x0010e81e, + 0x80c589c0, 0x04020046, 0x0201f800, 0x00108a7c, + 0x80c589c0, 0x040007cc, 0x0201f800, 0x001078e7, + 0x0401f7c9, 0x5930d203, 0x82697480, 0x00000011, + 0x0402004a, 0x5930d41e, 0x486a6203, 0x0401f047, + 0x59325809, 0x0201f800, 0x0010894c, 0x80c589c0, + 0x040007bd, 0x49425a07, 0x497a5c0a, 0x0201f800, + 0x000203ab, 0x5930d21e, 0x82697480, 0x00000003, + 0x040207b5, 0x0201f800, 0x00108a55, 0x0401f7b2, + 0x5930d203, 0x82697480, 0x00000004, 0x04000030, + 0x59325809, 0x0201f800, 0x0010894c, 0x80c589c0, + 0x040007a9, 0x49425a07, 0x0201f800, 0x0010a320, + 0x0201f800, 0x00108f22, 0x0201f800, 0x000203ab, + 0x0401f7a1, 0x59325818, 0x0201f800, 0x00100589, + 0x0401f798, 0x59325809, 0x0201f800, 0x0010894c, + 0x80c589c0, 0x04000798, 0x49425a07, 0x497a5c07, + 0x0201f800, 0x000203ab, 0x0401f793, 0x49425a07, + 0x0201f800, 0x000203ab, 0x0401f78f, 0x59325809, + 0x0201f800, 0x00105fa3, 0x0401f78b, 0x0201f800, + 0x00101a68, 0x0401f7b9, 0x412d0000, 0x592e580a, + 0x0201f800, 0x00100589, 0x40825800, 0x0401f7a0, + 0x0201f800, 0x00100bd5, 0x0401f78b, 0x0201f800, + 0x00100bd5, 0x0401f7cf, 0x40865800, 0x589d0801, + 0x589d0000, 0x829d3c00, 0x00000002, 0x1c01f000, + 0x0201f800, 0x0010a10f, 0x80c589c0, 0x04020002, + 0x0401f003, 0x5932680a, 0x0401ff29, 0x1c01f000, + 0x829d3c80, 0x00000005, 0x48813800, 0x48853801, + 0x48893802, 0x488d3803, 0x48913804, 0x41311000, + 0x41352000, 0x4933c857, 0x4947c857, 0x4943c857, + 0x0201f800, 0x001061ab, 0x40c51800, 0x0201f800, + 0x00109fb3, 0x41310800, 0x813261c0, 0x04000048, + 0x42000000, 0x0010f64c, 0x81317480, 0x04000044, + 0x59a8d00d, 0x8068d040, 0x42010000, 0x0010f694, + 0x40680000, 0x81657480, 0x0400000f, 0x41580000, + 0x80817480, 0x0402100c, 0x40826000, 0x40800000, + 0x80857480, 0x04000003, 0x4084d000, 0x0401ffd1, + 0x82810400, 0x00000024, 0x41580000, 0x80817480, + 0x040017f6, 0x41510000, 0x41540000, 0x80817480, + 0x04021012, 0x8d3e7d18, 0x04000010, 0x59a8d04d, + 0x59a8004e, 0x80697480, 0x0400000c, 0x40826000, + 0x5880d00a, 0x8068d1c0, 0x0400000d, 0x4084d000, + 0x0401ffbc, 0x82810400, 0x00000024, 0x41540000, + 0x80817480, 0x040017f0, 0x408a6000, 0x40926800, + 0x808d7040, 0x04000018, 0x0401f01d, 0x0201f800, + 0x00103e78, 0x40c66800, 0x80c589c0, 0x040007f2, + 0x58c4d002, 0x5930d81f, 0x82680500, 0x00ffffff, + 0x806d7480, 0x040207ec, 0x5930d203, 0x82697480, + 0x00000008, 0x0400000b, 0x4936600a, 0x0401fed0, + 0x82810400, 0x00000024, 0x0401f7e5, 0x59a8d00d, + 0x0401f7be, 0x0201f800, 0x0010619f, 0x0401f004, + 0x0201f800, 0x0010a5cc, 0x0401f7f4, 0x589d2004, + 0x589d1803, 0x589d1002, 0x589d0801, 0x589d0000, + 0x829d3c00, 0x00000005, 0x1c01f000, 0x829d3c80, + 0x00000007, 0x48813800, 0x48853801, 0x48893802, + 0x488d3803, 0x48913804, 0x48953805, 0x48993806, + 0x42010000, 0x00000001, 0x41790800, 0x497bc856, + 0x41311000, 0x41351800, 0x41452000, 0x413d2800, + 0x40593000, 0x4200d000, 0x0010ebc8, 0x0201f800, + 0x0010587a, 0x59a8d21b, 0x8c68d508, 0x0400001d, + 0x8c68d516, 0x0402001b, 0x59aa6864, 0x813669c0, + 0x0400007a, 0x5934d400, 0x82697480, 0x00000404, + 0x04020076, 0x0201f800, 0x00107185, 0x40c66000, + 0x80c589c0, 0x0400006b, 0x48818c07, 0x4935880a, + 0x40867800, 0x0201f800, 0x00103d92, 0x4200d000, + 0x00000005, 0x0201f800, 0x00103d9c, 0x42027000, + 0x00000003, 0x0201f800, 0x001071b6, 0x0401f063, + 0x8c68d506, 0x04020003, 0x8c68d50a, 0x04000014, + 0x0201f800, 0x001040de, 0x80c589c0, 0x0400000a, + 0x83acd400, 0x000007fe, 0x586a6800, 0x5934d200, + 0x8468d51a, 0x486a6a00, 0x59a8d21b, 0x8c68d506, + 0x0402003c, 0x808509c0, 0x04000005, 0x8d0e1d20, + 0x0402003c, 0x0201f800, 0x0010e25a, 0x80817040, + 0x0402004a, 0x4200b000, 0x000007f0, 0x417a8800, + 0x0401f01c, 0x826cd540, 0x00001000, 0x486a6a00, 0x5934d200, 0x8468d51a, 0x486a6a00, 0x4937c857, - 0x4a026c00, 0x00000707, 0x0201f800, 0x00106106, - 0x40c50000, 0x417a6000, 0x0201f800, 0x0010e4c8, - 0x0201f800, 0x0010e5a4, 0x417a7800, 0x0201f800, - 0x0010e63d, 0x0201f800, 0x0010ea62, 0x80817040, - 0x040207d6, 0x0201f800, 0x001060fa, 0x0401f7d3, - 0x41790000, 0x42010800, 0x00000001, 0x0401f7c3, - 0x4200d000, 0x000007d0, 0x4200d800, 0x0010eacd, - 0x0201f800, 0x00105900, 0x0201f800, 0x0010e14a, - 0x0401f7c0, 0x4200d000, 0x00000098, 0x40c4d800, - 0x4134e000, 0x0201f800, 0x0010032a, 0x408a6000, - 0x408e6800, 0x40928800, 0x40967800, 0x4098b000, - 0x589d3006, 0x589d2805, 0x589d2004, 0x589d1803, - 0x589d1002, 0x589d0801, 0x589d0000, 0x829d3c00, - 0x00000007, 0x1c01f000, 0x497bc856, 0x0201f800, - 0x0010470f, 0x80c589c0, 0x0402002b, 0x59a8d015, - 0x8c68d504, 0x04000031, 0x8d0e1d20, 0x0400001c, - 0x4200b000, 0x000007f0, 0x417a8800, 0x0401f004, - 0x81468800, 0x8058b040, 0x04000015, 0x0201f800, - 0x00103e62, 0x80c589c0, 0x040007fa, 0x0201f800, - 0x00104171, 0x80c589c0, 0x040007f6, 0x59a8d00f, - 0x59340002, 0x8068d580, 0x8268d500, 0x00ffff00, - 0x040207f0, 0x5934d200, 0x8468d55a, 0x486a6a00, - 0x81468800, 0x8058b040, 0x040207ed, 0x0201f800, - 0x001040c4, 0x80c589c0, 0x04000020, 0x59a8d029, - 0x4200d800, 0x0010eacd, 0x0201f800, 0x00105900, - 0x0401f01f, 0x83acd400, 0x000007fe, 0x586a6800, - 0x813669c0, 0x040007d5, 0x5934d200, 0x8468d51a, - 0x486a6a00, 0x0401f7d1, 0x59a8d21b, 0x8c68d506, - 0x040007ce, 0x83acd400, 0x000007fe, 0x586a6800, - 0x813669c0, 0x040007c9, 0x0201f800, 0x00104171, - 0x80c589c0, 0x040007c5, 0x5934d200, 0x8468d55a, - 0x486a6a00, 0x0401f7c1, 0x8d0e1d20, 0x040007e5, - 0x4200d000, 0x000007d0, 0x0401f7de, 0x1c01f000, - 0x829d3c80, 0x00000003, 0x48813800, 0x48853801, - 0x48893802, 0x40691000, 0x40710800, 0x4978e000, - 0x83457480, 0x000007ff, 0x83f17500, 0x03000000, - 0x04000047, 0x4978e002, 0x4944e001, 0x4144e800, - 0x42010000, 0x0010af80, 0x4200b000, 0x000007f0, - 0x83457480, 0x000007ef, 0x04000039, 0x04001038, - 0x4200b000, 0x00000010, 0x8058b1c0, 0x04000017, - 0x40740000, 0x8080d400, 0x5868f000, 0x8078f1c0, - 0x04020043, 0x5884e001, 0x41440000, 0x80717480, - 0x0400005b, 0x8070d000, 0x8074e800, 0x83457480, - 0x000007ef, 0x0400004d, 0x0400104c, 0x82697480, - 0x00000800, 0x0400002e, 0x48690801, 0x8058b040, - 0x8058b1c0, 0x040207eb, 0x5884d802, 0x806cd9c0, - 0x04000065, 0x412d0000, 0x4088d000, 0x0201f800, - 0x00103dbf, 0x4947c857, 0x4937c857, 0x40825800, - 0x813669c0, 0x04000062, 0x497a6a12, 0x59a8d21b, - 0x8c68d50a, 0x0402000a, 0x8288dd00, 0x00ffff00, - 0x04000050, 0x59a8d00f, 0x8268d500, 0x00ffff00, - 0x406c0000, 0x80697480, 0x0400004a, 0x488a6802, - 0x4200d000, 0x00000001, 0x0401f079, 0x82697480, - 0x00fffffb, 0x040007c9, 0x040017c8, 0x4947c857, + 0x4a026c00, 0x00000707, 0x0201f800, 0x001061ab, + 0x40c50000, 0x417a6000, 0x0201f800, 0x0010e5d8, + 0x0201f800, 0x0010e6a9, 0x417a7800, 0x0201f800, + 0x0010e742, 0x0201f800, 0x0010eb5d, 0x80817040, + 0x04000025, 0x81468800, 0x8058b040, 0x0400002b, + 0x0201f800, 0x00103e78, 0x80c589c0, 0x040007fa, + 0x5934da00, 0x8c6cdd1a, 0x040007f7, 0x5934d403, + 0x406a8800, 0x417a7800, 0x42028000, 0x00000029, + 0x8d0e1d20, 0x040007d8, 0x413cd000, 0x413cd800, + 0x0201f800, 0x0010a016, 0x5934da00, 0x0401f7d2, + 0x41790000, 0x42010800, 0x00000001, 0x0401f7c2, + 0x4200d000, 0x000007d0, 0x4200d800, 0x0010ebc8, + 0x0201f800, 0x001059a5, 0x0201f800, 0x0010e25a, + 0x0401f7bf, 0x0201f800, 0x0010619f, 0x0401f7da, + 0x4200d000, 0x000000a0, 0x40c4d800, 0x4134e000, + 0x0201f800, 0x0010032a, 0x408a6000, 0x408e6800, + 0x40928800, 0x40967800, 0x4098b000, 0x589d3006, + 0x589d2805, 0x589d2004, 0x589d1803, 0x589d1002, + 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000007, + 0x1c01f000, 0x497bc856, 0x0201f800, 0x0010474e, + 0x80c589c0, 0x0402002e, 0x59a8d015, 0x8c68d504, + 0x04000034, 0x8d0e1d20, 0x04020004, 0x59a8d006, + 0x8c68d51c, 0x0400001c, 0x4200b000, 0x000007f0, + 0x417a8800, 0x0401f004, 0x81468800, 0x8058b040, + 0x04000015, 0x0201f800, 0x00103e78, 0x80c589c0, + 0x040007fa, 0x0201f800, 0x0010418d, 0x80c589c0, + 0x040007f6, 0x59a8d00f, 0x59340002, 0x8068d580, + 0x8268d500, 0x00ffff00, 0x040207f0, 0x5934d200, + 0x8468d55a, 0x486a6a00, 0x81468800, 0x8058b040, + 0x040207ed, 0x0201f800, 0x001040de, 0x80c589c0, + 0x04000020, 0x59a8d029, 0x4200d800, 0x0010ebc8, + 0x0201f800, 0x001059a5, 0x0401f022, 0x83acd400, + 0x000007fe, 0x586a6800, 0x813669c0, 0x040007d2, + 0x5934d200, 0x8468d51a, 0x486a6a00, 0x0401f7ce, + 0x59a8d21b, 0x8c68d506, 0x040007cb, 0x83acd400, + 0x000007fe, 0x586a6800, 0x813669c0, 0x040007c6, + 0x0201f800, 0x0010418d, 0x80c589c0, 0x040007c2, + 0x5934d200, 0x8468d55a, 0x486a6a00, 0x0401f7be, + 0x8d0e1d20, 0x04020004, 0x59a8d006, 0x8c68d51c, + 0x040007e2, 0x4200d000, 0x000007d0, 0x0401f7db, + 0x1c01f000, 0x829d3c80, 0x00000003, 0x48813800, + 0x48853801, 0x48893802, 0x40691000, 0x40710800, + 0x4978e000, 0x83457480, 0x000007ff, 0x83f17500, + 0x03000000, 0x04000047, 0x4978e002, 0x4944e001, + 0x4144e800, 0x42010000, 0x0010b080, 0x4200b000, + 0x000007f0, 0x83457480, 0x000007ef, 0x04000039, + 0x04001038, 0x4200b000, 0x00000010, 0x8058b1c0, + 0x04000017, 0x40740000, 0x8080d400, 0x5868f000, + 0x8078f1c0, 0x04020043, 0x5884e001, 0x41440000, + 0x80717480, 0x0400005b, 0x8070d000, 0x8074e800, + 0x83457480, 0x000007ef, 0x0400004d, 0x0400104c, + 0x82697480, 0x00000800, 0x0400002e, 0x48690801, + 0x8058b040, 0x8058b1c0, 0x040207eb, 0x5884d802, + 0x806cd9c0, 0x04000065, 0x412d0000, 0x4088d000, + 0x0201f800, 0x00103dd5, 0x4947c857, 0x4937c857, + 0x40825800, 0x813669c0, 0x04000062, 0x497a6a12, + 0x59a8d21b, 0x8c68d50a, 0x0402000a, 0x8288dd00, + 0x00ffff00, 0x04000050, 0x59a8d00f, 0x8268d500, + 0x00ffff00, 0x406c0000, 0x80697480, 0x0400004a, + 0x488a6802, 0x4200d000, 0x00000001, 0x0401f079, + 0x82697480, 0x00fffffb, 0x040007c9, 0x040017c8, + 0x4947c857, 0x488bc857, 0x58857001, 0x48bbc857, + 0x4a010800, 0x00000019, 0x4178d000, 0x0401f06d, + 0x4a010801, 0x000007f0, 0x4200e800, 0x000007f0, + 0x42010000, 0x0010b080, 0x8058b040, 0x0401f7ce, + 0x5878d002, 0x8268e500, 0x00ffffff, 0x48710803, + 0x40880000, 0x80717480, 0x04000049, 0x5884e001, + 0x41440000, 0x80717480, 0x040207b8, 0x58797002, + 0x48b90803, 0x4947c857, 0x58857003, 0x48bbc857, + 0x4a010800, 0x0000001b, 0x0401f7e4, 0x82697480, + 0x000007f0, 0x040207b6, 0x49790801, 0x42010000, + 0x0010b080, 0x4178e800, 0x8058b040, 0x0401f7b2, + 0x49450802, 0x83457480, 0x000007ef, 0x0400000e, + 0x0400100d, 0x83457480, 0x000007fc, 0x04000028, + 0x83457480, 0x000007fd, 0x0400001a, 0x83457480, + 0x000007ff, 0x0402001a, 0x82897480, 0x00ffffff, + 0x04020017, 0x5884d002, 0x8468d55e, 0x48690802, + 0x0401f792, 0x8288d500, 0x000000ff, 0x8068d0d0, + 0x486a6a12, 0x0401f7b3, 0x4200d000, 0x0000044d, + 0x4084e000, 0x0201f800, 0x0010032a, 0x0401f797, + 0x4947c857, 0x4a010800, 0x0000000a, 0x0401f7b7, + 0x82897480, 0x00fffffd, 0x040007eb, 0x4947c857, 0x488bc857, 0x58857001, 0x48bbc857, 0x4a010800, - 0x00000019, 0x4178d000, 0x0401f06d, 0x4a010801, - 0x000007f0, 0x4200e800, 0x000007f0, 0x42010000, - 0x0010af80, 0x8058b040, 0x0401f7ce, 0x5878d002, - 0x8268e500, 0x00ffffff, 0x48710803, 0x40880000, - 0x80717480, 0x04000049, 0x5884e001, 0x41440000, - 0x80717480, 0x040207b8, 0x58797002, 0x48b90803, - 0x4947c857, 0x58857003, 0x48bbc857, 0x4a010800, - 0x0000001b, 0x0401f7e4, 0x82697480, 0x000007f0, - 0x040207b6, 0x49790801, 0x42010000, 0x0010af80, - 0x4178e800, 0x8058b040, 0x0401f7b2, 0x49450802, - 0x83457480, 0x000007ef, 0x0400000e, 0x0400100d, - 0x83457480, 0x000007fc, 0x04000028, 0x83457480, - 0x000007fd, 0x0400001a, 0x83457480, 0x000007ff, - 0x0402001a, 0x82897480, 0x00ffffff, 0x04020017, - 0x5884d002, 0x8468d55e, 0x48690802, 0x0401f792, - 0x8288d500, 0x000000ff, 0x8068d0d0, 0x486a6a12, - 0x0401f7b3, 0x4200d000, 0x000003f1, 0x4084e000, - 0x0201f800, 0x0010032a, 0x0401f797, 0x4947c857, - 0x4a010800, 0x0000000a, 0x0401f7b7, 0x82897480, - 0x00fffffd, 0x040007eb, 0x4947c857, 0x488bc857, - 0x58857001, 0x48bbc857, 0x4a010800, 0x00000019, - 0x4078d000, 0x0401f01a, 0x82897480, 0x00fffffc, - 0x040007e0, 0x0401f7f5, 0x5884d001, 0x41440000, - 0x80697480, 0x04000007, 0x4947c857, 0x4873c857, - 0x486fc857, 0x4a010800, 0x0000001a, 0x0401f79e, - 0x407a6800, 0x8c6cdd08, 0x0400078e, 0x0201f800, - 0x001040b4, 0x80c589c0, 0x0400078a, 0x4947c857, - 0x4a010800, 0x0000001d, 0x0401f793, 0x40698800, - 0x589d1002, 0x589d0801, 0x589d0000, 0x829d3c00, - 0x00000003, 0x1c01f000, 0x4200d000, 0x00000080, - 0x0201f800, 0x00101363, 0x0201f800, 0x0010593d, - 0x59c4d0a3, 0x8468d506, 0x486b88a3, 0x0201f800, - 0x0010471c, 0x80c589c0, 0x04020005, 0x0201f800, - 0x0010473a, 0x80c589c0, 0x0400006c, 0x59c4d0a3, - 0x8268d500, 0xbe7fffff, 0x486b88a3, 0x4200d000, - 0x000000f8, 0x0201f800, 0x001039ea, 0x59c4d0a3, - 0x8268d540, 0x00018000, 0x8468d51c, 0x486b88a3, - 0x59c4d0a3, 0x8468d520, 0x486b88a3, 0x497b8808, - 0x59c4d006, 0x8268d500, 0xfbffff0e, 0x486b8806, - 0x497b282c, 0x497b282d, 0x4200d000, 0x000001f4, - 0x4200d800, 0x0010ee45, 0x0201f800, 0x001057be, - 0x4a038805, 0x00000001, 0x0201f800, 0x00101419, - 0x80c589c0, 0x04020023, 0x0201f800, 0x00101427, - 0x80c589c0, 0x04000035, 0x4178d000, 0x0201f800, - 0x0010169c, 0x4178d000, 0x0201f800, 0x00101622, - 0x0201f800, 0x00101720, 0x4a035038, 0x00000001, - 0x0201f800, 0x0010471c, 0x80c589c0, 0x04000018, - 0x59c4d0a4, 0x8268d500, 0x0000000f, 0x82697480, - 0x00000008, 0x04000003, 0x4a038805, 0x04000000, - 0x59c4d0a3, 0x8268d540, 0x0001c000, 0x486b88a3, - 0x59c4d0a3, 0x8468d520, 0x486b88a3, 0x0401f050, - 0x4200d000, 0x00000001, 0x0201f800, 0x0010169c, - 0x4200d000, 0x00000001, 0x0401f7e0, 0x0201f800, - 0x0010473a, 0x80c589c0, 0x040207e6, 0x0201f800, - 0x0010472b, 0x4200d000, 0x000001a1, 0x80c589c0, - 0x04020033, 0x599cd818, 0x40c4e000, 0x0201f800, - 0x0010032a, 0x0401f03a, 0x0201f800, 0x00101435, - 0x80c589c0, 0x04020023, 0x0201f800, 0x00101443, - 0x80c589c0, 0x0400002e, 0x59a8d043, 0x8068d1c0, - 0x040007c8, 0x0201f800, 0x00101450, 0x4a035038, - 0x00000001, 0x0401f02a, 0x0201f800, 0x0010472b, - 0x80c589c0, 0x0400001f, 0x59c4d0a3, 0x8468d570, - 0x8468d532, 0x486b88a3, 0x59a8d073, 0x82697480, - 0x00000000, 0x83f17500, 0x0c000000, 0x04000004, - 0x82b97580, 0x0c000000, 0x04020796, 0x0201f800, - 0x00104b3e, 0x4a038808, 0x00000008, 0x0401f791, - 0x4200d000, 0x00000002, 0x0201f800, 0x0010169c, - 0x4200d000, 0x00000002, 0x0401f7a4, 0x4a035014, - 0x00000001, 0x0201f800, 0x00104670, 0x0401f008, - 0x4200d000, 0x0000014e, 0x0401f7c7, 0x4200d000, - 0x00000182, 0x59a8d837, 0x0401f7c4, 0x1c01f000, - 0x5994d02c, 0x8068d1c0, 0x04020006, 0x5994d02d, - 0x4200d800, 0x00000001, 0x8068d1c0, 0x04000002, - 0x4178d800, 0x406d8800, 0x1c01f000, 0x0201f800, - 0x00101616, 0x4a035038, 0x00000002, 0x497b5043, - 0x59c4d0a3, 0x8468d520, 0x486b88a3, 0x0201f800, - 0x0010472b, 0x80c589c0, 0x04000002, 0x0401f009, - 0x48c7282c, 0x48c7282d, 0x4200d000, 0x0000002d, - 0x4200d800, 0x0010ee45, 0x0201f800, 0x001057be, - 0x1c01f000, 0x0401ffdf, 0x80c589c0, 0x04000004, - 0x4a035038, 0x00000003, 0x0401f01f, 0x0201f800, - 0x00101443, 0x80c589c0, 0x04000004, 0x59a8d043, - 0x8068d1c0, 0x04020008, 0x0201f800, 0x001016e7, - 0x80c589c0, 0x04020002, 0x0401f013, 0x0401ffd8, - 0x0401f011, 0x0201f800, 0x00101450, 0x59a8d042, - 0x8c68d51e, 0x040007f9, 0x0201f800, 0x0010472b, - 0x80c589c0, 0x04020003, 0x0401ffcd, 0x0401f006, - 0x4a035014, 0x00000001, 0x0201f800, 0x00104670, - 0x0401f7fa, 0x1c01f000, 0x4202d800, 0x00000001, - 0x497b5038, 0x4a038805, 0x00000001, 0x497b282c, - 0x497b282d, 0x497b8885, 0x1c01f000, 0x59a8d073, + 0x00000019, 0x4078d000, 0x0401f01a, 0x82897480, + 0x00fffffc, 0x040007e0, 0x0401f7f5, 0x5884d001, + 0x41440000, 0x80697480, 0x04000007, 0x4947c857, + 0x4873c857, 0x486fc857, 0x4a010800, 0x0000001a, + 0x0401f79e, 0x407a6800, 0x8c6cdd08, 0x0400078e, + 0x0201f800, 0x001040ce, 0x80c589c0, 0x0400078a, + 0x4947c857, 0x4a010800, 0x0000001d, 0x0401f793, + 0x40698800, 0x589d1002, 0x589d0801, 0x589d0000, + 0x829d3c00, 0x00000003, 0x1c01f000, 0x4200d000, + 0x00000080, 0x0201f800, 0x00101364, 0x0201f800, + 0x001059e2, 0x59c4d0a3, 0x8468d506, 0x486b88a3, + 0x0201f800, 0x0010475b, 0x80c589c0, 0x04020005, + 0x0201f800, 0x00104779, 0x80c589c0, 0x0400006c, + 0x59c4d0a3, 0x8268d500, 0xbe7fffff, 0x486b88a3, + 0x4200d000, 0x000000f8, 0x0201f800, 0x001039fd, + 0x59c4d0a3, 0x8268d540, 0x00018000, 0x8468d51c, + 0x486b88a3, 0x59c4d0a3, 0x8468d520, 0x486b88a3, + 0x497b8808, 0x59c4d006, 0x8268d500, 0xfbffff0e, + 0x486b8806, 0x497b282c, 0x497b282d, 0x4200d000, + 0x000001f4, 0x4200d800, 0x0010ef4a, 0x0201f800, + 0x00105863, 0x4a038805, 0x00000001, 0x0201f800, + 0x0010141a, 0x80c589c0, 0x04020023, 0x0201f800, + 0x00101428, 0x80c589c0, 0x04000035, 0x4178d000, + 0x0201f800, 0x0010169d, 0x4178d000, 0x0201f800, + 0x00101623, 0x0201f800, 0x00101721, 0x4a035038, + 0x00000001, 0x0201f800, 0x0010475b, 0x80c589c0, + 0x04000018, 0x59c4d0a4, 0x8268d500, 0x0000000f, + 0x82697480, 0x00000008, 0x04000003, 0x4a038805, + 0x04000000, 0x59c4d0a3, 0x8268d540, 0x0001c000, + 0x486b88a3, 0x59c4d0a3, 0x8468d520, 0x486b88a3, + 0x0401f050, 0x4200d000, 0x00000001, 0x0201f800, + 0x0010169d, 0x4200d000, 0x00000001, 0x0401f7e0, + 0x0201f800, 0x00104779, 0x80c589c0, 0x040207e6, + 0x0201f800, 0x0010476a, 0x4200d000, 0x000001a9, + 0x80c589c0, 0x04020033, 0x599cd818, 0x40c4e000, + 0x0201f800, 0x0010032a, 0x0401f03a, 0x0201f800, + 0x00101436, 0x80c589c0, 0x04020023, 0x0201f800, + 0x00101444, 0x80c589c0, 0x0400002e, 0x59a8d043, + 0x8068d1c0, 0x040007c8, 0x0201f800, 0x00101451, + 0x4a035038, 0x00000001, 0x0401f02a, 0x0201f800, + 0x0010476a, 0x80c589c0, 0x0400001f, 0x59c4d0a3, + 0x8468d570, 0x8468d532, 0x486b88a3, 0x59a8d073, 0x82697480, 0x00000000, 0x83f17500, 0x0c000000, - 0x04000004, 0x82b97580, 0x0c000000, 0x04020007, - 0x59c4d005, 0x8268d500, 0x000000c0, 0x04020005, - 0x486b8885, 0x0401f008, 0x8468d506, 0x486b5073, - 0x59c4d006, 0x8268d540, 0x000000f1, 0x486b8806, - 0x0401ffe2, 0x1c01f000, 0x0201f800, 0x0010473a, - 0x80c589c0, 0x04000005, 0x59a8d013, 0x82697480, - 0x0000aaaa, 0x0400000c, 0x497b5013, 0x59c4d006, - 0x8268d540, 0x04000001, 0x486b8806, 0x8d0e1d06, - 0x04020008, 0x59c4d0a3, 0x8468d546, 0x486b88a3, - 0x0401f004, 0x4a03500f, 0x00ffffff, 0x0401f7f3, - 0x0401ffca, 0x1c01f000, 0x809d3840, 0x48813800, - 0x0401ff80, 0x80c589c0, 0x04000005, 0x4a035038, - 0x00000003, 0x497b8885, 0x0401f03e, 0x4a038805, - 0x000000f0, 0x0201f800, 0x001016e7, 0x80c589c0, - 0x0400002d, 0x0201f800, 0x0010472b, 0x80c589c0, - 0x04020033, 0x59c4d0a4, 0x8268d500, 0x0000000f, - 0x82697480, 0x00000008, 0x0400002b, 0x59c4d005, - 0x82690500, 0x04000000, 0x8c68d534, 0x04020026, - 0x5994d02c, 0x82697480, 0x00000002, 0x83f17500, - 0x03000000, 0x040007e4, 0x0201f800, 0x0010473a, - 0x80c589c0, 0x040007e0, 0x4a038805, 0x000000f0, - 0x0201f800, 0x00104777, 0x4a035013, 0x0000aaaa, - 0x48835014, 0x59c4d0a3, 0x8468d546, 0x486b88a3, - 0x4202d800, 0x00000001, 0x48835038, 0x4a038805, - 0x00000001, 0x4883282c, 0x4883282d, 0x0401ff98, - 0x0401f7cd, 0x0201f800, 0x00101443, 0x80c589c0, - 0x040007c9, 0x59a8d043, 0x8068d1c0, 0x040007c6, - 0x0401f7c3, 0x0401ffa5, 0x0401f7c3, 0x0401ff8c, - 0x589d0000, 0x809d3800, 0x1c01f000, 0x497bc856, - 0x4200d000, 0x00000080, 0x0201f800, 0x00101363, - 0x497b5038, 0x0201f800, 0x00101443, 0x80c589c0, - 0x0400000e, 0x59a8d036, 0x8068d1c0, 0x04020008, - 0x8068d1c0, 0x04020009, 0x4a035036, 0x0000000a, - 0x4a035043, 0x00000001, 0x0401f004, 0x8068d040, - 0x486b5036, 0x0401f7f7, 0x497b8885, 0x0201f800, - 0x001003f9, 0x1c01f000, 0x59a8d873, 0x826d7480, - 0x00000000, 0x83f17500, 0x0c000000, 0x04000004, - 0x82b97580, 0x0c000000, 0x04020011, 0x4200e000, - 0x00000003, 0x59a80038, 0x80717480, 0x04001006, - 0x0c01f001, 0x0010ee3f, 0x0010ee41, 0x0010ee43, - 0x0010ee3d, 0x4200d000, 0x000000c3, 0x4000d800, - 0x0201f800, 0x0010032a, 0x0401f019, 0x826cd500, - 0x00000008, 0x8c6cdd06, 0x040207ed, 0x4202d800, - 0x00000001, 0x486b5038, 0x486b282c, 0x486b282d, - 0x59a8d073, 0x8468d506, 0x486b5073, 0x4a035014, - 0x00000001, 0x0201f800, 0x00104670, 0x0401f008, - 0x0401ffbb, 0x0401f006, 0x0401fe4c, 0x0401f004, - 0x0401ff11, 0x0401f002, 0x0401ff6c, 0x1c01f000, - 0x497b282d, 0x1c01f000, 0x59a8d017, 0x82697480, - 0x0000ffff, 0x04000004, 0x0201f800, 0x0010e14a, - 0x0401f0b1, 0x59a8da1b, 0x826cd500, 0x00000028, - 0x04000025, 0x8c6cdd00, 0x04000023, 0x4a038802, - 0x0000ffbf, 0x59a8da1b, 0x8c6cdd02, 0x0400001e, - 0x599ce018, 0x8c70e516, 0x04020012, 0x59a8d01c, - 0x82697480, 0x0000ffff, 0x0400000e, 0x0201f800, - 0x00101a07, 0x59a8d21b, 0x8268dd00, 0x00000004, - 0x8c68d504, 0x04020050, 0x406e5800, 0x4200d000, - 0x00000003, 0x0201f800, 0x00101a35, 0x0401f092, - 0x8c70e516, 0x04020005, 0x59a8d01c, 0x82697480, - 0x0000ffff, 0x04000084, 0x59a8d01d, 0x8068d1c0, - 0x04020041, 0x8c6cdd08, 0x04000040, 0x599cd019, - 0x8c68d510, 0x04000041, 0x0201f800, 0x001040c4, - 0x80c589c0, 0x04020038, 0x599cd019, 0x8c68d510, - 0x0400003d, 0x59a8d21b, 0x8c68d508, 0x0400003a, - 0x4a038802, 0x0000ffff, 0x4200d000, 0x0010b841, - 0x0201f800, 0x00100531, 0x4200d000, 0x0010b84e, - 0x0201f800, 0x00100531, 0x850e1d02, 0x4a0378e4, - 0x00000080, 0x4202d800, 0x00000003, 0x4a035017, - 0x0000ffff, 0x0201f800, 0x0010042f, 0x4178d000, - 0x0201f800, 0x00101363, 0x59a8d21b, 0x8c68d506, - 0x04000048, 0x599cd018, 0x8268e500, 0x00000800, - 0x8c68d516, 0x04020040, 0x599cd019, 0x8c68d510, - 0x04000004, 0x59a8d21b, 0x8c68d508, 0x04020049, - 0x4200d000, 0x0000ffff, 0x4200d800, 0x00000006, - 0x4178e000, 0x0201f800, 0x0010325d, 0x0201f800, - 0x0010473a, 0x80c589c0, 0x04000020, 0x0201f800, - 0x00106420, 0x0401f048, 0x59a8d016, 0x8068d1c0, - 0x040007c2, 0x0401f044, 0x8c6cdd16, 0x040207bf, - 0x0401f041, 0x599cd018, 0x8c68d516, 0x0400001d, - 0x599cd017, 0x8c68d50a, 0x040007c2, 0x4200b000, + 0x04000004, 0x82b97580, 0x0c000000, 0x04020796, + 0x0201f800, 0x00104b7d, 0x4a038808, 0x00000008, + 0x0401f791, 0x4200d000, 0x00000002, 0x0201f800, + 0x0010169d, 0x4200d000, 0x00000002, 0x0401f7a4, + 0x4a035014, 0x00000001, 0x0201f800, 0x001046af, + 0x0401f008, 0x4200d000, 0x00000156, 0x0401f7c7, + 0x4200d000, 0x0000018a, 0x59a8d837, 0x0401f7c4, + 0x1c01f000, 0x5994d02c, 0x8068d1c0, 0x04020006, + 0x5994d02d, 0x4200d800, 0x00000001, 0x8068d1c0, + 0x04000002, 0x4178d800, 0x406d8800, 0x1c01f000, + 0x0201f800, 0x00101617, 0x4a035038, 0x00000002, + 0x497b5043, 0x59c4d0a3, 0x8468d520, 0x486b88a3, + 0x0201f800, 0x0010476a, 0x80c589c0, 0x04000002, + 0x0401f009, 0x48c7282c, 0x48c7282d, 0x4200d000, + 0x0000002d, 0x4200d800, 0x0010ef4a, 0x0201f800, + 0x00105863, 0x1c01f000, 0x0401ffdf, 0x80c589c0, + 0x04000004, 0x4a035038, 0x00000003, 0x0401f01f, + 0x0201f800, 0x00101444, 0x80c589c0, 0x04000004, + 0x59a8d043, 0x8068d1c0, 0x04020008, 0x0201f800, + 0x001016e8, 0x80c589c0, 0x04020002, 0x0401f013, + 0x0401ffd8, 0x0401f011, 0x0201f800, 0x00101451, + 0x59a8d042, 0x8c68d51e, 0x040007f9, 0x0201f800, + 0x0010476a, 0x80c589c0, 0x04020003, 0x0401ffcd, + 0x0401f006, 0x4a035014, 0x00000001, 0x0201f800, + 0x001046af, 0x0401f7fa, 0x1c01f000, 0x4202d800, + 0x00000001, 0x497b5038, 0x4a038805, 0x00000001, + 0x497b282c, 0x497b282d, 0x497b8885, 0x1c01f000, + 0x59a8d073, 0x82697480, 0x00000000, 0x83f17500, + 0x0c000000, 0x04000004, 0x82b97580, 0x0c000000, + 0x04020007, 0x59c4d005, 0x8268d500, 0x000000c0, + 0x04020005, 0x486b8885, 0x0401f008, 0x8468d506, + 0x486b5073, 0x59c4d006, 0x8268d540, 0x000000f1, + 0x486b8806, 0x0401ffe2, 0x1c01f000, 0x0201f800, + 0x00104779, 0x80c589c0, 0x04000005, 0x59a8d013, + 0x82697480, 0x0000aaaa, 0x0400000c, 0x497b5013, + 0x59c4d006, 0x8268d540, 0x04000001, 0x486b8806, + 0x8d0e1d06, 0x04020008, 0x59c4d0a3, 0x8468d546, + 0x486b88a3, 0x0401f004, 0x4a03500f, 0x00ffffff, + 0x0401f7f3, 0x0401ffca, 0x1c01f000, 0x809d3840, + 0x48813800, 0x0401ff80, 0x80c589c0, 0x04000005, + 0x4a035038, 0x00000003, 0x497b8885, 0x0401f03e, + 0x4a038805, 0x000000f0, 0x0201f800, 0x001016e8, + 0x80c589c0, 0x0400002d, 0x0201f800, 0x0010476a, + 0x80c589c0, 0x04020033, 0x59c4d0a4, 0x8268d500, + 0x0000000f, 0x82697480, 0x00000008, 0x0400002b, + 0x59c4d005, 0x82690500, 0x04000000, 0x8c68d534, + 0x04020026, 0x5994d02c, 0x82697480, 0x00000002, + 0x83f17500, 0x03000000, 0x040007e4, 0x0201f800, + 0x00104779, 0x80c589c0, 0x040007e0, 0x4a038805, + 0x000000f0, 0x0201f800, 0x001047b6, 0x4a035013, + 0x0000aaaa, 0x48835014, 0x59c4d0a3, 0x8468d546, + 0x486b88a3, 0x4202d800, 0x00000001, 0x48835038, + 0x4a038805, 0x00000001, 0x4883282c, 0x4883282d, + 0x0401ff98, 0x0401f7cd, 0x0201f800, 0x00101444, + 0x80c589c0, 0x040007c9, 0x59a8d043, 0x8068d1c0, + 0x040007c6, 0x0401f7c3, 0x0401ffa5, 0x0401f7c3, + 0x0401ff8c, 0x589d0000, 0x809d3800, 0x1c01f000, + 0x497bc856, 0x4200d000, 0x00000080, 0x0201f800, + 0x00101364, 0x497b5038, 0x0201f800, 0x00101444, + 0x80c589c0, 0x0400000e, 0x59a8d036, 0x8068d1c0, + 0x04020008, 0x8068d1c0, 0x04020009, 0x4a035036, + 0x0000000a, 0x4a035043, 0x00000001, 0x0401f004, + 0x8068d040, 0x486b5036, 0x0401f7f7, 0x497b8885, + 0x0201f800, 0x001003f9, 0x1c01f000, 0x59a8d873, + 0x826d7480, 0x00000000, 0x83f17500, 0x0c000000, + 0x04000004, 0x82b97580, 0x0c000000, 0x04020011, + 0x4200e000, 0x00000003, 0x59a80038, 0x80717480, + 0x04001006, 0x0c01f001, 0x0010ef44, 0x0010ef46, + 0x0010ef48, 0x0010ef42, 0x4200d000, 0x000000cb, + 0x4000d800, 0x0201f800, 0x0010032a, 0x0401f019, + 0x826cd500, 0x00000008, 0x8c6cdd06, 0x040207ed, + 0x4202d800, 0x00000001, 0x486b5038, 0x486b282c, + 0x486b282d, 0x59a8d073, 0x8468d506, 0x486b5073, + 0x4a035014, 0x00000001, 0x0201f800, 0x001046af, + 0x0401f008, 0x0401ffbb, 0x0401f006, 0x0401fe4c, + 0x0401f004, 0x0401ff11, 0x0401f002, 0x0401ff6c, + 0x1c01f000, 0x497b282d, 0x1c01f000, 0x59a8d017, + 0x82697480, 0x0000ffff, 0x04000004, 0x0201f800, + 0x0010e25a, 0x0401f0b4, 0x59a8da1b, 0x826cd500, + 0x00000028, 0x04000025, 0x8c6cdd00, 0x04000023, + 0x4a038802, 0x0000ffbf, 0x59a8da1b, 0x8c6cdd02, + 0x0400001e, 0x599ce018, 0x8c70e516, 0x04020012, + 0x59a8d01c, 0x82697480, 0x0000ffff, 0x0400000e, + 0x0201f800, 0x00101a08, 0x59a8d21b, 0x8268dd00, + 0x00000004, 0x8c68d504, 0x04020059, 0x406e5800, + 0x4200d000, 0x00000003, 0x0201f800, 0x00101a36, + 0x0401f095, 0x8c70e516, 0x04020005, 0x59a8d01c, + 0x82697480, 0x0000ffff, 0x04000087, 0x59a8d01d, + 0x8068d1c0, 0x0402004a, 0x8c6cdd08, 0x04000049, + 0x599cd019, 0x8c68d510, 0x0400004a, 0x0201f800, + 0x001040de, 0x80c589c0, 0x04020041, 0x599cd019, + 0x8c68d510, 0x04000004, 0x59a8d21b, 0x8c68d508, + 0x0402000a, 0x599cd018, 0x8c68d516, 0x04000059, + 0x599cd017, 0x8c68d50a, 0x0402003d, 0x59a8d006, + 0x8c68d51c, 0x0402003a, 0x4a038802, 0x0000ffff, + 0x4200d000, 0x0010b941, 0x0201f800, 0x00100531, + 0x4200d000, 0x0010b94e, 0x0201f800, 0x00100531, + 0x850e1d02, 0x4a0378e4, 0x00000080, 0x4202d800, + 0x00000003, 0x4a035017, 0x0000ffff, 0x0201f800, + 0x0010042f, 0x4178d000, 0x0201f800, 0x00101364, + 0x59a8d21b, 0x8c68d506, 0x04000042, 0x599cd018, + 0x8268e500, 0x00000800, 0x8c68d516, 0x0402003a, + 0x599cd019, 0x8c68d510, 0x04000004, 0x59a8d21b, + 0x8c68d508, 0x0402003e, 0x4200d000, 0x0000ffff, + 0x4200d800, 0x00000006, 0x4178e000, 0x0201f800, + 0x00103267, 0x0201f800, 0x00104779, 0x80c589c0, + 0x0400001a, 0x0201f800, 0x001064c5, 0x0401f042, + 0x59a8d016, 0x8068d1c0, 0x040007b9, 0x0401f03e, + 0x8c6cdd16, 0x040207b6, 0x0401f03b, 0x4200b000, 0x000007f0, 0x417a8800, 0x0401f004, 0x81468800, - 0x8058b040, 0x040007bb, 0x0201f800, 0x00103e62, + 0x8058b040, 0x040007c1, 0x0201f800, 0x00103e78, 0x80c589c0, 0x040007fa, 0x5934d200, 0x8c68d51a, - 0x040007f7, 0x0401f02c, 0x0201f800, 0x0010470f, - 0x80c589c0, 0x04000016, 0x59c4d006, 0x8468d534, - 0x486b8806, 0x0201f800, 0x00106420, 0x0401f7da, - 0x0201f800, 0x001043fe, 0x80c589c0, 0x040007e1, - 0x0401f01d, 0x0201f800, 0x001032c1, 0x0401f7cc, - 0x0201f800, 0x0010470f, 0x80c589c0, 0x040207b6, - 0x59a8d21b, 0x486b541b, 0x0401f7b3, 0x59c4d006, - 0x8268d500, 0xffffff0f, 0x486b8806, 0x0401f7ea, - 0x4200d000, 0x000007fe, 0x4200d800, 0x00000004, - 0x0401f7b9, 0x8c6cdd04, 0x0402077c, 0x826cd500, - 0x00004000, 0x8c6cdd1c, 0x04020778, 0x406a5800, - 0x0401f76b, 0x1c01f000, 0x59c4d00d, 0x8c68d51e, + 0x040007f7, 0x0401f02c, 0x0201f800, 0x0010474e, + 0x80c589c0, 0x0400001b, 0x59c4d006, 0x8468d534, + 0x486b8806, 0x0201f800, 0x001064c5, 0x0401f7e0, + 0x0201f800, 0x0010441d, 0x80c589c0, 0x040007a5, + 0x0401f01d, 0x0201f800, 0x001032cb, 0x0401f7d2, + 0x0201f800, 0x0010474e, 0x80c589c0, 0x040207bc, + 0x59a8d21b, 0x486b541b, 0x0401f7b9, 0x4200d000, + 0x000007fe, 0x4200d800, 0x00000004, 0x0401f7c4, + 0x59c4d006, 0x8268d500, 0xffffff0f, 0x486b8806, + 0x0401f7e5, 0x8c6cdd04, 0x04020779, 0x826cd500, + 0x00004000, 0x8c6cdd1c, 0x04020775, 0x406a5800, + 0x0401f768, 0x1c01f000, 0x59c4d00d, 0x8c68d51e, 0x04020004, 0x59c4d005, 0x8c68d500, 0x0400000c, - 0x0201f800, 0x00100447, 0x0201f800, 0x0010470f, - 0x80c589c0, 0x0400000f, 0x0201f800, 0x00104670, + 0x0201f800, 0x00100447, 0x0201f800, 0x0010474e, + 0x80c589c0, 0x0400000f, 0x0201f800, 0x001046af, 0x816d7040, 0x040000a3, 0x0401f11b, 0x4a035043, 0x00000001, 0x4202d800, 0x00000004, 0x4200d000, - 0x0010bc87, 0x0201f800, 0x0010ad1c, 0x0401f112, - 0x0201f800, 0x0010473a, 0x80c589c0, 0x0402008b, - 0x0201f800, 0x0010330a, 0x59c4d0a4, 0x8268d500, + 0x0010bd87, 0x0201f800, 0x0010ae0f, 0x0401f112, + 0x0201f800, 0x00104779, 0x80c589c0, 0x0402008b, + 0x0201f800, 0x0010331d, 0x59c4d0a4, 0x8268d500, 0x0000000f, 0x82697480, 0x00000006, 0x83f17500, - 0x03000000, 0x040007e9, 0x0201f800, 0x0010593d, + 0x03000000, 0x040007e9, 0x0201f800, 0x001059e2, 0x59c4d0a3, 0x8468d528, 0x486b88a3, 0x59a8d05f, 0x8068d1c0, 0x040000c5, 0x59a8e072, 0x8270d500, 0x00001f00, 0x8068d910, 0x826d7480, 0x00000002, 0x83f17500, 0x03000000, 0x040000a9, 0x59a8d015, - 0x8468d546, 0x486b5015, 0x0201f800, 0x0010471c, + 0x8468d546, 0x486b5015, 0x0201f800, 0x0010475b, 0x80c589c0, 0x040000a9, 0x59c4d006, 0x8268d540, 0x44000001, 0x486b8806, 0x59c4d006, 0x8268d500, 0xffffff0f, 0x486b8806, 0x497b9005, 0x4a038802, 0x0000ffff, 0x4a0378e4, 0x00003000, 0x4200d000, - 0x0010b896, 0x5868d400, 0x8c68d508, 0x04020003, - 0x4a0378e4, 0x000c0000, 0x4200d000, 0x0010bb60, - 0x0201f800, 0x0010ad1c, 0x59a8d00f, 0x4200d800, - 0x00000003, 0x0201f800, 0x00106132, 0x4200d000, - 0x00008010, 0x59a8d809, 0x0201f800, 0x001031e9, + 0x0010b996, 0x5868d400, 0x8c68d508, 0x04020003, + 0x4a0378e4, 0x000c0000, 0x4200d000, 0x0010bc60, + 0x0201f800, 0x0010ae0f, 0x59a8d00f, 0x4200d800, + 0x00000003, 0x0201f800, 0x001061d7, 0x4200d000, + 0x00008010, 0x59a8d809, 0x0201f800, 0x001031f3, 0x59c8d015, 0x8468d548, 0x486b9015, 0x0201f800, - 0x00101616, 0x59a8d008, 0x8468d500, 0x486b5008, - 0x850e1d0a, 0x0201f800, 0x0010eb6f, 0x0201f800, - 0x0010470f, 0x80c589c0, 0x04020003, 0x8d0e1d06, - 0x0402008f, 0x0201f800, 0x001040c4, 0x80c589c0, + 0x00101617, 0x59a8d008, 0x8468d500, 0x486b5008, + 0x850e1d0a, 0x0201f800, 0x0010ec6e, 0x0201f800, + 0x0010474e, 0x80c589c0, 0x04020003, 0x8d0e1d06, + 0x0402008f, 0x0201f800, 0x001040de, 0x80c589c0, 0x04000081, 0x59c4d002, 0x8468d50c, 0x486b8802, 0x497b501d, 0x497b501c, 0x497b5057, 0x0201f800, - 0x0010470f, 0x80c589c0, 0x0400006c, 0x497b521b, - 0x0201f800, 0x001013fe, 0x59a8d01f, 0x82680500, + 0x0010474e, 0x80c589c0, 0x0400006c, 0x497b521b, + 0x0201f800, 0x001013ff, 0x59a8d01f, 0x82680500, 0xffff0000, 0x80c4d540, 0x486b501f, 0x599cd017, 0x8c68d50a, 0x04000004, 0x59a8d21b, 0x8468d544, 0x486b521b, 0x4200d000, 0x00000005, 0x0201f800, - 0x001066cf, 0x497b501d, 0x497b5016, 0x4a035017, + 0x00106774, 0x497b501d, 0x497b5016, 0x4a035017, 0x0000ffff, 0x4a0378e4, 0x080000c0, 0x4202d800, - 0x00000002, 0x0201f800, 0x0010470f, 0x80c589c0, + 0x00000002, 0x0201f800, 0x0010474e, 0x80c589c0, 0x04020007, 0x59a8d21b, 0x8268d500, 0x0000000c, 0x82697480, 0x00000004, 0x0400076c, 0x0201f800, - 0x0010e14a, 0x0401f084, 0x5994d02d, 0x42000000, - 0x001039d5, 0x80697480, 0x04000031, 0x59c4d006, + 0x0010e25a, 0x0401f084, 0x5994d02d, 0x42000000, + 0x001039e8, 0x80697480, 0x04000031, 0x59c4d006, 0x8268d540, 0x000000c0, 0x486b8806, 0x0401f76d, 0x59a8d011, 0x82697480, 0x00000009, 0x0402075b, 0x497b500f, 0x4a038805, 0x000000f0, 0x0201f800, - 0x0010472b, 0x80c589c0, 0x0400004b, 0x59c4d006, + 0x0010476a, 0x80c589c0, 0x0400004b, 0x59c4d006, 0x8268d540, 0x000000f1, 0x486b8806, 0x59c4d006, 0x8268d500, 0xbbffffff, 0x486b8806, 0x0201f800, - 0x0010593d, 0x0201f800, 0x0010613d, 0x59a8d873, + 0x001059e2, 0x0201f800, 0x001061e2, 0x59a8d873, 0x826d7480, 0x00000000, 0x83f17500, 0x0c000000, 0x04000004, 0x82b97580, 0x0c000000, 0x0402004d, - 0x4a038893, 0x00000001, 0x4200d000, 0x0010bb69, - 0x0201f800, 0x0010ad1c, 0x497b5056, 0x4200d000, + 0x4a038893, 0x00000001, 0x4200d000, 0x0010bc69, + 0x0201f800, 0x0010ae0f, 0x497b5056, 0x4200d000, 0x00008030, 0x4178d800, 0x0401f784, 0x5994d02c, 0x8068d1c0, 0x0402073f, 0x0401f7cd, 0x806cd840, 0x8270d500, 0x00ff0000, 0x806c00d0, 0x8068d540, 0x486b9035, 0x0401f752, 0x59c4d006, 0x8268d540, 0x440000f1, 0x0401f75c, 0x59a8d01f, 0x8268d500, - 0xffff0000, 0x486b501f, 0x0201f800, 0x001013fe, - 0x48c78880, 0x0401f796, 0x0201f800, 0x00103911, - 0x0401f035, 0x0201f800, 0x0010470f, 0x80c589c0, + 0xffff0000, 0x486b501f, 0x0201f800, 0x001013ff, + 0x48c78880, 0x0401f796, 0x0201f800, 0x00103924, + 0x0401f035, 0x0201f800, 0x0010474e, 0x80c589c0, 0x04000011, 0x59a8d018, 0x8068d1c0, 0x0402077d, - 0x0201f800, 0x00108bc4, 0x0401f77a, 0x4a035056, - 0x00000001, 0x850e1d0e, 0x0201f800, 0x00103461, + 0x0201f800, 0x00108c7d, 0x0401f77a, 0x4a035056, + 0x00000001, 0x850e1d0e, 0x0201f800, 0x00103474, 0x0401f025, 0x59c4d006, 0x8268d540, 0x440000f1, - 0x0401f7ba, 0x0201f800, 0x00108bc4, 0x59a8d21b, + 0x0401f7ba, 0x0201f800, 0x00108c7d, 0x59a8d21b, 0x8c68d506, 0x0402076b, 0x59a8d018, 0x8068d1c0, 0x04020007, 0x59a8d41b, 0x8c68d508, 0x04000765, 0x82697480, 0x0000ffff, 0x04000762, 0x4a03541b, - 0x0000ffff, 0x0201f800, 0x00103a30, 0x0401f75d, + 0x0000ffff, 0x0201f800, 0x00103a43, 0x0401f75d, 0x59aa6874, 0x5934d400, 0x82697480, 0x00000404, 0x04020007, 0x8c6cdd0c, 0x040006ec, 0x826cd500, 0x00000003, 0x040007ad, 0x0401f003, 0x0201f800, - 0x0010a5e6, 0x1c01f000, 0x829d3c80, 0x00000005, + 0x0010a6d9, 0x1c01f000, 0x829d3c80, 0x00000005, 0x48813800, 0x48853801, 0x48893802, 0x488d3803, 0x48913804, 0x42011800, 0x00000001, 0x41791000, 0x40890800, 0x40592000, 0x8268f500, 0x00ffffff, @@ -13652,7 +13711,7 @@ static const uint32_t isp_2400_risc_code[] = { 0x00000002, 0x00000003, 0x00000004, 0x00000005, 0x00000006, 0x00000007, 0x00000008, 0x00000009, 0x0000000a, 0x0000000b, 0x0000000c, 0x0000000d, - 0x0000000e, 0x0000000f, 0x431a212a, 0x02800004, + 0x0000000e, 0x0000000f, 0xf500c489, 0x02800004, 0x00000000, 0x0000c000, 0x000007e8, 0x073fca5a, 0x0705a5a5, 0x01928009, 0x070ff0e1, 0x03800006, 0x04958010, 0x05308000, 0x05008000, 0x0600902f, @@ -14159,7 +14218,7 @@ static const uint32_t isp_2400_risc_code[] = { 0x07600c41, 0x050f80ff, 0x01202003, 0x073fa00a, 0x06000001, 0x07f00000, 0x05601041, 0x050f80ff, 0x032fa069, 0x0380005c, 0x565d6811, 0x02800004, - 0x00000000, 0x00008000, 0x000005de, 0x040f801f, + 0x00000000, 0x00008000, 0x000005e5, 0x040f801f, 0x012fa8c9, 0x040f801f, 0x063fa091, 0x06000010, 0x03200005, 0x07420000, 0x050fb000, 0x040f801f, 0x073fa011, 0x06000038, 0x040f801f, 0x053fa859, @@ -14210,11 +14269,11 @@ static const uint32_t isp_2400_risc_code[] = { 0x03e00000, 0x03800014, 0x059080c3, 0x030160e1, 0x028000ce, 0x059080c6, 0x030150e1, 0x028000ce, 0x059080c9, 0x010140e1, 0x028000ce, 0x060fc013, - 0x06a005d6, 0x03800014, 0x014940e4, 0x01a180d2, + 0x07a005dd, 0x03800014, 0x014940e4, 0x01a180d2, 0x0280004a, 0x02681e0d, 0x050fb0ff, 0x04600876, 0x050f80ff, 0x053fa809, 0x06000001, 0x05488003, 0x058180e1, 0x0400800d, 0x0120d000, 0x013e4000, - 0x05000200, 0x06009076, 0x04002075, 0x06a005c2, + 0x05000200, 0x06009076, 0x04002075, 0x07a005c9, 0x07c00000, 0x072e4800, 0x07000012, 0x018680e7, 0x060fc013, 0x07c00000, 0x00012013, 0x0747f000, 0x05600800, 0x050f80ff, 0x012fa839, 0x0249f001, @@ -14252,7 +14311,7 @@ static const uint32_t isp_2400_risc_code[] = { 0x050f80ff, 0x053fa80a, 0x07000009, 0x0180016f, 0x0202a013, 0x02029013, 0x0647f020, 0x06486020, 0x07818174, 0x04a002e0, 0x00800179, 0x007a0120, - 0x04000101, 0x04a002e0, 0x0400802c, 0x07a005bb, + 0x04000101, 0x04a002e0, 0x0400802c, 0x06a005c2, 0x0349a0e4, 0x0581017d, 0x0421d008, 0x0080012a, 0x02948129, 0x0521d005, 0x0080012a, 0x040fe02c, 0x00860129, 0x0742002b, 0x0660002c, 0x050f80ff, @@ -14260,12 +14319,12 @@ static const uint32_t isp_2400_risc_code[] = { 0x01022003, 0x0660002c, 0x050f80ff, 0x053fa80a, 0x07000009, 0x00800191, 0x00022013, 0x00021013, 0x0647f020, 0x007a0120, 0x04000101, 0x04a002e0, - 0x0400802c, 0x07a005bb, 0x02948129, 0x0521d005, + 0x0400802c, 0x06a005c2, 0x02948129, 0x0521d005, 0x0080012a, 0x00800132, 0x0647f020, 0x06486020, 0x078181a0, 0x04a002e0, 0x00800129, 0x007a0120, - 0x04000101, 0x04a002e0, 0x0400802c, 0x07a005bb, + 0x04000101, 0x04a002e0, 0x0400802c, 0x06a005c2, 0x00800129, 0x040fd02c, 0x052e4003, 0x00208010, - 0x07a005bb, 0x00800132, 0x00018098, 0x07480018, + 0x06a005c2, 0x00800132, 0x00018098, 0x07480018, 0x068181bc, 0x05481018, 0x068181ba, 0x05482018, 0x078181b8, 0x07483018, 0x068181b6, 0x002fb004, 0x018001bd, 0x012fb003, 0x018001bd, 0x002fb002, @@ -14285,7 +14344,7 @@ static const uint32_t isp_2400_risc_code[] = { 0x018001e1, 0x0760127b, 0x050f80ff, 0x032fa009, 0x0744f000, 0x0760127b, 0x050f80ff, 0x032fa00a, 0x018001d4, 0x052e400c, 0x040080fb, 0x046aa108, - 0x06009076, 0x04002075, 0x06a005c2, 0x018001e1, + 0x06009076, 0x04002075, 0x07a005c9, 0x018001e1, 0x06219001, 0x05482017, 0x0581020a, 0x058b0200, 0x060ff086, 0x0349f0ff, 0x078181c0, 0x07483017, 0x04810207, 0x050fd0ff, 0x040fe07f, 0x06a68216, @@ -14306,7 +14365,7 @@ static const uint32_t isp_2400_risc_code[] = { 0x032fa009, 0x03681e00, 0x0550041b, 0x050f80ff, 0x032fa009, 0x0107e000, 0x070ff07e, 0x01800235, 0x0307c000, 0x07c00000, 0x052e400c, 0x040080fb, - 0x046aa108, 0x06009076, 0x04002075, 0x028005c2, + 0x046aa108, 0x06009076, 0x04002075, 0x038005c9, 0x040fd076, 0x050fd017, 0x060ff086, 0x077800ff, 0x07000060, 0x037c00ff, 0x07000060, 0x07818253, 0x07780078, 0x07ffff00, 0x045a0419, 0x010780ff, @@ -14315,14 +14374,14 @@ static const uint32_t isp_2400_risc_code[] = { 0x06000001, 0x05488003, 0x0481026d, 0x0400d0fb, 0x066a810d, 0x013e4000, 0x07000300, 0x02800029, 0x040080fb, 0x066a8108, 0x06009076, 0x04002075, - 0x06a005c2, 0x02800029, 0x0240007f, 0x0742007e, + 0x07a005c9, 0x02800029, 0x0240007f, 0x0742007e, 0x050f807e, 0x032fa009, 0x050fe000, 0x0386828d, 0x070ff07d, 0x055c047b, 0x05810282, 0x0760007d, 0x050f80ff, 0x032fa009, 0x050fe000, 0x03868282, 0x070ff07b, 0x0107d0ff, 0x07600a7d, 0x050f80ff, 0x032fa009, 0x03681e00, 0x0450041c, 0x0107e0ff, 0x050f80ff, 0x032fa009, 0x050fe000, 0x0086028f, - 0x0307c000, 0x07c00000, 0x040fd076, 0x028005d6, + 0x0307c000, 0x07c00000, 0x040fd076, 0x038005dd, 0x010180c0, 0x0548e018, 0x078182aa, 0x0748f018, 0x078182a6, 0x03490018, 0x068182a2, 0x01491018, 0x0681829e, 0x073c0000, 0x06000040, 0x02200004, @@ -14334,15 +14393,15 @@ static const uint32_t isp_2400_risc_code[] = { 0x068182bc, 0x0448b075, 0x058102c3, 0x06000013, 0x04001013, 0x0760127b, 0x050f80ff, 0x032fa012, 0x0046b075, 0x03b600e2, 0x008002c4, 0x066c0073, - 0x048102c1, 0x040fd076, 0x06a005d6, 0x03800014, + 0x048102c1, 0x040fd076, 0x07a005dd, 0x03800014, 0x040fd076, 0x008002c4, 0x00452075, 0x00077013, 0x0647f075, 0x06486075, 0x078182ca, 0x04a002e6, 0x008002d0, 0x007a0175, 0x04000101, 0x04a002e6, - 0x04008076, 0x0245f008, 0x07a005bb, 0x07273000, + 0x04008076, 0x0245f008, 0x06a005c2, 0x07273000, 0x05600272, 0x050f80ff, 0x053fa80a, 0x07000009, 0x0379ff78, 0x070000ff, 0x02076013, 0x02075013, 0x0484801f, 0x0280004a, 0x070fc0ff, 0x052e400c, - 0x00208020, 0x07a005bb, 0x008002d9, 0x06000020, + 0x00208020, 0x06a005c2, 0x008002d9, 0x06000020, 0x04001016, 0x0460082c, 0x050f80ff, 0x032fa012, 0x07c00000, 0x06000075, 0x040010a2, 0x044b0801, 0x060ff016, 0x065a0001, 0x04600876, 0x050f80ff, @@ -14355,16 +14414,16 @@ static const uint32_t isp_2400_risc_code[] = { 0x00683e20, 0x070060ff, 0x056c0206, 0x0681036b, 0x056c0406, 0x07810382, 0x076c0606, 0x068103f8, 0x04488020, 0x04818313, 0x056c1606, 0x05810406, - 0x07a005b2, 0x0380032b, 0x040fd02c, 0x0521d000, + 0x06a005b9, 0x0380032b, 0x040fd02c, 0x0521d000, 0x0202c013, 0x02020013, 0x050fe028, 0x0386032b, 0x0302c028, 0x0421d002, 0x07a00339, 0x02800340, 0x040fe02a, 0x02860323, 0x0421d007, 0x0202c02a, 0x07a00339, 0x0280032a, 0x050fe022, 0x0386032b, 0x0421d004, 0x0302c022, 0x07a00339, 0x04488020, - 0x0581832d, 0x07a005b2, 0x0484803e, 0x0280004a, + 0x0581832d, 0x06a005b9, 0x0484803e, 0x0280004a, 0x040fd02c, 0x0521d000, 0x0202c013, 0x02020013, 0x0380032b, 0x040fe02a, 0x0386032b, 0x0421d007, - 0x0202c02a, 0x07a00339, 0x07a005b2, 0x0380032b, + 0x0202c02a, 0x07a00339, 0x06a005b9, 0x0380032b, 0x0460082c, 0x050f80ff, 0x032fa039, 0x03020000, 0x0102d005, 0x01018006, 0x07c00000, 0x0400702c, 0x05a00439, 0x007a0101, 0x07060000, 0x07303000, @@ -14399,7 +14458,7 @@ static const uint32_t isp_2400_risc_code[] = { 0x048183c2, 0x01208018, 0x06780002, 0x07000003, 0x058183c5, 0x06003001, 0x06000013, 0x04001013, 0x04004013, 0x06005013, 0x040f801f, 0x022fa032, - 0x038003f0, 0x040fd02c, 0x06a005d6, 0x03800014, + 0x038003f0, 0x040fd02c, 0x07a005dd, 0x03800014, 0x0379ff03, 0x070000ff, 0x04488002, 0x078103cc, 0x070ff003, 0x04500408, 0x050080ff, 0x0379ff00, 0x070000ff, 0x06489002, 0x068103d3, 0x070ff000, @@ -14473,94 +14532,87 @@ static const uint32_t isp_2400_risc_code[] = { 0x073fa009, 0x06000007, 0x0008400e, 0x048b04e0, 0x03385000, 0x03010000, 0x06219001, 0x040fe07f, 0x018604e7, 0x00800216, 0x07c00000, 0x00683e75, - 0x058104ed, 0x0448d075, 0x06810513, 0x0380054b, - 0x06a005b6, 0x01800484, 0x039784fa, 0x07602418, + 0x058104ed, 0x0448d075, 0x0681051a, 0x02800552, + 0x07a005bd, 0x01800484, 0x039784fa, 0x07602418, 0x050f80ff, 0x012fa809, 0x06780001, 0x070000ff, 0x075a0000, 0x070ff014, 0x0569feff, 0x054b08ff, 0x075a0000, 0x05600418, 0x050f80ff, 0x012fa809, - 0x040fe007, 0x00868501, 0x01204000, 0x0380050f, - 0x00700101, 0x03010000, 0x06780001, 0x07ff0000, - 0x076c00ff, 0x05818509, 0x00700101, 0x03010000, - 0x05600418, 0x050f80ff, 0x012fa80a, 0x06780001, - 0x07ff0000, 0x050040ff, 0x0279ff01, 0x0700ffff, - 0x05002014, 0x07c00000, 0x04007076, 0x0448b075, - 0x0781052d, 0x03200011, 0x06006076, 0x04a0043b, - 0x007a0101, 0x07060000, 0x07303000, 0x07008290, - 0x07600018, 0x050f80ff, 0x053fa809, 0x07000003, - 0x0448e007, 0x04818525, 0x06006013, 0x02800546, - 0x02400010, 0x06810525, 0x06006010, 0x04603476, - 0x050f80ff, 0x073fa00a, 0x07000003, 0x02800546, - 0x0600007a, 0x02493075, 0x05818536, 0x04602c76, - 0x050f80ff, 0x032fa009, 0x060ff07a, 0x05500400, - 0x070000ff, 0x06473075, 0x04602c76, 0x050f80ff, - 0x032fa00a, 0x05a00436, 0x007a0101, 0x03010000, - 0x06303008, 0x05008000, 0x0049b075, 0x06810545, - 0x06603676, 0x050f80ff, 0x073fa009, 0x06000002, - 0x0600600e, 0x050f8074, 0x032fa03a, 0x053079a0, - 0x0700000c, 0x02800592, 0x00683e75, 0x076c0aff, - 0x06810568, 0x04007013, 0x03200011, 0x06006076, - 0x04a0043b, 0x007a0101, 0x03070000, 0x04602a76, - 0x050f80ff, 0x053fa809, 0x06000001, 0x03499003, - 0x0781055f, 0x07303000, 0x07008890, 0x053079a0, - 0x0700000c, 0x03800563, 0x07303000, 0x04008980, - 0x04307920, 0x0700000c, 0x074d0005, 0x06006013, - 0x050f8074, 0x032fa03a, 0x02800592, 0x04602c76, - 0x050f80ff, 0x032fa009, 0x060ff07a, 0x05500400, - 0x070000ff, 0x06473075, 0x04602c76, 0x050f80ff, - 0x032fa00a, 0x04007076, 0x05a00436, 0x007a0101, - 0x03010000, 0x06303008, 0x07008800, 0x074d0005, - 0x0049b075, 0x06810580, 0x06603676, 0x050f80ff, - 0x073fa009, 0x06000002, 0x03800588, 0x06600a76, - 0x050f80ff, 0x073fa009, 0x07000003, 0x07f00000, - 0x054b0406, 0x045a0404, 0x050040ff, 0x0600600e, - 0x050f8074, 0x032fa03a, 0x0648c075, 0x07810590, - 0x06307d20, 0x0700000c, 0x02800592, 0x04307920, - 0x0700000c, 0x0049b075, 0x0781059a, 0x0447b075, - 0x04600876, 0x050f80ff, 0x053fa80a, 0x0700003a, - 0x0246f007, 0x013e4000, 0x07000030, 0x0398059c, - 0x070ff0f6, 0x074850ff, 0x0481859d, 0x050f2074, - 0x060a0007, 0x040070fb, 0x046a7007, 0x050f40ff, - 0x013e4000, 0x06000020, 0x0320000a, 0x022011f4, - 0x00202004, 0x06003013, 0x0678007a, 0x07fff000, - 0x078105af, 0x0020200e, 0x050f8072, 0x032fa022, - 0x01800484, 0x01208060, 0x0600902c, 0x04002020, - 0x028005c2, 0x040080fb, 0x066ae108, 0x06009076, - 0x04002075, 0x028005c2, 0x03201100, 0x058485c0, - 0x06420001, 0x048185bc, 0x028005d9, 0x020e0008, - 0x07c00000, 0x050fd009, 0x040fd008, 0x03201100, - 0x058485c9, 0x06420001, 0x058185c5, 0x028005d9, - 0x007a0102, 0x04000101, 0x05600809, 0x050f80ff, - 0x073fa00a, 0x06000001, 0x020e0008, 0x068405d3, - 0x030e0009, 0x07c00000, 0x01011009, 0x052e4300, - 0x07c00000, 0x052e400f, 0x01208090, 0x038005bb, - 0x070fc0ff, 0x040f8013, 0x032fa009, 0x028005dc, - 0xa8105084, 0xffeecc2a + 0x040fe007, 0x00868501, 0x01204000, 0x02800516, + 0x05600e06, 0x050f80ff, 0x073fa009, 0x06000002, + 0x07f00000, 0x064d0004, 0x00700104, 0x03010000, + 0x06780004, 0x07ff0000, 0x076c00ff, 0x0581850f, + 0x00700104, 0x03010000, 0x064d0004, 0x05600e06, + 0x050f80ff, 0x073fa00a, 0x06000002, 0x07f00000, + 0x044b0804, 0x0279ff01, 0x0700ffff, 0x05002014, + 0x07c00000, 0x04007076, 0x0448b075, 0x06810534, + 0x03200011, 0x06006076, 0x04a0043b, 0x007a0101, + 0x07060000, 0x07303000, 0x07008290, 0x07600018, + 0x050f80ff, 0x053fa809, 0x07000003, 0x0448e007, + 0x0481852c, 0x06006013, 0x0380054d, 0x02400010, + 0x0681052c, 0x06006010, 0x04603476, 0x050f80ff, + 0x073fa00a, 0x07000003, 0x0380054d, 0x0600007a, + 0x02493075, 0x0481853d, 0x04602c76, 0x050f80ff, + 0x032fa009, 0x060ff07a, 0x05500400, 0x070000ff, + 0x06473075, 0x04602c76, 0x050f80ff, 0x032fa00a, + 0x05a00436, 0x007a0101, 0x03010000, 0x06303008, + 0x05008000, 0x0049b075, 0x0681054c, 0x06603676, + 0x050f80ff, 0x073fa009, 0x06000002, 0x0600600e, + 0x050f8074, 0x032fa03a, 0x053079a0, 0x0700000c, + 0x03800599, 0x00683e75, 0x076c0aff, 0x0781056f, + 0x04007013, 0x03200011, 0x06006076, 0x04a0043b, + 0x007a0101, 0x03070000, 0x04602a76, 0x050f80ff, + 0x053fa809, 0x06000001, 0x03499003, 0x07810566, + 0x07303000, 0x07008890, 0x053079a0, 0x0700000c, + 0x0380056a, 0x07303000, 0x04008980, 0x04307920, + 0x0700000c, 0x074d0005, 0x06006013, 0x050f8074, + 0x032fa03a, 0x03800599, 0x04602c76, 0x050f80ff, + 0x032fa009, 0x060ff07a, 0x05500400, 0x070000ff, + 0x06473075, 0x04602c76, 0x050f80ff, 0x032fa00a, + 0x04007076, 0x05a00436, 0x007a0101, 0x03010000, + 0x06303008, 0x07008800, 0x074d0005, 0x0049b075, + 0x07810587, 0x06603676, 0x050f80ff, 0x073fa009, + 0x06000002, 0x0280058f, 0x06600a76, 0x050f80ff, + 0x073fa009, 0x07000003, 0x07f00000, 0x054b0406, + 0x045a0404, 0x050040ff, 0x0600600e, 0x050f8074, + 0x032fa03a, 0x0648c075, 0x06810597, 0x06307d20, + 0x0700000c, 0x03800599, 0x04307920, 0x0700000c, + 0x0049b075, 0x068105a1, 0x0447b075, 0x04600876, + 0x050f80ff, 0x053fa80a, 0x0700003a, 0x0246f007, + 0x013e4000, 0x07000030, 0x039805a3, 0x070ff0f6, + 0x074850ff, 0x048185a4, 0x050f2074, 0x060a0007, + 0x040070fb, 0x046a7007, 0x050f40ff, 0x013e4000, + 0x06000020, 0x0320000a, 0x022011f4, 0x00202004, + 0x06003013, 0x0678007a, 0x07fff000, 0x068105b6, + 0x0020200e, 0x050f8072, 0x032fa022, 0x01800484, + 0x01208060, 0x0600902c, 0x04002020, 0x038005c9, + 0x040080fb, 0x066ae108, 0x06009076, 0x04002075, + 0x038005c9, 0x03201100, 0x048485c7, 0x06420001, + 0x058185c3, 0x028005e0, 0x020e0008, 0x07c00000, + 0x050fd009, 0x040fd008, 0x03201100, 0x048485d0, + 0x06420001, 0x058185cc, 0x028005e0, 0x007a0102, + 0x04000101, 0x05600809, 0x050f80ff, 0x073fa00a, + 0x06000001, 0x020e0008, 0x068405da, 0x030e0009, + 0x07c00000, 0x01011009, 0x052e4300, 0x07c00000, + 0x052e400f, 0x01208090, 0x028005c2, 0x070fc0ff, + 0x040f8013, 0x032fa009, 0x028005e3, 0x780356f6, + 0xffeecc1b }; #endif #ifdef ISP_2400_MULTI -/************************************************************************ - * * - * --- ISP2400 (MID) Initiator/Target Firmware with support * - * Multi ID and FcTape. * - * * - ************************************************************************/ -/* - * Firmware Version 5.04.00 (12:20 Jul 02, 2010) - */ static const uint32_t isp_2400_multi_risc_code[] = { - 0x0401f195, 0x00112000, 0x00100000, 0x0000beb3, - 0x00000005, 0x00000004, 0x00000000, 0x00000496, + 0x0401f195, 0x00112000, 0x00100000, 0x0000c1f9, + 0x00000005, 0x00000005, 0x00000000, 0x00009496, 0x00000003, 0x00000000, 0x20434f50, 0x59524947, 0x48542032, 0x30303720, 0x514c4f47, 0x49432043, 0x4f52504f, 0x52415449, 0x4f4e2020, 0x20495350, 0x32347878, 0x20466972, 0x6d776172, 0x65202020, - 0x56657273, 0x696f6e20, 0x2020352e, 0x30342e30, + 0x56657273, 0x696f6e20, 0x2020352e, 0x30352e30, 0x30202024, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x42001800, 0x0010014c, 0x42002000, 0x0010da51, + 0x42001800, 0x0010014c, 0x42002000, 0x0010dd51, 0x500c0800, 0x800c1800, 0x500c1000, 0x800c1800, 0x54042000, 0x80102000, 0x80040800, 0x80081040, 0x040207fc, 0x500c0800, 0x800409c0, 0x040207f6, @@ -14643,11 +14695,11 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x00006150, 0x00000010, 0x00006170, 0x00000010, 0x00006190, 0x00000010, 0x000061b0, 0x00000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00100000, 0x00100000, 0x0000beb3, + 0x00000000, 0x00100000, 0x00100000, 0x0000c1f9, 0xffffffff, 0x00112004, 0x00020000, 0x00000cef, - 0xffffffff, 0x00112cf3, 0x0010f300, 0x00001a73, - 0xffffffff, 0x00114766, 0x0000c000, 0x000008a0, - 0x00ffffff, 0x00115006, 0x00008000, 0x00000685, + 0xffffffff, 0x00112cf3, 0x0010f600, 0x00001a9a, + 0xffffffff, 0x0011478d, 0x0000c000, 0x000008a0, + 0x00ffffff, 0x0011502d, 0x00008000, 0x0000068c, 0x00ffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x4203f000, 0x00021fff, 0x40000000, 0x4203e000, 0x90000100, 0x40000000, 0x42000800, @@ -14655,11 +14707,11 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x00007023, 0x50000000, 0x8c000500, 0x04020003, 0x42000800, 0x00020000, 0x45780800, 0x80040800, 0x82040580, 0x00022000, 0x040207fc, 0x4178a000, - 0x4200a800, 0x0010beb3, 0x42000800, 0x0010f300, - 0x40540000, 0x8004b480, 0x0201f800, 0x0010bd64, + 0x4200a800, 0x0010c1f9, 0x42000800, 0x0010f600, + 0x40540000, 0x8004b480, 0x0201f800, 0x0010c08f, 0x0401faca, 0x0401fa01, 0x4803c856, 0x42000000, 0x00001000, 0x50000000, 0x82000480, 0x24320002, - 0x0402000d, 0x0201f800, 0x0010bdab, 0x04000008, + 0x0402000d, 0x0201f800, 0x0010c0d6, 0x04000008, 0x42000800, 0x00007a17, 0x50040000, 0x8c00050e, 0x04020003, 0x8400054e, 0x44000800, 0x4a030000, 0x00000000, 0x4a03c020, 0x00000004, 0x4203e000, @@ -14673,7 +14725,7 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x4817c857, 0x4853c857, 0x8050a1c0, 0x0400000f, 0x4c140000, 0x5814a801, 0x4857c857, 0x40500000, 0x80540480, 0x04000005, 0x5814b002, 0x485bc857, - 0x0201f800, 0x0010bd5b, 0x5c002800, 0x82142c00, + 0x0201f800, 0x0010c086, 0x5c002800, 0x82142c00, 0x00000004, 0x0401f7ee, 0x42002800, 0x0010017d, 0x58140801, 0x4817c857, 0x4807c857, 0x800409c0, 0x04000018, 0x58142002, 0x4813c857, 0x58141003, @@ -14682,9 +14734,9 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x4a03c020, 0x00004010, 0x4a03c011, 0x40100011, 0x04006000, 0x4203e000, 0x40000000, 0x4a03c017, 0x00000000, 0x4203e000, 0x30000001, 0x0401f000, - 0x4803c856, 0x0201f800, 0x0010f304, 0x0401faf7, - 0x4a03c014, 0x001c001c, 0x42002000, 0x00110d73, - 0x0201f800, 0x0010bd6c, 0x42000000, 0x00001000, + 0x4803c856, 0x0201f800, 0x0010f604, 0x0401faf7, + 0x4a03c014, 0x001c001c, 0x42002000, 0x0011109a, + 0x0201f800, 0x0010c097, 0x42000000, 0x00001000, 0x50000000, 0x82000480, 0x24220001, 0x04000907, 0x42000000, 0x00001000, 0x50000000, 0x82000480, 0x24320001, 0x04000901, 0x59c40000, 0x82000500, @@ -14693,29 +14745,29 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x0401f00a, 0x59e00003, 0x82000500, 0x00030000, 0x82000580, 0x00010000, 0x04020004, 0x59a80070, 0x84000542, 0x48035070, 0x4c140000, 0x0201f800, - 0x0010b518, 0x5c002800, 0x42000800, 0x00001100, + 0x0010b843, 0x5c002800, 0x42000800, 0x00001100, 0x42001800, 0x00000100, 0x82141480, 0x0017ffff, 0x0402100d, 0x42000800, 0x00000900, 0x82141480, 0x0013ffff, 0x04021008, 0x42000800, 0x00000480, 0x42001800, 0x00000080, 0x82141480, 0x0011ffff, 0x040018d6, 0x4807500d, 0x480f5251, 0x42001000, - 0x0000002c, 0x0201f800, 0x00106a79, 0x82040c00, - 0x00111264, 0x4807500b, 0x4a03c810, 0x00100000, - 0x4a03c811, 0x0010beb3, 0x4a03c812, 0x0010f300, - 0x4a03c813, 0x00110d72, 0x4a03c829, 0x00000004, + 0x0000002c, 0x0201f800, 0x00106c7e, 0x82040c00, + 0x00111584, 0x4807500b, 0x4a03c810, 0x00100000, + 0x4a03c811, 0x0010c1f9, 0x4a03c812, 0x0010f600, + 0x4a03c813, 0x00111099, 0x4a03c829, 0x00000004, 0x59e40001, 0x82000540, 0x0003403f, 0x4803c801, 0x42001000, 0x0000001c, 0x0401f9f1, 0x4202c000, - 0x00111264, 0x59aab00b, 0x59aaa00b, 0x59aaa80b, + 0x00111584, 0x59aab00b, 0x59aaa00b, 0x59aaa80b, 0x59aac80d, 0x49675050, 0x59a8000b, 0x4803500c, - 0x0401fac7, 0x0201f800, 0x00107cad, 0x0401fad7, - 0x0401fb27, 0x0201f800, 0x00101a3f, 0x0201f800, - 0x001012e0, 0x0401fbee, 0x0201f800, 0x00100d45, - 0x0201f800, 0x00106ab9, 0x0401f85c, 0x0201f800, - 0x00102157, 0x0201f800, 0x0010545c, 0x0201f800, - 0x00104c97, 0x0201f800, 0x00106557, 0x0201f800, - 0x00106255, 0x0201f800, 0x00101385, 0x0201f800, - 0x001011e8, 0x4203e000, 0xf0000001, 0x0201f800, - 0x0010be47, 0x4a03c018, 0x00000000, 0x4203e000, + 0x0401fac7, 0x0201f800, 0x00107ea3, 0x0401fad7, + 0x0401fb27, 0x0201f800, 0x00101a44, 0x0201f800, + 0x001012e1, 0x0401fbee, 0x0201f800, 0x00100d46, + 0x0201f800, 0x00106cbe, 0x0401f85c, 0x0201f800, + 0x00102216, 0x0201f800, 0x0010558d, 0x0201f800, + 0x00104dbc, 0x0201f800, 0x0010675c, 0x0201f800, + 0x0010645a, 0x0201f800, 0x00101386, 0x0201f800, + 0x001011e9, 0x4203e000, 0xf0000001, 0x0201f800, + 0x0010c18d, 0x4a03c018, 0x00000000, 0x4203e000, 0x20000511, 0x4203e000, 0x50010000, 0x4a03c020, 0x00000000, 0x04027010, 0x59e00020, 0x82000580, 0x00000002, 0x0402000c, 0x4a03c020, 0x00004000, @@ -14726,25 +14778,25 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x00020004, 0x4df00000, 0x4203e000, 0x50000000, 0x416c0000, 0x82000c80, 0x00000008, 0x0402186b, 0x0c01f804, 0x5c03e000, 0x0201f000, 0x00020008, - 0x001002d1, 0x00110b6f, 0x00110aa1, 0x001002d0, - 0x00110a6d, 0x001002d0, 0x001002d0, 0x001002e3, - 0x0401f85e, 0x42000800, 0x0010c7ff, 0x5804001e, + 0x001002d1, 0x00110e96, 0x00110da1, 0x001002d0, + 0x00110d6d, 0x001002d0, 0x001002d0, 0x001002e3, + 0x0401f85e, 0x42000800, 0x0010caff, 0x5804001e, 0x8c000500, 0x0400000d, 0x84000500, 0x4800081e, 0x4202d800, 0x00000004, 0x0401f97b, 0x49f3c857, 0x5c000800, 0x5c000000, 0x82000540, 0x00003e00, 0x4c000000, 0x4c040000, 0x1c01f000, 0x4a038805, 0x000000f0, 0x1c01f000, 0x4a035048, 0x00000005, - 0x4a035049, 0x00000004, 0x4a03504a, 0x00000000, - 0x4a03504b, 0x00000496, 0x0201f800, 0x00105426, + 0x4a035049, 0x00000005, 0x4a03504a, 0x00000000, + 0x4a03504b, 0x00009496, 0x0201f800, 0x00105557, 0x4a03541b, 0x0000ffff, 0x4a03500f, 0x00ffffff, - 0x0201f800, 0x001099aa, 0x4a03501f, 0x20200000, + 0x0201f800, 0x00109be2, 0x4a03501f, 0x20200000, 0x4a035020, 0x88000200, 0x4a035021, 0x00ff001f, 0x4a035022, 0x000007d0, 0x4a035023, 0x80000000, 0x4a035024, 0x00000200, 0x4a035025, 0x00ff0000, 0x4a035026, 0x00010000, 0x4a03502d, 0x514c4f47, 0x4a03502e, 0x49432020, 0x1c01f000, 0x4d440000, 0x417a8800, 0x4c5c0000, 0x4178b800, 0x0201f800, - 0x0002034c, 0x04020005, 0x0201f800, 0x0010491a, + 0x0002034c, 0x04020005, 0x0201f800, 0x00104a1c, 0x04020002, 0x805cb800, 0x81468800, 0x83440580, 0x000007f0, 0x040207f6, 0x405c0800, 0x5c00b800, 0x5c028800, 0x1c01f000, 0x4803c857, 0x5c000000, @@ -14756,15 +14808,15 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x4c000000, 0x4c040000, 0x59bc00ea, 0x4803c857, 0x82000500, 0x00000007, 0x82000580, 0x00000001, 0x04020005, 0x42000800, 0x00000000, 0x0201f800, - 0x00106c55, 0x59b800ea, 0x4803c857, 0x4a0370e8, + 0x00106e5a, 0x59b800ea, 0x4803c857, 0x4a0370e8, 0x00000004, 0x5c000800, 0x4807c025, 0x80040920, 0x4807c026, 0x5c000000, 0x4803c023, 0x80000120, 0x4803c024, 0x5c000000, 0x4803c857, 0x4803c021, 0x80000120, 0x4803c022, 0x41f80000, 0x4803c029, 0x80000120, 0x4803c02a, 0x42000000, 0x00001000, 0x50000000, 0x82000480, 0x24320001, 0x4803c857, - 0x0400104b, 0x0201f800, 0x0010bdab, 0x04000046, - 0x42000800, 0x0010e2b0, 0x46000800, 0xfaceface, + 0x0400104b, 0x0201f800, 0x0010c0d6, 0x04000046, + 0x42000800, 0x0010e5b0, 0x46000800, 0xfaceface, 0x80040800, 0x4c080000, 0x4c0c0000, 0x42001000, 0x00007a00, 0x58080013, 0x44000800, 0x80040800, 0x58080019, 0x44000800, 0x80040800, 0x5808001a, @@ -14788,29 +14840,29 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x0401f847, 0x0401f7ff, 0x42000000, 0x00000004, 0x0401f80c, 0x4a03c855, 0x0001eb5a, 0x59e40001, 0x82000540, 0x00000700, 0x4803c801, 0x42000000, - 0x0010ccb9, 0x49780003, 0x49780004, 0x1c01f000, - 0x42000800, 0x0010ccbb, 0x44000800, 0x59e40801, + 0x0010cfb9, 0x49780003, 0x49780004, 0x1c01f000, + 0x42000800, 0x0010cfbb, 0x44000800, 0x59e40801, 0x82041500, 0xfff3c0ff, 0x480bc801, 0x8c040d24, 0x0400000c, 0x4c000000, 0x59e41052, 0x59e40054, - 0x800000d4, 0x82000400, 0x0010e2cc, 0x80081480, + 0x800000d4, 0x82000400, 0x0010e5cc, 0x80081480, 0x480bc853, 0x4a03c800, 0x00000040, 0x5c000000, - 0x4a03c850, 0x0010e2cc, 0x800000d4, 0x82002400, - 0x0010e2cb, 0x4813c851, 0x4a03c853, 0x00000400, - 0x42000000, 0x0010e2cc, 0x82001400, 0x00001000, + 0x4a03c850, 0x0010e5cc, 0x800000d4, 0x82002400, + 0x0010e5cb, 0x4813c851, 0x4a03c853, 0x00000400, + 0x42000000, 0x0010e5cc, 0x82001400, 0x00001000, 0x45780000, 0x80000000, 0x80081d80, 0x040207fd, - 0x4807c801, 0x1c01f000, 0x42002000, 0x0010ccb9, + 0x4807c801, 0x1c01f000, 0x42002000, 0x0010cfb9, 0x59e41801, 0x58100c01, 0x82040500, 0x00003800, 0x820c1d00, 0xffffc7ff, 0x800c1d40, 0x480fc801, 0x1c01f000, 0x5c036000, 0x4db00000, 0x49b3c857, 0x4803c857, 0x1c01f000, 0x1c01f000, 0x59a80059, 0x8c000530, 0x040207fe, 0x4c080000, 0x42001000, 0x00000004, 0x0401f862, 0x5c001000, 0x4201d000, - 0x00028b0a, 0x0201f800, 0x0010645c, 0x4c080000, + 0x00028b0a, 0x0201f800, 0x00106661, 0x4c080000, 0x42001000, 0x00000008, 0x0401f859, 0x5c001000, - 0x4201d000, 0x00028b0a, 0x0201f800, 0x0010645c, + 0x4201d000, 0x00028b0a, 0x0201f800, 0x00106661, 0x4c080000, 0x42001000, 0x00000010, 0x0401f850, 0x5c001000, 0x4201d000, 0x00028b0a, 0x0201f800, - 0x0010645c, 0x0401f7e2, 0x8c00050c, 0x59a80859, + 0x00106661, 0x0401f7e2, 0x8c00050c, 0x59a80859, 0x04020003, 0x84040d30, 0x0401f006, 0x84040d70, 0x48075059, 0x42001000, 0x00000000, 0x0401f040, 0x48075059, 0x836c0500, 0x00000007, 0x0c01f001, @@ -14848,8 +14900,8 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x41792000, 0x41792800, 0x41793000, 0x41793800, 0x41794000, 0x41794800, 0x41795000, 0x41795800, 0x41796000, 0x41796800, 0x41797000, 0x41797800, - 0x41798000, 0x41798800, 0x42019000, 0x0010c88f, - 0x42019800, 0x0010c865, 0x4179a000, 0x4179a800, + 0x41798000, 0x41798800, 0x42019000, 0x0010cb8f, + 0x42019800, 0x0010cb65, 0x4179a000, 0x4179a800, 0x4179b000, 0x4179b800, 0x4179c800, 0x4179c000, 0x4179d000, 0x4179d800, 0x4179e000, 0x4179e800, 0x4179f000, 0x4179f800, 0x417a0000, 0x417a0800, @@ -14859,16 +14911,16 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x417a6800, 0x417a7000, 0x417a7800, 0x417a8000, 0x417a8800, 0x417a9000, 0x417a9800, 0x417ae800, 0x417af800, 0x42030000, 0x00007c00, 0x42031000, - 0x0010cb60, 0x42031800, 0x0000bf1d, 0x42032000, - 0x0000bf32, 0x42032800, 0x0010cb28, 0x42033000, - 0x00020cf9, 0x42034000, 0x0010c7ff, 0x42033800, - 0x0010c81e, 0x42034800, 0x0010c89e, 0x42035000, - 0x0010c780, 0x42035800, 0x0010bf80, 0x42030800, - 0x0010c860, 0x417b6000, 0x42036800, 0x00006f00, + 0x0010ce60, 0x42031800, 0x0000bf1d, 0x42032000, + 0x0000bf32, 0x42032800, 0x0010ce28, 0x42033000, + 0x00020cf9, 0x42034000, 0x0010caff, 0x42033800, + 0x0010cb1e, 0x42034800, 0x0010cb9e, 0x42035000, + 0x0010ca80, 0x42035800, 0x0010c280, 0x42030800, + 0x0010cb60, 0x417b6000, 0x42036800, 0x00006f00, 0x4203c800, 0x00003000, 0x42037000, 0x0000ff00, 0x42037800, 0x0000bf00, 0x42038000, 0x00007700, 0x42038800, 0x00004000, 0x42039000, 0x00006000, - 0x42039800, 0x0010dfe8, 0x4203a000, 0x00007600, + 0x42039800, 0x0010e2e8, 0x4203a000, 0x00007600, 0x4203a800, 0x00007400, 0x4203b000, 0x00007200, 0x4203b800, 0x00007100, 0x4203c000, 0x00007000, 0x4203d000, 0x00000000, 0x4203e800, 0x000201b5, @@ -14886,8 +14938,8 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x48001805, 0x0401fdce, 0x800409c0, 0x04020002, 0x80040800, 0x48041806, 0x1c01f000, 0x4200b000, 0x00000080, 0x59a80078, 0x8c00053e, 0x04000003, - 0x4200b000, 0x00000040, 0x42024800, 0x0010ccd1, - 0x42000000, 0x0010d251, 0x48024809, 0x82000400, + 0x4200b000, 0x00000040, 0x42024800, 0x0010cfd1, + 0x42000000, 0x0010d551, 0x48024809, 0x82000400, 0x00000010, 0x83264c00, 0x0000000b, 0x8058b040, 0x040207fa, 0x1c01f000, 0x59a8080c, 0x4006d000, 0x4202b800, 0x00000001, 0x59a8180a, 0x480fc857, @@ -14898,13 +14950,13 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x412d8800, 0x1c01f000, 0x835c0480, 0x00000020, 0x0400100a, 0x496bc857, 0x815eb840, 0x416a5800, 0x592ed000, 0x497a5800, 0x497a5801, 0x497a5805, - 0x812e59c0, 0x1c01f000, 0x42000000, 0x0010cc15, - 0x0201f800, 0x0010bc88, 0x417a5800, 0x0401f7f9, + 0x812e59c0, 0x1c01f000, 0x42000000, 0x0010cf15, + 0x0201f800, 0x0010bfb3, 0x417a5800, 0x0401f7f9, 0x0401f803, 0x412d8800, 0x1c01f000, 0x815eb840, 0x04001009, 0x416a5800, 0x492fc857, 0x592ed000, 0x497a5800, 0x497a5801, 0x497a5805, 0x812e59c0, - 0x1c01f000, 0x42000000, 0x0010cc15, 0x0201f800, - 0x0010bc88, 0x417ab800, 0x417a5800, 0x0401f7f8, + 0x1c01f000, 0x42000000, 0x0010cf15, 0x0201f800, + 0x0010bfb3, 0x417ab800, 0x417a5800, 0x0401f7f8, 0x492fc857, 0x496a5800, 0x412ed000, 0x815eb800, 0x59c80000, 0x82000540, 0x00001200, 0x48039000, 0x1c01f000, 0x492fc857, 0x812e59c0, 0x04000007, @@ -14922,26 +14974,26 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x00000020, 0x497bb807, 0x8058b040, 0x040207fe, 0x4a03b805, 0x30000000, 0x59dc0006, 0x4a03b805, 0x60000001, 0x4803c856, 0x0401ff98, 0x04000d57, - 0x42001000, 0x0010cb5b, 0x452c1000, 0x4a025801, + 0x42001000, 0x0010ce5b, 0x452c1000, 0x4a025801, 0x00000001, 0x4a025802, 0x00000100, 0x4a025808, - 0x00107370, 0x497a5809, 0x497a580a, 0x497a580b, - 0x0401ff8a, 0x04000d49, 0x42001000, 0x0010cb5c, + 0x00107573, 0x497a5809, 0x497a580a, 0x497a580b, + 0x0401ff8a, 0x04000d49, 0x42001000, 0x0010ce5c, 0x452c1000, 0x4a025801, 0x00000000, 0x4a025802, - 0x00000100, 0x4a025808, 0x0010102a, 0x497a5803, + 0x00000100, 0x4a025808, 0x0010102b, 0x497a5803, 0x497a5806, 0x497a5807, 0x497a5809, 0x59a80070, 0x8c000500, 0x04000006, 0x4a03b805, 0xe0000001, 0x59dc0006, 0x8c000522, 0x040007fc, 0x1c01f000, 0x40681000, 0x0201f800, 0x00020016, 0x1c01f000, - 0x42001000, 0x00020026, 0x0201f800, 0x00106304, - 0x0201f800, 0x00109a94, 0x0201f800, 0x0010b1a3, + 0x42001000, 0x00020026, 0x0201f800, 0x00106509, + 0x0201f800, 0x00109ccc, 0x0201f800, 0x0010b4ba, 0x04000014, 0x4a03b805, 0x30000002, 0x59dc0006, 0x4807b800, 0x480bb801, 0x42007000, 0x00020cf0, 0x4a007002, 0x00000040, 0x480c7008, 0x58380007, 0x82000400, 0x00000005, 0x48007003, 0x4a007000, 0x00000003, 0x4803b803, 0x0201f000, 0x00020050, - 0x42000000, 0x0010cb7d, 0x0201f800, 0x0010bc88, - 0x0201f800, 0x00109aac, 0x42000800, 0x00000001, - 0x42001000, 0x00020026, 0x0201f800, 0x001062dd, + 0x42000000, 0x0010ce7d, 0x0201f800, 0x0010bfb3, + 0x0201f800, 0x00109ce4, 0x42000800, 0x00000001, + 0x42001000, 0x00020026, 0x0201f800, 0x001064e2, 0x42007000, 0x00020cf0, 0x0201f000, 0x00020030, 0x58380802, 0x42001000, 0x0000ff00, 0x82040480, 0x0000ff00, 0x04021003, 0x40041000, 0x80000580, @@ -14961,7 +15013,7 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x04000003, 0x48107005, 0x0401f008, 0x49787005, 0x49787004, 0x0401f005, 0x48101800, 0x801021c0, 0x04020002, 0x480c7004, 0x1c01f000, 0x4803c856, - 0x4dc00000, 0x42007000, 0x0010cb5e, 0x4a007400, + 0x4dc00000, 0x42007000, 0x0010ce5e, 0x4a007400, 0x00000000, 0x49787001, 0x42038000, 0x00007720, 0x4a038006, 0x60000001, 0x4a038009, 0xf4f60000, 0x42038000, 0x00007700, 0x4a038006, 0x60000001, @@ -14977,7 +15029,7 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x4a038807, 0x00000004, 0x4a0370e5, 0x00080000, 0x59b800ea, 0x8c000510, 0x04000004, 0x59b800e0, 0x0401f87b, 0x0401f7fb, 0x42038000, 0x00007720, - 0x0201f800, 0x00100ca7, 0x59c00007, 0x4a038006, + 0x0201f800, 0x00100ca8, 0x59c00007, 0x4a038006, 0x20000000, 0x59c00007, 0x4a038006, 0x8000000a, 0x59c00007, 0x4a038006, 0x8000000b, 0x59c00007, 0x4a038006, 0x40000001, 0x83c00580, 0x00007700, @@ -14988,16 +15040,16 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x83c00580, 0x00007700, 0x04000004, 0x42038000, 0x00007700, 0x0401f7f1, 0x4178a000, 0x805cb9c0, 0x0402001d, 0x4200b000, 0x00000020, 0x83b8ac00, - 0x00000020, 0x0201f800, 0x0010bd64, 0x4a0370fb, - 0x00000001, 0x4a037020, 0x00100f0a, 0x59a8002c, + 0x00000020, 0x0201f800, 0x0010c08f, 0x4a0370fb, + 0x00000001, 0x4a037020, 0x00100f0b, 0x59a8002c, 0x82000500, 0x0000ffff, 0x48037021, 0x4a037035, - 0x0010df2e, 0x4a037030, 0x0010c78f, 0x4a037031, - 0x0010bf80, 0x4a037032, 0x0010c870, 0x4a037036, - 0x0010c87b, 0x59840002, 0x48037034, 0x4a037038, - 0x00100f01, 0x4a0370fb, 0x00000001, 0x4200b000, + 0x0010e22e, 0x4a037030, 0x0010ca8f, 0x4a037031, + 0x0010c280, 0x4a037032, 0x0010cb70, 0x4a037036, + 0x0010cb7b, 0x59840002, 0x48037034, 0x4a037038, + 0x00100f02, 0x4a0370fb, 0x00000001, 0x4200b000, 0x00000020, 0x83b8ac00, 0x00000000, 0x0201f800, - 0x0010bd64, 0x4200b000, 0x00000040, 0x83b8ac00, - 0x00000040, 0x0201f800, 0x0010bd64, 0x805cb9c0, + 0x0010c08f, 0x4200b000, 0x00000040, 0x83b8ac00, + 0x00000040, 0x0201f800, 0x0010c08f, 0x805cb9c0, 0x04020006, 0x4a0370e4, 0xaaaaaaaa, 0x4a0370e5, 0xaaaaaaaa, 0x0401f005, 0x4a0370e4, 0xa2aa2a82, 0x4a0370e5, 0xaaaaa2aa, 0x4a0370e6, 0xaaaaaaaa, @@ -15009,7 +15061,7 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x5c00a000, 0x5c038000, 0x1c01f000, 0x4d300000, 0x4d380000, 0x40026000, 0x82000500, 0x7f000000, 0x82000580, 0x60000000, 0x04020012, 0x83326500, - 0x00ffffff, 0x0201f800, 0x0010a09b, 0x0402000d, + 0x00ffffff, 0x0201f800, 0x0010a2d8, 0x0402000d, 0x59300203, 0x82000580, 0x00000004, 0x04020009, 0x59300c07, 0x82040580, 0x00000009, 0x04020005, 0x42027000, 0x00000047, 0x0201f800, 0x00020bc1, @@ -15018,1465 +15070,1480 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x4d380000, 0x4d3c0000, 0x4d440000, 0x4d4c0000, 0x4d480000, 0x4c5c0000, 0x4c600000, 0x4c640000, 0x4d040000, 0x4cc80000, 0x4ccc0000, 0x4cf40000, - 0x4cf80000, 0x4cfc0000, 0x0201f800, 0x00020095, - 0x5c01f800, 0x5c01f000, 0x5c01e800, 0x5c019800, - 0x5c019000, 0x5c020800, 0x5c00c800, 0x5c00c000, - 0x5c00b800, 0x5c029000, 0x5c029800, 0x5c028800, - 0x5c027800, 0x5c027000, 0x5c01f800, 0x5c028000, - 0x5c026800, 0x5c025800, 0x5c026000, 0x1c01f000, - 0x493bc857, 0x0201f000, 0x000200c2, 0x83300500, - 0x000000ff, 0x82000c80, 0x00000007, 0x02021800, - 0x0010032e, 0x0c01f025, 0x1c01f000, 0x82000d00, - 0xc0000038, 0x02020800, 0x00100323, 0x0201f800, - 0x0010032e, 0x00000000, 0x00000048, 0x00000054, - 0x00000053, 0x0010079c, 0x001007c0, 0x001007bb, - 0x001007df, 0x001007a7, 0x001007b3, 0x0010079c, - 0x001007da, 0x0010083e, 0x0010079c, 0x00100841, - 0x0010079c, 0x0010079c, 0x00100845, 0x0010084b, - 0x00100869, 0x0010087e, 0x001007e0, 0x00100887, - 0x00100893, 0x0010079c, 0x0010079c, 0x0010079c, - 0x0201f800, 0x0010032e, 0x001007a5, 0x0010092a, - 0x00100804, 0x0010082d, 0x001007a5, 0x001007a5, - 0x001007a5, 0x0201f800, 0x0010032e, 0x4803c856, - 0x59300004, 0x8c00053e, 0x04020005, 0x42027000, - 0x00000055, 0x0201f000, 0x00020bc1, 0x0201f800, - 0x00107021, 0x040007fa, 0x1c01f000, 0x4803c856, - 0x0401f8e1, 0x40002800, 0x41782000, 0x42027000, - 0x00000056, 0x0201f000, 0x00020bc1, 0x4803c856, - 0x42027000, 0x00000057, 0x0201f000, 0x00020bc1, - 0x4803c856, 0x59325809, 0x812e59c0, 0x04000016, - 0x59300008, 0x8c00051a, 0x0402000d, 0x592c0409, - 0x8c00051c, 0x04020003, 0x4a026012, 0xffffffff, - 0x59300004, 0x8c00053e, 0x04020008, 0x42027000, - 0x00000048, 0x0201f000, 0x00020bc1, 0x4a025a07, - 0x00000007, 0x0401f7f5, 0x0201f800, 0x00107021, - 0x040007f7, 0x1c01f000, 0x4803c856, 0x83300500, - 0x00ffffff, 0x0201f000, 0x001068a1, 0x1c01f000, - 0x4803c856, 0x813261c0, 0x02000800, 0x0010032e, - 0x0201f800, 0x00109667, 0x0400000d, 0x59325809, - 0x592c0209, 0x84000552, 0x48025a09, 0x0201f800, - 0x001010ed, 0x59300004, 0x8c00053e, 0x04020005, - 0x417a7800, 0x0201f800, 0x001091f1, 0x1c01f000, - 0x0201f800, 0x00107021, 0x040007fa, 0x1c01f000, - 0x4c040000, 0x59b808ea, 0x82040d00, 0x00000007, - 0x82040580, 0x00000003, 0x04000004, 0x42000000, - 0x60000000, 0x0401f8c8, 0x5c000800, 0x1c01f000, - 0x0401f916, 0x0400001b, 0x59325809, 0x812e59c0, - 0x04000018, 0x592c0205, 0x82000500, 0x000000ff, - 0x82000d80, 0x00000029, 0x04020012, 0x59300203, - 0x82000580, 0x00000003, 0x0400000b, 0x59300808, - 0x84040d26, 0x48066008, 0x0201f800, 0x0002011a, - 0x4a03900d, 0x00000040, 0x4a0370e5, 0x00000008, - 0x1c01f000, 0x0201f800, 0x00107021, 0x040007f4, - 0x42000000, 0x0010cc1b, 0x0201f800, 0x0010bc88, - 0x5988014a, 0x80000000, 0x4803114a, 0x4a03900d, - 0x00000040, 0x42000000, 0xc0000000, 0x0201f000, - 0x0002010e, 0x4c5c0000, 0x4c600000, 0x4c640000, - 0x4200c800, 0x0010df35, 0x4200b800, 0x00003000, - 0x4200c000, 0x00000105, 0x0201f800, 0x001060de, - 0x4a0370e4, 0x02000000, 0x5c00c800, 0x5c00c000, - 0x5c00b800, 0x1c01f000, 0x4933c857, 0x0201f000, - 0x00020b9d, 0x4933c857, 0x0201f800, 0x00100caf, - 0x1c01f000, 0x41300800, 0x800409c0, 0x02020800, - 0x0010032e, 0x0201f800, 0x00100323, 0x42000000, - 0x0010cc1b, 0x0201f800, 0x0010bc88, 0x4933c857, - 0x813261c0, 0x02000800, 0x0010032e, 0x0401f842, - 0x40002800, 0x0201f800, 0x0010bbf1, 0x4c140000, - 0x59a8006d, 0x80000540, 0x04000005, 0x8c142d2a, - 0x04000003, 0x0201f800, 0x00100caf, 0x5c002800, - 0x0401f8ae, 0x04000007, 0x5932680a, 0x59340200, - 0x8c00050e, 0x59300415, 0x02020800, 0x00109960, - 0x1c01f000, 0x42000000, 0x0010cc1b, 0x0201f800, - 0x0010bc88, 0x4933c857, 0x813261c0, 0x02000800, - 0x0010032e, 0x0401f89d, 0x0400000b, 0x0201f800, - 0x00109667, 0x04000008, 0x59325809, 0x592c0209, - 0x8400054e, 0x48025a09, 0x417a7800, 0x0201f800, - 0x001091f1, 0x1c01f000, 0x485fc857, 0x5c000000, - 0x4d780000, 0x4203e000, 0x50000000, 0x4200b800, - 0x00008005, 0x0201f000, 0x00100333, 0x4933c857, - 0x83300480, 0x00000020, 0x02021800, 0x0010032e, - 0x83300c00, 0x0010cc8e, 0x50040000, 0x80000000, - 0x04001002, 0x44000800, 0x1c01f000, 0x4933c857, - 0x0401f7f4, 0x4807c856, 0x59b800ea, 0x8c000510, - 0x040007fd, 0x59b800e0, 0x4803c857, 0x1c01f000, - 0x4803c856, 0x42000000, 0x10000000, 0x41300800, - 0x0401f029, 0x8c000510, 0x02000000, 0x00020114, - 0x4c040000, 0x0401f80b, 0x5c000800, 0x82100480, - 0x00000008, 0x02001000, 0x00020114, 0x4c040000, - 0x0401fe9b, 0x5c000800, 0x0201f000, 0x00020114, - 0x59b800e2, 0x59b820e2, 0x80100580, 0x040207fd, - 0x80102114, 0x0401f001, 0x40101800, 0x800c190a, - 0x82100500, 0x0000001f, 0x820c1d00, 0x0000001f, - 0x800c2480, 0x82102500, 0x0000001f, 0x1c01f000, - 0x40680000, 0x406c0800, 0x0401f807, 0x42018800, - 0x00000001, 0x04020003, 0x42018800, 0x00000000, - 0x1c01f000, 0x82000500, 0xf0000000, 0x82040d00, - 0x0fffffff, 0x80040d40, 0x4807c857, 0x42001000, - 0x0010cb5f, 0x50080000, 0x80000540, 0x04020005, - 0x4a0370e5, 0x00000003, 0x4a0370e4, 0x00000300, - 0x80000000, 0x44001000, 0x42001000, 0x00000400, - 0x59b800ea, 0x8c000510, 0x0400000c, 0x0401ffd1, - 0x82100480, 0x00000008, 0x04001007, 0x4c040000, - 0x4c080000, 0x0401fe62, 0x5c001000, 0x5c000800, - 0x0401f020, 0x59b800ea, 0x8c000516, 0x0402001d, - 0x4a0370e4, 0x00300000, 0x480770e1, 0x42001000, - 0x0000ff00, 0x80081040, 0x04000012, 0x59b808e4, - 0x8c040d28, 0x040207fc, 0x42001000, 0x0010cb5f, - 0x50080000, 0x80000040, 0x04020005, 0x4a0370e5, - 0x00000002, 0x4a0370e4, 0x00000200, 0x02001800, - 0x0010032e, 0x44001000, 0x8c040d2c, 0x1c01f000, + 0x4cf80000, 0x0201f800, 0x00020095, 0x5c01f000, + 0x5c01e800, 0x5c019800, 0x5c019000, 0x5c020800, + 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x5c029000, + 0x5c029800, 0x5c028800, 0x5c027800, 0x5c027000, + 0x5c01f800, 0x5c028000, 0x5c026800, 0x5c025800, + 0x5c026000, 0x1c01f000, 0x493bc857, 0x0201f000, + 0x000200c2, 0x83300500, 0x000000ff, 0x82000c80, + 0x00000007, 0x02021800, 0x0010032e, 0x0c01f025, + 0x1c01f000, 0x82000d00, 0xc0000038, 0x02020800, + 0x00100323, 0x0201f800, 0x0010032e, 0x00000000, + 0x00000048, 0x00000054, 0x00000053, 0x0010079a, + 0x001007be, 0x001007b9, 0x001007dd, 0x001007a5, + 0x001007b1, 0x0010079a, 0x001007d8, 0x0010083c, + 0x0010079a, 0x0010083f, 0x0010079a, 0x0010079a, + 0x00100843, 0x00100849, 0x00100867, 0x0010087c, + 0x001007de, 0x00100885, 0x00100891, 0x0010079a, + 0x0010079a, 0x0010079a, 0x0201f800, 0x0010032e, + 0x001007a3, 0x00100928, 0x00100802, 0x0010082b, + 0x001007a3, 0x001007a3, 0x001007a3, 0x0201f800, + 0x0010032e, 0x4803c856, 0x59300004, 0x8c00053e, + 0x04020005, 0x42027000, 0x00000055, 0x0201f000, + 0x00020bc1, 0x0201f800, 0x00107226, 0x040007fa, + 0x1c01f000, 0x4803c856, 0x0401f8e1, 0x40002800, + 0x41782000, 0x42027000, 0x00000056, 0x0201f000, + 0x00020bc1, 0x4803c856, 0x42027000, 0x00000057, + 0x0201f000, 0x00020bc1, 0x4803c856, 0x59325809, + 0x812e59c0, 0x04000016, 0x59300008, 0x8c00051a, + 0x0402000d, 0x592c0409, 0x8c00051c, 0x04020003, + 0x4a026012, 0xffffffff, 0x59300004, 0x8c00053e, + 0x04020008, 0x42027000, 0x00000048, 0x0201f000, + 0x00020bc1, 0x4a025a07, 0x00000007, 0x0401f7f5, + 0x0201f800, 0x00107226, 0x040007f7, 0x1c01f000, + 0x4803c856, 0x83300500, 0x00ffffff, 0x0201f000, + 0x00106aa6, 0x1c01f000, 0x4803c856, 0x813261c0, + 0x02000800, 0x0010032e, 0x0201f800, 0x0010989f, + 0x0400000d, 0x59325809, 0x592c0209, 0x84000552, + 0x48025a09, 0x0201f800, 0x001010ee, 0x59300004, + 0x8c00053e, 0x04020005, 0x417a7800, 0x0201f800, + 0x00109425, 0x1c01f000, 0x0201f800, 0x00107226, + 0x040007fa, 0x1c01f000, 0x4c040000, 0x59b808ea, + 0x82040d00, 0x00000007, 0x82040580, 0x00000003, + 0x04000004, 0x42000000, 0x60000000, 0x0401f8c8, + 0x5c000800, 0x1c01f000, 0x0401f916, 0x0400001b, + 0x59325809, 0x812e59c0, 0x04000018, 0x592c0205, + 0x82000500, 0x000000ff, 0x82000d80, 0x00000029, + 0x04020012, 0x59300203, 0x82000580, 0x00000003, + 0x0400000b, 0x59300808, 0x84040d26, 0x48066008, + 0x0201f800, 0x0002011a, 0x4a03900d, 0x00000040, + 0x4a0370e5, 0x00000008, 0x1c01f000, 0x0201f800, + 0x00107226, 0x040007f4, 0x42000000, 0x0010cf1b, + 0x0201f800, 0x0010bfb3, 0x5988014a, 0x80000000, + 0x4803114a, 0x4a03900d, 0x00000040, 0x42000000, + 0xc0000000, 0x0201f000, 0x0002010e, 0x4c5c0000, + 0x4c600000, 0x4c640000, 0x4200c800, 0x0010e235, + 0x4200b800, 0x00003000, 0x4200c000, 0x00000105, + 0x0201f800, 0x001062aa, 0x4a0370e4, 0x02000000, + 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x1c01f000, + 0x4933c857, 0x0201f000, 0x00020b9d, 0x4933c857, + 0x0201f800, 0x00100cb0, 0x1c01f000, 0x41300800, + 0x800409c0, 0x02020800, 0x0010032e, 0x0201f800, + 0x00100323, 0x42000000, 0x0010cf1b, 0x0201f800, + 0x0010bfb3, 0x4933c857, 0x813261c0, 0x02000800, + 0x0010032e, 0x0401f842, 0x40002800, 0x0201f800, + 0x0010bf1c, 0x4c140000, 0x59a8006d, 0x80000540, + 0x04000005, 0x8c142d2a, 0x04000003, 0x0201f800, + 0x00100cb0, 0x5c002800, 0x0401f8ae, 0x04000007, + 0x5932680a, 0x59340200, 0x8c00050e, 0x59300415, + 0x02020800, 0x00109b98, 0x1c01f000, 0x42000000, + 0x0010cf1b, 0x0201f800, 0x0010bfb3, 0x4933c857, + 0x813261c0, 0x02000800, 0x0010032e, 0x0401f89d, + 0x0400000b, 0x0201f800, 0x0010989f, 0x04000008, + 0x59325809, 0x592c0209, 0x8400054e, 0x48025a09, + 0x417a7800, 0x0201f800, 0x00109425, 0x1c01f000, + 0x485fc857, 0x5c000000, 0x4d780000, 0x4203e000, + 0x50000000, 0x4200b800, 0x00008005, 0x0201f000, + 0x00100333, 0x4933c857, 0x83300480, 0x00000020, + 0x02021800, 0x0010032e, 0x83300c00, 0x0010cf8e, + 0x50040000, 0x80000000, 0x04001002, 0x44000800, + 0x1c01f000, 0x4933c857, 0x0401f7f4, 0x4807c856, + 0x59b800ea, 0x8c000510, 0x040007fd, 0x59b800e0, + 0x4803c857, 0x1c01f000, 0x4803c856, 0x42000000, + 0x10000000, 0x41300800, 0x0401f029, 0x8c000510, + 0x02000000, 0x00020114, 0x4c040000, 0x0401f80b, + 0x5c000800, 0x82100480, 0x00000008, 0x02001000, + 0x00020114, 0x4c040000, 0x0401fe9d, 0x5c000800, + 0x0201f000, 0x00020114, 0x59b800e2, 0x59b820e2, + 0x80100580, 0x040207fd, 0x80102114, 0x0401f001, + 0x40101800, 0x800c190a, 0x82100500, 0x0000001f, + 0x820c1d00, 0x0000001f, 0x800c2480, 0x82102500, + 0x0000001f, 0x1c01f000, 0x40680000, 0x406c0800, + 0x0401f807, 0x42018800, 0x00000001, 0x04020003, + 0x42018800, 0x00000000, 0x1c01f000, 0x82000500, + 0xf0000000, 0x82040d00, 0x0fffffff, 0x80040d40, + 0x4807c857, 0x42001000, 0x0010ce5f, 0x50080000, + 0x80000540, 0x04020005, 0x4a0370e5, 0x00000003, + 0x4a0370e4, 0x00000300, 0x80000000, 0x44001000, + 0x42001000, 0x00000400, 0x59b800ea, 0x8c000510, + 0x0400000c, 0x0401ffd1, 0x82100480, 0x00000008, + 0x04001007, 0x4c040000, 0x4c080000, 0x0401fe64, + 0x5c001000, 0x5c000800, 0x0401f020, 0x59b800ea, + 0x8c000516, 0x0402001d, 0x4a0370e4, 0x00300000, + 0x480770e1, 0x42001000, 0x0000ff00, 0x80081040, + 0x04000012, 0x59b808e4, 0x8c040d28, 0x040207fc, + 0x42001000, 0x0010ce5f, 0x50080000, 0x80000040, + 0x04020005, 0x4a0370e5, 0x00000002, 0x4a0370e4, + 0x00000200, 0x02001800, 0x0010032e, 0x44001000, + 0x8c040d2c, 0x1c01f000, 0x41f80000, 0x50000000, + 0x0201f800, 0x0010032e, 0x80081040, 0x040207d3, 0x41f80000, 0x50000000, 0x0201f800, 0x0010032e, - 0x80081040, 0x040207d3, 0x41f80000, 0x50000000, - 0x0201f800, 0x0010032e, 0x4d380000, 0x59300c07, - 0x82040580, 0x00000009, 0x04020006, 0x42027000, - 0x00000047, 0x0201f800, 0x00020bc1, 0x80000580, - 0x5c027000, 0x1c01f000, 0x4c500000, 0x4a03900d, - 0x00000001, 0x59c8a020, 0x4a03900d, 0x00000002, - 0x59c80820, 0x8c50a52e, 0x04000002, 0x900409c0, - 0x82040d00, 0x0000ffff, 0x0201f800, 0x0010609d, - 0x5c00a000, 0x1c01f000, 0x42000000, 0x0010cc12, - 0x0201f800, 0x0010bc88, 0x0401ffec, 0x04000054, - 0x4933c857, 0x59300407, 0x82000580, 0x00000000, - 0x0400004f, 0x59c82021, 0x4a03900d, 0x00000001, - 0x59c82821, 0x82142d00, 0x0000ffff, 0x59325809, - 0x812e59c0, 0x04000046, 0x5932680a, 0x0201f800, - 0x0010483c, 0x02020800, 0x00109948, 0x599c0019, - 0x8c00050c, 0x0402001e, 0x0201f800, 0x0010483c, - 0x0402001b, 0x59300812, 0x4807c857, 0x592c0409, - 0x8c00051c, 0x04020014, 0x8400055c, 0x48025c09, - 0x592c0a05, 0x82040d00, 0x000000ff, 0x82040580, - 0x00000048, 0x04000007, 0x82040580, 0x00000018, - 0x04000004, 0x82040580, 0x00000068, 0x04020006, - 0x59300012, 0x0201f800, 0x0010a0a5, 0x80000d40, - 0x48065803, 0x4a026012, 0x7fffffff, 0x59300008, - 0x8c000516, 0x0402001e, 0x48166014, 0x599c0019, - 0x8c00050c, 0x04020004, 0x59a80007, 0x8c00051e, - 0x04020017, 0x0201f800, 0x00100f2a, 0x04020014, - 0x0401fa8f, 0x40280000, 0x4802600e, 0x04000005, - 0x4832600c, 0x50200000, 0x4802600b, 0x4822600d, - 0x59300415, 0x8c00051c, 0x04020004, 0x599c0019, - 0x8c00050c, 0x04020885, 0x4a03900d, 0x00000040, - 0x4a0370e5, 0x00000008, 0x1c01f000, 0x42000000, - 0x0010cc1b, 0x0201f800, 0x0010bc88, 0x5988014c, - 0x80000000, 0x4803114c, 0x4a03900d, 0x00000040, - 0x42000000, 0xc0000000, 0x0201f000, 0x0002010e, - 0x4cf80000, 0x58f40000, 0x8001f540, 0x0401f820, - 0x41781800, 0x0401f935, 0x04020014, 0x44140800, - 0x0401f82a, 0x04000011, 0x40043800, 0x42001800, - 0x00000001, 0x40142000, 0x0401f92c, 0x0402000b, - 0x801c3800, 0x501c0000, 0x44000800, 0x0401f810, - 0x801c0580, 0x04000004, 0x44103800, 0x801c3840, - 0x44143800, 0x0401f819, 0x5c01f000, 0x1c01f000, - 0x80f9f1c0, 0x04020003, 0x58f41202, 0x0401f003, - 0x42001000, 0x00000007, 0x1c01f000, 0x80f9f1c0, - 0x04020006, 0x58f40401, 0x82000480, 0x00000002, - 0x80f40400, 0x0401f005, 0x58f80401, 0x82000480, - 0x00000002, 0x80f80400, 0x50002800, 0x80000000, - 0x50002000, 0x1c01f000, 0x80f9f1c0, 0x04020008, - 0x58f40401, 0x82000480, 0x00000002, 0x02001800, - 0x0010032e, 0x4801ec01, 0x0401f00b, 0x58f80401, - 0x82000480, 0x00000002, 0x02001800, 0x0010032e, - 0x4801f401, 0x82000580, 0x00000002, 0x04020002, - 0x0401f81b, 0x58f40202, 0x80000040, 0x4801ea02, - 0x02000800, 0x0010032e, 0x82000580, 0x00000001, - 0x1c01f000, 0x82f40580, 0xffffffff, 0x0400000f, + 0x4d380000, 0x59300c07, 0x82040580, 0x00000009, + 0x04020006, 0x42027000, 0x00000047, 0x0201f800, + 0x00020bc1, 0x80000580, 0x5c027000, 0x1c01f000, + 0x4c500000, 0x4a03900d, 0x00000001, 0x59c8a020, + 0x4a03900d, 0x00000002, 0x59c80820, 0x8c50a52e, + 0x04000002, 0x900409c0, 0x82040d00, 0x0000ffff, + 0x0201f800, 0x00106269, 0x5c00a000, 0x1c01f000, + 0x42000000, 0x0010cf12, 0x0201f800, 0x0010bfb3, + 0x0401ffec, 0x04000057, 0x4933c857, 0x59300407, + 0x82000580, 0x00000000, 0x04000052, 0x59c82021, + 0x4a03900d, 0x00000001, 0x59c82821, 0x82142d00, + 0x0000ffff, 0x59325809, 0x812e59c0, 0x04000049, + 0x5932680a, 0x0201f800, 0x0010493c, 0x02020800, + 0x00109b80, 0x599c0019, 0x8c00050c, 0x0402001e, + 0x0201f800, 0x0010493c, 0x0402001b, 0x59300812, + 0x4807c857, 0x592c0409, 0x8c00051c, 0x04020014, + 0x8400055c, 0x48025c09, 0x592c0a05, 0x82040d00, + 0x000000ff, 0x82040580, 0x00000048, 0x04000007, + 0x82040580, 0x00000018, 0x04000004, 0x82040580, + 0x00000068, 0x04020006, 0x59300012, 0x0201f800, + 0x0010a2e2, 0x80000d40, 0x48065803, 0x4a026012, + 0x7fffffff, 0x59300008, 0x8c000516, 0x04020021, + 0x48166014, 0x0201f800, 0x0010493c, 0x04000004, + 0x59300415, 0x8c00051c, 0x04000004, 0x599c0019, + 0x8c00050c, 0x04000017, 0x0201f800, 0x00100f2b, + 0x04020014, 0x0401fa8f, 0x40280000, 0x4802600e, + 0x04000005, 0x4832600c, 0x50200000, 0x4802600b, + 0x4822600d, 0x59300415, 0x8c00051c, 0x04020004, + 0x599c0019, 0x8c00050c, 0x04020885, 0x4a03900d, + 0x00000040, 0x4a0370e5, 0x00000008, 0x1c01f000, + 0x42000000, 0x0010cf1b, 0x0201f800, 0x0010bfb3, + 0x5988014c, 0x80000000, 0x4803114c, 0x4a03900d, + 0x00000040, 0x42000000, 0xc0000000, 0x0201f000, + 0x0002010e, 0x4cf80000, 0x58f40000, 0x8001f540, + 0x0401f820, 0x41781800, 0x0401f935, 0x04020014, + 0x44140800, 0x0401f82a, 0x04000011, 0x40043800, + 0x42001800, 0x00000001, 0x40142000, 0x0401f92c, + 0x0402000b, 0x801c3800, 0x501c0000, 0x44000800, + 0x0401f810, 0x801c0580, 0x04000004, 0x44103800, + 0x801c3840, 0x44143800, 0x0401f819, 0x5c01f000, + 0x1c01f000, 0x80f9f1c0, 0x04020003, 0x58f41202, + 0x0401f003, 0x42001000, 0x00000007, 0x1c01f000, + 0x80f9f1c0, 0x04020006, 0x58f40401, 0x82000480, + 0x00000002, 0x80f40400, 0x0401f005, 0x58f80401, + 0x82000480, 0x00000002, 0x80f80400, 0x50002800, + 0x80000000, 0x50002000, 0x1c01f000, 0x80f9f1c0, + 0x04020008, 0x58f40401, 0x82000480, 0x00000002, + 0x02001800, 0x0010032e, 0x4801ec01, 0x0401f00b, + 0x58f80401, 0x82000480, 0x00000002, 0x02001800, + 0x0010032e, 0x4801f401, 0x82000580, 0x00000002, + 0x04020002, 0x0401f81b, 0x58f40202, 0x80000040, + 0x4801ea02, 0x02000800, 0x0010032e, 0x82000580, + 0x00000001, 0x1c01f000, 0x82f40580, 0xffffffff, + 0x0400000f, 0x58f40201, 0x82000580, 0x0000dcb3, + 0x02020800, 0x0010032e, 0x58f40000, 0x8001f540, + 0x04000006, 0x58f80201, 0x82000580, 0x0000ddb9, + 0x02020800, 0x0010032e, 0x0401f80a, 0x1c01f000, + 0x4d2c0000, 0x40fa5800, 0x0201f800, 0x00100594, + 0x4979e800, 0x4179f000, 0x5c025800, 0x1c01f000, + 0x80f5e9c0, 0x04000009, 0x80f9f1c0, 0x04020ff5, + 0x4d2c0000, 0x40f65800, 0x0201f800, 0x00100594, + 0x4179e800, 0x5c025800, 0x1c01f000, 0x4cf40000, + 0x0201f800, 0x0010493c, 0x04020036, 0x59300808, + 0x82040500, 0x00013100, 0x04020032, 0x8c040d22, + 0x04000032, 0x59300028, 0x8001ed40, 0x02000800, + 0x0010032e, 0x82000580, 0xffffffff, 0x04000029, 0x58f40201, 0x82000580, 0x0000dcb3, 0x02020800, - 0x0010032e, 0x58f40000, 0x8001f540, 0x04000006, - 0x58f80201, 0x82000580, 0x0000ddb9, 0x02020800, - 0x0010032e, 0x0401f80a, 0x1c01f000, 0x4d2c0000, - 0x40fa5800, 0x0201f800, 0x00100594, 0x4979e800, - 0x4179f000, 0x5c025800, 0x1c01f000, 0x80f5e9c0, - 0x04000009, 0x80f9f1c0, 0x04020ff5, 0x4d2c0000, - 0x40f65800, 0x0201f800, 0x00100594, 0x4179e800, - 0x5c025800, 0x1c01f000, 0x4cf40000, 0x0201f800, - 0x0010483c, 0x04020036, 0x59300808, 0x82040500, - 0x00013100, 0x04020032, 0x8c040d22, 0x04000032, - 0x59300028, 0x8001ed40, 0x02000800, 0x0010032e, - 0x82000580, 0xffffffff, 0x04000029, 0x58f40201, + 0x0010032e, 0x58f40a02, 0x82040500, 0x0000fffe, + 0x04000003, 0x0401ff74, 0x58f40a02, 0x82040480, + 0x0000000f, 0x04021095, 0x80040800, 0x4805ea02, + 0x82040580, 0x00000008, 0x04000099, 0x82040480, + 0x00000008, 0x0400100a, 0x58f40000, 0x8001ed40, + 0x02000800, 0x0010032e, 0x58f40201, 0x82000580, + 0x0000ddb9, 0x02020800, 0x0010032e, 0x58f40401, + 0x82000c00, 0x00000002, 0x4805ec01, 0x80f40400, + 0x59300813, 0x44040000, 0x80000000, 0x45780000, + 0x5c01e800, 0x1c01f000, 0x42001000, 0x00000400, + 0x59b800e4, 0x8c000524, 0x0402005f, 0x4a0370e4, + 0x00030000, 0x40000000, 0x59b800e4, 0x8c000524, + 0x04020057, 0x59300808, 0x84040d62, 0x48066008, + 0x4a0370e4, 0x00020000, 0x4d2c0000, 0x0201f800, + 0x0010056e, 0x04000061, 0x492e6028, 0x4a025a01, + 0x0000dcb3, 0x59300009, 0x80001d40, 0x02000800, + 0x0010032e, 0x580c0810, 0x48065803, 0x580c0205, + 0x82000500, 0x000000ff, 0x82000580, 0x00000068, + 0x04020037, 0x580c1801, 0x800c19c0, 0x02000800, + 0x0010032e, 0x580c0c06, 0x82040d00, 0x00000003, + 0x82040580, 0x00000002, 0x04020003, 0x592c0803, + 0x0401f02b, 0x580c2a07, 0x580c0008, 0x59301812, + 0x800c0580, 0x0400002a, 0x82040580, 0x00000000, + 0x04000012, 0x40140000, 0x4c080000, 0x400c1000, + 0x41780800, 0x0201f800, 0x00106c9d, 0x800409c0, + 0x02020800, 0x0010032e, 0x82140c00, 0x00000008, + 0x0201f800, 0x00106c7e, 0x5c001000, 0x40041800, + 0x592c0803, 0x0401f022, 0x82140400, 0x00000008, + 0x4c080000, 0x400c1000, 0x41780800, 0x0201f800, + 0x00106c9d, 0x800409c0, 0x02020800, 0x0010032e, + 0x40140800, 0x0201f800, 0x00106c7e, 0x5c001000, + 0x40041800, 0x592c0803, 0x0401f011, 0x59301812, + 0x40040000, 0x800c0580, 0x0402000d, 0x497a5a02, + 0x4a025c01, 0x00000004, 0x0401f011, 0x4a0370e4, + 0x00020000, 0x40000000, 0x40000000, 0x80081040, + 0x02000800, 0x0010032e, 0x0401f79a, 0x4a025a02, + 0x00000001, 0x4a025c01, 0x00000006, 0x497a5804, + 0x400c0000, 0x80040480, 0x48025805, 0x412de800, + 0x5c025800, 0x0401f76d, 0x5c025800, 0x4a026028, + 0xffffffff, 0x0401f787, 0x4d2c0000, 0x58f65800, + 0x0201f800, 0x00100594, 0x40f65800, 0x0201f800, + 0x00100594, 0x5c025800, 0x0401f7f5, 0x4d2c0000, + 0x0201f800, 0x0010056e, 0x040007f8, 0x4a025a01, + 0x0000ddb9, 0x4a025c01, 0x00000002, 0x492de800, + 0x412de800, 0x5c025800, 0x0401f769, 0x0401fee2, + 0x82f40400, 0x00000004, 0x800c0400, 0x40000800, + 0x50040000, 0x80100580, 0x04000016, 0x82040c00, + 0x00000002, 0x80081040, 0x040207fa, 0x80f9f1c0, + 0x04000011, 0x58f41202, 0x82081480, 0x00000007, + 0x82f80400, 0x00000002, 0x800c0400, 0x40000800, + 0x50040000, 0x80100580, 0x04000006, 0x82040c00, + 0x00000002, 0x80081040, 0x040207fa, 0x0401f002, + 0x1c01f000, 0x82000540, 0x00000001, 0x0401f7fd, + 0x4cf40000, 0x4cf80000, 0x4001e800, 0x812e59c0, + 0x04000024, 0x592c0a07, 0x800409c0, 0x04020021, + 0x82f40580, 0xffffffff, 0x0400001b, 0x58f40201, 0x82000580, 0x0000dcb3, 0x02020800, 0x0010032e, - 0x58f40a02, 0x82040500, 0x0000fffe, 0x04000003, - 0x0401ff74, 0x58f40a02, 0x82040480, 0x0000000f, - 0x04021095, 0x80040800, 0x4805ea02, 0x82040580, - 0x00000008, 0x04000099, 0x82040480, 0x00000008, - 0x0400100a, 0x58f40000, 0x8001ed40, 0x02000800, - 0x0010032e, 0x58f40201, 0x82000580, 0x0000ddb9, - 0x02020800, 0x0010032e, 0x58f40401, 0x82000c00, - 0x00000002, 0x4805ec01, 0x80f40400, 0x59300813, - 0x44040000, 0x80000000, 0x45780000, 0x5c01e800, - 0x1c01f000, 0x42001000, 0x00000400, 0x59b800e4, - 0x8c000524, 0x0402005f, 0x4a0370e4, 0x00030000, - 0x40000000, 0x59b800e4, 0x8c000524, 0x04020057, - 0x59300808, 0x84040d62, 0x48066008, 0x4a0370e4, - 0x00020000, 0x4d2c0000, 0x0201f800, 0x0010056e, - 0x04000061, 0x492e6028, 0x4a025a01, 0x0000dcb3, - 0x59300009, 0x80001d40, 0x02000800, 0x0010032e, - 0x580c0810, 0x48065803, 0x580c0205, 0x82000500, - 0x000000ff, 0x82000580, 0x00000068, 0x04020037, - 0x580c1801, 0x800c19c0, 0x02000800, 0x0010032e, - 0x580c0c06, 0x82040d00, 0x00000003, 0x82040580, - 0x00000002, 0x04020003, 0x592c0803, 0x0401f02b, - 0x580c2a07, 0x580c0008, 0x59301812, 0x800c0580, - 0x0400002a, 0x82040580, 0x00000000, 0x04000012, - 0x40140000, 0x4c080000, 0x400c1000, 0x41780800, - 0x0201f800, 0x00106a98, 0x800409c0, 0x02020800, - 0x0010032e, 0x82140c00, 0x00000008, 0x0201f800, - 0x00106a79, 0x5c001000, 0x40041800, 0x592c0803, - 0x0401f022, 0x82140400, 0x00000008, 0x4c080000, - 0x400c1000, 0x41780800, 0x0201f800, 0x00106a98, - 0x800409c0, 0x02020800, 0x0010032e, 0x40140800, - 0x0201f800, 0x00106a79, 0x5c001000, 0x40041800, - 0x592c0803, 0x0401f011, 0x59301812, 0x40040000, - 0x800c0580, 0x0402000d, 0x497a5a02, 0x4a025c01, - 0x00000004, 0x0401f011, 0x4a0370e4, 0x00020000, - 0x40000000, 0x40000000, 0x80081040, 0x02000800, - 0x0010032e, 0x0401f79a, 0x4a025a02, 0x00000001, - 0x4a025c01, 0x00000006, 0x497a5804, 0x400c0000, - 0x80040480, 0x48025805, 0x412de800, 0x5c025800, - 0x0401f76d, 0x5c025800, 0x4a026028, 0xffffffff, - 0x0401f787, 0x4d2c0000, 0x58f65800, 0x0201f800, - 0x00100594, 0x40f65800, 0x0201f800, 0x00100594, - 0x5c025800, 0x0401f7f5, 0x4d2c0000, 0x0201f800, - 0x0010056e, 0x040007f8, 0x4a025a01, 0x0000ddb9, - 0x4a025c01, 0x00000002, 0x492de800, 0x412de800, - 0x5c025800, 0x0401f769, 0x0401fee2, 0x82f40400, - 0x00000004, 0x800c0400, 0x40000800, 0x50040000, - 0x80100580, 0x04000016, 0x82040c00, 0x00000002, - 0x80081040, 0x040207fa, 0x80f9f1c0, 0x04000011, - 0x58f41202, 0x82081480, 0x00000007, 0x82f80400, - 0x00000002, 0x800c0400, 0x40000800, 0x50040000, - 0x80100580, 0x04000006, 0x82040c00, 0x00000002, - 0x80081040, 0x040207fa, 0x0401f002, 0x1c01f000, - 0x82000540, 0x00000001, 0x0401f7fd, 0x4cf40000, - 0x4cf80000, 0x4001e800, 0x812e59c0, 0x04000024, - 0x592c0a07, 0x800409c0, 0x04020021, 0x82f40580, - 0xffffffff, 0x0400001b, 0x58f40201, 0x82000580, - 0x0000dcb3, 0x02020800, 0x0010032e, 0x58f40000, - 0x8001f540, 0x04000006, 0x58f80201, 0x82000580, - 0x0000ddb9, 0x02020800, 0x0010032e, 0x41783800, - 0x58f44003, 0x0401f839, 0x04020009, 0x0401fef0, - 0x497a6028, 0x59300808, 0x84040d22, 0x48066008, - 0x5c01f000, 0x5c01e800, 0x1c01f000, 0x0401fee8, - 0x4a025a07, 0x00000011, 0x0401f7f6, 0x0401feca, - 0x0401f7f4, 0x4cf40000, 0x4cf80000, 0x4001e800, - 0x82040580, 0x00000001, 0x04020020, 0x82f40580, - 0xffffffff, 0x0400001a, 0x58f40201, 0x82000580, - 0x0000dcb3, 0x02020800, 0x0010032e, 0x58f40000, - 0x8001f540, 0x04000006, 0x58f80201, 0x82000580, - 0x0000ddb9, 0x02020800, 0x0010032e, 0x41783800, - 0x58f44003, 0x0401f811, 0x04020008, 0x0401fec8, - 0x42000800, 0x00000001, 0x497a6028, 0x5c01f000, - 0x5c01e800, 0x1c01f000, 0x0401fec1, 0x42000800, - 0x00000011, 0x0401f7f9, 0x4c040000, 0x0401fea2, - 0x5c000800, 0x0401f7f5, 0x4803c856, 0x401c2000, - 0x41781800, 0x4c200000, 0x0401ff88, 0x5c004000, - 0x0402002a, 0x40202000, 0x42001800, 0x00000001, - 0x0401ff82, 0x04020025, 0x0401fe62, 0x40082800, - 0x82f43400, 0x00000004, 0x50182000, 0x40100000, + 0x58f40000, 0x8001f540, 0x04000006, 0x58f80201, + 0x82000580, 0x0000ddb9, 0x02020800, 0x0010032e, + 0x41783800, 0x58f44003, 0x0401f839, 0x04020009, + 0x0401fef0, 0x497a6028, 0x59300808, 0x84040d22, + 0x48066008, 0x5c01f000, 0x5c01e800, 0x1c01f000, + 0x0401fee8, 0x4a025a07, 0x00000011, 0x0401f7f6, + 0x0401feca, 0x0401f7f4, 0x4cf40000, 0x4cf80000, + 0x4001e800, 0x82040580, 0x00000001, 0x04020020, + 0x82f40580, 0xffffffff, 0x0400001a, 0x58f40201, + 0x82000580, 0x0000dcb3, 0x02020800, 0x0010032e, + 0x58f40000, 0x8001f540, 0x04000006, 0x58f80201, + 0x82000580, 0x0000ddb9, 0x02020800, 0x0010032e, + 0x41783800, 0x58f44003, 0x0401f811, 0x04020008, + 0x0401fec8, 0x42000800, 0x00000001, 0x497a6028, + 0x5c01f000, 0x5c01e800, 0x1c01f000, 0x0401fec1, + 0x42000800, 0x00000011, 0x0401f7f9, 0x4c040000, + 0x0401fea2, 0x5c000800, 0x0401f7f5, 0x4803c856, + 0x401c2000, 0x41781800, 0x4c200000, 0x0401ff88, + 0x5c004000, 0x0402002a, 0x40202000, 0x42001800, + 0x00000001, 0x0401ff82, 0x04020025, 0x0401fe62, + 0x40082800, 0x82f43400, 0x00000004, 0x50182000, + 0x40100000, 0x801c0580, 0x04000005, 0x42001800, + 0x00000001, 0x0401ff76, 0x04020019, 0x82183400, + 0x00000002, 0x80142840, 0x040207f5, 0x80f9f1c0, + 0x04000012, 0x58f42a02, 0x82142c80, 0x00000007, + 0x82f83400, 0x00000002, 0x50182000, 0x40100000, 0x801c0580, 0x04000005, 0x42001800, 0x00000001, - 0x0401ff76, 0x04020019, 0x82183400, 0x00000002, - 0x80142840, 0x040207f5, 0x80f9f1c0, 0x04000012, - 0x58f42a02, 0x82142c80, 0x00000007, 0x82f83400, - 0x00000002, 0x50182000, 0x40100000, 0x801c0580, - 0x04000005, 0x42001800, 0x00000001, 0x0401ff63, - 0x04020006, 0x82183400, 0x00000002, 0x80142840, - 0x040207f5, 0x1c01f000, 0x82000540, 0x00000001, - 0x0401f7fd, 0x0201f800, 0x0010032e, 0x58380a05, - 0x82040d00, 0x000000ff, 0x82040580, 0x0000001b, - 0x04000004, 0x82040580, 0x0000002b, 0x040207f6, + 0x0401ff63, 0x04020006, 0x82183400, 0x00000002, + 0x80142840, 0x040207f5, 0x1c01f000, 0x82000540, + 0x00000001, 0x0401f7fd, 0x0201f800, 0x0010032e, + 0x58380a05, 0x82040d00, 0x000000ff, 0x82040580, + 0x0000001b, 0x04000004, 0x82040580, 0x0000002b, + 0x040207f6, 0x50200000, 0x80387c00, 0x583c2800, + 0x583c2001, 0x583c1002, 0x592c0a08, 0x58383010, + 0x59303808, 0x497a6013, 0x497a6014, 0x0201f000, + 0x0002015d, 0x592c020b, 0x8c000502, 0x040007e7, + 0x497a6013, 0x0201f800, 0x00101105, 0x412c7000, + 0x59300008, 0x84000556, 0x48026008, 0x82040500, + 0x0000000f, 0x82000c00, 0x00100f0b, 0x50044000, + 0x80204000, 0x50200000, 0x80187c00, 0x583c2800, + 0x583c2001, 0x583c1002, 0x58380a08, 0x58384c09, + 0x40187000, 0x58183008, 0x59303808, 0x497a6014, + 0x0201f000, 0x0002015d, 0x592c040b, 0x8c000500, + 0x02000800, 0x0010032e, 0x592c000e, 0x48026013, + 0x0401f7e1, 0x58380208, 0x8c000502, 0x040007c3, 0x50200000, 0x80387c00, 0x583c2800, 0x583c2001, - 0x583c1002, 0x592c0a08, 0x58383010, 0x59303808, - 0x497a6013, 0x497a6014, 0x0201f000, 0x0002015d, - 0x592c020b, 0x8c000502, 0x040007e7, 0x497a6013, - 0x0201f800, 0x00101104, 0x412c7000, 0x59300008, - 0x84000556, 0x48026008, 0x82040500, 0x0000000f, - 0x82000c00, 0x00100f0a, 0x50044000, 0x80204000, - 0x50200000, 0x80187c00, 0x583c2800, 0x583c2001, - 0x583c1002, 0x58380a08, 0x58384c09, 0x40187000, - 0x58183008, 0x59303808, 0x497a6014, 0x0201f000, - 0x0002015d, 0x592c040b, 0x8c000500, 0x02000800, - 0x0010032e, 0x592c000e, 0x48026013, 0x0401f7e1, - 0x58380208, 0x8c000502, 0x040007c3, 0x50200000, - 0x80387c00, 0x583c2800, 0x583c2001, 0x58380405, - 0x80001540, 0x04020002, 0x58381408, 0x58c83401, - 0x58380c09, 0x59303808, 0x497a6013, 0x497a6014, - 0x0201f000, 0x0002015d, 0x592c0409, 0x8c000502, - 0x040007b1, 0x592c040a, 0x80000540, 0x040007ae, - 0x82000c80, 0x00000002, 0x04001011, 0x58380001, - 0x80007540, 0x02000800, 0x0010032e, 0x58380205, - 0x82000500, 0x0000000f, 0x82000400, 0x00100f0a, - 0x50004000, 0x40040000, 0x800409c0, 0x04000005, - 0x82040c80, 0x00000005, 0x040217f1, 0x80204400, - 0x50200000, 0x80387c00, 0x583c2800, 0x583c2001, - 0x583c1002, 0x592c0a08, 0x592c4c09, 0x592c300e, - 0x59303808, 0x497a6013, 0x497a6014, 0x4816600f, - 0x48126010, 0x480a6011, 0x481a6012, 0x80040840, - 0x4806600e, 0x02000000, 0x00020165, 0x80204000, - 0x50201800, 0x800c19c0, 0x0402000c, 0x58380001, - 0x80007540, 0x02000800, 0x0010032e, 0x58380205, - 0x82000500, 0x0000000f, 0x82000400, 0x00100f0a, - 0x50004000, 0x50201800, 0x483a600c, 0x480e600b, - 0x4822600d, 0x0201f000, 0x00020165, 0x4803c856, - 0x592c0209, 0x8c00051e, 0x04020017, 0x50200000, - 0x80306c00, 0x40240000, 0x0c01f001, 0x00100c17, - 0x00100c17, 0x00100c20, 0x00100c17, 0x00100c17, - 0x00100c17, 0x00100c17, 0x00100c17, 0x00100c20, - 0x00100c17, 0x00100c20, 0x00100c17, 0x00100c17, - 0x00100c20, 0x00100c17, 0x00100c17, 0x0201f800, - 0x0010032e, 0x8400051e, 0x48025a09, 0x50200000, - 0x80306c00, 0x58343801, 0x481e6010, 0x0401f007, - 0x58341802, 0x58342800, 0x58343801, 0x480e6011, - 0x4816600f, 0x481e6010, 0x0401f2c2, 0x4933c857, - 0x5931f809, 0x59301006, 0x800811c0, 0x0400000b, - 0x41780800, 0x42000000, 0x0000000a, 0x0201f800, - 0x00106a98, 0x80080102, 0x04020002, 0x84001542, - 0x80081040, 0x4809fc07, 0x4a026006, 0x00000002, - 0x592c040a, 0x82000500, 0x00000008, 0x0400000b, - 0x0401f839, 0x59300203, 0x82000580, 0x00000004, - 0x04020005, 0x42027000, 0x00000048, 0x0201f800, - 0x00020bc1, 0x1c01f000, 0x4cfc0000, 0x58fc0205, - 0x82000500, 0x000000ff, 0x82000580, 0x00000048, - 0x04020009, 0x58fc0409, 0x8c000500, 0x04000006, - 0x58fc080c, 0x8c040d16, 0x0400001f, 0x58fc0008, - 0x0401f00a, 0x58fc0409, 0x8c000512, 0x0402001c, - 0x58fc0c0a, 0x8c040d16, 0x04020003, 0x5c01f800, - 0x1c01f000, 0x58fc000b, 0x4c000000, 0x4d2c0000, - 0x40fe5800, 0x59300012, 0x0201f800, 0x0010a0a5, - 0x5c025800, 0x80000d40, 0x5c000000, 0x80040580, - 0x04020009, 0x59300008, 0x84000500, 0x48026008, - 0x42027000, 0x00000048, 0x5c01f800, 0x0201f000, - 0x00020bc1, 0x5c01f800, 0x1c01f000, 0x58fdf80a, - 0x0401f7e4, 0x5c000000, 0x4c000000, 0x4803c857, - 0x4933c857, 0x59b808ea, 0x82040d00, 0x00000007, - 0x82040580, 0x00000000, 0x04000025, 0x82040580, - 0x00000003, 0x04000022, 0x59300407, 0x4c000000, - 0x4a026407, 0x00000000, 0x42003000, 0x00000041, - 0x4a0370e5, 0x00003000, 0x42000000, 0x50000000, - 0x41300800, 0x4c180000, 0x0401fc3b, 0x5c003000, - 0x0400000e, 0x42000000, 0x0000001e, 0x80000040, - 0x040207ff, 0x80183040, 0x040207f4, 0x42000000, - 0x40000000, 0x41300800, 0x0401fc2f, 0x59880146, - 0x80000000, 0x48031146, 0x4a0370e5, 0x00002000, - 0x5c000000, 0x48026407, 0x1c01f000, 0x59300008, - 0x84000500, 0x48026008, 0x0401f7fc, 0x59c00007, - 0x4a038006, 0x30000000, 0x40000000, 0x59c00007, - 0x8c00050a, 0x040207fe, 0x1c01f000, 0x5c000000, - 0x4c000000, 0x4803c857, 0x42000800, 0x00000001, - 0x0201f800, 0x00101bda, 0x4dc00000, 0x4a0370e8, - 0x00000000, 0x42038000, 0x00007720, 0x0401ffec, - 0x42038000, 0x00007700, 0x0401ffe9, 0x0201f800, - 0x00104fc6, 0x04020017, 0x4a038891, 0x0000ffff, - 0x497b8880, 0x4ce80000, 0x4201d000, 0x00000016, - 0x0201f800, 0x0010645c, 0x497b8892, 0x4201d000, - 0x00000016, 0x0201f800, 0x0010645c, 0x5c01d000, - 0x42000000, 0x0010cc66, 0x0201f800, 0x0010bc88, - 0x0401f812, 0x5c038000, 0x0201f000, 0x001050f2, - 0x0401f830, 0x4c080000, 0x4c140000, 0x42000000, - 0x0010cc67, 0x0201f800, 0x0010bc88, 0x0401f807, - 0x5c002800, 0x5c001000, 0x48178892, 0x480b8880, - 0x5c038000, 0x1c01f000, 0x496fc857, 0x836c0580, - 0x00000003, 0x0402000b, 0x4c080000, 0x4c0c0000, - 0x42001000, 0x00008048, 0x42001800, 0x0000ffff, - 0x0201f800, 0x001038bc, 0x5c001800, 0x5c001000, - 0x42000800, 0x0000003c, 0x0201f800, 0x001012d1, - 0x59a8006d, 0x80000540, 0x04000005, 0x59a8106e, - 0x800811c0, 0x02020800, 0x00101b45, 0x4a038891, - 0x0000ffff, 0x4a03900d, 0x00000040, 0x0201f800, - 0x00100698, 0x4a0370e8, 0x00000001, 0x1c01f000, - 0x5c000000, 0x4c000000, 0x4803c857, 0x59c41080, - 0x497b8880, 0x4ce80000, 0x4201d000, 0x00000016, - 0x4c080000, 0x0201f800, 0x0010645c, 0x5c001000, - 0x5c01d000, 0x59c42892, 0x497b8892, 0x0201f800, - 0x00104fc6, 0x04020002, 0x1c01f000, 0x42002000, - 0x00000260, 0x59c418a4, 0x820c1d00, 0x0000000f, - 0x820c0580, 0x00000000, 0x04000010, 0x59c41805, - 0x820c1d00, 0x00000001, 0x0402000e, 0x59c418a4, - 0x820c1d00, 0x0000000f, 0x820c0480, 0x00000007, - 0x04001004, 0x820c0480, 0x0000000c, 0x04001003, - 0x80102040, 0x040207ec, 0x497b8891, 0x1c01f000, - 0x4c100000, 0x42002000, 0x00000019, 0x4a038805, - 0x00000001, 0x0201f800, 0x00101935, 0x59c41805, - 0x820c1d00, 0x00000001, 0x04000005, 0x80102040, - 0x040207f7, 0x5c002000, 0x0401f7f0, 0x5c002000, - 0x0401f7ec, 0x4803c856, 0x1c01f000, 0x00100d57, - 0x00100d57, 0x00100d57, 0x00100d7b, 0x00100d57, - 0x00100d57, 0x00100d57, 0x00100d57, 0x00100d57, - 0x00100d7b, 0x00100d57, 0x00100d59, 0x00100d57, - 0x00100d57, 0x00100d57, 0x00100d57, 0x0201f800, - 0x0010032e, 0x82040580, 0x0000001b, 0x0400001a, - 0x82040580, 0x0000002b, 0x04000017, 0x82040580, - 0x0000003b, 0x02020800, 0x0010032e, 0x592c020b, - 0x8c000500, 0x0400008d, 0x592c1a08, 0x82040500, - 0x0000000f, 0x82000400, 0x00100f0a, 0x50001000, - 0x50080000, 0x59302014, 0x4802600b, 0x492e600c, - 0x480a600d, 0x480e600e, 0x48126013, 0x5c025800, - 0x1c01f000, 0x592c0010, 0x48026012, 0x592c0011, - 0x48026014, 0x592c1a08, 0x0401f7ed, 0x82040500, - 0x0000000f, 0x82000400, 0x00100f0a, 0x50001000, - 0x50080000, 0x592c1a08, 0x4802600b, 0x492e600c, - 0x480a600d, 0x480e600e, 0x497a6013, 0x0401f7ec, - 0x8c040d00, 0x04020069, 0x82040d00, 0x00000080, - 0x04000066, 0x0201f000, 0x00020178, 0x0401fb75, - 0x843c7d4e, 0x0201f000, 0x00020185, 0x0401fb71, - 0x843c7d4e, 0x0201f000, 0x000201a0, 0x59300014, - 0x59301013, 0x80080580, 0x04020018, 0x59300004, - 0x8c00050e, 0x0400000a, 0x59300014, 0x80000540, - 0x04020004, 0x42007800, 0x800000a5, 0x0401f04c, - 0x42007800, 0x80000085, 0x0401f003, 0x42007800, - 0x80000005, 0x592c1209, 0x82080500, 0xffff7fff, - 0x48025a09, 0x8c08151e, 0x04020041, 0x823c7d40, - 0x00000020, 0x0401f03e, 0x480bc857, 0x42000000, - 0x0010cc13, 0x0201f800, 0x0010bc88, 0x59302014, - 0x59300415, 0x4803c857, 0x8c000514, 0x04020011, - 0x599c1819, 0x8c0c1d12, 0x0400000b, 0x592c0810, - 0x59300016, 0x80040c80, 0x04000005, 0x04001004, - 0x80040000, 0x80140480, 0x0400100a, 0x0201f800, - 0x00107d3d, 0x820c1d40, 0x00000001, 0x0401f026, - 0x84000514, 0x48026415, 0x48126016, 0x4813c857, - 0x0401f95a, 0x04020020, 0x59300004, 0x8c00050e, - 0x04000004, 0x42007800, 0x80000085, 0x0401f003, - 0x42007800, 0x80000005, 0x5930500e, 0x592c0209, - 0x4803c857, 0x8c00051e, 0x04020005, 0x823c7d40, - 0x00000020, 0x5930400d, 0x0401f004, 0x8400051e, - 0x48025a09, 0x0401f903, 0x50201800, 0x480e600b, - 0x4832600c, 0x4822600d, 0x482a600e, 0x480fc857, - 0x4833c857, 0x4823c857, 0x482bc857, 0x80000580, - 0x483e6004, 0x1c01f000, 0x0201f800, 0x0010032e, - 0x4933c857, 0x4d2c0000, 0x59900004, 0x81300580, - 0x02020800, 0x0010032e, 0x0201f800, 0x00109667, - 0x02000800, 0x0010032e, 0x59325809, 0x4d3c0000, - 0x4d400000, 0x59300004, 0x4803c857, 0x4c000000, - 0x0201f800, 0x00106e75, 0x0201f800, 0x00106b6c, - 0x5c000000, 0x8c000516, 0x04000011, 0x592c0010, - 0x4803c857, 0x48025808, 0x41780800, 0x42028000, - 0x00000002, 0x0201f800, 0x00104cf5, 0x4a025c07, - 0x0000ffff, 0x492fc857, 0x0201f800, 0x000203ef, - 0x0201f800, 0x00107cbe, 0x0401f018, 0x4a026203, - 0x00000002, 0x592c0209, 0x8c000512, 0x04020004, - 0x592c0209, 0x8400054e, 0x48025a09, 0x59300407, - 0x82000580, 0x00000006, 0x04020009, 0x811800ca, - 0x81c80c00, 0x58040939, 0x592c000e, 0x80040480, - 0x592c0810, 0x80040480, 0x4802580c, 0x417a7800, - 0x0201f800, 0x001091f1, 0x5c028000, 0x5c027800, - 0x5c025800, 0x1c01f000, 0x4933c857, 0x4d2c0000, - 0x59900004, 0x81300580, 0x02020800, 0x0010032e, - 0x0201f800, 0x00109667, 0x02000800, 0x0010032e, - 0x59325809, 0x592c0209, 0x84000540, 0x48025a09, - 0x0401f7bb, 0x491bc857, 0x4dd00000, 0x4c580000, - 0x41780800, 0x8007a0ca, 0x83d3a400, 0x00007600, - 0x4200b000, 0x000007d0, 0x599c0019, 0x8c000506, - 0x04020003, 0x4200b000, 0x000003e8, 0x4a03a005, - 0x80000002, 0x0402400d, 0x4c040000, 0x02004800, - 0x00020a80, 0x5c000800, 0x42000000, 0x00001000, - 0x50000000, 0x82000480, 0x24320001, 0x04001003, - 0x8058b040, 0x04000016, 0x59d01006, 0x82080500, - 0x00006000, 0x82000580, 0x00006000, 0x04000007, - 0x8c08151e, 0x040007ec, 0x59d01006, 0x82080500, - 0x00006000, 0x040207e8, 0x83d3a400, 0x00000020, - 0x80040800, 0x82040480, 0x00000005, 0x040017d9, - 0x5c00b000, 0x5c03a000, 0x1c01f000, 0x41180000, - 0x80040580, 0x04000008, 0x42003000, 0x0010c89b, - 0x58180401, 0x8c000504, 0x040007f0, 0x850e1d6e, - 0x0401f7ee, 0x4a03a005, 0x30000000, 0x59d00006, - 0x4a03a005, 0x30000000, 0x59d00006, 0x497ba003, - 0x497ba007, 0x4a03a005, 0xf0000001, 0x42001800, - 0x00008000, 0x59d00006, 0x8c00050a, 0x04000005, - 0x800c1840, 0x040207fc, 0x0201f800, 0x0010032e, - 0x4a03a005, 0xf0000000, 0x59d00006, 0x850e1d2e, - 0x800410c8, 0x82081400, 0x0000bf32, 0x58081804, - 0x800c19c0, 0x040007d1, 0x580c0004, 0x84000576, - 0x48001804, 0x4933c857, 0x0401f7cc, 0x4803c856, - 0x4dd00000, 0x41780800, 0x8007a0ca, 0x83d3a400, - 0x00007600, 0x4a03a005, 0x80000001, 0x59d00006, - 0x83d3a400, 0x00000020, 0x80040800, 0x82040480, - 0x00000005, 0x040017f8, 0x5c03a000, 0x1c01f000, - 0x59d00006, 0x8c00053e, 0x04000031, 0x59902804, - 0x4817c857, 0x801429c0, 0x04000026, 0x5990000a, - 0x5990080b, 0x5990100c, 0x5990180d, 0x4800280b, - 0x4804280c, 0x4808280d, 0x480c280e, 0x59d00000, - 0x59d00801, 0x59d01002, 0x59d01803, 0x59d02004, - 0x4800280f, 0x48042810, 0x48082811, 0x480c2812, - 0x48102813, 0x58140004, 0x8c00050e, 0x04000011, - 0x59d0000b, 0x59d0080c, 0x59d0100d, 0x59d0180e, - 0x4800281e, 0x4804281f, 0x48082820, 0x480c2821, - 0x59d0000f, 0x59d00810, 0x59d01011, 0x59d01812, - 0x48002c22, 0x48042823, 0x48082824, 0x480c2825, - 0x59900006, 0x82000500, 0xffff0000, 0x48032006, - 0x4a03a005, 0x30000000, 0x59d00006, 0x1c01f000, - 0x4803c856, 0x80204000, 0x50200000, 0x80000540, - 0x04000003, 0x80285040, 0x1c01f000, 0x58300001, - 0x80000540, 0x0400000e, 0x4802600c, 0x40006000, - 0x58300205, 0x82000500, 0x0000000f, 0x82000400, - 0x00100f0a, 0x50004000, 0x802041c0, 0x02000800, - 0x0010032e, 0x80285040, 0x1c01f000, 0x40005000, - 0x1c01f000, 0x00000006, 0x00000009, 0x0000000c, - 0x0000000f, 0x00000012, 0x00000000, 0x00000000, - 0x0000000c, 0x00000000, 0x00000000, 0x00000000, - 0x00100f05, 0x00100f04, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00100f05, 0x00100f04, - 0x00100f01, 0x00100f05, 0x00100f04, 0x00000000, + 0x58380405, 0x80001540, 0x04020002, 0x58381408, + 0x58c83401, 0x58380c09, 0x59303808, 0x497a6013, + 0x497a6014, 0x0201f000, 0x0002015d, 0x592c0409, + 0x8c000502, 0x040007b1, 0x592c040a, 0x80000540, + 0x040007ae, 0x82000c80, 0x00000002, 0x04001011, + 0x58380001, 0x80007540, 0x02000800, 0x0010032e, + 0x58380205, 0x82000500, 0x0000000f, 0x82000400, + 0x00100f0b, 0x50004000, 0x40040000, 0x800409c0, + 0x04000005, 0x82040c80, 0x00000005, 0x040217f1, + 0x80204400, 0x50200000, 0x80387c00, 0x583c2800, + 0x583c2001, 0x583c1002, 0x592c0a08, 0x592c4c09, + 0x592c300e, 0x59303808, 0x497a6013, 0x497a6014, + 0x4816600f, 0x48126010, 0x480a6011, 0x481a6012, + 0x80040840, 0x4806600e, 0x02000000, 0x00020165, + 0x80204000, 0x50201800, 0x800c19c0, 0x0402000c, + 0x58380001, 0x80007540, 0x02000800, 0x0010032e, + 0x58380205, 0x82000500, 0x0000000f, 0x82000400, + 0x00100f0b, 0x50004000, 0x50201800, 0x483a600c, + 0x480e600b, 0x4822600d, 0x0201f000, 0x00020165, + 0x4803c856, 0x592c0209, 0x8c00051e, 0x04020017, + 0x50200000, 0x80306c00, 0x40240000, 0x0c01f001, + 0x00100c18, 0x00100c18, 0x00100c21, 0x00100c18, + 0x00100c18, 0x00100c18, 0x00100c18, 0x00100c18, + 0x00100c21, 0x00100c18, 0x00100c21, 0x00100c18, + 0x00100c18, 0x00100c21, 0x00100c18, 0x00100c18, + 0x0201f800, 0x0010032e, 0x8400051e, 0x48025a09, + 0x50200000, 0x80306c00, 0x58343801, 0x481e6010, + 0x0401f007, 0x58341802, 0x58342800, 0x58343801, + 0x480e6011, 0x4816600f, 0x481e6010, 0x0401f2c2, + 0x4933c857, 0x5931f809, 0x59301006, 0x800811c0, + 0x0400000b, 0x41780800, 0x42000000, 0x0000000a, + 0x0201f800, 0x00106c9d, 0x80080102, 0x04020002, + 0x84001542, 0x80081040, 0x4809fc07, 0x4a026006, + 0x00000002, 0x592c040a, 0x82000500, 0x00000008, + 0x0400000b, 0x0401f839, 0x59300203, 0x82000580, + 0x00000004, 0x04020005, 0x42027000, 0x00000048, + 0x0201f800, 0x00020bc1, 0x1c01f000, 0x4cfc0000, + 0x58fc0205, 0x82000500, 0x000000ff, 0x82000580, + 0x00000048, 0x04020009, 0x58fc0409, 0x8c000500, + 0x04000006, 0x58fc080c, 0x8c040d16, 0x0400001f, + 0x58fc0008, 0x0401f00a, 0x58fc0409, 0x8c000512, + 0x0402001c, 0x58fc0c0a, 0x8c040d16, 0x04020003, + 0x5c01f800, 0x1c01f000, 0x58fc000b, 0x4c000000, + 0x4d2c0000, 0x40fe5800, 0x59300012, 0x0201f800, + 0x0010a2e2, 0x5c025800, 0x80000d40, 0x5c000000, + 0x80040580, 0x04020009, 0x59300008, 0x84000500, + 0x48026008, 0x42027000, 0x00000048, 0x5c01f800, + 0x0201f000, 0x00020bc1, 0x5c01f800, 0x1c01f000, + 0x58fdf80a, 0x0401f7e4, 0x5c000000, 0x4c000000, + 0x4803c857, 0x4933c857, 0x59b808ea, 0x82040d00, + 0x00000007, 0x82040580, 0x00000000, 0x04000025, + 0x82040580, 0x00000003, 0x04000022, 0x59300407, + 0x4c000000, 0x4a026407, 0x00000000, 0x42003000, + 0x00000041, 0x4a0370e5, 0x00003000, 0x42000000, + 0x50000000, 0x41300800, 0x4c180000, 0x0401fc38, + 0x5c003000, 0x0400000e, 0x42000000, 0x0000001e, + 0x80000040, 0x040207ff, 0x80183040, 0x040207f4, + 0x42000000, 0x40000000, 0x41300800, 0x0401fc2c, + 0x59880146, 0x80000000, 0x48031146, 0x4a0370e5, + 0x00002000, 0x5c000000, 0x48026407, 0x1c01f000, + 0x59300008, 0x84000500, 0x48026008, 0x0401f7fc, + 0x59c00007, 0x4a038006, 0x30000000, 0x40000000, + 0x59c00007, 0x8c00050a, 0x040207fe, 0x1c01f000, + 0x5c000000, 0x4c000000, 0x4803c857, 0x42000800, + 0x00000001, 0x0201f800, 0x00101bdf, 0x4dc00000, + 0x4a0370e8, 0x00000000, 0x42038000, 0x00007720, + 0x0401ffec, 0x42038000, 0x00007700, 0x0401ffe9, + 0x0201f800, 0x001050f7, 0x04020017, 0x4a038891, + 0x0000ffff, 0x497b8880, 0x4ce80000, 0x4201d000, + 0x00000016, 0x0201f800, 0x00106661, 0x497b8892, + 0x4201d000, 0x00000016, 0x0201f800, 0x00106661, + 0x5c01d000, 0x42000000, 0x0010cf66, 0x0201f800, + 0x0010bfb3, 0x0401f812, 0x5c038000, 0x0201f000, + 0x00105223, 0x0401f830, 0x4c080000, 0x4c140000, + 0x42000000, 0x0010cf67, 0x0201f800, 0x0010bfb3, + 0x0401f807, 0x5c002800, 0x5c001000, 0x48178892, + 0x480b8880, 0x5c038000, 0x1c01f000, 0x496fc857, + 0x836c0580, 0x00000003, 0x0402000b, 0x4c080000, + 0x4c0c0000, 0x42001000, 0x00008048, 0x42001800, + 0x0000ffff, 0x0201f800, 0x001039ac, 0x5c001800, + 0x5c001000, 0x42000800, 0x0000003c, 0x0201f800, + 0x001012d2, 0x59a8006d, 0x80000540, 0x04000005, + 0x59a8106e, 0x800811c0, 0x02020800, 0x00101b4a, + 0x4a038891, 0x0000ffff, 0x4a03900d, 0x00000040, + 0x0201f800, 0x00100698, 0x4a0370e8, 0x00000001, + 0x1c01f000, 0x5c000000, 0x4c000000, 0x4803c857, + 0x59c41080, 0x497b8880, 0x4ce80000, 0x4201d000, + 0x00000016, 0x4c080000, 0x0201f800, 0x00106661, + 0x5c001000, 0x5c01d000, 0x59c42892, 0x497b8892, + 0x0201f800, 0x001050f7, 0x04020002, 0x1c01f000, + 0x42002000, 0x00000260, 0x59c418a4, 0x820c1d00, + 0x0000000f, 0x820c0580, 0x00000000, 0x04000010, + 0x59c41805, 0x820c1d00, 0x00000001, 0x0402000e, + 0x59c418a4, 0x820c1d00, 0x0000000f, 0x820c0480, + 0x00000007, 0x04001004, 0x820c0480, 0x0000000c, + 0x04001003, 0x80102040, 0x040207ec, 0x497b8891, + 0x1c01f000, 0x4c100000, 0x42002000, 0x00000019, + 0x4a038805, 0x00000001, 0x0201f800, 0x0010193a, + 0x59c41805, 0x820c1d00, 0x00000001, 0x04000005, + 0x80102040, 0x040207f7, 0x5c002000, 0x0401f7f0, + 0x5c002000, 0x0401f7ec, 0x4803c856, 0x1c01f000, + 0x00100d58, 0x00100d58, 0x00100d58, 0x00100d7c, + 0x00100d58, 0x00100d58, 0x00100d58, 0x00100d58, + 0x00100d58, 0x00100d7c, 0x00100d58, 0x00100d5a, + 0x00100d58, 0x00100d58, 0x00100d58, 0x00100d58, + 0x0201f800, 0x0010032e, 0x82040580, 0x0000001b, + 0x0400001a, 0x82040580, 0x0000002b, 0x04000017, + 0x82040580, 0x0000003b, 0x02020800, 0x0010032e, + 0x592c020b, 0x8c000500, 0x0400008d, 0x592c1a08, + 0x82040500, 0x0000000f, 0x82000400, 0x00100f0b, + 0x50001000, 0x50080000, 0x59302014, 0x4802600b, + 0x492e600c, 0x480a600d, 0x480e600e, 0x48126013, + 0x5c025800, 0x1c01f000, 0x592c0010, 0x48026012, + 0x592c0011, 0x48026014, 0x592c1a08, 0x0401f7ed, + 0x82040500, 0x0000000f, 0x82000400, 0x00100f0b, + 0x50001000, 0x50080000, 0x592c1a08, 0x4802600b, + 0x492e600c, 0x480a600d, 0x480e600e, 0x497a6013, + 0x0401f7ec, 0x8c040d00, 0x04020069, 0x82040d00, + 0x00000080, 0x04000066, 0x0201f000, 0x00020178, + 0x0401fb75, 0x843c7d4e, 0x0201f000, 0x00020185, + 0x0401fb71, 0x843c7d4e, 0x0201f000, 0x000201a0, + 0x59300014, 0x59301013, 0x80080580, 0x04020018, + 0x59300004, 0x8c00050e, 0x0400000a, 0x59300014, + 0x80000540, 0x04020004, 0x42007800, 0x800000a5, + 0x0401f04c, 0x42007800, 0x80000085, 0x0401f003, + 0x42007800, 0x80000005, 0x592c1209, 0x82080500, + 0xffff7fff, 0x48025a09, 0x8c08151e, 0x04020041, + 0x823c7d40, 0x00000020, 0x0401f03e, 0x480bc857, + 0x42000000, 0x0010cf13, 0x0201f800, 0x0010bfb3, + 0x59302014, 0x59300415, 0x4803c857, 0x8c000514, + 0x04020011, 0x599c1819, 0x8c0c1d12, 0x0400000b, + 0x592c0810, 0x59300016, 0x80040c80, 0x04000005, + 0x04001004, 0x80040000, 0x80140480, 0x0400100a, + 0x0201f800, 0x00107f37, 0x820c1d40, 0x00000001, + 0x0401f026, 0x84000514, 0x48026415, 0x48126016, + 0x4813c857, 0x0401f95a, 0x04020020, 0x59300004, + 0x8c00050e, 0x04000004, 0x42007800, 0x80000085, + 0x0401f003, 0x42007800, 0x80000005, 0x5930500e, + 0x592c0209, 0x4803c857, 0x8c00051e, 0x04020005, + 0x823c7d40, 0x00000020, 0x5930400d, 0x0401f004, + 0x8400051e, 0x48025a09, 0x0401f903, 0x50201800, + 0x480e600b, 0x4832600c, 0x4822600d, 0x482a600e, + 0x480fc857, 0x4833c857, 0x4823c857, 0x482bc857, + 0x80000580, 0x483e6004, 0x1c01f000, 0x0201f800, + 0x0010032e, 0x4933c857, 0x4d2c0000, 0x59900004, + 0x81300580, 0x02020800, 0x0010032e, 0x0201f800, + 0x0010989f, 0x02000800, 0x0010032e, 0x59325809, + 0x4d3c0000, 0x4d400000, 0x59300004, 0x4803c857, + 0x4c000000, 0x0201f800, 0x0010707a, 0x0201f800, + 0x00106d71, 0x5c000000, 0x8c000516, 0x04000011, + 0x592c0010, 0x4803c857, 0x48025808, 0x41780800, + 0x42028000, 0x00000002, 0x0201f800, 0x00104e1a, + 0x4a025c07, 0x0000ffff, 0x492fc857, 0x0201f800, + 0x000203ef, 0x0201f800, 0x00107eb4, 0x0401f018, + 0x4a026203, 0x00000002, 0x592c0209, 0x8c000512, + 0x04020004, 0x592c0209, 0x8400054e, 0x48025a09, + 0x59300407, 0x82000580, 0x00000006, 0x04020009, + 0x811800ca, 0x81c80c00, 0x58040939, 0x592c000e, + 0x80040480, 0x592c0810, 0x80040480, 0x4802580c, + 0x417a7800, 0x0201f800, 0x00109425, 0x5c028000, + 0x5c027800, 0x5c025800, 0x1c01f000, 0x4933c857, + 0x4d2c0000, 0x59900004, 0x81300580, 0x02020800, + 0x0010032e, 0x0201f800, 0x0010989f, 0x02000800, + 0x0010032e, 0x59325809, 0x592c0209, 0x84000540, + 0x48025a09, 0x0401f7bb, 0x491bc857, 0x4dd00000, + 0x4c580000, 0x41780800, 0x8007a0ca, 0x83d3a400, + 0x00007600, 0x4200b000, 0x000007d0, 0x599c0019, + 0x8c000506, 0x04020003, 0x4200b000, 0x000003e8, + 0x4a03a005, 0x80000002, 0x0402400d, 0x4c040000, + 0x02004800, 0x00020a80, 0x5c000800, 0x42000000, + 0x00001000, 0x50000000, 0x82000480, 0x24320001, + 0x04001003, 0x8058b040, 0x04000016, 0x59d01006, + 0x82080500, 0x00006000, 0x82000580, 0x00006000, + 0x04000007, 0x8c08151e, 0x040007ec, 0x59d01006, + 0x82080500, 0x00006000, 0x040207e8, 0x83d3a400, + 0x00000020, 0x80040800, 0x82040480, 0x00000005, + 0x040017d9, 0x5c00b000, 0x5c03a000, 0x1c01f000, + 0x41180000, 0x80040580, 0x04000008, 0x42003000, + 0x0010cb9b, 0x58180401, 0x8c000504, 0x040007f0, + 0x850e1d6e, 0x0401f7ee, 0x4a03a005, 0x30000000, + 0x59d00006, 0x4a03a005, 0x30000000, 0x59d00006, + 0x497ba003, 0x497ba007, 0x4a03a005, 0xf0000001, + 0x42001800, 0x00008000, 0x59d00006, 0x8c00050a, + 0x04000005, 0x800c1840, 0x040207fc, 0x0201f800, + 0x0010032e, 0x4a03a005, 0xf0000000, 0x59d00006, + 0x850e1d2e, 0x800410c8, 0x82081400, 0x0000bf32, + 0x58081804, 0x800c19c0, 0x040007d1, 0x580c0004, + 0x84000576, 0x48001804, 0x4933c857, 0x0401f7cc, + 0x4803c856, 0x4dd00000, 0x41780800, 0x8007a0ca, + 0x83d3a400, 0x00007600, 0x4a03a005, 0x80000001, + 0x59d00006, 0x83d3a400, 0x00000020, 0x80040800, + 0x82040480, 0x00000005, 0x040017f8, 0x5c03a000, + 0x1c01f000, 0x59d00006, 0x8c00053e, 0x04000031, + 0x59902804, 0x4817c857, 0x801429c0, 0x04000026, + 0x5990000a, 0x5990080b, 0x5990100c, 0x5990180d, + 0x4800280b, 0x4804280c, 0x4808280d, 0x480c280e, + 0x59d00000, 0x59d00801, 0x59d01002, 0x59d01803, + 0x59d02004, 0x4800280f, 0x48042810, 0x48082811, + 0x480c2812, 0x48102813, 0x58140004, 0x8c00050e, + 0x04000011, 0x59d0000b, 0x59d0080c, 0x59d0100d, + 0x59d0180e, 0x4800281e, 0x4804281f, 0x48082820, + 0x480c2821, 0x59d0000f, 0x59d00810, 0x59d01011, + 0x59d01812, 0x48002c22, 0x48042823, 0x48082824, + 0x480c2825, 0x59900006, 0x82000500, 0xffff0000, + 0x48032006, 0x4a03a005, 0x30000000, 0x59d00006, + 0x1c01f000, 0x4803c856, 0x80204000, 0x50200000, + 0x80000540, 0x04000003, 0x80285040, 0x1c01f000, + 0x58300001, 0x80000540, 0x0400000e, 0x4802600c, + 0x40006000, 0x58300205, 0x82000500, 0x0000000f, + 0x82000400, 0x00100f0b, 0x50004000, 0x802041c0, + 0x02000800, 0x0010032e, 0x80285040, 0x1c01f000, + 0x40005000, 0x1c01f000, 0x00000006, 0x00000009, + 0x0000000c, 0x0000000f, 0x00000012, 0x00000000, + 0x00000000, 0x0000000c, 0x00000000, 0x00000000, + 0x00000000, 0x00100f06, 0x00100f05, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00100f06, + 0x00100f05, 0x00100f02, 0x00100f06, 0x00100f05, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00100f05, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00100f05, 0x00100f05, - 0x00100f05, 0x00000000, 0x00100f05, 0x00000000, - 0x00000000, 0x00000000, 0x4813c857, 0x492fc857, - 0x4933c857, 0x48126013, 0x592c5208, 0x802851c0, - 0x04000075, 0x59300008, 0x8c000516, 0x04000020, - 0x592c0205, 0x82000500, 0x0000000f, 0x82000580, - 0x00000002, 0x04020003, 0x592c000e, 0x80102480, - 0x801021c0, 0x41781000, 0x04000012, 0x592c6001, - 0x58300406, 0x58300a07, 0x82000500, 0x00000003, - 0x82000580, 0x00000000, 0x04000003, 0x82040c00, - 0x00000008, 0x40040000, 0x40101000, 0x41780800, - 0x0201f800, 0x00106a98, 0x800409c0, 0x04020056, - 0x0401f9e3, 0x0400004c, 0x0401f053, 0x59300004, - 0x8c00050e, 0x04000007, 0x0401fa73, 0x0402004e, - 0x592c6001, 0x42004000, 0x00100f02, 0x0401f00c, - 0x412c6000, 0x0401f84b, 0x04000009, 0x82240580, - 0x00000002, 0x04020003, 0x5830000e, 0x80102480, - 0x50200000, 0x80004540, 0x0400003f, 0x50200000, - 0x80000540, 0x0400000b, 0x80301400, 0x58080002, - 0x80102480, 0x0400101e, 0x801021c0, 0x04000009, - 0x80285040, 0x04000034, 0x80204000, 0x0401f7f4, - 0x58300001, 0x80006540, 0x0400002f, 0x0401f7e6, - 0x80285040, 0x0400002c, 0x80204000, 0x50200000, - 0x80000540, 0x0402000a, 0x58300001, 0x80006540, - 0x04000025, 0x58300205, 0x82004d00, 0x0000000f, - 0x82244400, 0x00100f0a, 0x50204000, 0x592c0209, - 0x8400051e, 0x48025a09, 0x0401f013, 0x80102080, - 0x80102000, 0x48126011, 0x4813c857, 0x58080802, - 0x40100000, 0x80042480, 0x02001800, 0x0010032e, - 0x58080000, 0x58081801, 0x80102400, 0x4812600f, - 0x480e6010, 0x4813c857, 0x592c0209, 0x8400055e, - 0x48025a09, 0x4833c857, 0x4823c857, 0x482bc857, - 0x4832600c, 0x4822600d, 0x482a600e, 0x80000580, - 0x0401f003, 0x82000540, 0x00000001, 0x1c01f000, - 0x58300205, 0x82004d00, 0x0000000f, 0x82244400, - 0x00100f0a, 0x82000500, 0x000000ff, 0x82000580, - 0x00000029, 0x0402001b, 0x50204000, 0x592c040a, - 0x80000540, 0x02000800, 0x0010032e, 0x82000c80, - 0x00000002, 0x04001011, 0x58300001, 0x80006540, - 0x02000800, 0x0010032e, 0x58300205, 0x82000500, - 0x0000000f, 0x82000400, 0x00100f0a, 0x50004000, - 0x40040000, 0x800409c0, 0x04000006, 0x82040c80, - 0x00000005, 0x040217f1, 0x80204400, 0x80000580, - 0x1c01f000, 0x4c5c0000, 0x59e4b800, 0x485fc857, - 0x825c0500, 0x0000001f, 0x04000004, 0x59e40862, - 0x0201f800, 0x0010032e, 0x825c0500, 0x000000e0, - 0x02000800, 0x0010032e, 0x8c5cbd0e, 0x04020807, - 0x8c5cbd0c, 0x04020809, 0x8c5cbd0a, 0x04020873, - 0x5c00b800, 0x1c01f000, 0x4803c856, 0x4a03c800, - 0x00000080, 0x1c01f000, 0x4d2c0000, 0x42007800, - 0x0010ccb9, 0x583c0003, 0x583c0804, 0x80040540, - 0x0400003a, 0x42000800, 0x0010cb5c, 0x50065800, - 0x592c0002, 0x82000580, 0x00000000, 0x04000033, - 0x59e40050, 0x59e40852, 0x80040480, 0x82000500, - 0xfffffc00, 0x04020005, 0x59e40050, 0x59e40851, - 0x80040800, 0x80040480, 0x82000c80, 0x00000400, - 0x59e40050, 0x80041400, 0x480bc857, 0x50080000, - 0x58080801, 0x80040540, 0x04000020, 0x480bc857, - 0x480a5803, 0x583c1009, 0x583c000a, 0x80080580, - 0x04020005, 0x583c0000, 0x84000550, 0x48007800, - 0x41781000, 0x82080400, 0x00001000, 0x4803c857, - 0x48007809, 0x583c0003, 0x80081400, 0x480bc857, - 0x583c0804, 0x4a025801, 0x00000000, 0x4a025808, - 0x0010102a, 0x480a5806, 0x48065807, 0x59e40053, - 0x800000c4, 0x48025805, 0x412c1000, 0x492fc857, - 0x0201f800, 0x00020016, 0x5c025800, 0x4a03c800, - 0x00000040, 0x1c01f000, 0x42007800, 0x0010cb5c, - 0x503c7800, 0x4a007802, 0x00000100, 0x42007800, - 0x0010ccb9, 0x583c0000, 0x84000552, 0x48007800, - 0x583c100c, 0x480bc857, 0x80081000, 0x4808780c, - 0x583c180b, 0x800c19c0, 0x04000017, 0x82080500, - 0x00000003, 0x04020014, 0x583c0007, 0x4803c857, - 0x583c2008, 0x4813c857, 0x80102000, 0x80100580, - 0x04020002, 0x41782000, 0x48107808, 0x400c0000, - 0x80080580, 0x04020008, 0x4978780c, 0x42001800, - 0x00000001, 0x42001000, 0x00008028, 0x0201f800, - 0x001038bc, 0x1c01f000, 0x4a03c800, 0x00000020, - 0x0201f800, 0x0010bc80, 0x59e40000, 0x1c01f000, - 0x42000000, 0x00001000, 0x50000000, 0x82000480, - 0x24320001, 0x0400100d, 0x0201f800, 0x0010bdab, - 0x04000008, 0x42000000, 0x00007a42, 0x50007000, - 0x8c387520, 0x04020003, 0x84387560, 0x44380000, - 0x4a030000, 0x00000000, 0x1c01f000, 0x4d2c0000, - 0x4a007000, 0x00000000, 0x82040d00, 0x43000f80, - 0x02020800, 0x0010032e, 0x58380008, 0x4803c00f, - 0x4a0370e4, 0x00003000, 0x0201f800, 0x00109aac, - 0x583a5807, 0x592c0000, 0x48007007, 0x800001c0, - 0x04020002, 0x49787006, 0x0201f800, 0x00100594, - 0x5c025800, 0x42007000, 0x00020cf0, 0x0201f000, - 0x0002002c, 0x4803c856, 0x4c3c0000, 0x4d2c0000, - 0x4d300000, 0x58300009, 0x80025d40, 0x02000800, - 0x0010032e, 0x592e6009, 0x4c300000, 0x0201f800, - 0x00109acc, 0x5c006000, 0x02000800, 0x0010032e, - 0x58300002, 0x82000580, 0x00000100, 0x0402000f, - 0x5930780c, 0x583c0001, 0x80007d40, 0x0400000e, - 0x4802600c, 0x82000400, 0x00000002, 0x48006003, - 0x583c0000, 0x48006005, 0x40301000, 0x0201f800, - 0x00020016, 0x0401f00c, 0x4a025a07, 0x00000002, - 0x492fc857, 0x4c300000, 0x0201f800, 0x000203ef, - 0x5c025800, 0x0201f800, 0x00100594, 0x0201f800, - 0x00020b9d, 0x5c026000, 0x5c025800, 0x5c007800, - 0x1c01f000, 0x4803c856, 0x4d2c0000, 0x4d300000, - 0x42007000, 0x00020cf0, 0x58380800, 0x82040580, - 0x00000002, 0x04020011, 0x58386001, 0x58300009, - 0x812c0580, 0x0402000d, 0x59e00004, 0x8c00050e, - 0x040007fe, 0x59dc0006, 0x4803c857, 0x4a03b805, - 0x20000000, 0x8c00053e, 0x040007f8, 0x4a007000, - 0x00000000, 0x0401f019, 0x58386005, 0x40305000, - 0x803061c0, 0x02000800, 0x0010032e, 0x58300009, - 0x812c0580, 0x04000004, 0x40305000, 0x58306000, - 0x0401f7f8, 0x40280000, 0x80300580, 0x58300000, - 0x04000006, 0x48005000, 0x800001c0, 0x04020007, - 0x48287004, 0x0401f005, 0x800001c0, 0x04020002, - 0x48007004, 0x48007005, 0x40325800, 0x0201f800, - 0x00100594, 0x5c026000, 0x5c025800, 0x0201f000, - 0x00020026, 0x59300024, 0x48025811, 0x59300025, - 0x48025812, 0x59300a22, 0x8c040d0c, 0x04020007, - 0x5930001f, 0x59300a20, 0x800408e0, 0x80040540, - 0x5930081e, 0x0401f006, 0x5930081f, 0x59300220, - 0x800408e0, 0x80040d40, 0x5930001e, 0x9c0001c0, - 0x9c0409c0, 0x48025813, 0x48065814, 0x1c01f000, - 0x592c0001, 0x80003540, 0x02000800, 0x0010032e, - 0x58180a05, 0x82040d00, 0x000000ff, 0x82040580, - 0x0000004a, 0x02020800, 0x0010032e, 0x592c1012, - 0x592c1a13, 0x58182206, 0x592c2c13, 0x592c0014, - 0x800000e0, 0x80142d40, 0x592c0014, 0x80003920, - 0x58184406, 0x58180207, 0x800048e0, 0x80244d40, - 0x58180008, 0x48026029, 0x8c20450c, 0x04020009, - 0x901c51c0, 0x841401c0, 0x82003d00, 0x0000ffff, - 0x80140120, 0x80280540, 0x9c0029c0, 0x0401f003, - 0x9c1429c0, 0x841c39c0, 0x480a601e, 0x480e601f, - 0x48126420, 0x48126220, 0x48166021, 0x481e6422, - 0x48226222, 0x48266023, 0x1c01f000, 0x592c0001, - 0x80006540, 0x02000800, 0x0010032e, 0x58300a05, - 0x82040d00, 0x000000ff, 0x82040580, 0x0000004a, - 0x02020800, 0x0010032e, 0x58302c06, 0x8c142d06, - 0x58300206, 0x04000002, 0x80080400, 0x48026420, - 0x48026220, 0x58300207, 0x800008e0, 0x80040540, - 0x48026023, 0x8c142d0a, 0x04020004, 0x592c0012, - 0x80080400, 0x4802601e, 0x82142d00, 0x00000003, - 0x58303207, 0x82140580, 0x00000002, 0x04000011, - 0x82140580, 0x00000001, 0x04000009, 0x40080800, - 0x82180400, 0x00000008, 0x40001000, 0x0201f800, - 0x00106a79, 0x40042000, 0x0401f006, 0x40080800, - 0x40181000, 0x0201f800, 0x00106a79, 0x40042000, - 0x4c100000, 0x0401fe43, 0x02000800, 0x0010032e, - 0x5c002000, 0x50200000, 0x80004540, 0x0400005b, - 0x58300a05, 0x82040d00, 0x000000ff, 0x82040580, - 0x0000004a, 0x04020002, 0x80204000, 0x50200000, - 0x80000540, 0x0400000b, 0x80301400, 0x58080002, - 0x80102480, 0x0400101e, 0x801021c0, 0x04000009, - 0x80285040, 0x04000049, 0x80204000, 0x0401f7f4, - 0x58300001, 0x80006540, 0x04000044, 0x0401f7e1, - 0x80285040, 0x04000041, 0x80204000, 0x50200000, - 0x80000540, 0x0402000a, 0x58300001, 0x80006540, - 0x0400003a, 0x58300205, 0x82004d00, 0x0000000f, - 0x82244400, 0x00100f0a, 0x50204000, 0x592c0209, - 0x8400051e, 0x48025a09, 0x0401f011, 0x80102080, - 0x80102000, 0x48126011, 0x4813c857, 0x58080802, - 0x40100000, 0x80042480, 0x02001800, 0x0010032e, - 0x58080000, 0x80102400, 0x4812600f, 0x4813c857, - 0x592c0209, 0x8400055e, 0x48025a09, 0x59300008, - 0x8400052c, 0x48026008, 0x592c1001, 0x58080406, - 0x82000500, 0x00000003, 0x82000580, 0x00000001, - 0x04020014, 0x599c0019, 0x8c00050c, 0x04020011, - 0x82280580, 0x00000001, 0x04020003, 0x59300811, - 0x0401f008, 0x80280840, 0x58080207, 0x40001000, - 0x0201f800, 0x00106a79, 0x59300011, 0x80040c00, - 0x48066012, 0x59300008, 0x8400056c, 0x48026008, + 0x00000000, 0x00100f06, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00100f06, + 0x00100f06, 0x00100f06, 0x00000000, 0x00100f06, + 0x00000000, 0x00000000, 0x00000000, 0x4813c857, + 0x492fc857, 0x4933c857, 0x48126013, 0x592c5208, + 0x802851c0, 0x04000075, 0x59300008, 0x8c000516, + 0x04000020, 0x592c0205, 0x82000500, 0x0000000f, + 0x82000580, 0x00000002, 0x04020003, 0x592c000e, + 0x80102480, 0x801021c0, 0x41781000, 0x04000012, + 0x592c6001, 0x58300406, 0x58300a07, 0x82000500, + 0x00000003, 0x82000580, 0x00000000, 0x04000003, + 0x82040c00, 0x00000008, 0x40040000, 0x40101000, + 0x41780800, 0x0201f800, 0x00106c9d, 0x800409c0, + 0x04020056, 0x0401f9e3, 0x0400004c, 0x0401f053, + 0x59300004, 0x8c00050e, 0x04000007, 0x0401fa73, + 0x0402004e, 0x592c6001, 0x42004000, 0x00100f03, + 0x0401f00c, 0x412c6000, 0x0401f84b, 0x04000009, + 0x82240580, 0x00000002, 0x04020003, 0x5830000e, + 0x80102480, 0x50200000, 0x80004540, 0x0400003f, + 0x50200000, 0x80000540, 0x0400000b, 0x80301400, + 0x58080002, 0x80102480, 0x0400101e, 0x801021c0, + 0x04000009, 0x80285040, 0x04000034, 0x80204000, + 0x0401f7f4, 0x58300001, 0x80006540, 0x0400002f, + 0x0401f7e6, 0x80285040, 0x0400002c, 0x80204000, + 0x50200000, 0x80000540, 0x0402000a, 0x58300001, + 0x80006540, 0x04000025, 0x58300205, 0x82004d00, + 0x0000000f, 0x82244400, 0x00100f0b, 0x50204000, + 0x592c0209, 0x8400051e, 0x48025a09, 0x0401f013, + 0x80102080, 0x80102000, 0x48126011, 0x4813c857, + 0x58080802, 0x40100000, 0x80042480, 0x02001800, + 0x0010032e, 0x58080000, 0x58081801, 0x80102400, + 0x4812600f, 0x480e6010, 0x4813c857, 0x592c0209, + 0x8400055e, 0x48025a09, 0x4833c857, 0x4823c857, + 0x482bc857, 0x4832600c, 0x4822600d, 0x482a600e, 0x80000580, 0x0401f003, 0x82000540, 0x00000001, - 0x1c01f000, 0x592c6801, 0x803469c0, 0x0400001a, - 0x592c0205, 0x82000500, 0x000000ff, 0x82000580, - 0x00000072, 0x04020003, 0x592c000e, 0x80102480, - 0x58347802, 0x58347406, 0x82380500, 0x00000003, - 0x0c01f001, 0x001011e0, 0x001011dd, 0x001011e3, - 0x001011e5, 0x803c00c6, 0x80102400, 0x0401f004, - 0x803c00c6, 0x80102480, 0x04001003, 0x80000580, - 0x1c01f000, 0x82000540, 0x00000001, 0x1c01f000, - 0x4803c856, 0x42000800, 0x0000003c, 0x48079000, - 0x59c80000, 0x80040500, 0x040207fe, 0x497b9005, - 0x4a039035, 0x00880200, 0x59a8000d, 0x800000e0, - 0x4803900e, 0x4a039011, 0x0000002c, 0x4a03900f, - 0x00111264, 0x4a039010, 0x00111264, 0x4a039015, - 0x0000007f, 0x4a03900d, 0x00000040, 0x4a039000, - 0x00001600, 0x1c01f000, 0x59c80007, 0x8c000508, - 0x040208c9, 0x59c80800, 0x8c040d16, 0x04020004, - 0x82000500, 0x00000006, 0x0c01f005, 0x4807c857, - 0x82000500, 0x0000000e, 0x0c01f001, 0x00101221, - 0x0010121f, 0x00105b9e, 0x0010121f, 0x00101223, - 0x0010121f, 0x00101223, 0x00101223, 0x0010121f, - 0x0010121f, 0x0010121f, 0x0010121f, 0x00101223, - 0x0010121f, 0x00101223, 0x0010121f, 0x0201f800, - 0x0010032e, 0x4803c857, 0x1c01f000, 0x59c8080c, - 0x4807c857, 0x82040500, 0x00006000, 0x04000004, - 0x0201f800, 0x0010bc43, 0x0401f006, 0x82040500, - 0x007f0000, 0x04000006, 0x0201f800, 0x0010bc15, - 0x0201f800, 0x00106f81, 0x0401f03c, 0x82040500, - 0x00000014, 0x04000014, 0x0201f800, 0x0010bc72, - 0x836c0580, 0x00000003, 0x0400000d, 0x0201f800, - 0x00104fc6, 0x04000004, 0x0201f800, 0x00104011, - 0x0401f007, 0x4a035014, 0x00000001, 0x4202d800, - 0x00000001, 0x0201f800, 0x00104f20, 0x0401f828, - 0x0401f026, 0x82040500, 0x00001c00, 0x04000005, - 0x0201f800, 0x0010bc51, 0x0401f821, 0x0401f01f, - 0x82040500, 0x00000140, 0x04000005, 0x0201f800, - 0x0010bc64, 0x0401f81a, 0x0401f018, 0x82040500, - 0x00008000, 0x04000015, 0x0201f800, 0x00104fc6, - 0x0400000f, 0x59c400a4, 0x82000500, 0x0000000f, - 0x82000580, 0x0000000b, 0x04020009, 0x4c040000, - 0x0201f800, 0x0010402d, 0x42000000, 0x0000001e, - 0x80000040, 0x040207ff, 0x5c000800, 0x0201f800, - 0x0010bc3c, 0x0401f802, 0x1c01f000, 0x4c0c0000, - 0x4c100000, 0x4c140000, 0x0201f800, 0x00100caf, - 0x5c002800, 0x5c002000, 0x5c001800, 0x1c01f000, - 0x4803c856, 0x59a80804, 0x59a80020, 0x82000500, - 0xfffff000, 0x80040540, 0x48035020, 0x59a80024, - 0x82000500, 0xfffff000, 0x80040540, 0x48035024, - 0x48078882, 0x82041c00, 0x0000000f, 0x800c1908, - 0x820c1c00, 0x00000004, 0x400c2000, 0x901029c0, - 0x82040480, 0x000001e4, 0x04021005, 0x42001000, - 0x00000008, 0x801020c6, 0x0401f031, 0x82040480, - 0x00000230, 0x04021009, 0x42001000, 0x00000007, - 0x801000c2, 0x800000c2, 0x80100400, 0x80100400, - 0x80102400, 0x0401f026, 0x82040480, 0x00000298, - 0x04021008, 0x42001000, 0x00000006, 0x801000c2, - 0x800000c2, 0x80100400, 0x80102400, 0x0401f01c, - 0x82040480, 0x00000328, 0x04021007, 0x42001000, - 0x00000005, 0x801000c2, 0x800000c2, 0x80102400, - 0x0401f013, 0x82040480, 0x00000404, 0x04021005, - 0x42001000, 0x00000004, 0x801020c4, 0x0401f00c, - 0x82040480, 0x0000056c, 0x04021006, 0x42001000, - 0x00000003, 0x801000c2, 0x80102400, 0x0401f004, - 0x42001000, 0x00000002, 0x801020c2, 0x82100480, - 0x00000110, 0x80000080, 0x80002000, 0x800800d0, - 0x80140540, 0x80100540, 0x48039035, 0x48035075, - 0x1c01f000, 0x59c80815, 0x0201f800, 0x00100323, - 0x40680800, 0x82040d00, 0x0000007c, 0x48079000, - 0x59c80000, 0x80040500, 0x040207fe, 0x8c040d04, - 0x04000003, 0x59c80035, 0x48039035, 0x59c80000, - 0x82000540, 0x00001200, 0x48039000, 0x1c01f000, - 0x4803c856, 0x497b88a9, 0x4a038807, 0x00000001, - 0x497b8807, 0x59c40005, 0x48038805, 0x0201f800, - 0x0010181b, 0x4201d000, 0x000001f4, 0x0201f800, - 0x0010645c, 0x497b880e, 0x4200b000, 0x000001f4, - 0x42000000, 0x00000001, 0x42000800, 0x00000014, - 0x0201f800, 0x00101944, 0x42000800, 0x00000014, - 0x0201f800, 0x0010193c, 0x8c040d00, 0x04000005, - 0x8058b040, 0x040207f3, 0x0201f800, 0x0010032e, - 0x4200b000, 0x00000032, 0x42000000, 0x00000001, - 0x42000800, 0x000000b4, 0x0201f800, 0x00101944, - 0x42000800, 0x000000b4, 0x0201f800, 0x0010193c, - 0x8c040d00, 0x04000005, 0x8058b040, 0x040207f3, - 0x0201f800, 0x0010032e, 0x59c40005, 0x48038805, - 0x42000000, 0x00000083, 0x59e00803, 0x82040d00, - 0x00030000, 0x82040d80, 0x00020000, 0x04020003, - 0x42000000, 0x00000089, 0x800008d0, 0x4a035044, - 0x00008900, 0x4a035045, 0x00008900, 0x48075046, - 0x42000800, 0x000000e0, 0x0201f800, 0x00101944, - 0x42000800, 0x000000f4, 0x0201f800, 0x0010193c, - 0x82040500, 0xffffffd1, 0x82000540, 0x00000002, - 0x42000800, 0x000000f4, 0x0201f800, 0x00101944, - 0x42000800, 0x000000a0, 0x0201f800, 0x0010193c, - 0x82040540, 0x00000001, 0x42000800, 0x000000a0, - 0x0201f800, 0x00101944, 0x42000800, 0x00000000, - 0x0201f800, 0x0010193c, 0x82040540, 0x00000001, - 0x42000800, 0x00000000, 0x0201f800, 0x00101944, - 0x4201d000, 0x0001d4c0, 0x0201f800, 0x0010645c, - 0x0401fa6d, 0x4a0388a7, 0x0000f7f7, 0x4a0388a3, - 0x8000403c, 0x4a0388ae, 0x000061a8, 0x4a038801, - 0x00032063, 0x4a038810, 0x00410108, 0x4a038811, - 0x00520608, 0x4a038812, 0x00450320, 0x4a038813, - 0x00440405, 0x4a03881c, 0x004132e1, 0x4a03881d, - 0x004001fe, 0x4a038850, 0x80000108, 0x4a038860, - 0x00000008, 0x4a038870, 0x00000008, 0x4a038851, - 0x80000508, 0x4a038861, 0x00800000, 0x4a038871, - 0x00800000, 0x4a038852, 0x80000708, 0x4a038862, - 0x00800000, 0x4a038872, 0x00800000, 0x4a038853, - 0x80000608, 0x497b8863, 0x4a038873, 0x00800000, - 0x4a038882, 0x00000840, 0x4a0388a5, 0x000000fe, - 0x4a0388a6, 0x0000001e, 0x4a0388b0, 0x00007530, - 0x4a038802, 0x0000ffff, 0x4a038806, 0xc0e00800, - 0x1c01f000, 0x850e1d4e, 0x42000800, 0x00000040, - 0x0201f800, 0x0010193c, 0x82040500, 0xffffffaf, - 0x82000540, 0x00000000, 0x42000800, 0x00000040, - 0x0201f800, 0x00101944, 0x42000800, 0x000000f4, - 0x0201f800, 0x0010193c, 0x4c040000, 0x40040000, - 0x84000548, 0x42000800, 0x000000f4, 0x0201f800, - 0x00101944, 0x42000800, 0x00000000, 0x0201f800, - 0x0010193c, 0x82040500, 0xffffffc1, 0x82000540, - 0x00000038, 0x42000800, 0x00000000, 0x0201f800, - 0x00101944, 0x5c000000, 0x42000800, 0x000000f4, - 0x0201f000, 0x00101944, 0x59c40805, 0x59c40006, - 0x80040d00, 0x02000800, 0x0010032e, 0x82040500, - 0x00e00800, 0x04020004, 0x8c040d3e, 0x040208f9, - 0x0401f007, 0x82040500, 0x00800800, 0x02020800, - 0x00100323, 0x0201f800, 0x0010032e, 0x4c5c0000, - 0x4c600000, 0x59c4b805, 0x59c40006, 0x8c000500, - 0x04000003, 0x8c5cbd00, 0x040200a2, 0x485fc857, - 0x0201f800, 0x00104fc6, 0x0400001e, 0x59c40005, - 0x82000500, 0x000000c0, 0x04000054, 0x0201f800, - 0x00104ff1, 0x04020051, 0x59c40006, 0x82000500, - 0x000000f0, 0x04020004, 0x4a038805, 0x000000c0, - 0x0401f04a, 0x59a80015, 0x84000506, 0x48035015, - 0x42006000, 0xff203fff, 0x42006800, 0x40000000, - 0x0201f800, 0x001041ad, 0x42000800, 0x00000010, - 0x42001000, 0x001040f6, 0x0201f800, 0x00106451, - 0x8c5cbd34, 0x04020039, 0x4a035013, 0x0000aaaa, - 0x59c40005, 0x8c00050c, 0x04020012, 0x8c00050e, - 0x0402001c, 0x8c00050a, 0x04020026, 0x8c000508, - 0x0400000b, 0x59a80011, 0x82000580, 0x00000009, - 0x04020007, 0x42000000, 0x0010cb78, 0x0201f800, - 0x0010bc88, 0x0201f800, 0x0010520c, 0x0401f067, - 0x42000000, 0x0010cb86, 0x0201f800, 0x0010bc88, - 0x41781800, 0x42002000, 0x00000001, 0x0201f800, - 0x00101c41, 0x4a035014, 0x00000000, 0x0401f014, - 0x42000000, 0x0010cb87, 0x0201f800, 0x0010bc88, - 0x41781800, 0x42002000, 0x00000002, 0x0201f800, - 0x00101c41, 0x4a035014, 0x00000002, 0x0401f008, - 0x42000000, 0x0010cb7a, 0x0201f800, 0x0010bc88, - 0x0201f800, 0x0010519a, 0x0401f048, 0x0201f800, - 0x00105277, 0x0401f045, 0x8c5cbd34, 0x04000041, - 0x59c40005, 0x8c00053a, 0x04020005, 0x42000000, - 0x0010cb6e, 0x0201f800, 0x0010bc88, 0x4a038805, - 0x20000000, 0x0201f800, 0x00104fc6, 0x04020015, - 0x4a038805, 0x04000000, 0x59c418a8, 0x42002000, - 0x00000000, 0x0201f800, 0x00101c41, 0x0201f800, - 0x00104fe2, 0x04020008, 0x4a035014, 0x00000001, - 0x4202d800, 0x00000001, 0x0201f800, 0x00104f20, - 0x0401f06d, 0x41780000, 0x0201f800, 0x00104f97, - 0x0201f800, 0x00101a38, 0x4000c000, 0x0201f800, - 0x00101963, 0x836c1580, 0x00000004, 0x0402000c, - 0x8c5cbd00, 0x04020017, 0x8d0e1d06, 0x04020005, - 0x59c410a3, 0x82081540, 0x00000008, 0x480b88a3, - 0x59c41006, 0x84081540, 0x480b8806, 0x4a038805, - 0x04000000, 0x4202d800, 0x00000001, 0x497b5010, - 0x8d0e1d18, 0x04020005, 0x4803c856, 0x850e1d06, - 0x0201f800, 0x00104032, 0x0201f800, 0x001039eb, - 0x8c5cbd3c, 0x04020866, 0x8c5cbd00, 0x04000043, - 0x42000000, 0x0010cc8b, 0x0201f800, 0x0010bc88, - 0x4a038805, 0x00000001, 0x4200b000, 0x00000352, - 0x4201d000, 0x00000064, 0x4c580000, 0x0201f800, - 0x0010645c, 0x0201f800, 0x001018f3, 0x5c00b000, - 0x04000004, 0x8058b040, 0x040207f6, 0x0401f004, - 0x4a038805, 0x00000001, 0x0401f02c, 0x59c40006, - 0x84000500, 0x48038806, 0x59a80878, 0x8c040d3e, - 0x04000005, 0x82040d40, 0x0000000b, 0x48075078, - 0x850e1d48, 0x0201f800, 0x00106faf, 0x497b8880, - 0x59c4000d, 0x8c000506, 0x04000006, 0x42002000, - 0x00000005, 0x0201f800, 0x001052d7, 0x0401f005, - 0x42002000, 0x00000006, 0x0201f800, 0x001052d7, - 0x59c400a3, 0x82000500, 0xfcf8ffff, 0x480388a3, - 0x4a035058, 0x00000002, 0x4202d800, 0x00000004, - 0x4a038805, 0x00000001, 0x0201f800, 0x00100455, - 0x0401fb77, 0x497b5036, 0x4a035043, 0x00000001, - 0x0201f800, 0x00110a6d, 0x825cbd00, 0xbbfffffe, - 0x485f8805, 0x5c00c000, 0x5c00b800, 0x1c01f000, - 0x4d180000, 0x59c41004, 0x480bc857, 0x8c081500, - 0x04000006, 0x4803c856, 0x497b2807, 0x0201f800, - 0x00107075, 0x0401f009, 0x82080500, 0x000001f0, - 0x04000006, 0x4803c856, 0x0201f800, 0x001072b1, - 0x02020800, 0x0010709d, 0x4a038805, 0x80000000, - 0x5c023000, 0x1c01f000, 0x59c408a3, 0x4807c857, - 0x84040d40, 0x480788a3, 0x1c01f000, 0x4d900000, - 0x4dd00000, 0x4da40000, 0x4d140000, 0x4a038805, - 0x40000000, 0x42000000, 0x0010cb80, 0x0201f800, - 0x0010bc88, 0x0201f800, 0x00106c3c, 0x59c41004, - 0x8c081500, 0x04000055, 0x598e600f, 0x497b2807, - 0x813261c0, 0x04000032, 0x59300403, 0x82000580, - 0x00000032, 0x0402002e, 0x5930001d, 0x48038833, - 0x4a038807, 0x00018000, 0x4201d000, 0x00000002, - 0x0201f800, 0x0010645c, 0x497b8807, 0x4201d000, - 0x00000002, 0x0201f800, 0x0010645c, 0x0201f800, - 0x00106ed9, 0x4201d000, 0x00007530, 0x0201f800, - 0x0010645c, 0x59c408a4, 0x82040d00, 0x0000000f, - 0x82040d80, 0x00000000, 0x04000005, 0x42000000, - 0x00200000, 0x0201f800, 0x00101949, 0x0201f800, - 0x00106b8c, 0x59300009, 0x80000540, 0x02000800, - 0x0010032e, 0x40025800, 0x4a025a05, 0x00000103, - 0x5931d82a, 0x58ef400a, 0x58ec0008, 0x0801f800, - 0x0201f800, 0x00020b9d, 0x0401f047, 0x598c0011, - 0x82001c80, 0x000000c8, 0x04021010, 0x80000000, - 0x48031811, 0x59c400a4, 0x82000500, 0x0000000f, - 0x82000580, 0x00000002, 0x04020005, 0x42000000, - 0x00200000, 0x0201f800, 0x00101949, 0x0201f800, - 0x001063f8, 0x0401f034, 0x4933c857, 0x0201f800, - 0x00106ed9, 0x813261c0, 0x0400002f, 0x4a026203, - 0x00000001, 0x42027000, 0x00000027, 0x0201f800, - 0x00020bc1, 0x0401f028, 0x0201f800, 0x001072b1, - 0x04000025, 0x0201f800, 0x001072f1, 0x0201f800, - 0x00106423, 0x59926004, 0x813261c0, 0x04000013, - 0x42001800, 0x000000c8, 0x0201f800, 0x001072a5, - 0x0402000e, 0x59c400a4, 0x82000500, 0x0000000f, - 0x82000580, 0x00000002, 0x04020005, 0x42000000, - 0x00200000, 0x0201f800, 0x00101949, 0x0201f800, - 0x001063fd, 0x0401f00c, 0x4933c857, 0x0201f800, - 0x00106e75, 0x813261c0, 0x04000007, 0x42027000, - 0x0000004f, 0x4a026203, 0x00000003, 0x0201f800, - 0x00020bc1, 0x5c022800, 0x5c034800, 0x5c03a000, - 0x5c032000, 0x0201f000, 0x00106c29, 0x40680000, - 0x810c0d80, 0x8c040d0e, 0x04000053, 0x4803c857, - 0x8d0e1d0e, 0x04000023, 0x850e1d0e, 0x497b5058, - 0x42000000, 0x0010cb67, 0x0201f800, 0x0010bc88, - 0x0201f800, 0x0010bd3c, 0x42001000, 0x00008011, - 0x59c40001, 0x82000500, 0x00018000, 0x82001d80, - 0x00000000, 0x04000009, 0x82001d80, 0x00008000, - 0x04000009, 0x82001d80, 0x00010000, 0x04000009, - 0x0201f800, 0x0010032e, 0x42001800, 0x00000000, - 0x0401f006, 0x42001800, 0x00000001, 0x0401f003, - 0x42001800, 0x00000003, 0x0201f000, 0x001038bc, - 0x850e1d4e, 0x59a80858, 0x800409c0, 0x04020007, - 0x59c4000d, 0x8c000520, 0x04000004, 0x42001800, - 0x00000003, 0x0401f002, 0x40041800, 0x0201f800, - 0x0010bd20, 0x42001000, 0x00008012, 0x59a82878, - 0x8c142d3e, 0x04000006, 0x82142d00, 0x00000003, - 0x0201f800, 0x001038bd, 0x0401f003, 0x0201f800, - 0x001038bc, 0x0201f800, 0x00100455, 0x0201f800, - 0x0010bd90, 0x04020010, 0x4d200000, 0x42024000, - 0x000000ff, 0x0401f856, 0x5c024000, 0x4d400000, - 0x4d3c0000, 0x42028000, 0x00000028, 0x42027800, - 0x00000008, 0x0201f800, 0x0010fbe5, 0x5c027800, - 0x5c028000, 0x1c01f000, 0x4803c857, 0x82000400, - 0x00102057, 0x50000800, 0x82040d00, 0x000000ff, - 0x1c01f000, 0x4803c856, 0x4c580000, 0x4200b000, - 0x00000010, 0x497b88ac, 0x497b88ad, 0x8058b040, - 0x040207fe, 0x5c00b000, 0x1c01f000, 0x40680800, - 0x4807c857, 0x80041908, 0x480f88ac, 0x82042500, - 0x0000000f, 0x82102400, 0x0010bdb6, 0x50102000, - 0x59c400ad, 0x80100540, 0x480f88ac, 0x480388ad, - 0x1c01f000, 0x4807c857, 0x80041908, 0x480f88ac, - 0x82042500, 0x0000000f, 0x82102400, 0x0010bdb6, - 0x50102000, 0x59c400ad, 0x80101500, 0x04000004, - 0x80100580, 0x480f88ac, 0x480388ad, 0x1c01f000, - 0x4803c857, 0x4c080000, 0x4c040000, 0x4c000000, - 0x59c40892, 0x4807c857, 0x80041580, 0x04000010, - 0x80041480, 0x04021007, 0x80081080, 0x80081000, - 0x4008b000, 0x42000000, 0x00000201, 0x0401f004, - 0x4008b000, 0x42000000, 0x00000210, 0x48038886, - 0x8058b040, 0x040207fe, 0x497b8886, 0x5c000000, - 0x5c000800, 0x5c001000, 0x1c01f000, 0x4803c856, - 0x8d0e1d20, 0x04000005, 0x42028000, 0x0000002e, - 0x0201f000, 0x0010ae89, 0x1c01f000, 0x0401f803, - 0x40058800, 0x1c01f000, 0x59a80870, 0x82040500, - 0x00000010, 0x04000004, 0x42000800, 0x00000002, - 0x0401f010, 0x82040500, 0x00000020, 0x42000800, - 0x00000002, 0x0402000b, 0x59c80835, 0x82040d00, - 0x00001f00, 0x80040910, 0x80040800, 0x59a8006d, - 0x80000540, 0x04000003, 0x42000800, 0x0000025a, - 0x4807c857, 0x1c01f000, 0x0401f807, 0x42018800, - 0x00000001, 0x04000003, 0x42018800, 0x00000000, - 0x1c01f000, 0x4c000000, 0x59a80037, 0x4803c857, - 0x82000580, 0x00000000, 0x5c000000, 0x1c01f000, - 0x0401f807, 0x42018800, 0x00000001, 0x04000003, - 0x42018800, 0x00000000, 0x1c01f000, 0x4c000000, - 0x59a80037, 0x4803c857, 0x82000580, 0x00000001, - 0x5c000000, 0x1c01f000, 0x0401f807, 0x42018800, - 0x00000001, 0x04000003, 0x42018800, 0x00000000, - 0x1c01f000, 0x4c000000, 0x59a80037, 0x4803c857, - 0x82000580, 0x00000003, 0x5c000000, 0x1c01f000, - 0x0401f807, 0x42018800, 0x00000001, 0x04000003, - 0x42018800, 0x00000000, 0x1c01f000, 0x4c000000, - 0x59a80037, 0x82000580, 0x00000002, 0x5c000000, - 0x1c01f000, 0x4c000000, 0x4c040000, 0x4c080000, - 0x4c380000, 0x59a8003a, 0x82000c80, 0x00000007, - 0x02021800, 0x0010032e, 0x0c01f806, 0x5c007000, - 0x5c001000, 0x5c000800, 0x5c000000, 0x1c01f000, - 0x0010166b, 0x0010167e, 0x00101692, 0x00101694, - 0x001016bc, 0x001016be, 0x001016c0, 0x4803c856, - 0x4a03503c, 0x00000000, 0x42000000, 0x00000002, - 0x0401fa32, 0x42000000, 0x00000002, 0x0401f9b5, - 0x0401fab1, 0x4803c856, 0x4a03503a, 0x00000006, - 0x42000800, 0x0000001e, 0x42001000, 0x001016c1, - 0x0201f000, 0x00106433, 0x497b503f, 0x4a035034, - 0x00000036, 0x4a035033, 0x0000002a, 0x4803c856, - 0x4a03503c, 0x00000001, 0x42000000, 0x00000002, - 0x0401f9a0, 0x4803c856, 0x4a03503a, 0x00000006, - 0x42000800, 0x0000001e, 0x42001000, 0x001016c1, - 0x0201f000, 0x00106433, 0x0201f800, 0x0010032e, - 0x4a035034, 0x00000036, 0x4803c856, 0x4a03503c, - 0x00000003, 0x42000800, 0x00000000, 0x0401faa1, - 0x82040d00, 0x00000090, 0x82040580, 0x00000090, - 0x04000009, 0x82040580, 0x00000010, 0x04000009, - 0x82040580, 0x00000000, 0x04000009, 0x0201f800, - 0x0010032e, 0x42000000, 0x00000001, 0x0401f006, - 0x42000000, 0x00000000, 0x0401f003, 0x42000000, - 0x00000002, 0x0401f977, 0x497b5040, 0x4803c856, - 0x4a03503a, 0x00000006, 0x42000800, 0x0000001e, - 0x42001000, 0x001016c1, 0x0201f000, 0x00106433, - 0x0201f800, 0x0010032e, 0x0201f800, 0x0010032e, - 0x1c01f000, 0x4c000000, 0x4c040000, 0x4c080000, - 0x4c380000, 0x59a8003c, 0x82000c80, 0x00000007, - 0x02021800, 0x0010032e, 0x0c01f806, 0x5c007000, - 0x5c001000, 0x5c000800, 0x5c000000, 0x1c01f000, - 0x001016d7, 0x001016f6, 0x0010174b, 0x00101762, - 0x00101779, 0x00101782, 0x00101784, 0x0401fa1c, - 0x0402001b, 0x59a81042, 0x42000800, 0x00000000, - 0x0401fa60, 0x82040d00, 0x00000090, 0x82040580, + 0x1c01f000, 0x58300205, 0x82004d00, 0x0000000f, + 0x82244400, 0x00100f0b, 0x82000500, 0x000000ff, + 0x82000580, 0x00000029, 0x0402001b, 0x50204000, + 0x592c040a, 0x80000540, 0x02000800, 0x0010032e, + 0x82000c80, 0x00000002, 0x04001011, 0x58300001, + 0x80006540, 0x02000800, 0x0010032e, 0x58300205, + 0x82000500, 0x0000000f, 0x82000400, 0x00100f0b, + 0x50004000, 0x40040000, 0x800409c0, 0x04000006, + 0x82040c80, 0x00000005, 0x040217f1, 0x80204400, + 0x80000580, 0x1c01f000, 0x4c5c0000, 0x59e4b800, + 0x485fc857, 0x825c0500, 0x0000001f, 0x04000004, + 0x59e40862, 0x0201f800, 0x0010032e, 0x825c0500, + 0x000000e0, 0x02000800, 0x0010032e, 0x8c5cbd0e, + 0x04020807, 0x8c5cbd0c, 0x04020809, 0x8c5cbd0a, + 0x04020873, 0x5c00b800, 0x1c01f000, 0x4803c856, + 0x4a03c800, 0x00000080, 0x1c01f000, 0x4d2c0000, + 0x42007800, 0x0010cfb9, 0x583c0003, 0x583c0804, + 0x80040540, 0x0400003a, 0x42000800, 0x0010ce5c, + 0x50065800, 0x592c0002, 0x82000580, 0x00000000, + 0x04000033, 0x59e40050, 0x59e40852, 0x80040480, + 0x82000500, 0xfffffc00, 0x04020005, 0x59e40050, + 0x59e40851, 0x80040800, 0x80040480, 0x82000c80, + 0x00000400, 0x59e40050, 0x80041400, 0x480bc857, + 0x50080000, 0x58080801, 0x80040540, 0x04000020, + 0x480bc857, 0x480a5803, 0x583c1009, 0x583c000a, + 0x80080580, 0x04020005, 0x583c0000, 0x84000550, + 0x48007800, 0x41781000, 0x82080400, 0x00001000, + 0x4803c857, 0x48007809, 0x583c0003, 0x80081400, + 0x480bc857, 0x583c0804, 0x4a025801, 0x00000000, + 0x4a025808, 0x0010102b, 0x480a5806, 0x48065807, + 0x59e40053, 0x800000c4, 0x48025805, 0x412c1000, + 0x492fc857, 0x0201f800, 0x00020016, 0x5c025800, + 0x4a03c800, 0x00000040, 0x1c01f000, 0x42007800, + 0x0010ce5c, 0x503c7800, 0x4a007802, 0x00000100, + 0x42007800, 0x0010cfb9, 0x583c0000, 0x84000552, + 0x48007800, 0x583c100c, 0x480bc857, 0x80081000, + 0x4808780c, 0x583c180b, 0x800c19c0, 0x04000017, + 0x82080500, 0x00000003, 0x04020014, 0x583c0007, + 0x4803c857, 0x583c2008, 0x4813c857, 0x80102000, + 0x80100580, 0x04020002, 0x41782000, 0x48107808, + 0x400c0000, 0x80080580, 0x04020008, 0x4978780c, + 0x42001800, 0x00000001, 0x42001000, 0x00008028, + 0x0201f800, 0x001039ac, 0x1c01f000, 0x4a03c800, + 0x00000020, 0x0201f800, 0x0010bfab, 0x59e40000, + 0x1c01f000, 0x42000000, 0x00001000, 0x50000000, + 0x82000480, 0x24320001, 0x0400100d, 0x0201f800, + 0x0010c0d6, 0x04000008, 0x42000000, 0x00007a42, + 0x50007000, 0x8c387520, 0x04020003, 0x84387560, + 0x44380000, 0x4a030000, 0x00000000, 0x1c01f000, + 0x4d2c0000, 0x4a007000, 0x00000000, 0x82040d00, + 0x43000f80, 0x02020800, 0x0010032e, 0x58380008, + 0x4803c00f, 0x4a0370e4, 0x00003000, 0x0201f800, + 0x00109ce4, 0x583a5807, 0x592c0000, 0x48007007, + 0x800001c0, 0x04020002, 0x49787006, 0x0201f800, + 0x00100594, 0x5c025800, 0x42007000, 0x00020cf0, + 0x0201f000, 0x0002002c, 0x4803c856, 0x4c3c0000, + 0x4d2c0000, 0x4d300000, 0x58300009, 0x80025d40, + 0x02000800, 0x0010032e, 0x592e6009, 0x4c300000, + 0x0201f800, 0x00109d04, 0x5c006000, 0x02000800, + 0x0010032e, 0x58300002, 0x82000580, 0x00000100, + 0x0402000f, 0x5930780c, 0x583c0001, 0x80007d40, + 0x0400000e, 0x4802600c, 0x82000400, 0x00000002, + 0x48006003, 0x583c0000, 0x48006005, 0x40301000, + 0x0201f800, 0x00020016, 0x0401f00c, 0x4a025a07, + 0x00000002, 0x492fc857, 0x4c300000, 0x0201f800, + 0x000203ef, 0x5c025800, 0x0201f800, 0x00100594, + 0x0201f800, 0x00020b9d, 0x5c026000, 0x5c025800, + 0x5c007800, 0x1c01f000, 0x4803c856, 0x4d2c0000, + 0x4d300000, 0x42007000, 0x00020cf0, 0x58380800, + 0x82040580, 0x00000002, 0x04020011, 0x58386001, + 0x58300009, 0x812c0580, 0x0402000d, 0x59e00004, + 0x8c00050e, 0x040007fe, 0x59dc0006, 0x4803c857, + 0x4a03b805, 0x20000000, 0x8c00053e, 0x040007f8, + 0x4a007000, 0x00000000, 0x0401f019, 0x58386005, + 0x40305000, 0x803061c0, 0x02000800, 0x0010032e, + 0x58300009, 0x812c0580, 0x04000004, 0x40305000, + 0x58306000, 0x0401f7f8, 0x40280000, 0x80300580, + 0x58300000, 0x04000006, 0x48005000, 0x800001c0, + 0x04020007, 0x48287004, 0x0401f005, 0x800001c0, + 0x04020002, 0x48007004, 0x48007005, 0x40325800, + 0x0201f800, 0x00100594, 0x5c026000, 0x5c025800, + 0x0201f000, 0x00020026, 0x59300024, 0x48025811, + 0x59300025, 0x48025812, 0x59300a22, 0x8c040d0c, + 0x04020007, 0x5930001f, 0x59300a20, 0x800408e0, + 0x80040540, 0x5930081e, 0x0401f006, 0x5930081f, + 0x59300220, 0x800408e0, 0x80040d40, 0x5930001e, + 0x9c0001c0, 0x9c0409c0, 0x48025813, 0x48065814, + 0x1c01f000, 0x592c0001, 0x80003540, 0x02000800, + 0x0010032e, 0x58180a05, 0x82040d00, 0x000000ff, + 0x82040580, 0x0000004a, 0x02020800, 0x0010032e, + 0x592c1012, 0x592c1a13, 0x58182206, 0x592c2c13, + 0x592c0014, 0x800000e0, 0x80142d40, 0x592c0014, + 0x80003920, 0x58184406, 0x58180207, 0x800048e0, + 0x80244d40, 0x58180008, 0x48026029, 0x8c20450c, + 0x04020009, 0x901c51c0, 0x841401c0, 0x82003d00, + 0x0000ffff, 0x80140120, 0x80280540, 0x9c0029c0, + 0x0401f003, 0x9c1429c0, 0x841c39c0, 0x480a601e, + 0x480e601f, 0x48126420, 0x48126220, 0x48166021, + 0x481e6422, 0x48226222, 0x48266023, 0x1c01f000, + 0x592c0001, 0x80006540, 0x02000800, 0x0010032e, + 0x58300a05, 0x82040d00, 0x000000ff, 0x82040580, + 0x0000004a, 0x02020800, 0x0010032e, 0x58302c06, + 0x8c142d06, 0x58300206, 0x04000002, 0x80080400, + 0x48026420, 0x48026220, 0x58300207, 0x800008e0, + 0x80040540, 0x48026023, 0x8c142d0a, 0x04020004, + 0x592c0012, 0x80080400, 0x4802601e, 0x82142d00, + 0x00000003, 0x58303207, 0x82140580, 0x00000002, + 0x04000011, 0x82140580, 0x00000001, 0x04000009, + 0x40080800, 0x82180400, 0x00000008, 0x40001000, + 0x0201f800, 0x00106c7e, 0x40042000, 0x0401f006, + 0x40080800, 0x40181000, 0x0201f800, 0x00106c7e, + 0x40042000, 0x4c100000, 0x0401fe43, 0x02000800, + 0x0010032e, 0x5c002000, 0x50200000, 0x80004540, + 0x0400005b, 0x58300a05, 0x82040d00, 0x000000ff, + 0x82040580, 0x0000004a, 0x04020002, 0x80204000, + 0x50200000, 0x80000540, 0x0400000b, 0x80301400, + 0x58080002, 0x80102480, 0x0400101e, 0x801021c0, + 0x04000009, 0x80285040, 0x04000049, 0x80204000, + 0x0401f7f4, 0x58300001, 0x80006540, 0x04000044, + 0x0401f7e1, 0x80285040, 0x04000041, 0x80204000, + 0x50200000, 0x80000540, 0x0402000a, 0x58300001, + 0x80006540, 0x0400003a, 0x58300205, 0x82004d00, + 0x0000000f, 0x82244400, 0x00100f0b, 0x50204000, + 0x592c0209, 0x8400051e, 0x48025a09, 0x0401f011, + 0x80102080, 0x80102000, 0x48126011, 0x4813c857, + 0x58080802, 0x40100000, 0x80042480, 0x02001800, + 0x0010032e, 0x58080000, 0x80102400, 0x4812600f, + 0x4813c857, 0x592c0209, 0x8400055e, 0x48025a09, + 0x59300008, 0x8400052c, 0x48026008, 0x592c1001, + 0x58080406, 0x82000500, 0x00000003, 0x82000580, + 0x00000001, 0x04020014, 0x599c0019, 0x8c00050c, + 0x04020011, 0x82280580, 0x00000001, 0x04020003, + 0x59300811, 0x0401f008, 0x80280840, 0x58080207, + 0x40001000, 0x0201f800, 0x00106c7e, 0x59300011, + 0x80040c00, 0x48066012, 0x59300008, 0x8400056c, + 0x48026008, 0x80000580, 0x0401f003, 0x82000540, + 0x00000001, 0x1c01f000, 0x592c6801, 0x803469c0, + 0x0400001a, 0x592c0205, 0x82000500, 0x000000ff, + 0x82000580, 0x00000072, 0x04020003, 0x592c000e, + 0x80102480, 0x58347802, 0x58347406, 0x82380500, + 0x00000003, 0x0c01f001, 0x001011e1, 0x001011de, + 0x001011e4, 0x001011e6, 0x803c00c6, 0x80102400, + 0x0401f004, 0x803c00c6, 0x80102480, 0x04001003, + 0x80000580, 0x1c01f000, 0x82000540, 0x00000001, + 0x1c01f000, 0x4803c856, 0x42000800, 0x0000003c, + 0x48079000, 0x59c80000, 0x80040500, 0x040207fe, + 0x497b9005, 0x4a039035, 0x00880200, 0x59a8000d, + 0x800000e0, 0x4803900e, 0x4a039011, 0x0000002c, + 0x4a03900f, 0x00111584, 0x4a039010, 0x00111584, + 0x4a039015, 0x0000007f, 0x4a03900d, 0x00000040, + 0x4a039000, 0x00001600, 0x1c01f000, 0x59c80007, + 0x8c000508, 0x040208c9, 0x59c80800, 0x8c040d16, + 0x04020004, 0x82000500, 0x00000006, 0x0c01f005, + 0x4807c857, 0x82000500, 0x0000000e, 0x0c01f001, + 0x00101222, 0x00101220, 0x00105d55, 0x00101220, + 0x00101224, 0x00101220, 0x00101224, 0x00101224, + 0x00101220, 0x00101220, 0x00101220, 0x00101220, + 0x00101224, 0x00101220, 0x00101224, 0x00101220, + 0x0201f800, 0x0010032e, 0x4803c857, 0x1c01f000, + 0x59c8080c, 0x4807c857, 0x82040500, 0x00006000, + 0x04000004, 0x0201f800, 0x0010bf6e, 0x0401f006, + 0x82040500, 0x007f0000, 0x04000006, 0x0201f800, + 0x0010bf40, 0x0201f800, 0x00107186, 0x0401f03c, + 0x82040500, 0x00000014, 0x04000014, 0x0201f800, + 0x0010bf9d, 0x836c0580, 0x00000003, 0x0400000d, + 0x0201f800, 0x001050f7, 0x04000004, 0x0201f800, + 0x0010410a, 0x0401f007, 0x4a035014, 0x00000001, + 0x4202d800, 0x00000001, 0x0201f800, 0x00105051, + 0x0401f828, 0x0401f026, 0x82040500, 0x00001c00, + 0x04000005, 0x0201f800, 0x0010bf7c, 0x0401f821, + 0x0401f01f, 0x82040500, 0x00000140, 0x04000005, + 0x0201f800, 0x0010bf8f, 0x0401f81a, 0x0401f018, + 0x82040500, 0x00008000, 0x04000015, 0x0201f800, + 0x001050f7, 0x0400000f, 0x59c400a4, 0x82000500, + 0x0000000f, 0x82000580, 0x0000000b, 0x04020009, + 0x4c040000, 0x0201f800, 0x00104126, 0x42000000, + 0x0000001e, 0x80000040, 0x040207ff, 0x5c000800, + 0x0201f800, 0x0010bf67, 0x0401f802, 0x1c01f000, + 0x4c0c0000, 0x4c100000, 0x4c140000, 0x0201f800, + 0x00100cb0, 0x5c002800, 0x5c002000, 0x5c001800, + 0x1c01f000, 0x4803c856, 0x59a80804, 0x59a80020, + 0x82000500, 0xfffff000, 0x80040540, 0x48035020, + 0x59a80024, 0x82000500, 0xfffff000, 0x80040540, + 0x48035024, 0x48078882, 0x82041c00, 0x0000000f, + 0x800c1908, 0x820c1c00, 0x00000004, 0x400c2000, + 0x901029c0, 0x82040480, 0x000001e4, 0x04021005, + 0x42001000, 0x00000008, 0x801020c6, 0x0401f031, + 0x82040480, 0x00000230, 0x04021009, 0x42001000, + 0x00000007, 0x801000c2, 0x800000c2, 0x80100400, + 0x80100400, 0x80102400, 0x0401f026, 0x82040480, + 0x00000298, 0x04021008, 0x42001000, 0x00000006, + 0x801000c2, 0x800000c2, 0x80100400, 0x80102400, + 0x0401f01c, 0x82040480, 0x00000328, 0x04021007, + 0x42001000, 0x00000005, 0x801000c2, 0x800000c2, + 0x80102400, 0x0401f013, 0x82040480, 0x00000404, + 0x04021005, 0x42001000, 0x00000004, 0x801020c4, + 0x0401f00c, 0x82040480, 0x0000056c, 0x04021006, + 0x42001000, 0x00000003, 0x801000c2, 0x80102400, + 0x0401f004, 0x42001000, 0x00000002, 0x801020c2, + 0x82100480, 0x00000110, 0x80000080, 0x80002000, + 0x800800d0, 0x80140540, 0x80100540, 0x48039035, + 0x48035075, 0x1c01f000, 0x59c80815, 0x0201f800, + 0x00100323, 0x40680800, 0x82040d00, 0x0000007c, + 0x48079000, 0x59c80000, 0x80040500, 0x040207fe, + 0x8c040d04, 0x04000003, 0x59c80035, 0x48039035, + 0x59c80000, 0x82000540, 0x00001200, 0x48039000, + 0x1c01f000, 0x4803c856, 0x497b88a9, 0x4a038807, + 0x00000001, 0x497b8807, 0x59c40005, 0x48038805, + 0x0201f800, 0x00101820, 0x4201d000, 0x000001f4, + 0x0201f800, 0x00106661, 0x497b880e, 0x4200b000, + 0x000001f4, 0x42000000, 0x00000001, 0x42000800, + 0x00000014, 0x0201f800, 0x00101949, 0x42000800, + 0x00000014, 0x0201f800, 0x00101941, 0x8c040d00, + 0x04000005, 0x8058b040, 0x040207f3, 0x0201f800, + 0x0010032e, 0x4200b000, 0x00000032, 0x42000000, + 0x00000001, 0x42000800, 0x000000b4, 0x0201f800, + 0x00101949, 0x42000800, 0x000000b4, 0x0201f800, + 0x00101941, 0x8c040d00, 0x04000005, 0x8058b040, + 0x040207f3, 0x0201f800, 0x0010032e, 0x59c40005, + 0x48038805, 0x42000000, 0x00000083, 0x59e00803, + 0x82040d00, 0x00030000, 0x82040d80, 0x00020000, + 0x04020003, 0x42000000, 0x00000089, 0x800008d0, + 0x4a035044, 0x00008900, 0x4a035045, 0x00008900, + 0x48075046, 0x42000800, 0x000000e0, 0x0201f800, + 0x00101949, 0x42000800, 0x000000f4, 0x0201f800, + 0x00101941, 0x82040500, 0xffffffd1, 0x82000540, + 0x00000002, 0x42000800, 0x000000f4, 0x0201f800, + 0x00101949, 0x42000800, 0x000000a0, 0x0201f800, + 0x00101941, 0x82040540, 0x00000001, 0x42000800, + 0x000000a0, 0x0201f800, 0x00101949, 0x42000800, + 0x00000000, 0x0201f800, 0x00101941, 0x82040540, + 0x00000001, 0x42000800, 0x00000000, 0x0201f800, + 0x00101949, 0x4201d000, 0x0001d4c0, 0x0201f800, + 0x00106661, 0x0401fa6d, 0x4a0388a7, 0x0000f7f7, + 0x4a0388a3, 0x8000403c, 0x4a0388ae, 0x000061a8, + 0x4a038801, 0x00032063, 0x4a038810, 0x00410108, + 0x4a038811, 0x00520608, 0x4a038812, 0x00450320, + 0x4a038813, 0x00440405, 0x4a03881c, 0x004132e1, + 0x4a03881d, 0x004001fe, 0x4a038850, 0x80000108, + 0x4a038860, 0x00000008, 0x4a038870, 0x00000008, + 0x4a038851, 0x80000508, 0x4a038861, 0x00800000, + 0x4a038871, 0x00800000, 0x4a038852, 0x80000708, + 0x4a038862, 0x00800000, 0x4a038872, 0x00800000, + 0x4a038853, 0x80000608, 0x497b8863, 0x4a038873, + 0x00800000, 0x4a038882, 0x00000840, 0x4a0388a5, + 0x000000fe, 0x4a0388a6, 0x0000001e, 0x4a0388b0, + 0x00007530, 0x4a038802, 0x0000ffff, 0x4a038806, + 0xc0e00800, 0x1c01f000, 0x850e1d4e, 0x42000800, + 0x00000040, 0x0201f800, 0x00101941, 0x82040500, + 0xffffffaf, 0x82000540, 0x00000000, 0x42000800, + 0x00000040, 0x0201f800, 0x00101949, 0x42000800, + 0x000000f4, 0x0201f800, 0x00101941, 0x4c040000, + 0x40040000, 0x84000548, 0x42000800, 0x000000f4, + 0x0201f800, 0x00101949, 0x42000800, 0x00000000, + 0x0201f800, 0x00101941, 0x82040500, 0xffffffc1, + 0x82000540, 0x00000038, 0x42000800, 0x00000000, + 0x0201f800, 0x00101949, 0x5c000000, 0x42000800, + 0x000000f4, 0x0201f000, 0x00101949, 0x59c40805, + 0x59c40006, 0x80040d00, 0x02000800, 0x0010032e, + 0x82040500, 0x00e00800, 0x04020004, 0x8c040d3e, + 0x040208f9, 0x0401f007, 0x82040500, 0x00800800, + 0x02020800, 0x00100323, 0x0201f800, 0x0010032e, + 0x4c5c0000, 0x4c600000, 0x59c4b805, 0x59c40006, + 0x8c000500, 0x04000003, 0x8c5cbd00, 0x040200a2, + 0x485fc857, 0x0201f800, 0x001050f7, 0x0400001e, + 0x59c40005, 0x82000500, 0x000000c0, 0x04000054, + 0x0201f800, 0x00105122, 0x04020051, 0x59c40006, + 0x82000500, 0x000000f0, 0x04020004, 0x4a038805, + 0x000000c0, 0x0401f04a, 0x59a80015, 0x84000506, + 0x48035015, 0x42006000, 0xff203fff, 0x42006800, + 0x40000000, 0x0201f800, 0x001042a6, 0x42000800, + 0x00000010, 0x42001000, 0x001041ef, 0x0201f800, + 0x00106656, 0x8c5cbd34, 0x04020039, 0x4a035013, + 0x0000aaaa, 0x59c40005, 0x8c00050c, 0x04020012, + 0x8c00050e, 0x0402001c, 0x8c00050a, 0x04020026, + 0x8c000508, 0x0400000b, 0x59a80011, 0x82000580, + 0x00000009, 0x04020007, 0x42000000, 0x0010ce78, + 0x0201f800, 0x0010bfb3, 0x0201f800, 0x0010533d, + 0x0401f067, 0x42000000, 0x0010ce86, 0x0201f800, + 0x0010bfb3, 0x41781800, 0x42002000, 0x00000001, + 0x0201f800, 0x00101c46, 0x4a035014, 0x00000000, + 0x0401f014, 0x42000000, 0x0010ce87, 0x0201f800, + 0x0010bfb3, 0x41781800, 0x42002000, 0x00000002, + 0x0201f800, 0x00101c46, 0x4a035014, 0x00000002, + 0x0401f008, 0x42000000, 0x0010ce7a, 0x0201f800, + 0x0010bfb3, 0x0201f800, 0x001052cb, 0x0401f048, + 0x0201f800, 0x001053a8, 0x0401f045, 0x8c5cbd34, + 0x04000041, 0x59c40005, 0x8c00053a, 0x04020005, + 0x42000000, 0x0010ce6e, 0x0201f800, 0x0010bfb3, + 0x4a038805, 0x20000000, 0x0201f800, 0x001050f7, + 0x04020015, 0x4a038805, 0x04000000, 0x59c418a8, + 0x42002000, 0x00000000, 0x0201f800, 0x00101c46, + 0x0201f800, 0x00105113, 0x04020008, 0x4a035014, + 0x00000001, 0x4202d800, 0x00000001, 0x0201f800, + 0x00105051, 0x0401f06d, 0x41780000, 0x0201f800, + 0x001050c8, 0x0201f800, 0x00101a3d, 0x4000c000, + 0x0201f800, 0x00101968, 0x836c1580, 0x00000004, + 0x0402000c, 0x8c5cbd00, 0x04020017, 0x8d0e1d06, + 0x04020005, 0x59c410a3, 0x82081540, 0x00000008, + 0x480b88a3, 0x59c41006, 0x84081540, 0x480b8806, + 0x4a038805, 0x04000000, 0x4202d800, 0x00000001, + 0x497b5010, 0x8d0e1d18, 0x04020005, 0x4803c856, + 0x850e1d06, 0x0201f800, 0x0010412b, 0x0201f800, + 0x00103ae4, 0x8c5cbd3c, 0x04020866, 0x8c5cbd00, + 0x04000043, 0x42000000, 0x0010cf8b, 0x0201f800, + 0x0010bfb3, 0x4a038805, 0x00000001, 0x4200b000, + 0x00000352, 0x4201d000, 0x00000064, 0x4c580000, + 0x0201f800, 0x00106661, 0x0201f800, 0x001018f8, + 0x5c00b000, 0x04000004, 0x8058b040, 0x040207f6, + 0x0401f004, 0x4a038805, 0x00000001, 0x0401f02c, + 0x59c40006, 0x84000500, 0x48038806, 0x59a80878, + 0x8c040d3e, 0x04000005, 0x82040d40, 0x0000000b, + 0x48075078, 0x850e1d48, 0x0201f800, 0x001071b4, + 0x497b8880, 0x59c4000d, 0x8c000506, 0x04000006, + 0x42002000, 0x00000005, 0x0201f800, 0x00105408, + 0x0401f005, 0x42002000, 0x00000006, 0x0201f800, + 0x00105408, 0x59c400a3, 0x82000500, 0xfcf8ffff, + 0x480388a3, 0x4a035058, 0x00000002, 0x4202d800, + 0x00000004, 0x4a038805, 0x00000001, 0x0201f800, + 0x00100455, 0x0401fb7b, 0x497b5036, 0x4a035043, + 0x00000001, 0x0201f800, 0x00110d6d, 0x825cbd00, + 0xbbfffffe, 0x485f8805, 0x5c00c000, 0x5c00b800, + 0x1c01f000, 0x4d180000, 0x59c41004, 0x480bc857, + 0x8c081500, 0x04000006, 0x4803c856, 0x497b2807, + 0x0201f800, 0x0010727a, 0x0401f009, 0x82080500, + 0x000001f0, 0x04000006, 0x4803c856, 0x0201f800, + 0x001074b6, 0x02020800, 0x001072a2, 0x4a038805, + 0x80000000, 0x5c023000, 0x1c01f000, 0x59c408a3, + 0x4807c857, 0x84040d40, 0x480788a3, 0x1c01f000, + 0x4d900000, 0x4dd00000, 0x4da40000, 0x4d140000, + 0x4a038805, 0x40000000, 0x42000000, 0x0010ce80, + 0x0201f800, 0x0010bfb3, 0x0201f800, 0x00106e41, + 0x59c41004, 0x8c081500, 0x04000055, 0x598e600f, + 0x497b2807, 0x813261c0, 0x04000032, 0x59300403, + 0x82000580, 0x00000032, 0x0402002e, 0x5930001d, + 0x48038833, 0x4a038807, 0x00018000, 0x4201d000, + 0x00000002, 0x0201f800, 0x00106661, 0x497b8807, + 0x4201d000, 0x00000002, 0x0201f800, 0x00106661, + 0x0201f800, 0x001070de, 0x4201d000, 0x00007530, + 0x0201f800, 0x00106661, 0x59c408a4, 0x82040d00, + 0x0000000f, 0x82040d80, 0x00000000, 0x04000005, + 0x42000000, 0x00200000, 0x0201f800, 0x0010194e, + 0x0201f800, 0x00106d91, 0x59300009, 0x80000540, + 0x02000800, 0x0010032e, 0x40025800, 0x4a025a05, + 0x00000103, 0x5931d82a, 0x58ef400a, 0x58ec0008, + 0x0801f800, 0x0201f800, 0x00020b9d, 0x0401f047, + 0x598c0011, 0x82001c80, 0x000000c8, 0x04021010, + 0x80000000, 0x48031811, 0x59c400a4, 0x82000500, + 0x0000000f, 0x82000580, 0x00000002, 0x04020005, + 0x42000000, 0x00200000, 0x0201f800, 0x0010194e, + 0x0201f800, 0x001065fd, 0x0401f034, 0x4933c857, + 0x0201f800, 0x001070de, 0x813261c0, 0x0400002f, + 0x4a026203, 0x00000001, 0x42027000, 0x00000027, + 0x0201f800, 0x00020bc1, 0x0401f028, 0x0201f800, + 0x001074b6, 0x04000025, 0x0201f800, 0x001074f6, + 0x0201f800, 0x00106628, 0x59926004, 0x813261c0, + 0x04000013, 0x42001800, 0x000000c8, 0x0201f800, + 0x001074aa, 0x0402000e, 0x59c400a4, 0x82000500, + 0x0000000f, 0x82000580, 0x00000002, 0x04020005, + 0x42000000, 0x00200000, 0x0201f800, 0x0010194e, + 0x0201f800, 0x00106602, 0x0401f00c, 0x4933c857, + 0x0201f800, 0x0010707a, 0x813261c0, 0x04000007, + 0x42027000, 0x0000004f, 0x4a026203, 0x00000003, + 0x0201f800, 0x00020bc1, 0x5c022800, 0x5c034800, + 0x5c03a000, 0x5c032000, 0x0201f000, 0x00106e2e, + 0x40680000, 0x810c0d80, 0x8c040d0e, 0x04000053, + 0x4803c857, 0x8d0e1d0e, 0x04000023, 0x850e1d0e, + 0x497b5058, 0x42000000, 0x0010ce67, 0x0201f800, + 0x0010bfb3, 0x0201f800, 0x0010c067, 0x42001000, + 0x00008011, 0x59c40001, 0x82000500, 0x00018000, + 0x82001d80, 0x00000000, 0x04000009, 0x82001d80, + 0x00008000, 0x04000009, 0x82001d80, 0x00010000, + 0x04000009, 0x0201f800, 0x0010032e, 0x42001800, + 0x00000000, 0x0401f006, 0x42001800, 0x00000001, + 0x0401f003, 0x42001800, 0x00000003, 0x0201f000, + 0x001039ac, 0x850e1d4e, 0x59a80858, 0x800409c0, + 0x04020007, 0x59c4000d, 0x8c000520, 0x04000004, + 0x42001800, 0x00000003, 0x0401f002, 0x40041800, + 0x0201f800, 0x0010c04b, 0x42001000, 0x00008012, + 0x59a82878, 0x8c142d3e, 0x04000006, 0x82142d00, + 0x00000003, 0x0201f800, 0x001039ad, 0x0401f003, + 0x0201f800, 0x001039ac, 0x0201f800, 0x00100455, + 0x0201f800, 0x0010c0bb, 0x04020010, 0x4d200000, + 0x42024000, 0x000000ff, 0x0401f85a, 0x5c024000, + 0x4d400000, 0x4d3c0000, 0x42028000, 0x00000028, + 0x42027800, 0x00000008, 0x0201f800, 0x0010fef2, + 0x5c027800, 0x5c028000, 0x1c01f000, 0x4803c857, + 0x82000400, 0x00102116, 0x50000800, 0x82040d00, + 0x000000ff, 0x1c01f000, 0x4803c856, 0x4c580000, + 0x4200b000, 0x00000010, 0x497b88ac, 0x497b88ad, + 0x8058b040, 0x040207fe, 0x5c00b000, 0x1c01f000, + 0x40680800, 0x4807c857, 0x80041908, 0x480f88ac, + 0x82042500, 0x0000000f, 0x82102400, 0x0010c0fc, + 0x50102000, 0x59c400ad, 0x80100540, 0x480f88ac, + 0x480388ad, 0x0201f800, 0x0010c0e8, 0x04000002, + 0x4807500f, 0x1c01f000, 0x4807c857, 0x80041908, + 0x480f88ac, 0x82042500, 0x0000000f, 0x82102400, + 0x0010c0fc, 0x50102000, 0x59c400ad, 0x80101500, + 0x04000004, 0x80100580, 0x480f88ac, 0x480388ad, + 0x1c01f000, 0x4803c857, 0x4c080000, 0x4c040000, + 0x4c000000, 0x59c40892, 0x4807c857, 0x80041580, + 0x04000010, 0x80041480, 0x04021007, 0x80081080, + 0x80081000, 0x4008b000, 0x42000000, 0x00000201, + 0x0401f004, 0x4008b000, 0x42000000, 0x00000210, + 0x48038886, 0x8058b040, 0x040207fe, 0x497b8886, + 0x5c000000, 0x5c000800, 0x5c001000, 0x1c01f000, + 0x4803c856, 0x8d0e1d20, 0x04000005, 0x42028000, + 0x0000002e, 0x0201f000, 0x0010b198, 0x1c01f000, + 0x0401f803, 0x40058800, 0x1c01f000, 0x59a80870, + 0x82040500, 0x00000010, 0x04000004, 0x42000800, + 0x00000002, 0x0401f010, 0x82040500, 0x00000020, + 0x42000800, 0x00000002, 0x0402000b, 0x59c80835, + 0x82040d00, 0x00001f00, 0x80040910, 0x80040800, + 0x59a8006d, 0x80000540, 0x04000003, 0x42000800, + 0x0000025a, 0x4807c857, 0x1c01f000, 0x0401f807, + 0x42018800, 0x00000001, 0x04000003, 0x42018800, + 0x00000000, 0x1c01f000, 0x4c000000, 0x59a80037, + 0x4803c857, 0x82000580, 0x00000000, 0x5c000000, + 0x1c01f000, 0x0401f807, 0x42018800, 0x00000001, + 0x04000003, 0x42018800, 0x00000000, 0x1c01f000, + 0x4c000000, 0x59a80037, 0x4803c857, 0x82000580, + 0x00000001, 0x5c000000, 0x1c01f000, 0x0401f807, + 0x42018800, 0x00000001, 0x04000003, 0x42018800, + 0x00000000, 0x1c01f000, 0x4c000000, 0x59a80037, + 0x4803c857, 0x82000580, 0x00000003, 0x5c000000, + 0x1c01f000, 0x0401f807, 0x42018800, 0x00000001, + 0x04000003, 0x42018800, 0x00000000, 0x1c01f000, + 0x4c000000, 0x59a80037, 0x82000580, 0x00000002, + 0x5c000000, 0x1c01f000, 0x4c000000, 0x4c040000, + 0x4c080000, 0x4c380000, 0x59a8003a, 0x82000c80, + 0x00000007, 0x02021800, 0x0010032e, 0x0c01f806, + 0x5c007000, 0x5c001000, 0x5c000800, 0x5c000000, + 0x1c01f000, 0x00101670, 0x00101683, 0x00101697, + 0x00101699, 0x001016c1, 0x001016c3, 0x001016c5, + 0x4803c856, 0x4a03503c, 0x00000000, 0x42000000, + 0x00000002, 0x0401fa32, 0x42000000, 0x00000002, + 0x0401f9b5, 0x0401fab1, 0x4803c856, 0x4a03503a, + 0x00000006, 0x42000800, 0x0000001e, 0x42001000, + 0x001016c6, 0x0201f000, 0x00106638, 0x497b503f, + 0x4a035034, 0x00000036, 0x4a035033, 0x0000002a, + 0x4803c856, 0x4a03503c, 0x00000001, 0x42000000, + 0x00000002, 0x0401f9a0, 0x4803c856, 0x4a03503a, + 0x00000006, 0x42000800, 0x0000001e, 0x42001000, + 0x001016c6, 0x0201f000, 0x00106638, 0x0201f800, + 0x0010032e, 0x4a035034, 0x00000036, 0x4803c856, + 0x4a03503c, 0x00000003, 0x42000800, 0x00000000, + 0x0401faa1, 0x82040d00, 0x00000090, 0x82040580, 0x00000090, 0x04000009, 0x82040580, 0x00000010, - 0x04000008, 0x82040580, 0x00000000, 0x04000007, - 0x0201f800, 0x0010032e, 0x84081540, 0x0401f004, - 0x84081542, 0x0401f002, 0x84081544, 0x480b5042, - 0x4a03503a, 0x00000001, 0x0401f003, 0x0401f8ce, - 0x0401ff81, 0x1c01f000, 0x0401f890, 0x04000053, - 0x0401f9fb, 0x0402002a, 0x42000800, 0x00000000, - 0x0401fa40, 0x82040d00, 0x00000090, 0x82040580, - 0x00000000, 0x04000045, 0x82040580, 0x00000010, - 0x04000006, 0x82040580, 0x00000090, 0x04000009, - 0x0201f800, 0x0010032e, 0x59c40801, 0x82040d00, - 0x00018000, 0x82040580, 0x00000000, 0x04000037, - 0x42000800, 0x00000000, 0x0401fa2a, 0x82040d00, - 0x00000090, 0x82040580, 0x00000010, 0x04000006, - 0x82040580, 0x00000090, 0x04000006, 0x02020800, - 0x0010032e, 0x59a80042, 0x84000542, 0x0401f003, - 0x59a80042, 0x84000540, 0x48035042, 0x59a8003f, - 0x80000000, 0x4803503f, 0x82000580, 0x00000005, - 0x04000003, 0x0401f862, 0x0401f01f, 0x497b503f, - 0x59c40801, 0x82040d00, 0x00018000, 0x82040580, - 0x00000000, 0x04000009, 0x82040580, 0x00008000, - 0x04000009, 0x82040580, 0x00010000, 0x04000009, + 0x04000009, 0x82040580, 0x00000000, 0x04000009, 0x0201f800, 0x0010032e, 0x42000000, 0x00000001, 0x0401f006, 0x42000000, 0x00000000, 0x0401f003, - 0x42000000, 0x00000002, 0x0401f960, 0x4a03503c, - 0x00000002, 0x0401f004, 0x4a03503a, 0x00000003, - 0x0401f002, 0x0401ff40, 0x1c01f000, 0x0401f83b, - 0x04000015, 0x59a80033, 0x80000040, 0x48035033, - 0x0401f9a3, 0x04020005, 0x4a03503a, 0x00000003, - 0x497b503b, 0x0401f00c, 0x59a80033, 0x80000540, - 0x04020003, 0x0401f8a2, 0x0401f002, 0x0401f84c, - 0x0401f82f, 0x497b503f, 0x4a03503c, 0x00000001, - 0x0401ff29, 0x1c01f000, 0x0401f824, 0x04000015, - 0x0401f98f, 0x0402000f, 0x59a80040, 0x80000000, - 0x48035040, 0x82000580, 0x00000007, 0x0402000c, - 0x4a035036, 0x0000000a, 0x497b5043, 0x59a80042, - 0x8400055e, 0x48035042, 0x4803c857, 0x0401f005, - 0x0401f817, 0x4a03503c, 0x00000004, 0x0401ff3c, - 0x1c01f000, 0x0401f80d, 0x04000007, 0x0401f978, - 0x04020003, 0x0401ff19, 0x0401f003, 0x0401f80c, - 0x0401ff33, 0x1c01f000, 0x0201f800, 0x0010032e, - 0x0201f800, 0x0010032e, 0x59a80034, 0x80000040, - 0x48035034, 0x04000892, 0x1c01f000, 0x4c040000, - 0x42000800, 0x00000000, 0x0401f9ae, 0x82040d00, - 0x00000090, 0x82040580, 0x00000090, 0x04000009, - 0x82040580, 0x00000010, 0x04000009, 0x82040580, - 0x00000000, 0x04000009, 0x0201f800, 0x0010032e, - 0x42000000, 0x00000002, 0x0401f006, 0x42000000, - 0x00000001, 0x0401f003, 0x42000000, 0x00000000, - 0x0401f8fe, 0x5c000800, 0x1c01f000, 0x4c040000, - 0x59c40801, 0x82040d00, 0x00018000, 0x82040580, - 0x00000000, 0x04000009, 0x82040580, 0x00008000, - 0x04000009, 0x82040580, 0x00010000, 0x04000009, - 0x0201f800, 0x0010032e, 0x42000000, 0x00000002, - 0x0401f006, 0x42000000, 0x00000001, 0x0401f003, - 0x42000000, 0x00000000, 0x0401f86a, 0x5c000800, - 0x1c01f000, 0x4c040000, 0x59a8003f, 0x80000000, - 0x4803503f, 0x82000580, 0x00000005, 0x04020019, + 0x42000000, 0x00000002, 0x0401f977, 0x497b5040, + 0x4803c856, 0x4a03503a, 0x00000006, 0x42000800, + 0x0000001e, 0x42001000, 0x001016c6, 0x0201f000, + 0x00106638, 0x0201f800, 0x0010032e, 0x0201f800, + 0x0010032e, 0x1c01f000, 0x4c000000, 0x4c040000, + 0x4c080000, 0x4c380000, 0x59a8003c, 0x82000c80, + 0x00000007, 0x02021800, 0x0010032e, 0x0c01f806, + 0x5c007000, 0x5c001000, 0x5c000800, 0x5c000000, + 0x1c01f000, 0x001016dc, 0x001016fb, 0x00101750, + 0x00101767, 0x0010177e, 0x00101787, 0x00101789, + 0x0401fa1c, 0x0402001b, 0x59a81042, 0x42000800, + 0x00000000, 0x0401fa60, 0x82040d00, 0x00000090, + 0x82040580, 0x00000090, 0x04000009, 0x82040580, + 0x00000010, 0x04000008, 0x82040580, 0x00000000, + 0x04000007, 0x0201f800, 0x0010032e, 0x84081540, + 0x0401f004, 0x84081542, 0x0401f002, 0x84081544, + 0x480b5042, 0x4a03503a, 0x00000001, 0x0401f003, + 0x0401f8ce, 0x0401ff81, 0x1c01f000, 0x0401f890, + 0x04000053, 0x0401f9fb, 0x0402002a, 0x42000800, + 0x00000000, 0x0401fa40, 0x82040d00, 0x00000090, + 0x82040580, 0x00000000, 0x04000045, 0x82040580, + 0x00000010, 0x04000006, 0x82040580, 0x00000090, + 0x04000009, 0x0201f800, 0x0010032e, 0x59c40801, + 0x82040d00, 0x00018000, 0x82040580, 0x00000000, + 0x04000037, 0x42000800, 0x00000000, 0x0401fa2a, + 0x82040d00, 0x00000090, 0x82040580, 0x00000010, + 0x04000006, 0x82040580, 0x00000090, 0x04000006, + 0x02020800, 0x0010032e, 0x59a80042, 0x84000542, + 0x0401f003, 0x59a80042, 0x84000540, 0x48035042, + 0x59a8003f, 0x80000000, 0x4803503f, 0x82000580, + 0x00000005, 0x04000003, 0x0401f862, 0x0401f01f, 0x497b503f, 0x59c40801, 0x82040d00, 0x00018000, 0x82040580, 0x00000000, 0x04000009, 0x82040580, 0x00008000, 0x04000009, 0x82040580, 0x00010000, 0x04000009, 0x0201f800, 0x0010032e, 0x42000000, + 0x00000001, 0x0401f006, 0x42000000, 0x00000000, + 0x0401f003, 0x42000000, 0x00000002, 0x0401f960, + 0x4a03503c, 0x00000002, 0x0401f004, 0x4a03503a, + 0x00000003, 0x0401f002, 0x0401ff40, 0x1c01f000, + 0x0401f83b, 0x04000015, 0x59a80033, 0x80000040, + 0x48035033, 0x0401f9a3, 0x04020005, 0x4a03503a, + 0x00000003, 0x497b503b, 0x0401f00c, 0x59a80033, + 0x80000540, 0x04020003, 0x0401f8a2, 0x0401f002, + 0x0401f84c, 0x0401f82f, 0x497b503f, 0x4a03503c, + 0x00000001, 0x0401ff29, 0x1c01f000, 0x0401f824, + 0x04000015, 0x0401f98f, 0x0402000f, 0x59a80040, + 0x80000000, 0x48035040, 0x82000580, 0x00000007, + 0x0402000c, 0x4a035036, 0x0000000a, 0x497b5043, + 0x59a80042, 0x8400055e, 0x48035042, 0x4803c857, + 0x0401f005, 0x0401f817, 0x4a03503c, 0x00000004, + 0x0401ff3c, 0x1c01f000, 0x0401f80d, 0x04000007, + 0x0401f978, 0x04020003, 0x0401ff19, 0x0401f003, + 0x0401f80c, 0x0401ff33, 0x1c01f000, 0x0201f800, + 0x0010032e, 0x0201f800, 0x0010032e, 0x59a80034, + 0x80000040, 0x48035034, 0x04000892, 0x1c01f000, + 0x4c040000, 0x42000800, 0x00000000, 0x0401f9ae, + 0x82040d00, 0x00000090, 0x82040580, 0x00000090, + 0x04000009, 0x82040580, 0x00000010, 0x04000009, + 0x82040580, 0x00000000, 0x04000009, 0x0201f800, + 0x0010032e, 0x42000000, 0x00000002, 0x0401f006, + 0x42000000, 0x00000001, 0x0401f003, 0x42000000, + 0x00000000, 0x0401f8fe, 0x5c000800, 0x1c01f000, + 0x4c040000, 0x59c40801, 0x82040d00, 0x00018000, + 0x82040580, 0x00000000, 0x04000009, 0x82040580, + 0x00008000, 0x04000009, 0x82040580, 0x00010000, + 0x04000009, 0x0201f800, 0x0010032e, 0x42000000, 0x00000002, 0x0401f006, 0x42000000, 0x00000001, - 0x0401f003, 0x42000000, 0x00000000, 0x0401f849, - 0x42000800, 0x00000000, 0x0401f95a, 0x82040d00, - 0x00000090, 0x82040580, 0x00000090, 0x04000009, - 0x82040580, 0x00000010, 0x04000009, 0x82040580, - 0x00000000, 0x04000009, 0x0201f800, 0x0010032e, + 0x0401f003, 0x42000000, 0x00000000, 0x0401f86a, + 0x5c000800, 0x1c01f000, 0x4c040000, 0x59a8003f, + 0x80000000, 0x4803503f, 0x82000580, 0x00000005, + 0x04020019, 0x497b503f, 0x59c40801, 0x82040d00, + 0x00018000, 0x82040580, 0x00000000, 0x04000009, + 0x82040580, 0x00008000, 0x04000009, 0x82040580, + 0x00010000, 0x04000009, 0x0201f800, 0x0010032e, 0x42000000, 0x00000002, 0x0401f006, 0x42000000, 0x00000001, 0x0401f003, 0x42000000, 0x00000000, - 0x0401f8aa, 0x5c000800, 0x1c01f000, 0x4c200000, - 0x59a80042, 0x82000500, 0x00007fff, 0x02000800, - 0x0010032e, 0x59a84041, 0x80204102, 0x02001800, - 0x0010032e, 0x48235041, 0x80204500, 0x040007fa, - 0x8c000504, 0x04020007, 0x8c000502, 0x04020008, - 0x8c000500, 0x04020009, 0x0201f800, 0x0010032e, - 0x42000000, 0x00000002, 0x0401f006, 0x42000000, - 0x00000000, 0x0401f003, 0x42000000, 0x00000001, - 0x0401f810, 0x5c004000, 0x1c01f000, 0x04011000, - 0x4a03c840, 0x0010c7ba, 0x4a03c842, 0x00000009, - 0x40000000, 0x040117ff, 0x4a035041, 0x00000004, - 0x4a035038, 0x00000000, 0x1c01f000, 0x40680000, + 0x0401f849, 0x42000800, 0x00000000, 0x0401f95a, + 0x82040d00, 0x00000090, 0x82040580, 0x00000090, + 0x04000009, 0x82040580, 0x00000010, 0x04000009, + 0x82040580, 0x00000000, 0x04000009, 0x0201f800, + 0x0010032e, 0x42000000, 0x00000002, 0x0401f006, + 0x42000000, 0x00000001, 0x0401f003, 0x42000000, + 0x00000000, 0x0401f8aa, 0x5c000800, 0x1c01f000, + 0x4c200000, 0x59a80042, 0x82000500, 0x00007fff, + 0x02000800, 0x0010032e, 0x59a84041, 0x80204102, + 0x02001800, 0x0010032e, 0x48235041, 0x80204500, + 0x040007fa, 0x8c000504, 0x04020007, 0x8c000502, + 0x04020008, 0x8c000500, 0x04020009, 0x0201f800, + 0x0010032e, 0x42000000, 0x00000002, 0x0401f006, + 0x42000000, 0x00000000, 0x0401f003, 0x42000000, + 0x00000001, 0x0401f810, 0x5c004000, 0x1c01f000, + 0x04011000, 0x4a03c840, 0x0010caba, 0x4a03c842, + 0x00000009, 0x40000000, 0x040117ff, 0x4a035041, + 0x00000004, 0x4a035038, 0x00000000, 0x1c01f000, + 0x40680000, 0x59a80878, 0x8c040d3e, 0x0402000c, + 0x59a80847, 0x82040d80, 0x01391077, 0x04020008, + 0x59e00813, 0x8c040d00, 0x04000005, 0x82000d80, + 0x00000002, 0x04020002, 0x41780000, 0x59a80847, + 0x82040d80, 0x015b1077, 0x0402000b, 0x4a03c014, + 0x00200020, 0x82000d80, 0x00000001, 0x42000800, + 0x00200000, 0x04000003, 0x42000800, 0x00200020, + 0x4807c013, 0x800001c0, 0x04000040, 0x82000d80, + 0x00000001, 0x0402001d, 0x42000800, 0x000000a0, + 0x0401f8f1, 0x82040540, 0x00000004, 0x42000800, + 0x000000a0, 0x0401f8f4, 0x42000800, 0x000000c0, + 0x0401f8e9, 0x82040540, 0x00000020, 0x42000800, + 0x000000c0, 0x0401f8ec, 0x59c40001, 0x82000500, + 0xfffe7fff, 0x82000540, 0x00000000, 0x48038801, + 0x59a80044, 0x80000110, 0x42000800, 0x000000e0, + 0x0401f8e1, 0x0401f03c, 0x82000d80, 0x00000002, + 0x02020800, 0x0010032e, 0x42000800, 0x000000a0, + 0x0401f8d1, 0x82040500, 0xfffffffb, 0x42000800, + 0x000000a0, 0x0401f8d4, 0x42000800, 0x000000c0, + 0x0401f8c9, 0x82040500, 0xffffffdf, 0x42000800, + 0x000000c0, 0x0401f8cc, 0x59c40001, 0x82000500, + 0xfffe7fff, 0x82000540, 0x00010000, 0x48038801, + 0x59a80046, 0x80000110, 0x42000800, 0x000000e0, + 0x0401f8c1, 0x0401f01c, 0x42000800, 0x000000a0, + 0x0401f8b5, 0x82040540, 0x00000004, 0x42000800, + 0x000000a0, 0x0401f8b8, 0x42000800, 0x000000c0, + 0x0401f8ad, 0x82040500, 0xffffffdf, 0x42000800, + 0x000000c0, 0x0401f8b0, 0x59c40001, 0x82000500, + 0xfffe7fff, 0x82000540, 0x00008000, 0x48038801, + 0x59a80045, 0x80000110, 0x42000800, 0x000000e0, + 0x0401f8a5, 0x1c01f000, 0x40680000, 0x4803c857, 0x59a80878, 0x8c040d3e, 0x0402000c, 0x59a80847, 0x82040d80, 0x01391077, 0x04020008, 0x59e00813, 0x8c040d00, 0x04000005, 0x82000d80, 0x00000002, - 0x04020002, 0x41780000, 0x59a80847, 0x82040d80, - 0x015b1077, 0x0402000b, 0x4a03c014, 0x00200020, - 0x82000d80, 0x00000001, 0x42000800, 0x00200000, - 0x04000003, 0x42000800, 0x00200020, 0x4807c013, - 0x800001c0, 0x04000040, 0x82000d80, 0x00000001, - 0x0402001d, 0x42000800, 0x000000a0, 0x0401f8f1, - 0x82040540, 0x00000004, 0x42000800, 0x000000a0, - 0x0401f8f4, 0x42000800, 0x000000c0, 0x0401f8e9, - 0x82040540, 0x00000020, 0x42000800, 0x000000c0, - 0x0401f8ec, 0x59c40001, 0x82000500, 0xfffe7fff, - 0x82000540, 0x00000000, 0x48038801, 0x59a80044, - 0x80000110, 0x42000800, 0x000000e0, 0x0401f8e1, - 0x0401f03c, 0x82000d80, 0x00000002, 0x02020800, - 0x0010032e, 0x42000800, 0x000000a0, 0x0401f8d1, - 0x82040500, 0xfffffffb, 0x42000800, 0x000000a0, - 0x0401f8d4, 0x42000800, 0x000000c0, 0x0401f8c9, - 0x82040500, 0xffffffdf, 0x42000800, 0x000000c0, - 0x0401f8cc, 0x59c40001, 0x82000500, 0xfffe7fff, - 0x82000540, 0x00010000, 0x48038801, 0x59a80046, - 0x80000110, 0x42000800, 0x000000e0, 0x0401f8c1, - 0x0401f01c, 0x42000800, 0x000000a0, 0x0401f8b5, - 0x82040540, 0x00000004, 0x42000800, 0x000000a0, - 0x0401f8b8, 0x42000800, 0x000000c0, 0x0401f8ad, - 0x82040500, 0xffffffdf, 0x42000800, 0x000000c0, - 0x0401f8b0, 0x59c40001, 0x82000500, 0xfffe7fff, - 0x82000540, 0x00008000, 0x48038801, 0x59a80045, - 0x80000110, 0x42000800, 0x000000e0, 0x0401f8a5, - 0x1c01f000, 0x40680000, 0x4803c857, 0x59a80878, - 0x8c040d3e, 0x0402000c, 0x59a80847, 0x82040d80, - 0x01391077, 0x04020008, 0x59e00813, 0x8c040d00, - 0x04000005, 0x82000d80, 0x00000002, 0x04020002, - 0x41780000, 0x4c000000, 0x0401f976, 0x5c000000, - 0x800001c0, 0x04000026, 0x82000d80, 0x00000001, - 0x04020010, 0x59a8006d, 0x80000540, 0x04000004, - 0x42001000, 0x00000000, 0x0401fa87, 0x42000800, - 0x00000000, 0x0401f87b, 0x82040540, 0x00000090, - 0x42000800, 0x00000000, 0x0401f87e, 0x0401f024, - 0x82000d80, 0x00000002, 0x02020800, 0x0010032e, + 0x04020002, 0x41780000, 0x4c000000, 0x0401f976, + 0x5c000000, 0x800001c0, 0x04000026, 0x82000d80, + 0x00000001, 0x04020010, 0x59a8006d, 0x80000540, + 0x04000004, 0x42001000, 0x00000000, 0x0401fa87, + 0x42000800, 0x00000000, 0x0401f87b, 0x82040540, + 0x00000090, 0x42000800, 0x00000000, 0x0401f87e, + 0x0401f024, 0x82000d80, 0x00000002, 0x02020800, + 0x0010032e, 0x59a8006d, 0x80000540, 0x04000004, + 0x42001000, 0x00010000, 0x0401fa74, 0x42000800, + 0x00000000, 0x0401f868, 0x82040500, 0xffffff6f, + 0x42000800, 0x00000000, 0x0401f86b, 0x0401f011, 0x59a8006d, 0x80000540, 0x04000004, 0x42001000, - 0x00010000, 0x0401fa74, 0x42000800, 0x00000000, - 0x0401f868, 0x82040500, 0xffffff6f, 0x42000800, - 0x00000000, 0x0401f86b, 0x0401f011, 0x59a8006d, - 0x80000540, 0x04000004, 0x42001000, 0x00008000, - 0x0401fa65, 0x42000800, 0x00000000, 0x0401f859, - 0x82040500, 0xffffff6f, 0x82000540, 0x00000010, - 0x42000800, 0x00000000, 0x0401f85a, 0x0401f145, - 0x0401f807, 0x42018800, 0x00000001, 0x04000003, - 0x42018800, 0x00000000, 0x1c01f000, 0x4c580000, - 0x4200b000, 0x00000014, 0x8058b040, 0x0400002a, - 0x59c4000d, 0x8c000520, 0x040207fc, 0x0401f83a, - 0x59c4000d, 0x8c000520, 0x040207f8, 0x59c40808, - 0x82040d40, 0x00000100, 0x48078808, 0x4200b000, - 0x000000c8, 0x8058b040, 0x040207ff, 0x4200b000, - 0x00000014, 0x8058b040, 0x04000017, 0x59c4000d, - 0x8c000520, 0x04020014, 0x0401f827, 0x59c4000d, - 0x8c000520, 0x04020010, 0x4200b000, 0x0000000a, - 0x8058b040, 0x04000003, 0x0401f81f, 0x0401f7fd, - 0x4200b000, 0x00000064, 0x59c4000d, 0x8c00051e, - 0x04000005, 0x8058b040, 0x040207fc, 0x80000580, - 0x0401f003, 0x82000540, 0x00000001, 0x5c00b000, - 0x1c01f000, 0x42000800, 0x000000a0, 0x0401f815, - 0x82040500, 0xfffffffe, 0x42000800, 0x000000a0, - 0x0401f818, 0x42000800, 0x00000000, 0x0401f80d, - 0x82040500, 0xfffffffe, 0x42000800, 0x00000000, - 0x0401f010, 0x40000000, 0x40000000, 0x40000000, - 0x40000000, 0x40000000, 0x1c01f000, 0x40680800, - 0x4807880e, 0x59c4080f, 0x82040d00, 0x000000ff, - 0x40058800, 0x1c01f000, 0x40680800, 0x406c0000, - 0x900001c0, 0x80040d40, 0x84040d40, 0x4807880e, - 0x1c01f000, 0x82000d80, 0x00200000, 0x04000009, - 0x82000d80, 0x02000000, 0x04000006, 0x82000d80, - 0x01000000, 0x04000006, 0x59c408a3, 0x0401f006, - 0x59c408a3, 0x84040d30, 0x0401f003, 0x59c408a3, - 0x84040d32, 0x80040540, 0x480388a3, 0x480788a3, - 0x1c01f000, 0x59c400a3, 0x84000556, 0x480388a3, - 0x84000516, 0x480388a3, 0x1c01f000, 0x485fc857, - 0x4863c857, 0x4c640000, 0x4d3c0000, 0x4d400000, - 0x0201f800, 0x00106faf, 0x48635009, 0x40601800, - 0x42002000, 0x00000000, 0x0401fad3, 0x42000000, - 0x0010cb85, 0x0201f800, 0x0010bc88, 0x82600500, - 0x0000ff00, 0x82000580, 0x0000f700, 0x04020005, - 0x42000000, 0x0010cb6d, 0x0201f800, 0x0010bc88, - 0x0201f800, 0x0010bd90, 0x040200a5, 0x82600d00, - 0x0000ff00, 0x42024000, 0x0000ffff, 0x800409c0, - 0x0400001e, 0x82041580, 0x0000f700, 0x04000016, - 0x82041580, 0x0000f800, 0x04000013, 0x82041580, - 0x0000ff00, 0x4200c800, 0x00000000, 0x04000030, - 0x840439c0, 0x0201f800, 0x00101f66, 0x0402001b, - 0x83200400, 0x0010bdc7, 0x50024800, 0x59240200, - 0x8c000500, 0x04000015, 0x4200c800, 0x00000001, - 0x0401f023, 0x42024800, 0x0010ccd1, 0x59240200, - 0x8c000502, 0x0400000d, 0x59c410a3, 0x82081500, - 0x00008000, 0x04000009, 0x59c410a7, 0x82081500, - 0x0000ff00, 0x82081580, 0x0000ff00, 0x4200c800, - 0x00000000, 0x04000012, 0x8d0e1d02, 0x04020007, - 0x8d0e1d00, 0x0402000e, 0x599c1017, 0x8c08151a, - 0x04000065, 0x850e1d42, 0x42024000, 0x0000ffff, - 0x4200c800, 0x00000002, 0x42028000, 0x00000004, - 0x42027800, 0x00000008, 0x0401f005, 0x850e1d40, - 0x42028000, 0x00000004, 0x417a7800, 0x59a80005, - 0x8c000502, 0x04020004, 0x8d0e1d0a, 0x0402005c, - 0x850e1d4a, 0x42000000, 0x0010cb6c, 0x0201f800, - 0x0010bc88, 0x59a81809, 0x42001000, 0x00008013, - 0x0201f800, 0x001038bc, 0x83200580, 0x0000ffff, - 0x0400001f, 0x59240400, 0x8c000508, 0x0400000a, - 0x417a7800, 0x4d300000, 0x417a6000, 0x0201f800, - 0x00101fa9, 0x5c026000, 0x59240400, 0x8c00050a, - 0x04020043, 0x4d400000, 0x82600500, 0x000000ff, - 0x42028800, 0x0000ffff, 0x40643000, 0x42028000, - 0x0000000e, 0x0201f800, 0x0010ae86, 0x42000800, + 0x00008000, 0x0401fa65, 0x42000800, 0x00000000, + 0x0401f859, 0x82040500, 0xffffff6f, 0x82000540, + 0x00000010, 0x42000800, 0x00000000, 0x0401f85a, + 0x0401f145, 0x0401f807, 0x42018800, 0x00000001, + 0x04000003, 0x42018800, 0x00000000, 0x1c01f000, + 0x4c580000, 0x4200b000, 0x00000014, 0x8058b040, + 0x0400002a, 0x59c4000d, 0x8c000520, 0x040207fc, + 0x0401f83a, 0x59c4000d, 0x8c000520, 0x040207f8, + 0x59c40808, 0x82040d40, 0x00000100, 0x48078808, + 0x4200b000, 0x000000c8, 0x8058b040, 0x040207ff, + 0x4200b000, 0x00000014, 0x8058b040, 0x04000017, + 0x59c4000d, 0x8c000520, 0x04020014, 0x0401f827, + 0x59c4000d, 0x8c000520, 0x04020010, 0x4200b000, + 0x0000000a, 0x8058b040, 0x04000003, 0x0401f81f, + 0x0401f7fd, 0x4200b000, 0x00000064, 0x59c4000d, + 0x8c00051e, 0x04000005, 0x8058b040, 0x040207fc, + 0x80000580, 0x0401f003, 0x82000540, 0x00000001, + 0x5c00b000, 0x1c01f000, 0x42000800, 0x000000a0, + 0x0401f815, 0x82040500, 0xfffffffe, 0x42000800, + 0x000000a0, 0x0401f818, 0x42000800, 0x00000000, + 0x0401f80d, 0x82040500, 0xfffffffe, 0x42000800, + 0x00000000, 0x0401f010, 0x40000000, 0x40000000, + 0x40000000, 0x40000000, 0x40000000, 0x1c01f000, + 0x40680800, 0x4807880e, 0x59c4080f, 0x82040d00, + 0x000000ff, 0x40058800, 0x1c01f000, 0x40680800, + 0x406c0000, 0x900001c0, 0x80040d40, 0x84040d40, + 0x4807880e, 0x1c01f000, 0x82000d80, 0x00200000, + 0x04000009, 0x82000d80, 0x02000000, 0x04000006, + 0x82000d80, 0x01000000, 0x04000006, 0x59c408a3, + 0x0401f006, 0x59c408a3, 0x84040d30, 0x0401f003, + 0x59c408a3, 0x84040d32, 0x80040540, 0x480388a3, + 0x480788a3, 0x1c01f000, 0x59c400a3, 0x84000556, + 0x480388a3, 0x84000516, 0x480388a3, 0x1c01f000, + 0x485fc857, 0x4863c857, 0x4c640000, 0x4d3c0000, + 0x4d400000, 0x0201f800, 0x001071b4, 0x48635009, + 0x40601800, 0x42002000, 0x00000000, 0x0401fad3, + 0x42000000, 0x0010ce85, 0x0201f800, 0x0010bfb3, + 0x82600500, 0x0000ff00, 0x82000580, 0x0000f700, + 0x04020005, 0x42000000, 0x0010ce6d, 0x0201f800, + 0x0010bfb3, 0x0201f800, 0x0010c0bb, 0x040200a5, + 0x82600d00, 0x0000ff00, 0x42024000, 0x0000ffff, + 0x800409c0, 0x0400001e, 0x82041580, 0x0000f700, + 0x04000016, 0x82041580, 0x0000f800, 0x04000013, + 0x82041580, 0x0000ff00, 0x4200c800, 0x00000000, + 0x04000030, 0x840439c0, 0x0201f800, 0x00101fc9, + 0x0402001b, 0x83200400, 0x0010c10d, 0x50024800, + 0x59240200, 0x8c000500, 0x04000015, 0x4200c800, + 0x00000001, 0x0401f023, 0x42024800, 0x0010cfd1, + 0x59240200, 0x8c000502, 0x0400000d, 0x59c410a3, + 0x82081500, 0x00008000, 0x04000009, 0x59c410a7, + 0x82081500, 0x0000ff00, 0x82081580, 0x0000ff00, + 0x4200c800, 0x00000000, 0x04000012, 0x8d0e1d02, + 0x04020007, 0x8d0e1d00, 0x0402000e, 0x599c1017, + 0x8c08151a, 0x04000065, 0x850e1d42, 0x42024000, + 0x0000ffff, 0x4200c800, 0x00000002, 0x42028000, + 0x00000004, 0x42027800, 0x00000008, 0x0401f005, + 0x850e1d40, 0x42028000, 0x00000004, 0x417a7800, + 0x59a80005, 0x8c000502, 0x04020004, 0x8d0e1d0a, + 0x0402005c, 0x850e1d4a, 0x42000000, 0x0010ce6c, + 0x0201f800, 0x0010bfb3, 0x59a81809, 0x42001000, + 0x00008013, 0x0201f800, 0x001039ac, 0x83200580, + 0x0000ffff, 0x0400001f, 0x59240400, 0x8c000508, + 0x0400000a, 0x417a7800, 0x4d300000, 0x417a6000, + 0x0201f800, 0x0010200c, 0x5c026000, 0x59240400, + 0x8c00050a, 0x04020043, 0x4d400000, 0x82600500, + 0x000000ff, 0x42028800, 0x0000ffff, 0x40643000, + 0x42028000, 0x0000000e, 0x0201f800, 0x0010b195, + 0x42000800, 0x00000001, 0x42001000, 0x00000100, + 0x0201f800, 0x00106753, 0x5c028000, 0x0401f031, + 0x8d0e1d20, 0x04000020, 0x4c580000, 0x42024800, + 0x0010cfd1, 0x0201f800, 0x0010c0ca, 0x4d400000, + 0x59240200, 0x8c000500, 0x04000007, 0x42000800, 0x00000001, 0x42001000, 0x00000100, 0x0201f800, - 0x0010654e, 0x5c028000, 0x0401f031, 0x8d0e1d20, - 0x04000020, 0x4c580000, 0x42024800, 0x0010ccd1, - 0x0201f800, 0x0010bd9f, 0x4d400000, 0x59240200, - 0x8c000500, 0x04000007, 0x42000800, 0x00000001, - 0x42001000, 0x00000100, 0x0201f800, 0x0010654e, - 0x83264c00, 0x0000000b, 0x8058b040, 0x040207f4, - 0x42028000, 0x0000000e, 0x42028800, 0x0000ffff, - 0x40643000, 0x0201f800, 0x0010ae86, 0x5c028000, - 0x5c00b000, 0x599c0817, 0x8c040d0a, 0x04020010, - 0x493fc857, 0x4943c857, 0x0201f800, 0x0010fbe5, - 0x0401f00b, 0x8d0e1d20, 0x04000009, 0x42028000, - 0x0000000f, 0x42028800, 0x0000ffff, 0x42003000, - 0x00000000, 0x0201f800, 0x0010ae89, 0x497b8880, - 0x5c028000, 0x5c027800, 0x5c00c800, 0x1c01f000, - 0x42000800, 0x00000000, 0x0401ff12, 0x82040540, - 0x00000002, 0x42000800, 0x00000000, 0x0401f715, - 0x42000800, 0x00000000, 0x0401ff0a, 0x82040500, - 0xfffffffd, 0x42000800, 0x00000000, 0x0401f70d, - 0x59c408a8, 0x0401fefc, 0x0401fefb, 0x59c400a8, - 0x80040d80, 0x040207fb, 0x1c01f000, 0x4803c856, - 0x4a038807, 0x00000001, 0x497b8807, 0x59c40005, - 0x48038805, 0x497b506d, 0x497b506e, 0x59e00024, - 0x8c000510, 0x04020038, 0x41785800, 0x42006000, - 0x00000001, 0x42006800, 0x00000003, 0x0401f87c, - 0x0401f887, 0x40400000, 0x4803c857, 0x82408580, - 0x00000000, 0x0402002c, 0x41785800, 0x42006000, - 0x00000004, 0x42006800, 0x00000006, 0x0401f870, - 0x0401f87b, 0x40400000, 0x4803c857, 0x82408580, - 0x0000001a, 0x04020020, 0x42005800, 0x00000001, - 0x42006000, 0x0000001e, 0x42006800, 0x00000014, - 0x0401f863, 0x0401f86e, 0x40400000, 0x4803c857, - 0x82408580, 0x0000ffff, 0x04020013, 0x4a03506d, - 0x00000001, 0x4803c856, 0x42001800, 0x001200f5, - 0x0401f9b3, 0x42001800, 0x003a0001, 0x0401f9b0, - 0x42001800, 0x000200f5, 0x0401f9ad, 0x42001800, - 0x00020001, 0x0401f9aa, 0x42001800, 0x00000001, - 0x0401f9a7, 0x1c01f000, 0x42005800, 0x00000000, - 0x42006000, 0x0000001e, 0x40006800, 0x0401f844, - 0x0401f84f, 0x40400000, 0x1c01f000, 0x59a8006d, - 0x80000540, 0x0400003d, 0x5c036000, 0x4db00000, - 0x49b3c857, 0x4c5c0000, 0x4c600000, 0x42000800, - 0x00000001, 0x0401f945, 0x42000000, 0x0000000a, - 0x0401ffea, 0x4000b800, 0x825c0480, 0x00000005, - 0x02021800, 0x0010032e, 0x4200c000, 0x00000008, - 0x825c0480, 0x00000004, 0x04001003, 0x4200c000, - 0x00000004, 0x59c8000b, 0x4803c857, 0x59c4009e, - 0x82000d80, 0x00000003, 0x0402001e, 0x825c0d80, - 0x00000003, 0x0400001b, 0x485fc857, 0x42000000, - 0x00000015, 0x0401ffd1, 0x80600540, 0x4c000000, - 0x41785800, 0x42006000, 0x0000001e, 0x42006800, - 0x00000015, 0x0401f812, 0x5c000000, 0x40006800, - 0x0401f815, 0x82600580, 0x00000004, 0x04000003, - 0x805cb800, 0x0401f7ea, 0x805cb840, 0x825c0580, - 0x00000003, 0x02020800, 0x0010032e, 0x0401f7e4, - 0x5c00c000, 0x5c00b800, 0x1c01f000, 0x41785000, - 0x0401f812, 0x0401f838, 0x40347000, 0x40340800, - 0x0401f03d, 0x42005000, 0x00000001, 0x0401f80b, - 0x0401f831, 0x40340800, 0x0401f037, 0x42005000, - 0x00000002, 0x0401f805, 0x0401f81d, 0x0401f835, - 0x40048000, 0x1c01f000, 0x0401f808, 0x0401f814, - 0x40280800, 0x0401f826, 0x402c0800, 0x0401f827, - 0x40300800, 0x0401f025, 0x42000800, 0x0000ffff, - 0x42001000, 0x00000001, 0x0401f829, 0x42001000, - 0x00000010, 0x0401f826, 0x42000800, 0x0000ffff, - 0x42001000, 0x00000010, 0x0401f021, 0x41780800, - 0x42001000, 0x00000002, 0x0401f01d, 0x0401f946, - 0x4a03d000, 0x00050004, 0x0401f943, 0x4a03d000, - 0x00050005, 0x0401f940, 0x4a03d000, 0x00050004, - 0x42000800, 0x00000001, 0x42001000, 0x00000001, - 0x0401f00f, 0x42000800, 0x00000002, 0x42001000, - 0x00000002, 0x0401f00a, 0x42001000, 0x00000005, - 0x0401f007, 0x42001000, 0x00000010, 0x0401f004, - 0x42001000, 0x00000010, 0x0401f01b, 0x0401f92a, - 0x82082c00, 0x0010bdb6, 0x50142800, 0x82081500, - 0xffffffff, 0x04000013, 0x0401f923, 0x80081040, - 0x80142902, 0x40040000, 0x80140500, 0x04000007, - 0x4a03d000, 0x00070006, 0x0401f91b, 0x4a03d000, - 0x00070007, 0x0401f006, 0x4a03d000, 0x00070004, - 0x0401f915, 0x4a03d000, 0x00070005, 0x0401f7ec, - 0x1c01f000, 0x41780800, 0x82082c00, 0x0010bdb6, - 0x50142800, 0x82081500, 0xffffffff, 0x04000010, - 0x0401f909, 0x4a03d000, 0x00050001, 0x0401f906, - 0x59e81800, 0x80081040, 0x80142902, 0x8c0c1d06, - 0x04000004, 0x40140000, 0x80040d40, 0x0401f8fe, - 0x4a03d000, 0x00070000, 0x0401f7ef, 0x1c01f000, - 0x40681000, 0x4c5c0000, 0x4c080000, 0x42000000, - 0x00000014, 0x0401ff39, 0x4000b800, 0x42000800, - 0x00000001, 0x0401f88d, 0x5c001000, 0x480bc857, - 0x480b506e, 0x59c40001, 0x82000500, 0xffffefff, - 0x48038801, 0x41781800, 0x0401f8d1, 0x41785800, - 0x42006000, 0x0000001e, 0x42006800, 0x00000004, - 0x0401ff6f, 0x42006800, 0x0000003c, 0x0401ff72, - 0x41785800, 0x42006000, 0x0000001e, 0x42006800, - 0x00000004, 0x0401ff66, 0x41786800, 0x0401ff6a, - 0x41785800, 0x42006000, 0x0000001e, 0x41786800, - 0x0401ff5f, 0x42006800, 0x00000002, 0x0401ff62, - 0x42006800, 0x00000001, 0x0401ff59, 0x42006800, - 0x000000f5, 0x0401ff5c, 0x41785800, 0x42006000, - 0x0000001e, 0x42006800, 0x00000004, 0x0401ff50, - 0x42006800, 0x00000020, 0x0401ff53, 0x59a8106e, - 0x0401f872, 0x42001800, 0x000200f5, 0x0401f8a4, - 0x59a8106e, 0x0401f886, 0x41785800, 0x42006000, - 0x0000001e, 0x42006800, 0x00000004, 0x0401ff40, - 0x41786800, 0x0401ff44, 0x42000000, 0x00000015, - 0x0401fef2, 0x82000540, 0x00000002, 0x4c000000, - 0x41785800, 0x42006000, 0x0000001e, 0x42006800, - 0x00000015, 0x0401ff32, 0x5c000000, 0x40006800, - 0x0401ff35, 0x42000000, 0x00000015, 0x0401fee3, - 0x82000500, 0x0000fffd, 0x4c000000, 0x41785800, - 0x42006000, 0x0000001e, 0x42006800, 0x00000015, - 0x0401ff23, 0x5c000000, 0x40006800, 0x0401ff26, - 0x42000000, 0x00000014, 0x0401fed4, 0x82000540, - 0x00000040, 0x4c000000, 0x41785800, 0x42006000, - 0x0000001e, 0x42006800, 0x00000014, 0x0401ff14, - 0x5c000000, 0x40006800, 0x0401ff17, 0x42000000, - 0x00000014, 0x0401fec5, 0x82000500, 0x0000ffbf, + 0x00106753, 0x83264c00, 0x0000000b, 0x8058b040, + 0x040207f4, 0x42028000, 0x0000000e, 0x42028800, + 0x0000ffff, 0x40643000, 0x0201f800, 0x0010b195, + 0x5c028000, 0x5c00b000, 0x599c0817, 0x8c040d0a, + 0x04020010, 0x493fc857, 0x4943c857, 0x0201f800, + 0x0010fef2, 0x0401f00b, 0x8d0e1d20, 0x04000009, + 0x42028000, 0x0000000f, 0x42028800, 0x0000ffff, + 0x42003000, 0x00000000, 0x0201f800, 0x0010b198, + 0x497b8880, 0x5c028000, 0x5c027800, 0x5c00c800, + 0x1c01f000, 0x42000800, 0x00000000, 0x0401ff12, + 0x82040540, 0x00000002, 0x42000800, 0x00000000, + 0x0401f715, 0x42000800, 0x00000000, 0x0401ff0a, + 0x82040500, 0xfffffffd, 0x42000800, 0x00000000, + 0x0401f70d, 0x59c408a8, 0x0401fefc, 0x0401fefb, + 0x59c400a8, 0x80040d80, 0x040207fb, 0x1c01f000, + 0x4803c856, 0x4a038807, 0x00000001, 0x497b8807, + 0x59c40005, 0x48038805, 0x497b506d, 0x497b506e, + 0x59e00024, 0x8c000510, 0x04020038, 0x41785800, + 0x42006000, 0x00000001, 0x42006800, 0x00000003, + 0x0401f87c, 0x0401f887, 0x40400000, 0x4803c857, + 0x82408580, 0x00000000, 0x0402002c, 0x41785800, + 0x42006000, 0x00000004, 0x42006800, 0x00000006, + 0x0401f870, 0x0401f87b, 0x40400000, 0x4803c857, + 0x82408580, 0x0000001a, 0x04020020, 0x42005800, + 0x00000001, 0x42006000, 0x0000001e, 0x42006800, + 0x00000014, 0x0401f863, 0x0401f86e, 0x40400000, + 0x4803c857, 0x82408580, 0x0000ffff, 0x04020013, + 0x4a03506d, 0x00000001, 0x4803c856, 0x42001800, + 0x001200f5, 0x0401f9b3, 0x42001800, 0x003a0001, + 0x0401f9b0, 0x42001800, 0x000200f5, 0x0401f9ad, + 0x42001800, 0x00020001, 0x0401f9aa, 0x42001800, + 0x00000001, 0x0401f9a7, 0x1c01f000, 0x42005800, + 0x00000000, 0x42006000, 0x0000001e, 0x40006800, + 0x0401f844, 0x0401f84f, 0x40400000, 0x1c01f000, + 0x59a8006d, 0x80000540, 0x0400003d, 0x5c036000, + 0x4db00000, 0x49b3c857, 0x4c5c0000, 0x4c600000, + 0x42000800, 0x00000001, 0x0401f945, 0x42000000, + 0x0000000a, 0x0401ffea, 0x4000b800, 0x825c0480, + 0x00000005, 0x02021800, 0x0010032e, 0x4200c000, + 0x00000008, 0x825c0480, 0x00000004, 0x04001003, + 0x4200c000, 0x00000004, 0x59c8000b, 0x4803c857, + 0x59c4009e, 0x82000d80, 0x00000003, 0x0402001e, + 0x825c0d80, 0x00000003, 0x0400001b, 0x485fc857, + 0x42000000, 0x00000015, 0x0401ffd1, 0x80600540, 0x4c000000, 0x41785800, 0x42006000, 0x0000001e, - 0x42006800, 0x00000014, 0x0401ff05, 0x5c000000, - 0x40006800, 0x0401ff08, 0x4a038886, 0x00002020, - 0x41780800, 0x8c5cbd06, 0x04000003, 0x42000800, - 0x00000001, 0x0401f809, 0x59c40001, 0x82000540, - 0x00001000, 0x48038801, 0x0401f867, 0x0401feb4, - 0x5c00b800, 0x1c01f000, 0x59a8006d, 0x80000540, - 0x04000015, 0x4807c857, 0x42000000, 0x00000014, - 0x4c040000, 0x0401fea1, 0x5c000800, 0x84000546, - 0x800409c0, 0x04020002, 0x84000506, 0x4c000000, + 0x42006800, 0x00000015, 0x0401f812, 0x5c000000, + 0x40006800, 0x0401f815, 0x82600580, 0x00000004, + 0x04000003, 0x805cb800, 0x0401f7ea, 0x805cb840, + 0x825c0580, 0x00000003, 0x02020800, 0x0010032e, + 0x0401f7e4, 0x5c00c000, 0x5c00b800, 0x1c01f000, + 0x41785000, 0x0401f812, 0x0401f838, 0x40347000, + 0x40340800, 0x0401f03d, 0x42005000, 0x00000001, + 0x0401f80b, 0x0401f831, 0x40340800, 0x0401f037, + 0x42005000, 0x00000002, 0x0401f805, 0x0401f81d, + 0x0401f835, 0x40048000, 0x1c01f000, 0x0401f808, + 0x0401f814, 0x40280800, 0x0401f826, 0x402c0800, + 0x0401f827, 0x40300800, 0x0401f025, 0x42000800, + 0x0000ffff, 0x42001000, 0x00000001, 0x0401f829, + 0x42001000, 0x00000010, 0x0401f826, 0x42000800, + 0x0000ffff, 0x42001000, 0x00000010, 0x0401f021, + 0x41780800, 0x42001000, 0x00000002, 0x0401f01d, + 0x0401f946, 0x4a03d000, 0x00050004, 0x0401f943, + 0x4a03d000, 0x00050005, 0x0401f940, 0x4a03d000, + 0x00050004, 0x42000800, 0x00000001, 0x42001000, + 0x00000001, 0x0401f00f, 0x42000800, 0x00000002, + 0x42001000, 0x00000002, 0x0401f00a, 0x42001000, + 0x00000005, 0x0401f007, 0x42001000, 0x00000010, + 0x0401f004, 0x42001000, 0x00000010, 0x0401f01b, + 0x0401f92a, 0x82082c00, 0x0010c0fc, 0x50142800, + 0x82081500, 0xffffffff, 0x04000013, 0x0401f923, + 0x80081040, 0x80142902, 0x40040000, 0x80140500, + 0x04000007, 0x4a03d000, 0x00070006, 0x0401f91b, + 0x4a03d000, 0x00070007, 0x0401f006, 0x4a03d000, + 0x00070004, 0x0401f915, 0x4a03d000, 0x00070005, + 0x0401f7ec, 0x1c01f000, 0x41780800, 0x82082c00, + 0x0010c0fc, 0x50142800, 0x82081500, 0xffffffff, + 0x04000010, 0x0401f909, 0x4a03d000, 0x00050001, + 0x0401f906, 0x59e81800, 0x80081040, 0x80142902, + 0x8c0c1d06, 0x04000004, 0x40140000, 0x80040d40, + 0x0401f8fe, 0x4a03d000, 0x00070000, 0x0401f7ef, + 0x1c01f000, 0x40681000, 0x4c5c0000, 0x4c080000, + 0x42000000, 0x00000014, 0x0401ff39, 0x4000b800, + 0x42000800, 0x00000001, 0x0401f88d, 0x5c001000, + 0x480bc857, 0x480b506e, 0x59c40001, 0x82000500, + 0xffffefff, 0x48038801, 0x41781800, 0x0401f8d1, 0x41785800, 0x42006000, 0x0000001e, 0x42006800, - 0x00000014, 0x0401fede, 0x5c000000, 0x40006800, - 0x0401fee1, 0x1c01f000, 0x480bc857, 0x82080580, - 0x00010000, 0x04020007, 0x82040d40, 0x00010000, - 0x42001800, 0x00000001, 0x0401f82d, 0x0401f00f, - 0x82080580, 0x00008000, 0x04000007, 0x82040d40, - 0x00000000, 0x42001800, 0x00900001, 0x0401f824, - 0x0401f006, 0x82040d40, 0x00008000, 0x42001800, - 0x00100001, 0x0401f81e, 0x1c01f000, 0x480bc857, - 0x82080580, 0x00010000, 0x04020008, 0x42001800, - 0x000000a1, 0x0401f816, 0x42001800, 0x000000c1, - 0x0401f813, 0x0401f011, 0x82080580, 0x00008000, - 0x04000008, 0x42001800, 0x000400a1, 0x0401f80c, - 0x42001800, 0x002000c1, 0x0401f809, 0x0401f007, - 0x42001800, 0x000400a1, 0x0401f805, 0x42001800, - 0x000000c1, 0x0401f802, 0x1c01f000, 0x480fc857, - 0x41785800, 0x42006000, 0x0000001e, 0x41786800, - 0x0401fe9f, 0x400c6800, 0x80346960, 0x0401fea2, - 0x42006800, 0x00000001, 0x0401fe99, 0x400c6800, - 0x0401fe9d, 0x42006800, 0x00000003, 0x0401fe94, - 0x0401fe9f, 0x40400000, 0x8c000504, 0x040207fc, - 0x1c01f000, 0x40000000, 0x40000000, 0x40000000, - 0x1c01f000, 0x59a80005, 0x8c000500, 0x0400000a, - 0x59a80008, 0x8c000500, 0x04020007, 0x84000540, - 0x48035008, 0x42001000, 0x00008016, 0x0201f800, - 0x001038bc, 0x1c01f000, 0x4803c856, 0x59a80006, - 0x8c00051e, 0x0402000a, 0x42028800, 0x000007fc, - 0x42003000, 0x00fffffc, 0x0201f800, 0x0010452c, - 0x04020008, 0x0401f809, 0x04000006, 0x4a03501c, - 0x0000ffff, 0x82000540, 0x00000001, 0x1c01f000, - 0x80000580, 0x0401f7fe, 0x4937c857, 0x0201f800, - 0x00107cfe, 0x04000017, 0x4926601c, 0x4936600a, - 0x4a026407, 0x00000001, 0x417a7800, 0x0201f800, - 0x001044e6, 0x42000800, 0x00000003, 0x0201f800, - 0x001044f1, 0x59a8001d, 0x80000000, 0x4803501d, - 0x599c0208, 0x48026c12, 0x42027000, 0x00000002, - 0x0201f800, 0x00020bc1, 0x82000540, 0x00000001, - 0x1c01f000, 0x40681000, 0x0401f807, 0x42018800, - 0x00000000, 0x04000003, 0x42018800, 0x00000001, - 0x1c01f000, 0x480bc857, 0x492fc857, 0x4923c857, - 0x4927c857, 0x4c5c0000, 0x4008b800, 0x42028800, - 0x000007fd, 0x42003000, 0x00fffffd, 0x0201f800, - 0x0010452c, 0x0402001f, 0x5934000a, 0x84000544, - 0x4802680a, 0x0201f800, 0x00107cfe, 0x04000019, - 0x4926601c, 0x4936600a, 0x812e59c0, 0x04000006, - 0x592c0405, 0x8c00051e, 0x04000003, 0x48ee602a, - 0x0401f004, 0x59a8021b, 0x8400055c, 0x4803521b, - 0x492e6009, 0x4a026407, 0x00000001, 0x485e601d, - 0x42027000, 0x00000022, 0x0201f800, 0x00020bc1, - 0x82000540, 0x00000001, 0x5c00b800, 0x1c01f000, - 0x80000580, 0x0401f7fd, 0x4933c857, 0x59a8021b, - 0x8c000508, 0x04020012, 0x5930500a, 0x482bc857, - 0x836c0580, 0x00000002, 0x0402000d, 0x0401f813, - 0x0402000b, 0x58280403, 0x82000580, 0x000007fc, - 0x04000008, 0x59a80016, 0x80000040, 0x4803c857, - 0x02001800, 0x0010032e, 0x48035016, 0x1c01f000, - 0x59a8001d, 0x80000040, 0x4803c857, 0x040017fc, - 0x4803501d, 0x1c01f000, 0x59300009, 0x800001c0, - 0x04020009, 0x59300403, 0x82000580, 0x00000001, - 0x04020004, 0x82000540, 0x00000001, 0x0401f002, - 0x80000580, 0x1c01f000, 0x4933c857, 0x493fc857, - 0x4947c857, 0x4927c857, 0x4d400000, 0x4d340000, - 0x4d440000, 0x4c580000, 0x0201f800, 0x00106c3c, - 0x4df00000, 0x8060c1c0, 0x04020004, 0x4200b000, - 0x00000001, 0x0401f004, 0x4200b000, 0x000007f0, - 0x417a8800, 0x41440000, 0x81ac0400, 0x50000000, - 0x80026d40, 0x04000020, 0x59245005, 0x59340013, - 0x82000500, 0x00ffffff, 0x80280580, 0x0402001a, - 0x4d3c0000, 0x42027800, 0x00000001, 0x0201f800, - 0x0010488c, 0x5c027800, 0x42028000, 0x00000029, - 0x0201f800, 0x00110053, 0x0201f800, 0x0011014a, - 0x0201f800, 0x001101e3, 0x0201f800, 0x0010491a, - 0x04020005, 0x4937c857, 0x4a026c00, 0x00000404, - 0x0401f003, 0x0201f800, 0x0010494e, 0x0201f800, - 0x00110623, 0x81468800, 0x8058b040, 0x040207da, - 0x5c03e000, 0x02000800, 0x00106c29, 0x5c00b000, - 0x5c028800, 0x5c026800, 0x5c028000, 0x1c01f000, - 0x4937c857, 0x4947c857, 0x4c5c0000, 0x4c600000, - 0x4c640000, 0x59a80056, 0x8c000500, 0x0400001f, - 0x599c0017, 0x8c00050a, 0x0402001c, 0x5934ba02, - 0x825cbd00, 0x000000ff, 0x485fc857, 0x4178c000, - 0x4178c800, 0x82600400, 0x0010df51, 0x50002000, - 0x8060c1c0, 0x04000008, 0x82100500, 0x000000ff, - 0x82002d80, 0x000000ff, 0x0400000c, 0x805c0580, - 0x0400000d, 0x80102110, 0x8064c800, 0x82640580, - 0x00000004, 0x040207f5, 0x8060c000, 0x82600580, - 0x00000020, 0x040207eb, 0x4813c857, 0x82000540, - 0x00000001, 0x5c00c800, 0x5c00c000, 0x5c00b800, - 0x1c01f000, 0x59a8021b, 0x8c000512, 0x02020800, - 0x001003f5, 0x1c01f000, 0x4c5c0000, 0x4c600000, - 0x4c640000, 0x4200b000, 0x00000001, 0x42024800, - 0x0010ccd1, 0x417a4000, 0x42028800, 0x000007fe, - 0x0201f800, 0x00104fc6, 0x04000003, 0x0201f800, - 0x0010bda3, 0x5924ba00, 0x8c5cbd00, 0x0400005c, - 0x83240d80, 0x0010ccd1, 0x04020010, 0x825cc500, - 0x000000e0, 0x0402000d, 0x0201f800, 0x00104fc6, - 0x04000004, 0x42000800, 0xffffff1d, 0x0401faa6, - 0x59a8021b, 0x82000500, 0xffffdafc, 0x8400054e, - 0x4803521b, 0x0401f006, 0x82600580, 0x000000e0, - 0x0402004e, 0x8c5cbd0e, 0x04020045, 0x5924c809, - 0x82640400, 0x0000000e, 0x50000000, 0x4803c857, - 0x80026d40, 0x04000012, 0x0201f800, 0x00104fc6, - 0x04000014, 0x59340200, 0x8c00051a, 0x04020038, - 0x59240805, 0x80040910, 0x0400000e, 0x59a80018, - 0x4803c857, 0x4807c857, 0x80040580, 0x04000009, - 0x4a026806, 0xdeaddead, 0x0401f006, 0x42003000, - 0x00fffffe, 0x0201f800, 0x0010452c, 0x0402002f, - 0x0201f800, 0x00107cfe, 0x0400002c, 0x4936600a, - 0x4926601c, 0x4a026407, 0x00000001, 0x417a7800, - 0x0201f800, 0x001044e6, 0x0201f800, 0x0010fbe0, - 0x42000800, 0x00000003, 0x0201f800, 0x001044f1, - 0x49235017, 0x4923c857, 0x59240005, 0x82000500, - 0x000000ff, 0x48024805, 0x836c0580, 0x00000003, - 0x04000004, 0x59a80016, 0x80000000, 0x48035016, - 0x599c0208, 0x48026c12, 0x42027000, 0x00000002, - 0x0201f800, 0x00020bc1, 0x59240200, 0x82000500, - 0xffffff9d, 0x8400054e, 0x48024a00, 0x81224000, - 0x83264c00, 0x0000000b, 0x8058b040, 0x0402079e, - 0x4a035017, 0x0000ffff, 0x5c00c800, 0x5c00c000, - 0x5c00b800, 0x1c01f000, 0x4d300000, 0x4d440000, - 0x4d340000, 0x42028800, 0x000007fe, 0x42003000, - 0x00fffffe, 0x0201f800, 0x0010452c, 0x04020021, - 0x0201f800, 0x00107cfe, 0x0400001e, 0x4927c857, - 0x4923c857, 0x497a6009, 0x4936600a, 0x4926601c, - 0x4a026426, 0x00000021, 0x4a026407, 0x00000001, - 0x42000800, 0x00000003, 0x0201f800, 0x001044f1, - 0x599c0208, 0x48026c12, 0x42027000, 0x00000002, - 0x0201f800, 0x00020bc1, 0x497a4805, 0x59240200, + 0x00000004, 0x0401ff6f, 0x42006800, 0x0000003c, + 0x0401ff72, 0x41785800, 0x42006000, 0x0000001e, + 0x42006800, 0x00000004, 0x0401ff66, 0x41786800, + 0x0401ff6a, 0x41785800, 0x42006000, 0x0000001e, + 0x41786800, 0x0401ff5f, 0x42006800, 0x00000002, + 0x0401ff62, 0x42006800, 0x00000001, 0x0401ff59, + 0x42006800, 0x000000f5, 0x0401ff5c, 0x41785800, + 0x42006000, 0x0000001e, 0x42006800, 0x00000004, + 0x0401ff50, 0x42006800, 0x00000020, 0x0401ff53, + 0x59a8106e, 0x0401f872, 0x42001800, 0x000200f5, + 0x0401f8a4, 0x59a8106e, 0x0401f886, 0x41785800, + 0x42006000, 0x0000001e, 0x42006800, 0x00000004, + 0x0401ff40, 0x41786800, 0x0401ff44, 0x42000000, + 0x00000015, 0x0401fef2, 0x82000540, 0x00000002, + 0x4c000000, 0x41785800, 0x42006000, 0x0000001e, + 0x42006800, 0x00000015, 0x0401ff32, 0x5c000000, + 0x40006800, 0x0401ff35, 0x42000000, 0x00000015, + 0x0401fee3, 0x82000500, 0x0000fffd, 0x4c000000, + 0x41785800, 0x42006000, 0x0000001e, 0x42006800, + 0x00000015, 0x0401ff23, 0x5c000000, 0x40006800, + 0x0401ff26, 0x42000000, 0x00000014, 0x0401fed4, + 0x82000540, 0x00000040, 0x4c000000, 0x41785800, + 0x42006000, 0x0000001e, 0x42006800, 0x00000014, + 0x0401ff14, 0x5c000000, 0x40006800, 0x0401ff17, + 0x42000000, 0x00000014, 0x0401fec5, 0x82000500, + 0x0000ffbf, 0x4c000000, 0x41785800, 0x42006000, + 0x0000001e, 0x42006800, 0x00000014, 0x0401ff05, + 0x5c000000, 0x40006800, 0x0401ff08, 0x4a038886, + 0x00002020, 0x41780800, 0x8c5cbd06, 0x04000003, + 0x42000800, 0x00000001, 0x0401f809, 0x59c40001, + 0x82000540, 0x00001000, 0x48038801, 0x0401f867, + 0x0401feb4, 0x5c00b800, 0x1c01f000, 0x59a8006d, + 0x80000540, 0x04000015, 0x4807c857, 0x42000000, + 0x00000014, 0x4c040000, 0x0401fea1, 0x5c000800, + 0x84000546, 0x800409c0, 0x04020002, 0x84000506, + 0x4c000000, 0x41785800, 0x42006000, 0x0000001e, + 0x42006800, 0x00000014, 0x0401fede, 0x5c000000, + 0x40006800, 0x0401fee1, 0x1c01f000, 0x480bc857, + 0x82080580, 0x00010000, 0x04020007, 0x82040d40, + 0x00010000, 0x42001800, 0x00000001, 0x0401f82d, + 0x0401f00f, 0x82080580, 0x00008000, 0x04000007, + 0x82040d40, 0x00000000, 0x42001800, 0x00900001, + 0x0401f824, 0x0401f006, 0x82040d40, 0x00008000, + 0x42001800, 0x00100001, 0x0401f81e, 0x1c01f000, + 0x480bc857, 0x82080580, 0x00010000, 0x04020008, + 0x42001800, 0x000000a1, 0x0401f816, 0x42001800, + 0x000000c1, 0x0401f813, 0x0401f011, 0x82080580, + 0x00008000, 0x04000008, 0x42001800, 0x000400a1, + 0x0401f80c, 0x42001800, 0x002000c1, 0x0401f809, + 0x0401f007, 0x42001800, 0x000400a1, 0x0401f805, + 0x42001800, 0x000000c1, 0x0401f802, 0x1c01f000, + 0x480fc857, 0x41785800, 0x42006000, 0x0000001e, + 0x41786800, 0x0401fe9f, 0x400c6800, 0x80346960, + 0x0401fea2, 0x42006800, 0x00000001, 0x0401fe99, + 0x400c6800, 0x0401fe9d, 0x42006800, 0x00000003, + 0x0401fe94, 0x0401fe9f, 0x40400000, 0x8c000504, + 0x040207fc, 0x1c01f000, 0x40000000, 0x40000000, + 0x40000000, 0x1c01f000, 0x59a80005, 0x8c000500, + 0x0400000a, 0x59a80008, 0x8c000500, 0x04020007, + 0x84000540, 0x48035008, 0x42001000, 0x00008016, + 0x0201f800, 0x001039ac, 0x1c01f000, 0x4803c856, + 0x59a80006, 0x8c00051e, 0x0402000a, 0x42028800, + 0x000007fc, 0x42003000, 0x00fffffc, 0x0201f800, + 0x00104628, 0x04020008, 0x0401f809, 0x04000006, + 0x4a03501c, 0x0000ffff, 0x82000540, 0x00000001, + 0x1c01f000, 0x80000580, 0x0401f7fe, 0x4937c857, + 0x0201f800, 0x00107ef8, 0x04000017, 0x4926601c, + 0x4936600a, 0x4a026407, 0x00000001, 0x417a7800, + 0x0201f800, 0x001045df, 0x42000800, 0x00000003, + 0x0201f800, 0x001045ea, 0x59a8001d, 0x80000000, + 0x4803501d, 0x599c0208, 0x48026c12, 0x42027000, + 0x00000002, 0x0201f800, 0x00020bc1, 0x82000540, + 0x00000001, 0x1c01f000, 0x40681000, 0x0401f807, + 0x42018800, 0x00000000, 0x04000003, 0x42018800, + 0x00000001, 0x1c01f000, 0x480bc857, 0x492fc857, + 0x4923c857, 0x4927c857, 0x4c5c0000, 0x4008b800, + 0x42028800, 0x000007fd, 0x42003000, 0x00fffffd, + 0x0201f800, 0x00104628, 0x0402001f, 0x5934000a, + 0x84000544, 0x4802680a, 0x0201f800, 0x00107ef8, + 0x04000019, 0x4926601c, 0x4936600a, 0x812e59c0, + 0x04000006, 0x592c0405, 0x8c00051e, 0x04000003, + 0x48ee602a, 0x0401f004, 0x59a8021b, 0x8400055c, + 0x4803521b, 0x492e6009, 0x4a026407, 0x00000001, + 0x485e601d, 0x42027000, 0x00000022, 0x0201f800, + 0x00020bc1, 0x82000540, 0x00000001, 0x5c00b800, + 0x1c01f000, 0x80000580, 0x0401f7fd, 0x4933c857, + 0x59a8021b, 0x8c000508, 0x04020012, 0x5930500a, + 0x482bc857, 0x836c0580, 0x00000002, 0x0402000d, + 0x0401f817, 0x0402000b, 0x58280403, 0x82000580, + 0x000007fc, 0x04000008, 0x59a80016, 0x80000040, + 0x4803c857, 0x02001800, 0x0010032e, 0x48035016, + 0x1c01f000, 0x59300426, 0x82000580, 0x00000021, + 0x040007fc, 0x59a8001d, 0x80000040, 0x4803c857, + 0x040017f8, 0x4803501d, 0x1c01f000, 0x59300009, + 0x800001c0, 0x04020009, 0x59300403, 0x82000580, + 0x00000001, 0x04020004, 0x82000540, 0x00000001, + 0x0401f002, 0x80000580, 0x1c01f000, 0x4933c857, + 0x493fc857, 0x4947c857, 0x4927c857, 0x4d400000, + 0x4d340000, 0x4d440000, 0x4c580000, 0x0201f800, + 0x00106e41, 0x4df00000, 0x8060c1c0, 0x04020004, + 0x4200b000, 0x00000001, 0x0401f004, 0x4200b000, + 0x000007f0, 0x417a8800, 0x41440000, 0x81ac0400, + 0x50000000, 0x80026d40, 0x04000020, 0x59245005, + 0x59340013, 0x82000500, 0x00ffffff, 0x80280580, + 0x0402001a, 0x4d3c0000, 0x42027800, 0x00000001, + 0x0201f800, 0x0010498c, 0x5c027800, 0x42028000, + 0x00000029, 0x0201f800, 0x00110363, 0x0201f800, + 0x00110447, 0x0201f800, 0x001104e0, 0x0201f800, + 0x00104a1c, 0x04020005, 0x4937c857, 0x4a026c00, + 0x00000404, 0x0401f003, 0x0201f800, 0x00104a50, + 0x0201f800, 0x00110916, 0x81468800, 0x8058b040, + 0x040207da, 0x5c03e000, 0x02000800, 0x00106e2e, + 0x5c00b000, 0x5c028800, 0x5c026800, 0x5c028000, + 0x1c01f000, 0x4937c857, 0x4947c857, 0x4c5c0000, + 0x4c600000, 0x4c640000, 0x59a80056, 0x8c000500, + 0x0400001f, 0x599c0017, 0x8c00050a, 0x0402001c, + 0x5934ba02, 0x825cbd00, 0x000000ff, 0x485fc857, + 0x4178c000, 0x4178c800, 0x82600400, 0x0010e251, + 0x50002000, 0x8060c1c0, 0x04000008, 0x82100500, + 0x000000ff, 0x82002d80, 0x000000ff, 0x0400000c, + 0x805c0580, 0x0400000d, 0x80102110, 0x8064c800, + 0x82640580, 0x00000004, 0x040207f5, 0x8060c000, + 0x82600580, 0x00000020, 0x040207eb, 0x4813c857, + 0x82000540, 0x00000001, 0x5c00c800, 0x5c00c000, + 0x5c00b800, 0x1c01f000, 0x59a8021b, 0x8c000512, + 0x02020800, 0x001003f5, 0x1c01f000, 0x4c5c0000, + 0x4c600000, 0x4c640000, 0x4c500000, 0x4200b000, + 0x00000001, 0x42024800, 0x0010cfd1, 0x417a4000, + 0x42028800, 0x000007fe, 0x0201f800, 0x0010c0e8, + 0x04000022, 0x0201f800, 0x0010c0ca, 0x5924ba00, + 0x8c5cbd00, 0x04000088, 0x59a8a21b, 0x8c50a506, + 0x0400000d, 0x825c0500, 0x000000e0, 0x82000580, + 0x000000e0, 0x04000080, 0x0401f88f, 0x59a80016, + 0x4923c857, 0x4803c857, 0x80000000, 0x48035016, + 0x0401f079, 0x8c5cbd1e, 0x04000077, 0x4927c856, + 0x4200b000, 0x00000001, 0x825c0500, 0x000000e1, + 0x48024a00, 0x485fc857, 0x825cc500, 0x000000e0, + 0x04020023, 0x0401f01c, 0x0201f800, 0x001050f7, + 0x04000003, 0x0201f800, 0x0010c0ce, 0x5924ba00, + 0x8c5cbd00, 0x04000064, 0x0201f800, 0x0010c0e8, + 0x04000005, 0x59a8021b, 0x8c00050e, 0x04020014, + 0x0401f004, 0x83240d80, 0x0010cfd1, 0x04020010, + 0x825cc500, 0x000000e0, 0x0402000d, 0x0201f800, + 0x001050f7, 0x04000004, 0x42000800, 0xffffff1d, + 0x0401fad8, 0x59a8021b, 0x82000500, 0xffffdafc, + 0x8400054e, 0x4803521b, 0x0401f006, 0x82600580, + 0x000000e0, 0x04020053, 0x8c5cbd0e, 0x04020046, + 0x5924c809, 0x82640400, 0x0000000e, 0x50000000, + 0x4803c857, 0x80026d40, 0x04000012, 0x0201f800, + 0x001050f7, 0x04000014, 0x59340200, 0x8c00051a, + 0x04020039, 0x59240805, 0x80040910, 0x0400000e, + 0x59a80018, 0x4803c857, 0x4807c857, 0x80040580, + 0x04000009, 0x4a026806, 0xdeaddead, 0x0401f006, + 0x42003000, 0x00fffffe, 0x0201f800, 0x00104628, + 0x04020034, 0x0201f800, 0x00107ef8, 0x04000031, + 0x4936600a, 0x4926601c, 0x4a026407, 0x00000001, + 0x417a7800, 0x0201f800, 0x001045df, 0x0201f800, + 0x0010feed, 0x42000800, 0x00000003, 0x0201f800, + 0x001045ea, 0x49235017, 0x4923c857, 0x59240005, + 0x82000500, 0x000000ff, 0x48024805, 0x836c0580, + 0x00000003, 0x04000004, 0x59a80016, 0x80000000, + 0x48035016, 0x599c0208, 0x48026c12, 0x42027000, + 0x00000002, 0x0201f800, 0x00020bc1, 0x59240200, + 0x82000500, 0xffffff9d, 0x8400054e, 0x8400055e, + 0x48024a00, 0x81224000, 0x83264c00, 0x0000000b, + 0x8058b040, 0x04000005, 0x0201f800, 0x0010c0e8, + 0x0402076f, 0x0401f792, 0x4a035017, 0x0000ffff, + 0x5c00a000, 0x5c00c800, 0x5c00c000, 0x5c00b800, + 0x1c01f000, 0x4d300000, 0x4d440000, 0x4d340000, + 0x42028800, 0x000007fe, 0x42003000, 0x00fffffe, + 0x0201f800, 0x00104628, 0x04020022, 0x0201f800, + 0x00107ef8, 0x0400001f, 0x4927c857, 0x4923c857, + 0x497a6009, 0x4936600a, 0x4926601c, 0x4a026407, + 0x00000001, 0x42000800, 0x00000003, 0x0201f800, + 0x001045ea, 0x599c0208, 0x48026c12, 0x42027000, + 0x00000002, 0x0201f800, 0x00020bc1, 0x59a80a1b, + 0x8c040d06, 0x04020002, 0x497a4805, 0x59240200, 0x82000500, 0xffffff9d, 0x8400054e, 0x48024a00, 0x5c026800, 0x5c028800, 0x5c026000, 0x1c01f000, 0x80000580, 0x0401f7fb, 0x4d200000, 0x4d240000, 0x4c580000, 0x4d340000, 0x4d300000, 0x4d3c0000, - 0x4d380000, 0x4d440000, 0x0201f800, 0x0010486c, - 0x0402000a, 0x0201f800, 0x00104fc6, 0x04000004, - 0x59a8121b, 0x8c081506, 0x04000003, 0x0401ff4b, + 0x4d380000, 0x4d440000, 0x0201f800, 0x0010496c, + 0x0402000a, 0x0201f800, 0x001050f7, 0x04000004, + 0x59a8121b, 0x8c081506, 0x04000003, 0x0401ff18, 0x0401f002, 0x0401f80a, 0x5c028800, 0x5c027000, 0x5c027800, 0x5c026000, 0x5c026800, 0x5c00b000, 0x5c024800, 0x5c024000, 0x1c01f000, 0x4803c856, - 0x4c600000, 0x0201f800, 0x0010bda3, 0x4200c000, - 0x0010cccf, 0x50600000, 0x82024580, 0x0000ffff, - 0x04020004, 0x42024800, 0x0010ccd1, 0x0401f008, + 0x4c600000, 0x0201f800, 0x0010c0ce, 0x4200c000, + 0x0010cfcf, 0x50600000, 0x82024580, 0x0000ffff, + 0x04020004, 0x42024800, 0x0010cfd1, 0x0401f008, 0x8058b480, 0x04000029, 0x04001028, 0x40024000, - 0x82000400, 0x0010bdc7, 0x50024800, 0x4520c000, + 0x82000400, 0x0010c10d, 0x50024800, 0x4520c000, 0x59240005, 0x82000500, 0x000000ff, 0x48024805, 0x59240200, 0x82000500, 0x00000003, 0x82000580, 0x00000003, 0x0402000e, 0x59240400, 0x8c000508, @@ -16490,19 +16557,19 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x4c0c0000, 0x4c080000, 0x4c040000, 0x4d240000, 0x59243c08, 0x59a81817, 0x820c1580, 0x0000ffff, 0x04020003, 0x42001800, 0x00000001, 0x800c1104, - 0x82082400, 0x0010df51, 0x50102000, 0x820c0500, - 0x00000003, 0x0c01f001, 0x00101e62, 0x00101e64, - 0x00101e66, 0x00101e68, 0x40101000, 0x0401f006, + 0x82082400, 0x0010e251, 0x50102000, 0x820c0500, + 0x00000003, 0x0c01f001, 0x00101e9e, 0x00101ea0, + 0x00101ea2, 0x00101ea4, 0x40101000, 0x0401f006, 0x80101110, 0x0401f004, 0x80101120, 0x0401f002, 0x80101130, 0x4c0c0000, 0x82080500, 0x000000ff, 0x801c0d80, 0x0400001f, 0x800001c0, 0x0400001d, 0x40000800, 0x82000580, 0x000000ff, 0x0400001d, - 0x0401f922, 0x04000017, 0x40040000, 0x0201f800, - 0x00105f68, 0x04020021, 0x0201f800, 0x0010458e, - 0x04000005, 0x0201f800, 0x0010fbbe, 0x0400001b, + 0x0401f949, 0x04000017, 0x40040000, 0x0201f800, + 0x00106134, 0x04020021, 0x0201f800, 0x0010468a, + 0x04000005, 0x0201f800, 0x0010febe, 0x0400001b, 0x0401f00c, 0x599c0019, 0x8c00050e, 0x04020009, - 0x0201f800, 0x0010452c, 0x04020014, 0x0201f800, - 0x0010fbe0, 0x0201f800, 0x0010fcd1, 0x0400000f, + 0x0201f800, 0x00104628, 0x04020014, 0x0201f800, + 0x0010feed, 0x0201f800, 0x0010ffe1, 0x0400000f, 0x5c001800, 0x480f5017, 0x800c1800, 0x0401f7c8, 0x5c001800, 0x4a035017, 0x0000ffff, 0x5c024800, 0x5c000800, 0x5c001000, 0x5c001800, 0x5c002000, @@ -16511,308 +16578,342 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x4c540000, 0x4200b000, 0x0000007e, 0x59243c08, 0x59a80017, 0x82001580, 0x0000ffff, 0x04020003, 0x4178a800, 0x0401f004, 0x8058b480, 0x04001024, - 0x4000a800, 0x48575017, 0x8254bc00, 0x00102057, + 0x4000a800, 0x48575017, 0x8254bc00, 0x00102116, 0x505cb800, 0x825cbd00, 0x000000ff, 0x405c0800, - 0x0401f8e2, 0x04000017, 0x405c0000, 0x0201f800, - 0x00105f68, 0x04020018, 0x0201f800, 0x0010458e, - 0x04000005, 0x0201f800, 0x0010fbbe, 0x04000012, + 0x0401f909, 0x04000017, 0x405c0000, 0x0201f800, + 0x00106134, 0x04020018, 0x0201f800, 0x0010468a, + 0x04000005, 0x0201f800, 0x0010febe, 0x04000012, 0x0401f00c, 0x599c0019, 0x8c00050e, 0x04020009, - 0x0201f800, 0x0010452c, 0x0402000b, 0x0201f800, - 0x0010fbe0, 0x0201f800, 0x0010fcd1, 0x04000006, + 0x0201f800, 0x00104628, 0x0402000b, 0x0201f800, + 0x0010feed, 0x0201f800, 0x0010ffe1, 0x04000006, 0x8054a800, 0x8058b040, 0x040207df, 0x4a035017, 0x0000ffff, 0x5c00a800, 0x5c00b000, 0x5c00b800, 0x1c01f000, 0x4c580000, 0x4d440000, 0x4200b000, 0x000007f0, 0x80028d80, 0x0201f800, 0x0002034c, - 0x0402001e, 0x0401fe3f, 0x0400001c, 0x4937c857, - 0x0201f800, 0x00104971, 0x42026000, 0x0011120c, + 0x0402001e, 0x0401fe0c, 0x0400001c, 0x4937c857, + 0x0201f800, 0x00104a73, 0x42026000, 0x0011152c, 0x4936600a, 0x497a6009, 0x4926601c, 0x417a7800, - 0x0201f800, 0x0010fc72, 0x42000000, 0x0010cc23, - 0x0201f800, 0x0010bc88, 0x59240400, 0x8c00050a, + 0x0201f800, 0x0010ff80, 0x42000000, 0x0010cf23, + 0x0201f800, 0x0010bfb3, 0x59240400, 0x8c00050a, 0x0402000a, 0x41782800, 0x42003000, 0x00000008, 0x4d400000, 0x42028000, 0x00000029, 0x0201f800, - 0x0010ae86, 0x5c028000, 0x81468800, 0x8058b040, + 0x0010b195, 0x5c028000, 0x81468800, 0x8058b040, 0x040207de, 0x5c028800, 0x5c00b000, 0x1c01f000, - 0x4d200000, 0x4d240000, 0x4c580000, 0x0201f800, - 0x0010bd9f, 0x8058b040, 0x04000016, 0x42024000, - 0x00000001, 0x42024800, 0x0010ccdc, 0x59a8021b, - 0x8c000514, 0x04000013, 0x59240200, 0x8c000510, - 0x04020007, 0x59241200, 0x8c081500, 0x04000004, - 0x4923c856, 0x0401f815, 0x04000006, 0x81224000, - 0x83264c00, 0x0000000b, 0x8058b040, 0x040207f3, - 0x5c00b000, 0x5c024800, 0x5c024000, 0x1c01f000, - 0x497a4805, 0x59240200, 0x82000500, 0x00000001, - 0x48024a00, 0x83264c00, 0x0000000b, 0x8058b040, - 0x040207f8, 0x0401f7f3, 0x4927c857, 0x4923c857, - 0x59a8021b, 0x8c000514, 0x04000021, 0x4c040000, - 0x42000800, 0x0010ccd1, 0x58040200, 0x8c00050c, - 0x5c000800, 0x0400001a, 0x42028800, 0x000007fe, - 0x42003000, 0x00fffffe, 0x0201f800, 0x0010452c, - 0x04020013, 0x599c0208, 0x48026c12, 0x4d2c0000, - 0x417a5800, 0x0201f800, 0x00109bef, 0x5c025800, - 0x0400000b, 0x59a8005e, 0x80000000, 0x4803505e, - 0x59240200, 0x84000550, 0x84000512, 0x48024a00, - 0x82000540, 0x00000001, 0x1c01f000, 0x80000580, - 0x0401f7fe, 0x4c580000, 0x0201f800, 0x0010bd9f, - 0x417a4000, 0x42000800, 0x0010ccd1, 0x5930001c, - 0x80040580, 0x04000008, 0x81224000, 0x82040c00, - 0x0000000b, 0x8058b040, 0x040207f9, 0x0201f800, - 0x0010032e, 0x4933c857, 0x4923c857, 0x5c00b000, - 0x1c01f000, 0x40683800, 0x4c580000, 0x0201f800, - 0x0010bd9f, 0x417a4000, 0x42024800, 0x0010ccd1, - 0x59a8121b, 0x8c081508, 0x0400000a, 0x821c0d80, - 0x00fffffe, 0x04000022, 0x8c08150c, 0x04000020, - 0x59240005, 0x801c0580, 0x0400001d, 0x0401f017, - 0x82080500, 0x00000028, 0x04020005, 0x59240005, - 0x82000500, 0x000000ff, 0x0401f005, 0x59240200, - 0x8c000500, 0x04000004, 0x59240005, 0x801c0580, - 0x0400000f, 0x81224000, 0x83264c00, 0x0000000b, - 0x8058b040, 0x04000005, 0x82080500, 0x00000028, - 0x040207f3, 0x0401f7ee, 0x42024000, 0x0000ffff, - 0x82000540, 0x00000001, 0x481fc856, 0x4923c857, - 0x5c00b000, 0x1c01f000, 0x4807c857, 0x4c580000, - 0x0201f800, 0x0010bd9f, 0x42006800, 0x0010ccd1, - 0x58340005, 0x82000500, 0x000000ff, 0x80040580, - 0x04000007, 0x82346c00, 0x0000000b, 0x8058b040, - 0x040207f8, 0x82000540, 0x00000001, 0x5c00b000, - 0x1c01f000, 0x4923c857, 0x493fc857, 0x4c580000, - 0x4d400000, 0x4d440000, 0x4d340000, 0x4c5c0000, - 0x0201f800, 0x00106c3c, 0x4df00000, 0x4200b000, - 0x000007f0, 0x417a8800, 0x83440400, 0x0010bf80, - 0x50000000, 0x80026d40, 0x04000021, 0x59340013, - 0x80000130, 0x81200580, 0x0402001d, 0x42028000, - 0x00000029, 0x0201f800, 0x00110053, 0x0201f800, - 0x0011014a, 0x0201f800, 0x001101e3, 0x0201f800, - 0x00110623, 0x8d3e7d1c, 0x04000005, 0x41240800, - 0x0201f800, 0x00104992, 0x0401f00d, 0x8d3e7d06, - 0x04000004, 0x59340200, 0x8c00050e, 0x04020008, - 0x4937c857, 0x4a026c00, 0x00000707, 0x59240400, - 0x8c00050a, 0x02020800, 0x001041e4, 0x81468800, - 0x8058b040, 0x040207d9, 0x8d3e7d02, 0x0400001b, + 0x4927c857, 0x4c5c0000, 0x400cb800, 0x4d200000, + 0x4d240000, 0x4c580000, 0x0201f800, 0x0010c0ca, + 0x417a4000, 0x42024800, 0x0010cfd1, 0x59240200, + 0x8c000500, 0x0400000f, 0x8c5cbd08, 0x04000004, + 0x8400055a, 0x48024a00, 0x0401f00a, 0x82000500, + 0x000000e0, 0x82000580, 0x000000e0, 0x04000005, + 0x4927c857, 0x4923c857, 0x0401f83e, 0x04000006, + 0x81224000, 0x83264c00, 0x0000000b, 0x8058b040, + 0x040207eb, 0x5c00b000, 0x5c024800, 0x5c024000, + 0x5c00b800, 0x1c01f000, 0x40681800, 0x4d200000, + 0x4d240000, 0x4c580000, 0x4c5c0000, 0x400cb800, + 0x485fc857, 0x0201f800, 0x0010c0ca, 0x8058b040, + 0x04000019, 0x42024000, 0x00000001, 0x42024800, + 0x0010cfdc, 0x59a8021b, 0x8c000514, 0x04000017, + 0x59241200, 0x8c081510, 0x0402000a, 0x8c081500, + 0x04000008, 0x8c5cbd08, 0x04000004, 0x8408155a, + 0x480a4a00, 0x0401f003, 0x0401f816, 0x04000006, + 0x81224000, 0x83264c00, 0x0000000b, 0x8058b040, + 0x040207f0, 0x5c00b800, 0x5c00b000, 0x5c024800, + 0x5c024000, 0x1c01f000, 0x497a4805, 0x59240200, + 0x82000500, 0x00000001, 0x48024a00, 0x83264c00, + 0x0000000b, 0x8058b040, 0x040207f8, 0x0401f7f2, + 0x4927c857, 0x4923c857, 0x59a8021b, 0x8c000514, + 0x0400001a, 0x42028800, 0x000007fe, 0x42003000, + 0x00fffffe, 0x0201f800, 0x00104628, 0x04020013, + 0x599c0208, 0x48026c12, 0x4d2c0000, 0x417a5800, + 0x0201f800, 0x00109e27, 0x5c025800, 0x0400000b, + 0x59a8005e, 0x80000000, 0x4803505e, 0x59240200, + 0x84000550, 0x84000512, 0x48024a00, 0x82000540, + 0x00000001, 0x1c01f000, 0x80000580, 0x0401f7fe, + 0x4c580000, 0x0201f800, 0x0010c0ca, 0x417a4000, + 0x42000800, 0x0010cfd1, 0x5930001c, 0x80040580, + 0x04000008, 0x81224000, 0x82040c00, 0x0000000b, + 0x8058b040, 0x040207f9, 0x0201f800, 0x0010032e, + 0x4933c857, 0x4923c857, 0x5c00b000, 0x1c01f000, + 0x40683800, 0x4c580000, 0x0201f800, 0x0010c0ca, + 0x417a4000, 0x42024800, 0x0010cfd1, 0x59a8121b, + 0x8c081508, 0x0400000a, 0x821c0d80, 0x00fffffe, + 0x04000022, 0x8c08150c, 0x04000020, 0x59240005, + 0x801c0580, 0x0400001d, 0x0401f017, 0x82080500, + 0x00000028, 0x04020005, 0x59240005, 0x82000500, + 0x000000ff, 0x0401f005, 0x59240200, 0x8c000500, + 0x04000004, 0x59240005, 0x801c0580, 0x0400000f, + 0x81224000, 0x83264c00, 0x0000000b, 0x8058b040, + 0x04000005, 0x82080500, 0x00000028, 0x040207f3, + 0x0401f7ee, 0x42024000, 0x0000ffff, 0x82000540, + 0x00000001, 0x481fc856, 0x4923c857, 0x5c00b000, + 0x1c01f000, 0x4807c857, 0x4c580000, 0x0201f800, + 0x0010c0ca, 0x42006800, 0x0010cfd1, 0x58340005, + 0x82000500, 0x000000ff, 0x80040580, 0x04000007, + 0x82346c00, 0x0000000b, 0x8058b040, 0x040207f8, + 0x82000540, 0x00000001, 0x5c00b000, 0x1c01f000, + 0x4923c857, 0x493fc857, 0x4c580000, 0x4d400000, + 0x4d440000, 0x4d340000, 0x4c5c0000, 0x0201f800, + 0x00106e41, 0x4df00000, 0x4200b000, 0x000007f0, + 0x417a8800, 0x83440400, 0x0010c280, 0x50000000, + 0x80026d40, 0x04000022, 0x59340013, 0x80000130, + 0x81200580, 0x0402001e, 0x42028000, 0x00000029, + 0x0201f800, 0x00110363, 0x0201f800, 0x00110447, + 0x0201f800, 0x001104e0, 0x0201f800, 0x00110916, + 0x8d3e7d1c, 0x04000005, 0x41240800, 0x0201f800, + 0x00104a94, 0x0401f00e, 0x8d3e7d06, 0x04000004, + 0x59340200, 0x8c00050e, 0x04020009, 0x4937c857, + 0x497a6c0b, 0x4a026c00, 0x00000707, 0x59240400, + 0x8c00050a, 0x02020800, 0x001042dd, 0x81468800, + 0x8058b040, 0x040207d8, 0x8d3e7d02, 0x0400001b, 0x4200b000, 0x00000010, 0x5924b809, 0x505c0000, 0x80026d40, 0x04000012, 0x59368c03, 0x0201f800, - 0x00110053, 0x0201f800, 0x0011014a, 0x0201f800, - 0x001101e3, 0x0201f800, 0x00110623, 0x8d3e7d1c, - 0x04020004, 0x0201f800, 0x001041e4, 0x0401f004, - 0x41240800, 0x0201f800, 0x00104992, 0x805cb800, + 0x00110363, 0x0201f800, 0x00110447, 0x0201f800, + 0x001104e0, 0x0201f800, 0x00110916, 0x8d3e7d1c, + 0x04020004, 0x0201f800, 0x001042dd, 0x0401f004, + 0x41240800, 0x0201f800, 0x00104a94, 0x805cb800, 0x8058b040, 0x040207ea, 0x4d300000, 0x42028800, - 0x0000ffff, 0x42026000, 0x0011120c, 0x497a600a, - 0x4926601c, 0x42028000, 0x00000029, 0x0201f800, - 0x00110053, 0x0201f800, 0x00110623, 0x5c026000, - 0x5c03e000, 0x02000800, 0x00106c29, 0x5c00b800, - 0x5c026800, 0x5c028800, 0x5c028000, 0x5c00b000, - 0x1c01f000, 0x4807c857, 0x4c580000, 0x0201f800, - 0x0010bd9f, 0x42001000, 0x0010ccd1, 0x58080200, - 0x80040500, 0x48001200, 0x82081400, 0x0000000b, - 0x8058b040, 0x040207fa, 0x5c00b000, 0x1c01f000, - 0x4803c856, 0x4d440000, 0x4d340000, 0x4c580000, - 0x4c5c0000, 0x4200b000, 0x00000010, 0x42028800, - 0x000007f0, 0x5924b809, 0x83440580, 0x000007fe, - 0x04000006, 0x505e6800, 0x813669c0, 0x04000003, - 0x0201f800, 0x001041e4, 0x81468800, 0x805cb800, - 0x8058b040, 0x040207f5, 0x5c00b800, 0x5c00b000, - 0x5c026800, 0x5c028800, 0x1c01f000, 0x4923c857, - 0x42028800, 0x000007fe, 0x42003000, 0x00fffffe, - 0x0201f800, 0x0010452c, 0x04020013, 0x599c0208, - 0x48026c12, 0x4d2c0000, 0x417a5800, 0x0201f800, - 0x00109bef, 0x5c025800, 0x0400000b, 0x59a8005e, - 0x80000000, 0x4803505e, 0x59240200, 0x84000550, - 0x84000512, 0x48024a00, 0x82000540, 0x00000001, - 0x1c01f000, 0x80000580, 0x0401f7fe, 0x00007eef, - 0x00007de8, 0x00007ce4, 0x000080e2, 0x00007be1, - 0x000080e0, 0x000080dc, 0x000080da, 0x00007ad9, - 0x000080d6, 0x000080d5, 0x000080d4, 0x000080d3, - 0x000080d2, 0x000080d1, 0x000079ce, 0x000078cd, - 0x000080cc, 0x000080cb, 0x000080ca, 0x000080c9, - 0x000080c7, 0x000080c6, 0x000077c5, 0x000076c3, - 0x000080bc, 0x000080ba, 0x000075b9, 0x000080b6, - 0x000074b5, 0x000073b4, 0x000072b3, 0x000080b2, - 0x000080b1, 0x000080ae, 0x000071ad, 0x000080ac, - 0x000070ab, 0x00006faa, 0x00006ea9, 0x000080a7, - 0x00006da6, 0x00006ca5, 0x00006ba3, 0x00006a9f, - 0x0000699e, 0x0000689d, 0x0000809b, 0x00008098, - 0x00006797, 0x00006690, 0x0000658f, 0x00006488, - 0x00006384, 0x00006282, 0x00008081, 0x00008080, - 0x0000617c, 0x0000607a, 0x00008079, 0x00005f76, - 0x00008075, 0x00008074, 0x00008073, 0x00008072, - 0x00008071, 0x0000806e, 0x00005e6d, 0x0000806c, - 0x00005d6b, 0x00005c6a, 0x00005b69, 0x00008067, - 0x00005a66, 0x00005965, 0x00005863, 0x0000575c, - 0x0000565a, 0x00005559, 0x00008056, 0x00008055, - 0x00005454, 0x00005353, 0x00005252, 0x00005151, - 0x0000504e, 0x00004f4d, 0x0000804c, 0x0000804b, - 0x00004e4a, 0x00004d49, 0x00008047, 0x00004c46, - 0x00008045, 0x00008043, 0x0000803c, 0x0000803a, - 0x00008039, 0x00008036, 0x00004b35, 0x00008034, - 0x00004a33, 0x00004932, 0x00004831, 0x0000802e, - 0x0000472d, 0x0000462c, 0x0000452b, 0x0000442a, - 0x00004329, 0x00004227, 0x00008026, 0x00008025, - 0x00004123, 0x0000401f, 0x00003f1e, 0x00003e1d, - 0x00003d1b, 0x00003c18, 0x00008017, 0x00008010, - 0x00003b0f, 0x00003a08, 0x00008004, 0x00003902, - 0x00008001, 0x00008000, 0x00008000, 0x00003800, - 0x00003700, 0x00003600, 0x00008000, 0x00003500, - 0x00008000, 0x00008000, 0x00008000, 0x00003400, + 0x0000ffff, 0x42026000, 0x0011152c, 0x4a02600a, + 0x0010e23c, 0x0201f800, 0x00104d9c, 0x4926601c, + 0x42028000, 0x00000029, 0x0201f800, 0x00110363, + 0x0201f800, 0x00110916, 0x5c026000, 0x5c03e000, + 0x02000800, 0x00106e2e, 0x5c00b800, 0x5c026800, + 0x5c028800, 0x5c028000, 0x5c00b000, 0x1c01f000, + 0x4807c857, 0x4c580000, 0x0201f800, 0x0010c0ca, + 0x42001000, 0x0010cfd1, 0x58080200, 0x80040500, + 0x48001200, 0x82081400, 0x0000000b, 0x8058b040, + 0x040207fa, 0x5c00b000, 0x1c01f000, 0x4803c856, + 0x4d440000, 0x4d340000, 0x4c580000, 0x4c5c0000, + 0x4200b000, 0x00000010, 0x42028800, 0x000007f0, + 0x5924b809, 0x83440580, 0x000007fe, 0x04000006, + 0x505e6800, 0x813669c0, 0x04000003, 0x0201f800, + 0x001042dd, 0x81468800, 0x805cb800, 0x8058b040, + 0x040207f5, 0x5c00b800, 0x5c00b000, 0x5c026800, + 0x5c028800, 0x1c01f000, 0x4923c857, 0x42028800, + 0x000007fe, 0x42003000, 0x00fffffe, 0x0201f800, + 0x00104628, 0x04020013, 0x599c0208, 0x48026c12, + 0x4d2c0000, 0x417a5800, 0x0201f800, 0x00109e27, + 0x5c025800, 0x0400000b, 0x59a8005e, 0x80000000, + 0x4803505e, 0x59240200, 0x84000550, 0x84000512, + 0x48024a00, 0x82000540, 0x00000001, 0x1c01f000, + 0x80000580, 0x0401f7fe, 0x4923c857, 0x4d300000, + 0x4d440000, 0x42028800, 0x000007fe, 0x42003000, + 0x00fffffe, 0x0201f800, 0x00104628, 0x04020021, + 0x0201f800, 0x00107ef8, 0x0400001e, 0x497a6009, + 0x4936600a, 0x4926601c, 0x4a026407, 0x00000001, + 0x42000800, 0x00000003, 0x0201f800, 0x001045ea, + 0x599c0208, 0x48026c12, 0x42027000, 0x00000002, + 0x0201f800, 0x00020bc1, 0x59240200, 0x4927c857, + 0x82000500, 0xffffff9d, 0x8400054e, 0x48024a00, + 0x59a8021b, 0x82000500, 0xffffdafc, 0x8400054e, + 0x4803521b, 0x5c028800, 0x5c026000, 0x1c01f000, + 0x80000580, 0x0401f7fc, 0x4c580000, 0x0201f800, + 0x0010c0ca, 0x485bc857, 0x41782800, 0x42002000, + 0x0010cfd1, 0x58100200, 0x82000500, 0x00000003, + 0x82000580, 0x00000003, 0x04020004, 0x82000540, + 0x00000001, 0x0401f006, 0x80142800, 0x82102400, + 0x0000000b, 0x8058b040, 0x040207f3, 0x5c00b000, + 0x1c01f000, 0x0401f807, 0x42018800, 0x00000000, + 0x04000003, 0x42018800, 0x00000001, 0x1c01f000, + 0x4c580000, 0x0201f800, 0x0010c0ca, 0x42001000, + 0x0010cfd1, 0x58080200, 0x8c00051a, 0x04020005, + 0x82081400, 0x0000000b, 0x8058b040, 0x040207fa, + 0x5c00b000, 0x1c01f000, 0x00007eef, 0x00007de8, + 0x00007ce4, 0x000080e2, 0x00007be1, 0x000080e0, + 0x000080dc, 0x000080da, 0x00007ad9, 0x000080d6, + 0x000080d5, 0x000080d4, 0x000080d3, 0x000080d2, + 0x000080d1, 0x000079ce, 0x000078cd, 0x000080cc, + 0x000080cb, 0x000080ca, 0x000080c9, 0x000080c7, + 0x000080c6, 0x000077c5, 0x000076c3, 0x000080bc, + 0x000080ba, 0x000075b9, 0x000080b6, 0x000074b5, + 0x000073b4, 0x000072b3, 0x000080b2, 0x000080b1, + 0x000080ae, 0x000071ad, 0x000080ac, 0x000070ab, + 0x00006faa, 0x00006ea9, 0x000080a7, 0x00006da6, + 0x00006ca5, 0x00006ba3, 0x00006a9f, 0x0000699e, + 0x0000689d, 0x0000809b, 0x00008098, 0x00006797, + 0x00006690, 0x0000658f, 0x00006488, 0x00006384, + 0x00006282, 0x00008081, 0x00008080, 0x0000617c, + 0x0000607a, 0x00008079, 0x00005f76, 0x00008075, + 0x00008074, 0x00008073, 0x00008072, 0x00008071, + 0x0000806e, 0x00005e6d, 0x0000806c, 0x00005d6b, + 0x00005c6a, 0x00005b69, 0x00008067, 0x00005a66, + 0x00005965, 0x00005863, 0x0000575c, 0x0000565a, + 0x00005559, 0x00008056, 0x00008055, 0x00005454, + 0x00005353, 0x00005252, 0x00005151, 0x0000504e, + 0x00004f4d, 0x0000804c, 0x0000804b, 0x00004e4a, + 0x00004d49, 0x00008047, 0x00004c46, 0x00008045, + 0x00008043, 0x0000803c, 0x0000803a, 0x00008039, + 0x00008036, 0x00004b35, 0x00008034, 0x00004a33, + 0x00004932, 0x00004831, 0x0000802e, 0x0000472d, + 0x0000462c, 0x0000452b, 0x0000442a, 0x00004329, + 0x00004227, 0x00008026, 0x00008025, 0x00004123, + 0x0000401f, 0x00003f1e, 0x00003e1d, 0x00003d1b, + 0x00003c18, 0x00008017, 0x00008010, 0x00003b0f, + 0x00003a08, 0x00008004, 0x00003902, 0x00008001, + 0x00008000, 0x00008000, 0x00003800, 0x00003700, + 0x00003600, 0x00008000, 0x00003500, 0x00008000, + 0x00008000, 0x00008000, 0x00003400, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, - 0x00008000, 0x00008000, 0x00003300, 0x00003200, + 0x00008000, 0x00003300, 0x00003200, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, - 0x00008000, 0x00008000, 0x00003100, 0x00003000, - 0x00008000, 0x00008000, 0x00002f00, 0x00008000, - 0x00002e00, 0x00002d00, 0x00002c00, 0x00008000, - 0x00008000, 0x00008000, 0x00002b00, 0x00008000, - 0x00002a00, 0x00002900, 0x00002800, 0x00008000, - 0x00002700, 0x00002600, 0x00002500, 0x00002400, - 0x00002300, 0x00002200, 0x00008000, 0x00008000, - 0x00002100, 0x00002000, 0x00001f00, 0x00001e00, - 0x00001d00, 0x00001c00, 0x00008000, 0x00008000, - 0x00001b00, 0x00001a00, 0x00008000, 0x00001900, + 0x00008000, 0x00003100, 0x00003000, 0x00008000, + 0x00008000, 0x00002f00, 0x00008000, 0x00002e00, + 0x00002d00, 0x00002c00, 0x00008000, 0x00008000, + 0x00008000, 0x00002b00, 0x00008000, 0x00002a00, + 0x00002900, 0x00002800, 0x00008000, 0x00002700, + 0x00002600, 0x00002500, 0x00002400, 0x00002300, + 0x00002200, 0x00008000, 0x00008000, 0x00002100, + 0x00002000, 0x00001f00, 0x00001e00, 0x00001d00, + 0x00001c00, 0x00008000, 0x00008000, 0x00001b00, + 0x00001a00, 0x00008000, 0x00001900, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, - 0x00008000, 0x00008000, 0x00001800, 0x00008000, - 0x00001700, 0x00001600, 0x00001500, 0x00008000, - 0x00001400, 0x00001300, 0x00001200, 0x00001100, - 0x00001000, 0x00000f00, 0x00008000, 0x00008000, - 0x00000e00, 0x00000d00, 0x00000c00, 0x00000b00, - 0x00000a00, 0x00000900, 0x00008000, 0x00008000, - 0x00000800, 0x00000700, 0x00008000, 0x00000600, - 0x00008000, 0x00008000, 0x00008000, 0x00000500, - 0x00000400, 0x00000300, 0x00008000, 0x00000200, - 0x00008000, 0x00008000, 0x00008000, 0x00000100, + 0x00008000, 0x00001800, 0x00008000, 0x00001700, + 0x00001600, 0x00001500, 0x00008000, 0x00001400, + 0x00001300, 0x00001200, 0x00001100, 0x00001000, + 0x00000f00, 0x00008000, 0x00008000, 0x00000e00, + 0x00000d00, 0x00000c00, 0x00000b00, 0x00000a00, + 0x00000900, 0x00008000, 0x00008000, 0x00000800, + 0x00000700, 0x00008000, 0x00000600, 0x00008000, + 0x00008000, 0x00008000, 0x00000500, 0x00000400, + 0x00000300, 0x00008000, 0x00000200, 0x00008000, + 0x00008000, 0x00008000, 0x00000100, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, - 0x00008000, 0x00008000, 0x00000000, 0x00008000, + 0x00008000, 0x00000000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, - 0x00008000, 0x00008000, 0x00008000, 0x0201f800, - 0x0010056e, 0x02000800, 0x0010032e, 0x492f4017, - 0x1c01f000, 0x83a0ac00, 0x00000007, 0x83a00580, - 0x0010c7ff, 0x0400000c, 0x492fc857, 0x812e59c0, - 0x02000800, 0x0010032e, 0x832ca400, 0x00000007, - 0x4200b000, 0x0000000d, 0x0201f800, 0x0010bd5b, - 0x0401f00f, 0x4200b000, 0x00000010, 0x83e0a400, - 0x00000020, 0x50500000, 0x8050a000, 0x50500800, - 0x900409c0, 0x80040540, 0x4400a800, 0x8050a000, - 0x8054a800, 0x8058b040, 0x040207f7, 0x1c01f000, - 0x59a00207, 0x82000c80, 0x0000007f, 0x040210bf, - 0x0c01f001, 0x00102207, 0x0010223e, 0x0010223e, - 0x0010228d, 0x001022a9, 0x0010223e, 0x00102207, - 0x001022c5, 0x001022d6, 0x0010223e, 0x0010223e, - 0x001022e3, 0x001022fb, 0x00102313, 0x0010223e, - 0x0010233a, 0x00102364, 0x0010223e, 0x0010238d, - 0x0010223e, 0x00102459, 0x0010223e, 0x0010223e, - 0x0010223e, 0x0010223e, 0x00102484, 0x001024e7, - 0x0010223e, 0x0010223e, 0x0010223e, 0x0010223e, - 0x0010223e, 0x00102542, 0x0010223e, 0x0010259d, - 0x0010223e, 0x0010223e, 0x0010223e, 0x0010223e, - 0x001025a2, 0x00102633, 0x0010223e, 0x0010263b, - 0x0010223e, 0x0010223e, 0x0010223e, 0x0010223e, - 0x0010223e, 0x0010263d, 0x001026c6, 0x001028a1, - 0x0010223e, 0x0010223e, 0x0010223e, 0x0010223e, - 0x0010223e, 0x001028b0, 0x0010223e, 0x001028cd, - 0x0010223e, 0x0010223e, 0x0010223e, 0x0010223e, - 0x0010223e, 0x001028f8, 0x0010294b, 0x001029a7, - 0x001029c5, 0x0010f414, 0x0010fa05, 0x00102a11, - 0x0010223e, 0x00102f61, 0x00102b68, 0x00102baf, - 0x0010223e, 0x0010223e, 0x0010223e, 0x0010223e, - 0x0010223e, 0x0010223e, 0x0010223e, 0x0010223e, - 0x00102bd4, 0x00102c48, 0x0010223e, 0x0010223e, - 0x00102cb6, 0x0010223e, 0x00102d59, 0x00102e09, - 0x0010223e, 0x0010223e, 0x00102e9b, 0x00102f05, - 0x0010223e, 0x00102f61, 0x001031ce, 0x0010223e, - 0x001031e2, 0x0010326d, 0x0010223e, 0x0010223e, - 0x0010223e, 0x0010223e, 0x001032d3, 0x001032e5, - 0x00103308, 0x0010223e, 0x001033aa, 0x0010223e, - 0x0010223e, 0x001033f2, 0x0010223e, 0x00103426, - 0x0010223e, 0x0010223e, 0x0010348d, 0x001035ec, - 0x00103649, 0x0010223e, 0x001036ab, 0x0010223e, - 0x0010223e, 0x00103700, 0x00103793, 0x0010223e, - 0x48efc857, 0x4031d800, 0x58ef400a, 0x58ec0002, - 0x82000580, 0x00000200, 0x0400003c, 0x48efc857, - 0x4a034207, 0x00004000, 0x0201f800, 0x0010388b, - 0x83a00580, 0x0010c7ff, 0x0400000e, 0x58ee5809, - 0x4d2c0000, 0x0401f84d, 0x41a25800, 0x0201f800, - 0x00100594, 0x40ee5800, 0x0201f800, 0x00100594, - 0x5c025800, 0x492fc857, 0x0201f000, 0x000203ef, - 0x04026007, 0x59a0001e, 0x84000542, 0x4803401e, - 0x4a01d808, 0x0010221c, 0x1c01f000, 0x59a00207, - 0x82000d80, 0x00004000, 0x04000006, 0x900001c0, - 0x82000540, 0x00000011, 0x4803c011, 0x0401f005, - 0x900001c0, 0x82000540, 0x00000010, 0x4803c011, - 0x0401f841, 0x4a03c017, 0x00000000, 0x4203e000, - 0x30000001, 0x4203e000, 0x40000000, 0x40ee5800, - 0x0201f800, 0x00100594, 0x59a0001e, 0x84000504, - 0x4803401e, 0x1c01f000, 0x4803c856, 0x4a034207, - 0x00004001, 0x0401f7c9, 0x4803c856, 0x4a034207, - 0x00004002, 0x0401f7c5, 0x4803c856, 0x4a034207, - 0x00004003, 0x0401f7c1, 0x4803c856, 0x4a034207, - 0x00004005, 0x0401f7bd, 0x4803c856, 0x4a034207, - 0x00004006, 0x0401f7b9, 0x4803c856, 0x4a034207, - 0x0000400b, 0x0401f7b5, 0x4803c856, 0x4a034207, - 0x0000400c, 0x0401f7b1, 0x4803c856, 0x4a034207, - 0x0000400c, 0x0401f7ad, 0x4c580000, 0x4c500000, - 0x4c540000, 0x58eca809, 0x8054a9c0, 0x02000800, - 0x0010032e, 0x83a0a400, 0x00000007, 0x8254ac00, - 0x00000007, 0x4200b000, 0x0000000d, 0x0201f800, - 0x0010bd5b, 0x5c00a800, 0x5c00a000, 0x5c00b000, - 0x1c01f000, 0x4c580000, 0x4c500000, 0x4c540000, - 0x59a00007, 0x4803c857, 0x59a00008, 0x4803c857, - 0x59a00009, 0x4803c857, 0x83e0ac00, 0x00000020, - 0x83a0a400, 0x00000007, 0x4200b000, 0x00000010, - 0x50500000, 0x4400a800, 0x8054a800, 0x900001c0, - 0x4400a800, 0x8054a800, 0x8050a000, 0x8058b040, - 0x040207f8, 0x5c00a800, 0x5c00a000, 0x5c00b000, - 0x1c01f000, 0x59a00407, 0x800000c2, 0x59a00a08, - 0x900409c0, 0x80040540, 0x84000540, 0x59a00c08, - 0x8c040d00, 0x04000012, 0x59a80870, 0x8c040d00, - 0x040207b6, 0x4c000000, 0x0201f800, 0x0010bdab, - 0x5c000000, 0x04000005, 0x48030004, 0x4a030000, - 0x00000000, 0x0401f766, 0x4a030000, 0x00000000, - 0x4a034407, 0x00000004, 0x040007a4, 0x4803880e, - 0x0401f75f, 0x59a00407, 0x800000c2, 0x59a00c08, - 0x8c040d00, 0x04000014, 0x59a80870, 0x8c040d00, - 0x0402079e, 0x4c000000, 0x0201f800, 0x0010bdab, - 0x5c000000, 0x04000007, 0x48030004, 0x59800805, - 0x48074407, 0x4a030000, 0x00000000, 0x0401f74c, - 0x4a030000, 0x00000000, 0x4a034407, 0x00000004, - 0x0400078a, 0x4803880e, 0x59c4080f, 0x48074407, - 0x0401f743, 0x59a01c07, 0x59a00208, 0x900c19c0, - 0x800c1d40, 0x580c0803, 0x80000580, 0x500c1000, - 0x80080400, 0x800c1800, 0x80040840, 0x040207fc, - 0x48034407, 0x900001c0, 0x48034208, 0x800001c0, - 0x04000733, 0x0401f771, 0x4a034407, 0x00000005, - 0x4a034208, 0x00000004, 0x4a034408, 0x00000000, - 0x59a8000a, 0x48034209, 0x900001c0, 0x48034409, - 0x4a03420a, 0x00000496, 0x0401f725, 0x59a00408, + 0x00008000, 0x00008000, 0x0201f800, 0x0010056e, + 0x02000800, 0x0010032e, 0x492f4017, 0x1c01f000, + 0x83a0ac00, 0x00000007, 0x83a00580, 0x0010caff, + 0x0400000c, 0x492fc857, 0x812e59c0, 0x02000800, + 0x0010032e, 0x832ca400, 0x00000007, 0x4200b000, + 0x0000000d, 0x0201f800, 0x0010c086, 0x0401f00f, + 0x4200b000, 0x00000010, 0x83e0a400, 0x00000020, + 0x50500000, 0x8050a000, 0x50500800, 0x900409c0, + 0x80040540, 0x4400a800, 0x8050a000, 0x8054a800, + 0x8058b040, 0x040207f7, 0x1c01f000, 0x59a00207, + 0x82000c80, 0x0000007f, 0x040210bf, 0x0c01f001, + 0x001022c6, 0x001022fd, 0x001022fd, 0x0010234c, + 0x00102368, 0x001022fd, 0x001022c6, 0x00102384, + 0x00102395, 0x001022fd, 0x001022fd, 0x001023a7, + 0x001023bf, 0x001023d7, 0x001022fd, 0x001023fe, + 0x00102428, 0x001022fd, 0x00102451, 0x001022fd, + 0x0010251d, 0x001022fd, 0x001022fd, 0x001022fd, + 0x001022fd, 0x00102548, 0x001025ab, 0x001022fd, + 0x001022fd, 0x001022fd, 0x001022fd, 0x001022fd, + 0x00102606, 0x001022fd, 0x00102661, 0x001022fd, + 0x001022fd, 0x001022fd, 0x001022fd, 0x00102666, + 0x001026f7, 0x001022fd, 0x001026ff, 0x001022fd, + 0x001022fd, 0x001022fd, 0x001022fd, 0x001022fd, + 0x00102701, 0x0010278a, 0x00102965, 0x001022fd, + 0x001022fd, 0x001022fd, 0x001022fd, 0x001022fd, + 0x00102974, 0x001022fd, 0x00102991, 0x001022fd, + 0x001022fd, 0x001022fd, 0x001022fd, 0x001022fd, + 0x001029bc, 0x00102a0f, 0x00102a6b, 0x00102a89, + 0x0010f714, 0x0010fd05, 0x00102ad5, 0x001022fd, + 0x00103025, 0x00102c2c, 0x00102c73, 0x001022fd, + 0x001022fd, 0x001022fd, 0x001022fd, 0x001022fd, + 0x001022fd, 0x001022fd, 0x001022fd, 0x00102c98, + 0x00102d0c, 0x001022fd, 0x001022fd, 0x00102d7a, + 0x001022fd, 0x00102e1d, 0x00102ecd, 0x001022fd, + 0x001022fd, 0x00102f5f, 0x00102fc9, 0x001022fd, + 0x00103025, 0x001032be, 0x001022fd, 0x001032d2, + 0x0010335d, 0x001022fd, 0x001022fd, 0x001022fd, + 0x001022fd, 0x001033c3, 0x001033d5, 0x001033f8, + 0x001022fd, 0x0010349a, 0x001022fd, 0x001022fd, + 0x001034e2, 0x001022fd, 0x00103516, 0x001022fd, + 0x001022fd, 0x0010357d, 0x001036dc, 0x00103739, + 0x001022fd, 0x0010379b, 0x001022fd, 0x001022fd, + 0x001037f0, 0x00103883, 0x001022fd, 0x48efc857, + 0x4031d800, 0x58ef400a, 0x58ec0002, 0x82000580, + 0x00000200, 0x0400003c, 0x48efc857, 0x4a034207, + 0x00004000, 0x0201f800, 0x0010397b, 0x83a00580, + 0x0010caff, 0x0400000e, 0x58ee5809, 0x4d2c0000, + 0x0401f84d, 0x41a25800, 0x0201f800, 0x00100594, + 0x40ee5800, 0x0201f800, 0x00100594, 0x5c025800, + 0x492fc857, 0x0201f000, 0x000203ef, 0x04026007, + 0x59a0001e, 0x84000542, 0x4803401e, 0x4a01d808, + 0x001022db, 0x1c01f000, 0x59a00207, 0x82000d80, + 0x00004000, 0x04000006, 0x900001c0, 0x82000540, + 0x00000011, 0x4803c011, 0x0401f005, 0x900001c0, + 0x82000540, 0x00000010, 0x4803c011, 0x0401f841, + 0x4a03c017, 0x00000000, 0x4203e000, 0x30000001, + 0x4203e000, 0x40000000, 0x40ee5800, 0x0201f800, + 0x00100594, 0x59a0001e, 0x84000504, 0x4803401e, + 0x1c01f000, 0x4803c856, 0x4a034207, 0x00004001, + 0x0401f7c9, 0x4803c856, 0x4a034207, 0x00004002, + 0x0401f7c5, 0x4803c856, 0x4a034207, 0x00004003, + 0x0401f7c1, 0x4803c856, 0x4a034207, 0x00004005, + 0x0401f7bd, 0x4803c856, 0x4a034207, 0x00004006, + 0x0401f7b9, 0x4803c856, 0x4a034207, 0x0000400b, + 0x0401f7b5, 0x4803c856, 0x4a034207, 0x0000400c, + 0x0401f7b1, 0x4803c856, 0x4a034207, 0x0000400c, + 0x0401f7ad, 0x4c580000, 0x4c500000, 0x4c540000, + 0x58eca809, 0x8054a9c0, 0x02000800, 0x0010032e, + 0x83a0a400, 0x00000007, 0x8254ac00, 0x00000007, + 0x4200b000, 0x0000000d, 0x0201f800, 0x0010c086, + 0x5c00a800, 0x5c00a000, 0x5c00b000, 0x1c01f000, + 0x4c580000, 0x4c500000, 0x4c540000, 0x59a00007, + 0x4803c857, 0x59a00008, 0x4803c857, 0x59a00009, + 0x4803c857, 0x83e0ac00, 0x00000020, 0x83a0a400, + 0x00000007, 0x4200b000, 0x00000010, 0x50500000, + 0x4400a800, 0x8054a800, 0x900001c0, 0x4400a800, + 0x8054a800, 0x8050a000, 0x8058b040, 0x040207f8, + 0x5c00a800, 0x5c00a000, 0x5c00b000, 0x1c01f000, + 0x59a00407, 0x800000c2, 0x59a00a08, 0x900409c0, + 0x80040540, 0x84000540, 0x59a00c08, 0x8c040d00, + 0x04000012, 0x59a80870, 0x8c040d00, 0x040207b6, + 0x4c000000, 0x0201f800, 0x0010c0d6, 0x5c000000, + 0x04000005, 0x48030004, 0x4a030000, 0x00000000, + 0x0401f766, 0x4a030000, 0x00000000, 0x4a034407, + 0x00000004, 0x040007a4, 0x4803880e, 0x0401f75f, + 0x59a00407, 0x800000c2, 0x59a00c08, 0x8c040d00, + 0x04000014, 0x59a80870, 0x8c040d00, 0x0402079e, + 0x4c000000, 0x0201f800, 0x0010c0d6, 0x5c000000, + 0x04000007, 0x48030004, 0x59800805, 0x48074407, + 0x4a030000, 0x00000000, 0x0401f74c, 0x4a030000, + 0x00000000, 0x4a034407, 0x00000004, 0x0400078a, + 0x4803880e, 0x59c4080f, 0x48074407, 0x0401f743, + 0x59a01c07, 0x59a00208, 0x900c19c0, 0x800c1d40, + 0x580c0803, 0x80000580, 0x500c1000, 0x80080400, + 0x800c1800, 0x80040840, 0x040207fc, 0x48034407, + 0x900001c0, 0x48034208, 0x800001c0, 0x04000733, + 0x0401f771, 0x4a034407, 0x00000005, 0x4a034208, + 0x00000005, 0x4a034408, 0x00000000, 0x59a8000a, + 0x48034209, 0x900001c0, 0x48034409, 0x42000000, + 0x00009496, 0x4803420a, 0x900001c0, 0x4803440e, + 0x4a03400f, 0x00000000, 0x0401f720, 0x59a00408, 0x59a01208, 0x900811c0, 0x80081540, 0x59a0040a, 0x59a01a0a, 0x900c19c0, 0x800c1d40, 0x59a00a09, 0x59a00409, 0x900409c0, 0x80040d40, 0x59a0020b, - 0x82002480, 0x00000010, 0x0400175c, 0x59a02407, + 0x82002480, 0x00000010, 0x04001757, 0x59a02407, 0x900001c0, 0x80100540, 0x59a8280a, 0x80142480, - 0x04001756, 0x0201f000, 0x0010389a, 0x59a00408, + 0x04001751, 0x0201f000, 0x0010398a, 0x59a00408, 0x59a01208, 0x900811c0, 0x80081540, 0x59a0040a, 0x59a01a0a, 0x900c19c0, 0x800c1d40, 0x59a00a09, 0x59a00409, 0x900409c0, 0x80040d40, 0x59a0020b, - 0x82002480, 0x00000010, 0x04001744, 0x59a02407, + 0x82002480, 0x00000010, 0x0400173f, 0x59a02407, 0x900001c0, 0x80100540, 0x59a8280a, 0x80142480, - 0x0400173e, 0x0201f000, 0x001038a3, 0x59a02408, + 0x04001739, 0x0201f000, 0x00103993, 0x59a02408, 0x59a00208, 0x901021c0, 0x80102540, 0x59a01a0b, 0x59a00407, 0x900c19c0, 0x800c1d40, 0x41781000, 0x42000000, 0x00001000, 0x50000000, 0x82000480, 0x24320001, 0x0400100e, 0x820c0580, 0x00007c00, 0x0400000b, 0x820c0480, 0x00007a00, 0x04001008, 0x820c0480, 0x00007cff, 0x04021005, 0x0201f800, - 0x0010bdab, 0x04000008, 0x80081000, 0x44101800, - 0x800811c0, 0x040006d6, 0x4a030000, 0x00000000, - 0x0401f6d3, 0x4a030000, 0x00000000, 0x4a034407, - 0x00000004, 0x0401f711, 0x59a01a0b, 0x59a00407, + 0x0010c0d6, 0x04000008, 0x80081000, 0x44101800, + 0x800811c0, 0x040006d1, 0x4a030000, 0x00000000, + 0x0401f6ce, 0x4a030000, 0x00000000, 0x4a034407, + 0x00000004, 0x0401f70c, 0x59a01a0b, 0x59a00407, 0x900c19c0, 0x800c1d40, 0x41781000, 0x42000000, 0x00001000, 0x50000000, 0x82000480, 0x24320001, 0x0400100e, 0x820c0580, 0x00007c00, 0x0400000b, 0x820c0480, 0x00007a00, 0x04001008, 0x820c0480, - 0x00007cff, 0x04021005, 0x0201f800, 0x0010bdab, + 0x00007cff, 0x04021005, 0x0201f800, 0x0010c0d6, 0x0400000f, 0x80081000, 0x500c0000, 0x82000d00, 0x0000ffff, 0x48074208, 0x82000d00, 0xffff0000, - 0x900409c0, 0x48074408, 0x800811c0, 0x040006ac, - 0x4a030000, 0x00000000, 0x0401f6a9, 0x4a030000, - 0x00000000, 0x4a034407, 0x00000004, 0x0401f6e7, + 0x900409c0, 0x48074408, 0x800811c0, 0x040006a7, + 0x4a030000, 0x00000000, 0x0401f6a4, 0x4a030000, + 0x00000000, 0x4a034407, 0x00000004, 0x0401f6e2, 0x59a00407, 0x8c000500, 0x04000020, 0x59a01208, 0x59a01c08, 0x59a02209, 0x480b5044, 0x480f5045, 0x48135046, 0x59c40801, 0x82040d00, 0x00018000, @@ -16821,13 +16922,13 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x04000007, 0x0201f800, 0x0010032e, 0x40080000, 0x0401f004, 0x400c0000, 0x0401f002, 0x40100000, 0x80000110, 0x42000800, 0x000000e0, 0x0201f800, - 0x00101944, 0x0401f007, 0x59a81044, 0x59a81845, + 0x00101949, 0x0401f007, 0x59a81044, 0x59a81845, 0x59a82046, 0x480b4208, 0x480f4408, 0x48134209, - 0x0401f67b, 0x4d2c0000, 0x4d340000, 0x4d300000, - 0x4d440000, 0x0201f800, 0x00103980, 0x04020007, + 0x0401f676, 0x4d2c0000, 0x4d340000, 0x4d300000, + 0x4d440000, 0x0201f800, 0x00103a70, 0x04020007, 0x4923c857, 0x4927c857, 0x59a28c07, 0x0201f800, - 0x0010497a, 0x04000006, 0x5c028800, 0x5c026000, - 0x5c026800, 0x5c025800, 0x0401f6b0, 0x4937c857, + 0x00104a7c, 0x04000006, 0x5c028800, 0x5c026000, + 0x5c026800, 0x5c025800, 0x0401f6ab, 0x4937c857, 0x59a04408, 0x59a00208, 0x900001c0, 0x80204540, 0x4823c857, 0x0401f88a, 0x04000009, 0x4a034209, 0x00000001, 0x4a034407, 0x0000ffff, 0x4a034208, @@ -16835,7 +16936,7 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x0401f88b, 0x0400004d, 0x59300402, 0x48034407, 0x59300202, 0x48034208, 0x59300006, 0x48034408, 0x59a0020c, 0x8c000500, 0x0400003d, 0x4933c857, - 0x0201f800, 0x0010492d, 0x04000004, 0x4a034407, + 0x0201f800, 0x00104a2f, 0x04000004, 0x4a034407, 0x00000009, 0x0401f03d, 0x8d0e1d0e, 0x04000004, 0x4a034407, 0x00000001, 0x0401f038, 0x836c0580, 0x00000003, 0x04000004, 0x4a034407, 0x00000007, @@ -16844,77 +16945,77 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x82000d80, 0x00000003, 0x04020009, 0x59300804, 0x82040500, 0x0000001f, 0x82000580, 0x00000004, 0x04020003, 0x8c040d3e, 0x04020019, 0x0201f800, - 0x00103876, 0x04020004, 0x4a034407, 0x00000002, + 0x00103966, 0x04020004, 0x4a034407, 0x00000002, 0x0401f01a, 0x492fc857, 0x4a025c05, 0x00008000, - 0x497a5a05, 0x497a5806, 0x0201f800, 0x0010a0d6, + 0x497a5a05, 0x497a5806, 0x0201f800, 0x0010a313, 0x04020004, 0x4a034407, 0x00000003, 0x0401f00f, - 0x4a01d808, 0x00102403, 0x5c028800, 0x5c026000, + 0x4a01d808, 0x001024c7, 0x5c028800, 0x5c026000, 0x5c026800, 0x5c025800, 0x1c01f000, 0x4a034209, 0x00000002, 0x5c028800, 0x5c026000, 0x5c026800, - 0x5c025800, 0x0401f60a, 0x5c028800, 0x5c026000, - 0x5c026800, 0x5c025800, 0x0401f648, 0x492fc857, + 0x5c025800, 0x0401f605, 0x5c028800, 0x5c026000, + 0x5c026800, 0x5c025800, 0x0401f643, 0x492fc857, 0x4933c857, 0x497a6027, 0x592c0006, 0x82000580, 0x01000000, 0x04020004, 0x4a034407, 0x00000004, - 0x0401f63e, 0x4d2c0000, 0x832e5c00, 0x00000007, + 0x0401f639, 0x4d2c0000, 0x832e5c00, 0x00000007, 0x592c0000, 0x82000580, 0x02000000, 0x04020012, 0x4803c856, 0x4a034209, 0x00000004, 0x592c0804, 0x82040500, 0x0000ffff, 0x48034409, 0x80040920, 0x4807420a, 0x592c0805, 0x82040500, 0x0000ffff, 0x4803440a, 0x80040920, 0x4807420b, 0x5c025800, - 0x0401f5e3, 0x4803c856, 0x4a034209, 0x00000005, + 0x0401f5de, 0x4803c856, 0x4a034209, 0x00000005, 0x592c0801, 0x82040500, 0x0000ffff, 0x48034409, 0x80040920, 0x4807420a, 0x0401f7f5, 0x4937c857, 0x4823c857, 0x5934000f, 0x80001d40, 0x04000005, 0x580c0006, 0x80200580, 0x04020003, 0x81780000, 0x1c01f000, 0x580c0000, 0x0401f7f8, 0x4823c857, - 0x4d2c0000, 0x42026000, 0x00111264, 0x59300407, + 0x4d2c0000, 0x42026000, 0x00111584, 0x59300407, 0x82000d80, 0x00000003, 0x04000004, 0x82000d80, 0x00000006, 0x04020007, 0x59325809, 0x812e59c0, 0x04000004, 0x592c0006, 0x80200580, 0x0400000a, 0x83326400, 0x0000002c, 0x59a8000b, 0x81300480, 0x040017ef, 0x417a6000, 0x80000580, 0x5c025800, 0x1c01f000, 0x82000540, 0x00000001, 0x5c025800, - 0x1c01f000, 0x83a00580, 0x0010c7ff, 0x040205e3, + 0x1c01f000, 0x83a00580, 0x0010caff, 0x040205de, 0x59a80070, 0x8c000500, 0x04020003, 0x4a030000, 0x00000000, 0x4a034207, 0x00004000, 0x4a03c011, - 0x40000010, 0x0401fe0c, 0x4a03c017, 0x00000000, + 0x40000010, 0x0401fe07, 0x4a03c017, 0x00000000, 0x59e00002, 0x8c00051e, 0x04020008, 0x42000000, 0x00001000, 0x50000000, 0x82000480, 0x24320002, 0x02000000, 0x0002025f, 0x59a80078, 0x8c00053e, 0x0400000b, 0x42000800, 0x000000a0, 0x0201f800, - 0x0010193c, 0x82040540, 0x00000001, 0x42000800, - 0x000000a0, 0x0201f800, 0x00101944, 0x4203e000, + 0x00101941, 0x82040540, 0x00000001, 0x42000800, + 0x000000a0, 0x0201f800, 0x00101949, 0x4203e000, 0x30000001, 0x4203e000, 0x40000000, 0x0401f000, 0x59a00c07, 0x800409c0, 0x04000007, 0x836c0580, 0x00000000, 0x04000004, 0x4a034407, 0x0000001a, - 0x0401f5be, 0x42007000, 0x0010c89b, 0x58381c01, + 0x0401f5b9, 0x42007000, 0x0010cb9b, 0x58381c01, 0x58382201, 0x58383202, 0x8c040d00, 0x0400000b, - 0x59a01208, 0x82080500, 0x0000f003, 0x040205b7, - 0x82080480, 0x00000841, 0x040215b4, 0x82080480, - 0x00000100, 0x040015b1, 0x40040000, 0x800c0540, + 0x59a01208, 0x82080500, 0x0000f003, 0x040205b2, + 0x82080480, 0x00000841, 0x040215af, 0x82080480, + 0x00000100, 0x040015ac, 0x40040000, 0x800c0540, 0x82000500, 0x00000028, 0x82000580, 0x00000028, - 0x040005aa, 0x8c040d0a, 0x04000008, 0x59a03c08, - 0x821c0480, 0x00000006, 0x040215a4, 0x821c0480, - 0x00000001, 0x040015a1, 0x8c040d06, 0x04000003, + 0x040005a5, 0x8c040d0a, 0x04000008, 0x59a03c08, + 0x821c0480, 0x00000006, 0x0402159f, 0x821c0480, + 0x00000001, 0x0400159c, 0x8c040d06, 0x04000003, 0x4a0378e4, 0x000c0000, 0x8c040d04, 0x04000004, 0x59e00002, 0x84000548, 0x4803c002, 0x8c040d02, 0x04000005, 0x42002800, 0x00007600, 0x4a002805, 0xd0000000, 0x40040000, 0x800c0540, 0x48007401, 0x8c040d00, 0x04000002, 0x48087201, 0x8c040d0a, 0x0400001f, 0x481c7202, 0x4c0c0000, 0x4c100000, - 0x4c180000, 0x0201f800, 0x00106c3c, 0x4df00000, + 0x4c180000, 0x0201f800, 0x00106e41, 0x4df00000, 0x58383a02, 0x481fc857, 0x41780000, 0x801c3840, 0x800010c8, 0x82081400, 0x0000bf32, 0x4a001001, 0x00000000, 0x801c1c80, 0x04021003, 0x4a001001, 0x00000002, 0x80000000, 0x82001c80, 0x00000005, - 0x040017f4, 0x5c03e000, 0x02000800, 0x00106c29, + 0x040017f4, 0x5c03e000, 0x02000800, 0x00106e2e, 0x5c003000, 0x5c002000, 0x5c001800, 0x480f4407, - 0x48134208, 0x481b4408, 0x0401f521, 0x4d440000, - 0x4d340000, 0x59a28c07, 0x0201f800, 0x00103980, - 0x0402000c, 0x0201f800, 0x0010497a, 0x04020009, - 0x0201f800, 0x0010492d, 0x04000009, 0x4a034407, - 0x00000009, 0x5c026800, 0x5c028800, 0x0401f553, - 0x5c026800, 0x5c028800, 0x0401f554, 0x59a01208, + 0x48134208, 0x481b4408, 0x0401f51c, 0x4d440000, + 0x4d340000, 0x59a28c07, 0x0201f800, 0x00103a70, + 0x0402000c, 0x0201f800, 0x00104a7c, 0x04020009, + 0x0201f800, 0x00104a2f, 0x04000009, 0x4a034407, + 0x00000009, 0x5c026800, 0x5c028800, 0x0401f54e, + 0x5c026800, 0x5c028800, 0x0401f54f, 0x59a01208, 0x59a01c08, 0x5934400a, 0x82203d00, 0x0000e000, 0x801c391a, 0x8c081500, 0x04000024, 0x820c0d00, 0x00000007, 0x82040580, 0x00000000, 0x04000010, @@ -16923,24 +17024,24 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x04000007, 0x82040580, 0x00000013, 0x04000004, 0x4937c857, 0x42000800, 0x00000003, 0x82204500, 0xffff1fff, 0x800400da, 0x80200540, 0x4802680a, - 0x4c080000, 0x4c1c0000, 0x0201f800, 0x00106c3c, - 0x0201f800, 0x00104c3a, 0x0201f800, 0x00106c29, + 0x4c080000, 0x4c1c0000, 0x0201f800, 0x00106e41, + 0x0201f800, 0x00104d3f, 0x0201f800, 0x00106e2e, 0x5c003800, 0x5c001000, 0x481f4408, 0x5934400a, 0x82203d00, 0x0f000000, 0x801c3930, 0x8c081504, 0x04020012, 0x8c081502, 0x0400000c, 0x4823c857, 0x82204500, 0xf0ffffff, 0x59a01a09, 0x820c0d00, 0x0000000f, 0x800400f0, 0x8400056e, 0x80200540, 0x4802680a, 0x4803c857, 0x481f4209, 0x5c026800, - 0x5c028800, 0x0401f4ca, 0x82204500, 0xf07fffff, + 0x5c028800, 0x0401f4c5, 0x82204500, 0xf07fffff, 0x4822680a, 0x0401f7f9, 0x8d0e1d0e, 0x04000004, - 0x4a034407, 0x00000001, 0x0401f504, 0x836c0580, - 0x00000003, 0x04020016, 0x0201f800, 0x00103980, - 0x04020502, 0x59240200, 0x8c000502, 0x0400004b, - 0x59240005, 0x497b4407, 0x0201f800, 0x00104fc6, + 0x4a034407, 0x00000001, 0x0401f4ff, 0x836c0580, + 0x00000003, 0x04020016, 0x0201f800, 0x00103a70, + 0x040204fd, 0x59240200, 0x8c000502, 0x0400004b, + 0x59240005, 0x497b4407, 0x0201f800, 0x001050f7, 0x0400000f, 0x82000d00, 0x00ffff00, 0x0402000c, - 0x82000c00, 0x00102057, 0x50040800, 0x80040910, + 0x82000c00, 0x00102116, 0x50040800, 0x80040910, 0x82041580, 0x00000080, 0x04020004, 0x4a034407, - 0x00000007, 0x0401f4e9, 0x48074407, 0x82000d00, + 0x00000007, 0x0401f4e4, 0x48074407, 0x82000d00, 0x0000ffff, 0x48074208, 0x80000120, 0x48034408, 0x59a8021b, 0x82001500, 0x00003500, 0x480b440a, 0x8c000502, 0x0400001f, 0x8c000506, 0x04000009, @@ -16951,65 +17052,65 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x00000003, 0x0401f018, 0x8c000508, 0x04000009, 0x82000d00, 0x00000012, 0x82040d80, 0x00000012, 0x04020004, 0x4a03420a, 0x00000002, 0x0401f00e, - 0x0201f800, 0x00104fc6, 0x04020004, 0x4a03420a, - 0x00000004, 0x0401f476, 0x8c000506, 0x04000004, - 0x4a034407, 0x00000005, 0x0401f4b4, 0x4a03420a, - 0x00000000, 0x0401f46e, 0x4a034407, 0x0000001b, - 0x0401f4ae, 0x59a8002a, 0x48034408, 0x59a8002b, - 0x4803420a, 0x0401f466, 0x42007800, 0x0010ccb9, + 0x0201f800, 0x001050f7, 0x04020004, 0x4a03420a, + 0x00000004, 0x0401f471, 0x8c000506, 0x04000004, + 0x4a034407, 0x00000005, 0x0401f4af, 0x4a03420a, + 0x00000000, 0x0401f469, 0x4a034407, 0x0000001b, + 0x0401f4a9, 0x59a8002a, 0x48034408, 0x59a8002b, + 0x4803420a, 0x0401f461, 0x42007800, 0x0010cfb9, 0x59a00407, 0x4803c857, 0x82000c80, 0x0000000a, - 0x040214a6, 0x0c01f001, 0x00102625, 0x001025bd, - 0x001025cb, 0x001025de, 0x001025ff, 0x00102627, - 0x001025b5, 0x001025b5, 0x001025b5, 0x001025b5, - 0x001025b6, 0x0401f499, 0x59a00208, 0x48007c01, + 0x040214a1, 0x0c01f001, 0x001026e9, 0x00102681, + 0x0010268f, 0x001026a2, 0x001026c3, 0x001026eb, + 0x00102679, 0x00102679, 0x00102679, 0x00102679, + 0x0010267a, 0x0401f494, 0x59a00208, 0x48007c01, 0x59a00408, 0x48007a01, 0x0201f800, 0x001003ea, - 0x0401f069, 0x836c0580, 0x00000000, 0x0400048b, + 0x0401f069, 0x836c0580, 0x00000000, 0x04000486, 0x59a00a08, 0x59a00408, 0x900001c0, 0x80040d40, 0x4807c857, 0x59a00a09, 0x59a00409, 0x900001c0, 0x80040d40, 0x4807c857, 0x0401f05b, 0x836c0580, - 0x00000000, 0x0400047d, 0x59a00408, 0x59a01208, + 0x00000000, 0x04000478, 0x59a00408, 0x59a01208, 0x900001c0, 0x80081540, 0x59a00409, 0x59a01a09, - 0x900001c0, 0x800c1d40, 0x42000000, 0x0010e2cc, + 0x900001c0, 0x800c1d40, 0x42000000, 0x0010e5cc, 0x480fc857, 0x480bc857, 0x42000800, 0x00001000, - 0x0201f000, 0x001038a3, 0x59a00a08, 0x59a00408, - 0x900001c0, 0x80041d40, 0x820c0c80, 0x0010beb3, - 0x0402146a, 0x820c0c80, 0x00100000, 0x04001467, + 0x0201f000, 0x00103993, 0x59a00a08, 0x59a00408, + 0x900001c0, 0x80041d40, 0x820c0c80, 0x0010c1f9, + 0x04021465, 0x820c0c80, 0x00100000, 0x04001462, 0x480fc857, 0x823c7c00, 0x0000000d, 0x503c0800, 0x800409c0, 0x04000006, 0x823c0580, 0x00000011, - 0x0400045e, 0x803c7800, 0x0401f7f9, 0x59e41001, + 0x04000459, 0x803c7800, 0x0401f7f9, 0x59e41001, 0x82080d00, 0xfffeffcf, 0x4807c801, 0x440c7800, 0x46001800, 0x0201f800, 0x800c1800, 0x46001800, 0x0010031e, 0x480bc801, 0x0401f027, 0x59a01a08, 0x59a00408, 0x900001c0, 0x800c1d40, 0x480c7803, 0x59a02209, 0x59a00409, 0x900001c0, 0x80102540, 0x48107804, 0x59a0020a, 0x40001000, 0x48007807, - 0x80000040, 0x04001441, 0x48007808, 0x42000800, - 0x00004000, 0x0201f800, 0x00106a79, 0x80000540, - 0x04000002, 0x0401f439, 0x40040000, 0x800c1c00, - 0x04001436, 0x4800780a, 0x480c7805, 0x48107806, + 0x80000040, 0x0400143c, 0x48007808, 0x42000800, + 0x00004000, 0x0201f800, 0x00106c7e, 0x80000540, + 0x04000002, 0x0401f434, 0x40040000, 0x800c1c00, + 0x04001431, 0x4800780a, 0x480c7805, 0x48107806, 0x4978780c, 0x59a0040a, 0x800000c4, 0x4800780b, 0x59e40001, 0x4803c857, 0x82000540, 0x00040000, - 0x4803c801, 0x0201f000, 0x00102207, 0x49787803, + 0x4803c801, 0x0201f000, 0x001022c6, 0x49787803, 0x49787804, 0x49787808, 0x49787807, 0x49787803, 0x49787805, 0x49787806, 0x4978780c, 0x4978780b, 0x59e40001, 0x84000524, 0x0401f7f2, 0x59a80005, 0x48034407, 0x59a80006, 0x48034208, 0x59a80007, - 0x48034408, 0x0201f000, 0x00102207, 0x0201f800, + 0x48034408, 0x0201f000, 0x001022c6, 0x0201f800, 0x0010032e, 0x4803c856, 0x4a03c013, 0x03800300, 0x4a03c014, 0x03800380, 0x59a00c07, 0x82040580, 0x000000a0, 0x04000004, 0x82040580, 0x000000a2, 0x04020021, 0x59a0140b, 0x82080480, 0x00000100, 0x0402101d, 0x59a0020c, 0x8c000500, 0x04020026, 0x59a00a0b, 0x800409c0, 0x04000017, 0x82040480, - 0x00000041, 0x04021014, 0x0201f800, 0x00103876, + 0x00000041, 0x04021014, 0x0201f800, 0x00103966, 0x0400000b, 0x59a01008, 0x900811c0, 0x59a0180a, - 0x900c19c0, 0x59a00a0b, 0x0201f800, 0x0010389d, - 0x4a01d808, 0x0010266d, 0x1c01f000, 0x4a034407, + 0x900c19c0, 0x59a00a0b, 0x0201f800, 0x0010398d, + 0x4a01d808, 0x00102731, 0x1c01f000, 0x4a034407, 0x00000002, 0x4a03c014, 0x03800000, 0x0201f000, - 0x0010224a, 0x4a03c014, 0x03800000, 0x0201f000, - 0x0010224e, 0x4031d800, 0x58ef400a, 0x58ee580c, + 0x00102309, 0x4a03c014, 0x03800000, 0x0201f000, + 0x0010230d, 0x4031d800, 0x58ef400a, 0x58ee580c, 0x58ec0002, 0x82000580, 0x00000200, 0x02000000, - 0x00102242, 0x59a00c07, 0x59a0140b, 0x59a0020c, + 0x00102301, 0x59a00c07, 0x59a0140b, 0x59a0020c, 0x8c000500, 0x04020039, 0x832e5c00, 0x00000005, 0x4178c000, 0x59a0ba0b, 0x40600000, 0x812c0400, 0x5000c800, 0x82641d00, 0x000000ff, 0x4c040000, @@ -17027,20 +17128,20 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x8060c000, 0x0401f7cd, 0x59a0020b, 0x82000500, 0x000000ff, 0x40001800, 0x4c040000, 0x4c080000, 0x0401f896, 0x5c001000, 0x5c000800, 0x04000005, - 0x4a03c014, 0x03800000, 0x0201f000, 0x00102207, + 0x4a03c014, 0x03800000, 0x0201f000, 0x001022c6, 0x4a03c014, 0x03800000, 0x4a034407, 0x00000004, - 0x0201f000, 0x0010224a, 0x4803c856, 0x59a80878, + 0x0201f000, 0x00102309, 0x4803c856, 0x59a80878, 0x8c040d3e, 0x04020005, 0x4a03c013, 0x03800300, 0x4a03c014, 0x03800380, 0x59a00c07, 0x82040580, 0x000000a0, 0x04000004, 0x82040580, 0x000000a2, 0x04020076, 0x59a0140b, 0x82080480, 0x00000100, 0x04021072, 0x59a0020c, 0x8c000500, 0x0402005d, 0x59a01a0b, 0x800c19c0, 0x0400006c, 0x820c0480, - 0x00000041, 0x04021069, 0x0201f800, 0x00103876, + 0x00000041, 0x04021069, 0x0201f800, 0x00103966, 0x0402000b, 0x4a034407, 0x00000002, 0x59a80878, 0x8c040d3e, 0x04020003, 0x4a03c014, 0x03800000, - 0x4803c857, 0x0201f000, 0x0010224a, 0x59a80078, - 0x8c00053e, 0x02020000, 0x0010b663, 0x832e5c00, + 0x4803c857, 0x0201f000, 0x00102309, 0x59a80078, + 0x8c00053e, 0x02020000, 0x0010b98e, 0x832e5c00, 0x00000005, 0x4178c000, 0x59a0ba0b, 0x4803c857, 0x40600000, 0x812c0400, 0x4000c800, 0x4c040000, 0x4c080000, 0x0401f887, 0x5c001000, 0x5c000800, @@ -17057,18 +17158,18 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x4400c800, 0x805cb840, 0x04000004, 0x80081000, 0x8060c000, 0x0401f7ca, 0x59a00a0b, 0x59a01008, 0x900811c0, 0x59a0180a, 0x900c19c0, 0x4a03c014, - 0x03800000, 0x412c0000, 0x0201f000, 0x001038a0, + 0x03800000, 0x412c0000, 0x0201f000, 0x00103990, 0x4803c857, 0x59a80078, 0x8c00053e, 0x02020000, - 0x0010224e, 0x0401f847, 0x04000006, 0x48174407, - 0x4a03c014, 0x03800000, 0x0201f000, 0x00102207, + 0x0010230d, 0x0401f847, 0x04000006, 0x48174407, + 0x4a03c014, 0x03800000, 0x0201f000, 0x001022c6, 0x4a03c014, 0x03800000, 0x4a034407, 0x00000004, - 0x0201f000, 0x0010224a, 0x4a03c014, 0x03800000, - 0x0201f000, 0x0010224e, 0x4c5c0000, 0x4c600000, + 0x0201f000, 0x00102309, 0x4a03c014, 0x03800000, + 0x0201f000, 0x0010230d, 0x4c5c0000, 0x4c600000, 0x4c640000, 0x4004b800, 0x4008c000, 0x400cc800, 0x0401f87a, 0x04000012, 0x0401f8b2, 0x04020014, 0x4060b800, 0x0401f8af, 0x04020011, 0x4064b800, 0x0401f8ac, 0x0402000e, 0x0401f896, 0x4ce80000, - 0x4201d000, 0x00001388, 0x0201f800, 0x0010645c, + 0x4201d000, 0x00001388, 0x0201f800, 0x00106661, 0x5c01d000, 0x82000540, 0x00000001, 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x1c01f000, 0x0401f889, 0x80000580, 0x0401f7fa, 0x4c5c0000, 0x485fc857, @@ -17086,9 +17187,9 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x5c00b800, 0x1c01f000, 0x0401f856, 0x80000580, 0x4803c857, 0x4867c857, 0x0401f7f7, 0x4ce80000, 0x4c580000, 0x4803c856, 0x4200b000, 0x0000000c, - 0x4201d000, 0x0000000a, 0x0201f800, 0x0010645c, + 0x4201d000, 0x0000000a, 0x0201f800, 0x00106661, 0x4a03c013, 0x02000200, 0x4201d000, 0x0000000a, - 0x0201f800, 0x0010645c, 0x4a03c013, 0x02000000, + 0x0201f800, 0x00106661, 0x4a03c013, 0x02000000, 0x8058b040, 0x040207f3, 0x42000800, 0x000003e8, 0x4a03c013, 0x03800300, 0x80040840, 0x04000010, 0x4a03c014, 0x03800000, 0x59e00013, 0x4a03c014, @@ -17100,179 +17201,179 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x80040840, 0x0400001b, 0x4a03c014, 0x03800000, 0x59e00013, 0x4a03c014, 0x03800380, 0x82000500, 0x00000300, 0x82000580, 0x00000300, 0x040207f3, - 0x4201d000, 0x0000000a, 0x0201f800, 0x0010645c, + 0x4201d000, 0x0000000a, 0x0201f800, 0x00106661, 0x4a03c013, 0x01000000, 0x4201d000, 0x0000000a, - 0x0201f800, 0x0010645c, 0x4a03c013, 0x02000000, + 0x0201f800, 0x00106661, 0x4a03c013, 0x02000000, 0x82000540, 0x00000001, 0x5c01d000, 0x1c01f000, 0x4803c857, 0x0401ffb2, 0x040207ee, 0x0401f7fb, 0x4803c856, 0x4a03c013, 0x01000000, 0x4ce80000, - 0x4201d000, 0x0000000a, 0x0201f800, 0x0010645c, + 0x4201d000, 0x0000000a, 0x0201f800, 0x00106661, 0x5c01d000, 0x4a03c013, 0x02000200, 0x4ce80000, - 0x4201d000, 0x0000000a, 0x0201f800, 0x0010645c, + 0x4201d000, 0x0000000a, 0x0201f800, 0x00106661, 0x5c01d000, 0x4a03c013, 0x01000100, 0x1c01f000, 0x4c5c0000, 0x4c600000, 0x485fc857, 0x4200c000, 0x00000008, 0x825c0500, 0x00000080, 0x800000c2, 0x82000540, 0x01000000, 0x4803c013, 0x4ce80000, - 0x4201d000, 0x0000000a, 0x0201f800, 0x0010645c, + 0x4201d000, 0x0000000a, 0x0201f800, 0x00106661, 0x5c01d000, 0x4a03c013, 0x02000200, 0x4ce80000, - 0x4201d000, 0x0000000a, 0x0201f800, 0x0010645c, + 0x4201d000, 0x0000000a, 0x0201f800, 0x00106661, 0x5c01d000, 0x4a03c013, 0x02000000, 0x805cb8c2, 0x8060c040, 0x040207e8, 0x4a03c013, 0x01000100, 0x4ce80000, 0x4201d000, 0x0000000a, 0x0201f800, - 0x0010645c, 0x5c01d000, 0x4a03c013, 0x02000200, + 0x00106661, 0x5c01d000, 0x4a03c013, 0x02000200, 0x4ce80000, 0x4201d000, 0x0000000a, 0x0201f800, - 0x0010645c, 0x5c01d000, 0x4a03c014, 0x03800000, + 0x00106661, 0x5c01d000, 0x4a03c014, 0x03800000, 0x42000800, 0x000003e8, 0x59e0b813, 0x825cbd00, 0x00000100, 0x80040840, 0x04000004, 0x405c0000, 0x80000540, 0x040207f9, 0x4a03c014, 0x03800380, 0x4a03c013, 0x02000000, 0x4ce80000, 0x4201d000, - 0x0000000a, 0x0201f800, 0x0010645c, 0x5c01d000, + 0x0000000a, 0x0201f800, 0x00106661, 0x5c01d000, 0x485fc857, 0x405c0000, 0x80000540, 0x5c00c000, 0x5c00b800, 0x1c01f000, 0x4c600000, 0x4803c856, 0x4a03c013, 0x01000100, 0x4200c000, 0x00000008, 0x4200c800, 0x000003e8, 0x4ce80000, 0x4201d000, - 0x0000000a, 0x0201f800, 0x0010645c, 0x5c01d000, + 0x0000000a, 0x0201f800, 0x00106661, 0x5c01d000, 0x4a03c013, 0x02000200, 0x4a03c014, 0x03800000, 0x59e00013, 0x4a03c014, 0x03800380, 0x82000500, 0x00000200, 0x04020003, 0x8064c840, 0x040207f7, 0x4178c800, 0x0401f009, 0x4ce80000, 0x4201d000, - 0x0000000a, 0x0201f800, 0x0010645c, 0x5c01d000, + 0x0000000a, 0x0201f800, 0x00106661, 0x5c01d000, 0x4a03c013, 0x02000200, 0x4ce80000, 0x4201d000, - 0x0000000a, 0x0201f800, 0x0010645c, 0x5c01d000, + 0x0000000a, 0x0201f800, 0x00106661, 0x5c01d000, 0x4a03c014, 0x03800000, 0x59e00013, 0x4a03c014, 0x03800380, 0x82000500, 0x00000100, 0x80000110, 0x8064c8c2, 0x8064cd40, 0x4a03c013, 0x02000000, 0x8060c040, 0x040207e5, 0x4867c857, 0x5c00c000, 0x1c01f000, 0x4803c856, 0x4a03c013, 0x01000100, 0x4ce80000, 0x4201d000, 0x0000000a, 0x0201f800, - 0x0010645c, 0x5c01d000, 0x4a03c013, 0x02000200, + 0x00106661, 0x5c01d000, 0x4a03c013, 0x02000200, 0x4ce80000, 0x4201d000, 0x0000000a, 0x0201f800, - 0x0010645c, 0x5c01d000, 0x4a03c013, 0x02000000, + 0x00106661, 0x5c01d000, 0x4a03c013, 0x02000000, 0x1c01f000, 0x59a00408, 0x59a8082a, 0x4803502a, 0x48074408, 0x59a00a0a, 0x82040480, 0x00000014, 0x04021003, 0x42000800, 0x000007d0, 0x59a8002b, - 0x4807502b, 0x4803420a, 0x0201f000, 0x00102207, + 0x4807502b, 0x4803420a, 0x0201f000, 0x001022c6, 0x836c0580, 0x00000000, 0x0400000e, 0x59a80005, 0x59a00c07, 0x80041580, 0x82081500, 0x00000040, - 0x02000000, 0x00102207, 0x80080580, 0x48035005, - 0x0201f800, 0x0010041a, 0x0201f000, 0x00102207, + 0x02000000, 0x001022c6, 0x80080580, 0x48035005, + 0x0201f800, 0x0010041a, 0x0201f000, 0x001022c6, 0x59a00407, 0x59a80805, 0x48035005, 0x80040d80, 0x8c040d0c, 0x02020800, 0x0010041a, 0x59a00208, 0x48035006, 0x59a00408, 0x48035007, 0x0201f000, - 0x00102207, 0x59a80078, 0x8c00053e, 0x02000000, - 0x0010223e, 0x59a00c07, 0x8c040d00, 0x04000021, + 0x001022c6, 0x59a80078, 0x8c00053e, 0x02000000, + 0x001022fd, 0x59a00c07, 0x8c040d00, 0x04000021, 0x4a034407, 0x00000001, 0x8c000506, 0x02020000, - 0x0010224a, 0x4a034407, 0x00000009, 0x59aa6879, - 0x0201f800, 0x00104920, 0x02020000, 0x0010224a, + 0x00102309, 0x4a034407, 0x00000009, 0x59aa6879, + 0x0201f800, 0x00104a22, 0x02020000, 0x00102309, 0x4a034407, 0x00000003, 0x0201f800, 0x00020b7b, - 0x02000000, 0x0010224a, 0x48ee602a, 0x4a01d808, - 0x001028f0, 0x4a026407, 0x00000012, 0x4936600a, + 0x02000000, 0x00102309, 0x48ee602a, 0x4a01d808, + 0x001029b4, 0x4a026407, 0x00000012, 0x4936600a, 0x42027000, 0x000000d7, 0x0201f000, 0x00020bc1, - 0x59a00407, 0x800001c0, 0x02020000, 0x0010224a, - 0x0201f800, 0x0010b581, 0x0201f000, 0x00102207, + 0x59a00407, 0x800001c0, 0x02020000, 0x00102309, + 0x0201f800, 0x0010b8ac, 0x0201f000, 0x001022c6, 0x8d0e1d0e, 0x04000005, 0x4a034407, 0x00000001, - 0x0201f000, 0x0010224a, 0x0201f800, 0x00104fc6, + 0x0201f000, 0x00102309, 0x0201f800, 0x001050f7, 0x04020005, 0x4a034407, 0x00000016, 0x0201f000, - 0x0010224a, 0x836c0580, 0x00000003, 0x04000005, - 0x4a034407, 0x00000007, 0x0201f000, 0x0010224a, + 0x00102309, 0x836c0580, 0x00000003, 0x04000005, + 0x4a034407, 0x00000007, 0x0201f000, 0x00102309, 0x59a00c07, 0x82040500, 0xffffff00, 0x02020000, - 0x0010224e, 0x82041580, 0x000000ff, 0x04020007, + 0x0010230d, 0x82041580, 0x000000ff, 0x04020007, 0x59a8000f, 0x82000500, 0x000000ff, 0x82001540, - 0x0000ff00, 0x0401f011, 0x82040400, 0x00102057, + 0x0000ff00, 0x0401f011, 0x82040400, 0x00102116, 0x50000000, 0x80000110, 0x82000580, 0x00000080, - 0x02000000, 0x0010224e, 0x59a8000f, 0x82000500, - 0x000000ff, 0x80041580, 0x02000000, 0x0010224e, - 0x840409c0, 0x80041540, 0x0201f800, 0x00107cfe, + 0x02000000, 0x0010230d, 0x59a8000f, 0x82000500, + 0x000000ff, 0x80041580, 0x02000000, 0x0010230d, + 0x840409c0, 0x80041540, 0x0201f800, 0x00107ef8, 0x04020005, 0x4a034407, 0x00000003, 0x0201f000, - 0x0010224a, 0x48ee602a, 0x480a621d, 0x4a02641d, + 0x00102309, 0x48ee602a, 0x480a621d, 0x4a02641d, 0x0000bc09, 0x4a026407, 0x00000001, 0x0201f800, - 0x00103876, 0x04020007, 0x0201f800, 0x00020b9d, - 0x4a034407, 0x00000002, 0x0201f000, 0x0010224a, + 0x00103966, 0x04020007, 0x0201f800, 0x00020b9d, + 0x4a034407, 0x00000002, 0x0201f000, 0x00102309, 0x497a5a05, 0x497a5806, 0x4a025c05, 0x00008000, - 0x4a01d808, 0x0010299e, 0x492e6009, 0x42027000, + 0x4a01d808, 0x00102a62, 0x492e6009, 0x42027000, 0x00000032, 0x0201f000, 0x00020bc1, 0x8d0e1d0e, 0x04000005, 0x4a034407, 0x00000001, 0x0201f000, - 0x0010224a, 0x0201f800, 0x00104fc6, 0x04020005, - 0x4a034407, 0x00000016, 0x0201f000, 0x0010224a, + 0x00102309, 0x0201f800, 0x001050f7, 0x04020005, + 0x4a034407, 0x00000016, 0x0201f000, 0x00102309, 0x836c0580, 0x00000003, 0x04000005, 0x4a034407, - 0x00000007, 0x0201f000, 0x0010224a, 0x59a00c07, - 0x82040500, 0xffffff00, 0x02020000, 0x0010224e, + 0x00000007, 0x0201f000, 0x00102309, 0x59a00c07, + 0x82040500, 0xffffff00, 0x02020000, 0x0010230d, 0x82041580, 0x000000ff, 0x04020007, 0x59a8000f, 0x82000500, 0x000000ff, 0x82001540, 0x0000ff00, - 0x0401f011, 0x82040400, 0x00102057, 0x50000000, + 0x0401f011, 0x82040400, 0x00102116, 0x50000000, 0x80000110, 0x82000580, 0x00000080, 0x02000000, - 0x0010224e, 0x59a8000f, 0x82000500, 0x000000ff, - 0x80041580, 0x02000000, 0x0010224e, 0x840409c0, - 0x80041540, 0x0201f800, 0x00107cfe, 0x04020005, - 0x4a034407, 0x00000003, 0x0201f000, 0x0010224a, + 0x0010230d, 0x59a8000f, 0x82000500, 0x000000ff, + 0x80041580, 0x02000000, 0x0010230d, 0x840409c0, + 0x80041540, 0x0201f800, 0x00107ef8, 0x04020005, + 0x4a034407, 0x00000003, 0x0201f000, 0x00102309, 0x48ee602a, 0x480a621d, 0x4a02641d, 0x0000bc05, - 0x4a026407, 0x00000001, 0x0201f800, 0x00103876, + 0x4a026407, 0x00000001, 0x0201f800, 0x00103966, 0x04020007, 0x0201f800, 0x00020b9d, 0x4a034407, - 0x00000002, 0x0201f000, 0x0010224a, 0x497a5a05, + 0x00000002, 0x0201f000, 0x00102309, 0x497a5a05, 0x497a5806, 0x4a025c05, 0x00008000, 0x4a01d808, - 0x0010299e, 0x492e6009, 0x42027000, 0x00000032, + 0x00102a62, 0x492e6009, 0x42027000, 0x00000032, 0x0201f000, 0x00020bc1, 0x592c0006, 0x82000580, - 0x01000000, 0x02020000, 0x00102207, 0x4a034407, - 0x00000004, 0x0201f000, 0x0010224a, 0x497b4407, + 0x01000000, 0x02020000, 0x001022c6, 0x4a034407, + 0x00000004, 0x0201f000, 0x00102309, 0x497b4407, 0x497b4208, 0x8d0e1d20, 0x04000008, 0x59a8004d, 0x59a8084e, 0x80040480, 0x59a8084f, 0x48074407, - 0x80041480, 0x480b4208, 0x0201f800, 0x001039c7, + 0x80041480, 0x480b4208, 0x0201f800, 0x00103ab7, 0x48034408, 0x59a8100d, 0x59a80251, 0x80080480, 0x4803420a, 0x495f440a, 0x59a8001a, 0x4803420c, 0x4a03440c, 0x0000007f, 0x59a80078, 0x8c00053e, 0x04000003, 0x4a03440c, 0x0000003f, 0x0201f000, - 0x00102207, 0x8d0e1d0e, 0x04000005, 0x4a034407, - 0x00000001, 0x0201f000, 0x0010224a, 0x59a00407, + 0x001022c6, 0x8d0e1d0e, 0x04000005, 0x4a034407, + 0x00000001, 0x0201f000, 0x00102309, 0x59a00407, 0x8c000500, 0x0402000f, 0x59a80050, 0x81640480, 0x04001008, 0x59a8000b, 0x81500580, 0x04000009, 0x59a8004e, 0x59a8104d, 0x80080580, 0x04000005, - 0x4a034407, 0x00000018, 0x0201f000, 0x0010224a, + 0x4a034407, 0x00000018, 0x0201f000, 0x00102309, 0x850e1d58, 0x4803c856, 0x850e1d46, 0x0201f800, - 0x00103b46, 0x0201f000, 0x00102207, 0x599c0201, + 0x00103c3f, 0x0201f000, 0x001022c6, 0x599c0201, 0x48035062, 0x41780800, 0x42001000, 0x00003b10, - 0x0201f800, 0x00106a98, 0x480b5063, 0x1c01f000, + 0x0201f800, 0x00106c9d, 0x480b5063, 0x1c01f000, 0x0401f807, 0x42018800, 0x00000000, 0x04020003, 0x42018800, 0x00000001, 0x1c01f000, 0x82000540, 0x00000001, 0x0402500d, 0x4203e000, 0x80000000, 0x40e81000, 0x41780800, 0x42000000, 0x00000064, - 0x0201f800, 0x00106a98, 0x5994002e, 0x80080400, + 0x0201f800, 0x00106c9d, 0x5994002e, 0x80080400, 0x4803282e, 0x80000580, 0x1c01f000, 0x4d900000, 0x4dd00000, 0x4da40000, 0x4d140000, 0x417a3000, - 0x0201f800, 0x001072f1, 0x0201f800, 0x00106e75, + 0x0201f800, 0x001074f6, 0x0201f800, 0x0010707a, 0x5c022800, 0x5c034800, 0x5c03a000, 0x5c032000, 0x1c01f000, 0x42000800, 0x0000007c, 0x0201f800, - 0x001012d1, 0x4a03902c, 0x00200000, 0x4200b000, + 0x001012d2, 0x4a03902c, 0x00200000, 0x4200b000, 0x000001f4, 0x59c8002c, 0x8c00052c, 0x04000007, 0x8058b040, 0x040207fc, 0x42000000, 0x00004003, 0x41781000, 0x0401f131, 0x4a03506b, 0x00000002, - 0x42006000, 0x00102b66, 0x50301000, 0x41784800, + 0x42006000, 0x00102c2a, 0x50301000, 0x41784800, 0x4a03902d, 0x00008000, 0x4200b000, 0x000001f4, 0x59c8002c, 0x8c000534, 0x04000007, 0x8058b040, 0x040207fc, 0x42000000, 0x00004003, 0x41781000, 0x0401f11e, 0x0401f8a2, 0x80244800, 0x82240580, 0x000003b1, 0x040207fc, 0x0401f927, 0x41784800, 0x0401f8c8, 0x80244800, 0x82240580, 0x000003b1, - 0x040207fc, 0x80306000, 0x82300580, 0x00102b68, + 0x040207fc, 0x80306000, 0x82300580, 0x00102c2c, 0x040207e2, 0x59a8086a, 0x800409c0, 0x04000007, 0x42000000, 0x00004004, 0x42001000, 0x00000002, - 0x59a81869, 0x0401f105, 0x42006000, 0x00102b66, + 0x59a81869, 0x0401f105, 0x42006000, 0x00102c2a, 0x4a03506b, 0x00000010, 0x50301000, 0x41784800, 0x4a03902d, 0x00000800, 0x0401f881, 0x80244800, 0x82240580, 0x00000018, 0x040207fc, 0x0401f906, 0x41784800, 0x0401f8a7, 0x80244800, 0x82240580, 0x00000018, 0x040207fc, 0x80306000, 0x82300580, - 0x00102b68, 0x040207ed, 0x59a8086a, 0x800409c0, + 0x00102c2c, 0x040207ed, 0x59a8086a, 0x800409c0, 0x04000007, 0x42000000, 0x00004004, 0x42001000, 0x00000010, 0x59a81869, 0x0401f0e4, 0x42006000, - 0x00102b66, 0x4a03506b, 0x00000008, 0x50301000, + 0x00102c2a, 0x4a03506b, 0x00000008, 0x50301000, 0x41784800, 0x4a03902d, 0x00000400, 0x0401f860, 0x80244800, 0x82240580, 0x00000088, 0x040207fc, 0x0401f8e5, 0x41784800, 0x0401f886, 0x80244800, 0x82240580, 0x00000088, 0x040207fc, 0x80306000, - 0x82300580, 0x00102b68, 0x040207ed, 0x59a8086a, + 0x82300580, 0x00102c2c, 0x040207ed, 0x59a8086a, 0x800409c0, 0x04000007, 0x42000000, 0x00004004, 0x42001000, 0x00000008, 0x59a81869, 0x0401f0c3, - 0x42006000, 0x00102b66, 0x4a03506b, 0x00000020, + 0x42006000, 0x00102c2a, 0x4a03506b, 0x00000020, 0x50301000, 0x41784800, 0x4a03902d, 0x00002000, 0x4200b000, 0x000001f4, 0x59c8002c, 0x8c000530, 0x04000007, 0x8058b040, 0x040207fc, 0x42000000, @@ -17285,11 +17386,11 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x04000006, 0x59a8006a, 0x80000000, 0x4803506a, 0x40240000, 0x48035069, 0x80244800, 0x82240580, 0x00000110, 0x040207f0, 0x80306000, 0x82300580, - 0x00102b68, 0x040207cf, 0x59a8086a, 0x800409c0, + 0x00102c2c, 0x040207cf, 0x59a8086a, 0x800409c0, 0x04000006, 0x42000000, 0x00004004, 0x42001000, 0x00000020, 0x59a81869, 0x59c8002c, 0x8400052a, 0x4803902c, 0x42000800, 0x0000007c, 0x0201f800, - 0x001012d1, 0x0201f000, 0x00102207, 0x59c8002c, + 0x001012d2, 0x0201f000, 0x001022c6, 0x59c8002c, 0x82000500, 0xffff0000, 0x82080d00, 0x0000ffff, 0x80040540, 0x4803902c, 0x480b9028, 0x480b9029, 0x59a8006b, 0x82004580, 0x00000004, 0x04000003, @@ -17323,216 +17424,216 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x48275069, 0x1c01f000, 0x48034207, 0x48074407, 0x480b4208, 0x480f4408, 0x48134209, 0x48174409, 0x59c8002c, 0x8400052a, 0x4803902c, 0x42000800, - 0x0000007c, 0x0201f800, 0x001012d1, 0x0201f000, - 0x0010220a, 0x42000000, 0x00600000, 0x80000040, + 0x0000007c, 0x0201f800, 0x001012d2, 0x0201f000, + 0x001022c9, 0x42000000, 0x00600000, 0x80000040, 0x040207ff, 0x1c01f000, 0x5a5a5a5a, 0xa5a5a5a5, - 0x0201f800, 0x00103876, 0x04020005, 0x4a034407, - 0x00000002, 0x0201f000, 0x0010224a, 0x42005000, - 0x0010ccd0, 0x50285000, 0x482b4000, 0x4200a000, - 0x0010ccd1, 0x59a00408, 0x59a01208, 0x900811c0, + 0x0201f800, 0x00103966, 0x04020005, 0x4a034407, + 0x00000002, 0x0201f000, 0x00102309, 0x42005000, + 0x0010cfd0, 0x50285000, 0x482b4000, 0x4200a000, + 0x0010cfd1, 0x59a00408, 0x59a01208, 0x900811c0, 0x80081540, 0x59a0040a, 0x59a01a0a, 0x900c19c0, - 0x800c1d40, 0x42024800, 0x0010ccd1, 0x832cac00, + 0x800c1d40, 0x42024800, 0x0010cfd1, 0x832cac00, 0x00000005, 0x4200b000, 0x00000006, 0x82500400, - 0x0000000b, 0x48034001, 0x0201f800, 0x0010bd5b, + 0x0000000b, 0x48034001, 0x0201f800, 0x0010c086, 0x42000800, 0x00000006, 0x800400c4, 0x80080c00, 0x48074002, 0x820c0c40, 0x00000000, 0x48074003, 0x42000800, 0x00000006, 0x832c0400, 0x00000005, - 0x0201f800, 0x001038a3, 0x4a01d808, 0x00102b99, + 0x0201f800, 0x00103993, 0x4a01d808, 0x00102c5d, 0x1c01f000, 0x4031d800, 0x58ef400a, 0x58ec0002, - 0x82000580, 0x00000200, 0x02000000, 0x00102242, + 0x82000580, 0x00000200, 0x02000000, 0x00102301, 0x59a0a001, 0x59a01000, 0x80081040, 0x480b4000, 0x04000005, 0x59a01002, 0x59a01803, 0x58ee580c, - 0x0401f7d7, 0x42000800, 0x0010ccd0, 0x50040800, - 0x48074407, 0x0201f000, 0x00102207, 0x0201f800, - 0x00103876, 0x04020005, 0x4a034407, 0x00000002, - 0x0201f000, 0x0010224a, 0x59a00c0b, 0x42000000, - 0x0010ccd0, 0x50000000, 0x80040480, 0x02021000, - 0x0010224e, 0x8204a400, 0x0010bdc7, 0x5050a000, + 0x0401f7d7, 0x42000800, 0x0010cfd0, 0x50040800, + 0x48074407, 0x0201f000, 0x001022c6, 0x0201f800, + 0x00103966, 0x04020005, 0x4a034407, 0x00000002, + 0x0201f000, 0x00102309, 0x59a00c0b, 0x42000000, + 0x0010cfd0, 0x50000000, 0x80040480, 0x02021000, + 0x0010230d, 0x8204a400, 0x0010c10d, 0x5050a000, 0x832cac00, 0x00000005, 0x4200b000, 0x00000006, - 0x0201f800, 0x0010bd5b, 0x59a00408, 0x59a01208, + 0x0201f800, 0x0010c086, 0x59a00408, 0x59a01208, 0x900811c0, 0x80081540, 0x59a0040a, 0x59a01a0a, 0x900c19c0, 0x800c1d40, 0x42000800, 0x00000006, - 0x832c0400, 0x00000005, 0x0201f000, 0x001038a3, - 0x59a00c0b, 0x800409c0, 0x02000000, 0x0010224e, - 0x82040480, 0x00000021, 0x02021000, 0x0010224e, + 0x832c0400, 0x00000005, 0x0201f000, 0x00103993, + 0x59a00c0b, 0x800409c0, 0x02000000, 0x0010230d, + 0x82040480, 0x00000021, 0x02021000, 0x0010230d, 0x82040480, 0x00000011, 0x04001003, 0x42000800, 0x00000010, 0x59a00209, 0x59a01408, 0x900811c0, 0x80081540, 0x59a00208, 0x59a01c07, 0x900c19c0, - 0x800c1d40, 0x0201f800, 0x00103876, 0x04000006, - 0x0201f800, 0x0010389a, 0x4a01d808, 0x00102bf5, + 0x800c1d40, 0x0201f800, 0x00103966, 0x04000006, + 0x0201f800, 0x0010398a, 0x4a01d808, 0x00102cb9, 0x1c01f000, 0x4a034407, 0x00000002, 0x0201f000, - 0x0010224a, 0x4031d800, 0x58ef400a, 0x58ec0002, - 0x82000580, 0x00000200, 0x02000000, 0x00102242, + 0x00102309, 0x4031d800, 0x58ef400a, 0x58ec0002, + 0x82000580, 0x00000200, 0x02000000, 0x00102301, 0x59a00c0b, 0x82040480, 0x00000011, 0x04001003, 0x42000800, 0x00000010, 0x59a0040c, 0x59a0120c, 0x900811c0, 0x80081540, 0x59a0020a, 0x59a01c09, 0x900c19c0, 0x800c1d40, 0x58ec0003, 0x0201f800, - 0x001038a3, 0x4a01d808, 0x00102c10, 0x1c01f000, + 0x00103993, 0x4a01d808, 0x00102cd4, 0x1c01f000, 0x4031d800, 0x58ef400a, 0x58ec0002, 0x82000580, - 0x00000200, 0x02000000, 0x00102242, 0x59a00c0b, - 0x82040480, 0x00000011, 0x02001000, 0x00102207, + 0x00000200, 0x02000000, 0x00102301, 0x59a00c0b, + 0x82040480, 0x00000011, 0x02001000, 0x001022c6, 0x82040c80, 0x00000010, 0x59a00209, 0x59a01408, 0x900811c0, 0x80081540, 0x59a00208, 0x59a01c07, 0x900c19c0, 0x800c1d40, 0x82081400, 0x00000040, - 0x58ec0003, 0x0201f800, 0x0010389a, 0x4a01d808, - 0x00102c2e, 0x1c01f000, 0x4031d800, 0x58ef400a, + 0x58ec0003, 0x0201f800, 0x0010398a, 0x4a01d808, + 0x00102cf2, 0x1c01f000, 0x4031d800, 0x58ef400a, 0x58ec0002, 0x82000580, 0x00000200, 0x02000000, - 0x00102242, 0x59a0040b, 0x82000c80, 0x00000010, + 0x00102301, 0x59a0040b, 0x82000c80, 0x00000010, 0x59a0040c, 0x59a0120c, 0x900811c0, 0x80081540, 0x59a0020a, 0x59a01c09, 0x900c19c0, 0x800c1d40, 0x82081400, 0x00000040, 0x58ec0003, 0x0201f800, - 0x001038a3, 0x4a01d808, 0x00102200, 0x1c01f000, + 0x00103993, 0x4a01d808, 0x001022bf, 0x1c01f000, 0x48efc857, 0x59a00208, 0x59a01408, 0x900001c0, 0x80081540, 0x59a0020a, 0x59a01c0a, 0x900001c0, 0x800c1d40, 0x59a00407, 0x48034000, 0x480b4001, - 0x480f4002, 0x0201f800, 0x00103876, 0x04020005, - 0x4a034407, 0x00000002, 0x0201f000, 0x0010224a, - 0x42000800, 0x00000010, 0x0201f800, 0x0010389a, - 0x4a01d808, 0x00102c63, 0x1c01f000, 0x4031d800, + 0x480f4002, 0x0201f800, 0x00103966, 0x04020005, + 0x4a034407, 0x00000002, 0x0201f000, 0x00102309, + 0x42000800, 0x00000010, 0x0201f800, 0x0010398a, + 0x4a01d808, 0x00102d27, 0x1c01f000, 0x4031d800, 0x58ef400a, 0x58ee580c, 0x58ec0002, 0x82000580, - 0x00000200, 0x02000000, 0x00102242, 0x48efc857, + 0x00000200, 0x02000000, 0x00102301, 0x48efc857, 0x49a3c857, 0x492fc857, 0x592c0a05, 0x80040910, 0x04020005, 0x4a034407, 0x00000019, 0x0201f000, - 0x0010224a, 0x4805d80b, 0x0401f00a, 0x4031d800, + 0x00102309, 0x4805d80b, 0x0401f00a, 0x4031d800, 0x58ef400a, 0x58ec0002, 0x82000580, 0x00000200, - 0x02000000, 0x00102242, 0x48efc857, 0x49a3c857, + 0x02000000, 0x00102301, 0x48efc857, 0x49a3c857, 0x48efc857, 0x49a3c857, 0x58ec000b, 0x80000040, - 0x04000012, 0x4801d80b, 0x0201f800, 0x00103876, + 0x04000012, 0x4801d80b, 0x0201f800, 0x00103966, 0x04020005, 0x4a034407, 0x00000002, 0x0201f000, - 0x0010224a, 0x42000800, 0x00000010, 0x58ec1006, - 0x58ec1807, 0x0201f800, 0x0010389a, 0x4a01d808, - 0x00102c77, 0x1c01f000, 0x58ee580c, 0x48efc857, + 0x00102309, 0x42000800, 0x00000010, 0x58ec1006, + 0x58ec1807, 0x0201f800, 0x0010398a, 0x4a01d808, + 0x00102d3b, 0x1c01f000, 0x58ee580c, 0x48efc857, 0x49a3c857, 0x492fc857, 0x492f3004, 0x592c0405, - 0x8400055e, 0x48025c05, 0x4a01d808, 0x00102ca1, + 0x8400055e, 0x48025c05, 0x4a01d808, 0x00102d65, 0x1c01f000, 0x4d2c0000, 0x58ee580c, 0x48efc857, 0x49a3c857, 0x492fc857, 0x592c0405, 0x8400051e, 0x48025c05, 0x59a00000, 0x59a01001, 0x59a01802, 0x80081400, 0x820c1c40, 0x00000000, 0x832c0400, 0x00000005, 0x42000800, 0x00000010, 0x5c025800, - 0x0201f000, 0x001038a3, 0x8d0e1d0e, 0x04000005, - 0x4a034407, 0x00000001, 0x0201f000, 0x0010224a, + 0x0201f000, 0x00103993, 0x8d0e1d0e, 0x04000005, + 0x4a034407, 0x00000001, 0x0201f000, 0x00102309, 0x836c0580, 0x00000003, 0x04000005, 0x4a034407, - 0x00000007, 0x0201f000, 0x0010224a, 0x59a0320c, + 0x00000007, 0x0201f000, 0x00102309, 0x59a0320c, 0x82183500, 0x000000ff, 0x59a28c07, 0x0201f800, - 0x00103980, 0x02020000, 0x0010224e, 0x0201f800, - 0x0010497a, 0x02020000, 0x0010224e, 0x83440580, - 0x000007fd, 0x04000008, 0x0201f800, 0x0010491a, + 0x00103a70, 0x02020000, 0x0010230d, 0x0201f800, + 0x00104a7c, 0x02020000, 0x0010230d, 0x83440580, + 0x000007fd, 0x04000008, 0x0201f800, 0x00104a1c, 0x04000005, 0x4a034407, 0x00000009, 0x0201f000, - 0x0010224a, 0x0201f800, 0x00103876, 0x04020005, - 0x4a034407, 0x00000002, 0x0201f000, 0x0010224a, + 0x00102309, 0x0201f800, 0x00103966, 0x04020005, + 0x4a034407, 0x00000002, 0x0201f000, 0x00102309, 0x801831c0, 0x0400000a, 0x412c0800, 0x0201f800, - 0x00103876, 0x04020005, 0x4a034407, 0x00000002, - 0x0201f000, 0x0010224a, 0x40065800, 0x4a025c05, - 0x00008000, 0x497a5a05, 0x0201f800, 0x0010974c, + 0x00103966, 0x04020005, 0x4a034407, 0x00000002, + 0x0201f000, 0x00102309, 0x40065800, 0x4a025c05, + 0x00008000, 0x497a5a05, 0x0201f800, 0x00109984, 0x04020005, 0x4a034407, 0x00000003, 0x0201f000, - 0x0010224a, 0x4a01d808, 0x00102cf8, 0x1c01f000, + 0x00102309, 0x4a01d808, 0x00102dbc, 0x1c01f000, 0x592c0006, 0x82000580, 0x01000000, 0x04020005, - 0x4a034407, 0x00000004, 0x0201f000, 0x0010224a, + 0x4a034407, 0x00000004, 0x0201f000, 0x00102309, 0x592c0407, 0x82002d00, 0x0000ff00, 0x82000500, 0x000000ff, 0x80000904, 0x80040800, 0x82040480, 0x00000006, 0x04001003, 0x42000800, 0x00000005, 0x4c500000, 0x4c540000, 0x4c580000, 0x832ca400, 0x00000007, 0x4050a800, 0x4004b000, 0x0201f800, - 0x0010bd85, 0x59a00408, 0x59a01208, 0x900811c0, + 0x0010c0b0, 0x59a00408, 0x59a01208, 0x900811c0, 0x80081540, 0x59a0040a, 0x59a01a0a, 0x900c19c0, 0x800c1d40, 0x832c0400, 0x00000007, 0x4c140000, - 0x0201f800, 0x001038a3, 0x5c002800, 0x801429c0, - 0x04000003, 0x4a01d808, 0x00102d2b, 0x5c00b000, + 0x0201f800, 0x00103993, 0x5c002800, 0x801429c0, + 0x04000003, 0x4a01d808, 0x00102def, 0x5c00b000, 0x5c00a800, 0x5c00a000, 0x1c01f000, 0x4031d800, 0x58ef400a, 0x58ee580c, 0x58ec0002, 0x82000580, - 0x00000200, 0x02000000, 0x00102242, 0x812e59c0, + 0x00000200, 0x02000000, 0x00102301, 0x812e59c0, 0x02000800, 0x0010032e, 0x592c0007, 0x82000500, 0xff000000, 0x80000904, 0x800409c0, 0x02000000, - 0x00102207, 0x4807c857, 0x82040480, 0x0000000e, + 0x001022c6, 0x4807c857, 0x82040480, 0x0000000e, 0x04001003, 0x42000800, 0x0000000d, 0x592e5801, 0x812e59c0, 0x02000800, 0x0010032e, 0x4c500000, 0x4c540000, 0x4c580000, 0x832ca400, 0x00000006, - 0x4050a800, 0x4004b000, 0x0201f800, 0x0010bd85, + 0x4050a800, 0x4004b000, 0x0201f800, 0x0010c0b0, 0x5c00b000, 0x5c00a800, 0x5c00a000, 0x58ec1006, 0x58ec1807, 0x832c0400, 0x00000006, 0x0201f000, - 0x001038a3, 0x0201f800, 0x00103876, 0x04020005, - 0x4a034407, 0x00000002, 0x0201f000, 0x0010224a, + 0x00103993, 0x0201f800, 0x00103966, 0x04020005, + 0x4a034407, 0x00000002, 0x0201f000, 0x00102309, 0x59a00c07, 0x82040500, 0x0000ff00, 0x840001c0, - 0x82001480, 0x00000007, 0x02021000, 0x0010224e, - 0x0c01f001, 0x00102d70, 0x00102d77, 0x00102d7e, - 0x00102d7e, 0x00102d7e, 0x00102d80, 0x00102d85, - 0x42000800, 0x0000000d, 0x42003800, 0x00102d99, - 0x4a034000, 0x0010c846, 0x0401f013, 0x42000800, - 0x0000000d, 0x42003800, 0x00102d99, 0x4a034000, - 0x0010c853, 0x0401f00c, 0x0201f000, 0x0010224e, - 0x42000800, 0x00000008, 0x42003800, 0x00102dac, + 0x82001480, 0x00000007, 0x02021000, 0x0010230d, + 0x0c01f001, 0x00102e34, 0x00102e3b, 0x00102e42, + 0x00102e42, 0x00102e42, 0x00102e44, 0x00102e49, + 0x42000800, 0x0000000d, 0x42003800, 0x00102e5d, + 0x4a034000, 0x0010cb46, 0x0401f013, 0x42000800, + 0x0000000d, 0x42003800, 0x00102e5d, 0x4a034000, + 0x0010cb53, 0x0401f00c, 0x0201f000, 0x0010230d, + 0x42000800, 0x00000008, 0x42003800, 0x00102e70, 0x0401f005, 0x42000800, 0x00000004, 0x42003800, - 0x00102df6, 0x59a00208, 0x59a01408, 0x900001c0, + 0x00102eba, 0x59a00208, 0x59a01408, 0x900001c0, 0x80081540, 0x59a0020a, 0x59a01c0a, 0x900001c0, 0x800c1d40, 0x832c0400, 0x00000006, 0x4c1c0000, - 0x0201f800, 0x0010389a, 0x5c003800, 0x481dd808, + 0x0201f800, 0x0010398a, 0x5c003800, 0x481dd808, 0x1c01f000, 0x4031d800, 0x58ef400a, 0x58ee580c, 0x58ec0002, 0x82000580, 0x00000200, 0x02000000, - 0x00102242, 0x4a035019, 0x00000001, 0x4200b000, + 0x00102301, 0x4a035019, 0x00000001, 0x4200b000, 0x0000000d, 0x59a0a800, 0x832ca400, 0x00000006, - 0x0201f800, 0x0010bd85, 0x0201f000, 0x00102207, + 0x0201f800, 0x0010c0b0, 0x0201f000, 0x001022c6, 0x4031d800, 0x58ef400a, 0x58ee580c, 0x58ec0002, - 0x82000580, 0x00000200, 0x02000000, 0x00102242, + 0x82000580, 0x00000200, 0x02000000, 0x00102301, 0x832ca400, 0x00000006, 0x50500000, 0x82001500, - 0x000c0016, 0x02020000, 0x0010224e, 0x82500c00, + 0x000c0016, 0x02020000, 0x0010230d, 0x82500c00, 0x00000003, 0x50040000, 0x82001500, 0x00000001, - 0x02020000, 0x0010224e, 0x50500000, 0x82001500, + 0x02020000, 0x0010230d, 0x50500000, 0x82001500, 0x00000028, 0x0400001d, 0x82081580, 0x00000028, - 0x02020000, 0x0010224e, 0x80500800, 0x50040000, + 0x02020000, 0x0010230d, 0x80500800, 0x50040000, 0x82001500, 0x00000013, 0x82081580, 0x00000013, - 0x02020000, 0x0010224e, 0x80040800, 0x50040000, + 0x02020000, 0x0010230d, 0x80040800, 0x50040000, 0x82001500, 0x00050000, 0x82081580, 0x00050000, - 0x02020000, 0x0010224e, 0x836c0580, 0x00000000, + 0x02020000, 0x0010230d, 0x836c0580, 0x00000000, 0x04000012, 0x599c0019, 0x8c00050e, 0x0402000f, - 0x0201f000, 0x0010224e, 0x80500800, 0x50040000, - 0x82001500, 0x00000013, 0x02020000, 0x0010224e, + 0x0201f000, 0x0010230d, 0x80500800, 0x50040000, + 0x82001500, 0x00000013, 0x02020000, 0x0010230d, 0x80040800, 0x50040000, 0x82001500, 0x00050000, - 0x02020000, 0x0010224e, 0x4200b000, 0x00000008, - 0x4200a800, 0x0010c83e, 0x0201f800, 0x0010bd5b, - 0x0201f000, 0x00102207, 0x4031d800, 0x58ef400a, + 0x02020000, 0x0010230d, 0x4200b000, 0x00000008, + 0x4200a800, 0x0010cb3e, 0x0201f800, 0x0010c086, + 0x0201f000, 0x001022c6, 0x4031d800, 0x58ef400a, 0x58ee580c, 0x58ec0002, 0x82000580, 0x00000200, - 0x02000000, 0x00102242, 0x4200b000, 0x00000004, - 0x4200a800, 0x0010cccb, 0x832ca400, 0x00000006, - 0x0201f800, 0x0010bd5b, 0x850e1d50, 0x0201f000, - 0x00102207, 0x0201f800, 0x00103876, 0x04020005, - 0x4a034407, 0x00000002, 0x0201f000, 0x0010224a, + 0x02000000, 0x00102301, 0x4200b000, 0x00000004, + 0x4200a800, 0x0010cfcb, 0x832ca400, 0x00000006, + 0x0201f800, 0x0010c086, 0x850e1d50, 0x0201f000, + 0x001022c6, 0x0201f800, 0x00103966, 0x04020005, + 0x4a034407, 0x00000002, 0x0201f000, 0x00102309, 0x832cac00, 0x00000006, 0x59a00c07, 0x82040500, 0x0000ff00, 0x840001c0, 0x82001480, 0x00000008, - 0x02021000, 0x0010224e, 0x0c01f001, 0x00102e23, - 0x00102e26, 0x00102e29, 0x00102e29, 0x00102e29, - 0x00102e2b, 0x00102e29, 0x00102e33, 0x4200a000, - 0x0010c846, 0x0401f055, 0x4200a000, 0x0010c853, - 0x0401f052, 0x0201f000, 0x0010224e, 0x4200b000, - 0x00000008, 0x40580800, 0x4200a000, 0x0010c83e, - 0x0201f800, 0x0010bd5b, 0x0401f04d, 0x59a00a0b, + 0x02021000, 0x0010230d, 0x0c01f001, 0x00102ee7, + 0x00102eea, 0x00102eed, 0x00102eed, 0x00102eed, + 0x00102eef, 0x00102eed, 0x00102ef7, 0x4200a000, + 0x0010cb46, 0x0401f055, 0x4200a000, 0x0010cb53, + 0x0401f052, 0x0201f000, 0x0010230d, 0x4200b000, + 0x00000008, 0x40580800, 0x4200a000, 0x0010cb3e, + 0x0201f800, 0x0010c086, 0x0401f04d, 0x59a00a0b, 0x4a03420b, 0x0000001c, 0x82040480, 0x0000001c, - 0x02001000, 0x0010224e, 0x4200b000, 0x0000000f, - 0x4178a000, 0x0201f800, 0x0010bd64, 0x832cac00, + 0x02001000, 0x0010230d, 0x4200b000, 0x0000000f, + 0x4178a000, 0x0201f800, 0x0010c08f, 0x832cac00, 0x00000006, 0x4200b000, 0x00000004, 0x83a8a400, - 0x0000001f, 0x0201f800, 0x0010bd5b, 0x836c0580, + 0x0000001f, 0x0201f800, 0x0010c086, 0x836c0580, 0x00000000, 0x04000007, 0x4200b000, 0x00000004, - 0x83a8a400, 0x00000000, 0x0201f800, 0x0010bd5b, - 0x492f4000, 0x0201f800, 0x00103876, 0x04020005, - 0x4a034407, 0x00000002, 0x0201f000, 0x0010224a, + 0x83a8a400, 0x00000000, 0x0201f800, 0x0010c086, + 0x492f4000, 0x0201f800, 0x00103966, 0x04020005, + 0x4a034407, 0x00000002, 0x0201f000, 0x00102309, 0x832cac00, 0x00000006, 0x4200b000, 0x0000000f, - 0x4178a000, 0x0201f800, 0x0010bd64, 0x832cac00, + 0x4178a000, 0x0201f800, 0x0010c08f, 0x832cac00, 0x00000007, 0x4200b000, 0x00000004, 0x83a8a400, - 0x00000023, 0x0201f800, 0x0010bd5b, 0x492f4001, + 0x00000023, 0x0201f800, 0x0010c086, 0x492f4001, 0x59a25800, 0x59a00208, 0x59a01408, 0x900001c0, 0x80081540, 0x59a0020a, 0x59a01c0a, 0x900001c0, 0x800c1d40, 0x832c0400, 0x00000006, 0x42000800, - 0x0000000f, 0x0201f800, 0x001038a3, 0x4a01d808, - 0x00102e8b, 0x1c01f000, 0x4200b000, 0x0000000d, - 0x40580800, 0x0201f800, 0x0010bd85, 0x59a00208, + 0x0000000f, 0x0201f800, 0x00103993, 0x4a01d808, + 0x00102f4f, 0x1c01f000, 0x4200b000, 0x0000000d, + 0x40580800, 0x0201f800, 0x0010c0b0, 0x59a00208, 0x59a01408, 0x900001c0, 0x80081540, 0x59a0020a, 0x59a01c0a, 0x900001c0, 0x800c1d40, 0x832c0400, - 0x00000006, 0x0201f000, 0x001038a3, 0x4031d800, + 0x00000006, 0x0201f000, 0x00103993, 0x4031d800, 0x58ef400a, 0x58ec0002, 0x82000580, 0x00000200, - 0x02000000, 0x00102242, 0x59a25801, 0x58ec1006, + 0x02000000, 0x00102301, 0x59a25801, 0x58ec1006, 0x58ec1807, 0x832c0400, 0x00000006, 0x42000800, - 0x0000000d, 0x0201f000, 0x001038a3, 0x836c0580, + 0x0000000d, 0x0201f000, 0x00103993, 0x836c0580, 0x00000000, 0x04020005, 0x4a034407, 0x00000007, - 0x0201f000, 0x0010224a, 0x59a01407, 0x800811c0, + 0x0201f000, 0x00102309, 0x59a01407, 0x800811c0, 0x04020017, 0x59c40801, 0x82040d00, 0x00018000, 0x82040580, 0x00000000, 0x04020004, 0x4a034407, 0x00000000, 0x0401f056, 0x82040580, 0x00008000, @@ -17541,66 +17642,67 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x4a034407, 0x00000003, 0x0401f049, 0x59a80078, 0x8c00053e, 0x0400000d, 0x59a00a08, 0x82040580, 0x00000003, 0x04000005, 0x82040580, 0x00000002, - 0x02020000, 0x0010224e, 0x42000000, 0x00000003, + 0x02020000, 0x0010230d, 0x42000000, 0x00000003, 0x40000800, 0x0401f00b, 0x59a80070, 0x8c000508, 0x04000005, 0x42000000, 0x00000001, 0x40000800, 0x0401f004, 0x59a00208, 0x48034002, 0x59a80837, 0x48035037, 0x599c7819, 0x823c7d00, 0xffff1fff, 0x800000da, 0x803c7d40, 0x483f3819, 0x0201f800, - 0x00101625, 0x0400000d, 0x0201f800, 0x00101633, - 0x0400000a, 0x0201f800, 0x00101641, 0x04000007, - 0x0201f800, 0x0010164f, 0x04000004, 0x48075037, - 0x0201f000, 0x0010224e, 0x82080580, 0x00000002, + 0x0010162a, 0x0400000d, 0x0201f800, 0x00101638, + 0x0400000a, 0x0201f800, 0x00101646, 0x04000007, + 0x0201f800, 0x00101654, 0x04000004, 0x48075037, + 0x0201f000, 0x0010230d, 0x82080580, 0x00000002, 0x04020017, 0x59c40006, 0x84000500, 0x48038806, - 0x0201f800, 0x00106faf, 0x497b8880, 0x42000000, - 0x0010cc8b, 0x0201f800, 0x0010bc88, 0x4803c856, + 0x0201f800, 0x001071b4, 0x497b8880, 0x42000000, + 0x0010cf8b, 0x0201f800, 0x0010bfb3, 0x4803c856, 0x850e1d48, 0x4a038808, 0x00000000, 0x4202d800, 0x00000004, 0x4a038805, 0x00000001, 0x4a035043, 0x00000001, 0x0201f800, 0x00100455, 0x0201f000, - 0x00102207, 0x8d0e1d0e, 0x04000005, 0x4a034407, - 0x00000001, 0x0201f000, 0x0010224a, 0x836c0580, + 0x001022c6, 0x8d0e1d0e, 0x04000005, 0x4a034407, + 0x00000001, 0x0201f000, 0x00102309, 0x836c0580, 0x00000003, 0x04000005, 0x4a034407, 0x00000007, - 0x0201f000, 0x0010224a, 0x59a28c07, 0x59a0320c, - 0x82183500, 0x000000ff, 0x0201f800, 0x00103980, - 0x02020000, 0x0010224e, 0x0201f800, 0x0010497a, - 0x02020000, 0x0010224e, 0x83440580, 0x000007fd, - 0x04000008, 0x0201f800, 0x0010491a, 0x04000005, - 0x42000800, 0x00000009, 0x0201f000, 0x0010224a, - 0x0201f800, 0x00103876, 0x04020005, 0x4a034407, - 0x00000002, 0x0201f000, 0x0010224a, 0x497a5a05, - 0x4a025c05, 0x00008000, 0x0201f800, 0x00109764, + 0x0201f000, 0x00102309, 0x59a28c07, 0x59a0320c, + 0x82183500, 0x000000ff, 0x0201f800, 0x00103a70, + 0x02020000, 0x0010230d, 0x0201f800, 0x00104a7c, + 0x02020000, 0x0010230d, 0x83440580, 0x000007fd, + 0x04000008, 0x0201f800, 0x00104a1c, 0x04000005, + 0x42000800, 0x00000009, 0x0201f000, 0x00102309, + 0x0201f800, 0x00103966, 0x04020005, 0x4a034407, + 0x00000002, 0x0201f000, 0x00102309, 0x497a5a05, + 0x4a025c05, 0x00008000, 0x0201f800, 0x0010999c, 0x04020005, 0x4a034407, 0x00000003, 0x0201f000, - 0x0010224a, 0x4a01d808, 0x00102f3c, 0x1c01f000, + 0x00102309, 0x4a01d808, 0x00103000, 0x1c01f000, 0x592c0006, 0x82000d00, 0x0000ffff, 0x82000500, 0xffff0000, 0x82000580, 0x01000000, 0x04020005, - 0x4a034407, 0x00000004, 0x0201f000, 0x0010224a, + 0x4a034407, 0x00000004, 0x0201f000, 0x00102309, 0x80040904, 0x4c500000, 0x4c540000, 0x4c580000, 0x832ca400, 0x00000006, 0x4050a800, 0x4004b000, - 0x0201f800, 0x0010bd85, 0x5c00b000, 0x5c00a800, + 0x0201f800, 0x0010c0b0, 0x5c00b000, 0x5c00a800, 0x5c00a000, 0x59a00208, 0x59a01408, 0x900001c0, 0x80081540, 0x59a0020a, 0x59a01c0a, 0x900001c0, 0x800c1d40, 0x832c0400, 0x00000006, 0x0201f000, - 0x001038a3, 0x496fc857, 0x836c0580, 0x00000000, + 0x00103993, 0x496fc857, 0x836c0580, 0x00000000, 0x04000005, 0x4a034407, 0x0000001a, 0x0201f000, - 0x0010224a, 0x0201f800, 0x00104fc6, 0x02020800, - 0x00104032, 0x42000800, 0x00000020, 0x59a00408, + 0x00102309, 0x0201f800, 0x001050f7, 0x02020800, + 0x0010412b, 0x42000800, 0x00000020, 0x59a00408, 0x59a01208, 0x900811c0, 0x80081540, 0x59a0040a, 0x59a01a0a, 0x900c19c0, 0x800c1d40, 0x419c0000, - 0x49a3c857, 0x0201f800, 0x0010389a, 0x4a01d808, - 0x00102f7e, 0x1c01f000, 0x4833c857, 0x59a80078, - 0x8c00053e, 0x02020800, 0x0010b52c, 0x4031d800, + 0x49a3c857, 0x0201f800, 0x0010398a, 0x4a01d808, + 0x00103042, 0x1c01f000, 0x4833c857, 0x59a80078, + 0x8c00053e, 0x02020800, 0x0010b857, 0x4031d800, 0x58ef400a, 0x58ec0002, 0x82000580, 0x00000200, - 0x02000000, 0x00102242, 0x599c0200, 0x800001c0, - 0x02000000, 0x0010224e, 0x59a80070, 0x8c000504, + 0x02000000, 0x00102301, 0x599c0200, 0x800001c0, + 0x02000000, 0x0010230d, 0x59a80070, 0x8c000504, 0x04020003, 0x8c000506, 0x04000004, 0x599c0019, - 0x8400050c, 0x48033819, 0x0201f800, 0x00109f63, + 0x8400050c, 0x48033819, 0x0201f800, 0x0010a1a1, 0x59a80070, 0x8c000502, 0x04000004, 0x599c0017, 0x84000508, 0x48033817, 0x850e1d20, 0x599c0017, - 0x8c000508, 0x04000003, 0x850e1d60, 0x0401f004, - 0x8c00050a, 0x02020000, 0x0010224e, 0x42024800, - 0x0010ccd1, 0x4a024a00, 0x00000004, 0x42000800, - 0x0010ccd0, 0x46000800, 0x00000001, 0x42000800, - 0x0010cccf, 0x46000800, 0x0000ffff, 0x59240c00, + 0x8c000508, 0x04000003, 0x850e1d60, 0x0401f008, + 0x8c00050a, 0x02020000, 0x0010230d, 0x59a80806, + 0x8c040d16, 0x02020000, 0x0010230d, 0x42024800, + 0x0010cfd1, 0x4a024a00, 0x00000004, 0x42000800, + 0x0010cfd0, 0x46000800, 0x00000001, 0x42000800, + 0x0010cfcf, 0x46000800, 0x0000ffff, 0x59240c00, 0x84040d46, 0x599c1017, 0x8c08150a, 0x04020002, 0x84040d48, 0x8c081508, 0x04020002, 0x84040d4a, 0x84040d4c, 0x48064c00, 0x59240a00, 0x84040d40, @@ -17612,151 +17714,161 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x840411c0, 0x80081540, 0x480a4c00, 0x5c000000, 0x0401f008, 0x4c000000, 0x59240400, 0x84000540, 0x840411c0, 0x80081540, 0x480a4c00, 0x5c000000, - 0x82041480, 0x0000007f, 0x02021000, 0x0010224e, - 0x82041400, 0x00102057, 0x50081000, 0x82081500, + 0x82041480, 0x0000007f, 0x02021000, 0x0010230d, + 0x82041400, 0x00102116, 0x50081000, 0x82081500, 0x000000ff, 0x48064a08, 0x480a4805, 0x480a4c08, 0x8c000500, 0x04020006, 0x480b500f, 0x42000800, - 0x00000003, 0x0201f800, 0x00106c63, 0x0201f800, - 0x00103942, 0x04000004, 0x59240400, 0x84000544, + 0x00000003, 0x0201f800, 0x00106e68, 0x0201f800, + 0x00103a32, 0x04000004, 0x59240400, 0x84000544, 0x48024c00, 0x599c0019, 0x42000800, 0x00001000, 0x50040800, 0x82040c80, 0x24320001, 0x04001003, 0x84000546, 0x48033819, 0x8c000506, 0x0400000f, 0x4a03b805, 0x90000000, 0x59a81007, 0x8c081516, 0x0402000a, 0x42000800, 0x00007600, 0x4a000805, - 0xd0000000, 0x42000800, 0x0010c89b, 0x58041401, - 0x84081542, 0x48080c01, 0x8c00050e, 0x0402000b, - 0x59a80805, 0x8c040d14, 0x04000008, 0x42000800, - 0x0010c83e, 0x50040800, 0x82040d00, 0x00000028, - 0x02020000, 0x0010224e, 0x82000500, 0x00000030, + 0xd0000000, 0x42000800, 0x0010cb9b, 0x58041401, + 0x84081542, 0x48080c01, 0x8c00050e, 0x04020007, + 0x4c000000, 0x0201f800, 0x00103adb, 0x5c000000, + 0x02020000, 0x0010230d, 0x82000500, 0x00000030, 0x04000003, 0x80000108, 0x0401f003, 0x42000000, 0x00000002, 0x48039040, 0x42000800, 0x00000002, - 0x82000400, 0x001031ca, 0x50001000, 0x0201f800, - 0x00106c63, 0x599c0201, 0x82000c80, 0x00000100, - 0x02001000, 0x0010224e, 0x82000c80, 0x00000841, - 0x02021000, 0x0010224e, 0x82000500, 0x00000007, - 0x02020000, 0x0010224e, 0x599c0401, 0x80000540, - 0x02000000, 0x0010224e, 0x599c0409, 0x599c0c07, - 0x80040c80, 0x02021000, 0x0010224e, 0x80000040, - 0x02000000, 0x0010224e, 0x599c0209, 0x599c0a07, - 0x80040c80, 0x02021000, 0x0010224e, 0x80000040, - 0x02000000, 0x0010224e, 0x0201f800, 0x0010546b, - 0x0201f800, 0x00104cb1, 0x599c0201, 0x48035004, - 0x0201f800, 0x00101278, 0x599c020a, 0x800001c0, + 0x82000400, 0x001032ba, 0x50001000, 0x0201f800, + 0x00106e68, 0x599c0201, 0x82000c80, 0x00000100, + 0x02001000, 0x0010230d, 0x82000c80, 0x00000841, + 0x02021000, 0x0010230d, 0x82000500, 0x00000007, + 0x02020000, 0x0010230d, 0x599c0401, 0x80000540, + 0x02000000, 0x0010230d, 0x599c0409, 0x599c0c07, + 0x80040c80, 0x02021000, 0x0010230d, 0x80000040, + 0x02000000, 0x0010230d, 0x599c0209, 0x599c0a07, + 0x80040c80, 0x02021000, 0x0010230d, 0x80000040, + 0x02000000, 0x0010230d, 0x0201f800, 0x0010559c, + 0x0201f800, 0x00104dd6, 0x599c0201, 0x48035004, + 0x0201f800, 0x00101279, 0x599c020a, 0x800001c0, 0x04000003, 0x48035031, 0x0401f003, 0x4a035031, 0x000000c8, 0x8d0e1d20, 0x04000004, 0x0201f800, - 0x001064a2, 0x417a5000, 0x599c0003, 0x599c0804, + 0x001066a7, 0x417a5000, 0x599c0003, 0x599c0804, 0x9c0001c0, 0x9c0409c0, 0x48024801, 0x48064802, 0x48035002, 0x48075003, 0x599c1017, 0x8c08151c, 0x04000006, 0x599c0005, 0x599c0806, 0x9c0001c0, 0x9c0409c0, 0x0401f003, 0x82000500, 0xf0ffffff, 0x48024803, 0x48064804, 0x48035000, 0x48075001, - 0x42001000, 0x0010c846, 0x48001000, 0x48041001, - 0x42001000, 0x0010c853, 0x48001000, 0x48041001, - 0x59a00207, 0x82000580, 0x00000048, 0x040200b2, - 0x0201f800, 0x00103876, 0x04020005, 0x4a034407, - 0x00000002, 0x0201f000, 0x0010224a, 0x42000800, + 0x42001000, 0x0010cb46, 0x48001000, 0x48041001, + 0x42001000, 0x0010cb53, 0x48001000, 0x48041001, + 0x59a00207, 0x82000580, 0x00000048, 0x040200de, + 0x0201f800, 0x00103966, 0x04020005, 0x4a034407, + 0x00000002, 0x0201f000, 0x00102309, 0x42000800, 0x00000010, 0x59a00208, 0x59a01408, 0x900001c0, 0x80081540, 0x59a0020a, 0x59a01c0a, 0x900001c0, 0x800c1d40, 0x82081400, 0x00000080, 0x82083400, 0x00000040, 0x481b4002, 0x820c3440, 0x00000000, 0x481b4003, 0x832c0400, 0x00000005, 0x0201f800, - 0x0010389a, 0x4a01d808, 0x001030a4, 0x1c01f000, + 0x0010398a, 0x4a01d808, 0x00103168, 0x1c01f000, 0x4031d800, 0x58ef400a, 0x58ee580c, 0x58ec0002, - 0x82000580, 0x00000200, 0x02000000, 0x00102242, + 0x82000580, 0x00000200, 0x02000000, 0x00102301, 0x592c1005, 0x480bc857, 0x80080120, 0x42024800, - 0x0010ccd1, 0x48024c06, 0x82081500, 0x0000ffff, + 0x0010cfd1, 0x48024c06, 0x82081500, 0x0000ffff, 0x599c0818, 0x82040d00, 0x00000030, 0x82040580, 0x00000000, 0x04020006, 0x82080480, 0x0000007e, - 0x02021000, 0x0010224e, 0x0401f00b, 0x59a80078, + 0x02021000, 0x0010230d, 0x0401f007, 0x59a80078, 0x8c00053e, 0x04000004, 0x82080480, 0x00000040, - 0x0401f003, 0x82080480, 0x00000080, 0x02021000, - 0x0010224e, 0x80080800, 0x42000000, 0x0010ccd0, - 0x44040000, 0x800811c0, 0x04000067, 0x42024800, - 0x0010ccdc, 0x80040840, 0x832e5c00, 0x00000006, - 0x42004000, 0x00000003, 0x592c0400, 0x8c000506, - 0x04000012, 0x8c00050a, 0x04020004, 0x8d0e1d20, - 0x02000000, 0x0010224e, 0x4a024a00, 0x00000005, - 0x82001500, 0x00000003, 0x04000006, 0x840011c0, - 0x82081500, 0x000000ff, 0x480a4a08, 0x0401f003, - 0x82000500, 0x000000ff, 0x48024c00, 0x592c0001, - 0x592c1002, 0x9c0001c0, 0x9c0811c0, 0x48024801, - 0x480a4802, 0x599c1817, 0x8c0c1d1c, 0x04000006, - 0x592c0003, 0x592c1004, 0x9c0001c0, 0x9c0811c0, - 0x0401f003, 0x82000500, 0xf0ffffff, 0x48024803, - 0x480a4804, 0x832e5c00, 0x00000005, 0x83264c00, - 0x0000000b, 0x80040840, 0x04000024, 0x80204040, - 0x040207d2, 0x48074000, 0x49274001, 0x42000800, - 0x0000000f, 0x59a01002, 0x59a01803, 0x82083400, - 0x0000003c, 0x481b4002, 0x820c3440, 0x00000000, - 0x481b4003, 0x58ee580c, 0x832c0400, 0x00000005, - 0x0201f800, 0x0010389a, 0x4a01d808, 0x00103119, - 0x1c01f000, 0x4031d800, 0x58ef400a, 0x58ec0002, - 0x82000580, 0x00000200, 0x02000000, 0x00102242, - 0x58ee580c, 0x832e5c00, 0x00000005, 0x59a00800, - 0x59a24801, 0x0401f7af, 0x42006800, 0x0010ccd1, - 0x4200b000, 0x0010ccd0, 0x5058b000, 0x8058b040, - 0x04000009, 0x42024800, 0x0010ccdc, 0x58340206, + 0x0401f01c, 0x0201f800, 0x0010c0e8, 0x04000017, + 0x82080480, 0x00000081, 0x02021000, 0x0010230d, + 0x42000000, 0x0010cfd0, 0x44080000, 0x800811c0, + 0x02000000, 0x0010230d, 0x40080800, 0x42024800, + 0x0010cfd1, 0x832e5c00, 0x00000006, 0x592c0400, + 0x8c000506, 0x04020014, 0x59240200, 0x84000500, + 0x48024a00, 0x0401f010, 0x82080480, 0x00000080, + 0x02021000, 0x0010230d, 0x80080800, 0x42000000, + 0x0010cfd0, 0x44040000, 0x800811c0, 0x0400007a, + 0x42024800, 0x0010cfdc, 0x80040840, 0x832e5c00, + 0x00000006, 0x42004000, 0x00000003, 0x592c0400, + 0x8c000506, 0x04000012, 0x8c00050a, 0x04020004, + 0x8d0e1d20, 0x02000000, 0x0010230d, 0x4a024a00, + 0x00000005, 0x82001500, 0x00000003, 0x04000006, + 0x840011c0, 0x82081500, 0x000000ff, 0x480a4a08, + 0x0401f003, 0x82000500, 0x000000ff, 0x48024c00, + 0x592c0001, 0x592c1002, 0x9c0001c0, 0x9c0811c0, + 0x48024801, 0x480a4802, 0x599c1817, 0x8c0c1d1c, + 0x04000006, 0x592c0003, 0x592c1004, 0x9c0001c0, + 0x9c0811c0, 0x0401f003, 0x82000500, 0xf0ffffff, + 0x48024803, 0x480a4804, 0x832e5c00, 0x00000005, + 0x83264c00, 0x0000000b, 0x80040840, 0x04000024, + 0x80204040, 0x040207d2, 0x48074000, 0x49274001, + 0x42000800, 0x0000000f, 0x59a01002, 0x59a01803, + 0x82083400, 0x0000003c, 0x481b4002, 0x820c3440, + 0x00000000, 0x481b4003, 0x58ee580c, 0x832c0400, + 0x00000005, 0x0201f800, 0x0010398a, 0x4a01d808, + 0x001031f6, 0x1c01f000, 0x4031d800, 0x58ef400a, + 0x58ec0002, 0x82000580, 0x00000200, 0x02000000, + 0x00102301, 0x58ee580c, 0x832e5c00, 0x00000005, + 0x59a00800, 0x59a24801, 0x0401f7af, 0x0201f800, + 0x0010c0e8, 0x04000011, 0x42006800, 0x0010cfd1, + 0x4200b000, 0x0010cfd0, 0x5058b000, 0x58340400, + 0x8c000506, 0x04000005, 0x58340200, 0x8400055e, + 0x48006a00, 0x0401f005, 0x82346c00, 0x0000000b, + 0x8058b040, 0x040207f6, 0x42006800, 0x0010cfd1, + 0x4200b000, 0x0010cfd0, 0x5058b000, 0x8058b040, + 0x04000009, 0x42024800, 0x0010cfdc, 0x58340206, 0x48024a06, 0x83264c00, 0x0000000b, 0x8058b040, 0x040207fb, 0x59a80070, 0x8c000508, 0x04020017, 0x8c00050a, 0x04020023, 0x599c1019, 0x82081500, 0x0000e000, 0x82080580, 0x00000000, 0x0402000c, 0x4a035037, 0x00000000, 0x42000000, 0x00000001, - 0x0201f800, 0x001018a2, 0x42000000, 0x00000001, - 0x0201f800, 0x00101828, 0x0401f030, 0x82080580, + 0x0201f800, 0x001018a7, 0x42000000, 0x00000001, + 0x0201f800, 0x0010182d, 0x0401f030, 0x82080580, 0x00002000, 0x0402000c, 0x4a035037, 0x00000001, - 0x42000000, 0x00000000, 0x0201f800, 0x001018a2, - 0x42000000, 0x00000000, 0x0201f800, 0x00101828, + 0x42000000, 0x00000000, 0x0201f800, 0x001018a7, + 0x42000000, 0x00000000, 0x0201f800, 0x0010182d, 0x0401f022, 0x82080580, 0x00004000, 0x04020006, 0x4a035037, 0x00000002, 0x4a035043, 0x00000001, 0x0401f01a, 0x82080580, 0x00006000, 0x02020000, - 0x0010224e, 0x59a80878, 0x8c040d3e, 0x04020009, + 0x0010230d, 0x59a80878, 0x8c040d3e, 0x04020009, 0x59a80847, 0x82040d80, 0x01391077, 0x04020005, - 0x59e00813, 0x8c040d00, 0x02020000, 0x0010224e, + 0x59e00813, 0x8c040d00, 0x02020000, 0x0010230d, 0x4a035037, 0x00000003, 0x42000000, 0x00000002, - 0x0201f800, 0x001018a2, 0x42000000, 0x00000002, - 0x0201f800, 0x00101828, 0x599c1019, 0x82081500, + 0x0201f800, 0x001018a7, 0x42000000, 0x00000002, + 0x0201f800, 0x0010182d, 0x599c1019, 0x82081500, 0x0000e000, 0x599c0019, 0x8c000520, 0x0400000d, 0x42000000, 0x00000004, 0x42000800, 0x00000040, - 0x0201f800, 0x00101944, 0x42000000, 0x00000010, - 0x42000800, 0x000000c0, 0x0201f800, 0x00101944, + 0x0201f800, 0x00101949, 0x42000000, 0x00000010, + 0x42000800, 0x000000c0, 0x0201f800, 0x00101949, 0x4a035013, 0x0000aaaa, 0x599c1018, 0x82081500, 0x00000030, 0x59a8006d, 0x80000540, 0x0400000c, - 0x82080580, 0x00000000, 0x02000000, 0x0010224e, + 0x82080580, 0x00000000, 0x02000000, 0x0010230d, 0x599c1018, 0x82081500, 0xffffffcf, 0x82081540, 0x00000010, 0x480b3818, 0x0401f010, 0x82080d80, 0x00000000, 0x04000007, 0x82080d80, 0x00000010, 0x0400000a, 0x82080d80, 0x00000020, 0x04020002, - 0x48075013, 0x0201f800, 0x0010393d, 0x04000008, - 0x4803c856, 0x850e1d46, 0x0201f800, 0x00101606, + 0x48075013, 0x0201f800, 0x00103a2d, 0x04000008, + 0x4803c856, 0x850e1d46, 0x0201f800, 0x0010160b, 0x59a8001f, 0x80040540, 0x4803501f, 0x49f3c857, - 0x42001000, 0x00104ee2, 0x0201f800, 0x001062f9, - 0x42001000, 0x00104ed1, 0x0201f800, 0x00106449, + 0x42001000, 0x00105013, 0x0201f800, 0x001064fe, + 0x42001000, 0x00105002, 0x0201f800, 0x0010664e, 0x4a038805, 0xffffffff, 0x4a03c014, 0x00400040, - 0x4a03c013, 0x00400000, 0x0201f800, 0x00104822, + 0x4a03c013, 0x00400000, 0x0201f800, 0x00104922, 0x59a0001e, 0x84000540, 0x4803401e, 0x49f3c857, - 0x0201f000, 0x00102207, 0x00000018, 0x0000000c, + 0x0201f000, 0x001022c6, 0x00000018, 0x0000000c, 0x00000018, 0x00000020, 0x836c0580, 0x00000000, 0x04020005, 0x42000800, 0x00000007, 0x0201f000, - 0x0010224a, 0x42000800, 0x00000020, 0x59a00408, + 0x00102309, 0x42000800, 0x00000020, 0x59a00408, 0x59a01208, 0x900811c0, 0x80081540, 0x59a0040a, 0x59a01a0a, 0x900c19c0, 0x800c1d40, 0x419c0000, - 0x0201f000, 0x001038a3, 0x8d0e1d0e, 0x04000005, - 0x4a034407, 0x00000001, 0x0201f000, 0x0010224a, - 0x0201f800, 0x00104fc6, 0x04020005, 0x4a034407, - 0x00000016, 0x0201f000, 0x0010224a, 0x59a80056, + 0x0201f000, 0x00103993, 0x8d0e1d0e, 0x04000005, + 0x4a034407, 0x00000001, 0x0201f000, 0x00102309, + 0x0201f800, 0x001050f7, 0x04020005, 0x4a034407, + 0x00000016, 0x0201f000, 0x00102309, 0x59a80056, 0x8c000500, 0x04000011, 0x4a034407, 0x00000000, 0x42000800, 0x00000020, 0x59a00408, 0x59a01208, 0x900811c0, 0x80081540, 0x59a0040a, 0x59a01a0a, - 0x900c19c0, 0x800c1d40, 0x42000000, 0x0010df51, - 0x0201f000, 0x001038a3, 0x4a034407, 0x00000001, - 0x4200b000, 0x00000020, 0x4200a800, 0x0010df51, + 0x900c19c0, 0x800c1d40, 0x42000000, 0x0010e251, + 0x0201f000, 0x00103993, 0x4a034407, 0x00000001, + 0x4200b000, 0x00000020, 0x4200a800, 0x0010e251, 0x4200a000, 0xffffffff, 0x4450a800, 0x8054a800, 0x8058b040, 0x040207fd, 0x4d440000, 0x4d340000, 0x42028800, 0xffffffff, 0x42002000, 0xffffffff, 0x42003000, 0x00000001, 0x42003800, 0x00000001, - 0x42001800, 0x0010df51, 0x59a8100f, 0x82081500, - 0x000000ff, 0x40180000, 0x0c01f001, 0x00103223, - 0x00103226, 0x0010322a, 0x0010322e, 0x82102500, + 0x42001800, 0x0010e251, 0x59a8100f, 0x82081500, + 0x000000ff, 0x40180000, 0x0c01f001, 0x00103313, + 0x00103316, 0x0010331a, 0x0010331e, 0x82102500, 0xffffff00, 0x0401f014, 0x82102500, 0xffff00ff, 0x840811c0, 0x0401f010, 0x82102500, 0xff00ffff, 0x900811c0, 0x0401f00c, 0x82102500, 0x00ffffff, @@ -17766,33 +17878,33 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x83442c80, 0x0000007f, 0x04021014, 0x4c080000, 0x4c0c0000, 0x4c180000, 0x4c1c0000, 0x0201f800, 0x0002034c, 0x5c003800, 0x5c003000, 0x5c001800, - 0x5c001000, 0x040207f2, 0x0201f800, 0x0010492d, + 0x5c001000, 0x040207f2, 0x0201f800, 0x00104a2f, 0x040207ef, 0x80183000, 0x801c3800, 0x59341202, 0x40180000, 0x0c01f7ce, 0x82100580, 0xffffffff, - 0x04000002, 0x44101800, 0x42001800, 0x0010df51, + 0x04000002, 0x44101800, 0x42001800, 0x0010e251, 0x500c0000, 0x82000500, 0xffffff00, 0x801c0540, 0x44001800, 0x5c026800, 0x5c028800, 0x42000800, 0x00000020, 0x59a00408, 0x59a01208, 0x900811c0, 0x80081540, 0x59a0040a, 0x59a01a0a, 0x900c19c0, - 0x800c1d40, 0x42000000, 0x0010df51, 0x0201f000, - 0x001038a3, 0x59a28c07, 0x0201f800, 0x00103980, - 0x02020000, 0x0010224e, 0x0201f800, 0x0010497a, - 0x02020000, 0x0010224e, 0x0201f800, 0x00103876, + 0x800c1d40, 0x42000000, 0x0010e251, 0x0201f000, + 0x00103993, 0x59a28c07, 0x0201f800, 0x00103a70, + 0x02020000, 0x0010230d, 0x0201f800, 0x00104a7c, + 0x02020000, 0x0010230d, 0x0201f800, 0x00103966, 0x04020005, 0x4a034407, 0x00000002, 0x0201f000, - 0x0010224a, 0x59a0020c, 0x8c000500, 0x04000005, - 0x0201f800, 0x0010492d, 0x02020000, 0x00103947, + 0x00102309, 0x59a0020c, 0x8c000500, 0x04000005, + 0x0201f800, 0x00104a2f, 0x02020000, 0x00103a37, 0x59a0020c, 0x8c000502, 0x0400001b, 0x83440480, - 0x000007f0, 0x04021018, 0x0201f800, 0x00104936, + 0x000007f0, 0x04021018, 0x0201f800, 0x00104a38, 0x04020015, 0x497a5a05, 0x4a025c05, 0x00008000, - 0x59a24805, 0x0201f800, 0x00109731, 0x04020005, - 0x4a034407, 0x00000003, 0x0201f000, 0x0010224a, - 0x4a01d808, 0x0010329b, 0x1c01f000, 0x59a28c07, - 0x59a2440b, 0x0201f800, 0x0010497a, 0x02020000, - 0x0010224e, 0x4c580000, 0x4c500000, 0x4c540000, + 0x59a24805, 0x0201f800, 0x00109969, 0x04020005, + 0x4a034407, 0x00000003, 0x0201f000, 0x00102309, + 0x4a01d808, 0x0010338b, 0x1c01f000, 0x59a28c07, + 0x59a2440b, 0x0201f800, 0x00104a7c, 0x02020000, + 0x0010230d, 0x4c580000, 0x4c500000, 0x4c540000, 0x4200b000, 0x0000000a, 0x4134a000, 0x832e5c00, - 0x00000002, 0x412ca800, 0x0201f800, 0x0010bd5b, + 0x00000002, 0x412ca800, 0x0201f800, 0x0010c086, 0x832cac00, 0x00000006, 0x4054a000, 0x4200b000, - 0x00000004, 0x0201f800, 0x0010bd85, 0x5c00a800, + 0x00000004, 0x0201f800, 0x0010c0b0, 0x5c00a800, 0x5c00a000, 0x5c00b000, 0x592c0802, 0x82040500, 0x00ff00ff, 0x900001c0, 0x82041500, 0xff00ff00, 0x80080540, 0x48025802, 0x592c0801, 0x82040500, @@ -17800,63 +17912,63 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x80080540, 0x48025801, 0x42000800, 0x0000000a, 0x59a00408, 0x59a01208, 0x900811c0, 0x80081540, 0x59a0040a, 0x59a01a0a, 0x900c19c0, 0x800c1d40, - 0x412c0000, 0x0201f000, 0x001038a3, 0x496fc857, + 0x412c0000, 0x0201f000, 0x00103993, 0x496fc857, 0x496f4407, 0x59a80878, 0x8c040d3e, 0x02000000, - 0x00102207, 0x59a81078, 0x82081500, 0x00000097, + 0x001022c6, 0x59a81078, 0x82081500, 0x00000097, 0x59a81879, 0x59340400, 0x82000580, 0x00000404, 0x04020002, 0x84081546, 0x480b4408, 0x0201f000, - 0x00102207, 0x59a28c07, 0x0201f800, 0x00103980, - 0x02020000, 0x0010224e, 0x0201f800, 0x0010497a, - 0x02020000, 0x0010224e, 0x836c0580, 0x00000003, + 0x001022c6, 0x59a28c07, 0x0201f800, 0x00103a70, + 0x02020000, 0x0010230d, 0x0201f800, 0x00104a7c, + 0x02020000, 0x0010230d, 0x836c0580, 0x00000003, 0x04000005, 0x4a034407, 0x00000007, 0x0201f000, - 0x0010224a, 0x83340c00, 0x00000006, 0x59a0020c, + 0x00102309, 0x83340c00, 0x00000006, 0x59a0020c, 0x8c000500, 0x04000003, 0x83340c00, 0x00000008, 0x58040001, 0x4803440a, 0x900001c0, 0x4803420a, 0x50040000, 0x48034408, 0x900001c0, 0x48034208, - 0x59340200, 0x48034407, 0x0201f000, 0x00102207, + 0x59340200, 0x48034407, 0x0201f000, 0x001022c6, 0x8d0e1d0e, 0x04000005, 0x4a034407, 0x00000001, - 0x0201f000, 0x0010224a, 0x59a0220c, 0x8c102500, + 0x0201f000, 0x00102309, 0x59a0220c, 0x8c102500, 0x0402002e, 0x8c102506, 0x04020006, 0x59a03209, - 0x82180480, 0x00000003, 0x02021000, 0x0010224e, + 0x82180480, 0x00000003, 0x02021000, 0x0010230d, 0x59a28c07, 0x0201f800, 0x0002034c, 0x02020000, - 0x0010224e, 0x0201f800, 0x0010491a, 0x04000005, - 0x4a034407, 0x00000009, 0x0201f000, 0x0010224a, - 0x0201f800, 0x00103876, 0x04020005, 0x4a034407, - 0x00000002, 0x0201f000, 0x0010224a, 0x59a0220c, + 0x0010230d, 0x0201f800, 0x00104a1c, 0x04000005, + 0x4a034407, 0x00000009, 0x0201f000, 0x00102309, + 0x0201f800, 0x00103966, 0x04020005, 0x4a034407, + 0x00000002, 0x0201f000, 0x00102309, 0x59a0220c, 0x8c102506, 0x04000004, 0x59343002, 0x82183500, 0x00ffffff, 0x497a5a05, 0x4a025c05, 0x00008000, - 0x0201f800, 0x001096ea, 0x04020005, 0x4a034407, - 0x00000003, 0x0201f000, 0x0010224a, 0x4a01d808, - 0x00103394, 0x1c01f000, 0x59a28c07, 0x0201f800, - 0x0002034c, 0x02020000, 0x0010224e, 0x0201f800, - 0x0010491a, 0x04000005, 0x4a034407, 0x00000009, - 0x0201f000, 0x0010224a, 0x0201f800, 0x00103876, + 0x0201f800, 0x00109922, 0x04020005, 0x4a034407, + 0x00000003, 0x0201f000, 0x00102309, 0x4a01d808, + 0x00103484, 0x1c01f000, 0x59a28c07, 0x0201f800, + 0x0002034c, 0x02020000, 0x0010230d, 0x0201f800, + 0x00104a1c, 0x04000005, 0x4a034407, 0x00000009, + 0x0201f000, 0x00102309, 0x0201f800, 0x00103966, 0x04020005, 0x4a034407, 0x00000002, 0x0201f000, - 0x0010224a, 0x497a5a05, 0x4a025c05, 0x00008000, - 0x0201f800, 0x00103876, 0x04020005, 0x4a034407, - 0x00000002, 0x0201f000, 0x0010224a, 0x592e5800, - 0x0201f800, 0x00109702, 0x04020005, 0x4a034407, - 0x00000003, 0x0201f000, 0x0010224a, 0x4a01d808, - 0x00103366, 0x1c01f000, 0x592c2806, 0x82140d80, + 0x00102309, 0x497a5a05, 0x4a025c05, 0x00008000, + 0x0201f800, 0x00103966, 0x04020005, 0x4a034407, + 0x00000002, 0x0201f000, 0x00102309, 0x592e5800, + 0x0201f800, 0x0010993a, 0x04020005, 0x4a034407, + 0x00000003, 0x0201f000, 0x00102309, 0x4a01d808, + 0x00103456, 0x1c01f000, 0x592c2806, 0x82140d80, 0x01000000, 0x04020005, 0x4a034407, 0x00000004, - 0x0201f000, 0x0010224a, 0x42000800, 0x00000008, + 0x0201f000, 0x00102309, 0x42000800, 0x00000008, 0x59a00208, 0x59a01408, 0x900001c0, 0x80081540, 0x59a0020a, 0x59a01c0a, 0x900001c0, 0x800c1d40, - 0x832c0400, 0x00000006, 0x0201f800, 0x001038a3, - 0x8c142d00, 0x04000003, 0x4a01d808, 0x00103381, + 0x832c0400, 0x00000006, 0x0201f800, 0x00103993, + 0x8c142d00, 0x04000003, 0x4a01d808, 0x00103471, 0x1c01f000, 0x4031d800, 0x58ef400a, 0x58ee580d, 0x58ec0002, 0x82000580, 0x00000200, 0x02000000, - 0x00102242, 0x812e59c0, 0x02000800, 0x0010032e, + 0x00102301, 0x812e59c0, 0x02000800, 0x0010032e, 0x42000800, 0x00000008, 0x832c0400, 0x00000006, - 0x58ec1006, 0x58ec1807, 0x0201f000, 0x001038a3, + 0x58ec1006, 0x58ec1807, 0x0201f000, 0x00103993, 0x592c0006, 0x82000580, 0x01000000, 0x04020005, - 0x4a034407, 0x00000004, 0x0201f000, 0x0010224a, + 0x4a034407, 0x00000004, 0x0201f000, 0x00102309, 0x59a00208, 0x59a01408, 0x900001c0, 0x80081540, 0x59a0020a, 0x59a01c0a, 0x900001c0, 0x800c1d40, 0x42000800, 0x00000006, 0x832c0400, 0x00000007, - 0x0201f000, 0x001038a3, 0x59a00a0b, 0x800409c0, - 0x02000000, 0x0010224e, 0x0201f800, 0x00103980, - 0x02020000, 0x0010224e, 0x82040480, 0x00000081, + 0x0201f000, 0x00103993, 0x59a00a0b, 0x800409c0, + 0x02000000, 0x0010230d, 0x0201f800, 0x00103a70, + 0x02020000, 0x0010230d, 0x82040480, 0x00000081, 0x04001003, 0x42000800, 0x00000080, 0x59c40085, 0x59881004, 0x80081400, 0x480b1004, 0x497b8885, 0x59c400b1, 0x48031022, 0x59c400b2, 0x48031021, @@ -17866,72 +17978,72 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x80081400, 0x480b1024, 0x59a00208, 0x59a01408, 0x900001c0, 0x80081540, 0x59a0020a, 0x59a01c0a, 0x900001c0, 0x800c1d40, 0x83880400, 0x00000000, - 0x0201f800, 0x001038a3, 0x4a01d808, 0x001033dd, + 0x0201f800, 0x00103993, 0x4a01d808, 0x001034cd, 0x1c01f000, 0x4031d800, 0x58ef400a, 0x58ec0002, - 0x82000580, 0x00000200, 0x02000000, 0x00102242, + 0x82000580, 0x00000200, 0x02000000, 0x00102301, 0x59a0020c, 0x8c000500, 0x04000008, 0x83880400, 0x00000000, 0x4803c840, 0x4a03c842, 0x00000006, 0x04011000, 0x497b8885, 0x4a034208, 0x00000080, - 0x0201f000, 0x00102207, 0x8d0e1d0e, 0x04000005, - 0x4a034407, 0x00000001, 0x0201f000, 0x0010224a, - 0x0201f800, 0x00103980, 0x02020000, 0x0010224e, - 0x0201f800, 0x00103876, 0x04020005, 0x4a034407, - 0x00000002, 0x0201f000, 0x0010224a, 0x497a5a05, + 0x0201f000, 0x001022c6, 0x8d0e1d0e, 0x04000005, + 0x4a034407, 0x00000001, 0x0201f000, 0x00102309, + 0x0201f800, 0x00103a70, 0x02020000, 0x0010230d, + 0x0201f800, 0x00103966, 0x04020005, 0x4a034407, + 0x00000002, 0x0201f000, 0x00102309, 0x497a5a05, 0x4a025c05, 0x00008000, 0x59a00407, 0x800001c0, - 0x02000000, 0x0010224e, 0x82001580, 0x000000ff, + 0x02000000, 0x0010230d, 0x82001580, 0x000000ff, 0x04000005, 0x82001480, 0x00000004, 0x02021000, - 0x0010224e, 0x40001000, 0x59a24805, 0x0201f800, - 0x00101c85, 0x04020005, 0x4a034407, 0x00000003, - 0x0201f000, 0x0010224a, 0x4a01d808, 0x0010341d, + 0x0010230d, 0x40001000, 0x59a24805, 0x0201f800, + 0x00101c8a, 0x04020005, 0x4a034407, 0x00000003, + 0x0201f000, 0x00102309, 0x4a01d808, 0x0010350d, 0x1c01f000, 0x592c0006, 0x82000580, 0x01000000, - 0x02020000, 0x00102207, 0x4a034407, 0x00000004, - 0x0201f000, 0x0010224a, 0x59a01407, 0x8c081508, + 0x02020000, 0x001022c6, 0x4a034407, 0x00000004, + 0x0201f000, 0x00102309, 0x59a01407, 0x8c081508, 0x04020007, 0x8d0e1d0e, 0x04000005, 0x4a034407, - 0x00000001, 0x0201f000, 0x0010224a, 0x59a01c08, - 0x820c0480, 0x00001000, 0x02021000, 0x0010224e, + 0x00000001, 0x0201f000, 0x00102309, 0x59a01c08, + 0x820c0480, 0x00001000, 0x02021000, 0x0010230d, 0x497b2804, 0x497b2805, 0x497b2826, 0x497b2827, 0x497b2829, 0x497b282a, 0x497b282c, 0x497b282d, 0x4803c856, 0x850e1d06, 0x8c081500, 0x04000005, 0x4803c856, 0x830e1d40, 0x00000011, 0x0401f004, 0x8c081506, 0x04000002, 0x850e1d42, 0x850e1d0a, 0x4202d800, 0x00000001, 0x82081500, 0x000000e0, - 0x8008010a, 0x0c020038, 0x0201f800, 0x00104fc6, + 0x8008010a, 0x0c020038, 0x0201f800, 0x001050f7, 0x0402000b, 0x4a035014, 0x00000001, 0x4a035013, - 0x0000aaaa, 0x0201f800, 0x00104f20, 0x0401f01f, + 0x0000aaaa, 0x0201f800, 0x00105051, 0x0401f01f, 0x4a035014, 0x00000000, 0x0401f7f9, 0x497b5013, - 0x0201f800, 0x00104032, 0x0201f800, 0x00106c3c, - 0x0201f800, 0x00106faf, 0x0201f800, 0x00106c29, + 0x0201f800, 0x0010412b, 0x0201f800, 0x00106e41, + 0x0201f800, 0x001071b4, 0x0201f800, 0x00106e2e, 0x59a00a08, 0x480788a7, 0x59c400a3, 0x82000500, 0xfeffffff, 0x82000540, 0x80018000, 0x40000800, 0x84040d20, 0x480388a3, 0x480788a3, 0x497b5032, - 0x42000800, 0x0000002d, 0x42001000, 0x001040ba, - 0x0201f800, 0x001062d0, 0x59a00408, 0x800000c2, + 0x42000800, 0x0000002d, 0x42001000, 0x001041b3, + 0x0201f800, 0x001064d5, 0x59a00408, 0x800000c2, 0x800008c4, 0x8005d400, 0x42000000, 0x0000ffff, - 0x0201f800, 0x00104fc6, 0x04000003, 0x59a00208, - 0x80000110, 0x0201f800, 0x00103996, 0x0201f000, - 0x00102207, 0x0010344e, 0x00103451, 0x0010345b, - 0x0010224e, 0x00103458, 0x0010224e, 0x0010224e, - 0x0010224e, 0x836c0580, 0x00000003, 0x04000005, - 0x4a034407, 0x00000007, 0x0201f000, 0x0010224a, - 0x0201f800, 0x00103980, 0x02020000, 0x0010224e, + 0x0201f800, 0x001050f7, 0x04000003, 0x59a00208, + 0x80000110, 0x0201f800, 0x00103a86, 0x0201f000, + 0x001022c6, 0x0010353e, 0x00103541, 0x0010354b, + 0x0010230d, 0x00103548, 0x0010230d, 0x0010230d, + 0x0010230d, 0x836c0580, 0x00000003, 0x04000005, + 0x4a034407, 0x00000007, 0x0201f000, 0x00102309, + 0x0201f800, 0x00103a70, 0x02020000, 0x0010230d, 0x59a00408, 0x59a00a08, 0x900409c0, 0x80040d40, 0x4805d806, 0x59a0040a, 0x59a00a0a, 0x900409c0, 0x80040d40, 0x4805d807, 0x4a01d801, 0x00000000, 0x0401fbd2, 0x04020005, 0x4a034407, 0x00000002, - 0x0201f000, 0x0010224a, 0x417a8800, 0x497b4001, + 0x0201f000, 0x00102309, 0x417a8800, 0x497b4001, 0x832c0400, 0x00000006, 0x48034002, 0x59a00407, 0x8c000504, 0x0402009b, 0x4c5c0000, 0x4c600000, 0x4c640000, 0x4178b800, 0x59a0c407, 0x59a0c802, - 0x59a2440b, 0x0201f800, 0x0010497a, 0x0402002c, - 0x0201f800, 0x0010491a, 0x04000004, 0x0201f800, - 0x0010484d, 0x04020026, 0x8c60c53e, 0x04020022, + 0x59a2440b, 0x0201f800, 0x00104a7c, 0x0402002c, + 0x0201f800, 0x00104a1c, 0x04000004, 0x0201f800, + 0x0010494d, 0x04020026, 0x8c60c53e, 0x04020022, 0x8c60c500, 0x04000008, 0x59340009, 0x4400c800, 0x8064c800, 0x59340008, 0x4400c800, 0x8064c800, 0x0401f007, 0x59340007, 0x4400c800, 0x8064c800, 0x59340006, 0x4400c800, 0x8064c800, 0x83440580, 0x000007fe, 0x0400000d, 0x83440580, 0x000007fc, - 0x0400000a, 0x0201f800, 0x0010492d, 0x04000003, - 0x85468d5e, 0x0401f005, 0x0201f800, 0x00104817, + 0x0400000a, 0x0201f800, 0x00104a2f, 0x04000003, + 0x85468d5e, 0x0401f005, 0x0201f800, 0x00104917, 0x04020002, 0x85468d5e, 0x4544c800, 0x85468d1e, 0x8064c800, 0x825cbc00, 0x0000000c, 0x81468800, 0x83440480, 0x000007f0, 0x0400100e, 0x8c60c506, @@ -17944,32 +18056,32 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x04021004, 0x8460c57e, 0x4178b800, 0x0401f7b2, 0x49474000, 0x485dd805, 0x59a00002, 0x4801d803, 0x40ec1000, 0x0201f800, 0x00020016, 0x4a01d808, - 0x00103543, 0x5c00c800, 0x5c00c000, 0x5c00b800, + 0x00103633, 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x1c01f000, 0x8c60c53e, 0x0402001a, 0x805cb9c0, 0x04000024, 0x59a00001, 0x805c0400, 0x48034001, 0x59a00a0b, 0x800409c0, 0x04000005, 0x80040480, 0x04021003, 0x4178b800, 0x0401f00e, 0x59a00801, 0x48074407, 0x485dd805, 0x59a00002, 0x4801d803, - 0x4a01d808, 0x00102200, 0x40ec1000, 0x5c00c800, + 0x4a01d808, 0x001022bf, 0x40ec1000, 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x0201f000, 0x00020016, 0x59a00001, 0x805c0c00, 0x59a0020b, 0x80040480, 0x48034208, 0x4a034407, 0x0000000a, 0x5c00c800, - 0x5c00c000, 0x5c00b800, 0x0201f000, 0x0010224a, + 0x5c00c000, 0x5c00b800, 0x0201f000, 0x00102309, 0x59a00801, 0x48074407, 0x5c00c800, 0x5c00c000, - 0x5c00b800, 0x0201f000, 0x00102207, 0x4031d800, + 0x5c00b800, 0x0201f000, 0x001022c6, 0x4031d800, 0x58ef400a, 0x58ec0002, 0x82000580, 0x00000200, - 0x02000000, 0x00102242, 0x59a28800, 0x0401f767, + 0x02000000, 0x00102301, 0x59a28800, 0x0401f767, 0x4c5c0000, 0x4c600000, 0x4c640000, 0x4178b800, 0x59a0c407, 0x59a0c802, 0x59a2440b, 0x0201f800, - 0x0010497a, 0x04020031, 0x0201f800, 0x0010491a, - 0x04000004, 0x0201f800, 0x0010484d, 0x0402002b, + 0x00104a7c, 0x04020031, 0x0201f800, 0x00104a1c, + 0x04000004, 0x0201f800, 0x0010494d, 0x0402002b, 0x8c60c53e, 0x04020027, 0x83440580, 0x000007fe, 0x04000011, 0x83440580, 0x000007fc, 0x0400000e, - 0x0201f800, 0x0010492d, 0x04000005, 0x59340403, + 0x0201f800, 0x00104a2f, 0x04000005, 0x59340403, 0x8400055e, 0x48026c03, 0x0401f007, 0x0201f800, - 0x00104817, 0x04020004, 0x59340403, 0x8400055e, + 0x00104917, 0x04020004, 0x59340403, 0x8400055e, 0x48026c03, 0x4134a000, 0x4064a800, 0x4200b000, - 0x00000006, 0x0201f800, 0x0010bd5b, 0x59340007, + 0x00000006, 0x0201f800, 0x0010c086, 0x59340007, 0x4400a800, 0x59340006, 0x4800a801, 0x59340009, 0x4800a802, 0x59340008, 0x4800a803, 0x59340403, 0x8400051e, 0x48026c03, 0x8264cc00, 0x0000000a, @@ -17984,101 +18096,101 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x04021004, 0x8460c57e, 0x4178b800, 0x0401f7ab, 0x49474000, 0x485dd805, 0x59a00002, 0x4801d803, 0x40ec1000, 0x0201f800, 0x00020016, 0x4a01d808, - 0x001035e3, 0x5c00c800, 0x5c00c000, 0x5c00b800, + 0x001036d3, 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x1c01f000, 0x8c60c53e, 0x0402001a, 0x805cb9c0, 0x04000024, 0x59a00001, 0x805c0400, 0x48034001, 0x59a00a0b, 0x800409c0, 0x04000005, 0x80040480, 0x04021003, 0x4178b800, 0x0401f00e, 0x59a00801, 0x48074407, 0x485dd805, 0x59a00002, 0x4801d803, - 0x4a01d808, 0x00102200, 0x40ec1000, 0x5c00c800, + 0x4a01d808, 0x001022bf, 0x40ec1000, 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x0201f000, 0x00020016, 0x59a00001, 0x805c0c00, 0x59a0020b, 0x80040480, 0x48034208, 0x4a034407, 0x0000000a, 0x5c00c800, - 0x5c00c000, 0x5c00b800, 0x0201f000, 0x0010224a, + 0x5c00c000, 0x5c00b800, 0x0201f000, 0x00102309, 0x59a00801, 0x48074407, 0x5c00c800, 0x5c00c000, - 0x5c00b800, 0x0201f000, 0x00102207, 0x4031d800, + 0x5c00b800, 0x0201f000, 0x001022c6, 0x4031d800, 0x58ef400a, 0x58ec0002, 0x82000580, 0x00000200, - 0x02000000, 0x00102242, 0x59a28800, 0x0401f761, + 0x02000000, 0x00102301, 0x59a28800, 0x0401f761, 0x42002800, 0x0000007e, 0x59a00c07, 0x59a01208, 0x59a01c08, 0x59a0220a, 0x82040500, 0x0000ff00, 0x840001c0, 0x82003480, 0x00000020, 0x02001000, - 0x0010224e, 0x80140480, 0x02001000, 0x0010224e, + 0x0010230d, 0x80140480, 0x02001000, 0x0010230d, 0x82040500, 0x000000ff, 0x82003480, 0x00000020, - 0x02001000, 0x0010224e, 0x80140480, 0x02001000, - 0x0010224e, 0x82080500, 0x0000ff00, 0x840001c0, - 0x82003480, 0x00000020, 0x02001000, 0x0010224e, - 0x80140480, 0x02001000, 0x0010224e, 0x82080500, + 0x02001000, 0x0010230d, 0x80140480, 0x02001000, + 0x0010230d, 0x82080500, 0x0000ff00, 0x840001c0, + 0x82003480, 0x00000020, 0x02001000, 0x0010230d, + 0x80140480, 0x02001000, 0x0010230d, 0x82080500, 0x000000ff, 0x82003480, 0x00000020, 0x02001000, - 0x0010224e, 0x80140480, 0x02001000, 0x0010224e, + 0x0010230d, 0x80140480, 0x02001000, 0x0010230d, 0x820c0500, 0x0000ff00, 0x840001c0, 0x82003480, - 0x00000020, 0x02001000, 0x0010224e, 0x80140480, - 0x02001000, 0x0010224e, 0x820c0500, 0x000000ff, - 0x82003480, 0x00000020, 0x02001000, 0x0010224e, - 0x80140480, 0x02001000, 0x0010224e, 0x82100500, + 0x00000020, 0x02001000, 0x0010230d, 0x80140480, + 0x02001000, 0x0010230d, 0x820c0500, 0x000000ff, + 0x82003480, 0x00000020, 0x02001000, 0x0010230d, + 0x80140480, 0x02001000, 0x0010230d, 0x82100500, 0x0000ff00, 0x840001c0, 0x82003480, 0x00000020, - 0x02001000, 0x0010224e, 0x80140480, 0x02001000, - 0x0010224e, 0x82100500, 0x000000ff, 0x82003480, - 0x00000020, 0x02001000, 0x0010224e, 0x80140480, - 0x02001000, 0x0010224e, 0x900401c0, 0x80080d40, + 0x02001000, 0x0010230d, 0x80140480, 0x02001000, + 0x0010230d, 0x82100500, 0x000000ff, 0x82003480, + 0x00000020, 0x02001000, 0x0010230d, 0x80140480, + 0x02001000, 0x0010230d, 0x900401c0, 0x80080d40, 0x900c01c0, 0x80101d40, 0x83a83400, 0x0000002d, 0x44043000, 0x80183000, 0x440c3000, 0x0201f000, - 0x00102207, 0x0401fa2d, 0x04020005, 0x4a034407, - 0x00000002, 0x0201f000, 0x0010224a, 0x42000800, - 0x0000000c, 0x0401f84f, 0x4a01d808, 0x00103655, + 0x001022c6, 0x0401fa2d, 0x04020005, 0x4a034407, + 0x00000002, 0x0201f000, 0x00102309, 0x42000800, + 0x0000000c, 0x0401f84f, 0x4a01d808, 0x00103745, 0x1c01f000, 0x4031d800, 0x58ee580c, 0x58ef400a, 0x58ec0002, 0x82000580, 0x00000200, 0x02000000, - 0x00102242, 0x832ca400, 0x00000005, 0x4200b000, - 0x0000000c, 0x40c8a800, 0x0201f800, 0x0010bd5b, + 0x00102301, 0x832ca400, 0x00000005, 0x4200b000, + 0x0000000c, 0x40c8a800, 0x0201f800, 0x0010c086, 0x58c80200, 0x80000540, 0x04000030, 0x58c80400, 0x82000500, 0xfffffffb, 0x0402002c, 0x58c80401, 0x80000540, 0x04000029, 0x82000480, 0x0000ff01, 0x04021026, 0x58c80202, 0x82000480, 0x0000005c, - 0x04001022, 0x0201f800, 0x0010676c, 0x58c80c08, + 0x04001022, 0x0201f800, 0x00106971, 0x58c80c08, 0x58c80204, 0x80040480, 0x0400101c, 0x58c80204, 0x82000480, 0x00000005, 0x04021018, 0x58c80205, 0x58c80c08, 0x80040902, 0x80040480, 0x04001013, - 0x58c80c08, 0x0201f800, 0x001066bb, 0x04000017, - 0x0201f800, 0x0010657c, 0x0402000e, 0x4979940b, + 0x58c80c08, 0x0201f800, 0x001068c0, 0x04000017, + 0x0201f800, 0x00106781, 0x0402000e, 0x4979940b, 0x59c408a3, 0x82040d40, 0x00000002, 0x480788a3, - 0x58c80202, 0x48030804, 0x0201f800, 0x0010655e, - 0x0201f000, 0x00102207, 0x0201f000, 0x0010224e, - 0x0201f800, 0x001067be, 0x0201f800, 0x001067cb, - 0x0201f800, 0x001066ae, 0x0201f000, 0x0010224a, + 0x58c80202, 0x48030804, 0x0201f800, 0x00106763, + 0x0201f000, 0x001022c6, 0x0201f000, 0x0010230d, + 0x0201f800, 0x001069c3, 0x0201f800, 0x001069d0, + 0x0201f800, 0x001068b3, 0x0201f000, 0x00102309, 0x4c000000, 0x59a01208, 0x59a00408, 0x900811c0, 0x80081540, 0x59a01a0a, 0x59a0040a, 0x900c19c0, 0x800c1d40, 0x5c000000, 0x0401f1f0, 0x59840000, 0x82000580, 0x00000000, 0x04000050, 0x59840002, 0x8c000504, 0x0400004d, 0x84000546, 0x48030802, - 0x0201f800, 0x001066ae, 0x59c408a3, 0x82040d00, + 0x0201f800, 0x001068b3, 0x59c408a3, 0x82040d00, 0xfffffffd, 0x480788a3, 0x4c5c0000, 0x4200b800, - 0x0010bf80, 0x505e6800, 0x813669c0, 0x04000008, + 0x0010c280, 0x505e6800, 0x813669c0, 0x04000008, 0x5936600e, 0x813261c0, 0x04000005, 0x0201f800, - 0x0010669f, 0x02000800, 0x00106877, 0x805cb800, - 0x825c0580, 0x0010c770, 0x040207f3, 0x59866003, + 0x001068a4, 0x02000800, 0x00106a7c, 0x805cb800, + 0x825c0580, 0x0010ca70, 0x040207f3, 0x59866003, 0x813261c0, 0x0400000b, 0x59300407, 0x82000580, 0x00000009, 0x02020800, 0x0010032e, 0x5930b800, - 0x0201f800, 0x00106684, 0x405e6000, 0x0401f7f5, - 0x497b0803, 0x4200b800, 0x0010c872, 0x505e6000, + 0x0201f800, 0x00106889, 0x405e6000, 0x0401f7f5, + 0x497b0803, 0x4200b800, 0x0010cb72, 0x505e6000, 0x813261c0, 0x04000011, 0x59300407, 0x82000580, 0x00000009, 0x0402000d, 0x59300203, 0x82000580, 0x00000004, 0x04020009, 0x5932680a, 0x813669c0, - 0x02020800, 0x0010032e, 0x0201f800, 0x00100c75, - 0x0201f800, 0x00106684, 0x4578b800, 0x805cb800, - 0x825c0580, 0x0010c87a, 0x040207e9, 0x42000800, - 0x0010c870, 0x49780801, 0x49780800, 0x0201f800, - 0x001067be, 0x0201f800, 0x001067cb, 0x5c00b800, - 0x0201f800, 0x00106577, 0x0201f000, 0x00102207, + 0x02020800, 0x0010032e, 0x0201f800, 0x00100c76, + 0x0201f800, 0x00106889, 0x4578b800, 0x805cb800, + 0x825c0580, 0x0010cb7a, 0x040207e9, 0x42000800, + 0x0010cb70, 0x49780801, 0x49780800, 0x0201f800, + 0x001069c3, 0x0201f800, 0x001069d0, 0x5c00b800, + 0x0201f800, 0x0010677c, 0x0201f000, 0x001022c6, 0x836c0580, 0x00000003, 0x04000005, 0x4a034407, - 0x00000007, 0x0201f000, 0x0010224a, 0x0401fa79, - 0x02020000, 0x0010224e, 0x59a00408, 0x59a00a08, + 0x00000007, 0x0201f000, 0x00102309, 0x0401fa79, + 0x02020000, 0x0010230d, 0x59a00408, 0x59a00a08, 0x900409c0, 0x80040d40, 0x4805d806, 0x59a0040a, 0x59a00a0a, 0x900409c0, 0x80040d40, 0x4805d807, 0x4a01d801, 0x00000000, 0x0401f960, 0x04020005, - 0x4a034407, 0x00000002, 0x0201f000, 0x0010224a, + 0x4a034407, 0x00000002, 0x0201f000, 0x00102309, 0x417a8800, 0x497b4001, 0x832c0400, 0x00000005, 0x48034002, 0x4c5c0000, 0x4c600000, 0x4c640000, 0x4178b800, 0x4178c800, 0x59a0c002, 0x0201f800, - 0x0010497a, 0x0402000d, 0x0201f800, 0x0010491a, + 0x00104a7c, 0x0402000d, 0x0201f800, 0x00104a1c, 0x0402000a, 0x8c64cd3e, 0x04020006, 0x59340002, 0x4800c000, 0x4944c001, 0x8260c400, 0x00000002, 0x825cbc00, 0x00000008, 0x81468800, 0x83440480, @@ -18089,78 +18201,78 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x80040480, 0x04021004, 0x4178b800, 0x8464cd7e, 0x0401f7db, 0x49474000, 0x485dd805, 0x59a00002, 0x4801d803, 0x40ec1000, 0x0201f800, 0x00020016, - 0x4a01d808, 0x0010378a, 0x5c00c800, 0x5c00c000, + 0x4a01d808, 0x0010387a, 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x1c01f000, 0x8c64cd3e, 0x0402001b, 0x805cb9c0, 0x04000025, 0x59a00001, 0x805c0400, 0x48034001, 0x59a00a0b, 0x800409c0, 0x04000005, 0x80040480, 0x04021003, 0x4178b800, 0x0401f00f, 0x59a00801, 0x80040906, 0x48074407, 0x485dd805, - 0x59a00002, 0x4801d803, 0x4a01d808, 0x00102200, + 0x59a00002, 0x4801d803, 0x4a01d808, 0x001022bf, 0x40ec1000, 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x0201f000, 0x00020016, 0x59a00001, 0x805c0c00, 0x59a0020b, 0x80040480, 0x48034208, 0x4a034407, 0x0000000a, 0x5c00c800, 0x5c00c000, 0x5c00b800, - 0x0201f000, 0x0010224a, 0x59a00801, 0x80040906, + 0x0201f000, 0x00102309, 0x59a00801, 0x80040906, 0x48074407, 0x5c00c800, 0x5c00c000, 0x5c00b800, - 0x0201f000, 0x00102207, 0x4031d800, 0x58ef400a, + 0x0201f000, 0x001022c6, 0x4031d800, 0x58ef400a, 0x58ec0002, 0x82000580, 0x00000200, 0x02000000, - 0x00102242, 0x59a28800, 0x0401f78f, 0x8d0e1d0e, + 0x00102301, 0x59a28800, 0x0401f78f, 0x8d0e1d0e, 0x04000005, 0x4a034407, 0x00000001, 0x0201f000, - 0x0010224a, 0x59a8021b, 0x8c00050a, 0x04020007, + 0x00102309, 0x59a8021b, 0x8c00050a, 0x04020007, 0x8c000506, 0x04020005, 0x4a034407, 0x00000016, - 0x0201f000, 0x0010224a, 0x0401f9de, 0x02020000, - 0x0010224e, 0x0401f8d1, 0x04020005, 0x4a034407, - 0x00000002, 0x0201f000, 0x0010224a, 0x59a00c07, + 0x0201f000, 0x00102309, 0x0401f9de, 0x02020000, + 0x0010230d, 0x0401f8d1, 0x04020005, 0x4a034407, + 0x00000002, 0x0201f000, 0x00102309, 0x59a00c07, 0x80040902, 0x59a00408, 0x59a01208, 0x900811c0, 0x80081540, 0x59a0040a, 0x59a01a0a, 0x900c19c0, 0x800c1d40, 0x832c0400, 0x00000006, 0x0401f8e3, - 0x4a01d808, 0x001037bb, 0x1c01f000, 0x4031d800, + 0x4a01d808, 0x001038ab, 0x1c01f000, 0x4031d800, 0x58ef400a, 0x58ee580c, 0x58ec0002, 0x82000580, - 0x00000200, 0x02000000, 0x00102242, 0x592c000a, - 0x59a8380f, 0x0201f800, 0x00105f68, 0x02000800, - 0x0010452c, 0x02020000, 0x0010224e, 0x49474001, + 0x00000200, 0x02000000, 0x00102301, 0x592c000a, + 0x59a8380f, 0x0201f800, 0x00106134, 0x02000800, + 0x00104628, 0x02020000, 0x0010230d, 0x49474001, 0x481a6802, 0x592c000b, 0x82001d80, 0x70000000, 0x04020007, 0x0401f8a5, 0x04020011, 0x4a034407, - 0x00000002, 0x0201f000, 0x0010224a, 0x82001d80, - 0x72000000, 0x02020000, 0x0010224e, 0x0401f89b, + 0x00000002, 0x0201f000, 0x00102309, 0x82001d80, + 0x72000000, 0x02020000, 0x0010230d, 0x0401f89b, 0x0402089a, 0x04020899, 0x04020005, 0x4a034407, - 0x00000002, 0x0201f000, 0x0010224a, 0x58ee580c, + 0x00000002, 0x0201f000, 0x00102309, 0x58ee580c, 0x4a025c05, 0x00008000, 0x497a5a05, 0x592c3209, 0x80183102, 0x592c1801, 0x4a001806, 0x01000000, - 0x0201f800, 0x00109719, 0x04020005, 0x4a034407, - 0x00000003, 0x0201f000, 0x0010224a, 0x4a01d808, - 0x001037f6, 0x1c01f000, 0x592c4000, 0x592c0006, + 0x0201f800, 0x00109951, 0x04020005, 0x4a034407, + 0x00000003, 0x0201f000, 0x00102309, 0x4a01d808, + 0x001038e6, 0x1c01f000, 0x592c4000, 0x592c0006, 0x82000580, 0x01000000, 0x04020005, 0x4a034407, - 0x00000004, 0x0201f000, 0x0010224a, 0x4c580000, + 0x00000004, 0x0201f000, 0x00102309, 0x4c580000, 0x4c500000, 0x4c540000, 0x832c3c00, 0x00000006, 0x401ca000, 0x401ca800, 0x5820280b, 0x4200b000, 0x00000002, 0x82143580, 0x70000000, 0x04000003, - 0x4200b000, 0x0000000f, 0x0201f800, 0x0010bd85, + 0x4200b000, 0x0000000f, 0x0201f800, 0x0010c0b0, 0x5c00a800, 0x5c00a000, 0x5c00b000, 0x401c0000, 0x58201007, 0x58201808, 0x58202206, 0x80102102, 0x82143580, 0x70000000, 0x04020008, 0x82103480, - 0x00000002, 0x02001000, 0x0010224e, 0x42000800, + 0x00000002, 0x02001000, 0x0010230d, 0x42000800, 0x00000002, 0x0401f082, 0x82143580, 0x72000000, - 0x02020000, 0x0010224e, 0x82103480, 0x0000002a, - 0x02001000, 0x0010224e, 0x42000800, 0x0000000f, - 0x0401f877, 0x4a01d808, 0x00103830, 0x1c01f000, + 0x02020000, 0x0010230d, 0x82103480, 0x0000002a, + 0x02001000, 0x0010230d, 0x42000800, 0x0000000f, + 0x0401f877, 0x4a01d808, 0x00103920, 0x1c01f000, 0x4031d800, 0x58ef400a, 0x58ee580d, 0x58ec0002, - 0x82000580, 0x00000200, 0x02000000, 0x00102242, + 0x82000580, 0x00000200, 0x02000000, 0x00102301, 0x592e5800, 0x832c0c00, 0x00000006, 0x4c580000, 0x4c500000, 0x4c540000, 0x4004a000, 0x4004a800, - 0x4200b000, 0x0000000f, 0x0201f800, 0x0010bd85, + 0x4200b000, 0x0000000f, 0x0201f800, 0x0010c0b0, 0x5c00a800, 0x5c00a000, 0x5c00b000, 0x40ec1000, 0x4a001001, 0x00000000, 0x4a001005, 0x0000003c, 0x48041003, 0x0201f800, 0x00020016, 0x4a01d808, - 0x00103852, 0x1c01f000, 0x4031d800, 0x58ef400a, + 0x00103942, 0x1c01f000, 0x4031d800, 0x58ef400a, 0x58ee580d, 0x58ec0002, 0x82000580, 0x00000200, - 0x02000000, 0x00102242, 0x832c0c00, 0x00000006, + 0x02000000, 0x00102301, 0x832c0c00, 0x00000006, 0x4c580000, 0x4c500000, 0x4c540000, 0x4004a000, 0x4004a800, 0x4200b000, 0x0000000c, 0x0201f800, - 0x0010bd85, 0x5c00a800, 0x5c00a000, 0x5c00b000, + 0x0010c0b0, 0x5c00a800, 0x5c00a000, 0x5c00b000, 0x40ec1000, 0x4a001001, 0x00000000, 0x4a001005, 0x00000030, 0x48041003, 0x0201f800, 0x00020016, - 0x4a01d808, 0x00102200, 0x1c01f000, 0x0401f803, + 0x4a01d808, 0x001022bf, 0x1c01f000, 0x0401f803, 0x412d8800, 0x1c01f000, 0x0201f800, 0x00100583, 0x04000010, 0x497a5800, 0x58ec000c, 0x80000540, 0x04020004, 0x492dd80c, 0x492dd80d, 0x0401f007, @@ -18178,11 +18290,11 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x480fc857, 0x481bc857, 0x48efc857, 0x4819d801, 0x4801d803, 0x4809d806, 0x480dd807, 0x4805d805, 0x40ec1000, 0x0201f800, 0x00020016, 0x4a01d808, - 0x00102200, 0x1c01f000, 0x40681000, 0x406c1800, + 0x001022bf, 0x1c01f000, 0x40681000, 0x406c1800, 0x80002d80, 0x480bc857, 0x480fc857, 0x4813c857, 0x4817c857, 0x8d0e1d20, 0x04000005, 0x59a80005, - 0x8c000516, 0x02020000, 0x0010aef0, 0x4d2c0000, - 0x4da00000, 0x42034000, 0x0010c7ff, 0x59a00018, + 0x8c000516, 0x02020000, 0x0010b207, 0x4d2c0000, + 0x4da00000, 0x42034000, 0x0010caff, 0x59a00018, 0x800001c0, 0x0402000f, 0x0400600e, 0x480bc020, 0x480fc021, 0x4813c022, 0x4817c023, 0x900811c0, 0x82081540, 0x00000012, 0x480bc011, 0x4a03c017, @@ -18209,36 +18321,36 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x48143a01, 0x5c003800, 0x5c000800, 0x5c034000, 0x5c025800, 0x1c01f000, 0x40681800, 0x406c2000, 0x40703000, 0x480fc857, 0x4813c857, 0x481bc857, - 0x42000000, 0x0010cbe0, 0x0201f800, 0x0010bc88, + 0x42000000, 0x0010cee0, 0x0201f800, 0x0010bfb3, 0x801800d0, 0x81202d40, 0x42001000, 0x00008014, 0x0401f781, 0x4c000000, 0x599c0017, 0x8c000512, 0x5c000000, 0x1c01f000, 0x4c000000, 0x599c0018, 0x8c00050e, 0x5c000000, 0x1c01f000, 0x8d0e1d0e, 0x04000005, 0x4a034407, 0x00000001, 0x0201f000, - 0x0010224a, 0x836c0580, 0x00000003, 0x04000005, - 0x4a034407, 0x00000007, 0x0201f000, 0x0010224a, + 0x00102309, 0x836c0580, 0x00000003, 0x04000005, + 0x4a034407, 0x00000007, 0x0201f000, 0x00102309, 0x59a24805, 0x59240400, 0x8c000508, 0x04020005, - 0x4a034407, 0x00000008, 0x0201f000, 0x0010224a, + 0x4a034407, 0x00000008, 0x0201f000, 0x00102309, 0x59340405, 0x8c000508, 0x04020004, 0x8c00050a, - 0x02020000, 0x00103284, 0x497a5a05, 0x497a5806, - 0x4a025c05, 0x00008000, 0x0201f800, 0x001097d2, + 0x02020000, 0x00103374, 0x497a5a05, 0x497a5806, + 0x4a025c05, 0x00008000, 0x0201f800, 0x00109a0a, 0x04020005, 0x4a034407, 0x00000003, 0x0201f000, - 0x0010224a, 0x4a01d808, 0x00103970, 0x1c01f000, + 0x00102309, 0x4a01d808, 0x00103a60, 0x1c01f000, 0x592c0006, 0x82000580, 0x01000000, 0x04020005, - 0x4a034407, 0x00000004, 0x0201f000, 0x0010224a, - 0x59a28c07, 0x59a2440b, 0x0201f800, 0x0010497a, - 0x02020000, 0x0010224e, 0x0201f000, 0x00103284, - 0x4c040000, 0x59a2440b, 0x42000000, 0x0010ccd0, + 0x4a034407, 0x00000004, 0x0201f000, 0x00102309, + 0x59a28c07, 0x59a2440b, 0x0201f800, 0x00104a7c, + 0x02020000, 0x0010230d, 0x0201f000, 0x00103374, + 0x4c040000, 0x59a2440b, 0x42000000, 0x0010cfd0, 0x50000000, 0x81200480, 0x0402100d, 0x83200c00, - 0x0010bdc7, 0x50064800, 0x812649c0, 0x04000008, + 0x0010c10d, 0x50064800, 0x812649c0, 0x04000008, 0x59240200, 0x8c000500, 0x04000005, 0x49274005, 0x80000580, 0x5c000800, 0x1c01f000, 0x82000540, 0x00000001, 0x0401f7fc, 0x42028800, 0x000007ef, - 0x0201f800, 0x0002034c, 0x02000800, 0x00106314, + 0x0201f800, 0x0002034c, 0x02000800, 0x00106519, 0x81468840, 0x040217fb, 0x1c01f000, 0x4803c856, 0x4c0c0000, 0x4d340000, 0x4d440000, 0x42028800, 0x000007fe, 0x42024000, 0x00000000, 0x0201f800, - 0x0010497a, 0x04020009, 0x5934180a, 0x820c1d00, + 0x00104a7c, 0x04020009, 0x5934180a, 0x820c1d00, 0x00000001, 0x820c1d80, 0x00000001, 0x42001000, 0x0000801b, 0x0401ff0b, 0x5c028800, 0x5c026800, 0x5c001800, 0x1c01f000, 0x48efc857, 0x04011000, @@ -18246,7 +18358,7 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x040117ff, 0x4a01d80e, 0xbeefbeef, 0x1c01f000, 0x497b4000, 0x497b4001, 0x497b4002, 0x497b4003, 0x497b4004, 0x497b4005, 0x1c01f000, 0x42002000, - 0x00111264, 0x41580000, 0x41781000, 0x58100c07, + 0x00111584, 0x41580000, 0x41781000, 0x58100c07, 0x800409c0, 0x04000011, 0x82041d80, 0x00000003, 0x0400000e, 0x82041c80, 0x00000006, 0x0400100a, 0x82041d80, 0x0000000a, 0x04000007, 0x82041c80, @@ -18254,714 +18366,717 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x04021002, 0x80081000, 0x82102400, 0x0000002c, 0x80100c80, 0x040017ea, 0x40080000, 0x59a81251, 0x80080480, 0x04021002, 0x41780000, 0x81640480, - 0x04021002, 0x41780000, 0x1c01f000, 0x59c400a4, - 0x4c580000, 0x4c500000, 0x4c540000, 0x82000500, - 0x0000000f, 0x82000480, 0x00000007, 0x0400100a, - 0x82006c80, 0x00000007, 0x02021800, 0x0010032e, - 0x0c01f807, 0x5c00a800, 0x5c00a000, 0x5c00b000, - 0x1c01f000, 0x0401f919, 0x0401f7fb, 0x00103a06, - 0x00103a0c, 0x00103a35, 0x00103a57, 0x00103b1f, - 0x00103a05, 0x1c01f000, 0x59c40806, 0x8c040d00, - 0x04020003, 0x84040d40, 0x48078806, 0x1c01f000, - 0x59c40005, 0x8c000534, 0x02020000, 0x001041ce, - 0x4a038805, 0xffffffff, 0x42006000, 0x00020000, - 0x0201f800, 0x001041b3, 0x59a80015, 0x82000500, - 0xfffffffa, 0x84000542, 0x48035015, 0x497b521b, - 0x42000800, 0x0010df51, 0x45780800, 0x497b5056, - 0x42000000, 0x0010cccf, 0x46000000, 0x0000ffff, - 0x42006000, 0xffefffff, 0x42006800, 0x40000000, - 0x0201f800, 0x001041ad, 0x59c40006, 0x82000500, - 0xffffff0f, 0x48038806, 0x42000800, 0x00000010, - 0x42001000, 0x001040f1, 0x0201f800, 0x001062ec, - 0x0401f001, 0x42006000, 0xffffffff, 0x42006800, - 0x00800000, 0x0201f800, 0x001041ad, 0x4200b000, - 0x000000c8, 0x59c400a4, 0x82000500, 0x0000000f, - 0x82000580, 0x0000000a, 0x0400000f, 0x8058b040, - 0x040207f9, 0x497b5010, 0x42006000, 0xbf7fffff, - 0x42006800, 0x00018000, 0x0201f800, 0x001041ad, - 0x42006000, 0xfffeffff, 0x41786800, 0x0201f000, - 0x001041ad, 0x497b5010, 0x4a035055, 0x00000000, - 0x80000580, 0x0201f000, 0x001041ba, 0x4a038805, - 0xffffffff, 0x59a80055, 0x82000c80, 0x00000004, - 0x02021800, 0x0010032e, 0x0c01f001, 0x00103a62, - 0x00103a92, 0x00103b15, 0x4803c856, 0x59c400a3, - 0x8400051e, 0x480388a3, 0x4a035055, 0x00000001, - 0x59c40008, 0x82000540, 0x00000080, 0x48038808, - 0x0201f800, 0x00104191, 0x42007800, 0x0010c8a6, - 0x4a007806, 0x11010000, 0x4200a000, 0x0010ccd2, - 0x4200a800, 0x0010c8ad, 0x4200b000, 0x00000002, - 0x0201f800, 0x0010bd5b, 0x59c40802, 0x84040d0c, - 0x48078802, 0x42000800, 0x00000003, 0x497b505f, - 0x0201f800, 0x00104064, 0x4a03505f, 0x00000001, - 0x497b505a, 0x0201f800, 0x001041c1, 0x42006000, + 0x04021002, 0x41780000, 0x1c01f000, 0x59a80005, + 0x8c000514, 0x04000006, 0x42000000, 0x0010cb3e, + 0x50000000, 0x82000500, 0x00000028, 0x1c01f000, + 0x59c400a4, 0x4c580000, 0x4c500000, 0x4c540000, + 0x82000500, 0x0000000f, 0x82000480, 0x00000007, + 0x0400100a, 0x82006c80, 0x00000007, 0x02021800, + 0x0010032e, 0x0c01f807, 0x5c00a800, 0x5c00a000, + 0x5c00b000, 0x1c01f000, 0x0401f919, 0x0401f7fb, + 0x00103aff, 0x00103b05, 0x00103b2e, 0x00103b50, + 0x00103c18, 0x00103afe, 0x1c01f000, 0x59c40806, + 0x8c040d00, 0x04020003, 0x84040d40, 0x48078806, + 0x1c01f000, 0x59c40005, 0x8c000534, 0x02020000, + 0x001042c7, 0x4a038805, 0xffffffff, 0x42006000, + 0x00020000, 0x0201f800, 0x001042ac, 0x59a80015, + 0x82000500, 0xfffffffa, 0x84000542, 0x48035015, + 0x497b521b, 0x42000800, 0x0010e251, 0x45780800, + 0x497b5056, 0x42000000, 0x0010cfcf, 0x46000000, + 0x0000ffff, 0x42006000, 0xffefffff, 0x42006800, + 0x40000000, 0x0201f800, 0x001042a6, 0x59c40006, + 0x82000500, 0xffffff0f, 0x48038806, 0x42000800, + 0x00000010, 0x42001000, 0x001041ea, 0x0201f800, + 0x001064f1, 0x0401f001, 0x42006000, 0xffffffff, + 0x42006800, 0x00800000, 0x0201f800, 0x001042a6, + 0x4200b000, 0x000000c8, 0x59c400a4, 0x82000500, + 0x0000000f, 0x82000580, 0x0000000a, 0x0400000f, + 0x8058b040, 0x040207f9, 0x497b5010, 0x42006000, + 0xbf7fffff, 0x42006800, 0x00018000, 0x0201f800, + 0x001042a6, 0x42006000, 0xfffeffff, 0x41786800, + 0x0201f000, 0x001042a6, 0x497b5010, 0x4a035055, + 0x00000000, 0x80000580, 0x0201f000, 0x001042b3, + 0x4a038805, 0xffffffff, 0x59a80055, 0x82000c80, + 0x00000004, 0x02021800, 0x0010032e, 0x0c01f001, + 0x00103b5b, 0x00103b8b, 0x00103c0e, 0x4803c856, + 0x59c400a3, 0x8400051e, 0x480388a3, 0x4a035055, + 0x00000001, 0x59c40008, 0x82000540, 0x00000080, + 0x48038808, 0x0201f800, 0x0010428a, 0x42007800, + 0x0010cba6, 0x4a007806, 0x11010000, 0x4200a000, + 0x0010cfd2, 0x4200a800, 0x0010cbad, 0x4200b000, + 0x00000002, 0x0201f800, 0x0010c086, 0x59c40802, + 0x84040d0c, 0x48078802, 0x42000800, 0x00000003, + 0x497b505f, 0x0201f800, 0x0010415d, 0x4a03505f, + 0x00000001, 0x497b505a, 0x0201f800, 0x001042ba, + 0x42006000, 0xffffffff, 0x42006800, 0x00080000, + 0x0201f800, 0x001042a6, 0x42006000, 0xfff7ffff, + 0x41786800, 0x0201f000, 0x001042a6, 0x59a8005a, + 0x497b505a, 0x80002540, 0x04000070, 0x59c40004, + 0x82000500, 0x00000003, 0x0402007b, 0x59a80815, + 0x8c040d02, 0x04000055, 0x82100580, 0x0000000c, + 0x04020059, 0x82100400, 0x00000018, 0x8000b104, + 0x41cc1000, 0x42001800, 0x0010cba6, 0x50080800, + 0x500c0000, 0x80040580, 0x04020021, 0x80081000, + 0x800c1800, 0x8058b040, 0x040207f9, 0x0201f800, + 0x001042ba, 0x59c80015, 0x84000508, 0x48039015, + 0x42006000, 0xffffffff, 0x42006800, 0x00500000, + 0x0201f800, 0x001042a6, 0x4a035055, 0x00000002, + 0x4a035010, 0x00000002, 0x0201f800, 0x001015ba, + 0x42000800, 0x000007d0, 0x42001000, 0x00104131, + 0x0201f800, 0x00106638, 0x59a80015, 0x84000506, + 0x48035015, 0x0201f000, 0x0010428a, 0x59cc0806, + 0x82040d80, 0x11010000, 0x0402002b, 0x59cc0800, + 0x82040500, 0x00ffffff, 0x0400001a, 0x82000580, + 0x000000ef, 0x04020017, 0x59cc0801, 0x82040500, + 0x00ffffff, 0x82000580, 0x000000ef, 0x04020011, + 0x83cca400, 0x00000007, 0x4200a800, 0x0010cfd2, + 0x4200b000, 0x00000002, 0x50500800, 0x50540000, + 0x80040480, 0x04001007, 0x04020013, 0x8050a000, + 0x8054a800, 0x8058b040, 0x040207f8, 0x0401f00e, + 0x59a80015, 0x84000502, 0x48035015, 0x59c80015, + 0x84000508, 0x48039015, 0x41cca000, 0x4200a800, + 0x0010cba6, 0x4200b000, 0x00000009, 0x0201f800, + 0x0010c086, 0x0201f800, 0x001042ba, 0x42006000, 0xffffffff, 0x42006800, 0x00080000, 0x0201f800, - 0x001041ad, 0x42006000, 0xfff7ffff, 0x41786800, - 0x0201f000, 0x001041ad, 0x59a8005a, 0x497b505a, - 0x80002540, 0x04000070, 0x59c40004, 0x82000500, - 0x00000003, 0x0402007b, 0x59a80815, 0x8c040d02, - 0x04000055, 0x82100580, 0x0000000c, 0x04020059, - 0x82100400, 0x00000018, 0x8000b104, 0x41cc1000, - 0x42001800, 0x0010c8a6, 0x50080800, 0x500c0000, - 0x80040580, 0x04020021, 0x80081000, 0x800c1800, - 0x8058b040, 0x040207f9, 0x0201f800, 0x001041c1, - 0x59c80015, 0x84000508, 0x48039015, 0x42006000, - 0xffffffff, 0x42006800, 0x00500000, 0x0201f800, - 0x001041ad, 0x4a035055, 0x00000002, 0x4a035010, - 0x00000002, 0x0201f800, 0x001015b9, 0x42000800, - 0x000007d0, 0x42001000, 0x00104038, 0x0201f800, - 0x00106433, 0x59a80015, 0x84000506, 0x48035015, - 0x0201f000, 0x00104191, 0x59cc0806, 0x82040d80, - 0x11010000, 0x0402002b, 0x59cc0800, 0x82040500, - 0x00ffffff, 0x0400001a, 0x82000580, 0x000000ef, - 0x04020017, 0x59cc0801, 0x82040500, 0x00ffffff, - 0x82000580, 0x000000ef, 0x04020011, 0x83cca400, - 0x00000007, 0x4200a800, 0x0010ccd2, 0x4200b000, - 0x00000002, 0x50500800, 0x50540000, 0x80040480, - 0x04001007, 0x04020013, 0x8050a000, 0x8054a800, - 0x8058b040, 0x040207f8, 0x0401f00e, 0x59a80015, - 0x84000502, 0x48035015, 0x59c80015, 0x84000508, - 0x48039015, 0x41cca000, 0x4200a800, 0x0010c8a6, - 0x4200b000, 0x00000009, 0x0201f800, 0x0010bd5b, - 0x0201f800, 0x001041c1, 0x42006000, 0xffffffff, - 0x42006800, 0x00080000, 0x0201f800, 0x001041ad, - 0x42006000, 0xfff7ffff, 0x41786800, 0x0201f800, - 0x001041ad, 0x42006000, 0xffffffff, 0x42006800, - 0x00004000, 0x0201f800, 0x001041ad, 0x59c40004, - 0x82000500, 0x00000003, 0x04020006, 0x497b505a, - 0x42000800, 0x00000003, 0x0201f000, 0x00104064, - 0x1c01f000, 0x1c01f000, 0x59a80010, 0x82006d80, - 0x0000000f, 0x04000005, 0x82000580, 0x0000001b, - 0x02020800, 0x0010402d, 0x1c01f000, 0x59a80015, - 0x84000506, 0x48035015, 0x497b505f, 0x59a80010, - 0x82000c80, 0x0000001e, 0x02021800, 0x0010032e, - 0x0c01f001, 0x00103b5d, 0x00103b74, 0x00103b9d, - 0x00103bc0, 0x00103be3, 0x00103be7, 0x00103beb, - 0x00103bef, 0x00103bf3, 0x00103c0f, 0x00103c13, - 0x00103c6c, 0x00103c70, 0x00103c82, 0x00103c86, - 0x00103c9f, 0x00103ca4, 0x00103d00, 0x00103d2c, - 0x00103db0, 0x00103ddc, 0x00103e34, 0x00103e84, - 0x00103ede, 0x00103eff, 0x00103f48, 0x00103f6a, - 0x00103f7d, 0x00103f7e, 0x4803c856, 0x4202d800, - 0x00000007, 0x0201f800, 0x00104fc6, 0x04000007, - 0x42006000, 0xffffffd7, 0x41786800, 0x0201f800, - 0x001041ad, 0x0401f00b, 0x59c40006, 0x82000500, - 0xffffff0f, 0x48038806, 0x4a038805, 0x000000f0, - 0x0201f800, 0x0010541d, 0x0201f800, 0x00104f15, - 0x1c01f000, 0x4803c856, 0x42006000, 0xbf7fffff, - 0x42006800, 0x00400000, 0x0201f800, 0x001041ad, - 0x0201f800, 0x001015b9, 0x4a035010, 0x00000001, - 0x42001000, 0x001040f1, 0x0201f800, 0x0010630c, - 0x0201f800, 0x001040fa, 0x42000800, 0x000007d0, - 0x42001000, 0x00104038, 0x0201f000, 0x00106433, - 0x59a8005a, 0x82000580, 0x00000014, 0x04020023, - 0x4803c857, 0x42006000, 0xffbfffff, 0x41786800, - 0x0201f800, 0x001041ad, 0x59c40004, 0x82000500, - 0x00000003, 0x04020019, 0x42001000, 0x00104038, - 0x0201f800, 0x001062f9, 0x59cc1006, 0x82081580, - 0x11020000, 0x04020012, 0x59cc1007, 0x8c08153e, - 0x0400000b, 0x59a80015, 0x8c000504, 0x04020008, - 0x42000000, 0x0010cb71, 0x0201f800, 0x0010bc88, - 0x59a80015, 0x84000544, 0x48035015, 0x4a035010, - 0x00000010, 0x0401f10b, 0x1c01f000, 0x0201f000, - 0x0010402d, 0x4803c856, 0x4a035010, 0x00000003, - 0x42006000, 0xbf3fffff, 0x42006800, 0x00100000, - 0x0201f800, 0x001041ad, 0x42001000, 0x001040f1, - 0x0201f800, 0x0010630c, 0x0201f800, 0x001040fa, - 0x42001000, 0x00104038, 0x0201f800, 0x001062f9, - 0x59a8041b, 0x82000500, 0x00000028, 0x04000005, - 0x42000800, 0xfffff815, 0x0201f800, 0x00102011, - 0x42007800, 0x0010c8ac, 0x46007800, 0x11020000, - 0x42000800, 0x00000005, 0x0201f000, 0x00104064, - 0x59a8005a, 0x80000540, 0x0400001e, 0x4803c857, - 0x42001000, 0x00104038, 0x0201f800, 0x001062f9, - 0x59a8005a, 0x82000580, 0x00000014, 0x04020016, - 0x59cc1006, 0x82081580, 0x11020000, 0x04020012, - 0x59cc1007, 0x8c08153e, 0x0400000b, 0x59a80015, - 0x8c000504, 0x04020008, 0x42000000, 0x0010cb71, - 0x0201f800, 0x0010bc88, 0x59a80015, 0x84000544, - 0x48035015, 0x4a035010, 0x00000004, 0x0401f004, - 0x1c01f000, 0x0201f000, 0x0010402d, 0x4803c856, - 0x4a035010, 0x00000005, 0x0401f149, 0x4c5c0000, - 0x4200b800, 0x00000001, 0x0401f118, 0x4803c856, - 0x4a035010, 0x00000007, 0x0401f1f1, 0x4c5c0000, - 0x4200b800, 0x00000001, 0x0401f1c0, 0x4803c856, - 0x4a035010, 0x00000009, 0x83cca400, 0x00000006, - 0x4200a800, 0x0010c8ac, 0x4200b000, 0x00000005, - 0x0201f800, 0x0010bd5b, 0x42007800, 0x0010c8ac, - 0x46007800, 0x11050100, 0x8d0e1d06, 0x04000296, - 0x42000800, 0x00000005, 0x0201f800, 0x00104064, - 0x4d3c0000, 0x42027800, 0x00000001, 0x0201f800, - 0x0010a004, 0x5c027800, 0x1c01f000, 0x4c5c0000, - 0x4200b800, 0x00000001, 0x0401f224, 0x4803c856, - 0x4a035010, 0x0000000b, 0x42001000, 0x0010c8ad, - 0x4008a800, 0x4200b000, 0x00000020, 0x4600a800, - 0xffffffff, 0x8054a800, 0x8058b040, 0x040207fc, - 0x42007800, 0x0010c8ac, 0x46007800, 0x11060000, - 0x8d0e1d06, 0x04000005, 0x50080000, 0x46001000, - 0x00ffffff, 0x0401f040, 0x42024800, 0x0010ccd1, - 0x0201f800, 0x0010bda3, 0x40083000, 0x41782800, - 0x41781800, 0x41782000, 0x59240200, 0x8c000500, - 0x04000012, 0x8c000502, 0x04000010, 0x801429c0, - 0x04020002, 0x800c1800, 0x80142800, 0x59244408, - 0x82204500, 0x000000ff, 0x400c0000, 0x50182000, - 0x0c01f811, 0x80102540, 0x44103000, 0x800c19c0, - 0x04020002, 0x80183000, 0x83264c00, 0x0000000b, - 0x8058b040, 0x040207e9, 0x50080000, 0x82000500, - 0x00ffffff, 0x801428f0, 0x80140540, 0x44001000, - 0x0401f019, 0x00103c55, 0x00103c5a, 0x00103c5f, - 0x00103c64, 0x802000f0, 0x82102500, 0x00ffffff, - 0x800c1800, 0x1c01f000, 0x802000e0, 0x82102500, - 0xff00ffff, 0x800c1800, 0x1c01f000, 0x802000d0, - 0x82102500, 0xffff00ff, 0x800c1800, 0x1c01f000, - 0x40200000, 0x82102500, 0xffffff00, 0x41781800, - 0x1c01f000, 0x42000800, 0x00000021, 0x0401f3f9, - 0x4c5c0000, 0x4200b800, 0x00000001, 0x0401f271, - 0x4803c856, 0x4a035010, 0x0000000d, 0x83cca400, - 0x00000006, 0x4200a800, 0x0010c8ac, 0x4200b000, - 0x00000021, 0x0201f800, 0x0010bd5b, 0x42007800, - 0x0010c8ac, 0x46007800, 0x11070000, 0x42000800, - 0x00000021, 0x0401f3e3, 0x4c5c0000, 0x4200b800, - 0x00000001, 0x0401f2c5, 0x4803c856, 0x82040d40, - 0x00000001, 0x0201f800, 0x001041ba, 0x4a035010, - 0x0000000f, 0x497b505a, 0x42006000, 0xffffffff, - 0x42006800, 0x00300000, 0x0201f800, 0x001041ad, - 0x42006000, 0xffdfffff, 0x41786800, 0x0201f800, - 0x001041ad, 0x42000800, 0x000007d0, 0x42001000, - 0x00104038, 0x0201f000, 0x001062d0, 0x4803c856, - 0x59a8005a, 0x80000540, 0x0402038b, 0x1c01f000, - 0x4803c856, 0x4a035010, 0x00000011, 0x83cca400, - 0x00000006, 0x4200a800, 0x0010c8ac, 0x4200b000, - 0x00000005, 0x0201f800, 0x0010bd5b, 0x4200a800, - 0x0010c8ac, 0x4600a800, 0x11020000, 0x8d0e1d06, - 0x04020049, 0x59a80c1b, 0x82040580, 0x0000ffff, - 0x04000045, 0x82040d00, 0x00000030, 0x04000006, - 0x42000800, 0xfffff815, 0x0201f800, 0x00102011, - 0x0401f03d, 0x59cc0007, 0x8c00053c, 0x0400003a, - 0x42024800, 0x0010ccd1, 0x0201f800, 0x0010bda3, - 0x59240200, 0x82000d00, 0x00000063, 0x82040d80, - 0x00000063, 0x04020023, 0x59240a08, 0x42001000, - 0x0010c8ad, 0x0401fb08, 0x0400000a, 0x59240c08, - 0x0201f800, 0x001015d1, 0x59240200, 0x84000502, - 0x84000518, 0x84000544, 0x48024a00, 0x0401f015, - 0x59240200, 0x82000540, 0x00001006, 0x84000506, - 0x48024a00, 0x48064a08, 0x82042c00, 0x00102057, - 0x50142800, 0x82142d00, 0x000000ff, 0x48164c08, - 0x59240005, 0x82000500, 0x00ffff00, 0x80140d40, - 0x48064805, 0x40140800, 0x0201f800, 0x001015c4, - 0x83264c00, 0x0000000b, 0x8058b040, 0x040207d5, - 0x42024800, 0x0010ccd1, 0x59242a00, 0x8c142d02, - 0x04000005, 0x8c142d00, 0x04000003, 0x59242c08, - 0x4817500f, 0x42000800, 0x00000005, 0x0401f365, - 0x4c5c0000, 0x4178b800, 0x59a8005a, 0x80000540, - 0x04000026, 0x4803c857, 0x42001000, 0x00104038, - 0x0201f800, 0x001062f9, 0x59a8005a, 0x82000580, - 0x00000014, 0x0402001c, 0x59cc1006, 0x82081580, - 0x11030000, 0x04020018, 0x59cc1007, 0x8c08153e, - 0x0400000b, 0x59a80015, 0x8c000504, 0x04020008, - 0x42000000, 0x0010cb71, 0x0201f800, 0x0010bc88, - 0x59a80015, 0x84000544, 0x48035015, 0x805cb9c0, - 0x04000005, 0x4a035010, 0x00000006, 0x0401fec8, - 0x0401f006, 0x4a035010, 0x00000012, 0x0401f805, - 0x0401f002, 0x0401fb04, 0x5c00b800, 0x1c01f000, - 0x4803c856, 0x4a035010, 0x00000013, 0x83cca400, - 0x00000007, 0x4200a800, 0x0010c8ad, 0x4200b000, - 0x00000004, 0x0201f800, 0x0010bd5b, 0x4200a800, - 0x0010c8ac, 0x4600a800, 0x11030000, 0x8d0e1d06, - 0x04020071, 0x42024800, 0x0010ccd1, 0x0201f800, - 0x0010bda3, 0x4c600000, 0x4178c000, 0x59a8021b, - 0x82000500, 0xfffffffc, 0x4803521b, 0x59240200, - 0x40000800, 0x82040d00, 0xfffffb17, 0x48064a00, - 0x8c000500, 0x0400004d, 0x8c000518, 0x0402004b, - 0x8c000502, 0x04020004, 0x59240400, 0x8c000502, - 0x04000046, 0x59240a08, 0x42001000, 0x0010c8ad, - 0x0401fa81, 0x0400002e, 0x59240005, 0x82000500, - 0x00ffff00, 0x48024805, 0x59240200, 0x8c000502, - 0x0400001c, 0x59240207, 0x82000500, 0x0000ffff, - 0x04000018, 0x8060c000, 0x59240c08, 0x0201f800, - 0x001015d1, 0x4c640000, 0x4c580000, 0x4d2c0000, - 0x5924c809, 0x4200b000, 0x00000010, 0x50640000, - 0x800001c0, 0x04000005, 0x4578c800, 0x40025800, - 0x0201f800, 0x00100594, 0x8064c800, 0x8058b040, - 0x040207f7, 0x5c025800, 0x5c00b000, 0x5c00c800, - 0x59240200, 0x84000502, 0x84000544, 0x48024a00, - 0x59240400, 0x8c000504, 0x04000018, 0x59240200, - 0x84000546, 0x48024a00, 0x0401f014, 0x59240200, - 0x82000540, 0x00000006, 0x84000506, 0x48024a00, - 0x82042c00, 0x00102057, 0x50142800, 0x82142d00, - 0x000000ff, 0x48164c08, 0x59240005, 0x82000500, - 0x00ffff00, 0x80140d40, 0x48064805, 0x40140800, - 0x0201f800, 0x001015c4, 0x59240200, 0x84000518, - 0x48024a00, 0x83264c00, 0x0000000b, 0x8058b040, - 0x040207a7, 0x8060c1c0, 0x04020b72, 0x5c00c000, - 0x42024800, 0x0010ccd1, 0x59242a00, 0x8c142d02, - 0x04000005, 0x8c142d00, 0x04000003, 0x59242c08, - 0x4817500f, 0x42000800, 0x00000005, 0x0401f2b5, - 0x4c5c0000, 0x4178b800, 0x59a8005a, 0x80000540, - 0x04000026, 0x4803c857, 0x42001000, 0x00104038, - 0x0201f800, 0x001062f9, 0x59a8005a, 0x82000580, - 0x00000014, 0x0402001c, 0x59cc1006, 0x82081580, - 0x11040000, 0x04020018, 0x59cc1007, 0x8c08153e, - 0x0400000b, 0x59a80015, 0x8c000504, 0x04020008, - 0x42000000, 0x0010cb71, 0x0201f800, 0x0010bc88, - 0x59a80015, 0x84000544, 0x48035015, 0x805cb9c0, - 0x04000005, 0x4a035010, 0x00000008, 0x0401fe20, - 0x0401f006, 0x4a035010, 0x00000014, 0x0401f805, - 0x0401f002, 0x0401fa54, 0x5c00b800, 0x1c01f000, - 0x4803c856, 0x4a035010, 0x00000015, 0x83cca400, - 0x00000007, 0x4200a800, 0x0010c8ad, 0x4200b000, - 0x00000004, 0x0201f800, 0x0010bd5b, 0x4200a800, - 0x0010c8ac, 0x4600a800, 0x11040000, 0x8d0e1d06, - 0x04020045, 0x42024800, 0x0010ccd1, 0x0201f800, - 0x0010bda3, 0x59240400, 0x8c000500, 0x04000031, - 0x59240200, 0x8c000500, 0x0400002e, 0x8c000502, - 0x0402002c, 0x59240c00, 0x80040910, 0x82040d00, - 0x000000ff, 0x42001000, 0x0010c8ad, 0x0401f9da, - 0x04000010, 0x59240005, 0x82000500, 0x00ffff00, - 0x48024805, 0x59240200, 0x84000502, 0x48024a00, - 0x59242400, 0x8c102504, 0x0400001a, 0x84000546, - 0x84000544, 0x48024a00, 0x8060c000, 0x0401f015, - 0x59240200, 0x82000540, 0x00000006, 0x84000506, - 0x48024a00, 0x48064a08, 0x82042c00, 0x00102057, - 0x50142800, 0x82142d00, 0x000000ff, 0x48164c08, - 0x59240005, 0x82000500, 0x00ffff00, 0x80140d40, - 0x48064805, 0x40140800, 0x0201f800, 0x001015c4, - 0x83264c00, 0x0000000b, 0x8058b040, 0x040207ca, - 0x42024800, 0x0010ccd1, 0x59242a00, 0x8c142d02, - 0x04000005, 0x8c142d00, 0x04000003, 0x59242c08, - 0x4817500f, 0x42000800, 0x00000005, 0x0401f231, - 0x4c5c0000, 0x4178b800, 0x59a8005a, 0x80000540, - 0x0400004a, 0x4803c857, 0x42001000, 0x00104038, - 0x0201f800, 0x001062f9, 0x59a8005a, 0x82000580, - 0x00000014, 0x04020040, 0x59cc1006, 0x82080500, - 0x11050000, 0x82000580, 0x11050000, 0x0402003a, - 0x8c081510, 0x04000015, 0x0401fb70, 0x59cc1007, + 0x001042a6, 0x42006000, 0xfff7ffff, 0x41786800, + 0x0201f800, 0x001042a6, 0x42006000, 0xffffffff, + 0x42006800, 0x00004000, 0x0201f800, 0x001042a6, + 0x59c40004, 0x82000500, 0x00000003, 0x04020006, + 0x497b505a, 0x42000800, 0x00000003, 0x0201f000, + 0x0010415d, 0x1c01f000, 0x1c01f000, 0x59a80010, + 0x82006d80, 0x0000000f, 0x04000005, 0x82000580, + 0x0000001b, 0x02020800, 0x00104126, 0x1c01f000, + 0x59a80015, 0x84000506, 0x48035015, 0x497b505f, + 0x59a80010, 0x82000c80, 0x0000001e, 0x02021800, + 0x0010032e, 0x0c01f001, 0x00103c56, 0x00103c6d, + 0x00103c96, 0x00103cb9, 0x00103cdc, 0x00103ce0, + 0x00103ce4, 0x00103ce8, 0x00103cec, 0x00103d08, + 0x00103d0c, 0x00103d65, 0x00103d69, 0x00103d7b, + 0x00103d7f, 0x00103d98, 0x00103d9d, 0x00103df9, + 0x00103e25, 0x00103ea9, 0x00103ed5, 0x00103f2d, + 0x00103f7d, 0x00103fd7, 0x00103ff8, 0x00104041, + 0x00104063, 0x00104076, 0x00104077, 0x4803c856, + 0x4202d800, 0x00000007, 0x0201f800, 0x001050f7, + 0x04000007, 0x42006000, 0xffffffd7, 0x41786800, + 0x0201f800, 0x001042a6, 0x0401f00b, 0x59c40006, + 0x82000500, 0xffffff0f, 0x48038806, 0x4a038805, + 0x000000f0, 0x0201f800, 0x0010554e, 0x0201f800, + 0x00105046, 0x1c01f000, 0x4803c856, 0x42006000, + 0xbf7fffff, 0x42006800, 0x00400000, 0x0201f800, + 0x001042a6, 0x0201f800, 0x001015ba, 0x4a035010, + 0x00000001, 0x42001000, 0x001041ea, 0x0201f800, + 0x00106511, 0x0201f800, 0x001041f3, 0x42000800, + 0x000007d0, 0x42001000, 0x00104131, 0x0201f000, + 0x00106638, 0x59a8005a, 0x82000580, 0x00000014, + 0x04020023, 0x4803c857, 0x42006000, 0xffbfffff, + 0x41786800, 0x0201f800, 0x001042a6, 0x59c40004, + 0x82000500, 0x00000003, 0x04020019, 0x42001000, + 0x00104131, 0x0201f800, 0x001064fe, 0x59cc1006, + 0x82081580, 0x11020000, 0x04020012, 0x59cc1007, 0x8c08153e, 0x0400000b, 0x59a80015, 0x8c000504, - 0x04020008, 0x42000000, 0x0010cb71, 0x0201f800, - 0x0010bc88, 0x59a80015, 0x84000544, 0x48035015, - 0x805cb9c0, 0x04000017, 0x4a035010, 0x0000000a, - 0x0401fdb7, 0x0401f025, 0x59cc1007, 0x8c08153e, - 0x0400000b, 0x59a80015, 0x8c000504, 0x04020008, - 0x42000000, 0x0010cb71, 0x0201f800, 0x0010bc88, - 0x59a80015, 0x84000544, 0x48035015, 0x82000540, - 0x00000001, 0x0401fb4d, 0x497b5056, 0x0401f003, - 0x4a035056, 0x00000001, 0x59cc1007, 0x8c08153c, - 0x04000003, 0x4a03521b, 0x00000008, 0x805cb9c0, - 0x04020005, 0x4a035010, 0x00000016, 0x0401f809, - 0x0401f006, 0x4a035010, 0x0000000e, 0x0401fe07, - 0x0401f002, 0x0401f9ac, 0x5c00b800, 0x1c01f000, - 0x4803c856, 0x83cca400, 0x00000006, 0x4200a800, - 0x0010c8ac, 0x4200b000, 0x00000005, 0x0201f800, - 0x0010bd5b, 0x4a035010, 0x00000017, 0x59a80056, - 0x8c000500, 0x04000006, 0x42001000, 0x0010c8ac, - 0x46001000, 0x11050100, 0x0401f003, 0x4a035010, - 0x0000001b, 0x42024800, 0x0010ccd1, 0x0201f800, - 0x0010bda3, 0x599c2817, 0x59240200, 0x8c000500, - 0x04000027, 0x8c000502, 0x04020025, 0x8c000506, - 0x04020023, 0x4c580000, 0x0401f8d9, 0x5c00b000, - 0x0402000b, 0x59240005, 0x82000500, 0x00ffff00, - 0x48024805, 0x59240200, 0x84000502, 0x84000546, - 0x84000544, 0x48024a00, 0x0401f015, 0x59240200, - 0x82000540, 0x00000006, 0x84000506, 0x48024a00, - 0x48064a08, 0x82042c00, 0x00102057, 0x50142800, + 0x04020008, 0x42000000, 0x0010ce71, 0x0201f800, + 0x0010bfb3, 0x59a80015, 0x84000544, 0x48035015, + 0x4a035010, 0x00000010, 0x0401f10b, 0x1c01f000, + 0x0201f000, 0x00104126, 0x4803c856, 0x4a035010, + 0x00000003, 0x42006000, 0xbf3fffff, 0x42006800, + 0x00100000, 0x0201f800, 0x001042a6, 0x42001000, + 0x001041ea, 0x0201f800, 0x00106511, 0x0201f800, + 0x001041f3, 0x42001000, 0x00104131, 0x0201f800, + 0x001064fe, 0x59a8041b, 0x82000500, 0x00000028, + 0x04000005, 0x42000800, 0xffffd815, 0x0201f800, + 0x00102078, 0x42007800, 0x0010cbac, 0x46007800, + 0x11020000, 0x42000800, 0x00000005, 0x0201f000, + 0x0010415d, 0x59a8005a, 0x80000540, 0x0400001e, + 0x4803c857, 0x42001000, 0x00104131, 0x0201f800, + 0x001064fe, 0x59a8005a, 0x82000580, 0x00000014, + 0x04020016, 0x59cc1006, 0x82081580, 0x11020000, + 0x04020012, 0x59cc1007, 0x8c08153e, 0x0400000b, + 0x59a80015, 0x8c000504, 0x04020008, 0x42000000, + 0x0010ce71, 0x0201f800, 0x0010bfb3, 0x59a80015, + 0x84000544, 0x48035015, 0x4a035010, 0x00000004, + 0x0401f004, 0x1c01f000, 0x0201f000, 0x00104126, + 0x4803c856, 0x4a035010, 0x00000005, 0x0401f149, + 0x4c5c0000, 0x4200b800, 0x00000001, 0x0401f118, + 0x4803c856, 0x4a035010, 0x00000007, 0x0401f1f1, + 0x4c5c0000, 0x4200b800, 0x00000001, 0x0401f1c0, + 0x4803c856, 0x4a035010, 0x00000009, 0x83cca400, + 0x00000006, 0x4200a800, 0x0010cbac, 0x4200b000, + 0x00000005, 0x0201f800, 0x0010c086, 0x42007800, + 0x0010cbac, 0x46007800, 0x11050100, 0x8d0e1d06, + 0x04000296, 0x42000800, 0x00000005, 0x0201f800, + 0x0010415d, 0x4d3c0000, 0x42027800, 0x00000001, + 0x0201f800, 0x0010a242, 0x5c027800, 0x1c01f000, + 0x4c5c0000, 0x4200b800, 0x00000001, 0x0401f224, + 0x4803c856, 0x4a035010, 0x0000000b, 0x42001000, + 0x0010cbad, 0x4008a800, 0x4200b000, 0x00000020, + 0x4600a800, 0xffffffff, 0x8054a800, 0x8058b040, + 0x040207fc, 0x42007800, 0x0010cbac, 0x46007800, + 0x11060000, 0x8d0e1d06, 0x04000005, 0x50080000, + 0x46001000, 0x00ffffff, 0x0401f040, 0x42024800, + 0x0010cfd1, 0x0201f800, 0x0010c0ce, 0x40083000, + 0x41782800, 0x41781800, 0x41782000, 0x59240200, + 0x8c000500, 0x04000012, 0x8c000502, 0x04000010, + 0x801429c0, 0x04020002, 0x800c1800, 0x80142800, + 0x59244408, 0x82204500, 0x000000ff, 0x400c0000, + 0x50182000, 0x0c01f811, 0x80102540, 0x44103000, + 0x800c19c0, 0x04020002, 0x80183000, 0x83264c00, + 0x0000000b, 0x8058b040, 0x040207e9, 0x50080000, + 0x82000500, 0x00ffffff, 0x801428f0, 0x80140540, + 0x44001000, 0x0401f019, 0x00103d4e, 0x00103d53, + 0x00103d58, 0x00103d5d, 0x802000f0, 0x82102500, + 0x00ffffff, 0x800c1800, 0x1c01f000, 0x802000e0, + 0x82102500, 0xff00ffff, 0x800c1800, 0x1c01f000, + 0x802000d0, 0x82102500, 0xffff00ff, 0x800c1800, + 0x1c01f000, 0x40200000, 0x82102500, 0xffffff00, + 0x41781800, 0x1c01f000, 0x42000800, 0x00000021, + 0x0401f3f9, 0x4c5c0000, 0x4200b800, 0x00000001, + 0x0401f271, 0x4803c856, 0x4a035010, 0x0000000d, + 0x83cca400, 0x00000006, 0x4200a800, 0x0010cbac, + 0x4200b000, 0x00000021, 0x0201f800, 0x0010c086, + 0x42007800, 0x0010cbac, 0x46007800, 0x11070000, + 0x42000800, 0x00000021, 0x0401f3e3, 0x4c5c0000, + 0x4200b800, 0x00000001, 0x0401f2c5, 0x4803c856, + 0x82040d40, 0x00000001, 0x0201f800, 0x001042b3, + 0x4a035010, 0x0000000f, 0x497b505a, 0x42006000, + 0xffffffff, 0x42006800, 0x00300000, 0x0201f800, + 0x001042a6, 0x42006000, 0xffdfffff, 0x41786800, + 0x0201f800, 0x001042a6, 0x42000800, 0x000007d0, + 0x42001000, 0x00104131, 0x0201f000, 0x001064d5, + 0x4803c856, 0x59a8005a, 0x80000540, 0x0402038b, + 0x1c01f000, 0x4803c856, 0x4a035010, 0x00000011, + 0x83cca400, 0x00000006, 0x4200a800, 0x0010cbac, + 0x4200b000, 0x00000005, 0x0201f800, 0x0010c086, + 0x4200a800, 0x0010cbac, 0x4600a800, 0x11020000, + 0x8d0e1d06, 0x04020049, 0x59a80c1b, 0x82040580, + 0x0000ffff, 0x04000045, 0x82040d00, 0x00000030, + 0x04000006, 0x42000800, 0xffffd815, 0x0201f800, + 0x00102078, 0x0401f03d, 0x59cc0007, 0x8c00053c, + 0x0400003a, 0x42024800, 0x0010cfd1, 0x0201f800, + 0x0010c0ce, 0x59240200, 0x82000d00, 0x00000063, + 0x82040d80, 0x00000063, 0x04020023, 0x59240a08, + 0x42001000, 0x0010cbad, 0x0401fb08, 0x0400000a, + 0x59240c08, 0x0201f800, 0x001015d6, 0x59240200, + 0x84000502, 0x84000518, 0x84000544, 0x48024a00, + 0x0401f015, 0x59240200, 0x82000540, 0x00001006, + 0x84000506, 0x48024a00, 0x48064a08, 0x82042c00, + 0x00102116, 0x50142800, 0x82142d00, 0x000000ff, + 0x48164c08, 0x59240005, 0x82000500, 0x00ffff00, + 0x80140d40, 0x48064805, 0x40140800, 0x0201f800, + 0x001015c5, 0x83264c00, 0x0000000b, 0x8058b040, + 0x040207d5, 0x42024800, 0x0010cfd1, 0x59242a00, + 0x8c142d02, 0x04000005, 0x8c142d00, 0x04000003, + 0x59242c08, 0x4817500f, 0x42000800, 0x00000005, + 0x0401f365, 0x4c5c0000, 0x4178b800, 0x59a8005a, + 0x80000540, 0x04000026, 0x4803c857, 0x42001000, + 0x00104131, 0x0201f800, 0x001064fe, 0x59a8005a, + 0x82000580, 0x00000014, 0x0402001c, 0x59cc1006, + 0x82081580, 0x11030000, 0x04020018, 0x59cc1007, + 0x8c08153e, 0x0400000b, 0x59a80015, 0x8c000504, + 0x04020008, 0x42000000, 0x0010ce71, 0x0201f800, + 0x0010bfb3, 0x59a80015, 0x84000544, 0x48035015, + 0x805cb9c0, 0x04000005, 0x4a035010, 0x00000006, + 0x0401fec8, 0x0401f006, 0x4a035010, 0x00000012, + 0x0401f805, 0x0401f002, 0x0401fb04, 0x5c00b800, + 0x1c01f000, 0x4803c856, 0x4a035010, 0x00000013, + 0x83cca400, 0x00000007, 0x4200a800, 0x0010cbad, + 0x4200b000, 0x00000004, 0x0201f800, 0x0010c086, + 0x4200a800, 0x0010cbac, 0x4600a800, 0x11030000, + 0x8d0e1d06, 0x04020071, 0x42024800, 0x0010cfd1, + 0x0201f800, 0x0010c0ce, 0x4c600000, 0x4178c000, + 0x59a8021b, 0x82000500, 0xfffffffc, 0x4803521b, + 0x59240200, 0x40000800, 0x82040d00, 0xfffffb17, + 0x48064a00, 0x8c000500, 0x0400004d, 0x8c000518, + 0x0402004b, 0x8c000502, 0x04020004, 0x59240400, + 0x8c000502, 0x04000046, 0x59240a08, 0x42001000, + 0x0010cbad, 0x0401fa81, 0x0400002e, 0x59240005, + 0x82000500, 0x00ffff00, 0x48024805, 0x59240200, + 0x8c000502, 0x0400001c, 0x59240207, 0x82000500, + 0x0000ffff, 0x04000018, 0x8060c000, 0x59240c08, + 0x0201f800, 0x001015d6, 0x4c640000, 0x4c580000, + 0x4d2c0000, 0x5924c809, 0x4200b000, 0x00000010, + 0x50640000, 0x800001c0, 0x04000005, 0x4578c800, + 0x40025800, 0x0201f800, 0x00100594, 0x8064c800, + 0x8058b040, 0x040207f7, 0x5c025800, 0x5c00b000, + 0x5c00c800, 0x59240200, 0x84000502, 0x84000544, + 0x48024a00, 0x59240400, 0x8c000504, 0x04000018, + 0x59240200, 0x84000546, 0x48024a00, 0x0401f014, + 0x59240200, 0x82000540, 0x00000006, 0x84000506, + 0x48024a00, 0x82042c00, 0x00102116, 0x50142800, 0x82142d00, 0x000000ff, 0x48164c08, 0x59240005, 0x82000500, 0x00ffff00, 0x80140d40, 0x48064805, - 0x40140800, 0x0201f800, 0x001015c4, 0x83264c00, - 0x0000000b, 0x8058b040, 0x040207d4, 0x42024800, - 0x0010ccd1, 0x59242a00, 0x8c142d02, 0x04000005, - 0x8c142d00, 0x04000003, 0x59242c08, 0x4817500f, - 0x42000800, 0x00000005, 0x0401f98e, 0x4d3c0000, - 0x42027800, 0x00000001, 0x0201f800, 0x0010a004, - 0x5c027800, 0x1c01f000, 0x4c5c0000, 0x4178b800, - 0x59a8005a, 0x80000540, 0x0400001b, 0x4803c857, - 0x42001000, 0x00104038, 0x0201f800, 0x001062f9, - 0x59a8005a, 0x82000580, 0x00000084, 0x04020011, - 0x59cc1006, 0x82081580, 0x11060000, 0x0402000d, - 0x80000580, 0x0401fac9, 0x805cb9c0, 0x04000005, - 0x4a035010, 0x0000000c, 0x0401fd7a, 0x0401f006, - 0x4a035010, 0x00000018, 0x0401f805, 0x0401f002, - 0x0401f931, 0x5c00b800, 0x1c01f000, 0x4803c856, - 0x4a035010, 0x00000019, 0x83cca400, 0x00000006, - 0x4200a800, 0x0010c8ac, 0x4200b000, 0x00000021, - 0x0201f800, 0x0010bd5b, 0x42003800, 0x0010c8ad, - 0x42024800, 0x0010ccd1, 0x4200b000, 0x0010ccd0, - 0x5058b000, 0x59240200, 0x8c000500, 0x0400001a, - 0x8c000502, 0x04000018, 0x401c2800, 0x50141000, - 0x80080130, 0x80000000, 0x40001800, 0x82081500, - 0x00ffffff, 0x800000f0, 0x80080540, 0x44002800, - 0x59244408, 0x82204500, 0x000000ff, 0x400c1000, - 0x80081104, 0x82083400, 0x0010c8ad, 0x50181000, - 0x820c0500, 0x00000003, 0x0c01f80a, 0x80081540, - 0x44083000, 0x83264c00, 0x0000000b, 0x8058b040, - 0x040207e1, 0x42000800, 0x00000021, 0x0401f131, - 0x00103f38, 0x00103f3c, 0x00103f40, 0x00103f44, - 0x802000f0, 0x82081500, 0x00ffffff, 0x1c01f000, - 0x802000e0, 0x82081500, 0xff00ffff, 0x1c01f000, - 0x802000d0, 0x82081500, 0xffff00ff, 0x1c01f000, - 0x40200000, 0x82081500, 0xffffff00, 0x1c01f000, - 0x4c5c0000, 0x4178b800, 0x59a8005a, 0x80000540, - 0x0400001c, 0x4803c857, 0x42001000, 0x00104038, - 0x0201f800, 0x001062f9, 0x59a8005a, 0x82000580, - 0x00000084, 0x04020012, 0x59cc1006, 0x82081580, - 0x11070000, 0x0402000e, 0x4a035056, 0x00000001, - 0x0401f8ac, 0x805cb9c0, 0x04000005, 0x4a035010, - 0x0000000e, 0x0401fd25, 0x0401f006, 0x4a035010, - 0x0000001a, 0x0401f805, 0x0401f002, 0x0401f8c6, - 0x5c00b800, 0x1c01f000, 0x82000540, 0x00000001, - 0x0401fa4e, 0x4a035010, 0x0000001b, 0x83cca400, - 0x00000006, 0x4200a800, 0x0010c8ac, 0x59a8205a, - 0x40100000, 0x8000b104, 0x40580800, 0x5450a800, - 0x8050a000, 0x8054a800, 0x8058b040, 0x040207fc, - 0x0401f0e8, 0x1c01f000, 0x1c01f000, 0x4803c856, - 0x42003000, 0x00000004, 0x42004000, 0x0010c8ad, - 0x599c2817, 0x8c142d14, 0x0402001f, 0x42001000, - 0x00000003, 0x40200000, 0x80080400, 0x50000800, - 0x82042580, 0xffffffff, 0x04020005, 0x80081040, - 0x80183040, 0x040207f8, 0x0401f046, 0x800811c0, - 0x04020006, 0x82042580, 0x3fffffff, 0x04000040, - 0x82040d40, 0xc0000000, 0x4200b000, 0x00000020, - 0x42001800, 0x00000001, 0x40042000, 0x80102102, - 0x04021021, 0x800c18c2, 0x8058b040, 0x040207fc, - 0x0401f033, 0x41781000, 0x40200000, 0x80080400, + 0x40140800, 0x0201f800, 0x001015c5, 0x59240200, + 0x84000518, 0x48024a00, 0x83264c00, 0x0000000b, + 0x8058b040, 0x040207a7, 0x8060c1c0, 0x04020b72, + 0x5c00c000, 0x42024800, 0x0010cfd1, 0x59242a00, + 0x8c142d02, 0x04000005, 0x8c142d00, 0x04000003, + 0x59242c08, 0x4817500f, 0x42000800, 0x00000005, + 0x0401f2b5, 0x4c5c0000, 0x4178b800, 0x59a8005a, + 0x80000540, 0x04000026, 0x4803c857, 0x42001000, + 0x00104131, 0x0201f800, 0x001064fe, 0x59a8005a, + 0x82000580, 0x00000014, 0x0402001c, 0x59cc1006, + 0x82081580, 0x11040000, 0x04020018, 0x59cc1007, + 0x8c08153e, 0x0400000b, 0x59a80015, 0x8c000504, + 0x04020008, 0x42000000, 0x0010ce71, 0x0201f800, + 0x0010bfb3, 0x59a80015, 0x84000544, 0x48035015, + 0x805cb9c0, 0x04000005, 0x4a035010, 0x00000008, + 0x0401fe20, 0x0401f006, 0x4a035010, 0x00000014, + 0x0401f805, 0x0401f002, 0x0401fa54, 0x5c00b800, + 0x1c01f000, 0x4803c856, 0x4a035010, 0x00000015, + 0x83cca400, 0x00000007, 0x4200a800, 0x0010cbad, + 0x4200b000, 0x00000004, 0x0201f800, 0x0010c086, + 0x4200a800, 0x0010cbac, 0x4600a800, 0x11040000, + 0x8d0e1d06, 0x04020045, 0x42024800, 0x0010cfd1, + 0x0201f800, 0x0010c0ce, 0x59240400, 0x8c000500, + 0x04000031, 0x59240200, 0x8c000500, 0x0400002e, + 0x8c000502, 0x0402002c, 0x59240c00, 0x80040910, + 0x82040d00, 0x000000ff, 0x42001000, 0x0010cbad, + 0x0401f9da, 0x04000010, 0x59240005, 0x82000500, + 0x00ffff00, 0x48024805, 0x59240200, 0x84000502, + 0x48024a00, 0x59242400, 0x8c102504, 0x0400001a, + 0x84000546, 0x84000544, 0x48024a00, 0x8060c000, + 0x0401f015, 0x59240200, 0x82000540, 0x00000006, + 0x84000506, 0x48024a00, 0x48064a08, 0x82042c00, + 0x00102116, 0x50142800, 0x82142d00, 0x000000ff, + 0x48164c08, 0x59240005, 0x82000500, 0x00ffff00, + 0x80140d40, 0x48064805, 0x40140800, 0x0201f800, + 0x001015c5, 0x83264c00, 0x0000000b, 0x8058b040, + 0x040207ca, 0x42024800, 0x0010cfd1, 0x59242a00, + 0x8c142d02, 0x04000005, 0x8c142d00, 0x04000003, + 0x59242c08, 0x4817500f, 0x42000800, 0x00000005, + 0x0401f231, 0x4c5c0000, 0x4178b800, 0x59a8005a, + 0x80000540, 0x0400004a, 0x4803c857, 0x42001000, + 0x00104131, 0x0201f800, 0x001064fe, 0x59a8005a, + 0x82000580, 0x00000014, 0x04020040, 0x59cc1006, + 0x82080500, 0x11050000, 0x82000580, 0x11050000, + 0x0402003a, 0x8c081510, 0x04000015, 0x0401fb70, + 0x59cc1007, 0x8c08153e, 0x0400000b, 0x59a80015, + 0x8c000504, 0x04020008, 0x42000000, 0x0010ce71, + 0x0201f800, 0x0010bfb3, 0x59a80015, 0x84000544, + 0x48035015, 0x805cb9c0, 0x04000017, 0x4a035010, + 0x0000000a, 0x0401fdb7, 0x0401f025, 0x59cc1007, + 0x8c08153e, 0x0400000b, 0x59a80015, 0x8c000504, + 0x04020008, 0x42000000, 0x0010ce71, 0x0201f800, + 0x0010bfb3, 0x59a80015, 0x84000544, 0x48035015, + 0x82000540, 0x00000001, 0x0401fb4d, 0x497b5056, + 0x0401f003, 0x4a035056, 0x00000001, 0x59cc1007, + 0x8c08153c, 0x04000003, 0x4a03521b, 0x00000008, + 0x805cb9c0, 0x04020005, 0x4a035010, 0x00000016, + 0x0401f809, 0x0401f006, 0x4a035010, 0x0000000e, + 0x0401fe07, 0x0401f002, 0x0401f9ac, 0x5c00b800, + 0x1c01f000, 0x4803c856, 0x83cca400, 0x00000006, + 0x4200a800, 0x0010cbac, 0x4200b000, 0x00000005, + 0x0201f800, 0x0010c086, 0x4a035010, 0x00000017, + 0x59a80056, 0x8c000500, 0x04000006, 0x42001000, + 0x0010cbac, 0x46001000, 0x11050100, 0x0401f003, + 0x4a035010, 0x0000001b, 0x42024800, 0x0010cfd1, + 0x0201f800, 0x0010c0ce, 0x599c2817, 0x59240200, + 0x8c000500, 0x04000027, 0x8c000502, 0x04020025, + 0x8c000506, 0x04020023, 0x4c580000, 0x0401f8d9, + 0x5c00b000, 0x0402000b, 0x59240005, 0x82000500, + 0x00ffff00, 0x48024805, 0x59240200, 0x84000502, + 0x84000546, 0x84000544, 0x48024a00, 0x0401f015, + 0x59240200, 0x82000540, 0x00000006, 0x84000506, + 0x48024a00, 0x48064a08, 0x82042c00, 0x00102116, + 0x50142800, 0x82142d00, 0x000000ff, 0x48164c08, + 0x59240005, 0x82000500, 0x00ffff00, 0x80140d40, + 0x48064805, 0x40140800, 0x0201f800, 0x001015c5, + 0x83264c00, 0x0000000b, 0x8058b040, 0x040207d4, + 0x42024800, 0x0010cfd1, 0x59242a00, 0x8c142d02, + 0x04000005, 0x8c142d00, 0x04000003, 0x59242c08, + 0x4817500f, 0x42000800, 0x00000005, 0x0401f98e, + 0x4d3c0000, 0x42027800, 0x00000001, 0x0201f800, + 0x0010a242, 0x5c027800, 0x1c01f000, 0x4c5c0000, + 0x4178b800, 0x59a8005a, 0x80000540, 0x0400001b, + 0x4803c857, 0x42001000, 0x00104131, 0x0201f800, + 0x001064fe, 0x59a8005a, 0x82000580, 0x00000084, + 0x04020011, 0x59cc1006, 0x82081580, 0x11060000, + 0x0402000d, 0x80000580, 0x0401fac9, 0x805cb9c0, + 0x04000005, 0x4a035010, 0x0000000c, 0x0401fd7a, + 0x0401f006, 0x4a035010, 0x00000018, 0x0401f805, + 0x0401f002, 0x0401f931, 0x5c00b800, 0x1c01f000, + 0x4803c856, 0x4a035010, 0x00000019, 0x83cca400, + 0x00000006, 0x4200a800, 0x0010cbac, 0x4200b000, + 0x00000021, 0x0201f800, 0x0010c086, 0x42003800, + 0x0010cbad, 0x42024800, 0x0010cfd1, 0x4200b000, + 0x0010cfd0, 0x5058b000, 0x59240200, 0x8c000500, + 0x0400001a, 0x8c000502, 0x04000018, 0x401c2800, + 0x50141000, 0x80080130, 0x80000000, 0x40001800, + 0x82081500, 0x00ffffff, 0x800000f0, 0x80080540, + 0x44002800, 0x59244408, 0x82204500, 0x000000ff, + 0x400c1000, 0x80081104, 0x82083400, 0x0010cbad, + 0x50181000, 0x820c0500, 0x00000003, 0x0c01f80a, + 0x80081540, 0x44083000, 0x83264c00, 0x0000000b, + 0x8058b040, 0x040207e1, 0x42000800, 0x00000021, + 0x0401f131, 0x00104031, 0x00104035, 0x00104039, + 0x0010403d, 0x802000f0, 0x82081500, 0x00ffffff, + 0x1c01f000, 0x802000e0, 0x82081500, 0xff00ffff, + 0x1c01f000, 0x802000d0, 0x82081500, 0xffff00ff, + 0x1c01f000, 0x40200000, 0x82081500, 0xffffff00, + 0x1c01f000, 0x4c5c0000, 0x4178b800, 0x59a8005a, + 0x80000540, 0x0400001c, 0x4803c857, 0x42001000, + 0x00104131, 0x0201f800, 0x001064fe, 0x59a8005a, + 0x82000580, 0x00000084, 0x04020012, 0x59cc1006, + 0x82081580, 0x11070000, 0x0402000e, 0x4a035056, + 0x00000001, 0x0401f8ac, 0x805cb9c0, 0x04000005, + 0x4a035010, 0x0000000e, 0x0401fd25, 0x0401f006, + 0x4a035010, 0x0000001a, 0x0401f805, 0x0401f002, + 0x0401f8c6, 0x5c00b800, 0x1c01f000, 0x82000540, + 0x00000001, 0x0401fa4e, 0x4a035010, 0x0000001b, + 0x83cca400, 0x00000006, 0x4200a800, 0x0010cbac, + 0x59a8205a, 0x40100000, 0x8000b104, 0x40580800, + 0x5450a800, 0x8050a000, 0x8054a800, 0x8058b040, + 0x040207fc, 0x0401f0e8, 0x1c01f000, 0x1c01f000, + 0x4803c856, 0x42003000, 0x00000004, 0x42004000, + 0x0010cbad, 0x599c2817, 0x8c142d14, 0x0402001f, + 0x42001000, 0x00000003, 0x40200000, 0x80080400, 0x50000800, 0x82042580, 0xffffffff, 0x04020005, - 0x80081000, 0x80183040, 0x040207f8, 0x0401f028, - 0x800811c0, 0x04020003, 0x82040d40, 0xc0000000, - 0x4200b000, 0x00000001, 0x42001800, 0x80000000, - 0x40042000, 0x801020c2, 0x04021007, 0x800c1902, - 0x8058b000, 0x82580480, 0x00000021, 0x040017fa, - 0x0401f017, 0x40200000, 0x80082400, 0x50100000, - 0x800c0540, 0x44002000, 0x59a80015, 0x84000540, - 0x48035015, 0x40580000, 0x42002800, 0x00000020, - 0x80142c80, 0x40080000, 0x42003800, 0x00000003, - 0x801c0480, 0x800000ca, 0x80142d40, 0x40140800, - 0x82000540, 0x00000001, 0x0401f002, 0x80000580, - 0x1c01f000, 0x4807c857, 0x480bc857, 0x40041800, - 0x41782000, 0x42000000, 0x00000003, 0x820c1c80, - 0x00000020, 0x04001004, 0x80102000, 0x80000040, - 0x0401f7fb, 0x40041800, 0x801021c0, 0x04000005, - 0x820c1c80, 0x00000020, 0x80102040, 0x040207fd, - 0x42002000, 0x00000001, 0x800c19c0, 0x04000004, - 0x801020c2, 0x800c1840, 0x040207fe, 0x80083c00, - 0x401c2800, 0x50140000, 0x80102d00, 0x04020007, - 0x80100540, 0x44003800, 0x59a80015, 0x84000540, - 0x48035015, 0x80000580, 0x1c01f000, 0x4807c856, - 0x42001000, 0x00008017, 0x59a81832, 0x0201f800, - 0x0010bc92, 0x0201f800, 0x001038bc, 0x1c01f000, - 0x4807c856, 0x4200b000, 0x00000020, 0x83cca400, - 0x00000007, 0x4200a800, 0x0010df51, 0x0201f000, - 0x0010bd85, 0x4807c856, 0x0201f800, 0x00106faf, - 0x42000800, 0x000000f7, 0x0401f8f1, 0x497b2804, - 0x497b2805, 0x497b2826, 0x497b2827, 0x4202d800, - 0x00000001, 0x42006000, 0xbe7fffff, 0x42006800, - 0x00018000, 0x0401f98c, 0x42006000, 0xfffeffff, - 0x41786800, 0x0401f988, 0x497b5032, 0x42000800, - 0x0000002d, 0x42001000, 0x001040ba, 0x0201f000, - 0x001062d0, 0x4807c856, 0x0401ffe3, 0x497b5010, - 0x497b505a, 0x1c01f000, 0x4807c856, 0x42006000, - 0xffffffff, 0x42006800, 0x00000028, 0x0401f176, - 0x4807c856, 0x0401ffc6, 0x0201f800, 0x00106c3c, - 0x4df00000, 0x0201f800, 0x00106ed9, 0x5c03e000, - 0x02000800, 0x00106c29, 0x59c400a4, 0x82000500, - 0x0000000f, 0x82000580, 0x00000002, 0x0402000a, - 0x42006000, 0xffffffff, 0x42006800, 0x00200000, - 0x0401f961, 0x42006000, 0xffdfffff, 0x41786800, - 0x0401f95d, 0x497b5010, 0x42000800, 0x000000f7, - 0x0401f8b3, 0x59c400a3, 0x82000500, 0xbf20bfff, - 0x82000540, 0x0001c000, 0x480388a3, 0x84000520, - 0x480388a3, 0x497b5032, 0x42000800, 0x0000002d, - 0x42001000, 0x001040ba, 0x0201f000, 0x001062d0, - 0x497b505a, 0x59b400f5, 0x8c000500, 0x04020004, - 0x82000540, 0x00000001, 0x480368f5, 0x800400c4, - 0x82000400, 0x00002000, 0x4803910a, 0x59b400f6, - 0x82000500, 0x00000018, 0x040207fd, 0x4a0368f0, - 0x0010c8a5, 0x42000000, 0x0010c8ac, 0x4c040000, - 0x50000800, 0x82040d80, 0x11010000, 0x04000003, - 0x50000800, 0x4807c857, 0x5c000800, 0x480368f1, - 0x82040400, 0x0000dc00, 0x480368f3, 0x59c400a4, - 0x82000500, 0x0000000f, 0x82000580, 0x00000008, - 0x04020017, 0x4c5c0000, 0x4c600000, 0x59c4b805, - 0x8c5cbd3a, 0x04020005, 0x42000000, 0x0010cb6e, - 0x0201f800, 0x0010bc88, 0x4a038805, 0x20000000, - 0x0201f800, 0x00101a38, 0x4000c000, 0x0201f800, - 0x00101963, 0x4202d800, 0x00000001, 0x497b5010, - 0x5c00c000, 0x5c00b800, 0x1c01f000, 0x59c8010b, - 0x8c000502, 0x040007e2, 0x59c408a4, 0x82040d00, - 0x0000000f, 0x82040d80, 0x0000000b, 0x04020005, - 0x59a80810, 0x82040d40, 0x00002000, 0x0401f004, - 0x59a80855, 0x82040d40, 0x00001000, 0x48075032, - 0x59a8085f, 0x800409c0, 0x04020007, 0x42000800, - 0x000007d0, 0x42001000, 0x00104038, 0x0201f800, - 0x00106433, 0x1c01f000, 0x4807c856, 0x0401ff44, - 0x0201f800, 0x00106c3c, 0x4df00000, 0x0201f800, - 0x00106ed9, 0x5c03e000, 0x02000800, 0x00106c29, + 0x80081040, 0x80183040, 0x040207f8, 0x0401f046, + 0x800811c0, 0x04020006, 0x82042580, 0x3fffffff, + 0x04000040, 0x82040d40, 0xc0000000, 0x4200b000, + 0x00000020, 0x42001800, 0x00000001, 0x40042000, + 0x80102102, 0x04021021, 0x800c18c2, 0x8058b040, + 0x040207fc, 0x0401f033, 0x41781000, 0x40200000, + 0x80080400, 0x50000800, 0x82042580, 0xffffffff, + 0x04020005, 0x80081000, 0x80183040, 0x040207f8, + 0x0401f028, 0x800811c0, 0x04020003, 0x82040d40, + 0xc0000000, 0x4200b000, 0x00000001, 0x42001800, + 0x80000000, 0x40042000, 0x801020c2, 0x04021007, + 0x800c1902, 0x8058b000, 0x82580480, 0x00000021, + 0x040017fa, 0x0401f017, 0x40200000, 0x80082400, + 0x50100000, 0x800c0540, 0x44002000, 0x59a80015, + 0x84000540, 0x48035015, 0x40580000, 0x42002800, + 0x00000020, 0x80142c80, 0x40080000, 0x42003800, + 0x00000003, 0x801c0480, 0x800000ca, 0x80142d40, + 0x40140800, 0x82000540, 0x00000001, 0x0401f002, + 0x80000580, 0x1c01f000, 0x4807c857, 0x480bc857, + 0x40041800, 0x41782000, 0x42000000, 0x00000003, + 0x820c1c80, 0x00000020, 0x04001004, 0x80102000, + 0x80000040, 0x0401f7fb, 0x40041800, 0x801021c0, + 0x04000005, 0x820c1c80, 0x00000020, 0x80102040, + 0x040207fd, 0x42002000, 0x00000001, 0x800c19c0, + 0x04000004, 0x801020c2, 0x800c1840, 0x040207fe, + 0x80083c00, 0x401c2800, 0x50140000, 0x80102d00, + 0x04020007, 0x80100540, 0x44003800, 0x59a80015, + 0x84000540, 0x48035015, 0x80000580, 0x1c01f000, + 0x4807c856, 0x42001000, 0x00008017, 0x59a81832, + 0x0201f800, 0x0010bfbd, 0x0201f800, 0x001039ac, + 0x1c01f000, 0x4807c856, 0x4200b000, 0x00000020, + 0x83cca400, 0x00000007, 0x4200a800, 0x0010e251, + 0x0201f000, 0x0010c0b0, 0x4807c856, 0x0201f800, + 0x001071b4, 0x42000800, 0x000000f7, 0x0401f8f1, + 0x497b2804, 0x497b2805, 0x497b2826, 0x497b2827, + 0x4202d800, 0x00000001, 0x42006000, 0xbe7fffff, + 0x42006800, 0x00018000, 0x0401f98c, 0x42006000, + 0xfffeffff, 0x41786800, 0x0401f988, 0x497b5032, + 0x42000800, 0x0000002d, 0x42001000, 0x001041b3, + 0x0201f000, 0x001064d5, 0x4807c856, 0x0401ffe3, + 0x497b5010, 0x497b505a, 0x1c01f000, 0x4807c856, + 0x42006000, 0xffffffff, 0x42006800, 0x00000028, + 0x0401f176, 0x4807c856, 0x0401ffc6, 0x0201f800, + 0x00106e41, 0x4df00000, 0x0201f800, 0x001070de, + 0x5c03e000, 0x02000800, 0x00106e2e, 0x59c400a4, + 0x82000500, 0x0000000f, 0x82000580, 0x00000002, + 0x0402000a, 0x42006000, 0xffffffff, 0x42006800, + 0x00200000, 0x0401f961, 0x42006000, 0xffdfffff, + 0x41786800, 0x0401f95d, 0x497b5010, 0x42000800, + 0x000000f7, 0x0401f8b3, 0x59c400a3, 0x82000500, + 0xbf20bfff, 0x82000540, 0x0001c000, 0x480388a3, + 0x84000520, 0x480388a3, 0x497b5032, 0x42000800, + 0x0000002d, 0x42001000, 0x001041b3, 0x0201f000, + 0x001064d5, 0x497b505a, 0x59b400f5, 0x8c000500, + 0x04020004, 0x82000540, 0x00000001, 0x480368f5, + 0x800400c4, 0x82000400, 0x00002000, 0x4803910a, + 0x59b400f6, 0x82000500, 0x00000018, 0x040207fd, + 0x4a0368f0, 0x0010cba5, 0x42000000, 0x0010cbac, + 0x4c040000, 0x50000800, 0x82040d80, 0x11010000, + 0x04000003, 0x50000800, 0x4807c857, 0x5c000800, + 0x480368f1, 0x82040400, 0x0000dc00, 0x480368f3, 0x59c400a4, 0x82000500, 0x0000000f, 0x82000580, - 0x00000002, 0x0402000a, 0x42006000, 0xffffffff, - 0x42006800, 0x00200000, 0x0401f8df, 0x42006000, - 0xffdfffff, 0x41786800, 0x0401f8db, 0x0201f800, - 0x00104fd3, 0x04000014, 0x0201f800, 0x00104ff1, - 0x04020011, 0x4a035013, 0x0000aaaa, 0x4c040000, - 0x0201f800, 0x00101606, 0x59a8001f, 0x82000500, - 0xffff0000, 0x80040540, 0x4803501f, 0x5c000800, - 0x4a035014, 0x00000000, 0x0201f800, 0x00104f20, - 0x0401f008, 0x4a035058, 0x00000005, 0x42000000, - 0x00000080, 0x0201f800, 0x0010155c, 0x0401ff22, - 0x1c01f000, 0x0401f809, 0x42006000, 0xbf7f7fff, - 0x41786800, 0x0401f0b8, 0x42006000, 0xbf7f7fff, - 0x41786800, 0x0401f0b4, 0x0201f800, 0x00104ff1, - 0x04020009, 0x59c40006, 0x82000540, 0x000000f0, - 0x48038806, 0x42006000, 0xbfffffff, 0x41786800, - 0x0401f8a9, 0x1c01f000, 0x40680800, 0x800408d0, - 0x59a80015, 0x8c000506, 0x04000006, 0x59a8000f, - 0x82000500, 0x000000ff, 0x80040540, 0x0401f003, - 0x82040540, 0x000000f7, 0x480388a7, 0x1c01f000, - 0x4807c856, 0x42000000, 0x0010cc06, 0x0201f800, - 0x0010bc88, 0x42003000, 0x00000005, 0x4d3c0000, - 0x4c180000, 0x42003000, 0x0000000d, 0x42027800, - 0x00000002, 0x0401f04e, 0x4807c856, 0x42000000, - 0x0010cc2b, 0x0201f800, 0x0010bc88, 0x42003000, - 0x00000000, 0x4d3c0000, 0x4c180000, 0x42003000, - 0x0000000f, 0x42001800, 0x0000ffff, 0x42002000, - 0x00000007, 0x0201f800, 0x00103931, 0x5c003000, - 0x59240200, 0x84000556, 0x48024a00, 0x4d400000, - 0x42028000, 0x0000002a, 0x59240400, 0x8c00050a, - 0x02000800, 0x0010ae89, 0x42027800, 0x00000002, - 0x0201f800, 0x00101fa9, 0x5c028000, 0x5c027800, - 0x0201f000, 0x00020b9d, 0x4807c856, 0x42000000, - 0x0010cc29, 0x0201f800, 0x0010bc88, 0x42003000, - 0x00000003, 0x4d3c0000, 0x4c180000, 0x42003000, - 0x0000000e, 0x42027800, 0x00000202, 0x0401f01c, - 0x4807c856, 0x42000000, 0x0010cc28, 0x0201f800, - 0x0010bc88, 0x42003000, 0x00000004, 0x4d3c0000, - 0x4c180000, 0x42003000, 0x00000010, 0x42027800, - 0x00000202, 0x0401f00e, 0x4807c856, 0x42000000, - 0x0010cb70, 0x0201f800, 0x0010bc88, 0x42003000, - 0x00000001, 0x4d3c0000, 0x4c180000, 0x42003000, - 0x0000000c, 0x42027800, 0x00000002, 0x42001800, - 0x0000ffff, 0x42002000, 0x00000007, 0x4d200000, - 0x417a4000, 0x0201f800, 0x00103931, 0x5c024000, - 0x5c003000, 0x4d400000, 0x0201f800, 0x0010b427, - 0x42028000, 0x0000002a, 0x0201f800, 0x0010fbe5, - 0x4c580000, 0x0201f800, 0x0010bda3, 0x42000800, - 0x0010ccd1, 0x58040005, 0x82000500, 0x000000ff, - 0x48000805, 0x82040c00, 0x0000000b, 0x8058b040, - 0x040207f9, 0x5c00b000, 0x5c028000, 0x5c027800, - 0x1c01f000, 0x4807c856, 0x04011000, 0x4a03c840, - 0x0010c8a5, 0x4a03c842, 0x00000040, 0x40000000, - 0x040117ff, 0x42007800, 0x0010c8a5, 0x46007800, - 0x00000011, 0x803c7800, 0x4a007800, 0x220000ef, - 0x4a007801, 0x000000ef, 0x4a007802, 0x01380000, - 0x4a007803, 0x00000000, 0x4a007804, 0xffffffff, - 0x4a007805, 0x00000000, 0x1c01f000, 0x40686000, - 0x406c6800, 0x59c400a3, 0x80300500, 0x80340540, - 0x480388a3, 0x1c01f000, 0x40686000, 0x4833c857, - 0x59c400a3, 0x80300540, 0x480388a3, 0x80300580, - 0x480388a3, 0x1c01f000, 0x4803c856, 0x04000004, - 0x4a035060, 0x00000001, 0x0401f002, 0x497b5060, - 0x1c01f000, 0x59c80002, 0x80000540, 0x0400000a, - 0x80000040, 0x04000008, 0x4a039005, 0x00000140, - 0x42000000, 0x00000006, 0x80000040, 0x040207ff, - 0x0401f7f5, 0x1c01f000, 0x4c5c0000, 0x4c600000, - 0x59c4b805, 0x485fc856, 0x8c5cbd3a, 0x04020005, - 0x42000000, 0x0010cb6e, 0x0201f800, 0x0010bc88, - 0x4a038805, 0x20000000, 0x0201f800, 0x00101a38, - 0x4000c000, 0x0201f800, 0x00101963, 0x4a038805, - 0x04000000, 0x5c00c000, 0x5c00b800, 0x1c01f000, - 0x497a6a00, 0x4a026c00, 0x00000707, 0x497a6801, - 0x497a6808, 0x497a6809, 0x497a6806, 0x497a6807, - 0x497a6c0b, 0x497a680c, 0x59240400, 0x8c00050a, - 0x04000006, 0x5934080f, 0x59340010, 0x80040540, - 0x02020800, 0x0010032e, 0x4a026a04, 0x00000100, - 0x497a6a03, 0x59340402, 0x82000500, 0x000000ff, - 0x48026c02, 0x497a6c04, 0x497a6a05, 0x497a6c05, - 0x497a6811, 0x4d2c0000, 0x5934000d, 0x49466c03, - 0x80025d40, 0x04000004, 0x0201f800, 0x0010059d, - 0x497a680d, 0x5c025800, 0x59a80070, 0x8c000502, - 0x42000000, 0x00000010, 0x04020002, 0x599c0401, - 0x48026a0b, 0x599c0208, 0x48026c12, 0x4a02680a, - 0x00006000, 0x0201f000, 0x00104c0c, 0x42000000, - 0x00000005, 0x80000d80, 0x0401f02c, 0x0201f800, - 0x00104943, 0x04020017, 0x59a8021b, 0x8c00050a, - 0x04020010, 0x59340212, 0x82000500, 0x0000ff00, - 0x4803c857, 0x0400000b, 0x59340a00, 0x8c040d1e, - 0x02000000, 0x000202ca, 0x42000000, 0x00000029, - 0x42000800, 0x00001000, 0x492fc857, 0x0401f017, - 0x492fc857, 0x42000000, 0x00000028, 0x0401f011, - 0x8d0e1d02, 0x04020003, 0x8d0e1d00, 0x04000004, - 0x42000000, 0x00000004, 0x0401f00a, 0x42000000, - 0x00000029, 0x59340a00, 0x8c040d1e, 0x04000005, - 0x492fc857, 0x42000800, 0x00001000, 0x0401f003, - 0x492fc857, 0x80000d80, 0x4803c857, 0x80028540, - 0x1c01f000, 0x490fc857, 0x8d0e1d00, 0x040207ed, - 0x0201f800, 0x0010491a, 0x040207e6, 0x59340200, - 0x8c00050e, 0x040007e3, 0x0201f000, 0x000202ca, - 0x4d480000, 0x4d4c0000, 0x592e9009, 0x592e980a, - 0x0201f800, 0x001047c9, 0x5c029800, 0x5c029000, - 0x040007bb, 0x0201f000, 0x000202ce, 0x592c0207, - 0x492fc857, 0x82000d80, 0x000007ff, 0x04020006, - 0x4a025c0b, 0x00000030, 0x42026800, 0x0010c87b, - 0x0401f021, 0x82000c80, 0x000007f0, 0x04021047, - 0x81ac0400, 0x50000000, 0x80026d40, 0x0400003a, - 0x0201f800, 0x0010484d, 0x0402003a, 0x592c040b, - 0x8c00050a, 0x04020014, 0x592e600a, 0x83300480, - 0x00111264, 0x0400103c, 0x41580000, 0x81300480, - 0x04021039, 0x59300c07, 0x82040580, 0x00000009, - 0x04020038, 0x4a025a07, 0x00000000, 0x497a5800, - 0x59300009, 0x80000540, 0x0402001a, 0x492e6009, - 0x0401f012, 0x0201f800, 0x00020b7b, 0x0400001b, - 0x592c0207, 0x4936600a, 0x492e6009, 0x4a026407, - 0x00000009, 0x497a6016, 0x4a02601c, 0x0010ccd1, - 0x4932580a, 0x82000d80, 0x000007ff, 0x04020003, - 0x4a026016, 0x00008000, 0x42027000, 0x00000043, - 0x0201f800, 0x00020bc1, 0x80000580, 0x0401f01f, - 0x40000800, 0x58040000, 0x80000540, 0x040207fd, - 0x492c0800, 0x0401f019, 0x42000000, 0x0000002c, - 0x0401f015, 0x42000000, 0x00000028, 0x0401f012, - 0x830c0500, 0x00000003, 0x04000004, 0x42000000, - 0x00000004, 0x0401f00c, 0x42000000, 0x00000029, - 0x0401f009, 0x42000000, 0x00000008, 0x0401f006, - 0x82040580, 0x00000007, 0x040207fb, 0x42000000, - 0x00000005, 0x80000540, 0x1c01f000, 0x492fc857, - 0x592e8c07, 0x83440d80, 0x000007fc, 0x04000004, - 0x83440480, 0x000007f0, 0x0402101b, 0x592e4408, - 0x0201f800, 0x00105acb, 0x02000800, 0x0010497a, - 0x04020015, 0x0201f800, 0x0010492d, 0x04020015, - 0x0201f800, 0x00107cfe, 0x0400001f, 0x83200400, - 0x0010bdc7, 0x50024800, 0x4926601c, 0x4936600a, - 0x492e6009, 0x4a026407, 0x0000000a, 0x42027000, - 0x00000040, 0x0201f800, 0x00020bc1, 0x80000580, - 0x0401f010, 0x42000000, 0x00000028, 0x0401f00c, - 0x0201f800, 0x00104943, 0x040007fb, 0x830c0d00, - 0x00000003, 0x04000004, 0x42000000, 0x00000004, - 0x0401f003, 0x42000000, 0x00000029, 0x80000540, - 0x1c01f000, 0x42000000, 0x0000002c, 0x0401f7fc, - 0x492fc857, 0x592e4408, 0x4923c857, 0x0201f800, - 0x00105acb, 0x592c4208, 0x0400000e, 0x42000000, - 0x0000000e, 0x59240a00, 0x8c040d00, 0x040001b1, - 0x82200d00, 0x0000000f, 0x82040d80, 0x00000008, - 0x040201ac, 0x82200d00, 0x00000030, 0x040001a9, - 0x592e8c07, 0x4947c857, 0x83440c80, 0x00000800, - 0x42000000, 0x0000000a, 0x040211a2, 0x4823c857, - 0x82200500, 0x0000000f, 0x0c01f001, 0x00104327, - 0x001043b3, 0x00104404, 0x0010440f, 0x0010441a, - 0x00104323, 0x00104323, 0x00104323, 0x00104427, - 0x0010448a, 0x001044af, 0x00104323, 0x00104323, - 0x00104323, 0x00104323, 0x00104323, 0x4803c857, - 0x42000000, 0x0000000c, 0x0401f18a, 0x592c1009, - 0x82081500, 0x00ffffff, 0x59240005, 0x80084d80, - 0x42000000, 0x00000010, 0x04000182, 0x0201f800, - 0x001048a9, 0x04000039, 0x4803c857, 0x82004d80, - 0x0000001d, 0x0402001a, 0x0201f800, 0x00020864, - 0x59340405, 0x4c000000, 0x0201f800, 0x0010491a, - 0x5c000000, 0x04000004, 0x8c20450a, 0x0400002b, - 0x80000580, 0x44002800, 0x59340008, 0x48002802, - 0x59340009, 0x48002801, 0x59340006, 0x48002804, - 0x59340007, 0x48002803, 0x4200b000, 0x00000005, - 0x0201f800, 0x00109cd4, 0x0401f193, 0x4803c857, + 0x00000008, 0x04020017, 0x4c5c0000, 0x4c600000, + 0x59c4b805, 0x8c5cbd3a, 0x04020005, 0x42000000, + 0x0010ce6e, 0x0201f800, 0x0010bfb3, 0x4a038805, + 0x20000000, 0x0201f800, 0x00101a3d, 0x4000c000, + 0x0201f800, 0x00101968, 0x4202d800, 0x00000001, + 0x497b5010, 0x5c00c000, 0x5c00b800, 0x1c01f000, + 0x59c8010b, 0x8c000502, 0x040007e2, 0x59c408a4, + 0x82040d00, 0x0000000f, 0x82040d80, 0x0000000b, + 0x04020005, 0x59a80810, 0x82040d40, 0x00002000, + 0x0401f004, 0x59a80855, 0x82040d40, 0x00001000, + 0x48075032, 0x59a8085f, 0x800409c0, 0x04020007, + 0x42000800, 0x000007d0, 0x42001000, 0x00104131, + 0x0201f800, 0x00106638, 0x1c01f000, 0x4807c856, + 0x0401ff44, 0x0201f800, 0x00106e41, 0x4df00000, + 0x0201f800, 0x001070de, 0x5c03e000, 0x02000800, + 0x00106e2e, 0x59c400a4, 0x82000500, 0x0000000f, + 0x82000580, 0x00000002, 0x0402000a, 0x42006000, + 0xffffffff, 0x42006800, 0x00200000, 0x0401f8df, + 0x42006000, 0xffdfffff, 0x41786800, 0x0401f8db, + 0x0201f800, 0x00105104, 0x04000014, 0x0201f800, + 0x00105122, 0x04020011, 0x4a035013, 0x0000aaaa, + 0x4c040000, 0x0201f800, 0x0010160b, 0x59a8001f, + 0x82000500, 0xffff0000, 0x80040540, 0x4803501f, + 0x5c000800, 0x4a035014, 0x00000000, 0x0201f800, + 0x00105051, 0x0401f008, 0x4a035058, 0x00000005, + 0x42000000, 0x00000080, 0x0201f800, 0x0010155d, + 0x0401ff22, 0x1c01f000, 0x0401f809, 0x42006000, + 0xbf7f7fff, 0x41786800, 0x0401f0b8, 0x42006000, + 0xbf7f7fff, 0x41786800, 0x0401f0b4, 0x0201f800, + 0x00105122, 0x04020009, 0x59c40006, 0x82000540, + 0x000000f0, 0x48038806, 0x42006000, 0xbfffffff, + 0x41786800, 0x0401f8a9, 0x1c01f000, 0x40680800, + 0x800408d0, 0x59a80015, 0x8c000506, 0x04000006, + 0x59a8000f, 0x82000500, 0x000000ff, 0x80040540, + 0x0401f003, 0x82040540, 0x000000f7, 0x480388a7, + 0x1c01f000, 0x4807c856, 0x42000000, 0x0010cf06, + 0x0201f800, 0x0010bfb3, 0x42003000, 0x00000005, + 0x4d3c0000, 0x4c180000, 0x42003000, 0x0000000d, + 0x42027800, 0x00000002, 0x0401f04e, 0x4807c856, + 0x42000000, 0x0010cf2b, 0x0201f800, 0x0010bfb3, + 0x42003000, 0x00000000, 0x4d3c0000, 0x4c180000, + 0x42003000, 0x0000000f, 0x42001800, 0x0000ffff, + 0x42002000, 0x00000007, 0x0201f800, 0x00103a21, + 0x5c003000, 0x59240200, 0x84000556, 0x48024a00, + 0x4d400000, 0x42028000, 0x0000002a, 0x59240400, + 0x8c00050a, 0x02000800, 0x0010b198, 0x42027800, + 0x00000002, 0x0201f800, 0x0010200c, 0x5c028000, + 0x5c027800, 0x0201f000, 0x00020b9d, 0x4807c856, + 0x42000000, 0x0010cf29, 0x0201f800, 0x0010bfb3, + 0x42003000, 0x00000003, 0x4d3c0000, 0x4c180000, + 0x42003000, 0x0000000e, 0x42027800, 0x00000202, + 0x0401f01c, 0x4807c856, 0x42000000, 0x0010cf28, + 0x0201f800, 0x0010bfb3, 0x42003000, 0x00000004, + 0x4d3c0000, 0x4c180000, 0x42003000, 0x00000010, + 0x42027800, 0x00000202, 0x0401f00e, 0x4807c856, + 0x42000000, 0x0010ce70, 0x0201f800, 0x0010bfb3, + 0x42003000, 0x00000001, 0x4d3c0000, 0x4c180000, + 0x42003000, 0x0000000c, 0x42027800, 0x00000002, + 0x42001800, 0x0000ffff, 0x42002000, 0x00000007, + 0x4d200000, 0x417a4000, 0x0201f800, 0x00103a21, + 0x5c024000, 0x5c003000, 0x4d400000, 0x0201f800, + 0x0010b752, 0x42028000, 0x0000002a, 0x0201f800, + 0x0010fef2, 0x4c580000, 0x0201f800, 0x0010c0ce, + 0x42000800, 0x0010cfd1, 0x58040005, 0x82000500, + 0x000000ff, 0x48000805, 0x82040c00, 0x0000000b, + 0x8058b040, 0x040207f9, 0x5c00b000, 0x5c028000, + 0x5c027800, 0x1c01f000, 0x4807c856, 0x04011000, + 0x4a03c840, 0x0010cba5, 0x4a03c842, 0x00000040, + 0x40000000, 0x040117ff, 0x42007800, 0x0010cba5, + 0x46007800, 0x00000011, 0x803c7800, 0x4a007800, + 0x220000ef, 0x4a007801, 0x000000ef, 0x4a007802, + 0x01380000, 0x4a007803, 0x00000000, 0x4a007804, + 0xffffffff, 0x4a007805, 0x00000000, 0x1c01f000, + 0x40686000, 0x406c6800, 0x59c400a3, 0x80300500, + 0x80340540, 0x480388a3, 0x1c01f000, 0x40686000, + 0x4833c857, 0x59c400a3, 0x80300540, 0x480388a3, + 0x80300580, 0x480388a3, 0x1c01f000, 0x4803c856, + 0x04000004, 0x4a035060, 0x00000001, 0x0401f002, + 0x497b5060, 0x1c01f000, 0x59c80002, 0x80000540, + 0x0400000a, 0x80000040, 0x04000008, 0x4a039005, + 0x00000140, 0x42000000, 0x00000006, 0x80000040, + 0x040207ff, 0x0401f7f5, 0x1c01f000, 0x4c5c0000, + 0x4c600000, 0x59c4b805, 0x485fc856, 0x8c5cbd3a, + 0x04020005, 0x42000000, 0x0010ce6e, 0x0201f800, + 0x0010bfb3, 0x4a038805, 0x20000000, 0x0201f800, + 0x00101a3d, 0x4000c000, 0x0201f800, 0x00101968, + 0x4a038805, 0x04000000, 0x5c00c000, 0x5c00b800, + 0x1c01f000, 0x497a6a00, 0x4a026c00, 0x00000707, + 0x497a6801, 0x497a6808, 0x497a6809, 0x497a6806, + 0x497a6807, 0x497a6c0b, 0x497a680c, 0x59240400, + 0x8c00050a, 0x04000006, 0x5934080f, 0x59340010, + 0x80040540, 0x02020800, 0x0010032e, 0x4a026a04, + 0x00000100, 0x497a6a03, 0x59340402, 0x82000500, + 0x000000ff, 0x48026c02, 0x497a6c04, 0x497a6a05, + 0x497a6c05, 0x497a6811, 0x4d2c0000, 0x5934000d, + 0x49466c03, 0x80025d40, 0x04000004, 0x0201f800, + 0x0010059d, 0x497a680d, 0x5c025800, 0x59a80070, + 0x8c000502, 0x42000000, 0x00000010, 0x04020002, + 0x599c0401, 0x48026a0b, 0x599c0208, 0x48026c12, + 0x4a02680a, 0x00006000, 0x0201f000, 0x00104d11, + 0x42000000, 0x00000005, 0x80000d80, 0x0401f02c, + 0x0201f800, 0x00104a45, 0x04020017, 0x59a8021b, + 0x8c00050a, 0x04020010, 0x59340212, 0x82000500, + 0x0000ff00, 0x4803c857, 0x0400000b, 0x59340a00, + 0x8c040d1e, 0x02000000, 0x000202ca, 0x42000000, + 0x00000029, 0x42000800, 0x00001000, 0x492fc857, + 0x0401f017, 0x492fc857, 0x42000000, 0x00000028, + 0x0401f011, 0x8d0e1d02, 0x04020003, 0x8d0e1d00, + 0x04000004, 0x42000000, 0x00000004, 0x0401f00a, + 0x42000000, 0x00000029, 0x59340a00, 0x8c040d1e, + 0x04000005, 0x492fc857, 0x42000800, 0x00001000, + 0x0401f003, 0x492fc857, 0x80000d80, 0x4803c857, + 0x80028540, 0x1c01f000, 0x490fc857, 0x8d0e1d00, + 0x040207ed, 0x0201f800, 0x00104a1c, 0x040207e6, + 0x59340200, 0x8c00050e, 0x040007e3, 0x0201f000, + 0x000202ca, 0x4d480000, 0x4d4c0000, 0x592e9009, + 0x592e980a, 0x0201f800, 0x001048c9, 0x5c029800, + 0x5c029000, 0x040007bb, 0x0201f000, 0x000202ce, + 0x592c0207, 0x492fc857, 0x82000d80, 0x000007ff, + 0x04020006, 0x4a025c0b, 0x00000030, 0x42026800, + 0x0010cb7b, 0x0401f021, 0x82000c80, 0x000007f0, + 0x04021047, 0x81ac0400, 0x50000000, 0x80026d40, + 0x0400003a, 0x0201f800, 0x0010494d, 0x0402003a, + 0x592c040b, 0x8c00050a, 0x04020014, 0x592e600a, + 0x83300480, 0x00111584, 0x0400103c, 0x41580000, + 0x81300480, 0x04021039, 0x59300c07, 0x82040580, + 0x00000009, 0x04020038, 0x4a025a07, 0x00000000, + 0x497a5800, 0x59300009, 0x80000540, 0x0402001a, + 0x492e6009, 0x0401f012, 0x0201f800, 0x00020b7b, + 0x0400001b, 0x592c0207, 0x4936600a, 0x492e6009, + 0x4a026407, 0x00000009, 0x497a6016, 0x4a02601c, + 0x0010cfd1, 0x4932580a, 0x82000d80, 0x000007ff, + 0x04020003, 0x4a026016, 0x00008000, 0x42027000, + 0x00000043, 0x0201f800, 0x00020bc1, 0x80000580, + 0x0401f01f, 0x40000800, 0x58040000, 0x80000540, + 0x040207fd, 0x492c0800, 0x0401f019, 0x42000000, + 0x0000002c, 0x0401f015, 0x42000000, 0x00000028, + 0x0401f012, 0x830c0500, 0x00000003, 0x04000004, + 0x42000000, 0x00000004, 0x0401f00c, 0x42000000, + 0x00000029, 0x0401f009, 0x42000000, 0x00000008, + 0x0401f006, 0x82040580, 0x00000007, 0x040207fb, + 0x42000000, 0x00000005, 0x80000540, 0x1c01f000, + 0x492fc857, 0x592e8c07, 0x83440d80, 0x000007fc, + 0x04000004, 0x83440480, 0x000007f0, 0x0402101b, + 0x592e4408, 0x0201f800, 0x00105c82, 0x02000800, + 0x00104a7c, 0x04020015, 0x0201f800, 0x00104a2f, + 0x04020015, 0x0201f800, 0x00107ef8, 0x0400001f, + 0x83200400, 0x0010c10d, 0x50024800, 0x4926601c, + 0x4936600a, 0x492e6009, 0x4a026407, 0x0000000a, + 0x42027000, 0x00000040, 0x0201f800, 0x00020bc1, + 0x80000580, 0x0401f010, 0x42000000, 0x00000028, + 0x0401f00c, 0x0201f800, 0x00104a45, 0x040007fb, + 0x830c0d00, 0x00000003, 0x04000004, 0x42000000, + 0x00000004, 0x0401f003, 0x42000000, 0x00000029, + 0x80000540, 0x1c01f000, 0x42000000, 0x0000002c, + 0x0401f7fc, 0x492fc857, 0x592e4408, 0x4923c857, + 0x0201f800, 0x00105c82, 0x592c4208, 0x0400000e, + 0x42000000, 0x0000000e, 0x59240a00, 0x8c040d00, + 0x040001b1, 0x82200d00, 0x0000000f, 0x82040d80, + 0x00000008, 0x040201ac, 0x82200d00, 0x00000030, + 0x040001a9, 0x592e8c07, 0x4947c857, 0x83440c80, + 0x00000800, 0x42000000, 0x0000000a, 0x040211a2, + 0x4823c857, 0x82200500, 0x0000000f, 0x0c01f001, + 0x00104420, 0x001044ac, 0x001044fd, 0x00104508, + 0x00104513, 0x0010441c, 0x0010441c, 0x0010441c, + 0x00104520, 0x00104583, 0x001045a8, 0x0010441c, + 0x0010441c, 0x0010441c, 0x0010441c, 0x0010441c, + 0x4803c857, 0x42000000, 0x0000000c, 0x0401f18a, + 0x592c1009, 0x82081500, 0x00ffffff, 0x59240005, + 0x80084d80, 0x42000000, 0x00000010, 0x04000182, + 0x0201f800, 0x001049a9, 0x04000039, 0x4803c857, + 0x82004d80, 0x0000001d, 0x0402001a, 0x0201f800, + 0x00020864, 0x59340405, 0x4c000000, 0x0201f800, + 0x00104a1c, 0x5c000000, 0x04000004, 0x8c20450a, + 0x0400002b, 0x80000580, 0x44002800, 0x59340008, + 0x48002802, 0x59340009, 0x48002801, 0x59340006, + 0x48002804, 0x59340007, 0x48002803, 0x4200b000, + 0x00000005, 0x0201f800, 0x00109f12, 0x0401f193, + 0x4803c857, 0x82004d80, 0x0000001a, 0x04020003, + 0x40101000, 0x0401f163, 0x4803c857, 0x82004d80, + 0x0000001b, 0x04020003, 0x40181000, 0x0401f15d, + 0x4803c857, 0x82004d80, 0x0000001f, 0x0400015e, + 0x82004d80, 0x0000001c, 0x0400015b, 0x82004d80, + 0x00000019, 0x42000000, 0x0000000a, 0x0400014a, + 0x42000000, 0x0000000a, 0x04020161, 0x59a80070, + 0x8c000502, 0x0400001b, 0x0201f800, 0x00104a1c, + 0x04000018, 0x59340212, 0x82000500, 0x0000ff00, + 0x42001000, 0x00000010, 0x0402000c, 0x42001000, + 0x00000008, 0x59a8021b, 0x8c000506, 0x04020009, + 0x59340002, 0x82000500, 0x00ff0000, 0x82000580, + 0x00ff0000, 0x04000007, 0x0201f800, 0x00104d1c, + 0x42000000, 0x0000001c, 0x40181000, 0x04020131, + 0x0201f800, 0x00107ef8, 0x0400013b, 0x4926601c, + 0x4936600a, 0x492e6009, 0x4a026407, 0x00000001, + 0x8c20450a, 0x04000004, 0x592c0405, 0x8400055c, + 0x48025c05, 0x4c200000, 0x4d3c0000, 0x42027800, + 0x00001800, 0x0201f800, 0x0010ff80, 0x5c027800, + 0x5c004000, 0x8c204512, 0x0400000b, 0x599c0018, + 0x8c000518, 0x04000008, 0x592c000a, 0x82000500, + 0x00000380, 0x5934080a, 0x80040d40, 0x84040d54, + 0x4806680a, 0x417a7800, 0x0401f93d, 0x42000800, + 0x00000003, 0x0401f945, 0x42027000, 0x00000002, + 0x0201f800, 0x00020bc1, 0x80000580, 0x0401f133, + 0x0201f800, 0x00104a7c, 0x04020115, 0x0201f800, + 0x00104a22, 0x0400000c, 0x0201f800, 0x00104a1c, + 0x04020115, 0x4c600000, 0x4178c000, 0x42027800, + 0x00001800, 0x417a6000, 0x0201f800, 0x00101ce3, + 0x5c00c000, 0x59a80070, 0x8c000502, 0x0400001b, + 0x0201f800, 0x00104a1c, 0x04000018, 0x59340212, + 0x82000500, 0x0000ff00, 0x42001000, 0x00000010, + 0x0402000c, 0x42001000, 0x00000008, 0x59a8021b, + 0x8c000506, 0x04020009, 0x59340002, 0x82000500, + 0x00ff0000, 0x82000580, 0x00ff0000, 0x04000007, + 0x0201f800, 0x00104d1c, 0x42000000, 0x0000001c, + 0x40181000, 0x040200d7, 0x0201f800, 0x00107ef8, + 0x040000e1, 0x5934080a, 0x8c204512, 0x0400000c, + 0x599c0018, 0x8c000518, 0x04000009, 0x592c000a, + 0x82000500, 0x00000380, 0x82041500, 0xfffffc7f, + 0x80080d40, 0x84040d54, 0x0401f002, 0x84040d14, + 0x4806680a, 0x4926601c, 0x4936600a, 0x492e6009, + 0x4a026407, 0x00000001, 0x417a7800, 0x0401f8ec, + 0x42000800, 0x00000005, 0x0401f8f4, 0x42027000, + 0x00000003, 0x0201f800, 0x00020bc1, 0x80000580, + 0x0401f0e2, 0x0201f800, 0x00104a7c, 0x040200c4, + 0x0201f800, 0x00104a38, 0x040200c7, 0x0201f800, + 0x00109e0e, 0x040000b8, 0x80000580, 0x0401f0d7, + 0x0201f800, 0x00104a7c, 0x040200b9, 0x0201f800, + 0x00104a38, 0x040200bc, 0x0201f800, 0x00109969, + 0x040000ad, 0x80000580, 0x0401f0cc, 0x0201f800, + 0x00104a7c, 0x040200ae, 0x83444d80, 0x000007fe, + 0x42000000, 0x0000000a, 0x0402008f, 0x0201f800, + 0x00109e27, 0x040000a0, 0x80000580, 0x0401f0bf, + 0x82200500, 0x00000070, 0x04020005, 0x8c20450e, + 0x42000000, 0x0000000c, 0x04020083, 0x8c20450a, + 0x0400000e, 0x4d3c0000, 0x42027800, 0x00005000, + 0x8c20450e, 0x04020003, 0x853e7d56, 0x853e7d1c, + 0x82200500, 0x000004a0, 0x0201f800, 0x001049de, + 0x5c027800, 0x0401f0a5, 0x8c204508, 0x04020027, + 0x592c1009, 0x82081500, 0x00ffffff, 0x59240005, + 0x80084d80, 0x42000000, 0x00000010, 0x0400006a, + 0x0201f800, 0x001049a9, 0x0400002f, 0x4803c857, 0x82004d80, 0x0000001a, 0x04020003, 0x40101000, - 0x0401f163, 0x4803c857, 0x82004d80, 0x0000001b, - 0x04020003, 0x40181000, 0x0401f15d, 0x4803c857, - 0x82004d80, 0x0000001f, 0x0400015e, 0x82004d80, - 0x0000001c, 0x0400015b, 0x82004d80, 0x00000019, - 0x42000000, 0x0000000a, 0x0400014a, 0x42000000, - 0x0000000a, 0x04020161, 0x59a80070, 0x8c000502, - 0x0400001b, 0x0201f800, 0x0010491a, 0x04000018, - 0x59340212, 0x82000500, 0x0000ff00, 0x42001000, - 0x00000010, 0x0402000c, 0x42001000, 0x00000008, - 0x59a8021b, 0x8c000506, 0x04020009, 0x59340002, - 0x82000500, 0x00ff0000, 0x82000580, 0x00ff0000, - 0x04000007, 0x0201f800, 0x00104c17, 0x42000000, - 0x0000001c, 0x40181000, 0x04020131, 0x0201f800, - 0x00107cfe, 0x0400013b, 0x4926601c, 0x4936600a, - 0x492e6009, 0x4a026407, 0x00000001, 0x8c20450a, - 0x04000004, 0x592c0405, 0x8400055c, 0x48025c05, - 0x4c200000, 0x4d3c0000, 0x42027800, 0x00001800, - 0x0201f800, 0x0010fc72, 0x5c027800, 0x5c004000, - 0x8c204512, 0x0400000b, 0x599c0018, 0x8c000518, - 0x04000008, 0x592c000a, 0x82000500, 0x00000380, - 0x5934080a, 0x80040d40, 0x84040d54, 0x4806680a, - 0x417a7800, 0x0401f93d, 0x42000800, 0x00000003, - 0x0401f945, 0x42027000, 0x00000002, 0x0201f800, - 0x00020bc1, 0x80000580, 0x0401f133, 0x0201f800, - 0x0010497a, 0x04020115, 0x0201f800, 0x00104920, - 0x0400000c, 0x0201f800, 0x0010491a, 0x04020115, - 0x4c600000, 0x4178c000, 0x42027800, 0x00001800, - 0x417a6000, 0x0201f800, 0x00101cda, 0x5c00c000, - 0x59a80070, 0x8c000502, 0x0400001b, 0x0201f800, - 0x0010491a, 0x04000018, 0x59340212, 0x82000500, - 0x0000ff00, 0x42001000, 0x00000010, 0x0402000c, - 0x42001000, 0x00000008, 0x59a8021b, 0x8c000506, - 0x04020009, 0x59340002, 0x82000500, 0x00ff0000, - 0x82000580, 0x00ff0000, 0x04000007, 0x0201f800, - 0x00104c17, 0x42000000, 0x0000001c, 0x40181000, - 0x040200d7, 0x0201f800, 0x00107cfe, 0x040000e1, - 0x5934080a, 0x8c204512, 0x0400000c, 0x599c0018, - 0x8c000518, 0x04000009, 0x592c000a, 0x82000500, - 0x00000380, 0x82041500, 0xfffffc7f, 0x80080d40, - 0x84040d54, 0x0401f002, 0x84040d14, 0x4806680a, - 0x4926601c, 0x4936600a, 0x492e6009, 0x4a026407, - 0x00000001, 0x417a7800, 0x0401f8ec, 0x42000800, - 0x00000005, 0x0401f8f4, 0x42027000, 0x00000003, - 0x0201f800, 0x00020bc1, 0x80000580, 0x0401f0e2, - 0x0201f800, 0x0010497a, 0x040200c4, 0x0201f800, - 0x00104936, 0x040200c7, 0x0201f800, 0x00109bd6, - 0x040000b8, 0x80000580, 0x0401f0d7, 0x0201f800, - 0x0010497a, 0x040200b9, 0x0201f800, 0x00104936, - 0x040200bc, 0x0201f800, 0x00109731, 0x040000ad, - 0x80000580, 0x0401f0cc, 0x0201f800, 0x0010497a, - 0x040200ae, 0x83444d80, 0x000007fe, 0x42000000, - 0x0000000a, 0x0402008f, 0x0201f800, 0x00109bef, - 0x040000a0, 0x80000580, 0x0401f0bf, 0x82200500, - 0x00000070, 0x04020005, 0x8c20450e, 0x42000000, - 0x0000000c, 0x04020083, 0x8c20450a, 0x0400000e, - 0x4d3c0000, 0x42027800, 0x00005000, 0x8c20450e, - 0x04020003, 0x853e7d56, 0x853e7d1c, 0x82200500, - 0x000004a0, 0x0201f800, 0x001048de, 0x5c027800, - 0x0401f0a5, 0x8c204508, 0x04020027, 0x592c1009, - 0x82081500, 0x00ffffff, 0x59240005, 0x80084d80, - 0x42000000, 0x00000010, 0x0400006a, 0x0201f800, - 0x001048a9, 0x0400002f, 0x4803c857, 0x82004d80, - 0x0000001a, 0x04020003, 0x40101000, 0x0401f068, - 0x4803c857, 0x82004d80, 0x0000001b, 0x04020003, - 0x40181000, 0x0401f062, 0x4803c857, 0x82004d80, - 0x0000001f, 0x04000063, 0x82004d80, 0x0000001c, - 0x04000060, 0x82004d80, 0x00000019, 0x42000000, - 0x0000000a, 0x0400004f, 0x42000000, 0x0000000a, - 0x0401f066, 0x0201f800, 0x0010497a, 0x04020063, - 0x4d3c0000, 0x42027800, 0x00005000, 0x8c20450e, - 0x04020003, 0x853e7d56, 0x853e7d1c, 0x82200500, - 0x00000090, 0x0201f800, 0x001048c6, 0x5c027800, - 0x42000000, 0x0000000a, 0x0402003a, 0x0401f06a, - 0x836c0580, 0x00000003, 0x42000800, 0x00000007, - 0x04020006, 0x0201f800, 0x00109b7c, 0x04000007, - 0x80000580, 0x0401f064, 0x0201f800, 0x0010495c, - 0x04000059, 0x0401f05c, 0x0201f800, 0x0010495c, - 0x0400003c, 0x0401f058, 0x0201f800, 0x0010497a, - 0x0402003e, 0x836c0580, 0x00000003, 0x04020048, - 0x8c204508, 0x0400000a, 0x4c600000, 0x4178c000, + 0x0401f068, 0x4803c857, 0x82004d80, 0x0000001b, + 0x04020003, 0x40181000, 0x0401f062, 0x4803c857, + 0x82004d80, 0x0000001f, 0x04000063, 0x82004d80, + 0x0000001c, 0x04000060, 0x82004d80, 0x00000019, + 0x42000000, 0x0000000a, 0x0400004f, 0x42000000, + 0x0000000a, 0x0401f066, 0x0201f800, 0x00104a7c, + 0x04020063, 0x4d3c0000, 0x42027800, 0x00005000, + 0x8c20450e, 0x04020003, 0x853e7d56, 0x853e7d1c, + 0x82200500, 0x00000090, 0x0201f800, 0x001049c6, + 0x5c027800, 0x42000000, 0x0000000a, 0x0402003a, + 0x0401f06a, 0x836c0580, 0x00000003, 0x42000800, + 0x00000007, 0x04020006, 0x0201f800, 0x00109db4, + 0x04000007, 0x80000580, 0x0401f064, 0x0201f800, + 0x00104a5e, 0x04000059, 0x0401f05c, 0x0201f800, + 0x00104a5e, 0x0400003c, 0x0401f058, 0x0201f800, + 0x00104a7c, 0x0402003e, 0x836c0580, 0x00000003, + 0x04020048, 0x8c204508, 0x0400000a, 0x4c600000, + 0x4178c000, 0x42027800, 0x00001800, 0x417a6000, + 0x0201f800, 0x00101ce3, 0x5c00c000, 0x0401f047, + 0x0201f800, 0x00104a22, 0x0400000c, 0x0201f800, + 0x00104a1c, 0x04020030, 0x4c600000, 0x4178c000, 0x42027800, 0x00001800, 0x417a6000, 0x0201f800, - 0x00101cda, 0x5c00c000, 0x0401f047, 0x0201f800, - 0x00104920, 0x0400000c, 0x0201f800, 0x0010491a, - 0x04020030, 0x4c600000, 0x4178c000, 0x42027800, - 0x00001800, 0x417a6000, 0x0201f800, 0x00101cda, - 0x5c00c000, 0x480bc856, 0x0201f800, 0x001099cd, - 0x04000018, 0x80000580, 0x0401f037, 0x0401f7db, - 0x480bc857, 0x42000800, 0x00000019, 0x40001000, - 0x4200b000, 0x00000002, 0x0401f00a, 0x480bc857, - 0x40000800, 0x4200b000, 0x00000002, 0x0401f005, - 0x480bc857, 0x40000800, 0x4200b000, 0x00000001, - 0x480bc857, 0x42028000, 0x00000031, 0x0401f020, - 0x480bc857, 0x42000800, 0x00000003, 0x4200b000, - 0x00000001, 0x0401f7f7, 0x480bc857, 0x42000800, - 0x0000000a, 0x4200b000, 0x00000001, 0x0401f7f1, - 0x480bc857, 0x42000800, 0x00000009, 0x40001000, - 0x4200b000, 0x00000002, 0x0401f7ea, 0x480bc857, - 0x42000800, 0x00000007, 0x4200b000, 0x00000001, - 0x0401f7e4, 0x480bc857, 0x4200b000, 0x00000001, - 0x0401f7e0, 0x80028580, 0x4178b000, 0x82000540, - 0x00000001, 0x1c01f000, 0x4937c857, 0x5932680a, - 0x59341200, 0x813e79c0, 0x04000003, 0x84081540, - 0x0401f002, 0x84081500, 0x480a6a00, 0x1c01f000, - 0x40680800, 0x5932680a, 0x5c000000, 0x4c000000, - 0x4803c857, 0x4937c857, 0x82040580, 0x00000006, + 0x00101ce3, 0x5c00c000, 0x480bc856, 0x0201f800, + 0x00109c05, 0x04000018, 0x80000580, 0x0401f037, + 0x0401f7db, 0x480bc857, 0x42000800, 0x00000019, + 0x40001000, 0x4200b000, 0x00000002, 0x0401f00a, + 0x480bc857, 0x40000800, 0x4200b000, 0x00000002, + 0x0401f005, 0x480bc857, 0x40000800, 0x4200b000, + 0x00000001, 0x480bc857, 0x42028000, 0x00000031, + 0x0401f020, 0x480bc857, 0x42000800, 0x00000003, + 0x4200b000, 0x00000001, 0x0401f7f7, 0x480bc857, + 0x42000800, 0x0000000a, 0x4200b000, 0x00000001, + 0x0401f7f1, 0x480bc857, 0x42000800, 0x00000009, + 0x40001000, 0x4200b000, 0x00000002, 0x0401f7ea, + 0x480bc857, 0x42000800, 0x00000007, 0x4200b000, + 0x00000001, 0x0401f7e4, 0x480bc857, 0x4200b000, + 0x00000001, 0x0401f7e0, 0x80028580, 0x4178b000, + 0x82000540, 0x00000001, 0x1c01f000, 0x4937c857, + 0x5932680a, 0x59341200, 0x813e79c0, 0x04000003, + 0x84081540, 0x0401f002, 0x84081500, 0x480a6a00, + 0x1c01f000, 0x40680800, 0x5932680a, 0x5c000000, + 0x4c000000, 0x4803c857, 0x4937c857, 0x83340580, + 0x0010e23c, 0x04000030, 0x82040580, 0x00000006, 0x04020004, 0x42000000, 0x00000606, 0x0401f021, 0x82040580, 0x00000004, 0x04020004, 0x42000000, 0x00000404, 0x0401f01b, 0x82040580, 0x00000007, @@ -18977,18 +19092,18 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x41358800, 0x04000002, 0x41798800, 0x1c01f000, 0x5c000000, 0x4c000000, 0x4803c857, 0x4947c857, 0x481bc857, 0x83440480, 0x00000800, 0x04021057, - 0x83200400, 0x0010bdc7, 0x50024800, 0x59240009, + 0x83200400, 0x0010c10d, 0x50024800, 0x59240009, 0x83441480, 0x000007f0, 0x04001003, 0x80081400, - 0x0401f003, 0x83441400, 0x0010bf80, 0x50080000, + 0x0401f003, 0x83441400, 0x0010c280, 0x50080000, 0x80026d40, 0x04000005, 0x59340013, 0x80000130, 0x81200580, 0x04000018, 0x4c180000, 0x4d2c0000, 0x0201f800, 0x0010056e, 0x412e6800, 0x5c025800, 0x5c003000, 0x0400003d, 0x59242005, 0x812000f0, 0x80102540, 0x48126813, 0x59242207, 0x80102000, 0x48124a07, 0x45341000, 0x497a680d, 0x497a6810, - 0x497a680f, 0x497a680e, 0x4c180000, 0x0401fc89, + 0x497a680f, 0x497a680e, 0x4c180000, 0x0401fc86, 0x5c003000, 0x59340a12, 0x4c040000, 0x0201f800, - 0x00104fc6, 0x5c000800, 0x04000009, 0x82180500, + 0x001050f7, 0x5c000800, 0x04000009, 0x82180500, 0x00ffff00, 0x04000008, 0x59a8100f, 0x82081500, 0x00ffff00, 0x80080580, 0x04000003, 0x80000580, 0x0401f004, 0x82180500, 0x000000ff, 0x800000d0, @@ -19000,58 +19115,59 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x80180580, 0x04000003, 0x481bc857, 0x481a6802, 0x80000580, 0x1c01f000, 0x4803c856, 0x82000540, 0x00000001, 0x0401f7fc, 0x4947c857, 0x83440480, - 0x00000800, 0x04021019, 0x83200400, 0x0010bdc7, + 0x00000800, 0x04021019, 0x83200400, 0x0010c10d, 0x50024800, 0x59240009, 0x83441480, 0x000007f0, 0x04001003, 0x80081400, 0x0401f003, 0x83441400, - 0x0010bf80, 0x50080000, 0x80026d40, 0x0400000a, - 0x0401fb7a, 0x04020009, 0x8d0e1d02, 0x04000004, + 0x0010c280, 0x50080000, 0x80026d40, 0x0400000a, + 0x0401fb80, 0x04020009, 0x8d0e1d02, 0x04000004, 0x59340200, 0x8c00050e, 0x04000004, 0x82000540, 0x00000001, 0x1c01f000, 0x80000580, 0x0401f7fe, 0x5c000000, 0x4c000000, 0x4803c857, 0x4947c857, 0x0401f807, 0x42018800, 0x00000001, 0x04000003, 0x42018800, 0x00000000, 0x1c01f000, 0x4d2c0000, 0x4d300000, 0x83440480, 0x00000800, 0x04021024, - 0x83441400, 0x0010bf80, 0x50080000, 0x80026d40, + 0x83441400, 0x0010c280, 0x50080000, 0x80026d40, 0x0400001b, 0x45781000, 0x5934000d, 0x80025d40, 0x02020800, 0x0010059d, 0x59366011, 0x813261c0, 0x0400000e, 0x4c640000, 0x5930c800, 0x59325809, - 0x0201f800, 0x00109667, 0x02020800, 0x0010059d, + 0x0201f800, 0x0010989f, 0x02020800, 0x0010059d, 0x0201f800, 0x00020b9d, 0x82666540, 0x00000000, - 0x040207f6, 0x5c00c800, 0x0201f800, 0x00104c0c, + 0x040207f6, 0x5c00c800, 0x0201f800, 0x00104d11, 0x41365800, 0x0201f800, 0x00100595, 0x80000580, 0x5c026000, 0x5c025800, 0x1c01f000, 0x82000540, 0x00000001, 0x0401f7fb, 0x0201f800, 0x0002034c, 0x41358800, 0x04000002, 0x41798800, 0x1c01f000, 0x4c580000, 0x59cc0001, 0x4937c857, 0x82000500, 0x00ffffff, 0x48026802, 0x497a6c01, 0x497a6a01, - 0x59340200, 0x84000502, 0x48026a00, 0x4004b000, - 0x0201f800, 0x00104fc6, 0x0402001c, 0x59340403, - 0x82000580, 0x000007fe, 0x04000005, 0x59a8021b, - 0x8c00050a, 0x04020015, 0x0401f008, 0x59cc0408, - 0x8c000518, 0x04000011, 0x59cc0009, 0x48035028, - 0x59cc000a, 0x48035029, 0x59a80878, 0x8c040d3e, - 0x0402000a, 0x8058b1c0, 0x04020008, 0x59cc0207, - 0x80000540, 0x04020003, 0x42000000, 0x00000001, - 0x48038893, 0x48035012, 0x59cc0a09, 0x82040d00, - 0x00000010, 0x59cc0408, 0x82000500, 0x00000020, - 0x04000005, 0x84040d40, 0x59a8121b, 0x8408155a, - 0x480b521b, 0x5934000a, 0x82000500, 0xffffffee, - 0x80040540, 0x4802680a, 0x83cca400, 0x0000000b, - 0x8334ac00, 0x00000006, 0x4200b000, 0x00000002, - 0x0201f800, 0x0010bd5b, 0x83cca400, 0x0000000d, - 0x8334ac00, 0x00000008, 0x4200b000, 0x00000002, - 0x0201f800, 0x0010bd5b, 0x59cc0a18, 0x82040480, + 0x59340200, 0x82000500, 0xffffdffd, 0x48026a00, + 0x4004b000, 0x0201f800, 0x001050f7, 0x0402001c, + 0x59340403, 0x82000580, 0x000007fe, 0x04000005, + 0x59a8021b, 0x8c00050a, 0x04020015, 0x0401f008, + 0x59cc0408, 0x8c000518, 0x04000011, 0x59cc0009, + 0x48035028, 0x59cc000a, 0x48035029, 0x59a80878, + 0x8c040d3e, 0x0402000a, 0x8058b1c0, 0x04020008, + 0x59cc0207, 0x80000540, 0x04020003, 0x42000000, + 0x00000001, 0x48038893, 0x48035012, 0x59cc0a09, + 0x82040d00, 0x00000010, 0x59cc0408, 0x82000500, + 0x00000020, 0x04000005, 0x84040d40, 0x59a8121b, + 0x8408155a, 0x480b521b, 0x5934000a, 0x82000500, + 0xffffffee, 0x80040540, 0x4802680a, 0x83cca400, + 0x0000000b, 0x8334ac00, 0x00000006, 0x4200b000, + 0x00000002, 0x0201f800, 0x0010c086, 0x83cca400, + 0x0000000d, 0x8334ac00, 0x00000008, 0x4200b000, + 0x00000002, 0x0201f800, 0x0010c086, 0x59cc0a18, + 0x59a80006, 0x8c00050c, 0x04020015, 0x82040480, 0x00000800, 0x0402100c, 0x82040480, 0x00000400, 0x04001004, 0x42000800, 0x00000400, 0x0401f006, 0x82040480, 0x00000200, 0x04001003, 0x42000800, - 0x00000200, 0x42001000, 0x0010c89b, 0x58080201, + 0x00000200, 0x42001000, 0x0010cb9b, 0x58080201, 0x80041480, 0x04001002, 0x40000800, 0x48066a04, 0x59340403, 0x82000580, 0x000007fe, 0x04020003, - 0x59cc0a08, 0x48066a04, 0x0201f800, 0x00104c3a, + 0x59cc0a08, 0x48066a04, 0x0201f800, 0x00104d3f, 0x5c00b000, 0x1c01f000, 0x59a8021b, 0x4937c857, 0x8c000508, 0x04000008, 0x84000556, 0x4803c857, - 0x4803521b, 0x42001000, 0x00110694, 0x0201f800, - 0x001062f9, 0x59cc0207, 0x4803c857, 0x48026a05, + 0x4803521b, 0x42001000, 0x00110987, 0x0201f800, + 0x001064fe, 0x59cc0207, 0x4803c857, 0x48026a05, 0x59cc020a, 0x4803c857, 0x48026c05, 0x59341200, 0x599c0818, 0x5934180a, 0x4807c857, 0x480bc857, 0x480fc857, 0x59cc2006, 0x82102500, 0xff000000, @@ -19129,7 +19245,7 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x4862680f, 0x0401f006, 0x4860b800, 0x59340010, 0x812c0580, 0x04020002, 0x485e6810, 0x4a025a05, 0x00000103, 0x49425a07, 0x497a580a, 0x0201f800, - 0x00109824, 0x0201f800, 0x000203ef, 0x40625800, + 0x00109a5c, 0x0201f800, 0x000203ef, 0x40625800, 0x0401f7d7, 0x412cb800, 0x592e5800, 0x0401f7d4, 0x5c00b800, 0x5c00c000, 0x5c025800, 0x1c01f000, 0x4803c856, 0x41781800, 0x5934000f, 0x80025d40, @@ -19164,9 +19280,9 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x00000001, 0x5c025800, 0x1c01f000, 0x59340405, 0x4937c857, 0x4803c857, 0x8c000508, 0x1c01f000, 0x4933c857, 0x5930380a, 0x581c0200, 0x8400051a, - 0x48003a00, 0x1c01f000, 0x42026800, 0x0010c87b, + 0x48003a00, 0x1c01f000, 0x42026800, 0x0010cb7b, 0x497a680e, 0x42028800, 0x000007ff, 0x0201f800, - 0x001041e4, 0x4937c857, 0x4a026c00, 0x00000606, + 0x001042dd, 0x4937c857, 0x4a026c00, 0x00000606, 0x4a026802, 0x00ffffff, 0x4a026813, 0x00ffffff, 0x4a026a04, 0x00000200, 0x4a026c04, 0x00000002, 0x1c01f000, 0x0401f807, 0x42018800, 0x00000001, @@ -19175,7 +19291,7 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x8c00050e, 0x1c01f000, 0x5930000a, 0x50000000, 0x8c00050a, 0x1c01f000, 0x0401f807, 0x42018800, 0x00000001, 0x04000003, 0x42018800, 0x00000000, - 0x1c01f000, 0x4933c856, 0x0401f8df, 0x04000006, + 0x1c01f000, 0x4933c856, 0x0401f8e1, 0x04000006, 0x59340400, 0x82000d00, 0x000000ff, 0x82041580, 0x00000005, 0x1c01f000, 0x4803c856, 0x59a80a1b, 0x8c040d06, 0x0400000b, 0x5930081c, 0x58040200, @@ -19184,8 +19300,8 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x1c01f000, 0x0401f807, 0x42018800, 0x00000001, 0x04020003, 0x42018800, 0x00000000, 0x1c01f000, 0x4d340000, 0x4c580000, 0x59a80a1b, 0x8c040d06, - 0x04000019, 0x0201f800, 0x0010bd9f, 0x42000800, - 0x0010ccd1, 0x58041009, 0x82080400, 0x0000000e, + 0x04000019, 0x0201f800, 0x0010c0ca, 0x42000800, + 0x0010cfd1, 0x58041009, 0x82080400, 0x0000000e, 0x50026800, 0x813669c0, 0x0400000a, 0x58040200, 0x82000500, 0x00000003, 0x82000580, 0x00000003, 0x04020004, 0x59340200, 0x8c00051a, 0x04020006, @@ -19194,12 +19310,12 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x4937c857, 0x493fc857, 0x59341200, 0x813e79c0, 0x04000003, 0x8408155e, 0x0401f002, 0x8408151e, 0x480a6a00, 0x1c01f000, 0x4937c857, 0x0201f800, - 0x00101d49, 0x04000006, 0x59a80828, 0x42001000, - 0x001048a0, 0x0201f800, 0x00106433, 0x1c01f000, - 0x4937c857, 0x42001000, 0x001048a0, 0x0201f800, - 0x001062f9, 0x59a8121b, 0x84081512, 0x480b521b, + 0x00101d52, 0x04000006, 0x59a80828, 0x42001000, + 0x001049a0, 0x0201f800, 0x00106638, 0x1c01f000, + 0x4937c857, 0x42001000, 0x001049a0, 0x0201f800, + 0x001064fe, 0x59a8121b, 0x84081512, 0x480b521b, 0x1c01f000, 0x4008d000, 0x4020d800, 0x829d3c80, - 0x00000004, 0x409ce000, 0x0201f800, 0x001107e2, + 0x00000004, 0x409ce000, 0x0201f800, 0x00110ae2, 0x589c0000, 0x589c2001, 0x589c2802, 0x589c3003, 0x829d3c00, 0x00000004, 0x800001c0, 0x1c01f000, 0x4d340000, 0x406a6800, 0x0401f803, 0x5c026800, @@ -19207,9 +19323,9 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x04001002, 0x480a6c0b, 0x80000540, 0x02020800, 0x0002035a, 0x1c01f000, 0x4803c857, 0x4947c857, 0x4c300000, 0x82006500, 0x00000030, 0x04000006, - 0x4c000000, 0x0201f800, 0x00109ad9, 0x5c000000, - 0x0402000b, 0x8c00050e, 0x04000006, 0x0401f8a7, - 0x04020007, 0x4937c857, 0x41240800, 0x0401f8bb, + 0x4c000000, 0x0201f800, 0x00109d11, 0x5c000000, + 0x0402000b, 0x8c00050e, 0x04000006, 0x0401f8a9, + 0x04020007, 0x4937c857, 0x41240800, 0x0401f8bd, 0x80000580, 0x5c006000, 0x1c01f000, 0x82000540, 0x00000001, 0x0401f7fc, 0x4803c857, 0x4c580000, 0x4d440000, 0x40001000, 0x80000d80, 0x4200b000, @@ -19218,75 +19334,76 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x80040800, 0x8058b040, 0x040207f7, 0x8c081514, 0x04000007, 0x84081514, 0x4200b000, 0x00000001, 0x42000800, 0x000007fc, 0x0401f7ef, 0x4d300000, - 0x4d400000, 0x4d240000, 0x42028800, 0x0000ffff, - 0x42026000, 0x0011120c, 0x497a600a, 0x417a4800, - 0x4926601c, 0x42028000, 0x00000029, 0x0201f800, - 0x00106c3c, 0x4df00000, 0x0201f800, 0x00110053, - 0x0201f800, 0x00110623, 0x5c03e000, 0x02000800, - 0x00106c29, 0x5c024800, 0x5c028000, 0x5c026000, - 0x5c028800, 0x5c00b000, 0x1c01f000, 0x0401f807, - 0x42018800, 0x00000001, 0x04000003, 0x42018800, - 0x00000000, 0x1c01f000, 0x4c5c0000, 0x59340400, + 0x4d400000, 0x4d240000, 0x0401fba2, 0x42028800, + 0x0000ffff, 0x42026000, 0x0011152c, 0x4a02600a, + 0x0010e23c, 0x417a4800, 0x4926601c, 0x42028000, + 0x00000029, 0x0201f800, 0x00106e41, 0x4df00000, + 0x0201f800, 0x00110363, 0x0201f800, 0x00110916, + 0x5c03e000, 0x02000800, 0x00106e2e, 0x5c024800, + 0x5c028000, 0x5c026000, 0x5c028800, 0x5c00b000, + 0x1c01f000, 0x0401f807, 0x42018800, 0x00000001, + 0x04000003, 0x42018800, 0x00000000, 0x1c01f000, + 0x4c5c0000, 0x59340400, 0x8200bd80, 0x00000606, + 0x5c00b800, 0x1c01f000, 0x4c5c0000, 0x59340400, + 0x8200bd80, 0x00000404, 0x5c00b800, 0x1c01f000, + 0x0401f807, 0x42018800, 0x00000001, 0x04000003, + 0x42018800, 0x00000000, 0x1c01f000, 0x4c5c0000, + 0x59340400, 0x8200bd80, 0x00000404, 0x04000003, 0x8200bd80, 0x00000606, 0x5c00b800, 0x1c01f000, - 0x4c5c0000, 0x59340400, 0x8200bd80, 0x00000404, - 0x5c00b800, 0x1c01f000, 0x0401f807, 0x42018800, - 0x00000001, 0x04000003, 0x42018800, 0x00000000, - 0x1c01f000, 0x4c5c0000, 0x59340400, 0x8200bd80, - 0x00000404, 0x04000003, 0x8200bd80, 0x00000606, - 0x5c00b800, 0x1c01f000, 0x4c5c0000, 0x4c600000, - 0x59340400, 0x8200bd00, 0x0000ff00, 0x825cc580, - 0x00000400, 0x04000003, 0x825cc580, 0x00000600, - 0x5c00c000, 0x5c00b800, 0x1c01f000, 0x4c5c0000, - 0x59340400, 0x82000500, 0x000000ff, 0x8200bd80, - 0x00000003, 0x04000003, 0x8200bd80, 0x00000005, - 0x5c00b800, 0x1c01f000, 0x5c000000, 0x4c000000, - 0x4803c857, 0x4c5c0000, 0x59340400, 0x82000500, - 0x0000ff00, 0x8400b9c0, 0x805c0580, 0x4937c857, - 0x4803c857, 0x48026c00, 0x5c00b800, 0x1c01f000, - 0x4c040000, 0x4c080000, 0x592c0208, 0x8c00050c, - 0x0400000f, 0x592e8c07, 0x82000500, 0x00000080, - 0x84000548, 0x4d3c0000, 0x42027800, 0x00001000, - 0x0401ff5e, 0x5c027800, 0x82000540, 0x00000001, - 0x5c001000, 0x5c000800, 0x1c01f000, 0x80000580, - 0x0401f7fc, 0x59340013, 0x80024130, 0x83224c00, - 0x0010bdc7, 0x51264800, 0x812649c0, 0x02000800, - 0x0010032e, 0x1c01f000, 0x83440c80, 0x00000800, - 0x04021013, 0x83200400, 0x0010bdc7, 0x50024800, - 0x59240009, 0x83440c80, 0x000007f0, 0x04001003, - 0x80040c00, 0x0401f003, 0x83440c00, 0x0010bf80, - 0x50040000, 0x80026d40, 0x04000005, 0x59340013, - 0x80000130, 0x81200580, 0x1c01f000, 0x82000540, - 0x00000001, 0x0401f7fd, 0x4937c857, 0x4c580000, - 0x4d440000, 0x59368c03, 0x83441480, 0x000007f0, - 0x04021003, 0x0401fc13, 0x0401f00d, 0x58040009, - 0x80080c00, 0x50040000, 0x81340580, 0x02020800, - 0x0010032e, 0x4d2c0000, 0x45780800, 0x41365800, - 0x0201f800, 0x00100594, 0x5c025800, 0x80000580, - 0x5c028800, 0x5c00b000, 0x1c01f000, 0x592c040c, - 0x82000500, 0x0000e000, 0x82000580, 0x00006000, - 0x04000026, 0x836c0580, 0x00000003, 0x04000016, - 0x836c0580, 0x00000002, 0x0402011f, 0x59a8021b, - 0x82000d00, 0x00000038, 0x04020005, 0x59a80813, - 0x800409c0, 0x0400000c, 0x0401f117, 0x82000d00, - 0x00000003, 0x82040d80, 0x00000003, 0x04020112, - 0x82000d00, 0x00000028, 0x04020003, 0x8c00050c, - 0x0400010d, 0x592e4408, 0x83224500, 0x000000ff, - 0x0201f800, 0x00105acb, 0x040200da, 0x592c100b, - 0x82080500, 0xff000000, 0x040200e5, 0x59240005, - 0x80080580, 0x040000df, 0x592c0c0c, 0x82040d00, - 0x0000e000, 0x82040480, 0x00008000, 0x040210df, - 0x592e8c07, 0x83440480, 0x00000800, 0x04001014, - 0x83440580, 0x0000ffff, 0x040200c3, 0x800409c0, - 0x04020111, 0x592c240a, 0x82100500, 0xffffff00, - 0x040200c9, 0x480bc857, 0x4813c857, 0x592c000e, - 0x82000480, 0x00000841, 0x040210cf, 0x42027000, - 0x00000053, 0x417a6800, 0x0401f09b, 0x800409c0, - 0x04020101, 0x41784000, 0x0401feb3, 0x040200e8, - 0x59342204, 0x592c000e, 0x80100480, 0x040010c2, + 0x4c5c0000, 0x4c600000, 0x59340400, 0x8200bd00, + 0x0000ff00, 0x825cc580, 0x00000400, 0x04000003, + 0x825cc580, 0x00000600, 0x5c00c000, 0x5c00b800, + 0x1c01f000, 0x4c5c0000, 0x59340400, 0x82000500, + 0x000000ff, 0x8200bd80, 0x00000003, 0x04000003, + 0x8200bd80, 0x00000005, 0x5c00b800, 0x1c01f000, + 0x5c000000, 0x4c000000, 0x4803c857, 0x4c5c0000, + 0x59340400, 0x82000500, 0x0000ff00, 0x8400b9c0, + 0x805c0580, 0x4937c857, 0x4803c857, 0x48026c00, + 0x5c00b800, 0x1c01f000, 0x4c040000, 0x4c080000, + 0x592c0208, 0x8c00050c, 0x0400000f, 0x592e8c07, + 0x82000500, 0x00000080, 0x84000548, 0x4d3c0000, + 0x42027800, 0x00001000, 0x0401ff5c, 0x5c027800, + 0x82000540, 0x00000001, 0x5c001000, 0x5c000800, + 0x1c01f000, 0x80000580, 0x0401f7fc, 0x59340013, + 0x80024130, 0x83224c00, 0x0010c10d, 0x51264800, + 0x812649c0, 0x02000800, 0x0010032e, 0x1c01f000, + 0x83440c80, 0x00000800, 0x04021013, 0x83200400, + 0x0010c10d, 0x50024800, 0x59240009, 0x83440c80, + 0x000007f0, 0x04001003, 0x80040c00, 0x0401f003, + 0x83440c00, 0x0010c280, 0x50040000, 0x80026d40, + 0x04000005, 0x59340013, 0x80000130, 0x81200580, + 0x1c01f000, 0x82000540, 0x00000001, 0x0401f7fd, + 0x4937c857, 0x4c580000, 0x4d440000, 0x59368c03, + 0x83441480, 0x000007f0, 0x04021003, 0x0401fc0d, + 0x0401f00d, 0x58040009, 0x80080c00, 0x50040000, + 0x81340580, 0x02020800, 0x0010032e, 0x4d2c0000, + 0x45780800, 0x41365800, 0x0201f800, 0x00100594, + 0x5c025800, 0x80000580, 0x5c028800, 0x5c00b000, + 0x1c01f000, 0x592c040c, 0x82000500, 0x0000e000, + 0x82000580, 0x00006000, 0x04000026, 0x836c0580, + 0x00000003, 0x04000016, 0x836c0580, 0x00000002, + 0x04020122, 0x59a8021b, 0x82000d00, 0x00000038, + 0x04020005, 0x59a80813, 0x800409c0, 0x0400000c, + 0x0401f11a, 0x82000d00, 0x00000003, 0x82040d80, + 0x00000003, 0x04020115, 0x82000d00, 0x00000028, + 0x04020003, 0x8c00050c, 0x04000110, 0x592e4408, + 0x83224500, 0x000000ff, 0x0201f800, 0x00105c82, + 0x040200dd, 0x592c100b, 0x82080500, 0xff000000, + 0x040200e8, 0x59240005, 0x80080580, 0x040000e2, + 0x592c0c0c, 0x82040d00, 0x0000e000, 0x82040480, + 0x00008000, 0x040210e2, 0x592e8c07, 0x83440480, + 0x00000800, 0x04001016, 0x83440580, 0x0000ffff, + 0x040200c6, 0x800409c0, 0x04020114, 0x592c240a, + 0x82100500, 0xffffff00, 0x040200cc, 0x480bc857, + 0x4813c857, 0x592c000e, 0x82000480, 0x00000841, + 0x040210d2, 0x42027000, 0x00000053, 0x0401faa9, + 0x42026800, 0x0010e23c, 0x0401f09b, 0x800409c0, + 0x04020102, 0x41784000, 0x0401feaf, 0x040200e9, + 0x59342204, 0x592c000e, 0x80100480, 0x040010c3, 0x42027000, 0x00000053, 0x592c240a, 0x82100500, - 0xffffff00, 0x040200b0, 0x4813c857, 0x592c000d, + 0xffffff00, 0x040200b1, 0x4813c857, 0x592c000d, 0x800001c0, 0x04000085, 0x82100580, 0x00000004, - 0x040000a6, 0x82100580, 0x00000051, 0x040000a3, + 0x040000a7, 0x82100580, 0x00000051, 0x040000a4, 0x82100580, 0x00000003, 0x04000016, 0x82100580, 0x00000020, 0x0400004c, 0x82100580, 0x00000024, 0x04000043, 0x82100580, 0x00000021, 0x04000043, @@ -19294,937 +19411,954 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x00000052, 0x04000032, 0x82100580, 0x00000005, 0x0402006d, 0x42027000, 0x00000001, 0x0401f01b, 0x42027000, 0x00000002, 0x59a80070, 0x8c000502, - 0x04000016, 0x0401fef1, 0x04000014, 0x59340212, + 0x04000016, 0x0401feef, 0x04000014, 0x59340212, 0x82000500, 0x0000ff00, 0x42001000, 0x00000010, - 0x0402000c, 0x59a8021b, 0x8c000506, 0x04020072, + 0x0402000c, 0x59a8021b, 0x8c000506, 0x04020073, 0x42001000, 0x00000008, 0x59340002, 0x82000500, 0x00ff0000, 0x82000580, 0x00ff0000, 0x04000003, - 0x0401f9db, 0x04020068, 0x0201f800, 0x00107cfe, - 0x04000087, 0x4a026407, 0x00000010, 0x4926601c, + 0x0401f9dc, 0x04020069, 0x0201f800, 0x00107ef8, + 0x04000088, 0x4a026407, 0x00000010, 0x4926601c, 0x4936600a, 0x42000800, 0x00000003, 0x83380580, 0x00000002, 0x04000003, 0x42000800, 0x0000000b, - 0x0201f800, 0x001044f1, 0x0401f046, 0x42027000, + 0x0201f800, 0x001045ea, 0x0401f046, 0x42027000, 0x00000000, 0x0401f003, 0x42027000, 0x00000004, - 0x0401fee2, 0x04020079, 0x0401f037, 0x42027000, + 0x0401fee0, 0x0402007a, 0x0401f037, 0x42027000, 0x00000033, 0x0401f006, 0x42027000, 0x00000005, - 0x0401f003, 0x42027000, 0x00000003, 0x0401fece, - 0x0402006e, 0x59a80070, 0x8c000502, 0x04000016, - 0x0401feb6, 0x04000014, 0x59340212, 0x82000500, + 0x0401f003, 0x42027000, 0x00000003, 0x0401fecc, + 0x0402006f, 0x59a80070, 0x8c000502, 0x04000016, + 0x0401feb4, 0x04000014, 0x59340212, 0x82000500, 0x0000ff00, 0x42001000, 0x00000010, 0x0402000c, - 0x59a8021b, 0x8c000506, 0x04020037, 0x42001000, + 0x59a8021b, 0x8c000506, 0x04020038, 0x42001000, 0x00000008, 0x59340002, 0x82000500, 0x00ff0000, - 0x82000580, 0x00ff0000, 0x04000003, 0x0401f9a0, - 0x0402002d, 0x0201f800, 0x00107cfe, 0x0400004c, + 0x82000580, 0x00ff0000, 0x04000003, 0x0401f9a1, + 0x0402002e, 0x0201f800, 0x00107ef8, 0x0400004d, 0x4a026407, 0x00000010, 0x4926601c, 0x4936600a, 0x42000800, 0x00000005, 0x83380580, 0x00000003, 0x04000003, 0x42000800, 0x00000009, 0x0201f800, - 0x001044f1, 0x0401f00b, 0x82102580, 0x00000011, - 0x04020034, 0x0201f800, 0x00107cfe, 0x04000038, + 0x001045ea, 0x0401f00b, 0x82102580, 0x00000011, + 0x04020035, 0x0201f800, 0x00107ef8, 0x04000039, 0x4a026407, 0x00000010, 0x4926601c, 0x4936600a, - 0x492e6009, 0x49325809, 0x813669c0, 0x04000007, - 0x592c0c0c, 0x8c040d18, 0x04000004, 0x59340200, - 0x84000514, 0x48026a00, 0x0201f800, 0x00020bc1, - 0x80000580, 0x1c01f000, 0x82000540, 0x00000001, - 0x0401f7fd, 0x42001000, 0x0000000a, 0x0401f01b, - 0x42001000, 0x0000000e, 0x0401f018, 0x42001000, - 0x00000010, 0x0401f015, 0x42001000, 0x00000016, - 0x0401f012, 0x42001000, 0x00000017, 0x0401f00f, - 0x42001000, 0x00000018, 0x0401f00c, 0x42001000, - 0x0000001b, 0x0401f009, 0x42001000, 0x0000001e, - 0x0401f006, 0x42001000, 0x00000024, 0x0401f003, - 0x42001000, 0x00000020, 0x42000800, 0x00000019, - 0x42028000, 0x00000031, 0x0401f7dc, 0x42000800, - 0x00000003, 0x0401f003, 0x42000800, 0x0000000a, - 0x41781000, 0x0401f7f7, 0x42000800, 0x00000009, - 0x59341400, 0x0401f7f3, 0x42028000, 0x00000008, - 0x0401f005, 0x42000800, 0x00000007, 0x416c1000, - 0x0401f7ec, 0x41780800, 0x41781000, 0x0401f7c7, - 0x42028000, 0x00000000, 0x0401f7fb, 0x82004d80, - 0x0000001d, 0x02000800, 0x0010032e, 0x82004d80, - 0x0000001a, 0x04020004, 0x40101000, 0x40000800, - 0x0401f7dc, 0x82004d80, 0x0000001b, 0x04020003, - 0x40181000, 0x0401f7fa, 0x82004d80, 0x0000001c, - 0x040007f7, 0x82004d80, 0x00000019, 0x040007b2, - 0x0401f7d6, 0x592e6009, 0x0201f800, 0x00109acc, - 0x040007b3, 0x59300c07, 0x82040580, 0x00000011, - 0x040207d6, 0x592c0c0c, 0x82041500, 0x0000e000, - 0x82080580, 0x00006000, 0x04000024, 0x83440580, - 0x0000ffff, 0x04020005, 0x5932680a, 0x813669c0, - 0x0400000e, 0x0401f7c9, 0x592c100b, 0x82081500, - 0x00ffffff, 0x41784000, 0x0401fd9b, 0x040207d0, - 0x5930000a, 0x800001c0, 0x04000003, 0x81340580, - 0x040207be, 0x4936600a, 0x42000800, 0x00000840, - 0x813669c0, 0x04000002, 0x59340a04, 0x592c000e, - 0x80040480, 0x040017a0, 0x59300a03, 0x82040580, - 0x00000007, 0x040207b1, 0x492e6009, 0x42027000, - 0x00000054, 0x0401f771, 0x0201f800, 0x0010b3a3, - 0x040007b4, 0x0401f7a9, 0x492fc857, 0x592e6009, - 0x83300580, 0xffffffff, 0x04020047, 0x592c0208, - 0x8c000500, 0x04020083, 0x8d0e1d0e, 0x04020069, - 0x592e8c07, 0x83440480, 0x00000800, 0x0402103b, - 0x592c380b, 0x821c3d00, 0x00ffffff, 0x0201f800, - 0x00101f66, 0x04020041, 0x49265802, 0x41784000, - 0x592c100a, 0x82081500, 0x00ffffff, 0x0401fd66, - 0x0402005b, 0x592e6014, 0x4933c857, 0x83300580, - 0xffffffff, 0x0400001b, 0x0201f800, 0x00109acc, - 0x04000035, 0x591c1407, 0x800811c0, 0x04000015, - 0x592c040e, 0x591c0a02, 0x80040580, 0x04020011, - 0x591c000a, 0x800001c0, 0x04020007, 0x591c0827, - 0x59340002, 0x80040580, 0x82000500, 0x00ffffff, - 0x0401f002, 0x81340580, 0x04020006, 0x82080580, - 0x00000007, 0x04020038, 0x4a023c03, 0x00000024, - 0x59240005, 0x592c080a, 0x82041500, 0x00ffffff, - 0x80081580, 0x0400000f, 0x80040932, 0x82040580, - 0x00000042, 0x0402000e, 0x49365803, 0x0401f908, - 0x80000580, 0x1c01f000, 0x42001000, 0x0000000a, - 0x0401f00f, 0x42001000, 0x00000010, 0x0401f00c, - 0x42001000, 0x00000014, 0x0401f009, 0x42001000, - 0x00000017, 0x0401f006, 0x42001000, 0x00000018, - 0x0401f003, 0x42001000, 0x0000003c, 0x492fc857, - 0x480bc857, 0x42000800, 0x00000019, 0x42028000, - 0x00000031, 0x82000540, 0x00000001, 0x0401f7e6, - 0x492fc857, 0x4803c857, 0x480bc857, 0x40000800, - 0x0401f7f7, 0x492fc857, 0x42000800, 0x0000000a, - 0x41781000, 0x0401f7f2, 0x41780800, 0x41781000, - 0x0401f7f1, 0x42000800, 0x0000001e, 0x0401f7f9, - 0x42000800, 0x00000001, 0x0401f7f6, 0x82004d80, - 0x0000001d, 0x02000800, 0x0010032e, 0x82004d80, - 0x0000001a, 0x04020003, 0x40101000, 0x0401f7e5, - 0x82004d80, 0x0000001b, 0x04020003, 0x40181000, - 0x0401f7e0, 0x82004d80, 0x0000001c, 0x040007dd, - 0x82004d80, 0x00000019, 0x040007da, 0x0401f7de, - 0x0201f800, 0x0010b496, 0x42028000, 0x00000000, - 0x0401f7de, 0x5c000000, 0x4c000000, 0x4803c857, - 0x5930200a, 0x801021c0, 0x04000035, 0x58101400, - 0x4813c857, 0x480bc857, 0x82081d00, 0x000000ff, - 0x59300c03, 0x82040580, 0x00000008, 0x04000022, - 0x82040580, 0x0000000a, 0x04000017, 0x82040580, - 0x0000000c, 0x04000010, 0x82040580, 0x00000002, - 0x04000019, 0x82040580, 0x00000001, 0x04000012, - 0x82040580, 0x00000003, 0x0400000b, 0x82040580, - 0x00000005, 0x04000004, 0x82040580, 0x00000033, - 0x04020017, 0x820c0580, 0x00000009, 0x0400000d, - 0x0401f013, 0x820c0580, 0x00000005, 0x04000009, - 0x0401f00f, 0x820c0580, 0x0000000b, 0x04000005, - 0x0401f00b, 0x820c0580, 0x00000003, 0x04020008, - 0x82081d00, 0xffffff00, 0x840c01c0, 0x800c0540, - 0x4807c857, 0x4803c857, 0x48002400, 0x1c01f000, - 0x0401f807, 0x42018800, 0x00000001, 0x04020003, - 0x42018800, 0x00000000, 0x1c01f000, 0x599c0017, - 0x8c00050a, 0x04000003, 0x80000580, 0x1c01f000, - 0x59a8021b, 0x82000500, 0x00000028, 0x04000008, - 0x42028800, 0x000007fd, 0x417a4000, 0x0401fd73, - 0x04020003, 0x5934000a, 0x8c000504, 0x1c01f000, - 0x4d300000, 0x5934000e, 0x80026540, 0x04000006, - 0x0201f800, 0x0010669f, 0x02000800, 0x00106877, - 0x497a680e, 0x5c026000, 0x1c01f000, 0x4d440000, - 0x4d340000, 0x80000580, 0x40001800, 0x40028800, - 0x82080580, 0x00000008, 0x04020003, 0x42001800, - 0x00000001, 0x0201f800, 0x0002034c, 0x0402000a, - 0x0401fcf6, 0x04020008, 0x800c19c0, 0x04000004, - 0x59340405, 0x8c000508, 0x04000003, 0x80081040, - 0x04000009, 0x81468800, 0x83440480, 0x00000800, - 0x040017f1, 0x80000580, 0x5c026800, 0x5c028800, - 0x1c01f000, 0x82000540, 0x00000001, 0x5c026800, - 0x5c028800, 0x1c01f000, 0x42000800, 0x00000008, - 0x59bc00e4, 0x8c000524, 0x0402002e, 0x59a8021b, - 0x8c000508, 0x0402002b, 0x5934100a, 0x82081500, - 0x0000e000, 0x41781800, 0x82080580, 0x00000000, - 0x04000006, 0x800c1800, 0x82080580, 0x00002000, - 0x04000002, 0x800c1800, 0x42007000, 0x0010c89b, - 0x58380401, 0x8c000504, 0x04000007, 0x820c2c80, - 0x00000003, 0x04021017, 0x820c0400, 0x00104c6e, - 0x0401f013, 0x41782000, 0x59342a04, 0x82140480, - 0x00000800, 0x04021006, 0x80102000, 0x82140480, - 0x00000400, 0x04021002, 0x80102000, 0x800c00c2, - 0x800c0400, 0x80100400, 0x82002c80, 0x00000006, - 0x04021004, 0x82000400, 0x00104c71, 0x50000800, - 0x48066c04, 0x1c01f000, 0x00000002, 0x00000004, - 0x00000008, 0x00002802, 0x00001402, 0x00000a02, - 0x00001402, 0x00000a02, 0x00000502, 0x59a80853, - 0x800409c0, 0x04020005, 0x492f5052, 0x492f5053, - 0x0201f000, 0x00107c34, 0x492c0800, 0x492f5053, - 0x1c01f000, 0x5934000f, 0x41784000, 0x80001540, - 0x04000010, 0x58080205, 0x82000500, 0x000000ff, - 0x82000580, 0x00000012, 0x04000004, 0x82000580, - 0x00000060, 0x04020004, 0x5808020d, 0x80040580, - 0x04000006, 0x58080000, 0x40084000, 0x0401f7f0, - 0x82000540, 0x00000001, 0x1c01f000, 0x4a033011, - 0x00000000, 0x4a03b104, 0x80000000, 0x4a03b104, - 0x60000001, 0x497b3016, 0x497b3017, 0x1c01f000, - 0x599c0018, 0x4803c856, 0x497b3014, 0x497b3015, - 0x82000500, 0x0000000f, 0x48033012, 0x04000009, - 0x599c0216, 0x82000500, 0x0000ffff, 0x04020003, - 0x42000000, 0x00000002, 0x48033013, 0x850e1d62, - 0x1c01f000, 0x0401ffef, 0x4a03c826, 0x00000004, - 0x599c0209, 0x80000540, 0x0400001e, 0x599c0207, - 0x80000540, 0x04000007, 0x800000cc, 0x599c080d, - 0x80040400, 0x4803b100, 0x497bb102, 0x59d80101, - 0x599c000d, 0x4803b100, 0x599c000e, 0x4803b101, - 0x599c0207, 0x80000540, 0x04020002, 0x497bb102, - 0x599c0a09, 0x82040540, 0x00400000, 0x4803b103, - 0x4a03b109, 0x00000005, 0x4a03b104, 0x10000001, - 0x8d0e1d22, 0x04020004, 0x4a033011, 0x00000001, - 0x1c01f000, 0x8d0e1d20, 0x04020004, 0x4a033011, - 0x00000002, 0x0401f7fb, 0x4a033011, 0x00000003, - 0x0401f7f8, 0x592c0205, 0x492fc857, 0x80000540, - 0x04000008, 0x42034000, 0x0010c7ff, 0x59a1d806, - 0x80edd9c0, 0x02000800, 0x0010032e, 0x0401f007, - 0x0201f800, 0x0010a09b, 0x02020800, 0x0010032e, - 0x5931d82a, 0x58ef400a, 0x58ec0008, 0x800001c0, - 0x02000800, 0x0010032e, 0x0801f800, 0x1c01f000, - 0x40680800, 0x5c000000, 0x4c000000, 0x4803c857, - 0x492fc857, 0x4943c857, 0x4807c857, 0x4a025a05, - 0x00000103, 0x49425a07, 0x48065a09, 0x4a025c07, - 0x0000ffff, 0x813261c0, 0x04000003, 0x59300402, - 0x48025c07, 0x592c0209, 0x8c000512, 0x04020008, - 0x832c0400, 0x0000000a, 0x04011000, 0x4803c840, - 0x4a03c842, 0x0000000b, 0x04011000, 0x1c01f000, - 0x40680000, 0x4c540000, 0x4c580000, 0x4c5c0000, - 0x4d2c0000, 0x4000b800, 0x0201f800, 0x0010bd9f, - 0x4178a800, 0x0201f800, 0x0010056e, 0x040000aa, - 0x04011000, 0x485fc857, 0x4943c857, 0x4923c857, - 0x832c0400, 0x00000005, 0x4803c840, 0x4a03c842, - 0x00000010, 0x40000000, 0x040117ff, 0x412c7000, - 0x4a025805, 0x00000132, 0x497a5806, 0x805cb9c0, - 0x04020071, 0x832e5c00, 0x00000008, 0x417a4000, - 0x42024800, 0x0010ccd1, 0x41786800, 0x59240a00, - 0x82040500, 0x0000000f, 0x0c01f001, 0x00104d50, - 0x00104d50, 0x00104d50, 0x00104d50, 0x00104d50, - 0x00104d50, 0x00104d50, 0x00104d47, 0x00104d50, - 0x00104d50, 0x00104d50, 0x00104d50, 0x00104d50, - 0x00104d50, 0x00104d50, 0x00104d50, 0x8054a800, - 0x812241c0, 0x04020007, 0x59240805, 0x805c00f0, - 0x80040d40, 0x48065800, 0x812e5800, 0x0401f03f, - 0x82340500, 0x00000003, 0x0c01f001, 0x00104d57, - 0x00104d62, 0x00104d6e, 0x00104d7a, 0x83200580, - 0x00000001, 0x04020004, 0x42002000, 0x00000001, - 0x0401f02a, 0x83200480, 0x00000020, 0x04001026, - 0x80346800, 0x0401f024, 0x83200580, 0x00000021, - 0x04020005, 0x812e5800, 0x42002000, 0x00000001, - 0x0401f01e, 0x83200480, 0x00000040, 0x0400101a, - 0x80346800, 0x0401f018, 0x83200580, 0x00000041, - 0x04020005, 0x812e5800, 0x42002000, 0x00000001, - 0x0401f012, 0x83200480, 0x00000060, 0x0400100e, - 0x80346800, 0x0401f00c, 0x83200580, 0x00000061, - 0x04020005, 0x812e5800, 0x42002000, 0x00000001, - 0x0401f006, 0x83200480, 0x0000007f, 0x04001002, - 0x80346800, 0x801020c2, 0x82040500, 0x00000007, - 0x82000580, 0x00000007, 0x04020004, 0x592c0000, - 0x80100540, 0x48025800, 0x83264c00, 0x0000000b, - 0x81224000, 0x8058b040, 0x040207a1, 0x8054a9c0, - 0x403a5800, 0x0400002e, 0x0201f800, 0x0010bd9f, + 0x492e6009, 0x49325809, 0x83340580, 0x0010e23c, + 0x04000007, 0x592c0c0c, 0x8c040d18, 0x04000004, + 0x59340200, 0x84000514, 0x48026a00, 0x0201f800, + 0x00020bc1, 0x80000580, 0x1c01f000, 0x82000540, + 0x00000001, 0x0401f7fd, 0x42001000, 0x0000000a, + 0x0401f01b, 0x42001000, 0x0000000e, 0x0401f018, + 0x42001000, 0x00000010, 0x0401f015, 0x42001000, + 0x00000016, 0x0401f012, 0x42001000, 0x00000017, + 0x0401f00f, 0x42001000, 0x00000018, 0x0401f00c, + 0x42001000, 0x0000001b, 0x0401f009, 0x42001000, + 0x0000001e, 0x0401f006, 0x42001000, 0x00000024, + 0x0401f003, 0x42001000, 0x00000020, 0x42000800, + 0x00000019, 0x42028000, 0x00000031, 0x0401f7dc, + 0x42000800, 0x00000003, 0x0401f003, 0x42000800, + 0x0000000a, 0x41781000, 0x0401f7f7, 0x42000800, + 0x00000009, 0x59341400, 0x0401f7f3, 0x42028000, + 0x00000008, 0x0401f005, 0x42000800, 0x00000007, + 0x416c1000, 0x0401f7ec, 0x41780800, 0x41781000, + 0x0401f7c7, 0x42028000, 0x00000000, 0x0401f7fb, + 0x82004d80, 0x0000001d, 0x02000800, 0x0010032e, + 0x82004d80, 0x0000001a, 0x04020004, 0x40101000, + 0x40000800, 0x0401f7dc, 0x82004d80, 0x0000001b, + 0x04020003, 0x40181000, 0x0401f7fa, 0x82004d80, + 0x0000001c, 0x040007f7, 0x82004d80, 0x00000019, + 0x040007b2, 0x0401f7d6, 0x592e6009, 0x0201f800, + 0x00109d04, 0x040007b3, 0x59300c07, 0x82040580, + 0x00000011, 0x040207d6, 0x592c0c0c, 0x82041500, + 0x0000e000, 0x82080580, 0x00006000, 0x04000024, + 0x83440580, 0x0000ffff, 0x04020008, 0x5932680a, + 0x83340580, 0x0010e23c, 0x040207c9, 0x42000800, + 0x00000840, 0x0401f00f, 0x592c100b, 0x82081500, + 0x00ffffff, 0x41784000, 0x0401fd93, 0x040207cd, + 0x5930000a, 0x82000d80, 0x0010e23c, 0x04000003, + 0x81340580, 0x040207ba, 0x4936600a, 0x59340a04, + 0x592c000e, 0x80040480, 0x040017a0, 0x59300a03, + 0x82040580, 0x00000007, 0x040207b1, 0x492e6009, + 0x42027000, 0x00000054, 0x0401f770, 0x0201f800, + 0x0010b6ce, 0x040007b4, 0x0401f7a9, 0x492fc857, + 0x592e6009, 0x83300580, 0xffffffff, 0x04020047, + 0x592c0208, 0x8c000500, 0x04020083, 0x8d0e1d0e, + 0x04020069, 0x592e8c07, 0x83440480, 0x00000800, + 0x0402103b, 0x592c380b, 0x821c3d00, 0x00ffffff, + 0x0201f800, 0x00101fc9, 0x04020041, 0x49265802, + 0x41784000, 0x592c100a, 0x82081500, 0x00ffffff, + 0x0401fd61, 0x0402005b, 0x592e6014, 0x4933c857, + 0x83300580, 0xffffffff, 0x0400001b, 0x0201f800, + 0x00109d04, 0x04000035, 0x591c1407, 0x800811c0, + 0x04000015, 0x592c040e, 0x591c0a02, 0x80040580, + 0x04020011, 0x591c000a, 0x800001c0, 0x04020007, + 0x591c0827, 0x59340002, 0x80040580, 0x82000500, + 0x00ffffff, 0x0401f002, 0x81340580, 0x04020006, + 0x82080580, 0x00000007, 0x04020038, 0x4a023c03, + 0x00000024, 0x59240005, 0x592c080a, 0x82041500, + 0x00ffffff, 0x80081580, 0x0400000f, 0x80040932, + 0x82040580, 0x00000042, 0x0402000e, 0x49365803, + 0x0401f908, 0x80000580, 0x1c01f000, 0x42001000, + 0x0000000a, 0x0401f00f, 0x42001000, 0x00000010, + 0x0401f00c, 0x42001000, 0x00000014, 0x0401f009, + 0x42001000, 0x00000017, 0x0401f006, 0x42001000, + 0x00000018, 0x0401f003, 0x42001000, 0x0000003c, + 0x492fc857, 0x480bc857, 0x42000800, 0x00000019, + 0x42028000, 0x00000031, 0x82000540, 0x00000001, + 0x0401f7e6, 0x492fc857, 0x4803c857, 0x480bc857, + 0x40000800, 0x0401f7f7, 0x492fc857, 0x42000800, + 0x0000000a, 0x41781000, 0x0401f7f2, 0x41780800, + 0x41781000, 0x0401f7f1, 0x42000800, 0x0000001e, + 0x0401f7f9, 0x42000800, 0x00000001, 0x0401f7f6, + 0x82004d80, 0x0000001d, 0x02000800, 0x0010032e, + 0x82004d80, 0x0000001a, 0x04020003, 0x40101000, + 0x0401f7e5, 0x82004d80, 0x0000001b, 0x04020003, + 0x40181000, 0x0401f7e0, 0x82004d80, 0x0000001c, + 0x040007dd, 0x82004d80, 0x00000019, 0x040007da, + 0x0401f7de, 0x0201f800, 0x0010b7c1, 0x42028000, + 0x00000000, 0x0401f7de, 0x5c000000, 0x4c000000, + 0x4803c857, 0x5930200a, 0x801021c0, 0x04000035, + 0x58101400, 0x4813c857, 0x480bc857, 0x82081d00, + 0x000000ff, 0x59300c03, 0x82040580, 0x00000008, + 0x04000022, 0x82040580, 0x0000000a, 0x04000017, + 0x82040580, 0x0000000c, 0x04000010, 0x82040580, + 0x00000002, 0x04000019, 0x82040580, 0x00000001, + 0x04000012, 0x82040580, 0x00000003, 0x0400000b, + 0x82040580, 0x00000005, 0x04000004, 0x82040580, + 0x00000033, 0x04020017, 0x820c0580, 0x00000009, + 0x0400000d, 0x0401f013, 0x820c0580, 0x00000005, + 0x04000009, 0x0401f00f, 0x820c0580, 0x0000000b, + 0x04000005, 0x0401f00b, 0x820c0580, 0x00000003, + 0x04020008, 0x82081d00, 0xffffff00, 0x840c01c0, + 0x800c0540, 0x4807c857, 0x4803c857, 0x48002400, + 0x1c01f000, 0x0401f807, 0x42018800, 0x00000001, + 0x04020003, 0x42018800, 0x00000000, 0x1c01f000, + 0x599c0017, 0x8c00050a, 0x04000003, 0x80000580, + 0x1c01f000, 0x59a8021b, 0x82000500, 0x00000028, + 0x04000008, 0x42028800, 0x000007fd, 0x417a4000, + 0x0401fd70, 0x04020003, 0x5934000a, 0x8c000504, + 0x1c01f000, 0x4d300000, 0x5934000e, 0x80026540, + 0x04000006, 0x0201f800, 0x001068a4, 0x02000800, + 0x00106a7c, 0x497a680e, 0x5c026000, 0x1c01f000, + 0x4d440000, 0x4d340000, 0x80000580, 0x40001800, + 0x40028800, 0x82080580, 0x00000008, 0x04020003, + 0x42001800, 0x00000001, 0x0201f800, 0x0002034c, + 0x0402000a, 0x0401fcf3, 0x04020008, 0x800c19c0, + 0x04000004, 0x59340405, 0x8c000508, 0x04000003, + 0x80081040, 0x04000009, 0x81468800, 0x83440480, + 0x00000800, 0x040017f1, 0x80000580, 0x5c026800, + 0x5c028800, 0x1c01f000, 0x82000540, 0x00000001, + 0x5c026800, 0x5c028800, 0x1c01f000, 0x42000800, + 0x00000008, 0x59bc00e4, 0x8c000524, 0x0402002e, + 0x59a8021b, 0x8c000508, 0x0402002b, 0x5934100a, + 0x82081500, 0x0000e000, 0x41781800, 0x82080580, + 0x00000000, 0x04000006, 0x800c1800, 0x82080580, + 0x00002000, 0x04000002, 0x800c1800, 0x42007000, + 0x0010cb9b, 0x58380401, 0x8c000504, 0x04000007, + 0x820c2c80, 0x00000003, 0x04021017, 0x820c0400, + 0x00104d73, 0x0401f013, 0x41782000, 0x59342a04, + 0x82140480, 0x00000800, 0x04021006, 0x80102000, + 0x82140480, 0x00000400, 0x04021002, 0x80102000, + 0x800c00c2, 0x800c0400, 0x80100400, 0x82002c80, + 0x00000006, 0x04021004, 0x82000400, 0x00104d76, + 0x50000800, 0x48066c04, 0x1c01f000, 0x00000002, + 0x00000004, 0x00000008, 0x00002802, 0x00001402, + 0x00000a02, 0x00001402, 0x00000a02, 0x00000502, + 0x59a80853, 0x800409c0, 0x04020005, 0x492f5052, + 0x492f5053, 0x0201f000, 0x00107e2a, 0x492c0800, + 0x492f5053, 0x1c01f000, 0x5934000f, 0x41784000, + 0x80001540, 0x04000010, 0x58080205, 0x82000500, + 0x000000ff, 0x82000580, 0x00000012, 0x04000004, + 0x82000580, 0x00000060, 0x04020004, 0x5808020d, + 0x80040580, 0x04000006, 0x58080000, 0x40084000, + 0x0401f7f0, 0x82000540, 0x00000001, 0x1c01f000, + 0x42000000, 0x0010e23c, 0x4a000400, 0x00000707, + 0x4a000204, 0x00000840, 0x4a000403, 0x0000ffff, + 0x49780200, 0x1c01f000, 0x4d340000, 0x4d440000, + 0x4c580000, 0x4200b000, 0x000007f0, 0x4803c856, + 0x417a8800, 0x0201f800, 0x0002034c, 0x04020006, + 0x59340200, 0x8c00051a, 0x04000003, 0x8400051a, + 0x48026a00, 0x81468800, 0x8058b040, 0x040207f6, + 0x5c00b000, 0x5c028800, 0x5c026800, 0x1c01f000, + 0x4a033011, 0x00000000, 0x4a03b104, 0x80000000, + 0x4a03b104, 0x60000001, 0x497b3016, 0x497b3017, + 0x1c01f000, 0x599c0018, 0x4803c856, 0x497b3014, + 0x497b3015, 0x82000500, 0x0000000f, 0x48033012, + 0x04000009, 0x599c0216, 0x82000500, 0x0000ffff, + 0x04020003, 0x42000000, 0x00000002, 0x48033013, + 0x850e1d62, 0x1c01f000, 0x0401ffef, 0x4a03c826, + 0x00000004, 0x599c0209, 0x80000540, 0x0400001e, + 0x599c0207, 0x80000540, 0x04000007, 0x800000cc, + 0x599c080d, 0x80040400, 0x4803b100, 0x497bb102, + 0x59d80101, 0x599c000d, 0x4803b100, 0x599c000e, + 0x4803b101, 0x599c0207, 0x80000540, 0x04020002, + 0x497bb102, 0x599c0a09, 0x82040540, 0x00400000, + 0x4803b103, 0x4a03b109, 0x00000005, 0x4a03b104, + 0x10000001, 0x8d0e1d22, 0x04020004, 0x4a033011, + 0x00000001, 0x1c01f000, 0x8d0e1d20, 0x04020004, + 0x4a033011, 0x00000002, 0x0401f7fb, 0x4a033011, + 0x00000003, 0x0401f7f8, 0x592c0205, 0x492fc857, + 0x80000540, 0x04000008, 0x42034000, 0x0010caff, + 0x59a1d806, 0x80edd9c0, 0x02000800, 0x0010032e, + 0x0401f007, 0x0201f800, 0x0010a2d8, 0x02020800, + 0x0010032e, 0x5931d82a, 0x58ef400a, 0x58ec0008, + 0x800001c0, 0x02000800, 0x0010032e, 0x0801f800, + 0x1c01f000, 0x40680800, 0x5c000000, 0x4c000000, + 0x4803c857, 0x492fc857, 0x4943c857, 0x4807c857, + 0x4a025a05, 0x00000103, 0x49425a07, 0x48065a09, + 0x4a025c07, 0x0000ffff, 0x813261c0, 0x04000003, + 0x59300402, 0x48025c07, 0x592c0209, 0x8c000512, + 0x04020008, 0x832c0400, 0x0000000a, 0x04011000, + 0x4803c840, 0x4a03c842, 0x0000000b, 0x04011000, + 0x1c01f000, 0x40680000, 0x4c540000, 0x4c580000, + 0x4c5c0000, 0x4d2c0000, 0x4000b800, 0x0201f800, + 0x0010c0ca, 0x4178a800, 0x0201f800, 0x0010056e, + 0x040000b3, 0x04011000, 0x485fc857, 0x4943c857, + 0x4923c857, 0x832c0400, 0x00000005, 0x4803c840, + 0x4a03c842, 0x00000010, 0x40000000, 0x040117ff, + 0x412c7000, 0x4a025805, 0x00000132, 0x497a5806, + 0x805cb9c0, 0x04020074, 0x832e5c00, 0x00000008, + 0x417a4000, 0x42024800, 0x0010cfd1, 0x41786800, + 0x59240a00, 0x82040500, 0x0000000f, 0x0c01f001, + 0x00104e75, 0x00104e75, 0x00104e75, 0x00104e75, + 0x00104e75, 0x00104e75, 0x00104e75, 0x00104e6c, + 0x00104e75, 0x00104e75, 0x00104e75, 0x00104e75, + 0x00104e75, 0x00104e75, 0x00104e75, 0x00104e75, + 0x8054a800, 0x812241c0, 0x04020007, 0x59240805, + 0x805c00f0, 0x80040d40, 0x48065800, 0x812e5800, + 0x0401f03f, 0x82340500, 0x00000003, 0x0c01f001, + 0x00104e7c, 0x00104e87, 0x00104e93, 0x00104e9f, + 0x83200580, 0x00000001, 0x04020004, 0x42002000, + 0x00000001, 0x0401f02a, 0x83200480, 0x00000020, + 0x04001026, 0x80346800, 0x0401f024, 0x83200580, + 0x00000021, 0x04020005, 0x812e5800, 0x42002000, + 0x00000001, 0x0401f01e, 0x83200480, 0x00000040, + 0x0400101a, 0x80346800, 0x0401f018, 0x83200580, + 0x00000041, 0x04020005, 0x812e5800, 0x42002000, + 0x00000001, 0x0401f012, 0x83200480, 0x00000060, + 0x0400100e, 0x80346800, 0x0401f00c, 0x83200580, + 0x00000061, 0x04020005, 0x812e5800, 0x42002000, + 0x00000001, 0x0401f006, 0x83200480, 0x0000007f, + 0x04001002, 0x80346800, 0x801020c2, 0x82040500, + 0x00000007, 0x82000580, 0x00000007, 0x04020004, + 0x592c0000, 0x80100540, 0x48025800, 0x83264c00, + 0x0000000b, 0x81224000, 0x8058b040, 0x040207a1, + 0x8054a9c0, 0x403a5800, 0x04000037, 0x0201f800, + 0x0010c0ca, 0x0201f800, 0x0010c0e8, 0x04020002, 0x8058b040, 0x805800d0, 0x80540540, 0x48025a07, - 0x0401f021, 0x83400580, 0x00000001, 0x04020005, - 0x48165a09, 0x82140580, 0x00000003, 0x0400001d, + 0x0401f024, 0x83400580, 0x00000001, 0x04020005, + 0x48165a09, 0x82140580, 0x00000003, 0x04000023, 0x83400d00, 0x000000ff, 0x82040580, 0x00000004, - 0x04000018, 0x82040580, 0x00000006, 0x04000015, + 0x0400001e, 0x82040580, 0x00000006, 0x0400001b, 0x83400d00, 0x0000ff00, 0x04000003, 0x81400110, 0x4802580d, 0x814000d0, 0x81200540, 0x48025c07, - 0x8058b040, 0x805800d0, 0x82000540, 0x00000001, - 0x48025a07, 0x59240805, 0x805c00f0, 0x80040d40, - 0x48065808, 0x0201f800, 0x000203ef, 0x0401f006, - 0x59cc0007, 0x4802580d, 0x0401f7ef, 0x0201f800, - 0x00100594, 0x5c025800, 0x5c00b800, 0x5c00b000, - 0x5c00a800, 0x1c01f000, 0x59a80011, 0x82000c80, - 0x0000000a, 0x02021800, 0x0010032e, 0x0c01f809, - 0x4a038805, 0x000000f0, 0x59c400a3, 0x82000500, - 0x02870000, 0x02020800, 0x0010032e, 0x1c01f000, - 0x00104e71, 0x00104de3, 0x00104e02, 0x00104e36, - 0x00104e61, 0x0010032e, 0x0010032e, 0x00104e02, - 0x0010032e, 0x00104de2, 0x1c01f000, 0x42002000, - 0x00000003, 0x0201f800, 0x001052d7, 0x4a038808, - 0x00000004, 0x0201f800, 0x001052be, 0x59c40805, - 0x8c040d0e, 0x04020014, 0x8c040d0a, 0x0402000b, - 0x8c040d0c, 0x04020006, 0x8c040d08, 0x0400000e, - 0x4a035011, 0x00000003, 0x0401f00a, 0x4a035011, - 0x00000000, 0x0401f007, 0x42000000, 0x0010cb78, - 0x0201f800, 0x0010bc88, 0x4a035011, 0x00000002, - 0x0401f8c6, 0x1c01f000, 0x59a80078, 0x8c00053e, - 0x04020018, 0x42002000, 0x00000000, 0x0201f800, - 0x001052d7, 0x4a038808, 0x00000002, 0x59c40805, - 0x8c040d08, 0x04020025, 0x8c040d0c, 0x04020020, - 0x8c040d0e, 0x0402001b, 0x82040500, 0x000000f0, - 0x04020021, 0x0201f800, 0x001052be, 0x4a038808, - 0x00000080, 0x59c40002, 0x8400050c, 0x48038802, - 0x0401f9dd, 0x4d3c0000, 0x42027800, 0x00000001, - 0x0201f800, 0x0010a004, 0x5c027800, 0x4a038808, - 0x00000080, 0x42002000, 0x00000002, 0x0201f800, - 0x001052d7, 0x4a035011, 0x00000009, 0x0401f00a, + 0x0201f800, 0x0010c0e8, 0x04020002, 0x8058b040, + 0x805800d0, 0x82000540, 0x00000001, 0x48025a07, + 0x59240805, 0x805c00f0, 0x80040d40, 0x48065808, + 0x0201f800, 0x0010c0f9, 0x0402000e, 0x0201f800, + 0x000203ef, 0x0401f006, 0x59cc0007, 0x4802580d, + 0x0401f7e9, 0x0201f800, 0x00100594, 0x5c025800, + 0x5c00b800, 0x5c00b000, 0x5c00a800, 0x1c01f000, + 0x0201f800, 0x0010b674, 0x0401f7f9, 0x59a80011, + 0x82000c80, 0x0000000a, 0x02021800, 0x0010032e, + 0x0c01f809, 0x4a038805, 0x000000f0, 0x59c400a3, + 0x82000500, 0x02870000, 0x02020800, 0x0010032e, + 0x1c01f000, 0x00104fa2, 0x00104f14, 0x00104f33, + 0x00104f67, 0x00104f92, 0x0010032e, 0x0010032e, + 0x00104f33, 0x0010032e, 0x00104f13, 0x1c01f000, + 0x42002000, 0x00000003, 0x0201f800, 0x00105408, + 0x4a038808, 0x00000004, 0x0201f800, 0x001053ef, + 0x59c40805, 0x8c040d0e, 0x04020014, 0x8c040d0a, + 0x0402000b, 0x8c040d0c, 0x04020006, 0x8c040d08, + 0x0400000e, 0x4a035011, 0x00000003, 0x0401f00a, + 0x4a035011, 0x00000000, 0x0401f007, 0x42000000, + 0x0010ce78, 0x0201f800, 0x0010bfb3, 0x4a035011, + 0x00000002, 0x0401f8c6, 0x1c01f000, 0x59a80078, + 0x8c00053e, 0x04020018, 0x42002000, 0x00000000, + 0x0201f800, 0x00105408, 0x4a038808, 0x00000002, + 0x59c40805, 0x8c040d08, 0x04020025, 0x8c040d0c, + 0x04020020, 0x8c040d0e, 0x0402001b, 0x82040500, + 0x000000f0, 0x04020021, 0x0201f800, 0x001053ef, + 0x4a038808, 0x00000080, 0x59c40002, 0x8400050c, + 0x48038802, 0x0401f9dd, 0x4d3c0000, 0x42027800, + 0x00000001, 0x0201f800, 0x0010a242, 0x5c027800, + 0x4a038808, 0x00000080, 0x42002000, 0x00000002, + 0x0201f800, 0x00105408, 0x4a035011, 0x00000009, + 0x0401f00a, 0x4a035011, 0x00000001, 0x0401f006, + 0x4a035011, 0x00000000, 0x0401f003, 0x4a035011, + 0x00000003, 0x0401f892, 0x1c01f000, 0x42002000, + 0x00000001, 0x0201f800, 0x00105408, 0x4a038808, + 0x00000080, 0x59c40805, 0x8c040d0a, 0x0402001f, + 0x8c040d0c, 0x0402001a, 0x8c040d0e, 0x04020015, + 0x82040500, 0x000000f0, 0x0402001b, 0x59c40002, + 0x8400050c, 0x48038802, 0x0401f9b0, 0x4d3c0000, + 0x42027800, 0x00000001, 0x0201f800, 0x0010a242, + 0x5c027800, 0x42002000, 0x00000002, 0x0201f800, + 0x00105408, 0x4a035011, 0x00000009, 0x0401f00a, 0x4a035011, 0x00000001, 0x0401f006, 0x4a035011, - 0x00000000, 0x0401f003, 0x4a035011, 0x00000003, - 0x0401f892, 0x1c01f000, 0x42002000, 0x00000001, - 0x0201f800, 0x001052d7, 0x4a038808, 0x00000080, - 0x59c40805, 0x8c040d0a, 0x0402001f, 0x8c040d0c, - 0x0402001a, 0x8c040d0e, 0x04020015, 0x82040500, - 0x000000f0, 0x0402001b, 0x59c40002, 0x8400050c, - 0x48038802, 0x0401f9b0, 0x4d3c0000, 0x42027800, - 0x00000001, 0x0201f800, 0x0010a004, 0x5c027800, - 0x42002000, 0x00000002, 0x0201f800, 0x001052d7, - 0x4a035011, 0x00000009, 0x0401f00a, 0x4a035011, - 0x00000001, 0x0401f006, 0x4a035011, 0x00000000, - 0x0401f003, 0x4a035011, 0x00000002, 0x0401f867, - 0x1c01f000, 0x0201f800, 0x0010540b, 0x4a038808, - 0x00000008, 0x59c40805, 0x8c040d0c, 0x04020006, + 0x00000000, 0x0401f003, 0x4a035011, 0x00000002, + 0x0401f867, 0x1c01f000, 0x0201f800, 0x0010553c, + 0x4a038808, 0x00000008, 0x59c40805, 0x8c040d0c, + 0x04020006, 0x8c040d0e, 0x04000007, 0x4a035011, + 0x00000001, 0x0401f003, 0x4a035011, 0x00000000, + 0x0401f857, 0x1c01f000, 0x42002000, 0x00000004, + 0x0201f800, 0x00105408, 0x0401f8a0, 0x59c40805, + 0x8c040d0c, 0x0402000b, 0x8c040d0a, 0x04020006, 0x8c040d0e, 0x04000007, 0x4a035011, 0x00000001, - 0x0401f003, 0x4a035011, 0x00000000, 0x0401f857, - 0x1c01f000, 0x42002000, 0x00000004, 0x0201f800, - 0x001052d7, 0x0401f8a0, 0x59c40805, 0x8c040d0c, - 0x0402000b, 0x8c040d0a, 0x04020006, 0x8c040d0e, - 0x04000007, 0x4a035011, 0x00000001, 0x0401f003, - 0x4a035011, 0x00000002, 0x0401f844, 0x1c01f000, - 0x0401f942, 0x02020800, 0x0010032e, 0x59a80878, - 0x8c040d3e, 0x04000004, 0x4a035014, 0x00000001, - 0x0401f039, 0x42002000, 0x00000007, 0x0201f800, - 0x001052d7, 0x8d0e1d0c, 0x04000014, 0x850e1d0c, - 0x4a038805, 0x00000010, 0x0201f800, 0x00101935, - 0x59c40005, 0x8c000508, 0x04000008, 0x4a038808, - 0x00000008, 0x4a035014, 0x00000001, 0x4202d800, - 0x00000001, 0x0401f024, 0x59c40006, 0x84000548, - 0x48038806, 0x0401f020, 0x59a80011, 0x82000580, - 0x00000001, 0x0402001a, 0x42000000, 0x0010cb78, - 0x0201f800, 0x0010bc88, 0x4ce80000, 0x4201d000, - 0x000003e8, 0x0201f800, 0x0010645c, 0x59c40005, - 0x82000500, 0x00000030, 0x0400000c, 0x8c00050a, - 0x04000006, 0x42002000, 0x00000000, 0x0201f800, - 0x001052d7, 0x0401f005, 0x42002000, 0x00000001, - 0x0201f800, 0x001052d7, 0x5c01d000, 0x4a035011, - 0x00000004, 0x1c01f000, 0x4c040000, 0x4c080000, - 0x42000800, 0x00000064, 0x42001000, 0x00104ed1, - 0x0201f800, 0x0010643e, 0x5c001000, 0x5c000800, - 0x1c01f000, 0x4803c856, 0x4c040000, 0x0201f800, - 0x00106c3c, 0x4df00000, 0x0201f800, 0x00106ed9, - 0x5c03e000, 0x02000800, 0x00106c29, 0x42000000, - 0x0010cb77, 0x0201f800, 0x0010bc88, 0x0401ffa5, + 0x0401f003, 0x4a035011, 0x00000002, 0x0401f844, + 0x1c01f000, 0x0401f942, 0x02020800, 0x0010032e, + 0x59a80878, 0x8c040d3e, 0x04000004, 0x4a035014, + 0x00000001, 0x0401f039, 0x42002000, 0x00000007, + 0x0201f800, 0x00105408, 0x8d0e1d0c, 0x04000014, + 0x850e1d0c, 0x4a038805, 0x00000010, 0x0201f800, + 0x0010193a, 0x59c40005, 0x8c000508, 0x04000008, + 0x4a038808, 0x00000008, 0x4a035014, 0x00000001, + 0x4202d800, 0x00000001, 0x0401f024, 0x59c40006, + 0x84000548, 0x48038806, 0x0401f020, 0x59a80011, + 0x82000580, 0x00000001, 0x0402001a, 0x42000000, + 0x0010ce78, 0x0201f800, 0x0010bfb3, 0x4ce80000, + 0x4201d000, 0x000003e8, 0x0201f800, 0x00106661, + 0x59c40005, 0x82000500, 0x00000030, 0x0400000c, + 0x8c00050a, 0x04000006, 0x42002000, 0x00000000, + 0x0201f800, 0x00105408, 0x0401f005, 0x42002000, + 0x00000001, 0x0201f800, 0x00105408, 0x5c01d000, + 0x4a035011, 0x00000004, 0x1c01f000, 0x4c040000, + 0x4c080000, 0x42000800, 0x00000064, 0x42001000, + 0x00105002, 0x0201f800, 0x00106643, 0x5c001000, 0x5c000800, 0x1c01f000, 0x4803c856, 0x4c040000, - 0x4c080000, 0x0201f800, 0x00106c3c, 0x4df00000, - 0x0201f800, 0x00106ed9, 0x5c03e000, 0x02000800, - 0x00106c29, 0x59c40006, 0x84000500, 0x48038806, - 0x0201f800, 0x00106faf, 0x497b8880, 0x42000000, - 0x0010cb76, 0x0201f800, 0x0010bc88, 0x0201f800, - 0x0010181b, 0x4a035058, 0x00000004, 0x4202d800, - 0x00000004, 0x4a038805, 0x00000001, 0x42001000, - 0x00104ed1, 0x0201f800, 0x00106449, 0x0201f800, - 0x00100455, 0x0401f8dd, 0x04000006, 0x42006000, - 0xfeffffff, 0x41786800, 0x0201f800, 0x001041ad, - 0x0201f800, 0x00110a6d, 0x42000000, 0x00000080, - 0x0201f800, 0x0010155c, 0x5c001000, 0x5c000800, - 0x1c01f000, 0x59c40008, 0x82000580, 0x00000010, - 0x04000007, 0x4a038808, 0x00000010, 0x4201d000, - 0x00001388, 0x0201f800, 0x0010645c, 0x1c01f000, - 0x4c040000, 0x59a80814, 0x82040580, 0x00000000, - 0x0400000b, 0x82040580, 0x00000001, 0x0400000b, - 0x82040580, 0x00000002, 0x04000013, 0x82040580, - 0x00000003, 0x04000013, 0x0401f05d, 0x4a035011, - 0x00000000, 0x0401f011, 0x59a80878, 0x8c040d3e, - 0x04000006, 0x4a035011, 0x00000003, 0x4a035014, - 0x00000004, 0x0401f052, 0x4a035011, 0x00000004, - 0x0401f006, 0x4a035011, 0x00000001, 0x0401f003, - 0x4a035011, 0x00000007, 0x497b8880, 0x4a038893, - 0x00000001, 0x41780000, 0x0201f800, 0x001015e0, - 0x0201f800, 0x00106faf, 0x836c0d80, 0x00000004, - 0x04000008, 0x59c40006, 0x82000500, 0xffffff0f, - 0x82000540, 0x04000001, 0x48038806, 0x0401f007, - 0x59c40006, 0x82000500, 0xffffff0f, 0x82000540, - 0x04000000, 0x48038806, 0x0401f888, 0x04020005, - 0x59c40806, 0x82040d00, 0xfbffff0f, 0x48078806, - 0x59c40005, 0x8c000534, 0x04020033, 0x42006000, - 0xfc18ffff, 0x42006800, 0x01000000, 0x0201f800, - 0x001041ad, 0x0201f800, 0x00101935, 0x59c408a4, - 0x82040d00, 0x0000000f, 0x82040d80, 0x0000000c, - 0x040208bf, 0x0401f871, 0x04000006, 0x42006000, - 0xfeffffff, 0x41786800, 0x0201f800, 0x001041ad, - 0x836c0d80, 0x00000004, 0x0400000f, 0x0401ff4b, - 0x5994102e, 0x41780800, 0x42000000, 0x0000000a, - 0x0201f800, 0x00106a98, 0x40080000, 0x59a80831, - 0x80040c00, 0x42001000, 0x00104ee2, 0x0201f800, - 0x00106433, 0x4a035014, 0x00000004, 0x0401fe3f, - 0x0401f856, 0x04020008, 0x59c408a4, 0x82040d00, - 0x0000000f, 0x82040580, 0x0000000c, 0x02020800, - 0x0010032e, 0x5c000800, 0x1c01f000, 0x4803c856, - 0x4c000000, 0x0201f800, 0x0010646c, 0x4a03500f, - 0x00ffffff, 0x497b5013, 0x59a8001f, 0x82000500, - 0xffff0000, 0x4803501f, 0x497b8880, 0x497b8893, - 0x41780000, 0x0201f800, 0x001015e0, 0x59c40001, - 0x82000500, 0xfffffcff, 0x48038801, 0x42006000, - 0xfc18ffff, 0x41786800, 0x0201f800, 0x001041ad, - 0x4a038808, 0x00000000, 0x5c000000, 0x800001c0, - 0x02020800, 0x00104011, 0x4a038805, 0x040000f0, - 0x59c40006, 0x82000500, 0xffffffcf, 0x82000540, - 0x440000c1, 0x48038806, 0x1c01f000, 0x0401f807, - 0x42018800, 0x00000001, 0x04000003, 0x42018800, - 0x00000000, 0x1c01f000, 0x4c5c0000, 0x59a8b813, - 0x825cbd80, 0x0000aaaa, 0x5c00b800, 0x1c01f000, + 0x0201f800, 0x00106e41, 0x4df00000, 0x0201f800, + 0x001070de, 0x5c03e000, 0x02000800, 0x00106e2e, + 0x42000000, 0x0010ce77, 0x0201f800, 0x0010bfb3, + 0x0401ffa5, 0x5c000800, 0x1c01f000, 0x4803c856, + 0x4c040000, 0x4c080000, 0x0201f800, 0x00106e41, + 0x4df00000, 0x0201f800, 0x001070de, 0x5c03e000, + 0x02000800, 0x00106e2e, 0x59c40006, 0x84000500, + 0x48038806, 0x0201f800, 0x001071b4, 0x497b8880, + 0x42000000, 0x0010ce76, 0x0201f800, 0x0010bfb3, + 0x0201f800, 0x00101820, 0x4a035058, 0x00000004, + 0x4202d800, 0x00000004, 0x4a038805, 0x00000001, + 0x42001000, 0x00105002, 0x0201f800, 0x0010664e, + 0x0201f800, 0x00100455, 0x0401f8dd, 0x04000006, + 0x42006000, 0xfeffffff, 0x41786800, 0x0201f800, + 0x001042a6, 0x0201f800, 0x00110d6d, 0x42000000, + 0x00000080, 0x0201f800, 0x0010155d, 0x5c001000, + 0x5c000800, 0x1c01f000, 0x59c40008, 0x82000580, + 0x00000010, 0x04000007, 0x4a038808, 0x00000010, + 0x4201d000, 0x00001388, 0x0201f800, 0x00106661, + 0x1c01f000, 0x4c040000, 0x59a80814, 0x82040580, + 0x00000000, 0x0400000b, 0x82040580, 0x00000001, + 0x0400000b, 0x82040580, 0x00000002, 0x04000013, + 0x82040580, 0x00000003, 0x04000013, 0x0401f05d, + 0x4a035011, 0x00000000, 0x0401f011, 0x59a80878, + 0x8c040d3e, 0x04000006, 0x4a035011, 0x00000003, + 0x4a035014, 0x00000004, 0x0401f052, 0x4a035011, + 0x00000004, 0x0401f006, 0x4a035011, 0x00000001, + 0x0401f003, 0x4a035011, 0x00000007, 0x497b8880, + 0x4a038893, 0x00000001, 0x41780000, 0x0201f800, + 0x001015e5, 0x0201f800, 0x001071b4, 0x836c0d80, + 0x00000004, 0x04000008, 0x59c40006, 0x82000500, + 0xffffff0f, 0x82000540, 0x04000001, 0x48038806, + 0x0401f007, 0x59c40006, 0x82000500, 0xffffff0f, + 0x82000540, 0x04000000, 0x48038806, 0x0401f888, + 0x04020005, 0x59c40806, 0x82040d00, 0xfbffff0f, + 0x48078806, 0x59c40005, 0x8c000534, 0x04020033, + 0x42006000, 0xfc18ffff, 0x42006800, 0x01000000, + 0x0201f800, 0x001042a6, 0x0201f800, 0x0010193a, + 0x59c408a4, 0x82040d00, 0x0000000f, 0x82040d80, + 0x0000000c, 0x040208bf, 0x0401f871, 0x04000006, + 0x42006000, 0xfeffffff, 0x41786800, 0x0201f800, + 0x001042a6, 0x836c0d80, 0x00000004, 0x0400000f, + 0x0401ff4b, 0x5994102e, 0x41780800, 0x42000000, + 0x0000000a, 0x0201f800, 0x00106c9d, 0x40080000, + 0x59a80831, 0x80040c00, 0x42001000, 0x00105013, + 0x0201f800, 0x00106638, 0x4a035014, 0x00000004, + 0x0401fe3f, 0x0401f856, 0x04020008, 0x59c408a4, + 0x82040d00, 0x0000000f, 0x82040580, 0x0000000c, + 0x02020800, 0x0010032e, 0x5c000800, 0x1c01f000, + 0x4803c856, 0x4c000000, 0x0201f800, 0x00106671, + 0x4a03500f, 0x00ffffff, 0x497b5013, 0x59a8001f, + 0x82000500, 0xffff0000, 0x4803501f, 0x497b8880, + 0x497b8893, 0x41780000, 0x0201f800, 0x001015e5, + 0x59c40001, 0x82000500, 0xfffffcff, 0x48038801, + 0x42006000, 0xfc18ffff, 0x41786800, 0x0201f800, + 0x001042a6, 0x4a038808, 0x00000000, 0x5c000000, + 0x800001c0, 0x02020800, 0x0010410a, 0x4a038805, + 0x040000f0, 0x59c40006, 0x82000500, 0xffffffcf, + 0x82000540, 0x440000c1, 0x48038806, 0x1c01f000, + 0x0401f807, 0x42018800, 0x00000001, 0x04000003, + 0x42018800, 0x00000000, 0x1c01f000, 0x4c5c0000, + 0x59a8b813, 0x825cbd80, 0x0000aaaa, 0x5c00b800, + 0x1c01f000, 0x0401f807, 0x42018800, 0x00000001, + 0x04000003, 0x42018800, 0x00000000, 0x1c01f000, + 0x4c5c0000, 0x599cb818, 0x825cbd00, 0x00000030, + 0x825cbd80, 0x00000000, 0x5c00b800, 0x1c01f000, 0x0401f807, 0x42018800, 0x00000001, 0x04000003, 0x42018800, 0x00000000, 0x1c01f000, 0x4c5c0000, 0x599cb818, 0x825cbd00, 0x00000030, 0x825cbd80, - 0x00000000, 0x5c00b800, 0x1c01f000, 0x0401f807, + 0x00000010, 0x5c00b800, 0x1c01f000, 0x0401f807, 0x42018800, 0x00000001, 0x04000003, 0x42018800, 0x00000000, 0x1c01f000, 0x4c5c0000, 0x599cb818, - 0x825cbd00, 0x00000030, 0x825cbd80, 0x00000010, - 0x5c00b800, 0x1c01f000, 0x0401f807, 0x42018800, - 0x00000001, 0x04000003, 0x42018800, 0x00000000, - 0x1c01f000, 0x4c5c0000, 0x599cb818, 0x825cbd00, - 0x00000030, 0x825cbd80, 0x00000020, 0x5c00b800, - 0x1c01f000, 0x490fc857, 0x830c0d00, 0x00000013, - 0x04000026, 0x599c1017, 0x4d3c0000, 0x830c0500, - 0x00000011, 0x04000005, 0x417a7800, 0x8d0e1d20, - 0x04020009, 0x0401f015, 0x42027800, 0x00000008, - 0x8d0e1d20, 0x04000011, 0x42003000, 0x00000003, - 0x0401f003, 0x42003000, 0x00000004, 0x42028000, - 0x0000000e, 0x4d200000, 0x42024000, 0x000000ff, - 0x0201f800, 0x0010ae89, 0x5c024000, 0x599c1017, - 0x8c08150a, 0x04020007, 0x42028000, 0x00000004, - 0x0201f800, 0x0010fbe5, 0x4803c856, 0x850e1d08, - 0x5c027800, 0x0401f00d, 0x8d0e1d20, 0x0400000b, - 0x42028000, 0x0000000f, 0x42003000, 0x00000001, - 0x4d200000, 0x42024000, 0x000000ff, 0x0201f800, - 0x0010ae89, 0x5c024000, 0x1c01f000, 0x4803c856, - 0x4c580000, 0x42000000, 0x0010cc8c, 0x0201f800, - 0x0010bc88, 0x42000800, 0x0010e1fe, 0x59c40003, - 0x44000800, 0x59c40004, 0x48000801, 0x59c4000b, - 0x48000802, 0x59c4008e, 0x48000803, 0x59c4008f, - 0x48000804, 0x59c40090, 0x48000805, 0x59c40091, - 0x48000806, 0x59c40092, 0x48000807, 0x59c40093, - 0x48000808, 0x59c40099, 0x48000809, 0x59c4009e, - 0x4800080a, 0x59c400aa, 0x4800080b, 0x59c400af, - 0x4800080c, 0x59c400b2, 0x4800080d, 0x59c400b1, - 0x4800080e, 0x82040c00, 0x0000000f, 0x41c41800, - 0x4200b000, 0x00000030, 0x580c0050, 0x44000800, - 0x80040800, 0x800c1800, 0x8058b040, 0x040207fb, - 0x41c41800, 0x4200b000, 0x00000020, 0x580c0010, + 0x825cbd00, 0x00000030, 0x825cbd80, 0x00000020, + 0x5c00b800, 0x1c01f000, 0x490fc857, 0x830c0d00, + 0x00000013, 0x04000026, 0x599c1017, 0x4d3c0000, + 0x830c0500, 0x00000011, 0x04000005, 0x417a7800, + 0x8d0e1d20, 0x04020009, 0x0401f015, 0x42027800, + 0x00000008, 0x8d0e1d20, 0x04000011, 0x42003000, + 0x00000003, 0x0401f003, 0x42003000, 0x00000004, + 0x42028000, 0x0000000e, 0x4d200000, 0x42024000, + 0x000000ff, 0x0201f800, 0x0010b198, 0x5c024000, + 0x599c1017, 0x8c08150a, 0x04020007, 0x42028000, + 0x00000004, 0x0201f800, 0x0010fef2, 0x4803c856, + 0x850e1d08, 0x5c027800, 0x0401f00d, 0x8d0e1d20, + 0x0400000b, 0x42028000, 0x0000000f, 0x42003000, + 0x00000001, 0x4d200000, 0x42024000, 0x000000ff, + 0x0201f800, 0x0010b198, 0x5c024000, 0x1c01f000, + 0x4803c856, 0x4c580000, 0x42000000, 0x0010cf8c, + 0x0201f800, 0x0010bfb3, 0x42000800, 0x0010e4fe, + 0x59c40003, 0x44000800, 0x59c40004, 0x48000801, + 0x59c4000b, 0x48000802, 0x59c4008e, 0x48000803, + 0x59c4008f, 0x48000804, 0x59c40090, 0x48000805, + 0x59c40091, 0x48000806, 0x59c40092, 0x48000807, + 0x59c40093, 0x48000808, 0x59c40099, 0x48000809, + 0x59c4009e, 0x4800080a, 0x59c400aa, 0x4800080b, + 0x59c400af, 0x4800080c, 0x59c400b2, 0x4800080d, + 0x59c400b1, 0x4800080e, 0x82040c00, 0x0000000f, + 0x41c41800, 0x4200b000, 0x00000030, 0x580c0050, 0x44000800, 0x80040800, 0x800c1800, 0x8058b040, - 0x040207fb, 0x497b8830, 0x4200b000, 0x00000040, - 0x59c40031, 0x44000800, 0x80040800, 0x8058b040, - 0x040207fc, 0x497b88ac, 0x4200b000, 0x00000010, - 0x59c400ad, 0x44000800, 0x80040800, 0x8058b040, - 0x040207fc, 0x59c41001, 0x4c080000, 0x8408150c, - 0x480b8801, 0x4a0370e4, 0x00000300, 0x4a0370e5, - 0xb0000000, 0x42000800, 0x00000800, 0x80040840, - 0x02000800, 0x0010032e, 0x59b800e5, 0x8c000538, - 0x040207fb, 0x4a0370e4, 0x00000200, 0x42006000, - 0xffffffff, 0x42006800, 0x80000000, 0x0201f800, - 0x001041ad, 0x4a038807, 0x00000001, 0x497b8807, - 0x0401fb89, 0x4a038808, 0x00000010, 0x42006000, - 0xfcf8ffff, 0x42006800, 0x01000000, 0x0201f800, - 0x001041ad, 0x5c001000, 0x480b8801, 0x42000800, - 0x0010e1fe, 0x50040000, 0x48038803, 0x58040001, - 0x48038804, 0x58040002, 0x4803880b, 0x58040003, - 0x4803888e, 0x58040004, 0x4803888f, 0x58040005, - 0x48038890, 0x58040006, 0x48038891, 0x58040007, - 0x48038892, 0x58040008, 0x48038893, 0x58040009, - 0x48038899, 0x5804000a, 0x4803889e, 0x5804000b, - 0x480388aa, 0x5804000c, 0x480388af, 0x5804000d, - 0x480388b2, 0x5804000e, 0x480388b1, 0x82040c00, - 0x0000000f, 0x41c41800, 0x4200b000, 0x00000030, - 0x50040000, 0x48001850, 0x80040800, 0x800c1800, - 0x8058b040, 0x040207fb, 0x41c41800, 0x4200b000, - 0x00000020, 0x50040000, 0x48001810, 0x80040800, - 0x800c1800, 0x8058b040, 0x040207fb, 0x497b8830, - 0x4200b000, 0x00000040, 0x50040000, 0x48038831, - 0x80040800, 0x8058b040, 0x040207fc, 0x497b88ac, - 0x4200b000, 0x00000010, 0x50040000, 0x480388ad, - 0x80040800, 0x8058b040, 0x040207fc, 0x497b8880, - 0x41780000, 0x0201f800, 0x001015e0, 0x59c408a4, - 0x82040d00, 0x0000000f, 0x82040580, 0x0000000c, - 0x02020800, 0x0010032e, 0x4a038805, 0x04000000, - 0x5c00b000, 0x1c01f000, 0x4803c856, 0x42000800, - 0x00000001, 0x0201f800, 0x00101bda, 0x4c580000, - 0x4ce80000, 0x42000000, 0x0010cb79, 0x0201f800, - 0x0010bc88, 0x59c41008, 0x4c080000, 0x82081500, - 0xffffff7f, 0x480b8808, 0x59c40004, 0x82000500, - 0x00003e02, 0x04000005, 0x4201d000, 0x00000014, - 0x0201f800, 0x0010645c, 0x59c40006, 0x82000500, - 0xffffff0f, 0x48038806, 0x0401fb06, 0x59a8006d, - 0x80000540, 0x04000014, 0x4a038805, 0x00000001, - 0x4c580000, 0x4200b000, 0x000006a4, 0x4201d000, - 0x00000064, 0x4c580000, 0x0201f800, 0x0010645c, - 0x0201f800, 0x001018f3, 0x5c00b000, 0x04000005, - 0x8058b040, 0x040207f6, 0x5c00b000, 0x0401f011, - 0x5c00b000, 0x4a038805, 0x00000010, 0x4a038808, - 0x00000004, 0x4200b000, 0x00000065, 0x59c40005, - 0x8c000508, 0x0402001d, 0x4201d000, 0x000003e8, - 0x0201f800, 0x0010645c, 0x8058b040, 0x040207f8, - 0x42002000, 0x00000007, 0x0401f9a1, 0x0401fad4, - 0x0201f800, 0x00106faf, 0x4803c856, 0x59a80078, - 0x8c00053e, 0x04000004, 0x0201f800, 0x0010b581, - 0x0401f003, 0x4a038808, 0x00000008, 0x4a035014, - 0x00000001, 0x4202d800, 0x00000001, 0x82000540, - 0x00000001, 0x0401f048, 0x42002000, 0x00000001, - 0x0401f98b, 0x0201f800, 0x001007f8, 0x42000000, - 0x0010cc68, 0x0201f800, 0x0010bc88, 0x0201f800, - 0x00100ce6, 0x497b8880, 0x59a8001f, 0x82000500, - 0x0000ffff, 0x4c000000, 0x0201f800, 0x001015e0, - 0x5c000000, 0x48038880, 0x41780800, 0x0201f800, - 0x00101bda, 0x4a038808, 0x00000000, 0x4a038805, - 0x00000008, 0x4200b000, 0x00000065, 0x4a038805, - 0x000000f0, 0x59a8006d, 0x80000540, 0x04000005, - 0x4201d000, 0x00000002, 0x0201f800, 0x0010645c, - 0x0201f800, 0x00101935, 0x42000800, 0x000000f0, - 0x59c40005, 0x80040d00, 0x04000008, 0x4201d000, - 0x000003e8, 0x0201f800, 0x0010645c, 0x8058b040, - 0x040207eb, 0x0401f7b7, 0x59a8006d, 0x80000540, - 0x04000004, 0x59c40005, 0x8c000506, 0x040007f4, - 0x42002000, 0x00000002, 0x0401f951, 0x59c40006, - 0x82000540, 0x000000f0, 0x48038806, 0x59a80012, - 0x80000540, 0x04020002, 0x80000000, 0x48038893, - 0x80000580, 0x4df00000, 0x0201f800, 0x0010195d, - 0x5c03e000, 0x5c001000, 0x480b8808, 0x5c01d000, - 0x5c00b000, 0x1c01f000, 0x4803c856, 0x42000800, - 0x00000001, 0x0201f800, 0x00101bda, 0x4c580000, - 0x4ce80000, 0x59c41008, 0x4c080000, 0x82081500, - 0xffffff7f, 0x480b8808, 0x59c40004, 0x82000500, - 0x00003e02, 0x04000005, 0x4201d000, 0x00000014, - 0x0201f800, 0x0010645c, 0x0201f800, 0x001007f8, - 0x42000000, 0x0010cc69, 0x0201f800, 0x0010bc88, - 0x0201f800, 0x00100ce6, 0x42002000, 0x00000000, - 0x0401f91f, 0x4a038808, 0x00000002, 0x80000580, - 0x48038880, 0x48038893, 0x0201f800, 0x001015e0, - 0x4200b000, 0x00000384, 0x4a038805, 0x000000f0, - 0x0201f800, 0x00101935, 0x42000800, 0x000000f0, - 0x59c40005, 0x80040d00, 0x04000024, 0x82000500, - 0x000000d0, 0x04020024, 0x4201d000, 0x00000067, - 0x0201f800, 0x0010645c, 0x8058b040, 0x040207ef, - 0x42002000, 0x00000007, 0x0401f901, 0x0201f800, - 0x00106faf, 0x0401fa32, 0x59a80078, 0x8c00053e, - 0x04000004, 0x0201f800, 0x0010b581, 0x0401f003, - 0x4a038808, 0x00000008, 0x4a035014, 0x00000001, - 0x4202d800, 0x00000001, 0x59c40006, 0x8400050a, - 0x48038806, 0x4a038805, 0x00000020, 0x82000540, - 0x00000001, 0x0401f016, 0x42002000, 0x00000002, - 0x0401f8e7, 0x497b8880, 0x59a80012, 0x80000540, - 0x04020002, 0x80000000, 0x48038893, 0x59a8001f, + 0x040207fb, 0x41c41800, 0x4200b000, 0x00000020, + 0x580c0010, 0x44000800, 0x80040800, 0x800c1800, + 0x8058b040, 0x040207fb, 0x497b8830, 0x4200b000, + 0x00000040, 0x59c40031, 0x44000800, 0x80040800, + 0x8058b040, 0x040207fc, 0x497b88ac, 0x4200b000, + 0x00000010, 0x59c400ad, 0x44000800, 0x80040800, + 0x8058b040, 0x040207fc, 0x59c41001, 0x4c080000, + 0x8408150c, 0x480b8801, 0x4a0370e4, 0x00000300, + 0x4a0370e5, 0xb0000000, 0x42000800, 0x00000800, + 0x80040840, 0x02000800, 0x0010032e, 0x59b800e5, + 0x8c000538, 0x040207fb, 0x4a0370e4, 0x00000200, + 0x42006000, 0xffffffff, 0x42006800, 0x80000000, + 0x0201f800, 0x001042a6, 0x4a038807, 0x00000001, + 0x497b8807, 0x0401fb89, 0x4a038808, 0x00000010, + 0x42006000, 0xfcf8ffff, 0x42006800, 0x01000000, + 0x0201f800, 0x001042a6, 0x5c001000, 0x480b8801, + 0x42000800, 0x0010e4fe, 0x50040000, 0x48038803, + 0x58040001, 0x48038804, 0x58040002, 0x4803880b, + 0x58040003, 0x4803888e, 0x58040004, 0x4803888f, + 0x58040005, 0x48038890, 0x58040006, 0x48038891, + 0x58040007, 0x48038892, 0x58040008, 0x48038893, + 0x58040009, 0x48038899, 0x5804000a, 0x4803889e, + 0x5804000b, 0x480388aa, 0x5804000c, 0x480388af, + 0x5804000d, 0x480388b2, 0x5804000e, 0x480388b1, + 0x82040c00, 0x0000000f, 0x41c41800, 0x4200b000, + 0x00000030, 0x50040000, 0x48001850, 0x80040800, + 0x800c1800, 0x8058b040, 0x040207fb, 0x41c41800, + 0x4200b000, 0x00000020, 0x50040000, 0x48001810, + 0x80040800, 0x800c1800, 0x8058b040, 0x040207fb, + 0x497b8830, 0x4200b000, 0x00000040, 0x50040000, + 0x48038831, 0x80040800, 0x8058b040, 0x040207fc, + 0x497b88ac, 0x4200b000, 0x00000010, 0x50040000, + 0x480388ad, 0x80040800, 0x8058b040, 0x040207fc, + 0x497b8880, 0x41780000, 0x0201f800, 0x001015e5, + 0x59c408a4, 0x82040d00, 0x0000000f, 0x82040580, + 0x0000000c, 0x02020800, 0x0010032e, 0x4a038805, + 0x04000000, 0x5c00b000, 0x1c01f000, 0x4803c856, + 0x42000800, 0x00000001, 0x0201f800, 0x00101bdf, + 0x4c580000, 0x4ce80000, 0x42000000, 0x0010ce79, + 0x0201f800, 0x0010bfb3, 0x59c41008, 0x4c080000, + 0x82081500, 0xffffff7f, 0x480b8808, 0x59c40004, + 0x82000500, 0x00003e02, 0x04000005, 0x4201d000, + 0x00000014, 0x0201f800, 0x00106661, 0x59c40006, + 0x82000500, 0xffffff0f, 0x48038806, 0x0401fb06, + 0x59a8006d, 0x80000540, 0x04000014, 0x4a038805, + 0x00000001, 0x4c580000, 0x4200b000, 0x000006a4, + 0x4201d000, 0x00000064, 0x4c580000, 0x0201f800, + 0x00106661, 0x0201f800, 0x001018f8, 0x5c00b000, + 0x04000005, 0x8058b040, 0x040207f6, 0x5c00b000, + 0x0401f011, 0x5c00b000, 0x4a038805, 0x00000010, + 0x4a038808, 0x00000004, 0x4200b000, 0x00000065, + 0x59c40005, 0x8c000508, 0x0402001d, 0x4201d000, + 0x000003e8, 0x0201f800, 0x00106661, 0x8058b040, + 0x040207f8, 0x42002000, 0x00000007, 0x0401f9a1, + 0x0401fad4, 0x0201f800, 0x001071b4, 0x4803c856, + 0x59a80078, 0x8c00053e, 0x04000004, 0x0201f800, + 0x0010b8ac, 0x0401f003, 0x4a038808, 0x00000008, + 0x4a035014, 0x00000001, 0x4202d800, 0x00000001, + 0x82000540, 0x00000001, 0x0401f048, 0x42002000, + 0x00000001, 0x0401f98b, 0x0201f800, 0x001007f6, + 0x42000000, 0x0010cf68, 0x0201f800, 0x0010bfb3, + 0x0201f800, 0x00100ce7, 0x497b8880, 0x59a8001f, 0x82000500, 0x0000ffff, 0x4c000000, 0x0201f800, - 0x001015e0, 0x5c000000, 0x48038880, 0x41780800, - 0x0201f800, 0x00101bda, 0x80000580, 0x4df00000, - 0x0201f800, 0x0010195d, 0x5c03e000, 0x5c001000, - 0x480b8808, 0x5c01d000, 0x5c00b000, 0x1c01f000, - 0x4803c856, 0x42000800, 0x00000001, 0x0201f800, - 0x00101bda, 0x42002000, 0x00000001, 0x0401f8c4, - 0x59c40004, 0x82000500, 0x00003e02, 0x0400000b, - 0x0201f800, 0x00106faf, 0x0401f9f1, 0x4a038808, - 0x00000008, 0x4a035014, 0x00000001, 0x4202d800, - 0x00000001, 0x0401f055, 0x0201f800, 0x001007f8, - 0x42000000, 0x0010cc6a, 0x0201f800, 0x0010bc88, - 0x0201f800, 0x00100ce6, 0x59c40006, 0x84000508, - 0x48038806, 0x4a038805, 0x00000010, 0x850e1d4c, - 0x42000800, 0x00000064, 0x42001000, 0x00104ed1, - 0x0201f800, 0x0010643e, 0x41780800, 0x0201f800, - 0x00101bda, 0x4a038808, 0x00000000, 0x497b8880, - 0x4a038805, 0x000000f0, 0x0201f800, 0x00101935, - 0x42000800, 0x000000f0, 0x59c40005, 0x80040d00, - 0x0400000e, 0x82000500, 0x000000e0, 0x0402000e, - 0x4201d000, 0x000003e8, 0x0201f800, 0x0010645c, - 0x0201f800, 0x00106275, 0x59940004, 0x80000540, - 0x040207ec, 0x0401f025, 0x42002000, 0x00000002, - 0x0401f883, 0x4c080000, 0x42001000, 0x00104ed1, - 0x0201f800, 0x00106449, 0x5c001000, 0x497b8880, + 0x001015e5, 0x5c000000, 0x48038880, 0x41780800, + 0x0201f800, 0x00101bdf, 0x4a038808, 0x00000000, + 0x4a038805, 0x00000008, 0x4200b000, 0x00000065, + 0x4a038805, 0x000000f0, 0x59a8006d, 0x80000540, + 0x04000005, 0x4201d000, 0x00000002, 0x0201f800, + 0x00106661, 0x0201f800, 0x0010193a, 0x42000800, + 0x000000f0, 0x59c40005, 0x80040d00, 0x04000008, + 0x4201d000, 0x000003e8, 0x0201f800, 0x00106661, + 0x8058b040, 0x040207eb, 0x0401f7b7, 0x59a8006d, + 0x80000540, 0x04000004, 0x59c40005, 0x8c000506, + 0x040007f4, 0x42002000, 0x00000002, 0x0401f951, + 0x59c40006, 0x82000540, 0x000000f0, 0x48038806, 0x59a80012, 0x80000540, 0x04020002, 0x80000000, - 0x48038893, 0x59a8001f, 0x82000500, 0x0000ffff, - 0x4c000000, 0x0201f800, 0x001015e0, 0x5c000000, - 0x48038880, 0x850e1d0c, 0x59c40006, 0x84000548, - 0x48038806, 0x0201f800, 0x0010195d, 0x41780800, - 0x0201f800, 0x00101bda, 0x59c40008, 0x82000540, - 0x00000080, 0x48038808, 0x1c01f000, 0x4803c856, - 0x4d400000, 0x4d3c0000, 0x0201f800, 0x00106faf, - 0x0201f800, 0x0010bd90, 0x04020039, 0x599c1017, - 0x8d0e1d00, 0x0402000b, 0x8c08151a, 0x04000034, - 0x850e1d42, 0x42028000, 0x00000004, 0x42027800, - 0x00000008, 0x8d0e1d20, 0x04020007, 0x0401f028, - 0x42028000, 0x00000004, 0x417a7800, 0x8d0e1d20, - 0x04000023, 0x0201f800, 0x0010bd9f, 0x42024800, - 0x0010ccd1, 0x59240200, 0x8c000500, 0x04000009, - 0x4c580000, 0x42000800, 0x00000001, 0x42001000, - 0x00000100, 0x0201f800, 0x0010654e, 0x5c00b000, - 0x83264c00, 0x0000000b, 0x8058b040, 0x040207f2, - 0x42024000, 0x0000ffff, 0x4d400000, 0x42028000, - 0x0000000e, 0x42003000, 0x00000003, 0x42028800, - 0x0000ffff, 0x0201f800, 0x0010ae86, 0x5c028000, - 0x599c0817, 0x8c040d0a, 0x04020005, 0x4943c857, - 0x493fc857, 0x0201f800, 0x0010fbe5, 0x497b8880, - 0x4202d800, 0x00000001, 0x0401fc66, 0x5c027800, - 0x5c028000, 0x1c01f000, 0x42000800, 0x00000001, - 0x0201f800, 0x00101bda, 0x0201f800, 0x001007f8, - 0x42000000, 0x0010cc6b, 0x0201f800, 0x0010bc88, - 0x0201f800, 0x00100ce6, 0x42000000, 0x00000001, - 0x0201f800, 0x001015e0, 0x4a038880, 0x00000001, - 0x59c80835, 0x59a80075, 0x80040d80, 0x04000002, - 0x48039035, 0x0201f000, 0x0010195d, 0x42000800, - 0x0010c7fb, 0x48100802, 0x82101480, 0x00000008, - 0x04001009, 0x58040001, 0x4803c857, 0x4813c857, - 0x58040003, 0x80000000, 0x48000803, 0x42002000, - 0x00000002, 0x58040001, 0x82001480, 0x0000000b, - 0x04001008, 0x4803c857, 0x4813c857, 0x58040003, - 0x80000000, 0x48000803, 0x42000000, 0x00000000, - 0x48000800, 0x59c428a4, 0x82142d00, 0x0000000f, - 0x82142d80, 0x0000000c, 0x0c000002, 0x0401f136, - 0x00105303, 0x00105323, 0x00105344, 0x00105365, - 0x00105386, 0x001053a1, 0x001053b2, 0x001053c9, - 0x001053e0, 0x001053f7, 0x001053fa, 0x40100000, - 0x0c01f001, 0x0010530d, 0x00105310, 0x00105313, - 0x00105314, 0x00105317, 0x0010531a, 0x0010531e, - 0x00105321, 0x4a000801, 0x00000002, 0x1c01f000, - 0x4a000801, 0x00000003, 0x0401f0e9, 0x1c01f000, - 0x4a000801, 0x00000007, 0x1c01f000, 0x4a000801, - 0x00000004, 0x0401f0e6, 0x4a000801, 0x00000005, - 0x0401f8eb, 0x0401f0e6, 0x4a000801, 0x00000005, - 0x0401f0e7, 0x4813c857, 0x1c01f000, 0x40100000, - 0x0c01f001, 0x0010532d, 0x00105330, 0x00105333, - 0x00105334, 0x00105337, 0x0010533a, 0x0010533e, - 0x00105341, 0x4a000801, 0x00000002, 0x1c01f000, - 0x4a000801, 0x00000003, 0x1c01f000, 0x1c01f000, - 0x4a000801, 0x00000007, 0x1c01f000, 0x4a000801, - 0x00000004, 0x0401f0c6, 0x4a000801, 0x00000005, - 0x0401f8cb, 0x0401f0c6, 0x4a000801, 0x00000005, - 0x1c01f000, 0x4a000801, 0x00000005, 0x0401f0bc, - 0x40100000, 0x0c01f001, 0x0010534e, 0x0010534f, - 0x00105352, 0x00105355, 0x00105358, 0x0010535b, - 0x0010535f, 0x00105362, 0x1c01f000, 0x4a000801, - 0x00000003, 0x1c01f000, 0x4a000801, 0x00000000, + 0x48038893, 0x80000580, 0x4df00000, 0x0201f800, + 0x00101962, 0x5c03e000, 0x5c001000, 0x480b8808, + 0x5c01d000, 0x5c00b000, 0x1c01f000, 0x4803c856, + 0x42000800, 0x00000001, 0x0201f800, 0x00101bdf, + 0x4c580000, 0x4ce80000, 0x59c41008, 0x4c080000, + 0x82081500, 0xffffff7f, 0x480b8808, 0x59c40004, + 0x82000500, 0x00003e02, 0x04000005, 0x4201d000, + 0x00000014, 0x0201f800, 0x00106661, 0x0201f800, + 0x001007f6, 0x42000000, 0x0010cf69, 0x0201f800, + 0x0010bfb3, 0x0201f800, 0x00100ce7, 0x42002000, + 0x00000000, 0x0401f91f, 0x4a038808, 0x00000002, + 0x80000580, 0x48038880, 0x48038893, 0x0201f800, + 0x001015e5, 0x4200b000, 0x00000384, 0x4a038805, + 0x000000f0, 0x0201f800, 0x0010193a, 0x42000800, + 0x000000f0, 0x59c40005, 0x80040d00, 0x04000024, + 0x82000500, 0x000000d0, 0x04020024, 0x4201d000, + 0x00000067, 0x0201f800, 0x00106661, 0x8058b040, + 0x040207ef, 0x42002000, 0x00000007, 0x0401f901, + 0x0201f800, 0x001071b4, 0x0401fa32, 0x59a80078, + 0x8c00053e, 0x04000004, 0x0201f800, 0x0010b8ac, + 0x0401f003, 0x4a038808, 0x00000008, 0x4a035014, + 0x00000001, 0x4202d800, 0x00000001, 0x59c40006, + 0x8400050a, 0x48038806, 0x4a038805, 0x00000020, + 0x82000540, 0x00000001, 0x0401f016, 0x42002000, + 0x00000002, 0x0401f8e7, 0x497b8880, 0x59a80012, + 0x80000540, 0x04020002, 0x80000000, 0x48038893, + 0x59a8001f, 0x82000500, 0x0000ffff, 0x4c000000, + 0x0201f800, 0x001015e5, 0x5c000000, 0x48038880, + 0x41780800, 0x0201f800, 0x00101bdf, 0x80000580, + 0x4df00000, 0x0201f800, 0x00101962, 0x5c03e000, + 0x5c001000, 0x480b8808, 0x5c01d000, 0x5c00b000, + 0x1c01f000, 0x4803c856, 0x42000800, 0x00000001, + 0x0201f800, 0x00101bdf, 0x42002000, 0x00000001, + 0x0401f8c4, 0x59c40004, 0x82000500, 0x00003e02, + 0x0400000b, 0x0201f800, 0x001071b4, 0x0401f9f1, + 0x4a038808, 0x00000008, 0x4a035014, 0x00000001, + 0x4202d800, 0x00000001, 0x0401f055, 0x0201f800, + 0x001007f6, 0x42000000, 0x0010cf6a, 0x0201f800, + 0x0010bfb3, 0x0201f800, 0x00100ce7, 0x59c40006, + 0x84000508, 0x48038806, 0x4a038805, 0x00000010, + 0x850e1d4c, 0x42000800, 0x00000064, 0x42001000, + 0x00105002, 0x0201f800, 0x00106643, 0x41780800, + 0x0201f800, 0x00101bdf, 0x4a038808, 0x00000000, + 0x497b8880, 0x4a038805, 0x000000f0, 0x0201f800, + 0x0010193a, 0x42000800, 0x000000f0, 0x59c40005, + 0x80040d00, 0x0400000e, 0x82000500, 0x000000e0, + 0x0402000e, 0x4201d000, 0x000003e8, 0x0201f800, + 0x00106661, 0x0201f800, 0x0010647a, 0x59940004, + 0x80000540, 0x040207ec, 0x0401f025, 0x42002000, + 0x00000002, 0x0401f883, 0x4c080000, 0x42001000, + 0x00105002, 0x0201f800, 0x0010664e, 0x5c001000, + 0x497b8880, 0x59a80012, 0x80000540, 0x04020002, + 0x80000000, 0x48038893, 0x59a8001f, 0x82000500, + 0x0000ffff, 0x4c000000, 0x0201f800, 0x001015e5, + 0x5c000000, 0x48038880, 0x850e1d0c, 0x59c40006, + 0x84000548, 0x48038806, 0x0201f800, 0x00101962, + 0x41780800, 0x0201f800, 0x00101bdf, 0x59c40008, + 0x82000540, 0x00000080, 0x48038808, 0x1c01f000, + 0x4803c856, 0x4d400000, 0x4d3c0000, 0x0201f800, + 0x001071b4, 0x0201f800, 0x0010c0bb, 0x04020039, + 0x599c1017, 0x8d0e1d00, 0x0402000b, 0x8c08151a, + 0x04000034, 0x850e1d42, 0x42028000, 0x00000004, + 0x42027800, 0x00000008, 0x8d0e1d20, 0x04020007, + 0x0401f028, 0x42028000, 0x00000004, 0x417a7800, + 0x8d0e1d20, 0x04000023, 0x0201f800, 0x0010c0ca, + 0x42024800, 0x0010cfd1, 0x59240200, 0x8c000500, + 0x04000009, 0x4c580000, 0x42000800, 0x00000001, + 0x42001000, 0x00000100, 0x0201f800, 0x00106753, + 0x5c00b000, 0x83264c00, 0x0000000b, 0x8058b040, + 0x040207f2, 0x42024000, 0x0000ffff, 0x4d400000, + 0x42028000, 0x0000000e, 0x42003000, 0x00000003, + 0x42028800, 0x0000ffff, 0x0201f800, 0x0010b195, + 0x5c028000, 0x599c0817, 0x8c040d0a, 0x04020005, + 0x4943c857, 0x493fc857, 0x0201f800, 0x0010fef2, + 0x497b8880, 0x4202d800, 0x00000001, 0x0401fc66, + 0x5c027800, 0x5c028000, 0x1c01f000, 0x42000800, + 0x00000001, 0x0201f800, 0x00101bdf, 0x0201f800, + 0x001007f6, 0x42000000, 0x0010cf6b, 0x0201f800, + 0x0010bfb3, 0x0201f800, 0x00100ce7, 0x42000000, + 0x00000001, 0x0201f800, 0x001015e5, 0x4a038880, + 0x00000001, 0x59c80835, 0x59a80075, 0x80040d80, + 0x04000002, 0x48039035, 0x0201f000, 0x00101962, + 0x42000800, 0x0010cafb, 0x48100802, 0x82101480, + 0x00000008, 0x04001009, 0x58040001, 0x4803c857, + 0x4813c857, 0x58040003, 0x80000000, 0x48000803, + 0x42002000, 0x00000002, 0x58040001, 0x82001480, + 0x0000000b, 0x04001008, 0x4803c857, 0x4813c857, + 0x58040003, 0x80000000, 0x48000803, 0x42000000, + 0x00000000, 0x48000800, 0x59c428a4, 0x82142d00, + 0x0000000f, 0x82142d80, 0x0000000c, 0x0c000002, + 0x0401f136, 0x00105434, 0x00105454, 0x00105475, + 0x00105496, 0x001054b7, 0x001054d2, 0x001054e3, + 0x001054fa, 0x00105511, 0x00105528, 0x0010552b, + 0x40100000, 0x0c01f001, 0x0010543e, 0x00105441, + 0x00105444, 0x00105445, 0x00105448, 0x0010544b, + 0x0010544f, 0x00105452, 0x4a000801, 0x00000002, + 0x1c01f000, 0x4a000801, 0x00000003, 0x0401f0e9, 0x1c01f000, 0x4a000801, 0x00000007, 0x1c01f000, - 0x4a000801, 0x00000004, 0x0401f0a5, 0x4a000801, - 0x00000005, 0x0401f8aa, 0x0401f0a5, 0x4a000801, + 0x4a000801, 0x00000004, 0x0401f0e6, 0x4a000801, + 0x00000005, 0x0401f8eb, 0x0401f0e6, 0x4a000801, + 0x00000005, 0x0401f0e7, 0x4813c857, 0x1c01f000, + 0x40100000, 0x0c01f001, 0x0010545e, 0x00105461, + 0x00105464, 0x00105465, 0x00105468, 0x0010546b, + 0x0010546f, 0x00105472, 0x4a000801, 0x00000002, + 0x1c01f000, 0x4a000801, 0x00000003, 0x1c01f000, + 0x1c01f000, 0x4a000801, 0x00000007, 0x1c01f000, + 0x4a000801, 0x00000004, 0x0401f0c6, 0x4a000801, + 0x00000005, 0x0401f8cb, 0x0401f0c6, 0x4a000801, 0x00000005, 0x1c01f000, 0x4a000801, 0x00000005, - 0x0401f09b, 0x40100000, 0x0c01f001, 0x0010536f, - 0x00105372, 0x00105373, 0x00105376, 0x00105379, - 0x0010537c, 0x00105380, 0x00105383, 0x4a000801, - 0x00000002, 0x1c01f000, 0x1c01f000, 0x4a000801, + 0x0401f0bc, 0x40100000, 0x0c01f001, 0x0010547f, + 0x00105480, 0x00105483, 0x00105486, 0x00105489, + 0x0010548c, 0x00105490, 0x00105493, 0x1c01f000, + 0x4a000801, 0x00000003, 0x1c01f000, 0x4a000801, 0x00000000, 0x1c01f000, 0x4a000801, 0x00000007, - 0x1c01f000, 0x4a000801, 0x00000004, 0x0401f084, - 0x4a000801, 0x00000005, 0x0401f889, 0x0401f084, + 0x1c01f000, 0x4a000801, 0x00000004, 0x0401f0a5, + 0x4a000801, 0x00000005, 0x0401f8aa, 0x0401f0a5, 0x4a000801, 0x00000005, 0x1c01f000, 0x4a000801, - 0x00000005, 0x0401f07a, 0x40100000, 0x0c01f001, - 0x00105390, 0x00105393, 0x00105393, 0x00105394, - 0x00105393, 0x00105397, 0x0010539b, 0x0010539e, + 0x00000005, 0x0401f09b, 0x40100000, 0x0c01f001, + 0x001054a0, 0x001054a3, 0x001054a4, 0x001054a7, + 0x001054aa, 0x001054ad, 0x001054b1, 0x001054b4, 0x4a000801, 0x00000002, 0x1c01f000, 0x1c01f000, - 0x4a000801, 0x00000007, 0x1c01f000, 0x4a000801, - 0x00000005, 0x0401f86e, 0x0401f069, 0x4a000801, - 0x00000005, 0x1c01f000, 0x4a000801, 0x00000005, - 0x0401f05f, 0x40100000, 0x0c01f001, 0x001053b1, - 0x001053b1, 0x001053b1, 0x001053ab, 0x001053ae, - 0x001053b1, 0x001053b1, 0x001053b1, 0x4a000801, + 0x4a000801, 0x00000000, 0x1c01f000, 0x4a000801, 0x00000007, 0x1c01f000, 0x4a000801, 0x00000004, - 0x1c01f000, 0x1c01f000, 0x40100000, 0x0c01f001, - 0x001053bc, 0x001053bf, 0x001053bf, 0x001053c0, - 0x001053c3, 0x001053c6, 0x001053c6, 0x001053c6, - 0x4a000801, 0x00000002, 0x1c01f000, 0x1c01f000, + 0x0401f084, 0x4a000801, 0x00000005, 0x0401f889, + 0x0401f084, 0x4a000801, 0x00000005, 0x1c01f000, + 0x4a000801, 0x00000005, 0x0401f07a, 0x40100000, + 0x0c01f001, 0x001054c1, 0x001054c4, 0x001054c4, + 0x001054c5, 0x001054c4, 0x001054c8, 0x001054cc, + 0x001054cf, 0x4a000801, 0x00000002, 0x1c01f000, + 0x1c01f000, 0x4a000801, 0x00000007, 0x1c01f000, + 0x4a000801, 0x00000005, 0x0401f86e, 0x0401f069, + 0x4a000801, 0x00000005, 0x1c01f000, 0x4a000801, + 0x00000005, 0x0401f05f, 0x40100000, 0x0c01f001, + 0x001054e2, 0x001054e2, 0x001054e2, 0x001054dc, + 0x001054df, 0x001054e2, 0x001054e2, 0x001054e2, 0x4a000801, 0x00000007, 0x1c01f000, 0x4a000801, - 0x00000004, 0x0401f03a, 0x4a000801, 0x00000008, - 0x1c01f000, 0x40100000, 0x0c01f001, 0x001053d3, - 0x001053d6, 0x001053d9, 0x001053d9, 0x001053da, - 0x001053dd, 0x001053dd, 0x001053dd, 0x4a000801, - 0x00000002, 0x1c01f000, 0x4a000801, 0x00000003, - 0x1c01f000, 0x1c01f000, 0x4a000801, 0x00000004, - 0x0401f023, 0x4a000801, 0x00000008, 0x1c01f000, - 0x40100000, 0x0c01f001, 0x001053ea, 0x001053ea, - 0x001053ed, 0x001053ee, 0x001053f1, 0x001053ed, - 0x001053f4, 0x001053ed, 0x4a000801, 0x00000005, - 0x0401f00f, 0x1c01f000, 0x4a000801, 0x00000007, - 0x1c01f000, 0x4a000801, 0x00000004, 0x1c01f000, - 0x4a000801, 0x00000008, 0x1c01f000, 0x4a000801, - 0x00000009, 0x1c01f000, 0x1c01f000, 0x42000000, - 0x0010cb63, 0x0201f000, 0x0010bc88, 0x42000000, - 0x0010cb60, 0x0201f000, 0x0010bc88, 0x42000000, - 0x0010cb62, 0x0201f000, 0x0010bc88, 0x42000000, - 0x0010cb61, 0x0201f000, 0x0010bc88, 0x42000800, - 0x0010c7fb, 0x58040001, 0x48000800, 0x4a000801, - 0x00000005, 0x4a000802, 0x00000008, 0x1c01f000, - 0x42000800, 0x0010c7fb, 0x58040001, 0x48000800, - 0x4a000801, 0x00000001, 0x4a000802, 0x0000000a, - 0x1c01f000, 0x42000800, 0x0010c7fb, 0x58040001, - 0x48000800, 0x4a000801, 0x00000006, 0x4a000802, - 0x00000009, 0x1c01f000, 0x42000800, 0x0010c7fb, - 0x4a000801, 0x0000000a, 0x4a000800, 0x0000000a, - 0x1c01f000, 0x496fc857, 0x4813c857, 0x40100000, - 0x0c01f001, 0x00105447, 0x00105447, 0x00105447, - 0x00105447, 0x00105439, 0x00105441, 0x00105445, - 0x00105447, 0x59a8021b, 0x8c000506, 0x04000003, - 0x8c000502, 0x0400000a, 0x0401f80a, 0x040207c0, - 0x0401f007, 0x0401f807, 0x04000005, 0x0401ffc0, - 0x0401f7c3, 0x0401f803, 0x040207c1, 0x1c01f000, - 0x496fc857, 0x416c0000, 0x82000c80, 0x00000008, - 0x02021800, 0x0010032e, 0x0c01f001, 0x00105457, - 0x00105459, 0x00105459, 0x00105459, 0x00105457, - 0x00105457, 0x00105457, 0x00105459, 0x80000580, - 0x1c01f000, 0x82000540, 0x00000001, 0x1c01f000, - 0x4202e000, 0x00000000, 0x497b3004, 0x4a03b004, - 0x60000001, 0x59d80005, 0x4a03b004, 0x90000001, - 0x4a03a804, 0x60000001, 0x59d40005, 0x4a03a804, - 0x90000001, 0x0201f000, 0x00105b60, 0x4a03c825, - 0x00000004, 0x4a03c827, 0x00000004, 0x599c0409, - 0x80000d40, 0x04000020, 0x599c0407, 0x80000540, - 0x04000007, 0x800000cc, 0x599c100b, 0x80080400, - 0x4803b000, 0x497bb002, 0x59d80001, 0x599c000b, - 0x4803b000, 0x599c000c, 0x4803b001, 0x599c0407, - 0x80000540, 0x04020002, 0x497bb002, 0x599c0c09, - 0x82040540, 0x00400000, 0x4803b003, 0x4a03b009, - 0x00000005, 0x4a03b004, 0x10000001, 0x59e00803, - 0x82040d00, 0xfffffeff, 0x82040d40, 0x00008000, - 0x4807c003, 0x599c040a, 0x80000540, 0x04000020, - 0x599c0408, 0x80000540, 0x04000007, 0x800000cc, - 0x599c100f, 0x80080400, 0x4803a800, 0x497ba802, - 0x59d40001, 0x599c000f, 0x4803a800, 0x599c0010, - 0x4803a801, 0x599c0408, 0x80000540, 0x04020002, - 0x497ba802, 0x599c0c0a, 0x82040540, 0x00400000, - 0x4803a803, 0x4a03a809, 0x00000005, 0x4a03a804, - 0x10000001, 0x59e00803, 0x82040d00, 0xfffffbff, - 0x82040d40, 0x00008000, 0x4807c003, 0x800409c0, - 0x04000007, 0x4202e000, 0x00000001, 0x0200b800, - 0x00020874, 0x0200f000, 0x00020889, 0x1c01f000, - 0x0201f800, 0x0010032e, 0x1c01f000, 0x0401f852, - 0x5c03e000, 0x0201f000, 0x000206be, 0x0201f800, - 0x00020705, 0x0401f7fb, 0x00105511, 0x00105511, - 0x00105511, 0x00105511, 0x00105521, 0x00105511, - 0x00105511, 0x00105511, 0x00105511, 0x00105511, - 0x000206fc, 0x00105511, 0x00105511, 0x00105521, - 0x00105521, 0x00105511, 0x00105511, 0x00105511, - 0x00105511, 0x00105511, 0x00105511, 0x00105511, - 0x00105511, 0x00105511, 0x00105511, 0x00105511, - 0x00105511, 0x00105511, 0x00105511, 0x00105511, - 0x00105511, 0x00105511, 0x00105511, 0x00105511, - 0x00105511, 0x00105511, 0x00105511, 0x00105511, - 0x00105511, 0x00105511, 0x00105511, 0x00105511, - 0x00105511, 0x00105511, 0x00105511, 0x00105511, - 0x00105511, 0x00105511, 0x00105511, 0x00105511, - 0x00105511, 0x00105511, 0x00105511, 0x00105511, - 0x00105511, 0x00105511, 0x00105511, 0x00105511, - 0x00105511, 0x00105511, 0x00105511, 0x00105511, - 0x00105511, 0x00105511, 0x00105511, 0x00105511, - 0x00105511, 0x00105511, 0x00105511, 0x00105511, - 0x00105511, 0x00105511, 0x00105511, 0x00105511, - 0x000206fc, 0x492fc857, 0x42000000, 0x0010cc1e, - 0x0201f800, 0x0010bc88, 0x42000000, 0x00000400, - 0x0401f019, 0x492fc857, 0x42000000, 0x0010cc1d, - 0x0201f800, 0x0010bc88, 0x42000000, 0x00001000, - 0x0401f011, 0x492fc857, 0x42000000, 0x0010cc1c, - 0x0201f800, 0x0010bc88, 0x42000000, 0x00002000, - 0x0401f009, 0x492fc857, 0x42000000, 0x0010cc1f, - 0x0201f800, 0x0010bc88, 0x42000000, 0x00000800, - 0x0401f001, 0x4803c857, 0x592c0c05, 0x82040d00, - 0xffff80ff, 0x80040540, 0x59980803, 0x800409c0, - 0x04000002, 0x8400051e, 0x48025c05, 0x0201f800, - 0x000203ef, 0x83700580, 0x00000003, 0x4202e000, - 0x00000001, 0x04000002, 0x1c01f000, 0x599a5801, - 0x812e59c0, 0x040207dc, 0x0201f800, 0x0010032e, - 0x492fc857, 0x80140110, 0x80000040, 0x04000039, - 0x040017cd, 0x4a033006, 0x00105584, 0x0201f000, - 0x000206d1, 0x492fc857, 0x80140110, 0x040007c6, - 0x80000040, 0x0400004a, 0x4a033006, 0x0010559f, - 0x0201f000, 0x000206d1, 0x492fc857, 0x0201f800, - 0x0010bd90, 0x02020000, 0x000206e1, 0x492fc856, - 0x83440400, 0x0010bf80, 0x50000000, 0x80026d40, - 0x0400000c, 0x592e4411, 0x81224110, 0x59340013, - 0x80000130, 0x81200580, 0x04020006, 0x4937c857, - 0x59340200, 0x8c00050e, 0x02020000, 0x000206e1, - 0x42028000, 0x00000028, 0x41780800, 0x417a6000, - 0x0201f800, 0x00104cf5, 0x0201f800, 0x00109824, - 0x0201f000, 0x000203ef, 0x82000500, 0x0f000000, - 0x8000012a, 0x592c0c0b, 0x82040d00, 0x0000ff87, - 0x80040540, 0x48025c0b, 0x0201f000, 0x000206f7, - 0x592c0a0b, 0x8c040d02, 0x04020015, 0x492fc857, - 0x8d0e1d0e, 0x0402000f, 0x592c0208, 0x80000540, - 0x04000005, 0x0201f800, 0x0010425f, 0x04020004, - 0x1c01f000, 0x42000000, 0x00000000, 0x592c0a07, - 0x48065c07, 0x48025a07, 0x0201f000, 0x000203ef, - 0x42000000, 0x00000028, 0x0401f7f9, 0x42000800, - 0x00000009, 0x0201f000, 0x00106a53, 0x492fc857, - 0x592c0409, 0x80000540, 0x04020787, 0x8d0e1d0e, - 0x04020009, 0x592c0208, 0x80000540, 0x04000782, - 0x497a5a07, 0x0201f800, 0x001042bf, 0x04020004, - 0x1c01f000, 0x42000000, 0x00000028, 0x48025a07, - 0x0201f000, 0x000203ef, 0x592e8a07, 0x592c0407, - 0x4947c857, 0x4803c857, 0x82000500, 0x000000ff, - 0x4200b800, 0x00000001, 0x82000d80, 0x00000001, - 0x04000015, 0x417a8800, 0x4200b800, 0x000007f0, - 0x82000d80, 0x00000002, 0x0400000f, 0x80000540, - 0x02020000, 0x000203ef, 0x592e8a07, 0x0201f800, - 0x0002034c, 0x02020000, 0x000203ef, 0x592e9009, - 0x592e980a, 0x0201f800, 0x001046dc, 0x0201f000, - 0x000203ef, 0x850e1d00, 0x0201f800, 0x0002034c, - 0x02000800, 0x0010480b, 0x81468800, 0x805cb840, - 0x040207fa, 0x0201f000, 0x000203ef, 0x592c0a09, - 0x4807c857, 0x592e4411, 0x81224110, 0x82040580, - 0x0000000e, 0x04000091, 0x82040580, 0x0000002a, - 0x0400002c, 0x82040580, 0x0000000f, 0x02000000, - 0x00105b76, 0x82040580, 0x0000002e, 0x02000000, - 0x00105b76, 0x4c040000, 0x0201f800, 0x00105acb, - 0x5c000800, 0x02020000, 0x00105b7d, 0x82040580, - 0x00000046, 0x040000a2, 0x82040580, 0x00000045, - 0x04000034, 0x82040580, 0x00000049, 0x02000000, - 0x00105b76, 0x82040580, 0x00000029, 0x02020000, - 0x00105b7d, 0x592e8a07, 0x0201f800, 0x0010497a, - 0x02020000, 0x00105b76, 0x59340200, 0x84000518, - 0x48026a00, 0x592e600a, 0x4933c857, 0x83300580, - 0xffffffff, 0x04020090, 0x0201f000, 0x00105b76, - 0x83200580, 0x000000ff, 0x04000009, 0x83200400, - 0x0010bdc7, 0x50024800, 0x59240a00, 0x84040d16, - 0x48064a00, 0x0201f000, 0x00105b76, 0x42024800, - 0x0010ccd1, 0x0201f800, 0x0010bd9f, 0x59240200, - 0x8c000500, 0x04000004, 0x59240200, 0x84000516, - 0x48024a00, 0x83264c00, 0x0000000b, 0x8058b040, - 0x040207f7, 0x850e1d04, 0x0201f000, 0x00105b76, - 0x592c1408, 0x480bc857, 0x0201f800, 0x00109ac1, - 0x411e6000, 0x04020004, 0x4803c856, 0x0201f000, - 0x00105b7d, 0x59300c07, 0x82040580, 0x00000004, - 0x04000004, 0x4803c856, 0x0201f000, 0x00105b7d, - 0x592c0208, 0x8c000506, 0x04000010, 0x0201f800, - 0x00106c3c, 0x4df00000, 0x0201f800, 0x00106b26, - 0x0201f800, 0x0010fe38, 0x80c40040, 0x5c03e000, - 0x02000800, 0x00106c29, 0x0201f800, 0x00107cbe, - 0x0201f000, 0x00105b76, 0x592e380a, 0x591c1415, - 0x8c081516, 0x02000000, 0x00105b7d, 0x59300009, - 0x800001c0, 0x02020800, 0x0010032e, 0x84081554, - 0x480a3c15, 0x4a026403, 0x0000003a, 0x592c040c, - 0x80000540, 0x04000007, 0x4a026403, 0x0000003b, - 0x592c020d, 0x4802641b, 0x592c040d, 0x4802621b, - 0x4a026203, 0x00000001, 0x42000800, 0x80000040, - 0x0201f800, 0x00105b87, 0x04000004, 0x492e6009, - 0x0201f000, 0x00020b3e, 0x0201f800, 0x00020b3e, - 0x0201f000, 0x00105b76, 0x83200d80, 0x000000ff, - 0x04000013, 0x42000000, 0x0010ccd0, 0x50000000, - 0x81200480, 0x02021000, 0x0002086a, 0x83200400, - 0x0010bdc7, 0x50024800, 0x59240200, 0x8c000500, - 0x02000000, 0x0002086a, 0x59240206, 0x84000510, - 0x48024a06, 0x0201f000, 0x00105b76, 0x42024800, - 0x0010ccd1, 0x0201f800, 0x0010bd9f, 0x59240200, - 0x8c000500, 0x04000004, 0x59240206, 0x84000510, - 0x48024a06, 0x83264c00, 0x0000000b, 0x8058b040, - 0x040207f7, 0x0201f000, 0x00105b76, 0x592c1208, - 0x8c081500, 0x02020000, 0x00105b76, 0x592e8a07, - 0x592e600a, 0x0201f800, 0x00109acc, 0x04020004, - 0x4803c856, 0x0201f000, 0x00105b7d, 0x59300c07, + 0x00000004, 0x1c01f000, 0x1c01f000, 0x40100000, + 0x0c01f001, 0x001054ed, 0x001054f0, 0x001054f0, + 0x001054f1, 0x001054f4, 0x001054f7, 0x001054f7, + 0x001054f7, 0x4a000801, 0x00000002, 0x1c01f000, + 0x1c01f000, 0x4a000801, 0x00000007, 0x1c01f000, + 0x4a000801, 0x00000004, 0x0401f03a, 0x4a000801, + 0x00000008, 0x1c01f000, 0x40100000, 0x0c01f001, + 0x00105504, 0x00105507, 0x0010550a, 0x0010550a, + 0x0010550b, 0x0010550e, 0x0010550e, 0x0010550e, + 0x4a000801, 0x00000002, 0x1c01f000, 0x4a000801, + 0x00000003, 0x1c01f000, 0x1c01f000, 0x4a000801, + 0x00000004, 0x0401f023, 0x4a000801, 0x00000008, + 0x1c01f000, 0x40100000, 0x0c01f001, 0x0010551b, + 0x0010551b, 0x0010551e, 0x0010551f, 0x00105522, + 0x0010551e, 0x00105525, 0x0010551e, 0x4a000801, + 0x00000005, 0x0401f00f, 0x1c01f000, 0x4a000801, + 0x00000007, 0x1c01f000, 0x4a000801, 0x00000004, + 0x1c01f000, 0x4a000801, 0x00000008, 0x1c01f000, + 0x4a000801, 0x00000009, 0x1c01f000, 0x1c01f000, + 0x42000000, 0x0010ce63, 0x0201f000, 0x0010bfb3, + 0x42000000, 0x0010ce60, 0x0201f000, 0x0010bfb3, + 0x42000000, 0x0010ce62, 0x0201f000, 0x0010bfb3, + 0x42000000, 0x0010ce61, 0x0201f000, 0x0010bfb3, + 0x42000800, 0x0010cafb, 0x58040001, 0x48000800, + 0x4a000801, 0x00000005, 0x4a000802, 0x00000008, + 0x1c01f000, 0x42000800, 0x0010cafb, 0x58040001, + 0x48000800, 0x4a000801, 0x00000001, 0x4a000802, + 0x0000000a, 0x1c01f000, 0x42000800, 0x0010cafb, + 0x58040001, 0x48000800, 0x4a000801, 0x00000006, + 0x4a000802, 0x00000009, 0x1c01f000, 0x42000800, + 0x0010cafb, 0x4a000801, 0x0000000a, 0x4a000800, + 0x0000000a, 0x1c01f000, 0x496fc857, 0x4813c857, + 0x40100000, 0x0c01f001, 0x00105578, 0x00105578, + 0x00105578, 0x00105578, 0x0010556a, 0x00105572, + 0x00105576, 0x00105578, 0x59a8021b, 0x8c000506, + 0x04000003, 0x8c000502, 0x0400000a, 0x0401f80a, + 0x040207c0, 0x0401f007, 0x0401f807, 0x04000005, + 0x0401ffc0, 0x0401f7c3, 0x0401f803, 0x040207c1, + 0x1c01f000, 0x496fc857, 0x416c0000, 0x82000c80, + 0x00000008, 0x02021800, 0x0010032e, 0x0c01f001, + 0x00105588, 0x0010558a, 0x0010558a, 0x0010558a, + 0x00105588, 0x00105588, 0x00105588, 0x0010558a, + 0x80000580, 0x1c01f000, 0x82000540, 0x00000001, + 0x1c01f000, 0x4202e000, 0x00000000, 0x497b3004, + 0x4a03b004, 0x60000001, 0x59d80005, 0x4a03b004, + 0x90000001, 0x4a03a804, 0x60000001, 0x59d40005, + 0x4a03a804, 0x90000001, 0x0201f000, 0x00105d17, + 0x4a03c825, 0x00000004, 0x4a03c827, 0x00000004, + 0x599c0409, 0x80000d40, 0x04000020, 0x599c0407, + 0x80000540, 0x04000007, 0x800000cc, 0x599c100b, + 0x80080400, 0x4803b000, 0x497bb002, 0x59d80001, + 0x599c000b, 0x4803b000, 0x599c000c, 0x4803b001, + 0x599c0407, 0x80000540, 0x04020002, 0x497bb002, + 0x599c0c09, 0x82040540, 0x00400000, 0x4803b003, + 0x4a03b009, 0x00000005, 0x4a03b004, 0x10000001, + 0x59e00803, 0x82040d00, 0xfffffeff, 0x82040d40, + 0x00008000, 0x4807c003, 0x599c040a, 0x80000540, + 0x04000020, 0x599c0408, 0x80000540, 0x04000007, + 0x800000cc, 0x599c100f, 0x80080400, 0x4803a800, + 0x497ba802, 0x59d40001, 0x599c000f, 0x4803a800, + 0x599c0010, 0x4803a801, 0x599c0408, 0x80000540, + 0x04020002, 0x497ba802, 0x599c0c0a, 0x82040540, + 0x00400000, 0x4803a803, 0x4a03a809, 0x00000005, + 0x4a03a804, 0x10000001, 0x59e00803, 0x82040d00, + 0xfffffbff, 0x82040d40, 0x00008000, 0x4807c003, + 0x800409c0, 0x04000007, 0x4202e000, 0x00000001, + 0x0200b800, 0x00020874, 0x0200f000, 0x00020889, + 0x1c01f000, 0x0201f800, 0x0010032e, 0x1c01f000, + 0x0401f852, 0x5c03e000, 0x0201f000, 0x000206be, + 0x0201f800, 0x00020705, 0x0401f7fb, 0x00105642, + 0x00105642, 0x00105642, 0x00105642, 0x00105652, + 0x00105642, 0x00105642, 0x00105642, 0x00105642, + 0x00105642, 0x000206fc, 0x00105642, 0x00105642, + 0x00105652, 0x00105652, 0x00105642, 0x00105642, + 0x00105642, 0x00105642, 0x00105642, 0x00105642, + 0x00105642, 0x00105642, 0x00105642, 0x00105642, + 0x00105642, 0x00105642, 0x00105642, 0x00105642, + 0x00105642, 0x00105642, 0x00105642, 0x00105642, + 0x00105642, 0x00105642, 0x00105642, 0x00105642, + 0x00105642, 0x00105642, 0x00105642, 0x00105642, + 0x00105642, 0x00105642, 0x00105642, 0x00105642, + 0x00105642, 0x00105642, 0x00105642, 0x00105642, + 0x00105642, 0x00105642, 0x00105642, 0x00105642, + 0x00105642, 0x00105642, 0x00105642, 0x00105642, + 0x00105642, 0x00105642, 0x00105642, 0x00105642, + 0x00105642, 0x00105642, 0x00105642, 0x00105642, + 0x00105642, 0x00105642, 0x00105642, 0x00105642, + 0x00105642, 0x00105642, 0x00105642, 0x00105642, + 0x00105642, 0x000206fc, 0x492fc857, 0x42000000, + 0x0010cf1e, 0x0201f800, 0x0010bfb3, 0x42000000, + 0x00000400, 0x0401f019, 0x492fc857, 0x42000000, + 0x0010cf1d, 0x0201f800, 0x0010bfb3, 0x42000000, + 0x00001000, 0x0401f011, 0x492fc857, 0x42000000, + 0x0010cf1c, 0x0201f800, 0x0010bfb3, 0x42000000, + 0x00002000, 0x0401f009, 0x492fc857, 0x42000000, + 0x0010cf1f, 0x0201f800, 0x0010bfb3, 0x42000000, + 0x00000800, 0x0401f001, 0x4803c857, 0x592c0c05, + 0x82040d00, 0xffff80ff, 0x80040540, 0x59980803, + 0x800409c0, 0x04000002, 0x8400051e, 0x48025c05, + 0x0201f800, 0x000203ef, 0x83700580, 0x00000003, + 0x4202e000, 0x00000001, 0x04000002, 0x1c01f000, + 0x599a5801, 0x812e59c0, 0x040207dc, 0x0201f800, + 0x0010032e, 0x492fc857, 0x80140110, 0x80000040, + 0x04000039, 0x040017cd, 0x4a033006, 0x001056b5, + 0x0201f000, 0x000206d1, 0x492fc857, 0x80140110, + 0x040007c6, 0x80000040, 0x0400004a, 0x4a033006, + 0x001056d0, 0x0201f000, 0x000206d1, 0x492fc857, + 0x0201f800, 0x0010c0bb, 0x02020000, 0x000206e1, + 0x492fc856, 0x83440400, 0x0010c280, 0x50000000, + 0x80026d40, 0x0400000c, 0x592e4411, 0x81224110, + 0x59340013, 0x80000130, 0x81200580, 0x04020006, + 0x4937c857, 0x59340200, 0x8c00050e, 0x02020000, + 0x000206e1, 0x42028000, 0x00000028, 0x41780800, + 0x417a6000, 0x0201f800, 0x00104e1a, 0x0201f800, + 0x00109a5c, 0x0201f000, 0x000203ef, 0x82000500, + 0x0f000000, 0x8000012a, 0x592c0c0b, 0x82040d00, + 0x0000ff87, 0x80040540, 0x48025c0b, 0x0201f000, + 0x000206f7, 0x592c0a0b, 0x8c040d02, 0x04020015, + 0x492fc857, 0x8d0e1d0e, 0x0402000f, 0x592c0208, + 0x80000540, 0x04000005, 0x0201f800, 0x00104358, + 0x04020004, 0x1c01f000, 0x42000000, 0x00000000, + 0x592c0a07, 0x48065c07, 0x48025a07, 0x0201f000, + 0x000203ef, 0x42000000, 0x00000028, 0x0401f7f9, + 0x42000800, 0x00000009, 0x0201f000, 0x00106c58, + 0x492fc857, 0x592c0409, 0x80000540, 0x04020787, + 0x8d0e1d0e, 0x04020009, 0x592c0208, 0x80000540, + 0x04000782, 0x497a5a07, 0x0201f800, 0x001043b8, + 0x04020004, 0x1c01f000, 0x42000000, 0x00000028, + 0x48025a07, 0x0201f000, 0x000203ef, 0x592e8a07, + 0x592c0407, 0x4947c857, 0x4803c857, 0x82000500, + 0x000000ff, 0x4200b800, 0x00000001, 0x82000d80, + 0x00000001, 0x04000015, 0x417a8800, 0x4200b800, + 0x000007f0, 0x82000d80, 0x00000002, 0x0400000f, + 0x80000540, 0x02020000, 0x000203ef, 0x592e8a07, + 0x0201f800, 0x0002034c, 0x02020000, 0x000203ef, + 0x592e9009, 0x592e980a, 0x0201f800, 0x001047dc, + 0x0201f000, 0x000203ef, 0x850e1d00, 0x0201f800, + 0x0002034c, 0x02000800, 0x0010490b, 0x81468800, + 0x805cb840, 0x040207fa, 0x0201f000, 0x000203ef, + 0x592c0a09, 0x4807c857, 0x592e4411, 0x81224110, + 0x82040580, 0x0000000e, 0x04000096, 0x82040580, + 0x0000002a, 0x04000031, 0x82040580, 0x0000000f, + 0x02000000, 0x00105d2d, 0x82040580, 0x0000002e, + 0x02000000, 0x00105d2d, 0x4c040000, 0x0201f800, + 0x00105c82, 0x5c000800, 0x02020000, 0x00105d34, + 0x82040580, 0x00000046, 0x040000a7, 0x82040580, + 0x00000045, 0x04000039, 0x82040580, 0x00000049, + 0x02000000, 0x00105d2d, 0x82040580, 0x00000029, + 0x02020000, 0x00105d34, 0x592e8a07, 0x42026800, + 0x0010e23c, 0x83440580, 0x0000ffff, 0x04000008, + 0x0201f800, 0x00104a7c, 0x02020000, 0x00105d2d, + 0x59340200, 0x84000518, 0x48026a00, 0x592e600a, + 0x4933c857, 0x83300580, 0xffffffff, 0x04020090, + 0x0201f000, 0x00105d2d, 0x83200580, 0x000000ff, + 0x04000009, 0x83200400, 0x0010c10d, 0x50024800, + 0x59240a00, 0x84040d16, 0x48064a00, 0x0201f000, + 0x00105d2d, 0x42024800, 0x0010cfd1, 0x0201f800, + 0x0010c0ca, 0x59240200, 0x8c000500, 0x04000004, + 0x59240200, 0x84000516, 0x48024a00, 0x83264c00, + 0x0000000b, 0x8058b040, 0x040207f7, 0x850e1d04, + 0x0201f000, 0x00105d2d, 0x592c1408, 0x480bc857, + 0x0201f800, 0x00109cf9, 0x411e6000, 0x04020004, + 0x4803c856, 0x0201f000, 0x00105d34, 0x59300c07, 0x82040580, 0x00000004, 0x04000004, 0x4803c856, - 0x0201f000, 0x00105b7d, 0x59300a03, 0x82040580, - 0x00000007, 0x04000004, 0x4803c856, 0x0201f000, - 0x00105b7d, 0x59300c03, 0x82040580, 0x00000001, - 0x0400001f, 0x82040580, 0x00000002, 0x04000014, - 0x82040580, 0x00000008, 0x04000016, 0x82040580, - 0x0000000a, 0x04000007, 0x82040580, 0x0000000c, - 0x0402001c, 0x42000800, 0x00000009, 0x0401f017, - 0x5932680a, 0x0201f800, 0x00104936, 0x04020015, - 0x42000800, 0x00000005, 0x0401f010, 0x417a7800, - 0x0201f800, 0x0010fc72, 0x4a026407, 0x00000001, - 0x42000800, 0x00000003, 0x0401f008, 0x417a7800, - 0x0201f800, 0x0010fc72, 0x4a026407, 0x00000001, - 0x42000800, 0x0000000b, 0x0201f800, 0x001044f1, - 0x4a026203, 0x00000001, 0x0201f800, 0x00105b87, - 0x04000004, 0x492e6009, 0x0201f000, 0x00106b17, - 0x0201f800, 0x00106b17, 0x0201f000, 0x00105b76, - 0x59300415, 0x8c000518, 0x02020000, 0x0010b0c0, - 0x0401f0b8, 0x40000800, 0x58040000, 0x80000540, - 0x040207fd, 0x492c0800, 0x1c01f000, 0x492fc857, - 0x59300c07, 0x82040580, 0x00000006, 0x040200a8, - 0x59340400, 0x82000580, 0x00000606, 0x04020005, - 0x59340200, 0x8c00051a, 0x02000000, 0x00020762, - 0x59340200, 0x8c00050e, 0x0400009d, 0x59300203, - 0x42027800, 0x00000001, 0x82000580, 0x00000007, - 0x02020000, 0x00020762, 0x4a026203, 0x00000002, - 0x0201f000, 0x00020762, 0x42028000, 0x00000002, - 0x4a026006, 0x00000014, 0x4d2c0000, 0x0201f800, - 0x0010acac, 0x5c025800, 0x59300c07, 0x4807c857, - 0x82040580, 0x00000007, 0x0402006c, 0x492fc857, - 0x4a025a07, 0x00000001, 0x0201f000, 0x000203ef, - 0x83300580, 0xffffffff, 0x04020064, 0x592c240b, - 0x492fc857, 0x4813c857, 0x8c10251c, 0x0402001a, - 0x8c10251a, 0x04000003, 0x8c10250a, 0x04000079, - 0x59340a00, 0x8c040d0e, 0x04000003, 0x8c10251e, - 0x04000074, 0x0201f800, 0x00020b7b, 0x04000082, - 0x592c240b, 0x59243a00, 0x592c020d, 0x48026202, - 0x4936600a, 0x4926601c, 0x4932580a, 0x4a026407, - 0x00000006, 0x4a026203, 0x00000007, 0x0201f000, - 0x0002075b, 0x592c0a0d, 0x4c040000, 0x0201f800, - 0x00104c81, 0x5c000800, 0x04020084, 0x58080000, - 0x49781000, 0x802041c0, 0x04000006, 0x48004000, - 0x80000540, 0x04020007, 0x48226810, 0x0401f005, - 0x4802680f, 0x80000540, 0x04020002, 0x497a6810, - 0x4d2c0000, 0x400a5800, 0x4a025a07, 0x00000002, - 0x0201f800, 0x000203ef, 0x5c025800, 0x0401f7c0, - 0x8c10251c, 0x02020000, 0x00020747, 0x0401f022, - 0x0201f800, 0x0010497a, 0x02000000, 0x00020739, - 0x42000000, 0x0010ccd0, 0x50000000, 0x81200480, - 0x04021037, 0x8c10251c, 0x04000017, 0x592c0207, - 0x82000580, 0x0000ffff, 0x04020013, 0x592e600a, - 0x83300580, 0xffffffff, 0x040007a9, 0x0201f800, - 0x0010a09b, 0x04020011, 0x592c220d, 0x59300202, - 0x80100580, 0x0402000d, 0x59300009, 0x800001c0, - 0x04020005, 0x59300203, 0x82000580, 0x00000007, - 0x0400078e, 0x492fc857, 0x4a025a07, 0x00000029, + 0x0201f000, 0x00105d34, 0x592c0208, 0x8c000506, + 0x04000010, 0x0201f800, 0x00106e41, 0x4df00000, + 0x0201f800, 0x00106d2b, 0x0201f800, 0x00110148, + 0x80c40040, 0x5c03e000, 0x02000800, 0x00106e2e, + 0x0201f800, 0x00107eb4, 0x0201f000, 0x00105d2d, + 0x592e380a, 0x591c1415, 0x8c081516, 0x02000000, + 0x00105d34, 0x59300009, 0x800001c0, 0x02020800, + 0x0010032e, 0x84081554, 0x480a3c15, 0x4a026403, + 0x0000003a, 0x592c040c, 0x80000540, 0x04000007, + 0x4a026403, 0x0000003b, 0x592c020d, 0x4802641b, + 0x592c040d, 0x4802621b, 0x4a026203, 0x00000001, + 0x42000800, 0x80000040, 0x0201f800, 0x00105d3e, + 0x04000004, 0x492e6009, 0x0201f000, 0x00020b3e, + 0x0201f800, 0x00020b3e, 0x0201f000, 0x00105d2d, + 0x83200d80, 0x000000ff, 0x04000013, 0x42000000, + 0x0010cfd0, 0x50000000, 0x81200480, 0x02021000, + 0x0002086a, 0x83200400, 0x0010c10d, 0x50024800, + 0x59240200, 0x8c000500, 0x02000000, 0x0002086a, + 0x59240206, 0x84000510, 0x48024a06, 0x0201f000, + 0x00105d2d, 0x42024800, 0x0010cfd1, 0x0201f800, + 0x0010c0ca, 0x59240200, 0x8c000500, 0x04000004, + 0x59240206, 0x84000510, 0x48024a06, 0x83264c00, + 0x0000000b, 0x8058b040, 0x040207f7, 0x0201f000, + 0x00105d2d, 0x592c1208, 0x8c081500, 0x02020000, + 0x00105d2d, 0x592e8a07, 0x592e600a, 0x0201f800, + 0x00109d04, 0x04020004, 0x4803c856, 0x0201f000, + 0x00105d34, 0x59300c07, 0x82040580, 0x00000004, + 0x04000004, 0x4803c856, 0x0201f000, 0x00105d34, + 0x59300a03, 0x82040580, 0x00000007, 0x04000004, + 0x4803c856, 0x0201f000, 0x00105d34, 0x59300c03, + 0x82040580, 0x00000001, 0x0400001f, 0x82040580, + 0x00000002, 0x04000014, 0x82040580, 0x00000008, + 0x04000016, 0x82040580, 0x0000000a, 0x04000007, + 0x82040580, 0x0000000c, 0x04020027, 0x42000800, + 0x00000009, 0x0401f022, 0x5932680a, 0x0201f800, + 0x00104a38, 0x04020020, 0x42000800, 0x00000005, + 0x0401f01b, 0x417a7800, 0x0201f800, 0x0010ff80, + 0x4a026407, 0x00000001, 0x42000800, 0x00000003, + 0x0401f013, 0x83340580, 0x0010e23c, 0x04020009, + 0x5930000a, 0x82000580, 0x0010e23c, 0x02020000, + 0x00105d34, 0x4a026407, 0x00000001, 0x0401f00a, + 0x417a7800, 0x0201f800, 0x0010ff80, 0x4a026407, + 0x00000001, 0x42000800, 0x0000000b, 0x0201f800, + 0x001045ea, 0x4a026203, 0x00000001, 0x0201f800, + 0x00105d3e, 0x04000004, 0x492e6009, 0x0201f000, + 0x00106d1c, 0x0201f800, 0x00106d1c, 0x0201f000, + 0x00105d2d, 0x59300415, 0x8c000518, 0x02020000, + 0x0010b3d7, 0x0401f0b8, 0x40000800, 0x58040000, + 0x80000540, 0x040207fd, 0x492c0800, 0x1c01f000, + 0x492fc857, 0x59300c07, 0x82040580, 0x00000006, + 0x040200a8, 0x59340400, 0x82000580, 0x00000606, + 0x04020005, 0x59340200, 0x8c00051a, 0x02000000, + 0x00020762, 0x59340200, 0x8c00050e, 0x0400009d, + 0x59300203, 0x42027800, 0x00000001, 0x82000580, + 0x00000007, 0x02020000, 0x00020762, 0x4a026203, + 0x00000002, 0x0201f000, 0x00020762, 0x42028000, + 0x00000002, 0x4a026006, 0x00000014, 0x4d2c0000, + 0x0201f800, 0x0010afbb, 0x5c025800, 0x59300c07, + 0x4807c857, 0x82040580, 0x00000007, 0x0402006c, + 0x492fc857, 0x4a025a07, 0x00000001, 0x0201f000, + 0x000203ef, 0x83300580, 0xffffffff, 0x04020064, + 0x592c240b, 0x492fc857, 0x4813c857, 0x8c10251c, + 0x0402001a, 0x8c10251a, 0x04000003, 0x8c10250a, + 0x04000079, 0x59340a00, 0x8c040d0e, 0x04000003, + 0x8c10251e, 0x04000074, 0x0201f800, 0x00020b7b, + 0x04000082, 0x592c240b, 0x59243a00, 0x592c020d, + 0x48026202, 0x4936600a, 0x4926601c, 0x4932580a, + 0x4a026407, 0x00000006, 0x4a026203, 0x00000007, + 0x0201f000, 0x0002075b, 0x592c0a0d, 0x4c040000, + 0x0201f800, 0x00104d86, 0x5c000800, 0x04020084, + 0x58080000, 0x49781000, 0x802041c0, 0x04000006, + 0x48004000, 0x80000540, 0x04020007, 0x48226810, + 0x0401f005, 0x4802680f, 0x80000540, 0x04020002, + 0x497a6810, 0x4d2c0000, 0x400a5800, 0x4a025a07, + 0x00000002, 0x0201f800, 0x000203ef, 0x5c025800, + 0x0401f7c0, 0x8c10251c, 0x02020000, 0x00020747, + 0x0401f022, 0x0201f800, 0x00104a7c, 0x02000000, + 0x00020739, 0x42000000, 0x0010cfd0, 0x50000000, + 0x81200480, 0x04021037, 0x8c10251c, 0x04000017, + 0x592c0207, 0x82000580, 0x0000ffff, 0x04020013, + 0x592e600a, 0x83300580, 0xffffffff, 0x040007a9, + 0x0201f800, 0x0010a2d8, 0x04020011, 0x592c220d, + 0x59300202, 0x80100580, 0x0402000d, 0x59300009, + 0x800001c0, 0x04020005, 0x59300203, 0x82000580, + 0x00000007, 0x0400078e, 0x492fc857, 0x4a025a07, + 0x00000029, 0x0201f000, 0x000203ef, 0x492fc857, + 0x4a025a07, 0x00000008, 0x0201f000, 0x000203ef, + 0x4803c857, 0x8c000514, 0x04000008, 0x42000000, + 0x0010cf0d, 0x0201f800, 0x0010bfb3, 0x492fc857, + 0x492e6009, 0x1c01f000, 0x492fc857, 0x4a025a07, + 0x00000045, 0x0201f000, 0x000203ef, 0x492fc857, + 0x4a025a07, 0x0000002a, 0x0201f000, 0x000203ef, + 0x492fc857, 0x4a025a07, 0x00000028, 0x0201f000, + 0x000203ef, 0x492fc857, 0x4a025a07, 0x00000006, 0x0201f000, 0x000203ef, 0x492fc857, 0x4a025a07, - 0x00000008, 0x0201f000, 0x000203ef, 0x4803c857, - 0x8c000514, 0x04000008, 0x42000000, 0x0010cc0d, - 0x0201f800, 0x0010bc88, 0x492fc857, 0x492e6009, - 0x1c01f000, 0x492fc857, 0x4a025a07, 0x00000045, - 0x0201f000, 0x000203ef, 0x492fc857, 0x4a025a07, - 0x0000002a, 0x0201f000, 0x000203ef, 0x492fc857, - 0x4a025a07, 0x00000028, 0x0201f000, 0x000203ef, - 0x492fc857, 0x4a025a07, 0x00000006, 0x0201f000, - 0x000203ef, 0x492fc857, 0x4a025a07, 0x0000000e, - 0x0201f000, 0x000203ef, 0x82040580, 0x00000007, - 0x040207d6, 0x4a025a07, 0x00000002, 0x0201f000, - 0x000203ef, 0x592c0407, 0x800000c2, 0x800008c4, - 0x80040400, 0x48025804, 0x59340010, 0x492e6810, - 0x492fc857, 0x80000d40, 0x04000003, 0x492c0800, - 0x1c01f000, 0x59340203, 0x492e680f, 0x492fc857, - 0x4803c857, 0x80000540, 0x04020003, 0x4a026a03, - 0x00000001, 0x1c01f000, 0x59a8000d, 0x81640480, - 0x0402174f, 0x42026000, 0x00111264, 0x5930000a, - 0x81340580, 0x04020004, 0x59300202, 0x80040580, - 0x0400073a, 0x83326400, 0x0000002c, 0x41580000, - 0x81300480, 0x040017f6, 0x0401f741, 0x492fc857, - 0x592c040b, 0x82000500, 0x00000003, 0x04000024, - 0x0201f800, 0x00107cfe, 0x04000025, 0x592c0205, - 0x492e6009, 0x42024800, 0x0010ccd1, 0x4926601c, - 0x82000500, 0x000000ff, 0x82000580, 0x00000045, - 0x0400000f, 0x592c000c, 0x59243805, 0x0201f800, - 0x00105f68, 0x02000800, 0x0002034c, 0x04020018, - 0x42027000, 0x00000041, 0x4936600a, 0x4a026407, - 0x00000001, 0x0201f000, 0x00020bc1, 0x59300016, - 0x8400055e, 0x48026016, 0x42026800, 0x0010c87b, - 0x42027000, 0x00000040, 0x0401f7f4, 0x4a025a07, - 0x00000101, 0x0201f000, 0x000203ef, 0x4a025a07, - 0x0000002c, 0x0201f000, 0x000203ef, 0x4a025a07, - 0x00000028, 0x0201f800, 0x000203ef, 0x0201f000, - 0x00020b9d, 0x492fc857, 0x0201f800, 0x001066ab, - 0x0400000b, 0x592c0205, 0x80000110, 0x80000040, - 0x04020501, 0x592c0c07, 0x800409c0, 0x04000009, - 0x42000000, 0x00000102, 0x0401f003, 0x42000000, - 0x00000104, 0x48025a07, 0x0201f000, 0x000203ef, - 0x592c0c08, 0x800409c0, 0x04000020, 0x82040480, - 0x00000005, 0x0402101d, 0x4c040000, 0x80040800, - 0x0201f800, 0x001066d0, 0x5c001000, 0x04020014, - 0x832c0400, 0x00000009, 0x4000a000, 0x0201f800, - 0x001066f9, 0x0402000e, 0x592c1208, 0x58c80c0b, - 0x84040d00, 0x84040d02, 0x8c081500, 0x04000002, - 0x84040d5e, 0x4805940b, 0x42000000, 0x00000000, - 0x48025a07, 0x0201f000, 0x000203ef, 0x42000000, - 0x00000103, 0x0401f7fb, 0x42000000, 0x00000102, - 0x0401f7f8, 0x492fc857, 0x592e7c07, 0x833c0500, - 0xfffffffe, 0x0402004a, 0x592c4008, 0x42026000, - 0x00111264, 0x41581800, 0x400c0000, 0x81300480, - 0x04021029, 0x59300203, 0x82000580, 0x00000000, - 0x04000007, 0x59300009, 0x80000d40, 0x04000004, - 0x58040006, 0x80200580, 0x04000004, 0x83326400, - 0x0000002c, 0x0401f7f1, 0x58040205, 0x82000500, - 0x000000ff, 0x82000d80, 0x00000053, 0x0400000d, - 0x82000d80, 0x00000048, 0x0400000a, 0x82000d80, - 0x00000018, 0x04000007, 0x82000d80, 0x00000029, - 0x04000004, 0x82000580, 0x00000068, 0x040207ec, - 0x4d2c0000, 0x0201f800, 0x001091f1, 0x5c025800, + 0x0000000e, 0x0201f000, 0x000203ef, 0x82040580, + 0x00000007, 0x040207d6, 0x4a025a07, 0x00000002, + 0x0201f000, 0x000203ef, 0x592c0407, 0x800000c2, + 0x800008c4, 0x80040400, 0x48025804, 0x59340010, + 0x492e6810, 0x492fc857, 0x80000d40, 0x04000003, + 0x492c0800, 0x1c01f000, 0x59340203, 0x492e680f, + 0x492fc857, 0x4803c857, 0x80000540, 0x04020003, + 0x4a026a03, 0x00000001, 0x1c01f000, 0x59a8000d, + 0x81640480, 0x0402174f, 0x42026000, 0x00111584, + 0x59300407, 0x82000580, 0x00000006, 0x04020007, + 0x5930000a, 0x81340580, 0x04020004, 0x59300202, + 0x80040580, 0x04000736, 0x83326400, 0x0000002c, + 0x41580000, 0x81300480, 0x040017f2, 0x0401f73d, + 0x492fc857, 0x592c040b, 0x82000500, 0x00000003, + 0x04000024, 0x0201f800, 0x00107ef8, 0x04000025, + 0x592c0205, 0x492e6009, 0x42024800, 0x0010cfd1, + 0x4926601c, 0x82000500, 0x000000ff, 0x82000580, + 0x00000045, 0x0400000f, 0x592c000c, 0x59243805, + 0x0201f800, 0x00106134, 0x02000800, 0x0002034c, + 0x04020018, 0x42027000, 0x00000041, 0x4936600a, + 0x4a026407, 0x00000001, 0x0201f000, 0x00020bc1, + 0x59300016, 0x8400055e, 0x48026016, 0x42026800, + 0x0010cb7b, 0x42027000, 0x00000040, 0x0401f7f4, + 0x4a025a07, 0x00000101, 0x0201f000, 0x000203ef, + 0x4a025a07, 0x0000002c, 0x0201f000, 0x000203ef, + 0x4a025a07, 0x00000028, 0x0201f800, 0x000203ef, + 0x0201f000, 0x00020b9d, 0x492fc857, 0x0201f800, + 0x001068b0, 0x0400000b, 0x592c0205, 0x80000110, + 0x80000040, 0x040204ed, 0x592c0c07, 0x800409c0, + 0x04000009, 0x42000000, 0x00000102, 0x0401f003, + 0x42000000, 0x00000104, 0x48025a07, 0x0201f000, + 0x000203ef, 0x592c0c08, 0x800409c0, 0x04000020, + 0x82040480, 0x00000005, 0x0402101d, 0x4c040000, + 0x80040800, 0x0201f800, 0x001068d5, 0x5c001000, + 0x04020014, 0x832c0400, 0x00000009, 0x4000a000, + 0x0201f800, 0x001068fe, 0x0402000e, 0x592c1208, + 0x58c80c0b, 0x84040d00, 0x84040d02, 0x8c081500, + 0x04000002, 0x84040d5e, 0x4805940b, 0x42000000, + 0x00000000, 0x48025a07, 0x0201f000, 0x000203ef, + 0x42000000, 0x00000103, 0x0401f7fb, 0x42000000, + 0x00000102, 0x0401f7f8, 0x492fc857, 0x592e7c07, + 0x833c0500, 0xfffffffe, 0x0402004d, 0x592c4008, + 0x42026000, 0x00111584, 0x41581800, 0x400c0000, + 0x81300480, 0x0402102c, 0x59300203, 0x82000580, + 0x00000000, 0x04000007, 0x59300009, 0x80000d40, + 0x04000004, 0x58040006, 0x80200580, 0x04000004, + 0x83326400, 0x0000002c, 0x0401f7f1, 0x58040205, + 0x82000500, 0x000000ff, 0x82000d80, 0x00000053, + 0x04000010, 0x82000d80, 0x00000048, 0x0400000d, + 0x82000d80, 0x00000018, 0x0400000a, 0x82000d80, + 0x00000029, 0x04000007, 0x82000d80, 0x00000014, + 0x04000004, 0x82000580, 0x00000068, 0x040207e9, + 0x4d2c0000, 0x0201f800, 0x00109425, 0x5c025800, 0x0400001f, 0x4a025a07, 0x00000000, 0x0201f000, 0x000203ef, 0x592e8a07, 0x83440480, 0x000007f0, - 0x04021017, 0x83440400, 0x0010bf80, 0x50000000, + 0x04021017, 0x83440400, 0x0010c280, 0x50000000, 0x80026d40, 0x04000012, 0x4d2c0000, 0x0201f800, - 0x001047a0, 0x0400000d, 0x42028000, 0x00000005, - 0x592c0a09, 0x417a6000, 0x0201f800, 0x00104cf5, - 0x0201f800, 0x0010982a, 0x0201f800, 0x000203ef, + 0x001048a0, 0x0400000d, 0x42028000, 0x00000005, + 0x592c0a09, 0x417a6000, 0x0201f800, 0x00104e1a, + 0x0201f800, 0x00109a62, 0x0201f800, 0x000203ef, 0x5c025800, 0x0401f7e4, 0x5c025800, 0x4a025a07, 0x00000031, 0x0201f000, 0x000203ef, 0x492fc857, 0x4d2c0000, 0x0201f800, 0x00100583, 0x04000017, 0x492fc857, 0x412f4000, 0x0201f800, 0x00100583, 0x0400000f, 0x492fc857, 0x412dd800, 0x0201f800, - 0x001039b6, 0x0201f800, 0x001039c0, 0x49a1d80a, + 0x00103aa6, 0x0201f800, 0x00103ab0, 0x49a1d80a, 0x5c025800, 0x492dd809, 0x48ef4006, 0x0201f800, - 0x0010215d, 0x0201f000, 0x0010217c, 0x41a25800, + 0x0010221c, 0x0201f000, 0x0010223b, 0x41a25800, 0x0201f800, 0x00100594, 0x5c025800, 0x4a025a07, 0x00004005, 0x4a025c07, 0x00000002, 0x0201f000, 0x000203ef, 0x4807c857, 0x485fc857, 0x4200b800, @@ -20234,436 +20368,469 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x00100323, 0x4203e000, 0x50000000, 0x4200b800, 0x00008003, 0x0201f000, 0x00100333, 0x4803c856, 0x4c5c0000, 0x4c600000, 0x4c640000, 0x4d040000, - 0x836c0580, 0x00000000, 0x040000b8, 0x592c0208, + 0x836c0580, 0x00000000, 0x040000ff, 0x592c0208, 0x8200cd00, 0x000000ff, 0x592c0408, 0x8200c500, - 0x000000ff, 0x040000b7, 0x42000000, 0x0010ccd0, - 0x50000000, 0x80600480, 0x040210b2, 0x832c7c00, - 0x00000009, 0x42024000, 0x00000001, 0x42020800, - 0x00000001, 0x4200b800, 0xffffffff, 0x59a80078, - 0x8c00053e, 0x04000004, 0x83200580, 0x00000021, - 0x0401f003, 0x83200580, 0x00000061, 0x04020003, - 0x4200b800, 0x7fffffff, 0x503c0000, 0x805cbd00, - 0x04020004, 0x83224400, 0x00000020, 0x0401f011, - 0x805cb902, 0x0402100a, 0x83200400, 0x0010bdc7, - 0x50024800, 0x82640580, 0x00000000, 0x0400001e, - 0x8c64cd06, 0x04020047, 0x0401f08e, 0x81060800, - 0x81224000, 0x83040480, 0x00000021, 0x040017f1, - 0x803c7800, 0x59a80078, 0x8c00053e, 0x04000004, - 0x83200480, 0x00000041, 0x0401f003, 0x83200480, - 0x00000081, 0x040017d2, 0x59a80078, 0x8c00053e, - 0x04000004, 0x42024000, 0x0000003f, 0x0401f003, - 0x42024000, 0x0000007f, 0x8060c1c0, 0x04020075, - 0x0401f051, 0x59240a00, 0x82040d00, 0x00000003, - 0x82040d80, 0x00000003, 0x0400006e, 0x59240c00, - 0x8c040d0a, 0x04020004, 0x8d0e1d20, 0x04000069, - 0x0401f003, 0x8c040d08, 0x04000066, 0x4d3c0000, - 0x4d300000, 0x42027800, 0x00005002, 0x417a6000, - 0x0201f800, 0x00101fa9, 0x5c026000, 0x5c027800, - 0x59240206, 0x82000500, 0xfffffcff, 0x48024a06, - 0x4a024a00, 0x00000005, 0x0201f800, 0x00104fc6, - 0x04020004, 0x0201f800, 0x00101f2a, 0x0400004e, - 0x81060800, 0x81224000, 0x8060c040, 0x040207b5, - 0x0201f800, 0x00104fc6, 0x04020027, 0x0401f039, - 0x59240a00, 0x8c040d00, 0x04000046, 0x82040d00, - 0xfffffffc, 0x84040d44, 0x48064a00, 0x8c64cd02, - 0x04020017, 0x59240c08, 0x0201f800, 0x001015d1, - 0x4c5c0000, 0x4d3c0000, 0x42027800, 0x00005002, - 0x4d300000, 0x417a6000, 0x0201f800, 0x00101fa9, - 0x5c026000, 0x5c027800, 0x5c00b800, 0x81060800, - 0x81224000, 0x8060c040, 0x04020796, 0x82640580, - 0x00000009, 0x04000008, 0x0401f01a, 0x0401f82e, - 0x81060800, 0x81224000, 0x8060c040, 0x0402078d, - 0x0401f014, 0x836c0580, 0x00000004, 0x04000011, - 0x0201f800, 0x00104fc6, 0x0402000a, 0x4a035013, - 0x0000aaaa, 0x4a035014, 0x00000001, 0x4202d800, - 0x00000001, 0x0201f800, 0x00104f20, 0x0401f005, - 0x4202d800, 0x00000001, 0x0201f800, 0x00104011, - 0x497a5a07, 0x4a025c07, 0x00000000, 0x0201f800, - 0x000203ef, 0x5c020800, 0x5c00c800, 0x5c00c000, - 0x5c00b800, 0x1c01f000, 0x42003000, 0x00000005, - 0x0401f006, 0x42003000, 0x00000002, 0x0401f003, - 0x42003000, 0x00000001, 0x49225a07, 0x481a5c07, - 0x0401f7ef, 0x4923c857, 0x4d440000, 0x4d300000, - 0x4d340000, 0x4c580000, 0x4d400000, 0x4d3c0000, - 0x4c5c0000, 0x42028000, 0x00000029, 0x42027800, - 0x00001002, 0x4200b000, 0x000007f0, 0x417a8800, - 0x83440400, 0x0010bf80, 0x50000000, 0x80026d40, - 0x04000028, 0x59340013, 0x80000130, 0x81200580, - 0x04020024, 0x4937c857, 0x4947c857, 0x0201f800, - 0x0010492d, 0x04020071, 0x0201f800, 0x00106c3c, - 0x4df00000, 0x0201f800, 0x00107d08, 0x02000800, - 0x0010032e, 0x4a026407, 0x00000001, 0x4936600a, - 0x4926601c, 0x0201f800, 0x00110053, 0x0201f800, - 0x0011014a, 0x0201f800, 0x001101e3, 0x0201f800, - 0x00110623, 0x5c03e000, 0x02000800, 0x00106c29, - 0x42000800, 0x0000000b, 0x0201f800, 0x001044f1, - 0x42027000, 0x00000001, 0x0201f800, 0x00020bc1, - 0x81468800, 0x83440580, 0x0000ffff, 0x04000008, - 0x8058b040, 0x040207cf, 0x42028800, 0x0000ffff, - 0x42026800, 0x0010df3c, 0x0401f048, 0x82640580, - 0x0000000b, 0x04020027, 0x42028800, 0x000007f0, - 0x4200b000, 0x00000010, 0x5924b809, 0x505c0000, - 0x80026d40, 0x0400001b, 0x0201f800, 0x0010492d, - 0x0402003a, 0x59340002, 0x82000500, 0x00ffffff, - 0x4803c857, 0x82000580, 0x00fffffd, 0x04000011, - 0x0201f800, 0x00107d08, 0x02000800, 0x0010032e, + 0x000000ff, 0x040000fe, 0x42000000, 0x0010cfd0, + 0x50000000, 0x4c000000, 0x0201f800, 0x0010c0e8, + 0x5c000000, 0x04000002, 0x80000000, 0x80600480, + 0x040210f3, 0x832c7c00, 0x00000009, 0x592c0407, + 0x4803c857, 0x8c000500, 0x04000006, 0x0201f800, + 0x0010c0e8, 0x040000ea, 0x417a4000, 0x0401f003, + 0x42024000, 0x00000001, 0x42020800, 0x00000001, + 0x4200b800, 0xffffffff, 0x59a80078, 0x8c00053e, + 0x04000004, 0x83200580, 0x00000021, 0x0401f003, + 0x83200580, 0x00000061, 0x04020003, 0x4200b800, + 0x7fffffff, 0x503c0000, 0x805cbd00, 0x04020004, + 0x83224400, 0x00000020, 0x0401f011, 0x805cb902, + 0x0402100a, 0x83200400, 0x0010c10d, 0x50024800, + 0x82640580, 0x00000000, 0x0400001e, 0x8c64cd06, + 0x0402005c, 0x0401f0c6, 0x81060800, 0x81224000, + 0x83040480, 0x00000021, 0x040017f1, 0x803c7800, + 0x59a80078, 0x8c00053e, 0x04000004, 0x83200480, + 0x00000041, 0x0401f003, 0x83200480, 0x00000081, + 0x040017d2, 0x59a80078, 0x8c00053e, 0x04000004, + 0x42024000, 0x0000003f, 0x0401f003, 0x42024000, + 0x0000007f, 0x8060c1c0, 0x040200ad, 0x0401f084, + 0x59240a00, 0x0201f800, 0x0010c0f4, 0x04000004, + 0x8c040d00, 0x040200a6, 0x0401f006, 0x82040d00, + 0x00000003, 0x82040d80, 0x00000003, 0x040000a0, + 0x59240c00, 0x8c040d0a, 0x04020004, 0x8d0e1d20, + 0x0400009b, 0x0401f003, 0x8c040d08, 0x04000098, + 0x4d3c0000, 0x4d300000, 0x42027800, 0x00005002, + 0x417a6000, 0x0201f800, 0x0010200c, 0x5c026000, + 0x5c027800, 0x59240206, 0x82000500, 0xfffffcff, + 0x48024a06, 0x4a024a00, 0x00000005, 0x0201f800, + 0x001050f7, 0x04020013, 0x59a8021b, 0x82000500, + 0x00000082, 0x82000d80, 0x00000082, 0x0400000a, + 0x8c00050e, 0x0402000b, 0x59240200, 0x8400055e, + 0x48024a00, 0x0201f800, 0x001020be, 0x0400006d, + 0x0401f004, 0x0201f800, 0x00101f94, 0x04000071, + 0x81060800, 0x81224000, 0x8060c040, 0x040207a0, + 0x0201f800, 0x001050f7, 0x04020045, 0x0401f057, + 0x59240a00, 0x8c040d00, 0x04000069, 0x4c040000, + 0x82040d00, 0xffffdffc, 0x84040d44, 0x48064a00, + 0x0201f800, 0x0010c0e8, 0x04000012, 0x59240200, + 0x8c00051e, 0x0400000f, 0x8400051e, 0x48024a00, + 0x0201f800, 0x001020ea, 0x04000007, 0x4813c857, + 0x4817c857, 0x58100200, 0x8400055e, 0x48002200, + 0x0401f004, 0x59a8021b, 0x8400050e, 0x4803521b, + 0x5c000800, 0x8c64cd02, 0x04020017, 0x59240c08, + 0x0201f800, 0x001015d6, 0x4c5c0000, 0x4d3c0000, + 0x42027800, 0x00005002, 0x4d300000, 0x417a6000, + 0x0201f800, 0x0010200c, 0x5c026000, 0x5c027800, + 0x5c00b800, 0x81060800, 0x81224000, 0x8060c040, + 0x0402076b, 0x82640580, 0x00000009, 0x04000010, + 0x0401f022, 0x836c0580, 0x00000004, 0x040007e8, + 0x82040d00, 0x00000003, 0x82040d80, 0x00000003, + 0x040207e3, 0x0401f833, 0x81060800, 0x81224000, + 0x8060c040, 0x0402075a, 0x0401f014, 0x836c0580, + 0x00000004, 0x04000011, 0x0201f800, 0x001050f7, + 0x0402000a, 0x4a035013, 0x0000aaaa, 0x4a035014, + 0x00000001, 0x4202d800, 0x00000001, 0x0201f800, + 0x00105051, 0x0401f005, 0x4202d800, 0x00000001, + 0x0201f800, 0x0010410a, 0x497a5a07, 0x4a025c07, + 0x00000000, 0x0201f800, 0x000203ef, 0x5c020800, + 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x1c01f000, + 0x59240200, 0x82000500, 0xfffffffc, 0x48024a00, + 0x0401f009, 0x42003000, 0x00000005, 0x0401f006, + 0x42003000, 0x00000002, 0x0401f003, 0x42003000, + 0x00000001, 0x49225a07, 0x481a5c07, 0x0401f7ea, + 0x4923c857, 0x4d440000, 0x4d300000, 0x4d340000, + 0x4c580000, 0x4d400000, 0x4d3c0000, 0x4c5c0000, + 0x42028000, 0x00000029, 0x42027800, 0x00001002, + 0x4200b000, 0x000007f0, 0x417a8800, 0x83440400, + 0x0010c280, 0x50000000, 0x80026d40, 0x04000028, + 0x59340013, 0x80000130, 0x81200580, 0x04020024, + 0x4937c857, 0x4947c857, 0x0201f800, 0x00104a2f, + 0x04020071, 0x0201f800, 0x00106e41, 0x4df00000, + 0x0201f800, 0x00107f02, 0x02000800, 0x0010032e, 0x4a026407, 0x00000001, 0x4936600a, 0x4926601c, - 0x42000800, 0x0000000b, 0x0201f800, 0x001044f1, - 0x42027000, 0x00000001, 0x0201f800, 0x00020bc1, - 0x805cb800, 0x81468800, 0x8058b040, 0x040207e0, - 0x59a80078, 0x8c00053e, 0x04000014, 0x0201f800, - 0x00107d08, 0x02000800, 0x0010032e, 0x59aa6879, - 0x4936600a, 0x4a026407, 0x00000012, 0x42027000, - 0x000000d2, 0x59240005, 0x48026019, 0x4803c857, - 0x59240001, 0x4802601a, 0x59240002, 0x4802601b, - 0x0201f800, 0x00020bc1, 0x5c00b800, 0x5c027800, - 0x5c028000, 0x5c00b000, 0x5c026800, 0x5c026000, - 0x5c028800, 0x1c01f000, 0x4947c857, 0x0201f800, - 0x00106c3c, 0x4df00000, 0x417a6000, 0x0201f800, - 0x00110053, 0x0201f800, 0x0011014a, 0x0201f800, - 0x001101e3, 0x0201f800, 0x00110623, 0x4a026c00, - 0x00000707, 0x5c03e000, 0x02000800, 0x00106c29, - 0x83440580, 0x0000ffff, 0x040007a5, 0x83441480, - 0x000007f0, 0x04001797, 0x0401f7c6, 0x4c640000, - 0x836c0580, 0x00000000, 0x04000075, 0x497a5c07, - 0x592c2208, 0x80100110, 0x8200cd00, 0x000000ff, - 0x04000066, 0x82640480, 0x00000003, 0x04021063, - 0x4d2c0000, 0x4d040000, 0x417a0800, 0x592c1408, - 0x820a4500, 0x000000ff, 0x04000062, 0x0201f800, - 0x0010bd9f, 0x40580000, 0x81200480, 0x0402105d, - 0x83200400, 0x0010bdc7, 0x50024800, 0x59240200, - 0x8c000500, 0x0402004e, 0x592c0209, 0x8c00050a, - 0x04020004, 0x8d0e1d20, 0x0400004f, 0x0401f003, - 0x8c000508, 0x0400004c, 0x48024c00, 0x8c000502, + 0x0201f800, 0x00110363, 0x0201f800, 0x00110447, + 0x0201f800, 0x001104e0, 0x0201f800, 0x00110916, + 0x5c03e000, 0x02000800, 0x00106e2e, 0x42000800, + 0x0000000b, 0x0201f800, 0x001045ea, 0x42027000, + 0x00000001, 0x0201f800, 0x00020bc1, 0x81468800, + 0x83440580, 0x0000ffff, 0x04000008, 0x8058b040, + 0x040207cf, 0x42028800, 0x0000ffff, 0x42026800, + 0x0010e23c, 0x0401f048, 0x82640580, 0x0000000b, + 0x04020027, 0x42028800, 0x000007f0, 0x4200b000, + 0x00000010, 0x5924b809, 0x505c0000, 0x80026d40, + 0x0400001b, 0x0201f800, 0x00104a2f, 0x0402003a, + 0x59340002, 0x82000500, 0x00ffffff, 0x4803c857, + 0x82000580, 0x00fffffd, 0x04000011, 0x0201f800, + 0x00107f02, 0x02000800, 0x0010032e, 0x4a026407, + 0x00000001, 0x4936600a, 0x4926601c, 0x42000800, + 0x0000000b, 0x0201f800, 0x001045ea, 0x42027000, + 0x00000001, 0x0201f800, 0x00020bc1, 0x805cb800, + 0x81468800, 0x8058b040, 0x040207e0, 0x59a80078, + 0x8c00053e, 0x04000014, 0x0201f800, 0x00107f02, + 0x02000800, 0x0010032e, 0x59aa6879, 0x4936600a, + 0x4a026407, 0x00000012, 0x42027000, 0x000000d2, + 0x59240005, 0x48026019, 0x4803c857, 0x59240001, + 0x4802601a, 0x59240002, 0x4802601b, 0x0201f800, + 0x00020bc1, 0x5c00b800, 0x5c027800, 0x5c028000, + 0x5c00b000, 0x5c026800, 0x5c026000, 0x5c028800, + 0x1c01f000, 0x4947c857, 0x0201f800, 0x00106e41, + 0x4df00000, 0x417a6000, 0x0201f800, 0x00110363, + 0x0201f800, 0x00110447, 0x0201f800, 0x001104e0, + 0x0201f800, 0x00110916, 0x4a026c00, 0x00000707, + 0x5c03e000, 0x02000800, 0x00106e2e, 0x83440580, + 0x0000ffff, 0x040007a5, 0x83441480, 0x000007f0, + 0x04001797, 0x0401f7c6, 0x4c640000, 0x4c600000, + 0x836c0580, 0x00000000, 0x0400009b, 0x497a5c07, + 0x592c2208, 0x8210c500, 0x000000ff, 0x80100110, + 0x8200cd00, 0x000000ff, 0x0400008a, 0x82640480, + 0x00000003, 0x04021087, 0x4d2c0000, 0x4d040000, + 0x417a0800, 0x592c1408, 0x820a4500, 0x000000ff, + 0x4923c857, 0x0201f800, 0x0010c0ca, 0x40580000, + 0x81200480, 0x04021081, 0x83200400, 0x0010c10d, + 0x50024800, 0x82600580, 0x00000003, 0x04020014, + 0x59a8021b, 0x8c000514, 0x0400000d, 0x59240200, + 0x82001d00, 0x00002001, 0x820c1d80, 0x00002001, + 0x04020007, 0x8c000510, 0x04020005, 0x41781800, + 0x0201f800, 0x00101f94, 0x0401f04b, 0x4803c857, + 0x42003000, 0x00000006, 0x0401f074, 0x59240200, + 0x8c000500, 0x0402005c, 0x592c0209, 0x8c00050a, + 0x04020004, 0x8d0e1d20, 0x0400005d, 0x0401f003, + 0x8c000508, 0x0400005a, 0x48024c00, 0x8c000502, 0x04000003, 0x80001110, 0x480a4a08, 0x592c000a, 0x9c0001c0, 0x48024801, 0x592c000b, 0x9c0001c0, 0x48024802, 0x592c000c, 0x9c0001c0, 0x48024803, 0x592c000d, 0x9c0001c0, 0x48024804, 0x810609c0, 0x04000003, 0x832e5c80, 0x00000005, 0x592c0a08, - 0x8c040d00, 0x04000016, 0x4d3c0000, 0x4d300000, + 0x8c040d00, 0x04000024, 0x4d3c0000, 0x4d300000, 0x42027800, 0x00005002, 0x417a6000, 0x0201f800, - 0x00101fa9, 0x5c026000, 0x5c027800, 0x59240206, + 0x0010200c, 0x5c026000, 0x5c027800, 0x59240206, 0x82000500, 0xfffffcff, 0x48024a06, 0x4a024a00, - 0x00000005, 0x0201f800, 0x00104fc6, 0x04020004, - 0x0201f800, 0x00101f2a, 0x04000028, 0x8064c840, - 0x04000007, 0x592c1408, 0x80081110, 0x81060800, - 0x832e5c00, 0x00000005, 0x0401f7b6, 0x5c020800, - 0x5c025800, 0x0201f800, 0x00104fc6, 0x04000024, - 0x592c0a08, 0x8c040d00, 0x04000021, 0x836c0580, - 0x00000004, 0x0400001e, 0x4202d800, 0x00000001, - 0x0201f800, 0x00104011, 0x0401f019, 0x42003000, - 0x00000001, 0x0401f013, 0x42003000, 0x00000002, - 0x0401f012, 0x42003000, 0x00000003, 0x0401f00d, - 0x42003000, 0x00000004, 0x0401f00a, 0x42003000, - 0x00000005, 0x0401f009, 0x42003000, 0x00000006, - 0x59240200, 0x82000500, 0xfffffffc, 0x48024a00, - 0x5c020800, 0x5c025800, 0x481a5c07, 0x0201f800, - 0x000203ef, 0x5c00c800, 0x1c01f000, 0x4c580000, - 0x0201f800, 0x0010bd9f, 0x40580000, 0x81200480, - 0x0402100b, 0x83200400, 0x0010bdc7, 0x50024800, - 0x59240200, 0x82000500, 0x00000003, 0x82000580, - 0x00000003, 0x5c00b000, 0x1c01f000, 0x4923c857, - 0x4927c857, 0x82000540, 0x00000001, 0x0401f7fa, - 0x80140110, 0x80000040, 0x02020000, 0x00105519, - 0x599c0019, 0x8c000510, 0x0402000d, 0x0201f800, - 0x001049ab, 0x04020002, 0x1c01f000, 0x49425a07, - 0x4806580e, 0x480a580f, 0x4943c857, 0x4807c857, - 0x480bc857, 0x0201f000, 0x000203ef, 0x592c040c, - 0x82000500, 0x0000e000, 0x82000580, 0x00006000, - 0x040007ef, 0x59a8021b, 0x8c000508, 0x040007ec, - 0x592c120c, 0x592c080b, 0x82040500, 0xff000000, - 0x80040d80, 0x80000110, 0x80081540, 0x04000004, - 0x4806580b, 0x0401f885, 0x0401f7e1, 0x42001000, - 0x0000001c, 0x42000800, 0x00000019, 0x42028000, - 0x00000031, 0x0401f7de, 0x80140110, 0x80000040, - 0x02020000, 0x00105519, 0x0201f800, 0x00104b2a, - 0x04020002, 0x1c01f000, 0x49425a07, 0x48065812, - 0x480a5813, 0x0201f000, 0x000203ef, 0x80140110, - 0x02000000, 0x00105519, 0x80000040, 0x0402000d, - 0x4202e000, 0x00000001, 0x592c020b, 0x8c000504, - 0x02000000, 0x000206d7, 0x592c0208, 0x82000c80, - 0x00001001, 0x02021000, 0x00105529, 0x0401f005, - 0x4a033006, 0x000206d7, 0x0201f000, 0x000206d1, - 0x592c1014, 0x82080500, 0xffff0003, 0x02020000, - 0x00105529, 0x4202e000, 0x00000002, 0x42000000, - 0x0010dfe7, 0x50007000, 0x592c0012, 0x592c0813, - 0x48007006, 0x48047007, 0x492c700a, 0x4978700d, - 0x4978700b, 0x0401f001, 0x4978700c, 0x82080480, - 0x00000180, 0x4803c857, 0x04001007, 0x4800700e, - 0x4a007005, 0x00000180, 0x4a007004, 0x00000060, - 0x0401f005, 0x4978700e, 0x48087005, 0x80081104, - 0x48087004, 0x58380009, 0x48007003, 0x40381000, - 0x0201f000, 0x00020016, 0x4df00000, 0x4203e000, - 0x50000000, 0x0201f800, 0x0010056e, 0x04000003, - 0x59980005, 0x0801f800, 0x5c03e000, 0x1c01f000, - 0x0201f800, 0x0010056e, 0x02000800, 0x0010032e, - 0x4a025809, 0x0010df86, 0x42000800, 0x0010dfe7, - 0x452c0800, 0x497a580a, 0x497a580b, 0x497a580c, - 0x497a580d, 0x497a580e, 0x4a025808, 0x0002089e, - 0x497a580f, 0x4a025802, 0x00000100, 0x4a025801, - 0x00000001, 0x1c01f000, 0x0401f80e, 0x02000000, - 0x0002086f, 0x4a025a09, 0x00000001, 0x0201f000, - 0x0010b349, 0x0401f807, 0x02000000, 0x0002086a, - 0x4a025a09, 0x00000006, 0x0201f000, 0x0010b349, - 0x59a80005, 0x8c00051a, 0x1c01f000, 0x59a80005, - 0x8c00051c, 0x1c01f000, 0x59a8000f, 0x80080580, - 0x04020002, 0x1c01f000, 0x480bc857, 0x42024800, - 0x0010ccd1, 0x480a4805, 0x480b500f, 0x497b8830, - 0x82080d40, 0x01000000, 0x48078832, 0x59c40002, - 0x8400054c, 0x48038802, 0x42000800, 0x00000003, - 0x0201f000, 0x00106c63, 0x59c80007, 0x8c000502, - 0x0400007b, 0x835c2c80, 0x00000005, 0x02001000, - 0x0010624a, 0x59c82817, 0x4817506f, 0x497b9005, - 0x82140500, 0x00e00000, 0x04020059, 0x82140500, - 0x000003ff, 0x82001c00, 0x00000006, 0x41cc2000, - 0x42003000, 0x00006080, 0x820c0480, 0x00000040, - 0x04001006, 0x42001000, 0x00000040, 0x820c1c80, - 0x00000040, 0x0401f003, 0x400c1000, 0x41781800, - 0x54182000, 0x80102000, 0x80183000, 0x80081040, - 0x040207fc, 0x800c19c0, 0x04000005, 0x59c80005, - 0x80000000, 0x48039005, 0x0401f7ea, 0x82140500, - 0x000003ff, 0x800018c4, 0x8c142d14, 0x04000005, - 0x59cc0002, 0x82000500, 0x00000003, 0x800c1c80, - 0x480f505a, 0x82140500, 0x01f60000, 0x04020029, - 0x82140500, 0x0000f000, 0x0400000b, 0x82000c80, - 0x00002000, 0x0402100f, 0x4a039005, 0x00000140, - 0x82140500, 0x0e000000, 0x80000132, 0x0c01f83e, - 0x1c01f000, 0x59cc0400, 0x82000500, 0x0000ff00, - 0x82000580, 0x00008100, 0x040007f4, 0x0401f01c, - 0x4817c857, 0x82140500, 0x000003ff, 0x04020007, - 0x59cc0400, 0x82000500, 0x0000ff00, 0x82000580, - 0x00008100, 0x04020012, 0x42000000, 0x0010cc7d, - 0x0201f800, 0x0010bc88, 0x0201f800, 0x001060ce, - 0x4803c856, 0x4a039005, 0x00000140, 0x0401f020, - 0x4817c857, 0x82140500, 0x00f60000, 0x04020004, - 0x0201f800, 0x00106115, 0x040207d2, 0x0201f800, - 0x00104fc6, 0x04000010, 0x59c400a4, 0x4803c857, - 0x82000500, 0x0000000f, 0x82000580, 0x0000000a, - 0x04020009, 0x497b505a, 0x59c400a3, 0x82000540, - 0x00080000, 0x480388a3, 0x82000500, 0xfff7ffff, - 0x480388a3, 0x4817c856, 0x0201f800, 0x0010bbcd, - 0x4a039005, 0x00000140, 0x0401f03f, 0x4803c856, - 0x1c01f000, 0x00105c2b, 0x00105f73, 0x00105c25, - 0x00105c25, 0x00105c25, 0x00105c25, 0x00105c25, - 0x00105c25, 0x4803c857, 0x42000000, 0x0010cc1a, - 0x0201f800, 0x0010bc88, 0x1c01f000, 0x59cc0002, - 0x82000500, 0xff000000, 0x82000580, 0xfe000000, - 0x04020004, 0x0201f800, 0x0010b69c, 0x0401f025, - 0x59cc0400, 0x82000d00, 0x0000ff00, 0x82041500, - 0x0000f000, 0x840409c0, 0x82080580, 0x00002000, - 0x04020013, 0x836c0580, 0x00000001, 0x0402000e, - 0x59cc0006, 0x82000500, 0xff000000, 0x82000580, - 0x11000000, 0x02020800, 0x001003f5, 0x04020011, - 0x0201f800, 0x001039eb, 0x0201f800, 0x00106275, - 0x0401f00c, 0x0401f81f, 0x0401f00a, 0x82080580, - 0x00003000, 0x04020003, 0x0401faaf, 0x0401f005, - 0x82080580, 0x00008000, 0x04020002, 0x0401fb86, - 0x1c01f000, 0x4817c857, 0x42000000, 0x0010cc19, - 0x0201f800, 0x0010bc88, 0x836c0580, 0x00000003, - 0x0402000b, 0x4c080000, 0x4c0c0000, 0x42001000, - 0x00008048, 0x40141800, 0x80142120, 0x0201f800, - 0x001038bc, 0x5c001800, 0x5c001000, 0x1c01f000, - 0x59cc0002, 0x82000500, 0xff000000, 0x82001580, - 0x01000000, 0x04000006, 0x82001580, 0x23000000, - 0x02020800, 0x001003f5, 0x04020234, 0x59a8005a, - 0x82000480, 0x00000004, 0x04001230, 0x82040580, - 0x00000023, 0x04020052, 0x59cc0004, 0x4803c857, - 0x59cc0006, 0x82000500, 0xff000000, 0x59cc0801, - 0x82040d00, 0x00ffffff, 0x80040540, 0x4803c857, - 0x0201f800, 0x0010609c, 0x02000800, 0x001003f5, - 0x0400021e, 0x59300c07, 0x82040580, 0x00000010, - 0x0400000f, 0x82040580, 0x00000011, 0x0400000c, - 0x82040580, 0x00000001, 0x04000009, 0x82040580, - 0x00000004, 0x04000006, 0x82040580, 0x00000008, - 0x02020800, 0x001003f5, 0x0402020c, 0x59300004, - 0x82000500, 0x80010000, 0x04000006, 0x0201f800, - 0x00107021, 0x02020800, 0x001003f5, 0x04020203, - 0x59cc0a04, 0x48066202, 0x59cc0006, 0x82000500, - 0xffff0000, 0x82000d80, 0x02000000, 0x04020005, - 0x42027000, 0x00000015, 0x0201f000, 0x00020bc1, - 0x82000d80, 0x02140000, 0x040007fa, 0x82000d80, - 0x02100000, 0x040007f7, 0x82000d80, 0x02100000, - 0x040007f4, 0x82000d80, 0x01000000, 0x02020800, - 0x001003f5, 0x040201e9, 0x59cc0006, 0x82000500, - 0x0000ffff, 0x02020800, 0x001003f5, 0x040201e3, - 0x59a8005a, 0x82000480, 0x00000008, 0x040011df, - 0x42027000, 0x00000016, 0x0401f7e4, 0x82040580, - 0x00000022, 0x02020800, 0x001003f5, 0x040201d7, - 0x59cc0004, 0x4803c857, 0x59cc0006, 0x4803c857, - 0x59cc0001, 0x4803c857, 0x59a8005a, 0x800001c0, - 0x02000800, 0x001003f5, 0x040001cc, 0x59a80805, - 0x8c040d14, 0x04000036, 0x0401f9e8, 0x04020034, - 0x0401fa01, 0x04000032, 0x42027000, 0x0000004c, - 0x59cc3800, 0x821c3d00, 0x00ffffff, 0x4c1c0000, - 0x0201f800, 0x00101f66, 0x5c003800, 0x04000004, - 0x0201f800, 0x001003f5, 0x0401f1b8, 0x59cc0001, - 0x82000500, 0x00ffffff, 0x0201f800, 0x0010620a, - 0x04000004, 0x42028800, 0x0000ffff, 0x417a6800, - 0x599c0019, 0x8c000510, 0x04000196, 0x59a8021b, - 0x8c000508, 0x04000193, 0x59cc1006, 0x82081500, - 0xffff0000, 0x82081580, 0x03000000, 0x0402018d, - 0x83641480, 0x00000010, 0x040011a5, 0x8400054c, - 0x4803521b, 0x59cc1000, 0x82081500, 0x00ffffff, - 0x0401fe7a, 0x59cc0007, 0x82000500, 0x0000ffff, - 0x48038893, 0x48035012, 0x0401f17e, 0x59cc0006, - 0x82000500, 0xffff0000, 0x82000d80, 0x03000000, - 0x0402002d, 0x59a8021b, 0x8c000508, 0x04000024, - 0x8400054c, 0x4803521b, 0x59cc0800, 0x82040d00, - 0x00ffffff, 0x42024800, 0x0010ccd1, 0x4807c857, - 0x48064805, 0x4807500f, 0x497b8830, 0x84040d70, - 0x48078832, 0x59c40802, 0x84040d4c, 0x48078802, + 0x00000005, 0x0201f800, 0x001050f7, 0x04020012, + 0x0201f800, 0x001020ea, 0x0402000c, 0x59a8021b, + 0x4803c857, 0x8c00050e, 0x0402000b, 0x59240200, + 0x8400055e, 0x48024a00, 0x0201f800, 0x001020be, + 0x0400002c, 0x0401f004, 0x0201f800, 0x00101f94, + 0x04000028, 0x8064c840, 0x04000007, 0x592c1408, + 0x80081110, 0x81060800, 0x832e5c00, 0x00000005, + 0x0401f792, 0x5c020800, 0x5c025800, 0x0201f800, + 0x001050f7, 0x04000024, 0x592c0a08, 0x8c040d00, + 0x04000021, 0x836c0580, 0x00000004, 0x0400001e, + 0x4202d800, 0x00000001, 0x0201f800, 0x0010410a, + 0x0401f019, 0x42003000, 0x00000001, 0x0401f013, + 0x42003000, 0x00000002, 0x0401f012, 0x42003000, + 0x00000003, 0x0401f00d, 0x42003000, 0x00000004, + 0x0401f00a, 0x42003000, 0x00000005, 0x0401f009, + 0x42003000, 0x00000006, 0x59240200, 0x82000500, + 0xfffffffc, 0x48024a00, 0x5c020800, 0x5c025800, + 0x481a5c07, 0x0201f800, 0x000203ef, 0x5c00c000, + 0x5c00c800, 0x1c01f000, 0x4c580000, 0x0201f800, + 0x0010c0ca, 0x40580000, 0x81200480, 0x0402100b, + 0x83200400, 0x0010c10d, 0x50024800, 0x59240200, + 0x82000500, 0x00000003, 0x82000580, 0x00000003, + 0x5c00b000, 0x1c01f000, 0x4923c857, 0x4927c857, + 0x82000540, 0x00000001, 0x0401f7fa, 0x80140110, + 0x80000040, 0x02020000, 0x0010564a, 0x599c0019, + 0x8c000510, 0x0402000d, 0x0201f800, 0x00104aad, + 0x04020002, 0x1c01f000, 0x49425a07, 0x4806580e, + 0x480a580f, 0x4943c857, 0x4807c857, 0x480bc857, + 0x0201f000, 0x000203ef, 0x592c040c, 0x82000500, + 0x0000e000, 0x82000580, 0x00006000, 0x040007ef, + 0x59a8021b, 0x8c000508, 0x040007ec, 0x592c120c, + 0x592c080b, 0x82040500, 0xff000000, 0x80040d80, + 0x80000110, 0x80081540, 0x04000004, 0x4806580b, + 0x0401f885, 0x0401f7e1, 0x42001000, 0x0000001c, + 0x42000800, 0x00000019, 0x42028000, 0x00000031, + 0x0401f7de, 0x80140110, 0x80000040, 0x02020000, + 0x0010564a, 0x0201f800, 0x00104c2f, 0x04020002, + 0x1c01f000, 0x49425a07, 0x48065812, 0x480a5813, + 0x0201f000, 0x000203ef, 0x80140110, 0x02000000, + 0x0010564a, 0x80000040, 0x0402000d, 0x4202e000, + 0x00000001, 0x592c020b, 0x8c000504, 0x02000000, + 0x000206d7, 0x592c0208, 0x82000c80, 0x00001001, + 0x02021000, 0x0010565a, 0x0401f005, 0x4a033006, + 0x000206d7, 0x0201f000, 0x000206d1, 0x592c1014, + 0x82080500, 0xffff0003, 0x02020000, 0x0010565a, + 0x4202e000, 0x00000002, 0x42000000, 0x0010e2e7, + 0x50007000, 0x592c0012, 0x592c0813, 0x48007006, + 0x48047007, 0x492c700a, 0x4978700d, 0x4978700b, + 0x0401f001, 0x4978700c, 0x82080480, 0x00000180, + 0x4803c857, 0x04001007, 0x4800700e, 0x4a007005, + 0x00000180, 0x4a007004, 0x00000060, 0x0401f005, + 0x4978700e, 0x48087005, 0x80081104, 0x48087004, + 0x58380009, 0x48007003, 0x40381000, 0x0201f000, + 0x00020016, 0x4df00000, 0x4203e000, 0x50000000, + 0x0201f800, 0x0010056e, 0x04000003, 0x59980005, + 0x0801f800, 0x5c03e000, 0x1c01f000, 0x0201f800, + 0x0010056e, 0x02000800, 0x0010032e, 0x4a025809, + 0x0010e286, 0x42000800, 0x0010e2e7, 0x452c0800, + 0x497a580a, 0x497a580b, 0x497a580c, 0x497a580d, + 0x497a580e, 0x4a025808, 0x0002089e, 0x497a580f, + 0x4a025802, 0x00000100, 0x4a025801, 0x00000001, + 0x1c01f000, 0x0401f80e, 0x02000000, 0x0002086f, + 0x4a025a09, 0x00000001, 0x0201f000, 0x0010b674, + 0x0401f807, 0x02000000, 0x0002086a, 0x4a025a09, + 0x00000006, 0x0201f000, 0x0010b674, 0x59a80005, + 0x8c00051a, 0x1c01f000, 0x59a80005, 0x8c00051c, + 0x1c01f000, 0x59a8000f, 0x80080580, 0x04020002, + 0x1c01f000, 0x480bc857, 0x42024800, 0x0010cfd1, + 0x480a4805, 0x480b500f, 0x497b8830, 0x82080d40, + 0x01000000, 0x48078832, 0x59c40002, 0x8400054c, + 0x48038802, 0x42000800, 0x00000003, 0x0201f000, + 0x00106e68, 0x59c80007, 0x8c000502, 0x0400004f, + 0x835c2c80, 0x00000005, 0x02001000, 0x00106416, + 0x59c82817, 0x4817506f, 0x497b9005, 0x82140500, + 0x00e00000, 0x04020040, 0x82140500, 0x000003ff, + 0x82001c00, 0x00000006, 0x41cc2000, 0x42003000, + 0x00006080, 0x820c0480, 0x00000040, 0x04001006, + 0x42001000, 0x00000040, 0x820c1c80, 0x00000040, + 0x0401f003, 0x400c1000, 0x41781800, 0x54182000, + 0x80102000, 0x80183000, 0x80081040, 0x040207fc, + 0x800c19c0, 0x04000005, 0x59c80005, 0x80000000, + 0x48039005, 0x0401f7ea, 0x82140500, 0x000003ff, + 0x800018c4, 0x8c142d14, 0x04000005, 0x59cc0002, + 0x82000500, 0x00000003, 0x800c1c80, 0x480f505a, + 0x82140500, 0x01f60000, 0x04020010, 0x0201f800, + 0x00106421, 0x04020008, 0x4a039005, 0x00000140, + 0x82140500, 0x0e000000, 0x80000132, 0x0c01f815, + 0x1c01f000, 0x800001c0, 0x0402000b, 0x4a039005, + 0x00000140, 0x0401f00d, 0x4817c857, 0x82140500, + 0x00f60000, 0x04020004, 0x0201f800, 0x001062e1, + 0x040207eb, 0x0201f800, 0x00106445, 0x4a039005, + 0x00000140, 0x0401f03f, 0x4803c856, 0x1c01f000, + 0x00105db6, 0x0010613f, 0x00105db0, 0x00105db0, + 0x00105db0, 0x00105db0, 0x00105db0, 0x00105db0, + 0x4803c857, 0x42000000, 0x0010cf1a, 0x0201f800, + 0x0010bfb3, 0x1c01f000, 0x59cc0002, 0x82000500, + 0xff000000, 0x82000580, 0xfe000000, 0x04020004, + 0x0201f800, 0x0010b9c7, 0x0401f025, 0x59cc0400, + 0x82000d00, 0x0000ff00, 0x82041500, 0x0000f000, + 0x840409c0, 0x82080580, 0x00002000, 0x04020013, + 0x836c0580, 0x00000001, 0x0402000e, 0x59cc0006, + 0x82000500, 0xff000000, 0x82000580, 0x11000000, + 0x02020800, 0x001003f5, 0x04020011, 0x0201f800, + 0x00103ae4, 0x0201f800, 0x0010647a, 0x0401f00c, + 0x0401f81f, 0x0401f00a, 0x82080580, 0x00003000, + 0x04020003, 0x0401fad2, 0x0401f005, 0x82080580, + 0x00008000, 0x04020002, 0x0401fbc7, 0x1c01f000, + 0x4817c857, 0x42000000, 0x0010cf19, 0x0201f800, + 0x0010bfb3, 0x836c0580, 0x00000003, 0x0402000b, + 0x4c080000, 0x4c0c0000, 0x42001000, 0x00008048, + 0x40141800, 0x80142120, 0x0201f800, 0x001039ac, + 0x5c001800, 0x5c001000, 0x1c01f000, 0x59cc0002, + 0x82000500, 0xff000000, 0x82001580, 0x01000000, + 0x04000006, 0x82001580, 0x23000000, 0x02020800, + 0x001003f5, 0x04020250, 0x59a8005a, 0x82000480, + 0x00000004, 0x0400124c, 0x82040580, 0x00000023, + 0x04020052, 0x59cc0004, 0x4803c857, 0x59cc0006, + 0x82000500, 0xff000000, 0x59cc0801, 0x82040d00, + 0x00ffffff, 0x80040540, 0x4803c857, 0x0201f800, + 0x00106268, 0x02000800, 0x001003f5, 0x0400023a, + 0x59300c07, 0x82040580, 0x00000010, 0x0400000f, + 0x82040580, 0x00000011, 0x0400000c, 0x82040580, + 0x00000001, 0x04000009, 0x82040580, 0x00000004, + 0x04000006, 0x82040580, 0x00000008, 0x02020800, + 0x001003f5, 0x04020228, 0x59300004, 0x82000500, + 0x80010000, 0x04000006, 0x0201f800, 0x00107226, + 0x02020800, 0x001003f5, 0x0402021f, 0x59cc0a04, + 0x48066202, 0x59cc0006, 0x82000500, 0xffff0000, + 0x82000d80, 0x02000000, 0x04020005, 0x42027000, + 0x00000015, 0x0201f000, 0x00020bc1, 0x82000d80, + 0x02140000, 0x040007fa, 0x82000d80, 0x02100000, + 0x040007f7, 0x82000d80, 0x02100000, 0x040007f4, + 0x82000d80, 0x01000000, 0x02020800, 0x001003f5, + 0x04020205, 0x59cc0006, 0x82000500, 0x0000ffff, + 0x02020800, 0x001003f5, 0x040201ff, 0x59a8005a, + 0x82000480, 0x00000008, 0x040011fb, 0x42027000, + 0x00000016, 0x0401f7e4, 0x82040580, 0x00000022, + 0x02020800, 0x001003f5, 0x040201f3, 0x59cc0004, + 0x4803c857, 0x59cc0006, 0x4803c857, 0x59cc0001, + 0x4803c857, 0x59a8005a, 0x800001c0, 0x02000800, + 0x001003f5, 0x040001e8, 0x59a80805, 0x8c040d14, + 0x0400003a, 0x0401fa0b, 0x04020038, 0x0401fa24, + 0x04000036, 0x42027000, 0x0000004c, 0x59cc3800, + 0x821c3d00, 0x00ffffff, 0x4c1c0000, 0x0201f800, + 0x00101fc9, 0x5c003800, 0x04000004, 0x0201f800, + 0x001003f5, 0x0401f1d4, 0x59cc0001, 0x82000500, + 0x00ffffff, 0x0201f800, 0x001063d6, 0x04000008, + 0x42028800, 0x0000ffff, 0x42026800, 0x0010e23c, + 0x0201f800, 0x00104d9c, 0x481a6802, 0x599c0019, + 0x8c000510, 0x040001ad, 0x59a8021b, 0x8c000508, + 0x040001aa, 0x59cc1006, 0x82081500, 0xffff0000, + 0x82081580, 0x03000000, 0x040201a4, 0x83641480, + 0x00000010, 0x040011bd, 0x8400054c, 0x4803521b, + 0x59cc1000, 0x82081500, 0x00ffffff, 0x0401fea2, 0x59cc0007, 0x82000500, 0x0000ffff, 0x48038893, - 0x48035012, 0x42000800, 0x00000003, 0x59a8100f, - 0x0201f800, 0x00106c63, 0x59cc0006, 0x82000500, - 0x0000ffff, 0x02020800, 0x001003f5, 0x0402016b, - 0x42027000, 0x00000017, 0x0401f11e, 0x0201f800, - 0x00104fc6, 0x040207f5, 0x8c000502, 0x040207f3, - 0x0401f162, 0x82000d80, 0x04000000, 0x04020018, - 0x59cc0006, 0x82000500, 0x0000ffff, 0x02020800, - 0x001003f5, 0x04020159, 0x0201f800, 0x00104fc6, - 0x04000004, 0x42027000, 0x0000001d, 0x0401f109, - 0x497b5065, 0x42001000, 0x00110694, 0x0201f800, - 0x001062f9, 0x59a8021b, 0x84000548, 0x4803521b, - 0x42027000, 0x00000030, 0x0401f0fe, 0x82000d80, - 0x05000000, 0x0402000a, 0x59cc0006, 0x82000500, - 0x0000ffff, 0x02020800, 0x001003f5, 0x0402013f, - 0x42027000, 0x00000018, 0x0401f0f2, 0x82000d80, - 0x20100000, 0x04020004, 0x42027000, 0x00000019, - 0x0401f0ec, 0x82000d80, 0x21100000, 0x04020004, - 0x42027000, 0x0000001a, 0x0401f0e6, 0x82000d80, - 0x52000000, 0x0402000a, 0x59cc0006, 0x82000500, - 0x0000ffff, 0x02020800, 0x001003f5, 0x04020127, - 0x42027000, 0x0000001b, 0x0401f0da, 0x82000d80, - 0x50000000, 0x0402000a, 0x59cc0006, 0x82000500, - 0x0000ffff, 0x02020800, 0x001003f5, 0x0402011b, - 0x42027000, 0x0000001c, 0x0401f0ce, 0x82000d80, - 0x13000000, 0x04020004, 0x42027000, 0x00000034, - 0x0401f0c8, 0x82000d80, 0x12000000, 0x0402000a, - 0x59cc0006, 0x82000500, 0x0000ffff, 0x02020800, - 0x001003f5, 0x04020109, 0x42027000, 0x00000024, - 0x0401f0bc, 0x82000d00, 0xff000000, 0x82040d80, - 0x24000000, 0x04020004, 0x42027000, 0x0000002d, - 0x0401f0b4, 0x82000d00, 0xff000000, 0x82040d80, - 0x53000000, 0x04020004, 0x42027000, 0x0000002a, - 0x0401f0ac, 0x82000d80, 0x0f000000, 0x04020004, - 0x42027000, 0x00000020, 0x0401f0a6, 0x82000d80, - 0x61040000, 0x04020056, 0x4c5c0000, 0x4c600000, - 0x4c640000, 0x4c580000, 0x83ccc400, 0x00000006, - 0x8060b800, 0x50600000, 0x82000500, 0x0000ffff, - 0x82001480, 0x00000401, 0x04021041, 0x82001500, - 0x00000003, 0x0402003e, 0x59a8105a, 0x80081480, - 0x0400103b, 0x82000480, 0x00000004, 0x8000b104, - 0x8058b1c0, 0x04000036, 0x59cc3800, 0x821c3d00, - 0x00ffffff, 0x4d200000, 0x0201f800, 0x00101f66, - 0x04000003, 0x5c024000, 0x0401f02d, 0x505cc800, - 0x8264c500, 0x03000000, 0x8060c130, 0x42000000, - 0x0010cbe4, 0x82602580, 0x00000000, 0x04020004, - 0x42000000, 0x0010cbe1, 0x0401f00c, 0x82602580, - 0x00000001, 0x04020004, 0x42000000, 0x0010cbe2, - 0x0401f006, 0x82602580, 0x00000002, 0x04020003, - 0x42000000, 0x0010cbe3, 0x0201f800, 0x0010bc88, - 0x42001000, 0x00008015, 0x82642500, 0x0000ffff, - 0x80641920, 0x41202800, 0x0201f800, 0x001038bd, - 0x805cb800, 0x8058b040, 0x040207dd, 0x5c024000, - 0x5c00b000, 0x5c00c800, 0x5c00c000, 0x5c00b800, - 0x42027000, 0x00000023, 0x0401f056, 0x5c00b000, - 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x42000000, - 0x0010cc17, 0x0201f000, 0x0010bc88, 0x82000d80, - 0x60000000, 0x04020004, 0x42027000, 0x0000003f, - 0x0401f048, 0x82000d80, 0x54000000, 0x04020010, - 0x0401fb9e, 0x02020800, 0x001003f5, 0x0402008b, - 0x42027000, 0x00000046, 0x42000000, 0x0010ccd6, - 0x50000000, 0x59cc3800, 0x821c3d00, 0xff000000, - 0x801c0540, 0x48039800, 0x0401f036, 0x82000d80, - 0x55000000, 0x04020009, 0x0401fbb4, 0x04020004, - 0x42027000, 0x00000041, 0x0401f02e, 0x42027000, - 0x00000042, 0x0401f02b, 0x82000d80, 0x78000000, - 0x04020004, 0x42027000, 0x00000045, 0x0401f025, - 0x82000d80, 0x10000000, 0x04020004, 0x42027000, - 0x0000004e, 0x0401f01f, 0x82000d80, 0x63000000, - 0x04020004, 0x42027000, 0x0000004a, 0x0401f019, - 0x82000d00, 0xff000000, 0x82040d80, 0x56000000, - 0x04020004, 0x42027000, 0x0000004f, 0x0401f011, - 0x82000d00, 0xff000000, 0x82040d80, 0x57000000, - 0x04020004, 0x42027000, 0x00000050, 0x0401f009, - 0x82000d80, 0x7d000000, 0x04020004, 0x42027000, - 0x00000056, 0x0401f003, 0x42027000, 0x0000001d, - 0x59cc3800, 0x821c3d00, 0x00ffffff, 0x821c0580, - 0x00fffffe, 0x59cc0001, 0x04020005, 0x40003000, - 0x42028800, 0x000007fe, 0x0401f00a, 0x59cc3800, - 0x821c3d00, 0x00ffffff, 0x4c1c0000, 0x0401f8fa, - 0x5c003800, 0x02020800, 0x001003f5, 0x04020037, - 0x0201f800, 0x00101f66, 0x02000800, 0x00104531, - 0x02020800, 0x001003f5, 0x04020030, 0x83380580, - 0x00000046, 0x04020006, 0x59a8000f, 0x80180580, - 0x02000800, 0x001003f5, 0x04000028, 0x59340200, - 0x8c000514, 0x0400000f, 0x83380580, 0x00000030, - 0x0400000c, 0x83380580, 0x0000003f, 0x04000009, - 0x83380580, 0x00000034, 0x04000006, 0x83380580, - 0x00000024, 0x04000003, 0x42027000, 0x0000004c, - 0x0201f800, 0x00107cfe, 0x04000019, 0x4926601c, - 0x4936600a, 0x4a026407, 0x00000004, 0x59cc0c04, - 0x48066202, 0x83380580, 0x0000004c, 0x04020009, - 0x4a026407, 0x00000011, 0x813669c0, 0x04020005, + 0x48035012, 0x0401f195, 0x59cc0006, 0x82000500, + 0xffff0000, 0x82000d80, 0x03000000, 0x0402002d, + 0x59a8021b, 0x8c000508, 0x04000024, 0x8400054c, + 0x4803521b, 0x59cc0800, 0x82040d00, 0x00ffffff, + 0x42024800, 0x0010cfd1, 0x4807c857, 0x48064805, + 0x4807500f, 0x497b8830, 0x84040d70, 0x48078832, + 0x59c40802, 0x84040d4c, 0x48078802, 0x59cc0007, + 0x82000500, 0x0000ffff, 0x48038893, 0x48035012, + 0x42000800, 0x00000003, 0x59a8100f, 0x0201f800, + 0x00106e68, 0x59cc0006, 0x82000500, 0x0000ffff, + 0x02020800, 0x001003f5, 0x04020183, 0x42027000, + 0x00000017, 0x0401f11e, 0x0201f800, 0x001050f7, + 0x040207f5, 0x8c000502, 0x040207f3, 0x0401f17a, + 0x82000d80, 0x04000000, 0x04020018, 0x59cc0006, + 0x82000500, 0x0000ffff, 0x02020800, 0x001003f5, + 0x04020171, 0x0201f800, 0x001050f7, 0x04000002, + 0x0401f109, 0x497b5065, 0x42001000, 0x00110987, + 0x0201f800, 0x001064fe, 0x0201f800, 0x00104da6, + 0x59a8021b, 0x84000548, 0x4803521b, 0x42027000, + 0x00000030, 0x0401f0fe, 0x82000d80, 0x05000000, + 0x0402000a, 0x59cc0006, 0x82000500, 0x0000ffff, + 0x02020800, 0x001003f5, 0x04020157, 0x42027000, + 0x00000018, 0x0401f0f2, 0x82000d80, 0x20100000, + 0x04020004, 0x42027000, 0x00000019, 0x0401f0ec, + 0x82000d80, 0x21100000, 0x04020004, 0x42027000, + 0x0000001a, 0x0401f0e6, 0x82000d80, 0x52000000, + 0x0402000a, 0x59cc0006, 0x82000500, 0x0000ffff, + 0x02020800, 0x001003f5, 0x0402013f, 0x42027000, + 0x0000001b, 0x0401f0da, 0x82000d80, 0x50000000, + 0x0402000a, 0x59cc0006, 0x82000500, 0x0000ffff, + 0x02020800, 0x001003f5, 0x04020133, 0x42027000, + 0x0000001c, 0x0401f0ce, 0x82000d80, 0x13000000, + 0x04020004, 0x42027000, 0x00000034, 0x0401f0c8, + 0x82000d80, 0x12000000, 0x0402000a, 0x59cc0006, + 0x82000500, 0x0000ffff, 0x02020800, 0x001003f5, + 0x04020121, 0x42027000, 0x00000024, 0x0401f0bc, + 0x82000d00, 0xff000000, 0x82040d80, 0x24000000, + 0x04020004, 0x42027000, 0x0000002d, 0x0401f0b4, + 0x82000d00, 0xff000000, 0x82040d80, 0x53000000, + 0x04020004, 0x42027000, 0x0000002a, 0x0401f0ac, + 0x82000d80, 0x0f000000, 0x04020004, 0x42027000, + 0x00000020, 0x0401f0a6, 0x82000d80, 0x61040000, + 0x04020056, 0x4c5c0000, 0x4c600000, 0x4c640000, + 0x4c580000, 0x83ccc400, 0x00000006, 0x8060b800, + 0x50600000, 0x82000500, 0x0000ffff, 0x82001480, + 0x00000401, 0x04021041, 0x82001500, 0x00000003, + 0x0402003e, 0x59a8105a, 0x80081480, 0x0400103b, + 0x82000480, 0x00000004, 0x8000b104, 0x8058b1c0, + 0x04000036, 0x59cc3800, 0x821c3d00, 0x00ffffff, + 0x4d200000, 0x0201f800, 0x00101fc9, 0x04000003, + 0x5c024000, 0x0401f02d, 0x505cc800, 0x8264c500, + 0x03000000, 0x8060c130, 0x42000000, 0x0010cee4, + 0x82602580, 0x00000000, 0x04020004, 0x42000000, + 0x0010cee1, 0x0401f00c, 0x82602580, 0x00000001, + 0x04020004, 0x42000000, 0x0010cee2, 0x0401f006, + 0x82602580, 0x00000002, 0x04020003, 0x42000000, + 0x0010cee3, 0x0201f800, 0x0010bfb3, 0x42001000, + 0x00008015, 0x82642500, 0x0000ffff, 0x80641920, + 0x41202800, 0x0201f800, 0x001039ad, 0x805cb800, + 0x8058b040, 0x040207dd, 0x5c024000, 0x5c00b000, + 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x42027000, + 0x00000023, 0x0401f056, 0x5c00b000, 0x5c00c800, + 0x5c00c000, 0x5c00b800, 0x42000000, 0x0010cf17, + 0x0201f000, 0x0010bfb3, 0x82000d80, 0x60000000, + 0x04020004, 0x42027000, 0x0000003f, 0x0401f048, + 0x82000d80, 0x54000000, 0x04020010, 0x0401fbdb, + 0x02020800, 0x001003f5, 0x040200a3, 0x42027000, + 0x00000046, 0x42000000, 0x0010cfd6, 0x50000000, + 0x59cc3800, 0x821c3d00, 0xff000000, 0x801c0540, + 0x48039800, 0x0401f036, 0x82000d80, 0x55000000, + 0x04020009, 0x0401fbf1, 0x04020004, 0x42027000, + 0x00000041, 0x0401f02e, 0x42027000, 0x00000042, + 0x0401f02b, 0x82000d80, 0x78000000, 0x04020004, + 0x42027000, 0x00000045, 0x0401f025, 0x82000d80, + 0x10000000, 0x04020004, 0x42027000, 0x0000004e, + 0x0401f01f, 0x82000d80, 0x63000000, 0x04020004, + 0x42027000, 0x0000004a, 0x0401f019, 0x82000d00, + 0xff000000, 0x82040d80, 0x56000000, 0x04020004, + 0x42027000, 0x0000004f, 0x0401f011, 0x82000d00, + 0xff000000, 0x82040d80, 0x57000000, 0x04020004, + 0x42027000, 0x00000050, 0x0401f009, 0x82000d80, + 0x7d000000, 0x04020004, 0x42027000, 0x00000056, + 0x0401f003, 0x42027000, 0x0000001d, 0x59cc3800, + 0x821c3d00, 0x00ffffff, 0x821c0580, 0x00fffffe, + 0x59cc0001, 0x04020005, 0x40003000, 0x42028800, + 0x000007fe, 0x0401f00a, 0x59cc3800, 0x821c3d00, + 0x00ffffff, 0x4c1c0000, 0x0401f937, 0x5c003800, + 0x02020800, 0x001003f5, 0x0402004f, 0x0201f800, + 0x00101fc9, 0x83440480, 0x000007f0, 0x04001001, + 0x0201f800, 0x00103adb, 0x04000012, 0x4c180000, + 0x0201f800, 0x00104a7c, 0x5c003000, 0x04000012, + 0x4c180000, 0x0401f867, 0x5c003000, 0x04020009, + 0x0201f800, 0x00104d9c, 0x42026800, 0x0010e23c, + 0x481a6802, 0x42028800, 0x0000ffff, 0x0401f006, + 0x0201f800, 0x0010462d, 0x02020800, 0x001003f5, + 0x04020031, 0x83380580, 0x00000046, 0x04020006, + 0x59a8000f, 0x80180580, 0x02000800, 0x001003f5, + 0x04000029, 0x59340200, 0x8c000514, 0x0400000f, + 0x83380580, 0x00000030, 0x0400000c, 0x83380580, + 0x0000003f, 0x04000009, 0x83380580, 0x00000034, + 0x04000006, 0x83380580, 0x00000024, 0x04000003, + 0x42027000, 0x0000004c, 0x0201f800, 0x00107ef8, + 0x0400001a, 0x4926601c, 0x4936600a, 0x4a026407, + 0x00000004, 0x83340580, 0x0010e23c, 0x04020005, 0x59cc0001, 0x82000500, 0x00ffffff, 0x48026027, - 0x0201f000, 0x00020bc1, 0x598800b7, 0x4803c857, - 0x80000000, 0x480310b7, 0x1c01f000, 0x42001000, - 0x00008049, 0x59cc1806, 0x800c1930, 0x0201f800, - 0x001038bc, 0x0201f800, 0x00107d08, 0x02000800, - 0x001003f5, 0x040007f1, 0x4926601c, 0x4936600a, - 0x4a026407, 0x00000004, 0x59cc0c04, 0x48066202, - 0x4a026403, 0x00000009, 0x4a02641b, 0x00000009, - 0x4a02621b, 0x00002900, 0x4a026203, 0x00000001, - 0x0201f000, 0x00106b17, 0x59a8021b, 0x4803c857, - 0x8c000508, 0x04000013, 0x599c0019, 0x8c000510, - 0x04020010, 0x59cc0006, 0x82000500, 0xff000000, - 0x82000d80, 0x03000000, 0x0400000c, 0x82000d80, - 0x20000000, 0x04000009, 0x82000d80, 0x05000000, - 0x04000006, 0x82000d80, 0x21000000, 0x04000003, - 0x80000580, 0x1c01f000, 0x82000540, 0x00000001, - 0x0401f7fd, 0x59cc2006, 0x82102500, 0xff000000, - 0x9c1021c0, 0x0401f807, 0x820c1c00, 0x0010c83e, - 0x500c1800, 0x800c0500, 0x4803c857, 0x1c01f000, - 0x40100800, 0x41781800, 0x82040480, 0x00000020, - 0x04001004, 0x800c1800, 0x40000800, 0x0401f7fb, - 0x82040500, 0x0000000f, 0x82000400, 0x0010bdb6, - 0x50000000, 0x8c040d08, 0x04000002, 0x900001c0, - 0x1c01f000, 0x4803c856, 0x0401fb37, 0x0402000a, - 0x0201f800, 0x00101d49, 0x04020007, 0x59cc0002, - 0x82000500, 0xff000000, 0x82000d80, 0x08000000, - 0x04000802, 0x1c01f000, 0x4803c856, 0x59cc0400, - 0x82000d00, 0x0000ff00, 0x840409c0, 0x82040580, - 0x00000033, 0x04020027, 0x0401f986, 0x0400004d, - 0x59cc0a04, 0x48066202, 0x59a8005a, 0x82000480, - 0x00000004, 0x04001047, 0x59cc0006, 0x4803c857, - 0x82000500, 0xffff0000, 0x82000d80, 0x02000000, - 0x04020009, 0x59cc0006, 0x82000500, 0x0000ffff, - 0x0402003c, 0x42027000, 0x00000015, 0x0201f000, - 0x00020bc1, 0x82000d80, 0x01000000, 0x04020035, - 0x59cc0006, 0x82000500, 0x0000ffff, 0x04020031, - 0x59a8005a, 0x82000480, 0x00000008, 0x0400102d, - 0x42027000, 0x00000016, 0x0201f000, 0x00020bc1, - 0x82040580, 0x00000032, 0x04020026, 0x59cc0006, - 0x82000500, 0xffff0000, 0x82000d80, 0x14000000, - 0x04020020, 0x59a8005a, 0x82000480, 0x00000010, - 0x0400101c, 0x42027000, 0x00000038, 0x59cc0001, - 0x59cc3800, 0x821c3d00, 0x00ffffff, 0x4c1c0000, - 0x0401f818, 0x5c003800, 0x04020012, 0x0201f800, - 0x00101f66, 0x0402000f, 0x0201f800, 0x0010452c, - 0x0402000c, 0x0201f800, 0x00107cfe, 0x04000009, - 0x4926601c, 0x4936600a, 0x4a026407, 0x00000004, + 0x59cc0c04, 0x48066202, 0x83380580, 0x0000004c, + 0x04020003, 0x4a026407, 0x00000011, 0x0201f000, + 0x00020bc1, 0x598800b7, 0x4803c857, 0x80000000, + 0x480310b7, 0x1c01f000, 0x42001000, 0x00008049, + 0x59cc1806, 0x800c1930, 0x0201f800, 0x001039ac, + 0x0201f800, 0x00107f02, 0x02000800, 0x001003f5, + 0x040007f1, 0x4926601c, 0x4936600a, 0x83340580, + 0x0010e23c, 0x04020005, 0x59cc0001, 0x82000500, + 0x00ffffff, 0x48026027, 0x4a026407, 0x00000004, + 0x59cc0c04, 0x48066202, 0x4a026403, 0x00000009, + 0x4a02641b, 0x00000009, 0x4a02621b, 0x00002900, + 0x4a026203, 0x00000001, 0x0201f000, 0x00106d1c, + 0x59a8021b, 0x4803c857, 0x8c000508, 0x04000013, + 0x599c0019, 0x8c000510, 0x04020010, 0x59cc0006, + 0x82000500, 0xff000000, 0x82000d80, 0x03000000, + 0x0400000c, 0x82000d80, 0x20000000, 0x04000009, + 0x82000d80, 0x05000000, 0x04000006, 0x82000d80, + 0x21000000, 0x04000003, 0x80000580, 0x1c01f000, + 0x82000540, 0x00000001, 0x0401f7fd, 0x59cc2006, + 0x82102500, 0xff000000, 0x9c1021c0, 0x0401f807, + 0x820c1c00, 0x0010cb3e, 0x500c1800, 0x800c0500, + 0x4803c857, 0x1c01f000, 0x40100800, 0x41781800, + 0x82040480, 0x00000020, 0x04001004, 0x800c1800, + 0x40000800, 0x0401f7fb, 0x82040500, 0x0000000f, + 0x82000400, 0x0010c0fc, 0x50000000, 0x8c040d08, + 0x04000002, 0x900001c0, 0x1c01f000, 0x4803c856, + 0x0401fb55, 0x0402000a, 0x0201f800, 0x00101d52, + 0x04020007, 0x59cc0002, 0x82000500, 0xff000000, + 0x82000d80, 0x08000000, 0x04000802, 0x1c01f000, + 0x4803c856, 0x59cc0400, 0x82000d00, 0x0000ff00, + 0x840409c0, 0x82040580, 0x00000033, 0x04020027, + 0x0401f9a4, 0x0400006b, 0x59cc0a04, 0x48066202, + 0x59a8005a, 0x82000480, 0x00000004, 0x04001065, + 0x59cc0006, 0x4803c857, 0x82000500, 0xffff0000, + 0x82000d80, 0x02000000, 0x04020009, 0x59cc0006, + 0x82000500, 0x0000ffff, 0x0402005a, 0x42027000, + 0x00000015, 0x0201f000, 0x00020bc1, 0x82000d80, + 0x01000000, 0x04020053, 0x59cc0006, 0x82000500, + 0x0000ffff, 0x0402004f, 0x59a8005a, 0x82000480, + 0x00000008, 0x0400104b, 0x42027000, 0x00000016, + 0x0201f000, 0x00020bc1, 0x82040580, 0x00000032, + 0x04020044, 0x59cc0006, 0x82000500, 0xffff0000, + 0x82000d80, 0x14000000, 0x0402003e, 0x59a8005a, + 0x82000480, 0x00000010, 0x0400103a, 0x42027000, + 0x00000038, 0x59cc0001, 0x59cc3800, 0x821c3d00, + 0x00ffffff, 0x4c1c0000, 0x0401f836, 0x5c003800, + 0x04020030, 0x0201f800, 0x00101fc9, 0x0402002d, + 0x83440480, 0x000007f0, 0x04001001, 0x0201f800, + 0x00103adb, 0x04000012, 0x4c180000, 0x0201f800, + 0x00104a7c, 0x5c003000, 0x04000010, 0x4c180000, + 0x0401ff68, 0x5c003000, 0x04020009, 0x0201f800, + 0x00104d9c, 0x42026800, 0x0010e23c, 0x481a6802, + 0x42028800, 0x0000ffff, 0x0401f004, 0x0201f800, + 0x00104628, 0x04020013, 0x0201f800, 0x00107ef8, + 0x04000010, 0x4926601c, 0x4936600a, 0x83340580, + 0x0010e23c, 0x04020005, 0x59cc0001, 0x82000500, + 0x00ffffff, 0x48026027, 0x4a026407, 0x00000004, 0x59cc0c04, 0x48066202, 0x0201f000, 0x00020bc1, - 0x42000000, 0x0010cc17, 0x0201f000, 0x0010bc88, + 0x42000000, 0x0010cf17, 0x0201f000, 0x0010bfb3, 0x4803c857, 0x4000d000, 0x401cd800, 0x82003500, - 0x00ffffff, 0x0201f800, 0x00110caf, 0x40c40000, + 0x00ffffff, 0x0201f800, 0x00110fd6, 0x40c40000, 0x82000580, 0x00000001, 0x1c01f000, 0x59a8021b, 0x8c00050e, 0x04000003, 0x8c000502, 0x04000006, 0x59cc0c00, 0x80040910, 0x82040500, 0x0000000f, - 0x0c01f002, 0x1c01f000, 0x00105f8e, 0x00105f8e, - 0x00105f8e, 0x001060ab, 0x00105f8e, 0x00105f90, - 0x00105fb7, 0x00105fba, 0x00105f8e, 0x00105f8e, - 0x00105f8e, 0x00105f8e, 0x00105f8e, 0x00105f8e, - 0x00105f8e, 0x00105f8e, 0x4803c856, 0x1c01f000, + 0x0c01f002, 0x1c01f000, 0x0010615a, 0x0010615a, + 0x0010615a, 0x00106277, 0x0010615a, 0x0010615c, + 0x00106183, 0x00106186, 0x0010615a, 0x0010615a, + 0x0010615a, 0x0010615a, 0x0010615a, 0x0010615a, + 0x0010615a, 0x0010615a, 0x4803c856, 0x1c01f000, 0x0401f90c, 0x04000020, 0x59a8005a, 0x82000480, 0x0000000c, 0x0400101c, 0x59300407, 0x82000580, 0x00000003, 0x04020018, 0x59cc0001, 0x5932680a, @@ -20673,7 +20840,7 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x0000ffff, 0x04000003, 0x80040580, 0x04020006, 0x48066202, 0x42027000, 0x00000046, 0x0201f000, 0x00020bc1, 0x59cc0004, 0x4803c857, 0x42000000, - 0x0010cc18, 0x0201f000, 0x0010bc88, 0x59cc0004, + 0x0010cf18, 0x0201f000, 0x0010bfb3, 0x59cc0004, 0x4803c857, 0x1c01f000, 0x0401f8e2, 0x0400001c, 0x59a8005a, 0x82000480, 0x0000000c, 0x04001018, 0x59300407, 0x82000580, 0x00000003, 0x04020014, @@ -20682,25 +20849,25 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x00ffffff, 0x80040580, 0x04020009, 0x0401fa80, 0x04020007, 0x59cc0a04, 0x48066202, 0x42027000, 0x00000045, 0x0201f000, 0x00020bc1, 0x59cc0004, - 0x4803c857, 0x42000000, 0x0010cc18, 0x0201f000, - 0x0010bc88, 0x59cc0004, 0x4803c857, 0x59cc0000, + 0x4803c857, 0x42000000, 0x0010cf18, 0x0201f000, + 0x0010bfb3, 0x59cc0004, 0x4803c857, 0x59cc0000, 0x82000500, 0xff000000, 0x59cc1001, 0x82081500, 0x00ffffff, 0x80080540, 0x4803c857, 0x4817c857, 0x0401fa51, 0x02020800, 0x001003f5, 0x04020016, - 0x0201f800, 0x00101d49, 0x02020800, 0x001003f5, + 0x0201f800, 0x00101d52, 0x02020800, 0x001003f5, 0x04020011, 0x59cc0002, 0x82000500, 0xff000000, 0x82000580, 0x00000000, 0x02020800, 0x001003f5, 0x04020009, 0x82040500, 0x0000000f, 0x82000c80, 0x00000006, 0x02021800, 0x001003f5, 0x04021002, - 0x0c01f003, 0x4803c856, 0x1c01f000, 0x00106009, - 0x0010600b, 0x00106009, 0x00106009, 0x00106073, - 0x00106082, 0x4803c856, 0x1c01f000, 0x59a8005a, + 0x0c01f003, 0x4803c856, 0x1c01f000, 0x001061d5, + 0x001061d7, 0x001061d5, 0x001061d5, 0x0010623f, + 0x0010624e, 0x4803c856, 0x1c01f000, 0x59a8005a, 0x800001c0, 0x02020800, 0x001003f5, 0x040207fa, 0x59cc0802, 0x4807c856, 0x8c040d2e, 0x04020023, - 0x42026000, 0x0011120c, 0x59cc0001, 0x59cc3800, + 0x42026000, 0x0011152c, 0x59cc0001, 0x59cc3800, 0x0401ff50, 0x04020014, 0x0201f800, 0x0002034c, 0x04020011, 0x59cc3800, 0x821c3d00, 0x00ffffff, - 0x0201f800, 0x00101f66, 0x040207e7, 0x4926601c, + 0x0201f800, 0x00101fc9, 0x040207e7, 0x4926601c, 0x4a026407, 0x00000005, 0x4a026203, 0x00000008, 0x4936600a, 0x42027000, 0x00000088, 0x0201f000, 0x00020bc1, 0x4803c857, 0x42028800, 0x0000ffff, @@ -20708,16 +20875,16 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x48026027, 0x0401f7e8, 0x59cc0001, 0x4803c857, 0x59cc3800, 0x821c3d00, 0x00ffffff, 0x4c1c0000, 0x0401ff2c, 0x5c003800, 0x02020800, 0x001003f5, - 0x040207c9, 0x0201f800, 0x00101f66, 0x02020800, - 0x001003f5, 0x040207c4, 0x0201f800, 0x0010452c, + 0x040207c9, 0x0201f800, 0x00101fc9, 0x02020800, + 0x001003f5, 0x040207c4, 0x0201f800, 0x00104628, 0x02020800, 0x001003f5, 0x040207bf, 0x59cc0005, 0x8c000500, 0x04020006, 0x59340200, 0x8c00050e, 0x02020800, 0x001003f5, 0x040207b7, 0x0201f800, - 0x0010492d, 0x04020011, 0x0401f846, 0x02000800, - 0x001003f5, 0x040007b0, 0x42026000, 0x0011120c, + 0x00104a2f, 0x04020011, 0x0401f846, 0x02000800, + 0x001003f5, 0x040007b0, 0x42026000, 0x0011152c, 0x4926601c, 0x4936600a, 0x4a026407, 0x00000002, 0x4a026203, 0x00000008, 0x42027000, 0x00000088, - 0x0201f000, 0x00020bc1, 0x0201f800, 0x00107cfe, + 0x0201f000, 0x00020bc1, 0x0201f800, 0x00107ef8, 0x040007a1, 0x4926601c, 0x4936600a, 0x4a026407, 0x00000004, 0x59cc0c04, 0x48066202, 0x42027000, 0x00000001, 0x0201f000, 0x00020bc1, 0x59cc0802, @@ -20729,11 +20896,11 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x59cc0802, 0x8c040d2e, 0x0400000b, 0x0401f811, 0x04000009, 0x0401f9b6, 0x04020007, 0x59cc0a04, 0x48066202, 0x42027000, 0x0000008a, 0x0201f000, - 0x00020bc1, 0x4933c857, 0x42000000, 0x0010cc17, - 0x0201f000, 0x0010bc88, 0x59cc0a04, 0x0401f002, + 0x00020bc1, 0x4933c857, 0x42000000, 0x0010cf17, + 0x0201f000, 0x0010bfb3, 0x59cc0a04, 0x0401f002, 0x59cc0c04, 0x59a8000d, 0x59a8104f, 0x80080400, 0x80040480, 0x04021008, 0x42001000, 0x0000002c, - 0x0201f800, 0x00106a79, 0x82066400, 0x00111264, + 0x0201f800, 0x00106c7e, 0x82066400, 0x00111584, 0x1c01f000, 0x80000580, 0x0401f7fe, 0x59cc0802, 0x8c040d2e, 0x0402001b, 0x0401ffec, 0x04000019, 0x59300407, 0x82000580, 0x00000006, 0x04020015, @@ -20742,24 +20909,24 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x00ffffff, 0x80040580, 0x0402000a, 0x0401f990, 0x04020008, 0x59a8005a, 0x800001c0, 0x04020005, 0x42027000, 0x00000051, 0x0201f000, 0x00020bc1, - 0x59cc0004, 0x4803c857, 0x42000000, 0x0010cc18, - 0x0201f000, 0x0010bc88, 0x4803c856, 0x42003000, + 0x59cc0004, 0x4803c857, 0x42000000, 0x0010cf18, + 0x0201f000, 0x0010bfb3, 0x4803c856, 0x42003000, 0x00000105, 0x0401f001, 0x481bc857, 0x4c5c0000, 0x4c600000, 0x4c640000, 0x41ccc800, 0x4014b800, 0x4018c000, 0x0401f805, 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x1c01f000, 0x4803c856, 0x4c580000, 0x58640400, 0x82000500, 0x0000f000, 0x82000580, - 0x0000c000, 0x0400002b, 0x0201f800, 0x00107cfe, + 0x0000c000, 0x0400002b, 0x0201f800, 0x00107ef8, 0x04000028, 0x58640001, 0x58643800, 0x821c3d00, 0x00ffffff, 0x4c1c0000, 0x0401fe7a, 0x5c003800, - 0x04020022, 0x0201f800, 0x00101f66, 0x0402001f, - 0x0201f800, 0x0010452c, 0x0402001c, 0x4936600a, + 0x04020022, 0x0201f800, 0x00101fc9, 0x0402001f, + 0x0201f800, 0x00104628, 0x0402001c, 0x4936600a, 0x0201f800, 0x00100583, 0x04000018, 0x4926601c, 0x492e6018, 0x497a5800, 0x497a5a05, 0x485e5c05, 0x832cac00, 0x00000006, 0x4200b000, 0x00000007, - 0x4064a000, 0x0201f800, 0x0010bd5b, 0x4862641b, + 0x4064a000, 0x0201f800, 0x0010c086, 0x4862641b, 0x4a026403, 0x0000003e, 0x4a026407, 0x00000001, - 0x4a026203, 0x00000001, 0x0201f800, 0x00106b17, + 0x4a026203, 0x00000001, 0x0201f800, 0x00106d1c, 0x5c00b000, 0x1c01f000, 0x0201f800, 0x00020b9d, 0x0401f7fc, 0x4803c856, 0x59cc0400, 0x82000d00, 0x0000ff00, 0x82040500, 0x0000f000, 0x840409c0, @@ -20772,8 +20939,8 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x82000d80, 0x54000000, 0x04000071, 0x82000d80, 0x03000000, 0x0402001b, 0x59a80a1b, 0x8c040d02, 0x0402006b, 0x8c040d08, 0x04020069, 0x82000d80, - 0x03000000, 0x04020004, 0x0201f800, 0x00104fc6, - 0x04000063, 0x0201f800, 0x0010486c, 0x04000063, + 0x03000000, 0x04020004, 0x0201f800, 0x001050f7, + 0x04000063, 0x0201f800, 0x0010496c, 0x04000063, 0x59a80018, 0x800000d0, 0x59a8080f, 0x82040d00, 0x000000ff, 0x80040540, 0x59cc0800, 0x82040d00, 0x00ffffff, 0x80040580, 0x04020034, 0x0401f054, @@ -20784,15 +20951,15 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x0401ff38, 0x04000021, 0x59300c03, 0x82040580, 0x00000002, 0x0400003e, 0x82040580, 0x00000051, 0x0400003b, 0x0401f001, 0x59a8021b, 0x8c000514, - 0x04000016, 0x4c580000, 0x0201f800, 0x0010bd9f, + 0x04000016, 0x4c580000, 0x0201f800, 0x0010c0ca, 0x82582480, 0x00000041, 0x5c00b000, 0x0400100f, 0x59cc0800, 0x82040d00, 0x00ffffff, 0x42001000, - 0x0010cf91, 0x58080005, 0x80040580, 0x04000028, + 0x0010d291, 0x58080005, 0x80040580, 0x04000028, 0x801021c0, 0x04000005, 0x80102040, 0x82081400, 0x0000000b, 0x0401f7f8, 0x59a80078, 0x8c00053e, 0x0400001d, 0x59cc0800, 0x82040d00, 0x00ffffff, 0x82040580, 0x0000fc0e, 0x04000019, 0x4c040000, - 0x42000000, 0x0010ccb0, 0x0201f800, 0x0010bc88, + 0x42000000, 0x0010cfb0, 0x0201f800, 0x0010bfb3, 0x0201f800, 0x00020b7b, 0x5c000800, 0x0400000e, 0x59aa6879, 0x4936600a, 0x4a026407, 0x00000012, 0x42027000, 0x000000d2, 0x48066019, 0x4a02601a, @@ -20807,20 +20974,20 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x0402001f, 0x59ccb807, 0x9c5cb9c0, 0x825cbd00, 0x00000007, 0x8c5cbd00, 0x0400000a, 0x4200b000, 0x00000002, 0x83a81c00, 0x00000002, 0x83cc1400, - 0x0000000d, 0x0201f800, 0x00108a31, 0x04020010, + 0x0000000d, 0x0201f800, 0x00108c57, 0x04020010, 0x8c5cbd02, 0x0400000a, 0x4200b000, 0x00000002, 0x83a81c00, 0x00000000, 0x83cc1400, 0x0000000f, - 0x0201f800, 0x00108a31, 0x04020005, 0x8c5cbd04, + 0x0201f800, 0x00108c57, 0x04020005, 0x8c5cbd04, 0x04000003, 0x82000540, 0x00000001, 0x5c00b000, 0x5c00b800, 0x1c01f000, 0x4803c856, 0x4c5c0000, 0x4c580000, 0x59a8005a, 0x82000580, 0x0000004c, 0x0402001f, 0x59ccb807, 0x9c5cb9c0, 0x825cbd00, 0x00000007, 0x8c5cbd00, 0x0400000a, 0x4200b000, 0x00000002, 0x83a81c00, 0x00000002, 0x83cc1400, - 0x00000009, 0x0201f800, 0x00108a31, 0x04020010, + 0x00000009, 0x0201f800, 0x00108c57, 0x04020010, 0x8c5cbd02, 0x0400000a, 0x4200b000, 0x00000002, 0x83a81c00, 0x00000000, 0x83cc1400, 0x0000000b, - 0x0201f800, 0x00108a31, 0x04020005, 0x8c5cbd04, + 0x0201f800, 0x00108c57, 0x04020005, 0x8c5cbd04, 0x04000003, 0x82000540, 0x00000001, 0x5c00b000, 0x5c00b800, 0x1c01f000, 0x4803c857, 0x4c580000, 0x40003000, 0x42002000, 0x000007f0, 0x4200b000, @@ -20841,2313 +21008,2332 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x00000005, 0x1c01f000, 0x59c80000, 0x84000558, 0x84000512, 0x48039000, 0x1c01f000, 0x59cc0800, 0x59340013, 0x80040580, 0x82000500, 0x00ffffff, - 0x1c01f000, 0x4a032824, 0x000003e8, 0x4a032802, - 0x00111264, 0x4a032800, 0x00000000, 0x4a032808, - 0x00107229, 0x42000000, 0x00000005, 0x83947c00, - 0x00000009, 0x49787801, 0x4a007804, 0x001070dc, - 0x823c7c00, 0x00000005, 0x80000040, 0x040207fa, - 0x4a032823, 0xffff0000, 0x4201d000, 0x00000064, - 0x0401fa12, 0x4201d000, 0x000186a0, 0x0401f221, - 0x00000000, 0x00000005, 0x0000000a, 0x0000000f, - 0x00000014, 0x4d300000, 0x4d2c0000, 0x4d340000, - 0x4d400000, 0x4cfc0000, 0x4d380000, 0x4d3c0000, - 0x4d440000, 0x4d4c0000, 0x4d480000, 0x4c5c0000, - 0x4c600000, 0x4c640000, 0x4cc80000, 0x4ccc0000, - 0x0201f800, 0x00020988, 0x5c019800, 0x5c019000, - 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x5c029000, - 0x5c029800, 0x5c028800, 0x5c027800, 0x5c027000, - 0x5c01f800, 0x5c028000, 0x5c026800, 0x5c025800, - 0x5c026000, 0x1c01f000, 0x59940031, 0x59940832, - 0x80040480, 0x48032832, 0x04001002, 0x04020034, - 0x59bc00e4, 0x8c000530, 0x04000009, 0x4a030000, - 0x00000000, 0x4803c856, 0x4a0378e4, 0x02000000, - 0x4a032832, 0x000004b0, 0x0401f029, 0x42000800, - 0x00000100, 0x80040840, 0x040007f5, 0x0201f800, - 0x0010bdab, 0x040007fc, 0x0201f800, 0x00106c3c, - 0x4df00000, 0x4d180000, 0x42023000, 0x00000005, - 0x0201f800, 0x00100e45, 0x5c023000, 0x0201f800, - 0x0010064a, 0x42000800, 0x00007a00, 0x58040015, - 0x82000500, 0xffff8fff, 0x59a8107a, 0x80080540, - 0x48000815, 0x4a030000, 0x00000000, 0x497b2832, - 0x4a0378e4, 0x02800000, 0x0201f800, 0x00100ea3, - 0x5c03e000, 0x02000800, 0x00106c29, 0x42000000, - 0x0010ccb6, 0x0201f800, 0x0010bc88, 0x1c01f000, - 0x59940004, 0x80000540, 0x0402000a, 0x5994002f, - 0x80040400, 0x02001800, 0x0010032e, 0x48032804, - 0x480b2805, 0x4a032803, 0x0000000a, 0x80000580, - 0x1c01f000, 0x59940029, 0x80000540, 0x0402000a, + 0x1c01f000, 0x82140500, 0x0000f000, 0x04000006, + 0x82000c80, 0x00002000, 0x0402100a, 0x80000580, + 0x1c01f000, 0x59cc0400, 0x82000500, 0x0000ff00, + 0x82000580, 0x00008100, 0x040007fa, 0x0401f014, + 0x4817c857, 0x82140500, 0x000003ff, 0x04020007, + 0x59cc0400, 0x82000500, 0x0000ff00, 0x82000580, + 0x00008100, 0x0402000a, 0x42000000, 0x0010cf7d, + 0x0201f800, 0x0010bfb3, 0x0401fe5c, 0x4803c856, + 0x82000540, 0x00000001, 0x0401f7e6, 0x41780000, + 0x0401f7e4, 0x0201f800, 0x001050f7, 0x04000010, + 0x59c400a4, 0x4803c857, 0x82000500, 0x0000000f, + 0x82000580, 0x0000000a, 0x04020009, 0x497b505a, + 0x59c400a3, 0x82000540, 0x00080000, 0x480388a3, + 0x82000500, 0xfff7ffff, 0x480388a3, 0x4817c856, + 0x0201f000, 0x0010bef8, 0x4a032824, 0x000003e8, + 0x4a032802, 0x00111584, 0x4a032800, 0x00000000, + 0x4a032808, 0x0010742e, 0x42000000, 0x00000005, + 0x83947c00, 0x00000009, 0x49787801, 0x4a007804, + 0x001072e1, 0x823c7c00, 0x00000005, 0x80000040, + 0x040207fa, 0x4a032823, 0xffff0000, 0x4201d000, + 0x00000064, 0x0401fa12, 0x4201d000, 0x000186a0, + 0x0401f221, 0x00000000, 0x00000005, 0x0000000a, + 0x0000000f, 0x00000014, 0x4d300000, 0x4d2c0000, + 0x4d340000, 0x4d400000, 0x4cfc0000, 0x4d380000, + 0x4d3c0000, 0x4d440000, 0x4d4c0000, 0x4d480000, + 0x4c5c0000, 0x4c600000, 0x4c640000, 0x4cc80000, + 0x4ccc0000, 0x0201f800, 0x00020988, 0x5c019800, + 0x5c019000, 0x5c00c800, 0x5c00c000, 0x5c00b800, + 0x5c029000, 0x5c029800, 0x5c028800, 0x5c027800, + 0x5c027000, 0x5c01f800, 0x5c028000, 0x5c026800, + 0x5c025800, 0x5c026000, 0x1c01f000, 0x59940031, + 0x59940832, 0x80040480, 0x48032832, 0x04001002, + 0x04020034, 0x59bc00e4, 0x8c000530, 0x04000009, + 0x4a030000, 0x00000000, 0x4803c856, 0x4a0378e4, + 0x02000000, 0x4a032832, 0x000004b0, 0x0401f029, + 0x42000800, 0x00000100, 0x80040840, 0x040007f5, + 0x0201f800, 0x0010c0d6, 0x040007fc, 0x0201f800, + 0x00106e41, 0x4df00000, 0x4d180000, 0x42023000, + 0x00000005, 0x0201f800, 0x00100e46, 0x5c023000, + 0x0201f800, 0x0010064a, 0x42000800, 0x00007a00, + 0x58040015, 0x82000500, 0xffff8fff, 0x59a8107a, + 0x80080540, 0x48000815, 0x4a030000, 0x00000000, + 0x497b2832, 0x4a0378e4, 0x02800000, 0x0201f800, + 0x00100ea4, 0x5c03e000, 0x02000800, 0x00106e2e, + 0x42000000, 0x0010cfb6, 0x0201f800, 0x0010bfb3, + 0x1c01f000, 0x59940004, 0x80000540, 0x0402000a, 0x5994002f, 0x80040400, 0x02001800, 0x0010032e, - 0x48032829, 0x480b282a, 0x4a032828, 0x00000001, - 0x80000580, 0x1c01f000, 0x40680800, 0x406c1000, - 0x5994002c, 0x80000540, 0x0402000a, 0x5994002f, - 0x80040400, 0x02001800, 0x0010032e, 0x4803282c, - 0x480b282d, 0x4a03282b, 0x0000000a, 0x80000580, - 0x1c01f000, 0x4c000000, 0x59940005, 0x80080580, - 0x04020003, 0x497b2804, 0x497b2805, 0x5c000000, - 0x1c01f000, 0x40681000, 0x0401fff7, 0x1c01f000, - 0x4c000000, 0x5994002a, 0x80080580, 0x04020003, - 0x497b2829, 0x497b282a, 0x5c000000, 0x1c01f000, - 0x4c000000, 0x5994002d, 0x80080580, 0x04020003, - 0x497b282c, 0x497b282d, 0x5c000000, 0x1c01f000, - 0x4937c857, 0x48ebc857, 0x59340203, 0x80e80480, - 0x04001002, 0x48ea6a03, 0x1c01f000, 0x4d440000, - 0x42007800, 0x00000010, 0x59968801, 0x0201f800, - 0x0002034c, 0x04020059, 0x59341a03, 0x800c1840, - 0x04001017, 0x59940031, 0x800c0480, 0x04000003, - 0x48026a03, 0x04021012, 0x5934000f, 0x497a6a03, - 0x80000540, 0x0400004d, 0x5934000b, 0x80001120, - 0x82000500, 0x0000ffff, 0x80080480, 0x04001004, - 0x4a026a03, 0x00000001, 0x0401f005, 0x4c3c0000, - 0x0201f800, 0x0002035a, 0x5c007800, 0x4d2c0000, - 0x41781800, 0x5934000f, 0x80025d40, 0x0400003a, - 0x592c0004, 0x80000d40, 0x04000006, 0x59940031, - 0x80040480, 0x48025804, 0x04001007, 0x04000006, - 0x412c1800, 0x592c0000, 0x80025d40, 0x0400002e, - 0x0401f7f4, 0x592c2000, 0x497a5800, 0x800c19c0, - 0x04020009, 0x59340010, 0x812c0580, 0x04020004, - 0x497a680f, 0x497a6810, 0x0401f008, 0x4812680f, - 0x0401f006, 0x48101800, 0x59340010, 0x812c0580, - 0x04020002, 0x480e6810, 0x592c0205, 0x82000500, - 0x000000ff, 0x82000580, 0x00000012, 0x04000004, - 0x82000580, 0x00000060, 0x04020004, 0x4a025a07, - 0x0000000b, 0x0401f008, 0x4a025a05, 0x00000103, - 0x4a025a07, 0x00000006, 0x497a580a, 0x4a025c07, - 0x0000ffff, 0x4c0c0000, 0x4c100000, 0x0201f800, - 0x000203ef, 0x5c002000, 0x5c001800, 0x40100000, - 0x0401f7d2, 0x5c025800, 0x81468800, 0x83440480, - 0x00000800, 0x04021007, 0x803c7840, 0x040207a0, - 0x49472801, 0x5c028800, 0x5c03e000, 0x1c01f000, - 0x4a032800, 0x00000002, 0x497b2801, 0x0401f7fa, - 0x42007800, 0x00000010, 0x59966002, 0x59300205, - 0x80000d40, 0x04000006, 0x59940031, 0x80040480, - 0x48026205, 0x0400102d, 0x0400002c, 0x59300006, - 0x80000d40, 0x04000014, 0x59b800e4, 0x8c000524, - 0x04020011, 0x4a0370e4, 0x00030000, 0x40000000, - 0x59b800e4, 0x8c000524, 0x04000004, 0x4a0370e4, - 0x00020000, 0x0401f008, 0x59940031, 0x80040480, - 0x48026006, 0x4a0370e4, 0x00020000, 0x0400101c, - 0x0400001b, 0x83326400, 0x0000002c, 0x49332802, - 0x41540000, 0x81300480, 0x04021005, 0x803c7840, - 0x040207db, 0x5c03e000, 0x1c01f000, 0x59940030, - 0x48032831, 0x4a032802, 0x00111264, 0x497b2830, - 0x80000540, 0x0400000f, 0x4a032800, 0x00000001, - 0x5c03e000, 0x1c01f000, 0x4c3c0000, 0x0201f800, - 0x00109859, 0x5c007800, 0x0401f7d1, 0x4c3c0000, - 0x0201f800, 0x001093aa, 0x5c007800, 0x0401f7e2, - 0x4a032800, 0x00000000, 0x5c03e000, 0x1c01f000, - 0x59a80859, 0x8c040d30, 0x04020029, 0x8c040d32, - 0x0400000f, 0x59a80050, 0x81640480, 0x04001019, - 0x59a8000b, 0x81500580, 0x04000005, 0x59a8004e, - 0x59a8104d, 0x80080580, 0x04020012, 0x900411c0, - 0x82081500, 0x00007000, 0x0401f012, 0x82040500, - 0x0000001f, 0x04000016, 0x80040840, 0x82040500, - 0x0000001f, 0x04000003, 0x48075059, 0x0401f010, - 0x900401c0, 0x82000500, 0x0000001f, 0x80040d40, - 0x900401c0, 0x80040580, 0x82001500, 0x00007000, - 0x82040500, 0xffff8fff, 0x80080540, 0x48035059, - 0x80081114, 0x0201f800, 0x00100463, 0x1c01f000, - 0x4a032807, 0x000007d0, 0x4a032806, 0x0000000a, - 0x1c01f000, 0x42000800, 0x00000004, 0x83180480, - 0x00000005, 0x02021800, 0x0010032e, 0x83947c00, - 0x00000009, 0x83180400, 0x00106270, 0x50000000, - 0x803c7c00, 0x4a007801, 0x000001f4, 0x48047802, - 0x4a007800, 0x0000000a, 0x49787803, 0x1c01f000, + 0x48032804, 0x480b2805, 0x4a032803, 0x0000000a, + 0x80000580, 0x1c01f000, 0x59940029, 0x80000540, + 0x0402000a, 0x5994002f, 0x80040400, 0x02001800, + 0x0010032e, 0x48032829, 0x480b282a, 0x4a032828, + 0x00000001, 0x80000580, 0x1c01f000, 0x40680800, + 0x406c1000, 0x5994002c, 0x80000540, 0x0402000a, + 0x5994002f, 0x80040400, 0x02001800, 0x0010032e, + 0x4803282c, 0x480b282d, 0x4a03282b, 0x0000000a, + 0x80000580, 0x1c01f000, 0x4c000000, 0x59940005, + 0x80080580, 0x04020003, 0x497b2804, 0x497b2805, + 0x5c000000, 0x1c01f000, 0x40681000, 0x0401fff7, + 0x1c01f000, 0x4c000000, 0x5994002a, 0x80080580, + 0x04020003, 0x497b2829, 0x497b282a, 0x5c000000, + 0x1c01f000, 0x4c000000, 0x5994002d, 0x80080580, + 0x04020003, 0x497b282c, 0x497b282d, 0x5c000000, + 0x1c01f000, 0x4937c857, 0x48ebc857, 0x59340203, + 0x80e80480, 0x04001002, 0x48ea6a03, 0x1c01f000, + 0x4d440000, 0x42007800, 0x00000010, 0x59968801, + 0x0201f800, 0x0002034c, 0x04020059, 0x59341a03, + 0x800c1840, 0x04001017, 0x59940031, 0x800c0480, + 0x04000003, 0x48026a03, 0x04021012, 0x5934000f, + 0x497a6a03, 0x80000540, 0x0400004d, 0x5934000b, + 0x80001120, 0x82000500, 0x0000ffff, 0x80080480, + 0x04001004, 0x4a026a03, 0x00000001, 0x0401f005, + 0x4c3c0000, 0x0201f800, 0x0002035a, 0x5c007800, + 0x4d2c0000, 0x41781800, 0x5934000f, 0x80025d40, + 0x0400003a, 0x592c0004, 0x80000d40, 0x04000006, + 0x59940031, 0x80040480, 0x48025804, 0x04001007, + 0x04000006, 0x412c1800, 0x592c0000, 0x80025d40, + 0x0400002e, 0x0401f7f4, 0x592c2000, 0x497a5800, + 0x800c19c0, 0x04020009, 0x59340010, 0x812c0580, + 0x04020004, 0x497a680f, 0x497a6810, 0x0401f008, + 0x4812680f, 0x0401f006, 0x48101800, 0x59340010, + 0x812c0580, 0x04020002, 0x480e6810, 0x592c0205, + 0x82000500, 0x000000ff, 0x82000580, 0x00000012, + 0x04000004, 0x82000580, 0x00000060, 0x04020004, + 0x4a025a07, 0x0000000b, 0x0401f008, 0x4a025a05, + 0x00000103, 0x4a025a07, 0x00000006, 0x497a580a, + 0x4a025c07, 0x0000ffff, 0x4c0c0000, 0x4c100000, + 0x0201f800, 0x000203ef, 0x5c002000, 0x5c001800, + 0x40100000, 0x0401f7d2, 0x5c025800, 0x81468800, + 0x83440480, 0x00000800, 0x04021007, 0x803c7840, + 0x040207a0, 0x49472801, 0x5c028800, 0x5c03e000, + 0x1c01f000, 0x4a032800, 0x00000002, 0x497b2801, + 0x0401f7fa, 0x42007800, 0x00000010, 0x59966002, + 0x59300205, 0x80000d40, 0x04000006, 0x59940031, + 0x80040480, 0x48026205, 0x0400102d, 0x0400002c, + 0x59300006, 0x80000d40, 0x04000014, 0x59b800e4, + 0x8c000524, 0x04020011, 0x4a0370e4, 0x00030000, + 0x40000000, 0x59b800e4, 0x8c000524, 0x04000004, + 0x4a0370e4, 0x00020000, 0x0401f008, 0x59940031, + 0x80040480, 0x48026006, 0x4a0370e4, 0x00020000, + 0x0400101c, 0x0400001b, 0x83326400, 0x0000002c, + 0x49332802, 0x41540000, 0x81300480, 0x04021005, + 0x803c7840, 0x040207db, 0x5c03e000, 0x1c01f000, + 0x59940030, 0x48032831, 0x4a032802, 0x00111584, + 0x497b2830, 0x80000540, 0x0400000f, 0x4a032800, + 0x00000001, 0x5c03e000, 0x1c01f000, 0x4c3c0000, + 0x0201f800, 0x00109a91, 0x5c007800, 0x0401f7d1, + 0x4c3c0000, 0x0201f800, 0x001095de, 0x5c007800, + 0x0401f7e2, 0x4a032800, 0x00000000, 0x5c03e000, + 0x1c01f000, 0x59a80859, 0x8c040d30, 0x04020029, + 0x8c040d32, 0x0400000f, 0x59a80050, 0x81640480, + 0x04001019, 0x59a8000b, 0x81500580, 0x04000005, + 0x59a8004e, 0x59a8104d, 0x80080580, 0x04020012, + 0x900411c0, 0x82081500, 0x00007000, 0x0401f012, + 0x82040500, 0x0000001f, 0x04000016, 0x80040840, + 0x82040500, 0x0000001f, 0x04000003, 0x48075059, + 0x0401f010, 0x900401c0, 0x82000500, 0x0000001f, + 0x80040d40, 0x900401c0, 0x80040580, 0x82001500, + 0x00007000, 0x82040500, 0xffff8fff, 0x80080540, + 0x48035059, 0x80081114, 0x0201f800, 0x00100463, + 0x1c01f000, 0x4a032807, 0x000007d0, 0x4a032806, + 0x0000000a, 0x1c01f000, 0x42000800, 0x00000004, 0x83180480, 0x00000005, 0x02021800, 0x0010032e, - 0x83947c00, 0x00000009, 0x83180400, 0x00106270, - 0x50000000, 0x803c7c00, 0x583c0002, 0x80000040, - 0x48007802, 0x04000005, 0x4a007801, 0x000001f4, - 0x4a007800, 0x0000000a, 0x1c01f000, 0x83180480, - 0x00000005, 0x02021800, 0x0010032e, 0x83947c00, - 0x00000009, 0x83180400, 0x00106270, 0x50000000, - 0x803c7c00, 0x49787801, 0x1c01f000, 0x40680800, - 0x406c1000, 0x0401f802, 0x1c01f000, 0x4807c857, + 0x83947c00, 0x00000009, 0x83180400, 0x00106475, + 0x50000000, 0x803c7c00, 0x4a007801, 0x000001f4, + 0x48047802, 0x4a007800, 0x0000000a, 0x49787803, + 0x1c01f000, 0x83180480, 0x00000005, 0x02021800, + 0x0010032e, 0x83947c00, 0x00000009, 0x83180400, + 0x00106475, 0x50000000, 0x803c7c00, 0x583c0002, + 0x80000040, 0x48007802, 0x04000005, 0x4a007801, + 0x000001f4, 0x4a007800, 0x0000000a, 0x1c01f000, + 0x83180480, 0x00000005, 0x02021800, 0x0010032e, + 0x83947c00, 0x00000009, 0x83180400, 0x00106475, + 0x50000000, 0x803c7c00, 0x49787801, 0x1c01f000, + 0x40680800, 0x406c1000, 0x0401f802, 0x1c01f000, + 0x4807c857, 0x480bc857, 0x5994002f, 0x80040400, + 0x02001800, 0x0010032e, 0x48032804, 0x480b2805, + 0x4a032803, 0x0000000a, 0x1c01f000, 0x4807c857, 0x480bc857, 0x5994002f, 0x80040400, 0x02001800, - 0x0010032e, 0x48032804, 0x480b2805, 0x4a032803, - 0x0000000a, 0x1c01f000, 0x4807c857, 0x480bc857, + 0x0010032e, 0x48032826, 0x480b2827, 0x4a032825, + 0x0000000a, 0x1c01f000, 0x4c000000, 0x59940027, + 0x80080580, 0x04020003, 0x48032826, 0x48032827, + 0x5c000000, 0x1c01f000, 0x4807c857, 0x480bc857, 0x5994002f, 0x80040400, 0x02001800, 0x0010032e, - 0x48032826, 0x480b2827, 0x4a032825, 0x0000000a, - 0x1c01f000, 0x4c000000, 0x59940027, 0x80080580, - 0x04020003, 0x48032826, 0x48032827, 0x5c000000, - 0x1c01f000, 0x4807c857, 0x480bc857, 0x5994002f, - 0x80040400, 0x02001800, 0x0010032e, 0x4803282c, - 0x480b282d, 0x4a03282b, 0x0000000a, 0x1c01f000, - 0x80e9d1c0, 0x0400000e, 0x0401f832, 0x04025000, - 0x4203e000, 0x80000000, 0x40e81000, 0x41780800, - 0x42000000, 0x00000064, 0x0201f800, 0x00106a98, - 0x5994002e, 0x80080400, 0x4803282e, 0x1c01f000, - 0x42001000, 0x00104ee2, 0x0401fe8b, 0x42001000, - 0x00104ed1, 0x0401ffd8, 0x42001000, 0x00104038, - 0x0401fe85, 0x42001000, 0x001040ba, 0x0401fe82, - 0x42001000, 0x00104011, 0x0401fe7f, 0x42001000, - 0x001040f1, 0x0401f68f, 0x4203e000, 0x70000000, - 0x4203e000, 0xb0300000, 0x40ebf800, 0x42000000, - 0x0000003c, 0x04004004, 0x80000040, 0x040207fe, - 0x0401f007, 0x4203e000, 0x70000000, 0x42000000, - 0x0010cc3e, 0x0201f800, 0x0010bc88, 0x1c01f000, - 0x4203e000, 0x80000000, 0x4203e000, 0xb0400000, - 0x40ebf800, 0x42000000, 0x0000003c, 0x04005004, - 0x80000040, 0x040207fe, 0x0401f007, 0x4203e000, - 0x80000000, 0x42000000, 0x0010cc3f, 0x0201f800, - 0x0010bc88, 0x1c01f000, 0x59a8080d, 0x59a80251, - 0x80040480, 0x599c0a02, 0x800409c0, 0x04020002, - 0x80040800, 0x80041480, 0x04001002, 0x40000800, - 0x4807504f, 0x59a8100d, 0x40040000, 0x800acc80, - 0x4967500d, 0x49675050, 0x59aaa80b, 0x41640800, - 0x42001000, 0x0000002c, 0x0201f800, 0x00106a79, - 0x8206a400, 0x00111264, 0x4953504c, 0x4152b000, - 0x42006000, 0x0010df71, 0x4a006005, 0x0000012c, - 0x4a006006, 0xda10da10, 0x4a006009, 0x00000012, - 0x4a00600a, 0x0010df71, 0x4a00600b, 0x00100f05, - 0x599c0014, 0x48006012, 0x599c0015, 0x48006013, - 0x42006000, 0x001111b4, 0x4a006203, 0x00000008, - 0x4a006407, 0x00000006, 0x4a006002, 0xffff0000, - 0x4a006009, 0x0010df71, 0x4a006015, 0x0010df71, - 0x599c0014, 0x48006016, 0x599c0015, 0x48006017, - 0x599c0413, 0x48006018, 0x49506019, 0x4954601a, - 0x59a8004f, 0x4800601b, 0x4a00601c, 0x0010c7cc, - 0x4a00601d, 0x0010c7cd, 0x4a00601e, 0x0010c7ce, - 0x42000000, 0xb0000000, 0x42000800, 0x001111b4, - 0x0201f800, 0x0002010e, 0x1c01f000, 0x82000d00, - 0x000000c0, 0x04000004, 0x82040d80, 0x000000c0, - 0x04020055, 0x82000d00, 0x00002020, 0x59300415, - 0x84000512, 0x82040d80, 0x00002020, 0x0400000b, - 0x8c000514, 0x0402000f, 0x48026415, 0x813e79c0, - 0x02020000, 0x00020ac9, 0x42027000, 0x00000043, - 0x0201f000, 0x00020bc1, 0x5932680a, 0x59340a00, - 0x8c040d0a, 0x040007f3, 0x84000552, 0x0401f7f1, - 0x84000514, 0x592c080e, 0x48066016, 0x0401f7ef, - 0x5932680a, 0x59340a00, 0x8c040d0a, 0x02000000, - 0x00020adc, 0x59300c15, 0x84040d52, 0x48066415, - 0x0201f000, 0x00020adc, 0x0201f800, 0x0002011a, - 0x813e79c0, 0x02020000, 0x00020ac9, 0x0201f000, - 0x00020af1, 0x8c00051e, 0x02000000, 0x00020afd, - 0x82000d00, 0x00002020, 0x82040d80, 0x00002020, - 0x04000014, 0x82000500, 0x000000c0, 0x82000d80, - 0x00000080, 0x04000008, 0x813e79c0, 0x02020000, - 0x00020ac9, 0x42027000, 0x00000041, 0x0201f000, - 0x00020bc1, 0x813e79c0, 0x02020000, 0x00020ac9, - 0x42027000, 0x00000043, 0x0201f000, 0x00020bc1, - 0x5932680a, 0x59340a00, 0x8c040d0a, 0x040007ea, - 0x59300c15, 0x84040d52, 0x48066415, 0x0401f7e6, - 0x492fc857, 0x42000800, 0x00000006, 0x0201f000, - 0x00020af8, 0x492fc857, 0x42000800, 0x00000004, - 0x0201f000, 0x00020af8, 0x4807c856, 0x59240206, - 0x800409c0, 0x04000003, 0x80080540, 0x0401f002, - 0x80080500, 0x48024a06, 0x1c01f000, 0x4a030800, - 0x00000000, 0x4a030802, 0x00000001, 0x497b0803, - 0x497b0804, 0x1c01f000, 0x59840002, 0x8c000500, - 0x04000004, 0x84000500, 0x4a030800, 0x00000001, - 0x84000544, 0x84000506, 0x48030802, 0x82000d00, - 0x0fffffff, 0x42000000, 0x90000000, 0x0201f800, - 0x001008c9, 0x59a80050, 0x82000480, 0x00000007, - 0x48035050, 0x80000580, 0x42000800, 0x0010c870, - 0x48000800, 0x48000801, 0x1c01f000, 0x59a80050, - 0x82000400, 0x00000007, 0x48035050, 0x1c01f000, - 0x83640480, 0x00000008, 0x0400101b, 0x58c80a03, - 0x80000580, 0x82000400, 0x00000008, 0x80040840, - 0x040207fd, 0x815c0480, 0x04001013, 0x4200b000, - 0x00000007, 0x0201f800, 0x00020b7b, 0x4a026203, - 0x00000004, 0x4a026407, 0x00000009, 0x4a026203, - 0x00000004, 0x4a026008, 0x00000101, 0x0401f809, - 0x0401f880, 0x8058b040, 0x040207f3, 0x80000580, - 0x1c01f000, 0x82000540, 0x00000001, 0x0401f7fd, - 0x0201f800, 0x00100583, 0x492e6009, 0x58c80a03, - 0x4a025a05, 0x0000002c, 0x497a5800, 0x497a5801, - 0x497a5c05, 0x497a5c07, 0x497a5806, 0x4a025a09, - 0x00000005, 0x4a025a08, 0x00000002, 0x58c80201, - 0x48025c05, 0x58c80202, 0x48025c08, 0x58c80204, - 0x48025c09, 0x4a02580e, 0x0000ffff, 0x80040840, - 0x0400000c, 0x412c2000, 0x0201f800, 0x00100583, - 0x4a025a05, 0x0000000a, 0x497a5c05, 0x48125800, - 0x492c2001, 0x412c2000, 0x80040840, 0x040207f7, - 0x1c01f000, 0x4d7c0000, 0x4202f800, 0x00000010, - 0x4df00000, 0x4203e000, 0x50000000, 0x59847803, - 0x803c79c0, 0x0400001e, 0x4c5c0000, 0x583cb809, - 0x585c3409, 0x801831c0, 0x0400000b, 0x0401f84a, - 0x04000016, 0x42001000, 0x0010c870, 0x0401f87f, - 0x04000012, 0x0201f800, 0x0010056e, 0x0400000f, - 0x492cb806, 0x585c0006, 0x80000540, 0x02000800, - 0x0010032e, 0x0401f830, 0x585c5409, 0x0401f80b, - 0x5c00b800, 0x5c03e000, 0x817ef840, 0x040207e1, - 0x5c02f800, 0x1c01f000, 0x5c00b800, 0x5c03e000, - 0x5c02f800, 0x1c01f000, 0x4803c856, 0x405c6000, - 0x802851c0, 0x04000018, 0x585c0205, 0x82000d00, - 0x0000000f, 0x82040c00, 0x00100f0a, 0x50044000, - 0x4c600000, 0x4c640000, 0x4d040000, 0x4020c000, - 0x40320800, 0x5984c804, 0x4c280000, 0x0401f93b, - 0x5c005000, 0x40604000, 0x41046000, 0x0201f800, - 0x00100ee8, 0x040207f6, 0x5c020800, 0x5c00c800, - 0x5c00c000, 0x58c80204, 0x4800bc09, 0x0201f800, - 0x0002011a, 0x4a026008, 0x00000101, 0x497a600a, - 0x0401f055, 0x4803c856, 0x59840003, 0x80026540, - 0x04000003, 0x59300000, 0x48030803, 0x1c01f000, - 0x4803c856, 0x59840003, 0x48026000, 0x49330803, - 0x1c01f000, 0x58cc0805, 0x40180000, 0x80040480, - 0x0400100d, 0x82cc0580, 0x0010c865, 0x02020800, - 0x0010032e, 0x58c80205, 0x80040480, 0x0400101d, - 0x82000540, 0x00000001, 0x1c01f000, 0x80003580, - 0x0401f7fe, 0x82cc0580, 0x0010c865, 0x02020800, - 0x0010032e, 0x58c80400, 0x8c000504, 0x040007f8, - 0x58c8040b, 0x8c00051e, 0x040007f5, 0x8c000500, - 0x040207f3, 0x84000540, 0x4801940b, 0x42000000, - 0x0010cc05, 0x0201f800, 0x0010bc88, 0x42001000, - 0x00008026, 0x0201f800, 0x001038bc, 0x0401f7e8, - 0x58c8040b, 0x8c00051e, 0x040007e2, 0x8c000502, - 0x040207e0, 0x84000542, 0x4801940b, 0x42000000, - 0x0010cc04, 0x0201f800, 0x0010bc88, 0x42001000, - 0x00008025, 0x42001800, 0x00000000, 0x0201f800, - 0x001038bc, 0x0401f7d3, 0x4803c856, 0x58080000, - 0x42001800, 0x00000007, 0x58080801, 0x80040480, - 0x04020004, 0x400c0000, 0x80000540, 0x0401f005, - 0x04001003, 0x800c0480, 0x0401f002, 0x80000080, - 0x1c01f000, 0x4803c856, 0x59300009, 0x80000d40, - 0x02000800, 0x0010032e, 0x58040006, 0x80000540, - 0x02000800, 0x0010032e, 0x59300008, 0x82000500, - 0x00000101, 0x82000580, 0x00000101, 0x02020800, - 0x0010032e, 0x42001000, 0x0010c870, 0x58080801, - 0x82040400, 0x0010c872, 0x497a6415, 0x4a026016, - 0x0000ffff, 0x45300000, 0x80040800, 0x82040480, - 0x00000008, 0x04001002, 0x80000d80, 0x48041001, - 0x82040400, 0x0010c872, 0x45780000, 0x1c01f000, - 0x4933c857, 0x59300809, 0x800409c0, 0x02000800, - 0x0010032e, 0x4d2c0000, 0x58065806, 0x812e59c0, - 0x02020800, 0x00100594, 0x49780806, 0x40065800, - 0x0201f800, 0x0010059d, 0x5c025800, 0x4d300000, - 0x0201f800, 0x00020b9d, 0x5c026000, 0x1c01f000, - 0x0401f807, 0x42018800, 0x00000001, 0x04000003, - 0x42018800, 0x00000000, 0x1c01f000, 0x59300407, - 0x82000580, 0x00000009, 0x04020006, 0x59300008, - 0x8c000510, 0x04000003, 0x80000580, 0x1c01f000, - 0x82000540, 0x00000001, 0x1c01f000, 0x59840802, - 0x8c040d04, 0x1c01f000, 0x4803c856, 0x59840802, - 0x84040d04, 0x84040d40, 0x4a030800, 0x00000000, - 0x48070802, 0x82040d00, 0x0fffffff, 0x42000000, - 0x90000000, 0x0201f000, 0x001008c9, 0x4807c857, - 0x4805980a, 0x49799801, 0x49799803, 0x49799806, - 0x49799807, 0x49799808, 0x49799805, 0x49799809, - 0x0401f8c8, 0x0400000a, 0x0401f8ea, 0x04000008, - 0x48359800, 0x48359802, 0x48359806, 0x4a019804, - 0x00000001, 0x4a019807, 0x00000006, 0x1c01f000, - 0x4807c857, 0x58cc1007, 0x40040000, 0x80080480, - 0x04021020, 0x4c040000, 0x4c080000, 0x0401f8d9, - 0x5c001000, 0x5c000800, 0x0400001c, 0x58cc0006, - 0x80006540, 0x0402000b, 0x48359800, 0x48359802, - 0x48359806, 0x49799801, 0x49799803, 0x49786801, - 0x49786800, 0x49799804, 0x49799807, 0x0401f005, - 0x48306801, 0x48346000, 0x48359806, 0x49786800, - 0x58cc0004, 0x58cc1007, 0x80000000, 0x82081400, - 0x00000006, 0x48019804, 0x48099807, 0x0401f7df, + 0x4803282c, 0x480b282d, 0x4a03282b, 0x0000000a, + 0x1c01f000, 0x80e9d1c0, 0x0400000e, 0x0401f832, + 0x04025000, 0x4203e000, 0x80000000, 0x40e81000, + 0x41780800, 0x42000000, 0x00000064, 0x0201f800, + 0x00106c9d, 0x5994002e, 0x80080400, 0x4803282e, + 0x1c01f000, 0x42001000, 0x00105013, 0x0401fe8b, + 0x42001000, 0x00105002, 0x0401ffd8, 0x42001000, + 0x00104131, 0x0401fe85, 0x42001000, 0x001041b3, + 0x0401fe82, 0x42001000, 0x0010410a, 0x0401fe7f, + 0x42001000, 0x001041ea, 0x0401f68f, 0x4203e000, + 0x70000000, 0x4203e000, 0xb0300000, 0x40ebf800, + 0x42000000, 0x0000003c, 0x04004004, 0x80000040, + 0x040207fe, 0x0401f007, 0x4203e000, 0x70000000, + 0x42000000, 0x0010cf3e, 0x0201f800, 0x0010bfb3, + 0x1c01f000, 0x4203e000, 0x80000000, 0x4203e000, + 0xb0400000, 0x40ebf800, 0x42000000, 0x0000003c, + 0x04005004, 0x80000040, 0x040207fe, 0x0401f007, + 0x4203e000, 0x80000000, 0x42000000, 0x0010cf3f, + 0x0201f800, 0x0010bfb3, 0x1c01f000, 0x59a8080d, + 0x59a80251, 0x80040480, 0x599c0a02, 0x800409c0, + 0x04020002, 0x80040800, 0x80041480, 0x04001002, + 0x40000800, 0x4807504f, 0x59a8100d, 0x40040000, + 0x800acc80, 0x4967500d, 0x49675050, 0x59aaa80b, + 0x41640800, 0x42001000, 0x0000002c, 0x0201f800, + 0x00106c7e, 0x8206a400, 0x00111584, 0x4953504c, + 0x4152b000, 0x42006000, 0x0010e271, 0x4a006005, + 0x0000012c, 0x4a006006, 0xda10da10, 0x4a006009, + 0x00000012, 0x4a00600a, 0x0010e271, 0x4a00600b, + 0x00100f06, 0x599c0014, 0x48006012, 0x599c0015, + 0x48006013, 0x42006000, 0x001114d4, 0x4a006203, + 0x00000008, 0x4a006407, 0x00000006, 0x4a006002, + 0xffff0000, 0x4a006009, 0x0010e271, 0x4a006015, + 0x0010e271, 0x599c0014, 0x48006016, 0x599c0015, + 0x48006017, 0x599c0413, 0x48006018, 0x49506019, + 0x4954601a, 0x59a8004f, 0x4800601b, 0x4a00601c, + 0x0010cacc, 0x4a00601d, 0x0010cacd, 0x4a00601e, + 0x0010cace, 0x42000000, 0xb0000000, 0x42000800, + 0x001114d4, 0x0201f800, 0x0002010e, 0x1c01f000, + 0x82000d00, 0x000000c0, 0x04000004, 0x82040d80, + 0x000000c0, 0x04020055, 0x82000d00, 0x00002020, + 0x59300415, 0x84000512, 0x82040d80, 0x00002020, + 0x0400000b, 0x8c000514, 0x0402000f, 0x48026415, + 0x813e79c0, 0x02020000, 0x00020ac9, 0x42027000, + 0x00000043, 0x0201f000, 0x00020bc1, 0x5932680a, + 0x59340a00, 0x8c040d0a, 0x040007f3, 0x84000552, + 0x0401f7f1, 0x84000514, 0x592c080e, 0x48066016, + 0x0401f7ef, 0x5932680a, 0x59340a00, 0x8c040d0a, + 0x02000000, 0x00020adc, 0x59300c15, 0x84040d52, + 0x48066415, 0x0201f000, 0x00020adc, 0x0201f800, + 0x0002011a, 0x813e79c0, 0x02020000, 0x00020ac9, + 0x0201f000, 0x00020af1, 0x8c00051e, 0x02000000, + 0x00020afd, 0x82000d00, 0x00002020, 0x82040d80, + 0x00002020, 0x04000014, 0x82000500, 0x000000c0, + 0x82000d80, 0x00000080, 0x04000008, 0x813e79c0, + 0x02020000, 0x00020ac9, 0x42027000, 0x00000041, + 0x0201f000, 0x00020bc1, 0x813e79c0, 0x02020000, + 0x00020ac9, 0x42027000, 0x00000043, 0x0201f000, + 0x00020bc1, 0x5932680a, 0x59340a00, 0x8c040d0a, + 0x040007ea, 0x59300c15, 0x84040d52, 0x48066415, + 0x0401f7e6, 0x492fc857, 0x42000800, 0x00000006, + 0x0201f000, 0x00020af8, 0x492fc857, 0x42000800, + 0x00000004, 0x0201f000, 0x00020af8, 0x4807c856, + 0x59240206, 0x800409c0, 0x04000003, 0x80080540, + 0x0401f002, 0x80080500, 0x48024a06, 0x1c01f000, + 0x4a030800, 0x00000000, 0x4a030802, 0x00000001, + 0x497b0803, 0x497b0804, 0x1c01f000, 0x59840002, + 0x8c000500, 0x04000004, 0x84000500, 0x4a030800, + 0x00000001, 0x84000544, 0x84000506, 0x48030802, + 0x82000d00, 0x0fffffff, 0x42000000, 0x90000000, + 0x0201f800, 0x001008c7, 0x59a80050, 0x82000480, + 0x00000007, 0x48035050, 0x80000580, 0x42000800, + 0x0010cb70, 0x48000800, 0x48000801, 0x1c01f000, + 0x59a80050, 0x82000400, 0x00000007, 0x48035050, + 0x1c01f000, 0x83640480, 0x00000008, 0x0400101b, + 0x58c80a03, 0x80000580, 0x82000400, 0x00000008, + 0x80040840, 0x040207fd, 0x815c0480, 0x04001013, + 0x4200b000, 0x00000007, 0x0201f800, 0x00020b7b, + 0x4a026203, 0x00000004, 0x4a026407, 0x00000009, + 0x4a026203, 0x00000004, 0x4a026008, 0x00000101, + 0x0401f809, 0x0401f880, 0x8058b040, 0x040207f3, 0x80000580, 0x1c01f000, 0x82000540, 0x00000001, - 0x1c01f000, 0x480bc857, 0x4c500000, 0x4c540000, - 0x4c580000, 0x40083000, 0x58cc0801, 0x82040480, - 0x00000006, 0x02021800, 0x0010032e, 0x82040400, - 0x001067e1, 0x50000000, 0x58cca800, 0x8054ac00, - 0x42001800, 0x00000006, 0x40040000, 0x800c0480, - 0x80082480, 0x04021002, 0x40080000, 0x8000b0c2, - 0x8058b400, 0x5450a800, 0x8050a000, 0x8054a800, - 0x8058b040, 0x040207fc, 0x40001000, 0x58cc2805, - 0x58cc0807, 0x58cc2001, 0x80142c00, 0x80040c80, - 0x80102400, 0x48159805, 0x48059807, 0x48119801, - 0x82100580, 0x00000006, 0x0400000c, 0x48119801, - 0x40080000, 0x80181480, 0x40083000, 0x04000003, - 0x040217d6, 0x80000580, 0x5c00b000, 0x5c00a800, - 0x5c00a000, 0x1c01f000, 0x58cc0800, 0x800409c0, - 0x02000800, 0x0010032e, 0x58040800, 0x48059800, - 0x41782000, 0x0401f7ee, 0x0401f812, 0x50600000, - 0x81041c00, 0x585c0205, 0x4803c857, 0x82000580, - 0x0000002c, 0x02020800, 0x0010032e, 0x58040202, - 0x800000e0, 0x80640540, 0x48001802, 0x58040000, - 0x48001800, 0x58040001, 0x48001801, 0x1c01f000, - 0x4807c856, 0x58cc0005, 0x80000040, 0x02001800, - 0x0010032e, 0x48019805, 0x58cc1003, 0x82080480, - 0x00000006, 0x02021800, 0x0010032e, 0x82080400, - 0x001067e1, 0x50000000, 0x58cc0802, 0x80040c00, - 0x80081000, 0x82080480, 0x00000006, 0x0402000f, - 0x58cc2002, 0x58100000, 0x80006d40, 0x04000009, - 0x4c340000, 0x0401f858, 0x5c006800, 0x49786801, - 0x48359802, 0x58cc0004, 0x80000040, 0x48019804, - 0x49799803, 0x0401f002, 0x48099803, 0x1c01f000, - 0x4807c856, 0x41781800, 0x58c80201, 0x80000540, - 0x04000002, 0x800c1800, 0x58c80c01, 0x80040c80, - 0x0400100a, 0x04000009, 0x800c1800, 0x58c80202, - 0x80041480, 0x04001005, 0x04000004, 0x800c1800, - 0x40080800, 0x0401f7fb, 0x480d9204, 0x400c0000, - 0x42002000, 0x00000001, 0x80000040, 0x04000007, - 0x04001006, 0x80102000, 0x82000480, 0x00000005, - 0x04000002, 0x040217fc, 0x48119203, 0x1c01f000, - 0x4807c856, 0x4d2c0000, 0x58cc000a, 0x80000540, - 0x02000800, 0x0010032e, 0x82002400, 0x00000006, - 0x0201f800, 0x0010056e, 0x04000012, 0x492d9809, - 0x497a5800, 0x497a5801, 0x0201f800, 0x0010056e, - 0x0400000c, 0x58cc0009, 0x48025800, 0x497a5801, - 0x492d9809, 0x82102480, 0x00000006, 0x040217f7, - 0x82000540, 0x00000001, 0x5c025800, 0x1c01f000, - 0x58cc0009, 0x80025d40, 0x040007fc, 0x592c2000, - 0x0201f800, 0x00100594, 0x40100000, 0x0401f7fa, - 0x58cc0009, 0x48cfc857, 0x80006d40, 0x04000005, - 0x50340000, 0x48019809, 0x49786800, 0x49786801, - 0x1c01f000, 0x4813c857, 0x58cc0009, 0x48002000, - 0x48119809, 0x1c01f000, 0x4807c856, 0x4d2c0000, - 0x58cc0009, 0x80025d40, 0x04000007, 0x592c0000, - 0x4c000000, 0x0201f800, 0x00100594, 0x5c000000, - 0x0401f7f9, 0x5c025800, 0x1c01f000, 0x4807c856, - 0x4d2c0000, 0x58cc0002, 0x80025d40, 0x04000007, - 0x592c0000, 0x4c000000, 0x0201f800, 0x00100594, - 0x5c000000, 0x0401f7f9, 0x49799800, 0x49799802, - 0x49799801, 0x49799803, 0x49799806, 0x49799807, - 0x49799808, 0x49799809, 0x4979980a, 0x5c025800, - 0x1c01f000, 0x00000003, 0x00000006, 0x00000009, - 0x0000000c, 0x0000000f, 0x00000012, 0x4803c856, - 0x0401f858, 0x4a00c205, 0x0000003c, 0x5930100a, - 0x82080580, 0x0010c87b, 0x04000013, 0x58080802, - 0x82040d00, 0x00ffffff, 0x58080403, 0x4804c006, - 0x4800c407, 0x4a00c208, 0x00000003, 0x59300812, - 0x585c0405, 0x4978c207, 0x4804c408, 0x80000540, - 0x0400000d, 0x58600207, 0x84000540, 0x4800c207, - 0x0401f009, 0x585c080b, 0x82040d00, 0x00ffffff, - 0x4804c006, 0x4a00c407, 0x000007ff, 0x4978c208, - 0x0401f7ef, 0x82603c00, 0x00000009, 0x58605405, - 0x40282000, 0x405c6000, 0x585c0a05, 0x82040d00, - 0x0000000f, 0x82040c00, 0x00100f0a, 0x50044000, - 0x80004d80, 0x50200000, 0x80307400, 0x58380402, - 0x8c244d00, 0x04020003, 0x48003a00, 0x0401f003, - 0x48003c00, 0x801c3800, 0x80244800, 0x80102040, - 0x04000006, 0x0201f800, 0x00100ee8, 0x02000800, - 0x0010032e, 0x0401f7f0, 0x1c01f000, 0x4803c856, - 0x4d340000, 0x5930000a, 0x80026d40, 0x02000800, - 0x0010032e, 0x59340212, 0x82000500, 0x0000ff00, - 0x0402000e, 0x59840000, 0x80000540, 0x0400000b, - 0x836c0580, 0x00000003, 0x04020008, 0x59341c03, - 0x42002000, 0x00000004, 0x42003000, 0x00000004, - 0x0201f800, 0x00103931, 0x5c026800, 0x1c01f000, - 0x4803c856, 0x80001580, 0x58c80c01, 0x59300012, - 0x80040c80, 0x48066012, 0x58c80201, 0x80000540, - 0x04000005, 0x80081000, 0x80040c80, 0x04001007, - 0x04000006, 0x58c80202, 0x80081000, 0x80040c80, - 0x04001002, 0x040207fd, 0x4808bc09, 0x4808c405, - 0x1c01f000, 0x4803c856, 0x4a0370e5, 0x00020000, - 0x59b800e5, 0x8c000524, 0x040207fc, 0x4a0370e5, - 0x00030000, 0x40000000, 0x40000000, 0x59b800e5, - 0x8c000524, 0x040207f5, 0x5934000e, 0x80006d40, - 0x04000010, 0x81300580, 0x04020004, 0x58340000, - 0x4802680e, 0x0401f00a, 0x40347800, 0x58340000, - 0x80006d40, 0x02000800, 0x0010032e, 0x81300580, - 0x040207fa, 0x58340000, 0x48007800, 0x497a6000, - 0x4a0370e5, 0x00020000, 0x1c01f000, 0x4803c856, - 0x4d300000, 0x4d2c0000, 0x42000800, 0x000003ff, - 0x4a0370e5, 0x00020000, 0x59b800e5, 0x8c000524, - 0x04000005, 0x80040840, 0x040207fa, 0x0201f800, - 0x0010032e, 0x4a0370e5, 0x00030000, 0x40000000, - 0x40000000, 0x59b800e5, 0x8c000524, 0x040207f1, - 0x5934000e, 0x80026540, 0x0400000e, 0x4933c857, - 0x59300000, 0x4802680e, 0x4a026203, 0x00000004, - 0x497a6006, 0x497a600a, 0x4a026008, 0x00000101, - 0x59325809, 0x497a5c09, 0x0401fd7a, 0x0401f7f1, - 0x4a0370e5, 0x00020000, 0x5c025800, 0x5c026000, - 0x1c01f000, 0x4803c856, 0x4c000000, 0x0201f800, - 0x00105f68, 0x04020011, 0x0201f800, 0x0010452c, - 0x02020800, 0x0010032e, 0x5c000000, 0x48026802, - 0x0201f800, 0x00107cfe, 0x04000009, 0x4936600a, - 0x4a026407, 0x00000001, 0x42027000, 0x00000001, - 0x0201f000, 0x00020bc1, 0x5c000000, 0x1c01f000, - 0x59300203, 0x82000c80, 0x0000000e, 0x02021800, - 0x0010032e, 0x4803c857, 0x0c01f001, 0x001068cd, - 0x001068cd, 0x001068cd, 0x001068cf, 0x0010693c, - 0x001068cd, 0x001068cd, 0x0010698e, 0x0010698f, - 0x001068cd, 0x001068cd, 0x001068cd, 0x001068cd, - 0x001068cd, 0x0201f800, 0x0010032e, 0x493bc857, - 0x83380480, 0x00000050, 0x02021800, 0x0010032e, - 0x83380480, 0x00000049, 0x02001800, 0x0010032e, - 0x0c01f001, 0x001068e2, 0x00106913, 0x001068e0, - 0x001068e0, 0x001068e0, 0x001068e0, 0x00106921, - 0x0201f800, 0x0010032e, 0x4d2c0000, 0x59325809, - 0x592c0207, 0x48025c07, 0x4a025a07, 0x00000000, - 0x4c5c0000, 0x592cbc0b, 0x592c0000, 0x48026009, - 0x0201f800, 0x000203ef, 0x59300c15, 0x59300009, - 0x80000540, 0x0400000b, 0x8c040d18, 0x04020014, - 0x4a026203, 0x00000007, 0x42027000, 0x00000043, - 0x497a6415, 0x5c00b800, 0x5c025800, 0x0401f093, - 0x8c040d18, 0x04020010, 0x8c5cbd08, 0x04020011, - 0x4a026203, 0x00000007, 0x497a6415, 0x497a6006, - 0x5c00b800, 0x5c025800, 0x1c01f000, 0x4d400000, - 0x59325809, 0x42028000, 0x00000005, 0x0401f922, - 0x5c028000, 0x0201f800, 0x00107cbe, 0x0401f7f5, - 0x0201f800, 0x00020b9d, 0x0401f7f2, 0x0401fa59, - 0x4d2c0000, 0x59325809, 0x0201f800, 0x00109667, - 0x04000006, 0x4d400000, 0x42028000, 0x00000001, - 0x0401f911, 0x5c028000, 0x5c025800, 0x0201f000, - 0x00020b9d, 0x0401fa4b, 0x4d3c0000, 0x417a7800, - 0x0201f800, 0x0010fc72, 0x5c027800, 0x42003000, - 0x00000014, 0x0201f800, 0x0010b412, 0x42000000, - 0x0010cc23, 0x0201f800, 0x0010bc88, 0x4d2c0000, - 0x59325809, 0x0201f800, 0x00109667, 0x04000006, - 0x4d400000, 0x42028000, 0x00000029, 0x0401f8f6, - 0x5c028000, 0x5c025800, 0x0201f000, 0x00020b9d, - 0x493bc857, 0x497a6006, 0x83380480, 0x00000054, - 0x02021800, 0x0010032e, 0x83380480, 0x00000047, - 0x02001800, 0x0010032e, 0x0c01f001, 0x0010698d, - 0x00106956, 0x00106954, 0x00106954, 0x00106954, - 0x00106954, 0x00106954, 0x00106954, 0x00106954, - 0x00106954, 0x00106954, 0x00106954, 0x0010695a, - 0x0201f800, 0x0010032e, 0x59300012, 0x82000500, - 0xffff0000, 0x04020034, 0x59840802, 0x8c040d04, - 0x04000025, 0x5930000a, 0x80026d40, 0x0400001f, - 0x4c5c0000, 0x4c600000, 0x497a6006, 0x5930b809, - 0x585c0006, 0x8000c540, 0x02000800, 0x0010032e, - 0x0401fe7f, 0x40625800, 0x0201f800, 0x000203f3, - 0x4978b806, 0x0401fee8, 0x497a600a, 0x585c3409, - 0x0401fca9, 0x0400000e, 0x42001000, 0x0010c870, - 0x0401fcde, 0x0400000a, 0x0201f800, 0x00100583, - 0x04000007, 0x492cb806, 0x585c5409, 0x0401fc6f, - 0x5c00c000, 0x5c00b800, 0x1c01f000, 0x0401fc95, - 0x0401f7fc, 0x8c040d06, 0x040207fc, 0x5930000a, - 0x80026d40, 0x04000006, 0x5934000e, 0x80000540, - 0x02020800, 0x0010032e, 0x497a600a, 0x0401fcf9, - 0x0401f7f2, 0x0401f088, 0x4803c856, 0x4803c856, - 0x83380580, 0x00000043, 0x02020800, 0x0010032e, - 0x4a026203, 0x00000003, 0x493a6403, 0x59325809, - 0x592c0010, 0x48026012, 0x497a6014, 0x592c0407, - 0x800000c2, 0x800010c4, 0x80081400, 0x480a6006, - 0x0201f800, 0x00020168, 0x42000800, 0x80000060, - 0x0201f000, 0x00020b30, 0x42000000, 0x0010cc35, - 0x0201f800, 0x0010bc88, 0x59300203, 0x82000c80, - 0x0000000e, 0x02021800, 0x0010032e, 0x4803c857, - 0x82000d80, 0x00000003, 0x04000006, 0x82000d80, - 0x00000004, 0x0400005d, 0x0201f800, 0x0010032e, - 0x4d400000, 0x42028000, 0x00000006, 0x0401f82d, - 0x5c028000, 0x1c01f000, 0x4803c856, 0x59300203, - 0x82000c80, 0x0000000e, 0x02021800, 0x0010032e, - 0x82000d80, 0x00000002, 0x0400000f, 0x82000d80, - 0x00000003, 0x04000006, 0x82000d80, 0x00000004, - 0x04000046, 0x0201f800, 0x0010032e, 0x4d400000, - 0x42028000, 0x00000005, 0x0401f816, 0x5c028000, - 0x1c01f000, 0x4933c857, 0x4d2c0000, 0x59325809, - 0x812e59c0, 0x02000800, 0x0010032e, 0x592c1a09, - 0x8c0c1d0e, 0x02000800, 0x0010032e, 0x4d400000, - 0x42028000, 0x00000001, 0x0401f84b, 0x0201f800, - 0x00107cbe, 0x5c028000, 0x5c025800, 0x1c01f000, - 0x4933c857, 0x4943c857, 0x0401fa52, 0x4df00000, - 0x59300004, 0x8c00053e, 0x04020006, 0x0201f800, - 0x00107021, 0x02020800, 0x0010032e, 0x0401f01b, - 0x0201f800, 0x0010931e, 0x04020007, 0x59300415, - 0x84000558, 0x48026415, 0x0201f800, 0x00106f25, - 0x04020012, 0x0201f800, 0x0010fd55, 0x80c40040, - 0x04000005, 0x0401f946, 0x02020800, 0x0010032e, - 0x0401f00a, 0x59325809, 0x0401f827, 0x0201f800, - 0x00107cbe, 0x5c03e000, 0x04000a1f, 0x82000540, - 0x00000001, 0x1c01f000, 0x5c03e000, 0x04000a1a, - 0x80000580, 0x1c01f000, 0x4933c857, 0x0201f800, - 0x00100c75, 0x4933c857, 0x4c5c0000, 0x4d340000, - 0x497a6006, 0x5930b809, 0x5930000a, 0x80026d40, - 0x04020e39, 0x42001000, 0x0010c870, 0x0401fc33, - 0x04000009, 0x58c80204, 0x4800bc09, 0x41785000, - 0x0201f800, 0x001065ea, 0x5c026800, 0x5c00b800, - 0x1c01f000, 0x4978bc09, 0x0201f800, 0x00106614, - 0x0401f7fa, 0x4803c856, 0x0201f800, 0x00109667, - 0x0400000f, 0x592c0000, 0x80000d40, 0x04000009, - 0x497a5800, 0x49425a07, 0x4c040000, 0x0201f800, - 0x000203ef, 0x5c000800, 0x40065800, 0x0401f7f6, - 0x49425a07, 0x0201f800, 0x000203ef, 0x1c01f000, - 0x0401f807, 0x42018800, 0x00000001, 0x04000003, - 0x42018800, 0x00000000, 0x1c01f000, 0x4933c857, - 0x59300c07, 0x82040580, 0x0000000e, 0x04000004, - 0x82040580, 0x00000009, 0x04020004, 0x0401ffde, - 0x497a6009, 0x80000580, 0x1c01f000, 0x592e600a, - 0x83300480, 0x00111264, 0x04001016, 0x41580000, - 0x81300480, 0x04021013, 0x40040000, 0x59300c07, - 0x80040580, 0x04020012, 0x59300a03, 0x82040580, - 0x00000007, 0x02020800, 0x0010032e, 0x59300009, - 0x80000540, 0x02020800, 0x0010032e, 0x0201f800, - 0x00020b9d, 0x42000000, 0x00000000, 0x0401f009, - 0x42000000, 0x00000008, 0x0401f006, 0x82040580, - 0x00000007, 0x040207fb, 0x42000000, 0x00000005, - 0x592c0a07, 0x48065c07, 0x48025a07, 0x0201f000, - 0x000203ef, 0x4c0c0000, 0x4c100000, 0x4c140000, - 0x4c180000, 0x80001d80, 0x80002580, 0x42003000, - 0x00000020, 0x82040500, 0x00000001, 0x04000003, - 0x40080000, 0x800c1c00, 0x400c2800, 0x800c1902, - 0x80102102, 0x82140500, 0x00000001, 0x04000003, - 0x82102540, 0x80000000, 0x80040902, 0x80183040, - 0x040207f1, 0x40100800, 0x400c0000, 0x5c003000, - 0x5c002800, 0x5c002000, 0x5c001800, 0x1c01f000, - 0x4c580000, 0x4200b000, 0x00000020, 0x80000540, - 0x04000018, 0x80041c80, 0x04021016, 0x800810c2, - 0x80040982, 0x04001006, 0x80041c80, 0x04021005, - 0x8058b040, 0x040207fa, 0x0401f006, 0x80041c80, - 0x400c0800, 0x80081000, 0x8058b040, 0x040207f4, - 0x4c000000, 0x41f00000, 0x82000500, 0xf7ffffff, - 0x4003e000, 0x5c000000, 0x5c00b000, 0x1c01f000, - 0x4c000000, 0x41f00000, 0x82000540, 0x08000000, - 0x0401f7f8, 0x42007000, 0x0010c89b, 0x4a007000, - 0x00000005, 0x4a007401, 0x00000000, 0x4a007201, - 0x00000840, 0x4a007202, 0x00000005, 0x4a0378e8, - 0x00000000, 0x4a03c821, 0x00000010, 0x4a03c823, - 0x00000004, 0x0401f81e, 0x4a0378e9, 0x00003a0d, - 0x4a0378e8, 0x00000001, 0x41780800, 0x4203a000, - 0x00007600, 0x4a03a005, 0xd0000001, 0x59d00006, - 0x4a03a005, 0x90000001, 0x83d3a400, 0x00000020, - 0x80040800, 0x82040480, 0x00000005, 0x040017f8, - 0x59e00003, 0x82000500, 0xffffffe0, 0x82000540, - 0x00008000, 0x4803c003, 0x59c40006, 0x82000500, - 0xfffcffff, 0x48038806, 0x1c01f000, 0x4d900000, - 0x4d180000, 0x4a0378e7, 0xaaaaaaaa, 0x4a0378e6, - 0xaaaaaaaa, 0x4a0378e5, 0xaaaaaaaa, 0x4a0378e4, - 0xaaaaaaaa, 0x4a03781a, 0x0010cb2e, 0x4a03781b, - 0x00100f0a, 0x4a03781c, 0x00100f1a, 0x4a031800, - 0x00000000, 0x4a031801, 0x0010c89e, 0x4a031802, - 0x0010c8a5, 0x42000800, 0x0010cb31, 0x417a3000, - 0x811b20c8, 0x83932400, 0x0000bf32, 0x48072000, - 0x4a032001, 0x00000000, 0x83180400, 0x00107303, - 0x50000000, 0x48032002, 0x82040c00, 0x00000005, - 0x811a3000, 0x83180480, 0x00000005, 0x040017f1, - 0x5c023000, 0x5c032000, 0x1c01f000, 0x40680800, - 0x0201f800, 0x00020b3e, 0x1c01f000, 0x4933c857, - 0x59300804, 0x82040d00, 0x00000100, 0x82040d40, - 0x80000040, 0x48066004, 0x497a6000, 0x59bc00ea, - 0x8c000516, 0x040207fe, 0x83300400, 0x60000000, - 0x480378e1, 0x1c01f000, 0x598c000f, 0x81300580, - 0x04000003, 0x497a6008, 0x1c01f000, 0x59c40004, - 0x82000500, 0x0000000c, 0x04000005, 0x4a038804, - 0x0000000c, 0x497b2807, 0x0401f00a, 0x0401fba6, - 0x59300403, 0x82000d80, 0x00000040, 0x04000004, - 0x82000580, 0x00000042, 0x04020002, 0x497a6008, - 0x0201f800, 0x001072c9, 0x80000580, 0x1c01f000, - 0x0401f807, 0x42018800, 0x00000001, 0x04000003, - 0x42018800, 0x00000000, 0x1c01f000, 0x59300804, - 0x8c040d20, 0x04020004, 0x82000540, 0x00000001, - 0x1c01f000, 0x4933c857, 0x4d380000, 0x59300804, - 0x84040d20, 0x48066004, 0x42027000, 0x00000049, - 0x59300203, 0x82000580, 0x00000003, 0x04000003, - 0x42027000, 0x00000013, 0x0201f800, 0x00020bc1, - 0x80000580, 0x5c027000, 0x1c01f000, 0x0401f807, - 0x42018800, 0x00000001, 0x04000003, 0x42018800, - 0x00000000, 0x1c01f000, 0x59300018, 0x81480580, - 0x04020003, 0x59300019, 0x814c0580, 0x1c01f000, - 0x4d2c0000, 0x4d300000, 0x0401f8ce, 0x4df00000, - 0x0201f800, 0x00106423, 0x59900001, 0x82000500, - 0x00000003, 0x0c01f001, 0x00106b87, 0x00106b7c, - 0x00106b7a, 0x00106b7a, 0x0201f800, 0x0010032e, - 0x59926004, 0x0401f88a, 0x813261c0, 0x04000008, - 0x59300004, 0x8c000516, 0x04000004, 0x59325809, - 0x497a5809, 0x497a580a, 0x0401f88a, 0x5c03e000, - 0x040008a1, 0x5c026000, 0x5c025800, 0x1c01f000, - 0x5c000000, 0x4c000000, 0x4803c857, 0x4d300000, - 0x497b2807, 0x0401f8ab, 0x4df00000, 0x598c0000, - 0x82000500, 0x0000000f, 0x4803c857, 0x0c01f001, - 0x00106bcd, 0x00106baa, 0x00106bb3, 0x00106bba, - 0x00106bc8, 0x00106bcd, 0x00106ba8, 0x00106bb7, - 0x00106bcd, 0x00106ba8, 0x00106ba8, 0x00106ba8, - 0x00106ba8, 0x00106ba8, 0x00106ba8, 0x00106ba8, - 0x0201f800, 0x0010032e, 0x598c000f, 0x80026540, - 0x04000004, 0x0401f824, 0x02020800, 0x0010032e, - 0x0201f800, 0x001072c9, 0x0401f01b, 0x0401f82d, - 0x0201f800, 0x001072c9, 0x0401f017, 0x0201f800, - 0x0010b731, 0x0401f7f7, 0x598c000f, 0x80026540, - 0x04000011, 0x0401f83b, 0x04000007, 0x0401f812, - 0x04000005, 0x0401f81f, 0x04000003, 0x0201f800, - 0x0010b731, 0x0201f800, 0x001072c9, 0x0401f006, - 0x0401f830, 0x02020800, 0x0010032e, 0x0201f800, - 0x001072c9, 0x5c03e000, 0x0400085b, 0x5c026000, - 0x1c01f000, 0x598c0009, 0x81300580, 0x0402000c, - 0x0401f84e, 0x0401f83b, 0x59300000, 0x800001c0, - 0x04000004, 0x48031809, 0x497a6000, 0x0401f003, - 0x497b1809, 0x497b1808, 0x80000580, 0x1c01f000, - 0x4d2c0000, 0x59300407, 0x82000580, 0x00000003, - 0x04020012, 0x598c000b, 0x81300580, 0x0402000f, - 0x0401f83a, 0x59325809, 0x497a5809, 0x497a580a, - 0x0401f824, 0x59300000, 0x800001c0, 0x04000004, - 0x4803180b, 0x497a6000, 0x0401f003, 0x497b180a, - 0x497b180b, 0x80000580, 0x5c025800, 0x1c01f000, - 0x598c0005, 0x81300580, 0x0402000c, 0x0401f827, - 0x0401f814, 0x59300000, 0x800001c0, 0x04000004, - 0x48031805, 0x497a6000, 0x0401f003, 0x497b1805, - 0x497b1804, 0x80000580, 0x1c01f000, 0x4a032001, - 0x00000000, 0x497b2004, 0x497b2005, 0x59900006, - 0x82000500, 0x0000ffff, 0x48032006, 0x1c01f000, - 0x4c040000, 0x59300004, 0x82000500, 0x7ffeffff, - 0x48026004, 0x59bc00e4, 0x8c000514, 0x04000009, - 0x42000800, 0x0000bf00, 0x58040012, 0x81300580, - 0x04020004, 0x49780812, 0x4a0378e4, 0x00000800, - 0x5c000800, 0x1c01f000, 0x4803c856, 0x598c000e, - 0x80000540, 0x04000003, 0x80000040, 0x4803180e, - 0x1c01f000, 0x59bc00ea, 0x82000500, 0x00000007, - 0x82000580, 0x00000003, 0x04020006, 0x4803c856, - 0x4a0378e8, 0x00000001, 0x4a0370e4, 0x00000800, + 0x0401f7fd, 0x0201f800, 0x00100583, 0x492e6009, + 0x58c80a03, 0x4a025a05, 0x0000002c, 0x497a5800, + 0x497a5801, 0x497a5c05, 0x497a5c07, 0x497a5806, + 0x4a025a09, 0x00000005, 0x4a025a08, 0x00000002, + 0x58c80201, 0x48025c05, 0x58c80202, 0x48025c08, + 0x58c80204, 0x48025c09, 0x4a02580e, 0x0000ffff, + 0x80040840, 0x0400000c, 0x412c2000, 0x0201f800, + 0x00100583, 0x4a025a05, 0x0000000a, 0x497a5c05, + 0x48125800, 0x492c2001, 0x412c2000, 0x80040840, + 0x040207f7, 0x1c01f000, 0x4d7c0000, 0x4202f800, + 0x00000010, 0x4df00000, 0x4203e000, 0x50000000, + 0x59847803, 0x803c79c0, 0x0400001e, 0x4c5c0000, + 0x583cb809, 0x585c3409, 0x801831c0, 0x0400000b, + 0x0401f84a, 0x04000016, 0x42001000, 0x0010cb70, + 0x0401f87f, 0x04000012, 0x0201f800, 0x0010056e, + 0x0400000f, 0x492cb806, 0x585c0006, 0x80000540, + 0x02000800, 0x0010032e, 0x0401f830, 0x585c5409, + 0x0401f80b, 0x5c00b800, 0x5c03e000, 0x817ef840, + 0x040207e1, 0x5c02f800, 0x1c01f000, 0x5c00b800, + 0x5c03e000, 0x5c02f800, 0x1c01f000, 0x4803c856, + 0x405c6000, 0x802851c0, 0x04000018, 0x585c0205, + 0x82000d00, 0x0000000f, 0x82040c00, 0x00100f0b, + 0x50044000, 0x4c600000, 0x4c640000, 0x4d040000, + 0x4020c000, 0x40320800, 0x5984c804, 0x4c280000, + 0x0401f93b, 0x5c005000, 0x40604000, 0x41046000, + 0x0201f800, 0x00100ee9, 0x040207f6, 0x5c020800, + 0x5c00c800, 0x5c00c000, 0x58c80204, 0x4800bc09, + 0x0201f800, 0x0002011a, 0x4a026008, 0x00000101, + 0x497a600a, 0x0401f055, 0x4803c856, 0x59840003, + 0x80026540, 0x04000003, 0x59300000, 0x48030803, + 0x1c01f000, 0x4803c856, 0x59840003, 0x48026000, + 0x49330803, 0x1c01f000, 0x58cc0805, 0x40180000, + 0x80040480, 0x0400100d, 0x82cc0580, 0x0010cb65, + 0x02020800, 0x0010032e, 0x58c80205, 0x80040480, + 0x0400101d, 0x82000540, 0x00000001, 0x1c01f000, + 0x80003580, 0x0401f7fe, 0x82cc0580, 0x0010cb65, + 0x02020800, 0x0010032e, 0x58c80400, 0x8c000504, + 0x040007f8, 0x58c8040b, 0x8c00051e, 0x040007f5, + 0x8c000500, 0x040207f3, 0x84000540, 0x4801940b, + 0x42000000, 0x0010cf05, 0x0201f800, 0x0010bfb3, + 0x42001000, 0x00008026, 0x0201f800, 0x001039ac, + 0x0401f7e8, 0x58c8040b, 0x8c00051e, 0x040007e2, + 0x8c000502, 0x040207e0, 0x84000542, 0x4801940b, + 0x42000000, 0x0010cf04, 0x0201f800, 0x0010bfb3, + 0x42001000, 0x00008025, 0x42001800, 0x00000000, + 0x0201f800, 0x001039ac, 0x0401f7d3, 0x4803c856, + 0x58080000, 0x42001800, 0x00000007, 0x58080801, + 0x80040480, 0x04020004, 0x400c0000, 0x80000540, + 0x0401f005, 0x04001003, 0x800c0480, 0x0401f002, + 0x80000080, 0x1c01f000, 0x4803c856, 0x59300009, + 0x80000d40, 0x02000800, 0x0010032e, 0x58040006, + 0x80000540, 0x02000800, 0x0010032e, 0x59300008, + 0x82000500, 0x00000101, 0x82000580, 0x00000101, + 0x02020800, 0x0010032e, 0x42001000, 0x0010cb70, + 0x58080801, 0x82040400, 0x0010cb72, 0x497a6415, + 0x4a026016, 0x0000ffff, 0x45300000, 0x80040800, + 0x82040480, 0x00000008, 0x04001002, 0x80000d80, + 0x48041001, 0x82040400, 0x0010cb72, 0x45780000, + 0x1c01f000, 0x4933c857, 0x59300809, 0x800409c0, + 0x02000800, 0x0010032e, 0x4d2c0000, 0x58065806, + 0x812e59c0, 0x02020800, 0x00100594, 0x49780806, + 0x40065800, 0x0201f800, 0x0010059d, 0x5c025800, + 0x4d300000, 0x0201f800, 0x00020b9d, 0x5c026000, 0x1c01f000, 0x0401f807, 0x42018800, 0x00000001, 0x04000003, 0x42018800, 0x00000000, 0x1c01f000, - 0x59bc00ea, 0x82000500, 0x00000007, 0x82000580, - 0x00000001, 0x04020013, 0x4803c856, 0x42000800, - 0x00000000, 0x0401f810, 0x4a0370e4, 0x00000c00, - 0x42000800, 0x00001000, 0x59bc00ea, 0x82000500, - 0x00000007, 0x82000580, 0x00000003, 0x04000005, - 0x80040840, 0x040207f9, 0x0201f800, 0x0010032e, + 0x59300407, 0x82000580, 0x00000009, 0x04020006, + 0x59300008, 0x8c000510, 0x04000003, 0x80000580, + 0x1c01f000, 0x82000540, 0x00000001, 0x1c01f000, + 0x59840802, 0x8c040d04, 0x1c01f000, 0x4803c856, + 0x59840802, 0x84040d04, 0x84040d40, 0x4a030800, + 0x00000000, 0x48070802, 0x82040d00, 0x0fffffff, + 0x42000000, 0x90000000, 0x0201f000, 0x001008c7, + 0x4807c857, 0x4805980a, 0x49799801, 0x49799803, + 0x49799806, 0x49799807, 0x49799808, 0x49799805, + 0x49799809, 0x0401f8c8, 0x0400000a, 0x0401f8ea, + 0x04000008, 0x48359800, 0x48359802, 0x48359806, + 0x4a019804, 0x00000001, 0x4a019807, 0x00000006, + 0x1c01f000, 0x4807c857, 0x58cc1007, 0x40040000, + 0x80080480, 0x04021020, 0x4c040000, 0x4c080000, + 0x0401f8d9, 0x5c001000, 0x5c000800, 0x0400001c, + 0x58cc0006, 0x80006540, 0x0402000b, 0x48359800, + 0x48359802, 0x48359806, 0x49799801, 0x49799803, + 0x49786801, 0x49786800, 0x49799804, 0x49799807, + 0x0401f005, 0x48306801, 0x48346000, 0x48359806, + 0x49786800, 0x58cc0004, 0x58cc1007, 0x80000000, + 0x82081400, 0x00000006, 0x48019804, 0x48099807, + 0x0401f7df, 0x80000580, 0x1c01f000, 0x82000540, + 0x00000001, 0x1c01f000, 0x480bc857, 0x4c500000, + 0x4c540000, 0x4c580000, 0x40083000, 0x58cc0801, + 0x82040480, 0x00000006, 0x02021800, 0x0010032e, + 0x82040400, 0x001069e6, 0x50000000, 0x58cca800, + 0x8054ac00, 0x42001800, 0x00000006, 0x40040000, + 0x800c0480, 0x80082480, 0x04021002, 0x40080000, + 0x8000b0c2, 0x8058b400, 0x5450a800, 0x8050a000, + 0x8054a800, 0x8058b040, 0x040207fc, 0x40001000, + 0x58cc2805, 0x58cc0807, 0x58cc2001, 0x80142c00, + 0x80040c80, 0x80102400, 0x48159805, 0x48059807, + 0x48119801, 0x82100580, 0x00000006, 0x0400000c, + 0x48119801, 0x40080000, 0x80181480, 0x40083000, + 0x04000003, 0x040217d6, 0x80000580, 0x5c00b000, + 0x5c00a800, 0x5c00a000, 0x1c01f000, 0x58cc0800, + 0x800409c0, 0x02000800, 0x0010032e, 0x58040800, + 0x48059800, 0x41782000, 0x0401f7ee, 0x0401f812, + 0x50600000, 0x81041c00, 0x585c0205, 0x4803c857, + 0x82000580, 0x0000002c, 0x02020800, 0x0010032e, + 0x58040202, 0x800000e0, 0x80640540, 0x48001802, + 0x58040000, 0x48001800, 0x58040001, 0x48001801, + 0x1c01f000, 0x4807c856, 0x58cc0005, 0x80000040, + 0x02001800, 0x0010032e, 0x48019805, 0x58cc1003, + 0x82080480, 0x00000006, 0x02021800, 0x0010032e, + 0x82080400, 0x001069e6, 0x50000000, 0x58cc0802, + 0x80040c00, 0x80081000, 0x82080480, 0x00000006, + 0x0402000f, 0x58cc2002, 0x58100000, 0x80006d40, + 0x04000009, 0x4c340000, 0x0401f858, 0x5c006800, + 0x49786801, 0x48359802, 0x58cc0004, 0x80000040, + 0x48019804, 0x49799803, 0x0401f002, 0x48099803, + 0x1c01f000, 0x4807c856, 0x41781800, 0x58c80201, + 0x80000540, 0x04000002, 0x800c1800, 0x58c80c01, + 0x80040c80, 0x0400100a, 0x04000009, 0x800c1800, + 0x58c80202, 0x80041480, 0x04001005, 0x04000004, + 0x800c1800, 0x40080800, 0x0401f7fb, 0x480d9204, + 0x400c0000, 0x42002000, 0x00000001, 0x80000040, + 0x04000007, 0x04001006, 0x80102000, 0x82000480, + 0x00000005, 0x04000002, 0x040217fc, 0x48119203, + 0x1c01f000, 0x4807c856, 0x4d2c0000, 0x58cc000a, + 0x80000540, 0x02000800, 0x0010032e, 0x82002400, + 0x00000006, 0x0201f800, 0x0010056e, 0x04000012, + 0x492d9809, 0x497a5800, 0x497a5801, 0x0201f800, + 0x0010056e, 0x0400000c, 0x58cc0009, 0x48025800, + 0x497a5801, 0x492d9809, 0x82102480, 0x00000006, + 0x040217f7, 0x82000540, 0x00000001, 0x5c025800, + 0x1c01f000, 0x58cc0009, 0x80025d40, 0x040007fc, + 0x592c2000, 0x0201f800, 0x00100594, 0x40100000, + 0x0401f7fa, 0x58cc0009, 0x48cfc857, 0x80006d40, + 0x04000005, 0x50340000, 0x48019809, 0x49786800, + 0x49786801, 0x1c01f000, 0x4813c857, 0x58cc0009, + 0x48002000, 0x48119809, 0x1c01f000, 0x4807c856, + 0x4d2c0000, 0x58cc0009, 0x80025d40, 0x04000007, + 0x592c0000, 0x4c000000, 0x0201f800, 0x00100594, + 0x5c000000, 0x0401f7f9, 0x5c025800, 0x1c01f000, + 0x4807c856, 0x4d2c0000, 0x58cc0002, 0x80025d40, + 0x04000007, 0x592c0000, 0x4c000000, 0x0201f800, + 0x00100594, 0x5c000000, 0x0401f7f9, 0x49799800, + 0x49799802, 0x49799801, 0x49799803, 0x49799806, + 0x49799807, 0x49799808, 0x49799809, 0x4979980a, + 0x5c025800, 0x1c01f000, 0x00000003, 0x00000006, + 0x00000009, 0x0000000c, 0x0000000f, 0x00000012, + 0x4803c856, 0x0401f858, 0x4a00c205, 0x0000003c, + 0x5930100a, 0x82080580, 0x0010cb7b, 0x04000013, + 0x58080802, 0x82040d00, 0x00ffffff, 0x58080403, + 0x4804c006, 0x4800c407, 0x4a00c208, 0x00000003, + 0x59300812, 0x585c0405, 0x4978c207, 0x4804c408, + 0x80000540, 0x0400000d, 0x58600207, 0x84000540, + 0x4800c207, 0x0401f009, 0x585c080b, 0x82040d00, + 0x00ffffff, 0x4804c006, 0x4a00c407, 0x000007ff, + 0x4978c208, 0x0401f7ef, 0x82603c00, 0x00000009, + 0x58605405, 0x40282000, 0x405c6000, 0x585c0a05, + 0x82040d00, 0x0000000f, 0x82040c00, 0x00100f0b, + 0x50044000, 0x80004d80, 0x50200000, 0x80307400, + 0x58380402, 0x8c244d00, 0x04020003, 0x48003a00, + 0x0401f003, 0x48003c00, 0x801c3800, 0x80244800, + 0x80102040, 0x04000006, 0x0201f800, 0x00100ee9, + 0x02000800, 0x0010032e, 0x0401f7f0, 0x1c01f000, + 0x4803c856, 0x4d340000, 0x5930000a, 0x80026d40, + 0x02000800, 0x0010032e, 0x59340212, 0x82000500, + 0x0000ff00, 0x0402000e, 0x59840000, 0x80000540, + 0x0400000b, 0x836c0580, 0x00000003, 0x04020008, + 0x59341c03, 0x42002000, 0x00000004, 0x42003000, + 0x00000004, 0x0201f800, 0x00103a21, 0x5c026800, + 0x1c01f000, 0x4803c856, 0x80001580, 0x58c80c01, + 0x59300012, 0x80040c80, 0x48066012, 0x58c80201, + 0x80000540, 0x04000005, 0x80081000, 0x80040c80, + 0x04001007, 0x04000006, 0x58c80202, 0x80081000, + 0x80040c80, 0x04001002, 0x040207fd, 0x4808bc09, + 0x4808c405, 0x1c01f000, 0x4803c856, 0x4a0370e5, + 0x00020000, 0x59b800e5, 0x8c000524, 0x040207fc, + 0x4a0370e5, 0x00030000, 0x40000000, 0x40000000, + 0x59b800e5, 0x8c000524, 0x040207f5, 0x5934000e, + 0x80006d40, 0x04000010, 0x81300580, 0x04020004, + 0x58340000, 0x4802680e, 0x0401f00a, 0x40347800, + 0x58340000, 0x80006d40, 0x02000800, 0x0010032e, + 0x81300580, 0x040207fa, 0x58340000, 0x48007800, + 0x497a6000, 0x4a0370e5, 0x00020000, 0x1c01f000, + 0x4803c856, 0x4d300000, 0x4d2c0000, 0x42000800, + 0x000003ff, 0x4a0370e5, 0x00020000, 0x59b800e5, + 0x8c000524, 0x04000005, 0x80040840, 0x040207fa, + 0x0201f800, 0x0010032e, 0x4a0370e5, 0x00030000, + 0x40000000, 0x40000000, 0x59b800e5, 0x8c000524, + 0x040207f1, 0x5934000e, 0x80026540, 0x0400000e, + 0x4933c857, 0x59300000, 0x4802680e, 0x4a026203, + 0x00000004, 0x497a6006, 0x497a600a, 0x4a026008, + 0x00000101, 0x59325809, 0x497a5c09, 0x0401fd7a, + 0x0401f7f1, 0x4a0370e5, 0x00020000, 0x5c025800, + 0x5c026000, 0x1c01f000, 0x4803c856, 0x4c000000, + 0x0201f800, 0x00106134, 0x04020011, 0x0201f800, + 0x00104628, 0x02020800, 0x0010032e, 0x5c000000, + 0x48026802, 0x0201f800, 0x00107ef8, 0x04000009, + 0x4936600a, 0x4a026407, 0x00000001, 0x42027000, + 0x00000001, 0x0201f000, 0x00020bc1, 0x5c000000, + 0x1c01f000, 0x59300203, 0x82000c80, 0x0000000e, + 0x02021800, 0x0010032e, 0x4803c857, 0x0c01f001, + 0x00106ad2, 0x00106ad2, 0x00106ad2, 0x00106ad4, + 0x00106b41, 0x00106ad2, 0x00106ad2, 0x00106b93, + 0x00106b94, 0x00106ad2, 0x00106ad2, 0x00106ad2, + 0x00106ad2, 0x00106ad2, 0x0201f800, 0x0010032e, + 0x493bc857, 0x83380480, 0x00000050, 0x02021800, + 0x0010032e, 0x83380480, 0x00000049, 0x02001800, + 0x0010032e, 0x0c01f001, 0x00106ae7, 0x00106b18, + 0x00106ae5, 0x00106ae5, 0x00106ae5, 0x00106ae5, + 0x00106b26, 0x0201f800, 0x0010032e, 0x4d2c0000, + 0x59325809, 0x592c0207, 0x48025c07, 0x4a025a07, + 0x00000000, 0x4c5c0000, 0x592cbc0b, 0x592c0000, + 0x48026009, 0x0201f800, 0x000203ef, 0x59300c15, + 0x59300009, 0x80000540, 0x0400000b, 0x8c040d18, + 0x04020014, 0x4a026203, 0x00000007, 0x42027000, + 0x00000043, 0x497a6415, 0x5c00b800, 0x5c025800, + 0x0401f093, 0x8c040d18, 0x04020010, 0x8c5cbd08, + 0x04020011, 0x4a026203, 0x00000007, 0x497a6415, + 0x497a6006, 0x5c00b800, 0x5c025800, 0x1c01f000, + 0x4d400000, 0x59325809, 0x42028000, 0x00000005, + 0x0401f922, 0x5c028000, 0x0201f800, 0x00107eb4, + 0x0401f7f5, 0x0201f800, 0x00020b9d, 0x0401f7f2, + 0x0401fa59, 0x4d2c0000, 0x59325809, 0x0201f800, + 0x0010989f, 0x04000006, 0x4d400000, 0x42028000, + 0x00000001, 0x0401f911, 0x5c028000, 0x5c025800, + 0x0201f000, 0x00020b9d, 0x0401fa4b, 0x4d3c0000, + 0x417a7800, 0x0201f800, 0x0010ff80, 0x5c027800, + 0x42003000, 0x00000014, 0x0201f800, 0x0010b73d, + 0x42000000, 0x0010cf23, 0x0201f800, 0x0010bfb3, + 0x4d2c0000, 0x59325809, 0x0201f800, 0x0010989f, + 0x04000006, 0x4d400000, 0x42028000, 0x00000029, + 0x0401f8f6, 0x5c028000, 0x5c025800, 0x0201f000, + 0x00020b9d, 0x493bc857, 0x497a6006, 0x83380480, + 0x00000054, 0x02021800, 0x0010032e, 0x83380480, + 0x00000047, 0x02001800, 0x0010032e, 0x0c01f001, + 0x00106b92, 0x00106b5b, 0x00106b59, 0x00106b59, + 0x00106b59, 0x00106b59, 0x00106b59, 0x00106b59, + 0x00106b59, 0x00106b59, 0x00106b59, 0x00106b59, + 0x00106b5f, 0x0201f800, 0x0010032e, 0x59300012, + 0x82000500, 0xffff0000, 0x04020034, 0x59840802, + 0x8c040d04, 0x04000025, 0x5930000a, 0x80026d40, + 0x0400001f, 0x4c5c0000, 0x4c600000, 0x497a6006, + 0x5930b809, 0x585c0006, 0x8000c540, 0x02000800, + 0x0010032e, 0x0401fe7f, 0x40625800, 0x0201f800, + 0x000203f3, 0x4978b806, 0x0401fee8, 0x497a600a, + 0x585c3409, 0x0401fca9, 0x0400000e, 0x42001000, + 0x0010cb70, 0x0401fcde, 0x0400000a, 0x0201f800, + 0x00100583, 0x04000007, 0x492cb806, 0x585c5409, + 0x0401fc6f, 0x5c00c000, 0x5c00b800, 0x1c01f000, + 0x0401fc95, 0x0401f7fc, 0x8c040d06, 0x040207fc, + 0x5930000a, 0x80026d40, 0x04000006, 0x5934000e, + 0x80000540, 0x02020800, 0x0010032e, 0x497a600a, + 0x0401fcf9, 0x0401f7f2, 0x0401f088, 0x4803c856, + 0x4803c856, 0x83380580, 0x00000043, 0x02020800, + 0x0010032e, 0x4a026203, 0x00000003, 0x493a6403, + 0x59325809, 0x592c0010, 0x48026012, 0x497a6014, + 0x592c0407, 0x800000c2, 0x800010c4, 0x80081400, + 0x480a6006, 0x0201f800, 0x00020168, 0x42000800, + 0x80000060, 0x0201f000, 0x00020b30, 0x42000000, + 0x0010cf35, 0x0201f800, 0x0010bfb3, 0x59300203, + 0x82000c80, 0x0000000e, 0x02021800, 0x0010032e, + 0x4803c857, 0x82000d80, 0x00000003, 0x04000006, + 0x82000d80, 0x00000004, 0x0400005d, 0x0201f800, + 0x0010032e, 0x4d400000, 0x42028000, 0x00000006, + 0x0401f82d, 0x5c028000, 0x1c01f000, 0x4803c856, + 0x59300203, 0x82000c80, 0x0000000e, 0x02021800, + 0x0010032e, 0x82000d80, 0x00000002, 0x0400000f, + 0x82000d80, 0x00000003, 0x04000006, 0x82000d80, + 0x00000004, 0x04000046, 0x0201f800, 0x0010032e, + 0x4d400000, 0x42028000, 0x00000005, 0x0401f816, + 0x5c028000, 0x1c01f000, 0x4933c857, 0x4d2c0000, + 0x59325809, 0x812e59c0, 0x02000800, 0x0010032e, + 0x592c1a09, 0x8c0c1d0e, 0x02000800, 0x0010032e, + 0x4d400000, 0x42028000, 0x00000001, 0x0401f84b, + 0x0201f800, 0x00107eb4, 0x5c028000, 0x5c025800, + 0x1c01f000, 0x4933c857, 0x4943c857, 0x0401fa52, + 0x4df00000, 0x59300004, 0x8c00053e, 0x04020006, + 0x0201f800, 0x00107226, 0x02020800, 0x0010032e, + 0x0401f01b, 0x0201f800, 0x00109552, 0x04020007, + 0x59300415, 0x84000558, 0x48026415, 0x0201f800, + 0x0010712a, 0x04020012, 0x0201f800, 0x00110065, + 0x80c40040, 0x04000005, 0x0401f946, 0x02020800, + 0x0010032e, 0x0401f00a, 0x59325809, 0x0401f827, + 0x0201f800, 0x00107eb4, 0x5c03e000, 0x04000a1f, + 0x82000540, 0x00000001, 0x1c01f000, 0x5c03e000, + 0x04000a1a, 0x80000580, 0x1c01f000, 0x4933c857, + 0x0201f800, 0x00100c76, 0x4933c857, 0x4c5c0000, + 0x4d340000, 0x497a6006, 0x5930b809, 0x5930000a, + 0x80026d40, 0x04020e39, 0x42001000, 0x0010cb70, + 0x0401fc33, 0x04000009, 0x58c80204, 0x4800bc09, + 0x41785000, 0x0201f800, 0x001067ef, 0x5c026800, + 0x5c00b800, 0x1c01f000, 0x4978bc09, 0x0201f800, + 0x00106819, 0x0401f7fa, 0x4803c856, 0x0201f800, + 0x0010989f, 0x0400000f, 0x592c0000, 0x80000d40, + 0x04000009, 0x497a5800, 0x49425a07, 0x4c040000, + 0x0201f800, 0x000203ef, 0x5c000800, 0x40065800, + 0x0401f7f6, 0x49425a07, 0x0201f800, 0x000203ef, + 0x1c01f000, 0x0401f807, 0x42018800, 0x00000001, + 0x04000003, 0x42018800, 0x00000000, 0x1c01f000, + 0x4933c857, 0x59300c07, 0x82040580, 0x0000000e, + 0x04000004, 0x82040580, 0x00000009, 0x04020004, + 0x0401ffde, 0x497a6009, 0x80000580, 0x1c01f000, + 0x592e600a, 0x83300480, 0x00111584, 0x04001016, + 0x41580000, 0x81300480, 0x04021013, 0x40040000, + 0x59300c07, 0x80040580, 0x04020012, 0x59300a03, + 0x82040580, 0x00000007, 0x02020800, 0x0010032e, + 0x59300009, 0x80000540, 0x02020800, 0x0010032e, + 0x0201f800, 0x00020b9d, 0x42000000, 0x00000000, + 0x0401f009, 0x42000000, 0x00000008, 0x0401f006, + 0x82040580, 0x00000007, 0x040207fb, 0x42000000, + 0x00000005, 0x592c0a07, 0x48065c07, 0x48025a07, + 0x0201f000, 0x000203ef, 0x4c0c0000, 0x4c100000, + 0x4c140000, 0x4c180000, 0x80001d80, 0x80002580, + 0x42003000, 0x00000020, 0x82040500, 0x00000001, + 0x04000003, 0x40080000, 0x800c1c00, 0x400c2800, + 0x800c1902, 0x80102102, 0x82140500, 0x00000001, + 0x04000003, 0x82102540, 0x80000000, 0x80040902, + 0x80183040, 0x040207f1, 0x40100800, 0x400c0000, + 0x5c003000, 0x5c002800, 0x5c002000, 0x5c001800, + 0x1c01f000, 0x4c580000, 0x4200b000, 0x00000020, + 0x80000540, 0x04000018, 0x80041c80, 0x04021016, + 0x800810c2, 0x80040982, 0x04001006, 0x80041c80, + 0x04021005, 0x8058b040, 0x040207fa, 0x0401f006, + 0x80041c80, 0x400c0800, 0x80081000, 0x8058b040, + 0x040207f4, 0x4c000000, 0x41f00000, 0x82000500, + 0xf7ffffff, 0x4003e000, 0x5c000000, 0x5c00b000, + 0x1c01f000, 0x4c000000, 0x41f00000, 0x82000540, + 0x08000000, 0x0401f7f8, 0x42007000, 0x0010cb9b, + 0x4a007000, 0x00000005, 0x4a007401, 0x00000000, + 0x4a007201, 0x00000840, 0x4a007202, 0x00000005, + 0x4a0378e8, 0x00000000, 0x4a03c821, 0x00000010, + 0x4a03c823, 0x00000004, 0x0401f81e, 0x4a0378e9, + 0x00003a0d, 0x4a0378e8, 0x00000001, 0x41780800, + 0x4203a000, 0x00007600, 0x4a03a005, 0xd0000001, + 0x59d00006, 0x4a03a005, 0x90000001, 0x83d3a400, + 0x00000020, 0x80040800, 0x82040480, 0x00000005, + 0x040017f8, 0x59e00003, 0x82000500, 0xffffffe0, + 0x82000540, 0x00008000, 0x4803c003, 0x59c40006, + 0x82000500, 0xfffcffff, 0x48038806, 0x1c01f000, + 0x4d900000, 0x4d180000, 0x4a0378e7, 0xaaaaaaaa, + 0x4a0378e6, 0xaaaaaaaa, 0x4a0378e5, 0xaaaaaaaa, + 0x4a0378e4, 0xaaaaaaaa, 0x4a03781a, 0x0010ce2e, + 0x4a03781b, 0x00100f0b, 0x4a03781c, 0x00100f1b, + 0x4a031800, 0x00000000, 0x4a031801, 0x0010cb9e, + 0x4a031802, 0x0010cba5, 0x42000800, 0x0010ce31, + 0x417a3000, 0x811b20c8, 0x83932400, 0x0000bf32, + 0x48072000, 0x4a032001, 0x00000000, 0x83180400, + 0x00107508, 0x50000000, 0x48032002, 0x82040c00, + 0x00000005, 0x811a3000, 0x83180480, 0x00000005, + 0x040017f1, 0x5c023000, 0x5c032000, 0x1c01f000, + 0x40680800, 0x0201f800, 0x00020b3e, 0x1c01f000, + 0x4933c857, 0x59300804, 0x82040d00, 0x00000100, + 0x82040d40, 0x80000040, 0x48066004, 0x497a6000, + 0x59bc00ea, 0x8c000516, 0x040207fe, 0x83300400, + 0x60000000, 0x480378e1, 0x1c01f000, 0x598c000f, + 0x81300580, 0x04000003, 0x497a6008, 0x1c01f000, + 0x59c40004, 0x82000500, 0x0000000c, 0x04000005, + 0x4a038804, 0x0000000c, 0x497b2807, 0x0401f00a, + 0x0401fba6, 0x59300403, 0x82000d80, 0x00000040, + 0x04000004, 0x82000580, 0x00000042, 0x04020002, + 0x497a6008, 0x0201f800, 0x001074ce, 0x80000580, + 0x1c01f000, 0x0401f807, 0x42018800, 0x00000001, + 0x04000003, 0x42018800, 0x00000000, 0x1c01f000, + 0x59300804, 0x8c040d20, 0x04020004, 0x82000540, + 0x00000001, 0x1c01f000, 0x4933c857, 0x4d380000, + 0x59300804, 0x84040d20, 0x48066004, 0x42027000, + 0x00000049, 0x59300203, 0x82000580, 0x00000003, + 0x04000003, 0x42027000, 0x00000013, 0x0201f800, + 0x00020bc1, 0x80000580, 0x5c027000, 0x1c01f000, + 0x0401f807, 0x42018800, 0x00000001, 0x04000003, + 0x42018800, 0x00000000, 0x1c01f000, 0x59300018, + 0x81480580, 0x04020003, 0x59300019, 0x814c0580, + 0x1c01f000, 0x4d2c0000, 0x4d300000, 0x0401f8ce, + 0x4df00000, 0x0201f800, 0x00106628, 0x59900001, + 0x82000500, 0x00000003, 0x0c01f001, 0x00106d8c, + 0x00106d81, 0x00106d7f, 0x00106d7f, 0x0201f800, + 0x0010032e, 0x59926004, 0x0401f88a, 0x813261c0, + 0x04000008, 0x59300004, 0x8c000516, 0x04000004, + 0x59325809, 0x497a5809, 0x497a580a, 0x0401f88a, + 0x5c03e000, 0x040008a1, 0x5c026000, 0x5c025800, + 0x1c01f000, 0x5c000000, 0x4c000000, 0x4803c857, + 0x4d300000, 0x497b2807, 0x0401f8ab, 0x4df00000, + 0x598c0000, 0x82000500, 0x0000000f, 0x4803c857, + 0x0c01f001, 0x00106dd2, 0x00106daf, 0x00106db8, + 0x00106dbf, 0x00106dcd, 0x00106dd2, 0x00106dad, + 0x00106dbc, 0x00106dd2, 0x00106dad, 0x00106dad, + 0x00106dad, 0x00106dad, 0x00106dad, 0x00106dad, + 0x00106dad, 0x0201f800, 0x0010032e, 0x598c000f, + 0x80026540, 0x04000004, 0x0401f824, 0x02020800, + 0x0010032e, 0x0201f800, 0x001074ce, 0x0401f01b, + 0x0401f82d, 0x0201f800, 0x001074ce, 0x0401f017, + 0x0201f800, 0x0010ba5c, 0x0401f7f7, 0x598c000f, + 0x80026540, 0x04000011, 0x0401f83b, 0x04000007, + 0x0401f812, 0x04000005, 0x0401f81f, 0x04000003, + 0x0201f800, 0x0010ba5c, 0x0201f800, 0x001074ce, + 0x0401f006, 0x0401f830, 0x02020800, 0x0010032e, + 0x0201f800, 0x001074ce, 0x5c03e000, 0x0400085b, + 0x5c026000, 0x1c01f000, 0x598c0009, 0x81300580, + 0x0402000c, 0x0401f84e, 0x0401f83b, 0x59300000, + 0x800001c0, 0x04000004, 0x48031809, 0x497a6000, + 0x0401f003, 0x497b1809, 0x497b1808, 0x80000580, + 0x1c01f000, 0x4d2c0000, 0x59300407, 0x82000580, + 0x00000003, 0x04020012, 0x598c000b, 0x81300580, + 0x0402000f, 0x0401f83a, 0x59325809, 0x497a5809, + 0x497a580a, 0x0401f824, 0x59300000, 0x800001c0, + 0x04000004, 0x4803180b, 0x497a6000, 0x0401f003, + 0x497b180a, 0x497b180b, 0x80000580, 0x5c025800, + 0x1c01f000, 0x598c0005, 0x81300580, 0x0402000c, + 0x0401f827, 0x0401f814, 0x59300000, 0x800001c0, + 0x04000004, 0x48031805, 0x497a6000, 0x0401f003, + 0x497b1805, 0x497b1804, 0x80000580, 0x1c01f000, + 0x4a032001, 0x00000000, 0x497b2004, 0x497b2005, + 0x59900006, 0x82000500, 0x0000ffff, 0x48032006, + 0x1c01f000, 0x4c040000, 0x59300004, 0x82000500, + 0x7ffeffff, 0x48026004, 0x59bc00e4, 0x8c000514, + 0x04000009, 0x42000800, 0x0000bf00, 0x58040012, + 0x81300580, 0x04020004, 0x49780812, 0x4a0378e4, + 0x00000800, 0x5c000800, 0x1c01f000, 0x4803c856, + 0x598c000e, 0x80000540, 0x04000003, 0x80000040, + 0x4803180e, 0x1c01f000, 0x59bc00ea, 0x82000500, + 0x00000007, 0x82000580, 0x00000003, 0x04020006, + 0x4803c856, 0x4a0378e8, 0x00000001, 0x4a0370e4, + 0x00000800, 0x1c01f000, 0x0401f807, 0x42018800, + 0x00000001, 0x04000003, 0x42018800, 0x00000000, 0x1c01f000, 0x59bc00ea, 0x82000500, 0x00000007, - 0x82000580, 0x00000001, 0x02020800, 0x0010032e, + 0x82000580, 0x00000001, 0x04020013, 0x4803c856, + 0x42000800, 0x00000000, 0x0401f810, 0x4a0370e4, + 0x00000c00, 0x42000800, 0x00001000, 0x59bc00ea, + 0x82000500, 0x00000007, 0x82000580, 0x00000003, + 0x04000005, 0x80040840, 0x040207f9, 0x0201f800, + 0x0010032e, 0x1c01f000, 0x59bc00ea, 0x82000500, + 0x00000007, 0x82000580, 0x00000001, 0x02020800, + 0x0010032e, 0x59bc00ea, 0x8c000516, 0x040207fe, + 0x480778e1, 0x1c01f000, 0x40681000, 0x406c0800, 0x59bc00ea, 0x8c000516, 0x040207fe, 0x480778e1, - 0x1c01f000, 0x40681000, 0x406c0800, 0x59bc00ea, - 0x8c000516, 0x040207fe, 0x480778e1, 0x59bc00ea, - 0x8c000516, 0x040207fe, 0x480b78e1, 0x1c01f000, - 0x4a0378e4, 0x00002000, 0x59a80070, 0x82000500, - 0x0000000c, 0x04020008, 0x42007000, 0x0010c89b, - 0x58380401, 0x8c000506, 0x04020003, 0x4a0378e4, - 0x00080000, 0x1c01f000, 0x82000d00, 0x80000018, - 0x02020800, 0x00100323, 0x0201f800, 0x0010032e, - 0x00106c90, 0x00106d6f, 0x00106d8a, 0x00106c90, - 0x00106c92, 0x00106ce5, 0x00106d04, 0x00106d3c, - 0x00106c90, 0x00106d6d, 0x00106cb3, 0x00106c90, - 0x00106c90, 0x00106c90, 0x00106c90, 0x00106c90, - 0x0201f800, 0x0010032e, 0x4d300000, 0x4d900000, - 0x4dd00000, 0x4da40000, 0x4d140000, 0x0201f800, - 0x001072f1, 0x59bc00ea, 0x8c000510, 0x040007fe, - 0x59be60e0, 0x59300004, 0x8c000520, 0x04000011, - 0x82000500, 0xfffefeff, 0x48026004, 0x4a026203, - 0x00000003, 0x0401ff97, 0x0201f800, 0x00100df4, - 0x5c022800, 0x5c034800, 0x5c03a000, 0x5c032000, - 0x5c026000, 0x4a0378e4, 0x00000008, 0x0401f77a, - 0x84000510, 0x48026004, 0x0401f7f6, 0x4d300000, - 0x4d2c0000, 0x4d900000, 0x4dd00000, 0x4da40000, - 0x4d140000, 0x0201f800, 0x001072f1, 0x59bc00ea, - 0x8c000510, 0x040007fe, 0x59be60e0, 0x59300004, - 0x8c000520, 0x04000021, 0x82000500, 0xfffefeff, - 0x48026004, 0x4a026203, 0x00000003, 0x59325809, - 0x812e59c0, 0x02000800, 0x0010032e, 0x42000000, - 0x0010cc46, 0x0201f800, 0x0010bc88, 0x0401f8f3, - 0x04000009, 0x592c0209, 0x84000552, 0x48025a09, - 0x0201f800, 0x001010ed, 0x0401ff66, 0x0201f800, - 0x00100df4, 0x5c022800, 0x5c034800, 0x5c03a000, - 0x5c032000, 0x5c025800, 0x5c026000, 0x4a0378e4, - 0x00000008, 0x0401f748, 0x84000510, 0x48026004, - 0x0401f7f5, 0x4d300000, 0x4d900000, 0x4dd00000, - 0x4da40000, 0x4d140000, 0x0201f800, 0x001072f1, - 0x59bc00ea, 0x8c000510, 0x040007fe, 0x59be60e0, - 0x59300004, 0x8c000520, 0x0400000f, 0x82000500, - 0xfffefeff, 0x48026004, 0x0401ff46, 0x0201f800, - 0x00100e36, 0x5c022800, 0x5c034800, 0x5c03a000, + 0x59bc00ea, 0x8c000516, 0x040207fe, 0x480b78e1, + 0x1c01f000, 0x4a0378e4, 0x00002000, 0x59a80070, + 0x82000500, 0x0000000c, 0x04020008, 0x42007000, + 0x0010cb9b, 0x58380401, 0x8c000506, 0x04020003, + 0x4a0378e4, 0x00080000, 0x1c01f000, 0x82000d00, + 0x80000018, 0x02020800, 0x00100323, 0x0201f800, + 0x0010032e, 0x00106e95, 0x00106f74, 0x00106f8f, + 0x00106e95, 0x00106e97, 0x00106eea, 0x00106f09, + 0x00106f41, 0x00106e95, 0x00106f72, 0x00106eb8, + 0x00106e95, 0x00106e95, 0x00106e95, 0x00106e95, + 0x00106e95, 0x0201f800, 0x0010032e, 0x4d300000, + 0x4d900000, 0x4dd00000, 0x4da40000, 0x4d140000, + 0x0201f800, 0x001074f6, 0x59bc00ea, 0x8c000510, + 0x040007fe, 0x59be60e0, 0x59300004, 0x8c000520, + 0x04000011, 0x82000500, 0xfffefeff, 0x48026004, + 0x4a026203, 0x00000003, 0x0401ff97, 0x0201f800, + 0x00100df5, 0x5c022800, 0x5c034800, 0x5c03a000, 0x5c032000, 0x5c026000, 0x4a0378e4, 0x00000008, - 0x0401f729, 0x84000510, 0x48026004, 0x0401f7f6, - 0x4d300000, 0x4d2c0000, 0x4d340000, 0x4da40000, - 0x4cd00000, 0x4d240000, 0x59bc00ea, 0x8c000510, - 0x040007fe, 0x59be60e0, 0x813261c0, 0x02000800, - 0x0010032e, 0x59300004, 0x8c000520, 0x04000020, - 0x82000500, 0xfffefeff, 0x48026004, 0x5932680a, - 0x42034800, 0x0010c89e, 0x5932481c, 0x04011000, - 0x4a03c840, 0x0010c8a5, 0x4a03c842, 0x00000012, - 0x04011000, 0x4a03c840, 0x0010c8b7, 0x4a03c842, - 0x000000ff, 0x04011000, 0x4a03c840, 0x0010c9b6, - 0x4a03c842, 0x000000ff, 0x0201f800, 0x00107308, - 0x5c024800, 0x5c01a000, 0x5c034800, 0x5c026800, - 0x5c025800, 0x5c026000, 0x1c01f000, 0x84000510, - 0x48026004, 0x5c024800, 0x5c01a000, 0x5c034800, - 0x5c026800, 0x5c025800, 0x5c026000, 0x1c01f000, - 0x4d300000, 0x4d2c0000, 0x4d340000, 0x4cd00000, - 0x4d240000, 0x4d900000, 0x4dd00000, 0x4da40000, - 0x4d140000, 0x0201f800, 0x001072f1, 0x59bc00ea, + 0x0401f77a, 0x84000510, 0x48026004, 0x0401f7f6, + 0x4d300000, 0x4d2c0000, 0x4d900000, 0x4dd00000, + 0x4da40000, 0x4d140000, 0x0201f800, 0x001074f6, + 0x59bc00ea, 0x8c000510, 0x040007fe, 0x59be60e0, + 0x59300004, 0x8c000520, 0x04000021, 0x82000500, + 0xfffefeff, 0x48026004, 0x4a026203, 0x00000003, + 0x59325809, 0x812e59c0, 0x02000800, 0x0010032e, + 0x42000000, 0x0010cf46, 0x0201f800, 0x0010bfb3, + 0x0401f8f3, 0x04000009, 0x592c0209, 0x84000552, + 0x48025a09, 0x0201f800, 0x001010ee, 0x0401ff66, + 0x0201f800, 0x00100df5, 0x5c022800, 0x5c034800, + 0x5c03a000, 0x5c032000, 0x5c025800, 0x5c026000, + 0x4a0378e4, 0x00000008, 0x0401f748, 0x84000510, + 0x48026004, 0x0401f7f5, 0x4d300000, 0x4d900000, + 0x4dd00000, 0x4da40000, 0x4d140000, 0x0201f800, + 0x001074f6, 0x59bc00ea, 0x8c000510, 0x040007fe, + 0x59be60e0, 0x59300004, 0x8c000520, 0x0400000f, + 0x82000500, 0xfffefeff, 0x48026004, 0x0401ff46, + 0x0201f800, 0x00100e37, 0x5c022800, 0x5c034800, + 0x5c03a000, 0x5c032000, 0x5c026000, 0x4a0378e4, + 0x00000008, 0x0401f729, 0x84000510, 0x48026004, + 0x0401f7f6, 0x4d300000, 0x4d2c0000, 0x4d340000, + 0x4da40000, 0x4cd00000, 0x4d240000, 0x59bc00ea, 0x8c000510, 0x040007fe, 0x59be60e0, 0x813261c0, 0x02000800, 0x0010032e, 0x59300004, 0x8c000520, - 0x04000011, 0x82000500, 0xfffefeff, 0x48026004, - 0x5932481c, 0x0201f800, 0x00107af1, 0x5c022800, - 0x5c034800, 0x5c03a000, 0x5c032000, 0x5c024800, - 0x5c01a000, 0x5c026800, 0x5c025800, 0x5c026000, - 0x1c01f000, 0x84000510, 0x48026004, 0x5c022800, - 0x5c034800, 0x5c03a000, 0x5c032000, 0x5c024800, - 0x5c01a000, 0x5c026800, 0x5c025800, 0x5c026000, - 0x1c01f000, 0x0201f800, 0x0010032e, 0x4d300000, - 0x4d380000, 0x42000000, 0x0010cc84, 0x0201f800, - 0x0010bc88, 0x0401fec7, 0x598e600f, 0x59c40004, - 0x8c000506, 0x04000004, 0x0401f95f, 0x4a038804, - 0x00000008, 0x813261c0, 0x04000007, 0x0201f800, - 0x001072eb, 0x42027000, 0x00000014, 0x0201f800, - 0x00020bc1, 0x4a0378e4, 0x00000002, 0x5c027000, - 0x5c026000, 0x0401f6a0, 0x4d180000, 0x4d300000, - 0x4d380000, 0x4d900000, 0x4dd00000, 0x4da40000, - 0x4d140000, 0x0401feab, 0x417a3000, 0x59c40804, - 0x83180400, 0x0010729b, 0x50000000, 0x80040500, - 0x0400001c, 0x42000000, 0x0010cc85, 0x0201f800, - 0x0010bc88, 0x0201f800, 0x001072f1, 0x59926004, - 0x0401f8d5, 0x83180400, 0x0010729b, 0x50000000, - 0x48038804, 0x813261c0, 0x0400000a, 0x59300004, - 0x8c00050c, 0x04020003, 0x4a026203, 0x00000003, - 0x42027000, 0x0000004a, 0x0201f800, 0x00020bc1, - 0x59c40004, 0x82000500, 0x00f80000, 0x04000005, - 0x811a3000, 0x83180480, 0x00000005, 0x040017dc, - 0x4a0378e4, 0x00000008, 0x5c022800, 0x5c034800, - 0x5c03a000, 0x5c032000, 0x5c027000, 0x5c026000, - 0x5c023000, 0x0401f668, 0x59300004, 0x8c000538, - 0x04020066, 0x59300222, 0x82000500, 0x00000003, - 0x82000580, 0x00000001, 0x04020060, 0x42000000, - 0x0010ccb7, 0x0201f800, 0x0010bc88, 0x0401fe6d, - 0x4df00000, 0x4c640000, 0x0401f8a3, 0x0401fd99, - 0x5930c804, 0x8464cd78, 0x59d00011, 0x59d02012, - 0x4803c857, 0x4813c857, 0x0401fbea, 0x04020041, - 0x48166012, 0x4c100000, 0x4c5c0000, 0x4c600000, - 0x4a026203, 0x00000002, 0x592c0a05, 0x82040d00, - 0x000000ff, 0x82040580, 0x00000072, 0x04020005, - 0x4a026203, 0x00000003, 0x592c000e, 0x80102480, - 0x4010b800, 0x4014c000, 0x42000000, 0x00000001, - 0x1201f800, 0x00108c59, 0x40602800, 0x5c00c000, - 0x5c00b800, 0x5c002000, 0x04000026, 0x42000000, - 0xd0000000, 0x41300800, 0x0201f800, 0x001008c9, - 0x59300008, 0x4c000000, 0x4a026008, 0x00200000, - 0x0201f800, 0x00100f2a, 0x5c000000, 0x48026008, - 0x04020018, 0x8464cd26, 0x592c0209, 0x8c00051e, - 0x0402000c, 0x8464cd4a, 0x50201800, 0x480e600b, - 0x8464cd7e, 0x48666004, 0x0401fbeb, 0x5c00c800, - 0x5c03e000, 0x04000e18, 0x80000580, 0x1c01f000, - 0x8400051e, 0x48025a09, 0x0201f800, 0x00100ee8, - 0x4832600c, 0x4822600d, 0x482a600e, 0x0401f7ef, - 0x42000000, 0x0010ccb8, 0x0201f800, 0x0010bc88, - 0x4a026203, 0x00000003, 0x49332004, 0x8464cd7e, - 0x48666004, 0x4a032001, 0x00000001, 0x5c00c800, - 0x5c03e000, 0x04000e00, 0x82000540, 0x00000001, - 0x0401f7e7, 0x4d2c0000, 0x4d340000, 0x5932680a, - 0x598c0800, 0x82040580, 0x00000004, 0x04020006, - 0x838c1400, 0x00000005, 0x838c1c00, 0x00000004, - 0x0401f010, 0x82040580, 0x00000001, 0x04020006, - 0x838c1400, 0x00000009, 0x838c1c00, 0x00000008, - 0x0401f008, 0x82040580, 0x00000002, 0x04020028, - 0x838c1400, 0x0000000b, 0x838c1c00, 0x0000000a, - 0x41306800, 0x58340000, 0x80007d40, 0x04000020, - 0x583c000a, 0x81340580, 0x04020006, 0x403c6800, - 0x583c0000, 0x80007d40, 0x040207fa, 0x0401f018, - 0x4933c857, 0x483fc857, 0x583c0000, 0x48006800, - 0x49307800, 0x443c1000, 0x500c0000, 0x803c0580, - 0x04020002, 0x44341800, 0x80000580, 0x4803180f, - 0x48031811, 0x598c0000, 0x82000580, 0x00000003, - 0x04000003, 0x4a031800, 0x00000000, 0x80000580, - 0x5c026800, 0x5c025800, 0x1c01f000, 0x82000540, - 0x00000001, 0x0401f7fb, 0x0401f807, 0x42018800, - 0x00000000, 0x04000003, 0x42018800, 0x00000001, - 0x1c01f000, 0x491bc857, 0x59b400f6, 0x82000500, - 0x00000038, 0x040207fd, 0x59c80840, 0x82040540, - 0x00000010, 0x48039040, 0x59c41008, 0x4c040000, - 0x4c080000, 0x82081500, 0xffffff7f, 0x480b8808, - 0x0401fbf9, 0x04020007, 0x0401fbfd, 0x04000024, - 0x48038804, 0x0201f800, 0x00100eb4, 0x0401f044, - 0x4a038803, 0x00000008, 0x59c40003, 0x82000500, - 0x00000003, 0x040007fd, 0x8c000502, 0x04020007, - 0x0401fbef, 0x04000016, 0x48038804, 0x0201f800, - 0x00100eb4, 0x0401f036, 0x0401fbef, 0x04020007, - 0x59c80040, 0x8400056a, 0x48039040, 0x59c80040, - 0x8c00052a, 0x040207fe, 0x59c40005, 0x82000500, - 0xc0000000, 0x04000006, 0x59c400a3, 0x84000540, - 0x480388a3, 0x4a038805, 0xc0000000, 0x0201f800, - 0x00100e45, 0x4a03a005, 0x30000000, 0x59d00006, - 0x4a03a005, 0x30000000, 0x59900006, 0x82000500, - 0xffff0000, 0x48032006, 0x59d00005, 0x8c000504, - 0x040207fe, 0x42000800, 0x00007600, 0x83180540, - 0x60000000, 0x480008a1, 0x811800dc, 0x59c80840, - 0x80040540, 0x48039040, 0x82000540, 0x00003000, - 0x48039040, 0x59c80040, 0x82000500, 0x00003000, - 0x040207fd, 0x0201f800, 0x00100ea3, 0x83180400, - 0x0010729b, 0x50000000, 0x48038804, 0x80000580, - 0x4df00000, 0x0201f800, 0x00106423, 0x5c03e000, - 0x5c001000, 0x5c000800, 0x480b8808, 0x48079040, - 0x1c01f000, 0x4803c856, 0x59b400f6, 0x82000500, - 0x00000038, 0x040207fd, 0x59c80840, 0x82040540, - 0x00000010, 0x48039040, 0x59c41008, 0x4c040000, - 0x4c080000, 0x82081500, 0xffffff7f, 0x480b8808, - 0x59c40004, 0x82000500, 0x00000003, 0x04020010, - 0x59c40004, 0x82000500, 0x0000000c, 0x04000005, - 0x4a038804, 0x0000000c, 0x8c000504, 0x0401f025, - 0x59c80040, 0x8400056e, 0x48039040, 0x59c80040, - 0x8c00052e, 0x040207fe, 0x0401f01e, 0x4a038803, - 0x00000008, 0x59c40003, 0x82000500, 0x00000003, - 0x040007fd, 0x8c000502, 0x04020006, 0x59c40004, - 0x4a038804, 0x0000000c, 0x8c000504, 0x0401f011, - 0x59c80040, 0x8400056a, 0x48039040, 0x59c80040, - 0x8c00052a, 0x040207fe, 0x59c40005, 0x82000500, - 0xc0000000, 0x04000007, 0x59c400a3, 0x84000540, - 0x480388a3, 0x4a038805, 0xc0000000, 0x80000580, - 0x497b2807, 0x5c001000, 0x5c000800, 0x480b8808, - 0x48079040, 0x1c01f000, 0x0401f807, 0x42018800, - 0x00000001, 0x04000003, 0x42018800, 0x00000000, - 0x1c01f000, 0x5c000000, 0x4c000000, 0x4803c857, - 0x491bc857, 0x4933c857, 0x4d900000, 0x4dd00000, - 0x4da40000, 0x4d140000, 0x0401fd0e, 0x4df00000, - 0x0401fbc1, 0x59900004, 0x800001c0, 0x04000011, - 0x81300580, 0x0402000f, 0x59300004, 0x84000520, - 0x48026004, 0x0401ff3c, 0x04020009, 0x5c03e000, - 0x04000ced, 0x80000580, 0x5c022800, 0x5c034800, - 0x5c03a000, 0x5c032000, 0x1c01f000, 0x0401fc29, - 0x42027000, 0x00000049, 0x59300004, 0x84000520, - 0x48026004, 0x8c00050c, 0x02020800, 0x00020bc1, - 0x5c03e000, 0x04000cdc, 0x82000540, 0x00000001, + 0x04000020, 0x82000500, 0xfffefeff, 0x48026004, + 0x5932680a, 0x42034800, 0x0010cb9e, 0x5932481c, + 0x04011000, 0x4a03c840, 0x0010cba5, 0x4a03c842, + 0x00000012, 0x04011000, 0x4a03c840, 0x0010cbb7, + 0x4a03c842, 0x000000ff, 0x04011000, 0x4a03c840, + 0x0010ccb6, 0x4a03c842, 0x000000ff, 0x0201f800, + 0x0010750d, 0x5c024800, 0x5c01a000, 0x5c034800, + 0x5c026800, 0x5c025800, 0x5c026000, 0x1c01f000, + 0x84000510, 0x48026004, 0x5c024800, 0x5c01a000, + 0x5c034800, 0x5c026800, 0x5c025800, 0x5c026000, + 0x1c01f000, 0x4d300000, 0x4d2c0000, 0x4d340000, + 0x4cd00000, 0x4d240000, 0x4d900000, 0x4dd00000, + 0x4da40000, 0x4d140000, 0x0201f800, 0x001074f6, + 0x59bc00ea, 0x8c000510, 0x040007fe, 0x59be60e0, + 0x813261c0, 0x02000800, 0x0010032e, 0x59300004, + 0x8c000520, 0x04000011, 0x82000500, 0xfffefeff, + 0x48026004, 0x5932481c, 0x0201f800, 0x00107ce7, 0x5c022800, 0x5c034800, 0x5c03a000, 0x5c032000, - 0x1c01f000, 0x0401f807, 0x42018800, 0x00000001, - 0x04000003, 0x42018800, 0x00000000, 0x1c01f000, - 0x4933c857, 0x0401fcdf, 0x4df00000, 0x598c000f, - 0x80026540, 0x04000012, 0x59300004, 0x84000520, - 0x48026004, 0x0401ff74, 0x04000017, 0x0401fc25, - 0x42027000, 0x00000013, 0x59300004, 0x8c00050c, - 0x02020800, 0x00020bc1, 0x5c03e000, 0x04000cba, - 0x82000540, 0x00000001, 0x1c01f000, 0x836c1580, - 0x00000001, 0x040007f9, 0x836c1580, 0x00000004, - 0x040007f6, 0x42001000, 0x00104038, 0x0201f800, - 0x001062f9, 0x5c03e000, 0x04000cab, 0x80000580, - 0x1c01f000, 0x4d300000, 0x4d180000, 0x4d3c0000, - 0x0401fcb8, 0x4df00000, 0x4a0378e4, 0x0000000f, - 0x0401fb41, 0x417a3000, 0x811808c8, 0x82040c00, - 0x0000bf32, 0x58066004, 0x813261c0, 0x04000010, - 0x417a7800, 0x0201f800, 0x0010483c, 0x0400000a, - 0x59300c07, 0x82040580, 0x00000003, 0x04000004, - 0x82040580, 0x00000006, 0x04020003, 0x42027800, - 0x00000002, 0x0201f800, 0x001091f1, 0x811a3000, - 0x83180480, 0x00000005, 0x040017e8, 0x42000800, - 0x00000040, 0x0201f800, 0x001012d1, 0x4a0378e4, - 0x0000000a, 0x5c03e000, 0x04000c7f, 0x5c027800, - 0x5c023000, 0x5c026000, 0x1c01f000, 0x4803c856, - 0x4d300000, 0x0401fc8b, 0x4df00000, 0x59c80840, - 0x84040d74, 0x82040540, 0x00000010, 0x48039040, - 0x59c41008, 0x4c040000, 0x4c080000, 0x82081500, - 0xffffff7f, 0x480b8808, 0x42001000, 0x00000003, - 0x0401fafc, 0x598e600f, 0x813261c0, 0x04020f99, - 0x04000b05, 0x497b2807, 0x0401f809, 0x5c001000, - 0x5c000800, 0x480b8808, 0x48079040, 0x5c03e000, - 0x04000c5d, 0x5c026000, 0x1c01f000, 0x4d380000, - 0x4d180000, 0x4d300000, 0x4d900000, 0x4dd00000, - 0x4da40000, 0x4d140000, 0x417a3000, 0x0201f800, - 0x00106423, 0x811a3000, 0x83180580, 0x00000005, - 0x040207fb, 0x0401fad4, 0x04020009, 0x5c022800, - 0x5c034800, 0x5c03a000, 0x5c032000, 0x5c026000, - 0x5c023000, 0x5c027000, 0x1c01f000, 0x0401fb0a, - 0x59926004, 0x4933c857, 0x0401fe8b, 0x813261c0, - 0x040007f3, 0x42027000, 0x0000004a, 0x4a026203, - 0x00000003, 0x0201f800, 0x00020bc1, 0x0401f7ec, - 0x4d300000, 0x4d180000, 0x4d900000, 0x0401fc45, - 0x42001000, 0x00000000, 0x598c0800, 0x82040580, - 0x00000005, 0x04000003, 0x82040580, 0x00000008, - 0x04000abc, 0x417a3000, 0x811b20c8, 0x83932400, - 0x0000bf32, 0x59900001, 0x82000580, 0x00000001, - 0x0402000d, 0x42000800, 0x00000004, 0x59926004, - 0x59300012, 0x82000500, 0xfff00000, 0x80000540, - 0x04000003, 0x42000800, 0x0000000e, 0x0201f800, - 0x001063ff, 0x811a3000, 0x83180480, 0x00000005, - 0x040017ea, 0x59c81040, 0x84081534, 0x480b9040, - 0x0401fc0d, 0x5c032000, 0x5c023000, 0x5c026000, - 0x1c01f000, 0x4933c857, 0x4d900000, 0x4dd00000, - 0x4da40000, 0x4d140000, 0x4d380000, 0x0401fc15, - 0x4df00000, 0x59300004, 0x8c00053e, 0x04020007, - 0x8c000520, 0x04000027, 0x0201f800, 0x00106b47, - 0x04000024, 0x0401f02d, 0x598c000f, 0x81300580, - 0x04000012, 0x0201f800, 0x0010931e, 0x04020027, - 0x0401fa4b, 0x04000025, 0x48038804, 0x0401fab6, - 0x0201f800, 0x00100eb4, 0x0201f800, 0x00106b6c, - 0x42027000, 0x00000049, 0x59300004, 0x8c00050c, - 0x0402000e, 0x0401f00f, 0x59c40004, 0x8c000504, - 0x04000016, 0x4a038804, 0x00000004, 0x0201f800, - 0x00106b8c, 0x42027000, 0x00000013, 0x59300004, - 0x8c00050c, 0x04000003, 0x0201f800, 0x00020bc1, - 0x5c03e000, 0x02000800, 0x00106c29, 0x5c027000, + 0x5c024800, 0x5c01a000, 0x5c026800, 0x5c025800, + 0x5c026000, 0x1c01f000, 0x84000510, 0x48026004, 0x5c022800, 0x5c034800, 0x5c03a000, 0x5c032000, - 0x80000580, 0x1c01f000, 0x5c03e000, 0x02000800, - 0x00106c29, 0x5c027000, 0x5c022800, 0x5c034800, - 0x5c03a000, 0x5c032000, 0x82000540, 0x00000001, - 0x1c01f000, 0x59300407, 0x82000580, 0x00000003, - 0x04020008, 0x0201f800, 0x00109667, 0x04000005, - 0x59301009, 0x58080409, 0x84000550, 0x48001409, - 0x1c01f000, 0x497b2807, 0x0201f800, 0x00106c3c, - 0x59c400af, 0x800001c0, 0x04020005, 0x0201f800, - 0x00106c29, 0x0201f000, 0x001014c6, 0x598c0011, - 0x82001480, 0x00000002, 0x04021007, 0x80000000, - 0x48031811, 0x80000580, 0x0201f800, 0x001063f8, - 0x04000011, 0x0401fed3, 0x0402000f, 0x0401ffde, - 0x42000000, 0x0010cc3c, 0x0201f800, 0x0010bc88, - 0x0401fd9d, 0x04000008, 0x0401fa59, 0x4d380000, - 0x42027000, 0x00000014, 0x0201f800, 0x00020bc1, - 0x5c027000, 0x0201f800, 0x00106c29, 0x0201f000, - 0x001014c6, 0x4d900000, 0x4dd00000, 0x4da40000, - 0x4d140000, 0x4d300000, 0x0201f800, 0x00106423, - 0x0201f800, 0x00106c3c, 0x59c400af, 0x800001c0, - 0x0400002b, 0x0401fa48, 0x59926004, 0x4933c857, - 0x59300004, 0x8c000516, 0x0400000c, 0x0401fe76, - 0x04020023, 0x0201f800, 0x00106b6c, 0x0201f800, - 0x00106c29, 0x42000800, 0x80000804, 0x0201f800, - 0x00020b30, 0x0401f01a, 0x42001800, 0x00007530, - 0x0401f9e9, 0x04020004, 0x0201f800, 0x001063fd, - 0x0401f013, 0x0401fe64, 0x04020011, 0x0401ffa6, - 0x42000000, 0x0010cc3d, 0x0201f800, 0x0010bc88, + 0x5c024800, 0x5c01a000, 0x5c026800, 0x5c025800, + 0x5c026000, 0x1c01f000, 0x0201f800, 0x0010032e, + 0x4d300000, 0x4d380000, 0x42000000, 0x0010cf84, + 0x0201f800, 0x0010bfb3, 0x0401fec7, 0x598e600f, + 0x59c40004, 0x8c000506, 0x04000004, 0x0401f95f, + 0x4a038804, 0x00000008, 0x813261c0, 0x04000007, + 0x0201f800, 0x001074f0, 0x42027000, 0x00000014, + 0x0201f800, 0x00020bc1, 0x4a0378e4, 0x00000002, + 0x5c027000, 0x5c026000, 0x0401f6a0, 0x4d180000, + 0x4d300000, 0x4d380000, 0x4d900000, 0x4dd00000, + 0x4da40000, 0x4d140000, 0x0401feab, 0x417a3000, + 0x59c40804, 0x83180400, 0x001074a0, 0x50000000, + 0x80040500, 0x0400001c, 0x42000000, 0x0010cf85, + 0x0201f800, 0x0010bfb3, 0x0201f800, 0x001074f6, + 0x59926004, 0x0401f8d5, 0x83180400, 0x001074a0, + 0x50000000, 0x48038804, 0x813261c0, 0x0400000a, 0x59300004, 0x8c00050c, 0x04020003, 0x4a026203, - 0x00000003, 0x4d380000, 0x42027000, 0x0000004a, - 0x0201f800, 0x00020bc1, 0x5c027000, 0x0201f800, - 0x00106c29, 0x5c026000, 0x5c022800, 0x5c034800, - 0x5c03a000, 0x5c032000, 0x0201f000, 0x001014c6, - 0x4c600000, 0x4d900000, 0x4dd00000, 0x4da40000, - 0x4d140000, 0x4d300000, 0x4d2c0000, 0x0201f800, - 0x00106c3c, 0x0401fa0c, 0x59926004, 0x813261c0, - 0x04000091, 0x0201f800, 0x00104fc6, 0x04020007, - 0x4178c000, 0x0201f800, 0x00107c57, 0x04000003, - 0x4200c000, 0x00000001, 0x42000000, 0x00001000, - 0x50000000, 0x82000480, 0x24320001, 0x04001038, - 0x0201f800, 0x00100e45, 0x59303004, 0x8c183536, - 0x0400002f, 0x42003000, 0x00001000, 0x80183040, - 0x04000014, 0x0201f800, 0x0010bdab, 0x040007fc, - 0x0201f800, 0x0010064a, 0x42003000, 0x00007a15, - 0x50183800, 0x821c0500, 0x00007000, 0x04000009, - 0x4803507a, 0x821c0500, 0xffff8fff, 0x44003000, - 0x4a032832, 0x000004b0, 0x4a0378e4, 0x02c00000, - 0x4a030000, 0x00000000, 0x0201f800, 0x00100ea3, - 0x850e1d2e, 0x42000000, 0x0010ccb5, 0x0201f800, - 0x0010bc88, 0x59325809, 0x812e59c0, 0x02000800, - 0x0010032e, 0x0401f861, 0x04000057, 0x59303004, - 0x84183536, 0x481a6004, 0x0401f032, 0x0201f800, - 0x00106410, 0x0400002c, 0x0401f04f, 0x0201f800, - 0x00100ea3, 0x8d0e1d2e, 0x040207f9, 0x0201f800, - 0x00104fc6, 0x04020006, 0x8060c1c0, 0x04000004, - 0x0201f800, 0x00107c81, 0x0401f043, 0x0201f800, - 0x00106410, 0x04020040, 0x4933c857, 0x0401f94e, - 0x04020019, 0x0201f800, 0x00106423, 0x813261c0, - 0x04000039, 0x59325809, 0x812e59c0, 0x02000800, - 0x0010032e, 0x0201f800, 0x00104fc6, 0x04020022, - 0x59c40093, 0x4803c857, 0x800001c0, 0x0402000a, - 0x592c0209, 0x84000550, 0x48025a09, 0x0201f800, - 0x001050f2, 0x04020028, 0x592c0209, 0x84000510, - 0x48025a09, 0x0201f800, 0x001063fd, 0x0401f022, - 0x42000000, 0x0010cc3d, 0x0201f800, 0x0010bc88, - 0x0401fd19, 0x592c0209, 0x84000550, 0x48025a09, - 0x4d380000, 0x42027000, 0x0000004a, 0x4a026203, - 0x00000003, 0x0201f800, 0x00020bc1, 0x5c027000, - 0x0401f011, 0x59900006, 0x82000500, 0xffff0000, - 0x040207ec, 0x59c408af, 0x82040480, 0x000003e8, - 0x040217e8, 0x59900006, 0x82000400, 0x00010000, - 0x48032006, 0x0201f800, 0x001063fd, 0x0201f800, - 0x00104011, 0x5c025800, 0x5c026000, 0x5c022800, - 0x5c034800, 0x5c03a000, 0x5c032000, 0x5c00c000, - 0x0201f000, 0x00106c29, 0x4c5c0000, 0x4c640000, - 0x5930bc07, 0x5930c804, 0x825c0580, 0x00000003, - 0x04000004, 0x825c0580, 0x00000006, 0x04020031, - 0x0201f800, 0x0010483c, 0x0402002e, 0x8c64cd0e, - 0x0402002c, 0x0401fce4, 0x0201f800, 0x00106b6c, - 0x825c0580, 0x00000003, 0x04020005, 0x8c64cd16, - 0x0400000c, 0x8464cd36, 0x0401f01b, 0x82640500, - 0x0000001f, 0x82000580, 0x00000005, 0x04000005, - 0x0201f800, 0x00020172, 0x8464cd4a, 0x0401f7f6, - 0x0401f820, 0x04020017, 0x48166012, 0x0201f800, - 0x00100f2a, 0x04020013, 0x8264cd00, 0xfff7ffdf, - 0x592c0209, 0x8c00051e, 0x04020011, 0x8464cd4a, - 0x50201800, 0x480e600b, 0x4832600c, 0x4822600d, - 0x482a600e, 0x8464cd7e, 0x48666004, 0x0401f842, - 0x80000580, 0x5c00c800, 0x5c00b800, 0x1c01f000, - 0x82000540, 0x00000001, 0x0401f7fb, 0x8400051e, - 0x48025a09, 0x0201f800, 0x00100ee8, 0x0401f7ed, - 0x59302013, 0x811808c2, 0x82040c00, 0x00006000, - 0x58040101, 0x82000500, 0xffff0000, 0x800001c0, - 0x0400000b, 0x811808ca, 0x82040c00, 0x00006000, - 0x58040138, 0x58042139, 0x81a41000, 0x58081403, - 0x800810e0, 0x80081540, 0x480a601b, 0x59300013, - 0x80100480, 0x0400101d, 0x8c64cd0e, 0x0400000c, - 0x40101000, 0x41780800, 0x4c000000, 0x59300223, - 0x4c100000, 0x0201f800, 0x00106a98, 0x5c002000, - 0x5c000000, 0x800409c0, 0x04020010, 0x59902808, - 0x59303016, 0x80140480, 0x0400100c, 0x40002800, - 0x80180480, 0x04001009, 0x48026016, 0x8464cd36, - 0x59300014, 0x80100580, 0x04000003, 0x8464cd76, - 0x80000580, 0x1c01f000, 0x82000540, 0x00000001, - 0x1c01f000, 0x59bc00ea, 0x82000500, 0x00000007, - 0x82000580, 0x00000001, 0x02000800, 0x0010032e, - 0x5930080a, 0x5804100c, 0x480bc857, 0x800811c0, - 0x04020003, 0x4930080c, 0x0401f01b, 0x59bc1031, - 0x40081800, 0x800811c0, 0x02000800, 0x0010032e, - 0x5808000a, 0x80040580, 0x04000004, 0x40081800, - 0x58081000, 0x0401f7f8, 0x58082000, 0x49781000, - 0x480a6001, 0x400c0000, 0x80080580, 0x04020006, - 0x49337831, 0x48126000, 0x801021c0, 0x0402000d, - 0x0401f00b, 0x48101800, 0x801021c0, 0x04020002, - 0x480f7830, 0x59bc0831, 0x4807c857, 0x48066000, - 0x49337831, 0x800409c0, 0x04020002, 0x49337830, - 0x1c01f000, 0x4d300000, 0x4d2c0000, 0x0201f800, - 0x00106c3c, 0x598e600f, 0x4933c857, 0x813261c0, - 0x04000049, 0x59c41004, 0x480bc857, 0x8c081500, - 0x0400000a, 0x0201f800, 0x00104fc6, 0x04020015, - 0x0201f800, 0x001050f2, 0x0402003f, 0x0201f800, - 0x001063f8, 0x0401f03c, 0x82080500, 0x000001fe, - 0x040207fb, 0x59c8010b, 0x4803c857, 0x8c000500, - 0x040007f7, 0x42000000, 0x0010cc86, 0x0201f800, - 0x0010bc88, 0x0401fd13, 0x0400087f, 0x0401f02e, - 0x598c0011, 0x80000540, 0x04020011, 0x59c408af, - 0x82040480, 0x000003e8, 0x0402100d, 0x598c0811, - 0x80040800, 0x48071811, 0x0201f800, 0x001063f8, - 0x42000000, 0x0010cb7b, 0x0201f800, 0x0010bc88, - 0x0201f800, 0x00104011, 0x0401f01b, 0x42000000, - 0x0010cc3c, 0x0201f800, 0x0010bc88, 0x0401fc76, - 0x813261c0, 0x04020003, 0x0401f863, 0x0401f012, - 0x59300407, 0x82000580, 0x00000003, 0x04020007, - 0x59325809, 0x812e59c0, 0x04000004, 0x592c0209, - 0x84000550, 0x48025a09, 0x0401f879, 0x4d380000, - 0x42027000, 0x00000014, 0x0201f800, 0x00020bc1, - 0x5c027000, 0x5c025800, 0x5c026000, 0x0201f000, - 0x00106c29, 0x59c40804, 0x83180400, 0x00107291, - 0x50000000, 0x80040500, 0x1c01f000, 0x59c40804, - 0x83180400, 0x00107296, 0x50000000, 0x80040500, - 0x1c01f000, 0x59c80840, 0x82040d00, 0x000e0000, - 0x83180400, 0x001072a0, 0x50000000, 0x80040580, - 0x1c01f000, 0x00000210, 0x00000420, 0x00000840, - 0x00001080, 0x00002100, 0x00004000, 0x00008000, - 0x00010000, 0x00020000, 0x00040000, 0x00080000, - 0x00100000, 0x00200000, 0x00400000, 0x00800000, - 0x00000000, 0x00020000, 0x00040000, 0x00060000, - 0x00080000, 0x59900806, 0x80040120, 0x800c0480, - 0x04021004, 0x82000540, 0x00000001, 0x0401f005, - 0x82040c00, 0x00010000, 0x48072006, 0x80000580, - 0x1c01f000, 0x417a3000, 0x0401ffd7, 0x04000006, - 0x811a3000, 0x83180580, 0x00000005, 0x040207fb, - 0x1c01f000, 0x81780080, 0x1c01f000, 0x40681000, - 0x480bc857, 0x0201f800, 0x00106c3c, 0x4df00000, - 0x598c0800, 0x82040d80, 0x00000007, 0x04000002, - 0x480b1800, 0x5c03e000, 0x02000800, 0x00106c29, - 0x1c01f000, 0x4803c856, 0x0201f800, 0x00106c3c, - 0x4df00000, 0x497b180f, 0x497b1803, 0x497b1810, - 0x497b1811, 0x497b1812, 0x598c0000, 0x82000580, - 0x00000003, 0x04000012, 0x59a80078, 0x8c00053e, - 0x04000007, 0x59bc00e4, 0x8c000534, 0x04000004, - 0x4a031800, 0x00000008, 0x0401f009, 0x836c0580, - 0x00000002, 0x04020004, 0x4a031800, 0x00000005, - 0x0401f003, 0x4a031800, 0x00000000, 0x5c03e000, - 0x02000800, 0x00106c29, 0x1c01f000, 0x59300004, - 0x8c00050c, 0x04020003, 0x4a026203, 0x00000001, - 0x1c01f000, 0x83180480, 0x00000005, 0x02021800, - 0x0010032e, 0x491bc857, 0x811b20c8, 0x83932400, - 0x0000bf32, 0x811ba0ca, 0x83d3a400, 0x00007600, - 0x83180400, 0x00107303, 0x50034800, 0x811a28c2, - 0x83162c00, 0x00006100, 0x1c01f000, 0x0010cab5, - 0x0010cacc, 0x0010cae3, 0x0010cafa, 0x0010cb11, - 0x4933c857, 0x59300407, 0x82000c80, 0x00000014, - 0x04021017, 0x04011000, 0x0c01f001, 0x00107323, - 0x001073ca, 0x00107761, 0x001077bb, 0x001073ca, - 0x00107761, 0x001077bb, 0x00107323, 0x001073ca, - 0x00107323, 0x00107323, 0x00107323, 0x00107323, - 0x00107323, 0x00107323, 0x00107323, 0x0010732a, - 0x0010732a, 0x0010b78c, 0x0010b85b, 0x4803c857, - 0x0201f800, 0x00106c3c, 0x0201f800, 0x00106b8c, - 0x0201f000, 0x00106c29, 0x42001000, 0x0010cb5b, - 0x50081000, 0x4930100b, 0x58080002, 0x82000580, - 0x00000100, 0x0402003e, 0x59325809, 0x812e59c0, - 0x02000800, 0x0010032e, 0x492fc856, 0x5932680a, - 0x813669c0, 0x04000024, 0x592c040c, 0x82000500, - 0x0000e000, 0x04000004, 0x0201f800, 0x0010775a, - 0x0401f003, 0x0201f800, 0x0010774c, 0x592c000e, - 0x82000500, 0x00000003, 0x04000007, 0x82000580, - 0x00000003, 0x80000000, 0x58d00802, 0x80040540, - 0x4801a002, 0x42001000, 0x0010cb5b, 0x50081000, - 0x4930100a, 0x492c1009, 0x82d00400, 0x00000006, - 0x48001003, 0x592c000e, 0x48001005, 0x592c000f, - 0x48001006, 0x592c0010, 0x48001007, 0x0201f000, - 0x00020016, 0x42026800, 0x0010df3c, 0x592c080b, - 0x48066802, 0x82040500, 0x00ffff00, 0x04000007, - 0x497a6a12, 0x59a8100f, 0x82081500, 0x00ffff00, - 0x80080580, 0x040207d1, 0x82040d00, 0x000000ff, - 0x800408d0, 0x48066a12, 0x0401f7cc, 0x1c01f000, - 0x4d2c0000, 0x4d300000, 0x4c580000, 0x4c540000, - 0x4c500000, 0x58325809, 0x812e59c0, 0x02000800, - 0x0010032e, 0x58300002, 0x82000580, 0x00000100, - 0x04020022, 0x5830000a, 0x5832600b, 0x81300d80, - 0x04020012, 0x0401f834, 0x04020016, 0x592c080e, - 0x82040c00, 0x00000003, 0x80040904, 0x4004b000, - 0x4200a000, 0x0010c8a5, 0x4050a800, 0x0201f800, - 0x0010bd85, 0x42001000, 0x0000dc00, 0x0201f800, - 0x00107b6e, 0x0401f007, 0x4803c857, 0x4933c857, - 0x813261c0, 0x04000003, 0x0401f81f, 0x04000f93, - 0x5c00a000, 0x5c00a800, 0x5c00b000, 0x5c026000, - 0x5c025800, 0x1c01f000, 0x5830000a, 0x5832600b, - 0x4a006002, 0x00000100, 0x4803c857, 0x4933c857, - 0x81300d80, 0x040207ed, 0x0401f80f, 0x040207f1, - 0x4803c857, 0x0201f800, 0x0010fece, 0x80c40040, - 0x02020800, 0x0010032e, 0x4a025a07, 0x00000002, - 0x0201f800, 0x000203ef, 0x0201f800, 0x00107cbe, - 0x0401f7e4, 0x0201f800, 0x00106c3c, 0x4df00000, - 0x598c000f, 0x81300580, 0x04020009, 0x598c0005, - 0x81300580, 0x04020006, 0x5c03e000, 0x02000800, - 0x00106c29, 0x80000580, 0x1c01f000, 0x4803c857, - 0x5c03e000, 0x02000800, 0x00106c29, 0x82000540, - 0x00000001, 0x1c01f000, 0x59300403, 0x82000c80, - 0x00000058, 0x02021800, 0x0010032e, 0x4803c857, - 0x0c01f001, 0x00107552, 0x00107570, 0x00107596, - 0x001076bd, 0x0010766c, 0x00107670, 0x0010767f, - 0x00107693, 0x00107688, 0x00107693, 0x001076e3, - 0x00107693, 0x00107727, 0x00107693, 0x00107735, - 0x00107693, 0x00107688, 0x00107693, 0x00107739, - 0x00107431, 0x00107431, 0x00107431, 0x00107431, - 0x00107431, 0x00107431, 0x00107431, 0x00107431, - 0x00107431, 0x00107431, 0x00107431, 0x001077d9, - 0x001077f1, 0x001077fb, 0x00107431, 0x00107814, - 0x0010767f, 0x00107431, 0x0010767f, 0x00107693, - 0x00107431, 0x00107596, 0x001076bd, 0x00107431, - 0x00107864, 0x00107693, 0x00107431, 0x00107874, - 0x00107693, 0x00107431, 0x00107688, 0x00107543, - 0x00107433, 0x00107431, 0x0010788b, 0x001078cb, - 0x00107951, 0x00107431, 0x00107961, 0x0010767d, - 0x00107954, 0x00107431, 0x00107820, 0x001079b0, - 0x00107431, 0x001079e5, 0x00107a39, 0x00107431, - 0x00107448, 0x001074bc, 0x001074c9, 0x00107431, - 0x0010767f, 0x00107431, 0x00107509, 0x00107514, - 0x00107431, 0x00107431, 0x0010745c, 0x0010748f, - 0x00107a79, 0x00107aba, 0x00107ae1, 0x00107431, - 0x00107431, 0x00107431, 0x00107aae, 0x0010797a, - 0x0010788b, 0x00107431, 0x00107431, 0x00107431, - 0x00107431, 0x00107431, 0x00107431, 0x00107431, - 0x00107431, 0x0201f800, 0x0010032e, 0x0401fb19, - 0x59325809, 0x592c000a, 0x4801a006, 0x592c000b, - 0x4801a007, 0x592c000c, 0x4801a008, 0x592c000d, - 0x4801a009, 0x592c000e, 0x4801a00a, 0x4979a00b, - 0x592c080a, 0x82040d00, 0x00000fff, 0x80040904, - 0x42001000, 0x0000dc00, 0x0201f000, 0x00107b6e, - 0x4a026202, 0x0000ffff, 0x0401fb02, 0x4d2c0000, - 0x4a01a006, 0x05000000, 0x59325809, 0x592c000a, - 0x4801a007, 0x592c000b, 0x4801a008, 0x592c000c, - 0x4801a009, 0x5c025800, 0x42000800, 0x00000004, - 0x42001000, 0x0000dc00, 0x0201f000, 0x00107b6e, - 0x4c580000, 0x4c500000, 0x4c540000, 0x4d2c0000, - 0x0401faec, 0x5930040b, 0x82000500, 0x00000003, - 0x04000007, 0x82000580, 0x00000003, 0x80000000, - 0x58d00802, 0x80040540, 0x4801a002, 0x59325809, - 0x4200a800, 0x0010c8a5, 0x592cb206, 0x8258b400, - 0x00000003, 0x8058b104, 0x832ca400, 0x00000007, - 0x0201f800, 0x0010bd5b, 0x40580000, 0x8054ac00, - 0x592c0001, 0x80000540, 0x04000003, 0x40025800, - 0x0401f7f2, 0x4200a000, 0x0010c8a5, 0x4050a800, - 0x5930b40b, 0x8258b400, 0x00000003, 0x8058b104, - 0x40580800, 0x0201f800, 0x0010bd85, 0x42001000, + 0x00000003, 0x42027000, 0x0000004a, 0x0201f800, + 0x00020bc1, 0x59c40004, 0x82000500, 0x00f80000, + 0x04000005, 0x811a3000, 0x83180480, 0x00000005, + 0x040017dc, 0x4a0378e4, 0x00000008, 0x5c022800, + 0x5c034800, 0x5c03a000, 0x5c032000, 0x5c027000, + 0x5c026000, 0x5c023000, 0x0401f668, 0x59300004, + 0x8c000538, 0x04020066, 0x59300222, 0x82000500, + 0x00000003, 0x82000580, 0x00000001, 0x04020060, + 0x42000000, 0x0010cfb7, 0x0201f800, 0x0010bfb3, + 0x0401fe6d, 0x4df00000, 0x4c640000, 0x0401f8a3, + 0x0401fd99, 0x5930c804, 0x8464cd78, 0x59d00011, + 0x59d02012, 0x4803c857, 0x4813c857, 0x0401fbea, + 0x04020041, 0x48166012, 0x4c100000, 0x4c5c0000, + 0x4c600000, 0x4a026203, 0x00000002, 0x592c0a05, + 0x82040d00, 0x000000ff, 0x82040580, 0x00000072, + 0x04020005, 0x4a026203, 0x00000003, 0x592c000e, + 0x80102480, 0x4010b800, 0x4014c000, 0x42000000, + 0x00000001, 0x1201f800, 0x00108e7f, 0x40602800, + 0x5c00c000, 0x5c00b800, 0x5c002000, 0x04000026, + 0x42000000, 0xd0000000, 0x41300800, 0x0201f800, + 0x001008c7, 0x59300008, 0x4c000000, 0x4a026008, + 0x00200000, 0x0201f800, 0x00100f2b, 0x5c000000, + 0x48026008, 0x04020018, 0x8464cd26, 0x592c0209, + 0x8c00051e, 0x0402000c, 0x8464cd4a, 0x50201800, + 0x480e600b, 0x8464cd7e, 0x48666004, 0x0401fbeb, + 0x5c00c800, 0x5c03e000, 0x04000e18, 0x80000580, + 0x1c01f000, 0x8400051e, 0x48025a09, 0x0201f800, + 0x00100ee9, 0x4832600c, 0x4822600d, 0x482a600e, + 0x0401f7ef, 0x42000000, 0x0010cfb8, 0x0201f800, + 0x0010bfb3, 0x4a026203, 0x00000003, 0x49332004, + 0x8464cd7e, 0x48666004, 0x4a032001, 0x00000001, + 0x5c00c800, 0x5c03e000, 0x04000e00, 0x82000540, + 0x00000001, 0x0401f7e7, 0x4d2c0000, 0x4d340000, + 0x5932680a, 0x598c0800, 0x82040580, 0x00000004, + 0x04020006, 0x838c1400, 0x00000005, 0x838c1c00, + 0x00000004, 0x0401f010, 0x82040580, 0x00000001, + 0x04020006, 0x838c1400, 0x00000009, 0x838c1c00, + 0x00000008, 0x0401f008, 0x82040580, 0x00000002, + 0x04020028, 0x838c1400, 0x0000000b, 0x838c1c00, + 0x0000000a, 0x41306800, 0x58340000, 0x80007d40, + 0x04000020, 0x583c000a, 0x81340580, 0x04020006, + 0x403c6800, 0x583c0000, 0x80007d40, 0x040207fa, + 0x0401f018, 0x4933c857, 0x483fc857, 0x583c0000, + 0x48006800, 0x49307800, 0x443c1000, 0x500c0000, + 0x803c0580, 0x04020002, 0x44341800, 0x80000580, + 0x4803180f, 0x48031811, 0x598c0000, 0x82000580, + 0x00000003, 0x04000003, 0x4a031800, 0x00000000, + 0x80000580, 0x5c026800, 0x5c025800, 0x1c01f000, + 0x82000540, 0x00000001, 0x0401f7fb, 0x0401f807, + 0x42018800, 0x00000000, 0x04000003, 0x42018800, + 0x00000001, 0x1c01f000, 0x491bc857, 0x59b400f6, + 0x82000500, 0x00000038, 0x040207fd, 0x59c80840, + 0x82040540, 0x00000010, 0x48039040, 0x59c41008, + 0x4c040000, 0x4c080000, 0x82081500, 0xffffff7f, + 0x480b8808, 0x0401fbf9, 0x04020007, 0x0401fbfd, + 0x04000024, 0x48038804, 0x0201f800, 0x00100eb5, + 0x0401f044, 0x4a038803, 0x00000008, 0x59c40003, + 0x82000500, 0x00000003, 0x040007fd, 0x8c000502, + 0x04020007, 0x0401fbef, 0x04000016, 0x48038804, + 0x0201f800, 0x00100eb5, 0x0401f036, 0x0401fbef, + 0x04020007, 0x59c80040, 0x8400056a, 0x48039040, + 0x59c80040, 0x8c00052a, 0x040207fe, 0x59c40005, + 0x82000500, 0xc0000000, 0x04000006, 0x59c400a3, + 0x84000540, 0x480388a3, 0x4a038805, 0xc0000000, + 0x0201f800, 0x00100e46, 0x4a03a005, 0x30000000, + 0x59d00006, 0x4a03a005, 0x30000000, 0x59900006, + 0x82000500, 0xffff0000, 0x48032006, 0x59d00005, + 0x8c000504, 0x040207fe, 0x42000800, 0x00007600, + 0x83180540, 0x60000000, 0x480008a1, 0x811800dc, + 0x59c80840, 0x80040540, 0x48039040, 0x82000540, + 0x00003000, 0x48039040, 0x59c80040, 0x82000500, + 0x00003000, 0x040207fd, 0x0201f800, 0x00100ea4, + 0x83180400, 0x001074a0, 0x50000000, 0x48038804, + 0x80000580, 0x4df00000, 0x0201f800, 0x00106628, + 0x5c03e000, 0x5c001000, 0x5c000800, 0x480b8808, + 0x48079040, 0x1c01f000, 0x4803c856, 0x59b400f6, + 0x82000500, 0x00000038, 0x040207fd, 0x59c80840, + 0x82040540, 0x00000010, 0x48039040, 0x59c41008, + 0x4c040000, 0x4c080000, 0x82081500, 0xffffff7f, + 0x480b8808, 0x59c40004, 0x82000500, 0x00000003, + 0x04020010, 0x59c40004, 0x82000500, 0x0000000c, + 0x04000005, 0x4a038804, 0x0000000c, 0x8c000504, + 0x0401f025, 0x59c80040, 0x8400056e, 0x48039040, + 0x59c80040, 0x8c00052e, 0x040207fe, 0x0401f01e, + 0x4a038803, 0x00000008, 0x59c40003, 0x82000500, + 0x00000003, 0x040007fd, 0x8c000502, 0x04020006, + 0x59c40004, 0x4a038804, 0x0000000c, 0x8c000504, + 0x0401f011, 0x59c80040, 0x8400056a, 0x48039040, + 0x59c80040, 0x8c00052a, 0x040207fe, 0x59c40005, + 0x82000500, 0xc0000000, 0x04000007, 0x59c400a3, + 0x84000540, 0x480388a3, 0x4a038805, 0xc0000000, + 0x80000580, 0x497b2807, 0x5c001000, 0x5c000800, + 0x480b8808, 0x48079040, 0x1c01f000, 0x0401f807, + 0x42018800, 0x00000001, 0x04000003, 0x42018800, + 0x00000000, 0x1c01f000, 0x5c000000, 0x4c000000, + 0x4803c857, 0x491bc857, 0x4933c857, 0x4d900000, + 0x4dd00000, 0x4da40000, 0x4d140000, 0x0401fd0e, + 0x4df00000, 0x0401fbc1, 0x59900004, 0x800001c0, + 0x04000011, 0x81300580, 0x0402000f, 0x59300004, + 0x84000520, 0x48026004, 0x0401ff3c, 0x04020009, + 0x5c03e000, 0x04000ced, 0x80000580, 0x5c022800, + 0x5c034800, 0x5c03a000, 0x5c032000, 0x1c01f000, + 0x0401fc29, 0x42027000, 0x00000049, 0x59300004, + 0x84000520, 0x48026004, 0x8c00050c, 0x02020800, + 0x00020bc1, 0x5c03e000, 0x04000cdc, 0x82000540, + 0x00000001, 0x5c022800, 0x5c034800, 0x5c03a000, + 0x5c032000, 0x1c01f000, 0x0401f807, 0x42018800, + 0x00000001, 0x04000003, 0x42018800, 0x00000000, + 0x1c01f000, 0x4933c857, 0x0401fcdf, 0x4df00000, + 0x598c000f, 0x80026540, 0x04000012, 0x59300004, + 0x84000520, 0x48026004, 0x0401ff74, 0x04000017, + 0x0401fc25, 0x42027000, 0x00000013, 0x59300004, + 0x8c00050c, 0x02020800, 0x00020bc1, 0x5c03e000, + 0x04000cba, 0x82000540, 0x00000001, 0x1c01f000, + 0x836c1580, 0x00000001, 0x040007f9, 0x836c1580, + 0x00000004, 0x040007f6, 0x42001000, 0x00104131, + 0x0201f800, 0x001064fe, 0x5c03e000, 0x04000cab, + 0x80000580, 0x1c01f000, 0x4d300000, 0x4d180000, + 0x4d3c0000, 0x0401fcb8, 0x4df00000, 0x4a0378e4, + 0x0000000f, 0x0401fb41, 0x417a3000, 0x811808c8, + 0x82040c00, 0x0000bf32, 0x58066004, 0x813261c0, + 0x04000010, 0x417a7800, 0x0201f800, 0x0010493c, + 0x0400000a, 0x59300c07, 0x82040580, 0x00000003, + 0x04000004, 0x82040580, 0x00000006, 0x04020003, + 0x42027800, 0x00000002, 0x0201f800, 0x00109425, + 0x811a3000, 0x83180480, 0x00000005, 0x040017e8, + 0x42000800, 0x00000040, 0x0201f800, 0x001012d2, + 0x4a0378e4, 0x0000000a, 0x5c03e000, 0x04000c7f, + 0x5c027800, 0x5c023000, 0x5c026000, 0x1c01f000, + 0x4803c856, 0x4d300000, 0x0401fc8b, 0x4df00000, + 0x59c80840, 0x84040d74, 0x82040540, 0x00000010, + 0x48039040, 0x59c41008, 0x4c040000, 0x4c080000, + 0x82081500, 0xffffff7f, 0x480b8808, 0x42001000, + 0x00000003, 0x0401fafc, 0x598e600f, 0x813261c0, + 0x04020f99, 0x04000b05, 0x497b2807, 0x0401f809, + 0x5c001000, 0x5c000800, 0x480b8808, 0x48079040, + 0x5c03e000, 0x04000c5d, 0x5c026000, 0x1c01f000, + 0x4d380000, 0x4d180000, 0x4d300000, 0x4d900000, + 0x4dd00000, 0x4da40000, 0x4d140000, 0x417a3000, + 0x0201f800, 0x00106628, 0x811a3000, 0x83180580, + 0x00000005, 0x040207fb, 0x0401fad4, 0x04020009, + 0x5c022800, 0x5c034800, 0x5c03a000, 0x5c032000, + 0x5c026000, 0x5c023000, 0x5c027000, 0x1c01f000, + 0x0401fb0a, 0x59926004, 0x4933c857, 0x0401fe8b, + 0x813261c0, 0x040007f3, 0x42027000, 0x0000004a, + 0x4a026203, 0x00000003, 0x0201f800, 0x00020bc1, + 0x0401f7ec, 0x4d300000, 0x4d180000, 0x4d900000, + 0x0401fc45, 0x42001000, 0x00000000, 0x598c0800, + 0x82040580, 0x00000005, 0x04000003, 0x82040580, + 0x00000008, 0x04000abc, 0x417a3000, 0x811b20c8, + 0x83932400, 0x0000bf32, 0x59900001, 0x82000580, + 0x00000001, 0x0402000d, 0x42000800, 0x00000004, + 0x59926004, 0x59300012, 0x82000500, 0xfff00000, + 0x80000540, 0x04000003, 0x42000800, 0x0000000e, + 0x0201f800, 0x00106604, 0x811a3000, 0x83180480, + 0x00000005, 0x040017ea, 0x59c81040, 0x84081534, + 0x480b9040, 0x0401fc0d, 0x5c032000, 0x5c023000, + 0x5c026000, 0x1c01f000, 0x4933c857, 0x4d900000, + 0x4dd00000, 0x4da40000, 0x4d140000, 0x4d380000, + 0x0401fc15, 0x4df00000, 0x59300004, 0x8c00053e, + 0x04020007, 0x8c000520, 0x04000027, 0x0201f800, + 0x00106d4c, 0x04000024, 0x0401f02d, 0x598c000f, + 0x81300580, 0x04000012, 0x0201f800, 0x00109552, + 0x04020027, 0x0401fa4b, 0x04000025, 0x48038804, + 0x0401fab6, 0x0201f800, 0x00100eb5, 0x0201f800, + 0x00106d71, 0x42027000, 0x00000049, 0x59300004, + 0x8c00050c, 0x0402000e, 0x0401f00f, 0x59c40004, + 0x8c000504, 0x04000016, 0x4a038804, 0x00000004, + 0x0201f800, 0x00106d91, 0x42027000, 0x00000013, + 0x59300004, 0x8c00050c, 0x04000003, 0x0201f800, + 0x00020bc1, 0x5c03e000, 0x02000800, 0x00106e2e, + 0x5c027000, 0x5c022800, 0x5c034800, 0x5c03a000, + 0x5c032000, 0x80000580, 0x1c01f000, 0x5c03e000, + 0x02000800, 0x00106e2e, 0x5c027000, 0x5c022800, + 0x5c034800, 0x5c03a000, 0x5c032000, 0x82000540, + 0x00000001, 0x1c01f000, 0x59300407, 0x82000580, + 0x00000003, 0x04020008, 0x0201f800, 0x0010989f, + 0x04000005, 0x59301009, 0x58080409, 0x84000550, + 0x48001409, 0x1c01f000, 0x497b2807, 0x0201f800, + 0x00106e41, 0x59c400af, 0x800001c0, 0x04020005, + 0x0201f800, 0x00106e2e, 0x0201f000, 0x001014c7, + 0x598c0011, 0x82001480, 0x00000002, 0x04021007, + 0x80000000, 0x48031811, 0x80000580, 0x0201f800, + 0x001065fd, 0x04000011, 0x0401fed3, 0x0402000f, + 0x0401ffde, 0x42000000, 0x0010cf3c, 0x0201f800, + 0x0010bfb3, 0x0401fd9d, 0x04000008, 0x0401fa59, + 0x4d380000, 0x42027000, 0x00000014, 0x0201f800, + 0x00020bc1, 0x5c027000, 0x0201f800, 0x00106e2e, + 0x0201f000, 0x001014c7, 0x4d900000, 0x4dd00000, + 0x4da40000, 0x4d140000, 0x4d300000, 0x0201f800, + 0x00106628, 0x0201f800, 0x00106e41, 0x59c400af, + 0x800001c0, 0x0400002b, 0x0401fa48, 0x59926004, + 0x4933c857, 0x59300004, 0x8c000516, 0x0400000c, + 0x0401fe76, 0x04020023, 0x0201f800, 0x00106d71, + 0x0201f800, 0x00106e2e, 0x42000800, 0x80000804, + 0x0201f800, 0x00020b30, 0x0401f01a, 0x42001800, + 0x00007530, 0x0401f9e9, 0x04020004, 0x0201f800, + 0x00106602, 0x0401f013, 0x0401fe64, 0x04020011, + 0x0401ffa6, 0x42000000, 0x0010cf3d, 0x0201f800, + 0x0010bfb3, 0x59300004, 0x8c00050c, 0x04020003, + 0x4a026203, 0x00000003, 0x4d380000, 0x42027000, + 0x0000004a, 0x0201f800, 0x00020bc1, 0x5c027000, + 0x0201f800, 0x00106e2e, 0x5c026000, 0x5c022800, + 0x5c034800, 0x5c03a000, 0x5c032000, 0x0201f000, + 0x001014c7, 0x4c600000, 0x4d900000, 0x4dd00000, + 0x4da40000, 0x4d140000, 0x4d300000, 0x4d2c0000, + 0x0201f800, 0x00106e41, 0x0401fa0c, 0x59926004, + 0x813261c0, 0x04000091, 0x0201f800, 0x001050f7, + 0x04020007, 0x4178c000, 0x0201f800, 0x00107e4d, + 0x04000003, 0x4200c000, 0x00000001, 0x42000000, + 0x00001000, 0x50000000, 0x82000480, 0x24320001, + 0x04001038, 0x0201f800, 0x00100e46, 0x59303004, + 0x8c183536, 0x0400002f, 0x42003000, 0x00001000, + 0x80183040, 0x04000014, 0x0201f800, 0x0010c0d6, + 0x040007fc, 0x0201f800, 0x0010064a, 0x42003000, + 0x00007a15, 0x50183800, 0x821c0500, 0x00007000, + 0x04000009, 0x4803507a, 0x821c0500, 0xffff8fff, + 0x44003000, 0x4a032832, 0x000004b0, 0x4a0378e4, + 0x02c00000, 0x4a030000, 0x00000000, 0x0201f800, + 0x00100ea4, 0x850e1d2e, 0x42000000, 0x0010cfb5, + 0x0201f800, 0x0010bfb3, 0x59325809, 0x812e59c0, + 0x02000800, 0x0010032e, 0x0401f861, 0x04000057, + 0x59303004, 0x84183536, 0x481a6004, 0x0401f032, + 0x0201f800, 0x00106615, 0x0400002c, 0x0401f04f, + 0x0201f800, 0x00100ea4, 0x8d0e1d2e, 0x040207f9, + 0x0201f800, 0x001050f7, 0x04020006, 0x8060c1c0, + 0x04000004, 0x0201f800, 0x00107e77, 0x0401f043, + 0x0201f800, 0x00106615, 0x04020040, 0x4933c857, + 0x0401f94e, 0x04020019, 0x0201f800, 0x00106628, + 0x813261c0, 0x04000039, 0x59325809, 0x812e59c0, + 0x02000800, 0x0010032e, 0x0201f800, 0x001050f7, + 0x04020022, 0x59c40093, 0x4803c857, 0x800001c0, + 0x0402000a, 0x592c0209, 0x84000550, 0x48025a09, + 0x0201f800, 0x00105223, 0x04020028, 0x592c0209, + 0x84000510, 0x48025a09, 0x0201f800, 0x00106602, + 0x0401f022, 0x42000000, 0x0010cf3d, 0x0201f800, + 0x0010bfb3, 0x0401fd19, 0x592c0209, 0x84000550, + 0x48025a09, 0x4d380000, 0x42027000, 0x0000004a, + 0x4a026203, 0x00000003, 0x0201f800, 0x00020bc1, + 0x5c027000, 0x0401f011, 0x59900006, 0x82000500, + 0xffff0000, 0x040207ec, 0x59c408af, 0x82040480, + 0x000003e8, 0x040217e8, 0x59900006, 0x82000400, + 0x00010000, 0x48032006, 0x0201f800, 0x00106602, + 0x0201f800, 0x0010410a, 0x5c025800, 0x5c026000, + 0x5c022800, 0x5c034800, 0x5c03a000, 0x5c032000, + 0x5c00c000, 0x0201f000, 0x00106e2e, 0x4c5c0000, + 0x4c640000, 0x5930bc07, 0x5930c804, 0x825c0580, + 0x00000003, 0x04000004, 0x825c0580, 0x00000006, + 0x04020031, 0x0201f800, 0x0010493c, 0x0402002e, + 0x8c64cd0e, 0x0402002c, 0x0401fce4, 0x0201f800, + 0x00106d71, 0x825c0580, 0x00000003, 0x04020005, + 0x8c64cd16, 0x0400000c, 0x8464cd36, 0x0401f01b, + 0x82640500, 0x0000001f, 0x82000580, 0x00000005, + 0x04000005, 0x0201f800, 0x00020172, 0x8464cd4a, + 0x0401f7f6, 0x0401f820, 0x04020017, 0x48166012, + 0x0201f800, 0x00100f2b, 0x04020013, 0x8264cd00, + 0xfff7ffdf, 0x592c0209, 0x8c00051e, 0x04020011, + 0x8464cd4a, 0x50201800, 0x480e600b, 0x4832600c, + 0x4822600d, 0x482a600e, 0x8464cd7e, 0x48666004, + 0x0401f842, 0x80000580, 0x5c00c800, 0x5c00b800, + 0x1c01f000, 0x82000540, 0x00000001, 0x0401f7fb, + 0x8400051e, 0x48025a09, 0x0201f800, 0x00100ee9, + 0x0401f7ed, 0x59302013, 0x811808c2, 0x82040c00, + 0x00006000, 0x58040101, 0x82000500, 0xffff0000, + 0x800001c0, 0x0400000b, 0x811808ca, 0x82040c00, + 0x00006000, 0x58040138, 0x58042139, 0x81a41000, + 0x58081403, 0x800810e0, 0x80081540, 0x480a601b, + 0x59300013, 0x80100480, 0x0400101d, 0x8c64cd0e, + 0x0400000c, 0x40101000, 0x41780800, 0x4c000000, + 0x59300223, 0x4c100000, 0x0201f800, 0x00106c9d, + 0x5c002000, 0x5c000000, 0x800409c0, 0x04020010, + 0x59902808, 0x59303016, 0x80140480, 0x0400100c, + 0x40002800, 0x80180480, 0x04001009, 0x48026016, + 0x8464cd36, 0x59300014, 0x80100580, 0x04000003, + 0x8464cd76, 0x80000580, 0x1c01f000, 0x82000540, + 0x00000001, 0x1c01f000, 0x59bc00ea, 0x82000500, + 0x00000007, 0x82000580, 0x00000001, 0x02000800, + 0x0010032e, 0x5930080a, 0x5804100c, 0x480bc857, + 0x800811c0, 0x04020003, 0x4930080c, 0x0401f01b, + 0x59bc1031, 0x40081800, 0x800811c0, 0x02000800, + 0x0010032e, 0x5808000a, 0x80040580, 0x04000004, + 0x40081800, 0x58081000, 0x0401f7f8, 0x58082000, + 0x49781000, 0x480a6001, 0x400c0000, 0x80080580, + 0x04020006, 0x49337831, 0x48126000, 0x801021c0, + 0x0402000d, 0x0401f00b, 0x48101800, 0x801021c0, + 0x04020002, 0x480f7830, 0x59bc0831, 0x4807c857, + 0x48066000, 0x49337831, 0x800409c0, 0x04020002, + 0x49337830, 0x1c01f000, 0x4d300000, 0x4d2c0000, + 0x0201f800, 0x00106e41, 0x598e600f, 0x4933c857, + 0x813261c0, 0x04000049, 0x59c41004, 0x480bc857, + 0x8c081500, 0x0400000a, 0x0201f800, 0x001050f7, + 0x04020015, 0x0201f800, 0x00105223, 0x0402003f, + 0x0201f800, 0x001065fd, 0x0401f03c, 0x82080500, + 0x000001fe, 0x040207fb, 0x59c8010b, 0x4803c857, + 0x8c000500, 0x040007f7, 0x42000000, 0x0010cf86, + 0x0201f800, 0x0010bfb3, 0x0401fd13, 0x0400087f, + 0x0401f02e, 0x598c0011, 0x80000540, 0x04020011, + 0x59c408af, 0x82040480, 0x000003e8, 0x0402100d, + 0x598c0811, 0x80040800, 0x48071811, 0x0201f800, + 0x001065fd, 0x42000000, 0x0010ce7b, 0x0201f800, + 0x0010bfb3, 0x0201f800, 0x0010410a, 0x0401f01b, + 0x42000000, 0x0010cf3c, 0x0201f800, 0x0010bfb3, + 0x0401fc76, 0x813261c0, 0x04020003, 0x0401f863, + 0x0401f012, 0x59300407, 0x82000580, 0x00000003, + 0x04020007, 0x59325809, 0x812e59c0, 0x04000004, + 0x592c0209, 0x84000550, 0x48025a09, 0x0401f879, + 0x4d380000, 0x42027000, 0x00000014, 0x0201f800, + 0x00020bc1, 0x5c027000, 0x5c025800, 0x5c026000, + 0x0201f000, 0x00106e2e, 0x59c40804, 0x83180400, + 0x00107496, 0x50000000, 0x80040500, 0x1c01f000, + 0x59c40804, 0x83180400, 0x0010749b, 0x50000000, + 0x80040500, 0x1c01f000, 0x59c80840, 0x82040d00, + 0x000e0000, 0x83180400, 0x001074a5, 0x50000000, + 0x80040580, 0x1c01f000, 0x00000210, 0x00000420, + 0x00000840, 0x00001080, 0x00002100, 0x00004000, + 0x00008000, 0x00010000, 0x00020000, 0x00040000, + 0x00080000, 0x00100000, 0x00200000, 0x00400000, + 0x00800000, 0x00000000, 0x00020000, 0x00040000, + 0x00060000, 0x00080000, 0x59900806, 0x80040120, + 0x800c0480, 0x04021004, 0x82000540, 0x00000001, + 0x0401f005, 0x82040c00, 0x00010000, 0x48072006, + 0x80000580, 0x1c01f000, 0x417a3000, 0x0401ffd7, + 0x04000006, 0x811a3000, 0x83180580, 0x00000005, + 0x040207fb, 0x1c01f000, 0x81780080, 0x1c01f000, + 0x40681000, 0x480bc857, 0x0201f800, 0x00106e41, + 0x4df00000, 0x598c0800, 0x82040d80, 0x00000007, + 0x04000002, 0x480b1800, 0x5c03e000, 0x02000800, + 0x00106e2e, 0x1c01f000, 0x4803c856, 0x0201f800, + 0x00106e41, 0x4df00000, 0x497b180f, 0x497b1803, + 0x497b1810, 0x497b1811, 0x497b1812, 0x598c0000, + 0x82000580, 0x00000003, 0x04000012, 0x59a80078, + 0x8c00053e, 0x04000007, 0x59bc00e4, 0x8c000534, + 0x04000004, 0x4a031800, 0x00000008, 0x0401f009, + 0x836c0580, 0x00000002, 0x04020004, 0x4a031800, + 0x00000005, 0x0401f003, 0x4a031800, 0x00000000, + 0x5c03e000, 0x02000800, 0x00106e2e, 0x1c01f000, + 0x59300004, 0x8c00050c, 0x04020003, 0x4a026203, + 0x00000001, 0x1c01f000, 0x83180480, 0x00000005, + 0x02021800, 0x0010032e, 0x491bc857, 0x811b20c8, + 0x83932400, 0x0000bf32, 0x811ba0ca, 0x83d3a400, + 0x00007600, 0x83180400, 0x00107508, 0x50034800, + 0x811a28c2, 0x83162c00, 0x00006100, 0x1c01f000, + 0x0010cdb5, 0x0010cdcc, 0x0010cde3, 0x0010cdfa, + 0x0010ce11, 0x4933c857, 0x59300407, 0x82000c80, + 0x00000014, 0x04021017, 0x04011000, 0x0c01f001, + 0x00107528, 0x001075cd, 0x00107957, 0x001079b1, + 0x001075cd, 0x00107957, 0x001079b1, 0x00107528, + 0x001075cd, 0x00107528, 0x00107528, 0x00107528, + 0x00107528, 0x00107528, 0x00107528, 0x00107528, + 0x0010752f, 0x0010752f, 0x0010bab7, 0x0010bb86, + 0x4803c857, 0x0201f800, 0x00106e41, 0x0201f800, + 0x00106d91, 0x0201f000, 0x00106e2e, 0x42001000, + 0x0010ce5b, 0x50081000, 0x4930100b, 0x58080002, + 0x82000580, 0x00000100, 0x0402003c, 0x59325809, + 0x812e59c0, 0x02000800, 0x0010032e, 0x492fc856, + 0x5932680a, 0x83340580, 0x0010e23c, 0x04000023, + 0x592c040c, 0x82000500, 0x0000e000, 0x04000004, + 0x0201f800, 0x00107950, 0x0401f002, 0x0401fbfb, + 0x592c000e, 0x82000500, 0x00000003, 0x04000007, + 0x82000580, 0x00000003, 0x80000000, 0x58d00802, + 0x80040540, 0x4801a002, 0x42001000, 0x0010ce5b, + 0x50081000, 0x4930100a, 0x492c1009, 0x82d00400, + 0x00000006, 0x48001003, 0x592c000e, 0x48001005, + 0x592c000f, 0x48001006, 0x592c0010, 0x48001007, + 0x0201f000, 0x00020016, 0x592c080b, 0x48066802, + 0x82040500, 0x00ffff00, 0x04000007, 0x497a6a12, + 0x59a8100f, 0x82081500, 0x00ffff00, 0x80080580, + 0x040207d4, 0x82040d00, 0x000000ff, 0x800408d0, + 0x48066a12, 0x0401f7cf, 0x1c01f000, 0x4d2c0000, + 0x4d300000, 0x4c580000, 0x4c540000, 0x4c500000, + 0x58325809, 0x812e59c0, 0x02000800, 0x0010032e, + 0x58300002, 0x82000580, 0x00000100, 0x04020022, + 0x5830000a, 0x5832600b, 0x81300d80, 0x04020012, + 0x0401f834, 0x04020016, 0x592c080e, 0x82040c00, + 0x00000003, 0x80040904, 0x4004b000, 0x4200a000, + 0x0010cba5, 0x4050a800, 0x0201f800, 0x0010c0b0, + 0x42001000, 0x0000dc00, 0x0201f800, 0x00107d64, + 0x0401f007, 0x4803c857, 0x4933c857, 0x813261c0, + 0x04000003, 0x0401f81f, 0x04000f95, 0x5c00a000, + 0x5c00a800, 0x5c00b000, 0x5c026000, 0x5c025800, + 0x1c01f000, 0x5830000a, 0x5832600b, 0x4a006002, + 0x00000100, 0x4803c857, 0x4933c857, 0x81300d80, + 0x040207ed, 0x0401f80f, 0x040207f1, 0x4803c857, + 0x0201f800, 0x001101de, 0x80c40040, 0x02020800, + 0x0010032e, 0x4a025a07, 0x00000002, 0x0201f800, + 0x000203ef, 0x0201f800, 0x00107eb4, 0x0401f7e4, + 0x0201f800, 0x00106e41, 0x4df00000, 0x598c000f, + 0x81300580, 0x04020009, 0x598c0005, 0x81300580, + 0x04020006, 0x5c03e000, 0x02000800, 0x00106e2e, + 0x80000580, 0x1c01f000, 0x4803c857, 0x5c03e000, + 0x02000800, 0x00106e2e, 0x82000540, 0x00000001, + 0x1c01f000, 0x59300403, 0x82000c80, 0x00000058, + 0x02021800, 0x0010032e, 0x83340d80, 0x0010e23c, + 0x0402000a, 0x59300827, 0x48066802, 0x82041500, + 0x00ffff00, 0x04020004, 0x800408d0, 0x48066a12, + 0x0401f002, 0x497a6a12, 0x4803c857, 0x0c01f001, + 0x00107761, 0x0010777f, 0x00107791, 0x001078ab, + 0x0010786d, 0x00107871, 0x00107880, 0x00107894, + 0x00107889, 0x00107894, 0x001078d5, 0x00107894, + 0x0010791d, 0x00107894, 0x0010792b, 0x00107894, + 0x00107889, 0x00107894, 0x0010792f, 0x00107640, + 0x00107640, 0x00107640, 0x00107640, 0x00107640, + 0x00107640, 0x00107640, 0x00107640, 0x00107640, + 0x00107640, 0x00107640, 0x001079cf, 0x001079e7, + 0x001079f1, 0x00107640, 0x00107a0a, 0x00107880, + 0x00107640, 0x00107880, 0x00107894, 0x00107640, + 0x00107791, 0x001078ab, 0x00107640, 0x00107a5a, + 0x00107894, 0x00107640, 0x00107a6a, 0x00107894, + 0x00107640, 0x00107889, 0x00107752, 0x00107642, + 0x00107640, 0x00107a81, 0x00107ac1, 0x00107b47, + 0x00107640, 0x00107b57, 0x0010787e, 0x00107b4a, + 0x00107640, 0x00107a16, 0x00107ba6, 0x00107640, + 0x00107bdb, 0x00107c2f, 0x00107640, 0x00107657, + 0x001076cb, 0x001076d8, 0x00107640, 0x00107880, + 0x00107640, 0x00107718, 0x00107723, 0x00107640, + 0x00107640, 0x0010766b, 0x0010769e, 0x00107c6f, + 0x00107cb0, 0x00107cd7, 0x00107640, 0x00107640, + 0x00107640, 0x00107ca4, 0x00107b70, 0x00107a81, + 0x00107640, 0x00107640, 0x00107640, 0x00107640, + 0x00107640, 0x00107640, 0x00107640, 0x00107640, + 0x0201f800, 0x0010032e, 0x0401fb00, 0x59325809, + 0x592c000a, 0x4801a006, 0x592c000b, 0x4801a007, + 0x592c000c, 0x4801a008, 0x592c000d, 0x4801a009, + 0x592c000e, 0x4801a00a, 0x4979a00b, 0x592c080a, + 0x82040d00, 0x00000fff, 0x80040904, 0x42001000, + 0x0000dc00, 0x0201f000, 0x00107d64, 0x4a026202, + 0x0000ffff, 0x0401fae9, 0x4d2c0000, 0x4a01a006, + 0x05000000, 0x59325809, 0x592c000a, 0x4801a007, + 0x592c000b, 0x4801a008, 0x592c000c, 0x4801a009, + 0x5c025800, 0x42000800, 0x00000004, 0x42001000, + 0x0000dc00, 0x0201f000, 0x00107d64, 0x4c580000, + 0x4c500000, 0x4c540000, 0x4d2c0000, 0x0401fad3, + 0x5930040b, 0x82000500, 0x00000003, 0x04000007, + 0x82000580, 0x00000003, 0x80000000, 0x58d00802, + 0x80040540, 0x4801a002, 0x59325809, 0x4200a800, + 0x0010cba5, 0x592cb206, 0x8258b400, 0x00000003, + 0x8058b104, 0x832ca400, 0x00000007, 0x0201f800, + 0x0010c086, 0x40580000, 0x8054ac00, 0x592c0001, + 0x80000540, 0x04000003, 0x40025800, 0x0401f7f2, + 0x4200a000, 0x0010cba5, 0x4050a800, 0x5930b40b, + 0x8258b400, 0x00000003, 0x8058b104, 0x40580800, + 0x0201f800, 0x0010c0b0, 0x42001000, 0x0000dc00, + 0x5c025800, 0x5c00a800, 0x5c00a000, 0x5c00b000, + 0x0201f000, 0x00107d64, 0x4c580000, 0x4c500000, + 0x4c540000, 0x4d2c0000, 0x42034800, 0x0010cb9e, + 0x0401faac, 0x59325809, 0x592c0802, 0x4807c857, + 0x40041000, 0x80040904, 0x82081500, 0x00000003, + 0x04000008, 0x80040800, 0x82081580, 0x00000003, + 0x80081000, 0x58d00002, 0x80080540, 0x4801a002, + 0x4a025806, 0x02000000, 0x82d0ac00, 0x00000006, + 0x592cb011, 0x832ca400, 0x00000006, 0x0201f800, + 0x0010c086, 0x40580000, 0x8054ac00, 0x592e5801, + 0x41780000, 0x812e5d40, 0x040207f6, 0x42001000, 0x0000dc00, 0x5c025800, 0x5c00a800, 0x5c00a000, - 0x5c00b000, 0x0201f000, 0x00107b6e, 0x4c580000, - 0x4c500000, 0x4c540000, 0x4d2c0000, 0x42034800, - 0x0010c89e, 0x0401fac5, 0x59325809, 0x592c0802, - 0x4807c857, 0x40041000, 0x80040904, 0x82081500, - 0x00000003, 0x04000008, 0x80040800, 0x82081580, - 0x00000003, 0x80081000, 0x58d00002, 0x80080540, - 0x4801a002, 0x4a025806, 0x02000000, 0x82d0ac00, - 0x00000006, 0x592cb011, 0x832ca400, 0x00000006, - 0x0201f800, 0x0010bd5b, 0x40580000, 0x8054ac00, - 0x592e5801, 0x41780000, 0x812e5d40, 0x040207f6, - 0x42001000, 0x0000dc00, 0x5c025800, 0x5c00a800, - 0x5c00a000, 0x5c00b000, 0x0201f000, 0x00107b6e, - 0x0401fa90, 0x4a01a006, 0x78000000, 0x5930001d, - 0x840001c0, 0x4801a407, 0x4979a207, 0x42000800, - 0x00000002, 0x42001000, 0x0000dc00, 0x0201f000, - 0x00107b6e, 0x4c580000, 0x4c540000, 0x4c500000, - 0x0401fa8e, 0x4a01a006, 0x02000000, 0x5932481c, - 0x59240001, 0x4801a008, 0x59240002, 0x4801a009, - 0x59240003, 0x4801a00a, 0x59240004, 0x4801a00b, - 0x5930001d, 0x82000d80, 0x0000e000, 0x04000012, - 0x82000d80, 0x0000df00, 0x04000006, 0x4a01a407, - 0x00000010, 0x42000800, 0x00000006, 0x0401f01f, - 0x42001800, 0x0010c846, 0x0201f800, 0x00100533, - 0x42000000, 0x0000df00, 0x4200a000, 0x0010c846, - 0x0401f009, 0x42001800, 0x0010c853, 0x0201f800, - 0x00100533, 0x42000000, 0x0000e000, 0x4200a000, - 0x0010c853, 0x82000540, 0x00000010, 0x4801a407, - 0x4a01a207, 0x00000034, 0x4200b000, 0x0000000d, - 0x82d0ac00, 0x0000000c, 0x0201f800, 0x0010bd5b, - 0x42000800, 0x00000013, 0x42001000, 0x0000dc00, - 0x5c00a000, 0x5c00a800, 0x5c00b000, 0x0201f000, - 0x00107b6e, 0x0401fa43, 0x4a01a006, 0x63000028, - 0x5930001d, 0x4801a007, 0x42000800, 0x00000002, - 0x42001000, 0x0000dc00, 0x0201f000, 0x00107b6e, - 0x0401fa46, 0x41780000, 0x41780800, 0x42002000, - 0x00080000, 0x0c01f81b, 0x80000000, 0x80040800, - 0x42001000, 0x0000000c, 0x59841802, 0x8c0c1d00, - 0x04020008, 0x42002000, 0x00050000, 0x0c01f811, - 0x80000000, 0x80040800, 0x82081400, 0x00000004, - 0x82080540, 0x02000000, 0x4801a006, 0x800408e0, - 0x5930001d, 0x80040540, 0x4801a007, 0x80080904, - 0x42001000, 0x0000dc00, 0x0201f000, 0x00107b6e, - 0x00107539, 0x0010753b, 0x0010753d, 0x0010753f, - 0x00107541, 0x4811a008, 0x1c01f000, 0x4811a009, - 0x1c01f000, 0x4811a00a, 0x1c01f000, 0x4811a00b, - 0x1c01f000, 0x4811a00c, 0x1c01f000, 0x4a02600a, - 0x0010df3c, 0x59a8000f, 0x82000500, 0x000000ff, - 0x800000d0, 0x42026800, 0x0010df3c, 0x48026a12, - 0x0401fa62, 0x41780800, 0x42001000, 0x00005c00, - 0x0201f000, 0x00107b6e, 0x0401f9fa, 0x4a01a006, - 0x52000000, 0x4979a007, 0x5932481c, 0x59240400, - 0x82000500, 0x00000003, 0x04000006, 0x59240400, - 0x80000110, 0x0201f800, 0x001015b2, 0x4805a007, - 0x59240001, 0x4801a008, 0x59240002, 0x4801a009, - 0x59240003, 0x4801a00a, 0x59240004, 0x4801a00b, - 0x59240005, 0x4801a00c, 0x42000800, 0x00000007, - 0x42001000, 0x0000dc00, 0x0201f000, 0x00107b6e, - 0x4a026202, 0x0000ffff, 0x4d340000, 0x813669c0, - 0x04020011, 0x42026800, 0x0010df3c, 0x4936600a, - 0x4a026c03, 0x0000ffff, 0x497a6a00, 0x59300027, - 0x48026802, 0x497a6027, 0x497a6a12, 0x82000d00, - 0x00ffff00, 0x04020004, 0x800000d0, 0x48026a12, - 0x0401f001, 0x0401f9c7, 0x5c026800, 0x4a01a006, - 0x05000000, 0x5932481c, 0x59240005, 0x4801a007, - 0x59240001, 0x59240802, 0x4801a008, 0x4805a009, - 0x42000800, 0x00000004, 0x42001000, 0x0000dc00, - 0x0201f000, 0x00107b6e, 0x4a026202, 0x0000ffff, - 0x0401f9b4, 0x4d3c0000, 0x417a7800, 0x0201f800, - 0x0010488c, 0x5c027800, 0x4a01a006, 0x03000000, - 0x59340403, 0x82000580, 0x000007fe, 0x0402007b, - 0x4a01a006, 0x04000000, 0x81a40800, 0x4a000800, - 0x22fffffe, 0x5934000a, 0x84000500, 0x4802680a, - 0x59a8021b, 0x8c000508, 0x04000010, 0x59a8001f, - 0x4801a007, 0x59a80020, 0x82000500, 0x07deffff, - 0x599c0818, 0x8c040d16, 0x04000002, 0x8400056a, - 0x4801a008, 0x4a01a009, 0x00002710, 0x59a80022, - 0x4801a00a, 0x0401f049, 0x59a8001f, 0x59a8121b, - 0x8c081506, 0x04000003, 0x82000500, 0xffff0000, - 0x4801a007, 0x0201f800, 0x00104fc6, 0x04020013, - 0x59a80878, 0x8c040d3e, 0x04020010, 0x59300c03, - 0x82041580, 0x00000051, 0x0400000c, 0x497b8880, - 0x82000500, 0x0000ffff, 0x4c000000, 0x0201f800, - 0x001015e0, 0x5c000000, 0x48038880, 0x41780800, - 0x0201f800, 0x00101bda, 0x59a80020, 0x0201f800, - 0x00104fc6, 0x04020006, 0x82000500, 0xb7ffffff, - 0x82000540, 0x80000000, 0x0401f003, 0x82000500, - 0x3fffffff, 0x599c0818, 0x8c040d16, 0x04000002, - 0x8400056a, 0x8d0e1d10, 0x04000019, 0x59300c03, - 0x82041580, 0x00000051, 0x04000015, 0x82041580, - 0x00000031, 0x04000012, 0x4c580000, 0x4c500000, - 0x4c540000, 0x4200b000, 0x00000004, 0x4200a000, - 0x0010cccb, 0x82d0ac00, 0x0000001f, 0x4c000000, - 0x0201f800, 0x0010bd5b, 0x5c000000, 0x5c00a800, - 0x5c00a000, 0x5c00b000, 0x8400057a, 0x4801a008, - 0x4979a009, 0x4979a00a, 0x59240001, 0x59240802, - 0x4801a00b, 0x4805a00c, 0x59240003, 0x59240804, - 0x4801a00d, 0x4805a00e, 0x4979a00f, 0x4979a010, - 0x4979a011, 0x4979a012, 0x4979a013, 0x4979a014, - 0x4979a015, 0x4979a016, 0x59a80023, 0x84000576, - 0x4801a017, 0x59a80024, 0x4801a018, 0x4979a019, - 0x4979a01a, 0x0401f049, 0x59a8021b, 0x8c000508, - 0x0400000d, 0x59a8001f, 0x82000500, 0x0000ffff, - 0x59c40880, 0x80040d80, 0x04000007, 0x497b8880, - 0x4c000000, 0x0201f800, 0x001015e0, 0x5c000000, - 0x48038880, 0x59a8001f, 0x4801a007, 0x4c640000, - 0x4d2c0000, 0x59a8c820, 0x0201f800, 0x00109667, - 0x0400000e, 0x0201f800, 0x00109d13, 0x0402000b, - 0x592c0208, 0x8c00050e, 0x04000008, 0x8264cd00, - 0x0000ffff, 0x592c000a, 0x82000500, 0xffff0000, - 0x8064cd40, 0x0401f006, 0x59a80a1b, 0x82040d00, - 0x00000030, 0x04000002, 0x8464cd36, 0x4865a008, - 0x5c025800, 0x5c00c800, 0x59a80021, 0x4801a009, - 0x59a80022, 0x4801a00a, 0x59240001, 0x59240802, - 0x4801a00b, 0x4805a00c, 0x59240003, 0x59240804, - 0x4801a00d, 0x4805a00e, 0x4979a00f, 0x4979a010, - 0x4979a011, 0x4979a012, 0x4979a013, 0x4979a014, - 0x4979a015, 0x4979a016, 0x59a80023, 0x4801a017, - 0x59a80024, 0x4801a018, 0x59a80025, 0x4801a019, - 0x59a80026, 0x4801a01a, 0x42000800, 0x0000001d, - 0x42001000, 0x0000dc00, 0x0201f000, 0x00107b6e, - 0x0401f8e0, 0x4a01a006, 0x50000000, 0x0401f7af, - 0x0401f8dc, 0x4a01a006, 0x21100014, 0x4979a007, - 0x4979a008, 0x4979a009, 0x4979a00a, 0x42000800, + 0x5c00b000, 0x0201f000, 0x00107d64, 0x0401fa77, + 0x4a01a006, 0x78000000, 0x5930001d, 0x840001c0, + 0x4801a407, 0x4979a207, 0x42000800, 0x00000002, + 0x42001000, 0x0000dc00, 0x0201f000, 0x00107d64, + 0x4c580000, 0x4c540000, 0x4c500000, 0x0401fa75, + 0x4a01a006, 0x02000000, 0x5932481c, 0x59240001, + 0x4801a008, 0x59240002, 0x4801a009, 0x59240003, + 0x4801a00a, 0x59240004, 0x4801a00b, 0x5930001d, + 0x82000d80, 0x0000e000, 0x04000012, 0x82000d80, + 0x0000df00, 0x04000006, 0x4a01a407, 0x00000010, + 0x42000800, 0x00000006, 0x0401f01f, 0x42001800, + 0x0010cb46, 0x0201f800, 0x00100533, 0x42000000, + 0x0000df00, 0x4200a000, 0x0010cb46, 0x0401f009, + 0x42001800, 0x0010cb53, 0x0201f800, 0x00100533, + 0x42000000, 0x0000e000, 0x4200a000, 0x0010cb53, + 0x82000540, 0x00000010, 0x4801a407, 0x4a01a207, + 0x00000034, 0x4200b000, 0x0000000d, 0x82d0ac00, + 0x0000000c, 0x0201f800, 0x0010c086, 0x42000800, + 0x00000013, 0x42001000, 0x0000dc00, 0x5c00a000, + 0x5c00a800, 0x5c00b000, 0x0201f000, 0x00107d64, + 0x0401fa2a, 0x4a01a006, 0x63000028, 0x5930001d, + 0x4801a007, 0x42000800, 0x00000002, 0x42001000, + 0x0000dc00, 0x0201f000, 0x00107d64, 0x0401fa2d, + 0x41780000, 0x41780800, 0x42002000, 0x00080000, + 0x0c01f81b, 0x80000000, 0x80040800, 0x42001000, + 0x0000000c, 0x59841802, 0x8c0c1d00, 0x04020008, + 0x42002000, 0x00050000, 0x0c01f811, 0x80000000, + 0x80040800, 0x82081400, 0x00000004, 0x82080540, + 0x02000000, 0x4801a006, 0x800408e0, 0x5930001d, + 0x80040540, 0x4801a007, 0x80080904, 0x42001000, + 0x0000dc00, 0x0201f000, 0x00107d64, 0x00107748, + 0x0010774a, 0x0010774c, 0x0010774e, 0x00107750, + 0x4811a008, 0x1c01f000, 0x4811a009, 0x1c01f000, + 0x4811a00a, 0x1c01f000, 0x4811a00b, 0x1c01f000, + 0x4811a00c, 0x1c01f000, 0x4a02600a, 0x0010e23c, + 0x59a8000f, 0x82000500, 0x000000ff, 0x800000d0, + 0x42026800, 0x0010e23c, 0x48026a12, 0x0401fa49, + 0x41780800, 0x42001000, 0x00005c00, 0x0201f000, + 0x00107d64, 0x0401f9e1, 0x4a01a006, 0x52000000, + 0x4979a007, 0x5932481c, 0x59240400, 0x82000500, + 0x00000003, 0x04000006, 0x59240400, 0x80000110, + 0x0201f800, 0x001015b3, 0x4805a007, 0x59240001, + 0x4801a008, 0x59240002, 0x4801a009, 0x59240003, + 0x4801a00a, 0x59240004, 0x4801a00b, 0x59240005, + 0x4801a00c, 0x42000800, 0x00000007, 0x42001000, + 0x0000dc00, 0x0201f000, 0x00107d64, 0x4a026202, + 0x0000ffff, 0x0401f9c1, 0x4a01a006, 0x05000000, + 0x5932481c, 0x59240005, 0x4801a007, 0x59240001, + 0x59240802, 0x4801a008, 0x4805a009, 0x42000800, + 0x00000004, 0x42001000, 0x0000dc00, 0x0201f000, + 0x00107d64, 0x4a026202, 0x0000ffff, 0x0401f9af, + 0x4d3c0000, 0x417a7800, 0x0201f800, 0x0010498c, + 0x5c027800, 0x4a01a006, 0x03000000, 0x59340403, + 0x82000580, 0x000007fe, 0x04020081, 0x4a01a006, + 0x04000000, 0x59a8021b, 0x8c000506, 0x04000004, + 0x5930081c, 0x58040408, 0x4801a001, 0x81a40800, + 0x4a000800, 0x22fffffe, 0x5934000a, 0x84000500, + 0x4802680a, 0x59a8021b, 0x8c000508, 0x04000010, + 0x59a8001f, 0x4801a007, 0x59a80020, 0x82000500, + 0x07deffff, 0x599c0818, 0x8c040d16, 0x04000002, + 0x8400056a, 0x4801a008, 0x4a01a009, 0x00002710, + 0x59a80022, 0x4801a00a, 0x0401f049, 0x59a8001f, + 0x59a8121b, 0x8c081506, 0x04000003, 0x82000500, + 0xffff0000, 0x4801a007, 0x0201f800, 0x001050f7, + 0x04020013, 0x59a80878, 0x8c040d3e, 0x04020010, + 0x59300c03, 0x82041580, 0x00000051, 0x0400000c, + 0x497b8880, 0x82000500, 0x0000ffff, 0x4c000000, + 0x0201f800, 0x001015e5, 0x5c000000, 0x48038880, + 0x41780800, 0x0201f800, 0x00101bdf, 0x59a80020, + 0x0201f800, 0x001050f7, 0x04020006, 0x82000500, + 0xb7ffffff, 0x82000540, 0x80000000, 0x0401f003, + 0x82000500, 0x3fffffff, 0x599c0818, 0x8c040d16, + 0x04000002, 0x8400056a, 0x8d0e1d10, 0x04000019, + 0x59300c03, 0x82041580, 0x00000051, 0x04000015, + 0x82041580, 0x00000031, 0x04000012, 0x4c580000, + 0x4c500000, 0x4c540000, 0x4200b000, 0x00000004, + 0x4200a000, 0x0010cfcb, 0x82d0ac00, 0x0000001f, + 0x4c000000, 0x0201f800, 0x0010c086, 0x5c000000, + 0x5c00a800, 0x5c00a000, 0x5c00b000, 0x8400057a, + 0x4801a008, 0x4979a009, 0x4979a00a, 0x59240001, + 0x59240802, 0x4801a00b, 0x4805a00c, 0x59240003, + 0x59240804, 0x4801a00d, 0x4805a00e, 0x4979a00f, + 0x4979a010, 0x4979a011, 0x4979a012, 0x4979a013, + 0x4979a014, 0x4979a015, 0x4979a016, 0x59a80023, + 0x84000576, 0x4801a017, 0x59a80024, 0x4801a018, + 0x4979a019, 0x4979a01a, 0x0401f049, 0x59a8021b, + 0x8c000508, 0x0400000d, 0x59a8001f, 0x82000500, + 0x0000ffff, 0x59c40880, 0x80040d80, 0x04000007, + 0x497b8880, 0x4c000000, 0x0201f800, 0x001015e5, + 0x5c000000, 0x48038880, 0x59a8001f, 0x4801a007, + 0x4c640000, 0x4d2c0000, 0x59a8c820, 0x0201f800, + 0x0010989f, 0x0400000e, 0x0201f800, 0x00109f51, + 0x0402000b, 0x592c0208, 0x8c00050e, 0x04000008, + 0x8264cd00, 0x0000ffff, 0x592c000a, 0x82000500, + 0xffff0000, 0x8064cd40, 0x0401f006, 0x59a80a1b, + 0x82040d00, 0x00000030, 0x04000002, 0x8464cd36, + 0x4865a008, 0x5c025800, 0x5c00c800, 0x59a80021, + 0x4801a009, 0x59a80022, 0x4801a00a, 0x59240001, + 0x59240802, 0x4801a00b, 0x4805a00c, 0x59240003, + 0x59240804, 0x4801a00d, 0x4805a00e, 0x4979a00f, + 0x4979a010, 0x4979a011, 0x4979a012, 0x4979a013, + 0x4979a014, 0x4979a015, 0x4979a016, 0x59a80023, + 0x4801a017, 0x59a80024, 0x4801a018, 0x59a80025, + 0x4801a019, 0x59a80026, 0x4801a01a, 0x42000800, + 0x0000001d, 0x42001000, 0x0000dc00, 0x0201f000, + 0x00107d64, 0x0401f8d5, 0x4a01a006, 0x50000000, + 0x0401f7af, 0x0401f8d1, 0x4a01a006, 0x21100014, + 0x4979a007, 0x4979a008, 0x4979a009, 0x4979a00a, + 0x42000800, 0x00000005, 0x42001000, 0x0000dc00, + 0x0201f000, 0x00107d64, 0x0401f8cb, 0x0401f002, + 0x0401f8d0, 0x4a01a006, 0x02000000, 0x42000800, + 0x00000001, 0x42001000, 0x0000dc00, 0x0201f000, + 0x00107d64, 0x0401f8c7, 0x4a01a006, 0x02000000, + 0x59300403, 0x82000580, 0x00000031, 0x04020790, + 0x81a40800, 0x4a000801, 0x00fffffe, 0x0401f71a, + 0x0401f8bc, 0x4a01a006, 0x01000000, 0x5930041b, + 0x80000540, 0x04000003, 0x4801a407, 0x0401f003, + 0x4a01a407, 0x00000003, 0x5930021b, 0x80000540, + 0x04000003, 0x4801a207, 0x0401f003, 0x4a01a207, + 0x00002a00, 0x42000800, 0x00000002, 0x42001000, + 0x0000dc00, 0x0201f000, 0x00107d64, 0x4a026202, + 0x0000ffff, 0x0401f895, 0x4a01a406, 0x00002010, + 0x4a01a206, 0x00000014, 0x4a01a407, 0x00000800, + 0x4a01a207, 0x00002000, 0x42000000, 0x00000400, + 0x59a80807, 0x8c040d0c, 0x04000002, 0x80000580, + 0x5932481c, 0x59240c00, 0x8c040d08, 0x04000005, + 0x82000540, 0x00000020, 0x8c040d0a, 0x04020003, + 0x82000540, 0x00000010, 0x82000540, 0x00000002, + 0x5934080a, 0x8c040d14, 0x04000005, 0x82040d00, + 0x00000380, 0x80040540, 0x0401f006, 0x599c0818, + 0x8c040d18, 0x04000003, 0x82000540, 0x00000380, + 0x0401f042, 0x0401f87b, 0x4a01a406, 0x00000210, + 0x4a01a206, 0x00000014, 0x4a01a407, 0x00000800, + 0x5934000a, 0x8c000516, 0x04000014, 0x59340c05, + 0x82040500, 0x00000030, 0x04000013, 0x59340a05, + 0x82040500, 0x0000c000, 0x04020009, 0x8c040d1a, + 0x04000004, 0x4a01a207, 0x00002100, 0x0401f00c, + 0x4a01a207, 0x00000100, 0x0401f009, 0x4a01a207, + 0x00000400, 0x0401f006, 0x4a01a207, 0x00000700, + 0x0401f003, 0x4a01a207, 0x00000800, 0x42000000, + 0x00000400, 0x59a80807, 0x8c040d0c, 0x04000002, + 0x80000580, 0x5932481c, 0x59240c00, 0x8c040d08, + 0x04000005, 0x82000540, 0x00000020, 0x8c040d0a, + 0x04020003, 0x82000540, 0x00000010, 0x82000540, + 0x00000002, 0x59340a00, 0x8c040d0e, 0x0400000b, + 0x84000550, 0x599c1017, 0x8c08150a, 0x04020004, + 0x8c040d0a, 0x04000002, 0x8400054e, 0x8c040d1c, + 0x04000002, 0x84000552, 0x4801a20a, 0x42000800, 0x00000005, 0x42001000, 0x0000dc00, 0x0201f000, - 0x00107b6e, 0x0401f8d6, 0x0401f002, 0x0401f8db, - 0x4a01a006, 0x02000000, 0x42000800, 0x00000001, - 0x42001000, 0x0000dc00, 0x0201f000, 0x00107b6e, - 0x0401f8d2, 0x4a01a006, 0x02000000, 0x59300403, - 0x82000580, 0x00000031, 0x04020790, 0x81a40800, - 0x4a000801, 0x00fffffe, 0x0401f71a, 0x4d340000, - 0x813669c0, 0x04020010, 0x42026800, 0x0010df3c, - 0x4936600a, 0x4a026c03, 0x0000ffff, 0x497a6a00, - 0x59300027, 0x48026802, 0x497a6027, 0x497a6a12, - 0x82000d00, 0x00ffff00, 0x04020003, 0x800000d0, - 0x48026a12, 0x0401f8b5, 0x5c026800, 0x4a01a006, - 0x01000000, 0x5930041b, 0x80000540, 0x04000003, - 0x4801a407, 0x0401f003, 0x4a01a407, 0x00000003, - 0x5930021b, 0x80000540, 0x04000003, 0x4801a207, - 0x0401f003, 0x4a01a207, 0x00002a00, 0x42000800, - 0x00000002, 0x42001000, 0x0000dc00, 0x0201f000, - 0x00107b6e, 0x4a026202, 0x0000ffff, 0x0401f88d, - 0x4a01a406, 0x00002010, 0x4a01a206, 0x00000014, - 0x4a01a407, 0x00000800, 0x4a01a207, 0x00002000, - 0x42000000, 0x00000400, 0x5932481c, 0x59240c00, - 0x8c040d08, 0x04000005, 0x82000540, 0x00000020, - 0x8c040d0a, 0x04020003, 0x82000540, 0x00000010, - 0x82000540, 0x00000002, 0x5934080a, 0x8c040d14, - 0x04000005, 0x82040d00, 0x00000380, 0x80040540, - 0x0401f006, 0x599c0818, 0x8c040d18, 0x04000003, - 0x82000540, 0x00000380, 0x0401f03e, 0x0401f877, - 0x4a01a406, 0x00000210, 0x4a01a206, 0x00000014, - 0x4a01a407, 0x00000800, 0x5934000a, 0x8c000516, - 0x04000014, 0x59340c05, 0x82040500, 0x00000030, - 0x04000013, 0x59340a05, 0x82040500, 0x0000c000, - 0x04020009, 0x8c040d1a, 0x04000004, 0x4a01a207, - 0x00002100, 0x0401f00c, 0x4a01a207, 0x00000100, - 0x0401f009, 0x4a01a207, 0x00000400, 0x0401f006, - 0x4a01a207, 0x00000700, 0x0401f003, 0x4a01a207, - 0x00000800, 0x42000000, 0x00000400, 0x5932481c, - 0x59240c00, 0x8c040d08, 0x04000005, 0x82000540, - 0x00000020, 0x8c040d0a, 0x04020003, 0x82000540, - 0x00000010, 0x82000540, 0x00000002, 0x59340a00, - 0x8c040d0e, 0x0400000b, 0x84000550, 0x599c1017, - 0x8c08150a, 0x04020004, 0x8c040d0a, 0x04000002, - 0x8400054e, 0x8c040d1c, 0x04000002, 0x84000552, - 0x4801a20a, 0x42000800, 0x00000005, 0x42001000, - 0x0000dc00, 0x0201f000, 0x00107b6e, 0x0401f833, - 0x4a01a006, 0x02100014, 0x4a01a007, 0x00000100, - 0x4979a008, 0x4979a009, 0x4979a00a, 0x42000800, - 0x00000005, 0x42001000, 0x0000dc00, 0x0201f000, - 0x00107b6e, 0x0401f825, 0x4a01a006, 0x02000000, - 0x0401f61d, 0x4933c857, 0x0401f820, 0x4a01a006, - 0x01000000, 0x4a01a407, 0x0000000b, 0x42000800, - 0x00000002, 0x42001000, 0x0000dc00, 0x0201f000, - 0x00107b6e, 0x42005000, 0x32000000, 0x42006000, - 0x08290000, 0x41786800, 0x41787800, 0x0401f3fd, - 0x42005000, 0x22000000, 0x42006000, 0x01290000, - 0x41786800, 0x41787800, 0x0401f3f6, 0x42005000, - 0x33000000, 0x42006000, 0x08980000, 0x41786800, - 0x41787800, 0x0401f3ef, 0x42005000, 0x23000000, - 0x42006000, 0x01980000, 0x41786800, 0x41787800, - 0x0401f3e8, 0x59300403, 0x82000c80, 0x00000085, - 0x02001800, 0x0010032e, 0x82000c80, 0x00000093, - 0x02021800, 0x0010032e, 0x82000480, 0x00000085, - 0x0c01f001, 0x0010777b, 0x0010777b, 0x0010777b, - 0x0010777b, 0x0010777b, 0x0010777b, 0x0010777b, - 0x0010777b, 0x0010777b, 0x0010777b, 0x0010777b, - 0x0010777b, 0x0010777b, 0x0010777d, 0x0201f800, - 0x0010032e, 0x4d2c0000, 0x59325809, 0x4933c857, - 0x492fc857, 0x812e59c0, 0x02000800, 0x0010032e, - 0x59340a12, 0x82040d00, 0x0000ff00, 0x592c000b, - 0x82000500, 0x000000ff, 0x900001c0, 0x80040540, - 0x82000540, 0x00000011, 0x44034800, 0x81a5a000, - 0x42001000, 0x00000009, 0x42000800, 0x00000003, - 0x592c000a, 0x82000500, 0xff000000, 0x82001d80, - 0x84000000, 0x04000009, 0x82001d80, 0x85000000, - 0x02020800, 0x0010032e, 0x42001000, 0x00000007, - 0x42000800, 0x00000001, 0x832c1c00, 0x0000000a, - 0x500c0000, 0x4401a000, 0x800c1800, 0x80d1a000, - 0x80081040, 0x040207fb, 0x42001000, 0x0000dc00, - 0x5c025800, 0x0401f3c1, 0x42005000, 0x81000000, - 0x42006000, 0x00090000, 0x41786800, 0x41787800, - 0x59301407, 0x82081580, 0x00000005, 0x04020003, - 0x42006000, 0x00890000, 0x0401f38e, 0x59300403, - 0x82000c80, 0x00000053, 0x02021800, 0x0010032e, - 0x82000480, 0x0000004b, 0x02001800, 0x0010032e, - 0x5932680a, 0x59368c03, 0x4803c857, 0x0c01f001, - 0x0010783b, 0x00107843, 0x0010784b, 0x00107853, - 0x001077d0, 0x001077d0, 0x001077d0, 0x00107833, - 0x0201f800, 0x0010032e, 0x42005000, 0x06000000, - 0x42006000, 0x08290000, 0x41786800, 0x41787800, - 0x0401f370, 0x4933c857, 0x0401ff72, 0x4a01a006, - 0x12000000, 0x59300407, 0x82000580, 0x00000004, - 0x04020003, 0x59340002, 0x0401f003, 0x5932481c, - 0x59240005, 0x82000500, 0x00ffffff, 0x4801a007, + 0x00107d64, 0x0401f833, 0x4a01a006, 0x02100014, + 0x4a01a007, 0x00000100, 0x4979a008, 0x4979a009, + 0x4979a00a, 0x42000800, 0x00000005, 0x42001000, + 0x0000dc00, 0x0201f000, 0x00107d64, 0x0401f825, + 0x4a01a006, 0x02000000, 0x0401f636, 0x4933c857, + 0x0401f820, 0x4a01a006, 0x01000000, 0x4a01a407, + 0x0000000b, 0x42000800, 0x00000002, 0x42001000, + 0x0000dc00, 0x0201f000, 0x00107d64, 0x42005000, + 0x32000000, 0x42006000, 0x08290000, 0x41786800, + 0x41787800, 0x0401f3fd, 0x42005000, 0x22000000, + 0x42006000, 0x01290000, 0x41786800, 0x41787800, + 0x0401f3f6, 0x42005000, 0x33000000, 0x42006000, + 0x08980000, 0x41786800, 0x41787800, 0x0401f3ef, + 0x42005000, 0x23000000, 0x42006000, 0x01980000, + 0x41786800, 0x41787800, 0x0401f3e8, 0x59300403, + 0x82000c80, 0x00000085, 0x02001800, 0x0010032e, + 0x82000c80, 0x00000093, 0x02021800, 0x0010032e, + 0x82000480, 0x00000085, 0x0c01f001, 0x00107971, + 0x00107971, 0x00107971, 0x00107971, 0x00107971, + 0x00107971, 0x00107971, 0x00107971, 0x00107971, + 0x00107971, 0x00107971, 0x00107971, 0x00107971, + 0x00107973, 0x0201f800, 0x0010032e, 0x4d2c0000, + 0x59325809, 0x4933c857, 0x492fc857, 0x812e59c0, + 0x02000800, 0x0010032e, 0x59340a12, 0x82040d00, + 0x0000ff00, 0x592c000b, 0x82000500, 0x000000ff, + 0x900001c0, 0x80040540, 0x82000540, 0x00000011, + 0x44034800, 0x81a5a000, 0x42001000, 0x00000009, + 0x42000800, 0x00000003, 0x592c000a, 0x82000500, + 0xff000000, 0x82001d80, 0x84000000, 0x04000009, + 0x82001d80, 0x85000000, 0x02020800, 0x0010032e, + 0x42001000, 0x00000007, 0x42000800, 0x00000001, + 0x832c1c00, 0x0000000a, 0x500c0000, 0x4401a000, + 0x800c1800, 0x80d1a000, 0x80081040, 0x040207fb, + 0x42001000, 0x0000dc00, 0x5c025800, 0x0401f3c1, + 0x42005000, 0x81000000, 0x42006000, 0x00090000, + 0x41786800, 0x41787800, 0x59301407, 0x82081580, + 0x00000005, 0x04020003, 0x42006000, 0x00890000, + 0x0401f38e, 0x59300403, 0x82000c80, 0x00000053, + 0x02021800, 0x0010032e, 0x82000480, 0x0000004b, + 0x02001800, 0x0010032e, 0x5932680a, 0x59368c03, + 0x4803c857, 0x0c01f001, 0x00107a31, 0x00107a39, + 0x00107a41, 0x00107a49, 0x001079c6, 0x001079c6, + 0x001079c6, 0x00107a29, 0x0201f800, 0x0010032e, + 0x42005000, 0x06000000, 0x42006000, 0x08290000, + 0x41786800, 0x41787800, 0x0401f370, 0x4933c857, + 0x0401ff72, 0x4a01a006, 0x12000000, 0x59300407, + 0x82000580, 0x00000004, 0x04020003, 0x59340002, + 0x0401f003, 0x5932481c, 0x59240005, 0x82000500, + 0x00ffffff, 0x4801a007, 0x5930041a, 0x4801a408, + 0x5930021a, 0x4801a208, 0x42000800, 0x00000003, + 0x42001000, 0x0000dc00, 0x0401f37e, 0x0401ff5b, + 0x4a01a006, 0x0f000000, 0x5930001d, 0x4801a007, + 0x42000800, 0x00000002, 0x42001000, 0x0000dc00, + 0x0401f374, 0x0401ff5f, 0x4a01a006, 0x02000000, + 0x59c40085, 0x59880804, 0x80040c00, 0x48071004, + 0x497b8885, 0x59880000, 0x4801a007, 0x59880001, + 0x4801a008, 0x59880002, 0x4801a009, 0x59880003, + 0x4801a00a, 0x59880004, 0x4801a00b, 0x59880005, + 0x4801a00c, 0x42000800, 0x00000007, 0x42001000, + 0x0000dc00, 0x0401f35b, 0x4a026202, 0x0000ffff, + 0x0401ff36, 0x4a01a006, 0x62000000, 0x5930001d, + 0x4801a007, 0x42000800, 0x00000002, 0x42001000, + 0x0000dc00, 0x0401f34f, 0x0401ff2c, 0x59300809, + 0x4c500000, 0x4c540000, 0x4c580000, 0x8204a400, + 0x0000000b, 0x5930b01d, 0x82d0ac00, 0x00000006, + 0x0201f800, 0x0010c086, 0x5930081d, 0x42001000, + 0x0000dc00, 0x5c00b000, 0x5c00a800, 0x5c00a000, + 0x0401f33c, 0x0401ff9f, 0x59300018, 0x4801a006, + 0x59300019, 0x4801a007, 0x4a01a008, 0x00001000, + 0x0401f020, 0x0401ff97, 0x59300018, 0x4801a006, + 0x59300019, 0x4801a007, 0x4a01a008, 0x00004000, + 0x0401f018, 0x0401ff8f, 0x59300018, 0x4801a006, + 0x59300019, 0x4801a007, 0x4a01a008, 0x00002000, + 0x0401f010, 0x0401ff87, 0x59300018, 0x4801a006, + 0x59300019, 0x4801a007, 0x4a01a008, 0x00000400, + 0x0401f008, 0x0401ff7f, 0x59300018, 0x4801a006, + 0x59300019, 0x4801a007, 0x4a01a008, 0x00000200, + 0x4979a009, 0x4979a00a, 0x4979a00b, 0x4979a00c, + 0x4979a00d, 0x42000800, 0x00000008, 0x42001000, + 0x0000dc00, 0x0401f30b, 0x0401fef6, 0x4a01a006, + 0x02000014, 0x4979a407, 0x4979a207, 0x59a8002d, + 0x4801a008, 0x59a8002e, 0x4801a009, 0x4a01a00a, + 0x00047878, 0x42000800, 0x00000005, 0x42001000, + 0x0000dc00, 0x0401f2fb, 0x0401fee6, 0x4a01a006, + 0x02140018, 0x4a01a407, 0x00000800, 0x5930001d, + 0x82000d00, 0xff000000, 0x900409c0, 0x4805a207, + 0x82000500, 0x00ffffff, 0x4801a00a, 0x4979a408, + 0x4979a208, 0x4979a409, 0x4979a209, 0x4979a00b, + 0x42000800, 0x00000006, 0x42001000, 0x0000dc00, + 0x0401f2e4, 0x4933c857, 0x4937c857, 0x4d1c0000, + 0x42000800, 0x00000035, 0x0201f800, 0x00109c9c, + 0x04020026, 0x0401feb9, 0x4a01a006, 0x13000000, + 0x59323827, 0x59300403, 0x82000580, 0x00000057, + 0x04000005, 0x591c0415, 0x8c000502, 0x02000800, + 0x0010032e, 0x591c001a, 0x4801a005, 0x591c0407, + 0x82000580, 0x00000003, 0x04000007, 0x5930080a, + 0x58040002, 0x82000500, 0x00ffffff, 0x4801a007, + 0x0401f004, 0x5932481c, 0x59240005, 0x4801a007, 0x5930041a, 0x4801a408, 0x5930021a, 0x4801a208, 0x42000800, 0x00000003, 0x42001000, 0x0000dc00, - 0x0401f37e, 0x0401ff5b, 0x4a01a006, 0x0f000000, - 0x5930001d, 0x4801a007, 0x42000800, 0x00000002, - 0x42001000, 0x0000dc00, 0x0401f374, 0x0401ff5f, - 0x4a01a006, 0x02000000, 0x59c40085, 0x59880804, - 0x80040c00, 0x48071004, 0x497b8885, 0x59880000, - 0x4801a007, 0x59880001, 0x4801a008, 0x59880002, - 0x4801a009, 0x59880003, 0x4801a00a, 0x59880004, - 0x4801a00b, 0x59880005, 0x4801a00c, 0x42000800, - 0x00000007, 0x42001000, 0x0000dc00, 0x0401f35b, - 0x4a026202, 0x0000ffff, 0x0401ff36, 0x4a01a006, - 0x62000000, 0x5930001d, 0x4801a007, 0x42000800, - 0x00000002, 0x42001000, 0x0000dc00, 0x0401f34f, - 0x0401ff2c, 0x59300809, 0x4c500000, 0x4c540000, - 0x4c580000, 0x8204a400, 0x0000000b, 0x5930b01d, - 0x82d0ac00, 0x00000006, 0x0201f800, 0x0010bd5b, - 0x5930081d, 0x42001000, 0x0000dc00, 0x5c00b000, - 0x5c00a800, 0x5c00a000, 0x0401f33c, 0x0401ff9f, - 0x59300018, 0x4801a006, 0x59300019, 0x4801a007, - 0x4a01a008, 0x00001000, 0x0401f020, 0x0401ff97, - 0x59300018, 0x4801a006, 0x59300019, 0x4801a007, - 0x4a01a008, 0x00004000, 0x0401f018, 0x0401ff8f, - 0x59300018, 0x4801a006, 0x59300019, 0x4801a007, - 0x4a01a008, 0x00002000, 0x0401f010, 0x0401ff87, - 0x59300018, 0x4801a006, 0x59300019, 0x4801a007, - 0x4a01a008, 0x00000400, 0x0401f008, 0x0401ff7f, - 0x59300018, 0x4801a006, 0x59300019, 0x4801a007, - 0x4a01a008, 0x00000200, 0x4979a009, 0x4979a00a, - 0x4979a00b, 0x4979a00c, 0x4979a00d, 0x42000800, - 0x00000008, 0x42001000, 0x0000dc00, 0x0401f30b, - 0x0401fef6, 0x4a01a006, 0x02000014, 0x4979a407, - 0x4979a207, 0x59a8002d, 0x4801a008, 0x59a8002e, - 0x4801a009, 0x4a01a00a, 0x00047878, 0x42000800, - 0x00000005, 0x42001000, 0x0000dc00, 0x0401f2fb, - 0x0401fee6, 0x4a01a006, 0x02140018, 0x4a01a407, - 0x00000800, 0x5930001d, 0x82000d00, 0xff000000, - 0x900409c0, 0x4805a207, 0x82000500, 0x00ffffff, - 0x4801a00a, 0x4979a408, 0x4979a208, 0x4979a409, - 0x4979a209, 0x4979a00b, 0x42000800, 0x00000006, - 0x42001000, 0x0000dc00, 0x0401f2e4, 0x4933c857, - 0x4937c857, 0x4d1c0000, 0x42000800, 0x00000035, - 0x0201f800, 0x00109a64, 0x04020026, 0x0401feb9, - 0x4a01a006, 0x13000000, 0x59323827, 0x59300403, - 0x82000580, 0x00000057, 0x04000005, 0x591c0415, - 0x8c000502, 0x02000800, 0x0010032e, 0x591c001a, - 0x4801a005, 0x591c0407, 0x82000580, 0x00000003, - 0x04000007, 0x5930080a, 0x58040002, 0x82000500, - 0x00ffffff, 0x4801a007, 0x0401f004, 0x5932481c, - 0x59240005, 0x4801a007, 0x5930041a, 0x4801a408, - 0x5930021a, 0x4801a208, 0x42000800, 0x00000003, - 0x42001000, 0x0000dc00, 0x5c023800, 0x0401f2b7, - 0x4803c856, 0x0201f800, 0x00106c3c, 0x598c000f, - 0x81300580, 0x02020800, 0x0010032e, 0x0201f800, - 0x00106b8c, 0x59300403, 0x82000580, 0x00000057, - 0x02000800, 0x001084a2, 0x0201f800, 0x00020b9d, - 0x5c023800, 0x0201f000, 0x00106c29, 0x4803c856, - 0x4d2c0000, 0x4d1c0000, 0x59323827, 0x811e39c0, - 0x02000800, 0x0010032e, 0x831c0580, 0xffffffff, - 0x0400003d, 0x591c0c07, 0x82040580, 0x00000006, - 0x0400000d, 0x82040580, 0x00000003, 0x0400003b, - 0x4a026403, 0x00000037, 0x4a02641b, 0x00000003, - 0x4a02621b, 0x00001700, 0x5c023800, 0x5c025800, - 0x0401f06d, 0x0401f850, 0x42001000, 0x40000000, - 0x591c0203, 0x591c0804, 0x8c040d3e, 0x04020023, - 0x82000c80, 0x0000000e, 0x0c001003, 0x0201f800, - 0x0010032e, 0x00107902, 0x0010790e, 0x00107904, - 0x0010790e, 0x0010790a, 0x00107902, 0x00107902, - 0x0010790e, 0x0010790e, 0x00107902, 0x00107902, - 0x00107902, 0x00107902, 0x00107902, 0x0010790e, - 0x00107902, 0x0010790e, 0x0201f800, 0x0010032e, - 0x591c0415, 0x4803c857, 0x8c000518, 0x04000003, - 0x8c000512, 0x04000003, 0x80001580, 0x0401f003, - 0x42001000, 0x20000000, 0x591c0016, 0x4801a00a, - 0x0401f01d, 0x0401f824, 0x42001000, 0x40000000, - 0x41780000, 0x0401f7fa, 0x0401f81f, 0x591e5809, - 0x812e59c0, 0x02000800, 0x0010032e, 0x592c1010, - 0x591c0012, 0x80080480, 0x4801a00a, 0x591c0203, - 0x591c0804, 0x8c040d3e, 0x04020007, 0x82000d80, - 0x00000002, 0x04000007, 0x82000d80, 0x00000004, - 0x04000004, 0x42001000, 0x40000000, 0x0401f002, - 0x80001580, 0x4809a00b, 0x42000800, 0x00000006, - 0x42001000, 0x0000dc00, 0x5c023800, 0x5c025800, - 0x0401f23a, 0x4803c856, 0x0401fe24, 0x4a01a006, - 0x02000000, 0x59300c1a, 0x4805a407, 0x59300a1a, - 0x4805a207, 0x5932481c, 0x59241005, 0x5930080a, - 0x58041802, 0x820c1d00, 0x00ffffff, 0x59300827, - 0x82040580, 0xffffffff, 0x04000008, 0x58040407, - 0x82000580, 0x00000003, 0x04020004, 0x4809a008, - 0x480da009, 0x0401f003, 0x480da008, 0x4809a009, - 0x1c01f000, 0x4803c856, 0x0401fe08, 0x0401f003, - 0x4803c856, 0x0401fdfe, 0x4a01a006, 0x01000000, - 0x5930041b, 0x4801a407, 0x5930021b, 0x4801a207, - 0x42000800, 0x00000002, 0x42001000, 0x0000dc00, - 0x0401f20e, 0x4803c856, 0x4d1c0000, 0x0401fde2, - 0x4a01a006, 0x14000000, 0x59323827, 0x591c001a, - 0x4801a005, 0x5930041a, 0x4801a407, 0x5930021a, - 0x4801a207, 0x59300016, 0x4801a008, 0x59300217, - 0x82000500, 0x000000ff, 0x840001c0, 0x4801a409, - 0x42000800, 0x00000004, 0x42001000, 0x0000dc00, - 0x5c023800, 0x0401f1f5, 0x4803c856, 0x0401fddf, - 0x4a01a006, 0x02000001, 0x42001000, 0xe0000000, - 0x59a80878, 0x8c040d3e, 0x04000004, 0x42001000, - 0x20000000, 0x0401f010, 0x59a80070, 0x8c000508, - 0x04000004, 0x82081500, 0xdfffffff, 0x0401f00a, - 0x59a80847, 0x82040d80, 0x01391077, 0x04020006, - 0x59e00813, 0x8c040d00, 0x04000003, 0x82081500, - 0xdfffffff, 0x59c40801, 0x82040d00, 0x00018000, - 0x82040580, 0x00000000, 0x42000000, 0x00008000, - 0x0400000d, 0x82040580, 0x00008000, 0x42000000, - 0x00004000, 0x04000008, 0x82040580, 0x00010000, - 0x42000000, 0x00002000, 0x04000003, 0x42000000, - 0x00000002, 0x80080540, 0x4801a007, 0x42000800, - 0x00000002, 0x42001000, 0x0000dc00, 0x0401f1bf, - 0x4803c856, 0x0401f80b, 0x5930041b, 0x900001c0, - 0x4801a005, 0x0401f9f6, 0x41780800, 0x42001000, - 0x00005c00, 0x0401f9b5, 0x0201f000, 0x001063f8, - 0x4803c856, 0x59300818, 0x82041c00, 0x00000006, - 0x46034800, 0x00000021, 0x58040405, 0x82000500, - 0x0000f000, 0x82000580, 0x00003000, 0x04000003, - 0x46034800, 0x00000041, 0x81a5a000, 0x580c0001, - 0x82000d00, 0x00ffffff, 0x82040d40, 0xc2000000, - 0x4805a000, 0x580c0800, 0x82041500, 0x00ffffff, - 0x82000500, 0xff000000, 0x80080540, 0x4801a001, - 0x580c0002, 0x82000580, 0x00c00000, 0x82000500, - 0x00fd0300, 0x4801a002, 0x580c0003, 0x4801a003, - 0x580c0404, 0x4801a404, 0x580c0204, 0x4801a204, - 0x1c01f000, 0x4803c856, 0x59a8021b, 0x82000500, - 0x00000028, 0x04020009, 0x59a8021b, 0x82000500, - 0x00000028, 0x04000003, 0x497a6a12, 0x0401f003, - 0x4a026a12, 0x0000ff00, 0x42005000, 0x22000000, - 0x42006000, 0x01380000, 0x41786800, 0x41787800, - 0x0401f950, 0x59301009, 0x4a01a006, 0x54000000, - 0x5932481c, 0x59240005, 0x82000500, 0x00ffffff, - 0x58080c0b, 0x800408f0, 0x80040540, 0x4801a007, - 0x5808000b, 0x82000500, 0xff000000, 0x4801a008, - 0x59a80002, 0x4801a009, 0x59a80003, 0x4801a00a, - 0x59a80000, 0x4801a00b, 0x59a80001, 0x4801a00c, - 0x5808000d, 0x9c0001c0, 0x4801a00d, 0x5808000e, - 0x9c0001c0, 0x4801a00e, 0x5808000f, 0x9c0001c0, - 0x4801a00f, 0x58080010, 0x9c0001c0, 0x4801a010, - 0x58080011, 0x9c0001c0, 0x4801a011, 0x58080012, - 0x9c0001c0, 0x4801a012, 0x58080013, 0x9c0001c0, - 0x4801a013, 0x58080014, 0x9c0001c0, 0x4801a014, - 0x58080011, 0x9c0001c0, 0x4801a015, 0x58080012, - 0x9c0001c0, 0x4801a016, 0x58080013, 0x9c0001c0, - 0x4801a017, 0x58080014, 0x9c0001c0, 0x4801a018, - 0x42000800, 0x00000013, 0x42001000, 0x0000dc00, - 0x0401f136, 0x4803c856, 0x42005000, 0x22000000, - 0x42006000, 0x01290000, 0x41786800, 0x41787800, - 0x0401f908, 0x59301009, 0x4a01a006, 0x55000000, - 0x5808000c, 0x82000500, 0x00ffffff, 0x58080c0b, - 0x800408f0, 0x80040540, 0x4801a007, 0x5808080b, - 0x82040d00, 0xff000000, 0x5932481c, 0x59240005, - 0x82000500, 0x00ffffff, 0x80040540, 0x4801a008, - 0x5808000d, 0x9c0001c0, 0x4801a009, 0x5808000e, - 0x9c0001c0, 0x4801a00a, 0x5808000f, 0x9c0001c0, - 0x4801a00b, 0x58080010, 0x9c0001c0, 0x4801a00c, - 0x59a80002, 0x4801a00d, 0x59a80003, 0x4801a00e, - 0x59a80000, 0x4801a00f, 0x59a80001, 0x4801a010, - 0x58080011, 0x4801a011, 0x58080012, 0x4801a012, - 0x58080013, 0x4801a013, 0x58080014, 0x4801a014, - 0x4979a015, 0x4979a016, 0x4979a017, 0x4979a018, - 0x42000800, 0x00000013, 0x42001000, 0x0000dc00, - 0x0401f0f6, 0x0401fce1, 0x5930001d, 0x800001c0, - 0x04000008, 0x4a01a006, 0x01000000, 0x4a01a407, - 0x00000003, 0x42000800, 0x00000002, 0x0401f028, - 0x4a01a006, 0x02000000, 0x41780800, 0x836c0580, - 0x00000004, 0x04020003, 0x84040d42, 0x0401f00d, - 0x0201f800, 0x00104fc6, 0x04020003, 0x84040d4a, - 0x0401f002, 0x84040d48, 0x59a8021b, 0x8c000506, - 0x04020003, 0x8c00050a, 0x04000002, 0x84040d46, - 0x4805a207, 0x59c40085, 0x48031004, 0x4c580000, - 0x4c500000, 0x4c540000, 0x4200b000, 0x00000006, - 0x8388a400, 0x00000000, 0x82d0ac00, 0x00000008, - 0x0201f800, 0x0010bd5b, 0x5c00a800, 0x5c00a000, - 0x5c00b000, 0x42000800, 0x00000008, 0x42001000, - 0x0000dc00, 0x0401f0c1, 0x0401fc9e, 0x4a01a006, - 0x56000000, 0x59340006, 0x4801a007, 0x59340007, - 0x4801a008, 0x42000800, 0x00000003, 0x42001000, - 0x0000dc00, 0x0401f0b5, 0x4803c856, 0x0401fc9f, - 0x5930081d, 0x800409c0, 0x0400000e, 0x82040580, - 0x0000ffff, 0x04000004, 0x82040480, 0x00000007, - 0x04021008, 0x4a01a006, 0x01000000, 0x4a01a407, - 0x00000003, 0x42000800, 0x00000002, 0x0401f013, - 0x4a01a006, 0x0200001c, 0x4a01a007, 0x00000001, - 0x42001000, 0x0010c84b, 0x50080000, 0x9c0001c0, - 0x4801a009, 0x5932481c, 0x59240005, 0x4801a00a, - 0x59240001, 0x59240802, 0x4801a00b, 0x4805a00c, - 0x42000800, 0x00000007, 0x42001000, 0x0000dc00, - 0x0401f08e, 0x4d2c0000, 0x0401fc6a, 0x59325809, - 0x812e59c0, 0x04020003, 0x4979a001, 0x0401f005, - 0x592c0009, 0x82000500, 0x00ffffff, 0x4801a001, - 0x4a01a006, 0x51000000, 0x5c025800, 0x0201f000, - 0x001075ac, 0x4803c856, 0x59325809, 0x5932680a, - 0x59300407, 0x4803c857, 0x82000d80, 0x00000009, - 0x0400000a, 0x82000d80, 0x0000000a, 0x04000032, - 0x82000d80, 0x00000012, 0x02000000, 0x0010b89c, - 0x0201f800, 0x0010032e, 0x59300016, 0x8c00051e, - 0x04020020, 0x42005000, 0x04000000, 0x42006000, - 0x05000000, 0x592c040b, 0x82000500, 0x00000030, - 0x800000e0, 0x80306540, 0x5934000a, 0x8c000508, - 0x04000002, 0x84306546, 0x41786800, 0x41787800, - 0x0401f831, 0x59300c17, 0x80040000, 0x48026417, - 0x40040000, 0x800000d0, 0x82000540, 0x00000020, - 0x4801a403, 0x83180d40, 0x00000038, 0x42001000, - 0x0000c920, 0x0401f86c, 0x0201f000, 0x001063fd, + 0x5c023800, 0x0401f2b7, 0x4803c856, 0x0201f800, + 0x00106e41, 0x598c000f, 0x81300580, 0x02020800, + 0x0010032e, 0x0201f800, 0x00106d91, 0x59300403, + 0x82000580, 0x00000057, 0x02000800, 0x001086a8, + 0x0201f800, 0x00020b9d, 0x5c023800, 0x0201f000, + 0x00106e2e, 0x4803c856, 0x4d2c0000, 0x4d1c0000, + 0x59323827, 0x811e39c0, 0x02000800, 0x0010032e, + 0x831c0580, 0xffffffff, 0x0400003d, 0x591c0c07, + 0x82040580, 0x00000006, 0x0400000d, 0x82040580, + 0x00000003, 0x0400003b, 0x4a026403, 0x00000037, + 0x4a02641b, 0x00000003, 0x4a02621b, 0x00001700, + 0x5c023800, 0x5c025800, 0x0401f06d, 0x0401f850, + 0x42001000, 0x40000000, 0x591c0203, 0x591c0804, + 0x8c040d3e, 0x04020023, 0x82000c80, 0x0000000e, + 0x0c001003, 0x0201f800, 0x0010032e, 0x00107af8, + 0x00107b04, 0x00107afa, 0x00107b04, 0x00107b00, + 0x00107af8, 0x00107af8, 0x00107b04, 0x00107b04, + 0x00107af8, 0x00107af8, 0x00107af8, 0x00107af8, + 0x00107af8, 0x00107b04, 0x00107af8, 0x00107b04, + 0x0201f800, 0x0010032e, 0x591c0415, 0x4803c857, + 0x8c000518, 0x04000003, 0x8c000512, 0x04000003, + 0x80001580, 0x0401f003, 0x42001000, 0x20000000, + 0x591c0016, 0x4801a00a, 0x0401f01d, 0x0401f824, + 0x42001000, 0x40000000, 0x41780000, 0x0401f7fa, + 0x0401f81f, 0x591e5809, 0x812e59c0, 0x02000800, + 0x0010032e, 0x592c1010, 0x591c0012, 0x80080480, + 0x4801a00a, 0x591c0203, 0x591c0804, 0x8c040d3e, + 0x04020007, 0x82000d80, 0x00000002, 0x04000007, + 0x82000d80, 0x00000004, 0x04000004, 0x42001000, + 0x40000000, 0x0401f002, 0x80001580, 0x4809a00b, + 0x42000800, 0x00000006, 0x42001000, 0x0000dc00, + 0x5c023800, 0x5c025800, 0x0401f23a, 0x4803c856, + 0x0401fe24, 0x4a01a006, 0x02000000, 0x59300c1a, + 0x4805a407, 0x59300a1a, 0x4805a207, 0x5932481c, + 0x59241005, 0x5930080a, 0x58041802, 0x820c1d00, + 0x00ffffff, 0x59300827, 0x82040580, 0xffffffff, + 0x04000008, 0x58040407, 0x82000580, 0x00000003, + 0x04020004, 0x4809a008, 0x480da009, 0x0401f003, + 0x480da008, 0x4809a009, 0x1c01f000, 0x4803c856, + 0x0401fe08, 0x0401f003, 0x4803c856, 0x0401fdfe, + 0x4a01a006, 0x01000000, 0x5930041b, 0x4801a407, + 0x5930021b, 0x4801a207, 0x42000800, 0x00000002, + 0x42001000, 0x0000dc00, 0x0401f20e, 0x4803c856, + 0x4d1c0000, 0x0401fde2, 0x4a01a006, 0x14000000, + 0x59323827, 0x591c001a, 0x4801a005, 0x5930041a, + 0x4801a407, 0x5930021a, 0x4801a207, 0x59300016, + 0x4801a008, 0x59300217, 0x82000500, 0x000000ff, + 0x840001c0, 0x4801a409, 0x42000800, 0x00000004, + 0x42001000, 0x0000dc00, 0x5c023800, 0x0401f1f5, + 0x4803c856, 0x0401fddf, 0x4a01a006, 0x02000001, + 0x42001000, 0xe0000000, 0x59a80878, 0x8c040d3e, + 0x04000004, 0x42001000, 0x20000000, 0x0401f010, + 0x59a80070, 0x8c000508, 0x04000004, 0x82081500, + 0xdfffffff, 0x0401f00a, 0x59a80847, 0x82040d80, + 0x01391077, 0x04020006, 0x59e00813, 0x8c040d00, + 0x04000003, 0x82081500, 0xdfffffff, 0x59c40801, + 0x82040d00, 0x00018000, 0x82040580, 0x00000000, + 0x42000000, 0x00008000, 0x0400000d, 0x82040580, + 0x00008000, 0x42000000, 0x00004000, 0x04000008, + 0x82040580, 0x00010000, 0x42000000, 0x00002000, + 0x04000003, 0x42000000, 0x00000002, 0x80080540, + 0x4801a007, 0x42000800, 0x00000002, 0x42001000, + 0x0000dc00, 0x0401f1bf, 0x4803c856, 0x0401f80b, + 0x5930041b, 0x900001c0, 0x4801a005, 0x0401f9f6, + 0x41780800, 0x42001000, 0x00005c00, 0x0401f9b5, + 0x0201f000, 0x001065fd, 0x4803c856, 0x59300818, + 0x82041c00, 0x00000006, 0x46034800, 0x00000021, + 0x58040405, 0x82000500, 0x0000f000, 0x82000580, + 0x00003000, 0x04000003, 0x46034800, 0x00000041, + 0x81a5a000, 0x580c0001, 0x82000d00, 0x00ffffff, + 0x82040d40, 0xc2000000, 0x4805a000, 0x580c0800, + 0x82041500, 0x00ffffff, 0x82000500, 0xff000000, + 0x80080540, 0x4801a001, 0x580c0002, 0x82000580, + 0x00c00000, 0x82000500, 0x00fd0300, 0x4801a002, + 0x580c0003, 0x4801a003, 0x580c0404, 0x4801a404, + 0x580c0204, 0x4801a204, 0x1c01f000, 0x4803c856, + 0x59a8021b, 0x82000500, 0x00000028, 0x04020009, 0x59a8021b, 0x82000500, 0x00000028, 0x04000003, - 0x497a6a12, 0x0401f7dc, 0x4a026a12, 0x0000ff00, - 0x0401f7d9, 0x42005000, 0x02000000, 0x42006000, - 0x20290000, 0x41786800, 0x41787800, 0x0401f812, - 0x83180d40, 0x00000038, 0x42001000, 0x0000c9a0, - 0x0401f855, 0x42000800, 0x00000004, 0x59300012, - 0x82000500, 0xfff00000, 0x80000540, 0x02000000, - 0x001063ff, 0x42000800, 0x0000000e, 0x0201f000, - 0x001063ff, 0x4201a000, 0x00000000, 0x0401f003, - 0x4201a000, 0x00000011, 0x59340a12, 0x82040d00, - 0x0000ff00, 0x5932481c, 0x59240408, 0x900001c0, - 0x80040540, 0x80d00540, 0x44034800, 0x81a5a000, - 0x59340002, 0x82000500, 0x00ffffff, 0x59300c03, - 0x82040d80, 0x00000031, 0x04020002, 0x41780000, - 0x80280540, 0x4801a000, 0x59240005, 0x4801a001, - 0x4831a002, 0x82340540, 0x00000000, 0x4801a003, - 0x59300402, 0x4801a404, 0x59300a02, 0x4805a204, - 0x8c30652e, 0x04000003, 0x4805a404, 0x4801a204, - 0x483da005, 0x1c01f000, 0x4807c857, 0x4c040000, - 0x0401f82a, 0x5c000800, 0x40040000, 0x80081540, - 0x800000c4, 0x82000540, 0x00002000, 0x4803910a, - 0x59b400f6, 0x82000500, 0x00000018, 0x040207fd, - 0x42001800, 0x0010c89f, 0x580c0004, 0x4803c857, - 0x580c0006, 0x4803c857, 0x580c1800, 0x480fc857, - 0x4a0368f0, 0x0010c89e, 0x4a0368f1, 0x0010c8a5, - 0x480b68f3, 0x4a0378e4, 0x00008000, 0x0201f000, - 0x001063f8, 0x4807c857, 0x480a2800, 0x4c040000, - 0x0401f80a, 0x5c000800, 0x59b400f6, 0x8c00050a, - 0x040207fe, 0x49a768f2, 0x480768f4, 0x4a0378e4, - 0x00008000, 0x1c01f000, 0x4a0378e4, 0x0000c000, - 0x59bc00e4, 0x8c000520, 0x0400000c, 0x4a0378e4, - 0x00008000, 0x42007000, 0x000003e8, 0x59bc00e4, - 0x8c000520, 0x040007f5, 0x80387040, 0x02000800, - 0x0010032e, 0x0401f7fa, 0x1c01f000, 0x82000500, - 0xffff0000, 0x82000580, 0x01050000, 0x0402000d, - 0x599c0818, 0x8c040d10, 0x0400000a, 0x59a80806, - 0x8c040d0a, 0x04000007, 0x42001000, 0x0000804f, - 0x41781800, 0x41782000, 0x0201f800, 0x001038bc, - 0x1c01f000, 0x1c01f000, 0x59a80052, 0x800001c0, - 0x04000053, 0x4d2c0000, 0x4d300000, 0x4c5c0000, - 0x4c600000, 0x4c640000, 0x40025800, 0x4000c000, - 0x4000c800, 0x42026000, 0x001111e0, 0x592c0407, - 0x81440580, 0x0402003b, 0x83240580, 0xffffffff, - 0x04000004, 0x592c0002, 0x81240580, 0x04020035, - 0x592c0205, 0x82000580, 0x00000055, 0x04000005, - 0x8d3e7d18, 0x0400002f, 0x8d3e7d16, 0x0402002d, - 0x40640000, 0x812c0580, 0x0402001b, 0x59300203, - 0x82000580, 0x00000000, 0x04000013, 0x59300009, - 0x800001c0, 0x04000010, 0x0201f800, 0x00106c3c, - 0x4df00000, 0x0201f800, 0x00106b26, 0x0201f800, - 0x0010fe38, 0x80c40040, 0x04020003, 0x4a026203, - 0x00000000, 0x5c03e000, 0x02000800, 0x00106c29, - 0x497a6009, 0x592cc800, 0x4064c000, 0x4064b800, - 0x0401f003, 0x592cb800, 0x485cc000, 0x497a5800, - 0x592c0205, 0x82000580, 0x00000155, 0x04000004, - 0x0201f800, 0x00100594, 0x0401f004, 0x49425a07, - 0x0201f800, 0x000203ef, 0x405e5800, 0x0401f003, - 0x412cc000, 0x592e5800, 0x812e59c0, 0x040207c0, - 0x48675052, 0x48635053, 0x5c00c800, 0x5c00c000, - 0x5c00b800, 0x5c026000, 0x5c025800, 0x1c01f000, - 0x4943c857, 0x4d440000, 0x4d340000, 0x4c580000, - 0x4d240000, 0x42024800, 0xffffffff, 0x4200b000, - 0x000007f0, 0x417a8800, 0x0201f800, 0x0002034c, - 0x04020002, 0x0401ff9d, 0x81468800, 0x8058b040, - 0x040207fa, 0x83440480, 0x00000800, 0x04021008, - 0x8d3e7d02, 0x04000006, 0x42028800, 0x000007f0, - 0x4200b000, 0x00000010, 0x0401f7f0, 0x5c024800, - 0x5c00b000, 0x5c026800, 0x5c028800, 0x1c01f000, - 0x4d300000, 0x59a81052, 0x800811c0, 0x0400001e, - 0x42026000, 0x001111e0, 0x59300203, 0x82000580, - 0x00000000, 0x04020018, 0x58080803, 0x58080002, - 0x4802601c, 0x4806600a, 0x480a6009, 0x4a026407, - 0x00000005, 0x4a026203, 0x00000001, 0x4a026403, - 0x00000092, 0x41780800, 0x58080205, 0x82000580, - 0x00000055, 0x04000003, 0x42000800, 0x00000001, - 0x48066429, 0x42000800, 0x80000040, 0x0201f800, - 0x00020b3e, 0x5c026000, 0x1c01f000, 0x4d900000, - 0x4dd00000, 0x4da40000, 0x4d140000, 0x4d180000, - 0x4803c856, 0x417a3000, 0x0201f800, 0x001072f1, - 0x59900804, 0x800409c0, 0x04000015, 0x83947c00, - 0x00000009, 0x83180400, 0x00106270, 0x50000000, - 0x803c7c00, 0x583c0003, 0x811808ca, 0x82040c00, - 0x00006139, 0x50040800, 0x80040580, 0x04000008, - 0x42000000, 0x0010cc87, 0x0201f800, 0x0010bc88, - 0x82000540, 0x00000001, 0x0401f005, 0x811a3000, - 0x83180580, 0x00000005, 0x040207e4, 0x5c023000, - 0x5c022800, 0x5c034800, 0x5c03a000, 0x5c032000, + 0x497a6a12, 0x0401f003, 0x4a026a12, 0x0000ff00, + 0x42005000, 0x22000000, 0x42006000, 0x01380000, + 0x41786800, 0x41787800, 0x0401f950, 0x59301009, + 0x4a01a006, 0x54000000, 0x5932481c, 0x59240005, + 0x82000500, 0x00ffffff, 0x58080c0b, 0x800408f0, + 0x80040540, 0x4801a007, 0x5808000b, 0x82000500, + 0xff000000, 0x4801a008, 0x59a80002, 0x4801a009, + 0x59a80003, 0x4801a00a, 0x59a80000, 0x4801a00b, + 0x59a80001, 0x4801a00c, 0x5808000d, 0x9c0001c0, + 0x4801a00d, 0x5808000e, 0x9c0001c0, 0x4801a00e, + 0x5808000f, 0x9c0001c0, 0x4801a00f, 0x58080010, + 0x9c0001c0, 0x4801a010, 0x58080011, 0x9c0001c0, + 0x4801a011, 0x58080012, 0x9c0001c0, 0x4801a012, + 0x58080013, 0x9c0001c0, 0x4801a013, 0x58080014, + 0x9c0001c0, 0x4801a014, 0x58080011, 0x9c0001c0, + 0x4801a015, 0x58080012, 0x9c0001c0, 0x4801a016, + 0x58080013, 0x9c0001c0, 0x4801a017, 0x58080014, + 0x9c0001c0, 0x4801a018, 0x42000800, 0x00000013, + 0x42001000, 0x0000dc00, 0x0401f136, 0x4803c856, + 0x42005000, 0x22000000, 0x42006000, 0x01290000, + 0x41786800, 0x41787800, 0x0401f908, 0x59301009, + 0x4a01a006, 0x55000000, 0x5808000c, 0x82000500, + 0x00ffffff, 0x58080c0b, 0x800408f0, 0x80040540, + 0x4801a007, 0x5808080b, 0x82040d00, 0xff000000, + 0x5932481c, 0x59240005, 0x82000500, 0x00ffffff, + 0x80040540, 0x4801a008, 0x5808000d, 0x9c0001c0, + 0x4801a009, 0x5808000e, 0x9c0001c0, 0x4801a00a, + 0x5808000f, 0x9c0001c0, 0x4801a00b, 0x58080010, + 0x9c0001c0, 0x4801a00c, 0x59a80002, 0x4801a00d, + 0x59a80003, 0x4801a00e, 0x59a80000, 0x4801a00f, + 0x59a80001, 0x4801a010, 0x58080011, 0x4801a011, + 0x58080012, 0x4801a012, 0x58080013, 0x4801a013, + 0x58080014, 0x4801a014, 0x4979a015, 0x4979a016, + 0x4979a017, 0x4979a018, 0x42000800, 0x00000013, + 0x42001000, 0x0000dc00, 0x0401f0f6, 0x0401fce1, + 0x5930001d, 0x800001c0, 0x04000008, 0x4a01a006, + 0x01000000, 0x4a01a407, 0x00000003, 0x42000800, + 0x00000002, 0x0401f028, 0x4a01a006, 0x02000000, + 0x41780800, 0x836c0580, 0x00000004, 0x04020003, + 0x84040d42, 0x0401f00d, 0x0201f800, 0x001050f7, + 0x04020003, 0x84040d4a, 0x0401f002, 0x84040d48, + 0x59a8021b, 0x8c000506, 0x04020003, 0x8c00050a, + 0x04000002, 0x84040d46, 0x4805a207, 0x59c40085, + 0x48031004, 0x4c580000, 0x4c500000, 0x4c540000, + 0x4200b000, 0x00000006, 0x8388a400, 0x00000000, + 0x82d0ac00, 0x00000008, 0x0201f800, 0x0010c086, + 0x5c00a800, 0x5c00a000, 0x5c00b000, 0x42000800, + 0x00000008, 0x42001000, 0x0000dc00, 0x0401f0c1, + 0x0401fc9e, 0x4a01a006, 0x56000000, 0x59340006, + 0x4801a007, 0x59340007, 0x4801a008, 0x42000800, + 0x00000003, 0x42001000, 0x0000dc00, 0x0401f0b5, + 0x4803c856, 0x0401fc9f, 0x5930081d, 0x800409c0, + 0x0400000e, 0x82040580, 0x0000ffff, 0x04000004, + 0x82040480, 0x00000007, 0x04021008, 0x4a01a006, + 0x01000000, 0x4a01a407, 0x00000003, 0x42000800, + 0x00000002, 0x0401f013, 0x4a01a006, 0x0200001c, + 0x4a01a007, 0x00000001, 0x42001000, 0x0010cb4b, + 0x50080000, 0x9c0001c0, 0x4801a009, 0x5932481c, + 0x59240005, 0x4801a00a, 0x59240001, 0x59240802, + 0x4801a00b, 0x4805a00c, 0x42000800, 0x00000007, + 0x42001000, 0x0000dc00, 0x0401f08e, 0x4d2c0000, + 0x0401fc6a, 0x59325809, 0x812e59c0, 0x04020003, + 0x4979a001, 0x0401f005, 0x592c0009, 0x82000500, + 0x00ffffff, 0x4801a001, 0x4a01a006, 0x51000000, + 0x5c025800, 0x0201f000, 0x001077ad, 0x4803c856, + 0x59325809, 0x5932680a, 0x59300407, 0x4803c857, + 0x82000d80, 0x00000009, 0x0400000a, 0x82000d80, + 0x0000000a, 0x04000032, 0x82000d80, 0x00000012, + 0x02000000, 0x0010bbc7, 0x0201f800, 0x0010032e, + 0x59300016, 0x8c00051e, 0x04020020, 0x42005000, + 0x04000000, 0x42006000, 0x05000000, 0x592c040b, + 0x82000500, 0x00000030, 0x800000e0, 0x80306540, + 0x5934000a, 0x8c000508, 0x04000002, 0x84306546, + 0x41786800, 0x41787800, 0x0401f831, 0x59300c17, + 0x80040000, 0x48026417, 0x40040000, 0x800000d0, + 0x82000540, 0x00000020, 0x4801a403, 0x83180d40, + 0x00000038, 0x42001000, 0x0000c920, 0x0401f86c, + 0x0201f000, 0x00106602, 0x59a8021b, 0x82000500, + 0x00000028, 0x04000003, 0x497a6a12, 0x0401f7dc, + 0x4a026a12, 0x0000ff00, 0x0401f7d9, 0x42005000, + 0x02000000, 0x42006000, 0x20290000, 0x41786800, + 0x41787800, 0x0401f812, 0x83180d40, 0x00000038, + 0x42001000, 0x0000c9a0, 0x0401f855, 0x42000800, + 0x00000004, 0x59300012, 0x82000500, 0xfff00000, + 0x80000540, 0x02000000, 0x00106604, 0x42000800, + 0x0000000e, 0x0201f000, 0x00106604, 0x4201a000, + 0x00000000, 0x0401f003, 0x4201a000, 0x00000011, + 0x59340a12, 0x82040d00, 0x0000ff00, 0x5932481c, + 0x59240408, 0x900001c0, 0x80040540, 0x80d00540, + 0x44034800, 0x81a5a000, 0x59340002, 0x82000500, + 0x00ffffff, 0x59300c03, 0x82040d80, 0x00000031, + 0x04020002, 0x41780000, 0x80280540, 0x4801a000, + 0x59240005, 0x4801a001, 0x4831a002, 0x82340540, + 0x00000000, 0x4801a003, 0x59300402, 0x4801a404, + 0x59300a02, 0x4805a204, 0x8c30652e, 0x04000003, + 0x4805a404, 0x4801a204, 0x483da005, 0x1c01f000, + 0x4807c857, 0x4c040000, 0x0401f82a, 0x5c000800, + 0x40040000, 0x80081540, 0x800000c4, 0x82000540, + 0x00002000, 0x4803910a, 0x59b400f6, 0x82000500, + 0x00000018, 0x040207fd, 0x42001800, 0x0010cb9f, + 0x580c0004, 0x4803c857, 0x580c0006, 0x4803c857, + 0x580c1800, 0x480fc857, 0x4a0368f0, 0x0010cb9e, + 0x4a0368f1, 0x0010cba5, 0x480b68f3, 0x4a0378e4, + 0x00008000, 0x0201f000, 0x001065fd, 0x4807c857, + 0x480a2800, 0x4c040000, 0x0401f80a, 0x5c000800, + 0x59b400f6, 0x8c00050a, 0x040207fe, 0x49a768f2, + 0x480768f4, 0x4a0378e4, 0x00008000, 0x1c01f000, + 0x4a0378e4, 0x0000c000, 0x59bc00e4, 0x8c000520, + 0x0400000c, 0x4a0378e4, 0x00008000, 0x42007000, + 0x000003e8, 0x59bc00e4, 0x8c000520, 0x040007f5, + 0x80387040, 0x02000800, 0x0010032e, 0x0401f7fa, + 0x1c01f000, 0x82000500, 0xffff0000, 0x82000580, + 0x01050000, 0x0402000d, 0x599c0818, 0x8c040d10, + 0x0400000a, 0x59a80806, 0x8c040d0a, 0x04000007, + 0x42001000, 0x0000804f, 0x41781800, 0x41782000, + 0x0201f800, 0x001039ac, 0x1c01f000, 0x1c01f000, + 0x59a80052, 0x800001c0, 0x04000053, 0x4d2c0000, + 0x4d300000, 0x4c5c0000, 0x4c600000, 0x4c640000, + 0x40025800, 0x4000c000, 0x4000c800, 0x42026000, + 0x00111500, 0x592c0407, 0x81440580, 0x0402003b, + 0x83240580, 0xffffffff, 0x04000004, 0x592c0002, + 0x81240580, 0x04020035, 0x592c0205, 0x82000580, + 0x00000055, 0x04000005, 0x8d3e7d18, 0x0400002f, + 0x8d3e7d16, 0x0402002d, 0x40640000, 0x812c0580, + 0x0402001b, 0x59300203, 0x82000580, 0x00000000, + 0x04000013, 0x59300009, 0x800001c0, 0x04000010, + 0x0201f800, 0x00106e41, 0x4df00000, 0x0201f800, + 0x00106d2b, 0x0201f800, 0x00110148, 0x80c40040, + 0x04020003, 0x4a026203, 0x00000000, 0x5c03e000, + 0x02000800, 0x00106e2e, 0x497a6009, 0x592cc800, + 0x4064c000, 0x4064b800, 0x0401f003, 0x592cb800, + 0x485cc000, 0x497a5800, 0x592c0205, 0x82000580, + 0x00000155, 0x04000004, 0x0201f800, 0x00100594, + 0x0401f004, 0x49425a07, 0x0201f800, 0x000203ef, + 0x405e5800, 0x0401f003, 0x412cc000, 0x592e5800, + 0x812e59c0, 0x040207c0, 0x48675052, 0x48635053, + 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x5c026000, + 0x5c025800, 0x1c01f000, 0x4943c857, 0x4d440000, + 0x4d340000, 0x4c580000, 0x4d240000, 0x42024800, + 0xffffffff, 0x4200b000, 0x000007f0, 0x417a8800, + 0x0201f800, 0x0002034c, 0x04020002, 0x0401ff9d, + 0x81468800, 0x8058b040, 0x040207fa, 0x83440480, + 0x00000800, 0x04021008, 0x8d3e7d02, 0x04000006, + 0x42028800, 0x000007f0, 0x4200b000, 0x00000010, + 0x0401f7f0, 0x5c024800, 0x5c00b000, 0x5c026800, + 0x5c028800, 0x1c01f000, 0x4d300000, 0x59a81052, + 0x800811c0, 0x0400001e, 0x42026000, 0x00111500, + 0x59300203, 0x82000580, 0x00000000, 0x04020018, + 0x58080803, 0x58080002, 0x4802601c, 0x4806600a, + 0x480a6009, 0x4a026407, 0x00000005, 0x4a026203, + 0x00000001, 0x4a026403, 0x00000092, 0x41780800, + 0x58080205, 0x82000580, 0x00000055, 0x04000003, + 0x42000800, 0x00000001, 0x48066429, 0x42000800, + 0x80000040, 0x0201f800, 0x00020b3e, 0x5c026000, 0x1c01f000, 0x4d900000, 0x4dd00000, 0x4da40000, - 0x4d140000, 0x4d180000, 0x4803c856, 0x598c080f, - 0x800409c0, 0x04000003, 0x0201f800, 0x001063f8, - 0x417a3000, 0x0201f800, 0x001072f1, 0x59900804, - 0x800409c0, 0x04000012, 0x83947c00, 0x00000009, - 0x83180400, 0x00106270, 0x50000000, 0x803c7c00, + 0x4d140000, 0x4d180000, 0x4803c856, 0x417a3000, + 0x0201f800, 0x001074f6, 0x59900804, 0x800409c0, + 0x04000015, 0x83947c00, 0x00000009, 0x83180400, + 0x00106475, 0x50000000, 0x803c7c00, 0x583c0003, 0x811808ca, 0x82040c00, 0x00006139, 0x50040800, - 0x48047803, 0x4a007801, 0x000001f4, 0x4a007800, - 0x0000000a, 0x4a007802, 0x00000004, 0x811a3000, - 0x83180580, 0x00000005, 0x040207e7, 0x5c023000, - 0x5c022800, 0x5c034800, 0x5c03a000, 0x5c032000, - 0x1c01f000, 0x41781000, 0x42026000, 0x00111264, - 0x59a8180d, 0x480a6402, 0x4a026202, 0x0000ffff, - 0x80081000, 0x800c1840, 0x04000004, 0x83326400, - 0x0000002c, 0x0401f7f8, 0x1c01f000, 0x0201f800, - 0x00020b9d, 0x1c01f000, 0x5c036000, 0x4db00000, - 0x49b3c857, 0x4933c857, 0x813261c0, 0x04000037, - 0x59300203, 0x82000580, 0x00000000, 0x04000033, - 0x59300004, 0x8c00053e, 0x02020800, 0x0010032e, - 0x59300407, 0x4803c857, 0x82000d80, 0x00000004, - 0x04000011, 0x82000d80, 0x00000001, 0x0400000e, - 0x82000d80, 0x00000003, 0x04000006, 0x82000d80, - 0x00000006, 0x04020015, 0x0201f800, 0x0010b0e3, - 0x5930001d, 0x800001c0, 0x02020800, 0x00109fda, - 0x0401f00e, 0x59300827, 0x4807c857, 0x4d300000, - 0x40066000, 0x0201f800, 0x0010a09b, 0x5c026000, - 0x04020006, 0x5804001d, 0x4803c857, 0x81300580, - 0x04020002, 0x4978081d, 0x4a026407, 0x00000007, - 0x497a6009, 0x4a026004, 0x00004000, 0x59a8002a, - 0x82000c80, 0x00000051, 0x04001002, 0x80000102, - 0x48026006, 0x497a6205, 0x1c01f000, 0x0401f803, - 0x41318800, 0x1c01f000, 0x83640480, 0x00000010, - 0x04021008, 0x42000000, 0x0010cc16, 0x0201f800, - 0x0010bc88, 0x4967c857, 0x80026580, 0x1c01f000, - 0x8166c9c0, 0x0400001c, 0x41626000, 0x41580000, - 0x59300a03, 0x82040d80, 0x00000000, 0x04000008, - 0x83326400, 0x0000002c, 0x81300c80, 0x040017f9, - 0x42026000, 0x00111264, 0x0401f7f6, 0x4933c857, - 0x8166c840, 0x83300c00, 0x0000002c, 0x80040480, - 0x04021006, 0x4006c000, 0x4a026203, 0x00000008, - 0x813261c0, 0x1c01f000, 0x4202c000, 0x00111264, - 0x0401f7fa, 0x42000000, 0x0010cc16, 0x0201f800, - 0x0010bc88, 0x4933c856, 0x417a6000, 0x0401f7f5, - 0x0201f800, 0x00020bc1, 0x1c01f000, 0x4933c857, - 0x83380580, 0x00000013, 0x0402000b, 0x59300004, - 0x8c00053e, 0x04000007, 0x0201f800, 0x00106c3c, - 0x0201f800, 0x00106b8c, 0x0201f800, 0x00106c29, - 0x1c01f000, 0x4933c857, 0x598800b7, 0x80000000, - 0x480310b7, 0x1c01f000, 0x4933c857, 0x59300203, - 0x82003480, 0x0000000e, 0x02021800, 0x0010032e, - 0x4d2c0000, 0x0c01f803, 0x5c025800, 0x1c01f000, - 0x00107d5a, 0x0010835f, 0x001084d4, 0x00107d5a, - 0x00108542, 0x00107ee7, 0x00107d5a, 0x00107d5a, - 0x001082eb, 0x00107d5a, 0x00107d5a, 0x00107d5a, - 0x00107d5a, 0x00107d5a, 0x0201f800, 0x0010032e, + 0x80040580, 0x04000008, 0x42000000, 0x0010cf87, + 0x0201f800, 0x0010bfb3, 0x82000540, 0x00000001, + 0x0401f005, 0x811a3000, 0x83180580, 0x00000005, + 0x040207e4, 0x5c023000, 0x5c022800, 0x5c034800, + 0x5c03a000, 0x5c032000, 0x1c01f000, 0x4d900000, + 0x4dd00000, 0x4da40000, 0x4d140000, 0x4d180000, + 0x4803c856, 0x598c080f, 0x800409c0, 0x04000003, + 0x0201f800, 0x001065fd, 0x417a3000, 0x0201f800, + 0x001074f6, 0x59900804, 0x800409c0, 0x04000012, + 0x83947c00, 0x00000009, 0x83180400, 0x00106475, + 0x50000000, 0x803c7c00, 0x811808ca, 0x82040c00, + 0x00006139, 0x50040800, 0x48047803, 0x4a007801, + 0x000001f4, 0x4a007800, 0x0000000a, 0x4a007802, + 0x00000004, 0x811a3000, 0x83180580, 0x00000005, + 0x040207e7, 0x5c023000, 0x5c022800, 0x5c034800, + 0x5c03a000, 0x5c032000, 0x1c01f000, 0x41781000, + 0x42026000, 0x00111584, 0x59a8180d, 0x480a6402, + 0x4a026202, 0x0000ffff, 0x80081000, 0x800c1840, + 0x04000004, 0x83326400, 0x0000002c, 0x0401f7f8, + 0x1c01f000, 0x0201f800, 0x00020b9d, 0x1c01f000, + 0x5c036000, 0x4db00000, 0x49b3c857, 0x4933c857, + 0x813261c0, 0x0400003b, 0x59300203, 0x82000580, + 0x00000000, 0x04000037, 0x59300004, 0x8c00053e, + 0x02020800, 0x0010032e, 0x59300407, 0x4803c857, + 0x82000d80, 0x00000004, 0x04000011, 0x82000d80, + 0x00000001, 0x0400000e, 0x82000d80, 0x00000003, + 0x04000006, 0x82000d80, 0x00000006, 0x04020019, + 0x0201f800, 0x0010b3fa, 0x5930001d, 0x800001c0, + 0x02020800, 0x0010a218, 0x0401f012, 0x5930000a, + 0x82000580, 0x0010e23c, 0x0400000e, 0x59300827, + 0x4807c857, 0x4d300000, 0x40066000, 0x0201f800, + 0x0010a2d8, 0x5c026000, 0x04020006, 0x5804001d, + 0x4803c857, 0x81300580, 0x04020002, 0x4978081d, + 0x4a026407, 0x00000007, 0x497a6009, 0x4a026004, + 0x00004000, 0x59a8002a, 0x82000c80, 0x00000051, + 0x04001002, 0x80000102, 0x48026006, 0x497a6205, + 0x1c01f000, 0x0401f803, 0x41318800, 0x1c01f000, + 0x83640480, 0x00000010, 0x04021008, 0x42000000, + 0x0010cf16, 0x0201f800, 0x0010bfb3, 0x4967c857, + 0x80026580, 0x1c01f000, 0x8166c9c0, 0x0400001c, + 0x41626000, 0x41580000, 0x59300a03, 0x82040d80, + 0x00000000, 0x04000008, 0x83326400, 0x0000002c, + 0x81300c80, 0x040017f9, 0x42026000, 0x00111584, + 0x0401f7f6, 0x4933c857, 0x8166c840, 0x83300c00, + 0x0000002c, 0x80040480, 0x04021006, 0x4006c000, + 0x4a026203, 0x00000008, 0x813261c0, 0x1c01f000, + 0x4202c000, 0x00111584, 0x0401f7fa, 0x42000000, + 0x0010cf16, 0x0201f800, 0x0010bfb3, 0x4933c856, + 0x417a6000, 0x0401f7f5, 0x0201f800, 0x00020bc1, + 0x1c01f000, 0x4933c857, 0x83380580, 0x00000013, + 0x0402000b, 0x59300004, 0x8c00053e, 0x04000007, + 0x0201f800, 0x00106e41, 0x0201f800, 0x00106d91, + 0x0201f800, 0x00106e2e, 0x1c01f000, 0x4933c857, + 0x598800b7, 0x80000000, 0x480310b7, 0x1c01f000, 0x4933c857, 0x59300203, 0x82003480, 0x0000000e, - 0x02021800, 0x0010032e, 0x0c01f001, 0x00107d71, - 0x00109013, 0x00107d71, 0x00107d71, 0x00107d71, - 0x00107d71, 0x00107d71, 0x00107d71, 0x00108faf, - 0x0010902f, 0x001090a5, 0x0010902f, 0x001090a5, - 0x00107d71, 0x0201f800, 0x0010032e, 0x0201f800, - 0x0010032e, 0x4933c857, 0x4d2c0000, 0x59325809, - 0x59300203, 0x82003480, 0x0000000e, 0x02021800, - 0x0010032e, 0x0c01f803, 0x5c025800, 0x1c01f000, - 0x00107d8e, 0x00107d8e, 0x00107d8e, 0x00107daa, - 0x00107df6, 0x00107d8e, 0x00107d8e, 0x00107d8e, - 0x00107d90, 0x00107d8e, 0x00107d8e, 0x00107d8e, - 0x00107d8e, 0x00107d8e, 0x0201f800, 0x0010032e, - 0x4933c857, 0x83380580, 0x00000040, 0x02020800, - 0x0010032e, 0x4a026008, 0x00082000, 0x4a026203, - 0x00000003, 0x493a6403, 0x4a025c09, 0x00000001, - 0x592c000e, 0x48026012, 0x497a6014, 0x592c0209, - 0x800000c2, 0x800010c4, 0x80081400, 0x480a6006, - 0x0201f800, 0x00020168, 0x42000800, 0x80000060, - 0x0201f000, 0x00020b30, 0x4933c857, 0x83380480, - 0x00000050, 0x02021800, 0x0010032e, 0x83380480, - 0x00000049, 0x02001800, 0x0010032e, 0x0c01f001, - 0x00107dbd, 0x00107dc8, 0x00107dbb, 0x00107dbb, - 0x00107dbb, 0x00107dbb, 0x00107dd3, 0x0201f800, - 0x0010032e, 0x4a026203, 0x00000004, 0x4a025c09, - 0x00000002, 0x592c0208, 0x48025c0a, 0x592c020a, - 0x48025a08, 0x592c000d, 0x4802580e, 0x1c01f000, - 0x0201f800, 0x00106b6c, 0x0201f800, 0x00109667, - 0x04000005, 0x4a025a07, 0x00000006, 0x0201f800, - 0x000203ef, 0x0201f000, 0x00020b9d, 0x0201f800, - 0x00106b6c, 0x4d3c0000, 0x417a7800, 0x0201f800, - 0x0010fc72, 0x5c027800, 0x42003000, 0x00000014, - 0x41782800, 0x42002000, 0x00000002, 0x4d400000, - 0x4d440000, 0x59368c03, 0x42028000, 0x00000029, - 0x0201f800, 0x00109fec, 0x5c028800, 0x5c028000, - 0x42000000, 0x0010cc23, 0x0201f800, 0x0010bc88, - 0x0201f800, 0x00109667, 0x02000000, 0x00020b9d, - 0x4a025a07, 0x00000029, 0x0201f800, 0x000203ef, - 0x0201f000, 0x00020b9d, 0x4933c857, 0x83380580, - 0x00000048, 0x04000005, 0x83380580, 0x00000053, - 0x02020800, 0x0010032e, 0x592c0207, 0x82000580, - 0x00000007, 0x04000009, 0x59300012, 0x80000540, - 0x04000006, 0x592c080d, 0x80040480, 0x4802580d, - 0x4a025a07, 0x00000015, 0x592c0207, 0x80000540, - 0x04020003, 0x4a025a07, 0x00000000, 0x0201f800, - 0x000203ef, 0x0201f000, 0x00020b9d, 0x4933c857, - 0x4d2c0000, 0x4c500000, 0x4c540000, 0x4c580000, - 0x4c5c0000, 0x4c600000, 0x4c640000, 0x4c100000, - 0x0201f800, 0x00100583, 0x02000800, 0x0010032e, - 0x497a5a07, 0x59a8006f, 0x82000500, 0x0000f000, - 0x48025c08, 0x59a8085a, 0x82040c00, 0x00000018, - 0x48065a08, 0x412cb800, 0x4d2c0000, 0x41cca000, - 0x4200c000, 0x00000001, 0x4200c800, 0x0000002c, - 0x82040480, 0x0000002d, 0x04021006, 0x832cac00, - 0x0000000a, 0x0201f800, 0x0010917d, 0x0401f030, - 0x40043000, 0x42000800, 0x0000002c, 0x832cac00, - 0x0000000a, 0x0201f800, 0x0010917d, 0x82183480, - 0x0000002c, 0x4c180000, 0x0201f800, 0x00100583, - 0x5c003000, 0x0400001a, 0x8060c000, 0x4a025805, - 0x00000110, 0x492cb801, 0x82180c80, 0x0000003d, - 0x04021007, 0x40180800, 0x832cac00, 0x00000006, - 0x0201f800, 0x0010917d, 0x0401f015, 0x8264cc00, - 0x0000003c, 0x82183480, 0x0000003c, 0x42000800, - 0x0000003c, 0x412cb800, 0x832cac00, 0x00000006, - 0x0201f800, 0x0010917d, 0x0401f7e3, 0x5c025800, - 0x592c0207, 0x8400055e, 0x48025a07, 0x592c0408, - 0x80640540, 0x48025c08, 0x0401f002, 0x5c025800, - 0x5c002000, 0x813669c0, 0x04000003, 0x59343403, - 0x0401f003, 0x42003000, 0x0000ffff, 0x49325809, - 0x481a5c07, 0x82100580, 0x00000054, 0x0402001a, - 0x4a025809, 0xffffffff, 0x491e5814, 0x41781000, - 0x831c0580, 0xffffffff, 0x0400000e, 0x591c0009, - 0x80000d40, 0x0400000b, 0x58040205, 0x82000500, - 0x000000ff, 0x82000580, 0x00000012, 0x04000004, - 0x82000580, 0x00000060, 0x04020002, 0x58041006, - 0x480a5806, 0x592c0408, 0x81200540, 0x48025c08, - 0x0401f002, 0x49225c06, 0x846001c0, 0x80100540, - 0x48025805, 0x592c0001, 0x497a5801, 0x4c000000, - 0x0201f800, 0x000203ef, 0x5c025800, 0x812e59c0, - 0x040207f9, 0x5c00c800, 0x5c00c000, 0x5c00b800, - 0x5c00b000, 0x5c00a800, 0x5c00a000, 0x5c025800, - 0x1c01f000, 0x0201f800, 0x0010b349, 0x0401f7f6, - 0x4803c856, 0x4c5c0000, 0x4d2c0000, 0x4c500000, - 0x4c540000, 0x4c580000, 0x412cb800, 0x592c040c, - 0x8c000516, 0x04000003, 0x41cca000, 0x0401f003, - 0x83cca400, 0x00000006, 0x4008b000, 0x41781000, - 0x82580480, 0x0000004c, 0x04001004, 0x4200b000, - 0x0000004c, 0x40001000, 0x4c080000, 0x4d2c0000, - 0x0201f800, 0x00100583, 0x04000026, 0x5c001800, - 0x492c1801, 0x485a5800, 0x8258b400, 0x00000003, - 0x8058b104, 0x832cac00, 0x00000002, 0x0201f800, - 0x0010bd85, 0x585c040c, 0x8c000500, 0x0400000e, - 0x832c1400, 0x00000002, 0x8c000516, 0x04000003, - 0x82081400, 0x00000006, 0x46001000, 0x00000001, - 0x80081000, 0x46001000, 0x00000900, 0x84000500, - 0x4800bc0c, 0x5c001000, 0x800811c0, 0x040207d7, - 0x82000540, 0x00000001, 0x5c00b000, 0x5c00a800, - 0x5c00a000, 0x5c025800, 0x5c00b800, 0x1c01f000, - 0x5c025800, 0x5c001000, 0x0401f7f8, 0x4933c857, - 0x83380d80, 0x00000015, 0x04020003, 0x0201f000, - 0x00020b9d, 0x83380d80, 0x00000016, 0x02020800, - 0x0010032e, 0x0201f000, 0x00020b9d, 0x4933c857, - 0x4d2c0000, 0x4c500000, 0x4c540000, 0x4c580000, - 0x59325809, 0x83cca400, 0x00000006, 0x59cc1806, - 0x820c0580, 0x01000000, 0x04020004, 0x4200b000, - 0x00000002, 0x0401f00f, 0x4200b000, 0x00000008, - 0x832cac00, 0x00000006, 0x0201f800, 0x0010bd5b, - 0x8c0c1d00, 0x0400000b, 0x4200b000, 0x00000008, - 0x592e5801, 0x812e59c0, 0x02000800, 0x0010032e, - 0x832cac00, 0x00000006, 0x0201f800, 0x0010bd5b, - 0x0401f816, 0x5c00b000, 0x5c00a800, 0x5c00a000, - 0x5c025800, 0x1c01f000, 0x4933c857, 0x4c500000, - 0x4c540000, 0x4c580000, 0x83cca400, 0x00000006, - 0x5930a809, 0x8254ac00, 0x00000006, 0x4200b000, - 0x00000007, 0x0201f800, 0x0010bd5b, 0x5c00b000, - 0x5c00a800, 0x5c00a000, 0x4933c857, 0x0201f800, - 0x00109667, 0x02000000, 0x00020b9d, 0x4d2c0000, - 0x0201f800, 0x00109d13, 0x0402000b, 0x41780800, - 0x4d400000, 0x42028000, 0x00000000, 0x0201f800, - 0x00109af2, 0x5c028000, 0x5c025800, 0x0201f000, - 0x00020b9d, 0x5931d82a, 0x58ef400a, 0x58ee580c, - 0x4a025a05, 0x00000103, 0x58ec0008, 0x0801f800, - 0x5c025800, 0x0201f000, 0x00020b9d, 0x4933c857, - 0x59cc1806, 0x820c0580, 0x02000000, 0x04020027, - 0x4a026802, 0x00fffffd, 0x5934000a, 0x84000504, - 0x4802680a, 0x42000000, 0x00000000, 0x4c0c0000, - 0x0401f82d, 0x5c001800, 0x59300c26, 0x82040580, - 0x00000021, 0x0402000b, 0x0201f800, 0x00101f51, - 0x42001800, 0x0000ffff, 0x42002000, 0x00000004, - 0x42003000, 0x00000012, 0x0201f800, 0x00103931, - 0x59300809, 0x800409c0, 0x02000000, 0x00020b9d, - 0x4a000a05, 0x00000103, 0x480c0806, 0x5931d82a, - 0x58ef400a, 0x58ee580c, 0x58ec0008, 0x0801f800, - 0x0201f000, 0x00020b9d, 0x42000000, 0x0010cc2c, - 0x0201f800, 0x0010bc88, 0x42000000, 0x00000006, - 0x4c0c0000, 0x0401f808, 0x5c001800, 0x040007e9, - 0x4c0c0000, 0x0401f81f, 0x5c001800, 0x040207e5, - 0x1c01f000, 0x4933c857, 0x4d400000, 0x4d240000, - 0x4d200000, 0x5932481c, 0x40028000, 0x59300426, - 0x82000d80, 0x00000051, 0x04000004, 0x82000d80, - 0x00000021, 0x04020009, 0x0201f800, 0x00101f51, - 0x42000000, 0x00000001, 0x0201f800, 0x00104d11, - 0x80000580, 0x0401f003, 0x82000540, 0x00000001, - 0x5c024000, 0x5c024800, 0x5c028000, 0x1c01f000, - 0x4933c857, 0x4d2c0000, 0x59325809, 0x812e59c0, - 0x04020009, 0x497a6006, 0x497a6205, 0x4d380000, - 0x42027000, 0x00000022, 0x0401fbb3, 0x5c027000, - 0x80000580, 0x5c025800, 0x1c01f000, 0x4933c857, - 0x4d2c0000, 0x4c500000, 0x4c540000, 0x4c580000, - 0x59325809, 0x592e5801, 0x832cac00, 0x00000006, - 0x83cca400, 0x00000006, 0x59a8086f, 0x82040d00, - 0x000003ff, 0x82041480, 0x0000000f, 0x0400101b, - 0x4200b000, 0x0000000f, 0x0201f800, 0x0010bd5b, - 0x592e5801, 0x832cac00, 0x00000006, 0x82080c80, - 0x0000000f, 0x0400100d, 0x4200b000, 0x0000000f, - 0x0201f800, 0x0010bd5b, 0x592e5801, 0x832cac00, - 0x00000006, 0x82041480, 0x0000000f, 0x04001007, - 0x42001000, 0x0000000f, 0x4008b000, 0x0201f800, - 0x0010bd5b, 0x0401f004, 0x4004b000, 0x0201f800, - 0x0010bd5b, 0x5931d82a, 0x58ef400a, 0x58ee580c, - 0x4a025a05, 0x00000103, 0x592e5801, 0x58ec0008, - 0x0801f800, 0x0201f800, 0x00020b9d, 0x5c00b000, - 0x5c00a800, 0x5c00a000, 0x5c025800, 0x1c01f000, + 0x02021800, 0x0010032e, 0x4d2c0000, 0x0c01f803, + 0x5c025800, 0x1c01f000, 0x00107f54, 0x00108564, + 0x001086da, 0x00107f54, 0x00108756, 0x001080e4, + 0x00107f54, 0x00107f54, 0x001084f0, 0x00107f54, + 0x00107f54, 0x00107f54, 0x00107f54, 0x00107f54, + 0x0201f800, 0x0010032e, 0x4933c857, 0x59300203, + 0x82003480, 0x0000000e, 0x02021800, 0x0010032e, + 0x0c01f001, 0x00107f6b, 0x00109239, 0x00107f6b, + 0x00107f6b, 0x00107f6b, 0x00107f6b, 0x00107f6b, + 0x00107f6b, 0x001091d5, 0x00109263, 0x001092d9, + 0x00109263, 0x001092d9, 0x00107f6b, 0x0201f800, + 0x0010032e, 0x0201f800, 0x0010032e, 0x4933c857, + 0x4d2c0000, 0x59325809, 0x59300203, 0x82003480, + 0x0000000e, 0x02021800, 0x0010032e, 0x0c01f803, + 0x5c025800, 0x1c01f000, 0x00107f88, 0x00107f88, + 0x00107f88, 0x00107fa4, 0x00107ff0, 0x00107f88, + 0x00107f88, 0x00107f88, 0x00107f8a, 0x00107f88, + 0x00107f88, 0x00107f88, 0x00107f88, 0x00107f88, + 0x0201f800, 0x0010032e, 0x4933c857, 0x83380580, + 0x00000040, 0x02020800, 0x0010032e, 0x4a026008, + 0x00082000, 0x4a026203, 0x00000003, 0x493a6403, + 0x4a025c09, 0x00000001, 0x592c000e, 0x48026012, + 0x497a6014, 0x592c0209, 0x800000c2, 0x800010c4, + 0x80081400, 0x480a6006, 0x0201f800, 0x00020168, + 0x42000800, 0x80000060, 0x0201f000, 0x00020b30, + 0x4933c857, 0x83380480, 0x00000050, 0x02021800, + 0x0010032e, 0x83380480, 0x00000049, 0x02001800, + 0x0010032e, 0x0c01f001, 0x00107fb7, 0x00107fc2, + 0x00107fb5, 0x00107fb5, 0x00107fb5, 0x00107fb5, + 0x00107fcd, 0x0201f800, 0x0010032e, 0x4a026203, + 0x00000004, 0x4a025c09, 0x00000002, 0x592c0208, + 0x48025c0a, 0x592c020a, 0x48025a08, 0x592c000d, + 0x4802580e, 0x1c01f000, 0x0201f800, 0x00106d71, + 0x0201f800, 0x0010989f, 0x04000005, 0x4a025a07, + 0x00000006, 0x0201f800, 0x000203ef, 0x0201f000, + 0x00020b9d, 0x0201f800, 0x00106d71, 0x4d3c0000, + 0x417a7800, 0x0201f800, 0x0010ff80, 0x5c027800, + 0x42003000, 0x00000014, 0x41782800, 0x42002000, + 0x00000002, 0x4d400000, 0x4d440000, 0x59368c03, + 0x42028000, 0x00000029, 0x0201f800, 0x0010a22a, + 0x5c028800, 0x5c028000, 0x42000000, 0x0010cf23, + 0x0201f800, 0x0010bfb3, 0x0201f800, 0x0010989f, + 0x02000000, 0x00020b9d, 0x4a025a07, 0x00000029, + 0x0201f800, 0x000203ef, 0x0201f000, 0x00020b9d, + 0x4933c857, 0x83380580, 0x00000048, 0x04000005, + 0x83380580, 0x00000053, 0x02020800, 0x0010032e, + 0x592c0207, 0x82000580, 0x00000007, 0x04000009, + 0x59300012, 0x80000540, 0x04000006, 0x592c080d, + 0x80040480, 0x4802580d, 0x4a025a07, 0x00000015, + 0x592c0207, 0x80000540, 0x04020003, 0x4a025a07, + 0x00000000, 0x0201f800, 0x000203ef, 0x0201f000, + 0x00020b9d, 0x4933c857, 0x4d2c0000, 0x4c500000, + 0x4c540000, 0x4c580000, 0x4c5c0000, 0x4c600000, + 0x4c640000, 0x4c100000, 0x0201f800, 0x00100583, + 0x02000800, 0x0010032e, 0x497a5a07, 0x59a8006f, + 0x82000500, 0x0000f000, 0x48025c08, 0x59a8085a, + 0x82040c00, 0x00000018, 0x48065a08, 0x412cb800, + 0x4d2c0000, 0x41cca000, 0x4200c000, 0x00000001, + 0x4200c800, 0x0000002c, 0x82040480, 0x0000002d, + 0x04021006, 0x832cac00, 0x0000000a, 0x0201f800, + 0x001093b1, 0x0401f030, 0x40043000, 0x42000800, + 0x0000002c, 0x832cac00, 0x0000000a, 0x0201f800, + 0x001093b1, 0x82183480, 0x0000002c, 0x4c180000, + 0x0201f800, 0x00100583, 0x5c003000, 0x0400001a, + 0x8060c000, 0x4a025805, 0x00000110, 0x492cb801, + 0x82180c80, 0x0000003d, 0x04021007, 0x40180800, + 0x832cac00, 0x00000006, 0x0201f800, 0x001093b1, + 0x0401f015, 0x8264cc00, 0x0000003c, 0x82183480, + 0x0000003c, 0x42000800, 0x0000003c, 0x412cb800, + 0x832cac00, 0x00000006, 0x0201f800, 0x001093b1, + 0x0401f7e3, 0x5c025800, 0x592c0207, 0x8400055e, + 0x48025a07, 0x592c0408, 0x80640540, 0x48025c08, + 0x0401f002, 0x5c025800, 0x5c002000, 0x813669c0, + 0x04000003, 0x59343403, 0x0401f003, 0x42003000, + 0x0000ffff, 0x49325809, 0x481a5c07, 0x82100580, + 0x00000054, 0x0402001a, 0x4a025809, 0xffffffff, + 0x491e5814, 0x41781000, 0x831c0580, 0xffffffff, + 0x0400000e, 0x591c0009, 0x80000d40, 0x0400000b, + 0x58040205, 0x82000500, 0x000000ff, 0x82000580, + 0x00000012, 0x04000004, 0x82000580, 0x00000060, + 0x04020002, 0x58041006, 0x480a5806, 0x592c0408, + 0x81200540, 0x48025c08, 0x0401f002, 0x49225c06, + 0x846001c0, 0x80100540, 0x48025805, 0x0201f800, + 0x0010c0f9, 0x04020011, 0x592c0001, 0x497a5801, + 0x4c000000, 0x0201f800, 0x000203ef, 0x5c025800, + 0x812e59c0, 0x040207f6, 0x5c00c800, 0x5c00c000, + 0x5c00b800, 0x5c00b000, 0x5c00a800, 0x5c00a000, + 0x5c025800, 0x1c01f000, 0x0201f800, 0x0010b674, + 0x0401f7f6, 0x4803c856, 0x4c5c0000, 0x4d2c0000, + 0x4c500000, 0x4c540000, 0x4c580000, 0x412cb800, + 0x592c040c, 0x8c000516, 0x04000003, 0x41cca000, + 0x0401f003, 0x83cca400, 0x00000006, 0x4008b000, + 0x41781000, 0x82580480, 0x0000004c, 0x04001004, + 0x4200b000, 0x0000004c, 0x40001000, 0x4c080000, + 0x4d2c0000, 0x0201f800, 0x00100583, 0x04000026, + 0x5c001800, 0x492c1801, 0x485a5800, 0x8258b400, + 0x00000003, 0x8058b104, 0x832cac00, 0x00000002, + 0x0201f800, 0x0010c0b0, 0x585c040c, 0x8c000500, + 0x0400000e, 0x832c1400, 0x00000002, 0x8c000516, + 0x04000003, 0x82081400, 0x00000006, 0x46001000, + 0x00000001, 0x80081000, 0x46001000, 0x00000900, + 0x84000500, 0x4800bc0c, 0x5c001000, 0x800811c0, + 0x040207d7, 0x82000540, 0x00000001, 0x5c00b000, + 0x5c00a800, 0x5c00a000, 0x5c025800, 0x5c00b800, + 0x1c01f000, 0x5c025800, 0x5c001000, 0x0401f7f8, + 0x4933c857, 0x83380d80, 0x00000015, 0x04020003, + 0x0201f000, 0x00020b9d, 0x83380d80, 0x00000016, + 0x02020800, 0x0010032e, 0x0201f000, 0x00020b9d, 0x4933c857, 0x4d2c0000, 0x4c500000, 0x4c540000, - 0x4c580000, 0x59cc0006, 0x82000d80, 0x01000000, - 0x0400002d, 0x59cc0007, 0x9000b1c0, 0x8258b500, - 0x000000ff, 0x8058b104, 0x8258b400, 0x00000002, - 0x82580c80, 0x00000007, 0x04001003, 0x4200b000, - 0x00000006, 0x83cca400, 0x00000006, 0x59301009, - 0x800811c0, 0x02000800, 0x0010032e, 0x8208ac00, - 0x00000006, 0x0201f800, 0x0010bd5b, 0x82000d00, - 0xff000000, 0x800409c0, 0x0400001a, 0x8200b500, - 0x000000ff, 0x04000017, 0x8058b104, 0x82580c80, - 0x0000000e, 0x04001003, 0x4200b000, 0x0000000d, - 0x58081001, 0x800811c0, 0x02000800, 0x0010032e, - 0x8208ac00, 0x00000006, 0x0201f800, 0x0010bd5b, - 0x0401f008, 0x59301009, 0x800811c0, 0x02000800, - 0x0010032e, 0x48001006, 0x59cc0007, 0x48001007, - 0x0401ff06, 0x5c00b000, 0x5c00a800, 0x5c00a000, - 0x5c025800, 0x1c01f000, 0x4933c857, 0x42000800, - 0x00000000, 0x59cc0006, 0x82000580, 0x02000000, - 0x04000003, 0x42000800, 0x00000001, 0x4d2c0000, - 0x59325809, 0x812e59c0, 0x02000800, 0x0010032e, - 0x48065a07, 0x0201f800, 0x000203ef, 0x5c025800, - 0x0201f000, 0x00020b9d, 0x4933c857, 0x4d2c0000, - 0x4c500000, 0x4c540000, 0x4c580000, 0x4200b000, - 0x00000002, 0x59cc0806, 0x82040580, 0x01000000, - 0x04000004, 0x8204b500, 0x0000ffff, 0x8058b104, - 0x83cca400, 0x00000006, 0x59300009, 0x8200ac00, - 0x00000006, 0x0201f800, 0x0010bd5b, 0x0401fed7, + 0x4c580000, 0x59325809, 0x83cca400, 0x00000006, + 0x59cc1806, 0x820c0580, 0x01000000, 0x04020004, + 0x4200b000, 0x00000002, 0x0401f00f, 0x4200b000, + 0x00000008, 0x832cac00, 0x00000006, 0x0201f800, + 0x0010c086, 0x8c0c1d00, 0x0400000b, 0x4200b000, + 0x00000008, 0x592e5801, 0x812e59c0, 0x02000800, + 0x0010032e, 0x832cac00, 0x00000006, 0x0201f800, + 0x0010c086, 0x0401f816, 0x5c00b000, 0x5c00a800, + 0x5c00a000, 0x5c025800, 0x1c01f000, 0x4933c857, + 0x4c500000, 0x4c540000, 0x4c580000, 0x83cca400, + 0x00000006, 0x5930a809, 0x8254ac00, 0x00000006, + 0x4200b000, 0x00000007, 0x0201f800, 0x0010c086, + 0x5c00b000, 0x5c00a800, 0x5c00a000, 0x4933c857, + 0x0201f800, 0x0010989f, 0x02000000, 0x00020b9d, + 0x4d2c0000, 0x0201f800, 0x00109f51, 0x0402000b, + 0x41780800, 0x4d400000, 0x42028000, 0x00000000, + 0x0201f800, 0x00109d2a, 0x5c028000, 0x5c025800, + 0x0201f000, 0x00020b9d, 0x5931d82a, 0x58ef400a, + 0x58ee580c, 0x4a025a05, 0x00000103, 0x58ec0008, + 0x0801f800, 0x5c025800, 0x0201f000, 0x00020b9d, + 0x4933c857, 0x59cc1806, 0x820c0580, 0x02000000, + 0x04020027, 0x4a026802, 0x00fffffd, 0x5934000a, + 0x84000504, 0x4802680a, 0x42000000, 0x00000000, + 0x4c0c0000, 0x0401f82d, 0x5c001800, 0x59300c26, + 0x82040580, 0x00000021, 0x0402000b, 0x0201f800, + 0x00101fb4, 0x42001800, 0x0000ffff, 0x42002000, + 0x00000004, 0x42003000, 0x00000012, 0x0201f800, + 0x00103a21, 0x59300809, 0x800409c0, 0x02000000, + 0x00020b9d, 0x4a000a05, 0x00000103, 0x480c0806, + 0x5931d82a, 0x58ef400a, 0x58ee580c, 0x58ec0008, + 0x0801f800, 0x0201f000, 0x00020b9d, 0x42000000, + 0x0010cf2c, 0x0201f800, 0x0010bfb3, 0x42000000, + 0x00000006, 0x4c0c0000, 0x0401f808, 0x5c001800, + 0x040007e9, 0x4c0c0000, 0x0401f827, 0x5c001800, + 0x040207e5, 0x1c01f000, 0x4933c857, 0x4d400000, + 0x4d240000, 0x4d200000, 0x5932481c, 0x40028000, + 0x59300426, 0x82000d80, 0x00000051, 0x04000004, + 0x82000d80, 0x00000021, 0x04020011, 0x0201f800, + 0x00101fb4, 0x0201f800, 0x0010c0e8, 0x04020006, + 0x59300426, 0x82000580, 0x00000021, 0x02000800, + 0x00101cb7, 0x42000000, 0x00000001, 0x0201f800, + 0x00104e36, 0x80000580, 0x0401f003, 0x82000540, + 0x00000001, 0x5c024000, 0x5c024800, 0x5c028000, + 0x1c01f000, 0x4933c857, 0x4d2c0000, 0x59325809, + 0x812e59c0, 0x04020009, 0x497a6006, 0x497a6205, + 0x4d380000, 0x42027000, 0x00000022, 0x0401fbb3, + 0x5c027000, 0x80000580, 0x5c025800, 0x1c01f000, + 0x4933c857, 0x4d2c0000, 0x4c500000, 0x4c540000, + 0x4c580000, 0x59325809, 0x592e5801, 0x832cac00, + 0x00000006, 0x83cca400, 0x00000006, 0x59a8086f, + 0x82040d00, 0x000003ff, 0x82041480, 0x0000000f, + 0x0400101b, 0x4200b000, 0x0000000f, 0x0201f800, + 0x0010c086, 0x592e5801, 0x832cac00, 0x00000006, + 0x82080c80, 0x0000000f, 0x0400100d, 0x4200b000, + 0x0000000f, 0x0201f800, 0x0010c086, 0x592e5801, + 0x832cac00, 0x00000006, 0x82041480, 0x0000000f, + 0x04001007, 0x42001000, 0x0000000f, 0x4008b000, + 0x0201f800, 0x0010c086, 0x0401f004, 0x4004b000, + 0x0201f800, 0x0010c086, 0x5931d82a, 0x58ef400a, + 0x58ee580c, 0x4a025a05, 0x00000103, 0x592e5801, + 0x58ec0008, 0x0801f800, 0x0201f800, 0x00020b9d, 0x5c00b000, 0x5c00a800, 0x5c00a000, 0x5c025800, - 0x1c01f000, 0x4933c857, 0x4803c857, 0x4807c857, - 0x480bc857, 0x480fc857, 0x4813c857, 0x481bc857, - 0x492fc857, 0x4d2c0000, 0x4c000000, 0x0201f800, - 0x0010056e, 0x5c000000, 0x0400000f, 0x48025803, - 0x481a5801, 0x48125808, 0x48065805, 0x480a5806, - 0x480e5807, 0x5c001000, 0x4c080000, 0x480a5809, - 0x412c1000, 0x0201f800, 0x00020016, 0x82000540, - 0x00000001, 0x5c025800, 0x1c01f000, 0x4933c857, - 0x4937c857, 0x4d1c0000, 0x0201f800, 0x00106239, - 0x04020025, 0x59cc0001, 0x82000500, 0x00ffffff, - 0x59341002, 0x82081500, 0x00ffffff, 0x80080580, - 0x0402001d, 0x497a6205, 0x42000800, 0x00000035, - 0x0201f800, 0x00109a64, 0x04020012, 0x591c001d, - 0x800001c0, 0x0400000f, 0x497a381d, 0x591c0415, - 0x8c000502, 0x02000800, 0x0010032e, 0x84000502, - 0x48023c15, 0x591c1407, 0x82080580, 0x00000003, - 0x04000006, 0x82080580, 0x00000006, 0x04000005, - 0x0401fc22, 0x0401f004, 0x0401f805, 0x0401f002, - 0x0401f8d6, 0x5c023800, 0x1c01f000, 0x4d2c0000, - 0x591e5809, 0x4933c857, 0x491fc857, 0x493bc857, - 0x492fc857, 0x83380580, 0x00000015, 0x040000c9, - 0x83380580, 0x00000016, 0x040200c4, 0x4d300000, - 0x411e6000, 0x59cc0207, 0x4803c857, 0x82000d00, - 0x0000ff00, 0x82040580, 0x00001700, 0x04000004, - 0x82040580, 0x00000300, 0x04020067, 0x591c0203, - 0x4803c857, 0x82000580, 0x0000000d, 0x04000046, - 0x812e59c0, 0x040000b0, 0x591c0202, 0x4803c857, - 0x82000580, 0x0000ffff, 0x04020093, 0x592c020b, - 0x4803c857, 0x82000500, 0x00000003, 0x82000580, - 0x00000002, 0x04020007, 0x592c0810, 0x591c0012, - 0x4803c857, 0x4807c857, 0x80040580, 0x04020086, - 0x591c0415, 0x4803c857, 0x8c000500, 0x04020082, - 0x42000000, 0x0010cc09, 0x0201f800, 0x0010bc88, - 0x41780800, 0x591c1006, 0x42000000, 0x0000000a, - 0x0201f800, 0x00106a98, 0x592c0407, 0x4803c857, - 0x800001c0, 0x0400000c, 0x80080c80, 0x04001004, - 0x02020800, 0x0010032e, 0x80001040, 0x480a5c07, - 0x800811c0, 0x04020004, 0x0201f800, 0x00110517, - 0x0401f07d, 0x0201f800, 0x0010977c, 0x591c0818, - 0x591c0019, 0x48065809, 0x4802580a, 0x592e4411, - 0x81224110, 0x59300008, 0x8c000500, 0x02020800, - 0x00100c75, 0x497a3809, 0x0201f800, 0x000202c1, - 0x04020059, 0x411e6000, 0x0201f800, 0x00107cbe, - 0x0401f069, 0x0201f800, 0x00107cfe, 0x04000017, - 0x591c0006, 0x48026006, 0x4926601c, 0x4936600a, - 0x4a026407, 0x00000003, 0x492e6009, 0x591c0818, - 0x591c1019, 0x48066018, 0x480a6019, 0x4d380000, - 0x591e7403, 0x4d300000, 0x411e6000, 0x0201f800, - 0x00107cbe, 0x5c026000, 0x0201f800, 0x00020bc1, - 0x5c027000, 0x0401f050, 0x59a8002c, 0x48023a05, - 0x0401f04d, 0x59cc0407, 0x82000580, 0x0000000b, - 0x0402002e, 0x59340a00, 0x84040d0e, 0x48066a00, - 0x592c0a05, 0x82040d00, 0x000000ff, 0x82040d80, - 0x00000014, 0x04000003, 0x4a026226, 0x00000003, - 0x59300008, 0x8c000500, 0x02020800, 0x00100c75, - 0x4d400000, 0x497a5c0a, 0x42028000, 0x00000003, - 0x592c0a09, 0x0201f800, 0x00104cf5, 0x0201f800, - 0x0010bd9c, 0x04020009, 0x0201f800, 0x000203ef, - 0x59300a26, 0x82040d80, 0x00000003, 0x02000800, - 0x0010977c, 0x497a6009, 0x5c028000, 0x4a026403, - 0x00000085, 0x4a026203, 0x00000009, 0x4a026407, - 0x00000002, 0x42000800, 0x8000404b, 0x0201f800, - 0x00020b3e, 0x0401f01c, 0x59cc0207, 0x82000580, - 0x00002a00, 0x04020004, 0x59a8002c, 0x48023a05, - 0x0401f015, 0x812e59c0, 0x02000800, 0x0010032e, - 0x4a025a05, 0x00000103, 0x591c0008, 0x8c000500, - 0x02020800, 0x00100c75, 0x591c0402, 0x48025c07, - 0x4a025a07, 0x00000003, 0x497a5c0a, 0x0201f800, - 0x000203ef, 0x0201f800, 0x00107cbe, 0x0201f800, - 0x001048bd, 0x5c026000, 0x0201f800, 0x00020b9d, - 0x0401f002, 0x5c026000, 0x5c025800, 0x1c01f000, - 0x0401f819, 0x0401f7fd, 0x4933c857, 0x83380580, - 0x00000015, 0x04020004, 0x59a8002c, 0x48023a05, - 0x0401f00d, 0x83380580, 0x00000016, 0x0402000d, - 0x4d300000, 0x411e6000, 0x0201f800, 0x0010b0e3, - 0x0201f800, 0x00020afd, 0x0201f800, 0x00020b9d, - 0x5c026000, 0x497a381d, 0x0201f800, 0x00020b9d, - 0x1c01f000, 0x4c5c0000, 0x591c0415, 0x84000540, - 0x48023c15, 0x59ccb80b, 0x4933c857, 0x491fc857, - 0x492fc857, 0x4803c857, 0x485fc857, 0x8c5cbd3c, - 0x04000005, 0x59a8002c, 0x48023a05, 0x497a381d, - 0x0401f057, 0x4d300000, 0x411e6000, 0x0201f800, - 0x001091e5, 0x5c026000, 0x591c0407, 0x82000580, - 0x00000000, 0x0400004e, 0x591c0403, 0x82000580, - 0x00000050, 0x0402000c, 0x4d300000, 0x411e6000, - 0x4a026203, 0x00000001, 0x42000800, 0x80000043, - 0x0201f800, 0x00020b3e, 0x5c026000, 0x497a381d, - 0x0401f03f, 0x591c0203, 0x82000580, 0x0000000d, - 0x0400001f, 0x812e59c0, 0x02000800, 0x0010032e, - 0x592c020b, 0x4803c857, 0x8c000500, 0x0402001f, - 0x8c000502, 0x04000016, 0x591c0415, 0x8c00051c, - 0x04020007, 0x591c0012, 0x4803c857, 0x800001c0, - 0x0400000f, 0x591c0013, 0x48023817, 0x4a023813, - 0x0fffffff, 0x592c0209, 0x8400051e, 0x48025a09, - 0x42000000, 0x0010cc0b, 0x0201f800, 0x0010bc88, - 0x4a023a15, 0x00000001, 0x0401f01a, 0x42000000, - 0x0010cc0c, 0x0201f800, 0x0010bc88, 0x4a023a15, - 0x00000007, 0x0401f013, 0x8c5cbd3a, 0x040207f8, - 0x59cc000a, 0x592c1810, 0x4803c857, 0x480fc857, - 0x800c0580, 0x040007f2, 0x59cc000a, 0x4803c857, - 0x48023817, 0x48023816, 0x42000000, 0x0010cc0a, - 0x0201f800, 0x0010bc88, 0x4a023a15, 0x00000005, - 0x5c00b800, 0x0201f000, 0x001098e6, 0x5c00b800, - 0x0201f000, 0x00020b9d, 0x4933c857, 0x4d1c0000, - 0x0201f800, 0x00106239, 0x04020053, 0x59cc0001, - 0x59341002, 0x80080580, 0x82000500, 0x00ffffff, - 0x0402004a, 0x5930141a, 0x0201f800, 0x00109ac1, - 0x02000800, 0x0010032e, 0x591c1407, 0x82080580, - 0x00000007, 0x04000041, 0x82080580, 0x00000002, - 0x0400003e, 0x82080580, 0x00000000, 0x0400003b, - 0x591c0202, 0x82000d80, 0x0000ffff, 0x04000004, - 0x59301a1a, 0x800c0580, 0x04020034, 0x83380580, - 0x00000015, 0x0400002f, 0x4d300000, 0x4d2c0000, - 0x411e6000, 0x59325809, 0x0201f800, 0x00109667, - 0x02000800, 0x0010032e, 0x592c0205, 0x82000500, - 0x000000ff, 0x82000580, 0x00000014, 0x04000003, - 0x4a026226, 0x00000003, 0x497a5c0a, 0x42028000, - 0x00000003, 0x592c0a09, 0x0201f800, 0x00104cf5, - 0x0201f800, 0x0010bd9c, 0x04020009, 0x0201f800, + 0x1c01f000, 0x4933c857, 0x4d2c0000, 0x4c500000, + 0x4c540000, 0x4c580000, 0x59cc0006, 0x82000d80, + 0x01000000, 0x0400002d, 0x59cc0007, 0x9000b1c0, + 0x8258b500, 0x000000ff, 0x8058b104, 0x8258b400, + 0x00000002, 0x82580c80, 0x00000007, 0x04001003, + 0x4200b000, 0x00000006, 0x83cca400, 0x00000006, + 0x59301009, 0x800811c0, 0x02000800, 0x0010032e, + 0x8208ac00, 0x00000006, 0x0201f800, 0x0010c086, + 0x82000d00, 0xff000000, 0x800409c0, 0x0400001a, + 0x8200b500, 0x000000ff, 0x04000017, 0x8058b104, + 0x82580c80, 0x0000000e, 0x04001003, 0x4200b000, + 0x0000000d, 0x58081001, 0x800811c0, 0x02000800, + 0x0010032e, 0x8208ac00, 0x00000006, 0x0201f800, + 0x0010c086, 0x0401f008, 0x59301009, 0x800811c0, + 0x02000800, 0x0010032e, 0x48001006, 0x59cc0007, + 0x48001007, 0x0401fefe, 0x5c00b000, 0x5c00a800, + 0x5c00a000, 0x5c025800, 0x1c01f000, 0x4933c857, + 0x42000800, 0x00000000, 0x59cc0006, 0x82000580, + 0x02000000, 0x04000003, 0x42000800, 0x00000001, + 0x4d2c0000, 0x59325809, 0x812e59c0, 0x02000800, + 0x0010032e, 0x48065a07, 0x0201f800, 0x000203ef, + 0x5c025800, 0x0201f000, 0x00020b9d, 0x4933c857, + 0x4d2c0000, 0x4c500000, 0x4c540000, 0x4c580000, + 0x4200b000, 0x00000002, 0x59cc0806, 0x82040580, + 0x01000000, 0x04000004, 0x8204b500, 0x0000ffff, + 0x8058b104, 0x83cca400, 0x00000006, 0x59300009, + 0x8200ac00, 0x00000006, 0x0201f800, 0x0010c086, + 0x0401fecf, 0x5c00b000, 0x5c00a800, 0x5c00a000, + 0x5c025800, 0x1c01f000, 0x4933c857, 0x4803c857, + 0x4807c857, 0x480bc857, 0x480fc857, 0x4813c857, + 0x481bc857, 0x492fc857, 0x4d2c0000, 0x4c000000, + 0x0201f800, 0x0010056e, 0x5c000000, 0x0400000f, + 0x48025803, 0x481a5801, 0x48125808, 0x48065805, + 0x480a5806, 0x480e5807, 0x5c001000, 0x4c080000, + 0x480a5809, 0x412c1000, 0x0201f800, 0x00020016, + 0x82000540, 0x00000001, 0x5c025800, 0x1c01f000, + 0x4933c857, 0x4937c857, 0x4d1c0000, 0x0201f800, + 0x00106405, 0x04020025, 0x59cc0001, 0x82000500, + 0x00ffffff, 0x59341002, 0x82081500, 0x00ffffff, + 0x80080580, 0x0402001d, 0x497a6205, 0x42000800, + 0x00000035, 0x0201f800, 0x00109c9c, 0x04020012, + 0x591c001d, 0x800001c0, 0x0400000f, 0x497a381d, + 0x591c0415, 0x8c000502, 0x02000800, 0x0010032e, + 0x84000502, 0x48023c15, 0x591c1407, 0x82080580, + 0x00000003, 0x04000006, 0x82080580, 0x00000006, + 0x04000005, 0x0401fc13, 0x0401f004, 0x0401f805, + 0x0401f002, 0x0401f8d6, 0x5c023800, 0x1c01f000, + 0x4d2c0000, 0x591e5809, 0x4933c857, 0x491fc857, + 0x493bc857, 0x492fc857, 0x83380580, 0x00000015, + 0x040000c9, 0x83380580, 0x00000016, 0x040200c4, + 0x4d300000, 0x411e6000, 0x59cc0207, 0x4803c857, + 0x82000d00, 0x0000ff00, 0x82040580, 0x00001700, + 0x04000004, 0x82040580, 0x00000300, 0x04020067, + 0x591c0203, 0x4803c857, 0x82000580, 0x0000000d, + 0x04000046, 0x812e59c0, 0x040000b0, 0x591c0202, + 0x4803c857, 0x82000580, 0x0000ffff, 0x04020093, + 0x592c020b, 0x4803c857, 0x82000500, 0x00000003, + 0x82000580, 0x00000002, 0x04020007, 0x592c0810, + 0x591c0012, 0x4803c857, 0x4807c857, 0x80040580, + 0x04020086, 0x591c0415, 0x4803c857, 0x8c000500, + 0x04020082, 0x42000000, 0x0010cf09, 0x0201f800, + 0x0010bfb3, 0x41780800, 0x591c1006, 0x42000000, + 0x0000000a, 0x0201f800, 0x00106c9d, 0x592c0407, + 0x4803c857, 0x800001c0, 0x0400000c, 0x80080c80, + 0x04001004, 0x02020800, 0x0010032e, 0x80001040, + 0x480a5c07, 0x800811c0, 0x04020004, 0x0201f800, + 0x00110814, 0x0401f07d, 0x0201f800, 0x001099b4, + 0x591c0818, 0x591c0019, 0x48065809, 0x4802580a, + 0x592e4411, 0x81224110, 0x59300008, 0x8c000500, + 0x02020800, 0x00100c76, 0x497a3809, 0x0201f800, + 0x000202c1, 0x04020059, 0x411e6000, 0x0201f800, + 0x00107eb4, 0x0401f069, 0x0201f800, 0x00107ef8, + 0x04000017, 0x591c0006, 0x48026006, 0x4926601c, + 0x4936600a, 0x4a026407, 0x00000003, 0x492e6009, + 0x591c0818, 0x591c1019, 0x48066018, 0x480a6019, + 0x4d380000, 0x591e7403, 0x4d300000, 0x411e6000, + 0x0201f800, 0x00107eb4, 0x5c026000, 0x0201f800, + 0x00020bc1, 0x5c027000, 0x0401f050, 0x59a8002c, + 0x48023a05, 0x0401f04d, 0x59cc0407, 0x82000580, + 0x0000000b, 0x0402002e, 0x59340a00, 0x84040d0e, + 0x48066a00, 0x592c0a05, 0x82040d00, 0x000000ff, + 0x82040d80, 0x00000014, 0x04000003, 0x4a026226, + 0x00000003, 0x59300008, 0x8c000500, 0x02020800, + 0x00100c76, 0x4d400000, 0x497a5c0a, 0x42028000, + 0x00000003, 0x592c0a09, 0x0201f800, 0x00104e1a, + 0x0201f800, 0x0010c0c7, 0x04020009, 0x0201f800, 0x000203ef, 0x59300a26, 0x82040d80, 0x00000003, - 0x02000800, 0x0010977c, 0x497a6009, 0x5c025800, + 0x02000800, 0x001099b4, 0x497a6009, 0x5c028000, 0x4a026403, 0x00000085, 0x4a026203, 0x00000009, 0x4a026407, 0x00000002, 0x42000800, 0x8000404b, - 0x0201f800, 0x00020b3e, 0x5c026000, 0x0401f003, - 0x59a8002c, 0x48023a05, 0x497a381d, 0x0201f800, - 0x00020b9d, 0x5c023800, 0x1c01f000, 0x4933c857, - 0x4c580000, 0x4d2c0000, 0x59325809, 0x59342200, - 0x82102500, 0xffffdffd, 0x48126a00, 0x83383580, - 0x00000015, 0x0400000d, 0x0201f800, 0x00109667, - 0x04000068, 0x0201f800, 0x00109d13, 0x04020005, - 0x4200b000, 0x00000002, 0x0201f800, 0x00109cf2, - 0x0401fa3e, 0x0401f07f, 0x83cc1400, 0x00000008, - 0x4200b000, 0x00000002, 0x83341c00, 0x00000006, - 0x0201f800, 0x00108a31, 0x04020014, 0x83cc1400, - 0x0000000a, 0x4200b000, 0x00000002, 0x83341c00, - 0x00000008, 0x0201f800, 0x00108a31, 0x0402000b, - 0x0201f800, 0x00101cb2, 0x59342200, 0x59cc1007, - 0x800811c0, 0x04000003, 0x480a6801, 0x84102542, - 0x48126a00, 0x0401f066, 0x4d3c0000, 0x417a7800, - 0x0201f800, 0x0010fc72, 0x5c027800, 0x42000000, - 0x0010cc23, 0x0201f800, 0x0010bc88, 0x59340200, - 0x84000558, 0x48026a00, 0x4d300000, 0x0201f800, - 0x00107cfe, 0x02000800, 0x0010032e, 0x4926601c, - 0x4936600a, 0x497a6009, 0x4a026407, 0x00000001, - 0x4a026403, 0x00000001, 0x42003000, 0x00000003, - 0x0201f800, 0x0010b412, 0x0201f800, 0x00101f51, - 0x59240400, 0x8c00050a, 0x04020011, 0x41782800, - 0x42003000, 0x00000001, 0x4d400000, 0x42028000, - 0x00000029, 0x0201f800, 0x0010ae7c, 0x5c028000, - 0x4a026407, 0x00000004, 0x4a026203, 0x00000007, - 0x4a026429, 0x00000001, 0x0401f009, 0x4a026203, - 0x00000001, 0x42000800, 0x0000000b, 0x0201f800, - 0x001044f1, 0x0201f800, 0x00106b17, 0x5c026000, - 0x0201f800, 0x00109667, 0x04000026, 0x0201f800, - 0x00109d13, 0x04020026, 0x0401f9e0, 0x0401f021, - 0x42000000, 0x0010cc26, 0x0201f800, 0x0010bc88, - 0x4d3c0000, 0x417a7800, 0x0201f800, 0x0010fc72, - 0x42000000, 0x0010cc23, 0x0201f800, 0x0010bc88, - 0x59340200, 0x84000558, 0x48026a00, 0x42003000, - 0x00000003, 0x41782800, 0x42002000, 0x00000005, - 0x4d400000, 0x4d440000, 0x59368c03, 0x42028000, - 0x00000029, 0x0201f800, 0x00109fec, 0x5c028800, - 0x5c028000, 0x5c027800, 0x0201f800, 0x00101cb2, - 0x0201f800, 0x00020b9d, 0x0401f002, 0x0401fc43, - 0x5c025800, 0x5c00b000, 0x1c01f000, 0x4933c857, - 0x41380000, 0x83383480, 0x00000058, 0x02021800, - 0x0010032e, 0x0c01f001, 0x00108359, 0x00108354, - 0x00108359, 0x00108359, 0x00108359, 0x00108359, - 0x00108352, 0x00108352, 0x00108352, 0x00108352, - 0x00108352, 0x00108352, 0x00108352, 0x00108352, - 0x00108352, 0x00108352, 0x00108352, 0x00108352, - 0x00108352, 0x00108352, 0x00108352, 0x00108352, - 0x00108352, 0x00108352, 0x00108352, 0x00108352, - 0x00108352, 0x00108352, 0x00108352, 0x00108352, - 0x00108352, 0x00108359, 0x00108352, 0x00108359, - 0x00108359, 0x00108352, 0x00108352, 0x00108352, - 0x00108352, 0x00108352, 0x00108359, 0x00108352, - 0x00108352, 0x00108352, 0x00108352, 0x00108352, - 0x00108352, 0x00108352, 0x00108352, 0x00108352, - 0x00108359, 0x00108359, 0x00108352, 0x00108352, - 0x00108352, 0x00108352, 0x00108352, 0x00108352, - 0x00108352, 0x00108352, 0x00108352, 0x00108359, - 0x00108352, 0x00108352, 0x00108359, 0x00108359, - 0x00108352, 0x00108359, 0x00108359, 0x00108352, - 0x00108352, 0x00108352, 0x00108352, 0x00108359, - 0x00108352, 0x00108352, 0x00108352, 0x00108359, - 0x00108352, 0x00108352, 0x00108352, 0x00108359, - 0x00108352, 0x00108352, 0x00108352, 0x00108359, - 0x00108352, 0x00108359, 0x00108352, 0x00108352, - 0x00108352, 0x00108352, 0x00108352, 0x00108352, - 0x00108352, 0x00108352, 0x0201f800, 0x0010032e, - 0x4a026203, 0x00000001, 0x493a6403, 0x0201f000, - 0x00106b17, 0x4933c857, 0x4a026203, 0x00000001, - 0x493a6403, 0x0201f000, 0x00106b17, 0x59300403, - 0x82003480, 0x00000058, 0x02021800, 0x0010032e, - 0x83383580, 0x00000013, 0x040000a9, 0x83383580, - 0x00000027, 0x04020057, 0x4933c857, 0x0201f800, - 0x00106b8c, 0x0201f800, 0x0010b4fc, 0x0201f800, - 0x0010978f, 0x0400000f, 0x0201f800, 0x001097aa, - 0x0400004a, 0x59300403, 0x82000d80, 0x00000022, - 0x04020041, 0x42000000, 0x00000205, 0x0401fc06, - 0x0400003d, 0x0401fc1f, 0x0400003f, 0x0401f03f, - 0x42000000, 0x00000203, 0x0201f800, 0x00107f81, - 0x04000035, 0x0201f800, 0x00101cb2, 0x42000800, - 0x00000007, 0x0201f800, 0x001044f1, 0x0401f917, - 0x4d440000, 0x59368c03, 0x83440580, 0x000007fe, - 0x04020008, 0x59a8121b, 0x84081540, 0x0201f800, - 0x00104fc6, 0x04020002, 0x8408154a, 0x480b521b, - 0x42028000, 0x00000029, 0x4d3c0000, 0x417a7800, - 0x0201f800, 0x0010fc72, 0x5c027800, 0x836c0580, - 0x00000003, 0x0400000c, 0x5932680a, 0x59340008, - 0x800001c0, 0x04020008, 0x59368c03, 0x4933c857, - 0x4937c857, 0x4947c857, 0x0201f800, 0x001045ac, - 0x0401f00c, 0x42000000, 0x0010cc23, 0x0201f800, - 0x0010bc88, 0x42003000, 0x00000015, 0x41782800, - 0x42002000, 0x00000003, 0x0201f800, 0x00109fec, - 0x5c028800, 0x0201f800, 0x001099c1, 0x0201f000, - 0x00020b9d, 0x1c01f000, 0x0401f8e4, 0x0401f7fa, - 0x83380580, 0x00000014, 0x0400000c, 0x4933c857, - 0x0201f800, 0x00107021, 0x02020000, 0x00107d3d, - 0x59300203, 0x82000580, 0x00000002, 0x04000109, - 0x0201f800, 0x0010032e, 0x4933c857, 0x0201f800, - 0x00106b8c, 0x0201f800, 0x0010b4fc, 0x42002800, - 0x00000002, 0x59300403, 0x82000580, 0x00000051, - 0x02000000, 0x0010a1bb, 0x4d3c0000, 0x417a7800, - 0x0201f800, 0x0010fc72, 0x5c027800, 0x42003000, - 0x00000016, 0x41782800, 0x4d400000, 0x4d440000, - 0x59368c03, 0x42002000, 0x00000009, 0x42028000, - 0x00000029, 0x0201f800, 0x00109fec, 0x5c028800, - 0x5c028000, 0x42000000, 0x0010cc23, 0x0201f800, - 0x0010bc88, 0x0201f800, 0x0010978f, 0x0402000c, - 0x0201f800, 0x00101cb2, 0x0401f8ac, 0x59340c03, - 0x82040580, 0x000007fe, 0x040207bf, 0x59a80a1b, - 0x84040d40, 0x4807521b, 0x0401f7bb, 0x0201f800, - 0x001097aa, 0x04020003, 0x0401f8a0, 0x0401f7b6, - 0x59300403, 0x82000d80, 0x00000032, 0x04020004, - 0x0201f800, 0x0010224a, 0x0401f7af, 0x82000d80, - 0x00000022, 0x04000895, 0x0401f7ab, 0x4933c857, - 0x4803c857, 0x0c01f001, 0x0010847b, 0x0010847b, - 0x0010847b, 0x0010847b, 0x0010847b, 0x0010847b, - 0x00108472, 0x00108472, 0x00108472, 0x00108472, - 0x00108472, 0x00108472, 0x00108472, 0x00108472, - 0x00108472, 0x00108472, 0x00108472, 0x00108472, - 0x00108472, 0x00108472, 0x00108472, 0x00108472, - 0x00108472, 0x00108472, 0x00108472, 0x00108472, - 0x00108472, 0x00108472, 0x00108472, 0x00108472, - 0x0010847f, 0x0010849c, 0x00108472, 0x0010849c, - 0x0010849c, 0x00108472, 0x00108472, 0x00108472, - 0x00108472, 0x00108472, 0x0010849c, 0x0010849c, - 0x00108472, 0x00108472, 0x00108472, 0x00108472, - 0x00108472, 0x00108472, 0x00108472, 0x00108472, - 0x0010848d, 0x0010849c, 0x00108472, 0x00108486, - 0x00108472, 0x00108472, 0x00108472, 0x00108486, - 0x00108472, 0x00108472, 0x00108472, 0x0010849c, - 0x00108489, 0x00108472, 0x00108474, 0x0010849c, - 0x00108472, 0x0010849c, 0x0010849c, 0x00108472, - 0x00108472, 0x00108472, 0x00108472, 0x0010849c, - 0x00108472, 0x00108472, 0x00108472, 0x0010849c, - 0x00108472, 0x00108472, 0x00108472, 0x0010849c, - 0x00108472, 0x00108472, 0x00108472, 0x0010849c, - 0x00108472, 0x0010849c, 0x00108472, 0x00108472, - 0x00108472, 0x00108472, 0x00108472, 0x00108472, - 0x00108472, 0x00108472, 0x0201f800, 0x0010032e, - 0x4d2c0000, 0x59325809, 0x0201f800, 0x000203ef, - 0x5c025800, 0x0201f000, 0x00020b9d, 0x4a026203, - 0x00000002, 0x0201f000, 0x0010982f, 0x4a026203, - 0x00000005, 0x59a8002c, 0x48026205, 0x59a8002a, - 0x48026006, 0x1c01f000, 0x59300827, 0x49780a05, - 0x0401f014, 0x0201f800, 0x001099c1, 0x0201f000, - 0x00020b9d, 0x0201f800, 0x0010224a, 0x0201f800, - 0x00106c3c, 0x04000005, 0x0201f800, 0x00106b8c, - 0x0201f000, 0x00020b9d, 0x0201f800, 0x00106b8c, - 0x0201f800, 0x00020b9d, 0x0201f000, 0x00106c29, - 0x4933c857, 0x4a026203, 0x00000002, 0x59a8002a, - 0x48026006, 0x1c01f000, 0x4933c857, 0x0201f800, - 0x00109667, 0x0400002e, 0x4d2c0000, 0x0201f800, - 0x00109d13, 0x0402000a, 0x4d400000, 0x42028000, - 0x00000031, 0x42000800, 0x00000004, 0x0201f800, - 0x00109af2, 0x5c028000, 0x0401f020, 0x59300c07, - 0x82040580, 0x00000010, 0x04000004, 0x82040580, - 0x00000011, 0x0402000a, 0x4a025a07, 0x00000031, - 0x4a02580e, 0x00000004, 0x4a02580f, 0x000000ff, - 0x0201f800, 0x000203ef, 0x0401f010, 0x592c0405, - 0x8c00051e, 0x0400000d, 0x4a025a05, 0x00000103, - 0x4a025806, 0x01000000, 0x4da00000, 0x4cec0000, - 0x5931d82a, 0x58ef400a, 0x58ec0008, 0x0801f800, - 0x5c01d800, 0x5c034000, 0x5c025800, 0x1c01f000, - 0x4933c857, 0x59340400, 0x82000500, 0x000000ff, + 0x0201f800, 0x00020b3e, 0x0401f01c, 0x59cc0207, + 0x82000580, 0x00002a00, 0x04020004, 0x59a8002c, + 0x48023a05, 0x0401f015, 0x812e59c0, 0x02000800, + 0x0010032e, 0x4a025a05, 0x00000103, 0x591c0008, + 0x8c000500, 0x02020800, 0x00100c76, 0x591c0402, + 0x48025c07, 0x4a025a07, 0x00000003, 0x497a5c0a, + 0x0201f800, 0x000203ef, 0x0201f800, 0x00107eb4, + 0x0201f800, 0x001049bd, 0x5c026000, 0x0201f800, + 0x00020b9d, 0x0401f002, 0x5c026000, 0x5c025800, + 0x1c01f000, 0x0401f819, 0x0401f7fd, 0x4933c857, + 0x83380580, 0x00000015, 0x04020004, 0x59a8002c, + 0x48023a05, 0x0401f00d, 0x83380580, 0x00000016, + 0x0402000d, 0x4d300000, 0x411e6000, 0x0201f800, + 0x0010b3fa, 0x0201f800, 0x00020afd, 0x0201f800, + 0x00020b9d, 0x5c026000, 0x497a381d, 0x0201f800, + 0x00020b9d, 0x1c01f000, 0x4c5c0000, 0x591c0415, + 0x84000540, 0x48023c15, 0x59ccb80b, 0x4933c857, + 0x491fc857, 0x492fc857, 0x4803c857, 0x485fc857, + 0x8c5cbd3c, 0x04000005, 0x59a8002c, 0x48023a05, + 0x497a381d, 0x0401f057, 0x4d300000, 0x411e6000, + 0x0201f800, 0x00109419, 0x5c026000, 0x591c0407, + 0x82000580, 0x00000000, 0x0400004e, 0x591c0403, + 0x82000580, 0x00000050, 0x0402000c, 0x4d300000, + 0x411e6000, 0x4a026203, 0x00000001, 0x42000800, + 0x80000043, 0x0201f800, 0x00020b3e, 0x5c026000, + 0x497a381d, 0x0401f03f, 0x591c0203, 0x82000580, + 0x0000000d, 0x0400001f, 0x812e59c0, 0x02000800, + 0x0010032e, 0x592c020b, 0x4803c857, 0x8c000500, + 0x0402001f, 0x8c000502, 0x04000016, 0x591c0415, + 0x8c00051c, 0x04020007, 0x591c0012, 0x4803c857, + 0x800001c0, 0x0400000f, 0x591c0013, 0x48023817, + 0x4a023813, 0x0fffffff, 0x592c0209, 0x8400051e, + 0x48025a09, 0x42000000, 0x0010cf0b, 0x0201f800, + 0x0010bfb3, 0x4a023a15, 0x00000001, 0x0401f01a, + 0x42000000, 0x0010cf0c, 0x0201f800, 0x0010bfb3, + 0x4a023a15, 0x00000007, 0x0401f013, 0x8c5cbd3a, + 0x040207f8, 0x59cc000a, 0x592c1810, 0x4803c857, + 0x480fc857, 0x800c0580, 0x040007f2, 0x59cc000a, + 0x4803c857, 0x48023817, 0x48023816, 0x42000000, + 0x0010cf0a, 0x0201f800, 0x0010bfb3, 0x4a023a15, + 0x00000005, 0x5c00b800, 0x0201f000, 0x00109b1e, + 0x5c00b800, 0x0201f000, 0x00020b9d, 0x4933c857, + 0x4d1c0000, 0x0201f800, 0x00106405, 0x04020053, + 0x59cc0001, 0x59341002, 0x80080580, 0x82000500, + 0x00ffffff, 0x0402004a, 0x5930141a, 0x0201f800, + 0x00109cf9, 0x02000800, 0x0010032e, 0x591c1407, + 0x82080580, 0x00000007, 0x04000041, 0x82080580, + 0x00000002, 0x0400003e, 0x82080580, 0x00000000, + 0x0400003b, 0x591c0202, 0x82000d80, 0x0000ffff, + 0x04000004, 0x59301a1a, 0x800c0580, 0x04020034, + 0x83380580, 0x00000015, 0x0400002f, 0x4d300000, + 0x4d2c0000, 0x411e6000, 0x59325809, 0x0201f800, + 0x0010989f, 0x02000800, 0x0010032e, 0x592c0205, + 0x82000500, 0x000000ff, 0x82000580, 0x00000014, + 0x04000003, 0x4a026226, 0x00000003, 0x497a5c0a, + 0x42028000, 0x00000003, 0x592c0a09, 0x0201f800, + 0x00104e1a, 0x0201f800, 0x0010c0c7, 0x04020009, + 0x0201f800, 0x000203ef, 0x59300a26, 0x82040d80, + 0x00000003, 0x02000800, 0x001099b4, 0x497a6009, + 0x5c025800, 0x4a026403, 0x00000085, 0x4a026203, + 0x00000009, 0x4a026407, 0x00000002, 0x42000800, + 0x8000404b, 0x0201f800, 0x00020b3e, 0x5c026000, + 0x0401f003, 0x59a8002c, 0x48023a05, 0x497a381d, + 0x0201f800, 0x00020b9d, 0x5c023800, 0x1c01f000, + 0x4933c857, 0x4c580000, 0x4d2c0000, 0x59325809, + 0x59342200, 0x82102500, 0xffffdffd, 0x48126a00, + 0x83383580, 0x00000015, 0x0400000d, 0x0201f800, + 0x0010989f, 0x04000068, 0x0201f800, 0x00109f51, + 0x04020005, 0x4200b000, 0x00000002, 0x0201f800, + 0x00109f30, 0x0401fa3f, 0x0401f07f, 0x83cc1400, + 0x00000008, 0x4200b000, 0x00000002, 0x83341c00, + 0x00000006, 0x0201f800, 0x00108c57, 0x04020014, + 0x83cc1400, 0x0000000a, 0x4200b000, 0x00000002, + 0x83341c00, 0x00000008, 0x0201f800, 0x00108c57, + 0x0402000b, 0x0201f800, 0x00101cb7, 0x59342200, + 0x59cc1007, 0x800811c0, 0x04000003, 0x480a6801, + 0x84102542, 0x48126a00, 0x0401f066, 0x4d3c0000, + 0x417a7800, 0x0201f800, 0x0010ff80, 0x5c027800, + 0x42000000, 0x0010cf23, 0x0201f800, 0x0010bfb3, + 0x59340200, 0x84000558, 0x48026a00, 0x4d300000, + 0x0201f800, 0x00107ef8, 0x02000800, 0x0010032e, + 0x4926601c, 0x4936600a, 0x497a6009, 0x4a026407, + 0x00000001, 0x4a026403, 0x00000001, 0x42003000, + 0x00000003, 0x0201f800, 0x0010b73d, 0x0201f800, + 0x00101fb4, 0x59240400, 0x8c00050a, 0x04020011, + 0x41782800, 0x42003000, 0x00000001, 0x4d400000, + 0x42028000, 0x00000029, 0x0201f800, 0x0010b18b, + 0x5c028000, 0x4a026407, 0x00000004, 0x4a026203, + 0x00000007, 0x4a026429, 0x00000001, 0x0401f009, + 0x4a026203, 0x00000001, 0x42000800, 0x0000000b, + 0x0201f800, 0x001045ea, 0x0201f800, 0x00106d1c, + 0x5c026000, 0x0201f800, 0x0010989f, 0x04000026, + 0x0201f800, 0x00109f51, 0x04020026, 0x0401f9e1, + 0x0401f021, 0x42000000, 0x0010cf26, 0x0201f800, + 0x0010bfb3, 0x4d3c0000, 0x417a7800, 0x0201f800, + 0x0010ff80, 0x42000000, 0x0010cf23, 0x0201f800, + 0x0010bfb3, 0x59340200, 0x84000558, 0x48026a00, + 0x42003000, 0x00000003, 0x41782800, 0x42002000, + 0x00000005, 0x4d400000, 0x4d440000, 0x59368c03, + 0x42028000, 0x00000029, 0x0201f800, 0x0010a22a, + 0x5c028800, 0x5c028000, 0x5c027800, 0x0201f800, + 0x00101cb7, 0x0201f800, 0x00020b9d, 0x0401f002, + 0x0401fc3b, 0x5c025800, 0x5c00b000, 0x1c01f000, + 0x4933c857, 0x41380000, 0x83383480, 0x00000058, + 0x02021800, 0x0010032e, 0x0c01f001, 0x0010855e, + 0x00108559, 0x0010855e, 0x0010855e, 0x0010855e, + 0x0010855e, 0x00108557, 0x00108557, 0x00108557, + 0x00108557, 0x00108557, 0x00108557, 0x00108557, + 0x00108557, 0x00108557, 0x00108557, 0x00108557, + 0x00108557, 0x00108557, 0x00108557, 0x00108557, + 0x00108557, 0x00108557, 0x00108557, 0x00108557, + 0x00108557, 0x00108557, 0x00108557, 0x00108557, + 0x00108557, 0x00108557, 0x0010855e, 0x00108557, + 0x0010855e, 0x0010855e, 0x00108557, 0x00108557, + 0x00108557, 0x00108557, 0x00108557, 0x0010855e, + 0x00108557, 0x00108557, 0x00108557, 0x00108557, + 0x00108557, 0x00108557, 0x00108557, 0x00108557, + 0x00108557, 0x0010855e, 0x0010855e, 0x00108557, + 0x00108557, 0x00108557, 0x00108557, 0x00108557, + 0x00108557, 0x00108557, 0x00108557, 0x00108557, + 0x0010855e, 0x00108557, 0x00108557, 0x0010855e, + 0x0010855e, 0x00108557, 0x0010855e, 0x0010855e, + 0x00108557, 0x00108557, 0x00108557, 0x00108557, + 0x0010855e, 0x00108557, 0x00108557, 0x00108557, + 0x0010855e, 0x00108557, 0x00108557, 0x00108557, + 0x0010855e, 0x00108557, 0x00108557, 0x00108557, + 0x0010855e, 0x00108557, 0x0010855e, 0x00108557, + 0x00108557, 0x00108557, 0x00108557, 0x00108557, + 0x00108557, 0x00108557, 0x00108557, 0x0201f800, + 0x0010032e, 0x4a026203, 0x00000001, 0x493a6403, + 0x0201f000, 0x00106d1c, 0x4933c857, 0x4a026203, + 0x00000001, 0x493a6403, 0x0201f000, 0x00106d1c, + 0x59300403, 0x82003480, 0x00000058, 0x02021800, + 0x0010032e, 0x83383580, 0x00000013, 0x040000aa, + 0x83383580, 0x00000027, 0x04020058, 0x4933c857, + 0x0201f800, 0x00106d91, 0x0201f800, 0x0010b827, + 0x0201f800, 0x001099c7, 0x04000010, 0x0201f800, + 0x001099e2, 0x0400004b, 0x59300403, 0x82000d80, + 0x00000022, 0x04020042, 0x42000000, 0x00000205, + 0x0201f800, 0x0010817e, 0x0400003d, 0x0401fc1e, + 0x0400003f, 0x0401f03f, 0x42000000, 0x00000203, + 0x0201f800, 0x0010817e, 0x04000035, 0x0201f800, + 0x00101cb7, 0x42000800, 0x00000007, 0x0201f800, + 0x001045ea, 0x0401f917, 0x4d440000, 0x59368c03, + 0x83440580, 0x000007fe, 0x04020008, 0x59a8121b, + 0x84081540, 0x0201f800, 0x001050f7, 0x04020002, + 0x8408154a, 0x480b521b, 0x42028000, 0x00000029, + 0x4d3c0000, 0x417a7800, 0x0201f800, 0x0010ff80, + 0x5c027800, 0x836c0580, 0x00000003, 0x0400000c, + 0x5932680a, 0x59340008, 0x800001c0, 0x04020008, + 0x59368c03, 0x4933c857, 0x4937c857, 0x4947c857, + 0x0201f800, 0x001046a8, 0x0401f00c, 0x42000000, + 0x0010cf23, 0x0201f800, 0x0010bfb3, 0x42003000, + 0x00000015, 0x41782800, 0x42002000, 0x00000003, + 0x0201f800, 0x0010a22a, 0x5c028800, 0x0201f800, + 0x00109bf9, 0x0201f000, 0x00020b9d, 0x1c01f000, + 0x0401f8e4, 0x0401f7fa, 0x83380580, 0x00000014, + 0x0400000c, 0x4933c857, 0x0201f800, 0x00107226, + 0x02020000, 0x00107f37, 0x59300203, 0x82000580, + 0x00000002, 0x04000109, 0x0201f800, 0x0010032e, + 0x4933c857, 0x0201f800, 0x00106d91, 0x0201f800, + 0x0010b827, 0x42002800, 0x00000002, 0x59300403, + 0x82000580, 0x00000051, 0x02000000, 0x0010a3f8, + 0x4d3c0000, 0x417a7800, 0x0201f800, 0x0010ff80, + 0x5c027800, 0x42003000, 0x00000016, 0x41782800, + 0x4d400000, 0x4d440000, 0x59368c03, 0x42002000, + 0x00000009, 0x42028000, 0x00000029, 0x0201f800, + 0x0010a22a, 0x5c028800, 0x5c028000, 0x42000000, + 0x0010cf23, 0x0201f800, 0x0010bfb3, 0x0201f800, + 0x001099c7, 0x0402000c, 0x0201f800, 0x00101cb7, + 0x0401f8ac, 0x59340c03, 0x82040580, 0x000007fe, + 0x040207bf, 0x59a80a1b, 0x84040d40, 0x4807521b, + 0x0401f7bb, 0x0201f800, 0x001099e2, 0x04020003, + 0x0401f8a0, 0x0401f7b6, 0x59300403, 0x82000d80, + 0x00000032, 0x04020004, 0x0201f800, 0x00102309, + 0x0401f7af, 0x82000d80, 0x00000022, 0x04000895, + 0x0401f7ab, 0x4933c857, 0x4803c857, 0x0c01f001, + 0x00108681, 0x00108681, 0x00108681, 0x00108681, + 0x00108681, 0x00108681, 0x00108678, 0x00108678, + 0x00108678, 0x00108678, 0x00108678, 0x00108678, + 0x00108678, 0x00108678, 0x00108678, 0x00108678, + 0x00108678, 0x00108678, 0x00108678, 0x00108678, + 0x00108678, 0x00108678, 0x00108678, 0x00108678, + 0x00108678, 0x00108678, 0x00108678, 0x00108678, + 0x00108678, 0x00108678, 0x00108685, 0x001086a2, + 0x00108678, 0x001086a2, 0x001086a2, 0x00108678, + 0x00108678, 0x00108678, 0x00108678, 0x00108678, + 0x001086a2, 0x001086a2, 0x00108678, 0x00108678, + 0x00108678, 0x00108678, 0x00108678, 0x00108678, + 0x00108678, 0x00108678, 0x00108693, 0x001086a2, + 0x00108678, 0x0010868c, 0x00108678, 0x00108678, + 0x00108678, 0x0010868c, 0x00108678, 0x00108678, + 0x00108678, 0x001086a2, 0x0010868f, 0x00108678, + 0x0010867a, 0x001086a2, 0x00108678, 0x001086a2, + 0x001086a2, 0x00108678, 0x00108678, 0x00108678, + 0x00108678, 0x001086a2, 0x00108678, 0x00108678, + 0x00108678, 0x001086a2, 0x00108678, 0x00108678, + 0x00108678, 0x001086a2, 0x00108678, 0x00108678, + 0x00108678, 0x001086a2, 0x00108678, 0x001086a2, + 0x00108678, 0x00108678, 0x00108678, 0x00108678, + 0x00108678, 0x00108678, 0x00108678, 0x00108678, + 0x0201f800, 0x0010032e, 0x4d2c0000, 0x59325809, + 0x0201f800, 0x000203ef, 0x5c025800, 0x0201f000, + 0x00020b9d, 0x4a026203, 0x00000002, 0x0201f000, + 0x00109a67, 0x4a026203, 0x00000005, 0x59a8002c, + 0x48026205, 0x59a8002a, 0x48026006, 0x1c01f000, + 0x59300827, 0x49780a05, 0x0401f014, 0x0201f800, + 0x00109bf9, 0x0201f000, 0x00020b9d, 0x0201f800, + 0x00102309, 0x0201f800, 0x00106e41, 0x04000005, + 0x0201f800, 0x00106d91, 0x0201f000, 0x00020b9d, + 0x0201f800, 0x00106d91, 0x0201f800, 0x00020b9d, + 0x0201f000, 0x00106e2e, 0x4933c857, 0x4a026203, + 0x00000002, 0x59a8002a, 0x48026006, 0x1c01f000, + 0x4933c857, 0x0201f800, 0x0010989f, 0x0400002e, + 0x4d2c0000, 0x0201f800, 0x00109f51, 0x0402000a, + 0x4d400000, 0x42028000, 0x00000031, 0x42000800, + 0x00000004, 0x0201f800, 0x00109d2a, 0x5c028000, + 0x0401f020, 0x59300c07, 0x82040580, 0x00000010, + 0x04000004, 0x82040580, 0x00000011, 0x0402000a, + 0x4a025a07, 0x00000031, 0x4a02580e, 0x00000004, + 0x4a02580f, 0x000000ff, 0x0201f800, 0x000203ef, + 0x0401f010, 0x592c0405, 0x8c00051e, 0x0400000d, + 0x4a025a05, 0x00000103, 0x4a025806, 0x01000000, + 0x4da00000, 0x4cec0000, 0x5931d82a, 0x58ef400a, + 0x58ec0008, 0x0801f800, 0x5c01d800, 0x5c034000, + 0x5c025800, 0x1c01f000, 0x4933c857, 0x83340580, + 0x0010e23c, 0x0402000c, 0x83380d80, 0x00000015, + 0x04000005, 0x83380d80, 0x00000016, 0x02020000, + 0x00107f37, 0x0201f800, 0x0010b82a, 0x0201f000, + 0x00020b9d, 0x59340400, 0x82000500, 0x000000ff, 0x82003480, 0x0000000c, 0x02021800, 0x0010032e, 0x59303403, 0x82180d80, 0x0000004d, 0x02000000, - 0x00109a30, 0x82180d80, 0x00000033, 0x02000000, - 0x001099e5, 0x82180d80, 0x00000028, 0x02000000, - 0x001097ec, 0x82180d80, 0x00000029, 0x02000000, - 0x00109801, 0x82180d80, 0x00000057, 0x02000000, - 0x0010a105, 0x82180d80, 0x0000001f, 0x02000000, - 0x00107f1a, 0x82180d80, 0x00000055, 0x02000000, - 0x00107ef3, 0x82180d80, 0x00000000, 0x04000554, - 0x82180d80, 0x00000022, 0x02000000, 0x00107f47, - 0x82180d80, 0x00000035, 0x02000000, 0x00108077, - 0x82180d80, 0x00000039, 0x040004f0, 0x82180d80, - 0x0000003d, 0x02000000, 0x00107fab, 0x82180d80, - 0x00000044, 0x02000000, 0x00107fe8, 0x82180d80, - 0x00000049, 0x02000000, 0x0010803e, 0x82180d80, - 0x00000041, 0x02000000, 0x0010802a, 0x82180d80, - 0x00000043, 0x02000000, 0x00109b94, 0x82180d80, - 0x00000051, 0x02000000, 0x00109c07, 0x82180d80, + 0x00109c68, 0x82180d80, 0x00000033, 0x02000000, + 0x00109c1d, 0x82180d80, 0x00000028, 0x02000000, + 0x00109a24, 0x82180d80, 0x00000029, 0x02000000, + 0x00109a39, 0x82180d80, 0x00000057, 0x02000000, + 0x0010a342, 0x82180d80, 0x0000001f, 0x02000000, + 0x00108117, 0x82180d80, 0x00000055, 0x02000000, + 0x001080f0, 0x82180d80, 0x00000000, 0x04000545, + 0x82180d80, 0x00000022, 0x02000000, 0x00108144, + 0x82180d80, 0x00000035, 0x02000000, 0x0010827c, + 0x82180d80, 0x00000039, 0x040004e1, 0x82180d80, + 0x0000003d, 0x02000000, 0x001081b0, 0x82180d80, + 0x00000044, 0x02000000, 0x001081ed, 0x82180d80, + 0x00000049, 0x02000000, 0x00108243, 0x82180d80, + 0x00000041, 0x02000000, 0x0010822f, 0x82180d80, + 0x00000043, 0x02000000, 0x00109dcc, 0x82180d80, + 0x00000051, 0x02000000, 0x00109e3f, 0x82180d80, 0x00000004, 0x04020003, 0x42000000, 0x00000001, 0x83380d80, 0x00000015, 0x04000006, 0x83380d80, - 0x00000016, 0x02020000, 0x00107d3d, 0x0401f289, - 0x4c000000, 0x0201f800, 0x0010b4ff, 0x5c000000, + 0x00000016, 0x02020000, 0x00107f37, 0x0401f28d, + 0x4c000000, 0x0201f800, 0x0010b82a, 0x5c000000, 0x4d2c0000, 0x4d3c0000, 0x0c01f804, 0x5c027800, - 0x5c025800, 0x1c01f000, 0x0010854a, 0x0010854e, - 0x0010854a, 0x001085c3, 0x0010854a, 0x00108711, - 0x001087c7, 0x0010854a, 0x0010854a, 0x00108778, - 0x0010854a, 0x0010878a, 0x4933c857, 0x497a6008, + 0x5c025800, 0x1c01f000, 0x0010875e, 0x00108762, + 0x0010875e, 0x001087d7, 0x0010875e, 0x00108929, + 0x001089df, 0x0010875e, 0x0010875e, 0x00108990, + 0x0010875e, 0x001089a2, 0x4933c857, 0x497a6008, 0x59300809, 0x58040000, 0x4a000a05, 0x00000103, 0x0201f000, 0x00020b9d, 0x4933c857, 0x40000000, 0x40000000, 0x1c01f000, 0x4933c857, 0x0201f800, - 0x0010481c, 0x59a8005a, 0x82000580, 0x00000074, - 0x0402005b, 0x0201f800, 0x0010adf8, 0x04020014, - 0x0401f85b, 0x0201f800, 0x00109667, 0x0400000c, - 0x0201f800, 0x00109d13, 0x04020009, 0x41780800, + 0x0010491c, 0x59a8005a, 0x82000580, 0x00000074, + 0x0402005b, 0x0201f800, 0x0010b107, 0x04020014, + 0x0401f85b, 0x0201f800, 0x0010989f, 0x0400000c, + 0x0201f800, 0x00109f51, 0x04020009, 0x41780800, 0x4d400000, 0x42028000, 0x00000000, 0x0201f800, - 0x00109af2, 0x5c028000, 0x0401f003, 0x0201f800, - 0x00101cb2, 0x0201f000, 0x00020b9d, 0x0201f800, - 0x00109667, 0x04000007, 0x0201f800, 0x00109d13, - 0x04020004, 0x0401ff31, 0x0201f000, 0x00020b9d, - 0x417a7800, 0x0201f800, 0x0010fc72, 0x42000000, - 0x0010cc23, 0x0201f800, 0x0010bc88, 0x59340200, + 0x00109d2a, 0x5c028000, 0x0401f003, 0x0201f800, + 0x00101cb7, 0x0201f000, 0x00020b9d, 0x0201f800, + 0x0010989f, 0x04000007, 0x0201f800, 0x00109f51, + 0x04020004, 0x0401ff23, 0x0201f000, 0x00020b9d, + 0x417a7800, 0x0201f800, 0x0010ff80, 0x42000000, + 0x0010cf23, 0x0201f800, 0x0010bfb3, 0x59340200, 0x84000558, 0x48026a00, 0x42003000, 0x00000003, - 0x0201f800, 0x0010b412, 0x4d300000, 0x0201f800, - 0x00107cfe, 0x02000800, 0x0010032e, 0x4926601c, + 0x0201f800, 0x0010b73d, 0x4d300000, 0x0201f800, + 0x00107ef8, 0x02000800, 0x0010032e, 0x4926601c, 0x4936600a, 0x497a6009, 0x4a026407, 0x00000001, 0x4a026403, 0x00000001, 0x59240400, 0x8c00050a, 0x04020011, 0x4a026407, 0x00000004, 0x4a026203, 0x00000007, 0x4a026429, 0x00000001, 0x42003000, 0x00000001, 0x4d400000, 0x42028000, 0x00000029, - 0x41782800, 0x0201f800, 0x0010ae7c, 0x5c028000, + 0x41782800, 0x0201f800, 0x0010b18b, 0x5c028000, 0x0401f009, 0x42000800, 0x0000000b, 0x0201f800, - 0x001044f1, 0x4a026203, 0x00000001, 0x0201f800, - 0x00106b17, 0x5c026000, 0x0401fef8, 0x0201f800, - 0x00101cb2, 0x0201f000, 0x00020b9d, 0x0401fef3, - 0x42000000, 0x00000001, 0x0401f11b, 0x4933c857, + 0x001045ea, 0x4a026203, 0x00000001, 0x0201f800, + 0x00106d1c, 0x5c026000, 0x0401feea, 0x0201f800, + 0x00101cb7, 0x0201f000, 0x00020b9d, 0x0401fee5, + 0x42000000, 0x00000001, 0x0401f11f, 0x4933c857, 0x59340200, 0x8c000500, 0x0400000c, 0x4d3c0000, - 0x417a7800, 0x0201f800, 0x001044e6, 0x5c027800, + 0x417a7800, 0x0201f800, 0x001045df, 0x5c027800, 0x8d0e1d20, 0x04000005, 0x42000800, 0x00000006, - 0x0201f800, 0x001044f1, 0x1c01f000, 0x4933c857, + 0x0201f800, 0x001045ea, 0x1c01f000, 0x4933c857, 0x59a8085a, 0x82040580, 0x00000074, 0x0400000e, - 0x4807c857, 0x82040580, 0x00000100, 0x040200e8, - 0x59cc0408, 0x4803c857, 0x8c000500, 0x040000e4, + 0x4807c857, 0x82040580, 0x00000100, 0x040200ec, + 0x59cc0408, 0x4803c857, 0x8c000500, 0x040000e8, 0x59341403, 0x82080580, 0x000007fe, 0x04000006, - 0x0401f0df, 0x59341403, 0x82080580, 0x000007fe, - 0x04020018, 0x59a8021b, 0x8c000506, 0x04000013, + 0x0401f0e3, 0x59341403, 0x82080580, 0x000007fe, + 0x0402001c, 0x59a8021b, 0x8c000506, 0x04000013, 0x59cc0000, 0x82000500, 0x000000ff, 0x59240c08, - 0x80040580, 0x0400000d, 0x0201f800, 0x00101cb2, - 0x0201f800, 0x00020b9d, 0x42000000, 0x0010cc14, - 0x0201f800, 0x0010bc88, 0x4202d800, 0x00000001, - 0x0201f000, 0x00104011, 0x0401fb20, 0x0401f067, - 0x41780800, 0x0201f800, 0x001045e8, 0x59341403, + 0x80040580, 0x0400000d, 0x0201f800, 0x00101cb7, + 0x0201f800, 0x00020b9d, 0x42000000, 0x0010cf14, + 0x0201f800, 0x0010bfb3, 0x4202d800, 0x00000001, + 0x0201f000, 0x0010410a, 0x0201f800, 0x0010c0e8, + 0x02020000, 0x0010a474, 0x0401fb20, 0x0401f067, + 0x41780800, 0x0201f800, 0x001046e4, 0x59341403, 0x82080580, 0x000007fc, 0x04020039, 0x4a026802, - 0x00fffffc, 0x0201f800, 0x00109667, 0x04000012, - 0x0201f800, 0x00109d13, 0x0402000f, 0x0401f8ec, + 0x00fffffc, 0x0201f800, 0x0010989f, 0x04000012, + 0x0201f800, 0x00109f51, 0x0402000f, 0x0401f8ec, 0x41780800, 0x4d400000, 0x42028000, 0x00000000, - 0x0201f800, 0x00109af2, 0x5c028000, 0x42000800, - 0x00000004, 0x0201f800, 0x001044f1, 0x0201f000, + 0x0201f800, 0x00109d2a, 0x5c028000, 0x42000800, + 0x00000004, 0x0201f800, 0x001045ea, 0x0201f000, 0x00020b9d, 0x42000800, 0x00000004, 0x0201f800, - 0x001044f1, 0x0201f800, 0x00101cb2, 0x59300c26, + 0x001045ea, 0x0201f800, 0x00101cb7, 0x59300c26, 0x82040580, 0x00000021, 0x04000005, 0x82040580, 0x00000051, 0x02020000, 0x00020b9d, 0x0201f800, - 0x00101f51, 0x42028800, 0x000007fd, 0x42003000, - 0x00fffffd, 0x0201f800, 0x0010452c, 0x02020800, + 0x00101fb4, 0x42028800, 0x000007fd, 0x42003000, + 0x00fffffd, 0x0201f800, 0x00104628, 0x02020800, 0x0010032e, 0x4936600a, 0x497a6c12, 0x4a02601d, 0x00000003, 0x4a026203, 0x00000001, 0x4a026403, - 0x00000022, 0x0201f000, 0x00106b17, 0x59a80070, - 0x8c000502, 0x04000011, 0x0201f800, 0x00104fc6, + 0x00000022, 0x0201f000, 0x00106d1c, 0x59a80070, + 0x8c000502, 0x04000011, 0x0201f800, 0x001050f7, 0x42001000, 0x00000010, 0x04020009, 0x59340002, 0x82000500, 0x00ff0000, 0x82000580, 0x00ff0000, 0x04000006, 0x42001000, 0x00000008, 0x0201f800, - 0x00104c17, 0x04020072, 0x0201f800, 0x00109667, - 0x04000073, 0x0201f800, 0x00109d13, 0x04020005, + 0x00104d1c, 0x04020072, 0x0201f800, 0x0010989f, + 0x04000073, 0x0201f800, 0x00109f51, 0x04020005, 0x592c0405, 0x8c00051c, 0x040207af, 0x0401f8a0, - 0x42000800, 0x00000005, 0x0201f800, 0x001044f1, + 0x42000800, 0x00000005, 0x0201f800, 0x001045ea, 0x4a026203, 0x00000001, 0x4a026403, 0x00000003, - 0x0201f000, 0x00106b17, 0x59cc0408, 0x8c000518, - 0x0400001b, 0x0201f800, 0x00109980, 0x0201f800, - 0x00104fc6, 0x04000009, 0x59cc0408, 0x8c000516, + 0x0201f000, 0x00106d1c, 0x59cc0408, 0x8c000518, + 0x0400001b, 0x0201f800, 0x00109bb8, 0x0201f800, + 0x001050f7, 0x04000009, 0x59cc0408, 0x8c000516, 0x04000006, 0x59300426, 0x82000580, 0x00000021, 0x04020795, 0x1c01f000, 0x59a8021b, 0x8400054a, 0x4803521b, 0x4803541b, 0x59a8000f, 0x497b8830, @@ -23155,34 +23341,34 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x00000021, 0x04020788, 0x1c01f000, 0x42001000, 0x000000ef, 0x59a80078, 0x8c00053e, 0x04000005, 0x59a8021b, 0x8c000516, 0x04000002, 0x59a8100f, - 0x42024800, 0x0010ccd1, 0x480a4805, 0x480b500f, + 0x42024800, 0x0010cfd1, 0x480a4805, 0x480b500f, 0x497b8830, 0x84081570, 0x480b8832, 0x0201f800, - 0x001099aa, 0x59a8021b, 0x84000548, 0x4803521b, - 0x4803541b, 0x0201f800, 0x0010ae51, 0x0402076e, + 0x00109be2, 0x59a8021b, 0x84000548, 0x4803521b, + 0x4803541b, 0x0201f800, 0x0010b160, 0x0402076e, 0x599c0019, 0x8c000510, 0x0402003d, 0x59a8021b, 0x8400054c, 0x4803521b, 0x42000800, 0x00000007, - 0x0201f800, 0x001044f1, 0x417a7800, 0x0201f800, - 0x001044e6, 0x42003800, 0x000000ef, 0x42000000, - 0x000000e8, 0x0201f800, 0x00105f68, 0x02000800, - 0x0010452c, 0x02020800, 0x0010032e, 0x4936600a, + 0x0201f800, 0x001045ea, 0x417a7800, 0x0201f800, + 0x001045df, 0x42003800, 0x000000ef, 0x42000000, + 0x000000e8, 0x0201f800, 0x00106134, 0x02000800, + 0x00104628, 0x02020800, 0x0010032e, 0x4936600a, 0x59340200, 0x8400051a, 0x48026a00, 0x42000800, - 0x00000003, 0x0201f800, 0x001044f1, 0x4a026407, + 0x00000003, 0x0201f800, 0x001045ea, 0x4a026407, 0x00000001, 0x4a026203, 0x00000001, 0x4a026403, - 0x00000002, 0x0201f000, 0x00106b17, 0x0401fdef, + 0x00000002, 0x0201f000, 0x00106d1c, 0x0401fddd, 0x42000000, 0x00000001, 0x0401f017, 0x599c0017, 0x8c00050a, 0x04000793, 0x42000800, 0x00000004, - 0x0201f800, 0x001044f1, 0x49375065, 0x59a8021b, + 0x0201f800, 0x001045ea, 0x49375065, 0x59a8021b, 0x8c000508, 0x0400000a, 0x599c0018, 0x8c00051c, 0x04000007, 0x42000800, 0x000003e8, 0x42001000, - 0x00110694, 0x0201f800, 0x00106433, 0x0201f000, + 0x00110987, 0x0201f800, 0x00106638, 0x0201f000, 0x00020b9d, 0x4933c857, 0x80003540, 0x04000005, - 0x42000800, 0x00000007, 0x0201f800, 0x001044f1, + 0x42000800, 0x00000007, 0x0201f800, 0x001045ea, 0x801831c0, 0x04020012, 0x59302009, 0x801021c0, 0x04000004, 0x58100405, 0x8c00051e, 0x0402000c, 0x59341c03, 0x42002000, 0x00000004, 0x42003000, 0x00000012, 0x4d200000, 0x59364013, 0x81224130, - 0x0201f800, 0x00103931, 0x5c024000, 0x0201f800, - 0x00101cb2, 0x0201f000, 0x00020b9d, 0x4c5c0000, + 0x0201f800, 0x00103a21, 0x5c024000, 0x0201f800, + 0x00101cb7, 0x0201f000, 0x00020b9d, 0x4c5c0000, 0x4d2c0000, 0x59325809, 0x0201f800, 0x00020864, 0x5c025800, 0x59cc0008, 0x48002805, 0x59cc0009, 0x48002806, 0x49782807, 0x49782808, 0x49782809, @@ -23194,155 +23380,155 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x59cc041a, 0x900001c0, 0x4800280a, 0x5c00b800, 0x1c01f000, 0x4933c857, 0x59a8005a, 0x82000580, 0x00000014, 0x0402004c, 0x59a80070, 0x8c000502, - 0x04000015, 0x0201f800, 0x00104fc6, 0x42001000, + 0x04000015, 0x0201f800, 0x001050f7, 0x42001000, 0x00000010, 0x04020009, 0x59340002, 0x82000500, 0x00ff0000, 0x82000580, 0x00ff0000, 0x0400000a, - 0x42001000, 0x00000008, 0x0201f800, 0x00104c17, + 0x42001000, 0x00000008, 0x0201f800, 0x00104d1c, 0x04000005, 0x59a80070, 0x8400054c, 0x48035070, 0x0401f035, 0x836c0580, 0x00000003, 0x0402000f, 0x59300009, 0x80000540, 0x0402000c, 0x59341c03, 0x42002000, 0x00000006, 0x42003000, 0x00000013, 0x4d200000, 0x59364013, 0x81224130, 0x0201f800, - 0x00103931, 0x5c024000, 0x0201f800, 0x00104652, - 0x0401fe73, 0x0401fad5, 0x0402001f, 0x59340404, + 0x00103a21, 0x5c024000, 0x0201f800, 0x00104752, + 0x0401fe6f, 0x0401fae3, 0x0402001f, 0x59340404, 0x80000540, 0x0400001c, 0x42000800, 0x00000006, - 0x0201f800, 0x001044f1, 0x0201f800, 0x00109667, - 0x04000011, 0x0201f800, 0x00109d13, 0x0402000a, + 0x0201f800, 0x001045ea, 0x0201f800, 0x0010989f, + 0x04000011, 0x0201f800, 0x00109f51, 0x0402000a, 0x41780800, 0x4d400000, 0x42028000, 0x00000000, - 0x0201f800, 0x00109af2, 0x5c028000, 0x0201f000, + 0x0201f800, 0x00109d2a, 0x5c028000, 0x0201f000, 0x00020b9d, 0x4a025a05, 0x00000103, 0x4a025806, - 0x02000000, 0x0201f800, 0x00101cb2, 0x0201f000, - 0x00020b9d, 0x0201f800, 0x00104bb9, 0x0201f800, - 0x00109667, 0x04000007, 0x0201f800, 0x00109d13, - 0x04020004, 0x0401fd39, 0x0201f000, 0x00020b9d, - 0x0401fd36, 0x0201f800, 0x0010b4ff, 0x80000580, + 0x02000000, 0x0201f800, 0x00101cb7, 0x0201f000, + 0x00020b9d, 0x0201f800, 0x00104cbe, 0x0201f800, + 0x0010989f, 0x04000007, 0x0201f800, 0x00109f51, + 0x04020004, 0x0401fd27, 0x0201f000, 0x00020b9d, + 0x0401fd24, 0x0201f800, 0x0010b82a, 0x80000580, 0x59a80070, 0x8c00050c, 0x04000005, 0x8400050c, 0x48035070, 0x82000540, 0x00000001, 0x0401f756, 0x4933c857, 0x59a8005a, 0x82000580, 0x00000014, 0x0402000b, 0x42000800, 0x0000000b, 0x0201f800, - 0x001044f1, 0x4a026203, 0x00000001, 0x4a026403, - 0x00000001, 0x0201f000, 0x00106b17, 0x42000000, + 0x001045ea, 0x4a026203, 0x00000001, 0x4a026403, + 0x00000001, 0x0201f000, 0x00106d1c, 0x42000000, 0x00000001, 0x0401f744, 0x4933c857, 0x40003000, 0x59a8005a, 0x82000580, 0x00000004, 0x04020022, 0x82183580, 0x0000000b, 0x0402001d, 0x5930081c, - 0x58040200, 0x8c000500, 0x02000000, 0x0010a1b4, + 0x58040200, 0x8c000500, 0x02000000, 0x0010a3f1, 0x58040200, 0x8c000508, 0x04000011, 0x84000508, 0x48000a00, 0x42000800, 0x00000003, 0x0201f800, - 0x001044f1, 0x5930080a, 0x49780806, 0x4a026202, + 0x001045ea, 0x5930080a, 0x49780806, 0x4a026202, 0x0000ffff, 0x4a026203, 0x00000001, 0x4a026403, - 0x00000051, 0x0201f000, 0x00106b17, 0x42000800, - 0x00000007, 0x0201f800, 0x001044f1, 0x0201f000, + 0x00000051, 0x0201f000, 0x00106d1c, 0x42000800, + 0x00000007, 0x0201f800, 0x001045ea, 0x0201f000, 0x00020b9d, 0x42000000, 0x00000001, 0x0401f71a, 0x4803c857, 0x4d2c0000, 0x4d3c0000, 0x0c01f804, - 0x5c027800, 0x5c025800, 0x1c01f000, 0x0010854a, - 0x001087d6, 0x0010854a, 0x00108833, 0x0010854a, - 0x001088a4, 0x001087c7, 0x0010854a, 0x0010854a, - 0x001088c8, 0x0010854a, 0x001088da, 0x4933c857, + 0x5c027800, 0x5c025800, 0x1c01f000, 0x0010875e, + 0x001089ee, 0x0010875e, 0x00108a4b, 0x0010875e, + 0x00108abc, 0x001089df, 0x0010875e, 0x0010875e, + 0x00108ae0, 0x0010875e, 0x00108af2, 0x4933c857, 0x4d1c0000, 0x59301403, 0x82080580, 0x00000003, 0x04000008, 0x82081580, 0x0000001e, 0x04020003, 0x0201f800, 0x00020b9d, 0x5c023800, 0x1c01f000, 0x0401ff3d, 0x0401f7fd, 0x4933c857, 0x42000000, - 0x0010cc27, 0x0201f800, 0x0010bc88, 0x0201f800, - 0x0010b4ff, 0x0201f800, 0x0010481c, 0x0201f800, - 0x00109667, 0x0400000b, 0x0201f800, 0x00109d13, + 0x0010cf27, 0x0201f800, 0x0010bfb3, 0x0201f800, + 0x0010b82a, 0x0201f800, 0x0010491c, 0x0201f800, + 0x0010989f, 0x0400000b, 0x0201f800, 0x00109f51, 0x04020008, 0x4200b000, 0x00000002, 0x0201f800, - 0x00109cf2, 0x0401fcb9, 0x0201f000, 0x00020b9d, + 0x00109f30, 0x0401fca7, 0x0201f000, 0x00020b9d, 0x0401f910, 0x04020030, 0x417a7800, 0x0201f800, - 0x001044e6, 0x417a7800, 0x0201f800, 0x0010fc72, - 0x42000000, 0x0010cc23, 0x0201f800, 0x0010bc88, + 0x001045df, 0x417a7800, 0x0201f800, 0x0010ff80, + 0x42000000, 0x0010cf23, 0x0201f800, 0x0010bfb3, 0x59340200, 0x84000558, 0x48026a00, 0x4a026403, 0x00000002, 0x42003000, 0x00000003, 0x0201f800, - 0x0010b412, 0x59240400, 0x8c00050a, 0x04020011, + 0x0010b73d, 0x59240400, 0x8c00050a, 0x04020011, 0x4d400000, 0x41782800, 0x42003000, 0x00000005, - 0x42028000, 0x00000029, 0x0201f800, 0x0010ae7c, + 0x42028000, 0x00000029, 0x0201f800, 0x0010b18b, 0x5c028000, 0x4a026203, 0x00000007, 0x4a026407, 0x00000004, 0x4a026429, 0x00000001, 0x1c01f000, - 0x42000800, 0x00000003, 0x0201f800, 0x001044f1, - 0x4a026203, 0x00000001, 0x0201f800, 0x00106b17, + 0x42000800, 0x00000003, 0x0201f800, 0x001045ea, + 0x4a026203, 0x00000001, 0x0201f800, 0x00106d1c, 0x0401f7f7, 0x59cc0407, 0x82000580, 0x00000009, 0x0402000a, 0x59340412, 0x82000500, 0x000000ff, 0x0400000c, 0x80000040, 0x48026c12, 0x4a026006, 0x0000000a, 0x0401f7ea, 0x59cc0207, 0x82000500, 0x0000ff00, 0x82000580, 0x00001900, 0x040007c2, - 0x0401fc72, 0x80000580, 0x0401f69b, 0x4933c857, - 0x0201f800, 0x00109667, 0x04000011, 0x0201f800, - 0x00109d13, 0x0402000e, 0x4c580000, 0x4200b000, - 0x00000002, 0x0201f800, 0x00109cf2, 0x5c00b000, - 0x0401fc62, 0x42000800, 0x00000007, 0x0201f800, - 0x001044f1, 0x0201f000, 0x00020b9d, 0x59340403, + 0x0401fc60, 0x80000580, 0x0401f69b, 0x4933c857, + 0x0201f800, 0x0010989f, 0x04000011, 0x0201f800, + 0x00109f51, 0x0402000e, 0x4c580000, 0x4200b000, + 0x00000002, 0x0201f800, 0x00109f30, 0x5c00b000, + 0x0401fc50, 0x42000800, 0x00000007, 0x0201f800, + 0x001045ea, 0x0201f000, 0x00020b9d, 0x59340403, 0x82000580, 0x000007fc, 0x04020007, 0x42000000, - 0x00000004, 0x0201f800, 0x00107f81, 0x04000023, - 0x0401f032, 0x0401fc51, 0x59cc3407, 0x82183500, + 0x00000004, 0x0201f800, 0x0010817e, 0x04000023, + 0x0401f032, 0x0401fc3f, 0x59cc3407, 0x82183500, 0x000000ff, 0x82180580, 0x00000005, 0x04000020, 0x82180580, 0x0000000b, 0x04000018, 0x59cc0207, 0x82000500, 0x0000ff00, 0x04020004, 0x82180580, 0x00000009, 0x04000016, 0x82000580, 0x00001900, 0x0402000e, 0x82180580, 0x00000009, 0x04000010, - 0x42000800, 0x00000004, 0x0201f800, 0x001044f1, - 0x0201f800, 0x00101cb2, 0x0201f800, 0x0010b4ff, - 0x0201f000, 0x00020b9d, 0x0201f800, 0x0010b4ff, + 0x42000800, 0x00000004, 0x0201f800, 0x001045ea, + 0x0201f800, 0x00101cb7, 0x0201f800, 0x0010b82a, + 0x0201f000, 0x00020b9d, 0x0201f800, 0x0010b82a, 0x42000000, 0x00000001, 0x0401f657, 0x0201f800, - 0x00109667, 0x59325809, 0x04000008, 0x592c0205, + 0x0010989f, 0x59325809, 0x04000008, 0x592c0205, 0x82000580, 0x00000139, 0x040007f4, 0x592c0405, 0x8c00051e, 0x040207f1, 0x59340412, 0x800001c0, 0x04000008, 0x80000040, 0x48026c12, 0x4a026006, 0x0000000a, 0x4a026403, 0x00000016, 0x1c01f000, 0x59340403, 0x82000580, 0x000007fe, 0x04020007, 0x59a8021b, 0x84000540, 0x4803521b, 0x0201f800, - 0x00104146, 0x0401f7dd, 0x0201f800, 0x0010b4ff, - 0x417a7800, 0x0201f800, 0x0010fc72, 0x42003000, - 0x00000005, 0x0201f800, 0x0010b412, 0x42000000, - 0x0010cc23, 0x0201f800, 0x0010bc88, 0x0401f7d1, + 0x0010423f, 0x0401f7dd, 0x0201f800, 0x0010b82a, + 0x417a7800, 0x0201f800, 0x0010ff80, 0x42003000, + 0x00000005, 0x0201f800, 0x0010b73d, 0x42000000, + 0x0010cf23, 0x0201f800, 0x0010bfb3, 0x0401f7d1, 0x4933c857, 0x0401f865, 0x0402000b, 0x42000800, - 0x00000005, 0x0201f800, 0x001044f1, 0x4a026203, + 0x00000005, 0x0201f800, 0x001045ea, 0x4a026203, 0x00000001, 0x4a026403, 0x00000003, 0x0201f000, - 0x00106b17, 0x42000800, 0x00000004, 0x0201f800, - 0x001044f1, 0x0201f800, 0x00109d13, 0x0402000b, + 0x00106d1c, 0x42000800, 0x00000004, 0x0201f800, + 0x001045ea, 0x0201f800, 0x00109f51, 0x0402000b, 0x4c580000, 0x4200b000, 0x00000002, 0x0201f800, - 0x00109cf2, 0x5c00b000, 0x0201f800, 0x001084a2, - 0x0201f000, 0x00020b9d, 0x0201f800, 0x001084a2, - 0x0201f800, 0x0010b4ff, 0x80000580, 0x0401f606, + 0x00109f30, 0x5c00b000, 0x0201f800, 0x001086a8, + 0x0201f000, 0x00020b9d, 0x0201f800, 0x001086a8, + 0x0201f800, 0x0010b82a, 0x80000580, 0x0401f606, 0x4933c857, 0x0401f841, 0x0402000b, 0x42000800, - 0x00000009, 0x0201f800, 0x001044f1, 0x4a026203, + 0x00000009, 0x0201f800, 0x001045ea, 0x4a026203, 0x00000001, 0x4a026403, 0x00000005, 0x0201f000, - 0x00106b17, 0x0201f800, 0x0010b4ff, 0x42000000, + 0x00106d1c, 0x0201f800, 0x0010b82a, 0x42000000, 0x00000001, 0x0401f5f4, 0x4933c857, 0x5930081c, - 0x58040200, 0x8c000500, 0x02000000, 0x0010a1b4, + 0x58040200, 0x8c000500, 0x02000000, 0x0010a3f1, 0x0401f82a, 0x0402000b, 0x42000800, 0x0000000b, - 0x0201f800, 0x001044f1, 0x4a026203, 0x00000001, - 0x4a026403, 0x00000001, 0x0201f000, 0x00106b17, + 0x0201f800, 0x001045ea, 0x4a026203, 0x00000001, + 0x4a026403, 0x00000001, 0x0201f000, 0x00106d1c, 0x5930080a, 0x58040403, 0x82000580, 0x000007fe, 0x04020007, 0x42002800, 0x00000003, 0x0201f800, - 0x0010a1bb, 0x0201f000, 0x00020b9d, 0x0201f800, - 0x0010b4ff, 0x42000000, 0x00000001, 0x0401f5d2, + 0x0010a3f8, 0x0201f000, 0x00020b9d, 0x0201f800, + 0x0010b82a, 0x42000000, 0x00000001, 0x0401f5d2, 0x4933c857, 0x59cc0407, 0x82000580, 0x00000003, 0x04020009, 0x59cc0207, 0x82000500, 0x0000ff00, 0x82000d80, 0x00002a00, 0x04000003, 0x82000d80, 0x00001e00, 0x1c01f000, 0x4933c857, 0x82000540, 0x00000001, 0x1c01f000, 0x4933c857, 0x4d400000, 0x4c580000, 0x42028000, 0x00000000, 0x0201f800, - 0x00101f51, 0x59a8021b, 0x82000540, 0x00000003, - 0x4803521b, 0x0401f893, 0x04000005, 0x4d300000, - 0x4d340000, 0x4d440000, 0x0401f02b, 0x0401f8c8, + 0x00101fb4, 0x59a8021b, 0x82000540, 0x00000003, + 0x4803521b, 0x0401f8a1, 0x04000005, 0x4d300000, + 0x4d340000, 0x4d440000, 0x0401f02b, 0x0401f8d6, 0x04000032, 0x4d300000, 0x4d340000, 0x4d440000, - 0x83240580, 0x0010ccd1, 0x04020025, 0x59cc0408, - 0x8c00051e, 0x04020009, 0x42000800, 0x0010ccd1, + 0x83240580, 0x0010cfd1, 0x04020025, 0x59cc0408, + 0x8c00051e, 0x04020009, 0x42000800, 0x0010cfd1, 0x58040406, 0x8c000500, 0x04020004, 0x59a8021b, 0x84000552, 0x4803521b, 0x59240400, 0x8c00050a, 0x04020009, 0x42028000, 0x0000002a, 0x42028800, 0x0000ffff, 0x42003000, 0x00000002, 0x0201f800, - 0x0010b427, 0x42028000, 0x0000002a, 0x4d3c0000, - 0x42027800, 0x00000200, 0x0201f800, 0x0010fbe5, - 0x5c027800, 0x42000000, 0x0010cc23, 0x0201f800, - 0x0010bc88, 0x0201f800, 0x00101df2, 0x0201f800, - 0x00102020, 0x42028000, 0x00000002, 0x5c028800, + 0x0010b752, 0x42028000, 0x0000002a, 0x4d3c0000, + 0x42027800, 0x00000200, 0x0201f800, 0x0010fef2, + 0x5c027800, 0x42000000, 0x0010cf23, 0x0201f800, + 0x0010bfb3, 0x0201f800, 0x00101e2e, 0x0201f800, + 0x00102087, 0x42028000, 0x00000002, 0x5c028800, 0x5c026800, 0x5c026000, 0x41780800, 0x0201f800, - 0x001045e8, 0x59cc0800, 0x82040d00, 0x00ffffff, + 0x001046e4, 0x59cc0800, 0x82040d00, 0x00ffffff, 0x59240200, 0x82000540, 0x00000066, 0x48024a00, 0x48064805, 0x812000f0, 0x80040540, 0x48026813, 0x812241c0, 0x04020007, 0x4c040000, 0x42000000, - 0x00000001, 0x0201f800, 0x00104d11, 0x5c000800, - 0x4927c857, 0x83240580, 0x0010ccd1, 0x0402003e, + 0x00000001, 0x0201f800, 0x00104e36, 0x5c000800, + 0x4927c857, 0x83240580, 0x0010cfd1, 0x0402001e, 0x59a8121b, 0x59cc0408, 0x8c00051a, 0x04020005, 0x84081514, 0x4a0370e5, 0x00000800, 0x0401f004, 0x84081554, 0x4a0370e5, 0x00000c00, 0x480b521b, @@ -23350,481 +23536,488 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x59a80a1b, 0x84040d50, 0x59cc0013, 0x8c00053e, 0x04000003, 0x8c000536, 0x04000004, 0x59cc0017, 0x8c000536, 0x04020002, 0x84040d10, 0x4807521b, - 0x4807541b, 0x59a8021b, 0x8c000506, 0x0400000f, - 0x836c0580, 0x00000003, 0x04000004, 0x83240580, - 0x0010ccd1, 0x0400000f, 0x59240400, 0x8c00050c, - 0x0400000c, 0x4a026426, 0x00000021, 0x0201f800, - 0x00109cbc, 0x0401f007, 0x4c040000, 0x0201f800, - 0x0010a190, 0x0201f800, 0x00101f00, 0x5c000800, - 0x0201f800, 0x00104fc6, 0x04000007, 0x59cc0009, - 0x48035028, 0x59cc000a, 0x48035029, 0x0201f800, - 0x00109980, 0x5c00b000, 0x5c028000, 0x1c01f000, - 0x4933c857, 0x59a8141b, 0x82080580, 0x0000ffff, - 0x0400000c, 0x4c080000, 0x0201f800, 0x00104fc6, - 0x5c001000, 0x0402000b, 0x59cc0408, 0x8c000518, - 0x04000005, 0x8c08150a, 0x0400000b, 0x80000580, - 0x1c01f000, 0x8c081508, 0x040207fd, 0x0401f006, - 0x82080500, 0x00000030, 0x04020003, 0x8c081506, - 0x040207f7, 0x4a03541b, 0x0000ffff, 0x42000000, - 0x0010cb70, 0x0201f800, 0x0010bc88, 0x42003000, - 0x0000000c, 0x42001800, 0x0000ffff, 0x42002000, - 0x00000007, 0x4d200000, 0x417a4000, 0x0201f800, - 0x00103931, 0x5c024000, 0x4d400000, 0x4d3c0000, - 0x42003000, 0x00000001, 0x0201f800, 0x0010b427, - 0x42028000, 0x0000002a, 0x42027800, 0x00000200, - 0x0201f800, 0x0010fbe5, 0x5c028000, 0x5c027800, - 0x82000540, 0x00000001, 0x1c01f000, 0x4933c857, - 0x4c580000, 0x59a80018, 0x800001c0, 0x04000029, - 0x59341806, 0x800c19c0, 0x04000026, 0x820c1d80, - 0xdeaddead, 0x04000021, 0x59cc1000, 0x82081500, - 0x00ffff00, 0x80081110, 0x80080580, 0x04000004, - 0x42000000, 0x0010cc06, 0x0401f016, 0x83cc1400, - 0x0000000b, 0x4200b000, 0x00000002, 0x83341c00, - 0x00000006, 0x0401f830, 0x04000004, 0x42000000, - 0x0010cc07, 0x0401f00b, 0x83cc1400, 0x0000000d, - 0x4200b000, 0x00000002, 0x83341c00, 0x00000008, - 0x0401f825, 0x04000007, 0x42000000, 0x0010cc08, - 0x0201f800, 0x0010bc88, 0x82000540, 0x00000001, - 0x5c00b000, 0x1c01f000, 0x4933c857, 0x59cc0206, - 0x82000580, 0x00000014, 0x04020016, 0x59cc0407, - 0x82000580, 0x00000800, 0x04020012, 0x59cc0207, - 0x8c00051a, 0x0400000d, 0x82000500, 0x00000f00, - 0x82000580, 0x00000100, 0x04020008, 0x59cc020a, - 0x8c000508, 0x04020003, 0x8c00050a, 0x04000003, - 0x80000580, 0x1c01f000, 0x82000540, 0x00000001, - 0x1c01f000, 0x5c000000, 0x4c000000, 0x4803c857, - 0x480bc857, 0x480fc857, 0x485bc857, 0x50080800, - 0x500c0000, 0x80042580, 0x04020007, 0x80081000, - 0x800c1800, 0x8058b040, 0x040207f9, 0x80000580, - 0x1c01f000, 0x4803c857, 0x4807c857, 0x480bc857, - 0x480fc857, 0x80040480, 0x04001006, 0x42000000, - 0x00000001, 0x82040d40, 0x00000001, 0x1c01f000, - 0x41780000, 0x0401f7fc, 0x83380480, 0x00000053, - 0x02021800, 0x0010032e, 0x83380480, 0x0000004b, - 0x02001800, 0x0010032e, 0x0c01f001, 0x00108a61, - 0x00108a61, 0x00108a61, 0x00108a61, 0x00108a5f, - 0x00108a5f, 0x00108a5f, 0x00108a61, 0x0201f800, - 0x0010032e, 0x493bc857, 0x4a026203, 0x0000000d, - 0x493a6403, 0x42000800, 0x80000000, 0x0201f000, - 0x00020b3e, 0x83380580, 0x00000013, 0x04020008, - 0x59300403, 0x82000580, 0x00000050, 0x02020800, - 0x0010032e, 0x0201f000, 0x00020b9d, 0x4933c857, - 0x83380580, 0x00000027, 0x04020030, 0x4933c857, - 0x0201f800, 0x00106b8c, 0x4d3c0000, 0x417a7800, - 0x0201f800, 0x0010fc72, 0x5c027800, 0x42000000, - 0x0010cc23, 0x0201f800, 0x0010bc88, 0x4d2c0000, - 0x59325809, 0x0201f800, 0x00109667, 0x492fc857, - 0x0400000d, 0x4a025a05, 0x00000103, 0x59300c02, - 0x48065c07, 0x4a025a07, 0x00000029, 0x497a580a, - 0x592c0c09, 0x84040d50, 0x48065c09, 0x0201f800, - 0x000203ef, 0x5c025800, 0x42003000, 0x00000015, - 0x41782800, 0x42002000, 0x00000003, 0x4d400000, - 0x4d440000, 0x59368c03, 0x42028000, 0x00000029, - 0x0201f800, 0x00109fec, 0x5c028800, 0x5c028000, - 0x0201f000, 0x00020b9d, 0x83380580, 0x00000014, - 0x0402000d, 0x59300403, 0x82000c80, 0x00000053, - 0x02021800, 0x0010032e, 0x82000480, 0x00000040, - 0x02001800, 0x0010032e, 0x4933c857, 0x4803c857, - 0x0c01f00e, 0x83380580, 0x00000053, 0x0400000a, - 0x83380580, 0x00000048, 0x02020800, 0x0010032e, - 0x59300403, 0x82000580, 0x00000050, 0x02020800, - 0x0010032e, 0x1c01f000, 0x00108ad7, 0x00108ad5, - 0x00108ad5, 0x00108ad5, 0x00108ad5, 0x00108ad5, - 0x00108ad5, 0x00108ad5, 0x00108ad5, 0x00108ad5, - 0x00108ad5, 0x00108aee, 0x00108aee, 0x00108aee, - 0x00108aee, 0x00108ad5, 0x00108aee, 0x00108ad5, - 0x00108aee, 0x0201f800, 0x0010032e, 0x4933c857, - 0x0201f800, 0x00106b8c, 0x0201f800, 0x00109667, - 0x02000000, 0x00020b9d, 0x4d2c0000, 0x59325809, - 0x4a025a05, 0x00000103, 0x59300402, 0x48025c07, - 0x4a025a07, 0x00000006, 0x497a580a, 0x0201f800, - 0x000203ef, 0x5c025800, 0x0201f800, 0x0010977c, - 0x0201f000, 0x00020b9d, 0x4933c857, 0x0201f800, - 0x00106b8c, 0x0201f000, 0x00020b9d, 0x0201f800, - 0x0010032e, 0x5930001d, 0x800001c0, 0x02020800, - 0x00109fda, 0x59300004, 0x8c00053e, 0x04020033, - 0x0201f800, 0x0010a0b0, 0x040200ce, 0x59325809, - 0x592c0c09, 0x59cc2808, 0x82141d00, 0x00000c00, - 0x04000002, 0x59cc1809, 0x84040d58, 0x48065c09, - 0x82143500, 0x00000fff, 0x0402002e, 0x59340200, - 0x8c00050e, 0x040200b4, 0x0201f800, 0x00020c5a, - 0x04020008, 0x4a025a07, 0x00000000, 0x59300012, - 0x0201f800, 0x0010a0a5, 0x80000d40, 0x04020a02, - 0x4a025a05, 0x00000103, 0x48065808, 0x480e580b, - 0x901409c0, 0x4806580a, 0x59300c02, 0x48065c07, - 0x0201f800, 0x00109d18, 0x0201f800, 0x00109d1d, - 0x0201f800, 0x000203ef, 0x0201f800, 0x001048bd, - 0x59cc0008, 0x8c000518, 0x02020000, 0x0010984f, - 0x0201f000, 0x00020b9d, 0x0201f800, 0x00107021, - 0x040007cc, 0x4d3c0000, 0x42027800, 0x00000002, - 0x0201f800, 0x001091f1, 0x5c027800, 0x0401f7c5, - 0x4817c857, 0x480fc857, 0x82180500, 0x000000ff, - 0x0400000e, 0x592c0205, 0x82000500, 0x000000ff, - 0x82000580, 0x00000048, 0x04020008, 0x592c0408, - 0x800001c0, 0x04000005, 0x0201f800, 0x00109ec6, - 0x0201f000, 0x00109f0a, 0x82180d00, 0x00000c00, - 0x04000004, 0x59340200, 0x8c00050e, 0x0402005f, - 0x4a025a07, 0x00000000, 0x41782000, 0x8c183510, - 0x04000009, 0x59cc200b, 0x801021c0, 0x04000006, - 0x59cc000c, 0x82000500, 0x000000ff, 0x04000002, - 0x4803c857, 0x4812580d, 0x41780000, 0x8c183512, - 0x04000002, 0x59cc000a, 0x4802580c, 0x80100c00, - 0x040007aa, 0x82041480, 0x0000001d, 0x04001006, - 0x592c0405, 0x8c00051e, 0x04000027, 0x42000800, - 0x0000001c, 0x4c040000, 0x4c0c0000, 0x4c140000, + 0x4807541b, 0x59cc0408, 0x8c000518, 0x04000023, + 0x59a8021b, 0x8c000506, 0x04000016, 0x836c0580, + 0x00000003, 0x04000004, 0x83240580, 0x0010cfd1, + 0x0400001a, 0x59240400, 0x8c00050c, 0x04020008, + 0x4c040000, 0x42000000, 0x00000001, 0x0201f800, + 0x00104e36, 0x5c000800, 0x0401f010, 0x4a026426, + 0x00000021, 0x0201f800, 0x00109efa, 0x0401f00b, + 0x0201f800, 0x0010c0f4, 0x04020008, 0x4c040000, + 0x0201f800, 0x0010a3cd, 0x41781800, 0x0201f800, + 0x00101f63, 0x5c000800, 0x0201f800, 0x001050f7, + 0x04000007, 0x59cc0009, 0x48035028, 0x59cc000a, + 0x48035029, 0x0201f800, 0x00109bb8, 0x5c00b000, + 0x5c028000, 0x1c01f000, 0x4933c857, 0x59a8141b, + 0x82080580, 0x0000ffff, 0x0400000c, 0x4c080000, + 0x0201f800, 0x001050f7, 0x5c001000, 0x0402000b, + 0x59cc0408, 0x8c000518, 0x04000005, 0x8c08150a, + 0x0400000b, 0x80000580, 0x1c01f000, 0x8c081508, + 0x040207fd, 0x0401f006, 0x82080500, 0x00000030, + 0x04020003, 0x8c081506, 0x040207f7, 0x4a03541b, + 0x0000ffff, 0x42000000, 0x0010ce70, 0x0201f800, + 0x0010bfb3, 0x42003000, 0x0000000c, 0x42001800, + 0x0000ffff, 0x42002000, 0x00000007, 0x4d200000, + 0x417a4000, 0x0201f800, 0x00103a21, 0x5c024000, + 0x4d400000, 0x4d3c0000, 0x42003000, 0x00000001, + 0x0201f800, 0x0010b752, 0x42028000, 0x0000002a, + 0x42027800, 0x00000200, 0x0201f800, 0x0010fef2, + 0x5c028000, 0x5c027800, 0x82000540, 0x00000001, + 0x1c01f000, 0x4933c857, 0x4c580000, 0x59a80018, + 0x800001c0, 0x04000029, 0x59341806, 0x800c19c0, + 0x04000026, 0x820c1d80, 0xdeaddead, 0x04000021, + 0x59cc1000, 0x82081500, 0x00ffff00, 0x80081110, + 0x80080580, 0x04000004, 0x42000000, 0x0010cf06, + 0x0401f016, 0x83cc1400, 0x0000000b, 0x4200b000, + 0x00000002, 0x83341c00, 0x00000006, 0x0401f830, + 0x04000004, 0x42000000, 0x0010cf07, 0x0401f00b, + 0x83cc1400, 0x0000000d, 0x4200b000, 0x00000002, + 0x83341c00, 0x00000008, 0x0401f825, 0x04000007, + 0x42000000, 0x0010cf08, 0x0201f800, 0x0010bfb3, + 0x82000540, 0x00000001, 0x5c00b000, 0x1c01f000, + 0x4933c857, 0x59cc0206, 0x82000580, 0x00000014, + 0x04020016, 0x59cc0407, 0x82000580, 0x00000800, + 0x04020012, 0x59cc0207, 0x8c00051a, 0x0400000d, + 0x82000500, 0x00000f00, 0x82000580, 0x00000100, + 0x04020008, 0x59cc020a, 0x8c000508, 0x04020003, + 0x8c00050a, 0x04000003, 0x80000580, 0x1c01f000, + 0x82000540, 0x00000001, 0x1c01f000, 0x5c000000, + 0x4c000000, 0x4803c857, 0x480bc857, 0x480fc857, + 0x485bc857, 0x50080800, 0x500c0000, 0x80042580, + 0x04020007, 0x80081000, 0x800c1800, 0x8058b040, + 0x040207f9, 0x80000580, 0x1c01f000, 0x4803c857, + 0x4807c857, 0x480bc857, 0x480fc857, 0x80040480, + 0x04001006, 0x42000000, 0x00000001, 0x82040d40, + 0x00000001, 0x1c01f000, 0x41780000, 0x0401f7fc, + 0x83380480, 0x00000053, 0x02021800, 0x0010032e, + 0x83380480, 0x0000004b, 0x02001800, 0x0010032e, + 0x0c01f001, 0x00108c87, 0x00108c87, 0x00108c87, + 0x00108c87, 0x00108c85, 0x00108c85, 0x00108c85, + 0x00108c87, 0x0201f800, 0x0010032e, 0x493bc857, + 0x4a026203, 0x0000000d, 0x493a6403, 0x42000800, + 0x80000000, 0x0201f000, 0x00020b3e, 0x83380580, + 0x00000013, 0x04020008, 0x59300403, 0x82000580, + 0x00000050, 0x02020800, 0x0010032e, 0x0201f000, + 0x00020b9d, 0x4933c857, 0x83380580, 0x00000027, + 0x04020030, 0x4933c857, 0x0201f800, 0x00106d91, + 0x4d3c0000, 0x417a7800, 0x0201f800, 0x0010ff80, + 0x5c027800, 0x42000000, 0x0010cf23, 0x0201f800, + 0x0010bfb3, 0x4d2c0000, 0x59325809, 0x0201f800, + 0x0010989f, 0x492fc857, 0x0400000d, 0x4a025a05, + 0x00000103, 0x59300c02, 0x48065c07, 0x4a025a07, + 0x00000029, 0x497a580a, 0x592c0c09, 0x84040d50, + 0x48065c09, 0x0201f800, 0x000203ef, 0x5c025800, + 0x42003000, 0x00000015, 0x41782800, 0x42002000, + 0x00000003, 0x4d400000, 0x4d440000, 0x59368c03, + 0x42028000, 0x00000029, 0x0201f800, 0x0010a22a, + 0x5c028800, 0x5c028000, 0x0201f000, 0x00020b9d, + 0x83380580, 0x00000014, 0x0402000d, 0x59300403, + 0x82000c80, 0x00000053, 0x02021800, 0x0010032e, + 0x82000480, 0x00000040, 0x02001800, 0x0010032e, + 0x4933c857, 0x4803c857, 0x0c01f00e, 0x83380580, + 0x00000053, 0x0400000a, 0x83380580, 0x00000048, + 0x02020800, 0x0010032e, 0x59300403, 0x82000580, + 0x00000050, 0x02020800, 0x0010032e, 0x1c01f000, + 0x00108cfd, 0x00108cfb, 0x00108cfb, 0x00108cfb, + 0x00108cfb, 0x00108cfb, 0x00108cfb, 0x00108cfb, + 0x00108cfb, 0x00108cfb, 0x00108cfb, 0x00108d14, + 0x00108d14, 0x00108d14, 0x00108d14, 0x00108cfb, + 0x00108d14, 0x00108cfb, 0x00108d14, 0x0201f800, + 0x0010032e, 0x4933c857, 0x0201f800, 0x00106d91, + 0x0201f800, 0x0010989f, 0x02000000, 0x00020b9d, + 0x4d2c0000, 0x59325809, 0x4a025a05, 0x00000103, + 0x59300402, 0x48025c07, 0x4a025a07, 0x00000006, + 0x497a580a, 0x0201f800, 0x000203ef, 0x5c025800, + 0x0201f800, 0x001099b4, 0x0201f000, 0x00020b9d, + 0x4933c857, 0x0201f800, 0x00106d91, 0x0201f000, + 0x00020b9d, 0x0201f800, 0x0010032e, 0x5930001d, + 0x800001c0, 0x02020800, 0x0010a218, 0x59300004, + 0x8c00053e, 0x04020033, 0x0201f800, 0x0010a2ed, + 0x040200ce, 0x59325809, 0x592c0c09, 0x59cc2808, + 0x82141d00, 0x00000c00, 0x04000002, 0x59cc1809, + 0x84040d58, 0x48065c09, 0x82143500, 0x00000fff, + 0x0402002e, 0x59340200, 0x8c00050e, 0x040200b4, 0x0201f800, 0x00020c5a, 0x04020008, 0x4a025a07, - 0x00000000, 0x59300012, 0x0201f800, 0x0010a0a5, - 0x80000d40, 0x040209a0, 0x5c002800, 0x5c001800, - 0x4a025a05, 0x00000103, 0x48065808, 0x480e580b, - 0x901409c0, 0x4806580a, 0x5c000800, 0x4c500000, - 0x4c540000, 0x83cca400, 0x0000000c, 0x832cac00, - 0x0000000e, 0x0201f800, 0x00109186, 0x5c00a800, - 0x5c00a000, 0x59300008, 0x84000534, 0x48026008, - 0x0401f78e, 0x4c040000, 0x4c0c0000, 0x4c140000, - 0x0201f800, 0x00020c5a, 0x04020008, 0x4a025a07, - 0x00000000, 0x59300012, 0x0201f800, 0x0010a0a5, - 0x80000d40, 0x0402097c, 0x48065808, 0x5c002800, - 0x5c001800, 0x59301402, 0x480a5c07, 0x480e580b, - 0x901401c0, 0x4802580a, 0x0201f800, 0x00109d18, - 0x5c000800, 0x0201f800, 0x00109130, 0x0201f800, - 0x0010916b, 0x0401f779, 0x592c020b, 0x8c000502, - 0x040007a0, 0x592c0209, 0x8c00050e, 0x0402079d, - 0x59300012, 0x800c0d80, 0x0400079a, 0x4803c857, - 0x480fc857, 0x8c183514, 0x02000000, 0x0010988f, - 0x80000540, 0x04000793, 0x4807c856, 0x0201f000, - 0x0010988f, 0x592c020b, 0x8c000502, 0x0400074b, - 0x59300012, 0x800001c0, 0x0400074b, 0x592c0209, - 0x8c00050e, 0x04020748, 0x0201f000, 0x0010988f, - 0x1c01f000, 0x59cc2006, 0x59cc2807, 0x0401f044, - 0x0401f043, 0x1c01f000, 0x4933c857, 0x59300004, - 0x8c00053e, 0x04020039, 0x5930001d, 0x800001c0, - 0x02020800, 0x00109fda, 0x59325809, 0x592c0c09, - 0x41782800, 0x41781800, 0x84040d58, 0x48065c09, - 0x41783000, 0x59340200, 0x8c00050e, 0x0402001f, - 0x0201f800, 0x00020c5a, 0x04020009, 0x4a025a07, - 0x00000000, 0x59300012, 0x0201f800, 0x0010a0a5, - 0x80000d40, 0x4807c857, 0x0402092b, 0x4a025a05, - 0x00000103, 0x48065808, 0x480e580b, 0x901409c0, - 0x4806580a, 0x4933c857, 0x59300c02, 0x48065c07, - 0x0201f800, 0x00109d18, 0x0201f800, 0x00109d1d, - 0x0201f800, 0x000203ef, 0x0201f800, 0x001048bd, - 0x0201f000, 0x00020b9d, 0x592c020b, 0x8c000502, - 0x040007e0, 0x59300012, 0x4803c857, 0x800001c0, - 0x040007df, 0x592c0209, 0x8c00050e, 0x040207dc, - 0x0201f000, 0x0010988f, 0x0201f800, 0x00107021, - 0x040007c6, 0x4933c857, 0x1c01f000, 0x4c5c0000, - 0x4c600000, 0x4010b800, 0x4014c000, 0x5930001d, - 0x800001c0, 0x4c140000, 0x02020800, 0x00109fda, - 0x5c002800, 0x59325809, 0x592c020b, 0x8c000502, - 0x04020030, 0x8c000500, 0x04000035, 0x4a026203, - 0x00000002, 0x4a026403, 0x00000043, 0x405c0000, - 0x592c0810, 0x80040c80, 0x40600000, 0x80040480, - 0x04001028, 0x8060c1c0, 0x0400001e, 0x59300004, - 0x8c00050e, 0x04000008, 0x59300a22, 0x82040500, - 0x00000003, 0x4c140000, 0x0c01f823, 0x5c002800, - 0x04000014, 0x59300004, 0x8c00053e, 0x0402000c, - 0x485e6014, 0x48626012, 0x497a6205, 0x5c00c000, - 0x5c00b800, 0x0201f800, 0x00100d97, 0x0402000f, - 0x59300804, 0x0201f000, 0x00020b30, 0x4c140000, - 0x0201f800, 0x00107021, 0x5c002800, 0x040007f1, - 0x5c00c000, 0x5c00b800, 0x0201f000, 0x00107d3d, - 0x5c00c000, 0x5c00b800, 0x4933c857, 0x1c01f000, - 0x4807c857, 0x4004c000, 0x0401f7d7, 0x4803c857, - 0x0401f7f4, 0x00108c5f, 0x00108c65, 0x00108c6b, - 0x00108c5d, 0x0201f800, 0x0010032e, 0x59300223, - 0x48035077, 0x82000400, 0x00000008, 0x48035076, - 0x0401f00c, 0x59300223, 0x48035076, 0x82000400, - 0x00000008, 0x48035077, 0x0401f006, 0x59300223, - 0x82000400, 0x00000008, 0x48035076, 0x48035077, - 0x405c1000, 0x41780800, 0x59a80076, 0x0201f800, - 0x00106a98, 0x800409c0, 0x0402003c, 0x40085000, - 0x592c1001, 0x800811c0, 0x04000038, 0x58080205, - 0x82000500, 0x000000ff, 0x82000580, 0x0000004a, - 0x04020032, 0x48281002, 0x59a80076, 0x40601000, - 0x41780800, 0x4c280000, 0x0201f800, 0x00106a98, - 0x5c005000, 0x800409c0, 0x0402001f, 0x40041800, - 0x59a80077, 0x800c1c00, 0x80081040, 0x040207fe, - 0x480e6029, 0x592c4801, 0x802449c0, 0x02000800, - 0x0010032e, 0x58240a06, 0x592c1812, 0x59303022, - 0x8c183506, 0x04000003, 0x40280000, 0x80040c00, - 0x800400e0, 0x80040540, 0x48026020, 0x8c18350a, - 0x04020003, 0x40280000, 0x800c1c00, 0x480e601e, - 0x59300223, 0x48026423, 0x82000540, 0x00000001, - 0x1c01f000, 0x592c1810, 0x405c0000, 0x80600400, - 0x800c0580, 0x040007de, 0x4933c857, 0x485fc857, - 0x4863c857, 0x480fc857, 0x80000580, 0x1c01f000, - 0x83380480, 0x00000058, 0x04021005, 0x83380480, - 0x00000040, 0x04001002, 0x0c01f002, 0x1c01f000, - 0x00108cd4, 0x00108cd4, 0x00108cd4, 0x00108cd4, - 0x00108cd4, 0x00108cd4, 0x00108cd4, 0x00108cd4, - 0x00108cd4, 0x00108cd4, 0x00108cd6, 0x00108cd4, - 0x00108cd4, 0x00108cd4, 0x00108cd4, 0x00108ce3, - 0x00108cd4, 0x00108cd4, 0x00108cd4, 0x00108cd4, - 0x00108d11, 0x00108cd4, 0x00108cd4, 0x00108cd4, - 0x0201f800, 0x0010032e, 0x4933c857, 0x0201f800, - 0x00106e75, 0x4a026203, 0x00000002, 0x59a8002c, - 0x48026205, 0x59300012, 0x59300816, 0x80040c80, - 0x48066016, 0x0201f000, 0x00106b6c, 0x4933c857, - 0x0201f800, 0x00106b6c, 0x4d3c0000, 0x417a7800, - 0x0201f800, 0x0010fc72, 0x5c027800, 0x42000000, - 0x0010cc23, 0x0201f800, 0x0010bc88, 0x0201f800, - 0x00109667, 0x04000010, 0x4d2c0000, 0x59325809, - 0x4a025a05, 0x00000103, 0x59300402, 0x48025c07, - 0x4a025a07, 0x00000029, 0x497a580a, 0x592c0c09, - 0x84040d50, 0x48065c09, 0x0201f800, 0x000203ef, - 0x5c025800, 0x42003000, 0x00000014, 0x41782800, - 0x4d400000, 0x4d440000, 0x59368c03, 0x42002000, - 0x00000002, 0x42028000, 0x00000029, 0x0201f800, - 0x00109fec, 0x5c028800, 0x5c028000, 0x0201f000, - 0x00020b9d, 0x4933c857, 0x59300809, 0x4978080a, - 0x4978080b, 0x58041409, 0x84081558, 0x48080c09, - 0x1c01f000, 0x4807c857, 0x8c040d3e, 0x04020024, - 0x497a5a07, 0x59300028, 0x80000540, 0x04000018, - 0x497a5a07, 0x4c040000, 0x4c080000, 0x4c0c0000, - 0x4c100000, 0x4c140000, 0x40002800, 0x58141003, - 0x40040000, 0x80081480, 0x48082803, 0x40140000, - 0x0201f800, 0x00100aeb, 0x5c002800, 0x5c002000, - 0x5c001800, 0x5c001000, 0x5c000800, 0x592c0207, - 0x80000540, 0x04020009, 0x0401f005, 0x592c0409, - 0x8c00051c, 0x04000002, 0x592c0803, 0x4807c857, - 0x4a025a07, 0x00000015, 0x1c01f000, 0x59300028, - 0x80000540, 0x04000009, 0x4a025a07, 0x00000011, - 0x59300028, 0x4c040000, 0x0201f800, 0x00100aeb, - 0x5c000800, 0x0401f7f5, 0x4807c856, 0x4a025a07, - 0x00000007, 0x1c01f000, 0x83380480, 0x00000058, - 0x04021007, 0x83380480, 0x00000040, 0x04001004, - 0x4d2c0000, 0x0c01f803, 0x5c025800, 0x1c01f000, - 0x00108d70, 0x00108d70, 0x00108d70, 0x00108d70, - 0x00108d70, 0x00108d73, 0x00108d72, 0x00108d70, - 0x00108df8, 0x00108d70, 0x00108d70, 0x00108d70, - 0x00108d70, 0x00108d70, 0x00108d70, 0x00108d70, - 0x00108d70, 0x00108d70, 0x00108d70, 0x00108ed4, - 0x00108f04, 0x00108edc, 0x00108d72, 0x00108f10, - 0x0201f800, 0x0010032e, 0x1c01f000, 0x5930001d, - 0x800001c0, 0x02020800, 0x00109fda, 0x59300008, - 0x8c00050e, 0x0400007e, 0x8c000500, 0x04000070, - 0x8c00051c, 0x04000009, 0x84000500, 0x48026008, - 0x59325809, 0x592c3c09, 0x841c3d58, 0x481e5c09, - 0x0201f000, 0x00020c00, 0x59325809, 0x592c3c09, - 0x841c3d58, 0x59300008, 0x8c00051c, 0x040207f3, - 0x481e5c09, 0x42000000, 0x00000005, 0x40000000, - 0x80000040, 0x040207fe, 0x59300008, 0x8c00051c, - 0x040207ea, 0x59cc0808, 0x592c0205, 0x82000500, - 0x000000ff, 0x82000580, 0x00000048, 0x0402000c, - 0x497a580c, 0x82040500, 0x000000ff, 0x04000008, - 0x592c0408, 0x800001c0, 0x04000005, 0x0201f800, - 0x00109ec6, 0x0201f000, 0x00100c27, 0x900421c0, - 0x4812580a, 0x41782000, 0x82040500, 0x00000c00, - 0x04000002, 0x59cc2009, 0x82043500, 0x00000fff, - 0x04020027, 0x481e5c09, 0x4a025a07, 0x00000000, - 0x801831c0, 0x02000000, 0x00100c27, 0x41782000, - 0x8c183510, 0x04000002, 0x59cc200b, 0x4812580d, + 0x00000000, 0x59300012, 0x0201f800, 0x0010a2e2, + 0x80000d40, 0x04020a02, 0x4a025a05, 0x00000103, + 0x48065808, 0x480e580b, 0x901409c0, 0x4806580a, + 0x59300c02, 0x48065c07, 0x0201f800, 0x00109f56, + 0x0201f800, 0x00109f5b, 0x0201f800, 0x000203ef, + 0x0201f800, 0x001049bd, 0x59cc0008, 0x8c000518, + 0x02020000, 0x00109a87, 0x0201f000, 0x00020b9d, + 0x0201f800, 0x00107226, 0x040007cc, 0x4d3c0000, + 0x42027800, 0x00000002, 0x0201f800, 0x00109425, + 0x5c027800, 0x0401f7c5, 0x4817c857, 0x480fc857, + 0x82180500, 0x000000ff, 0x0400000e, 0x592c0205, + 0x82000500, 0x000000ff, 0x82000580, 0x00000048, + 0x04020008, 0x592c0408, 0x800001c0, 0x04000005, + 0x0201f800, 0x0010a104, 0x0201f000, 0x0010a148, + 0x82180d00, 0x00000c00, 0x04000004, 0x59340200, + 0x8c00050e, 0x0402005f, 0x4a025a07, 0x00000000, + 0x41782000, 0x8c183510, 0x04000009, 0x59cc200b, + 0x801021c0, 0x04000006, 0x59cc000c, 0x82000500, + 0x000000ff, 0x04000002, 0x4803c857, 0x4812580d, 0x41780000, 0x8c183512, 0x04000002, 0x59cc000a, - 0x4802580c, 0x80100c00, 0x02001800, 0x0010032e, - 0x02000000, 0x00100c27, 0x82041480, 0x0000001d, - 0x0402100c, 0x4c500000, 0x4c540000, 0x83cca400, - 0x0000000c, 0x832cac00, 0x0000000e, 0x0401fbb7, - 0x5c00a800, 0x5c00a000, 0x0201f000, 0x00100c27, - 0x0401fb5c, 0x0201f000, 0x00100c27, 0x412c7800, - 0x0201f800, 0x00100583, 0x02000800, 0x0010032e, - 0x492c780a, 0x841c3d52, 0x481c7c09, 0x4a025a05, - 0x00000103, 0x4812580b, 0x900401c0, 0x4802580a, - 0x583c0405, 0x583c1006, 0x583c2209, 0x48025c05, - 0x480a5806, 0x48125a09, 0x0401f7c7, 0x8c000524, - 0x04000792, 0x59325809, 0x4c000000, 0x592c0409, - 0x8c00051c, 0x5c000000, 0x04020003, 0x4a026012, - 0xffffffff, 0x84000524, 0x0401f788, 0x1c01f000, - 0x59a8002c, 0x48026205, 0x59325809, 0x4a026203, - 0x00000002, 0x592c2409, 0x59300808, 0x4933c857, - 0x4807c857, 0x592c0205, 0x82000500, 0x000000ff, - 0x82000580, 0x00000048, 0x04020004, 0x8c102500, - 0x02020000, 0x00109f0a, 0x4a025a07, 0x00000000, - 0x8c040d1e, 0x04000037, 0x41780800, 0x497a580a, - 0x592c1c0a, 0x59300008, 0x8c00052c, 0x04000003, - 0x4a026012, 0x7fffffff, 0x59300012, 0x59341200, - 0x497a6205, 0x8c08150e, 0x0402007b, 0x4807c857, - 0x4806580b, 0x0201f800, 0x0010a0a5, 0x80000d40, - 0x04020ef9, 0x59300402, 0x48025c07, 0x48065808, - 0x4a025a05, 0x00000103, 0x4c040000, 0x592c0a09, - 0x8c040d12, 0x04000003, 0x4a025a07, 0x0000000c, - 0x5c000800, 0x4c040000, 0x4c0c0000, 0x4c100000, - 0x0201f800, 0x00109d18, 0x5c002000, 0x5c001800, - 0x5c000800, 0x8c102512, 0x0402001c, 0x4c0c0000, - 0x0201f800, 0x00109d1d, 0x0201f800, 0x000203ef, - 0x0201f800, 0x001048bd, 0x5c001800, 0x8c0c1d18, - 0x02000000, 0x00020b9d, 0x0201f000, 0x0010984f, - 0x4813c857, 0x8c102518, 0x0400004d, 0x41780800, - 0x592c1c0a, 0x820c0580, 0x00001000, 0x040007c6, - 0x8c102512, 0x040007c4, 0x592c780a, 0x583c080b, - 0x583c1c0a, 0x0401f7c0, 0x4807c857, 0x592c780a, - 0x59300402, 0x592c1405, 0x8c08151e, 0x0402000d, - 0x592c1207, 0x48007c07, 0x48047808, 0x48087a07, - 0x84102512, 0x48107c09, 0x4c0c0000, 0x0201f800, - 0x0010059d, 0x403e5800, 0x0401fb09, 0x0401f7d9, - 0x48025c07, 0x48065808, 0x583c080d, 0x583c000c, - 0x80040c00, 0x82041480, 0x0000001d, 0x04001006, - 0x583c1001, 0x480a5801, 0x49787801, 0x42000800, - 0x0000001c, 0x82040c00, 0x00000014, 0x4c0c0000, - 0x4c500000, 0x4c540000, 0x823ca400, 0x00000009, - 0x832cac00, 0x00000009, 0x4c100000, 0x4c3c0000, - 0x0401fb0a, 0x5c007800, 0x5c002000, 0x5c00a800, - 0x5c00a000, 0x84102512, 0x48125c09, 0x403e5800, - 0x0201f800, 0x0010059d, 0x0201f800, 0x00109d18, - 0x42034000, 0x0010c7ff, 0x59a1d806, 0x80edd9c0, - 0x02000800, 0x0010032e, 0x48efc857, 0x58ec0008, - 0x4803c857, 0x0801f800, 0x0401f7aa, 0x4933c857, - 0x1c01f000, 0x59301415, 0x480bc857, 0x8c08151c, - 0x0402000e, 0x80000540, 0x4803c857, 0x04000780, - 0x80042c80, 0x0402177e, 0x8c081514, 0x04020005, - 0x592c0810, 0x4807c857, 0x80040480, 0x48026017, - 0x8408155c, 0x480a6415, 0x59301008, 0x8408151e, - 0x480a6008, 0x4c100000, 0x4c3c0000, 0x4d400000, - 0x592e8207, 0x4a025a07, 0x00000001, 0x0201f800, - 0x00109d18, 0x49425a07, 0x5c028000, 0x5c007800, - 0x5c002000, 0x497a580a, 0x8c102512, 0x04000006, - 0x4d2c0000, 0x403e5800, 0x0201f800, 0x0010059d, - 0x5c025800, 0x82102500, 0xffffedff, 0x48125c09, - 0x59301006, 0x800811c0, 0x02000000, 0x0010988f, - 0x59a8002c, 0x80080480, 0x02021000, 0x0010988f, - 0x4a025a05, 0x00000103, 0x4a025a07, 0x00000006, - 0x497a5c0a, 0x492fc857, 0x0201f800, 0x000203ef, - 0x0201f800, 0x001048bd, 0x0201f000, 0x00020b9d, - 0x59325809, 0x592c0409, 0x8c000518, 0x04000004, - 0x412df800, 0x0201f000, 0x00100c46, 0x1c01f000, - 0x4933c857, 0x59325809, 0x497a580a, 0x4a025a07, - 0x00000000, 0x4a025a05, 0x00000103, 0x59300812, - 0x4807c857, 0x800409c0, 0x0402000e, 0x48065808, - 0x59300c02, 0x48065c07, 0x0201f800, 0x00109d18, - 0x0201f800, 0x00109d1d, 0x0201f800, 0x000203ef, - 0x0201f800, 0x001048bd, 0x0201f000, 0x00020b9d, - 0x59340200, 0x8c00050e, 0x04020008, 0x59300012, - 0x0201f800, 0x0010a0a5, 0x80000d40, 0x0401fe1e, - 0x48065808, 0x0401f7eb, 0x592c0209, 0x8c00050e, - 0x040207f7, 0x4933c857, 0x0201f000, 0x0010988f, - 0x4933c857, 0x59325809, 0x812e59c0, 0x02000800, - 0x0010032e, 0x592c020b, 0x8c000502, 0x02000800, - 0x0010032e, 0x4a026006, 0x00000002, 0x1c01f000, - 0x5930001d, 0x800001c0, 0x02020800, 0x00109fda, - 0x59300008, 0x4933c857, 0x4803c857, 0x8c00050e, - 0x04000037, 0x8c000500, 0x04000029, 0x8c00051c, - 0x0400000a, 0x84000500, 0x48026008, 0x59325809, - 0x592c3c09, 0x481fc857, 0x841c3d58, 0x481e5c09, - 0x0201f000, 0x00020c00, 0x59325809, 0x592c3c09, - 0x841c3d58, 0x59300008, 0x8c00051c, 0x040207f2, - 0x481e5c09, 0x42000000, 0x00000005, 0x40000000, - 0x80000040, 0x040207fe, 0x59300008, 0x8c00051c, - 0x040207e9, 0x592c0205, 0x82000500, 0x000000ff, - 0x82000580, 0x00000048, 0x04020003, 0x497a580c, - 0x0401f002, 0x497a580a, 0x481e5c09, 0x4a025a07, - 0x00000000, 0x0201f000, 0x00100c27, 0x8c000524, - 0x040007d9, 0x59325809, 0x4c000000, 0x592c0409, - 0x8c00051c, 0x5c000000, 0x04020003, 0x4a026012, - 0xffffffff, 0x84000524, 0x0401f7cf, 0x1c01f000, - 0x4933c857, 0x41780800, 0x83380480, 0x00000058, - 0x0402100b, 0x83380480, 0x00000040, 0x04001008, - 0x4d2c0000, 0x59325809, 0x812e59c0, 0x0c020806, - 0x5c025800, 0x0201f000, 0x00020b9d, 0x493bc857, - 0x1c01f000, 0x00108f79, 0x00108f79, 0x00108f79, - 0x00108f79, 0x00108f79, 0x00108f7b, 0x00108f79, - 0x00108f79, 0x00108f79, 0x00108f79, 0x00108f79, - 0x00108f79, 0x00108f79, 0x00108f79, 0x00108f79, - 0x00108f79, 0x00108f79, 0x00108f79, 0x00108f79, - 0x00108f79, 0x00108f7e, 0x00108f79, 0x00108f79, - 0x00108f79, 0x0201f800, 0x0010032e, 0x59cc0808, - 0x497a5808, 0x4807c857, 0x59300402, 0x48025c07, - 0x4a025a05, 0x00000103, 0x900401c0, 0x4802580a, - 0x4a025a07, 0x00000000, 0x800409c0, 0x02000000, - 0x000203ef, 0x59cc0009, 0x4802580b, 0x82042500, - 0x00000100, 0x04000002, 0x59cc200b, 0x4812580d, - 0x82040500, 0x00000200, 0x04000002, 0x59cc000a, - 0x4802580c, 0x80100c00, 0x02001800, 0x0010032e, - 0x02000000, 0x000203ef, 0x82041480, 0x0000001d, - 0x04001006, 0x592c0405, 0x8c00051e, 0x0400000e, - 0x42000800, 0x0000001c, 0x4c500000, 0x4c540000, - 0x83cca400, 0x0000000c, 0x832cac00, 0x0000000e, - 0x0401f9de, 0x5c00a800, 0x5c00a000, 0x0201f000, - 0x000203ef, 0x0401f983, 0x0401f1bd, 0x83380480, - 0x00000093, 0x02021800, 0x0010032e, 0x83380480, - 0x00000085, 0x02001800, 0x0010032e, 0x0c01f001, - 0x00108fc7, 0x00108fc5, 0x00108fc5, 0x00108fce, - 0x00108fc5, 0x00108fc5, 0x00108fc5, 0x00108fc5, - 0x00108fc5, 0x00108fc5, 0x00108fc5, 0x00108fc5, - 0x00108fc5, 0x0201f800, 0x0010032e, 0x4a026203, - 0x00000001, 0x493a6403, 0x42000800, 0x80000040, - 0x0201f000, 0x00020b3e, 0x83300580, 0x0011120c, - 0x02020800, 0x0010032e, 0x4933c857, 0x59cc1404, - 0x0201f800, 0x00109ac1, 0x04000025, 0x591c0203, - 0x82000580, 0x00000000, 0x04000021, 0x591c000a, - 0x81340580, 0x0402001e, 0x59cc1204, 0x82080580, - 0x0000ffff, 0x04000007, 0x591c0202, 0x82000d80, - 0x0000ffff, 0x04000003, 0x80080580, 0x04020014, - 0x4d300000, 0x4d1c0000, 0x411e6000, 0x0401f9fa, - 0x5c023800, 0x5c026000, 0x0400000b, 0x59cc0005, - 0x8c000500, 0x04020003, 0x0401f99d, 0x0401f003, - 0x4a023a03, 0x00000002, 0x4a026403, 0x00000086, - 0x0401f005, 0x0401f9de, 0x040007f5, 0x4a026403, - 0x00000087, 0x4d2c0000, 0x0201f800, 0x0010b462, - 0x0201f800, 0x00104c77, 0x5c025800, 0x59340200, - 0x8c00050e, 0x0400000d, 0x59cc1404, 0x0201f800, - 0x00109ac1, 0x04000009, 0x591c0415, 0x8c00051a, - 0x04000006, 0x4d300000, 0x411e6000, 0x0201f800, - 0x001098a4, 0x5c026000, 0x1c01f000, 0x83380580, - 0x00000013, 0x0402000b, 0x59300403, 0x4803c857, - 0x82000d80, 0x00000086, 0x04000012, 0x82000d80, - 0x00000087, 0x02020800, 0x0010032e, 0x0401f00d, - 0x83380580, 0x00000027, 0x04000005, 0x83380580, - 0x00000014, 0x02020800, 0x0010032e, 0x493bc857, - 0x0201f800, 0x00106b8c, 0x0201f000, 0x00107cbe, + 0x4802580c, 0x80100c00, 0x040007aa, 0x82041480, + 0x0000001d, 0x04001006, 0x592c0405, 0x8c00051e, + 0x04000027, 0x42000800, 0x0000001c, 0x4c040000, + 0x4c0c0000, 0x4c140000, 0x0201f800, 0x00020c5a, + 0x04020008, 0x4a025a07, 0x00000000, 0x59300012, + 0x0201f800, 0x0010a2e2, 0x80000d40, 0x040209a0, + 0x5c002800, 0x5c001800, 0x4a025a05, 0x00000103, + 0x48065808, 0x480e580b, 0x901409c0, 0x4806580a, + 0x5c000800, 0x4c500000, 0x4c540000, 0x83cca400, + 0x0000000c, 0x832cac00, 0x0000000e, 0x0201f800, + 0x001093ba, 0x5c00a800, 0x5c00a000, 0x59300008, + 0x84000534, 0x48026008, 0x0401f78e, 0x4c040000, + 0x4c0c0000, 0x4c140000, 0x0201f800, 0x00020c5a, + 0x04020008, 0x4a025a07, 0x00000000, 0x59300012, + 0x0201f800, 0x0010a2e2, 0x80000d40, 0x0402097c, + 0x48065808, 0x5c002800, 0x5c001800, 0x59301402, + 0x480a5c07, 0x480e580b, 0x901401c0, 0x4802580a, + 0x0201f800, 0x00109f56, 0x5c000800, 0x0201f800, + 0x00109364, 0x0201f800, 0x0010939f, 0x0401f779, + 0x592c020b, 0x8c000502, 0x040007a0, 0x592c0209, + 0x8c00050e, 0x0402079d, 0x59300012, 0x800c0d80, + 0x0400079a, 0x4803c857, 0x480fc857, 0x8c183514, + 0x02000000, 0x00109ac7, 0x80000540, 0x04000793, + 0x4807c856, 0x0201f000, 0x00109ac7, 0x592c020b, + 0x8c000502, 0x0400074b, 0x59300012, 0x800001c0, + 0x0400074b, 0x592c0209, 0x8c00050e, 0x04020748, + 0x0201f000, 0x00109ac7, 0x1c01f000, 0x59cc2006, + 0x59cc2807, 0x0401f044, 0x0401f043, 0x1c01f000, + 0x4933c857, 0x59300004, 0x8c00053e, 0x04020039, + 0x5930001d, 0x800001c0, 0x02020800, 0x0010a218, + 0x59325809, 0x592c0c09, 0x41782800, 0x41781800, + 0x84040d58, 0x48065c09, 0x41783000, 0x59340200, + 0x8c00050e, 0x0402001f, 0x0201f800, 0x00020c5a, + 0x04020009, 0x4a025a07, 0x00000000, 0x59300012, + 0x0201f800, 0x0010a2e2, 0x80000d40, 0x4807c857, + 0x0402092b, 0x4a025a05, 0x00000103, 0x48065808, + 0x480e580b, 0x901409c0, 0x4806580a, 0x4933c857, + 0x59300c02, 0x48065c07, 0x0201f800, 0x00109f56, + 0x0201f800, 0x00109f5b, 0x0201f800, 0x000203ef, + 0x0201f800, 0x001049bd, 0x0201f000, 0x00020b9d, + 0x592c020b, 0x8c000502, 0x040007e0, 0x59300012, + 0x4803c857, 0x800001c0, 0x040007df, 0x592c0209, + 0x8c00050e, 0x040207dc, 0x0201f000, 0x00109ac7, + 0x0201f800, 0x00107226, 0x040007c6, 0x4933c857, + 0x1c01f000, 0x4c5c0000, 0x4c600000, 0x4010b800, + 0x4014c000, 0x5930001d, 0x800001c0, 0x4c140000, + 0x02020800, 0x0010a218, 0x5c002800, 0x59325809, + 0x592c020b, 0x8c000502, 0x04020030, 0x8c000500, + 0x04000035, 0x4a026203, 0x00000002, 0x4a026403, + 0x00000043, 0x405c0000, 0x592c0810, 0x80040c80, + 0x40600000, 0x80040480, 0x04001028, 0x8060c1c0, + 0x0400001e, 0x59300004, 0x8c00050e, 0x04000008, + 0x59300a22, 0x82040500, 0x00000003, 0x4c140000, + 0x0c01f823, 0x5c002800, 0x04000014, 0x59300004, + 0x8c00053e, 0x0402000c, 0x485e6014, 0x48626012, + 0x497a6205, 0x5c00c000, 0x5c00b800, 0x0201f800, + 0x00100d98, 0x0402000f, 0x59300804, 0x0201f000, + 0x00020b30, 0x4c140000, 0x0201f800, 0x00107226, + 0x5c002800, 0x040007f1, 0x5c00c000, 0x5c00b800, + 0x0201f000, 0x00107f37, 0x5c00c000, 0x5c00b800, + 0x4933c857, 0x1c01f000, 0x4807c857, 0x4004c000, + 0x0401f7d7, 0x4803c857, 0x0401f7f4, 0x00108e85, + 0x00108e8b, 0x00108e91, 0x00108e83, 0x0201f800, + 0x0010032e, 0x59300223, 0x48035077, 0x82000400, + 0x00000008, 0x48035076, 0x0401f00c, 0x59300223, + 0x48035076, 0x82000400, 0x00000008, 0x48035077, + 0x0401f006, 0x59300223, 0x82000400, 0x00000008, + 0x48035076, 0x48035077, 0x405c1000, 0x41780800, + 0x59a80076, 0x0201f800, 0x00106c9d, 0x800409c0, + 0x0402003c, 0x40085000, 0x592c1001, 0x800811c0, + 0x04000038, 0x58080205, 0x82000500, 0x000000ff, + 0x82000580, 0x0000004a, 0x04020032, 0x48281002, + 0x59a80076, 0x40601000, 0x41780800, 0x4c280000, + 0x0201f800, 0x00106c9d, 0x5c005000, 0x800409c0, + 0x0402001f, 0x40041800, 0x59a80077, 0x800c1c00, + 0x80081040, 0x040207fe, 0x480e6029, 0x592c4801, + 0x802449c0, 0x02000800, 0x0010032e, 0x58240a06, + 0x592c1812, 0x59303022, 0x8c183506, 0x04000003, + 0x40280000, 0x80040c00, 0x800400e0, 0x80040540, + 0x48026020, 0x8c18350a, 0x04020003, 0x40280000, + 0x800c1c00, 0x480e601e, 0x59300223, 0x48026423, + 0x82000540, 0x00000001, 0x1c01f000, 0x592c1810, + 0x405c0000, 0x80600400, 0x800c0580, 0x040007de, + 0x4933c857, 0x485fc857, 0x4863c857, 0x480fc857, + 0x80000580, 0x1c01f000, 0x83380480, 0x00000058, + 0x04021005, 0x83380480, 0x00000040, 0x04001002, + 0x0c01f002, 0x1c01f000, 0x00108efa, 0x00108efa, + 0x00108efa, 0x00108efa, 0x00108efa, 0x00108efa, + 0x00108efa, 0x00108efa, 0x00108efa, 0x00108efa, + 0x00108efc, 0x00108efa, 0x00108efa, 0x00108efa, + 0x00108efa, 0x00108f09, 0x00108efa, 0x00108efa, + 0x00108efa, 0x00108efa, 0x00108f37, 0x00108efa, + 0x00108efa, 0x00108efa, 0x0201f800, 0x0010032e, + 0x4933c857, 0x0201f800, 0x0010707a, 0x4a026203, + 0x00000002, 0x59a8002c, 0x48026205, 0x59300012, + 0x59300816, 0x80040c80, 0x48066016, 0x0201f000, + 0x00106d71, 0x4933c857, 0x0201f800, 0x00106d71, + 0x4d3c0000, 0x417a7800, 0x0201f800, 0x0010ff80, + 0x5c027800, 0x42000000, 0x0010cf23, 0x0201f800, + 0x0010bfb3, 0x0201f800, 0x0010989f, 0x04000010, + 0x4d2c0000, 0x59325809, 0x4a025a05, 0x00000103, + 0x59300402, 0x48025c07, 0x4a025a07, 0x00000029, + 0x497a580a, 0x592c0c09, 0x84040d50, 0x48065c09, + 0x0201f800, 0x000203ef, 0x5c025800, 0x42003000, + 0x00000014, 0x41782800, 0x4d400000, 0x4d440000, + 0x59368c03, 0x42002000, 0x00000002, 0x42028000, + 0x00000029, 0x0201f800, 0x0010a22a, 0x5c028800, + 0x5c028000, 0x0201f000, 0x00020b9d, 0x4933c857, + 0x59300809, 0x4978080a, 0x4978080b, 0x58041409, + 0x84081558, 0x48080c09, 0x1c01f000, 0x4807c857, + 0x8c040d3e, 0x04020024, 0x497a5a07, 0x59300028, + 0x80000540, 0x04000018, 0x497a5a07, 0x4c040000, + 0x4c080000, 0x4c0c0000, 0x4c100000, 0x4c140000, + 0x40002800, 0x58141003, 0x40040000, 0x80081480, + 0x48082803, 0x40140000, 0x0201f800, 0x00100aec, + 0x5c002800, 0x5c002000, 0x5c001800, 0x5c001000, + 0x5c000800, 0x592c0207, 0x80000540, 0x04020009, + 0x0401f005, 0x592c0409, 0x8c00051c, 0x04000002, + 0x592c0803, 0x4807c857, 0x4a025a07, 0x00000015, + 0x1c01f000, 0x59300028, 0x80000540, 0x04000009, + 0x4a025a07, 0x00000011, 0x59300028, 0x4c040000, + 0x0201f800, 0x00100aec, 0x5c000800, 0x0401f7f5, + 0x4807c856, 0x4a025a07, 0x00000007, 0x1c01f000, + 0x83380480, 0x00000058, 0x04021007, 0x83380480, + 0x00000040, 0x04001004, 0x4d2c0000, 0x0c01f803, + 0x5c025800, 0x1c01f000, 0x00108f96, 0x00108f96, + 0x00108f96, 0x00108f96, 0x00108f96, 0x00108f99, + 0x00108f98, 0x00108f96, 0x0010901e, 0x00108f96, + 0x00108f96, 0x00108f96, 0x00108f96, 0x00108f96, + 0x00108f96, 0x00108f96, 0x00108f96, 0x00108f96, + 0x00108f96, 0x001090fa, 0x0010912a, 0x00109102, + 0x00108f98, 0x00109136, 0x0201f800, 0x0010032e, + 0x1c01f000, 0x5930001d, 0x800001c0, 0x02020800, + 0x0010a218, 0x59300008, 0x8c00050e, 0x0400007e, + 0x8c000500, 0x04000070, 0x8c00051c, 0x04000009, + 0x84000500, 0x48026008, 0x59325809, 0x592c3c09, + 0x841c3d58, 0x481e5c09, 0x0201f000, 0x00020c00, + 0x59325809, 0x592c3c09, 0x841c3d58, 0x59300008, + 0x8c00051c, 0x040207f3, 0x481e5c09, 0x42000000, + 0x00000005, 0x40000000, 0x80000040, 0x040207fe, + 0x59300008, 0x8c00051c, 0x040207ea, 0x59cc0808, + 0x592c0205, 0x82000500, 0x000000ff, 0x82000580, + 0x00000048, 0x0402000c, 0x497a580c, 0x82040500, + 0x000000ff, 0x04000008, 0x592c0408, 0x800001c0, + 0x04000005, 0x0201f800, 0x0010a104, 0x0201f000, + 0x00100c28, 0x900421c0, 0x4812580a, 0x41782000, + 0x82040500, 0x00000c00, 0x04000002, 0x59cc2009, + 0x82043500, 0x00000fff, 0x04020027, 0x481e5c09, + 0x4a025a07, 0x00000000, 0x801831c0, 0x02000000, + 0x00100c28, 0x41782000, 0x8c183510, 0x04000002, + 0x59cc200b, 0x4812580d, 0x41780000, 0x8c183512, + 0x04000002, 0x59cc000a, 0x4802580c, 0x80100c00, + 0x02001800, 0x0010032e, 0x02000000, 0x00100c28, + 0x82041480, 0x0000001d, 0x0402100c, 0x4c500000, + 0x4c540000, 0x83cca400, 0x0000000c, 0x832cac00, + 0x0000000e, 0x0401fbc5, 0x5c00a800, 0x5c00a000, + 0x0201f000, 0x00100c28, 0x0401fb6a, 0x0201f000, + 0x00100c28, 0x412c7800, 0x0201f800, 0x00100583, + 0x02000800, 0x0010032e, 0x492c780a, 0x841c3d52, + 0x481c7c09, 0x4a025a05, 0x00000103, 0x4812580b, + 0x900401c0, 0x4802580a, 0x583c0405, 0x583c1006, + 0x583c2209, 0x48025c05, 0x480a5806, 0x48125a09, + 0x0401f7c7, 0x8c000524, 0x04000792, 0x59325809, + 0x4c000000, 0x592c0409, 0x8c00051c, 0x5c000000, + 0x04020003, 0x4a026012, 0xffffffff, 0x84000524, + 0x0401f788, 0x1c01f000, 0x59a8002c, 0x48026205, + 0x59325809, 0x4a026203, 0x00000002, 0x592c2409, + 0x59300808, 0x4933c857, 0x4807c857, 0x592c0205, + 0x82000500, 0x000000ff, 0x82000580, 0x00000048, + 0x04020004, 0x8c102500, 0x02020000, 0x0010a148, + 0x4a025a07, 0x00000000, 0x8c040d1e, 0x04000037, + 0x41780800, 0x497a580a, 0x592c1c0a, 0x59300008, + 0x8c00052c, 0x04000003, 0x4a026012, 0x7fffffff, + 0x59300012, 0x59341200, 0x497a6205, 0x8c08150e, + 0x0402007b, 0x4807c857, 0x4806580b, 0x0201f800, + 0x0010a2e2, 0x80000d40, 0x04020ef9, 0x59300402, + 0x48025c07, 0x48065808, 0x4a025a05, 0x00000103, + 0x4c040000, 0x592c0a09, 0x8c040d12, 0x04000003, + 0x4a025a07, 0x0000000c, 0x5c000800, 0x4c040000, + 0x4c0c0000, 0x4c100000, 0x0201f800, 0x00109f56, + 0x5c002000, 0x5c001800, 0x5c000800, 0x8c102512, + 0x0402001c, 0x4c0c0000, 0x0201f800, 0x00109f5b, + 0x0201f800, 0x000203ef, 0x0201f800, 0x001049bd, + 0x5c001800, 0x8c0c1d18, 0x02000000, 0x00020b9d, + 0x0201f000, 0x00109a87, 0x4813c857, 0x8c102518, + 0x0400004d, 0x41780800, 0x592c1c0a, 0x820c0580, + 0x00001000, 0x040007c6, 0x8c102512, 0x040007c4, + 0x592c780a, 0x583c080b, 0x583c1c0a, 0x0401f7c0, + 0x4807c857, 0x592c780a, 0x59300402, 0x592c1405, + 0x8c08151e, 0x0402000d, 0x592c1207, 0x48007c07, + 0x48047808, 0x48087a07, 0x84102512, 0x48107c09, + 0x4c0c0000, 0x0201f800, 0x0010059d, 0x403e5800, + 0x0401fb17, 0x0401f7d9, 0x48025c07, 0x48065808, + 0x583c080d, 0x583c000c, 0x80040c00, 0x82041480, + 0x0000001d, 0x04001006, 0x583c1001, 0x480a5801, + 0x49787801, 0x42000800, 0x0000001c, 0x82040c00, + 0x00000014, 0x4c0c0000, 0x4c500000, 0x4c540000, + 0x823ca400, 0x00000009, 0x832cac00, 0x00000009, + 0x4c100000, 0x4c3c0000, 0x0401fb18, 0x5c007800, + 0x5c002000, 0x5c00a800, 0x5c00a000, 0x84102512, + 0x48125c09, 0x403e5800, 0x0201f800, 0x0010059d, + 0x0201f800, 0x00109f56, 0x42034000, 0x0010caff, + 0x59a1d806, 0x80edd9c0, 0x02000800, 0x0010032e, + 0x48efc857, 0x58ec0008, 0x4803c857, 0x0801f800, + 0x0401f7aa, 0x4933c857, 0x1c01f000, 0x59301415, + 0x480bc857, 0x8c08151c, 0x0402000e, 0x80000540, + 0x4803c857, 0x04000780, 0x80042c80, 0x0402177e, + 0x8c081514, 0x04020005, 0x592c0810, 0x4807c857, + 0x80040480, 0x48026017, 0x8408155c, 0x480a6415, + 0x59301008, 0x8408151e, 0x480a6008, 0x4c100000, + 0x4c3c0000, 0x4d400000, 0x592e8207, 0x4a025a07, + 0x00000001, 0x0201f800, 0x00109f56, 0x49425a07, + 0x5c028000, 0x5c007800, 0x5c002000, 0x497a580a, + 0x8c102512, 0x04000006, 0x4d2c0000, 0x403e5800, + 0x0201f800, 0x0010059d, 0x5c025800, 0x82102500, + 0xffffedff, 0x48125c09, 0x59301006, 0x800811c0, + 0x02000000, 0x00109ac7, 0x59a8002c, 0x80080480, + 0x02021000, 0x00109ac7, 0x4a025a05, 0x00000103, + 0x4a025a07, 0x00000006, 0x497a5c0a, 0x492fc857, + 0x0201f800, 0x000203ef, 0x0201f800, 0x001049bd, + 0x0201f000, 0x00020b9d, 0x59325809, 0x592c0409, + 0x8c000518, 0x04000004, 0x412df800, 0x0201f000, + 0x00100c47, 0x1c01f000, 0x4933c857, 0x59325809, + 0x497a580a, 0x4a025a07, 0x00000000, 0x4a025a05, + 0x00000103, 0x59300812, 0x4807c857, 0x800409c0, + 0x0402000e, 0x48065808, 0x59300c02, 0x48065c07, + 0x0201f800, 0x00109f56, 0x0201f800, 0x00109f5b, + 0x0201f800, 0x000203ef, 0x0201f800, 0x001049bd, + 0x0201f000, 0x00020b9d, 0x59340200, 0x8c00050e, + 0x04020008, 0x59300012, 0x0201f800, 0x0010a2e2, + 0x80000d40, 0x0401fe1e, 0x48065808, 0x0401f7eb, + 0x592c0209, 0x8c00050e, 0x040207f7, 0x4933c857, + 0x0201f000, 0x00109ac7, 0x4933c857, 0x59325809, + 0x812e59c0, 0x02000800, 0x0010032e, 0x592c020b, + 0x8c000502, 0x02000800, 0x0010032e, 0x4a026006, + 0x00000002, 0x1c01f000, 0x5930001d, 0x800001c0, + 0x02020800, 0x0010a218, 0x59300008, 0x4933c857, + 0x4803c857, 0x8c00050e, 0x04000037, 0x8c000500, + 0x04000029, 0x8c00051c, 0x0400000a, 0x84000500, + 0x48026008, 0x59325809, 0x592c3c09, 0x481fc857, + 0x841c3d58, 0x481e5c09, 0x0201f000, 0x00020c00, + 0x59325809, 0x592c3c09, 0x841c3d58, 0x59300008, + 0x8c00051c, 0x040207f2, 0x481e5c09, 0x42000000, + 0x00000005, 0x40000000, 0x80000040, 0x040207fe, + 0x59300008, 0x8c00051c, 0x040207e9, 0x592c0205, + 0x82000500, 0x000000ff, 0x82000580, 0x00000048, + 0x04020003, 0x497a580c, 0x0401f002, 0x497a580a, + 0x481e5c09, 0x4a025a07, 0x00000000, 0x0201f000, + 0x00100c28, 0x8c000524, 0x040007d9, 0x59325809, + 0x4c000000, 0x592c0409, 0x8c00051c, 0x5c000000, + 0x04020003, 0x4a026012, 0xffffffff, 0x84000524, + 0x0401f7cf, 0x1c01f000, 0x4933c857, 0x41780800, + 0x83380480, 0x00000058, 0x0402100b, 0x83380480, + 0x00000040, 0x04001008, 0x4d2c0000, 0x59325809, + 0x812e59c0, 0x0c020806, 0x5c025800, 0x0201f000, + 0x00020b9d, 0x493bc857, 0x1c01f000, 0x0010919f, + 0x0010919f, 0x0010919f, 0x0010919f, 0x0010919f, + 0x001091a1, 0x0010919f, 0x0010919f, 0x0010919f, + 0x0010919f, 0x0010919f, 0x0010919f, 0x0010919f, + 0x0010919f, 0x0010919f, 0x0010919f, 0x0010919f, + 0x0010919f, 0x0010919f, 0x0010919f, 0x001091a4, + 0x0010919f, 0x0010919f, 0x0010919f, 0x0201f800, + 0x0010032e, 0x59cc0808, 0x497a5808, 0x4807c857, + 0x59300402, 0x48025c07, 0x4a025a05, 0x00000103, + 0x900401c0, 0x4802580a, 0x4a025a07, 0x00000000, + 0x800409c0, 0x02000000, 0x000203ef, 0x59cc0009, + 0x4802580b, 0x82042500, 0x00000100, 0x04000002, + 0x59cc200b, 0x4812580d, 0x82040500, 0x00000200, + 0x04000002, 0x59cc000a, 0x4802580c, 0x80100c00, + 0x02001800, 0x0010032e, 0x02000000, 0x000203ef, + 0x82041480, 0x0000001d, 0x04001006, 0x592c0405, + 0x8c00051e, 0x0400000e, 0x42000800, 0x0000001c, + 0x4c500000, 0x4c540000, 0x83cca400, 0x0000000c, + 0x832cac00, 0x0000000e, 0x0401f9ec, 0x5c00a800, + 0x5c00a000, 0x0201f000, 0x000203ef, 0x0401f991, + 0x0401f1cb, 0x83380480, 0x00000093, 0x02021800, + 0x0010032e, 0x83380480, 0x00000085, 0x02001800, + 0x0010032e, 0x0c01f001, 0x001091ed, 0x001091eb, + 0x001091eb, 0x001091f4, 0x001091eb, 0x001091eb, + 0x001091eb, 0x001091eb, 0x001091eb, 0x001091eb, + 0x001091eb, 0x001091eb, 0x001091eb, 0x0201f800, + 0x0010032e, 0x4a026203, 0x00000001, 0x493a6403, + 0x42000800, 0x80000040, 0x0201f000, 0x00020b3e, + 0x83300580, 0x0011152c, 0x02020800, 0x0010032e, + 0x4933c857, 0x59cc1404, 0x0201f800, 0x00109cf9, + 0x04000025, 0x591c0203, 0x82000580, 0x00000000, + 0x04000021, 0x591c000a, 0x81340580, 0x0402001e, + 0x59cc1204, 0x82080580, 0x0000ffff, 0x04000007, + 0x591c0202, 0x82000d80, 0x0000ffff, 0x04000003, + 0x80080580, 0x04020014, 0x4d300000, 0x4d1c0000, + 0x411e6000, 0x0401fa08, 0x5c023800, 0x5c026000, + 0x0400000b, 0x59cc0005, 0x8c000500, 0x04020003, + 0x0401f9ab, 0x0401f003, 0x4a023a03, 0x00000002, + 0x4a026403, 0x00000086, 0x0401f005, 0x0401f9ec, + 0x040007f5, 0x4a026403, 0x00000087, 0x4d2c0000, + 0x0201f800, 0x0010b78d, 0x0201f800, 0x00104d7c, + 0x5c025800, 0x59340200, 0x8c00050e, 0x0400000d, + 0x59cc1404, 0x0201f800, 0x00109cf9, 0x04000009, + 0x591c0415, 0x8c00051a, 0x04000006, 0x4d300000, + 0x411e6000, 0x0201f800, 0x00109adc, 0x5c026000, + 0x1c01f000, 0x83380580, 0x00000013, 0x0402000b, + 0x59300403, 0x4803c857, 0x82000d80, 0x00000086, + 0x04000020, 0x82000d80, 0x00000087, 0x02020800, + 0x0010032e, 0x0401f01b, 0x83380580, 0x00000027, + 0x04000005, 0x83380580, 0x00000014, 0x02020800, + 0x0010032e, 0x493bc857, 0x0201f800, 0x00106d91, + 0x0201f800, 0x0010989f, 0x02000000, 0x00107eb4, + 0x4d2c0000, 0x59325809, 0x0201f800, 0x000203ef, + 0x59300a26, 0x82040d80, 0x00000003, 0x02000800, + 0x001099b4, 0x5c025800, 0x0201f000, 0x00107eb4, 0x4933c857, 0x0201f000, 0x00020b9d, 0x83380580, 0x00000013, 0x04020006, 0x59300403, 0x4803c857, 0x82000480, 0x00000085, 0x0c01f053, 0x83380580, 0x00000027, 0x04020047, 0x4933c857, 0x0201f800, - 0x00106b8c, 0x4d3c0000, 0x417a7800, 0x0201f800, - 0x0010fc72, 0x5c027800, 0x42003000, 0x00000015, + 0x00106d91, 0x4d3c0000, 0x417a7800, 0x0201f800, + 0x0010ff80, 0x5c027800, 0x42003000, 0x00000015, 0x41782800, 0x42002000, 0x00000003, 0x42028000, 0x00000029, 0x4d400000, 0x4d440000, 0x59368c03, - 0x0201f800, 0x00109fec, 0x5c028800, 0x5c028000, - 0x42000000, 0x0010cc23, 0x0201f800, 0x0010bc88, - 0x0201f800, 0x00109667, 0x02000000, 0x00020b9d, + 0x0201f800, 0x0010a22a, 0x5c028800, 0x5c028000, + 0x42000000, 0x0010cf23, 0x0201f800, 0x0010bfb3, + 0x0201f800, 0x0010989f, 0x02000000, 0x00020b9d, 0x4d2c0000, 0x59325809, 0x592c0205, 0x82000500, 0x000000ff, 0x82000580, 0x00000014, 0x02020800, - 0x0010977c, 0x4a025a05, 0x00000103, 0x59300402, + 0x001099b4, 0x4a025a05, 0x00000103, 0x59300402, 0x48025c07, 0x497a580a, 0x49425a07, 0x0201f800, 0x000203ef, 0x5c025800, 0x0201f000, 0x00020b9d, 0x83380580, 0x00000089, 0x04000005, 0x83380580, - 0x0000008a, 0x02020000, 0x00107d3d, 0x0201f800, - 0x00107021, 0x02020000, 0x00107d3d, 0x59300a03, + 0x0000008a, 0x02020000, 0x00107f37, 0x0201f800, + 0x00107226, 0x02020000, 0x00107f37, 0x59300a03, 0x82040580, 0x0000000a, 0x0400002a, 0x82040580, 0x0000000c, 0x04000027, 0x0201f800, 0x0010032e, 0x83380580, 0x00000014, 0x040207ea, 0x4933c857, - 0x0201f800, 0x00106b8c, 0x42028000, 0x00000006, - 0x0401f7cc, 0x00109098, 0x00109096, 0x00109096, - 0x00109096, 0x00109096, 0x00109096, 0x0010909e, - 0x00109096, 0x00109096, 0x00109096, 0x00109096, - 0x00109096, 0x00109096, 0x0201f800, 0x0010032e, + 0x0201f800, 0x00106d91, 0x42028000, 0x00000006, + 0x0401f7cc, 0x001092cc, 0x001092ca, 0x001092ca, + 0x001092ca, 0x001092ca, 0x001092ca, 0x001092d2, + 0x001092ca, 0x001092ca, 0x001092ca, 0x001092ca, + 0x001092ca, 0x001092ca, 0x0201f800, 0x0010032e, 0x4933c857, 0x59a8002a, 0x48026006, 0x4a026203, 0x0000000a, 0x1c01f000, 0x4933c857, 0x59a8002a, 0x48026006, 0x4a026203, 0x0000000c, 0x1c01f000, 0x5932680a, 0x83380580, 0x00000089, 0x04000008, 0x83380580, 0x0000008a, 0x04000029, 0x4933c857, - 0x493bc857, 0x0201f000, 0x00107d3d, 0x4933c857, + 0x493bc857, 0x0201f000, 0x00107f37, 0x4933c857, 0x59325809, 0x59300a26, 0x82040580, 0x00000003, - 0x0402000a, 0x0201f800, 0x00109667, 0x04000012, - 0x0201f800, 0x000203ef, 0x0201f800, 0x001048bd, + 0x0402000a, 0x0201f800, 0x0010989f, 0x04000012, + 0x0201f800, 0x000203ef, 0x0201f800, 0x001049bd, 0x497a6009, 0x0401f00c, 0x59300226, 0x82000580, 0x00000001, 0x04020008, 0x59300c17, 0x82040580, 0x00000039, 0x0400001d, 0x82040580, 0x00000035, 0x0400001a, 0x59cc0c07, 0x4806641a, 0x59cc0a07, 0x4806621a, 0x59300203, 0x48026426, 0x4a026203, - 0x00000011, 0x0201f000, 0x00107cbe, 0x4933c857, + 0x00000011, 0x0201f000, 0x00107eb4, 0x4933c857, 0x59300226, 0x82000580, 0x00000001, 0x0402004a, 0x59300c17, 0x82040580, 0x00000035, 0x04000007, 0x82040580, 0x0000001e, 0x04000004, 0x82040580, 0x00000039, 0x04020040, 0x4933c857, 0x4c5c0000, 0x4c600000, 0x4d1c0000, 0x4130b800, 0x4004c000, - 0x0201f800, 0x00109a64, 0x04020031, 0x82600580, + 0x0201f800, 0x00109c9c, 0x04020031, 0x82600580, 0x00000035, 0x04020004, 0x591c0c15, 0x8c040d02, - 0x0400002b, 0x0201f800, 0x00107cfe, 0x04000028, + 0x0400002b, 0x0201f800, 0x00107ef8, 0x04000028, 0x491fc857, 0x4933c857, 0x82600580, 0x00000035, 0x04000004, 0x82600580, 0x00000039, 0x04020002, 0x4932381d, 0x585c081c, 0x4806601c, 0x48626403, @@ -23836,10 +24029,10 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x4807c857, 0x4806621a, 0x491e6027, 0x42000800, 0x80000040, 0x0201f800, 0x00020b3e, 0x405e6000, 0x5c023800, 0x5c00c000, 0x5c00b800, 0x0201f000, - 0x00020b9d, 0x0201f800, 0x00109667, 0x0400000b, + 0x00020b9d, 0x0201f800, 0x0010989f, 0x0400000b, 0x4d2c0000, 0x59325809, 0x0201f800, 0x000203ef, 0x59300226, 0x82000580, 0x00000003, 0x02000800, - 0x001048bd, 0x5c025800, 0x0201f000, 0x00020b9d, + 0x001049bd, 0x5c025800, 0x0201f000, 0x00020b9d, 0x4803c856, 0x4c500000, 0x4c540000, 0x412c7800, 0x4c3c0000, 0x42002800, 0x00000001, 0x82040480, 0x00000101, 0x04001003, 0x42000800, 0x00000100, @@ -23860,23 +24053,23 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x0201f800, 0x000203ef, 0x403e5800, 0x0401f7f9, 0x5c007800, 0x0201f800, 0x000203ef, 0x5c025800, 0x1c01f000, 0x4803c856, 0x4c580000, 0x82040400, - 0x00000003, 0x8000b104, 0x0201f800, 0x0010bd5b, + 0x00000003, 0x8000b104, 0x0201f800, 0x0010c086, 0x5c00b000, 0x1c01f000, 0x4803c856, 0x4c580000, 0x82040c00, 0x00000003, 0x8004b104, 0x0201f800, - 0x0010bd5b, 0x5c00b000, 0x1c01f000, 0x591c0c07, + 0x0010c086, 0x5c00b000, 0x1c01f000, 0x591c0c07, 0x82040580, 0x00000003, 0x04000007, 0x82040580, 0x00000002, 0x04000004, 0x82040580, 0x0000000a, 0x0402002d, 0x4d300000, 0x4d2c0000, 0x411e6000, - 0x59325809, 0x0201f800, 0x00109667, 0x04000022, + 0x59325809, 0x0201f800, 0x0010989f, 0x04000022, 0x59300c07, 0x82040580, 0x0000000a, 0x04000023, 0x82040580, 0x00000003, 0x04020009, 0x592c0a05, 0x82040d00, 0x000000ff, 0x82040d80, 0x00000014, 0x04000003, 0x4a026226, 0x00000003, 0x0401f81c, 0x4d400000, 0x42028000, 0x00000013, 0x592c0a09, - 0x84040d54, 0x0201f800, 0x00104cf5, 0x5c028000, - 0x0201f800, 0x00109d18, 0x0201f800, 0x000203ef, + 0x84040d54, 0x0201f800, 0x00104e1a, 0x5c028000, + 0x0201f800, 0x00109f56, 0x0201f800, 0x000203ef, 0x59300226, 0x82000580, 0x00000003, 0x02000800, - 0x0010977c, 0x0201f800, 0x00107cbe, 0x5c025800, + 0x001099b4, 0x0201f800, 0x00107eb4, 0x5c025800, 0x5c026000, 0x1c01f000, 0x4a025a07, 0x00000013, 0x4a026226, 0x0000000a, 0x0401f7ee, 0x592c0409, 0x8c000512, 0x04000009, 0x84000512, 0x48025c09, @@ -23890,75 +24083,75 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x02021800, 0x0010032e, 0x0c01f80a, 0x5c027800, 0x1c01f000, 0x4933c857, 0x59300407, 0x82000c80, 0x00000014, 0x02021800, 0x0010032e, 0x0c01f001, - 0x00109211, 0x0010920e, 0x0010920e, 0x0010924e, - 0x0010920c, 0x0010920e, 0x0010922a, 0x0010920e, - 0x0010920c, 0x001069be, 0x0010a137, 0x0010920e, - 0x0010920e, 0x0010920c, 0x0010920c, 0x0010920c, - 0x00109344, 0x0010920e, 0x0010bb03, 0x0010bb03, + 0x00109445, 0x00109442, 0x00109442, 0x00109482, + 0x00109440, 0x00109442, 0x0010945e, 0x00109442, + 0x00109440, 0x00106bc3, 0x0010a374, 0x00109442, + 0x00109442, 0x00109440, 0x00109440, 0x00109440, + 0x00109578, 0x00109442, 0x0010be2e, 0x0010be2e, 0x0201f800, 0x0010032e, 0x4803c856, 0x80000580, 0x1c01f000, 0x4803c856, 0x8d3e7d02, 0x04020016, - 0x0201f800, 0x00109667, 0x0400000f, 0x59325809, + 0x0201f800, 0x0010989f, 0x0400000f, 0x59325809, 0x41780800, 0x4d400000, 0x42028000, 0x00000005, - 0x0201f800, 0x00104cf5, 0x5c028000, 0x0201f800, - 0x00109d18, 0x0201f800, 0x0010982a, 0x0201f800, - 0x000203ef, 0x0201f800, 0x00107cbe, 0x82000540, + 0x0201f800, 0x00104e1a, 0x5c028000, 0x0201f800, + 0x00109f56, 0x0201f800, 0x00109a62, 0x0201f800, + 0x000203ef, 0x0201f800, 0x00107eb4, 0x82000540, 0x00000001, 0x1c01f000, 0x4933c857, 0x0201f800, - 0x00109667, 0x04000009, 0x59300809, 0x58040209, + 0x0010989f, 0x04000009, 0x59300809, 0x58040209, 0x8c000512, 0x04000005, 0x4d400000, 0x42028000, - 0x0000000c, 0x0401f011, 0x0201f800, 0x0010483c, + 0x0000000c, 0x0401f011, 0x0201f800, 0x0010493c, 0x0400000b, 0x59300415, 0x84000556, 0x48026415, 0x0401f812, 0x4df00000, 0x59300415, 0x84000516, 0x48026415, 0x5c03e000, 0x1c01f000, 0x4d400000, - 0x42028000, 0x00000010, 0x0201f800, 0x0010acac, + 0x42028000, 0x00000010, 0x0201f800, 0x0010afbb, 0x4a026407, 0x00000006, 0x4a026203, 0x00000007, 0x5c028000, 0x1c01f000, 0x4933c857, 0x0201f800, - 0x00106c3c, 0x4df00000, 0x0401f8de, 0x82000c80, + 0x00106e41, 0x4df00000, 0x0401f8de, 0x82000c80, 0x0000000e, 0x02021800, 0x0010032e, 0x0c01f001, - 0x00109268, 0x001092ef, 0x0010927f, 0x00109303, - 0x001092ea, 0x00109266, 0x00109268, 0x00109268, - 0x0010926c, 0x00109268, 0x00109268, 0x00109268, - 0x00109268, 0x0010927f, 0x0201f800, 0x0010032e, - 0x5c03e000, 0x02000800, 0x00106c29, 0x0401f7a3, - 0x5c03e000, 0x02000800, 0x00106c29, 0x59300407, + 0x0010949c, 0x00109523, 0x001094b3, 0x00109537, + 0x0010951e, 0x0010949a, 0x0010949c, 0x0010949c, + 0x001094a0, 0x0010949c, 0x0010949c, 0x0010949c, + 0x0010949c, 0x001094b3, 0x0201f800, 0x0010032e, + 0x5c03e000, 0x02000800, 0x00106e2e, 0x0401f7a3, + 0x5c03e000, 0x02000800, 0x00106e2e, 0x59300407, 0x82000580, 0x00000003, 0x0402079f, 0x59300203, 0x82000580, 0x0000000d, 0x0400079b, 0x8d3e7d02, 0x04020799, 0x4d340000, 0x5932680a, 0x0201f800, - 0x001048bd, 0x5c026800, 0x0401f793, 0x0201f800, - 0x0010a1e1, 0x59300004, 0x8400055c, 0x48026004, - 0x0201f800, 0x00106c29, 0x59300407, 0x82000580, + 0x001049bd, 0x5c026800, 0x0401f793, 0x0201f800, + 0x0010a424, 0x59300004, 0x8400055c, 0x48026004, + 0x0201f800, 0x00106e2e, 0x59300407, 0x82000580, 0x00000006, 0x0400005b, 0x8d3e7d02, 0x04020059, 0x497a6226, 0x59300203, 0x82000580, 0x0000000d, - 0x04000003, 0x4a026226, 0x00000003, 0x0401fbd4, + 0x04000003, 0x4a026226, 0x00000003, 0x0401fbd8, 0x04020004, 0x8d3e7d00, 0x04000044, 0x0401f038, 0x4d2c0000, 0x4d400000, 0x59325809, 0x0201f800, - 0x0010982a, 0x592c0409, 0x8c000512, 0x04000009, + 0x00109a62, 0x592c0409, 0x8c000512, 0x04000009, 0x4d2c0000, 0x84000512, 0x48025c09, 0x592c080a, 0x40065800, 0x0201f800, 0x0010059d, 0x5c025800, 0x4d400000, 0x42028000, 0x00000005, 0x592c0a09, 0x8c040d0e, 0x04000004, 0x42028000, 0x00000002, 0x0401f005, 0x8c040d12, 0x04000003, 0x42028000, - 0x0000000c, 0x0201f800, 0x00104cf5, 0x5c028000, - 0x0201f800, 0x00109d18, 0x8d3e7d00, 0x04020004, - 0x0201f800, 0x0010bd9c, 0x04020004, 0x0201f800, + 0x0000000c, 0x0201f800, 0x00104e1a, 0x5c028000, + 0x0201f800, 0x00109f56, 0x8d3e7d00, 0x04020004, + 0x0201f800, 0x0010c0c7, 0x04020004, 0x0201f800, 0x000203ef, 0x497a6009, 0x5c028000, 0x5c025800, 0x8d3e7d00, 0x0400000d, 0x59300a26, 0x82040d80, 0x00000003, 0x04020006, 0x4d340000, 0x5932680a, - 0x0201f800, 0x001048bd, 0x5c026800, 0x0201f800, - 0x00107cbe, 0x0401f013, 0x0201f800, 0x0010bd9c, + 0x0201f800, 0x001049bd, 0x5c026800, 0x0201f800, + 0x00107eb4, 0x0401f013, 0x0201f800, 0x0010c0c7, 0x04020006, 0x59300a26, 0x82040d80, 0x00000003, - 0x02000800, 0x0010977c, 0x4a026403, 0x00000085, + 0x02000800, 0x001099b4, 0x4a026403, 0x00000085, 0x4a026203, 0x00000009, 0x4a026407, 0x00000002, 0x42000800, 0x8000404b, 0x0201f800, 0x00020b3e, - 0x5c03e000, 0x02020800, 0x00106c3c, 0x82000540, - 0x00000001, 0x1c01f000, 0x0201f800, 0x00106c29, - 0x0201f800, 0x00100c75, 0x0401f791, 0x598c000f, - 0x81300580, 0x04020004, 0x0201f800, 0x00106f5c, - 0x0402001d, 0x0201f800, 0x0010fece, 0x80c40040, + 0x5c03e000, 0x02020800, 0x00106e41, 0x82000540, + 0x00000001, 0x1c01f000, 0x0201f800, 0x00106e2e, + 0x0201f800, 0x00100c76, 0x0401f791, 0x598c000f, + 0x81300580, 0x04020004, 0x0201f800, 0x00107161, + 0x0402001d, 0x0201f800, 0x001101de, 0x80c40040, 0x04020006, 0x59300c03, 0x82040580, 0x00000040, - 0x04000770, 0x0401f782, 0x0201f800, 0x00106b47, + 0x04000770, 0x0401f782, 0x0201f800, 0x00106d4c, 0x04000011, 0x0201f800, 0x0010032e, 0x0401f81b, - 0x04020004, 0x0201f800, 0x00106f25, 0x0402000a, - 0x0201f800, 0x0010fd55, 0x80c40040, 0x040207f3, + 0x04020004, 0x0201f800, 0x0010712a, 0x0402000a, + 0x0201f800, 0x00110065, 0x80c40040, 0x040207f3, 0x59300c03, 0x82040580, 0x00000040, 0x0400075d, 0x0401f76f, 0x59300203, 0x82000c80, 0x0000000e, 0x02021800, 0x0010032e, 0x0c01f742, 0x0401f807, @@ -23973,44 +24166,44 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x0000001f, 0x82040580, 0x00000005, 0x04020004, 0x42000000, 0x00000003, 0x0401f005, 0x42000000, 0x00000001, 0x0401f002, 0x59300203, 0x1c01f000, - 0x4933c857, 0x0201f800, 0x00106c3c, 0x4df00000, + 0x4933c857, 0x0201f800, 0x00106e41, 0x4df00000, 0x59300203, 0x82000c80, 0x0000000e, 0x02021800, - 0x0010032e, 0x0c01f001, 0x0010935e, 0x0010937b, - 0x00109362, 0x0010935c, 0x0010935c, 0x0010935c, - 0x0010935c, 0x0010935c, 0x0010935c, 0x0010935c, - 0x0010935c, 0x0010935c, 0x0010935c, 0x0010935c, + 0x0010032e, 0x0c01f001, 0x00109592, 0x001095af, + 0x00109596, 0x00109590, 0x00109590, 0x00109590, + 0x00109590, 0x00109590, 0x00109590, 0x00109590, + 0x00109590, 0x00109590, 0x00109590, 0x00109590, 0x0201f800, 0x0010032e, 0x5c03e000, 0x02000800, - 0x00106c29, 0x0401f6ad, 0x5c03e000, 0x02000800, - 0x00106c29, 0x4d2c0000, 0x59325809, 0x59300403, - 0x82000580, 0x00000052, 0x02000800, 0x001010b5, - 0x0401fafb, 0x02000800, 0x0010032e, 0x4a025a07, + 0x00106e2e, 0x0401f6ad, 0x5c03e000, 0x02000800, + 0x00106e2e, 0x4d2c0000, 0x59325809, 0x59300403, + 0x82000580, 0x00000052, 0x02000800, 0x001010b6, + 0x0401faff, 0x02000800, 0x0010032e, 0x4a025a07, 0x00000005, 0x0201f800, 0x000203ef, 0x0201f800, - 0x00104bb9, 0x0201f800, 0x00107cbe, 0x5c025800, + 0x00104cbe, 0x0201f800, 0x00107eb4, 0x5c025800, 0x82000540, 0x00000001, 0x1c01f000, 0x598c000f, 0x81300580, 0x0402001b, 0x59300004, 0x8c000520, 0x04000004, 0x84000520, 0x48026004, 0x0401f01b, - 0x42001000, 0x0010cb5b, 0x50081000, 0x58080002, + 0x42001000, 0x0010ce5b, 0x50081000, 0x58080002, 0x82000580, 0x00000100, 0x0400000b, 0x5808000b, 0x81300580, 0x02020800, 0x0010032e, 0x0201f800, - 0x0010fece, 0x80c40040, 0x02020800, 0x0010032e, - 0x0401f7ce, 0x0201f800, 0x00106f5c, 0x0402000d, + 0x001101de, 0x80c40040, 0x02020800, 0x0010032e, + 0x0401f7ce, 0x0201f800, 0x00107161, 0x0402000d, 0x59300004, 0x8c000520, 0x04000004, 0x84000520, - 0x48026004, 0x0401f7c5, 0x0201f800, 0x0010fece, + 0x48026004, 0x0401f7c5, 0x0201f800, 0x001101de, 0x80c40040, 0x040007c1, 0x0201f800, 0x0010032e, 0x59300203, 0x82000c80, 0x0000000e, 0x02021800, 0x0010032e, 0x0c01f7a5, 0x4d340000, 0x4d240000, 0x5932481c, 0x5932680a, 0x59300407, 0x4933c857, 0x4803c857, 0x82000c80, 0x00000014, 0x02021800, 0x0010032e, 0x0c01f804, 0x5c024800, 0x5c026800, - 0x1c01f000, 0x001093d2, 0x00109400, 0x00109592, - 0x00110517, 0x00109585, 0x0010958d, 0x0010ac9b, - 0x001093de, 0x00109580, 0x001069a6, 0x00109602, - 0x001093cd, 0x001093cd, 0x001093cd, 0x001093cd, - 0x00020b9d, 0x00109e71, 0x00109e71, 0x0010bb13, - 0x0010bb13, 0x0201f800, 0x0010032e, 0x0401fbdb, - 0x02000000, 0x001084a2, 0x1c01f000, 0x0201f800, - 0x00106c3c, 0x0201f800, 0x00106b8c, 0x0201f800, - 0x00106c29, 0x0201f000, 0x00020b9d, 0x4a026006, + 0x1c01f000, 0x00109606, 0x00109634, 0x001097ca, + 0x00110814, 0x001097bd, 0x001097c5, 0x0010afaa, + 0x00109612, 0x001097b8, 0x00106bab, 0x0010983a, + 0x00109601, 0x00109601, 0x00109601, 0x00109601, + 0x00020b9d, 0x0010a0af, 0x0010a0af, 0x0010be3e, + 0x0010be3e, 0x0201f800, 0x0010032e, 0x0401fbdf, + 0x02000000, 0x001086a8, 0x1c01f000, 0x0201f800, + 0x00106e41, 0x0201f800, 0x00106d91, 0x0201f800, + 0x00106e2e, 0x0201f000, 0x00020b9d, 0x4a026006, 0x00000001, 0x1c01f000, 0x4d340000, 0x4c5c0000, 0x59300203, 0x82000580, 0x00000011, 0x04020018, 0x5932680a, 0x4130b800, 0x0201f800, 0x00020b7b, @@ -24020,34 +24213,35 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x4a026407, 0x00000001, 0x42000800, 0x80000040, 0x0201f800, 0x00020b3e, 0x405e6000, 0x0201f800, 0x00020b9d, 0x5c00b800, 0x5c026800, 0x1c01f000, - 0x42000000, 0x0010cc2e, 0x0201f800, 0x0010bc88, - 0x0201f800, 0x0010b4f9, 0x59300203, 0x82000c80, + 0x42000000, 0x0010cf2e, 0x0201f800, 0x0010bfb3, + 0x0201f800, 0x0010b824, 0x59300203, 0x82000c80, 0x0000000e, 0x02021800, 0x0010032e, 0x4803c857, - 0x0c01f001, 0x0010941b, 0x001093db, 0x0010941d, - 0x0010941b, 0x0010941d, 0x0010941d, 0x001093d3, - 0x0010941b, 0x001093cf, 0x0010941b, 0x0010941b, - 0x0010941b, 0x0010941b, 0x0010941b, 0x0201f800, - 0x0010032e, 0x4d2c0000, 0x59340400, 0x82000500, + 0x0c01f001, 0x0010964f, 0x0010960f, 0x00109651, + 0x0010964f, 0x00109651, 0x00109651, 0x00109607, + 0x0010964f, 0x00109603, 0x0010964f, 0x0010964f, + 0x0010964f, 0x0010964f, 0x0010964f, 0x0201f800, + 0x0010032e, 0x83340580, 0x0010e23c, 0x02000000, + 0x00107eb4, 0x4d2c0000, 0x59340400, 0x82000500, 0x000000ff, 0x82000c80, 0x0000000c, 0x02021800, 0x0010032e, 0x59303403, 0x82180d80, 0x00000051, 0x04000010, 0x82180d80, 0x00000004, 0x04020004, 0x42000000, 0x00000001, 0x0401f006, 0x82180d80, 0x00000000, 0x04020003, 0x42000000, 0x00000001, 0x4803c857, 0x0c01f82d, 0x5c025800, 0x1c01f000, - 0x42000000, 0x0010cc2a, 0x0201f800, 0x0010bc88, - 0x0201f800, 0x00101f51, 0x59340412, 0x82000500, + 0x42000000, 0x0010cf2a, 0x0201f800, 0x0010bfb3, + 0x0201f800, 0x00101fb4, 0x59340412, 0x82000500, 0x000000ff, 0x0400001c, 0x80000040, 0x48026c12, - 0x4d300000, 0x0201f800, 0x00107cfe, 0x5c000000, + 0x4d300000, 0x0201f800, 0x00107ef8, 0x5c000000, 0x04000014, 0x4a000407, 0x00000007, 0x4a000006, 0x00000398, 0x49238830, 0x4a038832, 0xffffffff, 0x4926601c, 0x497a6009, 0x4936600a, 0x4a026407, 0x00000001, 0x4a026203, 0x00000001, 0x4a026403, - 0x00000051, 0x5c025800, 0x0201f000, 0x00106b17, + 0x00000051, 0x5c025800, 0x0201f000, 0x00106d1c, 0x40026000, 0x5c025800, 0x42002800, 0x00000001, - 0x0201f000, 0x0010a1bb, 0x0010946e, 0x00109528, - 0x00109470, 0x001094b9, 0x00109470, 0x00109545, - 0x00109470, 0x0010947a, 0x0010946e, 0x00109545, - 0x0010946e, 0x00109489, 0x0201f800, 0x0010032e, + 0x0201f000, 0x0010a3f8, 0x001096a6, 0x00109760, + 0x001096a8, 0x001096f1, 0x001096a8, 0x0010977d, + 0x001096a8, 0x001096b2, 0x001096a6, 0x0010977d, + 0x001096a6, 0x001096c1, 0x0201f800, 0x0010032e, 0x59300403, 0x82000d80, 0x00000016, 0x04000042, 0x82000d80, 0x00000004, 0x0400003f, 0x82000d80, 0x00000002, 0x0400003c, 0x0401fb30, 0x0400003a, @@ -24055,29 +24249,29 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x82000d80, 0x00000039, 0x040000d3, 0x82000d80, 0x00000035, 0x040000d0, 0x82000d80, 0x0000001e, 0x0400002f, 0x0401f9de, 0x04000007, 0x0201f800, - 0x00109d13, 0x04020004, 0x0201f800, 0x0010494e, + 0x00109f51, 0x04020004, 0x0201f800, 0x00104a50, 0x0401f025, 0x59300403, 0x82000d80, 0x00000001, 0x04020014, 0x5930081c, 0x58040200, 0x8c000500, - 0x02000000, 0x0010a1b4, 0x5930080a, 0x58040403, + 0x02000000, 0x0010a3f1, 0x5930080a, 0x58040403, 0x82000580, 0x000007fe, 0x04020007, 0x42002800, - 0x00000001, 0x0201f800, 0x0010a1bb, 0x0201f000, - 0x00020b9d, 0x0201f800, 0x0010491a, 0x0400000e, + 0x00000001, 0x0201f800, 0x0010a3f8, 0x0201f000, + 0x00020b9d, 0x0201f800, 0x00104a1c, 0x0400000e, 0x59340403, 0x82000480, 0x000007f0, 0x0402100c, - 0x4d3c0000, 0x417a7800, 0x0201f800, 0x0010fc72, - 0x5c027800, 0x42000000, 0x0010cc23, 0x0201f800, - 0x0010bc88, 0x0201f800, 0x001084a2, 0x0201f000, - 0x00107cbe, 0x0401f9ae, 0x04000004, 0x0201f800, - 0x00109d13, 0x040000b1, 0x59300c03, 0x82040580, + 0x4d3c0000, 0x417a7800, 0x0201f800, 0x0010ff80, + 0x5c027800, 0x42000000, 0x0010cf23, 0x0201f800, + 0x0010bfb3, 0x0201f800, 0x001086a8, 0x0201f000, + 0x00107eb4, 0x0401f9ae, 0x04000004, 0x0201f800, + 0x00109f51, 0x040000b1, 0x59300c03, 0x82040580, 0x00000016, 0x0400005d, 0x82040580, 0x00000002, 0x04020031, 0x59a8021b, 0x8c000502, 0x04020016, 0x59a81078, 0x8c08153e, 0x04020013, 0x0201f800, - 0x00104fc6, 0x04020010, 0x0201f800, 0x00104ff1, + 0x001050f7, 0x04020010, 0x0201f800, 0x00105122, 0x04020006, 0x42000000, 0x00000001, 0x0201f800, - 0x00104f97, 0x0401f099, 0x4a035014, 0x00000001, - 0x4202d800, 0x00000001, 0x0201f800, 0x00104f20, + 0x001050c8, 0x0401f099, 0x4a035014, 0x00000001, + 0x4202d800, 0x00000001, 0x0201f800, 0x00105051, 0x0401f092, 0x59340412, 0x82000500, 0x000000ff, 0x04000015, 0x80000040, 0x48026c12, 0x5932481c, - 0x497a6205, 0x4d300000, 0x0201f800, 0x00107cfe, + 0x497a6205, 0x4d300000, 0x0201f800, 0x00107ef8, 0x5c000000, 0x0400000b, 0x49780009, 0x4a000407, 0x00000007, 0x4a000006, 0x00000398, 0x4926601c, 0x4936600a, 0x4a026407, 0x00000001, 0x0401f02b, @@ -24085,88 +24279,88 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x04020014, 0x59340403, 0x82000580, 0x000007fe, 0x0402000c, 0x59a81078, 0x8c08153e, 0x04020004, 0x59a8021b, 0x84000540, 0x4803521b, 0x0201f800, - 0x00104154, 0x0201f800, 0x001084a2, 0x0401f010, - 0x42000000, 0x00000103, 0x0201f800, 0x00107f81, - 0x0201f800, 0x001084a2, 0x4d3c0000, 0x417a7800, - 0x0201f800, 0x0010fc72, 0x5c027800, 0x42000000, - 0x0010cc23, 0x0201f800, 0x0010bc88, 0x59a81078, - 0x8c08153e, 0x04020003, 0x0201f800, 0x00101cb2, - 0x0201f000, 0x00107cbe, 0x42000800, 0x00000003, - 0x0201f800, 0x001044f1, 0x4a026203, 0x00000001, - 0x4a026403, 0x00000002, 0x0201f000, 0x00106b17, - 0x0401f93f, 0x0402078c, 0x0201f800, 0x00101cb2, - 0x4d3c0000, 0x417a7800, 0x0201f800, 0x0010fc72, - 0x5c027800, 0x42000000, 0x0010cc23, 0x0201f800, - 0x0010bc88, 0x42003000, 0x00000018, 0x41782800, + 0x0010424d, 0x0201f800, 0x001086a8, 0x0401f010, + 0x42000000, 0x00000103, 0x0201f800, 0x0010817e, + 0x0201f800, 0x001086a8, 0x4d3c0000, 0x417a7800, + 0x0201f800, 0x0010ff80, 0x5c027800, 0x42000000, + 0x0010cf23, 0x0201f800, 0x0010bfb3, 0x59a81078, + 0x8c08153e, 0x04020003, 0x0201f800, 0x00101cb7, + 0x0201f000, 0x00107eb4, 0x42000800, 0x00000003, + 0x0201f800, 0x001045ea, 0x4a026203, 0x00000001, + 0x4a026403, 0x00000002, 0x0201f000, 0x00106d1c, + 0x0401f93f, 0x0402078c, 0x0201f800, 0x00101cb7, + 0x4d3c0000, 0x417a7800, 0x0201f800, 0x0010ff80, + 0x5c027800, 0x42000000, 0x0010cf23, 0x0201f800, + 0x0010bfb3, 0x42003000, 0x00000018, 0x41782800, 0x42002000, 0x00000000, 0x4d400000, 0x4d440000, 0x59368c03, 0x42028000, 0x00000029, 0x0201f800, - 0x00109fec, 0x5c028800, 0x5c028000, 0x0201f000, - 0x00107cbe, 0x0201f800, 0x0010494e, 0x0401f7c5, - 0x42000000, 0x0010cc2d, 0x0201f800, 0x0010bc88, - 0x42000000, 0x00000105, 0x0201f800, 0x00107f81, - 0x040007bc, 0x0201f800, 0x00107f9c, 0x040207b9, - 0x1c01f000, 0x59300c03, 0x0201f800, 0x00109a64, + 0x0010a22a, 0x5c028800, 0x5c028000, 0x0201f000, + 0x00107eb4, 0x0201f800, 0x00104a50, 0x0401f7c5, + 0x42000000, 0x0010cf2d, 0x0201f800, 0x0010bfb3, + 0x42000000, 0x00000105, 0x0201f800, 0x0010817e, + 0x040007bc, 0x0201f800, 0x001081a1, 0x040207b9, + 0x1c01f000, 0x59300c03, 0x0201f800, 0x00109c9c, 0x02020000, 0x00020b9d, 0x836c0580, 0x00000003, 0x04000004, 0x4a026006, 0x00000002, 0x1c01f000, 0x59300403, 0x48026417, 0x4a026226, 0x00000001, 0x4a026403, 0x00000085, 0x4a026203, 0x00000009, 0x4a026407, 0x00000002, 0x42000800, 0x8000004b, - 0x0201f000, 0x00020b3e, 0x0201f800, 0x001084a2, - 0x4d3c0000, 0x417a7800, 0x0201f800, 0x0010fc72, - 0x5c027800, 0x42000000, 0x0010cc23, 0x0201f800, - 0x0010bc88, 0x497a6009, 0x4a026407, 0x00000007, + 0x0201f000, 0x00020b3e, 0x0201f800, 0x001086a8, + 0x4d3c0000, 0x417a7800, 0x0201f800, 0x0010ff80, + 0x5c027800, 0x42000000, 0x0010cf23, 0x0201f800, + 0x0010bfb3, 0x497a6009, 0x4a026407, 0x00000007, 0x4a026006, 0x00000398, 0x497a6205, 0x1c01f000, - 0x42000000, 0x0010cc34, 0x0201f800, 0x0010bc88, - 0x0401f67c, 0x42000000, 0x0010cc2f, 0x0201f800, - 0x0010bc88, 0x0201f800, 0x0010b4f9, 0x0201f000, - 0x00107cbe, 0x42000000, 0x0010cc31, 0x0201f800, - 0x0010bc88, 0x1c01f000, 0x42000000, 0x0010cc30, - 0x0201f800, 0x0010bc88, 0x59300203, 0x82000c80, + 0x42000000, 0x0010cf34, 0x0201f800, 0x0010bfb3, + 0x0401f678, 0x42000000, 0x0010cf2f, 0x0201f800, + 0x0010bfb3, 0x0201f800, 0x0010b824, 0x0201f000, + 0x00107eb4, 0x42000000, 0x0010cf31, 0x0201f800, + 0x0010bfb3, 0x1c01f000, 0x42000000, 0x0010cf30, + 0x0201f800, 0x0010bfb3, 0x59300203, 0x82000c80, 0x0000000e, 0x02021800, 0x0010032e, 0x4803c857, - 0x0c01f001, 0x001095ab, 0x001093db, 0x001095ab, - 0x001095ab, 0x001095ab, 0x001095ab, 0x001095ab, - 0x001095ab, 0x001095ab, 0x001093db, 0x001095ad, - 0x001093db, 0x001095b5, 0x001095ab, 0x0201f800, + 0x0c01f001, 0x001097e3, 0x0010960f, 0x001097e3, + 0x001097e3, 0x001097e3, 0x001097e3, 0x001097e3, + 0x001097e3, 0x001097e3, 0x0010960f, 0x001097e5, + 0x0010960f, 0x001097ed, 0x001097e3, 0x0201f800, 0x0010032e, 0x4a026403, 0x0000008b, 0x4a026203, 0x0000000b, 0x42000800, 0x8000404b, 0x0201f000, 0x00020b3e, 0x59300a26, 0x0401f8b1, 0x0400000f, 0x4d2c0000, 0x59325809, 0x4a025a07, 0x00000006, 0x497a5c0a, 0x0201f800, 0x000203ef, 0x59300a26, - 0x82040d80, 0x00000003, 0x02000800, 0x001048bd, + 0x82040d80, 0x00000003, 0x02000800, 0x001049bd, 0x5c025800, 0x497a6009, 0x4d3c0000, 0x417a7800, - 0x0201f800, 0x0010fc72, 0x5c027800, 0x42003000, - 0x00000011, 0x0201f800, 0x0010b412, 0x42000000, - 0x0010cc23, 0x0201f800, 0x0010bc88, 0x4c5c0000, - 0x4130b800, 0x0201f800, 0x00107cfe, 0x04000009, + 0x0201f800, 0x0010ff80, 0x5c027800, 0x42003000, + 0x00000011, 0x0201f800, 0x0010b73d, 0x42000000, + 0x0010cf23, 0x0201f800, 0x0010bfb3, 0x4c5c0000, + 0x4130b800, 0x0201f800, 0x00107ef8, 0x04000009, 0x4936600a, 0x4926601c, 0x4d300000, 0x405e6000, - 0x0201f800, 0x00107cbe, 0x5c026000, 0x0401f002, + 0x0201f800, 0x00107eb4, 0x5c026000, 0x0401f002, 0x405e6000, 0x5c00b800, 0x497a6009, 0x4a026407, 0x00000001, 0x4a026403, 0x00000001, 0x59240400, 0x8c00050a, 0x04020011, 0x4a026407, 0x00000004, 0x4a026203, 0x00000007, 0x4a026429, 0x00000001, 0x42003000, 0x00000004, 0x4d400000, 0x42028000, - 0x00000029, 0x41782800, 0x0201f800, 0x0010ae7c, + 0x00000029, 0x41782800, 0x0201f800, 0x0010b18b, 0x5c028000, 0x1c01f000, 0x42000800, 0x0000000b, - 0x0201f800, 0x001044f1, 0x4a026203, 0x00000001, - 0x0201f000, 0x00106b17, 0x42000000, 0x0010cc36, - 0x0201f800, 0x0010bc88, 0x59300203, 0x82000c80, + 0x0201f800, 0x001045ea, 0x4a026203, 0x00000001, + 0x0201f000, 0x00106d1c, 0x42000000, 0x0010cf36, + 0x0201f800, 0x0010bfb3, 0x59300203, 0x82000c80, 0x0000000e, 0x02021800, 0x0010032e, 0x4803c857, - 0x0c01f001, 0x00109633, 0x0010961b, 0x0010961f, - 0x00109634, 0x0010961d, 0x0010961b, 0x0010961b, - 0x0010961b, 0x0010961b, 0x0010961b, 0x0010961b, - 0x0010961b, 0x0010961b, 0x0010961b, 0x0201f800, - 0x0010032e, 0x0201f800, 0x00100c75, 0x4d2c0000, + 0x0c01f001, 0x0010986b, 0x00109853, 0x00109857, + 0x0010986c, 0x00109855, 0x00109853, 0x00109853, + 0x00109853, 0x00109853, 0x00109853, 0x00109853, + 0x00109853, 0x00109853, 0x00109853, 0x0201f800, + 0x0010032e, 0x0201f800, 0x00100c76, 0x4d2c0000, 0x59325809, 0x4a025a07, 0x00000006, 0x0201f800, 0x000203ef, 0x5c025800, 0x497a6009, 0x4a026226, 0x0000000a, 0x4a026403, 0x00000085, 0x4a026203, 0x00000009, 0x4a026407, 0x00000002, 0x42000800, 0x8000404b, 0x0201f000, 0x00020b3e, 0x1c01f000, - 0x0201f800, 0x00106c3c, 0x4df00000, 0x0401fce7, - 0x04020004, 0x0201f800, 0x00106f25, 0x0402000d, - 0x0201f800, 0x0010fd55, 0x80c40040, 0x04020005, - 0x5c03e000, 0x0201f800, 0x00106c29, 0x0401f7dc, - 0x0201f800, 0x00106b47, 0x02020800, 0x0010032e, - 0x5c03e000, 0x0201f800, 0x00106c29, 0x59300203, + 0x0201f800, 0x00106e41, 0x4df00000, 0x0401fce3, + 0x04020004, 0x0201f800, 0x0010712a, 0x0402000d, + 0x0201f800, 0x00110065, 0x80c40040, 0x04020005, + 0x5c03e000, 0x0201f800, 0x00106e2e, 0x0401f7dc, + 0x0201f800, 0x00106d4c, 0x02020800, 0x0010032e, + 0x5c03e000, 0x0201f800, 0x00106e2e, 0x59300203, 0x82000d80, 0x00000003, 0x02000800, 0x0010032e, 0x82000c80, 0x0000000e, 0x02021800, 0x0010032e, 0x0c01f7b9, 0x59a8000d, 0x59a8084f, 0x80040400, @@ -24182,64 +24376,64 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x0401f832, 0x4d380000, 0x42027000, 0x0000004b, 0x0201f800, 0x00020bc1, 0x5c027000, 0x82000540, 0x00000001, 0x5c026000, 0x1c01f000, 0x4803c856, - 0x4d300000, 0x0201f800, 0x00107cfe, 0x0400001e, - 0x0401f822, 0x4d300000, 0x0201f800, 0x00106c3c, + 0x4d300000, 0x0201f800, 0x00107ef8, 0x0400001e, + 0x0401f822, 0x4d300000, 0x0201f800, 0x00106e41, 0x4df00000, 0x4d3c0000, 0x42027800, 0x00002000, - 0x0201f800, 0x0011014a, 0x0201f800, 0x001101e3, - 0x0201f800, 0x00110623, 0x5c027800, 0x5c03e000, - 0x02000800, 0x00106c29, 0x5c026000, 0x8d3e7d3e, + 0x0201f800, 0x00110447, 0x0201f800, 0x001104e0, + 0x0201f800, 0x00110916, 0x5c027800, 0x5c03e000, + 0x02000800, 0x00106e2e, 0x5c026000, 0x8d3e7d3e, 0x0402000b, 0x4d380000, 0x42027000, 0x0000004c, 0x0201f800, 0x00020bc1, 0x5c027000, 0x82000540, 0x00000001, 0x5c026000, 0x1c01f000, 0x0201f800, 0x00020b9d, 0x0401f7fa, 0x592c0408, 0x494a6018, 0x494e6019, 0x4936600a, 0x492e6009, 0x4a026407, 0x00000003, 0x800000c2, 0x800008c4, 0x80040400, - 0x48026006, 0x0201f800, 0x00104971, 0x4926601c, + 0x48026006, 0x0201f800, 0x00104a73, 0x4926601c, 0x1c01f000, 0x493bc857, 0x4d300000, 0x0201f800, 0x00020b7b, 0x0400000d, 0x0401ffec, 0x4d400000, 0x42028000, 0x00000005, 0x0401f80d, 0x5c028000, 0x8d3e7d3e, 0x04020007, 0x0201f800, 0x00020bc1, 0x82000540, 0x00000001, 0x5c026000, 0x1c01f000, 0x0201f800, 0x00020b9d, 0x0401f7fa, 0x4803c856, - 0x0201f800, 0x00106c3c, 0x4df00000, 0x4d3c0000, + 0x0201f800, 0x00106e41, 0x4df00000, 0x4d3c0000, 0x4d440000, 0x59368c03, 0x42027800, 0x00002001, - 0x0201f800, 0x001100b9, 0x0201f800, 0x0011010b, - 0x0201f800, 0x001101e3, 0x0201f800, 0x00110623, + 0x0201f800, 0x001103b6, 0x0201f800, 0x00110408, + 0x0201f800, 0x001104e0, 0x0201f800, 0x00110916, 0x5c028800, 0x5c027800, 0x5c03e000, 0x02000000, - 0x00106c29, 0x1c01f000, 0x4803c856, 0x4d300000, - 0x0201f800, 0x00107cfe, 0x04000012, 0x481a601d, - 0x48ee602a, 0x4936600a, 0x0201f800, 0x00104971, + 0x00106e2e, 0x1c01f000, 0x4803c856, 0x4d300000, + 0x0201f800, 0x00107ef8, 0x04000012, 0x481a601d, + 0x48ee602a, 0x4936600a, 0x0201f800, 0x00104a73, 0x4926601c, 0x4a026407, 0x00000001, 0x492e6009, 0x4d380000, 0x42027000, 0x0000001f, 0x0201f800, 0x00020bc1, 0x5c027000, 0x82000540, 0x00000001, 0x5c026000, 0x1c01f000, 0x4803c856, 0x4d300000, - 0x0201f800, 0x00107cfe, 0x04000011, 0x48ee602a, - 0x4936600a, 0x0201f800, 0x00104971, 0x4926601c, + 0x0201f800, 0x00107ef8, 0x04000011, 0x48ee602a, + 0x4936600a, 0x0201f800, 0x00104a73, 0x4926601c, 0x4a026407, 0x00000001, 0x492e6009, 0x4d380000, 0x42027000, 0x00000055, 0x0201f800, 0x00020bc1, 0x5c027000, 0x82000540, 0x00000001, 0x5c026000, 0x1c01f000, 0x4803c856, 0x4d300000, 0x0201f800, - 0x00107cfe, 0x04000012, 0x481a601d, 0x48ee602a, - 0x4936600a, 0x0201f800, 0x00104971, 0x4926601c, + 0x00107ef8, 0x04000012, 0x481a601d, 0x48ee602a, + 0x4936600a, 0x0201f800, 0x00104a73, 0x4926601c, 0x4a026407, 0x00000001, 0x492e6009, 0x4d380000, 0x42027000, 0x0000003d, 0x0201f800, 0x00020bc1, 0x5c027000, 0x82000540, 0x00000001, 0x5c026000, 0x1c01f000, 0x4803c856, 0x4d300000, 0x0201f800, - 0x00107cfe, 0x04000015, 0x4926601c, 0x4936600a, + 0x00107ef8, 0x04000015, 0x4926601c, 0x4936600a, 0x492fc857, 0x4933c857, 0x592c0405, 0x8c00051e, 0x04000003, 0x48efc857, 0x48ee602a, 0x4a026407, 0x00000001, 0x492e6009, 0x4d380000, 0x42027000, 0x00000000, 0x0201f800, 0x00020bc1, 0x5c027000, 0x82000540, 0x00000001, 0x5c026000, 0x1c01f000, - 0x4803c856, 0x4d300000, 0x0201f800, 0x00107cfe, + 0x4803c856, 0x4d300000, 0x0201f800, 0x00107ef8, 0x04000012, 0x48ee602a, 0x481a601d, 0x4936600a, - 0x0201f800, 0x00104971, 0x4926601c, 0x4a026407, + 0x0201f800, 0x00104a73, 0x4926601c, 0x4a026407, 0x00000001, 0x492e6009, 0x4d380000, 0x42027000, 0x00000044, 0x0201f800, 0x00020bc1, 0x5c027000, 0x82000540, 0x00000001, 0x5c026000, 0x1c01f000, - 0x4803c856, 0x4d300000, 0x0201f800, 0x00107cfe, + 0x4803c856, 0x4d300000, 0x0201f800, 0x00107ef8, 0x04000012, 0x481a601d, 0x48ee602a, 0x4936600a, - 0x0201f800, 0x00104971, 0x4926601c, 0x4a026407, + 0x0201f800, 0x00104a73, 0x4926601c, 0x4a026407, 0x00000001, 0x492e6009, 0x4d380000, 0x42027000, 0x00000049, 0x0201f800, 0x00020bc1, 0x5c027000, 0x82000540, 0x00000001, 0x5c026000, 0x1c01f000, @@ -24257,7 +24451,7 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x00000000, 0x1c01f000, 0x4803c856, 0x4c000000, 0x4d2c0000, 0x59300407, 0x82000580, 0x00000004, 0x0400001d, 0x59300009, 0x80025d40, 0x800001c0, - 0x04000019, 0x0201f800, 0x00109d13, 0x04000014, + 0x04000019, 0x0201f800, 0x00109f51, 0x04000014, 0x59300407, 0x82004580, 0x00000010, 0x04000010, 0x82004580, 0x00000011, 0x0400000d, 0x82004580, 0x00000003, 0x0400000c, 0x82004580, 0x00000002, @@ -24265,26 +24459,26 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x592c0405, 0x8c00051e, 0x04000003, 0x80000580, 0x0401f003, 0x82000540, 0x00000001, 0x5c025800, 0x5c000000, 0x1c01f000, 0x4803c856, 0x4d300000, - 0x0201f800, 0x00107cfe, 0x04000014, 0x4926601c, + 0x0201f800, 0x00107ef8, 0x04000014, 0x4926601c, 0x4936600a, 0x48ee602a, 0x4a026407, 0x00000001, 0x492e6009, 0x4d3c0000, 0x417a7800, 0x0201f800, - 0x0010fc72, 0x5c027800, 0x4d380000, 0x42027000, + 0x0010ff80, 0x5c027800, 0x4d380000, 0x42027000, 0x00000028, 0x0201f800, 0x00020bc1, 0x5c027000, 0x82000540, 0x00000001, 0x5c026000, 0x1c01f000, 0x4803c856, 0x83380580, 0x00000015, 0x0402000e, 0x59a8005a, 0x82000580, 0x00000074, 0x0402000a, - 0x41780800, 0x0201f800, 0x001045e8, 0x4a026203, + 0x41780800, 0x0201f800, 0x001046e4, 0x4a026203, 0x00000001, 0x4a026403, 0x00000029, 0x0201f000, - 0x00106b17, 0x0201f800, 0x001084a2, 0x0201f000, + 0x00106d1c, 0x0201f800, 0x001086a8, 0x0201f000, 0x00020b9d, 0x4803c856, 0x83380580, 0x00000016, 0x04020007, 0x42000800, 0x00000004, 0x0201f800, - 0x001044f1, 0x0201f000, 0x00107f2a, 0x83380580, + 0x001045ea, 0x0201f000, 0x00108127, 0x83380580, 0x00000015, 0x04020013, 0x59a8005a, 0x82000580, - 0x00000014, 0x0402000f, 0x0201f800, 0x00104652, - 0x0201f800, 0x00108a16, 0x0402000a, 0x59340404, + 0x00000014, 0x0402000f, 0x0201f800, 0x00104752, + 0x0201f800, 0x00108c3c, 0x0402000a, 0x59340404, 0x80000540, 0x04000007, 0x42000800, 0x00000006, - 0x0201f800, 0x001044f1, 0x0201f000, 0x00107f2a, - 0x0201f800, 0x001084a2, 0x0201f000, 0x00020b9d, + 0x0201f800, 0x001045ea, 0x0201f000, 0x00108127, + 0x0201f800, 0x001086a8, 0x0201f000, 0x00020b9d, 0x4803c856, 0x592c0207, 0x82000580, 0x00000005, 0x04000002, 0x1c01f000, 0x4803c856, 0x592c0209, 0x8400054a, 0x48025a09, 0x1c01f000, 0x59300809, @@ -24301,18 +24495,18 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x00020b3e, 0x4933c857, 0x4d340000, 0x5932680a, 0x59340200, 0x8c00050e, 0x04000006, 0x59300407, 0x82000c80, 0x00000014, 0x04021004, 0x0c01f806, - 0x5c026800, 0x1c01f000, 0x0201f800, 0x001093d2, - 0x0401f7fc, 0x001093d2, 0x0010987d, 0x00109881, - 0x00109884, 0x0010af91, 0x0010afae, 0x0010afb2, - 0x001093d2, 0x001093d2, 0x001093d2, 0x001093d2, - 0x001093d2, 0x001093d2, 0x001093d2, 0x001093d2, - 0x001093d2, 0x001093d2, 0x001093d2, 0x001093d2, - 0x001093d2, 0x4803c856, 0x40000000, 0x40000000, + 0x5c026800, 0x1c01f000, 0x0201f800, 0x00109606, + 0x0401f7fc, 0x00109606, 0x00109ab5, 0x00109ab9, + 0x00109abc, 0x0010b2a8, 0x0010b2c5, 0x0010b2c9, + 0x00109606, 0x00109606, 0x00109606, 0x00109606, + 0x00109606, 0x00109606, 0x00109606, 0x00109606, + 0x00109606, 0x00109606, 0x00109606, 0x00109606, + 0x00109606, 0x4803c856, 0x40000000, 0x40000000, 0x1c01f000, 0x40000000, 0x40000000, 0x1c01f000, 0x5930001d, 0x4803c857, 0x59300415, 0x4933c857, 0x4803c857, 0x8c000502, 0x04000005, 0x4803c857, 0x84000540, 0x48026415, 0x1c01f000, 0x42000000, - 0xd0000000, 0x41300800, 0x0201f800, 0x001008c9, + 0xd0000000, 0x41300800, 0x0201f800, 0x001008c7, 0x0401f810, 0x0402000e, 0x59300c15, 0x59300403, 0x82000580, 0x00000040, 0x04000003, 0x84040d40, 0x0401f005, 0x59a8002a, 0x82000400, 0x0000000a, @@ -24322,9 +24516,9 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x80000540, 0x04020036, 0x59300403, 0x4803c857, 0x82000580, 0x00000040, 0x04000003, 0x8d0e1d0e, 0x0402002d, 0x4d1c0000, 0x41323800, 0x0201f800, - 0x00107cfe, 0x04000026, 0x4932381d, 0x591c0415, + 0x00107ef8, 0x04000026, 0x4932381d, 0x591c0415, 0x84000542, 0x48023c15, 0x4936600a, 0x0201f800, - 0x00104971, 0x4926601c, 0x591c0407, 0x82000580, + 0x00104a73, 0x4926601c, 0x591c0407, 0x82000580, 0x00000003, 0x04000006, 0x591c0202, 0x4802641a, 0x591c0402, 0x4802621a, 0x0401f005, 0x591c0202, 0x4802621a, 0x591c0402, 0x4802641a, 0x491e6027, @@ -24339,7 +24533,7 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x48023808, 0x497a580a, 0x0401f019, 0x592c0409, 0x8c000518, 0x04000016, 0x84000518, 0x48025c09, 0x4d400000, 0x592e8207, 0x4a025a07, 0x00000001, - 0x0201f800, 0x00109d18, 0x49425a07, 0x5c028000, + 0x0201f800, 0x00109f56, 0x49425a07, 0x5c028000, 0x497a580a, 0x592c0409, 0x8c000512, 0x04000008, 0x4d2c0000, 0x84000512, 0x48025c09, 0x592e580a, 0x0201f800, 0x0010059d, 0x5c025800, 0x59a8002c, @@ -24373,46 +24567,46 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x82040480, 0x0000003c, 0x04021003, 0x80000580, 0x1c01f000, 0x82000540, 0x00000001, 0x0401f7fd, 0x41780800, 0x59a81028, 0x42000000, 0x00000032, - 0x0201f800, 0x00106a98, 0x800811c0, 0x04020003, + 0x0201f800, 0x00106c9d, 0x800811c0, 0x04020003, 0x42001000, 0x00000014, 0x480b502a, 0x59a81029, 0x480b5022, 0x41780800, 0x42000000, 0x00000064, - 0x0201f800, 0x00106a98, 0x800811c0, 0x04020003, + 0x0201f800, 0x00106c9d, 0x800811c0, 0x04020003, 0x42001000, 0x00000014, 0x480b502b, 0x82081400, 0x0000000a, 0x480b502c, 0x42000800, 0x00000001, - 0x0201f800, 0x00106c63, 0x42000000, 0x30000000, + 0x0201f800, 0x00106e68, 0x42000000, 0x30000000, 0x40080800, 0x0201f800, 0x0002010e, 0x42000800, - 0x00000003, 0x59a8100f, 0x0201f800, 0x00106c63, - 0x0201f000, 0x00104896, 0x4a03502a, 0x00000028, + 0x00000003, 0x59a8100f, 0x0201f800, 0x00106e68, + 0x0201f000, 0x00104996, 0x4a03502a, 0x00000028, 0x4a03502b, 0x00000014, 0x4a035022, 0x000007d0, 0x42001000, 0x0000001e, 0x480b502c, 0x42000800, - 0x00000001, 0x0201f800, 0x00106c63, 0x42000000, + 0x00000001, 0x0201f800, 0x00106e68, 0x42000000, 0x30000000, 0x40080800, 0x0201f800, 0x0002010e, 0x42000800, 0x00000003, 0x59a8100f, 0x0201f000, - 0x00106c63, 0x4933c857, 0x4d2c0000, 0x59300403, + 0x00106e68, 0x4933c857, 0x4d2c0000, 0x59300403, 0x82000580, 0x0000003e, 0x04020005, 0x59325818, 0x812e59c0, 0x02020800, 0x00100594, 0x5c025800, 0x1c01f000, 0x4937c857, 0x4d300000, 0x0201f800, - 0x00107cfe, 0x04000012, 0x4926601c, 0x4936600a, + 0x00107ef8, 0x04000012, 0x4926601c, 0x4936600a, 0x4a026407, 0x00000001, 0x492e6009, 0x42000800, - 0x00000009, 0x0201f800, 0x001044f1, 0x4d380000, + 0x00000009, 0x0201f800, 0x001045ea, 0x4d380000, 0x42027000, 0x00000033, 0x0201f800, 0x00020bc1, 0x5c027000, 0x82000540, 0x00000001, 0x5c026000, 0x1c01f000, 0x4933c857, 0x4d2c0000, 0x4c580000, 0x4d3c0000, 0x59325809, 0x83380580, 0x00000015, 0x04020025, 0x59a8b05a, 0x82580c80, 0x00000019, 0x04001003, 0x4200b000, 0x00000018, 0x8058b104, - 0x0401fae0, 0x80000580, 0x0401faf0, 0x832cac00, + 0x0401fae6, 0x80000580, 0x0401faf6, 0x832cac00, 0x0000000a, 0x83cca400, 0x00000006, 0x0201f800, - 0x0010bd5b, 0x4c600000, 0x4200c000, 0x00000001, + 0x0010c086, 0x4c600000, 0x4200c000, 0x00000001, 0x592c100b, 0x8c081518, 0x04020006, 0x59240005, 0x592c100e, 0x80080580, 0x04020007, 0x4178c000, 0x5930100a, 0x58081403, 0x417a7800, 0x0201f800, - 0x00101cda, 0x5c00c000, 0x0201f800, 0x00107f2a, - 0x0401f008, 0x4200b000, 0x00000002, 0x0401fadf, - 0x0201f800, 0x001084a2, 0x0201f800, 0x00020b9d, + 0x00101ce3, 0x5c00c000, 0x0201f800, 0x00108127, + 0x0401f008, 0x4200b000, 0x00000002, 0x0401fae5, + 0x0201f800, 0x001086a8, 0x0201f800, 0x00020b9d, 0x5c027800, 0x5c00b000, 0x5c025800, 0x1c01f000, 0x4933c856, 0x42018800, 0x00000000, 0x4a02601c, - 0x0010ccd1, 0x4936600a, 0x4a026407, 0x00000001, + 0x0010cfd1, 0x4936600a, 0x4a026407, 0x00000001, 0x492e6009, 0x4d380000, 0x42027000, 0x0000004d, 0x0201f800, 0x00020bc1, 0x5c027000, 0x82000540, 0x00000001, 0x42018800, 0x00000001, 0x1c01f000, @@ -24421,14 +24615,14 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x80040580, 0x04020027, 0x4c500000, 0x4c540000, 0x4c580000, 0x83cca400, 0x00000006, 0x4050a800, 0x5930b40b, 0x8258b400, 0x00000003, 0x8058b104, - 0x0201f800, 0x0010bd85, 0x83cca400, 0x00000006, + 0x0201f800, 0x0010c0b0, 0x83cca400, 0x00000006, 0x592cb206, 0x8258b400, 0x00000003, 0x8058b104, - 0x832cac00, 0x00000007, 0x0201f800, 0x0010bd5b, + 0x832cac00, 0x00000007, 0x0201f800, 0x0010c086, 0x592e5801, 0x812e59c0, 0x040207f6, 0x5931d82a, 0x58ef400a, 0x58ee580c, 0x4a025a05, 0x00000103, 0x58ec0008, 0x0801f800, 0x59300402, 0x5c00b000, 0x5c00a800, 0x5c00a000, 0x5c025800, 0x1c01f000, - 0x0201f800, 0x001084a2, 0x5c025800, 0x1c01f000, + 0x0201f800, 0x001086a8, 0x5c025800, 0x1c01f000, 0x4933c857, 0x82040d80, 0x00000035, 0x04000005, 0x5930141a, 0x0401f858, 0x04000027, 0x0401f006, 0x4d300000, 0x59326027, 0x0401f85e, 0x5c026000, @@ -24452,29 +24646,29 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x0401f807, 0x42018800, 0x00000001, 0x04020003, 0x42018800, 0x00000000, 0x1c01f000, 0x59300808, 0x8c040d1e, 0x592c0c09, 0x04020002, 0x8c040d18, - 0x1c01f000, 0x0201f800, 0x00109655, 0x04000008, - 0x42000800, 0x0000002c, 0x0201f800, 0x00106a79, - 0x82063c00, 0x00111264, 0x491fc857, 0x1c01f000, - 0x0201f800, 0x0010a09b, 0x04020007, 0x59301402, + 0x1c01f000, 0x0201f800, 0x0010988d, 0x04000008, + 0x42000800, 0x0000002c, 0x0201f800, 0x00106c7e, + 0x82063c00, 0x00111584, 0x491fc857, 0x1c01f000, + 0x0201f800, 0x0010a2d8, 0x04020007, 0x59301402, 0x0401fff1, 0x04000007, 0x411c0000, 0x81300580, 0x04000003, 0x81780500, 0x0401f002, 0x81300540, 0x1c01f000, 0x4d300000, 0x83440480, 0x000007f0, - 0x04001004, 0x0201f800, 0x0010497a, 0x0401f003, + 0x04001004, 0x0201f800, 0x00104a7c, 0x0401f003, 0x0201f800, 0x0002034c, 0x0402000d, 0x42026000, - 0x0011120c, 0x4936600a, 0x492e6009, 0x0201f800, - 0x00104971, 0x4926601c, 0x0201f800, 0x0010fc72, + 0x0011152c, 0x4936600a, 0x492e6009, 0x0201f800, + 0x00104a73, 0x4926601c, 0x0201f800, 0x0010ff80, 0x80000580, 0x5c026000, 0x1c01f000, 0x82000540, 0x00000001, 0x0401f7fc, 0x4933c857, 0x0201f800, - 0x00109667, 0x02000800, 0x0010032e, 0x4d2c0000, + 0x0010989f, 0x02000800, 0x0010032e, 0x4d2c0000, 0x4d340000, 0x4d440000, 0x4c580000, 0x59325809, 0x5932680a, 0x49425a07, 0x0201f800, 0x00020864, 0x592e8c07, 0x592c4208, 0x82200500, 0x0000000f, 0x0c01f806, 0x5c00b000, 0x5c028800, 0x5c026800, - 0x5c025800, 0x1c01f000, 0x00109b1d, 0x00109b3f, - 0x00109b46, 0x00109b4a, 0x00109b53, 0x00109b1a, - 0x00109b1a, 0x00109b1a, 0x00109b57, 0x00109b63, - 0x00109b63, 0x00109b1a, 0x00109b1a, 0x00109b1a, - 0x00109b1a, 0x00109b1a, 0x4803c857, 0x0201f800, + 0x5c025800, 0x1c01f000, 0x00109d55, 0x00109d77, + 0x00109d7e, 0x00109d82, 0x00109d8b, 0x00109d52, + 0x00109d52, 0x00109d52, 0x00109d8f, 0x00109d9b, + 0x00109d9b, 0x00109d52, 0x00109d52, 0x00109d52, + 0x00109d52, 0x00109d52, 0x4803c857, 0x0201f800, 0x0010032e, 0x814281c0, 0x04020012, 0x41785800, 0x592c0405, 0x8c00051c, 0x04020002, 0x59345c05, 0x442c2800, 0x59340008, 0x48002802, 0x59340009, @@ -24490,19 +24684,19 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x59340200, 0x44002800, 0x59340001, 0x48002801, 0x4200b000, 0x00000002, 0x0401f014, 0x8340b540, 0x00000000, 0x0402001b, 0x0401f010, 0x8340b540, - 0x00000000, 0x0400000d, 0x0201f800, 0x0010495c, + 0x00000000, 0x0400000d, 0x0201f800, 0x00104a5e, 0x04000014, 0x8c20450e, 0x04000002, 0x497a600a, 0x4178b000, 0x497a5a07, 0x0401f004, 0x8340b540, 0x00000000, 0x0402000b, 0x592c0405, 0x8400051c, 0x48025c05, 0x592c0208, 0x8400051e, 0x48025a08, - 0x0401f968, 0x497a6009, 0x0201f000, 0x000203ef, + 0x0401f96e, 0x497a6009, 0x0201f000, 0x000203ef, 0x592c0208, 0x8c00051e, 0x4200b000, 0x00000002, 0x040207f2, 0x8204b540, 0x00000000, 0x040007ef, 0x44042800, 0x4200b000, 0x00000001, 0x0401f7eb, - 0x4937c857, 0x4d300000, 0x0201f800, 0x00107cfe, + 0x4937c857, 0x4d300000, 0x0201f800, 0x00107ef8, 0x04000012, 0x4926601c, 0x4936600a, 0x4a026407, 0x00000001, 0x492e6009, 0x42000800, 0x0000000b, - 0x0201f800, 0x001044f1, 0x4d380000, 0x42027000, + 0x0201f800, 0x001045ea, 0x4d380000, 0x42027000, 0x00000043, 0x0201f800, 0x00020bc1, 0x5c027000, 0x82000540, 0x00000001, 0x5c026000, 0x1c01f000, 0x4937c857, 0x4d2c0000, 0x4d200000, 0x59340013, @@ -24512,861 +24706,912 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x04020013, 0x4d440000, 0x592e8c07, 0x592c0208, 0x4803c856, 0x82000500, 0x00000080, 0x84000548, 0x4d3c0000, 0x42027800, 0x00001000, 0x8c00050e, - 0x04000002, 0x853e7d5c, 0x0201f800, 0x001048c6, + 0x04000002, 0x853e7d5c, 0x0201f800, 0x001049c6, 0x5c027800, 0x5c028800, 0x0401f004, 0x4803c856, - 0x0201f800, 0x0010495c, 0x0201f800, 0x00109667, + 0x0201f800, 0x00104a5e, 0x0201f800, 0x0010989f, 0x04000017, 0x4d400000, 0x42028000, 0x00000000, 0x41780800, 0x0401ff31, 0x5c028000, 0x0401f00e, - 0x0201f800, 0x0010495c, 0x040207f4, 0x0201f800, - 0x00109667, 0x0400000a, 0x4c580000, 0x4200b000, - 0x00000002, 0x0401f925, 0x5c00b000, 0x0201f800, - 0x001084a2, 0x0201f800, 0x00020b9d, 0x5c024000, + 0x0201f800, 0x00104a5e, 0x040207f4, 0x0201f800, + 0x0010989f, 0x0400000a, 0x4c580000, 0x4200b000, + 0x00000002, 0x0401f92b, 0x5c00b000, 0x0201f800, + 0x001086a8, 0x0201f800, 0x00020b9d, 0x5c024000, 0x5c025800, 0x1c01f000, 0x4937c857, 0x4d300000, - 0x0201f800, 0x00107cfe, 0x04000013, 0x4926601c, + 0x0201f800, 0x00107ef8, 0x04000013, 0x4926601c, 0x4936600a, 0x4a026407, 0x00000001, 0x4d3c0000, - 0x4d380000, 0x417a7800, 0x0201f800, 0x001044e6, + 0x4d380000, 0x417a7800, 0x0201f800, 0x001045df, 0x492e6009, 0x42027000, 0x00000004, 0x0201f800, 0x00020bc1, 0x5c027000, 0x5c027800, 0x82000540, 0x00000001, 0x5c026000, 0x1c01f000, 0x4937c857, - 0x4d300000, 0x0201f800, 0x00107cfe, 0x04000012, + 0x4d300000, 0x0201f800, 0x00107ef8, 0x04000012, 0x4926601c, 0x4936600a, 0x42000800, 0x00000003, - 0x0201f800, 0x001044f1, 0x4a026407, 0x00000001, + 0x0201f800, 0x001045ea, 0x4a026407, 0x00000001, 0x492e6009, 0x4d380000, 0x42027000, 0x00000051, 0x0201f800, 0x00020bc1, 0x5c027000, 0x82000540, 0x00000001, 0x5c026000, 0x1c01f000, 0x4933c857, 0x4c580000, 0x4d240000, 0x4d200000, 0x4d400000, 0x4d440000, 0x4d3c0000, 0x5932481c, 0x59240a00, - 0x8c040d00, 0x040000a4, 0x0201f800, 0x00101f51, - 0x59325809, 0x83383580, 0x00000015, 0x04020061, - 0x42000800, 0x00000004, 0x0201f800, 0x001044f1, - 0x42000800, 0x00000001, 0x0201f800, 0x001045e8, - 0x812e59c0, 0x04020047, 0x59a8005e, 0x80000040, - 0x4803505e, 0x417a8000, 0x59cc0000, 0x82000500, - 0x00ffffff, 0x59240805, 0x4803c857, 0x4807c857, - 0x800409c0, 0x0400001d, 0x80041580, 0x0400001b, - 0x4c000000, 0x42028000, 0x0000002a, 0x59240400, - 0x8c00050a, 0x04020007, 0x42003000, 0x00000002, - 0x42028800, 0x0000ffff, 0x0201f800, 0x0010ae86, - 0x417a7800, 0x0201f800, 0x00101fa9, 0x0201f800, - 0x00102020, 0x42028000, 0x00000002, 0x59cc0c08, - 0x8c040d1e, 0x04020004, 0x59240a00, 0x84040d56, - 0x48064a00, 0x5c000000, 0x48024805, 0x40000800, - 0x812000f0, 0x80040540, 0x48026813, 0x40040000, - 0x83200c80, 0x00000040, 0x04021004, 0x49238830, - 0x84000570, 0x48038832, 0x59240200, 0x82000540, - 0x00000206, 0x48024a00, 0x59240400, 0x8c00050c, - 0x04000005, 0x4a026426, 0x00000051, 0x0401f85d, - 0x0401f055, 0x42000000, 0x00000001, 0x0201f800, - 0x00104d11, 0x0201f800, 0x00020b9d, 0x0401f04e, - 0x592c0009, 0x82000500, 0x00ffffff, 0x0402000a, - 0x0201f800, 0x00020864, 0x59cc0000, 0x82000500, - 0x00ffffff, 0x44002800, 0x4200b000, 0x00000001, - 0x0401f860, 0x0201f800, 0x00107f2a, 0x0401f03e, - 0x812e59c0, 0x04020037, 0x59340412, 0x800001c0, - 0x0400002f, 0x80000040, 0x48026c12, 0x59cc0c07, - 0x82043500, 0x000000ff, 0x481bc857, 0x82180580, - 0x00000003, 0x04020019, 0x59cc0207, 0x4803c857, - 0x82000d00, 0x0000ff00, 0x4807c857, 0x82040580, - 0x00000d00, 0x04020011, 0x59240a00, 0x84040d48, - 0x48064a00, 0x42000800, 0x0000000b, 0x0201f800, - 0x001044f1, 0x4a026407, 0x00000001, 0x4a026203, - 0x00000001, 0x4a026403, 0x00000001, 0x0201f800, - 0x00106b17, 0x0401f018, 0x42000800, 0x00000003, - 0x0201f800, 0x001044f1, 0x4a026202, 0x0000ffff, - 0x4a026203, 0x00000001, 0x4a026403, 0x00000051, - 0x0201f800, 0x00106b17, 0x0401f00b, 0x42002800, - 0x00000003, 0x0201f800, 0x0010a1bb, 0x0401f006, - 0x4200b000, 0x00000002, 0x0401f840, 0x0201f800, - 0x001084a2, 0x5c027800, 0x5c028800, 0x5c028000, - 0x5c024000, 0x5c024800, 0x5c00b000, 0x1c01f000, - 0x4933c857, 0x42028800, 0x000007fc, 0x42003000, - 0x00fffffc, 0x0201f800, 0x0010452c, 0x02020800, - 0x0010032e, 0x4936600a, 0x417a7800, 0x0201f800, - 0x001044e6, 0x42000800, 0x00000003, 0x0201f800, - 0x001044f1, 0x497a6c12, 0x4a026203, 0x00000001, - 0x4a026403, 0x00000002, 0x0201f000, 0x00106b17, - 0x492fc857, 0x4c580000, 0x4c000000, 0x8058b1c0, - 0x0400000b, 0x82580500, 0xfffffff0, 0x02020800, - 0x0010032e, 0x8058b0d0, 0x592c0409, 0x82000500, - 0xfffff0ff, 0x80580540, 0x48025c09, 0x5c000000, - 0x5c00b000, 0x1c01f000, 0x492fc857, 0x4c000000, - 0x4c040000, 0x800000d8, 0x592c0c09, 0x82040d00, - 0xffff0fff, 0x80040540, 0x48025c09, 0x5c000800, - 0x5c000000, 0x1c01f000, 0x4933c857, 0x4d2c0000, - 0x59325809, 0x592c0208, 0x8400055e, 0x48025a08, - 0x4c500000, 0x4c540000, 0x4c580000, 0x0401ffd9, - 0x0201f800, 0x00020864, 0x46002800, 0x00000018, - 0x80142800, 0x8058b040, 0x83cca400, 0x00000007, - 0x4014a800, 0x0201f800, 0x0010bd5b, 0x5c00b000, - 0x5c00a800, 0x5c00a000, 0x5c025800, 0x1c01f000, - 0x0401f807, 0x42018800, 0x00000001, 0x04000003, - 0x42018800, 0x00000000, 0x1c01f000, 0x59325809, - 0x592c0205, 0x82000580, 0x00000152, 0x1c01f000, - 0x59300028, 0x80000540, 0x02020800, 0x00100aeb, - 0x1c01f000, 0x59300008, 0x82000500, 0x04000800, - 0x82000580, 0x04000800, 0x04020003, 0x59300220, - 0x48025c10, 0x1c01f000, 0x4d2c0000, 0x59325809, - 0x59300203, 0x4933c857, 0x492fc857, 0x493bc857, - 0x4803c857, 0x82003480, 0x0000000e, 0x02021800, - 0x0010032e, 0x0c01f803, 0x5c025800, 0x1c01f000, - 0x00109d42, 0x00109d4d, 0x00109d8b, 0x00109d42, - 0x00109d42, 0x00109d42, 0x00109d42, 0x00109d42, - 0x00109d44, 0x00109d42, 0x00109d42, 0x00109d42, - 0x00109d42, 0x00109d42, 0x0201f800, 0x0010032e, - 0x83383480, 0x00000058, 0x02021800, 0x0010032e, - 0x493a6403, 0x4a026203, 0x00000001, 0x0201f000, - 0x00106b17, 0x83380580, 0x00000013, 0x04020010, - 0x492fc857, 0x592c000d, 0x800001c0, 0x04000006, - 0x4a026203, 0x00000002, 0x59a8002a, 0x48026006, - 0x1c01f000, 0x4a025a07, 0x00000000, 0x0201f800, - 0x000203ef, 0x0201f000, 0x00020b9d, 0x83380580, - 0x00000027, 0x0400001b, 0x83380580, 0x00000014, - 0x04000012, 0x83380580, 0x00000015, 0x04000005, - 0x83380580, 0x00000016, 0x02020800, 0x0010032e, - 0x0201f800, 0x00107021, 0x02020000, 0x00107d3d, - 0x59300203, 0x82000580, 0x00000002, 0x02020800, - 0x0010032e, 0x0401f016, 0x4937c857, 0x0201f800, - 0x00106b8c, 0x4a02580f, 0x00000011, 0x0401f006, - 0x4937c857, 0x0201f800, 0x00106b8c, 0x4a02580f, - 0x00000010, 0x4a025a07, 0x00000031, 0x4a02580e, - 0x00000004, 0x0201f800, 0x000203ef, 0x0201f800, - 0x00104bb9, 0x0201f000, 0x00107cbe, 0x59341400, - 0x82081d00, 0x000000ff, 0x59300c03, 0x480bc857, - 0x4807c857, 0x82040580, 0x00000053, 0x0400002e, - 0x82040580, 0x00000002, 0x04000016, 0x82040580, - 0x00000001, 0x04000017, 0x82040580, 0x00000003, - 0x0400001c, 0x82040580, 0x00000005, 0x0400001d, - 0x82040580, 0x00000033, 0x0400001a, 0x82040580, - 0x00000000, 0x0400001b, 0x82040580, 0x00000004, - 0x02020800, 0x0010032e, 0x0401f89f, 0x0401f016, - 0x820c0580, 0x00000003, 0x04000849, 0x0401f012, - 0x820c0580, 0x0000000b, 0x0402000f, 0x42000800, - 0x00000007, 0x0201f800, 0x001044f1, 0x0401f00a, - 0x820c0580, 0x00000005, 0x04000862, 0x0401f006, - 0x820c0580, 0x00000009, 0x04000887, 0x0401f002, - 0x0401f891, 0x4a026403, 0x00000052, 0x59a8105a, - 0x592c040c, 0x8c000500, 0x04000003, 0x42001000, - 0x00000008, 0x592c040c, 0x8c000516, 0x04000003, - 0x82081400, 0x00000018, 0x592c000d, 0x497a580e, - 0x497a580f, 0x80080c80, 0x04000009, 0x04001005, - 0x4a025a07, 0x00000007, 0x40001000, 0x0401f006, - 0x4a025a07, 0x00000015, 0x0401f003, 0x4a025a07, - 0x00000000, 0x480a580d, 0x0201f800, 0x00107ea4, - 0x04000010, 0x592c1001, 0x480a600c, 0x58080800, - 0x82080400, 0x00000002, 0x592c1012, 0x592c1813, - 0x42003000, 0x00000000, 0x42002000, 0x00101085, - 0x0201f800, 0x00108059, 0x04000002, 0x1c01f000, - 0x4a025a07, 0x0000002c, 0x497a580d, 0x0201f800, - 0x000203ef, 0x0201f000, 0x00020b9d, 0x83380580, - 0x00000015, 0x0402000b, 0x59a80070, 0x8c000502, - 0x0402000c, 0x41780800, 0x0201f800, 0x001045e8, - 0x42000800, 0x00000004, 0x0201f000, 0x001044f1, - 0x42000800, 0x00000007, 0x0201f000, 0x001044f1, - 0x0201f800, 0x00104fc6, 0x42001000, 0x00000010, - 0x04020009, 0x59340002, 0x82000500, 0x00ff0000, - 0x82000580, 0x00ff0000, 0x040007eb, 0x42001000, - 0x00000008, 0x0201f800, 0x00104c17, 0x040007e6, - 0x592c040c, 0x84000540, 0x48025c0c, 0x0401f7e9, - 0x83380580, 0x00000015, 0x0402000f, 0x59a80070, - 0x8c000502, 0x04020010, 0x0201f800, 0x00104652, - 0x4d3c0000, 0x417a7800, 0x0201f800, 0x001044e6, - 0x5c027800, 0x42000800, 0x00000006, 0x0201f000, - 0x001044f1, 0x42000800, 0x00000004, 0x0201f000, - 0x001044f1, 0x0201f800, 0x00104fc6, 0x42001000, - 0x00000010, 0x04020009, 0x59340002, 0x82000500, - 0x00ff0000, 0x82000580, 0x00ff0000, 0x040007e7, - 0x42001000, 0x00000008, 0x0201f800, 0x00104c17, - 0x040007e2, 0x592c040c, 0x84000540, 0x48025c0c, - 0x0401f7e9, 0x42000800, 0x00000004, 0x0201f000, - 0x001044f1, 0x83380580, 0x00000015, 0x04020005, - 0x0201f800, 0x0010adf8, 0x02000800, 0x0010481c, - 0x1c01f000, 0x83380580, 0x00000015, 0x0402001d, - 0x4c580000, 0x83cc1400, 0x00000008, 0x4200b000, - 0x00000002, 0x83341c00, 0x00000006, 0x0201f800, - 0x00108a31, 0x04020012, 0x83cc1400, 0x0000000a, - 0x4200b000, 0x00000002, 0x83341c00, 0x00000008, - 0x0201f800, 0x00108a31, 0x04020009, 0x59342200, - 0x59cc1007, 0x800811c0, 0x04000003, 0x480a6801, - 0x84102542, 0x8410251a, 0x48126a00, 0x5c00b000, - 0x1c01f000, 0x42000000, 0x0010cc3b, 0x0201f800, - 0x0010bc88, 0x0201f800, 0x00106c3c, 0x59300203, - 0x4933c857, 0x4803c857, 0x82000c80, 0x0000000e, - 0x02021800, 0x0010032e, 0x0c01f803, 0x0201f000, - 0x00106c29, 0x00109e91, 0x00109ea0, 0x00109e92, - 0x00109e8f, 0x00109e8f, 0x00109e8f, 0x00109e8f, - 0x00109e8f, 0x00109e8f, 0x00109e8f, 0x00109e8f, - 0x00109e8f, 0x00109e8f, 0x00109e8f, 0x0201f800, - 0x0010032e, 0x1c01f000, 0x59300403, 0x82000580, - 0x00000052, 0x02000000, 0x001093db, 0x0201f800, - 0x00104bb9, 0x59325809, 0x4a025a07, 0x00000006, - 0x0201f800, 0x000203ef, 0x0201f000, 0x00107cbe, - 0x59301804, 0x840c0520, 0x48026004, 0x598c000f, - 0x81300580, 0x04020010, 0x8c0c1d20, 0x04020010, - 0x42001000, 0x0010cb5b, 0x50081000, 0x58080002, - 0x82000580, 0x00000100, 0x0400000f, 0x5808000b, - 0x81300580, 0x02020800, 0x0010032e, 0x4978100b, - 0x0401f003, 0x8c0c1d20, 0x040207dc, 0x0201f800, - 0x0010fece, 0x80c40040, 0x040007d8, 0x0201f800, - 0x0010032e, 0x0201f800, 0x00106f5c, 0x040007f8, - 0x59300203, 0x82000c80, 0x0000000e, 0x02021800, - 0x0010032e, 0x0c01f7bc, 0x4933c857, 0x4c500000, - 0x4c540000, 0x4c580000, 0x592c0c08, 0x48065814, - 0x59cc0809, 0x48065808, 0x59cc0808, 0x4806580c, - 0x59a8086f, 0x82040500, 0x000003ff, 0x800010c4, - 0x8c040d14, 0x04000005, 0x59cc0002, 0x82000500, - 0x00000003, 0x80081480, 0x480a621b, 0x412c0800, - 0x0201f800, 0x0010056e, 0x02000800, 0x0010032e, - 0x492c080a, 0x58040409, 0x84000552, 0x84000540, - 0x48000c09, 0x82081400, 0x00000003, 0x80081104, - 0x83cca400, 0x00000006, 0x832cac00, 0x00000005, - 0x42000800, 0x00000010, 0x82080480, 0x00000010, - 0x04021003, 0x40080800, 0x80000580, 0x4004b000, - 0x4c000000, 0x0201f800, 0x0010bd85, 0x5c000000, - 0x800001c0, 0x0400000d, 0x412c1000, 0x4c000000, - 0x0201f800, 0x0010056e, 0x02000800, 0x0010032e, - 0x492c1001, 0x832cac00, 0x00000005, 0x5c000000, - 0x40001000, 0x0401f7e9, 0x5c00b000, 0x5c00a800, - 0x5c00a000, 0x1c01f000, 0x4933c857, 0x4d2c0000, - 0x4c380000, 0x59325809, 0x5930021b, 0x48025a09, - 0x59301012, 0x4a026203, 0x00000002, 0x592c020b, - 0x8c000500, 0x04000004, 0x59300016, 0x592c1010, - 0x80081480, 0x40080000, 0x0401f98b, 0x80001540, - 0x04020008, 0x4a025a07, 0x00000000, 0x592c000c, - 0x82000500, 0x00000c00, 0x0400000b, 0x0401f00b, - 0x8c08153e, 0x04000006, 0x4a025a07, 0x00000007, - 0x80081080, 0x80081000, 0x0401f003, 0x4a025a07, - 0x00000015, 0x480a5808, 0x42000000, 0x0010dfe6, - 0x50007000, 0x5838000a, 0x80000540, 0x04020008, - 0x4930700b, 0x4930700a, 0x58380002, 0x82000580, - 0x00000000, 0x04020809, 0x0401f005, 0x82001400, - 0x00000000, 0x45301000, 0x4930700a, 0x5c007000, - 0x5c025800, 0x1c01f000, 0x4933c857, 0x592c000a, - 0x40001000, 0x48007009, 0x82080400, 0x00000005, - 0x48007003, 0x592c000e, 0x592c100f, 0x48007006, - 0x48087007, 0x592c0014, 0x592c1209, 0x80080c80, - 0x04001002, 0x40001000, 0x82081400, 0x00000003, - 0x80081104, 0x82080480, 0x00000010, 0x04021003, - 0x80000580, 0x0401f003, 0x42001000, 0x00000010, - 0x4800700c, 0x48087004, 0x800810c4, 0x48087005, - 0x40381000, 0x0201f000, 0x00020016, 0x4d2c0000, - 0x0201f800, 0x0010056e, 0x02000800, 0x0010032e, - 0x42000800, 0x0010dfe6, 0x452c0800, 0x497a580a, - 0x497a580b, 0x497a580c, 0x4a025808, 0x00109f76, - 0x4a025802, 0x00000100, 0x4a025801, 0x00000000, - 0x5c025800, 0x1c01f000, 0x4833c857, 0x4d300000, - 0x4d2c0000, 0x4c5c0000, 0x4030b800, 0x585c0009, - 0x80025d40, 0x04020004, 0x585c000b, 0x4c000000, - 0x0401f044, 0x585c0002, 0x82000580, 0x00000100, - 0x04020022, 0x592c0801, 0x4c040000, 0x0201f800, - 0x00100594, 0x5c000800, 0x800409c0, 0x0400001c, - 0x4804b809, 0x585c100c, 0x800811c0, 0x04020005, - 0x40065800, 0x0201f800, 0x0010059d, 0x0401f014, - 0x82080480, 0x00000010, 0x04021003, 0x80000580, - 0x0401f003, 0x42001000, 0x00000010, 0x4800b80c, - 0x4808b804, 0x800810c4, 0x4808b805, 0x82040400, - 0x00000005, 0x4800b803, 0x405c1000, 0x0201f800, - 0x00020016, 0x0401f025, 0x0401f828, 0x585c000b, - 0x80026540, 0x59300000, 0x80000d40, 0x04020002, - 0x4800b80a, 0x4800b80b, 0x497a6000, 0x4c000000, - 0x4978b809, 0x59325809, 0x4a025a05, 0x00000103, - 0x59300402, 0x48025c07, 0x592c100c, 0x4c080000, - 0x0201f800, 0x000203ef, 0x0201f800, 0x0010977c, - 0x5c001000, 0x8c081518, 0x04000004, 0x0201f800, - 0x0010984f, 0x0401f003, 0x0201f800, 0x00020b9d, - 0x405c7000, 0x5c000000, 0x80026540, 0x04000003, - 0x59325809, 0x0401ff79, 0x5c00b800, 0x5c025800, - 0x5c026000, 0x1c01f000, 0x483bc857, 0x58380009, - 0x40025800, 0x0201f800, 0x0010059d, 0x5838000b, - 0x80026540, 0x59300009, 0x80025d40, 0x4a025a07, - 0x00000002, 0x1c01f000, 0x4803c857, 0x4933c857, - 0x4d1c0000, 0x497a601d, 0x41323800, 0x40026000, - 0x4d3c0000, 0x42027800, 0x00000005, 0x0401f843, - 0x5c027800, 0x411e6000, 0x4933c857, 0x59300415, - 0x84000502, 0x48026415, 0x5c023800, 0x1c01f000, - 0x481bc857, 0x4933c857, 0x4c5c0000, 0x4c600000, - 0x4010b800, 0x4014c000, 0x0201f800, 0x0010b412, - 0x0201f800, 0x00101f51, 0x59240400, 0x8c00050a, - 0x04020008, 0x40602800, 0x405c3000, 0x0201f800, - 0x0010ae86, 0x82000540, 0x00000001, 0x0401f002, - 0x80000580, 0x5c00c000, 0x5c00b800, 0x1c01f000, - 0x4803c856, 0x4d300000, 0x42026000, 0x00111264, - 0x59a8000d, 0x81640580, 0x0400001a, 0x59300c07, - 0x82040580, 0x00000001, 0x0400000d, 0x82040580, - 0x00000004, 0x04000006, 0x82040580, 0x00000010, - 0x02000800, 0x00109344, 0x0401f009, 0x59300203, - 0x82000d80, 0x00000007, 0x04000005, 0x4807c857, - 0x0201f800, 0x00109972, 0x04020808, 0x83326400, - 0x0000002c, 0x41580000, 0x81300480, 0x040017e5, - 0x5c026000, 0x1c01f000, 0x4933c857, 0x59300403, - 0x4803c857, 0x0201f800, 0x00106c3c, 0x4df00000, - 0x59300407, 0x4803c857, 0x82000d80, 0x00000002, - 0x04000018, 0x82000d80, 0x00000001, 0x04000009, - 0x82000d80, 0x00000004, 0x04000006, 0x4933c856, - 0x5c03e000, 0x02000800, 0x00106c29, 0x0401f050, - 0x59300203, 0x82000d80, 0x00000001, 0x04000018, - 0x82000d80, 0x00000002, 0x04000036, 0x82000d80, - 0x00000005, 0x04000033, 0x0201f800, 0x0010032e, - 0x59300203, 0x82000d80, 0x00000009, 0x0400000c, - 0x82000d80, 0x0000000b, 0x04000009, 0x82000d80, - 0x0000000a, 0x04000027, 0x82000d80, 0x0000000c, - 0x04000024, 0x0201f800, 0x0010032e, 0x598c000f, - 0x81300580, 0x04020004, 0x0201f800, 0x00106f5c, - 0x0402001c, 0x59300004, 0x4803c857, 0x8c000520, - 0x04000004, 0x84000520, 0x48026004, 0x0401f015, - 0x0201f800, 0x0010fece, 0x80c40040, 0x02020800, - 0x0010032e, 0x5c03e000, 0x02000800, 0x00106c29, - 0x59300407, 0x82000d80, 0x00000002, 0x04000007, - 0x0201f800, 0x00104bb9, 0x0201f800, 0x001097aa, - 0x02000800, 0x001084a2, 0x0201f000, 0x00107cbe, - 0x5c03e000, 0x02000800, 0x00106c29, 0x59300407, - 0x82000d80, 0x00000002, 0x0400000d, 0x5930081c, - 0x58040200, 0x8c000500, 0x04000132, 0x0201f800, - 0x00104bb9, 0x0201f800, 0x001097aa, 0x02000800, - 0x001084a2, 0x8d3e7d00, 0x04000005, 0x0201f800, - 0x0010b4fc, 0x0201f000, 0x00107cbe, 0x4a026226, - 0x00000001, 0x4a026403, 0x00000085, 0x4a026203, - 0x00000009, 0x4a026407, 0x00000002, 0x42000800, - 0x8000004b, 0x0201f000, 0x00020b3e, 0x83300480, - 0x001111e0, 0x04001006, 0x41540000, 0x81300480, - 0x04021003, 0x80000580, 0x1c01f000, 0x81780080, - 0x1c01f000, 0x592c720b, 0x8c387500, 0x04020008, - 0x59307008, 0x8c387516, 0x04000005, 0x59307009, - 0x58387010, 0x59300013, 0x80380480, 0x1c01f000, - 0x59a8085a, 0x59cc2808, 0x82140500, 0x00000c00, - 0x04000004, 0x82040480, 0x00000010, 0x04001018, - 0x80001580, 0x8c142d12, 0x04000005, 0x82040480, - 0x00000014, 0x04001012, 0x59cc100a, 0x80000580, - 0x8c142d10, 0x04000005, 0x82040480, 0x00000018, - 0x0400100b, 0x59cc000b, 0x80080400, 0x04001008, - 0x04000006, 0x82000400, 0x00000018, 0x80040480, - 0x04001003, 0x80000580, 0x1c01f000, 0x42000000, - 0x0010cc18, 0x0201f800, 0x0010bc88, 0x82000540, - 0x00000001, 0x0401f7f9, 0x4933c857, 0x4937c857, - 0x4923c857, 0x4927c857, 0x492fc857, 0x48efc857, - 0x4d1c0000, 0x4d300000, 0x41323800, 0x0201f800, - 0x00107cfe, 0x04000021, 0x48ee602a, 0x4926601c, - 0x4936600a, 0x591c0407, 0x82000580, 0x00000003, - 0x04000008, 0x591c0202, 0x4803c857, 0x4802641a, - 0x591c0402, 0x4802621a, 0x4803c857, 0x0401f007, - 0x591c0202, 0x4803c857, 0x4802621a, 0x591c0402, - 0x4802641a, 0x4803c857, 0x491e6027, 0x4a026407, - 0x00000001, 0x492e6009, 0x4d380000, 0x42027000, - 0x00000057, 0x0201f800, 0x00020bc1, 0x5c027000, - 0x82000540, 0x00000001, 0x5c026000, 0x5c023800, - 0x1c01f000, 0x4933c857, 0x493bc857, 0x4937c857, - 0x4d2c0000, 0x4c500000, 0x4c540000, 0x4c580000, - 0x59325809, 0x0201f800, 0x00109667, 0x04000023, - 0x83cca400, 0x00000006, 0x832cac00, 0x00000007, - 0x83380580, 0x00000016, 0x04020009, 0x59a8005a, - 0x82000580, 0x00000008, 0x04020014, 0x492fc857, - 0x4200b000, 0x00000002, 0x0401f00b, 0x83380580, - 0x00000015, 0x0402000d, 0x492fc857, 0x59a8005a, - 0x82000580, 0x00000018, 0x04020008, 0x4200b000, - 0x00000006, 0x0201f800, 0x0010bd5b, 0x0201f800, - 0x00107f2a, 0x0401f005, 0x0201f800, 0x001084a2, - 0x0201f800, 0x00020b9d, 0x5c00b000, 0x5c00a800, - 0x5c00a000, 0x5c025800, 0x1c01f000, 0x4933c857, - 0x0201f800, 0x00106c3c, 0x4df00000, 0x59300203, + 0x8c040d00, 0x040000aa, 0x0201f800, 0x00101fb4, + 0x59325809, 0x83383580, 0x00000015, 0x04020067, + 0x42000800, 0x00000004, 0x0201f800, 0x001045ea, + 0x42000800, 0x00000001, 0x0201f800, 0x001046e4, + 0x812e59c0, 0x0402004d, 0x59a8005e, 0x80000040, + 0x4803505e, 0x0201f800, 0x0010c0f4, 0x04000004, + 0x59240200, 0x8400051a, 0x48024a00, 0x417a8000, + 0x59cc0000, 0x82000500, 0x00ffffff, 0x59240805, + 0x4803c857, 0x4807c857, 0x800409c0, 0x0400001d, + 0x80041580, 0x0400001b, 0x4c000000, 0x42028000, + 0x0000002a, 0x59240400, 0x8c00050a, 0x04020007, + 0x42003000, 0x00000002, 0x42028800, 0x0000ffff, + 0x0201f800, 0x0010b195, 0x417a7800, 0x0201f800, + 0x0010200c, 0x0201f800, 0x00102087, 0x42028000, + 0x00000002, 0x59cc0c08, 0x8c040d1e, 0x04020004, + 0x59240a00, 0x84040d56, 0x48064a00, 0x5c000000, + 0x48024805, 0x40000800, 0x812000f0, 0x80040540, + 0x48026813, 0x40040000, 0x83200c80, 0x00000040, + 0x04021004, 0x49238830, 0x84000570, 0x48038832, + 0x59240200, 0x82000540, 0x00000206, 0x48024a00, + 0x59240400, 0x8c00050c, 0x04000005, 0x4a026426, + 0x00000051, 0x0401f85d, 0x0401f055, 0x42000000, + 0x00000001, 0x0201f800, 0x00104e36, 0x0201f800, + 0x00020b9d, 0x0401f04e, 0x592c0009, 0x82000500, + 0x00ffffff, 0x0402000a, 0x0201f800, 0x00020864, + 0x59cc0000, 0x82000500, 0x00ffffff, 0x44002800, + 0x4200b000, 0x00000001, 0x0401f860, 0x0201f800, + 0x00108127, 0x0401f03e, 0x812e59c0, 0x04020037, + 0x59340412, 0x800001c0, 0x0400002f, 0x80000040, + 0x48026c12, 0x59cc0c07, 0x82043500, 0x000000ff, + 0x481bc857, 0x82180580, 0x00000003, 0x04020019, + 0x59cc0207, 0x4803c857, 0x82000d00, 0x0000ff00, + 0x4807c857, 0x82040580, 0x00000d00, 0x04020011, + 0x59240a00, 0x84040d48, 0x48064a00, 0x42000800, + 0x0000000b, 0x0201f800, 0x001045ea, 0x4a026407, + 0x00000001, 0x4a026203, 0x00000001, 0x4a026403, + 0x00000001, 0x0201f800, 0x00106d1c, 0x0401f018, + 0x42000800, 0x00000003, 0x0201f800, 0x001045ea, + 0x4a026202, 0x0000ffff, 0x4a026203, 0x00000001, + 0x4a026403, 0x00000051, 0x0201f800, 0x00106d1c, + 0x0401f00b, 0x42002800, 0x00000003, 0x0201f800, + 0x0010a3f8, 0x0401f006, 0x4200b000, 0x00000002, + 0x0401f840, 0x0201f800, 0x001086a8, 0x5c027800, + 0x5c028800, 0x5c028000, 0x5c024000, 0x5c024800, + 0x5c00b000, 0x1c01f000, 0x4933c857, 0x42028800, + 0x000007fc, 0x42003000, 0x00fffffc, 0x0201f800, + 0x00104628, 0x02020800, 0x0010032e, 0x4936600a, + 0x417a7800, 0x0201f800, 0x001045df, 0x42000800, + 0x00000003, 0x0201f800, 0x001045ea, 0x497a6c12, + 0x4a026203, 0x00000001, 0x4a026403, 0x00000002, + 0x0201f000, 0x00106d1c, 0x492fc857, 0x4c580000, + 0x4c000000, 0x8058b1c0, 0x0400000b, 0x82580500, + 0xfffffff0, 0x02020800, 0x0010032e, 0x8058b0d0, + 0x592c0409, 0x82000500, 0xfffff0ff, 0x80580540, + 0x48025c09, 0x5c000000, 0x5c00b000, 0x1c01f000, + 0x492fc857, 0x4c000000, 0x4c040000, 0x800000d8, + 0x592c0c09, 0x82040d00, 0xffff0fff, 0x80040540, + 0x48025c09, 0x5c000800, 0x5c000000, 0x1c01f000, + 0x4933c857, 0x4d2c0000, 0x59325809, 0x592c0208, + 0x8400055e, 0x48025a08, 0x4c500000, 0x4c540000, + 0x4c580000, 0x0401ffd9, 0x0201f800, 0x00020864, + 0x46002800, 0x00000018, 0x80142800, 0x8058b040, + 0x83cca400, 0x00000007, 0x4014a800, 0x0201f800, + 0x0010c086, 0x5c00b000, 0x5c00a800, 0x5c00a000, + 0x5c025800, 0x1c01f000, 0x0401f807, 0x42018800, + 0x00000001, 0x04000003, 0x42018800, 0x00000000, + 0x1c01f000, 0x59325809, 0x592c0205, 0x82000580, + 0x00000152, 0x1c01f000, 0x59300028, 0x80000540, + 0x02020800, 0x00100aec, 0x1c01f000, 0x59300008, + 0x82000500, 0x04000800, 0x82000580, 0x04000800, + 0x04020003, 0x59300220, 0x48025c10, 0x1c01f000, + 0x4d2c0000, 0x59325809, 0x59300203, 0x4933c857, + 0x492fc857, 0x493bc857, 0x4803c857, 0x82003480, + 0x0000000e, 0x02021800, 0x0010032e, 0x0c01f803, + 0x5c025800, 0x1c01f000, 0x00109f80, 0x00109f8b, + 0x00109fc9, 0x00109f80, 0x00109f80, 0x00109f80, + 0x00109f80, 0x00109f80, 0x00109f82, 0x00109f80, + 0x00109f80, 0x00109f80, 0x00109f80, 0x00109f80, + 0x0201f800, 0x0010032e, 0x83383480, 0x00000058, + 0x02021800, 0x0010032e, 0x493a6403, 0x4a026203, + 0x00000001, 0x0201f000, 0x00106d1c, 0x83380580, + 0x00000013, 0x04020010, 0x492fc857, 0x592c000d, + 0x800001c0, 0x04000006, 0x4a026203, 0x00000002, + 0x59a8002a, 0x48026006, 0x1c01f000, 0x4a025a07, + 0x00000000, 0x0201f800, 0x000203ef, 0x0201f000, + 0x00020b9d, 0x83380580, 0x00000027, 0x0400001b, + 0x83380580, 0x00000014, 0x04000012, 0x83380580, + 0x00000015, 0x04000005, 0x83380580, 0x00000016, + 0x02020800, 0x0010032e, 0x0201f800, 0x00107226, + 0x02020000, 0x00107f37, 0x59300203, 0x82000580, + 0x00000002, 0x02020800, 0x0010032e, 0x0401f016, + 0x4937c857, 0x0201f800, 0x00106d91, 0x4a02580f, + 0x00000011, 0x0401f006, 0x4937c857, 0x0201f800, + 0x00106d91, 0x4a02580f, 0x00000010, 0x4a025a07, + 0x00000031, 0x4a02580e, 0x00000004, 0x0201f800, + 0x000203ef, 0x0201f800, 0x00104cbe, 0x0201f000, + 0x00107eb4, 0x59341400, 0x82081d00, 0x000000ff, + 0x59300c03, 0x480bc857, 0x4807c857, 0x82040580, + 0x00000053, 0x0400002e, 0x82040580, 0x00000002, + 0x04000016, 0x82040580, 0x00000001, 0x04000017, + 0x82040580, 0x00000003, 0x0400001c, 0x82040580, + 0x00000005, 0x0400001d, 0x82040580, 0x00000033, + 0x0400001a, 0x82040580, 0x00000000, 0x0400001b, + 0x82040580, 0x00000004, 0x02020800, 0x0010032e, + 0x0401f89f, 0x0401f016, 0x820c0580, 0x00000003, + 0x04000849, 0x0401f012, 0x820c0580, 0x0000000b, + 0x0402000f, 0x42000800, 0x00000007, 0x0201f800, + 0x001045ea, 0x0401f00a, 0x820c0580, 0x00000005, + 0x04000862, 0x0401f006, 0x820c0580, 0x00000009, + 0x04000887, 0x0401f002, 0x0401f891, 0x4a026403, + 0x00000052, 0x59a8105a, 0x592c040c, 0x8c000500, + 0x04000003, 0x42001000, 0x00000008, 0x592c040c, + 0x8c000516, 0x04000003, 0x82081400, 0x00000018, + 0x592c000d, 0x497a580e, 0x497a580f, 0x80080c80, + 0x04000009, 0x04001005, 0x4a025a07, 0x00000007, + 0x40001000, 0x0401f006, 0x4a025a07, 0x00000015, + 0x0401f003, 0x4a025a07, 0x00000000, 0x480a580d, + 0x0201f800, 0x001080a1, 0x04000010, 0x592c1001, + 0x480a600c, 0x58080800, 0x82080400, 0x00000002, + 0x592c1012, 0x592c1813, 0x42003000, 0x00000000, + 0x42002000, 0x00101086, 0x0201f800, 0x0010825e, + 0x04000002, 0x1c01f000, 0x4a025a07, 0x0000002c, + 0x497a580d, 0x0201f800, 0x000203ef, 0x0201f000, + 0x00020b9d, 0x83380580, 0x00000015, 0x0402000b, + 0x59a80070, 0x8c000502, 0x0402000c, 0x41780800, + 0x0201f800, 0x001046e4, 0x42000800, 0x00000004, + 0x0201f000, 0x001045ea, 0x42000800, 0x00000007, + 0x0201f000, 0x001045ea, 0x0201f800, 0x001050f7, + 0x42001000, 0x00000010, 0x04020009, 0x59340002, + 0x82000500, 0x00ff0000, 0x82000580, 0x00ff0000, + 0x040007eb, 0x42001000, 0x00000008, 0x0201f800, + 0x00104d1c, 0x040007e6, 0x592c040c, 0x84000540, + 0x48025c0c, 0x0401f7e9, 0x83380580, 0x00000015, + 0x0402000f, 0x59a80070, 0x8c000502, 0x04020010, + 0x0201f800, 0x00104752, 0x4d3c0000, 0x417a7800, + 0x0201f800, 0x001045df, 0x5c027800, 0x42000800, + 0x00000006, 0x0201f000, 0x001045ea, 0x42000800, + 0x00000004, 0x0201f000, 0x001045ea, 0x0201f800, + 0x001050f7, 0x42001000, 0x00000010, 0x04020009, + 0x59340002, 0x82000500, 0x00ff0000, 0x82000580, + 0x00ff0000, 0x040007e7, 0x42001000, 0x00000008, + 0x0201f800, 0x00104d1c, 0x040007e2, 0x592c040c, + 0x84000540, 0x48025c0c, 0x0401f7e9, 0x42000800, + 0x00000004, 0x0201f000, 0x001045ea, 0x83380580, + 0x00000015, 0x04020005, 0x0201f800, 0x0010b107, + 0x02000800, 0x0010491c, 0x1c01f000, 0x83380580, + 0x00000015, 0x0402001d, 0x4c580000, 0x83cc1400, + 0x00000008, 0x4200b000, 0x00000002, 0x83341c00, + 0x00000006, 0x0201f800, 0x00108c57, 0x04020012, + 0x83cc1400, 0x0000000a, 0x4200b000, 0x00000002, + 0x83341c00, 0x00000008, 0x0201f800, 0x00108c57, + 0x04020009, 0x59342200, 0x59cc1007, 0x800811c0, + 0x04000003, 0x480a6801, 0x84102542, 0x8410251a, + 0x48126a00, 0x5c00b000, 0x1c01f000, 0x42000000, + 0x0010cf3b, 0x0201f800, 0x0010bfb3, 0x0201f800, + 0x00106e41, 0x59300203, 0x4933c857, 0x4803c857, 0x82000c80, 0x0000000e, 0x02021800, 0x0010032e, - 0x0c01f001, 0x0010a151, 0x0010a14f, 0x0010a158, - 0x0010a178, 0x0010a156, 0x0010a14f, 0x0010a14f, - 0x0010a14f, 0x0010a14f, 0x0010a14f, 0x0010a14f, - 0x0010a14f, 0x0010a14f, 0x0010a14f, 0x0201f800, - 0x0010032e, 0x5c03e000, 0x02000800, 0x00106c29, - 0x80000580, 0x1c01f000, 0x0201f800, 0x00100c75, - 0x5c03e000, 0x02000800, 0x00106c29, 0x8d3e7d02, - 0x04020017, 0x4d2c0000, 0x59325809, 0x4a025a07, - 0x00000005, 0x0201f800, 0x000203ef, 0x5c025800, - 0x497a6009, 0x8d3e7d00, 0x0402000f, 0x4a026226, - 0x0000000a, 0x4a026403, 0x00000085, 0x4a026203, - 0x00000009, 0x4a026407, 0x00000002, 0x42000800, - 0x8000404b, 0x0201f800, 0x00020b3e, 0x81780080, - 0x1c01f000, 0x0201f800, 0x00107cbe, 0x0401f7fc, - 0x0201f800, 0x0010931e, 0x04020004, 0x0201f800, - 0x00106f25, 0x04020009, 0x0201f800, 0x0010fd55, - 0x80c40040, 0x040007d7, 0x0201f800, 0x00106b47, - 0x02020800, 0x0010032e, 0x59300203, 0x82000d80, - 0x00000003, 0x02000800, 0x0010032e, 0x82000c80, - 0x0000000e, 0x02021800, 0x0010032e, 0x0c01f7b2, - 0x4933c857, 0x4d340000, 0x4d240000, 0x4d200000, - 0x836c0580, 0x00000003, 0x0402001c, 0x599c0018, - 0x8c000516, 0x04000004, 0x0201f800, 0x0010399f, - 0x0401f016, 0x42000800, 0x00000004, 0x0201f800, - 0x001044f1, 0x59300426, 0x82000580, 0x00000021, - 0x04000006, 0x59240400, 0x8c00050c, 0x04000007, - 0x4a026426, 0x00000021, 0x0201f800, 0x00109cbc, - 0x82000540, 0x00000001, 0x5c024000, 0x5c024800, - 0x5c026800, 0x1c01f000, 0x80000580, 0x0401f7fb, - 0x4d340000, 0x5932680a, 0x0201f800, 0x00104992, - 0x5c026800, 0x0201f000, 0x00020b9d, 0x4803c856, - 0x4c5c0000, 0x4d200000, 0x4014b800, 0x0201f800, - 0x00101f51, 0x59a8005e, 0x80000040, 0x4803505e, - 0x59240200, 0x82000500, 0xfffffeef, 0x84000546, - 0x48024a00, 0x497a4805, 0x4d400000, 0x42028000, - 0x00000001, 0x405c2800, 0x42000000, 0x00000001, - 0x0201f800, 0x00104d11, 0x42028000, 0x0000002a, - 0x4d3c0000, 0x42027800, 0x00000002, 0x0201f800, - 0x00101fa9, 0x5c027800, 0x5c028000, 0x5c024000, - 0x5c00b800, 0x813261c0, 0x02020000, 0x00107cbe, - 0x1c01f000, 0x59303009, 0x58181a05, 0x820c1d00, - 0x000000ff, 0x820c0580, 0x00000048, 0x04000004, - 0x820c0580, 0x0000006a, 0x04020046, 0x58180409, - 0x8c000500, 0x04000043, 0x42000000, 0x0010dfe6, - 0x50006000, 0x41781800, 0x5830200b, 0x41300000, - 0x80100580, 0x04000006, 0x40101800, 0x580c2000, - 0x801021c0, 0x040207fa, 0x0401f036, 0x4933c857, - 0x59302000, 0x497a6000, 0x800c19c0, 0x0402001f, - 0x4933c856, 0x42007000, 0x00020cf0, 0x58300009, - 0x800001c0, 0x04000019, 0x49786009, 0x58380001, - 0x80300580, 0x04020008, 0x4933c856, 0x49787002, - 0x4810600b, 0x801021c0, 0x0402001e, 0x4978600a, - 0x0401f01c, 0x4933c856, 0x4810600b, 0x801021c0, - 0x04020002, 0x4978600a, 0x4c180000, 0x4c300000, - 0x0201f800, 0x00100657, 0x5c006000, 0x0401fd5b, - 0x5c003000, 0x0401f00f, 0x4933c856, 0x800c19c0, - 0x04020008, 0x801021c0, 0x04000003, 0x4810600b, - 0x0401f008, 0x4978600b, 0x4978600a, 0x0401f005, - 0x48101800, 0x801021c0, 0x04020002, 0x480c600a, - 0x58180409, 0x84000500, 0x48003409, 0x49783209, + 0x0c01f803, 0x0201f000, 0x00106e2e, 0x0010a0cf, + 0x0010a0de, 0x0010a0d0, 0x0010a0cd, 0x0010a0cd, + 0x0010a0cd, 0x0010a0cd, 0x0010a0cd, 0x0010a0cd, + 0x0010a0cd, 0x0010a0cd, 0x0010a0cd, 0x0010a0cd, + 0x0010a0cd, 0x0201f800, 0x0010032e, 0x1c01f000, + 0x59300403, 0x82000580, 0x00000052, 0x02000000, + 0x0010960f, 0x0201f800, 0x00104cbe, 0x59325809, + 0x4a025a07, 0x00000006, 0x0201f800, 0x000203ef, + 0x0201f000, 0x00107eb4, 0x59301804, 0x840c0520, + 0x48026004, 0x598c000f, 0x81300580, 0x04020010, + 0x8c0c1d20, 0x04020010, 0x42001000, 0x0010ce5b, + 0x50081000, 0x58080002, 0x82000580, 0x00000100, + 0x0400000f, 0x5808000b, 0x81300580, 0x02020800, + 0x0010032e, 0x4978100b, 0x0401f003, 0x8c0c1d20, + 0x040207dc, 0x0201f800, 0x001101de, 0x80c40040, + 0x040007d8, 0x0201f800, 0x0010032e, 0x0201f800, + 0x00107161, 0x040007f8, 0x59300203, 0x82000c80, + 0x0000000e, 0x02021800, 0x0010032e, 0x0c01f7bc, + 0x4933c857, 0x4c500000, 0x4c540000, 0x4c580000, + 0x592c0c08, 0x48065814, 0x59cc0809, 0x48065808, + 0x59cc0808, 0x4806580c, 0x59a8086f, 0x82040500, + 0x000003ff, 0x800010c4, 0x8c040d14, 0x04000005, + 0x59cc0002, 0x82000500, 0x00000003, 0x80081480, + 0x480a621b, 0x412c0800, 0x0201f800, 0x0010056e, + 0x02000800, 0x0010032e, 0x492c080a, 0x58040409, + 0x84000552, 0x84000540, 0x48000c09, 0x82081400, + 0x00000003, 0x80081104, 0x83cca400, 0x00000006, + 0x832cac00, 0x00000005, 0x42000800, 0x00000010, + 0x82080480, 0x00000010, 0x04021003, 0x40080800, + 0x80000580, 0x4004b000, 0x4c000000, 0x0201f800, + 0x0010c0b0, 0x5c000000, 0x800001c0, 0x0400000d, + 0x412c1000, 0x4c000000, 0x0201f800, 0x0010056e, + 0x02000800, 0x0010032e, 0x492c1001, 0x832cac00, + 0x00000005, 0x5c000000, 0x40001000, 0x0401f7e9, + 0x5c00b000, 0x5c00a800, 0x5c00a000, 0x1c01f000, + 0x4933c857, 0x4d2c0000, 0x4c380000, 0x59325809, + 0x5930021b, 0x48025a09, 0x59301012, 0x4a026203, + 0x00000002, 0x592c020b, 0x8c000500, 0x04000004, + 0x59300016, 0x592c1010, 0x80081480, 0x40080000, + 0x0401f98a, 0x80001540, 0x04020008, 0x4a025a07, + 0x00000000, 0x592c000c, 0x82000500, 0x00000c00, + 0x0400000b, 0x0401f00b, 0x8c08153e, 0x04000006, + 0x4a025a07, 0x00000007, 0x80081080, 0x80081000, + 0x0401f003, 0x4a025a07, 0x00000015, 0x480a5808, + 0x42000000, 0x0010e2e6, 0x50007000, 0x5838000a, + 0x80000540, 0x04020008, 0x4930700b, 0x4930700a, + 0x58380002, 0x82000580, 0x00000000, 0x04020809, + 0x0401f005, 0x82001400, 0x00000000, 0x45301000, + 0x4930700a, 0x5c007000, 0x5c025800, 0x1c01f000, + 0x4933c857, 0x592c000a, 0x40001000, 0x48007009, + 0x82080400, 0x00000005, 0x48007003, 0x592c000e, + 0x592c100f, 0x48007006, 0x48087007, 0x592c0014, + 0x592c1209, 0x80080c80, 0x04001002, 0x40001000, + 0x82081400, 0x00000003, 0x80081104, 0x82080480, + 0x00000010, 0x04021003, 0x80000580, 0x0401f003, + 0x42001000, 0x00000010, 0x4800700c, 0x48087004, + 0x800810c4, 0x48087005, 0x40381000, 0x0201f000, + 0x00020016, 0x4d2c0000, 0x0201f800, 0x0010056e, + 0x02000800, 0x0010032e, 0x42000800, 0x0010e2e6, + 0x452c0800, 0x497a580a, 0x497a580b, 0x497a580c, + 0x4a025808, 0x0010a1b4, 0x4a025802, 0x00000100, + 0x4a025801, 0x00000000, 0x5c025800, 0x1c01f000, + 0x4833c857, 0x4d300000, 0x4d2c0000, 0x4c5c0000, + 0x4030b800, 0x585c0009, 0x80025d40, 0x04020004, + 0x585c000b, 0x4c000000, 0x0401f044, 0x585c0002, + 0x82000580, 0x00000100, 0x04020022, 0x592c0801, + 0x4c040000, 0x0201f800, 0x00100594, 0x5c000800, + 0x800409c0, 0x0400001c, 0x4804b809, 0x585c100c, + 0x800811c0, 0x04020005, 0x40065800, 0x0201f800, + 0x0010059d, 0x0401f014, 0x82080480, 0x00000010, + 0x04021003, 0x80000580, 0x0401f003, 0x42001000, + 0x00000010, 0x4800b80c, 0x4808b804, 0x800810c4, + 0x4808b805, 0x82040400, 0x00000005, 0x4800b803, + 0x405c1000, 0x0201f800, 0x00020016, 0x0401f025, + 0x0401f828, 0x585c000b, 0x80026540, 0x59300000, + 0x80000d40, 0x04020002, 0x4800b80a, 0x4800b80b, + 0x497a6000, 0x4c000000, 0x4978b809, 0x59325809, + 0x4a025a05, 0x00000103, 0x59300402, 0x48025c07, + 0x592c100c, 0x4c080000, 0x0201f800, 0x000203ef, + 0x0201f800, 0x001099b4, 0x5c001000, 0x8c081518, + 0x04000004, 0x0201f800, 0x00109a87, 0x0401f003, + 0x0201f800, 0x00020b9d, 0x405c7000, 0x5c000000, + 0x80026540, 0x04000003, 0x59325809, 0x0401ff79, + 0x5c00b800, 0x5c025800, 0x5c026000, 0x1c01f000, + 0x483bc857, 0x58380009, 0x40025800, 0x0201f800, + 0x0010059d, 0x5838000b, 0x80026540, 0x59300009, + 0x80025d40, 0x4a025a07, 0x00000002, 0x1c01f000, + 0x4803c857, 0x4933c857, 0x4d1c0000, 0x497a601d, + 0x41323800, 0x40026000, 0x4d3c0000, 0x42027800, + 0x00000005, 0x0401f843, 0x5c027800, 0x411e6000, + 0x4933c857, 0x59300415, 0x84000502, 0x48026415, + 0x5c023800, 0x1c01f000, 0x481bc857, 0x4933c857, + 0x4c5c0000, 0x4c600000, 0x4010b800, 0x4014c000, + 0x0201f800, 0x0010b73d, 0x0201f800, 0x00101fb4, + 0x59240400, 0x8c00050a, 0x04020008, 0x40602800, + 0x405c3000, 0x0201f800, 0x0010b195, 0x82000540, + 0x00000001, 0x0401f002, 0x80000580, 0x5c00c000, + 0x5c00b800, 0x1c01f000, 0x4803c856, 0x4d300000, + 0x42026000, 0x00111584, 0x59a8000d, 0x81640580, + 0x0400001a, 0x59300c07, 0x82040580, 0x00000001, + 0x0400000d, 0x82040580, 0x00000004, 0x04000006, + 0x82040580, 0x00000010, 0x02000800, 0x00109578, + 0x0401f009, 0x59300203, 0x82000d80, 0x00000007, + 0x04000005, 0x4807c857, 0x0201f800, 0x00109baa, + 0x04020808, 0x83326400, 0x0000002c, 0x41580000, + 0x81300480, 0x040017e5, 0x5c026000, 0x1c01f000, + 0x4933c857, 0x59300403, 0x4803c857, 0x0201f800, + 0x00106e41, 0x4df00000, 0x59300407, 0x4803c857, + 0x82000d80, 0x00000002, 0x04000018, 0x82000d80, + 0x00000001, 0x04000009, 0x82000d80, 0x00000004, + 0x04000006, 0x4933c856, 0x5c03e000, 0x02000800, + 0x00106e2e, 0x0401f04f, 0x59300203, 0x82000d80, + 0x00000001, 0x04000018, 0x82000d80, 0x00000002, + 0x04000035, 0x82000d80, 0x00000005, 0x04000032, + 0x0201f800, 0x0010032e, 0x59300203, 0x82000d80, + 0x00000009, 0x0400000c, 0x82000d80, 0x0000000b, + 0x04000009, 0x82000d80, 0x0000000a, 0x04000026, + 0x82000d80, 0x0000000c, 0x04000023, 0x0201f800, + 0x0010032e, 0x598c000f, 0x81300580, 0x04020004, + 0x0201f800, 0x00107161, 0x0402001b, 0x59300004, + 0x4803c857, 0x8c000520, 0x04000004, 0x84000520, + 0x48026004, 0x0401f014, 0x0201f800, 0x001101de, + 0x80c40040, 0x02020800, 0x0010032e, 0x5c03e000, + 0x02000800, 0x00106e2e, 0x59300407, 0x82000d80, + 0x00000002, 0x0400001b, 0x0201f800, 0x00104cbe, + 0x0201f800, 0x001099e2, 0x02000800, 0x001086a8, + 0x0401f014, 0x5c03e000, 0x02000800, 0x00106e2e, + 0x59300407, 0x82000d80, 0x00000002, 0x0400000d, + 0x5930081c, 0x58040200, 0x8c000500, 0x04000132, + 0x0201f800, 0x00104cbe, 0x0201f800, 0x001099e2, + 0x02000800, 0x001086a8, 0x8d3e7d00, 0x04000005, + 0x0201f800, 0x0010b827, 0x0201f000, 0x00107eb4, + 0x4a026226, 0x00000001, 0x4a026403, 0x00000085, + 0x4a026203, 0x00000009, 0x4a026407, 0x00000002, + 0x42000800, 0x8000004b, 0x0201f000, 0x00020b3e, + 0x83300480, 0x00111500, 0x04001006, 0x41540000, + 0x81300480, 0x04021003, 0x80000580, 0x1c01f000, + 0x81780080, 0x1c01f000, 0x592c720b, 0x8c387500, + 0x04020008, 0x59307008, 0x8c387516, 0x04000005, + 0x59307009, 0x58387010, 0x59300013, 0x80380480, + 0x1c01f000, 0x59a8085a, 0x59cc2808, 0x82140500, + 0x00000c00, 0x04000004, 0x82040480, 0x00000010, + 0x04001018, 0x80001580, 0x8c142d12, 0x04000005, + 0x82040480, 0x00000014, 0x04001012, 0x59cc100a, + 0x80000580, 0x8c142d10, 0x04000005, 0x82040480, + 0x00000018, 0x0400100b, 0x59cc000b, 0x80080400, + 0x04001008, 0x04000006, 0x82000400, 0x00000018, + 0x80040480, 0x04001003, 0x80000580, 0x1c01f000, + 0x42000000, 0x0010cf18, 0x0201f800, 0x0010bfb3, + 0x82000540, 0x00000001, 0x0401f7f9, 0x4933c857, + 0x4937c857, 0x4923c857, 0x4927c857, 0x492fc857, + 0x48efc857, 0x4d1c0000, 0x4d300000, 0x41323800, + 0x0201f800, 0x00107ef8, 0x04000021, 0x48ee602a, + 0x4926601c, 0x4936600a, 0x591c0407, 0x82000580, + 0x00000003, 0x04000008, 0x591c0202, 0x4803c857, + 0x4802641a, 0x591c0402, 0x4802621a, 0x4803c857, + 0x0401f007, 0x591c0202, 0x4803c857, 0x4802621a, + 0x591c0402, 0x4802641a, 0x4803c857, 0x491e6027, + 0x4a026407, 0x00000001, 0x492e6009, 0x4d380000, + 0x42027000, 0x00000057, 0x0201f800, 0x00020bc1, + 0x5c027000, 0x82000540, 0x00000001, 0x5c026000, + 0x5c023800, 0x1c01f000, 0x4933c857, 0x493bc857, + 0x4937c857, 0x4d2c0000, 0x4c500000, 0x4c540000, + 0x4c580000, 0x59325809, 0x0201f800, 0x0010989f, + 0x04000023, 0x83cca400, 0x00000006, 0x832cac00, + 0x00000007, 0x83380580, 0x00000016, 0x04020009, + 0x59a8005a, 0x82000580, 0x00000008, 0x04020014, + 0x492fc857, 0x4200b000, 0x00000002, 0x0401f00b, + 0x83380580, 0x00000015, 0x0402000d, 0x492fc857, + 0x59a8005a, 0x82000580, 0x00000018, 0x04020008, + 0x4200b000, 0x00000006, 0x0201f800, 0x0010c086, + 0x0201f800, 0x00108127, 0x0401f005, 0x0201f800, + 0x001086a8, 0x0201f800, 0x00020b9d, 0x5c00b000, + 0x5c00a800, 0x5c00a000, 0x5c025800, 0x1c01f000, + 0x4933c857, 0x0201f800, 0x00106e41, 0x4df00000, + 0x59300203, 0x82000c80, 0x0000000e, 0x02021800, + 0x0010032e, 0x0c01f001, 0x0010a38e, 0x0010a38c, + 0x0010a395, 0x0010a3b5, 0x0010a393, 0x0010a38c, + 0x0010a38c, 0x0010a38c, 0x0010a38c, 0x0010a38c, + 0x0010a38c, 0x0010a38c, 0x0010a38c, 0x0010a38c, + 0x0201f800, 0x0010032e, 0x5c03e000, 0x02000800, + 0x00106e2e, 0x80000580, 0x1c01f000, 0x0201f800, + 0x00100c76, 0x5c03e000, 0x02000800, 0x00106e2e, + 0x8d3e7d02, 0x04020017, 0x4d2c0000, 0x59325809, + 0x4a025a07, 0x00000005, 0x0201f800, 0x000203ef, + 0x5c025800, 0x497a6009, 0x8d3e7d00, 0x0402000f, + 0x4a026226, 0x0000000a, 0x4a026403, 0x00000085, + 0x4a026203, 0x00000009, 0x4a026407, 0x00000002, + 0x42000800, 0x8000404b, 0x0201f800, 0x00020b3e, + 0x81780080, 0x1c01f000, 0x0201f800, 0x00107eb4, + 0x0401f7fc, 0x0201f800, 0x00109552, 0x04020004, + 0x0201f800, 0x0010712a, 0x04020009, 0x0201f800, + 0x00110065, 0x80c40040, 0x040007d7, 0x0201f800, + 0x00106d4c, 0x02020800, 0x0010032e, 0x59300203, + 0x82000d80, 0x00000003, 0x02000800, 0x0010032e, + 0x82000c80, 0x0000000e, 0x02021800, 0x0010032e, + 0x0c01f7b2, 0x4933c857, 0x4d340000, 0x4d240000, + 0x4d200000, 0x836c0580, 0x00000003, 0x0402001c, + 0x599c0018, 0x8c000516, 0x04000004, 0x0201f800, + 0x00103a8f, 0x0401f016, 0x42000800, 0x00000004, + 0x0201f800, 0x001045ea, 0x59300426, 0x82000580, + 0x00000021, 0x04000006, 0x59240400, 0x8c00050c, + 0x04000007, 0x4a026426, 0x00000021, 0x0201f800, + 0x00109efa, 0x82000540, 0x00000001, 0x5c024000, + 0x5c024800, 0x5c026800, 0x1c01f000, 0x80000580, + 0x0401f7fb, 0x4d340000, 0x5932680a, 0x0201f800, + 0x00104a94, 0x5c026800, 0x0201f000, 0x00020b9d, + 0x4803c856, 0x4c5c0000, 0x4d200000, 0x4014b800, + 0x0201f800, 0x00101fb4, 0x59a8005e, 0x80000040, + 0x4803505e, 0x836c0580, 0x00000002, 0x04020004, + 0x59240200, 0x8400051a, 0x48024a00, 0x59240200, + 0x82000500, 0xfffffeef, 0x84000546, 0x48024a00, + 0x497a4805, 0x4d400000, 0x42028000, 0x00000001, + 0x405c2800, 0x42000000, 0x00000001, 0x0201f800, + 0x00104e36, 0x42028000, 0x0000002a, 0x4d3c0000, + 0x42027800, 0x00000002, 0x0201f800, 0x0010200c, + 0x5c027800, 0x5c028000, 0x5c024000, 0x5c00b800, + 0x813261c0, 0x02020000, 0x00107eb4, 0x1c01f000, + 0x59303009, 0x58181a05, 0x820c1d00, 0x000000ff, + 0x820c0580, 0x00000048, 0x04000004, 0x820c0580, + 0x0000006a, 0x04020046, 0x58180409, 0x8c000500, + 0x04000043, 0x42000000, 0x0010e2e6, 0x50006000, + 0x41781800, 0x5830200b, 0x41300000, 0x80100580, + 0x04000006, 0x40101800, 0x580c2000, 0x801021c0, + 0x040207fa, 0x0401f036, 0x4933c857, 0x59302000, + 0x497a6000, 0x800c19c0, 0x0402001f, 0x4933c856, + 0x42007000, 0x00020cf0, 0x58300009, 0x800001c0, + 0x04000019, 0x49786009, 0x58380001, 0x80300580, + 0x04020008, 0x4933c856, 0x49787002, 0x4810600b, + 0x801021c0, 0x0402001e, 0x4978600a, 0x0401f01c, + 0x4933c856, 0x4810600b, 0x801021c0, 0x04020002, + 0x4978600a, 0x4c180000, 0x4c300000, 0x0201f800, + 0x00100657, 0x5c006000, 0x0401fd56, 0x5c003000, + 0x0401f00f, 0x4933c856, 0x800c19c0, 0x04020008, + 0x801021c0, 0x04000003, 0x4810600b, 0x0401f008, + 0x4978600b, 0x4978600a, 0x0401f005, 0x48101800, + 0x801021c0, 0x04020002, 0x480c600a, 0x58180409, + 0x84000500, 0x48003409, 0x49783209, 0x1c01f000, + 0x4933c857, 0x4927c857, 0x59a8021b, 0x82000540, + 0x00000003, 0x4803521b, 0x4c5c0000, 0x4d400000, + 0x59ccb800, 0x825cbd00, 0x00ffffff, 0x42028000, + 0x00000000, 0x0201f800, 0x00101fb4, 0x0201f800, + 0x00108c0d, 0x485f500f, 0x04000024, 0x4d3c0000, + 0x42028000, 0x0000002a, 0x59240400, 0x8c00050a, + 0x04020008, 0x59240200, 0x84000556, 0x48024a00, + 0x42003000, 0x00000002, 0x0201f800, 0x0010b18b, + 0x42027800, 0x00000002, 0x0201f800, 0x0010200c, + 0x42000000, 0x0010cf23, 0x0201f800, 0x0010bfb3, + 0x59cc0408, 0x8c00051e, 0x04020009, 0x42000800, + 0x0010cfd1, 0x58040406, 0x8c000500, 0x04020004, + 0x59a8021b, 0x84000552, 0x4803521b, 0x42028000, + 0x00000002, 0x5c027800, 0x41780800, 0x0201f800, + 0x001046e4, 0x59240200, 0x4803c857, 0x4927c857, + 0x82000540, 0x00000066, 0x48024a00, 0x485e4805, + 0x812000f0, 0x805c0540, 0x48026813, 0x49238830, + 0x84000570, 0x48038832, 0x59a8121b, 0x59cc0408, + 0x8c00051a, 0x04020005, 0x84081514, 0x4a0370e5, + 0x00000800, 0x0401f004, 0x84081554, 0x4a0370e5, + 0x00000c00, 0x480b521b, 0x0201f800, 0x00109bb8, + 0x59a8021b, 0x8400054a, 0x4803521b, 0x49238830, + 0x845c0570, 0x48038832, 0x42000800, 0x00000004, + 0x0201f800, 0x001045ea, 0x59a80a1b, 0x84040d50, + 0x59cc0013, 0x8c00053e, 0x04000003, 0x8c000536, + 0x04000004, 0x59cc0017, 0x8c000536, 0x04020002, + 0x84040d10, 0x4807521b, 0x4807541b, 0x42001800, + 0x0010e2e8, 0x59240400, 0x8c00050c, 0x04000006, + 0x4a026426, 0x00000021, 0x0201f800, 0x00109efa, + 0x0401f00b, 0x405c0800, 0x41781000, 0x42000000, + 0x00000001, 0x42028000, 0x00000000, 0x0201f800, + 0x00104e36, 0x0201f800, 0x00020b9d, 0x59a8021b, + 0x4803c857, 0x8c000506, 0x04020009, 0x41781800, + 0x0201f800, 0x0010c0f4, 0x04000003, 0x42001800, + 0x00000010, 0x0201f800, 0x00101f3c, 0x805c0110, + 0x48035018, 0x48038881, 0x59a80016, 0x80000040, + 0x4803c857, 0x48035016, 0x04020018, 0x59a8021b, + 0x8400050a, 0x4803521b, 0x4803541b, 0x4a038802, + 0x0000ffff, 0x42001800, 0x0010cb46, 0x0201f800, + 0x00100533, 0x42001800, 0x0010cb53, 0x0201f800, + 0x00100533, 0x4a035017, 0x0000ffff, 0x0201f800, + 0x001071f9, 0x4a0378e4, 0x00000080, 0x4a038802, + 0x0000ffff, 0x850e1d02, 0x5c028000, 0x5c00b800, 0x1c01f000, 0x4933c857, 0x59368c03, 0x4c180000, 0x59300203, 0x82003480, 0x0000000e, 0x02021800, 0x0010032e, 0x0c01f803, 0x5c003000, 0x1c01f000, - 0x0010a24a, 0x0010a7ee, 0x0010a936, 0x0010a24a, - 0x0010a24a, 0x0010a24a, 0x0010a24a, 0x0010a24a, - 0x0010a26d, 0x0010a24a, 0x0010a24a, 0x0010a24a, - 0x0010a24a, 0x0010a24a, 0x0201f800, 0x0010032e, + 0x0010a53a, 0x0010aaef, 0x0010ac3a, 0x0010a53a, + 0x0010a53a, 0x0010a53a, 0x0010a53a, 0x0010a53a, + 0x0010a55d, 0x0010a53a, 0x0010a53a, 0x0010a53a, + 0x0010a53a, 0x0010a53a, 0x0201f800, 0x0010032e, 0x4933c857, 0x42028800, 0x0000ffff, 0x813669c0, 0x04000002, 0x59368c03, 0x4c180000, 0x59300203, 0x82003480, 0x0000000e, 0x02021800, 0x0010032e, - 0x0c01f803, 0x5c003000, 0x1c01f000, 0x0010a269, - 0x0010ac1a, 0x0010a269, 0x0010a269, 0x0010a269, - 0x0010a269, 0x0010a269, 0x0010a269, 0x0010ab5b, - 0x0010b031, 0x0010b067, 0x0010b031, 0x0010b067, - 0x0010a269, 0x0201f800, 0x0010032e, 0x0201f800, + 0x0c01f803, 0x5c003000, 0x1c01f000, 0x0010a559, + 0x0010af29, 0x0010a559, 0x0010a559, 0x0010a559, + 0x0010a559, 0x0010a559, 0x0010a559, 0x0010ae62, + 0x0010b348, 0x0010b37e, 0x0010b348, 0x0010b37e, + 0x0010a559, 0x0201f800, 0x0010032e, 0x0201f800, 0x0010032e, 0x83383480, 0x00000057, 0x02021800, 0x0010032e, 0x41380000, 0x493bc857, 0x4d1c0000, 0x4d400000, 0x0c01f804, 0x5c028000, 0x5c023800, - 0x1c01f000, 0x0010a2d9, 0x0010a503, 0x0010a2d9, - 0x0010a2d9, 0x0010a2d9, 0x0010a50e, 0x0010a2d9, - 0x0010a2d9, 0x0010a2d9, 0x0010a2d9, 0x0010a2d9, - 0x0010a2d9, 0x0010a2d9, 0x0010a2d9, 0x0010a2d9, - 0x0010a2d9, 0x0010a2d9, 0x0010a2d9, 0x0010a2d9, - 0x0010a2d9, 0x0010a2d9, 0x0010a2d9, 0x0010a2d9, - 0x0010a30f, 0x0010a361, 0x0010a37c, 0x0010a3fd, - 0x0010a45b, 0x0010a49f, 0x0010a4cf, 0x0010a2d9, - 0x0010a2d9, 0x0010a516, 0x0010a2d9, 0x0010a2d9, - 0x0010a524, 0x0010a52d, 0x0010a2d9, 0x0010a2d9, - 0x0010a2d9, 0x0010a2d9, 0x0010a2d9, 0x0010a5cf, - 0x0010a2d9, 0x0010a2d9, 0x0010a43b, 0x0010a2d9, - 0x0010a2d9, 0x0010a58e, 0x0010a2d9, 0x0010a2d9, - 0x0010a2d9, 0x0010a5dd, 0x0010a2d9, 0x0010a2d9, - 0x0010a2d9, 0x0010a627, 0x0010a2d9, 0x0010a2d9, - 0x0010a2d9, 0x0010a2d9, 0x0010a2d9, 0x0010a2d9, - 0x0010a694, 0x0010a2d9, 0x0010a6c3, 0x0010a6ce, - 0x0010a2d9, 0x0010a2d9, 0x0010a2db, 0x0010a6d9, - 0x0010a2d9, 0x0010a2d9, 0x0010a2d9, 0x0010a2ec, - 0x0010a2d9, 0x0010a2d9, 0x0010a2d9, 0x0010a6e0, - 0x0010a6e8, 0x0010a706, 0x0010a2d9, 0x0010a2d9, - 0x0010a2d9, 0x0010a2d9, 0x0010a2d9, 0x0010a300, - 0x0010a2d9, 0x0010a2d9, 0x0010a2d9, 0x0010a2d9, - 0x0010a2d9, 0x0010a2d9, 0x0010a2d9, 0x0010a2d9, - 0x0010a2d9, 0x0201f800, 0x0010032e, 0x4933c857, - 0x0201f800, 0x0010b099, 0x02020000, 0x0010a711, - 0x0201f800, 0x00101d49, 0x02020000, 0x0010a711, + 0x1c01f000, 0x0010a5c9, 0x0010a7fa, 0x0010a5c9, + 0x0010a5c9, 0x0010a5c9, 0x0010a805, 0x0010a5c9, + 0x0010a5c9, 0x0010a5c9, 0x0010a5c9, 0x0010a5c9, + 0x0010a5c9, 0x0010a5c9, 0x0010a5c9, 0x0010a5c9, + 0x0010a5c9, 0x0010a5c9, 0x0010a5c9, 0x0010a5c9, + 0x0010a5c9, 0x0010a5c9, 0x0010a5c9, 0x0010a5c9, + 0x0010a602, 0x0010a655, 0x0010a670, 0x0010a6f1, + 0x0010a74f, 0x0010a793, 0x0010a7c3, 0x0010a5c9, + 0x0010a5c9, 0x0010a80d, 0x0010a5c9, 0x0010a5c9, + 0x0010a81b, 0x0010a824, 0x0010a5c9, 0x0010a5c9, + 0x0010a5c9, 0x0010a5c9, 0x0010a5c9, 0x0010a8c6, + 0x0010a5c9, 0x0010a5c9, 0x0010a72f, 0x0010a5c9, + 0x0010a5c9, 0x0010a885, 0x0010a5c9, 0x0010a5c9, + 0x0010a5c9, 0x0010a8d4, 0x0010a5c9, 0x0010a5c9, + 0x0010a5c9, 0x0010a91e, 0x0010a5c9, 0x0010a5c9, + 0x0010a5c9, 0x0010a5c9, 0x0010a5c9, 0x0010a5c9, + 0x0010a98b, 0x0010a5c9, 0x0010a9be, 0x0010a9c9, + 0x0010a5c9, 0x0010a5c9, 0x0010a5cb, 0x0010a9d4, + 0x0010a5c9, 0x0010a5c9, 0x0010a5c9, 0x0010a5dc, + 0x0010a5c9, 0x0010a5c9, 0x0010a5c9, 0x0010a9db, + 0x0010a9e3, 0x0010aa04, 0x0010a5c9, 0x0010a5c9, + 0x0010a5c9, 0x0010a5c9, 0x0010a5c9, 0x0010a5f0, + 0x0010a5c9, 0x0010a5c9, 0x0010a5c9, 0x0010a5c9, + 0x0010a5c9, 0x0010a5c9, 0x0010a5c9, 0x0010a5c9, + 0x0010a5c9, 0x0201f800, 0x0010032e, 0x4933c857, + 0x0201f800, 0x0010b3b0, 0x02020000, 0x0010aa12, + 0x0201f800, 0x00101d52, 0x02020000, 0x0010aa12, 0x59cc0407, 0x4802601d, 0x4a026403, 0x00000045, - 0x4a026203, 0x00000001, 0x0201f000, 0x00106b17, - 0x4933c857, 0x0201f800, 0x0010b099, 0x02020000, - 0x0010a711, 0x0201f800, 0x00101d49, 0x02020000, - 0x0010a711, 0x0201f800, 0x0010a752, 0x040201e7, + 0x4a026203, 0x00000001, 0x0201f000, 0x00106d1c, + 0x4933c857, 0x0201f800, 0x0010b3b0, 0x02020000, + 0x0010aa12, 0x0201f800, 0x00101d52, 0x02020000, + 0x0010aa12, 0x0201f800, 0x0010aa53, 0x040201eb, 0x59cc0007, 0x4802601d, 0x4a026403, 0x0000004a, - 0x4a026203, 0x00000001, 0x0201f000, 0x00106b17, - 0x4933c857, 0x0201f800, 0x0010b099, 0x02020000, - 0x0010a711, 0x0201f800, 0x00101d49, 0x02020000, - 0x0010a711, 0x4a026403, 0x00000056, 0x4a026203, - 0x00000001, 0x0201f000, 0x00106b17, 0x4933c857, - 0x0201f800, 0x00101d49, 0x0402000c, 0x0201f800, - 0x00104856, 0x04020009, 0x5932481c, 0x59240200, - 0x82000500, 0x00000003, 0x82000580, 0x00000003, - 0x04000009, 0x0401f3f4, 0x4a026403, 0x00000009, + 0x4a026203, 0x00000001, 0x0201f000, 0x00106d1c, + 0x4933c857, 0x0201f800, 0x0010b3b0, 0x02020000, + 0x0010aa12, 0x0201f800, 0x00101d52, 0x02020000, + 0x0010aa12, 0x0201f800, 0x0010aa53, 0x040201d7, + 0x4a026403, 0x00000056, 0x4a026203, 0x00000001, + 0x0201f000, 0x00106d1c, 0x4933c857, 0x0201f800, + 0x00101d52, 0x0402000d, 0x0201f800, 0x00104956, + 0x0402000a, 0x5932481c, 0x59240200, 0x82000500, + 0x00000003, 0x82000580, 0x00000003, 0x0400000a, + 0x0201f000, 0x0010aa12, 0x4a026403, 0x00000009, 0x4a02641b, 0x00000009, 0x4a02621b, 0x00000000, - 0x0401f1e6, 0x0201f800, 0x00104943, 0x0400002b, + 0x0401f1e9, 0x0201f800, 0x00104a45, 0x0400002b, 0x59340200, 0x8c00051a, 0x04000004, 0x5934000a, - 0x84000560, 0x4802680a, 0x0201f800, 0x0010ad88, + 0x84000560, 0x4802680a, 0x0201f800, 0x0010b097, 0x0402002c, 0x42028000, 0x00000029, 0x4d3c0000, - 0x417a7800, 0x0201f800, 0x0010fc72, 0x5c027800, - 0x42000000, 0x0010cc25, 0x0201f800, 0x0010bc88, - 0x41780800, 0x0201f800, 0x001045e8, 0x4a026403, + 0x417a7800, 0x0201f800, 0x0010ff80, 0x5c027800, + 0x42000000, 0x0010cf25, 0x0201f800, 0x0010bfb3, + 0x41780800, 0x0201f800, 0x001046e4, 0x4a026403, 0x00000008, 0x42003000, 0x00000003, 0x59240400, - 0x8c00050a, 0x040201c5, 0x59cc400b, 0x59cc380c, + 0x8c00050a, 0x040201c8, 0x59cc400b, 0x59cc380c, 0x59cc180d, 0x59cc080e, 0x9c2041c0, 0x9c1c39c0, 0x9c0c19c0, 0x9c0409c0, 0x4a026203, 0x00000007, - 0x41782800, 0x0401f1ac, 0x0201f800, 0x0010ae51, + 0x41782800, 0x0401f1af, 0x0201f800, 0x0010b160, 0x040207da, 0x4a026403, 0x00000009, 0x4a02641b, - 0x0000000e, 0x4a02621b, 0x00001900, 0x0401f1af, + 0x0000000e, 0x4a02621b, 0x00001900, 0x0401f1b2, 0x4a026403, 0x00000009, 0x4a02641b, 0x00000003, - 0x0401f1aa, 0x4933c857, 0x0201f800, 0x00101d49, - 0x040203ad, 0x0201f800, 0x00104856, 0x040203aa, - 0x493a6403, 0x0201f800, 0x0010ad16, 0x0402000a, + 0x0401f1ad, 0x4933c857, 0x0201f800, 0x00101d52, + 0x040203ba, 0x0201f800, 0x00104956, 0x040203b7, + 0x493a6403, 0x0201f800, 0x0010b025, 0x0402000a, 0x4a026403, 0x00000006, 0x59240400, 0x8c00050a, - 0x0402019a, 0x4a026203, 0x00000007, 0x0201f000, - 0x0010b43f, 0x4a026403, 0x00000007, 0x4a02641b, - 0x00000009, 0x4a02621b, 0x00000000, 0x0401f18f, - 0x4933c857, 0x0201f800, 0x00104856, 0x04020392, + 0x0402019d, 0x4a026203, 0x00000007, 0x0201f000, + 0x0010b76a, 0x4a026403, 0x00000007, 0x4a02641b, + 0x00000009, 0x4a02621b, 0x00000000, 0x0401f192, + 0x4933c857, 0x0201f800, 0x00104956, 0x0402039f, 0x5934000a, 0x82000500, 0x00010000, 0x82000580, - 0x00010000, 0x02020800, 0x0010b099, 0x02000800, - 0x00101d49, 0x04020388, 0x59cc0001, 0x82000500, + 0x00010000, 0x02020800, 0x0010b3b0, 0x02000800, + 0x00101d52, 0x04020395, 0x59cc0001, 0x82000500, 0x00ffff00, 0x82000580, 0x00fffc00, 0x04020007, 0x59a80006, 0x8c00050e, 0x04000004, 0x59240400, - 0x8c00050a, 0x04020048, 0x0201f800, 0x00104943, + 0x8c00050a, 0x04020048, 0x0201f800, 0x00104a45, 0x04020005, 0x42027800, 0x00000001, 0x0201f800, - 0x001044e6, 0x0201f800, 0x00104936, 0x04000004, + 0x001045df, 0x0201f800, 0x00104a38, 0x04000004, 0x82000580, 0x00000703, 0x04020042, 0x59cc0206, 0x82003500, 0x00000003, 0x04020045, 0x82003480, 0x00000014, 0x04001042, 0x59a8305a, 0x80183480, 0x0400103f, 0x5934300a, 0x84183516, 0x82000580, 0x00000014, 0x04020002, 0x84183556, 0x481a680a, 0x59cc0406, 0x82000500, 0x00000003, 0x04020034, - 0x0201f800, 0x0010add5, 0x0402003c, 0x0201f800, - 0x0010491a, 0x04020007, 0x4c600000, 0x4178c000, - 0x417a7800, 0x0201f800, 0x00101cda, 0x5c00c000, + 0x0201f800, 0x0010b0e4, 0x0402003c, 0x0201f800, + 0x00104a1c, 0x04020007, 0x4c600000, 0x4178c000, + 0x417a7800, 0x0201f800, 0x00101ce3, 0x5c00c000, 0x836c0580, 0x00000003, 0x04020009, 0x42003000, - 0x00000006, 0x0201f800, 0x0010b40a, 0x42000000, - 0x0010cc24, 0x0201f800, 0x0010bc88, 0x0201f800, - 0x00104652, 0x4a026403, 0x0000000a, 0x42003000, + 0x00000006, 0x0201f800, 0x0010b735, 0x42000000, + 0x0010cf24, 0x0201f800, 0x0010bfb3, 0x0201f800, + 0x00104752, 0x4a026403, 0x0000000a, 0x42003000, 0x00000020, 0x59cc1a0a, 0x41780800, 0x41784000, - 0x41783800, 0x59240400, 0x8c00050a, 0x0402012f, + 0x41783800, 0x59240400, 0x8c00050a, 0x04020132, 0x0401f772, 0x4a026403, 0x0000000b, 0x4a02641b, - 0x0000000b, 0x4a02621b, 0x00002c00, 0x0401f127, + 0x0000000b, 0x4a02621b, 0x00002c00, 0x0401f12a, 0x4a026403, 0x0000000b, 0x4a02641b, 0x00000009, - 0x4a02621b, 0x00001e00, 0x0401f120, 0x42000000, - 0x0010cb7f, 0x0201f800, 0x0010bc88, 0x4a026403, + 0x4a02621b, 0x00001e00, 0x0401f123, 0x42000000, + 0x0010ce7f, 0x0201f800, 0x0010bfb3, 0x4a026403, 0x0000000b, 0x4a02641b, 0x00000007, 0x4a02621b, - 0x00000000, 0x0401f115, 0x4a026403, 0x0000000b, + 0x00000000, 0x0401f118, 0x4a026403, 0x0000000b, 0x4a02641b, 0x00000003, 0x4a02621b, 0x00000000, - 0x0401f10e, 0x4933c857, 0x0201f800, 0x00104856, - 0x04020311, 0x0201f800, 0x0010b099, 0x0402030e, - 0x0201f800, 0x00101d49, 0x0402030b, 0x59cc0206, + 0x0401f111, 0x4933c857, 0x0201f800, 0x00104956, + 0x0402031e, 0x0201f800, 0x0010b3b0, 0x0402031b, + 0x0201f800, 0x00101d52, 0x04020318, 0x59cc0206, 0x82003500, 0x00000003, 0x04020023, 0x82003480, 0x00000014, 0x04001020, 0x59a8305a, 0x80180480, 0x0400101d, 0x59cc0406, 0x82000500, 0x00000003, 0x04020019, 0x59340400, 0x82000580, 0x00000707, 0x0400001c, 0x417a7800, 0x4c600000, 0x4178c000, - 0x0201f800, 0x00101cda, 0x5c00c000, 0x42003000, - 0x0000000a, 0x0201f800, 0x0010b40a, 0x42000000, - 0x0010cc21, 0x0201f800, 0x0010bc88, 0x4a026403, + 0x0201f800, 0x00101ce3, 0x5c00c000, 0x42003000, + 0x0000000a, 0x0201f800, 0x0010b735, 0x42000000, + 0x0010cf21, 0x0201f800, 0x0010bfb3, 0x4a026403, 0x0000000c, 0x41782800, 0x42003000, 0x00000021, 0x0401f7ad, 0x4a026403, 0x0000000d, 0x4a02641b, - 0x00000007, 0x4a02621b, 0x00000000, 0x0401f0d7, + 0x00000007, 0x4a02621b, 0x00000000, 0x0401f0da, 0x4a026403, 0x0000000d, 0x4a02641b, 0x00000009, - 0x4a02621b, 0x00001e00, 0x0401f0d0, 0x4933c857, - 0x0201f800, 0x00104856, 0x040202d3, 0x0201f800, - 0x0010b099, 0x040202d0, 0x0201f800, 0x00101d49, - 0x040202cd, 0x0401fb0d, 0x0402000e, 0x493a6403, - 0x0401fb14, 0x04020004, 0x4a026403, 0x0000002e, + 0x4a02621b, 0x00001e00, 0x0401f0d3, 0x4933c857, + 0x0201f800, 0x00104956, 0x040202e0, 0x0201f800, + 0x0010b3b0, 0x040202dd, 0x0201f800, 0x00101d52, + 0x040202da, 0x0401fb1a, 0x0402000e, 0x493a6403, + 0x0401fb21, 0x04020004, 0x4a026403, 0x0000002e, 0x0401f722, 0x4a026403, 0x0000000d, 0x4a02641b, - 0x00000007, 0x4a02621b, 0x00000000, 0x0401f0b7, + 0x00000007, 0x4a02621b, 0x00000000, 0x0401f0ba, 0x4a026403, 0x0000000d, 0x4a02641b, 0x00000009, - 0x4a02621b, 0x00001e00, 0x0401f0b0, 0x4933c857, - 0x0201f800, 0x00104856, 0x040206c0, 0x59240200, + 0x4a02621b, 0x00001e00, 0x0401f0b3, 0x4933c857, + 0x0201f800, 0x00104956, 0x040206c0, 0x59240200, 0x82000500, 0x00000003, 0x82000580, 0x00000003, - 0x040202ad, 0x0201f800, 0x00104936, 0x04020033, - 0x0201f800, 0x0010addd, 0x0402000d, 0x4a026403, - 0x0000000e, 0x59240400, 0x8c00050a, 0x0402009b, + 0x040202ba, 0x0201f800, 0x00104a38, 0x04020033, + 0x0201f800, 0x0010b0ec, 0x0402000d, 0x4a026403, + 0x0000000e, 0x59240400, 0x8c00050a, 0x0402009e, 0x42003000, 0x00000052, 0x59cc4008, 0x59cc3809, 0x59cc180a, 0x59cc080b, 0x0401f6d4, 0x4933c857, - 0x42003000, 0x00000003, 0x0201f800, 0x0010b412, - 0x4d3c0000, 0x417a7800, 0x0201f800, 0x0010fc72, - 0x5c027800, 0x42000000, 0x0010cc23, 0x0201f800, - 0x0010bc88, 0x59340200, 0x84000558, 0x48026a00, - 0x42000800, 0x0000000b, 0x0201f800, 0x001044f1, - 0x59240400, 0x8c00050a, 0x04020075, 0x42003000, - 0x00000007, 0x0401f063, 0x4933c857, 0x4a026403, + 0x42003000, 0x00000003, 0x0201f800, 0x0010b73d, + 0x4d3c0000, 0x417a7800, 0x0201f800, 0x0010ff80, + 0x5c027800, 0x42000000, 0x0010cf23, 0x0201f800, + 0x0010bfb3, 0x59340200, 0x84000558, 0x48026a00, + 0x42000800, 0x0000000b, 0x0201f800, 0x001045ea, + 0x59240400, 0x8c00050a, 0x04020078, 0x42003000, + 0x00000007, 0x0401f066, 0x4933c857, 0x4a026403, 0x0000000f, 0x4a02641b, 0x00000003, 0x4a02621b, - 0x00001e00, 0x0401f071, 0x59340400, 0x82000580, + 0x00001e00, 0x0401f074, 0x59340400, 0x82000580, 0x00000703, 0x040007f5, 0x0401f040, 0x4933c857, - 0x0201f800, 0x00104856, 0x0402026f, 0x5932481c, + 0x0201f800, 0x00104956, 0x0402027c, 0x5932481c, 0x59240200, 0x82000500, 0x00000003, 0x82000580, - 0x00000003, 0x04020268, 0x0201f800, 0x0010492d, - 0x0402002e, 0x0201f800, 0x0010adf8, 0x02000800, - 0x0010ad88, 0x04020006, 0x4a026403, 0x00000010, + 0x00000003, 0x04020275, 0x0201f800, 0x00104a2f, + 0x0402002e, 0x0201f800, 0x0010b107, 0x02000800, + 0x0010b097, 0x04020006, 0x4a026403, 0x00000010, 0x42003000, 0x00000050, 0x0401f68d, 0x4d3c0000, - 0x417a7800, 0x0201f800, 0x0010fc72, 0x5c027800, - 0x42003000, 0x00000003, 0x0201f800, 0x0010b412, - 0x42000000, 0x0010cc23, 0x0201f800, 0x0010bc88, + 0x417a7800, 0x0201f800, 0x0010ff80, 0x5c027800, + 0x42003000, 0x00000003, 0x0201f800, 0x0010b73d, + 0x42000000, 0x0010cf23, 0x0201f800, 0x0010bfb3, 0x59340200, 0x84000558, 0x48026a00, 0x0401f7c5, 0x4a026403, 0x00000011, 0x4a02641b, 0x00000003, - 0x4a02621b, 0x00001e00, 0x0401f03c, 0x4933c857, - 0x0201f800, 0x00101d49, 0x02000800, 0x0010b099, - 0x0402023d, 0x0401fa7d, 0x04020008, 0x4a026403, - 0x00000012, 0x0401f031, 0x59340400, 0x82000580, - 0x00000703, 0x040007eb, 0x4d3c0000, 0x417a7800, - 0x42028000, 0x00000029, 0x0201f800, 0x0010fc72, - 0x5c027800, 0x42003000, 0x00000017, 0x0201f800, - 0x0010b412, 0x42000000, 0x0010cc23, 0x0201f800, - 0x0010bc88, 0x0201f800, 0x00101f51, 0x59240400, - 0x8c00050a, 0x04020012, 0x42003000, 0x00000006, - 0x42028000, 0x00000029, 0x4933c857, 0x4a026403, - 0x00000001, 0x4a026203, 0x00000007, 0x41782800, - 0x0401f003, 0x42028000, 0x00000046, 0x0201f800, - 0x0010ae7c, 0x0201f000, 0x0010b43f, 0x4933c857, - 0x4a026403, 0x00000001, 0x42000800, 0x0000000b, - 0x0201f800, 0x001044f1, 0x4a026203, 0x00000001, - 0x0201f000, 0x00106b17, 0x4933c857, 0x42000800, - 0x00000009, 0x0201f800, 0x001044f1, 0x4a026403, - 0x00000005, 0x0401f7f5, 0x0201f800, 0x0010b099, - 0x040201f9, 0x0201f800, 0x00101d49, 0x040201f6, - 0x0401fa36, 0x040207c1, 0x4a026403, 0x00000020, - 0x4a026203, 0x00000001, 0x0201f000, 0x00106b17, - 0x0201f800, 0x00101d49, 0x040201eb, 0x4a026403, - 0x00000023, 0x4a026203, 0x00000001, 0x0201f000, - 0x00106b17, 0x0201f800, 0x0010b099, 0x02000800, - 0x00101d49, 0x040201e0, 0x0401fa20, 0x040207ab, - 0x59cc0807, 0x82040500, 0x00ffff00, 0x0402000a, - 0x59340212, 0x82000500, 0x0000ff00, 0x04000006, - 0x5932481c, 0x59240005, 0x82000500, 0x000000ff, - 0x0401f003, 0x5932481c, 0x59240005, 0x82040d00, - 0x00ffffff, 0x80040580, 0x04020014, 0x59cc1408, - 0x0201f800, 0x00109ac1, 0x04000025, 0x591c0202, - 0x82001580, 0x0000ffff, 0x04000004, 0x59cc1208, - 0x80080580, 0x0402001e, 0x591c000a, 0x81340580, - 0x0402001b, 0x591c0407, 0x82000580, 0x00000007, - 0x04020017, 0x0401f027, 0x59cc1208, 0x82080580, - 0x0000ffff, 0x0400000c, 0x0201f800, 0x00109ac1, - 0x0400000f, 0x59cc1408, 0x591c0202, 0x80080580, - 0x04020024, 0x591c000a, 0x81340580, 0x04020021, - 0x0401f010, 0x59cc1408, 0x41780000, 0x0201f800, - 0x0010abca, 0x040207f8, 0x0401f017, 0x4a026403, - 0x00000026, 0x4a02621b, 0x00001700, 0x59cc1208, - 0x82081580, 0x0000ffff, 0x04020794, 0x0401f00e, - 0x591c0407, 0x82000580, 0x00000007, 0x040207f4, - 0x591c0403, 0x82000580, 0x00000024, 0x04020006, - 0x4d300000, 0x411e6000, 0x0201f800, 0x00020b9d, - 0x5c026000, 0x4a026403, 0x00000025, 0x0401f783, - 0x59cc1408, 0x41780000, 0x0201f800, 0x0010abca, - 0x040207e3, 0x0401f7f8, 0x4933c857, 0x4d3c0000, - 0x42027800, 0x00000001, 0x0201f800, 0x001044e6, - 0x5c027800, 0x4c580000, 0x4200b000, 0x00000002, - 0x83a81c00, 0x00000002, 0x83cc1400, 0x0000000b, - 0x0201f800, 0x00108a31, 0x5c00b000, 0x04000004, - 0x4a026403, 0x00000031, 0x0401f768, 0x0201f800, - 0x00020b9d, 0x4200b000, 0x00000002, 0x83a81c00, - 0x00000000, 0x83cc1400, 0x0000000d, 0x0201f800, - 0x00108a31, 0x04020010, 0x0201f800, 0x0010609c, - 0x0400000d, 0x59300407, 0x82000580, 0x00000001, - 0x04020009, 0x59300403, 0x82000580, 0x00000002, - 0x04020005, 0x5930000a, 0x81340580, 0x02000800, - 0x00020b9d, 0x0201f800, 0x00104fc6, 0x0402000f, - 0x0201f800, 0x00104fe2, 0x04020008, 0x4a035014, - 0x00000001, 0x4202d800, 0x00000001, 0x0201f800, - 0x00104f20, 0x0401f005, 0x42000000, 0x00000001, - 0x0201f800, 0x00104f97, 0x1c01f000, 0x0201f800, - 0x00101d49, 0x04020140, 0x0401f980, 0x0402070b, - 0x493a6403, 0x0401f9f0, 0x04020004, 0x4a026403, - 0x0000002b, 0x0401f731, 0x4a026403, 0x0000002c, - 0x0401f72e, 0x4933c857, 0x0201f800, 0x00106239, - 0x04020131, 0x0201f800, 0x00101d49, 0x0402012e, - 0x0201f800, 0x0010491a, 0x0402071d, 0x59cc0408, - 0x4802641a, 0x59cc0208, 0x4802621a, 0x59cc0807, - 0x59340002, 0x82000500, 0x00ffffff, 0x80040580, - 0x04000016, 0x5932481c, 0x59240005, 0x80040580, - 0x04020025, 0x59cc1408, 0x0201f800, 0x00109ac1, - 0x04000027, 0x831c0580, 0xffffffff, 0x04000007, - 0x0201f800, 0x0010afc0, 0x04000021, 0x0201f800, - 0x0010b3f1, 0x0400001e, 0x491e6027, 0x4a026403, - 0x00000036, 0x0401f106, 0x59cc1208, 0x82080580, - 0x0000ffff, 0x04000009, 0x0201f800, 0x00109ac1, - 0x04000013, 0x591c0202, 0x59cc0c08, 0x80040580, - 0x0402000f, 0x0401f7e8, 0x59cc1408, 0x42000000, - 0x00000001, 0x0201f800, 0x0010abca, 0x04000008, - 0x0401f7e1, 0x4803c856, 0x4a02641b, 0x00000009, - 0x4a02621b, 0x00001500, 0x0401f006, 0x4803c856, - 0x4a02641b, 0x00000003, 0x4a02621b, 0x00001700, - 0x4a026403, 0x00000037, 0x0401f0e5, 0x4933c857, - 0x0201f800, 0x00106239, 0x040200e7, 0x0201f800, - 0x00101d49, 0x040200e4, 0x0201f800, 0x0010491a, - 0x040206d3, 0x0201f800, 0x0010483c, 0x04000055, - 0x59cc0407, 0x4802641a, 0x59cc1207, 0x480a621a, - 0x82080580, 0x0000ffff, 0x04000005, 0x0201f800, - 0x00109ac1, 0x04000043, 0x0401f00a, 0x59cc1407, - 0x42000000, 0x00000001, 0x0201f800, 0x0010abca, - 0x0400003c, 0x831c0580, 0xffffffff, 0x04000039, - 0x59cc0c07, 0x591c0202, 0x80040580, 0x04020035, - 0x0201f800, 0x0010b3f1, 0x04000032, 0x591c0415, - 0x8c000516, 0x0402003d, 0x4d300000, 0x411e6000, - 0x0201f800, 0x001091e5, 0x5c026000, 0x4a023a03, - 0x00000007, 0x59cc0c09, 0x82040d00, 0x0000ff00, - 0x840409c0, 0x82040580, 0x00000001, 0x0400000c, - 0x82040580, 0x00000005, 0x0400000e, 0x82040580, - 0x00000007, 0x04020015, 0x42000000, 0x0010cc10, - 0x0201f800, 0x0010bc88, 0x0401f00a, 0x42000000, - 0x0010cc0f, 0x0201f800, 0x0010bc88, 0x0401f008, - 0x42000000, 0x0010cc0e, 0x0201f800, 0x0010bc88, - 0x591c0009, 0x80000540, 0x04000004, 0x59cc2808, - 0x0201f000, 0x0010afd4, 0x4803c856, 0x4a02641b, - 0x00000009, 0x4a02621b, 0x00002a00, 0x0401f006, - 0x4803c856, 0x4a02641b, 0x00000003, 0x4a02621b, - 0x00000300, 0x4a026403, 0x0000003b, 0x0401f084, - 0x4803c856, 0x4a02641b, 0x0000000b, 0x4a02621b, - 0x00000000, 0x0401f7f8, 0x4803c856, 0x4a02641b, - 0x00000007, 0x4a02621b, 0x00000000, 0x0401f7f2, - 0x4c080000, 0x0201f800, 0x00104856, 0x04000029, - 0x0201f800, 0x0010481c, 0x0201f800, 0x0010b106, - 0x04020021, 0x5932481c, 0x59240200, 0x82000540, - 0x000000e0, 0x48024a00, 0x59a8021b, 0x82000540, - 0x00000003, 0x4803521b, 0x59a80018, 0x800000d0, - 0x59a8080f, 0x82040d00, 0x000000ff, 0x80041540, - 0x480b500f, 0x42000800, 0x00000003, 0x0201f800, - 0x00106c63, 0x497b501d, 0x8d0e1d20, 0x04000004, - 0x4a032804, 0x000007d0, 0x0401f001, 0x0201f800, - 0x00020b9d, 0x0201f800, 0x00101df2, 0x5c001000, - 0x1c01f000, 0x0201f800, 0x0010b128, 0x0401f7fc, - 0x5c001000, 0x0201f000, 0x00020b9d, 0x0201f800, - 0x00101d49, 0x0402004c, 0x0201f800, 0x0010b12e, - 0x4a026403, 0x00000047, 0x4a026203, 0x00000001, - 0x0201f000, 0x00106b17, 0x0201f800, 0x00101d49, - 0x04020041, 0x0201f800, 0x0010b12e, 0x4a026403, + 0x4a02621b, 0x00001e00, 0x0401f03f, 0x4933c857, + 0x0201f800, 0x00101d52, 0x02000800, 0x0010b3b0, + 0x0402024a, 0x0401fa8a, 0x04020008, 0x4a026403, + 0x00000012, 0x0401f034, 0x59340400, 0x82000580, + 0x00000703, 0x040007eb, 0x83340580, 0x0010e23c, + 0x0400000c, 0x4d3c0000, 0x417a7800, 0x42028000, + 0x00000029, 0x0201f800, 0x0010ff80, 0x5c027800, + 0x42003000, 0x00000017, 0x0201f800, 0x0010b73d, + 0x42000000, 0x0010cf23, 0x0201f800, 0x0010bfb3, + 0x0201f800, 0x00101fb4, 0x59240400, 0x8c00050a, + 0x04020012, 0x42003000, 0x00000006, 0x42028000, + 0x00000029, 0x4933c857, 0x4a026403, 0x00000001, + 0x4a026203, 0x00000007, 0x41782800, 0x0401f003, + 0x42028000, 0x00000046, 0x0201f800, 0x0010b18b, + 0x0201f000, 0x0010b76a, 0x4933c857, 0x4a026403, + 0x00000001, 0x42000800, 0x0000000b, 0x0201f800, + 0x001045ea, 0x4a026203, 0x00000001, 0x0201f000, + 0x00106d1c, 0x4933c857, 0x42000800, 0x00000009, + 0x0201f800, 0x001045ea, 0x4a026403, 0x00000005, + 0x0401f7f5, 0x0201f800, 0x0010b3b0, 0x04020203, + 0x0201f800, 0x00101d52, 0x04020200, 0x0401fa40, + 0x040207be, 0x4a026403, 0x00000020, 0x4a026203, + 0x00000001, 0x0201f000, 0x00106d1c, 0x0201f800, + 0x00101d52, 0x040201f5, 0x4a026403, 0x00000023, + 0x4a026203, 0x00000001, 0x0201f000, 0x00106d1c, + 0x0201f800, 0x0010b3b0, 0x02000800, 0x00101d52, + 0x040201ea, 0x0401fa2a, 0x040207a8, 0x59cc0807, + 0x82040500, 0x00ffff00, 0x0402000a, 0x59340212, + 0x82000500, 0x0000ff00, 0x04000006, 0x5932481c, + 0x59240005, 0x82000500, 0x000000ff, 0x0401f003, + 0x5932481c, 0x59240005, 0x82040d00, 0x00ffffff, + 0x80040580, 0x04020014, 0x59cc1408, 0x0201f800, + 0x00109cf9, 0x04000025, 0x591c0202, 0x82001580, + 0x0000ffff, 0x04000004, 0x59cc1208, 0x80080580, + 0x0402001e, 0x591c000a, 0x81340580, 0x0402001b, + 0x591c0407, 0x82000580, 0x00000007, 0x04020017, + 0x0401f027, 0x59cc1208, 0x82080580, 0x0000ffff, + 0x0400000c, 0x0201f800, 0x00109cf9, 0x0400000f, + 0x59cc1408, 0x591c0202, 0x80080580, 0x04020024, + 0x591c000a, 0x81340580, 0x04020021, 0x0401f010, + 0x59cc1408, 0x41780000, 0x0201f800, 0x0010aed1, + 0x040207f8, 0x0401f017, 0x4a026403, 0x00000026, + 0x4a02621b, 0x00001700, 0x59cc1208, 0x82081580, + 0x0000ffff, 0x04020794, 0x0401f00e, 0x591c0407, + 0x82000580, 0x00000007, 0x040207f4, 0x591c0403, + 0x82000580, 0x00000024, 0x04020006, 0x4d300000, + 0x411e6000, 0x0201f800, 0x00020b9d, 0x5c026000, + 0x4a026403, 0x00000025, 0x0401f783, 0x59cc1408, + 0x41780000, 0x0201f800, 0x0010aed1, 0x040207e3, + 0x0401f7f8, 0x4933c857, 0x4d3c0000, 0x42027800, + 0x00000001, 0x0201f800, 0x001045df, 0x5c027800, + 0x4c580000, 0x4200b000, 0x00000002, 0x83a81c00, + 0x00000002, 0x83cc1400, 0x0000000b, 0x0201f800, + 0x00108c57, 0x5c00b000, 0x04000004, 0x4a026403, + 0x00000031, 0x0401f768, 0x0201f800, 0x00020b9d, + 0x4200b000, 0x00000002, 0x83a81c00, 0x00000000, + 0x83cc1400, 0x0000000d, 0x0201f800, 0x00108c57, + 0x04020010, 0x0201f800, 0x00106268, 0x0400000d, + 0x59300407, 0x82000580, 0x00000001, 0x04020009, + 0x59300403, 0x82000580, 0x00000002, 0x04020005, + 0x5930000a, 0x81340580, 0x02000800, 0x00020b9d, + 0x0201f800, 0x001050f7, 0x0402000f, 0x0201f800, + 0x00105113, 0x04020008, 0x4a035014, 0x00000001, + 0x4202d800, 0x00000001, 0x0201f800, 0x00105051, + 0x0401f005, 0x42000000, 0x00000001, 0x0201f800, + 0x001050c8, 0x1c01f000, 0x0201f800, 0x00101d52, + 0x0402014a, 0x0401f98a, 0x04020708, 0x493a6403, + 0x0401f9fa, 0x04020004, 0x4a026403, 0x0000002b, + 0x0401f731, 0x4a026403, 0x0000002c, 0x0401f72e, + 0x4933c857, 0x0201f800, 0x00106405, 0x0402013b, + 0x0201f800, 0x00101d52, 0x04020138, 0x0201f800, + 0x00104a1c, 0x040206f5, 0x59cc0408, 0x4802641a, + 0x59cc0208, 0x4802621a, 0x59cc0807, 0x59340002, + 0x82000500, 0x00ffffff, 0x80040580, 0x04000016, + 0x5932481c, 0x59240005, 0x80040580, 0x04020025, + 0x59cc1408, 0x0201f800, 0x00109cf9, 0x04000027, + 0x831c0580, 0xffffffff, 0x04000007, 0x0201f800, + 0x0010b2d7, 0x04000021, 0x0201f800, 0x0010b71c, + 0x0400001e, 0x491e6027, 0x4a026403, 0x00000036, + 0x0401f110, 0x59cc1208, 0x82080580, 0x0000ffff, + 0x04000009, 0x0201f800, 0x00109cf9, 0x04000013, + 0x591c0202, 0x59cc0c08, 0x80040580, 0x0402000f, + 0x0401f7e8, 0x59cc1408, 0x42000000, 0x00000001, + 0x0201f800, 0x0010aed1, 0x04000008, 0x0401f7e1, + 0x4803c856, 0x4a02641b, 0x00000009, 0x4a02621b, + 0x00001500, 0x0401f006, 0x4803c856, 0x4a02641b, + 0x00000003, 0x4a02621b, 0x00001700, 0x4a026403, + 0x00000037, 0x0401f0ef, 0x4933c857, 0x0201f800, + 0x00106405, 0x040200f1, 0x0201f800, 0x00101d52, + 0x040200ee, 0x0201f800, 0x00104a1c, 0x040206ab, + 0x0201f800, 0x0010493c, 0x04000055, 0x59cc0407, + 0x4802641a, 0x59cc1207, 0x480a621a, 0x82080580, + 0x0000ffff, 0x04000005, 0x0201f800, 0x00109cf9, + 0x04000043, 0x0401f00a, 0x59cc1407, 0x42000000, + 0x00000001, 0x0201f800, 0x0010aed1, 0x0400003c, + 0x831c0580, 0xffffffff, 0x04000039, 0x59cc0c07, + 0x591c0202, 0x80040580, 0x04020035, 0x0201f800, + 0x0010b71c, 0x04000032, 0x591c0415, 0x8c000516, + 0x0402003d, 0x4d300000, 0x411e6000, 0x0201f800, + 0x00109419, 0x5c026000, 0x4a023a03, 0x00000007, + 0x59cc0c09, 0x82040d00, 0x0000ff00, 0x840409c0, + 0x82040580, 0x00000001, 0x0400000c, 0x82040580, + 0x00000005, 0x0400000e, 0x82040580, 0x00000007, + 0x04020015, 0x42000000, 0x0010cf10, 0x0201f800, + 0x0010bfb3, 0x0401f00a, 0x42000000, 0x0010cf0f, + 0x0201f800, 0x0010bfb3, 0x0401f008, 0x42000000, + 0x0010cf0e, 0x0201f800, 0x0010bfb3, 0x591c0009, + 0x80000540, 0x04000004, 0x59cc2808, 0x0201f000, + 0x0010b2eb, 0x4803c856, 0x4a02641b, 0x00000009, + 0x4a02621b, 0x00002a00, 0x0401f006, 0x4803c856, + 0x4a02641b, 0x00000003, 0x4a02621b, 0x00000300, + 0x4a026403, 0x0000003b, 0x0401f08e, 0x4803c856, + 0x4a02641b, 0x0000000b, 0x4a02621b, 0x00000000, + 0x0401f7f8, 0x4803c856, 0x4a02641b, 0x00000007, + 0x4a02621b, 0x00000000, 0x0401f7f2, 0x59cc0001, + 0x82000580, 0x00fffffe, 0x04020084, 0x4c080000, + 0x0201f800, 0x00104956, 0x04000029, 0x0201f800, + 0x0010491c, 0x0201f800, 0x0010b41d, 0x04020021, + 0x5932481c, 0x59240200, 0x82000540, 0x000000e0, + 0x48024a00, 0x59a8021b, 0x82000540, 0x00000003, + 0x4803521b, 0x59a80018, 0x800000d0, 0x59a8080f, + 0x82040d00, 0x000000ff, 0x80041540, 0x480b500f, + 0x42000800, 0x00000003, 0x0201f800, 0x00106e68, + 0x497b501d, 0x8d0e1d20, 0x04000004, 0x4a032804, + 0x000007d0, 0x0401f001, 0x0201f800, 0x00020b9d, + 0x0201f800, 0x00101e2e, 0x5c001000, 0x1c01f000, + 0x0201f800, 0x0010b43f, 0x0401f7fc, 0x5c001000, + 0x0201f000, 0x00020b9d, 0x0201f800, 0x00101d52, + 0x04020052, 0x0201f800, 0x0010b445, 0x4a026403, 0x00000047, 0x4a026203, 0x00000001, 0x0201f000, - 0x00106b17, 0x0201f800, 0x00101d49, 0x04020036, - 0x0201f800, 0x0010b12e, 0x0201f000, 0x00020b9d, - 0x0401f834, 0x04000030, 0x4a026403, 0x0000004e, - 0x4a026203, 0x00000001, 0x0201f000, 0x00106b17, - 0x4a026403, 0x0000004f, 0x497a601d, 0x59cc0a06, - 0x82040d00, 0x000000ff, 0x800409c0, 0x0400061b, - 0x82040580, 0x00000001, 0x04020005, 0x59cc0808, - 0x59a80005, 0x80040580, 0x04000614, 0x82040580, - 0x00000002, 0x0402000a, 0x83cc1400, 0x0000000b, - 0x4200b000, 0x00000002, 0x83341c00, 0x00000006, - 0x0201f800, 0x00108a31, 0x04000608, 0x4a02601d, - 0x00000001, 0x0401f605, 0x4a026403, 0x00000050, - 0x59cc0207, 0x4802601d, 0x0401f600, 0x4a026203, - 0x00000001, 0x42000800, 0x80000040, 0x0201f000, - 0x00020b3e, 0x4803c857, 0x0201f000, 0x00020b9d, - 0x4d2c0000, 0x4c500000, 0x4c580000, 0x4c540000, - 0x59a8005a, 0x82000c80, 0x00000841, 0x0402102d, - 0x0201f800, 0x0010056e, 0x0400002a, 0x492e6009, - 0x59a8005a, 0x48025802, 0x82000400, 0x00000003, - 0x80000104, 0x83cca400, 0x00000006, 0x82000c80, - 0x0000000a, 0x04001015, 0x4a025811, 0x0000000a, - 0x4200b000, 0x0000000a, 0x832c0400, 0x00000006, - 0x4000a800, 0x0201f800, 0x0010bd5b, 0x412c7000, - 0x800409c0, 0x04020003, 0x49787001, 0x0401f00e, - 0x0201f800, 0x0010056e, 0x0400000e, 0x492c7001, - 0x40040000, 0x0401f7ea, 0x48025811, 0x4000b000, - 0x832c0400, 0x00000006, 0x4000a800, 0x0201f800, - 0x0010bd5b, 0x82000540, 0x00000001, 0x0401f006, - 0x497b505a, 0x59325809, 0x0201f800, 0x0010059d, - 0x80000580, 0x5c00a800, 0x5c00b000, 0x5c00a000, - 0x5c025800, 0x1c01f000, 0x4d340000, 0x5932680a, - 0x59343400, 0x4933c857, 0x4937c857, 0x481bc857, - 0x0201f800, 0x0010492d, 0x5c026800, 0x1c01f000, - 0x4933c857, 0x4c600000, 0x4d3c0000, 0x4d440000, - 0x4d340000, 0x0401f870, 0x0402005a, 0x59cc0207, - 0x82000d00, 0x0000ff00, 0x900411c0, 0x59cc000a, - 0x82000500, 0x00ffffff, 0x80081540, 0x480a601d, - 0x8c040d18, 0x0400001a, 0x42003000, 0x00000008, - 0x0201f800, 0x0010b402, 0x42000000, 0x0010cc22, - 0x0201f800, 0x0010bc88, 0x59240400, 0x8c00050a, - 0x04020009, 0x42002800, 0x00000002, 0x42003000, - 0x00000024, 0x42028000, 0x00000046, 0x0201f800, - 0x0010ae7c, 0x4200c000, 0x00000001, 0x417a7800, - 0x0201f800, 0x00101cda, 0x0401f039, 0x8c040d1a, - 0x04000034, 0x59cc000a, 0x59cc3800, 0x821c3d00, - 0x00ffffff, 0x0201f800, 0x00105f68, 0x02000800, - 0x0010497a, 0x0402002b, 0x5930001c, 0x4c000000, - 0x0201f800, 0x00104971, 0x4926601c, 0x5930000a, - 0x4c000000, 0x59240c00, 0x8c040d0a, 0x0402000f, - 0x59340c03, 0x59341802, 0x820c1d00, 0x00ffffff, - 0x58002403, 0x42002800, 0x00000004, 0x42003000, - 0x00000024, 0x42028000, 0x00000046, 0x41301000, - 0x0201f800, 0x0010ae8c, 0x4936600a, 0x42003000, - 0x00000009, 0x0201f800, 0x0010b40a, 0x42000000, - 0x0010cc22, 0x0201f800, 0x0010bc88, 0x417a7800, - 0x4178c000, 0x0201f800, 0x00101cda, 0x5c000000, - 0x4802600a, 0x5c000000, 0x4802601c, 0x0401f004, - 0x82000540, 0x00000001, 0x0401f002, 0x80000580, - 0x5c026800, 0x5c028800, 0x5c027800, 0x5c00c000, - 0x1c01f000, 0x4933c857, 0x59cc0206, 0x82000480, - 0x00000010, 0x04021006, 0x4a02621b, 0x00000000, - 0x82000540, 0x00000001, 0x0401f002, 0x80000580, - 0x1c01f000, 0x4933c857, 0x4a02621b, 0x00000000, - 0x59cc0407, 0x82000500, 0x0000ff00, 0x82000580, - 0x00000800, 0x0402000d, 0x59cc0206, 0x59a8085a, - 0x80040480, 0x0400100a, 0x59cc0006, 0x82000500, - 0x00ff0000, 0x82000d80, 0x00140000, 0x04000003, - 0x82000d80, 0x00100000, 0x1c01f000, 0x42000000, - 0x0010cc17, 0x0201f800, 0x0010bc88, 0x82000540, - 0x00000001, 0x0401f7f9, 0x59300403, 0x82003480, - 0x00000057, 0x02021800, 0x0010032e, 0x83383580, - 0x00000013, 0x04020007, 0x4803c857, 0x4c000000, - 0x0201f800, 0x0010b4ff, 0x5c000000, 0x0c01f018, - 0x4933c857, 0x493bc857, 0x83383580, 0x00000027, - 0x04000005, 0x83383580, 0x00000014, 0x02020800, - 0x0010032e, 0x493bc857, 0x4937c857, 0x0201f800, - 0x0010b4fc, 0x0201f800, 0x0010481c, 0x42000800, - 0x00000007, 0x0201f800, 0x001044f1, 0x0201f800, - 0x00106b8c, 0x0201f000, 0x00107cbe, 0x0010a873, - 0x0010a87c, 0x0010a873, 0x0010a873, 0x0010a873, - 0x0010a87c, 0x0010a887, 0x0010a926, 0x0010a8e1, - 0x0010a926, 0x0010a8fc, 0x0010a926, 0x0010a903, - 0x0010a926, 0x0010a908, 0x0010a926, 0x0010a908, - 0x0010a926, 0x0010a926, 0x0010a873, 0x0010a873, - 0x0010a873, 0x0010a873, 0x0010a873, 0x0010a873, - 0x0010a873, 0x0010a873, 0x0010a873, 0x0010a873, - 0x0010a873, 0x0010a87c, 0x0010a873, 0x0010a926, - 0x0010a873, 0x0010a873, 0x0010a926, 0x0010a873, - 0x0010a926, 0x0010a926, 0x0010a873, 0x0010a873, - 0x0010a873, 0x0010a873, 0x0010a926, 0x0010a926, - 0x0010a873, 0x0010a926, 0x0010a926, 0x0010a873, - 0x0010a881, 0x0010a873, 0x0010a873, 0x0010a873, - 0x0010a873, 0x0010a90b, 0x0010a926, 0x0010a873, - 0x0010a873, 0x0010a90c, 0x0010a926, 0x0010a873, - 0x0010a873, 0x0010a873, 0x0010a873, 0x0010a873, - 0x0010a873, 0x0010a873, 0x0010a873, 0x0010a873, - 0x0010a875, 0x0010a873, 0x0010a875, 0x0010a873, - 0x0010a873, 0x0010a875, 0x0010a873, 0x0010a873, - 0x0010a873, 0x0010a875, 0x0010a875, 0x0010a875, - 0x0010a873, 0x0010a873, 0x0010a873, 0x0010a873, - 0x0010a873, 0x0010a875, 0x0010a873, 0x0010a873, - 0x0010a873, 0x0010a873, 0x0010a873, 0x0010a873, - 0x0010a873, 0x0010a873, 0x0010a873, 0x0201f800, - 0x0010032e, 0x4d2c0000, 0x59325809, 0x0201f800, - 0x0010059d, 0x5c025800, 0x0201f000, 0x00020b9d, - 0x59a8002a, 0x48026006, 0x4a026203, 0x00000002, - 0x1c01f000, 0x4d3c0000, 0x417a7800, 0x0201f800, - 0x001044e6, 0x5c027800, 0x0401f0a0, 0x0201f800, - 0x00104936, 0x0400009d, 0x59a8021b, 0x8c000508, - 0x04000012, 0x5932680a, 0x4c580000, 0x4200b000, - 0x00000002, 0x83a81c00, 0x00000002, 0x83341400, - 0x00000006, 0x0201f800, 0x00108a31, 0x80000540, - 0x5c00b000, 0x0402008d, 0x59340200, 0x8400051a, - 0x48026a00, 0x0401f031, 0x599c0017, 0x8c00050a, - 0x04020086, 0x4d3c0000, 0x417a7800, 0x0201f800, - 0x001044e6, 0x5c027800, 0x42000800, 0x00000007, - 0x0201f800, 0x001044f1, 0x59340212, 0x82000500, - 0x0000ff00, 0x04020017, 0x83440d80, 0x000007fe, - 0x04020076, 0x0201f800, 0x00101f51, 0x59a8021b, - 0x8c000514, 0x04000071, 0x83240580, 0x0010ccd1, - 0x04020006, 0x4d300000, 0x0201f800, 0x00101dc6, - 0x5c026000, 0x0401f069, 0x59a8221b, 0x8c102514, - 0x04000066, 0x0201f800, 0x00101f2a, 0x0401f063, + 0x00106d1c, 0x0201f800, 0x00101d52, 0x04020047, + 0x0201f800, 0x0010b445, 0x4a026403, 0x00000047, + 0x4a026203, 0x00000001, 0x0201f000, 0x00106d1c, + 0x0201f800, 0x00101d52, 0x0402003c, 0x0201f800, + 0x0010b445, 0x0201f000, 0x00020b9d, 0x0401f83a, + 0x04000036, 0x4a026403, 0x0000004e, 0x4a026203, + 0x00000001, 0x0201f000, 0x00106d1c, 0x0201f800, + 0x00104a2f, 0x040205ed, 0x4a026403, 0x0000004f, + 0x497a601d, 0x59cc0a06, 0x82040d00, 0x000000ff, + 0x800409c0, 0x04000614, 0x82040580, 0x00000001, + 0x04020005, 0x59cc0808, 0x59a80005, 0x80040580, + 0x0400060d, 0x82040580, 0x00000002, 0x0402000a, + 0x83cc1400, 0x0000000b, 0x4200b000, 0x00000002, + 0x83341c00, 0x00000006, 0x0201f800, 0x00108c57, + 0x04000601, 0x4a02601d, 0x00000001, 0x0401f5fe, + 0x0201f800, 0x00104a2f, 0x040205cc, 0x4a026403, + 0x00000050, 0x59cc0207, 0x4802601d, 0x0401f5f6, + 0x4a026203, 0x00000001, 0x42000800, 0x80000040, + 0x0201f000, 0x00020b3e, 0x4803c857, 0x0201f000, + 0x00020b9d, 0x4d2c0000, 0x4c500000, 0x4c580000, + 0x4c540000, 0x59a8005a, 0x82000c80, 0x00000841, + 0x0402102d, 0x0201f800, 0x0010056e, 0x0400002a, + 0x492e6009, 0x59a8005a, 0x48025802, 0x82000400, + 0x00000003, 0x80000104, 0x83cca400, 0x00000006, + 0x82000c80, 0x0000000a, 0x04001015, 0x4a025811, + 0x0000000a, 0x4200b000, 0x0000000a, 0x832c0400, + 0x00000006, 0x4000a800, 0x0201f800, 0x0010c086, + 0x412c7000, 0x800409c0, 0x04020003, 0x49787001, + 0x0401f00e, 0x0201f800, 0x0010056e, 0x0400000e, + 0x492c7001, 0x40040000, 0x0401f7ea, 0x48025811, + 0x4000b000, 0x832c0400, 0x00000006, 0x4000a800, + 0x0201f800, 0x0010c086, 0x82000540, 0x00000001, + 0x0401f006, 0x497b505a, 0x59325809, 0x0201f800, + 0x0010059d, 0x80000580, 0x5c00a800, 0x5c00b000, + 0x5c00a000, 0x5c025800, 0x1c01f000, 0x4d340000, + 0x5932680a, 0x59343400, 0x4933c857, 0x4937c857, + 0x481bc857, 0x0201f800, 0x00104a2f, 0x5c026800, + 0x1c01f000, 0x4933c857, 0x4c600000, 0x4d3c0000, + 0x4d440000, 0x4d340000, 0x0401f870, 0x0402005a, + 0x59cc0207, 0x82000d00, 0x0000ff00, 0x900411c0, + 0x59cc000a, 0x82000500, 0x00ffffff, 0x80081540, + 0x480a601d, 0x8c040d18, 0x0400001a, 0x42003000, + 0x00000008, 0x0201f800, 0x0010b72d, 0x42000000, + 0x0010cf22, 0x0201f800, 0x0010bfb3, 0x59240400, + 0x8c00050a, 0x04020009, 0x42002800, 0x00000002, + 0x42003000, 0x00000024, 0x42028000, 0x00000046, + 0x0201f800, 0x0010b18b, 0x4200c000, 0x00000001, + 0x417a7800, 0x0201f800, 0x00101ce3, 0x0401f039, + 0x8c040d1a, 0x04000034, 0x59cc000a, 0x59cc3800, + 0x821c3d00, 0x00ffffff, 0x0201f800, 0x00106134, + 0x02000800, 0x00104a7c, 0x0402002b, 0x5930001c, + 0x4c000000, 0x0201f800, 0x00104a73, 0x4926601c, + 0x5930000a, 0x4c000000, 0x59240c00, 0x8c040d0a, + 0x0402000f, 0x59340c03, 0x59341802, 0x820c1d00, + 0x00ffffff, 0x58002403, 0x42002800, 0x00000004, + 0x42003000, 0x00000024, 0x42028000, 0x00000046, + 0x41301000, 0x0201f800, 0x0010b19b, 0x4936600a, + 0x42003000, 0x00000009, 0x0201f800, 0x0010b735, + 0x42000000, 0x0010cf22, 0x0201f800, 0x0010bfb3, + 0x417a7800, 0x4178c000, 0x0201f800, 0x00101ce3, + 0x5c000000, 0x4802600a, 0x5c000000, 0x4802601c, + 0x0401f004, 0x82000540, 0x00000001, 0x0401f002, + 0x80000580, 0x5c026800, 0x5c028800, 0x5c027800, + 0x5c00c000, 0x1c01f000, 0x4933c857, 0x59cc0206, + 0x82000480, 0x00000010, 0x04021006, 0x4a02621b, + 0x00000000, 0x82000540, 0x00000001, 0x0401f002, + 0x80000580, 0x1c01f000, 0x4933c857, 0x4a02621b, + 0x00000000, 0x59cc0407, 0x82000500, 0x0000ff00, + 0x82000580, 0x00000800, 0x0402000d, 0x59cc0206, + 0x59a8085a, 0x80040480, 0x0400100a, 0x59cc0006, + 0x82000500, 0x00ff0000, 0x82000d80, 0x00140000, + 0x04000003, 0x82000d80, 0x00100000, 0x1c01f000, + 0x42000000, 0x0010cf17, 0x0201f800, 0x0010bfb3, + 0x82000540, 0x00000001, 0x0401f7f9, 0x59300403, + 0x82003480, 0x00000057, 0x02021800, 0x0010032e, + 0x83383580, 0x00000013, 0x04020007, 0x4803c857, + 0x4c000000, 0x0201f800, 0x0010b82a, 0x5c000000, + 0x0c01f018, 0x4933c857, 0x493bc857, 0x83383580, + 0x00000027, 0x04000005, 0x83383580, 0x00000014, + 0x02020800, 0x0010032e, 0x493bc857, 0x4937c857, + 0x0201f800, 0x0010b827, 0x0201f800, 0x0010491c, + 0x42000800, 0x00000007, 0x0201f800, 0x001045ea, + 0x0201f800, 0x00106d91, 0x0201f000, 0x00107eb4, + 0x0010ab74, 0x0010ab7d, 0x0010ab74, 0x0010ab74, + 0x0010ab74, 0x0010ab7d, 0x0010ab88, 0x0010ac2a, + 0x0010abe5, 0x0010ac2a, 0x0010ac00, 0x0010ac2a, + 0x0010ac07, 0x0010ac2a, 0x0010ac0c, 0x0010ac2a, + 0x0010ac0c, 0x0010ac2a, 0x0010ac2a, 0x0010ab74, + 0x0010ab74, 0x0010ab74, 0x0010ab74, 0x0010ab74, + 0x0010ab74, 0x0010ab74, 0x0010ab74, 0x0010ab74, + 0x0010ab74, 0x0010ab74, 0x0010ab7d, 0x0010ab74, + 0x0010ac2a, 0x0010ab74, 0x0010ab74, 0x0010ac2a, + 0x0010ab74, 0x0010ac2a, 0x0010ac2a, 0x0010ab74, + 0x0010ab74, 0x0010ab74, 0x0010ab74, 0x0010ac2a, + 0x0010ac2a, 0x0010ab74, 0x0010ac2a, 0x0010ac2a, + 0x0010ab74, 0x0010ab82, 0x0010ab74, 0x0010ab74, + 0x0010ab74, 0x0010ab74, 0x0010ac0f, 0x0010ac2a, + 0x0010ab74, 0x0010ab74, 0x0010ac10, 0x0010ac2a, + 0x0010ab74, 0x0010ab74, 0x0010ab74, 0x0010ab74, + 0x0010ab74, 0x0010ab74, 0x0010ab74, 0x0010ab74, + 0x0010ab74, 0x0010ab76, 0x0010ab74, 0x0010ab76, + 0x0010ab74, 0x0010ab74, 0x0010ab76, 0x0010ab74, + 0x0010ab74, 0x0010ab74, 0x0010ab76, 0x0010ab76, + 0x0010ab76, 0x0010ab74, 0x0010ab74, 0x0010ab74, + 0x0010ab74, 0x0010ab74, 0x0010ab76, 0x0010ab74, + 0x0010ab74, 0x0010ab74, 0x0010ab74, 0x0010ab74, + 0x0010ab74, 0x0010ab74, 0x0010ab74, 0x0010ab74, + 0x0201f800, 0x0010032e, 0x4d2c0000, 0x59325809, + 0x0201f800, 0x0010059d, 0x5c025800, 0x0201f000, + 0x00020b9d, 0x59a8002a, 0x48026006, 0x4a026203, + 0x00000002, 0x1c01f000, 0x4d3c0000, 0x417a7800, + 0x0201f800, 0x001045df, 0x5c027800, 0x0401f0a3, + 0x0201f800, 0x00104a38, 0x040000a0, 0x59a8021b, + 0x8c000508, 0x04000012, 0x5932680a, 0x4c580000, + 0x4200b000, 0x00000002, 0x83a81c00, 0x00000002, + 0x83341400, 0x00000006, 0x0201f800, 0x00108c57, + 0x80000540, 0x5c00b000, 0x04020090, 0x59340200, + 0x8400051a, 0x48026a00, 0x0401f034, 0x599c0017, + 0x8c00050a, 0x0402000a, 0x4d3c0000, 0x417a7800, + 0x0201f800, 0x001045df, 0x5c027800, 0x42000800, + 0x00000007, 0x0201f800, 0x001045ea, 0x59340212, + 0x82000500, 0x0000ff00, 0x04020017, 0x83440d80, + 0x000007fe, 0x04020079, 0x0201f800, 0x00101fb4, + 0x59a8021b, 0x8c000514, 0x04000074, 0x83240580, + 0x0010cfd1, 0x04020006, 0x4d300000, 0x0201f800, + 0x00101e01, 0x5c026000, 0x0401f06c, 0x59a8221b, + 0x8c102514, 0x04000069, 0x0201f800, 0x00101f94, + 0x0401f066, 0x599c0017, 0x8c00050a, 0x04020063, 0x599c0019, 0x8c00050e, 0x04020060, 0x416c0000, 0x82000580, 0x00000002, 0x04020004, 0x59a80016, 0x80000000, 0x48035016, 0x42000800, 0x00000003, - 0x0201f800, 0x001044f1, 0x4a026407, 0x00000001, + 0x0201f800, 0x001045ea, 0x4a026407, 0x00000001, 0x4a026203, 0x00000001, 0x4a026403, 0x00000002, - 0x0201f800, 0x00106b17, 0x4ce80000, 0x4201d000, - 0x00000001, 0x0201f800, 0x00106314, 0x5c01d000, + 0x0201f800, 0x00106d1c, 0x4ce80000, 0x4201d000, + 0x00000001, 0x0201f800, 0x00106519, 0x5c01d000, 0x1c01f000, 0x59340200, 0x8400051a, 0x48026a00, - 0x0201f800, 0x0010492d, 0x04000040, 0x0201f800, - 0x00106827, 0x42000800, 0x00000004, 0x0201f800, - 0x001044f1, 0x0201f800, 0x0010b435, 0x04020037, - 0x42000800, 0x00000005, 0x0201f800, 0x001044f1, + 0x0201f800, 0x00104a2f, 0x04000040, 0x0201f800, + 0x00106a2c, 0x42000800, 0x00000004, 0x0201f800, + 0x001045ea, 0x0201f800, 0x0010b760, 0x04020037, + 0x42000800, 0x00000005, 0x0201f800, 0x001045ea, 0x4a026407, 0x00000001, 0x4a026203, 0x00000001, - 0x4a026403, 0x00000003, 0x0201f000, 0x00106b17, - 0x0201f800, 0x00104936, 0x04020028, 0x42000800, + 0x4a026403, 0x00000003, 0x0201f000, 0x00106d1c, + 0x0201f800, 0x00104a38, 0x04020028, 0x42000800, 0x00000006, 0x0401f827, 0x0401f024, 0x42000800, - 0x00000004, 0x0201f800, 0x001044f1, 0x0401f783, - 0x0201f800, 0x0010481c, 0x0401f01c, 0x0401f01b, + 0x00000004, 0x0201f800, 0x001045ea, 0x0401f780, + 0x0201f800, 0x0010491c, 0x0401f01c, 0x0401f01b, 0x59300827, 0x4807c857, 0x800409c0, 0x04000017, 0x5804001d, 0x81300580, 0x04020014, 0x4978081d, 0x58041415, 0x8c081516, 0x04000010, 0x8c081514, @@ -25374,1389 +25619,1406 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x812e59c0, 0x04000009, 0x492fc857, 0x4d300000, 0x40066000, 0x417a7800, 0x0201f800, 0x00020a86, 0x5c026000, 0x0401f001, 0x0201f000, 0x00020b9d, - 0x4933c857, 0x4807c857, 0x0201f800, 0x001044f1, - 0x4d3c0000, 0x417a7800, 0x0201f800, 0x001044e6, + 0x4933c857, 0x4807c857, 0x0201f800, 0x001045ea, + 0x4d3c0000, 0x417a7800, 0x0201f800, 0x001045df, 0x5c027800, 0x5934000a, 0x84000520, 0x4802680a, - 0x0201f000, 0x0010481c, 0x59340400, 0x4803c857, + 0x0201f000, 0x0010491c, 0x59340400, 0x4803c857, 0x80000110, 0x82003480, 0x0000000c, 0x02021800, 0x0010032e, 0x83383580, 0x00000015, 0x04020002, 0x0c01f006, 0x83383580, 0x00000016, 0x02020800, - 0x0010032e, 0x0c01f00d, 0x0010854a, 0x0010854a, - 0x0010854a, 0x0010854a, 0x0010854a, 0x0010854a, - 0x0010a98a, 0x0010a95e, 0x0010854a, 0x0010854a, - 0x0010854a, 0x0010854a, 0x0010854a, 0x0010854a, - 0x0010854a, 0x0010854a, 0x0010854a, 0x0010854a, - 0x0010a98a, 0x0010a991, 0x0010854a, 0x0010854a, - 0x0010854a, 0x0010854a, 0x4933c857, 0x5932481c, + 0x0010032e, 0x0c01f00d, 0x0010875e, 0x0010875e, + 0x0010875e, 0x0010875e, 0x0010875e, 0x0010875e, + 0x0010ac8e, 0x0010ac62, 0x0010875e, 0x0010875e, + 0x0010875e, 0x0010875e, 0x0010875e, 0x0010875e, + 0x0010875e, 0x0010875e, 0x0010875e, 0x0010875e, + 0x0010ac8e, 0x0010ac95, 0x0010875e, 0x0010875e, + 0x0010875e, 0x0010875e, 0x4933c857, 0x5932481c, 0x59240400, 0x8c000508, 0x0400001b, 0x813669c0, 0x04000019, 0x59340212, 0x82000500, 0x0000ff00, 0x04000015, 0x599c0019, 0x8c00050e, 0x04020012, - 0x4d3c0000, 0x417a7800, 0x0201f800, 0x001044e6, + 0x4d3c0000, 0x417a7800, 0x0201f800, 0x001045df, 0x5c027800, 0x42000800, 0x00000003, 0x0201f800, - 0x001044f1, 0x4a026407, 0x00000001, 0x4a026203, + 0x001045ea, 0x4a026407, 0x00000001, 0x4a026203, 0x00000001, 0x4a026403, 0x00000002, 0x0201f000, - 0x00106b17, 0x59cc0001, 0x59340802, 0x80040580, + 0x00106d1c, 0x59cc0001, 0x59340802, 0x80040580, 0x82000500, 0x00ffffff, 0x02020000, 0x00020b9d, - 0x59345002, 0x0201f800, 0x001041e4, 0x482a6802, + 0x59345002, 0x0201f800, 0x001042dd, 0x482a6802, 0x0201f000, 0x00020b9d, 0x4933c857, 0x59303403, 0x82183580, 0x0000001e, 0x02000000, 0x00020b9d, - 0x1c01f000, 0x4933c857, 0x0201f800, 0x0010890a, + 0x1c01f000, 0x4933c857, 0x0201f800, 0x00108b22, 0x02020000, 0x00020b9d, 0x4a026203, 0x00000001, - 0x4a026403, 0x00000001, 0x0201f000, 0x00106b17, + 0x4a026403, 0x00000001, 0x0201f000, 0x00106d1c, 0x493bc857, 0x83380580, 0x00000051, 0x0402000b, - 0x0201f800, 0x00107021, 0x02020000, 0x00107d3d, + 0x0201f800, 0x00107226, 0x02020000, 0x00107f37, 0x59300203, 0x82000580, 0x00000002, 0x0400006e, 0x0201f800, 0x0010032e, 0x83380580, 0x00000027, 0x04000014, 0x83380580, 0x00000048, 0x04000006, 0x83380580, 0x00000014, 0x0400000e, 0x02020800, - 0x0010032e, 0x0201f800, 0x00107021, 0x02020000, - 0x00107d3d, 0x59300203, 0x82000580, 0x00000004, + 0x0010032e, 0x0201f800, 0x00107226, 0x02020000, + 0x00107f37, 0x59300203, 0x82000580, 0x00000004, 0x02000000, 0x00020c9d, 0x0201f800, 0x0010032e, 0x4933c857, 0x59300403, 0x82000c80, 0x00000044, 0x02021800, 0x0010032e, 0x82000480, 0x00000040, 0x02001800, 0x0010032e, 0x40027000, 0x4803c857, - 0x0c01f001, 0x0010a9d1, 0x0010a9d3, 0x0010a9d3, - 0x0010a9ee, 0x0201f800, 0x0010032e, 0x0201f800, - 0x00106b8c, 0x59325809, 0x812e59c0, 0x04000016, + 0x0c01f001, 0x0010acd5, 0x0010acd7, 0x0010acd7, + 0x0010acf2, 0x0201f800, 0x0010032e, 0x0201f800, + 0x00106d91, 0x59325809, 0x812e59c0, 0x04000016, 0x832c0500, 0x00ff0000, 0x04000013, 0x4a026203, 0x00000002, 0x5932680a, 0x59340200, 0x8c00050e, 0x0402000d, 0x42028000, 0x00000004, 0x0201f800, - 0x0010ae66, 0x497a6009, 0x59300006, 0x80000540, + 0x0010b175, 0x497a6009, 0x59300006, 0x80000540, 0x04020003, 0x59a8002b, 0x48026006, 0x4a026203, - 0x00000007, 0x1c01f000, 0x0201f800, 0x00106b8c, - 0x0201f800, 0x00109667, 0x02000000, 0x00107cbe, + 0x00000007, 0x1c01f000, 0x0201f800, 0x00106d91, + 0x0201f800, 0x0010989f, 0x02000000, 0x00107eb4, 0x59325809, 0x0201f800, 0x00100594, 0x0201f000, - 0x00107cbe, 0x0201f800, 0x0010032e, 0x59325809, + 0x00107eb4, 0x0201f800, 0x0010032e, 0x59325809, 0x592c040b, 0x8c000502, 0x04000007, 0x4a026203, 0x00000007, 0x42027000, 0x00000043, 0x0201f000, 0x00020bc1, 0x4a026203, 0x00000004, 0x1c01f000, - 0x0201f800, 0x0010b09f, 0x02000000, 0x00020c9b, + 0x0201f800, 0x0010b3b6, 0x02000000, 0x00020c9b, 0x1c01f000, 0x4a026203, 0x00000001, 0x4a026403, 0x00000041, 0x42027800, 0x80002042, 0x0201f000, 0x00020b3e, 0x83380580, 0x00000051, 0x04000006, 0x83380580, 0x00000041, 0x02020800, 0x0010032e, 0x1c01f000, 0x0201f800, 0x00020afd, 0x0201f800, - 0x0010b0e3, 0x0201f000, 0x00020b9d, 0x83380480, + 0x0010b3fa, 0x0201f000, 0x00020b9d, 0x83380480, 0x00000052, 0x02021800, 0x0010032e, 0x83380480, 0x00000049, 0x02001800, 0x0010032e, 0x0c01f001, - 0x0010aa37, 0x0010aa5e, 0x0010aa35, 0x0010aa35, - 0x0010aa35, 0x0010aa35, 0x0010aa5e, 0x0010aa35, - 0x0010aa7f, 0x0201f800, 0x0010032e, 0x59325809, + 0x0010ad3b, 0x0010ad65, 0x0010ad39, 0x0010ad39, + 0x0010ad39, 0x0010ad39, 0x0010ad65, 0x0010ad39, + 0x0010ad86, 0x0201f800, 0x0010032e, 0x59325809, 0x592c040b, 0x8c00051e, 0x04000013, 0x82000d00, - 0x000000c0, 0x82040d80, 0x00000080, 0x04000013, - 0x59300804, 0x8c040d18, 0x04020010, 0x59300415, + 0x000000c0, 0x82040d80, 0x00000080, 0x04000016, + 0x59300804, 0x8c040d18, 0x04020013, 0x59300415, 0x8c000516, 0x04000004, 0x4a026203, 0x00000007, - 0x0401f015, 0x42027000, 0x00000041, 0x0201f000, + 0x0401f018, 0x42027000, 0x00000041, 0x0201f000, 0x00020cbc, 0x4a026203, 0x00000007, 0x497a6006, - 0x0201f000, 0x00020afd, 0x59325809, 0x592c0c0b, - 0x8c040d1a, 0x04020005, 0x0201f800, 0x00020afd, - 0x0201f000, 0x00020b9d, 0x0201f800, 0x0010b09f, - 0x040007fa, 0x1c01f000, 0x0201f800, 0x00106b6c, - 0x59325809, 0x5932680a, 0x59340200, 0x8c00050e, - 0x0400000e, 0x592c040b, 0x82000500, 0x000000c0, - 0x82000580, 0x00000080, 0x04000005, 0x592c0010, - 0x59301816, 0x800c1c80, 0x480e6016, 0x4a026203, - 0x00000002, 0x0401f00d, 0x42028000, 0x00000004, - 0x0401fbf2, 0x59300006, 0x80000540, 0x04020004, - 0x59a8002b, 0x800000c2, 0x48026006, 0x497a6009, - 0x4a026203, 0x00000007, 0x1c01f000, 0x4933c857, - 0x0201f800, 0x00107021, 0x02020800, 0x0010032e, - 0x59300203, 0x82000580, 0x00000002, 0x0400078e, - 0x0201f800, 0x0010032e, 0x4a026203, 0x00000007, - 0x497a6006, 0x0201f000, 0x00020afd, 0x4a026203, - 0x00000007, 0x497a6006, 0x0201f000, 0x00020af8, - 0x59300415, 0x8c00051c, 0x02020000, 0x00020cad, - 0x59325809, 0x592c2010, 0x40080000, 0x80102480, - 0x59300016, 0x80102400, 0x48126016, 0x0201f000, - 0x00020cad, 0x8c040d0e, 0x0402000a, 0x4a026203, - 0x00000006, 0x0401f823, 0x59300028, 0x80000540, - 0x02020800, 0x00100b15, 0x0201f000, 0x00020af8, - 0x4a026203, 0x00000002, 0x1c01f000, 0x42000800, - 0x00000001, 0x0201f800, 0x00100b15, 0x82040580, - 0x00000001, 0x02000000, 0x00020cb4, 0x0401f7d8, - 0x59300415, 0x8c00051c, 0x04000006, 0x0201f800, - 0x0010089c, 0x02000000, 0x00020ca6, 0x1c01f000, - 0x59300012, 0x80000540, 0x04020005, 0x0201f800, - 0x0010089c, 0x02000000, 0x00020ca6, 0x1c01f000, - 0x492fc857, 0x480bc857, 0x8c08153e, 0x04000006, - 0x80081080, 0x80081000, 0x42000800, 0x00000009, - 0x0401f003, 0x42000800, 0x00000015, 0x480a580c, - 0x1c01f000, 0x83380580, 0x00000013, 0x04000005, - 0x83380580, 0x00000014, 0x02020800, 0x0010032e, - 0x59300415, 0x8c000516, 0x02000800, 0x0010032e, - 0x1c01f000, 0x0201f800, 0x0010032e, 0x59300009, - 0x80000540, 0x02020800, 0x0010032e, 0x1c01f000, - 0x59300415, 0x8c000516, 0x02000800, 0x0010032e, - 0x1c01f000, 0x4a026203, 0x00000004, 0x493a6403, - 0x42000800, 0x80002001, 0x0201f000, 0x00020b3e, - 0x4a026203, 0x00000003, 0x493a6403, 0x0201f800, - 0x00020172, 0x59325809, 0x592c040b, 0x8c00051e, - 0x04000012, 0x82000500, 0x000000c0, 0x82000580, - 0x00000080, 0x04000011, 0x59300415, 0x8c000512, - 0x0402000a, 0x8c000510, 0x04020008, 0x592c040d, - 0x80000540, 0x04020005, 0x82080d40, 0x80003065, - 0x0201f000, 0x00020b30, 0x82080d40, 0x80002065, - 0x0201f000, 0x00020b30, 0x82080d40, 0x80002042, + 0x59300415, 0x8c000516, 0x0402000e, 0x0201f000, + 0x00020afd, 0x59325809, 0x592c0c0b, 0x8c040d1a, + 0x04020005, 0x0201f800, 0x00020afd, 0x0201f000, + 0x00020b9d, 0x0201f800, 0x0010b3b6, 0x040007fa, + 0x1c01f000, 0x0201f800, 0x00106d71, 0x59325809, + 0x5932680a, 0x59340200, 0x8c00050e, 0x0400000e, + 0x592c040b, 0x82000500, 0x000000c0, 0x82000580, + 0x00000080, 0x04000005, 0x592c0010, 0x59301816, + 0x800c1c80, 0x480e6016, 0x4a026203, 0x00000002, + 0x0401f00d, 0x42028000, 0x00000004, 0x0401fbfa, + 0x59300006, 0x80000540, 0x04020004, 0x59a8002b, + 0x800000c2, 0x48026006, 0x497a6009, 0x4a026203, + 0x00000007, 0x1c01f000, 0x4933c857, 0x0201f800, + 0x00107226, 0x02020800, 0x0010032e, 0x59300203, + 0x82000580, 0x00000002, 0x0400078b, 0x0201f800, + 0x0010032e, 0x4a026203, 0x00000007, 0x497a6006, + 0x0201f000, 0x00020afd, 0x4a026203, 0x00000007, + 0x497a6006, 0x0201f000, 0x00020af8, 0x59300415, + 0x8c00051c, 0x02020000, 0x00020cad, 0x59325809, + 0x592c2010, 0x40080000, 0x80102480, 0x59300016, + 0x80102400, 0x48126016, 0x0201f000, 0x00020cad, + 0x8c040d0e, 0x0402000a, 0x4a026203, 0x00000006, + 0x0401f823, 0x59300028, 0x80000540, 0x02020800, + 0x00100b16, 0x0201f000, 0x00020af8, 0x4a026203, + 0x00000002, 0x1c01f000, 0x42000800, 0x00000001, + 0x0201f800, 0x00100b16, 0x82040580, 0x00000001, + 0x02000000, 0x00020cb4, 0x0401f7d8, 0x59300415, + 0x8c00051c, 0x04000006, 0x0201f800, 0x0010089a, + 0x02000000, 0x00020ca6, 0x1c01f000, 0x59300012, + 0x80000540, 0x04020005, 0x0201f800, 0x0010089a, + 0x02000000, 0x00020ca6, 0x1c01f000, 0x492fc857, + 0x480bc857, 0x8c08153e, 0x04000006, 0x80081080, + 0x80081000, 0x42000800, 0x00000009, 0x0401f003, + 0x42000800, 0x00000015, 0x480a580c, 0x1c01f000, + 0x83380580, 0x00000013, 0x04000005, 0x83380580, + 0x00000014, 0x02020800, 0x0010032e, 0x59300415, + 0x8c000516, 0x02000800, 0x0010032e, 0x1c01f000, + 0x0201f800, 0x0010032e, 0x59300009, 0x80000540, + 0x02020800, 0x0010032e, 0x1c01f000, 0x59300415, + 0x8c000516, 0x02000800, 0x0010032e, 0x1c01f000, + 0x4a026203, 0x00000004, 0x493a6403, 0x42000800, + 0x80002001, 0x0201f000, 0x00020b3e, 0x4a026203, + 0x00000003, 0x493a6403, 0x0201f800, 0x00020172, + 0x59325809, 0x592c040b, 0x8c00051e, 0x04000012, + 0x82000500, 0x000000c0, 0x82000580, 0x00000080, + 0x04000011, 0x59300415, 0x8c000512, 0x0402000a, + 0x8c000510, 0x04020008, 0x592c040d, 0x80000540, + 0x04020005, 0x82080d40, 0x80003065, 0x0201f000, + 0x00020b30, 0x82080d40, 0x80002065, 0x0201f000, + 0x00020b30, 0x82080d40, 0x80002042, 0x0201f000, + 0x00020b30, 0x4933c857, 0x493bc857, 0x83380480, + 0x00000044, 0x02021800, 0x0010032e, 0x83380480, + 0x00000041, 0x02001800, 0x0010032e, 0x0c01f001, + 0x0010ae2b, 0x0010ae3b, 0x0010ae50, 0x59325809, + 0x592c040b, 0x8c00051e, 0x0400001d, 0x82001d00, + 0x000000c0, 0x820c1d80, 0x000000c0, 0x04000018, + 0x4a026203, 0x00000001, 0x493a6403, 0x42000800, + 0x80002042, 0x0201f000, 0x00020b3e, 0x59325809, + 0x592c040b, 0x8c00051e, 0x0400000d, 0x82001d00, + 0x000000c0, 0x820c1d80, 0x000000c0, 0x04000008, + 0x4a026203, 0x00000001, 0x493a6403, 0x42000800, + 0x80002001, 0x0201f000, 0x00020b3e, 0x497a6009, + 0x497a6006, 0x42028000, 0x00000004, 0x0401f326, + 0x59325809, 0x592c040b, 0x8c00051e, 0x040007f8, + 0x82001d00, 0x000000c0, 0x820c1d80, 0x000000c0, + 0x040007f3, 0x4a026203, 0x00000003, 0x493a6403, + 0x0201f800, 0x00020172, 0x82080d40, 0x80002065, 0x0201f000, 0x00020b30, 0x4933c857, 0x493bc857, - 0x83380480, 0x00000044, 0x02021800, 0x0010032e, - 0x83380480, 0x00000041, 0x02001800, 0x0010032e, - 0x0c01f001, 0x0010ab24, 0x0010ab34, 0x0010ab49, - 0x59325809, 0x592c040b, 0x8c00051e, 0x0400001d, - 0x82001d00, 0x000000c0, 0x820c1d80, 0x000000c0, - 0x04000018, 0x4a026203, 0x00000001, 0x493a6403, - 0x42000800, 0x80002042, 0x0201f000, 0x00020b3e, - 0x59325809, 0x592c040b, 0x8c00051e, 0x0400000d, - 0x82001d00, 0x000000c0, 0x820c1d80, 0x000000c0, - 0x04000008, 0x4a026203, 0x00000001, 0x493a6403, - 0x42000800, 0x80002001, 0x0201f000, 0x00020b3e, - 0x497a6009, 0x497a6006, 0x42028000, 0x00000004, - 0x0401f31e, 0x59325809, 0x592c040b, 0x8c00051e, - 0x040007f8, 0x82001d00, 0x000000c0, 0x820c1d80, - 0x000000c0, 0x040007f3, 0x4a026203, 0x00000003, - 0x493a6403, 0x0201f800, 0x00020172, 0x82080d40, - 0x80002065, 0x0201f000, 0x00020b30, 0x4933c857, - 0x493bc857, 0x83380580, 0x00000085, 0x04000006, - 0x83380580, 0x00000088, 0x0400000a, 0x0201f800, - 0x0010032e, 0x4a026203, 0x00000009, 0x493a6403, - 0x42000800, 0x8000004b, 0x0201f000, 0x00020b3e, - 0x83300580, 0x0011120c, 0x02020800, 0x0010032e, - 0x4d1c0000, 0x813669c0, 0x04000004, 0x0201f800, - 0x0010b099, 0x04020053, 0x59cc1404, 0x41780000, - 0x0401f852, 0x0400001a, 0x59cc0204, 0x82001580, - 0x0000ffff, 0x04000004, 0x591c1402, 0x80080580, - 0x04020013, 0x591c0407, 0x82000500, 0x0000001f, - 0x82002580, 0x00000006, 0x04000007, 0x82002580, - 0x00000004, 0x04000031, 0x82002580, 0x00000011, - 0x04020007, 0x497a3a05, 0x42002000, 0x00000054, - 0x0201f800, 0x00107e13, 0x0401f036, 0x59240400, - 0x8c00050a, 0x04020004, 0x42023800, 0xffffffff, - 0x0401f7f6, 0x813669c0, 0x04020011, 0x59cc0001, - 0x59cc3800, 0x821c3d00, 0x00ffffff, 0x4c1c0000, - 0x0201f800, 0x00105f68, 0x5c003800, 0x04020025, - 0x0201f800, 0x00101f66, 0x0201f800, 0x0010452c, - 0x04020020, 0x4926601c, 0x4936600a, 0x4a026403, - 0x00000087, 0x59cc1204, 0x82081580, 0x0000ffff, - 0x04020003, 0x4a026403, 0x00000086, 0x4d2c0000, - 0x0201f800, 0x0010b462, 0x0201f800, 0x00104c77, - 0x5c025800, 0x0401f00f, 0x591c0403, 0x82000580, - 0x00000038, 0x040007d1, 0x591c0203, 0x82000580, - 0x00000007, 0x040207d2, 0x4d300000, 0x411e6000, - 0x0201f800, 0x00107cbe, 0x5c026000, 0x0401f7cc, - 0x5c023800, 0x1c01f000, 0x4933c857, 0x480bc857, - 0x4c5c0000, 0x4000b800, 0x42002800, 0x00111264, - 0x41300000, 0x80140580, 0x0400001c, 0x58140203, - 0x82000580, 0x00000000, 0x04000018, 0x58140202, - 0x80080580, 0x04020015, 0x58141c07, 0x820c0580, - 0x00000005, 0x04000011, 0x8c5cbd00, 0x04000004, - 0x820c0580, 0x00000007, 0x0400000c, 0x820c0580, - 0x00000009, 0x04000031, 0x5930200a, 0x5814000a, - 0x800001c0, 0x0400000b, 0x801021c0, 0x04000003, - 0x80100580, 0x04000012, 0x82142c00, 0x0000002c, - 0x41540000, 0x80140480, 0x04021019, 0x0401f7dd, - 0x58140027, 0x801021c0, 0x04000005, 0x58102002, - 0x82102500, 0x00ffffff, 0x0401f7f2, 0x8c5cbd00, - 0x040207f2, 0x59302027, 0x0401f7ee, 0x40163800, - 0x8c5cbd00, 0x04000008, 0x4c080000, 0x4c140000, - 0x0201f800, 0x0010b3f1, 0x5c002800, 0x5c001000, - 0x040007e6, 0x81300540, 0x0401f00a, 0x8c5cbd00, - 0x04000008, 0x40080800, 0x42023800, 0xffffffff, - 0x0201f800, 0x00104c81, 0x040007f7, 0x80000580, - 0x5c00b800, 0x1c01f000, 0x58141808, 0x8c0c1d10, - 0x040207d6, 0x0401f7cd, 0x4933c857, 0x83300580, - 0x001111e0, 0x0402003e, 0x4a026203, 0x00000000, - 0x83380580, 0x00000013, 0x0402002d, 0x59300403, - 0x82000580, 0x00000092, 0x02020800, 0x0010032e, - 0x59a80052, 0x59325809, 0x812e59c0, 0x04000006, - 0x812c0580, 0x02020800, 0x0010032e, 0x592c0000, - 0x497a5800, 0x800001c0, 0x04000005, 0x48035052, - 0x0201f800, 0x00107c34, 0x0401f003, 0x497b5052, - 0x497b5053, 0x812e59c0, 0x04000020, 0x592c0205, - 0x82000580, 0x00000055, 0x02000000, 0x00100594, - 0x83380580, 0x00000013, 0x04020005, 0x4a025a07, - 0x00000000, 0x0201f000, 0x000203ef, 0x4a025a07, - 0x00000031, 0x4a025812, 0x00000004, 0x4a025813, - 0x000000ff, 0x0201f000, 0x000203ef, 0x83380580, - 0x00000027, 0x04000005, 0x83380580, 0x00000014, - 0x02020800, 0x0010032e, 0x493bc857, 0x0201f800, - 0x00106b8c, 0x0401f7ca, 0x1c01f000, 0x4933c857, - 0x83380580, 0x00000013, 0x0402000e, 0x59300403, - 0x4803c857, 0x82000c80, 0x00000085, 0x02001800, - 0x0010032e, 0x82000c80, 0x00000093, 0x02021800, - 0x0010032e, 0x82000480, 0x00000085, 0x0c01f019, - 0x83380580, 0x00000027, 0x04000005, 0x83380580, - 0x00000014, 0x02020000, 0x00107d3d, 0x493bc857, - 0x0201f800, 0x00106b8c, 0x59325809, 0x812e59c0, - 0x02000000, 0x00107cbe, 0x4a025a07, 0x00000031, + 0x83380580, 0x00000085, 0x04000006, 0x83380580, + 0x00000088, 0x0400000a, 0x0201f800, 0x0010032e, + 0x4a026203, 0x00000009, 0x493a6403, 0x42000800, + 0x8000004b, 0x0201f000, 0x00020b3e, 0x83300580, + 0x0011152c, 0x02020800, 0x0010032e, 0x4d1c0000, + 0x813669c0, 0x04000004, 0x0201f800, 0x0010b3b0, + 0x04020053, 0x59cc1404, 0x41780000, 0x0401f852, + 0x0400001a, 0x59cc0204, 0x82001580, 0x0000ffff, + 0x04000004, 0x591c1402, 0x80080580, 0x04020013, + 0x591c0407, 0x82000500, 0x0000001f, 0x82002580, + 0x00000006, 0x04000007, 0x82002580, 0x00000004, + 0x04000031, 0x82002580, 0x00000011, 0x04020007, + 0x497a3a05, 0x42002000, 0x00000054, 0x0201f800, + 0x0010800d, 0x0401f036, 0x59240400, 0x8c00050a, + 0x04020004, 0x42023800, 0xffffffff, 0x0401f7f6, + 0x813669c0, 0x04020011, 0x59cc0001, 0x59cc3800, + 0x821c3d00, 0x00ffffff, 0x4c1c0000, 0x0201f800, + 0x00106134, 0x5c003800, 0x04020025, 0x0201f800, + 0x00101fc9, 0x0201f800, 0x00104628, 0x04020020, + 0x4926601c, 0x4936600a, 0x4a026403, 0x00000087, + 0x59cc1204, 0x82081580, 0x0000ffff, 0x04020003, + 0x4a026403, 0x00000086, 0x4d2c0000, 0x0201f800, + 0x0010b78d, 0x0201f800, 0x00104d7c, 0x5c025800, + 0x0401f00f, 0x591c0403, 0x82000580, 0x00000038, + 0x040007d1, 0x591c0203, 0x82000580, 0x00000007, + 0x040207d2, 0x4d300000, 0x411e6000, 0x0201f800, + 0x00107eb4, 0x5c026000, 0x0401f7cc, 0x5c023800, + 0x1c01f000, 0x4933c857, 0x480bc857, 0x4c5c0000, + 0x4000b800, 0x42002800, 0x00111584, 0x41300000, + 0x80140580, 0x0400001f, 0x58140203, 0x82000580, + 0x00000000, 0x0400001b, 0x58140202, 0x80080580, + 0x04020018, 0x58141c07, 0x820c0580, 0x00000005, + 0x04000014, 0x8c5cbd00, 0x04000004, 0x820c0580, + 0x00000007, 0x0400000f, 0x820c0580, 0x00000009, + 0x04000039, 0x5930200a, 0x5814000a, 0x800001c0, + 0x0400000e, 0x82001d80, 0x0010e23c, 0x0400000b, + 0x801021c0, 0x04000003, 0x80100580, 0x04000012, + 0x82142c00, 0x0000002c, 0x41540000, 0x80140480, + 0x0402101e, 0x0401f7da, 0x58140027, 0x801021c0, + 0x04000005, 0x58102002, 0x82102500, 0x00ffffff, + 0x0401f7f2, 0x8c5cbd00, 0x040207f2, 0x59302027, + 0x0401f7ee, 0x40163800, 0x8c5cbd00, 0x04000008, + 0x4c080000, 0x4c140000, 0x0201f800, 0x0010b71c, + 0x5c002800, 0x5c001000, 0x040007e6, 0x591c000a, + 0x800001c0, 0x04020003, 0x5930000a, 0x4802380a, + 0x81300540, 0x0401f00a, 0x8c5cbd00, 0x04000008, + 0x40080800, 0x42023800, 0xffffffff, 0x0201f800, + 0x00104d86, 0x040007f2, 0x80000580, 0x5c00b800, + 0x1c01f000, 0x58141808, 0x8c0c1d10, 0x040207d1, + 0x0401f7c5, 0x4933c857, 0x83300580, 0x00111500, + 0x0402003e, 0x4a026203, 0x00000000, 0x83380580, + 0x00000013, 0x0402002d, 0x59300403, 0x82000580, + 0x00000092, 0x02020800, 0x0010032e, 0x59a80052, + 0x59325809, 0x812e59c0, 0x04000006, 0x812c0580, + 0x02020800, 0x0010032e, 0x592c0000, 0x497a5800, + 0x800001c0, 0x04000005, 0x48035052, 0x0201f800, + 0x00107e2a, 0x0401f003, 0x497b5052, 0x497b5053, + 0x812e59c0, 0x04000020, 0x592c0205, 0x82000580, + 0x00000055, 0x02000000, 0x00100594, 0x83380580, + 0x00000013, 0x04020005, 0x4a025a07, 0x00000000, + 0x0201f000, 0x000203ef, 0x4a025a07, 0x00000031, 0x4a025812, 0x00000004, 0x4a025813, 0x000000ff, - 0x0201f800, 0x000203ef, 0x0201f000, 0x00107cbe, - 0x0010ac92, 0x0010ac99, 0x0010ac99, 0x0010ac92, - 0x0010ac92, 0x0010ac92, 0x0010ac92, 0x0010ac92, - 0x0010ac92, 0x0010ac92, 0x0010ac92, 0x0010ac92, - 0x0010ac92, 0x0010ac94, 0x0201f800, 0x0010032e, - 0x59325809, 0x4a025a07, 0x00000000, 0x0201f800, - 0x000203ef, 0x0201f000, 0x00020b9d, 0x4933c857, - 0x42000000, 0x0010cc33, 0x0201f800, 0x0010bc88, - 0x0201f800, 0x0010b0e3, 0x497a6205, 0x42028000, - 0x0000000b, 0x0401f807, 0x4a026407, 0x00000006, - 0x4a026203, 0x00000007, 0x497a6006, 0x1c01f000, - 0x4933c857, 0x4943c857, 0x59300407, 0x82000580, - 0x00000007, 0x04020002, 0x1c01f000, 0x0201f800, - 0x00106c3c, 0x4df00000, 0x0201f800, 0x00109667, - 0x0400000a, 0x59300809, 0x58040000, 0x80001540, - 0x04000006, 0x49780800, 0x4d2c0000, 0x400a5800, - 0x0401f9a6, 0x5c025800, 0x0201f800, 0x00109330, - 0x82000c80, 0x0000000e, 0x02021800, 0x0010032e, - 0x0c01f001, 0x0010acec, 0x0010acf0, 0x0010acd7, - 0x0010acff, 0x0010ad13, 0x0010acd7, 0x0010acd7, - 0x0010acd7, 0x0010acd7, 0x0010acd7, 0x0010acd7, - 0x0010acd7, 0x0010acd7, 0x0010acd7, 0x4d400000, - 0x59300028, 0x80000540, 0x04000005, 0x41400800, - 0x0201f800, 0x00100b15, 0x40068000, 0x4d2c0000, - 0x59325809, 0x0201f800, 0x00109667, 0x04020983, - 0x4c5c0000, 0x5930b80a, 0x0201f800, 0x00107cbe, - 0x485e600a, 0x5c00b800, 0x5c025800, 0x5c028000, - 0x5c03e000, 0x02000000, 0x00106c29, 0x1c01f000, - 0x598c000f, 0x81300580, 0x04020004, 0x0201f800, - 0x00106f5c, 0x04020018, 0x0201f800, 0x0010fece, - 0x80c40040, 0x040007de, 0x0201f800, 0x00106b47, - 0x04000011, 0x0201f800, 0x0010032e, 0x0201f800, - 0x0010931e, 0x04020004, 0x0201f800, 0x00106f25, - 0x04020009, 0x0201f800, 0x0010fd55, 0x80c40040, - 0x040007cf, 0x0201f800, 0x00106b47, 0x02020800, - 0x0010032e, 0x59300203, 0x82000c80, 0x0000000e, - 0x02021800, 0x0010032e, 0x0c01f7b7, 0x0201f800, - 0x00100c75, 0x0401f7c2, 0x4933c857, 0x4d240000, - 0x4d440000, 0x4d340000, 0x59cc3800, 0x821c3d00, - 0x00ffffff, 0x59cc0007, 0x4c000000, 0x59cc0001, - 0x82000500, 0x00ffffff, 0x82000d80, 0x00fffffe, - 0x5c000000, 0x04020005, 0x801c0d80, 0x0402005d, - 0x42000000, 0x00fffffe, 0x0201f800, 0x00105f68, - 0x02000800, 0x0010497a, 0x04020056, 0x5930001c, - 0x4c000000, 0x0201f800, 0x00104971, 0x4926601c, - 0x5930000a, 0x4c000000, 0x59242c00, 0x8c142d0a, - 0x04020014, 0x81342d80, 0x04000003, 0x42002800, - 0x00000004, 0x58002403, 0x59340c03, 0x59341802, - 0x820c1d00, 0x00ffffff, 0x42003000, 0x00000005, - 0x59cc4008, 0x59cc3809, 0x9c2041c0, 0x9c1c39c0, - 0x42028000, 0x00000046, 0x41301000, 0x0401f941, - 0x4936600a, 0x83440d80, 0x000007fe, 0x04020016, - 0x42003000, 0x0000001a, 0x0201f800, 0x0010b412, - 0x42000000, 0x0010cc20, 0x0201f800, 0x0010bc88, + 0x0201f000, 0x000203ef, 0x83380580, 0x00000027, + 0x04000005, 0x83380580, 0x00000014, 0x02020800, + 0x0010032e, 0x493bc857, 0x0201f800, 0x00106d91, + 0x0401f7ca, 0x1c01f000, 0x4933c857, 0x83380580, + 0x00000013, 0x0402000e, 0x59300403, 0x4803c857, + 0x82000c80, 0x00000085, 0x02001800, 0x0010032e, + 0x82000c80, 0x00000093, 0x02021800, 0x0010032e, + 0x82000480, 0x00000085, 0x0c01f019, 0x83380580, + 0x00000027, 0x04000005, 0x83380580, 0x00000014, + 0x02020000, 0x00107f37, 0x493bc857, 0x0201f800, + 0x00106d91, 0x59325809, 0x812e59c0, 0x02000000, + 0x00107eb4, 0x4a025a07, 0x00000031, 0x4a025812, + 0x00000004, 0x4a025813, 0x000000ff, 0x0201f800, + 0x000203ef, 0x0201f000, 0x00107eb4, 0x0010afa1, + 0x0010afa8, 0x0010afa8, 0x0010afa1, 0x0010afa1, + 0x0010afa1, 0x0010afa1, 0x0010afa1, 0x0010afa1, + 0x0010afa1, 0x0010afa1, 0x0010afa1, 0x0010afa1, + 0x0010afa3, 0x0201f800, 0x0010032e, 0x59325809, + 0x4a025a07, 0x00000000, 0x0201f800, 0x000203ef, + 0x0201f000, 0x00020b9d, 0x4933c857, 0x42000000, + 0x0010cf33, 0x0201f800, 0x0010bfb3, 0x0201f800, + 0x0010b3fa, 0x497a6205, 0x42028000, 0x0000000b, + 0x0401f807, 0x4a026407, 0x00000006, 0x4a026203, + 0x00000007, 0x497a6006, 0x1c01f000, 0x4933c857, + 0x4943c857, 0x59300407, 0x82000580, 0x00000007, + 0x04020002, 0x1c01f000, 0x0201f800, 0x00106e41, + 0x4df00000, 0x0201f800, 0x0010989f, 0x0400000a, + 0x59300809, 0x58040000, 0x80001540, 0x04000006, + 0x49780800, 0x4d2c0000, 0x400a5800, 0x0401f9a6, + 0x5c025800, 0x0201f800, 0x00109564, 0x82000c80, + 0x0000000e, 0x02021800, 0x0010032e, 0x0c01f001, + 0x0010affb, 0x0010afff, 0x0010afe6, 0x0010b00e, + 0x0010b022, 0x0010afe6, 0x0010afe6, 0x0010afe6, + 0x0010afe6, 0x0010afe6, 0x0010afe6, 0x0010afe6, + 0x0010afe6, 0x0010afe6, 0x4d400000, 0x59300028, + 0x80000540, 0x04000005, 0x41400800, 0x0201f800, + 0x00100b16, 0x40068000, 0x4d2c0000, 0x59325809, + 0x0201f800, 0x0010989f, 0x04020983, 0x4c5c0000, + 0x5930b80a, 0x0201f800, 0x00107eb4, 0x485e600a, + 0x5c00b800, 0x5c025800, 0x5c028000, 0x5c03e000, + 0x02000000, 0x00106e2e, 0x1c01f000, 0x598c000f, + 0x81300580, 0x04020004, 0x0201f800, 0x00107161, + 0x04020018, 0x0201f800, 0x001101de, 0x80c40040, + 0x040007de, 0x0201f800, 0x00106d4c, 0x04000011, + 0x0201f800, 0x0010032e, 0x0201f800, 0x00109552, + 0x04020004, 0x0201f800, 0x0010712a, 0x04020009, + 0x0201f800, 0x00110065, 0x80c40040, 0x040007cf, + 0x0201f800, 0x00106d4c, 0x02020800, 0x0010032e, + 0x59300203, 0x82000c80, 0x0000000e, 0x02021800, + 0x0010032e, 0x0c01f7b7, 0x0201f800, 0x00100c76, + 0x0401f7c2, 0x4933c857, 0x4d240000, 0x4d440000, + 0x4d340000, 0x59cc3800, 0x821c3d00, 0x00ffffff, + 0x59cc0007, 0x4c000000, 0x59cc0001, 0x82000500, + 0x00ffffff, 0x82000d80, 0x00fffffe, 0x5c000000, + 0x04020005, 0x801c0d80, 0x0402005d, 0x42000000, + 0x00fffffe, 0x0201f800, 0x00106134, 0x02000800, + 0x00104a7c, 0x04020056, 0x5930001c, 0x4c000000, + 0x0201f800, 0x00104a73, 0x4926601c, 0x5930000a, + 0x4c000000, 0x59242c00, 0x8c142d0a, 0x04020014, + 0x81342d80, 0x04000003, 0x42002800, 0x00000004, + 0x58002403, 0x59340c03, 0x59341802, 0x820c1d00, + 0x00ffffff, 0x42003000, 0x00000005, 0x59cc4008, + 0x59cc3809, 0x9c2041c0, 0x9c1c39c0, 0x42028000, + 0x00000046, 0x41301000, 0x0401f941, 0x4936600a, + 0x83440d80, 0x000007fe, 0x04020016, 0x42003000, + 0x0000001a, 0x0201f800, 0x0010b73d, 0x42000000, + 0x0010cf20, 0x0201f800, 0x0010bfb3, 0x4d3c0000, + 0x4d400000, 0x42028000, 0x00000029, 0x0201f800, + 0x00101fb4, 0x42027800, 0x0000000a, 0x0201f800, + 0x0010200c, 0x5c028000, 0x5c027800, 0x0401f012, + 0x42003000, 0x0000000b, 0x0201f800, 0x0010b73d, + 0x42000000, 0x0010cf20, 0x0201f800, 0x0010bfb3, 0x4d3c0000, 0x4d400000, 0x42028000, 0x00000029, - 0x0201f800, 0x00101f51, 0x42027800, 0x0000000a, - 0x0201f800, 0x00101fa9, 0x5c028000, 0x5c027800, - 0x0401f012, 0x42003000, 0x0000000b, 0x0201f800, - 0x0010b412, 0x42000000, 0x0010cc20, 0x0201f800, - 0x0010bc88, 0x4d3c0000, 0x4d400000, 0x42028000, - 0x00000029, 0x417a7800, 0x0201f800, 0x0010fc72, - 0x5c028000, 0x5c027800, 0x5c000000, 0x4802600a, - 0x5c000000, 0x4802601c, 0x59cc0007, 0x83440d80, - 0x000007fe, 0x04020005, 0x42000000, 0x00fffffe, - 0x4a026c00, 0x00000707, 0x48026802, 0x80000580, - 0x5c026800, 0x5c028800, 0x5c024800, 0x1c01f000, - 0x4933c857, 0x4c040000, 0x59a8005a, 0x82000580, - 0x00000074, 0x04020040, 0x59cc0a08, 0x82040480, - 0x00000100, 0x04001033, 0x59cc0c08, 0x82040500, - 0x00008000, 0x04000035, 0x59a80013, 0x80000540, - 0x04020009, 0x5930100a, 0x58080212, 0x82000500, - 0x0000ff00, 0x04000004, 0x82040500, 0x00000800, - 0x0400002a, 0x59cc0c09, 0x80040840, 0x04001024, - 0x59a80a1b, 0x8c040d06, 0x04000004, 0x59cc0c0f, - 0x8c040d1e, 0x04020012, 0x59cc0a17, 0x800409c0, - 0x04020012, 0x59cc0a18, 0x82040480, 0x00000100, - 0x04001014, 0x59cc0c18, 0x800409c0, 0x0402000e, - 0x59cc0c19, 0x80040840, 0x04001011, 0x59cc0c1a, - 0x80040840, 0x04001011, 0x0401f018, 0x4a02621b, - 0x00000100, 0x0401f012, 0x4a02621b, 0x00000300, - 0x0401f00f, 0x4a02621b, 0x00000500, 0x0401f00c, - 0x4a02621b, 0x00000700, 0x0401f009, 0x4a02621b, - 0x00000900, 0x0401f006, 0x4a02621b, 0x00000f00, - 0x0401f003, 0x4a02621b, 0x00002d00, 0x82000540, - 0x00000001, 0x0401f002, 0x80000580, 0x5c000800, - 0x1c01f000, 0x59cc0407, 0x4803c857, 0x82000580, - 0x00000800, 0x04000003, 0x4a02621b, 0x00000000, - 0x1c01f000, 0x4933c857, 0x4c580000, 0x59cc000c, - 0x59340802, 0x82040d00, 0x00ffffff, 0x80040580, - 0x04020012, 0x83cc1400, 0x00000008, 0x4200b000, + 0x417a7800, 0x0201f800, 0x0010ff80, 0x5c028000, + 0x5c027800, 0x5c000000, 0x4802600a, 0x5c000000, + 0x4802601c, 0x59cc0007, 0x83440d80, 0x000007fe, + 0x04020005, 0x42000000, 0x00fffffe, 0x4a026c00, + 0x00000707, 0x48026802, 0x80000580, 0x5c026800, + 0x5c028800, 0x5c024800, 0x1c01f000, 0x4933c857, + 0x4c040000, 0x59a8005a, 0x82000580, 0x00000074, + 0x04020040, 0x59cc0a08, 0x82040480, 0x00000100, + 0x04001033, 0x59cc0c08, 0x82040500, 0x00008000, + 0x04000035, 0x59a80013, 0x80000540, 0x04020009, + 0x5930100a, 0x58080212, 0x82000500, 0x0000ff00, + 0x04000004, 0x82040500, 0x00000800, 0x0400002a, + 0x59cc0c09, 0x80040840, 0x04001024, 0x59a80a1b, + 0x8c040d06, 0x04000004, 0x59cc0c0f, 0x8c040d1e, + 0x04020012, 0x59cc0a17, 0x800409c0, 0x04020012, + 0x59cc0a18, 0x82040480, 0x00000100, 0x04001014, + 0x59cc0c18, 0x800409c0, 0x0402000e, 0x59cc0c19, + 0x80040840, 0x04001011, 0x59cc0c1a, 0x80040840, + 0x04001011, 0x0401f018, 0x4a02621b, 0x00000100, + 0x0401f012, 0x4a02621b, 0x00000300, 0x0401f00f, + 0x4a02621b, 0x00000500, 0x0401f00c, 0x4a02621b, + 0x00000700, 0x0401f009, 0x4a02621b, 0x00000900, + 0x0401f006, 0x4a02621b, 0x00000f00, 0x0401f003, + 0x4a02621b, 0x00002d00, 0x82000540, 0x00000001, + 0x0401f002, 0x80000580, 0x5c000800, 0x1c01f000, + 0x59cc0407, 0x4803c857, 0x82000580, 0x00000800, + 0x04000003, 0x4a02621b, 0x00000000, 0x1c01f000, + 0x4933c857, 0x4c580000, 0x59cc000c, 0x59340802, + 0x82040d00, 0x00ffffff, 0x80040580, 0x04020012, + 0x83cc1400, 0x00000008, 0x4200b000, 0x00000002, + 0x83341c00, 0x00000006, 0x0201f800, 0x00108c57, + 0x04020009, 0x83cc1400, 0x0000000a, 0x4200b000, + 0x00000002, 0x83341c00, 0x00000008, 0x0201f800, + 0x00108c57, 0x5c00b000, 0x1c01f000, 0x4933c857, + 0x4c580000, 0x83cc1400, 0x0000000b, 0x4200b000, 0x00000002, 0x83341c00, 0x00000006, 0x0201f800, - 0x00108a31, 0x04020009, 0x83cc1400, 0x0000000a, + 0x00108c57, 0x0402000c, 0x83cc1400, 0x0000000d, 0x4200b000, 0x00000002, 0x83341c00, 0x00000008, - 0x0201f800, 0x00108a31, 0x5c00b000, 0x1c01f000, - 0x4933c857, 0x4c580000, 0x83cc1400, 0x0000000b, - 0x4200b000, 0x00000002, 0x83341c00, 0x00000006, - 0x0201f800, 0x00108a31, 0x0402000c, 0x83cc1400, - 0x0000000d, 0x4200b000, 0x00000002, 0x83341c00, - 0x00000008, 0x0201f800, 0x00108a31, 0x04000014, - 0x4933c856, 0x4933c856, 0x4933c857, 0x59340009, - 0x4803c857, 0x5934000e, 0x4803c857, 0x59340008, - 0x4803c857, 0x5934000d, 0x4803c857, 0x59340007, - 0x4803c857, 0x5934000c, 0x4803c857, 0x59340006, - 0x4803c857, 0x5934000b, 0x4803c857, 0x5c00b000, - 0x1c01f000, 0x4933c857, 0x813261c0, 0x0400002d, - 0x83300d80, 0x0011120c, 0x0400002a, 0x8d3e7d06, - 0x04020028, 0x59300c07, 0x82040580, 0x00000001, - 0x0400000a, 0x82040580, 0x00000002, 0x04020021, - 0x59300226, 0x82000580, 0x00000001, 0x0402001d, - 0x59300c17, 0x0401f002, 0x59300c03, 0x82040580, - 0x00000039, 0x04000004, 0x82040580, 0x00000035, - 0x04020014, 0x4d300000, 0x4d1c0000, 0x59326027, - 0x4933c857, 0x0201f800, 0x00109acc, 0x02000800, - 0x0010032e, 0x591c001d, 0x497a381d, 0x591c0c15, - 0x84040d02, 0x48063c15, 0x5c023800, 0x5c026000, - 0x81300580, 0x02020800, 0x0010032e, 0x497a6027, - 0x1c01f000, 0x5c000000, 0x4c000000, 0x4803c857, - 0x4d3c0000, 0x42027800, 0x00000001, 0x0201f800, - 0x001044e6, 0x5c027800, 0x4c580000, 0x4200b000, - 0x00000002, 0x83a81c00, 0x00000002, 0x83cc1400, - 0x0000000b, 0x0201f800, 0x00108a31, 0x5c00b000, - 0x80000540, 0x1c01f000, 0x492fc857, 0x4943c857, - 0x59a8000c, 0x812c0480, 0x04001011, 0x59a8000a, - 0x812c0480, 0x0402100e, 0x592c0000, 0x80005d40, - 0x04000008, 0x497a5800, 0x49425a07, 0x4c2c0000, - 0x0201f800, 0x000203ef, 0x5c025800, 0x0401f7f7, - 0x49425a07, 0x0201f000, 0x000203ef, 0x1c01f000, - 0x42002000, 0x0000ffff, 0x5930100a, 0x800811c0, - 0x04000002, 0x58082403, 0x41301000, 0x0401f009, - 0x40682800, 0x406c3000, 0x41781000, 0x41442000, - 0x0401f004, 0x41781000, 0x42002000, 0x0000ffff, - 0x5c000000, 0x4c000000, 0x4803c857, 0x480bc857, - 0x4813c857, 0x492fc857, 0x4943c857, 0x4d2c0000, - 0x4c040000, 0x4c080000, 0x4c0c0000, 0x4c100000, - 0x4c140000, 0x4c180000, 0x4c1c0000, 0x4c200000, - 0x0201f800, 0x00100583, 0x02000800, 0x0010032e, - 0x5c004000, 0x5c003800, 0x5c003000, 0x5c002800, - 0x5c002000, 0x5c001800, 0x5c001000, 0x5c000800, - 0x4a025805, 0x0000010d, 0x800811c0, 0x04000017, - 0x83400580, 0x00000029, 0x04020010, 0x82180580, - 0x00000002, 0x0400000a, 0x82180580, 0x00000003, - 0x04000007, 0x82180580, 0x00000008, 0x04000004, - 0x82180580, 0x00000009, 0x04020004, 0x4a02580a, - 0xffffffff, 0x0401f002, 0x480a580a, 0x58080202, - 0x48025c14, 0x0401f005, 0x4a02580a, 0xffffffff, - 0x4a025c14, 0x0000ffff, 0x83400580, 0x00000046, - 0x04000002, 0x41782800, 0x480e580d, 0x4806580e, - 0x4822580f, 0x481e5810, 0x48165a08, 0x481a5c09, - 0x49425a09, 0x48125a07, 0x82100580, 0x0000ffff, - 0x04000014, 0x4d440000, 0x4d340000, 0x40128800, - 0x83440480, 0x000007f0, 0x04001004, 0x0201f800, - 0x0010497a, 0x0401f003, 0x0201f800, 0x0002034c, - 0x02020800, 0x0010032e, 0x59340002, 0x82000500, - 0x00ffffff, 0x48025813, 0x5c026800, 0x5c028800, - 0x497a5800, 0x497a5c05, 0x812000d0, 0x48025c11, - 0x0201f800, 0x0010b349, 0x5c025800, 0x1c01f000, - 0x5c000000, 0x4c000000, 0x4803c857, 0x480bc857, - 0x480fc857, 0x4813c857, 0x4817c857, 0x4d2c0000, + 0x0201f800, 0x00108c57, 0x04000014, 0x4933c856, + 0x4933c856, 0x4933c857, 0x59340009, 0x4803c857, + 0x5934000e, 0x4803c857, 0x59340008, 0x4803c857, + 0x5934000d, 0x4803c857, 0x59340007, 0x4803c857, + 0x5934000c, 0x4803c857, 0x59340006, 0x4803c857, + 0x5934000b, 0x4803c857, 0x5c00b000, 0x1c01f000, + 0x4933c857, 0x813261c0, 0x0400002d, 0x83300d80, + 0x0011152c, 0x0400002a, 0x8d3e7d06, 0x04020028, + 0x59300c07, 0x82040580, 0x00000001, 0x0400000a, + 0x82040580, 0x00000002, 0x04020021, 0x59300226, + 0x82000580, 0x00000001, 0x0402001d, 0x59300c17, + 0x0401f002, 0x59300c03, 0x82040580, 0x00000039, + 0x04000004, 0x82040580, 0x00000035, 0x04020014, + 0x4d300000, 0x4d1c0000, 0x59326027, 0x4933c857, + 0x0201f800, 0x00109d04, 0x02000800, 0x0010032e, + 0x591c001d, 0x497a381d, 0x591c0c15, 0x84040d02, + 0x48063c15, 0x5c023800, 0x5c026000, 0x81300580, + 0x02020800, 0x0010032e, 0x497a6027, 0x1c01f000, + 0x5c000000, 0x4c000000, 0x4803c857, 0x4d3c0000, + 0x42027800, 0x00000001, 0x0201f800, 0x001045df, + 0x5c027800, 0x4c580000, 0x4200b000, 0x00000002, + 0x83a81c00, 0x00000002, 0x83cc1400, 0x0000000b, + 0x0201f800, 0x00108c57, 0x5c00b000, 0x80000540, + 0x1c01f000, 0x492fc857, 0x4943c857, 0x59a8000c, + 0x812c0480, 0x04001011, 0x59a8000a, 0x812c0480, + 0x0402100e, 0x592c0000, 0x80005d40, 0x04000008, + 0x497a5800, 0x49425a07, 0x4c2c0000, 0x0201f800, + 0x000203ef, 0x5c025800, 0x0401f7f7, 0x49425a07, + 0x0201f000, 0x000203ef, 0x1c01f000, 0x42002000, + 0x0000ffff, 0x5930100a, 0x800811c0, 0x04000002, + 0x58082403, 0x41301000, 0x0401f009, 0x40682800, + 0x406c3000, 0x41781000, 0x41442000, 0x0401f004, + 0x41781000, 0x42002000, 0x0000ffff, 0x5c000000, + 0x4c000000, 0x4803c857, 0x480bc857, 0x4813c857, + 0x492fc857, 0x4943c857, 0x4d2c0000, 0x4c040000, 0x4c080000, 0x4c0c0000, 0x4c100000, 0x4c140000, - 0x0201f800, 0x00100583, 0x02000800, 0x0010032e, - 0x5c002800, 0x5c002000, 0x5c001800, 0x5c001000, - 0x04011000, 0x832c0400, 0x00000005, 0x4803c840, - 0x4a03c842, 0x00000010, 0x40000000, 0x040117ff, - 0x4a025805, 0x0000010d, 0x4a025a09, 0x00000049, - 0x480a5a0b, 0x480e5c0b, 0x48125a0c, 0x48165c0c, - 0x82080580, 0x00008014, 0x04020068, 0x820c0580, - 0x0000ffff, 0x04020065, 0x82100580, 0x00000006, - 0x04020062, 0x4d240000, 0x42024800, 0x0010ccd1, - 0x59240005, 0x5c024800, 0x0201f800, 0x00104fc6, - 0x04000009, 0x82000d00, 0x00ffff00, 0x04020006, - 0x82000c00, 0x00102057, 0x50040800, 0x80040910, - 0x48065a0d, 0x82000d00, 0x0000ffff, 0x48065c0d, - 0x80000120, 0x48025a0e, 0x59a8021b, 0x82001500, - 0x00003500, 0x480a5a0f, 0x8c000502, 0x0400001f, - 0x8c000506, 0x04000009, 0x82000d00, 0x0000000a, - 0x82040d80, 0x0000000a, 0x04020004, 0x4a025c0e, - 0x00000001, 0x0401f022, 0x8c00050a, 0x04000009, - 0x82000d00, 0x00000022, 0x82040d80, 0x00000022, - 0x04020004, 0x4a025c0e, 0x00000003, 0x0401f018, - 0x8c000508, 0x04000009, 0x82000d00, 0x00000012, - 0x82040d80, 0x00000012, 0x04020004, 0x4a025c0e, - 0x00000002, 0x0401f00e, 0x0201f800, 0x00104fc6, - 0x04020004, 0x4a025c0e, 0x00000004, 0x0401f008, - 0x8c000506, 0x04000004, 0x4a025c0e, 0x00000005, - 0x0401f003, 0x4a025c0e, 0x00000000, 0x59a8002a, - 0x48025c0f, 0x59a8002b, 0x48025a10, 0x59c40801, - 0x82040d00, 0x00018000, 0x82040580, 0x00000000, - 0x04020004, 0x4a025c10, 0x00000000, 0x0401f00f, - 0x82040580, 0x00008000, 0x04020004, 0x4a025c10, - 0x00000001, 0x0401f009, 0x82040580, 0x00010000, - 0x04020004, 0x4a025c10, 0x00000003, 0x0401f003, - 0x4a025c10, 0x00000004, 0x0401fbcb, 0x5c025800, - 0x1c01f000, 0x0401f807, 0x42018800, 0x00000001, - 0x04000003, 0x42018800, 0x00000000, 0x1c01f000, - 0x5930080a, 0x800409c0, 0x04000004, 0x58040403, - 0x81440580, 0x1c01f000, 0x82000540, 0x00000001, - 0x0401f7fd, 0x4933c857, 0x4c040000, 0x59300403, - 0x82000d80, 0x0000001e, 0x04020016, 0x800000d0, - 0x59300a17, 0x82040d00, 0x000000ff, 0x80040540, - 0x4803c857, 0x48026417, 0x4a026403, 0x00000085, - 0x4a026203, 0x00000009, 0x4a026407, 0x00000005, - 0x4a026226, 0x00000004, 0x59a8002b, 0x48026006, - 0x42000800, 0x8000004b, 0x0201f800, 0x00020b3e, - 0x5c000800, 0x1c01f000, 0x4933c857, 0x40000000, - 0x40000000, 0x1c01f000, 0x59300415, 0x4933c857, - 0x4803c857, 0x8c000518, 0x04000009, 0x8c000512, - 0x02020000, 0x001098a4, 0x0401f929, 0x0201f800, - 0x00020afd, 0x0201f800, 0x00020b9d, 0x1c01f000, - 0x591c0407, 0x4803c857, 0x82000c80, 0x00000009, - 0x0402100b, 0x0c01f001, 0x0010afcf, 0x0010afcf, - 0x0010afcf, 0x0010afd1, 0x0010afcf, 0x0010afd1, - 0x0010afd1, 0x0010afcf, 0x0010afd1, 0x80000580, - 0x1c01f000, 0x82000540, 0x00000001, 0x1c01f000, - 0x591c0407, 0x82000500, 0x0000001f, 0x82000580, - 0x00000006, 0x0400000e, 0x4803c857, 0x4a026403, - 0x0000003b, 0x4a02641b, 0x00000009, 0x4a02621b, - 0x00002a00, 0x4a026203, 0x00000001, 0x42000800, - 0x80000040, 0x0201f000, 0x00020b3e, 0x4803c856, - 0x4c040000, 0x4c140000, 0x4d300000, 0x411e6000, - 0x0401f8f7, 0x497a6205, 0x59300415, 0x4803c857, - 0x82000500, 0xffffadff, 0x48026415, 0x497a6405, - 0x5c026000, 0x0201f800, 0x00100583, 0x02000800, - 0x0010032e, 0x5c002800, 0x5c000800, 0x4a025805, - 0x0000010d, 0x497a5800, 0x497a5c05, 0x4a025a09, - 0x00000045, 0x491e580a, 0x59300402, 0x48025c08, - 0x5930041a, 0x48025c0c, 0x591c0415, 0x84000556, - 0x48023c15, 0x591c180a, 0x580c0403, 0x48025a07, - 0x580c0002, 0x82000500, 0x00ffffff, 0x48025813, - 0x59cc0404, 0x48025c14, 0x497a5a08, 0x4816580b, - 0x48065a0c, 0x580c0013, 0x82000500, 0xff000000, - 0x80000120, 0x48025c11, 0x0401fb2f, 0x493a6403, - 0x4d400000, 0x42028000, 0x00000045, 0x591c0202, - 0x4c000000, 0x4d300000, 0x411e6000, 0x0401fc89, - 0x5c026000, 0x5c000000, 0x48023a02, 0x5c028000, - 0x491e6027, 0x4932381d, 0x4a023c07, 0x00000006, - 0x4a023a03, 0x00000007, 0x497a3806, 0x497a3a05, - 0x1c01f000, 0x4933c857, 0x83380580, 0x00000013, - 0x0402000b, 0x59300403, 0x4803c857, 0x82000d80, - 0x00000085, 0x0400002b, 0x82000d80, 0x0000008b, - 0x04000028, 0x0201f800, 0x0010032e, 0x83380580, - 0x00000027, 0x0402000c, 0x0201f800, 0x00106b8c, - 0x4d2c0000, 0x4d400000, 0x59325809, 0x42028000, - 0x00000004, 0x0401fe1d, 0x5c028000, 0x5c025800, - 0x1c01f000, 0x83380580, 0x00000014, 0x040007f3, - 0x83380580, 0x00000089, 0x04000005, 0x83380580, - 0x0000008a, 0x02020000, 0x00107d3d, 0x0201f800, - 0x00107021, 0x02020000, 0x00107d3d, 0x59300a03, - 0x82040580, 0x0000000a, 0x04000009, 0x82040580, - 0x0000000c, 0x04000006, 0x0201f800, 0x0010032e, - 0x4a026203, 0x0000000a, 0x1c01f000, 0x83380480, - 0x00000093, 0x0402100c, 0x83380480, 0x00000085, - 0x04001009, 0x83380580, 0x00000089, 0x0400000a, - 0x83380580, 0x0000008a, 0x04000024, 0x0201f800, - 0x0010032e, 0x493bc857, 0x4933c857, 0x0201f000, - 0x00107d3d, 0x4933c857, 0x4c340000, 0x41306800, - 0x0201f800, 0x00107cfe, 0x04000013, 0x4a026203, - 0x00000001, 0x4a026403, 0x0000001e, 0x59cc0c07, - 0x4806641a, 0x59cc0a07, 0x4806621a, 0x5834080a, - 0x4806600a, 0x5834081c, 0x4806601c, 0x4a026407, - 0x00000004, 0x42000800, 0x80000040, 0x0201f800, - 0x00020b3e, 0x40366000, 0x0201f800, 0x00020b9d, - 0x5c006800, 0x1c01f000, 0x4933c857, 0x0201f000, - 0x00020b9d, 0x5930080a, 0x58040200, 0x8c00051a, - 0x02020800, 0x001003f5, 0x1c01f000, 0x0201f800, - 0x00104842, 0x0400001e, 0x4a026203, 0x00000002, - 0x59300415, 0x84000558, 0x48026415, 0x8c000512, - 0x04000004, 0x59a8002c, 0x48026205, 0x0401f007, - 0x59a8082c, 0x59a8002a, 0x80040400, 0x82000400, - 0x0000001e, 0x48026205, 0x5930000a, 0x82000c00, - 0x00000011, 0x50040000, 0x80000540, 0x04000004, - 0x82000c00, 0x00000000, 0x0401f7fb, 0x45300800, - 0x497a6000, 0x82000540, 0x00000001, 0x1c01f000, - 0x82100500, 0xfffffeef, 0x0402001c, 0x4d2c0000, - 0x4937c857, 0x59340811, 0x83341400, 0x00000011, - 0x800409c0, 0x0400000e, 0x40040000, 0x81300580, - 0x04000005, 0x82041400, 0x00000000, 0x58040800, - 0x0401f7f8, 0x59300800, 0x497a6000, 0x44041000, - 0x0201f800, 0x00020afd, 0x0401f002, 0x4933c857, - 0x5c025800, 0x492e6009, 0x0201f800, 0x00020afd, - 0x0201f000, 0x00020b9d, 0x492fc857, 0x4a025a07, - 0x00000006, 0x0201f000, 0x000203ef, 0x4c340000, - 0x5930000a, 0x800001c0, 0x04000011, 0x82006c00, - 0x00000011, 0x50340000, 0x80000540, 0x0400000a, - 0x81300580, 0x04000005, 0x50340000, 0x82006c00, - 0x00000000, 0x0401f7f8, 0x59300000, 0x44006800, - 0x497a6000, 0x5c006800, 0x1c01f000, 0x59300c07, - 0x82040580, 0x00000005, 0x040007fb, 0x82040580, - 0x00000011, 0x040007f8, 0x82040580, 0x00000006, - 0x040007f5, 0x82040580, 0x00000001, 0x040007f2, - 0x0201f800, 0x0010032e, 0x4933c857, 0x4c080000, - 0x4c0c0000, 0x4c580000, 0x59a81018, 0x59cc1807, - 0x820c1d00, 0x00ffffff, 0x800c0110, 0x80083580, - 0x04020014, 0x83cc1400, 0x00000008, 0x4200b000, - 0x00000002, 0x5930000a, 0x82001c00, 0x00000006, - 0x0201f800, 0x00108a31, 0x0402000a, 0x83cc1400, - 0x0000000a, 0x4200b000, 0x00000002, 0x5930000a, - 0x82001c00, 0x00000008, 0x0201f800, 0x00108a31, - 0x5c00b000, 0x5c001800, 0x5c001000, 0x1c01f000, - 0x4933c856, 0x493a6403, 0x0201f800, 0x00104122, - 0x0201f000, 0x00101df2, 0x493bc857, 0x4d2c0000, - 0x0201f800, 0x00100583, 0x02000800, 0x0010032e, - 0x832cac00, 0x00000006, 0x4c580000, 0x4c540000, - 0x4200b000, 0x00000006, 0x4578a800, 0x8054a800, - 0x8058b040, 0x040207fd, 0x83380580, 0x00000046, - 0x04020004, 0x4a025805, 0x00000144, 0x0401f008, - 0x4a025805, 0x00000146, 0x83380580, 0x00000041, - 0x04000003, 0x4a025a07, 0x00000001, 0x59cc0007, - 0x82000500, 0xff000000, 0x80000110, 0x59cc1008, - 0x82081500, 0xff000000, 0x80081540, 0x480a580b, - 0x83380580, 0x00000046, 0x04020006, 0x59cc0007, - 0x82000500, 0x00ffffff, 0x4802580c, 0x0401f005, - 0x59cc0008, 0x82000500, 0x00ffffff, 0x4802580c, - 0x83380580, 0x00000046, 0x04020004, 0x83cc1400, - 0x00000009, 0x0401f003, 0x83cc1400, 0x0000000d, - 0x50080000, 0x9c0001c0, 0x4802580d, 0x80081000, - 0x50080000, 0x9c0001c0, 0x4802580e, 0x83380580, - 0x00000046, 0x04020008, 0x59cc000b, 0x9c0001c0, - 0x4802580f, 0x59cc000c, 0x9c0001c0, 0x48025810, - 0x0401f007, 0x59cc000f, 0x9c0001c0, 0x4802580f, - 0x59cc0010, 0x9c0001c0, 0x48025810, 0x83380580, - 0x00000046, 0x04020004, 0x83cc1400, 0x00000011, - 0x0401f003, 0x83cc1400, 0x00000015, 0x412c3000, - 0x82183400, 0x00000011, 0x4200b000, 0x00000004, - 0x50080000, 0x9c0001c0, 0x44003000, 0x80081000, - 0x80183000, 0x8058b040, 0x040207fa, 0x5c00a800, - 0x5c00b000, 0x0201f800, 0x000203ef, 0x5c025800, - 0x1c01f000, 0x4933c857, 0x492fc857, 0x5930080a, - 0x58040200, 0x8c00051e, 0x04000004, 0x592c0209, - 0x84000558, 0x48025a09, 0x1c01f000, 0x59e0180f, - 0x599c0413, 0x800c1000, 0x80080580, 0x04020002, - 0x41781000, 0x59e00010, 0x59e00810, 0x80040d80, - 0x040207fd, 0x80080580, 0x0400000b, 0x4c080000, - 0x599c0814, 0x599c1015, 0x800c00cc, 0x80040c00, - 0x82081440, 0x00000000, 0x5c001800, 0x82000540, - 0x00000001, 0x4803c857, 0x1c01f000, 0x59300203, - 0x4933c857, 0x4937c857, 0x493bc857, 0x4803c857, - 0x82003480, 0x0000000e, 0x02021800, 0x0010032e, - 0x0c01f001, 0x0010b1d3, 0x0010b2f6, 0x0010b1d3, - 0x0010b1d3, 0x0010b1d3, 0x0010b1d3, 0x0010b1d3, - 0x0010b250, 0x0010b1d5, 0x0010b1d3, 0x0010b1d3, - 0x0010b1d3, 0x0010b1d3, 0x0010b1d3, 0x0201f800, - 0x0010032e, 0x83380580, 0x0000004c, 0x02020800, - 0x0010032e, 0x0201f800, 0x00104856, 0x04020023, - 0x59a80a1b, 0x5932481c, 0x59240200, 0x82000500, - 0x000000e0, 0x82000580, 0x00000080, 0x0400001b, - 0x8c040d12, 0x04000032, 0x59cc0806, 0x82040d00, - 0xff000000, 0x82040580, 0x03000000, 0x04000020, - 0x82040580, 0x50000000, 0x04000005, 0x82040580, - 0x52000000, 0x02020000, 0x00020b9d, 0x813669c0, - 0x04000007, 0x497a6027, 0x4d3c0000, 0x417a7800, - 0x0201f800, 0x0010fc72, 0x5c027800, 0x4a026403, - 0x00000001, 0x0401f014, 0x59cc0806, 0x82040d00, - 0xff000000, 0x82040580, 0x03000000, 0x04000008, - 0x82040580, 0x50000000, 0x04000005, 0x82040580, - 0x52000000, 0x02020000, 0x00020b9d, 0x4a026403, - 0x00000009, 0x4a02641b, 0x00000009, 0x4a02621b, - 0x00000000, 0x4a026407, 0x00000004, 0x4a026203, - 0x00000001, 0x0201f000, 0x00106b17, 0x59240400, - 0x8c00050a, 0x04020020, 0x59cc0806, 0x4807c857, - 0x82040d00, 0xff000000, 0x82040580, 0x03000000, - 0x04000013, 0x82040580, 0x20000000, 0x04000010, - 0x82040580, 0x21000000, 0x0400000d, 0x82040580, - 0x24000000, 0x0400000a, 0x82040580, 0x50000000, - 0x04000007, 0x82040580, 0x52000000, 0x04000004, - 0x82040580, 0x05000000, 0x0402000a, 0x9c0431c0, - 0x42028000, 0x00000046, 0x42002800, 0x00000001, - 0x0401fc44, 0x0401f91c, 0x02000800, 0x0010032e, - 0x42002000, 0x00000051, 0x0201f800, 0x00107e13, - 0x59cc0000, 0x82000500, 0x00ffffff, 0x82000580, - 0x00ffffff, 0x04000005, 0x4a026203, 0x00000007, - 0x493a6403, 0x1c01f000, 0x59325818, 0x812e59c0, - 0x02020800, 0x0010059d, 0x0201f000, 0x00020b9d, - 0x4d2c0000, 0x4c580000, 0x4c500000, 0x4c540000, - 0x41385000, 0x83380580, 0x00000054, 0x02020800, - 0x0010032e, 0x59325809, 0x592c0c0c, 0x82040d00, - 0x0000e000, 0x82040580, 0x00002000, 0x04020081, - 0x59300818, 0x800409c0, 0x04000016, 0x58041405, - 0x41cca800, 0x8204a400, 0x00000006, 0x82080480, - 0x00000010, 0x04021005, 0x4008b000, 0x0201f800, - 0x0010bd5b, 0x0401f00b, 0x40001000, 0x4200b000, - 0x0000000f, 0x0201f800, 0x0010bd5b, 0x58040801, - 0x800409c0, 0x040207f0, 0x0201f800, 0x0010032e, - 0x813669c0, 0x04000067, 0x59344c00, 0x592c0c0a, - 0x4807c857, 0x4827c857, 0x82040d00, 0x000000ff, - 0x82040580, 0x00000003, 0x0400002a, 0x82040580, - 0x00000005, 0x04000033, 0x82040580, 0x00000020, - 0x0400003f, 0x82040580, 0x00000052, 0x0400004b, - 0x82040580, 0x00000050, 0x0400004b, 0x82040580, - 0x00000021, 0x04000004, 0x82040580, 0x00000024, - 0x0402004c, 0x82240500, 0x0000ff00, 0x82000580, - 0x00000700, 0x04000008, 0x42000800, 0x00000009, - 0x0201f800, 0x001044f1, 0x42005000, 0x0000000c, - 0x0401f040, 0x4a025a07, 0x00000031, 0x4a02580e, - 0x00000009, 0x59340400, 0x4802580f, 0x0201f800, - 0x000203ef, 0x0201f800, 0x00107cbe, 0x0401f046, - 0x0201f800, 0x001041e4, 0x41780800, 0x0201f800, - 0x001045e8, 0x42000800, 0x00000003, 0x0201f800, - 0x001044f1, 0x42005000, 0x00000008, 0x0401f029, - 0x59cc3800, 0x821c3d00, 0x00ffffff, 0x4c1c0000, - 0x0201f800, 0x00101f66, 0x5c003800, 0x04020021, - 0x59cc0007, 0x0201f800, 0x0010620a, 0x0402001d, - 0x0201f800, 0x001041e4, 0x0401f01a, 0x82240500, - 0x0000ff00, 0x82000580, 0x00000700, 0x040007d6, - 0x82240500, 0x000000ff, 0x82000580, 0x00000009, - 0x040007d1, 0x0201f800, 0x00104652, 0x42005000, - 0x0000000a, 0x0401f00b, 0x42005000, 0x0000000e, - 0x0401f003, 0x42005000, 0x00000010, 0x82240500, - 0x0000ff00, 0x82000580, 0x00000700, 0x040007c2, - 0x482a6403, 0x4a026203, 0x00000001, 0x592c000e, - 0x48026012, 0x497a6014, 0x59a8002b, 0x48026006, - 0x417a7800, 0x0201f800, 0x00106b17, 0x59325818, - 0x812e59c0, 0x04000004, 0x0201f800, 0x0010059d, - 0x497a6018, 0x5c00a800, 0x5c00a000, 0x5c00b000, - 0x5c025800, 0x1c01f000, 0x4d2c0000, 0x59325809, - 0x83380580, 0x00000013, 0x0402002a, 0x492fc857, - 0x59300c03, 0x82040580, 0x00000054, 0x0400001e, - 0x82040580, 0x00000010, 0x04000018, 0x82040580, - 0x0000000e, 0x04000015, 0x82040580, 0x00000008, - 0x0400000d, 0x82040580, 0x0000000c, 0x0400000a, - 0x82040580, 0x0000000a, 0x02020800, 0x0010032e, - 0x42000800, 0x00000006, 0x0201f800, 0x001044f1, - 0x0401f009, 0x42000800, 0x00000004, 0x0201f800, - 0x001044f1, 0x0401f004, 0x59340200, 0x8400051a, - 0x48026a00, 0x4a025a07, 0x00000000, 0x0201f800, - 0x000203ef, 0x0201f800, 0x00020b9d, 0x0401f024, - 0x83380580, 0x00000027, 0x0400000f, 0x83380580, - 0x00000014, 0x02020800, 0x0010032e, 0x492fc857, - 0x0201f800, 0x00106b8c, 0x42028000, 0x00000031, - 0x42000800, 0x00000004, 0x42001000, 0x000000ff, - 0x0401f00a, 0x492fc857, 0x0201f800, 0x00106b8c, - 0x42028000, 0x00000031, 0x42000800, 0x00000004, - 0x42001000, 0x00000010, 0x49425a07, 0x4806580e, - 0x480a580f, 0x0201f800, 0x000203ef, 0x0201f800, - 0x00104bb9, 0x0201f800, 0x00107cbe, 0x5c025800, - 0x1c01f000, 0x492fc857, 0x42007000, 0x00020cf0, - 0x58380806, 0x492c7006, 0x800409c0, 0x04020004, - 0x492c7007, 0x0201f000, 0x00020026, 0x492c0800, - 0x1c01f000, 0x4d2c0000, 0x4c580000, 0x4c500000, - 0x4c540000, 0x4933c857, 0x4937c857, 0x59cc0806, - 0x4807c857, 0x82040d00, 0xff000000, 0x82040580, - 0x03000000, 0x0400000d, 0x82040580, 0x05000000, - 0x0400000a, 0x82040580, 0x21000000, 0x04000032, - 0x82040580, 0x24000000, 0x0400002f, 0x82040580, - 0x20000000, 0x04020031, 0x0201f800, 0x00100583, - 0x0400002e, 0x492fc857, 0x492e6018, 0x59a8b05a, - 0x8258b400, 0x0000001b, 0x8258b500, 0xfffffffc, - 0x8058b104, 0x485a5c05, 0x412c7800, 0x41cca000, - 0x82580480, 0x00000010, 0x04021006, 0x832cac00, - 0x00000006, 0x0201f800, 0x0010bd5b, 0x0401f016, - 0x40580800, 0x4200b000, 0x0000000f, 0x832cac00, - 0x00000006, 0x0201f800, 0x0010bd5b, 0x8204b480, - 0x0000000f, 0x0201f800, 0x00100583, 0x04000004, - 0x492c7801, 0x412c7800, 0x0401f7ea, 0x59325818, - 0x0201f800, 0x0010059d, 0x497a6018, 0x80000580, - 0x0401f006, 0x59340200, 0x84000554, 0x48026a00, - 0x82000540, 0x00000001, 0x5c00a800, 0x5c00a000, - 0x5c00b000, 0x5c025800, 0x1c01f000, 0x4933c857, - 0x492fc857, 0x4d2c0000, 0x59300a03, 0x82040580, - 0x00000007, 0x04000037, 0x82040580, 0x00000001, - 0x02020800, 0x0010032e, 0x0201f800, 0x00106c3c, - 0x4df00000, 0x598c000f, 0x81300580, 0x04020016, - 0x59300004, 0x8c000520, 0x04000004, 0x84000520, - 0x48026004, 0x0401f016, 0x42001000, 0x0010cb5b, - 0x50081000, 0x58080002, 0x82000580, 0x00000100, - 0x04000006, 0x5808000b, 0x81300580, 0x02020800, - 0x0010032e, 0x0401f00a, 0x0201f800, 0x00106f5c, - 0x04020021, 0x59300004, 0x8c000520, 0x04000004, - 0x84000520, 0x48026004, 0x0401f004, 0x0201f800, - 0x0010fece, 0x80c40040, 0x5c03e000, 0x02000800, - 0x00106c29, 0x0201f800, 0x00109667, 0x02000800, - 0x0010032e, 0x59325809, 0x4a025a07, 0x00000005, - 0x0201f800, 0x000203ef, 0x0201f800, 0x00104bb9, - 0x59325818, 0x812e59c0, 0x02020800, 0x0010059d, - 0x0201f800, 0x00107cbe, 0x80000580, 0x5c025800, - 0x1c01f000, 0x5c03e000, 0x02000800, 0x00106c29, - 0x59300c07, 0x82040580, 0x00000011, 0x040007b7, - 0x0401f7f7, 0x4c040000, 0x59340200, 0x4803c857, - 0x8c00051c, 0x04000009, 0x59cc0805, 0x591c001a, - 0x4803c857, 0x80040580, 0x04000004, 0x80000580, - 0x4803c856, 0x0401f003, 0x82000540, 0x00000001, - 0x5c000800, 0x1c01f000, 0x4c000000, 0x4c0c0000, - 0x4c100000, 0x42001800, 0x0000ffff, 0x42002000, - 0x00000004, 0x0401f013, 0x4c000000, 0x4c0c0000, - 0x4c100000, 0x5930200a, 0x58101c03, 0x42002000, - 0x00000004, 0x0401f00b, 0x4c000000, 0x4c0c0000, - 0x4c100000, 0x5930200a, 0x801021c0, 0x02000800, - 0x0010032e, 0x58101c03, 0x42002000, 0x00000007, - 0x480fc857, 0x4813c857, 0x481bc857, 0x0201f800, - 0x00101f51, 0x0201f800, 0x00103931, 0x5c002000, - 0x5c001800, 0x5c000000, 0x1c01f000, 0x8d0e1d20, - 0x0400000c, 0x4d400000, 0x4d200000, 0x42024000, - 0x000000ff, 0x850e1d44, 0x42028000, 0x0000002a, - 0x0201f800, 0x0010ae89, 0x5c024000, 0x5c028000, - 0x1c01f000, 0x59a8021b, 0x8c000508, 0x04000005, - 0x599c0017, 0x8c00050a, 0x04020002, 0x1c01f000, - 0x82000540, 0x00000001, 0x1c01f000, 0x59300429, - 0x84000540, 0x48026429, 0x1c01f000, 0x4c640000, - 0x0201f800, 0x00109a94, 0x59300203, 0x82000580, - 0x00000008, 0x04020015, 0x4200c800, 0x00000032, - 0x42000000, 0x20000000, 0x41300800, 0x0201f800, - 0x001008c9, 0x0400000d, 0x59300203, 0x82000580, - 0x00000008, 0x04020009, 0x42000000, 0x0000001e, - 0x80000040, 0x040207ff, 0x8064c840, 0x040207f1, - 0x0201f800, 0x0010032e, 0x0201f800, 0x00109aac, - 0x5c00c800, 0x1c01f000, 0x0201f800, 0x00100583, - 0x02000800, 0x0010032e, 0x59340403, 0x49265802, - 0x49365803, 0x4a025a05, 0x00000055, 0x48025c07, - 0x4a025c08, 0x00001000, 0x59340802, 0x82040d00, - 0x00ffffff, 0x59300403, 0x82000580, 0x00000086, - 0x42000000, 0x85000000, 0x04020003, 0x42000000, - 0x84000000, 0x80040540, 0x4802580a, 0x59240005, - 0x4802580b, 0x42000000, 0x00990000, 0x59300c07, - 0x82040d80, 0x00000005, 0x04000002, 0x8400052e, - 0x4802580c, 0x497a580d, 0x59cc0004, 0x4802580e, - 0x497a580f, 0x42000800, 0x00030300, 0x59300403, - 0x82000580, 0x00000086, 0x04020006, 0x59cc0004, - 0x48025811, 0x4a025812, 0x0000ffff, 0x41780800, - 0x48065810, 0x1c01f000, 0x492fc857, 0x59a82852, - 0x801429c0, 0x0400005f, 0x4c5c0000, 0x4c600000, - 0x4c640000, 0x4d2c0000, 0x4d300000, 0x42026000, - 0x001111e0, 0x592c0c07, 0x592c100a, 0x82081500, - 0x00ffffff, 0x592c180b, 0x592c200e, 0x40165800, - 0x4014c000, 0x4014c800, 0x592c0205, 0x82000580, - 0x00000155, 0x0402003e, 0x592c0407, 0x80040580, - 0x0402003b, 0x592c000a, 0x82000500, 0x00ffffff, - 0x80080580, 0x04020036, 0x592c000b, 0x82000500, - 0x00ffffff, 0x800c0580, 0x04020031, 0x592c000e, - 0x80100580, 0x0402002e, 0x4c040000, 0x4c080000, - 0x4c0c0000, 0x4c100000, 0x40640000, 0x812c0580, - 0x0402001b, 0x59300203, 0x82000580, 0x00000000, - 0x04000013, 0x59300009, 0x800001c0, 0x04000010, - 0x0201f800, 0x00106c3c, 0x4df00000, 0x0201f800, - 0x00106b26, 0x0201f800, 0x0010fe38, 0x80c40040, - 0x04020003, 0x4a026203, 0x00000000, 0x5c03e000, - 0x02000800, 0x00106c29, 0x497a6009, 0x592cc800, - 0x4064c000, 0x4064b800, 0x0401f003, 0x592cb800, - 0x485cc000, 0x4a025a07, 0x00000005, 0x0201f800, - 0x000203ef, 0x405e5800, 0x5c002000, 0x5c001800, - 0x5c001000, 0x5c000800, 0x0401f003, 0x412cc000, - 0x592e5800, 0x812e59c0, 0x040207bc, 0x48675052, - 0x48635053, 0x0201f800, 0x00107c34, 0x5c026000, - 0x5c025800, 0x5c00c800, 0x5c00c000, 0x5c00b800, - 0x1c01f000, 0x42000800, 0x0000000b, 0x0401f006, - 0x42000800, 0x00000004, 0x0401f003, 0x42000800, - 0x00000001, 0x4d2c0000, 0x59325809, 0x812e59c0, - 0x04000012, 0x592c0205, 0x82000500, 0x000000ff, - 0x82000580, 0x0000000e, 0x0402000c, 0x592c0000, - 0x48026009, 0x497a5800, 0x48065a09, 0x0201f800, - 0x00105b84, 0x04000003, 0x0401fe37, 0x0401f003, - 0x0201f800, 0x000203ef, 0x5c025800, 0x1c01f000, - 0x42001000, 0x00001000, 0x80081040, 0x04000010, - 0x0201f800, 0x0010bdab, 0x040007fc, 0x42001000, - 0x00007b00, 0x5808081c, 0x4a030000, 0x00000000, - 0x82040d00, 0xffff0000, 0x82040580, 0x84320000, - 0x04020003, 0x4a035078, 0x8000001b, 0x1c01f000, - 0x4d340000, 0x4d440000, 0x599c0018, 0x82000500, - 0xffffffcf, 0x82000540, 0x00000010, 0x48033818, - 0x599c0019, 0x82000500, 0xffff1fff, 0x82000540, - 0x00006000, 0x48033819, 0x42003000, 0x0000fc0e, - 0x417a8800, 0x0201f800, 0x00104531, 0x42003000, - 0x0010bf80, 0x45783000, 0x49375079, 0x4a026c03, - 0x0000ffff, 0x497a6806, 0x497a6807, 0x4a026c08, - 0x000004b0, 0x4a026a08, 0x00000014, 0x497a6809, - 0x4a026c04, 0x00000008, 0x5c028800, 0x5c026800, - 0x1c01f000, 0x4a038893, 0x00000001, 0x59340400, - 0x82000500, 0x000000ff, 0x82000580, 0x00000003, - 0x04000017, 0x0201f800, 0x00107d08, 0x04000014, - 0x4933c857, 0x59aa6879, 0x4936600a, 0x4a026407, - 0x00000012, 0x42000800, 0x00000003, 0x0201f800, - 0x001044f1, 0x42001000, 0x00000008, 0x0201f800, - 0x001072bc, 0x4a0378e4, 0x0c000000, 0x42027000, - 0x000000d0, 0x0201f800, 0x00020bc1, 0x1c01f000, - 0x4d400000, 0x4d340000, 0x0201f800, 0x00106c3c, - 0x4df00000, 0x59aa6879, 0x42028000, 0x00000029, - 0x0401f9cc, 0x4a026c00, 0x00000707, 0x5c03e000, - 0x02000800, 0x00106c29, 0x5c026800, 0x5c028000, - 0x1c01f000, 0x4a03c013, 0x00010001, 0x4a03c014, - 0x00010001, 0x4a03c013, 0x00010000, 0x42000000, - 0x0000000f, 0x80000040, 0x040207ff, 0x4a03c013, - 0x00010001, 0x1c01f000, 0x4803c856, 0x592c0a07, - 0x8c040d1e, 0x04020008, 0x80140110, 0x80000040, - 0x04000022, 0x4a033006, 0x0010b5b6, 0x0201f000, - 0x000206d1, 0x80140110, 0x80000040, 0x02020000, - 0x00105519, 0x592c0208, 0x82000c80, 0x00001001, - 0x04001003, 0x0201f000, 0x00105529, 0x592c1014, - 0x82080500, 0xffff0003, 0x02020000, 0x00105529, - 0x4202e000, 0x00000002, 0x42000000, 0x0010dfe7, - 0x50007000, 0x592c0012, 0x592c0813, 0x48007006, - 0x48047007, 0x492c700a, 0x4978700d, 0x4978700b, - 0x0201f000, 0x00105b42, 0x59a80878, 0x8c040d3e, - 0x02000000, 0x00105511, 0x59aa6879, 0x59340400, - 0x82000580, 0x00000404, 0x04020053, 0x59a80078, - 0x8c000506, 0x0402004c, 0x592c080a, 0x48066809, - 0x592c1207, 0x59341806, 0x8c081506, 0x04000002, - 0x59341807, 0x480e580a, 0x8c081502, 0x04020005, - 0x40040000, 0x800c0480, 0x0400102d, 0x0401f02f, - 0x592c0810, 0x82040500, 0x00000003, 0x0402004a, - 0x592c0011, 0x80000540, 0x04020011, 0x592c000f, - 0x82000500, 0x00000003, 0x04020043, 0x0201f800, - 0x00020b7b, 0x04000038, 0x4932580b, 0x4a026407, - 0x00000012, 0x492e6009, 0x4936600a, 0x42027000, - 0x000000d1, 0x0201f000, 0x00020bc1, 0x592e600b, - 0x0201f800, 0x00109acc, 0x0400002f, 0x59300407, - 0x82000580, 0x00000012, 0x0402002b, 0x59300809, - 0x800409c0, 0x04020015, 0x59300203, 0x82000580, - 0x00000007, 0x04020024, 0x492e6009, 0x42027000, - 0x000000d9, 0x0201f000, 0x00020bc1, 0x8c081500, - 0x040007d4, 0x480e580a, 0x59a80078, 0x8400054c, - 0x84000508, 0x48035078, 0x4a025a07, 0x00000000, - 0x0201f000, 0x000203ef, 0x58041000, 0x800811c0, - 0x04000003, 0x40080800, 0x0401f7fc, 0x492c0800, - 0x1c01f000, 0x4a025a07, 0x00000028, 0x0201f000, - 0x000203ef, 0x4a025a07, 0x00000029, 0x0201f000, - 0x000203ef, 0x4a025a07, 0x0000002c, 0x0201f000, - 0x000203ef, 0x4a025a07, 0x00000008, 0x0201f000, - 0x000203ef, 0x4a025a07, 0x00000003, 0x4a025c07, - 0x00000002, 0x0201f000, 0x000203ef, 0x4803c856, - 0x80140110, 0x80000040, 0x04000005, 0x4a033006, - 0x0010b62b, 0x0201f000, 0x000206d1, 0x59a80878, - 0x8c040d3e, 0x02000000, 0x00105511, 0x592c0a07, - 0x82040480, 0x00000004, 0x02021000, 0x00105529, - 0x59a80078, 0x8c000506, 0x0402001d, 0x59aa6879, - 0x59340400, 0x82000580, 0x00000404, 0x0402001c, - 0x0201f800, 0x00020b7b, 0x0400001d, 0x4a026407, - 0x00000012, 0x492e6009, 0x4936600a, 0x592c0a07, - 0x82040580, 0x00000002, 0x04000004, 0x592c0010, - 0x800001c0, 0x04000016, 0x82040400, 0x0010b64f, - 0x50027000, 0x0201f000, 0x00020bc1, 0x000000d4, - 0x000000d5, 0x000000d3, 0x000000d6, 0x4a025a07, - 0x00000028, 0x0201f000, 0x000203ef, 0x4a025a07, - 0x00000029, 0x0201f000, 0x000203ef, 0x4a025a07, - 0x0000002c, 0x0201f000, 0x000203ef, 0x0201f800, - 0x00020b9d, 0x0201f000, 0x00105529, 0x492fc857, - 0x59a80878, 0x8c040d3e, 0x42000800, 0x00004001, - 0x040000b6, 0x59a80078, 0x8c000506, 0x42000800, - 0x00000028, 0x040200b1, 0x59aa6879, 0x59340400, - 0x82000580, 0x00000404, 0x42000800, 0x00000029, - 0x040200aa, 0x4a025a05, 0x0000012b, 0x4a025806, - 0xaa00feed, 0x4a025a07, 0x00000004, 0x4a025a08, - 0x00000001, 0x59a0020b, 0x48025810, 0x48025814, - 0x48025a0a, 0x59a00408, 0x59a01208, 0x900811c0, - 0x80081540, 0x480a5812, 0x59a0040a, 0x59a0120a, - 0x900811c0, 0x80081540, 0x480a5813, 0x59a00407, - 0x48025a0b, 0x59a0040b, 0x48025c0b, 0x0201f800, - 0x00020b7b, 0x42000800, 0x0000002c, 0x0400008b, - 0x4a026407, 0x00000012, 0x492e6009, 0x4936600a, - 0x42027000, 0x000000de, 0x0201f000, 0x00020bc1, - 0x59cc0801, 0x82040d00, 0x00ffffff, 0x82040580, - 0x0000fc0e, 0x04020014, 0x59cc0800, 0x82040d00, - 0x00ffffff, 0x82040580, 0x0000fc0e, 0x04020010, - 0x59cc0c00, 0x80040910, 0x82040580, 0x00000022, - 0x04000011, 0x82040580, 0x00000023, 0x04000027, - 0x82040580, 0x00000005, 0x0400004e, 0x4807c857, - 0x0401f008, 0x4807c857, 0x0401f006, 0x4807c857, - 0x42000000, 0x0010ccb2, 0x0201f800, 0x0010bc88, - 0x1c01f000, 0x59cc0806, 0x59a80078, 0x8c00050a, - 0x04020010, 0x82040580, 0x05000000, 0x0402000d, - 0x42027000, 0x000000da, 0x0201f800, 0x00107d08, - 0x59aa6879, 0x4936600a, 0x4a026407, 0x00000013, - 0x59cc0404, 0x48026202, 0x0201f000, 0x00020bc1, - 0x4807c857, 0x42000000, 0x0010ccb2, 0x0201f800, - 0x0010bc88, 0x1c01f000, 0x0201f800, 0x0010609c, - 0x0400001f, 0x59300c07, 0x82040580, 0x00000012, - 0x02020800, 0x001003f5, 0x0402001c, 0x5932680a, - 0x59cc0a04, 0x48066202, 0x59300004, 0x8c00053e, - 0x02020800, 0x00107021, 0x04020014, 0x42027000, - 0x000000dc, 0x59cc0806, 0x82040580, 0x02000000, - 0x02000000, 0x00020bc1, 0x82040580, 0x01000000, - 0x02020800, 0x001003f5, 0x04020008, 0x42027000, - 0x000000dd, 0x0201f000, 0x00020bc1, 0x59cc0c04, - 0x4807c857, 0x0401f002, 0x4933c857, 0x42000000, - 0x0010ccb2, 0x0201f800, 0x0010bc88, 0x1c01f000, - 0x0201f800, 0x0010609c, 0x04000013, 0x59300c07, - 0x82040580, 0x00000012, 0x02020800, 0x001003f5, - 0x04020010, 0x5932680a, 0x59cc0a04, 0x48066202, - 0x59300004, 0x8c00053e, 0x02020800, 0x00107021, - 0x04020008, 0x42027000, 0x000000db, 0x0201f000, - 0x00020bc1, 0x59cc0c04, 0x4807c857, 0x0401f002, - 0x4933c857, 0x42000000, 0x0010ccb2, 0x0201f800, - 0x0010bc88, 0x1c01f000, 0x492fc857, 0x4807c857, - 0x82040580, 0x00000000, 0x02000000, 0x00102207, - 0x4a034207, 0x00004005, 0x48074407, 0x0201f000, - 0x0010220a, 0x48066004, 0x59bc00ea, 0x8c000516, - 0x040207fe, 0x83300400, 0xc0000000, 0x480378e1, - 0x1c01f000, 0x4d300000, 0x598c000d, 0x80026540, - 0x0400000e, 0x0201f800, 0x00106c22, 0x0201f800, - 0x00106c10, 0x59300000, 0x800001c0, 0x04000004, - 0x4803180d, 0x497a6000, 0x0401f003, 0x497b180d, - 0x497b180c, 0x80000580, 0x5c026000, 0x1c01f000, - 0x4d2c0000, 0x4d300000, 0x4d340000, 0x4c5c0000, - 0x4178b800, 0x598e600d, 0x813261c0, 0x0400000b, - 0x0201f800, 0x00106b26, 0x59300000, 0x4c000000, - 0x405c3000, 0x0401f826, 0x0201f800, 0x0010feea, - 0x5c026000, 0x0401f7f5, 0x5c00b800, 0x5c026800, - 0x5c026000, 0x5c025800, 0x1c01f000, 0x4933c857, - 0x4c5c0000, 0x813261c0, 0x02000800, 0x0010032e, - 0x41300000, 0x598cb80d, 0x41783000, 0x805cb9c0, - 0x0400000f, 0x805c0d80, 0x04000004, 0x405c3000, - 0x5818b800, 0x0401f7fa, 0x0401f80d, 0x598c000f, - 0x81300580, 0x02000800, 0x001072c9, 0x497a6008, - 0x80000580, 0x5c00b800, 0x1c01f000, 0x82000540, - 0x00000001, 0x5c00b800, 0x1c01f000, 0x59300800, - 0x497a6000, 0x0201f800, 0x00106c10, 0x801831c0, - 0x04020009, 0x598c000c, 0x81300580, 0x04020004, - 0x4803180c, 0x4803180d, 0x0401f008, 0x4807180d, - 0x0401f006, 0x48043000, 0x598c000c, 0x81300580, - 0x04020002, 0x481b180c, 0x0201f000, 0x00106c22, - 0x59325809, 0x59300c03, 0x82040480, 0x000000df, - 0x04021004, 0x82040480, 0x000000d0, 0x0401f002, - 0x81780040, 0x04001002, 0x0c01f008, 0x4933c857, - 0x493bc857, 0x42000000, 0x0010ccb4, 0x0201f800, - 0x0010bc88, 0x1c01f000, 0x0010b7c0, 0x0010b7d7, - 0x0010b7f4, 0x0010b805, 0x0010b816, 0x0010b829, - 0x0010b83c, 0x0010b850, 0x0010b797, 0x0010b797, - 0x0010b797, 0x0010b797, 0x0010b797, 0x0010b797, - 0x0010b7ad, 0x42000800, 0x00000022, 0x0401f8d1, - 0x592c0a0a, 0x4805a207, 0x592c0a0b, 0x4805a208, - 0x592c0c0b, 0x4805a408, 0x4a01a006, 0x0c000000, - 0x59340408, 0x48026006, 0x42000800, 0x00000003, - 0x42001000, 0x0000dc00, 0x0201f000, 0x00107b6e, - 0x42000800, 0x00000022, 0x0401f8be, 0x497b8880, - 0x59a8001f, 0x82000500, 0x0000ffff, 0x4c000000, - 0x0201f800, 0x001015e0, 0x5c000000, 0x48038880, - 0x4a01a006, 0x03000000, 0x4801a207, 0x59a80004, - 0x4801a407, 0x42000800, 0x00000002, 0x42001000, - 0x0000dc00, 0x0201f000, 0x00107b6e, 0x42000800, - 0x00000022, 0x0401f8a7, 0x592c0a07, 0x592c100f, - 0x592c0010, 0x80080580, 0x82000500, 0x00000003, - 0x0402008c, 0x82080500, 0x00000003, 0x04020089, - 0x42001800, 0x00000002, 0x8c040d06, 0x04020003, - 0x42001800, 0x00000001, 0x4a01a006, 0x04000000, - 0x4809a007, 0x480da008, 0x42000800, 0x00000003, - 0x42001000, 0x0000dc00, 0x0201f000, 0x00107b6e, - 0x42000800, 0x00000022, 0x0401f88a, 0x59300819, - 0x5930101a, 0x5930181b, 0x4a01a006, 0x06000000, - 0x4805a007, 0x4809a008, 0x480da009, 0x42000800, - 0x00000004, 0x42001000, 0x0000dc00, 0x0201f000, - 0x00107b6e, 0x42000800, 0x00000022, 0x0401f879, - 0x592c0a0a, 0x592c100b, 0x592c180c, 0x4a01a006, - 0x07000000, 0x4805a207, 0x480da008, 0x4809a009, - 0x42000800, 0x00000004, 0x42001000, 0x0000dc00, - 0x0201f000, 0x00107b6e, 0x42000800, 0x00000022, - 0x0401f868, 0x592c080a, 0x592c1010, 0x82080500, - 0xfffc0003, 0x0402004f, 0x80081104, 0x4a01a006, - 0x08000000, 0x4805a007, 0x4809a008, 0x42000800, - 0x00000003, 0x42001000, 0x0000dc00, 0x0201f000, - 0x00107b6e, 0x42000800, 0x00000022, 0x0401f855, - 0x592c080a, 0x592c1010, 0x82080500, 0xfffc0003, - 0x0402003c, 0x80081104, 0x4a01a006, 0x09000000, - 0x4805a007, 0x4809a008, 0x42000800, 0x00000003, - 0x42001000, 0x0000dc00, 0x0201f000, 0x00107b6e, - 0x42000800, 0x00000022, 0x0401f842, 0x592c080a, - 0x592c1010, 0x592c180b, 0x82080500, 0xffff0000, - 0x04020028, 0x4a01a006, 0x0a000000, 0x4805a207, - 0x480da407, 0x4809a008, 0x42000800, 0x00000003, - 0x42001000, 0x0000dc00, 0x0201f000, 0x00107b6e, - 0x42000800, 0x00000022, 0x0401f82e, 0x4a01a006, - 0x0b000000, 0x42000800, 0x00000001, 0x42001000, - 0x0000dc00, 0x0201f000, 0x00107b6e, 0x59300c03, - 0x82040580, 0x000000d8, 0x04000003, 0x0201f800, - 0x0010032e, 0x42000800, 0x00000023, 0x0401f81d, - 0x4a01a006, 0x02000000, 0x42000800, 0x00000001, - 0x42001000, 0x0000dc00, 0x0201f000, 0x00107b6e, - 0x592c0006, 0x4803c857, 0x480bc857, 0x0201f800, - 0x00106b8c, 0x4a025a07, 0x00000003, 0x4a025c07, - 0x00000002, 0x592c0205, 0x82000500, 0x000000ff, - 0x82000580, 0x0000002b, 0x04020002, 0x480a5808, - 0x0201f800, 0x000203ef, 0x0201f000, 0x00020b9d, - 0x81a5a000, 0x4a01a001, 0x0000fc0e, 0x4979a005, - 0x4979a003, 0x4a034800, 0x00000011, 0x59307002, - 0x82040580, 0x00000022, 0x04020007, 0x4a01a000, - 0x2200fc0e, 0x4a01a002, 0xfe290000, 0x4839a004, - 0x1c01f000, 0x82040580, 0x00000023, 0x02020800, - 0x0010032e, 0x4a01a000, 0x2300fc0e, 0x4a01a002, - 0xfe980000, 0x903871c0, 0x4839a004, 0x1c01f000, - 0x4a034800, 0x00000011, 0x81a5a000, 0x4a01a000, - 0x0100fc0e, 0x4a01a001, 0x0000fc0e, 0x4a01a002, - 0xfe000008, 0x41781000, 0x42000800, 0x01000000, - 0x592c0205, 0x82000500, 0x000000ff, 0x82000580, - 0x0000001b, 0x04020006, 0x592c1011, 0x592c0207, - 0x8c00051c, 0x04020002, 0x41780800, 0x4805a003, - 0x59300002, 0x4801a004, 0x4809a005, 0x59340c08, - 0x42001000, 0x00000100, 0x0201f800, 0x00106a79, - 0x0201f800, 0x001063ff, 0x83180d40, 0x00000038, - 0x42001000, 0x0000c920, 0x0201f000, 0x00107b8d, - 0x59300a03, 0x82040480, 0x00000009, 0x04021004, - 0x82040480, 0x00000001, 0x0401f002, 0x81780040, - 0x0c021002, 0x0401f22c, 0x0010b8d6, 0x0010b8f3, - 0x0010b953, 0x0010b995, 0x0010baf9, 0x0010baf9, - 0x0010b9f5, 0x0010ba1e, 0x83380580, 0x00000013, - 0x04000015, 0x83380580, 0x00000014, 0x0402021e, - 0x59300c03, 0x4807c857, 0x0201f800, 0x00106b8c, - 0x0201f800, 0x00109667, 0x04000009, 0x4d2c0000, - 0x59325809, 0x4a025a07, 0x00000001, 0x497a5c07, - 0x0201f800, 0x000203ef, 0x5c025800, 0x0201f000, - 0x00107cbe, 0x59300c03, 0x82040580, 0x000000d8, - 0x04020209, 0x0201f000, 0x00020b9d, 0x83380480, - 0x000000de, 0x04021004, 0x83380480, 0x000000db, - 0x0401f002, 0x81780040, 0x040011ff, 0x0c01f001, - 0x0010b8ff, 0x0010b915, 0x0010b91f, 0x59300c03, - 0x82040580, 0x000000d1, 0x0400000c, 0x82040580, - 0x000000d5, 0x040201f4, 0x42000800, 0x80000000, - 0x4a026203, 0x00000002, 0x4a026403, 0x000000d9, - 0x0201f000, 0x00020b30, 0x59340408, 0x48026006, - 0x42000800, 0x80000040, 0x4a026203, 0x00000003, - 0x0401f7f6, 0x59300c03, 0x82040480, 0x000000da, - 0x04021004, 0x82040480, 0x000000d0, 0x0401f002, - 0x81780040, 0x0c02101b, 0x0401f1db, 0x0201f800, - 0x00109667, 0x0402000a, 0x59300c03, 0x82040580, - 0x000000d2, 0x040201d4, 0x42000000, 0x0010ccb1, - 0x0401fb60, 0x0201f000, 0x00020b9d, 0x4933c857, - 0x59cc1207, 0x80081110, 0x4d2c0000, 0x59325809, - 0x4a025a07, 0x00000003, 0x480a5c07, 0x0201f800, - 0x000203ef, 0x5c025800, 0x0201f000, 0x00020b9d, - 0x0010ba4d, 0x0010baf9, 0x0010b946, 0x0010b946, - 0x0010baf9, 0x0010b946, 0x0010baf9, 0x0010b942, - 0x0010baf9, 0x0010ba8d, 0x41780800, 0x0401fa83, - 0x0201f000, 0x00020b9d, 0x0201f800, 0x00109667, - 0x04000009, 0x4d2c0000, 0x59325809, 0x4a025a07, - 0x00000000, 0x497a5c07, 0x0201f800, 0x000203ef, - 0x5c025800, 0x0201f000, 0x00020b9d, 0x0201f800, - 0x00109667, 0x0400003e, 0x83380580, 0x0000004a, - 0x0400002c, 0x83380580, 0x00000049, 0x0402019e, - 0x4d2c0000, 0x59325809, 0x592c0a05, 0x82040500, - 0x000000ff, 0x82000580, 0x0000001b, 0x04020019, - 0x592c0207, 0x8c00051c, 0x0402000f, 0x4a025a07, - 0x00000040, 0x497a5c07, 0x592c0000, 0x48026009, - 0x0201f800, 0x000203ef, 0x5c025800, 0x4a026203, - 0x00000007, 0x59300009, 0x800001c0, 0x04020082, - 0x1c01f000, 0x59a80078, 0x8400050a, 0x48035078, - 0x4a026203, 0x00000002, 0x5c025800, 0x1c01f000, - 0x4a025a07, 0x00000000, 0x497a5c07, 0x0201f800, - 0x000203ef, 0x5c025800, 0x0201f000, 0x00020b9d, - 0x4933c857, 0x0201f800, 0x00106e75, 0x0201f800, - 0x00106b6c, 0x4d2c0000, 0x59325809, 0x4a025a07, - 0x00000001, 0x497a5c07, 0x0201f800, 0x000203ef, - 0x5c025800, 0x0201f000, 0x00020b9d, 0x4803c856, - 0x0401f165, 0x0201f800, 0x00109667, 0x0400002c, - 0x83380480, 0x00000054, 0x04021004, 0x83380480, - 0x00000047, 0x0401f002, 0x81780040, 0x04001006, - 0x4d2c0000, 0x59325809, 0x0c01f823, 0x5c025800, - 0x1c01f000, 0x83380580, 0x000000dd, 0x04020152, - 0x4933c857, 0x0201f800, 0x00100c75, 0x0201f800, - 0x00109667, 0x04000016, 0x592c0a07, 0x82040580, - 0x00000004, 0x04020006, 0x42000800, 0x00000001, - 0x0401fd6a, 0x0201f000, 0x00020b9d, 0x4d2c0000, - 0x59325809, 0x59cc1207, 0x80081110, 0x4a025a07, - 0x00000003, 0x480a5c07, 0x0201f800, 0x000203ef, - 0x5c025800, 0x0201f000, 0x00020b9d, 0x4803c856, - 0x0401f135, 0x0010b9f1, 0x0010b9d2, 0x0010baf9, - 0x0010baf9, 0x0010baf9, 0x0010baf9, 0x0010baf9, - 0x0010baf9, 0x0010baf9, 0x0010baf9, 0x0010baf9, - 0x0010baf9, 0x0010b9d2, 0x59300812, 0x82040500, - 0xffff0000, 0x0402001c, 0x42001000, 0x00000000, - 0x592c0a07, 0x82040580, 0x00000004, 0x0402000e, - 0x82080580, 0x00000007, 0x04000007, 0x59300812, - 0x800409c0, 0x04000004, 0x4807c857, 0x42001000, - 0x00000015, 0x40080800, 0x0401fd38, 0x0201f000, - 0x00020b9d, 0x59300812, 0x48065808, 0x480a5a07, - 0x497a5c07, 0x0201f800, 0x000203ef, 0x0201f000, - 0x00020b9d, 0x4803c856, 0x42001000, 0x00000007, - 0x0401f7e4, 0x0201f800, 0x00109667, 0x0400001b, - 0x83380580, 0x000000d9, 0x040200ff, 0x59340408, - 0x48026006, 0x4a026403, 0x000000d9, 0x0201f800, - 0x00020168, 0x59306809, 0x58340207, 0x8c00051c, - 0x04020006, 0x42000800, 0x80000040, 0x4a026203, - 0x00000003, 0x0401f005, 0x42000800, 0x80000000, - 0x4a026203, 0x00000002, 0x4a026403, 0x000000d9, - 0x0201f000, 0x00020b30, 0x4803c856, 0x83380580, - 0x000000dd, 0x040200e4, 0x42001000, 0x0000800f, - 0x42001800, 0x00000005, 0x59cc2207, 0x80102110, - 0x0201f000, 0x001038bc, 0x83380480, 0x000000df, - 0x04021004, 0x83380480, 0x000000d0, 0x0401f002, - 0x81780040, 0x040010d4, 0x4933c857, 0x493bc857, - 0x59340a08, 0x48066006, 0x0c01f001, 0x0010ba3f, - 0x0010ba3b, 0x0010ba3f, 0x0010ba3f, 0x0010ba45, - 0x0010ba3d, 0x0010ba45, 0x0010ba3f, 0x0010ba3a, - 0x0010ba3a, 0x0010ba3a, 0x0010ba3a, 0x0010ba3a, - 0x0010ba3a, 0x0010ba45, 0x0401f0bf, 0x59340408, - 0x48026006, 0x0201f800, 0x00020168, 0x4a026203, - 0x00000002, 0x493a6403, 0x42000800, 0x80000000, - 0x0401f4e5, 0x0201f800, 0x0002011a, 0x4a026203, - 0x00000004, 0x493a6403, 0x42000800, 0x80000000, - 0x0401f4dd, 0x59cc0207, 0x59cc0c07, 0x59cc1008, - 0x59cc1809, 0x59cc220a, 0x59cc2c0a, 0x59cc300b, - 0x4a026c00, 0x00000404, 0x48026c04, 0x48038893, - 0x48035012, 0x48066a04, 0x480a6806, 0x480e6807, - 0x48126a08, 0x48166c08, 0x8c183500, 0x0400000d, - 0x59cc200d, 0x59cc280d, 0x4813c857, 0x4817c857, - 0x59cc200c, 0x42001000, 0x0000800f, 0x42001800, - 0x00000001, 0x901029c0, 0x0201f800, 0x001038bd, - 0x59a80878, 0x42001800, 0x00000003, 0x84040d4e, - 0x59342007, 0x8c183502, 0x0402000c, 0x82040d00, - 0xffffff7b, 0x8c183504, 0x04020004, 0x42001800, - 0x00000002, 0x0401f004, 0x42001800, 0x00000004, - 0x84040d44, 0x59342006, 0x48075078, 0x42001000, - 0x0000800f, 0x82102d00, 0xffff0000, 0x80142920, - 0x82102500, 0x0000ffff, 0x0201f800, 0x001038bd, - 0x59c80040, 0x84000534, 0x48039040, 0x0201f000, - 0x00020b9d, 0x0201f800, 0x00109667, 0x04000023, - 0x4d2c0000, 0x59325809, 0x592c0a05, 0x82040d00, - 0x000000ff, 0x82040580, 0x0000001b, 0x04020019, - 0x592c0a07, 0x8c040d04, 0x04020003, 0x0201f800, - 0x0010b581, 0x59340009, 0x4802580a, 0x8c040d06, - 0x04020007, 0x48026806, 0x59a80078, 0x8400054c, - 0x84000508, 0x48035078, 0x0401f002, 0x48026807, - 0x4a025a07, 0x00000000, 0x497a5c07, 0x0201f800, - 0x000203ef, 0x5c025800, 0x0201f000, 0x00020b9d, - 0x497a5808, 0x0401f7f7, 0x4803c856, 0x0401f046, - 0x59300a03, 0x82040480, 0x00000009, 0x04021004, - 0x82040480, 0x00000001, 0x0401f002, 0x81780040, - 0x0c021002, 0x0401f03c, 0x0010bac6, 0x0010baf9, - 0x0010baf9, 0x0010baf9, 0x0010baf9, 0x0010baf9, - 0x0010baf9, 0x0010bad2, 0x83380580, 0x00000013, - 0x04000008, 0x83380580, 0x00000014, 0x0402002e, - 0x59300c03, 0x4807c857, 0x0201f800, 0x00106b8c, - 0x0201f000, 0x00020b9d, 0x83380580, 0x000000da, - 0x04020025, 0x4933c857, 0x493bc857, 0x59cc0808, - 0x59cc1007, 0x59a81878, 0x820c1d00, 0xfffffffc, - 0x82040580, 0x00000000, 0x04020002, 0x840c1d42, - 0x82080580, 0x00000000, 0x04020002, 0x840c1d40, - 0x480f5078, 0x480fc857, 0x836c0580, 0x00000001, - 0x0400000a, 0x4202d800, 0x00000004, 0x4a035038, - 0x00000000, 0x497b5058, 0x42000000, 0x00000080, - 0x0201f800, 0x0010155c, 0x4a026403, 0x000000d8, + 0x4c180000, 0x4c1c0000, 0x4c200000, 0x0201f800, + 0x00100583, 0x02000800, 0x0010032e, 0x5c004000, + 0x5c003800, 0x5c003000, 0x5c002800, 0x5c002000, + 0x5c001800, 0x5c001000, 0x5c000800, 0x4a025805, + 0x0000010d, 0x800811c0, 0x0400001f, 0x83400580, + 0x00000029, 0x04020018, 0x82180580, 0x00000002, + 0x0400000d, 0x82180580, 0x00000003, 0x0400000a, + 0x82180580, 0x00000008, 0x04000007, 0x82180580, + 0x00000006, 0x04000007, 0x82180580, 0x00000009, + 0x04020009, 0x4a02580a, 0xffffffff, 0x0401f007, + 0x5808280a, 0x58140002, 0x82000500, 0x00ffffff, + 0x48025813, 0x480a580a, 0x58080202, 0x48025c14, + 0x0401f005, 0x4a02580a, 0xffffffff, 0x4a025c14, + 0x0000ffff, 0x83400580, 0x00000046, 0x04000002, + 0x41782800, 0x480e580d, 0x4806580e, 0x4822580f, + 0x481e5810, 0x48165a08, 0x481a5c09, 0x49425a09, + 0x48125a07, 0x82100580, 0x0000ffff, 0x04000014, + 0x4d440000, 0x4d340000, 0x40128800, 0x83440480, + 0x000007f0, 0x04001004, 0x0201f800, 0x00104a7c, + 0x0401f003, 0x0201f800, 0x0002034c, 0x02020800, + 0x0010032e, 0x59340002, 0x82000500, 0x00ffffff, + 0x48025813, 0x5c026800, 0x5c028800, 0x497a5800, + 0x497a5c05, 0x812000d0, 0x48025c11, 0x0201f800, + 0x0010b674, 0x5c025800, 0x1c01f000, 0x5c000000, + 0x4c000000, 0x4803c857, 0x480bc857, 0x480fc857, + 0x4813c857, 0x4817c857, 0x4d2c0000, 0x4c080000, + 0x4c0c0000, 0x4c100000, 0x4c140000, 0x0201f800, + 0x00100583, 0x02000800, 0x0010032e, 0x5c002800, + 0x5c002000, 0x5c001800, 0x5c001000, 0x04011000, + 0x832c0400, 0x00000005, 0x4803c840, 0x4a03c842, + 0x00000010, 0x40000000, 0x040117ff, 0x4a025805, + 0x0000010d, 0x4a025a09, 0x00000049, 0x480a5a0b, + 0x480e5c0b, 0x48125a0c, 0x48165c0c, 0x82080580, + 0x00008014, 0x04020068, 0x820c0580, 0x0000ffff, + 0x04020065, 0x82100580, 0x00000006, 0x04020062, + 0x4d240000, 0x42024800, 0x0010cfd1, 0x59240005, + 0x5c024800, 0x0201f800, 0x001050f7, 0x04000009, + 0x82000d00, 0x00ffff00, 0x04020006, 0x82000c00, + 0x00102116, 0x50040800, 0x80040910, 0x48065a0d, + 0x82000d00, 0x0000ffff, 0x48065c0d, 0x80000120, + 0x48025a0e, 0x59a8021b, 0x82001500, 0x00003500, + 0x480a5a0f, 0x8c000502, 0x0400001f, 0x8c000506, + 0x04000009, 0x82000d00, 0x0000000a, 0x82040d80, + 0x0000000a, 0x04020004, 0x4a025c0e, 0x00000001, + 0x0401f022, 0x8c00050a, 0x04000009, 0x82000d00, + 0x00000022, 0x82040d80, 0x00000022, 0x04020004, + 0x4a025c0e, 0x00000003, 0x0401f018, 0x8c000508, + 0x04000009, 0x82000d00, 0x00000012, 0x82040d80, + 0x00000012, 0x04020004, 0x4a025c0e, 0x00000002, + 0x0401f00e, 0x0201f800, 0x001050f7, 0x04020004, + 0x4a025c0e, 0x00000004, 0x0401f008, 0x8c000506, + 0x04000004, 0x4a025c0e, 0x00000005, 0x0401f003, + 0x4a025c0e, 0x00000000, 0x59a8002a, 0x48025c0f, + 0x59a8002b, 0x48025a10, 0x59c40801, 0x82040d00, + 0x00018000, 0x82040580, 0x00000000, 0x04020004, + 0x4a025c10, 0x00000000, 0x0401f00f, 0x82040580, + 0x00008000, 0x04020004, 0x4a025c10, 0x00000001, + 0x0401f009, 0x82040580, 0x00010000, 0x04020004, + 0x4a025c10, 0x00000003, 0x0401f003, 0x4a025c10, + 0x00000004, 0x0401fbdf, 0x5c025800, 0x1c01f000, + 0x0401f807, 0x42018800, 0x00000001, 0x04000003, + 0x42018800, 0x00000000, 0x1c01f000, 0x5930080a, + 0x800409c0, 0x04000004, 0x58040403, 0x81440580, + 0x1c01f000, 0x82000540, 0x00000001, 0x0401f7fd, + 0x4933c857, 0x4c040000, 0x59300403, 0x82000d80, + 0x0000001e, 0x04020016, 0x800000d0, 0x59300a17, + 0x82040d00, 0x000000ff, 0x80040540, 0x4803c857, + 0x48026417, 0x4a026403, 0x00000085, 0x4a026203, + 0x00000009, 0x4a026407, 0x00000005, 0x4a026226, + 0x00000004, 0x59a8002b, 0x48026006, 0x42000800, + 0x8000004b, 0x0201f800, 0x00020b3e, 0x5c000800, + 0x1c01f000, 0x4933c857, 0x40000000, 0x40000000, + 0x1c01f000, 0x59300415, 0x4933c857, 0x4803c857, + 0x8c000518, 0x04000009, 0x8c000512, 0x02020000, + 0x00109adc, 0x0401f929, 0x0201f800, 0x00020afd, + 0x0201f800, 0x00020b9d, 0x1c01f000, 0x591c0407, + 0x4803c857, 0x82000c80, 0x00000009, 0x0402100b, + 0x0c01f001, 0x0010b2e6, 0x0010b2e6, 0x0010b2e6, + 0x0010b2e8, 0x0010b2e6, 0x0010b2e8, 0x0010b2e8, + 0x0010b2e6, 0x0010b2e8, 0x80000580, 0x1c01f000, + 0x82000540, 0x00000001, 0x1c01f000, 0x591c0407, + 0x82000500, 0x0000001f, 0x82000580, 0x00000006, + 0x0400000e, 0x4803c857, 0x4a026403, 0x0000003b, + 0x4a02641b, 0x00000009, 0x4a02621b, 0x00002a00, 0x4a026203, 0x00000001, 0x42000800, 0x80000040, - 0x0401f431, 0x4933c857, 0x493bc857, 0x59300203, - 0x4803c857, 0x59300403, 0x4803c857, 0x42000000, - 0x0010ccb3, 0x0401f987, 0x1c01f000, 0x4933c857, - 0x4d2c0000, 0x4d3c0000, 0x417a5800, 0x417a7800, - 0x0201f800, 0x00109667, 0x04000003, 0x59325809, - 0x592e7a09, 0x0401f81a, 0x82000540, 0x00000001, - 0x5c027800, 0x5c025800, 0x1c01f000, 0x4933c857, - 0x4d2c0000, 0x4d3c0000, 0x42027800, 0x00000040, - 0x42000000, 0x0010ccae, 0x0401f96e, 0x417a5800, - 0x0201f800, 0x00109667, 0x04000005, 0x59325809, - 0x592e7a09, 0x853e7d4c, 0x493e5a09, 0x0401f804, - 0x5c027800, 0x5c025800, 0x1c01f000, 0x0201f800, - 0x00106c3c, 0x4df00000, 0x0401f88b, 0x4803c857, - 0x82000c80, 0x00000009, 0x04021006, 0x0c01f808, - 0x5c03e000, 0x02000800, 0x00106c29, 0x1c01f000, - 0x42000000, 0x00000006, 0x0401f7f9, 0x0010bb8c, - 0x0010bb8d, 0x0010bb46, 0x0010bba3, 0x0010bbae, - 0x0010bb40, 0x0010bb40, 0x0010bb40, 0x0010bb8c, - 0x4d380000, 0x417a7000, 0x0401ffb7, 0x5c027000, - 0x0201f000, 0x00107cbe, 0x812e59c0, 0x04000021, - 0x42001000, 0x00000002, 0x833c0500, 0x00000081, - 0x04020007, 0x42001000, 0x00000006, 0x8d3e7d0c, - 0x04020003, 0x42001000, 0x00000004, 0x592c0a07, - 0x82040580, 0x00000004, 0x04020006, 0x40080800, - 0x0201f800, 0x0010b71e, 0x0201f000, 0x00107cbe, - 0x480a5a07, 0x0201f800, 0x000203ef, 0x59300403, - 0x82000580, 0x000000d0, 0x04020004, 0x5930100a, - 0x4a001400, 0x00000707, 0x0201f000, 0x00107cbe, - 0x59300c03, 0x82040580, 0x000000d7, 0x04020005, - 0x42000800, 0x00000004, 0x0401f858, 0x0401f7f0, - 0x8d3e7d0c, 0x040007ee, 0x5932680a, 0x59300816, - 0x59340412, 0x80040580, 0x04020007, 0x42000000, - 0x0010ccaf, 0x0401f90f, 0x0201f800, 0x0010b581, - 0x0401f7e3, 0x4933c857, 0x80040800, 0x48066016, - 0x4d380000, 0x59327403, 0x83380580, 0x000000d0, - 0x04020003, 0x4a038893, 0x00000001, 0x4a026203, - 0x00000008, 0x0201f800, 0x00020bc1, 0x5c027000, - 0x1c01f000, 0x8d3e7d0c, 0x04000006, 0x59300407, - 0x82000580, 0x00000013, 0x02000000, 0x001093d2, - 0x598c000f, 0x4803c857, 0x81300580, 0x04020004, - 0x0201f800, 0x00106f5c, 0x040207ac, 0x0201f800, - 0x0010b75b, 0x040007a9, 0x4803c856, 0x0201f800, - 0x00106b47, 0x040007a5, 0x0401f79e, 0x0201f800, - 0x0010931e, 0x04020004, 0x0201f800, 0x00106f25, - 0x0402079e, 0x0201f800, 0x0010fd55, 0x80c40040, - 0x040207f2, 0x0401f799, 0x812e59c0, 0x04000006, - 0x0201f800, 0x00106c29, 0x0201f800, 0x00100c75, - 0x0401f792, 0x59300004, 0x8c00053e, 0x0400000d, - 0x8c00050c, 0x0402000b, 0x59306c03, 0x82340580, - 0x000000d9, 0x04020004, 0x42000000, 0x00000003, - 0x0401f005, 0x42000000, 0x00000001, 0x0401f002, - 0x59300203, 0x1c01f000, 0x5931d82a, 0x58ef400a, - 0x58ee580c, 0x58ec0008, 0x48074407, 0x0801f800, - 0x1c01f000, 0x4817c857, 0x4c000000, 0x4c040000, - 0x8c142d2a, 0x04000004, 0x5988011e, 0x80000000, - 0x4803111e, 0x8c142d2e, 0x04000004, 0x5988011f, - 0x80000000, 0x4803111f, 0x8c142d2c, 0x04000013, - 0x40140000, 0x82000500, 0x00070000, 0x82000d80, - 0x00030000, 0x0400000d, 0x82000d80, 0x00040000, - 0x0400000a, 0x82000d80, 0x00050000, 0x04000007, - 0x59880005, 0x80000000, 0x48031005, 0x59880120, - 0x80000000, 0x48031120, 0x5c000800, 0x5c000000, - 0x1c01f000, 0x4817c857, 0x4c000000, 0x4c040000, - 0x8c142d2a, 0x04000004, 0x59880121, 0x80000000, - 0x48031121, 0x8c142d2e, 0x04000004, 0x59880122, - 0x80000000, 0x48031122, 0x8c142d2c, 0x04000013, - 0x40140000, 0x82000500, 0x00070000, 0x82000d80, - 0x00030000, 0x0400000d, 0x82000d80, 0x00040000, - 0x0400000a, 0x82000d80, 0x00050000, 0x04000007, - 0x59880005, 0x80000000, 0x48031005, 0x59880123, - 0x80000000, 0x48031123, 0x5c000800, 0x5c000000, - 0x1c01f000, 0x4807c857, 0x4c000000, 0x8c040d2c, - 0x04000004, 0x5988010c, 0x80000000, 0x4803110c, - 0x8c040d2a, 0x04000004, 0x5988010d, 0x80000000, - 0x4803110d, 0x8c040d28, 0x04000004, 0x5988010e, - 0x80000000, 0x4803110e, 0x8c040d26, 0x04000004, - 0x5988010f, 0x80000000, 0x4803110f, 0x8c040d24, - 0x04000004, 0x59880110, 0x80000000, 0x48031110, - 0x8c040d22, 0x04000004, 0x59880111, 0x80000000, - 0x48031111, 0x8c040d20, 0x04000004, 0x59880112, - 0x80000000, 0x48031112, 0x5c000000, 0x1c01f000, - 0x4807c857, 0x4c000000, 0x59880113, 0x80000000, - 0x48031113, 0x5c000000, 0x1c01f000, 0x4807c857, - 0x4c000000, 0x8c040d1c, 0x04000004, 0x59880114, - 0x80000000, 0x48031114, 0x8c040d1a, 0x04000004, - 0x59880115, 0x80000000, 0x48031115, 0x5c000000, - 0x1c01f000, 0x4807c857, 0x4c000000, 0x8c040d18, - 0x04000004, 0x59880116, 0x80000000, 0x48031116, - 0x8c040d16, 0x04000004, 0x59880117, 0x80000000, - 0x48031117, 0x8c040d14, 0x04000004, 0x59880118, - 0x80000000, 0x48031118, 0x5c000000, 0x1c01f000, - 0x4807c857, 0x4c000000, 0x8c040d10, 0x04000004, - 0x59880119, 0x80000000, 0x48031119, 0x8c040d0c, - 0x04000004, 0x5988011a, 0x80000000, 0x4803111a, + 0x0201f000, 0x00020b3e, 0x4803c856, 0x4c040000, + 0x4c140000, 0x4d300000, 0x411e6000, 0x0401f8f7, + 0x497a6205, 0x59300415, 0x4803c857, 0x82000500, + 0xffffadff, 0x48026415, 0x497a6405, 0x5c026000, + 0x0201f800, 0x00100583, 0x02000800, 0x0010032e, + 0x5c002800, 0x5c000800, 0x4a025805, 0x0000010d, + 0x497a5800, 0x497a5c05, 0x4a025a09, 0x00000045, + 0x491e580a, 0x59300402, 0x48025c08, 0x5930041a, + 0x48025c0c, 0x591c0415, 0x84000556, 0x48023c15, + 0x591c180a, 0x580c0403, 0x48025a07, 0x580c0002, + 0x82000500, 0x00ffffff, 0x48025813, 0x59cc0404, + 0x48025c14, 0x497a5a08, 0x4816580b, 0x48065a0c, + 0x580c0013, 0x82000500, 0xff000000, 0x80000120, + 0x48025c11, 0x0401fb43, 0x493a6403, 0x4d400000, + 0x42028000, 0x00000045, 0x591c0202, 0x4c000000, + 0x4d300000, 0x411e6000, 0x0401fc81, 0x5c026000, + 0x5c000000, 0x48023a02, 0x5c028000, 0x491e6027, + 0x4932381d, 0x4a023c07, 0x00000006, 0x4a023a03, + 0x00000007, 0x497a3806, 0x497a3a05, 0x1c01f000, + 0x4933c857, 0x83380580, 0x00000013, 0x0402000b, + 0x59300403, 0x4803c857, 0x82000d80, 0x00000085, + 0x0400002b, 0x82000d80, 0x0000008b, 0x04000028, + 0x0201f800, 0x0010032e, 0x83380580, 0x00000027, + 0x0402000c, 0x0201f800, 0x00106d91, 0x4d2c0000, + 0x4d400000, 0x59325809, 0x42028000, 0x00000004, + 0x0401fe15, 0x5c028000, 0x5c025800, 0x1c01f000, + 0x83380580, 0x00000014, 0x040007f3, 0x83380580, + 0x00000089, 0x04000005, 0x83380580, 0x0000008a, + 0x02020000, 0x00107f37, 0x0201f800, 0x00107226, + 0x02020000, 0x00107f37, 0x59300a03, 0x82040580, + 0x0000000a, 0x04000009, 0x82040580, 0x0000000c, + 0x04000006, 0x0201f800, 0x0010032e, 0x4a026203, + 0x0000000a, 0x1c01f000, 0x83380480, 0x00000093, + 0x0402100c, 0x83380480, 0x00000085, 0x04001009, + 0x83380580, 0x00000089, 0x0400000a, 0x83380580, + 0x0000008a, 0x04000024, 0x0201f800, 0x0010032e, + 0x493bc857, 0x4933c857, 0x0201f000, 0x00107f37, + 0x4933c857, 0x4c340000, 0x41306800, 0x0201f800, + 0x00107ef8, 0x04000013, 0x4a026203, 0x00000001, + 0x4a026403, 0x0000001e, 0x59cc0c07, 0x4806641a, + 0x59cc0a07, 0x4806621a, 0x5834080a, 0x4806600a, + 0x5834081c, 0x4806601c, 0x4a026407, 0x00000004, + 0x42000800, 0x80000040, 0x0201f800, 0x00020b3e, + 0x40366000, 0x0201f800, 0x00020b9d, 0x5c006800, + 0x1c01f000, 0x4933c857, 0x0201f000, 0x00020b9d, + 0x5930080a, 0x58040200, 0x8c00051a, 0x02020800, + 0x001003f5, 0x1c01f000, 0x0201f800, 0x00104942, + 0x0400001e, 0x4a026203, 0x00000002, 0x59300415, + 0x84000558, 0x48026415, 0x8c000512, 0x04000004, + 0x59a8002c, 0x48026205, 0x0401f007, 0x59a8082c, + 0x59a8002a, 0x80040400, 0x82000400, 0x0000001e, + 0x48026205, 0x5930000a, 0x82000c00, 0x00000011, + 0x50040000, 0x80000540, 0x04000004, 0x82000c00, + 0x00000000, 0x0401f7fb, 0x45300800, 0x497a6000, + 0x82000540, 0x00000001, 0x1c01f000, 0x82100500, + 0xfffffeef, 0x0402001c, 0x4d2c0000, 0x4937c857, + 0x59340811, 0x83341400, 0x00000011, 0x800409c0, + 0x0400000e, 0x40040000, 0x81300580, 0x04000005, + 0x82041400, 0x00000000, 0x58040800, 0x0401f7f8, + 0x59300800, 0x497a6000, 0x44041000, 0x0201f800, + 0x00020afd, 0x0401f002, 0x4933c857, 0x5c025800, + 0x492e6009, 0x0201f800, 0x00020afd, 0x0201f000, + 0x00020b9d, 0x492fc857, 0x4a025a07, 0x00000006, + 0x0201f000, 0x000203ef, 0x4c340000, 0x5930000a, + 0x800001c0, 0x04000011, 0x82006c00, 0x00000011, + 0x50340000, 0x80000540, 0x0400000a, 0x81300580, + 0x04000005, 0x50340000, 0x82006c00, 0x00000000, + 0x0401f7f8, 0x59300000, 0x44006800, 0x497a6000, + 0x5c006800, 0x1c01f000, 0x59300c07, 0x82040580, + 0x00000005, 0x040007fb, 0x82040580, 0x00000011, + 0x040007f8, 0x82040580, 0x00000006, 0x040007f5, + 0x82040580, 0x00000001, 0x040007f2, 0x0201f800, + 0x0010032e, 0x4933c857, 0x4c080000, 0x4c0c0000, + 0x4c580000, 0x59a81018, 0x59cc1807, 0x820c1d00, + 0x00ffffff, 0x800c0110, 0x80083580, 0x04020014, + 0x83cc1400, 0x00000008, 0x4200b000, 0x00000002, + 0x5930000a, 0x82001c00, 0x00000006, 0x0201f800, + 0x00108c57, 0x0402000a, 0x83cc1400, 0x0000000a, + 0x4200b000, 0x00000002, 0x5930000a, 0x82001c00, + 0x00000008, 0x0201f800, 0x00108c57, 0x5c00b000, + 0x5c001800, 0x5c001000, 0x1c01f000, 0x4933c856, + 0x493a6403, 0x0201f800, 0x0010421b, 0x0201f000, + 0x00101e2e, 0x493bc857, 0x4d2c0000, 0x0201f800, + 0x00100583, 0x02000800, 0x0010032e, 0x832cac00, + 0x00000006, 0x4c580000, 0x4c540000, 0x4200b000, + 0x00000006, 0x4578a800, 0x8054a800, 0x8058b040, + 0x040207fd, 0x83380580, 0x00000046, 0x04020004, + 0x4a025805, 0x00000144, 0x0401f008, 0x4a025805, + 0x00000146, 0x83380580, 0x00000041, 0x04000003, + 0x4a025a07, 0x00000001, 0x59cc0007, 0x82000500, + 0xff000000, 0x80000110, 0x59cc1008, 0x82081500, + 0xff000000, 0x80081540, 0x480a580b, 0x83380580, + 0x00000046, 0x04020006, 0x59cc0007, 0x82000500, + 0x00ffffff, 0x4802580c, 0x0401f005, 0x59cc0008, + 0x82000500, 0x00ffffff, 0x4802580c, 0x83380580, + 0x00000046, 0x04020004, 0x83cc1400, 0x00000009, + 0x0401f003, 0x83cc1400, 0x0000000d, 0x50080000, + 0x9c0001c0, 0x4802580d, 0x80081000, 0x50080000, + 0x9c0001c0, 0x4802580e, 0x83380580, 0x00000046, + 0x04020008, 0x59cc000b, 0x9c0001c0, 0x4802580f, + 0x59cc000c, 0x9c0001c0, 0x48025810, 0x0401f007, + 0x59cc000f, 0x9c0001c0, 0x4802580f, 0x59cc0010, + 0x9c0001c0, 0x48025810, 0x83380580, 0x00000046, + 0x04020004, 0x83cc1400, 0x00000011, 0x0401f003, + 0x83cc1400, 0x00000015, 0x412c3000, 0x82183400, + 0x00000011, 0x4200b000, 0x00000004, 0x50080000, + 0x9c0001c0, 0x44003000, 0x80081000, 0x80183000, + 0x8058b040, 0x040207fa, 0x5c00a800, 0x5c00b000, + 0x0201f800, 0x000203ef, 0x5c025800, 0x1c01f000, + 0x4933c857, 0x492fc857, 0x5930080a, 0x58040200, + 0x8c00051e, 0x04000004, 0x592c0209, 0x84000558, + 0x48025a09, 0x1c01f000, 0x59e0180f, 0x599c0413, + 0x800c1000, 0x80080580, 0x04020002, 0x41781000, + 0x59e00010, 0x59e00810, 0x80040d80, 0x040207fd, + 0x80080580, 0x0400000b, 0x4c080000, 0x599c0814, + 0x599c1015, 0x800c00cc, 0x80040c00, 0x82081440, + 0x00000000, 0x5c001800, 0x82000540, 0x00000001, + 0x4803c857, 0x1c01f000, 0x59300203, 0x4933c857, + 0x4937c857, 0x493bc857, 0x4803c857, 0x82003480, + 0x0000000e, 0x02021800, 0x0010032e, 0x0c01f001, + 0x0010b4ea, 0x0010b60f, 0x0010b4ea, 0x0010b4ea, + 0x0010b4ea, 0x0010b4ea, 0x0010b4ea, 0x0010b56a, + 0x0010b4ec, 0x0010b4ea, 0x0010b4ea, 0x0010b4ea, + 0x0010b4ea, 0x0010b4ea, 0x0201f800, 0x0010032e, + 0x83380580, 0x0000004c, 0x02020800, 0x0010032e, + 0x0201f800, 0x00104956, 0x04020023, 0x59a80a1b, + 0x5932481c, 0x59240200, 0x82000500, 0x000000e0, + 0x82000580, 0x00000080, 0x0400001b, 0x8c040d12, + 0x04000032, 0x59cc0806, 0x82040d00, 0xff000000, + 0x82040580, 0x03000000, 0x04000020, 0x82040580, + 0x50000000, 0x04000005, 0x82040580, 0x52000000, + 0x02020000, 0x00020b9d, 0x83340580, 0x0010e23c, + 0x04000006, 0x4d3c0000, 0x417a7800, 0x0201f800, + 0x0010ff80, 0x5c027800, 0x4a026403, 0x00000001, + 0x0401f014, 0x59cc0806, 0x82040d00, 0xff000000, + 0x82040580, 0x03000000, 0x04000008, 0x82040580, + 0x50000000, 0x04000005, 0x82040580, 0x52000000, + 0x02020000, 0x00020b9d, 0x4a026403, 0x00000009, + 0x4a02641b, 0x00000009, 0x4a02621b, 0x00000000, + 0x4a026407, 0x00000004, 0x4a026203, 0x00000001, + 0x0201f000, 0x00106d1c, 0x59240400, 0x8c00050a, + 0x04020023, 0x0201f800, 0x0010c0f9, 0x04020020, + 0x59cc0806, 0x4807c857, 0x82040d00, 0xff000000, + 0x82040580, 0x03000000, 0x04000013, 0x82040580, + 0x20000000, 0x04000010, 0x82040580, 0x21000000, + 0x0400000d, 0x82040580, 0x24000000, 0x0400000a, + 0x82040580, 0x50000000, 0x04000007, 0x82040580, + 0x52000000, 0x04000004, 0x82040580, 0x05000000, + 0x0402000a, 0x9c0431c0, 0x42028000, 0x00000046, + 0x42002800, 0x00000001, 0x0401fc39, 0x0401f92d, + 0x02000800, 0x0010032e, 0x42002000, 0x00000051, + 0x0201f800, 0x0010800d, 0x59cc0000, 0x82000500, + 0x00ffffff, 0x82000580, 0x00ffffff, 0x04000005, + 0x4a026203, 0x00000007, 0x493a6403, 0x1c01f000, + 0x59325818, 0x812e59c0, 0x02020800, 0x0010059d, + 0x0201f000, 0x00020b9d, 0x4d2c0000, 0x4c580000, + 0x4c500000, 0x4c540000, 0x41385000, 0x83380580, + 0x00000054, 0x02020800, 0x0010032e, 0x59325809, + 0x592c0c0c, 0x82040d00, 0x0000e000, 0x82040580, + 0x00002000, 0x04020080, 0x59300818, 0x800409c0, + 0x04000016, 0x58041405, 0x41cca800, 0x8204a400, + 0x00000006, 0x82080480, 0x00000010, 0x04021005, + 0x4008b000, 0x0201f800, 0x0010c086, 0x0401f00b, + 0x40001000, 0x4200b000, 0x0000000f, 0x0201f800, + 0x0010c086, 0x58040801, 0x800409c0, 0x040207f0, + 0x0201f800, 0x0010032e, 0x83340580, 0x0010e23c, + 0x04000065, 0x59344c00, 0x592c0c0a, 0x4807c857, + 0x4827c857, 0x82040d00, 0x000000ff, 0x82040580, + 0x00000003, 0x0400002a, 0x82040580, 0x00000005, + 0x04000031, 0x82040580, 0x00000020, 0x0400003d, + 0x82040580, 0x00000052, 0x04000049, 0x82040580, + 0x00000050, 0x04000049, 0x82040580, 0x00000021, + 0x04000004, 0x82040580, 0x00000024, 0x0402004a, + 0x82240500, 0x0000ff00, 0x82000580, 0x00000700, + 0x04000008, 0x42000800, 0x00000009, 0x0201f800, + 0x001045ea, 0x42005000, 0x0000000c, 0x0401f03e, + 0x4a025a07, 0x00000031, 0x4a02580e, 0x00000009, + 0x59340400, 0x4802580f, 0x0201f800, 0x000203ef, + 0x0201f800, 0x00107eb4, 0x0401f044, 0x41780800, + 0x0201f800, 0x001046e4, 0x42000800, 0x00000003, + 0x0201f800, 0x001045ea, 0x42005000, 0x00000008, + 0x0401f029, 0x59cc3800, 0x821c3d00, 0x00ffffff, + 0x4c1c0000, 0x0201f800, 0x00101fc9, 0x5c003800, + 0x04020021, 0x59cc0007, 0x0201f800, 0x001063d6, + 0x0402001d, 0x4a026c00, 0x00000707, 0x0401f01a, + 0x82240500, 0x0000ff00, 0x82000580, 0x00000700, + 0x040007d8, 0x82240500, 0x000000ff, 0x82000580, + 0x00000009, 0x040007d3, 0x0201f800, 0x00104752, + 0x42005000, 0x0000000a, 0x0401f00b, 0x42005000, + 0x0000000e, 0x0401f003, 0x42005000, 0x00000010, + 0x82240500, 0x0000ff00, 0x82000580, 0x00000700, + 0x040007c4, 0x482a6403, 0x4a026203, 0x00000001, + 0x592c000e, 0x48026012, 0x497a6014, 0x59a8002b, + 0x48026006, 0x417a7800, 0x0201f800, 0x00106d1c, + 0x59325818, 0x812e59c0, 0x04000004, 0x0201f800, + 0x0010059d, 0x497a6018, 0x5c00a800, 0x5c00a000, + 0x5c00b000, 0x5c025800, 0x1c01f000, 0x4d2c0000, + 0x59325809, 0x83380580, 0x00000013, 0x0402003c, + 0x492fc857, 0x59300c03, 0x82040580, 0x00000054, + 0x04000030, 0x82040580, 0x00000010, 0x0400002a, + 0x82040580, 0x0000000e, 0x04000027, 0x59341400, + 0x82081d00, 0x0000ff00, 0x82081500, 0x000000ff, + 0x82040580, 0x00000008, 0x04000013, 0x82040580, + 0x0000000c, 0x04000013, 0x82040580, 0x0000000a, + 0x02020800, 0x0010032e, 0x820c0580, 0x00000700, + 0x04000018, 0x82080580, 0x00000009, 0x04000015, + 0x42000800, 0x00000006, 0x0201f800, 0x001045ea, + 0x0401f010, 0x42000000, 0x00000003, 0x0401f003, + 0x42000000, 0x00000009, 0x80080580, 0x04020009, + 0x42000800, 0x00000004, 0x0201f800, 0x001045ea, + 0x0401f004, 0x59340200, 0x8400051a, 0x48026a00, + 0x4a025a07, 0x00000000, 0x0201f800, 0x000203ef, + 0x0201f800, 0x00020b9d, 0x0401f024, 0x83380580, + 0x00000027, 0x0400000f, 0x83380580, 0x00000014, + 0x02020800, 0x0010032e, 0x492fc857, 0x0201f800, + 0x00106d91, 0x42028000, 0x00000031, 0x42000800, + 0x00000004, 0x42001000, 0x000000ff, 0x0401f00a, + 0x492fc857, 0x0201f800, 0x00106d91, 0x42028000, + 0x00000031, 0x42000800, 0x00000004, 0x42001000, + 0x00000010, 0x49425a07, 0x4806580e, 0x480a580f, + 0x0201f800, 0x000203ef, 0x0201f800, 0x00104cbe, + 0x0201f800, 0x00107eb4, 0x5c025800, 0x1c01f000, + 0x492fc857, 0x42007000, 0x00020cf0, 0x58380806, + 0x492c7006, 0x800409c0, 0x04020004, 0x492c7007, + 0x0201f000, 0x00020026, 0x492c0800, 0x1c01f000, + 0x4d2c0000, 0x4c580000, 0x4c500000, 0x4c540000, + 0x4933c857, 0x4937c857, 0x59cc0806, 0x4807c857, + 0x82040d00, 0xff000000, 0x82040580, 0x03000000, + 0x0400000d, 0x82040580, 0x05000000, 0x0400000a, + 0x82040580, 0x21000000, 0x04000032, 0x82040580, + 0x24000000, 0x0400002f, 0x82040580, 0x20000000, + 0x04020031, 0x0201f800, 0x00100583, 0x0400002e, + 0x492fc857, 0x492e6018, 0x59a8b05a, 0x8258b400, + 0x0000001b, 0x8258b500, 0xfffffffc, 0x8058b104, + 0x485a5c05, 0x412c7800, 0x41cca000, 0x82580480, + 0x00000010, 0x04021006, 0x832cac00, 0x00000006, + 0x0201f800, 0x0010c086, 0x0401f016, 0x40580800, + 0x4200b000, 0x0000000f, 0x832cac00, 0x00000006, + 0x0201f800, 0x0010c086, 0x8204b480, 0x0000000f, + 0x0201f800, 0x00100583, 0x04000004, 0x492c7801, + 0x412c7800, 0x0401f7ea, 0x59325818, 0x0201f800, + 0x0010059d, 0x497a6018, 0x80000580, 0x0401f006, + 0x59340200, 0x84000554, 0x48026a00, 0x82000540, + 0x00000001, 0x5c00a800, 0x5c00a000, 0x5c00b000, + 0x5c025800, 0x1c01f000, 0x4933c857, 0x492fc857, + 0x4d2c0000, 0x59300a03, 0x82040580, 0x00000007, + 0x04000037, 0x82040580, 0x00000001, 0x02020800, + 0x0010032e, 0x0201f800, 0x00106e41, 0x4df00000, + 0x598c000f, 0x81300580, 0x04020016, 0x59300004, + 0x8c000520, 0x04000004, 0x84000520, 0x48026004, + 0x0401f016, 0x42001000, 0x0010ce5b, 0x50081000, + 0x58080002, 0x82000580, 0x00000100, 0x04000006, + 0x5808000b, 0x81300580, 0x02020800, 0x0010032e, + 0x0401f00a, 0x0201f800, 0x00107161, 0x04020021, + 0x59300004, 0x8c000520, 0x04000004, 0x84000520, + 0x48026004, 0x0401f004, 0x0201f800, 0x001101de, + 0x80c40040, 0x5c03e000, 0x02000800, 0x00106e2e, + 0x0201f800, 0x0010989f, 0x02000800, 0x0010032e, + 0x59325809, 0x4a025a07, 0x00000005, 0x0201f800, + 0x000203ef, 0x0201f800, 0x00104cbe, 0x59325818, + 0x812e59c0, 0x02020800, 0x0010059d, 0x0201f800, + 0x00107eb4, 0x80000580, 0x5c025800, 0x1c01f000, + 0x5c03e000, 0x02000800, 0x00106e2e, 0x59300c07, + 0x82040580, 0x00000011, 0x040007b7, 0x0401f7f7, + 0x4c040000, 0x59340200, 0x4803c857, 0x8c00051c, + 0x04000009, 0x59cc0805, 0x591c001a, 0x4803c857, + 0x80040580, 0x04000004, 0x80000580, 0x4803c856, + 0x0401f003, 0x82000540, 0x00000001, 0x5c000800, + 0x1c01f000, 0x4c000000, 0x4c0c0000, 0x4c100000, + 0x42001800, 0x0000ffff, 0x42002000, 0x00000004, + 0x0401f013, 0x4c000000, 0x4c0c0000, 0x4c100000, + 0x5930200a, 0x58101c03, 0x42002000, 0x00000004, + 0x0401f00b, 0x4c000000, 0x4c0c0000, 0x4c100000, + 0x5930200a, 0x801021c0, 0x02000800, 0x0010032e, + 0x58101c03, 0x42002000, 0x00000007, 0x480fc857, + 0x4813c857, 0x481bc857, 0x0201f800, 0x00101fb4, + 0x0201f800, 0x00103a21, 0x5c002000, 0x5c001800, + 0x5c000000, 0x1c01f000, 0x8d0e1d20, 0x0400000c, + 0x4d400000, 0x4d200000, 0x42024000, 0x000000ff, + 0x850e1d44, 0x42028000, 0x0000002a, 0x0201f800, + 0x0010b198, 0x5c024000, 0x5c028000, 0x1c01f000, + 0x59a8021b, 0x8c000508, 0x04000005, 0x599c0017, + 0x8c00050a, 0x04020002, 0x1c01f000, 0x82000540, + 0x00000001, 0x1c01f000, 0x59300429, 0x84000540, + 0x48026429, 0x1c01f000, 0x4c640000, 0x0201f800, + 0x00109ccc, 0x59300203, 0x82000580, 0x00000008, + 0x04020015, 0x4200c800, 0x00000032, 0x42000000, + 0x20000000, 0x41300800, 0x0201f800, 0x001008c7, + 0x0400000d, 0x59300203, 0x82000580, 0x00000008, + 0x04020009, 0x42000000, 0x0000001e, 0x80000040, + 0x040207ff, 0x8064c840, 0x040207f1, 0x0201f800, + 0x0010032e, 0x0201f800, 0x00109ce4, 0x5c00c800, + 0x1c01f000, 0x0201f800, 0x00100583, 0x02000800, + 0x0010032e, 0x59340403, 0x49265802, 0x49365803, + 0x4a025a05, 0x00000055, 0x48025c07, 0x4a025c08, + 0x00001000, 0x59340802, 0x82040d00, 0x00ffffff, + 0x59300403, 0x82000580, 0x00000086, 0x42000000, + 0x85000000, 0x04020003, 0x42000000, 0x84000000, + 0x80040540, 0x4802580a, 0x59240005, 0x4802580b, + 0x42000000, 0x00990000, 0x59300c07, 0x82040d80, + 0x00000005, 0x04000002, 0x8400052e, 0x4802580c, + 0x497a580d, 0x59cc0004, 0x4802580e, 0x497a580f, + 0x42000800, 0x00030300, 0x59300403, 0x82000580, + 0x00000086, 0x04020006, 0x59cc0004, 0x48025811, + 0x4a025812, 0x0000ffff, 0x41780800, 0x48065810, + 0x1c01f000, 0x492fc857, 0x59a82852, 0x801429c0, + 0x0400005f, 0x4c5c0000, 0x4c600000, 0x4c640000, + 0x4d2c0000, 0x4d300000, 0x42026000, 0x00111500, + 0x592c0c07, 0x592c100a, 0x82081500, 0x00ffffff, + 0x592c180b, 0x592c200e, 0x40165800, 0x4014c000, + 0x4014c800, 0x592c0205, 0x82000580, 0x00000155, + 0x0402003e, 0x592c0407, 0x80040580, 0x0402003b, + 0x592c000a, 0x82000500, 0x00ffffff, 0x80080580, + 0x04020036, 0x592c000b, 0x82000500, 0x00ffffff, + 0x800c0580, 0x04020031, 0x592c000e, 0x80100580, + 0x0402002e, 0x4c040000, 0x4c080000, 0x4c0c0000, + 0x4c100000, 0x40640000, 0x812c0580, 0x0402001b, + 0x59300203, 0x82000580, 0x00000000, 0x04000013, + 0x59300009, 0x800001c0, 0x04000010, 0x0201f800, + 0x00106e41, 0x4df00000, 0x0201f800, 0x00106d2b, + 0x0201f800, 0x00110148, 0x80c40040, 0x04020003, + 0x4a026203, 0x00000000, 0x5c03e000, 0x02000800, + 0x00106e2e, 0x497a6009, 0x592cc800, 0x4064c000, + 0x4064b800, 0x0401f003, 0x592cb800, 0x485cc000, + 0x4a025a07, 0x00000005, 0x0201f800, 0x000203ef, + 0x405e5800, 0x5c002000, 0x5c001800, 0x5c001000, + 0x5c000800, 0x0401f003, 0x412cc000, 0x592e5800, + 0x812e59c0, 0x040207bc, 0x48675052, 0x48635053, + 0x0201f800, 0x00107e2a, 0x5c026000, 0x5c025800, + 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x1c01f000, + 0x42000800, 0x0000000b, 0x0401f006, 0x42000800, + 0x00000004, 0x0401f003, 0x42000800, 0x00000001, + 0x4d2c0000, 0x59325809, 0x812e59c0, 0x04000012, + 0x592c0205, 0x82000500, 0x000000ff, 0x82000580, + 0x0000000e, 0x0402000c, 0x592c0000, 0x48026009, + 0x497a5800, 0x48065a09, 0x0201f800, 0x00105d3b, + 0x04000003, 0x0401fe37, 0x0401f003, 0x0201f800, + 0x000203ef, 0x5c025800, 0x1c01f000, 0x42001000, + 0x00001000, 0x80081040, 0x04000010, 0x0201f800, + 0x0010c0d6, 0x040007fc, 0x42001000, 0x00007b00, + 0x5808081c, 0x4a030000, 0x00000000, 0x82040d00, + 0xffff0000, 0x82040580, 0x84320000, 0x04020003, + 0x4a035078, 0x8000001b, 0x1c01f000, 0x4d340000, + 0x4d440000, 0x599c0018, 0x82000500, 0xffffffcf, + 0x82000540, 0x00000010, 0x48033818, 0x599c0019, + 0x82000500, 0xffff1fff, 0x82000540, 0x00006000, + 0x48033819, 0x42003000, 0x0000fc0e, 0x417a8800, + 0x0201f800, 0x0010462d, 0x42003000, 0x0010c280, + 0x45783000, 0x49375079, 0x4a026c03, 0x0000ffff, + 0x497a6806, 0x497a6807, 0x4a026c08, 0x000004b0, + 0x4a026a08, 0x00000014, 0x497a6809, 0x4a026c04, + 0x00000008, 0x5c028800, 0x5c026800, 0x1c01f000, + 0x4a038893, 0x00000001, 0x59340400, 0x82000500, + 0x000000ff, 0x82000580, 0x00000003, 0x04000017, + 0x0201f800, 0x00107f02, 0x04000014, 0x4933c857, + 0x59aa6879, 0x4936600a, 0x4a026407, 0x00000012, + 0x42000800, 0x00000003, 0x0201f800, 0x001045ea, + 0x42001000, 0x00000008, 0x0201f800, 0x001074c1, + 0x4a0378e4, 0x0c000000, 0x42027000, 0x000000d0, + 0x0201f800, 0x00020bc1, 0x1c01f000, 0x4d400000, + 0x4d340000, 0x0201f800, 0x00106e41, 0x4df00000, + 0x59aa6879, 0x42028000, 0x00000029, 0x0401f9cc, + 0x4a026c00, 0x00000707, 0x5c03e000, 0x02000800, + 0x00106e2e, 0x5c026800, 0x5c028000, 0x1c01f000, + 0x4a03c013, 0x00010001, 0x4a03c014, 0x00010001, + 0x4a03c013, 0x00010000, 0x42000000, 0x0000000f, + 0x80000040, 0x040207ff, 0x4a03c013, 0x00010001, + 0x1c01f000, 0x4803c856, 0x592c0a07, 0x8c040d1e, + 0x04020008, 0x80140110, 0x80000040, 0x04000022, + 0x4a033006, 0x0010b8e1, 0x0201f000, 0x000206d1, + 0x80140110, 0x80000040, 0x02020000, 0x0010564a, + 0x592c0208, 0x82000c80, 0x00001001, 0x04001003, + 0x0201f000, 0x0010565a, 0x592c1014, 0x82080500, + 0xffff0003, 0x02020000, 0x0010565a, 0x4202e000, + 0x00000002, 0x42000000, 0x0010e2e7, 0x50007000, + 0x592c0012, 0x592c0813, 0x48007006, 0x48047007, + 0x492c700a, 0x4978700d, 0x4978700b, 0x0201f000, + 0x00105cf9, 0x59a80878, 0x8c040d3e, 0x02000000, + 0x00105642, 0x59aa6879, 0x59340400, 0x82000580, + 0x00000404, 0x04020053, 0x59a80078, 0x8c000506, + 0x0402004c, 0x592c080a, 0x48066809, 0x592c1207, + 0x59341806, 0x8c081506, 0x04000002, 0x59341807, + 0x480e580a, 0x8c081502, 0x04020005, 0x40040000, + 0x800c0480, 0x0400102d, 0x0401f02f, 0x592c0810, + 0x82040500, 0x00000003, 0x0402004a, 0x592c0011, + 0x80000540, 0x04020011, 0x592c000f, 0x82000500, + 0x00000003, 0x04020043, 0x0201f800, 0x00020b7b, + 0x04000038, 0x4932580b, 0x4a026407, 0x00000012, + 0x492e6009, 0x4936600a, 0x42027000, 0x000000d1, + 0x0201f000, 0x00020bc1, 0x592e600b, 0x0201f800, + 0x00109d04, 0x0400002f, 0x59300407, 0x82000580, + 0x00000012, 0x0402002b, 0x59300809, 0x800409c0, + 0x04020015, 0x59300203, 0x82000580, 0x00000007, + 0x04020024, 0x492e6009, 0x42027000, 0x000000d9, + 0x0201f000, 0x00020bc1, 0x8c081500, 0x040007d4, + 0x480e580a, 0x59a80078, 0x8400054c, 0x84000508, + 0x48035078, 0x4a025a07, 0x00000000, 0x0201f000, + 0x000203ef, 0x58041000, 0x800811c0, 0x04000003, + 0x40080800, 0x0401f7fc, 0x492c0800, 0x1c01f000, + 0x4a025a07, 0x00000028, 0x0201f000, 0x000203ef, + 0x4a025a07, 0x00000029, 0x0201f000, 0x000203ef, + 0x4a025a07, 0x0000002c, 0x0201f000, 0x000203ef, + 0x4a025a07, 0x00000008, 0x0201f000, 0x000203ef, + 0x4a025a07, 0x00000003, 0x4a025c07, 0x00000002, + 0x0201f000, 0x000203ef, 0x4803c856, 0x80140110, + 0x80000040, 0x04000005, 0x4a033006, 0x0010b956, + 0x0201f000, 0x000206d1, 0x59a80878, 0x8c040d3e, + 0x02000000, 0x00105642, 0x592c0a07, 0x82040480, + 0x00000004, 0x02021000, 0x0010565a, 0x59a80078, + 0x8c000506, 0x0402001d, 0x59aa6879, 0x59340400, + 0x82000580, 0x00000404, 0x0402001c, 0x0201f800, + 0x00020b7b, 0x0400001d, 0x4a026407, 0x00000012, + 0x492e6009, 0x4936600a, 0x592c0a07, 0x82040580, + 0x00000002, 0x04000004, 0x592c0010, 0x800001c0, + 0x04000016, 0x82040400, 0x0010b97a, 0x50027000, + 0x0201f000, 0x00020bc1, 0x000000d4, 0x000000d5, + 0x000000d3, 0x000000d6, 0x4a025a07, 0x00000028, + 0x0201f000, 0x000203ef, 0x4a025a07, 0x00000029, + 0x0201f000, 0x000203ef, 0x4a025a07, 0x0000002c, + 0x0201f000, 0x000203ef, 0x0201f800, 0x00020b9d, + 0x0201f000, 0x0010565a, 0x492fc857, 0x59a80878, + 0x8c040d3e, 0x42000800, 0x00004001, 0x040000b6, + 0x59a80078, 0x8c000506, 0x42000800, 0x00000028, + 0x040200b1, 0x59aa6879, 0x59340400, 0x82000580, + 0x00000404, 0x42000800, 0x00000029, 0x040200aa, + 0x4a025a05, 0x0000012b, 0x4a025806, 0xaa00feed, + 0x4a025a07, 0x00000004, 0x4a025a08, 0x00000001, + 0x59a0020b, 0x48025810, 0x48025814, 0x48025a0a, + 0x59a00408, 0x59a01208, 0x900811c0, 0x80081540, + 0x480a5812, 0x59a0040a, 0x59a0120a, 0x900811c0, + 0x80081540, 0x480a5813, 0x59a00407, 0x48025a0b, + 0x59a0040b, 0x48025c0b, 0x0201f800, 0x00020b7b, + 0x42000800, 0x0000002c, 0x0400008b, 0x4a026407, + 0x00000012, 0x492e6009, 0x4936600a, 0x42027000, + 0x000000de, 0x0201f000, 0x00020bc1, 0x59cc0801, + 0x82040d00, 0x00ffffff, 0x82040580, 0x0000fc0e, + 0x04020014, 0x59cc0800, 0x82040d00, 0x00ffffff, + 0x82040580, 0x0000fc0e, 0x04020010, 0x59cc0c00, + 0x80040910, 0x82040580, 0x00000022, 0x04000011, + 0x82040580, 0x00000023, 0x04000027, 0x82040580, + 0x00000005, 0x0400004e, 0x4807c857, 0x0401f008, + 0x4807c857, 0x0401f006, 0x4807c857, 0x42000000, + 0x0010cfb2, 0x0201f800, 0x0010bfb3, 0x1c01f000, + 0x59cc0806, 0x59a80078, 0x8c00050a, 0x04020010, + 0x82040580, 0x05000000, 0x0402000d, 0x42027000, + 0x000000da, 0x0201f800, 0x00107f02, 0x59aa6879, + 0x4936600a, 0x4a026407, 0x00000013, 0x59cc0404, + 0x48026202, 0x0201f000, 0x00020bc1, 0x4807c857, + 0x42000000, 0x0010cfb2, 0x0201f800, 0x0010bfb3, + 0x1c01f000, 0x0201f800, 0x00106268, 0x0400001f, + 0x59300c07, 0x82040580, 0x00000012, 0x02020800, + 0x001003f5, 0x0402001c, 0x5932680a, 0x59cc0a04, + 0x48066202, 0x59300004, 0x8c00053e, 0x02020800, + 0x00107226, 0x04020014, 0x42027000, 0x000000dc, + 0x59cc0806, 0x82040580, 0x02000000, 0x02000000, + 0x00020bc1, 0x82040580, 0x01000000, 0x02020800, + 0x001003f5, 0x04020008, 0x42027000, 0x000000dd, + 0x0201f000, 0x00020bc1, 0x59cc0c04, 0x4807c857, + 0x0401f002, 0x4933c857, 0x42000000, 0x0010cfb2, + 0x0201f800, 0x0010bfb3, 0x1c01f000, 0x0201f800, + 0x00106268, 0x04000013, 0x59300c07, 0x82040580, + 0x00000012, 0x02020800, 0x001003f5, 0x04020010, + 0x5932680a, 0x59cc0a04, 0x48066202, 0x59300004, + 0x8c00053e, 0x02020800, 0x00107226, 0x04020008, + 0x42027000, 0x000000db, 0x0201f000, 0x00020bc1, + 0x59cc0c04, 0x4807c857, 0x0401f002, 0x4933c857, + 0x42000000, 0x0010cfb2, 0x0201f800, 0x0010bfb3, + 0x1c01f000, 0x492fc857, 0x4807c857, 0x82040580, + 0x00000000, 0x02000000, 0x001022c6, 0x4a034207, + 0x00004005, 0x48074407, 0x0201f000, 0x001022c9, + 0x48066004, 0x59bc00ea, 0x8c000516, 0x040207fe, + 0x83300400, 0xc0000000, 0x480378e1, 0x1c01f000, + 0x4d300000, 0x598c000d, 0x80026540, 0x0400000e, + 0x0201f800, 0x00106e27, 0x0201f800, 0x00106e15, + 0x59300000, 0x800001c0, 0x04000004, 0x4803180d, + 0x497a6000, 0x0401f003, 0x497b180d, 0x497b180c, + 0x80000580, 0x5c026000, 0x1c01f000, 0x4d2c0000, + 0x4d300000, 0x4d340000, 0x4c5c0000, 0x4178b800, + 0x598e600d, 0x813261c0, 0x0400000b, 0x0201f800, + 0x00106d2b, 0x59300000, 0x4c000000, 0x405c3000, + 0x0401f826, 0x0201f800, 0x001101fa, 0x5c026000, + 0x0401f7f5, 0x5c00b800, 0x5c026800, 0x5c026000, + 0x5c025800, 0x1c01f000, 0x4933c857, 0x4c5c0000, + 0x813261c0, 0x02000800, 0x0010032e, 0x41300000, + 0x598cb80d, 0x41783000, 0x805cb9c0, 0x0400000f, + 0x805c0d80, 0x04000004, 0x405c3000, 0x5818b800, + 0x0401f7fa, 0x0401f80d, 0x598c000f, 0x81300580, + 0x02000800, 0x001074ce, 0x497a6008, 0x80000580, + 0x5c00b800, 0x1c01f000, 0x82000540, 0x00000001, + 0x5c00b800, 0x1c01f000, 0x59300800, 0x497a6000, + 0x0201f800, 0x00106e15, 0x801831c0, 0x04020009, + 0x598c000c, 0x81300580, 0x04020004, 0x4803180c, + 0x4803180d, 0x0401f008, 0x4807180d, 0x0401f006, + 0x48043000, 0x598c000c, 0x81300580, 0x04020002, + 0x481b180c, 0x0201f000, 0x00106e27, 0x59325809, + 0x59300c03, 0x82040480, 0x000000df, 0x04021004, + 0x82040480, 0x000000d0, 0x0401f002, 0x81780040, + 0x04001002, 0x0c01f008, 0x4933c857, 0x493bc857, + 0x42000000, 0x0010cfb4, 0x0201f800, 0x0010bfb3, + 0x1c01f000, 0x0010baeb, 0x0010bb02, 0x0010bb1f, + 0x0010bb30, 0x0010bb41, 0x0010bb54, 0x0010bb67, + 0x0010bb7b, 0x0010bac2, 0x0010bac2, 0x0010bac2, + 0x0010bac2, 0x0010bac2, 0x0010bac2, 0x0010bad8, + 0x42000800, 0x00000022, 0x0401f8d1, 0x592c0a0a, + 0x4805a207, 0x592c0a0b, 0x4805a208, 0x592c0c0b, + 0x4805a408, 0x4a01a006, 0x0c000000, 0x59340408, + 0x48026006, 0x42000800, 0x00000003, 0x42001000, + 0x0000dc00, 0x0201f000, 0x00107d64, 0x42000800, + 0x00000022, 0x0401f8be, 0x497b8880, 0x59a8001f, + 0x82000500, 0x0000ffff, 0x4c000000, 0x0201f800, + 0x001015e5, 0x5c000000, 0x48038880, 0x4a01a006, + 0x03000000, 0x4801a207, 0x59a80004, 0x4801a407, + 0x42000800, 0x00000002, 0x42001000, 0x0000dc00, + 0x0201f000, 0x00107d64, 0x42000800, 0x00000022, + 0x0401f8a7, 0x592c0a07, 0x592c100f, 0x592c0010, + 0x80080580, 0x82000500, 0x00000003, 0x0402008c, + 0x82080500, 0x00000003, 0x04020089, 0x42001800, + 0x00000002, 0x8c040d06, 0x04020003, 0x42001800, + 0x00000001, 0x4a01a006, 0x04000000, 0x4809a007, + 0x480da008, 0x42000800, 0x00000003, 0x42001000, + 0x0000dc00, 0x0201f000, 0x00107d64, 0x42000800, + 0x00000022, 0x0401f88a, 0x59300819, 0x5930101a, + 0x5930181b, 0x4a01a006, 0x06000000, 0x4805a007, + 0x4809a008, 0x480da009, 0x42000800, 0x00000004, + 0x42001000, 0x0000dc00, 0x0201f000, 0x00107d64, + 0x42000800, 0x00000022, 0x0401f879, 0x592c0a0a, + 0x592c100b, 0x592c180c, 0x4a01a006, 0x07000000, + 0x4805a207, 0x480da008, 0x4809a009, 0x42000800, + 0x00000004, 0x42001000, 0x0000dc00, 0x0201f000, + 0x00107d64, 0x42000800, 0x00000022, 0x0401f868, + 0x592c080a, 0x592c1010, 0x82080500, 0xfffc0003, + 0x0402004f, 0x80081104, 0x4a01a006, 0x08000000, + 0x4805a007, 0x4809a008, 0x42000800, 0x00000003, + 0x42001000, 0x0000dc00, 0x0201f000, 0x00107d64, + 0x42000800, 0x00000022, 0x0401f855, 0x592c080a, + 0x592c1010, 0x82080500, 0xfffc0003, 0x0402003c, + 0x80081104, 0x4a01a006, 0x09000000, 0x4805a007, + 0x4809a008, 0x42000800, 0x00000003, 0x42001000, + 0x0000dc00, 0x0201f000, 0x00107d64, 0x42000800, + 0x00000022, 0x0401f842, 0x592c080a, 0x592c1010, + 0x592c180b, 0x82080500, 0xffff0000, 0x04020028, + 0x4a01a006, 0x0a000000, 0x4805a207, 0x480da407, + 0x4809a008, 0x42000800, 0x00000003, 0x42001000, + 0x0000dc00, 0x0201f000, 0x00107d64, 0x42000800, + 0x00000022, 0x0401f82e, 0x4a01a006, 0x0b000000, + 0x42000800, 0x00000001, 0x42001000, 0x0000dc00, + 0x0201f000, 0x00107d64, 0x59300c03, 0x82040580, + 0x000000d8, 0x04000003, 0x0201f800, 0x0010032e, + 0x42000800, 0x00000023, 0x0401f81d, 0x4a01a006, + 0x02000000, 0x42000800, 0x00000001, 0x42001000, + 0x0000dc00, 0x0201f000, 0x00107d64, 0x592c0006, + 0x4803c857, 0x480bc857, 0x0201f800, 0x00106d91, + 0x4a025a07, 0x00000003, 0x4a025c07, 0x00000002, + 0x592c0205, 0x82000500, 0x000000ff, 0x82000580, + 0x0000002b, 0x04020002, 0x480a5808, 0x0201f800, + 0x000203ef, 0x0201f000, 0x00020b9d, 0x81a5a000, + 0x4a01a001, 0x0000fc0e, 0x4979a005, 0x4979a003, + 0x4a034800, 0x00000011, 0x59307002, 0x82040580, + 0x00000022, 0x04020007, 0x4a01a000, 0x2200fc0e, + 0x4a01a002, 0xfe290000, 0x4839a004, 0x1c01f000, + 0x82040580, 0x00000023, 0x02020800, 0x0010032e, + 0x4a01a000, 0x2300fc0e, 0x4a01a002, 0xfe980000, + 0x903871c0, 0x4839a004, 0x1c01f000, 0x4a034800, + 0x00000011, 0x81a5a000, 0x4a01a000, 0x0100fc0e, + 0x4a01a001, 0x0000fc0e, 0x4a01a002, 0xfe000008, + 0x41781000, 0x42000800, 0x01000000, 0x592c0205, + 0x82000500, 0x000000ff, 0x82000580, 0x0000001b, + 0x04020006, 0x592c1011, 0x592c0207, 0x8c00051c, + 0x04020002, 0x41780800, 0x4805a003, 0x59300002, + 0x4801a004, 0x4809a005, 0x59340c08, 0x42001000, + 0x00000100, 0x0201f800, 0x00106c7e, 0x0201f800, + 0x00106604, 0x83180d40, 0x00000038, 0x42001000, + 0x0000c920, 0x0201f000, 0x00107d83, 0x59300a03, + 0x82040480, 0x00000009, 0x04021004, 0x82040480, + 0x00000001, 0x0401f002, 0x81780040, 0x0c021002, + 0x0401f22c, 0x0010bc01, 0x0010bc1e, 0x0010bc7e, + 0x0010bcc0, 0x0010be24, 0x0010be24, 0x0010bd20, + 0x0010bd49, 0x83380580, 0x00000013, 0x04000015, + 0x83380580, 0x00000014, 0x0402021e, 0x59300c03, + 0x4807c857, 0x0201f800, 0x00106d91, 0x0201f800, + 0x0010989f, 0x04000009, 0x4d2c0000, 0x59325809, + 0x4a025a07, 0x00000001, 0x497a5c07, 0x0201f800, + 0x000203ef, 0x5c025800, 0x0201f000, 0x00107eb4, + 0x59300c03, 0x82040580, 0x000000d8, 0x04020209, + 0x0201f000, 0x00020b9d, 0x83380480, 0x000000de, + 0x04021004, 0x83380480, 0x000000db, 0x0401f002, + 0x81780040, 0x040011ff, 0x0c01f001, 0x0010bc2a, + 0x0010bc40, 0x0010bc4a, 0x59300c03, 0x82040580, + 0x000000d1, 0x0400000c, 0x82040580, 0x000000d5, + 0x040201f4, 0x42000800, 0x80000000, 0x4a026203, + 0x00000002, 0x4a026403, 0x000000d9, 0x0201f000, + 0x00020b30, 0x59340408, 0x48026006, 0x42000800, + 0x80000040, 0x4a026203, 0x00000003, 0x0401f7f6, + 0x59300c03, 0x82040480, 0x000000da, 0x04021004, + 0x82040480, 0x000000d0, 0x0401f002, 0x81780040, + 0x0c02101b, 0x0401f1db, 0x0201f800, 0x0010989f, + 0x0402000a, 0x59300c03, 0x82040580, 0x000000d2, + 0x040201d4, 0x42000000, 0x0010cfb1, 0x0401fb60, + 0x0201f000, 0x00020b9d, 0x4933c857, 0x59cc1207, + 0x80081110, 0x4d2c0000, 0x59325809, 0x4a025a07, + 0x00000003, 0x480a5c07, 0x0201f800, 0x000203ef, + 0x5c025800, 0x0201f000, 0x00020b9d, 0x0010bd78, + 0x0010be24, 0x0010bc71, 0x0010bc71, 0x0010be24, + 0x0010bc71, 0x0010be24, 0x0010bc6d, 0x0010be24, + 0x0010bdb8, 0x41780800, 0x0401fa83, 0x0201f000, + 0x00020b9d, 0x0201f800, 0x0010989f, 0x04000009, + 0x4d2c0000, 0x59325809, 0x4a025a07, 0x00000000, + 0x497a5c07, 0x0201f800, 0x000203ef, 0x5c025800, + 0x0201f000, 0x00020b9d, 0x0201f800, 0x0010989f, + 0x0400003e, 0x83380580, 0x0000004a, 0x0400002c, + 0x83380580, 0x00000049, 0x0402019e, 0x4d2c0000, + 0x59325809, 0x592c0a05, 0x82040500, 0x000000ff, + 0x82000580, 0x0000001b, 0x04020019, 0x592c0207, + 0x8c00051c, 0x0402000f, 0x4a025a07, 0x00000040, + 0x497a5c07, 0x592c0000, 0x48026009, 0x0201f800, + 0x000203ef, 0x5c025800, 0x4a026203, 0x00000007, + 0x59300009, 0x800001c0, 0x04020082, 0x1c01f000, + 0x59a80078, 0x8400050a, 0x48035078, 0x4a026203, + 0x00000002, 0x5c025800, 0x1c01f000, 0x4a025a07, + 0x00000000, 0x497a5c07, 0x0201f800, 0x000203ef, + 0x5c025800, 0x0201f000, 0x00020b9d, 0x4933c857, + 0x0201f800, 0x0010707a, 0x0201f800, 0x00106d71, + 0x4d2c0000, 0x59325809, 0x4a025a07, 0x00000001, + 0x497a5c07, 0x0201f800, 0x000203ef, 0x5c025800, + 0x0201f000, 0x00020b9d, 0x4803c856, 0x0401f165, + 0x0201f800, 0x0010989f, 0x0400002c, 0x83380480, + 0x00000054, 0x04021004, 0x83380480, 0x00000047, + 0x0401f002, 0x81780040, 0x04001006, 0x4d2c0000, + 0x59325809, 0x0c01f823, 0x5c025800, 0x1c01f000, + 0x83380580, 0x000000dd, 0x04020152, 0x4933c857, + 0x0201f800, 0x00100c76, 0x0201f800, 0x0010989f, + 0x04000016, 0x592c0a07, 0x82040580, 0x00000004, + 0x04020006, 0x42000800, 0x00000001, 0x0401fd6a, + 0x0201f000, 0x00020b9d, 0x4d2c0000, 0x59325809, + 0x59cc1207, 0x80081110, 0x4a025a07, 0x00000003, + 0x480a5c07, 0x0201f800, 0x000203ef, 0x5c025800, + 0x0201f000, 0x00020b9d, 0x4803c856, 0x0401f135, + 0x0010bd1c, 0x0010bcfd, 0x0010be24, 0x0010be24, + 0x0010be24, 0x0010be24, 0x0010be24, 0x0010be24, + 0x0010be24, 0x0010be24, 0x0010be24, 0x0010be24, + 0x0010bcfd, 0x59300812, 0x82040500, 0xffff0000, + 0x0402001c, 0x42001000, 0x00000000, 0x592c0a07, + 0x82040580, 0x00000004, 0x0402000e, 0x82080580, + 0x00000007, 0x04000007, 0x59300812, 0x800409c0, + 0x04000004, 0x4807c857, 0x42001000, 0x00000015, + 0x40080800, 0x0401fd38, 0x0201f000, 0x00020b9d, + 0x59300812, 0x48065808, 0x480a5a07, 0x497a5c07, + 0x0201f800, 0x000203ef, 0x0201f000, 0x00020b9d, + 0x4803c856, 0x42001000, 0x00000007, 0x0401f7e4, + 0x0201f800, 0x0010989f, 0x0400001b, 0x83380580, + 0x000000d9, 0x040200ff, 0x59340408, 0x48026006, + 0x4a026403, 0x000000d9, 0x0201f800, 0x00020168, + 0x59306809, 0x58340207, 0x8c00051c, 0x04020006, + 0x42000800, 0x80000040, 0x4a026203, 0x00000003, + 0x0401f005, 0x42000800, 0x80000000, 0x4a026203, + 0x00000002, 0x4a026403, 0x000000d9, 0x0201f000, + 0x00020b30, 0x4803c856, 0x83380580, 0x000000dd, + 0x040200e4, 0x42001000, 0x0000800f, 0x42001800, + 0x00000005, 0x59cc2207, 0x80102110, 0x0201f000, + 0x001039ac, 0x83380480, 0x000000df, 0x04021004, + 0x83380480, 0x000000d0, 0x0401f002, 0x81780040, + 0x040010d4, 0x4933c857, 0x493bc857, 0x59340a08, + 0x48066006, 0x0c01f001, 0x0010bd6a, 0x0010bd66, + 0x0010bd6a, 0x0010bd6a, 0x0010bd70, 0x0010bd68, + 0x0010bd70, 0x0010bd6a, 0x0010bd65, 0x0010bd65, + 0x0010bd65, 0x0010bd65, 0x0010bd65, 0x0010bd65, + 0x0010bd70, 0x0401f0bf, 0x59340408, 0x48026006, + 0x0201f800, 0x00020168, 0x4a026203, 0x00000002, + 0x493a6403, 0x42000800, 0x80000000, 0x0401f4e5, + 0x0201f800, 0x0002011a, 0x4a026203, 0x00000004, + 0x493a6403, 0x42000800, 0x80000000, 0x0401f4dd, + 0x59cc0207, 0x59cc0c07, 0x59cc1008, 0x59cc1809, + 0x59cc220a, 0x59cc2c0a, 0x59cc300b, 0x4a026c00, + 0x00000404, 0x48026c04, 0x48038893, 0x48035012, + 0x48066a04, 0x480a6806, 0x480e6807, 0x48126a08, + 0x48166c08, 0x8c183500, 0x0400000d, 0x59cc200d, + 0x59cc280d, 0x4813c857, 0x4817c857, 0x59cc200c, + 0x42001000, 0x0000800f, 0x42001800, 0x00000001, + 0x901029c0, 0x0201f800, 0x001039ad, 0x59a80878, + 0x42001800, 0x00000003, 0x84040d4e, 0x59342007, + 0x8c183502, 0x0402000c, 0x82040d00, 0xffffff7b, + 0x8c183504, 0x04020004, 0x42001800, 0x00000002, + 0x0401f004, 0x42001800, 0x00000004, 0x84040d44, + 0x59342006, 0x48075078, 0x42001000, 0x0000800f, + 0x82102d00, 0xffff0000, 0x80142920, 0x82102500, + 0x0000ffff, 0x0201f800, 0x001039ad, 0x59c80040, + 0x84000534, 0x48039040, 0x0201f000, 0x00020b9d, + 0x0201f800, 0x0010989f, 0x04000023, 0x4d2c0000, + 0x59325809, 0x592c0a05, 0x82040d00, 0x000000ff, + 0x82040580, 0x0000001b, 0x04020019, 0x592c0a07, + 0x8c040d04, 0x04020003, 0x0201f800, 0x0010b8ac, + 0x59340009, 0x4802580a, 0x8c040d06, 0x04020007, + 0x48026806, 0x59a80078, 0x8400054c, 0x84000508, + 0x48035078, 0x0401f002, 0x48026807, 0x4a025a07, + 0x00000000, 0x497a5c07, 0x0201f800, 0x000203ef, + 0x5c025800, 0x0201f000, 0x00020b9d, 0x497a5808, + 0x0401f7f7, 0x4803c856, 0x0401f046, 0x59300a03, + 0x82040480, 0x00000009, 0x04021004, 0x82040480, + 0x00000001, 0x0401f002, 0x81780040, 0x0c021002, + 0x0401f03c, 0x0010bdf1, 0x0010be24, 0x0010be24, + 0x0010be24, 0x0010be24, 0x0010be24, 0x0010be24, + 0x0010bdfd, 0x83380580, 0x00000013, 0x04000008, + 0x83380580, 0x00000014, 0x0402002e, 0x59300c03, + 0x4807c857, 0x0201f800, 0x00106d91, 0x0201f000, + 0x00020b9d, 0x83380580, 0x000000da, 0x04020025, + 0x4933c857, 0x493bc857, 0x59cc0808, 0x59cc1007, + 0x59a81878, 0x820c1d00, 0xfffffffc, 0x82040580, + 0x00000000, 0x04020002, 0x840c1d42, 0x82080580, + 0x00000000, 0x04020002, 0x840c1d40, 0x480f5078, + 0x480fc857, 0x836c0580, 0x00000001, 0x0400000a, + 0x4202d800, 0x00000004, 0x4a035038, 0x00000000, + 0x497b5058, 0x42000000, 0x00000080, 0x0201f800, + 0x0010155d, 0x4a026403, 0x000000d8, 0x4a026203, + 0x00000001, 0x42000800, 0x80000040, 0x0401f431, + 0x4933c857, 0x493bc857, 0x59300203, 0x4803c857, + 0x59300403, 0x4803c857, 0x42000000, 0x0010cfb3, + 0x0401f987, 0x1c01f000, 0x4933c857, 0x4d2c0000, + 0x4d3c0000, 0x417a5800, 0x417a7800, 0x0201f800, + 0x0010989f, 0x04000003, 0x59325809, 0x592e7a09, + 0x0401f81a, 0x82000540, 0x00000001, 0x5c027800, + 0x5c025800, 0x1c01f000, 0x4933c857, 0x4d2c0000, + 0x4d3c0000, 0x42027800, 0x00000040, 0x42000000, + 0x0010cfae, 0x0401f96e, 0x417a5800, 0x0201f800, + 0x0010989f, 0x04000005, 0x59325809, 0x592e7a09, + 0x853e7d4c, 0x493e5a09, 0x0401f804, 0x5c027800, + 0x5c025800, 0x1c01f000, 0x0201f800, 0x00106e41, + 0x4df00000, 0x0401f88b, 0x4803c857, 0x82000c80, + 0x00000009, 0x04021006, 0x0c01f808, 0x5c03e000, + 0x02000800, 0x00106e2e, 0x1c01f000, 0x42000000, + 0x00000006, 0x0401f7f9, 0x0010beb7, 0x0010beb8, + 0x0010be71, 0x0010bece, 0x0010bed9, 0x0010be6b, + 0x0010be6b, 0x0010be6b, 0x0010beb7, 0x4d380000, + 0x417a7000, 0x0401ffb7, 0x5c027000, 0x0201f000, + 0x00107eb4, 0x812e59c0, 0x04000021, 0x42001000, + 0x00000002, 0x833c0500, 0x00000081, 0x04020007, + 0x42001000, 0x00000006, 0x8d3e7d0c, 0x04020003, + 0x42001000, 0x00000004, 0x592c0a07, 0x82040580, + 0x00000004, 0x04020006, 0x40080800, 0x0201f800, + 0x0010ba49, 0x0201f000, 0x00107eb4, 0x480a5a07, + 0x0201f800, 0x000203ef, 0x59300403, 0x82000580, + 0x000000d0, 0x04020004, 0x5930100a, 0x4a001400, + 0x00000707, 0x0201f000, 0x00107eb4, 0x59300c03, + 0x82040580, 0x000000d7, 0x04020005, 0x42000800, + 0x00000004, 0x0401f858, 0x0401f7f0, 0x8d3e7d0c, + 0x040007ee, 0x5932680a, 0x59300816, 0x59340412, + 0x80040580, 0x04020007, 0x42000000, 0x0010cfaf, + 0x0401f90f, 0x0201f800, 0x0010b8ac, 0x0401f7e3, + 0x4933c857, 0x80040800, 0x48066016, 0x4d380000, + 0x59327403, 0x83380580, 0x000000d0, 0x04020003, + 0x4a038893, 0x00000001, 0x4a026203, 0x00000008, + 0x0201f800, 0x00020bc1, 0x5c027000, 0x1c01f000, + 0x8d3e7d0c, 0x04000006, 0x59300407, 0x82000580, + 0x00000013, 0x02000000, 0x00109606, 0x598c000f, + 0x4803c857, 0x81300580, 0x04020004, 0x0201f800, + 0x00107161, 0x040207ac, 0x0201f800, 0x0010ba86, + 0x040007a9, 0x4803c856, 0x0201f800, 0x00106d4c, + 0x040007a5, 0x0401f79e, 0x0201f800, 0x00109552, + 0x04020004, 0x0201f800, 0x0010712a, 0x0402079e, + 0x0201f800, 0x00110065, 0x80c40040, 0x040207f2, + 0x0401f799, 0x812e59c0, 0x04000006, 0x0201f800, + 0x00106e2e, 0x0201f800, 0x00100c76, 0x0401f792, + 0x59300004, 0x8c00053e, 0x0400000d, 0x8c00050c, + 0x0402000b, 0x59306c03, 0x82340580, 0x000000d9, + 0x04020004, 0x42000000, 0x00000003, 0x0401f005, + 0x42000000, 0x00000001, 0x0401f002, 0x59300203, + 0x1c01f000, 0x5931d82a, 0x58ef400a, 0x58ee580c, + 0x58ec0008, 0x48074407, 0x0801f800, 0x1c01f000, + 0x4817c857, 0x4c000000, 0x4c040000, 0x8c142d2a, + 0x04000004, 0x5988011e, 0x80000000, 0x4803111e, + 0x8c142d2e, 0x04000004, 0x5988011f, 0x80000000, + 0x4803111f, 0x8c142d2c, 0x04000013, 0x40140000, + 0x82000500, 0x00070000, 0x82000d80, 0x00030000, + 0x0400000d, 0x82000d80, 0x00040000, 0x0400000a, + 0x82000d80, 0x00050000, 0x04000007, 0x59880005, + 0x80000000, 0x48031005, 0x59880120, 0x80000000, + 0x48031120, 0x5c000800, 0x5c000000, 0x1c01f000, + 0x4817c857, 0x4c000000, 0x4c040000, 0x8c142d2a, + 0x04000004, 0x59880121, 0x80000000, 0x48031121, + 0x8c142d2e, 0x04000004, 0x59880122, 0x80000000, + 0x48031122, 0x8c142d2c, 0x04000013, 0x40140000, + 0x82000500, 0x00070000, 0x82000d80, 0x00030000, + 0x0400000d, 0x82000d80, 0x00040000, 0x0400000a, + 0x82000d80, 0x00050000, 0x04000007, 0x59880005, + 0x80000000, 0x48031005, 0x59880123, 0x80000000, + 0x48031123, 0x5c000800, 0x5c000000, 0x1c01f000, + 0x4807c857, 0x4c000000, 0x8c040d2c, 0x04000004, + 0x5988010c, 0x80000000, 0x4803110c, 0x8c040d2a, + 0x04000004, 0x5988010d, 0x80000000, 0x4803110d, + 0x8c040d28, 0x04000004, 0x5988010e, 0x80000000, + 0x4803110e, 0x8c040d26, 0x04000004, 0x5988010f, + 0x80000000, 0x4803110f, 0x8c040d24, 0x04000004, + 0x59880110, 0x80000000, 0x48031110, 0x8c040d22, + 0x04000004, 0x59880111, 0x80000000, 0x48031111, + 0x8c040d20, 0x04000004, 0x59880112, 0x80000000, + 0x48031112, 0x5c000000, 0x1c01f000, 0x4807c857, + 0x4c000000, 0x59880113, 0x80000000, 0x48031113, 0x5c000000, 0x1c01f000, 0x4807c857, 0x4c000000, - 0x8c040d08, 0x04000004, 0x5988011b, 0x80000000, - 0x4803111b, 0x8c040d04, 0x04000004, 0x5988011c, - 0x80000000, 0x4803111c, 0x5c000000, 0x1c01f000, - 0x4807c856, 0x4c000000, 0x598800e5, 0x80000000, - 0x480310e5, 0x5c000000, 0x1c01f000, 0x40680000, - 0x5c036000, 0x4db00000, 0x49b3c857, 0x4c040000, - 0x50000800, 0x80040800, 0x04001002, 0x44040000, - 0x5c000800, 0x1c01f000, 0x480fc857, 0x4c000000, - 0x820c0580, 0x00000000, 0x04020004, 0x42000000, - 0x0010cbe5, 0x0401f014, 0x820c0580, 0x00001001, - 0x04020004, 0x42000000, 0x0010cbe6, 0x0401f00e, - 0x820c0580, 0x00001002, 0x04020004, 0x42000000, - 0x0010cbe7, 0x0401f008, 0x820c0c80, 0x0000201c, - 0x02021800, 0x0010032e, 0x820c0500, 0x0000001f, - 0x0c01f804, 0x0401ffdb, 0x5c000000, 0x1c01f000, - 0x0010bccc, 0x0010bccf, 0x0010bcd2, 0x0010bcd5, - 0x0010bcd8, 0x0010bcdb, 0x0010bcde, 0x0010bce1, - 0x0010bce4, 0x0010bce7, 0x0010bcea, 0x0010bced, - 0x0010bcf0, 0x0010bcf3, 0x0010bcf6, 0x0010bcf9, - 0x0010bcfc, 0x0010bcff, 0x0010bd02, 0x0010bd05, - 0x0010bd08, 0x0010bd0b, 0x0010bd0e, 0x0010bd11, - 0x0010bd14, 0x0010bd17, 0x0010bd1a, 0x0010bd1d, - 0x42000000, 0x0010cbe8, 0x1c01f000, 0x42000000, - 0x0010cbe9, 0x1c01f000, 0x42000000, 0x0010cbea, - 0x1c01f000, 0x42000000, 0x0010cbeb, 0x1c01f000, - 0x42000000, 0x0010cbec, 0x1c01f000, 0x42000000, - 0x0010cbed, 0x1c01f000, 0x42000000, 0x0010cbee, - 0x1c01f000, 0x42000000, 0x0010cbef, 0x1c01f000, - 0x42000000, 0x0010cbf0, 0x1c01f000, 0x42000000, - 0x0010cbf1, 0x1c01f000, 0x42000000, 0x0010cbf2, - 0x1c01f000, 0x42000000, 0x0010cbf3, 0x1c01f000, - 0x42000000, 0x0010cbf4, 0x1c01f000, 0x42000000, - 0x0010cbf5, 0x1c01f000, 0x42000000, 0x0010cbf6, - 0x1c01f000, 0x42000000, 0x0010cbf7, 0x1c01f000, - 0x42000000, 0x0010cbf8, 0x1c01f000, 0x42000000, - 0x0010cbf9, 0x1c01f000, 0x42000000, 0x0010cbfa, - 0x1c01f000, 0x42000000, 0x0010cbfb, 0x1c01f000, - 0x42000000, 0x0010cbfc, 0x1c01f000, 0x42000000, - 0x0010cbfd, 0x1c01f000, 0x42000000, 0x0010cbfe, - 0x1c01f000, 0x42000000, 0x0010cbff, 0x1c01f000, - 0x42000000, 0x0010cc00, 0x1c01f000, 0x42000000, - 0x0010cc01, 0x1c01f000, 0x42000000, 0x0010cc02, - 0x1c01f000, 0x42000000, 0x0010cc03, 0x1c01f000, - 0x480fc857, 0x4c000000, 0x820c0580, 0x00000001, - 0x04020004, 0x42000000, 0x0010cb68, 0x0401f012, - 0x820c0580, 0x00000002, 0x04020004, 0x42000000, - 0x0010cb69, 0x0401f00c, 0x820c0580, 0x00000003, - 0x04020004, 0x42000000, 0x0010cb6a, 0x0401f006, - 0x820c0580, 0x00000004, 0x04020004, 0x42000000, - 0x0010cb6b, 0x0401ff4f, 0x5c000000, 0x1c01f000, - 0x4c000000, 0x59a8021b, 0x4803c857, 0x59240a00, - 0x8c040d0a, 0x04000010, 0x8c000506, 0x04000004, - 0x42000000, 0x0010cb73, 0x0401f012, 0x8c00050a, - 0x04000004, 0x42000000, 0x0010cb72, 0x0401f00d, - 0x8c000508, 0x04000004, 0x42000000, 0x0010cb75, - 0x0401f008, 0x0201f800, 0x00104fc6, 0x04000006, - 0x8c000506, 0x04020004, 0x42000000, 0x0010cb74, - 0x0401ff30, 0x5c000000, 0x1c01f000, 0x8058b1c0, - 0x02000800, 0x0010032e, 0x5450a800, 0x8050a000, - 0x8054a800, 0x8058b040, 0x040207fc, 0x1c01f000, - 0x8058b1c0, 0x02000800, 0x0010032e, 0x4450a800, - 0x8054a800, 0x8058b040, 0x040207fd, 0x1c01f000, - 0x4813c857, 0x4817c857, 0x40140000, 0x80100480, - 0x02021800, 0x0010032e, 0x497bc841, 0x42007800, - 0x000000ff, 0x40100000, 0x80140480, 0x82006d00, - 0xffffff00, 0x04020002, 0x40007800, 0x4813c840, - 0x483fc842, 0x04011000, 0x40100000, 0x803c2400, - 0x40100000, 0x80140580, 0x040207f3, 0x45782800, - 0x1c01f000, 0x8058b1c0, 0x02000800, 0x0010032e, - 0x50500000, 0x9c0001c0, 0x4400a800, 0x8050a000, - 0x8054a800, 0x8058b040, 0x040207fa, 0x1c01f000, - 0x4c000000, 0x59a80007, 0x8c00051c, 0x5c000000, + 0x8c040d1c, 0x04000004, 0x59880114, 0x80000000, + 0x48031114, 0x8c040d1a, 0x04000004, 0x59880115, + 0x80000000, 0x48031115, 0x5c000000, 0x1c01f000, + 0x4807c857, 0x4c000000, 0x8c040d18, 0x04000004, + 0x59880116, 0x80000000, 0x48031116, 0x8c040d16, + 0x04000004, 0x59880117, 0x80000000, 0x48031117, + 0x8c040d14, 0x04000004, 0x59880118, 0x80000000, + 0x48031118, 0x5c000000, 0x1c01f000, 0x4807c857, + 0x4c000000, 0x8c040d10, 0x04000004, 0x59880119, + 0x80000000, 0x48031119, 0x8c040d0c, 0x04000004, + 0x5988011a, 0x80000000, 0x4803111a, 0x5c000000, + 0x1c01f000, 0x4807c857, 0x4c000000, 0x8c040d08, + 0x04000004, 0x5988011b, 0x80000000, 0x4803111b, + 0x8c040d04, 0x04000004, 0x5988011c, 0x80000000, + 0x4803111c, 0x5c000000, 0x1c01f000, 0x4807c856, + 0x4c000000, 0x598800e5, 0x80000000, 0x480310e5, + 0x5c000000, 0x1c01f000, 0x40680000, 0x5c036000, + 0x4db00000, 0x49b3c857, 0x4c040000, 0x50000800, + 0x80040800, 0x04001002, 0x44040000, 0x5c000800, + 0x1c01f000, 0x480fc857, 0x4c000000, 0x820c0580, + 0x00000000, 0x04020004, 0x42000000, 0x0010cee5, + 0x0401f014, 0x820c0580, 0x00001001, 0x04020004, + 0x42000000, 0x0010cee6, 0x0401f00e, 0x820c0580, + 0x00001002, 0x04020004, 0x42000000, 0x0010cee7, + 0x0401f008, 0x820c0c80, 0x0000201c, 0x02021800, + 0x0010032e, 0x820c0500, 0x0000001f, 0x0c01f804, + 0x0401ffdb, 0x5c000000, 0x1c01f000, 0x0010bff7, + 0x0010bffa, 0x0010bffd, 0x0010c000, 0x0010c003, + 0x0010c006, 0x0010c009, 0x0010c00c, 0x0010c00f, + 0x0010c012, 0x0010c015, 0x0010c018, 0x0010c01b, + 0x0010c01e, 0x0010c021, 0x0010c024, 0x0010c027, + 0x0010c02a, 0x0010c02d, 0x0010c030, 0x0010c033, + 0x0010c036, 0x0010c039, 0x0010c03c, 0x0010c03f, + 0x0010c042, 0x0010c045, 0x0010c048, 0x42000000, + 0x0010cee8, 0x1c01f000, 0x42000000, 0x0010cee9, + 0x1c01f000, 0x42000000, 0x0010ceea, 0x1c01f000, + 0x42000000, 0x0010ceeb, 0x1c01f000, 0x42000000, + 0x0010ceec, 0x1c01f000, 0x42000000, 0x0010ceed, + 0x1c01f000, 0x42000000, 0x0010ceee, 0x1c01f000, + 0x42000000, 0x0010ceef, 0x1c01f000, 0x42000000, + 0x0010cef0, 0x1c01f000, 0x42000000, 0x0010cef1, + 0x1c01f000, 0x42000000, 0x0010cef2, 0x1c01f000, + 0x42000000, 0x0010cef3, 0x1c01f000, 0x42000000, + 0x0010cef4, 0x1c01f000, 0x42000000, 0x0010cef5, + 0x1c01f000, 0x42000000, 0x0010cef6, 0x1c01f000, + 0x42000000, 0x0010cef7, 0x1c01f000, 0x42000000, + 0x0010cef8, 0x1c01f000, 0x42000000, 0x0010cef9, + 0x1c01f000, 0x42000000, 0x0010cefa, 0x1c01f000, + 0x42000000, 0x0010cefb, 0x1c01f000, 0x42000000, + 0x0010cefc, 0x1c01f000, 0x42000000, 0x0010cefd, + 0x1c01f000, 0x42000000, 0x0010cefe, 0x1c01f000, + 0x42000000, 0x0010ceff, 0x1c01f000, 0x42000000, + 0x0010cf00, 0x1c01f000, 0x42000000, 0x0010cf01, + 0x1c01f000, 0x42000000, 0x0010cf02, 0x1c01f000, + 0x42000000, 0x0010cf03, 0x1c01f000, 0x480fc857, + 0x4c000000, 0x820c0580, 0x00000001, 0x04020004, + 0x42000000, 0x0010ce68, 0x0401f012, 0x820c0580, + 0x00000002, 0x04020004, 0x42000000, 0x0010ce69, + 0x0401f00c, 0x820c0580, 0x00000003, 0x04020004, + 0x42000000, 0x0010ce6a, 0x0401f006, 0x820c0580, + 0x00000004, 0x04020004, 0x42000000, 0x0010ce6b, + 0x0401ff4f, 0x5c000000, 0x1c01f000, 0x4c000000, + 0x59a8021b, 0x4803c857, 0x59240a00, 0x8c040d0a, + 0x04000010, 0x8c000506, 0x04000004, 0x42000000, + 0x0010ce73, 0x0401f012, 0x8c00050a, 0x04000004, + 0x42000000, 0x0010ce72, 0x0401f00d, 0x8c000508, + 0x04000004, 0x42000000, 0x0010ce75, 0x0401f008, + 0x0201f800, 0x001050f7, 0x04000006, 0x8c000506, + 0x04020004, 0x42000000, 0x0010ce74, 0x0401ff30, + 0x5c000000, 0x1c01f000, 0x8058b1c0, 0x02000800, + 0x0010032e, 0x5450a800, 0x8050a000, 0x8054a800, + 0x8058b040, 0x040207fc, 0x1c01f000, 0x8058b1c0, + 0x02000800, 0x0010032e, 0x4450a800, 0x8054a800, + 0x8058b040, 0x040207fd, 0x1c01f000, 0x4813c857, + 0x4817c857, 0x40140000, 0x80100480, 0x02021800, + 0x0010032e, 0x497bc841, 0x42007800, 0x000000ff, + 0x40100000, 0x80140480, 0x82006d00, 0xffffff00, + 0x04020002, 0x40007800, 0x4813c840, 0x483fc842, + 0x04011000, 0x40100000, 0x803c2400, 0x40100000, + 0x80140580, 0x040207f3, 0x45782800, 0x1c01f000, + 0x8058b1c0, 0x02000800, 0x0010032e, 0x50500000, + 0x9c0001c0, 0x4400a800, 0x8050a000, 0x8054a800, + 0x8058b040, 0x040207fa, 0x1c01f000, 0x4c000000, + 0x59a80007, 0x8c00051c, 0x5c000000, 0x1c01f000, + 0x0401f807, 0x42018800, 0x00000001, 0x04020003, + 0x42018800, 0x00000000, 0x1c01f000, 0x59a80007, + 0x8c000518, 0x1c01f000, 0x4200b000, 0x0010cfd0, + 0x5058b000, 0x1c01f000, 0x42006800, 0x0010cfd1, + 0x58340406, 0x8c000502, 0x040007f8, 0x4200b000, + 0x00000001, 0x1c01f000, 0x42006800, 0x00000064, + 0x80346840, 0x04000007, 0x4a030000, 0x00000001, + 0x40000000, 0x59807000, 0x8c387500, 0x040007f9, 0x1c01f000, 0x0401f807, 0x42018800, 0x00000001, 0x04020003, 0x42018800, 0x00000000, 0x1c01f000, - 0x59a80007, 0x8c000518, 0x1c01f000, 0x4200b000, - 0x0010ccd0, 0x5058b000, 0x1c01f000, 0x42006800, - 0x0010ccd1, 0x58340406, 0x8c000502, 0x040007f8, - 0x4200b000, 0x00000001, 0x1c01f000, 0x42006800, - 0x00000064, 0x80346840, 0x04000007, 0x4a030000, - 0x00000001, 0x40000000, 0x59807000, 0x8c387500, - 0x040007f9, 0x1c01f000, 0x00000001, 0x00000002, - 0x00000004, 0x00000008, 0x00000010, 0x00000020, - 0x00000040, 0x00000080, 0x00000100, 0x00000200, - 0x00000400, 0x00000800, 0x00001000, 0x00002000, - 0x00004000, 0x00008000, 0x00010000, 0x0010ccd1, - 0x0010ccdc, 0x0010cce7, 0x0010ccf2, 0x0010ccfd, - 0x0010cd08, 0x0010cd13, 0x0010cd1e, 0x0010cd29, - 0x0010cd34, 0x0010cd3f, 0x0010cd4a, 0x0010cd55, - 0x0010cd60, 0x0010cd6b, 0x0010cd76, 0x0010cd81, - 0x0010cd8c, 0x0010cd97, 0x0010cda2, 0x0010cdad, - 0x0010cdb8, 0x0010cdc3, 0x0010cdce, 0x0010cdd9, - 0x0010cde4, 0x0010cdef, 0x0010cdfa, 0x0010ce05, - 0x0010ce10, 0x0010ce1b, 0x0010ce26, 0x0010ce31, - 0x0010ce3c, 0x0010ce47, 0x0010ce52, 0x0010ce5d, - 0x0010ce68, 0x0010ce73, 0x0010ce7e, 0x0010ce89, - 0x0010ce94, 0x0010ce9f, 0x0010ceaa, 0x0010ceb5, - 0x0010cec0, 0x0010cecb, 0x0010ced6, 0x0010cee1, - 0x0010ceec, 0x0010cef7, 0x0010cf02, 0x0010cf0d, - 0x0010cf18, 0x0010cf23, 0x0010cf2e, 0x0010cf39, - 0x0010cf44, 0x0010cf4f, 0x0010cf5a, 0x0010cf65, - 0x0010cf70, 0x0010cf7b, 0x0010cf86, 0x0010cf91, - 0x0010cf9c, 0x0010cfa7, 0x0010cfb2, 0x0010cfbd, - 0x0010cfc8, 0x0010cfd3, 0x0010cfde, 0x0010cfe9, - 0x0010cff4, 0x0010cfff, 0x0010d00a, 0x0010d015, - 0x0010d020, 0x0010d02b, 0x0010d036, 0x0010d041, - 0x0010d04c, 0x0010d057, 0x0010d062, 0x0010d06d, - 0x0010d078, 0x0010d083, 0x0010d08e, 0x0010d099, - 0x0010d0a4, 0x0010d0af, 0x0010d0ba, 0x0010d0c5, - 0x0010d0d0, 0x0010d0db, 0x0010d0e6, 0x0010d0f1, - 0x0010d0fc, 0x0010d107, 0x0010d112, 0x0010d11d, - 0x0010d128, 0x0010d133, 0x0010d13e, 0x0010d149, - 0x0010d154, 0x0010d15f, 0x0010d16a, 0x0010d175, - 0x0010d180, 0x0010d18b, 0x0010d196, 0x0010d1a1, - 0x0010d1ac, 0x0010d1b7, 0x0010d1c2, 0x0010d1cd, - 0x0010d1d8, 0x0010d1e3, 0x0010d1ee, 0x0010d1f9, - 0x0010d204, 0x0010d20f, 0x0010d21a, 0x0010d225, - 0x0010d230, 0x0010d23b, 0x0010d246, 0x4a035071, - 0x0000001c, 0x4a035072, 0x00000013, 0x4a035073, - 0x00000001, 0x4a035074, 0x00000000, 0x59e00002, - 0x8c00051e, 0x42000000, 0x7ffe00fe, 0x04000003, - 0x42000000, 0x7ffe01fe, 0x50000800, 0x48075047, - 0x80040920, 0x82040580, 0x0000013e, 0x0402000b, - 0x59a80070, 0x84000548, 0x48035070, 0x4a035071, - 0x0000005a, 0x4a035072, 0x00000058, 0x4a035074, - 0x0000000f, 0x0401f045, 0x82040580, 0x0000013f, - 0x0400000a, 0x82040580, 0x0000014e, 0x04000007, - 0x82040580, 0x00000155, 0x04000004, 0x82040580, - 0x00000156, 0x0402000b, 0x59a80070, 0x8400054a, - 0x48035070, 0x4a035071, 0x00000055, 0x4a035072, - 0x00000052, 0x4a035074, 0x00000009, 0x0401f02f, - 0x59e00003, 0x82000500, 0x00030000, 0x82000580, - 0x00000000, 0x04020029, 0x82040580, 0x00000147, - 0x04000019, 0x82040580, 0x0000012c, 0x04000016, - 0x82040580, 0x0000012a, 0x04000007, 0x82040580, - 0x0000012b, 0x04000004, 0x82040580, 0x00000145, - 0x0402001a, 0x59a80070, 0x84000546, 0x48035070, - 0x4a035071, 0x0000003d, 0x4a035072, 0x00000038, - 0x4a035073, 0x0000001e, 0x4a035074, 0x00000001, - 0x0401f00c, 0x59a80070, 0x84000544, 0x48035070, - 0x4a035071, 0x0000003d, 0x4a035072, 0x00000038, - 0x4a035073, 0x0000001e, 0x4a035074, 0x00000001, - 0x4a0378e4, 0x000c0000, 0x59a80070, 0x8c000502, - 0x04000005, 0x82000500, 0x00000030, 0x02000800, - 0x0010032e, 0x1c01f000, 0x42b9a2d1, - 0x00000000, 0x00000000, 0x00112000, 0x0000368c, + 0x42006800, 0x0010cfd1, 0x58340406, 0x8c000504, + 0x1c01f000, 0x0401f807, 0x42018800, 0x00000001, + 0x04020003, 0x42018800, 0x00000000, 0x1c01f000, + 0x42006800, 0x0010cfd1, 0x58340406, 0x8c000508, + 0x1c01f000, 0x59a80006, 0x8c000516, 0x1c01f000, + 0x00000001, 0x00000002, 0x00000004, 0x00000008, + 0x00000010, 0x00000020, 0x00000040, 0x00000080, + 0x00000100, 0x00000200, 0x00000400, 0x00000800, + 0x00001000, 0x00002000, 0x00004000, 0x00008000, + 0x00010000, 0x0010cfd1, 0x0010cfdc, 0x0010cfe7, + 0x0010cff2, 0x0010cffd, 0x0010d008, 0x0010d013, + 0x0010d01e, 0x0010d029, 0x0010d034, 0x0010d03f, + 0x0010d04a, 0x0010d055, 0x0010d060, 0x0010d06b, + 0x0010d076, 0x0010d081, 0x0010d08c, 0x0010d097, + 0x0010d0a2, 0x0010d0ad, 0x0010d0b8, 0x0010d0c3, + 0x0010d0ce, 0x0010d0d9, 0x0010d0e4, 0x0010d0ef, + 0x0010d0fa, 0x0010d105, 0x0010d110, 0x0010d11b, + 0x0010d126, 0x0010d131, 0x0010d13c, 0x0010d147, + 0x0010d152, 0x0010d15d, 0x0010d168, 0x0010d173, + 0x0010d17e, 0x0010d189, 0x0010d194, 0x0010d19f, + 0x0010d1aa, 0x0010d1b5, 0x0010d1c0, 0x0010d1cb, + 0x0010d1d6, 0x0010d1e1, 0x0010d1ec, 0x0010d1f7, + 0x0010d202, 0x0010d20d, 0x0010d218, 0x0010d223, + 0x0010d22e, 0x0010d239, 0x0010d244, 0x0010d24f, + 0x0010d25a, 0x0010d265, 0x0010d270, 0x0010d27b, + 0x0010d286, 0x0010d291, 0x0010d29c, 0x0010d2a7, + 0x0010d2b2, 0x0010d2bd, 0x0010d2c8, 0x0010d2d3, + 0x0010d2de, 0x0010d2e9, 0x0010d2f4, 0x0010d2ff, + 0x0010d30a, 0x0010d315, 0x0010d320, 0x0010d32b, + 0x0010d336, 0x0010d341, 0x0010d34c, 0x0010d357, + 0x0010d362, 0x0010d36d, 0x0010d378, 0x0010d383, + 0x0010d38e, 0x0010d399, 0x0010d3a4, 0x0010d3af, + 0x0010d3ba, 0x0010d3c5, 0x0010d3d0, 0x0010d3db, + 0x0010d3e6, 0x0010d3f1, 0x0010d3fc, 0x0010d407, + 0x0010d412, 0x0010d41d, 0x0010d428, 0x0010d433, + 0x0010d43e, 0x0010d449, 0x0010d454, 0x0010d45f, + 0x0010d46a, 0x0010d475, 0x0010d480, 0x0010d48b, + 0x0010d496, 0x0010d4a1, 0x0010d4ac, 0x0010d4b7, + 0x0010d4c2, 0x0010d4cd, 0x0010d4d8, 0x0010d4e3, + 0x0010d4ee, 0x0010d4f9, 0x0010d504, 0x0010d50f, + 0x0010d51a, 0x0010d525, 0x0010d530, 0x0010d53b, + 0x0010d546, 0x4a035071, 0x0000001c, 0x4a035072, + 0x00000013, 0x4a035073, 0x00000001, 0x4a035074, + 0x00000000, 0x59e00002, 0x8c00051e, 0x42000000, + 0x7ffe00fe, 0x04000003, 0x42000000, 0x7ffe01fe, + 0x50000800, 0x48075047, 0x80040920, 0x82040580, + 0x0000013e, 0x0402000b, 0x59a80070, 0x84000548, + 0x48035070, 0x4a035071, 0x0000005a, 0x4a035072, + 0x00000058, 0x4a035074, 0x0000000f, 0x0401f045, + 0x82040580, 0x0000013f, 0x0400000a, 0x82040580, + 0x0000014e, 0x04000007, 0x82040580, 0x00000155, + 0x04000004, 0x82040580, 0x00000156, 0x0402000b, + 0x59a80070, 0x8400054a, 0x48035070, 0x4a035071, + 0x00000055, 0x4a035072, 0x00000052, 0x4a035074, + 0x00000009, 0x0401f02f, 0x59e00003, 0x82000500, + 0x00030000, 0x82000580, 0x00000000, 0x04020029, + 0x82040580, 0x00000147, 0x04000019, 0x82040580, + 0x0000012c, 0x04000016, 0x82040580, 0x0000012a, + 0x04000007, 0x82040580, 0x0000012b, 0x04000004, + 0x82040580, 0x00000145, 0x0402001a, 0x59a80070, + 0x84000546, 0x48035070, 0x4a035071, 0x0000003d, + 0x4a035072, 0x00000038, 0x4a035073, 0x0000001e, + 0x4a035074, 0x00000001, 0x0401f00c, 0x59a80070, + 0x84000544, 0x48035070, 0x4a035071, 0x0000003d, + 0x4a035072, 0x00000038, 0x4a035073, 0x0000001e, + 0x4a035074, 0x00000001, 0x4a0378e4, 0x000c0000, + 0x59a80070, 0x8c000502, 0x04000005, 0x82000500, + 0x00000030, 0x02000800, 0x0010032e, 0x1c01f000, + 0x6b3597d5, + 0x00000000, 0x00000000, 0x00112000, 0x000036ba, 0x00000000, 0x00000000, 0x00020000, 0x00000cef, 0x836c0580, 0x00000003, 0x02020000, 0x001002bd, - 0x42000000, 0x0010c817, 0x50000000, 0x800001c0, + 0x42000000, 0x0010cb17, 0x50000000, 0x800001c0, 0x04020a5e, 0x0401fa08, 0x0201f800, 0x000205ce, 0x0401fbfb, 0x0201f800, 0x00020b27, 0x0201f800, 0x00020988, 0x0401f7ef, 0x42007000, 0x00020cf0, @@ -26782,7 +27044,7 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x0010032e, 0x42007000, 0x00020cf0, 0x58380000, 0x82001480, 0x00000004, 0x0c001004, 0x0201f800, 0x0010032e, 0x1c01f000, 0x0002002c, 0x00020072, - 0x0002007b, 0x0010106b, 0x82040d00, 0x43000f80, + 0x0002007b, 0x0010106c, 0x82040d00, 0x43000f80, 0x02020000, 0x0010063a, 0x58380002, 0x80000540, 0x0400000a, 0x0201f000, 0x0010062c, 0x82040d00, 0x43000f80, 0x02020000, 0x0010063a, 0x58380002, @@ -26792,8 +27054,8 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x80040400, 0x58300807, 0x48006006, 0x82040c40, 0x00000000, 0x48046007, 0x4030d000, 0x0809f800, 0x0401f792, 0x59b800ea, 0x82000d00, 0xf0000038, - 0x02020000, 0x0010077b, 0x8c000510, 0x02000000, - 0x0010077a, 0x59ba60e0, 0x81300182, 0x0402104b, + 0x02020000, 0x00100779, 0x8c000510, 0x02000000, + 0x00100778, 0x59ba60e0, 0x81300182, 0x0402104b, 0x04002031, 0x8532653e, 0x59300407, 0x82000580, 0x00000003, 0x04020029, 0x59300203, 0x82000580, 0x00000004, 0x04020025, 0x59325809, 0x59300004, @@ -26803,8 +27065,8 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x5932680a, 0x0201f800, 0x00020b9d, 0x5934000f, 0x5934140b, 0x80081040, 0x04001002, 0x480a6c0b, 0x80000540, 0x04020a99, 0x59b800ea, 0x8c000510, - 0x040207d9, 0x1c01f000, 0x0201f800, 0x00107021, - 0x040007e9, 0x0201f000, 0x00100770, 0x59300220, + 0x040207d9, 0x1c01f000, 0x0201f800, 0x00107226, + 0x040007e9, 0x0201f000, 0x0010076e, 0x59300220, 0x48025c10, 0x0401f7ea, 0x42027000, 0x00000055, 0x0401f022, 0x83326500, 0x3fffffff, 0x59300407, 0x82000580, 0x00000003, 0x04020011, 0x59325809, @@ -26814,52 +27076,52 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x80000540, 0x04020a75, 0x0401f7dc, 0x42027000, 0x00000054, 0x0401f009, 0x83300500, 0x60000000, 0x04000016, 0x81326580, 0x8000013a, 0x82000400, - 0x00100781, 0x50027000, 0x59300c07, 0x82040580, - 0x00000002, 0x02000000, 0x00100770, 0x59300004, + 0x0010077f, 0x50027000, 0x59300c07, 0x82040580, + 0x00000002, 0x02000000, 0x0010076e, 0x59300004, 0x8c00053e, 0x04020004, 0x0201f800, 0x00020bc1, - 0x0401f7c6, 0x0201f800, 0x00107021, 0x040007fb, - 0x0201f000, 0x00100770, 0x83300500, 0x1f000000, - 0x02000000, 0x00100773, 0x81326580, 0x80000130, + 0x0401f7c6, 0x0201f800, 0x00107226, 0x040007fb, + 0x0201f000, 0x0010076e, 0x83300500, 0x1f000000, + 0x02000000, 0x00100771, 0x81326580, 0x80000130, 0x82000c80, 0x00000014, 0x02021800, 0x0010032e, - 0x1201f000, 0x00100785, 0x82000500, 0xf0000000, + 0x1201f000, 0x00100783, 0x82000500, 0xf0000000, 0x82040d00, 0x0fffffff, 0x80040d40, 0x4807c857, - 0x59b800ea, 0x8c000516, 0x02020000, 0x001008a1, + 0x59b800ea, 0x8c000516, 0x02020000, 0x0010089f, 0x480770e1, 0x1c01f000, 0x59325809, 0x412c7000, 0x58380a05, 0x82040d00, 0x000000ff, 0x82040580, - 0x00000068, 0x02000000, 0x00100b88, 0x82040580, - 0x00000072, 0x02000000, 0x00100ba5, 0x58380a05, - 0x82040500, 0x0000000f, 0x82000c00, 0x00100f0a, - 0x50044000, 0x0c01f001, 0x00100b71, 0x00100b71, - 0x0002013e, 0x00100b71, 0x00100b71, 0x00100b71, - 0x00100b71, 0x00100b71, 0x0002014e, 0x00100bbe, - 0x00100b71, 0x00100b73, 0x00100bac, 0x00100b71, - 0x00100b71, 0x00100b71, 0x5838040b, 0x8c000500, + 0x00000068, 0x02000000, 0x00100b89, 0x82040580, + 0x00000072, 0x02000000, 0x00100ba6, 0x58380a05, + 0x82040500, 0x0000000f, 0x82000c00, 0x00100f0b, + 0x50044000, 0x0c01f001, 0x00100b72, 0x00100b72, + 0x0002013e, 0x00100b72, 0x00100b72, 0x00100b72, + 0x00100b72, 0x00100b72, 0x0002014e, 0x00100bbf, + 0x00100b72, 0x00100b74, 0x00100bad, 0x00100b72, + 0x00100b72, 0x00100b72, 0x5838040b, 0x8c000500, 0x02000800, 0x0010032e, 0x50200000, 0x80387c00, 0x583c1002, 0x583c2800, 0x583c2001, 0x58380a08, 0x58383010, 0x59303808, 0x58384c09, 0x5838000e, 0x48026013, 0x0401f010, 0x5838020b, 0x8c000502, - 0x02000000, 0x00100b71, 0x50200000, 0x80387c00, + 0x02000000, 0x00100b72, 0x50200000, 0x80387c00, 0x583c2800, 0x583c2001, 0x583c1002, 0x592c0a08, 0x592c4c09, 0x592c3010, 0x59303808, 0x497a6013, 0x497a6014, 0x4816600f, 0x48126010, 0x480a6011, 0x481a6012, 0x80040840, 0x4806600e, 0x02020000, - 0x00100beb, 0x841c3d40, 0x481e6008, 0x1c01f000, + 0x00100bec, 0x841c3d40, 0x481e6008, 0x1c01f000, 0x4d2c0000, 0x59325809, 0x592c0a05, 0x4807c857, 0x82040d00, 0x000000ff, 0x82040500, 0x0000000f, - 0x1201f000, 0x00100d47, 0x41787800, 0x59325809, - 0x592c0c0b, 0x8c040d02, 0x02000000, 0x00100d88, + 0x1201f000, 0x00100d48, 0x41787800, 0x59325809, + 0x592c0c0b, 0x8c040d02, 0x02000000, 0x00100d89, 0x592c000e, 0x592c1010, 0x592c0a05, 0x480a6012, 0x48026013, 0x48026014, 0x82040d00, 0x000000ff, - 0x82040580, 0x00000072, 0x02000000, 0x00100d8f, + 0x82040580, 0x00000072, 0x02000000, 0x00100d90, 0x412c3000, 0x82040500, 0x0000000f, 0x82000400, - 0x00100f0a, 0x50003800, 0x8c3c7d0e, 0x04000002, + 0x00100f0b, 0x50003800, 0x8c3c7d0e, 0x04000002, 0x801c3800, 0x501c0000, 0x592c1a08, 0x4802600b, 0x481a600c, 0x481e600d, 0x480e600e, 0x843c7d4a, 0x403c1000, 0x1c01f000, 0x592c0a05, 0x497a6013, 0x41787800, 0x82040d00, 0x000000ff, 0x82040580, - 0x00000068, 0x02000000, 0x00100d93, 0x412c3000, + 0x00000068, 0x02000000, 0x00100d94, 0x412c3000, 0x592c1a08, 0x82040500, 0x0000000f, 0x82000400, - 0x00100f0a, 0x50004000, 0x8c3c7d0e, 0x04000002, + 0x00100f0b, 0x50004000, 0x8c3c7d0e, 0x04000002, 0x80204000, 0x50200000, 0x4802600b, 0x481a600c, 0x4822600d, 0x480e600e, 0x483e6004, 0x80000580, 0x1c01f000, 0x59e00004, 0x8c00050e, 0x040206aa, @@ -26881,17 +27143,17 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x000201f5, 0x000201f5, 0x000201f5, 0x000201f5, 0x000201f5, 0x4c000000, 0x4df00000, 0x4203e000, 0xb0100000, 0x41f00000, 0x81fe1500, 0x8d0a1512, - 0x02020800, 0x001013ae, 0x8d0a1518, 0x02020800, + 0x02020800, 0x001013af, 0x8d0a1518, 0x02020800, 0x00020b4a, 0x8d0a151a, 0x04020e93, 0x83080500, 0x00000d00, 0x04020804, 0x5c03e000, 0x5c000000, - 0x1801f000, 0x8d0a1516, 0x02020800, 0x00101202, + 0x1801f000, 0x8d0a1516, 0x02020800, 0x00101203, 0x8d0a1514, 0x04020fa4, 0x8d0a1508, 0x02020800, - 0x00100fcd, 0x8d0a1500, 0x02020000, 0x00020a80, - 0x1c01f000, 0x42000000, 0x0010c81d, 0x50000000, - 0x8c000504, 0x04000014, 0x42000000, 0x0010c81d, + 0x00100fce, 0x8d0a1500, 0x02020000, 0x00020a80, + 0x1c01f000, 0x42000000, 0x0010cb1d, 0x50000000, + 0x8c000504, 0x04000014, 0x42000000, 0x0010cb1d, 0x50000000, 0x8c000502, 0x04020002, 0x1c01f000, 0x4df00000, 0x4203e000, 0x50000000, 0x42034000, - 0x0010c7ff, 0x59a0001e, 0x59a1d806, 0x84000502, + 0x0010caff, 0x59a0001e, 0x59a1d806, 0x84000502, 0x4803401e, 0x58ec0008, 0x0801f800, 0x5c03e000, 0x1c01f000, 0x04027002, 0x04026002, 0x1c01f000, 0x4df00000, 0x4203e000, 0x50000000, 0x59e00020, @@ -26899,18 +27161,18 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x00000044, 0x04020008, 0x4803c857, 0x42000800, 0x00020cf0, 0x58040800, 0x82040d80, 0x00000000, 0x0402001d, 0x0201f800, 0x00100583, 0x0400001a, - 0x412dd800, 0x48efc857, 0x0201f800, 0x001039b6, - 0x42034000, 0x0010c7ff, 0x49a1d80a, 0x48ef4006, + 0x412dd800, 0x48efc857, 0x0201f800, 0x00103aa6, + 0x42034000, 0x0010caff, 0x49a1d80a, 0x48ef4006, 0x59a0001e, 0x84000544, 0x4803401e, 0x59e00020, 0x4803c857, 0x59e00021, 0x4803c857, 0x59e00022, 0x4803c857, 0x59e00023, 0x4803c857, 0x59e00024, - 0x4803c857, 0x0201f800, 0x0010215d, 0x0201f800, - 0x0010217c, 0x5c03e000, 0x1c01f000, 0x0201f800, - 0x0010bdab, 0x040007fe, 0x4203e000, 0x30000001, + 0x4803c857, 0x0201f800, 0x0010221c, 0x0201f800, + 0x0010223b, 0x5c03e000, 0x1c01f000, 0x0201f800, + 0x0010c0d6, 0x040007fe, 0x4203e000, 0x30000001, 0x4203e000, 0x40000000, 0x42000800, 0x00007a12, 0x45780800, 0x0401f7ff, 0x4da00000, 0x4df00000, 0x4203e000, 0x50000000, 0x04006050, 0x42034000, - 0x0010c7ff, 0x59a01018, 0x59a01819, 0x800c19c0, + 0x0010caff, 0x59a01018, 0x59a01819, 0x800c19c0, 0x0402000a, 0x59a0381c, 0x801c39c0, 0x02000800, 0x0010032e, 0x49a3c857, 0x481fc857, 0x59a0041d, 0x801c3c00, 0x0401f00c, 0x59a0041a, 0x82000400, @@ -26931,14 +27193,14 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x592c3814, 0x481f401c, 0x497b441d, 0x0201f800, 0x00100594, 0x5c025800, 0x5c03e000, 0x5c034000, 0x1c01f000, 0x830c0500, 0x00000003, 0x02020000, - 0x00104249, 0x59340400, 0x82000580, 0x00000606, - 0x02020000, 0x0010421b, 0x5934000d, 0x80027d40, - 0x02020000, 0x00104254, 0x0401f803, 0x80000580, + 0x00104342, 0x59340400, 0x82000580, 0x00000606, + 0x02020000, 0x00104314, 0x5934000d, 0x80027d40, + 0x02020000, 0x0010434d, 0x0401f803, 0x80000580, 0x1c01f000, 0x5934000f, 0x59341203, 0x80080540, 0x0402006b, 0x5934000b, 0x80001120, 0x82000500, 0x0000ffff, 0x80080480, 0x04021065, 0x0201f800, 0x00020b7b, 0x0400005e, 0x592e4411, 0x81224110, - 0x83200400, 0x0010bdc7, 0x50024800, 0x4926601c, + 0x83200400, 0x0010c10d, 0x50024800, 0x4926601c, 0x592c0407, 0x4936600a, 0x492e6009, 0x4a026407, 0x00000003, 0x4a026403, 0x00000040, 0x80081000, 0x480a6c0b, 0x800000c2, 0x800010c4, 0x80081400, @@ -26966,24 +27228,24 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x592c0407, 0x800000c2, 0x800018c4, 0x800c0400, 0x48025804, 0x1c01f000, 0x492c0800, 0x0401f7f9, 0x83440c80, 0x00000800, 0x04021009, 0x83440400, - 0x0010bf80, 0x50000000, 0x80000540, 0x04000004, + 0x0010c280, 0x50000000, 0x80000540, 0x04000004, 0x40026800, 0x80000580, 0x1c01f000, 0x82000540, 0x00000001, 0x1c01f000, 0x59340203, 0x80000540, 0x04020054, 0x4d300000, 0x4d2c0000, 0x5934000f, 0x80025d40, 0x0400004d, 0x0201f800, 0x00020b7b, 0x04000048, 0x592c0000, 0x4802680f, 0x80000540, 0x04020002, 0x48026810, 0x592c2a05, 0x592e4411, - 0x81224110, 0x83200400, 0x0010bdc7, 0x50024800, + 0x81224110, 0x83200400, 0x0010c10d, 0x50024800, 0x4926601c, 0x4936600a, 0x82142d00, 0x000000ff, 0x82140580, 0x00000012, 0x0400003b, 0x82140580, 0x00000072, 0x04000038, 0x492e6009, 0x80081000, 0x480a6c0b, 0x4a026407, 0x00000003, 0x4a026403, 0x00000040, 0x592c0004, 0x497a5804, 0x48026006, 0x592c0809, 0x592c180a, 0x592c020b, 0x48066018, - 0x480e6019, 0x8c000502, 0x02000000, 0x00104716, + 0x480e6019, 0x8c000502, 0x02000000, 0x00104816, 0x4a026203, 0x00000004, 0x592c0208, 0x80000040, - 0x02020000, 0x00104709, 0x82140580, 0x00000018, - 0x02020000, 0x00104709, 0x592c1810, 0x59300008, + 0x02020000, 0x00104809, 0x82140580, 0x00000018, + 0x02020000, 0x00104809, 0x592c1810, 0x59300008, 0x82000540, 0x00000091, 0x480e6012, 0x48026008, 0x42000000, 0x80080004, 0x48026004, 0x59bc00ea, 0x8c000516, 0x040207fe, 0x83300400, 0x20000000, @@ -26993,24 +27255,24 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x1c01f000, 0x497a5800, 0x4932580a, 0x4a026407, 0x00000006, 0x4a026203, 0x00000007, 0x0401f802, 0x0401f7ed, 0x592e4408, 0x83224500, 0x000000ff, - 0x83200400, 0x0010bdc7, 0x50024800, 0x4926601c, + 0x83200400, 0x0010c10d, 0x50024800, 0x4926601c, 0x592c020d, 0x48026202, 0x59240206, 0x8c000510, - 0x02020000, 0x00104743, 0x8d0e1d0e, 0x02020000, - 0x0010473f, 0x59240200, 0x8c000516, 0x02020000, - 0x0010473b, 0x59340200, 0x8c000518, 0x02020000, - 0x00104737, 0x4a025a07, 0x00000000, 0x8c000508, - 0x02020000, 0x00104733, 0x492e6009, 0x4d3c0000, + 0x02020000, 0x00104843, 0x8d0e1d0e, 0x02020000, + 0x0010483f, 0x59240200, 0x8c000516, 0x02020000, + 0x0010483b, 0x59340200, 0x8c000518, 0x02020000, + 0x00104837, 0x4a025a07, 0x00000000, 0x8c000508, + 0x02020000, 0x00104833, 0x492e6009, 0x4d3c0000, 0x417a7800, 0x0201f800, 0x00020a86, 0x5c027800, 0x1c01f000, 0x58040001, 0x49680800, 0x49780801, 0x815eb800, 0x4006d000, 0x80000d40, 0x040207fa, 0x497a5801, 0x59c80000, 0x82000540, 0x00001200, 0x48039000, 0x1c01f000, 0x59980013, 0x48032823, 0x59d8010b, 0x48033014, 0x1c01f000, 0x592c0405, - 0x8c00051e, 0x02020000, 0x00104cdd, 0x497a5800, + 0x8c00051e, 0x02020000, 0x00104e02, 0x497a5800, 0x8d0e1d26, 0x0402000e, 0x0402d007, 0x592c0001, 0x492fb107, 0x80000d40, 0x04020fe3, 0x0400e0cd, 0x1c01f000, 0x0400e8cb, 0x0400d7f9, 0x42000000, - 0x0010cb7c, 0x0201f800, 0x0010bc8b, 0x0401f916, + 0x0010ce7c, 0x0201f800, 0x0010bfb6, 0x0401f916, 0x0400d921, 0x0400e0c3, 0x59d80105, 0x82000d00, 0x00018780, 0x04020130, 0x1c01f000, 0x59980011, 0x0c01f001, 0x00020411, 0x00020412, 0x0002041d, @@ -27087,8 +27349,8 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x4807b107, 0x80000d40, 0x04020005, 0x48033016, 0x850e1d26, 0x48033017, 0x1c01f000, 0x0400d7f8, 0x0401f7fd, 0x59d80105, 0x82000500, 0x00018780, - 0x04020005, 0x42000000, 0x0010cb7c, 0x0201f000, - 0x0010bc8b, 0x4803c857, 0x485fc857, 0x8c00050e, + 0x04020005, 0x42000000, 0x0010ce7c, 0x0201f000, + 0x0010bfb6, 0x4803c857, 0x485fc857, 0x8c00050e, 0x02020800, 0x00100323, 0x4203e000, 0x50000000, 0x4200b800, 0x00008004, 0x0201f000, 0x00100333, 0x0400e784, 0x59d80105, 0x82000500, 0x00018780, @@ -27126,9 +27388,9 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x400a5000, 0x900811c0, 0x82081540, 0x0000001c, 0x480bc011, 0x4a03c017, 0x00000000, 0x4203e000, 0x30000001, 0x1c01f000, 0x41700000, 0x0c01f001, - 0x001054be, 0x000205d9, 0x001054be, 0x0002069f, - 0x001054bc, 0x001054bc, 0x001054bc, 0x001054bc, - 0x00105b56, 0x04010036, 0x59980004, 0x80000540, + 0x001055ef, 0x000205d9, 0x001055ef, 0x0002069f, + 0x001055ed, 0x001055ed, 0x001055ed, 0x001055ed, + 0x00105d0d, 0x04010036, 0x59980004, 0x80000540, 0x0402003b, 0x0402c01c, 0x4202f800, 0x00000010, 0x4df00000, 0x4203e000, 0x50000000, 0x49db3003, 0x59da5808, 0x592c2a05, 0x497a5800, 0x497a5801, @@ -27137,157 +27399,157 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x04000009, 0x836c0580, 0x00000003, 0x04020006, 0x83700580, 0x00000001, 0x04020010, 0x0401001a, 0x0400c7e8, 0x0400fa90, 0x0400b27a, 0x59d40005, - 0x82000500, 0x43018780, 0x02020000, 0x001058bd, + 0x82000500, 0x43018780, 0x02020000, 0x00105a05, 0x59d80005, 0x82000500, 0x43018780, 0x02020000, - 0x001058c4, 0x1c01f000, 0x83700580, 0x00000003, + 0x00105a0c, 0x1c01f000, 0x83700580, 0x00000003, 0x04000897, 0x83700580, 0x00000001, 0x040207ee, 0x04010005, 0x0400c7d3, 0x0401f7eb, 0x4202f800, 0x00000010, 0x4df00000, 0x4203e000, 0x50000000, 0x49d73003, 0x59d65808, 0x0401f7cf, 0x4df00000, 0x4203e000, 0x50000000, 0x40025800, 0x592c2a05, 0x497b3003, 0x497b3004, 0x4202f800, 0x00000010, - 0x0401f7c8, 0x0201f800, 0x00105511, 0x5c03e000, - 0x0401f7d5, 0x00105511, 0x00105511, 0x00105511, - 0x00105511, 0x001055b2, 0x00105511, 0x00105511, - 0x00105511, 0x00105511, 0x00105511, 0x00105521, - 0x00105511, 0x00105511, 0x00105511, 0x001055db, - 0x00105511, 0x00105511, 0x00105511, 0x0002070b, - 0x00105511, 0x000207bc, 0x00105511, 0x00105511, - 0x00105511, 0x000206c1, 0x00105511, 0x00105511, - 0x0010b58e, 0x00105511, 0x00105511, 0x00105511, - 0x00105511, 0x00105511, 0x00105511, 0x00105511, - 0x00105511, 0x00105511, 0x00105511, 0x00105511, - 0x00105511, 0x00105511, 0x00105551, 0x00105511, - 0x0010b623, 0x00105511, 0x00105511, 0x00105511, - 0x00105511, 0x001058d3, 0x00105a43, 0x00105511, - 0x00105849, 0x00105511, 0x00105511, 0x00105511, - 0x00105511, 0x00105511, 0x0010589b, 0x00105511, - 0x00105548, 0x00105511, 0x00105811, 0x00105511, - 0x00105511, 0x00105511, 0x00105511, 0x00105511, - 0x00105511, 0x00105511, 0x001057db, 0x00105511, - 0x001057db, 0x00105b1b, 0x00105511, 0x00105511, - 0x00105511, 0x00105511, 0x00105511, 0x00105511, - 0x00105511, 0x00105511, 0x00105511, 0x00020835, - 0x00105ae0, 0x00105511, 0x00105b0e, 0x00105511, - 0x00105511, 0x00105511, 0x00105511, 0x00105511, - 0x00105511, 0x00105511, 0x00105511, 0x00105511, - 0x00105511, 0x00105511, 0x00105511, 0x00105511, - 0x00105511, 0x00105511, 0x00105511, 0x00105511, - 0x00105511, 0x000206c1, 0x00105511, 0x00105511, - 0x00105511, 0x00105511, 0x00105511, 0x00105511, - 0x00105511, 0x00105511, 0x00105511, 0x0002077e, - 0x00105511, 0x00105511, 0x00105511, 0x00105511, - 0x00105511, 0x00105511, 0x00105511, 0x4df00000, + 0x0401f7c8, 0x0201f800, 0x00105642, 0x5c03e000, + 0x0401f7d5, 0x00105642, 0x00105642, 0x00105642, + 0x00105642, 0x001056e3, 0x00105642, 0x00105642, + 0x00105642, 0x00105642, 0x00105642, 0x00105652, + 0x00105642, 0x00105642, 0x00105642, 0x0010570c, + 0x00105642, 0x00105642, 0x00105642, 0x0002070b, + 0x00105642, 0x000207bc, 0x00105642, 0x00105642, + 0x00105642, 0x000206c1, 0x00105642, 0x00105642, + 0x0010b8b9, 0x00105642, 0x00105642, 0x00105642, + 0x00105642, 0x00105642, 0x00105642, 0x00105642, + 0x00105642, 0x00105642, 0x00105642, 0x00105642, + 0x00105642, 0x00105642, 0x00105682, 0x00105642, + 0x0010b94e, 0x00105642, 0x00105642, 0x00105642, + 0x00105642, 0x00105a1b, 0x00105bd2, 0x00105642, + 0x0010598e, 0x00105642, 0x00105642, 0x00105642, + 0x00105642, 0x00105642, 0x001059e3, 0x00105642, + 0x00105679, 0x00105642, 0x00105956, 0x00105642, + 0x00105642, 0x00105642, 0x00105642, 0x00105642, + 0x00105642, 0x00105642, 0x00105920, 0x00105642, + 0x00105920, 0x00105cd2, 0x00105642, 0x00105642, + 0x00105642, 0x00105642, 0x00105642, 0x00105642, + 0x00105642, 0x00105642, 0x00105642, 0x00020835, + 0x00105c97, 0x00105642, 0x00105cc5, 0x00105642, + 0x00105642, 0x00105642, 0x00105642, 0x00105642, + 0x00105642, 0x00105642, 0x00105642, 0x00105642, + 0x00105642, 0x00105642, 0x00105642, 0x00105642, + 0x00105642, 0x00105642, 0x00105642, 0x00105642, + 0x00105642, 0x000206c1, 0x00105642, 0x00105642, + 0x00105642, 0x00105642, 0x00105642, 0x00105642, + 0x00105642, 0x00105642, 0x00105642, 0x0002077e, + 0x00105642, 0x00105642, 0x00105642, 0x00105642, + 0x00105642, 0x00105642, 0x00105642, 0x4df00000, 0x4203e000, 0x50000000, 0x59981003, 0x800811c0, - 0x02000000, 0x001054c3, 0x58080005, 0x82000d00, - 0x43018780, 0x02020000, 0x001058c4, 0x8c000508, - 0x02000000, 0x001054c0, 0x580a5808, 0x592c0205, + 0x02000000, 0x001055f4, 0x58080005, 0x82000d00, + 0x43018780, 0x02020000, 0x00105a0c, 0x8c000508, + 0x02000000, 0x001055f1, 0x580a5808, 0x592c0205, 0x497a5800, 0x497a5801, 0x82000500, 0x000000ff, - 0x82000c80, 0x0000004b, 0x02021000, 0x001054bf, - 0x1201f800, 0x001054c6, 0x5c03e000, 0x83700580, + 0x82000c80, 0x0000004b, 0x02021000, 0x001055f0, + 0x1201f800, 0x001055f7, 0x5c03e000, 0x83700580, 0x00000003, 0x040007e2, 0x0400f9cb, 0x0400b1b5, 0x1c01f000, 0x80140110, 0x82140d00, 0x000000ff, 0x82040d80, 0x00000068, 0x04020005, 0x80000040, - 0x02000000, 0x00105519, 0x0401f003, 0x80000040, - 0x0400000b, 0x02001000, 0x00105519, 0x4a033006, + 0x02000000, 0x0010564a, 0x0401f003, 0x80000040, + 0x0400000b, 0x02001000, 0x0010564a, 0x4a033006, 0x000206d7, 0x48033000, 0x492f3001, 0x492f3002, 0x4202e000, 0x00000003, 0x1c01f000, 0x592e8a07, - 0x83440c80, 0x000007f0, 0x02021000, 0x00105529, - 0x8d0e1d0e, 0x02020000, 0x0010555a, 0x592e4411, - 0x81224110, 0x83440400, 0x0010bf80, 0x50000000, - 0x80026d40, 0x02000000, 0x00105570, 0x59340013, - 0x80000130, 0x81200580, 0x02020000, 0x00105570, + 0x83440c80, 0x000007f0, 0x02021000, 0x0010565a, + 0x8d0e1d0e, 0x02020000, 0x0010568b, 0x592e4411, + 0x81224110, 0x83440400, 0x0010c280, 0x50000000, + 0x80026d40, 0x02000000, 0x001056a1, 0x59340013, + 0x80000130, 0x81200580, 0x02020000, 0x001056a1, 0x59340002, 0x592c0811, 0x80040580, 0x82000500, - 0x00ffffff, 0x02020000, 0x00105529, 0x5934000a, - 0x8c00052e, 0x02020000, 0x0010557a, 0x0201f800, - 0x000202c1, 0x02020000, 0x00105573, 0x1c01f000, + 0x00ffffff, 0x02020000, 0x0010565a, 0x5934000a, + 0x8c00052e, 0x02020000, 0x001056ab, 0x0201f800, + 0x000202c1, 0x02020000, 0x001056a4, 0x1c01f000, 0x59980802, 0x59980000, 0x48065800, 0x492c0801, 0x492f3002, 0x80000040, 0x48033000, 0x04000002, 0x1c01f000, 0x599a5801, 0x59980006, 0x4202e000, 0x00000001, 0x0801f800, 0x1c01f000, 0x80140110, - 0x02000000, 0x00105519, 0x80000040, 0x0402000b, + 0x02000000, 0x0010564a, 0x80000040, 0x0402000b, 0x592c240b, 0x8c102504, 0x0400000c, 0x592c0208, - 0x82000c80, 0x00001001, 0x02021000, 0x00105529, - 0x0201f000, 0x00105b30, 0x4a033006, 0x0002071d, + 0x82000c80, 0x00001001, 0x02021000, 0x0010565a, + 0x0201f000, 0x00105ce7, 0x4a033006, 0x0002071d, 0x0401f7b5, 0x592c240b, 0x592e8a07, 0x417a7800, 0x592e4408, 0x83224500, 0x000000ff, 0x83200580, - 0x000000ff, 0x02000000, 0x00105769, 0x83200400, - 0x0010bdc7, 0x50024800, 0x83440c80, 0x000007f0, - 0x02021000, 0x00105760, 0x83440c00, 0x0010bf80, - 0x50040000, 0x80026d40, 0x02000000, 0x00105764, + 0x000000ff, 0x02000000, 0x001058aa, 0x83200400, + 0x0010c10d, 0x50024800, 0x83440c80, 0x000007f0, + 0x02021000, 0x001058a1, 0x83440c00, 0x0010c280, + 0x50040000, 0x80026d40, 0x02000000, 0x001058a5, 0x59340013, 0x80000130, 0x81200580, 0x02020000, - 0x00105764, 0x59340002, 0x592c0809, 0x80040580, - 0x82000500, 0x00ffffff, 0x02020000, 0x00105529, + 0x001058a5, 0x59340002, 0x592c0809, 0x80040580, + 0x82000500, 0x00ffffff, 0x02020000, 0x0010565a, 0x59243a00, 0x821c0500, 0x00000003, 0x82000580, - 0x00000003, 0x02020000, 0x0010575c, 0x592e600a, - 0x497a5809, 0x83300480, 0x00111264, 0x02001000, - 0x00105786, 0x41540000, 0x81300480, 0x02021000, - 0x00105720, 0x592c0a0d, 0x59300202, 0x80040580, - 0x02020000, 0x00105786, 0x4936600a, 0x4926601c, - 0x8c10251c, 0x02020000, 0x0010570e, 0x59240206, - 0x8c000510, 0x02020000, 0x001057a9, 0x8d0e1d0e, - 0x02020000, 0x001056f3, 0x8c1c3d16, 0x02020000, - 0x0010579a, 0x59340200, 0x8c000518, 0x02020000, - 0x00105781, 0x59300c07, 0x82040580, 0x00000006, - 0x02020000, 0x001057ae, 0x8c102508, 0x02020000, - 0x001056e8, 0x59300809, 0x497a5804, 0x4a025a07, - 0x00000000, 0x800409c0, 0x02020000, 0x001056ee, - 0x59300415, 0x8c000516, 0x02020000, 0x0010578b, + 0x00000003, 0x02020000, 0x0010589d, 0x592e600a, + 0x497a5809, 0x83300480, 0x00111584, 0x02001000, + 0x001058c7, 0x41540000, 0x81300480, 0x02021000, + 0x00105861, 0x592c0a0d, 0x59300202, 0x80040580, + 0x02020000, 0x001058c7, 0x4936600a, 0x4926601c, + 0x8c10251c, 0x02020000, 0x0010584f, 0x59240206, + 0x8c000510, 0x02020000, 0x001058ea, 0x8d0e1d0e, + 0x02020000, 0x00105834, 0x8c1c3d16, 0x02020000, + 0x001058db, 0x59340200, 0x8c000518, 0x02020000, + 0x001058c2, 0x59300c07, 0x82040580, 0x00000006, + 0x02020000, 0x001058ef, 0x8c102508, 0x02020000, + 0x00105829, 0x59300809, 0x497a5804, 0x4a025a07, + 0x00000000, 0x800409c0, 0x02020000, 0x0010582f, + 0x59300415, 0x8c000516, 0x02020000, 0x001058cc, 0x492e6009, 0x0401f309, 0x80140110, 0x02000000, - 0x00105519, 0x80000040, 0x02000000, 0x00105519, + 0x0010564a, 0x80000040, 0x02000000, 0x0010564a, 0x592c0a08, 0x82040c80, 0x00001001, 0x02021000, - 0x00105529, 0x4a033006, 0x0002078c, 0x0401f746, - 0x592c0001, 0x80001540, 0x02000000, 0x00105519, + 0x0010565a, 0x4a033006, 0x0002078c, 0x0401f746, + 0x592c0001, 0x80001540, 0x02000000, 0x0010564a, 0x58080a05, 0x82040d00, 0x000000ff, 0x82040580, - 0x0000004a, 0x02020000, 0x00105521, 0x58080406, - 0x8c000510, 0x02020000, 0x00105529, 0x4202e000, + 0x0000004a, 0x02020000, 0x00105652, 0x58080406, + 0x8c000510, 0x02020000, 0x0010565a, 0x4202e000, 0x00000001, 0x592c240b, 0x8c102504, 0x0400077f, 0x40087800, 0x592c0208, 0x82000480, 0x00001001, - 0x02021000, 0x00105529, 0x583c1809, 0x583c200a, + 0x02021000, 0x0010565a, 0x583c1809, 0x583c200a, 0x583c100b, 0x82080500, 0xffff0003, 0x02020000, - 0x00105529, 0x4202e000, 0x00000002, 0x42000000, - 0x0010dfe7, 0x50007000, 0x4a00700f, 0x00000008, + 0x0010565a, 0x4202e000, 0x00000002, 0x42000000, + 0x0010e2e7, 0x50007000, 0x4a00700f, 0x00000008, 0x480c7006, 0x48107007, 0x492c700a, 0x4a00700d, - 0x00000009, 0x483c700b, 0x0201f000, 0x00105b42, + 0x00000009, 0x483c700b, 0x0201f000, 0x00105cf9, 0x492fc857, 0x592e4411, 0x81224110, 0x0201f800, - 0x00105acb, 0x04020067, 0x592c0205, 0x80000112, - 0x02020000, 0x00105519, 0x592e8a07, 0x0201f800, - 0x0002034c, 0x0402005f, 0x0201f800, 0x0010491a, + 0x00105c82, 0x04020067, 0x592c0205, 0x80000112, + 0x02020000, 0x0010564a, 0x592e8a07, 0x0201f800, + 0x00104a7c, 0x0402005f, 0x0201f800, 0x00104a1c, 0x0402005f, 0x592e780b, 0x493fc857, 0x8d3e7d3e, 0x04020007, 0x8d0e1d0e, 0x04020056, 0x0201f800, - 0x00104817, 0x02000000, 0x00105529, 0x833c1d00, - 0x0000001f, 0x02000000, 0x00105529, 0x592c0208, - 0x82000c80, 0x00001000, 0x02021000, 0x00105529, + 0x00104917, 0x02000000, 0x0010565a, 0x833c1d00, + 0x0000001f, 0x02000000, 0x0010565a, 0x592c0208, + 0x82000c80, 0x00001000, 0x02021000, 0x0010565a, 0x800000c2, 0x800008c4, 0x8005d400, 0x592e9009, 0x592e980a, 0x5934080d, 0x800409c0, 0x04000004, 0x58041802, 0x800c19c0, 0x04020038, 0x833c1d00, 0x0000001f, 0x81780040, 0x80000000, 0x800c1902, - 0x040217fe, 0x02020000, 0x00105529, 0x0c01f001, + 0x040217fe, 0x02020000, 0x0010565a, 0x0c01f001, 0x000207f9, 0x000207fc, 0x00020809, 0x0002080c, - 0x0002080f, 0x0201f800, 0x00109677, 0x0401f023, - 0x0201f800, 0x001047e9, 0x04000027, 0x80e9d1c0, - 0x02020800, 0x00106314, 0x42028000, 0x00000005, - 0x417a9000, 0x417a9800, 0x0201f800, 0x00109687, + 0x0002080f, 0x0201f800, 0x001098af, 0x0401f023, + 0x0201f800, 0x001048e9, 0x04000027, 0x80e9d1c0, + 0x02020800, 0x00106519, 0x42028000, 0x00000005, + 0x417a9000, 0x417a9800, 0x0201f800, 0x001098bf, 0x0401f016, 0x42027000, 0x0000004d, 0x0401f006, 0x42027000, 0x0000004e, 0x0401f003, 0x42027000, 0x00000052, 0x5934080d, 0x800409c0, 0x04000007, - 0x4d3c0000, 0x40067800, 0x0201f800, 0x001047c9, - 0x5c027800, 0x04000009, 0x0201f800, 0x00104692, - 0x02020800, 0x001096bd, 0x04000007, 0x8d3e7d3e, + 0x4d3c0000, 0x40067800, 0x0201f800, 0x001048c9, + 0x5c027800, 0x04000009, 0x0201f800, 0x00104792, + 0x02020800, 0x001098f5, 0x04000007, 0x8d3e7d3e, 0x0402000e, 0x1c01f000, 0x4a025a07, 0x00000030, 0x0401f00d, 0x4a025a07, 0x0000002c, 0x0401f00a, 0x4a025a07, 0x00000028, 0x0401f007, 0x4a025a07, 0x00000029, 0x0401f004, 0x497a580a, 0x4a025a07, 0x00000000, 0x4a025a05, 0x00000103, 0x0201f000, 0x000203ef, 0x492fc857, 0x80140110, 0x80000040, - 0x04000003, 0x0201f000, 0x00105519, 0x592c0208, + 0x04000003, 0x0201f000, 0x0010564a, 0x592c0208, 0x82000500, 0x000003ff, 0x48025a08, 0x8c000506, 0x04000004, 0x82000500, 0x00000070, 0x04020003, 0x8d0e1d0e, 0x04020018, 0x4a025a07, 0x0000dead, 0x592c0409, 0x82000500, 0x0000f0ff, 0x48025c09, - 0x0201f800, 0x001042f4, 0x04020002, 0x1c01f000, + 0x0201f800, 0x001043ed, 0x04020002, 0x1c01f000, 0x49425a07, 0x8058b1c0, 0x04000009, 0x0201f800, - 0x00109cd4, 0x0401f80f, 0x44042800, 0x82580580, + 0x00109f12, 0x0401f80f, 0x44042800, 0x82580580, 0x00000002, 0x04020002, 0x48082801, 0x0201f000, 0x000203ef, 0x42028000, 0x00000031, 0x42000800, 0x00000001, 0x4200b000, 0x00000001, 0x0401f7ed, @@ -27299,12 +27561,12 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x835c0480, 0x00000020, 0x0400100d, 0x815eb840, 0x416a5800, 0x592ed000, 0x492fb007, 0x497a5800, 0x497a5801, 0x0400b7f7, 0x59d80005, 0x82000500, - 0x43018780, 0x02020000, 0x001058c4, 0x5c03e000, + 0x43018780, 0x02020000, 0x00105a0c, 0x5c03e000, 0x1c01f000, 0x4df00000, 0x4203e000, 0x50000000, 0x0402f00b, 0x835c0480, 0x00000020, 0x0400100d, 0x815eb840, 0x416a5800, 0x592ed000, 0x492fa807, 0x497a5800, 0x497a5801, 0x0400f7f7, 0x59d40005, - 0x82000500, 0x43018780, 0x02020000, 0x001058bd, + 0x82000500, 0x43018780, 0x02020000, 0x00105a05, 0x5c03e000, 0x1c01f000, 0x40307000, 0x5838000a, 0x80025d40, 0x04000026, 0x58380002, 0x82000580, 0x00000100, 0x04000028, 0x4c380000, 0x592c0a05, @@ -27321,7 +27583,7 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x0400008d, 0x5838100f, 0x8c081500, 0x0402001b, 0x8c081506, 0x0402003b, 0x4200b000, 0x00000003, 0x832cac00, 0x00000012, 0x58380009, 0x5838100c, - 0x8008a400, 0x4c380000, 0x0201f800, 0x0010bd5b, + 0x8008a400, 0x4c380000, 0x0201f800, 0x0010c086, 0x5c007000, 0x5838000c, 0x82000400, 0x00000003, 0x4800700c, 0x4a00700f, 0x00000001, 0x58380004, 0x82000480, 0x00000003, 0x48007004, 0x82000580, @@ -27333,7 +27595,7 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x492c0801, 0x492c700b, 0x42000800, 0x0000000f, 0x0401f014, 0x4202e000, 0x00000008, 0x4a033005, 0x0002090a, 0x1c01f000, 0x4202e000, 0x00000002, - 0x42000000, 0x0010dfe7, 0x50007000, 0x0401f7e7, + 0x42000000, 0x0010e2e7, 0x50007000, 0x0401f7e7, 0x84081540, 0x4808700f, 0x5838180d, 0x583a580b, 0x400c0000, 0x42000800, 0x00000015, 0x80040c80, 0x58381004, 0x5838000e, 0x41783000, 0x80000540, @@ -27342,7 +27604,7 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x40080800, 0x4004b000, 0x412c0000, 0x800c0400, 0x4000a800, 0x58380009, 0x5838100c, 0x8008a400, 0x4c080000, 0x4c040000, 0x4c0c0000, 0x4c380000, - 0x0201f800, 0x0010bd5b, 0x5c007000, 0x5c001800, + 0x0201f800, 0x0010c086, 0x5c007000, 0x5c001800, 0x5c000800, 0x40040000, 0x58381004, 0x80080480, 0x48007004, 0x82000580, 0x00000003, 0x04000002, 0x84183500, 0x5c000000, 0x80041400, 0x82080480, @@ -27353,23 +27615,23 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x00020958, 0x0002095d, 0x0002095a, 0x00020958, 0x000208f1, 0x0002095d, 0x0002095a, 0x00020958, 0x0201f800, 0x0010032e, 0x5838100e, 0x0201f000, - 0x00105b42, 0x5838080c, 0x82040400, 0x00000002, + 0x00105cf9, 0x5838080c, 0x82040400, 0x00000002, 0x58381009, 0x80080400, 0x50001000, 0x800811c0, 0x0402001a, 0x5838180f, 0x8c0c1d06, 0x04020011, 0x4202e000, 0x00000001, 0x583a580a, 0x4978700a, 0x4978700f, 0x592c0a05, 0x82040d00, 0x000000ff, 0x82040580, 0x00000012, 0x040005ab, 0x82040580, - 0x0000001b, 0x02000000, 0x0010b5b6, 0x0401f560, + 0x0000001b, 0x02000000, 0x0010b8e1, 0x0401f560, 0x4202e000, 0x00000001, 0x583a580a, 0x4978700a, 0x4978700f, 0x0401f5a0, 0x58380009, 0x80040c00, 0x82381c00, 0x00000006, 0x54041800, 0x80040800, - 0x800c1800, 0x54041800, 0x0201f000, 0x00105b42, + 0x800c1800, 0x54041800, 0x0201f000, 0x00105cf9, 0x4df00000, 0x4203e000, 0x50000000, 0x5994002e, 0x80000540, 0x040000ec, 0x4c000000, 0x8d0e1d32, - 0x02020800, 0x00101058, 0x59e00002, 0x8c00051e, + 0x02020800, 0x00101059, 0x59e00002, 0x8c00051e, 0x04020013, 0x42000000, 0x00001000, 0x50000000, 0x82000480, 0x24320002, 0x0402000d, 0x0201f800, - 0x0010bdab, 0x04000008, 0x42000800, 0x00007a17, + 0x0010c0d6, 0x04000008, 0x42000800, 0x00007a17, 0x50040000, 0x8c00050e, 0x04020003, 0x8400054e, 0x44000800, 0x4a030000, 0x00000000, 0x5c000000, 0x59947824, 0x4803282f, 0x803c0480, 0x04001004, @@ -27379,10 +27641,10 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x803c0040, 0x04000002, 0x483fc857, 0x59e40852, 0x59a8005d, 0x80040580, 0x04000004, 0x480bc857, 0x59e40052, 0x4803505d, 0x59940030, 0x803c0400, - 0x48032830, 0x0201f800, 0x001063cc, 0x59940000, + 0x48032830, 0x0201f800, 0x001065d1, 0x59940000, 0x82000580, 0x00000000, 0x04020006, 0x59940030, 0x48032831, 0x497b2830, 0x4a032800, 0x00000001, - 0x59bc00e4, 0x8c00052c, 0x02020800, 0x00106296, + 0x59bc00e4, 0x8c00052c, 0x02020800, 0x0010649b, 0x4c0c0000, 0x59940007, 0x80000d40, 0x04000013, 0x59941006, 0x5994002f, 0x80081c80, 0x04001004, 0x04000003, 0x480f2806, 0x0401f00c, 0x80040840, @@ -27425,19 +27687,19 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x0000000a, 0x4803282b, 0x040027f7, 0x5994082e, 0x5994002f, 0x80040480, 0x02001800, 0x0010032e, 0x4803282e, 0x59940000, 0x0c01f001, 0x00020a7e, - 0x0010631b, 0x00106388, 0x5c03e000, 0x1c01f000, + 0x00106520, 0x0010658d, 0x5c03e000, 0x1c01f000, 0x5994002e, 0x80000000, 0x4803282e, 0x4203e000, 0x70000000, 0x1c01f000, 0x592c0004, 0x497a5804, 0x80000d40, 0x04020005, 0x592c0407, 0x800000c2, 0x800008c4, 0x80040c00, 0x592c040b, 0x48066006, - 0x82000d00, 0x00000003, 0x02000000, 0x00106521, + 0x82000d00, 0x00000003, 0x02000000, 0x00106726, 0x8c000500, 0x04020035, 0x59a80873, 0x80040840, - 0x040207ff, 0x8c00051e, 0x02000000, 0x001064fc, - 0x82000d00, 0x000000c0, 0x02020000, 0x001064f2, - 0x82000d00, 0x00002020, 0x02020000, 0x001064ef, - 0x813e79c0, 0x02020000, 0x001064ef, 0x592c0c0d, - 0x800409c0, 0x02020000, 0x001064ef, 0x59300a03, - 0x82040d80, 0x00000007, 0x02020000, 0x001064ef, + 0x040207ff, 0x8c00051e, 0x02000000, 0x00106701, + 0x82000d00, 0x000000c0, 0x02020000, 0x001066f7, + 0x82000d00, 0x00002020, 0x02020000, 0x001066f4, + 0x813e79c0, 0x02020000, 0x001066f4, 0x592c0c0d, + 0x800409c0, 0x02020000, 0x001066f4, 0x59300a03, + 0x82040d80, 0x00000007, 0x02020000, 0x001066f4, 0x4a026203, 0x00000003, 0x4a026403, 0x00000043, 0x0201f800, 0x00020172, 0x82080d40, 0x80003465, 0x8c040d0e, 0x04000008, 0x59301009, 0x58081001, @@ -27445,14 +27707,14 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x84040d14, 0x48066004, 0x497a6000, 0x59bc00ea, 0x8c000516, 0x040207fe, 0x83300400, 0xa0000000, 0x480378e1, 0x1c01f000, 0x8c000502, 0x02020000, - 0x00106544, 0x8c00051e, 0x0400000e, 0x82000d00, + 0x00106749, 0x8c00051e, 0x0400000e, 0x82000d00, 0x000000c0, 0x04000005, 0x82040d80, 0x000000c0, - 0x02020000, 0x00106549, 0x82000d00, 0x00002020, - 0x82040d80, 0x00002020, 0x02000000, 0x00106510, - 0x592c0208, 0x80000040, 0x02020000, 0x0010651a, + 0x02020000, 0x0010674e, 0x82000d00, 0x00002020, + 0x82040d80, 0x00002020, 0x02000000, 0x00106715, + 0x592c0208, 0x80000040, 0x02020000, 0x0010671f, 0x592c0205, 0x82000500, 0x000000ff, 0x82000580, - 0x00000012, 0x02020000, 0x0010651a, 0x592c180e, - 0x800c19c0, 0x02020000, 0x0010651a, 0x592c1810, + 0x00000012, 0x02020000, 0x0010671f, 0x592c180e, + 0x800c19c0, 0x02020000, 0x0010671f, 0x592c1810, 0x59300008, 0x82000540, 0x00000011, 0x480e6012, 0x48026008, 0x4a026203, 0x00000004, 0x4a026403, 0x00000042, 0x42000800, 0x80002001, 0x0401f047, @@ -27469,35 +27731,35 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x0401f7f1, 0x0201f800, 0x000203dd, 0x0401f7ee, 0x59300020, 0x48025c10, 0x0401f7e9, 0x59840000, 0x80000540, 0x04020002, 0x1c01f000, 0x59840003, - 0x80000540, 0x02020000, 0x001065c1, 0x1c01f000, + 0x80000540, 0x02020000, 0x001067c6, 0x1c01f000, 0x48066004, 0x497a6000, 0x497a6001, 0x8d0e1d32, - 0x02000800, 0x00101058, 0x850e1d72, 0x59bc00ea, + 0x02000800, 0x00101059, 0x850e1d72, 0x59bc00ea, 0x8c000516, 0x040207fe, 0x83300400, 0xa0000000, 0x480378e1, 0x1c01f000, 0x59300004, 0x82000500, 0x00000100, 0x80040d40, 0x48066004, 0x59bc00ea, 0x8c000516, 0x040207fe, 0x83300400, 0x40000000, 0x480378e1, 0x1c01f000, 0x59bc00ea, 0x82001500, - 0xb0000018, 0x02020000, 0x00106c7a, 0x8c000510, + 0xb0000018, 0x02020000, 0x00106e7f, 0x8c000510, 0x0400002a, 0x59bc10e0, 0x82080500, 0xfffff000, 0x0402000a, 0x80080108, 0x820a3500, 0x0000000f, - 0x4803c857, 0x1201f000, 0x00106c80, 0x84000510, + 0x4803c857, 0x1201f000, 0x00106e85, 0x84000510, 0x48026004, 0x0401f016, 0x840a653e, 0x59300004, 0x8c000520, 0x040007fa, 0x82000500, 0xfffefeff, 0x48026004, 0x8c08153e, 0x04020005, 0x42027000, 0x00000013, 0x0401f858, 0x0401f009, 0x59300004, 0x8c000514, 0x04000003, 0x0401ff8f, 0x0401f02e, 0x42027000, 0x00000049, 0x0401f84f, 0x59bc00ea, - 0x82001500, 0xb0000018, 0x02020000, 0x00106c7a, + 0x82001500, 0xb0000018, 0x02020000, 0x00106e7f, 0x8c000510, 0x040207d8, 0x1c01f000, 0x59a80251, 0x81640480, 0x04001019, 0x41626000, 0x41580000, 0x59300a03, 0x82040d80, 0x00000000, 0x04020009, 0x4a026203, 0x00000008, 0x8166c840, 0x8332c400, 0x0000002c, 0x81600480, 0x04021009, 0x1c01f000, 0x83326400, 0x0000002c, 0x81300c80, 0x040017f1, - 0x42026000, 0x00111264, 0x0401f7ee, 0x837ac540, - 0x00111264, 0x1c01f000, 0x42000000, 0x0010cc16, - 0x0201f800, 0x0010bc88, 0x4967c857, 0x80026580, - 0x1c01f000, 0x83300480, 0x00111264, 0x02001800, + 0x42026000, 0x00111584, 0x0401f7ee, 0x837ac540, + 0x00111584, 0x1c01f000, 0x42000000, 0x0010cf16, + 0x0201f800, 0x0010bfb3, 0x4967c857, 0x80026580, + 0x1c01f000, 0x83300480, 0x00111584, 0x02001800, 0x0010032e, 0x41580000, 0x81300480, 0x0402100c, 0x457a6000, 0x4a026202, 0x0000ffff, 0x04011000, 0x83300400, 0x00000003, 0x4803c840, 0x4a03c842, @@ -27509,82 +27771,82 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x1c01f000, 0x4d340000, 0x4d240000, 0x5932481c, 0x5932680a, 0x59300407, 0x82000500, 0x0000001f, 0x0c01f804, 0x5c024800, 0x5c026800, 0x1c01f000, - 0x00107d2f, 0x00107d42, 0x00107d5c, 0x00020bec, - 0x0010a231, 0x0010a24c, 0x00020c6d, 0x00107d2f, - 0x00107d42, 0x001068b8, 0x00107d75, 0x00107d2f, - 0x00107d2f, 0x00107d2f, 0x00107d2f, 0x00107d2f, - 0x00109d26, 0x0010b1bb, 0x0010b8c4, 0x0010bab4, - 0x00107d2f, 0x00107d2f, 0x00107d2f, 0x00107d2f, - 0x00107d2f, 0x00107d2f, 0x00107d2f, 0x00107d2f, - 0x00107d2f, 0x00107d2f, 0x00107d2f, 0x00107d2f, + 0x00107f29, 0x00107f3c, 0x00107f56, 0x00020bec, + 0x0010a521, 0x0010a53c, 0x00020c6d, 0x00107f29, + 0x00107f3c, 0x00106abd, 0x00107f6f, 0x00107f29, + 0x00107f29, 0x00107f29, 0x00107f29, 0x00107f29, + 0x00109f64, 0x0010b4d2, 0x0010bbef, 0x0010bddf, + 0x00107f29, 0x00107f29, 0x00107f29, 0x00107f29, + 0x00107f29, 0x00107f29, 0x00107f29, 0x00107f29, + 0x00107f29, 0x00107f29, 0x00107f29, 0x00107f29, 0x59300203, 0x82000c80, 0x0000000e, 0x02021800, - 0x0010032e, 0x0c01f001, 0x00107d73, 0x00108a69, - 0x00020c00, 0x00108cb4, 0x00108d4e, 0x00107d73, - 0x00107d73, 0x00107d73, 0x00108a4e, 0x00107d73, - 0x00107d73, 0x00107d73, 0x00107d73, 0x00108f50, + 0x0010032e, 0x0c01f001, 0x00107f6d, 0x00108c8f, + 0x00020c00, 0x00108eda, 0x00108f74, 0x00107f6d, + 0x00107f6d, 0x00107f6d, 0x00108c74, 0x00107f6d, + 0x00107f6d, 0x00107f6d, 0x00107f6d, 0x00109176, 0x83380480, 0x00000058, 0x04021007, 0x83380480, 0x00000040, 0x04001004, 0x4d2c0000, 0x0c01f803, - 0x5c025800, 0x1c01f000, 0x00108af3, 0x00108af3, - 0x00108af3, 0x00108af3, 0x00108af3, 0x00108af5, - 0x00108bcd, 0x00108af3, 0x00108af3, 0x00108af3, - 0x00108af3, 0x00108af3, 0x00108af3, 0x00108af3, - 0x00108af3, 0x00108af3, 0x00108af3, 0x00108af3, - 0x00108af3, 0x00108bd1, 0x00020c22, 0x00108af3, - 0x00108bd0, 0x00108bd2, 0x59325809, 0x59300812, + 0x5c025800, 0x1c01f000, 0x00108d19, 0x00108d19, + 0x00108d19, 0x00108d19, 0x00108d19, 0x00108d1b, + 0x00108df3, 0x00108d19, 0x00108d19, 0x00108d19, + 0x00108d19, 0x00108d19, 0x00108d19, 0x00108d19, + 0x00108d19, 0x00108d19, 0x00108d19, 0x00108d19, + 0x00108d19, 0x00108df7, 0x00020c22, 0x00108d19, + 0x00108df6, 0x00108df8, 0x59325809, 0x59300812, 0x59301402, 0x59340200, 0x8c00050e, 0x04020025, 0x0401f832, 0x04000005, 0x4a025a05, 0x00000103, 0x497a580a, 0x0401f00c, 0x4a025a05, 0x00000103, 0x4a025a07, 0x00000000, 0x497a580a, 0x40040000, - 0x0201f800, 0x0010a0a5, 0x80000d40, 0x02020800, - 0x00108d19, 0x48065808, 0x480a5c07, 0x59300008, + 0x0201f800, 0x0010a2e2, 0x80000d40, 0x02020800, + 0x00108f3f, 0x48065808, 0x480a5c07, 0x59300008, 0x82000500, 0x04000800, 0x82000580, 0x04000800, 0x04000017, 0x0201f800, 0x000203ef, 0x5934000f, 0x5934140b, 0x80081040, 0x04001002, 0x480a6c0b, 0x80000540, 0x02020800, 0x0002035a, 0x0401f752, 0x592c020b, 0x8c000502, 0x040007da, 0x800409c0, 0x040007de, 0x592c0209, 0x8c00050e, 0x040207db, - 0x4933c857, 0x0201f000, 0x0010988f, 0x59300220, + 0x4933c857, 0x0201f000, 0x00109ac7, 0x59300220, 0x48025c10, 0x0401f7e8, 0x592c020b, 0x8c000500, 0x04000010, 0x59300016, 0x592c3810, 0x801c3c80, 0x0400000c, 0x4a025a07, 0x00000015, 0x8c1c3d3e, 0x04000005, 0x4a025a07, 0x00000007, 0x801c3880, 0x801c3800, 0x481fc857, 0x821c0d40, 0x00000000, 0x1c01f000, 0x59300203, 0x82003480, 0x0000000e, - 0x02021800, 0x0010032e, 0x0c01f001, 0x0010a26b, - 0x00020c81, 0x0010aa15, 0x0010aa23, 0x00020c9d, - 0x0010a26b, 0x0010ab16, 0x00020cbc, 0x0010a26b, - 0x0010a26b, 0x0010a26b, 0x0010a26b, 0x0010a26b, - 0x0010a26b, 0x83380580, 0x00000013, 0x02020000, - 0x0010a99c, 0x59300403, 0x82027480, 0x00000044, + 0x02021800, 0x0010032e, 0x0c01f001, 0x0010a55b, + 0x00020c81, 0x0010ad19, 0x0010ad27, 0x00020c9d, + 0x0010a55b, 0x0010ae1d, 0x00020cbc, 0x0010a55b, + 0x0010a55b, 0x0010a55b, 0x0010a55b, 0x0010a55b, + 0x0010a55b, 0x83380580, 0x00000013, 0x02020000, + 0x0010aca0, 0x59300403, 0x82027480, 0x00000044, 0x02021800, 0x0010032e, 0x82000480, 0x00000040, - 0x02001800, 0x0010032e, 0x0c01f001, 0x0010a9f9, - 0x00020c93, 0x0010a9fb, 0x0010aa0d, 0x59325809, + 0x02001800, 0x0010032e, 0x0c01f001, 0x0010acfd, + 0x00020c93, 0x0010acff, 0x0010ad11, 0x59325809, 0x832c0500, 0x00ff0000, 0x04000005, 0x592c0c0b, - 0x8c040d1a, 0x02020000, 0x0010aa08, 0x0401fe62, + 0x8c040d1a, 0x02020000, 0x0010ad0c, 0x0401fe62, 0x0401f701, 0x83380580, 0x00000048, 0x04000007, - 0x83380580, 0x00000053, 0x02000000, 0x0010aab8, + 0x83380580, 0x00000053, 0x02000000, 0x0010adbf, 0x0201f800, 0x0010032e, 0x59300028, 0x59301012, 0x5930080a, 0x58040a00, 0x8c040d0e, 0x02020000, - 0x0010aa94, 0x800811c0, 0x02020000, 0x0010aaa1, - 0x59300028, 0x80000540, 0x02020000, 0x0010aaaf, + 0x0010ad9b, 0x800811c0, 0x02020000, 0x0010ada8, + 0x59300028, 0x80000540, 0x02020000, 0x0010adb6, 0x59325809, 0x592c040b, 0x8c00051e, 0x02000000, - 0x0010aa8a, 0x42027000, 0x00000041, 0x0401f001, + 0x0010ad91, 0x42027000, 0x00000041, 0x0401f001, 0x83380480, 0x00000054, 0x02021800, 0x0010032e, - 0x83380480, 0x00000040, 0x02001000, 0x0010aad5, - 0x0c01f001, 0x0010aae1, 0x00020cd9, 0x0010aaed, - 0x0010aaf4, 0x0010aae1, 0x0010aae1, 0x0010aae1, - 0x0010aae1, 0x0010aae3, 0x0010aae8, 0x0010aae8, - 0x0010aae1, 0x0010aae1, 0x0010aae1, 0x0010aae1, - 0x0010aae8, 0x0010aae1, 0x0010aae8, 0x0010aae1, - 0x0010aae3, 0x4a026203, 0x00000001, 0x493a6403, + 0x83380480, 0x00000040, 0x02001000, 0x0010addc, + 0x0c01f001, 0x0010ade8, 0x00020cd9, 0x0010adf4, + 0x0010adfb, 0x0010ade8, 0x0010ade8, 0x0010ade8, + 0x0010ade8, 0x0010adea, 0x0010adef, 0x0010adef, + 0x0010ade8, 0x0010ade8, 0x0010ade8, 0x0010ade8, + 0x0010adef, 0x0010ade8, 0x0010adef, 0x0010ade8, + 0x0010adea, 0x4a026203, 0x00000001, 0x493a6403, 0x42000800, 0x80002042, 0x0401f660, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x441faab4, 0x00000000, - 0x00000000, 0x0010f300, 0x00001a73, 0x42000000, - 0x00110db0, 0x42001000, 0x00110da1, 0x48001000, - 0x42013800, 0x001111b0, 0x42000000, 0x00110da0, + 0x00000000, 0x00000000, 0x440ec717, 0x00000000, + 0x00000000, 0x0010f600, 0x00001a9a, 0x42000000, + 0x001110d0, 0x42001000, 0x001110c1, 0x48001000, + 0x42013800, 0x001114d0, 0x42000000, 0x001110c0, 0x489c0000, 0x409d4000, 0x409d6800, 0x1c01f000, 0x4200d000, 0x0000000d, 0x42000000, 0x00000002, 0x4800d000, 0x0401f7fb, 0x4200d000, 0x0000000d, @@ -27592,7 +27854,7 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x1c01f000, 0x809d3840, 0x48813800, 0x4933c857, 0x5931040b, 0x82817480, 0x00000038, 0x0400000d, 0x0400100c, 0x82810480, 0x00000038, 0x4a025a06, - 0x00000038, 0x0201f800, 0x00103873, 0x40c65800, + 0x00000038, 0x0201f800, 0x00103963, 0x40c65800, 0x80c589c0, 0x040207f4, 0x4178d000, 0x0401f004, 0x48825a06, 0x4200d000, 0x00000001, 0x40698800, 0x589d0000, 0x809d3800, 0x1c01f000, 0x42038000, @@ -27623,21 +27885,21 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0xe1290008, 0x486f9122, 0x0401f7e2, 0x4a039100, 0x0000e980, 0x1c01f000, 0x59c8d007, 0x8c68d500, 0x04000003, 0x4a03900d, 0x00000030, 0x1c01f000, - 0x0201f800, 0x00106c29, 0x59b8d0ea, 0x8268d500, + 0x0201f800, 0x00106e2e, 0x59b8d0ea, 0x8268d500, 0x00000007, 0x82697480, 0x00000003, 0x04000002, 0x0401f003, 0x4a0370e8, 0x00000001, 0x1c01f000, 0x4a038805, 0x00020000, 0x4200d000, 0x0000003c, - 0x0201f800, 0x001012d0, 0x4a038891, 0x0000ffff, + 0x0201f800, 0x001012d1, 0x4a038891, 0x0000ffff, 0x59c97035, 0x48bb9035, 0x4a03900d, 0x00000040, - 0x42038000, 0x00007700, 0x0201f800, 0x00100ca7, + 0x42038000, 0x00007700, 0x0201f800, 0x00100ca8, 0x4a038006, 0x20000000, 0x42038000, 0x00007720, - 0x0201f800, 0x00100ca7, 0x4a038006, 0x20000000, + 0x0201f800, 0x00100ca8, 0x4a038006, 0x20000000, 0x4a03a005, 0x20000000, 0x4a03a005, 0x30000000, 0x4a03b805, 0x30000001, 0x4a03b805, 0x20000000, 0x59d0d006, 0x8c68d50a, 0x040207fe, 0x59dcd006, 0x8c68d50a, 0x040207fb, 0x1c01f000, 0x4203a000, 0x00007600, 0x4200d000, 0x00000040, 0x0201f800, - 0x001012d0, 0x4a03a00a, 0x00000001, 0x4a03a005, + 0x001012d1, 0x4a03a00a, 0x00000001, 0x4a03a005, 0x20000000, 0x59d0d006, 0x4a03a005, 0x30000000, 0x59d0d006, 0x8c68d50a, 0x040207fe, 0x59d0d005, 0x59a0d211, 0x59a0dc11, 0x806c00e0, 0x8068d540, @@ -27662,24 +27924,24 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x59a8d00d, 0x41640000, 0x80697480, 0x04000015, 0x4967c857, 0x59a9704f, 0x48bbc857, 0x59a9704e, 0x48bbc857, 0x59a9704d, 0x48bbc857, 0x4a034407, - 0x00000018, 0x0201f800, 0x0010224a, 0x0401f12d, - 0x4a034407, 0x00000005, 0x0201f800, 0x0010224a, - 0x0401f128, 0x0201f800, 0x00102252, 0x0401f125, + 0x00000018, 0x0201f800, 0x00102309, 0x0401f12d, + 0x4a034407, 0x00000005, 0x0201f800, 0x00102309, + 0x0401f128, 0x0201f800, 0x00102311, 0x0401f125, 0x59a8d04e, 0x59a8004d, 0x80697480, 0x040207e9, - 0x0201f800, 0x00106c35, 0x598e600f, 0x0201f800, - 0x00106f55, 0x0201f800, 0x00106c35, 0x408e3000, - 0x0201f800, 0x001072f1, 0x59926004, 0x813261c0, - 0x0400000d, 0x0201f800, 0x00106e6e, 0x0201f800, - 0x00106c07, 0x0201f800, 0x00106c10, 0x42027800, + 0x0201f800, 0x00106e3a, 0x598e600f, 0x0201f800, + 0x0010715a, 0x0201f800, 0x00106e3a, 0x408e3000, + 0x0201f800, 0x001074f6, 0x59926004, 0x813261c0, + 0x0400000d, 0x0201f800, 0x00107073, 0x0201f800, + 0x00106e0c, 0x0201f800, 0x00106e15, 0x42027800, 0x00001000, 0x42028000, 0x0000002e, 0x0201f800, - 0x0010feea, 0x811a3000, 0x83197480, 0x00000004, - 0x040007ec, 0x040017eb, 0x0201f800, 0x001007f8, - 0x0201f800, 0x001029e3, 0x497b5061, 0x497b4408, - 0x4201d000, 0x003d0900, 0x0201f800, 0x00106490, + 0x001101fa, 0x811a3000, 0x83197480, 0x00000004, + 0x040007ec, 0x040017eb, 0x0201f800, 0x001007f6, + 0x0201f800, 0x00102aa7, 0x497b5061, 0x497b4408, + 0x4201d000, 0x003d0900, 0x0201f800, 0x00106695, 0x59c50880, 0x59c510a3, 0x497b4002, 0x0401febc, 0x0401ff5b, 0x4a03a005, 0x10000000, 0x59c4d005, 0x8268d540, 0x000000f0, 0x486b8805, 0x0401fed4, - 0x0201f800, 0x001029ec, 0x40c50000, 0x80c589c0, + 0x0201f800, 0x00102ab0, 0x40c50000, 0x80c589c0, 0x04020020, 0x59c8d001, 0x8068d1c0, 0x0402001d, 0x59dcd006, 0x8268d500, 0x43000f80, 0x0400000a, 0x59dcd006, 0x82697480, 0x00000000, 0x83f17500, @@ -27691,7 +27953,7 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x808101c0, 0x04020092, 0x59a0d408, 0x82697480, 0x0000dddd, 0x0400008e, 0x59c0d008, 0x8268d500, 0x0fffffff, 0x59c8d818, 0x826c0500, 0xf0000000, - 0x8068d540, 0x486b8008, 0x0201f800, 0x00100ca7, + 0x8068d540, 0x486b8008, 0x0201f800, 0x00100ca8, 0x59c0d806, 0x4a038006, 0x10000000, 0x59c0d809, 0x4883900d, 0x59c8d020, 0x8068e130, 0x59c8d020, 0x82690500, 0x00ffffff, 0x59c8d021, 0x8268fd00, @@ -27700,18 +27962,18 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x04020004, 0x82717480, 0x00000032, 0x04000075, 0x486fc857, 0x4873c857, 0x4877c857, 0x4883c857, 0x487fc857, 0x487bc857, 0x59a9700f, 0x48bbc857, - 0x0201f800, 0x00102a03, 0x4a035061, 0x00000001, + 0x0201f800, 0x00102ac7, 0x4a035061, 0x00000001, 0x4200d000, 0x00000064, 0x0401f004, 0x8068d1c0, 0x04000072, 0x8068d040, 0x59c0d807, 0x8c6cdd04, - 0x040007fb, 0x0401fecb, 0x0201f800, 0x00106ff4, + 0x040007fb, 0x0401fecb, 0x0201f800, 0x001071f9, 0x0401febc, 0x4201d000, 0x000186a0, 0x0201f800, - 0x00106490, 0x488b88a3, 0x48878880, 0x59a8d061, - 0x8068d1c0, 0x04020050, 0x0201f800, 0x00102207, - 0x0401f07c, 0x4887c857, 0x0201f800, 0x0010224e, - 0x0401f078, 0x0201f800, 0x00107cfb, 0x40c66000, - 0x80c589c0, 0x04000041, 0x0201f800, 0x00103873, + 0x00106695, 0x488b88a3, 0x48878880, 0x59a8d061, + 0x8068d1c0, 0x04020050, 0x0201f800, 0x001022c6, + 0x0401f07c, 0x4887c857, 0x0201f800, 0x0010230d, + 0x0401f078, 0x0201f800, 0x00107ef5, 0x40c66000, + 0x80c589c0, 0x04000041, 0x0201f800, 0x00103963, 0x40c65800, 0x80c589c0, 0x04000022, 0x4a02601c, - 0x0010ccd1, 0x48898a05, 0x48898c05, 0x4882620b, + 0x0010cfd1, 0x48898a05, 0x48898c05, 0x4882620b, 0x4886640b, 0x59a0d40f, 0x8068d0e0, 0x59a0da0f, 0x406c0000, 0x8068d540, 0x486a600c, 0x59a0d40a, 0x8068d0e0, 0x59a0da0a, 0x406c0000, 0x8068d540, @@ -27719,22 +27981,22 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x406c0000, 0x8068d540, 0x486a600e, 0x59a0d411, 0x8068d0e0, 0x59a0da11, 0x406c0000, 0x8068d540, 0x486a600f, 0x0401fdfc, 0x80c589c0, 0x04020006, - 0x0201f800, 0x00107cbb, 0x4a034407, 0x00000002, + 0x0201f800, 0x00107eb1, 0x4a034407, 0x00000002, 0x0401f71e, 0x48ee602a, 0x58ee580c, 0x4a01d801, 0x00000001, 0x592cd206, 0x4869d805, 0x832cd400, 0x00000007, 0x4869d803, 0x4895d806, 0x4891d807, - 0x4a01d808, 0x0010f5a0, 0x4a034000, 0x00000001, + 0x4a01d808, 0x0010f8a0, 0x4a034000, 0x00000001, 0x49334001, 0x0401fec0, 0x0401f036, 0x4a035061, 0x00000001, 0x0401f7a8, 0x4a034407, 0x00000003, - 0x0401f706, 0x0201f800, 0x00102256, 0x0401f02d, + 0x0401f706, 0x0201f800, 0x00102315, 0x0401f02d, 0x82757480, 0x000000e1, 0x0402078a, 0x407c0000, 0x80817480, 0x04020787, 0x59a8d00f, 0x80697480, 0x04020784, 0x8278d500, 0x000000f0, 0x04020781, 0x0401fe4e, 0x0401f78b, 0x4a035061, 0x00000001, - 0x0201f800, 0x001018ec, 0x80c589c0, 0x04000008, + 0x0201f800, 0x001018f1, 0x80c589c0, 0x04000008, 0x59c4d005, 0x8268d500, 0x000000f0, 0x04000007, 0x4a034408, 0x0000bbbb, 0x0401f787, 0x4a034408, - 0x0000aaaa, 0x0401f784, 0x0201f800, 0x001029ec, + 0x0000aaaa, 0x0401f784, 0x0201f800, 0x00102ab0, 0x80c57040, 0x04000008, 0x59c0d007, 0x8268d500, 0x000501c0, 0x0400077c, 0x4a034408, 0x0000dddd, 0x0401f779, 0x4a034408, 0x0000cccc, 0x0401f776, @@ -27745,10 +28007,10 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x59a26001, 0x48ee602a, 0x58ee580c, 0x4979d801, 0x592cd206, 0x4869d805, 0x832cd400, 0x00000007, 0x4869d803, 0x5931700c, 0x48b9d806, 0x5931700d, - 0x48b9d807, 0x4a01d808, 0x0010f5a0, 0x4a034000, + 0x48b9d807, 0x4a01d808, 0x0010f8a0, 0x4a034000, 0x00000001, 0x40826000, 0x0401fe67, 0x0401f009, 0x41310000, 0x59a26001, 0x4933c857, 0x0201f800, - 0x00107cbe, 0x40826000, 0x0201f800, 0x00102256, + 0x00107eb4, 0x40826000, 0x0201f800, 0x00102315, 0x589d0000, 0x809d3800, 0x1c01f000, 0x829d3c80, 0x00000005, 0x48813800, 0x48853801, 0x48893802, 0x488d3803, 0x48913804, 0x412d1000, 0x41310800, @@ -27765,17 +28027,17 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x82697480, 0x00000103, 0x04000030, 0x41351800, 0x41452000, 0x592cd405, 0x8468d55e, 0x486a5c05, 0x42028800, 0x000007fd, 0x4200d000, 0x00fffffd, - 0x0201f800, 0x00104526, 0x40c66800, 0x80c589c0, - 0x04000010, 0x0201f800, 0x00109a1c, 0x80c589c0, + 0x0201f800, 0x00104622, 0x40c66800, 0x80c589c0, + 0x04000010, 0x0201f800, 0x00109c54, 0x80c589c0, 0x04000018, 0x40866000, 0x4881d801, 0x4a01d808, - 0x0010f57a, 0x0401f00f, 0x0201f800, 0x00102242, - 0x0201f800, 0x00107cbb, 0x40866000, 0x0401f019, - 0x59a26001, 0x0201f800, 0x00107cbb, 0x40866000, - 0x4a034407, 0x00000002, 0x0201f800, 0x0010224a, + 0x0010f87a, 0x0401f00f, 0x0201f800, 0x00102301, + 0x0201f800, 0x00107eb1, 0x40866000, 0x0401f019, + 0x59a26001, 0x0201f800, 0x00107eb1, 0x40866000, + 0x4a034407, 0x00000002, 0x0201f800, 0x00102309, 0x408a5800, 0x408e6800, 0x40928800, 0x0401f00d, - 0x0201f800, 0x00107cbb, 0x40866000, 0x4a034407, - 0x00000004, 0x0401f7f5, 0x0201f800, 0x00107cbb, - 0x40866000, 0x0201f800, 0x00102207, 0x408a5800, + 0x0201f800, 0x00107eb1, 0x40866000, 0x4a034407, + 0x00000004, 0x0401f7f5, 0x0201f800, 0x00107eb1, + 0x40866000, 0x0201f800, 0x001022c6, 0x408a5800, 0x589d2004, 0x589d1803, 0x589d1002, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000005, 0x1c01f000, 0x829d3c80, 0x00000004, 0x48813800, 0x48853801, @@ -27793,12 +28055,12 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x8068d0e0, 0x59a0da0e, 0x406c0000, 0x80691d40, 0x59a0d411, 0x8068d0e0, 0x59a0da11, 0x406c0000, 0x80691540, 0x4201d000, 0x00003a98, 0x0201f800, - 0x00106490, 0x4883a002, 0x59a97062, 0x48bba008, + 0x00106695, 0x4883a002, 0x59a97062, 0x48bba008, 0x488fa000, 0x488ba001, 0x59d0d005, 0x4a03a005, 0x10000000, 0x4178d000, 0x04025002, 0x8068d000, 0x8068d1c0, 0x04020007, 0x5884d001, 0x8068d000, 0x48690801, 0x4200d800, 0x00000001, 0x0401f011, - 0x4200d000, 0x0010f611, 0x4084d800, 0x4178e000, + 0x4200d000, 0x0010f911, 0x4084d800, 0x4178e000, 0x0201f800, 0x0010032b, 0x0401f7f4, 0x497a600d, 0x592e5801, 0x812e59c0, 0x040007df, 0x492e600c, 0x832cdc00, 0x00000006, 0x486e600b, 0x0401f7da, @@ -27812,7 +28074,7 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x48bbc857, 0x59d0d006, 0x8c68d504, 0x0400000a, 0x59d0d006, 0x82697480, 0x00000000, 0x83f17500, 0x0c000000, 0x04000004, 0x82b97580, 0x0c000000, - 0x04020010, 0x0401f033, 0x4200d000, 0x0010f679, + 0x04020010, 0x0401f033, 0x4200d000, 0x0010f979, 0x4080e000, 0x0201f800, 0x0010032b, 0x59d0d006, 0x82697480, 0x00000000, 0x83f17500, 0x0c000000, 0x040007f5, 0x82b97480, 0x0c000000, 0x040007f2, @@ -27826,8 +28088,8 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x4a034408, 0x0000dddd, 0x0401f006, 0x48690001, 0x4080d000, 0x0401ff47, 0x80c589c0, 0x040207f6, 0x589d0000, 0x809d3800, 0x1c01f000, 0x0201f800, - 0x001018ec, 0x80c589c0, 0x04020002, 0x0401f009, - 0x4a034407, 0x00000017, 0x0201f800, 0x0010224a, + 0x001018f1, 0x80c589c0, 0x04020002, 0x0401f009, + 0x4a034407, 0x00000017, 0x0201f800, 0x00102309, 0x4203e000, 0x50000000, 0x497bc856, 0x0401f000, 0x1c01f000, 0x4068d800, 0x59c17009, 0x48bbc857, 0x59c0e009, 0x8270d500, 0x00e00000, 0x04000019, @@ -27868,7 +28130,7 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x0400000c, 0x59c17007, 0x48bbc857, 0x59c0d007, 0x82697480, 0x00000000, 0x83f17500, 0x0c000000, 0x04000004, 0x82b97580, 0x0c000000, 0x04020010, - 0x0401f035, 0x4200d000, 0x0010f75b, 0x4080e000, + 0x0401f035, 0x4200d000, 0x0010fa5b, 0x4080e000, 0x0201f800, 0x0010032b, 0x59c0d007, 0x82697480, 0x00000000, 0x83f17500, 0x0c000000, 0x040007f5, 0x82b97480, 0x0c000000, 0x040007f2, 0x4a038006, @@ -27883,13 +28145,13 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x48690002, 0x4080d000, 0x0401ff54, 0x80c589c0, 0x040207f6, 0x589d0000, 0x809d3800, 0x1c01f000, 0x59a26000, 0x813261c0, 0x04000009, 0x59325809, - 0x812e59c0, 0x04000005, 0x0201f800, 0x00107cbb, + 0x812e59c0, 0x04000005, 0x0201f800, 0x00107eb1, 0x0201f800, 0x0010059d, 0x497b4000, 0x59a26001, 0x813261c0, 0x04000009, 0x59325809, 0x812e59c0, - 0x04000005, 0x0201f800, 0x00107cbb, 0x0201f800, + 0x04000005, 0x0201f800, 0x00107eb1, 0x0201f800, 0x0010059d, 0x497b4001, 0x1c01f000, 0x809d3840, - 0x48813800, 0x40690000, 0x0201f800, 0x00102a03, - 0x0201f800, 0x0010f3b1, 0x5880d00b, 0x8068d1c0, + 0x48813800, 0x40690000, 0x0201f800, 0x00102ac7, + 0x0201f800, 0x0010f6b1, 0x5880d00b, 0x8068d1c0, 0x04020004, 0x5880d00c, 0x8068d1c0, 0x04000007, 0x59a0d00d, 0x8068d1c0, 0x0402000a, 0x4200d000, 0x00000001, 0x0401f009, 0x5880d00d, 0x8068d1c0, @@ -27918,7 +28180,7 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x00000003, 0x1c01f000, 0x829d3c80, 0x00000002, 0x48813800, 0x48853801, 0x40690000, 0x497bc856, 0x4203a000, 0x00007600, 0x4200d000, 0x00000040, - 0x0201f800, 0x001012d0, 0x4a03a00a, 0x00000001, + 0x0201f800, 0x001012d1, 0x4a03a00a, 0x00000001, 0x4a03a005, 0x20000000, 0x59d0d006, 0x4a03a005, 0x30000000, 0x59d0d006, 0x82690d00, 0x00000020, 0x8c68d50a, 0x040207fc, 0x59a0d20d, 0x48690005, @@ -27928,12 +28190,12 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x406c0000, 0x8068d540, 0x48690006, 0x59a0d40c, 0x8068d0e0, 0x59a0da0c, 0x826c0500, 0x0000fffc, 0x8068d540, 0x48690009, 0x486ba003, 0x0201f800, - 0x00107cfb, 0x40c66000, 0x80c589c0, 0x0400004f, + 0x00107ef5, 0x40c66000, 0x80c589c0, 0x0400004f, 0x49334001, 0x0201f800, 0x00100580, 0x40c65800, 0x80c589c0, 0x04000041, 0x4a025a05, 0x00000018, 0x4a025806, 0x00abcdef, 0x492e6009, 0x492e600c, 0x58817005, 0x48ba600e, 0x48865c11, 0x4a02601c, - 0x0010ccd1, 0x4a02600d, 0x00000004, 0x832cd400, + 0x0010cfd1, 0x4a02600d, 0x00000004, 0x832cd400, 0x00000012, 0x486a600b, 0x48690008, 0x4a01000a, 0x0000000c, 0x5880d005, 0x8068d040, 0x48690005, 0x4080d000, 0x0401ff5d, 0x59a0d408, 0x82697480, @@ -27946,14 +28208,14 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x83f17500, 0x03000000, 0x040007ef, 0x4979000a, 0x4178e000, 0x8270e400, 0x0000000c, 0x8068d840, 0x406cd000, 0x806cd9c0, 0x040207fb, 0x4871000a, - 0x486d0005, 0x0401f7e9, 0x4200d000, 0x0010f837, + 0x486d0005, 0x0401f7e9, 0x4200d000, 0x0010fb37, 0x4200d800, 0x00100580, 0x4080e000, 0x0201f800, - 0x0010032b, 0x0401f7b9, 0x4200d000, 0x0010f837, - 0x4200d800, 0x00107cfb, 0x4080e000, 0x0201f800, + 0x0010032b, 0x0401f7b9, 0x4200d000, 0x0010fb37, + 0x4200d800, 0x00107ef5, 0x4080e000, 0x0201f800, 0x0010032b, 0x0401f7ab, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000002, 0x1c01f000, 0x809d3840, 0x48813800, 0x40690000, 0x497bc856, 0x42038000, - 0x00007700, 0x0201f800, 0x00100ca7, 0x59c0d006, + 0x00007700, 0x0201f800, 0x00100ca8, 0x59c0d006, 0x59a0d40d, 0x48690005, 0x8068d1c0, 0x04020009, 0x497b9009, 0x59e0d003, 0x8268d540, 0x00008060, 0x486bc003, 0x4a038009, 0x00e00000, 0x0401f07d, @@ -27962,13 +28224,13 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x59a0da0f, 0x406c0000, 0x8068d540, 0x48690006, 0x59a0d40c, 0x8068d0e0, 0x59a0da0c, 0x826c0500, 0x0000fffc, 0x8068d540, 0x48690009, 0x486bc857, - 0x58817009, 0x48bb8003, 0x0201f800, 0x00107cfb, + 0x58817009, 0x48bb8003, 0x0201f800, 0x00107ef5, 0x40c66000, 0x80c589c0, 0x0400005a, 0x49334000, 0x0201f800, 0x00100580, 0x40c65800, 0x80c589c0, 0x0400004c, 0x4a025a05, 0x00000018, 0x4a025806, 0x00abcdef, 0x492e6009, 0x492e600c, 0x58817005, 0x48ba600e, 0x4a02600d, 0x00000004, 0x497a5c11, - 0x4a02601c, 0x0010ccd1, 0x832cd400, 0x00000012, + 0x4a02601c, 0x0010cfd1, 0x832cd400, 0x00000012, 0x486a600b, 0x48690008, 0x4a01000a, 0x0000000c, 0x5880d005, 0x8068d040, 0x48690005, 0x4080d000, 0x0401fed2, 0x59a0d408, 0x82697480, 0x0000dddd, @@ -27984,49 +28246,49 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x832cd400, 0x00000006, 0x48690008, 0x4080d000, 0x0401fea6, 0x80c589c0, 0x040207ea, 0x59a0d408, 0x82697480, 0x0000dddd, 0x0402078e, 0x0401f011, - 0x4200d000, 0x0010f8c8, 0x4200d800, 0x00100580, + 0x4200d000, 0x0010fbc8, 0x4200d800, 0x00100580, 0x4080e000, 0x0201f800, 0x0010032b, 0x0401f7ae, - 0x4200d000, 0x0010f8c8, 0x4200d800, 0x00107cfb, + 0x4200d000, 0x0010fbc8, 0x4200d800, 0x00107ef5, 0x4080e000, 0x0201f800, 0x0010032b, 0x0401f7a0, 0x589d0000, 0x809d3800, 0x1c01f000, 0x829d3c80, 0x00000002, 0x48813800, 0x48853801, 0x40690800, - 0x406d0000, 0x0201f800, 0x0010193b, 0x40800000, - 0x4084d000, 0x80c4dd00, 0x0201f800, 0x00101942, + 0x406d0000, 0x0201f800, 0x00101940, 0x40800000, + 0x4084d000, 0x80c4dd00, 0x0201f800, 0x00101947, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000002, 0x1c01f000, 0x829d3c80, 0x00000002, 0x48813800, 0x48853801, 0x40690800, 0x406d0000, 0x0201f800, - 0x0010193b, 0x40800000, 0x4084d000, 0x80c4dd40, - 0x0201f800, 0x00101942, 0x589d0801, 0x589d0000, + 0x00101940, 0x40800000, 0x4084d000, 0x80c4dd40, + 0x0201f800, 0x00101947, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000002, 0x1c01f000, 0x809d3840, 0x48813800, 0x4200d000, 0x000000ef, 0x0201f800, - 0x001015c3, 0x4a03500f, 0x000000ef, 0x59c4d0a3, + 0x001015c4, 0x4a03500f, 0x000000ef, 0x59c4d0a3, 0x8468d55a, 0x8468d53a, 0x486b88a3, 0x0201f800, - 0x0010161e, 0x80c589c0, 0x04000043, 0x4200d000, - 0x00000001, 0x0201f800, 0x001018a1, 0x4200d000, - 0x00000001, 0x0201f800, 0x00101827, 0x4178d000, + 0x00101623, 0x80c589c0, 0x04000043, 0x4200d000, + 0x00000001, 0x0201f800, 0x001018a6, 0x4200d000, + 0x00000001, 0x0201f800, 0x0010182c, 0x4178d000, 0x4200d800, 0x00000004, 0x0401ffd3, 0x4201d000, - 0x00000014, 0x0201f800, 0x0010645c, 0x59c4d008, + 0x00000014, 0x0201f800, 0x00106661, 0x59c4d008, 0x8468d54e, 0x8268d500, 0xffffffe1, 0x486b8808, 0x4a0388a7, 0x0000f7f7, 0x4a038805, 0x04000001, 0x4200d000, 0xbe20bfff, 0x4200d800, 0x80018000, - 0x0201f800, 0x001041ab, 0x4200d000, 0xfffeffff, - 0x4178d800, 0x0201f800, 0x001041ab, 0x42010000, + 0x0201f800, 0x001042a4, 0x4200d000, 0xfffeffff, + 0x4178d800, 0x0201f800, 0x001042a4, 0x42010000, 0x00001387, 0x0401f008, 0x80817040, 0x04000048, 0x80810040, 0x42000000, 0xffffffff, 0x80817480, 0x04000009, 0x4201d000, 0x00000014, 0x0201f800, - 0x0010645c, 0x0201f800, 0x001018ec, 0x80c589c0, + 0x00106661, 0x0201f800, 0x001018f1, 0x80c589c0, 0x040007f2, 0x59c4d005, 0x8268dd00, 0x04000000, 0x8c68d534, 0x04020018, 0x59c4d0a4, 0x8268d500, 0x0000000f, 0x82697480, 0x00000008, 0x04020031, - 0x0401f011, 0x0201f800, 0x0010162c, 0x80c589c0, - 0x04000006, 0x4178d000, 0x0201f800, 0x001018a1, + 0x0401f011, 0x0201f800, 0x00101631, 0x80c589c0, + 0x04000006, 0x4178d000, 0x0201f800, 0x001018a6, 0x4178d000, 0x0401f7bc, 0x4200d000, 0x00000002, - 0x0201f800, 0x001018a1, 0x4200d000, 0x00000002, + 0x0201f800, 0x001018a6, 0x4200d000, 0x00000002, 0x0401f7b5, 0x4200d000, 0x00020000, 0x0201f800, - 0x001041b2, 0x4201d000, 0x00000064, 0x0201f800, - 0x0010645c, 0x4200d000, 0xfeffffff, 0x4200d800, - 0x02000000, 0x0201f800, 0x001041ab, 0x4200d000, - 0xfdffffff, 0x4178d800, 0x0201f800, 0x001041ab, + 0x001042ab, 0x4201d000, 0x00000064, 0x0201f800, + 0x00106661, 0x4200d000, 0xfeffffff, 0x4200d800, + 0x02000000, 0x0201f800, 0x001042a4, 0x4200d000, + 0xfdffffff, 0x4178d800, 0x0201f800, 0x001042a4, 0x4a038805, 0x04000001, 0x59c4d0a4, 0x8268d500, 0x0000000f, 0x4178d800, 0x8068d1c0, 0x04020005, 0x4200d800, 0x00000001, 0x0401f002, 0x40c4d800, @@ -28039,45 +28301,45 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x0402000e, 0x59a0d407, 0x82690500, 0x00000007, 0x82817480, 0x00000002, 0x04000015, 0x808101c0, 0x04000023, 0x80817040, 0x040000e0, 0x0201f800, - 0x0010224e, 0x0401f18d, 0x0201f800, 0x00101648, + 0x0010230d, 0x0401f18d, 0x0201f800, 0x0010164d, 0x80c589c0, 0x040007f0, 0x4200d000, 0x00000002, - 0x0201f800, 0x001018a1, 0x4200d000, 0x00000002, - 0x0201f800, 0x00101827, 0x0401f7e7, 0x8d0e1d0e, - 0x0402000c, 0x0201f800, 0x00104fbf, 0x80c589c0, + 0x0201f800, 0x001018a6, 0x4200d000, 0x00000002, + 0x0201f800, 0x0010182c, 0x0401f7e7, 0x8d0e1d0e, + 0x0402000c, 0x0201f800, 0x001050f0, 0x80c589c0, 0x04020170, 0x836d7480, 0x00000003, 0x04020005, 0x59c4d0a4, 0x8268d500, 0x0000000f, 0x04000010, - 0x0201f800, 0x00102252, 0x0401f170, 0x4200d000, + 0x0201f800, 0x00102311, 0x0401f170, 0x4200d000, 0x000000c0, 0x4200d800, 0x00000002, 0x0401ff26, 0x4080d000, 0x4200d800, 0x00000008, 0x0401ff22, 0x0401ff33, 0x80c589c0, 0x040000bb, 0x59a0d410, 0x8068d0e0, 0x59a0da10, 0x406c0000, 0x8068d540, 0x48694000, 0x497b4408, 0x4979400b, 0x4979400c, 0x4979400d, 0x49794002, 0x49794001, 0x0201f800, - 0x001029e3, 0x0201f800, 0x00106c35, 0x598e600f, - 0x0201f800, 0x00106f55, 0x0201f800, 0x00106c35, - 0x417a3000, 0x0201f800, 0x001072f1, 0x59926004, - 0x813261c0, 0x0400000d, 0x0201f800, 0x00106e6e, - 0x0201f800, 0x00106c07, 0x0201f800, 0x00106c10, + 0x00102aa7, 0x0201f800, 0x00106e3a, 0x598e600f, + 0x0201f800, 0x0010715a, 0x0201f800, 0x00106e3a, + 0x417a3000, 0x0201f800, 0x001074f6, 0x59926004, + 0x813261c0, 0x0400000d, 0x0201f800, 0x00107073, + 0x0201f800, 0x00106e0c, 0x0201f800, 0x00106e15, 0x42027800, 0x00001000, 0x42028000, 0x0000002e, - 0x0201f800, 0x0010feea, 0x811a3000, 0x83197480, + 0x0201f800, 0x001101fa, 0x811a3000, 0x83197480, 0x00000004, 0x040007ec, 0x040017eb, 0x0201f800, - 0x001007f8, 0x59a8d06d, 0x8068d1c0, 0x0402007f, + 0x001007f6, 0x59a8d06d, 0x8068d1c0, 0x0402007f, 0x49794004, 0x497b4002, 0x40a0d000, 0x0401fe44, 0x59a0d408, 0x82697480, 0x0000dddd, 0x04000126, 0x40a0d000, 0x0401fdad, 0x59a0d408, 0x82697480, 0x0000dddd, 0x04000120, 0x59a0d00d, 0x8068d1c0, 0x040200ef, 0x4979400e, 0x40a0d000, 0x0201f800, - 0x0010f611, 0x0201f800, 0x0010f358, 0x58a0d004, + 0x0010f911, 0x0201f800, 0x0010f658, 0x58a0d004, 0x8068d1c0, 0x04000053, 0x58a0e00e, 0x80717040, 0x0400007c, 0x59c8d001, 0x8068d1c0, 0x04020070, 0x59a0d002, 0x42000000, 0xfeedbeef, 0x80697480, 0x040000d8, 0x4a014003, 0x10000000, 0x40a0d000, 0x0401fc56, 0x4a034002, 0xfeedbeef, 0x40a0d000, - 0x0201f800, 0x0010f679, 0x59a0d408, 0x82697480, + 0x0201f800, 0x0010f979, 0x59a0d408, 0x82697480, 0x0000dddd, 0x04000028, 0x40a0d000, 0x0401fca7, 0x59a0d408, 0x82697480, 0x0000dddd, 0x04000022, - 0x0201f800, 0x0010f39f, 0x59c4d005, 0x8c68d534, - 0x040200cf, 0x0201f800, 0x001029ec, 0x80c589c0, + 0x0201f800, 0x0010f69f, 0x59c4d005, 0x8c68d534, + 0x040200cf, 0x0201f800, 0x00102ab0, 0x80c589c0, 0x040200ce, 0x59a0d00d, 0x8068d1c0, 0x04000016, 0x59a26000, 0x59a0d40d, 0x8068d1c0, 0x04000004, 0x5930d00e, 0x8068d1c0, 0x040207c7, 0x59a26001, @@ -28089,16 +28351,16 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x04020042, 0x40a0d000, 0x0401fce5, 0x80c589c0, 0x04020051, 0x58a0d000, 0x8068d1c0, 0x04020047, 0x0401f04d, 0x59c8d001, 0x8068d1c0, 0x040207af, - 0x40a0d000, 0x0201f800, 0x0010f679, 0x59a0d408, + 0x40a0d000, 0x0201f800, 0x0010f979, 0x59a0d408, 0x82697480, 0x0000dddd, 0x040007a8, 0x0201f800, - 0x001029ec, 0x80c589c0, 0x040007f3, 0x0201f800, - 0x0010f6d0, 0x4a01400d, 0x0000aaaa, 0x4a01400e, + 0x00102ab0, 0x80c589c0, 0x040007f3, 0x0201f800, + 0x0010f9d0, 0x4a01400d, 0x0000aaaa, 0x4a01400e, 0x00000001, 0x0401f79d, 0x59c4d001, 0x8468d518, 0x486b8801, 0x0401f77f, 0x4200d000, 0x000000c0, 0x4080d800, 0x0401fe68, 0x0401fe79, 0x80c589c0, 0x04020747, 0x4088d000, 0x408cd800, 0x4090e000, 0x0201f800, 0x0010032b, 0x0401f741, 0x40a0d000, - 0x0201f800, 0x0010f6de, 0x80c589c0, 0x0400078d, + 0x0201f800, 0x0010f9de, 0x80c589c0, 0x0400078d, 0x4a01400e, 0x00000001, 0x4200e000, 0x00000001, 0x58a0d000, 0x8068d040, 0x48694000, 0x4200d800, 0x00030d40, 0x80717040, 0x04020004, 0x0401f7c2, @@ -28107,8 +28369,8 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x59c0d007, 0x8268d500, 0x000501c0, 0x04000058, 0x4a01400d, 0x0000dddd, 0x40a0d000, 0x0401fc98, 0x80c589c0, 0x04020004, 0x58a0d000, 0x8068d1c0, - 0x0402074c, 0x0201f800, 0x00106ff4, 0x0201f800, - 0x0010f3a5, 0x4201d000, 0x000186a0, 0x48978880, + 0x0402074c, 0x0201f800, 0x001071f9, 0x0201f800, + 0x0010f6a5, 0x4201d000, 0x000186a0, 0x48978880, 0x48938808, 0x488f88a3, 0x4887500f, 0x488b9040, 0x42038000, 0x00007700, 0x4a038009, 0xf4f60000, 0x4a038891, 0x0000ffff, 0x4a03900d, 0x00000040, @@ -28118,112 +28380,116 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x04000013, 0x4200d000, 0x000000c0, 0x4200d800, 0xfffffffc, 0x0401fe02, 0x4178d000, 0x4200d800, 0xfffffff7, 0x0401fdfe, 0x4178d000, 0x4200d800, - 0xfffffffb, 0x0401fdfa, 0x0201f800, 0x00104fdb, + 0xfffffffb, 0x0401fdfa, 0x0201f800, 0x0010510c, 0x40c50000, 0x80c589c0, 0x04000034, 0x59a0d408, 0x82697480, 0x0000dddd, 0x0400000f, 0x58a0d80b, 0x806cd9c0, 0x04020007, 0x58a0d00c, 0x8068d1c0, 0x04020004, 0x58a0d00d, 0x8068d1c0, 0x0400003d, 0x486f4407, 0x58a0d00c, 0x486b4208, 0x58a0d00d, - 0x486b4408, 0x0201f800, 0x0010225a, 0x0401f037, + 0x486b4408, 0x0201f800, 0x00102319, 0x0401f037, 0x4a014003, 0x10000004, 0x0401f729, 0x40a0d000, - 0x0201f800, 0x0010f611, 0x0401f70f, 0x0201f800, - 0x0010f6d0, 0x0401f7a7, 0x40a0d000, 0x0401fc40, + 0x0201f800, 0x0010f911, 0x0401f70f, 0x0201f800, + 0x0010f9d0, 0x0401f7a7, 0x40a0d000, 0x0401fc40, 0x80c589c0, 0x040007a5, 0x0401f7ab, 0x4a01400d, 0x0000bbbb, 0x0401f787, 0x4a01400d, 0x0000cccc, 0x58a0d000, 0x486b4210, 0x58a0d000, 0x8068d120, 0x486b4410, 0x0401f77f, 0x59a8d06e, 0x0201f800, - 0x00101b44, 0x0401f7b6, 0x4a0388a7, 0x0000f7f7, + 0x00101b49, 0x0401f7b6, 0x4a0388a7, 0x0000f7f7, 0x4200d000, 0xbeffffff, 0x4200d800, 0x80018000, - 0x0201f800, 0x001041ab, 0x4200d000, 0xfffeffff, - 0x4080d800, 0x0201f800, 0x001041ab, 0x0401f7c0, - 0x4a034407, 0x00000016, 0x0201f800, 0x0010224a, + 0x0201f800, 0x001042a4, 0x4200d000, 0xfffeffff, + 0x4080d800, 0x0201f800, 0x001042a4, 0x0401f7c0, + 0x4a034407, 0x00000016, 0x0201f800, 0x00102309, 0x0401f006, 0x40a0d000, 0x0401fc19, 0x0401f786, - 0x0201f800, 0x00102207, 0x589d2805, 0x589d2004, + 0x0201f800, 0x001022c6, 0x589d2805, 0x589d2004, 0x589d1803, 0x589d1002, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000015, 0x589d4000, 0x809d3800, - 0x1c01f000, 0x809d3840, 0x48813800, 0x4937c857, - 0x42010000, 0x00000001, 0x0201f800, 0x00107cfb, - 0x40c66000, 0x80c589c0, 0x04000015, 0x4925881c, - 0x4935880a, 0x48818c07, 0x417a7800, 0x0201f800, - 0x001044e6, 0x59a8d016, 0x8068d000, 0x486b5016, - 0x599cd019, 0x417a7000, 0x8c68d50e, 0x04020003, - 0x42027000, 0x00000004, 0x0201f800, 0x00107d2c, - 0x599cd208, 0x486a6c12, 0x41790000, 0x40818800, - 0x589d0000, 0x809d3800, 0x1c01f000, 0x4937c857, - 0x5934d200, 0x8468d502, 0x486a6a00, 0x1c01f000, - 0x829d3c80, 0x00000004, 0x48813800, 0x48853801, - 0x48893802, 0x488d3803, 0x41350800, 0x41451000, - 0x412d1800, 0x4943c857, 0x493fc857, 0x0201f800, - 0x00106c35, 0x40c50000, 0x59a8d078, 0x82697480, - 0x00000000, 0x83f17500, 0x0c000000, 0x04000004, - 0x82b97580, 0x0c000000, 0x04020068, 0x0201f800, - 0x001101b9, 0x0201f800, 0x001101a9, 0x0201f800, - 0x0011025c, 0x0201f800, 0x001103bf, 0x808101c0, - 0x04000003, 0x0201f800, 0x00106c29, 0x417a8800, - 0x0401f00a, 0x58c4d200, 0x8c68d50e, 0x0400000e, - 0x81468800, 0x83457480, 0x000007ef, 0x83f17500, - 0x03000000, 0x04000026, 0x0201f800, 0x001045e2, - 0x40c66800, 0x80c589c0, 0x040007f6, 0x8d3e7d06, - 0x040207f1, 0x8d3e7d18, 0x0400003f, 0x5935000f, - 0x0401f007, 0x49410207, 0x40825800, 0x58810000, + 0x1c01f000, 0x829d3c80, 0x00000002, 0x48813800, + 0x48853801, 0x59a8d006, 0x82690d00, 0x00004000, + 0x4178d800, 0x8c68d51c, 0x04020020, 0x4937c857, + 0x42010000, 0x00000001, 0x0201f800, 0x00107ef5, + 0x40c66000, 0x80c589c0, 0x04020003, 0x4080d800, + 0x0401f016, 0x4925881c, 0x4935880a, 0x48818c07, + 0x40867800, 0x0201f800, 0x001045df, 0x59a8d016, + 0x8068d000, 0x486b5016, 0x599cd019, 0x40867000, + 0x8c68d50e, 0x04020003, 0x42027000, 0x00000004, + 0x0201f800, 0x00107f26, 0x599cd208, 0x486a6c12, + 0x41790000, 0x4080d800, 0x406d8800, 0x589d0801, + 0x589d0000, 0x829d3c00, 0x00000002, 0x1c01f000, + 0x4937c857, 0x5934d200, 0x8468d502, 0x486a6a00, + 0x1c01f000, 0x829d3c80, 0x00000004, 0x48813800, + 0x48853801, 0x48893802, 0x488d3803, 0x41350800, + 0x41451000, 0x412d1800, 0x4943c857, 0x493fc857, + 0x0201f800, 0x00106e3a, 0x40c50000, 0x59a8d078, + 0x82697480, 0x00000000, 0x83f17500, 0x0c000000, + 0x04000004, 0x82b97580, 0x0c000000, 0x04020069, + 0x0201f800, 0x001104b6, 0x0201f800, 0x001104a6, + 0x0201f800, 0x00110559, 0x0201f800, 0x001106bc, + 0x808101c0, 0x04000003, 0x0201f800, 0x00106e2e, + 0x417a8800, 0x0401f00a, 0x58c4d200, 0x8c68d50e, + 0x0400000e, 0x81468800, 0x83457480, 0x000007ef, + 0x83f17500, 0x03000000, 0x04000027, 0x0201f800, + 0x001046de, 0x40c66800, 0x80c589c0, 0x040007f6, + 0x8d3e7d06, 0x040207f1, 0x497a6c0b, 0x8d3e7d18, + 0x0400003f, 0x5935000f, 0x0401f007, 0x49410207, + 0x40825800, 0x58810000, 0x492fc857, 0x0201f800, + 0x000203ef, 0x808101c0, 0x040207f9, 0x497a680f, + 0x497a6810, 0x4937c857, 0x4a026c00, 0x00000707, + 0x497a6a03, 0x497a6811, 0x599cd401, 0x486a6a0b, + 0x5934d402, 0x8268d500, 0x000000ff, 0x486a6c02, + 0x81468800, 0x83457480, 0x000007ef, 0x040007dc, + 0x040017db, 0x8d3e7d02, 0x0400002f, 0x497b5018, + 0x42028800, 0x000007f0, 0x0401f007, 0x81468800, + 0x83457480, 0x000007ff, 0x83f17500, 0x03000000, + 0x04000025, 0x0201f800, 0x001046de, 0x40c66800, + 0x80c589c0, 0x040007f6, 0x48c7c857, 0x4a018c00, + 0x00000707, 0x58c4d00c, 0x8068d1c0, 0x040207f0, + 0x58c4d00f, 0x8068d1c0, 0x040207ed, 0x0201f800, + 0x001042dd, 0x81468800, 0x83457480, 0x000007ff, + 0x040007ed, 0x040017ec, 0x0401f00f, 0x4937c857, + 0x8d0e1d20, 0x04000004, 0x4a026c00, 0x00000707, + 0x0401f7ad, 0x0201f800, 0x001042dd, 0x0401f7aa, + 0x8c68d506, 0x04000797, 0x0201f800, 0x0010b89b, + 0x0401f794, 0x40866800, 0x408a8800, 0x408e5800, + 0x589d1803, 0x589d1002, 0x589d0801, 0x589d0000, + 0x829d3c00, 0x00000004, 0x1c01f000, 0x829d3c80, + 0x00000006, 0x48813800, 0x48853801, 0x48893802, + 0x488d3803, 0x48913804, 0x48953805, 0x41352800, + 0x41412000, 0x41451800, 0x412d1000, 0x4933c857, + 0x493fc857, 0x4927c857, 0x0201f800, 0x00106e3a, + 0x40c50800, 0x5932680a, 0x813669c0, 0x0400002b, + 0x5934d403, 0x406a8800, 0x42028000, 0x00000029, + 0x0201f800, 0x00110363, 0x0201f800, 0x00110447, + 0x0201f800, 0x001104e0, 0x0201f800, 0x00110916, + 0x4937c857, 0x8d3e7d06, 0x0402001f, 0x497a6c0b, + 0x8d3e7d18, 0x04000022, 0x5935000f, 0x808101c0, + 0x0400000b, 0x49410207, 0x40825800, 0x58810000, 0x492fc857, 0x0201f800, 0x000203ef, 0x808101c0, - 0x040207f9, 0x497a680f, 0x497a6810, 0x4937c857, + 0x040207f9, 0x4882680f, 0x48826810, 0x4937c857, 0x4a026c00, 0x00000707, 0x497a6a03, 0x497a6811, 0x599cd401, 0x486a6a0b, 0x5934d402, 0x8268d500, - 0x000000ff, 0x486a6c02, 0x81468800, 0x83457480, - 0x000007ef, 0x040007dd, 0x040017dc, 0x8d3e7d02, - 0x0400002f, 0x497b5018, 0x42028800, 0x000007f0, - 0x0401f007, 0x81468800, 0x83457480, 0x000007ff, - 0x83f17500, 0x03000000, 0x04000025, 0x0201f800, - 0x001045e2, 0x40c66800, 0x80c589c0, 0x040007f6, - 0x48c7c857, 0x4a018c00, 0x00000707, 0x58c4d00c, - 0x8068d1c0, 0x040207f0, 0x58c4d00f, 0x8068d1c0, - 0x040207ed, 0x0201f800, 0x001041e4, 0x81468800, - 0x83457480, 0x000007ff, 0x040007ed, 0x040017ec, - 0x0401f00f, 0x4937c857, 0x8d0e1d20, 0x04000004, - 0x4a026c00, 0x00000707, 0x0401f7ae, 0x0201f800, - 0x001041e4, 0x0401f7ab, 0x8c68d506, 0x04000798, - 0x0201f800, 0x0010b570, 0x0401f795, 0x40866800, - 0x408a8800, 0x408e5800, 0x589d1803, 0x589d1002, - 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000004, - 0x1c01f000, 0x829d3c80, 0x00000006, 0x48813800, - 0x48853801, 0x48893802, 0x488d3803, 0x48913804, - 0x48953805, 0x41352800, 0x41412000, 0x41451800, - 0x412d1000, 0x4933c857, 0x493fc857, 0x4927c857, - 0x0201f800, 0x00106c35, 0x40c50800, 0x5932680a, - 0x813669c0, 0x0400002a, 0x5934d403, 0x406a8800, - 0x42028000, 0x00000029, 0x0201f800, 0x00110053, - 0x0201f800, 0x0011014a, 0x0201f800, 0x001101e3, - 0x0201f800, 0x00110623, 0x4937c857, 0x8d3e7d06, - 0x0402001e, 0x8d3e7d18, 0x04000021, 0x5935000f, - 0x808101c0, 0x0400000b, 0x49410207, 0x40825800, - 0x58810000, 0x492fc857, 0x0201f800, 0x000203ef, - 0x808101c0, 0x040207f9, 0x4882680f, 0x48826810, - 0x4937c857, 0x4a026c00, 0x00000707, 0x497a6a03, - 0x497a6811, 0x599cd401, 0x486a6a0b, 0x5934d402, - 0x8268d500, 0x000000ff, 0x486a6c02, 0x808509c0, - 0x04000013, 0x0401f00c, 0x5934d200, 0x8c68d50e, - 0x040207fb, 0x8d3e7d18, 0x040207e1, 0x8d0e1d20, + 0x000000ff, 0x486a6c02, 0x808509c0, 0x04000014, + 0x0401f00d, 0x5934d200, 0x8c68d50e, 0x040207fb, + 0x497a6c0b, 0x8d3e7d18, 0x040207e0, 0x8d0e1d20, 0x04000008, 0x4a026c00, 0x00000707, 0x808509c0, - 0x04000007, 0x0201f800, 0x00106c29, 0x0401f004, - 0x0201f800, 0x001041e4, 0x0401f7ed, 0x408a5800, + 0x04000007, 0x0201f800, 0x00106e2e, 0x0401f004, + 0x0201f800, 0x001042dd, 0x0401f7ec, 0x408a5800, 0x408e8800, 0x40928000, 0x40966800, 0x589d2805, 0x589d2004, 0x589d1803, 0x589d1002, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000006, 0x1c01f000, 0x809d3840, 0x48813800, 0x4937c857, 0x42010000, - 0x00000001, 0x0201f800, 0x00107cfb, 0x40c66000, + 0x00000001, 0x0201f800, 0x00107ef5, 0x40c66000, 0x80c589c0, 0x0400001e, 0x4925881c, 0x4935880a, 0x5934d403, 0x82697480, 0x000007fe, 0x04000003, - 0x417a7800, 0x0401ff90, 0x48826407, 0x417a7800, - 0x0201f800, 0x001044e6, 0x4200d000, 0x00000003, - 0x0201f800, 0x001044f0, 0x836d7480, 0x00000003, + 0x417a7800, 0x0401ff8e, 0x48826407, 0x417a7800, + 0x0201f800, 0x001045df, 0x4200d000, 0x00000003, + 0x0201f800, 0x001045e9, 0x836d7480, 0x00000003, 0x04000004, 0x59a8d016, 0x8068d000, 0x486b5016, - 0x42027000, 0x00000002, 0x0201f800, 0x00107d2c, + 0x42027000, 0x00000002, 0x0201f800, 0x00107f26, 0x599cd208, 0x486a6c12, 0x41790000, 0x40818800, 0x589d0000, 0x809d3800, 0x1c01f000, 0x829d3c80, 0x00000003, 0x48813800, 0x48853801, 0x48893802, 0x40690800, 0x406d1000, 0x41bd0000, 0x0201f800, - 0x00106c10, 0x5880d031, 0x41300000, 0x80697480, + 0x00106e15, 0x5880d031, 0x41300000, 0x80697480, 0x04000018, 0x5880d030, 0x41300000, 0x80697480, 0x0400001f, 0x5930d800, 0x806cd9c0, 0x04020008, 0x59317001, 0x48b91001, 0x5930d001, 0x8068d1c0, @@ -28247,7 +28513,7 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x409d4000, 0x829d3c80, 0x00000005, 0x48813800, 0x48853801, 0x48893802, 0x488d3803, 0x48913804, 0x41790800, 0x40850000, 0x4933c857, 0x0201f800, - 0x00106c35, 0x40c52000, 0x41351800, 0x41191000, + 0x00106e3a, 0x40c52000, 0x41351800, 0x41191000, 0x49914003, 0x49d14000, 0x49a54001, 0x49154002, 0x5932680a, 0x59bce031, 0x4070d800, 0x8070e1c0, 0x04020008, 0x0401f01e, 0x406ce000, 0x586cd800, @@ -28258,47 +28524,47 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x0401f005, 0x406d0000, 0x586cd801, 0x806cd9c0, 0x040007ec, 0x806d7480, 0x040207fb, 0x42010800, 0x00000001, 0x806cd9c0, 0x040207e8, 0x80857040, - 0x04000029, 0x417a3000, 0x0201f800, 0x001072f1, + 0x04000029, 0x417a3000, 0x0201f800, 0x001074f6, 0x5990d004, 0x41300000, 0x80697480, 0x0400000f, 0x811a3000, 0x83197480, 0x00000004, 0x040007f7, 0x040017f6, 0x408a3000, 0x408e6800, 0x58a32003, 0x58a3a000, 0x58a34801, 0x58a22802, 0x80917040, 0x04020019, 0x0401f011, 0x42010800, 0x00000001, - 0x0201f800, 0x00106e6e, 0x0201f800, 0x00106c07, - 0x0201f800, 0x00106c10, 0x408a3000, 0x408e6800, + 0x0201f800, 0x00107073, 0x0201f800, 0x00106e0c, + 0x0201f800, 0x00106e15, 0x408a3000, 0x408e6800, 0x58a32003, 0x58a3a000, 0x58a34801, 0x58a22802, - 0x80917040, 0x04020008, 0x0201f800, 0x00106c29, + 0x80917040, 0x04020008, 0x0201f800, 0x00106e2e, 0x0401f005, 0x4070d000, 0x4080d800, 0x0401ff40, 0x0401f7e1, 0x40858800, 0x589d2004, 0x589d1803, 0x589d1002, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000009, 0x589d4000, 0x809d3800, 0x1c01f000, 0x829d3c80, 0x00000002, 0x48813800, 0x48853801, 0x40690000, 0x59310800, 0x497a6000, 0x0201f800, - 0x00106c10, 0x808101c0, 0x04000008, 0x48850000, + 0x00106e15, 0x808101c0, 0x04000008, 0x48850000, 0x598cd00a, 0x41300000, 0x80697480, 0x0402000b, 0x4883180a, 0x0401f009, 0x598cd00a, 0x41300000, 0x80697480, 0x04000003, 0x4887180b, 0x0401f003, - 0x4883180a, 0x4883180b, 0x0201f800, 0x00106c22, + 0x4883180a, 0x4883180b, 0x0201f800, 0x00106e27, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000002, 0x1c01f000, 0x829d3c80, 0x00000002, 0x48813800, 0x48853801, 0x598d000b, 0x41790800, 0x4933c857, 0x813261c0, 0x04020007, 0x0401f00a, 0x41300000, 0x80817480, 0x0400000e, 0x40810800, 0x58810000, 0x808101c0, 0x040207fa, 0x4178d000, 0x0401f015, - 0x4200d000, 0x000005a7, 0x4080d800, 0x4084e000, + 0x4200d000, 0x000005aa, 0x4080d800, 0x4084e000, 0x0201f800, 0x0010032b, 0x0401f7f6, 0x4084d000, 0x0401ffc4, 0x598cd00f, 0x41300000, 0x80697480, 0x04000005, 0x497a6008, 0x4200d000, 0x00000001, - 0x0401f004, 0x0201f800, 0x001072c9, 0x0401f7fa, + 0x0401f004, 0x0201f800, 0x001074ce, 0x0401f7fa, 0x40698800, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000002, 0x1c01f000, 0x829d3c80, 0x00000002, 0x48813800, 0x48853801, 0x40690000, 0x59310800, - 0x497a6000, 0x0201f800, 0x00106c10, 0x808101c0, + 0x497a6000, 0x0201f800, 0x00106e15, 0x808101c0, 0x04000008, 0x48850000, 0x598cd008, 0x41300000, 0x80697480, 0x0402000b, 0x48831808, 0x0401f009, 0x598cd008, 0x41300000, 0x80697480, 0x04000003, 0x48871809, 0x0401f003, 0x48831808, 0x48831809, - 0x0201f800, 0x00106c22, 0x589d0801, 0x589d0000, + 0x0201f800, 0x00106e27, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000002, 0x1c01f000, 0x829d3c80, 0x00000002, 0x48813800, 0x48853801, 0x598d0009, 0x41790800, 0x4933c857, 0x813261c0, 0x04020007, @@ -28308,41 +28574,41 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x598cd00f, 0x41300000, 0x80697480, 0x04000011, 0x5930d403, 0x82697480, 0x00000042, 0x0400000b, 0x4200d000, 0x00000001, 0x0401f00d, 0x4200d000, - 0x0000055e, 0x4080d800, 0x4084e000, 0x0201f800, + 0x00000561, 0x4080d800, 0x4084e000, 0x0201f800, 0x0010032b, 0x0401f7e9, 0x497a6008, 0x0401f7f5, - 0x0201f800, 0x001072c9, 0x0401f7ee, 0x40698800, + 0x0201f800, 0x001074ce, 0x0401f7ee, 0x40698800, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000002, 0x1c01f000, 0x829d3c80, 0x00000002, 0x48813800, 0x48853801, 0x40690000, 0x59310800, 0x497a6000, - 0x0201f800, 0x00106c10, 0x808101c0, 0x04000008, + 0x0201f800, 0x00106e15, 0x808101c0, 0x04000008, 0x48850000, 0x598cd004, 0x41300000, 0x80697480, 0x0402000b, 0x48831804, 0x0401f009, 0x598cd004, 0x41300000, 0x80697480, 0x04000003, 0x48871805, 0x0401f003, 0x48831804, 0x48831805, 0x0201f800, - 0x00106c22, 0x589d0801, 0x589d0000, 0x829d3c00, + 0x00106e27, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000002, 0x1c01f000, 0x829d3c80, 0x00000002, 0x48813800, 0x48853801, 0x598d0005, 0x40810800, 0x4933c857, 0x813261c0, 0x04020007, 0x0401f022, 0x41300000, 0x80817480, 0x04000007, 0x40810800, 0x58810000, 0x808101c0, 0x040207fa, 0x4178d000, 0x0401f02b, 0x598cd00f, 0x80697480, 0x04000025, - 0x0201f800, 0x00106c10, 0x598cd005, 0x40800000, + 0x0201f800, 0x00106e15, 0x598cd005, 0x40800000, 0x80697480, 0x04000017, 0x598cd004, 0x80697480, 0x04000009, 0x58817000, 0x48b90800, 0x49790000, - 0x0201f800, 0x00106c22, 0x4200d000, 0x00000001, + 0x0201f800, 0x00106e27, 0x4200d000, 0x00000001, 0x0401f017, 0x48871804, 0x49790000, 0x49790800, - 0x0401f7f8, 0x4200d000, 0x000005ea, 0x4080d800, + 0x0401f7f8, 0x4200d000, 0x000005ed, 0x4080d800, 0x4080e000, 0x0201f800, 0x0010032b, 0x0401f7de, 0x58817000, 0x48bb1805, 0x49790000, 0x598cd004, 0x80697480, 0x040207eb, 0x497b1804, 0x0401f7e9, - 0x0201f800, 0x001072c9, 0x0401f7da, 0x40698800, + 0x0201f800, 0x001074ce, 0x0401f7da, 0x40698800, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000002, 0x1c01f000, 0x829d3c80, 0x00000002, 0x48813800, - 0x48853801, 0x41790000, 0x0201f800, 0x00106c35, + 0x48853801, 0x41790000, 0x0201f800, 0x00106e3a, 0x40c50800, 0x0401ff62, 0x80c57040, 0x04000007, 0x0401ff11, 0x80c57040, 0x04000004, 0x0401ffaf, 0x80c57040, 0x04020002, 0x40c50000, 0x80857040, - 0x04020003, 0x0201f800, 0x00106c29, 0x40818800, + 0x04020003, 0x0201f800, 0x00106e2e, 0x40818800, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000002, 0x1c01f000, 0x829d3c80, 0x00000002, 0x48813800, 0x48853801, 0x5c00d000, 0x4c680000, 0x486bc857, @@ -28350,48 +28616,48 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x4933c857, 0x4943c857, 0x493fc857, 0x5930d407, 0x486bc857, 0x5930dc07, 0x806c0040, 0x4000d000, 0x82697480, 0x00000012, 0x83f17500, 0x03000000, - 0x04000015, 0x0c01f001, 0x0010ff47, 0x0010ff23, - 0x0010ff2d, 0x0010ff47, 0x0010ff50, 0x0010ff5d, - 0x0010ff16, 0x0010ff16, 0x0010ff67, 0x0010ff6e, - 0x0010ff16, 0x0010ff16, 0x0010ff16, 0x0010ff16, - 0x0010ff16, 0x0010ff77, 0x0010ff77, 0x0010ff1c, - 0x0010ff1c, 0x4200d000, 0x00000a6e, 0x4130e000, + 0x04000015, 0x0c01f001, 0x00110257, 0x00110233, + 0x0011023d, 0x00110257, 0x00110260, 0x0011026d, + 0x00110226, 0x00110226, 0x00110277, 0x0011027e, + 0x00110226, 0x00110226, 0x00110226, 0x00110226, + 0x00110226, 0x00110287, 0x00110287, 0x0011022c, + 0x0011022c, 0x4200d000, 0x00000a7f, 0x4130e000, 0x0201f800, 0x0010032b, 0x0401f0a1, 0x0201f800, - 0x00109660, 0x80c589c0, 0x04020077, 0x0201f800, - 0x00107cbe, 0x0401f09a, 0x0201f800, 0x00109660, - 0x80c589c0, 0x04020066, 0x0201f800, 0x00107cbe, + 0x00109898, 0x80c589c0, 0x04020077, 0x0201f800, + 0x00107eb4, 0x0401f09a, 0x0201f800, 0x00109898, + 0x80c589c0, 0x04020066, 0x0201f800, 0x00107eb4, 0x8d3e7d1c, 0x04000092, 0x497a600a, 0x0401f090, 0x5930d008, 0x8c68d500, 0x04020053, 0x0201f800, - 0x00109660, 0x80c589c0, 0x040007f4, 0x592cd205, + 0x00109898, 0x80c589c0, 0x040007f4, 0x592cd205, 0x8268d500, 0x000000ff, 0x82697480, 0x00000014, - 0x04000003, 0x0201f800, 0x0010977c, 0x4a025a05, + 0x04000003, 0x0201f800, 0x001099b4, 0x4a025a05, 0x00000103, 0x49425a07, 0x497a580a, 0x0201f800, - 0x00109824, 0x0201f800, 0x0010b199, 0x0201f800, - 0x000203ef, 0x0401f7e1, 0x0201f800, 0x001102ca, - 0x80c589c0, 0x04020035, 0x0201f800, 0x001099c1, - 0x0201f800, 0x001084a2, 0x0401f7d8, 0x42000000, - 0x001111e0, 0x81317480, 0x0400004a, 0x0201f800, - 0x00109660, 0x80c589c0, 0x040007d0, 0x4200d000, - 0x000009b7, 0x412cd800, 0x4130e000, 0x0401f7bd, + 0x00109a5c, 0x0201f800, 0x0010b4b0, 0x0201f800, + 0x000203ef, 0x0401f7e1, 0x0201f800, 0x001105c7, + 0x80c589c0, 0x04020035, 0x0201f800, 0x00109bf9, + 0x0201f800, 0x001086a8, 0x0401f7d8, 0x42000000, + 0x00111500, 0x81317480, 0x0400004a, 0x0201f800, + 0x00109898, 0x80c589c0, 0x040007d0, 0x4200d000, + 0x000009c8, 0x412cd800, 0x4130e000, 0x0401f7bd, 0x5930d008, 0x8c68d500, 0x0402002a, 0x0201f800, - 0x00109660, 0x80c589c0, 0x040007c4, 0x0201f800, - 0x0010ae66, 0x0401f7c1, 0x0201f800, 0x00109660, - 0x80c589c0, 0x040007bd, 0x0201f800, 0x00106a40, - 0x0401f7ba, 0x0201f800, 0x00109660, 0x80c589c0, + 0x00109898, 0x80c589c0, 0x040007c4, 0x0201f800, + 0x0010b175, 0x0401f7c1, 0x0201f800, 0x00109898, + 0x80c589c0, 0x040007bd, 0x0201f800, 0x00106c45, + 0x0401f7ba, 0x0201f800, 0x00109898, 0x80c589c0, 0x040007b6, 0x49425a07, 0x497a5c0a, 0x0201f800, - 0x000203ef, 0x0401f7b1, 0x0201f800, 0x00109660, + 0x000203ef, 0x0401f7b1, 0x0201f800, 0x00109898, 0x80c589c0, 0x0402000b, 0x59325818, 0x0201f800, - 0x0010059d, 0x0401f7a9, 0x0201f800, 0x00101cb2, - 0x0401f7ca, 0x0201f800, 0x00100c75, 0x0401f7ac, + 0x0010059d, 0x0401f7a9, 0x0201f800, 0x00101cb7, + 0x0401f7ca, 0x0201f800, 0x00100c76, 0x0401f7ac, 0x49425a07, 0x0201f800, 0x000203ef, 0x0401f7f3, - 0x0201f800, 0x00100c75, 0x0401f7d5, 0x49425a07, + 0x0201f800, 0x00100c76, 0x0401f7d5, 0x49425a07, 0x0201f800, 0x000203ef, 0x5930d226, 0x82697480, - 0x00000003, 0x04020795, 0x0201f800, 0x0010977c, + 0x00000003, 0x04020795, 0x0201f800, 0x001099b4, 0x0401f792, 0x49425a07, 0x497a5c07, 0x0201f800, - 0x000203ef, 0x0201f800, 0x00107cbe, 0x0401f020, - 0x0201f800, 0x00109660, 0x80c589c0, 0x04000016, + 0x000203ef, 0x0201f800, 0x00107eb4, 0x0401f020, + 0x0201f800, 0x00109898, 0x80c589c0, 0x04000016, 0x59a8e052, 0x412c0000, 0x80717480, 0x04000005, - 0x4200d000, 0x000009d0, 0x412cd800, 0x0401f771, + 0x4200d000, 0x000009e1, 0x412cd800, 0x0401f771, 0x592d7000, 0x48bb5052, 0x592cd000, 0x8068d1c0, 0x04020002, 0x486b5053, 0x592cd205, 0x82697480, 0x00000055, 0x04000007, 0x49425a07, 0x0201f800, @@ -28401,12 +28667,12 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x00000002, 0x1c01f000, 0x809d3840, 0x48813800, 0x5930dc07, 0x406c0000, 0x826d7480, 0x00000013, 0x83f17500, 0x03000000, 0x04000016, 0x0c01f001, - 0x00110023, 0x0010fffa, 0x0011000a, 0x00110016, - 0x0010ffe9, 0x0010ffec, 0x00110034, 0x00110023, - 0x00110023, 0x00110023, 0x00110023, 0x0010ffe1, - 0x0010ffe1, 0x00110023, 0x0010ffe1, 0x00110023, - 0x00110023, 0x00110027, 0x0011003f, 0x0011003f, - 0x4200d000, 0x00000b61, 0x4130e000, 0x0201f800, + 0x00110333, 0x0011030a, 0x0011031a, 0x00110326, + 0x001102f9, 0x001102fc, 0x00110344, 0x00110333, + 0x00110333, 0x00110333, 0x00110333, 0x001102f1, + 0x001102f1, 0x00110333, 0x001102f1, 0x00110333, + 0x00110333, 0x00110337, 0x0011034f, 0x0011034f, + 0x4200d000, 0x00000b72, 0x4130e000, 0x0201f800, 0x0010032b, 0x4200d800, 0x00000001, 0x0401f067, 0x4178d800, 0x8d3e7d1a, 0x04020064, 0x833ce500, 0x00000001, 0x4178d800, 0x8d3e7d00, 0x0402005f, @@ -28415,10 +28681,10 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x0401f7ed, 0x8d3e7d1a, 0x04020019, 0x8d3e7d00, 0x04020017, 0x833d0500, 0x00001000, 0x8d3e7d18, 0x040207e5, 0x8d3e7d06, 0x040007e3, 0x0201f800, - 0x0010996b, 0x4080d800, 0x80c589c0, 0x04020047, + 0x00109ba3, 0x4080d800, 0x80c589c0, 0x04020047, 0x0401f7dd, 0x8d3e7d00, 0x040007db, 0x5930d226, 0x82697480, 0x00000003, 0x04020005, 0x0201f800, - 0x00106b5f, 0x80c589c0, 0x040207d3, 0x4178d800, + 0x00106d64, 0x80c589c0, 0x040207d3, 0x4178d800, 0x0401f03a, 0x8d3e7d00, 0x04020033, 0x5930d00a, 0x833cdd00, 0x00001000, 0x8d3e7d18, 0x040207ca, 0x8d3e7d06, 0x040007c8, 0x5868d200, 0x8c68d50e, @@ -28432,498 +28698,494 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x4068d800, 0x0401f011, 0x59a8d079, 0x5868d400, 0x8268d580, 0x00000707, 0x8068d080, 0x8068d000, 0x8068013e, 0x4200d000, 0x00000001, 0x8068dc80, - 0x0401f006, 0x0201f800, 0x00106b5f, 0x40c4d800, + 0x0401f006, 0x0201f800, 0x00106d64, 0x40c4d800, 0x80c589c0, 0x040207ca, 0x406d8800, 0x589d0000, 0x809d3800, 0x1c01f000, 0x829d3c80, 0x00000006, 0x48813800, 0x48853801, 0x48893802, 0x488d3803, 0x48913804, 0x48953805, 0x4933c857, 0x0201f800, - 0x00106c35, 0x40c52800, 0x41352000, 0x41311000, - 0x412d1800, 0x41790800, 0x598e6005, 0x0401f007, - 0x813669c0, 0x0400002f, 0x813669c0, 0x04000023, - 0x41310800, 0x59326000, 0x813261c0, 0x04000031, - 0x5932680a, 0x813669c0, 0x040007f6, 0x5934d403, - 0x41440000, 0x80697480, 0x040207f2, 0x5930d01c, - 0x41240000, 0x80697480, 0x040207f0, 0x0401ff4b, - 0x80c589c0, 0x040007ef, 0x42010000, 0x00000001, - 0x0201f800, 0x00109660, 0x80c589c0, 0x04020026, - 0x808101c0, 0x040007e7, 0x0201f800, 0x00106b26, - 0x59310000, 0x4084d000, 0x0401fde3, 0x0401fe62, - 0x40826000, 0x0401f7e1, 0x5930d407, 0x82697480, - 0x00000010, 0x040207db, 0x83457480, 0x0000ffff, - 0x040207d8, 0x812649c0, 0x040207d6, 0x0401f7e4, - 0x5930d407, 0x82697480, 0x00000010, 0x040207cf, - 0x83457480, 0x0000ffff, 0x040207cc, 0x0401f7d8, - 0x408a6000, 0x408e5800, 0x40926800, 0x80957040, - 0x04000002, 0x0401f00e, 0x0201f800, 0x00106c29, - 0x0401f00b, 0x0201f800, 0x00109d0c, 0x80c589c0, - 0x040007d8, 0x5930d403, 0x82697480, 0x00000043, - 0x040207d4, 0x41790000, 0x0401f7d2, 0x589d2805, - 0x589d2004, 0x589d1803, 0x589d1002, 0x589d0801, - 0x589d0000, 0x829d3c00, 0x00000006, 0x1c01f000, - 0x829d3c80, 0x00000006, 0x48813800, 0x48853801, - 0x48893802, 0x488d3803, 0x48913804, 0x48953805, - 0x412d1800, 0x41312000, 0x41352800, 0x41790800, - 0x0201f800, 0x00106c35, 0x40c51000, 0x83457480, - 0x000007ef, 0x04000008, 0x04001007, 0x408e5800, - 0x40926000, 0x40966800, 0x80897040, 0x04000020, - 0x0401f031, 0x0201f800, 0x001045e2, 0x40c66800, - 0x80c589c0, 0x04000025, 0x598e600b, 0x0401f003, - 0x41310800, 0x59326000, 0x813261c0, 0x04000017, - 0x5930d01c, 0x41240000, 0x80697480, 0x040207f9, - 0x5930d00a, 0x41340000, 0x80697480, 0x040207f5, - 0x0401fede, 0x80c589c0, 0x040007f2, 0x0201f800, - 0x00106b26, 0x59310000, 0x4084d000, 0x0401fcdd, - 0x0401fdfd, 0x40826000, 0x0401f7ec, 0x0201f800, - 0x00106c29, 0x0401f010, 0x8d3e7d06, 0x04000004, - 0x5934d200, 0x8c68d50e, 0x040207d5, 0x0201f800, - 0x0010476a, 0x0401f7d2, 0x4200d000, 0x00000711, - 0x40c4d800, 0x4144e000, 0x0201f800, 0x0010032b, - 0x0401f7d6, 0x589d2805, 0x589d2004, 0x589d1803, - 0x589d1002, 0x589d0801, 0x589d0000, 0x829d3c00, - 0x00000006, 0x1c01f000, 0x829d3c80, 0x00000006, - 0x48813800, 0x48853801, 0x48893802, 0x488d3803, - 0x48913804, 0x48953805, 0x41311800, 0x41352000, - 0x412d2800, 0x41790800, 0x0201f800, 0x00106c35, - 0x40c51000, 0x598e6009, 0x0401f003, 0x41310800, - 0x59326000, 0x813261c0, 0x04000016, 0x5932680a, - 0x5930d01c, 0x41240000, 0x80697480, 0x040207f8, - 0x5934d403, 0x41440000, 0x80697480, 0x040207f4, - 0x0401fe9a, 0x80c589c0, 0x040007f1, 0x59310000, - 0x0201f800, 0x00106b26, 0x4084d000, 0x0401fce7, - 0x0401fdb9, 0x40826000, 0x813261c0, 0x040207ec, - 0x0201f800, 0x00107bbe, 0x0201f800, 0x00107c34, - 0x408e6000, 0x40926800, 0x40965800, 0x80897040, - 0x04000002, 0x0401f003, 0x0201f800, 0x00106c29, + 0x00106e3a, 0x40c52800, 0x41352000, 0x41311000, + 0x412d1800, 0x41790800, 0x598e6005, 0x0401f003, + 0x41310800, 0x59326000, 0x813261c0, 0x04000022, + 0x5932680a, 0x813669c0, 0x040007fa, 0x5934d403, + 0x41440000, 0x80697480, 0x040207f6, 0x5930d01c, + 0x41240000, 0x80697480, 0x04000003, 0x812649c0, + 0x040207f0, 0x0401ff4d, 0x80c589c0, 0x040007ed, + 0x42010000, 0x00000001, 0x0201f800, 0x00109898, + 0x80c589c0, 0x04020015, 0x808101c0, 0x040007e5, + 0x0201f800, 0x00106d2b, 0x59310000, 0x4084d000, + 0x0401fde5, 0x0401fe64, 0x40826000, 0x813261c0, + 0x040207e0, 0x408a6000, 0x408e5800, 0x40926800, + 0x80957040, 0x04000002, 0x0401f00e, 0x0201f800, + 0x00106e2e, 0x0401f00b, 0x0201f800, 0x00109f4a, + 0x80c589c0, 0x040007e9, 0x5930d403, 0x82697480, + 0x00000043, 0x040207e5, 0x41790000, 0x0401f7e3, 0x589d2805, 0x589d2004, 0x589d1803, 0x589d1002, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000006, - 0x1c01f000, 0x829d3c80, 0x00000002, 0x48813800, - 0x48853801, 0x4947c857, 0x0201f800, 0x00106c35, - 0x40c50800, 0x413d0000, 0x853e7d00, 0x0401ffb7, - 0x0401ff64, 0x40827800, 0x80857040, 0x04000002, - 0x0401f003, 0x0201f800, 0x00106c29, 0x589d0801, - 0x589d0000, 0x829d3c00, 0x00000002, 0x1c01f000, - 0x829d3c80, 0x00000003, 0x48813800, 0x48853801, - 0x48893802, 0x41311000, 0x41790800, 0x598e600b, - 0x813261c0, 0x04000011, 0x0401fe58, 0x80c589c0, - 0x04020006, 0x41310800, 0x59326000, 0x813261c0, - 0x040207fa, 0x0401f009, 0x0201f800, 0x00106b26, - 0x59310000, 0x4084d000, 0x0401fc52, 0x0401fd72, - 0x40826000, 0x0401f7ef, 0x0201f800, 0x00104747, - 0x408a6000, 0x589d1002, 0x589d0801, 0x589d0000, - 0x829d3c00, 0x00000003, 0x1c01f000, 0x829d3c80, - 0x00000003, 0x48813800, 0x48853801, 0x48893802, - 0x41311000, 0x41790800, 0x598e6009, 0x813261c0, - 0x04000011, 0x0401fe35, 0x80c589c0, 0x04020006, - 0x41310800, 0x59326000, 0x813261c0, 0x040207fa, - 0x0401f009, 0x59310000, 0x0201f800, 0x00106b26, - 0x4084d000, 0x0401fc7d, 0x0401fd4f, 0x40826000, - 0x0401f7ef, 0x0201f800, 0x00107c14, 0x0201f800, - 0x00107c34, 0x408a6000, 0x589d1002, 0x589d0801, - 0x589d0000, 0x829d3c00, 0x00000003, 0x1c01f000, - 0x809d3840, 0x48813800, 0x4943c857, 0x0201f800, - 0x00106c35, 0x40c50000, 0x0401ffd5, 0x0401ffb1, - 0x80817040, 0x04000002, 0x0401f003, 0x0201f800, - 0x00106c29, 0x589d0000, 0x809d3800, 0x1c01f000, - 0x829d3c80, 0x00000004, 0x48813800, 0x48853801, - 0x48893802, 0x488d3803, 0x0201f800, 0x00106c35, - 0x40c51800, 0x41311000, 0x41790800, 0x598e6005, - 0x813261c0, 0x04000008, 0x0401fdfc, 0x80c589c0, - 0x04020009, 0x41310800, 0x59326000, 0x813261c0, - 0x040207fa, 0x408a6000, 0x808d7040, 0x0400000a, - 0x0401f00b, 0x0201f800, 0x00106b26, 0x59310000, - 0x4084d000, 0x0401fc94, 0x0401fd13, 0x40826000, - 0x0401f7ec, 0x0201f800, 0x00106c29, 0x589d1803, + 0x1c01f000, 0x829d3c80, 0x00000006, 0x48813800, + 0x48853801, 0x48893802, 0x488d3803, 0x48913804, + 0x48953805, 0x412d1800, 0x41312000, 0x41352800, + 0x41790800, 0x0201f800, 0x00106e3a, 0x40c51000, + 0x83457480, 0x000007ef, 0x04000008, 0x04001007, + 0x408e5800, 0x40926000, 0x40966800, 0x80897040, + 0x04000020, 0x0401f031, 0x0201f800, 0x001046de, + 0x40c66800, 0x80c589c0, 0x04000025, 0x598e600b, + 0x0401f003, 0x41310800, 0x59326000, 0x813261c0, + 0x04000017, 0x5930d01c, 0x41240000, 0x80697480, + 0x040207f9, 0x5930d00a, 0x41340000, 0x80697480, + 0x040207f5, 0x0401fef1, 0x80c589c0, 0x040007f2, + 0x0201f800, 0x00106d2b, 0x59310000, 0x4084d000, + 0x0401fcf0, 0x0401fe10, 0x40826000, 0x0401f7ec, + 0x0201f800, 0x00106e2e, 0x0401f010, 0x8d3e7d06, + 0x04000004, 0x5934d200, 0x8c68d50e, 0x040207d5, + 0x0201f800, 0x0010486a, 0x0401f7d2, 0x4200d000, + 0x00000714, 0x40c4d800, 0x4144e000, 0x0201f800, + 0x0010032b, 0x0401f7d6, 0x589d2805, 0x589d2004, + 0x589d1803, 0x589d1002, 0x589d0801, 0x589d0000, + 0x829d3c00, 0x00000006, 0x1c01f000, 0x829d3c80, + 0x00000006, 0x48813800, 0x48853801, 0x48893802, + 0x488d3803, 0x48913804, 0x48953805, 0x41311800, + 0x41352000, 0x412d2800, 0x41790800, 0x0201f800, + 0x00106e3a, 0x40c51000, 0x598e6009, 0x0401f003, + 0x41310800, 0x59326000, 0x813261c0, 0x04000016, + 0x5932680a, 0x5930d01c, 0x41240000, 0x80697480, + 0x040207f8, 0x5934d403, 0x41440000, 0x80697480, + 0x040207f4, 0x0401fead, 0x80c589c0, 0x040007f1, + 0x59310000, 0x0201f800, 0x00106d2b, 0x4084d000, + 0x0401fcfa, 0x0401fdcc, 0x40826000, 0x813261c0, + 0x040207ec, 0x0201f800, 0x00107db4, 0x0201f800, + 0x00107e2a, 0x408e6000, 0x40926800, 0x40965800, + 0x80897040, 0x04000002, 0x0401f003, 0x0201f800, + 0x00106e2e, 0x589d2805, 0x589d2004, 0x589d1803, 0x589d1002, 0x589d0801, 0x589d0000, 0x829d3c00, - 0x00000004, 0x1c01f000, 0x809d3840, 0x48a13800, - 0x829d3c80, 0x00000005, 0x409d4000, 0x829d3c80, + 0x00000006, 0x1c01f000, 0x829d3c80, 0x00000002, + 0x48813800, 0x48853801, 0x4947c857, 0x0201f800, + 0x00106e3a, 0x40c50800, 0x413d0000, 0x853e7d00, + 0x0401ffb7, 0x0401ff64, 0x40827800, 0x80857040, + 0x04000002, 0x0401f003, 0x0201f800, 0x00106e2e, + 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000002, + 0x1c01f000, 0x829d3c80, 0x00000003, 0x48813800, + 0x48853801, 0x48893802, 0x41311000, 0x41790800, + 0x598e600b, 0x813261c0, 0x04000011, 0x0401fe6b, + 0x80c589c0, 0x04020006, 0x41310800, 0x59326000, + 0x813261c0, 0x040207fa, 0x0401f009, 0x0201f800, + 0x00106d2b, 0x59310000, 0x4084d000, 0x0401fc65, + 0x0401fd85, 0x40826000, 0x0401f7ef, 0x0201f800, + 0x00104847, 0x408a6000, 0x589d1002, 0x589d0801, + 0x589d0000, 0x829d3c00, 0x00000003, 0x1c01f000, + 0x829d3c80, 0x00000003, 0x48813800, 0x48853801, + 0x48893802, 0x41311000, 0x41790800, 0x598e6009, + 0x813261c0, 0x04000011, 0x0401fe48, 0x80c589c0, + 0x04020006, 0x41310800, 0x59326000, 0x813261c0, + 0x040207fa, 0x0401f009, 0x59310000, 0x0201f800, + 0x00106d2b, 0x4084d000, 0x0401fc90, 0x0401fd62, + 0x40826000, 0x0401f7ef, 0x0201f800, 0x00107e0a, + 0x0201f800, 0x00107e2a, 0x408a6000, 0x589d1002, + 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000003, + 0x1c01f000, 0x809d3840, 0x48813800, 0x4943c857, + 0x0201f800, 0x00106e3a, 0x40c50000, 0x0401ffd5, + 0x0401ffb1, 0x80817040, 0x04000002, 0x0401f003, + 0x0201f800, 0x00106e2e, 0x589d0000, 0x809d3800, + 0x1c01f000, 0x829d3c80, 0x00000004, 0x48813800, + 0x48853801, 0x48893802, 0x488d3803, 0x0201f800, + 0x00106e3a, 0x40c51800, 0x41311000, 0x41790800, + 0x598e6005, 0x813261c0, 0x04000008, 0x0401fe0f, + 0x80c589c0, 0x04020009, 0x41310800, 0x59326000, + 0x813261c0, 0x040207fa, 0x408a6000, 0x808d7040, + 0x0400000a, 0x0401f00b, 0x0201f800, 0x00106d2b, + 0x59310000, 0x4084d000, 0x0401fca7, 0x0401fd26, + 0x40826000, 0x0401f7ec, 0x0201f800, 0x00106e2e, + 0x589d1803, 0x589d1002, 0x589d0801, 0x589d0000, + 0x829d3c00, 0x00000004, 0x1c01f000, 0x809d3840, + 0x48a13800, 0x829d3c80, 0x00000005, 0x409d4000, + 0x829d3c80, 0x00000007, 0x48813800, 0x48853801, + 0x48893802, 0x488d3803, 0x48913804, 0x48953805, + 0x48993806, 0x4178d000, 0x48694004, 0x0201f800, + 0x00106e3a, 0x40c53000, 0x41311000, 0x41352000, + 0x41192800, 0x412d1800, 0x49914003, 0x49d14000, + 0x49a54001, 0x49154002, 0x59be6031, 0x813261c0, + 0x04000014, 0x41310800, 0x0401f007, 0x808101c0, + 0x04000003, 0x41310800, 0x40826000, 0x808101c0, + 0x0400000c, 0x59310000, 0x5932680a, 0x5930d01c, + 0x41240000, 0x80697480, 0x040207f5, 0x5934d403, + 0x41440000, 0x80697480, 0x040207f1, 0x0401f031, + 0x417a3000, 0x0401f007, 0x811a3000, 0x83197480, + 0x00000004, 0x83f17500, 0x03000000, 0x0400001a, + 0x0201f800, 0x001074f6, 0x59926004, 0x813261c0, + 0x040007f6, 0x5932680a, 0x5930d01c, 0x41240000, + 0x80697480, 0x040207f1, 0x5934d403, 0x41440000, + 0x80697480, 0x040207ed, 0x0401fdac, 0x80c589c0, + 0x040007ea, 0x0201f800, 0x00107073, 0x0201f800, + 0x00106e0c, 0x0201f800, 0x00106e15, 0x0401fcca, + 0x0401f7e2, 0x408a6000, 0x40926800, 0x40963000, + 0x408e5800, 0x58a32003, 0x58a3a000, 0x58a34801, + 0x58a22802, 0x80997040, 0x04000010, 0x0401f011, + 0x49314004, 0x40826000, 0x808101c0, 0x040007d1, + 0x59310001, 0x0401fd91, 0x80c589c0, 0x040007f9, + 0x4084d000, 0x58a0d804, 0x0201f800, 0x0011000c, + 0x0401fcb1, 0x0401f7f4, 0x0201f800, 0x00106e2e, + 0x589d3006, 0x589d2805, 0x589d2004, 0x589d1803, + 0x589d1002, 0x589d0801, 0x589d0000, 0x829d3c00, + 0x0000000c, 0x589d4000, 0x809d3800, 0x1c01f000, + 0x809d3840, 0x48a13800, 0x829d3c80, 0x00000007, + 0x409d4000, 0x829d3c80, 0x00000007, 0x48813800, + 0x48853801, 0x48893802, 0x488d3803, 0x48913804, + 0x48953805, 0x48993806, 0x41791800, 0x0201f800, + 0x00106e3a, 0x40c52800, 0x41313000, 0x49354005, + 0x492d4004, 0x49194006, 0x49914003, 0x49d14000, + 0x49a54001, 0x49154002, 0x59be6031, 0x813261c0, + 0x04000023, 0x41312000, 0x408d0800, 0x59311000, + 0x5932680a, 0x0401f009, 0x41311800, 0x808509c0, + 0x04000010, 0x808101c0, 0x04000002, 0x40826000, + 0x808101c0, 0x0400000d, 0x59310001, 0x0401fd4f, + 0x80c589c0, 0x040007f5, 0x4090d000, 0x408cd800, + 0x0201f800, 0x0011000c, 0x0401fc6f, 0x0401f7f2, + 0x41310800, 0x0401f7f0, 0x808911c0, 0x04000006, + 0x408a6000, 0x808509c0, 0x04000003, 0x40852000, + 0x40810800, 0x808911c0, 0x040207e1, 0x417a3000, + 0x0201f800, 0x001074f6, 0x59926004, 0x813261c0, + 0x04000004, 0x0401fd35, 0x80c589c0, 0x04020011, + 0x811a3000, 0x83197480, 0x00000004, 0x040007f5, + 0x040017f4, 0x409a6000, 0x58a26805, 0x58a25804, + 0x58a23006, 0x58a32003, 0x58a3a000, 0x58a34801, + 0x58a22802, 0x80957040, 0x0400000a, 0x0401f00b, + 0x0201f800, 0x00107073, 0x0201f800, 0x00106e0c, + 0x0201f800, 0x00106e15, 0x0401fc43, 0x0401f7e9, + 0x0201f800, 0x00106e2e, 0x589d3006, 0x589d2805, + 0x589d2004, 0x589d1803, 0x589d1002, 0x589d0801, + 0x589d0000, 0x829d3c00, 0x0000000e, 0x589d4000, + 0x809d3800, 0x1c01f000, 0x4178e000, 0x497bc856, + 0x5930dc03, 0x826cd480, 0x00000002, 0x82697480, + 0x00000002, 0x04000007, 0x04001006, 0x599cd019, + 0x8c68d50e, 0x04000005, 0x806cd9c0, 0x04020003, + 0x4200e000, 0x00000001, 0x40718800, 0x1c01f000, + 0x829d3c80, 0x00000004, 0x48813800, 0x48853801, + 0x48893802, 0x488d3803, 0x412d0800, 0x41351000, + 0x41391800, 0x0201f800, 0x001102d3, 0x80c589c0, + 0x040000cd, 0x5932680a, 0x5930d407, 0x40680000, + 0x82697480, 0x00000013, 0x83f17500, 0x03000000, + 0x04000028, 0x0c01f001, 0x001106b2, 0x0011065f, + 0x0011066f, 0x00110624, 0x0011065f, 0x0011066f, + 0x00110647, 0x00110658, 0x0011061c, 0x0011067f, + 0x00110606, 0x0011061c, 0x0011061c, 0x0011061c, + 0x0011061c, 0x001106b2, 0x00110606, 0x00110603, + 0x0011061c, 0x0011061c, 0x59325818, 0x0201f800, + 0x0010059d, 0x5930d203, 0x82697480, 0x00000004, + 0x04000090, 0x59325809, 0x0201f800, 0x00109898, + 0x80c589c0, 0x04020083, 0x0201f800, 0x00107eb4, + 0x8d3e7d1c, 0x040000a0, 0x497a600a, 0x0401f09e, + 0x4200d000, 0x0000030f, 0x4000d800, 0x4130e000, + 0x0201f800, 0x0010032b, 0x0401f097, 0x59325809, + 0x0201f800, 0x00109898, 0x80c589c0, 0x0402006a, + 0x0201f800, 0x00107eb4, 0x0401f08f, 0x813669c0, + 0x04000077, 0x0201f800, 0x0010a424, 0x5930d203, + 0x82697480, 0x00000004, 0x04000081, 0x59325809, + 0x0201f800, 0x00109898, 0x80c589c0, 0x040007df, + 0x592cd205, 0x8268d500, 0x000000ff, 0x82697480, + 0x00000014, 0x04000003, 0x0201f800, 0x001099b4, + 0x4a025a05, 0x00000103, 0x5930d402, 0x486a5c07, + 0x592cd409, 0x8c68d512, 0x04020067, 0x49425a07, + 0x497a580a, 0x0201f800, 0x00109f56, 0x0201f800, + 0x000203ef, 0x0401f7c9, 0x5930d203, 0x82697480, + 0x00000004, 0x04000065, 0x59325809, 0x0201f800, + 0x00109898, 0x80c589c0, 0x040007c0, 0x49425a07, + 0x813669c0, 0x040007f0, 0x0201f800, 0x0010b4b0, + 0x0201f800, 0x00109f56, 0x0401f7ed, 0x5930d203, + 0x82697480, 0x00000011, 0x04020057, 0x5930d426, + 0x486a6203, 0x0401f054, 0x5930d403, 0x82697480, + 0x00000043, 0x04000050, 0x0201f800, 0x0010b827, + 0x0401ff62, 0x80c589c0, 0x0402003c, 0x0201f800, + 0x001099db, 0x80c589c0, 0x040007a4, 0x0201f800, + 0x001086a8, 0x0401f7a1, 0x59325809, 0x0201f800, + 0x00109898, 0x80c589c0, 0x0400079c, 0x49425a07, + 0x497a5c0a, 0x0201f800, 0x000203ef, 0x5930d226, + 0x82697480, 0x00000003, 0x04020794, 0x0201f800, + 0x001099b4, 0x0401f791, 0x5930d203, 0x82697480, + 0x00000004, 0x04020013, 0x5930d006, 0x8068d1c0, + 0x0400002d, 0x5930d415, 0x8468d558, 0x486a6415, + 0x0401f029, 0x49425a07, 0x497a5c07, 0x0201f800, + 0x000203ef, 0x0201f800, 0x00107eb4, 0x0401f022, + 0x49425a07, 0x0201f800, 0x000203ef, 0x0401f77b, + 0x59325809, 0x0201f800, 0x00106c32, 0x0401f777, + 0x0201f800, 0x00100c76, 0x0401f76f, 0x4200d000, + 0x00000182, 0x4134d800, 0x4130e000, 0x0201f800, + 0x0010032b, 0x0401f784, 0x0201f800, 0x00101cb7, + 0x0401f7c3, 0x412d0000, 0x592e580a, 0x0201f800, + 0x0010059d, 0x40825800, 0x0401f795, 0x0201f800, + 0x00100c76, 0x0401f77e, 0x0201f800, 0x00100c76, + 0x0401f79a, 0x40865800, 0x408a6800, 0x408e7000, + 0x589d1803, 0x589d1002, 0x589d0801, 0x589d0000, + 0x829d3c00, 0x00000004, 0x1c01f000, 0x829d3c80, + 0x00000002, 0x48813800, 0x48853801, 0x41310800, + 0x4933c857, 0x4943c857, 0x493fc857, 0x42010000, + 0x00111584, 0x59a8d00d, 0x41640000, 0x80697480, + 0x04000010, 0x41580000, 0x80817480, 0x0402100d, + 0x40826000, 0x8d3e7d12, 0x04000004, 0x40800000, + 0x80857480, 0x04000002, 0x0401ff06, 0x82810400, + 0x0000002c, 0x41580000, 0x80817480, 0x040017f5, + 0x41510000, 0x41540000, 0x80817480, 0x04021019, + 0x8d3e7d18, 0x04000017, 0x59a8d04d, 0x59a8004e, + 0x80697480, 0x04000013, 0x40826000, 0x5880d00a, + 0x8068d1c0, 0x04020005, 0x5880d203, 0x82697480, + 0x00000008, 0x04000008, 0x0401feee, 0x82810400, + 0x0000002c, 0x41540000, 0x80817480, 0x040017ed, + 0x0401f004, 0x0201f800, 0x0010b76e, 0x0401f7f7, + 0x40866000, 0x589d0801, 0x589d0000, 0x829d3c00, + 0x00000002, 0x1c01f000, 0x497a6226, 0x812e59c0, + 0x0400003d, 0x592cd205, 0x486bc857, 0x592cd205, + 0x8268d500, 0x000000ff, 0x82697480, 0x00000014, + 0x04000003, 0x4a026226, 0x00000003, 0x592cd409, + 0x8c68d510, 0x0402001d, 0x592cd209, 0x0201f800, + 0x00104e19, 0x0201f800, 0x00109f56, 0x0201f800, + 0x0010c0c0, 0x80c589c0, 0x0400001f, 0x4a026403, + 0x00000085, 0x4a026203, 0x00000009, 0x4a026407, + 0x00000002, 0x5930d004, 0x8268d500, 0x00000100, + 0x8268d540, 0x8000404b, 0x486a6004, 0x0201f800, + 0x00106e2e, 0x4200d000, 0x8000404b, 0x0201f800, + 0x00106d18, 0x0401f01f, 0x592cd209, 0x0201f800, + 0x00104e19, 0x4a025c09, 0x00000100, 0x0201f800, + 0x00109f56, 0x0201f800, 0x0010c0c0, 0x80c589c0, + 0x040207e3, 0x0201f800, 0x000203ef, 0x5930d226, + 0x82697480, 0x00000003, 0x0400000a, 0x497a6009, + 0x0401f7db, 0x4200d000, 0x00000527, 0x4130d800, + 0x412ce000, 0x0201f800, 0x0010032b, 0x0401f005, + 0x0201f800, 0x001099b4, 0x497a6009, 0x0401f7d0, + 0x1c01f000, 0x0201f800, 0x00106e2e, 0x812e59c0, + 0x0400001b, 0x592cd409, 0x8c68d510, 0x04020012, + 0x592cd209, 0x0201f800, 0x00104e19, 0x0201f800, + 0x00109f56, 0x0201f800, 0x000203ef, 0x5930d203, + 0x82697480, 0x0000000d, 0x0400000d, 0x0201f800, + 0x00106e2e, 0x5930d00a, 0x0201f800, 0x001049b8, + 0x0401f007, 0x592cd209, 0x0201f800, 0x00104e19, + 0x4a025c09, 0x00000100, 0x0401f7ed, 0x0201f800, + 0x00107eb4, 0x1c01f000, 0x829d3c80, 0x00000002, + 0x48813800, 0x48853801, 0x41790000, 0x0201f800, + 0x00109561, 0x40c50800, 0x48c7c857, 0x40840000, + 0x82857480, 0x0000000d, 0x83f17500, 0x03000000, + 0x0400002b, 0x0c01f001, 0x00110798, 0x001107de, + 0x001107ae, 0x00110785, 0x001107b0, 0x001107a0, + 0x00110798, 0x00110798, 0x00110798, 0x001107a0, + 0x001107a0, 0x001107a0, 0x001107a0, 0x001107ae, + 0x0201f800, 0x0010954b, 0x80c589c0, 0x04000005, + 0x0201f800, 0x00107123, 0x80c589c0, 0x04000063, + 0x0201f800, 0x00110065, 0x80c589c0, 0x04000017, + 0x5930d403, 0x486bc857, 0x5930d403, 0x82697480, + 0x00000040, 0x04020018, 0x0401ffaf, 0x42010000, + 0x00000001, 0x0401f073, 0x40840000, 0x82857480, + 0x0000000d, 0x040007d8, 0x040017d7, 0x4200d000, + 0x000004b7, 0x4130d800, 0x4084e000, 0x0201f800, + 0x0010032b, 0x0401f067, 0x497bc856, 0x0201f800, + 0x00106d45, 0x80c589c0, 0x04020044, 0x59317004, + 0x48bbc857, 0x0401ff4d, 0x0401f7e9, 0x812e59c0, + 0x04000050, 0x0201f800, 0x00109cec, 0x80c589c0, + 0x0400003e, 0x0201f800, 0x00106e2e, 0x592cd209, + 0x8468d50c, 0x486a5a09, 0x592cdc07, 0x806cd0c6, + 0x406c0000, 0x8068d400, 0x8068d400, 0x486a6006, + 0x4200d000, 0x10000000, 0x4130d800, 0x0201f800, + 0x001008be, 0x80c589c0, 0x0400000c, 0x592cd209, + 0x8c68d51c, 0x04000032, 0x59c8d001, 0x8068d1c0, + 0x0402003b, 0x4200d000, 0x40000000, 0x4130d800, + 0x0201f800, 0x001008be, 0x5930d203, 0x82697480, + 0x00000004, 0x040207c2, 0x41390000, 0x42027000, + 0x00000048, 0x0201f800, 0x00107f26, 0x40827000, + 0x0401f7bb, 0x598d700f, 0x48bbc857, 0x40b8d000, + 0x41300000, 0x80697480, 0x04000014, 0x0201f800, + 0x001101de, 0x80c589c0, 0x040207b0, 0x497bc856, + 0x0201f800, 0x00106d45, 0x4200d000, 0x000003f5, + 0x80c589c0, 0x040007b4, 0x5930d203, 0x486bc857, + 0x59310a03, 0x0401f01b, 0x0201f800, 0x00100c76, + 0x0401ff06, 0x0401f7a2, 0x0201f800, 0x0010715a, + 0x80c589c0, 0x040007f5, 0x0401f7e9, 0x8468d55c, + 0x486a5a09, 0x4a026006, 0x00000002, 0x0401f798, + 0x4200d000, 0x000004a7, 0x4130d800, 0x412ce000, + 0x0201f800, 0x0010032b, 0x0401f006, 0x41310000, + 0x0201f800, 0x00101270, 0x40826000, 0x0401f7c7, + 0x808101c0, 0x0400078d, 0x589d0801, 0x589d0000, + 0x829d3c00, 0x00000002, 0x1c01f000, 0x829d3c80, + 0x00000002, 0x48813800, 0x48853801, 0x412d0800, + 0x41410000, 0x4200d000, 0x0010cf32, 0x0201f800, + 0x0010bfb2, 0x417a5800, 0x0201f800, 0x00109898, + 0x80c589c0, 0x04000009, 0x0201f800, 0x0010a424, + 0x59325809, 0x592cd209, 0x8468d54c, 0x486a5a09, + 0x42028000, 0x00000006, 0x0201f800, 0x00106e3a, + 0x0401ff3a, 0x0201f800, 0x00106e2e, 0x40828000, + 0x40865800, 0x589d0801, 0x589d0000, 0x829d3c00, + 0x00000002, 0x1c01f000, 0x829d3c80, 0x00000002, + 0x48813800, 0x48853801, 0x412d0800, 0x0201f800, + 0x001102d3, 0x80c589c0, 0x040000c3, 0x5930d407, + 0x40680000, 0x82697480, 0x00000013, 0x83f17500, + 0x03000000, 0x04000025, 0x0c01f001, 0x00110902, + 0x001108a6, 0x001108bc, 0x00110883, 0x001108a6, + 0x001108bc, 0x001108cc, 0x001108b5, 0x001108e1, + 0x0011085c, 0x00110872, 0x001108e1, 0x001108e1, + 0x001108e1, 0x001108e1, 0x00110902, 0x00110878, + 0x001108dd, 0x001108e1, 0x001108e1, 0x0201f800, + 0x0010689d, 0x80c589c0, 0x04000090, 0x5930d203, + 0x82697480, 0x00000004, 0x0402009f, 0x5930d006, + 0x8068d1c0, 0x0400009c, 0x5930d415, 0x8468d558, + 0x486a6415, 0x0401f098, 0x4200d000, 0x00000328, + 0x4000d800, 0x4130e000, 0x0201f800, 0x0010032b, + 0x0401f091, 0x5930d203, 0x82697480, 0x00000004, + 0x04020003, 0x0201f800, 0x00100c76, 0x59325809, + 0x0201f800, 0x00109898, 0x80c589c0, 0x0402006f, + 0x0201f800, 0x00107eb4, 0x8d3e7d1c, 0x04000082, + 0x497a600a, 0x0401f080, 0x0201f800, 0x0010a424, + 0x5930d203, 0x82697480, 0x00000004, 0x04000074, + 0x59325809, 0x0201f800, 0x00109898, 0x80c589c0, + 0x040007f0, 0x592cd205, 0x8268d500, 0x000000ff, + 0x82697480, 0x00000014, 0x04000003, 0x0201f800, + 0x001099b4, 0x4a025a05, 0x00000103, 0x592cd409, + 0x8c68d512, 0x0402005c, 0x49425a07, 0x497a580a, + 0x0201f800, 0x0010b4b0, 0x0201f800, 0x00109f56, + 0x0201f800, 0x00109a5c, 0x0201f800, 0x000203ef, + 0x0401f7d8, 0x5930d403, 0x82697480, 0x00000043, + 0x04000059, 0x0201f800, 0x001105c7, 0x80c589c0, + 0x04020046, 0x0201f800, 0x001099db, 0x80c589c0, + 0x040007cc, 0x0201f800, 0x001086a8, 0x0401f7c9, + 0x5930d203, 0x82697480, 0x00000011, 0x0402004a, + 0x5930d426, 0x486a6203, 0x0401f047, 0x59325809, + 0x0201f800, 0x00109898, 0x80c589c0, 0x040007bd, + 0x49425a07, 0x497a5c0a, 0x0201f800, 0x000203ef, + 0x5930d226, 0x82697480, 0x00000003, 0x040207b5, + 0x0201f800, 0x001099b4, 0x0401f7b2, 0x5930d203, + 0x82697480, 0x00000004, 0x04000030, 0x59325809, + 0x0201f800, 0x00109898, 0x80c589c0, 0x040007a9, + 0x49425a07, 0x0201f800, 0x0010b4b0, 0x0201f800, + 0x00109f56, 0x0201f800, 0x000203ef, 0x0401f7a1, + 0x59325818, 0x0201f800, 0x0010059d, 0x0401f798, + 0x59325809, 0x0201f800, 0x00109898, 0x80c589c0, + 0x04000798, 0x49425a07, 0x497a5c07, 0x0201f800, + 0x000203ef, 0x0401f793, 0x49425a07, 0x0201f800, + 0x000203ef, 0x0401f78f, 0x59325809, 0x0201f800, + 0x00106c32, 0x0401f78b, 0x0201f800, 0x00101cb7, + 0x0401f7b9, 0x412d0000, 0x592e580a, 0x0201f800, + 0x0010059d, 0x40825800, 0x0401f7a0, 0x0201f800, + 0x00100c76, 0x0401f78b, 0x0201f800, 0x00100c76, + 0x0401f7cf, 0x40865800, 0x589d0801, 0x589d0000, + 0x829d3c00, 0x00000002, 0x1c01f000, 0x0201f800, + 0x0010b298, 0x80c589c0, 0x04000007, 0x812649c0, + 0x04000006, 0x5930d01c, 0x41240000, 0x80697480, + 0x04000002, 0x0401f003, 0x5932680a, 0x0401ff23, + 0x1c01f000, 0x829d3c80, 0x00000005, 0x48813800, + 0x48853801, 0x48893802, 0x488d3803, 0x48913804, + 0x41311000, 0x41352000, 0x4933c857, 0x4947c857, + 0x4943c857, 0x0201f800, 0x00106e3a, 0x40c51800, + 0x0201f800, 0x0010b130, 0x41310800, 0x813261c0, + 0x0400004e, 0x42000000, 0x0011152c, 0x81317480, + 0x0400004a, 0x59a8d00d, 0x8068d040, 0x42010000, + 0x00111584, 0x40680000, 0x81657480, 0x0400000f, + 0x41580000, 0x80817480, 0x0402100c, 0x40826000, + 0x40800000, 0x80857480, 0x04000003, 0x4084d000, + 0x0401ffcb, 0x82810400, 0x0000002c, 0x41580000, + 0x80817480, 0x040017f6, 0x41510000, 0x41540000, + 0x80817480, 0x04021012, 0x8d3e7d18, 0x04000010, + 0x59a8d04d, 0x59a8004e, 0x80697480, 0x0400000c, + 0x40826000, 0x5880d00a, 0x8068d1c0, 0x0400000d, + 0x4084d000, 0x0401ffb6, 0x82810400, 0x0000002c, + 0x41540000, 0x80817480, 0x040017f0, 0x408a6000, + 0x40926800, 0x808d7040, 0x0400001e, 0x0401f023, + 0x0201f800, 0x001046de, 0x40c66800, 0x80c589c0, + 0x040007f2, 0x58c4d002, 0x5930d827, 0x82680500, + 0x00ffffff, 0x806d7480, 0x040207ec, 0x58c4d013, + 0x5930d826, 0x82680500, 0x00ffffff, 0x806d7480, + 0x040207e6, 0x5930d203, 0x82697480, 0x00000008, + 0x0400000b, 0x4936600a, 0x0401fec4, 0x82810400, + 0x0000002c, 0x0401f7df, 0x59a8d00d, 0x0401f7b8, + 0x0201f800, 0x00106e2e, 0x0401f004, 0x0201f800, + 0x0010b76e, 0x0401f7f4, 0x589d2004, 0x589d1803, + 0x589d1002, 0x589d0801, 0x589d0000, 0x829d3c00, + 0x00000005, 0x1c01f000, 0x809d3840, 0x48a13800, + 0x829d3c80, 0x00000002, 0x409d4000, 0x829d3c80, 0x00000007, 0x48813800, 0x48853801, 0x48893802, 0x488d3803, 0x48913804, 0x48953805, 0x48993806, - 0x4178d000, 0x48694004, 0x0201f800, 0x00106c35, - 0x40c53000, 0x41311000, 0x41352000, 0x41192800, - 0x412d1800, 0x49914003, 0x49d14000, 0x49a54001, - 0x49154002, 0x59be6031, 0x813261c0, 0x04000014, - 0x41310800, 0x0401f007, 0x808101c0, 0x04000003, - 0x41310800, 0x40826000, 0x808101c0, 0x0400000c, - 0x59310000, 0x5932680a, 0x5930d01c, 0x41240000, - 0x80697480, 0x040207f5, 0x5934d403, 0x41440000, - 0x80697480, 0x040207f1, 0x0401f031, 0x417a3000, - 0x0401f007, 0x811a3000, 0x83197480, 0x00000004, - 0x83f17500, 0x03000000, 0x0400001a, 0x0201f800, - 0x001072f1, 0x59926004, 0x813261c0, 0x040007f6, - 0x5932680a, 0x5930d01c, 0x41240000, 0x80697480, - 0x040207f1, 0x5934d403, 0x41440000, 0x80697480, - 0x040207ed, 0x0401fd99, 0x80c589c0, 0x040007ea, - 0x0201f800, 0x00106e6e, 0x0201f800, 0x00106c07, - 0x0201f800, 0x00106c10, 0x0401fcb7, 0x0401f7e2, - 0x408a6000, 0x40926800, 0x40963000, 0x408e5800, - 0x58a32003, 0x58a3a000, 0x58a34801, 0x58a22802, - 0x80997040, 0x04000010, 0x0401f011, 0x49314004, - 0x40826000, 0x808101c0, 0x040007d1, 0x59310001, - 0x0401fd7e, 0x80c589c0, 0x040007f9, 0x4084d000, - 0x58a0d804, 0x0201f800, 0x0010fcfc, 0x0401fc9e, - 0x0401f7f4, 0x0201f800, 0x00106c29, 0x589d3006, - 0x589d2805, 0x589d2004, 0x589d1803, 0x589d1002, - 0x589d0801, 0x589d0000, 0x829d3c00, 0x0000000c, - 0x589d4000, 0x809d3800, 0x1c01f000, 0x809d3840, - 0x48a13800, 0x829d3c80, 0x00000007, 0x409d4000, - 0x829d3c80, 0x00000007, 0x48813800, 0x48853801, - 0x48893802, 0x488d3803, 0x48913804, 0x48953805, - 0x48993806, 0x41791800, 0x0201f800, 0x00106c35, - 0x40c52800, 0x41313000, 0x49354005, 0x492d4004, - 0x49194006, 0x49914003, 0x49d14000, 0x49a54001, - 0x49154002, 0x59be6031, 0x813261c0, 0x04000023, - 0x41312000, 0x408d0800, 0x59311000, 0x5932680a, - 0x0401f009, 0x41311800, 0x808509c0, 0x04000010, - 0x808101c0, 0x04000002, 0x40826000, 0x808101c0, - 0x0400000d, 0x59310001, 0x0401fd3c, 0x80c589c0, - 0x040007f5, 0x4090d000, 0x408cd800, 0x0201f800, - 0x0010fcfc, 0x0401fc5c, 0x0401f7f2, 0x41310800, - 0x0401f7f0, 0x808911c0, 0x04000006, 0x408a6000, - 0x808509c0, 0x04000003, 0x40852000, 0x40810800, - 0x808911c0, 0x040207e1, 0x417a3000, 0x0201f800, - 0x001072f1, 0x59926004, 0x813261c0, 0x04000004, - 0x0401fd22, 0x80c589c0, 0x04020011, 0x811a3000, - 0x83197480, 0x00000004, 0x040007f5, 0x040017f4, - 0x409a6000, 0x58a26805, 0x58a25804, 0x58a23006, - 0x58a32003, 0x58a3a000, 0x58a34801, 0x58a22802, - 0x80957040, 0x0400000a, 0x0401f00b, 0x0201f800, - 0x00106e6e, 0x0201f800, 0x00106c07, 0x0201f800, - 0x00106c10, 0x0401fc30, 0x0401f7e9, 0x0201f800, - 0x00106c29, 0x589d3006, 0x589d2805, 0x589d2004, - 0x589d1803, 0x589d1002, 0x589d0801, 0x589d0000, - 0x829d3c00, 0x0000000e, 0x589d4000, 0x809d3800, - 0x1c01f000, 0x4178e000, 0x497bc856, 0x5930dc03, - 0x826cd480, 0x00000002, 0x82697480, 0x00000002, - 0x04000007, 0x04001006, 0x599cd019, 0x8c68d50e, - 0x04000005, 0x806cd9c0, 0x04020003, 0x4200e000, - 0x00000001, 0x40718800, 0x1c01f000, 0x829d3c80, - 0x00000004, 0x48813800, 0x48853801, 0x48893802, - 0x488d3803, 0x412d0800, 0x41351000, 0x41391800, - 0x0201f800, 0x0010ffc3, 0x80c589c0, 0x040000cd, - 0x5932680a, 0x5930d407, 0x40680000, 0x82697480, - 0x00000013, 0x83f17500, 0x03000000, 0x04000028, - 0x0c01f001, 0x001103b5, 0x00110362, 0x00110372, - 0x00110327, 0x00110362, 0x00110372, 0x0011034a, - 0x0011035b, 0x0011031f, 0x00110382, 0x00110309, - 0x0011031f, 0x0011031f, 0x0011031f, 0x0011031f, - 0x001103b5, 0x00110309, 0x00110306, 0x0011031f, - 0x0011031f, 0x59325818, 0x0201f800, 0x0010059d, - 0x5930d203, 0x82697480, 0x00000004, 0x04000090, - 0x59325809, 0x0201f800, 0x00109660, 0x80c589c0, - 0x04020083, 0x0201f800, 0x00107cbe, 0x8d3e7d1c, - 0x040000a0, 0x497a600a, 0x0401f09e, 0x4200d000, - 0x0000030f, 0x4000d800, 0x4130e000, 0x0201f800, - 0x0010032b, 0x0401f097, 0x59325809, 0x0201f800, - 0x00109660, 0x80c589c0, 0x0402006a, 0x0201f800, - 0x00107cbe, 0x0401f08f, 0x813669c0, 0x04000077, - 0x0201f800, 0x0010a1e1, 0x5930d203, 0x82697480, - 0x00000004, 0x04000081, 0x59325809, 0x0201f800, - 0x00109660, 0x80c589c0, 0x040007df, 0x592cd205, - 0x8268d500, 0x000000ff, 0x82697480, 0x00000014, - 0x04000003, 0x0201f800, 0x0010977c, 0x4a025a05, - 0x00000103, 0x5930d402, 0x486a5c07, 0x592cd409, - 0x8c68d512, 0x04020067, 0x49425a07, 0x497a580a, - 0x0201f800, 0x00109d18, 0x0201f800, 0x000203ef, - 0x0401f7c9, 0x5930d203, 0x82697480, 0x00000004, - 0x04000065, 0x59325809, 0x0201f800, 0x00109660, - 0x80c589c0, 0x040007c0, 0x49425a07, 0x813669c0, - 0x040007f0, 0x0201f800, 0x0010b199, 0x0201f800, - 0x00109d18, 0x0401f7ed, 0x5930d203, 0x82697480, - 0x00000011, 0x04020057, 0x5930d426, 0x486a6203, - 0x0401f054, 0x5930d403, 0x82697480, 0x00000043, - 0x04000050, 0x0201f800, 0x0010b4fc, 0x0401ff62, - 0x80c589c0, 0x0402003c, 0x0201f800, 0x001097a3, - 0x80c589c0, 0x040007a4, 0x0201f800, 0x001084a2, - 0x0401f7a1, 0x59325809, 0x0201f800, 0x00109660, - 0x80c589c0, 0x0400079c, 0x49425a07, 0x497a5c0a, - 0x0201f800, 0x000203ef, 0x5930d226, 0x82697480, - 0x00000003, 0x04020794, 0x0201f800, 0x0010977c, - 0x0401f791, 0x5930d203, 0x82697480, 0x00000004, - 0x04020013, 0x5930d006, 0x8068d1c0, 0x0400002d, - 0x5930d415, 0x8468d558, 0x486a6415, 0x0401f029, - 0x49425a07, 0x497a5c07, 0x0201f800, 0x000203ef, - 0x0201f800, 0x00107cbe, 0x0401f022, 0x49425a07, - 0x0201f800, 0x000203ef, 0x0401f77b, 0x59325809, - 0x0201f800, 0x00106a2d, 0x0401f777, 0x0201f800, - 0x00100c75, 0x0401f76f, 0x4200d000, 0x00000182, - 0x4134d800, 0x4130e000, 0x0201f800, 0x0010032b, - 0x0401f784, 0x0201f800, 0x00101cb2, 0x0401f7c3, - 0x412d0000, 0x592e580a, 0x0201f800, 0x0010059d, - 0x40825800, 0x0401f795, 0x0201f800, 0x00100c75, - 0x0401f77e, 0x0201f800, 0x00100c75, 0x0401f79a, - 0x40865800, 0x408a6800, 0x408e7000, 0x589d1803, - 0x589d1002, 0x589d0801, 0x589d0000, 0x829d3c00, - 0x00000004, 0x1c01f000, 0x829d3c80, 0x00000002, - 0x48813800, 0x48853801, 0x41310800, 0x4933c857, - 0x4943c857, 0x493fc857, 0x42010000, 0x00111264, - 0x59a8d00d, 0x41640000, 0x80697480, 0x04000010, - 0x41580000, 0x80817480, 0x0402100d, 0x40826000, - 0x8d3e7d12, 0x04000004, 0x40800000, 0x80857480, - 0x04000002, 0x0401ff06, 0x82810400, 0x0000002c, - 0x41580000, 0x80817480, 0x040017f5, 0x41510000, - 0x41540000, 0x80817480, 0x04021019, 0x8d3e7d18, - 0x04000017, 0x59a8d04d, 0x59a8004e, 0x80697480, - 0x04000013, 0x40826000, 0x5880d00a, 0x8068d1c0, - 0x04020005, 0x5880d203, 0x82697480, 0x00000008, - 0x04000008, 0x0401feee, 0x82810400, 0x0000002c, - 0x41540000, 0x80817480, 0x040017ed, 0x0401f004, - 0x0201f800, 0x0010b443, 0x0401f7f7, 0x40866000, - 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000002, - 0x1c01f000, 0x497a6226, 0x812e59c0, 0x0400003d, - 0x592cd205, 0x486bc857, 0x592cd205, 0x8268d500, - 0x000000ff, 0x82697480, 0x00000014, 0x04000003, - 0x4a026226, 0x00000003, 0x592cd409, 0x8c68d510, - 0x0402001d, 0x592cd209, 0x0201f800, 0x00104cf4, - 0x0201f800, 0x00109d18, 0x0201f800, 0x0010bd95, - 0x80c589c0, 0x0400001f, 0x4a026403, 0x00000085, - 0x4a026203, 0x00000009, 0x4a026407, 0x00000002, - 0x5930d004, 0x8268d500, 0x00000100, 0x8268d540, - 0x8000404b, 0x486a6004, 0x0201f800, 0x00106c29, - 0x4200d000, 0x8000404b, 0x0201f800, 0x00106b13, - 0x0401f01f, 0x592cd209, 0x0201f800, 0x00104cf4, - 0x4a025c09, 0x00000100, 0x0201f800, 0x00109d18, - 0x0201f800, 0x0010bd95, 0x80c589c0, 0x040207e3, - 0x0201f800, 0x000203ef, 0x5930d226, 0x82697480, - 0x00000003, 0x0400000a, 0x497a6009, 0x0401f7db, - 0x4200d000, 0x00000527, 0x4130d800, 0x412ce000, - 0x0201f800, 0x0010032b, 0x0401f005, 0x0201f800, - 0x0010977c, 0x497a6009, 0x0401f7d0, 0x1c01f000, - 0x0201f800, 0x00106c29, 0x812e59c0, 0x0400001b, - 0x592cd409, 0x8c68d510, 0x04020012, 0x592cd209, - 0x0201f800, 0x00104cf4, 0x0201f800, 0x00109d18, - 0x0201f800, 0x000203ef, 0x5930d203, 0x82697480, - 0x0000000d, 0x0400000d, 0x0201f800, 0x00106c29, - 0x5930d00a, 0x0201f800, 0x001048b8, 0x0401f007, - 0x592cd209, 0x0201f800, 0x00104cf4, 0x4a025c09, - 0x00000100, 0x0401f7ed, 0x0201f800, 0x00107cbe, - 0x1c01f000, 0x829d3c80, 0x00000002, 0x48813800, - 0x48853801, 0x41790000, 0x0201f800, 0x0010932d, - 0x40c50800, 0x48c7c857, 0x40840000, 0x82857480, - 0x0000000d, 0x83f17500, 0x03000000, 0x0400002b, - 0x0c01f001, 0x0011049b, 0x001104e1, 0x001104b1, - 0x00110488, 0x001104b3, 0x001104a3, 0x0011049b, - 0x0011049b, 0x0011049b, 0x001104a3, 0x001104a3, - 0x001104a3, 0x001104a3, 0x001104b1, 0x0201f800, - 0x00109317, 0x80c589c0, 0x04000005, 0x0201f800, - 0x00106f1e, 0x80c589c0, 0x04000063, 0x0201f800, - 0x0010fd55, 0x80c589c0, 0x04000017, 0x5930d403, - 0x486bc857, 0x5930d403, 0x82697480, 0x00000040, - 0x04020018, 0x0401ffaf, 0x42010000, 0x00000001, - 0x0401f073, 0x40840000, 0x82857480, 0x0000000d, - 0x040007d8, 0x040017d7, 0x4200d000, 0x000004b7, - 0x4130d800, 0x4084e000, 0x0201f800, 0x0010032b, - 0x0401f067, 0x497bc856, 0x0201f800, 0x00106b40, - 0x80c589c0, 0x04020044, 0x59317004, 0x48bbc857, - 0x0401ff4d, 0x0401f7e9, 0x812e59c0, 0x04000050, - 0x0201f800, 0x00109ab4, 0x80c589c0, 0x0400003e, - 0x0201f800, 0x00106c29, 0x592cd209, 0x8468d50c, - 0x486a5a09, 0x592cdc07, 0x806cd0c6, 0x406c0000, - 0x8068d400, 0x8068d400, 0x486a6006, 0x4200d000, - 0x10000000, 0x4130d800, 0x0201f800, 0x001008c0, - 0x80c589c0, 0x0400000c, 0x592cd209, 0x8c68d51c, - 0x04000032, 0x59c8d001, 0x8068d1c0, 0x0402003b, - 0x4200d000, 0x40000000, 0x4130d800, 0x0201f800, - 0x001008c0, 0x5930d203, 0x82697480, 0x00000004, - 0x040207c2, 0x41390000, 0x42027000, 0x00000048, - 0x0201f800, 0x00107d2c, 0x40827000, 0x0401f7bb, - 0x598d700f, 0x48bbc857, 0x40b8d000, 0x41300000, - 0x80697480, 0x04000014, 0x0201f800, 0x0010fece, - 0x80c589c0, 0x040207b0, 0x497bc856, 0x0201f800, - 0x00106b40, 0x4200d000, 0x000003f5, 0x80c589c0, - 0x040007b4, 0x5930d203, 0x486bc857, 0x59310a03, - 0x0401f01b, 0x0201f800, 0x00100c75, 0x0401ff06, - 0x0401f7a2, 0x0201f800, 0x00106f55, 0x80c589c0, - 0x040007f5, 0x0401f7e9, 0x8468d55c, 0x486a5a09, - 0x4a026006, 0x00000002, 0x0401f798, 0x4200d000, - 0x000004a7, 0x4130d800, 0x412ce000, 0x0201f800, - 0x0010032b, 0x0401f006, 0x41310000, 0x0201f800, - 0x0010126f, 0x40826000, 0x0401f7c7, 0x808101c0, - 0x0400078d, 0x589d0801, 0x589d0000, 0x829d3c00, - 0x00000002, 0x1c01f000, 0x829d3c80, 0x00000002, - 0x48813800, 0x48853801, 0x412d0800, 0x41410000, - 0x4200d000, 0x0010cc32, 0x0201f800, 0x0010bc87, - 0x417a5800, 0x0201f800, 0x00109660, 0x80c589c0, - 0x04000009, 0x0201f800, 0x0010a1e1, 0x59325809, - 0x592cd209, 0x8468d54c, 0x486a5a09, 0x42028000, - 0x00000006, 0x0201f800, 0x00106c35, 0x0401ff3a, - 0x0201f800, 0x00106c29, 0x40828000, 0x40865800, - 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000002, - 0x1c01f000, 0x829d3c80, 0x00000002, 0x48813800, - 0x48853801, 0x412d0800, 0x0201f800, 0x0010ffc3, - 0x80c589c0, 0x040000c3, 0x5930d407, 0x40680000, - 0x82697480, 0x00000013, 0x83f17500, 0x03000000, - 0x04000025, 0x0c01f001, 0x00110605, 0x001105a9, - 0x001105bf, 0x00110586, 0x001105a9, 0x001105bf, - 0x001105cf, 0x001105b8, 0x001105e4, 0x0011055f, - 0x00110575, 0x001105e4, 0x001105e4, 0x001105e4, - 0x001105e4, 0x00110605, 0x0011057b, 0x001105e0, - 0x001105e4, 0x001105e4, 0x0201f800, 0x00106698, - 0x80c589c0, 0x04000090, 0x5930d203, 0x82697480, - 0x00000004, 0x0402009f, 0x5930d006, 0x8068d1c0, - 0x0400009c, 0x5930d415, 0x8468d558, 0x486a6415, - 0x0401f098, 0x4200d000, 0x0000031c, 0x4000d800, - 0x4130e000, 0x0201f800, 0x0010032b, 0x0401f091, - 0x5930d203, 0x82697480, 0x00000004, 0x04020003, - 0x0201f800, 0x00100c75, 0x59325809, 0x0201f800, - 0x00109660, 0x80c589c0, 0x0402006f, 0x0201f800, - 0x00107cbe, 0x8d3e7d1c, 0x04000082, 0x497a600a, - 0x0401f080, 0x0201f800, 0x0010a1e1, 0x5930d203, - 0x82697480, 0x00000004, 0x04000074, 0x59325809, - 0x0201f800, 0x00109660, 0x80c589c0, 0x040007f0, - 0x592cd205, 0x8268d500, 0x000000ff, 0x82697480, - 0x00000014, 0x04000003, 0x0201f800, 0x0010977c, - 0x4a025a05, 0x00000103, 0x592cd409, 0x8c68d512, - 0x0402005c, 0x49425a07, 0x497a580a, 0x0201f800, - 0x0010b199, 0x0201f800, 0x00109d18, 0x0201f800, - 0x00109824, 0x0201f800, 0x000203ef, 0x0401f7d8, - 0x5930d403, 0x82697480, 0x00000043, 0x04000059, - 0x0201f800, 0x001102ca, 0x80c589c0, 0x04020046, - 0x0201f800, 0x001097a3, 0x80c589c0, 0x040007cc, - 0x0201f800, 0x001084a2, 0x0401f7c9, 0x5930d203, - 0x82697480, 0x00000011, 0x0402004a, 0x5930d426, - 0x486a6203, 0x0401f047, 0x59325809, 0x0201f800, - 0x00109660, 0x80c589c0, 0x040007bd, 0x49425a07, - 0x497a5c0a, 0x0201f800, 0x000203ef, 0x5930d226, - 0x82697480, 0x00000003, 0x040207b5, 0x0201f800, - 0x0010977c, 0x0401f7b2, 0x5930d203, 0x82697480, - 0x00000004, 0x04000030, 0x59325809, 0x0201f800, - 0x00109660, 0x80c589c0, 0x040007a9, 0x49425a07, - 0x0201f800, 0x0010b199, 0x0201f800, 0x00109d18, - 0x0201f800, 0x000203ef, 0x0401f7a1, 0x59325818, - 0x0201f800, 0x0010059d, 0x0401f798, 0x59325809, - 0x0201f800, 0x00109660, 0x80c589c0, 0x04000798, - 0x49425a07, 0x497a5c07, 0x0201f800, 0x000203ef, - 0x0401f793, 0x49425a07, 0x0201f800, 0x000203ef, - 0x0401f78f, 0x59325809, 0x0201f800, 0x00106a2d, - 0x0401f78b, 0x0201f800, 0x00101cb2, 0x0401f7b9, - 0x412d0000, 0x592e580a, 0x0201f800, 0x0010059d, - 0x40825800, 0x0401f7a0, 0x0201f800, 0x00100c75, - 0x0401f78b, 0x0201f800, 0x00100c75, 0x0401f7cf, - 0x40865800, 0x589d0801, 0x589d0000, 0x829d3c00, - 0x00000002, 0x1c01f000, 0x0201f800, 0x0010af81, - 0x80c589c0, 0x0402000c, 0x5930d407, 0x82697480, - 0x00000010, 0x04000002, 0x0401f00f, 0x83457480, - 0x0000ffff, 0x040207fd, 0x5930d00a, 0x8068d1c0, - 0x040207fa, 0x812649c0, 0x04000005, 0x5930d01c, - 0x41240000, 0x80697480, 0x040207f4, 0x5932680a, - 0x0401ff19, 0x1c01f000, 0x829d3c80, 0x00000005, - 0x48813800, 0x48853801, 0x48893802, 0x488d3803, - 0x48913804, 0x41311000, 0x41352000, 0x4933c857, - 0x4947c857, 0x4943c857, 0x0201f800, 0x00106c35, - 0x40c51800, 0x0201f800, 0x0010ae21, 0x41310800, - 0x813261c0, 0x0400004e, 0x42000000, 0x0011120c, - 0x81317480, 0x0400004a, 0x59a8d00d, 0x8068d040, - 0x42010000, 0x00111264, 0x40680000, 0x81657480, - 0x0400000f, 0x41580000, 0x80817480, 0x0402100c, - 0x40826000, 0x40800000, 0x80857480, 0x04000003, - 0x4084d000, 0x0401ffc1, 0x82810400, 0x0000002c, - 0x41580000, 0x80817480, 0x040017f6, 0x41510000, - 0x41540000, 0x80817480, 0x04021012, 0x8d3e7d18, - 0x04000010, 0x59a8d04d, 0x59a8004e, 0x80697480, - 0x0400000c, 0x40826000, 0x5880d00a, 0x8068d1c0, - 0x0400000d, 0x4084d000, 0x0401ffac, 0x82810400, - 0x0000002c, 0x41540000, 0x80817480, 0x040017f0, - 0x408a6000, 0x40926800, 0x808d7040, 0x0400001e, - 0x0401f023, 0x0201f800, 0x001045e2, 0x40c66800, - 0x80c589c0, 0x040007f2, 0x58c4d002, 0x5930d827, - 0x82680500, 0x00ffffff, 0x806d7480, 0x040207ec, - 0x58c4d013, 0x5930d826, 0x82680500, 0x00ffffff, - 0x806d7480, 0x040207e6, 0x5930d203, 0x82697480, - 0x00000008, 0x0400000b, 0x4936600a, 0x0401feba, - 0x82810400, 0x0000002c, 0x0401f7df, 0x59a8d00d, - 0x0401f7b8, 0x0201f800, 0x00106c29, 0x0401f004, - 0x0201f800, 0x0010b443, 0x0401f7f4, 0x589d2004, - 0x589d1803, 0x589d1002, 0x589d0801, 0x589d0000, - 0x829d3c00, 0x00000005, 0x1c01f000, 0x809d3840, - 0x48a13800, 0x829d3c80, 0x00000002, 0x409d4000, - 0x829d3c80, 0x00000007, 0x48813800, 0x48853801, - 0x48893802, 0x488d3803, 0x48913804, 0x48953805, - 0x48993806, 0x42010000, 0x00000001, 0x41793000, - 0x49214000, 0x49254001, 0x497bc856, 0x41310800, - 0x41351000, 0x41451800, 0x413d2000, 0x40592800, - 0x4200d000, 0x00110694, 0x0201f800, 0x00106301, - 0x59a8d21b, 0x8c68d508, 0x0400001d, 0x8c68d516, - 0x0402001b, 0x59aa6865, 0x813669c0, 0x0400009b, - 0x5934d400, 0x82697480, 0x00000404, 0x04020097, - 0x0201f800, 0x00107cfb, 0x40c66000, 0x80c589c0, - 0x0400008c, 0x48818c07, 0x4935880a, 0x409a7800, - 0x0201f800, 0x001044e6, 0x4200d000, 0x00000005, - 0x0201f800, 0x001044f0, 0x42027000, 0x00000003, - 0x0201f800, 0x00107d2c, 0x0401f084, 0x8268dd00, - 0x00000008, 0x8c68d506, 0x0400006c, 0x806cd9c0, - 0x04000002, 0x41790000, 0x0201f800, 0x0010bd9f, - 0x4200d000, 0x0010bdc7, 0x586a4800, 0x42028800, - 0x000007fe, 0x8058b1c0, 0x0400001e, 0x41440000, - 0x0401f005, 0x83264c00, 0x0000000b, 0x8058b040, - 0x04000018, 0x5924d009, 0x8068d400, 0x8268d480, - 0x000007f0, 0x586a6800, 0x813669c0, 0x040007f6, - 0x5924d200, 0x8268d500, 0x00000003, 0x82697480, - 0x00000003, 0x040207f0, 0x5934d200, 0x8c68d51a, - 0x040007ed, 0x8468d51a, 0x486a6a00, 0x80993000, - 0x83264c00, 0x0000000b, 0x8058b040, 0x040207ea, - 0x809931c0, 0x04000043, 0x8d0e1d20, 0x04020044, - 0x0201f800, 0x00101df2, 0x80817040, 0x0402004f, - 0x4200b000, 0x000007f0, 0x417a8800, 0x0401f004, - 0x81468800, 0x8058b040, 0x04000048, 0x0201f800, - 0x001045e2, 0x80c589c0, 0x040007fa, 0x5934d200, - 0x8c68d51a, 0x040007f7, 0x5934d403, 0x406a8800, + 0x42010000, 0x00000001, 0x41793000, 0x49214000, + 0x49254001, 0x497bc856, 0x41310800, 0x41351000, + 0x41451800, 0x413d2000, 0x40592800, 0x4200d000, + 0x00110987, 0x0201f800, 0x00106506, 0x59a8d21b, + 0x8c68d508, 0x0400001d, 0x8c68d516, 0x0402001b, + 0x59aa6865, 0x813669c0, 0x040000a4, 0x5934d400, + 0x82697480, 0x00000404, 0x040200a0, 0x0201f800, + 0x00107ef5, 0x40c66000, 0x80c589c0, 0x04000095, + 0x48818c07, 0x4935880a, 0x409a7800, 0x0201f800, + 0x001045df, 0x4200d000, 0x00000005, 0x0201f800, + 0x001045e9, 0x42027000, 0x00000003, 0x0201f800, + 0x00107f26, 0x0401f08d, 0x8268dd00, 0x00000008, + 0x8c68d506, 0x04000072, 0x806cd9c0, 0x04000002, + 0x41790000, 0x0201f800, 0x0010c0ca, 0x4200d000, + 0x0010c10d, 0x586a4800, 0x42028800, 0x000007fe, + 0x8058b1c0, 0x0400001f, 0x41440000, 0x0401f005, + 0x83264c00, 0x0000000b, 0x8058b040, 0x04000019, + 0x5924d009, 0x8068d400, 0x8268d480, 0x000007f0, + 0x586a6800, 0x813669c0, 0x040007f6, 0x5924d200, + 0x8268d500, 0x00000003, 0x82697480, 0x00000003, + 0x040207f0, 0x5934da00, 0x8c6cdd1a, 0x040007ed, + 0x826cd500, 0xffffdfff, 0x486a6a00, 0x80993000, + 0x83264c00, 0x0000000b, 0x8058b040, 0x040207e9, + 0x809931c0, 0x04000048, 0x8d0e1d20, 0x04020049, + 0x0201f800, 0x00101e2e, 0x80817040, 0x04020057, + 0x4200b000, 0x000007f0, 0x417a8800, 0x0401f01c, + 0x826cd540, 0x00001000, 0x486a6a00, 0x5934d200, + 0x8468d51a, 0x486a6a00, 0x4937c857, 0x4a026c00, + 0x00000707, 0x0201f800, 0x00106e3a, 0x40c50000, + 0x417a6000, 0x0201f800, 0x00110363, 0x0201f800, + 0x00110447, 0x417a7800, 0x0201f800, 0x001104e0, + 0x0201f800, 0x00110916, 0x80817040, 0x04000032, + 0x81468800, 0x8058b040, 0x04000038, 0x0201f800, + 0x001046de, 0x80c589c0, 0x040007fa, 0x5934da00, + 0x8c6cdd1a, 0x040007f7, 0x5934d403, 0x406a8800, 0x417a7800, 0x42028000, 0x00000029, 0x5934d013, 0x8068d130, 0x406a4000, 0x40680000, 0x4200d000, - 0x0010bdc7, 0x8068d400, 0x586a4800, 0x413cd000, - 0x413cd800, 0x0201f800, 0x0010ae84, 0x5934d200, - 0x8468d558, 0x486a6a00, 0x5934d200, 0x8468d51a, - 0x486a6a00, 0x4937c857, 0x4a026c00, 0x00000707, - 0x0201f800, 0x00106c35, 0x40c50000, 0x417a6000, - 0x0201f800, 0x00110053, 0x0201f800, 0x0011014a, - 0x417a7800, 0x0201f800, 0x001101e3, 0x0201f800, - 0x00110623, 0x80817040, 0x040207ce, 0x0201f800, - 0x00106c29, 0x0401f7cb, 0x8c68d50a, 0x04020794, - 0x80817040, 0x04020011, 0x0401f7c2, 0x4200d000, - 0x000007d0, 0x4200d800, 0x00110694, 0x0201f800, - 0x0010642f, 0x0201f800, 0x00101df2, 0x0401f7b7, - 0x4200d000, 0x00000098, 0x40c4d800, 0x4134e000, + 0x0010c10d, 0x8068d400, 0x586a4800, 0x5924d000, + 0x8068d120, 0x8268e500, 0x00000020, 0x8c68d50a, + 0x040207cc, 0x4070d000, 0x4070d800, 0x0201f800, + 0x0010b193, 0x5934da00, 0x0401f7c6, 0x8c68d50a, + 0x0402078e, 0x80817040, 0x04020014, 0x0401f7bd, + 0x4200d000, 0x000007d0, 0x4200d800, 0x00110987, + 0x0201f800, 0x00106634, 0x0201f800, 0x00101e2e, + 0x0401f7b2, 0x0201f800, 0x00106e2e, 0x0401f7cd, + 0x4200d000, 0x000000a0, 0x40c4d800, 0x4134e000, 0x0201f800, 0x0010032b, 0x58a24801, 0x58a24000, 0x40866000, 0x408a6800, 0x408e8800, 0x40927800, 0x4094b000, 0x589d3006, 0x589d2805, 0x589d2004, 0x589d1803, 0x589d1002, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000009, 0x589d4000, 0x809d3800, - 0x1c01f000, 0x497bc856, 0x0201f800, 0x00104fbf, - 0x80c589c0, 0x0402004f, 0x59a8d015, 0x8c68d504, - 0x04000028, 0x8d0e1d20, 0x0400001c, 0x4200b000, - 0x000007f0, 0x417a8800, 0x0401f004, 0x81468800, - 0x8058b040, 0x04000015, 0x0201f800, 0x001045e2, - 0x80c589c0, 0x040007fa, 0x0201f800, 0x00104926, - 0x80c589c0, 0x040007f6, 0x59a8d00f, 0x59340002, - 0x8068d580, 0x8268d500, 0x00ffff00, 0x040207f0, - 0x5934d200, 0x8468d55a, 0x486a6a00, 0x81468800, - 0x8058b040, 0x040207ed, 0x0201f800, 0x00104865, - 0x80c589c0, 0x04000026, 0x59a8d029, 0x4200d800, - 0x00110694, 0x0201f800, 0x0010642f, 0x0401f04d, - 0x59a8d21b, 0x8c68d506, 0x040007d7, 0x0201f800, - 0x0010bd9f, 0x4200d000, 0x0010bdc7, 0x586a4800, - 0x42028800, 0x000007fe, 0x0401f012, 0x5924d009, + 0x1c01f000, 0x497bc856, 0x0201f800, 0x001050f0, + 0x80c589c0, 0x04020054, 0x59a8d015, 0x8c68d504, + 0x04020004, 0x59a8d21b, 0x8c68d506, 0x0402002b, + 0x8d0e1d20, 0x04020004, 0x59a8d006, 0x8c68d51c, + 0x0400001c, 0x4200b000, 0x000007f0, 0x417a8800, + 0x0401f004, 0x81468800, 0x8058b040, 0x04000015, + 0x0201f800, 0x001046de, 0x80c589c0, 0x040007fa, + 0x0201f800, 0x00104a28, 0x80c589c0, 0x040007f6, + 0x59a8d00f, 0x59340002, 0x8068d580, 0x8268d500, + 0x00ffff00, 0x040207f0, 0x5934d200, 0x8468d55a, + 0x486a6a00, 0x81468800, 0x8058b040, 0x040207ed, + 0x0201f800, 0x00104965, 0x80c589c0, 0x04000022, + 0x59a8d029, 0x4200d800, 0x00110987, 0x0201f800, + 0x00106634, 0x0401f04b, 0x0201f800, 0x0010c0ca, + 0x4200d000, 0x0010c10d, 0x586a4800, 0x42028800, + 0x000007fe, 0x8058b1c0, 0x040007ce, 0x5924d009, 0x41440000, 0x8068d400, 0x8268d480, 0x000007f0, 0x586a6800, 0x813669c0, 0x04000007, 0x5924d200, 0x8268d500, 0x00000003, 0x82697480, 0x00000003, 0x0400002c, 0x8058b040, 0x83264c00, 0x0000000b, - 0x8058b1c0, 0x040207ee, 0x0401f7bb, 0x8d0e1d20, - 0x040007df, 0x4200d000, 0x000007d0, 0x0401f7d8, - 0x0201f800, 0x0010bd9f, 0x4200d000, 0x0010bdc7, - 0x586a4800, 0x42028800, 0x000007fe, 0x8058b1c0, - 0x040007ad, 0x41440000, 0x0401f005, 0x83264c00, - 0x0000000b, 0x8058b040, 0x040007a7, 0x5924d009, + 0x0401f7ed, 0x8d0e1d20, 0x04020004, 0x59a8d006, + 0x8c68d51c, 0x040007e0, 0x4200d000, 0x000007d0, + 0x0401f7d9, 0x0201f800, 0x0010c0ca, 0x4200d000, + 0x0010c10d, 0x586a4800, 0x42028800, 0x000007fe, + 0x8058b1c0, 0x040007ab, 0x41440000, 0x5924d009, 0x8068d400, 0x8268d480, 0x000007f0, 0x586a6800, - 0x813669c0, 0x040007f6, 0x5924d200, 0x8268d500, - 0x00000003, 0x82697480, 0x00000003, 0x040207f0, - 0x5934d200, 0x8468d51a, 0x486a6a00, 0x0401f7ec, - 0x0201f800, 0x00104926, 0x80c589c0, 0x040007d2, + 0x813669c0, 0x0400000a, 0x5924d200, 0x8268d500, + 0x00000003, 0x82697480, 0x00000003, 0x04020004, + 0x5934d200, 0x8468d51a, 0x486a6a00, 0x83264c00, + 0x0000000b, 0x8058b040, 0x040207ed, 0x0401f795, + 0x0201f800, 0x00104a28, 0x80c589c0, 0x040007d2, 0x5934d200, 0x8468d55a, 0x486a6a00, 0x0401f7ce, 0x1c01f000, 0x829d3c80, 0x00000004, 0x48813800, 0x48853801, 0x48893802, 0x488d3803, 0x40691000, 0x406d1800, 0x40710800, 0x41790000, 0x4880e000, 0x83457480, 0x000007ff, 0x83f17500, 0x03000000, 0x0400004e, 0x4880e002, 0x4944e001, 0x4144f000, - 0x4200d800, 0x0010bf80, 0x4200b000, 0x000007f0, + 0x4200d800, 0x0010c280, 0x4200b000, 0x000007f0, 0x83457480, 0x000007ef, 0x04000040, 0x0400103f, 0x4200b000, 0x00000010, 0x8344f480, 0x000007f0, 0x5924d809, 0x8058b1c0, 0x04000017, 0x40780000, @@ -28933,7 +29195,7 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x0400004f, 0x0400104e, 0x82697480, 0x00000800, 0x04000032, 0x48690801, 0x8058b040, 0x8058b1c0, 0x040207eb, 0x5884d802, 0x806cd9c0, 0x04000088, - 0x412d0000, 0x4088d000, 0x0201f800, 0x00104526, + 0x412d0000, 0x4088d000, 0x0201f800, 0x00104622, 0x4947c857, 0x4937c857, 0x40825800, 0x813669c0, 0x0400008f, 0x497a6a12, 0x59a8d21b, 0x8c68d50a, 0x0402000a, 0x8288dd00, 0x00ffff00, 0x04000073, @@ -28951,7 +29213,7 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x48b90803, 0x4947c857, 0x58857003, 0x48bbc857, 0x4a010800, 0x0000001b, 0x0401f058, 0x82697480, 0x000007f0, 0x040207b4, 0x49790801, 0x4200d800, - 0x0010bf80, 0x0401f7e3, 0x49450802, 0x83457480, + 0x0010c280, 0x0401f7e3, 0x49450802, 0x83457480, 0x000007ef, 0x0400001a, 0x04001019, 0x59a8d21b, 0x8c68d50a, 0x0400003c, 0x83457480, 0x000007fe, 0x0400004c, 0x5924d200, 0x8268d500, 0x00000220, @@ -28967,7 +29229,7 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x4947c857, 0x4873c857, 0x488fc857, 0x4a010800, 0x0000001a, 0x0401f019, 0x8288d500, 0x000000ff, 0x8068d0d0, 0x486a6a12, 0x0401f790, 0x4200d000, - 0x000003f1, 0x4084e000, 0x0201f800, 0x0010032b, + 0x0000044d, 0x4084e000, 0x0201f800, 0x0010032b, 0x0401f774, 0x5924d200, 0x8268e500, 0x00000020, 0x8c68d50a, 0x040207c8, 0x4947c857, 0x4a010800, 0x0000001f, 0x4070d000, 0x0401f02a, 0x4947c857, @@ -28976,72 +29238,72 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x82897480, 0x00fffffe, 0x04020017, 0x42010000, 0x00000001, 0x0401f7b4, 0x82897480, 0x00fffffc, 0x040007bf, 0x0401f779, 0x407e6800, 0x8c8d1d08, - 0x0400076f, 0x0201f800, 0x00104846, 0x80c589c0, + 0x0400076f, 0x0201f800, 0x00104946, 0x80c589c0, 0x0400076b, 0x4947c857, 0x4a010800, 0x0000001d, 0x0401f7e6, 0x4947c857, 0x4a010800, 0x0000001f, 0x0401f008, 0x4947c857, 0x488bc857, 0x58857001, 0x48bbc857, 0x4a010800, 0x00000019, 0x4070d000, 0x40698800, 0x589d1803, 0x589d1002, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000004, 0x1c01f000, - 0x4200d000, 0x00000080, 0x0201f800, 0x0010155b, - 0x0201f800, 0x0010646c, 0x59c4d0a3, 0x8468d506, - 0x486b88a3, 0x0201f800, 0x00104fcc, 0x80c589c0, - 0x04020005, 0x0201f800, 0x00104fea, 0x80c589c0, + 0x4200d000, 0x00000080, 0x0201f800, 0x0010155c, + 0x0201f800, 0x00106671, 0x59c4d0a3, 0x8468d506, + 0x486b88a3, 0x0201f800, 0x001050fd, 0x80c589c0, + 0x04020005, 0x0201f800, 0x0010511b, 0x80c589c0, 0x0400006c, 0x59c4d0a3, 0x8268d500, 0xbe7fffff, 0x486b88a3, 0x4200d000, 0x000000f8, 0x0201f800, - 0x00104106, 0x59c4d0a3, 0x8268d540, 0x00018000, + 0x001041ff, 0x59c4d0a3, 0x8268d540, 0x00018000, 0x8468d51c, 0x486b88a3, 0x59c4d0a3, 0x8468d520, 0x486b88a3, 0x497b8808, 0x59c4d006, 0x8268d500, 0xfbffff0e, 0x486b8806, 0x497b282c, 0x497b282d, - 0x4200d000, 0x000001f4, 0x4200d800, 0x00110a9f, - 0x0201f800, 0x001062ea, 0x4a038805, 0x00000001, - 0x0201f800, 0x0010161e, 0x80c589c0, 0x04020023, - 0x0201f800, 0x0010162c, 0x80c589c0, 0x04000035, - 0x4178d000, 0x0201f800, 0x001018a1, 0x4178d000, - 0x0201f800, 0x00101827, 0x0201f800, 0x00101925, - 0x4a035038, 0x00000001, 0x0201f800, 0x00104fcc, + 0x4200d000, 0x000001f4, 0x4200d800, 0x00110d9f, + 0x0201f800, 0x001064ef, 0x4a038805, 0x00000001, + 0x0201f800, 0x00101623, 0x80c589c0, 0x04020023, + 0x0201f800, 0x00101631, 0x80c589c0, 0x04000035, + 0x4178d000, 0x0201f800, 0x001018a6, 0x4178d000, + 0x0201f800, 0x0010182c, 0x0201f800, 0x0010192a, + 0x4a035038, 0x00000001, 0x0201f800, 0x001050fd, 0x80c589c0, 0x04000018, 0x59c4d0a4, 0x8268d500, 0x0000000f, 0x82697480, 0x00000008, 0x04000003, 0x4a038805, 0x04000000, 0x59c4d0a3, 0x8268d540, 0x0001c000, 0x486b88a3, 0x59c4d0a3, 0x8468d520, 0x486b88a3, 0x0401f050, 0x4200d000, 0x00000001, - 0x0201f800, 0x001018a1, 0x4200d000, 0x00000001, - 0x0401f7e0, 0x0201f800, 0x00104fea, 0x80c589c0, - 0x040207e6, 0x0201f800, 0x00104fdb, 0x4200d000, - 0x000001a1, 0x80c589c0, 0x04020033, 0x599cd818, + 0x0201f800, 0x001018a6, 0x4200d000, 0x00000001, + 0x0401f7e0, 0x0201f800, 0x0010511b, 0x80c589c0, + 0x040207e6, 0x0201f800, 0x0010510c, 0x4200d000, + 0x000001a9, 0x80c589c0, 0x04020033, 0x599cd818, 0x40c4e000, 0x0201f800, 0x0010032b, 0x0401f03a, - 0x0201f800, 0x0010163a, 0x80c589c0, 0x04020023, - 0x0201f800, 0x00101648, 0x80c589c0, 0x0400002e, + 0x0201f800, 0x0010163f, 0x80c589c0, 0x04020023, + 0x0201f800, 0x0010164d, 0x80c589c0, 0x0400002e, 0x59a8d043, 0x8068d1c0, 0x040007c8, 0x0201f800, - 0x00101655, 0x4a035038, 0x00000001, 0x0401f02a, - 0x0201f800, 0x00104fdb, 0x80c589c0, 0x0400001f, + 0x0010165a, 0x4a035038, 0x00000001, 0x0401f02a, + 0x0201f800, 0x0010510c, 0x80c589c0, 0x0400001f, 0x59c4d0a3, 0x8468d570, 0x8468d532, 0x486b88a3, 0x59a8d078, 0x82697480, 0x00000000, 0x83f17500, 0x0c000000, 0x04000004, 0x82b97580, 0x0c000000, - 0x04020796, 0x0201f800, 0x0010540b, 0x4a038808, + 0x04020796, 0x0201f800, 0x0010553c, 0x4a038808, 0x00000008, 0x0401f791, 0x4200d000, 0x00000002, - 0x0201f800, 0x001018a1, 0x4200d000, 0x00000002, + 0x0201f800, 0x001018a6, 0x4200d000, 0x00000002, 0x0401f7a4, 0x4a035014, 0x00000001, 0x0201f800, - 0x00104f20, 0x0401f008, 0x4200d000, 0x0000014e, - 0x0401f7c7, 0x4200d000, 0x00000182, 0x59a8d837, + 0x00105051, 0x0401f008, 0x4200d000, 0x00000156, + 0x0401f7c7, 0x4200d000, 0x0000018a, 0x59a8d837, 0x0401f7c4, 0x1c01f000, 0x5994d02c, 0x8068d1c0, 0x04020006, 0x5994d02d, 0x4200d800, 0x00000001, 0x8068d1c0, 0x04000002, 0x4178d800, 0x406d8800, - 0x1c01f000, 0x0201f800, 0x0010181b, 0x4a035038, + 0x1c01f000, 0x0201f800, 0x00101820, 0x4a035038, 0x00000002, 0x497b5043, 0x59c4d0a3, 0x8468d520, - 0x486b88a3, 0x0201f800, 0x00104fdb, 0x80c589c0, + 0x486b88a3, 0x0201f800, 0x0010510c, 0x80c589c0, 0x04000002, 0x0401f009, 0x48c7282c, 0x48c7282d, - 0x4200d000, 0x0000002d, 0x4200d800, 0x00110a9f, - 0x0201f800, 0x001062ea, 0x1c01f000, 0x0401ffdf, + 0x4200d000, 0x0000002d, 0x4200d800, 0x00110d9f, + 0x0201f800, 0x001064ef, 0x1c01f000, 0x0401ffdf, 0x80c589c0, 0x04000004, 0x4a035038, 0x00000003, - 0x0401f01f, 0x0201f800, 0x00101648, 0x80c589c0, + 0x0401f01f, 0x0201f800, 0x0010164d, 0x80c589c0, 0x04000004, 0x59a8d043, 0x8068d1c0, 0x04020008, - 0x0201f800, 0x001018ec, 0x80c589c0, 0x04020002, + 0x0201f800, 0x001018f1, 0x80c589c0, 0x04020002, 0x0401f013, 0x0401ffd8, 0x0401f011, 0x0201f800, - 0x00101655, 0x59a8d042, 0x8c68d51e, 0x040007f9, - 0x0201f800, 0x00104fdb, 0x80c589c0, 0x04020003, + 0x0010165a, 0x59a8d042, 0x8c68d51e, 0x040007f9, + 0x0201f800, 0x0010510c, 0x80c589c0, 0x04020003, 0x0401ffcd, 0x0401f006, 0x4a035014, 0x00000001, - 0x0201f800, 0x00104f20, 0x0401f7fa, 0x1c01f000, + 0x0201f800, 0x00105051, 0x0401f7fa, 0x1c01f000, 0x4202d800, 0x00000001, 0x497b5038, 0x4a038805, 0x00000001, 0x497b282c, 0x497b282d, 0x497b8885, 0x1c01f000, 0x59a8d078, 0x82697480, 0x00000000, @@ -29050,7 +29312,7 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x000000c0, 0x04020005, 0x486b8885, 0x0401f008, 0x8468d506, 0x486b5078, 0x59c4d006, 0x8268d540, 0x000000f1, 0x486b8806, 0x0401ffe2, 0x1c01f000, - 0x0201f800, 0x00104fea, 0x80c589c0, 0x04000005, + 0x0201f800, 0x0010511b, 0x80c589c0, 0x04000005, 0x59a8d013, 0x82697480, 0x0000aaaa, 0x0400000c, 0x497b5013, 0x59c4d006, 0x8268d540, 0x04000001, 0x486b8806, 0x8d0e1d06, 0x04020008, 0x59c4d0a3, @@ -29059,24 +29321,24 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x809d3840, 0x48813800, 0x0401ff80, 0x80c589c0, 0x04000005, 0x4a035038, 0x00000003, 0x497b8885, 0x0401f03e, 0x4a038805, 0x000000f0, 0x0201f800, - 0x001018ec, 0x80c589c0, 0x0400002d, 0x0201f800, - 0x00104fdb, 0x80c589c0, 0x04020033, 0x59c4d0a4, + 0x001018f1, 0x80c589c0, 0x0400002d, 0x0201f800, + 0x0010510c, 0x80c589c0, 0x04020033, 0x59c4d0a4, 0x8268d500, 0x0000000f, 0x82697480, 0x00000008, 0x0400002b, 0x59c4d005, 0x82690500, 0x04000000, 0x8c68d534, 0x04020026, 0x5994d02c, 0x82697480, 0x00000002, 0x83f17500, 0x03000000, 0x040007e4, - 0x0201f800, 0x00104fea, 0x80c589c0, 0x040007e0, - 0x4a038805, 0x000000f0, 0x0201f800, 0x0010502f, + 0x0201f800, 0x0010511b, 0x80c589c0, 0x040007e0, + 0x4a038805, 0x000000f0, 0x0201f800, 0x00105160, 0x4a035013, 0x0000aaaa, 0x48835014, 0x59c4d0a3, 0x8468d546, 0x486b88a3, 0x4202d800, 0x00000001, 0x48835038, 0x4a038805, 0x00000001, 0x4883282c, 0x4883282d, 0x0401ff98, 0x0401f7cd, 0x0201f800, - 0x00101648, 0x80c589c0, 0x040007c9, 0x59a8d043, + 0x0010164d, 0x80c589c0, 0x040007c9, 0x59a8d043, 0x8068d1c0, 0x040007c6, 0x0401f7c3, 0x0401ffa5, 0x0401f7c3, 0x0401ff8c, 0x589d0000, 0x809d3800, 0x1c01f000, 0x497bc856, 0x4200d000, 0x00000080, - 0x0201f800, 0x0010155b, 0x497b5038, 0x0201f800, - 0x00101648, 0x80c589c0, 0x0400000e, 0x59a8d036, + 0x0201f800, 0x0010155c, 0x497b5038, 0x0201f800, + 0x0010164d, 0x80c589c0, 0x0400000e, 0x59a8d036, 0x8068d1c0, 0x04020008, 0x8068d1c0, 0x04020009, 0x4a035036, 0x0000000a, 0x4a035043, 0x00000001, 0x0401f004, 0x8068d040, 0x486b5036, 0x0401f7f7, @@ -29084,1165 +29346,1177 @@ static const uint32_t isp_2400_multi_risc_code[] = { 0x59a8d878, 0x826d7480, 0x00000000, 0x83f17500, 0x0c000000, 0x04000004, 0x82b97580, 0x0c000000, 0x04020011, 0x4200e000, 0x00000003, 0x59a80038, - 0x80717480, 0x04001006, 0x0c01f001, 0x00110a99, - 0x00110a9b, 0x00110a9d, 0x00110a97, 0x4200d000, - 0x000000c3, 0x4000d800, 0x0201f800, 0x0010032b, + 0x80717480, 0x04001006, 0x0c01f001, 0x00110d99, + 0x00110d9b, 0x00110d9d, 0x00110d97, 0x4200d000, + 0x000000cb, 0x4000d800, 0x0201f800, 0x0010032b, 0x0401f019, 0x826cd500, 0x00000008, 0x8c6cdd06, 0x040207ed, 0x4202d800, 0x00000001, 0x486b5038, 0x486b282c, 0x486b282d, 0x59a8d078, 0x8468d506, 0x486b5078, 0x4a035014, 0x00000001, 0x0201f800, - 0x00104f20, 0x0401f008, 0x0401ffbb, 0x0401f006, + 0x00105051, 0x0401f008, 0x0401ffbb, 0x0401f006, 0x0401fe4c, 0x0401f004, 0x0401ff11, 0x0401f002, 0x0401ff6c, 0x1c01f000, 0x497b282d, 0x1c01f000, 0x809d3840, 0x48813800, 0x59a8d017, 0x82697480, - 0x0000ffff, 0x04000004, 0x0201f800, 0x00101df2, - 0x0401f0c3, 0x59a8da1b, 0x826cd500, 0x00000028, - 0x04000032, 0x8c6cdd00, 0x04000030, 0x4a038802, - 0x0000ffbf, 0x59a8da1b, 0x8c6cdd02, 0x0400002b, + 0x0000ffff, 0x04000004, 0x0201f800, 0x00101e2e, + 0x0401f0ea, 0x0201f800, 0x0010c0e1, 0x80c57040, + 0x04000098, 0x59a8da1b, 0x826cd500, 0x00000028, + 0x04020045, 0x8c6cdd08, 0x0400006b, 0x599cd019, + 0x8c68d510, 0x04020003, 0x8c6cdd16, 0x04000082, + 0x0201f800, 0x00104965, 0x80c589c0, 0x04020039, + 0x599cd019, 0x8c68d510, 0x04000063, 0x59a8d21b, + 0x8c68d508, 0x04000060, 0x4a038802, 0x0000ffff, + 0x4200d000, 0x0010cb46, 0x0201f800, 0x00100532, + 0x4200d000, 0x0010cb53, 0x0201f800, 0x00100532, + 0x850e1d02, 0x4a0378e4, 0x00000080, 0x4202d800, + 0x00000003, 0x4a035017, 0x0000ffff, 0x0201f800, + 0x00100430, 0x4178d000, 0x0201f800, 0x0010155c, + 0x59a8d21b, 0x8c68d506, 0x04000094, 0x599cd018, + 0x8268dd00, 0x00000800, 0x8c68d516, 0x0402008c, + 0x599cd019, 0x8c68d510, 0x04000004, 0x59a8d21b, + 0x8c68d508, 0x04020090, 0x417a4000, 0x4200d000, + 0x0000ffff, 0x4200d800, 0x00000006, 0x4120e000, + 0x0201f800, 0x00103a1e, 0x0201f800, 0x0010511b, + 0x80c589c0, 0x04000049, 0x0201f800, 0x001071f9, + 0x0401f09e, 0x8c6cdd00, 0x040007bb, 0x4a038802, + 0x0000ffbf, 0x59a8da1b, 0x8c6cdd02, 0x040007b6, 0x599ce018, 0x82710500, 0x00000800, 0x8c70e516, - 0x0402001d, 0x59a8d01c, 0x82697480, 0x0000ffff, - 0x04000019, 0x8c6cdd0a, 0x040200a2, 0x42024800, - 0x0010ccd1, 0x40824000, 0x5924d200, 0x8268d500, - 0x000000e0, 0x82697480, 0x000000e0, 0x04020058, - 0x0201f800, 0x00101c4e, 0x59a8d21b, 0x8268dd00, - 0x00000004, 0x8c68d504, 0x04020051, 0x406e5800, - 0x4200d000, 0x00000003, 0x0201f800, 0x00101c7d, - 0x0401f097, 0x8c70e516, 0x04020005, 0x59a8d01c, - 0x82697480, 0x0000ffff, 0x04000089, 0x59a8d01d, - 0x8068d1c0, 0x04020042, 0x8c6cdd08, 0x04000041, - 0x599cd019, 0x8c68d510, 0x04000042, 0x0201f800, - 0x00104865, 0x80c589c0, 0x04020039, 0x599cd019, - 0x8c68d510, 0x0400003e, 0x59a8d21b, 0x8c68d508, - 0x0400003b, 0x4a038802, 0x0000ffff, 0x4200d000, - 0x0010c846, 0x0201f800, 0x00100532, 0x4200d000, - 0x0010c853, 0x0201f800, 0x00100532, 0x850e1d02, - 0x4a0378e4, 0x00000080, 0x4202d800, 0x00000003, - 0x4a035017, 0x0000ffff, 0x0201f800, 0x00100430, - 0x4178d000, 0x0201f800, 0x0010155b, 0x59a8d21b, - 0x8c68d506, 0x04000046, 0x599cd018, 0x8268dd00, - 0x00000800, 0x8c68d516, 0x04020048, 0x599cd019, - 0x8c68d510, 0x04000004, 0x59a8d21b, 0x8c68d508, - 0x0402004a, 0x417a4000, 0x4200d000, 0x0000ffff, - 0x4200d800, 0x00000006, 0x4120e000, 0x0201f800, - 0x0010392e, 0x0201f800, 0x00104fea, 0x80c589c0, - 0x04000020, 0x0201f800, 0x00106ff4, 0x0401f04c, - 0x59a8d016, 0x8068d1c0, 0x040007c1, 0x0401f048, - 0x8c6cdd16, 0x040207be, 0x0401f045, 0x599cd018, - 0x8c68d516, 0x0400001d, 0x599cd017, 0x8c68d50a, - 0x040007c1, 0x4200b000, 0x000007f0, 0x417a8800, - 0x0401f004, 0x81468800, 0x8058b040, 0x040007ba, - 0x0201f800, 0x001045e2, 0x80c589c0, 0x040007fa, - 0x5934d200, 0x8c68d51a, 0x040007f7, 0x0401f030, - 0x0201f800, 0x00104fbf, 0x80c589c0, 0x04000016, - 0x59c4d006, 0x8468d534, 0x486b8806, 0x0201f800, - 0x00106ff4, 0x0401f7da, 0x0201f800, 0x00104bf4, - 0x80c589c0, 0x040007e1, 0x0401f021, 0x0201f800, - 0x00104fbf, 0x80c589c0, 0x040207b8, 0x59a8d21b, - 0x486b541b, 0x0401f7b5, 0x0201f800, 0x0010399f, - 0x0401f7c5, 0x59c4d006, 0x8268d500, 0xffffff0f, - 0x486b8806, 0x0401f7ea, 0x406e4000, 0x4200d000, - 0x000007fe, 0x4200d800, 0x00000004, 0x0401f7b7, - 0x0201f800, 0x00101f00, 0x0401f75d, 0x8c6cdd04, - 0x04020777, 0x826cd500, 0x00004000, 0x8c6cdd1c, - 0x04020773, 0x406a5800, 0x0401f766, 0x589d0000, - 0x809d3800, 0x1c01f000, 0x59c4d00d, 0x8c68d51e, - 0x04020004, 0x59c4d005, 0x8c68d500, 0x0400000c, - 0x0201f800, 0x00100448, 0x0201f800, 0x00104fbf, - 0x80c589c0, 0x0400000f, 0x0201f800, 0x00104f20, - 0x816d7040, 0x040000a6, 0x0401f12f, 0x4a035043, - 0x00000001, 0x4202d800, 0x00000004, 0x4200d000, - 0x0010cc8d, 0x0201f800, 0x0010bc87, 0x0401f126, - 0x0201f800, 0x00104fea, 0x80c589c0, 0x0402008e, - 0x0201f800, 0x001039eb, 0x59c4d0a4, 0x8268d500, - 0x0000000f, 0x82697480, 0x00000006, 0x83f17500, - 0x03000000, 0x040007e9, 0x0201f800, 0x0010646c, - 0x59c4d0a3, 0x8468d528, 0x486b88a3, 0x59a8d060, - 0x8068d1c0, 0x040000d9, 0x59a8e075, 0x8270d500, - 0x00001f00, 0x8068d910, 0x826d7480, 0x00000002, - 0x83f17500, 0x03000000, 0x040000bd, 0x59a8d015, - 0x8468d546, 0x486b5015, 0x0201f800, 0x00104fcc, - 0x80c589c0, 0x040000bd, 0x59c4d006, 0x8268d540, - 0x44000001, 0x486b8806, 0x59c4d006, 0x8268d500, - 0xffffff0f, 0x486b8806, 0x497b9005, 0x4178d000, - 0x0201f800, 0x00104d10, 0x4a038802, 0x0000ffff, - 0x4a0378e4, 0x00003000, 0x4200d000, 0x0010c89c, - 0x5868d400, 0x8c68d508, 0x04020003, 0x4a0378e4, - 0x000c0000, 0x4200d000, 0x0010cb66, 0x0201f800, - 0x0010bc87, 0x59a8d00f, 0x4200d800, 0x00000003, - 0x0201f800, 0x00106c61, 0x4200d000, 0x00008010, - 0x59a8d809, 0x0201f800, 0x001038ba, 0x59c8d015, - 0x8468d548, 0x486b9015, 0x0201f800, 0x0010181b, - 0x59a8d008, 0x8468d500, 0x486b5008, 0x850e1d0a, - 0x0201f800, 0x00110766, 0x0201f800, 0x00104fbf, - 0x80c589c0, 0x04020003, 0x8d0e1d06, 0x040200a0, - 0x0201f800, 0x00104865, 0x80c589c0, 0x04000092, - 0x59c4d002, 0x8468d50c, 0x486b8802, 0x497b501d, - 0x497b501c, 0x497b5057, 0x0201f800, 0x00104fbf, - 0x80c589c0, 0x0400007d, 0x497b521b, 0x0201f800, - 0x00101603, 0x59a8d01f, 0x82680500, 0xffff0000, - 0x80c4d540, 0x486b501f, 0x599cd017, 0x8c68d50a, - 0x04000004, 0x59a8d21b, 0x8468d544, 0x486b521b, - 0x4200d000, 0x00000005, 0x0201f800, 0x001072bb, - 0x497b501d, 0x497b5016, 0x4a035017, 0x0000ffff, - 0x4a0378e4, 0x080000c0, 0x4202d800, 0x00000002, - 0x0201f800, 0x00104fbf, 0x80c589c0, 0x04020007, - 0x59a8d21b, 0x8268d500, 0x0000000c, 0x82697480, - 0x00000004, 0x04000769, 0x0201f800, 0x00101df2, - 0x0401f095, 0x5994d02d, 0x42000000, 0x001040f1, - 0x80697480, 0x04000042, 0x59c4d006, 0x8268d540, - 0x000000c0, 0x486b8806, 0x0401f76a, 0x59a8d011, - 0x82697480, 0x00000009, 0x04020758, 0x497b500f, - 0x0201f800, 0x0010bd9f, 0x42024800, 0x0010ccd1, - 0x497a4805, 0x0401f00a, 0x5924d200, 0x8c68d500, - 0x04000004, 0x8268d500, 0xfffff815, 0x486a4a00, - 0x83264c00, 0x0000000b, 0x8058b040, 0x8058b1c0, - 0x040207f6, 0x4a038805, 0x000000f0, 0x0201f800, - 0x00104fdb, 0x80c589c0, 0x0400004b, 0x59c4d006, - 0x8268d540, 0x000000f1, 0x486b8806, 0x59c4d006, - 0x8268d500, 0xbbffffff, 0x486b8806, 0x0201f800, - 0x0010646c, 0x0201f800, 0x00106c6c, 0x59a8d878, - 0x826d7480, 0x00000000, 0x83f17500, 0x0c000000, - 0x04000004, 0x82b97580, 0x0c000000, 0x0402004d, - 0x4a038893, 0x00000001, 0x4200d000, 0x0010cb6f, - 0x0201f800, 0x0010bc87, 0x497b5056, 0x4200d000, - 0x00008030, 0x4178d800, 0x0401f773, 0x5994d02c, - 0x8068d1c0, 0x0402072b, 0x0401f7bc, 0x806cd840, - 0x8270d500, 0x00ff0000, 0x806c00d0, 0x8068d540, - 0x486b9035, 0x0401f73e, 0x59c4d006, 0x8268d540, - 0x440000f1, 0x0401f748, 0x59a8d01f, 0x8268d500, - 0xffff0000, 0x486b501f, 0x0201f800, 0x00101603, - 0x48c78880, 0x0401f785, 0x0201f800, 0x0010402d, - 0x0401f035, 0x0201f800, 0x00104fbf, 0x80c589c0, - 0x04000011, 0x59a8d018, 0x8068d1c0, 0x0402076c, - 0x0201f800, 0x001099aa, 0x0401f769, 0x4a035056, - 0x00000001, 0x850e1d0e, 0x0201f800, 0x00103b46, - 0x0401f025, 0x59c4d006, 0x8268d540, 0x440000f1, - 0x0401f7ba, 0x0201f800, 0x001099aa, 0x59a8d21b, - 0x8c68d506, 0x0402075a, 0x59a8d018, 0x8068d1c0, - 0x04020007, 0x59a8d41b, 0x8c68d508, 0x04000754, - 0x82697480, 0x0000ffff, 0x04000751, 0x4a03541b, - 0x0000ffff, 0x0201f800, 0x00104162, 0x0401f74c, - 0x59aa6879, 0x5934d400, 0x82697480, 0x00000404, - 0x04020007, 0x8c6cdd0c, 0x040006d8, 0x826cd500, - 0x00000003, 0x040007ad, 0x0401f003, 0x0201f800, - 0x0010b551, 0x1c01f000, 0x809d3840, 0x48a13800, - 0x829d3c80, 0x00000005, 0x409d4000, 0x829d3c80, - 0x00000007, 0x48813800, 0x48853801, 0x48893802, - 0x488d3803, 0x48913804, 0x48953805, 0x48993806, - 0x4200e000, 0x00000001, 0x48714000, 0x4178e000, - 0x48714003, 0x48714004, 0x48594001, 0x49214002, - 0x82691d00, 0x00ffffff, 0x826d3500, 0x00ffffff, - 0x828cd500, 0x00ff0000, 0x82697480, 0x00ff0000, - 0x0400005e, 0x41792800, 0x4200b000, 0x000007f0, - 0x41ad0800, 0x40951000, 0x828d2500, 0x00ffff00, - 0x0401f00f, 0x809121c0, 0x04000032, 0x59a8d00f, - 0x8268d500, 0x00ffff00, 0x40900000, 0x80697480, - 0x0400002c, 0x4178e000, 0x48714004, 0x80850800, - 0x80891000, 0x8058b040, 0x04000021, 0x58850000, - 0x808101c0, 0x04000036, 0x5880d212, 0x8268d500, - 0x0000ff00, 0x040207ec, 0x5880d002, 0x8268d500, - 0x00ffffff, 0x408c0000, 0x80697480, 0x040207f0, - 0x4098d000, 0x0201f800, 0x00101f65, 0x5880d813, - 0x806cd130, 0x41200000, 0x80697480, 0x040207e8, - 0x4200e000, 0x00000001, 0x48714004, 0x5924d005, - 0x826c0500, 0x00ffffff, 0x80697480, 0x04000004, - 0x812000f0, 0x8068d540, 0x48690013, 0x58a0d004, - 0x8068d1c0, 0x04000020, 0x408a8800, 0x0401f048, - 0x5880d002, 0x8268d500, 0x000000ff, 0x828c0500, - 0x000000ff, 0x80697480, 0x040207d1, 0x4098d000, - 0x0201f800, 0x00101f65, 0x5880d813, 0x806cd130, - 0x41200000, 0x80697480, 0x040207c9, 0x4200d000, - 0x00000001, 0x48694004, 0x0401f7e1, 0x809529c0, - 0x040207c3, 0x58a0e003, 0x8070e1c0, 0x040207c0, - 0x40892800, 0x4200d000, 0x00000001, 0x48694003, - 0x0401f7bb, 0x58a0e003, 0x8070e1c0, 0x04000018, - 0x40968800, 0x0401f026, 0x828d7480, 0x00fffffb, - 0x040007a1, 0x040017a0, 0x828d7480, 0x00ffffff, - 0x0400079d, 0x828d7480, 0x00fffffd, 0x0400001a, - 0x828d7480, 0x00fffffd, 0x83f17500, 0x03000000, - 0x0400000c, 0x828d7480, 0x00fffffc, 0x0400000f, - 0x4178d000, 0x48694000, 0x0401f011, 0x488fc857, - 0x489bc857, 0x58a0d003, 0x48694000, 0x0401f00c, - 0x828d7480, 0x00fffffe, 0x040207f6, 0x42028800, - 0x000007fe, 0x0401f006, 0x42028800, 0x000007fc, - 0x0401f003, 0x42028800, 0x000007fd, 0x58a24002, - 0x58a0b001, 0x58a18800, 0x589d3006, 0x589d2805, - 0x589d2004, 0x589d1803, 0x589d1002, 0x589d0801, - 0x589d0000, 0x829d3c00, 0x0000000c, 0x589d4000, - 0x809d3800, 0x1c01f000, 0x486bc857, 0x0401ff4f, - 0x1c01f000, 0x00000000, 0x00000001, 0x00000002, - 0x00000003, 0x00000004, 0x00000005, 0x00000006, - 0x00000007, 0x00000008, 0x00000009, 0x0000000a, - 0x0000000b, 0x0000000c, 0x0000000d, 0x0000000e, - 0x0000000f, 0x67515372, 0x02800004, 0x00000000, - 0x0000c000, 0x000008a0, 0x073fca5a, 0x0705a5a5, - 0x01928009, 0x070ff0e1, 0x03800006, 0x04958010, - 0x05308000, 0x05008000, 0x0600902f, 0x06a00602, - 0x0202f051, 0x042e4020, 0x018f02af, 0x033e5000, - 0x03020000, 0x068d0020, 0x06930516, 0x03920518, - 0x050fb056, 0x040010e6, 0x002fb008, 0x060ff0e6, - 0x00580401, 0x054880ff, 0x0781001e, 0x038c03c6, - 0x038a03c5, 0x078b03c3, 0x048e8010, 0x0678aae5, - 0x06000051, 0x078181c9, 0x040010e6, 0x0448e0e6, - 0x04818010, 0x002fb008, 0x0448e0e6, 0x04818010, - 0x060ff0e6, 0x00580401, 0x054880ff, 0x04818010, - 0x022a5001, 0x030430d4, 0x06780043, 0x030e0000, - 0x030450ff, 0x06780043, 0x03019000, 0x03a1820a, - 0x0781873a, 0x027c0045, 0x03020000, 0x06810040, - 0x027c0045, 0x03040000, 0x04810116, 0x027c0045, - 0x03080000, 0x048107ab, 0x04908040, 0x00910738, - 0x010410a6, 0x0379ff41, 0x037fffff, 0x072d6000, - 0x07601441, 0x050f80ff, 0x032fa009, 0x07f00000, - 0x05600400, 0x050f80ff, 0x056c04ff, 0x0481075d, - 0x073fa009, 0x06000001, 0x0279ff02, 0x0700ffff, - 0x070ff0d1, 0x0179feff, 0x0700ffff, 0x045c0402, - 0x0681875d, 0x060ff0d0, 0x0179feff, 0x0700ffff, - 0x050010ff, 0x057dfeff, 0x0700ffff, 0x05810730, - 0x05602600, 0x050f80ff, 0x073fa009, 0x06000001, - 0x0079fe02, 0x0700ffff, 0x045c0401, 0x07818730, - 0x05601041, 0x050f80ff, 0x032fa069, 0x07480000, - 0x0481074f, 0x06780043, 0x070000f0, 0x07810072, - 0x037c00ff, 0x06000010, 0x07810072, 0x0180074b, - 0x0379ff00, 0x070fffff, 0x06780043, 0x07f00000, - 0x075a0000, 0x020ef001, 0x0186074d, 0x05484000, - 0x03a1822d, 0x062d6001, 0x002fb001, 0x070ff069, - 0x00868085, 0x060ff079, 0x055c0441, 0x06810010, - 0x012fb000, 0x060560fb, 0x0380008b, 0x060ff079, - 0x02868208, 0x070ff069, 0x055c0441, 0x06810010, - 0x060560fb, 0x0400d0d0, 0x062d6002, 0x0648300d, - 0x07810099, 0x070ff0d1, 0x062d6001, 0x045c040b, - 0x0781009c, 0x05488000, 0x05818099, 0x072e500c, - 0x00208001, 0x06a00607, 0x02800010, 0x062d6001, - 0x07f00000, 0x07f00000, 0x070ff0d1, 0x0179feff, - 0x070000ff, 0x055c040c, 0x0781810a, 0x0007b001, - 0x03079041, 0x0307a000, 0x06600a79, 0x050f80ff, - 0x053fa80a, 0x06000010, 0x068d00a8, 0x0307c003, - 0x0007d004, 0x0107e005, 0x0307f006, 0x02080007, - 0x00081008, 0x01082009, 0x0308300a, 0x018680bd, - 0x0448d07a, 0x058180bd, 0x0448b07a, 0x05810756, - 0x06604479, 0x050f80ff, 0x053fa809, 0x06000001, - 0x01680703, 0x076c0303, 0x07818756, 0x072d5003, - 0x0049107a, 0x068100c7, 0x070ff009, 0x0154040a, - 0x058280c6, 0x078d00c3, 0x0108200a, 0x032ff000, - 0x010770ff, 0x0008400b, 0x0308500c, 0x0678007a, - 0x04000108, 0x078100e1, 0x078d00cc, 0x06603c79, - 0x050f80ff, 0x073fa041, 0x0600004a, 0x0249007a, - 0x068100da, 0x068d00d3, 0x06602279, 0x050f80ff, - 0x032fa009, 0x07780000, 0x03800000, 0x078100e1, - 0x068d00da, 0x0678007a, 0x07f00000, 0x010880ff, - 0x02386008, 0x03010000, 0x038000e7, 0x078d00e1, - 0x0678007a, 0x07f00000, 0x010880ff, 0x03386000, - 0x03010000, 0x072e6300, 0x020ef07f, 0x02860010, - 0x070ff07d, 0x0450047c, 0x050f80ff, 0x002fa819, - 0x078d00ee, 0x02080001, 0x00081002, 0x0678007a, - 0x04000201, 0x078100fa, 0x0448807a, 0x068100f8, - 0x0379ff03, 0x070000ff, 0x0049107a, 0x02a18226, - 0x01082003, 0x068d00fb, 0x0448b07a, 0x07818103, - 0x0249007a, 0x05810106, 0x07780003, 0x03800000, - 0x05810106, 0x0338600c, 0x03010000, 0x00800108, - 0x02386004, 0x03010000, 0x072e6c00, 0x02800010, - 0x06780043, 0x070000f0, 0x04810758, 0x050020ff, - 0x027c0002, 0x06000010, 0x05810112, 0x00800758, - 0x0700c0d1, 0x0379ff0c, 0x070000ff, 0x028000a1, - 0x0204a051, 0x06780043, 0x070000f0, 0x037c00ff, - 0x06000010, 0x068181bf, 0x072d6000, 0x02948734, - 0x050fb056, 0x044880e6, 0x04818010, 0x060ff0d0, - 0x0179feff, 0x0700ffff, 0x057dfeff, 0x0700ffff, - 0x05810730, 0x0349c0e4, 0x06818173, 0x013e4000, - 0x070c0000, 0x07f00000, 0x0349c0e4, 0x06818173, - 0x070ff093, 0x045a0201, 0x070ff093, 0x045c0401, - 0x0781812e, 0x02046092, 0x04002046, 0x060ff002, - 0x045c0401, 0x0703a0ff, 0x04600202, 0x00540401, - 0x0782813c, 0x04500425, 0x070060ff, 0x0730ffff, - 0x0700000f, 0x0742000f, 0x05810200, 0x05a00718, - 0x0648a002, 0x0781813f, 0x00047089, 0x070ff047, - 0x045c0443, 0x077800ff, 0x07f00000, 0x068181fe, - 0x07780047, 0x0500e000, 0x0681871f, 0x070ff006, - 0x0086016d, 0x0179fe47, 0x0700000f, 0x010480ff, - 0x056c7048, 0x06818158, 0x007a0d4a, 0x04003801, - 0x0220f001, 0x01800165, 0x07608e48, 0x034a60ff, - 0x0700f0ff, 0x074b88ff, 0x037000ff, 0x07000600, - 0x05500448, 0x074d00ff, 0x045a044a, 0x0304a0ff, - 0x070ff00f, 0x01540406, 0x0482016d, 0x04950175, - 0x05a0024d, 0x03868178, 0x0134bfff, 0x070fffff, - 0x0104102e, 0x050fd041, 0x0080017a, 0x04950173, - 0x05a0024d, 0x00860173, 0x0202f00e, 0x052e4030, - 0x040fd02f, 0x05a002ac, 0x02800010, 0x0400e02f, - 0x042e4020, 0x0202f051, 0x0004100e, 0x0004b00e, - 0x024a6c46, 0x04500423, 0x050070ff, 0x03620024, - 0x050080ff, 0x04004046, 0x0700500f, 0x03206000, - 0x05601048, 0x0700a0ff, 0x0700900a, 0x070ff005, - 0x04500446, 0x00540425, 0x048201ab, 0x07601822, - 0x050f80ff, 0x063fa032, 0x06000002, 0x03203000, - 0x01204000, 0x03205000, 0x0120b000, 0x0320c000, - 0x05601641, 0x050f80ff, 0x043fa852, 0x06000001, - 0x070ff056, 0x056c02ff, 0x050fb0ff, 0x070560ff, - 0x03079041, 0x05601041, 0x050f80ff, 0x073fa011, - 0x0600003d, 0x06780043, 0x07f00000, 0x065a007a, - 0x010880ff, 0x04a00246, 0x048d01a4, 0x0208a04a, - 0x0108b04b, 0x02386001, 0x03010000, 0x072e6300, - 0x038000e8, 0x0500d00a, 0x05500405, 0x014a68ff, - 0x070090ff, 0x0154040a, 0x0700c0ff, 0x0600a023, - 0x0500b024, 0x02206001, 0x07601822, 0x050f80ff, - 0x063fa04a, 0x06000002, 0x07f00000, 0x07601222, - 0x050f80ff, 0x043fa819, 0x06000001, 0x0600a00d, - 0x01800190, 0x06780043, 0x070000f0, 0x050010ff, - 0x027c0001, 0x07000030, 0x04810726, 0x027c0001, - 0x06000020, 0x04810726, 0x0180074b, 0x074860ff, - 0x068181e5, 0x054880ff, 0x06810010, 0x070ff056, - 0x050fb0ff, 0x044880e5, 0x058101d4, 0x044880e6, - 0x04818010, 0x008001da, 0x056c02ff, 0x050fb0ff, - 0x070560ff, 0x072e5300, 0x044880e6, 0x04818010, - 0x072d5003, 0x06780043, 0x07f00000, 0x010880ff, - 0x058d01de, 0x03386005, 0x03010000, 0x033e6000, - 0x0700000c, 0x052e5200, 0x02800010, 0x0448e0e6, - 0x04818010, 0x002fb008, 0x0448e0e6, 0x04818010, - 0x05301fff, 0x0700000f, 0x06420001, 0x05810200, - 0x05a00718, 0x0648a002, 0x068181ec, 0x062e5080, - 0x04001089, 0x040fd002, 0x040fd001, 0x02499001, - 0x0481021f, 0x070ff0d4, 0x050fd0ff, 0x045c0401, - 0x077800ff, 0x07f00000, 0x0681821f, 0x02800010, - 0x002091fe, 0x0380060a, 0x01209200, 0x0380060a, - 0x00209202, 0x0380060a, 0x03209000, 0x0380060a, - 0x01209206, 0x0380060a, 0x00209208, 0x0380060a, - 0x06780043, 0x07009000, 0x06818215, 0x00498043, - 0x04810215, 0x0648a0e5, 0x04810216, 0x027c0045, - 0x03040000, 0x05810218, 0x075c00ff, 0x07c00000, - 0x056a02ff, 0x00800215, 0x01800214, 0x06780075, - 0x06000c07, 0x0781066c, 0x00209219, 0x070fc0ff, - 0x07a005f5, 0x070fc0ff, 0x05308000, 0x0700a000, - 0x06a00607, 0x033e5000, 0x0700000c, 0x02800010, - 0x070ff003, 0x01540477, 0x0782822b, 0x07003077, - 0x060ff051, 0x010770ff, 0x07c00000, 0x04602001, - 0x050f80ff, 0x063fa029, 0x06000008, 0x02015010, - 0x02016051, 0x00017051, 0x00011051, 0x05601c41, - 0x050f80ff, 0x053fa83a, 0x06000008, 0x07f00000, - 0x05601041, 0x050f80ff, 0x01464000, 0x032fa00a, - 0x07006011, 0x05007012, 0x04008013, 0x07009014, - 0x0600a015, 0x0400b016, 0x0700c017, 0x07c00000, - 0x072d5003, 0x04601679, 0x050f80ff, 0x048d0249, - 0x063fa051, 0x0600003e, 0x07c00000, 0x06005051, - 0x0400e02c, 0x0660060e, 0x050f80ff, 0x032fa009, - 0x0379ff00, 0x070000ff, 0x076c0000, 0x0581026f, - 0x0460580e, 0x0500e0ff, 0x034000ff, 0x01540427, - 0x05820299, 0x03400005, 0x070ff005, 0x055c0428, - 0x0481029b, 0x056c0805, 0x0681824f, 0x040f8029, - 0x053fa809, 0x07000024, 0x07f00000, 0x06600649, - 0x050f80ff, 0x032fa009, 0x0379ff00, 0x070000ff, - 0x076c0000, 0x0681824f, 0x05a0029f, 0x0400e049, - 0x00800270, 0x05a0029f, 0x072d6000, 0x0460040e, - 0x050f80ff, 0x0004d0d0, 0x0379ff4d, 0x0700ffff, - 0x0104e0d1, 0x0379ff4e, 0x0700ffff, 0x062d6002, - 0x032fa009, 0x0204f0d0, 0x064b004f, 0x07780000, - 0x07ffff00, 0x045a044f, 0x070000ff, 0x00201008, - 0x04002051, 0x06003051, 0x01204000, 0x07305000, - 0x07000060, 0x03206009, 0x05007022, 0x0460040e, - 0x050f80ff, 0x032fa042, 0x07f00000, 0x04604c0e, - 0x050f80ff, 0x053fa812, 0x06000026, 0x050010d1, - 0x0460340e, 0x050f80ff, 0x012fa80a, 0x060ff00e, - 0x055c042e, 0x0481029d, 0x07c00000, 0x0400e026, - 0x0080025b, 0x0500e02e, 0x00800270, 0x0400e051, - 0x00800298, 0x0340002d, 0x050f802b, 0x053fa80a, - 0x06000016, 0x07f00000, 0x0460580e, 0x0302c0ff, - 0x034000ff, 0x01540427, 0x058202aa, 0x07c00000, - 0x0202c026, 0x018002a9, 0x013e4000, 0x03080000, - 0x07c00000, 0x077800e4, 0x07000005, 0x058183b4, - 0x022a5002, 0x069082b3, 0x0391033c, 0x030400a6, - 0x0678aae5, 0x06000051, 0x03a1878e, 0x04600e40, - 0x050f80ff, 0x032fa021, 0x07f00000, 0x074b0000, - 0x076c0600, 0x0481833e, 0x060ff002, 0x01580403, - 0x06810349, 0x05600403, 0x050f80ff, 0x073fa009, - 0x06000002, 0x0279ff04, 0x0700ffff, 0x010440d7, - 0x0179fe44, 0x0700ffff, 0x045c0404, 0x04818340, - 0x0349f044, 0x0581834b, 0x02495001, 0x05818342, - 0x060ff079, 0x045c0440, 0x068182d6, 0x0644f07a, - 0x002fb008, 0x060ff079, 0x045c0440, 0x078182db, - 0x0644f07a, 0x002fb008, 0x0648f001, 0x05818333, - 0x04601040, 0x050f80ff, 0x06480001, 0x058102fa, - 0x0448e001, 0x0681031f, 0x02460001, 0x0644f001, - 0x012fa80a, 0x04008040, 0x00491001, 0x04818337, - 0x07a00614, 0x00868337, 0x070050d8, 0x05780105, - 0x07ffff00, 0x04600e02, 0x050f80ff, 0x053fa812, - 0x06000002, 0x06a005fe, 0x062da001, 0x013e4000, - 0x06000080, 0x06930013, 0x02920013, 0x02800010, - 0x0644f001, 0x012fa80a, 0x020ef002, 0x03860321, - 0x04600840, 0x050f80ff, 0x053fa809, 0x06000002, - 0x05780105, 0x00800440, 0x017c0105, 0x05000400, - 0x05818321, 0x04602002, 0x050f80ff, 0x053fa809, - 0x06000002, 0x07f00000, 0x04602c40, 0x050f80ff, - 0x070ff005, 0x053fa809, 0x06000002, 0x055c0405, - 0x05818321, 0x070050d8, 0x05780105, 0x07ffff00, - 0x06006051, 0x04600e02, 0x050f80ff, 0x053fa812, - 0x06000002, 0x04008040, 0x0045e008, 0x06a005fe, - 0x008002f4, 0x0644f001, 0x012fa80a, 0x050020d8, - 0x04600440, 0x050f80ff, 0x073fa00a, 0x06000001, - 0x06480001, 0x0581832d, 0x05308000, 0x03040000, - 0x06009040, 0x06a00602, 0x008002f4, 0x05a0078e, - 0x03200003, 0x06600c40, 0x050f80ff, 0x032fa00a, - 0x008002f4, 0x013e4000, 0x06000080, 0x03209333, - 0x0380060a, 0x06009008, 0x05308000, 0x05004000, - 0x06a00602, 0x008002f4, 0x02209002, 0x038003a5, - 0x03209000, 0x038003a5, 0x02209004, 0x038003a5, - 0x07a003bd, 0x062da001, 0x05308000, 0x05002000, - 0x06009040, 0x06a00602, 0x018002f5, 0x02209008, - 0x038003a5, 0x013e4000, 0x06000080, 0x02495001, - 0x0481839b, 0x04600840, 0x050f80ff, 0x053fa809, - 0x06000001, 0x0721f000, 0x0349f003, 0x06810357, - 0x0245f01f, 0x06000002, 0x05601600, 0x050f80ff, - 0x012fa809, 0x06480001, 0x0681039b, 0x04481001, - 0x0481839b, 0x04602640, 0x050f80ff, 0x012fa809, - 0x020ef001, 0x0086839b, 0x029b039b, 0x050020d8, - 0x062da001, 0x06303002, 0x05000430, 0x04600440, - 0x050f80ff, 0x073fa012, 0x06000001, 0x008f836d, - 0x050040d8, 0x062da001, 0x05602000, 0x050f80ff, - 0x073fa009, 0x06000001, 0x060ff004, 0x00540402, - 0x07820399, 0x06005051, 0x06006051, 0x06602440, - 0x050f80ff, 0x063fa01a, 0x06000002, 0x07f00000, - 0x06600a40, 0x050f80ff, 0x073fa00a, 0x07000003, - 0x07f00000, 0x04600840, 0x050f80ff, 0x053fa809, - 0x06000001, 0x05487003, 0x07810393, 0x060ff002, - 0x00540404, 0x05828393, 0x05308000, 0x07005000, - 0x06009040, 0x06a00602, 0x04008004, 0x06a00607, - 0x02800013, 0x060ff040, 0x045a041f, 0x010eb0ff, - 0x06930013, 0x02920013, 0x02800010, 0x04004002, - 0x03800377, 0x07a003bd, 0x062da001, 0x05308000, - 0x07005000, 0x06009040, 0x06a00602, 0x050080d8, - 0x06a00607, 0x062da001, 0x02800013, 0x050fd009, - 0x040fd040, 0x013e4000, 0x06000080, 0x05308000, - 0x03013000, 0x06a00602, 0x010440d7, 0x0349f044, - 0x078103b2, 0x062da001, 0x038f03b2, 0x03e00000, - 0x062da001, 0x02800013, 0x0249c0e5, 0x06810013, - 0x062da001, 0x07f00000, 0x07f00000, 0x033e5000, - 0x070c0000, 0x028f03b6, 0x03800011, 0x050020d8, - 0x04600440, 0x050f80ff, 0x073fa00a, 0x06000001, - 0x07c00000, 0x002fb001, 0x038003c6, 0x012fb000, - 0x03075087, 0x068d03c7, 0x03386000, 0x03020000, - 0x04482075, 0x04810438, 0x0648a0e6, 0x04810416, - 0x0642007f, 0x05810414, 0x0340007e, 0x060ff038, - 0x0154047e, 0x01d00403, 0x0560027d, 0x050f80ff, - 0x032fa009, 0x030ef000, 0x02860667, 0x0107d000, - 0x07600a00, 0x050f80ff, 0x032fa009, 0x03681e00, - 0x04500420, 0x050f80ff, 0x073fa009, 0x0700003f, - 0x038003d1, 0x070ff07d, 0x0450047c, 0x050f80ff, - 0x002fa819, 0x078d03e7, 0x02080001, 0x00081002, - 0x0678007a, 0x04000201, 0x078103f3, 0x0448807a, - 0x068103f1, 0x0379ff03, 0x070000ff, 0x0049107a, - 0x02a18226, 0x01082003, 0x068d03f4, 0x0448b07a, - 0x058183fc, 0x0249007a, 0x078103ff, 0x07780003, - 0x03800000, 0x078103ff, 0x0338600c, 0x03010000, - 0x00800401, 0x02386004, 0x03010000, 0x072e6c00, - 0x00800438, 0x01800409, 0x0080040b, 0x0080040d, - 0x0180040f, 0x01800411, 0x00800413, 0x0727c006, - 0x028003e3, 0x0727c009, 0x028003e3, 0x0727c00c, - 0x028003e3, 0x0727c00f, 0x028003e3, 0x0727c012, - 0x028003e3, 0x038003d4, 0x052e6800, 0x00800438, - 0x044880e6, 0x0781069c, 0x052e6200, 0x070ff088, - 0x0179feff, 0x070fffff, 0x01a18642, 0x04818638, - 0x0249607a, 0x07818456, 0x060ff083, 0x03868456, - 0x033e6000, 0x07000003, 0x0448b07a, 0x04810438, - 0x06604479, 0x050f80ff, 0x032fa009, 0x03680600, - 0x076c00ff, 0x06818438, 0x04604679, 0x050f80ff, - 0x032fa009, 0x07f00000, 0x074b0000, 0x070ff000, - 0x048d0432, 0x05001099, 0x064b0001, 0x045c0401, - 0x04810438, 0x0245a07a, 0x048d0438, 0x07286000, - 0x07f00000, 0x048d043b, 0x038c03c6, 0x0648c0e6, - 0x0681845b, 0x0448e0e6, 0x05810453, 0x01209441, - 0x02490075, 0x0681821f, 0x004920e6, 0x0581044e, - 0x07a006e1, 0x05001088, 0x00700101, 0x03100000, - 0x00088001, 0x033e6000, 0x07000088, 0x038006d2, - 0x02386001, 0x07030000, 0x033e6000, 0x06000008, - 0x018004ed, 0x02799075, 0x0700050f, 0x06810010, - 0x04601679, 0x050080ff, 0x06309052, 0x0600003e, - 0x0180045f, 0x06602479, 0x050080ff, 0x05309812, - 0x07000041, 0x0648007a, 0x05810471, 0x04488075, - 0x07818471, 0x0678007a, 0x04000108, 0x0481046d, - 0x06603c79, 0x050f80ff, 0x048d0468, 0x073fa042, - 0x0600004a, 0x048d046b, 0x02086051, 0x040f8008, - 0x070fa009, 0x0049107a, 0x02a184ef, 0x00798075, - 0x06000507, 0x04818683, 0x0448b075, 0x05810478, - 0x02493075, 0x0681067f, 0x0648c0e6, 0x0781848b, - 0x048d047a, 0x02386001, 0x07030000, 0x0049107a, - 0x05810481, 0x020ef083, 0x0186048b, 0x06483075, - 0x058104eb, 0x0678007a, 0x07000035, 0x01a185f5, - 0x05308000, 0x07060000, 0x06009079, 0x06a00602, - 0x018004eb, 0x06483075, 0x0681061f, 0x058d048d, - 0x02386001, 0x07030000, 0x0444e07a, 0x0648307a, - 0x068184bf, 0x0448707a, 0x048104e6, 0x0648f07a, - 0x058104a9, 0x07a005f5, 0x04008079, 0x07a00614, - 0x028684ba, 0x0049107a, 0x068184ba, 0x04600408, - 0x050f80ff, 0x053fa809, 0x06000002, 0x05780105, - 0x07ffff00, 0x05600e7b, 0x050f80ff, 0x053fa812, - 0x06000002, 0x06a005fe, 0x018004eb, 0x0760127b, - 0x050f80ff, 0x032fa009, 0x0349c000, 0x078184b8, - 0x04601079, 0x050f80ff, 0x073fa00a, 0x0600003d, - 0x07f00000, 0x06600a79, 0x050f80ff, 0x053fa80a, - 0x06000010, 0x018004eb, 0x0046e07a, 0x008004e6, - 0x06009008, 0x05308000, 0x05004000, 0x06a00602, - 0x018004eb, 0x0760187b, 0x050f80ff, 0x032fa011, - 0x070ff000, 0x04500401, 0x030460ff, 0x060ff025, - 0x00540446, 0x048204d3, 0x030460ff, 0x052e40c0, - 0x04092046, 0x0349a0e4, 0x068184d0, 0x003e4080, - 0x0700c000, 0x018004d4, 0x003e4080, 0x05008000, - 0x018004d4, 0x04092046, 0x070ff03a, 0x038684d8, - 0x013e4000, 0x07000003, 0x05a002ac, 0x06600679, - 0x050f80ff, 0x00201007, 0x012fa80a, 0x0046047a, - 0x034630ff, 0x050020ff, 0x06003051, 0x04601079, - 0x050f80ff, 0x073fa012, 0x06000001, 0x018004eb, - 0x07a005f5, 0x05308000, 0x03020000, 0x06009079, - 0x06a00602, 0x033e6a00, 0x0700000a, 0x02079051, - 0x02800010, 0x06605079, 0x050f80ff, 0x032fa009, - 0x070ff000, 0x02860508, 0x057dfeff, 0x07ffffff, - 0x06810508, 0x050f8000, 0x012fa811, 0x0079fe02, - 0x070000ff, 0x077d66ff, 0x060000dc, 0x04818508, - 0x060ff001, 0x01868509, 0x064b0002, 0x06420002, - 0x060ff002, 0x05500400, 0x050f80ff, 0x05004084, - 0x073fa00a, 0x06000002, 0x07c00000, 0x04600201, + 0x04020051, 0x59a8d01c, 0x82697480, 0x0000ffff, + 0x0400004d, 0x8c6cdd0a, 0x0402007a, 0x42024800, + 0x0010cfd1, 0x417a4000, 0x5924d200, 0x8268d500, + 0x000000e0, 0x82697480, 0x000000e0, 0x040207e5, + 0x0201f800, 0x00101c53, 0x59a8d21b, 0x8268dd00, + 0x00000004, 0x8c68d504, 0x040207de, 0x406e5800, + 0x4200d000, 0x00000003, 0x0201f800, 0x00101c82, + 0x0401f076, 0x59a8d016, 0x8068d1c0, 0x04000799, + 0x0401f072, 0x599cd018, 0x8c68d516, 0x04000043, + 0x599cd017, 0x8c68d50a, 0x04020004, 0x59a8d006, + 0x8c68d51c, 0x04000799, 0x4200b000, 0x000007f0, + 0x417a8800, 0x0401f004, 0x81468800, 0x8058b040, + 0x04000792, 0x0201f800, 0x001046de, 0x80c589c0, + 0x040007fa, 0x5934d200, 0x8c68d51a, 0x040007f7, + 0x0401f05a, 0x0401f059, 0x0201f800, 0x001050f0, + 0x80c589c0, 0x0400003e, 0x59c4d006, 0x8468d534, + 0x486b8806, 0x0201f800, 0x001071f9, 0x0401f7b1, + 0x0201f800, 0x00104965, 0x40c50000, 0x80c589c0, + 0x040207ac, 0x4202d800, 0x00000003, 0x0201f800, + 0x00100430, 0x4080d000, 0x0201f800, 0x0010155c, + 0x0401f042, 0x8c70e516, 0x04020005, 0x59a8d01c, + 0x82697480, 0x0000ffff, 0x04000034, 0x59a8d01d, + 0x8068d1c0, 0x0402079b, 0x0201f800, 0x0010c0ed, + 0x80c57040, 0x04000003, 0x59a8da1b, 0x0401f752, + 0x0201f800, 0x00102101, 0x80c57040, 0x04000791, + 0x59a8da1b, 0x0401f74c, 0x0201f800, 0x00104cf9, + 0x80c589c0, 0x040007bb, 0x0401f028, 0x0201f800, + 0x00103a8f, 0x0401f781, 0x0201f800, 0x001050f0, + 0x80c589c0, 0x0402076a, 0x59a8d21b, 0x486b541b, + 0x0401f767, 0x406e4000, 0x4200d000, 0x000007fe, + 0x4200d800, 0x00000004, 0x0401f771, 0x59c4d006, + 0x8268d500, 0xffffff0f, 0x486b8806, 0x0401f7c2, + 0x0201f800, 0x0010c0ed, 0x4200d000, 0x00000010, + 0x80c57040, 0x04000002, 0x4080d000, 0x0201f800, + 0x00101f62, 0x0401f77e, 0x8c6cdd04, 0x040207cc, + 0x826cd500, 0x00004000, 0x8c6cdd1c, 0x040207c8, + 0x406a5800, 0x0401f787, 0x589d0000, 0x809d3800, + 0x1c01f000, 0x59c4d00d, 0x8c68d51e, 0x04020004, + 0x59c4d005, 0x8c68d500, 0x0400000c, 0x0201f800, + 0x00100448, 0x0201f800, 0x001050f0, 0x80c589c0, + 0x0400000f, 0x0201f800, 0x00105051, 0x816d7040, + 0x040000a6, 0x0401f12f, 0x4a035043, 0x00000001, + 0x4202d800, 0x00000004, 0x4200d000, 0x0010cf8d, + 0x0201f800, 0x0010bfb2, 0x0401f126, 0x0201f800, + 0x0010511b, 0x80c589c0, 0x0402008e, 0x0201f800, + 0x00103ae4, 0x59c4d0a4, 0x8268d500, 0x0000000f, + 0x82697480, 0x00000006, 0x83f17500, 0x03000000, + 0x040007e9, 0x0201f800, 0x00106671, 0x59c4d0a3, + 0x8468d528, 0x486b88a3, 0x59a8d060, 0x8068d1c0, + 0x040000d9, 0x59a8e075, 0x8270d500, 0x00001f00, + 0x8068d910, 0x826d7480, 0x00000002, 0x83f17500, + 0x03000000, 0x040000bd, 0x59a8d015, 0x8468d546, + 0x486b5015, 0x0201f800, 0x001050fd, 0x80c589c0, + 0x040000bd, 0x59c4d006, 0x8268d540, 0x44000001, + 0x486b8806, 0x59c4d006, 0x8268d500, 0xffffff0f, + 0x486b8806, 0x497b9005, 0x4178d000, 0x0201f800, + 0x00104e35, 0x4a038802, 0x0000ffff, 0x4a0378e4, + 0x00003000, 0x4200d000, 0x0010cb9c, 0x5868d400, + 0x8c68d508, 0x04020003, 0x4a0378e4, 0x000c0000, + 0x4200d000, 0x0010ce66, 0x0201f800, 0x0010bfb2, + 0x59a8d00f, 0x4200d800, 0x00000003, 0x0201f800, + 0x00106e66, 0x4200d000, 0x00008010, 0x59a8d809, + 0x0201f800, 0x001039aa, 0x59c8d015, 0x8468d548, + 0x486b9015, 0x0201f800, 0x00101820, 0x59a8d008, + 0x8468d500, 0x486b5008, 0x850e1d0a, 0x0201f800, + 0x00110a62, 0x0201f800, 0x001050f0, 0x80c589c0, + 0x04020003, 0x8d0e1d06, 0x040200a0, 0x0201f800, + 0x00104965, 0x80c589c0, 0x04000092, 0x59c4d002, + 0x8468d50c, 0x486b8802, 0x497b501d, 0x497b501c, + 0x497b5057, 0x0201f800, 0x001050f0, 0x80c589c0, + 0x0400007d, 0x497b521b, 0x0201f800, 0x00101608, + 0x59a8d01f, 0x82680500, 0xffff0000, 0x80c4d540, + 0x486b501f, 0x599cd017, 0x8c68d50a, 0x04000004, + 0x59a8d21b, 0x8468d544, 0x486b521b, 0x4200d000, + 0x00000005, 0x0201f800, 0x001074c0, 0x497b501d, + 0x497b5016, 0x4a035017, 0x0000ffff, 0x4a0378e4, + 0x080000c0, 0x4202d800, 0x00000002, 0x0201f800, + 0x001050f0, 0x80c589c0, 0x04020007, 0x59a8d21b, + 0x8268d500, 0x0000000c, 0x82697480, 0x00000004, + 0x04000769, 0x0201f800, 0x00101e2e, 0x0401f095, + 0x5994d02d, 0x42000000, 0x001041ea, 0x80697480, + 0x04000042, 0x59c4d006, 0x8268d540, 0x000000c0, + 0x486b8806, 0x0401f76a, 0x59a8d011, 0x82697480, + 0x00000009, 0x04020758, 0x497b500f, 0x0201f800, + 0x0010c0ca, 0x42024800, 0x0010cfd1, 0x497a4805, + 0x0401f00a, 0x5924d200, 0x8c68d500, 0x04000004, + 0x8268d500, 0xffffd815, 0x486a4a00, 0x83264c00, + 0x0000000b, 0x8058b040, 0x8058b1c0, 0x040207f6, + 0x4a038805, 0x000000f0, 0x0201f800, 0x0010510c, + 0x80c589c0, 0x0400004b, 0x59c4d006, 0x8268d540, + 0x000000f1, 0x486b8806, 0x59c4d006, 0x8268d500, + 0xbbffffff, 0x486b8806, 0x0201f800, 0x00106671, + 0x0201f800, 0x00106e71, 0x59a8d878, 0x826d7480, + 0x00000000, 0x83f17500, 0x0c000000, 0x04000004, + 0x82b97580, 0x0c000000, 0x0402004d, 0x4a038893, + 0x00000001, 0x4200d000, 0x0010ce6f, 0x0201f800, + 0x0010bfb2, 0x497b5056, 0x4200d000, 0x00008030, + 0x4178d800, 0x0401f773, 0x5994d02c, 0x8068d1c0, + 0x0402072b, 0x0401f7bc, 0x806cd840, 0x8270d500, + 0x00ff0000, 0x806c00d0, 0x8068d540, 0x486b9035, + 0x0401f73e, 0x59c4d006, 0x8268d540, 0x440000f1, + 0x0401f748, 0x59a8d01f, 0x8268d500, 0xffff0000, + 0x486b501f, 0x0201f800, 0x00101608, 0x48c78880, + 0x0401f785, 0x0201f800, 0x00104126, 0x0401f035, + 0x0201f800, 0x001050f0, 0x80c589c0, 0x04000011, + 0x59a8d018, 0x8068d1c0, 0x0402076c, 0x0201f800, + 0x00109be2, 0x0401f769, 0x4a035056, 0x00000001, + 0x850e1d0e, 0x0201f800, 0x00103c3f, 0x0401f025, + 0x59c4d006, 0x8268d540, 0x440000f1, 0x0401f7ba, + 0x0201f800, 0x00109be2, 0x59a8d21b, 0x8c68d506, + 0x0402075a, 0x59a8d018, 0x8068d1c0, 0x04020007, + 0x59a8d41b, 0x8c68d508, 0x04000754, 0x82697480, + 0x0000ffff, 0x04000751, 0x4a03541b, 0x0000ffff, + 0x0201f800, 0x0010425b, 0x0401f74c, 0x59aa6879, + 0x5934d400, 0x82697480, 0x00000404, 0x04020007, + 0x8c6cdd0c, 0x040006d8, 0x826cd500, 0x00000003, + 0x040007ad, 0x0401f003, 0x0201f800, 0x0010b87c, + 0x1c01f000, 0x809d3840, 0x48a13800, 0x829d3c80, + 0x00000005, 0x409d4000, 0x829d3c80, 0x00000007, + 0x48813800, 0x48853801, 0x48893802, 0x488d3803, + 0x48913804, 0x48953805, 0x48993806, 0x4200e000, + 0x00000001, 0x48714000, 0x4178e000, 0x48714003, + 0x48714004, 0x48594001, 0x49214002, 0x82691d00, + 0x00ffffff, 0x826d3500, 0x00ffffff, 0x828cd500, + 0x00ff0000, 0x82697480, 0x00ff0000, 0x0400005e, + 0x41792800, 0x4200b000, 0x000007f0, 0x41ad0800, + 0x40951000, 0x828d2500, 0x00ffff00, 0x0401f00f, + 0x809121c0, 0x04000032, 0x59a8d00f, 0x8268d500, + 0x00ffff00, 0x40900000, 0x80697480, 0x0400002c, + 0x4178e000, 0x48714004, 0x80850800, 0x80891000, + 0x8058b040, 0x04000021, 0x58850000, 0x808101c0, + 0x04000036, 0x5880d212, 0x8268d500, 0x0000ff00, + 0x040207ec, 0x5880d002, 0x8268d500, 0x00ffffff, + 0x408c0000, 0x80697480, 0x040207f0, 0x4098d000, + 0x0201f800, 0x00101fc8, 0x5880d813, 0x806cd130, + 0x41200000, 0x80697480, 0x040207e8, 0x4200e000, + 0x00000001, 0x48714004, 0x5924d005, 0x826c0500, + 0x00ffffff, 0x80697480, 0x04000004, 0x812000f0, + 0x8068d540, 0x48690013, 0x58a0d004, 0x8068d1c0, + 0x04000020, 0x408a8800, 0x0401f048, 0x5880d002, + 0x8268d500, 0x000000ff, 0x828c0500, 0x000000ff, + 0x80697480, 0x040207d1, 0x4098d000, 0x0201f800, + 0x00101fc8, 0x5880d813, 0x806cd130, 0x41200000, + 0x80697480, 0x040207c9, 0x4200d000, 0x00000001, + 0x48694004, 0x0401f7e1, 0x809529c0, 0x040207c3, + 0x58a0e003, 0x8070e1c0, 0x040207c0, 0x40892800, + 0x4200d000, 0x00000001, 0x48694003, 0x0401f7bb, + 0x58a0e003, 0x8070e1c0, 0x04000018, 0x40968800, + 0x0401f026, 0x828d7480, 0x00fffffb, 0x040007a1, + 0x040017a0, 0x828d7480, 0x00ffffff, 0x0400079d, + 0x828d7480, 0x00fffffd, 0x0400001a, 0x828d7480, + 0x00fffffd, 0x83f17500, 0x03000000, 0x0400000c, + 0x828d7480, 0x00fffffc, 0x0400000f, 0x4178d000, + 0x48694000, 0x0401f011, 0x488fc857, 0x489bc857, + 0x58a0d003, 0x48694000, 0x0401f00c, 0x828d7480, + 0x00fffffe, 0x040207f6, 0x42028800, 0x000007fe, + 0x0401f006, 0x42028800, 0x000007fc, 0x0401f003, + 0x42028800, 0x000007fd, 0x58a24002, 0x58a0b001, + 0x58a18800, 0x589d3006, 0x589d2805, 0x589d2004, + 0x589d1803, 0x589d1002, 0x589d0801, 0x589d0000, + 0x829d3c00, 0x0000000c, 0x589d4000, 0x809d3800, + 0x1c01f000, 0x486bc857, 0x0401ff4f, 0x1c01f000, + 0x00000000, 0x00000001, 0x00000002, 0x00000003, + 0x00000004, 0x00000005, 0x00000006, 0x00000007, + 0x00000008, 0x00000009, 0x0000000a, 0x0000000b, + 0x0000000c, 0x0000000d, 0x0000000e, 0x0000000f, + 0x0aba4754, 0x02800004, 0x00000000, 0x0000c000, + 0x000008a0, 0x073fca5a, 0x0705a5a5, 0x01928009, + 0x070ff0e1, 0x03800006, 0x04958010, 0x05308000, + 0x05008000, 0x0600902f, 0x06a00602, 0x0202f051, + 0x042e4020, 0x018f02af, 0x033e5000, 0x03020000, + 0x068d0020, 0x06930516, 0x03920518, 0x050fb056, + 0x040010e6, 0x002fb008, 0x060ff0e6, 0x00580401, + 0x054880ff, 0x0781001e, 0x038c03c6, 0x038a03c5, + 0x078b03c3, 0x048e8010, 0x0678aae5, 0x06000051, + 0x078181c9, 0x040010e6, 0x0448e0e6, 0x04818010, + 0x002fb008, 0x0448e0e6, 0x04818010, 0x060ff0e6, + 0x00580401, 0x054880ff, 0x04818010, 0x022a5001, + 0x030430d4, 0x06780043, 0x030e0000, 0x030450ff, + 0x06780043, 0x03019000, 0x03a1820a, 0x0781873a, + 0x027c0045, 0x03020000, 0x06810040, 0x027c0045, + 0x03040000, 0x04810116, 0x027c0045, 0x03080000, + 0x048107ab, 0x04908040, 0x00910738, 0x010410a6, + 0x0379ff41, 0x037fffff, 0x072d6000, 0x07601441, + 0x050f80ff, 0x032fa009, 0x07f00000, 0x05600400, + 0x050f80ff, 0x056c04ff, 0x0481075d, 0x073fa009, + 0x06000001, 0x0279ff02, 0x0700ffff, 0x070ff0d1, + 0x0179feff, 0x0700ffff, 0x045c0402, 0x0681875d, + 0x060ff0d0, 0x0179feff, 0x0700ffff, 0x050010ff, + 0x057dfeff, 0x0700ffff, 0x05810730, 0x05602600, 0x050f80ff, 0x073fa009, 0x06000001, 0x0079fe02, - 0x070000ff, 0x077d72ff, 0x070000dd, 0x04818508, - 0x064b0002, 0x06420002, 0x06000001, 0x02800502, - 0x0605004c, 0x0280051a, 0x06930516, 0x06a005fb, - 0x054bc450, 0x0781051d, 0x03d0051e, 0x0380051d, - 0x0380052e, 0x03800530, 0x028005ba, 0x028005cd, - 0x0280053d, 0x03800530, 0x03800584, 0x0380052e, - 0x0380052e, 0x038005d1, 0x0380052e, 0x028005d5, - 0x028005ea, 0x038005a6, 0x0380052e, 0x0380052e, - 0x0320952e, 0x0380060a, 0x073c3fff, 0x0700000f, - 0x0379ff50, 0x070fffff, 0x060ff079, 0x055c0450, - 0x078105ca, 0x002fb008, 0x060ff079, 0x055c0450, - 0x078105c9, 0x07a005ed, 0x028005c2, 0x0179fe50, - 0x070fffff, 0x070050ff, 0x060ff079, 0x055c0405, - 0x07810547, 0x002fb008, 0x060ff079, 0x055c0405, - 0x058185c6, 0x073c3fff, 0x0700000f, 0x070ff087, - 0x017980ff, 0x06000507, 0x05818556, 0x02203040, - 0x05002087, 0x0049d002, 0x05818556, 0x002fb008, - 0x07006087, 0x002fb008, 0x0149d006, 0x0781057e, - 0x0693055b, 0x01257000, 0x052e4003, 0x072e5030, - 0x0304c050, 0x02400057, 0x06740057, 0x06000004, - 0x06820016, 0x0049107a, 0x02a184ef, 0x04002083, - 0x07003084, 0x04004085, 0x06602479, 0x050f80ff, - 0x063fa01a, 0x06000001, 0x07a005f5, 0x06a006ea, - 0x033e6a00, 0x0700000a, 0x062e5020, 0x05a00718, - 0x02798102, 0x070000ff, 0x007c8002, 0x07000055, - 0x0781057b, 0x072e50c0, 0x0648a002, 0x0781057b, - 0x068d0576, 0x03386006, 0x03010000, 0x033e6000, - 0x0700000c, 0x003e4002, 0x07000a00, 0x018004ed, - 0x07420003, 0x0581854e, 0x00798002, 0x06000507, - 0x05818556, 0x0380055f, 0x0793058b, 0x01257000, - 0x073c3fff, 0x0700000f, 0x052e4003, 0x072e5030, - 0x0304c050, 0x067800e6, 0x07000041, 0x07810590, - 0x07a006f3, 0x0481859b, 0x002fb008, 0x067800e6, - 0x07000041, 0x07810596, 0x07a006f3, 0x0481859b, - 0x062e5020, 0x003e4002, 0x07000a00, 0x03e00000, - 0x02800010, 0x06740057, 0x07000018, 0x06820016, - 0x06a006ea, 0x033e6a00, 0x0700000a, 0x002fb008, - 0x06a006ea, 0x033e6a00, 0x0700000a, 0x03800596, - 0x0379ff50, 0x070fffff, 0x060ff079, 0x055c0450, - 0x058185ac, 0x0245507a, 0x002fb008, 0x060ff079, - 0x055c0450, 0x058185b1, 0x0245507a, 0x002fb008, - 0x05601050, 0x050f80ff, 0x012fa809, 0x02455001, - 0x05601050, 0x050f80ff, 0x012fa80a, 0x038005c3, - 0x059585ca, 0x0179fe50, 0x070fffff, 0x045c042f, - 0x058185ca, 0x0202f051, 0x042e4020, 0x038005c3, - 0x002fb008, 0x003e4002, 0x07000a00, 0x02800016, - 0x059385c9, 0x062e5020, 0x042e4002, 0x002fb008, - 0x013e4000, 0x05000e00, 0x02800016, 0x0179fe50, - 0x070fffff, 0x010210ff, 0x02800016, 0x0179fe50, - 0x070fffff, 0x050340ff, 0x038005c3, 0x0179fe50, - 0x070fffff, 0x0102e0ff, 0x05602a2e, 0x050f80ff, - 0x05222000, 0x07223000, 0x05224000, 0x07225000, - 0x07226000, 0x05227000, 0x05228000, 0x07229000, - 0x0722a000, 0x0522b000, 0x063fa051, 0x07000011, - 0x0202c026, 0x0522d000, 0x052e400c, 0x02800016, - 0x030430d4, 0x062e5008, 0x008001cd, 0x05601050, - 0x050f80ff, 0x032fa009, 0x03460000, 0x028005f8, - 0x0246007a, 0x0045207a, 0x038005f6, 0x0246007a, - 0x0600007a, 0x04601079, 0x050f80ff, 0x032fa00a, - 0x07c00000, 0x009285fb, 0x070500e1, 0x07c00000, - 0x0245f008, 0x078405ff, 0x020e0008, 0x07c00000, - 0x070ff009, 0x065a0008, 0x06840604, 0x020e0008, - 0x07c00000, 0x06840607, 0x020e0008, 0x07c00000, - 0x05308000, 0x0500d000, 0x06a00602, 0x07a0060f, - 0x02800010, 0x052e4300, 0x072e500c, 0x073c3fff, - 0x0700000f, 0x07c00000, 0x06602408, 0x050f80ff, - 0x032fa011, 0x076a0000, 0x0581861d, 0x066a0001, - 0x0781061d, 0x06006051, 0x07c00000, 0x02206001, - 0x07c00000, 0x0678007a, 0x07000021, 0x05818627, - 0x0049107a, 0x07810627, 0x073c3fff, 0x0700000f, - 0x0180048d, 0x040fd079, 0x0648307a, 0x0681062c, - 0x04a00785, 0x02800631, 0x06a005f2, 0x05308000, - 0x05001000, 0x06009079, 0x06a00602, 0x068d0631, - 0x033e6a00, 0x0600000e, 0x02079051, 0x03386006, - 0x03010000, 0x02800010, 0x0648307a, 0x0781063c, - 0x04a00785, 0x038006d2, 0x06a005f2, 0x05308000, - 0x05001000, 0x06009079, 0x06a00602, 0x038006d2, - 0x050010ff, 0x0448b07a, 0x07810650, 0x0049107a, - 0x07810650, 0x078d0647, 0x06604479, 0x050f80ff, - 0x032fa009, 0x03680600, 0x056c02ff, 0x05818650, - 0x046c1001, 0x06810652, 0x056a02ff, 0x07c00000, - 0x07a00655, 0x075c00ff, 0x07c00000, 0x078d0655, - 0x060ff07c, 0x070ff07d, 0x070ff07e, 0x060ff07f, - 0x060ff080, 0x070ff081, 0x070ff082, 0x060ff083, - 0x070ff084, 0x060ff085, 0x0338600c, 0x03010000, - 0x008a8662, 0x078d0663, 0x03386000, 0x03020000, - 0x07c00000, 0x0648307a, 0x07818206, 0x07a005f5, - 0x02209667, 0x0380060a, 0x04002089, 0x04780102, - 0x07f00000, 0x05001088, 0x04740101, 0x03100000, - 0x04780101, 0x07f00000, 0x060ff002, 0x045c0401, - 0x05818681, 0x00088001, 0x033e6000, 0x070000c0, - 0x0220901a, 0x05308000, 0x01012000, 0x06a00602, - 0x028006ce, 0x0220967f, 0x0380060a, 0x03209681, - 0x0180021d, 0x040fd075, 0x040fd07a, 0x040fd079, - 0x0648307a, 0x0681068c, 0x06780075, 0x06000007, - 0x04818697, 0x04a00785, 0x06486075, 0x06818204, - 0x02490075, 0x06818219, 0x04487075, 0x0581869f, - 0x0448b07a, 0x07810696, 0x00492075, 0x048186b0, - 0x028006a8, 0x05308000, 0x03010000, 0x06009079, - 0x06a00602, 0x02800010, 0x0448e0e6, 0x06818438, - 0x00800202, 0x0648307a, 0x048186ce, 0x05308000, - 0x0500e000, 0x06009079, 0x06a00602, 0x04008089, - 0x06a00607, 0x028006ce, 0x06a005f2, 0x05308000, - 0x0700f000, 0x06009079, 0x07000088, 0x07a006b7, - 0x06a00602, 0x02800010, 0x05308000, 0x01011000, - 0x06009079, 0x07000088, 0x07a006b7, 0x06a00602, - 0x02800010, 0x03386000, 0x07030000, 0x07f00000, - 0x068d06ba, 0x033e6a00, 0x0600000e, 0x02079051, - 0x0448b075, 0x078106c5, 0x02493075, 0x078106c5, - 0x05301005, 0x03010000, 0x028006c7, 0x05301006, - 0x03010000, 0x05002087, 0x06485002, 0x048186c7, - 0x0744c000, 0x01088000, 0x02086001, 0x07c00000, - 0x05001088, 0x07a006e1, 0x0644c001, 0x00088001, - 0x033e6a00, 0x0600000e, 0x004920e6, 0x058186d7, - 0x02079051, 0x078d06d7, 0x060ff089, 0x034990ff, - 0x078106de, 0x03386005, 0x03010000, 0x02800010, - 0x03386006, 0x03010000, 0x02800010, 0x078d06e1, - 0x03386000, 0x07030000, 0x07f00000, 0x068d06e5, - 0x070ff087, 0x074850ff, 0x048186e6, 0x07c00000, - 0x068d06ea, 0x02386001, 0x07030000, 0x07f00000, - 0x078d06ee, 0x070ff087, 0x074850ff, 0x048186ef, - 0x07c00000, 0x05002087, 0x0049d002, 0x06818702, - 0x002fb008, 0x067800e6, 0x07000041, 0x002fb008, - 0x06818702, 0x05a00718, 0x0448e002, 0x05810705, - 0x0648a002, 0x0781870f, 0x06486002, 0x05810709, - 0x02400057, 0x056a02ff, 0x07c00000, 0x05a00718, - 0x06788102, 0x06000004, 0x06818702, 0x04002089, - 0x070ff0d4, 0x045c0402, 0x077800ff, 0x07f00000, - 0x06818702, 0x00202010, 0x008c0702, 0x07f00000, - 0x06420002, 0x06818710, 0x06a006ea, 0x033e6a00, - 0x0700000a, 0x07c00000, 0x07f00000, 0x060ff0a2, - 0x045a0202, 0x060ff0a2, 0x045c0402, 0x06818719, - 0x07c00000, 0x05a002ac, 0x03495047, 0x05810724, - 0x0320901d, 0x01800781, 0x0220901f, 0x01800781, - 0x014980e4, 0x04818010, 0x013e4000, 0x07003000, - 0x05600e35, 0x050f80ff, 0x04a00883, 0x01208003, - 0x06a00607, 0x0180074b, 0x066c0045, 0x0481079e, - 0x03209009, 0x01800781, 0x03209011, 0x01800781, - 0x02209007, 0x01800781, 0x03209003, 0x01800781, - 0x00497043, 0x07818736, 0x00494043, 0x04810740, - 0x02209001, 0x01800781, 0x072d6000, 0x027c0045, - 0x03080000, 0x07818730, 0x060ff0d0, 0x0179feff, - 0x0700ffff, 0x057dfeff, 0x0700ffff, 0x058107ac, - 0x01800730, 0x0220900d, 0x01800781, 0x0320900f, - 0x01800781, 0x03493000, 0x04810754, 0x027c0045, - 0x070a0000, 0x0581075f, 0x0220900b, 0x01800781, - 0x0320900c, 0x01800759, 0x02209013, 0x05308000, - 0x01012000, 0x06a00602, 0x008001da, 0x03209005, - 0x01800781, 0x072e500c, 0x00208002, 0x06a00607, - 0x02800010, 0x02209015, 0x01800781, 0x05308000, - 0x05007000, 0x070090d1, 0x0379ff09, 0x0700ffff, - 0x06a00602, 0x03209017, 0x01800781, 0x033e5000, - 0x06000080, 0x02209019, 0x01800781, 0x033e5000, - 0x06000080, 0x060ff0d0, 0x0179feff, 0x0700ffff, - 0x057dfeff, 0x0700ffff, 0x04818010, 0x02400058, - 0x00642058, 0x06820010, 0x033e5000, 0x06000080, - 0x04058051, 0x0320901b, 0x01800781, 0x05308000, - 0x01012000, 0x06a00602, 0x008001cd, 0x05a002ac, - 0x070ff02e, 0x045c0479, 0x0581078d, 0x05308000, - 0x05008000, 0x06009079, 0x06a00602, 0x07c00000, - 0x034900e4, 0x06818798, 0x013e4000, 0x070000c0, - 0x07f00000, 0x034900e4, 0x07818796, 0x07c00000, - 0x013e4000, 0x06000080, 0x07f00000, 0x07f00000, - 0x07f00000, 0x034900e4, 0x05810790, 0x00800798, - 0x072d6000, 0x070ff0d1, 0x0179feff, 0x0700ffff, - 0x017c1cff, 0x070000fc, 0x0681875d, 0x079087a5, - 0x00910738, 0x010410a6, 0x0379ff41, 0x037fffff, - 0x03800066, 0x072d6000, 0x05a00863, 0x020ef004, - 0x01860765, 0x04602604, 0x050f80ff, 0x032fa009, - 0x060ff0d0, 0x0179feff, 0x0700ffff, 0x055c0400, - 0x07818763, 0x06600004, 0x050f80ff, 0x032fa009, - 0x07f00000, 0x074b0000, 0x05002000, 0x0769ff00, - 0x01640800, 0x05820765, 0x01640e00, 0x07828765, - 0x070ff036, 0x045c0404, 0x068187ce, 0x050f8030, - 0x032fa009, 0x0379ff00, 0x0700ffff, 0x070ff0d1, - 0x0179feff, 0x0700ffff, 0x055c0400, 0x05810763, - 0x04482034, 0x0481077c, 0x06483034, 0x0681877c, - 0x070ff0d4, 0x077800ff, 0x070000f0, 0x037c00ff, - 0x06000010, 0x058107ff, 0x024900e5, 0x068187df, - 0x033e5000, 0x070000c0, 0x07f00000, 0x024900e5, - 0x058107e2, 0x033e5000, 0x06000080, 0x02800010, - 0x04601c04, 0x050f80ff, 0x053fa809, 0x06000020, - 0x030ef041, 0x0086076d, 0x062d6002, 0x05602c41, - 0x050f80ff, 0x012fa809, 0x060ff0d0, 0x074b00ff, - 0x045c0401, 0x068187fd, 0x062d6001, 0x07602e41, - 0x050f80ff, 0x053fa809, 0x06000001, 0x070ff0d1, - 0x054b80ff, 0x074b0003, 0x055c0403, 0x068187fd, - 0x033e5000, 0x06000080, 0x01800895, 0x07600041, - 0x008007e3, 0x024900e5, 0x07818806, 0x033e5000, - 0x070000c0, 0x07f00000, 0x024900e5, 0x05810809, - 0x033e5000, 0x06000080, 0x02800010, 0x05a0084e, - 0x030ef041, 0x01860771, 0x04058051, 0x072d6000, - 0x07601241, 0x050f80ff, 0x012fa809, 0x0600a0d0, - 0x0500b0d1, 0x062d6001, 0x07f00000, 0x07f00000, - 0x0600c0d0, 0x0500d0d1, 0x062d6002, 0x0279ff0d, - 0x07ff0000, 0x044d800d, 0x060ff0d0, 0x074b00ff, - 0x065a000d, 0x06601401, 0x050f80ff, 0x073fa022, - 0x07000005, 0x0079fe0d, 0x070000ff, 0x050020ff, - 0x05602c41, 0x050f80ff, 0x073fa00a, 0x06000001, - 0x020ef004, 0x0186084b, 0x04601c04, 0x050f80ff, - 0x053fa809, 0x06000001, 0x050f80ff, 0x053fa80a, - 0x06000020, 0x07f00000, 0x07602e41, 0x050f80ff, - 0x073fa009, 0x06000001, 0x0279ff02, 0x070000ff, - 0x0678000d, 0x0700ff00, 0x065a0002, 0x07602e41, - 0x050f80ff, 0x073fa00a, 0x06000001, 0x07f00000, - 0x07600041, 0x050f80ff, 0x053fa80a, 0x06000001, - 0x07f00000, 0x07601441, 0x050f80ff, 0x073fa00a, - 0x06000002, 0x033e5000, 0x06000080, 0x01800895, - 0x040f8032, 0x073fa011, 0x06000001, 0x060ff002, - 0x055c0403, 0x07818856, 0x00041051, 0x07c00000, - 0x04600402, 0x04500432, 0x050f80ff, 0x053fa809, - 0x06000020, 0x07f00000, 0x00400402, 0x01680eff, - 0x070030ff, 0x040f8032, 0x053fa80a, 0x06000001, - 0x07c00000, 0x05004036, 0x060000d0, 0x0179fe00, - 0x0700ffff, 0x057dfeff, 0x0700ffff, 0x05810882, - 0x070000d1, 0x0379ff00, 0x0700ffff, 0x06005051, - 0x060ff031, 0x05500405, 0x050f80ff, 0x073fa009, - 0x06000002, 0x020ef004, 0x0086087c, 0x04600404, - 0x050f80ff, 0x012fa809, 0x0079fe01, 0x0700ffff, - 0x055c0400, 0x05810882, 0x01400405, 0x070050ff, - 0x057de0ff, 0x06000007, 0x0681886e, 0x04004051, - 0x07c00000, 0x072d6000, 0x07f00000, 0x07f00000, - 0x000110d0, 0x010120d1, 0x062d6001, 0x07f00000, - 0x07f00000, 0x020130d0, 0x010140d1, 0x062d6002, - 0x010170d4, 0x07f00000, 0x020150d0, 0x030160d1, - 0x053fa83a, 0x06000008, 0x07c00000, 0x07600c41, - 0x050f80ff, 0x01202003, 0x073fa00a, 0x06000001, - 0x07f00000, 0x05601041, 0x050f80ff, 0x032fa069, - 0x03800066, 0xdcdab525, 0x02800004, 0x00000000, - 0x00008000, 0x00000685, 0x040f801f, 0x012fa8c9, - 0x040f801f, 0x063fa091, 0x06000010, 0x03200005, - 0x07420000, 0x050fb000, 0x040f801f, 0x073fa011, - 0x06000038, 0x040f801f, 0x053fa859, 0x0700003a, - 0x050fe000, 0x0581800a, 0x0684004a, 0x04958019, - 0x030e0011, 0x072e4200, 0x03800014, 0x0291001f, - 0x050010c0, 0x04482001, 0x0781811e, 0x06483001, - 0x078181a6, 0x02920029, 0x068b0029, 0x008a01ab, - 0x050010c0, 0x06780001, 0x050007c0, 0x068182fe, - 0x06780001, 0x0500f800, 0x05818348, 0x0291003e, - 0x050fe02b, 0x0286003e, 0x03681e1d, 0x03d0002e, - 0x0380035c, 0x0280003e, 0x0280003e, 0x0280003e, - 0x0280003e, 0x0280038a, 0x0280003e, 0x0280003e, - 0x0380039f, 0x0280003e, 0x0280003e, 0x0280003e, - 0x0280003e, 0x0280003e, 0x0280003e, 0x0280003e, - 0x039200cf, 0x040fe031, 0x0286004a, 0x06000013, - 0x050fb000, 0x066c0073, 0x048104ae, 0x014920e4, - 0x0481804a, 0x03400000, 0x076c0a00, 0x05818042, - 0x0696004c, 0x03b900f3, 0x05908014, 0x010170e1, - 0x07780017, 0x03e00000, 0x068100b5, 0x050010ff, - 0x0179fe17, 0x031fffff, 0x070000ff, 0x05600800, - 0x050f80ff, 0x073fa009, 0x06000001, 0x06780002, - 0x02800040, 0x037c00ff, 0x03800000, 0x0681006b, - 0x0249f002, 0x068100ce, 0x0448e002, 0x0681006b, - 0x05600e00, 0x050f80ff, 0x073fa009, 0x06000001, - 0x06780002, 0x07ffff00, 0x037c00ff, 0x05000200, - 0x048180ce, 0x064bd401, 0x02d0006d, 0x038000cc, - 0x02800075, 0x0280007f, 0x02800089, 0x03800093, - 0x0280009d, 0x028000ab, 0x038000cc, 0x050fe027, - 0x00868079, 0x01028000, 0x0280007c, 0x07600027, - 0x050f80ff, 0x032fa00a, 0x01027000, 0x0340002b, - 0x028000ce, 0x040fe025, 0x00868083, 0x03026000, - 0x02800086, 0x06600025, 0x050f80ff, 0x032fa00a, - 0x03025000, 0x0340002b, 0x028000ce, 0x050fe021, - 0x0186808d, 0x01022000, 0x03800090, 0x07600021, - 0x050f80ff, 0x032fa00a, 0x01021000, 0x0340002b, - 0x028000ce, 0x040fe023, 0x00868097, 0x01024000, - 0x0380009a, 0x06600023, 0x050f80ff, 0x032fa00a, - 0x03023000, 0x0340002b, 0x028000ce, 0x05600800, - 0x050f80ff, 0x012fa839, 0x0448e001, 0x058180a9, - 0x06780004, 0x07ffff00, 0x037c00ff, 0x05000700, - 0x078100a9, 0x04a00107, 0x028000ce, 0x050fd000, - 0x028000ce, 0x040fe029, 0x018680af, 0x0302a000, - 0x038000b2, 0x06600029, 0x050f80ff, 0x032fa00a, - 0x03029000, 0x0340002b, 0x028000ce, 0x01640817, - 0x058280cc, 0x070ff017, 0x02d000b9, 0x028000c1, - 0x038000c3, 0x038000c6, 0x038000c9, 0x038000cc, - 0x038000cc, 0x038000cc, 0x038000cc, 0x03e00000, - 0x03800014, 0x059080c3, 0x030160e1, 0x028000ce, - 0x059080c6, 0x030150e1, 0x028000ce, 0x059080c9, - 0x010140e1, 0x028000ce, 0x060fc013, 0x07a0067d, - 0x03800014, 0x014940e4, 0x01a180d2, 0x0280004a, - 0x02681e0d, 0x050fb0ff, 0x04600876, 0x050f80ff, - 0x053fa809, 0x06000001, 0x05488003, 0x058180e1, - 0x0400800d, 0x0120d000, 0x013e4000, 0x05000200, - 0x06009076, 0x04002075, 0x07a00669, 0x07c00000, - 0x072e4800, 0x07000012, 0x018680e7, 0x060fc013, - 0x07c00000, 0x00012013, 0x0747f000, 0x05600800, - 0x050f80ff, 0x012fa839, 0x0249f001, 0x078100f9, - 0x01012000, 0x052e4c00, 0x07c00000, 0x050fd000, - 0x07c00000, 0x070000eb, 0x0349f000, 0x058180e8, - 0x05600800, 0x050f80ff, 0x012fa839, 0x06780004, - 0x07ffff00, 0x037c00ff, 0x07000300, 0x048180f1, - 0x0448e001, 0x048180f1, 0x0079c101, 0x07ffffff, - 0x027a4b01, 0x03800000, 0x05600800, 0x050f80ff, - 0x012fa80a, 0x07f00000, 0x06601807, 0x070030ff, - 0x050f80ff, 0x012fa809, 0x050f8003, 0x032fa00a, - 0x040fe001, 0x01860114, 0x04600201, 0x050f80ff, - 0x032fa00a, 0x07c00000, 0x050fe030, 0x02868119, - 0x07030000, 0x05031000, 0x0180011d, 0x07600030, - 0x050f80ff, 0x032fa00a, 0x07030000, 0x07c00000, - 0x022c0004, 0x056c041d, 0x04810134, 0x056c021d, - 0x0481014c, 0x056c081d, 0x04810180, 0x056c0e1d, - 0x0481015e, 0x076c061d, 0x0581019a, 0x0521d000, - 0x0002e013, 0x0202c013, 0x02020013, 0x0460021a, - 0x050f80ff, 0x053fa80a, 0x07000009, 0x03b600e2, - 0x0484801f, 0x0280004a, 0x040fe02c, 0x0086012a, - 0x06000013, 0x04001013, 0x0760122d, 0x050f80ff, - 0x032fa012, 0x07f00000, 0x0742002b, 0x0660002c, - 0x050f80ff, 0x053fa809, 0x06000001, 0x050fe003, - 0x00860149, 0x01028003, 0x0660002c, 0x050f80ff, - 0x053fa80a, 0x07000009, 0x0080019b, 0x00028013, - 0x00027013, 0x0080019b, 0x040fe02c, 0x00860129, - 0x0742002b, 0x0660002c, 0x050f80ff, 0x053fa809, - 0x06000001, 0x050fe003, 0x0086015b, 0x03026003, - 0x0660002c, 0x050f80ff, 0x053fa80a, 0x07000009, - 0x0080019b, 0x02026013, 0x02025013, 0x0080019b, - 0x040fe02c, 0x00860129, 0x0742002b, 0x0660002c, - 0x050f80ff, 0x053fa809, 0x06000001, 0x050fe003, - 0x0086016d, 0x0302a003, 0x0660002c, 0x050f80ff, - 0x053fa80a, 0x07000009, 0x0180016f, 0x0202a013, - 0x02029013, 0x0647f020, 0x06486020, 0x07818174, - 0x07a0034d, 0x00800179, 0x007a0120, 0x04000101, - 0x07a0034d, 0x0400802c, 0x06a00662, 0x0349a0e4, - 0x0581017d, 0x0421d008, 0x0080012a, 0x02948129, - 0x0521d005, 0x0080012a, 0x040fe02c, 0x00860129, - 0x0742002b, 0x0660002c, 0x050f80ff, 0x053fa809, - 0x06000001, 0x050fe003, 0x0086018f, 0x01022003, - 0x0660002c, 0x050f80ff, 0x053fa80a, 0x07000009, - 0x00800191, 0x00022013, 0x00021013, 0x0647f020, - 0x007a0120, 0x04000101, 0x07a0034d, 0x0400802c, - 0x06a00662, 0x02948129, 0x0521d005, 0x0080012a, - 0x00800132, 0x0647f020, 0x06486020, 0x078181a0, - 0x07a0034d, 0x00800129, 0x007a0120, 0x04000101, - 0x07a0034d, 0x0400802c, 0x06a00662, 0x00800129, - 0x040fd02c, 0x052e4003, 0x00208010, 0x06a00662, - 0x00800132, 0x00018098, 0x07480018, 0x068181bc, - 0x05481018, 0x068181ba, 0x05482018, 0x078181b8, - 0x07483018, 0x068181b6, 0x002fb004, 0x018001bd, - 0x012fb003, 0x018001bd, 0x002fb002, 0x018001bd, - 0x002fb001, 0x018001bd, 0x012fb000, 0x0179fe78, - 0x070000ff, 0x030190ff, 0x00017086, 0x048b01c1, - 0x03385000, 0x03020000, 0x07780017, 0x00430407, - 0x068182a7, 0x046c0419, 0x04810246, 0x046c0219, - 0x048101cd, 0x07219000, 0x0080022a, 0x07219000, - 0x07483017, 0x05810230, 0x05482017, 0x04810237, - 0x0448b075, 0x0681822a, 0x04601676, 0x050f80ff, - 0x073fa022, 0x0600003e, 0x06000080, 0x05001081, - 0x05002082, 0x06003083, 0x05004084, 0x06601e76, - 0x050f80ff, 0x022fa02a, 0x04487075, 0x04810229, - 0x06604476, 0x050f80ff, 0x032fa009, 0x03680600, - 0x056c02ff, 0x06818223, 0x07000090, 0x074b0000, - 0x050fe000, 0x00860223, 0x0560027b, 0x050f80ff, - 0x032fa009, 0x07f00000, 0x05600e00, 0x050f80ff, - 0x032fa009, 0x07f00000, 0x074b0000, 0x070ff08d, - 0x0179feff, 0x070000ff, 0x055c0400, 0x04810223, - 0x070ff017, 0x037a00ff, 0x05000400, 0x010170ff, - 0x04603e76, 0x050f80ff, 0x034a8400, 0x034a8800, - 0x05780100, 0x070000ff, 0x055a0400, 0x074b0a00, - 0x077bff00, 0x070000ff, 0x032fa00a, 0x07f00000, - 0x06603c76, 0x050f80ff, 0x07300fff, 0x070fffff, - 0x032fa00a, 0x07f00000, 0x06604876, 0x050f80ff, - 0x0700008d, 0x017a0100, 0x07ffff00, 0x032fa00a, - 0x07f00000, 0x04604a76, 0x050f80ff, 0x07300fff, - 0x070fffff, 0x032fa00a, 0x07f00000, 0x04604076, - 0x050f80ff, 0x06000013, 0x032fa00a, 0x0245a075, - 0x018002af, 0x06603c76, 0x050f80ff, 0x053fa842, - 0x06000045, 0x058b0227, 0x02085013, 0x07219000, - 0x07780078, 0x07ffff00, 0x045a0419, 0x010780ff, - 0x0484801f, 0x0280004a, 0x040fe07f, 0x0186023f, - 0x05a0025f, 0x0092022a, 0x040fe07f, 0x07a6825f, - 0x0080022a, 0x0760127b, 0x050f80ff, 0x032fa009, - 0x0744f000, 0x0760127b, 0x050f80ff, 0x032fa00a, - 0x018001d4, 0x052e400c, 0x040080fb, 0x046aa108, - 0x06009076, 0x04002075, 0x07a00669, 0x0080022a, - 0x06219001, 0x05482017, 0x05810253, 0x048b0249, - 0x060ff086, 0x0349f0ff, 0x078181c0, 0x07483017, - 0x05810250, 0x050fd0ff, 0x040fe07f, 0x07a6825f, - 0x0080022a, 0x05004084, 0x04a002e0, 0x0092022a, - 0x070ff07d, 0x0450047c, 0x056004ff, 0x050f80ff, - 0x032fa009, 0x070ff000, 0x00540479, 0x030790ff, - 0x00800237, 0x04487075, 0x04810267, 0x04605276, - 0x050f80ff, 0x032fa009, 0x060ff079, 0x01540400, - 0x01800269, 0x060ff079, 0x0054047a, 0x058202a0, - 0x058102a0, 0x070ff07d, 0x0450047c, 0x050f80ff, - 0x002fa819, 0x058b026f, 0x034960e4, 0x05810278, - 0x02681e01, 0x06818276, 0x03642203, 0x07828278, - 0x013e4000, 0x07003000, 0x02080001, 0x00081002, - 0x01082003, 0x058b027b, 0x04487075, 0x05810281, - 0x02385001, 0x03010000, 0x00800283, 0x03385000, - 0x03010000, 0x02400019, 0x070ff003, 0x04500479, - 0x030790ff, 0x0340007e, 0x0642007f, 0x058102a0, - 0x070ff07e, 0x050f80ff, 0x032fa009, 0x050fe000, - 0x0386829f, 0x070ff07d, 0x056002ff, 0x050f80ff, - 0x032fa009, 0x0107d000, 0x008602a1, 0x07600a7d, - 0x050f80ff, 0x032fa009, 0x03681e00, 0x0550041b, - 0x050f80ff, 0x032fa009, 0x0107e000, 0x070ff07e, - 0x0180028b, 0x0307c000, 0x07c00000, 0x052e400c, - 0x040080fb, 0x046aa108, 0x06009076, 0x04002075, - 0x03800669, 0x040fd076, 0x050fd017, 0x060ff086, - 0x077800ff, 0x07000060, 0x037c00ff, 0x07000060, - 0x078182a9, 0x07780078, 0x07ffff00, 0x045a0419, - 0x010780ff, 0x04487075, 0x058102ca, 0x07780017, - 0x05000400, 0x058102ca, 0x04601676, 0x050f80ff, - 0x073fa022, 0x0600003e, 0x0249a075, 0x078182c3, - 0x058b02be, 0x06603c76, 0x050f80ff, 0x053fa842, - 0x06000045, 0x052e400c, 0x040080fb, 0x026b4108, - 0x06009076, 0x04002075, 0x07a00669, 0x02800029, - 0x04601676, 0x050f80ff, 0x073fa022, 0x0600003e, - 0x052e400c, 0x04600876, 0x050f80ff, 0x053fa809, - 0x06000001, 0x05488003, 0x048102da, 0x0400d0fb, - 0x066a810d, 0x013e4000, 0x07000300, 0x02800029, - 0x040080fb, 0x066a8108, 0x06009076, 0x04002075, - 0x07a00669, 0x02800029, 0x0240007f, 0x0742007e, - 0x050f807e, 0x032fa009, 0x050fe000, 0x038682fa, - 0x070ff07d, 0x055c047b, 0x048102ef, 0x0760007d, - 0x050f80ff, 0x032fa009, 0x050fe000, 0x028682ef, - 0x070ff07b, 0x0107d0ff, 0x07600a7d, 0x050f80ff, - 0x032fa009, 0x03681e00, 0x0450041c, 0x0107e0ff, - 0x050f80ff, 0x032fa009, 0x050fe000, 0x018602fc, - 0x0307c000, 0x07c00000, 0x040fd076, 0x0380067d, - 0x010180c0, 0x0548e018, 0x05818317, 0x0748f018, - 0x04818313, 0x03490018, 0x0581830f, 0x01491018, - 0x0481830b, 0x073c0000, 0x06000040, 0x02200004, - 0x0280031a, 0x073c0000, 0x06000020, 0x03200003, - 0x0280031a, 0x073c0000, 0x06000010, 0x02200002, - 0x0280031a, 0x073c0000, 0x06000008, 0x02200001, - 0x0280031a, 0x073c0000, 0x06000004, 0x06000013, - 0x050fb000, 0x040fe076, 0x0286033d, 0x046c0273, - 0x04818329, 0x0448b075, 0x07810330, 0x06000013, - 0x04001013, 0x0760127b, 0x050f80ff, 0x032fa012, - 0x0046b075, 0x03b600e2, 0x02800331, 0x066c0073, - 0x0781032e, 0x040fd076, 0x07a0067d, 0x03800014, - 0x040fd076, 0x02800331, 0x00452075, 0x00077013, - 0x0647f075, 0x06486075, 0x04818337, 0x07a00353, - 0x0280033d, 0x007a0175, 0x04000101, 0x07a00353, - 0x04008076, 0x0245f008, 0x06a00662, 0x07273000, - 0x05600272, 0x050f80ff, 0x053fa80a, 0x07000009, - 0x0379ff78, 0x070000ff, 0x02076013, 0x02075013, - 0x0484801f, 0x0280004a, 0x070fc0ff, 0x052e400c, - 0x00208020, 0x06a00662, 0x02800346, 0x06000020, - 0x04001016, 0x0460082c, 0x050f80ff, 0x032fa012, - 0x07c00000, 0x06000075, 0x040010a2, 0x044b0801, - 0x060ff016, 0x065a0001, 0x04600876, 0x050f80ff, - 0x032fa012, 0x07c00000, 0x040fe02a, 0x02860362, - 0x0421d007, 0x0202c02a, 0x07a003a6, 0x0380037e, - 0x050fe022, 0x0286036d, 0x0421d004, 0x0302c022, - 0x07a003a6, 0x04488020, 0x0781037e, 0x040fd02c, - 0x0521d000, 0x0202c013, 0x02020013, 0x040fe026, - 0x03860384, 0x0421d001, 0x0202c026, 0x07a003a6, - 0x00683e20, 0x070060ff, 0x056c0206, 0x078103d8, - 0x056c0406, 0x068103ef, 0x076c0606, 0x05810465, - 0x04488020, 0x04818380, 0x056c1606, 0x04810473, - 0x07a00659, 0x02800398, 0x040fd02c, 0x0521d000, - 0x0202c013, 0x02020013, 0x050fe028, 0x02860398, - 0x0302c028, 0x0421d002, 0x07a003a6, 0x028003ad, - 0x040fe02a, 0x03860390, 0x0421d007, 0x0202c02a, - 0x07a003a6, 0x02800397, 0x050fe022, 0x02860398, - 0x0421d004, 0x0302c022, 0x07a003a6, 0x04488020, - 0x0581839a, 0x07a00659, 0x0484803e, 0x0280004a, - 0x040fd02c, 0x0521d000, 0x0202c013, 0x02020013, - 0x02800398, 0x040fe02a, 0x02860398, 0x0421d007, - 0x0202c02a, 0x07a003a6, 0x07a00659, 0x02800398, - 0x0460082c, 0x050f80ff, 0x032fa039, 0x03020000, - 0x0102d005, 0x01018006, 0x07c00000, 0x0400702c, - 0x05a004a6, 0x007a0101, 0x07060000, 0x07303000, - 0x07008290, 0x07600018, 0x050f80ff, 0x053fa809, - 0x07000003, 0x0448e007, 0x058183bb, 0x06006013, - 0x028003c2, 0x02400010, 0x078103bb, 0x06006010, - 0x0460342c, 0x050f80ff, 0x073fa00a, 0x07000003, - 0x050f801e, 0x032fa03a, 0x063aa020, 0x06000002, - 0x013e4000, 0x07000030, 0x029803c8, 0x070ff0f6, - 0x036830ff, 0x058183c9, 0x070f001e, 0x0760122d, - 0x050f10ff, 0x063f3c08, 0x0600000d, 0x013e4000, - 0x06000020, 0x040f801a, 0x0320000a, 0x022017d0, - 0x032fa012, 0x02800398, 0x04007013, 0x05a004a6, - 0x007a0101, 0x07050000, 0x07303000, 0x07008890, - 0x074d0005, 0x06006013, 0x050f801e, 0x032fa03a, - 0x07f00000, 0x05601c2d, 0x050f80ff, 0x022fa019, - 0x04001002, 0x04002013, 0x040f801f, 0x022fa01a, - 0x073aa00c, 0x06000002, 0x07300c03, 0x0600000d, - 0x01800493, 0x04007013, 0x05a004a6, 0x007a0101, - 0x03070000, 0x04602a2c, 0x050f80ff, 0x073fa009, - 0x06000004, 0x02499008, 0x078103fc, 0x07303000, - 0x07008890, 0x028003fe, 0x07303000, 0x04008980, - 0x05007003, 0x074d0005, 0x06006013, 0x050f801e, - 0x032fa03a, 0x07f00000, 0x0560162d, 0x050f80ff, - 0x032fa021, 0x07f00000, 0x064b0002, 0x02499008, - 0x0581040c, 0x0644c002, 0x054b0400, 0x050040ff, - 0x06698104, 0x07818421, 0x06000013, 0x04001013, - 0x04780102, 0x06000010, 0x06003013, 0x04004013, - 0x06005013, 0x06006013, 0x04007013, 0x00644015, - 0x0582041d, 0x04448002, 0x02205008, 0x040f801f, - 0x032fa042, 0x04008015, 0x0080045d, 0x046c8004, - 0x0681842f, 0x01208018, 0x06780002, 0x07000003, - 0x06818432, 0x06003001, 0x06000013, 0x04001013, - 0x04004013, 0x06005013, 0x040f801f, 0x022fa032, - 0x0080045d, 0x040fd02c, 0x07a0067d, 0x03800014, - 0x0379ff03, 0x070000ff, 0x04488002, 0x05810439, - 0x070ff003, 0x04500408, 0x050080ff, 0x0379ff00, - 0x070000ff, 0x06489002, 0x04810440, 0x070ff000, - 0x04500408, 0x050080ff, 0x07005003, 0x05004000, - 0x06003001, 0x06000013, 0x04001013, 0x040f801f, - 0x022fa032, 0x07f00000, 0x07601e2d, 0x050f80ff, - 0x022fa031, 0x07f00000, 0x06600c1f, 0x050f80ff, - 0x022fa032, 0x02680608, 0x0481045d, 0x016408ff, - 0x057dfeff, 0x07ffffff, 0x034000ff, 0x045a0407, - 0x070000ff, 0x0760061e, 0x050f80ff, 0x032fa00a, - 0x07f00000, 0x06600908, 0x0669f908, 0x027a0008, - 0x06000020, 0x070aa0ff, 0x024a2408, 0x037a00ff, - 0x060000dc, 0x070000ff, 0x01800493, 0x04007013, - 0x05a004a6, 0x007a0101, 0x07030000, 0x07303000, - 0x07008190, 0x06006013, 0x050f801e, 0x032fa03a, - 0x073aa000, 0x06000002, 0x07300c00, 0x07000005, - 0x01800493, 0x04007013, 0x05a004a6, 0x007a0101, - 0x07810000, 0x07303000, 0x07000090, 0x06006013, - 0x04600e2c, 0x050f80ff, 0x053fa809, 0x07000003, - 0x04780107, 0x07ffff00, 0x007c0107, 0x07000500, - 0x06818486, 0x07303000, 0x05000890, 0x074d0005, - 0x04602a2c, 0x050f80ff, 0x053fa809, 0x07000003, - 0x0049d007, 0x0581048d, 0x02206001, 0x050f801e, - 0x032fa03a, 0x073aa000, 0x06000002, 0x07300c00, - 0x07000005, 0x013e4000, 0x07000030, 0x01980495, - 0x070ff0f6, 0x036830ff, 0x07818496, 0x070f001e, - 0x040f101f, 0x070f3000, 0x013e4000, 0x06000020, - 0x040f801a, 0x0320000a, 0x022017d0, 0x032fa012, - 0x02800398, 0x03200000, 0x06006076, 0x008004a8, - 0x03200011, 0x0600602c, 0x07a0058e, 0x05600406, - 0x050f80ff, 0x053fa809, 0x06000002, 0x07c00000, - 0x02076031, 0x04600876, 0x050f80ff, 0x032fa039, - 0x03075000, 0x0107b005, 0x01018006, 0x06600076, - 0x050020ff, 0x050f80ff, 0x032fa011, 0x05031000, - 0x038684c5, 0x04031001, 0x038684c3, 0x06030013, - 0x07601818, 0x050f80ff, 0x053fa80a, 0x07000009, - 0x008004cb, 0x06030001, 0x008004cb, 0x040fe001, - 0x018604be, 0x07600030, 0x050f80ff, 0x012fa80a, - 0x06030001, 0x06000013, 0x04001013, 0x040f8002, - 0x032fa012, 0x06273001, 0x0448b075, 0x068184d6, - 0x06602276, 0x050f80ff, 0x053fa811, 0x0700003c, - 0x0179fe78, 0x070000ff, 0x030190ff, 0x038684de, - 0x04a004f2, 0x00078019, 0x009204f1, 0x03800587, - 0x040fd076, 0x040fd019, 0x04600276, 0x050020ff, - 0x050f80ff, 0x032fa009, 0x040f8002, 0x053fa80a, - 0x07000009, 0x050fe000, 0x038684ee, 0x07601818, - 0x050f80ff, 0x053fa80a, 0x07000009, 0x008004ef, - 0x05a00114, 0x07273000, 0x02076013, 0x0280004a, - 0x048b04f2, 0x03385000, 0x07030000, 0x05600818, - 0x050f80ff, 0x032fa009, 0x07f00000, 0x054b0400, - 0x0308a0ff, 0x04487075, 0x06810515, 0x06604476, - 0x050f80ff, 0x012fa811, 0x00680701, 0x046c0201, - 0x04818515, 0x0279ff02, 0x070000ff, 0x0379ff00, - 0x070000ff, 0x05001000, 0x060ff002, 0x01540400, - 0x06820513, 0x04001002, 0x060ff001, 0x04500402, - 0x070030ff, 0x01540400, 0x06820513, 0x05001003, - 0x0581850c, 0x00088001, 0x03800518, 0x0179fe00, - 0x070000ff, 0x010880ff, 0x0448b075, 0x0681052f, - 0x0560167b, 0x050f80ff, 0x002fa819, 0x02080002, - 0x01081003, 0x064b0001, 0x00082001, 0x034960e4, - 0x06810529, 0x02681e02, 0x05818527, 0x02642201, - 0x04828529, 0x013e4000, 0x07003000, 0x02083001, - 0x02079001, 0x0207a001, 0x00084013, 0x0207f013, - 0x0280057f, 0x06485075, 0x07810556, 0x02465075, - 0x04601676, 0x050f80ff, 0x073fa021, 0x0600003e, + 0x0700ffff, 0x045c0401, 0x07818730, 0x05601041, + 0x050f80ff, 0x032fa069, 0x07480000, 0x0481074f, + 0x06780043, 0x070000f0, 0x07810072, 0x037c00ff, + 0x06000010, 0x07810072, 0x0180074b, 0x0379ff00, + 0x070fffff, 0x06780043, 0x07f00000, 0x075a0000, + 0x020ef001, 0x0186074d, 0x05484000, 0x03a1822d, + 0x062d6001, 0x002fb001, 0x070ff069, 0x00868085, + 0x060ff079, 0x055c0441, 0x06810010, 0x012fb000, + 0x060560fb, 0x0380008b, 0x060ff079, 0x02868208, + 0x070ff069, 0x055c0441, 0x06810010, 0x060560fb, + 0x0400d0d0, 0x062d6002, 0x0648300d, 0x07810099, + 0x070ff0d1, 0x062d6001, 0x045c040b, 0x0781009c, + 0x05488000, 0x05818099, 0x072e500c, 0x00208001, + 0x06a00607, 0x02800010, 0x062d6001, 0x07f00000, + 0x07f00000, 0x070ff0d1, 0x0179feff, 0x070000ff, + 0x055c040c, 0x0781810a, 0x0007b001, 0x03079041, + 0x0307a000, 0x06600a79, 0x050f80ff, 0x053fa80a, + 0x06000010, 0x068d00a8, 0x0307c003, 0x0007d004, + 0x0107e005, 0x0307f006, 0x02080007, 0x00081008, + 0x01082009, 0x0308300a, 0x018680bd, 0x0448d07a, + 0x058180bd, 0x0448b07a, 0x05810756, 0x06604479, + 0x050f80ff, 0x053fa809, 0x06000001, 0x01680703, + 0x076c0303, 0x07818756, 0x072d5003, 0x0049107a, + 0x068100c7, 0x070ff009, 0x0154040a, 0x058280c6, + 0x078d00c3, 0x0108200a, 0x032ff000, 0x010770ff, + 0x0008400b, 0x0308500c, 0x0678007a, 0x04000108, + 0x078100e1, 0x078d00cc, 0x06603c79, 0x050f80ff, + 0x073fa041, 0x0600004a, 0x0249007a, 0x068100da, + 0x068d00d3, 0x06602279, 0x050f80ff, 0x032fa009, + 0x07780000, 0x03800000, 0x078100e1, 0x068d00da, + 0x0678007a, 0x07f00000, 0x010880ff, 0x02386008, + 0x03010000, 0x038000e7, 0x078d00e1, 0x0678007a, + 0x07f00000, 0x010880ff, 0x03386000, 0x03010000, + 0x072e6300, 0x020ef07f, 0x02860010, 0x070ff07d, + 0x0450047c, 0x050f80ff, 0x002fa819, 0x078d00ee, + 0x02080001, 0x00081002, 0x0678007a, 0x04000201, + 0x078100fa, 0x0448807a, 0x068100f8, 0x0379ff03, + 0x070000ff, 0x0049107a, 0x02a18226, 0x01082003, + 0x068d00fb, 0x0448b07a, 0x07818103, 0x0249007a, + 0x05810106, 0x07780003, 0x03800000, 0x05810106, + 0x0338600c, 0x03010000, 0x00800108, 0x02386004, + 0x03010000, 0x072e6c00, 0x02800010, 0x06780043, + 0x070000f0, 0x04810758, 0x050020ff, 0x027c0002, + 0x06000010, 0x05810112, 0x00800758, 0x0700c0d1, + 0x0379ff0c, 0x070000ff, 0x028000a1, 0x0204a051, + 0x06780043, 0x070000f0, 0x037c00ff, 0x06000010, + 0x068181bf, 0x072d6000, 0x02948734, 0x050fb056, + 0x044880e6, 0x04818010, 0x060ff0d0, 0x0179feff, + 0x0700ffff, 0x057dfeff, 0x0700ffff, 0x05810730, + 0x0349c0e4, 0x06818173, 0x013e4000, 0x070c0000, + 0x07f00000, 0x0349c0e4, 0x06818173, 0x070ff093, + 0x045a0201, 0x070ff093, 0x045c0401, 0x0781812e, + 0x02046092, 0x04002046, 0x060ff002, 0x045c0401, + 0x0703a0ff, 0x04600202, 0x00540401, 0x0782813c, + 0x04500425, 0x070060ff, 0x0730ffff, 0x0700000f, + 0x0742000f, 0x05810200, 0x05a00718, 0x0648a002, + 0x0781813f, 0x00047089, 0x070ff047, 0x045c0443, + 0x077800ff, 0x07f00000, 0x068181fe, 0x07780047, + 0x0500e000, 0x0681871f, 0x070ff006, 0x0086016d, + 0x0179fe47, 0x0700000f, 0x010480ff, 0x056c7048, + 0x06818158, 0x007a0d4a, 0x04003801, 0x0220f001, + 0x01800165, 0x07608e48, 0x034a60ff, 0x0700f0ff, + 0x074b88ff, 0x037000ff, 0x07000600, 0x05500448, + 0x074d00ff, 0x045a044a, 0x0304a0ff, 0x070ff00f, + 0x01540406, 0x0482016d, 0x04950175, 0x05a0024d, + 0x03868178, 0x0134bfff, 0x070fffff, 0x0104102e, + 0x050fd041, 0x0080017a, 0x04950173, 0x05a0024d, + 0x00860173, 0x0202f00e, 0x052e4030, 0x040fd02f, + 0x05a002ac, 0x02800010, 0x0400e02f, 0x042e4020, + 0x0202f051, 0x0004100e, 0x0004b00e, 0x024a6c46, + 0x04500423, 0x050070ff, 0x03620024, 0x050080ff, + 0x04004046, 0x0700500f, 0x03206000, 0x05601048, + 0x0700a0ff, 0x0700900a, 0x070ff005, 0x04500446, + 0x00540425, 0x048201ab, 0x07601822, 0x050f80ff, + 0x063fa032, 0x06000002, 0x03203000, 0x01204000, + 0x03205000, 0x0120b000, 0x0320c000, 0x05601641, + 0x050f80ff, 0x043fa852, 0x06000001, 0x070ff056, + 0x056c02ff, 0x050fb0ff, 0x070560ff, 0x03079041, + 0x05601041, 0x050f80ff, 0x073fa011, 0x0600003d, + 0x06780043, 0x07f00000, 0x065a007a, 0x010880ff, + 0x04a00246, 0x048d01a4, 0x0208a04a, 0x0108b04b, + 0x02386001, 0x03010000, 0x072e6300, 0x038000e8, + 0x0500d00a, 0x05500405, 0x014a68ff, 0x070090ff, + 0x0154040a, 0x0700c0ff, 0x0600a023, 0x0500b024, + 0x02206001, 0x07601822, 0x050f80ff, 0x063fa04a, + 0x06000002, 0x07f00000, 0x07601222, 0x050f80ff, + 0x043fa819, 0x06000001, 0x0600a00d, 0x01800190, + 0x06780043, 0x070000f0, 0x050010ff, 0x027c0001, + 0x07000030, 0x04810726, 0x027c0001, 0x06000020, + 0x04810726, 0x0180074b, 0x074860ff, 0x068181e5, + 0x054880ff, 0x06810010, 0x070ff056, 0x050fb0ff, + 0x044880e5, 0x058101d4, 0x044880e6, 0x04818010, + 0x008001da, 0x056c02ff, 0x050fb0ff, 0x070560ff, + 0x072e5300, 0x044880e6, 0x04818010, 0x072d5003, + 0x06780043, 0x07f00000, 0x010880ff, 0x058d01de, + 0x03386005, 0x03010000, 0x033e6000, 0x0700000c, + 0x052e5200, 0x02800010, 0x0448e0e6, 0x04818010, + 0x002fb008, 0x0448e0e6, 0x04818010, 0x05301fff, + 0x0700000f, 0x06420001, 0x05810200, 0x05a00718, + 0x0648a002, 0x068181ec, 0x062e5080, 0x04001089, + 0x040fd002, 0x040fd001, 0x02499001, 0x0481021f, + 0x070ff0d4, 0x050fd0ff, 0x045c0401, 0x077800ff, + 0x07f00000, 0x0681821f, 0x02800010, 0x002091fe, + 0x0380060a, 0x01209200, 0x0380060a, 0x00209202, + 0x0380060a, 0x03209000, 0x0380060a, 0x01209206, + 0x0380060a, 0x00209208, 0x0380060a, 0x06780043, + 0x07009000, 0x06818215, 0x00498043, 0x04810215, + 0x0648a0e5, 0x04810216, 0x027c0045, 0x03040000, + 0x05810218, 0x075c00ff, 0x07c00000, 0x056a02ff, + 0x00800215, 0x01800214, 0x06780075, 0x06000c07, + 0x0781066c, 0x00209219, 0x070fc0ff, 0x07a005f5, + 0x070fc0ff, 0x05308000, 0x0700a000, 0x06a00607, + 0x033e5000, 0x0700000c, 0x02800010, 0x070ff003, + 0x01540477, 0x0782822b, 0x07003077, 0x060ff051, + 0x010770ff, 0x07c00000, 0x04602001, 0x050f80ff, + 0x063fa029, 0x06000008, 0x02015010, 0x02016051, + 0x00017051, 0x00011051, 0x05601c41, 0x050f80ff, + 0x053fa83a, 0x06000008, 0x07f00000, 0x05601041, + 0x050f80ff, 0x01464000, 0x032fa00a, 0x07006011, + 0x05007012, 0x04008013, 0x07009014, 0x0600a015, + 0x0400b016, 0x0700c017, 0x07c00000, 0x072d5003, + 0x04601679, 0x050f80ff, 0x048d0249, 0x063fa051, + 0x0600003e, 0x07c00000, 0x06005051, 0x0400e02c, + 0x0660060e, 0x050f80ff, 0x032fa009, 0x0379ff00, + 0x070000ff, 0x076c0000, 0x0581026f, 0x0460580e, + 0x0500e0ff, 0x034000ff, 0x01540427, 0x05820299, + 0x03400005, 0x070ff005, 0x055c0428, 0x0481029b, + 0x056c0805, 0x0681824f, 0x040f8029, 0x053fa809, + 0x07000024, 0x07f00000, 0x06600649, 0x050f80ff, + 0x032fa009, 0x0379ff00, 0x070000ff, 0x076c0000, + 0x0681824f, 0x05a0029f, 0x0400e049, 0x00800270, + 0x05a0029f, 0x072d6000, 0x0460040e, 0x050f80ff, + 0x0004d0d0, 0x0379ff4d, 0x0700ffff, 0x0104e0d1, + 0x0379ff4e, 0x0700ffff, 0x062d6002, 0x032fa009, + 0x0204f0d0, 0x064b004f, 0x07780000, 0x07ffff00, + 0x045a044f, 0x070000ff, 0x00201008, 0x04002051, + 0x06003051, 0x01204000, 0x07305000, 0x07000060, + 0x03206009, 0x05007022, 0x0460040e, 0x050f80ff, + 0x032fa042, 0x07f00000, 0x04604c0e, 0x050f80ff, + 0x053fa812, 0x06000026, 0x050010d1, 0x0460340e, + 0x050f80ff, 0x012fa80a, 0x060ff00e, 0x055c042e, + 0x0481029d, 0x07c00000, 0x0400e026, 0x0080025b, + 0x0500e02e, 0x00800270, 0x0400e051, 0x00800298, + 0x0340002d, 0x050f802b, 0x053fa80a, 0x06000016, + 0x07f00000, 0x0460580e, 0x0302c0ff, 0x034000ff, + 0x01540427, 0x058202aa, 0x07c00000, 0x0202c026, + 0x018002a9, 0x013e4000, 0x03080000, 0x07c00000, + 0x077800e4, 0x07000005, 0x058183b4, 0x022a5002, + 0x069082b3, 0x0391033c, 0x030400a6, 0x0678aae5, + 0x06000051, 0x03a1878e, 0x04600e40, 0x050f80ff, + 0x032fa021, 0x07f00000, 0x074b0000, 0x076c0600, + 0x0481833e, 0x060ff002, 0x01580403, 0x06810349, + 0x05600403, 0x050f80ff, 0x073fa009, 0x06000002, + 0x0279ff04, 0x0700ffff, 0x010440d7, 0x0179fe44, + 0x0700ffff, 0x045c0404, 0x04818340, 0x0349f044, + 0x0581834b, 0x02495001, 0x05818342, 0x060ff079, + 0x045c0440, 0x068182d6, 0x0644f07a, 0x002fb008, + 0x060ff079, 0x045c0440, 0x078182db, 0x0644f07a, + 0x002fb008, 0x0648f001, 0x05818333, 0x04601040, + 0x050f80ff, 0x06480001, 0x058102fa, 0x0448e001, + 0x0681031f, 0x02460001, 0x0644f001, 0x012fa80a, + 0x04008040, 0x00491001, 0x04818337, 0x07a00614, + 0x00868337, 0x070050d8, 0x05780105, 0x07ffff00, + 0x04600e02, 0x050f80ff, 0x053fa812, 0x06000002, + 0x06a005fe, 0x062da001, 0x013e4000, 0x06000080, + 0x06930013, 0x02920013, 0x02800010, 0x0644f001, + 0x012fa80a, 0x020ef002, 0x03860321, 0x04600840, + 0x050f80ff, 0x053fa809, 0x06000002, 0x05780105, + 0x00800440, 0x017c0105, 0x05000400, 0x05818321, + 0x04602002, 0x050f80ff, 0x053fa809, 0x06000002, + 0x07f00000, 0x04602c40, 0x050f80ff, 0x070ff005, + 0x053fa809, 0x06000002, 0x055c0405, 0x05818321, + 0x070050d8, 0x05780105, 0x07ffff00, 0x06006051, + 0x04600e02, 0x050f80ff, 0x053fa812, 0x06000002, + 0x04008040, 0x0045e008, 0x06a005fe, 0x008002f4, + 0x0644f001, 0x012fa80a, 0x050020d8, 0x04600440, + 0x050f80ff, 0x073fa00a, 0x06000001, 0x06480001, + 0x0581832d, 0x05308000, 0x03040000, 0x06009040, + 0x06a00602, 0x008002f4, 0x05a0078e, 0x03200003, + 0x06600c40, 0x050f80ff, 0x032fa00a, 0x008002f4, + 0x013e4000, 0x06000080, 0x03209333, 0x0380060a, + 0x06009008, 0x05308000, 0x05004000, 0x06a00602, + 0x008002f4, 0x02209002, 0x038003a5, 0x03209000, + 0x038003a5, 0x02209004, 0x038003a5, 0x07a003bd, + 0x062da001, 0x05308000, 0x05002000, 0x06009040, + 0x06a00602, 0x018002f5, 0x02209008, 0x038003a5, + 0x013e4000, 0x06000080, 0x02495001, 0x0481839b, + 0x04600840, 0x050f80ff, 0x053fa809, 0x06000001, + 0x0721f000, 0x0349f003, 0x06810357, 0x0245f01f, + 0x06000002, 0x05601600, 0x050f80ff, 0x012fa809, + 0x06480001, 0x0681039b, 0x04481001, 0x0481839b, + 0x04602640, 0x050f80ff, 0x012fa809, 0x020ef001, + 0x0086839b, 0x029b039b, 0x050020d8, 0x062da001, + 0x06303002, 0x05000430, 0x04600440, 0x050f80ff, + 0x073fa012, 0x06000001, 0x008f836d, 0x050040d8, + 0x062da001, 0x05602000, 0x050f80ff, 0x073fa009, + 0x06000001, 0x060ff004, 0x00540402, 0x07820399, + 0x06005051, 0x06006051, 0x06602440, 0x050f80ff, + 0x063fa01a, 0x06000002, 0x07f00000, 0x06600a40, + 0x050f80ff, 0x073fa00a, 0x07000003, 0x07f00000, + 0x04600840, 0x050f80ff, 0x053fa809, 0x06000001, + 0x05487003, 0x07810393, 0x060ff002, 0x00540404, + 0x05828393, 0x05308000, 0x07005000, 0x06009040, + 0x06a00602, 0x04008004, 0x06a00607, 0x02800013, + 0x060ff040, 0x045a041f, 0x010eb0ff, 0x06930013, + 0x02920013, 0x02800010, 0x04004002, 0x03800377, + 0x07a003bd, 0x062da001, 0x05308000, 0x07005000, + 0x06009040, 0x06a00602, 0x050080d8, 0x06a00607, + 0x062da001, 0x02800013, 0x050fd009, 0x040fd040, + 0x013e4000, 0x06000080, 0x05308000, 0x03013000, + 0x06a00602, 0x010440d7, 0x0349f044, 0x078103b2, + 0x062da001, 0x038f03b2, 0x03e00000, 0x062da001, + 0x02800013, 0x0249c0e5, 0x06810013, 0x062da001, + 0x07f00000, 0x07f00000, 0x033e5000, 0x070c0000, + 0x028f03b6, 0x03800011, 0x050020d8, 0x04600440, + 0x050f80ff, 0x073fa00a, 0x06000001, 0x07c00000, + 0x002fb001, 0x038003c6, 0x012fb000, 0x03075087, + 0x068d03c7, 0x03386000, 0x03020000, 0x04482075, + 0x04810438, 0x0648a0e6, 0x04810416, 0x0642007f, + 0x05810414, 0x0340007e, 0x060ff038, 0x0154047e, + 0x01d00403, 0x0560027d, 0x050f80ff, 0x032fa009, + 0x030ef000, 0x02860667, 0x0107d000, 0x07600a00, + 0x050f80ff, 0x032fa009, 0x03681e00, 0x04500420, + 0x050f80ff, 0x073fa009, 0x0700003f, 0x038003d1, 0x070ff07d, 0x0450047c, 0x050f80ff, 0x002fa819, - 0x078b053a, 0x034960e4, 0x06810543, 0x02681e01, - 0x05818541, 0x03642203, 0x04828543, 0x013e4000, + 0x078d03e7, 0x02080001, 0x00081002, 0x0678007a, + 0x04000201, 0x078103f3, 0x0448807a, 0x068103f1, + 0x0379ff03, 0x070000ff, 0x0049107a, 0x02a18226, + 0x01082003, 0x068d03f4, 0x0448b07a, 0x058183fc, + 0x0249007a, 0x078103ff, 0x07780003, 0x03800000, + 0x078103ff, 0x0338600c, 0x03010000, 0x00800401, + 0x02386004, 0x03010000, 0x072e6c00, 0x00800438, + 0x01800409, 0x0080040b, 0x0080040d, 0x0180040f, + 0x01800411, 0x00800413, 0x0727c006, 0x028003e3, + 0x0727c009, 0x028003e3, 0x0727c00c, 0x028003e3, + 0x0727c00f, 0x028003e3, 0x0727c012, 0x028003e3, + 0x038003d4, 0x052e6800, 0x00800438, 0x044880e6, + 0x0781069c, 0x052e6200, 0x070ff088, 0x0179feff, + 0x070fffff, 0x01a18642, 0x04818638, 0x0249607a, + 0x07818456, 0x060ff083, 0x03868456, 0x033e6000, + 0x07000003, 0x0448b07a, 0x04810438, 0x06604479, + 0x050f80ff, 0x032fa009, 0x03680600, 0x076c00ff, + 0x06818438, 0x04604679, 0x050f80ff, 0x032fa009, + 0x07f00000, 0x074b0000, 0x070ff000, 0x048d0432, + 0x05001099, 0x064b0001, 0x045c0401, 0x04810438, + 0x0245a07a, 0x048d0438, 0x07286000, 0x07f00000, + 0x048d043b, 0x038c03c6, 0x0648c0e6, 0x0681845b, + 0x0448e0e6, 0x05810453, 0x01209441, 0x02490075, + 0x0681821f, 0x004920e6, 0x0581044e, 0x07a006e1, + 0x05001088, 0x00700101, 0x03100000, 0x00088001, + 0x033e6000, 0x07000088, 0x038006d2, 0x02386001, + 0x07030000, 0x033e6000, 0x06000008, 0x018004ed, + 0x02799075, 0x0700050f, 0x06810010, 0x04601679, + 0x050080ff, 0x06309052, 0x0600003e, 0x0180045f, + 0x06602479, 0x050080ff, 0x05309812, 0x07000041, + 0x0648007a, 0x05810471, 0x04488075, 0x07818471, + 0x0678007a, 0x04000108, 0x0481046d, 0x06603c79, + 0x050f80ff, 0x048d0468, 0x073fa042, 0x0600004a, + 0x048d046b, 0x02086051, 0x040f8008, 0x070fa009, + 0x0049107a, 0x02a184ef, 0x00798075, 0x06000507, + 0x04818683, 0x0448b075, 0x05810478, 0x02493075, + 0x0681067f, 0x0648c0e6, 0x0781848b, 0x048d047a, + 0x02386001, 0x07030000, 0x0049107a, 0x05810481, + 0x020ef083, 0x0186048b, 0x06483075, 0x058104eb, + 0x0678007a, 0x07000035, 0x01a185f5, 0x05308000, + 0x07060000, 0x06009079, 0x06a00602, 0x018004eb, + 0x06483075, 0x0681061f, 0x058d048d, 0x02386001, + 0x07030000, 0x0444e07a, 0x0648307a, 0x068184bf, + 0x0448707a, 0x048104e6, 0x0648f07a, 0x058104a9, + 0x07a005f5, 0x04008079, 0x07a00614, 0x028684ba, + 0x0049107a, 0x068184ba, 0x04600408, 0x050f80ff, + 0x053fa809, 0x06000002, 0x05780105, 0x07ffff00, + 0x05600e7b, 0x050f80ff, 0x053fa812, 0x06000002, + 0x06a005fe, 0x018004eb, 0x0760127b, 0x050f80ff, + 0x032fa009, 0x0349c000, 0x078184b8, 0x04601079, + 0x050f80ff, 0x073fa00a, 0x0600003d, 0x07f00000, + 0x06600a79, 0x050f80ff, 0x053fa80a, 0x06000010, + 0x018004eb, 0x0046e07a, 0x008004e6, 0x06009008, + 0x05308000, 0x05004000, 0x06a00602, 0x018004eb, + 0x0760187b, 0x050f80ff, 0x032fa011, 0x070ff000, + 0x04500401, 0x030460ff, 0x060ff025, 0x00540446, + 0x048204d3, 0x030460ff, 0x052e40c0, 0x04092046, + 0x0349a0e4, 0x068184d0, 0x003e4080, 0x0700c000, + 0x018004d4, 0x003e4080, 0x05008000, 0x018004d4, + 0x04092046, 0x070ff03a, 0x038684d8, 0x013e4000, + 0x07000003, 0x05a002ac, 0x06600679, 0x050f80ff, + 0x00201007, 0x012fa80a, 0x0046047a, 0x034630ff, + 0x050020ff, 0x06003051, 0x04601079, 0x050f80ff, + 0x073fa012, 0x06000001, 0x018004eb, 0x07a005f5, + 0x05308000, 0x03020000, 0x06009079, 0x06a00602, + 0x033e6a00, 0x0700000a, 0x02079051, 0x02800010, + 0x06605079, 0x050f80ff, 0x032fa009, 0x070ff000, + 0x02860508, 0x057dfeff, 0x07ffffff, 0x06810508, + 0x050f8000, 0x012fa811, 0x0079fe02, 0x070000ff, + 0x077d66ff, 0x060000dc, 0x04818508, 0x060ff001, + 0x01868509, 0x064b0002, 0x06420002, 0x060ff002, + 0x05500400, 0x050f80ff, 0x05004084, 0x073fa00a, + 0x06000002, 0x07c00000, 0x04600201, 0x050f80ff, + 0x073fa009, 0x06000001, 0x0079fe02, 0x070000ff, + 0x077d72ff, 0x070000dd, 0x04818508, 0x064b0002, + 0x06420002, 0x06000001, 0x02800502, 0x0605004c, + 0x0280051a, 0x06930516, 0x06a005fb, 0x054bc450, + 0x0781051d, 0x03d0051e, 0x0380051d, 0x0380052e, + 0x03800530, 0x028005ba, 0x028005cd, 0x0280053d, + 0x03800530, 0x03800584, 0x0380052e, 0x0380052e, + 0x038005d1, 0x0380052e, 0x028005d5, 0x028005ea, + 0x038005a6, 0x0380052e, 0x0380052e, 0x0320952e, + 0x0380060a, 0x073c3fff, 0x0700000f, 0x0379ff50, + 0x070fffff, 0x060ff079, 0x055c0450, 0x078105ca, + 0x002fb008, 0x060ff079, 0x055c0450, 0x078105c9, + 0x07a005ed, 0x028005c2, 0x0179fe50, 0x070fffff, + 0x070050ff, 0x060ff079, 0x055c0405, 0x07810547, + 0x002fb008, 0x060ff079, 0x055c0405, 0x058185c6, + 0x073c3fff, 0x0700000f, 0x070ff087, 0x017980ff, + 0x06000507, 0x05818556, 0x02203040, 0x05002087, + 0x0049d002, 0x05818556, 0x002fb008, 0x07006087, + 0x002fb008, 0x0149d006, 0x0781057e, 0x0693055b, + 0x01257000, 0x052e4003, 0x072e5030, 0x0304c050, + 0x02400057, 0x06740057, 0x06000004, 0x06820016, + 0x0049107a, 0x02a184ef, 0x04002083, 0x07003084, + 0x04004085, 0x06602479, 0x050f80ff, 0x063fa01a, + 0x06000001, 0x07a005f5, 0x06a006ea, 0x033e6a00, + 0x0700000a, 0x062e5020, 0x05a00718, 0x02798102, + 0x070000ff, 0x007c8002, 0x07000055, 0x0781057b, + 0x072e50c0, 0x0648a002, 0x0781057b, 0x068d0576, + 0x03386006, 0x03010000, 0x033e6000, 0x0700000c, + 0x003e4002, 0x07000a00, 0x018004ed, 0x07420003, + 0x0581854e, 0x00798002, 0x06000507, 0x05818556, + 0x0380055f, 0x0793058b, 0x01257000, 0x073c3fff, + 0x0700000f, 0x052e4003, 0x072e5030, 0x0304c050, + 0x067800e6, 0x07000041, 0x07810590, 0x07a006f3, + 0x0481859b, 0x002fb008, 0x067800e6, 0x07000041, + 0x07810596, 0x07a006f3, 0x0481859b, 0x062e5020, + 0x003e4002, 0x07000a00, 0x03e00000, 0x02800010, + 0x06740057, 0x07000018, 0x06820016, 0x06a006ea, + 0x033e6a00, 0x0700000a, 0x002fb008, 0x06a006ea, + 0x033e6a00, 0x0700000a, 0x03800596, 0x0379ff50, + 0x070fffff, 0x060ff079, 0x055c0450, 0x058185ac, + 0x0245507a, 0x002fb008, 0x060ff079, 0x055c0450, + 0x058185b1, 0x0245507a, 0x002fb008, 0x05601050, + 0x050f80ff, 0x012fa809, 0x02455001, 0x05601050, + 0x050f80ff, 0x012fa80a, 0x038005c3, 0x059585ca, + 0x0179fe50, 0x070fffff, 0x045c042f, 0x058185ca, + 0x0202f051, 0x042e4020, 0x038005c3, 0x002fb008, + 0x003e4002, 0x07000a00, 0x02800016, 0x059385c9, + 0x062e5020, 0x042e4002, 0x002fb008, 0x013e4000, + 0x05000e00, 0x02800016, 0x0179fe50, 0x070fffff, + 0x010210ff, 0x02800016, 0x0179fe50, 0x070fffff, + 0x050340ff, 0x038005c3, 0x0179fe50, 0x070fffff, + 0x0102e0ff, 0x05602a2e, 0x050f80ff, 0x05222000, + 0x07223000, 0x05224000, 0x07225000, 0x07226000, + 0x05227000, 0x05228000, 0x07229000, 0x0722a000, + 0x0522b000, 0x063fa051, 0x07000011, 0x0202c026, + 0x0522d000, 0x052e400c, 0x02800016, 0x030430d4, + 0x062e5008, 0x008001cd, 0x05601050, 0x050f80ff, + 0x032fa009, 0x03460000, 0x028005f8, 0x0246007a, + 0x0045207a, 0x038005f6, 0x0246007a, 0x0600007a, + 0x04601079, 0x050f80ff, 0x032fa00a, 0x07c00000, + 0x009285fb, 0x070500e1, 0x07c00000, 0x0245f008, + 0x078405ff, 0x020e0008, 0x07c00000, 0x070ff009, + 0x065a0008, 0x06840604, 0x020e0008, 0x07c00000, + 0x06840607, 0x020e0008, 0x07c00000, 0x05308000, + 0x0500d000, 0x06a00602, 0x07a0060f, 0x02800010, + 0x052e4300, 0x072e500c, 0x073c3fff, 0x0700000f, + 0x07c00000, 0x06602408, 0x050f80ff, 0x032fa011, + 0x076a0000, 0x0581861d, 0x066a0001, 0x0781061d, + 0x06006051, 0x07c00000, 0x02206001, 0x07c00000, + 0x0678007a, 0x07000021, 0x05818627, 0x0049107a, + 0x07810627, 0x073c3fff, 0x0700000f, 0x0180048d, + 0x040fd079, 0x0648307a, 0x0681062c, 0x04a00785, + 0x02800631, 0x06a005f2, 0x05308000, 0x05001000, + 0x06009079, 0x06a00602, 0x068d0631, 0x033e6a00, + 0x0600000e, 0x02079051, 0x03386006, 0x03010000, + 0x02800010, 0x0648307a, 0x0781063c, 0x04a00785, + 0x038006d2, 0x06a005f2, 0x05308000, 0x05001000, + 0x06009079, 0x06a00602, 0x038006d2, 0x050010ff, + 0x0448b07a, 0x07810650, 0x0049107a, 0x07810650, + 0x078d0647, 0x06604479, 0x050f80ff, 0x032fa009, + 0x03680600, 0x056c02ff, 0x05818650, 0x046c1001, + 0x06810652, 0x056a02ff, 0x07c00000, 0x07a00655, + 0x075c00ff, 0x07c00000, 0x078d0655, 0x060ff07c, + 0x070ff07d, 0x070ff07e, 0x060ff07f, 0x060ff080, + 0x070ff081, 0x070ff082, 0x060ff083, 0x070ff084, + 0x060ff085, 0x0338600c, 0x03010000, 0x008a8662, + 0x078d0663, 0x03386000, 0x03020000, 0x07c00000, + 0x0648307a, 0x07818206, 0x07a005f5, 0x02209667, + 0x0380060a, 0x04002089, 0x04780102, 0x07f00000, + 0x05001088, 0x04740101, 0x03100000, 0x04780101, + 0x07f00000, 0x060ff002, 0x045c0401, 0x05818681, + 0x00088001, 0x033e6000, 0x070000c0, 0x0220901a, + 0x05308000, 0x01012000, 0x06a00602, 0x028006ce, + 0x0220967f, 0x0380060a, 0x03209681, 0x0180021d, + 0x040fd075, 0x040fd07a, 0x040fd079, 0x0648307a, + 0x0681068c, 0x06780075, 0x06000007, 0x04818697, + 0x04a00785, 0x06486075, 0x06818204, 0x02490075, + 0x06818219, 0x04487075, 0x0581869f, 0x0448b07a, + 0x07810696, 0x00492075, 0x048186b0, 0x028006a8, + 0x05308000, 0x03010000, 0x06009079, 0x06a00602, + 0x02800010, 0x0448e0e6, 0x06818438, 0x00800202, + 0x0648307a, 0x048186ce, 0x05308000, 0x0500e000, + 0x06009079, 0x06a00602, 0x04008089, 0x06a00607, + 0x028006ce, 0x06a005f2, 0x05308000, 0x0700f000, + 0x06009079, 0x07000088, 0x07a006b7, 0x06a00602, + 0x02800010, 0x05308000, 0x01011000, 0x06009079, + 0x07000088, 0x07a006b7, 0x06a00602, 0x02800010, + 0x03386000, 0x07030000, 0x07f00000, 0x068d06ba, + 0x033e6a00, 0x0600000e, 0x02079051, 0x0448b075, + 0x078106c5, 0x02493075, 0x078106c5, 0x05301005, + 0x03010000, 0x028006c7, 0x05301006, 0x03010000, + 0x05002087, 0x06485002, 0x048186c7, 0x0744c000, + 0x01088000, 0x02086001, 0x07c00000, 0x05001088, + 0x07a006e1, 0x0644c001, 0x00088001, 0x033e6a00, + 0x0600000e, 0x004920e6, 0x058186d7, 0x02079051, + 0x078d06d7, 0x060ff089, 0x034990ff, 0x078106de, + 0x03386005, 0x03010000, 0x02800010, 0x03386006, + 0x03010000, 0x02800010, 0x078d06e1, 0x03386000, + 0x07030000, 0x07f00000, 0x068d06e5, 0x070ff087, + 0x074850ff, 0x048186e6, 0x07c00000, 0x068d06ea, + 0x02386001, 0x07030000, 0x07f00000, 0x078d06ee, + 0x070ff087, 0x074850ff, 0x048186ef, 0x07c00000, + 0x05002087, 0x0049d002, 0x06818702, 0x002fb008, + 0x067800e6, 0x07000041, 0x002fb008, 0x06818702, + 0x05a00718, 0x0448e002, 0x05810705, 0x0648a002, + 0x0781870f, 0x06486002, 0x05810709, 0x02400057, + 0x056a02ff, 0x07c00000, 0x05a00718, 0x06788102, + 0x06000004, 0x06818702, 0x04002089, 0x070ff0d4, + 0x045c0402, 0x077800ff, 0x07f00000, 0x06818702, + 0x00202010, 0x008c0702, 0x07f00000, 0x06420002, + 0x06818710, 0x06a006ea, 0x033e6a00, 0x0700000a, + 0x07c00000, 0x07f00000, 0x060ff0a2, 0x045a0202, + 0x060ff0a2, 0x045c0402, 0x06818719, 0x07c00000, + 0x05a002ac, 0x03495047, 0x05810724, 0x0320901d, + 0x01800781, 0x0220901f, 0x01800781, 0x014980e4, + 0x04818010, 0x013e4000, 0x07003000, 0x05600e35, + 0x050f80ff, 0x04a00883, 0x01208003, 0x06a00607, + 0x0180074b, 0x066c0045, 0x0481079e, 0x03209009, + 0x01800781, 0x03209011, 0x01800781, 0x02209007, + 0x01800781, 0x03209003, 0x01800781, 0x00497043, + 0x07818736, 0x00494043, 0x04810740, 0x02209001, + 0x01800781, 0x072d6000, 0x027c0045, 0x03080000, + 0x07818730, 0x060ff0d0, 0x0179feff, 0x0700ffff, + 0x057dfeff, 0x0700ffff, 0x058107ac, 0x01800730, + 0x0220900d, 0x01800781, 0x0320900f, 0x01800781, + 0x03493000, 0x04810754, 0x027c0045, 0x070a0000, + 0x0581075f, 0x0220900b, 0x01800781, 0x0320900c, + 0x01800759, 0x02209013, 0x05308000, 0x01012000, + 0x06a00602, 0x008001da, 0x03209005, 0x01800781, + 0x072e500c, 0x00208002, 0x06a00607, 0x02800010, + 0x02209015, 0x01800781, 0x05308000, 0x05007000, + 0x070090d1, 0x0379ff09, 0x0700ffff, 0x06a00602, + 0x03209017, 0x01800781, 0x033e5000, 0x06000080, + 0x02209019, 0x01800781, 0x033e5000, 0x06000080, + 0x060ff0d0, 0x0179feff, 0x0700ffff, 0x057dfeff, + 0x0700ffff, 0x04818010, 0x02400058, 0x00642058, + 0x06820010, 0x033e5000, 0x06000080, 0x04058051, + 0x0320901b, 0x01800781, 0x05308000, 0x01012000, + 0x06a00602, 0x008001cd, 0x05a002ac, 0x070ff02e, + 0x045c0479, 0x0581078d, 0x05308000, 0x05008000, + 0x06009079, 0x06a00602, 0x07c00000, 0x034900e4, + 0x06818798, 0x013e4000, 0x070000c0, 0x07f00000, + 0x034900e4, 0x07818796, 0x07c00000, 0x013e4000, + 0x06000080, 0x07f00000, 0x07f00000, 0x07f00000, + 0x034900e4, 0x05810790, 0x00800798, 0x072d6000, + 0x070ff0d1, 0x0179feff, 0x0700ffff, 0x017c1cff, + 0x070000fc, 0x0681875d, 0x079087a5, 0x00910738, + 0x010410a6, 0x0379ff41, 0x037fffff, 0x03800066, + 0x072d6000, 0x05a00863, 0x020ef004, 0x01860765, + 0x04602604, 0x050f80ff, 0x032fa009, 0x060ff0d0, + 0x0179feff, 0x0700ffff, 0x055c0400, 0x07818763, + 0x06600004, 0x050f80ff, 0x032fa009, 0x07f00000, + 0x074b0000, 0x05002000, 0x0769ff00, 0x01640800, + 0x05820765, 0x01640e00, 0x07828765, 0x070ff036, + 0x045c0404, 0x068187ce, 0x050f8030, 0x032fa009, + 0x0379ff00, 0x0700ffff, 0x070ff0d1, 0x0179feff, + 0x0700ffff, 0x055c0400, 0x05810763, 0x04482034, + 0x0481077c, 0x06483034, 0x0681877c, 0x070ff0d4, + 0x077800ff, 0x070000f0, 0x037c00ff, 0x06000010, + 0x058107ff, 0x024900e5, 0x068187df, 0x033e5000, + 0x070000c0, 0x07f00000, 0x024900e5, 0x058107e2, + 0x033e5000, 0x06000080, 0x02800010, 0x04601c04, + 0x050f80ff, 0x053fa809, 0x06000020, 0x030ef041, + 0x0086076d, 0x062d6002, 0x05602c41, 0x050f80ff, + 0x012fa809, 0x060ff0d0, 0x074b00ff, 0x045c0401, + 0x068187fd, 0x062d6001, 0x07602e41, 0x050f80ff, + 0x053fa809, 0x06000001, 0x070ff0d1, 0x054b80ff, + 0x074b0003, 0x055c0403, 0x068187fd, 0x033e5000, + 0x06000080, 0x01800895, 0x07600041, 0x008007e3, + 0x024900e5, 0x07818806, 0x033e5000, 0x070000c0, + 0x07f00000, 0x024900e5, 0x05810809, 0x033e5000, + 0x06000080, 0x02800010, 0x05a0084e, 0x030ef041, + 0x01860771, 0x04058051, 0x072d6000, 0x07601241, + 0x050f80ff, 0x012fa809, 0x0600a0d0, 0x0500b0d1, + 0x062d6001, 0x07f00000, 0x07f00000, 0x0600c0d0, + 0x0500d0d1, 0x062d6002, 0x0279ff0d, 0x07ff0000, + 0x044d800d, 0x060ff0d0, 0x074b00ff, 0x065a000d, + 0x06601401, 0x050f80ff, 0x073fa022, 0x07000005, + 0x0079fe0d, 0x070000ff, 0x050020ff, 0x05602c41, + 0x050f80ff, 0x073fa00a, 0x06000001, 0x020ef004, + 0x0186084b, 0x04601c04, 0x050f80ff, 0x053fa809, + 0x06000001, 0x050f80ff, 0x053fa80a, 0x06000020, + 0x07f00000, 0x07602e41, 0x050f80ff, 0x073fa009, + 0x06000001, 0x0279ff02, 0x070000ff, 0x0678000d, + 0x0700ff00, 0x065a0002, 0x07602e41, 0x050f80ff, + 0x073fa00a, 0x06000001, 0x07f00000, 0x07600041, + 0x050f80ff, 0x053fa80a, 0x06000001, 0x07f00000, + 0x07601441, 0x050f80ff, 0x073fa00a, 0x06000002, + 0x033e5000, 0x06000080, 0x01800895, 0x040f8032, + 0x073fa011, 0x06000001, 0x060ff002, 0x055c0403, + 0x07818856, 0x00041051, 0x07c00000, 0x04600402, + 0x04500432, 0x050f80ff, 0x053fa809, 0x06000020, + 0x07f00000, 0x00400402, 0x01680eff, 0x070030ff, + 0x040f8032, 0x053fa80a, 0x06000001, 0x07c00000, + 0x05004036, 0x060000d0, 0x0179fe00, 0x0700ffff, + 0x057dfeff, 0x0700ffff, 0x05810882, 0x070000d1, + 0x0379ff00, 0x0700ffff, 0x06005051, 0x060ff031, + 0x05500405, 0x050f80ff, 0x073fa009, 0x06000002, + 0x020ef004, 0x0086087c, 0x04600404, 0x050f80ff, + 0x012fa809, 0x0079fe01, 0x0700ffff, 0x055c0400, + 0x05810882, 0x01400405, 0x070050ff, 0x057de0ff, + 0x06000007, 0x0681886e, 0x04004051, 0x07c00000, + 0x072d6000, 0x07f00000, 0x07f00000, 0x000110d0, + 0x010120d1, 0x062d6001, 0x07f00000, 0x07f00000, + 0x020130d0, 0x010140d1, 0x062d6002, 0x010170d4, + 0x07f00000, 0x020150d0, 0x030160d1, 0x053fa83a, + 0x06000008, 0x07c00000, 0x07600c41, 0x050f80ff, + 0x01202003, 0x073fa00a, 0x06000001, 0x07f00000, + 0x05601041, 0x050f80ff, 0x032fa069, 0x03800066, + 0xdcdab525, 0x02800004, 0x00000000, 0x00008000, + 0x0000068c, 0x040f801f, 0x012fa8c9, 0x040f801f, + 0x063fa091, 0x06000010, 0x03200005, 0x07420000, + 0x050fb000, 0x040f801f, 0x073fa011, 0x06000038, + 0x040f801f, 0x053fa859, 0x0700003a, 0x050fe000, + 0x0581800a, 0x0684004a, 0x04958019, 0x030e0011, + 0x072e4200, 0x03800014, 0x0291001f, 0x050010c0, + 0x04482001, 0x0781811e, 0x06483001, 0x078181a6, + 0x02920029, 0x068b0029, 0x008a01ab, 0x050010c0, + 0x06780001, 0x050007c0, 0x068182fe, 0x06780001, + 0x0500f800, 0x05818348, 0x0291003e, 0x050fe02b, + 0x0286003e, 0x03681e1d, 0x03d0002e, 0x0380035c, + 0x0280003e, 0x0280003e, 0x0280003e, 0x0280003e, + 0x0280038a, 0x0280003e, 0x0280003e, 0x0380039f, + 0x0280003e, 0x0280003e, 0x0280003e, 0x0280003e, + 0x0280003e, 0x0280003e, 0x0280003e, 0x039200cf, + 0x040fe031, 0x0286004a, 0x06000013, 0x050fb000, + 0x066c0073, 0x048104ae, 0x014920e4, 0x0481804a, + 0x03400000, 0x076c0a00, 0x05818042, 0x0696004c, + 0x03b900f3, 0x05908014, 0x010170e1, 0x07780017, + 0x03e00000, 0x068100b5, 0x050010ff, 0x0179fe17, + 0x031fffff, 0x070000ff, 0x05600800, 0x050f80ff, + 0x073fa009, 0x06000001, 0x06780002, 0x02800040, + 0x037c00ff, 0x03800000, 0x0681006b, 0x0249f002, + 0x068100ce, 0x0448e002, 0x0681006b, 0x05600e00, + 0x050f80ff, 0x073fa009, 0x06000001, 0x06780002, + 0x07ffff00, 0x037c00ff, 0x05000200, 0x048180ce, + 0x064bd401, 0x02d0006d, 0x038000cc, 0x02800075, + 0x0280007f, 0x02800089, 0x03800093, 0x0280009d, + 0x028000ab, 0x038000cc, 0x050fe027, 0x00868079, + 0x01028000, 0x0280007c, 0x07600027, 0x050f80ff, + 0x032fa00a, 0x01027000, 0x0340002b, 0x028000ce, + 0x040fe025, 0x00868083, 0x03026000, 0x02800086, + 0x06600025, 0x050f80ff, 0x032fa00a, 0x03025000, + 0x0340002b, 0x028000ce, 0x050fe021, 0x0186808d, + 0x01022000, 0x03800090, 0x07600021, 0x050f80ff, + 0x032fa00a, 0x01021000, 0x0340002b, 0x028000ce, + 0x040fe023, 0x00868097, 0x01024000, 0x0380009a, + 0x06600023, 0x050f80ff, 0x032fa00a, 0x03023000, + 0x0340002b, 0x028000ce, 0x05600800, 0x050f80ff, + 0x012fa839, 0x0448e001, 0x058180a9, 0x06780004, + 0x07ffff00, 0x037c00ff, 0x05000700, 0x078100a9, + 0x04a00107, 0x028000ce, 0x050fd000, 0x028000ce, + 0x040fe029, 0x018680af, 0x0302a000, 0x038000b2, + 0x06600029, 0x050f80ff, 0x032fa00a, 0x03029000, + 0x0340002b, 0x028000ce, 0x01640817, 0x058280cc, + 0x070ff017, 0x02d000b9, 0x028000c1, 0x038000c3, + 0x038000c6, 0x038000c9, 0x038000cc, 0x038000cc, + 0x038000cc, 0x038000cc, 0x03e00000, 0x03800014, + 0x059080c3, 0x030160e1, 0x028000ce, 0x059080c6, + 0x030150e1, 0x028000ce, 0x059080c9, 0x010140e1, + 0x028000ce, 0x060fc013, 0x07a00684, 0x03800014, + 0x014940e4, 0x01a180d2, 0x0280004a, 0x02681e0d, + 0x050fb0ff, 0x04600876, 0x050f80ff, 0x053fa809, + 0x06000001, 0x05488003, 0x058180e1, 0x0400800d, + 0x0120d000, 0x013e4000, 0x05000200, 0x06009076, + 0x04002075, 0x06a00670, 0x07c00000, 0x072e4800, + 0x07000012, 0x018680e7, 0x060fc013, 0x07c00000, + 0x00012013, 0x0747f000, 0x05600800, 0x050f80ff, + 0x012fa839, 0x0249f001, 0x078100f9, 0x01012000, + 0x052e4c00, 0x07c00000, 0x050fd000, 0x07c00000, + 0x070000eb, 0x0349f000, 0x058180e8, 0x05600800, + 0x050f80ff, 0x012fa839, 0x06780004, 0x07ffff00, + 0x037c00ff, 0x07000300, 0x048180f1, 0x0448e001, + 0x048180f1, 0x0079c101, 0x07ffffff, 0x027a4b01, + 0x03800000, 0x05600800, 0x050f80ff, 0x012fa80a, + 0x07f00000, 0x06601807, 0x070030ff, 0x050f80ff, + 0x012fa809, 0x050f8003, 0x032fa00a, 0x040fe001, + 0x01860114, 0x04600201, 0x050f80ff, 0x032fa00a, + 0x07c00000, 0x050fe030, 0x02868119, 0x07030000, + 0x05031000, 0x0180011d, 0x07600030, 0x050f80ff, + 0x032fa00a, 0x07030000, 0x07c00000, 0x022c0004, + 0x056c041d, 0x04810134, 0x056c021d, 0x0481014c, + 0x056c081d, 0x04810180, 0x056c0e1d, 0x0481015e, + 0x076c061d, 0x0581019a, 0x0521d000, 0x0002e013, + 0x0202c013, 0x02020013, 0x0460021a, 0x050f80ff, + 0x053fa80a, 0x07000009, 0x03b600e2, 0x0484801f, + 0x0280004a, 0x040fe02c, 0x0086012a, 0x06000013, + 0x04001013, 0x0760122d, 0x050f80ff, 0x032fa012, + 0x07f00000, 0x0742002b, 0x0660002c, 0x050f80ff, + 0x053fa809, 0x06000001, 0x050fe003, 0x00860149, + 0x01028003, 0x0660002c, 0x050f80ff, 0x053fa80a, + 0x07000009, 0x0080019b, 0x00028013, 0x00027013, + 0x0080019b, 0x040fe02c, 0x00860129, 0x0742002b, + 0x0660002c, 0x050f80ff, 0x053fa809, 0x06000001, + 0x050fe003, 0x0086015b, 0x03026003, 0x0660002c, + 0x050f80ff, 0x053fa80a, 0x07000009, 0x0080019b, + 0x02026013, 0x02025013, 0x0080019b, 0x040fe02c, + 0x00860129, 0x0742002b, 0x0660002c, 0x050f80ff, + 0x053fa809, 0x06000001, 0x050fe003, 0x0086016d, + 0x0302a003, 0x0660002c, 0x050f80ff, 0x053fa80a, + 0x07000009, 0x0180016f, 0x0202a013, 0x02029013, + 0x0647f020, 0x06486020, 0x07818174, 0x07a0034d, + 0x00800179, 0x007a0120, 0x04000101, 0x07a0034d, + 0x0400802c, 0x07a00669, 0x0349a0e4, 0x0581017d, + 0x0421d008, 0x0080012a, 0x02948129, 0x0521d005, + 0x0080012a, 0x040fe02c, 0x00860129, 0x0742002b, + 0x0660002c, 0x050f80ff, 0x053fa809, 0x06000001, + 0x050fe003, 0x0086018f, 0x01022003, 0x0660002c, + 0x050f80ff, 0x053fa80a, 0x07000009, 0x00800191, + 0x00022013, 0x00021013, 0x0647f020, 0x007a0120, + 0x04000101, 0x07a0034d, 0x0400802c, 0x07a00669, + 0x02948129, 0x0521d005, 0x0080012a, 0x00800132, + 0x0647f020, 0x06486020, 0x078181a0, 0x07a0034d, + 0x00800129, 0x007a0120, 0x04000101, 0x07a0034d, + 0x0400802c, 0x07a00669, 0x00800129, 0x040fd02c, + 0x052e4003, 0x00208010, 0x07a00669, 0x00800132, + 0x00018098, 0x07480018, 0x068181bc, 0x05481018, + 0x068181ba, 0x05482018, 0x078181b8, 0x07483018, + 0x068181b6, 0x002fb004, 0x018001bd, 0x012fb003, + 0x018001bd, 0x002fb002, 0x018001bd, 0x002fb001, + 0x018001bd, 0x012fb000, 0x0179fe78, 0x070000ff, + 0x030190ff, 0x00017086, 0x048b01c1, 0x03385000, + 0x03020000, 0x07780017, 0x00430407, 0x068182a7, + 0x046c0419, 0x04810246, 0x046c0219, 0x048101cd, + 0x07219000, 0x0080022a, 0x07219000, 0x07483017, + 0x05810230, 0x05482017, 0x04810237, 0x0448b075, + 0x0681822a, 0x04601676, 0x050f80ff, 0x073fa022, + 0x0600003e, 0x06000080, 0x05001081, 0x05002082, + 0x06003083, 0x05004084, 0x06601e76, 0x050f80ff, + 0x022fa02a, 0x04487075, 0x04810229, 0x06604476, + 0x050f80ff, 0x032fa009, 0x03680600, 0x056c02ff, + 0x06818223, 0x07000090, 0x074b0000, 0x050fe000, + 0x00860223, 0x0560027b, 0x050f80ff, 0x032fa009, + 0x07f00000, 0x05600e00, 0x050f80ff, 0x032fa009, + 0x07f00000, 0x074b0000, 0x070ff08d, 0x0179feff, + 0x070000ff, 0x055c0400, 0x04810223, 0x070ff017, + 0x037a00ff, 0x05000400, 0x010170ff, 0x04603e76, + 0x050f80ff, 0x034a8400, 0x034a8800, 0x05780100, + 0x070000ff, 0x055a0400, 0x074b0a00, 0x077bff00, + 0x070000ff, 0x032fa00a, 0x07f00000, 0x06603c76, + 0x050f80ff, 0x07300fff, 0x070fffff, 0x032fa00a, + 0x07f00000, 0x06604876, 0x050f80ff, 0x0700008d, + 0x017a0100, 0x07ffff00, 0x032fa00a, 0x07f00000, + 0x04604a76, 0x050f80ff, 0x07300fff, 0x070fffff, + 0x032fa00a, 0x07f00000, 0x04604076, 0x050f80ff, + 0x06000013, 0x032fa00a, 0x0245a075, 0x018002af, + 0x06603c76, 0x050f80ff, 0x053fa842, 0x06000045, + 0x058b0227, 0x02085013, 0x07219000, 0x07780078, + 0x07ffff00, 0x045a0419, 0x010780ff, 0x0484801f, + 0x0280004a, 0x040fe07f, 0x0186023f, 0x05a0025f, + 0x0092022a, 0x040fe07f, 0x07a6825f, 0x0080022a, + 0x0760127b, 0x050f80ff, 0x032fa009, 0x0744f000, + 0x0760127b, 0x050f80ff, 0x032fa00a, 0x018001d4, + 0x052e400c, 0x040080fb, 0x046aa108, 0x06009076, + 0x04002075, 0x06a00670, 0x0080022a, 0x06219001, + 0x05482017, 0x05810253, 0x048b0249, 0x060ff086, + 0x0349f0ff, 0x078181c0, 0x07483017, 0x05810250, + 0x050fd0ff, 0x040fe07f, 0x07a6825f, 0x0080022a, + 0x05004084, 0x04a002e0, 0x0092022a, 0x070ff07d, + 0x0450047c, 0x056004ff, 0x050f80ff, 0x032fa009, + 0x070ff000, 0x00540479, 0x030790ff, 0x00800237, + 0x04487075, 0x04810267, 0x04605276, 0x050f80ff, + 0x032fa009, 0x060ff079, 0x01540400, 0x01800269, + 0x060ff079, 0x0054047a, 0x058202a0, 0x058102a0, + 0x070ff07d, 0x0450047c, 0x050f80ff, 0x002fa819, + 0x058b026f, 0x034960e4, 0x05810278, 0x02681e01, + 0x06818276, 0x03642203, 0x07828278, 0x013e4000, 0x07003000, 0x02080001, 0x00081002, 0x01082003, - 0x03079003, 0x04487075, 0x0781054e, 0x04605276, - 0x050f80ff, 0x032fa009, 0x03083000, 0x0280054f, - 0x0208307a, 0x0340007e, 0x0642007f, 0x0781056f, - 0x070ff07e, 0x05a0028b, 0x0192856f, 0x02800586, - 0x078b0556, 0x04601676, 0x050f80ff, 0x073fa041, - 0x0600003e, 0x07f00000, 0x04487075, 0x06810562, - 0x04605276, 0x050f80ff, 0x032fa009, 0x03083000, - 0x034960e4, 0x0781056f, 0x014980e4, 0x0581856f, - 0x06601e76, 0x050f80ff, 0x022fa019, 0x03681e00, - 0x0481856d, 0x02642202, 0x0582856f, 0x013e4000, - 0x07003000, 0x04602676, 0x050f80ff, 0x073fa009, - 0x06000007, 0x0008400e, 0x04487075, 0x0681057f, - 0x068b0576, 0x06603c76, 0x050f80ff, 0x053fa841, - 0x06000045, 0x078b057b, 0x02385001, 0x03010000, - 0x03800582, 0x068b057f, 0x03385000, 0x03010000, - 0x06219001, 0x040fe07f, 0x02860586, 0x0180025f, - 0x07c00000, 0x00683e75, 0x0681058c, 0x0448d075, - 0x068105ba, 0x028005f2, 0x06a0065d, 0x008004f1, - 0x0197859c, 0x07602418, 0x050f80ff, 0x012fa809, - 0x06780001, 0x070000ff, 0x075a0000, 0x05602618, - 0x050f80ff, 0x012fa809, 0x060ff001, 0x0569feff, - 0x054b08ff, 0x075a0000, 0x05600418, 0x050f80ff, - 0x012fa809, 0x040fe007, 0x018685a3, 0x01204000, - 0x038005b1, 0x00700101, 0x03010000, 0x06780001, - 0x07ff0000, 0x076c00ff, 0x048185ab, 0x00700101, - 0x03010000, 0x05600418, 0x050f80ff, 0x012fa80a, - 0x06780001, 0x07ff0000, 0x050040ff, 0x0279ff01, - 0x0700ffff, 0x05602618, 0x050f80ff, 0x073fa009, - 0x06000001, 0x0279ff02, 0x0700ffff, 0x07c00000, - 0x04007076, 0x0448b075, 0x078105d4, 0x03200011, - 0x06006076, 0x04a004a8, 0x007a0101, 0x07060000, - 0x07303000, 0x07008290, 0x07600018, 0x050f80ff, - 0x053fa809, 0x07000003, 0x0448e007, 0x058185cc, - 0x06006013, 0x038005ed, 0x02400010, 0x078105cc, - 0x06006010, 0x04603476, 0x050f80ff, 0x073fa00a, - 0x07000003, 0x038005ed, 0x0600007a, 0x02493075, - 0x058185dd, 0x04602c76, 0x050f80ff, 0x032fa009, - 0x060ff07a, 0x05500400, 0x070000ff, 0x06473075, - 0x04602c76, 0x050f80ff, 0x032fa00a, 0x05a004a3, - 0x007a0101, 0x03010000, 0x06303008, 0x05008000, - 0x0049b075, 0x068105ec, 0x06603676, 0x050f80ff, - 0x073fa009, 0x06000002, 0x0600600e, 0x050f8074, - 0x032fa03a, 0x053079a0, 0x0700000c, 0x03800639, - 0x00683e75, 0x076c0aff, 0x0781060f, 0x04007013, - 0x03200011, 0x06006076, 0x04a004a8, 0x007a0101, - 0x03070000, 0x04602a76, 0x050f80ff, 0x053fa809, - 0x06000001, 0x03499003, 0x07810606, 0x07303000, - 0x07008890, 0x053079a0, 0x0700000c, 0x0380060a, - 0x07303000, 0x04008980, 0x04307920, 0x0700000c, - 0x074d0005, 0x06006013, 0x050f8074, 0x032fa03a, - 0x03800639, 0x04602c76, 0x050f80ff, 0x032fa009, - 0x060ff07a, 0x05500400, 0x070000ff, 0x06473075, - 0x04602c76, 0x050f80ff, 0x032fa00a, 0x04007076, - 0x05a004a3, 0x007a0101, 0x03010000, 0x06303008, - 0x07008800, 0x074d0005, 0x0049b075, 0x07810627, + 0x058b027b, 0x04487075, 0x05810281, 0x02385001, + 0x03010000, 0x00800283, 0x03385000, 0x03010000, + 0x02400019, 0x070ff003, 0x04500479, 0x030790ff, + 0x0340007e, 0x0642007f, 0x058102a0, 0x070ff07e, + 0x050f80ff, 0x032fa009, 0x050fe000, 0x0386829f, + 0x070ff07d, 0x056002ff, 0x050f80ff, 0x032fa009, + 0x0107d000, 0x008602a1, 0x07600a7d, 0x050f80ff, + 0x032fa009, 0x03681e00, 0x0550041b, 0x050f80ff, + 0x032fa009, 0x0107e000, 0x070ff07e, 0x0180028b, + 0x0307c000, 0x07c00000, 0x052e400c, 0x040080fb, + 0x046aa108, 0x06009076, 0x04002075, 0x02800670, + 0x040fd076, 0x050fd017, 0x060ff086, 0x077800ff, + 0x07000060, 0x037c00ff, 0x07000060, 0x078182a9, + 0x07780078, 0x07ffff00, 0x045a0419, 0x010780ff, + 0x04487075, 0x058102ca, 0x07780017, 0x05000400, + 0x058102ca, 0x04601676, 0x050f80ff, 0x073fa022, + 0x0600003e, 0x0249a075, 0x078182c3, 0x058b02be, + 0x06603c76, 0x050f80ff, 0x053fa842, 0x06000045, + 0x052e400c, 0x040080fb, 0x026b4108, 0x06009076, + 0x04002075, 0x06a00670, 0x02800029, 0x04601676, + 0x050f80ff, 0x073fa022, 0x0600003e, 0x052e400c, + 0x04600876, 0x050f80ff, 0x053fa809, 0x06000001, + 0x05488003, 0x048102da, 0x0400d0fb, 0x066a810d, + 0x013e4000, 0x07000300, 0x02800029, 0x040080fb, + 0x066a8108, 0x06009076, 0x04002075, 0x06a00670, + 0x02800029, 0x0240007f, 0x0742007e, 0x050f807e, + 0x032fa009, 0x050fe000, 0x038682fa, 0x070ff07d, + 0x055c047b, 0x048102ef, 0x0760007d, 0x050f80ff, + 0x032fa009, 0x050fe000, 0x028682ef, 0x070ff07b, + 0x0107d0ff, 0x07600a7d, 0x050f80ff, 0x032fa009, + 0x03681e00, 0x0450041c, 0x0107e0ff, 0x050f80ff, + 0x032fa009, 0x050fe000, 0x018602fc, 0x0307c000, + 0x07c00000, 0x040fd076, 0x03800684, 0x010180c0, + 0x0548e018, 0x05818317, 0x0748f018, 0x04818313, + 0x03490018, 0x0581830f, 0x01491018, 0x0481830b, + 0x073c0000, 0x06000040, 0x02200004, 0x0280031a, + 0x073c0000, 0x06000020, 0x03200003, 0x0280031a, + 0x073c0000, 0x06000010, 0x02200002, 0x0280031a, + 0x073c0000, 0x06000008, 0x02200001, 0x0280031a, + 0x073c0000, 0x06000004, 0x06000013, 0x050fb000, + 0x040fe076, 0x0286033d, 0x046c0273, 0x04818329, + 0x0448b075, 0x07810330, 0x06000013, 0x04001013, + 0x0760127b, 0x050f80ff, 0x032fa012, 0x0046b075, + 0x03b600e2, 0x02800331, 0x066c0073, 0x0781032e, + 0x040fd076, 0x07a00684, 0x03800014, 0x040fd076, + 0x02800331, 0x00452075, 0x00077013, 0x0647f075, + 0x06486075, 0x04818337, 0x07a00353, 0x0280033d, + 0x007a0175, 0x04000101, 0x07a00353, 0x04008076, + 0x0245f008, 0x07a00669, 0x07273000, 0x05600272, + 0x050f80ff, 0x053fa80a, 0x07000009, 0x0379ff78, + 0x070000ff, 0x02076013, 0x02075013, 0x0484801f, + 0x0280004a, 0x070fc0ff, 0x052e400c, 0x00208020, + 0x07a00669, 0x02800346, 0x06000020, 0x04001016, + 0x0460082c, 0x050f80ff, 0x032fa012, 0x07c00000, + 0x06000075, 0x040010a2, 0x044b0801, 0x060ff016, + 0x065a0001, 0x04600876, 0x050f80ff, 0x032fa012, + 0x07c00000, 0x040fe02a, 0x02860362, 0x0421d007, + 0x0202c02a, 0x07a003a6, 0x0380037e, 0x050fe022, + 0x0286036d, 0x0421d004, 0x0302c022, 0x07a003a6, + 0x04488020, 0x0781037e, 0x040fd02c, 0x0521d000, + 0x0202c013, 0x02020013, 0x040fe026, 0x03860384, + 0x0421d001, 0x0202c026, 0x07a003a6, 0x00683e20, + 0x070060ff, 0x056c0206, 0x078103d8, 0x056c0406, + 0x068103ef, 0x076c0606, 0x05810465, 0x04488020, + 0x04818380, 0x056c1606, 0x04810473, 0x07a00660, + 0x02800398, 0x040fd02c, 0x0521d000, 0x0202c013, + 0x02020013, 0x050fe028, 0x02860398, 0x0302c028, + 0x0421d002, 0x07a003a6, 0x028003ad, 0x040fe02a, + 0x03860390, 0x0421d007, 0x0202c02a, 0x07a003a6, + 0x02800397, 0x050fe022, 0x02860398, 0x0421d004, + 0x0302c022, 0x07a003a6, 0x04488020, 0x0581839a, + 0x07a00660, 0x0484803e, 0x0280004a, 0x040fd02c, + 0x0521d000, 0x0202c013, 0x02020013, 0x02800398, + 0x040fe02a, 0x02860398, 0x0421d007, 0x0202c02a, + 0x07a003a6, 0x07a00660, 0x02800398, 0x0460082c, + 0x050f80ff, 0x032fa039, 0x03020000, 0x0102d005, + 0x01018006, 0x07c00000, 0x0400702c, 0x05a004a6, + 0x007a0101, 0x07060000, 0x07303000, 0x07008290, + 0x07600018, 0x050f80ff, 0x053fa809, 0x07000003, + 0x0448e007, 0x058183bb, 0x06006013, 0x028003c2, + 0x02400010, 0x078103bb, 0x06006010, 0x0460342c, + 0x050f80ff, 0x073fa00a, 0x07000003, 0x050f801e, + 0x032fa03a, 0x063aa020, 0x06000002, 0x013e4000, + 0x07000030, 0x029803c8, 0x070ff0f6, 0x036830ff, + 0x058183c9, 0x070f001e, 0x0760122d, 0x050f10ff, + 0x063f3c08, 0x0600000d, 0x013e4000, 0x06000020, + 0x040f801a, 0x0320000a, 0x022017d0, 0x032fa012, + 0x02800398, 0x04007013, 0x05a004a6, 0x007a0101, + 0x07050000, 0x07303000, 0x07008890, 0x074d0005, + 0x06006013, 0x050f801e, 0x032fa03a, 0x07f00000, + 0x05601c2d, 0x050f80ff, 0x022fa019, 0x04001002, + 0x04002013, 0x040f801f, 0x022fa01a, 0x073aa00c, + 0x06000002, 0x07300c03, 0x0600000d, 0x01800493, + 0x04007013, 0x05a004a6, 0x007a0101, 0x03070000, + 0x04602a2c, 0x050f80ff, 0x073fa009, 0x06000004, + 0x02499008, 0x078103fc, 0x07303000, 0x07008890, + 0x028003fe, 0x07303000, 0x04008980, 0x05007003, + 0x074d0005, 0x06006013, 0x050f801e, 0x032fa03a, + 0x07f00000, 0x0560162d, 0x050f80ff, 0x032fa021, + 0x07f00000, 0x064b0002, 0x02499008, 0x0581040c, + 0x0644c002, 0x054b0400, 0x050040ff, 0x06698104, + 0x07818421, 0x06000013, 0x04001013, 0x04780102, + 0x06000010, 0x06003013, 0x04004013, 0x06005013, + 0x06006013, 0x04007013, 0x00644015, 0x0582041d, + 0x04448002, 0x02205008, 0x040f801f, 0x032fa042, + 0x04008015, 0x0080045d, 0x046c8004, 0x0681842f, + 0x01208018, 0x06780002, 0x07000003, 0x06818432, + 0x06003001, 0x06000013, 0x04001013, 0x04004013, + 0x06005013, 0x040f801f, 0x022fa032, 0x0080045d, + 0x040fd02c, 0x07a00684, 0x03800014, 0x0379ff03, + 0x070000ff, 0x04488002, 0x05810439, 0x070ff003, + 0x04500408, 0x050080ff, 0x0379ff00, 0x070000ff, + 0x06489002, 0x04810440, 0x070ff000, 0x04500408, + 0x050080ff, 0x07005003, 0x05004000, 0x06003001, + 0x06000013, 0x04001013, 0x040f801f, 0x022fa032, + 0x07f00000, 0x07601e2d, 0x050f80ff, 0x022fa031, + 0x07f00000, 0x06600c1f, 0x050f80ff, 0x022fa032, + 0x02680608, 0x0481045d, 0x016408ff, 0x057dfeff, + 0x07ffffff, 0x034000ff, 0x045a0407, 0x070000ff, + 0x0760061e, 0x050f80ff, 0x032fa00a, 0x07f00000, + 0x06600908, 0x0669f908, 0x027a0008, 0x06000020, + 0x070aa0ff, 0x024a2408, 0x037a00ff, 0x060000dc, + 0x070000ff, 0x01800493, 0x04007013, 0x05a004a6, + 0x007a0101, 0x07030000, 0x07303000, 0x07008190, + 0x06006013, 0x050f801e, 0x032fa03a, 0x073aa000, + 0x06000002, 0x07300c00, 0x07000005, 0x01800493, + 0x04007013, 0x05a004a6, 0x007a0101, 0x07810000, + 0x07303000, 0x07000090, 0x06006013, 0x04600e2c, + 0x050f80ff, 0x053fa809, 0x07000003, 0x04780107, + 0x07ffff00, 0x007c0107, 0x07000500, 0x06818486, + 0x07303000, 0x05000890, 0x074d0005, 0x04602a2c, + 0x050f80ff, 0x053fa809, 0x07000003, 0x0049d007, + 0x0581048d, 0x02206001, 0x050f801e, 0x032fa03a, + 0x073aa000, 0x06000002, 0x07300c00, 0x07000005, + 0x013e4000, 0x07000030, 0x01980495, 0x070ff0f6, + 0x036830ff, 0x07818496, 0x070f001e, 0x040f101f, + 0x070f3000, 0x013e4000, 0x06000020, 0x040f801a, + 0x0320000a, 0x022017d0, 0x032fa012, 0x02800398, + 0x03200000, 0x06006076, 0x008004a8, 0x03200011, + 0x0600602c, 0x07a0058e, 0x05600406, 0x050f80ff, + 0x053fa809, 0x06000002, 0x07c00000, 0x02076031, + 0x04600876, 0x050f80ff, 0x032fa039, 0x03075000, + 0x0107b005, 0x01018006, 0x06600076, 0x050020ff, + 0x050f80ff, 0x032fa011, 0x05031000, 0x038684c5, + 0x04031001, 0x038684c3, 0x06030013, 0x07601818, + 0x050f80ff, 0x053fa80a, 0x07000009, 0x008004cb, + 0x06030001, 0x008004cb, 0x040fe001, 0x018604be, + 0x07600030, 0x050f80ff, 0x012fa80a, 0x06030001, + 0x06000013, 0x04001013, 0x040f8002, 0x032fa012, + 0x06273001, 0x0448b075, 0x068184d6, 0x06602276, + 0x050f80ff, 0x053fa811, 0x0700003c, 0x0179fe78, + 0x070000ff, 0x030190ff, 0x038684de, 0x04a004f2, + 0x00078019, 0x009204f1, 0x03800587, 0x040fd076, + 0x040fd019, 0x04600276, 0x050020ff, 0x050f80ff, + 0x032fa009, 0x040f8002, 0x053fa80a, 0x07000009, + 0x050fe000, 0x038684ee, 0x07601818, 0x050f80ff, + 0x053fa80a, 0x07000009, 0x008004ef, 0x05a00114, + 0x07273000, 0x02076013, 0x0280004a, 0x048b04f2, + 0x03385000, 0x07030000, 0x05600818, 0x050f80ff, + 0x032fa009, 0x07f00000, 0x054b0400, 0x0308a0ff, + 0x04487075, 0x06810515, 0x06604476, 0x050f80ff, + 0x012fa811, 0x00680701, 0x046c0201, 0x04818515, + 0x0279ff02, 0x070000ff, 0x0379ff00, 0x070000ff, + 0x05001000, 0x060ff002, 0x01540400, 0x06820513, + 0x04001002, 0x060ff001, 0x04500402, 0x070030ff, + 0x01540400, 0x06820513, 0x05001003, 0x0581850c, + 0x00088001, 0x03800518, 0x0179fe00, 0x070000ff, + 0x010880ff, 0x0448b075, 0x0681052f, 0x0560167b, + 0x050f80ff, 0x002fa819, 0x02080002, 0x01081003, + 0x064b0001, 0x00082001, 0x034960e4, 0x06810529, + 0x02681e02, 0x05818527, 0x02642201, 0x04828529, + 0x013e4000, 0x07003000, 0x02083001, 0x02079001, + 0x0207a001, 0x00084013, 0x0207f013, 0x0280057f, + 0x06485075, 0x07810556, 0x02465075, 0x04601676, + 0x050f80ff, 0x073fa021, 0x0600003e, 0x070ff07d, + 0x0450047c, 0x050f80ff, 0x002fa819, 0x078b053a, + 0x034960e4, 0x06810543, 0x02681e01, 0x05818541, + 0x03642203, 0x04828543, 0x013e4000, 0x07003000, + 0x02080001, 0x00081002, 0x01082003, 0x03079003, + 0x04487075, 0x0781054e, 0x04605276, 0x050f80ff, + 0x032fa009, 0x03083000, 0x0280054f, 0x0208307a, + 0x0340007e, 0x0642007f, 0x0781056f, 0x070ff07e, + 0x05a0028b, 0x0192856f, 0x02800586, 0x078b0556, + 0x04601676, 0x050f80ff, 0x073fa041, 0x0600003e, + 0x07f00000, 0x04487075, 0x06810562, 0x04605276, + 0x050f80ff, 0x032fa009, 0x03083000, 0x034960e4, + 0x0781056f, 0x014980e4, 0x0581856f, 0x06601e76, + 0x050f80ff, 0x022fa019, 0x03681e00, 0x0481856d, + 0x02642202, 0x0582856f, 0x013e4000, 0x07003000, + 0x04602676, 0x050f80ff, 0x073fa009, 0x06000007, + 0x0008400e, 0x04487075, 0x0681057f, 0x068b0576, + 0x06603c76, 0x050f80ff, 0x053fa841, 0x06000045, + 0x078b057b, 0x02385001, 0x03010000, 0x03800582, + 0x068b057f, 0x03385000, 0x03010000, 0x06219001, + 0x040fe07f, 0x02860586, 0x0180025f, 0x07c00000, + 0x00683e75, 0x0681058c, 0x0448d075, 0x068105c1, + 0x038005f9, 0x06a00664, 0x008004f1, 0x0197859c, + 0x07602418, 0x050f80ff, 0x012fa809, 0x06780001, + 0x070000ff, 0x075a0000, 0x05602618, 0x050f80ff, + 0x012fa809, 0x060ff001, 0x0569feff, 0x054b08ff, + 0x075a0000, 0x05600418, 0x050f80ff, 0x012fa809, + 0x040fe007, 0x018685a3, 0x01204000, 0x038005b8, + 0x05600e06, 0x050f80ff, 0x073fa009, 0x06000002, + 0x07f00000, 0x064d0004, 0x00700104, 0x03010000, + 0x06780004, 0x07ff0000, 0x076c00ff, 0x058185b1, + 0x00700104, 0x03010000, 0x064d0004, 0x05600e06, + 0x050f80ff, 0x073fa00a, 0x06000002, 0x07f00000, + 0x044b0804, 0x0279ff01, 0x0700ffff, 0x05602618, + 0x050f80ff, 0x073fa009, 0x06000001, 0x0279ff02, + 0x0700ffff, 0x07c00000, 0x04007076, 0x0448b075, + 0x078105db, 0x03200011, 0x06006076, 0x04a004a8, + 0x007a0101, 0x07060000, 0x07303000, 0x07008290, + 0x07600018, 0x050f80ff, 0x053fa809, 0x07000003, + 0x0448e007, 0x048185d3, 0x06006013, 0x028005f4, + 0x02400010, 0x068105d3, 0x06006010, 0x04603476, + 0x050f80ff, 0x073fa00a, 0x07000003, 0x028005f4, + 0x0600007a, 0x02493075, 0x058185e4, 0x04602c76, + 0x050f80ff, 0x032fa009, 0x060ff07a, 0x05500400, + 0x070000ff, 0x06473075, 0x04602c76, 0x050f80ff, + 0x032fa00a, 0x05a004a3, 0x007a0101, 0x03010000, + 0x06303008, 0x05008000, 0x0049b075, 0x078105f3, 0x06603676, 0x050f80ff, 0x073fa009, 0x06000002, - 0x0280062f, 0x06600a76, 0x050f80ff, 0x073fa009, - 0x07000003, 0x07f00000, 0x054b0406, 0x045a0404, - 0x050040ff, 0x0600600e, 0x050f8074, 0x032fa03a, - 0x0648c075, 0x06810637, 0x06307d20, 0x0700000c, - 0x03800639, 0x04307920, 0x0700000c, 0x0049b075, - 0x07810641, 0x0447b075, 0x04600876, 0x050f80ff, - 0x053fa80a, 0x0700003a, 0x0246f007, 0x013e4000, - 0x07000030, 0x02980643, 0x070ff0f6, 0x074850ff, - 0x05818644, 0x050f2074, 0x060a0007, 0x040070fb, - 0x046a7007, 0x050f40ff, 0x013e4000, 0x06000020, - 0x0320000a, 0x022011f4, 0x00202004, 0x06003013, - 0x0678007a, 0x07fff000, 0x07810656, 0x0020200e, - 0x050f8072, 0x032fa022, 0x008004f1, 0x01208060, - 0x0600902c, 0x04002020, 0x03800669, 0x040080fb, - 0x066ae108, 0x06009076, 0x04002075, 0x03800669, - 0x03201100, 0x04848667, 0x06420001, 0x05818663, - 0x02800680, 0x020e0008, 0x07c00000, 0x050fd009, - 0x040fd008, 0x03201100, 0x04848670, 0x06420001, - 0x0581866c, 0x02800680, 0x007a0102, 0x04000101, - 0x05600809, 0x050f80ff, 0x073fa00a, 0x06000001, - 0x020e0008, 0x0684067a, 0x030e0009, 0x07c00000, - 0x01011009, 0x052e4300, 0x07c00000, 0x052e400f, - 0x01208090, 0x02800662, 0x070fc0ff, 0x040f8013, - 0x032fa009, 0x02800683, 0x59b90e13, 0xffeea974 + 0x0600600e, 0x050f8074, 0x032fa03a, 0x053079a0, + 0x0700000c, 0x02800640, 0x00683e75, 0x076c0aff, + 0x06810616, 0x04007013, 0x03200011, 0x06006076, + 0x04a004a8, 0x007a0101, 0x03070000, 0x04602a76, + 0x050f80ff, 0x053fa809, 0x06000001, 0x03499003, + 0x0681060d, 0x07303000, 0x07008890, 0x053079a0, + 0x0700000c, 0x03800611, 0x07303000, 0x04008980, + 0x04307920, 0x0700000c, 0x074d0005, 0x06006013, + 0x050f8074, 0x032fa03a, 0x02800640, 0x04602c76, + 0x050f80ff, 0x032fa009, 0x060ff07a, 0x05500400, + 0x070000ff, 0x06473075, 0x04602c76, 0x050f80ff, + 0x032fa00a, 0x04007076, 0x05a004a3, 0x007a0101, + 0x03010000, 0x06303008, 0x07008800, 0x074d0005, + 0x0049b075, 0x0781062e, 0x06603676, 0x050f80ff, + 0x073fa009, 0x06000002, 0x03800636, 0x06600a76, + 0x050f80ff, 0x073fa009, 0x07000003, 0x07f00000, + 0x054b0406, 0x045a0404, 0x050040ff, 0x0600600e, + 0x050f8074, 0x032fa03a, 0x0648c075, 0x0681063e, + 0x06307d20, 0x0700000c, 0x02800640, 0x04307920, + 0x0700000c, 0x0049b075, 0x07810648, 0x0447b075, + 0x04600876, 0x050f80ff, 0x053fa80a, 0x0700003a, + 0x0246f007, 0x013e4000, 0x07000030, 0x0298064a, + 0x070ff0f6, 0x074850ff, 0x0581864b, 0x050f2074, + 0x060a0007, 0x040070fb, 0x046a7007, 0x050f40ff, + 0x013e4000, 0x06000020, 0x0320000a, 0x022011f4, + 0x00202004, 0x06003013, 0x0678007a, 0x07fff000, + 0x0681065d, 0x0020200e, 0x050f8072, 0x032fa022, + 0x008004f1, 0x01208060, 0x0600902c, 0x04002020, + 0x02800670, 0x040080fb, 0x066ae108, 0x06009076, + 0x04002075, 0x02800670, 0x03201100, 0x0484866e, + 0x06420001, 0x0581866a, 0x03800687, 0x020e0008, + 0x07c00000, 0x050fd009, 0x040fd008, 0x03201100, + 0x05848677, 0x06420001, 0x04818673, 0x03800687, + 0x007a0102, 0x04000101, 0x05600809, 0x050f80ff, + 0x073fa00a, 0x06000001, 0x020e0008, 0x07840681, + 0x030e0009, 0x07c00000, 0x01011009, 0x052e4300, + 0x07c00000, 0x052e400f, 0x01208090, 0x03800669, + 0x070fc0ff, 0x040f8013, 0x032fa009, 0x0280068a, + 0x2bac147e, 0xffeea946 }; #endif diff --git a/sys/dev/ispfw/asm_2500.h b/sys/dev/ispfw/asm_2500.h index 134982312371..2e20cbb20eaa 100644 --- a/sys/dev/ispfw/asm_2500.h +++ b/sys/dev/ispfw/asm_2500.h @@ -30,25 +30,25 @@ * * * ******************************************************************** */ /* - * Firmware Version 5.04.00 (12:35 Jul 02, 2010) + * Firmware Version 5.05.00 (15:48 Dec 14, 2010) */ #ifdef ISP_2500 static const uint32_t isp_2500_risc_code[] = { - 0x0501f042, 0x0010d000, 0x00100000, 0x00008a8f, - 0x00000005, 0x00000004, 0x00000000, 0x00000080, + 0x0501f042, 0x0010d000, 0x00100000, 0x00008b5c, + 0x00000005, 0x00000005, 0x00000000, 0x00008080, 0x00000004, 0x00000000, 0x20434f50, 0x59524947, 0x48542032, 0x30303720, 0x514c4f47, 0x49432043, 0x4f52504f, 0x52415449, 0x4f4e2020, 0x20495350, 0x32357878, 0x20466972, 0x6d776172, 0x65202020, - 0x56657273, 0x696f6e20, 0x2020352e, 0x30342e30, + 0x56657273, 0x696f6e20, 0x2020352e, 0x30352e30, 0x30202024, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00100000, 0x00100000, - 0x00008a8f, 0xffffffff, 0x0010d004, 0x00020000, + 0x00008b5c, 0xffffffff, 0x0010d004, 0x00020000, 0x00000a08, 0xffffffff, 0x0010da0c, 0x0010ad00, - 0x00001add, 0xffffffff, 0x0010f4e9, 0x0000c000, - 0x00000705, 0x00ffffff, 0x0010fbee, 0x00008000, - 0x000003e3, 0x00ffffff, 0x0010ffd1, 0x0000a000, - 0x0000046c, 0x00ffffff, 0x0011043d, 0x0000400e, + 0x00001ae5, 0xffffffff, 0x0010f4f1, 0x0000c000, + 0x00000705, 0x00ffffff, 0x0010fbf6, 0x00008000, + 0x000003ea, 0x00ffffff, 0x0010ffe0, 0x0000a000, + 0x00000475, 0x00ffffff, 0x00110455, 0x0000400e, 0x00000808, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x4203f000, 0x00021fff, 0x40000000, 0x4203e000, 0x90000100, 0x40000000, @@ -56,17 +56,17 @@ static const uint32_t isp_2500_risc_code[] = { 0x50000000, 0x8c000500, 0x05020003, 0x42000800, 0x00020000, 0x45780800, 0x80040800, 0x82040580, 0x00022000, 0x05fe07fc, 0x4178a000, 0x4200a800, - 0x00108a8f, 0x42000800, 0x0010ad00, 0x40540000, - 0x8004b480, 0x0545f90a, 0x0501fbc5, 0x600c6020, + 0x00108b5c, 0x42000800, 0x0010ad00, 0x40540000, + 0x8004b480, 0x0545f9d4, 0x0501fbc5, 0x600c6020, 0x50304800, 0x8c240500, 0x0500001c, 0x59e00016, - 0x8c000504, 0x05020019, 0x0545f954, 0x604808fa, + 0x8c000504, 0x05020019, 0x0545fa1e, 0x604808fa, 0x50041000, 0x82081500, 0xfffffffc, 0x90081d43, 0x90081540, 0x84244d00, 0x440c0800, 0x44080800, 0x44246000, 0x64030000, 0x4203e000, 0x70000000, 0x4203e000, 0xb0300000, 0x603ff84e, 0x59e00016, 0x8c000504, 0x05020002, 0x05fe47fd, 0x84244d40, - 0x44246000, 0x0545f93d, 0x64030000, 0x0501f9e8, - 0x4803c856, 0x0505fdfd, 0x6413c020, 0x4203e000, + 0x44246000, 0x0545fa07, 0x64030000, 0x0501f9e8, + 0x4803c856, 0x0505fdfb, 0x6413c020, 0x4203e000, 0x6000000f, 0x640f70e8, 0x640f78e8, 0x640da8e8, 0x59e00023, 0x8c000500, 0x0502002b, 0x42002800, 0x00100022, 0x58140800, 0x4817c857, 0x4807c857, @@ -77,48 +77,48 @@ static const uint32_t isp_2500_risc_code[] = { 0x8050a1c0, 0x05000014, 0x4c140000, 0x5814a801, 0x4857c857, 0x40500000, 0x80540480, 0x0500000b, 0x82540480, 0x0000400e, 0x05020005, 0x9050a404, - 0x0505ffe8, 0x05020028, 0x0501f004, 0x5814b002, - 0x485bc857, 0x0545f8ae, 0x5c002800, 0x90142c04, - 0x05fdf7e9, 0x0509fe1f, 0x42001000, 0x7ff481fe, + 0x0505ffe6, 0x05020028, 0x0501f004, 0x5814b002, + 0x485bc857, 0x0545f978, 0x5c002800, 0x90142c04, + 0x05fdf7e9, 0x0509fe1d, 0x42001000, 0x7ff481fe, 0x59e00002, 0x8c00051e, 0x05020003, 0x42001000, 0x7ff480fe, 0x50081000, 0x480b5058, 0x42002800, 0x00100022, 0x58140801, 0x4817c857, 0x4807c857, 0x800409c0, 0x05000023, 0x58142002, 0x4813c857, 0x58141003, 0x4c140000, 0x82040480, 0x0000400e, - 0x05020004, 0x0505fff2, 0x4803c856, 0x0501f003, + 0x05020004, 0x0505fff0, 0x4803c856, 0x0501f003, 0x0501fb4a, 0x05020004, 0x5c002800, 0x90142c04, 0x05fdf7ed, 0x4803c856, 0x4a03c020, 0x00004010, 0x4a03c011, 0x40100011, 0x05006000, 0x4203e000, 0x40000000, 0x59e00017, 0x60000800, 0x8c00050a, - 0x05060ea3, 0x8d0c0530, 0x05060e8f, 0x05060e91, + 0x05060ea1, 0x8d0c0530, 0x05060e8d, 0x05060e8f, 0x6403c017, 0x4203e000, 0x30000001, 0x0501f000, 0x4803c856, 0x0201f800, 0x0010ad04, 0x59e00024, - 0x8c000500, 0x05060f92, 0x0501fbc0, 0x0509fec5, + 0x8c000500, 0x05060f90, 0x0501fbc0, 0x0509fec3, 0x05020004, 0x4a03c014, 0x001c001c, 0x0501f003, 0x4a03c014, 0x081c001c, 0x4817c857, 0x0501fbde, - 0x42002000, 0x0010c7dd, 0x0545f874, 0x59a80067, + 0x42002000, 0x0010c7e5, 0x0545f93e, 0x59a80067, 0x800001c0, 0x0500000c, 0x59a80083, 0x8c000500, 0x05000005, 0x59a8000a, 0x82000480, 0x0013ffff, 0x05001005, 0x59a82067, 0x80102000, 0x59a8280a, - 0x0545f866, 0x0545f939, 0x0545f960, 0x59a8280a, + 0x0545f930, 0x0545fa06, 0x0545fa2d, 0x59a8280a, 0x60000812, 0x60001802, 0x4807500d, 0x480f5262, - 0x60901000, 0x0525fe53, 0x82040c00, 0x0010cca4, + 0x60901000, 0x0525fedf, 0x82040c00, 0x0010ccb4, 0x4807500b, 0x600400de, 0x50000000, 0x8c000502, 0x05000004, 0x59a80083, 0x84000540, 0x48035083, - 0x4a03c810, 0x00100000, 0x4a03c811, 0x00108a8f, - 0x4a03c812, 0x0010ad00, 0x4a03c813, 0x0010c7dc, + 0x4a03c810, 0x00100000, 0x4a03c811, 0x00108b5c, + 0x4a03c812, 0x0010ad00, 0x4a03c813, 0x0010c7e4, 0x0501fb7d, 0x6447c829, 0x59e40001, 0x82000540, 0x0003403f, 0x4803c801, 0x4a03c802, 0x00000933, 0x59e00003, 0x82000540, 0x00240000, 0x4803c003, 0x64ffc019, 0x60701000, 0x0501fad7, 0x4202c000, - 0x0010cca4, 0x59aab00b, 0x59aaa00b, 0x59aaa80b, + 0x0010ccb4, 0x59aab00b, 0x59aaa00b, 0x59aaa80b, 0x59aac80d, 0x49675061, 0x59a8000b, 0x4803500c, - 0x052dfc8a, 0x0501fbdf, 0x0501fc52, 0x0509f80a, - 0x59a8004b, 0x8c000508, 0x05000004, 0x0509fef2, - 0x0515fe15, 0x0509fff4, 0x0501fd65, 0x0505fa67, - 0x0525fe58, 0x0501f85d, 0x050df9d7, 0x0521fb11, - 0x051dfda2, 0x0525fbd5, 0x0509f839, 0x0505fe6d, - 0x4203e000, 0xf0000001, 0x0545f925, 0x6403c018, + 0x052dfd02, 0x0501fbdf, 0x0501fc52, 0x0509f808, + 0x59a8004b, 0x8c000508, 0x05000004, 0x0509fef0, + 0x0515fe19, 0x0509fff3, 0x0501fd65, 0x0505fa67, + 0x0525fee4, 0x0501f85d, 0x050df9d9, 0x0521fb47, + 0x051dfdd8, 0x0525fc61, 0x0509f837, 0x0505fe6b, + 0x4203e000, 0xf0000001, 0x0545f9f2, 0x6403c018, 0x4203e000, 0xa0000001, 0x59a80083, 0x80000540, 0x05000004, 0x4203e000, 0x20000551, 0x0501f003, 0x4203e000, 0x20000511, 0x4203e000, 0x50010000, @@ -127,29 +127,29 @@ static const uint32_t isp_2500_risc_code[] = { 0x40000010, 0x05006000, 0x4203e000, 0x40000000, 0x4df00000, 0x4203e000, 0x50000000, 0x59e00017, 0x60000800, 0x8c00050a, 0x0002088c, 0x8d0c0530, - 0x05060dfd, 0x0002098c, 0x5c03e000, 0x6403c017, + 0x05060dfb, 0x0002098c, 0x5c03e000, 0x6403c017, 0x4203e000, 0x30000001, 0x6002d800, 0x4203e000, 0xb0600000, 0x59a8008a, 0x4003f800, 0x0001f004, 0x4df00000, 0x4203e000, 0x50000000, 0x416c0000, 0x90000c88, 0x05021861, 0x0c01f803, 0x5c03e000, - 0x0001f006, 0x00100192, 0x0010c633, 0x0010c57a, - 0x00100191, 0x0010c52f, 0x00100191, 0x00100191, - 0x001001a3, 0x0501f855, 0x42000800, 0x00109410, + 0x0001f006, 0x00100192, 0x0010c63b, 0x0010c57f, + 0x00100191, 0x0010c534, 0x00100191, 0x00100191, + 0x001001a3, 0x0501f855, 0x42000800, 0x00109490, 0x5804001e, 0x8c000500, 0x0500000c, 0x84000500, 0x4800081e, 0x6012d800, 0x0501fa67, 0x49f3c857, 0x5c000800, 0x5c000000, 0x82000540, 0x00007e20, 0x4c000000, 0x4c040000, 0x1c01f000, 0x4a038805, - 0x000000f0, 0x1c01f000, 0x64175059, 0x6413505a, - 0x6403505b, 0x4a03505c, 0x00000080, 0x0521fa80, + 0x000000f0, 0x1c01f000, 0x64175059, 0x6417505a, + 0x6403505b, 0x4a03505c, 0x00008080, 0x0521fab6, 0x4a03541b, 0x0000ffff, 0x4a03500f, 0x00ffffff, - 0x0539f9cf, 0x4a03501f, 0x20200000, 0x4a035020, + 0x0539fa65, 0x4a03501f, 0x20200000, 0x4a035020, 0x88000200, 0x4a035021, 0x00ff001f, 0x4a035022, 0x000007d0, 0x4a035023, 0x80000000, 0x4a035024, 0x00000200, 0x4a035025, 0x00ff0000, 0x4a035026, 0x00010000, 0x4a03502d, 0x514c4f47, 0x4a03502e, 0x49432020, 0x1c01f000, 0x4d440000, 0x417a8800, 0x4c5c0000, 0x4178b800, 0x0001fac4, 0x05020004, - 0x051dfa6b, 0x05020002, 0x805cb800, 0x81468800, + 0x051dfa80, 0x05020002, 0x805cb800, 0x81468800, 0x83440580, 0x000007f0, 0x05fe07f8, 0x405c0800, 0x5c00b800, 0x5c028800, 0x1c01f000, 0x4803c857, 0x5c000000, 0x4c000000, 0x4803c857, 0x0501f80b, @@ -158,13 +158,13 @@ static const uint32_t isp_2500_risc_code[] = { 0x486fc857, 0x4873c857, 0x485fc857, 0x4203e000, 0x50000000, 0x6008b900, 0x05006000, 0x4c000000, 0x4c040000, 0x59bc00ea, 0x4803c857, 0x90000507, - 0x90000581, 0x05020003, 0x60000800, 0x0525ff64, + 0x90000581, 0x05020003, 0x60000800, 0x0525fff0, 0x59b800ea, 0x4803c857, 0x641370e8, 0x5c000800, 0x4807c025, 0x80040920, 0x4807c026, 0x5c000000, 0x4803c023, 0x80000120, 0x4803c024, 0x5c000000, 0x4803c857, 0x4803c021, 0x80000120, 0x4803c022, 0x41f80000, 0x4803c029, 0x80000120, 0x4803c02a, - 0x0541ffa9, 0x0500004a, 0x42000800, 0x00109c32, + 0x0545f873, 0x0500004a, 0x42000800, 0x00109cb2, 0x46000800, 0xfaceface, 0x80040800, 0x4c080000, 0x4c0c0000, 0x600010f4, 0x58080013, 0x44000800, 0x80040800, 0x58080022, 0x44000800, 0x80040800, @@ -185,29 +185,29 @@ static const uint32_t isp_2500_risc_code[] = { 0x80040800, 0x5c001800, 0x5c001000, 0x64030000, 0x485fc020, 0x905cb9c0, 0x905cbd52, 0x485fc011, 0x4203e000, 0x40000000, 0x6016d800, 0x59e00017, - 0x60000800, 0x8c00050a, 0x05060d25, 0x8d0c0530, - 0x05060d11, 0x05060d13, 0x6403c017, 0x4203e000, + 0x60000800, 0x8c00050a, 0x05060d23, 0x8d0c0530, + 0x05060d0f, 0x05060d11, 0x6403c017, 0x4203e000, 0x30000001, 0x0501f956, 0x05fdf7ff, 0x60100000, 0x0501f80c, 0x4a03c855, 0x0001eb5a, 0x59e40001, 0x82000540, 0xff000700, 0x4803c801, 0x42000000, - 0x00109885, 0x49780003, 0x49780004, 0x1c01f000, - 0x42000800, 0x00109887, 0x44000800, 0x59e40801, + 0x00109905, 0x49780003, 0x49780004, 0x1c01f000, + 0x42000800, 0x00109907, 0x44000800, 0x59e40801, 0x82041500, 0x00f3c0ff, 0x480bc801, 0x8c040524, 0x0500000b, 0x4c000000, 0x59e41052, 0x59e40054, - 0x800000d4, 0x82000400, 0x00109c5b, 0x80081480, + 0x800000d4, 0x82000400, 0x00109cdb, 0x80081480, 0x480bc853, 0x6503c800, 0x5c000000, 0x4a03c850, - 0x00109c5b, 0x800000d4, 0x82002400, 0x00109c5a, + 0x00109cdb, 0x800000d4, 0x82002400, 0x00109cda, 0x4813c851, 0x4a03c853, 0x00000400, 0x42000000, - 0x00109c5b, 0x82001400, 0x00001000, 0x45780000, + 0x00109cdb, 0x82001400, 0x00001000, 0x45780000, 0x80000000, 0x80081d80, 0x05fe07fd, 0x4807c801, - 0x1c01f000, 0x42002000, 0x00109885, 0x59e41801, + 0x1c01f000, 0x42002000, 0x00109905, 0x59e41801, 0x58100c01, 0x82040500, 0x00003800, 0x820c1d00, 0xffffc7ff, 0x800c1d40, 0x480fc801, 0x1c01f000, 0x5c036000, 0x4db00000, 0x49b3c857, 0x4803c857, 0x1c01f000, 0x4c5c0000, 0x4c600000, 0x4c640000, 0x8d0c052a, 0x0500002f, 0x401c0000, 0x80040d40, 0x4004b800, 0x400cc000, 0x4018c800, 0x0501f8d3, - 0x41784000, 0x42002800, 0x00109885, 0x58142017, + 0x41784000, 0x42002800, 0x00109905, 0x58142017, 0x5814000d, 0x80100400, 0x445c0000, 0x80102000, 0x80000000, 0x82104d00, 0x000000ff, 0x050008a9, 0x0500001c, 0x4c000000, 0x0501f88e, 0x5c000000, @@ -219,18 +219,18 @@ static const uint32_t isp_2500_risc_code[] = { 0x05000004, 0x48102817, 0x802041c0, 0x05060b32, 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x1c01f000, 0x4c5c0000, 0x4c600000, 0x4c640000, 0x42001000, - 0x04000000, 0x41ccc800, 0x42002800, 0x00109885, + 0x04000000, 0x41ccc800, 0x42002800, 0x00109905, 0x59a80085, 0x82000d00, 0x000003ff, 0x4c000000, 0x58140212, 0x0501f85b, 0x5c000000, 0x4004b800, 0x4008c000, 0x905cbc06, 0x0501f016, 0x4c5c0000, - 0x4c600000, 0x4c640000, 0x42002800, 0x00109885, + 0x4c600000, 0x4c640000, 0x42002800, 0x00109905, 0x42001000, 0x03000000, 0x4000c800, 0x821c0500, 0x00003c00, 0x80000114, 0x821c0d00, 0x000003ff, 0x4c000000, 0x58140412, 0x0501f846, 0x5c000000, 0x4004b800, 0x4008c000, 0x805cbc00, 0x805cb840, 0x825c0480, 0x00000240, 0x05fe1edc, 0x0501f87b, 0x405c0000, 0x905cbc02, 0x80600d40, 0x42002800, - 0x00109885, 0x41784000, 0x58142017, 0x825c0480, + 0x00109905, 0x41784000, 0x58142017, 0x825c0480, 0x00000101, 0x05021029, 0x5814000d, 0x80100400, 0x44040000, 0x80102000, 0x80000000, 0x805cb840, 0x82104d00, 0x000000ff, 0x0500084a, 0x0500001b, @@ -259,7 +259,7 @@ static const uint32_t isp_2500_risc_code[] = { 0x82102500, 0x000003ff, 0x80204000, 0x58140014, 0x80000000, 0x90000503, 0x48002814, 0x05000003, 0x400c0000, 0x0501f002, 0x5814000d, 0x80000540, - 0x4803c857, 0x1c01f000, 0x42002800, 0x00109885, + 0x4803c857, 0x1c01f000, 0x42002800, 0x00109905, 0x58140000, 0x8c00050a, 0x0500002f, 0x8c000502, 0x0502002d, 0x4c5c0000, 0x5814b821, 0x49782821, 0x8400050a, 0x48002800, 0x58142017, 0x4813c857, @@ -271,14 +271,14 @@ static const uint32_t isp_2500_risc_code[] = { 0x05fc0fc0, 0x05fc0e3d, 0x445c0000, 0x80000000, 0x80102000, 0x82104d00, 0x000000ff, 0x05fc0fb9, 0x05fc0e36, 0x48102817, 0x802041c0, 0x05060a5a, - 0x405c2000, 0x600c1800, 0x60a01100, 0x0515fa01, + 0x405c2000, 0x600c1800, 0x60a01100, 0x0515fa05, 0x5c00b800, 0x1c01f000, 0x1c01f000, 0x59a80072, 0x8c000530, 0x05fe07fe, 0x4c080000, 0x60101000, 0x0501f849, 0x5c001000, 0x4201d000, 0x00028b0a, - 0x0525faff, 0x4c080000, 0x60201000, 0x0501f842, - 0x5c001000, 0x4201d000, 0x00028b0a, 0x0525faf8, + 0x0525fb8b, 0x4c080000, 0x60201000, 0x0501f842, + 0x5c001000, 0x4201d000, 0x00028b0a, 0x0525fb84, 0x4c080000, 0x60401000, 0x0501f83b, 0x5c001000, - 0x4201d000, 0x00028b0a, 0x0525faf1, 0x05fdf7e8, + 0x4201d000, 0x00028b0a, 0x0525fb7d, 0x05fdf7e8, 0x8c00050c, 0x59a80872, 0x05020003, 0x84040d30, 0x0501f005, 0x84040d70, 0x48075072, 0x60001000, 0x0501f02d, 0x48075072, 0x916c0507, 0x0c01f001, @@ -321,13 +321,13 @@ static const uint32_t isp_2500_risc_code[] = { 0x417a6000, 0x417a6800, 0x417a7000, 0x417a7800, 0x417a8000, 0x417a8800, 0x417a9000, 0x417a9800, 0x417ae800, 0x417af800, 0x600300f8, 0x42031000, - 0x00109735, 0x607f1960, 0x60df2160, 0x42032800, - 0x001096fe, 0x42033000, 0x00020a12, 0x42034000, - 0x00109410, 0x42033800, 0x0010942f, 0x42034800, - 0x00109474, 0x42035000, 0x00109380, 0x42035800, - 0x00108b80, 0x417b6000, 0x600368de, 0x6003c860, + 0x001097b5, 0x607f1960, 0x60df2160, 0x42032800, + 0x0010977e, 0x42033000, 0x00020a12, 0x42034000, + 0x00109490, 0x42033800, 0x001094af, 0x42034800, + 0x001094f4, 0x42035000, 0x00109400, 0x42035800, + 0x00108c00, 0x417b6000, 0x600368de, 0x6003c860, 0x600371fe, 0x6003797e, 0x600380ee, 0x60038880, - 0x600390c0, 0x42039800, 0x0010996a, 0x6003a0ec, + 0x600390c0, 0x42039800, 0x001099ea, 0x6003a0ec, 0x6003a8e8, 0x6003b0e4, 0x6003b8e2, 0x6003c0e0, 0x6003d000, 0x4203e800, 0x000201b5, 0x417bd800, 0x1c01f000, 0x6407c830, 0x640fc831, 0x6413c832, @@ -344,9 +344,9 @@ static const uint32_t isp_2500_risc_code[] = { 0x50040000, 0x82000580, 0x55555555, 0x05fe07f1, 0x80142840, 0x4817c857, 0x4817c861, 0x4817500a, 0x1c01f000, 0x4817c857, 0x4c5c0000, 0x4c600000, - 0x0541fcd9, 0x05000030, 0x4817c857, 0x606c08f6, + 0x0541fda3, 0x05000030, 0x4817c857, 0x606c08f6, 0x50040800, 0x8c04053e, 0x0500002b, 0x4817c857, - 0x850e1d70, 0x4c040000, 0x4c140000, 0x0505fa86, + 0x850e1d70, 0x4c040000, 0x4c140000, 0x0505fa84, 0x5c002800, 0x5c000800, 0x59e0b81a, 0x8204b500, 0x000007ff, 0x8058b000, 0x485b506a, 0x600008f4, 0x58042029, 0x5804302a, 0x82102500, 0xfffffff8, @@ -378,18 +378,18 @@ static const uint32_t isp_2500_risc_code[] = { 0x1c01f000, 0x915c04a0, 0x0500100a, 0x496bc857, 0x815eb840, 0x416a5800, 0x592ed000, 0x497a5800, 0x497a5801, 0x497a5805, 0x812e59c0, 0x1c01f000, - 0x42000000, 0x001097ea, 0x0541fb33, 0x417a5800, + 0x42000000, 0x0010986a, 0x0541fbfd, 0x417a5800, 0x05fdf7fa, 0x0501f803, 0x412d8800, 0x1c01f000, 0x815eb840, 0x05001009, 0x416a5800, 0x492fc857, 0x592ed000, 0x497a5800, 0x497a5801, 0x497a5805, - 0x812e59c0, 0x1c01f000, 0x42000000, 0x001097ea, - 0x0541fb21, 0x417ab800, 0x417a5800, 0x05fdf7f9, + 0x812e59c0, 0x1c01f000, 0x42000000, 0x0010986a, + 0x0541fbeb, 0x417ab800, 0x417a5800, 0x05fdf7f9, 0x492fc857, 0x496a5800, 0x412ed000, 0x815eb800, 0x59c80000, 0x82000540, 0x00001200, 0x48039000, 0x1c01f000, 0x492fc857, 0x812e59c0, 0x05000007, 0x592c0001, 0x497a5801, 0x4c000000, 0x05fdfff1, 0x5c025800, 0x05fdf7f9, 0x1c01f000, 0x42000000, - 0x001097ea, 0x0541fb08, 0x80025d80, 0x1c01f000, + 0x0010986a, 0x0541fbd2, 0x80025d80, 0x1c01f000, 0x4807c856, 0x42007000, 0x00020a09, 0x64007000, 0x59e00003, 0x82000540, 0x00008080, 0x4803c003, 0x4a03b805, 0x90000001, 0x59dc0006, 0x4a03b805, @@ -404,24 +404,24 @@ static const uint32_t isp_2500_risc_code[] = { 0x497bb807, 0x8058b040, 0x05fe07fe, 0x4a03b805, 0x30000000, 0x59dc0006, 0x4a03b805, 0x60000001, 0x4803c856, 0x05fdff90, 0x05fc0c20, 0x42001000, - 0x00109730, 0x452c1000, 0x64065801, 0x4a025802, - 0x00000100, 0x4a025808, 0x0010567e, 0x497a5809, + 0x001097b0, 0x452c1000, 0x64065801, 0x4a025802, + 0x00000100, 0x4a025808, 0x00105709, 0x497a5809, 0x497a580a, 0x497a580b, 0x05fdff83, 0x05fc0c13, - 0x42001000, 0x00109731, 0x452c1000, 0x64025801, + 0x42001000, 0x001097b1, 0x452c1000, 0x64025801, 0x4a025802, 0x00000100, 0x4a025808, 0x00100dbf, 0x497a5803, 0x497a5806, 0x497a5807, 0x497a5809, - 0x05fdff75, 0x05fc0c05, 0x42001000, 0x00109732, + 0x05fdff75, 0x05fc0c05, 0x42001000, 0x001097b2, 0x452c1000, 0x64025801, 0x4a025802, 0x00000100, 0x4a025808, 0x00100de3, 0x497a5803, 0x497a5806, 0x497a5807, 0x497a5809, 0x1c01f000, 0x40681000, 0x0001f81c, 0x1c01f000, 0x42001000, 0x0002002b, - 0x0521ff98, 0x0535fe41, 0x053dff20, 0x05000010, + 0x0525f824, 0x0535fed7, 0x053dffd8, 0x05000010, 0x4a03b805, 0x30000002, 0x59dc0006, 0x4807b800, 0x480bb801, 0x42007000, 0x00020a09, 0x65007002, 0x480c7008, 0x58380007, 0x90000405, 0x48007003, 0x640c7000, 0x4803b803, 0x0001f053, 0x42000000, - 0x00109752, 0x0541fa8c, 0x0535fe37, 0x60040800, - 0x42001000, 0x0002002b, 0x0521ff5b, 0x42007000, + 0x001097d2, 0x0541fb56, 0x0535fecd, 0x60040800, + 0x42001000, 0x0002002b, 0x0521ffe7, 0x42007000, 0x00020a09, 0x0001f034, 0x58380802, 0x600011fe, 0x82040480, 0x0000ff00, 0x05021003, 0x40041000, 0x80000580, 0x48007002, 0x480bb802, 0x59dc0006, @@ -461,7 +461,7 @@ static const uint32_t isp_2500_risc_code[] = { 0x05000003, 0x48107005, 0x0501f008, 0x49787005, 0x49787004, 0x0501f005, 0x48101800, 0x801021c0, 0x05020002, 0x480c7004, 0x1c01f000, 0x4803c856, - 0x4dc00000, 0x42007000, 0x00109733, 0x64007400, + 0x4dc00000, 0x42007000, 0x001097b3, 0x64007400, 0x49787001, 0x600380ee, 0x60080800, 0x59c00007, 0x4a038006, 0x60000001, 0x59c00007, 0x4a038006, 0x60000003, 0x59c00007, 0x4a038006, 0x60000005, @@ -489,11 +489,11 @@ static const uint32_t isp_2500_risc_code[] = { 0x05fe07fa, 0x05fdfad5, 0x83c00580, 0x00007700, 0x05000003, 0x600380ee, 0x05fdf7f3, 0x4178a000, 0x805cb9c0, 0x0502000f, 0x6080b000, 0x91b8ac20, - 0x0541fa4b, 0x640770fb, 0x4a037020, 0x00100cde, + 0x0541fb15, 0x640770fb, 0x4a037020, 0x00100cde, 0x59a8002c, 0x82000500, 0x0000ffff, 0x48037021, - 0x4a037035, 0x001098b0, 0x4a037038, 0x00100cd5, - 0x640770fb, 0x6080b000, 0x91b8ac00, 0x0541fa3c, - 0x6100b000, 0xb1b8ac00, 0x0541fa39, 0x805cb9c0, + 0x4a037035, 0x00109930, 0x4a037038, 0x00100cd5, + 0x640770fb, 0x6080b000, 0x91b8ac00, 0x0541fb06, + 0x6100b000, 0xb1b8ac00, 0x0541fb03, 0x805cb9c0, 0x05020004, 0x4a0370e4, 0xaaaaaaaa, 0x0501f003, 0x4a0370e4, 0xa2aa2a82, 0x4a0370e5, 0xaaaaaaaa, 0x4a0370e6, 0xaaaaaaaa, 0x640370fb, 0x4a0370e6, @@ -505,114 +505,114 @@ static const uint32_t isp_2500_risc_code[] = { 0x4d340000, 0x4d400000, 0x4cfc0000, 0x4d380000, 0x4d3c0000, 0x4d440000, 0x4d4c0000, 0x4d480000, 0x4c5c0000, 0x4c600000, 0x4c640000, 0x4d040000, - 0x4cf40000, 0x4cf80000, 0x4cfc0000, 0x0001f8bd, - 0x5c01f800, 0x5c01f000, 0x5c01e800, 0x5c020800, - 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x5c029000, - 0x5c029800, 0x5c028800, 0x5c027800, 0x5c027000, - 0x5c01f800, 0x5c028000, 0x5c026800, 0x5c025800, - 0x5c026000, 0x1c01f000, 0x493bc857, 0x0001f0e1, - 0x83300500, 0x000000ff, 0x90000c87, 0x05fe1a6f, - 0x0c01f022, 0x1c01f000, 0x82000d00, 0xc2000038, - 0x05fe0a60, 0x05fdfa69, 0x00000000, 0x00000048, - 0x00000054, 0x00000053, 0x00100799, 0x001007b4, - 0x001007b1, 0x001007ce, 0x001007a2, 0x001007ab, - 0x00100799, 0x001007ca, 0x00100807, 0x00100799, - 0x00100809, 0x00100799, 0x00100799, 0x0010080c, - 0x00100810, 0x00100821, 0x00100832, 0x00100799, - 0x00100839, 0x00100843, 0x00100799, 0x00100799, - 0x00100799, 0x05fdfa4d, 0x001007a1, 0x001008c3, - 0x001007d9, 0x001007f9, 0x001007a1, 0x001007a1, - 0x001007a1, 0x05fdfa45, 0x4803c856, 0x59300004, - 0x8c00053e, 0x05020003, 0x61567000, 0x0005f105, - 0x0525fcd1, 0x05fc07fd, 0x1c01f000, 0x4803c856, - 0x0501f899, 0x40002800, 0x41782000, 0x615a7000, - 0x0005f105, 0x4803c856, 0x615e7000, 0x0005f105, - 0x4803c856, 0x59325809, 0x812e59c0, 0x05000012, - 0x59300008, 0x8c00051a, 0x0502000b, 0x592c0409, - 0x8c00051c, 0x05020003, 0x4a026013, 0xffffffff, - 0x59300004, 0x8c00053e, 0x05020005, 0x61227000, - 0x0005f105, 0x641e5a07, 0x05fdf7f8, 0x0525fcb2, - 0x05fc07fb, 0x1c01f000, 0x4803c856, 0x83300500, - 0x00ffffff, 0x0521f786, 0x1c01f000, 0x4c040000, - 0x59b808ea, 0x90040d07, 0x90040583, 0x05000004, - 0x42000000, 0x60000000, 0x0501f89a, 0x5c000800, - 0x1c01f000, 0x0501f8dd, 0x05000015, 0x59325809, - 0x812e59c0, 0x05000012, 0x592c0205, 0x82000500, - 0x000000ff, 0x90000da9, 0x0502000d, 0x59300203, - 0x90000583, 0x05000008, 0x59300808, 0x84040d26, - 0x48066008, 0x0001f929, 0x6503900d, 0x642370e5, - 0x1c01f000, 0x0525fc8c, 0x05fc07f8, 0x42000000, - 0x001097f0, 0x0541f8a4, 0x5988014a, 0x80000000, - 0x4803114a, 0x6503900d, 0x42000000, 0xc0000000, - 0x0001f11e, 0x4c5c0000, 0x4c600000, 0x4c640000, - 0x4200c800, 0x001098b7, 0x6000b860, 0x6014c002, - 0x0521fc6f, 0x4a0370e4, 0x02000000, 0x5c00c800, - 0x5c00c000, 0x5c00b800, 0x1c01f000, 0x4933c857, - 0x0005f0e7, 0x4933c857, 0x0501fb3b, 0x1c01f000, - 0x41300800, 0x800409c0, 0x05fe09d8, 0x05fdf9cd, - 0x42000000, 0x001097f0, 0x0541f883, 0x4933c857, - 0x813261c0, 0x05fc09d1, 0x0501f82f, 0x40002800, - 0x053dffe6, 0x0501f894, 0x05000006, 0x5932680a, - 0x59340200, 0x8c00050e, 0x59300416, 0x05360b28, - 0x1c01f000, 0x42000000, 0x001097f0, 0x0541f872, - 0x4933c857, 0x813261c0, 0x05fc09c0, 0x0501f886, - 0x05000009, 0x0535f8bb, 0x05000007, 0x59325809, - 0x592c0209, 0x8400054e, 0x48025a09, 0x417a7800, - 0x0531fd80, 0x1c01f000, 0x485fc857, 0x5c000000, - 0x4d780000, 0x4203e000, 0x50000000, 0x6014b900, - 0x05fdf1b2, 0x4933c857, 0x913004a0, 0x05fe19ab, - 0x83300c00, 0x00109863, 0x50040000, 0x80000000, - 0x05001002, 0x44000800, 0x1c01f000, 0x4933c857, - 0x05fdf7f6, 0x4807c856, 0x59b800ea, 0x8c000510, - 0x05fc07fd, 0x59b800e0, 0x4803c857, 0x1c01f000, - 0x4803c856, 0x42000000, 0x10000000, 0x41300800, - 0x0501f020, 0x8c000510, 0x00000124, 0x4c040000, - 0x0501f808, 0x5c000800, 0x90100488, 0x00001124, - 0x4c040000, 0x05fdfef5, 0x5c000800, 0x0001f124, - 0x59b800e2, 0x59b820e2, 0x80100580, 0x05fe07fd, - 0x80102114, 0x0501f001, 0x40101800, 0x800c190a, - 0x9010051f, 0x900c1d1f, 0x800c2480, 0x9010251f, - 0x1c01f000, 0x40680000, 0x406c0800, 0x0501f805, - 0x60058800, 0x05020002, 0x60018800, 0x1c01f000, - 0x82000500, 0xf0000000, 0x82040d00, 0x0fffffff, - 0x80040d40, 0x4807c857, 0x42001000, 0x00109734, - 0x50080000, 0x80000540, 0x05020004, 0x640f70e5, - 0x4a0370e4, 0x00000300, 0x80000000, 0x44001000, - 0x60001008, 0x59b800ea, 0x8c000510, 0x0500000b, - 0x05fdffd8, 0x90100488, 0x05001007, 0x4c040000, - 0x4c080000, 0x05fdfec5, 0x5c001000, 0x5c000800, - 0x0501f01c, 0x59b800ea, 0x8c000516, 0x05020019, - 0x4a0370e4, 0x00300000, 0x480770e1, 0x600011fe, - 0x80081040, 0x05000010, 0x59b808e4, 0x8c040528, - 0x05fe07fc, 0x42001000, 0x00109734, 0x50080000, - 0x80000040, 0x05020004, 0x640b70e5, 0x4a0370e4, - 0x00000200, 0x05fc1945, 0x44001000, 0x8c04052c, - 0x1c01f000, 0x41f80000, 0x50000000, 0x05fdf93f, - 0x80081040, 0x05fe07d8, 0x41f80000, 0x50000000, - 0x05fdf93a, 0x4d380000, 0x59300c07, 0x90040589, - 0x05020004, 0x611e7000, 0x0005f905, 0x80000580, - 0x5c027000, 0x1c01f000, 0x4c500000, 0x6407900d, - 0x59c8a020, 0x640b900d, 0x59c80820, 0x8c50052e, - 0x05000002, 0x900409c0, 0x82040d00, 0x0000ffff, - 0x0521fb76, 0x5c00a000, 0x1c01f000, 0x42000000, - 0x001097e7, 0x053dffd0, 0x05fdfff0, 0x05000041, - 0x4933c857, 0x59300407, 0x90000580, 0x0500003d, - 0x59c82021, 0x6407900d, 0x59c82821, 0x82142d00, - 0x0000ffff, 0x59325809, 0x812e59c0, 0x05000035, - 0x5932680a, 0x0519fabe, 0x05360a59, 0x599c0019, - 0x8c00050c, 0x05020015, 0x0519fab9, 0x05020013, - 0x59300813, 0x4807c857, 0x592c0409, 0x8c00051c, - 0x0502000c, 0x8400055c, 0x48025c09, 0x592c0a05, - 0x82040d00, 0x000000ff, 0xb0040588, 0x05000003, - 0x90040598, 0x05020003, 0x59300813, 0x48065803, - 0x4a026013, 0x7fffffff, 0x48166015, 0x599c0019, - 0x8c00050c, 0x05020004, 0x59a80007, 0x8c00051e, - 0x05020014, 0x0501fc09, 0x05020012, 0x0501f9b7, + 0x4cf40000, 0x4cf80000, 0x0001f8bd, 0x5c01f000, + 0x5c01e800, 0x5c020800, 0x5c00c800, 0x5c00c000, + 0x5c00b800, 0x5c029000, 0x5c029800, 0x5c028800, + 0x5c027800, 0x5c027000, 0x5c01f800, 0x5c028000, + 0x5c026800, 0x5c025800, 0x5c026000, 0x1c01f000, + 0x493bc857, 0x0001f0e1, 0x83300500, 0x000000ff, + 0x90000c87, 0x05fe1a71, 0x0c01f022, 0x1c01f000, + 0x82000d00, 0xc2000038, 0x05fe0a62, 0x05fdfa6b, + 0x00000000, 0x00000048, 0x00000054, 0x00000053, + 0x00100797, 0x001007b2, 0x001007af, 0x001007cc, + 0x001007a0, 0x001007a9, 0x00100797, 0x001007c8, + 0x00100805, 0x00100797, 0x00100807, 0x00100797, + 0x00100797, 0x0010080a, 0x0010080e, 0x0010081f, + 0x00100830, 0x00100797, 0x00100837, 0x00100841, + 0x00100797, 0x00100797, 0x00100797, 0x05fdfa4f, + 0x0010079f, 0x001008c1, 0x001007d7, 0x001007f7, + 0x0010079f, 0x0010079f, 0x0010079f, 0x05fdfa47, + 0x4803c856, 0x59300004, 0x8c00053e, 0x05020003, + 0x61567000, 0x0005f105, 0x0525fd5f, 0x05fc07fd, + 0x1c01f000, 0x4803c856, 0x0501f899, 0x40002800, + 0x41782000, 0x615a7000, 0x0005f105, 0x4803c856, + 0x615e7000, 0x0005f105, 0x4803c856, 0x59325809, + 0x812e59c0, 0x05000012, 0x59300008, 0x8c00051a, + 0x0502000b, 0x592c0409, 0x8c00051c, 0x05020003, + 0x4a026013, 0xffffffff, 0x59300004, 0x8c00053e, + 0x05020005, 0x61227000, 0x0005f105, 0x641e5a07, + 0x05fdf7f8, 0x0525fd40, 0x05fc07fb, 0x1c01f000, + 0x4803c856, 0x83300500, 0x00ffffff, 0x0525f014, + 0x1c01f000, 0x4c040000, 0x59b808ea, 0x90040d07, + 0x90040583, 0x05000004, 0x42000000, 0x60000000, + 0x0501f89a, 0x5c000800, 0x1c01f000, 0x0501f8dd, + 0x05000015, 0x59325809, 0x812e59c0, 0x05000012, + 0x592c0205, 0x82000500, 0x000000ff, 0x90000da9, + 0x0502000d, 0x59300203, 0x90000583, 0x05000008, + 0x59300808, 0x84040d26, 0x48066008, 0x0001f929, + 0x6503900d, 0x642370e5, 0x1c01f000, 0x0525fd1a, + 0x05fc07f8, 0x42000000, 0x00109870, 0x0541f970, + 0x5988014a, 0x80000000, 0x4803114a, 0x6503900d, + 0x42000000, 0xc0000000, 0x0001f11e, 0x4c5c0000, + 0x4c600000, 0x4c640000, 0x4200c800, 0x00109937, + 0x6000b860, 0x6014c002, 0x0521fcca, 0x4a0370e4, + 0x02000000, 0x5c00c800, 0x5c00c000, 0x5c00b800, + 0x1c01f000, 0x4933c857, 0x0005f0e7, 0x4933c857, + 0x0501fb3d, 0x1c01f000, 0x41300800, 0x800409c0, + 0x05fe09da, 0x05fdf9cf, 0x42000000, 0x00109870, + 0x0541f94f, 0x4933c857, 0x813261c0, 0x05fc09d3, + 0x0501f82f, 0x40002800, 0x0541f8b2, 0x0501f894, + 0x05000006, 0x5932680a, 0x59340200, 0x8c00050e, + 0x59300416, 0x05360bc0, 0x1c01f000, 0x42000000, + 0x00109870, 0x0541f93e, 0x4933c857, 0x813261c0, + 0x05fc09c2, 0x0501f886, 0x05000009, 0x0535f953, + 0x05000007, 0x59325809, 0x592c0209, 0x8400054e, + 0x48025a09, 0x417a7800, 0x0531fe15, 0x1c01f000, + 0x485fc857, 0x5c000000, 0x4d780000, 0x4203e000, + 0x50000000, 0x6014b900, 0x05fdf1b4, 0x4933c857, + 0x913004a0, 0x05fe19ad, 0x83300c00, 0x001098e3, + 0x50040000, 0x80000000, 0x05001002, 0x44000800, + 0x1c01f000, 0x4933c857, 0x05fdf7f6, 0x4807c856, + 0x59b800ea, 0x8c000510, 0x05fc07fd, 0x59b800e0, + 0x4803c857, 0x1c01f000, 0x4803c856, 0x42000000, + 0x10000000, 0x41300800, 0x0501f020, 0x8c000510, + 0x00000124, 0x4c040000, 0x0501f808, 0x5c000800, + 0x90100488, 0x00001124, 0x4c040000, 0x05fdfef7, + 0x5c000800, 0x0001f124, 0x59b800e2, 0x59b820e2, + 0x80100580, 0x05fe07fd, 0x80102114, 0x0501f001, + 0x40101800, 0x800c190a, 0x9010051f, 0x900c1d1f, + 0x800c2480, 0x9010251f, 0x1c01f000, 0x40680000, + 0x406c0800, 0x0501f805, 0x60058800, 0x05020002, + 0x60018800, 0x1c01f000, 0x82000500, 0xf0000000, + 0x82040d00, 0x0fffffff, 0x80040d40, 0x4807c857, + 0x42001000, 0x001097b4, 0x50080000, 0x80000540, + 0x05020004, 0x640f70e5, 0x4a0370e4, 0x00000300, + 0x80000000, 0x44001000, 0x60001008, 0x59b800ea, + 0x8c000510, 0x0500000b, 0x05fdffd8, 0x90100488, + 0x05001007, 0x4c040000, 0x4c080000, 0x05fdfec7, + 0x5c001000, 0x5c000800, 0x0501f01c, 0x59b800ea, + 0x8c000516, 0x05020019, 0x4a0370e4, 0x00300000, + 0x480770e1, 0x600011fe, 0x80081040, 0x05000010, + 0x59b808e4, 0x8c040528, 0x05fe07fc, 0x42001000, + 0x001097b4, 0x50080000, 0x80000040, 0x05020004, + 0x640b70e5, 0x4a0370e4, 0x00000200, 0x05fc1947, + 0x44001000, 0x8c04052c, 0x1c01f000, 0x41f80000, + 0x50000000, 0x05fdf941, 0x80081040, 0x05fe07d8, + 0x41f80000, 0x50000000, 0x05fdf93c, 0x4d380000, + 0x59300c07, 0x90040589, 0x05020004, 0x611e7000, + 0x0005f905, 0x80000580, 0x5c027000, 0x1c01f000, + 0x4c500000, 0x6407900d, 0x59c8a020, 0x640b900d, + 0x59c80820, 0x8c50052e, 0x05000002, 0x900409c0, + 0x82040d00, 0x0000ffff, 0x0521fbd1, 0x5c00a000, + 0x1c01f000, 0x42000000, 0x00109867, 0x0541f89c, + 0x05fdfff0, 0x05000043, 0x4933c857, 0x59300407, + 0x90000580, 0x0500003f, 0x59c82021, 0x6407900d, + 0x59c82821, 0x82142d00, 0x0000ffff, 0x59325809, + 0x812e59c0, 0x05000037, 0x5932680a, 0x0519fad3, + 0x05360af1, 0x599c0019, 0x8c00050c, 0x05020015, + 0x0519face, 0x05020013, 0x59300813, 0x4807c857, + 0x592c0409, 0x8c00051c, 0x0502000c, 0x8400055c, + 0x48025c09, 0x592c0a05, 0x82040d00, 0x000000ff, + 0xb0040588, 0x05000003, 0x90040598, 0x05020003, + 0x59300813, 0x48065803, 0x4a026013, 0x7fffffff, + 0x48166015, 0x0519fab9, 0x05000004, 0x59300416, + 0x8c00051c, 0x05000004, 0x599c0019, 0x8c00050c, + 0x05000014, 0x0501fc09, 0x05020012, 0x0501f9b7, 0x40280000, 0x4802600f, 0x05000005, 0x4832600d, 0x50200000, 0x4802600c, 0x4822600e, 0x59300416, 0x8c00051c, 0x05020004, 0x599c0019, 0x8c00050c, 0x05020871, 0x6503900d, 0x642370e5, 0x1c01f000, - 0x42000000, 0x001097f0, 0x053dff8b, 0x5988014c, + 0x42000000, 0x00109870, 0x0541f855, 0x5988014c, 0x80000000, 0x4803114c, 0x6503900d, 0x42000000, 0xc0000000, 0x0001f11e, 0x4cf80000, 0x58f40000, 0x8001f540, 0x0501f81e, 0x41781800, 0x0501f8ce, @@ -639,7 +639,7 @@ static const uint32_t isp_2500_risc_code[] = { 0x4179f000, 0x5c025800, 0x1c01f000, 0x80f5e9c0, 0x05000008, 0x80f9f1c0, 0x05fe0ff6, 0x4d2c0000, 0x40f65800, 0x05fdfc07, 0x4179e800, 0x5c025800, - 0x1c01f000, 0x4cf40000, 0x0519fa1d, 0x0502002e, + 0x1c01f000, 0x4cf40000, 0x0519fa30, 0x0502002e, 0x59300808, 0x82040500, 0x00003000, 0x0502002a, 0x8c040522, 0x0500002a, 0x59300021, 0x8001ed40, 0x05fc0866, 0x82000580, 0xffffffff, 0x05000022, @@ -729,7 +729,7 @@ static const uint32_t isp_2500_risc_code[] = { 0x58343801, 0x480e6012, 0x48166010, 0x481e6011, 0x0501f1ea, 0x4933c857, 0x5931f809, 0x59301006, 0x800811c0, 0x05000009, 0x41780800, 0x60280000, - 0x0521fca4, 0x80080102, 0x05020002, 0x84001542, + 0x0521fd30, 0x80080102, 0x05020002, 0x84001542, 0x80081040, 0x4809fc07, 0x640a6006, 0x592c040a, 0x90000508, 0x05000008, 0x0501f82b, 0x59300203, 0x90000584, 0x05020003, 0x61227000, 0x0005f905, @@ -747,39 +747,39 @@ static const uint32_t isp_2500_risc_code[] = { 0x05000021, 0x90040583, 0x0500001f, 0x59300407, 0x4c000000, 0x64026407, 0x61043000, 0x4a0370e5, 0x00003000, 0x42000000, 0x50000000, 0x41300800, - 0x4c180000, 0x05fdfd4b, 0x5c003000, 0x0500000d, + 0x4c180000, 0x05fdfd49, 0x5c003000, 0x0500000d, 0x60780000, 0x80000040, 0x05fe07ff, 0x80183040, 0x05fe07f5, 0x42000000, 0x40000000, 0x41300800, - 0x05fdfd40, 0x59880146, 0x80000000, 0x48031146, + 0x05fdfd3e, 0x59880146, 0x80000000, 0x48031146, 0x4a0370e5, 0x00002000, 0x5c000000, 0x48026407, 0x1c01f000, 0x59300008, 0x84000500, 0x48026008, 0x05fdf7fc, 0x59c00007, 0x4a038006, 0x30000000, 0x40000000, 0x59c00007, 0x8c00050a, 0x05fe07fe, 0x1c01f000, 0x5c000000, 0x4c000000, 0x4803c857, 0x4dc00000, 0x640370e8, 0x608380ee, 0x05fdfff2, - 0x600380ee, 0x05fdfff0, 0x0519fd90, 0x05020011, + 0x600380ee, 0x05fdfff0, 0x0519fdc6, 0x05020011, 0x4a038891, 0x0000ffff, 0x497b8880, 0x4ce80000, - 0x6059d000, 0x0521fb6e, 0x497b8892, 0x6059d000, - 0x0521fb6b, 0x5c01d000, 0x42000000, 0x0010983b, - 0x053dfd39, 0x0501f810, 0x5c038000, 0x0519f678, + 0x6059d000, 0x0521fbfa, 0x497b8892, 0x6059d000, + 0x0521fbf7, 0x5c01d000, 0x42000000, 0x001098bb, + 0x053dfe03, 0x0501f810, 0x5c038000, 0x0519f6ae, 0x0501f81f, 0x4c080000, 0x4c140000, 0x42000000, - 0x0010983c, 0x053dfd30, 0x0501f807, 0x5c002800, + 0x001098bc, 0x053dfdfa, 0x0501f807, 0x5c002800, 0x5c001000, 0x48178892, 0x480b8880, 0x5c038000, 0x1c01f000, 0x496fc857, 0x916c0583, 0x05020008, 0x4c080000, 0x4c0c0000, 0x61201100, 0x61fc19ff, - 0x0511fa44, 0x5c001800, 0x5c001000, 0x60f00800, - 0x0501fce1, 0x4a038891, 0x0000ffff, 0x6503900d, + 0x0511fa48, 0x5c001800, 0x5c001000, 0x60f00800, + 0x0501fcdf, 0x4a038891, 0x0000ffff, 0x6503900d, 0x05fdfb63, 0x640770e8, 0x1c01f000, 0x5c000000, 0x4c000000, 0x4803c857, 0x59c41080, 0x497b8880, - 0x4ce80000, 0x6059d000, 0x4c080000, 0x0521fb3c, + 0x4ce80000, 0x6059d000, 0x4c080000, 0x0521fbc8, 0x5c001000, 0x5c01d000, 0x59c42892, 0x497b8892, - 0x0519fd52, 0x05020002, 0x1c01f000, 0x61802004, + 0x0519fd88, 0x05020002, 0x1c01f000, 0x61802004, 0x59c418a4, 0x900c1d0f, 0x900c0580, 0x0500000c, 0x59c41805, 0x900c1d01, 0x0502000b, 0x59c418a4, 0x900c1d0f, 0x900c0487, 0x05001003, 0x900c048c, 0x05001003, 0x80102040, 0x05fe07f2, 0x497b8891, 0x1c01f000, 0x4c100000, 0x60642000, 0x64078805, - 0x0505fa63, 0x59c41805, 0x900c1d01, 0x05000005, + 0x0505fa61, 0x59c41805, 0x900c1d01, 0x05000005, 0x80102040, 0x05fe07fa, 0x5c002000, 0x05fdf7f4, 0x5c002000, 0x05fdf7f0, 0x4803c856, 0x1c01f000, 0x00100bc0, 0x00100bc0, 0x00100bc0, 0x00100bd4, @@ -801,11 +801,11 @@ static const uint32_t isp_2500_risc_code[] = { 0x59300015, 0x59301014, 0x80080580, 0x05020008, 0x800811c0, 0x05000039, 0x592c1209, 0x8c08051e, 0x05020036, 0x843c7d4a, 0x0501f034, 0x480bc857, - 0x42000000, 0x001097e8, 0x053dfc97, 0x59302015, + 0x42000000, 0x00109868, 0x053dfd61, 0x59302015, 0x59300416, 0x4803c857, 0x8c000514, 0x0502000f, 0x599c1819, 0x8c0c0512, 0x0500000a, 0x592c0810, 0x59300017, 0x80040c80, 0x05000005, 0x05001004, - 0x80040000, 0x80140480, 0x05001008, 0x0529fa2b, + 0x80040000, 0x80140480, 0x05001008, 0x0529faa7, 0x900c1d41, 0x0501f01f, 0x84000514, 0x48026416, 0x48126017, 0x4813c857, 0x4c3c0000, 0x0501f8e7, 0x5c007800, 0x05020017, 0x5930500f, 0x592c0209, @@ -815,20 +815,20 @@ static const uint32_t isp_2500_risc_code[] = { 0x4822600e, 0x482a600f, 0x480fc857, 0x4833c857, 0x4823c857, 0x482bc857, 0x80000580, 0x483e6004, 0x1c01f000, 0x05f9fdb5, 0x4933c857, 0x4d2c0000, - 0x59900005, 0x81300580, 0x05fa0db0, 0x0531fcad, + 0x59900005, 0x81300580, 0x05fa0db0, 0x0531fd43, 0x05f80dae, 0x59325809, 0x4d3c0000, 0x4d400000, - 0x59300004, 0x4803c857, 0x4c000000, 0x0521fec2, - 0x0521fc40, 0x5c000000, 0x8c000516, 0x0500000d, + 0x59300004, 0x4803c857, 0x4c000000, 0x0521ff4e, + 0x0521fccc, 0x5c000000, 0x8c000516, 0x0500000d, 0x592c0010, 0x4803c857, 0x48025808, 0x41780800, - 0x600a8000, 0x0519faf7, 0x4a025c07, 0x0000ffff, - 0x492fc857, 0x0001fb2c, 0x0529f987, 0x0501f012, + 0x600a8000, 0x0519fb2d, 0x4a025c07, 0x0000ffff, + 0x492fc857, 0x0001fb2c, 0x0529f9ff, 0x0501f012, 0x640a6203, 0x592c0209, 0x8400054e, 0x48025a09, 0x59300407, 0x90000586, 0x05020009, 0x811800ca, 0x81c80c00, 0x58040939, 0x592c000e, 0x80040480, 0x592c0810, 0x80040480, 0x4802580c, 0x417a7800, - 0x0531f950, 0x5c028000, 0x5c027800, 0x5c025800, + 0x0531f9e3, 0x5c028000, 0x5c027800, 0x5c025800, 0x1c01f000, 0x4933c857, 0x4d2c0000, 0x59900005, - 0x81300580, 0x05fa0d7d, 0x0531fc7a, 0x05f80d7b, + 0x81300580, 0x05fa0d7d, 0x0531fd10, 0x05f80d7b, 0x59325809, 0x592c0209, 0x84000540, 0x48025a09, 0x05fdf7ca, 0x491bc857, 0x4dd00000, 0x4c580000, 0x41780800, 0x8007a0ca, 0x83d3a400, 0x00007600, @@ -896,10 +896,10 @@ static const uint32_t isp_2500_risc_code[] = { 0x59e4b800, 0x485fc857, 0x905c051f, 0x05fa0c77, 0x825c0500, 0x000000e0, 0x05f80c74, 0x8c5c050e, 0x05020807, 0x8c5c050c, 0x05020809, 0x8c5c050a, - 0x05020902, 0x5c00b800, 0x1c01f000, 0x4803c856, + 0x05020900, 0x5c00b800, 0x1c01f000, 0x4803c856, 0x4a03c800, 0x00000080, 0x1c01f000, 0x4d2c0000, - 0x42007800, 0x00109885, 0x583c0003, 0x583c0804, - 0x80040540, 0x05000037, 0x42000800, 0x00109731, + 0x42007800, 0x00109905, 0x583c0003, 0x583c0804, + 0x80040540, 0x05000037, 0x42000800, 0x001097b1, 0x50065800, 0x592c0002, 0x90000580, 0x05000031, 0x59e40050, 0x59e40852, 0x80040480, 0x82000500, 0xfffffc00, 0x05020005, 0x59e40050, 0x59e40851, @@ -914,1707 +914,1708 @@ static const uint32_t isp_2500_risc_code[] = { 0x480a5806, 0x48065807, 0x59e40053, 0x800000c4, 0x48025805, 0x412c1000, 0x492fc857, 0x0001f81c, 0x5c025800, 0x6503c800, 0x1c01f000, 0x42007800, - 0x00109731, 0x503c7800, 0x4a007802, 0x00000100, - 0x42007800, 0x00109885, 0x583c0000, 0x84000552, + 0x001097b1, 0x503c7800, 0x4a007802, 0x00000100, + 0x42007800, 0x00109905, 0x583c0000, 0x84000552, 0x48007800, 0x583c100c, 0x480bc857, 0x80081000, 0x4808780c, 0x583c180b, 0x800c19c0, 0x05000013, 0x90080503, 0x05020011, 0x583c0007, 0x4803c857, 0x583c2008, 0x4813c857, 0x80102000, 0x80100580, 0x05020002, 0x41782000, 0x48107808, 0x400c0000, 0x80080580, 0x05020005, 0x4978780c, 0x60041800, - 0x60a01100, 0x050dffd7, 0x1c01f000, 0x42007800, - 0x00109885, 0x4d2c0000, 0x4c5c0000, 0x4c600000, + 0x60a01100, 0x050dffdb, 0x1c01f000, 0x42007800, + 0x00109905, 0x4d2c0000, 0x4c5c0000, 0x4c600000, 0x4030b800, 0x583cc000, 0x4a00b802, 0x00000100, 0x583c2015, 0x80100800, 0x583c0013, 0x80040580, 0x05020003, 0x8460c554, 0x41780800, 0x48047815, 0x8c600502, 0x05f80bf1, 0x8460c502, 0x48607800, - 0x42000000, 0x00109732, 0x50000000, 0x80300580, + 0x42000000, 0x001097b2, 0x50000000, 0x80300580, 0x05fa0bea, 0x583c081e, 0x800409c0, 0x05000008, 0x583c001f, 0x80040580, 0x05020005, 0x4978781f, - 0x60081800, 0x60a01100, 0x050dffb2, 0x8c600508, - 0x050a0999, 0x5c00c000, 0x5c00b800, 0x5c025800, + 0x60081800, 0x60a01100, 0x050dffb6, 0x8c600508, + 0x050a099e, 0x5c00c000, 0x5c00b800, 0x5c025800, 0x1c01f000, 0x4d2c0000, 0x4c5c0000, 0x4c600000, - 0x4c640000, 0x42000800, 0x00109732, 0x50065800, - 0x4a025808, 0x00100de3, 0x6000c008, 0x4200b800, - 0x00109885, 0x585cc800, 0x4867c857, 0x8d0c052a, - 0x05020011, 0x40ee5800, 0x492fc857, 0x4a025802, + 0x4c640000, 0x42000800, 0x001097b2, 0x50065800, + 0x4a025808, 0x00100de3, 0x6000c002, 0x4200b800, + 0x00109905, 0x585cc800, 0x4867c857, 0x8d0c052a, + 0x0502000f, 0x40ee5800, 0x492fc857, 0x4a025802, 0x00000100, 0x585c0014, 0x80000000, 0x90000503, - 0x4800b814, 0x4a025808, 0x00101fa1, 0x585cc017, - 0x8260c500, 0x000000ff, 0x05f80bbc, 0x8060c0c4, - 0x4863c857, 0x4c580000, 0x61e8b001, 0x8058b040, - 0x05f80bb6, 0x8c640502, 0x0500000b, 0x8d0c052a, - 0x05fa0bb2, 0x4c580000, 0x4c600000, 0x0001f988, - 0x585cc800, 0x5c00c000, 0x5c00b000, 0x485bc857, - 0x05fdf7f3, 0x5c00b000, 0x4200b800, 0x00109885, - 0x8464cd42, 0x4864b800, 0x592c0002, 0x90000580, - 0x05f80ba2, 0x585c100d, 0x585c0014, 0x585c0818, - 0x4978b818, 0x80000040, 0x05000005, 0x82040400, - 0x00000100, 0x4800b818, 0x80081400, 0x492fc857, - 0x480bc857, 0x4863c857, 0x480a5803, 0x585c001d, - 0x4803c857, 0x585c180e, 0x800c1400, 0x480a5806, - 0x4808b81b, 0x80600400, 0x4800b81d, 0x4803c857, - 0x800c0400, 0x4800b819, 0x585c0810, 0x4807c857, - 0x4803c857, 0x80040d80, 0x05020004, 0x4978b81d, - 0x585c080e, 0x4804b819, 0x585c080e, 0x80040580, - 0x82000500, 0x000003ff, 0x05020004, 0x585c001f, - 0x80000000, 0x4800b81f, 0x585c080f, 0x48065807, - 0x4807c857, 0x64025801, 0x48625805, 0x412c1000, - 0x0001f81c, 0x5c00c800, 0x5c00c000, 0x5c00b800, - 0x5c025800, 0x1c01f000, 0x6483c800, 0x053dfa12, - 0x59e40000, 0x1c01f000, 0x60001020, 0x80081040, - 0x05000022, 0x053dfb30, 0x05fc07fd, 0x59800801, - 0x82040d00, 0xfff006ff, 0x82040d40, 0x000ff900, - 0x48070001, 0x59e00002, 0x8c00051e, 0x05020016, - 0x605c00f4, 0x50001000, 0x82081500, 0x03f00000, - 0x82080580, 0x00800000, 0x0500000f, 0x61901000, - 0x80081040, 0x0500000c, 0x59800881, 0x8c040514, - 0x05fc07fc, 0x82040500, 0x00000180, 0x82000580, - 0x00000180, 0x05020004, 0x59800080, 0x84000540, - 0x48030080, 0x90000541, 0x64030000, 0x1c01f000, - 0x053dfb0d, 0x59800802, 0x4807c857, 0x8c040520, - 0x05000007, 0x64030000, 0x60101020, 0x50080000, - 0x8400054c, 0x44001000, 0x0501f000, 0x82040500, - 0x00001084, 0x05fa0b35, 0x8c040510, 0x05000006, - 0x42000000, 0x00109883, 0x053df9df, 0x4a030002, - 0x00000100, 0x8c040522, 0x0500002d, 0x59e00002, - 0x8c00051e, 0x0502002a, 0x601c20f6, 0x50102800, - 0x4817c857, 0x605c00f4, 0x50003000, 0x82180500, - 0x000f0000, 0x40003800, 0x40144000, 0x821c0580, - 0x00020000, 0x05020002, 0x902041c0, 0x8c18050c, - 0x05000002, 0x842041c0, 0x82204500, 0x000000ff, - 0x90204401, 0x8c200510, 0x05000005, 0x42000000, - 0x00109884, 0x053df9c0, 0x61fc4001, 0x42001800, - 0xffffff00, 0x8c18050c, 0x05000003, 0x840c19c0, - 0x842041c0, 0x821c0580, 0x00020000, 0x05020003, - 0x900c19c0, 0x902041c0, 0x800c0505, 0x80200540, - 0x44002000, 0x4a030002, 0x00020000, 0x64030000, - 0x1c01f000, 0x4d2c0000, 0x64007000, 0x82040d00, - 0x43200f80, 0x05fa0af9, 0x58380008, 0x4803c00f, - 0x4a0370e4, 0x00003000, 0x0531fd4f, 0x583a5807, - 0x592c0000, 0x48007007, 0x800001c0, 0x05020002, - 0x49787006, 0x05f9fe7f, 0x5c025800, 0x42007000, - 0x00020a09, 0x0001f031, 0x4803c856, 0x4c3c0000, - 0x4d2c0000, 0x4d300000, 0x58300009, 0x80025d40, - 0x05f80ae2, 0x592e6009, 0x4c300000, 0x0531fd54, - 0x5c006000, 0x05f80add, 0x58300002, 0x82000580, - 0x00000100, 0x0502000d, 0x5930780d, 0x583c0001, - 0x80007d40, 0x0500000b, 0x4802600d, 0x90000402, - 0x48006003, 0x583c0000, 0x48006005, 0x40301000, - 0x0001f81c, 0x0501f008, 0x640a5a07, 0x492fc857, - 0x4c300000, 0x0001fb2c, 0x5c025800, 0x05f9fe59, - 0x0005f8e7, 0x5c026000, 0x5c025800, 0x5c007800, - 0x1c01f000, 0x4803c856, 0x4d2c0000, 0x4d300000, - 0x42007000, 0x00020a09, 0x58380800, 0x90040582, - 0x05020010, 0x58386001, 0x58300009, 0x812c0580, - 0x0502000c, 0x59e00004, 0x8c00050e, 0x05fc07fe, - 0x59dc0006, 0x4803c857, 0x4a03b805, 0x20000000, - 0x8c00053e, 0x05fc07f8, 0x64007000, 0x0501f018, - 0x58386005, 0x40305000, 0x803061c0, 0x05f80aa7, - 0x58300009, 0x812c0580, 0x05000004, 0x40305000, - 0x58306000, 0x05fdf7f9, 0x40280000, 0x80300580, - 0x58300000, 0x05000006, 0x48005000, 0x800001c0, - 0x05020007, 0x48287004, 0x0501f005, 0x800001c0, - 0x05020002, 0x48007004, 0x48007005, 0x40325800, - 0x05f9fe24, 0x5c026000, 0x5c025800, 0x0001f02b, - 0x4d2c0000, 0x0001f813, 0x05f80a8c, 0x412c1000, - 0x5c025800, 0x4a001008, 0x0002019d, 0x90080409, - 0x48001003, 0x0001f193, 0x4d2c0000, 0x40325800, - 0x05f9fe15, 0x5c025800, 0x1c01f000, 0x4807c857, - 0x05f9fa7e, 0x42001000, 0x00109c51, 0x4a001003, - 0x00109c5a, 0x4a001008, 0x0002019d, 0x49781009, - 0x1c01f000, 0x59e00017, 0x8c000500, 0x1c01f000, - 0x0001f9a6, 0x4d040000, 0x4c640000, 0x4c600000, - 0x40120800, 0x400cc800, 0x4014c000, 0x0501f021, - 0x4803c856, 0x42000800, 0x4fffffff, 0x46000800, - 0x00002bad, 0x50040000, 0x0501f000, 0x59e00017, - 0x8c00050c, 0x05020005, 0x59a80866, 0x58040003, - 0x8c000500, 0x0500000d, 0x4c080000, 0x59a81065, - 0x50080000, 0x84000542, 0x44001000, 0x5c001000, - 0x59e00017, 0x8c00050c, 0x05fe07fe, 0x58040003, - 0x8c000500, 0x05fe07fb, 0x4d040000, 0x4c640000, - 0x4c600000, 0x5804c800, 0x58060801, 0x5804c002, - 0x4a03b805, 0x20000000, 0x59dc0006, 0x4a03b805, - 0x30000000, 0x59dc0006, 0x4a03b805, 0x70000000, - 0x59dc0006, 0x4867b800, 0x4907b801, 0x6413b802, - 0x601c00e2, 0x44600000, 0x4a03b805, 0x30000000, - 0x59dc0006, 0x4a03b805, 0x10000003, 0x59dc0006, - 0x8c00053e, 0x05fc07fe, 0x4a03b805, 0x20000000, - 0x59dc0006, 0x5c00c000, 0x5c00c800, 0x5c020800, - 0x1c01f000, 0x4803c856, 0x053dfa00, 0x0001f1af, - 0x4803c856, 0x60f00800, 0x48079000, 0x59c80000, - 0x80040500, 0x05fe07fe, 0x497b9005, 0x4a039035, - 0x00880400, 0x59a8000d, 0x800000e0, 0x4803900e, - 0x64939011, 0x4a03900f, 0x0010cca4, 0x4a039010, - 0x0010cca4, 0x65db9015, 0x4a039003, 0x00001f07, - 0x6503900d, 0x4a039000, 0x00001600, 0x1c01f000, - 0x59c80007, 0x8c000508, 0x05020880, 0x59c80800, - 0x8c040516, 0x05020003, 0x90000506, 0x0c01f004, - 0x4807c857, 0x9000050e, 0x0c01f001, 0x00100ff0, - 0x00100fef, 0x0010485b, 0x00100fef, 0x00100ff2, - 0x00100fef, 0x00100ff2, 0x00100ff2, 0x00100fef, - 0x00100fef, 0x00100fef, 0x00100fef, 0x00100ff2, - 0x00100fef, 0x00100ff2, 0x00100fef, 0x05f9f9f7, - 0x4803c857, 0x1c01f000, 0x59c8080c, 0x4807c857, - 0x82040500, 0x00006000, 0x05000003, 0x053df859, - 0x0501f005, 0x82040500, 0x007f0000, 0x05000004, - 0x053df826, 0x0521fbf2, 0x0501f02c, 0x90040514, - 0x0500000d, 0x053df87e, 0x916c0583, 0x05000008, - 0x0519f8da, 0x05000003, 0x0511fd8c, 0x0501f004, - 0x64075014, 0x6006d800, 0x0519f852, 0x0501f820, - 0x0501f01e, 0x82040500, 0x00001c00, 0x05000004, - 0x053df84e, 0x0501f81a, 0x0501f018, 0x82040500, - 0x00000140, 0x05000004, 0x053df85b, 0x0501f814, - 0x0501f012, 0x82040500, 0x00008000, 0x0500000f, - 0x0519f8c2, 0x0500000b, 0x59c400a4, 0x9000050f, - 0x9000058b, 0x05020007, 0x4c040000, 0x0511fd86, - 0x60780000, 0x80000040, 0x05fe07ff, 0x5c000800, - 0x053df821, 0x0501f802, 0x1c01f000, 0x4c0c0000, - 0x4c100000, 0x4c140000, 0x05fdfb17, 0x5c002800, - 0x5c002000, 0x5c001800, 0x1c01f000, 0x4803c856, - 0x59a80804, 0x59a80020, 0x82000500, 0xfffff000, - 0x80040540, 0x48035020, 0x59a80024, 0x82000500, - 0xfffff000, 0x80040540, 0x48035024, 0x48078882, - 0x82040480, 0x00000204, 0x05021004, 0x42001000, - 0x00240f04, 0x0501f00f, 0x82040480, 0x00000404, - 0x05021004, 0x42001000, 0x00440800, 0x0501f009, - 0x82040480, 0x00000804, 0x05021004, 0x42001000, - 0x00840410, 0x0501f003, 0x42001000, 0x00880400, - 0x480b9035, 0x0501f331, 0x59c80815, 0x05f9f985, - 0x40680800, 0xb0040d3c, 0x48079000, 0x59c80000, - 0x80040500, 0x05fe07fe, 0x8c040504, 0x0500001b, - 0x59c80035, 0x48039035, 0x59a80083, 0x80000540, - 0x05000016, 0x4c300000, 0x600060de, 0x58300801, - 0x82040d00, 0xffc00000, 0x8004090c, 0x58300000, - 0x90000541, 0x48006000, 0x58300000, 0x8c000500, - 0x05fe07fe, 0x82000500, 0xfc00ffff, 0x80040540, - 0x84000574, 0x48006000, 0x58300000, 0x8c000534, - 0x05fe07fe, 0x5c006000, 0x59c80000, 0x82000540, - 0x00001200, 0x48039000, 0x1c01f000, 0x42006000, - 0x7ff4c000, 0x58300003, 0x8c000502, 0x0502000a, - 0x600060de, 0x64686000, 0x58300000, 0x8c000504, - 0x05fe07fe, 0x641c6002, 0x59a80083, 0x84000540, - 0x48035083, 0x1c01f000, 0x600060de, 0x58300801, - 0x9004050c, 0x05fa0955, 0x60f00800, 0x05fdf7c6, - 0x4853c857, 0x497b8801, 0x850e1d1a, 0x5050b000, - 0x485bc857, 0x8058b1c0, 0x0500089d, 0x82580480, - 0x00000804, 0x0502189a, 0x60040000, 0x61000801, - 0x0501fd76, 0x40582000, 0x8050a000, 0x50500000, - 0x80102400, 0x9058b483, 0x8050a000, 0x485bc857, - 0x4853c857, 0x50501000, 0x80082404, 0x60101800, - 0x82080500, 0x000000ff, 0x61000821, 0x0501fd67, - 0x80081110, 0x800c1840, 0x05fe07fa, 0x8050a000, - 0x8058b040, 0x05fe07f4, 0x4803c856, 0x41780000, - 0x61000801, 0x0501fd5d, 0x50501000, 0x80082404, - 0x0502087b, 0x4803c856, 0x1c01f000, 0x4a035044, - 0xaabbccdd, 0x600c0000, 0x0501fcb0, 0x600c0000, - 0x0501fcd8, 0x60300868, 0x0501fd48, 0x90040541, - 0x60300868, 0x0501fd4d, 0x60480888, 0x0501fd43, - 0x90040548, 0x60480888, 0x0501fd48, 0x60180818, - 0x0501fd3e, 0x82040540, 0x00000080, 0x60180818, - 0x0501fd42, 0x60480828, 0x0501fd38, 0x90040541, - 0x60480828, 0x0501fd3d, 0x59a8004b, 0x8c00050e, - 0x05000006, 0x4803c857, 0x82000500, 0x0000ff00, - 0x80000110, 0x0501f002, 0x60e00001, 0x60300800, - 0x0501fd32, 0x60380940, 0x0501fd28, 0x82040500, - 0xffffff0f, 0x0501fecb, 0x05020003, 0x90000540, - 0x0501f002, 0x90000550, 0x60380940, 0x0501fd27, - 0x60380938, 0x0501fd1d, 0x90040550, 0x60380938, - 0x0501fd22, 0x60800000, 0x61000859, 0x0501fd1f, - 0x61000000, 0x61000851, 0x0501fd1c, 0x60300000, - 0x61800861, 0x0501fd19, 0x60840000, 0x61800821, - 0x0501fd16, 0x59c40001, 0x84000574, 0x48038801, - 0x850e1d5a, 0x61602004, 0x6029d000, 0x0501f83c, - 0x4813c857, 0x61000849, 0x0501fd04, 0x4807c857, - 0x82041500, 0x000000c0, 0x82081580, 0x000000c0, - 0x05000004, 0x80102040, 0x05000825, 0x05fdf7f3, - 0x4803c856, 0x60c82000, 0x6029d000, 0x0501f82c, - 0x60380878, 0x0501fcf5, 0x90040d01, 0x05020004, - 0x80102040, 0x0500081a, 0x05fdf7f8, 0x4803c856, - 0x61702001, 0x6029d000, 0x051dfda1, 0x60380818, - 0x0501fcea, 0x90040d10, 0x05020004, 0x80102040, - 0x05f808be, 0x05fdf7f8, 0x4803c856, 0x60a02000, - 0x6029d000, 0x051dfd96, 0x603808b8, 0x0501fcdf, - 0x90040d04, 0x05000004, 0x80102040, 0x05f808b3, - 0x05fdf7f8, 0x4803c856, 0x1c01f000, 0x4803c856, - 0x4a03c020, 0x00004010, 0x4a03c011, 0x40100011, - 0x05006000, 0x4203e000, 0x40000000, 0x4203e000, - 0x30000001, 0x4803c856, 0x0501f000, 0x61201801, - 0x800c1840, 0x05fe07ff, 0x80e9d040, 0x05fe07fc, - 0x1c01f000, 0x4803c856, 0x497b88a9, 0x64078807, - 0x497b8807, 0x59c40005, 0x48038805, 0x0501fdae, - 0x0501fdf1, 0x0501f9e3, 0x4a0388a7, 0x0000f7f7, - 0x4a0388a3, 0x8000403c, 0x4a0388ae, 0x000061a8, - 0x59c40001, 0x82000540, 0x184fa063, 0x48038801, - 0x4a038810, 0x00410108, 0x4a038811, 0x00520608, - 0x4a038812, 0x00450320, 0x4a038813, 0x00440405, - 0x4a03881c, 0x004132e1, 0x4a038850, 0x80000108, - 0x64238860, 0x64238870, 0x4a038851, 0x80000508, - 0x4a038861, 0x00800000, 0x4a038871, 0x00800000, - 0x4a038852, 0x80000708, 0x4a038862, 0x00800000, - 0x4a038872, 0x00800000, 0x4a038853, 0x80000608, - 0x497b8863, 0x4a038873, 0x00800000, 0x4a038882, - 0x00000840, 0x4a0388a5, 0x000000fe, 0x647b88a6, - 0x4a0388b0, 0x00007530, 0x4a038802, 0x0000ffff, - 0x4a038806, 0xc0e80b00, 0x1c01f000, 0x850e1d4e, - 0x1c01f000, 0x59c40805, 0x59c40006, 0x80040d00, - 0x05f8085a, 0x82040500, 0x00e80b00, 0x05020004, - 0x8c04053e, 0x050208c4, 0x0501f005, 0x82040500, - 0x00880b00, 0x05fa0847, 0x05f9f850, 0x4c5c0000, - 0x4c600000, 0x59c4b805, 0x59c410a3, 0x84081518, - 0x825c0500, 0x04000000, 0x05020d2d, 0x59c40006, - 0x8c000500, 0x05000003, 0x8c5c0500, 0x0502007f, - 0x485fc857, 0x0515ff39, 0x0500001a, 0x59c40005, - 0x82000500, 0x000000c0, 0x05000042, 0x0515ff54, - 0x05020040, 0x59c40006, 0x82000500, 0x000000f0, - 0x05020004, 0x4a038805, 0x000000c0, 0x0501f039, - 0x59a80015, 0x84000506, 0x48035015, 0x42006000, - 0xff203fff, 0x42006800, 0x40000000, 0x0511fd11, - 0x60400800, 0x42001000, 0x0010365a, 0x051dfcfb, - 0x8c5c0534, 0x0502002b, 0x4a035013, 0x0000aaaa, - 0x59c40005, 0x8c00050c, 0x0502000f, 0x8c00050e, - 0x05020015, 0x8c00050a, 0x0502001b, 0x8c000508, - 0x05000008, 0x59a80011, 0x90000589, 0x05020005, - 0x42000000, 0x0010974d, 0x0539fec3, 0x0519f8c3, - 0x0501f04c, 0x42000000, 0x0010975b, 0x0539febe, - 0x41781800, 0x60042000, 0x0501fce5, 0x64035014, - 0x0501f00e, 0x42000000, 0x0010975c, 0x0539feb6, - 0x41781800, 0x60082000, 0x0501fcdd, 0x640b5014, - 0x0501f006, 0x42000000, 0x0010974f, 0x0539feae, - 0x0519f854, 0x0501f037, 0x0519f900, 0x0501f035, - 0x8c5c0534, 0x05000031, 0x59c40005, 0x8c00053a, - 0x05020004, 0x42000000, 0x00109743, 0x0539fea2, - 0x4a038805, 0x20000000, 0x0515fee8, 0x0502000e, - 0x4a038805, 0x04000000, 0x59c418a8, 0x60002000, - 0x0501fcc3, 0x0515fef7, 0x05020005, 0x64075014, - 0x6006d800, 0x0515fe5b, 0x0501f050, 0x41780000, - 0x0515feae, 0x0501fcb3, 0x4000c000, 0x0501fc2e, - 0x916c1584, 0x0502000b, 0x8c5c0500, 0x05020013, - 0x8d0c0506, 0x05020004, 0x59c410a3, 0x90081548, - 0x480b88a3, 0x59c41006, 0x84081540, 0x480b8806, - 0x4a038805, 0x04000000, 0x6006d800, 0x497b5010, - 0x8d0c0518, 0x05020004, 0x4803c856, 0x850e1d06, - 0x0511fb92, 0x050dfe77, 0x8c5c053c, 0x0502084f, - 0x8c5c0500, 0x0500002e, 0x42000000, 0x00109860, - 0x0539fe71, 0x64078805, 0x6148b006, 0x6191d000, - 0x4c580000, 0x051dfc9a, 0x0501fba5, 0x5c00b000, - 0x05000004, 0x8058b040, 0x05fe07f9, 0x0501f003, - 0x64078805, 0x0501f01e, 0x59c40006, 0x84000500, - 0x48038806, 0x0521f9e0, 0x497b8880, 0x0501fd7d, - 0x05000007, 0x59e00013, 0x8c000516, 0x05000004, - 0x60142000, 0x0519f8de, 0x0501f003, 0x60182000, - 0x0519f8db, 0x59c400a3, 0x82000500, 0xfcf8ffff, - 0x480388a3, 0x640b5071, 0x6012d800, 0x64078805, - 0x05f9f9b9, 0x0501fb1f, 0x497b5036, 0x64075043, - 0x497b506c, 0x0201f800, 0x0010c52f, 0x825cbd00, - 0xbbfffffe, 0x485f8805, 0x5c00c000, 0x5c00b800, - 0x1c01f000, 0x4d180000, 0x59c41004, 0x480bc857, - 0x8c080500, 0x05000006, 0x4803c856, 0x4a01a8e5, - 0x00000800, 0x0521fa65, 0x0501f007, 0x82080500, - 0x000001f0, 0x05000004, 0x4803c856, 0x0521fb7f, - 0x05220a7d, 0x4a038805, 0x80000000, 0x5c023000, - 0x1c01f000, 0x59c408a3, 0x4807c857, 0x84040d40, - 0x480788a3, 0x1c01f000, 0x4d900000, 0x4dd00000, - 0x4da40000, 0x4d140000, 0x4cd80000, 0x4a038805, - 0x40000000, 0x42000000, 0x00109755, 0x0539fe1e, - 0x051dfebb, 0x59c41004, 0x8c080500, 0x05000040, - 0x598e600b, 0x4a01a8e5, 0x00000800, 0x813261c0, - 0x05000024, 0x59300403, 0x900005b2, 0x05020021, - 0x5930001e, 0x48038833, 0x4a038807, 0x00018000, - 0x6009d000, 0x051dfc3a, 0x497b8807, 0x6009d000, - 0x051dfc37, 0x0521f8cb, 0x60c1d0ea, 0x051dfc34, - 0x59c408a4, 0x90040d0f, 0x90040d80, 0x05000004, - 0x42000000, 0x00200000, 0x0501fb85, 0x051dfe06, - 0x59300009, 0x80000540, 0x05f40f4c, 0x40025800, - 0x4a025a05, 0x00000103, 0x5931d823, 0x58ef400a, - 0x58ec0008, 0x0801f800, 0x0005f8e7, 0x0501f032, - 0x598c000d, 0x82001c80, 0x000000c8, 0x0502100c, - 0x80000000, 0x4803180d, 0x59c400a4, 0x9000050f, - 0x90000582, 0x05020004, 0x42000000, 0x00200000, - 0x0501fb6b, 0x051dfbb5, 0x0501f023, 0x4933c857, - 0x0521f8a4, 0x813261c0, 0x0500001f, 0x64066203, - 0x609e7000, 0x0005f905, 0x0501f01b, 0x0521fb27, - 0x05000019, 0x0521fb4e, 0x051dfbd1, 0x59926005, - 0x813261c0, 0x0500000d, 0x61201801, 0x0521fb16, - 0x0502000a, 0x59c400a4, 0x9000050f, 0x90000582, - 0x05020004, 0x42000000, 0x00200000, 0x0501fb50, - 0x051dfba0, 0x0501f008, 0x4933c857, 0x0521f832, - 0x813261c0, 0x05000004, 0x613e7000, 0x640e6203, - 0x0005f905, 0x5c01b000, 0x5c022800, 0x5c034800, - 0x5c03a000, 0x5c032000, 0x051df645, 0x40680000, - 0x810c0d80, 0x8c04050e, 0x0500004e, 0x4803c857, - 0x8d0c050e, 0x0500001f, 0x850e1d0e, 0x497b5071, - 0x42000000, 0x0010973c, 0x0539fdaf, 0x0539fe5b, - 0x60441100, 0x59c40001, 0x82000500, 0x00018000, - 0x90001d80, 0x0500000b, 0x82001d80, 0x00008000, - 0x0500000a, 0x82001d80, 0x00010000, 0x05000009, - 0x82001d80, 0x00018000, 0x05000008, 0x05f5feef, - 0x60001800, 0x0501f006, 0x60041800, 0x0501f004, - 0x600c1800, 0x0501f002, 0x60101800, 0x050df2b9, - 0x850e1d4e, 0x59a80871, 0x800409c0, 0x05020006, - 0x59c4000d, 0x8c000520, 0x05000003, 0x600c1800, - 0x0501f002, 0x40041800, 0x0539fe20, 0x4c0c0000, - 0x41782000, 0x0501fca7, 0x0500000f, 0x0501fc89, - 0x60042000, 0x0502000c, 0x0501fc94, 0x05020006, - 0x60082000, 0x0501f8b6, 0x05020007, 0x60102000, - 0x0501f005, 0x600c2000, 0x0501f890, 0x05020002, - 0x60142000, 0x5c001800, 0x60481100, 0x050dfa99, - 0x05f9f8e1, 0x0539fe83, 0x0502000a, 0x0501f845, - 0x4d400000, 0x4d3c0000, 0x60a28000, 0x60227800, - 0x0201f800, 0x0010b5d3, 0x5c027800, 0x5c028000, - 0x1c01f000, 0x4803c857, 0x82000400, 0x00101a21, - 0x50000800, 0x82040d00, 0x000000ff, 0x1c01f000, - 0x4803c856, 0x4c580000, 0x6040b000, 0x497b88ac, - 0x497b88ad, 0x8058b040, 0x05fe07fe, 0x5c00b000, - 0x1c01f000, 0x40680800, 0x4807c857, 0x4807500f, - 0x80041108, 0x6040b000, 0x497b88ac, 0x80000580, - 0x800811c0, 0x05020005, 0x9004050f, 0x82000400, - 0x001089c0, 0x50000000, 0x480388ad, 0x80081040, - 0x8058b040, 0x05fe07f6, 0x1c01f000, 0x4803c857, - 0x4c080000, 0x4c040000, 0x4c000000, 0x59c40892, - 0x4807c857, 0x80041580, 0x0500000e, 0x80041480, - 0x05021006, 0x80081080, 0x80081000, 0x4008b000, - 0x60040004, 0x0501f003, 0x4008b000, 0x60400004, - 0x48038886, 0x8058b040, 0x05fe07fe, 0x497b8886, - 0x5c000000, 0x5c000800, 0x5c001000, 0x1c01f000, - 0x4803c856, 0x8d0c0520, 0x05000003, 0x60ba8000, - 0x0535f780, 0x1c01f000, 0x0501f803, 0x40058800, - 0x1c01f000, 0x59a80083, 0x80000540, 0x05000008, - 0x0515fd6a, 0x60280800, 0x0502000e, 0x600008de, - 0x58040001, 0x8000092c, 0x0501f00a, 0x59c80835, - 0x82040d00, 0x00001f00, 0x80040910, 0x80040800, - 0x59a80083, 0x80000540, 0x05000002, 0x61680804, - 0x4807c857, 0x1c01f000, 0x59a80083, 0x80000540, - 0x0500001c, 0x599c1a01, 0x60a80801, 0x820c0480, - 0x00000204, 0x0500100a, 0x61680800, 0x820c0480, - 0x00000404, 0x05001006, 0x60b80800, 0x820c0480, - 0x00000804, 0x05001002, 0x60b40800, 0x4c300000, - 0x600060de, 0x58301000, 0x82081500, 0xfc00ffff, - 0x800400e0, 0x80080540, 0x84000574, 0x48006000, + 0x4800b814, 0x4a025808, 0x00101fa6, 0x585cc017, + 0x8260c500, 0x000000ff, 0x05f80bbc, 0x4c580000, + 0x61e8b001, 0x8058b040, 0x05f80bb8, 0x8c640502, + 0x0500000b, 0x8d0c052a, 0x05fa0bb4, 0x4c580000, + 0x4c600000, 0x0001f988, 0x585cc800, 0x5c00c000, + 0x5c00b000, 0x485bc857, 0x05fdf7f3, 0x5c00b000, + 0x4200b800, 0x00109905, 0x8464cd42, 0x4864b800, + 0x592c0002, 0x90000580, 0x05f80ba4, 0x585c100d, + 0x585c0018, 0x80081400, 0x80600400, 0x4800b818, + 0x585c0014, 0x800001c0, 0x05020002, 0x4978b818, + 0x8060c0c4, 0x492fc857, 0x480bc857, 0x4863c857, + 0x480a5803, 0x585c001d, 0x4803c857, 0x585c180e, + 0x800c1400, 0x480a5806, 0x4808b81b, 0x80600400, + 0x4800b81d, 0x4803c857, 0x800c0400, 0x4800b819, + 0x585c0810, 0x4807c857, 0x4803c857, 0x80040d80, + 0x05020004, 0x4978b81d, 0x585c080e, 0x4804b819, + 0x585c080e, 0x80040580, 0x82000500, 0x000003ff, + 0x05020004, 0x585c001f, 0x80000000, 0x4800b81f, + 0x585c080f, 0x48065807, 0x4807c857, 0x64025801, + 0x48625805, 0x412c1000, 0x0001f81c, 0x5c00c800, + 0x5c00c000, 0x5c00b800, 0x5c025800, 0x1c01f000, + 0x6483c800, 0x053dfade, 0x59e40000, 0x1c01f000, + 0x60001020, 0x80081040, 0x05000022, 0x053dfbfc, + 0x05fc07fd, 0x59800801, 0x82040d00, 0xfff006ff, + 0x82040d40, 0x000ff900, 0x48070001, 0x59e00002, + 0x8c00051e, 0x05020016, 0x605c00f4, 0x50001000, + 0x82081500, 0x03f00000, 0x82080580, 0x00800000, + 0x0500000f, 0x61901000, 0x80081040, 0x0500000c, + 0x59800881, 0x8c040514, 0x05fc07fc, 0x82040500, + 0x00000180, 0x82000580, 0x00000180, 0x05020004, + 0x59800080, 0x84000540, 0x48030080, 0x90000541, + 0x64030000, 0x1c01f000, 0x053dfbd9, 0x59800802, + 0x4807c857, 0x8c040520, 0x05000007, 0x64030000, + 0x60101020, 0x50080000, 0x8400054c, 0x44001000, + 0x0501f000, 0x82040500, 0x00001084, 0x05fa0b37, + 0x8c040510, 0x05000006, 0x42000000, 0x00109903, + 0x053dfaab, 0x4a030002, 0x00000100, 0x8c040522, + 0x0500002d, 0x59e00002, 0x8c00051e, 0x0502002a, + 0x601c20f6, 0x50102800, 0x4817c857, 0x605c00f4, + 0x50003000, 0x82180500, 0x000f0000, 0x40003800, + 0x40144000, 0x821c0580, 0x00020000, 0x05020002, + 0x902041c0, 0x8c18050c, 0x05000002, 0x842041c0, + 0x82204500, 0x000000ff, 0x90204401, 0x8c200510, + 0x05000005, 0x42000000, 0x00109904, 0x053dfa8c, + 0x61fc4001, 0x42001800, 0xffffff00, 0x8c18050c, + 0x05000003, 0x840c19c0, 0x842041c0, 0x821c0580, + 0x00020000, 0x05020003, 0x900c19c0, 0x902041c0, + 0x800c0505, 0x80200540, 0x44002000, 0x4a030002, + 0x00020000, 0x64030000, 0x1c01f000, 0x4d2c0000, + 0x64007000, 0x82040d00, 0x43200f80, 0x05fa0afb, + 0x58380008, 0x4803c00f, 0x4a0370e4, 0x00003000, + 0x0531fde7, 0x583a5807, 0x592c0000, 0x48007007, + 0x800001c0, 0x05020002, 0x49787006, 0x05f9fe81, + 0x5c025800, 0x42007000, 0x00020a09, 0x0001f031, + 0x4803c856, 0x4c3c0000, 0x4d2c0000, 0x4d300000, + 0x58300009, 0x80025d40, 0x05f80ae4, 0x592e6009, + 0x4c300000, 0x0531fdec, 0x5c006000, 0x05f80adf, + 0x58300002, 0x82000580, 0x00000100, 0x0502000d, + 0x5930780d, 0x583c0001, 0x80007d40, 0x0500000b, + 0x4802600d, 0x90000402, 0x48006003, 0x583c0000, + 0x48006005, 0x40301000, 0x0001f81c, 0x0501f008, + 0x640a5a07, 0x492fc857, 0x4c300000, 0x0001fb2c, + 0x5c025800, 0x05f9fe5b, 0x0005f8e7, 0x5c026000, + 0x5c025800, 0x5c007800, 0x1c01f000, 0x4803c856, + 0x4d2c0000, 0x4d300000, 0x42007000, 0x00020a09, + 0x58380800, 0x90040582, 0x05020010, 0x58386001, + 0x58300009, 0x812c0580, 0x0502000c, 0x59e00004, + 0x8c00050e, 0x05fc07fe, 0x59dc0006, 0x4803c857, + 0x4a03b805, 0x20000000, 0x8c00053e, 0x05fc07f8, + 0x64007000, 0x0501f018, 0x58386005, 0x40305000, + 0x803061c0, 0x05f80aa9, 0x58300009, 0x812c0580, + 0x05000004, 0x40305000, 0x58306000, 0x05fdf7f9, + 0x40280000, 0x80300580, 0x58300000, 0x05000006, + 0x48005000, 0x800001c0, 0x05020007, 0x48287004, + 0x0501f005, 0x800001c0, 0x05020002, 0x48007004, + 0x48007005, 0x40325800, 0x05f9fe26, 0x5c026000, + 0x5c025800, 0x0001f02b, 0x4d2c0000, 0x0001f813, + 0x05f80a8e, 0x412c1000, 0x5c025800, 0x4a001008, + 0x0002019d, 0x90080409, 0x48001003, 0x0001f193, + 0x4d2c0000, 0x40325800, 0x05f9fe17, 0x5c025800, + 0x1c01f000, 0x4807c857, 0x05f9fa80, 0x42001000, + 0x00109cd1, 0x4a001003, 0x00109cda, 0x4a001008, + 0x0002019d, 0x49781009, 0x1c01f000, 0x59e00017, + 0x8c000500, 0x1c01f000, 0x0001f9a6, 0x4d040000, + 0x4c640000, 0x4c600000, 0x40120800, 0x400cc800, + 0x4014c000, 0x0501f021, 0x4803c856, 0x42000800, + 0x4fffffff, 0x46000800, 0x00002bad, 0x50040000, + 0x0501f000, 0x59e00017, 0x8c00050c, 0x05020005, + 0x59a80866, 0x58040003, 0x8c000500, 0x0500000d, + 0x4c080000, 0x59a81065, 0x50080000, 0x84000542, + 0x44001000, 0x5c001000, 0x59e00017, 0x8c00050c, + 0x05fe07fe, 0x58040003, 0x8c000500, 0x05fe07fb, + 0x4d040000, 0x4c640000, 0x4c600000, 0x5804c800, + 0x58060801, 0x5804c002, 0x4a03b805, 0x20000000, + 0x59dc0006, 0x4a03b805, 0x30000000, 0x59dc0006, + 0x4a03b805, 0x70000000, 0x59dc0006, 0x4867b800, + 0x4907b801, 0x6413b802, 0x601c00e2, 0x44600000, + 0x4a03b805, 0x30000000, 0x59dc0006, 0x4a03b805, + 0x10000003, 0x59dc0006, 0x8c00053e, 0x05fc07fe, + 0x4a03b805, 0x20000000, 0x59dc0006, 0x5c00c000, + 0x5c00c800, 0x5c020800, 0x1c01f000, 0x4803c856, + 0x053dfacc, 0x0001f1af, 0x4803c856, 0x60f00800, + 0x48079000, 0x59c80000, 0x80040500, 0x05fe07fe, + 0x497b9005, 0x4a039035, 0x00880400, 0x59a8000d, + 0x800000e0, 0x4803900e, 0x64939011, 0x4a03900f, + 0x0010ccb4, 0x4a039010, 0x0010ccb4, 0x65db9015, + 0x4a039003, 0x00001f07, 0x6503900d, 0x4a039000, + 0x00001600, 0x1c01f000, 0x59c80007, 0x8c000508, + 0x05020880, 0x59c80800, 0x8c040516, 0x05020003, + 0x90000506, 0x0c01f004, 0x4807c857, 0x9000050e, + 0x0c01f001, 0x00100fee, 0x00100fed, 0x001048a4, + 0x00100fed, 0x00100ff0, 0x00100fed, 0x00100ff0, + 0x00100ff0, 0x00100fed, 0x00100fed, 0x00100fed, + 0x00100fed, 0x00100ff0, 0x00100fed, 0x00100ff0, + 0x00100fed, 0x05f9f9f9, 0x4803c857, 0x1c01f000, + 0x59c8080c, 0x4807c857, 0x82040500, 0x00006000, + 0x05000003, 0x053df925, 0x0501f005, 0x82040500, + 0x007f0000, 0x05000004, 0x053df8f2, 0x0521fc80, + 0x0501f02c, 0x90040514, 0x0500000d, 0x053df94a, + 0x916c0583, 0x05000008, 0x0519f912, 0x05000003, + 0x0511fd9a, 0x0501f004, 0x64075014, 0x6006d800, + 0x0519f88a, 0x0501f820, 0x0501f01e, 0x82040500, + 0x00001c00, 0x05000004, 0x053df91a, 0x0501f81a, + 0x0501f018, 0x82040500, 0x00000140, 0x05000004, + 0x053df927, 0x0501f814, 0x0501f012, 0x82040500, + 0x00008000, 0x0500000f, 0x0519f8fa, 0x0500000b, + 0x59c400a4, 0x9000050f, 0x9000058b, 0x05020007, + 0x4c040000, 0x0511fd94, 0x60780000, 0x80000040, + 0x05fe07ff, 0x5c000800, 0x053df8ed, 0x0501f802, + 0x1c01f000, 0x4c0c0000, 0x4c100000, 0x4c140000, + 0x05fdfb19, 0x5c002800, 0x5c002000, 0x5c001800, + 0x1c01f000, 0x4803c856, 0x59a80804, 0x59a80020, + 0x82000500, 0xfffff000, 0x80040540, 0x48035020, + 0x59a80024, 0x82000500, 0xfffff000, 0x80040540, + 0x48035024, 0x48078882, 0x82040480, 0x00000204, + 0x05021004, 0x42001000, 0x00240f04, 0x0501f00f, + 0x82040480, 0x00000404, 0x05021004, 0x42001000, + 0x00440800, 0x0501f009, 0x82040480, 0x00000804, + 0x05021004, 0x42001000, 0x00840410, 0x0501f003, + 0x42001000, 0x00880400, 0x480b9035, 0x0501f331, + 0x59c80815, 0x05f9f987, 0x40680800, 0xb0040d3c, + 0x48079000, 0x59c80000, 0x80040500, 0x05fe07fe, + 0x8c040504, 0x0500001b, 0x59c80035, 0x48039035, + 0x59a80083, 0x80000540, 0x05000016, 0x4c300000, + 0x600060de, 0x58300801, 0x82040d00, 0xffc00000, + 0x8004090c, 0x58300000, 0x90000541, 0x48006000, + 0x58300000, 0x8c000500, 0x05fe07fe, 0x82000500, + 0xfc00ffff, 0x80040540, 0x84000574, 0x48006000, 0x58300000, 0x8c000534, 0x05fe07fe, 0x5c006000, - 0x1c01f000, 0x0501f805, 0x60058800, 0x05000002, - 0x60018800, 0x1c01f000, 0x4c000000, 0x59a80037, - 0x4803c857, 0x90000580, 0x5c000000, 0x1c01f000, - 0x0501f805, 0x60058800, 0x05000002, 0x60018800, - 0x1c01f000, 0x4c000000, 0x59a80037, 0x4803c857, - 0x90000581, 0x5c000000, 0x1c01f000, 0x0501f805, + 0x59c80000, 0x82000540, 0x00001200, 0x48039000, + 0x1c01f000, 0x42006000, 0x7ff4c000, 0x58300003, + 0x8c000502, 0x0502000a, 0x600060de, 0x64686000, + 0x58300000, 0x8c000504, 0x05fe07fe, 0x641c6002, + 0x59a80083, 0x84000540, 0x48035083, 0x1c01f000, + 0x600060de, 0x58300801, 0x9004050c, 0x05fa0957, + 0x60f00800, 0x05fdf7c6, 0x4853c857, 0x497b8801, + 0x850e1d1a, 0x5050b000, 0x485bc857, 0x8058b1c0, + 0x0500089d, 0x82580480, 0x00000804, 0x0502189a, + 0x60040000, 0x61000801, 0x0501fd76, 0x40582000, + 0x8050a000, 0x50500000, 0x80102400, 0x9058b483, + 0x8050a000, 0x485bc857, 0x4853c857, 0x50501000, + 0x80082404, 0x60101800, 0x82080500, 0x000000ff, + 0x61000821, 0x0501fd67, 0x80081110, 0x800c1840, + 0x05fe07fa, 0x8050a000, 0x8058b040, 0x05fe07f4, + 0x4803c856, 0x41780000, 0x61000801, 0x0501fd5d, + 0x50501000, 0x80082404, 0x0502087b, 0x4803c856, + 0x1c01f000, 0x4a035044, 0xaabbccdd, 0x600c0000, + 0x0501fcb0, 0x600c0000, 0x0501fcd8, 0x60300868, + 0x0501fd48, 0x90040541, 0x60300868, 0x0501fd4d, + 0x60480888, 0x0501fd43, 0x90040548, 0x60480888, + 0x0501fd48, 0x60180818, 0x0501fd3e, 0x82040540, + 0x00000080, 0x60180818, 0x0501fd42, 0x60480828, + 0x0501fd38, 0x90040541, 0x60480828, 0x0501fd3d, + 0x59a8004b, 0x8c00050e, 0x05000006, 0x4803c857, + 0x82000500, 0x0000ff00, 0x80000110, 0x0501f002, + 0x60e00001, 0x60300800, 0x0501fd32, 0x60380940, + 0x0501fd28, 0x82040500, 0xffffff0f, 0x0501fecb, + 0x05020003, 0x90000540, 0x0501f002, 0x90000550, + 0x60380940, 0x0501fd27, 0x60380938, 0x0501fd1d, + 0x90040550, 0x60380938, 0x0501fd22, 0x60800000, + 0x61000859, 0x0501fd1f, 0x61000000, 0x61000851, + 0x0501fd1c, 0x60300000, 0x61800861, 0x0501fd19, + 0x60840000, 0x61800821, 0x0501fd16, 0x59c40001, + 0x84000574, 0x48038801, 0x850e1d5a, 0x61602004, + 0x6029d000, 0x0501f83c, 0x4813c857, 0x61000849, + 0x0501fd04, 0x4807c857, 0x82041500, 0x000000c0, + 0x82081580, 0x000000c0, 0x05000004, 0x80102040, + 0x05000825, 0x05fdf7f3, 0x4803c856, 0x60c82000, + 0x6029d000, 0x0501f82c, 0x60380878, 0x0501fcf5, + 0x90040d01, 0x05020004, 0x80102040, 0x0500081a, + 0x05fdf7f8, 0x4803c856, 0x61702001, 0x6029d000, + 0x051dfe2f, 0x60380818, 0x0501fcea, 0x90040d10, + 0x05020004, 0x80102040, 0x05f808c0, 0x05fdf7f8, + 0x4803c856, 0x60a02000, 0x6029d000, 0x051dfe24, + 0x603808b8, 0x0501fcdf, 0x90040d04, 0x05000004, + 0x80102040, 0x05f808b5, 0x05fdf7f8, 0x4803c856, + 0x1c01f000, 0x4803c856, 0x4a03c020, 0x00004010, + 0x4a03c011, 0x40100011, 0x05006000, 0x4203e000, + 0x40000000, 0x4203e000, 0x30000001, 0x4803c856, + 0x0501f000, 0x61201801, 0x800c1840, 0x05fe07ff, + 0x80e9d040, 0x05fe07fc, 0x1c01f000, 0x4803c856, + 0x497b88a9, 0x64078807, 0x497b8807, 0x59c40005, + 0x48038805, 0x0501fdae, 0x0501fdf1, 0x0501f9e3, + 0x4a0388a7, 0x0000f7f7, 0x4a0388a3, 0x8000403c, + 0x4a0388ae, 0x000061a8, 0x59c40001, 0x82000540, + 0x184fa063, 0x48038801, 0x4a038810, 0x00410108, + 0x4a038811, 0x00520608, 0x4a038812, 0x00450320, + 0x4a038813, 0x00440405, 0x4a03881c, 0x004132e1, + 0x4a038850, 0x80000108, 0x64238860, 0x64238870, + 0x4a038851, 0x80000508, 0x4a038861, 0x00800000, + 0x4a038871, 0x00800000, 0x4a038852, 0x80000708, + 0x4a038862, 0x00800000, 0x4a038872, 0x00800000, + 0x4a038853, 0x80000608, 0x497b8863, 0x4a038873, + 0x00800000, 0x4a038882, 0x00000840, 0x4a0388a5, + 0x000000fe, 0x647b88a6, 0x4a0388b0, 0x00007530, + 0x4a038802, 0x0000ffff, 0x4a038806, 0xc0e80b00, + 0x1c01f000, 0x850e1d4e, 0x1c01f000, 0x59c40805, + 0x59c40006, 0x80040d00, 0x05f8085c, 0x82040500, + 0x00e80b00, 0x05020004, 0x8c04053e, 0x050208c4, + 0x0501f005, 0x82040500, 0x00880b00, 0x05fa0849, + 0x05f9f852, 0x4c5c0000, 0x4c600000, 0x59c4b805, + 0x59c410a3, 0x84081518, 0x825c0500, 0x04000000, + 0x05020d2d, 0x59c40006, 0x8c000500, 0x05000003, + 0x8c5c0500, 0x0502007f, 0x485fc857, 0x0515ff71, + 0x0500001a, 0x59c40005, 0x82000500, 0x000000c0, + 0x05000042, 0x0515ff8c, 0x05020040, 0x59c40006, + 0x82000500, 0x000000f0, 0x05020004, 0x4a038805, + 0x000000c0, 0x0501f039, 0x59a80015, 0x84000506, + 0x48035015, 0x42006000, 0xff203fff, 0x42006800, + 0x40000000, 0x0511fd1f, 0x60400800, 0x42001000, + 0x00103666, 0x051dfd89, 0x8c5c0534, 0x0502002b, + 0x4a035013, 0x0000aaaa, 0x59c40005, 0x8c00050c, + 0x0502000f, 0x8c00050e, 0x05020015, 0x8c00050a, + 0x0502001b, 0x8c000508, 0x05000008, 0x59a80011, + 0x90000589, 0x05020005, 0x42000000, 0x001097cd, + 0x0539ff8f, 0x0519f8fb, 0x0501f04c, 0x42000000, + 0x001097db, 0x0539ff8a, 0x41781800, 0x60042000, + 0x0501fce5, 0x64035014, 0x0501f00e, 0x42000000, + 0x001097dc, 0x0539ff82, 0x41781800, 0x60082000, + 0x0501fcdd, 0x640b5014, 0x0501f006, 0x42000000, + 0x001097cf, 0x0539ff7a, 0x0519f88c, 0x0501f037, + 0x0519f938, 0x0501f035, 0x8c5c0534, 0x05000031, + 0x59c40005, 0x8c00053a, 0x05020004, 0x42000000, + 0x001097c3, 0x0539ff6e, 0x4a038805, 0x20000000, + 0x0515ff20, 0x0502000e, 0x4a038805, 0x04000000, + 0x59c418a8, 0x60002000, 0x0501fcc3, 0x0515ff2f, + 0x05020005, 0x64075014, 0x6006d800, 0x0515fe93, + 0x0501f050, 0x41780000, 0x0515fee6, 0x0501fcb3, + 0x4000c000, 0x0501fc2e, 0x916c1584, 0x0502000b, + 0x8c5c0500, 0x05020013, 0x8d0c0506, 0x05020004, + 0x59c410a3, 0x90081548, 0x480b88a3, 0x59c41006, + 0x84081540, 0x480b8806, 0x4a038805, 0x04000000, + 0x6006d800, 0x497b5010, 0x8d0c0518, 0x05020004, + 0x4803c856, 0x850e1d06, 0x0511fba0, 0x050dfe85, + 0x8c5c053c, 0x0502084f, 0x8c5c0500, 0x0500002e, + 0x42000000, 0x001098e0, 0x0539ff3d, 0x64078805, + 0x6148b006, 0x6191d000, 0x4c580000, 0x051dfd28, + 0x0501fba5, 0x5c00b000, 0x05000004, 0x8058b040, + 0x05fe07f9, 0x0501f003, 0x64078805, 0x0501f01e, + 0x59c40006, 0x84000500, 0x48038806, 0x0521fa6e, + 0x497b8880, 0x0501fd7d, 0x05000007, 0x59e00013, + 0x8c000516, 0x05000004, 0x60142000, 0x0519f916, + 0x0501f003, 0x60182000, 0x0519f913, 0x59c400a3, + 0x82000500, 0xfcf8ffff, 0x480388a3, 0x640b5071, + 0x6012d800, 0x64078805, 0x05f9f9bb, 0x0501fb1f, + 0x497b5036, 0x64075043, 0x497b506c, 0x0201f800, + 0x0010c534, 0x825cbd00, 0xbbfffffe, 0x485f8805, + 0x5c00c000, 0x5c00b800, 0x1c01f000, 0x4d180000, + 0x59c41004, 0x480bc857, 0x8c080500, 0x05000006, + 0x4803c856, 0x4a01a8e5, 0x00000800, 0x0521faf3, + 0x0501f007, 0x82080500, 0x000001f0, 0x05000004, + 0x4803c856, 0x0521fc0d, 0x05220b0b, 0x4a038805, + 0x80000000, 0x5c023000, 0x1c01f000, 0x59c408a3, + 0x4807c857, 0x84040d40, 0x480788a3, 0x1c01f000, + 0x4d900000, 0x4dd00000, 0x4da40000, 0x4d140000, + 0x4cd80000, 0x4a038805, 0x40000000, 0x42000000, + 0x001097d5, 0x0539feea, 0x051dff49, 0x59c41004, + 0x8c080500, 0x05000040, 0x598e600b, 0x4a01a8e5, + 0x00000800, 0x813261c0, 0x05000024, 0x59300403, + 0x900005b2, 0x05020021, 0x5930001e, 0x48038833, + 0x4a038807, 0x00018000, 0x6009d000, 0x051dfcc8, + 0x497b8807, 0x6009d000, 0x051dfcc5, 0x0521f959, + 0x60c1d0ea, 0x051dfcc2, 0x59c408a4, 0x90040d0f, + 0x90040d80, 0x05000004, 0x42000000, 0x00200000, + 0x0501fb85, 0x051dfe94, 0x59300009, 0x80000540, + 0x05f40f4e, 0x40025800, 0x4a025a05, 0x00000103, + 0x5931d823, 0x58ef400a, 0x58ec0008, 0x0801f800, + 0x0005f8e7, 0x0501f032, 0x598c000d, 0x82001c80, + 0x000000c8, 0x0502100c, 0x80000000, 0x4803180d, + 0x59c400a4, 0x9000050f, 0x90000582, 0x05020004, + 0x42000000, 0x00200000, 0x0501fb6b, 0x051dfc43, + 0x0501f023, 0x4933c857, 0x0521f932, 0x813261c0, + 0x0500001f, 0x64066203, 0x609e7000, 0x0005f905, + 0x0501f01b, 0x0521fbb5, 0x05000019, 0x0521fbdc, + 0x051dfc5f, 0x59926005, 0x813261c0, 0x0500000d, + 0x61201801, 0x0521fba4, 0x0502000a, 0x59c400a4, + 0x9000050f, 0x90000582, 0x05020004, 0x42000000, + 0x00200000, 0x0501fb50, 0x051dfc2e, 0x0501f008, + 0x4933c857, 0x0521f8c0, 0x813261c0, 0x05000004, + 0x613e7000, 0x640e6203, 0x0005f905, 0x5c01b000, + 0x5c022800, 0x5c034800, 0x5c03a000, 0x5c032000, + 0x051df6d3, 0x40680000, 0x810c0d80, 0x8c04050e, + 0x0500004e, 0x4803c857, 0x8d0c050e, 0x0500001f, + 0x850e1d0e, 0x497b5071, 0x42000000, 0x001097bc, + 0x0539fe7b, 0x0539ff27, 0x60441100, 0x59c40001, + 0x82000500, 0x00018000, 0x90001d80, 0x0500000b, + 0x82001d80, 0x00008000, 0x0500000a, 0x82001d80, + 0x00010000, 0x05000009, 0x82001d80, 0x00018000, + 0x05000008, 0x05f5fef1, 0x60001800, 0x0501f006, + 0x60041800, 0x0501f004, 0x600c1800, 0x0501f002, + 0x60101800, 0x050df2bf, 0x850e1d4e, 0x59a80871, + 0x800409c0, 0x05020006, 0x59c4000d, 0x8c000520, + 0x05000003, 0x600c1800, 0x0501f002, 0x40041800, + 0x0539feec, 0x4c0c0000, 0x41782000, 0x0501fca7, + 0x0500000f, 0x0501fc89, 0x60042000, 0x0502000c, + 0x0501fc94, 0x05020006, 0x60082000, 0x0501f8b6, + 0x05020007, 0x60102000, 0x0501f005, 0x600c2000, + 0x0501f890, 0x05020002, 0x60142000, 0x5c001800, + 0x60481100, 0x050dfa9f, 0x05f9f8e3, 0x0539ff4f, + 0x0502000a, 0x0501f845, 0x4d400000, 0x4d3c0000, + 0x60a28000, 0x60227800, 0x0201f800, 0x0010b5e0, + 0x5c027800, 0x5c028000, 0x1c01f000, 0x4803c857, + 0x82000400, 0x00101a23, 0x50000800, 0x82040d00, + 0x000000ff, 0x1c01f000, 0x4803c856, 0x4c580000, + 0x6040b000, 0x497b88ac, 0x497b88ad, 0x8058b040, + 0x05fe07fe, 0x5c00b000, 0x1c01f000, 0x40680800, + 0x4807c857, 0x4807500f, 0x80041108, 0x6040b000, + 0x497b88ac, 0x80000580, 0x800811c0, 0x05020005, + 0x9004050f, 0x82000400, 0x00108a8d, 0x50000000, + 0x480388ad, 0x80081040, 0x8058b040, 0x05fe07f6, + 0x1c01f000, 0x4803c857, 0x4c080000, 0x4c040000, + 0x4c000000, 0x59c40892, 0x4807c857, 0x80041580, + 0x0500000e, 0x80041480, 0x05021006, 0x80081080, + 0x80081000, 0x4008b000, 0x60040004, 0x0501f003, + 0x4008b000, 0x60400004, 0x48038886, 0x8058b040, + 0x05fe07fe, 0x497b8886, 0x5c000000, 0x5c000800, + 0x5c001000, 0x1c01f000, 0x4803c856, 0x8d0c0520, + 0x05000003, 0x60ba8000, 0x0539f033, 0x1c01f000, + 0x0501f803, 0x40058800, 0x1c01f000, 0x59a80083, + 0x80000540, 0x05000008, 0x0515fda2, 0x60280800, + 0x0502000e, 0x600008de, 0x58040001, 0x8000092c, + 0x0501f00a, 0x59c80835, 0x82040d00, 0x00001f00, + 0x80040910, 0x80040800, 0x59a80083, 0x80000540, + 0x05000002, 0x61680804, 0x4807c857, 0x1c01f000, + 0x59a80083, 0x80000540, 0x0500001c, 0x599c1a01, + 0x60a80801, 0x820c0480, 0x00000204, 0x0500100a, + 0x61680800, 0x820c0480, 0x00000404, 0x05001006, + 0x60b80800, 0x820c0480, 0x00000804, 0x05001002, + 0x60b40800, 0x4c300000, 0x600060de, 0x58301000, + 0x82081500, 0xfc00ffff, 0x800400e0, 0x80080540, + 0x84000574, 0x48006000, 0x58300000, 0x8c000534, + 0x05fe07fe, 0x5c006000, 0x1c01f000, 0x0501f805, 0x60058800, 0x05000002, 0x60018800, 0x1c01f000, - 0x4c000000, 0x59a80037, 0x4803c857, 0x90000583, + 0x4c000000, 0x59a80037, 0x4803c857, 0x90000580, 0x5c000000, 0x1c01f000, 0x0501f805, 0x60058800, 0x05000002, 0x60018800, 0x1c01f000, 0x4c000000, - 0x59a80037, 0x4803c857, 0x90000584, 0x5c000000, + 0x59a80037, 0x4803c857, 0x90000581, 0x5c000000, 0x1c01f000, 0x0501f805, 0x60058800, 0x05000002, 0x60018800, 0x1c01f000, 0x4c000000, 0x59a80037, - 0x90000582, 0x5c000000, 0x1c01f000, 0x4c000000, - 0x4c040000, 0x4c080000, 0x4c380000, 0x59a8003a, - 0x90000c87, 0x05f61e05, 0x0c01f806, 0x5c007000, - 0x5c001000, 0x5c000800, 0x5c000000, 0x1c01f000, - 0x001013ef, 0x001013fc, 0x00101409, 0x0010140a, - 0x00101428, 0x00101429, 0x0010142a, 0x4803c856, - 0x6403503c, 0x600c0000, 0x0501f9aa, 0x600c0000, - 0x0501f97e, 0x0501fa06, 0x4803c856, 0x641b503a, - 0x60740800, 0x42001000, 0x0010142b, 0x051df2a5, - 0x497b503f, 0x64db5034, 0x64ab5033, 0x4803c856, - 0x6407503c, 0x600c0000, 0x0501f970, 0x4803c856, - 0x641b503a, 0x60740800, 0x42001000, 0x0010142b, - 0x051df298, 0x05f5fddd, 0x64db5034, 0x4803c856, - 0x640f503c, 0x60000800, 0x0501fa00, 0x90040d1c, - 0x9004059c, 0x05000008, 0x90040598, 0x05000008, - 0x90040594, 0x05000008, 0x90040590, 0x05000008, - 0x05f5fdce, 0x60040000, 0x0501f006, 0x60000000, - 0x0501f004, 0x60080000, 0x0501f002, 0x600c0000, - 0x0501f952, 0x497b5040, 0x4803c856, 0x641b503a, - 0x60740800, 0x42001000, 0x0010142b, 0x051df279, - 0x05f5fdbe, 0x05f5fdbd, 0x1c01f000, 0x4c000000, - 0x4c040000, 0x4c080000, 0x4c380000, 0x59a8003c, - 0x90000c87, 0x05f61db5, 0x0c01f806, 0x5c007000, - 0x5c001000, 0x5c000800, 0x5c000000, 0x1c01f000, - 0x0010143f, 0x0010145b, 0x001014ac, 0x001014c1, - 0x001014d5, 0x001014de, 0x001014df, 0x0501f990, - 0x05020018, 0x59a81042, 0x60000800, 0x0501f9cb, - 0x90040d1c, 0x9004059c, 0x05000008, 0x90040598, - 0x05000008, 0x90040594, 0x05000008, 0x90040590, - 0x05000008, 0x05f5fd99, 0x84081540, 0x0501f006, - 0x84081542, 0x0501f004, 0x84081544, 0x0501f002, - 0x84081546, 0x480b5042, 0x6407503a, 0x0501f003, - 0x0501f8be, 0x05fdff9d, 0x1c01f000, 0x0501f885, - 0x0500004f, 0x0501f972, 0x05020029, 0x60000800, - 0x0501f9ae, 0x59c41001, 0x82081500, 0x00018000, - 0x90040d1c, 0x90040590, 0x05000042, 0x90040594, - 0x05000006, 0x90040598, 0x0500000a, 0x9004059c, - 0x0500000a, 0x05f5fd79, 0x90080580, 0x05000039, - 0x82080580, 0x00008000, 0x05000036, 0x0501f003, - 0x90080580, 0x05000033, 0x60000800, 0x0501f997, - 0x59a80042, 0x90040d1c, 0x90041594, 0x05000006, - 0x90041598, 0x05000006, 0x9004159c, 0x05000006, - 0x05f60d66, 0x84000544, 0x0501f004, 0x84000542, - 0x0501f002, 0x84000540, 0x48035042, 0x59a8003f, - 0x80000000, 0x4803503f, 0x90000585, 0x05000003, - 0x0501f859, 0x0501f01d, 0x497b503f, 0x59c40801, - 0x82040d00, 0x00018000, 0x90040580, 0x0500000b, - 0x82040580, 0x00008000, 0x0500000a, 0x82040580, - 0x00010000, 0x05000009, 0x82040580, 0x00018000, - 0x05000008, 0x05f5fd49, 0x60040000, 0x0501f006, - 0x60000000, 0x0501f004, 0x60080000, 0x0501f002, - 0x600c0000, 0x0501f8f7, 0x640b503c, 0x0501f003, - 0x640f503a, 0x0501f002, 0x05fdff59, 0x1c01f000, - 0x0501f834, 0x05000013, 0x59a80033, 0x80000040, - 0x48035033, 0x0501f91e, 0x05020004, 0x640f503a, - 0x497b503b, 0x0501f00b, 0x59a80033, 0x80000540, - 0x05020003, 0x0501f891, 0x0501f002, 0x0501f841, - 0x0501f829, 0x497b503f, 0x6407503c, 0x05fdff44, - 0x1c01f000, 0x0501f81f, 0x05000012, 0x0501f90c, - 0x0502000d, 0x59a80040, 0x80000000, 0x48035040, - 0x90000587, 0x0502000a, 0x642b5036, 0x497b5043, - 0x59a80042, 0x8400055e, 0x48035042, 0x4803c857, - 0x0501f004, 0x0501f814, 0x6413503c, 0x05fdff4f, - 0x1c01f000, 0x0501f80b, 0x05000007, 0x0501f8f8, - 0x05020003, 0x05fdff32, 0x0501f003, 0x0501f80a, - 0x05fdff46, 0x1c01f000, 0x05f5fd08, 0x05f5fd07, - 0x59a80034, 0x80000040, 0x48035034, 0x05000885, - 0x1c01f000, 0x4c040000, 0x60000800, 0x0501f927, - 0x90040d1c, 0x9004059c, 0x05000008, 0x90040598, - 0x0500000a, 0x90040594, 0x0500000a, 0x90040590, - 0x05000004, 0x05f5fcf5, 0x600c0000, 0x0501f006, - 0x60080000, 0x0501f004, 0x60040000, 0x0501f002, - 0x60000000, 0x0501f8a3, 0x5c000800, 0x1c01f000, - 0x4c040000, 0x59c40801, 0x82040d00, 0x00018000, - 0x90040580, 0x0500000b, 0x82040580, 0x00008000, - 0x0500000c, 0x82040580, 0x00010000, 0x0500000b, - 0x82040580, 0x00018000, 0x05000004, 0x05f5fcdb, - 0x600c0000, 0x0501f006, 0x60080000, 0x0501f004, - 0x60040000, 0x0501f002, 0x60000000, 0x0501f85f, - 0x5c000800, 0x1c01f000, 0x4c040000, 0x59a8003f, - 0x80000000, 0x4803503f, 0x90000585, 0x05020019, + 0x4803c857, 0x90000583, 0x5c000000, 0x1c01f000, + 0x0501f805, 0x60058800, 0x05000002, 0x60018800, + 0x1c01f000, 0x4c000000, 0x59a80037, 0x4803c857, + 0x90000584, 0x5c000000, 0x1c01f000, 0x0501f805, + 0x60058800, 0x05000002, 0x60018800, 0x1c01f000, + 0x4c000000, 0x59a80037, 0x90000582, 0x5c000000, + 0x1c01f000, 0x4c000000, 0x4c040000, 0x4c080000, + 0x4c380000, 0x59a8003a, 0x90000c87, 0x05f61e07, + 0x0c01f806, 0x5c007000, 0x5c001000, 0x5c000800, + 0x5c000000, 0x1c01f000, 0x001013ed, 0x001013fa, + 0x00101407, 0x00101408, 0x00101426, 0x00101427, + 0x00101428, 0x4803c856, 0x6403503c, 0x600c0000, + 0x0501f9aa, 0x600c0000, 0x0501f97e, 0x0501fa06, + 0x4803c856, 0x641b503a, 0x60740800, 0x42001000, + 0x00101429, 0x051df333, 0x497b503f, 0x64db5034, + 0x64ab5033, 0x4803c856, 0x6407503c, 0x600c0000, + 0x0501f970, 0x4803c856, 0x641b503a, 0x60740800, + 0x42001000, 0x00101429, 0x051df326, 0x05f5fddf, + 0x64db5034, 0x4803c856, 0x640f503c, 0x60000800, + 0x0501fa00, 0x90040d1c, 0x9004059c, 0x05000008, + 0x90040598, 0x05000008, 0x90040594, 0x05000008, + 0x90040590, 0x05000008, 0x05f5fdd0, 0x60040000, + 0x0501f006, 0x60000000, 0x0501f004, 0x60080000, + 0x0501f002, 0x600c0000, 0x0501f952, 0x497b5040, + 0x4803c856, 0x641b503a, 0x60740800, 0x42001000, + 0x00101429, 0x051df307, 0x05f5fdc0, 0x05f5fdbf, + 0x1c01f000, 0x4c000000, 0x4c040000, 0x4c080000, + 0x4c380000, 0x59a8003c, 0x90000c87, 0x05f61db7, + 0x0c01f806, 0x5c007000, 0x5c001000, 0x5c000800, + 0x5c000000, 0x1c01f000, 0x0010143d, 0x00101459, + 0x001014aa, 0x001014bf, 0x001014d3, 0x001014dc, + 0x001014dd, 0x0501f990, 0x05020018, 0x59a81042, + 0x60000800, 0x0501f9cb, 0x90040d1c, 0x9004059c, + 0x05000008, 0x90040598, 0x05000008, 0x90040594, + 0x05000008, 0x90040590, 0x05000008, 0x05f5fd9b, + 0x84081540, 0x0501f006, 0x84081542, 0x0501f004, + 0x84081544, 0x0501f002, 0x84081546, 0x480b5042, + 0x6407503a, 0x0501f003, 0x0501f8be, 0x05fdff9d, + 0x1c01f000, 0x0501f885, 0x0500004f, 0x0501f972, + 0x05020029, 0x60000800, 0x0501f9ae, 0x59c41001, + 0x82081500, 0x00018000, 0x90040d1c, 0x90040590, + 0x05000042, 0x90040594, 0x05000006, 0x90040598, + 0x0500000a, 0x9004059c, 0x0500000a, 0x05f5fd7b, + 0x90080580, 0x05000039, 0x82080580, 0x00008000, + 0x05000036, 0x0501f003, 0x90080580, 0x05000033, + 0x60000800, 0x0501f997, 0x59a80042, 0x90040d1c, + 0x90041594, 0x05000006, 0x90041598, 0x05000006, + 0x9004159c, 0x05000006, 0x05f60d68, 0x84000544, + 0x0501f004, 0x84000542, 0x0501f002, 0x84000540, + 0x48035042, 0x59a8003f, 0x80000000, 0x4803503f, + 0x90000585, 0x05000003, 0x0501f859, 0x0501f01d, 0x497b503f, 0x59c40801, 0x82040d00, 0x00018000, 0x90040580, 0x0500000b, 0x82040580, 0x00008000, - 0x0500000c, 0x82040580, 0x00010000, 0x0500000b, - 0x82040580, 0x00018000, 0x05000004, 0x05f5fcbb, - 0x600c0000, 0x0501f006, 0x60080000, 0x0501f004, - 0x60040000, 0x0501f002, 0x60000000, 0x0501f83f, - 0x60000800, 0x0501f8d9, 0x90040d1c, 0x9004059c, + 0x0500000a, 0x82040580, 0x00010000, 0x05000009, + 0x82040580, 0x00018000, 0x05000008, 0x05f5fd4b, + 0x60040000, 0x0501f006, 0x60000000, 0x0501f004, + 0x60080000, 0x0501f002, 0x600c0000, 0x0501f8f7, + 0x640b503c, 0x0501f003, 0x640f503a, 0x0501f002, + 0x05fdff59, 0x1c01f000, 0x0501f834, 0x05000013, + 0x59a80033, 0x80000040, 0x48035033, 0x0501f91e, + 0x05020004, 0x640f503a, 0x497b503b, 0x0501f00b, + 0x59a80033, 0x80000540, 0x05020003, 0x0501f891, + 0x0501f002, 0x0501f841, 0x0501f829, 0x497b503f, + 0x6407503c, 0x05fdff44, 0x1c01f000, 0x0501f81f, + 0x05000012, 0x0501f90c, 0x0502000d, 0x59a80040, + 0x80000000, 0x48035040, 0x90000587, 0x0502000a, + 0x642b5036, 0x497b5043, 0x59a80042, 0x8400055e, + 0x48035042, 0x4803c857, 0x0501f004, 0x0501f814, + 0x6413503c, 0x05fdff4f, 0x1c01f000, 0x0501f80b, + 0x05000007, 0x0501f8f8, 0x05020003, 0x05fdff32, + 0x0501f003, 0x0501f80a, 0x05fdff46, 0x1c01f000, + 0x05f5fd0a, 0x05f5fd09, 0x59a80034, 0x80000040, + 0x48035034, 0x05000885, 0x1c01f000, 0x4c040000, + 0x60000800, 0x0501f927, 0x90040d1c, 0x9004059c, 0x05000008, 0x90040598, 0x0500000a, 0x90040594, - 0x0500000a, 0x90040590, 0x05000004, 0x05f5fca7, + 0x0500000a, 0x90040590, 0x05000004, 0x05f5fcf7, 0x600c0000, 0x0501f006, 0x60080000, 0x0501f004, - 0x60040000, 0x0501f002, 0x60000000, 0x0501f855, - 0x5c000800, 0x1c01f000, 0x4c200000, 0x59a80042, - 0x82000500, 0x00007fff, 0x05f40c98, 0x59a84041, - 0x80204102, 0x05f41c95, 0x48235041, 0x80204500, - 0x05fc07fb, 0x8c000506, 0x05020008, 0x8c000504, - 0x05020008, 0x8c000502, 0x05020008, 0x8c000500, - 0x05020008, 0x05f5fc89, 0x600c0000, 0x0501f006, - 0x60080000, 0x0501f004, 0x60000000, 0x0501f002, - 0x60040000, 0x0501f80d, 0x5c004000, 0x1c01f000, - 0x05011000, 0x4a03c840, 0x001093ba, 0x6427c842, - 0x40000000, 0x05fd17ff, 0x64235041, 0x64035038, - 0x1c01f000, 0x40680000, 0x4c000000, 0x0501f932, - 0x5c000000, 0x0501fa4d, 0x60080800, 0x0501f897, - 0x82041500, 0xffffffe3, 0x59c41801, 0x820c1d00, - 0xfffe7fff, 0x800001c0, 0x05000007, 0x90000d81, - 0x0502000a, 0x9008055c, 0x900c1d40, 0x840c1d32, - 0x0501f012, 0x90080558, 0x820c1d40, 0x00008000, - 0x840c1d32, 0x0501f00d, 0x90000d82, 0x05020006, - 0x90080554, 0x820c1d40, 0x00010000, 0x840c1d32, - 0x0501f006, 0x90000d83, 0x05f60c54, 0x90080550, - 0x820c1d40, 0x02018000, 0x60080800, 0x0501f87f, - 0x480f8801, 0x0501f111, 0x1c01f000, 0x40680000, - 0x4c000000, 0x0501f903, 0x5c000000, 0x0501fa23, - 0x60000800, 0x0501f86d, 0x82041500, 0xffffffe3, - 0x59c41801, 0x800001c0, 0x05000006, 0x90000d81, - 0x05020007, 0x9008055c, 0x840c1d30, 0x0501f00d, - 0x90080558, 0x840c1d30, 0x0501f00a, 0x90000d82, - 0x05020004, 0x90080554, 0x840c1d30, 0x0501f005, - 0x90000d83, 0x05f60c31, 0x90080550, 0x840c1d70, - 0x480f8801, 0x60000800, 0x0501f85c, 0x0501f9f9, - 0x0500000d, 0x4a03c014, 0x00200020, 0x60000800, - 0x0501f84e, 0x90040d1c, 0x90040590, 0x05020004, - 0x4a03c013, 0x00200020, 0x0501f003, 0x4a03c013, - 0x00200000, 0x0501f0e8, 0x0501f805, 0x60058800, - 0x05000002, 0x60018800, 0x1c01f000, 0x4c580000, - 0x6050b000, 0x8058b040, 0x05000026, 0x59c4000d, - 0x8c000520, 0x05fe07fc, 0x0501f831, 0x59c4000d, - 0x8c000520, 0x05fe07f8, 0x59c40808, 0x82040d40, - 0x00000300, 0x48078808, 0x6120b001, 0x8058b040, - 0x05fe07ff, 0x6050b000, 0x8058b040, 0x05000015, - 0x59c4000d, 0x8c000520, 0x05020012, 0x0501f820, - 0x59c4000d, 0x8c000520, 0x0502000e, 0x6028b000, - 0x8058b040, 0x05000003, 0x0501f819, 0x05fdf7fd, - 0x6190b000, 0x59c4000d, 0x8c00051e, 0x05000005, - 0x8058b040, 0x05fe07fc, 0x80000580, 0x0501f002, - 0x90000541, 0x5c00b000, 0x1c01f000, 0x60080800, - 0x0501f812, 0x82040500, 0xfffffffe, 0x60080800, - 0x0501f816, 0x60000800, 0x0501f80c, 0x82040500, - 0xfffffffe, 0x60000800, 0x0501f010, 0x40000000, - 0x40000000, 0x40000000, 0x40000000, 0x40000000, - 0x1c01f000, 0x40680800, 0x4807880e, 0x59c4080f, - 0x82040d00, 0x000000ff, 0x40058800, 0x1c01f000, - 0x40680800, 0x406c0000, 0x900001c0, 0x80040d40, - 0x84040d40, 0x4807880e, 0x1c01f000, 0x82000d80, - 0x00200000, 0x05000009, 0x82000d80, 0x02000000, - 0x05000006, 0x82000d80, 0x01000000, 0x05000006, - 0x59c408a3, 0x0501f006, 0x59c408a3, 0x84040d30, - 0x0501f003, 0x59c408a3, 0x84040d32, 0x80040540, - 0x480388a3, 0x480788a3, 0x1c01f000, 0x59c400a3, - 0x84000556, 0x480388a3, 0x84000516, 0x480388a3, - 0x1c01f000, 0x485fc857, 0x4863c857, 0x4c640000, - 0x4d3c0000, 0x4d400000, 0x051dfddb, 0x48635009, - 0x40601800, 0x60002000, 0x0501f881, 0x42000000, - 0x0010975a, 0x0539fa54, 0x82600500, 0x0000ff00, - 0x82000580, 0x0000f700, 0x05020004, 0x42000000, - 0x00109742, 0x0539fa4c, 0x0539fb5a, 0x05020050, - 0x82600d00, 0x0000ff00, 0x800409c0, 0x0500000b, - 0x6004c800, 0x59a8000f, 0x82000500, 0x000000ff, - 0x80041110, 0x80081580, 0x0500001b, 0x82041580, - 0x0000ff00, 0x0500000a, 0x59c410a3, 0x82081500, - 0x00008000, 0x05000008, 0x59c410a7, 0x82081500, - 0x0000ff00, 0x82081580, 0x0000ff00, 0x6000c800, - 0x0500000d, 0x8d0c0502, 0x05020007, 0x8d0c0500, - 0x05020009, 0x599c1017, 0x8c08051a, 0x0500002a, - 0x850e1d42, 0x6008c800, 0x60128000, 0x60227800, - 0x0501f004, 0x850e1d40, 0x60128000, 0x417a7800, - 0x59a80005, 0x8c000502, 0x05020004, 0x8d0c050a, - 0x05020023, 0x850e1d4a, 0x42000000, 0x00109741, - 0x0539fa19, 0x59a81809, 0x604c1100, 0x0509ff39, - 0x8d0c0520, 0x0500000f, 0x4d400000, 0x82600500, - 0x000000ff, 0x61fe89ff, 0x40643000, 0x603a8000, - 0x0535fc61, 0x60040800, 0x60001002, 0x051df8bf, - 0x5c028000, 0x599c0817, 0x8c04050a, 0x0502000c, - 0x493fc857, 0x4943c857, 0x0201f800, 0x0010b5d3, - 0x0501f007, 0x8d0c0520, 0x05000005, 0x603e8000, - 0x61fe89ff, 0x60003000, 0x0535fc52, 0x497b8880, - 0x5c028000, 0x5c027800, 0x5c00c800, 0x1c01f000, - 0x60000800, 0x05fdff6d, 0x90040542, 0x60000800, - 0x05fdf772, 0x60080800, 0x05fdff68, 0x90040542, - 0x60080800, 0x05fdf76d, 0x60080800, 0x05fdff63, - 0x82040500, 0xfffffffd, 0x90000550, 0x60080800, - 0x05fdf766, 0x60000800, 0x05fdff5c, 0x82040500, - 0xfffffffd, 0x90000550, 0x60000800, 0x05fdf75f, - 0x59c408a8, 0x05fdff4e, 0x05fdff4d, 0x59c400a8, - 0x80040d80, 0x05fe07fb, 0x1c01f000, 0x59a80005, - 0x8c000500, 0x05000008, 0x59a80008, 0x8c000500, - 0x05020005, 0x84000540, 0x48035008, 0x60581100, - 0x0509fef0, 0x1c01f000, 0x1c01f000, 0x59c40801, - 0x82040d00, 0x00018000, 0x82040d80, 0x00018000, - 0x05000002, 0x84081518, 0x480b88a3, 0x1c01f000, - 0x42000800, 0x7ff4818e, 0x59e00002, 0x8c00051e, - 0x05020003, 0x42000800, 0x7ff4808e, 0x58041800, - 0x480f504b, 0x8c0c0500, 0x05020007, 0x8c0c0502, - 0x05000005, 0x58044001, 0x58042002, 0x58041003, - 0x0501f007, 0x42004000, 0x0003c014, 0x42002000, - 0x0003c014, 0x42001000, 0x0002e014, 0x480b5045, - 0x48135046, 0x48235047, 0x8c0c0500, 0x05020007, - 0x8c0c0504, 0x05000005, 0x58044004, 0x58042005, - 0x58041006, 0x0501f004, 0x60c8400d, 0x60c8200d, - 0x60c8100d, 0x480b5048, 0x48135049, 0x4823504a, - 0x1c01f000, 0x59a81048, 0x59a82049, 0x59a8404a, - 0x60380840, 0x05fdff0d, 0x82040d00, 0xffffffc0, - 0x82200500, 0x003f0000, 0x80000120, 0x80040540, - 0x60380840, 0x05fdff0d, 0x60380848, 0x05fdff03, - 0x82040d00, 0xffffffc0, 0x82200500, 0x0000fc00, - 0x80000114, 0x80040540, 0x60380848, 0x05fdff03, - 0x82200500, 0x000003e0, 0x8000010a, 0x603808d8, - 0x05fdfefe, 0x9020051f, 0x603808f0, 0x05fdfefb, - 0x82100500, 0x003f0000, 0x80000120, 0x60380908, - 0x05fdfef6, 0x82100500, 0x0000fc00, 0x80000114, - 0x60380918, 0x05fdfef1, 0x82100500, 0x000003e0, - 0x8000010a, 0x603808e0, 0x05fdfeec, 0x9010051f, - 0x603808f8, 0x05fdfee9, 0x82080500, 0x003f0000, - 0x80000120, 0x60380910, 0x05fdfee4, 0x82080500, - 0x0000fc00, 0x80000114, 0x60380920, 0x05fdfedf, - 0x82080500, 0x000003e0, 0x8000010a, 0x603808e8, - 0x05fdfeda, 0x9008051f, 0x60380900, 0x05fdfed7, - 0x1c01f000, 0x59a81045, 0x59a82046, 0x59a84047, - 0x9020051f, 0x800000c2, 0x84000540, 0x60480800, - 0x05fdfece, 0x82200500, 0x000001e0, 0x80000908, - 0x84040d40, 0x82200500, 0x00000600, 0x80000106, - 0x8400054a, 0x80040540, 0x60480830, 0x05fdfec3, - 0x82200500, 0x00001800, 0x80000916, 0x82200500, - 0x0003e000, 0x80000114, 0x84000544, 0x80040540, - 0x60480848, 0x05fdfeb9, 0x9010051f, 0x800000c2, - 0x84000540, 0x60480808, 0x05fdfeb4, 0x82100500, - 0x000001e0, 0x80000908, 0x84040d40, 0x82100500, + 0x60040000, 0x0501f002, 0x60000000, 0x0501f8a3, + 0x5c000800, 0x1c01f000, 0x4c040000, 0x59c40801, + 0x82040d00, 0x00018000, 0x90040580, 0x0500000b, + 0x82040580, 0x00008000, 0x0500000c, 0x82040580, + 0x00010000, 0x0500000b, 0x82040580, 0x00018000, + 0x05000004, 0x05f5fcdd, 0x600c0000, 0x0501f006, + 0x60080000, 0x0501f004, 0x60040000, 0x0501f002, + 0x60000000, 0x0501f85f, 0x5c000800, 0x1c01f000, + 0x4c040000, 0x59a8003f, 0x80000000, 0x4803503f, + 0x90000585, 0x05020019, 0x497b503f, 0x59c40801, + 0x82040d00, 0x00018000, 0x90040580, 0x0500000b, + 0x82040580, 0x00008000, 0x0500000c, 0x82040580, + 0x00010000, 0x0500000b, 0x82040580, 0x00018000, + 0x05000004, 0x05f5fcbd, 0x600c0000, 0x0501f006, + 0x60080000, 0x0501f004, 0x60040000, 0x0501f002, + 0x60000000, 0x0501f83f, 0x60000800, 0x0501f8d9, + 0x90040d1c, 0x9004059c, 0x05000008, 0x90040598, + 0x0500000a, 0x90040594, 0x0500000a, 0x90040590, + 0x05000004, 0x05f5fca9, 0x600c0000, 0x0501f006, + 0x60080000, 0x0501f004, 0x60040000, 0x0501f002, + 0x60000000, 0x0501f855, 0x5c000800, 0x1c01f000, + 0x4c200000, 0x59a80042, 0x82000500, 0x00007fff, + 0x05f40c9a, 0x59a84041, 0x80204102, 0x05f41c97, + 0x48235041, 0x80204500, 0x05fc07fb, 0x8c000506, + 0x05020008, 0x8c000504, 0x05020008, 0x8c000502, + 0x05020008, 0x8c000500, 0x05020008, 0x05f5fc8b, + 0x600c0000, 0x0501f006, 0x60080000, 0x0501f004, + 0x60000000, 0x0501f002, 0x60040000, 0x0501f80d, + 0x5c004000, 0x1c01f000, 0x05011000, 0x4a03c840, + 0x0010943a, 0x6427c842, 0x40000000, 0x05fd17ff, + 0x64235041, 0x64035038, 0x1c01f000, 0x40680000, + 0x4c000000, 0x0501f932, 0x5c000000, 0x0501fa4d, + 0x60080800, 0x0501f897, 0x82041500, 0xffffffe3, + 0x59c41801, 0x820c1d00, 0xfffe7fff, 0x800001c0, + 0x05000007, 0x90000d81, 0x0502000a, 0x9008055c, + 0x900c1d40, 0x840c1d32, 0x0501f012, 0x90080558, + 0x820c1d40, 0x00008000, 0x840c1d32, 0x0501f00d, + 0x90000d82, 0x05020006, 0x90080554, 0x820c1d40, + 0x00010000, 0x840c1d32, 0x0501f006, 0x90000d83, + 0x05f60c56, 0x90080550, 0x820c1d40, 0x02018000, + 0x60080800, 0x0501f87f, 0x480f8801, 0x0501f111, + 0x1c01f000, 0x40680000, 0x4c000000, 0x0501f903, + 0x5c000000, 0x0501fa23, 0x60000800, 0x0501f86d, + 0x82041500, 0xffffffe3, 0x59c41801, 0x800001c0, + 0x05000006, 0x90000d81, 0x05020007, 0x9008055c, + 0x840c1d30, 0x0501f00d, 0x90080558, 0x840c1d30, + 0x0501f00a, 0x90000d82, 0x05020004, 0x90080554, + 0x840c1d30, 0x0501f005, 0x90000d83, 0x05f60c33, + 0x90080550, 0x840c1d70, 0x480f8801, 0x60000800, + 0x0501f85c, 0x0501f9f9, 0x0500000d, 0x4a03c014, + 0x00200020, 0x60000800, 0x0501f84e, 0x90040d1c, + 0x90040590, 0x05020004, 0x4a03c013, 0x00200020, + 0x0501f003, 0x4a03c013, 0x00200000, 0x0501f0e8, + 0x0501f805, 0x60058800, 0x05000002, 0x60018800, + 0x1c01f000, 0x4c580000, 0x6050b000, 0x8058b040, + 0x05000026, 0x59c4000d, 0x8c000520, 0x05fe07fc, + 0x0501f831, 0x59c4000d, 0x8c000520, 0x05fe07f8, + 0x59c40808, 0x82040d40, 0x00000300, 0x48078808, + 0x6120b001, 0x8058b040, 0x05fe07ff, 0x6050b000, + 0x8058b040, 0x05000015, 0x59c4000d, 0x8c000520, + 0x05020012, 0x0501f820, 0x59c4000d, 0x8c000520, + 0x0502000e, 0x6028b000, 0x8058b040, 0x05000003, + 0x0501f819, 0x05fdf7fd, 0x6190b000, 0x59c4000d, + 0x8c00051e, 0x05000005, 0x8058b040, 0x05fe07fc, + 0x80000580, 0x0501f002, 0x90000541, 0x5c00b000, + 0x1c01f000, 0x60080800, 0x0501f812, 0x82040500, + 0xfffffffe, 0x60080800, 0x0501f816, 0x60000800, + 0x0501f80c, 0x82040500, 0xfffffffe, 0x60000800, + 0x0501f010, 0x40000000, 0x40000000, 0x40000000, + 0x40000000, 0x40000000, 0x1c01f000, 0x40680800, + 0x4807880e, 0x59c4080f, 0x82040d00, 0x000000ff, + 0x40058800, 0x1c01f000, 0x40680800, 0x406c0000, + 0x900001c0, 0x80040d40, 0x84040d40, 0x4807880e, + 0x1c01f000, 0x82000d80, 0x00200000, 0x05000009, + 0x82000d80, 0x02000000, 0x05000006, 0x82000d80, + 0x01000000, 0x05000006, 0x59c408a3, 0x0501f006, + 0x59c408a3, 0x84040d30, 0x0501f003, 0x59c408a3, + 0x84040d32, 0x80040540, 0x480388a3, 0x480788a3, + 0x1c01f000, 0x59c400a3, 0x84000556, 0x480388a3, + 0x84000516, 0x480388a3, 0x1c01f000, 0x485fc857, + 0x4863c857, 0x4c640000, 0x4d3c0000, 0x4d400000, + 0x051dfe69, 0x48635009, 0x40601800, 0x60002000, + 0x0501f881, 0x42000000, 0x001097da, 0x0539fb20, + 0x82600500, 0x0000ff00, 0x82000580, 0x0000f700, + 0x05020004, 0x42000000, 0x001097c2, 0x0539fb18, + 0x0539fc26, 0x05020050, 0x82600d00, 0x0000ff00, + 0x800409c0, 0x0500000b, 0x6004c800, 0x59a8000f, + 0x82000500, 0x000000ff, 0x80041110, 0x80081580, + 0x0500001b, 0x82041580, 0x0000ff00, 0x0500000a, + 0x59c410a3, 0x82081500, 0x00008000, 0x05000008, + 0x59c410a7, 0x82081500, 0x0000ff00, 0x82081580, + 0x0000ff00, 0x6000c800, 0x0500000d, 0x8d0c0502, + 0x05020007, 0x8d0c0500, 0x05020009, 0x599c1017, + 0x8c08051a, 0x0500002a, 0x850e1d42, 0x6008c800, + 0x60128000, 0x60227800, 0x0501f004, 0x850e1d40, + 0x60128000, 0x417a7800, 0x59a80005, 0x8c000502, + 0x05020004, 0x8d0c050a, 0x05020023, 0x850e1d4a, + 0x42000000, 0x001097c1, 0x0539fae5, 0x59a81809, + 0x604c1100, 0x0509ff3f, 0x8d0c0520, 0x0500000f, + 0x4d400000, 0x82600500, 0x000000ff, 0x61fe89ff, + 0x40643000, 0x603a8000, 0x0535fd14, 0x60040800, + 0x60001002, 0x051df94d, 0x5c028000, 0x599c0817, + 0x8c04050a, 0x0502000c, 0x493fc857, 0x4943c857, + 0x0201f800, 0x0010b5e0, 0x0501f007, 0x8d0c0520, + 0x05000005, 0x603e8000, 0x61fe89ff, 0x60003000, + 0x0535fd05, 0x497b8880, 0x5c028000, 0x5c027800, + 0x5c00c800, 0x1c01f000, 0x60000800, 0x05fdff6d, + 0x90040542, 0x60000800, 0x05fdf772, 0x60080800, + 0x05fdff68, 0x90040542, 0x60080800, 0x05fdf76d, + 0x60080800, 0x05fdff63, 0x82040500, 0xfffffffd, + 0x90000550, 0x60080800, 0x05fdf766, 0x60000800, + 0x05fdff5c, 0x82040500, 0xfffffffd, 0x90000550, + 0x60000800, 0x05fdf75f, 0x59c408a8, 0x05fdff4e, + 0x05fdff4d, 0x59c400a8, 0x80040d80, 0x05fe07fb, + 0x1c01f000, 0x59a80005, 0x8c000500, 0x05000008, + 0x59a80008, 0x8c000500, 0x05020005, 0x84000540, + 0x48035008, 0x60581100, 0x0509fef6, 0x1c01f000, + 0x1c01f000, 0x59c40801, 0x82040d00, 0x00018000, + 0x82040d80, 0x00018000, 0x05000002, 0x84081518, + 0x480b88a3, 0x1c01f000, 0x42000800, 0x7ff4818e, + 0x59e00002, 0x8c00051e, 0x05020003, 0x42000800, + 0x7ff4808e, 0x58041800, 0x480f504b, 0x8c0c0500, + 0x05020007, 0x8c0c0502, 0x05000005, 0x58044001, + 0x58042002, 0x58041003, 0x0501f007, 0x42004000, + 0x0003c014, 0x42002000, 0x0003c014, 0x42001000, + 0x0002e014, 0x480b5045, 0x48135046, 0x48235047, + 0x8c0c0500, 0x05020007, 0x8c0c0504, 0x05000005, + 0x58044004, 0x58042005, 0x58041006, 0x0501f004, + 0x60c8400d, 0x60c8200d, 0x60c8100d, 0x480b5048, + 0x48135049, 0x4823504a, 0x1c01f000, 0x59a81048, + 0x59a82049, 0x59a8404a, 0x60380840, 0x05fdff0d, + 0x82040d00, 0xffffffc0, 0x82200500, 0x003f0000, + 0x80000120, 0x80040540, 0x60380840, 0x05fdff0d, + 0x60380848, 0x05fdff03, 0x82040d00, 0xffffffc0, + 0x82200500, 0x0000fc00, 0x80000114, 0x80040540, + 0x60380848, 0x05fdff03, 0x82200500, 0x000003e0, + 0x8000010a, 0x603808d8, 0x05fdfefe, 0x9020051f, + 0x603808f0, 0x05fdfefb, 0x82100500, 0x003f0000, + 0x80000120, 0x60380908, 0x05fdfef6, 0x82100500, + 0x0000fc00, 0x80000114, 0x60380918, 0x05fdfef1, + 0x82100500, 0x000003e0, 0x8000010a, 0x603808e0, + 0x05fdfeec, 0x9010051f, 0x603808f8, 0x05fdfee9, + 0x82080500, 0x003f0000, 0x80000120, 0x60380910, + 0x05fdfee4, 0x82080500, 0x0000fc00, 0x80000114, + 0x60380920, 0x05fdfedf, 0x82080500, 0x000003e0, + 0x8000010a, 0x603808e8, 0x05fdfeda, 0x9008051f, + 0x60380900, 0x05fdfed7, 0x1c01f000, 0x59a81045, + 0x59a82046, 0x59a84047, 0x9020051f, 0x800000c2, + 0x84000540, 0x60480800, 0x05fdfece, 0x82200500, + 0x000001e0, 0x80000908, 0x84040d40, 0x82200500, 0x00000600, 0x80000106, 0x8400054a, 0x80040540, - 0x60480838, 0x05fdfea9, 0x82100500, 0x00001800, - 0x80000916, 0x82100500, 0x0003e000, 0x80000114, - 0x84000544, 0x80040540, 0x60480850, 0x05fdfe9f, - 0x9008051f, 0x800000c2, 0x84000540, 0x60480810, - 0x05fdfe9a, 0x82080500, 0x000001e0, 0x80000908, - 0x84040d40, 0x82080500, 0x00000600, 0x80000106, - 0x8400054a, 0x80040540, 0x60480840, 0x05fdfe8f, - 0x82080500, 0x00001800, 0x80000916, 0x82080500, + 0x60480830, 0x05fdfec3, 0x82200500, 0x00001800, + 0x80000916, 0x82200500, 0x0003e000, 0x80000114, + 0x84000544, 0x80040540, 0x60480848, 0x05fdfeb9, + 0x9010051f, 0x800000c2, 0x84000540, 0x60480808, + 0x05fdfeb4, 0x82100500, 0x000001e0, 0x80000908, + 0x84040d40, 0x82100500, 0x00000600, 0x80000106, + 0x8400054a, 0x80040540, 0x60480838, 0x05fdfea9, + 0x82100500, 0x00001800, 0x80000916, 0x82100500, 0x0003e000, 0x80000114, 0x84000544, 0x80040540, - 0x60480858, 0x05fdfe85, 0x1c01f000, 0x0501f805, + 0x60480850, 0x05fdfe9f, 0x9008051f, 0x800000c2, + 0x84000540, 0x60480810, 0x05fdfe9a, 0x82080500, + 0x000001e0, 0x80000908, 0x84040d40, 0x82080500, + 0x00000600, 0x80000106, 0x8400054a, 0x80040540, + 0x60480840, 0x05fdfe8f, 0x82080500, 0x00001800, + 0x80000916, 0x82080500, 0x0003e000, 0x80000114, + 0x84000544, 0x80040540, 0x60480858, 0x05fdfe85, + 0x1c01f000, 0x0501f805, 0x60058800, 0x05000002, + 0x60018800, 0x1c01f000, 0x4c000000, 0x0509ff3f, + 0x05020003, 0x90000541, 0x0501f003, 0x59e00013, + 0x8c00050e, 0x5c000000, 0x1c01f000, 0x0501f805, 0x60058800, 0x05000002, 0x60018800, 0x1c01f000, - 0x4c000000, 0x0509ff39, 0x05020003, 0x90000541, - 0x0501f003, 0x59e00013, 0x8c00050e, 0x5c000000, - 0x1c01f000, 0x0501f805, 0x60058800, 0x05000002, - 0x60018800, 0x1c01f000, 0x4c140000, 0x4a03c013, - 0x03800300, 0x4a03c014, 0x03800380, 0x60800801, - 0x60281000, 0x0505f955, 0x05000002, 0x8c14050c, - 0x4a03c014, 0x03800000, 0x5c002800, 0x1c01f000, - 0x4c000000, 0x59a8004b, 0x8c000508, 0x05020004, - 0x90000541, 0x5c000000, 0x1c01f000, 0x80000580, - 0x05fdf7fd, 0x05fdfff7, 0x60058800, 0x05000002, - 0x60018800, 0x1c01f000, 0x4c5c0000, 0x4000b800, - 0x59a80044, 0x82000d80, 0xaabbccdd, 0x0500000f, - 0x90000c85, 0x05f61a1d, 0x4c000000, 0x0509fee5, - 0x5c000000, 0x05020003, 0x0c01f81a, 0x0501f016, - 0x4c000000, 0x0509fef6, 0x5c000000, 0x05fc07fb, - 0x0c01f819, 0x0501f010, 0x05fdffde, 0x0500000e, - 0x8d0c051a, 0x0500000c, 0x05fdffbe, 0x0502000a, - 0x05fdffca, 0x05020005, 0x905c0d83, 0x05020006, - 0x6008b800, 0x0501f004, 0x905c0d81, 0x05020002, - 0x600cb800, 0x405c0000, 0x5c00b800, 0x1c01f000, - 0x001017f2, 0x001017f3, 0x001017f4, 0x001017f5, - 0x001017f9, 0x001017fa, 0x001017fc, 0x0010180c, - 0x0010181a, 0x0010182a, 0x1c01f000, 0x1c01f000, - 0x1c01f000, 0x905c0d83, 0x05020002, 0x6008b800, - 0x1c01f000, 0x1c01f000, 0x6004b800, 0x1c01f000, - 0x05fdffb8, 0x05000007, 0x05fdff9a, 0x05020005, - 0x05fdffa6, 0x05000003, 0x6000b800, 0x0501f008, - 0x905c0d83, 0x05020003, 0x6000b800, 0x0501f004, - 0x905c0d82, 0x05020002, 0x05f5f9dc, 0x1c01f000, - 0x05fdffa8, 0x0500000c, 0x05fdff8a, 0x0502000a, - 0x05fdff96, 0x05020005, 0x905c0d83, 0x05020006, - 0x6008b800, 0x0501f004, 0x905c0d81, 0x05020002, - 0x600cb800, 0x1c01f000, 0x05fdff9a, 0x0500000b, - 0x05fdff7c, 0x05020009, 0x05fdff88, 0x05020002, - 0x0501f006, 0x905c0d83, 0x05000006, 0x905c0d81, - 0x05000004, 0x0501f004, 0x905c0d83, 0x05020002, - 0x6008b800, 0x1c01f000, 0x05fdff8a, 0x05000006, - 0x05fdff6c, 0x05020004, 0x05fdff78, 0x05020002, - 0x0501f004, 0x905c0d81, 0x05020002, 0x600cb800, - 0x1c01f000, 0x4803c856, 0x4c5c0000, 0x4c600000, - 0x4c640000, 0x4c580000, 0x497b504c, 0x4200c000, - 0x7ff52000, 0x0509fe95, 0x05020007, 0x4803c856, - 0x4a03c014, 0x07e30000, 0x59e0c813, 0x0501f8ba, - 0x0501f013, 0x82000d80, 0x3261103c, 0x050200b1, - 0x4803c856, 0x42000800, 0x7ff481e6, 0x59e06802, - 0x8c34051e, 0x05020003, 0x42000800, 0x7ff480e6, - 0x50040000, 0x4803c857, 0x48035053, 0x8c00051e, - 0x050000a4, 0x8200cd00, 0x000000ff, 0x4867c857, - 0x4867504d, 0x50600800, 0x4807504e, 0x4807c857, - 0x82040d80, 0x53434651, 0x05020098, 0x8060c000, - 0x50600800, 0x4807504f, 0x8060c000, 0x50600800, - 0x48075050, 0x8060c000, 0x50600800, 0x48075051, - 0x8060c000, 0x50600800, 0x82040d00, 0x0000ffff, - 0x48075052, 0x4200c000, 0x7ff52002, 0x5060b800, - 0x825cbd00, 0xffff0000, 0x805cb920, 0x805cb800, - 0x05001082, 0x8c5c051e, 0x05020080, 0x59e06802, - 0x8c34051e, 0x0502006a, 0x4803c856, 0x4200c000, - 0x7ff52045, 0x50603000, 0x82183500, 0x0000ffff, - 0x05000011, 0x80180497, 0x05021074, 0x8060c000, - 0x50602000, 0x82100500, 0xffff0000, 0x80000120, - 0x82100d00, 0x0000ffff, 0x4803c857, 0x4807c857, - 0x4c180000, 0x05fdfd89, 0x5c003000, 0x80183040, - 0x05fe07f3, 0x41780800, 0x40641000, 0x60100000, - 0x0519feec, 0x59e06802, 0x8c34051e, 0x05020057, - 0x4200c000, 0x7ff52005, 0x8008c418, 0x5060c800, - 0x800409c0, 0x0500000a, 0x90041581, 0x05020003, - 0x8064c910, 0x0501f006, 0x90041582, 0x05020003, - 0x8064c920, 0x0501f002, 0x8064c930, 0x8264cd00, - 0x000000ff, 0x4867c857, 0x48675054, 0x42001000, - 0x7ff52002, 0x50080000, 0x82000500, 0x0000ffff, - 0x4803c857, 0x8c00051e, 0x05020044, 0x80640480, - 0x05021042, 0x40640800, 0x405c1000, 0x0519fead, - 0x4803c857, 0x800001c0, 0x0502003c, 0x59e06802, - 0x8c34051e, 0x05020034, 0x4200c000, 0x7ff52045, - 0x805cc418, 0x8004c418, 0x05001034, 0x05000033, - 0x4863c857, 0x50600000, 0x82000500, 0x0000ffff, - 0x48035055, 0x8c00051e, 0x0502002c, 0x4803c857, - 0x80000c97, 0x05021029, 0x40601000, 0x80081000, - 0x50080800, 0x48075056, 0x80081000, 0x50080800, - 0x48075057, 0x4000b800, 0x8060c000, 0x50602000, + 0x4c140000, 0x4a03c013, 0x03800300, 0x4a03c014, + 0x03800380, 0x60800801, 0x60281000, 0x0505f95c, + 0x05000002, 0x8c14050c, 0x4a03c014, 0x03800000, + 0x5c002800, 0x1c01f000, 0x4c000000, 0x59a8004b, + 0x8c000508, 0x05020004, 0x90000541, 0x5c000000, + 0x1c01f000, 0x80000580, 0x05fdf7fd, 0x05fdfff7, + 0x60058800, 0x05000002, 0x60018800, 0x1c01f000, + 0x4c5c0000, 0x4000b800, 0x59a80044, 0x82000d80, + 0xaabbccdd, 0x0500000f, 0x90000c85, 0x05f61a1f, + 0x4c000000, 0x0509feeb, 0x5c000000, 0x05020003, + 0x0c01f81a, 0x0501f016, 0x4c000000, 0x0509fefc, + 0x5c000000, 0x05fc07fb, 0x0c01f819, 0x0501f010, + 0x05fdffde, 0x0500000e, 0x8d0c051a, 0x0500000c, + 0x05fdffbe, 0x0502000a, 0x05fdffca, 0x05020005, + 0x905c0d83, 0x05020006, 0x6008b800, 0x0501f004, + 0x905c0d81, 0x05020002, 0x600cb800, 0x405c0000, + 0x5c00b800, 0x1c01f000, 0x001017f0, 0x001017f1, + 0x001017f2, 0x001017f3, 0x001017f7, 0x001017f8, + 0x001017fa, 0x0010180a, 0x00101818, 0x00101828, + 0x1c01f000, 0x1c01f000, 0x1c01f000, 0x905c0d83, + 0x05020002, 0x6008b800, 0x1c01f000, 0x1c01f000, + 0x6004b800, 0x1c01f000, 0x05fdffb8, 0x05000007, + 0x05fdff9a, 0x05020005, 0x05fdffa6, 0x05000003, + 0x6000b800, 0x0501f008, 0x905c0d83, 0x05020003, + 0x6000b800, 0x0501f004, 0x905c0d82, 0x05020002, + 0x05f5f9de, 0x1c01f000, 0x05fdffa8, 0x0500000c, + 0x05fdff8a, 0x0502000a, 0x05fdff96, 0x05020005, + 0x905c0d83, 0x05020006, 0x6008b800, 0x0501f004, + 0x905c0d81, 0x05020002, 0x600cb800, 0x1c01f000, + 0x05fdff9a, 0x0500000b, 0x05fdff7c, 0x05020009, + 0x05fdff88, 0x05020002, 0x0501f006, 0x905c0d83, + 0x05000006, 0x905c0d81, 0x05000004, 0x0501f004, + 0x905c0d83, 0x05020002, 0x6008b800, 0x1c01f000, + 0x05fdff8a, 0x05000006, 0x05fdff6c, 0x05020004, + 0x05fdff78, 0x05020002, 0x0501f004, 0x905c0d81, + 0x05020002, 0x600cb800, 0x1c01f000, 0x4803c856, + 0x4c5c0000, 0x4c600000, 0x4c640000, 0x4c580000, + 0x497b504c, 0x4200c000, 0x7ff52000, 0x0509fe9b, + 0x05020007, 0x4803c856, 0x4a03c014, 0x07e30000, + 0x59e0c813, 0x0501f8bb, 0x0501f014, 0x59a80058, + 0x82000d80, 0x3261103c, 0x050200b1, 0x4803c856, + 0x42000800, 0x7ff481e6, 0x59e06802, 0x8c34051e, + 0x05020003, 0x42000800, 0x7ff480e6, 0x50040000, + 0x4803c857, 0x48035053, 0x8c00051e, 0x050000a4, + 0x8200cd00, 0x000000ff, 0x4867c857, 0x4867504d, + 0x50600800, 0x4807504e, 0x4807c857, 0x82040d80, + 0x53434651, 0x05020098, 0x8060c000, 0x50600800, + 0x4807504f, 0x8060c000, 0x50600800, 0x48075050, + 0x8060c000, 0x50600800, 0x48075051, 0x8060c000, + 0x50600800, 0x82040d00, 0x0000ffff, 0x48075052, + 0x4200c000, 0x7ff52002, 0x5060b800, 0x825cbd00, + 0xffff0000, 0x805cb920, 0x805cb800, 0x05001082, + 0x8c5c051e, 0x05020080, 0x59e06802, 0x8c34051e, + 0x0502006a, 0x4803c856, 0x4200c000, 0x7ff52045, + 0x50603000, 0x82183500, 0x0000ffff, 0x05000011, + 0x80180497, 0x05021074, 0x8060c000, 0x50602000, 0x82100500, 0xffff0000, 0x80000120, 0x82100d00, - 0x0000ffff, 0x4803c857, 0x4807c857, 0x05fdfd37, - 0x805cb840, 0x05fe07f5, 0x0501f016, 0x4803c856, - 0x42000000, 0x7ff52001, 0x5000b000, 0x8258b500, - 0xffff0000, 0x8058b124, 0x8258c400, 0x7ff52000, - 0xb060c400, 0x05fdf790, 0x8258c400, 0x7ff52000, - 0x05fdf7aa, 0x8258c400, 0x7ff52000, 0xb060c400, - 0x805cc418, 0x05fdf7cc, 0x4a03504c, 0xdeaddead, - 0x5c00b000, 0x5c00c800, 0x5c00c000, 0x5c00b800, - 0x1c01f000, 0x4867c857, 0x90640d20, 0x8004690a, - 0x82640d00, 0x00000400, 0x80040912, 0x80046d4d, - 0x90640d01, 0x800408c4, 0x80046d4d, 0x90640d02, - 0x800408c4, 0x80046d4d, 0x82640d00, 0x00000100, - 0x80040908, 0x80046d4d, 0x82640d00, 0x00000080, - 0x80040904, 0x80046d4d, 0xb0640d00, 0x80046d4d, - 0x82640d00, 0x00000200, 0x80040904, 0x80046d4d, - 0x8234cd00, 0x000000ff, 0x1c01f000, 0x0509fdc8, - 0x0502000d, 0x4803c856, 0x4a03c014, 0x18001800, - 0x4a03c013, 0x18000800, 0x05fdfce5, 0x4a03c013, - 0x18000000, 0x61a1d007, 0x0519fd9d, 0x4a03c013, - 0x18000800, 0x1c01f000, 0x0509fdb9, 0x0502000d, - 0x4803c856, 0x4a03c014, 0x18001800, 0x4a03c013, - 0x18001800, 0x05fdfcd6, 0x4a03c013, 0x18001000, - 0x61a1d007, 0x0519fd8e, 0x4a03c013, 0x18001800, - 0x1c01f000, 0x0509fdaa, 0x0502000c, 0x60041800, - 0x42001000, 0x001093cd, 0x60900800, 0x60002180, - 0x50080000, 0x82000500, 0x000000ff, 0x4803c857, - 0x0509fe41, 0x05f408a1, 0x1c01f000, 0x4803c856, - 0x59a80006, 0x8c00051e, 0x05020008, 0x61f2880f, - 0x42003000, 0x00fffffc, 0x050dffec, 0x05020007, - 0x0501f808, 0x05000005, 0x4a03501c, 0x0000ffff, - 0x90000541, 0x1c01f000, 0x80000580, 0x05fdf7fe, - 0x4937c857, 0x0521fcae, 0x0500000f, 0x4936600a, - 0x64066407, 0x417a7800, 0x050dffa1, 0x600c0800, - 0x050dffaa, 0x59a8001d, 0x80000000, 0x4803501d, - 0x599c0208, 0x48026c12, 0x600a7000, 0x0005f905, - 0x90000541, 0x1c01f000, 0x40681000, 0x0501f805, - 0x60018800, 0x05000002, 0x60058800, 0x1c01f000, - 0x480bc857, 0x492fc857, 0x4c5c0000, 0x4008b800, - 0x61f6880f, 0x42003000, 0x00fffffd, 0x050dffc3, - 0x05020019, 0x5934000a, 0x84000544, 0x4802680a, - 0x0521fc8b, 0x05000014, 0x4936600a, 0x812e59c0, - 0x05000006, 0x592c0405, 0x8c00051e, 0x05000003, - 0x48ee6023, 0x0501f004, 0x59a8021b, 0x8400055c, - 0x4803521b, 0x492e6009, 0x64066407, 0x485e601e, - 0x608a7000, 0x0005f905, 0x90000541, 0x5c00b800, - 0x1c01f000, 0x80000580, 0x05fdf7fd, 0x4933c857, - 0x59a8021b, 0x8c000508, 0x05020010, 0x5930500a, - 0x482bc857, 0x916c0582, 0x0502000c, 0x0501f812, - 0x0502000a, 0x58280403, 0x82000580, 0x000007fc, - 0x05000007, 0x59a80016, 0x80000040, 0x4803c857, - 0x05f41842, 0x48035016, 0x1c01f000, 0x59a8001d, - 0x80000040, 0x4803c857, 0x05fc17fc, 0x4803501d, - 0x1c01f000, 0x59300009, 0x800001c0, 0x05020007, - 0x59300403, 0x90000581, 0x05020003, 0x90000541, - 0x0501f002, 0x80000580, 0x1c01f000, 0x4933c857, - 0x493fc857, 0x4947c857, 0x4d400000, 0x4d340000, - 0x4d440000, 0x4c580000, 0x0519ff75, 0x4df00000, - 0x8060c1c0, 0x05020003, 0x6004b000, 0x0501f003, - 0x61c0b00f, 0x417a8800, 0x41440000, 0x81ac0400, - 0x50000000, 0x80026d40, 0x05000015, 0x4d3c0000, - 0x60067800, 0x0511f9ec, 0x5c027800, 0x60a68000, - 0x0201f800, 0x0010bb8e, 0x0201f800, 0x0010bc6a, - 0x0201f800, 0x0010bd03, 0x0511fa61, 0x05020005, - 0x4937c857, 0x4a026c00, 0x00000404, 0x0501f002, - 0x0511fa90, 0x0201f800, 0x0010c0f3, 0x81468800, - 0x8058b040, 0x05fe07e5, 0x5c03e000, 0x05180f3c, - 0x5c00b000, 0x5c028800, 0x5c026800, 0x5c028000, - 0x1c01f000, 0x0501f805, 0x60058800, 0x05000002, - 0x60018800, 0x1c01f000, 0x4937c857, 0x4947c857, - 0x4c5c0000, 0x4c600000, 0x4c640000, 0x59a8006f, - 0x8c000500, 0x0500001d, 0x599c0017, 0x8c00050a, - 0x0502001a, 0x5934ba02, 0x825cbd00, 0x000000ff, - 0x485fc857, 0x4178c000, 0x4178c800, 0x82600400, - 0x001098d3, 0x50002000, 0x8060c1c0, 0x05000008, - 0x82100500, 0x000000ff, 0x82002d80, 0x000000ff, - 0x0500000a, 0x805c0580, 0x0500000a, 0x80102110, - 0x8064c800, 0x90640584, 0x05fe07f6, 0x8060c000, - 0x906005a0, 0x05fe07ed, 0x4813c857, 0x90000541, + 0x0000ffff, 0x4803c857, 0x4807c857, 0x4c180000, + 0x05fdfd88, 0x5c003000, 0x80183040, 0x05fe07f3, + 0x41780800, 0x40641000, 0x60100000, 0x0519ff79, + 0x59e06802, 0x8c34051e, 0x05020057, 0x4200c000, + 0x7ff52005, 0x8008c418, 0x5060c800, 0x800409c0, + 0x0500000a, 0x90041581, 0x05020003, 0x8064c910, + 0x0501f006, 0x90041582, 0x05020003, 0x8064c920, + 0x0501f002, 0x8064c930, 0x8264cd00, 0x000000ff, + 0x4867c857, 0x48675054, 0x42001000, 0x7ff52002, + 0x50080000, 0x82000500, 0x0000ffff, 0x4803c857, + 0x8c00051e, 0x05020044, 0x80640480, 0x05021042, + 0x40640800, 0x405c1000, 0x0519ff3a, 0x4803c857, + 0x800001c0, 0x0502003c, 0x59e06802, 0x8c34051e, + 0x05020034, 0x4200c000, 0x7ff52045, 0x805cc418, + 0x8004c418, 0x05001034, 0x05000033, 0x4863c857, + 0x50600000, 0x82000500, 0x0000ffff, 0x48035055, + 0x8c00051e, 0x0502002c, 0x4803c857, 0x80000c97, + 0x05021029, 0x40601000, 0x80081000, 0x50080800, + 0x48075056, 0x80081000, 0x50080800, 0x48075057, + 0x4000b800, 0x8060c000, 0x50602000, 0x82100500, + 0xffff0000, 0x80000120, 0x82100d00, 0x0000ffff, + 0x4803c857, 0x4807c857, 0x05fdfd36, 0x805cb840, + 0x05fe07f5, 0x0501f016, 0x4803c856, 0x42000000, + 0x7ff52001, 0x5000b000, 0x8258b500, 0xffff0000, + 0x8058b124, 0x8258c400, 0x7ff52000, 0xb060c400, + 0x05fdf790, 0x8258c400, 0x7ff52000, 0x05fdf7aa, + 0x8258c400, 0x7ff52000, 0xb060c400, 0x805cc418, + 0x05fdf7cc, 0x4a03504c, 0xdeaddead, 0x5c00b000, 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x1c01f000, - 0x0501f805, 0x60058800, 0x05020002, 0x60018800, - 0x1c01f000, 0x59a8021b, 0x8c000512, 0x05f60885, - 0x1c01f000, 0x00007eef, 0x00007de8, 0x00007ce4, - 0x000080e2, 0x00007be1, 0x000080e0, 0x000080dc, - 0x000080da, 0x00007ad9, 0x000080d6, 0x000080d5, - 0x000080d4, 0x000080d3, 0x000080d2, 0x000080d1, - 0x000079ce, 0x000078cd, 0x000080cc, 0x000080cb, - 0x000080ca, 0x000080c9, 0x000080c7, 0x000080c6, - 0x000077c5, 0x000076c3, 0x000080bc, 0x000080ba, - 0x000075b9, 0x000080b6, 0x000074b5, 0x000073b4, - 0x000072b3, 0x000080b2, 0x000080b1, 0x000080ae, - 0x000071ad, 0x000080ac, 0x000070ab, 0x00006faa, - 0x00006ea9, 0x000080a7, 0x00006da6, 0x00006ca5, - 0x00006ba3, 0x00006a9f, 0x0000699e, 0x0000689d, - 0x0000809b, 0x00008098, 0x00006797, 0x00006690, - 0x0000658f, 0x00006488, 0x00006384, 0x00006282, - 0x00008081, 0x00008080, 0x0000617c, 0x0000607a, - 0x00008079, 0x00005f76, 0x00008075, 0x00008074, - 0x00008073, 0x00008072, 0x00008071, 0x0000806e, - 0x00005e6d, 0x0000806c, 0x00005d6b, 0x00005c6a, - 0x00005b69, 0x00008067, 0x00005a66, 0x00005965, - 0x00005863, 0x0000575c, 0x0000565a, 0x00005559, - 0x00008056, 0x00008055, 0x00005454, 0x00005353, - 0x00005252, 0x00005151, 0x0000504e, 0x00004f4d, - 0x0000804c, 0x0000804b, 0x00004e4a, 0x00004d49, - 0x00008047, 0x00004c46, 0x00008045, 0x00008043, - 0x0000803c, 0x0000803a, 0x00008039, 0x00008036, - 0x00004b35, 0x00008034, 0x00004a33, 0x00004932, - 0x00004831, 0x0000802e, 0x0000472d, 0x0000462c, - 0x0000452b, 0x0000442a, 0x00004329, 0x00004227, - 0x00008026, 0x00008025, 0x00004123, 0x0000401f, - 0x00003f1e, 0x00003e1d, 0x00003d1b, 0x00003c18, - 0x00008017, 0x00008010, 0x00003b0f, 0x00003a08, - 0x00008004, 0x00003902, 0x00008001, 0x00008000, - 0x00008000, 0x00003800, 0x00003700, 0x00003600, - 0x00008000, 0x00003500, 0x00008000, 0x00008000, - 0x00008000, 0x00003400, 0x00008000, 0x00008000, + 0x4867c857, 0x90640d20, 0x8004690a, 0x82640d00, + 0x00000400, 0x80040912, 0x80046d4d, 0x90640d01, + 0x800408c4, 0x80046d4d, 0x90640d02, 0x800408c4, + 0x80046d4d, 0x82640d00, 0x00000100, 0x80040908, + 0x80046d4d, 0x82640d00, 0x00000080, 0x80040904, + 0x80046d4d, 0xb0640d00, 0x80046d4d, 0x82640d00, + 0x00000200, 0x80040904, 0x80046d4d, 0x8234cd00, + 0x000000ff, 0x1c01f000, 0x0509fdcd, 0x0502000d, + 0x4803c856, 0x4a03c014, 0x18001800, 0x4a03c013, + 0x18000800, 0x05fdfce4, 0x4a03c013, 0x18000000, + 0x61a1d007, 0x0519fe2a, 0x4a03c013, 0x18000800, + 0x1c01f000, 0x0509fdbe, 0x0502000d, 0x4803c856, + 0x4a03c014, 0x18001800, 0x4a03c013, 0x18001800, + 0x05fdfcd5, 0x4a03c013, 0x18001000, 0x61a1d007, + 0x0519fe1b, 0x4a03c013, 0x18001800, 0x1c01f000, + 0x0509fdaf, 0x0502000c, 0x60041800, 0x42001000, + 0x0010944d, 0x60900800, 0x60002180, 0x50080000, + 0x82000500, 0x000000ff, 0x4803c857, 0x0509fe46, + 0x05f408a2, 0x1c01f000, 0x4803c856, 0x59a80006, + 0x8c00051e, 0x05020008, 0x61f2880f, 0x42003000, + 0x00fffffc, 0x050dfffc, 0x05020007, 0x0501f808, + 0x05000005, 0x4a03501c, 0x0000ffff, 0x90000541, + 0x1c01f000, 0x80000580, 0x05fdf7fe, 0x4937c857, + 0x0521fd2b, 0x0500000f, 0x4936600a, 0x64066407, + 0x417a7800, 0x050dffae, 0x600c0800, 0x050dffb7, + 0x59a8001d, 0x80000000, 0x4803501d, 0x599c0208, + 0x48026c12, 0x600a7000, 0x0005f905, 0x90000541, + 0x1c01f000, 0x40681000, 0x0501f805, 0x60018800, + 0x05000002, 0x60058800, 0x1c01f000, 0x480bc857, + 0x492fc857, 0x4c5c0000, 0x4008b800, 0x61f6880f, + 0x42003000, 0x00fffffd, 0x050dffd3, 0x05020019, + 0x5934000a, 0x84000544, 0x4802680a, 0x0521fd08, + 0x05000014, 0x4936600a, 0x812e59c0, 0x05000006, + 0x592c0405, 0x8c00051e, 0x05000003, 0x48ee6023, + 0x0501f004, 0x59a8021b, 0x8400055c, 0x4803521b, + 0x492e6009, 0x64066407, 0x485e601e, 0x608a7000, + 0x0005f905, 0x90000541, 0x5c00b800, 0x1c01f000, + 0x80000580, 0x05fdf7fd, 0x4933c857, 0x59a8021b, + 0x8c000508, 0x05020010, 0x5930500a, 0x482bc857, + 0x916c0582, 0x0502000c, 0x0501f815, 0x0502000a, + 0x58280403, 0x82000580, 0x000007fc, 0x05000007, + 0x59a80016, 0x80000040, 0x4803c857, 0x05f41843, + 0x48035016, 0x1c01f000, 0x5930041f, 0x900005a1, + 0x05fc07fd, 0x59a8001d, 0x80000040, 0x4803c857, + 0x05fc17f9, 0x4803501d, 0x1c01f000, 0x59300009, + 0x800001c0, 0x05020007, 0x59300403, 0x90000581, + 0x05020003, 0x90000541, 0x0501f002, 0x80000580, + 0x1c01f000, 0x4933c857, 0x493fc857, 0x4947c857, + 0x4d400000, 0x4d340000, 0x4d440000, 0x4c580000, + 0x0519ffff, 0x4df00000, 0x8060c1c0, 0x05020003, + 0x6004b000, 0x0501f003, 0x61c0b00f, 0x417a8800, + 0x41440000, 0x81ac0400, 0x50000000, 0x80026d40, + 0x05000015, 0x4d3c0000, 0x60067800, 0x0511f9fd, + 0x5c027800, 0x60a68000, 0x0201f800, 0x0010bb9e, + 0x0201f800, 0x0010bc6f, 0x0201f800, 0x0010bd08, + 0x0511fa74, 0x05020005, 0x4937c857, 0x4a026c00, + 0x00000404, 0x0501f002, 0x0511faa3, 0x0201f800, + 0x0010c0ee, 0x81468800, 0x8058b040, 0x05fe07e5, + 0x5c03e000, 0x05180fc6, 0x5c00b000, 0x5c028800, + 0x5c026800, 0x5c028000, 0x1c01f000, 0x0501f805, + 0x60058800, 0x05000002, 0x60018800, 0x1c01f000, + 0x4937c857, 0x4947c857, 0x4c5c0000, 0x4c600000, + 0x4c640000, 0x59a8006f, 0x8c000500, 0x0500001d, + 0x599c0017, 0x8c00050a, 0x0502001a, 0x5934ba02, + 0x825cbd00, 0x000000ff, 0x485fc857, 0x4178c000, + 0x4178c800, 0x82600400, 0x00109953, 0x50002000, + 0x8060c1c0, 0x05000008, 0x82100500, 0x000000ff, + 0x82002d80, 0x000000ff, 0x0500000a, 0x805c0580, + 0x0500000a, 0x80102110, 0x8064c800, 0x90640584, + 0x05fe07f6, 0x8060c000, 0x906005a0, 0x05fe07ed, + 0x4813c857, 0x90000541, 0x5c00c800, 0x5c00c000, + 0x5c00b800, 0x1c01f000, 0x0501f805, 0x60058800, + 0x05020002, 0x60018800, 0x1c01f000, 0x59a8021b, + 0x8c000512, 0x05f60883, 0x1c01f000, 0x00007eef, + 0x00007de8, 0x00007ce4, 0x000080e2, 0x00007be1, + 0x000080e0, 0x000080dc, 0x000080da, 0x00007ad9, + 0x000080d6, 0x000080d5, 0x000080d4, 0x000080d3, + 0x000080d2, 0x000080d1, 0x000079ce, 0x000078cd, + 0x000080cc, 0x000080cb, 0x000080ca, 0x000080c9, + 0x000080c7, 0x000080c6, 0x000077c5, 0x000076c3, + 0x000080bc, 0x000080ba, 0x000075b9, 0x000080b6, + 0x000074b5, 0x000073b4, 0x000072b3, 0x000080b2, + 0x000080b1, 0x000080ae, 0x000071ad, 0x000080ac, + 0x000070ab, 0x00006faa, 0x00006ea9, 0x000080a7, + 0x00006da6, 0x00006ca5, 0x00006ba3, 0x00006a9f, + 0x0000699e, 0x0000689d, 0x0000809b, 0x00008098, + 0x00006797, 0x00006690, 0x0000658f, 0x00006488, + 0x00006384, 0x00006282, 0x00008081, 0x00008080, + 0x0000617c, 0x0000607a, 0x00008079, 0x00005f76, + 0x00008075, 0x00008074, 0x00008073, 0x00008072, + 0x00008071, 0x0000806e, 0x00005e6d, 0x0000806c, + 0x00005d6b, 0x00005c6a, 0x00005b69, 0x00008067, + 0x00005a66, 0x00005965, 0x00005863, 0x0000575c, + 0x0000565a, 0x00005559, 0x00008056, 0x00008055, + 0x00005454, 0x00005353, 0x00005252, 0x00005151, + 0x0000504e, 0x00004f4d, 0x0000804c, 0x0000804b, + 0x00004e4a, 0x00004d49, 0x00008047, 0x00004c46, + 0x00008045, 0x00008043, 0x0000803c, 0x0000803a, + 0x00008039, 0x00008036, 0x00004b35, 0x00008034, + 0x00004a33, 0x00004932, 0x00004831, 0x0000802e, + 0x0000472d, 0x0000462c, 0x0000452b, 0x0000442a, + 0x00004329, 0x00004227, 0x00008026, 0x00008025, + 0x00004123, 0x0000401f, 0x00003f1e, 0x00003e1d, + 0x00003d1b, 0x00003c18, 0x00008017, 0x00008010, + 0x00003b0f, 0x00003a08, 0x00008004, 0x00003902, + 0x00008001, 0x00008000, 0x00008000, 0x00003800, + 0x00003700, 0x00003600, 0x00008000, 0x00003500, + 0x00008000, 0x00008000, 0x00008000, 0x00003400, 0x00008000, 0x00008000, 0x00008000, 0x00008000, - 0x00003300, 0x00003200, 0x00008000, 0x00008000, + 0x00008000, 0x00008000, 0x00003300, 0x00003200, 0x00008000, 0x00008000, 0x00008000, 0x00008000, - 0x00003100, 0x00003000, 0x00008000, 0x00008000, - 0x00002f00, 0x00008000, 0x00002e00, 0x00002d00, - 0x00002c00, 0x00008000, 0x00008000, 0x00008000, - 0x00002b00, 0x00008000, 0x00002a00, 0x00002900, - 0x00002800, 0x00008000, 0x00002700, 0x00002600, - 0x00002500, 0x00002400, 0x00002300, 0x00002200, - 0x00008000, 0x00008000, 0x00002100, 0x00002000, - 0x00001f00, 0x00001e00, 0x00001d00, 0x00001c00, - 0x00008000, 0x00008000, 0x00001b00, 0x00001a00, - 0x00008000, 0x00001900, 0x00008000, 0x00008000, + 0x00008000, 0x00008000, 0x00003100, 0x00003000, + 0x00008000, 0x00008000, 0x00002f00, 0x00008000, + 0x00002e00, 0x00002d00, 0x00002c00, 0x00008000, + 0x00008000, 0x00008000, 0x00002b00, 0x00008000, + 0x00002a00, 0x00002900, 0x00002800, 0x00008000, + 0x00002700, 0x00002600, 0x00002500, 0x00002400, + 0x00002300, 0x00002200, 0x00008000, 0x00008000, + 0x00002100, 0x00002000, 0x00001f00, 0x00001e00, + 0x00001d00, 0x00001c00, 0x00008000, 0x00008000, + 0x00001b00, 0x00001a00, 0x00008000, 0x00001900, 0x00008000, 0x00008000, 0x00008000, 0x00008000, - 0x00001800, 0x00008000, 0x00001700, 0x00001600, - 0x00001500, 0x00008000, 0x00001400, 0x00001300, - 0x00001200, 0x00001100, 0x00001000, 0x00000f00, - 0x00008000, 0x00008000, 0x00000e00, 0x00000d00, - 0x00000c00, 0x00000b00, 0x00000a00, 0x00000900, - 0x00008000, 0x00008000, 0x00000800, 0x00000700, - 0x00008000, 0x00000600, 0x00008000, 0x00008000, - 0x00008000, 0x00000500, 0x00000400, 0x00000300, - 0x00008000, 0x00000200, 0x00008000, 0x00008000, - 0x00008000, 0x00000100, 0x00008000, 0x00008000, + 0x00008000, 0x00008000, 0x00001800, 0x00008000, + 0x00001700, 0x00001600, 0x00001500, 0x00008000, + 0x00001400, 0x00001300, 0x00001200, 0x00001100, + 0x00001000, 0x00000f00, 0x00008000, 0x00008000, + 0x00000e00, 0x00000d00, 0x00000c00, 0x00000b00, + 0x00000a00, 0x00000900, 0x00008000, 0x00008000, + 0x00000800, 0x00000700, 0x00008000, 0x00000600, + 0x00008000, 0x00008000, 0x00008000, 0x00000500, + 0x00000400, 0x00000300, 0x00008000, 0x00000200, + 0x00008000, 0x00008000, 0x00008000, 0x00000100, 0x00008000, 0x00008000, 0x00008000, 0x00008000, - 0x00000000, 0x00008000, 0x00008000, 0x00008000, + 0x00008000, 0x00008000, 0x00000000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, - 0x00008000, 0x05f5fa34, 0x05f00ec4, 0x492f4017, - 0x1c01f000, 0x91a0ac07, 0x83a00580, 0x00109410, - 0x05000008, 0x492fc857, 0x812e59c0, 0x05f00ebb, - 0x912ca407, 0x6034b000, 0x0535fe31, 0x0501f00d, - 0x6040b000, 0x91e0a420, 0x50500000, 0x8050a000, - 0x50500800, 0x900409c0, 0x80040540, 0x4400a800, - 0x8050a000, 0x8054a800, 0x8058b040, 0x05fe07f7, - 0x1c01f000, 0x59a00207, 0xb0000cbf, 0x050210be, - 0x0c01f001, 0x00101bc7, 0x00101bfd, 0x00101bfd, - 0x00101c47, 0x00101c5c, 0x00101bfd, 0x00101bc7, - 0x00101c71, 0x00101c82, 0x00101bfd, 0x00101bfd, - 0x00101c97, 0x00101cb5, 0x00101cd3, 0x00101bfd, - 0x00101cf0, 0x00101bfd, 0x00101bfd, 0x00101d10, - 0x00101bfd, 0x00101dbf, 0x00101bfd, 0x00101bfd, - 0x00101bfd, 0x00101bfd, 0x00101de6, 0x00101e3d, - 0x00101bfd, 0x00101bfd, 0x00101bfd, 0x00101bfd, - 0x00101bfd, 0x00101e87, 0x00101bfd, 0x00101ec8, - 0x00101bfd, 0x00101bfd, 0x00101bfd, 0x00101bfd, - 0x00101ecd, 0x00101fc7, 0x00101bfd, 0x00101fce, - 0x00101bfd, 0x00101bfd, 0x00101bfd, 0x00101bfd, - 0x00101bfd, 0x00101fcf, 0x00102057, 0x001021f5, - 0x00102201, 0x00101bfd, 0x00101bfd, 0x00101bfd, - 0x00101bfd, 0x00102214, 0x00101bfd, 0x00101bfd, - 0x00101bfd, 0x00101bfd, 0x00101bfd, 0x00101bfd, - 0x00101bfd, 0x00102234, 0x00102272, 0x001022b6, - 0x001022cb, 0x0010ae15, 0x0010b404, 0x0010230a, - 0x00101bfd, 0x00101bfd, 0x00101bfd, 0x00101bfd, - 0x00101bfd, 0x00101bfd, 0x00101bfd, 0x00101bfd, - 0x00101bfd, 0x00101bfd, 0x00101bfd, 0x00101bfd, - 0x0010244f, 0x001024ac, 0x00101bfd, 0x00101bfd, - 0x00102508, 0x00101bfd, 0x00102582, 0x00102606, - 0x00101bfd, 0x00101bfd, 0x0010266d, 0x001026f7, - 0x00101bfd, 0x00102739, 0x0010289d, 0x00101bfd, - 0x001028ac, 0x00102926, 0x00101bfd, 0x00101bfd, - 0x00101bfd, 0x00101bfd, 0x0010297f, 0x00102999, - 0x001029b0, 0x00101bfd, 0x00102a26, 0x00101bfd, - 0x00101bfd, 0x00102a62, 0x00101bfd, 0x00102a83, - 0x00101bfd, 0x00101bfd, 0x00102ad7, 0x00102c08, - 0x00101bfd, 0x00101bfd, 0x00101bfd, 0x00101bfd, - 0x00101bfd, 0x00102c4a, 0x00102ccb, 0x00101bfd, - 0x48efc857, 0x4031d800, 0x58ef400a, 0x58ec0002, - 0x82000580, 0x00000200, 0x0500003b, 0x48efc857, - 0x4a034207, 0x00004000, 0x0509f9c4, 0x83a00580, - 0x00109410, 0x0500000b, 0x58ee5809, 0x4d2c0000, - 0x0501f850, 0x41a25800, 0x05f5f9a6, 0x40ee5800, - 0x05f5f9a4, 0x5c025800, 0x492fc857, 0x0001f32c, - 0x05026007, 0x59a0001e, 0x84000542, 0x4803401e, - 0x4a01d808, 0x00101bd8, 0x1c01f000, 0x59a00207, - 0x82000d80, 0x00004000, 0x05000005, 0x900001c0, - 0x90000551, 0x4803c011, 0x0501f004, 0x900001c0, - 0x90000550, 0x4803c011, 0x0501f844, 0x59e00017, - 0x8c00050a, 0x60000800, 0x0002088c, 0x8d0c0530, - 0x05fa0b81, 0x0002098c, 0x6403c017, 0x4203e000, - 0x30000001, 0x4203e000, 0x40000000, 0x40ee5800, - 0x05f5f980, 0x59a0001e, 0x84000504, 0x4803401e, - 0x1c01f000, 0x4803c856, 0x4a034207, 0x00004001, - 0x05fdf7ca, 0x4803c856, 0x4a034207, 0x00004002, - 0x05fdf7c6, 0x4803c856, 0x4a034207, 0x00004003, - 0x05fdf7c2, 0x4803c856, 0x4a034207, 0x00004005, - 0x05fdf7be, 0x4803c856, 0x4a034207, 0x00004006, - 0x05fdf7ba, 0x4803c856, 0x4a034207, 0x0000400b, - 0x05fdf7b6, 0x4803c856, 0x4a034207, 0x0000400c, - 0x05fdf7b2, 0x4803c856, 0x4a034207, 0x0000400c, - 0x05fdf7ae, 0x4a034207, 0x00004020, 0x05fdf7ab, - 0x4c580000, 0x4c500000, 0x4c540000, 0x58eca809, - 0x8054a9c0, 0x05f00dc1, 0x91a0a407, 0x9054ac07, - 0x6034b000, 0x0535fd36, 0x5c00a800, 0x5c00a000, - 0x5c00b000, 0x1c01f000, 0x4c580000, 0x4c500000, - 0x4c540000, 0x59a00007, 0x4803c857, 0x59a00008, - 0x4803c857, 0x59a00009, 0x4803c857, 0x91e0ac20, - 0x91a0a407, 0x6040b000, 0x50500000, 0x4400a800, - 0x8054a800, 0x900001c0, 0x4400a800, 0x8054a800, - 0x8050a000, 0x8058b040, 0x05fe07f8, 0x5c00a800, - 0x5c00a000, 0x5c00b000, 0x1c01f000, 0x59a00407, - 0x800000c2, 0x59a00a08, 0x900409c0, 0x80040540, - 0x84000540, 0x59a00c08, 0x8c040500, 0x0500000b, - 0x4c000000, 0x0535fd60, 0x5c000000, 0x05000004, - 0x48030004, 0x64030000, 0x05fdf771, 0x64030000, - 0x64134407, 0x05fc07b0, 0x4803880e, 0x05fdf76c, - 0x59a00407, 0x800000c2, 0x59a00c08, 0x8c040500, - 0x0500000d, 0x4c000000, 0x0535fd4f, 0x5c000000, - 0x05000006, 0x48030004, 0x59800805, 0x48074407, - 0x64030000, 0x05fdf75e, 0x64030000, 0x64134407, - 0x05fc079d, 0x4803880e, 0x59c4080f, 0x48074407, - 0x05fdf757, 0x59a01c07, 0x59a00208, 0x900c19c0, - 0x800c1d40, 0x580c0803, 0x80000580, 0x500c1000, - 0x80080400, 0x800c1800, 0x80040840, 0x05fe07fc, - 0x48034407, 0x900001c0, 0x48034208, 0x800001c0, - 0x05fc0747, 0x05fdf784, 0x64174407, 0x64134208, - 0x64034408, 0x59a8000a, 0x82000c80, 0x00140000, - 0x05021004, 0x42000000, 0x0013ffff, 0x0501f006, - 0x59a80883, 0x8c040500, 0x05000003, 0x82000400, - 0x00006000, 0x48034209, 0x900001c0, 0x48034409, - 0x4a03420a, 0x00000080, 0x05fdf731, 0x59a00408, - 0x59a01208, 0x900811c0, 0x80081540, 0x59a0040a, - 0x59a01a0a, 0x900c19c0, 0x800c1d40, 0x59a00a09, - 0x59a00409, 0x900409c0, 0x80040d40, 0x59a0020b, - 0x90002490, 0x05fc1768, 0x59a02407, 0x900001c0, - 0x80100540, 0x59a8280a, 0x80142480, 0x050a10f1, - 0x42002800, 0x7fefffff, 0x80142480, 0x05fe175e, - 0x42002800, 0x7ffd0000, 0x80142480, 0x05fc175a, - 0x0509f0e8, 0x59a00408, 0x59a01208, 0x900811c0, - 0x80081540, 0x59a0040a, 0x59a01a0a, 0x900c19c0, - 0x800c1d40, 0x59a00a09, 0x59a00409, 0x900409c0, - 0x80040d40, 0x59a0020b, 0x90002490, 0x05fc174a, - 0x59a02407, 0x900001c0, 0x80100540, 0x59a8280a, - 0x80142480, 0x050a10d9, 0x42002800, 0x7fefffff, - 0x80142480, 0x05fe1740, 0x42002800, 0x7ffd0000, - 0x80142480, 0x05fc173c, 0x0509f0d0, 0x59a02408, - 0x59a00208, 0x901021c0, 0x80102540, 0x59a01a0b, - 0x59a00407, 0x900c19c0, 0x800c1d40, 0x41781000, - 0x820c0580, 0x00007c00, 0x0500000a, 0x820c0480, - 0x00007a00, 0x05001007, 0x820c0480, 0x00007cff, - 0x05021004, 0x0535fccc, 0x05000007, 0x80081000, - 0x44101800, 0x800811c0, 0x05fc06dd, 0x64030000, - 0x05fdf6db, 0x64030000, 0x64134407, 0x05fdf71a, + 0x00008000, 0x00008000, 0x00008000, 0x05f5fa32, + 0x05f00ec2, 0x492f4017, 0x1c01f000, 0x91a0ac07, + 0x83a00580, 0x00109490, 0x05000008, 0x492fc857, + 0x812e59c0, 0x05f00eb9, 0x912ca407, 0x6034b000, + 0x0535fef9, 0x0501f00d, 0x6040b000, 0x91e0a420, + 0x50500000, 0x8050a000, 0x50500800, 0x900409c0, + 0x80040540, 0x4400a800, 0x8050a000, 0x8054a800, + 0x8058b040, 0x05fe07f7, 0x1c01f000, 0x59a00207, + 0xb0000cbf, 0x050210be, 0x0c01f001, 0x00101bc9, + 0x00101bff, 0x00101bff, 0x00101c49, 0x00101c5e, + 0x00101bff, 0x00101bc9, 0x00101c73, 0x00101c84, + 0x00101bff, 0x00101bff, 0x00101c9c, 0x00101cba, + 0x00101cd8, 0x00101bff, 0x00101cf5, 0x00101bff, + 0x00101bff, 0x00101d15, 0x00101bff, 0x00101dc4, + 0x00101bff, 0x00101bff, 0x00101bff, 0x00101bff, + 0x00101deb, 0x00101e42, 0x00101bff, 0x00101bff, + 0x00101bff, 0x00101bff, 0x00101bff, 0x00101e8c, + 0x00101bff, 0x00101ecd, 0x00101bff, 0x00101bff, + 0x00101bff, 0x00101bff, 0x00101ed2, 0x00101fcc, + 0x00101bff, 0x00101fd3, 0x00101bff, 0x00101bff, + 0x00101bff, 0x00101bff, 0x00101bff, 0x00101fd4, + 0x0010205c, 0x001021fa, 0x00102206, 0x00101bff, + 0x00101bff, 0x00101bff, 0x00101bff, 0x00102219, + 0x00101bff, 0x00101bff, 0x00101bff, 0x00101bff, + 0x00101bff, 0x00101bff, 0x00101bff, 0x00102239, + 0x00102277, 0x001022bb, 0x001022d0, 0x0010ae15, + 0x0010b404, 0x0010230f, 0x00101bff, 0x00101bff, + 0x00101bff, 0x00101bff, 0x00101bff, 0x00101bff, + 0x00101bff, 0x00101bff, 0x00101bff, 0x00101bff, + 0x00101bff, 0x00101bff, 0x00102454, 0x001024b1, + 0x00101bff, 0x00101bff, 0x0010250d, 0x00101bff, + 0x00102587, 0x0010260b, 0x00101bff, 0x00101bff, + 0x00102672, 0x001026fc, 0x00101bff, 0x0010273e, + 0x001028a1, 0x00101bff, 0x001028b0, 0x0010292a, + 0x00101bff, 0x00101bff, 0x00101bff, 0x00101bff, + 0x00102983, 0x0010299d, 0x001029b4, 0x00101bff, + 0x00102a2a, 0x00101bff, 0x00101bff, 0x00102a66, + 0x00101bff, 0x00102a87, 0x00101bff, 0x00101bff, + 0x00102adb, 0x00102c0c, 0x00101bff, 0x00101bff, + 0x00101bff, 0x00101bff, 0x00101bff, 0x00102c4e, + 0x00102ccf, 0x00101bff, 0x48efc857, 0x4031d800, + 0x58ef400a, 0x58ec0002, 0x82000580, 0x00000200, + 0x0500003b, 0x48efc857, 0x4a034207, 0x00004000, + 0x0509f9c6, 0x83a00580, 0x00109490, 0x0500000b, + 0x58ee5809, 0x4d2c0000, 0x0501f850, 0x41a25800, + 0x05f5f9a4, 0x40ee5800, 0x05f5f9a2, 0x5c025800, + 0x492fc857, 0x0001f32c, 0x05026007, 0x59a0001e, + 0x84000542, 0x4803401e, 0x4a01d808, 0x00101bda, + 0x1c01f000, 0x59a00207, 0x82000d80, 0x00004000, + 0x05000005, 0x900001c0, 0x90000551, 0x4803c011, + 0x0501f004, 0x900001c0, 0x90000550, 0x4803c011, + 0x0501f844, 0x59e00017, 0x8c00050a, 0x60000800, + 0x0002088c, 0x8d0c0530, 0x05fa0b7d, 0x0002098c, + 0x6403c017, 0x4203e000, 0x30000001, 0x4203e000, + 0x40000000, 0x40ee5800, 0x05f5f97e, 0x59a0001e, + 0x84000504, 0x4803401e, 0x1c01f000, 0x4803c856, + 0x4a034207, 0x00004001, 0x05fdf7ca, 0x4803c856, + 0x4a034207, 0x00004002, 0x05fdf7c6, 0x4803c856, + 0x4a034207, 0x00004003, 0x05fdf7c2, 0x4803c856, + 0x4a034207, 0x00004005, 0x05fdf7be, 0x4803c856, + 0x4a034207, 0x00004006, 0x05fdf7ba, 0x4803c856, + 0x4a034207, 0x0000400b, 0x05fdf7b6, 0x4803c856, + 0x4a034207, 0x0000400c, 0x05fdf7b2, 0x4803c856, + 0x4a034207, 0x0000400c, 0x05fdf7ae, 0x4a034207, + 0x00004020, 0x05fdf7ab, 0x4c580000, 0x4c500000, + 0x4c540000, 0x58eca809, 0x8054a9c0, 0x05f00dbf, + 0x91a0a407, 0x9054ac07, 0x6034b000, 0x0535fdfe, + 0x5c00a800, 0x5c00a000, 0x5c00b000, 0x1c01f000, + 0x4c580000, 0x4c500000, 0x4c540000, 0x59a00007, + 0x4803c857, 0x59a00008, 0x4803c857, 0x59a00009, + 0x4803c857, 0x91e0ac20, 0x91a0a407, 0x6040b000, + 0x50500000, 0x4400a800, 0x8054a800, 0x900001c0, + 0x4400a800, 0x8054a800, 0x8050a000, 0x8058b040, + 0x05fe07f8, 0x5c00a800, 0x5c00a000, 0x5c00b000, + 0x1c01f000, 0x59a00407, 0x800000c2, 0x59a00a08, + 0x900409c0, 0x80040540, 0x84000540, 0x59a00c08, + 0x8c040500, 0x0500000b, 0x4c000000, 0x0535fe28, + 0x5c000000, 0x05000004, 0x48030004, 0x64030000, + 0x05fdf771, 0x64030000, 0x64134407, 0x05fc07b0, + 0x4803880e, 0x05fdf76c, 0x59a00407, 0x800000c2, + 0x59a00c08, 0x8c040500, 0x0500000d, 0x4c000000, + 0x0535fe17, 0x5c000000, 0x05000006, 0x48030004, + 0x59800805, 0x48074407, 0x64030000, 0x05fdf75e, + 0x64030000, 0x64134407, 0x05fc079d, 0x4803880e, + 0x59c4080f, 0x48074407, 0x05fdf757, 0x59a01c07, + 0x59a00208, 0x900c19c0, 0x800c1d40, 0x580c0803, + 0x80000580, 0x500c1000, 0x80080400, 0x800c1800, + 0x80040840, 0x05fe07fc, 0x48034407, 0x900001c0, + 0x48034208, 0x800001c0, 0x05fc0747, 0x05fdf784, + 0x64174407, 0x64174208, 0x64034408, 0x59a8000a, + 0x82000c80, 0x00140000, 0x05021004, 0x42000000, + 0x0013ffff, 0x0501f006, 0x59a80883, 0x8c040500, + 0x05000003, 0x82000400, 0x00006000, 0x48034209, + 0x900001c0, 0x48034409, 0x60000101, 0x4803420a, + 0x900001c0, 0x4803440e, 0x6403400f, 0x05fdf72e, + 0x59a00408, 0x59a01208, 0x900811c0, 0x80081540, + 0x59a0040a, 0x59a01a0a, 0x900c19c0, 0x800c1d40, + 0x59a00a09, 0x59a00409, 0x900409c0, 0x80040d40, + 0x59a0020b, 0x90002490, 0x05fc1765, 0x59a02407, + 0x900001c0, 0x80100540, 0x59a8280a, 0x80142480, + 0x050a10f0, 0x42002800, 0x7fefffff, 0x80142480, + 0x05fe175b, 0x42002800, 0x7ffd0000, 0x80142480, + 0x05fc1757, 0x0509f0e7, 0x59a00408, 0x59a01208, + 0x900811c0, 0x80081540, 0x59a0040a, 0x59a01a0a, + 0x900c19c0, 0x800c1d40, 0x59a00a09, 0x59a00409, + 0x900409c0, 0x80040d40, 0x59a0020b, 0x90002490, + 0x05fc1747, 0x59a02407, 0x900001c0, 0x80100540, + 0x59a8280a, 0x80142480, 0x050a10d8, 0x42002800, + 0x7fefffff, 0x80142480, 0x05fe173d, 0x42002800, + 0x7ffd0000, 0x80142480, 0x05fc1739, 0x0509f0cf, + 0x59a02408, 0x59a00208, 0x901021c0, 0x80102540, 0x59a01a0b, 0x59a00407, 0x900c19c0, 0x800c1d40, 0x41781000, 0x820c0580, 0x00007c00, 0x0500000a, 0x820c0480, 0x00007a00, 0x05001007, 0x820c0480, - 0x00007cff, 0x05021004, 0x0535fcb3, 0x0500000e, - 0x80081000, 0x500c0000, 0x82000d00, 0x0000ffff, - 0x48074208, 0x82000d00, 0xffff0000, 0x900409c0, - 0x48074408, 0x800811c0, 0x05fc06bd, 0x64030000, - 0x05fdf6bb, 0x64030000, 0x64134407, 0x05fdf6fa, - 0x4d2c0000, 0x4d340000, 0x4d300000, 0x4d440000, - 0x59a28c07, 0x0001fac4, 0x05000006, 0x5c028800, - 0x5c026000, 0x5c026800, 0x5c025800, 0x05fdf6f2, - 0x4937c857, 0x59a04408, 0x59a00208, 0x900001c0, - 0x80204540, 0x4823c857, 0x0501f877, 0x05000008, - 0x64074209, 0x4a034407, 0x0000ffff, 0x4a034208, - 0x0000ffff, 0x497b4408, 0x0501f03d, 0x497b4407, - 0x0501f879, 0x0500003f, 0x59300402, 0x48034407, - 0x59300202, 0x48034208, 0x59300006, 0x48034408, - 0x59a0020c, 0x8c000500, 0x05000030, 0x4933c857, - 0x050dff10, 0x05000003, 0x64274407, 0x0501f031, - 0x8d0c050e, 0x05000003, 0x64074407, 0x0501f02d, - 0x916c0583, 0x05000003, 0x641f4407, 0x0501f029, - 0x59340200, 0x8c00050e, 0x05000003, 0x64834407, - 0x0501f024, 0x59300407, 0x90000d83, 0x05020007, - 0x59300804, 0x9004051f, 0x90000584, 0x05020003, - 0x8c04053e, 0x05020015, 0x0509f82a, 0x05020003, - 0x640b4407, 0x0501f017, 0x492fc857, 0x4a025c05, - 0x00008000, 0x497a5a05, 0x497a5806, 0x052dfb29, - 0x05020003, 0x640f4407, 0x0501f00e, 0x4a01d808, - 0x00101d71, 0x5c028800, 0x5c026000, 0x5c026800, - 0x5c025800, 0x1c01f000, 0x640b4209, 0x5c028800, - 0x5c026000, 0x5c026800, 0x5c025800, 0x05fdf65c, + 0x00007cff, 0x05021004, 0x0535fd91, 0x05000007, + 0x80081000, 0x44101800, 0x800811c0, 0x05fc06da, + 0x64030000, 0x05fdf6d8, 0x64030000, 0x64134407, + 0x05fdf717, 0x59a01a0b, 0x59a00407, 0x900c19c0, + 0x800c1d40, 0x41781000, 0x820c0580, 0x00007c00, + 0x0500000a, 0x820c0480, 0x00007a00, 0x05001007, + 0x820c0480, 0x00007cff, 0x05021004, 0x0535fd78, + 0x0500000e, 0x80081000, 0x500c0000, 0x82000d00, + 0x0000ffff, 0x48074208, 0x82000d00, 0xffff0000, + 0x900409c0, 0x48074408, 0x800811c0, 0x05fc06ba, + 0x64030000, 0x05fdf6b8, 0x64030000, 0x64134407, + 0x05fdf6f7, 0x4d2c0000, 0x4d340000, 0x4d300000, + 0x4d440000, 0x59a28c07, 0x0001fac4, 0x05000006, 0x5c028800, 0x5c026000, 0x5c026800, 0x5c025800, - 0x05fdf699, 0x492fc857, 0x4933c857, 0x497a6020, - 0x592c0006, 0x82000580, 0x01000000, 0x05020003, - 0x64134407, 0x05fdf690, 0x4d2c0000, 0x912e5c07, - 0x592c0000, 0x82000580, 0x02000000, 0x05020011, - 0x4803c856, 0x64134209, 0x592c0804, 0x82040500, - 0x0000ffff, 0x48034409, 0x80040920, 0x4807420a, - 0x592c0805, 0x82040500, 0x0000ffff, 0x4803440a, - 0x80040920, 0x4807420b, 0x5c025800, 0x05fdf638, - 0x4803c856, 0x64174209, 0x592c0801, 0x82040500, - 0x0000ffff, 0x48034409, 0x80040920, 0x4807420a, - 0x05fdf7f6, 0x4937c857, 0x4823c857, 0x5934000f, - 0x80001d40, 0x05000005, 0x580c0006, 0x80200580, - 0x05020003, 0x81780000, 0x1c01f000, 0x580c0000, - 0x05fdf7f8, 0x4823c857, 0x4d2c0000, 0x42026000, - 0x0010cca4, 0x59300407, 0x90000d83, 0x05000003, - 0x90000d86, 0x05020007, 0x59325809, 0x812e59c0, - 0x05000004, 0x592c0006, 0x80200580, 0x05000009, - 0x91326424, 0x59a8000b, 0x81300480, 0x05fc17f2, - 0x417a6000, 0x80000580, 0x5c025800, 0x1c01f000, - 0x90000541, 0x5c025800, 0x1c01f000, 0x83a00580, - 0x00109410, 0x05fe063c, 0x64030000, 0x4a034207, - 0x00004000, 0x4a03c011, 0x40000010, 0x05fdfe67, - 0x59e00017, 0x8c00050a, 0x60000800, 0x0002088c, - 0x8d0c0530, 0x05fa09a4, 0x0002098c, 0x6403c017, - 0x4203e000, 0x30000001, 0x4203e000, 0x40000000, - 0x4203e000, 0xb0100000, 0x41fc0000, 0x8c00050a, - 0x05fc07fc, 0x0535fbd8, 0x05fc07ff, 0x59800802, - 0x8c040520, 0x05020003, 0x64030000, 0x05fdf7f5, - 0x60101020, 0x50080000, 0x8400054c, 0x44001000, - 0x64030000, 0x0501f000, 0x59a00c07, 0x800409c0, - 0x05000005, 0x916c0580, 0x05000003, 0x646b4407, - 0x05fdf61d, 0x42007000, 0x00109471, 0x58381c01, - 0x58382201, 0x58383202, 0x8c040500, 0x0500000b, - 0x59a01208, 0x82080500, 0x0000f003, 0x05fe0616, - 0x82080480, 0x00000841, 0x05fe1613, 0x82080480, - 0x00000100, 0x05fc1610, 0x40040000, 0x800c0540, - 0x90000528, 0x900005a8, 0x05fc060b, 0x8c04050a, - 0x05000006, 0x59a03c08, 0x901c0486, 0x05fe1606, - 0x901c0481, 0x05fc1604, 0x8c040506, 0x05000003, - 0x4a01a8e4, 0x0000c000, 0x8c040504, 0x05000004, - 0x59e00002, 0x8400056e, 0x4803c002, 0x8c040502, - 0x05000004, 0x600028ec, 0x4a002805, 0xd0000000, - 0x40040000, 0x800c0540, 0x48007401, 0x8c040500, - 0x05000002, 0x48087201, 0x8c04050a, 0x0500001a, - 0x481c7202, 0x4c0c0000, 0x4c100000, 0x4c180000, - 0x0519fb0f, 0x4df00000, 0x58383a02, 0x481fc857, - 0x41780000, 0x801c3840, 0x800010c8, 0x82081400, - 0x0000b037, 0x64001002, 0x801c1c80, 0x05021002, - 0x64081002, 0x80000000, 0x90001c85, 0x05fc17f7, - 0x5c03e000, 0x05180aea, 0x5c003000, 0x5c002000, - 0x5c001800, 0x480f4407, 0x48134208, 0x481b4408, - 0x05fdf58b, 0x4d440000, 0x4d340000, 0x59a28c07, - 0x0001fac4, 0x05020007, 0x050dfe06, 0x05000008, - 0x64274407, 0x5c026800, 0x5c028800, 0x05fdf5c2, - 0x5c026800, 0x5c028800, 0x05fdf5c3, 0x59a01208, - 0x59a01c08, 0x5934400a, 0x82203d00, 0x0000e000, - 0x801c391a, 0x8c080500, 0x0500001a, 0x900c0d07, - 0x90040580, 0x0500000b, 0x90040581, 0x05000009, - 0x90040583, 0x05000007, 0x90040584, 0x05000005, - 0x90040593, 0x05000003, 0x4937c857, 0x60100800, - 0x82204500, 0xffff1fff, 0x800400da, 0x80200540, - 0x4802680a, 0x4c080000, 0x4c1c0000, 0x0519facc, - 0x0511f82b, 0x0519fab6, 0x5c003800, 0x5c001000, - 0x481f4408, 0x5934400a, 0x82203d00, 0x0f000000, - 0x801c3930, 0x8c080504, 0x05020011, 0x8c080502, - 0x0500000b, 0x4823c857, 0x82204500, 0xf0ffffff, - 0x59a01a09, 0x900c0d0f, 0x800400f0, 0x8400056e, - 0x80200540, 0x4802680a, 0x4803c857, 0x481f4209, - 0x5c026800, 0x5c028800, 0x05fdf545, 0x82204500, - 0xf07fffff, 0x4822680a, 0x05fdf7f9, 0x8d0c050e, - 0x05000003, 0x64074407, 0x05fdf57f, 0x916c0583, - 0x0502000f, 0x59a8000f, 0x497b4407, 0x0511fa4f, - 0x0500000e, 0x82000d00, 0x00ffff00, 0x0502000b, - 0x82000c00, 0x00101a21, 0x50040800, 0x80040910, - 0x82041580, 0x00000080, 0x05020003, 0x641f4407, - 0x05fdf56d, 0x48074407, 0x82000d00, 0x0000ffff, - 0x48074208, 0x80000120, 0x48034408, 0x59a8021b, - 0x82001500, 0x00002100, 0x480b440a, 0x8c000502, - 0x05000016, 0x8c000506, 0x05000006, 0x90000d0a, - 0x90040d8a, 0x05020003, 0x6407420a, 0x0501f018, - 0x8c00050a, 0x05000006, 0x90000d22, 0x90040da2, - 0x05020003, 0x640f420a, 0x0501f011, 0x8c000508, - 0x05000006, 0x90000d12, 0x90040d92, 0x05020003, - 0x640b420a, 0x0501f00a, 0x0511fa20, 0x05020003, - 0x6413420a, 0x05fdf506, 0x8c000506, 0x05000003, - 0x64174407, 0x05fdf544, 0x6403420a, 0x05fdf500, - 0x59a8002a, 0x48034408, 0x59a8002b, 0x4803420a, - 0x05fdf4fb, 0x42007800, 0x00109885, 0x59a00407, - 0x4803c857, 0x90000c8a, 0x05fe153b, 0x0c01f001, - 0x00101f46, 0x00101ee6, 0x00101ef3, 0x00101f03, - 0x00101f22, 0x00101f47, 0x00101edf, 0x00101edf, - 0x00101f53, 0x00101f8e, 0x00101ee0, 0x05fdf52e, - 0x59a00208, 0x48007c01, 0x59a00408, 0x48007a01, - 0x05f1fbb5, 0x0501f061, 0x916c0580, 0x05fc0522, - 0x59a00a08, 0x59a00408, 0x900001c0, 0x80040d40, - 0x4807c857, 0x59a00a09, 0x59a00409, 0x900001c0, - 0x80040d40, 0x4807c857, 0x0501f054, 0x916c0580, - 0x05fc0515, 0x59a00408, 0x59a01208, 0x900001c0, - 0x80081540, 0x59a00409, 0x59a01a09, 0x900001c0, - 0x800c1d40, 0x42000000, 0x00109c5b, 0x480fc857, - 0x480bc857, 0x60000820, 0x0505f6a0, 0x59a00a08, - 0x59a00408, 0x900001c0, 0x80041d40, 0x820c0c80, - 0x00108a8f, 0x05fe1504, 0x820c0c80, 0x00100000, - 0x05fc1501, 0x480fc857, 0x903c7c22, 0x503c0800, - 0x800409c0, 0x05000005, 0x903c05a6, 0x05fc04fa, - 0x803c7800, 0x05fdf7fa, 0x59e41001, 0x82080d00, - 0xfffeffcf, 0x4807c801, 0x440c7800, 0x46001800, - 0x0201f800, 0x800c1800, 0x46001800, 0x001001d7, - 0x480bc801, 0x0501f025, 0x59a01a08, 0x59a00408, - 0x900001c0, 0x800c1d40, 0x480c7803, 0x59a02209, - 0x59a00409, 0x900001c0, 0x80102540, 0x48107804, - 0x59a0020a, 0x40001000, 0x48007807, 0x80000040, - 0x05fc14dd, 0x48007808, 0x60000880, 0x0519f831, - 0x80000540, 0x05000002, 0x05fdf4d7, 0x40040000, - 0x800c1c00, 0x05fc14d4, 0x4800780a, 0x480c7805, - 0x48107806, 0x4978780c, 0x59a0040a, 0x800000c4, - 0x4800780b, 0x59e40001, 0x4803c857, 0x82000540, - 0x00040000, 0x4803c801, 0x05fdf481, 0x49787803, - 0x49787804, 0x49787808, 0x49787807, 0x49787803, - 0x49787805, 0x49787806, 0x4978780c, 0x4978780b, - 0x59e40001, 0x84000524, 0x05fdf7f3, 0x4978781f, - 0x49787814, 0x49787815, 0x4978781d, 0x49787817, - 0x49787818, 0x59a01a08, 0x59a00408, 0x900001c0, - 0x800c1d40, 0x480c780e, 0x480c7819, 0x480c781b, + 0x05fdf6ef, 0x4937c857, 0x59a04408, 0x59a00208, + 0x900001c0, 0x80204540, 0x4823c857, 0x0501f877, + 0x05000008, 0x64074209, 0x4a034407, 0x0000ffff, + 0x4a034208, 0x0000ffff, 0x497b4408, 0x0501f03d, + 0x497b4407, 0x0501f879, 0x0500003f, 0x59300402, + 0x48034407, 0x59300202, 0x48034208, 0x59300006, + 0x48034408, 0x59a0020c, 0x8c000500, 0x05000030, + 0x4933c857, 0x050dff20, 0x05000003, 0x64274407, + 0x0501f031, 0x8d0c050e, 0x05000003, 0x64074407, + 0x0501f02d, 0x916c0583, 0x05000003, 0x641f4407, + 0x0501f029, 0x59340200, 0x8c00050e, 0x05000003, + 0x64834407, 0x0501f024, 0x59300407, 0x90000d83, + 0x05020007, 0x59300804, 0x9004051f, 0x90000584, + 0x05020003, 0x8c04053e, 0x05020015, 0x0509f829, + 0x05020003, 0x640b4407, 0x0501f017, 0x492fc857, + 0x4a025c05, 0x00008000, 0x497a5a05, 0x497a5806, + 0x052dfbba, 0x05020003, 0x640f4407, 0x0501f00e, + 0x4a01d808, 0x00101d76, 0x5c028800, 0x5c026000, + 0x5c026800, 0x5c025800, 0x1c01f000, 0x640b4209, + 0x5c028800, 0x5c026000, 0x5c026800, 0x5c025800, + 0x05fdf659, 0x5c028800, 0x5c026000, 0x5c026800, + 0x5c025800, 0x05fdf696, 0x492fc857, 0x4933c857, + 0x497a6020, 0x592c0006, 0x82000580, 0x01000000, + 0x05020003, 0x64134407, 0x05fdf68d, 0x4d2c0000, + 0x912e5c07, 0x592c0000, 0x82000580, 0x02000000, + 0x05020011, 0x4803c856, 0x64134209, 0x592c0804, + 0x82040500, 0x0000ffff, 0x48034409, 0x80040920, + 0x4807420a, 0x592c0805, 0x82040500, 0x0000ffff, + 0x4803440a, 0x80040920, 0x4807420b, 0x5c025800, + 0x05fdf635, 0x4803c856, 0x64174209, 0x592c0801, + 0x82040500, 0x0000ffff, 0x48034409, 0x80040920, + 0x4807420a, 0x05fdf7f6, 0x4937c857, 0x4823c857, + 0x5934000f, 0x80001d40, 0x05000005, 0x580c0006, + 0x80200580, 0x05020003, 0x81780000, 0x1c01f000, + 0x580c0000, 0x05fdf7f8, 0x4823c857, 0x4d2c0000, + 0x42026000, 0x0010ccb4, 0x59300407, 0x90000d83, + 0x05000003, 0x90000d86, 0x05020007, 0x59325809, + 0x812e59c0, 0x05000004, 0x592c0006, 0x80200580, + 0x05000009, 0x91326424, 0x59a8000b, 0x81300480, + 0x05fc17f2, 0x417a6000, 0x80000580, 0x5c025800, + 0x1c01f000, 0x90000541, 0x5c025800, 0x1c01f000, + 0x83a00580, 0x00109490, 0x05fe0639, 0x64030000, + 0x4a034207, 0x00004000, 0x4a03c011, 0x40000010, + 0x05fdfe64, 0x59e00017, 0x8c00050a, 0x60000800, + 0x0002088c, 0x8d0c0530, 0x05fa099d, 0x0002098c, + 0x6403c017, 0x4203e000, 0x30000001, 0x4203e000, + 0x40000000, 0x4203e000, 0xb0100000, 0x41fc0000, + 0x8c00050a, 0x05fc07fc, 0x0535fc9d, 0x05fc07ff, + 0x59800802, 0x8c040520, 0x05020003, 0x64030000, + 0x05fdf7f5, 0x60101020, 0x50080000, 0x8400054c, + 0x44001000, 0x64030000, 0x0501f000, 0x59a00c07, + 0x800409c0, 0x05000005, 0x916c0580, 0x05000003, + 0x646b4407, 0x05fdf61a, 0x42007000, 0x001094f1, + 0x58381c01, 0x58382201, 0x58383202, 0x8c040500, + 0x0500000b, 0x59a01208, 0x82080500, 0x0000f003, + 0x05fe0613, 0x82080480, 0x00000841, 0x05fe1610, + 0x82080480, 0x00000100, 0x05fc160d, 0x40040000, + 0x800c0540, 0x90000528, 0x900005a8, 0x05fc0608, + 0x8c04050a, 0x05000006, 0x59a03c08, 0x901c0486, + 0x05fe1603, 0x901c0481, 0x05fc1601, 0x8c040506, + 0x05000003, 0x4a01a8e4, 0x0000c000, 0x8c040504, + 0x05000004, 0x59e00002, 0x8400056e, 0x4803c002, + 0x8c040502, 0x05000004, 0x600028ec, 0x4a002805, + 0xd0000000, 0x40040000, 0x800c0540, 0x48007401, + 0x8c040500, 0x05000002, 0x48087201, 0x8c04050a, + 0x0500001a, 0x481c7202, 0x4c0c0000, 0x4c100000, + 0x4c180000, 0x0519fb96, 0x4df00000, 0x58383a02, + 0x481fc857, 0x41780000, 0x801c3840, 0x800010c8, + 0x82081400, 0x0000b037, 0x64001002, 0x801c1c80, + 0x05021002, 0x64081002, 0x80000000, 0x90001c85, + 0x05fc17f7, 0x5c03e000, 0x05180b71, 0x5c003000, + 0x5c002000, 0x5c001800, 0x480f4407, 0x48134208, + 0x481b4408, 0x05fdf588, 0x4d440000, 0x4d340000, + 0x59a28c07, 0x0001fac4, 0x05020007, 0x050dfe16, + 0x05000008, 0x64274407, 0x5c026800, 0x5c028800, + 0x05fdf5bf, 0x5c026800, 0x5c028800, 0x05fdf5c0, + 0x59a01208, 0x59a01c08, 0x5934400a, 0x82203d00, + 0x0000e000, 0x801c391a, 0x8c080500, 0x0500001a, + 0x900c0d07, 0x90040580, 0x0500000b, 0x90040581, + 0x05000009, 0x90040583, 0x05000007, 0x90040584, + 0x05000005, 0x90040593, 0x05000003, 0x4937c857, + 0x60100800, 0x82204500, 0xffff1fff, 0x800400da, + 0x80200540, 0x4802680a, 0x4c080000, 0x4c1c0000, + 0x0519fb53, 0x0511f83e, 0x0519fb3d, 0x5c003800, + 0x5c001000, 0x481f4408, 0x5934400a, 0x82203d00, + 0x0f000000, 0x801c3930, 0x8c080504, 0x05020011, + 0x8c080502, 0x0500000b, 0x4823c857, 0x82204500, + 0xf0ffffff, 0x59a01a09, 0x900c0d0f, 0x800400f0, + 0x8400056e, 0x80200540, 0x4802680a, 0x4803c857, + 0x481f4209, 0x5c026800, 0x5c028800, 0x05fdf542, + 0x82204500, 0xf07fffff, 0x4822680a, 0x05fdf7f9, + 0x8d0c050e, 0x05000003, 0x64074407, 0x05fdf57c, + 0x916c0583, 0x0502000f, 0x59a8000f, 0x497b4407, + 0x0511fa80, 0x0500000e, 0x82000d00, 0x00ffff00, + 0x0502000b, 0x82000c00, 0x00101a23, 0x50040800, + 0x80040910, 0x82041580, 0x00000080, 0x05020003, + 0x641f4407, 0x05fdf56a, 0x48074407, 0x82000d00, + 0x0000ffff, 0x48074208, 0x80000120, 0x48034408, + 0x59a8021b, 0x82001500, 0x00002100, 0x480b440a, + 0x8c000502, 0x05000016, 0x8c000506, 0x05000006, + 0x90000d0a, 0x90040d8a, 0x05020003, 0x6407420a, + 0x0501f018, 0x8c00050a, 0x05000006, 0x90000d22, + 0x90040da2, 0x05020003, 0x640f420a, 0x0501f011, + 0x8c000508, 0x05000006, 0x90000d12, 0x90040d92, + 0x05020003, 0x640b420a, 0x0501f00a, 0x0511fa51, + 0x05020003, 0x6413420a, 0x05fdf503, 0x8c000506, + 0x05000003, 0x64174407, 0x05fdf541, 0x6403420a, + 0x05fdf4fd, 0x59a8002a, 0x48034408, 0x59a8002b, + 0x4803420a, 0x05fdf4f8, 0x42007800, 0x00109905, + 0x59a00407, 0x4803c857, 0x90000c8a, 0x05fe1538, + 0x0c01f001, 0x00101f4b, 0x00101eeb, 0x00101ef8, + 0x00101f08, 0x00101f27, 0x00101f4c, 0x00101ee4, + 0x00101ee4, 0x00101f58, 0x00101f93, 0x00101ee5, + 0x05fdf52b, 0x59a00208, 0x48007c01, 0x59a00408, + 0x48007a01, 0x05f1fbb0, 0x0501f061, 0x916c0580, + 0x05fc051f, 0x59a00a08, 0x59a00408, 0x900001c0, + 0x80040d40, 0x4807c857, 0x59a00a09, 0x59a00409, + 0x900001c0, 0x80040d40, 0x4807c857, 0x0501f054, + 0x916c0580, 0x05fc0512, 0x59a00408, 0x59a01208, + 0x900001c0, 0x80081540, 0x59a00409, 0x59a01a09, + 0x900001c0, 0x800c1d40, 0x42000000, 0x00109cdb, + 0x480fc857, 0x480bc857, 0x60000820, 0x0505f69f, + 0x59a00a08, 0x59a00408, 0x900001c0, 0x80041d40, + 0x820c0c80, 0x00108b5c, 0x05fe1501, 0x820c0c80, + 0x00100000, 0x05fc14fe, 0x480fc857, 0x903c7c22, + 0x503c0800, 0x800409c0, 0x05000005, 0x903c05a6, + 0x05fc04f7, 0x803c7800, 0x05fdf7fa, 0x59e41001, + 0x82080d00, 0xfffeffcf, 0x4807c801, 0x440c7800, + 0x46001800, 0x0201f800, 0x800c1800, 0x46001800, + 0x001001d7, 0x480bc801, 0x0501f025, 0x59a01a08, + 0x59a00408, 0x900001c0, 0x800c1d40, 0x480c7803, 0x59a02209, 0x59a00409, 0x900001c0, 0x80102540, - 0x4810780f, 0x4810781a, 0x4810781c, 0x59a0020a, - 0x80000540, 0x05fc04a4, 0x48007813, 0x60000808, - 0x40001000, 0x0515fff7, 0x80000540, 0x05fe049e, - 0x40040000, 0x800c1c00, 0x05fc149b, 0x480c7810, - 0x48107811, 0x4a03420a, 0x00000400, 0x59a0040a, - 0x4800781e, 0x850e1d6a, 0x59a0040b, 0x48007a12, - 0x59a0020c, 0x48007c12, 0x600c0000, 0x05f1faf5, - 0x80102000, 0x4810780d, 0x48134209, 0x901021c0, - 0x48134409, 0x59e40052, 0x4803c857, 0x4a007816, - 0x00000400, 0x903c0416, 0x48034208, 0x900001c0, - 0x48034408, 0x05fdf43a, 0x583c0800, 0x830e1d00, - 0xffcfffff, 0x48ec7820, 0x4a01d802, 0x00000100, - 0x583c0017, 0x82000500, 0x000000ff, 0x05020008, - 0x4807c857, 0x8c040502, 0x05000004, 0x84040d48, - 0x48047800, 0x1c01f000, 0x0501f003, 0x05f5fe6e, - 0x1c01f000, 0x42007800, 0x00109885, 0x583dd820, - 0x58ef400a, 0x40ec6000, 0x583c0000, 0x48efc857, - 0x49a3c857, 0x4803c857, 0x82000500, 0x0000ffc0, - 0x48007800, 0x583c001d, 0x4803c857, 0x583c0819, - 0x4807c857, 0x48074208, 0x900409c0, 0x48074408, - 0x583c081a, 0x48074209, 0x900409c0, 0x48074409, - 0x583c081b, 0x4807420a, 0x900409c0, 0x4807440a, - 0x583c081c, 0x4807420b, 0x900409c0, 0x4807440b, - 0x49787818, 0x583c0017, 0x49787817, 0x82000500, - 0x000000ff, 0x05fe03fb, 0x05fdf401, 0x59a80005, - 0x48034407, 0x59a80006, 0x48034208, 0x59a80007, - 0x48034408, 0x05fdf3fa, 0x05f1fa18, 0x4803c856, - 0x59a0020c, 0x4803c857, 0x8c00051e, 0x05060751, - 0x05f9ffe0, 0x05000003, 0x05f9ffc2, 0x05000003, - 0x648b4407, 0x05fdf430, 0x4a03c013, 0x03800300, - 0x4a03c014, 0x03800380, 0x59a00c07, 0x82040580, - 0x000000a0, 0x05000004, 0x82040580, 0x000000a2, - 0x0502001c, 0x59a0140b, 0x82080480, 0x00000100, - 0x05021018, 0x59a0020c, 0x8c000500, 0x0502001f, - 0x59a00a0b, 0x800409c0, 0x05000012, 0xb0040481, - 0x05021010, 0x0505fd8b, 0x0500000a, 0x59a01008, - 0x900811c0, 0x59a0180a, 0x900c19c0, 0x59a00a0b, - 0x0505fda6, 0x4a01d808, 0x00102003, 0x1c01f000, - 0x640b4407, 0x4a03c014, 0x03800000, 0x05fdf40a, - 0x4a03c014, 0x03800000, 0x05fdf40b, 0x4031d800, - 0x58ef400a, 0x58ee580c, 0x58ec0002, 0x82000580, - 0x00000200, 0x05fc03f8, 0x59a00c07, 0x59a0140b, - 0x59a0020c, 0x8c000500, 0x05020038, 0x912e5c05, - 0x4178c000, 0x59a0ba0b, 0x40600000, 0x812c0400, - 0x5000c800, 0x82641d00, 0x000000ff, 0x4c040000, - 0x4c080000, 0x0501f8b8, 0x5c001000, 0x5c000800, - 0x05000037, 0x805cb840, 0x05000032, 0x80081000, - 0x82641d00, 0x0000ff00, 0x800c1910, 0x4c040000, - 0x4c080000, 0x0501f8ac, 0x5c001000, 0x5c000800, - 0x0500002b, 0x805cb840, 0x05000026, 0x80081000, - 0x82641d00, 0x00ff0000, 0x800c1920, 0x4c040000, - 0x4c080000, 0x0501f8a0, 0x5c001000, 0x5c000800, - 0x0500001f, 0x805cb840, 0x0500001a, 0x80081000, - 0x82641d00, 0xff000000, 0x800c1930, 0x4c040000, - 0x4c080000, 0x0501f894, 0x5c001000, 0x5c000800, - 0x05000013, 0x805cb840, 0x0500000e, 0x80081000, - 0x8060c000, 0x05fdf7cd, 0x59a0020b, 0x82000500, - 0x000000ff, 0x40001800, 0x4c040000, 0x4c080000, - 0x0501f885, 0x5c001000, 0x5c000800, 0x05000004, - 0x4a03c014, 0x03800000, 0x05fdf375, 0x4a03c014, - 0x03800000, 0x64134407, 0x05fdf3b3, 0x4803c856, - 0x59a0020c, 0x4803c857, 0x8c00051e, 0x05060691, - 0x05f9ff58, 0x05000003, 0x05f9ff3a, 0x05000003, - 0x648b4407, 0x05fdf3a8, 0x4a03c013, 0x03800300, - 0x4a03c014, 0x03800380, 0x59a00c07, 0x82040580, - 0x000000a0, 0x05000004, 0x82040580, 0x000000a2, - 0x05020062, 0x59a0140b, 0x82080480, 0x00000100, - 0x0502105e, 0x59a0020c, 0x8c000500, 0x05020050, - 0x59a01a0b, 0x800c19c0, 0x05000058, 0xb00c0481, - 0x05021056, 0x0505fd03, 0x05020006, 0x640b4407, - 0x4a03c014, 0x03800000, 0x4803c857, 0x05fdf38a, - 0x912e5c05, 0x4178c000, 0x59a0ba0b, 0x4803c857, - 0x40600000, 0x812c0400, 0x4000c800, 0x4c040000, - 0x4c080000, 0x0501f879, 0x5c001000, 0x5c000800, - 0x0500003e, 0x4414c800, 0x805cb840, 0x0500002b, - 0x80081000, 0x4c040000, 0x4c080000, 0x0501f86f, - 0x5c001000, 0x5c000800, 0x05000034, 0x50640000, - 0x801428d0, 0x80140540, 0x4400c800, 0x805cb840, - 0x0500001e, 0x80081000, 0x4c040000, 0x4c080000, - 0x0501f862, 0x5c001000, 0x5c000800, 0x05000027, - 0x50640000, 0x801428e0, 0x80140540, 0x4400c800, - 0x805cb840, 0x05000011, 0x80081000, 0x4c040000, - 0x4c080000, 0x0501f855, 0x5c001000, 0x5c000800, - 0x0500001a, 0x50640000, 0x801428f0, 0x80140540, - 0x4400c800, 0x805cb840, 0x05000004, 0x80081000, - 0x8060c000, 0x05fdf7ca, 0x59a00a0b, 0x59a01008, - 0x900811c0, 0x59a0180a, 0x900c19c0, 0x4a03c014, - 0x03800000, 0x412c0000, 0x0505f4de, 0x4803c857, - 0x0501f83e, 0x05000005, 0x48174407, 0x4a03c014, - 0x03800000, 0x05fdf2fe, 0x4a03c014, 0x03800000, - 0x64134407, 0x05fdf33c, 0x4a03c014, 0x03800000, - 0x05fdf33d, 0x4c5c0000, 0x4c600000, 0x4c640000, - 0x4004b800, 0x4008c000, 0x400cc800, 0x0501f86d, - 0x0500000f, 0x0501f89b, 0x05020011, 0x4060b800, - 0x0501f898, 0x0502000e, 0x4064b800, 0x0501f895, - 0x0502000b, 0x0501f883, 0x4ce80000, 0x6021d027, - 0x0515fddf, 0x5c01d000, 0x90000541, 0x5c00c800, - 0x5c00c000, 0x5c00b800, 0x1c01f000, 0x0501f879, - 0x80000580, 0x05fdf7fa, 0x4c5c0000, 0x485fc857, - 0x0501f854, 0x05000008, 0x905cbd41, 0x0501f881, - 0x05020009, 0x0501f8bd, 0x0501f8ef, 0x0501f86d, - 0x90000541, 0x4803c857, 0x4867c857, 0x5c00b800, - 0x1c01f000, 0x0501f867, 0x80000580, 0x4803c857, - 0x485fc857, 0x05fdf7f8, 0x4c5c0000, 0x4c600000, - 0x4c640000, 0x4807c857, 0x480bc857, 0x4004b800, - 0x4008c000, 0x0501f83b, 0x0500000c, 0x0501f869, - 0x0502000f, 0x4c5c0000, 0x4060b800, 0x0501f865, - 0x5c00b800, 0x0502000a, 0x05fdffdc, 0x05000003, - 0x0501f850, 0x90000541, 0x40642800, 0x5c00c800, - 0x5c00c000, 0x5c00b800, 0x1c01f000, 0x0501f849, - 0x80000580, 0x4803c857, 0x4867c857, 0x05fdf7f7, - 0x4ce80000, 0x4c580000, 0x4803c856, 0x6030b000, - 0x6029d000, 0x0515fd9e, 0x4a03c013, 0x02000200, - 0x6029d000, 0x0515fd9a, 0x4a03c013, 0x02000000, - 0x8058b040, 0x05fe07f7, 0x61a00807, 0x4a03c013, - 0x03800300, 0x80040840, 0x0500000f, 0x4a03c014, - 0x03800000, 0x59e00013, 0x4a03c014, 0x03800380, - 0x82000500, 0x00000300, 0x82000580, 0x00000300, - 0x05fe07f3, 0x90000541, 0x5c00b000, 0x5c01d000, - 0x1c01f000, 0x4803c857, 0x80000580, 0x05fdf7fb, - 0x4ce80000, 0x4803c856, 0x61a00807, 0x4a03c013, - 0x03800300, 0x80040840, 0x05000016, 0x4a03c014, - 0x03800000, 0x59e00013, 0x4a03c014, 0x03800380, - 0x82000500, 0x00000300, 0x82000580, 0x00000300, - 0x05fe07f3, 0x6029d000, 0x0515fd6d, 0x4a03c013, - 0x01000000, 0x6029d000, 0x0515fd69, 0x4a03c013, - 0x02000000, 0x90000541, 0x5c01d000, 0x1c01f000, - 0x4803c857, 0x05fdffbf, 0x05fe07f3, 0x05fdf7fb, - 0x4803c856, 0x4a03c013, 0x01000000, 0x4ce80000, - 0x6029d000, 0x0515fd5a, 0x5c01d000, 0x4a03c013, - 0x02000200, 0x4ce80000, 0x6029d000, 0x0515fd54, - 0x5c01d000, 0x4a03c013, 0x01000100, 0x1c01f000, - 0x4c5c0000, 0x4c600000, 0x485fc857, 0x6020c000, - 0x825c0500, 0x00000080, 0x800000c2, 0x82000540, - 0x01000000, 0x4803c013, 0x4ce80000, 0x6029d000, - 0x0515fd43, 0x5c01d000, 0x4a03c013, 0x02000200, - 0x4ce80000, 0x6029d000, 0x0515fd3d, 0x5c01d000, - 0x4a03c013, 0x02000000, 0x805cb8c2, 0x8060c040, - 0x05fe07ec, 0x4a03c013, 0x01000100, 0x4ce80000, - 0x6029d000, 0x0515fd32, 0x5c01d000, 0x4a03c013, - 0x02000200, 0x4ce80000, 0x6029d000, 0x0515fd2c, - 0x5c01d000, 0x4a03c014, 0x03800000, 0x61a00807, - 0x59e0b813, 0x825cbd00, 0x00000100, 0x80040840, - 0x05000004, 0x405c0000, 0x80000540, 0x05fe07f9, - 0x4a03c014, 0x03800380, 0x4a03c013, 0x02000000, - 0x4ce80000, 0x6029d000, 0x0515fd19, 0x5c01d000, - 0x485fc857, 0x405c0000, 0x80000540, 0x5c00c000, - 0x5c00b800, 0x1c01f000, 0x4c600000, 0x4803c856, - 0x4a03c013, 0x01000100, 0x6020c000, 0x61a0c807, - 0x4ce80000, 0x6029d000, 0x0515fd09, 0x5c01d000, - 0x4a03c013, 0x02000200, 0x4a03c014, 0x03800000, - 0x59e00013, 0x4a03c014, 0x03800380, 0x82000500, - 0x00000200, 0x05020003, 0x8064c840, 0x05fe07f7, - 0x4178c800, 0x0501f007, 0x4ce80000, 0x6029d000, - 0x0515fcf7, 0x5c01d000, 0x4a03c013, 0x02000200, - 0x4ce80000, 0x6029d000, 0x0515fcf1, 0x5c01d000, + 0x48107804, 0x59a0020a, 0x40001000, 0x48007807, + 0x80000040, 0x05fc14da, 0x48007808, 0x60000880, + 0x0519f8b8, 0x80000540, 0x05000002, 0x05fdf4d4, + 0x40040000, 0x800c1c00, 0x05fc14d1, 0x4800780a, + 0x480c7805, 0x48107806, 0x4978780c, 0x59a0040a, + 0x800000c4, 0x4800780b, 0x59e40001, 0x4803c857, + 0x82000540, 0x00040000, 0x4803c801, 0x05fdf47e, + 0x49787803, 0x49787804, 0x49787808, 0x49787807, + 0x49787803, 0x49787805, 0x49787806, 0x4978780c, + 0x4978780b, 0x59e40001, 0x84000524, 0x05fdf7f3, + 0x4978781f, 0x49787814, 0x49787815, 0x4978781d, + 0x49787817, 0x49787818, 0x59a01a08, 0x59a00408, + 0x900001c0, 0x800c1d40, 0x480c780e, 0x480c7819, + 0x480c781b, 0x59a02209, 0x59a00409, 0x900001c0, + 0x80102540, 0x4810780f, 0x4810781a, 0x4810781c, + 0x59a0020a, 0x80000540, 0x05fc04a1, 0x48007813, + 0x60000808, 0x40001000, 0x0519f87e, 0x80000540, + 0x05fe049b, 0x40040000, 0x800c1c00, 0x05fc1498, + 0x480c7810, 0x48107811, 0x4a03420a, 0x00000400, + 0x59a0040a, 0x4800781e, 0x850e1d6a, 0x59a0040b, + 0x48007a12, 0x59a0020c, 0x48007c12, 0x600c0000, + 0x05f1faf0, 0x80102000, 0x4810780d, 0x48134209, + 0x901021c0, 0x48134409, 0x59e40052, 0x4803c857, + 0x4a007816, 0x00000400, 0x903c0416, 0x48034208, + 0x900001c0, 0x48034408, 0x05fdf437, 0x583c0800, + 0x830e1d00, 0xffcfffff, 0x48ec7820, 0x4a01d802, + 0x00000100, 0x583c0017, 0x82000500, 0x000000ff, + 0x05020008, 0x4807c857, 0x8c040502, 0x05000004, + 0x84040d48, 0x48047800, 0x1c01f000, 0x0501f003, + 0x05f5fe69, 0x1c01f000, 0x42007800, 0x00109905, + 0x583dd820, 0x58ef400a, 0x40ec6000, 0x583c0000, + 0x48efc857, 0x49a3c857, 0x4803c857, 0x82000500, + 0x0000ffc0, 0x48007800, 0x583c001d, 0x4803c857, + 0x583c0819, 0x4807c857, 0x48074208, 0x900409c0, + 0x48074408, 0x583c081a, 0x48074209, 0x900409c0, + 0x48074409, 0x583c081b, 0x4807420a, 0x900409c0, + 0x4807440a, 0x583c081c, 0x4807420b, 0x900409c0, + 0x4807440b, 0x49787818, 0x583c0017, 0x49787817, + 0x82000500, 0x000000ff, 0x05fe03f8, 0x05fdf3fe, + 0x59a80005, 0x48034407, 0x59a80006, 0x48034208, + 0x59a80007, 0x48034408, 0x05fdf3f7, 0x05f1fa13, + 0x4803c856, 0x59a0020c, 0x4803c857, 0x8c00051e, + 0x05060750, 0x05f9ffd9, 0x05000003, 0x05f9ffbb, + 0x05000003, 0x648b4407, 0x05fdf42d, 0x4a03c013, + 0x03800300, 0x4a03c014, 0x03800380, 0x59a00c07, + 0x82040580, 0x000000a0, 0x05000004, 0x82040580, + 0x000000a2, 0x0502001c, 0x59a0140b, 0x82080480, + 0x00000100, 0x05021018, 0x59a0020c, 0x8c000500, + 0x0502001f, 0x59a00a0b, 0x800409c0, 0x05000012, + 0xb0040481, 0x05021010, 0x0505fd8a, 0x0500000a, + 0x59a01008, 0x900811c0, 0x59a0180a, 0x900c19c0, + 0x59a00a0b, 0x0505fda5, 0x4a01d808, 0x00102008, + 0x1c01f000, 0x640b4407, 0x4a03c014, 0x03800000, + 0x05fdf407, 0x4a03c014, 0x03800000, 0x05fdf408, + 0x4031d800, 0x58ef400a, 0x58ee580c, 0x58ec0002, + 0x82000580, 0x00000200, 0x05fc03f5, 0x59a00c07, + 0x59a0140b, 0x59a0020c, 0x8c000500, 0x05020038, + 0x912e5c05, 0x4178c000, 0x59a0ba0b, 0x40600000, + 0x812c0400, 0x5000c800, 0x82641d00, 0x000000ff, + 0x4c040000, 0x4c080000, 0x0501f8b8, 0x5c001000, + 0x5c000800, 0x05000037, 0x805cb840, 0x05000032, + 0x80081000, 0x82641d00, 0x0000ff00, 0x800c1910, + 0x4c040000, 0x4c080000, 0x0501f8ac, 0x5c001000, + 0x5c000800, 0x0500002b, 0x805cb840, 0x05000026, + 0x80081000, 0x82641d00, 0x00ff0000, 0x800c1920, + 0x4c040000, 0x4c080000, 0x0501f8a0, 0x5c001000, + 0x5c000800, 0x0500001f, 0x805cb840, 0x0500001a, + 0x80081000, 0x82641d00, 0xff000000, 0x800c1930, + 0x4c040000, 0x4c080000, 0x0501f894, 0x5c001000, + 0x5c000800, 0x05000013, 0x805cb840, 0x0500000e, + 0x80081000, 0x8060c000, 0x05fdf7cd, 0x59a0020b, + 0x82000500, 0x000000ff, 0x40001800, 0x4c040000, + 0x4c080000, 0x0501f885, 0x5c001000, 0x5c000800, + 0x05000004, 0x4a03c014, 0x03800000, 0x05fdf372, + 0x4a03c014, 0x03800000, 0x64134407, 0x05fdf3b0, + 0x4803c856, 0x59a0020c, 0x4803c857, 0x8c00051e, + 0x05060690, 0x05f9ff51, 0x05000003, 0x05f9ff33, + 0x05000003, 0x648b4407, 0x05fdf3a5, 0x4a03c013, + 0x03800300, 0x4a03c014, 0x03800380, 0x59a00c07, + 0x82040580, 0x000000a0, 0x05000004, 0x82040580, + 0x000000a2, 0x05020062, 0x59a0140b, 0x82080480, + 0x00000100, 0x0502105e, 0x59a0020c, 0x8c000500, + 0x05020050, 0x59a01a0b, 0x800c19c0, 0x05000058, + 0xb00c0481, 0x05021056, 0x0505fd02, 0x05020006, + 0x640b4407, 0x4a03c014, 0x03800000, 0x4803c857, + 0x05fdf387, 0x912e5c05, 0x4178c000, 0x59a0ba0b, + 0x4803c857, 0x40600000, 0x812c0400, 0x4000c800, + 0x4c040000, 0x4c080000, 0x0501f879, 0x5c001000, + 0x5c000800, 0x0500003e, 0x4414c800, 0x805cb840, + 0x0500002b, 0x80081000, 0x4c040000, 0x4c080000, + 0x0501f86f, 0x5c001000, 0x5c000800, 0x05000034, + 0x50640000, 0x801428d0, 0x80140540, 0x4400c800, + 0x805cb840, 0x0500001e, 0x80081000, 0x4c040000, + 0x4c080000, 0x0501f862, 0x5c001000, 0x5c000800, + 0x05000027, 0x50640000, 0x801428e0, 0x80140540, + 0x4400c800, 0x805cb840, 0x05000011, 0x80081000, + 0x4c040000, 0x4c080000, 0x0501f855, 0x5c001000, + 0x5c000800, 0x0500001a, 0x50640000, 0x801428f0, + 0x80140540, 0x4400c800, 0x805cb840, 0x05000004, + 0x80081000, 0x8060c000, 0x05fdf7ca, 0x59a00a0b, + 0x59a01008, 0x900811c0, 0x59a0180a, 0x900c19c0, + 0x4a03c014, 0x03800000, 0x412c0000, 0x0505f4dd, + 0x4803c857, 0x0501f83e, 0x05000005, 0x48174407, + 0x4a03c014, 0x03800000, 0x05fdf2fb, 0x4a03c014, + 0x03800000, 0x64134407, 0x05fdf339, 0x4a03c014, + 0x03800000, 0x05fdf33a, 0x4c5c0000, 0x4c600000, + 0x4c640000, 0x4004b800, 0x4008c000, 0x400cc800, + 0x0501f86d, 0x0500000f, 0x0501f89b, 0x05020011, + 0x4060b800, 0x0501f898, 0x0502000e, 0x4064b800, + 0x0501f895, 0x0502000b, 0x0501f883, 0x4ce80000, + 0x6021d027, 0x0515fe66, 0x5c01d000, 0x90000541, + 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x1c01f000, + 0x0501f879, 0x80000580, 0x05fdf7fa, 0x4c5c0000, + 0x485fc857, 0x0501f854, 0x05000008, 0x905cbd41, + 0x0501f881, 0x05020009, 0x0501f8bd, 0x0501f8ef, + 0x0501f86d, 0x90000541, 0x4803c857, 0x4867c857, + 0x5c00b800, 0x1c01f000, 0x0501f867, 0x80000580, + 0x4803c857, 0x485fc857, 0x05fdf7f8, 0x4c5c0000, + 0x4c600000, 0x4c640000, 0x4807c857, 0x480bc857, + 0x4004b800, 0x4008c000, 0x0501f83b, 0x0500000c, + 0x0501f869, 0x0502000f, 0x4c5c0000, 0x4060b800, + 0x0501f865, 0x5c00b800, 0x0502000a, 0x05fdffdc, + 0x05000003, 0x0501f850, 0x90000541, 0x40642800, + 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x1c01f000, + 0x0501f849, 0x80000580, 0x4803c857, 0x4867c857, + 0x05fdf7f7, 0x4ce80000, 0x4c580000, 0x4803c856, + 0x6030b000, 0x6029d000, 0x0515fe25, 0x4a03c013, + 0x02000200, 0x6029d000, 0x0515fe21, 0x4a03c013, + 0x02000000, 0x8058b040, 0x05fe07f7, 0x61a00807, + 0x4a03c013, 0x03800300, 0x80040840, 0x0500000f, 0x4a03c014, 0x03800000, 0x59e00013, 0x4a03c014, - 0x03800380, 0x82000500, 0x00000100, 0x80000110, - 0x8064c8c2, 0x8064cd40, 0x4a03c013, 0x02000000, - 0x8060c040, 0x05fe07e9, 0x4867c857, 0x5c00c000, - 0x1c01f000, 0x4803c856, 0x4a03c013, 0x01000100, - 0x4ce80000, 0x6029d000, 0x0515fcd9, 0x5c01d000, + 0x03800380, 0x82000500, 0x00000300, 0x82000580, + 0x00000300, 0x05fe07f3, 0x90000541, 0x5c00b000, + 0x5c01d000, 0x1c01f000, 0x4803c857, 0x80000580, + 0x05fdf7fb, 0x4ce80000, 0x4803c856, 0x61a00807, + 0x4a03c013, 0x03800300, 0x80040840, 0x05000016, + 0x4a03c014, 0x03800000, 0x59e00013, 0x4a03c014, + 0x03800380, 0x82000500, 0x00000300, 0x82000580, + 0x00000300, 0x05fe07f3, 0x6029d000, 0x0515fdf4, + 0x4a03c013, 0x01000000, 0x6029d000, 0x0515fdf0, + 0x4a03c013, 0x02000000, 0x90000541, 0x5c01d000, + 0x1c01f000, 0x4803c857, 0x05fdffbf, 0x05fe07f3, + 0x05fdf7fb, 0x4803c856, 0x4a03c013, 0x01000000, + 0x4ce80000, 0x6029d000, 0x0515fde1, 0x5c01d000, 0x4a03c013, 0x02000200, 0x4ce80000, 0x6029d000, - 0x0515fcd3, 0x5c01d000, 0x4a03c013, 0x02000000, - 0x1c01f000, 0x59a00408, 0x59a8082a, 0x4803502a, - 0x48074408, 0x59a00a0a, 0x90040494, 0x05021002, - 0x6140080f, 0x59a8002b, 0x4807502b, 0x4803420a, - 0x05fdf1c7, 0x59a00407, 0x59a00a08, 0x900409c0, - 0x80040d40, 0x59a00408, 0x59a01209, 0x900811c0, - 0x80081540, 0x59a00409, 0x59a01a0a, 0x900c19c0, - 0x800c1d40, 0x59a0040a, 0x59a0220b, 0x901021c0, - 0x80102540, 0x0531ffcf, 0x05fc01b5, 0x05fdf20a, - 0x916c0580, 0x0500000a, 0x59a80005, 0x59a00c07, - 0x80041580, 0xb0081500, 0x05fc01ad, 0x80080580, - 0x48035005, 0x05f1f9b7, 0x05fdf1a9, 0x59a00407, - 0x59a80805, 0x48035005, 0x80040d80, 0x8c04050c, - 0x05f209b0, 0x59a00208, 0x48035006, 0x59a00408, - 0x8c00051a, 0x05000009, 0x600018ec, 0x60140800, - 0x580c1006, 0x4a001805, 0x70000005, 0x900c1c20, - 0x80040840, 0x05fe07fb, 0x48035007, 0x05fdf194, - 0x8d0c050e, 0x05000003, 0x64074407, 0x05fdf1d2, - 0x050dfea6, 0x05020003, 0x645b4407, 0x05fdf1ce, - 0x916c0583, 0x05000003, 0x641f4407, 0x05fdf1ca, - 0x59a00c07, 0x82040500, 0xffffff00, 0x05fe01ca, - 0x82041580, 0x000000ff, 0x05020007, 0x59a8000f, - 0x82000500, 0x000000ff, 0x82001540, 0x0000ff00, - 0x0501f00f, 0x82040400, 0x00101a21, 0x50000000, - 0x80000110, 0x82000580, 0x00000080, 0x05fc01ba, - 0x59a8000f, 0x82000500, 0x000000ff, 0x80041580, - 0x05fc01b5, 0x840409c0, 0x80041540, 0x051dfbac, - 0x05020003, 0x640f4407, 0x05fdf1ab, 0x48ee6023, - 0x480a621e, 0x4a02641e, 0x0000bc09, 0x64066407, - 0x0505fb18, 0x05020004, 0x0005f8e7, 0x640b4407, - 0x05fdf1a1, 0x497a5a05, 0x497a5806, 0x4a025c05, - 0x00008000, 0x4a01d808, 0x001022b0, 0x492e6009, - 0x60ca7000, 0x0005f105, 0x8d0c050e, 0x05000003, - 0x64074407, 0x05fdf194, 0x050dfe68, 0x05020003, - 0x645b4407, 0x05fdf190, 0x916c0583, 0x05000003, - 0x641f4407, 0x05fdf18c, 0x59a00c07, 0x82040500, - 0xffffff00, 0x05fe018c, 0x82041580, 0x000000ff, - 0x05020007, 0x59a8000f, 0x82000500, 0x000000ff, - 0x82001540, 0x0000ff00, 0x0501f00f, 0x82040400, - 0x00101a21, 0x50000000, 0x80000110, 0x82000580, - 0x00000080, 0x05fc017c, 0x59a8000f, 0x82000500, - 0x000000ff, 0x80041580, 0x05fc0177, 0x840409c0, - 0x80041540, 0x051dfb6e, 0x05020003, 0x640f4407, - 0x05fdf16d, 0x48ee6023, 0x480a621e, 0x4a02641e, - 0x0000bc05, 0x64066407, 0x0505fada, 0x05020004, - 0x0005f8e7, 0x640b4407, 0x05fdf163, 0x497a5a05, - 0x497a5806, 0x4a025c05, 0x00008000, 0x4a01d808, - 0x001022b0, 0x492e6009, 0x60ca7000, 0x0005f105, - 0x592c0006, 0x82000580, 0x01000000, 0x05fe0114, - 0x64134407, 0x05fdf154, 0x497b4407, 0x497b4208, - 0x8d0c0520, 0x05000008, 0x59a8005e, 0x59a8085f, - 0x80040480, 0x59a80860, 0x48074407, 0x80041480, - 0x480b4208, 0x0505fbd1, 0x48034408, 0x59a8100d, - 0x59a80262, 0x80080480, 0x4803420a, 0x495f440a, - 0x59a8001a, 0x4803420c, 0x05fdf0fd, 0x8d0c050e, - 0x05000003, 0x64074407, 0x05fdf13b, 0x59a00407, - 0x8c000500, 0x0502000d, 0x59a80061, 0x81640480, - 0x05001008, 0x59a8000b, 0x81500580, 0x05000007, - 0x59a8005f, 0x59a8105e, 0x80080580, 0x05000003, - 0x64634407, 0x05fdf12c, 0x850e1d58, 0x4803c856, - 0x850e1d46, 0x0505fed1, 0x05fdf0e5, 0x599c0201, - 0x4803507a, 0x41780800, 0x60401076, 0x0515fc99, - 0x480b507b, 0x1c01f000, 0x0501f805, 0x60018800, - 0x05020002, 0x60058800, 0x1c01f000, 0x90000541, - 0x0502500b, 0x4203e000, 0x80000000, 0x40e81000, - 0x41780800, 0x61900000, 0x0515fc8a, 0x5994002e, - 0x80080400, 0x4803282e, 0x80000580, 0x1c01f000, - 0x4d900000, 0x4dd00000, 0x4da40000, 0x4d140000, - 0x4cd80000, 0x417a3000, 0x0519fb09, 0x0515fffe, - 0x5c01b000, 0x5c022800, 0x5c034800, 0x5c03a000, - 0x5c032000, 0x1c01f000, 0x59c80003, 0x82000500, - 0xffffe0ff, 0x48039003, 0x61f00800, 0x05f5fd4a, - 0x4a03902c, 0x00200000, 0x61d0b003, 0x59c8002c, - 0x8c00052c, 0x05000006, 0x8058b040, 0x05fe07fc, - 0x600c0080, 0x41781000, 0x0501f11e, 0x640b5081, - 0x42006000, 0x0010244d, 0x50301000, 0x41784800, - 0x4a03902d, 0x00008000, 0x61d0b003, 0x59c8002c, - 0x8c000534, 0x05000006, 0x8058b040, 0x05fe07fc, - 0x600c0080, 0x41781000, 0x0501f10e, 0x0501f894, + 0x0515fddb, 0x5c01d000, 0x4a03c013, 0x01000100, + 0x1c01f000, 0x4c5c0000, 0x4c600000, 0x485fc857, + 0x6020c000, 0x825c0500, 0x00000080, 0x800000c2, + 0x82000540, 0x01000000, 0x4803c013, 0x4ce80000, + 0x6029d000, 0x0515fdca, 0x5c01d000, 0x4a03c013, + 0x02000200, 0x4ce80000, 0x6029d000, 0x0515fdc4, + 0x5c01d000, 0x4a03c013, 0x02000000, 0x805cb8c2, + 0x8060c040, 0x05fe07ec, 0x4a03c013, 0x01000100, + 0x4ce80000, 0x6029d000, 0x0515fdb9, 0x5c01d000, + 0x4a03c013, 0x02000200, 0x4ce80000, 0x6029d000, + 0x0515fdb3, 0x5c01d000, 0x4a03c014, 0x03800000, + 0x61a00807, 0x59e0b813, 0x825cbd00, 0x00000100, + 0x80040840, 0x05000004, 0x405c0000, 0x80000540, + 0x05fe07f9, 0x4a03c014, 0x03800380, 0x4a03c013, + 0x02000000, 0x4ce80000, 0x6029d000, 0x0515fda0, + 0x5c01d000, 0x485fc857, 0x405c0000, 0x80000540, + 0x5c00c000, 0x5c00b800, 0x1c01f000, 0x4c600000, + 0x4803c856, 0x4a03c013, 0x01000100, 0x6020c000, + 0x61a0c807, 0x4ce80000, 0x6029d000, 0x0515fd90, + 0x5c01d000, 0x4a03c013, 0x02000200, 0x4a03c014, + 0x03800000, 0x59e00013, 0x4a03c014, 0x03800380, + 0x82000500, 0x00000200, 0x05020003, 0x8064c840, + 0x05fe07f7, 0x4178c800, 0x0501f007, 0x4ce80000, + 0x6029d000, 0x0515fd7e, 0x5c01d000, 0x4a03c013, + 0x02000200, 0x4ce80000, 0x6029d000, 0x0515fd78, + 0x5c01d000, 0x4a03c014, 0x03800000, 0x59e00013, + 0x4a03c014, 0x03800380, 0x82000500, 0x00000100, + 0x80000110, 0x8064c8c2, 0x8064cd40, 0x4a03c013, + 0x02000000, 0x8060c040, 0x05fe07e9, 0x4867c857, + 0x5c00c000, 0x1c01f000, 0x4803c856, 0x4a03c013, + 0x01000100, 0x4ce80000, 0x6029d000, 0x0515fd60, + 0x5c01d000, 0x4a03c013, 0x02000200, 0x4ce80000, + 0x6029d000, 0x0515fd5a, 0x5c01d000, 0x4a03c013, + 0x02000000, 0x1c01f000, 0x59a00408, 0x59a8082a, + 0x4803502a, 0x48074408, 0x59a00a0a, 0x90040494, + 0x05021002, 0x6140080f, 0x59a8002b, 0x4807502b, + 0x4803420a, 0x05fdf1c4, 0x59a00407, 0x59a00a08, + 0x900409c0, 0x80040d40, 0x59a00408, 0x59a01209, + 0x900811c0, 0x80081540, 0x59a00409, 0x59a01a0a, + 0x900c19c0, 0x800c1d40, 0x59a0040a, 0x59a0220b, + 0x901021c0, 0x80102540, 0x0535f897, 0x05fc01b2, + 0x05fdf207, 0x916c0580, 0x0500000a, 0x59a80005, + 0x59a00c07, 0x80041580, 0xb0081500, 0x05fc01aa, + 0x80080580, 0x48035005, 0x05f1f9b2, 0x05fdf1a6, + 0x59a00407, 0x59a80805, 0x48035005, 0x80040d80, + 0x8c04050c, 0x05f209ab, 0x59a00208, 0x48035006, + 0x59a00408, 0x8c00051a, 0x05000009, 0x600018ec, + 0x60140800, 0x580c1006, 0x4a001805, 0x70000005, + 0x900c1c20, 0x80040840, 0x05fe07fb, 0x48035007, + 0x05fdf191, 0x8d0c050e, 0x05000003, 0x64074407, + 0x05fdf1cf, 0x050dfed7, 0x05020003, 0x645b4407, + 0x05fdf1cb, 0x916c0583, 0x05000003, 0x641f4407, + 0x05fdf1c7, 0x59a00c07, 0x82040500, 0xffffff00, + 0x05fe01c7, 0x82041580, 0x000000ff, 0x05020007, + 0x59a8000f, 0x82000500, 0x000000ff, 0x82001540, + 0x0000ff00, 0x0501f00f, 0x82040400, 0x00101a23, + 0x50000000, 0x80000110, 0x82000580, 0x00000080, + 0x05fc01b7, 0x59a8000f, 0x82000500, 0x000000ff, + 0x80041580, 0x05fc01b2, 0x840409c0, 0x80041540, + 0x051dfc23, 0x05020003, 0x640f4407, 0x05fdf1a8, + 0x48ee6023, 0x480a621e, 0x4a02641e, 0x0000bc09, + 0x64066407, 0x0505fb17, 0x05020004, 0x0005f8e7, + 0x640b4407, 0x05fdf19e, 0x497a5a05, 0x497a5806, + 0x4a025c05, 0x00008000, 0x4a01d808, 0x001022b5, + 0x492e6009, 0x60ca7000, 0x0005f105, 0x8d0c050e, + 0x05000003, 0x64074407, 0x05fdf191, 0x050dfe99, + 0x05020003, 0x645b4407, 0x05fdf18d, 0x916c0583, + 0x05000003, 0x641f4407, 0x05fdf189, 0x59a00c07, + 0x82040500, 0xffffff00, 0x05fe0189, 0x82041580, + 0x000000ff, 0x05020007, 0x59a8000f, 0x82000500, + 0x000000ff, 0x82001540, 0x0000ff00, 0x0501f00f, + 0x82040400, 0x00101a23, 0x50000000, 0x80000110, + 0x82000580, 0x00000080, 0x05fc0179, 0x59a8000f, + 0x82000500, 0x000000ff, 0x80041580, 0x05fc0174, + 0x840409c0, 0x80041540, 0x051dfbe5, 0x05020003, + 0x640f4407, 0x05fdf16a, 0x48ee6023, 0x480a621e, + 0x4a02641e, 0x0000bc05, 0x64066407, 0x0505fad9, + 0x05020004, 0x0005f8e7, 0x640b4407, 0x05fdf160, + 0x497a5a05, 0x497a5806, 0x4a025c05, 0x00008000, + 0x4a01d808, 0x001022b5, 0x492e6009, 0x60ca7000, + 0x0005f105, 0x592c0006, 0x82000580, 0x01000000, + 0x05fe0111, 0x64134407, 0x05fdf151, 0x497b4407, + 0x497b4208, 0x8d0c0520, 0x05000008, 0x59a8005e, + 0x59a8085f, 0x80040480, 0x59a80860, 0x48074407, + 0x80041480, 0x480b4208, 0x0505fbd0, 0x48034408, + 0x59a8100d, 0x59a80262, 0x80080480, 0x4803420a, + 0x495f440a, 0x59a8001a, 0x4803420c, 0x05fdf0fa, + 0x8d0c050e, 0x05000003, 0x64074407, 0x05fdf138, + 0x59a00407, 0x8c000500, 0x0502000d, 0x59a80061, + 0x81640480, 0x05001008, 0x59a8000b, 0x81500580, + 0x05000007, 0x59a8005f, 0x59a8105e, 0x80080580, + 0x05000003, 0x64634407, 0x05fdf129, 0x850e1d58, + 0x4803c856, 0x850e1d46, 0x0505fed8, 0x05fdf0e2, + 0x599c0201, 0x4803507a, 0x41780800, 0x60401076, + 0x0515fd20, 0x480b507b, 0x1c01f000, 0x0501f805, + 0x60018800, 0x05020002, 0x60058800, 0x1c01f000, + 0x90000541, 0x0502500b, 0x4203e000, 0x80000000, + 0x40e81000, 0x41780800, 0x61900000, 0x0515fd11, + 0x5994002e, 0x80080400, 0x4803282e, 0x80000580, + 0x1c01f000, 0x4d900000, 0x4dd00000, 0x4da40000, + 0x4d140000, 0x4cd80000, 0x417a3000, 0x0519fb90, + 0x0519f885, 0x5c01b000, 0x5c022800, 0x5c034800, + 0x5c03a000, 0x5c032000, 0x1c01f000, 0x59c80003, + 0x82000500, 0xffffe0ff, 0x48039003, 0x61f00800, + 0x05f5fd43, 0x4a03902c, 0x00200000, 0x61d0b003, + 0x59c8002c, 0x8c00052c, 0x05000006, 0x8058b040, + 0x05fe07fc, 0x600c0080, 0x41781000, 0x0501f11e, + 0x640b5081, 0x42006000, 0x00102452, 0x50301000, + 0x41784800, 0x4a03902d, 0x00008000, 0x61d0b003, + 0x59c8002c, 0x8c000534, 0x05000006, 0x8058b040, + 0x05fe07fc, 0x600c0080, 0x41781000, 0x0501f10e, + 0x0501f894, 0x80244800, 0x82240580, 0x000003b1, + 0x05fe07fc, 0x0501f918, 0x41784800, 0x0501f8b8, 0x80244800, 0x82240580, 0x000003b1, 0x05fe07fc, - 0x0501f918, 0x41784800, 0x0501f8b8, 0x80244800, - 0x82240580, 0x000003b1, 0x05fe07fc, 0x80306000, - 0x82300580, 0x0010244f, 0x05fe07e4, 0x59a80880, - 0x800409c0, 0x05000005, 0x60100080, 0x60081000, - 0x59a8187f, 0x0501f0f7, 0x42006000, 0x0010244d, - 0x64435081, 0x50301000, 0x41784800, 0x4a03902d, - 0x00000800, 0x0501f876, 0x80244800, 0x90240598, - 0x05fe07fd, 0x0501f8fb, 0x41784800, 0x0501f89b, - 0x80244800, 0x90240598, 0x05fe07fd, 0x80306000, - 0x82300580, 0x0010244f, 0x05fe07ef, 0x59a80880, - 0x800409c0, 0x05000005, 0x60100080, 0x60401000, - 0x59a8187f, 0x0501f0db, 0x42006000, 0x0010244d, - 0x64235081, 0x50301000, 0x41784800, 0x4a03902d, - 0x00000400, 0x0501f85a, 0x80244800, 0x82240580, - 0x00000088, 0x05fe07fc, 0x0501f8de, 0x41784800, - 0x0501f87e, 0x80244800, 0x82240580, 0x00000088, - 0x05fe07fc, 0x80306000, 0x82300580, 0x0010244f, - 0x05fe07ed, 0x59a80880, 0x800409c0, 0x05000005, - 0x60100080, 0x60201000, 0x59a8187f, 0x0501f0bd, - 0x42006000, 0x0010244d, 0x64835081, 0x50301000, - 0x41784800, 0x4a03902d, 0x00002000, 0x61d0b003, - 0x59c8002c, 0x8c000530, 0x05000006, 0x8058b040, - 0x05fe07fc, 0x600c0080, 0x41781000, 0x0501f0ad, - 0x59c8002c, 0x82000500, 0xffe0ffff, 0x82080d00, - 0x001f0000, 0x80040540, 0x4803902c, 0x0501f82c, - 0x80244800, 0x82240580, 0x00000110, 0x05fe07fc, - 0x0501f8b0, 0x41784800, 0x0501f850, 0x59c80034, - 0x82080d00, 0x001f0000, 0x82000500, 0x001f0000, - 0x80040580, 0x05000006, 0x59a80080, 0x80000000, - 0x48035080, 0x40240000, 0x4803507f, 0x80244800, - 0x82240580, 0x00000110, 0x05fe07f0, 0x80306000, - 0x82300580, 0x0010244f, 0x05fe07d1, 0x59a80880, - 0x800409c0, 0x05000004, 0x60100080, 0x60801000, - 0x59a8187f, 0x59c80803, 0x82040d40, 0x00001f00, - 0x48079003, 0x59c8002c, 0x8400052a, 0x4803902c, - 0x61f00800, 0x05f5fc9c, 0x05fdf009, 0x59c8002c, - 0x82000500, 0xffff0000, 0x82080d00, 0x0000ffff, - 0x80040540, 0x4803902c, 0x480b9028, 0x480b9029, - 0x59a80081, 0x90004584, 0x05000007, 0x90000590, - 0x05020003, 0x80080920, 0x4807903a, 0x480b902a, - 0x480b902b, 0x59c8002d, 0x82000500, 0xfffffc00, - 0x80240540, 0x4803902d, 0x61d0b003, 0x59c8002c, - 0x82000500, 0x18000000, 0x05000006, 0x8058b040, - 0x05fe07fb, 0x600c0080, 0x41781000, 0x0501f059, - 0x6407902e, 0x61d0b003, 0x59c8002e, 0x8c000500, - 0x05000005, 0x8058b040, 0x05fe07fc, 0x600c0080, - 0x0501f050, 0x1c01f000, 0x41783800, 0x59c8002d, - 0x82000500, 0xfffffc00, 0x80240d40, 0x4807902d, - 0x61d0b003, 0x59c8002c, 0x82000500, 0x18000000, - 0x05000006, 0x8058b040, 0x05fe07fb, 0x600c0080, - 0x41781000, 0x0501f03f, 0x59c81830, 0x59c80030, - 0x800c0d80, 0x05fe07fd, 0x80080d80, 0x05000002, - 0x801c3800, 0x59c82031, 0x59c80031, 0x80100d80, + 0x80306000, 0x82300580, 0x00102454, 0x05fe07e4, + 0x59a80880, 0x800409c0, 0x05000005, 0x60100080, + 0x60081000, 0x59a8187f, 0x0501f0f7, 0x42006000, + 0x00102452, 0x64435081, 0x50301000, 0x41784800, + 0x4a03902d, 0x00000800, 0x0501f876, 0x80244800, + 0x90240598, 0x05fe07fd, 0x0501f8fb, 0x41784800, + 0x0501f89b, 0x80244800, 0x90240598, 0x05fe07fd, + 0x80306000, 0x82300580, 0x00102454, 0x05fe07ef, + 0x59a80880, 0x800409c0, 0x05000005, 0x60100080, + 0x60401000, 0x59a8187f, 0x0501f0db, 0x42006000, + 0x00102452, 0x64235081, 0x50301000, 0x41784800, + 0x4a03902d, 0x00000400, 0x0501f85a, 0x80244800, + 0x82240580, 0x00000088, 0x05fe07fc, 0x0501f8de, + 0x41784800, 0x0501f87e, 0x80244800, 0x82240580, + 0x00000088, 0x05fe07fc, 0x80306000, 0x82300580, + 0x00102454, 0x05fe07ed, 0x59a80880, 0x800409c0, + 0x05000005, 0x60100080, 0x60201000, 0x59a8187f, + 0x0501f0bd, 0x42006000, 0x00102452, 0x64835081, + 0x50301000, 0x41784800, 0x4a03902d, 0x00002000, + 0x61d0b003, 0x59c8002c, 0x8c000530, 0x05000006, + 0x8058b040, 0x05fe07fc, 0x600c0080, 0x41781000, + 0x0501f0ad, 0x59c8002c, 0x82000500, 0xffe0ffff, + 0x82080d00, 0x001f0000, 0x80040540, 0x4803902c, + 0x0501f82c, 0x80244800, 0x82240580, 0x00000110, + 0x05fe07fc, 0x0501f8b0, 0x41784800, 0x0501f850, + 0x59c80034, 0x82080d00, 0x001f0000, 0x82000500, + 0x001f0000, 0x80040580, 0x05000006, 0x59a80080, + 0x80000000, 0x48035080, 0x40240000, 0x4803507f, + 0x80244800, 0x82240580, 0x00000110, 0x05fe07f0, + 0x80306000, 0x82300580, 0x00102454, 0x05fe07d1, + 0x59a80880, 0x800409c0, 0x05000004, 0x60100080, + 0x60801000, 0x59a8187f, 0x59c80803, 0x82040d40, + 0x00001f00, 0x48079003, 0x59c8002c, 0x8400052a, + 0x4803902c, 0x61f00800, 0x05f5fc95, 0x05fdf006, + 0x59c8002c, 0x82000500, 0xffff0000, 0x82080d00, + 0x0000ffff, 0x80040540, 0x4803902c, 0x480b9028, + 0x480b9029, 0x59a80081, 0x90004584, 0x05000007, + 0x90000590, 0x05020003, 0x80080920, 0x4807903a, + 0x480b902a, 0x480b902b, 0x59c8002d, 0x82000500, + 0xfffffc00, 0x80240540, 0x4803902d, 0x61d0b003, + 0x59c8002c, 0x82000500, 0x18000000, 0x05000006, + 0x8058b040, 0x05fe07fb, 0x600c0080, 0x41781000, + 0x0501f059, 0x6407902e, 0x61d0b003, 0x59c8002e, + 0x8c000500, 0x05000005, 0x8058b040, 0x05fe07fc, + 0x600c0080, 0x0501f050, 0x1c01f000, 0x41783800, + 0x59c8002d, 0x82000500, 0xfffffc00, 0x80240d40, + 0x4807902d, 0x61d0b003, 0x59c8002c, 0x82000500, + 0x18000000, 0x05000006, 0x8058b040, 0x05fe07fb, + 0x600c0080, 0x41781000, 0x0501f03f, 0x59c81830, + 0x59c80030, 0x800c0d80, 0x05fe07fd, 0x80080d80, + 0x05000002, 0x801c3800, 0x59c82031, 0x59c80031, + 0x80100d80, 0x05fe07fd, 0x80080d80, 0x05000002, + 0x801c3800, 0x59a80081, 0x90004584, 0x0500001e, + 0x61fc41ff, 0x90000590, 0x05020003, 0x42004000, + 0x7f7f7f7f, 0x59c82832, 0x59c80032, 0x80140d80, 0x05fe07fd, 0x80080d80, 0x05000002, 0x801c3800, - 0x59a80081, 0x90004584, 0x0500001e, 0x61fc41ff, - 0x90000590, 0x05020003, 0x42004000, 0x7f7f7f7f, - 0x59c82832, 0x59c80032, 0x80140d80, 0x05fe07fd, - 0x80080d80, 0x05000002, 0x801c3800, 0x59c83033, - 0x59c80033, 0x80180d80, 0x05fe07fd, 0x80080d80, - 0x05000002, 0x801c3800, 0x59c80034, 0x59c80834, - 0x80040d80, 0x05fe07fd, 0x80080d80, 0x40200000, - 0x80040d00, 0x0500000c, 0x801c3800, 0x0501f00a, - 0x59c80034, 0x59c80834, 0x80040d80, 0x05fe07fd, - 0x80080d80, 0x82040d00, 0x000000ff, 0x05000002, - 0x801c3800, 0x801c39c0, 0x05000005, 0x59a80080, - 0x801c0400, 0x48035080, 0x4827507f, 0x1c01f000, - 0x48034207, 0x48074407, 0x480b4208, 0x480f4408, - 0x48134209, 0x48174409, 0x59c80003, 0x82000540, - 0x00001f00, 0x48039003, 0x59c8002c, 0x8400052a, - 0x4803902c, 0x61f00800, 0x05f5fc13, 0x05f9f783, - 0x42000000, 0x00600000, 0x80000040, 0x05fe07ff, - 0x1c01f000, 0x5a5a5a5a, 0xa5a5a5a5, 0x59a00c0b, - 0x800409c0, 0x05f807bc, 0x900404a1, 0x05fa17ba, - 0x90040491, 0x05001002, 0x60400800, 0x59a00209, - 0x59a01408, 0x900811c0, 0x80081540, 0x59a00208, - 0x59a01c07, 0x900c19c0, 0x800c1d40, 0x0505f91d, - 0x05000005, 0x0505f93b, 0x4a01d808, 0x00102467, - 0x1c01f000, 0x640b4407, 0x05f9f7a3, 0x4031d800, - 0x58ef400a, 0x58ec0002, 0x82000580, 0x00000200, - 0x05f80795, 0x59a00c0b, 0x90040491, 0x05001002, - 0x60400800, 0x59a0040c, 0x59a0120c, 0x900811c0, - 0x80081540, 0x59a0020a, 0x59a01c09, 0x900c19c0, - 0x800c1d40, 0x58ec0003, 0x0505f928, 0x4a01d808, - 0x0010247e, 0x1c01f000, 0x4031d800, 0x58ef400a, - 0x58ec0002, 0x82000580, 0x00000200, 0x05f8077e, - 0x59a00c0b, 0x90040491, 0x05f81741, 0x90040c90, + 0x59c83033, 0x59c80033, 0x80180d80, 0x05fe07fd, + 0x80080d80, 0x05000002, 0x801c3800, 0x59c80034, + 0x59c80834, 0x80040d80, 0x05fe07fd, 0x80080d80, + 0x40200000, 0x80040d00, 0x0500000c, 0x801c3800, + 0x0501f00a, 0x59c80034, 0x59c80834, 0x80040d80, + 0x05fe07fd, 0x80080d80, 0x82040d00, 0x000000ff, + 0x05000002, 0x801c3800, 0x801c39c0, 0x05000005, + 0x59a80080, 0x801c0400, 0x48035080, 0x4827507f, + 0x1c01f000, 0x48034207, 0x48074407, 0x480b4208, + 0x480f4408, 0x48134209, 0x48174409, 0x59c80003, + 0x82000540, 0x00001f00, 0x48039003, 0x59c8002c, + 0x8400052a, 0x4803902c, 0x61f00800, 0x05f5fc0c, + 0x05f9f780, 0x42000000, 0x00600000, 0x80000040, + 0x05fe07ff, 0x1c01f000, 0x5a5a5a5a, 0xa5a5a5a5, + 0x59a00c0b, 0x800409c0, 0x05f807b9, 0x900404a1, + 0x05fa17b7, 0x90040491, 0x05001002, 0x60400800, 0x59a00209, 0x59a01408, 0x900811c0, 0x80081540, 0x59a00208, 0x59a01c07, 0x900c19c0, 0x800c1d40, - 0xb0081400, 0x58ec0003, 0x0505f90a, 0x4a01d808, - 0x00102496, 0x1c01f000, 0x4031d800, 0x58ef400a, - 0x58ec0002, 0x82000580, 0x00000200, 0x05f80766, - 0x59a0040b, 0x90000c90, 0x59a0040c, 0x59a0120c, + 0x0505f91c, 0x05000005, 0x0505f93a, 0x4a01d808, + 0x0010246c, 0x1c01f000, 0x640b4407, 0x05f9f7a0, + 0x4031d800, 0x58ef400a, 0x58ec0002, 0x82000580, + 0x00000200, 0x05f80792, 0x59a00c0b, 0x90040491, + 0x05001002, 0x60400800, 0x59a0040c, 0x59a0120c, 0x900811c0, 0x80081540, 0x59a0020a, 0x59a01c09, - 0x900c19c0, 0x800c1d40, 0xb0081400, 0x58ec0003, - 0x0505f8fa, 0x4a01d808, 0x00101bc0, 0x1c01f000, - 0x48efc857, 0x59a00208, 0x59a01408, 0x900001c0, - 0x80081540, 0x59a0020a, 0x59a01c0a, 0x900001c0, - 0x800c1d40, 0x59a00407, 0x48034000, 0x480b4001, - 0x480f4002, 0x0505f8c3, 0x05020003, 0x640b4407, - 0x05f9f74d, 0x60400800, 0x0505f8de, 0x4a01d808, - 0x001024c2, 0x1c01f000, 0x4031d800, 0x58ef400a, - 0x58ee580c, 0x58ec0002, 0x82000580, 0x00000200, - 0x05f80739, 0x48efc857, 0x49a3c857, 0x492fc857, - 0x592c0a05, 0x80040910, 0x05020003, 0x64674407, - 0x05f9f739, 0x4805d80b, 0x0501f009, 0x4031d800, + 0x900c19c0, 0x800c1d40, 0x58ec0003, 0x0505f927, + 0x4a01d808, 0x00102483, 0x1c01f000, 0x4031d800, 0x58ef400a, 0x58ec0002, 0x82000580, 0x00000200, - 0x05f80729, 0x48efc857, 0x49a3c857, 0x48efc857, - 0x49a3c857, 0x58ec000b, 0x80000040, 0x0500000d, - 0x4801d80b, 0x0505f89b, 0x05020003, 0x640b4407, - 0x05f9f725, 0x60400800, 0x58ec1006, 0x58ec1807, - 0x0505f8b4, 0x4a01d808, 0x001024d3, 0x1c01f000, - 0x58ee580c, 0x48efc857, 0x49a3c857, 0x492fc857, - 0x492f3004, 0x592c0405, 0x8400055e, 0x48025c05, - 0x4a01d808, 0x001024f7, 0x1c01f000, 0x4d2c0000, - 0x58ee580c, 0x48efc857, 0x49a3c857, 0x492fc857, - 0x592c0405, 0x8400051e, 0x48025c05, 0x59a00000, - 0x59a01001, 0x59a01802, 0x80081400, 0x900c1c40, - 0x912c0405, 0x60400800, 0x5c025800, 0x0505f09b, - 0x8d0c050e, 0x05000003, 0x64074407, 0x05f9f6fe, - 0x916c0583, 0x05000003, 0x641f4407, 0x05f9f6fa, - 0x59a0320c, 0x82183500, 0x000000ff, 0x59a28c07, - 0x0001fac4, 0x05fa06f8, 0x83440580, 0x000007fd, - 0x05000005, 0x0509ff1e, 0x05000003, 0x64274407, - 0x05f9f6ed, 0x0505f85f, 0x05020003, 0x640b4407, - 0x05f9f6e9, 0x801831c0, 0x05000007, 0x412c0800, - 0x0505f858, 0x05020003, 0x640b4407, 0x05f9f6e2, - 0x40065800, 0x4a025c05, 0x00008000, 0x497a5a05, - 0x0525fc68, 0x05020003, 0x640f4407, 0x05f9f6da, - 0x4a01d808, 0x00102533, 0x1c01f000, 0x592c0006, - 0x82000580, 0x01000000, 0x05020003, 0x64134407, - 0x05f9f6d1, 0x592c0407, 0x82002d00, 0x0000ff00, - 0x82000500, 0x000000ff, 0x80000904, 0x80040800, - 0x90040486, 0x05001002, 0x60140800, 0x4c500000, - 0x4c540000, 0x4c580000, 0x912ca407, 0x4050a800, - 0x4004b000, 0x0531fc51, 0x59a00408, 0x59a01208, - 0x900811c0, 0x80081540, 0x59a0040a, 0x59a01a0a, - 0x900c19c0, 0x800c1d40, 0x912c0407, 0x4c140000, - 0x0505f84e, 0x5c002800, 0x801429c0, 0x05000003, - 0x4a01d808, 0x0010255e, 0x5c00b000, 0x5c00a800, - 0x5c00a000, 0x1c01f000, 0x4031d800, 0x58ef400a, - 0x58ee580c, 0x58ec0002, 0x82000580, 0x00000200, - 0x05f8069d, 0x812e59c0, 0x05ec0c80, 0x592c0007, - 0x82000500, 0xff000000, 0x80000904, 0x800409c0, - 0x05f8065b, 0x4807c857, 0x9004048e, 0x05001002, - 0x60340800, 0x592e5801, 0x812e59c0, 0x05ec0c73, - 0x4c500000, 0x4c540000, 0x4c580000, 0x912ca406, - 0x4050a800, 0x4004b000, 0x0531fc20, 0x5c00b000, - 0x5c00a800, 0x5c00a000, 0x58ec1006, 0x58ec1807, - 0x912c0406, 0x0505f021, 0x0501fffa, 0x05020003, - 0x640b4407, 0x05f9f684, 0x59a00c07, 0x82040500, - 0x0000ff00, 0x840001c0, 0x90001487, 0x05fa1682, - 0x0c01f001, 0x00102594, 0x0010259a, 0x001025a0, - 0x001025a0, 0x001025a0, 0x001025a1, 0x001025a5, - 0x60340800, 0x42003800, 0x001025b6, 0x4a034000, - 0x00109457, 0x0501f00f, 0x60340800, 0x42003800, - 0x001025b6, 0x4a034000, 0x00109464, 0x0501f009, - 0x05f9f66d, 0x60200800, 0x42003800, 0x001025c3, - 0x0501f004, 0x60100800, 0x42003800, 0x001025f8, + 0x05f8077b, 0x59a00c0b, 0x90040491, 0x05f8173e, + 0x90040c90, 0x59a00209, 0x59a01408, 0x900811c0, + 0x80081540, 0x59a00208, 0x59a01c07, 0x900c19c0, + 0x800c1d40, 0xb0081400, 0x58ec0003, 0x0505f909, + 0x4a01d808, 0x0010249b, 0x1c01f000, 0x4031d800, + 0x58ef400a, 0x58ec0002, 0x82000580, 0x00000200, + 0x05f80763, 0x59a0040b, 0x90000c90, 0x59a0040c, + 0x59a0120c, 0x900811c0, 0x80081540, 0x59a0020a, + 0x59a01c09, 0x900c19c0, 0x800c1d40, 0xb0081400, + 0x58ec0003, 0x0505f8f9, 0x4a01d808, 0x00101bc2, + 0x1c01f000, 0x48efc857, 0x59a00208, 0x59a01408, + 0x900001c0, 0x80081540, 0x59a0020a, 0x59a01c0a, + 0x900001c0, 0x800c1d40, 0x59a00407, 0x48034000, + 0x480b4001, 0x480f4002, 0x0505f8c2, 0x05020003, + 0x640b4407, 0x05f9f74a, 0x60400800, 0x0505f8dd, + 0x4a01d808, 0x001024c7, 0x1c01f000, 0x4031d800, + 0x58ef400a, 0x58ee580c, 0x58ec0002, 0x82000580, + 0x00000200, 0x05f80736, 0x48efc857, 0x49a3c857, + 0x492fc857, 0x592c0a05, 0x80040910, 0x05020003, + 0x64674407, 0x05f9f736, 0x4805d80b, 0x0501f009, + 0x4031d800, 0x58ef400a, 0x58ec0002, 0x82000580, + 0x00000200, 0x05f80726, 0x48efc857, 0x49a3c857, + 0x48efc857, 0x49a3c857, 0x58ec000b, 0x80000040, + 0x0500000d, 0x4801d80b, 0x0505f89a, 0x05020003, + 0x640b4407, 0x05f9f722, 0x60400800, 0x58ec1006, + 0x58ec1807, 0x0505f8b3, 0x4a01d808, 0x001024d8, + 0x1c01f000, 0x58ee580c, 0x48efc857, 0x49a3c857, + 0x492fc857, 0x492f3004, 0x592c0405, 0x8400055e, + 0x48025c05, 0x4a01d808, 0x001024fc, 0x1c01f000, + 0x4d2c0000, 0x58ee580c, 0x48efc857, 0x49a3c857, + 0x492fc857, 0x592c0405, 0x8400051e, 0x48025c05, + 0x59a00000, 0x59a01001, 0x59a01802, 0x80081400, + 0x900c1c40, 0x912c0405, 0x60400800, 0x5c025800, + 0x0505f09a, 0x8d0c050e, 0x05000003, 0x64074407, + 0x05f9f6fb, 0x916c0583, 0x05000003, 0x641f4407, + 0x05f9f6f7, 0x59a0320c, 0x82183500, 0x000000ff, + 0x59a28c07, 0x0001fac4, 0x05fa06f5, 0x83440580, + 0x000007fd, 0x05000005, 0x0509ff2e, 0x05000003, + 0x64274407, 0x05f9f6ea, 0x0505f85e, 0x05020003, + 0x640b4407, 0x05f9f6e6, 0x801831c0, 0x05000007, + 0x412c0800, 0x0505f857, 0x05020003, 0x640b4407, + 0x05f9f6df, 0x40065800, 0x4a025c05, 0x00008000, + 0x497a5a05, 0x0525fcf9, 0x05020003, 0x640f4407, + 0x05f9f6d7, 0x4a01d808, 0x00102538, 0x1c01f000, + 0x592c0006, 0x82000580, 0x01000000, 0x05020003, + 0x64134407, 0x05f9f6ce, 0x592c0407, 0x82002d00, + 0x0000ff00, 0x82000500, 0x000000ff, 0x80000904, + 0x80040800, 0x90040486, 0x05001002, 0x60140800, + 0x4c500000, 0x4c540000, 0x4c580000, 0x912ca407, + 0x4050a800, 0x4004b000, 0x0531fd16, 0x59a00408, + 0x59a01208, 0x900811c0, 0x80081540, 0x59a0040a, + 0x59a01a0a, 0x900c19c0, 0x800c1d40, 0x912c0407, + 0x4c140000, 0x0505f84d, 0x5c002800, 0x801429c0, + 0x05000003, 0x4a01d808, 0x00102563, 0x5c00b000, + 0x5c00a800, 0x5c00a000, 0x1c01f000, 0x4031d800, + 0x58ef400a, 0x58ee580c, 0x58ec0002, 0x82000580, + 0x00000200, 0x05f8069a, 0x812e59c0, 0x05ec0c7b, + 0x592c0007, 0x82000500, 0xff000000, 0x80000904, + 0x800409c0, 0x05f80658, 0x4807c857, 0x9004048e, + 0x05001002, 0x60340800, 0x592e5801, 0x812e59c0, + 0x05ec0c6e, 0x4c500000, 0x4c540000, 0x4c580000, + 0x912ca406, 0x4050a800, 0x4004b000, 0x0531fce5, + 0x5c00b000, 0x5c00a800, 0x5c00a000, 0x58ec1006, + 0x58ec1807, 0x912c0406, 0x0505f020, 0x0501fff9, + 0x05020003, 0x640b4407, 0x05f9f681, 0x59a00c07, + 0x82040500, 0x0000ff00, 0x840001c0, 0x90001487, + 0x05fa167f, 0x0c01f001, 0x00102599, 0x0010259f, + 0x001025a5, 0x001025a5, 0x001025a5, 0x001025a6, + 0x001025aa, 0x60340800, 0x42003800, 0x001025bb, + 0x4a034000, 0x001094d7, 0x0501f00f, 0x60340800, + 0x42003800, 0x001025bb, 0x4a034000, 0x001094e4, + 0x0501f009, 0x05f9f66a, 0x60200800, 0x42003800, + 0x001025c8, 0x0501f004, 0x60100800, 0x42003800, + 0x001025fd, 0x59a00208, 0x59a01408, 0x900001c0, + 0x80081540, 0x59a0020a, 0x59a01c0a, 0x900001c0, + 0x800c1d40, 0x912c0406, 0x4c1c0000, 0x0501ffe9, + 0x5c003800, 0x481dd808, 0x1c01f000, 0x4031d800, + 0x58ef400a, 0x58ee580c, 0x58ec0002, 0x82000580, + 0x00000200, 0x05f80642, 0x64075019, 0x6034b000, + 0x59a0a800, 0x912ca406, 0x0531fc9e, 0x05f9f602, + 0x4031d800, 0x58ef400a, 0x58ee580c, 0x58ec0002, + 0x82000580, 0x00000200, 0x05f80635, 0x912ca406, + 0x50500000, 0x82001500, 0x000c0016, 0x05fa063c, + 0x90500c03, 0x50040000, 0x90001501, 0x05fa0638, + 0x50500000, 0x90001528, 0x05000015, 0x900815a8, + 0x05fa0633, 0x80500800, 0x50040000, 0x90001513, + 0x90081593, 0x05fa062e, 0x80040800, 0x50040000, + 0x82001500, 0x00050000, 0x82081580, 0x00050000, + 0x05fa0627, 0x916c0580, 0x0500000e, 0x599c0019, + 0x8c00050e, 0x0502000b, 0x05f9f621, 0x80500800, + 0x50040000, 0x90001513, 0x05fa061d, 0x80040800, + 0x50040000, 0x82001500, 0x00050000, 0x05fa0618, + 0x6020b000, 0x4200a800, 0x001094cf, 0x0531fc2e, + 0x05f9f5cd, 0x4031d800, 0x58ef400a, 0x58ee580c, + 0x58ec0002, 0x82000580, 0x00000200, 0x05f80600, + 0x6010b000, 0x4200a800, 0x0010992c, 0x912ca406, + 0x0531fc21, 0x850e1d50, 0x05f9f5bf, 0x0501ff75, + 0x05020003, 0x640b4407, 0x05f9f5fd, 0x912cac06, + 0x59a00c07, 0x82040500, 0x0000ff00, 0x840001c0, + 0x90001488, 0x05fa15fa, 0x0c01f001, 0x0010261f, + 0x00102622, 0x00102625, 0x00102625, 0x00102625, + 0x00102626, 0x00102625, 0x0010262c, 0x4200a000, + 0x001094d7, 0x0501f038, 0x4200a000, 0x001094e4, + 0x0501f035, 0x05f9f5ea, 0x6020b000, 0x40580800, + 0x4200a000, 0x001094cf, 0x0531fbff, 0x0501f031, + 0x59a00a0b, 0x6473420b, 0x9004049c, 0x05f815e0, + 0x603cb000, 0x4178a000, 0x0531fbff, 0x912cac06, + 0x6010b000, 0x91a8a41f, 0x0531fbf3, 0x916c0580, + 0x05000004, 0x6010b000, 0x91a8a400, 0x0531fbee, + 0x492f4000, 0x0501ff43, 0x05020003, 0x640b4407, + 0x05f9f5cb, 0x912cac06, 0x603cb000, 0x4178a000, + 0x0531fbed, 0x912cac07, 0x6010b000, 0x91a8a423, + 0x0531fbe1, 0x492f4001, 0x59a25800, 0x59a00208, + 0x59a01408, 0x900001c0, 0x80081540, 0x59a0020a, + 0x59a01c0a, 0x900001c0, 0x800c1d40, 0x912c0406, + 0x603c0800, 0x0501ff51, 0x4a01d808, 0x00102666, + 0x1c01f000, 0x6034b000, 0x40580800, 0x0531fc09, 0x59a00208, 0x59a01408, 0x900001c0, 0x80081540, 0x59a0020a, 0x59a01c0a, 0x900001c0, 0x800c1d40, - 0x912c0406, 0x4c1c0000, 0x0501ffea, 0x5c003800, - 0x481dd808, 0x1c01f000, 0x4031d800, 0x58ef400a, - 0x58ee580c, 0x58ec0002, 0x82000580, 0x00000200, - 0x05f80645, 0x64075019, 0x6034b000, 0x59a0a800, - 0x912ca406, 0x0531fbd9, 0x05f9f605, 0x4031d800, - 0x58ef400a, 0x58ee580c, 0x58ec0002, 0x82000580, - 0x00000200, 0x05f80638, 0x912ca406, 0x50500000, - 0x82001500, 0x000c0016, 0x05fa063f, 0x90500c03, - 0x50040000, 0x90001501, 0x05fa063b, 0x50500000, - 0x90001528, 0x05000015, 0x900815a8, 0x05fa0636, - 0x80500800, 0x50040000, 0x90001513, 0x90081593, - 0x05fa0631, 0x80040800, 0x50040000, 0x82001500, - 0x00050000, 0x82081580, 0x00050000, 0x05fa062a, - 0x916c0580, 0x0500000e, 0x599c0019, 0x8c00050e, - 0x0502000b, 0x05f9f624, 0x80500800, 0x50040000, - 0x90001513, 0x05fa0620, 0x80040800, 0x50040000, - 0x82001500, 0x00050000, 0x05fa061b, 0x6020b000, - 0x4200a800, 0x0010944f, 0x0531fb69, 0x05f9f5d0, - 0x4031d800, 0x58ef400a, 0x58ee580c, 0x58ec0002, - 0x82000580, 0x00000200, 0x05f80603, 0x6010b000, - 0x4200a800, 0x001098ac, 0x912ca406, 0x0531fb5c, - 0x850e1d50, 0x05f9f5c2, 0x0501ff76, 0x05020003, - 0x640b4407, 0x05f9f600, 0x912cac06, 0x59a00c07, - 0x82040500, 0x0000ff00, 0x840001c0, 0x90001488, - 0x05fa15fd, 0x0c01f001, 0x0010261a, 0x0010261d, - 0x00102620, 0x00102620, 0x00102620, 0x00102621, - 0x00102620, 0x00102627, 0x4200a000, 0x00109457, - 0x0501f038, 0x4200a000, 0x00109464, 0x0501f035, - 0x05f9f5ed, 0x6020b000, 0x40580800, 0x4200a000, - 0x0010944f, 0x0531fb3a, 0x0501f031, 0x59a00a0b, - 0x6473420b, 0x9004049c, 0x05f815e3, 0x603cb000, - 0x4178a000, 0x0531fb3a, 0x912cac06, 0x6010b000, - 0x91a8a41f, 0x0531fb2e, 0x916c0580, 0x05000004, - 0x6010b000, 0x91a8a400, 0x0531fb29, 0x492f4000, - 0x0501ff44, 0x05020003, 0x640b4407, 0x05f9f5ce, - 0x912cac06, 0x603cb000, 0x4178a000, 0x0531fb28, - 0x912cac07, 0x6010b000, 0x91a8a423, 0x0531fb1c, - 0x492f4001, 0x59a25800, 0x59a00208, 0x59a01408, - 0x900001c0, 0x80081540, 0x59a0020a, 0x59a01c0a, - 0x900001c0, 0x800c1d40, 0x912c0406, 0x603c0800, - 0x0501ff52, 0x4a01d808, 0x00102661, 0x1c01f000, - 0x6034b000, 0x40580800, 0x0531fb44, 0x59a00208, - 0x59a01408, 0x900001c0, 0x80081540, 0x59a0020a, - 0x59a01c0a, 0x900001c0, 0x800c1d40, 0x912c0406, - 0x0501f742, 0x4031d800, 0x58ef400a, 0x58ec0002, - 0x82000580, 0x00000200, 0x05f8059b, 0x59a25801, - 0x58ec1006, 0x58ec1807, 0x912c0406, 0x60340800, - 0x0501f736, 0x916c0580, 0x05020003, 0x641f4407, - 0x05f9f599, 0x59a01407, 0x800811c0, 0x0502002a, - 0x497b4208, 0x05f9f93f, 0x05000011, 0x05f9f921, - 0x64074208, 0x0502000e, 0x4c080000, 0x05f9f92b, - 0x5c001000, 0x05020006, 0x640b4208, 0x05f5fd4c, - 0x05020007, 0x64134208, 0x0501f005, 0x640f4208, - 0x05f5fd26, 0x05020002, 0x64174208, 0x59c40801, - 0x82040d00, 0x00018000, 0x90040580, 0x05020003, - 0x64034407, 0x0501f069, 0x82040580, 0x00008000, - 0x05020003, 0x64074407, 0x0501f064, 0x82040580, - 0x00010000, 0x05020003, 0x640f4407, 0x0501f05f, - 0x82040580, 0x00018000, 0x05ee0b4c, 0x64134407, - 0x0501f05a, 0x59a80086, 0x8c000502, 0x05000004, - 0x60080000, 0x40000800, 0x0501f012, 0x59a00208, - 0x4c000000, 0x0505f80b, 0x5c000000, 0x05000005, - 0x4c000000, 0x0505f81e, 0x5c000000, 0x05020007, - 0x90000d84, 0x05000003, 0x90000d82, 0x05020003, - 0x600c0000, 0x600c1000, 0x48034002, 0x59a80837, - 0x48035037, 0x599c7819, 0x823c7d00, 0xffff1fff, - 0x800000da, 0x803c7d40, 0x483f3819, 0x497b4208, - 0x05f9f8f8, 0x05000013, 0x05f9f8da, 0x64074208, - 0x05020010, 0x4c040000, 0x4c080000, 0x05f9f8e3, - 0x5c001000, 0x5c000800, 0x05020006, 0x640b4208, - 0x05f5fd03, 0x05020007, 0x64134208, 0x0501f005, - 0x640f4208, 0x05f5fcdd, 0x05020002, 0x64174208, - 0x05f5fcda, 0x0500000b, 0x05f5fce3, 0x05000009, - 0x05f5fcec, 0x05000007, 0x05f5fcf5, 0x05000005, - 0x05f5fcfe, 0x05000003, 0x48075037, 0x05f9f532, - 0x90080583, 0x05020005, 0x59a00002, 0x48035044, - 0x640b5037, 0x0501f005, 0x4a035044, 0xaabbccdd, - 0x90080582, 0x05020011, 0x59c40006, 0x84000500, - 0x48038806, 0x0515fd2c, 0x497b8880, 0x42000000, - 0x00109860, 0x0531f9a8, 0x4803c856, 0x850e1d48, - 0x4a038808, 0x00000200, 0x6012d800, 0x64078805, - 0x64075043, 0x05edfd0c, 0x05f9f4d1, 0x8d0c050e, - 0x05000003, 0x64074407, 0x05f9f50f, 0x916c0583, - 0x05000003, 0x641f4407, 0x05f9f50b, 0x59a28c07, - 0x59a0320c, 0x82183500, 0x000000ff, 0x0001fac4, - 0x05fa0509, 0x83440580, 0x000007fd, 0x05000005, - 0x0509fd2f, 0x05000003, 0x60240800, 0x05f9f4fe, - 0x0501fe70, 0x05020003, 0x640b4407, 0x05f9f4fa, - 0x497a5a05, 0x4a025c05, 0x00008000, 0x0525fa91, - 0x05020003, 0x640f4407, 0x05f9f4f3, 0x4a01d808, - 0x0010271a, 0x1c01f000, 0x592c0006, 0x82000d00, - 0x0000ffff, 0x82000500, 0xffff0000, 0x82000580, - 0x01000000, 0x05020003, 0x64134407, 0x05f9f4e6, - 0x80040904, 0x4c500000, 0x4c540000, 0x4c580000, - 0x912ca406, 0x4050a800, 0x4004b000, 0x0531fa6f, - 0x5c00b000, 0x5c00a800, 0x5c00a000, 0x59a00208, - 0x59a01408, 0x900001c0, 0x80081540, 0x59a0020a, - 0x59a01c0a, 0x900001c0, 0x800c1d40, 0x912c0406, - 0x0501f66a, 0x60000020, 0x50000000, 0x82000480, - 0x25320001, 0x05020007, 0x4a03c014, 0x00400040, - 0x4a03c013, 0x00400000, 0x6041d04e, 0x0511ff80, - 0x496fc857, 0x916c0580, 0x05000003, 0x646b4407, - 0x05f9f4c1, 0x050df995, 0x05060e64, 0x60800800, - 0x59a00408, 0x59a01208, 0x900811c0, 0x80081540, - 0x59a0040a, 0x59a01a0a, 0x900c19c0, 0x800c1d40, - 0x419c0000, 0x49a3c857, 0x0501fe46, 0x4a01d808, - 0x0010275a, 0x1c01f000, 0x4833c857, 0x4031d800, - 0x58ef400a, 0x58ec0002, 0x82000580, 0x00000200, - 0x05f804a1, 0x599c0200, 0x800001c0, 0x05f804aa, - 0x59a80086, 0x8c000502, 0x05000011, 0x599c0017, - 0x84000508, 0x48033817, 0x599c0019, 0x82000500, - 0xffff1fff, 0x82000540, 0x00004000, 0x48033819, - 0x599c0018, 0x84000510, 0x84000516, 0x82000500, - 0xffffffcf, 0x90000560, 0x0501f004, 0x8c000504, - 0x05000003, 0x599c0018, 0x48033818, 0x0525ffd9, - 0x850e1d20, 0x599c0017, 0x8c000508, 0x05000003, - 0x850e1d60, 0x0501f003, 0x8c00050a, 0x05fa048a, + 0x912c0406, 0x0501f741, 0x4031d800, 0x58ef400a, + 0x58ec0002, 0x82000580, 0x00000200, 0x05f80598, + 0x59a25801, 0x58ec1006, 0x58ec1807, 0x912c0406, + 0x60340800, 0x0501f735, 0x916c0580, 0x05020003, + 0x641f4407, 0x05f9f596, 0x59a01407, 0x800811c0, + 0x0502002a, 0x497b4208, 0x05f9f938, 0x05000011, + 0x05f9f91a, 0x64074208, 0x0502000e, 0x4c080000, + 0x05f9f924, 0x5c001000, 0x05020006, 0x640b4208, + 0x05f5fd45, 0x05020007, 0x64134208, 0x0501f005, + 0x640f4208, 0x05f5fd1f, 0x05020002, 0x64174208, + 0x59c40801, 0x82040d00, 0x00018000, 0x90040580, + 0x05020003, 0x64034407, 0x0501f069, 0x82040580, + 0x00008000, 0x05020003, 0x64074407, 0x0501f064, + 0x82040580, 0x00010000, 0x05020003, 0x640f4407, + 0x0501f05f, 0x82040580, 0x00018000, 0x05ee0b47, + 0x64134407, 0x0501f05a, 0x59a80086, 0x8c000502, + 0x05000004, 0x60080000, 0x40000800, 0x0501f012, + 0x59a00208, 0x4c000000, 0x0505f80a, 0x5c000000, + 0x05000005, 0x4c000000, 0x0505f81d, 0x5c000000, + 0x05020007, 0x90000d84, 0x05000003, 0x90000d82, + 0x05020003, 0x600c0000, 0x600c1000, 0x48034002, + 0x59a80837, 0x48035037, 0x599c7819, 0x823c7d00, + 0xffff1fff, 0x800000da, 0x803c7d40, 0x483f3819, + 0x497b4208, 0x05f9f8f1, 0x05000013, 0x05f9f8d3, + 0x64074208, 0x05020010, 0x4c040000, 0x4c080000, + 0x05f9f8dc, 0x5c001000, 0x5c000800, 0x05020006, + 0x640b4208, 0x05f5fcfc, 0x05020007, 0x64134208, + 0x0501f005, 0x640f4208, 0x05f5fcd6, 0x05020002, + 0x64174208, 0x05f5fcd3, 0x0500000b, 0x05f5fcdc, + 0x05000009, 0x05f5fce5, 0x05000007, 0x05f5fcee, + 0x05000005, 0x05f5fcf7, 0x05000003, 0x48075037, + 0x05f9f52f, 0x90080583, 0x05020005, 0x59a00002, + 0x48035044, 0x640b5037, 0x0501f005, 0x4a035044, + 0xaabbccdd, 0x90080582, 0x05020011, 0x59c40006, + 0x84000500, 0x48038806, 0x0515fdb3, 0x497b8880, + 0x42000000, 0x001098e0, 0x0531fa6d, 0x4803c856, + 0x850e1d48, 0x4a038808, 0x00000200, 0x6012d800, + 0x64078805, 0x64075043, 0x05edfd07, 0x05f9f4ce, + 0x8d0c050e, 0x05000003, 0x64074407, 0x05f9f50c, + 0x916c0583, 0x05000003, 0x641f4407, 0x05f9f508, + 0x59a28c07, 0x59a0320c, 0x82183500, 0x000000ff, + 0x0001fac4, 0x05fa0506, 0x83440580, 0x000007fd, + 0x05000005, 0x0509fd3f, 0x05000003, 0x60240800, + 0x05f9f4fb, 0x0501fe6f, 0x05020003, 0x640b4407, + 0x05f9f4f7, 0x497a5a05, 0x4a025c05, 0x00008000, + 0x0525fb22, 0x05020003, 0x640f4407, 0x05f9f4f0, + 0x4a01d808, 0x0010271f, 0x1c01f000, 0x592c0006, + 0x82000d00, 0x0000ffff, 0x82000500, 0xffff0000, + 0x82000580, 0x01000000, 0x05020003, 0x64134407, + 0x05f9f4e3, 0x80040904, 0x4c500000, 0x4c540000, + 0x4c580000, 0x912ca406, 0x4050a800, 0x4004b000, + 0x0531fb34, 0x5c00b000, 0x5c00a800, 0x5c00a000, + 0x59a00208, 0x59a01408, 0x900001c0, 0x80081540, + 0x59a0020a, 0x59a01c0a, 0x900001c0, 0x800c1d40, + 0x912c0406, 0x0501f669, 0x60000020, 0x50000000, + 0x82000480, 0x25320001, 0x05020007, 0x4a03c014, + 0x00400040, 0x4a03c013, 0x00400000, 0x6041d04e, + 0x0515f807, 0x496fc857, 0x916c0580, 0x05000003, + 0x646b4407, 0x05f9f4be, 0x050df9c6, 0x05060e6b, + 0x60800800, 0x59a00408, 0x59a01208, 0x900811c0, + 0x80081540, 0x59a0040a, 0x59a01a0a, 0x900c19c0, + 0x800c1d40, 0x419c0000, 0x49a3c857, 0x0501fe45, + 0x4a01d808, 0x0010275f, 0x1c01f000, 0x4833c857, + 0x4031d800, 0x58ef400a, 0x58ec0002, 0x82000580, + 0x00000200, 0x05f8049e, 0x599c0200, 0x800001c0, + 0x05f804a7, 0x59a80086, 0x8c000502, 0x05000011, + 0x599c0017, 0x84000508, 0x48033817, 0x599c0019, + 0x82000500, 0xffff1fff, 0x82000540, 0x00004000, + 0x48033819, 0x599c0018, 0x84000510, 0x84000516, + 0x82000500, 0xffffffcf, 0x90000560, 0x0501f004, + 0x8c000504, 0x05000003, 0x599c0018, 0x48033818, + 0x0529f86a, 0x850e1d20, 0x599c0017, 0x8c000508, + 0x05000003, 0x850e1d60, 0x0501f006, 0x8c00050a, + 0x05fa0487, 0x59a80806, 0x8c040516, 0x05fa0484, 0x4803c857, 0x8c000504, 0x05020004, 0x59c408a3, 0x84040d7a, 0x480788a3, 0x8c000502, 0x05020004, 0x59c408a3, 0x84040d08, 0x480788a3, 0x599c0c02, 0x8c000500, 0x05020004, 0x8c000516, 0x0500000e, - 0x0501f001, 0xb00414bf, 0x05fa1477, 0x82041400, - 0x00101a21, 0x50081000, 0x82081500, 0x000000ff, + 0x0501f001, 0xb00414bf, 0x05fa1471, 0x82041400, + 0x00101a23, 0x50081000, 0x82081500, 0x000000ff, 0x8c000500, 0x05020004, 0x480b500f, 0x600c0800, - 0x0515f9c2, 0x599c0019, 0x8c000506, 0x05000003, - 0x4a03b805, 0x90000000, 0x8c00050e, 0x05020009, - 0x59a80805, 0x8c040514, 0x05000006, 0x42000800, - 0x0010944f, 0x50040800, 0x90040d28, 0x05fa045e, + 0x0515fa46, 0x599c0019, 0x8c000506, 0x05000003, + 0x4a03b805, 0x90000000, 0x8c00050e, 0x05020005, + 0x4c000000, 0x0505f8e7, 0x5c000000, 0x05fa045c, 0x90000530, 0x05000003, 0x80000108, 0x0501f002, 0x60080000, 0x48039040, 0x60080800, 0x82000400, - 0x00102899, 0x50001000, 0x0515f9a8, 0x599c0201, - 0x82000c80, 0x00000100, 0x05f8144f, 0x82000c80, - 0x00000841, 0x05fa144c, 0x90000507, 0x05fa044a, - 0x599c0401, 0x80000540, 0x05f80447, 0x59a80886, + 0x0010289d, 0x50001000, 0x0515fa30, 0x599c0201, + 0x82000c80, 0x00000100, 0x05f8144d, 0x82000c80, + 0x00000841, 0x05fa144a, 0x90000507, 0x05fa0448, + 0x599c0401, 0x80000540, 0x05f80445, 0x59a80886, 0x8c040502, 0x05000005, 0x90000c90, 0x05001003, 0x60400000, 0x48033c01, 0x850e1d52, 0x82000580, 0x0000ffff, 0x05000002, 0x850e1d12, 0x599c0409, - 0x599c0c07, 0x80040c80, 0x05fa1437, 0x80000040, - 0x05f80435, 0x599c0209, 0x599c0a07, 0x80040c80, - 0x05fa1431, 0x80000040, 0x05f8042f, 0x050dfc8a, - 0x0509ff25, 0x599c0201, 0x48035004, 0x05f5f850, + 0x599c0c07, 0x80040c80, 0x05fa1435, 0x80000040, + 0x05f80433, 0x599c0209, 0x599c0a07, 0x80040c80, + 0x05fa142f, 0x80000040, 0x05f8042d, 0x050dfcbc, + 0x0509ff57, 0x599c0201, 0x48035004, 0x05f5f84a, 0x599c020a, 0x800001c0, 0x05000003, 0x48035031, 0x0501f003, 0x4a035031, 0x000000c8, 0x8d0c0520, - 0x05000003, 0x0511ff16, 0x417a5000, 0x599c0003, + 0x05000003, 0x0511ff9e, 0x417a5000, 0x599c0003, 0x599c0804, 0x9c0001c0, 0x9c0409c0, 0x48035002, 0x48075003, 0x599c1017, 0x8c08051c, 0x05000006, 0x599c0005, 0x599c0806, 0x9c0001c0, 0x9c0409c0, 0x0501f003, 0x82000500, 0xf0ffffff, 0x48035000, - 0x48075001, 0x42001000, 0x00109457, 0x48001000, - 0x48041001, 0x42001000, 0x00109464, 0x48001000, + 0x48075001, 0x42001000, 0x001094d7, 0x48001000, + 0x48041001, 0x42001000, 0x001094e4, 0x48001000, 0x48041001, 0x599c1019, 0x82081500, 0x0000e000, - 0x497b4208, 0x05f5ffa7, 0x05000012, 0x05f5ff89, - 0x64074208, 0x0502000f, 0x4c080000, 0x05f5ff93, + 0x497b4208, 0x05f5ffa1, 0x05000012, 0x05f5ff83, + 0x64074208, 0x0502000f, 0x4c080000, 0x05f5ff8d, 0x5c001000, 0x05020007, 0x640b4208, 0x82080580, 0x00008000, 0x05020007, 0x64134208, 0x0501f005, 0x640f4208, 0x90080580, 0x05020002, 0x64174208, 0x90080580, 0x05020007, 0x64035037, 0x60040000, - 0x05f5fd78, 0x60040000, 0x05f5fd4c, 0x0501f02b, + 0x05f5fd72, 0x60040000, 0x05f5fd46, 0x0501f02b, 0x82080580, 0x00002000, 0x05020008, 0x64075037, - 0x60000000, 0x05f5fd6f, 0x60000000, 0x05f5fd43, - 0x05f9f8eb, 0x0501f021, 0x82080580, 0x00004000, + 0x60000000, 0x05f5fd69, 0x60000000, 0x05f5fd3d, + 0x05f9f8e6, 0x0501f021, 0x82080580, 0x00004000, 0x05020004, 0x640b5037, 0x64075043, 0x05fdf7f9, 0x82080580, 0x00006000, 0x0502000f, 0x59a80858, 0x82040d80, 0x01391077, 0x05020004, 0x59e00813, - 0x8c040500, 0x05fa03cc, 0x640f5037, 0x60080000, - 0x05f5fd58, 0x60080000, 0x05f5fd2c, 0x05fdf7e9, - 0x0501f00a, 0x82080580, 0x00008000, 0x05fa03c2, - 0x05f9f8de, 0x64135037, 0x600c0000, 0x05f5fd4d, - 0x600c0000, 0x05f5fd21, 0x599c1019, 0x82081500, + 0x8c040500, 0x05fa03ca, 0x640f5037, 0x60080000, + 0x05f5fd52, 0x60080000, 0x05f5fd26, 0x05fdf7e9, + 0x0501f00a, 0x82080580, 0x00008000, 0x05fa03c0, + 0x05f9f8d9, 0x64135037, 0x600c0000, 0x05f5fd47, + 0x600c0000, 0x05f5fd1b, 0x599c1019, 0x82081500, 0x0000e000, 0x4c080000, 0x0501fe8d, 0x5c001000, 0x05020004, 0x82080580, 0x00004000, 0x0500000b, 0x0501fe54, 0x05000003, 0x0501fe69, 0x05020009, @@ -2626,31 +2627,31 @@ static const uint32_t isp_2500_risc_code[] = { 0x599c1018, 0x90081530, 0x90080d80, 0x05000005, 0x90080d90, 0x05000008, 0x90080da0, 0x05020002, 0x48075013, 0x0501fdb7, 0x05000007, 0x4803c856, - 0x850e1d46, 0x05f5faf0, 0x59a8001f, 0x80040540, - 0x4803501f, 0x49f3c857, 0x42001000, 0x0010402e, - 0x0511fcf9, 0x42001000, 0x00104021, 0x0511fe27, + 0x850e1d46, 0x05f5faea, 0x59a8001f, 0x80040540, + 0x4803501f, 0x49f3c857, 0x42001000, 0x00104064, + 0x0511fd81, 0x42001000, 0x00104057, 0x0511feaf, 0x4a038805, 0xffffffff, 0x0501fe44, 0x05000005, 0x4a03c014, 0x00400040, 0x4a03c013, 0x00400000, 0x59a0001e, 0x84000540, 0x4803401e, 0x49f3c857, - 0x05f9f32f, 0x00000018, 0x0000000c, 0x00000018, + 0x05f9f32d, 0x00000018, 0x0000000c, 0x00000018, 0x00000020, 0x916c0580, 0x05020003, 0x601c0800, - 0x05f9f369, 0x60800800, 0x59a00408, 0x59a01208, + 0x05f9f367, 0x60800800, 0x59a00408, 0x59a01208, 0x900811c0, 0x80081540, 0x59a0040a, 0x59a01a0a, 0x900c19c0, 0x800c1d40, 0x419c0000, 0x0501f4f7, - 0x8d0c050e, 0x05000003, 0x64074407, 0x05f9f35a, - 0x050df82e, 0x05020003, 0x645b4407, 0x05f9f356, + 0x8d0c050e, 0x05000003, 0x64074407, 0x05f9f358, + 0x050df860, 0x05020003, 0x645b4407, 0x05f9f354, 0x59a8006f, 0x8c000500, 0x0500000e, 0x64034407, 0x60800800, 0x59a00408, 0x59a01208, 0x900811c0, 0x80081540, 0x59a0040a, 0x59a01a0a, 0x900c19c0, - 0x800c1d40, 0x42000000, 0x001098d3, 0x0501f4df, - 0x64074407, 0x6080b000, 0x4200a800, 0x001098d3, + 0x800c1d40, 0x42000000, 0x00109953, 0x0501f4df, + 0x64074407, 0x6080b000, 0x4200a800, 0x00109953, 0x4200a000, 0xffffffff, 0x4450a800, 0x8054a800, 0x8058b040, 0x05fe07fd, 0x4d440000, 0x4d340000, 0x42028800, 0xffffffff, 0x42002000, 0xffffffff, - 0x60043000, 0x60043800, 0x42001800, 0x001098d3, + 0x60043000, 0x60043800, 0x42001800, 0x00109953, 0x59a8100f, 0x82081500, 0x000000ff, 0x40180000, - 0x0c01f001, 0x001028e1, 0x001028e4, 0x001028e8, - 0x001028ec, 0x82102500, 0xffffff00, 0x0501f014, + 0x0c01f001, 0x001028e5, 0x001028e8, 0x001028ec, + 0x001028f0, 0x82102500, 0xffffff00, 0x0501f014, 0x82102500, 0xffff00ff, 0x840811c0, 0x0501f010, 0x82102500, 0xff00ffff, 0x900811c0, 0x0501f00c, 0x82102500, 0x00ffffff, 0x9c0801c0, 0x80102540, @@ -2659,30 +2660,30 @@ static const uint32_t isp_2500_risc_code[] = { 0x80102540, 0x81468800, 0xb1442cbf, 0x05021012, 0x4c080000, 0x4c0c0000, 0x4c180000, 0x4c1c0000, 0x0001fac4, 0x5c003800, 0x5c003000, 0x5c001800, - 0x5c001000, 0x05fe07f4, 0x0509fb42, 0x05fe07f2, + 0x5c001000, 0x05fe07f4, 0x0509fb53, 0x05fe07f2, 0x80183000, 0x801c3800, 0x59341202, 0x40180000, 0x0c01f7d1, 0x82100580, 0xffffffff, 0x05000002, - 0x44101800, 0x42001800, 0x001098d3, 0x500c0000, + 0x44101800, 0x42001800, 0x00109953, 0x500c0000, 0x82000500, 0xffffff00, 0x801c0540, 0x44001800, 0x5c026800, 0x5c028800, 0x60800800, 0x59a00408, 0x59a01208, 0x900811c0, 0x80081540, 0x59a0040a, 0x59a01a0a, 0x900c19c0, 0x800c1d40, 0x42000000, - 0x001098d3, 0x0501f47d, 0x59a28c07, 0x59a0020c, + 0x00109953, 0x0501f47d, 0x59a28c07, 0x59a0020c, 0x8c000500, 0x0500000c, 0x59a01209, 0x59a00409, 0x82000500, 0x000000ff, 0x900001c0, 0x80081540, - 0x41784000, 0x0509faa7, 0x05000005, 0x48034407, - 0x05f9f2d9, 0x0001fac4, 0x05fa02d7, 0x0501fc45, - 0x05020003, 0x640b4407, 0x05f9f2cf, 0x59a0020c, - 0x8c000500, 0x05000003, 0x0509fb0a, 0x050204ff, + 0x41784000, 0x0509fab6, 0x05000005, 0x48034407, + 0x05f9f2d7, 0x0001fac4, 0x05fa02d5, 0x0501fc45, + 0x05020003, 0x640b4407, 0x05f9f2cd, 0x59a0020c, + 0x8c000500, 0x05000003, 0x0509fb1b, 0x050204ff, 0x59a0020c, 0x8c000502, 0x05000013, 0x83440480, - 0x000007f0, 0x05021010, 0x0509fb0b, 0x0502000e, - 0x497a5a05, 0x4a025c05, 0x00008000, 0x0525f834, - 0x05020003, 0x640f4407, 0x05f9f2bb, 0x4a01d808, - 0x00102952, 0x1c01f000, 0x59a28c07, 0x0001fac4, - 0x05fa02b9, 0x4c580000, 0x4c500000, 0x4c540000, + 0x000007f0, 0x05021010, 0x0509fb1c, 0x0502000e, + 0x497a5a05, 0x4a025c05, 0x00008000, 0x0525f8c6, + 0x05020003, 0x640f4407, 0x05f9f2b9, 0x4a01d808, + 0x00102956, 0x1c01f000, 0x59a28c07, 0x0001fac4, + 0x05fa02b7, 0x4c580000, 0x4c500000, 0x4c540000, 0x6028b000, 0x4134a000, 0x912e5c02, 0x412ca800, - 0x0531f803, 0x912cac06, 0x4054a000, 0x6010b000, - 0x0531f83a, 0x5c00a800, 0x5c00a000, 0x5c00b000, + 0x0531f8c9, 0x912cac06, 0x4054a000, 0x6010b000, + 0x0531f900, 0x5c00a800, 0x5c00a000, 0x5c00b000, 0x592c0802, 0x82040500, 0x00ff00ff, 0x900001c0, 0x82041500, 0xff00ff00, 0x80080540, 0x48025802, 0x592c0801, 0x82040500, 0x00ff00ff, 0x900001c0, @@ -2690,49 +2691,49 @@ static const uint32_t isp_2500_risc_code[] = { 0x60280800, 0x59a00408, 0x59a01208, 0x900811c0, 0x80081540, 0x59a0040a, 0x59a01a0a, 0x900c19c0, 0x800c1d40, 0x412c0000, 0x0501f424, 0x496fc857, - 0x496f4407, 0x497b4208, 0x05f5fe32, 0x05000015, - 0x05f5fe14, 0x64074208, 0x05020012, 0x4c080000, - 0x05f5fe1e, 0x5c001000, 0x05020008, 0x640b4208, - 0x916c0580, 0x0500000b, 0x05f5fa3d, 0x05020009, + 0x496f4407, 0x497b4208, 0x05f5fe2c, 0x05000015, + 0x05f5fe0e, 0x64074208, 0x05020012, 0x4c080000, + 0x05f5fe18, 0x5c001000, 0x05020008, 0x640b4208, + 0x916c0580, 0x0500000b, 0x05f5fa37, 0x05020009, 0x64134208, 0x0501f007, 0x640f4208, 0x916c0580, - 0x05000004, 0x05f5fa15, 0x05020002, 0x64174208, - 0x05f9f22f, 0x59a28c07, 0x0001fac4, 0x05fa0272, - 0x916c0583, 0x05000003, 0x641f4407, 0x05f9f26a, + 0x05000004, 0x05f5fa0f, 0x05020002, 0x64174208, + 0x05f9f22d, 0x59a28c07, 0x0001fac4, 0x05fa0270, + 0x916c0583, 0x05000003, 0x641f4407, 0x05f9f268, 0x91340c06, 0x59a0020c, 0x8c000500, 0x05000002, 0x91340c08, 0x58040001, 0x4803440a, 0x900001c0, 0x4803420a, 0x50040000, 0x48034408, 0x900001c0, - 0x48034208, 0x59340200, 0x48034407, 0x05f9f218, - 0x8d0c050e, 0x05000003, 0x64074407, 0x05f9f256, + 0x48034208, 0x59340200, 0x48034407, 0x05f9f216, + 0x8d0c050e, 0x05000003, 0x64074407, 0x05f9f254, 0x59a0220c, 0x8c100500, 0x05020021, 0x8c100506, - 0x05020004, 0x59a03209, 0x90180483, 0x05fa1252, - 0x59a28c07, 0x0001fac4, 0x05fa024f, 0x0509fa78, - 0x05000003, 0x64274407, 0x05f9f247, 0x0501fbb9, - 0x05020003, 0x640b4407, 0x05f9f243, 0x59a0220c, + 0x05020004, 0x59a03209, 0x90180483, 0x05fa1250, + 0x59a28c07, 0x0001fac4, 0x05fa024d, 0x0509fa89, + 0x05000003, 0x64274407, 0x05f9f245, 0x0501fbb9, + 0x05020003, 0x640b4407, 0x05f9f241, 0x59a0220c, 0x8c100506, 0x05000004, 0x59343002, 0x82183500, 0x00ffffff, 0x497a5a05, 0x4a025c05, 0x00008000, - 0x0521ff80, 0x05020003, 0x640f4407, 0x05f9f236, - 0x4a01d808, 0x00102a15, 0x1c01f000, 0x59a28c07, - 0x0001fac4, 0x05fa0234, 0x0509fa5d, 0x05000003, - 0x64274407, 0x05f9f22c, 0x0501fb9e, 0x05020003, - 0x640b4407, 0x05f9f228, 0x497a5a05, 0x4a025c05, + 0x0525f812, 0x05020003, 0x640f4407, 0x05f9f234, + 0x4a01d808, 0x00102a19, 0x1c01f000, 0x59a28c07, + 0x0001fac4, 0x05fa0232, 0x0509fa6e, 0x05000003, + 0x64274407, 0x05f9f22a, 0x0501fb9e, 0x05020003, + 0x640b4407, 0x05f9f226, 0x497a5a05, 0x4a025c05, 0x00008000, 0x0501fb97, 0x05020003, 0x640b4407, - 0x05f9f221, 0x592e5800, 0x0521ff76, 0x05020003, - 0x640f4407, 0x05f9f21c, 0x4a01d808, 0x001029f1, + 0x05f9f21f, 0x592e5800, 0x0525f808, 0x05020003, + 0x640f4407, 0x05f9f21a, 0x4a01d808, 0x001029f5, 0x1c01f000, 0x592c2806, 0x82140d80, 0x01000000, - 0x05020003, 0x64134407, 0x05f9f213, 0x60200800, + 0x05020003, 0x64134407, 0x05f9f211, 0x60200800, 0x59a00208, 0x59a01408, 0x900001c0, 0x80081540, 0x59a0020a, 0x59a01c0a, 0x900001c0, 0x800c1d40, 0x912c0406, 0x0501fba1, 0x8c140500, 0x05000003, - 0x4a01d808, 0x00102a07, 0x1c01f000, 0x4031d800, + 0x4a01d808, 0x00102a0b, 0x1c01f000, 0x4031d800, 0x58ef400a, 0x58ee580d, 0x58ec0002, 0x82000580, - 0x00000200, 0x05f801f4, 0x812e59c0, 0x05e80fd7, + 0x00000200, 0x05f801f2, 0x812e59c0, 0x05e80fd3, 0x60200800, 0x912c0406, 0x58ec1006, 0x58ec1807, 0x0501f38e, 0x592c0006, 0x82000580, 0x01000000, - 0x05020003, 0x64134407, 0x05f9f1ef, 0x59a00208, + 0x05020003, 0x64134407, 0x05f9f1ed, 0x59a00208, 0x59a01408, 0x900001c0, 0x80081540, 0x59a0020a, 0x59a01c0a, 0x900001c0, 0x800c1d40, 0x60180800, 0x912c0407, 0x0501f37d, 0x59a00a0b, 0x800409c0, - 0x05f801e5, 0x82040480, 0x00000081, 0x05001002, + 0x05f801e3, 0x82040480, 0x00000081, 0x05001002, 0x60000801, 0x59c40085, 0x59881004, 0x80081400, 0x480b1004, 0x497b8885, 0x59c400b1, 0x48031022, 0x59c400b2, 0x48031021, 0x59c400a2, 0x48031023, @@ -2741,58 +2742,58 @@ static const uint32_t isp_2500_risc_code[] = { 0x80081400, 0x598800bb, 0x80081400, 0x480b1024, 0x59a00208, 0x59a01408, 0x900001c0, 0x80081540, 0x59a0020a, 0x59a01c0a, 0x900001c0, 0x800c1d40, - 0x91880400, 0x0501fb55, 0x4a01d808, 0x00102a51, + 0x91880400, 0x0501fb55, 0x4a01d808, 0x00102a55, 0x1c01f000, 0x4031d800, 0x58ef400a, 0x58ec0002, - 0x82000580, 0x00000200, 0x05f801ab, 0x59a0020c, + 0x82000580, 0x00000200, 0x05f801a9, 0x59a0020c, 0x8c000500, 0x05000006, 0x91880400, 0x4803c840, 0x641bc842, 0x05011000, 0x497b8885, 0x4a034208, - 0x00000080, 0x05f9f166, 0x8d0c050e, 0x05000003, - 0x64074407, 0x05f9f1a4, 0x0501fb16, 0x05020003, - 0x640b4407, 0x05f9f1a0, 0x497a5a05, 0x4a025c05, - 0x00008000, 0x59a00407, 0x800001c0, 0x05f8019e, + 0x00000080, 0x05f9f164, 0x8d0c050e, 0x05000003, + 0x64074407, 0x05f9f1a2, 0x0501fb16, 0x05020003, + 0x640b4407, 0x05f9f19e, 0x497a5a05, 0x4a025c05, + 0x00008000, 0x59a00407, 0x800001c0, 0x05f8019c, 0x82001580, 0x000000ff, 0x05000003, 0x90001484, - 0x05fa1199, 0x40001000, 0x05f5fefa, 0x05020003, - 0x640f4407, 0x05f9f190, 0x4a01d808, 0x00102a7d, + 0x05fa1197, 0x40001000, 0x05f5fef5, 0x05020003, + 0x640f4407, 0x05f9f18e, 0x4a01d808, 0x00102a81, 0x1c01f000, 0x592c0006, 0x82000580, 0x01000000, - 0x05fa0147, 0x64134407, 0x05f9f187, 0x59a01407, + 0x05fa0145, 0x64134407, 0x05f9f185, 0x59a01407, 0x8c080508, 0x05020005, 0x8d0c050e, 0x05000003, - 0x64074407, 0x05f9f180, 0x59a01c08, 0x820c0480, - 0x00001000, 0x05fa1180, 0x497b2804, 0x497b2805, + 0x64074407, 0x05f9f17e, 0x59a01c08, 0x820c0480, + 0x00001000, 0x05fa117e, 0x497b2804, 0x497b2805, 0x497b2826, 0x497b2827, 0x497b2829, 0x497b282a, 0x497b282c, 0x497b282d, 0x4803c856, 0x850e1d06, 0x8c080500, 0x05000004, 0x4803c856, 0x910e1d51, 0x0501f004, 0x8c080506, 0x05000002, 0x850e1d42, 0x850e1d0a, 0x6006d800, 0x82081500, 0x000000e0, - 0x8008010a, 0x0c02002a, 0x0509fe38, 0x05020008, - 0x64075014, 0x4a035013, 0x0000aaaa, 0x0509fdb1, + 0x8008010a, 0x0c02002a, 0x0509fe6a, 0x05020008, + 0x64075014, 0x4a035013, 0x0000aaaa, 0x0509fde3, 0x0501f018, 0x64035014, 0x05fdf7fb, 0x497b5013, - 0x0505fafe, 0x0511fe82, 0x0515f963, 0x0511fe6c, + 0x0505fb06, 0x0511ff0a, 0x0515f9eb, 0x0511fef4, 0x59a00a08, 0x480788a7, 0x59c400a3, 0x82000500, 0xfeffffff, 0x82000540, 0x80018000, 0x40000800, 0x84040d20, 0x480388a3, 0x480788a3, 0x497b5032, - 0x60b40800, 0x42001000, 0x0010362b, 0x0511fa9b, + 0x60b40800, 0x42001000, 0x00103637, 0x0511fb23, 0x59a00408, 0x800000c2, 0x800008c4, 0x8005d400, - 0x61fc01ff, 0x0509fe15, 0x05000003, 0x59a00208, - 0x80000110, 0x0501fb98, 0x05f9f0f9, 0x00102aa6, - 0x00102aa8, 0x00102aaf, 0x00101c0d, 0x00102aad, - 0x00101c0d, 0x00101c0d, 0x00101c0d, 0x916c0583, - 0x05000003, 0x641f4407, 0x05f9f12f, 0x59a00408, + 0x61fc01ff, 0x0509fe47, 0x05000003, 0x59a00208, + 0x80000110, 0x0501fb98, 0x05f9f0f7, 0x00102aaa, + 0x00102aac, 0x00102ab3, 0x00101c0f, 0x00102ab1, + 0x00101c0f, 0x00101c0f, 0x00101c0f, 0x916c0583, + 0x05000003, 0x641f4407, 0x05f9f12d, 0x59a00408, 0x59a00a08, 0x900409c0, 0x80040d40, 0x4805d806, 0x59a0040a, 0x59a00a0a, 0x900409c0, 0x80040d40, 0x4805d807, 0x6401d801, 0x0501fa96, 0x05020003, - 0x640b4407, 0x05f9f120, 0x417a8800, 0x497b4001, + 0x640b4407, 0x05f9f11e, 0x417a8800, 0x497b4001, 0x912c0406, 0x48034002, 0x59a00407, 0x8c000504, 0x0502008b, 0x4c5c0000, 0x4c600000, 0x4c640000, 0x4178b800, 0x59a0c407, 0x59a0c802, 0x0001fac4, - 0x05020027, 0x0509f93e, 0x05000003, 0x0509f8a7, + 0x05020027, 0x0509f94f, 0x05000003, 0x0509f8b6, 0x05020023, 0x8c60053e, 0x05020020, 0x8c600500, 0x05000008, 0x59340009, 0x4400c800, 0x8064c800, 0x59340008, 0x4400c800, 0x8064c800, 0x0501f007, 0x59340007, 0x4400c800, 0x8064c800, 0x59340006, 0x4400c800, 0x8064c800, 0x83440580, 0x000007fe, 0x0500000b, 0x83440580, 0x000007fc, 0x05000008, - 0x0509f934, 0x05000003, 0x85468d5e, 0x0501f004, - 0x0509f86b, 0x05020002, 0x85468d5e, 0x4544c800, + 0x0509f945, 0x05000003, 0x85468d5e, 0x0501f004, + 0x0509f87a, 0x05020002, 0x85468d5e, 0x4544c800, 0x85468d1e, 0x8064c800, 0x905cbc0c, 0x81468800, 0x83440480, 0x000007f0, 0x0500100c, 0x8c600506, 0x05000025, 0x83440580, 0x000007f0, 0x05020003, @@ -2803,29 +2804,29 @@ static const uint32_t isp_2500_risc_code[] = { 0x80040480, 0x05021004, 0x8460c57e, 0x4178b800, 0x05fdf7bb, 0x49474000, 0x485dd805, 0x59a00002, 0x4801d803, 0x40ec1000, 0x0001f81c, 0x4a01d808, - 0x00102b73, 0x5c00c800, 0x5c00c000, 0x5c00b800, + 0x00102b77, 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x1c01f000, 0x8c60053e, 0x05020019, 0x805cb9c0, 0x05000021, 0x59a00001, 0x805c0400, 0x48034001, 0x59a00a0b, 0x800409c0, 0x05000005, 0x80040480, 0x05021003, 0x4178b800, 0x0501f00d, 0x59a00801, 0x48074407, 0x485dd805, 0x59a00002, 0x4801d803, - 0x4a01d808, 0x00101bc0, 0x40ec1000, 0x5c00c800, + 0x4a01d808, 0x00101bc2, 0x40ec1000, 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x0001f01c, 0x59a00001, 0x805c0c00, 0x59a0020b, 0x80040480, 0x48034208, 0x642b4407, 0x5c00c800, 0x5c00c000, 0x5c00b800, - 0x05f9f09d, 0x59a00801, 0x48074407, 0x5c00c800, - 0x5c00c000, 0x5c00b800, 0x05f9f055, 0x4031d800, + 0x05f9f09b, 0x59a00801, 0x48074407, 0x5c00c800, + 0x5c00c000, 0x5c00b800, 0x05f9f053, 0x4031d800, 0x58ef400a, 0x58ec0002, 0x82000580, 0x00000200, - 0x05f80089, 0x59a28800, 0x05fdf777, 0x4c5c0000, + 0x05f80087, 0x59a28800, 0x05fdf777, 0x4c5c0000, 0x4c600000, 0x4c640000, 0x4178b800, 0x59a0c407, - 0x59a0c802, 0x0001fac4, 0x05020029, 0x0509f8b4, - 0x05000003, 0x0509f81d, 0x05020025, 0x8c60053e, + 0x59a0c802, 0x0001fac4, 0x05020029, 0x0509f8c5, + 0x05000003, 0x0509f82c, 0x05020025, 0x8c60053e, 0x05020022, 0x83440580, 0x000007fe, 0x0500000f, - 0x83440580, 0x000007fc, 0x0500000c, 0x0509f8b9, + 0x83440580, 0x000007fc, 0x0500000c, 0x0509f8ca, 0x05000005, 0x59340403, 0x8400055e, 0x48026c03, - 0x0501f006, 0x0505ffee, 0x05020004, 0x59340403, + 0x0501f006, 0x0505fffd, 0x05020004, 0x59340403, 0x8400055e, 0x48026c03, 0x4134a000, 0x4064a800, - 0x6018b000, 0x052dfdc2, 0x59340007, 0x4400a800, + 0x6018b000, 0x052dfe88, 0x59340007, 0x4400a800, 0x59340006, 0x4800a801, 0x59340009, 0x4800a802, 0x59340008, 0x4800a803, 0x59340403, 0x8400051e, 0x48026c03, 0x9064cc0a, 0x905cbc28, 0x81468800, @@ -2838,46 +2839,46 @@ static const uint32_t isp_2500_risc_code[] = { 0x05000006, 0x80040480, 0x05021004, 0x8460c57e, 0x4178b800, 0x05fdf7b8, 0x49474000, 0x485dd805, 0x59a00002, 0x4801d803, 0x40ec1000, 0x0001f81c, - 0x4a01d808, 0x00102c00, 0x5c00c800, 0x5c00c000, + 0x4a01d808, 0x00102c04, 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x1c01f000, 0x8c60053e, 0x05020019, 0x805cb9c0, 0x05000021, 0x59a00001, 0x805c0400, 0x48034001, 0x59a00a0b, 0x800409c0, 0x05000005, 0x80040480, 0x05021003, 0x4178b800, 0x0501f00d, 0x59a00801, 0x48074407, 0x485dd805, 0x59a00002, - 0x4801d803, 0x4a01d808, 0x00101bc0, 0x40ec1000, + 0x4801d803, 0x4a01d808, 0x00101bc2, 0x40ec1000, 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x0001f01c, 0x59a00001, 0x805c0c00, 0x59a0020b, 0x80040480, 0x48034208, 0x642b4407, 0x5c00c800, 0x5c00c000, - 0x5c00b800, 0x05f9f010, 0x59a00801, 0x48074407, - 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x05f5f7c8, + 0x5c00b800, 0x05f9f00e, 0x59a00801, 0x48074407, + 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x05f5f7c6, 0x4031d800, 0x58ef400a, 0x58ec0002, 0x82000580, - 0x00000200, 0x05f407fc, 0x59a28800, 0x05fdf774, + 0x00000200, 0x05f407fa, 0x59a28800, 0x05fdf774, 0x61f82800, 0x59a00c07, 0x59a01208, 0x59a01c08, 0x59a0220a, 0x82040500, 0x0000ff00, 0x840001c0, - 0x900034a0, 0x05f417fc, 0x80140480, 0x05f417fa, - 0x82040500, 0x000000ff, 0x900034a0, 0x05f417f6, - 0x80140480, 0x05f417f4, 0x82080500, 0x0000ff00, - 0x840001c0, 0x900034a0, 0x05f417ef, 0x80140480, - 0x05f417ed, 0x82080500, 0x000000ff, 0x900034a0, - 0x05f417e9, 0x80140480, 0x05f417e7, 0x820c0500, - 0x0000ff00, 0x840001c0, 0x900034a0, 0x05f417e2, - 0x80140480, 0x05f417e0, 0x820c0500, 0x000000ff, - 0x900034a0, 0x05f417dc, 0x80140480, 0x05f417da, + 0x900034a0, 0x05f417fa, 0x80140480, 0x05f417f8, + 0x82040500, 0x000000ff, 0x900034a0, 0x05f417f4, + 0x80140480, 0x05f417f2, 0x82080500, 0x0000ff00, + 0x840001c0, 0x900034a0, 0x05f417ed, 0x80140480, + 0x05f417eb, 0x82080500, 0x000000ff, 0x900034a0, + 0x05f417e7, 0x80140480, 0x05f417e5, 0x820c0500, + 0x0000ff00, 0x840001c0, 0x900034a0, 0x05f417e0, + 0x80140480, 0x05f417de, 0x820c0500, 0x000000ff, + 0x900034a0, 0x05f417da, 0x80140480, 0x05f417d8, 0x82100500, 0x0000ff00, 0x840001c0, 0x900034a0, - 0x05f417d5, 0x80140480, 0x05f417d3, 0x82100500, - 0x000000ff, 0x900034a0, 0x05f417cf, 0x80140480, - 0x05f417cd, 0x900401c0, 0x80080d40, 0x900c01c0, + 0x05f417d3, 0x80140480, 0x05f417d1, 0x82100500, + 0x000000ff, 0x900034a0, 0x05f417cd, 0x80140480, + 0x05f417cb, 0x900401c0, 0x80080d40, 0x900c01c0, 0x80101d40, 0x91a8342d, 0x44043000, 0x80183000, - 0x440c3000, 0x05f5f77e, 0x916c0583, 0x05000003, - 0x641f4407, 0x05f5f7bc, 0x59a00408, 0x59a00a08, + 0x440c3000, 0x05f5f77c, 0x916c0583, 0x05000003, + 0x641f4407, 0x05f5f7ba, 0x59a00408, 0x59a00a08, 0x900409c0, 0x80040d40, 0x4805d806, 0x59a0040a, 0x59a00a0a, 0x900409c0, 0x80040d40, 0x4805d807, 0x6401d801, 0x0501f923, 0x05020003, 0x640b4407, - 0x05f5f7ad, 0x417a8800, 0x497b4001, 0x912c0405, + 0x05f5f7ab, 0x417a8800, 0x497b4001, 0x912c0405, 0x48034002, 0x4c5c0000, 0x4c600000, 0x4c640000, 0x4178b800, 0x4178c800, 0x59a0c002, 0x41440000, 0x81ac0400, 0x50026800, 0x813669c0, 0x0500000a, - 0x0505ffcb, 0x05020008, 0x8c64053e, 0x05020005, + 0x0505ffdc, 0x05020008, 0x8c64053e, 0x05020005, 0x59340002, 0x4800c000, 0x4944c001, 0x9060c402, 0x905cbc08, 0x81468800, 0x83440480, 0x00000800, 0x0502101f, 0xb05c0480, 0x05021002, 0x05fdf7ec, @@ -2886,88 +2887,88 @@ static const uint32_t isp_2500_risc_code[] = { 0x800409c0, 0x05000006, 0x80040480, 0x05021004, 0x4178b800, 0x8464cd7e, 0x05fdf7dd, 0x49474000, 0x485dd805, 0x59a00002, 0x4801d803, 0x40ec1000, - 0x0001f81c, 0x4a01d808, 0x00102cc3, 0x5c00c800, + 0x0001f81c, 0x4a01d808, 0x00102cc7, 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x1c01f000, 0x8c64053e, 0x0502001a, 0x805cb9c0, 0x05000022, 0x59a00001, 0x805c0400, 0x48034001, 0x59a00a0b, 0x800409c0, 0x05000005, 0x80040480, 0x05021003, 0x4178b800, 0x0501f00e, 0x59a00801, 0x80040906, 0x48074407, 0x485dd805, 0x59a00002, 0x4801d803, 0x4a01d808, - 0x00101bc0, 0x40ec1000, 0x5c00c800, 0x5c00c000, + 0x00101bc2, 0x40ec1000, 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x0001f01c, 0x59a00001, 0x805c0c00, 0x59a0020b, 0x80040480, 0x48034208, 0x642b4407, - 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x05f5f74e, + 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x05f5f74c, 0x59a00801, 0x80040906, 0x48074407, 0x5c00c800, - 0x5c00c000, 0x5c00b800, 0x05f5f705, 0x4031d800, + 0x5c00c000, 0x5c00b800, 0x05f5f703, 0x4031d800, 0x58ef400a, 0x58ec0002, 0x82000580, 0x00000200, - 0x05f40739, 0x59a28800, 0x05fdf797, 0x8d0c050e, - 0x05000003, 0x64074407, 0x05f5f73b, 0x59a8021b, + 0x05f40737, 0x59a28800, 0x05fdf797, 0x8d0c050e, + 0x05000003, 0x64074407, 0x05f5f739, 0x59a8021b, 0x8c00050a, 0x05020005, 0x8c000506, 0x05020003, - 0x645b4407, 0x05f5f734, 0x0501f8a6, 0x05020003, - 0x640b4407, 0x05f5f730, 0x59a00c07, 0x80040902, + 0x645b4407, 0x05f5f732, 0x0501f8a6, 0x05020003, + 0x640b4407, 0x05f5f72e, 0x59a00c07, 0x80040902, 0x59a00408, 0x59a01208, 0x900811c0, 0x80081540, 0x59a0040a, 0x59a01a0a, 0x900c19c0, 0x800c1d40, - 0x912c0406, 0x0501f8b7, 0x4a01d808, 0x00102ce9, + 0x912c0406, 0x0501f8b7, 0x4a01d808, 0x00102ced, 0x1c01f000, 0x4031d800, 0x58ef400a, 0x58ee580c, - 0x58ec0002, 0x82000580, 0x00000200, 0x05f40712, - 0x592c000a, 0x050dfe58, 0x05040c48, 0x05f6071a, + 0x58ec0002, 0x82000580, 0x00000200, 0x05f40710, + 0x592c000a, 0x050dfead, 0x05040c53, 0x05f60718, 0x49474001, 0x481a6802, 0x592c000b, 0x82001d80, 0x70000000, 0x05020005, 0x0501f882, 0x0502000c, - 0x640b4407, 0x05f5f70c, 0x82001d80, 0x72000000, - 0x05f6070d, 0x0501f87b, 0x0502087a, 0x05020879, - 0x05020003, 0x640b4407, 0x05f5f703, 0x58ee580c, + 0x640b4407, 0x05f5f70a, 0x82001d80, 0x72000000, + 0x05f6070b, 0x0501f87b, 0x0502087a, 0x05020879, + 0x05020003, 0x640b4407, 0x05f5f701, 0x58ee580c, 0x4a025c05, 0x00008000, 0x497a5a05, 0x592c3209, 0x80183102, 0x592c1801, 0x4a001806, 0x01000000, - 0x0521fc5f, 0x05020003, 0x640f4407, 0x05f5f6f6, - 0x4a01d808, 0x00102d17, 0x1c01f000, 0x592c4000, + 0x0521fcf1, 0x05020003, 0x640f4407, 0x05f5f6f4, + 0x4a01d808, 0x00102d1b, 0x1c01f000, 0x592c4000, 0x592c0006, 0x82000580, 0x01000000, 0x05020003, - 0x64134407, 0x05f5f6ec, 0x4c580000, 0x4c500000, + 0x64134407, 0x05f5f6ea, 0x4c580000, 0x4c500000, 0x4c540000, 0x912c3c06, 0x401ca000, 0x401ca800, 0x5820280b, 0x6008b000, 0x82143580, 0x70000000, - 0x05000002, 0x603cb000, 0x052dfc70, 0x5c00a800, + 0x05000002, 0x603cb000, 0x052dfd36, 0x5c00a800, 0x5c00a000, 0x5c00b000, 0x401c0000, 0x58201007, 0x58201808, 0x58202206, 0x80102102, 0x82143580, - 0x70000000, 0x05020005, 0x90103482, 0x05f416d6, + 0x70000000, 0x05020005, 0x90103482, 0x05f416d4, 0x60080800, 0x0501f069, 0x82143580, 0x72000000, - 0x05f606d1, 0x901034aa, 0x05f416cf, 0x603c0800, - 0x0501f862, 0x4a01d808, 0x00102d44, 0x1c01f000, + 0x05f606cf, 0x901034aa, 0x05f416cd, 0x603c0800, + 0x0501f862, 0x4a01d808, 0x00102d48, 0x1c01f000, 0x4031d800, 0x58ef400a, 0x58ee580d, 0x58ec0002, - 0x82000580, 0x00000200, 0x05f406b7, 0x592e5800, + 0x82000580, 0x00000200, 0x05f406b5, 0x592e5800, 0x912c0c06, 0x4c580000, 0x4c500000, 0x4c540000, - 0x4004a000, 0x4004a800, 0x603cb000, 0x052dfc47, + 0x4004a000, 0x4004a800, 0x603cb000, 0x052dfd0d, 0x5c00a800, 0x5c00a000, 0x5c00b000, 0x40ec1000, 0x64001001, 0x64f01005, 0x48041003, 0x0001f81c, - 0x4a01d808, 0x00102d5f, 0x1c01f000, 0x4031d800, + 0x4a01d808, 0x00102d63, 0x1c01f000, 0x4031d800, 0x58ef400a, 0x58ee580d, 0x58ec0002, 0x82000580, - 0x00000200, 0x05f4069c, 0x912c0c06, 0x4c580000, + 0x00000200, 0x05f4069a, 0x912c0c06, 0x4c580000, 0x4c500000, 0x4c540000, 0x4004a000, 0x4004a800, - 0x6030b000, 0x052dfc2d, 0x5c00a800, 0x5c00a000, + 0x6030b000, 0x052dfcf3, 0x5c00a800, 0x5c00a000, 0x5c00b000, 0x40ec1000, 0x64001001, 0x64c01005, - 0x48041003, 0x0001f81c, 0x4a01d808, 0x00101bc0, + 0x48041003, 0x0001f81c, 0x4a01d808, 0x00101bc2, 0x1c01f000, 0x0501f803, 0x412d8800, 0x1c01f000, - 0x05e9ffec, 0x0500000e, 0x497a5800, 0x58ec000c, + 0x05e9ffe8, 0x0500000e, 0x497a5800, 0x58ec000c, 0x80000540, 0x05020004, 0x492dd80c, 0x492dd80d, 0x0501f006, 0x58ec000d, 0x48025800, 0x90000401, 0x452c0000, 0x492dd80d, 0x912c0405, 0x492fc857, 0x4803c857, 0x1c01f000, 0x4d2c0000, 0x58ec400c, 0x802041c0, 0x05000007, 0x4823c857, 0x40225800, - 0x592c4001, 0x497a5801, 0x05e9ffe2, 0x05fdf7f9, + 0x592c4001, 0x497a5801, 0x05e9ffde, 0x05fdf7f9, 0x4979d80c, 0x4979d80d, 0x5c025800, 0x1c01f000, 0x60043000, 0x0501f006, 0x60043000, 0x0501f005, 0x60003000, 0x0501f003, 0x60003000, 0x800408c4, - 0x800409c0, 0x05e80c41, 0x4803c857, 0x4807c857, + 0x800409c0, 0x05e80c3d, 0x4803c857, 0x4807c857, 0x480bc857, 0x480fc857, 0x481bc857, 0x48efc857, 0x4819d801, 0x4801d803, 0x4809d806, 0x480dd807, 0x4805d805, 0x40ec1000, 0x0001f81c, 0x4a01d808, - 0x00101bc0, 0x1c01f000, 0x40681000, 0x406c1800, + 0x00101bc2, 0x1c01f000, 0x40681000, 0x406c1800, 0x80002d80, 0x480bc857, 0x480fc857, 0x4813c857, 0x4817c857, 0x8d0c0520, 0x05000004, 0x59a80005, - 0x8c000516, 0x052a057e, 0x4d2c0000, 0x4da00000, - 0x42034000, 0x00109410, 0x59a00018, 0x800001c0, + 0x8c000516, 0x052a0632, 0x4d2c0000, 0x4da00000, + 0x42034000, 0x00109490, 0x59a00018, 0x800001c0, 0x05020014, 0x05006013, 0x480bc020, 0x480fc021, 0x4813c022, 0x4817c023, 0x900811c0, 0x90081552, 0x480bc011, 0x59e00017, 0x8c00050a, 0x60000800, - 0x0002088c, 0x8d0c0530, 0x05f2099b, 0x0002098c, + 0x0002088c, 0x8d0c0530, 0x05f20995, 0x0002098c, 0x6403c017, 0x4203e000, 0x30000001, 0x0501f049, 0x4c040000, 0x4c1c0000, 0x80000800, 0x48074018, 0x59a0381b, 0x481fc857, 0x801c39c0, 0x05020023, @@ -2975,13 +2976,13 @@ static const uint32_t isp_2500_risc_code[] = { 0x48034019, 0x59a0021a, 0x90000402, 0x90000c94, 0x4803421a, 0x05001003, 0x497b421a, 0x41780000, 0x59a03817, 0x801c3c00, 0x0501f02c, 0x4803c856, - 0x05e9ff74, 0x05000007, 0x492f401b, 0x492f401c, + 0x05e9ff70, 0x05000007, 0x492f401b, 0x492f401c, 0x412c3800, 0x497b421d, 0x497a5814, 0x0501f023, 0x5988001e, 0x80000000, 0x4803101e, 0x59a00018, 0x80000040, 0x48034018, 0x59a0021a, 0x59a03817, 0x801c3c00, 0x0501f019, 0x59a0021d, 0x90000402, 0x90000c93, 0x05021004, 0x4803421d, 0x801c3c00, - 0x0501f012, 0x05e9ff5b, 0x0502000b, 0x5988001e, + 0x0501f012, 0x05e9ff57, 0x0502000b, 0x5988001e, 0x80000000, 0x4803101e, 0x59a00018, 0x80000040, 0x48034018, 0x4803c856, 0x59a0021d, 0x801c3c00, 0x0501f006, 0x492f401b, 0x492c3814, 0x412c3800, @@ -2989,23 +2990,23 @@ static const uint32_t isp_2500_risc_code[] = { 0x48103c01, 0x48143a01, 0x5c003800, 0x5c000800, 0x5c034000, 0x5c025800, 0x1c01f000, 0x40681800, 0x406c2000, 0x40703000, 0x480fc857, 0x4813c857, - 0x481bc857, 0x42000000, 0x001097b5, 0x052dfa66, + 0x481bc857, 0x42000000, 0x00109835, 0x052dfb2c, 0x801800d0, 0x40002800, 0x60501100, 0x05fdf786, 0x4c000000, 0x599c0017, 0x8c000512, 0x5c000000, 0x1c01f000, 0x4c000000, 0x599c0018, 0x8c00050e, 0x5c000000, 0x1c01f000, 0x8d0c050e, 0x05000003, - 0x64074407, 0x05f5f5c8, 0x916c0583, 0x05000003, - 0x641f4407, 0x05f5f5c4, 0x599c0017, 0x8c00050a, - 0x05000003, 0x64234407, 0x05f5f5bf, 0x59340405, + 0x64074407, 0x05f5f5c6, 0x916c0583, 0x05000003, + 0x641f4407, 0x05f5f5c2, 0x599c0017, 0x8c00050a, + 0x05000003, 0x64234407, 0x05f5f5bd, 0x59340405, 0x8c000508, 0x05020003, 0x8c00050a, 0x05fe02f1, 0x497a5a05, 0x497a5806, 0x4a025c05, 0x00008000, - 0x0521fba7, 0x05020003, 0x640f4407, 0x05f5f5b2, - 0x4a01d808, 0x00102e5b, 0x1c01f000, 0x592c0006, + 0x0521fc39, 0x05020003, 0x640f4407, 0x05f5f5b0, + 0x4a01d808, 0x00102e5f, 0x1c01f000, 0x592c0006, 0x82000580, 0x01000000, 0x05020003, 0x64134407, - 0x05f5f5a9, 0x59a28c07, 0x0001fac4, 0x05f605aa, + 0x05f5f5a7, 0x59a28c07, 0x0001fac4, 0x05f605a8, 0x05fdf2dc, 0x82001580, 0x0000ffff, 0x05000006, - 0x050dfce1, 0x00000ac4, 0x05020008, 0x050dff31, - 0x0501f006, 0x61be880f, 0x0001fac4, 0x050c0f2d, + 0x050dfd36, 0x00000ac4, 0x05020008, 0x050dffb9, + 0x0501f006, 0x61be880f, 0x0001fac4, 0x050c0fb5, 0x81468840, 0x05fe17fd, 0x1c01f000, 0x4803c856, 0x4c0c0000, 0x4d340000, 0x4d440000, 0x61fa880f, 0x0001fac4, 0x05020006, 0x5934180a, 0x900c1d01, @@ -3014,7 +3015,7 @@ static const uint32_t isp_2500_risc_code[] = { 0x05011000, 0x48efc840, 0x643fc842, 0x40000000, 0x05fd17ff, 0x4a01d80e, 0xbeefbeef, 0x1c01f000, 0x497b4000, 0x497b4001, 0x497b4002, 0x497b4003, - 0x497b4004, 0x1c01f000, 0x42002000, 0x0010cca4, + 0x497b4004, 0x1c01f000, 0x42002000, 0x0010ccb4, 0x41580000, 0x41781000, 0x58100c07, 0x800409c0, 0x0500000c, 0x90041d83, 0x0500000a, 0x90041c86, 0x05001007, 0x90041d8a, 0x05000005, 0x90041c8f, @@ -3022,57 +3023,57 @@ static const uint32_t isp_2500_risc_code[] = { 0x90102424, 0x80100c80, 0x05fc17f0, 0x40080000, 0x59a81262, 0x80080480, 0x05021002, 0x41780000, 0x81640480, 0x05021002, 0x41780000, 0x1c01f000, - 0x05f5f904, 0x05020015, 0x59a86858, 0x82346d80, - 0x3261103c, 0x05020011, 0x052dfafb, 0x0500000d, + 0x05f5f8fe, 0x05020015, 0x59a86858, 0x82346d80, + 0x3261103c, 0x05020011, 0x052dfbc1, 0x0500000d, 0x605c70f4, 0x50386800, 0x82347500, 0x03f00000, 0x82387580, 0x00400000, 0x05020007, 0x82347500, 0x000f0000, 0x82387580, 0x00010000, 0x05000002, - 0x90000541, 0x64030000, 0x1c01f000, 0x05f5f8ed, + 0x90000541, 0x64030000, 0x1c01f000, 0x05f5f8e7, 0x05020004, 0x59a86858, 0x82347580, 0x01651077, 0x1c01f000, 0x0501f805, 0x60058800, 0x05000002, - 0x60018800, 0x1c01f000, 0x05f5f8e2, 0x0502000a, + 0x60018800, 0x1c01f000, 0x05f5f8dc, 0x0502000a, 0x59a86858, 0x82347580, 0x01661077, 0x05000006, 0x82347580, 0x01681077, 0x05000003, 0x82347580, 0x01761077, 0x1c01f000, 0x0501f805, 0x60058800, - 0x05000002, 0x60018800, 0x1c01f000, 0x05f5f8d1, + 0x05000002, 0x60018800, 0x1c01f000, 0x05f5f8cb, 0x05020007, 0x59a86858, 0x82347580, 0x01681077, 0x05000003, 0x82347580, 0x01761077, 0x1c01f000, - 0x4803c856, 0x05fdfff6, 0x65034407, 0x05f6051a, - 0x59a0020b, 0x4803c857, 0x800001c0, 0x05f4051a, - 0xb0000485, 0x05f61518, 0x59a0220c, 0x8c100500, + 0x4803c856, 0x05fdfff6, 0x65034407, 0x05f60518, + 0x59a0020b, 0x4803c857, 0x800001c0, 0x05f40518, + 0xb0000485, 0x05f61516, 0x59a0220c, 0x8c100500, 0x0502001b, 0x4803c856, 0x05fdfe82, 0x05020004, - 0x640b4407, 0x4803c856, 0x05f5f50b, 0x59a00c0b, + 0x640b4407, 0x4803c856, 0x05f5f509, 0x59a00c0b, 0x59a01a0b, 0x59a0220c, 0x59a02c07, 0x912e5c02, 0x412cc800, 0x4807c857, 0x480fc857, 0x4813c857, 0x4817c857, 0x4867c857, 0x0501f8cf, 0x05000017, 0x59a00a0b, 0x59a01008, 0x900811c0, 0x59a0180a, 0x900c19c0, 0x412c0000, 0x05fdf68e, 0x4807c856, - 0x59a00c0b, 0x59a01a0b, 0x900c0581, 0x05f604f6, + 0x59a00c0b, 0x59a01a0b, 0x900c0581, 0x05f604f4, 0x59a02c07, 0x91a0cc07, 0x4807c857, 0x4813c857, 0x4817c857, 0x0501f8bc, 0x05000004, 0x59a00a07, - 0x48074407, 0x05f5f4a6, 0x64134407, 0x05f5f4e6, + 0x48074407, 0x05f5f4a4, 0x64134407, 0x05f5f4e4, 0x59a0220c, 0x4813c857, 0x05fdffbd, 0x65034407, - 0x05f604e1, 0x59a00c0b, 0x4807c857, 0x8c100500, + 0x05f604df, 0x59a00c0b, 0x4807c857, 0x8c100500, 0x0502001b, 0x05fdfe4f, 0x05020003, 0x640b4407, - 0x05f5f4d9, 0x59a00a0b, 0xb0040485, 0x05f614da, + 0x05f5f4d7, 0x59a00a0b, 0xb0040485, 0x05f614d8, 0x59a01008, 0x900811c0, 0x59a0180a, 0x900c19c0, - 0x912c0402, 0x05fdfe65, 0x4a01d808, 0x00102f3d, + 0x912c0402, 0x05fdfe65, 0x4a01d808, 0x00102f41, 0x1c01f000, 0x4031d800, 0x58ef400a, 0x58ee580c, - 0x58ec0002, 0x82000580, 0x00000200, 0x05f404be, + 0x58ec0002, 0x82000580, 0x00000200, 0x05f404bc, 0x912c1402, 0x59a01a0b, 0x0501f003, 0x91a0140b, 0x60041800, 0x59a00c0b, 0x59a0220c, 0x59a02c07, 0x4807c857, 0x480bc857, 0x50080000, 0x82000500, 0x000000ff, 0x4803c857, 0x480fc857, 0x4813c857, - 0x4817c857, 0x0501f830, 0x64134407, 0x05f404b2, - 0x05f5f46f, 0x05fdff8a, 0x0502000d, 0x4803c856, + 0x4817c857, 0x0501f830, 0x64134407, 0x05f404b0, + 0x05f5f46d, 0x05fdff8a, 0x0502000d, 0x4803c856, 0x61c0083f, 0x61c4103f, 0x64000800, 0x46001000, 0x000001a7, 0x64040800, 0x64041000, 0x64080800, 0x50080000, 0x8400054e, 0x44001000, 0x1c01f000, 0x4803c856, 0x4c5c0000, 0x64103000, 0x60e0b817, - 0x05f1fe9b, 0x805cb840, 0x05000005, 0x501c6800, + 0x05f1fe95, 0x805cb840, 0x05000005, 0x501c6800, 0x90346d02, 0x05fe07fb, 0x90346d41, 0x485fc857, 0x5c00b800, 0x1c01f000, 0x4803c856, 0x4c5c0000, - 0x64103000, 0x60e0b817, 0x05f1fe8d, 0x805cb840, + 0x64103000, 0x60e0b817, 0x05f1fe87, 0x805cb840, 0x05000006, 0x501c6800, 0x82346d00, 0x00000082, 0x05fe07fa, 0x90346d41, 0x485fc857, 0x5c00b800, 0x1c01f000, 0x4803c856, 0x4c5c0000, 0x61c0303f, @@ -3107,7 +3108,7 @@ static const uint32_t isp_2500_risc_code[] = { 0x64103000, 0x64403800, 0x05fdff7c, 0x0500006f, 0x640c3000, 0x46003800, 0x000000a1, 0x64103000, 0x46003800, 0x00000090, 0x05fdff74, 0x05000067, - 0x800c19c0, 0x05e809e1, 0x4178b800, 0x900c1581, + 0x800c19c0, 0x05e809dd, 0x4178b800, 0x900c1581, 0x05000040, 0x64103000, 0x64803800, 0x05fdff5d, 0x0500005e, 0x640c3000, 0x501c0800, 0x4807c857, 0x9c0409c0, 0x8004bd57, 0x485fc857, 0x480fc857, @@ -3128,36 +3129,38 @@ static const uint32_t isp_2500_risc_code[] = { 0x640c3000, 0x501c0800, 0x4807c857, 0x82040d00, 0x000000ff, 0x9c0409c0, 0x8004bd57, 0x4807c857, 0x485fc857, 0x4863c857, 0x4867c857, 0x480fc857, - 0x40301000, 0x41780800, 0x60100000, 0x050dff25, + 0x40301000, 0x41780800, 0x60100000, 0x050dffad, 0x4807c857, 0x800409c0, 0x05000006, 0x60100000, 0x80000c81, 0x805cb910, 0x80040840, 0x05fe07fe, 0x445cc800, 0x485fc857, 0x4863c857, 0x4867c857, 0x90000541, 0x4803c856, 0x5c00c000, 0x5c00b800, 0x1c01f000, 0x0501f805, 0x60058800, 0x05000002, 0x60018800, 0x1c01f000, 0x60003020, 0x80183040, - 0x05000010, 0x052df93c, 0x05fc07fd, 0x05e9fe0c, + 0x05000010, 0x052dfa02, 0x05fc07fd, 0x05e9fe08, 0x605430f4, 0x50183800, 0x821c0500, 0x00007000, 0x05000006, 0x4803508b, 0x821c0500, 0xffff8fff, 0x44003000, 0x80000580, 0x64030000, 0x1c01f000, 0x4803c856, 0x4a034408, 0x0000cccc, 0x90000541, - 0x05fdf7fa, 0x052df928, 0x05fc07ff, 0x600008f4, + 0x05fdf7fa, 0x052df9ee, 0x05fc07ff, 0x600008f4, 0x58040015, 0x82000500, 0xffff8fff, 0x59a8108b, 0x80080540, 0x48000815, 0x64030000, 0x1c01f000, + 0x59a80005, 0x8c000514, 0x05000005, 0x42000000, + 0x001094cf, 0x50000000, 0x90000528, 0x1c01f000, 0x59c400a4, 0x4c580000, 0x4c500000, 0x4c540000, 0x9000050f, 0x90000487, 0x05001008, 0x90006c87, - 0x05ea194a, 0x0c01f807, 0x5c00a800, 0x5c00a000, + 0x05ea193e, 0x0c01f807, 0x5c00a800, 0x5c00a000, 0x5c00b000, 0x1c01f000, 0x0501f8e5, 0x05fdf7fb, - 0x001030ab, 0x001030b1, 0x001030d1, 0x001030eb, - 0x0010318d, 0x001030aa, 0x1c01f000, 0x59c40806, + 0x001030b7, 0x001030bd, 0x001030dd, 0x001030f7, + 0x00103199, 0x001030b6, 0x1c01f000, 0x59c40806, 0x8c040500, 0x05020003, 0x84040d40, 0x48078806, 0x1c01f000, 0x59c40005, 0x8c000534, 0x05020638, 0x4a038805, 0xffffffff, 0x42006000, 0x00020000, 0x0501fe1a, 0x59a80015, 0x82000500, 0xfffffffa, 0x84000542, 0x48035015, 0x497b521b, 0x42000800, - 0x001098d3, 0x45780800, 0x497b506f, 0x42006000, + 0x00109953, 0x45780800, 0x497b506f, 0x42006000, 0xffefffff, 0x42006800, 0x40000000, 0x0501fe05, 0x59c40006, 0x82000500, 0xffffff0f, 0x48038806, - 0x60400800, 0x42001000, 0x00103655, 0x050dfca7, + 0x60400800, 0x42001000, 0x00103661, 0x050dfd27, 0x0501f001, 0x42006000, 0xffffffff, 0x42006800, 0x00800000, 0x0501fdf7, 0x6120b001, 0x59c400a4, 0x9000050f, 0x9000058a, 0x0500000d, 0x8058b040, @@ -3165,13 +3168,13 @@ static const uint32_t isp_2500_risc_code[] = { 0x42006800, 0x00018000, 0x0501fdea, 0x42006000, 0xfffeffff, 0x41786800, 0x0501f5e6, 0x497b5010, 0x6403506e, 0x80000580, 0x0501f5ef, 0x4a038805, - 0xffffffff, 0x59a8006e, 0x90000c84, 0x05ea18f7, - 0x0c01f001, 0x001030f4, 0x0010311a, 0x00103186, + 0xffffffff, 0x59a8006e, 0x90000c84, 0x05ea18eb, + 0x0c01f001, 0x00103100, 0x00103126, 0x00103192, 0x4803c856, 0x59c400a3, 0x8400051e, 0x480388a3, 0x6407506e, 0x59c40008, 0x82000540, 0x00000280, - 0x48038808, 0x0501fdb7, 0x42007800, 0x0010947c, - 0x4a007806, 0x11010000, 0x4200a000, 0x00109382, - 0x4200a800, 0x00109483, 0x6008b000, 0x052df858, + 0x48038808, 0x0501fdb7, 0x42007800, 0x001094fc, + 0x4a007806, 0x11010000, 0x4200a000, 0x00109402, + 0x4200a800, 0x00109503, 0x6008b000, 0x052df916, 0x59c40802, 0x84040d0c, 0x48078802, 0x600c0800, 0x497b5077, 0x0501fcca, 0x64075077, 0x497b5073, 0x0501fdcf, 0x42006000, 0xffffffff, 0x42006800, @@ -3180,25 +3183,25 @@ static const uint32_t isp_2500_risc_code[] = { 0x80002540, 0x0500005e, 0x59c40004, 0x90000503, 0x05020065, 0x59a80815, 0x8c040502, 0x05000049, 0x9010058c, 0x0502004c, 0x90100418, 0x8000b104, - 0x41cc1000, 0x42001800, 0x0010947c, 0x50080800, + 0x41cc1000, 0x42001800, 0x001094fc, 0x50080800, 0x500c0000, 0x80040580, 0x05020019, 0x80081000, 0x800c1800, 0x8058b040, 0x05fe07f9, 0x0501fdac, 0x59c80015, 0x84000508, 0x48039015, 0x42006000, 0xffffffff, 0x42006800, 0x00500000, 0x0501fd91, - 0x640b506e, 0x640b5010, 0x05f1f9f6, 0x6140080f, - 0x42001000, 0x001035b3, 0x050dfd5e, 0x59a80015, + 0x640b506e, 0x640b5010, 0x05f1f9e8, 0x6140080f, + 0x42001000, 0x001035bf, 0x050dfdde, 0x59a80015, 0x84000506, 0x48035015, 0x0501f56e, 0x59cc0806, 0x82040d80, 0x11010000, 0x05020027, 0x59cc0800, 0x82040500, 0x00ffffff, 0x05000018, 0x82000580, 0x000000ef, 0x05020015, 0x59cc0801, 0x82040500, 0x00ffffff, 0x82000580, 0x000000ef, 0x0502000f, - 0x91cca407, 0x4200a800, 0x00109382, 0x6008b000, + 0x91cca407, 0x4200a800, 0x00109402, 0x6008b000, 0x50500800, 0x50540000, 0x80040480, 0x05001007, 0x05020011, 0x8050a000, 0x8054a800, 0x8058b040, 0x05fe07f8, 0x0501f00c, 0x59a80015, 0x84000502, 0x48035015, 0x59c80015, 0x84000508, 0x48039015, - 0x41cca000, 0x4200a800, 0x0010947c, 0x6024b000, - 0x0529ffef, 0x0501fd6e, 0x42006000, 0xffffffff, + 0x41cca000, 0x4200a800, 0x001094fc, 0x6024b000, + 0x052df8ad, 0x0501fd6e, 0x42006000, 0xffffffff, 0x42006800, 0x00080000, 0x0501fd56, 0x42006000, 0xfff7ffff, 0x41786800, 0x0501fd52, 0x42006000, 0xffffffff, 0x60006880, 0x0501fd4e, 0x59c40004, @@ -3206,118 +3209,118 @@ static const uint32_t isp_2500_risc_code[] = { 0x0501f453, 0x1c01f000, 0x1c01f000, 0x59a80010, 0x90006d8f, 0x05000003, 0x9000059b, 0x05020c1e, 0x1c01f000, 0x59a80015, 0x84000506, 0x48035015, - 0x497b5077, 0x59a80010, 0x90000c9e, 0x05ea1853, - 0x0c01f001, 0x001031c4, 0x001031d4, 0x001031f6, - 0x0010320a, 0x00103228, 0x0010324d, 0x0010326b, - 0x00103294, 0x001032b2, 0x001032cd, 0x00103302, - 0x00103326, 0x0010333a, 0x00103347, 0x0010335c, - 0x0010336e, 0x00103373, 0x00103394, 0x001033b3, - 0x001033d3, 0x001033f2, 0x0010341b, 0x00103455, - 0x00103475, 0x0010348b, 0x001034c5, 0x001034db, - 0x001034eb, 0x001034ec, 0x4803c856, 0x601ed800, - 0x0505ff2a, 0x05000006, 0x42006000, 0xffffffd7, + 0x497b5077, 0x59a80010, 0x90000c9e, 0x05ea1847, + 0x0c01f001, 0x001031d0, 0x001031e0, 0x00103202, + 0x00103216, 0x00103234, 0x00103259, 0x00103277, + 0x001032a0, 0x001032be, 0x001032d9, 0x0010330e, + 0x00103332, 0x00103346, 0x00103353, 0x00103368, + 0x0010337a, 0x0010337f, 0x001033a0, 0x001033bf, + 0x001033df, 0x001033fe, 0x00103427, 0x00103461, + 0x00103481, 0x00103497, 0x001034d1, 0x001034e7, + 0x001034f7, 0x001034f8, 0x4803c856, 0x601ed800, + 0x0505ff54, 0x05000006, 0x42006000, 0xffffffd7, 0x41786800, 0x0501fd13, 0x0501f009, 0x59c40006, 0x82000500, 0xffffff0f, 0x48038806, 0x4a038805, - 0x000000f0, 0x0509fa63, 0x0505fe91, 0x1c01f000, + 0x000000f0, 0x0509fa8d, 0x0505febb, 0x1c01f000, 0x4803c856, 0x42006000, 0xbf7fffff, 0x42006800, - 0x00400000, 0x0501fd03, 0x05f1f96a, 0x64075010, - 0x42001000, 0x00103655, 0x050dfbc6, 0x0501fc8f, - 0x6140080f, 0x42001000, 0x001035b3, 0x050df4cd, + 0x00400000, 0x0501fd03, 0x05f1f95c, 0x64075010, + 0x42001000, 0x00103661, 0x050dfc46, 0x0501fc8f, + 0x6140080f, 0x42001000, 0x001035bf, 0x050df54d, 0x59a80073, 0x90000594, 0x0502001e, 0x4803c857, 0x42006000, 0xffbfffff, 0x41786800, 0x0501fcf1, 0x59c40004, 0x90000503, 0x05020016, 0x42001000, - 0x001035b3, 0x050dfba0, 0x59cc1006, 0x82081580, + 0x001035bf, 0x050dfc20, 0x59cc1006, 0x82081580, 0x11020000, 0x05020010, 0x59cc1007, 0x8c08053e, 0x0500000a, 0x59a80015, 0x8c000504, 0x05020007, - 0x42000000, 0x00109746, 0x0529fea7, 0x59a80015, + 0x42000000, 0x001097c6, 0x0529ff65, 0x59a80015, 0x84000544, 0x48035015, 0x64435010, 0x0501f180, 0x1c01f000, 0x0501f3b4, 0x4803c856, 0x640f5010, 0x42006000, 0xbf3fffff, 0x42006800, 0x00100000, - 0x0501fcd0, 0x42001000, 0x00103655, 0x050dfb95, - 0x0501fc5e, 0x42001000, 0x001035b3, 0x050dfb7e, - 0x42007800, 0x00109482, 0x46007800, 0x11020000, + 0x0501fcd0, 0x42001000, 0x00103661, 0x050dfc15, + 0x0501fc5e, 0x42001000, 0x001035bf, 0x050dfbfe, + 0x42007800, 0x00109502, 0x46007800, 0x11020000, 0x60140800, 0x0501f3ce, 0x59a80073, 0x80000540, - 0x0500001a, 0x4803c857, 0x42001000, 0x001035b3, - 0x050dfb71, 0x59a80073, 0x90000594, 0x05020014, + 0x0500001a, 0x4803c857, 0x42001000, 0x001035bf, + 0x050dfbf1, 0x59a80073, 0x90000594, 0x05020014, 0x59cc1006, 0x82081580, 0x11020000, 0x05020010, 0x59cc1007, 0x8c08053e, 0x0500000a, 0x59a80015, - 0x8c000504, 0x05020007, 0x42000000, 0x00109746, - 0x0529fe75, 0x59a80015, 0x84000544, 0x48035015, + 0x8c000504, 0x05020007, 0x42000000, 0x001097c6, + 0x0529ff33, 0x59a80015, 0x84000544, 0x48035015, 0x64135010, 0x0501f003, 0x1c01f000, 0x0501f382, 0x4803c856, 0x64175010, 0x91cca406, 0x4200a800, - 0x00109482, 0x6014b000, 0x0529ff31, 0x42007800, - 0x00109482, 0x46007800, 0x11030000, 0x8d0c0506, + 0x00109502, 0x6014b000, 0x0529ffef, 0x42007800, + 0x00109502, 0x46007800, 0x11030000, 0x8d0c0506, 0x05020012, 0x59a80015, 0x8c000500, 0x0502000f, 0x59a8080f, 0x82040580, 0x00ffffff, 0x0500000b, - 0x82040d00, 0x000000ff, 0x82040400, 0x00101a21, + 0x82040d00, 0x000000ff, 0x82040400, 0x00101a23, 0x50000800, 0x80040910, 0x60101000, 0x0501fb10, 0x05000007, 0x0501fc32, 0x6010b000, 0x91cca407, - 0x4200a800, 0x00109483, 0x0529ff15, 0x60140800, + 0x4200a800, 0x00109503, 0x0529ffd3, 0x60140800, 0x0501f38b, 0x59a80073, 0x80000540, 0x0500001a, - 0x4803c857, 0x42001000, 0x001035b3, 0x050dfb2e, + 0x4803c857, 0x42001000, 0x001035bf, 0x050dfbae, 0x59a80073, 0x90000594, 0x05020014, 0x59cc1006, 0x82081580, 0x11030000, 0x05020010, 0x59cc1007, 0x8c08053e, 0x0500000a, 0x59a80015, 0x8c000504, - 0x05020007, 0x42000000, 0x00109746, 0x0529fe32, + 0x05020007, 0x42000000, 0x001097c6, 0x0529fef0, 0x59a80015, 0x84000544, 0x48035015, 0x641b5010, 0x0501f003, 0x1c01f000, 0x0501f33f, 0x4803c856, - 0x641f5010, 0x91cca406, 0x4200a800, 0x00109482, - 0x6014b000, 0x0529feee, 0x42007800, 0x00109482, + 0x641f5010, 0x91cca406, 0x4200a800, 0x00109502, + 0x6014b000, 0x0529ffac, 0x42007800, 0x00109502, 0x46007800, 0x11040000, 0x8d0c0506, 0x0502001b, 0x59a80015, 0x8c000500, 0x05020018, 0x599c0017, 0x8c000500, 0x05000015, 0x599c1402, 0xb00804bf, - 0x05e61f66, 0x4c080000, 0x82081400, 0x00101a21, + 0x05e61f5a, 0x4c080000, 0x82081400, 0x00101a23, 0x50081000, 0x82081500, 0x000000ff, 0x480b500f, - 0x600c0800, 0x050dfed9, 0x5c000800, 0x60101000, - 0x0501fac7, 0x05000005, 0x05fdfbab, 0x05000003, + 0x600c0800, 0x050dff59, 0x5c000800, 0x60101000, + 0x0501fac7, 0x05000005, 0x05fdfba3, 0x05000003, 0x4803c856, 0x850e1d46, 0x60140800, 0x0501f344, 0x59a80073, 0x80000540, 0x0500001a, 0x4803c857, - 0x42001000, 0x001035b3, 0x050dfae7, 0x59a80073, + 0x42001000, 0x001035bf, 0x050dfb67, 0x59a80073, 0x90000594, 0x05020014, 0x59cc1006, 0x82081580, 0x11040000, 0x05020010, 0x59cc1007, 0x8c08053e, 0x0500000a, 0x59a80015, 0x8c000504, 0x05020007, - 0x42000000, 0x00109746, 0x0529fdeb, 0x59a80015, + 0x42000000, 0x001097c6, 0x0529fea9, 0x59a80015, 0x84000544, 0x48035015, 0x64235010, 0x0501f003, 0x1c01f000, 0x0501f2f8, 0x4803c856, 0x64275010, - 0x91cca406, 0x4200a800, 0x00109482, 0x6014b000, - 0x0529fea7, 0x42007800, 0x00109482, 0x46007800, + 0x91cca406, 0x4200a800, 0x00109502, 0x6014b000, + 0x0529ff65, 0x42007800, 0x00109502, 0x46007800, 0x11050100, 0x8d0c0506, 0x05020008, 0x59a80015, 0x8c000500, 0x05020005, 0x0501fa2b, 0x05020003, 0x4803c856, 0x850e1d46, 0x60140800, 0x0501fb10, - 0x4d3c0000, 0x60067800, 0x0521fd15, 0x5c027800, + 0x4d3c0000, 0x60067800, 0x0521fd9f, 0x5c027800, 0x1c01f000, 0x59a80073, 0x80000540, 0x05000031, - 0x4803c857, 0x42001000, 0x001035b3, 0x050dfaae, + 0x4803c857, 0x42001000, 0x001035bf, 0x050dfb2e, 0x59a80073, 0x90000594, 0x0502002b, 0x59cc1006, 0x82080500, 0x11050000, 0x82000580, 0x11050000, 0x05020025, 0x8c080510, 0x05000011, 0x59cc1007, 0x8c08053e, 0x0500000a, 0x59a80015, 0x8c000504, - 0x05020007, 0x42000000, 0x00109746, 0x0529fdae, + 0x05020007, 0x42000000, 0x001097c6, 0x0529fe6c, 0x59a80015, 0x84000544, 0x48035015, 0x6407506f, 0x642b5010, 0x0501f815, 0x0501f012, 0x80000540, 0x05020011, 0x59cc1007, 0x8c08053e, 0x0500000a, 0x59a80015, 0x8c000504, 0x05020007, 0x42000000, - 0x00109746, 0x0529fd9c, 0x59a80015, 0x84000544, + 0x001097c6, 0x0529fe5a, 0x59a80015, 0x84000544, 0x48035015, 0x497b506f, 0x643b5010, 0x0501f05d, 0x1c01f000, 0x0501f2a8, 0x4803c856, 0x642f5010, - 0x42001000, 0x00109483, 0x4008a800, 0x6080b000, + 0x42001000, 0x00109503, 0x4008a800, 0x6080b000, 0x4600a800, 0xffffffff, 0x8054a800, 0x8058b040, - 0x05fe07fc, 0x42007800, 0x00109482, 0x46007800, - 0x11060000, 0x42001000, 0x00109483, 0x8d0c0506, + 0x05fe07fc, 0x42007800, 0x00109502, 0x46007800, + 0x11060000, 0x42001000, 0x00109503, 0x8d0c0506, 0x05000005, 0x50080000, 0x46001000, 0x00ffffff, 0x0501f00c, 0x50080800, 0x82040d00, 0x0000ffff, 0x59a8000f, 0x82000500, 0x000000ff, 0x82000540, 0x00000100, 0x800000e0, 0x80040d40, 0x44041000, 0x60840800, 0x0501f2b2, 0x59a80073, 0x80000540, 0x05000010, 0x4803c857, 0x59a80073, 0x42001000, - 0x001035b3, 0x050dfa54, 0x59a80073, 0x82000580, + 0x001035bf, 0x050dfad4, 0x59a80073, 0x82000580, 0x00000084, 0x05020008, 0x59cc1006, 0x82081580, 0x11060000, 0x05020004, 0x64335010, 0x0501f003, 0x1c01f000, 0x0501f270, 0x4803c856, 0x64375010, - 0x91cca406, 0x4200a800, 0x00109482, 0x6084b000, - 0x0529fe1f, 0x42007800, 0x00109482, 0x46007800, + 0x91cca406, 0x4200a800, 0x00109502, 0x6084b000, + 0x0529fedd, 0x42007800, 0x00109502, 0x46007800, 0x11070000, 0x60840800, 0x0501f291, 0x59a80073, 0x80000540, 0x05000011, 0x4803c857, 0x59a80073, - 0x42001000, 0x001035b3, 0x050dfa33, 0x82000580, + 0x42001000, 0x001035bf, 0x050dfab3, 0x82000580, 0x00000084, 0x0502000a, 0x59cc1006, 0x82081580, 0x11070000, 0x05020006, 0x6407506f, 0x0501fa35, 0x643b5010, 0x0501f003, 0x1c01f000, 0x0501f24e, @@ -3325,104 +3328,104 @@ static const uint32_t isp_2500_risc_code[] = { 0x497b5073, 0x42006000, 0xffffffff, 0x42006800, 0x00300000, 0x0501fb67, 0x42006000, 0xffdfffff, 0x41786800, 0x0501fb63, 0x6140080f, 0x42001000, - 0x001035b3, 0x050df1f1, 0x4803c856, 0x59a80073, + 0x001035bf, 0x050df271, 0x4803c856, 0x59a80073, 0x80000540, 0x05020238, 0x1c01f000, 0x4803c856, - 0x64475010, 0x91cca406, 0x4200a800, 0x00109482, - 0x6014b000, 0x0529fde6, 0x4200a800, 0x00109482, + 0x64475010, 0x91cca406, 0x4200a800, 0x00109502, + 0x6014b000, 0x0529fea4, 0x4200a800, 0x00109502, 0x4600a800, 0x11020000, 0x8d0c0506, 0x05020013, 0x59a8000f, 0x82000d00, 0xffff0000, 0x0500000f, 0x82000500, 0x000000ff, 0x0500000c, 0x82000c00, - 0x00101a21, 0x50040800, 0x80040910, 0xb00405be, + 0x00101a23, 0x50040800, 0x80040910, 0xb00405be, 0x05000006, 0x82040580, 0x00000080, 0x05000003, 0x60101000, 0x0501f9c2, 0x60140800, 0x0501f244, 0x59a80073, 0x80000540, 0x0500001c, 0x4803c857, - 0x42001000, 0x001035b3, 0x050df9e7, 0x59a80073, + 0x42001000, 0x001035bf, 0x050dfa67, 0x59a80073, 0x90000594, 0x05020014, 0x59cc1006, 0x82081580, 0x11030000, 0x05020010, 0x59cc1007, 0x8c08053e, 0x0500000a, 0x59a80015, 0x8c000504, 0x05020007, - 0x42000000, 0x00109746, 0x0529fceb, 0x59a80015, + 0x42000000, 0x001097c6, 0x0529fda9, 0x59a80015, 0x84000544, 0x48035015, 0x644b5010, 0x0501f804, 0x0501f002, 0x0501f9f8, 0x1c01f000, 0x4803c856, - 0x644f5010, 0x91cca406, 0x4200a800, 0x00109482, - 0x6014b000, 0x0529fda6, 0x4200a800, 0x00109482, + 0x644f5010, 0x91cca406, 0x4200a800, 0x00109502, + 0x6014b000, 0x0529fe64, 0x4200a800, 0x00109502, 0x4600a800, 0x11030000, 0x8d0c0506, 0x05020012, 0x59a80015, 0x8c000500, 0x0502000f, 0x59a8080f, 0x82040580, 0x00ffffff, 0x0500000b, 0x82040d00, - 0x000000ff, 0x82040400, 0x00101a21, 0x50000800, + 0x000000ff, 0x82040400, 0x00101a23, 0x50000800, 0x80040910, 0x60101000, 0x0501f985, 0x05000002, 0x0501faa7, 0x60140800, 0x0501f205, 0x59a80073, 0x80000540, 0x0500001c, 0x4803c857, 0x42001000, - 0x001035b3, 0x050df9a8, 0x59a80073, 0x90000594, + 0x001035bf, 0x050dfa28, 0x59a80073, 0x90000594, 0x05020014, 0x59cc1006, 0x82081580, 0x11040000, 0x05020010, 0x59cc1007, 0x8c08053e, 0x0500000a, 0x59a80015, 0x8c000504, 0x05020007, 0x42000000, - 0x00109746, 0x0529fcac, 0x59a80015, 0x84000544, + 0x001097c6, 0x0529fd6a, 0x59a80015, 0x84000544, 0x48035015, 0x64535010, 0x0501f804, 0x0501f002, 0x0501f9b9, 0x1c01f000, 0x4803c856, 0x64575010, - 0x91cca406, 0x4200a800, 0x00109482, 0x6014b000, - 0x0529fd67, 0x4200a800, 0x00109482, 0x4600a800, + 0x91cca406, 0x4200a800, 0x00109502, 0x6014b000, + 0x0529fe25, 0x4200a800, 0x00109502, 0x4600a800, 0x11040000, 0x8d0c0506, 0x0502001b, 0x59a80015, 0x8c000500, 0x05020018, 0x599c0017, 0x8c000500, - 0x05000015, 0x599c1402, 0xb00804bf, 0x05e61ddf, - 0x4c080000, 0x82081400, 0x00101a21, 0x50081000, + 0x05000015, 0x599c1402, 0xb00804bf, 0x05e61dd3, + 0x4c080000, 0x82081400, 0x00101a23, 0x50081000, 0x82081500, 0x000000ff, 0x480b500f, 0x600c0800, - 0x050dfd52, 0x5c000800, 0x60101000, 0x0501f940, - 0x05000005, 0x05fdfa24, 0x05000003, 0x4803c856, + 0x050dfdd2, 0x5c000800, 0x60101000, 0x0501f940, + 0x05000005, 0x05fdfa1c, 0x05000003, 0x4803c856, 0x850e1d46, 0x60140800, 0x0501f1bd, 0x59a80073, 0x80000540, 0x05000037, 0x4803c857, 0x42001000, - 0x001035b3, 0x050df960, 0x59a80073, 0x90000594, + 0x001035bf, 0x050df9e0, 0x59a80073, 0x90000594, 0x0502002f, 0x59cc1006, 0x82080500, 0x11050000, 0x82000580, 0x11050000, 0x05020029, 0x8c080510, 0x0500000f, 0x0501faac, 0x59cc1007, 0x8c08053e, 0x0500000a, 0x59a80015, 0x8c000504, 0x05020007, - 0x42000000, 0x00109746, 0x0529fc5f, 0x59a80015, + 0x42000000, 0x001097c6, 0x0529fd1d, 0x59a80015, 0x84000544, 0x48035015, 0x0501f011, 0x59cc1007, 0x8c08053e, 0x0500000a, 0x59a80015, 0x8c000504, - 0x05020007, 0x42000000, 0x00109746, 0x0529fc52, + 0x05020007, 0x42000000, 0x001097c6, 0x0529fd10, 0x59a80015, 0x84000544, 0x48035015, 0x90000541, 0x0501fa91, 0x497b506f, 0x0501f002, 0x6407506f, 0x59cc1007, 0x8c08053c, 0x05000002, 0x6423521b, 0x645b5010, 0x0501f804, 0x0501f002, 0x0501f956, 0x1c01f000, 0x4803c856, 0x91cca406, 0x4200a800, - 0x00109482, 0x6014b000, 0x0529fd05, 0x645f5010, + 0x00109502, 0x6014b000, 0x0529fdc3, 0x645f5010, 0x59a8006f, 0x8c000500, 0x05000006, 0x42001000, - 0x00109482, 0x46001000, 0x11050100, 0x0501f002, + 0x00109502, 0x46001000, 0x11050100, 0x0501f002, 0x646f5010, 0x8d0c0506, 0x05020008, 0x59a80015, 0x8c000500, 0x05020005, 0x0501f883, 0x05020003, 0x4803c856, 0x850e1d46, 0x60140800, 0x0501f968, - 0x4d3c0000, 0x60067800, 0x0521fb6d, 0x5c027800, + 0x4d3c0000, 0x60067800, 0x0521fbf7, 0x5c027800, 0x1c01f000, 0x59a80073, 0x80000540, 0x05000013, - 0x4803c857, 0x42001000, 0x001035b3, 0x050df906, + 0x4803c857, 0x42001000, 0x001035bf, 0x050df986, 0x59a80073, 0x82000580, 0x00000084, 0x0502000a, 0x59cc1006, 0x82081580, 0x11060000, 0x05020006, 0x80000580, 0x0501fa54, 0x64635010, 0x0501f804, 0x0501f002, 0x0501f920, 0x1c01f000, 0x4803c856, - 0x64675010, 0x91cca406, 0x4200a800, 0x00109482, - 0x6084b000, 0x0529fcce, 0x42003800, 0x00109483, + 0x64675010, 0x91cca406, 0x4200a800, 0x00109502, + 0x6084b000, 0x0529fd8c, 0x42003800, 0x00109503, 0x8d0c0506, 0x05020017, 0x401c2800, 0x50141000, 0x80080130, 0x80000000, 0x40001800, 0x82081500, 0x00ffffff, 0x800000f0, 0x80080540, 0x44002800, 0x59a8080f, 0x82040d00, 0x000000ff, 0x400c1000, - 0x80081104, 0x82082400, 0x00109483, 0x50101000, + 0x80081104, 0x82082400, 0x00109503, 0x50101000, 0x900c0503, 0x0c01f805, 0x80081540, 0x44082000, - 0x60840800, 0x0501f12a, 0x001034b2, 0x001034b7, - 0x001034bc, 0x001034c1, 0x800408f0, 0x40040000, + 0x60840800, 0x0501f12a, 0x001034be, 0x001034c3, + 0x001034c8, 0x001034cd, 0x800408f0, 0x40040000, 0x82081500, 0x00ffffff, 0x1c01f000, 0x800408e0, 0x40040000, 0x82081500, 0xff00ffff, 0x1c01f000, 0x800408d0, 0x40040000, 0x82081500, 0xffff00ff, 0x1c01f000, 0x40040000, 0x82081500, 0xffffff00, 0x1c01f000, 0x59a80073, 0x80000540, 0x05000013, - 0x4803c857, 0x42001000, 0x001035b3, 0x050df8b6, + 0x4803c857, 0x42001000, 0x001035bf, 0x050df936, 0x59a80073, 0x82000580, 0x00000084, 0x0502000a, 0x59cc1006, 0x82081580, 0x11070000, 0x05020006, 0x6407506f, 0x0501f8b7, 0x646b5010, 0x0501f804, 0x0501f002, 0x0501f8d0, 0x1c01f000, 0x90000541, 0x0501f9fd, 0x646f5010, 0x91cca406, 0x4200a800, - 0x00109482, 0x59a82073, 0x40100000, 0x8000b104, + 0x00109502, 0x59a82073, 0x40100000, 0x8000b104, 0x40580800, 0x5450a800, 0x8050a000, 0x8054a800, 0x8058b040, 0x05fe07fc, 0x0501f0ed, 0x1c01f000, 0x1c01f000, 0x4803c856, 0x60103000, 0x42004000, - 0x00109483, 0x599c2817, 0x8c140514, 0x0502001c, + 0x00109503, 0x599c2817, 0x8c140514, 0x0502001c, 0x600c1000, 0x40200000, 0x80080400, 0x50000800, 0x82042580, 0xffffffff, 0x05020005, 0x80081040, 0x80183040, 0x05fe07f8, 0x0501f054, 0x800811c0, @@ -3440,15 +3443,15 @@ static const uint32_t isp_2500_risc_code[] = { 0x800c0540, 0x44002000, 0x59a80015, 0x84000540, 0x48035015, 0x40580000, 0x60802800, 0x80142c80, 0x40080000, 0x600c3800, 0x801c0480, 0x800000ca, - 0x80142d40, 0x82144c00, 0x00101a21, 0x50242800, + 0x80142d40, 0x82144c00, 0x00101a23, 0x50242800, 0x82142d00, 0x000000ff, 0x4817500f, 0x4c040000, - 0x40140800, 0x05edfdfd, 0x5c000800, 0x40001800, + 0x40140800, 0x05edfdef, 0x5c000800, 0x40001800, 0x500c0000, 0x80100540, 0x44001800, 0x59a80015, - 0x84000540, 0x48035015, 0x4200a800, 0x00109483, - 0x4020a000, 0x6010b000, 0x0529fc11, 0x90000541, + 0x84000540, 0x48035015, 0x4200a800, 0x00109503, + 0x4020a000, 0x6010b000, 0x0529fccf, 0x90000541, 0x0501f002, 0x80000580, 0x1c01f000, 0x4807c857, 0x480bc857, 0x4008b000, 0x91cca407, 0x4200a800, - 0x00109483, 0x40541000, 0x0529fc05, 0x40041800, + 0x00109503, 0x40541000, 0x0529fcc3, 0x40041800, 0x41782000, 0x600c0000, 0x900c1ca0, 0x05001004, 0x80102000, 0x80000040, 0x05fdf7fc, 0x40041800, 0x801021c0, 0x05000004, 0x900c1ca0, 0x80102040, @@ -3456,88 +3459,88 @@ static const uint32_t isp_2500_risc_code[] = { 0x801020c2, 0x800c1840, 0x05fe07fe, 0x80083c00, 0x91cc2c07, 0x80142c00, 0x50140000, 0x80102d00, 0x05020011, 0x80100540, 0x44003800, 0x82042400, - 0x00101a21, 0x50102800, 0x82142d00, 0x000000ff, - 0x4817500f, 0x4c040000, 0x40140800, 0x05edfdbf, + 0x00101a23, 0x50102800, 0x82142d00, 0x000000ff, + 0x4817500f, 0x4c040000, 0x40140800, 0x05edfdb1, 0x5c000800, 0x59a80015, 0x84000540, 0x48035015, 0x80000580, 0x1c01f000, 0x4807c856, 0x605c1100, - 0x59a81832, 0x0529fb16, 0x05fdf82e, 0x1c01f000, + 0x59a81832, 0x0529fbd4, 0x05fdf826, 0x1c01f000, 0x4807c856, 0x6080b000, 0x91cca407, 0x4200a800, - 0x001098d3, 0x0529f409, 0x4807c856, 0x050dfe82, + 0x00109953, 0x0529f4c7, 0x4807c856, 0x050dff02, 0x61dc0801, 0x0501f8d5, 0x497b2804, 0x497b2805, 0x497b2826, 0x497b2827, 0x6006d800, 0x42006000, 0xbe7fffff, 0x42006800, 0x00018000, 0x0501f92d, 0x42006000, 0xfffeffff, 0x41786800, 0x0501f929, - 0x497b5032, 0x60b40800, 0x42001000, 0x0010362b, - 0x0509f7b6, 0x4807c856, 0x05fdffe8, 0x497b5010, + 0x497b5032, 0x60b40800, 0x42001000, 0x00103637, + 0x050df036, 0x4807c856, 0x05fdffe8, 0x497b5010, 0x497b5073, 0x1c01f000, 0x4807c856, 0x42006000, 0xffffffff, 0x60a06800, 0x0501f11a, 0x4807c856, - 0x05fdffd2, 0x050dfb7e, 0x4df00000, 0x050dfda1, - 0x5c03e000, 0x050c0b66, 0x59c400a4, 0x9000050f, + 0x05fdffd2, 0x050dfbfe, 0x4df00000, 0x050dfe21, + 0x5c03e000, 0x050c0be6, 0x59c400a4, 0x9000050f, 0x90000582, 0x0502000a, 0x42006000, 0xffffffff, 0x42006800, 0x00200000, 0x0501f90a, 0x42006000, 0xffdfffff, 0x41786800, 0x0501f906, 0x497b5010, 0x61dc0801, 0x0501f8a1, 0x59c400a3, 0x82000500, 0xbf20bfff, 0x82000540, 0x0001c000, 0x480388a3, 0x84000520, 0x480388a3, 0x497b5032, 0x60b40800, - 0x42001000, 0x0010362b, 0x0509f788, 0x497b5073, + 0x42001000, 0x00103637, 0x050df008, 0x497b5073, 0x59b400f5, 0x8c000500, 0x05020003, 0x90000541, 0x480368f5, 0x800400c4, 0x82000400, 0x00002000, 0x4803910a, 0x59b400f6, 0x90000518, 0x05fe07fe, - 0x4a0368f0, 0x0010947b, 0x42000000, 0x00109482, + 0x4a0368f0, 0x001094fb, 0x42000000, 0x00109502, 0x4c040000, 0x40043800, 0x50000800, 0x82040d80, 0x11010000, 0x0500000c, 0x50000800, 0x4807c857, 0x8d0c052a, 0x05000008, 0x4c000000, 0x821c3d40, - 0x0000dc00, 0x42000000, 0x0010947c, 0x05e5fcfc, + 0x0000dc00, 0x42000000, 0x001094fc, 0x05e5fcf0, 0x5c000000, 0x5c000800, 0x480368f1, 0x82040400, 0x0000dc00, 0x480368f3, 0x59c400a4, 0x9000050f, 0x90000588, 0x05020013, 0x4c5c0000, 0x4c600000, 0x59c4b805, 0x8c5c053a, 0x05020004, 0x42000000, - 0x00109743, 0x0529fa8c, 0x4a038805, 0x20000000, - 0x05f1f8ac, 0x4000c000, 0x05f1f827, 0x6006d800, + 0x001097c3, 0x0529fb4a, 0x4a038805, 0x20000000, + 0x05f1f89e, 0x4000c000, 0x05f1f819, 0x6006d800, 0x497b5010, 0x5c00c000, 0x5c00b800, 0x1c01f000, 0x59c8010b, 0x8c000502, 0x05fc07e8, 0x59c408a4, 0x90040d0f, 0x90040d8b, 0x05020005, 0x59a80810, 0x82040d40, 0x00002000, 0x0501f004, 0x59a8086e, 0x82040d40, 0x00001000, 0x48075032, 0x59a80877, 0x800409c0, 0x05020005, 0x6140080f, 0x42001000, - 0x001035b3, 0x050df877, 0x1c01f000, 0x4807c856, - 0x05fdff5a, 0x050dfb06, 0x4df00000, 0x050dfd29, - 0x5c03e000, 0x050c0aee, 0x59c400a4, 0x9000050f, + 0x001035bf, 0x050df8f7, 0x1c01f000, 0x4807c856, + 0x05fdff5a, 0x050dfb86, 0x4df00000, 0x050dfda9, + 0x5c03e000, 0x050c0b6e, 0x59c400a4, 0x9000050f, 0x90000582, 0x0502000a, 0x42006000, 0xffffffff, 0x42006800, 0x00200000, 0x0501f892, 0x42006000, - 0xffdfffff, 0x41786800, 0x0501f88e, 0x0505faaa, - 0x05000010, 0x0505fabe, 0x0502000e, 0x4a035013, - 0x0000aaaa, 0x4c040000, 0x05edfd2b, 0x59a8001f, + 0xffdfffff, 0x41786800, 0x0501f88e, 0x0505fad4, + 0x05000010, 0x0505fae8, 0x0502000e, 0x4a035013, + 0x0000aaaa, 0x4c040000, 0x05edfd1d, 0x59a8001f, 0x82000500, 0xffff0000, 0x80040540, 0x4803501f, - 0x5c000800, 0x64035014, 0x0505fa0e, 0x0501f005, - 0x64175071, 0x60000001, 0x05edfc8a, 0x05fdff3f, + 0x5c000800, 0x64035014, 0x0505fa38, 0x0501f005, + 0x64175071, 0x60000001, 0x05edfc7c, 0x05fdff3f, 0x1c01f000, 0x0501f809, 0x42006000, 0xbf7f7fff, 0x41786800, 0x0501f073, 0x42006000, 0xbf7f7fff, - 0x41786800, 0x0501f06f, 0x0505faa1, 0x05020009, + 0x41786800, 0x0501f06f, 0x0505facb, 0x05020009, 0x59c40006, 0x82000540, 0x000000f0, 0x48038806, 0x42006000, 0xbfffffff, 0x41786800, 0x0501f865, 0x1c01f000, 0x40680800, 0x800408d0, 0x59a80015, 0x8c000506, 0x05000006, 0x59a8000f, 0x82000500, 0x000000ff, 0x80040540, 0x0501f003, 0x82040540, 0x000000f7, 0x480388a7, 0x1c01f000, 0x4807c856, - 0x42000000, 0x001097db, 0x0529fa1b, 0x60143000, + 0x42000000, 0x0010985b, 0x0529fad9, 0x60143000, 0x4d3c0000, 0x4c180000, 0x60343000, 0x600a7800, - 0x0501f028, 0x4807c856, 0x42000000, 0x00109800, - 0x0529fa11, 0x60003000, 0x4d3c0000, 0x4c180000, + 0x0501f028, 0x4807c856, 0x42000000, 0x00109880, + 0x0529facf, 0x60003000, 0x4d3c0000, 0x4c180000, 0x603c3000, 0x600a7800, 0x0501f01e, 0x4807c856, - 0x42000000, 0x001097fe, 0x0529fa07, 0x600c3000, + 0x42000000, 0x0010987e, 0x0529fac5, 0x600c3000, 0x4d3c0000, 0x4c180000, 0x60383000, 0x600a7804, - 0x0501f014, 0x4807c856, 0x42000000, 0x001097fd, - 0x0529f9fd, 0x60103000, 0x4d3c0000, 0x4c180000, + 0x0501f014, 0x4807c856, 0x42000000, 0x0010987d, + 0x0529fabb, 0x60103000, 0x4d3c0000, 0x4c180000, 0x60403000, 0x600a7804, 0x0501f00a, 0x4807c856, - 0x42000000, 0x00109745, 0x0529f9f3, 0x60043000, + 0x42000000, 0x001097c5, 0x0529fab1, 0x60043000, 0x4d3c0000, 0x4c180000, 0x60303000, 0x600a7800, - 0x61fc19ff, 0x601c2000, 0x05f9ff80, 0x5c003000, - 0x4d400000, 0x0529f85e, 0x60aa8000, 0x0201f800, - 0x0010b5d3, 0x5c028000, 0x5c027800, 0x1c01f000, - 0x4807c856, 0x05011000, 0x4a03c840, 0x0010947b, + 0x61fc19ff, 0x601c2000, 0x05f9ff78, 0x5c003000, + 0x4d400000, 0x0529f91c, 0x60aa8000, 0x0201f800, + 0x0010b5e0, 0x5c028000, 0x5c027800, 0x1c01f000, + 0x4807c856, 0x05011000, 0x4a03c840, 0x001094fb, 0x6503c842, 0x40000000, 0x05fd17ff, 0x42007800, - 0x0010947b, 0x64447800, 0x803c7800, 0x4a007800, + 0x001094fb, 0x64447800, 0x803c7800, 0x4a007800, 0x220000ef, 0x4a007801, 0x000000ef, 0x4a007802, 0x01380000, 0x64007803, 0x4a007804, 0xffffffff, 0x64007805, 0x1c01f000, 0x40686000, 0x406c6800, @@ -3550,21 +3553,21 @@ static const uint32_t isp_2500_risc_code[] = { 0x4a039005, 0x00000140, 0x60180000, 0x80000040, 0x05fe07ff, 0x05fdf7f6, 0x1c01f000, 0x4c5c0000, 0x4c600000, 0x59c4b805, 0x485fc856, 0x8c5c053a, - 0x05020004, 0x42000000, 0x00109743, 0x0529f9a2, - 0x4a038805, 0x20000000, 0x05edffc2, 0x4000c000, - 0x05edff3d, 0x4a038805, 0x04000000, 0x5c00c000, + 0x05020004, 0x42000000, 0x001097c3, 0x0529fa60, + 0x4a038805, 0x20000000, 0x05edffb4, 0x4000c000, + 0x05edff2f, 0x4a038805, 0x04000000, 0x5c00c000, 0x5c00b800, 0x1c01f000, 0x497a6a00, 0x4a026c00, 0x00000707, 0x497a6801, 0x497a6808, 0x497a6809, 0x497a6806, 0x497a6807, 0x497a6c0b, 0x497a680c, 0x8d0c0520, 0x05020005, 0x5934080f, 0x59340010, - 0x80040540, 0x05e60ad9, 0x4a026a04, 0x00000100, + 0x80040540, 0x05e60acd, 0x4a026a04, 0x00000100, 0x497a6a03, 0x59340402, 0x82000500, 0x000000ff, 0x48026c02, 0x497a6c04, 0x497a6a05, 0x497a6c05, 0x497a6811, 0x4d2c0000, 0x5934000d, 0x49466c03, - 0x80025d40, 0x05000003, 0x05e5fe63, 0x497a680d, + 0x80025d40, 0x05000003, 0x05e5fe57, 0x497a680d, 0x5c025800, 0x599c0401, 0x48026a0b, 0x599c0208, - 0x48026c12, 0x4a02680a, 0x00008000, 0x0501f746, - 0x60140000, 0x80000d80, 0x0501f024, 0x0501fd38, + 0x48026c12, 0x4a02680a, 0x00008000, 0x0501f752, + 0x60140000, 0x80000d80, 0x0501f024, 0x0501fd41, 0x05020013, 0x59a8021b, 0x8c00050a, 0x0502000d, 0x59340212, 0x82000500, 0x0000ff00, 0x4803c857, 0x05000008, 0x59340a00, 0x8c04051e, 0x0000028a, @@ -3575,64 +3578,64 @@ static const uint32_t isp_2500_risc_code[] = { 0x05000004, 0x492fc857, 0x60000820, 0x0501f003, 0x492fc857, 0x80000d80, 0x4803c857, 0x80028540, 0x1c01f000, 0x490fc857, 0x8d0c0500, 0x05fe07f0, - 0x0501fce3, 0x05fe07ea, 0x59340200, 0x8c00050e, + 0x0501fcec, 0x05fe07ea, 0x59340200, 0x8c00050e, 0x05fc07e7, 0x0001f28a, 0x4d480000, 0x4d4c0000, - 0x592e9009, 0x592e980a, 0x0501fbe3, 0x5c029800, + 0x592e9009, 0x592e980a, 0x0501fbea, 0x5c029800, 0x5c029000, 0x05fc07c7, 0x0001f28d, 0x492fc857, 0x592e8c07, 0x83440d80, 0x000007fc, 0x05000004, 0x83440480, 0x000007f0, 0x05021010, 0x0001fac4, - 0x0502000e, 0x0501fcdb, 0x0502000e, 0x0511fe98, + 0x0502000e, 0x0501fce4, 0x0502000e, 0x0511ff08, 0x05000015, 0x59340002, 0x4802600b, 0x4936600a, 0x492e6009, 0x642a6407, 0x61027000, 0x0005f905, 0x80000580, 0x0501f00b, 0x60a00000, 0x0501f008, - 0x0501fce7, 0x05fc07fd, 0x910c0d03, 0x05000003, + 0x0501fcf0, 0x05fc07fd, 0x910c0d03, 0x05000003, 0x60100000, 0x0501f002, 0x60a40000, 0x80000540, 0x1c01f000, 0x60b00000, 0x05fdf7fd, 0x492fc857, 0x592e8c07, 0x4947c857, 0x83440c80, 0x00000800, 0x60280000, 0x0502114b, 0x592c4208, 0x4823c857, - 0x9020050f, 0x0c01f001, 0x001037a5, 0x00103815, - 0x00103856, 0x0010385e, 0x00103866, 0x001037a2, - 0x001037a2, 0x001037a2, 0x00103870, 0x001038bb, - 0x001038d7, 0x001037a2, 0x001037a2, 0x001037a2, - 0x001037a2, 0x001037a2, 0x4803c857, 0x60300000, + 0x9020050f, 0x0c01f001, 0x001037b1, 0x00103821, + 0x00103862, 0x0010386a, 0x00103872, 0x001037ae, + 0x001037ae, 0x001037ae, 0x0010387c, 0x001038c7, + 0x001038e3, 0x001037ae, 0x001037ae, 0x001037ae, + 0x001037ae, 0x001037ae, 0x4803c857, 0x60300000, 0x0501f134, 0x592c1009, 0x82081500, 0x00ffffff, 0x59a8000f, 0x80084d80, 0x60400000, 0x0500012d, - 0x0501fc2c, 0x0500002b, 0x4803c857, 0x90004d9d, - 0x05020016, 0x0505ff98, 0x59340405, 0x4c000000, - 0x0501fc83, 0x5c000000, 0x05000004, 0x8c20050a, + 0x0501fc33, 0x0500002b, 0x4803c857, 0x90004d9d, + 0x05020016, 0x0505ffd3, 0x59340405, 0x4c000000, + 0x0501fc8c, 0x5c000000, 0x05000004, 0x8c20050a, 0x05000020, 0x80000580, 0x44002800, 0x59340008, 0x48002802, 0x59340009, 0x48002801, 0x59340006, 0x48002804, 0x59340007, 0x48002803, 0x6014b000, - 0x051dfd9a, 0x0501f136, 0x4803c857, 0x90004d9a, + 0x051dfe24, 0x0501f136, 0x4803c857, 0x90004d9a, 0x05020003, 0x40101000, 0x0501f113, 0x4803c857, 0x90004d9b, 0x05020003, 0x40181000, 0x0501f10e, 0x4803c857, 0x90004d9c, 0x0500010f, 0x90004d99, 0x60280000, 0x05000103, 0x60280000, 0x05020114, - 0x59a80086, 0x8c000502, 0x05000016, 0x0501fc5c, + 0x59a80086, 0x8c000502, 0x05000016, 0x0501fc65, 0x05000014, 0x59340212, 0x82000500, 0x0000ff00, 0x60401000, 0x0502000b, 0x60201000, 0x59a8021b, 0x8c000506, 0x05020008, 0x59340002, 0x82000500, 0x00ff0000, 0x82000580, 0x00ff0000, 0x05000005, - 0x0501fe88, 0x60700000, 0x40181000, 0x050200ee, - 0x0511fe17, 0x050000f6, 0x4936600a, 0x492e6009, + 0x0501fe94, 0x60700000, 0x40181000, 0x050200ee, + 0x0511fe87, 0x050000f6, 0x4936600a, 0x492e6009, 0x64066407, 0x8c20050a, 0x05000004, 0x592c0405, 0x8400055c, 0x48025c05, 0x4c200000, 0x4d3c0000, - 0x60027830, 0x0201f800, 0x0010b652, 0x5c027800, + 0x60027830, 0x0201f800, 0x0010b660, 0x5c027800, 0x5c004000, 0x8c200512, 0x0500000b, 0x599c0018, 0x8c000518, 0x05000008, 0x592c000a, 0x82000500, 0x00000380, 0x5934080a, 0x80040d40, 0x84040d54, 0x4806680a, 0x417a7800, 0x0501f8f1, 0x600c0800, 0x0501f8fa, 0x600a7000, 0x0005f905, 0x80000580, - 0x0501f0ea, 0x0001fac4, 0x050200d5, 0x0501fc26, - 0x05000009, 0x0501fc1e, 0x050200d5, 0x4c600000, - 0x4178c000, 0x60027830, 0x417a6000, 0x05f1f998, + 0x0501f0ea, 0x0001fac4, 0x050200d5, 0x0501fc2f, + 0x05000009, 0x0501fc27, 0x050200d5, 0x4c600000, + 0x4178c000, 0x60027830, 0x417a6000, 0x05f1f98e, 0x5c00c000, 0x59a80086, 0x8c000502, 0x05000016, - 0x0501fc13, 0x05000014, 0x59340212, 0x82000500, + 0x0501fc1c, 0x05000014, 0x59340212, 0x82000500, 0x0000ff00, 0x60401000, 0x0502000b, 0x60201000, 0x59a8021b, 0x8c000506, 0x05020008, 0x59340002, 0x82000500, 0x00ff0000, 0x82000580, 0x00ff0000, - 0x05000005, 0x0501fe3f, 0x60700000, 0x40181000, - 0x050200a5, 0x0511fdce, 0x050000ad, 0x5934080a, + 0x05000005, 0x0501fe4b, 0x60700000, 0x40181000, + 0x050200a5, 0x0511fe3e, 0x050000ad, 0x5934080a, 0x8c200512, 0x0500000c, 0x599c0018, 0x8c000518, 0x05000009, 0x592c000a, 0x82000500, 0x00000380, 0x82041500, 0xfffffc7f, 0x80080d40, 0x84040d54, @@ -3640,19 +3643,19 @@ static const uint32_t isp_2500_risc_code[] = { 0x492e6009, 0x64066407, 0x417a7800, 0x0501f8b0, 0x60140800, 0x0501f8b9, 0x600e7000, 0x0005f905, 0x80000580, 0x0501f0a9, 0x0001fac4, 0x05020094, - 0x0501fbf9, 0x05020096, 0x051dfcd3, 0x0500008c, + 0x0501fc02, 0x05020096, 0x051dfd5d, 0x0500008c, 0x80000580, 0x0501f0a1, 0x0001fac4, 0x0502008c, - 0x0501fbf1, 0x0502008e, 0x051df91d, 0x05000084, + 0x0501fbfa, 0x0502008e, 0x051df9a7, 0x05000084, 0x80000580, 0x0501f099, 0x0001fac4, 0x05020084, 0x83444d80, 0x000007fe, 0x60280000, 0x0502006d, - 0x051dfcd3, 0x0500007a, 0x80000580, 0x0501f08f, + 0x051dfd5d, 0x0500007a, 0x80000580, 0x0501f08f, 0xb0200530, 0x05020004, 0x8c20050e, 0x60300000, 0x05020064, 0x8c20050a, 0x0500000c, 0x4d3c0000, 0x600278a0, 0x8c20050e, 0x05020003, 0x853e7d56, - 0x853e7d1c, 0x82200500, 0x000004a0, 0x0501fb89, + 0x853e7d1c, 0x82200500, 0x000004a0, 0x0501fb90, 0x5c027800, 0x0501f07a, 0x8c200508, 0x0502001c, 0x592c1009, 0x82081500, 0x00ffffff, 0x59a8000f, - 0x80084d80, 0x60400000, 0x0500004e, 0x0501fb4d, + 0x80084d80, 0x60400000, 0x0500004e, 0x0501fb54, 0x05000022, 0x4803c857, 0x90004d9a, 0x05020003, 0x40101000, 0x0501f04c, 0x4803c857, 0x90004d9b, 0x05020003, 0x40181000, 0x0501f047, 0x4803c857, @@ -3660,17 +3663,17 @@ static const uint32_t isp_2500_risc_code[] = { 0x0500003c, 0x60280000, 0x0501f04d, 0x0001fac4, 0x0502004b, 0x4d3c0000, 0x600278a0, 0x8c20050e, 0x05020003, 0x853e7d56, 0x853e7d1c, 0x82200500, - 0x00000090, 0x0501fb4b, 0x5c027800, 0x60280000, + 0x00000090, 0x0501fb52, 0x5c027800, 0x60280000, 0x0502002c, 0x0501f04e, 0x916c0583, 0x601c0800, - 0x05020005, 0x051dfc3a, 0x05000006, 0x80000580, - 0x0501f04a, 0x0501fbc5, 0x05000042, 0x0501f044, - 0x0501fbc2, 0x0500002e, 0x0501f041, 0x0001fac4, + 0x05020005, 0x051dfcc4, 0x05000006, 0x80000580, + 0x0501f04a, 0x0501fbce, 0x05000042, 0x0501f044, + 0x0501fbcb, 0x0500002e, 0x0501f041, 0x0001fac4, 0x0502002f, 0x916c0583, 0x05020036, 0x8c200508, 0x05000008, 0x4c600000, 0x4178c000, 0x60027830, - 0x417a6000, 0x05f1f8f2, 0x5c00c000, 0x0501f034, - 0x0501fb75, 0x05000009, 0x0501fb6d, 0x05020024, + 0x417a6000, 0x05f1f8e8, 0x5c00c000, 0x0501f034, + 0x0501fb7e, 0x05000009, 0x0501fb76, 0x05020024, 0x4c600000, 0x4178c000, 0x60027830, 0x417a6000, - 0x05f1f8e7, 0x5c00c000, 0x480bc856, 0x051dfac5, + 0x05f1f8dd, 0x5c00c000, 0x480bc856, 0x051dfb4f, 0x05000013, 0x80000580, 0x0501f028, 0x05fdf7e4, 0x480bc857, 0x60640800, 0x40001000, 0x6008b000, 0x0501f008, 0x480bc857, 0x40000800, 0x6008b000, @@ -3685,56 +3688,57 @@ static const uint32_t isp_2500_risc_code[] = { 0x5932680a, 0x59341200, 0x813e79c0, 0x05000003, 0x84081540, 0x0501f002, 0x84081500, 0x480a6a00, 0x1c01f000, 0x40680800, 0x5932680a, 0x5c000000, - 0x4c000000, 0x4803c857, 0x4937c857, 0x90040586, - 0x05020003, 0x6018000c, 0x0501f014, 0x90040584, - 0x05020003, 0x60100008, 0x0501f010, 0x90040587, - 0x601c000e, 0x0500000d, 0x90040583, 0x600c000e, - 0x0500000a, 0x90040585, 0x60140008, 0x05000007, - 0x90040589, 0x60240008, 0x05000004, 0x9004058b, - 0x602c000e, 0x05e608c1, 0x4803c857, 0x48026c00, - 0x90040d86, 0x05020004, 0x59341404, 0x800811c0, - 0x05e408ba, 0x1c01f000, 0x40683000, 0x0501f80b, + 0x4c000000, 0x4803c857, 0x4937c857, 0x83340580, + 0x0010993e, 0x0500001f, 0x90040586, 0x05020003, + 0x6018000c, 0x0501f014, 0x90040584, 0x05020003, + 0x60100008, 0x0501f010, 0x90040587, 0x601c000e, + 0x0500000d, 0x90040583, 0x600c000e, 0x0500000a, + 0x90040585, 0x60140008, 0x05000007, 0x90040589, + 0x60240008, 0x05000004, 0x9004058b, 0x602c000e, + 0x05e608b2, 0x4803c857, 0x48026c00, 0x90040d86, + 0x05020004, 0x59341404, 0x800811c0, 0x05e408ab, + 0x1c01f000, 0x40683000, 0x0501f80b, 0x41358800, + 0x05000002, 0x41798800, 0x1c01f000, 0x40683000, + 0x0501f80a, 0x41358800, 0x05000002, 0x41798800, + 0x1c01f000, 0x5c000000, 0x4c000000, 0x4803c857, + 0x4947c857, 0x481bc857, 0x83440480, 0x00000800, + 0x05021037, 0x83441400, 0x00108c00, 0x50080000, + 0x80026d40, 0x0502000f, 0x4c180000, 0x4d2c0000, + 0x05e5fbfd, 0x412e6800, 0x5c025800, 0x5c003000, + 0x0500002b, 0x45341000, 0x497a680d, 0x497a6810, + 0x497a680f, 0x4c180000, 0x05fdfda8, 0x5c003000, + 0x59340a12, 0x4c040000, 0x0501ffae, 0x5c000800, + 0x05000009, 0x82180500, 0x00ffff00, 0x05000008, + 0x59a8100f, 0x82081500, 0x00ffff00, 0x80080580, + 0x05000003, 0x80000580, 0x0501f004, 0x82180500, + 0x000000ff, 0x800000d0, 0x80040d80, 0x05000003, + 0x4803c857, 0x48026a12, 0x83440580, 0x000007fe, + 0x05020004, 0x4a026802, 0x00fffffe, 0x0501f006, + 0x59340002, 0x80180580, 0x05000003, 0x481bc857, + 0x481a6802, 0x80000580, 0x1c01f000, 0x4803c856, + 0x90000541, 0x05fdf7fd, 0x0501f805, 0x60058800, + 0x05020002, 0x60018800, 0x1c01f000, 0x4947c857, + 0x83440480, 0x00000800, 0x0502100f, 0x83441400, + 0x00108c00, 0x50080000, 0x80026d40, 0x05000009, + 0x0501fab4, 0x05020008, 0x8d0c0502, 0x05000004, + 0x59340200, 0x8c00050e, 0x05000003, 0x90000541, + 0x1c01f000, 0x80000580, 0x05fdf7fe, 0x5c000000, + 0x4c000000, 0x4803c857, 0x4947c857, 0x0501f805, + 0x60058800, 0x05000002, 0x60018800, 0x1c01f000, + 0x4d2c0000, 0x4d300000, 0x83440480, 0x00000800, + 0x0502101d, 0x83441400, 0x00108c00, 0x50080000, + 0x80026d40, 0x05000014, 0x45781000, 0x5934000d, + 0x80025d40, 0x05e60bc8, 0x59366011, 0x813261c0, + 0x0500000a, 0x4c640000, 0x5930c800, 0x59325809, + 0x0519ffba, 0x05e60bc0, 0x0005f8e7, 0x90666540, + 0x05fe07fa, 0x5c00c800, 0x0501fcbf, 0x41365800, + 0x05e5fbb1, 0x80000580, 0x5c026000, 0x5c025800, + 0x1c01f000, 0x90000541, 0x05fdf7fc, 0x0001fac4, 0x41358800, 0x05000002, 0x41798800, 0x1c01f000, - 0x40683000, 0x0501f80a, 0x41358800, 0x05000002, - 0x41798800, 0x1c01f000, 0x5c000000, 0x4c000000, - 0x4803c857, 0x4947c857, 0x481bc857, 0x83440480, - 0x00000800, 0x05021037, 0x83441400, 0x00108b80, - 0x50080000, 0x80026d40, 0x0502000f, 0x4c180000, - 0x4d2c0000, 0x05e5fc0c, 0x412e6800, 0x5c025800, - 0x5c003000, 0x0500002b, 0x45341000, 0x497a680d, - 0x497a6810, 0x497a680f, 0x4c180000, 0x05fdfdab, - 0x5c003000, 0x59340a12, 0x4c040000, 0x0501ff87, - 0x5c000800, 0x05000009, 0x82180500, 0x00ffff00, - 0x05000008, 0x59a8100f, 0x82081500, 0x00ffff00, - 0x80080580, 0x05000003, 0x80000580, 0x0501f004, - 0x82180500, 0x000000ff, 0x800000d0, 0x80040d80, - 0x05000003, 0x4803c857, 0x48026a12, 0x83440580, - 0x000007fe, 0x05020004, 0x4a026802, 0x00fffffe, - 0x0501f006, 0x59340002, 0x80180580, 0x05000003, - 0x481bc857, 0x481a6802, 0x80000580, 0x1c01f000, - 0x4803c856, 0x90000541, 0x05fdf7fd, 0x0501f805, - 0x60058800, 0x05020002, 0x60018800, 0x1c01f000, - 0x4947c857, 0x83440480, 0x00000800, 0x0502100f, - 0x83441400, 0x00108b80, 0x50080000, 0x80026d40, - 0x05000009, 0x0501faae, 0x05020008, 0x8d0c0502, - 0x05000004, 0x59340200, 0x8c00050e, 0x05000003, - 0x90000541, 0x1c01f000, 0x80000580, 0x05fdf7fe, - 0x5c000000, 0x4c000000, 0x4803c857, 0x4947c857, - 0x0501f805, 0x60058800, 0x05000002, 0x60018800, - 0x1c01f000, 0x4d2c0000, 0x4d300000, 0x83440480, - 0x00000800, 0x0502101d, 0x83441400, 0x00108b80, - 0x50080000, 0x80026d40, 0x05000014, 0x45781000, - 0x5934000d, 0x80025d40, 0x05e60bd7, 0x59366011, - 0x813261c0, 0x0500000a, 0x4c640000, 0x5930c800, - 0x59325809, 0x0519ff33, 0x05e60bcf, 0x0005f8e7, - 0x90666540, 0x05fe07fa, 0x5c00c800, 0x0501fcb6, - 0x41365800, 0x05e5fbc0, 0x80000580, 0x5c026000, - 0x5c025800, 0x1c01f000, 0x90000541, 0x05fdf7fc, - 0x0001fac4, 0x41358800, 0x05000002, 0x41798800, - 0x1c01f000, 0x4c580000, 0x59cc0001, 0x4937c857, - 0x82000500, 0x00ffffff, 0x48026802, 0x497a6c01, - 0x497a6a01, 0x59340200, 0x84000502, 0x48026a00, - 0x0501ff0e, 0x05020018, 0x59340403, 0x82000580, + 0x4c580000, 0x59cc0001, 0x4937c857, 0x82000500, + 0x00ffffff, 0x48026802, 0x497a6c01, 0x497a6a01, + 0x59340200, 0x82000500, 0xffffdffd, 0x48026a00, + 0x0501ff34, 0x05020018, 0x59340403, 0x82000580, 0x000007fe, 0x05000005, 0x59a8021b, 0x8c00050a, 0x05020011, 0x0501f008, 0x59cc0408, 0x8c000518, 0x0500000d, 0x59cc0009, 0x48035028, 0x59cc000a, @@ -3744,218 +3748,220 @@ static const uint32_t isp_2500_risc_code[] = { 0x90000520, 0x05000005, 0x84040d40, 0x59a8121b, 0x8408155a, 0x480b521b, 0x5934000a, 0x82000500, 0xffffffee, 0x80040540, 0x4802680a, 0x91cca40b, - 0x9134ac06, 0x6008b000, 0x0525ff65, 0x91cca40d, - 0x9134ac08, 0x6008b000, 0x0525ff61, 0x59cc0a18, - 0x82040480, 0x00000800, 0x0502100a, 0x82040480, - 0x00000400, 0x05001003, 0x60000808, 0x0501f005, - 0x82040480, 0x00000200, 0x05001002, 0x60000804, - 0x42001000, 0x00109471, 0x58080201, 0x80041480, - 0x05001002, 0x40000800, 0x48066a04, 0x59340403, - 0x82000580, 0x000007fe, 0x05020003, 0x59cc0a08, - 0x48066a04, 0x0501fc7a, 0x5c00b000, 0x1c01f000, - 0x59a8021b, 0x4937c857, 0x8c000508, 0x05000007, - 0x84000556, 0x4803c857, 0x4803521b, 0x42001000, - 0x0010c15e, 0x0509fb5c, 0x59cc0207, 0x4803c857, - 0x48026a05, 0x59cc020a, 0x4803c857, 0x48026c05, - 0x59341200, 0x599c0818, 0x5934180a, 0x4807c857, - 0x480bc857, 0x480fc857, 0x59cc2006, 0x82102500, - 0xff000000, 0x82102580, 0x02000000, 0x05000007, - 0x8c00050e, 0x05000009, 0x8c0c0514, 0x05000003, - 0x8c0c050e, 0x05000005, 0x8c040518, 0x05000003, - 0x8408154a, 0x0501f002, 0x8408150a, 0x8c000510, - 0x05000009, 0x8c0c0514, 0x05000003, 0x8c0c0510, - 0x05000005, 0x8c040518, 0x05000003, 0x8408154e, - 0x0501f002, 0x8408150e, 0x8c000512, 0x05000009, - 0x8c0c0514, 0x05000003, 0x8c0c0512, 0x05000005, - 0x8c040518, 0x05000003, 0x8408155c, 0x0501f002, - 0x8408151c, 0x480a6a00, 0x1c01f000, 0x4803c856, - 0x4c5c0000, 0x4d2c0000, 0x4c580000, 0x5934000d, - 0x80025d40, 0x05000023, 0x592c0003, 0x90000488, - 0x0500100a, 0x412cb800, 0x592c0001, 0x80025d40, - 0x05fe07fa, 0x05e5faff, 0x0500002e, 0x492fc857, - 0x492cb801, 0x0501f01b, 0x912c0c04, 0x6020b000, - 0x50040000, 0x82000580, 0xffffffff, 0x05020006, - 0x80041000, 0x50080000, 0x82000580, 0xffffffff, - 0x05000005, 0x90040c02, 0x8058b040, 0x05fe07f5, - 0x05e1ff6a, 0x45480800, 0x454c1000, 0x592c1803, - 0x800c1800, 0x480e5803, 0x480fc857, 0x0501f010, - 0x05e5fae4, 0x05000013, 0x492fc857, 0x492e680d, - 0x497a5802, 0x64065803, 0x494a5804, 0x494e5805, - 0x912c0c06, 0x6038b000, 0x46000800, 0xffffffff, - 0x80040800, 0x8058b040, 0x05fe07fc, 0x90000541, - 0x5c00b000, 0x5c025800, 0x5c00b800, 0x1c01f000, - 0x80000580, 0x05fdf7fb, 0x4803c856, 0x4d3c0000, - 0x4d2c0000, 0x5934000d, 0x80025d40, 0x0500001c, - 0x592c0002, 0x80000540, 0x0502001c, 0x412e7800, - 0x0501f89d, 0x05020019, 0x46000800, 0xffffffff, - 0x46001000, 0xffffffff, 0x4813c857, 0x480fc857, - 0x580c0003, 0x90000c82, 0x05021012, 0x480fc857, - 0x400c0000, 0x812c0580, 0x05020004, 0x580c0001, - 0x4802680d, 0x0501f003, 0x580c0001, 0x48002001, - 0x400e5800, 0x05e5fabf, 0x90000541, 0x5c025800, - 0x5c027800, 0x1c01f000, 0x80000580, 0x05fdf7fc, - 0x80000040, 0x48001803, 0x4803c857, 0x05fdf7f7, - 0x64225a07, 0x0001f32c, 0x64a65a07, 0x0001f32c, - 0x64aa5a07, 0x0001f32c, 0x64a25a07, 0x0001f32c, - 0x643a5a07, 0x0001f32c, 0x4943c857, 0x4d440000, - 0x4d340000, 0x4d2c0000, 0x4c580000, 0x61c0b00f, - 0x417a8800, 0x0001fac4, 0x05020007, 0x8d3c0506, - 0x05000004, 0x59340200, 0x8c00050e, 0x05020002, - 0x0501f811, 0x81468800, 0x8058b040, 0x05fe07f6, - 0x83440480, 0x00000800, 0x05021006, 0x8d3c0502, - 0x05000004, 0x61c2880f, 0x6040b000, 0x05fdf7ee, - 0x5c00b000, 0x5c025800, 0x5c026800, 0x5c028800, - 0x1c01f000, 0x4d2c0000, 0x4c600000, 0x4c5c0000, - 0x4178b800, 0x5936580f, 0x812e59c0, 0x05000026, - 0x592c0205, 0x82000500, 0x000000ff, 0x90000592, - 0x0500001e, 0x8d3c0500, 0x05000003, 0x0501f840, - 0x0502001a, 0x592cc000, 0x497a5800, 0x805cb9c0, - 0x05020009, 0x59340010, 0x812c0580, 0x05020004, - 0x497a680f, 0x497a6810, 0x0501f008, 0x4862680f, - 0x0501f006, 0x4860b800, 0x59340010, 0x812c0580, - 0x05020002, 0x485e6810, 0x4a025a05, 0x00000103, - 0x49425a07, 0x497a580a, 0x0519ff1f, 0x0001fb2c, - 0x40625800, 0x05fdf7dd, 0x412cb800, 0x592e5800, - 0x05fdf7da, 0x5c00b800, 0x5c00c000, 0x5c025800, - 0x1c01f000, 0x4803c856, 0x41781800, 0x5934000f, - 0x80025d40, 0x05000014, 0x592c0006, 0x80200580, - 0x592c0000, 0x05000003, 0x412c1800, 0x05fdf7f9, - 0x592c0a05, 0x82040d00, 0x000000ff, 0x90040d92, - 0x05fc07fa, 0x497a5800, 0x800c19c0, 0x05000007, - 0x48001800, 0x80000540, 0x05020003, 0x480e6810, - 0x90000541, 0x1c01f000, 0x4802680f, 0x80000540, - 0x05fe07fd, 0x497a6810, 0x05fdf7fa, 0x592c0009, - 0x81480580, 0x05020003, 0x592c000a, 0x814c0580, - 0x1c01f000, 0x4803c856, 0x4c580000, 0x413c1800, - 0x400c2000, 0x593c0002, 0x80000540, 0x05020014, - 0x6020b000, 0x900c0c04, 0x50040000, 0x81480580, - 0x05020005, 0x80041000, 0x50080000, 0x814c0580, - 0x0500000b, 0x90040c02, 0x8058b040, 0x05fe07f7, - 0x400c2000, 0x580c0001, 0x80001d40, 0x05fe07f1, - 0x90000541, 0x5c00b000, 0x1c01f000, 0x80000580, - 0x05fdf7fd, 0x4937c857, 0x4c580000, 0x4d2c0000, - 0x5934000d, 0x80025d40, 0x05020011, 0x05e5fa05, - 0x0500000c, 0x492e680d, 0x64065802, 0x497a5803, - 0x912c0c04, 0x6040b000, 0x46000800, 0xffffffff, - 0x80040800, 0x8058b040, 0x05fe07fc, 0x90000541, - 0x5c025800, 0x5c00b000, 0x1c01f000, 0x4d2c0000, - 0x592e5801, 0x05e5fa0c, 0x5c025800, 0x497a5801, - 0x05fdf7ee, 0x4d2c0000, 0x5936580d, 0x812e59c0, - 0x05000005, 0x4937c857, 0x497a680d, 0x05e5fa02, - 0x90000541, 0x5c025800, 0x1c01f000, 0x59340405, - 0x4937c857, 0x4803c857, 0x8c000508, 0x1c01f000, - 0x4933c857, 0x5930380a, 0x581c0200, 0x8400051a, - 0x48003a00, 0x1c01f000, 0x0501f805, 0x60058800, - 0x05020002, 0x60018800, 0x1c01f000, 0x5930000a, - 0x50000000, 0x4933c857, 0x4803c857, 0x8c00050e, - 0x1c01f000, 0x5930000a, 0x50000000, 0x8c00050a, - 0x1c01f000, 0x0501f805, 0x60058800, 0x05000002, - 0x60018800, 0x1c01f000, 0x4933c856, 0x0501f8a5, - 0x05000005, 0x59340400, 0x82000d00, 0x000000ff, - 0x90041585, 0x1c01f000, 0x0501f805, 0x60058800, - 0x05020002, 0x60018800, 0x1c01f000, 0x4d340000, - 0x83ac0400, 0x000007fe, 0x50000000, 0x80026d40, - 0x05000003, 0x59340200, 0x8c00051a, 0x5c026800, - 0x1c01f000, 0x4937c857, 0x493fc857, 0x59340403, - 0x81ac0400, 0x50000000, 0x81340580, 0x05e20e27, - 0x59341200, 0x813e79c0, 0x05000003, 0x8408155e, - 0x0501f002, 0x8408151e, 0x480a6a00, 0x1c01f000, - 0x4937c857, 0x05edfe54, 0x05000005, 0x59a80828, - 0x42001000, 0x00103bd0, 0x0509fad2, 0x1c01f000, - 0x4937c857, 0x42001000, 0x00103bd0, 0x0509f9ae, - 0x59a8121b, 0x84081512, 0x480b521b, 0x1c01f000, - 0x4008d000, 0x4020d800, 0x909d3c84, 0x409ce000, - 0x0201f800, 0x0010c24e, 0x589c0000, 0x589c2001, - 0x589c2802, 0x589c3003, 0x909d3c04, 0x800001c0, - 0x1c01f000, 0x4d340000, 0x406a6800, 0x0501f803, - 0x5c026800, 0x1c01f000, 0x5934000f, 0x8d0c0512, - 0x05020005, 0x5934140b, 0x80081040, 0x05001002, - 0x480a6c0b, 0x80000540, 0x00020ad1, 0x1c01f000, - 0x4803c857, 0x4947c857, 0x4c300000, 0x90006530, - 0x05000005, 0x4c000000, 0x051df86d, 0x5c000000, - 0x0502000a, 0x8c00050e, 0x05000005, 0x0001fac4, - 0x05020006, 0x4937c857, 0x05fdfd92, 0x80000580, - 0x5c006000, 0x1c01f000, 0x90000541, 0x05fdf7fd, - 0x4803c857, 0x4c580000, 0x4d440000, 0x40001000, - 0x80000d80, 0x61c0b00f, 0x4c040000, 0x40068800, - 0x4c080000, 0x40080000, 0x05fdffe4, 0x5c001000, - 0x5c000800, 0x80040800, 0x8058b040, 0x05fe07f7, - 0x8c080514, 0x05000005, 0x84081514, 0x6004b000, - 0x61f0080f, 0x05fdf7f1, 0x4d300000, 0x4d400000, - 0x61fe89ff, 0x42026000, 0x0010cc5c, 0x497a600a, - 0x60a68000, 0x0509fd0e, 0x4df00000, 0x0201f800, - 0x0010bb8e, 0x0201f800, 0x0010c0f3, 0x5c03e000, - 0x05080cf3, 0x5c028000, 0x5c026000, 0x5c028800, - 0x5c00b000, 0x1c01f000, 0x0501f805, 0x60058800, - 0x05000002, 0x60018800, 0x1c01f000, 0x4c5c0000, - 0x59340400, 0x8200bd80, 0x00000606, 0x5c00b800, - 0x1c01f000, 0x4c5c0000, 0x59340400, 0x8200bd80, - 0x00000404, 0x5c00b800, 0x1c01f000, 0x0501f805, + 0x9134ac06, 0x6008b000, 0x0529f81f, 0x91cca40d, + 0x9134ac08, 0x6008b000, 0x0529f81b, 0x59cc0a18, + 0x59a80006, 0x8c00050c, 0x05020013, 0x82040480, + 0x00000800, 0x0502100a, 0x82040480, 0x00000400, + 0x05001003, 0x60000808, 0x0501f005, 0x82040480, + 0x00000200, 0x05001002, 0x60000804, 0x42001000, + 0x001094f1, 0x58080201, 0x80041480, 0x05001002, + 0x40000800, 0x48066a04, 0x59340403, 0x82000580, + 0x000007fe, 0x05020003, 0x59cc0a08, 0x48066a04, + 0x0501fc7f, 0x5c00b000, 0x1c01f000, 0x59a8021b, + 0x4937c857, 0x8c000508, 0x05000007, 0x84000556, + 0x4803c857, 0x4803521b, 0x42001000, 0x0010c159, + 0x0509fbd5, 0x59cc0207, 0x4803c857, 0x48026a05, + 0x59cc020a, 0x4803c857, 0x48026c05, 0x59341200, + 0x599c0818, 0x5934180a, 0x4807c857, 0x480bc857, + 0x480fc857, 0x59cc2006, 0x82102500, 0xff000000, + 0x82102580, 0x02000000, 0x05000007, 0x8c00050e, + 0x05000009, 0x8c0c0514, 0x05000003, 0x8c0c050e, + 0x05000005, 0x8c040518, 0x05000003, 0x8408154a, + 0x0501f002, 0x8408150a, 0x8c000510, 0x05000009, + 0x8c0c0514, 0x05000003, 0x8c0c0510, 0x05000005, + 0x8c040518, 0x05000003, 0x8408154e, 0x0501f002, + 0x8408150e, 0x8c000512, 0x05000009, 0x8c0c0514, + 0x05000003, 0x8c0c0512, 0x05000005, 0x8c040518, + 0x05000003, 0x8408155c, 0x0501f002, 0x8408151c, + 0x480a6a00, 0x1c01f000, 0x4803c856, 0x4c5c0000, + 0x4d2c0000, 0x4c580000, 0x5934000d, 0x80025d40, + 0x05000023, 0x592c0003, 0x90000488, 0x0500100a, + 0x412cb800, 0x592c0001, 0x80025d40, 0x05fe07fa, + 0x05e5faec, 0x0500002e, 0x492fc857, 0x492cb801, + 0x0501f01b, 0x912c0c04, 0x6020b000, 0x50040000, + 0x82000580, 0xffffffff, 0x05020006, 0x80041000, + 0x50080000, 0x82000580, 0xffffffff, 0x05000005, + 0x90040c02, 0x8058b040, 0x05fe07f5, 0x05e1ff57, + 0x45480800, 0x454c1000, 0x592c1803, 0x800c1800, + 0x480e5803, 0x480fc857, 0x0501f010, 0x05e5fad1, + 0x05000013, 0x492fc857, 0x492e680d, 0x497a5802, + 0x64065803, 0x494a5804, 0x494e5805, 0x912c0c06, + 0x6038b000, 0x46000800, 0xffffffff, 0x80040800, + 0x8058b040, 0x05fe07fc, 0x90000541, 0x5c00b000, + 0x5c025800, 0x5c00b800, 0x1c01f000, 0x80000580, + 0x05fdf7fb, 0x4803c856, 0x4d3c0000, 0x4d2c0000, + 0x5934000d, 0x80025d40, 0x0500001c, 0x592c0002, + 0x80000540, 0x0502001c, 0x412e7800, 0x0501f89d, + 0x05020019, 0x46000800, 0xffffffff, 0x46001000, + 0xffffffff, 0x4813c857, 0x480fc857, 0x580c0003, + 0x90000c82, 0x05021012, 0x480fc857, 0x400c0000, + 0x812c0580, 0x05020004, 0x580c0001, 0x4802680d, + 0x0501f003, 0x580c0001, 0x48002001, 0x400e5800, + 0x05e5faac, 0x90000541, 0x5c025800, 0x5c027800, + 0x1c01f000, 0x80000580, 0x05fdf7fc, 0x80000040, + 0x48001803, 0x4803c857, 0x05fdf7f7, 0x64225a07, + 0x0001f32c, 0x64a65a07, 0x0001f32c, 0x64aa5a07, + 0x0001f32c, 0x64a25a07, 0x0001f32c, 0x643a5a07, + 0x0001f32c, 0x4943c857, 0x4d440000, 0x4d340000, + 0x4d2c0000, 0x4c580000, 0x61c0b00f, 0x417a8800, + 0x0001fac4, 0x05020007, 0x8d3c0506, 0x05000004, + 0x59340200, 0x8c00050e, 0x05020002, 0x0501f811, + 0x81468800, 0x8058b040, 0x05fe07f6, 0x83440480, + 0x00000800, 0x05021006, 0x8d3c0502, 0x05000004, + 0x61c2880f, 0x6040b000, 0x05fdf7ee, 0x5c00b000, + 0x5c025800, 0x5c026800, 0x5c028800, 0x1c01f000, + 0x4d2c0000, 0x4c600000, 0x4c5c0000, 0x4178b800, + 0x5936580f, 0x812e59c0, 0x05000026, 0x592c0205, + 0x82000500, 0x000000ff, 0x90000592, 0x0500001e, + 0x8d3c0500, 0x05000003, 0x0501f840, 0x0502001a, + 0x592cc000, 0x497a5800, 0x805cb9c0, 0x05020009, + 0x59340010, 0x812c0580, 0x05020004, 0x497a680f, + 0x497a6810, 0x0501f008, 0x4862680f, 0x0501f006, + 0x4860b800, 0x59340010, 0x812c0580, 0x05020002, + 0x485e6810, 0x4a025a05, 0x00000103, 0x49425a07, + 0x497a580a, 0x0519ffa2, 0x0001fb2c, 0x40625800, + 0x05fdf7dd, 0x412cb800, 0x592e5800, 0x05fdf7da, + 0x5c00b800, 0x5c00c000, 0x5c025800, 0x1c01f000, + 0x4803c856, 0x41781800, 0x5934000f, 0x80025d40, + 0x05000014, 0x592c0006, 0x80200580, 0x592c0000, + 0x05000003, 0x412c1800, 0x05fdf7f9, 0x592c0a05, + 0x82040d00, 0x000000ff, 0x90040d92, 0x05fc07fa, + 0x497a5800, 0x800c19c0, 0x05000007, 0x48001800, + 0x80000540, 0x05020003, 0x480e6810, 0x90000541, + 0x1c01f000, 0x4802680f, 0x80000540, 0x05fe07fd, + 0x497a6810, 0x05fdf7fa, 0x592c0009, 0x81480580, + 0x05020003, 0x592c000a, 0x814c0580, 0x1c01f000, + 0x4803c856, 0x4c580000, 0x413c1800, 0x400c2000, + 0x593c0002, 0x80000540, 0x05020014, 0x6020b000, + 0x900c0c04, 0x50040000, 0x81480580, 0x05020005, + 0x80041000, 0x50080000, 0x814c0580, 0x0500000b, + 0x90040c02, 0x8058b040, 0x05fe07f7, 0x400c2000, + 0x580c0001, 0x80001d40, 0x05fe07f1, 0x90000541, + 0x5c00b000, 0x1c01f000, 0x80000580, 0x05fdf7fd, + 0x4937c857, 0x4c580000, 0x4d2c0000, 0x5934000d, + 0x80025d40, 0x05020011, 0x05e5f9f2, 0x0500000c, + 0x492e680d, 0x64065802, 0x497a5803, 0x912c0c04, + 0x6040b000, 0x46000800, 0xffffffff, 0x80040800, + 0x8058b040, 0x05fe07fc, 0x90000541, 0x5c025800, + 0x5c00b000, 0x1c01f000, 0x4d2c0000, 0x592e5801, + 0x05e5f9f9, 0x5c025800, 0x497a5801, 0x05fdf7ee, + 0x4d2c0000, 0x5936580d, 0x812e59c0, 0x05000005, + 0x4937c857, 0x497a680d, 0x05e5f9ef, 0x90000541, + 0x5c025800, 0x1c01f000, 0x59340405, 0x4937c857, + 0x4803c857, 0x8c000508, 0x1c01f000, 0x4933c857, + 0x5930380a, 0x581c0200, 0x8400051a, 0x48003a00, + 0x1c01f000, 0x0501f805, 0x60058800, 0x05020002, + 0x60018800, 0x1c01f000, 0x5930000a, 0x50000000, + 0x4933c857, 0x4803c857, 0x8c00050e, 0x1c01f000, + 0x5930000a, 0x50000000, 0x8c00050a, 0x1c01f000, + 0x0501f805, 0x60058800, 0x05000002, 0x60018800, + 0x1c01f000, 0x4933c856, 0x0501f8a7, 0x05000005, + 0x59340400, 0x82000d00, 0x000000ff, 0x90041585, + 0x1c01f000, 0x0501f805, 0x60058800, 0x05020002, + 0x60018800, 0x1c01f000, 0x4d340000, 0x83ac0400, + 0x000007fe, 0x50000000, 0x80026d40, 0x05000003, + 0x59340200, 0x8c00051a, 0x5c026800, 0x1c01f000, + 0x4937c857, 0x493fc857, 0x59340403, 0x81ac0400, + 0x50000000, 0x81340580, 0x05e20e14, 0x59341200, + 0x813e79c0, 0x05000003, 0x8408155e, 0x0501f002, + 0x8408151e, 0x480a6a00, 0x1c01f000, 0x4937c857, + 0x05edfe43, 0x05000005, 0x59a80828, 0x42001000, + 0x00103be3, 0x0509fb4b, 0x1c01f000, 0x4937c857, + 0x42001000, 0x00103be3, 0x0509fa27, 0x59a8121b, + 0x84081512, 0x480b521b, 0x1c01f000, 0x4008d000, + 0x4020d800, 0x909d3c84, 0x409ce000, 0x0201f800, + 0x0010c253, 0x589c0000, 0x589c2001, 0x589c2802, + 0x589c3003, 0x909d3c04, 0x800001c0, 0x1c01f000, + 0x4d340000, 0x406a6800, 0x0501f803, 0x5c026800, + 0x1c01f000, 0x5934000f, 0x8d0c0512, 0x05020005, + 0x5934140b, 0x80081040, 0x05001002, 0x480a6c0b, + 0x80000540, 0x00020ad1, 0x1c01f000, 0x4803c857, + 0x4947c857, 0x4c300000, 0x90006530, 0x05000005, + 0x4c000000, 0x051df8f0, 0x5c000000, 0x0502000a, + 0x8c00050e, 0x05000005, 0x0001fac4, 0x05020006, + 0x4937c857, 0x05fdfd8e, 0x80000580, 0x5c006000, + 0x1c01f000, 0x90000541, 0x05fdf7fd, 0x4803c857, + 0x4c580000, 0x4d440000, 0x40001000, 0x80000d80, + 0x61c0b00f, 0x4c040000, 0x40068800, 0x4c080000, + 0x40080000, 0x05fdffe4, 0x5c001000, 0x5c000800, + 0x80040800, 0x8058b040, 0x05fe07f7, 0x8c080514, + 0x05000005, 0x84081514, 0x6004b000, 0x61f0080f, + 0x05fdf7f1, 0x4d300000, 0x4d400000, 0x0501fad3, + 0x61fe89ff, 0x42026000, 0x0010cc6c, 0x4a02600a, + 0x0010993e, 0x60a68000, 0x0509fd85, 0x4df00000, + 0x0201f800, 0x0010bb9e, 0x0201f800, 0x0010c0ee, + 0x5c03e000, 0x05080d6a, 0x5c028000, 0x5c026000, + 0x5c028800, 0x5c00b000, 0x1c01f000, 0x0501f805, 0x60058800, 0x05000002, 0x60018800, 0x1c01f000, - 0x4c5c0000, 0x59340400, 0x8200bd80, 0x00000404, - 0x05000003, 0x8200bd80, 0x00000606, 0x5c00b800, - 0x1c01f000, 0x4c5c0000, 0x4c600000, 0x59340400, - 0x8200bd00, 0x0000ff00, 0x825cc580, 0x00000400, - 0x05000003, 0x825cc580, 0x00000600, 0x5c00c000, - 0x5c00b800, 0x1c01f000, 0x0501f805, 0x60058800, - 0x05000002, 0x60018800, 0x1c01f000, 0x4c5c0000, - 0x59340400, 0x82000500, 0x000000ff, 0x9000bd83, - 0x05000002, 0x9000bd85, 0x5c00b800, 0x1c01f000, - 0x5c000000, 0x4c000000, 0x4803c857, 0x4c5c0000, - 0x59340400, 0x82000500, 0x0000ff00, 0x8400b9c0, - 0x805c0580, 0x4937c857, 0x4803c857, 0x48026c00, - 0x5c00b800, 0x1c01f000, 0x4c040000, 0x4c080000, - 0x592c0208, 0x8c00050c, 0x0500000d, 0x592e8c07, - 0x82000500, 0x00000080, 0x84000548, 0x4d3c0000, - 0x60027820, 0x05fdff6f, 0x5c027800, 0x90000541, - 0x5c001000, 0x5c000800, 0x1c01f000, 0x80000580, - 0x05fdf7fc, 0x592c040c, 0x82000500, 0x0000e000, - 0x82000580, 0x00006000, 0x0500001a, 0x916c0583, - 0x05000011, 0x916c0582, 0x050200d9, 0x59a8021b, - 0x90000d38, 0x05020005, 0x59a80813, 0x800409c0, - 0x05000009, 0x0501f0d2, 0x90000d03, 0x90040d83, - 0x050200cf, 0x90000d28, 0x05020003, 0x8c00050c, - 0x050000cb, 0x592c100b, 0x82080500, 0xff000000, - 0x050200b3, 0x59a8000f, 0x80080580, 0x050000ae, - 0x592c0c0c, 0x82040d00, 0x0000e000, 0x82040480, - 0x00008000, 0x050210ac, 0x592e8c07, 0x83440480, - 0x00000800, 0x05001013, 0x83440580, 0x0000ffff, - 0x05020099, 0x800409c0, 0x050200cd, 0x592c240a, - 0x82100500, 0xffffff00, 0x05020099, 0x480bc857, - 0x4813c857, 0x592c000e, 0x82000480, 0x00000841, - 0x0502109b, 0x614e7000, 0x417a6800, 0x0501f077, - 0x800409c0, 0x050200be, 0x41784000, 0x05fdff0d, - 0x050200ab, 0x59342204, 0x592c000e, 0x80100480, - 0x0500108f, 0x614e7000, 0x592c240a, 0x82100500, - 0xffffff00, 0x05020082, 0x4813c857, 0x592c000d, - 0x800001c0, 0x05000063, 0x90100584, 0x0500007a, - 0xb0100591, 0x05000078, 0x90100583, 0x0500000f, - 0x901005a0, 0x05000038, 0x901005a4, 0x05000032, - 0x901005a1, 0x05000032, 0xb0100590, 0x0500002a, - 0xb0100592, 0x05000026, 0x90100585, 0x05020053, - 0x60067000, 0x0501f018, 0x600a7000, 0x59a80086, - 0x8c000502, 0x05000014, 0x05fdff45, 0x05000012, + 0x4c5c0000, 0x59340400, 0x8200bd80, 0x00000606, + 0x5c00b800, 0x1c01f000, 0x4c5c0000, 0x59340400, + 0x8200bd80, 0x00000404, 0x5c00b800, 0x1c01f000, + 0x0501f805, 0x60058800, 0x05000002, 0x60018800, + 0x1c01f000, 0x4c5c0000, 0x59340400, 0x8200bd80, + 0x00000404, 0x05000003, 0x8200bd80, 0x00000606, + 0x5c00b800, 0x1c01f000, 0x4c5c0000, 0x4c600000, + 0x59340400, 0x8200bd00, 0x0000ff00, 0x825cc580, + 0x00000400, 0x05000003, 0x825cc580, 0x00000600, + 0x5c00c000, 0x5c00b800, 0x1c01f000, 0x0501f805, + 0x60058800, 0x05000002, 0x60018800, 0x1c01f000, + 0x4c5c0000, 0x59340400, 0x82000500, 0x000000ff, + 0x9000bd83, 0x05000002, 0x9000bd85, 0x5c00b800, + 0x1c01f000, 0x5c000000, 0x4c000000, 0x4803c857, + 0x4c5c0000, 0x59340400, 0x82000500, 0x0000ff00, + 0x8400b9c0, 0x805c0580, 0x4937c857, 0x4803c857, + 0x48026c00, 0x5c00b800, 0x1c01f000, 0x4c040000, + 0x4c080000, 0x592c0208, 0x8c00050c, 0x0500000d, + 0x592e8c07, 0x82000500, 0x00000080, 0x84000548, + 0x4d3c0000, 0x60027820, 0x05fdff6d, 0x5c027800, + 0x90000541, 0x5c001000, 0x5c000800, 0x1c01f000, + 0x80000580, 0x05fdf7fc, 0x592c040c, 0x82000500, + 0x0000e000, 0x82000580, 0x00006000, 0x0500001a, + 0x916c0583, 0x05000011, 0x916c0582, 0x050200dc, + 0x59a8021b, 0x90000d38, 0x05020005, 0x59a80813, + 0x800409c0, 0x05000009, 0x0501f0d5, 0x90000d03, + 0x90040d83, 0x050200d2, 0x90000d28, 0x05020003, + 0x8c00050c, 0x050000ce, 0x592c100b, 0x82080500, + 0xff000000, 0x050200b6, 0x59a8000f, 0x80080580, + 0x050000b1, 0x592c0c0c, 0x82040d00, 0x0000e000, + 0x82040480, 0x00008000, 0x050210af, 0x592e8c07, + 0x83440480, 0x00000800, 0x05001015, 0x83440580, + 0x0000ffff, 0x0502009c, 0x800409c0, 0x050200d0, + 0x592c240a, 0x82100500, 0xffffff00, 0x0502009c, + 0x480bc857, 0x4813c857, 0x592c000e, 0x82000480, + 0x00000841, 0x0502109e, 0x614e7000, 0x0501fa2b, + 0x42026800, 0x0010993e, 0x0501f077, 0x800409c0, + 0x050200bf, 0x41784000, 0x05fdff09, 0x050200ac, + 0x59342204, 0x592c000e, 0x80100480, 0x05001090, + 0x614e7000, 0x592c240a, 0x82100500, 0xffffff00, + 0x05020083, 0x4813c857, 0x592c000d, 0x800001c0, + 0x05000063, 0x90100584, 0x0500007b, 0xb0100591, + 0x05000079, 0x90100583, 0x0500000f, 0x901005a0, + 0x05000038, 0x901005a4, 0x05000032, 0x901005a1, + 0x05000032, 0xb0100590, 0x0500002a, 0xb0100592, + 0x05000026, 0x90100585, 0x05020053, 0x60067000, + 0x0501f018, 0x600a7000, 0x59a80086, 0x8c000502, + 0x05000014, 0x05fdff43, 0x05000012, 0x59340212, + 0x82000500, 0x0000ff00, 0x60401000, 0x0502000b, + 0x59a8021b, 0x8c000506, 0x05020057, 0x60201000, + 0x59340002, 0x82000500, 0x00ff0000, 0x82000580, + 0x00ff0000, 0x05000003, 0x0501f972, 0x0502004e, + 0x0511f967, 0x05000060, 0x64426407, 0x4936600a, + 0x600c0800, 0x91380582, 0x05000002, 0x602c0800, + 0x05fdfbf2, 0x0501f034, 0x60027000, 0x0501f002, + 0x60127000, 0x05fdff3d, 0x05020058, 0x0501f02a, + 0x60ce7000, 0x0501f004, 0x60167000, 0x0501f002, + 0x600e7000, 0x05fdff2c, 0x05020050, 0x59a80086, + 0x8c000502, 0x05000014, 0x05fdff16, 0x05000012, 0x59340212, 0x82000500, 0x0000ff00, 0x60401000, - 0x0502000b, 0x59a8021b, 0x8c000506, 0x05020056, + 0x0502000b, 0x59a8021b, 0x8c000506, 0x0502002a, 0x60201000, 0x59340002, 0x82000500, 0x00ff0000, - 0x82000580, 0x00ff0000, 0x05000003, 0x0501f971, - 0x0502004d, 0x0511f902, 0x0500005f, 0x64426407, - 0x4936600a, 0x600c0800, 0x91380582, 0x05000002, - 0x602c0800, 0x05fdfbfd, 0x0501f034, 0x60027000, - 0x0501f002, 0x60127000, 0x05fdff3f, 0x05020057, - 0x0501f02a, 0x60ce7000, 0x0501f004, 0x60167000, - 0x0501f002, 0x600e7000, 0x05fdff2e, 0x0502004f, - 0x59a80086, 0x8c000502, 0x05000014, 0x05fdff18, - 0x05000012, 0x59340212, 0x82000500, 0x0000ff00, - 0x60401000, 0x0502000b, 0x59a8021b, 0x8c000506, - 0x05020029, 0x60201000, 0x59340002, 0x82000500, - 0x00ff0000, 0x82000580, 0x00ff0000, 0x05000003, - 0x0501f944, 0x05020020, 0x0511f8d5, 0x05000032, - 0x64426407, 0x4936600a, 0x60140800, 0x91380583, - 0x05000002, 0x60240800, 0x05fdfbd0, 0x0501f007, - 0x90102591, 0x05020024, 0x0511f8c9, 0x05000026, - 0x64426407, 0x4936600a, 0x492e6009, 0x49325809, - 0x813669c0, 0x05000007, 0x592c0c0c, 0x8c040518, + 0x82000580, 0x00ff0000, 0x05000003, 0x0501f945, + 0x05020021, 0x0511f93a, 0x05000033, 0x64426407, + 0x4936600a, 0x60140800, 0x91380583, 0x05000002, + 0x60240800, 0x05fdfbc5, 0x0501f007, 0x90102591, + 0x05020025, 0x0511f92e, 0x05000027, 0x64426407, + 0x4936600a, 0x492e6009, 0x49325809, 0x83340580, + 0x0010993e, 0x05000007, 0x592c0c0c, 0x8c040518, 0x05000004, 0x59340200, 0x84000514, 0x48026a00, 0x0005f905, 0x80000580, 0x1c01f000, 0x90000541, 0x05fdf7fe, 0x60281000, 0x0501f010, 0x60401000, @@ -3968,28 +3974,28 @@ static const uint32_t isp_2500_risc_code[] = { 0x05fdf7f7, 0x60228000, 0x0501f004, 0x601c0800, 0x416c1000, 0x05fdf7f2, 0x41780800, 0x41781000, 0x05fdf7db, 0x60028000, 0x05fdf7fc, 0x90004d9d, - 0x05e00c6e, 0x90004d9a, 0x05020004, 0x40101000, + 0x05e00c56, 0x90004d9a, 0x05020004, 0x40101000, 0x40000800, 0x05fdf7e6, 0x90004d9b, 0x05020003, 0x40181000, 0x05fdf7fb, 0x90004d9c, 0x05fc07f9, 0x90004d99, 0x05fc07cc, 0x05fdf7e1, 0x592e6009, - 0x0519fed3, 0x05fc07ca, 0x59300c07, 0x90040591, + 0x0519ff51, 0x05fc07ca, 0x59300c07, 0x90040591, 0x05fe07e1, 0x592c0c0c, 0x82041500, 0x0000e000, 0x82080580, 0x00006000, 0x05000021, 0x83440580, - 0x0000ffff, 0x05020005, 0x5932680a, 0x813669c0, - 0x0500000e, 0x05fdf7d4, 0x592c100b, 0x82081500, - 0x00ffffff, 0x41784000, 0x05fdfe3a, 0x05fe07d8, - 0x5930000a, 0x800001c0, 0x05000003, 0x81340580, - 0x05fe07c9, 0x4936600a, 0x61000810, 0x813669c0, - 0x05000002, 0x59340a04, 0x592c000e, 0x80040480, + 0x0000ffff, 0x05020007, 0x5932680a, 0x83340580, + 0x0010993e, 0x05fe07d4, 0x61000810, 0x0501f00f, + 0x592c100b, 0x82081500, 0x00ffffff, 0x41784000, + 0x05fdfe33, 0x05fe07d6, 0x5930000a, 0x82000d80, + 0x0010993e, 0x05000003, 0x81340580, 0x05fe07c6, + 0x4936600a, 0x59340a04, 0x592c000e, 0x80040480, 0x05fc17b3, 0x59300a03, 0x90040587, 0x05fe07be, - 0x492e6009, 0x61527000, 0x05fdf792, 0x0525f8ed, + 0x492e6009, 0x61527000, 0x05fdf791, 0x0525f99f, 0x05fc07c1, 0x05fdf7b8, 0x492fc857, 0x592e6009, 0x83300580, 0xffffffff, 0x05020040, 0x592c0208, 0x8c000500, 0x0502006b, 0x8d0c050e, 0x05020058, 0x592e8c07, 0x83440480, 0x00000800, 0x05021035, 0x41784000, 0x592c100a, 0x82081500, 0x00ffffff, - 0x05fdfe10, 0x05020050, 0x592e6014, 0x4933c857, - 0x83300580, 0xffffffff, 0x05000018, 0x0519fe8c, + 0x05fdfe0b, 0x05020050, 0x592e6014, 0x4933c857, + 0x83300580, 0xffffffff, 0x05000018, 0x0519ff0a, 0x05000032, 0x591c1407, 0x800811c0, 0x05000013, 0x592c040e, 0x591c0a02, 0x80040580, 0x0502000f, 0x591c000a, 0x800001c0, 0x05020007, 0x591c0820, @@ -4008,11 +4014,11 @@ static const uint32_t isp_2500_risc_code[] = { 0x40000800, 0x05fdf7f9, 0x492fc857, 0x60280800, 0x41781000, 0x05fdf7f5, 0x41780800, 0x41781000, 0x05fdf7f3, 0x60780800, 0x05fdf7fa, 0x60040800, - 0x05fdf7f8, 0x90004d9d, 0x05e00bcc, 0x90004d9a, + 0x05fdf7f8, 0x90004d9d, 0x05e00bb4, 0x90004d9a, 0x05020003, 0x40101000, 0x05fdf7eb, 0x90004d9b, 0x05020003, 0x40181000, 0x05fdf7e7, 0x90004d9c, 0x05fc07e5, 0x90004d99, 0x05fc07e3, 0x05fdf7e7, - 0x0525f93e, 0x60028000, 0x05fdf7e8, 0x5c000000, + 0x0525f9f0, 0x60028000, 0x05fdf7e8, 0x5c000000, 0x4c000000, 0x4803c857, 0x5930200a, 0x801021c0, 0x05000029, 0x58101400, 0x4813c857, 0x480bc857, 0x82081d00, 0x000000ff, 0x59300c03, 0x90040588, @@ -4033,7 +4039,7 @@ static const uint32_t isp_2500_risc_code[] = { 0x60058800, 0x05020002, 0x60018800, 0x1c01f000, 0x4d440000, 0x4d340000, 0x80000580, 0x40001800, 0x40028800, 0x90080588, 0x05020002, 0x60041800, - 0x0001fac4, 0x0502000a, 0x05fdfdb9, 0x05020008, + 0x0001fac4, 0x0502000a, 0x05fdfdb6, 0x05020008, 0x800c19c0, 0x05000004, 0x59340405, 0x8c000508, 0x05000003, 0x80081040, 0x05000009, 0x81468800, 0x83440480, 0x00000800, 0x05fc17f2, 0x80000580, @@ -4044,481 +4050,492 @@ static const uint32_t isp_2500_risc_code[] = { 0x0000e000, 0x41781800, 0x90080580, 0x0500000a, 0x800c1800, 0x82080580, 0x00002000, 0x05000006, 0x800c1800, 0x82080580, 0x00006000, 0x05000002, - 0x800c1800, 0x42007000, 0x00109471, 0x58380401, + 0x800c1800, 0x42007000, 0x001094f1, 0x58380401, 0x8c000504, 0x05000006, 0x900c2c84, 0x05021016, - 0x820c0400, 0x00103ec7, 0x0501f012, 0x41782000, + 0x820c0400, 0x00103edf, 0x0501f012, 0x41782000, 0x59342a04, 0x82140480, 0x00000800, 0x05021006, 0x80102000, 0x82140480, 0x00000400, 0x05021002, 0x80102000, 0x800c00c2, 0x800c0400, 0x80100400, - 0x90002c89, 0x05021004, 0x82000400, 0x00103ecb, + 0x90002c89, 0x05021004, 0x82000400, 0x00103ee3, 0x50000800, 0x48066c04, 0x1c01f000, 0x00000002, 0x00000004, 0x00000008, 0x00000008, 0x00002802, 0x00001402, 0x00000a02, 0x00001402, 0x00000a02, 0x00000502, 0x00000a02, 0x00000502, 0x00000504, 0x59a80864, 0x800409c0, 0x05020004, 0x492f5063, - 0x492f5064, 0x050df683, 0x492c0800, 0x492f5064, + 0x492f5064, 0x050df6e3, 0x492c0800, 0x492f5064, 0x1c01f000, 0x5934000f, 0x41784000, 0x80001540, 0x0500000c, 0x58080205, 0x82000500, 0x000000ff, 0x90000592, 0x05020004, 0x5808020d, 0x80040580, 0x05000005, 0x58080000, 0x40084000, 0x05fdf7f4, - 0x90000541, 0x1c01f000, 0x64033011, 0x4a03b104, - 0x80000000, 0x4a03b104, 0x60000001, 0x497b3016, - 0x497b3017, 0x1c01f000, 0x599c0018, 0x4803c856, - 0x497b3014, 0x497b3015, 0x9000050f, 0x48033012, - 0x05000008, 0x599c0216, 0x82000500, 0x0000ffff, - 0x05020002, 0x60080000, 0x48033013, 0x850e1d62, - 0x1c01f000, 0x05fdfff1, 0x6413c826, 0x599c0209, - 0x80000540, 0x0500001c, 0x599c0207, 0x80000540, - 0x05000007, 0x800000cc, 0x599c080d, 0x80040400, - 0x4803b100, 0x497bb102, 0x59d80101, 0x599c000d, - 0x4803b100, 0x599c000e, 0x4803b101, 0x599c0207, - 0x80000540, 0x05020002, 0x497bb102, 0x599c0a09, - 0x82040540, 0x00400000, 0x4803b103, 0x6417b109, - 0x4a03b104, 0x10000001, 0x8d0c0522, 0x05020003, - 0x64073011, 0x1c01f000, 0x8d0c0520, 0x05020003, - 0x640b3011, 0x05fdf7fc, 0x640f3011, 0x05fdf7fa, - 0x592c0205, 0x492fc857, 0x80000540, 0x05000007, - 0x42034000, 0x00109410, 0x59a1d806, 0x80edd9c0, - 0x05e00ab2, 0x0501f005, 0x051df924, 0x05e20aaf, - 0x5931d823, 0x58ef400a, 0x58ec0008, 0x800001c0, - 0x05e00aaa, 0x0801f800, 0x1c01f000, 0x40680800, - 0x5c000000, 0x4c000000, 0x4803c857, 0x492fc857, - 0x4943c857, 0x4807c857, 0x4a025a05, 0x00000103, - 0x49425a07, 0x48065a09, 0x4a025c07, 0x0000ffff, - 0x813261c0, 0x05000003, 0x59300402, 0x48025c07, - 0x912c040a, 0x05011000, 0x4803c840, 0x642fc842, - 0x05011000, 0x1c01f000, 0x59a80011, 0x90000c8a, - 0x05e21a8e, 0x0c01f808, 0x4a038805, 0x000000f0, - 0x59c400a3, 0x82000500, 0x02870000, 0x05e20a87, - 0x1c01f000, 0x00103fde, 0x00103f6c, 0x00103f84, - 0x00103fad, 0x00103fd1, 0x001001e6, 0x001001e6, - 0x00103f84, 0x001001e6, 0x00103f6b, 0x1c01f000, - 0x600c2000, 0x0501fbae, 0x4a038808, 0x00000204, - 0x0501fba2, 0x59c40805, 0x8c04050e, 0x05020010, - 0x8c04050a, 0x05020009, 0x8c04050c, 0x05020005, - 0x8c040508, 0x0500000a, 0x640f5011, 0x0501f007, - 0x64035011, 0x0501f005, 0x42000000, 0x0010974d, - 0x0525f915, 0x640b5011, 0x0501f896, 0x1c01f000, - 0x60002000, 0x0501fb96, 0x4a038808, 0x00000202, - 0x59c40805, 0x8c040508, 0x05020020, 0x8c04050c, - 0x0502001c, 0x8c04050e, 0x05020018, 0x82040500, - 0x000000f0, 0x0502001b, 0x0501fb80, 0x4a038808, - 0x00000280, 0x59c40002, 0x8400050c, 0x48038802, - 0x0501f96d, 0x4d3c0000, 0x60067800, 0x051df844, - 0x5c027800, 0x59c410a3, 0x84081518, 0x05e9ff2c, - 0x4a038808, 0x00000280, 0x60082000, 0x0501fb78, - 0x64275011, 0x0501f007, 0x64075011, 0x0501f004, - 0x64035011, 0x0501f002, 0x640f5011, 0x0501f86d, - 0x1c01f000, 0x60042000, 0x0501fb6d, 0x59c410a3, - 0x84081518, 0x05e9ff1a, 0x4a038808, 0x00000280, - 0x59c40805, 0x8c04050a, 0x05020018, 0x8c04050c, - 0x05020014, 0x8c04050e, 0x05020010, 0x82040500, - 0x000000f0, 0x05020013, 0x59c40002, 0x8400050c, - 0x48038802, 0x0501f944, 0x4d3c0000, 0x60067800, - 0x051df81b, 0x5c027800, 0x60082000, 0x0501fb54, - 0x64275011, 0x0501f007, 0x64075011, 0x0501f004, - 0x64035011, 0x0501f002, 0x640b5011, 0x0501f849, - 0x1c01f000, 0x0501fc45, 0x4a038808, 0x00000208, - 0x59c40805, 0x8c04050c, 0x05020005, 0x8c04050e, - 0x05000005, 0x64075011, 0x0501f002, 0x64035011, - 0x0501f83c, 0x1c01f000, 0x60102000, 0x0501fb3c, - 0x0501f873, 0x59c40805, 0x8c04050c, 0x05020009, - 0x8c04050a, 0x05020005, 0x8c04050e, 0x05000005, - 0x64075011, 0x0501f002, 0x640b5011, 0x0501f82d, - 0x1c01f000, 0x0501f8f1, 0x05e209f8, 0x601c2000, - 0x0501fb2b, 0x8d0c050c, 0x05000010, 0x850e1d0c, - 0x64438805, 0x05e9fe12, 0x59c40005, 0x8c000508, - 0x05000006, 0x4a038808, 0x00000208, 0x64075014, - 0x6006d800, 0x0501f01a, 0x59c40006, 0x84000548, - 0x48038806, 0x0501f016, 0x59a80011, 0x90000581, - 0x05020012, 0x42000000, 0x0010974d, 0x0525f88e, - 0x4ce80000, 0x61a1d007, 0x0505feb9, 0x59c40005, - 0x90000530, 0x05000008, 0x8c00050a, 0x05000004, - 0x60002000, 0x0501fb0a, 0x0501f003, 0x60042000, - 0x0501fb07, 0x5c01d000, 0x64135011, 0x1c01f000, - 0x4c040000, 0x4c080000, 0x61900800, 0x42001000, - 0x00104021, 0x0505fe8c, 0x5c001000, 0x5c000800, - 0x1c01f000, 0x4803c856, 0x4c040000, 0x0509f910, - 0x4df00000, 0x0509fb33, 0x5c03e000, 0x050808f8, - 0x42000000, 0x0010974c, 0x0525f86b, 0x05fdffc2, - 0x5c000800, 0x1c01f000, 0x4803c856, 0x4c040000, - 0x4c080000, 0x0509f902, 0x4df00000, 0x0509fb25, - 0x5c03e000, 0x050808ea, 0x59c40006, 0x84000500, - 0x48038806, 0x0509fbdc, 0x497b8880, 0x42000000, - 0x0010974b, 0x0525f858, 0x05e9fd2a, 0x64135071, - 0x6012d800, 0x64078805, 0x42001000, 0x00104021, - 0x0505fe6e, 0x05e1fbbc, 0x0501f8ae, 0x05000005, - 0x42006000, 0xfeffffff, 0x41786800, 0x05f9fe81, - 0x0201f800, 0x0010c52f, 0x60000001, 0x05e9fa8d, - 0x5c001000, 0x5c000800, 0x1c01f000, 0x59c40008, - 0x82000580, 0x00000210, 0x05000005, 0x4a038808, - 0x00000210, 0x6021d027, 0x0505fe69, 0x1c01f000, - 0x4c040000, 0x59a80814, 0x90040580, 0x05000008, - 0x90040581, 0x05000008, 0x90040582, 0x05000008, - 0x90040583, 0x05000008, 0x0501f043, 0x64035011, - 0x0501f006, 0x64135011, 0x0501f004, 0x64075011, - 0x0501f002, 0x641f5011, 0x497b8880, 0x64078893, - 0x41780000, 0x05e9fade, 0x0509fba3, 0x916c0d84, - 0x05000008, 0x59c40006, 0x82000500, 0xffffff0f, - 0x82000540, 0x04000001, 0x48038806, 0x0501f007, - 0x59c40006, 0x82000500, 0xffffff0f, 0x82000540, - 0x04000000, 0x48038806, 0x0501f872, 0x05020005, - 0x59c40806, 0x82040d00, 0xfbffff0f, 0x48078806, - 0x59c40005, 0x8c000534, 0x05020026, 0x42006000, - 0xfc18ffff, 0x42006800, 0x01000000, 0x05f9fe3d, - 0x05e9fd77, 0x59c408a4, 0x90040d0f, 0x90040d8c, - 0x05020894, 0x0501f85f, 0x05000005, 0x42006000, - 0xfeffffff, 0x41786800, 0x05f9fe32, 0x916c0d84, - 0x0500000c, 0x05fdff7b, 0x5994102e, 0x41780800, - 0x60280000, 0x0505fedf, 0x40080000, 0x59a80831, - 0x80040c00, 0x42001000, 0x0010402e, 0x0505fdf9, - 0x64135014, 0x05fdfead, 0x0501f84a, 0x05020005, - 0x59c408a4, 0x90040d0f, 0x9004058c, 0x05e20937, - 0x5c000800, 0x1c01f000, 0x4803c856, 0x4c000000, - 0x0505fe1d, 0x4a03500f, 0x00ffffff, 0x497b5013, - 0x59a8001f, 0x82000500, 0xffff0000, 0x4803501f, - 0x497b8880, 0x497b8893, 0x41780000, 0x05e9fa90, - 0x59c40001, 0x82000500, 0xfffffcff, 0x48038801, - 0x42006000, 0xfc18ffff, 0x41786800, 0x05f9fe05, - 0x59c410a3, 0x84081518, 0x05e9fe01, 0x4a038808, - 0x00000200, 0x5c000000, 0x800001c0, 0x05fa0cc3, - 0x4a038805, 0x040000f0, 0x59c40006, 0x82000500, - 0xffffffcf, 0x82000540, 0x440000c1, 0x48038806, - 0x1c01f000, 0x0501f805, 0x60058800, 0x05000002, - 0x60018800, 0x1c01f000, 0x4c5c0000, 0x59a8b813, - 0x825cbd80, 0x0000aaaa, 0x5c00b800, 0x1c01f000, - 0x0501f805, 0x60058800, 0x05000002, 0x60018800, - 0x1c01f000, 0x4c5c0000, 0x599cb818, 0x905cbd30, - 0x905cbd80, 0x5c00b800, 0x1c01f000, 0x0501f805, + 0x90000541, 0x1c01f000, 0x42000000, 0x0010993e, + 0x4a000400, 0x00000707, 0x4a000204, 0x00000840, + 0x4a000403, 0x0000ffff, 0x49780200, 0x1c01f000, + 0x4d340000, 0x4d440000, 0x4c580000, 0x61c0b00f, + 0x4803c856, 0x417a8800, 0x0001fac4, 0x05020006, + 0x59340200, 0x8c00051a, 0x05000003, 0x8400051a, + 0x48026a00, 0x81468800, 0x8058b040, 0x05fe07f7, + 0x5c00b000, 0x5c028800, 0x5c026800, 0x1c01f000, + 0x64033011, 0x4a03b104, 0x80000000, 0x4a03b104, + 0x60000001, 0x497b3016, 0x497b3017, 0x1c01f000, + 0x599c0018, 0x4803c856, 0x497b3014, 0x497b3015, + 0x9000050f, 0x48033012, 0x05000008, 0x599c0216, + 0x82000500, 0x0000ffff, 0x05020002, 0x60080000, + 0x48033013, 0x850e1d62, 0x1c01f000, 0x05fdfff1, + 0x6413c826, 0x599c0209, 0x80000540, 0x0500001c, + 0x599c0207, 0x80000540, 0x05000007, 0x800000cc, + 0x599c080d, 0x80040400, 0x4803b100, 0x497bb102, + 0x59d80101, 0x599c000d, 0x4803b100, 0x599c000e, + 0x4803b101, 0x599c0207, 0x80000540, 0x05020002, + 0x497bb102, 0x599c0a09, 0x82040540, 0x00400000, + 0x4803b103, 0x6417b109, 0x4a03b104, 0x10000001, + 0x8d0c0522, 0x05020003, 0x64073011, 0x1c01f000, + 0x8d0c0520, 0x05020003, 0x640b3011, 0x05fdf7fc, + 0x640f3011, 0x05fdf7fa, 0x592c0205, 0x492fc857, + 0x80000540, 0x05000007, 0x42034000, 0x00109490, + 0x59a1d806, 0x80edd9c0, 0x05e00a7c, 0x0501f005, + 0x051df984, 0x05e20a79, 0x5931d823, 0x58ef400a, + 0x58ec0008, 0x800001c0, 0x05e00a74, 0x0801f800, + 0x1c01f000, 0x40680800, 0x5c000000, 0x4c000000, + 0x4803c857, 0x492fc857, 0x4943c857, 0x4807c857, + 0x4a025a05, 0x00000103, 0x49425a07, 0x48065a09, + 0x4a025c07, 0x0000ffff, 0x813261c0, 0x05000003, + 0x59300402, 0x48025c07, 0x912c040a, 0x05011000, + 0x4803c840, 0x642fc842, 0x05011000, 0x1c01f000, + 0x59a80011, 0x90000c8a, 0x05e21a58, 0x0c01f808, + 0x4a038805, 0x000000f0, 0x59c400a3, 0x82000500, + 0x02870000, 0x05e20a51, 0x1c01f000, 0x00104014, + 0x00103fa2, 0x00103fba, 0x00103fe3, 0x00104007, + 0x001001e6, 0x001001e6, 0x00103fba, 0x001001e6, + 0x00103fa1, 0x1c01f000, 0x600c2000, 0x0501fbae, + 0x4a038808, 0x00000204, 0x0501fba2, 0x59c40805, + 0x8c04050e, 0x05020010, 0x8c04050a, 0x05020009, + 0x8c04050c, 0x05020005, 0x8c040508, 0x0500000a, + 0x640f5011, 0x0501f007, 0x64035011, 0x0501f005, + 0x42000000, 0x001097cd, 0x0525f9a9, 0x640b5011, + 0x0501f896, 0x1c01f000, 0x60002000, 0x0501fb96, + 0x4a038808, 0x00000202, 0x59c40805, 0x8c040508, + 0x05020020, 0x8c04050c, 0x0502001c, 0x8c04050e, + 0x05020018, 0x82040500, 0x000000f0, 0x0502001b, + 0x0501fb80, 0x4a038808, 0x00000280, 0x59c40002, + 0x8400050c, 0x48038802, 0x0501f96d, 0x4d3c0000, + 0x60067800, 0x051df8a4, 0x5c027800, 0x59c410a3, + 0x84081518, 0x05e9fef4, 0x4a038808, 0x00000280, + 0x60082000, 0x0501fb78, 0x64275011, 0x0501f007, + 0x64075011, 0x0501f004, 0x64035011, 0x0501f002, + 0x640f5011, 0x0501f86d, 0x1c01f000, 0x60042000, + 0x0501fb6d, 0x59c410a3, 0x84081518, 0x05e9fee2, + 0x4a038808, 0x00000280, 0x59c40805, 0x8c04050a, + 0x05020018, 0x8c04050c, 0x05020014, 0x8c04050e, + 0x05020010, 0x82040500, 0x000000f0, 0x05020013, + 0x59c40002, 0x8400050c, 0x48038802, 0x0501f944, + 0x4d3c0000, 0x60067800, 0x051df87b, 0x5c027800, + 0x60082000, 0x0501fb54, 0x64275011, 0x0501f007, + 0x64075011, 0x0501f004, 0x64035011, 0x0501f002, + 0x640b5011, 0x0501f849, 0x1c01f000, 0x0501fc45, + 0x4a038808, 0x00000208, 0x59c40805, 0x8c04050c, + 0x05020005, 0x8c04050e, 0x05000005, 0x64075011, + 0x0501f002, 0x64035011, 0x0501f83c, 0x1c01f000, + 0x60102000, 0x0501fb3c, 0x0501f873, 0x59c40805, + 0x8c04050c, 0x05020009, 0x8c04050a, 0x05020005, + 0x8c04050e, 0x05000005, 0x64075011, 0x0501f002, + 0x640b5011, 0x0501f82d, 0x1c01f000, 0x0501f8f1, + 0x05e209c2, 0x601c2000, 0x0501fb2b, 0x8d0c050c, + 0x05000010, 0x850e1d0c, 0x64438805, 0x05e9fdda, + 0x59c40005, 0x8c000508, 0x05000006, 0x4a038808, + 0x00000208, 0x64075014, 0x6006d800, 0x0501f01a, + 0x59c40006, 0x84000548, 0x48038806, 0x0501f016, + 0x59a80011, 0x90000581, 0x05020012, 0x42000000, + 0x001097cd, 0x0525f922, 0x4ce80000, 0x61a1d007, + 0x0505ff0f, 0x59c40005, 0x90000530, 0x05000008, + 0x8c00050a, 0x05000004, 0x60002000, 0x0501fb0a, + 0x0501f003, 0x60042000, 0x0501fb07, 0x5c01d000, + 0x64135011, 0x1c01f000, 0x4c040000, 0x4c080000, + 0x61900800, 0x42001000, 0x00104057, 0x0505fee2, + 0x5c001000, 0x5c000800, 0x1c01f000, 0x4803c856, + 0x4c040000, 0x0509f966, 0x4df00000, 0x0509fb89, + 0x5c03e000, 0x0508094e, 0x42000000, 0x001097cc, + 0x0525f8ff, 0x05fdffc2, 0x5c000800, 0x1c01f000, + 0x4803c856, 0x4c040000, 0x4c080000, 0x0509f958, + 0x4df00000, 0x0509fb7b, 0x5c03e000, 0x05080940, + 0x59c40006, 0x84000500, 0x48038806, 0x0509fc32, + 0x497b8880, 0x42000000, 0x001097cb, 0x0525f8ec, + 0x05e9fcf2, 0x64135071, 0x6012d800, 0x64078805, + 0x42001000, 0x00104057, 0x0505fec4, 0x05e1fb86, + 0x0501f8ae, 0x05000005, 0x42006000, 0xfeffffff, + 0x41786800, 0x05f9fe57, 0x0201f800, 0x0010c534, + 0x60000001, 0x05e9fa55, 0x5c001000, 0x5c000800, + 0x1c01f000, 0x59c40008, 0x82000580, 0x00000210, + 0x05000005, 0x4a038808, 0x00000210, 0x6021d027, + 0x0505febf, 0x1c01f000, 0x4c040000, 0x59a80814, + 0x90040580, 0x05000008, 0x90040581, 0x05000008, + 0x90040582, 0x05000008, 0x90040583, 0x05000008, + 0x0501f043, 0x64035011, 0x0501f006, 0x64135011, + 0x0501f004, 0x64075011, 0x0501f002, 0x641f5011, + 0x497b8880, 0x64078893, 0x41780000, 0x05e9faa6, + 0x0509fbf9, 0x916c0d84, 0x05000008, 0x59c40006, + 0x82000500, 0xffffff0f, 0x82000540, 0x04000001, + 0x48038806, 0x0501f007, 0x59c40006, 0x82000500, + 0xffffff0f, 0x82000540, 0x04000000, 0x48038806, + 0x0501f872, 0x05020005, 0x59c40806, 0x82040d00, + 0xfbffff0f, 0x48078806, 0x59c40005, 0x8c000534, + 0x05020026, 0x42006000, 0xfc18ffff, 0x42006800, + 0x01000000, 0x05f9fe13, 0x05e9fd3f, 0x59c408a4, + 0x90040d0f, 0x90040d8c, 0x05020894, 0x0501f85f, + 0x05000005, 0x42006000, 0xfeffffff, 0x41786800, + 0x05f9fe08, 0x916c0d84, 0x0500000c, 0x05fdff7b, + 0x5994102e, 0x41780800, 0x60280000, 0x0505ff35, + 0x40080000, 0x59a80831, 0x80040c00, 0x42001000, + 0x00104064, 0x0505fe4f, 0x64135014, 0x05fdfead, + 0x0501f84a, 0x05020005, 0x59c408a4, 0x90040d0f, + 0x9004058c, 0x05e20901, 0x5c000800, 0x1c01f000, + 0x4803c856, 0x4c000000, 0x0505fe73, 0x4a03500f, + 0x00ffffff, 0x497b5013, 0x59a8001f, 0x82000500, + 0xffff0000, 0x4803501f, 0x497b8880, 0x497b8893, + 0x41780000, 0x05e9fa58, 0x59c40001, 0x82000500, + 0xfffffcff, 0x48038801, 0x42006000, 0xfc18ffff, + 0x41786800, 0x05f9fddb, 0x59c410a3, 0x84081518, + 0x05e9fdc9, 0x4a038808, 0x00000200, 0x5c000000, + 0x800001c0, 0x05fa0c99, 0x4a038805, 0x040000f0, + 0x59c40006, 0x82000500, 0xffffffcf, 0x82000540, + 0x440000c1, 0x48038806, 0x1c01f000, 0x0501f805, 0x60058800, 0x05000002, 0x60018800, 0x1c01f000, - 0x4c5c0000, 0x599cb818, 0x905cbd30, 0x905cbd90, + 0x4c5c0000, 0x59a8b813, 0x825cbd80, 0x0000aaaa, 0x5c00b800, 0x1c01f000, 0x0501f805, 0x60058800, 0x05000002, 0x60018800, 0x1c01f000, 0x4c5c0000, - 0x599cb818, 0x905cbd30, 0x905cbda0, 0x5c00b800, - 0x1c01f000, 0x490fc857, 0x910c0d13, 0x0500001b, - 0x599c1017, 0x4d3c0000, 0x910c0511, 0x05000005, - 0x417a7800, 0x8d0c0520, 0x05020007, 0x0501f00c, - 0x60227800, 0x8d0c0520, 0x05000009, 0x600c3000, - 0x0501f002, 0x60103000, 0x603a8000, 0x0521f9d5, - 0x599c1017, 0x8c08050a, 0x05020006, 0x60128000, - 0x0201f800, 0x0010b5d3, 0x4803c856, 0x850e1d08, - 0x5c027800, 0x0501f006, 0x8d0c0520, 0x05000004, - 0x603e8000, 0x60043000, 0x0521f9c6, 0x1c01f000, - 0x4803c856, 0x4c580000, 0x42000000, 0x00109861, - 0x0521ff69, 0x42000800, 0x00109b80, 0x59c40003, - 0x44000800, 0x59c40004, 0x48000801, 0x59c4000b, - 0x48000802, 0x59c4008e, 0x48000803, 0x59c4008f, - 0x48000804, 0x59c40090, 0x48000805, 0x59c40091, - 0x48000806, 0x59c40092, 0x48000807, 0x59c40093, - 0x48000808, 0x59c40099, 0x48000809, 0x59c4009e, - 0x4800080a, 0x59c400aa, 0x4800080b, 0x59c400af, - 0x4800080c, 0x59c400b2, 0x4800080d, 0x59c400b1, - 0x4800080e, 0x90040c0f, 0x41c41800, 0x60c0b000, - 0x580c0050, 0x44000800, 0x80040800, 0x800c1800, - 0x8058b040, 0x05fe07fb, 0x41c41800, 0x6080b000, - 0x580c0010, 0x44000800, 0x80040800, 0x800c1800, - 0x8058b040, 0x05fe07fb, 0x497b8830, 0x6100b000, - 0x59c40031, 0x44000800, 0x80040800, 0x8058b040, - 0x05fe07fc, 0x497b88ac, 0x6040b000, 0x59c400ad, - 0x44000800, 0x80040800, 0x8058b040, 0x05fe07fc, - 0x59c41001, 0x4c080000, 0x8408150c, 0x480b8801, - 0x4a0370e4, 0x00000300, 0x4a0370e5, 0xb0000000, - 0x60000810, 0x80040840, 0x05e00870, 0x59b800e5, - 0x8c000538, 0x05fe07fc, 0x4a0370e4, 0x00000200, - 0x42006000, 0xffffffff, 0x42006800, 0x80000000, - 0x05f9fd4c, 0x64078807, 0x497b8807, 0x0501faa1, - 0x4a038808, 0x00000210, 0x42006000, 0xfcf8ffff, - 0x42006800, 0x01000000, 0x05f9fd42, 0x5c001000, - 0x480b8801, 0x42000800, 0x00109b80, 0x50040000, - 0x48038803, 0x58040001, 0x48038804, 0x58040002, - 0x4803880b, 0x58040003, 0x4803888e, 0x58040004, - 0x4803888f, 0x58040005, 0x48038890, 0x58040006, - 0x48038891, 0x58040007, 0x48038892, 0x58040008, - 0x48038893, 0x58040009, 0x48038899, 0x5804000a, - 0x4803889e, 0x5804000b, 0x480388aa, 0x5804000c, - 0x480388af, 0x5804000d, 0x480388b2, 0x5804000e, - 0x480388b1, 0x90040c0f, 0x41c41800, 0x60c0b000, - 0x50040000, 0x48001850, 0x80040800, 0x800c1800, - 0x8058b040, 0x05fe07fb, 0x41c41800, 0x6080b000, - 0x50040000, 0x48001810, 0x80040800, 0x800c1800, - 0x8058b040, 0x05fe07fb, 0x497b8830, 0x6100b000, - 0x50040000, 0x48038831, 0x80040800, 0x8058b040, - 0x05fe07fc, 0x497b88ac, 0x6040b000, 0x50040000, - 0x480388ad, 0x80040800, 0x8058b040, 0x05fe07fc, - 0x497b8880, 0x41780000, 0x05e9f981, 0x59c408a4, - 0x90040d0f, 0x9004058c, 0x05e20814, 0x4a038805, - 0x04000000, 0x5c00b000, 0x1c01f000, 0x4803c856, - 0x4c580000, 0x4ce80000, 0x42000000, 0x0010974e, - 0x0521feb9, 0x59c41008, 0x4c080000, 0x82081500, - 0xffffff7f, 0x480b8808, 0x59c40004, 0x82000500, - 0x00003e02, 0x05000003, 0x6051d000, 0x0505fcdc, - 0x59c40006, 0x82000500, 0xffffff0f, 0x48038806, - 0x0501fa31, 0x64438805, 0x4a038808, 0x00000204, - 0x6194b000, 0x59c40005, 0x8c000508, 0x05020010, - 0x61a1d007, 0x0505fcce, 0x8058b040, 0x05fe07fa, - 0x601c2000, 0x0501f922, 0x0501fa1c, 0x0509fa1a, - 0x4803c856, 0x4a038808, 0x00000208, 0x64075014, - 0x6006d800, 0x90000541, 0x0501f032, 0x60042000, - 0x0501f917, 0x05e1fdca, 0x42000000, 0x0010983d, - 0x0521fe8d, 0x05e5f964, 0x497b8880, 0x59a8001f, - 0x82000500, 0x0000ffff, 0x4c000000, 0x05e9f940, - 0x5c000000, 0x48038880, 0x59c410a3, 0x84081518, - 0x05e9fcb7, 0x4a038808, 0x00000200, 0x64238805, - 0x6194b000, 0x4a038805, 0x000000f0, 0x05e9fbec, - 0x61c00801, 0x59c40005, 0x80040d00, 0x05000006, - 0x61a1d007, 0x0505fca2, 0x8058b040, 0x05fe07f6, - 0x05fdf7d4, 0x59c410a3, 0x84081558, 0x05e9fca4, - 0x60082000, 0x0501f8f2, 0x59c40006, 0x82000540, - 0x000000f0, 0x48038806, 0x59a80012, 0x80000540, - 0x05020002, 0x80000000, 0x48038893, 0x80000580, - 0x4df00000, 0x05e9fbfa, 0x5c03e000, 0x5c001000, - 0x480b8808, 0x5c01d000, 0x5c00b000, 0x1c01f000, - 0x4803c856, 0x4c580000, 0x4ce80000, 0x59c41008, + 0x599cb818, 0x905cbd30, 0x905cbd80, 0x5c00b800, + 0x1c01f000, 0x0501f805, 0x60058800, 0x05000002, + 0x60018800, 0x1c01f000, 0x4c5c0000, 0x599cb818, + 0x905cbd30, 0x905cbd90, 0x5c00b800, 0x1c01f000, + 0x0501f805, 0x60058800, 0x05000002, 0x60018800, + 0x1c01f000, 0x4c5c0000, 0x599cb818, 0x905cbd30, + 0x905cbda0, 0x5c00b800, 0x1c01f000, 0x490fc857, + 0x910c0d13, 0x0500001b, 0x599c1017, 0x4d3c0000, + 0x910c0511, 0x05000005, 0x417a7800, 0x8d0c0520, + 0x05020007, 0x0501f00c, 0x60227800, 0x8d0c0520, + 0x05000009, 0x600c3000, 0x0501f002, 0x60103000, + 0x603a8000, 0x0521fa50, 0x599c1017, 0x8c08050a, + 0x05020006, 0x60128000, 0x0201f800, 0x0010b5e0, + 0x4803c856, 0x850e1d08, 0x5c027800, 0x0501f006, + 0x8d0c0520, 0x05000004, 0x603e8000, 0x60043000, + 0x0521fa41, 0x1c01f000, 0x4803c856, 0x4c580000, + 0x42000000, 0x001098e1, 0x0521fffd, 0x42000800, + 0x00109c00, 0x59c40003, 0x44000800, 0x59c40004, + 0x48000801, 0x59c4000b, 0x48000802, 0x59c4008e, + 0x48000803, 0x59c4008f, 0x48000804, 0x59c40090, + 0x48000805, 0x59c40091, 0x48000806, 0x59c40092, + 0x48000807, 0x59c40093, 0x48000808, 0x59c40099, + 0x48000809, 0x59c4009e, 0x4800080a, 0x59c400aa, + 0x4800080b, 0x59c400af, 0x4800080c, 0x59c400b2, + 0x4800080d, 0x59c400b1, 0x4800080e, 0x90040c0f, + 0x41c41800, 0x60c0b000, 0x580c0050, 0x44000800, + 0x80040800, 0x800c1800, 0x8058b040, 0x05fe07fb, + 0x41c41800, 0x6080b000, 0x580c0010, 0x44000800, + 0x80040800, 0x800c1800, 0x8058b040, 0x05fe07fb, + 0x497b8830, 0x6100b000, 0x59c40031, 0x44000800, + 0x80040800, 0x8058b040, 0x05fe07fc, 0x497b88ac, + 0x6040b000, 0x59c400ad, 0x44000800, 0x80040800, + 0x8058b040, 0x05fe07fc, 0x59c41001, 0x4c080000, + 0x8408150c, 0x480b8801, 0x4a0370e4, 0x00000300, + 0x4a0370e5, 0xb0000000, 0x60000810, 0x80040840, + 0x05e0083a, 0x59b800e5, 0x8c000538, 0x05fe07fc, + 0x4a0370e4, 0x00000200, 0x42006000, 0xffffffff, + 0x42006800, 0x80000000, 0x05f9fd22, 0x64078807, + 0x497b8807, 0x0501faa1, 0x4a038808, 0x00000210, + 0x42006000, 0xfcf8ffff, 0x42006800, 0x01000000, + 0x05f9fd18, 0x5c001000, 0x480b8801, 0x42000800, + 0x00109c00, 0x50040000, 0x48038803, 0x58040001, + 0x48038804, 0x58040002, 0x4803880b, 0x58040003, + 0x4803888e, 0x58040004, 0x4803888f, 0x58040005, + 0x48038890, 0x58040006, 0x48038891, 0x58040007, + 0x48038892, 0x58040008, 0x48038893, 0x58040009, + 0x48038899, 0x5804000a, 0x4803889e, 0x5804000b, + 0x480388aa, 0x5804000c, 0x480388af, 0x5804000d, + 0x480388b2, 0x5804000e, 0x480388b1, 0x90040c0f, + 0x41c41800, 0x60c0b000, 0x50040000, 0x48001850, + 0x80040800, 0x800c1800, 0x8058b040, 0x05fe07fb, + 0x41c41800, 0x6080b000, 0x50040000, 0x48001810, + 0x80040800, 0x800c1800, 0x8058b040, 0x05fe07fb, + 0x497b8830, 0x6100b000, 0x50040000, 0x48038831, + 0x80040800, 0x8058b040, 0x05fe07fc, 0x497b88ac, + 0x6040b000, 0x50040000, 0x480388ad, 0x80040800, + 0x8058b040, 0x05fe07fc, 0x497b8880, 0x41780000, + 0x05e9f949, 0x59c408a4, 0x90040d0f, 0x9004058c, + 0x05de0fde, 0x4a038805, 0x04000000, 0x5c00b000, + 0x1c01f000, 0x4803c856, 0x4c580000, 0x4ce80000, + 0x42000000, 0x001097ce, 0x0521ff4d, 0x59c41008, 0x4c080000, 0x82081500, 0xffffff7f, 0x480b8808, 0x59c40004, 0x82000500, 0x00003e02, 0x05000003, - 0x6051d000, 0x0505fc7a, 0x05e1fd85, 0x42000000, - 0x0010983e, 0x0521fe48, 0x05e5f91f, 0x60002000, - 0x0501f8cb, 0x4a038808, 0x00000202, 0x80000580, - 0x48038880, 0x48038893, 0x05e9f8f9, 0x6010b007, - 0x4a038805, 0x000000f0, 0x05e9fbad, 0x61c00801, - 0x59c40005, 0x80040d00, 0x05000016, 0x82000500, - 0x000000d0, 0x0502001f, 0x619dd000, 0x0505fc60, - 0x8058b040, 0x05fe07f3, 0x601c2000, 0x0501f8b4, - 0x0509f9ad, 0x0501f9ad, 0x4a038808, 0x00000208, - 0x64075014, 0x6006d800, 0x59c40006, 0x8400050a, - 0x48038806, 0x64838805, 0x90000541, 0x0501f01b, - 0x59c410a3, 0x84081518, 0x05e9fc55, 0x4a038808, - 0x00000200, 0x6095d000, 0x0505fc49, 0x59c410a3, - 0x84081558, 0x05e9fc4e, 0x60082000, 0x0501f89c, - 0x497b8880, 0x59a80012, 0x80000540, 0x05020002, - 0x80000000, 0x48038893, 0x59a8001f, 0x82000500, - 0x0000ffff, 0x4c000000, 0x05e9f8c5, 0x5c000000, - 0x48038880, 0x80000580, 0x4df00000, 0x05e9fba0, - 0x5c03e000, 0x5c001000, 0x480b8808, 0x5c01d000, - 0x5c00b000, 0x1c01f000, 0x4803c856, 0x60042000, - 0x0501f883, 0x59c40004, 0x82000500, 0x00003e02, - 0x05000008, 0x0509f978, 0x0501f978, 0x4a038808, - 0x00000208, 0x64075014, 0x6006d800, 0x0501f046, - 0x05e1fd2b, 0x42000000, 0x0010983f, 0x0521fdee, - 0x05e5f8c5, 0x59c40006, 0x84000508, 0x48038806, - 0x64438805, 0x850e1d4c, 0x61900800, 0x42001000, - 0x00104021, 0x0505fbf8, 0x59c410a3, 0x84081518, - 0x05e9fc17, 0x4a038808, 0x00000200, 0x497b8880, - 0x4a038805, 0x000000f0, 0x05e9fb4d, 0x61c00801, - 0x59c40005, 0x80040d00, 0x0500000b, 0x82000500, - 0x000000e0, 0x0502000d, 0x61a1d007, 0x0505fc00, - 0x0505fa7e, 0x59940004, 0x80000540, 0x05fe07f1, - 0x0501f021, 0x59c410a3, 0x84081558, 0x05e9fc00, - 0x60082000, 0x0501f84e, 0x4c080000, 0x42001000, - 0x00104021, 0x0505fbe1, 0x5c001000, 0x497b8880, + 0x6051d000, 0x0505fd32, 0x59c40006, 0x82000500, + 0xffffff0f, 0x48038806, 0x0501fa31, 0x64438805, + 0x4a038808, 0x00000204, 0x6194b000, 0x59c40005, + 0x8c000508, 0x05020010, 0x61a1d007, 0x0505fd24, + 0x8058b040, 0x05fe07fa, 0x601c2000, 0x0501f922, + 0x0501fa1c, 0x0509fa70, 0x4803c856, 0x4a038808, + 0x00000208, 0x64075014, 0x6006d800, 0x90000541, + 0x0501f032, 0x60042000, 0x0501f917, 0x05e1fd92, + 0x42000000, 0x001098bd, 0x0521ff21, 0x05e5f92e, + 0x497b8880, 0x59a8001f, 0x82000500, 0x0000ffff, + 0x4c000000, 0x05e9f908, 0x5c000000, 0x48038880, + 0x59c410a3, 0x84081518, 0x05e9fc7f, 0x4a038808, + 0x00000200, 0x64238805, 0x6194b000, 0x4a038805, + 0x000000f0, 0x05e9fbb4, 0x61c00801, 0x59c40005, + 0x80040d00, 0x05000006, 0x61a1d007, 0x0505fcf8, + 0x8058b040, 0x05fe07f6, 0x05fdf7d4, 0x59c410a3, + 0x84081558, 0x05e9fc6c, 0x60082000, 0x0501f8f2, + 0x59c40006, 0x82000540, 0x000000f0, 0x48038806, 0x59a80012, 0x80000540, 0x05020002, 0x80000000, - 0x48038893, 0x59a8001f, 0x82000500, 0x0000ffff, - 0x4c000000, 0x05e9f872, 0x5c000000, 0x48038880, - 0x850e1d0c, 0x59c40006, 0x84000548, 0x48038806, - 0x05e9fb4b, 0x59c40008, 0x82000540, 0x00000280, - 0x48038808, 0x1c01f000, 0x4803c856, 0x4d400000, - 0x4d3c0000, 0x0509f928, 0x0521feb6, 0x0502001d, - 0x599c1017, 0x8d0c0500, 0x05020009, 0x8c08051a, - 0x05000018, 0x850e1d42, 0x60128000, 0x60227800, - 0x8d0c0520, 0x05020006, 0x0501f00e, 0x60128000, - 0x417a7800, 0x8d0c0520, 0x0500000a, 0x4d400000, - 0x603a8000, 0x600c3000, 0x61fe89ff, 0x051dffe6, - 0x5c028000, 0x599c0817, 0x8c04050a, 0x05020005, - 0x4943c857, 0x493fc857, 0x0201f800, 0x0010b5d3, - 0x497b8880, 0x6006d800, 0x05fdfd4e, 0x5c027800, - 0x5c028000, 0x1c01f000, 0x05e1fcbd, 0x42000000, - 0x00109840, 0x0521fd80, 0x05e5f857, 0x60040000, - 0x05e9f837, 0x64078880, 0x05e9f315, 0x42000800, - 0x0010940c, 0x48100802, 0x90101488, 0x05001008, - 0x58040001, 0x4803c857, 0x4813c857, 0x58040003, - 0x80000000, 0x48000803, 0x60082000, 0x58040001, - 0x9000148b, 0x05001007, 0x4803c857, 0x4813c857, - 0x58040003, 0x80000000, 0x48000803, 0x60000000, - 0x48000800, 0x59c428a4, 0x90142d0f, 0x90142d8c, - 0x0c000002, 0x0501f0fb, 0x00104341, 0x0010435b, - 0x00104375, 0x0010438f, 0x001043a9, 0x001043bf, - 0x001043ce, 0x001043e1, 0x001043f4, 0x00104407, - 0x00104409, 0x40100000, 0x0c01f001, 0x0010434b, - 0x0010434d, 0x0010434f, 0x00104350, 0x00104352, - 0x00104354, 0x00104357, 0x00104359, 0x64080801, - 0x1c01f000, 0x640c0801, 0x0501f0bc, 0x1c01f000, - 0x641c0801, 0x1c01f000, 0x64100801, 0x0501f0ba, - 0x64140801, 0x0501f8be, 0x0501f0ba, 0x64140801, - 0x0501f0bb, 0x4813c857, 0x1c01f000, 0x40100000, - 0x0c01f001, 0x00104365, 0x00104367, 0x00104369, - 0x0010436a, 0x0010436c, 0x0010436e, 0x00104371, - 0x00104373, 0x64080801, 0x1c01f000, 0x640c0801, - 0x1c01f000, 0x1c01f000, 0x641c0801, 0x1c01f000, - 0x64100801, 0x0501f0a0, 0x64140801, 0x0501f8a4, - 0x0501f0a0, 0x64140801, 0x1c01f000, 0x64140801, - 0x0501f099, 0x40100000, 0x0c01f001, 0x0010437f, - 0x00104380, 0x00104382, 0x00104384, 0x00104386, - 0x00104388, 0x0010438b, 0x0010438d, 0x1c01f000, - 0x640c0801, 0x1c01f000, 0x64000801, 0x1c01f000, - 0x641c0801, 0x1c01f000, 0x64100801, 0x0501f086, - 0x64140801, 0x0501f88a, 0x0501f086, 0x64140801, - 0x1c01f000, 0x64140801, 0x0501f07f, 0x40100000, - 0x0c01f001, 0x00104399, 0x0010439b, 0x0010439c, - 0x0010439e, 0x001043a0, 0x001043a2, 0x001043a5, - 0x001043a7, 0x64080801, 0x1c01f000, 0x1c01f000, - 0x64000801, 0x1c01f000, 0x641c0801, 0x1c01f000, - 0x64100801, 0x0501f06c, 0x64140801, 0x0501f870, - 0x0501f06c, 0x64140801, 0x1c01f000, 0x64140801, - 0x0501f065, 0x40100000, 0x0c01f001, 0x001043b3, - 0x001043b5, 0x001043b5, 0x001043b6, 0x001043b5, - 0x001043b8, 0x001043bb, 0x001043bd, 0x64080801, - 0x1c01f000, 0x1c01f000, 0x641c0801, 0x1c01f000, - 0x64140801, 0x0501f85a, 0x0501f056, 0x64140801, - 0x1c01f000, 0x64140801, 0x0501f04f, 0x40100000, - 0x0c01f001, 0x001043cd, 0x001043cd, 0x001043cd, - 0x001043c9, 0x001043cb, 0x001043cd, 0x001043cd, - 0x001043cd, 0x641c0801, 0x1c01f000, 0x64100801, - 0x1c01f000, 0x1c01f000, 0x40100000, 0x0c01f001, - 0x001043d8, 0x001043da, 0x001043da, 0x001043db, - 0x001043dd, 0x001043df, 0x001043df, 0x001043df, - 0x64080801, 0x1c01f000, 0x1c01f000, 0x641c0801, - 0x1c01f000, 0x64100801, 0x0501f02f, 0x64200801, - 0x1c01f000, 0x40100000, 0x0c01f001, 0x001043eb, - 0x001043ed, 0x001043ef, 0x001043ef, 0x001043f0, - 0x001043f2, 0x001043f2, 0x001043f2, 0x64080801, + 0x48038893, 0x80000580, 0x4df00000, 0x05e9fbc2, + 0x5c03e000, 0x5c001000, 0x480b8808, 0x5c01d000, + 0x5c00b000, 0x1c01f000, 0x4803c856, 0x4c580000, + 0x4ce80000, 0x59c41008, 0x4c080000, 0x82081500, + 0xffffff7f, 0x480b8808, 0x59c40004, 0x82000500, + 0x00003e02, 0x05000003, 0x6051d000, 0x0505fcd0, + 0x05e1fd4d, 0x42000000, 0x001098be, 0x0521fedc, + 0x05e5f8e9, 0x60002000, 0x0501f8cb, 0x4a038808, + 0x00000202, 0x80000580, 0x48038880, 0x48038893, + 0x05e9f8c1, 0x6010b007, 0x4a038805, 0x000000f0, + 0x05e9fb75, 0x61c00801, 0x59c40005, 0x80040d00, + 0x05000016, 0x82000500, 0x000000d0, 0x0502001f, + 0x619dd000, 0x0505fcb6, 0x8058b040, 0x05fe07f3, + 0x601c2000, 0x0501f8b4, 0x0509fa03, 0x0501f9ad, + 0x4a038808, 0x00000208, 0x64075014, 0x6006d800, + 0x59c40006, 0x8400050a, 0x48038806, 0x64838805, + 0x90000541, 0x0501f01b, 0x59c410a3, 0x84081518, + 0x05e9fc1d, 0x4a038808, 0x00000200, 0x6095d000, + 0x0505fc9f, 0x59c410a3, 0x84081558, 0x05e9fc16, + 0x60082000, 0x0501f89c, 0x497b8880, 0x59a80012, + 0x80000540, 0x05020002, 0x80000000, 0x48038893, + 0x59a8001f, 0x82000500, 0x0000ffff, 0x4c000000, + 0x05e9f88d, 0x5c000000, 0x48038880, 0x80000580, + 0x4df00000, 0x05e9fb68, 0x5c03e000, 0x5c001000, + 0x480b8808, 0x5c01d000, 0x5c00b000, 0x1c01f000, + 0x4803c856, 0x60042000, 0x0501f883, 0x59c40004, + 0x82000500, 0x00003e02, 0x05000008, 0x0509f9ce, + 0x0501f978, 0x4a038808, 0x00000208, 0x64075014, + 0x6006d800, 0x0501f046, 0x05e1fcf3, 0x42000000, + 0x001098bf, 0x0521fe82, 0x05e5f88f, 0x59c40006, + 0x84000508, 0x48038806, 0x64438805, 0x850e1d4c, + 0x61900800, 0x42001000, 0x00104057, 0x0505fc4e, + 0x59c410a3, 0x84081518, 0x05e9fbdf, 0x4a038808, + 0x00000200, 0x497b8880, 0x4a038805, 0x000000f0, + 0x05e9fb15, 0x61c00801, 0x59c40005, 0x80040d00, + 0x0500000b, 0x82000500, 0x000000e0, 0x0502000d, + 0x61a1d007, 0x0505fc56, 0x0505fad4, 0x59940004, + 0x80000540, 0x05fe07f1, 0x0501f021, 0x59c410a3, + 0x84081558, 0x05e9fbc8, 0x60082000, 0x0501f84e, + 0x4c080000, 0x42001000, 0x00104057, 0x0505fc37, + 0x5c001000, 0x497b8880, 0x59a80012, 0x80000540, + 0x05020002, 0x80000000, 0x48038893, 0x59a8001f, + 0x82000500, 0x0000ffff, 0x4c000000, 0x05e9f83a, + 0x5c000000, 0x48038880, 0x850e1d0c, 0x59c40006, + 0x84000548, 0x48038806, 0x05e9fb13, 0x59c40008, + 0x82000540, 0x00000280, 0x48038808, 0x1c01f000, + 0x4803c856, 0x4d400000, 0x4d3c0000, 0x0509f97e, + 0x0521ff4a, 0x0502001d, 0x599c1017, 0x8d0c0500, + 0x05020009, 0x8c08051a, 0x05000018, 0x850e1d42, + 0x60128000, 0x60227800, 0x8d0c0520, 0x05020006, + 0x0501f00e, 0x60128000, 0x417a7800, 0x8d0c0520, + 0x0500000a, 0x4d400000, 0x603a8000, 0x600c3000, + 0x61fe89ff, 0x0521f861, 0x5c028000, 0x599c0817, + 0x8c04050a, 0x05020005, 0x4943c857, 0x493fc857, + 0x0201f800, 0x0010b5e0, 0x497b8880, 0x6006d800, + 0x05fdfd4e, 0x5c027800, 0x5c028000, 0x1c01f000, + 0x05e1fc85, 0x42000000, 0x001098c0, 0x0521fe14, + 0x05e5f821, 0x60040000, 0x05e5ffff, 0x64078880, + 0x05e9f2dd, 0x42000800, 0x0010948c, 0x48100802, + 0x90101488, 0x05001008, 0x58040001, 0x4803c857, + 0x4813c857, 0x58040003, 0x80000000, 0x48000803, + 0x60082000, 0x58040001, 0x9000148b, 0x05001007, + 0x4803c857, 0x4813c857, 0x58040003, 0x80000000, + 0x48000803, 0x60000000, 0x48000800, 0x59c428a4, + 0x90142d0f, 0x90142d8c, 0x0c000002, 0x0501f0fb, + 0x00104377, 0x00104391, 0x001043ab, 0x001043c5, + 0x001043df, 0x001043f5, 0x00104404, 0x00104417, + 0x0010442a, 0x0010443d, 0x0010443f, 0x40100000, + 0x0c01f001, 0x00104381, 0x00104383, 0x00104385, + 0x00104386, 0x00104388, 0x0010438a, 0x0010438d, + 0x0010438f, 0x64080801, 0x1c01f000, 0x640c0801, + 0x0501f0bc, 0x1c01f000, 0x641c0801, 0x1c01f000, + 0x64100801, 0x0501f0ba, 0x64140801, 0x0501f8be, + 0x0501f0ba, 0x64140801, 0x0501f0bb, 0x4813c857, + 0x1c01f000, 0x40100000, 0x0c01f001, 0x0010439b, + 0x0010439d, 0x0010439f, 0x001043a0, 0x001043a2, + 0x001043a4, 0x001043a7, 0x001043a9, 0x64080801, 0x1c01f000, 0x640c0801, 0x1c01f000, 0x1c01f000, - 0x64100801, 0x0501f01c, 0x64200801, 0x1c01f000, - 0x40100000, 0x0c01f001, 0x001043fe, 0x001043fe, - 0x00104400, 0x00104401, 0x00104403, 0x00104400, - 0x00104405, 0x00104400, 0x64140801, 0x0501f00b, + 0x641c0801, 0x1c01f000, 0x64100801, 0x0501f0a0, + 0x64140801, 0x0501f8a4, 0x0501f0a0, 0x64140801, + 0x1c01f000, 0x64140801, 0x0501f099, 0x40100000, + 0x0c01f001, 0x001043b5, 0x001043b6, 0x001043b8, + 0x001043ba, 0x001043bc, 0x001043be, 0x001043c1, + 0x001043c3, 0x1c01f000, 0x640c0801, 0x1c01f000, + 0x64000801, 0x1c01f000, 0x641c0801, 0x1c01f000, + 0x64100801, 0x0501f086, 0x64140801, 0x0501f88a, + 0x0501f086, 0x64140801, 0x1c01f000, 0x64140801, + 0x0501f07f, 0x40100000, 0x0c01f001, 0x001043cf, + 0x001043d1, 0x001043d2, 0x001043d4, 0x001043d6, + 0x001043d8, 0x001043db, 0x001043dd, 0x64080801, + 0x1c01f000, 0x1c01f000, 0x64000801, 0x1c01f000, + 0x641c0801, 0x1c01f000, 0x64100801, 0x0501f06c, + 0x64140801, 0x0501f870, 0x0501f06c, 0x64140801, + 0x1c01f000, 0x64140801, 0x0501f065, 0x40100000, + 0x0c01f001, 0x001043e9, 0x001043eb, 0x001043eb, + 0x001043ec, 0x001043eb, 0x001043ee, 0x001043f1, + 0x001043f3, 0x64080801, 0x1c01f000, 0x1c01f000, + 0x641c0801, 0x1c01f000, 0x64140801, 0x0501f85a, + 0x0501f056, 0x64140801, 0x1c01f000, 0x64140801, + 0x0501f04f, 0x40100000, 0x0c01f001, 0x00104403, + 0x00104403, 0x00104403, 0x001043ff, 0x00104401, + 0x00104403, 0x00104403, 0x00104403, 0x641c0801, + 0x1c01f000, 0x64100801, 0x1c01f000, 0x1c01f000, + 0x40100000, 0x0c01f001, 0x0010440e, 0x00104410, + 0x00104410, 0x00104411, 0x00104413, 0x00104415, + 0x00104415, 0x00104415, 0x64080801, 0x1c01f000, 0x1c01f000, 0x641c0801, 0x1c01f000, 0x64100801, - 0x1c01f000, 0x64200801, 0x1c01f000, 0x64240801, - 0x1c01f000, 0x1c01f000, 0x42000000, 0x00109738, - 0x0521f489, 0x42000000, 0x00109735, 0x0521f486, - 0x42000000, 0x00109737, 0x0521f483, 0x42000000, - 0x00109736, 0x0521f480, 0x42000800, 0x0010940c, - 0x58040001, 0x48000800, 0x64140801, 0x64200802, - 0x1c01f000, 0x42000800, 0x0010940c, 0x58040001, - 0x48000800, 0x64040801, 0x64280802, 0x1c01f000, - 0x42000800, 0x0010940c, 0x58040001, 0x48000800, - 0x64180801, 0x64240802, 0x1c01f000, 0x42000800, - 0x0010940c, 0x64280801, 0x64280800, 0x1c01f000, - 0x496fc857, 0x4813c857, 0x40100000, 0x0c01f001, - 0x0010444a, 0x0010444a, 0x0010444a, 0x0010444a, - 0x0010443c, 0x00104444, 0x00104448, 0x0010444a, - 0x59a8021b, 0x8c000506, 0x05000003, 0x8c000502, - 0x0500000a, 0x0501f80a, 0x05fe07cb, 0x0501f007, - 0x0501f807, 0x05000005, 0x05fdffca, 0x05fdf7cc, - 0x0501f803, 0x05fe07ca, 0x1c01f000, 0x496fc857, - 0x416c0000, 0x90000c88, 0x05de1d98, 0x0c01f001, - 0x00104458, 0x0010445a, 0x0010445a, 0x0010445a, - 0x00104458, 0x00104458, 0x00104458, 0x0010445a, - 0x80000580, 0x1c01f000, 0x90000541, 0x1c01f000, - 0x6002e000, 0x497b3004, 0x4a03b004, 0x60000001, - 0x59d80005, 0x4a03b004, 0x90000001, 0x4a03a804, - 0x60000001, 0x59d40005, 0x4a03a804, 0x90000001, - 0x0501f3c3, 0x6413c825, 0x6413c827, 0x599c0409, - 0x80000d40, 0x0500001f, 0x599c0407, 0x80000540, - 0x05000007, 0x800000cc, 0x599c100b, 0x80080400, - 0x4803b000, 0x497bb002, 0x59d80001, 0x599c000b, - 0x4803b000, 0x599c000c, 0x4803b001, 0x599c0407, - 0x80000540, 0x05020002, 0x497bb002, 0x599c0c09, - 0x82040540, 0x00400000, 0x4803b003, 0x6417b009, - 0x4a03b004, 0x10000001, 0x59e00803, 0x82040d00, - 0xfffffeff, 0x82040d40, 0x00008000, 0x4807c003, - 0x599c040a, 0x80000540, 0x0500001f, 0x599c0408, - 0x80000540, 0x05000007, 0x800000cc, 0x599c100f, - 0x80080400, 0x4803a800, 0x497ba802, 0x59d40001, - 0x599c000f, 0x4803a800, 0x599c0010, 0x4803a801, - 0x599c0408, 0x80000540, 0x05020002, 0x497ba802, - 0x599c0c0a, 0x82040540, 0x00400000, 0x4803a803, - 0x6417a809, 0x4a03a804, 0x10000001, 0x59e00803, - 0x82040d00, 0xfffffbff, 0x82040d40, 0x00008000, - 0x4807c003, 0x800409c0, 0x05000004, 0x6006e000, - 0x0000be96, 0x0000f6a9, 0x1c01f000, 0x05ddfd33, - 0x1c01f000, 0x0501f850, 0x5c03e000, 0x0001f622, - 0x0001fe4a, 0x05fdf7fd, 0x00104505, 0x00104505, - 0x00104505, 0x00104505, 0x00104511, 0x00104505, - 0x00104505, 0x00104505, 0x00104505, 0x00104505, - 0x00020641, 0x00104505, 0x00104505, 0x00104511, - 0x00104511, 0x00104505, 0x00104505, 0x00104505, - 0x00104505, 0x00104505, 0x00104505, 0x00104505, - 0x00104505, 0x00104505, 0x00104505, 0x00104505, - 0x00104505, 0x00104505, 0x00104505, 0x00104505, - 0x00104505, 0x00104505, 0x00104505, 0x00104505, - 0x00104505, 0x00104505, 0x00104505, 0x00104505, - 0x00104505, 0x00104505, 0x00104505, 0x00104505, - 0x00104505, 0x00104505, 0x00104505, 0x00104505, - 0x00104505, 0x00104505, 0x00104505, 0x00104505, - 0x00104505, 0x00104505, 0x00104505, 0x00104505, - 0x00104505, 0x00104505, 0x00104505, 0x00104505, - 0x00104505, 0x00104505, 0x00104505, 0x00104505, - 0x00104505, 0x00104505, 0x00104505, 0x00104505, - 0x00104505, 0x00104505, 0x00104505, 0x00104505, - 0x00104505, 0x00104505, 0x00104505, 0x00104505, - 0x00104505, 0x492fc857, 0x42000000, 0x001097f3, - 0x0521fb8d, 0x60000008, 0x0501f013, 0x492fc857, - 0x42000000, 0x001097f2, 0x0521fb87, 0x60000020, - 0x0501f00d, 0x492fc857, 0x42000000, 0x001097f1, - 0x0521fb81, 0x60000040, 0x0501f007, 0x492fc857, - 0x42000000, 0x001097f4, 0x0521fb7b, 0x60000010, - 0x0501f001, 0x4803c857, 0x592c0c05, 0x82040d00, - 0xffff80ff, 0x80040540, 0x59980803, 0x800409c0, - 0x05000002, 0x8400051e, 0x48025c05, 0x0001fb2c, - 0x91700583, 0x6006e000, 0x05000002, 0x1c01f000, - 0x599a5801, 0x812e59c0, 0x05fe07e3, 0x05ddfcb7, - 0x492fc857, 0x80140110, 0x05fc07d9, 0x80000040, - 0x05000020, 0x4a033006, 0x00104554, 0x0001f62b, - 0x492fc857, 0x0521fc6b, 0x00020636, 0x492fc856, - 0x83440400, 0x00108b80, 0x50000000, 0x80026d40, - 0x05000005, 0x4937c857, 0x59340200, 0x8c00050e, - 0x00020636, 0x60a28000, 0x41780800, 0x417a6000, - 0x05fdf9f8, 0x0515fce8, 0x0001f32c, 0x82000500, - 0x0f000000, 0x8000012a, 0x592c0c0b, 0x82040d00, - 0x0000ff87, 0x80040540, 0x48025c0b, 0x0001f63e, - 0x492fc857, 0x592c0409, 0x80000540, 0x05fe07c0, - 0x8d0c050e, 0x05020008, 0x592c0208, 0x80000540, - 0x05fc07bb, 0x497a5a07, 0x05f9fa05, 0x05020003, - 0x1c01f000, 0x60a00000, 0x48025a07, 0x0001f32c, - 0x592e8a07, 0x592c0407, 0x4947c857, 0x4803c857, - 0x82000500, 0x000000ff, 0x6004b800, 0x90000d81, - 0x0500000e, 0x417a8800, 0x61c0b80f, 0x90000d82, - 0x0500000a, 0x80000540, 0x0002032c, 0x592e8a07, - 0x0001fac4, 0x0002032c, 0x592e9009, 0x592e980a, - 0x05f9fd22, 0x0001f32c, 0x850e1d00, 0x0001fac4, - 0x05f80dfd, 0x81468800, 0x805cb840, 0x05fe07fc, - 0x0001f32c, 0x592c0a09, 0x4807c857, 0x9004058e, - 0x05000051, 0x900405aa, 0x05000019, 0x9004058f, - 0x050002b6, 0x900405ae, 0x050002b4, 0xb0040586, - 0x0500004d, 0xb0040585, 0x05000013, 0xb0040589, - 0x050002ae, 0x900405a9, 0x050202b0, 0x592e8a07, - 0x0001fac4, 0x050202a9, 0x59340200, 0x84000518, - 0x48026a00, 0x592e600a, 0x4933c857, 0x83300580, - 0xffffffff, 0x05020041, 0x0501f2a0, 0x850e1d04, - 0x0501f29e, 0x592c1408, 0x480bc857, 0x0515feaf, - 0x411e6000, 0x05020003, 0x4803c856, 0x0501f29b, - 0x59300c07, 0x90040584, 0x05000003, 0x4803c856, - 0x0501f296, 0x592c0208, 0x8c000506, 0x0500000b, - 0x0505fb83, 0x4df00000, 0x0505fa95, 0x0201f800, - 0x0010b998, 0x80c40040, 0x5c03e000, 0x05040b68, - 0x050df81d, 0x0501f285, 0x592e380a, 0x591c1416, - 0x8c080516, 0x05000285, 0x59300009, 0x800001c0, - 0x05de0c26, 0x84081554, 0x480a3c16, 0x64ea6403, - 0x592c040c, 0x80000540, 0x05000006, 0x64ee6403, - 0x592c020d, 0x4802641c, 0x592c040d, 0x4802621c, - 0x64066203, 0x42000800, 0x80000040, 0x0501fa7a, - 0x05000003, 0x492e6009, 0x0005f07c, 0x0005f87c, - 0x0501f26a, 0x59a80082, 0x84000510, 0x48035082, - 0x0501f266, 0x592c1208, 0x8c080500, 0x05020263, - 0x592e8a07, 0x592e600a, 0x0515fe7d, 0x05020003, - 0x4803c856, 0x0501f261, 0x59300c07, 0x90040584, - 0x05000003, 0x4803c856, 0x0501f25c, 0x59300a03, - 0x90040587, 0x05000003, 0x4803c856, 0x0501f257, - 0x59300c03, 0x90040581, 0x05000016, 0x90040582, - 0x0500000e, 0x90040588, 0x05000010, 0x9004058a, - 0x05000005, 0x9004058c, 0x05020014, 0x60240800, - 0x0501f011, 0x5932680a, 0x05f9fe57, 0x0502000f, - 0x60140800, 0x0501f00c, 0x417a7800, 0x0201f800, - 0x0010b652, 0x64066407, 0x600c0800, 0x0501f006, - 0x417a7800, 0x0201f800, 0x0010b652, 0x64066407, - 0x602c0800, 0x05f9fb01, 0x64066203, 0x0501fa3e, - 0x05000003, 0x492e6009, 0x0505f22a, 0x0505fa29, - 0x0501f22e, 0x59300416, 0x8c000518, 0x051e06a2, + 0x0501f02f, 0x64200801, 0x1c01f000, 0x40100000, + 0x0c01f001, 0x00104421, 0x00104423, 0x00104425, + 0x00104425, 0x00104426, 0x00104428, 0x00104428, + 0x00104428, 0x64080801, 0x1c01f000, 0x640c0801, + 0x1c01f000, 0x1c01f000, 0x64100801, 0x0501f01c, + 0x64200801, 0x1c01f000, 0x40100000, 0x0c01f001, + 0x00104434, 0x00104434, 0x00104436, 0x00104437, + 0x00104439, 0x00104436, 0x0010443b, 0x00104436, + 0x64140801, 0x0501f00b, 0x1c01f000, 0x641c0801, + 0x1c01f000, 0x64100801, 0x1c01f000, 0x64200801, + 0x1c01f000, 0x64240801, 0x1c01f000, 0x1c01f000, + 0x42000000, 0x001097b8, 0x0521f51d, 0x42000000, + 0x001097b5, 0x0521f51a, 0x42000000, 0x001097b7, + 0x0521f517, 0x42000000, 0x001097b6, 0x0521f514, + 0x42000800, 0x0010948c, 0x58040001, 0x48000800, + 0x64140801, 0x64200802, 0x1c01f000, 0x42000800, + 0x0010948c, 0x58040001, 0x48000800, 0x64040801, + 0x64280802, 0x1c01f000, 0x42000800, 0x0010948c, + 0x58040001, 0x48000800, 0x64180801, 0x64240802, + 0x1c01f000, 0x42000800, 0x0010948c, 0x64280801, + 0x64280800, 0x1c01f000, 0x496fc857, 0x4813c857, + 0x40100000, 0x0c01f001, 0x00104480, 0x00104480, + 0x00104480, 0x00104480, 0x00104472, 0x0010447a, + 0x0010447e, 0x00104480, 0x59a8021b, 0x8c000506, + 0x05000003, 0x8c000502, 0x0500000a, 0x0501f80a, + 0x05fe07cb, 0x0501f007, 0x0501f807, 0x05000005, + 0x05fdffca, 0x05fdf7cc, 0x0501f803, 0x05fe07ca, + 0x1c01f000, 0x496fc857, 0x416c0000, 0x90000c88, + 0x05de1d62, 0x0c01f001, 0x0010448e, 0x00104490, + 0x00104490, 0x00104490, 0x0010448e, 0x0010448e, + 0x0010448e, 0x00104490, 0x80000580, 0x1c01f000, + 0x90000541, 0x1c01f000, 0x6002e000, 0x497b3004, + 0x4a03b004, 0x60000001, 0x59d80005, 0x4a03b004, + 0x90000001, 0x4a03a804, 0x60000001, 0x59d40005, + 0x4a03a804, 0x90000001, 0x0501f3d6, 0x6413c825, + 0x6413c827, 0x599c0409, 0x80000d40, 0x0500001f, + 0x599c0407, 0x80000540, 0x05000007, 0x800000cc, + 0x599c100b, 0x80080400, 0x4803b000, 0x497bb002, + 0x59d80001, 0x599c000b, 0x4803b000, 0x599c000c, + 0x4803b001, 0x599c0407, 0x80000540, 0x05020002, + 0x497bb002, 0x599c0c09, 0x82040540, 0x00400000, + 0x4803b003, 0x6417b009, 0x4a03b004, 0x10000001, + 0x59e00803, 0x82040d00, 0xfffffeff, 0x82040d40, + 0x00008000, 0x4807c003, 0x599c040a, 0x80000540, + 0x0500001f, 0x599c0408, 0x80000540, 0x05000007, + 0x800000cc, 0x599c100f, 0x80080400, 0x4803a800, + 0x497ba802, 0x59d40001, 0x599c000f, 0x4803a800, + 0x599c0010, 0x4803a801, 0x599c0408, 0x80000540, + 0x05020002, 0x497ba802, 0x599c0c0a, 0x82040540, + 0x00400000, 0x4803a803, 0x6417a809, 0x4a03a804, + 0x10000001, 0x59e00803, 0x82040d00, 0xfffffbff, + 0x82040d40, 0x00008000, 0x4807c003, 0x800409c0, + 0x05000004, 0x6006e000, 0x0000be96, 0x0000f6a9, + 0x1c01f000, 0x05ddfcfd, 0x1c01f000, 0x0501f850, + 0x5c03e000, 0x0001f622, 0x0001fe4a, 0x05fdf7fd, + 0x0010453b, 0x0010453b, 0x0010453b, 0x0010453b, + 0x00104547, 0x0010453b, 0x0010453b, 0x0010453b, + 0x0010453b, 0x0010453b, 0x00020641, 0x0010453b, + 0x0010453b, 0x00104547, 0x00104547, 0x0010453b, + 0x0010453b, 0x0010453b, 0x0010453b, 0x0010453b, + 0x0010453b, 0x0010453b, 0x0010453b, 0x0010453b, + 0x0010453b, 0x0010453b, 0x0010453b, 0x0010453b, + 0x0010453b, 0x0010453b, 0x0010453b, 0x0010453b, + 0x0010453b, 0x0010453b, 0x0010453b, 0x0010453b, + 0x0010453b, 0x0010453b, 0x0010453b, 0x0010453b, + 0x0010453b, 0x0010453b, 0x0010453b, 0x0010453b, + 0x0010453b, 0x0010453b, 0x0010453b, 0x0010453b, + 0x0010453b, 0x0010453b, 0x0010453b, 0x0010453b, + 0x0010453b, 0x0010453b, 0x0010453b, 0x0010453b, + 0x0010453b, 0x0010453b, 0x0010453b, 0x0010453b, + 0x0010453b, 0x0010453b, 0x0010453b, 0x0010453b, + 0x0010453b, 0x0010453b, 0x0010453b, 0x0010453b, + 0x0010453b, 0x0010453b, 0x0010453b, 0x0010453b, + 0x0010453b, 0x0010453b, 0x0010453b, 0x492fc857, + 0x42000000, 0x00109873, 0x0521fc21, 0x60000008, + 0x0501f013, 0x492fc857, 0x42000000, 0x00109872, + 0x0521fc1b, 0x60000020, 0x0501f00d, 0x492fc857, + 0x42000000, 0x00109871, 0x0521fc15, 0x60000040, + 0x0501f007, 0x492fc857, 0x42000000, 0x00109874, + 0x0521fc0f, 0x60000010, 0x0501f001, 0x4803c857, + 0x592c0c05, 0x82040d00, 0xffff80ff, 0x80040540, + 0x59980803, 0x800409c0, 0x05000002, 0x8400051e, + 0x48025c05, 0x0001fb2c, 0x91700583, 0x6006e000, + 0x05000002, 0x1c01f000, 0x599a5801, 0x812e59c0, + 0x05fe07e3, 0x05ddfc81, 0x492fc857, 0x80140110, + 0x05fc07d9, 0x80000040, 0x05000020, 0x4a033006, + 0x0010458a, 0x0001f62b, 0x492fc857, 0x0521fcff, + 0x00020636, 0x492fc856, 0x83440400, 0x00108c00, + 0x50000000, 0x80026d40, 0x05000005, 0x4937c857, + 0x59340200, 0x8c00050e, 0x00020636, 0x60a28000, + 0x41780800, 0x417a6000, 0x05fdf9f8, 0x0515fd48, + 0x0001f32c, 0x82000500, 0x0f000000, 0x8000012a, + 0x592c0c0b, 0x82040d00, 0x0000ff87, 0x80040540, + 0x48025c0b, 0x0001f63e, 0x492fc857, 0x592c0409, + 0x80000540, 0x05fe07c0, 0x8d0c050e, 0x05020008, + 0x592c0208, 0x80000540, 0x05fc07bb, 0x497a5a07, + 0x05f9f9db, 0x05020003, 0x1c01f000, 0x60a00000, + 0x48025a07, 0x0001f32c, 0x592e8a07, 0x592c0407, + 0x4947c857, 0x4803c857, 0x82000500, 0x000000ff, + 0x6004b800, 0x90000d81, 0x0500000e, 0x417a8800, + 0x61c0b80f, 0x90000d82, 0x0500000a, 0x80000540, + 0x0002032c, 0x592e8a07, 0x0001fac4, 0x0002032c, + 0x592e9009, 0x592e980a, 0x05f9fcff, 0x0001f32c, + 0x850e1d00, 0x0001fac4, 0x05f80dda, 0x81468800, + 0x805cb840, 0x05fe07fc, 0x0001f32c, 0x592c0a09, + 0x4807c857, 0x9004058e, 0x05000056, 0x900405aa, + 0x0500001e, 0x9004058f, 0x050002c9, 0x900405ae, + 0x050002c7, 0xb0040586, 0x05000052, 0xb0040585, + 0x05000018, 0xb0040589, 0x050002c1, 0x900405a9, + 0x050202c3, 0x592e8a07, 0x42026800, 0x0010993e, + 0x83440580, 0x0000ffff, 0x05000006, 0x0001fac4, + 0x050202b7, 0x59340200, 0x84000518, 0x48026a00, + 0x592e600a, 0x4933c857, 0x83300580, 0xffffffff, + 0x05020041, 0x0501f2ae, 0x850e1d04, 0x0501f2ac, + 0x592c1408, 0x480bc857, 0x0515ff0a, 0x411e6000, + 0x05020003, 0x4803c856, 0x0501f2a9, 0x59300c07, + 0x90040584, 0x05000003, 0x4803c856, 0x0501f2a4, + 0x592c0208, 0x8c000506, 0x0500000b, 0x0505fbd4, + 0x4df00000, 0x0505fae6, 0x0201f800, 0x0010b9a8, + 0x80c40040, 0x5c03e000, 0x05040bb9, 0x050df85a, + 0x0501f293, 0x592e380a, 0x591c1416, 0x8c080516, + 0x05000293, 0x59300009, 0x800001c0, 0x05de0beb, + 0x84081554, 0x480a3c16, 0x64ea6403, 0x592c040c, + 0x80000540, 0x05000006, 0x64ee6403, 0x592c020d, + 0x4802641c, 0x592c040d, 0x4802621c, 0x64066203, + 0x42000800, 0x80000040, 0x0501fa88, 0x05000003, + 0x492e6009, 0x0005f07c, 0x0005f87c, 0x0501f278, + 0x59a80082, 0x84000510, 0x48035082, 0x0501f274, + 0x592c1208, 0x8c080500, 0x05020271, 0x592e8a07, + 0x592e600a, 0x0515fed8, 0x05020003, 0x4803c856, + 0x0501f26f, 0x59300c07, 0x90040584, 0x05000003, + 0x4803c856, 0x0501f26a, 0x59300a03, 0x90040587, + 0x05000003, 0x4803c856, 0x0501f265, 0x59300c03, + 0x90040581, 0x05000016, 0x90040582, 0x0500000e, + 0x90040588, 0x05000010, 0x9004058a, 0x05000005, + 0x9004058c, 0x0502001d, 0x60240800, 0x0501f01a, + 0x5932680a, 0x05f9fe31, 0x05020018, 0x60140800, + 0x0501f015, 0x417a7800, 0x0201f800, 0x0010b660, + 0x64066407, 0x600c0800, 0x0501f00f, 0x83340580, + 0x0010993e, 0x05020007, 0x5930000a, 0x82000580, + 0x0010993e, 0x05020246, 0x64066407, 0x0501f007, + 0x417a7800, 0x0201f800, 0x0010b660, 0x64066407, + 0x602c0800, 0x05f9fac9, 0x64066203, 0x0501fa43, + 0x05000003, 0x492e6009, 0x0505f272, 0x0505fa71, + 0x0501f233, 0x59300416, 0x8c000518, 0x051e0716, 0x0501f088, 0x40000800, 0x58040000, 0x80000540, 0x05fe07fd, 0x492c0800, 0x1c01f000, 0x492fc857, 0x59300c07, 0x90040586, 0x0502007b, 0x59340400, @@ -4526,7 +4543,7 @@ static const uint32_t isp_2500_risc_code[] = { 0x8c00051a, 0x00000682, 0x59340200, 0x8c00050e, 0x05000071, 0x59300203, 0x60067800, 0x90000587, 0x00020682, 0x640a6203, 0x0001f682, 0x600a8000, - 0x64526006, 0x4d2c0000, 0x051dfb2f, 0x5c025800, + 0x64526006, 0x4d2c0000, 0x051dfb9c, 0x5c025800, 0x59300c07, 0x4807c857, 0x90040587, 0x05020050, 0x492fc857, 0x64065a07, 0x0001f32c, 0x83300580, 0xffffffff, 0x0502004a, 0x592c240b, 0x492fc857, @@ -4536,7 +4553,7 @@ static const uint32_t isp_2500_risc_code[] = { 0x0005f8ca, 0x05000059, 0x592c240b, 0x592c020d, 0x48026202, 0x4936600a, 0x4932580a, 0x641a6407, 0x641e6203, 0x0001f67d, 0x592c0a0d, 0x4c040000, - 0x05fdf885, 0x5c000800, 0x05020060, 0x58080000, + 0x05fdf859, 0x5c000800, 0x05020060, 0x58080000, 0x49781000, 0x802041c0, 0x05000006, 0x48004000, 0x80000540, 0x05020007, 0x48226810, 0x0501f005, 0x4802680f, 0x80000540, 0x05020002, 0x497a6810, @@ -4544,12 +4561,12 @@ static const uint32_t isp_2500_risc_code[] = { 0x5c025800, 0x05fdf7cb, 0x8c10051c, 0x05000015, 0x592c0207, 0x82000580, 0x0000ffff, 0x05020011, 0x592e600a, 0x83300580, 0xffffffff, 0x05fc07c1, - 0x0519f9e2, 0x0502000e, 0x592c220d, 0x59300202, + 0x0519fa34, 0x0502000e, 0x592c220d, 0x59300202, 0x80100580, 0x0502000a, 0x59300009, 0x800001c0, 0x05020004, 0x59300203, 0x90000587, 0x05fc07ac, 0x492fc857, 0x64a65a07, 0x0001f32c, 0x492fc857, 0x64225a07, 0x0001f32c, 0x4803c857, 0x8c000514, - 0x05000007, 0x42000000, 0x001097e2, 0x0521fa06, + 0x05000007, 0x42000000, 0x00109862, 0x0521fa8c, 0x492fc857, 0x492e6009, 0x1c01f000, 0x492fc857, 0x65165a07, 0x0001f32c, 0x492fc857, 0x64aa5a07, 0x0001f32c, 0x492fc857, 0x64a25a07, 0x0001f32c, @@ -4561,217 +4578,209 @@ static const uint32_t isp_2500_risc_code[] = { 0x492c0800, 0x1c01f000, 0x59340203, 0x492e680f, 0x492fc857, 0x4803c857, 0x80000540, 0x05020002, 0x64066a03, 0x1c01f000, 0x59a8000d, 0x81640480, - 0x05fe177c, 0x42026000, 0x0010cca4, 0x5930000a, - 0x81340580, 0x05020004, 0x59300202, 0x80040580, - 0x05fc076b, 0x91326424, 0x41580000, 0x81300480, - 0x05fc17f7, 0x05fdf76f, 0x492fc857, 0x592c0205, - 0x80000112, 0x05fe063e, 0x592e8a07, 0x0001fac4, - 0x0502004a, 0x05f9fd66, 0x0502004a, 0x592e780b, - 0x493fc857, 0x8d3c053e, 0x05020005, 0x8d0c050e, - 0x05020042, 0x05f9fcaa, 0x05fc063d, 0x913c1d1f, - 0x05fc063b, 0x592c0208, 0x82000c80, 0x00001000, - 0x05fe1637, 0x800000c2, 0x800008c4, 0x8005d400, - 0x592e9009, 0x592e980a, 0x5934080d, 0x800409c0, - 0x05000004, 0x58041802, 0x800c19c0, 0x0502002b, - 0x913c1d1f, 0x81780040, 0x80000000, 0x800c1902, - 0x05fe17fe, 0x05fe0626, 0x0c01f001, 0x001046f8, - 0x001046fa, 0x00104703, 0x00104705, 0x00104707, - 0x0515f9fb, 0x0501f019, 0x05f9fc63, 0x0500001d, - 0x80e9d1c0, 0x05020e9f, 0x60168000, 0x417a9000, - 0x417a9800, 0x0515f9fe, 0x0501f010, 0x61367000, - 0x0501f004, 0x613a7000, 0x0501f002, 0x614a7000, - 0x5934080d, 0x800409c0, 0x05000006, 0x4d3c0000, - 0x40067800, 0x05f9fc34, 0x5c027800, 0x05000007, - 0x05f9fb4b, 0x05160a1a, 0x05000006, 0x8d3c053e, - 0x0502000a, 0x1c01f000, 0x64c25a07, 0x0501f009, - 0x64b25a07, 0x0501f007, 0x64a25a07, 0x0501f005, - 0x64a65a07, 0x0501f003, 0x497a580a, 0x64025a07, - 0x4a025a05, 0x00000103, 0x0001f32c, 0x492fc857, - 0x80140110, 0x80000040, 0x05000002, 0x05fdf5e4, - 0x592c0208, 0x82000500, 0x000003ff, 0x48025a08, - 0x8c000506, 0x05000003, 0xb0000530, 0x05020003, - 0x8d0c050e, 0x05020014, 0x4a025a07, 0x0000dead, - 0x592c0409, 0x82000500, 0x0000f0ff, 0x48025c09, - 0x05f9f84f, 0x05020002, 0x1c01f000, 0x49425a07, - 0x8058b1c0, 0x05000007, 0x0515fe20, 0x0501f80a, - 0x44042800, 0x90580582, 0x05020002, 0x48082801, - 0x0001f32c, 0x60c68000, 0x60040800, 0x6004b000, - 0x05fdf7f3, 0x592c0409, 0x80000118, 0x912c2c0a, - 0x80142c00, 0x1c01f000, 0x492fc857, 0x641a5a09, - 0x0001f32c, 0x492fc857, 0x64065a09, 0x0001f32c, - 0x492fc857, 0x592e7c07, 0x833c0500, 0xfffffffe, - 0x05020039, 0x592c4008, 0x42026000, 0x0010cca4, - 0x41581800, 0x400c0000, 0x81300480, 0x0502101d, - 0x59300203, 0x90000580, 0x05000007, 0x59300009, - 0x80000d40, 0x05000004, 0x58040006, 0x80200580, - 0x05000003, 0x91326424, 0x05fdf7f3, 0x58040205, - 0x82000500, 0x000000ff, 0xb0000d93, 0x05000007, - 0xb0000d88, 0x05000005, 0x90000d98, 0x05000003, - 0x90000da9, 0x05fe07f4, 0x4d2c0000, 0x0511fe39, - 0x5c025800, 0x05000018, 0x64025a07, 0x0001f32c, - 0x592e8a07, 0x83440480, 0x000007f0, 0x05021012, - 0x83440400, 0x00108b80, 0x50000000, 0x80026d40, - 0x0500000d, 0x4d2c0000, 0x05f9fb97, 0x05000009, - 0x60168000, 0x592c0a09, 0x417a6000, 0x05f9ffb5, - 0x0515faaa, 0x0001fb2c, 0x5c025800, 0x05fdf7eb, - 0x5c025800, 0x64c65a07, 0x0001f32c, 0x492fc857, - 0x4d2c0000, 0x05ddfdd3, 0x05000011, 0x492fc857, - 0x412f4000, 0x05ddfdcf, 0x0500000b, 0x492fc857, - 0x412dd800, 0x05f1fee6, 0x05f1feee, 0x49a1d80a, - 0x5c025800, 0x492dd809, 0x48ef4006, 0x05e9fb82, - 0x05e9f399, 0x41a25800, 0x05ddfdd2, 0x5c025800, - 0x4a025a07, 0x00004005, 0x640a5c07, 0x0001f32c, - 0x4807c857, 0x485fc857, 0x6004b800, 0x5c000800, - 0x4c5c0000, 0x0501f005, 0x4807c857, 0x485fc857, - 0x5c000800, 0x4d780000, 0x4803c857, 0x492fc857, - 0x8c00050e, 0x05de0a23, 0x4203e000, 0x50000000, - 0x600cb900, 0x05ddf22d, 0x80140110, 0x80000040, - 0x05fe054b, 0x599c0019, 0x8c000510, 0x0502000b, - 0x05f9fcc9, 0x05020002, 0x1c01f000, 0x49425a07, - 0x4806580e, 0x480a580f, 0x4943c857, 0x4807c857, - 0x480bc857, 0x0001f32c, 0x592c040c, 0x82000500, - 0x0000e000, 0x82000580, 0x00006000, 0x05fc07f1, - 0x59a8021b, 0x8c000508, 0x05fc07ee, 0x592c120c, - 0x592c080b, 0x82040500, 0xff000000, 0x80040d80, - 0x80000110, 0x80081540, 0x05000004, 0x4806580b, - 0x0501f86c, 0x05fdf7e3, 0x60701000, 0x60640800, - 0x60c68000, 0x05fdf7e2, 0x80140110, 0x80000040, - 0x05fe0523, 0x05f9fdcd, 0x05020002, 0x1c01f000, - 0x49425a07, 0x48065812, 0x480a5813, 0x0001f32c, - 0x80140110, 0x05fc051a, 0x80000040, 0x0502000a, - 0x6006e000, 0x592c020b, 0x8c000504, 0x00000630, - 0x592c0208, 0x82000c80, 0x00001001, 0x05fe151c, - 0x0501f004, 0x4a033006, 0x00020630, 0x0001f62b, - 0x592c1014, 0x82080500, 0xffff0003, 0x05fe0514, - 0x600ae000, 0x42000000, 0x00109969, 0x50007000, - 0x592c0012, 0x592c0813, 0x48007006, 0x48047007, - 0x492c700a, 0x4978700d, 0x4978700b, 0x0501f001, - 0x4978700c, 0x82080480, 0x00000180, 0x4803c857, - 0x05001006, 0x4800700e, 0x4a007005, 0x00000180, - 0x65807004, 0x0501f005, 0x4978700e, 0x48087005, - 0x80081104, 0x48087004, 0x58380009, 0x48007003, - 0x40381000, 0x0001f01c, 0x4df00000, 0x4203e000, - 0x50000000, 0x05ddfd30, 0x05000003, 0x59980005, - 0x0801f800, 0x5c03e000, 0x1c01f000, 0x05ddfd2a, - 0x05dc09ba, 0x4a025809, 0x00109908, 0x42000800, - 0x00109969, 0x452c0800, 0x497a580a, 0x497a580b, - 0x497a580c, 0x497a580d, 0x497a580e, 0x4a025808, - 0x000206bc, 0x497a580f, 0x4a025802, 0x00000100, - 0x64065801, 0x1c01f000, 0x0501f808, 0x05fc0712, - 0x64065a09, 0x051df612, 0x0501f804, 0x05fc070b, - 0x641a5a09, 0x051df60e, 0x59a80005, 0x8c00051a, - 0x1c01f000, 0x59a80005, 0x8c00051c, 0x1c01f000, - 0x59a8000f, 0x80080580, 0x05020002, 0x1c01f000, - 0x480bc857, 0x480b500f, 0x497b8830, 0x82080d40, - 0x01000000, 0x48078832, 0x59c40002, 0x8400054c, - 0x48038802, 0x600c0800, 0x0505f108, 0x59c80007, - 0x8c000502, 0x0500006c, 0x915c2c85, 0x050014be, - 0x59c82817, 0x48175085, 0x497b9005, 0x82140500, - 0x00e00000, 0x05020050, 0x82140500, 0x000003ff, - 0x90001c06, 0x41cc2000, 0x600030c1, 0xb00c0480, - 0x05001004, 0x61001000, 0xb00c1c80, 0x0501f003, - 0x400c1000, 0x41781800, 0x54182000, 0x80102000, - 0x80183000, 0x80081040, 0x05fe07fc, 0x800c19c0, - 0x05000005, 0x59c80005, 0x80000000, 0x48039005, - 0x05fdf7ee, 0x82140500, 0x000003ff, 0x800018c4, - 0x8c140514, 0x05000004, 0x59cc0002, 0x90000503, - 0x800c1c80, 0x480f5073, 0x82140500, 0x01f60000, - 0x05020027, 0x82140500, 0x0000f000, 0x0500000b, - 0x82000c80, 0x00002000, 0x0502100f, 0x4a039005, - 0x00000140, 0x82140500, 0x0e000000, 0x80000132, - 0x0c01f837, 0x1c01f000, 0x59cc0400, 0x82000500, - 0x0000ff00, 0x82000580, 0x00008100, 0x05fc07f4, - 0x0501f019, 0x4817c857, 0x82140500, 0x000003ff, - 0x05020007, 0x59cc0400, 0x82000500, 0x0000ff00, - 0x82000580, 0x00008100, 0x0502000f, 0x42000000, - 0x00109852, 0x051dffec, 0x0501fbb6, 0x4803c856, - 0x4a039005, 0x00000140, 0x0501f01b, 0x4817c857, - 0x82140500, 0x00f60000, 0x05020003, 0x0501fbdf, - 0x05fe07d5, 0x05fdf829, 0x0500000e, 0x59c400a4, - 0x4803c857, 0x9000050f, 0x9000058a, 0x05020009, - 0x497b5073, 0x59c400a3, 0x82000540, 0x00080000, - 0x480388a3, 0x82000500, 0xfff7ffff, 0x480388a3, - 0x4817c856, 0x051dff15, 0x4a039005, 0x00000140, - 0x0501f036, 0x4803c856, 0x1c01f000, 0x001048d8, - 0x00104b52, 0x001048d3, 0x001048d3, 0x001048d3, - 0x001048d3, 0x001048d3, 0x001048d3, 0x4803c857, - 0x42000000, 0x001097ef, 0x051dffbf, 0x1c01f000, - 0x8d0c052a, 0x05000004, 0x4c140000, 0x05ddfa05, - 0x5c002800, 0x59cc0400, 0x82000d00, 0x0000ff00, - 0x82041500, 0x0000f000, 0x840409c0, 0x82080580, - 0x00002000, 0x0502000f, 0x916c0581, 0x0502000b, - 0x59cc0006, 0x82000500, 0xff000000, 0x82000580, - 0x11000000, 0x05de09b7, 0x0502000f, 0x05f1ffa5, - 0x0501fc52, 0x0501f00c, 0x0501f81b, 0x0501f00a, - 0x82080580, 0x00003000, 0x05020003, 0x0501fa04, - 0x0501f005, 0x82080580, 0x00008000, 0x05020002, - 0x0501fab1, 0x1c01f000, 0x4817c857, 0x42000000, - 0x001097ee, 0x051dff94, 0x916c0583, 0x05020009, - 0x4c080000, 0x4c0c0000, 0x61201100, 0x40141800, - 0x80142120, 0x05f1fcaf, 0x5c001800, 0x5c001000, - 0x1c01f000, 0x59cc0002, 0x82000500, 0xff000000, - 0x82001580, 0x01000000, 0x05000005, 0x82001580, - 0x23000000, 0x05de098f, 0x0502019b, 0x59a80073, - 0x90000484, 0x05001198, 0x900405a3, 0x05020042, - 0x59cc0004, 0x4803c857, 0x59cc0006, 0x82000500, - 0xff000000, 0x59cc0801, 0x82040d00, 0x00ffffff, - 0x80040540, 0x4803c857, 0x0501fb0f, 0x05dc097d, - 0x05000189, 0x59300c07, 0x90040590, 0x0500000a, - 0x90040591, 0x05000008, 0x90040581, 0x05000006, - 0x90040584, 0x05000004, 0x90040588, 0x05de0971, - 0x0502017d, 0x59300004, 0x82000500, 0x80010000, - 0x05000004, 0x0505fb40, 0x05de096a, 0x05020176, - 0x59cc0a04, 0x48066202, 0x59cc0006, 0x82000500, - 0xffff0000, 0x82000d80, 0x02000000, 0x05020003, - 0x60567000, 0x0005f105, 0x82000d80, 0x02140000, - 0x05fc07fc, 0x82000d80, 0x02100000, 0x05fc07f9, - 0x82000d80, 0x02100000, 0x05fc07f6, 0x82000d80, - 0x01000000, 0x05de0953, 0x0502015f, 0x59cc0006, - 0x82000500, 0x0000ffff, 0x05de094e, 0x0502015a, - 0x59a80073, 0x90000488, 0x05001157, 0x605a7000, - 0x05fdf7e9, 0x900405a2, 0x05de0946, 0x05020152, - 0x59cc0004, 0x4803c857, 0x59cc0006, 0x4803c857, - 0x59cc0001, 0x4803c857, 0x59a80073, 0x800001c0, - 0x05dc093c, 0x05000148, 0x59a80805, 0x8c040514, - 0x05000027, 0x0501f95a, 0x05020025, 0x0501f972, - 0x05000023, 0x61327000, 0x59cc0001, 0x82000500, - 0x00ffffff, 0x0501fb7c, 0x05000003, 0x61fe89ff, - 0x417a6800, 0x599c0019, 0x8c000510, 0x05000126, - 0x59a8021b, 0x8c000508, 0x05000123, 0x59cc1006, + 0x05fe177c, 0x42026000, 0x0010ccb4, 0x59300407, + 0x90000586, 0x05020007, 0x5930000a, 0x81340580, + 0x05020004, 0x59300202, 0x80040580, 0x05fc0768, + 0x91326424, 0x41580000, 0x81300480, 0x05fc17f4, + 0x05fdf76c, 0x492fc857, 0x592c0205, 0x80000112, + 0x05fe062d, 0x592e8a07, 0x0001fac4, 0x0502004a, + 0x05f9fd34, 0x0502004a, 0x592e780b, 0x493fc857, + 0x8d3c053e, 0x05020005, 0x8d0c050e, 0x05020042, + 0x05f9fc76, 0x05fc062c, 0x913c1d1f, 0x05fc062a, + 0x592c0208, 0x82000c80, 0x00001000, 0x05fe1626, + 0x800000c2, 0x800008c4, 0x8005d400, 0x592e9009, + 0x592e980a, 0x5934080d, 0x800409c0, 0x05000004, + 0x58041802, 0x800c19c0, 0x0502002b, 0x913c1d1f, + 0x81780040, 0x80000000, 0x800c1902, 0x05fe17fe, + 0x05fe0615, 0x0c01f001, 0x0010473f, 0x00104741, + 0x0010474a, 0x0010474c, 0x0010474e, 0x0515fa4a, + 0x0501f019, 0x05f9fc2f, 0x0500001d, 0x80e9d1c0, + 0x05020ee4, 0x60168000, 0x417a9000, 0x417a9800, + 0x0515fa4d, 0x0501f010, 0x61367000, 0x0501f004, + 0x613a7000, 0x0501f002, 0x614a7000, 0x5934080d, + 0x800409c0, 0x05000006, 0x4d3c0000, 0x40067800, + 0x05f9fc00, 0x5c027800, 0x05000007, 0x05f9fb17, + 0x05160a69, 0x05000006, 0x8d3c053e, 0x0502000a, + 0x1c01f000, 0x64c25a07, 0x0501f009, 0x64b25a07, + 0x0501f007, 0x64a25a07, 0x0501f005, 0x64a65a07, + 0x0501f003, 0x497a580a, 0x64025a07, 0x4a025a05, + 0x00000103, 0x0001f32c, 0x492fc857, 0x80140110, + 0x80000040, 0x05000002, 0x05fdf5d3, 0x592c0208, + 0x82000500, 0x000003ff, 0x48025a08, 0x8c000506, + 0x05000003, 0xb0000530, 0x05020003, 0x8d0c050e, + 0x05020014, 0x4a025a07, 0x0000dead, 0x592c0409, + 0x82000500, 0x0000f0ff, 0x48025c09, 0x05f9f814, + 0x05020002, 0x1c01f000, 0x49425a07, 0x8058b1c0, + 0x05000007, 0x0515fe6f, 0x0501f80a, 0x44042800, + 0x90580582, 0x05020002, 0x48082801, 0x0001f32c, + 0x60c68000, 0x60040800, 0x6004b000, 0x05fdf7f3, + 0x592c0409, 0x80000118, 0x912c2c0a, 0x80142c00, + 0x1c01f000, 0x492fc857, 0x641a5a09, 0x0001f32c, + 0x492fc857, 0x64065a09, 0x0001f32c, 0x492fc857, + 0x592e7c07, 0x833c0500, 0xfffffffe, 0x0502003b, + 0x592c4008, 0x42026000, 0x0010ccb4, 0x41581800, + 0x400c0000, 0x81300480, 0x0502101f, 0x59300203, + 0x90000580, 0x05000007, 0x59300009, 0x80000d40, + 0x05000004, 0x58040006, 0x80200580, 0x05000003, + 0x91326424, 0x05fdf7f3, 0x58040205, 0x82000500, + 0x000000ff, 0xb0000d93, 0x05000009, 0xb0000d88, + 0x05000007, 0x90000d98, 0x05000005, 0x90000da9, + 0x05000003, 0x90000d94, 0x05fe07f2, 0x4d2c0000, + 0x0511fe83, 0x5c025800, 0x05000018, 0x64025a07, + 0x0001f32c, 0x592e8a07, 0x83440480, 0x000007f0, + 0x05021012, 0x83440400, 0x00108c00, 0x50000000, + 0x80026d40, 0x0500000d, 0x4d2c0000, 0x05f9fb61, + 0x05000009, 0x60168000, 0x592c0a09, 0x417a6000, + 0x05f9ffa2, 0x0515faf7, 0x0001fb2c, 0x5c025800, + 0x05fdf7eb, 0x5c025800, 0x64c65a07, 0x0001f32c, + 0x492fc857, 0x4d2c0000, 0x05ddfd8a, 0x05000011, + 0x492fc857, 0x412f4000, 0x05ddfd86, 0x0500000b, + 0x492fc857, 0x412dd800, 0x05f1fea1, 0x05f1fea9, + 0x49a1d80a, 0x5c025800, 0x492dd809, 0x48ef4006, + 0x05e9fb3b, 0x05e9f352, 0x41a25800, 0x05ddfd89, + 0x5c025800, 0x4a025a07, 0x00004005, 0x640a5c07, + 0x0001f32c, 0x4807c857, 0x485fc857, 0x6004b800, + 0x5c000800, 0x4c5c0000, 0x0501f005, 0x4807c857, + 0x485fc857, 0x5c000800, 0x4d780000, 0x4803c857, + 0x492fc857, 0x8c00050e, 0x05de09da, 0x4203e000, + 0x50000000, 0x600cb900, 0x05ddf1e4, 0x80140110, + 0x80000040, 0x05fe0538, 0x599c0019, 0x8c000510, + 0x0502000b, 0x05f9fc95, 0x05020002, 0x1c01f000, + 0x49425a07, 0x4806580e, 0x480a580f, 0x4943c857, + 0x4807c857, 0x480bc857, 0x0001f32c, 0x592c040c, + 0x82000500, 0x0000e000, 0x82000580, 0x00006000, + 0x05fc07f1, 0x59a8021b, 0x8c000508, 0x05fc07ee, + 0x592c120c, 0x592c080b, 0x82040500, 0xff000000, + 0x80040d80, 0x80000110, 0x80081540, 0x05000004, + 0x4806580b, 0x0501f86c, 0x05fdf7e3, 0x60701000, + 0x60640800, 0x60c68000, 0x05fdf7e2, 0x80140110, + 0x80000040, 0x05fe0510, 0x05f9fd9c, 0x05020002, + 0x1c01f000, 0x49425a07, 0x48065812, 0x480a5813, + 0x0001f32c, 0x80140110, 0x05fc0507, 0x80000040, + 0x0502000a, 0x6006e000, 0x592c020b, 0x8c000504, + 0x00000630, 0x592c0208, 0x82000c80, 0x00001001, + 0x05fe1509, 0x0501f004, 0x4a033006, 0x00020630, + 0x0001f62b, 0x592c1014, 0x82080500, 0xffff0003, + 0x05fe0501, 0x600ae000, 0x42000000, 0x001099e9, + 0x50007000, 0x592c0012, 0x592c0813, 0x48007006, + 0x48047007, 0x492c700a, 0x4978700d, 0x4978700b, + 0x0501f001, 0x4978700c, 0x82080480, 0x00000180, + 0x4803c857, 0x05001006, 0x4800700e, 0x4a007005, + 0x00000180, 0x65807004, 0x0501f005, 0x4978700e, + 0x48087005, 0x80081104, 0x48087004, 0x58380009, + 0x48007003, 0x40381000, 0x0001f01c, 0x4df00000, + 0x4203e000, 0x50000000, 0x05ddfce7, 0x05000003, + 0x59980005, 0x0801f800, 0x5c03e000, 0x1c01f000, + 0x05ddfce1, 0x05dc0971, 0x4a025809, 0x00109988, + 0x42000800, 0x001099e9, 0x452c0800, 0x497a580a, + 0x497a580b, 0x497a580c, 0x497a580d, 0x497a580e, + 0x4a025808, 0x000206bc, 0x497a580f, 0x4a025802, + 0x00000100, 0x64065801, 0x1c01f000, 0x0501f808, + 0x05fc0710, 0x64065a09, 0x051df693, 0x0501f804, + 0x05fc0709, 0x641a5a09, 0x051df68f, 0x59a80005, + 0x8c00051a, 0x1c01f000, 0x59a80005, 0x8c00051c, + 0x1c01f000, 0x59a8000f, 0x80080580, 0x05020002, + 0x1c01f000, 0x480bc857, 0x480b500f, 0x497b8830, + 0x82080d40, 0x01000000, 0x48078832, 0x59c40002, + 0x8400054c, 0x48038802, 0x600c0800, 0x0505f14b, + 0x59c80007, 0x8c000502, 0x05000044, 0x915c2c85, + 0x050014ce, 0x59c82817, 0x48175085, 0x497b9005, + 0x82140500, 0x00e00000, 0x05020038, 0x82140500, + 0x000003ff, 0x90001c06, 0x41cc2000, 0x600030c1, + 0xb00c0480, 0x05001004, 0x61001000, 0xb00c1c80, + 0x0501f003, 0x400c1000, 0x41781800, 0x54182000, + 0x80102000, 0x80183000, 0x80081040, 0x05fe07fc, + 0x800c19c0, 0x05000005, 0x59c80005, 0x80000000, + 0x48039005, 0x05fdf7ee, 0x82140500, 0x000003ff, + 0x800018c4, 0x8c140514, 0x05000004, 0x59cc0002, + 0x90000503, 0x800c1c80, 0x480f5073, 0x82140500, + 0x01f60000, 0x0502000f, 0x0501fca9, 0x05020008, + 0x4a039005, 0x00000140, 0x82140500, 0x0e000000, + 0x80000132, 0x0c01f813, 0x1c01f000, 0x800001c0, + 0x0502000a, 0x4a039005, 0x00000140, 0x0501f00b, + 0x4817c857, 0x82140500, 0x00f60000, 0x05020003, + 0x0501fc07, 0x05fe07ed, 0x0501fcb7, 0x4a039005, + 0x00000140, 0x0501f036, 0x4803c856, 0x1c01f000, + 0x001048f9, 0x00104bab, 0x001048f4, 0x001048f4, + 0x001048f4, 0x001048f4, 0x001048f4, 0x001048f4, + 0x4803c857, 0x42000000, 0x0010986f, 0x0521f868, + 0x1c01f000, 0x8d0c052a, 0x05000004, 0x4c140000, + 0x05ddf9e4, 0x5c002800, 0x59cc0400, 0x82000d00, + 0x0000ff00, 0x82041500, 0x0000f000, 0x840409c0, + 0x82080580, 0x00002000, 0x0502000f, 0x916c0581, + 0x0502000b, 0x59cc0006, 0x82000500, 0xff000000, + 0x82000580, 0x11000000, 0x05de0996, 0x0502000f, + 0x05f1ff90, 0x0501fcbd, 0x0501f00c, 0x0501f81b, + 0x0501f00a, 0x82080580, 0x00003000, 0x05020003, + 0x0501fa22, 0x0501f005, 0x82080580, 0x00008000, + 0x05020002, 0x0501fae9, 0x1c01f000, 0x4817c857, + 0x42000000, 0x0010986e, 0x0521f83d, 0x916c0583, + 0x05020009, 0x4c080000, 0x4c0c0000, 0x61201100, + 0x40141800, 0x80142120, 0x05f1fc92, 0x5c001800, + 0x5c001000, 0x1c01f000, 0x59cc0002, 0x82000500, + 0xff000000, 0x82001580, 0x01000000, 0x05000005, + 0x82001580, 0x23000000, 0x05de096e, 0x050201b2, + 0x59a80073, 0x90000484, 0x050011af, 0x900405a3, + 0x05020042, 0x59cc0004, 0x4803c857, 0x59cc0006, + 0x82000500, 0xff000000, 0x59cc0801, 0x82040d00, + 0x00ffffff, 0x80040540, 0x4803c857, 0x0501fb47, + 0x05dc095c, 0x050001a0, 0x59300c07, 0x90040590, + 0x0500000a, 0x90040591, 0x05000008, 0x90040581, + 0x05000006, 0x90040584, 0x05000004, 0x90040588, + 0x05de0950, 0x05020194, 0x59300004, 0x82000500, + 0x80010000, 0x05000004, 0x0505fbab, 0x05de0949, + 0x0502018d, 0x59cc0a04, 0x48066202, 0x59cc0006, + 0x82000500, 0xffff0000, 0x82000d80, 0x02000000, + 0x05020003, 0x60567000, 0x0005f105, 0x82000d80, + 0x02140000, 0x05fc07fc, 0x82000d80, 0x02100000, + 0x05fc07f9, 0x82000d80, 0x02100000, 0x05fc07f6, + 0x82000d80, 0x01000000, 0x05de0932, 0x05020176, + 0x59cc0006, 0x82000500, 0x0000ffff, 0x05de092d, + 0x05020171, 0x59a80073, 0x90000488, 0x0500116e, + 0x605a7000, 0x05fdf7e9, 0x900405a2, 0x05de0925, + 0x05020169, 0x59cc0004, 0x4803c857, 0x59cc0006, + 0x4803c857, 0x59cc0001, 0x4803c857, 0x59a80073, + 0x800001c0, 0x05dc091b, 0x0500015f, 0x59a80805, + 0x8c040514, 0x0500002a, 0x0501f978, 0x05020028, + 0x0501f990, 0x05000026, 0x61327000, 0x59cc0001, + 0x82000500, 0x00ffffff, 0x0501fbb4, 0x05000006, + 0x61fe89ff, 0x42026800, 0x0010993e, 0x05f9fd6b, + 0x481a6802, 0x599c0019, 0x8c000510, 0x05000139, + 0x59a8021b, 0x8c000508, 0x05000136, 0x59cc1006, 0x82081500, 0xffff0000, 0x82081580, 0x03000000, - 0x0502011d, 0x91641490, 0x05001130, 0x8400054c, + 0x05020130, 0x91641490, 0x05001144, 0x8400054c, 0x4803521b, 0x59cc1000, 0x82081500, 0x00ffffff, - 0x05fdfec0, 0x59cc0007, 0x82000500, 0x0000ffff, - 0x48038893, 0x48035012, 0x0501f10f, 0x59cc0006, + 0x05fdfee5, 0x59cc0007, 0x82000500, 0x0000ffff, + 0x48038893, 0x48035012, 0x0501f122, 0x59cc0006, 0x82000500, 0xffff0000, 0x82000d80, 0x03000000, 0x05020024, 0x59a8021b, 0x8c000508, 0x0500001c, 0x8400054c, 0x4803521b, 0x59cc0800, 0x82040d00, 0x00ffffff, 0x4807500f, 0x497b8830, 0x84040d70, 0x48078832, 0x59c40802, 0x84040d4c, 0x48078802, 0x59cc0007, 0x82000500, 0x0000ffff, 0x48038893, - 0x48035012, 0x600c0800, 0x59a8100f, 0x0501ffb3, - 0x59cc0006, 0x82000500, 0x0000ffff, 0x05de08f1, - 0x050200fd, 0x605e7000, 0x0501f0cf, 0x05f9ff27, - 0x05fe07f8, 0x8c000502, 0x05fe07f6, 0x0501f0f6, + 0x48035012, 0x600c0800, 0x59a8100f, 0x0505f81b, + 0x59cc0006, 0x82000500, 0x0000ffff, 0x05de08cd, + 0x05020111, 0x605e7000, 0x0501f0cf, 0x05f9ff39, + 0x05fe07f8, 0x8c000502, 0x05fe07f6, 0x0501f10a, 0x82000d80, 0x04000000, 0x05020013, 0x59cc0006, - 0x82000500, 0x0000ffff, 0x05de08e2, 0x050200ee, - 0x05f9ff1a, 0x05000003, 0x60767000, 0x0501f0be, - 0x497b507d, 0x42001000, 0x0010c15e, 0x0501fbb6, + 0x82000500, 0x0000ffff, 0x05de08be, 0x05020102, + 0x05f9ff2c, 0x05000002, 0x0501f0be, 0x497b507d, + 0x42001000, 0x0010c159, 0x0501fc1f, 0x05f9fd21, 0x59a8021b, 0x84000548, 0x4803521b, 0x60c27000, 0x0501f0b5, 0x82000d80, 0x05000000, 0x05020008, - 0x59cc0006, 0x82000500, 0x0000ffff, 0x05de08cd, - 0x050200d9, 0x60627000, 0x0501f0ab, 0x82000d80, + 0x59cc0006, 0x82000500, 0x0000ffff, 0x05de08a9, + 0x050200ed, 0x60627000, 0x0501f0ab, 0x82000d80, 0x20100000, 0x05020003, 0x60667000, 0x0501f0a6, 0x82000d80, 0x21100000, 0x05020003, 0x606a7000, 0x0501f0a1, 0x82000d80, 0x52000000, 0x05020008, - 0x59cc0006, 0x82000500, 0x0000ffff, 0x05de08b9, - 0x050200c5, 0x606e7000, 0x0501f097, 0x82000d80, + 0x59cc0006, 0x82000500, 0x0000ffff, 0x05de0895, + 0x050200d9, 0x606e7000, 0x0501f097, 0x82000d80, 0x50000000, 0x05020008, 0x59cc0006, 0x82000500, - 0x0000ffff, 0x05de08af, 0x050200bb, 0x60727000, + 0x0000ffff, 0x05de088b, 0x050200cf, 0x60727000, 0x0501f08d, 0x82000d80, 0x13000000, 0x05020003, 0x60d27000, 0x0501f088, 0x82000d80, 0x12000000, 0x05020008, 0x59cc0006, 0x82000500, 0x0000ffff, - 0x05de08a0, 0x050200ac, 0x60927000, 0x0501f07e, + 0x05de087c, 0x050200c0, 0x60927000, 0x0501f07e, 0x82000d00, 0xff000000, 0x82040d80, 0x24000000, 0x05020003, 0x60b67000, 0x0501f077, 0x82000d00, 0xff000000, 0x82040d80, 0x53000000, 0x05020003, @@ -4784,16 +4793,16 @@ static const uint32_t isp_2500_risc_code[] = { 0x59a81073, 0x80081480, 0x05001028, 0x90000484, 0x8000b104, 0x8058b1c0, 0x05000024, 0x505cc800, 0x8264c500, 0x03000000, 0x8060c130, 0x42000000, - 0x001097b9, 0x90602580, 0x05020004, 0x42000000, - 0x001097b6, 0x0501f00a, 0x90602581, 0x05020004, - 0x42000000, 0x001097b7, 0x0501f005, 0x90602582, - 0x05020003, 0x42000000, 0x001097b8, 0x051dfe4e, + 0x00109839, 0x90602580, 0x05020004, 0x42000000, + 0x00109836, 0x0501f00a, 0x90602581, 0x05020004, + 0x42000000, 0x00109837, 0x0501f005, 0x90602582, + 0x05020003, 0x42000000, 0x00109838, 0x051dfef4, 0x60541100, 0x82642500, 0x0000ffff, 0x80641920, - 0x05f1fb6c, 0x805cb800, 0x8058b040, 0x05fe07e4, + 0x05f1fb4c, 0x805cb800, 0x8058b040, 0x05fe07e4, 0x5c00b000, 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x608e7000, 0x0501f030, 0x5c00b000, 0x5c00c800, - 0x5c00c000, 0x5c00b800, 0x42000000, 0x001097ec, - 0x051df639, 0x82000d80, 0x60000000, 0x05020003, + 0x5c00c000, 0x5c00b800, 0x42000000, 0x0010986c, + 0x051df6df, 0x82000d80, 0x60000000, 0x05020003, 0x60fe7000, 0x0501f024, 0x82000d80, 0x78000000, 0x05020003, 0x61167000, 0x0501f01f, 0x82000d80, 0x10000000, 0x05020003, 0x613a7000, 0x0501f01a, @@ -4805,175 +4814,201 @@ static const uint32_t isp_2500_risc_code[] = { 0x7d000000, 0x05020003, 0x615a7000, 0x0501f002, 0x60767000, 0x59cc3800, 0x821c3d00, 0x00ffffff, 0x821c0580, 0x00fffffe, 0x59cc0001, 0x05020004, - 0x40003000, 0x61fa880f, 0x0501f004, 0x0501f8bb, - 0x05de0814, 0x05020020, 0x05f5fead, 0x05de0811, - 0x0502001d, 0x59340200, 0x8c000514, 0x0500000a, - 0x913805b0, 0x05000008, 0x913805bf, 0x05000006, - 0x913805b4, 0x05000004, 0x913805a4, 0x05000002, - 0x61327000, 0x0509fb66, 0x05000014, 0x4936600a, - 0x64126407, 0x59cc0c04, 0x48066202, 0xb138058c, - 0x05020008, 0x64466407, 0x813669c0, 0x05020005, - 0x59cc0001, 0x82000500, 0x00ffffff, 0x48026020, + 0x40003000, 0x61fa880f, 0x0501f017, 0x0501f8f0, + 0x05da0ff0, 0x05020034, 0x83440480, 0x000007f0, + 0x05001001, 0x05f1fddf, 0x0500000f, 0x4c180000, + 0x0001fac4, 0x5c003000, 0x0500000e, 0x4c180000, + 0x0501f846, 0x5c003000, 0x05020007, 0x05f9fc43, + 0x42026800, 0x0010993e, 0x481a6802, 0x61fe89ff, + 0x0501f004, 0x05f5fe85, 0x05da0fda, 0x0502001e, + 0x59340200, 0x8c000514, 0x0500000a, 0x913805b0, + 0x05000008, 0x913805bf, 0x05000006, 0x913805b4, + 0x05000004, 0x913805a4, 0x05000002, 0x61327000, + 0x0509fbab, 0x05000015, 0x4936600a, 0x64126407, + 0x83340580, 0x0010993e, 0x05020005, 0x59cc0001, + 0x82000500, 0x00ffffff, 0x48026020, 0x59cc0c04, + 0x48066202, 0xb138058c, 0x05020002, 0x64466407, 0x0005f105, 0x598800b7, 0x4803c857, 0x80000000, 0x480310b7, 0x1c01f000, 0x61241100, 0x59cc1806, - 0x800c1930, 0x05f1faff, 0x0509fb55, 0x05d80fe9, - 0x05fc07f5, 0x4936600a, 0x64126407, 0x59cc0c04, - 0x48066202, 0x64266403, 0x6426641c, 0x4a02621c, - 0x00002900, 0x64066203, 0x0501f572, 0x59a8021b, - 0x4803c857, 0x8c000508, 0x05000013, 0x599c0019, - 0x8c000510, 0x05020010, 0x59cc0006, 0x82000500, - 0xff000000, 0x82000d80, 0x03000000, 0x0500000c, - 0x82000d80, 0x20000000, 0x05000009, 0x82000d80, - 0x05000000, 0x05000006, 0x82000d80, 0x21000000, - 0x05000003, 0x80000580, 0x1c01f000, 0x90000541, - 0x05fdf7fe, 0x59cc2006, 0x82102500, 0xff000000, - 0x9c1021c0, 0x0501f807, 0x820c1c00, 0x0010944f, - 0x500c1800, 0x800c0500, 0x4803c857, 0x1c01f000, - 0x40100800, 0x41781800, 0x900404a0, 0x05001004, - 0x800c1800, 0x40000800, 0x05fdf7fc, 0x9004050f, - 0x82000400, 0x001089c0, 0x50000000, 0x8c040508, - 0x05000002, 0x900001c0, 0x1c01f000, 0x4803c856, - 0x0501fa13, 0x05020009, 0x05e5ff1f, 0x05020007, - 0x59cc0002, 0x82000500, 0xff000000, 0x82000d80, - 0x08000000, 0x05000802, 0x1c01f000, 0x4803c856, - 0x59cc0400, 0x82000d00, 0x0000ff00, 0x840409c0, - 0x900405b3, 0x05020021, 0x0501f927, 0x05000037, - 0x59cc0a04, 0x48066202, 0x59a80073, 0x90000484, - 0x05001032, 0x59cc0006, 0x4803c857, 0x82000500, - 0xffff0000, 0x82000d80, 0x02000000, 0x05020007, - 0x59cc0006, 0x82000500, 0x0000ffff, 0x05020027, - 0x60567000, 0x0005f105, 0x82000d80, 0x01000000, - 0x05020022, 0x59cc0006, 0x82000500, 0x0000ffff, - 0x0502001e, 0x59a80073, 0x90000488, 0x0500101b, - 0x605a7000, 0x0005f105, 0x900405b2, 0x05020017, - 0x59cc0006, 0x82000500, 0xffff0000, 0x82000d80, - 0x14000000, 0x05020011, 0x59a80073, 0x90000490, - 0x0500100e, 0x60e27000, 0x59cc0001, 0x0501f80e, - 0x0502000a, 0x05f5fdfd, 0x05020008, 0x0509fac8, - 0x05000006, 0x4936600a, 0x64126407, 0x59cc0c04, - 0x48066202, 0x0005f105, 0x42000000, 0x001097ec, - 0x051df54d, 0x4803c857, 0x4000d000, 0x82003500, - 0x00ffffff, 0x0201f800, 0x0010c750, 0x40c40000, - 0x90000581, 0x1c01f000, 0x59a8021b, 0x8c00050e, - 0x05000003, 0x8c000502, 0x05000005, 0x59cc0c00, - 0x80040910, 0x9004050f, 0x0c01f002, 0x1c01f000, - 0x00104b6c, 0x00104b6c, 0x00104b6c, 0x00104c43, - 0x00104b6c, 0x00104b6e, 0x00104b8e, 0x00104b91, - 0x00104b6c, 0x00104b6c, 0x00104b6c, 0x00104b6c, - 0x00104b6c, 0x00104b6c, 0x00104b6c, 0x00104b6c, - 0x4803c856, 0x1c01f000, 0x0501f8c7, 0x0500001a, - 0x59a80073, 0x9000048c, 0x05001017, 0x59300407, - 0x90000583, 0x05020014, 0x59cc0001, 0x5932680a, - 0x813669c0, 0x05000010, 0x59340802, 0x80040580, - 0x82000500, 0x00ffffff, 0x0502000b, 0x59cc0a04, - 0x59300202, 0x82001580, 0x0000ffff, 0x05000003, - 0x80040580, 0x05020004, 0x48066202, 0x611a7000, - 0x0005f105, 0x59cc0004, 0x4803c857, 0x42000000, - 0x001097ed, 0x051df508, 0x59cc0004, 0x4803c857, - 0x1c01f000, 0x0501f8a4, 0x05000016, 0x59a80073, - 0x9000048c, 0x05001013, 0x59300407, 0x90000583, - 0x05020010, 0x59cc0001, 0x82000500, 0x00ffffff, - 0x5932680a, 0x813669c0, 0x0500000a, 0x59340802, - 0x82040d00, 0x00ffffff, 0x80040580, 0x05020005, - 0x59cc0a04, 0x48066202, 0x61167000, 0x0005f105, - 0x59cc0004, 0x4803c857, 0x42000000, 0x001097ed, - 0x051df4e9, 0x59cc0004, 0x4803c857, 0x59cc0000, - 0x82000500, 0xff000000, 0x59cc1001, 0x82081500, - 0x00ffffff, 0x80080540, 0x4803c857, 0x4817c857, - 0x0501f957, 0x05da0eeb, 0x0502000f, 0x05e5fe62, - 0x05da0ee8, 0x0502000c, 0x59cc0002, 0x82000500, - 0xff000000, 0x90000580, 0x05da0ee2, 0x05020006, - 0x9004050f, 0x90000c86, 0x05da1ede, 0x05021002, - 0x0c01f003, 0x4803c856, 0x1c01f000, 0x00104bd1, - 0x00104bd3, 0x00104bd1, 0x00104bd1, 0x00104c12, - 0x00104c1f, 0x4803c856, 0x1c01f000, 0x59a80073, - 0x800001c0, 0x05da0ecf, 0x05fe07fb, 0x59cc0802, - 0x4807c856, 0x8c04052e, 0x05020015, 0x42026000, - 0x0010cc5c, 0x59cc0001, 0x05fdff6b, 0x05020008, - 0x0001fac4, 0x05020006, 0x64166407, 0x64226203, - 0x4936600a, 0x60227001, 0x0005f105, 0x4803c857, - 0x61fe89ff, 0x417a6800, 0x59cc0001, 0x82000500, - 0x00ffffff, 0x48026020, 0x05fdf7f4, 0x59cc0001, - 0x4803c857, 0x05fdff58, 0x05da0eb2, 0x05fe07de, - 0x05f5fd46, 0x05da0eaf, 0x05fe07db, 0x59cc0005, - 0x8c000500, 0x05020005, 0x59340200, 0x8c00050e, - 0x05da0ea8, 0x05fe07d4, 0x05f9f84a, 0x0502000b, - 0x0501f835, 0x05d80ea3, 0x05fc07cf, 0x42026000, - 0x0010cc5c, 0x4936600a, 0x640a6407, 0x64226203, - 0x60227001, 0x0005f105, 0x0509f9fd, 0x05fc07c6, - 0x4936600a, 0x64126407, 0x59cc0c04, 0x48066202, - 0x60067000, 0x0005f105, 0x59cc0802, 0x8c04052e, - 0x05000009, 0x0501f820, 0x05000007, 0x0501f901, - 0x05020005, 0x59cc0a04, 0x48066202, 0x60267001, - 0x0005f105, 0x4933c857, 0x1c01f000, 0x59cc0004, - 0x4803c857, 0x59a80073, 0x90000484, 0x0500100c, - 0x59cc0802, 0x8c04052e, 0x05000009, 0x0501f80e, - 0x05000007, 0x0501f8ef, 0x05020005, 0x59cc0a04, - 0x48066202, 0x602a7001, 0x0005f105, 0x4933c857, - 0x42000000, 0x001097ec, 0x051df463, 0x59cc0a04, - 0x0501f002, 0x59cc0c04, 0x59a8000d, 0x59a81060, - 0x80080400, 0x80040480, 0x05021007, 0x800400c4, - 0x800408ca, 0x80040c00, 0x82066400, 0x0010cca4, - 0x1c01f000, 0x80000580, 0x05fdf7fe, 0x59cc0802, - 0x8c04052e, 0x05020016, 0x05fdffed, 0x05000014, - 0x59300407, 0x90000586, 0x05020011, 0x59cc0001, - 0x82000500, 0x00ffffff, 0x5932680a, 0x813669c0, - 0x0500000b, 0x59340802, 0x82040d00, 0x00ffffff, - 0x80040580, 0x05020006, 0x59a80073, 0x800001c0, - 0x05020003, 0x61467000, 0x0005f105, 0x59cc0004, - 0x4803c857, 0x42000000, 0x001097ed, 0x051df436, - 0x4803c856, 0x60143002, 0x0501f001, 0x481bc857, - 0x4c5c0000, 0x4c600000, 0x4c640000, 0x41ccc800, - 0x4014b800, 0x4018c000, 0x0501f805, 0x5c00c800, - 0x5c00c000, 0x5c00b800, 0x1c01f000, 0x4803c856, - 0x4c580000, 0x58640400, 0x82000500, 0x0000f000, - 0x82000580, 0x0000c000, 0x05000018, 0x0509f990, - 0x05000016, 0x58640001, 0x05fdfecf, 0x05020015, - 0x05f5fcbe, 0x05020013, 0x4936600a, 0x05ddf8e9, - 0x05000010, 0x492e6019, 0x497a5800, 0x497a5a05, - 0x485e5c05, 0x912cac06, 0x601cb000, 0x4064a000, - 0x051dfcd7, 0x4862641c, 0x64fa6403, 0x64066407, - 0x64066203, 0x0501fbab, 0x5c00b000, 0x1c01f000, - 0x0005f8e7, 0x05fdf7fd, 0x4803c856, 0x59cc0400, - 0x82000d00, 0x0000ff00, 0x82040500, 0x0000f000, - 0x840409c0, 0x82000580, 0x00002000, 0x05020044, - 0x900405a2, 0x0502003b, 0x59c400a4, 0x9000050f, - 0x90000c87, 0x05001003, 0x9000048c, 0x0500103e, - 0x59cc0006, 0x82000500, 0xffff0000, 0x82000d80, - 0x04000000, 0x05000038, 0x82000d80, 0x60000000, - 0x05000035, 0x82000d80, 0x54000000, 0x05000032, - 0x82000d80, 0x03000000, 0x05020019, 0x59a80a1b, - 0x8c040502, 0x0502002c, 0x8c040508, 0x0502002a, - 0x82000d80, 0x03000000, 0x05020003, 0x05f9fc23, - 0x05000025, 0x05f5fef2, 0x05000025, 0x59a80018, - 0x800000d0, 0x59a8080f, 0x82040d00, 0x000000ff, - 0x80040540, 0x59cc0800, 0x82040d00, 0x00ffffff, - 0x80040580, 0x05020016, 0x0501f017, 0x59c40802, - 0x8c04050c, 0x05020012, 0x82000d80, 0x52000000, - 0x05fc07ed, 0x82000d80, 0x05000000, 0x05fc07ea, - 0x82000d80, 0x50000000, 0x05fc07e7, 0x0501f008, - 0x900405a3, 0x05020006, 0x05fdff5b, 0x05000004, - 0x59300c03, 0x90040582, 0x05000003, 0x80000580, - 0x0501f002, 0x90000541, 0x1c01f000, 0x59cc0006, - 0x82000500, 0xffff0000, 0x82000d80, 0x03000000, - 0x05000004, 0x82000d80, 0x52000000, 0x05fe07f4, - 0x59a8021b, 0x90000509, 0x90000588, 0x05fc07f2, - 0x05fdf7ef, 0x4803c857, 0x4c580000, 0x40003000, - 0x61c0200f, 0x6040b000, 0x83ac7400, 0x000007f0, - 0x50380000, 0x80026d40, 0x05000006, 0x59340002, - 0x82000500, 0x00ffffff, 0x80180580, 0x0500000d, - 0x80102000, 0x80387000, 0x8058b040, 0x05fe07f5, - 0x82100480, 0x00000800, 0x60002000, 0x61c0b00f, - 0x41ac7000, 0x05fe17ef, 0x90000541, 0x0501f002, - 0x40128800, 0x5c00b000, 0x1c01f000, 0x59a8021b, - 0x8c00050e, 0x05000004, 0x8c000502, 0x05000003, + 0x800c1930, 0x05f1facb, 0x0509fb99, 0x05d80fb1, + 0x05fc07f5, 0x4936600a, 0x83340580, 0x0010993e, + 0x05020005, 0x59cc0001, 0x82000500, 0x00ffffff, + 0x48026020, 0x64126407, 0x59cc0c04, 0x48066202, + 0x64266403, 0x6426641c, 0x4a02621c, 0x00002900, + 0x64066203, 0x0501f5bf, 0x59a8021b, 0x4803c857, + 0x8c000508, 0x05000013, 0x599c0019, 0x8c000510, + 0x05020010, 0x59cc0006, 0x82000500, 0xff000000, + 0x82000d80, 0x03000000, 0x0500000c, 0x82000d80, + 0x20000000, 0x05000009, 0x82000d80, 0x05000000, + 0x05000006, 0x82000d80, 0x21000000, 0x05000003, 0x80000580, 0x1c01f000, 0x90000541, 0x05fdf7fe, - 0x59300c07, 0x90040582, 0x05000002, 0x90040585, - 0x1c01f000, 0x59c80000, 0x84000558, 0x84000512, - 0x48039000, 0x1c01f000, 0x4a032824, 0x000003e8, - 0x4a032802, 0x0010cca4, 0x64032800, 0x4a032808, - 0x0010556a, 0x60140000, 0x91947c09, 0x49787801, - 0x4a007804, 0x00105515, 0x903c7c05, 0x80000040, + 0x59cc2006, 0x82102500, 0xff000000, 0x9c1021c0, + 0x0501f807, 0x820c1c00, 0x001094cf, 0x500c1800, + 0x800c0500, 0x4803c857, 0x1c01f000, 0x40100800, + 0x41781800, 0x900404a0, 0x05001004, 0x800c1800, + 0x40000800, 0x05fdf7fc, 0x9004050f, 0x82000400, + 0x00108a8d, 0x50000000, 0x8c040508, 0x05000002, + 0x900001c0, 0x1c01f000, 0x4803c856, 0x0501fa2d, + 0x05020009, 0x05e5fee2, 0x05020007, 0x59cc0002, + 0x82000500, 0xff000000, 0x82000d80, 0x08000000, + 0x05000802, 0x1c01f000, 0x4803c856, 0x59cc0400, + 0x82000d00, 0x0000ff00, 0x840409c0, 0x900405b3, + 0x05020021, 0x0501f941, 0x05000051, 0x59cc0a04, + 0x48066202, 0x59a80073, 0x90000484, 0x0500104c, + 0x59cc0006, 0x4803c857, 0x82000500, 0xffff0000, + 0x82000d80, 0x02000000, 0x05020007, 0x59cc0006, + 0x82000500, 0x0000ffff, 0x05020041, 0x60567000, + 0x0005f105, 0x82000d80, 0x01000000, 0x0502003c, + 0x59cc0006, 0x82000500, 0x0000ffff, 0x05020038, + 0x59a80073, 0x90000488, 0x05001035, 0x605a7000, + 0x0005f105, 0x900405b2, 0x05020031, 0x59cc0006, + 0x82000500, 0xffff0000, 0x82000d80, 0x14000000, + 0x0502002b, 0x59a80073, 0x90000490, 0x05001028, + 0x60e27000, 0x59cc0001, 0x0501f828, 0x05020024, + 0x83440480, 0x000007f0, 0x05001001, 0x05f1fd19, + 0x0500000f, 0x4c180000, 0x0001fac4, 0x5c003000, + 0x0500000d, 0x4c180000, 0x05fdff80, 0x5c003000, + 0x05020007, 0x05f9fb7d, 0x42026800, 0x0010993e, + 0x481a6802, 0x61fe89ff, 0x0501f003, 0x05f5fdba, + 0x0502000f, 0x0509faf2, 0x0500000d, 0x4936600a, + 0x83340580, 0x0010993e, 0x05020005, 0x59cc0001, + 0x82000500, 0x00ffffff, 0x48026020, 0x64126407, + 0x59cc0c04, 0x48066202, 0x0005f105, 0x42000000, + 0x0010986c, 0x051df5be, 0x4803c857, 0x4000d000, + 0x82003500, 0x00ffffff, 0x0201f800, 0x0010c758, + 0x40c40000, 0x90000581, 0x1c01f000, 0x59a8021b, + 0x8c00050e, 0x05000003, 0x8c000502, 0x05000005, + 0x59cc0c00, 0x80040910, 0x9004050f, 0x0c01f002, + 0x1c01f000, 0x00104bc5, 0x00104bc5, 0x00104bc5, + 0x00104c9c, 0x00104bc5, 0x00104bc7, 0x00104be7, + 0x00104bea, 0x00104bc5, 0x00104bc5, 0x00104bc5, + 0x00104bc5, 0x00104bc5, 0x00104bc5, 0x00104bc5, + 0x00104bc5, 0x4803c856, 0x1c01f000, 0x0501f8c7, + 0x0500001a, 0x59a80073, 0x9000048c, 0x05001017, + 0x59300407, 0x90000583, 0x05020014, 0x59cc0001, + 0x5932680a, 0x813669c0, 0x05000010, 0x59340802, + 0x80040580, 0x82000500, 0x00ffffff, 0x0502000b, + 0x59cc0a04, 0x59300202, 0x82001580, 0x0000ffff, + 0x05000003, 0x80040580, 0x05020004, 0x48066202, + 0x611a7000, 0x0005f105, 0x59cc0004, 0x4803c857, + 0x42000000, 0x0010986d, 0x051df579, 0x59cc0004, + 0x4803c857, 0x1c01f000, 0x0501f8a4, 0x05000016, + 0x59a80073, 0x9000048c, 0x05001013, 0x59300407, + 0x90000583, 0x05020010, 0x59cc0001, 0x82000500, + 0x00ffffff, 0x5932680a, 0x813669c0, 0x0500000a, + 0x59340802, 0x82040d00, 0x00ffffff, 0x80040580, + 0x05020005, 0x59cc0a04, 0x48066202, 0x61167000, + 0x0005f105, 0x59cc0004, 0x4803c857, 0x42000000, + 0x0010986d, 0x051df55a, 0x59cc0004, 0x4803c857, + 0x59cc0000, 0x82000500, 0xff000000, 0x59cc1001, + 0x82081500, 0x00ffffff, 0x80080540, 0x4803c857, + 0x4817c857, 0x0501f957, 0x05da0e92, 0x0502000f, + 0x05e5fe0b, 0x05da0e8f, 0x0502000c, 0x59cc0002, + 0x82000500, 0xff000000, 0x90000580, 0x05da0e89, + 0x05020006, 0x9004050f, 0x90000c86, 0x05da1e85, + 0x05021002, 0x0c01f003, 0x4803c856, 0x1c01f000, + 0x00104c2a, 0x00104c2c, 0x00104c2a, 0x00104c2a, + 0x00104c6b, 0x00104c78, 0x4803c856, 0x1c01f000, + 0x59a80073, 0x800001c0, 0x05da0e76, 0x05fe07fb, + 0x59cc0802, 0x4807c856, 0x8c04052e, 0x05020015, + 0x42026000, 0x0010cc6c, 0x59cc0001, 0x05fdff6b, + 0x05020008, 0x0001fac4, 0x05020006, 0x64166407, + 0x64226203, 0x4936600a, 0x60227001, 0x0005f105, + 0x4803c857, 0x61fe89ff, 0x417a6800, 0x59cc0001, + 0x82000500, 0x00ffffff, 0x48026020, 0x05fdf7f4, + 0x59cc0001, 0x4803c857, 0x05fdff58, 0x05da0e59, + 0x05fe07de, 0x05f5fcfc, 0x05da0e56, 0x05fe07db, + 0x59cc0005, 0x8c000500, 0x05020005, 0x59340200, + 0x8c00050e, 0x05da0e4f, 0x05fe07d4, 0x05f9f806, + 0x0502000b, 0x0501f835, 0x05d80e4a, 0x05fc07cf, + 0x42026000, 0x0010cc6c, 0x4936600a, 0x640a6407, + 0x64226203, 0x60227001, 0x0005f105, 0x0509fa20, + 0x05fc07c6, 0x4936600a, 0x64126407, 0x59cc0c04, + 0x48066202, 0x60067000, 0x0005f105, 0x59cc0802, + 0x8c04052e, 0x05000009, 0x0501f820, 0x05000007, + 0x0501f901, 0x05020005, 0x59cc0a04, 0x48066202, + 0x60267001, 0x0005f105, 0x4933c857, 0x1c01f000, + 0x59cc0004, 0x4803c857, 0x59a80073, 0x90000484, + 0x0500100c, 0x59cc0802, 0x8c04052e, 0x05000009, + 0x0501f80e, 0x05000007, 0x0501f8ef, 0x05020005, + 0x59cc0a04, 0x48066202, 0x602a7001, 0x0005f105, + 0x4933c857, 0x42000000, 0x0010986c, 0x051df4d4, + 0x59cc0a04, 0x0501f002, 0x59cc0c04, 0x59a8000d, + 0x59a81060, 0x80080400, 0x80040480, 0x05021007, + 0x800400c4, 0x800408ca, 0x80040c00, 0x82066400, + 0x0010ccb4, 0x1c01f000, 0x80000580, 0x05fdf7fe, + 0x59cc0802, 0x8c04052e, 0x05020016, 0x05fdffed, + 0x05000014, 0x59300407, 0x90000586, 0x05020011, + 0x59cc0001, 0x82000500, 0x00ffffff, 0x5932680a, + 0x813669c0, 0x0500000b, 0x59340802, 0x82040d00, + 0x00ffffff, 0x80040580, 0x05020006, 0x59a80073, + 0x800001c0, 0x05020003, 0x61467000, 0x0005f105, + 0x59cc0004, 0x4803c857, 0x42000000, 0x0010986d, + 0x051df4a7, 0x4803c856, 0x60143002, 0x0501f001, + 0x481bc857, 0x4c5c0000, 0x4c600000, 0x4c640000, + 0x41ccc800, 0x4014b800, 0x4018c000, 0x0501f805, + 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x1c01f000, + 0x4803c856, 0x4c580000, 0x58640400, 0x82000500, + 0x0000f000, 0x82000580, 0x0000c000, 0x05000018, + 0x0509f9b3, 0x05000016, 0x58640001, 0x05fdfecf, + 0x05020015, 0x05f5fc74, 0x05020013, 0x4936600a, + 0x05ddf890, 0x05000010, 0x492e6019, 0x497a5800, + 0x497a5a05, 0x485e5c05, 0x912cac06, 0x601cb000, + 0x4064a000, 0x051dfd48, 0x4862641c, 0x64fa6403, + 0x64066407, 0x64066203, 0x0501fbde, 0x5c00b000, + 0x1c01f000, 0x0005f8e7, 0x05fdf7fd, 0x4803c856, + 0x59cc0400, 0x82000d00, 0x0000ff00, 0x82040500, + 0x0000f000, 0x840409c0, 0x82000580, 0x00002000, + 0x05020044, 0x900405a2, 0x0502003b, 0x59c400a4, + 0x9000050f, 0x90000c87, 0x05001003, 0x9000048c, + 0x0500103e, 0x59cc0006, 0x82000500, 0xffff0000, + 0x82000d80, 0x04000000, 0x05000038, 0x82000d80, + 0x60000000, 0x05000035, 0x82000d80, 0x54000000, + 0x05000032, 0x82000d80, 0x03000000, 0x05020019, + 0x59a80a1b, 0x8c040502, 0x0502002c, 0x8c040508, + 0x0502002a, 0x82000d80, 0x03000000, 0x05020003, + 0x05f9fc00, 0x05000025, 0x05f5feac, 0x05000025, + 0x59a80018, 0x800000d0, 0x59a8080f, 0x82040d00, + 0x000000ff, 0x80040540, 0x59cc0800, 0x82040d00, + 0x00ffffff, 0x80040580, 0x05020016, 0x0501f017, + 0x59c40802, 0x8c04050c, 0x05020012, 0x82000d80, + 0x52000000, 0x05fc07ed, 0x82000d80, 0x05000000, + 0x05fc07ea, 0x82000d80, 0x50000000, 0x05fc07e7, + 0x0501f008, 0x900405a3, 0x05020006, 0x05fdff5b, + 0x05000004, 0x59300c03, 0x90040582, 0x05000003, + 0x80000580, 0x0501f002, 0x90000541, 0x1c01f000, + 0x59cc0006, 0x82000500, 0xffff0000, 0x82000d80, + 0x03000000, 0x05000004, 0x82000d80, 0x52000000, + 0x05fe07f4, 0x59a8021b, 0x90000509, 0x90000588, + 0x05fc07f2, 0x05fdf7ef, 0x4803c857, 0x4c580000, + 0x40003000, 0x61c0200f, 0x6040b000, 0x83ac7400, + 0x000007f0, 0x50380000, 0x80026d40, 0x05000006, + 0x59340002, 0x82000500, 0x00ffffff, 0x80180580, + 0x0500000d, 0x80102000, 0x80387000, 0x8058b040, + 0x05fe07f5, 0x82100480, 0x00000800, 0x60002000, + 0x61c0b00f, 0x41ac7000, 0x05fe17ef, 0x90000541, + 0x0501f002, 0x40128800, 0x5c00b000, 0x1c01f000, + 0x59a8021b, 0x8c00050e, 0x05000004, 0x8c000502, + 0x05000003, 0x80000580, 0x1c01f000, 0x90000541, + 0x05fdf7fe, 0x59300c07, 0x90040582, 0x05000002, + 0x90040585, 0x1c01f000, 0x59c80000, 0x84000558, + 0x84000512, 0x48039000, 0x1c01f000, 0x82140500, + 0x0000f000, 0x05000006, 0x82000c80, 0x00002000, + 0x0502100a, 0x80000580, 0x1c01f000, 0x59cc0400, + 0x82000500, 0x0000ff00, 0x82000580, 0x00008100, + 0x05fc07fa, 0x0501f012, 0x4817c857, 0x82140500, + 0x000003ff, 0x05020007, 0x59cc0400, 0x82000500, + 0x0000ff00, 0x82000580, 0x00008100, 0x05020008, + 0x42000000, 0x001098d2, 0x051dfbc9, 0x05fdff22, + 0x4803c856, 0x90000541, 0x05fdf7e8, 0x41780000, + 0x05fdf7e6, 0x05f9fb77, 0x0500000e, 0x59c400a4, + 0x4803c857, 0x9000050f, 0x9000058a, 0x05020009, + 0x497b5073, 0x59c400a3, 0x82000540, 0x00080000, + 0x480388a3, 0x82000500, 0xfff7ffff, 0x480388a3, + 0x4817c856, 0x051df2f7, 0x4a032824, 0x000003e8, + 0x4a032802, 0x0010ccb4, 0x64032800, 0x4a032808, + 0x001055f6, 0x60140000, 0x91947c09, 0x49787801, + 0x4a007804, 0x001055a1, 0x903c7c05, 0x80000040, 0x05fe07fb, 0x4a032823, 0xffff0000, 0x6191d000, 0x0501f9af, 0x4201d000, 0x000186a0, 0x0501f1bc, 0x00000000, 0x00000005, 0x0000000a, 0x0000000f, @@ -4986,13 +5021,13 @@ static const uint32_t isp_2500_risc_code[] = { 0x5c029800, 0x5c028800, 0x5c027800, 0x5c027000, 0x5c01f800, 0x5c028000, 0x5c026800, 0x5c025800, 0x5c026000, 0x1c01f000, 0x59940004, 0x80000540, - 0x05020008, 0x5994002f, 0x80040400, 0x05d81c83, + 0x05020008, 0x5994002f, 0x80040400, 0x05d81bf7, 0x48032804, 0x480b2805, 0x642b2803, 0x80000580, 0x1c01f000, 0x59940029, 0x80000540, 0x05020008, - 0x5994002f, 0x80040400, 0x05d81c78, 0x48032829, + 0x5994002f, 0x80040400, 0x05d81bec, 0x48032829, 0x480b282a, 0x64072828, 0x80000580, 0x1c01f000, 0x40680800, 0x406c1000, 0x5994002c, 0x80000540, - 0x05020008, 0x5994002f, 0x80040400, 0x05d81c6b, + 0x05020008, 0x5994002f, 0x80040400, 0x05d81bdf, 0x4803282c, 0x480b282d, 0x642b282b, 0x80000580, 0x1c01f000, 0x4c000000, 0x59940005, 0x80080580, 0x05020003, 0x497b2804, 0x497b2805, 0x5c000000, @@ -5037,10 +5072,10 @@ static const uint32_t isp_2500_risc_code[] = { 0x91326424, 0x49332802, 0x41540000, 0x81300480, 0x05021005, 0x803c7840, 0x05fe07e0, 0x5c03e000, 0x1c01f000, 0x59940030, 0x48032831, 0x4a032802, - 0x0010cca4, 0x497b2830, 0x80000540, 0x0500000c, + 0x0010ccb4, 0x497b2830, 0x80000540, 0x0500000c, 0x64072800, 0x5c03e000, 0x1c01f000, 0x4c3c0000, - 0x0511fc2b, 0x5c007800, 0x05fdf7d8, 0x4c3c0000, - 0x0511f8dd, 0x5c007800, 0x05fdf7e6, 0x64032800, + 0x0511fc35, 0x5c007800, 0x05fdf7d8, 0x4c3c0000, + 0x0511f8e4, 0x5c007800, 0x05fdf7e6, 0x64032800, 0x5c03e000, 0x1c01f000, 0x59a80872, 0x8c040530, 0x05020025, 0x8c040532, 0x0500000f, 0x59a80061, 0x81640480, 0x05001016, 0x59a8000b, 0x81500580, @@ -5051,70 +5086,70 @@ static const uint32_t isp_2500_risc_code[] = { 0x900401c0, 0x9000051f, 0x80040d40, 0x900401c0, 0x80040580, 0x82001500, 0x00007000, 0x82040500, 0xffff8fff, 0x80080540, 0x48035072, 0x80081114, - 0x05d9fda5, 0x1c01f000, 0x4a032807, 0x000007d0, + 0x05d9fd19, 0x1c01f000, 0x4a032807, 0x000007d0, 0x642b2806, 0x4a01a8e5, 0x00000c00, 0x1c01f000, - 0x60100800, 0x91180485, 0x05da1b78, 0x91947c09, - 0x83180400, 0x00104d38, 0x50000000, 0x803c7c00, + 0x60100800, 0x91180485, 0x05da1aec, 0x91947c09, + 0x83180400, 0x00104dc4, 0x50000000, 0x803c7c00, 0x4a007801, 0x000001f4, 0x48047802, 0x64287800, - 0x49787803, 0x83180400, 0x00104d3d, 0x50000000, + 0x49787803, 0x83180400, 0x00104dc9, 0x50000000, 0x82000540, 0x00000155, 0x4801a8e5, 0x1c01f000, - 0x91180485, 0x05da1b65, 0x91947c09, 0x83180400, - 0x00104d38, 0x50000000, 0x803c7c00, 0x583c0002, + 0x91180485, 0x05da1ad9, 0x91947c09, 0x83180400, + 0x00104dc4, 0x50000000, 0x803c7c00, 0x583c0002, 0x80000040, 0x48007802, 0x05000004, 0x4a007801, 0x000001f4, 0x64287800, 0x1c01f000, 0x91180485, - 0x05da1b56, 0x91947c09, 0x83180400, 0x00104d38, + 0x05da1aca, 0x91947c09, 0x83180400, 0x00104dc4, 0x50000000, 0x803c7c00, 0x49787801, 0x83180400, - 0x00104d3d, 0x50000000, 0x4801a8e5, 0x1c01f000, + 0x00104dc9, 0x50000000, 0x4801a8e5, 0x1c01f000, 0x40680800, 0x406c1000, 0x0501f802, 0x1c01f000, 0x4807c857, 0x480bc857, 0x5994002f, 0x80040400, - 0x05d81b42, 0x48032804, 0x480b2805, 0x642b2803, + 0x05d81ab6, 0x48032804, 0x480b2805, 0x642b2803, 0x1c01f000, 0x4807c857, 0x480bc857, 0x5994002f, - 0x80040400, 0x05d81b39, 0x48032826, 0x480b2827, + 0x80040400, 0x05d81aad, 0x48032826, 0x480b2827, 0x642b2825, 0x1c01f000, 0x4c000000, 0x59940027, 0x80080580, 0x05020003, 0x48032826, 0x48032827, 0x5c000000, 0x1c01f000, 0x4807c857, 0x480bc857, - 0x5994002f, 0x80040400, 0x05d81b28, 0x4803282c, + 0x5994002f, 0x80040400, 0x05d81a9c, 0x4803282c, 0x480b282d, 0x642b282b, 0x1c01f000, 0x80e9d1c0, 0x0500000c, 0x0501f82e, 0x05025000, 0x4203e000, 0x80000000, 0x40e81000, 0x41780800, 0x61900000, 0x0501f8b4, 0x5994002e, 0x80080400, 0x4803282e, - 0x1c01f000, 0x42001000, 0x0010402e, 0x05fdfeae, - 0x42001000, 0x00104021, 0x05fdffdc, 0x42001000, - 0x001035b3, 0x05fdfea8, 0x42001000, 0x0010362b, - 0x05fdfea5, 0x42001000, 0x00103592, 0x05fdfea2, - 0x42001000, 0x00103655, 0x05fdf6b2, 0x4203e000, + 0x1c01f000, 0x42001000, 0x00104064, 0x05fdfeae, + 0x42001000, 0x00104057, 0x05fdffdc, 0x42001000, + 0x001035bf, 0x05fdfea8, 0x42001000, 0x00103637, + 0x05fdfea5, 0x42001000, 0x0010359e, 0x05fdfea2, + 0x42001000, 0x00103661, 0x05fdf6b2, 0x4203e000, 0x70000000, 0x4203e000, 0xb0300000, 0x40ebf800, 0x60f00000, 0x05004004, 0x80000040, 0x05fe07fe, 0x0501f006, 0x4203e000, 0x70000000, 0x42000000, - 0x00109813, 0x051df9a4, 0x1c01f000, 0x4203e000, + 0x00109893, 0x051df9e2, 0x1c01f000, 0x4203e000, 0x80000000, 0x4203e000, 0xb0400000, 0x40ebf800, 0x60f00000, 0x05005004, 0x80000040, 0x05fe07fe, 0x0501f006, 0x4203e000, 0x80000000, 0x42000000, - 0x00109814, 0x051df994, 0x1c01f000, 0x59a8080d, + 0x00109894, 0x051df9d2, 0x1c01f000, 0x59a8080d, 0x59a80262, 0x80040480, 0x599c0a02, 0x800409c0, 0x05020002, 0x80040800, 0x80041480, 0x05001002, 0x40000800, 0x48075060, 0x59a8100d, 0x40040000, 0x800acc80, 0x4967500d, 0x49675061, 0x59aaa80b, 0x41640800, 0x60901000, 0x0501f84e, 0x8206a400, - 0x0010cca4, 0x4953505d, 0x4152b000, 0x42006000, - 0x001098f3, 0x4a006005, 0x0000012c, 0x4a006006, - 0xda10da10, 0x64486009, 0x4a00600a, 0x001098f3, + 0x0010ccb4, 0x4953505d, 0x4152b000, 0x42006000, + 0x00109973, 0x4a006005, 0x0000012c, 0x4a006006, + 0xda10da10, 0x64486009, 0x4a00600a, 0x00109973, 0x4a00600b, 0x00100cd9, 0x599c0014, 0x48006012, - 0x599c0015, 0x48006013, 0x42006000, 0x0010cc14, + 0x599c0015, 0x48006013, 0x42006000, 0x0010cc24, 0x64206203, 0x64186407, 0x4a006002, 0xffff0000, - 0x4a006009, 0x001098f3, 0x4a006016, 0x001098f3, + 0x4a006009, 0x00109973, 0x4a006016, 0x00109973, 0x599c0014, 0x48006017, 0x599c0015, 0x48006018, 0x599c0413, 0x48006019, 0x4950601a, 0x4954601b, - 0x59a80060, 0x4800601c, 0x4a00601d, 0x001093dd, - 0x4a00601e, 0x001093de, 0x4a00601f, 0x001093df, - 0x42000000, 0xb0000000, 0x42000800, 0x0010cc14, + 0x59a80060, 0x4800601c, 0x4a00601d, 0x0010945d, + 0x4a00601e, 0x0010945e, 0x4a00601f, 0x0010945f, + 0x42000000, 0xb0000000, 0x42000800, 0x0010cc24, 0x0001f91e, 0x1c01f000, 0x4807c856, 0x59a80082, 0x800409c0, 0x05000003, 0x80080540, 0x0501f002, 0x80080500, 0x48035082, 0x1c01f000, 0x4803c856, - 0x4c000000, 0x05fdfbf4, 0x0502000b, 0x05f5f9e3, - 0x05da0a8e, 0x5c000000, 0x48026802, 0x0505feac, + 0x4c000000, 0x05fdfbc1, 0x0502000b, 0x05f5f966, + 0x05da0a02, 0x5c000000, 0x48026802, 0x0505fe9c, 0x05000006, 0x4936600a, 0x64066407, 0x60067000, - 0x0005f105, 0x5c000000, 0x1c01f000, 0x05d9fa83, + 0x0005f105, 0x5c000000, 0x1c01f000, 0x05d9f9f7, 0x4c0c0000, 0x4c100000, 0x4c140000, 0x4c180000, 0x80001d80, 0x80002580, 0x60803000, 0x90040501, 0x05000003, 0x40080000, 0x800c1c00, 0x400c2800, @@ -5130,7 +5165,7 @@ static const uint32_t isp_2500_risc_code[] = { 0x41f00000, 0x82000500, 0xf7ffffff, 0x4003e000, 0x5c000000, 0x5c00b000, 0x1c01f000, 0x4c000000, 0x41f00000, 0x82000540, 0x08000000, 0x05fdf7f8, - 0x42007000, 0x00109471, 0x64147000, 0x64007401, + 0x42007000, 0x001094f1, 0x64147000, 0x64007401, 0x4a007201, 0x00000840, 0x64147202, 0x6401a8e8, 0x6443c82b, 0x0501f837, 0x4a01a8e9, 0x00003a0d, 0x4a01a8ee, 0x00080202, 0x6405a8e8, 0x640378e8, @@ -5150,10 +5185,10 @@ static const uint32_t isp_2500_risc_code[] = { 0x4c540000, 0x4a01a8e7, 0xaaaaaaaa, 0x4a01a8e6, 0xaaaaaaaa, 0x4a01a8e5, 0xaaaaaaaa, 0x4a01a8e4, 0xaaaaaaaa, 0x4a01a8ee, 0x00200000, 0x4979a8ee, - 0x6000b001, 0x90d4ac00, 0x4178a000, 0x051df974, + 0x6000b001, 0x90d4ac00, 0x4178a000, 0x051df9b2, 0x4a01a81d, 0x00100cd5, 0x4a01a81b, 0x00100cde, - 0x4a01a81c, 0x00100cee, 0x4a01a81e, 0x00109704, - 0x64031800, 0x600c0800, 0x42001800, 0x00109707, + 0x4a01a81c, 0x00100cee, 0x4a01a81e, 0x00109784, + 0x64031800, 0x600c0800, 0x42001800, 0x00109787, 0x417a3000, 0x811b20c8, 0x83932400, 0x0000b037, 0x48072000, 0x480f2001, 0x64032002, 0x800408c4, 0x900c1c05, 0x811a3000, 0x91180485, 0x05fc17f6, @@ -5162,9 +5197,9 @@ static const uint32_t isp_2500_risc_code[] = { 0x4a0378e7, 0xaaaaaaaa, 0x4a0378e6, 0xaaaaaaaa, 0x4a0378e5, 0xaaaaaaaa, 0x4a0378e4, 0xaaaaaaaa, 0x4a03781b, 0x00100cde, 0x4a03781c, 0x00100cee, - 0x4a03781d, 0x00109474, 0x4a03781e, 0x0010947b, - 0x42000800, 0x00109707, 0x417a3000, 0x8119b0c8, - 0x82d9b400, 0x0000bf32, 0x83180400, 0x0010561e, + 0x4a03781d, 0x001094f4, 0x4a03781e, 0x001094fb, + 0x42000800, 0x00109787, 0x417a3000, 0x8119b0c8, + 0x82d9b400, 0x0000bf32, 0x83180400, 0x001056aa, 0x50000000, 0x4801b002, 0x90040c05, 0x811a3000, 0x91180485, 0x05fc17f6, 0x5c023000, 0x5c01b000, 0x1c01f000, 0x40680800, 0x0005f87c, 0x1c01f000, @@ -5188,22 +5223,22 @@ static const uint32_t isp_2500_risc_code[] = { 0x05020003, 0x5930001a, 0x814c0580, 0x1c01f000, 0x4d2c0000, 0x4d300000, 0x0501f8b1, 0x4df00000, 0x05fdfe0b, 0x59900002, 0x90000503, 0x0c01f001, - 0x00105098, 0x0010508d, 0x0010508c, 0x0010508c, - 0x05d9f95a, 0x59926005, 0x0501f874, 0x813261c0, + 0x00105124, 0x00105119, 0x00105118, 0x00105118, + 0x05d9f8ce, 0x59926005, 0x0501f874, 0x813261c0, 0x05000008, 0x59300004, 0x8c000516, 0x05000004, 0x59325809, 0x497a5809, 0x497a580a, 0x0501f871, 0x5c03e000, 0x05000886, 0x5c026000, 0x5c025800, 0x1c01f000, 0x5c000000, 0x4c000000, 0x4803c857, 0x4d300000, 0x4a01a8e5, 0x00000800, 0x0501f890, 0x4df00000, 0x598c0000, 0x90000507, 0x4803c857, - 0x0c01f001, 0x001050c9, 0x001050b2, 0x001050b9, - 0x001050bc, 0x001050c6, 0x001050c9, 0x001050b1, - 0x001050b1, 0x05d9f935, 0x598c000b, 0x80026540, - 0x05000003, 0x0501f818, 0x05da0930, 0x0501fd3c, + 0x0c01f001, 0x00105155, 0x0010513e, 0x00105145, + 0x00105148, 0x00105152, 0x00105155, 0x0010513d, + 0x0010513d, 0x05d9f8a9, 0x598c000b, 0x80026540, + 0x05000003, 0x0501f818, 0x05da08a4, 0x0501fd3c, 0x0501f011, 0x0501f823, 0x0501fd39, 0x0501f00e, 0x598c000b, 0x80026540, 0x0500000b, 0x0501f834, 0x05000004, 0x0501f80c, 0x05000002, 0x0501f819, - 0x0501fd2f, 0x0501f004, 0x0501f82d, 0x05da091f, + 0x0501fd2f, 0x0501f004, 0x0501f82d, 0x05da0893, 0x0501fd2b, 0x5c03e000, 0x05000855, 0x5c026000, 0x1c01f000, 0x598c0007, 0x81300580, 0x0502000c, 0x0501f848, 0x0501f837, 0x59300000, 0x800001c0, @@ -5234,13 +5269,13 @@ static const uint32_t isp_2500_risc_code[] = { 0x58d400ea, 0x90000507, 0x90000581, 0x0502000d, 0x4803c856, 0x60000800, 0x0501f831, 0x60000820, 0x58d400ea, 0x90000507, 0x90000583, 0x05000004, - 0x80040840, 0x05fe07fb, 0x05d9f8a4, 0x41782800, + 0x80040840, 0x05fe07fb, 0x05d9f818, 0x41782800, 0x59bc00ea, 0x90000507, 0x90000581, 0x0502000e, 0x4803c856, 0x60000800, 0x0501f80d, 0x4a0370e4, 0x00000c00, 0x60000820, 0x59bc00ea, 0x90000507, 0x90000583, 0x05000005, 0x80040840, 0x05fe07fb, - 0x05d9f892, 0x801429c0, 0x1c01f000, 0x59bc00ea, - 0x90000507, 0x90000581, 0x05da088c, 0x59bc00ea, + 0x05d9f806, 0x801429c0, 0x1c01f000, 0x59bc00ea, + 0x90000507, 0x90000581, 0x05da0800, 0x59bc00ea, 0x8c000516, 0x05fe07fe, 0x480778e1, 0x1c01f000, 0x40681000, 0x406c0800, 0x59bc00ea, 0x8c000516, 0x05fe07fe, 0x480778e1, 0x59bc00ea, 0x8c000516, @@ -5249,55 +5284,55 @@ static const uint32_t isp_2500_risc_code[] = { 0x58d400ea, 0x8c000516, 0x05fe07fe, 0x4805a8e1, 0x58d400ea, 0x8c000516, 0x05fe07fe, 0x4809a8e1, 0x1c01f000, 0x4a0378e4, 0x00002000, 0x42007000, - 0x00109471, 0x58380401, 0x8c000506, 0x05020003, + 0x001094f1, 0x58380401, 0x8c000506, 0x05020003, 0x4a01a8e4, 0x00008000, 0x1c01f000, 0x82000d00, - 0x02000018, 0x05da0857, 0x05d9f860, 0x0010527f, - 0x00105294, 0x0010518e, 0x0010527e, 0x0010518d, - 0x00105220, 0x05d9f859, 0x4d2c0000, 0x4d300000, + 0x02000018, 0x05d60fcb, 0x05d5ffd4, 0x0010530b, + 0x00105320, 0x0010521a, 0x0010530a, 0x00105219, + 0x001052ac, 0x05d5ffcd, 0x4d2c0000, 0x4d300000, 0x58d400ea, 0x8c000510, 0x05fc07fe, 0x58d660e0, - 0x813261c0, 0x05d80851, 0x59300004, 0x8c000520, + 0x813261c0, 0x05d40fc5, 0x59300004, 0x8c000520, 0x05000010, 0x82000500, 0xfffefeff, 0x48026004, 0x59325809, 0x59301407, 0x90080583, 0x05000006, - 0x90080586, 0x05da0845, 0x592c0a07, 0x0005f84e, + 0x90080586, 0x05d60fb9, 0x592c0a07, 0x0005f84e, 0x0501f006, 0x0001fb2c, 0x0005f8e7, 0x0501f003, 0x84000510, 0x48026004, 0x5c026000, 0x5c025800, - 0x1c01f000, 0x82000d00, 0x82000018, 0x05da082d, - 0x05d9f836, 0x001051c1, 0x001051c1, 0x001051c1, - 0x001051c1, 0x001051c2, 0x00105202, 0x001051c1, - 0x00105251, 0x001051c1, 0x0010527e, 0x001051c1, - 0x001051c1, 0x001051e1, 0x001051c1, 0x001051c1, - 0x001051c1, 0x05d9f825, 0x4d300000, 0x4d900000, + 0x1c01f000, 0x82000d00, 0x82000018, 0x05d60fa1, + 0x05d5ffaa, 0x0010524d, 0x0010524d, 0x0010524d, + 0x0010524d, 0x0010524e, 0x0010528e, 0x0010524d, + 0x001052dd, 0x0010524d, 0x0010530a, 0x0010524d, + 0x0010524d, 0x0010526d, 0x0010524d, 0x0010524d, + 0x0010524d, 0x05d5ff99, 0x4d300000, 0x4d900000, 0x4dd00000, 0x4da40000, 0x4d140000, 0x4cd80000, 0x0501fc43, 0x59bc00ea, 0x8c000510, 0x05fc07fe, 0x59be60e0, 0x59300004, 0x8c000520, 0x0500000f, 0x82000500, 0xfffefeff, 0x48026004, 0x640e6203, - 0x05fdff5f, 0x05ddfa5d, 0x5c01b000, 0x5c022800, + 0x05fdff5f, 0x05ddf9d1, 0x5c01b000, 0x5c022800, 0x5c034800, 0x5c03a000, 0x5c032000, 0x5c026000, 0x642378e4, 0x05fdf742, 0x84000510, 0x48026004, 0x05fdf7f6, 0x4d2c0000, 0x4d300000, 0x59bc00ea, 0x8c000510, 0x05fc07fe, 0x59be60e0, 0x813261c0, - 0x05d40ffe, 0x59300004, 0x8c000520, 0x05000014, + 0x05d40f72, 0x59300004, 0x8c000520, 0x05000014, 0x82000500, 0xfffefeff, 0x48026004, 0x59301407, - 0x90080583, 0x05d60ff5, 0x0201f800, 0x0010ba2e, - 0x80c40040, 0x05d60ff1, 0x59325809, 0x60040800, - 0x600a8000, 0x05f5fd47, 0x0001fb2c, 0x0005f8e7, + 0x90080583, 0x05d60f69, 0x0201f800, 0x0010ba3e, + 0x80c40040, 0x05d60f65, 0x59325809, 0x60040800, + 0x600a8000, 0x05f5fcf1, 0x0001fb2c, 0x0005f8e7, 0x5c026000, 0x5c025800, 0x1c01f000, 0x84000510, 0x48026004, 0x05fdf7fb, 0x4d300000, 0x4d900000, 0x4dd00000, 0x4da40000, 0x4d140000, 0x4cd80000, 0x0501fc03, 0x59bc00ea, 0x8c000510, 0x05fc07fe, 0x59be60e0, 0x59300004, 0x8c000520, 0x0500000e, 0x82000500, 0xfffefeff, 0x48026004, 0x05fdff20, - 0x05ddfa51, 0x5c01b000, 0x5c022800, 0x5c034800, + 0x05ddf9c5, 0x5c01b000, 0x5c022800, 0x5c034800, 0x5c03a000, 0x5c032000, 0x5c026000, 0x642378e4, 0x05fdf703, 0x84000510, 0x48026004, 0x05fdf7f6, 0x4d300000, 0x4d2c0000, 0x4d340000, 0x4da40000, 0x4cd00000, 0x58d400ea, 0x8c000510, 0x05fc07fe, - 0x58d660e0, 0x813261c0, 0x05d40fbc, 0x59300004, + 0x58d660e0, 0x813261c0, 0x05d40f30, 0x59300004, 0x8c000520, 0x0500001c, 0x82000500, 0xfffefeff, - 0x48026004, 0x5932680a, 0x42034800, 0x00109474, - 0x05011000, 0x4a03c840, 0x0010947b, 0x644bc842, - 0x05011000, 0x4a03c840, 0x0010948d, 0x4a03c842, - 0x000000ff, 0x05011000, 0x4a03c840, 0x0010958c, + 0x48026004, 0x5932680a, 0x42034800, 0x001094f4, + 0x05011000, 0x4a03c840, 0x001094fb, 0x644bc842, + 0x05011000, 0x4a03c840, 0x0010950d, 0x4a03c842, + 0x000000ff, 0x05011000, 0x4a03c840, 0x0010960c, 0x4a03c842, 0x000000ff, 0x0501fbe1, 0x5c01a000, 0x5c034800, 0x5c026800, 0x5c025800, 0x5c026000, 0x1c01f000, 0x84000510, 0x48026004, 0x5c01a000, @@ -5306,15 +5341,15 @@ static const uint32_t isp_2500_risc_code[] = { 0x4cd00000, 0x4d900000, 0x4dd00000, 0x4da40000, 0x4d140000, 0x4cd80000, 0x0501fbb1, 0x59bc00ea, 0x8c000510, 0x05fc07fe, 0x59be60e0, 0x813261c0, - 0x05d40f86, 0x59300004, 0x8c000520, 0x0500000f, - 0x82000500, 0xfffefeff, 0x48026004, 0x0505fa00, + 0x05d40efa, 0x59300004, 0x8c000520, 0x0500000f, + 0x82000500, 0xfffefeff, 0x48026004, 0x0505f9ec, 0x5c01b000, 0x5c022800, 0x5c034800, 0x5c03a000, 0x5c032000, 0x5c01a000, 0x5c026800, 0x5c025800, 0x5c026000, 0x1c01f000, 0x84000510, 0x48026004, 0x5c01b000, 0x5c022800, 0x5c034800, 0x5c03a000, 0x5c032000, 0x5c01a000, 0x5c026800, 0x5c025800, - 0x5c026000, 0x1c01f000, 0x05d5ff68, 0x4d300000, - 0x4d380000, 0x42000000, 0x00109859, 0x0519fe12, + 0x5c026000, 0x1c01f000, 0x05d5fedc, 0x4d300000, + 0x4d380000, 0x42000000, 0x001098d9, 0x0519fe50, 0x05fdfeaf, 0x598e600b, 0x59c40004, 0x8c000506, 0x05000003, 0x0501f8cf, 0x64238804, 0x813261c0, 0x05000004, 0x0501fb79, 0x60527000, 0x0005f905, @@ -5322,9 +5357,9 @@ static const uint32_t isp_2500_risc_code[] = { 0x4d180000, 0x4d300000, 0x4d380000, 0x4d900000, 0x4dd00000, 0x4da40000, 0x4d140000, 0x4cd80000, 0x05fdfe97, 0x417a3000, 0x59c40804, 0x83180400, - 0x001055cf, 0x50000000, 0x80040500, 0x05000017, - 0x42000000, 0x0010985a, 0x0519fdef, 0x0501fb64, - 0x59926005, 0x0501f858, 0x83180400, 0x001055cf, + 0x0010565b, 0x50000000, 0x80040500, 0x05000017, + 0x42000000, 0x001098da, 0x0519fe2d, 0x0501fb64, + 0x59926005, 0x0501f858, 0x83180400, 0x0010565b, 0x50000000, 0x48038804, 0x813261c0, 0x05000007, 0x59300004, 0x8c00050c, 0x05020002, 0x640e6203, 0x612a7000, 0x0005f905, 0x59c40004, 0x82000500, @@ -5350,22 +5385,22 @@ static const uint32_t isp_2500_risc_code[] = { 0x05fe07fe, 0x59c80840, 0x90040550, 0x48039040, 0x59c41008, 0x4c040000, 0x4c080000, 0x82081500, 0xffffff7f, 0x480b8808, 0x0501faa3, 0x05020006, - 0x0501faa7, 0x05000020, 0x48038804, 0x05ddf98d, + 0x0501faa7, 0x05000020, 0x48038804, 0x05ddf901, 0x0501f03b, 0x64238803, 0x59c40003, 0x90000503, 0x05fc07fe, 0x8c000502, 0x05020006, 0x0501fa9c, - 0x05000015, 0x48038804, 0x05ddf982, 0x0501f030, + 0x05000015, 0x48038804, 0x05ddf8f6, 0x0501f030, 0x0501fa9d, 0x05020007, 0x59c80040, 0x8400056a, 0x48039040, 0x59c80040, 0x8c00052a, 0x05fe07fe, 0x59c40005, 0x82000500, 0xc0000000, 0x05000006, 0x59c400a3, 0x84000540, 0x480388a3, 0x4a038805, - 0xc0000000, 0x05ddf940, 0x4a03a005, 0x30000000, + 0xc0000000, 0x05ddf8b4, 0x4a03a005, 0x30000000, 0x59d00006, 0x4a03a005, 0x30000000, 0x6401b006, 0x59d00005, 0x8c000504, 0x05fe07fe, 0x600008ec, 0x83180540, 0x60000000, 0x480008a1, 0x811800dc, 0x59c80840, 0x80040540, 0x48039040, 0x82000540, 0x00003000, 0x48039040, 0x59c80040, 0x82000500, - 0x00003000, 0x05fe07fd, 0x05ddf947, 0x83180400, - 0x001055cf, 0x50000000, 0x48038804, 0x80000580, + 0x00003000, 0x05fe07fd, 0x05ddf8bb, 0x83180400, + 0x0010565b, 0x50000000, 0x48038804, 0x80000580, 0x4df00000, 0x05fdfb3e, 0x5c03e000, 0x5c001000, 0x5c000800, 0x480b8808, 0x48079040, 0x1c01f000, 0x4803c856, 0x59b400f6, 0x90000538, 0x05fe07fe, @@ -5404,16 +5439,16 @@ static const uint32_t isp_2500_risc_code[] = { 0x604e7000, 0x59300004, 0x8c00050c, 0x00060905, 0x5c03e000, 0x05fc0d3e, 0x90000541, 0x1c01f000, 0x916c1581, 0x05fc07fb, 0x916c1584, 0x05fc07f9, - 0x42001000, 0x001035b3, 0x05fdf997, 0x5c03e000, + 0x42001000, 0x001035bf, 0x05fdf997, 0x5c03e000, 0x05fc0d33, 0x80000580, 0x1c01f000, 0x4d300000, 0x4d180000, 0x4d3c0000, 0x05fdfd41, 0x4df00000, 0x643da8e4, 0x643f78e4, 0x0501f9fd, 0x417a3000, 0x811808c8, 0x82040c00, 0x0000b037, 0x58066005, - 0x813261c0, 0x0500000b, 0x417a7800, 0x05f1ff94, + 0x813261c0, 0x0500000b, 0x417a7800, 0x05f1ff1b, 0x05000007, 0x59300c07, 0x90040583, 0x05000003, - 0x90040586, 0x05020002, 0x600a7800, 0x050df9a9, + 0x90040586, 0x05020002, 0x600a7800, 0x050df9b0, 0x811a3000, 0x91180485, 0x05fc17ee, 0x61000800, - 0x05ddfc4d, 0x642b78e4, 0x6429a8e4, 0x5c03e000, + 0x05ddfbbf, 0x642b78e4, 0x6429a8e4, 0x5c03e000, 0x05fc0d0f, 0x5c027800, 0x5c023000, 0x5c026000, 0x1c01f000, 0x4803c856, 0x4d300000, 0x05fdfd1c, 0x4df00000, 0x59c80840, 0x84040d74, 0x90040550, @@ -5445,8 +5480,8 @@ static const uint32_t isp_2500_risc_code[] = { 0x05fdfcb3, 0x4df00000, 0x59300004, 0x8c00053e, 0x05020006, 0x8c000520, 0x0500001e, 0x05fdfbdb, 0x0500001c, 0x0501f025, 0x598c000b, 0x81300580, - 0x0500000e, 0x050dfa18, 0x05020020, 0x0501f928, - 0x0500001e, 0x48038804, 0x0501f979, 0x05ddf80d, + 0x0500000e, 0x050dfa1f, 0x05020020, 0x0501f928, + 0x0500001e, 0x48038804, 0x0501f979, 0x05d9ff81, 0x05fdfbec, 0x61267000, 0x59300004, 0x8c00050c, 0x0502000b, 0x0501f00b, 0x59c40004, 0x8c000504, 0x05000012, 0x64138804, 0x05fdfbff, 0x604e7000, @@ -5456,17 +5491,17 @@ static const uint32_t isp_2500_risc_code[] = { 0x80000580, 0x1c01f000, 0x5c03e000, 0x05fc0c70, 0x5c027000, 0x5c01b000, 0x5c022800, 0x5c034800, 0x5c03a000, 0x5c032000, 0x90000541, 0x1c01f000, - 0x59300407, 0x90000583, 0x05020007, 0x050dfc29, + 0x59300407, 0x90000583, 0x05020007, 0x050dfc33, 0x05000005, 0x59301009, 0x58080409, 0x84000550, 0x48001409, 0x1c01f000, 0x4a01a8e5, 0x00000800, 0x05fdfc6f, 0x59c400af, 0x800001c0, 0x05020003, - 0x05fdfc57, 0x05ddf5a0, 0x598c000d, 0x90001482, + 0x05fdfc57, 0x05ddf512, 0x598c000d, 0x90001482, 0x05021006, 0x80000000, 0x4803180d, 0x80000580, 0x05fdf996, 0x0500000e, 0x05fdfefe, 0x0502000c, - 0x05fdffe4, 0x42000000, 0x00109811, 0x0519fbbe, + 0x05fdffe4, 0x42000000, 0x00109891, 0x0519fbfc, 0x05fdfdef, 0x05000006, 0x0501f92c, 0x4d380000, 0x60527000, 0x0005f905, 0x5c027000, 0x05fdfc40, - 0x05ddf589, 0x4d900000, 0x4dd00000, 0x4da40000, + 0x05ddf4fb, 0x4d900000, 0x4dd00000, 0x4da40000, 0x4d140000, 0x4cd80000, 0x4d300000, 0x05fdf9a8, 0x05fdfc4b, 0x59c400af, 0x800001c0, 0x05000022, 0x0501f91f, 0x59926005, 0x4933c857, 0x59300004, @@ -5474,55 +5509,55 @@ static const uint32_t isp_2500_risc_code[] = { 0x05fdfb8c, 0x05fdfc2a, 0x42000800, 0x80000804, 0x0005f872, 0x0501f014, 0x60c018ea, 0x0501f8de, 0x05020003, 0x05fdf96f, 0x0501f00f, 0x05fdfe9c, - 0x0502000d, 0x05fdffb7, 0x42000000, 0x00109812, - 0x0519fb91, 0x59300004, 0x8c00050c, 0x05020002, + 0x0502000d, 0x05fdffb7, 0x42000000, 0x00109892, + 0x0519fbcf, 0x59300004, 0x8c00050c, 0x05020002, 0x640e6203, 0x4d380000, 0x612a7000, 0x0005f905, 0x5c027000, 0x05fdfc12, 0x5c026000, 0x5c01b000, 0x5c022800, 0x5c034800, 0x5c03a000, 0x5c032000, - 0x05ddf555, 0x4c600000, 0x4d900000, 0x4dd00000, + 0x05ddf4c7, 0x4c600000, 0x4d900000, 0x4dd00000, 0x4da40000, 0x4d140000, 0x4cd80000, 0x4d300000, 0x4d2c0000, 0x05fdfc16, 0x0501f8ed, 0x59926005, - 0x813261c0, 0x05000040, 0x05f5fbbc, 0x05020005, - 0x4178c000, 0x0505f852, 0x05000002, 0x6004c000, - 0x05f5fbb6, 0x05020005, 0x8060c1c0, 0x05000003, - 0x0505f872, 0x0501f034, 0x05fdf952, 0x05020032, + 0x813261c0, 0x05000040, 0x05f5fb66, 0x05020005, + 0x4178c000, 0x0505f83e, 0x05000002, 0x6004c000, + 0x05f5fb60, 0x05020005, 0x8060c1c0, 0x05000003, + 0x0505f85e, 0x0501f034, 0x05fdf952, 0x05020032, 0x4933c857, 0x0501f88c, 0x05020015, 0x05fdf95c, 0x813261c0, 0x0500002c, 0x59325809, 0x812e59c0, - 0x05d40cae, 0x05f5fba5, 0x0502001c, 0x59c40093, + 0x05d40c22, 0x05f5fb4f, 0x0502001c, 0x59c40093, 0x4803c857, 0x800001c0, 0x05020009, 0x592c0209, - 0x84000550, 0x48025a09, 0x05f5fc95, 0x0502001e, + 0x84000550, 0x48025a09, 0x05f5fc3f, 0x0502001e, 0x592c0209, 0x84000510, 0x48025a09, 0x05fdf925, - 0x0501f019, 0x42000000, 0x00109812, 0x0519fb4a, + 0x0501f019, 0x42000000, 0x00109892, 0x0519fb88, 0x05fdfdb5, 0x592c0209, 0x84000550, 0x48025a09, 0x4d380000, 0x612a7000, 0x640e6203, 0x0005f905, 0x5c027000, 0x0501f00c, 0x59901007, 0x800811c0, 0x05fe07f1, 0x59c408af, 0x82040480, 0x000003e8, 0x05fe17ed, 0x80081000, 0x480b2007, 0x05fdf90d, - 0x05f1f832, 0x5c025800, 0x5c026000, 0x5c01b000, + 0x05edffb2, 0x5c025800, 0x5c026000, 0x5c01b000, 0x5c022800, 0x5c034800, 0x5c03a000, 0x5c032000, 0x5c00c000, 0x05fdf3b6, 0x4d300000, 0x4d2c0000, 0x05fdfbc7, 0x598e600b, 0x4933c857, 0x813261c0, 0x0500003e, 0x59c41004, 0x480bc857, 0x8c080500, - 0x05000007, 0x05f5fb69, 0x05020012, 0x05f5fc60, + 0x05000007, 0x05f5fb13, 0x05020012, 0x05f5fc0a, 0x05020036, 0x05fdf8ed, 0x0501f034, 0x82080500, 0x000001fe, 0x05fe07fc, 0x59c8010b, 0x4803c857, - 0x8c000500, 0x05fc07f8, 0x42000000, 0x0010985b, - 0x0519fb11, 0x05fdfe4b, 0x0500086d, 0x0501f027, + 0x8c000500, 0x05fc07f8, 0x42000000, 0x001098db, + 0x0519fb4f, 0x05fdfe4b, 0x0500086d, 0x0501f027, 0x598c000d, 0x80000540, 0x0502000e, 0x59c408af, 0x82040480, 0x000003e8, 0x0502100a, 0x598c080d, 0x80040800, 0x4807180d, 0x05fdf8d4, 0x42000000, - 0x00109750, 0x0519fb00, 0x05edfffc, 0x0501f017, - 0x42000000, 0x00109811, 0x0519fafb, 0x05fdfdbd, + 0x001097d0, 0x0519fb3e, 0x05edff7c, 0x0501f017, + 0x42000000, 0x00109891, 0x0519fb39, 0x05fdfdbd, 0x813261c0, 0x05020003, 0x0501f855, 0x0501f00f, 0x59300407, 0x90000583, 0x05020007, 0x59325809, 0x812e59c0, 0x05000004, 0x592c0209, 0x84000550, 0x48025a09, 0x0501f85d, 0x4d380000, 0x60527000, 0x0005f905, 0x5c027000, 0x5c025800, 0x5c026000, - 0x05fdf36f, 0x59c40804, 0x83180400, 0x001055c5, + 0x05fdf36f, 0x59c40804, 0x83180400, 0x00105651, 0x50000000, 0x80040500, 0x1c01f000, 0x59c40804, - 0x83180400, 0x001055ca, 0x50000000, 0x80040500, + 0x83180400, 0x00105656, 0x50000000, 0x80040500, 0x1c01f000, 0x59c80840, 0x82040d00, 0x000e0000, - 0x83180400, 0x001055d4, 0x50000000, 0x80040580, + 0x83180400, 0x00105660, 0x50000000, 0x80040580, 0x1c01f000, 0x00000210, 0x00000420, 0x00000840, 0x00001080, 0x00002100, 0x00004000, 0x00008000, 0x00010000, 0x00020000, 0x00040000, 0x00080000, @@ -5541,225 +5576,219 @@ static const uint32_t isp_2500_risc_code[] = { 0x64171800, 0x0501f002, 0x64031800, 0x5c03e000, 0x05fc0b1b, 0x1c01f000, 0x59300004, 0x8c00050c, 0x05020002, 0x64066203, 0x1c01f000, 0x91180485, - 0x05d61bda, 0x491bc857, 0x811b20c8, 0x83932400, + 0x05d61b4e, 0x491bc857, 0x811b20c8, 0x83932400, 0x0000b037, 0x8119b0c8, 0x82d9b400, 0x0000bf32, 0x811ba0ca, 0x83d3a400, 0x00007600, 0x83180400, - 0x0010561e, 0x50034800, 0x811a28c2, 0x83162c00, - 0x00006100, 0x1c01f000, 0x0010968b, 0x001096a2, - 0x001096b9, 0x001096d0, 0x001096e7, 0x4933c857, + 0x001056aa, 0x50034800, 0x811a28c2, 0x83162c00, + 0x00006100, 0x1c01f000, 0x0010970b, 0x00109722, + 0x00109739, 0x00109750, 0x00109767, 0x4933c857, 0x59300407, 0x90000c92, 0x05021015, 0x05011000, - 0x0c01f001, 0x0010563b, 0x001056cb, 0x001059e1, - 0x00105a35, 0x001056cb, 0x001059e1, 0x00105a35, - 0x0010563b, 0x001056cb, 0x0010563b, 0x0010563b, - 0x0010563b, 0x0010563b, 0x0010563b, 0x0010563b, - 0x0010563b, 0x0010563f, 0x0010563f, 0x4803c857, + 0x0c01f001, 0x001056c7, 0x00105756, 0x00105a59, + 0x00105aad, 0x00105756, 0x00105a59, 0x00105aad, + 0x001056c7, 0x00105756, 0x001056c7, 0x001056c7, + 0x001056c7, 0x001056c7, 0x001056c7, 0x001056c7, + 0x001056c7, 0x001056cb, 0x001056cb, 0x4803c857, 0x05fdfaf7, 0x05fdfa60, 0x05fdf2e1, 0x42001000, - 0x00109730, 0x50081000, 0x4930100b, 0x58080002, - 0x82000580, 0x00000100, 0x05020037, 0x59325809, - 0x812e59c0, 0x05d40b9d, 0x492fc856, 0x5932680a, - 0x813669c0, 0x0500001e, 0x592c040c, 0x82000500, - 0x0000e000, 0x05000003, 0x0501fb88, 0x0501f002, - 0x0501fb78, 0x592c000e, 0x90000503, 0x05000006, - 0x90000583, 0x80000000, 0x58d00802, 0x80040540, - 0x4801a002, 0x42001000, 0x00109730, 0x50081000, - 0x4930100a, 0x492c1009, 0x90d00406, 0x48001003, - 0x592c000e, 0x48001005, 0x592c000f, 0x48001006, - 0x592c0010, 0x48001007, 0x0001f01c, 0x42026800, - 0x001098be, 0x592c080b, 0x48066802, 0x82040500, - 0x00ffff00, 0x05000007, 0x497a6a12, 0x59a8100f, - 0x82081500, 0x00ffff00, 0x80080580, 0x05fe07d7, - 0x82040d00, 0x000000ff, 0x800408d0, 0x48066a12, - 0x05fdf7d2, 0x1c01f000, 0x4d2c0000, 0x4d300000, - 0x4c580000, 0x4c540000, 0x4c500000, 0x58325809, - 0x812e59c0, 0x05d40b61, 0x58300002, 0x82000580, - 0x00000100, 0x0502001e, 0x5830000a, 0x5832600b, - 0x81300d80, 0x0502000e, 0x0501f82c, 0x05020012, - 0x592c080e, 0x90040c03, 0x80040904, 0x4004b000, - 0x4200a000, 0x0010947b, 0x4050a800, 0x0519fb03, - 0x600011b8, 0x0501fe07, 0x0501f007, 0x4803c857, - 0x4933c857, 0x813261c0, 0x05000003, 0x0501f81b, - 0x05fc0f9f, 0x5c00a000, 0x5c00a800, 0x5c00b000, - 0x5c026000, 0x5c025800, 0x1c01f000, 0x5830000a, - 0x5832600b, 0x4a006002, 0x00000100, 0x4803c857, - 0x4933c857, 0x81300d80, 0x05fe07ed, 0x0501f80b, - 0x05fe07f1, 0x4803c857, 0x0201f800, 0x0010ba2e, - 0x80c40040, 0x05d60b31, 0x640a5a07, 0x0001fb2c, - 0x0501ff1d, 0x05fdf7e8, 0x05fdfa79, 0x4df00000, - 0x598c000b, 0x81300580, 0x05020008, 0x598c0003, - 0x81300580, 0x05020005, 0x5c03e000, 0x05fc0a5c, - 0x80000580, 0x1c01f000, 0x4803c857, 0x5c03e000, - 0x05fc0a57, 0x90000541, 0x1c01f000, 0x59300403, - 0xb0000c98, 0x05d61b19, 0x4803c857, 0x0c01f001, - 0x00105817, 0x0010582f, 0x00105851, 0x00105954, - 0x0010590e, 0x00105912, 0x0010591e, 0x0010592e, - 0x00105924, 0x0010592e, 0x00105974, 0x0010592e, - 0x001059ae, 0x0010592e, 0x001059b9, 0x0010592e, - 0x00105924, 0x0010592e, 0x001059bd, 0x00105730, - 0x00105730, 0x00105730, 0x00105730, 0x00105730, - 0x00105730, 0x00105730, 0x00105730, 0x00105730, - 0x00105730, 0x00105730, 0x00105a4e, 0x00105a62, - 0x00105a6a, 0x00105730, 0x00105a81, 0x0010591e, - 0x00105730, 0x0010591e, 0x0010592e, 0x00105730, - 0x00105851, 0x00105954, 0x00105730, 0x00105ac9, - 0x0010592e, 0x00105730, 0x00105ad7, 0x0010592e, - 0x00105730, 0x00105924, 0x0010580a, 0x00105731, - 0x00105730, 0x00105aec, 0x00105b1d, 0x00105b94, - 0x00105730, 0x00105ba2, 0x0010591c, 0x00105b97, - 0x00105730, 0x00105a8b, 0x00105bd7, 0x00105730, - 0x00105730, 0x00105730, 0x00105730, 0x00105744, - 0x001057a5, 0x001057af, 0x00105730, 0x00105730, - 0x00105730, 0x001057e0, 0x001057e8, 0x00105730, - 0x00105730, 0x00105755, 0x0010577f, 0x00105c07, - 0x00105c3c, 0x00105c5c, 0x00105730, 0x00105730, - 0x00105730, 0x00105c32, 0x00105bb9, 0x00105aec, - 0x00105730, 0x00105730, 0x00105730, 0x00105730, - 0x00105730, 0x00105730, 0x00105730, 0x00105730, - 0x05d5fab6, 0x0501fa9b, 0x59325809, 0x592c000a, - 0x4801a006, 0x592c000b, 0x4801a007, 0x592c000c, - 0x4801a008, 0x592c000d, 0x4801a009, 0x592c000e, - 0x4801a00a, 0x4979a00b, 0x592c080a, 0x82040d00, - 0x00000fff, 0x80040904, 0x600011b8, 0x0501f55d, - 0x4a026202, 0x0000ffff, 0x0501fa86, 0x4d2c0000, - 0x4a01a006, 0x05000000, 0x59325809, 0x592c000a, - 0x4801a007, 0x592c000b, 0x4801a008, 0x592c000c, - 0x4801a009, 0x5c025800, 0x60100800, 0x600011b8, - 0x0501f54c, 0x4c580000, 0x4c500000, 0x4c540000, - 0x4d2c0000, 0x0501fa73, 0x5930040c, 0x90000503, + 0x001097b0, 0x50081000, 0x4930100b, 0x58080002, + 0x82000580, 0x00000100, 0x05020036, 0x59325809, + 0x812e59c0, 0x05d40b11, 0x492fc856, 0x5932680a, + 0x83340580, 0x0010993e, 0x0500001e, 0x592c040c, + 0x82000500, 0x0000e000, 0x05000003, 0x0501fb73, + 0x0501f002, 0x0501fb63, 0x592c000e, 0x90000503, 0x05000006, 0x90000583, 0x80000000, 0x58d00802, - 0x80040540, 0x4801a002, 0x59325809, 0x4200a800, - 0x0010947b, 0x592cb206, 0x9058b403, 0x8058b104, - 0x912ca407, 0x0519f9f6, 0x40580000, 0x8054ac00, - 0x592c0001, 0x80000540, 0x05000003, 0x40025800, - 0x05fdf7f5, 0x4200a000, 0x0010947b, 0x4050a800, - 0x5930b40c, 0x9058b403, 0x8058b104, 0x40580800, - 0x0519fa22, 0x600011b8, 0x5c025800, 0x5c00a800, - 0x5c00a000, 0x5c00b000, 0x0501f522, 0x4c580000, - 0x4c500000, 0x4c540000, 0x4d2c0000, 0x42034800, - 0x00109474, 0x0501fa55, 0x59325809, 0x592c0802, - 0x4807c857, 0x40041000, 0x80040904, 0x90081503, - 0x05000007, 0x80040800, 0x90081583, 0x80081000, - 0x58d00002, 0x80080540, 0x4801a002, 0x4a025806, - 0x02000000, 0x90d0ac06, 0x592cb011, 0x912ca406, - 0x0519f9c7, 0x40580000, 0x8054ac00, 0x592e5801, - 0x41780000, 0x812e5d40, 0x05fe07f8, 0x600011b8, - 0x5c025800, 0x5c00a800, 0x5c00a000, 0x5c00b000, - 0x0501f4fc, 0x0501fa27, 0x4a01a006, 0x78000000, - 0x5930001e, 0x840001c0, 0x4801a407, 0x4979a207, - 0x60080800, 0x600011b8, 0x0501f4f2, 0x4c580000, - 0x4c540000, 0x4c500000, 0x0501fa28, 0x4a01a006, - 0x02000000, 0x59a80002, 0x4801a008, 0x59a80003, + 0x80040540, 0x4801a002, 0x42001000, 0x001097b0, + 0x50081000, 0x4930100a, 0x492c1009, 0x90d00406, + 0x48001003, 0x592c000e, 0x48001005, 0x592c000f, + 0x48001006, 0x592c0010, 0x48001007, 0x0001f01c, + 0x592c080b, 0x48066802, 0x82040500, 0x00ffff00, + 0x05000007, 0x497a6a12, 0x59a8100f, 0x82081500, + 0x00ffff00, 0x80080580, 0x05fe07d9, 0x82040d00, + 0x000000ff, 0x800408d0, 0x48066a12, 0x05fdf7d4, + 0x1c01f000, 0x4d2c0000, 0x4d300000, 0x4c580000, + 0x4c540000, 0x4c500000, 0x58325809, 0x812e59c0, + 0x05d40ad6, 0x58300002, 0x82000580, 0x00000100, + 0x0502001e, 0x5830000a, 0x5832600b, 0x81300d80, + 0x0502000e, 0x0501f82c, 0x05020012, 0x592c080e, + 0x90040c03, 0x80040904, 0x4004b000, 0x4200a000, + 0x001094fb, 0x4050a800, 0x0519fb42, 0x600011b8, + 0x0501fdf4, 0x0501f007, 0x4803c857, 0x4933c857, + 0x813261c0, 0x05000003, 0x0501f81b, 0x05fc0fa0, + 0x5c00a000, 0x5c00a800, 0x5c00b000, 0x5c026000, + 0x5c025800, 0x1c01f000, 0x5830000a, 0x5832600b, + 0x4a006002, 0x00000100, 0x4803c857, 0x4933c857, + 0x81300d80, 0x05fe07ed, 0x0501f80b, 0x05fe07f1, + 0x4803c857, 0x0201f800, 0x0010ba3e, 0x80c40040, + 0x05d60aa6, 0x640a5a07, 0x0001fb2c, 0x0501ff0a, + 0x05fdf7e8, 0x05fdfa7a, 0x4df00000, 0x598c000b, + 0x81300580, 0x05020008, 0x598c0003, 0x81300580, + 0x05020005, 0x5c03e000, 0x05fc0a5d, 0x80000580, + 0x1c01f000, 0x4803c857, 0x5c03e000, 0x05fc0a58, + 0x90000541, 0x1c01f000, 0x59300403, 0xb0000c98, + 0x05d61a8e, 0x83340d80, 0x0010993e, 0x0502000a, + 0x59300820, 0x48066802, 0x82041500, 0x00ffff00, + 0x05020004, 0x800408d0, 0x48066a12, 0x0501f002, + 0x497a6a12, 0x4803c857, 0x0c01f001, 0x001058ae, + 0x001058c6, 0x001058d4, 0x001059c4, 0x00105991, + 0x00105995, 0x001059a1, 0x001059b1, 0x001059a7, + 0x001059b1, 0x001059e8, 0x001059b1, 0x00105a26, + 0x001059b1, 0x00105a31, 0x001059b1, 0x001059a7, + 0x001059b1, 0x00105a35, 0x001057c7, 0x001057c7, + 0x001057c7, 0x001057c7, 0x001057c7, 0x001057c7, + 0x001057c7, 0x001057c7, 0x001057c7, 0x001057c7, + 0x001057c7, 0x00105ac6, 0x00105ada, 0x00105ae2, + 0x001057c7, 0x00105af9, 0x001059a1, 0x001057c7, + 0x001059a1, 0x001059b1, 0x001057c7, 0x001058d4, + 0x001059c4, 0x001057c7, 0x00105b41, 0x001059b1, + 0x001057c7, 0x00105b4f, 0x001059b1, 0x001057c7, + 0x001059a7, 0x001058a1, 0x001057c8, 0x001057c7, + 0x00105b64, 0x00105b95, 0x00105c0c, 0x001057c7, + 0x00105c1a, 0x0010599f, 0x00105c0f, 0x001057c7, + 0x00105b03, 0x00105c4f, 0x001057c7, 0x001057c7, + 0x001057c7, 0x001057c7, 0x001057db, 0x0010583c, + 0x00105846, 0x001057c7, 0x001057c7, 0x001057c7, + 0x00105877, 0x0010587f, 0x001057c7, 0x001057c7, + 0x001057ec, 0x00105816, 0x00105c7f, 0x00105cb4, + 0x00105cd4, 0x001057c7, 0x001057c7, 0x001057c7, + 0x00105caa, 0x00105c31, 0x00105b64, 0x001057c7, + 0x001057c7, 0x001057c7, 0x001057c7, 0x001057c7, + 0x001057c7, 0x001057c7, 0x001057c7, 0x05d5fa1f, + 0x0501fa7c, 0x59325809, 0x592c000a, 0x4801a006, + 0x592c000b, 0x4801a007, 0x592c000c, 0x4801a008, + 0x592c000d, 0x4801a009, 0x592c000e, 0x4801a00a, + 0x4979a00b, 0x592c080a, 0x82040d00, 0x00000fff, + 0x80040904, 0x600011b8, 0x0501f53e, 0x4a026202, + 0x0000ffff, 0x0501fa67, 0x4d2c0000, 0x4a01a006, + 0x05000000, 0x59325809, 0x592c000a, 0x4801a007, + 0x592c000b, 0x4801a008, 0x592c000c, 0x4801a009, + 0x5c025800, 0x60100800, 0x600011b8, 0x0501f52d, + 0x4c580000, 0x4c500000, 0x4c540000, 0x4d2c0000, + 0x0501fa54, 0x5930040c, 0x90000503, 0x05000006, + 0x90000583, 0x80000000, 0x58d00802, 0x80040540, + 0x4801a002, 0x59325809, 0x4200a800, 0x001094fb, + 0x592cb206, 0x9058b403, 0x8058b104, 0x912ca407, + 0x0519fa29, 0x40580000, 0x8054ac00, 0x592c0001, + 0x80000540, 0x05000003, 0x40025800, 0x05fdf7f5, + 0x4200a000, 0x001094fb, 0x4050a800, 0x5930b40c, + 0x9058b403, 0x8058b104, 0x40580800, 0x0519fa55, + 0x600011b8, 0x5c025800, 0x5c00a800, 0x5c00a000, + 0x5c00b000, 0x0501f503, 0x4c580000, 0x4c500000, + 0x4c540000, 0x4d2c0000, 0x42034800, 0x001094f4, + 0x0501fa36, 0x59325809, 0x592c0802, 0x4807c857, + 0x40041000, 0x80040904, 0x90081503, 0x05000007, + 0x80040800, 0x90081583, 0x80081000, 0x58d00002, + 0x80080540, 0x4801a002, 0x4a025806, 0x02000000, + 0x90d0ac06, 0x592cb011, 0x912ca406, 0x0519f9fa, + 0x40580000, 0x8054ac00, 0x592e5801, 0x41780000, + 0x812e5d40, 0x05fe07f8, 0x600011b8, 0x5c025800, + 0x5c00a800, 0x5c00a000, 0x5c00b000, 0x0501f4dd, + 0x0501fa08, 0x4a01a006, 0x78000000, 0x5930001e, + 0x840001c0, 0x4801a407, 0x4979a207, 0x60080800, + 0x600011b8, 0x0501f4d3, 0x4c580000, 0x4c540000, + 0x4c500000, 0x0501fa09, 0x4a01a006, 0x02000000, + 0x59a80002, 0x4801a008, 0x59a80003, 0x4801a009, + 0x59a80000, 0x4801a00a, 0x59a80001, 0x4801a00b, + 0x5930001e, 0x82000d80, 0x0000e000, 0x0500000e, + 0x82000d80, 0x0000df00, 0x05000004, 0x6441a407, + 0x60180800, 0x0501f015, 0x42001800, 0x001094d7, + 0x05d5fcae, 0x600001be, 0x4200a000, 0x001094d7, + 0x0501f007, 0x42001800, 0x001094e4, 0x05d5fca7, + 0x600001c0, 0x4200a000, 0x001094e4, 0x90000550, + 0x4801a407, 0x64d1a207, 0x6034b000, 0x90d0ac0c, + 0x0519f9b9, 0x604c0800, 0x600011b8, 0x5c00a000, + 0x5c00a800, 0x5c00b000, 0x0501f4a2, 0x0501f9cd, + 0x4a01a006, 0x63000028, 0x5930001e, 0x4801a007, + 0x60080800, 0x600011b8, 0x0501f49a, 0x0501f9d3, + 0x41780000, 0x41780800, 0x42002000, 0x00080000, + 0x0c01f80e, 0x80000000, 0x80040800, 0x60301000, + 0x82080540, 0x02000000, 0x4801a006, 0x800408e0, + 0x5930001e, 0x80040540, 0x4801a007, 0x80080904, + 0x600011b8, 0x0501f487, 0x00105897, 0x00105899, + 0x0010589b, 0x0010589d, 0x0010589f, 0x4811a008, + 0x1c01f000, 0x4811a009, 0x1c01f000, 0x4811a00a, + 0x1c01f000, 0x4811a00b, 0x1c01f000, 0x4811a00c, + 0x1c01f000, 0x4a02600a, 0x0010993e, 0x59a8000f, + 0x82000500, 0x000000ff, 0x800000d0, 0x42026800, + 0x0010993e, 0x48026a12, 0x0501f9f7, 0x41780800, + 0x600010b8, 0x0501f46b, 0x0501f996, 0x4a01a006, + 0x52000000, 0x4979a007, 0x599c0017, 0x82000500, + 0x00000801, 0x05000004, 0x599c0402, 0x05ddfa74, + 0x4805a007, 0x59a80002, 0x4801a008, 0x59a80003, 0x4801a009, 0x59a80000, 0x4801a00a, 0x59a80001, - 0x4801a00b, 0x5930001e, 0x82000d80, 0x0000e000, - 0x0500000e, 0x82000d80, 0x0000df00, 0x05000004, - 0x6441a407, 0x60180800, 0x0501f015, 0x42001800, - 0x00109457, 0x05d5fd45, 0x600001be, 0x4200a000, - 0x00109457, 0x0501f007, 0x42001800, 0x00109464, - 0x05d5fd3e, 0x600001c0, 0x4200a000, 0x00109464, - 0x90000550, 0x4801a407, 0x64d1a207, 0x6034b000, - 0x90d0ac0c, 0x0519f986, 0x604c0800, 0x600011b8, - 0x5c00a000, 0x5c00a800, 0x5c00b000, 0x0501f4c1, - 0x0501f9ec, 0x4a01a006, 0x63000028, 0x5930001e, - 0x4801a007, 0x60080800, 0x600011b8, 0x0501f4b9, - 0x0501f9f2, 0x41780000, 0x41780800, 0x42002000, - 0x00080000, 0x0c01f80e, 0x80000000, 0x80040800, - 0x60301000, 0x82080540, 0x02000000, 0x4801a006, - 0x800408e0, 0x5930001e, 0x80040540, 0x4801a007, - 0x80080904, 0x600011b8, 0x0501f4a6, 0x00105800, - 0x00105802, 0x00105804, 0x00105806, 0x00105808, - 0x4811a008, 0x1c01f000, 0x4811a009, 0x1c01f000, - 0x4811a00a, 0x1c01f000, 0x4811a00b, 0x1c01f000, - 0x4811a00c, 0x1c01f000, 0x4a02600a, 0x001098be, - 0x59a8000f, 0x82000500, 0x000000ff, 0x800000d0, - 0x42026800, 0x001098be, 0x48026a12, 0x0501fa16, - 0x41780800, 0x600010b8, 0x0501f48a, 0x0501f9b5, - 0x4a01a006, 0x52000000, 0x4979a007, 0x599c0017, - 0x82000500, 0x00000801, 0x05000004, 0x599c0402, - 0x05ddfb0d, 0x4805a007, 0x59a80002, 0x4801a008, - 0x59a80003, 0x4801a009, 0x59a80000, 0x4801a00a, - 0x59a80001, 0x4801a00b, 0x59a8000f, 0x4801a00c, - 0x601c0800, 0x600011b8, 0x0501f472, 0x4a026202, - 0x0000ffff, 0x4d340000, 0x813669c0, 0x05020011, - 0x42026800, 0x001098be, 0x4936600a, 0x4a026c03, - 0x0000ffff, 0x497a6a00, 0x59300020, 0x48026802, - 0x497a6020, 0x497a6a12, 0x82000d00, 0x00ffff00, - 0x05020004, 0x800000d0, 0x48026a12, 0x0501f001, - 0x0501f988, 0x5c026800, 0x4a01a006, 0x05000000, - 0x59a8000f, 0x4801a007, 0x59a80002, 0x59a80803, - 0x4801a008, 0x4805a009, 0x60100800, 0x600011b8, - 0x0501f450, 0x4a026202, 0x0000ffff, 0x0501f979, - 0x4d3c0000, 0x417a7800, 0x05f1fb63, 0x5c027800, - 0x4a01a006, 0x03000000, 0x59340403, 0x82000580, - 0x000007fe, 0x0502006a, 0x4a01a006, 0x04000000, - 0x81a40800, 0x4a000800, 0x22fffffe, 0x5934000a, - 0x84000500, 0x4802680a, 0x59a8021b, 0x8c000508, - 0x05000010, 0x59a8001f, 0x4801a007, 0x59a80020, - 0x82000500, 0x07deffff, 0x599c0818, 0x8c040516, - 0x05000002, 0x8400056a, 0x4801a008, 0x4a01a009, - 0x00002710, 0x59a80022, 0x4801a00a, 0x0501f038, - 0x59a8001f, 0x59a8121b, 0x8c080506, 0x05000003, - 0x82000500, 0xffff0000, 0x4801a007, 0x05f5f85f, - 0x0502000b, 0x59300c03, 0xb0041591, 0x05000008, - 0x497b8880, 0x82000500, 0x0000ffff, 0x4c000000, - 0x05ddfac7, 0x5c000000, 0x48038880, 0x59a80020, - 0x05f5f852, 0x05020004, 0x82000500, 0x37ffffff, - 0x0501f003, 0x82000500, 0x3fffffff, 0x599c0818, - 0x8c040516, 0x05000002, 0x8400056a, 0x8d0c0510, - 0x05000014, 0x59300c03, 0xb0041591, 0x05000011, - 0x900415b1, 0x0500000f, 0x4c580000, 0x4c500000, - 0x4c540000, 0x6010b000, 0x4200a000, 0x001098ac, - 0x90d0ac1f, 0x4c000000, 0x0519f8b9, 0x5c000000, - 0x5c00a800, 0x5c00a000, 0x5c00b000, 0x8400057a, - 0x4801a008, 0x4979a009, 0x4979a00a, 0x59a80002, - 0x59a80803, 0x4801a00b, 0x4805a00c, 0x59a80000, - 0x59a80801, 0x4801a00d, 0x4805a00e, 0x4979a00f, - 0x4979a010, 0x4979a011, 0x4979a012, 0x4979a013, - 0x4979a014, 0x4979a015, 0x4979a016, 0x59a80023, - 0x84000576, 0x4801a017, 0x59a80024, 0x4801a018, - 0x4979a019, 0x4979a01a, 0x0501f045, 0x59a8021b, - 0x8c000508, 0x0500000c, 0x59a8001f, 0x82000500, - 0x0000ffff, 0x59c40880, 0x80040d80, 0x05000006, - 0x497b8880, 0x4c000000, 0x05ddfa7d, 0x5c000000, - 0x48038880, 0x59a8001f, 0x4801a007, 0x4c640000, - 0x4d2c0000, 0x59a8c820, 0x050df80a, 0x0500000d, - 0x050dfcba, 0x0502000b, 0x592c0208, 0x8c00050e, - 0x05000008, 0x8264cd00, 0x0000ffff, 0x592c000a, - 0x82000500, 0xffff0000, 0x8064cd40, 0x0501f005, - 0x59a80a1b, 0x90040d30, 0x05000002, 0x8464cd36, - 0x4865a008, 0x5c025800, 0x5c00c800, 0x59a80021, - 0x4801a009, 0x59a80022, 0x4801a00a, 0x59a80002, - 0x59a80803, 0x4801a00b, 0x4805a00c, 0x59a80000, - 0x59a80801, 0x4801a00d, 0x4805a00e, 0x4979a00f, - 0x4979a010, 0x4979a011, 0x4979a012, 0x4979a013, - 0x4979a014, 0x4979a015, 0x4979a016, 0x59a80023, - 0x4801a017, 0x59a80024, 0x4801a018, 0x59a80025, - 0x4801a019, 0x59a80026, 0x4801a01a, 0x60740800, - 0x600011b8, 0x0501f393, 0x0501f8be, 0x4a01a006, - 0x50000000, 0x05fdf7b6, 0x0501f8ba, 0x4a01a006, - 0x21100014, 0x4979a007, 0x4979a008, 0x4979a009, - 0x4979a00a, 0x60140800, 0x600011b8, 0x0501f385, - 0x0501f8b7, 0x0501f002, 0x0501f8bc, 0x4a01a006, - 0x02000000, 0x60040800, 0x600011b8, 0x0501f37d, - 0x0501f8b6, 0x4a01a006, 0x02000000, 0x59300403, - 0x900005b1, 0x05fe079e, 0x81a40800, 0x4a000801, - 0x00fffffe, 0x05fdf739, 0x4d340000, 0x813669c0, - 0x05020010, 0x42026800, 0x001098be, 0x4936600a, - 0x4a026c03, 0x0000ffff, 0x497a6a00, 0x59300020, - 0x48026802, 0x497a6020, 0x497a6a12, 0x82000d00, - 0x00ffff00, 0x05020003, 0x800000d0, 0x48026a12, - 0x0501f89a, 0x5c026800, 0x4a01a006, 0x01000000, + 0x4801a00b, 0x59a8000f, 0x4801a00c, 0x601c0800, + 0x600011b8, 0x0501f453, 0x4a026202, 0x0000ffff, + 0x0501f97c, 0x4a01a006, 0x05000000, 0x59a8000f, + 0x4801a007, 0x59a80002, 0x59a80803, 0x4801a008, + 0x4805a009, 0x60100800, 0x600011b8, 0x0501f445, + 0x4a026202, 0x0000ffff, 0x0501f96e, 0x4d3c0000, + 0x417a7800, 0x05f1faf3, 0x5c027800, 0x4a01a006, + 0x03000000, 0x59340403, 0x82000580, 0x000007fe, + 0x0502006a, 0x4a01a006, 0x04000000, 0x81a40800, + 0x4a000800, 0x22fffffe, 0x5934000a, 0x84000500, + 0x4802680a, 0x59a8021b, 0x8c000508, 0x05000010, + 0x59a8001f, 0x4801a007, 0x59a80020, 0x82000500, + 0x07deffff, 0x599c0818, 0x8c040516, 0x05000002, + 0x8400056a, 0x4801a008, 0x4a01a009, 0x00002710, + 0x59a80022, 0x4801a00a, 0x0501f038, 0x59a8001f, + 0x59a8121b, 0x8c080506, 0x05000003, 0x82000500, + 0xffff0000, 0x4801a007, 0x05f5f812, 0x0502000b, + 0x59300c03, 0xb0041591, 0x05000008, 0x497b8880, + 0x82000500, 0x0000ffff, 0x4c000000, 0x05ddfa42, + 0x5c000000, 0x48038880, 0x59a80020, 0x05f5f805, + 0x05020004, 0x82000500, 0x37ffffff, 0x0501f003, + 0x82000500, 0x3fffffff, 0x599c0818, 0x8c040516, + 0x05000002, 0x8400056a, 0x8d0c0510, 0x05000014, + 0x59300c03, 0xb0041591, 0x05000011, 0x900415b1, + 0x0500000f, 0x4c580000, 0x4c500000, 0x4c540000, + 0x6010b000, 0x4200a000, 0x0010992c, 0x90d0ac1f, + 0x4c000000, 0x0519f900, 0x5c000000, 0x5c00a800, + 0x5c00a000, 0x5c00b000, 0x8400057a, 0x4801a008, + 0x4979a009, 0x4979a00a, 0x59a80002, 0x59a80803, + 0x4801a00b, 0x4805a00c, 0x59a80000, 0x59a80801, + 0x4801a00d, 0x4805a00e, 0x4979a00f, 0x4979a010, + 0x4979a011, 0x4979a012, 0x4979a013, 0x4979a014, + 0x4979a015, 0x4979a016, 0x59a80023, 0x84000576, + 0x4801a017, 0x59a80024, 0x4801a018, 0x4979a019, + 0x4979a01a, 0x0501f045, 0x59a8021b, 0x8c000508, + 0x0500000c, 0x59a8001f, 0x82000500, 0x0000ffff, + 0x59c40880, 0x80040d80, 0x05000006, 0x497b8880, + 0x4c000000, 0x05ddf9f8, 0x5c000000, 0x48038880, + 0x59a8001f, 0x4801a007, 0x4c640000, 0x4d2c0000, + 0x59a8c820, 0x050df81d, 0x0500000d, 0x050dfccd, + 0x0502000b, 0x592c0208, 0x8c00050e, 0x05000008, + 0x8264cd00, 0x0000ffff, 0x592c000a, 0x82000500, + 0xffff0000, 0x8064cd40, 0x0501f005, 0x59a80a1b, + 0x90040d30, 0x05000002, 0x8464cd36, 0x4865a008, + 0x5c025800, 0x5c00c800, 0x59a80021, 0x4801a009, + 0x59a80022, 0x4801a00a, 0x59a80002, 0x59a80803, + 0x4801a00b, 0x4805a00c, 0x59a80000, 0x59a80801, + 0x4801a00d, 0x4805a00e, 0x4979a00f, 0x4979a010, + 0x4979a011, 0x4979a012, 0x4979a013, 0x4979a014, + 0x4979a015, 0x4979a016, 0x59a80023, 0x4801a017, + 0x59a80024, 0x4801a018, 0x59a80025, 0x4801a019, + 0x59a80026, 0x4801a01a, 0x60740800, 0x600011b8, + 0x0501f388, 0x0501f8b3, 0x4a01a006, 0x50000000, + 0x05fdf7b6, 0x0501f8af, 0x4a01a006, 0x21100014, + 0x4979a007, 0x4979a008, 0x4979a009, 0x4979a00a, + 0x60140800, 0x600011b8, 0x0501f37a, 0x0501f8ac, + 0x0501f002, 0x0501f8b1, 0x4a01a006, 0x02000000, + 0x60040800, 0x600011b8, 0x0501f372, 0x0501f8ab, + 0x4a01a006, 0x02000000, 0x59300403, 0x900005b1, + 0x05fe079e, 0x81a40800, 0x4a000801, 0x00fffffe, + 0x05fdf739, 0x0501f8a1, 0x4a01a006, 0x01000000, 0x5930041c, 0x80000540, 0x05000003, 0x4801a407, 0x0501f002, 0x640da407, 0x5930021c, 0x80000540, 0x05000003, 0x4801a207, 0x0501f003, 0x4a01a207, - 0x00002a00, 0x60080800, 0x600011b8, 0x0501f34d, - 0x4a026202, 0x0000ffff, 0x0501f876, 0x4a01a406, + 0x00002a00, 0x60080800, 0x600011b8, 0x0501f355, + 0x4a026202, 0x0000ffff, 0x0501f87e, 0x4a01a406, 0x00002010, 0x6451a206, 0x4a01a407, 0x00000800, - 0x4a01a207, 0x00002000, 0x60000008, 0x599c0817, + 0x4a01a207, 0x00002000, 0x60000008, 0x59a80807, + 0x8c04050c, 0x05000002, 0x80000580, 0x599c0817, 0x8c04050a, 0x05020002, 0x90000560, 0x8c040508, 0x05000002, 0x90000550, 0x90000542, 0x5934080a, 0x8c040514, 0x05000005, 0x82040d00, 0x00000380, 0x80040540, 0x0501f006, 0x599c0818, 0x8c040518, - 0x05000003, 0x82000540, 0x00000380, 0x0501f037, - 0x0501f866, 0x4a01a406, 0x00000210, 0x6451a206, + 0x05000003, 0x82000540, 0x00000380, 0x0501f03b, + 0x0501f86a, 0x4a01a406, 0x00000210, 0x6451a206, 0x4a01a407, 0x00000800, 0x5934000a, 0x8c000516, 0x05000013, 0x59340c05, 0x90040530, 0x05000013, 0x59340a05, 0x82040500, 0x0000c000, 0x05020009, @@ -5767,7 +5796,8 @@ static const uint32_t isp_2500_risc_code[] = { 0x0501f00c, 0x4a01a207, 0x00000100, 0x0501f009, 0x4a01a207, 0x00000400, 0x0501f006, 0x4a01a207, 0x00000700, 0x0501f003, 0x4a01a207, 0x00000800, - 0x60000008, 0x599c0817, 0x8c04050a, 0x05020002, + 0x60000008, 0x59a80807, 0x8c04050c, 0x05000002, + 0x80000580, 0x599c0817, 0x8c04050a, 0x05020002, 0x90000560, 0x8c040508, 0x05000002, 0x90000550, 0x90000542, 0x59340a00, 0x8c04050e, 0x0500000b, 0x84000550, 0x599c1017, 0x8c08050a, 0x05020004, @@ -5777,7 +5807,7 @@ static const uint32_t isp_2500_risc_code[] = { 0x02100014, 0x4a01a007, 0x00000100, 0x4979a008, 0x4979a009, 0x4979a00a, 0x60140800, 0x600011b8, 0x0501f2e8, 0x0501f821, 0x4a01a006, 0x02000000, - 0x05fdf65e, 0x4933c857, 0x0501f81c, 0x4a01a006, + 0x05fdf67d, 0x4933c857, 0x0501f81c, 0x4a01a006, 0x01000000, 0x642da407, 0x60080800, 0x600011b8, 0x0501f2dc, 0x42005000, 0x32000000, 0x42006000, 0x08290000, 0x41786800, 0x41787800, 0x0501f2b1, @@ -5787,31 +5817,31 @@ static const uint32_t isp_2500_risc_code[] = { 0x41787800, 0x0501f2a3, 0x42005000, 0x23000000, 0x42006000, 0x01980000, 0x41786800, 0x41787800, 0x0501f29c, 0x59300403, 0x82000c80, 0x00000085, - 0x05d41802, 0x82000c80, 0x00000093, 0x05d21fff, - 0x82000480, 0x00000085, 0x0c01f001, 0x001059fa, - 0x001059f9, 0x001059f9, 0x001059f9, 0x001059f9, - 0x001059f9, 0x001059fa, 0x001059f9, 0x001059f9, - 0x001059f9, 0x001059f9, 0x001059f9, 0x001059f9, - 0x00105a01, 0x05d1ffed, 0x4933c857, 0x42034800, - 0x00109474, 0x0501f82c, 0x41780800, 0x600010b8, + 0x05d01f8a, 0x82000c80, 0x00000093, 0x05d21f87, + 0x82000480, 0x00000085, 0x0c01f001, 0x00105a72, + 0x00105a71, 0x00105a71, 0x00105a71, 0x00105a71, + 0x00105a71, 0x00105a72, 0x00105a71, 0x00105a71, + 0x00105a71, 0x00105a71, 0x00105a71, 0x00105a71, + 0x00105a79, 0x05d1ff75, 0x4933c857, 0x42034800, + 0x001094f4, 0x0501f82c, 0x41780800, 0x600010b8, 0x0501f2a0, 0x4d2c0000, 0x59325809, 0x4933c857, - 0x492fc857, 0x812e59c0, 0x05d00fe0, 0x59340a12, + 0x492fc857, 0x812e59c0, 0x05d00f68, 0x59340a12, 0x82040d00, 0x0000ff00, 0x592c000b, 0x82000500, 0x000000ff, 0x900001c0, 0x80040540, 0x90000551, 0x44034800, 0x81a5a000, 0x60241000, 0x600c0800, 0x592c000a, 0x82000500, 0xff000000, 0x82001d80, 0x84000000, 0x05000006, 0x82001d80, 0x85000000, - 0x05d20fca, 0x601c1000, 0x60040800, 0x912c1c0a, + 0x05d20f52, 0x601c1000, 0x60040800, 0x912c1c0a, 0x500c0000, 0x4401a000, 0x800c1800, 0x80d1a000, 0x80081040, 0x05fe07fb, 0x600011b8, 0x5c025800, 0x0501f278, 0x42005000, 0x81000000, 0x42006000, 0x00090000, 0x41786800, 0x41787800, 0x59301407, 0x90081585, 0x05020003, 0x42006000, 0x00890000, - 0x0501f248, 0x59300403, 0xb0000c93, 0x05d21faf, - 0xb000048b, 0x05d01fad, 0x5932680a, 0x59368c03, - 0x4803c857, 0x0c01f001, 0x00105aa2, 0x00105aaa, - 0x00105ab2, 0x00105aba, 0x00105a46, 0x00105a46, - 0x00105a46, 0x00105a9a, 0x05d1ffa0, 0x42005000, + 0x0501f248, 0x59300403, 0xb0000c93, 0x05d21f37, + 0xb000048b, 0x05d01f35, 0x5932680a, 0x59368c03, + 0x4803c857, 0x0c01f001, 0x00105b1a, 0x00105b22, + 0x00105b2a, 0x00105b32, 0x00105abe, 0x00105abe, + 0x00105abe, 0x00105b12, 0x05d1ff28, 0x42005000, 0x06000000, 0x42006000, 0x08290000, 0x41786800, 0x41787800, 0x0501f22f, 0x4933c857, 0x05fdff7d, 0x4a01a006, 0x12000000, 0x59300407, 0x90000584, @@ -5830,7 +5860,7 @@ static const uint32_t isp_2500_risc_code[] = { 0x4a01a006, 0x62000000, 0x5930001e, 0x4801a007, 0x60080800, 0x600011b8, 0x0501f216, 0x05fdff41, 0x59300809, 0x4c500000, 0x4c540000, 0x4c580000, - 0x9004a40b, 0x5930b01e, 0x90d0ac06, 0x0515fecc, + 0x9004a40b, 0x5930b01e, 0x90d0ac06, 0x0515ff1e, 0x5930081e, 0x600011b8, 0x5c00b000, 0x5c00a800, 0x5c00a000, 0x0501f207, 0x05fdffad, 0x59300019, 0x4801a006, 0x5930001a, 0x4801a007, 0x4a01a008, @@ -5854,35 +5884,35 @@ static const uint32_t isp_2500_risc_code[] = { 0x4979a408, 0x4979a208, 0x4979a409, 0x4979a209, 0x4979a00b, 0x60180800, 0x600011b8, 0x0501f1b5, 0x4933c857, 0x4937c857, 0x4d1c0000, 0x60d40800, - 0x050df91a, 0x05020020, 0x05fdfeda, 0x4a01a006, + 0x050df938, 0x05020020, 0x05fdfeda, 0x4a01a006, 0x13000000, 0x59323820, 0x59300403, 0xb0000597, - 0x05000004, 0x591c0416, 0x8c000502, 0x05d00eeb, + 0x05000004, 0x591c0416, 0x8c000502, 0x05d00e73, 0x591c001b, 0x4801a005, 0x591c0407, 0x90000583, 0x05000007, 0x5930080a, 0x58040002, 0x82000500, 0x00ffffff, 0x4801a007, 0x0501f003, 0x59a8000f, 0x4801a007, 0x5930041b, 0x4801a408, 0x5930021b, 0x4801a208, 0x600c0800, 0x600011b8, 0x5c023800, - 0x0501f190, 0x4803c856, 0x05f9fe21, 0x598c000b, - 0x81300580, 0x05d20ed1, 0x05f9fd87, 0x59300403, - 0xb0000597, 0x050408d4, 0x0005f8e7, 0x5c023800, - 0x05f9f603, 0x4803c856, 0x4d2c0000, 0x4d1c0000, - 0x59323820, 0x811e39c0, 0x05d00ec4, 0x831c0580, + 0x0501f190, 0x4803c856, 0x05f9fe35, 0x598c000b, + 0x81300580, 0x05d20e59, 0x05f9fd9b, 0x59300403, + 0xb0000597, 0x050408da, 0x0005f8e7, 0x5c023800, + 0x05f9f617, 0x4803c856, 0x4d2c0000, 0x4d1c0000, + 0x59323820, 0x811e39c0, 0x05d00e4c, 0x831c0580, 0xffffffff, 0x05000036, 0x591c0c07, 0x90040586, 0x0500000a, 0x90040583, 0x05000036, 0x64de6403, 0x640e641c, 0x4a02621c, 0x00001700, 0x5c023800, 0x5c025800, 0x0501f063, 0x0501f848, 0x42001000, 0x40000000, 0x591c0203, 0x591c0804, 0x8c04053e, - 0x05020020, 0x90000c8e, 0x0c001002, 0x05d1feab, - 0x00105b4d, 0x00105b58, 0x00105b4e, 0x00105b58, - 0x00105b54, 0x00105b4d, 0x00105b4d, 0x00105b58, - 0x00105b58, 0x00105b4d, 0x00105b4d, 0x00105b4d, - 0x00105b4d, 0x00105b4d, 0x00105b58, 0x00105b4d, - 0x00105b58, 0x05d1fe99, 0x591c0416, 0x4803c857, + 0x05020020, 0x90000c8e, 0x0c001002, 0x05d1fe33, + 0x00105bc5, 0x00105bd0, 0x00105bc6, 0x00105bd0, + 0x00105bcc, 0x00105bc5, 0x00105bc5, 0x00105bd0, + 0x00105bd0, 0x00105bc5, 0x00105bc5, 0x00105bc5, + 0x00105bc5, 0x00105bc5, 0x00105bd0, 0x00105bc5, + 0x00105bd0, 0x05d1fe21, 0x591c0416, 0x4803c857, 0x8c000518, 0x05000003, 0x8c000512, 0x05000003, 0x80001580, 0x0501f003, 0x42001000, 0x20000000, 0x591c0017, 0x4801a00a, 0x0501f01a, 0x0501f81f, 0x42001000, 0x40000000, 0x41780000, 0x05fdf7fa, - 0x0501f81a, 0x591e5809, 0x812e59c0, 0x05d00e83, + 0x0501f81a, 0x591e5809, 0x812e59c0, 0x05d00e0b, 0x592c1010, 0x591c0013, 0x80080480, 0x4801a00a, 0x591c0203, 0x591c0804, 0x8c04053e, 0x05020005, 0x90000d82, 0x05000006, 0x90000d84, 0x05000004, @@ -5914,7 +5944,7 @@ static const uint32_t isp_2500_risc_code[] = { 0x60080800, 0x600011b8, 0x0501f0ca, 0x4803c856, 0x0501f809, 0x5930041c, 0x900001c0, 0x4801a005, 0x0501f90f, 0x41780800, 0x600010b8, 0x0501f8c1, - 0x05f9f286, 0x4803c856, 0x59300819, 0x90041c06, + 0x05f9f29a, 0x4803c856, 0x59300819, 0x90041c06, 0x64874800, 0x58040405, 0x82000500, 0x0000f000, 0x82000580, 0x00003000, 0x05000002, 0x65074800, 0x81a5a000, 0x580c0001, 0x82000d00, 0x00ffffff, @@ -5927,12 +5957,12 @@ static const uint32_t isp_2500_risc_code[] = { 0x5930001e, 0x800001c0, 0x05000006, 0x4a01a006, 0x01000000, 0x640da407, 0x60080800, 0x0501f021, 0x4a01a006, 0x02000000, 0x41780800, 0x916c0584, - 0x05020003, 0x84040d42, 0x0501f00c, 0x05f1fcc7, + 0x05020003, 0x84040d42, 0x0501f00c, 0x05f1fc85, 0x05020003, 0x84040d4a, 0x0501f002, 0x84040d48, 0x59a8021b, 0x8c000506, 0x05020003, 0x8c00050a, 0x05000002, 0x84040d46, 0x4805a207, 0x59c40085, 0x48031004, 0x4c580000, 0x4c500000, 0x4c540000, - 0x6018b000, 0x9188a400, 0x90d0ac08, 0x0515fd34, + 0x6018b000, 0x9188a400, 0x90d0ac08, 0x0515fd86, 0x5c00a800, 0x5c00a000, 0x5c00b000, 0x60200800, 0x600011b8, 0x0501f06f, 0x05fdfd9a, 0x4a01a006, 0x56000000, 0x59340006, 0x4801a007, 0x59340007, @@ -5941,15 +5971,15 @@ static const uint32_t isp_2500_risc_code[] = { 0x0500000b, 0x82040580, 0x0000ffff, 0x05000003, 0x90040487, 0x05021006, 0x4a01a006, 0x01000000, 0x640da407, 0x60080800, 0x0501f010, 0x4a01a006, - 0x0200001c, 0x6405a007, 0x42001000, 0x0010945c, + 0x0200001c, 0x6405a007, 0x42001000, 0x001094dc, 0x50080000, 0x9c0001c0, 0x4801a009, 0x59a8000f, 0x4801a00a, 0x59a80002, 0x59a80803, 0x4801a00b, 0x4805a00c, 0x601c0800, 0x600011b8, 0x0501f045, 0x4d2c0000, 0x05fdfd6f, 0x59325809, 0x592c0009, 0x82000500, 0x00ffffff, 0x4801a001, 0x4a01a006, - 0x51000000, 0x5c025800, 0x05fdf400, 0x4803c856, + 0x51000000, 0x5c025800, 0x05fdf40b, 0x4803c856, 0x59325809, 0x5932680a, 0x59300407, 0x4803c857, - 0x90000d8a, 0x05000002, 0x05d1fd78, 0x42005000, + 0x90000d8a, 0x05000002, 0x05d1fd00, 0x42005000, 0x02000000, 0x42006000, 0x20290000, 0x41786800, 0x41787800, 0x0501f805, 0x91180d78, 0x60801193, 0x0501f856, 0x1c01f000, 0x6001a000, 0x0501f002, @@ -5965,40 +5995,40 @@ static const uint32_t isp_2500_risc_code[] = { 0x4807c857, 0x4c040000, 0x0501f83d, 0x5c000800, 0x40040000, 0x80081540, 0x800000c4, 0x82000540, 0x00002000, 0x4803910a, 0x59b400f6, 0x90000518, - 0x05fe07fe, 0x42001800, 0x00109475, 0x580c0004, + 0x05fe07fe, 0x42001800, 0x001094f5, 0x580c0004, 0x4803c857, 0x580c0006, 0x4803c857, 0x580c1800, 0x480fc857, 0x8d0c052a, 0x0500000c, 0x820c1d00, 0xf8000000, 0x05000009, 0x4c040000, 0x4c080000, - 0x40083800, 0x42000000, 0x00109475, 0x05d1fe34, - 0x5c001000, 0x5c000800, 0x4a0368f0, 0x00109474, - 0x4a0368f1, 0x0010947b, 0x480b68f3, 0x59b400f6, + 0x40083800, 0x42000000, 0x001094f5, 0x05d1fdbc, + 0x5c001000, 0x5c000800, 0x4a0368f0, 0x001094f4, + 0x4a0368f1, 0x001094fb, 0x480b68f3, 0x59b400f6, 0x90000538, 0x05fe07fe, 0x4203e000, 0xb0800000, - 0x600bf800, 0x05f9f199, 0x4807c857, 0x480a2800, + 0x600bf800, 0x05f9f1ad, 0x4807c857, 0x480a2800, 0x4c040000, 0x0501f80e, 0x5c000800, 0x59b400f6, 0x8c00050a, 0x05fe07fe, 0x49a768f2, 0x480768f4, 0x59b400f6, 0x90000538, 0x05fe07fe, 0x4203e000, 0xb0800000, 0x600bf800, 0x1c01f000, 0x61a07007, 0x4203e000, 0xb0800000, 0x600ff800, 0x40000000, 0x40000000, 0x40000000, 0x0501b004, 0x80387040, - 0x05d00cfe, 0x05fdf7f9, 0x1c01f000, 0x82000500, + 0x05d00c86, 0x05fdf7f9, 0x1c01f000, 0x82000500, 0xffff0000, 0x82000580, 0x01050000, 0x0502000b, 0x599c0818, 0x8c040510, 0x05000008, 0x59a80806, 0x8c04050a, 0x05000005, 0x613c1100, 0x41781800, - 0x41782000, 0x05e9f8bf, 0x1c01f000, 0x1c01f000, + 0x41782000, 0x05e9f84b, 0x1c01f000, 0x1c01f000, 0x59a80063, 0x800001c0, 0x05000045, 0x4d2c0000, 0x4d300000, 0x4c5c0000, 0x4c600000, 0x4c640000, 0x40025800, 0x4000c000, 0x4000c800, 0x42026000, - 0x0010cc38, 0x592c0407, 0x81440580, 0x0502002d, + 0x0010cc48, 0x592c0407, 0x81440580, 0x0502002d, 0x592c0205, 0xb0000595, 0x05000005, 0x8d3c0518, 0x05000028, 0x8d3c0516, 0x05020026, 0x40640000, 0x812c0580, 0x05020016, 0x59300203, 0x90000580, 0x0500000f, 0x59300009, 0x800001c0, 0x0500000c, - 0x05f9fc17, 0x4df00000, 0x05f9fb29, 0x0201f800, - 0x0010b998, 0x80c40040, 0x05020002, 0x64026203, - 0x5c03e000, 0x05f80bfa, 0x497a6009, 0x592cc800, + 0x05f9fc2b, 0x4df00000, 0x05f9fb3d, 0x0201f800, + 0x0010b9a8, 0x80c40040, 0x05020002, 0x64026203, + 0x5c03e000, 0x05f80c0e, 0x497a6009, 0x592cc800, 0x4064c000, 0x4064b800, 0x0501f003, 0x592cb800, 0x485cc000, 0x497a5800, 0x592c0205, 0x82000580, - 0x00000155, 0x05000003, 0x05d5f846, 0x0501f003, + 0x00000155, 0x05000003, 0x05d1ffce, 0x0501f003, 0x49425a07, 0x0001fb2c, 0x405e5800, 0x0501f003, 0x412cc000, 0x592e5800, 0x812e59c0, 0x05fe07ce, 0x48675063, 0x48635064, 0x5c00c800, 0x5c00c000, @@ -6010,116 +6040,117 @@ static const uint32_t isp_2500_risc_code[] = { 0x05000004, 0x61c2880f, 0x6040b000, 0x05fdf7f3, 0x5c00b000, 0x5c026800, 0x5c028800, 0x1c01f000, 0x4d300000, 0x59a81063, 0x800811c0, 0x05000016, - 0x42026000, 0x0010cc38, 0x59300203, 0x90000580, + 0x42026000, 0x0010cc48, 0x59300203, 0x90000580, 0x05020011, 0x58080803, 0x4806600a, 0x480a6009, 0x64166407, 0x64066203, 0x4a026403, 0x00000092, 0x41780800, 0x58080205, 0xb0000595, 0x05000002, 0x60040800, 0x48066422, 0x42000800, 0x80000040, 0x0005f87c, 0x5c026000, 0x1c01f000, 0x4d900000, 0x4dd00000, 0x4da40000, 0x4d140000, 0x4cd80000, - 0x4d180000, 0x4803c856, 0x417a3000, 0x05fdf88c, + 0x4d180000, 0x4803c856, 0x417a3000, 0x05fdf8a0, 0x59900805, 0x800409c0, 0x05000012, 0x91947c09, - 0x83180400, 0x00104d38, 0x50000000, 0x803c7c00, + 0x83180400, 0x00104dc4, 0x50000000, 0x803c7c00, 0x583c0003, 0x811808ca, 0x82040c00, 0x00006139, 0x50040800, 0x80040580, 0x05000006, 0x42000000, - 0x0010985c, 0x0515fb04, 0x90000541, 0x0501f004, + 0x001098dc, 0x0515fb56, 0x90000541, 0x0501f004, 0x811a3000, 0x91180585, 0x05fe07e9, 0x5c023000, 0x5c01b000, 0x5c022800, 0x5c034800, 0x5c03a000, 0x5c032000, 0x1c01f000, 0x4d900000, 0x4dd00000, 0x4da40000, 0x4d140000, 0x4cd80000, 0x4d180000, 0x4803c856, 0x598c080b, 0x800409c0, 0x05000002, - 0x05f9f8be, 0x417a3000, 0x05fdf861, 0x59900805, + 0x05f9f8d2, 0x417a3000, 0x05fdf875, 0x59900805, 0x800409c0, 0x0500000f, 0x91947c09, 0x83180400, - 0x00104d38, 0x50000000, 0x803c7c00, 0x811808ca, + 0x00104dc4, 0x50000000, 0x803c7c00, 0x811808ca, 0x82040c00, 0x00006139, 0x50040800, 0x48047803, 0x4a007801, 0x000001f4, 0x64287800, 0x64107802, 0x811a3000, 0x91180585, 0x05fe07ec, 0x5c023000, 0x5c01b000, 0x5c022800, 0x5c034800, 0x5c03a000, 0x5c032000, 0x1c01f000, 0x41781000, 0x42026000, - 0x0010cca4, 0x59a8180d, 0x480a6402, 0x4a026202, + 0x0010ccb4, 0x59a8180d, 0x480a6402, 0x4a026202, 0x0000ffff, 0x80081000, 0x800c1840, 0x05000003, 0x91326424, 0x05fdf7f9, 0x1c01f000, 0x0005f8e7, 0x1c01f000, 0x5c036000, 0x4db00000, 0x49b3c857, - 0x4933c857, 0x813261c0, 0x05000029, 0x59300203, - 0x90000580, 0x05000026, 0x59300407, 0x4803c857, + 0x4933c857, 0x813261c0, 0x0500002d, 0x59300203, + 0x90000580, 0x0500002a, 0x59300407, 0x4803c857, 0x90000d84, 0x0500000c, 0x90000d81, 0x0500000a, - 0x90000d83, 0x05000004, 0x90000d86, 0x05020012, - 0x0511fee9, 0x5930001e, 0x800001c0, 0x050e09d1, - 0x0501f00d, 0x59300820, 0x4807c857, 0x4d300000, - 0x40066000, 0x050dfa69, 0x5c026000, 0x05020006, + 0x90000d83, 0x05000004, 0x90000d86, 0x05020016, + 0x0511ff29, 0x5930001e, 0x800001c0, 0x050e09ef, + 0x0501f011, 0x5930000a, 0x82000580, 0x0010993e, + 0x0500000d, 0x59300820, 0x4807c857, 0x4d300000, + 0x40066000, 0x050dfa83, 0x5c026000, 0x05020006, 0x5804001e, 0x4803c857, 0x81300580, 0x05020002, 0x4978081e, 0x641e6407, 0x497a6009, 0x4a026004, 0x00004000, 0x59a8002a, 0xb0000c91, 0x05001002, 0x80000102, 0x48026006, 0x497a6205, 0x1c01f000, 0x0501f803, 0x41318800, 0x1c01f000, 0x91640490, - 0x05021007, 0x42000000, 0x001097eb, 0x0515fa8a, + 0x05021007, 0x42000000, 0x0010986b, 0x0515fad8, 0x4967c857, 0x80026580, 0x1c01f000, 0x8166c9c0, 0x05000018, 0x41626000, 0x41580000, 0x59300a03, 0x90040d80, 0x05000007, 0x91326424, 0x81300c80, - 0x05fc17fb, 0x42026000, 0x0010cca4, 0x05fdf7f8, + 0x05fc17fb, 0x42026000, 0x0010ccb4, 0x05fdf7f8, 0x4933c857, 0x8166c840, 0x91300c24, 0x80040480, 0x05021005, 0x4006c000, 0x64226203, 0x813261c0, - 0x1c01f000, 0x4202c000, 0x0010cca4, 0x05fdf7fb, - 0x42000000, 0x001097eb, 0x0515fa6b, 0x4933c856, + 0x1c01f000, 0x4202c000, 0x0010ccb4, 0x05fdf7fb, + 0x42000000, 0x0010986b, 0x0515fab9, 0x4933c856, 0x417a6000, 0x05fdf7f6, 0x0005f905, 0x1c01f000, 0x4933c857, 0x91380593, 0x05020008, 0x59300004, - 0x8c00053e, 0x05000004, 0x05f9fafd, 0x05f9fa66, - 0x05f9fae7, 0x1c01f000, 0x4933c857, 0x598800b7, + 0x8c00053e, 0x05000004, 0x05f9fb0d, 0x05f9fa76, + 0x05f9faf7, 0x1c01f000, 0x4933c857, 0x598800b7, 0x80000000, 0x480310b7, 0x1c01f000, 0x4933c857, - 0x59300203, 0x9000348e, 0x05d21ba4, 0x4d2c0000, - 0x0c01f803, 0x5c025800, 0x1c01f000, 0x00105e55, - 0x001062f7, 0x00106415, 0x00105e55, 0x00106457, - 0x00105f88, 0x00105e55, 0x00105e55, 0x0010628a, - 0x00105e55, 0x00105e55, 0x00105e55, 0x00105e55, - 0x00105e55, 0x05d1fb91, 0x4933c857, 0x59300203, - 0x9000348e, 0x05d21b8d, 0x0c01f001, 0x00105e69, - 0x00106c3c, 0x00105e69, 0x00105e69, 0x00105e69, - 0x00105e69, 0x00105e69, 0x00105e69, 0x00106be5, - 0x00106c50, 0x00106cac, 0x00106c50, 0x00106cac, - 0x00105e69, 0x05d1fb7d, 0x05d1fb7c, 0x4933c857, + 0x59300203, 0x9000348e, 0x05d21b28, 0x4d2c0000, + 0x0c01f803, 0x5c025800, 0x1c01f000, 0x00105ed1, + 0x00106375, 0x00106493, 0x00105ed1, 0x001064de, + 0x00106006, 0x00105ed1, 0x00105ed1, 0x00106308, + 0x00105ed1, 0x00105ed1, 0x00105ed1, 0x00105ed1, + 0x00105ed1, 0x05d1fb15, 0x4933c857, 0x59300203, + 0x9000348e, 0x05d21b11, 0x0c01f001, 0x00105ee5, + 0x00106cc6, 0x00105ee5, 0x00105ee5, 0x00105ee5, + 0x00105ee5, 0x00105ee5, 0x00105ee5, 0x00106c6f, + 0x00106ce3, 0x00106d3f, 0x00106ce3, 0x00106d3f, + 0x00105ee5, 0x05d1fb01, 0x05d1fb00, 0x4933c857, 0x4d2c0000, 0x59325809, 0x59300203, 0x9000348e, - 0x05d21b76, 0x0c01f803, 0x5c025800, 0x1c01f000, - 0x00105e82, 0x00105e82, 0x00105e82, 0x00105e97, - 0x00105ecc, 0x00105e82, 0x00105e82, 0x00105e82, - 0x00105e83, 0x00105e82, 0x00105e82, 0x00105e82, - 0x00105e82, 0x00105e82, 0x05d1fb64, 0x4933c857, - 0xb1380580, 0x05d20b61, 0x4a026008, 0x00082000, + 0x05d21afa, 0x0c01f803, 0x5c025800, 0x1c01f000, + 0x00105efe, 0x00105efe, 0x00105efe, 0x00105f13, + 0x00105f48, 0x00105efe, 0x00105efe, 0x00105efe, + 0x00105eff, 0x00105efe, 0x00105efe, 0x00105efe, + 0x00105efe, 0x00105efe, 0x05d1fae8, 0x4933c857, + 0xb1380580, 0x05d20ae5, 0x4a026008, 0x00082000, 0x640e6203, 0x493a6403, 0x64065c09, 0x592c000e, 0x48026013, 0x497a6015, 0x592c0209, 0x800000c2, 0x800010c4, 0x80081400, 0x480a6006, 0x0001f966, 0x42000800, 0x80000060, 0x0005f072, 0x4933c857, - 0xb1380490, 0x05d21b4d, 0xb1380489, 0x05d01b4b, - 0x0c01f001, 0x00105ea5, 0x00105eae, 0x00105ea4, - 0x00105ea4, 0x00105ea4, 0x00105ea4, 0x00105eb4, - 0x05d1fb42, 0x64126203, 0x640a5c09, 0x592c0208, + 0xb1380490, 0x05d21ad1, 0xb1380489, 0x05d01acf, + 0x0c01f001, 0x00105f21, 0x00105f2a, 0x00105f20, + 0x00105f20, 0x00105f20, 0x00105f20, 0x00105f30, + 0x05d1fac6, 0x64126203, 0x640a5c09, 0x592c0208, 0x48025c0a, 0x592c020a, 0x48025a08, 0x592c000d, - 0x4802580e, 0x1c01f000, 0x05f9f9d2, 0x0509fa35, + 0x4802580e, 0x1c01f000, 0x05f9f9e2, 0x0509fa4f, 0x05000003, 0x641a5a07, 0x0001fb2c, 0x0005f0e7, - 0x05f9f9cc, 0x4d3c0000, 0x417a7800, 0x0201f800, - 0x0010b652, 0x5c027800, 0x60503000, 0x41782800, + 0x05f9f9dc, 0x4d3c0000, 0x417a7800, 0x0201f800, + 0x0010b660, 0x5c027800, 0x60503000, 0x41782800, 0x60082000, 0x4d400000, 0x4d440000, 0x59368c03, - 0x60a68000, 0x050df90c, 0x5c028800, 0x5c028000, - 0x42000000, 0x001097f8, 0x0515f9cf, 0x0509fa1d, + 0x60a68000, 0x050df926, 0x5c028800, 0x5c028000, + 0x42000000, 0x00109878, 0x0515fa1d, 0x0509fa37, 0x000400e7, 0x64a65a07, 0x0001fb2c, 0x0005f0e7, 0x4933c857, 0xb1380588, 0x05000003, 0xb1380593, - 0x05d20b16, 0x592c0207, 0x90000587, 0x05000008, + 0x05d20a9a, 0x592c0207, 0x90000587, 0x05000008, 0x59300013, 0x80000540, 0x05000005, 0x592c080d, 0x80040480, 0x4802580d, 0x64565a07, 0x592c0207, 0x80000540, 0x05020002, 0x64025a07, 0x0001fb2c, 0x0005f0e7, 0x4933c857, 0x4d2c0000, 0x4c500000, 0x4c540000, 0x4c580000, 0x4c5c0000, 0x4c600000, - 0x4c640000, 0x4c100000, 0x05d1fe7e, 0x05d00afb, + 0x4c640000, 0x4c100000, 0x05d1fe02, 0x05d00a7f, 0x497a5a07, 0x59a80085, 0x82000500, 0x0000f000, 0x48025c08, 0x59a80873, 0x90040c18, 0x48065a08, 0x412cb800, 0x4d2c0000, 0x41cca000, 0x6004c000, 0x60b0c800, 0x900404ad, 0x05021004, 0x912cac0a, - 0x0505fe5a, 0x0501f023, 0x40043000, 0x60b00800, - 0x912cac0a, 0x0505fe55, 0x901834ac, 0x4c180000, - 0x05d1fe64, 0x5c003000, 0x05000012, 0x8060c000, + 0x0505fe71, 0x0501f023, 0x40043000, 0x60b00800, + 0x912cac0a, 0x0505fe6c, 0x901834ac, 0x4c180000, + 0x05d1fde8, 0x5c003000, 0x05000012, 0x8060c000, 0x4a025805, 0x00000110, 0x492cb801, 0x90180cbd, - 0x05021005, 0x40180800, 0x912cac06, 0x0505fe47, + 0x05021005, 0x40180800, 0x912cac06, 0x0505fe5e, 0x0501f010, 0x9064cc3c, 0x901834bc, 0x60f00800, - 0x412cb800, 0x912cac06, 0x0505fe40, 0x05fdf7ec, + 0x412cb800, 0x912cac06, 0x0505fe57, 0x05fdf7ec, 0x5c025800, 0x592c0207, 0x8400055e, 0x48025a07, 0x592c0408, 0x80640540, 0x48025c08, 0x0501f002, 0x5c025800, 0x5c002000, 0x813669c0, 0x05000003, @@ -6129,2323 +6160,2338 @@ static const uint32_t isp_2500_risc_code[] = { 0xffffffff, 0x0500000a, 0x591c0009, 0x80000d40, 0x05000007, 0x58040205, 0x82000500, 0x000000ff, 0x90000592, 0x05020002, 0x58041006, 0x480a5806, - 0x846001c0, 0x80100540, 0x48025805, 0x592c0001, - 0x497a5801, 0x4c000000, 0x0001fb2c, 0x5c025800, - 0x812e59c0, 0x05fe07fa, 0x5c00c800, 0x5c00c000, - 0x5c00b800, 0x5c00b000, 0x5c00a800, 0x5c00a000, - 0x5c025800, 0x1c01f000, 0x0511ff05, 0x05fdf7f7, - 0x4803c856, 0x4c5c0000, 0x4d2c0000, 0x4c500000, - 0x4c540000, 0x4c580000, 0x412cb800, 0x592c040c, - 0x8c000516, 0x05000003, 0x41cca000, 0x0501f002, - 0x91cca406, 0x4008b000, 0x41781000, 0xb058048c, - 0x05001003, 0x6130b000, 0x40001000, 0x4c080000, - 0x4d2c0000, 0x05d1fe03, 0x0500001f, 0x5c001800, - 0x492c1801, 0x485a5800, 0x9058b403, 0x8058b104, - 0x912cac02, 0x0515fa2d, 0x585c040c, 0x8c000500, - 0x0500000b, 0x912c1402, 0x8c000516, 0x05000002, - 0x90081406, 0x64041000, 0x80081000, 0x46001000, - 0x00000900, 0x84000500, 0x4800bc0c, 0x5c001000, - 0x800811c0, 0x05fe07e0, 0x90000541, 0x5c00b000, - 0x5c00a800, 0x5c00a000, 0x5c025800, 0x5c00b800, - 0x1c01f000, 0x5c025800, 0x5c001000, 0x05fdf7f8, - 0x4933c857, 0x91380d95, 0x05020002, 0x0005f0e7, - 0x91380d96, 0x05d20a59, 0x0005f0e7, 0x4933c857, + 0x846001c0, 0x80100540, 0x48025805, 0x0515facf, + 0x05020010, 0x592c0001, 0x497a5801, 0x4c000000, + 0x0001fb2c, 0x5c025800, 0x812e59c0, 0x05fe07f8, + 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x5c00b000, + 0x5c00a800, 0x5c00a000, 0x5c025800, 0x1c01f000, + 0x0511ff51, 0x05fdf7f7, 0x4803c856, 0x4c5c0000, 0x4d2c0000, 0x4c500000, 0x4c540000, 0x4c580000, - 0x59325809, 0x91cca406, 0x59cc1806, 0x820c0580, - 0x01000000, 0x05020003, 0x6008b000, 0x0501f00a, - 0x6020b000, 0x912cac06, 0x0515f9c1, 0x8c0c0500, - 0x05000007, 0x6020b000, 0x592e5801, 0x812e59c0, - 0x05d00a42, 0x912cac06, 0x0515f9b9, 0x0501f812, - 0x5c00b000, 0x5c00a800, 0x5c00a000, 0x5c025800, - 0x1c01f000, 0x4933c857, 0x4c500000, 0x4c540000, - 0x4c580000, 0x91cca406, 0x5930a809, 0x9054ac06, - 0x601cb000, 0x0515f9aa, 0x5c00b000, 0x5c00a800, - 0x5c00a000, 0x4933c857, 0x0509f92a, 0x000400e7, - 0x4d2c0000, 0x0509fdd9, 0x05020008, 0x41780800, - 0x4d400000, 0x60028000, 0x0509fcb3, 0x5c028000, - 0x5c025800, 0x0005f0e7, 0x5931d823, 0x58ef400a, - 0x58ee580c, 0x4a025a05, 0x00000103, 0x58ec0008, - 0x0801f800, 0x5c025800, 0x0005f0e7, 0x4933c857, - 0x59cc1806, 0x820c0580, 0x02000000, 0x05020019, - 0x4a026802, 0x00fffffd, 0x5934000a, 0x84000504, - 0x4802680a, 0x59300c1f, 0x900405a1, 0x05020005, - 0x61fc19ff, 0x60102000, 0x60483000, 0x05e5fe4b, - 0x59300809, 0x800409c0, 0x000400e7, 0x4a000a05, - 0x00000103, 0x480c0806, 0x5931d823, 0x58ef400a, - 0x58ee580c, 0x58ec0008, 0x0801f800, 0x0005f0e7, - 0x42000000, 0x00109801, 0x0515f8a7, 0x4c0c0000, - 0x0501f804, 0x5c001800, 0x05fe07ee, 0x1c01f000, - 0x4933c857, 0x4d2c0000, 0x59325809, 0x812e59c0, - 0x05020008, 0x497a6006, 0x497a6205, 0x4d380000, - 0x608a7000, 0x0501faf6, 0x5c027000, 0x80000580, - 0x5c025800, 0x1c01f000, 0x4933c857, 0x4d2c0000, - 0x4c500000, 0x4c540000, 0x4c580000, 0x59325809, - 0x592e5801, 0x912cac06, 0x91cca406, 0x59a80885, - 0x82040d00, 0x000003ff, 0x9004148f, 0x05001011, - 0x603cb000, 0x0515f94e, 0x592e5801, 0x912cac06, - 0x90080c8f, 0x05001008, 0x603cb000, 0x0515f948, - 0x592e5801, 0x912cac06, 0x9004148f, 0x05001005, - 0x603c1000, 0x4008b000, 0x0515f941, 0x0501f003, - 0x4004b000, 0x0515f93e, 0x5931d823, 0x58ef400a, - 0x58ee580c, 0x4a025a05, 0x00000103, 0x592e5801, - 0x58ec0008, 0x0801f800, 0x0005f8e7, 0x5c00b000, - 0x5c00a800, 0x5c00a000, 0x5c025800, 0x1c01f000, + 0x412cb800, 0x592c040c, 0x8c000516, 0x05000003, + 0x41cca000, 0x0501f002, 0x91cca406, 0x4008b000, + 0x41781000, 0xb058048c, 0x05001003, 0x6130b000, + 0x40001000, 0x4c080000, 0x4d2c0000, 0x05d1fd85, + 0x0500001f, 0x5c001800, 0x492c1801, 0x485a5800, + 0x9058b403, 0x8058b104, 0x912cac02, 0x0515fa79, + 0x585c040c, 0x8c000500, 0x0500000b, 0x912c1402, + 0x8c000516, 0x05000002, 0x90081406, 0x64041000, + 0x80081000, 0x46001000, 0x00000900, 0x84000500, + 0x4800bc0c, 0x5c001000, 0x800811c0, 0x05fe07e0, + 0x90000541, 0x5c00b000, 0x5c00a800, 0x5c00a000, + 0x5c025800, 0x5c00b800, 0x1c01f000, 0x5c025800, + 0x5c001000, 0x05fdf7f8, 0x4933c857, 0x91380d95, + 0x05020002, 0x0005f0e7, 0x91380d96, 0x05d209db, + 0x0005f0e7, 0x4933c857, 0x4d2c0000, 0x4c500000, + 0x4c540000, 0x4c580000, 0x59325809, 0x91cca406, + 0x59cc1806, 0x820c0580, 0x01000000, 0x05020003, + 0x6008b000, 0x0501f00a, 0x6020b000, 0x912cac06, + 0x0515fa0d, 0x8c0c0500, 0x05000007, 0x6020b000, + 0x592e5801, 0x812e59c0, 0x05d009c4, 0x912cac06, + 0x0515fa05, 0x0501f812, 0x5c00b000, 0x5c00a800, + 0x5c00a000, 0x5c025800, 0x1c01f000, 0x4933c857, + 0x4c500000, 0x4c540000, 0x4c580000, 0x91cca406, + 0x5930a809, 0x9054ac06, 0x601cb000, 0x0515f9f6, + 0x5c00b000, 0x5c00a800, 0x5c00a000, 0x4933c857, + 0x0509f942, 0x000400e7, 0x4d2c0000, 0x0509fdf1, + 0x05020008, 0x41780800, 0x4d400000, 0x60028000, + 0x0509fccb, 0x5c028000, 0x5c025800, 0x0005f0e7, + 0x5931d823, 0x58ef400a, 0x58ee580c, 0x4a025a05, + 0x00000103, 0x58ec0008, 0x0801f800, 0x5c025800, + 0x0005f0e7, 0x4933c857, 0x59cc1806, 0x820c0580, + 0x02000000, 0x05020019, 0x4a026802, 0x00fffffd, + 0x5934000a, 0x84000504, 0x4802680a, 0x59300c1f, + 0x900405a1, 0x05020005, 0x61fc19ff, 0x60102000, + 0x60483000, 0x05e5fdd1, 0x59300809, 0x800409c0, + 0x000400e7, 0x4a000a05, 0x00000103, 0x480c0806, + 0x5931d823, 0x58ef400a, 0x58ee580c, 0x58ec0008, + 0x0801f800, 0x0005f0e7, 0x42000000, 0x00109881, + 0x0515f8f3, 0x4c0c0000, 0x0501f804, 0x5c001800, + 0x05fe07ee, 0x1c01f000, 0x4933c857, 0x4d2c0000, + 0x59325809, 0x812e59c0, 0x05020008, 0x497a6006, + 0x497a6205, 0x4d380000, 0x608a7000, 0x0501faf6, + 0x5c027000, 0x80000580, 0x5c025800, 0x1c01f000, 0x4933c857, 0x4d2c0000, 0x4c500000, 0x4c540000, - 0x4c580000, 0x59cc0006, 0x82000d80, 0x01000000, - 0x05000021, 0x59cc0007, 0x9000b1c0, 0x8258b500, - 0x000000ff, 0x8058b104, 0x9058b402, 0x90580c87, - 0x05001002, 0x6018b000, 0x91cca406, 0x59301009, - 0x800811c0, 0x05d009a1, 0x9008ac06, 0x0515f918, - 0x82000d00, 0xff000000, 0x800409c0, 0x05000014, - 0x8200b500, 0x000000ff, 0x05000011, 0x8058b104, - 0x90580c8e, 0x05001002, 0x6034b000, 0x58081001, - 0x800811c0, 0x05d00991, 0x9008ac06, 0x0515f908, - 0x0501f007, 0x59301009, 0x800811c0, 0x05d0098b, - 0x48001006, 0x59cc0007, 0x48001007, 0x05fdff5a, - 0x5c00b000, 0x5c00a800, 0x5c00a000, 0x5c025800, - 0x1c01f000, 0x4933c857, 0x4d2c0000, 0x4c500000, - 0x4c540000, 0x4c580000, 0x6008b000, 0x59cc0806, - 0x82040580, 0x01000000, 0x05000004, 0x8204b500, - 0x0000ffff, 0x8058b104, 0x91cca406, 0x59300009, - 0x9000ac06, 0x0515f8ea, 0x05fdff43, 0x5c00b000, - 0x5c00a800, 0x5c00a000, 0x5c025800, 0x1c01f000, - 0x4933c857, 0x4803c857, 0x4807c857, 0x480bc857, - 0x480fc857, 0x4813c857, 0x481bc857, 0x492fc857, - 0x4d2c0000, 0x4c000000, 0x05d1fccf, 0x5c000000, - 0x0500000d, 0x48025803, 0x481a5801, 0x48125808, - 0x48065805, 0x480a5806, 0x480e5807, 0x5c001000, - 0x4c080000, 0x480a5809, 0x412c1000, 0x0001f81c, - 0x90000541, 0x5c025800, 0x1c01f000, 0x4933c857, - 0x4937c857, 0x4d1c0000, 0x05f5fc75, 0x05020020, - 0x59cc0001, 0x82000500, 0x00ffffff, 0x59341002, - 0x82081500, 0x00ffffff, 0x80080580, 0x05020018, - 0x497a6205, 0x60d40800, 0x0509fb64, 0x0502000f, - 0x591c001e, 0x800001c0, 0x0500000c, 0x497a381e, - 0x591c0416, 0x8c000502, 0x05d00938, 0x84000502, - 0x48023c16, 0x591c1407, 0x90080583, 0x05000005, - 0x90080586, 0x05000005, 0x05fdfd1f, 0x0501f004, - 0x0501f805, 0x0501f002, 0x0501f8b2, 0x5c023800, - 0x1c01f000, 0x4d2c0000, 0x591e5809, 0x4933c857, - 0x491fc857, 0x493bc857, 0x492fc857, 0x91380595, - 0x050000a6, 0x91380596, 0x050200a2, 0x4d300000, - 0x411e6000, 0x59cc0207, 0x4803c857, 0x82000d00, - 0x0000ff00, 0x82040580, 0x00001700, 0x05000004, - 0x82040580, 0x00000300, 0x05020055, 0x591c0203, - 0x4803c857, 0x9000058d, 0x0500003a, 0x812e59c0, - 0x0500008f, 0x591c0202, 0x4803c857, 0x82000580, - 0x0000ffff, 0x05020079, 0x592c020b, 0x4803c857, - 0x90000503, 0x90000582, 0x05020007, 0x592c0810, - 0x591c0013, 0x4803c857, 0x4807c857, 0x80040580, - 0x0502006e, 0x591c0416, 0x4803c857, 0x8c000500, - 0x0502006a, 0x42000000, 0x001097de, 0x0511ffa6, - 0x41780800, 0x591c1006, 0x60280000, 0x05f5fe8d, - 0x592c0407, 0x4803c857, 0x800001c0, 0x0500000b, - 0x80080c80, 0x05001003, 0x05d208ec, 0x80001040, - 0x480a5c07, 0x800811c0, 0x05020004, 0x0201f800, - 0x0010c00d, 0x0501f063, 0x0509f8b2, 0x591c0819, - 0x591c001a, 0x48065809, 0x4802580a, 0x59300008, - 0x8c000500, 0x05d60a08, 0x497a3809, 0x0001fa84, - 0x0502004a, 0x411e6000, 0x05fdfcc7, 0x0501f055, - 0x05fdfcf7, 0x05000013, 0x591c0006, 0x48026006, - 0x4936600a, 0x640e6407, 0x492e6009, 0x591c0819, - 0x591c101a, 0x48066019, 0x480a601a, 0x4d380000, - 0x591e7403, 0x4d300000, 0x411e6000, 0x05fdfcb6, - 0x5c026000, 0x0005f905, 0x5c027000, 0x0501f041, - 0x59a8002c, 0x48023a05, 0x0501f03e, 0x59cc0407, - 0x9000058b, 0x05020026, 0x59340a00, 0x84040d0e, - 0x48066a00, 0x592c0a05, 0x82040d00, 0x000000ff, - 0x90040d94, 0x05000002, 0x640e621f, 0x59300008, - 0x8c000500, 0x05d609dc, 0x4d400000, 0x497a5c0a, - 0x600e8000, 0x592c0a09, 0x05edfe06, 0x0515f873, - 0x05020006, 0x0001fb2c, 0x59300a1f, 0x90040d83, - 0x05080874, 0x497a6009, 0x5c028000, 0x4a026403, - 0x00000085, 0x64266203, 0x640a6407, 0x42000800, - 0x80004040, 0x0509ff01, 0x0005f87c, 0x4203e000, - 0xb0800000, 0x6023f800, 0x0501f016, 0x59cc0207, - 0x82000580, 0x00002a00, 0x05020004, 0x59a8002c, - 0x48023a05, 0x0501f00f, 0x812e59c0, 0x05d0088f, - 0x4a025a05, 0x00000103, 0x591c0008, 0x8c000500, - 0x05d609b5, 0x591c0402, 0x48025c07, 0x640e5a07, - 0x497a5c0a, 0x0001fb2c, 0x05fdfc73, 0x05edfa87, - 0x5c026000, 0x0005f8e7, 0x0501f002, 0x5c026000, - 0x5c025800, 0x1c01f000, 0x0501f813, 0x05fdf7fd, - 0x4933c857, 0x91380595, 0x05020004, 0x59a8002c, - 0x48023a05, 0x0501f009, 0x91380596, 0x05020009, - 0x4d300000, 0x411e6000, 0x0511fb5b, 0x0005f853, - 0x0005f8e7, 0x5c026000, 0x497a381e, 0x0005f8e7, - 0x1c01f000, 0x4c5c0000, 0x591c0416, 0x84000540, - 0x48023c16, 0x59ccb80b, 0x4933c857, 0x491fc857, - 0x492fc857, 0x4803c857, 0x485fc857, 0x8c5c053c, - 0x05000005, 0x59a8002c, 0x48023a05, 0x497a381e, - 0x0501f049, 0x4d300000, 0x411e6000, 0x0505fc18, - 0x5c026000, 0x591c0407, 0x90000580, 0x05000042, - 0x591c0403, 0xb0000590, 0x0502000a, 0x4d300000, - 0x411e6000, 0x64066203, 0x42000800, 0x80000043, - 0x0005f87c, 0x5c026000, 0x497a381e, 0x0501f036, - 0x591c0203, 0x9000058d, 0x0500001c, 0x812e59c0, - 0x05d00842, 0x592c020b, 0x4803c857, 0x8c000500, - 0x0502001b, 0x8c000502, 0x05000014, 0x591c0416, - 0x8c00051c, 0x05020007, 0x591c0013, 0x4803c857, - 0x800001c0, 0x0500000d, 0x591c0014, 0x48023818, - 0x4a023814, 0x0fffffff, 0x592c0209, 0x8400051e, - 0x48025a09, 0x42000000, 0x001097e0, 0x0511feda, - 0x64063a16, 0x0501f016, 0x42000000, 0x001097e1, - 0x0511fed5, 0x641e3a16, 0x0501f011, 0x8c5c053a, - 0x05fe07fa, 0x59cc000a, 0x592c1810, 0x4803c857, - 0x480fc857, 0x800c0580, 0x05fc07f4, 0x59cc000a, - 0x4803c857, 0x48023818, 0x48023817, 0x42000000, - 0x001097df, 0x0511fec4, 0x64163a16, 0x5c00b800, - 0x0509f105, 0x5c00b800, 0x0005f0e7, 0x4933c857, - 0x4d1c0000, 0x05f5fb36, 0x0502003f, 0x59cc0001, - 0x59341002, 0x80080580, 0x82000500, 0x00ffffff, - 0x05020037, 0x5930141b, 0x0509fa70, 0x05d00803, - 0x591c1407, 0x90080587, 0x05000031, 0x90080582, - 0x0500002f, 0x90080580, 0x0500002d, 0x591c0202, - 0x82000d80, 0x0000ffff, 0x05000004, 0x59301a1b, - 0x800c0580, 0x05020026, 0x91380595, 0x05000022, - 0x4d300000, 0x4d2c0000, 0x411e6000, 0x59325809, - 0x0505feec, 0x05cc0fed, 0x592c0205, 0x82000500, - 0x000000ff, 0x90000594, 0x05000002, 0x640e621f, - 0x497a5c0a, 0x600e8000, 0x592c0a09, 0x05edfd3d, - 0x0511ffaa, 0x05020006, 0x0001fb2c, 0x59300a1f, - 0x90040d83, 0x05040fab, 0x497a6009, 0x5c025800, - 0x4a026403, 0x00000085, 0x64266203, 0x640a6407, - 0x42000800, 0x80004040, 0x0005f87c, 0x5c026000, - 0x0501f003, 0x59a8002c, 0x48023a05, 0x497a381e, - 0x0005f8e7, 0x5c023800, 0x1c01f000, 0x4933c857, - 0x4c580000, 0x4d2c0000, 0x59325809, 0x59342200, - 0x82102500, 0xffffdffd, 0x48126a00, 0x91383595, - 0x05000009, 0x0505febf, 0x05000045, 0x0509fb6f, - 0x05020003, 0x6008b000, 0x0509fb51, 0x0501f9c2, - 0x0501f058, 0x91cc1408, 0x6008b000, 0x91341c06, - 0x0501fd7d, 0x0502000f, 0x91cc140a, 0x6008b000, - 0x91341c08, 0x0501fd78, 0x0502000a, 0x05d9ff5c, - 0x59342200, 0x59cc1007, 0x800811c0, 0x05000003, - 0x480a6801, 0x84102542, 0x48126a00, 0x0501f047, - 0x4d3c0000, 0x417a7800, 0x0201f800, 0x0010b652, - 0x5c027800, 0x42000000, 0x001097f8, 0x0511fe4e, - 0x59340200, 0x84000558, 0x48026a00, 0x4d300000, - 0x05fdfbbb, 0x05cc0f99, 0x4936600a, 0x497a6009, - 0x64066407, 0x64066403, 0x600c3000, 0x0511fca8, - 0x8d0c0520, 0x0500000b, 0x41782800, 0x60043000, - 0x4d400000, 0x60a68000, 0x0511f886, 0x5c028000, - 0x64126407, 0x641e6203, 0x64066422, 0x0501f005, - 0x64066203, 0x602c0800, 0x05e9fea8, 0x05f5fdd5, - 0x5c026000, 0x0505fe7f, 0x0500001e, 0x0509fb2f, - 0x0502001e, 0x0501f984, 0x0501f01a, 0x42000000, - 0x001097fb, 0x0511fe28, 0x4d3c0000, 0x417a7800, - 0x0201f800, 0x0010b652, 0x42000000, 0x001097f8, - 0x0511fe21, 0x59340200, 0x84000558, 0x48026a00, - 0x600c3000, 0x41782800, 0x60142000, 0x4d400000, - 0x4d440000, 0x59368c03, 0x60a68000, 0x0509fd4e, - 0x5c028800, 0x5c028000, 0x5c027800, 0x05d9ff10, - 0x0005f8e7, 0x0501f002, 0x05fdfd33, 0x5c025800, - 0x5c00b000, 0x1c01f000, 0x4933c857, 0x41380000, - 0xb1383498, 0x05ce1f59, 0x0c01f001, 0x001062f3, - 0x001062f0, 0x001062f3, 0x001062f3, 0x001062f3, - 0x001062f3, 0x001062ef, 0x001062ef, 0x001062ef, - 0x001062ef, 0x001062ef, 0x001062ef, 0x001062ef, - 0x001062ef, 0x001062ef, 0x001062ef, 0x001062ef, - 0x001062ef, 0x001062ef, 0x001062ef, 0x001062ef, - 0x001062ef, 0x001062ef, 0x001062ef, 0x001062ef, - 0x001062ef, 0x001062ef, 0x001062ef, 0x001062ef, - 0x001062ef, 0x001062ef, 0x001062f3, 0x001062ef, - 0x001062f3, 0x001062f3, 0x001062ef, 0x001062ef, - 0x001062ef, 0x001062ef, 0x001062ef, 0x001062f3, - 0x001062ef, 0x001062ef, 0x001062ef, 0x001062ef, - 0x001062ef, 0x001062ef, 0x001062ef, 0x001062ef, - 0x001062ef, 0x001062f3, 0x001062f3, 0x001062ef, - 0x001062ef, 0x001062ef, 0x001062ef, 0x001062ef, - 0x001062ef, 0x001062ef, 0x001062ef, 0x001062ef, - 0x001062f3, 0x001062ef, 0x001062ef, 0x001062ef, - 0x001062ef, 0x001062ef, 0x001062f3, 0x001062f3, - 0x001062ef, 0x001062ef, 0x001062ef, 0x001062ef, - 0x001062f3, 0x001062ef, 0x001062ef, 0x001062ef, - 0x001062f3, 0x001062ef, 0x001062ef, 0x001062ef, - 0x001062f3, 0x001062ef, 0x001062ef, 0x001062ef, - 0x001062f3, 0x001062ef, 0x001062f3, 0x001062ef, - 0x001062ef, 0x001062ef, 0x001062ef, 0x001062ef, - 0x001062ef, 0x001062ef, 0x001062ef, 0x05cdfef7, - 0x64066203, 0x493a6403, 0x05f5f546, 0x4933c857, - 0x64066203, 0x493a6403, 0x05f5f542, 0x59300403, - 0xb0003498, 0x05ce1eed, 0x91383593, 0x05000074, - 0x913835a7, 0x0502003c, 0x4933c857, 0x05f5fd9e, - 0x0511fcc3, 0x0505fec6, 0x05000009, 0x0505fed8, - 0x05000033, 0x59300403, 0x90000da2, 0x0502002d, - 0x05fdfcec, 0x0500002d, 0x0501f02d, 0x05d9fe88, - 0x601c0800, 0x05e9fdfd, 0x0501f8df, 0x4d440000, - 0x59368c03, 0x83440580, 0x000007fe, 0x05020007, - 0x59a8121b, 0x84081540, 0x05edfdc8, 0x05020002, - 0x8408154a, 0x480b521b, 0x60a68000, 0x4d3c0000, - 0x417a7800, 0x0201f800, 0x0010b652, 0x5c027800, - 0x916c0583, 0x0500000b, 0x5932680a, 0x59340008, - 0x800001c0, 0x05020007, 0x59368c03, 0x4933c857, - 0x4937c857, 0x4947c857, 0x05e9fe6a, 0x0501f008, - 0x42000000, 0x001097f8, 0x0511fd67, 0x60543000, - 0x41782800, 0x600c2000, 0x0509fc9b, 0x5c028800, - 0x0509f85a, 0x0005f0e7, 0x1c01f000, 0x0501f8b6, - 0x05fdf7fc, 0x91380594, 0x05000008, 0x4933c857, - 0x05f9f93d, 0x05fe02fd, 0x59300203, 0x90000582, - 0x050000d5, 0x05cdfea5, 0x4933c857, 0x05f5fd5a, - 0x0511fc7f, 0x4d3c0000, 0x417a7800, 0x0201f800, - 0x0010b652, 0x5c027800, 0x60583000, 0x41782800, - 0x4d400000, 0x4d440000, 0x59368c03, 0x60242000, - 0x60a68000, 0x0509fc7c, 0x5c028800, 0x5c028000, - 0x42000000, 0x001097f8, 0x0511fd3f, 0x0505fe70, - 0x0502000b, 0x05d9fe3a, 0x0501f893, 0x59340c03, - 0x82040580, 0x000007fe, 0x05fe07d6, 0x59a80a1b, - 0x84040d40, 0x4807521b, 0x05fdf7d2, 0x0505fe78, - 0x05020003, 0x0501f888, 0x05fdf7ce, 0x59300403, - 0x90000db2, 0x05020003, 0x05ddf89f, 0x05fdf7c9, - 0x90000da2, 0x05000880, 0x05fdf7c6, 0x4933c857, - 0x4803c857, 0x0c01f001, 0x001063d3, 0x001063d3, - 0x001063d3, 0x001063d3, 0x001063d3, 0x001063d3, - 0x001063d2, 0x001063d2, 0x001063d2, 0x001063d2, - 0x001063d2, 0x001063d2, 0x001063d2, 0x001063d2, - 0x001063d2, 0x001063d2, 0x001063d2, 0x001063d2, - 0x001063d2, 0x001063d2, 0x001063d2, 0x001063d2, - 0x001063d2, 0x001063d2, 0x001063d2, 0x001063d2, - 0x001063d2, 0x001063d2, 0x001063d2, 0x001063d2, - 0x001063d5, 0x001063e8, 0x001063d2, 0x001063e8, - 0x001063e8, 0x001063d2, 0x001063d2, 0x001063d2, - 0x001063d2, 0x001063d2, 0x001063e8, 0x001063e8, - 0x001063d2, 0x001063d2, 0x001063d2, 0x001063d2, - 0x001063d2, 0x001063d2, 0x001063d2, 0x001063d2, - 0x001063e0, 0x001063e8, 0x001063d2, 0x001063db, - 0x001063d2, 0x001063d2, 0x001063d2, 0x001063db, - 0x001063d2, 0x001063d2, 0x001063d2, 0x001063e8, - 0x001063de, 0x001063d2, 0x001063d2, 0x001063d2, - 0x001063d2, 0x001063e8, 0x001063e8, 0x001063d2, - 0x001063d2, 0x001063d2, 0x001063d2, 0x001063e8, - 0x001063d2, 0x001063d2, 0x001063d2, 0x001063e8, - 0x001063d2, 0x001063d2, 0x001063d2, 0x001063e8, - 0x001063d2, 0x001063d2, 0x001063d2, 0x001063e8, - 0x001063d2, 0x001063e8, 0x001063d2, 0x001063d2, - 0x001063d2, 0x001063d2, 0x001063d2, 0x001063d2, - 0x001063d2, 0x001063d2, 0x05cdfe14, 0x640a6203, - 0x0505f667, 0x64166203, 0x59a8002c, 0x48026205, - 0x59a8002a, 0x48026006, 0x1c01f000, 0x59300820, - 0x49780a05, 0x0501f00b, 0x0505ffb0, 0x0005f0e7, - 0x05ddf829, 0x05f5fd52, 0x05000003, 0x05f5fcba, - 0x0005f0e7, 0x05f5fcb8, 0x0005f8e7, 0x05f5f538, - 0x4933c857, 0x640a6203, 0x59a8002a, 0x48026006, - 0x1c01f000, 0x4933c857, 0x0505fcf6, 0x05000025, - 0x4d2c0000, 0x0509f9a5, 0x05020007, 0x4d400000, - 0x60c68000, 0x60100800, 0x0509f87f, 0x5c028000, - 0x0501f01b, 0x59300c07, 0x90040590, 0x05000003, - 0x90040591, 0x05020007, 0x64c65a07, 0x6412580e, - 0x4a02580f, 0x000000ff, 0x0001fb2c, 0x0501f010, - 0x592c0405, 0x8c00051e, 0x0500000d, 0x4a025a05, - 0x00000103, 0x4a025806, 0x01000000, 0x4da00000, - 0x4cec0000, 0x5931d823, 0x58ef400a, 0x58ec0008, - 0x0801f800, 0x5c01d800, 0x5c034000, 0x5c025800, - 0x1c01f000, 0x4933c857, 0x59340400, 0x82000500, - 0x000000ff, 0x9000348c, 0x05ce1dcc, 0x59303403, - 0xb0180d8d, 0x050407c2, 0x90180db3, 0x05040789, - 0x90180da8, 0x050405ee, 0x90180da9, 0x050405f8, - 0xb0180d97, 0x05080485, 0x90180d9f, 0x05fc0386, - 0xb0180d95, 0x05fc0366, 0x90180d80, 0x05fc05f0, - 0x90180da2, 0x05fc03a2, 0x90180db5, 0x05fc0468, - 0x90180db9, 0x05fc05a6, 0x90180dbd, 0x05fc03cf, - 0xb0180d84, 0x05fc03fb, 0xb0180d89, 0x05fc042e, - 0xb0180d83, 0x050800c2, 0x90180d84, 0x05020002, - 0x60040000, 0x91380d95, 0x05000004, 0x91380d96, - 0x05fe01fa, 0x0501f1c5, 0x4c000000, 0x0511fb82, - 0x5c000000, 0x4d2c0000, 0x4d3c0000, 0x0c01f804, - 0x5c027800, 0x5c025800, 0x1c01f000, 0x0010645e, - 0x00106462, 0x0010645e, 0x001064b2, 0x0010645e, - 0x001065a5, 0x00106619, 0x0010645e, 0x0010645e, - 0x001065ef, 0x0010645e, 0x001065fa, 0x4933c857, - 0x497a6008, 0x59300809, 0x58040000, 0x4a000a05, - 0x00000103, 0x0005f0e7, 0x4933c857, 0x40000000, - 0x40000000, 0x1c01f000, 0x4933c857, 0x05e9ff25, - 0x59a80073, 0xb00005b4, 0x0502003c, 0x050dfe0d, - 0x0502000e, 0x0501f83c, 0x0505fc7a, 0x05000009, - 0x0509f92a, 0x05020007, 0x41780800, 0x4d400000, - 0x60028000, 0x0509f804, 0x5c028000, 0x0501f002, - 0x05d9fd1f, 0x0005f0e7, 0x0505fc6e, 0x05000005, - 0x0509f91e, 0x05020003, 0x05fdff73, 0x0005f0e7, - 0x417a7800, 0x0201f800, 0x0010b652, 0x42000000, - 0x001097f8, 0x0511fc14, 0x59340200, 0x84000558, - 0x48026a00, 0x600c3000, 0x0511fa75, 0x4d300000, - 0x05fdf97f, 0x05cc0d5d, 0x4936600a, 0x497a6009, - 0x64066407, 0x64066403, 0x8d0c0520, 0x0500000b, - 0x64126407, 0x641e6203, 0x64066422, 0x60043000, - 0x4d400000, 0x60a68000, 0x41782800, 0x050dfe49, - 0x5c028000, 0x0501f005, 0x602c0800, 0x05e9fc6f, - 0x64066203, 0x05f5fb9b, 0x5c026000, 0x05fdff4e, - 0x05d9fcf3, 0x0005f0e7, 0x05fdff4b, 0x60040000, - 0x0501f0c9, 0x4933c857, 0x59340200, 0x8c000500, - 0x05000009, 0x4d3c0000, 0x417a7800, 0x05e9fc54, - 0x5c027800, 0x8d0c0520, 0x05000003, 0x60180800, - 0x05e9fc5a, 0x1c01f000, 0x4933c857, 0x59a80873, - 0xb00405b4, 0x0500000e, 0x4807c857, 0x82040580, - 0x00000100, 0x050200a0, 0x59cc0408, 0x4803c857, - 0x8c000500, 0x0500009c, 0x59341403, 0x82080580, - 0x000007fe, 0x05000006, 0x0501f097, 0x59341403, - 0x82080580, 0x000007fe, 0x05020015, 0x59a8021b, - 0x8c000506, 0x05000010, 0x59cc0000, 0x82000500, - 0x000000ff, 0x59a8080f, 0x82040d00, 0x000000ff, - 0x80040580, 0x05000008, 0x05d9fcc1, 0x0005f8e7, - 0x42000000, 0x001097e9, 0x0511fbbf, 0x6006d800, - 0x05e9f0ba, 0x0501fa18, 0x0501f043, 0x05e9fcea, - 0x59341403, 0x82080580, 0x000007fc, 0x05020022, - 0x4a026802, 0x00fffffc, 0x0505fc02, 0x0500000c, - 0x0509f8b2, 0x0502000a, 0x0501f89a, 0x41780800, - 0x4d400000, 0x60028000, 0x0505ff8b, 0x5c028000, - 0x60100800, 0x05e9fc1d, 0x0005f0e7, 0x60100800, - 0x05e9fc1a, 0x05d9fca2, 0x59300c1f, 0x900405a1, - 0x05000002, 0x0005f0e7, 0x61f6880f, 0x42003000, - 0x00fffffd, 0x05e9fc41, 0x05ce0cec, 0x4936600a, - 0x497a6c12, 0x640e601e, 0x64066203, 0x648a6403, - 0x05f5f338, 0x59a80086, 0x8c000502, 0x0500000d, - 0x05edfbda, 0x60401000, 0x05020008, 0x59340002, - 0x82000500, 0x00ff0000, 0x82000580, 0x00ff0000, - 0x05000004, 0x60201000, 0x05edf966, 0x0502004a, - 0x0505fbd4, 0x0500004b, 0x0509f884, 0x05020005, - 0x592c0405, 0x8c00051c, 0x05fe07cc, 0x0501f869, - 0x60140800, 0x05e9fbf1, 0x64066203, 0x640e6403, - 0x05f5f31c, 0x59cc0408, 0x8c000518, 0x05000016, - 0x0505fe42, 0x05edfbbd, 0x05000008, 0x59cc0408, - 0x8c000516, 0x05000005, 0x5930041f, 0x900005a1, - 0x05fe07ba, 0x1c01f000, 0x59a8021b, 0x8400054a, - 0x4803521b, 0x4803541b, 0x59a8000f, 0x84000570, - 0x48038832, 0x5930041f, 0x900005a1, 0x05fe07af, - 0x1c01f000, 0x61bc1001, 0x480b500f, 0x497b8830, - 0x84081570, 0x480b8832, 0x0505fe45, 0x59a8021b, - 0x84000548, 0x4803521b, 0x4803541b, 0x050dfd7e, - 0x05fe07a2, 0x599c0019, 0x8c000510, 0x05020029, - 0x59a8021b, 0x8400054c, 0x4803521b, 0x601c0800, - 0x05e9fbc2, 0x417a7800, 0x05e9fbb5, 0x61a00001, - 0x05f1fdfd, 0x05e80bed, 0x05ce0c98, 0x4936600a, - 0x59340200, 0x8400051a, 0x48026a00, 0x600c0800, - 0x05e9fbb6, 0x64066407, 0x64066203, 0x640a6403, - 0x05f5f2e0, 0x05fdfe94, 0x60040000, 0x0501f012, - 0x599c0017, 0x8c00050a, 0x05fc07ba, 0x60100800, - 0x05e9fbaa, 0x4937507d, 0x59a8021b, 0x8c000508, - 0x05000008, 0x599c0018, 0x8c00051c, 0x05000005, - 0x61a00807, 0x42001000, 0x0010c15e, 0x05f5f935, - 0x0005f0e7, 0x4933c857, 0x80003540, 0x05000003, - 0x601c0800, 0x05e9fb99, 0x801831c0, 0x0502000b, - 0x59302009, 0x801021c0, 0x05000004, 0x58100405, - 0x8c00051e, 0x05020005, 0x59341c03, 0x60102000, - 0x60483000, 0x05e5f8ad, 0x05d9fc15, 0x0005f0e7, - 0x4c5c0000, 0x4d2c0000, 0x59325809, 0x05f1f9c6, - 0x5c025800, 0x59cc0008, 0x48002805, 0x59cc0009, - 0x48002806, 0x49782807, 0x49782808, 0x49782809, - 0x4978280a, 0x59cc0013, 0x8c00053e, 0x05000009, - 0x59cc0414, 0x900001c0, 0x59ccbc15, 0x805c0540, - 0x48002807, 0x59cc0416, 0x900001c0, 0x48002808, - 0x59cc0017, 0x8c00053e, 0x05000009, 0x59cc0418, - 0x900001c0, 0x59ccbc19, 0x805c0540, 0x48002809, - 0x59cc041a, 0x900001c0, 0x4800280a, 0x5c00b800, - 0x1c01f000, 0x4933c857, 0x59a80073, 0x90000594, - 0x05020036, 0x59a80086, 0x8c000502, 0x05000011, - 0x05edfb32, 0x60401000, 0x05020008, 0x59340002, - 0x82000500, 0x00ff0000, 0x82000580, 0x00ff0000, - 0x05000008, 0x60201000, 0x05edf8be, 0x05000005, - 0x59a80086, 0x8400054c, 0x48035086, 0x0501f023, - 0x916c0583, 0x05020008, 0x59300009, 0x80000540, - 0x05020005, 0x59341c03, 0x60182000, 0x604c3000, - 0x05e5f866, 0x05e9fc57, 0x05fdfedf, 0x0501f9cd, - 0x05020016, 0x59340404, 0x80000540, 0x05000013, - 0x60180800, 0x05e9fb3d, 0x0505fb16, 0x0500000d, - 0x0505ffc6, 0x05020007, 0x41780800, 0x4d400000, - 0x60028000, 0x0505fea0, 0x5c028000, 0x0005f0e7, - 0x4a025a05, 0x00000103, 0x4a025806, 0x02000000, - 0x05d9fbb7, 0x0005f0e7, 0x05edf84d, 0x0505fb05, - 0x05000005, 0x0505ffb5, 0x05020003, 0x05fdfe0a, - 0x0005f0e7, 0x05fdfe08, 0x0511f9df, 0x80000580, - 0x59a80086, 0x8c00050c, 0x05000004, 0x8400050c, - 0x48035086, 0x90000541, 0x05fdf77f, 0x4933c857, - 0x59a80073, 0x90000594, 0x05020006, 0x602c0800, - 0x05e9fb16, 0x64066203, 0x64066403, 0x05f5f241, - 0x60040000, 0x05fdf774, 0x4933c857, 0x40003000, - 0x59a80073, 0x90000584, 0x05020006, 0x9018358b, - 0x05020003, 0x601c0800, 0x05e9fb08, 0x0005f0e7, - 0x60040000, 0x05fdf768, 0x4803c857, 0x4d2c0000, - 0x4d3c0000, 0x0c01f804, 0x5c027800, 0x5c025800, - 0x1c01f000, 0x0010645e, 0x00106625, 0x0010645e, - 0x00106668, 0x0010645e, 0x001066b5, 0x00106619, - 0x0010645e, 0x0010645e, 0x001066cb, 0x0010645e, - 0x001066d6, 0x4933c857, 0x4d1c0000, 0x59301403, - 0x90080583, 0x05000006, 0x9008159e, 0x05020002, - 0x0005f8e7, 0x5c023800, 0x1c01f000, 0x05fdff82, - 0x05fdf7fd, 0x4933c857, 0x42000000, 0x001097fc, - 0x0511fa6d, 0x0511f99c, 0x05e9fd5e, 0x0505fab9, - 0x05000007, 0x0505ff69, 0x05020005, 0x6008b000, - 0x0505ff4b, 0x05fdfdbc, 0x0005f0e7, 0x0501f8ae, - 0x05020020, 0x417a7800, 0x05e9fac9, 0x417a7800, - 0x0201f800, 0x0010b652, 0x42000000, 0x001097f8, - 0x0511fa59, 0x59340200, 0x84000558, 0x48026a00, - 0x640a6403, 0x600c3000, 0x0511f8b9, 0x8d0c0520, - 0x0500000b, 0x4d400000, 0x41782800, 0x60143000, - 0x60a68000, 0x050dfc97, 0x5c028000, 0x641e6203, - 0x64126407, 0x64066422, 0x1c01f000, 0x600c0800, - 0x05e9faba, 0x64066203, 0x05f5f9e6, 0x05fdf7fb, - 0x59cc0407, 0x90000589, 0x05020009, 0x59340412, - 0x82000500, 0x000000ff, 0x0500000b, 0x80000040, - 0x48026c12, 0x642a6006, 0x05fdf7f0, 0x59cc0207, - 0x82000500, 0x0000ff00, 0x82000580, 0x00001900, - 0x05fc07d3, 0x05fdfd88, 0x80000580, 0x05fdf706, - 0x4933c857, 0x0505fa7b, 0x0500000b, 0x0505ff2b, - 0x05020009, 0x4c580000, 0x6008b000, 0x0505ff0c, - 0x5c00b000, 0x05fdfd7c, 0x601c0800, 0x05e9fa97, - 0x0005f0e7, 0x05fdfd78, 0x59cc3407, 0x82183500, - 0x000000ff, 0x90180585, 0x05000016, 0x9018058b, - 0x05000011, 0x59cc0207, 0x82000500, 0x0000ff00, - 0x05020003, 0x90180589, 0x0500000e, 0x82000580, - 0x00001900, 0x05020008, 0x90180589, 0x05000009, - 0x60100800, 0x05e9fa81, 0x05d9fb09, 0x0511f93a, - 0x0005f0e7, 0x0511f938, 0x60040000, 0x05fdf6de, - 0x0505fa54, 0x59325809, 0x05000008, 0x592c0205, - 0x82000580, 0x00000139, 0x05fc07f7, 0x592c0405, - 0x8c00051e, 0x05fe07f4, 0x59340412, 0x800001c0, - 0x05000006, 0x80000040, 0x48026c12, 0x642a6006, - 0x645a6403, 0x1c01f000, 0x59340403, 0x82000580, - 0x000007fe, 0x05020006, 0x59a8021b, 0x84000540, - 0x4803521b, 0x05e5ffe2, 0x05fdf7e3, 0x0511f91a, - 0x417a7800, 0x0201f800, 0x0010b652, 0x60143000, - 0x0511f84b, 0x42000000, 0x001097f8, 0x0511f9e2, - 0x05fdf7da, 0x4933c857, 0x0501f838, 0x05020006, - 0x60140800, 0x05e9fa51, 0x64066203, 0x640e6403, - 0x05f5f17c, 0x60100800, 0x05e9fa4c, 0x0505fed7, - 0x05020007, 0x4c580000, 0x6008b000, 0x0505feb8, - 0x5c00b000, 0x05fdfd28, 0x0005f0e7, 0x05fdfd26, - 0x0511f8fd, 0x80000580, 0x05fdf6a3, 0x4933c857, - 0x0501f822, 0x05020006, 0x60240800, 0x05e9fa3b, - 0x64066203, 0x64166403, 0x05f5f166, 0x0511f8f2, - 0x60040000, 0x05fdf698, 0x4933c857, 0x0501f817, - 0x05020006, 0x602c0800, 0x05e9fa30, 0x64066203, - 0x64066403, 0x05f5f15b, 0x0511f8e7, 0x60040000, - 0x05fdf68d, 0x4933c857, 0x59cc0407, 0x90000583, - 0x05020009, 0x59cc0207, 0x82000500, 0x0000ff00, - 0x82000d80, 0x00002a00, 0x05000003, 0x82000d80, - 0x00001e00, 0x1c01f000, 0x4933c857, 0x90000541, - 0x1c01f000, 0x4933c857, 0x4d400000, 0x4c580000, - 0x59a8021b, 0x90000543, 0x4803521b, 0x0501f850, - 0x05000005, 0x4d300000, 0x4d340000, 0x4d440000, - 0x0501f01b, 0x0501f876, 0x05000027, 0x4d300000, - 0x4d340000, 0x4d440000, 0x59cc0408, 0x8c00051e, - 0x05020004, 0x59a8021b, 0x84000552, 0x4803521b, - 0x8d0c0520, 0x05000005, 0x60aa8000, 0x61fe89ff, - 0x60083000, 0x050dfffe, 0x60aa8000, 0x4d3c0000, - 0x60027804, 0x0201f800, 0x0010b5d3, 0x5c027800, - 0x42000000, 0x001097f8, 0x0511f97f, 0x0201f800, - 0x0010b83b, 0x6040b000, 0x61c2880f, 0x83440580, - 0x000007fe, 0x05000002, 0x05e9fa76, 0x81468800, - 0x8058b040, 0x05fe07fa, 0x5c028800, 0x5c026800, - 0x5c026000, 0x05e9faa0, 0x59cc0800, 0x82040d00, - 0x00ffffff, 0x4807500f, 0x80040110, 0x48035018, - 0x48038881, 0x59a80a1b, 0x84040d50, 0x59cc0013, - 0x8c00053e, 0x05000003, 0x8c000536, 0x05000004, - 0x59cc0017, 0x8c000536, 0x05020002, 0x84040d10, - 0x4807521b, 0x4807541b, 0x4c040000, 0x0509f9d7, - 0x5c000800, 0x05edf9a1, 0x05000006, 0x59cc0009, - 0x48035028, 0x59cc000a, 0x48035029, 0x0505fc1f, - 0x5c00b000, 0x5c028000, 0x1c01f000, 0x4933c857, - 0x59a8141b, 0x82080580, 0x0000ffff, 0x0500000b, - 0x4c080000, 0x05edf991, 0x5c001000, 0x0502000b, - 0x59cc0408, 0x8c000518, 0x05000005, 0x8c08050a, - 0x0500000a, 0x80000580, 0x1c01f000, 0x8c080508, - 0x05fe07fd, 0x0501f005, 0x90080530, 0x05020003, - 0x8c080506, 0x05fe07f8, 0x4a03541b, 0x0000ffff, - 0x42000000, 0x00109745, 0x0511f933, 0x60303000, - 0x61fc19ff, 0x601c2000, 0x05e1fec4, 0x4d400000, - 0x4d3c0000, 0x60043000, 0x050dffa1, 0x60aa8000, - 0x60027804, 0x0201f800, 0x0010b5d3, 0x5c028000, - 0x5c027800, 0x90000541, 0x1c01f000, 0x4933c857, - 0x4c580000, 0x59a80018, 0x800001c0, 0x0500001b, - 0x59cc1000, 0x82081500, 0x00ffff00, 0x80081110, - 0x80080580, 0x05000004, 0x42000000, 0x001097db, - 0x0501f010, 0x91cc140b, 0x6008b000, 0x91341c06, - 0x0501f829, 0x05000004, 0x42000000, 0x001097dc, - 0x0501f008, 0x91cc140d, 0x6008b000, 0x91341c08, - 0x0501f821, 0x05000005, 0x42000000, 0x001097dd, - 0x0511f905, 0x90000541, 0x5c00b000, 0x1c01f000, - 0x4933c857, 0x59cc0206, 0x90000594, 0x05020015, - 0x59cc0407, 0x82000580, 0x00000800, 0x05020011, - 0x59cc0207, 0x8c00051a, 0x0500000d, 0x82000500, - 0x00000f00, 0x82000580, 0x00000100, 0x05020008, - 0x59cc020a, 0x8c000508, 0x05020003, 0x8c00050a, - 0x05000003, 0x80000580, 0x1c01f000, 0x90000541, - 0x1c01f000, 0x5c000000, 0x4c000000, 0x4803c857, - 0x480bc857, 0x480fc857, 0x485bc857, 0x50080800, - 0x500c0000, 0x80042580, 0x05020007, 0x80081000, - 0x800c1800, 0x8058b040, 0x05fe07f9, 0x80000580, - 0x1c01f000, 0x4803c857, 0x4807c857, 0x480bc857, - 0x480fc857, 0x80040480, 0x05001004, 0x60040000, - 0x90040d41, 0x1c01f000, 0x41780000, 0x05fdf7fd, - 0xb1380493, 0x05ce1a1d, 0xb138048b, 0x05cc1a1b, - 0x0c01f001, 0x001067d6, 0x001067d6, 0x001067d6, - 0x001067d6, 0x001067d5, 0x001067d5, 0x001067d5, - 0x001067d6, 0x05cdfa11, 0x493bc857, 0x64366203, - 0x493a6403, 0x42000800, 0x80000000, 0x0005f07c, - 0x91380593, 0x05020005, 0x59300403, 0xb0000590, - 0x05ce0a06, 0x0005f0e7, 0x4933c857, 0x913805a7, - 0x05020026, 0x4933c857, 0x05f5f8b7, 0x4d3c0000, - 0x417a7800, 0x0201f800, 0x0010b652, 0x5c027800, - 0x42000000, 0x001097f8, 0x0511f8a7, 0x4d2c0000, - 0x59325809, 0x0505f8f3, 0x492fc857, 0x0500000b, - 0x4a025a05, 0x00000103, 0x59300c02, 0x48065c07, - 0x64a65a07, 0x497a580a, 0x592c0c09, 0x84040d50, - 0x48065c09, 0x0001fb2c, 0x5c025800, 0x60543000, - 0x41782800, 0x600c2000, 0x4d400000, 0x4d440000, - 0x59368c03, 0x60a68000, 0x0505ffc7, 0x5c028800, - 0x5c028000, 0x0005f0e7, 0x91380594, 0x05020009, - 0x59300403, 0xb0000c93, 0x05ce19d8, 0xb0000480, - 0x05cc19d6, 0x4933c857, 0x4803c857, 0x0c01f009, - 0xb1380593, 0x05000006, 0xb1380588, 0x05ce09cf, - 0x59300403, 0xb0000590, 0x05ce09cc, 0x1c01f000, - 0x00106830, 0x0010682f, 0x0010682f, 0x0010682f, - 0x0010682f, 0x0010682f, 0x0010682f, 0x0010682f, - 0x0010682f, 0x0010682f, 0x0010682f, 0x00106840, - 0x00106840, 0x00106840, 0x00106840, 0x0010682f, - 0x00106840, 0x0010682f, 0x00106840, 0x05cdf9b7, - 0x4933c857, 0x05f5f86c, 0x0505f8b2, 0x000400e7, - 0x4d2c0000, 0x59325809, 0x4a025a05, 0x00000103, - 0x59300402, 0x48025c07, 0x641a5a07, 0x497a580a, - 0x0001fb2c, 0x5c025800, 0x0505f976, 0x0005f0e7, - 0x4933c857, 0x05f5f85c, 0x0005f0e7, 0x05cdf9a3, - 0x5930001e, 0x800001c0, 0x05060f76, 0x59300004, - 0x8c00053e, 0x05020027, 0x0509f81a, 0x050200a6, - 0x59325809, 0x592c0c09, 0x59cc2808, 0x82141d00, - 0x00000c00, 0x05000002, 0x59cc1809, 0x84040d58, - 0x48065c09, 0x82143500, 0x00000fff, 0x05020020, - 0x59340200, 0x8c00050e, 0x0502008d, 0x0005f987, - 0x05020005, 0x64025a07, 0x59300813, 0x800409c0, - 0x05020955, 0x4a025a05, 0x00000103, 0x48065808, - 0x480e580b, 0x901409c0, 0x4806580a, 0x59300c02, - 0x48065c07, 0x0505fd32, 0x0001fb2c, 0x05e9fb7f, - 0x59cc0008, 0x8c000518, 0x050601ea, 0x0005f0e7, - 0x05f5fc09, 0x05fc07d9, 0x4d3c0000, 0x600a7800, - 0x0501fd3c, 0x5c027800, 0x05fdf7d4, 0x4817c857, - 0x480fc857, 0x82180500, 0x000000ff, 0x0500000b, - 0x592c0205, 0x82000500, 0x000000ff, 0xb0000588, - 0x05020006, 0x592c0408, 0x800001c0, 0x05000003, - 0x0505fe4c, 0x0505f683, 0x82180d00, 0x00000c00, - 0x05000004, 0x59340200, 0x8c00050e, 0x0502004b, - 0x64025a07, 0x41782000, 0x8c180510, 0x05000009, - 0x59cc200b, 0x801021c0, 0x05000006, 0x59cc000c, - 0x82000500, 0x000000ff, 0x05000002, 0x4803c857, - 0x4812580d, 0x41780000, 0x8c180512, 0x05000002, - 0x59cc000a, 0x4802580c, 0x80100c00, 0x05fc07bc, - 0x9004149d, 0x05001005, 0x592c0405, 0x8c00051e, - 0x0500001c, 0x60700800, 0x4c040000, 0x4c0c0000, - 0x4c140000, 0x0005f987, 0x05020005, 0x64025a07, - 0x59300813, 0x800409c0, 0x05020907, 0x5c002800, - 0x5c001800, 0x4a025a05, 0x00000103, 0x48065808, - 0x480e580b, 0x901409c0, 0x4806580a, 0x5c000800, - 0x4c500000, 0x4c540000, 0x91cca40c, 0x912cac0e, - 0x0501fca1, 0x5c00a800, 0x5c00a000, 0x05fdf7a8, + 0x4c580000, 0x59325809, 0x592e5801, 0x912cac06, + 0x91cca406, 0x59a80885, 0x82040d00, 0x000003ff, + 0x9004148f, 0x05001011, 0x603cb000, 0x0515f99a, + 0x592e5801, 0x912cac06, 0x90080c8f, 0x05001008, + 0x603cb000, 0x0515f994, 0x592e5801, 0x912cac06, + 0x9004148f, 0x05001005, 0x603c1000, 0x4008b000, + 0x0515f98d, 0x0501f003, 0x4004b000, 0x0515f98a, + 0x5931d823, 0x58ef400a, 0x58ee580c, 0x4a025a05, + 0x00000103, 0x592e5801, 0x58ec0008, 0x0801f800, + 0x0005f8e7, 0x5c00b000, 0x5c00a800, 0x5c00a000, + 0x5c025800, 0x1c01f000, 0x4933c857, 0x4d2c0000, + 0x4c500000, 0x4c540000, 0x4c580000, 0x59cc0006, + 0x82000d80, 0x01000000, 0x05000021, 0x59cc0007, + 0x9000b1c0, 0x8258b500, 0x000000ff, 0x8058b104, + 0x9058b402, 0x90580c87, 0x05001002, 0x6018b000, + 0x91cca406, 0x59301009, 0x800811c0, 0x05d00923, + 0x9008ac06, 0x0515f964, 0x82000d00, 0xff000000, + 0x800409c0, 0x05000014, 0x8200b500, 0x000000ff, + 0x05000011, 0x8058b104, 0x90580c8e, 0x05001002, + 0x6034b000, 0x58081001, 0x800811c0, 0x05d00913, + 0x9008ac06, 0x0515f954, 0x0501f007, 0x59301009, + 0x800811c0, 0x05d0090d, 0x48001006, 0x59cc0007, + 0x48001007, 0x05fdff5a, 0x5c00b000, 0x5c00a800, + 0x5c00a000, 0x5c025800, 0x1c01f000, 0x4933c857, + 0x4d2c0000, 0x4c500000, 0x4c540000, 0x4c580000, + 0x6008b000, 0x59cc0806, 0x82040580, 0x01000000, + 0x05000004, 0x8204b500, 0x0000ffff, 0x8058b104, + 0x91cca406, 0x59300009, 0x9000ac06, 0x0515f936, + 0x05fdff43, 0x5c00b000, 0x5c00a800, 0x5c00a000, + 0x5c025800, 0x1c01f000, 0x4933c857, 0x4803c857, + 0x4807c857, 0x480bc857, 0x480fc857, 0x4813c857, + 0x481bc857, 0x492fc857, 0x4d2c0000, 0x4c000000, + 0x05d1fc51, 0x5c000000, 0x0500000d, 0x48025803, + 0x481a5801, 0x48125808, 0x48065805, 0x480a5806, + 0x480e5807, 0x5c001000, 0x4c080000, 0x480a5809, + 0x412c1000, 0x0001f81c, 0x90000541, 0x5c025800, + 0x1c01f000, 0x4933c857, 0x4937c857, 0x4d1c0000, + 0x05f5fc50, 0x05020020, 0x59cc0001, 0x82000500, + 0x00ffffff, 0x59341002, 0x82081500, 0x00ffffff, + 0x80080580, 0x05020018, 0x497a6205, 0x60d40800, + 0x0509fb7c, 0x0502000f, 0x591c001e, 0x800001c0, + 0x0500000c, 0x497a381e, 0x591c0416, 0x8c000502, + 0x05d008ba, 0x84000502, 0x48023c16, 0x591c1407, + 0x90080583, 0x05000005, 0x90080586, 0x05000005, + 0x05fdfd19, 0x0501f004, 0x0501f805, 0x0501f002, + 0x0501f8b2, 0x5c023800, 0x1c01f000, 0x4d2c0000, + 0x591e5809, 0x4933c857, 0x491fc857, 0x493bc857, + 0x492fc857, 0x91380595, 0x050000a6, 0x91380596, + 0x050200a2, 0x4d300000, 0x411e6000, 0x59cc0207, + 0x4803c857, 0x82000d00, 0x0000ff00, 0x82040580, + 0x00001700, 0x05000004, 0x82040580, 0x00000300, + 0x05020055, 0x591c0203, 0x4803c857, 0x9000058d, + 0x0500003a, 0x812e59c0, 0x0500008f, 0x591c0202, + 0x4803c857, 0x82000580, 0x0000ffff, 0x05020079, + 0x592c020b, 0x4803c857, 0x90000503, 0x90000582, + 0x05020007, 0x592c0810, 0x591c0013, 0x4803c857, + 0x4807c857, 0x80040580, 0x0502006e, 0x591c0416, + 0x4803c857, 0x8c000500, 0x0502006a, 0x42000000, + 0x0010985e, 0x0511fff2, 0x41780800, 0x591c1006, + 0x60280000, 0x05f5fe9b, 0x592c0407, 0x4803c857, + 0x800001c0, 0x0500000b, 0x80080c80, 0x05001003, + 0x05d2086e, 0x80001040, 0x480a5c07, 0x800811c0, + 0x05020004, 0x0201f800, 0x0010c012, 0x0501f063, + 0x0509f8ca, 0x591c0819, 0x591c001a, 0x48065809, + 0x4802580a, 0x59300008, 0x8c000500, 0x05d6098a, + 0x497a3809, 0x0001fa84, 0x0502004a, 0x411e6000, + 0x05fdfcc1, 0x0501f055, 0x05fdfcf5, 0x05000013, + 0x591c0006, 0x48026006, 0x4936600a, 0x640e6407, + 0x492e6009, 0x591c0819, 0x591c101a, 0x48066019, + 0x480a601a, 0x4d380000, 0x591e7403, 0x4d300000, + 0x411e6000, 0x05fdfcb0, 0x5c026000, 0x0005f905, + 0x5c027000, 0x0501f041, 0x59a8002c, 0x48023a05, + 0x0501f03e, 0x59cc0407, 0x9000058b, 0x05020026, + 0x59340a00, 0x84040d0e, 0x48066a00, 0x592c0a05, + 0x82040d00, 0x000000ff, 0x90040d94, 0x05000002, + 0x640e621f, 0x59300008, 0x8c000500, 0x05d6095e, + 0x4d400000, 0x497a5c0a, 0x600e8000, 0x592c0a09, + 0x05edfdbe, 0x0515f8bf, 0x05020006, 0x0001fb2c, + 0x59300a1f, 0x90040d83, 0x0508088c, 0x497a6009, + 0x5c028000, 0x4a026403, 0x00000085, 0x64266203, + 0x640a6407, 0x42000800, 0x80004040, 0x0509ff19, + 0x0005f87c, 0x4203e000, 0xb0800000, 0x6023f800, + 0x0501f016, 0x59cc0207, 0x82000580, 0x00002a00, + 0x05020004, 0x59a8002c, 0x48023a05, 0x0501f00f, + 0x812e59c0, 0x05d00811, 0x4a025a05, 0x00000103, + 0x591c0008, 0x8c000500, 0x05d60937, 0x591c0402, + 0x48025c07, 0x640e5a07, 0x497a5c0a, 0x0001fb2c, + 0x05fdfc6d, 0x05edfa1c, 0x5c026000, 0x0005f8e7, + 0x0501f002, 0x5c026000, 0x5c025800, 0x1c01f000, + 0x0501f813, 0x05fdf7fd, 0x4933c857, 0x91380595, + 0x05020004, 0x59a8002c, 0x48023a05, 0x0501f009, + 0x91380596, 0x05020009, 0x4d300000, 0x411e6000, + 0x0511fb95, 0x0005f853, 0x0005f8e7, 0x5c026000, + 0x497a381e, 0x0005f8e7, 0x1c01f000, 0x4c5c0000, + 0x591c0416, 0x84000540, 0x48023c16, 0x59ccb80b, + 0x4933c857, 0x491fc857, 0x492fc857, 0x4803c857, + 0x485fc857, 0x8c5c053c, 0x05000005, 0x59a8002c, + 0x48023a05, 0x497a381e, 0x0501f049, 0x4d300000, + 0x411e6000, 0x0505fc2d, 0x5c026000, 0x591c0407, + 0x90000580, 0x05000042, 0x591c0403, 0xb0000590, + 0x0502000a, 0x4d300000, 0x411e6000, 0x64066203, + 0x42000800, 0x80000043, 0x0005f87c, 0x5c026000, + 0x497a381e, 0x0501f036, 0x591c0203, 0x9000058d, + 0x0500001c, 0x812e59c0, 0x05cc0fc4, 0x592c020b, + 0x4803c857, 0x8c000500, 0x0502001b, 0x8c000502, + 0x05000014, 0x591c0416, 0x8c00051c, 0x05020007, + 0x591c0013, 0x4803c857, 0x800001c0, 0x0500000d, + 0x591c0014, 0x48023818, 0x4a023814, 0x0fffffff, + 0x592c0209, 0x8400051e, 0x48025a09, 0x42000000, + 0x00109860, 0x0511ff26, 0x64063a16, 0x0501f016, + 0x42000000, 0x00109861, 0x0511ff21, 0x641e3a16, + 0x0501f011, 0x8c5c053a, 0x05fe07fa, 0x59cc000a, + 0x592c1810, 0x4803c857, 0x480fc857, 0x800c0580, + 0x05fc07f4, 0x59cc000a, 0x4803c857, 0x48023818, + 0x48023817, 0x42000000, 0x0010985f, 0x0511ff10, + 0x64163a16, 0x5c00b800, 0x0509f11d, 0x5c00b800, + 0x0005f0e7, 0x4933c857, 0x4d1c0000, 0x05f5fb11, + 0x0502003f, 0x59cc0001, 0x59341002, 0x80080580, + 0x82000500, 0x00ffffff, 0x05020037, 0x5930141b, + 0x0509fa88, 0x05cc0f85, 0x591c1407, 0x90080587, + 0x05000031, 0x90080582, 0x0500002f, 0x90080580, + 0x0500002d, 0x591c0202, 0x82000d80, 0x0000ffff, + 0x05000004, 0x59301a1b, 0x800c0580, 0x05020026, + 0x91380595, 0x05000022, 0x4d300000, 0x4d2c0000, + 0x411e6000, 0x59325809, 0x0505ff04, 0x05cc0f6f, + 0x592c0205, 0x82000500, 0x000000ff, 0x90000594, + 0x05000002, 0x640e621f, 0x497a5c0a, 0x600e8000, + 0x592c0a09, 0x05edfcf5, 0x0511fff6, 0x05020006, + 0x0001fb2c, 0x59300a1f, 0x90040d83, 0x05040fc3, + 0x497a6009, 0x5c025800, 0x4a026403, 0x00000085, + 0x64266203, 0x640a6407, 0x42000800, 0x80004040, + 0x0005f87c, 0x5c026000, 0x0501f003, 0x59a8002c, + 0x48023a05, 0x497a381e, 0x0005f8e7, 0x5c023800, + 0x1c01f000, 0x4933c857, 0x4c580000, 0x4d2c0000, + 0x59325809, 0x59342200, 0x82102500, 0xffffdffd, + 0x48126a00, 0x91383595, 0x05000009, 0x0505fed7, + 0x05000045, 0x0509fb87, 0x05020003, 0x6008b000, + 0x0509fb69, 0x0501f9c2, 0x0501f058, 0x91cc1408, + 0x6008b000, 0x91341c06, 0x0501fd89, 0x0502000f, + 0x91cc140a, 0x6008b000, 0x91341c08, 0x0501fd84, + 0x0502000a, 0x05d9fedd, 0x59342200, 0x59cc1007, + 0x800811c0, 0x05000003, 0x480a6801, 0x84102542, + 0x48126a00, 0x0501f047, 0x4d3c0000, 0x417a7800, + 0x0201f800, 0x0010b660, 0x5c027800, 0x42000000, + 0x00109878, 0x0511fe9a, 0x59340200, 0x84000558, + 0x48026a00, 0x4d300000, 0x05fdfbb9, 0x05cc0f1b, + 0x4936600a, 0x497a6009, 0x64066407, 0x64066403, + 0x600c3000, 0x0511fcf4, 0x8d0c0520, 0x0500000b, + 0x41782800, 0x60043000, 0x4d400000, 0x60a68000, + 0x0511f8b9, 0x5c028000, 0x64126407, 0x641e6203, + 0x64066422, 0x0501f005, 0x64066203, 0x602c0800, + 0x05e9fe36, 0x05f5fde3, 0x5c026000, 0x0505fe97, + 0x0500001e, 0x0509fb47, 0x0502001e, 0x0501f984, + 0x0501f01a, 0x42000000, 0x0010987b, 0x0511fe74, + 0x4d3c0000, 0x417a7800, 0x0201f800, 0x0010b660, + 0x42000000, 0x00109878, 0x0511fe6d, 0x59340200, + 0x84000558, 0x48026a00, 0x600c3000, 0x41782800, + 0x60142000, 0x4d400000, 0x4d440000, 0x59368c03, + 0x60a68000, 0x0509fd66, 0x5c028800, 0x5c028000, + 0x5c027800, 0x05d9fe91, 0x0005f8e7, 0x0501f002, + 0x05fdfd33, 0x5c025800, 0x5c00b000, 0x1c01f000, + 0x4933c857, 0x41380000, 0xb1383498, 0x05ce1edb, + 0x0c01f001, 0x00106371, 0x0010636e, 0x00106371, + 0x00106371, 0x00106371, 0x00106371, 0x0010636d, + 0x0010636d, 0x0010636d, 0x0010636d, 0x0010636d, + 0x0010636d, 0x0010636d, 0x0010636d, 0x0010636d, + 0x0010636d, 0x0010636d, 0x0010636d, 0x0010636d, + 0x0010636d, 0x0010636d, 0x0010636d, 0x0010636d, + 0x0010636d, 0x0010636d, 0x0010636d, 0x0010636d, + 0x0010636d, 0x0010636d, 0x0010636d, 0x0010636d, + 0x00106371, 0x0010636d, 0x00106371, 0x00106371, + 0x0010636d, 0x0010636d, 0x0010636d, 0x0010636d, + 0x0010636d, 0x00106371, 0x0010636d, 0x0010636d, + 0x0010636d, 0x0010636d, 0x0010636d, 0x0010636d, + 0x0010636d, 0x0010636d, 0x0010636d, 0x00106371, + 0x00106371, 0x0010636d, 0x0010636d, 0x0010636d, + 0x0010636d, 0x0010636d, 0x0010636d, 0x0010636d, + 0x0010636d, 0x0010636d, 0x00106371, 0x0010636d, + 0x0010636d, 0x0010636d, 0x0010636d, 0x0010636d, + 0x00106371, 0x00106371, 0x0010636d, 0x0010636d, + 0x0010636d, 0x0010636d, 0x00106371, 0x0010636d, + 0x0010636d, 0x0010636d, 0x00106371, 0x0010636d, + 0x0010636d, 0x0010636d, 0x00106371, 0x0010636d, + 0x0010636d, 0x0010636d, 0x00106371, 0x0010636d, + 0x00106371, 0x0010636d, 0x0010636d, 0x0010636d, + 0x0010636d, 0x0010636d, 0x0010636d, 0x0010636d, + 0x0010636d, 0x05cdfe79, 0x64066203, 0x493a6403, + 0x05f5f554, 0x4933c857, 0x64066203, 0x493a6403, + 0x05f5f550, 0x59300403, 0xb0003498, 0x05ce1e6f, + 0x91383593, 0x05000074, 0x913835a7, 0x0502003c, + 0x4933c857, 0x05f5fdac, 0x0511fd0f, 0x0505fede, + 0x05000009, 0x0505fef0, 0x05000033, 0x59300403, + 0x90000da2, 0x0502002d, 0x05fdfcec, 0x0500002d, + 0x0501f02d, 0x05d9fe09, 0x601c0800, 0x05e9fd8b, + 0x0501f8df, 0x4d440000, 0x59368c03, 0x83440580, + 0x000007fe, 0x05020007, 0x59a8121b, 0x84081540, + 0x05edfd80, 0x05020002, 0x8408154a, 0x480b521b, + 0x60a68000, 0x4d3c0000, 0x417a7800, 0x0201f800, + 0x0010b660, 0x5c027800, 0x916c0583, 0x0500000b, + 0x5932680a, 0x59340008, 0x800001c0, 0x05020007, + 0x59368c03, 0x4933c857, 0x4937c857, 0x4947c857, + 0x05e9fdfb, 0x0501f008, 0x42000000, 0x00109878, + 0x0511fdb3, 0x60543000, 0x41782800, 0x600c2000, + 0x0509fcb3, 0x5c028800, 0x0509f872, 0x0005f0e7, + 0x1c01f000, 0x0501f8b6, 0x05fdf7fc, 0x91380594, + 0x05000008, 0x4933c857, 0x05f9f94b, 0x05fe02fb, + 0x59300203, 0x90000582, 0x050000d5, 0x05cdfe27, + 0x4933c857, 0x05f5fd68, 0x0511fccb, 0x4d3c0000, + 0x417a7800, 0x0201f800, 0x0010b660, 0x5c027800, + 0x60583000, 0x41782800, 0x4d400000, 0x4d440000, + 0x59368c03, 0x60242000, 0x60a68000, 0x0509fc94, + 0x5c028800, 0x5c028000, 0x42000000, 0x00109878, + 0x0511fd8b, 0x0505fe88, 0x0502000b, 0x05d9fdbb, + 0x0501f893, 0x59340c03, 0x82040580, 0x000007fe, + 0x05fe07d6, 0x59a80a1b, 0x84040d40, 0x4807521b, + 0x05fdf7d2, 0x0505fe90, 0x05020003, 0x0501f888, + 0x05fdf7ce, 0x59300403, 0x90000db2, 0x05020003, + 0x05ddf823, 0x05fdf7c9, 0x90000da2, 0x05000880, + 0x05fdf7c6, 0x4933c857, 0x4803c857, 0x0c01f001, + 0x00106451, 0x00106451, 0x00106451, 0x00106451, + 0x00106451, 0x00106451, 0x00106450, 0x00106450, + 0x00106450, 0x00106450, 0x00106450, 0x00106450, + 0x00106450, 0x00106450, 0x00106450, 0x00106450, + 0x00106450, 0x00106450, 0x00106450, 0x00106450, + 0x00106450, 0x00106450, 0x00106450, 0x00106450, + 0x00106450, 0x00106450, 0x00106450, 0x00106450, + 0x00106450, 0x00106450, 0x00106453, 0x00106466, + 0x00106450, 0x00106466, 0x00106466, 0x00106450, + 0x00106450, 0x00106450, 0x00106450, 0x00106450, + 0x00106466, 0x00106466, 0x00106450, 0x00106450, + 0x00106450, 0x00106450, 0x00106450, 0x00106450, + 0x00106450, 0x00106450, 0x0010645e, 0x00106466, + 0x00106450, 0x00106459, 0x00106450, 0x00106450, + 0x00106450, 0x00106459, 0x00106450, 0x00106450, + 0x00106450, 0x00106466, 0x0010645c, 0x00106450, + 0x00106450, 0x00106450, 0x00106450, 0x00106466, + 0x00106466, 0x00106450, 0x00106450, 0x00106450, + 0x00106450, 0x00106466, 0x00106450, 0x00106450, + 0x00106450, 0x00106466, 0x00106450, 0x00106450, + 0x00106450, 0x00106466, 0x00106450, 0x00106450, + 0x00106450, 0x00106466, 0x00106450, 0x00106466, + 0x00106450, 0x00106450, 0x00106450, 0x00106450, + 0x00106450, 0x00106450, 0x00106450, 0x00106450, + 0x05cdfd96, 0x640a6203, 0x0505f67f, 0x64166203, + 0x59a8002c, 0x48026205, 0x59a8002a, 0x48026006, + 0x1c01f000, 0x59300820, 0x49780a05, 0x0501f00b, + 0x0505ffc8, 0x0005f0e7, 0x05d9ffad, 0x05f5fd60, + 0x05000003, 0x05f5fcc8, 0x0005f0e7, 0x05f5fcc6, + 0x0005f8e7, 0x05f5f546, 0x4933c857, 0x640a6203, + 0x59a8002a, 0x48026006, 0x1c01f000, 0x4933c857, + 0x0505fd0e, 0x05000025, 0x4d2c0000, 0x0509f9bd, + 0x05020007, 0x4d400000, 0x60c68000, 0x60100800, + 0x0509f897, 0x5c028000, 0x0501f01b, 0x59300c07, + 0x90040590, 0x05000003, 0x90040591, 0x05020007, + 0x64c65a07, 0x6412580e, 0x4a02580f, 0x000000ff, + 0x0001fb2c, 0x0501f010, 0x592c0405, 0x8c00051e, + 0x0500000d, 0x4a025a05, 0x00000103, 0x4a025806, + 0x01000000, 0x4da00000, 0x4cec0000, 0x5931d823, + 0x58ef400a, 0x58ec0008, 0x0801f800, 0x5c01d800, + 0x5c034000, 0x5c025800, 0x1c01f000, 0x4933c857, + 0x83340580, 0x0010993e, 0x05020007, 0x91380d95, + 0x05000003, 0x91380d96, 0x05fe021c, 0x0511fbf4, + 0x0005f0e7, 0x59340400, 0x82000500, 0x000000ff, + 0x9000348c, 0x05ce1d45, 0x59303403, 0xb0180d8d, + 0x050407d1, 0x90180db3, 0x05040798, 0x90180da8, + 0x050405fd, 0x90180da9, 0x05040607, 0xb0180d97, + 0x05080494, 0x90180d9f, 0x05fc037d, 0xb0180d95, + 0x05fc035d, 0x90180d80, 0x05fc05e7, 0x90180da2, + 0x05fc0399, 0x90180db5, 0x05fc045f, 0x90180db9, + 0x05fc059d, 0x90180dbd, 0x05fc03c6, 0xb0180d84, + 0x05fc03f2, 0xb0180d89, 0x05fc0425, 0xb0180d83, + 0x050800d1, 0x90180d84, 0x05020002, 0x60040000, + 0x91380d95, 0x05000004, 0x91380d96, 0x05fe01ef, + 0x0501f1c5, 0x4c000000, 0x0511fbc5, 0x5c000000, + 0x4d2c0000, 0x4d3c0000, 0x0c01f804, 0x5c027800, + 0x5c025800, 0x1c01f000, 0x001064e5, 0x001064e9, + 0x001064e5, 0x00106539, 0x001064e5, 0x0010662c, + 0x001066a0, 0x001064e5, 0x001064e5, 0x00106676, + 0x001064e5, 0x00106681, 0x4933c857, 0x497a6008, + 0x59300809, 0x58040000, 0x4a000a05, 0x00000103, + 0x0005f0e7, 0x4933c857, 0x40000000, 0x40000000, + 0x1c01f000, 0x4933c857, 0x05e9feb1, 0x59a80073, + 0xb00005b4, 0x0502003c, 0x050dfe37, 0x0502000e, + 0x0501f83c, 0x0505fc89, 0x05000009, 0x0509f939, + 0x05020007, 0x41780800, 0x4d400000, 0x60028000, + 0x0509f813, 0x5c028000, 0x0501f002, 0x05d9fc97, + 0x0005f0e7, 0x0505fc7d, 0x05000005, 0x0509f92d, + 0x05020003, 0x05fdff6a, 0x0005f0e7, 0x417a7800, + 0x0201f800, 0x0010b660, 0x42000000, 0x00109878, + 0x0511fc57, 0x59340200, 0x84000558, 0x48026a00, + 0x600c3000, 0x0511fab8, 0x4d300000, 0x05fdf974, + 0x05cc0cd6, 0x4936600a, 0x497a6009, 0x64066407, + 0x64066403, 0x8d0c0520, 0x0500000b, 0x64126407, + 0x641e6203, 0x64066422, 0x60043000, 0x4d400000, + 0x60a68000, 0x41782800, 0x050dfe73, 0x5c028000, + 0x0501f005, 0x602c0800, 0x05e9fbf4, 0x64066203, + 0x05f5fba0, 0x5c026000, 0x05fdff45, 0x05d9fc6b, + 0x0005f0e7, 0x05fdff42, 0x60040000, 0x0501f0c9, + 0x4933c857, 0x59340200, 0x8c000500, 0x05000009, + 0x4d3c0000, 0x417a7800, 0x05e9fbd9, 0x5c027800, + 0x8d0c0520, 0x05000003, 0x60180800, 0x05e9fbdf, + 0x1c01f000, 0x4933c857, 0x59a80873, 0xb00405b4, + 0x0500000e, 0x4807c857, 0x82040580, 0x00000100, + 0x050200a0, 0x59cc0408, 0x4803c857, 0x8c000500, + 0x0500009c, 0x59341403, 0x82080580, 0x000007fe, + 0x05000006, 0x0501f097, 0x59341403, 0x82080580, + 0x000007fe, 0x05020015, 0x59a8021b, 0x8c000506, + 0x05000010, 0x59cc0000, 0x82000500, 0x000000ff, + 0x59a8080f, 0x82040d00, 0x000000ff, 0x80040580, + 0x05000008, 0x05d9fc39, 0x0005f8e7, 0x42000000, + 0x00109869, 0x0511fc02, 0x6006d800, 0x05e9f03f, + 0x0501fa18, 0x0501f043, 0x05e9fc72, 0x59341403, + 0x82080580, 0x000007fc, 0x05020022, 0x4a026802, + 0x00fffffc, 0x0505fc11, 0x0500000c, 0x0509f8c1, + 0x0502000a, 0x0501f89a, 0x41780800, 0x4d400000, + 0x60028000, 0x0505ff9a, 0x5c028000, 0x60100800, + 0x05e9fba2, 0x0005f0e7, 0x60100800, 0x05e9fb9f, + 0x05d9fc1a, 0x59300c1f, 0x900405a1, 0x05000002, + 0x0005f0e7, 0x61f6880f, 0x42003000, 0x00fffffd, + 0x05e9fbc9, 0x05ce0c65, 0x4936600a, 0x497a6c12, + 0x640e601e, 0x64066203, 0x648a6403, 0x05f5f33d, + 0x59a80086, 0x8c000502, 0x0500000d, 0x05edfb89, + 0x60401000, 0x05020008, 0x59340002, 0x82000500, + 0x00ff0000, 0x82000580, 0x00ff0000, 0x05000004, + 0x60201000, 0x05edf8f7, 0x0502004a, 0x0505fbe3, + 0x0500004b, 0x0509f893, 0x05020005, 0x592c0405, + 0x8c00051c, 0x05fe07cc, 0x0501f869, 0x60140800, + 0x05e9fb76, 0x64066203, 0x640e6403, 0x05f5f321, + 0x59cc0408, 0x8c000518, 0x05000016, 0x0505fe51, + 0x05edfb6c, 0x05000008, 0x59cc0408, 0x8c000516, + 0x05000005, 0x5930041f, 0x900005a1, 0x05fe07ba, + 0x1c01f000, 0x59a8021b, 0x8400054a, 0x4803521b, + 0x4803541b, 0x59a8000f, 0x84000570, 0x48038832, + 0x5930041f, 0x900005a1, 0x05fe07af, 0x1c01f000, + 0x61bc1001, 0x480b500f, 0x497b8830, 0x84081570, + 0x480b8832, 0x0505fe54, 0x59a8021b, 0x84000548, + 0x4803521b, 0x4803541b, 0x050dfda8, 0x05fe07a2, + 0x599c0019, 0x8c000510, 0x05020029, 0x59a8021b, + 0x8400054c, 0x4803521b, 0x601c0800, 0x05e9fb47, + 0x417a7800, 0x05e9fb3a, 0x61a00001, 0x05f1fdcf, + 0x05e80b75, 0x05ce0c11, 0x4936600a, 0x59340200, + 0x8400051a, 0x48026a00, 0x600c0800, 0x05e9fb3b, + 0x64066407, 0x64066203, 0x640a6403, 0x05f5f2e5, + 0x05fdfe8b, 0x60040000, 0x0501f012, 0x599c0017, + 0x8c00050a, 0x05fc07ba, 0x60100800, 0x05e9fb2f, + 0x4937507d, 0x59a8021b, 0x8c000508, 0x05000008, + 0x599c0018, 0x8c00051c, 0x05000005, 0x61a00807, + 0x42001000, 0x0010c159, 0x05f5f93a, 0x0005f0e7, + 0x4933c857, 0x80003540, 0x05000003, 0x601c0800, + 0x05e9fb1e, 0x801831c0, 0x0502000b, 0x59302009, + 0x801021c0, 0x05000004, 0x58100405, 0x8c00051e, + 0x05020005, 0x59341c03, 0x60102000, 0x60483000, + 0x05e5f82a, 0x05d9fb8d, 0x0005f0e7, 0x4c5c0000, + 0x4d2c0000, 0x59325809, 0x05f1f986, 0x5c025800, + 0x59cc0008, 0x48002805, 0x59cc0009, 0x48002806, + 0x49782807, 0x49782808, 0x49782809, 0x4978280a, + 0x59cc0013, 0x8c00053e, 0x05000009, 0x59cc0414, + 0x900001c0, 0x59ccbc15, 0x805c0540, 0x48002807, + 0x59cc0416, 0x900001c0, 0x48002808, 0x59cc0017, + 0x8c00053e, 0x05000009, 0x59cc0418, 0x900001c0, + 0x59ccbc19, 0x805c0540, 0x48002809, 0x59cc041a, + 0x900001c0, 0x4800280a, 0x5c00b800, 0x1c01f000, + 0x4933c857, 0x59a80073, 0x90000594, 0x05020036, + 0x59a80086, 0x8c000502, 0x05000011, 0x05edfae1, + 0x60401000, 0x05020008, 0x59340002, 0x82000500, + 0x00ff0000, 0x82000580, 0x00ff0000, 0x05000008, + 0x60201000, 0x05edf84f, 0x05000005, 0x59a80086, + 0x8400054c, 0x48035086, 0x0501f023, 0x916c0583, + 0x05020008, 0x59300009, 0x80000540, 0x05020005, + 0x59341c03, 0x60182000, 0x604c3000, 0x05e1ffe3, + 0x05e9fbe3, 0x05fdfedf, 0x0501f9d0, 0x05020016, + 0x59340404, 0x80000540, 0x05000013, 0x60180800, + 0x05e9fac2, 0x0505fb25, 0x0500000d, 0x0505ffd5, + 0x05020007, 0x41780800, 0x4d400000, 0x60028000, + 0x0505feaf, 0x5c028000, 0x0005f0e7, 0x4a025a05, + 0x00000103, 0x4a025806, 0x02000000, 0x05d9fb2f, + 0x0005f0e7, 0x05e9ffde, 0x0505fb14, 0x05000005, + 0x0505ffc4, 0x05020003, 0x05fdfe01, 0x0005f0e7, + 0x05fdfdff, 0x0511fa22, 0x80000580, 0x59a80086, + 0x8c00050c, 0x05000004, 0x8400050c, 0x48035086, + 0x90000541, 0x05fdf77f, 0x4933c857, 0x59a80073, + 0x90000594, 0x05020006, 0x602c0800, 0x05e9fa9b, + 0x64066203, 0x64066403, 0x05f5f246, 0x60040000, + 0x05fdf774, 0x4933c857, 0x40003000, 0x59a80073, + 0x90000584, 0x05020006, 0x9018358b, 0x05020003, + 0x601c0800, 0x05e9fa8d, 0x0005f0e7, 0x60040000, + 0x05fdf768, 0x4803c857, 0x4d2c0000, 0x4d3c0000, + 0x0c01f804, 0x5c027800, 0x5c025800, 0x1c01f000, + 0x001064e5, 0x001066ac, 0x001064e5, 0x001066ef, + 0x001064e5, 0x0010673c, 0x001066a0, 0x001064e5, + 0x001064e5, 0x00106752, 0x001064e5, 0x0010675d, + 0x4933c857, 0x4d1c0000, 0x59301403, 0x90080583, + 0x05000006, 0x9008159e, 0x05020002, 0x0005f8e7, + 0x5c023800, 0x1c01f000, 0x05fdff82, 0x05fdf7fd, + 0x4933c857, 0x42000000, 0x0010987c, 0x0511fab0, + 0x0511f9df, 0x05e9fcea, 0x0505fac8, 0x05000007, + 0x0505ff78, 0x05020005, 0x6008b000, 0x0505ff5a, + 0x05fdfdb3, 0x0005f0e7, 0x0501f8ae, 0x05020020, + 0x417a7800, 0x05e9fa4e, 0x417a7800, 0x0201f800, + 0x0010b660, 0x42000000, 0x00109878, 0x0511fa9c, + 0x59340200, 0x84000558, 0x48026a00, 0x640a6403, + 0x600c3000, 0x0511f8fc, 0x8d0c0520, 0x0500000b, + 0x4d400000, 0x41782800, 0x60143000, 0x60a68000, + 0x050dfcc1, 0x5c028000, 0x641e6203, 0x64126407, + 0x64066422, 0x1c01f000, 0x600c0800, 0x05e9fa3f, + 0x64066203, 0x05f5f9eb, 0x05fdf7fb, 0x59cc0407, + 0x90000589, 0x05020009, 0x59340412, 0x82000500, + 0x000000ff, 0x0500000b, 0x80000040, 0x48026c12, + 0x642a6006, 0x05fdf7f0, 0x59cc0207, 0x82000500, + 0x0000ff00, 0x82000580, 0x00001900, 0x05fc07d3, + 0x05fdfd7f, 0x80000580, 0x05fdf706, 0x4933c857, + 0x0505fa8a, 0x0500000b, 0x0505ff3a, 0x05020009, + 0x4c580000, 0x6008b000, 0x0505ff1b, 0x5c00b000, + 0x05fdfd73, 0x601c0800, 0x05e9fa1c, 0x0005f0e7, + 0x05fdfd6f, 0x59cc3407, 0x82183500, 0x000000ff, + 0x90180585, 0x05000016, 0x9018058b, 0x05000011, + 0x59cc0207, 0x82000500, 0x0000ff00, 0x05020003, + 0x90180589, 0x0500000e, 0x82000580, 0x00001900, + 0x05020008, 0x90180589, 0x05000009, 0x60100800, + 0x05e9fa06, 0x05d9fa81, 0x0511f97d, 0x0005f0e7, + 0x0511f97b, 0x60040000, 0x05fdf6de, 0x0505fa63, + 0x59325809, 0x05000008, 0x592c0205, 0x82000580, + 0x00000139, 0x05fc07f7, 0x592c0405, 0x8c00051e, + 0x05fe07f4, 0x59340412, 0x800001c0, 0x05000006, + 0x80000040, 0x48026c12, 0x642a6006, 0x645a6403, + 0x1c01f000, 0x59340403, 0x82000580, 0x000007fe, + 0x05020006, 0x59a8021b, 0x84000540, 0x4803521b, + 0x05e5ff67, 0x05fdf7e3, 0x0511f95d, 0x417a7800, + 0x0201f800, 0x0010b660, 0x60143000, 0x0511f88e, + 0x42000000, 0x00109878, 0x0511fa25, 0x05fdf7da, + 0x4933c857, 0x0501f838, 0x05020006, 0x60140800, + 0x05e9f9d6, 0x64066203, 0x640e6403, 0x05f5f181, + 0x60100800, 0x05e9f9d1, 0x0505fee6, 0x05020007, + 0x4c580000, 0x6008b000, 0x0505fec7, 0x5c00b000, + 0x05fdfd1f, 0x0005f0e7, 0x05fdfd1d, 0x0511f940, + 0x80000580, 0x05fdf6a3, 0x4933c857, 0x0501f822, + 0x05020006, 0x60240800, 0x05e9f9c0, 0x64066203, + 0x64166403, 0x05f5f16b, 0x0511f935, 0x60040000, + 0x05fdf698, 0x4933c857, 0x0501f817, 0x05020006, + 0x602c0800, 0x05e9f9b5, 0x64066203, 0x64066403, + 0x05f5f160, 0x0511f92a, 0x60040000, 0x05fdf68d, + 0x4933c857, 0x59cc0407, 0x90000583, 0x05020009, + 0x59cc0207, 0x82000500, 0x0000ff00, 0x82000d80, + 0x00002a00, 0x05000003, 0x82000d80, 0x00001e00, + 0x1c01f000, 0x4933c857, 0x90000541, 0x1c01f000, + 0x4933c857, 0x4d400000, 0x4c580000, 0x59a8021b, + 0x90000543, 0x4803521b, 0x0501f853, 0x05000005, + 0x4d300000, 0x4d340000, 0x4d440000, 0x0501f01b, + 0x0501f879, 0x05000027, 0x4d300000, 0x4d340000, + 0x4d440000, 0x59cc0408, 0x8c00051e, 0x05020004, + 0x59a8021b, 0x84000552, 0x4803521b, 0x8d0c0520, + 0x05000005, 0x60aa8000, 0x61fe89ff, 0x60083000, + 0x0511f841, 0x60aa8000, 0x4d3c0000, 0x60027804, + 0x0201f800, 0x0010b5e0, 0x5c027800, 0x42000000, + 0x00109878, 0x0511f9c2, 0x0201f800, 0x0010b84b, + 0x6040b000, 0x61c2880f, 0x83440580, 0x000007fe, + 0x05000002, 0x05e9f9fe, 0x81468800, 0x8058b040, + 0x05fe07fa, 0x5c028800, 0x5c026800, 0x5c026000, + 0x05e9fa28, 0x59cc0800, 0x82040d00, 0x00ffffff, + 0x4807500f, 0x80040110, 0x48035018, 0x48038881, + 0x59a80a1b, 0x84040d50, 0x59cc0013, 0x8c00053e, + 0x05000003, 0x8c000536, 0x05000004, 0x59cc0017, + 0x8c000536, 0x05020002, 0x84040d10, 0x4807521b, + 0x4807541b, 0x59cc0408, 0x8c000518, 0x05000004, + 0x4c040000, 0x0509f9e3, 0x5c000800, 0x05edf94d, + 0x05000006, 0x59cc0009, 0x48035028, 0x59cc000a, + 0x48035029, 0x0505fc2b, 0x5c00b000, 0x5c028000, + 0x1c01f000, 0x4933c857, 0x59a8141b, 0x82080580, + 0x0000ffff, 0x0500000b, 0x4c080000, 0x05edf93d, + 0x5c001000, 0x0502000b, 0x59cc0408, 0x8c000518, + 0x05000005, 0x8c08050a, 0x0500000a, 0x80000580, + 0x1c01f000, 0x8c080508, 0x05fe07fd, 0x0501f005, + 0x90080530, 0x05020003, 0x8c080506, 0x05fe07f8, + 0x4a03541b, 0x0000ffff, 0x42000000, 0x001097c5, + 0x0511f973, 0x60303000, 0x61fc19ff, 0x601c2000, + 0x05e1fe3e, 0x4d400000, 0x4d3c0000, 0x60043000, + 0x050dffe1, 0x60aa8000, 0x60027804, 0x0201f800, + 0x0010b5e0, 0x5c028000, 0x5c027800, 0x90000541, + 0x1c01f000, 0x4933c857, 0x4c580000, 0x59a80018, + 0x800001c0, 0x0500001b, 0x59cc1000, 0x82081500, + 0x00ffff00, 0x80081110, 0x80080580, 0x05000004, + 0x42000000, 0x0010985b, 0x0501f010, 0x91cc140b, + 0x6008b000, 0x91341c06, 0x0501f829, 0x05000004, + 0x42000000, 0x0010985c, 0x0501f008, 0x91cc140d, + 0x6008b000, 0x91341c08, 0x0501f821, 0x05000005, + 0x42000000, 0x0010985d, 0x0511f945, 0x90000541, + 0x5c00b000, 0x1c01f000, 0x4933c857, 0x59cc0206, + 0x90000594, 0x05020015, 0x59cc0407, 0x82000580, + 0x00000800, 0x05020011, 0x59cc0207, 0x8c00051a, + 0x0500000d, 0x82000500, 0x00000f00, 0x82000580, + 0x00000100, 0x05020008, 0x59cc020a, 0x8c000508, + 0x05020003, 0x8c00050a, 0x05000003, 0x80000580, + 0x1c01f000, 0x90000541, 0x1c01f000, 0x5c000000, + 0x4c000000, 0x4803c857, 0x480bc857, 0x480fc857, + 0x485bc857, 0x50080800, 0x500c0000, 0x80042580, + 0x05020007, 0x80081000, 0x800c1800, 0x8058b040, + 0x05fe07f9, 0x80000580, 0x1c01f000, 0x4803c857, + 0x4807c857, 0x480bc857, 0x480fc857, 0x80040480, + 0x05001004, 0x60040000, 0x90040d41, 0x1c01f000, + 0x41780000, 0x05fdf7fd, 0xb1380493, 0x05ce1993, + 0xb138048b, 0x05cc1991, 0x0c01f001, 0x00106860, + 0x00106860, 0x00106860, 0x00106860, 0x0010685f, + 0x0010685f, 0x0010685f, 0x00106860, 0x05cdf987, + 0x493bc857, 0x64366203, 0x493a6403, 0x42000800, + 0x80000000, 0x0005f07c, 0x91380593, 0x05020005, + 0x59300403, 0xb0000590, 0x05ce097c, 0x0005f0e7, + 0x4933c857, 0x913805a7, 0x05020026, 0x4933c857, + 0x05f5f8b9, 0x4d3c0000, 0x417a7800, 0x0201f800, + 0x0010b660, 0x5c027800, 0x42000000, 0x00109878, + 0x0511f8e7, 0x4d2c0000, 0x59325809, 0x0505f8ff, + 0x492fc857, 0x0500000b, 0x4a025a05, 0x00000103, + 0x59300c02, 0x48065c07, 0x64a65a07, 0x497a580a, + 0x592c0c09, 0x84040d50, 0x48065c09, 0x0001fb2c, + 0x5c025800, 0x60543000, 0x41782800, 0x600c2000, + 0x4d400000, 0x4d440000, 0x59368c03, 0x60a68000, + 0x0505ffd3, 0x5c028800, 0x5c028000, 0x0005f0e7, + 0x91380594, 0x05020009, 0x59300403, 0xb0000c93, + 0x05ce194e, 0xb0000480, 0x05cc194c, 0x4933c857, + 0x4803c857, 0x0c01f009, 0xb1380593, 0x05000006, + 0xb1380588, 0x05ce0945, 0x59300403, 0xb0000590, + 0x05ce0942, 0x1c01f000, 0x001068ba, 0x001068b9, + 0x001068b9, 0x001068b9, 0x001068b9, 0x001068b9, + 0x001068b9, 0x001068b9, 0x001068b9, 0x001068b9, + 0x001068b9, 0x001068ca, 0x001068ca, 0x001068ca, + 0x001068ca, 0x001068b9, 0x001068ca, 0x001068b9, + 0x001068ca, 0x05cdf92d, 0x4933c857, 0x05f5f86e, + 0x0505f8be, 0x000400e7, 0x4d2c0000, 0x59325809, + 0x4a025a05, 0x00000103, 0x59300402, 0x48025c07, + 0x641a5a07, 0x497a580a, 0x0001fb2c, 0x5c025800, + 0x0505f982, 0x0005f0e7, 0x4933c857, 0x05f5f85e, + 0x0005f0e7, 0x05cdf919, 0x5930001e, 0x800001c0, + 0x05060f82, 0x59300004, 0x8c00053e, 0x05020027, + 0x0509f826, 0x050200a6, 0x59325809, 0x592c0c09, + 0x59cc2808, 0x82141d00, 0x00000c00, 0x05000002, + 0x59cc1809, 0x84040d58, 0x48065c09, 0x82143500, + 0x00000fff, 0x05020020, 0x59340200, 0x8c00050e, + 0x0502008d, 0x0005f987, 0x05020005, 0x64025a07, + 0x59300813, 0x800409c0, 0x05020955, 0x4a025a05, + 0x00000103, 0x48065808, 0x480e580b, 0x901409c0, + 0x4806580a, 0x59300c02, 0x48065c07, 0x0505fd3e, + 0x0001fb2c, 0x05e9fb08, 0x59cc0008, 0x8c000518, + 0x050601f6, 0x0005f0e7, 0x05f5fc0b, 0x05fc07d9, + 0x4d3c0000, 0x600a7800, 0x0501fd45, 0x5c027800, + 0x05fdf7d4, 0x4817c857, 0x480fc857, 0x82180500, + 0x000000ff, 0x0500000b, 0x592c0205, 0x82000500, + 0x000000ff, 0xb0000588, 0x05020006, 0x592c0408, + 0x800001c0, 0x05000003, 0x0505fe58, 0x0505f68f, + 0x82180d00, 0x00000c00, 0x05000004, 0x59340200, + 0x8c00050e, 0x0502004b, 0x64025a07, 0x41782000, + 0x8c180510, 0x05000009, 0x59cc200b, 0x801021c0, + 0x05000006, 0x59cc000c, 0x82000500, 0x000000ff, + 0x05000002, 0x4803c857, 0x4812580d, 0x41780000, + 0x8c180512, 0x05000002, 0x59cc000a, 0x4802580c, + 0x80100c00, 0x05fc07bc, 0x9004149d, 0x05001005, + 0x592c0405, 0x8c00051e, 0x0500001c, 0x60700800, 0x4c040000, 0x4c0c0000, 0x4c140000, 0x0005f987, 0x05020005, 0x64025a07, 0x59300813, 0x800409c0, - 0x050208ed, 0x48065808, 0x5c002800, 0x5c001800, - 0x59301402, 0x480a5c07, 0x480e580b, 0x901401c0, - 0x4802580a, 0x0505fcca, 0x5c000800, 0x0501fc46, - 0x0501fc72, 0x05fdf796, 0x592c020b, 0x8c000502, - 0x05fc07b4, 0x592c0209, 0x8c00050e, 0x05fe07b1, - 0x59300013, 0x800c0d80, 0x05fc07ae, 0x4803c857, - 0x480fc857, 0x8c180514, 0x050401af, 0x80000540, - 0x05fc07a8, 0x4807c856, 0x0505f1ab, 0x592c020b, - 0x8c000502, 0x05fc0772, 0x59300013, 0x800001c0, - 0x05fc0771, 0x592c0209, 0x8c00050e, 0x05fe076e, - 0x0505f1a1, 0x1c01f000, 0x59cc2006, 0x59cc2807, - 0x0501f037, 0x0501f036, 0x1c01f000, 0x4933c857, - 0x59300004, 0x8c00053e, 0x0502002d, 0x5930001e, - 0x800001c0, 0x05060ebf, 0x59325809, 0x592c0c09, - 0x41782800, 0x41781800, 0x84040d58, 0x48065c09, - 0x41783000, 0x59340200, 0x8c00050e, 0x05020015, - 0x0005f987, 0x05020006, 0x64025a07, 0x59300813, - 0x4807c857, 0x800409c0, 0x050208a7, 0x4a025a05, + 0x05020907, 0x5c002800, 0x5c001800, 0x4a025a05, 0x00000103, 0x48065808, 0x480e580b, 0x901409c0, - 0x4806580a, 0x4933c857, 0x59300c02, 0x48065c07, - 0x0505fc83, 0x0001fb2c, 0x05e9fad0, 0x0005f0e7, - 0x592c020b, 0x8c000502, 0x05fc07ea, 0x59300013, - 0x4803c857, 0x800001c0, 0x05fc07e8, 0x592c0209, - 0x8c00050e, 0x05fe07e5, 0x0505f16b, 0x05f5fb52, - 0x05fc07d3, 0x4933c857, 0x1c01f000, 0x4c5c0000, - 0x4c600000, 0x4010b800, 0x4014c000, 0x5930001e, - 0x800001c0, 0x4c140000, 0x05060e8a, 0x5c002800, - 0x59325809, 0x592c020b, 0x8c000502, 0x05020020, - 0x8c000500, 0x05000025, 0x640a6203, 0x650e6403, - 0x405c0000, 0x592c0810, 0x80040c80, 0x40600000, - 0x80040480, 0x0500101a, 0x8060c1c0, 0x05000011, - 0x59300004, 0x8c00053e, 0x0502000a, 0x485e6015, - 0x48626013, 0x497a6205, 0x5c00c000, 0x5c00b800, - 0x05d1fa9a, 0x0502000c, 0x59300804, 0x0005f072, - 0x4c140000, 0x05f5fb28, 0x5c002800, 0x05fc07f4, - 0x5c00c000, 0x5c00b800, 0x05f9f4e4, 0x5c00c000, - 0x5c00b800, 0x4933c857, 0x1c01f000, 0x4807c857, - 0x4004c000, 0x05fdf7e5, 0x4803c857, 0x05fdf7f5, - 0xb1380498, 0x05021004, 0xb1380480, 0x05001002, - 0x0c01f002, 0x1c01f000, 0x0010697e, 0x0010697e, - 0x0010697e, 0x0010697e, 0x0010697e, 0x0010697e, - 0x0010697e, 0x0010697e, 0x0010697e, 0x0010697e, - 0x0010697f, 0x0010697e, 0x0010697e, 0x0010697e, - 0x0010697e, 0x00106989, 0x0010697e, 0x0010697e, - 0x0010697e, 0x0010697e, 0x001069ad, 0x0010697e, - 0x0010697e, 0x0010697e, 0x05cdf868, 0x4933c857, - 0x05f5f981, 0x640a6203, 0x59a8002c, 0x48026205, - 0x59300013, 0x59300817, 0x80040c80, 0x48066017, - 0x05f1f6f8, 0x4933c857, 0x05f1fef6, 0x4d3c0000, - 0x417a7800, 0x0201f800, 0x0010b652, 0x5c027800, - 0x42000000, 0x001097f8, 0x050dff03, 0x0501ff51, - 0x0500000e, 0x4d2c0000, 0x59325809, 0x4a025a05, - 0x00000103, 0x59300402, 0x48025c07, 0x64a65a07, - 0x497a580a, 0x592c0c09, 0x84040d50, 0x48065c09, - 0x0001fb2c, 0x5c025800, 0x60503000, 0x41782800, - 0x4d400000, 0x4d440000, 0x59368c03, 0x60082000, - 0x60a68000, 0x0505fe24, 0x5c028800, 0x5c028000, - 0x0005f0e7, 0x4933c857, 0x59300809, 0x4978080a, - 0x4978080b, 0x58041409, 0x84081558, 0x48080c09, - 0x1c01f000, 0x4807c857, 0x8c04053e, 0x05020022, - 0x497a5a07, 0x59300021, 0x80000540, 0x05000017, - 0x497a5a07, 0x4c040000, 0x4c080000, 0x4c0c0000, - 0x4c100000, 0x4c140000, 0x40002800, 0x58141003, - 0x40040000, 0x80081480, 0x48082803, 0x40140000, - 0x05d1f838, 0x5c002800, 0x5c002000, 0x5c001800, - 0x5c001000, 0x5c000800, 0x592c0207, 0x80000540, - 0x05020008, 0x0501f005, 0x592c0409, 0x8c00051c, - 0x05000002, 0x592c0803, 0x4807c857, 0x64565a07, - 0x1c01f000, 0x59300021, 0x80000540, 0x05000007, - 0x64465a07, 0x59300021, 0x4c040000, 0x05d1f821, - 0x5c000800, 0x05fdf7f7, 0x4807c856, 0x641e5a07, - 0x1c01f000, 0xb1380498, 0x05021006, 0xb1380480, - 0x05001004, 0x4d2c0000, 0x0c01f803, 0x5c025800, - 0x1c01f000, 0x00106a05, 0x00106a05, 0x00106a05, - 0x00106a05, 0x00106a05, 0x00106a07, 0x00106a06, - 0x00106a05, 0x00106a7b, 0x00106a05, 0x00106a05, - 0x00106a05, 0x00106a05, 0x00106a05, 0x00106a05, - 0x00106a05, 0x00106a05, 0x00106a05, 0x00106a05, - 0x00106b2c, 0x00106b50, 0x00106b33, 0x00106a06, - 0x00106b59, 0x05c9ffe1, 0x1c01f000, 0x5930001e, - 0x800001c0, 0x05060db3, 0x59300008, 0x8c00050e, - 0x0500006e, 0x8c000500, 0x05000060, 0x8c00051c, - 0x05000008, 0x84000500, 0x48026008, 0x59325809, - 0x592c3c09, 0x841c3d58, 0x481e5c09, 0x0005f13e, - 0x59325809, 0x592c3c09, 0x841c3d58, 0x59300008, - 0x8c00051c, 0x05fe07f4, 0x481e5c09, 0x60140000, - 0x40000000, 0x80000040, 0x05fe07fe, 0x59300008, - 0x8c00051c, 0x05fe07ec, 0x59cc0808, 0x592c0205, - 0x82000500, 0x000000ff, 0xb0000588, 0x0502000a, - 0x497a580c, 0x82040500, 0x000000ff, 0x05000006, - 0x592c0408, 0x800001c0, 0x05000003, 0x0505fc9d, - 0x05d1f0a1, 0x900421c0, 0x4812580a, 0x41782000, - 0x82040500, 0x00000c00, 0x05000002, 0x59cc2009, - 0x82043500, 0x00000fff, 0x0502001e, 0x481e5c09, - 0x64025a07, 0x801831c0, 0x05d00093, 0x41782000, - 0x8c180510, 0x05000002, 0x59cc200b, 0x4812580d, - 0x41780000, 0x8c180512, 0x05000002, 0x59cc000a, - 0x4802580c, 0x80100c00, 0x05c81f98, 0x05d00086, - 0x9004149d, 0x05021009, 0x4c500000, 0x4c540000, - 0x91cca40c, 0x912cac0e, 0x0501fb07, 0x5c00a800, - 0x5c00a000, 0x05d1f07c, 0x0501fabf, 0x05d1f07a, - 0x412c7800, 0x05cdfb0b, 0x05c80f88, 0x492c780a, - 0x841c3d52, 0x481c7c09, 0x4a025a05, 0x00000103, - 0x4812580b, 0x900401c0, 0x4802580a, 0x583c0405, - 0x583c1006, 0x583c2209, 0x48025c05, 0x480a5806, - 0x48125a09, 0x05fdf7d2, 0x8c000524, 0x05fc07a2, - 0x59325809, 0x4c000000, 0x592c0409, 0x8c00051c, - 0x5c000000, 0x05020003, 0x4a026013, 0xffffffff, - 0x84000524, 0x05fdf798, 0x1c01f000, 0x59a8002c, - 0x48026205, 0x59325809, 0x640a6203, 0x592c2409, - 0x59300808, 0x4933c857, 0x4807c857, 0x592c0205, - 0x82000500, 0x000000ff, 0xb0000588, 0x05020003, - 0x8c100500, 0x0506047f, 0x64025a07, 0x8c04051e, - 0x05000022, 0x41780800, 0x497a580a, 0x592c1c0a, - 0x59300013, 0x59341200, 0x497a6205, 0x8c08050e, - 0x05020062, 0x4807c857, 0x4806580b, 0x80000d40, - 0x05fe0f1d, 0x59300402, 0x48025c07, 0x48065808, - 0x4a025a05, 0x00000103, 0x4c040000, 0x4c0c0000, - 0x4c100000, 0x0505fafa, 0x5c002000, 0x5c001800, - 0x5c000800, 0x8c100512, 0x05020016, 0x4c0c0000, - 0x0001fb2c, 0x05e9f941, 0x5c001800, 0x8c0c0518, - 0x000400e7, 0x0501f7ab, 0x4813c857, 0x8c100518, - 0x05000044, 0x41780800, 0x592c1c0a, 0x820c0580, - 0x00001000, 0x05fc07db, 0x8c100512, 0x05fc07d9, - 0x592c780a, 0x583c080b, 0x583c1c0a, 0x05fdf7d5, - 0x4807c857, 0x592c780a, 0x59300402, 0x592c1405, - 0x8c08051e, 0x0502000c, 0x592c1207, 0x48007c07, - 0x48047808, 0x48087a07, 0x84102512, 0x48107c09, - 0x4c0c0000, 0x05cdfab8, 0x403e5800, 0x0501fa7b, - 0x05fdf7dd, 0x48025c07, 0x48065808, 0x583c080d, - 0x583c000c, 0x80040c00, 0x9004149d, 0x05001005, - 0x583c1001, 0x480a5801, 0x49787801, 0x60700800, - 0x90040c14, 0x4c0c0000, 0x4c500000, 0x4c540000, - 0x903ca409, 0x912cac09, 0x4c100000, 0x4c3c0000, - 0x0501fa7d, 0x5c007800, 0x5c002000, 0x5c00a800, - 0x5c00a000, 0x84102512, 0x48125c09, 0x403e5800, - 0x05cdfa99, 0x0505fab2, 0x42034000, 0x00109410, - 0x59a1d806, 0x80edd9c0, 0x05c80ef8, 0x48efc857, - 0x58ec0008, 0x4803c857, 0x0801f800, 0x05fdf7b6, - 0x4933c857, 0x1c01f000, 0x59301416, 0x480bc857, - 0x8c08051c, 0x0502000e, 0x80000540, 0x4803c857, - 0x05fc0799, 0x80042c80, 0x05fe1797, 0x8c080514, - 0x05020005, 0x592c0810, 0x4807c857, 0x80040480, - 0x48026018, 0x8408155c, 0x480a6416, 0x59301008, - 0x8408151e, 0x480a6008, 0x4c100000, 0x4c3c0000, - 0x4d400000, 0x592e8207, 0x64065a07, 0x0505fa8c, - 0x49425a07, 0x5c028000, 0x5c007800, 0x5c002000, - 0x497a580a, 0x8c100512, 0x05000005, 0x4d2c0000, - 0x403e5800, 0x05cdfa68, 0x5c025800, 0x82102500, - 0xffffedff, 0x48125c09, 0x59301006, 0x800811c0, - 0x05000771, 0x59a8002c, 0x80080480, 0x0502176e, - 0x4a025a05, 0x00000103, 0x641a5a07, 0x497a5c0a, - 0x492fc857, 0x0001fb2c, 0x05e9f8c0, 0x0005f0e7, - 0x59325809, 0x592c0409, 0x8c000518, 0x05000003, - 0x412df800, 0x05cdf7bc, 0x1c01f000, 0x4933c857, - 0x59325809, 0x497a580a, 0x64025a07, 0x4a025a05, - 0x00000103, 0x59300813, 0x4807c857, 0x800409c0, - 0x05020008, 0x48065808, 0x59300c02, 0x48065c07, - 0x0505fa5b, 0x0001fb2c, 0x05e9f8a8, 0x0005f0e7, - 0x59340200, 0x8c00050e, 0x05020005, 0x59300813, - 0x05fdfe6d, 0x48065808, 0x05fdf7f4, 0x592c0209, - 0x8c00050e, 0x05fe07fa, 0x4933c857, 0x0501f742, - 0x4933c857, 0x59325809, 0x812e59c0, 0x05c80e93, - 0x592c020b, 0x8c000502, 0x05c80e90, 0x640a6006, - 0x1c01f000, 0x5930001e, 0x800001c0, 0x05060c61, - 0x59300008, 0x4933c857, 0x4803c857, 0x8c00050e, - 0x05000032, 0x8c000500, 0x05000024, 0x8c00051c, - 0x05000009, 0x84000500, 0x48026008, 0x59325809, - 0x592c3c09, 0x481fc857, 0x841c3d58, 0x481e5c09, - 0x0005f13e, 0x59325809, 0x592c3c09, 0x841c3d58, - 0x59300008, 0x8c00051c, 0x05fe07f3, 0x481e5c09, - 0x60140000, 0x40000000, 0x80000040, 0x05fe07fe, - 0x59300008, 0x8c00051c, 0x05fe07eb, 0x592c0205, - 0x82000500, 0x000000ff, 0xb0000588, 0x05020003, - 0x497a580c, 0x0501f002, 0x497a580a, 0x481e5c09, - 0x64025a07, 0x05cdf750, 0x8c000524, 0x05fc07de, - 0x59325809, 0x4c000000, 0x592c0409, 0x8c00051c, - 0x5c000000, 0x05020003, 0x4a026013, 0xffffffff, - 0x84000524, 0x05fdf7d4, 0x1c01f000, 0x4933c857, - 0x41780800, 0xb1380498, 0x05021009, 0xb1380480, - 0x05001007, 0x4d2c0000, 0x59325809, 0x812e59c0, - 0x0c020805, 0x5c025800, 0x0005f0e7, 0x493bc857, - 0x1c01f000, 0x00106bb9, 0x00106bb9, 0x00106bb9, - 0x00106bb9, 0x00106bb9, 0x00106bba, 0x00106bb9, - 0x00106bb9, 0x00106bb9, 0x00106bb9, 0x00106bb9, - 0x00106bb9, 0x00106bb9, 0x00106bb9, 0x00106bb9, - 0x00106bb9, 0x00106bb9, 0x00106bb9, 0x00106bb9, - 0x00106bb9, 0x00106bbd, 0x00106bb9, 0x00106bb9, - 0x00106bb9, 0x05c9fe2d, 0x59cc0808, 0x497a5808, - 0x4807c857, 0x59300402, 0x48025c07, 0x4a025a05, - 0x00000103, 0x900401c0, 0x4802580a, 0x64025a07, - 0x800409c0, 0x0000032c, 0x59cc0009, 0x4802580b, - 0x82042500, 0x00000100, 0x05000002, 0x59cc200b, - 0x4812580d, 0x82040500, 0x00000200, 0x05000002, - 0x59cc000a, 0x4802580c, 0x80100c00, 0x05c81e13, - 0x0000032c, 0x9004149d, 0x05001005, 0x592c0405, - 0x8c00051e, 0x0500000a, 0x60700800, 0x4c500000, - 0x4c540000, 0x91cca40c, 0x912cac0e, 0x0501f97e, - 0x5c00a800, 0x5c00a000, 0x0001f32c, 0x0501f936, - 0x0501f162, 0x83380480, 0x00000093, 0x05ca1dff, - 0x83380480, 0x00000085, 0x05c81dfc, 0x0c01f001, - 0x00106bfa, 0x00106bf9, 0x00106bf9, 0x00106bff, - 0x00106bf9, 0x00106bf9, 0x00106bf9, 0x00106bf9, - 0x00106bf9, 0x00106bf9, 0x00106bf9, 0x00106bf9, - 0x00106bf9, 0x05c9fded, 0x64066203, 0x493a6403, - 0x42000800, 0x80000040, 0x0005f07c, 0x83300580, - 0x0010cc5c, 0x05ca0de5, 0x4933c857, 0x59cc1404, - 0x0505f84e, 0x05000023, 0x591c0203, 0x90000580, - 0x05000020, 0x591c000a, 0x81340580, 0x0502001d, - 0x59cc1204, 0x82080580, 0x0000ffff, 0x05000007, - 0x591c0202, 0x82000d80, 0x0000ffff, 0x05000003, - 0x80080580, 0x05020013, 0x4d300000, 0x4d1c0000, - 0x411e6000, 0x0501f98e, 0x5c023800, 0x5c026000, - 0x0500000a, 0x59cc0005, 0x8c000500, 0x05020003, - 0x0501f944, 0x0501f002, 0x640a3a03, 0x4a026403, - 0x00000086, 0x0501f005, 0x0501f974, 0x05fc07f6, - 0x4a026403, 0x00000087, 0x4d2c0000, 0x050dfb0c, - 0x05e9faa8, 0x5c025800, 0x59340200, 0x8c00050e, - 0x0500000b, 0x59cc1404, 0x0505f820, 0x05000008, - 0x591c0416, 0x8c00051a, 0x05000005, 0x4d300000, - 0x411e6000, 0x0501fe6a, 0x5c026000, 0x1c01f000, - 0x91380593, 0x0502000a, 0x59300403, 0x4803c857, - 0x82000d80, 0x00000086, 0x0500000c, 0x82000d80, - 0x00000087, 0x05ca0da1, 0x0501f008, 0x913805a7, - 0x05000003, 0x91380594, 0x05ca0d9c, 0x493bc857, - 0x05f1fc51, 0x05f9f188, 0x4933c857, 0x0005f0e7, - 0x91380593, 0x05020006, 0x59300403, 0x4803c857, - 0x82000480, 0x00000085, 0x0c01f03d, 0x913805a7, - 0x05020035, 0x4933c857, 0x05f1fc43, 0x4d3c0000, - 0x417a7800, 0x0201f800, 0x0010b652, 0x5c027800, - 0x60543000, 0x41782800, 0x600c2000, 0x60a68000, - 0x4d400000, 0x4d440000, 0x59368c03, 0x0505fb66, - 0x5c028800, 0x5c028000, 0x42000000, 0x001097f8, - 0x050dfc29, 0x0501fc77, 0x000400e7, 0x4d2c0000, - 0x59325809, 0x592c0205, 0x82000500, 0x000000ff, - 0x90000594, 0x05020d3f, 0x4a025a05, 0x00000103, - 0x59300402, 0x48025c07, 0x497a580a, 0x49425a07, - 0x0001fb2c, 0x5c025800, 0x0005f0e7, 0x83380580, - 0x00000089, 0x05000004, 0x83380580, 0x0000008a, - 0x05fa01b6, 0x05f1fff4, 0x05fa01b4, 0x59300a03, - 0x9004058a, 0x05000022, 0x9004058c, 0x05000020, - 0x05c9fd5a, 0x91380594, 0x05fe07f1, 0x4933c857, - 0x05f1fc0d, 0x601a8000, 0x05fdf7db, 0x00106ca1, - 0x00106ca0, 0x00106ca0, 0x00106ca0, 0x00106ca0, - 0x00106ca0, 0x00106ca6, 0x00106ca0, 0x00106ca0, - 0x00106ca0, 0x00106ca0, 0x00106ca0, 0x00106ca0, - 0x05c9fd46, 0x4933c857, 0x59a8002a, 0x48026006, - 0x642a6203, 0x1c01f000, 0x4933c857, 0x59a8002a, - 0x48026006, 0x64326203, 0x1c01f000, 0x5932680a, - 0x83380580, 0x00000089, 0x05000007, 0x83380580, - 0x0000008a, 0x0500001f, 0x4933c857, 0x493bc857, - 0x05f9f186, 0x4933c857, 0x59325809, 0x59300a1f, - 0x90040583, 0x05020007, 0x0501fc2a, 0x0500000d, - 0x0001fb2c, 0x05e5ff2d, 0x497a6009, 0x0501f009, - 0x5930021f, 0x90000581, 0x05020006, 0x59300c18, - 0x900405b9, 0x05000016, 0x900405b5, 0x05000014, - 0x59cc0c07, 0x4806641b, 0x59cc0a07, 0x4806621b, - 0x59300203, 0x4802641f, 0x64466203, 0x05f9f106, - 0x4933c857, 0x5930021f, 0x90000581, 0x0502003c, - 0x59300c18, 0x900405b5, 0x05000005, 0x9004059e, - 0x05000003, 0x900405b9, 0x05020035, 0x4933c857, - 0x4c5c0000, 0x4c600000, 0x4d1c0000, 0x4130b800, - 0x4004c000, 0x0501ff29, 0x05020028, 0x906005b5, - 0x05020004, 0x591c0c16, 0x8c040502, 0x05000023, - 0x05f9f91f, 0x05000021, 0x491fc857, 0x4933c857, - 0x906005b5, 0x05000003, 0x906005b9, 0x05020002, - 0x4932381e, 0x48626403, 0x64066203, 0x64066407, - 0x585c080a, 0x4807c857, 0x4806600a, 0x585c0c17, - 0x4807c857, 0x48066417, 0x585c0a17, 0x4807c857, - 0x48066217, 0x585c0a18, 0x4807c857, 0x48066218, - 0x585c0c1b, 0x4807c857, 0x4806641b, 0x585c0a1b, - 0x4807c857, 0x4806621b, 0x491e6020, 0x42000800, - 0x80000040, 0x0005f87c, 0x405e6000, 0x5c023800, - 0x5c00c000, 0x5c00b800, 0x0005f0e7, 0x0501fbd5, - 0x05000008, 0x4d2c0000, 0x59325809, 0x0001fb2c, - 0x5930021f, 0x90000583, 0x05e40ed4, 0x5c025800, - 0x0005f0e7, 0x4803c856, 0x4c500000, 0x4c540000, - 0x412c7800, 0x4c3c0000, 0x60042800, 0x82040480, - 0x00000101, 0x05001002, 0x60000802, 0x40043000, - 0x60700800, 0x91cca40c, 0x912cac0e, 0x0501f836, - 0x9018349c, 0x592e5801, 0x812e59c0, 0x05ce0856, - 0x05cdf83c, 0x05000011, 0x80142800, 0x4a025805, - 0x00000110, 0x492c7801, 0x90180cbd, 0x05021005, - 0x40180800, 0x912cac06, 0x0501f827, 0x0501f007, - 0x901834bc, 0x60f00800, 0x412c7800, 0x912cac06, - 0x0501f821, 0x05fdf7ef, 0x5c007800, 0x841429c0, - 0x90142d43, 0x48147a05, 0x403e5800, 0x5c00a800, - 0x5c00a000, 0x1c01f000, 0x492fc857, 0x812e59c0, - 0x0500000d, 0x4d2c0000, 0x4c3c0000, 0x592c7801, - 0x803c79c0, 0x05000005, 0x497a5801, 0x0001fb2c, - 0x403e5800, 0x05fdf7fa, 0x5c007800, 0x0001fb2c, - 0x5c025800, 0x1c01f000, 0x4803c856, 0x4c580000, - 0x90040403, 0x8000b104, 0x050dfc05, 0x5c00b000, - 0x1c01f000, 0x4803c856, 0x4c580000, 0x90040c03, - 0x8004b104, 0x050dfbfe, 0x5c00b000, 0x1c01f000, - 0x591c0c07, 0x90040583, 0x05000005, 0x90040582, - 0x05000003, 0x9004058a, 0x05020021, 0x4d300000, - 0x4d2c0000, 0x411e6000, 0x59325809, 0x0501fb75, - 0x05000018, 0x59300c07, 0x9004058a, 0x05000019, - 0x90040583, 0x05020007, 0x592c0a05, 0x82040d00, - 0x000000ff, 0x90040d94, 0x05000002, 0x640e621f, - 0x0501f813, 0x4d400000, 0x604e8000, 0x592c0a09, - 0x84040d54, 0x05e9f9bf, 0x5c028000, 0x0505f818, - 0x0001fb2c, 0x5930021f, 0x90000583, 0x05000c2d, - 0x05f9f84d, 0x5c025800, 0x5c026000, 0x1c01f000, - 0x644e5a07, 0x642a621f, 0x05fdf7f5, 0x592c0409, - 0x8c000512, 0x05000008, 0x84000512, 0x48025c09, - 0x4d2c0000, 0x592e580a, 0x05c9ffeb, 0x5c025800, - 0x497a580a, 0x1c01f000, 0x59cc0005, 0x8c000500, - 0x0502000a, 0x591c0407, 0x90000582, 0x05020007, - 0x591c0c03, 0x82040580, 0x00000085, 0x05000003, - 0x82040580, 0x0000008b, 0x1c01f000, 0x4933c857, - 0x4d3c0000, 0x600a7800, 0x59300407, 0x90000c92, - 0x05ca1c3a, 0x0c01f808, 0x5c027800, 0x1c01f000, - 0x4933c857, 0x59300407, 0x90000c92, 0x05ca1c33, - 0x0c01f001, 0x00106dcb, 0x00106dc8, 0x00106dc8, - 0x00106df0, 0x00106dc7, 0x00106dc8, 0x00106ddc, - 0x00106dc8, 0x00106dc7, 0x00106dc7, 0x001078cf, - 0x00106dc8, 0x00106dc8, 0x00106dc7, 0x00106dc7, - 0x00106dc7, 0x00106ec3, 0x00106dc8, 0x05c9fc1f, - 0x4803c856, 0x80000580, 0x1c01f000, 0x4803c856, - 0x8d3c0502, 0x0502000e, 0x0501fb16, 0x0500000a, - 0x59325809, 0x41780800, 0x4d400000, 0x60168000, - 0x05e9f96c, 0x5c028000, 0x0501ffc5, 0x0501fc5f, - 0x0001fb2c, 0x05f5fffc, 0x90000541, 0x1c01f000, - 0x4933c857, 0x05e5fdb6, 0x0500000b, 0x59300416, - 0x84000556, 0x48026416, 0x0501f80e, 0x4df00000, - 0x59300416, 0x84000516, 0x48026416, 0x5c03e000, - 0x1c01f000, 0x4d400000, 0x60428000, 0x0509fb76, - 0x641a6407, 0x641e6203, 0x5c028000, 0x1c01f000, - 0x4933c857, 0x05f1fb42, 0x4df00000, 0x0501f8c0, - 0x90000c8e, 0x05ca1bf1, 0x0c01f001, 0x00106e06, - 0x00106e72, 0x00106e18, 0x00106e82, 0x00106e6f, - 0x00106e05, 0x00106e06, 0x00106e06, 0x00106e09, - 0x00106e06, 0x00106e06, 0x00106e06, 0x00106e06, - 0x00106e18, 0x05c9fbe1, 0x5c03e000, 0x05f00b18, - 0x05fdf7c0, 0x5c03e000, 0x05f00b15, 0x59300407, - 0x90000583, 0x05fe07be, 0x59300203, 0x9000058d, - 0x05fc07bb, 0x8d3c0502, 0x05fe07b9, 0x4d340000, - 0x5932680a, 0x05e5fdd5, 0x5c026800, 0x05fdf7b4, - 0x0505fb0c, 0x0505fa31, 0x59300004, 0x8400055c, - 0x48026004, 0x4203e000, 0xb0800000, 0x6023f800, - 0x05f1faff, 0x59300407, 0x90000586, 0x05000048, - 0x8d3c0502, 0x05020046, 0x497a621f, 0x59300203, - 0x9000058d, 0x05000002, 0x640e621f, 0x0501fab9, - 0x05020004, 0x8d3c0500, 0x05000032, 0x0501f02a, - 0x4d2c0000, 0x4d400000, 0x59325809, 0x0501fc03, - 0x592c0409, 0x8c000512, 0x05000008, 0x4d2c0000, - 0x84000512, 0x48025c09, 0x592c080a, 0x40065800, - 0x05c9ff45, 0x5c025800, 0x4d400000, 0x60168000, - 0x592c0a09, 0x8c04050e, 0x05000003, 0x600a8000, - 0x0501f001, 0x05e9f8fb, 0x5c028000, 0x0501ff54, - 0x8d3c0500, 0x05020003, 0x050dfb64, 0x05020003, - 0x0001fb2c, 0x497a6009, 0x5c028000, 0x5c025800, - 0x8d3c0500, 0x0500000a, 0x59300a1f, 0x90040d83, - 0x05020005, 0x4d340000, 0x5932680a, 0x05e5fd93, - 0x5c026800, 0x05f5ff7c, 0x0501f011, 0x050dfb53, - 0x05020004, 0x59300a1f, 0x90040d83, 0x05000b55, - 0x4a026403, 0x00000085, 0x64266203, 0x640a6407, - 0x42000800, 0x80004040, 0x0505f9e4, 0x0005f87c, - 0x4203e000, 0xb0800000, 0x6023f800, 0x5c03e000, - 0x05f20ac7, 0x90000541, 0x1c01f000, 0x05f1fab0, - 0x05cdfca1, 0x05fdf7a7, 0x598c000b, 0x81300580, - 0x05020003, 0x05f1fd5b, 0x05020026, 0x0201f800, - 0x0010ba2e, 0x80c40040, 0x05020005, 0x59300c03, - 0xb0040580, 0x05fc078c, 0x05fdf79a, 0x05f1f9e3, - 0x0500001c, 0x05c9fb65, 0x0501f823, 0x05020003, - 0x05f1fd17, 0x05020017, 0x0201f800, 0x0010b8bb, - 0x80c40040, 0x0500000f, 0x05f1f9d8, 0x05000011, - 0x59300407, 0x90000583, 0x05ca0b58, 0x59300004, - 0x9000051f, 0x90000585, 0x05ca0b54, 0x58d400ec, - 0x82000500, 0x00000f00, 0x05fe0782, 0x05c9fb4f, - 0x59300c03, 0xb0040580, 0x05fc076f, 0x05fdf77d, - 0x59300203, 0x90000c8e, 0x05ca1b48, 0x0c01f758, - 0x0501f805, 0x60058800, 0x05000002, 0x60018800, - 0x1c01f000, 0x417a3000, 0x60df2160, 0x59900005, - 0x81300580, 0x05000006, 0x91932410, 0x811a3000, - 0x91180485, 0x05fc17fa, 0x90000541, 0x1c01f000, - 0x0501f803, 0x40018800, 0x1c01f000, 0x59300004, - 0x8c00053e, 0x0500000c, 0x8c00050c, 0x0502000a, - 0x8c000516, 0x05020004, 0x90000d1f, 0x90040585, - 0x05020003, 0x600c0000, 0x0501f004, 0x60040000, - 0x0501f002, 0x59300203, 0x1c01f000, 0x4933c857, - 0x05f1fa6f, 0x4df00000, 0x59300203, 0x90000c8e, - 0x05ca1b1e, 0x0c01f001, 0x00106ed9, 0x00106eec, - 0x00106edc, 0x00106ed8, 0x00106ed8, 0x00106ed8, - 0x00106ed8, 0x00106ed8, 0x00106ed8, 0x00106ed8, - 0x00106ed8, 0x00106ed8, 0x00106ed8, 0x00106ed8, - 0x05c9fb0e, 0x5c03e000, 0x05f00a45, 0x05fdf6ed, - 0x5c03e000, 0x05f00a42, 0x4d2c0000, 0x59325809, - 0x59300403, 0xb0000592, 0x05d00843, 0x0501fa01, - 0x05c80b02, 0x64165a07, 0x0001fb2c, 0x05e5ff44, - 0x05f5feed, 0x5c025800, 0x90000541, 0x1c01f000, - 0x598c000b, 0x81300580, 0x05020018, 0x59300004, - 0x8c000520, 0x05000004, 0x84000520, 0x48026004, - 0x0501f018, 0x42001000, 0x00109730, 0x50081000, - 0x58080002, 0x82000580, 0x00000100, 0x05000009, - 0x5808000b, 0x81300580, 0x05ca0ae8, 0x0201f800, - 0x0010ba2e, 0x80c40040, 0x05ca0ae4, 0x05fdf7d9, - 0x05f1fccc, 0x0502000c, 0x59300004, 0x8c000520, - 0x05000004, 0x84000520, 0x48026004, 0x05fdf7d1, - 0x0201f800, 0x0010ba2e, 0x80c40040, 0x05fc07cd, - 0x05c9fad6, 0x59300203, 0x90000c8e, 0x05ca1ad3, - 0x0c01f7b6, 0x4d340000, 0x5932680a, 0x59300407, - 0x4933c857, 0x4803c857, 0x90000c92, 0x05ca1acb, - 0x0c01f803, 0x5c026800, 0x1c01f000, 0x00106f34, - 0x00106f54, 0x00107044, 0x0010c00d, 0x0010703b, - 0x00107040, 0x00108155, 0x00106f3b, 0x00107037, - 0x00106f31, 0x00107097, 0x00106f31, 0x00106f31, - 0x00106f31, 0x00106f31, 0x000208e7, 0x0010768c, - 0x0010768c, 0x05c9fab5, 0x0501faa9, 0x05f804ba, - 0x1c01f000, 0x05f1f9fe, 0x05f1f967, 0x05f1f9e8, - 0x0005f0e7, 0x64066006, 0x1c01f000, 0x4d340000, - 0x4c5c0000, 0x59300203, 0x90000591, 0x05020011, - 0x5932680a, 0x4130b800, 0x0005f8ca, 0x0500000c, - 0x64066203, 0x647a6403, 0x585c041b, 0x4802641b, - 0x585c021b, 0x4802621b, 0x4936600a, 0x64066407, - 0x42000800, 0x80000040, 0x0005f87c, 0x405e6000, - 0x0005f8e7, 0x5c00b800, 0x5c026800, 0x1c01f000, - 0x42000000, 0x00109803, 0x050df93f, 0x050df86a, - 0x59300203, 0x90000c8e, 0x05ca1a8c, 0x4803c857, - 0x0c01f001, 0x00106f6b, 0x00106f39, 0x00106f6c, - 0x00106f6b, 0x00106f6c, 0x00106f6c, 0x00106f35, - 0x00106f6b, 0x00106f32, 0x00106f6b, 0x00106f6b, + 0x4806580a, 0x5c000800, 0x4c500000, 0x4c540000, + 0x91cca40c, 0x912cac0e, 0x0501fcaa, 0x5c00a800, + 0x5c00a000, 0x05fdf7a8, 0x4c040000, 0x4c0c0000, + 0x4c140000, 0x0005f987, 0x05020005, 0x64025a07, + 0x59300813, 0x800409c0, 0x050208ed, 0x48065808, + 0x5c002800, 0x5c001800, 0x59301402, 0x480a5c07, + 0x480e580b, 0x901401c0, 0x4802580a, 0x0505fcd6, + 0x5c000800, 0x0501fc4f, 0x0501fc7b, 0x05fdf796, + 0x592c020b, 0x8c000502, 0x05fc07b4, 0x592c0209, + 0x8c00050e, 0x05fe07b1, 0x59300013, 0x800c0d80, + 0x05fc07ae, 0x4803c857, 0x480fc857, 0x8c180514, + 0x050401bb, 0x80000540, 0x05fc07a8, 0x4807c856, + 0x0505f1b7, 0x592c020b, 0x8c000502, 0x05fc0772, + 0x59300013, 0x800001c0, 0x05fc0771, 0x592c0209, + 0x8c00050e, 0x05fe076e, 0x0505f1ad, 0x1c01f000, + 0x59cc2006, 0x59cc2807, 0x0501f037, 0x0501f036, + 0x1c01f000, 0x4933c857, 0x59300004, 0x8c00053e, + 0x0502002d, 0x5930001e, 0x800001c0, 0x05060ecb, + 0x59325809, 0x592c0c09, 0x41782800, 0x41781800, + 0x84040d58, 0x48065c09, 0x41783000, 0x59340200, + 0x8c00050e, 0x05020015, 0x0005f987, 0x05020006, + 0x64025a07, 0x59300813, 0x4807c857, 0x800409c0, + 0x050208a7, 0x4a025a05, 0x00000103, 0x48065808, + 0x480e580b, 0x901409c0, 0x4806580a, 0x4933c857, + 0x59300c02, 0x48065c07, 0x0505fc8f, 0x0001fb2c, + 0x05e9fa59, 0x0005f0e7, 0x592c020b, 0x8c000502, + 0x05fc07ea, 0x59300013, 0x4803c857, 0x800001c0, + 0x05fc07e8, 0x592c0209, 0x8c00050e, 0x05fe07e5, + 0x0505f177, 0x05f5fb54, 0x05fc07d3, 0x4933c857, + 0x1c01f000, 0x4c5c0000, 0x4c600000, 0x4010b800, + 0x4014c000, 0x5930001e, 0x800001c0, 0x4c140000, + 0x05060e96, 0x5c002800, 0x59325809, 0x592c020b, + 0x8c000502, 0x05020020, 0x8c000500, 0x05000025, + 0x640a6203, 0x650e6403, 0x405c0000, 0x592c0810, + 0x80040c80, 0x40600000, 0x80040480, 0x0500101a, + 0x8060c1c0, 0x05000011, 0x59300004, 0x8c00053e, + 0x0502000a, 0x485e6015, 0x48626013, 0x497a6205, + 0x5c00c000, 0x5c00b800, 0x05d1fa10, 0x0502000c, + 0x59300804, 0x0005f072, 0x4c140000, 0x05f5fb2a, + 0x5c002800, 0x05fc07f4, 0x5c00c000, 0x5c00b800, + 0x05f9f4d6, 0x5c00c000, 0x5c00b800, 0x4933c857, + 0x1c01f000, 0x4807c857, 0x4004c000, 0x05fdf7e5, + 0x4803c857, 0x05fdf7f5, 0xb1380498, 0x05021004, + 0xb1380480, 0x05001002, 0x0c01f002, 0x1c01f000, + 0x00106a08, 0x00106a08, 0x00106a08, 0x00106a08, + 0x00106a08, 0x00106a08, 0x00106a08, 0x00106a08, + 0x00106a08, 0x00106a08, 0x00106a09, 0x00106a08, + 0x00106a08, 0x00106a08, 0x00106a08, 0x00106a13, + 0x00106a08, 0x00106a08, 0x00106a08, 0x00106a08, + 0x00106a37, 0x00106a08, 0x00106a08, 0x00106a08, + 0x05c9ffde, 0x4933c857, 0x05f5f983, 0x640a6203, + 0x59a8002c, 0x48026205, 0x59300013, 0x59300817, + 0x80040c80, 0x48066017, 0x05f1f6fa, 0x4933c857, + 0x05f1fef8, 0x4d3c0000, 0x417a7800, 0x0201f800, + 0x0010b660, 0x5c027800, 0x42000000, 0x00109878, + 0x050dff43, 0x0501ff5d, 0x0500000e, 0x4d2c0000, + 0x59325809, 0x4a025a05, 0x00000103, 0x59300402, + 0x48025c07, 0x64a65a07, 0x497a580a, 0x592c0c09, + 0x84040d50, 0x48065c09, 0x0001fb2c, 0x5c025800, + 0x60503000, 0x41782800, 0x4d400000, 0x4d440000, + 0x59368c03, 0x60082000, 0x60a68000, 0x0505fe30, + 0x5c028800, 0x5c028000, 0x0005f0e7, 0x4933c857, + 0x59300809, 0x4978080a, 0x4978080b, 0x58041409, + 0x84081558, 0x48080c09, 0x1c01f000, 0x4807c857, + 0x8c04053e, 0x05020022, 0x497a5a07, 0x59300021, + 0x80000540, 0x05000017, 0x497a5a07, 0x4c040000, + 0x4c080000, 0x4c0c0000, 0x4c100000, 0x4c140000, + 0x40002800, 0x58141003, 0x40040000, 0x80081480, + 0x48082803, 0x40140000, 0x05cdffae, 0x5c002800, + 0x5c002000, 0x5c001800, 0x5c001000, 0x5c000800, + 0x592c0207, 0x80000540, 0x05020008, 0x0501f005, + 0x592c0409, 0x8c00051c, 0x05000002, 0x592c0803, + 0x4807c857, 0x64565a07, 0x1c01f000, 0x59300021, + 0x80000540, 0x05000007, 0x64465a07, 0x59300021, + 0x4c040000, 0x05cdff97, 0x5c000800, 0x05fdf7f7, + 0x4807c856, 0x641e5a07, 0x1c01f000, 0xb1380498, + 0x05021006, 0xb1380480, 0x05001004, 0x4d2c0000, + 0x0c01f803, 0x5c025800, 0x1c01f000, 0x00106a8f, + 0x00106a8f, 0x00106a8f, 0x00106a8f, 0x00106a8f, + 0x00106a91, 0x00106a90, 0x00106a8f, 0x00106b05, + 0x00106a8f, 0x00106a8f, 0x00106a8f, 0x00106a8f, + 0x00106a8f, 0x00106a8f, 0x00106a8f, 0x00106a8f, + 0x00106a8f, 0x00106a8f, 0x00106bb6, 0x00106bda, + 0x00106bbd, 0x00106a90, 0x00106be3, 0x05c9ff57, + 0x1c01f000, 0x5930001e, 0x800001c0, 0x05060dbf, + 0x59300008, 0x8c00050e, 0x0500006e, 0x8c000500, + 0x05000060, 0x8c00051c, 0x05000008, 0x84000500, + 0x48026008, 0x59325809, 0x592c3c09, 0x841c3d58, + 0x481e5c09, 0x0005f13e, 0x59325809, 0x592c3c09, + 0x841c3d58, 0x59300008, 0x8c00051c, 0x05fe07f4, + 0x481e5c09, 0x60140000, 0x40000000, 0x80000040, + 0x05fe07fe, 0x59300008, 0x8c00051c, 0x05fe07ec, + 0x59cc0808, 0x592c0205, 0x82000500, 0x000000ff, + 0xb0000588, 0x0502000a, 0x497a580c, 0x82040500, + 0x000000ff, 0x05000006, 0x592c0408, 0x800001c0, + 0x05000003, 0x0505fca9, 0x05d1f017, 0x900421c0, + 0x4812580a, 0x41782000, 0x82040500, 0x00000c00, + 0x05000002, 0x59cc2009, 0x82043500, 0x00000fff, + 0x0502001e, 0x481e5c09, 0x64025a07, 0x801831c0, + 0x05d00009, 0x41782000, 0x8c180510, 0x05000002, + 0x59cc200b, 0x4812580d, 0x41780000, 0x8c180512, + 0x05000002, 0x59cc000a, 0x4802580c, 0x80100c00, + 0x05c81f0e, 0x05cc07fc, 0x9004149d, 0x05021009, + 0x4c500000, 0x4c540000, 0x91cca40c, 0x912cac0e, + 0x0501fb10, 0x5c00a800, 0x5c00a000, 0x05cdf7f2, + 0x0501fac8, 0x05cdf7f0, 0x412c7800, 0x05cdfa81, + 0x05c80efe, 0x492c780a, 0x841c3d52, 0x481c7c09, + 0x4a025a05, 0x00000103, 0x4812580b, 0x900401c0, + 0x4802580a, 0x583c0405, 0x583c1006, 0x583c2209, + 0x48025c05, 0x480a5806, 0x48125a09, 0x05fdf7d2, + 0x8c000524, 0x05fc07a2, 0x59325809, 0x4c000000, + 0x592c0409, 0x8c00051c, 0x5c000000, 0x05020003, + 0x4a026013, 0xffffffff, 0x84000524, 0x05fdf798, + 0x1c01f000, 0x59a8002c, 0x48026205, 0x59325809, + 0x640a6203, 0x592c2409, 0x59300808, 0x4933c857, + 0x4807c857, 0x592c0205, 0x82000500, 0x000000ff, + 0xb0000588, 0x05020003, 0x8c100500, 0x0506048b, + 0x64025a07, 0x8c04051e, 0x05000022, 0x41780800, + 0x497a580a, 0x592c1c0a, 0x59300013, 0x59341200, + 0x497a6205, 0x8c08050e, 0x05020062, 0x4807c857, + 0x4806580b, 0x80000d40, 0x05fe0f1d, 0x59300402, + 0x48025c07, 0x48065808, 0x4a025a05, 0x00000103, + 0x4c040000, 0x4c0c0000, 0x4c100000, 0x0505fb06, + 0x5c002000, 0x5c001800, 0x5c000800, 0x8c100512, + 0x05020016, 0x4c0c0000, 0x0001fb2c, 0x05e9f8ca, + 0x5c001800, 0x8c0c0518, 0x000400e7, 0x0501f7b7, + 0x4813c857, 0x8c100518, 0x05000044, 0x41780800, + 0x592c1c0a, 0x820c0580, 0x00001000, 0x05fc07db, + 0x8c100512, 0x05fc07d9, 0x592c780a, 0x583c080b, + 0x583c1c0a, 0x05fdf7d5, 0x4807c857, 0x592c780a, + 0x59300402, 0x592c1405, 0x8c08051e, 0x0502000c, + 0x592c1207, 0x48007c07, 0x48047808, 0x48087a07, + 0x84102512, 0x48107c09, 0x4c0c0000, 0x05cdfa2e, + 0x403e5800, 0x0501fa84, 0x05fdf7dd, 0x48025c07, + 0x48065808, 0x583c080d, 0x583c000c, 0x80040c00, + 0x9004149d, 0x05001005, 0x583c1001, 0x480a5801, + 0x49787801, 0x60700800, 0x90040c14, 0x4c0c0000, + 0x4c500000, 0x4c540000, 0x903ca409, 0x912cac09, + 0x4c100000, 0x4c3c0000, 0x0501fa86, 0x5c007800, + 0x5c002000, 0x5c00a800, 0x5c00a000, 0x84102512, + 0x48125c09, 0x403e5800, 0x05cdfa0f, 0x0505fabe, + 0x42034000, 0x00109490, 0x59a1d806, 0x80edd9c0, + 0x05c80e6e, 0x48efc857, 0x58ec0008, 0x4803c857, + 0x0801f800, 0x05fdf7b6, 0x4933c857, 0x1c01f000, + 0x59301416, 0x480bc857, 0x8c08051c, 0x0502000e, + 0x80000540, 0x4803c857, 0x05fc0799, 0x80042c80, + 0x05fe1797, 0x8c080514, 0x05020005, 0x592c0810, + 0x4807c857, 0x80040480, 0x48026018, 0x8408155c, + 0x480a6416, 0x59301008, 0x8408151e, 0x480a6008, + 0x4c100000, 0x4c3c0000, 0x4d400000, 0x592e8207, + 0x64065a07, 0x0505fa98, 0x49425a07, 0x5c028000, + 0x5c007800, 0x5c002000, 0x497a580a, 0x8c100512, + 0x05000005, 0x4d2c0000, 0x403e5800, 0x05cdf9de, + 0x5c025800, 0x82102500, 0xffffedff, 0x48125c09, + 0x59301006, 0x800811c0, 0x0500077d, 0x59a8002c, + 0x80080480, 0x0502177a, 0x4a025a05, 0x00000103, + 0x641a5a07, 0x497a5c0a, 0x492fc857, 0x0001fb2c, + 0x05e9f849, 0x0005f0e7, 0x59325809, 0x592c0409, + 0x8c000518, 0x05000003, 0x412df800, 0x05cdf732, + 0x1c01f000, 0x4933c857, 0x59325809, 0x497a580a, + 0x64025a07, 0x4a025a05, 0x00000103, 0x59300813, + 0x4807c857, 0x800409c0, 0x05020008, 0x48065808, + 0x59300c02, 0x48065c07, 0x0505fa67, 0x0001fb2c, + 0x05e9f831, 0x0005f0e7, 0x59340200, 0x8c00050e, + 0x05020005, 0x59300813, 0x05fdfe6d, 0x48065808, + 0x05fdf7f4, 0x592c0209, 0x8c00050e, 0x05fe07fa, + 0x4933c857, 0x0501f74e, 0x4933c857, 0x59325809, + 0x812e59c0, 0x05c80e09, 0x592c020b, 0x8c000502, + 0x05c80e06, 0x640a6006, 0x1c01f000, 0x5930001e, + 0x800001c0, 0x05060c6d, 0x59300008, 0x4933c857, + 0x4803c857, 0x8c00050e, 0x05000032, 0x8c000500, + 0x05000024, 0x8c00051c, 0x05000009, 0x84000500, + 0x48026008, 0x59325809, 0x592c3c09, 0x481fc857, + 0x841c3d58, 0x481e5c09, 0x0005f13e, 0x59325809, + 0x592c3c09, 0x841c3d58, 0x59300008, 0x8c00051c, + 0x05fe07f3, 0x481e5c09, 0x60140000, 0x40000000, + 0x80000040, 0x05fe07fe, 0x59300008, 0x8c00051c, + 0x05fe07eb, 0x592c0205, 0x82000500, 0x000000ff, + 0xb0000588, 0x05020003, 0x497a580c, 0x0501f002, + 0x497a580a, 0x481e5c09, 0x64025a07, 0x05cdf6c6, + 0x8c000524, 0x05fc07de, 0x59325809, 0x4c000000, + 0x592c0409, 0x8c00051c, 0x5c000000, 0x05020003, + 0x4a026013, 0xffffffff, 0x84000524, 0x05fdf7d4, + 0x1c01f000, 0x4933c857, 0x41780800, 0xb1380498, + 0x05021009, 0xb1380480, 0x05001007, 0x4d2c0000, + 0x59325809, 0x812e59c0, 0x0c020805, 0x5c025800, + 0x0005f0e7, 0x493bc857, 0x1c01f000, 0x00106c43, + 0x00106c43, 0x00106c43, 0x00106c43, 0x00106c43, + 0x00106c44, 0x00106c43, 0x00106c43, 0x00106c43, + 0x00106c43, 0x00106c43, 0x00106c43, 0x00106c43, + 0x00106c43, 0x00106c43, 0x00106c43, 0x00106c43, + 0x00106c43, 0x00106c43, 0x00106c43, 0x00106c47, + 0x00106c43, 0x00106c43, 0x00106c43, 0x05c9fda3, + 0x59cc0808, 0x497a5808, 0x4807c857, 0x59300402, + 0x48025c07, 0x4a025a05, 0x00000103, 0x900401c0, + 0x4802580a, 0x64025a07, 0x800409c0, 0x0000032c, + 0x59cc0009, 0x4802580b, 0x82042500, 0x00000100, + 0x05000002, 0x59cc200b, 0x4812580d, 0x82040500, + 0x00000200, 0x05000002, 0x59cc000a, 0x4802580c, + 0x80100c00, 0x05c81d89, 0x0000032c, 0x9004149d, + 0x05001005, 0x592c0405, 0x8c00051e, 0x0500000a, + 0x60700800, 0x4c500000, 0x4c540000, 0x91cca40c, + 0x912cac0e, 0x0501f987, 0x5c00a800, 0x5c00a000, + 0x0001f32c, 0x0501f93f, 0x0501f16b, 0x83380480, + 0x00000093, 0x05ca1d75, 0x83380480, 0x00000085, + 0x05c81d72, 0x0c01f001, 0x00106c84, 0x00106c83, + 0x00106c83, 0x00106c89, 0x00106c83, 0x00106c83, + 0x00106c83, 0x00106c83, 0x00106c83, 0x00106c83, + 0x00106c83, 0x00106c83, 0x00106c83, 0x05c9fd63, + 0x64066203, 0x493a6403, 0x42000800, 0x80000040, + 0x0005f07c, 0x83300580, 0x0010cc6c, 0x05ca0d5b, + 0x4933c857, 0x59cc1404, 0x0505f85a, 0x05000023, + 0x591c0203, 0x90000580, 0x05000020, 0x591c000a, + 0x81340580, 0x0502001d, 0x59cc1204, 0x82080580, + 0x0000ffff, 0x05000007, 0x591c0202, 0x82000d80, + 0x0000ffff, 0x05000003, 0x80080580, 0x05020013, + 0x4d300000, 0x4d1c0000, 0x411e6000, 0x0501f997, + 0x5c023800, 0x5c026000, 0x0500000a, 0x59cc0005, + 0x8c000500, 0x05020003, 0x0501f94d, 0x0501f002, + 0x640a3a03, 0x4a026403, 0x00000086, 0x0501f005, + 0x0501f97d, 0x05fc07f6, 0x4a026403, 0x00000087, + 0x4d2c0000, 0x050dfb4c, 0x05e9fa36, 0x5c025800, + 0x59340200, 0x8c00050e, 0x0500000b, 0x59cc1404, + 0x0505f82c, 0x05000008, 0x591c0416, 0x8c00051a, + 0x05000005, 0x4d300000, 0x411e6000, 0x0501fe76, + 0x5c026000, 0x1c01f000, 0x91380593, 0x0502000a, + 0x59300403, 0x4803c857, 0x82000d80, 0x00000086, + 0x05000015, 0x82000d80, 0x00000087, 0x05ca0d17, + 0x0501f011, 0x913805a7, 0x05000003, 0x91380594, + 0x05ca0d12, 0x493bc857, 0x05f1fc53, 0x0501fca3, + 0x05f80175, 0x4d2c0000, 0x59325809, 0x0001fb2c, + 0x59300a1f, 0x90040d83, 0x05000d6c, 0x5c025800, + 0x05f9f16d, 0x4933c857, 0x0005f0e7, 0x91380593, + 0x05020006, 0x59300403, 0x4803c857, 0x82000480, + 0x00000085, 0x0c01f03d, 0x913805a7, 0x05020035, + 0x4933c857, 0x05f1fc3c, 0x4d3c0000, 0x417a7800, + 0x0201f800, 0x0010b660, 0x5c027800, 0x60543000, + 0x41782800, 0x600c2000, 0x60a68000, 0x4d400000, + 0x4d440000, 0x59368c03, 0x0505fb69, 0x5c028800, + 0x5c028000, 0x42000000, 0x00109878, 0x050dfc60, + 0x0501fc7a, 0x000400e7, 0x4d2c0000, 0x59325809, + 0x592c0205, 0x82000500, 0x000000ff, 0x90000594, + 0x05020d42, 0x4a025a05, 0x00000103, 0x59300402, + 0x48025c07, 0x497a580a, 0x49425a07, 0x0001fb2c, + 0x5c025800, 0x0005f0e7, 0x83380580, 0x00000089, + 0x05000004, 0x83380580, 0x0000008a, 0x05fa019f, + 0x05f1ffed, 0x05fa019d, 0x59300a03, 0x9004058a, + 0x05000022, 0x9004058c, 0x05000020, 0x05c9fcc7, + 0x91380594, 0x05fe07f1, 0x4933c857, 0x05f1fc06, + 0x601a8000, 0x05fdf7db, 0x00106d34, 0x00106d33, + 0x00106d33, 0x00106d33, 0x00106d33, 0x00106d33, + 0x00106d39, 0x00106d33, 0x00106d33, 0x00106d33, + 0x00106d33, 0x00106d33, 0x00106d33, 0x05c9fcb3, + 0x4933c857, 0x59a8002a, 0x48026006, 0x642a6203, + 0x1c01f000, 0x4933c857, 0x59a8002a, 0x48026006, + 0x64326203, 0x1c01f000, 0x5932680a, 0x83380580, + 0x00000089, 0x05000007, 0x83380580, 0x0000008a, + 0x0500001f, 0x4933c857, 0x493bc857, 0x05f9f16f, + 0x4933c857, 0x59325809, 0x59300a1f, 0x90040583, + 0x05020007, 0x0501fc2d, 0x0500000d, 0x0001fb2c, + 0x05e5fead, 0x497a6009, 0x0501f009, 0x5930021f, + 0x90000581, 0x05020006, 0x59300c18, 0x900405b9, + 0x05000016, 0x900405b5, 0x05000014, 0x59cc0c07, + 0x4806641b, 0x59cc0a07, 0x4806621b, 0x59300203, + 0x4802641f, 0x64466203, 0x05f9f0eb, 0x4933c857, + 0x5930021f, 0x90000581, 0x0502003c, 0x59300c18, + 0x900405b5, 0x05000005, 0x9004059e, 0x05000003, + 0x900405b9, 0x05020035, 0x4933c857, 0x4c5c0000, + 0x4c600000, 0x4d1c0000, 0x4130b800, 0x4004c000, + 0x0501ff2c, 0x05020028, 0x906005b5, 0x05020004, + 0x591c0c16, 0x8c040502, 0x05000023, 0x05f9f908, + 0x05000021, 0x491fc857, 0x4933c857, 0x906005b5, + 0x05000003, 0x906005b9, 0x05020002, 0x4932381e, + 0x48626403, 0x64066203, 0x64066407, 0x585c080a, + 0x4807c857, 0x4806600a, 0x585c0c17, 0x4807c857, + 0x48066417, 0x585c0a17, 0x4807c857, 0x48066217, + 0x585c0a18, 0x4807c857, 0x48066218, 0x585c0c1b, + 0x4807c857, 0x4806641b, 0x585c0a1b, 0x4807c857, + 0x4806621b, 0x491e6020, 0x42000800, 0x80000040, + 0x0005f87c, 0x405e6000, 0x5c023800, 0x5c00c000, + 0x5c00b800, 0x0005f0e7, 0x0501fbd8, 0x05000008, + 0x4d2c0000, 0x59325809, 0x0001fb2c, 0x5930021f, + 0x90000583, 0x05e40e54, 0x5c025800, 0x0005f0e7, + 0x4803c856, 0x4c500000, 0x4c540000, 0x412c7800, + 0x4c3c0000, 0x60042800, 0x82040480, 0x00000101, + 0x05001002, 0x60000802, 0x40043000, 0x60700800, + 0x91cca40c, 0x912cac0e, 0x0501f836, 0x9018349c, + 0x592e5801, 0x812e59c0, 0x05ca0fc3, 0x05c9ffa9, + 0x05000011, 0x80142800, 0x4a025805, 0x00000110, + 0x492c7801, 0x90180cbd, 0x05021005, 0x40180800, + 0x912cac06, 0x0501f827, 0x0501f007, 0x901834bc, + 0x60f00800, 0x412c7800, 0x912cac06, 0x0501f821, + 0x05fdf7ef, 0x5c007800, 0x841429c0, 0x90142d43, + 0x48147a05, 0x403e5800, 0x5c00a800, 0x5c00a000, + 0x1c01f000, 0x492fc857, 0x812e59c0, 0x0500000d, + 0x4d2c0000, 0x4c3c0000, 0x592c7801, 0x803c79c0, + 0x05000005, 0x497a5801, 0x0001fb2c, 0x403e5800, + 0x05fdf7fa, 0x5c007800, 0x0001fb2c, 0x5c025800, + 0x1c01f000, 0x4803c856, 0x4c580000, 0x90040403, + 0x8000b104, 0x050dfc3c, 0x5c00b000, 0x1c01f000, + 0x4803c856, 0x4c580000, 0x90040c03, 0x8004b104, + 0x050dfc35, 0x5c00b000, 0x1c01f000, 0x591c0c07, + 0x90040583, 0x05000005, 0x90040582, 0x05000003, + 0x9004058a, 0x05020021, 0x4d300000, 0x4d2c0000, + 0x411e6000, 0x59325809, 0x0501fb78, 0x05000018, + 0x59300c07, 0x9004058a, 0x05000019, 0x90040583, + 0x05020007, 0x592c0a05, 0x82040d00, 0x000000ff, + 0x90040d94, 0x05000002, 0x640e621f, 0x0501f813, + 0x4d400000, 0x604e8000, 0x592c0a09, 0x84040d54, + 0x05e9f962, 0x5c028000, 0x0505f81b, 0x0001fb2c, + 0x5930021f, 0x90000583, 0x05000c30, 0x05f9f832, + 0x5c025800, 0x5c026000, 0x1c01f000, 0x644e5a07, + 0x642a621f, 0x05fdf7f5, 0x592c0409, 0x8c000512, + 0x05000008, 0x84000512, 0x48025c09, 0x4d2c0000, + 0x592e580a, 0x05c9ff58, 0x5c025800, 0x497a580a, + 0x1c01f000, 0x59cc0005, 0x8c000500, 0x0502000a, + 0x591c0407, 0x90000582, 0x05020007, 0x591c0c03, + 0x82040580, 0x00000085, 0x05000003, 0x82040580, + 0x0000008b, 0x1c01f000, 0x4933c857, 0x4d3c0000, + 0x600a7800, 0x59300407, 0x90000c92, 0x05ca1ba7, + 0x0c01f808, 0x5c027800, 0x1c01f000, 0x4933c857, + 0x59300407, 0x90000c92, 0x05ca1ba0, 0x0c01f001, + 0x00106e5e, 0x00106e5b, 0x00106e5b, 0x00106e83, + 0x00106e5a, 0x00106e5b, 0x00106e6f, 0x00106e5b, + 0x00106e5a, 0x00106e5a, 0x00107965, 0x00106e5b, + 0x00106e5b, 0x00106e5a, 0x00106e5a, 0x00106e5a, + 0x00106f56, 0x00106e5b, 0x05c9fb8c, 0x4803c856, + 0x80000580, 0x1c01f000, 0x4803c856, 0x8d3c0502, + 0x0502000e, 0x0501fb19, 0x0500000a, 0x59325809, + 0x41780800, 0x4d400000, 0x60168000, 0x05e9f90f, + 0x5c028000, 0x0501ffc8, 0x0501fc62, 0x0001fb2c, + 0x05f5ffe1, 0x90000541, 0x1c01f000, 0x4933c857, + 0x05e5fd36, 0x0500000b, 0x59300416, 0x84000556, + 0x48026416, 0x0501f80e, 0x4df00000, 0x59300416, + 0x84000516, 0x48026416, 0x5c03e000, 0x1c01f000, + 0x4d400000, 0x60428000, 0x0509fb94, 0x641a6407, + 0x641e6203, 0x5c028000, 0x1c01f000, 0x4933c857, + 0x05f1fb3b, 0x4df00000, 0x0501f8c0, 0x90000c8e, + 0x05ca1b5e, 0x0c01f001, 0x00106e99, 0x00106f05, + 0x00106eab, 0x00106f15, 0x00106f02, 0x00106e98, + 0x00106e99, 0x00106e99, 0x00106e9c, 0x00106e99, + 0x00106e99, 0x00106e99, 0x00106e99, 0x00106eab, + 0x05c9fb4e, 0x5c03e000, 0x05f00b11, 0x05fdf7c0, + 0x5c03e000, 0x05f00b0e, 0x59300407, 0x90000583, + 0x05fe07be, 0x59300203, 0x9000058d, 0x05fc07bb, + 0x8d3c0502, 0x05fe07b9, 0x4d340000, 0x5932680a, + 0x05e5fd55, 0x5c026800, 0x05fdf7b4, 0x0505fb0f, + 0x0505fa34, 0x59300004, 0x8400055c, 0x48026004, + 0x4203e000, 0xb0800000, 0x6023f800, 0x05f1faf8, + 0x59300407, 0x90000586, 0x05000048, 0x8d3c0502, + 0x05020046, 0x497a621f, 0x59300203, 0x9000058d, + 0x05000002, 0x640e621f, 0x0501fabc, 0x05020004, + 0x8d3c0500, 0x05000032, 0x0501f02a, 0x4d2c0000, + 0x4d400000, 0x59325809, 0x0501fc06, 0x592c0409, + 0x8c000512, 0x05000008, 0x4d2c0000, 0x84000512, + 0x48025c09, 0x592c080a, 0x40065800, 0x05c9feb2, + 0x5c025800, 0x4d400000, 0x60168000, 0x592c0a09, + 0x8c04050e, 0x05000003, 0x600a8000, 0x0501f001, + 0x05e9f89e, 0x5c028000, 0x0501ff57, 0x8d3c0500, + 0x05020003, 0x050dfb9b, 0x05020003, 0x0001fb2c, + 0x497a6009, 0x5c028000, 0x5c025800, 0x8d3c0500, + 0x0500000a, 0x59300a1f, 0x90040d83, 0x05020005, + 0x4d340000, 0x5932680a, 0x05e5fd13, 0x5c026800, + 0x05f5ff61, 0x0501f011, 0x050dfb8a, 0x05020004, + 0x59300a1f, 0x90040d83, 0x05000b58, 0x4a026403, + 0x00000085, 0x64266203, 0x640a6407, 0x42000800, + 0x80004040, 0x0505f9e7, 0x0005f87c, 0x4203e000, + 0xb0800000, 0x6023f800, 0x5c03e000, 0x05f20ac0, + 0x90000541, 0x1c01f000, 0x05f1faa9, 0x05cdfc0e, + 0x05fdf7a7, 0x598c000b, 0x81300580, 0x05020003, + 0x05f1fd54, 0x05020026, 0x0201f800, 0x0010ba3e, + 0x80c40040, 0x05020005, 0x59300c03, 0xb0040580, + 0x05fc078c, 0x05fdf79a, 0x05f1f9dc, 0x0500001c, + 0x05c9fad2, 0x0501f823, 0x05020003, 0x05f1fd10, + 0x05020017, 0x0201f800, 0x0010b8cb, 0x80c40040, + 0x0500000f, 0x05f1f9d1, 0x05000011, 0x59300407, + 0x90000583, 0x05ca0ac5, 0x59300004, 0x9000051f, + 0x90000585, 0x05ca0ac1, 0x58d400ec, 0x82000500, + 0x00000f00, 0x05fe0782, 0x05c9fabc, 0x59300c03, + 0xb0040580, 0x05fc076f, 0x05fdf77d, 0x59300203, + 0x90000c8e, 0x05ca1ab5, 0x0c01f758, 0x0501f805, + 0x60058800, 0x05000002, 0x60018800, 0x1c01f000, + 0x417a3000, 0x60df2160, 0x59900005, 0x81300580, + 0x05000006, 0x91932410, 0x811a3000, 0x91180485, + 0x05fc17fa, 0x90000541, 0x1c01f000, 0x0501f803, + 0x40018800, 0x1c01f000, 0x59300004, 0x8c00053e, + 0x0500000c, 0x8c00050c, 0x0502000a, 0x8c000516, + 0x05020004, 0x90000d1f, 0x90040585, 0x05020003, + 0x600c0000, 0x0501f004, 0x60040000, 0x0501f002, + 0x59300203, 0x1c01f000, 0x4933c857, 0x05f1fa68, + 0x4df00000, 0x59300203, 0x90000c8e, 0x05ca1a8b, + 0x0c01f001, 0x00106f6c, 0x00106f7f, 0x00106f6f, + 0x00106f6b, 0x00106f6b, 0x00106f6b, 0x00106f6b, + 0x00106f6b, 0x00106f6b, 0x00106f6b, 0x00106f6b, 0x00106f6b, 0x00106f6b, 0x00106f6b, 0x05c9fa7b, - 0x4d2c0000, 0x59340400, 0x82000500, 0x000000ff, - 0x90000c8c, 0x05ca1a75, 0x59303403, 0x90180d84, - 0x05020003, 0x60040000, 0x0501f004, 0x90180d80, - 0x05020002, 0x60040000, 0x4803c857, 0x0c01f803, - 0x5c025800, 0x1c01f000, 0x00106f8a, 0x00106ff9, - 0x00106f8b, 0x00106fb2, 0x00106f8b, 0x0010700f, - 0x00106f8b, 0x00106f92, 0x00106f8a, 0x0010700f, - 0x00106f8a, 0x00106f9d, 0x05c9fa5c, 0x59300403, - 0x90000d96, 0x05000023, 0x90000d84, 0x05000021, - 0x90000d82, 0x0500001f, 0x0501fa49, 0x0500001d, - 0x59300403, 0x90000da2, 0x0500007b, 0x90000db9, - 0x0500007f, 0x90000db5, 0x0500007d, 0x90000d9e, - 0x05000015, 0x0501f947, 0x05000005, 0x0501fdf7, - 0x05020003, 0x05e5fccb, 0x0501f00e, 0x59300403, - 0x90000d81, 0x05020003, 0x05e5fc91, 0x05000009, - 0x4d3c0000, 0x417a7800, 0x0201f800, 0x0010b652, - 0x5c027800, 0x42000000, 0x001097f8, 0x050df8e6, - 0x05f9fc3d, 0x05f5f624, 0x0501f932, 0x05000003, - 0x0501fde2, 0x05000073, 0x59300c03, 0x90040596, - 0x0500003c, 0x90040582, 0x05020022, 0x59a8021b, - 0x8c000502, 0x0502000c, 0x05e9f920, 0x0502000a, - 0x05e9f93f, 0x05020004, 0x60040000, 0x05e9f8ef, - 0x0501f064, 0x64075014, 0x6006d800, 0x05e9f895, - 0x0501f060, 0x59340412, 0x82000500, 0x000000ff, - 0x05000010, 0x80000040, 0x48026c12, 0x497a6205, - 0x4d300000, 0x05f5fe36, 0x5c000000, 0x05000008, - 0x49780009, 0x641c0407, 0x4a000006, 0x00000398, - 0x4936600a, 0x64066407, 0x0501f01a, 0x40026000, - 0x59300403, 0x90000d82, 0x0502000b, 0x59340403, - 0x82000580, 0x000007fe, 0x05020007, 0x59a8021b, - 0x84000540, 0x4803521b, 0x05e1feaf, 0x05f9fc06, - 0x0501f00a, 0x05f9fc04, 0x4d3c0000, 0x417a7800, - 0x0201f800, 0x0010b652, 0x5c027800, 0x42000000, - 0x001097f8, 0x050df8a4, 0x05d5f9a1, 0x05f5f5e2, - 0x600c0800, 0x05e5f915, 0x64066203, 0x640a6403, - 0x05f1f040, 0x0501f8eb, 0x05fe07b6, 0x05d5f998, - 0x4d3c0000, 0x417a7800, 0x0201f800, 0x0010b652, - 0x5c027800, 0x42000000, 0x001097f8, 0x050df892, - 0x60603000, 0x41782800, 0x60002000, 0x4d400000, - 0x4d440000, 0x59368c03, 0x60a68000, 0x0501ffc2, - 0x5c028800, 0x5c028000, 0x05f5f5c7, 0x05e5fc5d, - 0x05fdf7d9, 0x42000000, 0x00109802, 0x050df882, - 0x05f5ffe0, 0x05fe07d4, 0x1c01f000, 0x59300c03, - 0x0501fbf2, 0x000600e7, 0x916c0583, 0x05000003, - 0x640a6006, 0x1c01f000, 0x59300403, 0x48026418, + 0x5c03e000, 0x05f00a3e, 0x05fdf6ed, 0x5c03e000, + 0x05f00a3b, 0x4d2c0000, 0x59325809, 0x59300403, + 0xb0000592, 0x05cc0fae, 0x0501fa04, 0x05c80a6f, + 0x64165a07, 0x0001fb2c, 0x05e5fec9, 0x05f5fed2, + 0x5c025800, 0x90000541, 0x1c01f000, 0x598c000b, + 0x81300580, 0x05020018, 0x59300004, 0x8c000520, + 0x05000004, 0x84000520, 0x48026004, 0x0501f018, + 0x42001000, 0x001097b0, 0x50081000, 0x58080002, + 0x82000580, 0x00000100, 0x05000009, 0x5808000b, + 0x81300580, 0x05ca0a55, 0x0201f800, 0x0010ba3e, + 0x80c40040, 0x05ca0a51, 0x05fdf7d9, 0x05f1fcc5, + 0x0502000c, 0x59300004, 0x8c000520, 0x05000004, + 0x84000520, 0x48026004, 0x05fdf7d1, 0x0201f800, + 0x0010ba3e, 0x80c40040, 0x05fc07cd, 0x05c9fa43, + 0x59300203, 0x90000c8e, 0x05ca1a40, 0x0c01f7b6, + 0x4d340000, 0x5932680a, 0x59300407, 0x4933c857, + 0x4803c857, 0x90000c92, 0x05ca1a38, 0x0c01f803, + 0x5c026800, 0x1c01f000, 0x00106fc7, 0x00106fe7, + 0x001070da, 0x0010c012, 0x001070d1, 0x001070d6, + 0x00108206, 0x00106fce, 0x001070cd, 0x00106fc4, + 0x0010712d, 0x00106fc4, 0x00106fc4, 0x00106fc4, + 0x00106fc4, 0x000208e7, 0x00107722, 0x00107722, + 0x05c9fa22, 0x0501faac, 0x05f804a5, 0x1c01f000, + 0x05f1f9f7, 0x05f1f960, 0x05f1f9e1, 0x0005f0e7, + 0x64066006, 0x1c01f000, 0x4d340000, 0x4c5c0000, + 0x59300203, 0x90000591, 0x05020011, 0x5932680a, + 0x4130b800, 0x0005f8ca, 0x0500000c, 0x64066203, + 0x647a6403, 0x585c041b, 0x4802641b, 0x585c021b, + 0x4802621b, 0x4936600a, 0x64066407, 0x42000800, + 0x80000040, 0x0005f87c, 0x405e6000, 0x0005f8e7, + 0x5c00b800, 0x5c026800, 0x1c01f000, 0x42000000, + 0x00109883, 0x050df976, 0x050df8a1, 0x59300203, + 0x90000c8e, 0x05ca19f9, 0x4803c857, 0x0c01f001, + 0x00106ffe, 0x00106fcc, 0x00106fff, 0x00106ffe, + 0x00106fff, 0x00106fff, 0x00106fc8, 0x00106ffe, + 0x00106fc5, 0x00106ffe, 0x00106ffe, 0x00106ffe, + 0x00106ffe, 0x00106ffe, 0x05c9f9e8, 0x83340580, + 0x0010993e, 0x05f4064c, 0x4d2c0000, 0x59340400, + 0x82000500, 0x000000ff, 0x90000c8c, 0x05ca19df, + 0x59303403, 0x90180d84, 0x05020003, 0x60040000, + 0x0501f004, 0x90180d80, 0x05020002, 0x60040000, + 0x4803c857, 0x0c01f803, 0x5c025800, 0x1c01f000, + 0x00107020, 0x0010708f, 0x00107021, 0x00107048, + 0x00107021, 0x001070a5, 0x00107021, 0x00107028, + 0x00107020, 0x001070a5, 0x00107020, 0x00107033, + 0x05c9f9c6, 0x59300403, 0x90000d96, 0x05000023, + 0x90000d84, 0x05000021, 0x90000d82, 0x0500001f, + 0x0501fa49, 0x0500001d, 0x59300403, 0x90000da2, + 0x0500007b, 0x90000db9, 0x0500007f, 0x90000db5, + 0x0500007d, 0x90000d9e, 0x05000015, 0x0501f947, + 0x05000005, 0x0501fdf7, 0x05020003, 0x05e5fc4a, + 0x0501f00e, 0x59300403, 0x90000d81, 0x05020003, + 0x05e5fc10, 0x05000009, 0x4d3c0000, 0x417a7800, + 0x0201f800, 0x0010b660, 0x5c027800, 0x42000000, + 0x00109878, 0x050df91a, 0x05f9fc25, 0x05f5f606, + 0x0501f932, 0x05000003, 0x0501fde2, 0x05000073, + 0x59300c03, 0x90040596, 0x0500003c, 0x90040582, + 0x05020022, 0x59a8021b, 0x8c000502, 0x0502000c, + 0x05e9f8c0, 0x0502000a, 0x05e9f8df, 0x05020004, + 0x60040000, 0x05e9f88f, 0x0501f064, 0x64075014, + 0x6006d800, 0x05e9f835, 0x0501f060, 0x59340412, + 0x82000500, 0x000000ff, 0x05000010, 0x80000040, + 0x48026c12, 0x497a6205, 0x4d300000, 0x05f5fe1c, + 0x5c000000, 0x05000008, 0x49780009, 0x641c0407, + 0x4a000006, 0x00000398, 0x4936600a, 0x64066407, + 0x0501f01a, 0x40026000, 0x59300403, 0x90000d82, + 0x0502000b, 0x59340403, 0x82000580, 0x000007fe, + 0x05020007, 0x59a8021b, 0x84000540, 0x4803521b, + 0x05e1fe25, 0x05f9fbee, 0x0501f00a, 0x05f9fbec, + 0x4d3c0000, 0x417a7800, 0x0201f800, 0x0010b660, + 0x5c027800, 0x42000000, 0x00109878, 0x050df8d8, + 0x05d5f90a, 0x05f5f5c4, 0x600c0800, 0x05e5f88b, + 0x64066203, 0x640a6403, 0x05f1f036, 0x0501f8eb, + 0x05fe07b6, 0x05d5f901, 0x4d3c0000, 0x417a7800, + 0x0201f800, 0x0010b660, 0x5c027800, 0x42000000, + 0x00109878, 0x050df8c6, 0x60603000, 0x41782800, + 0x60002000, 0x4d400000, 0x4d440000, 0x59368c03, + 0x60a68000, 0x0501ffc2, 0x5c028800, 0x5c028000, + 0x05f5f5a9, 0x05e5fbdc, 0x05fdf7d9, 0x42000000, + 0x00109882, 0x050df8b6, 0x05f5ffc8, 0x05fe07d4, + 0x1c01f000, 0x59300c03, 0x0501fbf2, 0x000600e7, + 0x916c0583, 0x05000003, 0x640a6006, 0x1c01f000, + 0x59300403, 0x48026418, 0x6406621f, 0x4a026403, + 0x00000085, 0x64266203, 0x640a6407, 0x42000800, + 0x80000040, 0x0005f07c, 0x05f9fbad, 0x4d3c0000, + 0x417a7800, 0x0201f800, 0x0010b660, 0x5c027800, + 0x42000000, 0x00109878, 0x050df899, 0x497a6009, + 0x641e6407, 0x4a026006, 0x00000398, 0x497a6205, + 0x1c01f000, 0x42000000, 0x00109889, 0x050df890, + 0x05fdf717, 0x42000000, 0x00109884, 0x050df88c, + 0x0509ffb7, 0x05f5f578, 0x42000000, 0x00109886, + 0x050df887, 0x1c01f000, 0x42000000, 0x00109885, + 0x050df883, 0x59300203, 0x90000c8e, 0x05ca1907, + 0x4803c857, 0x0c01f001, 0x001070f0, 0x00106fcc, + 0x001070f0, 0x001070f0, 0x001070f0, 0x001070f0, + 0x001070f0, 0x001070f0, 0x001070f0, 0x00106fcc, + 0x001070f1, 0x00106fcc, 0x001070f7, 0x001070f0, + 0x05c9f8f6, 0x4a026403, 0x0000008b, 0x642e6203, + 0x42000800, 0x80004040, 0x0005f07c, 0x59300a1f, + 0x0501f882, 0x0500000b, 0x4d2c0000, 0x59325809, + 0x641a5a07, 0x497a5c0a, 0x0001fb2c, 0x59300a1f, + 0x90040d83, 0x05e40afc, 0x5c025800, 0x497a6009, + 0x4d3c0000, 0x417a7800, 0x0201f800, 0x0010b660, + 0x5c027800, 0x60443000, 0x0509febb, 0x42000000, + 0x00109878, 0x050df852, 0x4c5c0000, 0x4130b800, + 0x05f5fd73, 0x05000007, 0x4936600a, 0x4d300000, + 0x405e6000, 0x05f5fd38, 0x5c026000, 0x0501f002, + 0x405e6000, 0x5c00b800, 0x497a6009, 0x64066407, + 0x64066403, 0x8d0c0520, 0x0500000b, 0x64126407, + 0x641e6203, 0x64066422, 0x60103000, 0x4d400000, + 0x60a68000, 0x41782800, 0x0509fa6b, 0x5c028000, + 0x1c01f000, 0x602c0800, 0x05e1ffec, 0x64066203, + 0x05edf798, 0x42000000, 0x0010988b, 0x050df830, + 0x59300203, 0x90000c8e, 0x05ca18b4, 0x4803c857, + 0x0c01f001, 0x00107153, 0x00107143, 0x00107145, + 0x00107154, 0x00107144, 0x00107143, 0x00107143, + 0x00107143, 0x00107143, 0x00107143, 0x00107143, + 0x00107143, 0x00107143, 0x00107143, 0x05c9f8a3, + 0x05cdf9cd, 0x4d2c0000, 0x59325809, 0x641a5a07, + 0x0001fb2c, 0x5c025800, 0x497a6009, 0x642a621f, + 0x4a026403, 0x00000085, 0x64266203, 0x640a6407, + 0x42000800, 0x80004040, 0x0005f07c, 0x1c01f000, + 0x05f1f86b, 0x4df00000, 0x05fdfde2, 0x05020003, + 0x05f1facf, 0x0502000a, 0x0201f800, 0x0010b8cb, + 0x80c40040, 0x05020004, 0x5c03e000, 0x05f1f84c, + 0x05fdf7e5, 0x05edff8d, 0x05ca0884, 0x5c03e000, + 0x05f1f847, 0x59300203, 0x90000d83, 0x05c8087f, + 0x90000c8e, 0x05ca187d, 0x0c01f7cb, 0x59a8000d, + 0x59a80860, 0x80040400, 0x80080480, 0x05021003, + 0x90000541, 0x1c01f000, 0x480bc857, 0x80000580, + 0x1c01f000, 0x0501f805, 0x60018800, 0x05000002, + 0x60058800, 0x1c01f000, 0x4c040000, 0x59300809, + 0x59a8000c, 0x80040480, 0x05001007, 0x59a8000a, + 0x80040480, 0x05021004, 0x800409c0, 0x5c000800, + 0x1c01f000, 0x800409c0, 0x05ca0860, 0x4803c856, + 0x05fdf7fb, 0x4803c856, 0x4d300000, 0x0005f8ca, + 0x05000007, 0x0501f827, 0x4d380000, 0x612e7000, + 0x0005f905, 0x5c027000, 0x90000541, 0x5c026000, + 0x1c01f000, 0x4803c856, 0x4d300000, 0x05f5fcec, + 0x05000018, 0x0501f81b, 0x4d300000, 0x05f1f824, + 0x4df00000, 0x4d3c0000, 0x60027840, 0x0201f800, + 0x0010bc6f, 0x0201f800, 0x0010bd08, 0x0201f800, + 0x0010c0ee, 0x5c027800, 0x5c03e000, 0x05f00804, + 0x5c026000, 0x8d3c053e, 0x05020008, 0x4d380000, + 0x61327000, 0x0005f905, 0x5c027000, 0x90000541, + 0x5c026000, 0x1c01f000, 0x0005f8e7, 0x05fdf7fc, + 0x592c0408, 0x494a6019, 0x494e601a, 0x4936600a, + 0x492e6009, 0x640e6407, 0x59340802, 0x4806600b, + 0x800000c2, 0x800008c4, 0x80040400, 0x48026006, + 0x1c01f000, 0x493bc857, 0x4d300000, 0x0005f8ca, + 0x0500000a, 0x05fdffef, 0x4d400000, 0x60168000, + 0x0501f80a, 0x5c028000, 0x8d3c053e, 0x05020005, + 0x0005f905, 0x90000541, 0x5c026000, 0x1c01f000, + 0x0005f8e7, 0x05fdf7fc, 0x4803c856, 0x05edffec, + 0x4df00000, 0x4d3c0000, 0x4d440000, 0x59368c03, + 0x60067840, 0x0201f800, 0x0010bbea, 0x0201f800, + 0x0010bc34, 0x0201f800, 0x0010bd08, 0x0201f800, + 0x0010c0ee, 0x5c028800, 0x5c027800, 0x5c03e000, + 0x05ec07c7, 0x1c01f000, 0x4803c856, 0x4d300000, + 0x05f5fc9b, 0x0500000b, 0x481a601e, 0x48ee6023, + 0x4936600a, 0x64066407, 0x492e6009, 0x4d380000, + 0x607e7000, 0x0005f905, 0x5c027000, 0x90000541, + 0x5c026000, 0x1c01f000, 0x4803c856, 0x4d300000, + 0x05f5fc8b, 0x0500000a, 0x48ee6023, 0x4936600a, + 0x64066407, 0x492e6009, 0x4d380000, 0x61567000, + 0x0005f905, 0x5c027000, 0x90000541, 0x5c026000, + 0x1c01f000, 0x4803c856, 0x4d300000, 0x05f5fc7c, + 0x0500000b, 0x481a601e, 0x48ee6023, 0x4936600a, + 0x64066407, 0x492e6009, 0x4d380000, 0x60f67000, + 0x0005f905, 0x5c027000, 0x90000541, 0x5c026000, + 0x1c01f000, 0x4803c856, 0x4d300000, 0x05f5fc6c, + 0x05000010, 0x4936600a, 0x492fc857, 0x4933c857, + 0x592c0405, 0x8c00051e, 0x05000003, 0x48efc857, + 0x48ee6023, 0x64066407, 0x492e6009, 0x4d380000, + 0x60027000, 0x0005f905, 0x5c027000, 0x90000541, + 0x5c026000, 0x1c01f000, 0x4803c856, 0x4d300000, + 0x05f5fc57, 0x0500000b, 0x48ee6023, 0x481a601e, + 0x4936600a, 0x64066407, 0x492e6009, 0x4d380000, + 0x61127000, 0x0005f905, 0x5c027000, 0x90000541, + 0x5c026000, 0x1c01f000, 0x4803c856, 0x4d300000, + 0x05f5fc47, 0x0500000b, 0x481a601e, 0x48ee6023, + 0x4936600a, 0x64066407, 0x492e6009, 0x4d380000, + 0x61267000, 0x0005f905, 0x5c027000, 0x90000541, + 0x5c026000, 0x1c01f000, 0x5930000a, 0x80001540, + 0x05c40f9a, 0x8d0c0512, 0x05020007, 0x5808040b, + 0x4803c856, 0x80000040, 0x05001003, 0x4800140b, + 0x05020008, 0x58080010, 0x80000540, 0x05000005, + 0x58080203, 0x80000540, 0x05020002, 0x64041203, + 0x1c01f000, 0x4803c856, 0x59300403, 0x90000d82, + 0x0500000b, 0x90000d83, 0x05000009, 0x90000d84, + 0x05000007, 0x599c0819, 0x8c04050e, 0x05000003, + 0x90000d80, 0x05000002, 0x90000541, 0x1c01f000, + 0x0501f805, 0x60058800, 0x05000002, 0x60018800, + 0x1c01f000, 0x4803c856, 0x4c000000, 0x4d2c0000, + 0x59300407, 0x90000584, 0x05000017, 0x59300009, + 0x80025d40, 0x800001c0, 0x05000013, 0x0501fbb1, + 0x0500000f, 0x59300407, 0x90004590, 0x0500000c, + 0x90004591, 0x0500000a, 0x90004583, 0x0500000a, + 0x90004582, 0x05000008, 0x9000458a, 0x05000006, + 0x592c0405, 0x8c00051e, 0x05000003, 0x80000580, + 0x0501f002, 0x90000541, 0x5c025800, 0x5c000000, + 0x1c01f000, 0x4803c856, 0x4d300000, 0x05f5fbf0, + 0x0500000f, 0x4936600a, 0x48ee6023, 0x64066407, + 0x492e6009, 0x4d3c0000, 0x417a7800, 0x0201f800, + 0x0010b660, 0x5c027800, 0x4d380000, 0x60a27000, + 0x0005f905, 0x5c027000, 0x90000541, 0x5c026000, + 0x1c01f000, 0x4803c856, 0x91380595, 0x05020008, + 0x59a80073, 0xb00005b4, 0x05020005, 0x05e1ff29, + 0x64066203, 0x64a66403, 0x05edf616, 0x05f9f9bc, + 0x0005f0e7, 0x4803c856, 0x91380596, 0x05020004, + 0x60100800, 0x05e1fe61, 0x05f5f581, 0x91380595, + 0x0502000d, 0x59a80073, 0x90000594, 0x0502000a, + 0x05e1ff73, 0x05f9fd61, 0x05020007, 0x59340404, + 0x80000540, 0x05000004, 0x60180800, 0x05e1fe53, + 0x05f5f573, 0x05f9f9a6, 0x0005f0e7, 0x4803c856, + 0x592c0207, 0x90000585, 0x05000002, 0x1c01f000, + 0x4803c856, 0x592c0209, 0x8400054a, 0x48025a09, + 0x1c01f000, 0x59300809, 0x800409c0, 0x05000008, + 0x58040205, 0x82000580, 0x00000152, 0x05020004, + 0x59a8082a, 0x48066006, 0x1c01f000, 0x599c0416, + 0x800001c0, 0x05000007, 0x90000c84, 0x05001005, + 0x800000c2, 0x800008c4, 0x80040c00, 0x05fdf7f6, + 0x59300403, 0x90000582, 0x05fe07f2, 0x5930080a, + 0x58040403, 0x82000580, 0x000007fe, 0x05fe07ed, + 0x60a00800, 0x05fdf7ec, 0x497a6205, 0x497a6009, + 0x64066203, 0x65426403, 0x42000800, 0x80000043, + 0x0005f07c, 0x4933c857, 0x4d340000, 0x5932680a, + 0x59340200, 0x8c00050e, 0x05000005, 0x59300407, + 0x90000c92, 0x05021004, 0x0c01f805, 0x5c026800, + 0x1c01f000, 0x05fdfcc6, 0x05fdf7fd, 0x00106fc7, + 0x00107315, 0x00107319, 0x0010731c, 0x00108478, + 0x00108490, 0x00108494, 0x00106fc7, 0x00106fc7, + 0x00106fc7, 0x00106fc7, 0x00106fc7, 0x00106fc7, + 0x00106fc7, 0x00106fc7, 0x00106fc7, 0x00106fc7, + 0x00106fc7, 0x4803c856, 0x40000000, 0x40000000, + 0x1c01f000, 0x40000000, 0x40000000, 0x1c01f000, + 0x5930001e, 0x4803c857, 0x59300416, 0x4933c857, + 0x4803c857, 0x8c000502, 0x05000005, 0x4803c857, + 0x84000540, 0x48026416, 0x1c01f000, 0x42000000, + 0xd0000000, 0x41300800, 0x05c9fd44, 0x0501f80e, + 0x0502000c, 0x59300c16, 0x59300403, 0xb0000580, + 0x05000003, 0x84040d40, 0x0501f004, 0x59a8002a, + 0x9000040a, 0x48026205, 0x84040d42, 0x48066416, + 0x1c01f000, 0x4933c857, 0x4d340000, 0x5932680a, + 0x59340a00, 0x8c04050e, 0x05c40ea8, 0x5930001e, + 0x80000540, 0x0502002c, 0x59300403, 0x4803c857, + 0xb0000580, 0x05000003, 0x8d0c050e, 0x05020024, + 0x4d1c0000, 0x41323800, 0x05f5fb39, 0x0500001e, + 0x4932381e, 0x591c0416, 0x84000542, 0x48023c16, + 0x4936600a, 0x591c0407, 0x90000583, 0x05000006, + 0x591c0202, 0x4802641b, 0x591c0402, 0x4802621b, + 0x0501f005, 0x591c0202, 0x4802621b, 0x591c0402, + 0x4802641b, 0x491e6020, 0x64066407, 0x64d66403, + 0x64066203, 0x42000800, 0x80000040, 0x0005f87c, + 0x411e6000, 0x5c023800, 0x80000580, 0x5c026800, + 0x1c01f000, 0x411e6000, 0x5c023800, 0x59a8002c, + 0x48026205, 0x90000541, 0x05fdf7f9, 0x4933c857, + 0x4d2c0000, 0x4932381e, 0x4a026202, 0x0000ffff, + 0x591e5809, 0x591c0008, 0x8c00051e, 0x05000005, + 0x8400051e, 0x48023808, 0x497a580a, 0x0501f016, + 0x592c0409, 0x8c000518, 0x05000013, 0x84000518, + 0x48025c09, 0x4d400000, 0x592e8207, 0x64065a07, + 0x0501faad, 0x49425a07, 0x5c028000, 0x497a580a, + 0x592c0409, 0x8c000512, 0x05000007, 0x4d2c0000, + 0x84000512, 0x48025c09, 0x592e580a, 0x05c9f9f2, + 0x5c025800, 0x59a8002c, 0x48026205, 0x591c0216, + 0x48026218, 0x90000d81, 0x05000006, 0x640a3a03, + 0x90000585, 0x05000007, 0x497a6017, 0x0501f01c, + 0x591c0008, 0x84000540, 0x48023808, 0x64123a03, + 0x591c0416, 0x4803c857, 0x8400051c, 0x84000554, + 0x48023c16, 0x592c0010, 0x40001000, 0x591c0818, + 0x80040480, 0x05fe17f1, 0x591c0018, 0x82000500, + 0xfffffffc, 0x48026017, 0x48023818, 0x591c0a16, + 0x4807c857, 0x90040d85, 0x05020005, 0x480bc857, + 0x4803c857, 0x4a023814, 0xffffffff, 0x591c0402, + 0x4802641b, 0x591c0202, 0x4802621b, 0x591e680a, + 0x4936600a, 0x64066407, 0x64e66403, 0x64066203, + 0x42000800, 0x80000040, 0x0005f87c, 0x5c025800, + 0x1c01f000, 0x4933c857, 0x59300416, 0x8c000514, + 0x05000015, 0x8c00051c, 0x05020012, 0x59300018, + 0x80100480, 0x05001006, 0x05000005, 0x59300416, + 0x84000514, 0x8400055c, 0x0501f009, 0x48126018, + 0x48126014, 0x40100000, 0x592c1810, 0x800c0480, + 0x48026013, 0x59300416, 0x84000514, 0x48026416, + 0x1c01f000, 0x4933c857, 0x8c00051c, 0x05020008, + 0x59300014, 0x4803c857, 0x48026018, 0x59300416, + 0x8400055c, 0x4803c857, 0x48026416, 0x1c01f000, + 0x0501f805, 0x60058800, 0x05000002, 0x60018800, + 0x1c01f000, 0x59300c03, 0x4933c857, 0x4807c857, + 0x900404b4, 0x05001005, 0x900404bc, 0x05021003, + 0x80000580, 0x1c01f000, 0x90000541, 0x05fdf7fe, + 0x41780800, 0x59a81028, 0x60c80000, 0x05edfc11, + 0x800811c0, 0x05020002, 0x60501000, 0x480b502a, + 0x59a81029, 0x480b5022, 0x41780800, 0x61900000, + 0x05edfc08, 0x800811c0, 0x05020002, 0x60501000, + 0x480b502b, 0x9008140a, 0x480b502c, 0x60040800, + 0x05edfdf0, 0x42000000, 0x30000000, 0x40080800, + 0x0001f91e, 0x600c0800, 0x59a8100f, 0x05edfddb, + 0x05e1f7c7, 0x64a3502a, 0x6453502b, 0x4a035022, + 0x000007d0, 0x60781000, 0x480b502c, 0x60040800, + 0x05edfde0, 0x42000000, 0x30000000, 0x40080800, + 0x0001f91e, 0x600c0800, 0x59a8100f, 0x05edf5cb, + 0x4933c857, 0x4d2c0000, 0x59300403, 0x900005be, + 0x05020004, 0x59325819, 0x812e59c0, 0x05ca094d, + 0x5c025800, 0x1c01f000, 0x4937c857, 0x4d300000, + 0x05f5fa53, 0x0500000b, 0x4936600a, 0x64066407, + 0x492e6009, 0x60240800, 0x05e1fce0, 0x4d380000, + 0x60ce7000, 0x0005f905, 0x5c027000, 0x90000541, + 0x5c026000, 0x1c01f000, 0x4933c857, 0x4d2c0000, + 0x4c580000, 0x4d3c0000, 0x59325809, 0x91380595, + 0x0502001d, 0x59a8b073, 0x90580c99, 0x05001002, + 0x6060b000, 0x8058b104, 0x0501f9aa, 0x80000580, + 0x0501f9b9, 0x912cac0a, 0x91cca406, 0x0509fdda, + 0x4c600000, 0x6004c000, 0x592c100b, 0x8c080518, + 0x05020006, 0x59a8000f, 0x592c100e, 0x80080580, + 0x05020006, 0x4178c000, 0x5930100a, 0x58081403, + 0x417a7800, 0x05d1fd5c, 0x5c00c000, 0x05f5fbd8, + 0x0501f005, 0x6008b000, 0x0501f9af, 0x05f9f808, + 0x0005f8e7, 0x5c027800, 0x5c00b000, 0x5c025800, + 0x1c01f000, 0x4933c856, 0x60018800, 0x4936600a, + 0x64066407, 0x492e6009, 0x4d380000, 0x61367000, + 0x0005f905, 0x5c027000, 0x90000541, 0x60058800, + 0x1c01f000, 0x4803c856, 0x4d2c0000, 0x91380595, + 0x05020025, 0x59a80873, 0x59325809, 0x5930040c, + 0x80040580, 0x05020020, 0x4c500000, 0x4c540000, + 0x4c580000, 0x91cca406, 0x4050a800, 0x5930b40c, + 0x9058b403, 0x8058b104, 0x0509fdde, 0x91cca406, + 0x592cb206, 0x9058b403, 0x8058b104, 0x912cac07, + 0x0509fd9d, 0x592e5801, 0x812e59c0, 0x05fe07f9, + 0x5931d823, 0x58ef400a, 0x58ee580c, 0x4a025a05, + 0x00000103, 0x58ec0008, 0x0801f800, 0x59300402, + 0x5c00b000, 0x5c00a800, 0x5c00a000, 0x5c025800, + 0x1c01f000, 0x05f5ffce, 0x5c025800, 0x1c01f000, + 0x4933c857, 0x90040db5, 0x05000005, 0x5930141b, + 0x0501f844, 0x05000025, 0x0501f006, 0x4d300000, + 0x59326020, 0x0501f848, 0x5c026000, 0x0500001e, + 0x591c0c07, 0x90040583, 0x05000003, 0x90040586, + 0x0502001b, 0x591c0c02, 0x5930041b, 0x80040580, + 0x05000009, 0x5930021b, 0x80040580, 0x05020014, + 0x591c0a02, 0x5930041b, 0x80040580, 0x05020010, + 0x0501f009, 0x59300a1b, 0x82040580, 0x0000ffff, + 0x05000005, 0x591c0202, 0x59300a1b, 0x80040580, + 0x05020007, 0x591c000a, 0x5930080a, 0x80040580, + 0x1c01f000, 0x417a3800, 0x90000541, 0x1c01f000, + 0x4803c856, 0x4203e000, 0xb0800000, 0x600009fe, + 0x4203f800, 0x30000000, 0x40000000, 0x80040840, + 0x05c40d12, 0x05ffb7fb, 0x1c01f000, 0x4803c856, + 0x4203e000, 0xb0800000, 0x4203f800, 0x20000000, + 0x1c01f000, 0x0501f805, 0x60058800, 0x05020002, + 0x60018800, 0x1c01f000, 0x59300808, 0x8c04051e, + 0x592c0c09, 0x05020002, 0x8c040518, 0x1c01f000, + 0x05fdfc83, 0x05000007, 0x800800c4, 0x800808ca, + 0x80040c00, 0x82063c00, 0x0010ccb4, 0x491fc857, + 0x1c01f000, 0x0501fbff, 0x05020007, 0x59301402, + 0x05fdfff4, 0x05000007, 0x411c0000, 0x81300580, + 0x05000003, 0x81780500, 0x0501f002, 0x81300540, + 0x1c01f000, 0x4d300000, 0x0001fac4, 0x0502000a, + 0x42026000, 0x0010cc6c, 0x4936600a, 0x492e6009, + 0x0201f800, 0x0010b660, 0x80000580, 0x5c026000, + 0x1c01f000, 0x90000541, 0x05fdf7fd, 0x4933c857, + 0x05fdfc6e, 0x05c40cd9, 0x4d2c0000, 0x4d340000, + 0x4d440000, 0x4c580000, 0x59325809, 0x5932680a, + 0x49425a07, 0x05e9fa7b, 0x592e8c07, 0x592c4208, + 0x9020050f, 0x0c01f806, 0x5c00b000, 0x5c028800, + 0x5c026800, 0x5c025800, 0x1c01f000, 0x00107531, + 0x0010754f, 0x00107555, 0x00107558, 0x00107560, + 0x0010752f, 0x0010752f, 0x0010752f, 0x00107563, + 0x0010756d, 0x0010756d, 0x0010752f, 0x0010752f, + 0x0010752f, 0x0010752f, 0x0010752f, 0x4803c857, + 0x05c5fcb6, 0x814281c0, 0x05020011, 0x41785800, + 0x592c0405, 0x8c00051c, 0x05020002, 0x59345c05, + 0x442c2800, 0x59340008, 0x48002802, 0x59340009, + 0x48002801, 0x59340006, 0x48002804, 0x59340007, + 0x48002803, 0x602cb000, 0x0501f02d, 0x592c0208, + 0x8c00051e, 0x6008b000, 0x05020029, 0x9004b540, + 0x05000027, 0x44042800, 0x5932680a, 0x59340400, + 0x48002801, 0x6008b000, 0x0501f021, 0x814281c0, + 0x05fe07f3, 0x59345c05, 0x442c2800, 0x6004b000, + 0x0501f01b, 0x9140b540, 0x05000019, 0x0501f021, + 0x814281c0, 0x0502001f, 0x59340200, 0x44002800, + 0x59340001, 0x48002801, 0x6008b000, 0x0501f010, + 0x9140b540, 0x05020017, 0x0501f00d, 0x9140b540, + 0x0500000b, 0x05e1ff2a, 0x05000012, 0x8c20050e, + 0x05000002, 0x497a600a, 0x4178b000, 0x497a5a07, + 0x0501f003, 0x9140b540, 0x0502000a, 0x592c0405, + 0x8400051c, 0x48025c05, 0x592c0208, 0x8400051e, + 0x48025a08, 0x0501f87f, 0x497a6009, 0x0001f32c, + 0x592c0208, 0x8c00051e, 0x6008b000, 0x05fe07f4, + 0x9004b540, 0x05fc07f2, 0x44042800, 0x6004b000, + 0x05fdf7ef, 0x4937c857, 0x4d300000, 0x05f5f900, + 0x0500000b, 0x4936600a, 0x64066407, 0x492e6009, + 0x602c0800, 0x05e1fb8d, 0x4d380000, 0x610e7000, + 0x0005f905, 0x5c027000, 0x90000541, 0x5c026000, + 0x1c01f000, 0x4937c857, 0x4d2c0000, 0x59325809, + 0x91380595, 0x05020022, 0x59a80073, 0x90000584, + 0x0502001f, 0x59a8000f, 0x592c100a, 0x80080580, + 0x05020011, 0x4d440000, 0x592e8c07, 0x592c0208, + 0x4803c856, 0x82000500, 0x00000080, 0x84000548, + 0x4d3c0000, 0x60027820, 0x8c00050e, 0x05000002, + 0x853e7d5c, 0x05e1fe5e, 0x5c027800, 0x5c028800, + 0x0501f003, 0x4803c856, 0x05e1fee1, 0x05fdfbcb, + 0x05000011, 0x4d400000, 0x60028000, 0x41780800, + 0x05fdff57, 0x5c028000, 0x0501f00a, 0x05e1fed8, + 0x05fe07f7, 0x05fdfbc1, 0x05000007, 0x4c580000, + 0x6008b000, 0x0501f854, 0x5c00b000, 0x05f5feac, + 0x0005f8e7, 0x5c025800, 0x1c01f000, 0x4937c857, + 0x4d300000, 0x05f5f8be, 0x0500000d, 0x4936600a, + 0x64066407, 0x4d3c0000, 0x4d380000, 0x417a7800, + 0x05e1fb3f, 0x492e6009, 0x60127000, 0x0005f905, + 0x5c027000, 0x5c027800, 0x90000541, 0x5c026000, + 0x1c01f000, 0x4937c857, 0x4d300000, 0x05f5f8ac, + 0x0500000b, 0x4936600a, 0x600c0800, 0x05e1fb3b, + 0x64066407, 0x492e6009, 0x4d380000, 0x61467000, + 0x0005f905, 0x5c027000, 0x90000541, 0x5c026000, + 0x1c01f000, 0x4933c857, 0x61f2880f, 0x42003000, + 0x00fffffc, 0x05e1fb60, 0x05c60bfc, 0x4936600a, + 0x417a7800, 0x05e1fb1e, 0x600c0800, 0x05e1fb27, + 0x497a6c12, 0x64066203, 0x640a6403, 0x05edf2d1, + 0x492fc857, 0x4c580000, 0x4c000000, 0x8058b1c0, + 0x0500000a, 0x82580500, 0xfffffff0, 0x05c60beb, + 0x8058b0d0, 0x592c0409, 0x82000500, 0xfffff0ff, + 0x80580540, 0x48025c09, 0x5c000000, 0x5c00b000, + 0x1c01f000, 0x492fc857, 0x4c000000, 0x4c040000, + 0x800000d8, 0x592c0c09, 0x82040d00, 0xffff0fff, + 0x80040540, 0x48025c09, 0x5c000800, 0x5c000000, + 0x1c01f000, 0x4933c857, 0x4d2c0000, 0x59325809, + 0x592c0208, 0x8400055e, 0x48025a08, 0x4c500000, + 0x4c540000, 0x4c580000, 0x05fdffda, 0x05e9f975, + 0x64602800, 0x80142800, 0x8058b040, 0x91cca407, + 0x4014a800, 0x0509fc08, 0x5c00b000, 0x5c00a800, + 0x5c00a000, 0x5c025800, 0x1c01f000, 0x0501f805, + 0x60058800, 0x05000002, 0x60018800, 0x1c01f000, + 0x59325809, 0x592c0205, 0x82000580, 0x00000152, + 0x1c01f000, 0x59300021, 0x80000540, 0x05ca0bcd, + 0x1c01f000, 0x4d2c0000, 0x59325809, 0x59300203, + 0x4933c857, 0x492fc857, 0x493bc857, 0x4803c857, + 0x9000348e, 0x05c61ba9, 0x0c01f803, 0x5c025800, + 0x1c01f000, 0x0010764f, 0x00107655, 0x0010767c, + 0x0010764f, 0x0010764f, 0x0010764f, 0x0010764f, + 0x0010764f, 0x00107650, 0x0010764f, 0x0010764f, + 0x0010764f, 0x0010764f, 0x0010764f, 0x05c5fb97, + 0xb1383498, 0x05c61b95, 0x493a6403, 0x64066203, + 0x05edf270, 0x91380593, 0x0502000c, 0x492fc857, + 0x592c000d, 0x800001c0, 0x05000005, 0x640a6203, + 0x59a8002a, 0x48026006, 0x1c01f000, 0x64025a07, + 0x0001fb2c, 0x0005f0e7, 0x913805a7, 0x05000011, + 0x91380594, 0x0500000b, 0x91380595, 0x05000003, + 0x91380596, 0x05c60b7d, 0x05edfe9b, 0x05f6004b, + 0x59300203, 0x90000582, 0x05c60b78, 0x0501f00d, + 0x4937c857, 0x05edfab8, 0x6446580f, 0x0501f004, + 0x4937c857, 0x05edfab4, 0x6442580f, 0x64c65a07, + 0x6412580e, 0x0001fb2c, 0x05e1ffc9, 0x05f1f7d2, + 0x59341400, 0x82081d00, 0x000000ff, 0x59300c03, + 0x480bc857, 0x4807c857, 0xb0040593, 0x05000020, + 0x90040582, 0x0500000f, 0x90040581, 0x05000010, + 0x90040583, 0x05000013, 0x90040585, 0x05000014, + 0x900405b3, 0x05000012, 0x90040580, 0x05000013, + 0x90040584, 0x05c60b55, 0x0501f874, 0x0501f010, + 0x900c0583, 0x05000837, 0x0501f00d, 0x900c058b, + 0x0502000b, 0x601c0800, 0x05e1fa7c, 0x0501f008, + 0x900c0585, 0x05000849, 0x0501f005, 0x900c0589, + 0x05000864, 0x0501f002, 0x0501f869, 0x654a6403, + 0x59a81073, 0x592c040c, 0x8c000500, 0x05000002, + 0x60201000, 0x592c040c, 0x8c000516, 0x05000002, + 0x90081418, 0x592c000d, 0x497a580e, 0x497a580f, + 0x80080c80, 0x05000007, 0x05001004, 0x641e5a07, + 0x40001000, 0x0501f004, 0x64565a07, 0x0501f002, + 0x64025a07, 0x480a580d, 0x05f5f914, 0x0500000d, + 0x592c1001, 0x480a600d, 0x58080800, 0x90080402, + 0x592c1012, 0x592c1813, 0x60003000, 0x42002000, + 0x00100efc, 0x05f5fa35, 0x05000002, 0x1c01f000, + 0x64b25a07, 0x497a580d, 0x0001fb2c, 0x0005f0e7, + 0x91380595, 0x05020007, 0x59a80086, 0x8c000502, + 0x05020006, 0x05e1fb03, 0x60100800, 0x05e1f243, + 0x601c0800, 0x05e1f241, 0x05e5fa3e, 0x60401000, + 0x05020008, 0x59340002, 0x82000500, 0x00ff0000, + 0x82000580, 0x00ff0000, 0x05fc07f3, 0x60201000, + 0x05e1ffac, 0x05fc07f0, 0x592c040c, 0x84000540, + 0x48025c0c, 0x05fdf7ef, 0x91380595, 0x0502000b, + 0x59a80086, 0x8c000502, 0x0502000a, 0x05e1fb44, + 0x4d3c0000, 0x417a7800, 0x05e1fa1d, 0x5c027800, + 0x60180800, 0x05e1f225, 0x60100800, 0x05e1f223, + 0x05e5fa20, 0x60401000, 0x05020008, 0x59340002, + 0x82000500, 0x00ff0000, 0x82000580, 0x00ff0000, + 0x05fc07ef, 0x60201000, 0x05e1ff8e, 0x05fc07ec, + 0x592c040c, 0x84000540, 0x48025c0c, 0x05fdf7ef, + 0x60100800, 0x05e1f211, 0x91380595, 0x05020003, + 0x0505fc1d, 0x05e00c92, 0x1c01f000, 0x91380595, + 0x05020015, 0x4c580000, 0x91cc1408, 0x6008b000, + 0x91341c06, 0x05f9f926, 0x0502000e, 0x91cc140a, + 0x6008b000, 0x91341c08, 0x05f9f921, 0x05020009, + 0x59342200, 0x59cc1007, 0x800811c0, 0x05000003, + 0x480a6801, 0x84102542, 0x8410251a, 0x48126a00, + 0x5c00b000, 0x1c01f000, 0x42000000, 0x00109890, + 0x0509fa3b, 0x05edfa9a, 0x59300203, 0x4933c857, + 0x4803c857, 0x90000c8e, 0x05c61abc, 0x0c01f802, + 0x05edf27f, 0x0010773c, 0x00107745, 0x0010773d, + 0x0010773b, 0x0010773b, 0x0010773b, 0x0010773b, + 0x0010773b, 0x0010773b, 0x0010773b, 0x0010773b, + 0x0010773b, 0x0010773b, 0x0010773b, 0x05c5faab, + 0x1c01f000, 0x59300403, 0xb0000592, 0x05fc008d, + 0x05e1ff03, 0x59325809, 0x641a5a07, 0x0001fb2c, + 0x05f1f709, 0x59301804, 0x840c0520, 0x48026004, + 0x598c000b, 0x81300580, 0x0502000f, 0x8c0c0520, + 0x0502000f, 0x42001000, 0x001097b0, 0x50081000, + 0x58080002, 0x82000580, 0x00000100, 0x0500000d, + 0x5808000b, 0x81300580, 0x05c60a90, 0x4978100b, + 0x0501f003, 0x8c0c0520, 0x05fe07e3, 0x0201f800, + 0x0010ba3e, 0x80c40040, 0x05fc07df, 0x05c5fa87, + 0x05edfcfc, 0x05fc07fa, 0x59300203, 0x90000c8e, + 0x05c61a82, 0x0c01f7c8, 0x4933c857, 0x4c500000, + 0x4c540000, 0x4c580000, 0x592c0c08, 0x48065814, + 0x59cc0809, 0x48065808, 0x59cc0808, 0x4806580c, + 0x59a80885, 0x82040500, 0x000003ff, 0x800010c4, + 0x8c040514, 0x05000004, 0x59cc0002, 0x90000503, + 0x80081480, 0x480a621c, 0x412c0800, 0x05c5fdda, + 0x05c40a6a, 0x492c080a, 0x58040409, 0x84000552, + 0x84000540, 0x48000c09, 0x90081403, 0x80081104, + 0x91cca406, 0x912cac05, 0x60400800, 0x90080490, + 0x05021003, 0x40080800, 0x80000580, 0x4004b000, + 0x4c000000, 0x0509fad7, 0x5c000000, 0x800001c0, + 0x0500000a, 0x412c1000, 0x4c000000, 0x05c5fdc2, + 0x05c40a52, 0x492c1001, 0x912cac05, 0x5c000000, + 0x40001000, 0x05fdf7ee, 0x5c00b000, 0x5c00a800, + 0x5c00a000, 0x1c01f000, 0x4933c857, 0x4d2c0000, + 0x4c380000, 0x59325809, 0x5930021c, 0x48025a09, + 0x59301013, 0x640a6203, 0x592c020b, 0x8c000500, + 0x05000004, 0x59300017, 0x592c1010, 0x80081480, + 0x800811c0, 0x05020007, 0x64025a07, 0x592c000c, + 0x82000500, 0x00000c00, 0x05000009, 0x0501f009, + 0x8c08053e, 0x05000005, 0x641e5a07, 0x80081080, + 0x80081000, 0x0501f002, 0x64565a07, 0x480a5808, + 0x42000000, 0x001099e8, 0x50007000, 0x5838000a, + 0x80000540, 0x05020007, 0x4930700b, 0x4930700a, + 0x58380002, 0x90000580, 0x05020808, 0x0501f004, + 0x90001400, 0x45301000, 0x4930700a, 0x5c007000, + 0x5c025800, 0x1c01f000, 0x4933c857, 0x592c000a, + 0x40001000, 0x48007009, 0x90080405, 0x48007003, + 0x592c000e, 0x592c100f, 0x48007006, 0x48087007, + 0x592c0014, 0x592c1209, 0x80080c80, 0x05001002, + 0x40001000, 0x90081403, 0x80081104, 0x90080490, + 0x05021003, 0x80000580, 0x0501f002, 0x60401000, + 0x4800700c, 0x48087004, 0x800810c4, 0x48087005, + 0x40381000, 0x0001f01c, 0x4d2c0000, 0x05c5fd6a, + 0x05c409fa, 0x42000800, 0x001099e8, 0x452c0800, + 0x497a580a, 0x497a580b, 0x497a580c, 0x4a025808, + 0x001077fa, 0x4a025802, 0x00000100, 0x64025801, + 0x5c025800, 0x1c01f000, 0x4833c857, 0x4d300000, + 0x4d2c0000, 0x4c5c0000, 0x4030b800, 0x585c0009, + 0x80025d40, 0x05020004, 0x585c000b, 0x4c000000, + 0x0501f03a, 0x585c0002, 0x82000580, 0x00000100, + 0x0502001c, 0x592c0801, 0x4c040000, 0x05c5fd6d, + 0x5c000800, 0x800409c0, 0x05000017, 0x4804b809, + 0x585c100c, 0x800811c0, 0x05020004, 0x40065800, + 0x05c5fd6d, 0x0501f010, 0x90080490, 0x05021003, + 0x80000580, 0x0501f002, 0x60401000, 0x4800b80c, + 0x4808b804, 0x800810c4, 0x4808b805, 0x90040405, + 0x4800b803, 0x405c1000, 0x0001f81c, 0x0501f021, + 0x0501f824, 0x585c000b, 0x80026540, 0x59300000, + 0x80000d40, 0x05020002, 0x4800b80a, 0x4800b80b, + 0x497a6000, 0x4c000000, 0x4978b809, 0x59325809, + 0x4a025a05, 0x00000103, 0x59300402, 0x48025c07, + 0x592c100c, 0x4c080000, 0x0001fb2c, 0x05fdfa13, + 0x5c001000, 0x8c080518, 0x05000003, 0x05fdfab3, + 0x0501f002, 0x0005f8e7, 0x405c7000, 0x5c000000, + 0x80026540, 0x05000003, 0x59325809, 0x05fdff8b, + 0x5c00b800, 0x5c025800, 0x5c026000, 0x1c01f000, + 0x483bc857, 0x58380009, 0x40025800, 0x05c5fd36, + 0x5838000b, 0x80026540, 0x59300009, 0x80025d40, + 0x640a5a07, 0x1c01f000, 0x4803c857, 0x4933c857, + 0x4d1c0000, 0x497a601e, 0x41323800, 0x40026000, + 0x4d3c0000, 0x60167800, 0x0501f836, 0x5c027800, + 0x411e6000, 0x4933c857, 0x59300416, 0x84000502, + 0x48026416, 0x5c023800, 0x1c01f000, 0x481bc857, + 0x4933c857, 0x4c5c0000, 0x4c600000, 0x4010b800, + 0x4014c000, 0x0505ff5c, 0x8d0c0520, 0x05000006, + 0x40602800, 0x405c3000, 0x0505fb2c, 0x90000541, + 0x0501f002, 0x80000580, 0x5c00c000, 0x5c00b800, + 0x1c01f000, 0x4803c856, 0x4d300000, 0x42026000, + 0x0010ccb4, 0x59a8000d, 0x81640580, 0x05000013, + 0x59300c07, 0x90040581, 0x05000009, 0x90040584, + 0x05000004, 0x90040590, 0x05f80ed4, 0x0501f007, + 0x59300203, 0x90000d87, 0x05000004, 0x4807c857, + 0x05fdfb65, 0x05020807, 0x91326424, 0x41580000, + 0x81300480, 0x05fc17ec, 0x5c026000, 0x1c01f000, + 0x4933c857, 0x59300403, 0x4803c857, 0x05edf92c, + 0x4df00000, 0x59300407, 0x4803c857, 0x90000d82, + 0x05000011, 0x90000d81, 0x05000007, 0x90000d84, + 0x05000005, 0x4933c856, 0x5c03e000, 0x05ec090c, + 0x0501f036, 0x59300203, 0x90000d81, 0x05000010, + 0x90000d82, 0x05000027, 0x90000d85, 0x05000025, + 0x05c5f93e, 0x59300203, 0x90000d89, 0x05000008, + 0x90000d8b, 0x05000006, 0x90000d8a, 0x0500001d, + 0x90000d8c, 0x0500001b, 0x05c5f934, 0x598c000b, + 0x81300580, 0x05020003, 0x05edfba6, 0x05020015, + 0x59300004, 0x4803c857, 0x8c000520, 0x05000004, + 0x84000520, 0x48026004, 0x0501f00e, 0x0201f800, + 0x0010ba3e, 0x80c40040, 0x05c60924, 0x5c03e000, + 0x05ec08e7, 0x59300407, 0x90000d82, 0x0500000f, + 0x05e1fd7b, 0x05fdf9a8, 0x05f40ba1, 0x0501f00b, + 0x5c03e000, 0x05ec08de, 0x59300407, 0x90000d82, + 0x05000006, 0x05e1fd72, 0x05fdf99f, 0x05f40b98, + 0x8d3c0500, 0x05000003, 0x0505ffb7, 0x05f1f576, 0x6406621f, 0x4a026403, 0x00000085, 0x64266203, 0x640a6407, 0x42000800, 0x80000040, 0x0005f07c, - 0x05f9fbc5, 0x4d3c0000, 0x417a7800, 0x0201f800, - 0x0010b652, 0x5c027800, 0x42000000, 0x001097f8, - 0x050df865, 0x497a6009, 0x641e6407, 0x4a026006, - 0x00000398, 0x497a6205, 0x1c01f000, 0x42000000, - 0x00109809, 0x050df85c, 0x05fdf71a, 0x42000000, - 0x00109804, 0x050df858, 0x0509ff83, 0x05f5f596, - 0x42000000, 0x00109806, 0x050df853, 0x1c01f000, - 0x42000000, 0x00109805, 0x050df84f, 0x59300203, - 0x90000c8e, 0x05ca199d, 0x4803c857, 0x0c01f001, - 0x0010705a, 0x00106f39, 0x0010705a, 0x0010705a, - 0x0010705a, 0x0010705a, 0x0010705a, 0x0010705a, - 0x0010705a, 0x00106f39, 0x0010705b, 0x00106f39, - 0x00107061, 0x0010705a, 0x05c9f98c, 0x4a026403, - 0x0000008b, 0x642e6203, 0x42000800, 0x80004040, - 0x0005f07c, 0x59300a1f, 0x0501f882, 0x0500000b, - 0x4d2c0000, 0x59325809, 0x641a5a07, 0x497a5c0a, - 0x0001fb2c, 0x59300a1f, 0x90040d83, 0x05e40b7f, - 0x5c025800, 0x497a6009, 0x4d3c0000, 0x417a7800, - 0x0201f800, 0x0010b652, 0x5c027800, 0x60443000, - 0x0509fe87, 0x42000000, 0x001097f8, 0x050df81e, - 0x4c5c0000, 0x4130b800, 0x05f5fd8d, 0x05000007, - 0x4936600a, 0x4d300000, 0x405e6000, 0x05f5fd56, - 0x5c026000, 0x0501f002, 0x405e6000, 0x5c00b800, - 0x497a6009, 0x64066407, 0x64066403, 0x8d0c0520, - 0x0500000b, 0x64126407, 0x641e6203, 0x64066422, - 0x60103000, 0x4d400000, 0x60a68000, 0x41782800, - 0x0509fa50, 0x5c028000, 0x1c01f000, 0x602c0800, - 0x05e5f876, 0x64066203, 0x05edf7a2, 0x42000000, - 0x0010980b, 0x0509fffc, 0x59300203, 0x90000c8e, - 0x05ca194a, 0x4803c857, 0x0c01f001, 0x001070bd, - 0x001070ad, 0x001070af, 0x001070be, 0x001070ae, - 0x001070ad, 0x001070ad, 0x001070ad, 0x001070ad, - 0x001070ad, 0x001070ad, 0x001070ad, 0x001070ad, - 0x001070ad, 0x05c9f939, 0x05cdfa63, 0x4d2c0000, - 0x59325809, 0x641a5a07, 0x0001fb2c, 0x5c025800, - 0x497a6009, 0x642a621f, 0x4a026403, 0x00000085, - 0x64266203, 0x640a6407, 0x42000800, 0x80004040, - 0x0005f07c, 0x1c01f000, 0x05f1f875, 0x4df00000, - 0x05fdfde5, 0x05020003, 0x05f1fad9, 0x0502000a, - 0x0201f800, 0x0010b8bb, 0x80c40040, 0x05020004, - 0x5c03e000, 0x05f1f856, 0x05fdf7e5, 0x05edff97, - 0x05ca091a, 0x5c03e000, 0x05f1f851, 0x59300203, - 0x90000d83, 0x05c80915, 0x90000c8e, 0x05ca1913, - 0x0c01f7cb, 0x59a8000d, 0x59a80860, 0x80040400, - 0x80080480, 0x05021003, 0x90000541, 0x1c01f000, - 0x480bc857, 0x80000580, 0x1c01f000, 0x0501f805, - 0x60018800, 0x05000002, 0x60058800, 0x1c01f000, - 0x4c040000, 0x59300809, 0x59a8000c, 0x80040480, - 0x05001007, 0x59a8000a, 0x80040480, 0x05021004, - 0x800409c0, 0x5c000800, 0x1c01f000, 0x800409c0, - 0x05ca08f6, 0x4803c856, 0x05fdf7fb, 0x4803c856, - 0x4d300000, 0x0005f8ca, 0x05000007, 0x0501f827, - 0x4d380000, 0x612e7000, 0x0005f905, 0x5c027000, - 0x90000541, 0x5c026000, 0x1c01f000, 0x4803c856, - 0x4d300000, 0x05f5fd06, 0x05000018, 0x0501f81b, - 0x4d300000, 0x05f1f82e, 0x4df00000, 0x4d3c0000, - 0x60027840, 0x0201f800, 0x0010bc6a, 0x0201f800, - 0x0010bd03, 0x0201f800, 0x0010c0f3, 0x5c027800, - 0x5c03e000, 0x05f0080e, 0x5c026000, 0x8d3c053e, - 0x05020008, 0x4d380000, 0x61327000, 0x0005f905, - 0x5c027000, 0x90000541, 0x5c026000, 0x1c01f000, - 0x0005f8e7, 0x05fdf7fc, 0x592c0408, 0x494a6019, - 0x494e601a, 0x4936600a, 0x492e6009, 0x640e6407, - 0x59340802, 0x4806600b, 0x800000c2, 0x800008c4, - 0x80040400, 0x48026006, 0x1c01f000, 0x493bc857, - 0x4d300000, 0x0005f8ca, 0x0500000a, 0x05fdffef, - 0x4d400000, 0x60168000, 0x0501f80a, 0x5c028000, - 0x8d3c053e, 0x05020005, 0x0005f905, 0x90000541, - 0x5c026000, 0x1c01f000, 0x0005f8e7, 0x05fdf7fc, - 0x4803c856, 0x05edfff6, 0x4df00000, 0x4d3c0000, - 0x4d440000, 0x59368c03, 0x60067840, 0x0201f800, - 0x0010bbe5, 0x0201f800, 0x0010bc2f, 0x0201f800, - 0x0010bd03, 0x0201f800, 0x0010c0f3, 0x5c028800, - 0x5c027800, 0x5c03e000, 0x05ec07d1, 0x1c01f000, - 0x4803c856, 0x4d300000, 0x05f5fcb5, 0x0500000b, - 0x481a601e, 0x48ee6023, 0x4936600a, 0x64066407, - 0x492e6009, 0x4d380000, 0x607e7000, 0x0005f905, - 0x5c027000, 0x90000541, 0x5c026000, 0x1c01f000, - 0x4803c856, 0x4d300000, 0x05f5fca5, 0x0500000a, - 0x48ee6023, 0x4936600a, 0x64066407, 0x492e6009, - 0x4d380000, 0x61567000, 0x0005f905, 0x5c027000, - 0x90000541, 0x5c026000, 0x1c01f000, 0x4803c856, - 0x4d300000, 0x05f5fc96, 0x0500000b, 0x481a601e, - 0x48ee6023, 0x4936600a, 0x64066407, 0x492e6009, - 0x4d380000, 0x60f67000, 0x0005f905, 0x5c027000, - 0x90000541, 0x5c026000, 0x1c01f000, 0x4803c856, - 0x4d300000, 0x05f5fc86, 0x05000010, 0x4936600a, - 0x492fc857, 0x4933c857, 0x592c0405, 0x8c00051e, - 0x05000003, 0x48efc857, 0x48ee6023, 0x64066407, - 0x492e6009, 0x4d380000, 0x60027000, 0x0005f905, - 0x5c027000, 0x90000541, 0x5c026000, 0x1c01f000, - 0x4803c856, 0x4d300000, 0x05f5fc71, 0x0500000b, - 0x48ee6023, 0x481a601e, 0x4936600a, 0x64066407, - 0x492e6009, 0x4d380000, 0x61127000, 0x0005f905, - 0x5c027000, 0x90000541, 0x5c026000, 0x1c01f000, - 0x4803c856, 0x4d300000, 0x05f5fc61, 0x0500000b, - 0x481a601e, 0x48ee6023, 0x4936600a, 0x64066407, - 0x492e6009, 0x4d380000, 0x61267000, 0x0005f905, - 0x5c027000, 0x90000541, 0x5c026000, 0x1c01f000, - 0x5930000a, 0x80001540, 0x05c80830, 0x8d0c0512, - 0x05020007, 0x5808040b, 0x4803c856, 0x80000040, - 0x05001003, 0x4800140b, 0x05020008, 0x58080010, - 0x80000540, 0x05000005, 0x58080203, 0x80000540, - 0x05020002, 0x64041203, 0x1c01f000, 0x4803c856, - 0x59300403, 0x90000d82, 0x0500000b, 0x90000d83, - 0x05000009, 0x90000d84, 0x05000007, 0x599c0819, - 0x8c04050e, 0x05000003, 0x90000d80, 0x05000002, - 0x90000541, 0x1c01f000, 0x0501f805, 0x60058800, - 0x05000002, 0x60018800, 0x1c01f000, 0x4803c856, - 0x4c000000, 0x4d2c0000, 0x59300407, 0x90000584, - 0x05000017, 0x59300009, 0x80025d40, 0x800001c0, - 0x05000013, 0x0501fbb1, 0x0500000f, 0x59300407, - 0x90004590, 0x0500000c, 0x90004591, 0x0500000a, - 0x90004583, 0x0500000a, 0x90004582, 0x05000008, - 0x9000458a, 0x05000006, 0x592c0405, 0x8c00051e, - 0x05000003, 0x80000580, 0x0501f002, 0x90000541, - 0x5c025800, 0x5c000000, 0x1c01f000, 0x4803c856, - 0x4d300000, 0x05f5fc0a, 0x0500000f, 0x4936600a, - 0x48ee6023, 0x64066407, 0x492e6009, 0x4d3c0000, - 0x417a7800, 0x0201f800, 0x0010b652, 0x5c027800, - 0x4d380000, 0x60a27000, 0x0005f905, 0x5c027000, - 0x90000541, 0x5c026000, 0x1c01f000, 0x4803c856, - 0x91380595, 0x05020008, 0x59a80073, 0xb00005b4, - 0x05020005, 0x05e1ffb0, 0x64066203, 0x64a66403, - 0x05edf620, 0x05f9f9d4, 0x0005f0e7, 0x4803c856, - 0x91380596, 0x05020004, 0x60100800, 0x05e1feeb, - 0x05f5f599, 0x91380595, 0x0502000d, 0x59a80073, - 0x90000594, 0x0502000a, 0x05e1fff6, 0x05f9fd6d, - 0x05020007, 0x59340404, 0x80000540, 0x05000004, - 0x60180800, 0x05e1fedd, 0x05f5f58b, 0x05f9f9be, - 0x0005f0e7, 0x4803c856, 0x592c0207, 0x90000585, - 0x05000002, 0x1c01f000, 0x4803c856, 0x592c0209, - 0x8400054a, 0x48025a09, 0x1c01f000, 0x59300809, - 0x800409c0, 0x05000008, 0x58040205, 0x82000580, - 0x00000152, 0x05020004, 0x59a8082a, 0x48066006, - 0x1c01f000, 0x599c0416, 0x800001c0, 0x05000007, - 0x90000c84, 0x05001005, 0x800000c2, 0x800008c4, - 0x80040c00, 0x05fdf7f6, 0x59300403, 0x90000582, - 0x05fe07f2, 0x5930080a, 0x58040403, 0x82000580, - 0x000007fe, 0x05fe07ed, 0x60a00800, 0x05fdf7ec, - 0x497a6205, 0x497a6009, 0x64066203, 0x65426403, - 0x42000800, 0x80000043, 0x0005f07c, 0x4933c857, - 0x4d340000, 0x5932680a, 0x59340200, 0x8c00050e, - 0x05000005, 0x59300407, 0x90000c92, 0x05021004, - 0x0c01f805, 0x5c026800, 0x1c01f000, 0x05fdfcc9, - 0x05fdf7fd, 0x00106f34, 0x0010727f, 0x00107283, - 0x00107286, 0x001083c0, 0x001083d8, 0x001083dc, - 0x00106f34, 0x00106f34, 0x00106f34, 0x00106f34, - 0x00106f34, 0x00106f34, 0x00106f34, 0x00106f34, - 0x00106f34, 0x00106f34, 0x00106f34, 0x4803c856, - 0x40000000, 0x40000000, 0x1c01f000, 0x40000000, - 0x40000000, 0x1c01f000, 0x5930001e, 0x4803c857, - 0x59300416, 0x4933c857, 0x4803c857, 0x8c000502, - 0x05000005, 0x4803c857, 0x84000540, 0x48026416, - 0x1c01f000, 0x42000000, 0xd0000000, 0x41300800, - 0x05c9fddc, 0x0501f80e, 0x0502000c, 0x59300c16, - 0x59300403, 0xb0000580, 0x05000003, 0x84040d40, - 0x0501f004, 0x59a8002a, 0x9000040a, 0x48026205, - 0x84040d42, 0x48066416, 0x1c01f000, 0x4933c857, - 0x4d340000, 0x5932680a, 0x59340a00, 0x8c04050e, - 0x05c40f3e, 0x5930001e, 0x80000540, 0x0502002c, - 0x59300403, 0x4803c857, 0xb0000580, 0x05000003, - 0x8d0c050e, 0x05020024, 0x4d1c0000, 0x41323800, - 0x05f5fb53, 0x0500001e, 0x4932381e, 0x591c0416, - 0x84000542, 0x48023c16, 0x4936600a, 0x591c0407, - 0x90000583, 0x05000006, 0x591c0202, 0x4802641b, - 0x591c0402, 0x4802621b, 0x0501f005, 0x591c0202, - 0x4802621b, 0x591c0402, 0x4802641b, 0x491e6020, - 0x64066407, 0x64d66403, 0x64066203, 0x42000800, - 0x80000040, 0x0005f87c, 0x411e6000, 0x5c023800, - 0x80000580, 0x5c026800, 0x1c01f000, 0x411e6000, - 0x5c023800, 0x59a8002c, 0x48026205, 0x90000541, - 0x05fdf7f9, 0x4933c857, 0x4d2c0000, 0x4932381e, - 0x4a026202, 0x0000ffff, 0x591e5809, 0x591c0008, - 0x8c00051e, 0x05000005, 0x8400051e, 0x48023808, - 0x497a580a, 0x0501f016, 0x592c0409, 0x8c000518, - 0x05000013, 0x84000518, 0x48025c09, 0x4d400000, - 0x592e8207, 0x64065a07, 0x0501faad, 0x49425a07, - 0x5c028000, 0x497a580a, 0x592c0409, 0x8c000512, - 0x05000007, 0x4d2c0000, 0x84000512, 0x48025c09, - 0x592e580a, 0x05c9fa88, 0x5c025800, 0x59a8002c, - 0x48026205, 0x591c0216, 0x48026218, 0x90000d81, - 0x05000006, 0x640a3a03, 0x90000585, 0x05000007, - 0x497a6017, 0x0501f01c, 0x591c0008, 0x84000540, - 0x48023808, 0x64123a03, 0x591c0416, 0x4803c857, - 0x8400051c, 0x84000554, 0x48023c16, 0x592c0010, - 0x40001000, 0x591c0818, 0x80040480, 0x05fe17f1, - 0x591c0018, 0x82000500, 0xfffffffc, 0x48026017, - 0x48023818, 0x591c0a16, 0x4807c857, 0x90040d85, - 0x05020005, 0x480bc857, 0x4803c857, 0x4a023814, - 0xffffffff, 0x591c0402, 0x4802641b, 0x591c0202, - 0x4802621b, 0x591e680a, 0x4936600a, 0x64066407, - 0x64e66403, 0x64066203, 0x42000800, 0x80000040, - 0x0005f87c, 0x5c025800, 0x1c01f000, 0x4933c857, - 0x59300416, 0x8c000514, 0x05000015, 0x8c00051c, - 0x05020012, 0x59300018, 0x80100480, 0x05001006, - 0x05000005, 0x59300416, 0x84000514, 0x8400055c, - 0x0501f009, 0x48126018, 0x48126014, 0x40100000, - 0x592c1810, 0x800c0480, 0x48026013, 0x59300416, - 0x84000514, 0x48026416, 0x1c01f000, 0x4933c857, - 0x8c00051c, 0x05020008, 0x59300014, 0x4803c857, - 0x48026018, 0x59300416, 0x8400055c, 0x4803c857, - 0x48026416, 0x1c01f000, 0x0501f805, 0x60058800, - 0x05000002, 0x60018800, 0x1c01f000, 0x59300c03, - 0x4933c857, 0x4807c857, 0x900404b4, 0x05001005, - 0x900404bc, 0x05021003, 0x80000580, 0x1c01f000, - 0x90000541, 0x05fdf7fe, 0x41780800, 0x59a81028, - 0x60c80000, 0x05edfc1b, 0x800811c0, 0x05020002, - 0x60501000, 0x480b502a, 0x59a81029, 0x480b5022, - 0x41780800, 0x61900000, 0x05edfc12, 0x800811c0, - 0x05020002, 0x60501000, 0x480b502b, 0x9008140a, - 0x480b502c, 0x60040800, 0x05edfdfa, 0x42000000, - 0x30000000, 0x40080800, 0x0001f91e, 0x600c0800, - 0x59a8100f, 0x05edfde5, 0x05e5f04a, 0x64a3502a, - 0x6453502b, 0x4a035022, 0x000007d0, 0x60781000, - 0x480b502c, 0x60040800, 0x05edfdea, 0x42000000, - 0x30000000, 0x40080800, 0x0001f91e, 0x600c0800, - 0x59a8100f, 0x05edf5d5, 0x4933c857, 0x4d2c0000, - 0x59300403, 0x900005be, 0x05020004, 0x59325819, - 0x812e59c0, 0x05ca09e3, 0x5c025800, 0x1c01f000, - 0x4937c857, 0x4d300000, 0x05f5fa6d, 0x0500000b, - 0x4936600a, 0x64066407, 0x492e6009, 0x60240800, - 0x05e1fd6a, 0x4d380000, 0x60ce7000, 0x0005f905, - 0x5c027000, 0x90000541, 0x5c026000, 0x1c01f000, - 0x4933c857, 0x4d2c0000, 0x4c580000, 0x4d3c0000, - 0x59325809, 0x91380595, 0x0502001d, 0x59a8b073, - 0x90580c99, 0x05001002, 0x6060b000, 0x8058b104, - 0x0501f9aa, 0x80000580, 0x0501f9b9, 0x912cac0a, - 0x91cca406, 0x0509fda6, 0x4c600000, 0x6004c000, - 0x592c100b, 0x8c080518, 0x05020006, 0x59a8000f, - 0x592c100e, 0x80080580, 0x05020006, 0x4178c000, - 0x5930100a, 0x58081403, 0x417a7800, 0x05d1fdf0, - 0x5c00c000, 0x05f5fbf0, 0x0501f005, 0x6008b000, - 0x0501f9af, 0x05f9f820, 0x0005f8e7, 0x5c027800, - 0x5c00b000, 0x5c025800, 0x1c01f000, 0x4933c856, - 0x60018800, 0x4936600a, 0x64066407, 0x492e6009, - 0x4d380000, 0x61367000, 0x0005f905, 0x5c027000, - 0x90000541, 0x60058800, 0x1c01f000, 0x4803c856, - 0x4d2c0000, 0x91380595, 0x05020025, 0x59a80873, - 0x59325809, 0x5930040c, 0x80040580, 0x05020020, - 0x4c500000, 0x4c540000, 0x4c580000, 0x91cca406, - 0x4050a800, 0x5930b40c, 0x9058b403, 0x8058b104, - 0x0509fdaa, 0x91cca406, 0x592cb206, 0x9058b403, - 0x8058b104, 0x912cac07, 0x0509fd69, 0x592e5801, - 0x812e59c0, 0x05fe07f9, 0x5931d823, 0x58ef400a, - 0x58ee580c, 0x4a025a05, 0x00000103, 0x58ec0008, - 0x0801f800, 0x59300402, 0x5c00b000, 0x5c00a800, - 0x5c00a000, 0x5c025800, 0x1c01f000, 0x05f5ffe6, - 0x5c025800, 0x1c01f000, 0x4933c857, 0x90040db5, - 0x05000005, 0x5930141b, 0x0501f844, 0x05000025, - 0x0501f006, 0x4d300000, 0x59326020, 0x0501f848, - 0x5c026000, 0x0500001e, 0x591c0c07, 0x90040583, - 0x05000003, 0x90040586, 0x0502001b, 0x591c0c02, - 0x5930041b, 0x80040580, 0x05000009, 0x5930021b, - 0x80040580, 0x05020014, 0x591c0a02, 0x5930041b, - 0x80040580, 0x05020010, 0x0501f009, 0x59300a1b, - 0x82040580, 0x0000ffff, 0x05000005, 0x591c0202, - 0x59300a1b, 0x80040580, 0x05020007, 0x591c000a, - 0x5930080a, 0x80040580, 0x1c01f000, 0x417a3800, - 0x90000541, 0x1c01f000, 0x4803c856, 0x4203e000, - 0xb0800000, 0x600009fe, 0x4203f800, 0x30000000, - 0x40000000, 0x80040840, 0x05c40da8, 0x05ffb7fb, - 0x1c01f000, 0x4803c856, 0x4203e000, 0xb0800000, - 0x4203f800, 0x20000000, 0x1c01f000, 0x0501f805, - 0x60058800, 0x05020002, 0x60018800, 0x1c01f000, - 0x59300808, 0x8c04051e, 0x592c0c09, 0x05020002, - 0x8c040518, 0x1c01f000, 0x05fdfc83, 0x05000007, - 0x800800c4, 0x800808ca, 0x80040c00, 0x82063c00, - 0x0010cca4, 0x491fc857, 0x1c01f000, 0x0501fbff, - 0x05020007, 0x59301402, 0x05fdfff4, 0x05000007, - 0x411c0000, 0x81300580, 0x05000003, 0x81780500, - 0x0501f002, 0x81300540, 0x1c01f000, 0x4d300000, - 0x0001fac4, 0x0502000a, 0x42026000, 0x0010cc5c, - 0x4936600a, 0x492e6009, 0x0201f800, 0x0010b652, - 0x80000580, 0x5c026000, 0x1c01f000, 0x90000541, - 0x05fdf7fd, 0x4933c857, 0x05fdfc6e, 0x05c40d6f, - 0x4d2c0000, 0x4d340000, 0x4d440000, 0x4c580000, - 0x59325809, 0x5932680a, 0x49425a07, 0x05e9faca, - 0x592e8c07, 0x592c4208, 0x9020050f, 0x0c01f806, - 0x5c00b000, 0x5c028800, 0x5c026800, 0x5c025800, - 0x1c01f000, 0x0010749b, 0x001074b9, 0x001074bf, - 0x001074c2, 0x001074ca, 0x00107499, 0x00107499, - 0x00107499, 0x001074cd, 0x001074d7, 0x001074d7, - 0x00107499, 0x00107499, 0x00107499, 0x00107499, - 0x00107499, 0x4803c857, 0x05c5fd4c, 0x814281c0, - 0x05020011, 0x41785800, 0x592c0405, 0x8c00051c, - 0x05020002, 0x59345c05, 0x442c2800, 0x59340008, - 0x48002802, 0x59340009, 0x48002801, 0x59340006, - 0x48002804, 0x59340007, 0x48002803, 0x602cb000, - 0x0501f02d, 0x592c0208, 0x8c00051e, 0x6008b000, - 0x05020029, 0x9004b540, 0x05000027, 0x44042800, - 0x5932680a, 0x59340400, 0x48002801, 0x6008b000, - 0x0501f021, 0x814281c0, 0x05fe07f3, 0x59345c05, - 0x442c2800, 0x6004b000, 0x0501f01b, 0x9140b540, - 0x05000019, 0x0501f021, 0x814281c0, 0x0502001f, - 0x59340200, 0x44002800, 0x59340001, 0x48002801, - 0x6008b000, 0x0501f010, 0x9140b540, 0x05020017, - 0x0501f00d, 0x9140b540, 0x0500000b, 0x05e1ffab, - 0x05000012, 0x8c20050e, 0x05000002, 0x497a600a, - 0x4178b000, 0x497a5a07, 0x0501f003, 0x9140b540, - 0x0502000a, 0x592c0405, 0x8400051c, 0x48025c05, - 0x592c0208, 0x8400051e, 0x48025a08, 0x0501f87f, - 0x497a6009, 0x0001f32c, 0x592c0208, 0x8c00051e, - 0x6008b000, 0x05fe07f4, 0x9004b540, 0x05fc07f2, - 0x44042800, 0x6004b000, 0x05fdf7ef, 0x4937c857, - 0x4d300000, 0x05f5f91a, 0x0500000b, 0x4936600a, - 0x64066407, 0x492e6009, 0x602c0800, 0x05e1fc17, - 0x4d380000, 0x610e7000, 0x0005f905, 0x5c027000, - 0x90000541, 0x5c026000, 0x1c01f000, 0x4937c857, - 0x4d2c0000, 0x59325809, 0x91380595, 0x05020022, - 0x59a80073, 0x90000584, 0x0502001f, 0x59a8000f, - 0x592c100a, 0x80080580, 0x05020011, 0x4d440000, - 0x592e8c07, 0x592c0208, 0x4803c856, 0x82000500, - 0x00000080, 0x84000548, 0x4d3c0000, 0x60027820, - 0x8c00050e, 0x05000002, 0x853e7d5c, 0x05e1fee1, - 0x5c027800, 0x5c028800, 0x0501f003, 0x4803c856, - 0x05e1ff62, 0x05fdfbcb, 0x05000011, 0x4d400000, - 0x60028000, 0x41780800, 0x05fdff57, 0x5c028000, - 0x0501f00a, 0x05e1ff59, 0x05fe07f7, 0x05fdfbc1, - 0x05000007, 0x4c580000, 0x6008b000, 0x0501f854, - 0x5c00b000, 0x05f5fec4, 0x0005f8e7, 0x5c025800, - 0x1c01f000, 0x4937c857, 0x4d300000, 0x05f5f8d8, - 0x0500000d, 0x4936600a, 0x64066407, 0x4d3c0000, - 0x4d380000, 0x417a7800, 0x05e1fbc9, 0x492e6009, - 0x60127000, 0x0005f905, 0x5c027000, 0x5c027800, - 0x90000541, 0x5c026000, 0x1c01f000, 0x4937c857, - 0x4d300000, 0x05f5f8c6, 0x0500000b, 0x4936600a, - 0x600c0800, 0x05e1fbc5, 0x64066407, 0x492e6009, - 0x4d380000, 0x61467000, 0x0005f905, 0x5c027000, - 0x90000541, 0x5c026000, 0x1c01f000, 0x4933c857, - 0x61f2880f, 0x42003000, 0x00fffffc, 0x05e1fbe7, - 0x05c60c92, 0x4936600a, 0x417a7800, 0x05e1fba8, - 0x600c0800, 0x05e1fbb1, 0x497a6c12, 0x64066203, - 0x640a6403, 0x05edf2db, 0x492fc857, 0x4c580000, - 0x4c000000, 0x8058b1c0, 0x0500000a, 0x82580500, - 0xfffffff0, 0x05c60c81, 0x8058b0d0, 0x592c0409, - 0x82000500, 0xfffff0ff, 0x80580540, 0x48025c09, - 0x5c000000, 0x5c00b000, 0x1c01f000, 0x492fc857, - 0x4c000000, 0x4c040000, 0x800000d8, 0x592c0c09, - 0x82040d00, 0xffff0fff, 0x80040540, 0x48025c09, - 0x5c000800, 0x5c000000, 0x1c01f000, 0x4933c857, - 0x4d2c0000, 0x59325809, 0x592c0208, 0x8400055e, - 0x48025a08, 0x4c500000, 0x4c540000, 0x4c580000, - 0x05fdffda, 0x05e9f9c4, 0x64602800, 0x80142800, - 0x8058b040, 0x91cca407, 0x4014a800, 0x0509fbd4, + 0x60007040, 0x4203e000, 0xb0800000, 0x6033f800, + 0x40000000, 0x40000000, 0x40000000, 0x0501b004, + 0x80387040, 0x05c408fd, 0x05fdf7f9, 0x1c01f000, + 0x4203e000, 0xb0800000, 0x6023f800, 0x1c01f000, + 0x83300480, 0x0010cc48, 0x05001006, 0x41540000, + 0x81300480, 0x05021003, 0x80000580, 0x1c01f000, + 0x81780080, 0x1c01f000, 0x59a80873, 0x59cc2808, + 0x82140500, 0x00000c00, 0x05000003, 0x90040490, + 0x05001015, 0x80001580, 0x8c140512, 0x05000004, + 0x90040494, 0x05001010, 0x59cc100a, 0x80000580, + 0x8c140510, 0x05000004, 0x90040498, 0x0500100a, + 0x59cc000b, 0x80080400, 0x05001007, 0x05000005, + 0x90000418, 0x80040480, 0x05001003, 0x80000580, + 0x1c01f000, 0x42000000, 0x0010986d, 0x0509f848, + 0x90000541, 0x05fdf7fb, 0x4933c857, 0x4937c857, + 0x492fc857, 0x48efc857, 0x4d1c0000, 0x4d300000, + 0x41323800, 0x05f1fd62, 0x0500001b, 0x48ee6023, + 0x4936600a, 0x591c0407, 0x90000583, 0x05000008, + 0x591c0202, 0x4803c857, 0x4802641b, 0x591c0402, + 0x4802621b, 0x4803c857, 0x0501f007, 0x591c0202, + 0x4803c857, 0x4802621b, 0x591c0402, 0x4802641b, + 0x4803c857, 0x491e6020, 0x64066407, 0x492e6009, + 0x4d380000, 0x615e7000, 0x0005f905, 0x5c027000, + 0x90000541, 0x5c026000, 0x5c023800, 0x1c01f000, + 0x4933c857, 0x493bc857, 0x4937c857, 0x4d2c0000, + 0x4c500000, 0x4c540000, 0x4c580000, 0x59325809, + 0x05fdf832, 0x05000017, 0x91cca406, 0x912cac07, + 0x91380596, 0x05020007, 0x59a80073, 0x90000588, + 0x0502000e, 0x492fc857, 0x6008b000, 0x0501f008, + 0x91380595, 0x05020009, 0x492fc857, 0x59a80073, + 0x90000598, 0x05020005, 0x6018b000, 0x0509f8ce, + 0x05f1fedb, 0x0501f003, 0x05f5fb0d, 0x0005f8e7, 0x5c00b000, 0x5c00a800, 0x5c00a000, 0x5c025800, - 0x1c01f000, 0x0501f805, 0x60058800, 0x05000002, - 0x60018800, 0x1c01f000, 0x59325809, 0x592c0205, - 0x82000580, 0x00000152, 0x1c01f000, 0x59300021, - 0x80000540, 0x05ca0c63, 0x1c01f000, 0x4d2c0000, - 0x59325809, 0x59300203, 0x4933c857, 0x492fc857, - 0x493bc857, 0x4803c857, 0x9000348e, 0x05c61c3f, - 0x0c01f803, 0x5c025800, 0x1c01f000, 0x001075b9, - 0x001075bf, 0x001075e6, 0x001075b9, 0x001075b9, - 0x001075b9, 0x001075b9, 0x001075b9, 0x001075ba, - 0x001075b9, 0x001075b9, 0x001075b9, 0x001075b9, - 0x001075b9, 0x05c5fc2d, 0xb1383498, 0x05c61c2b, - 0x493a6403, 0x64066203, 0x05edf27a, 0x91380593, - 0x0502000c, 0x492fc857, 0x592c000d, 0x800001c0, - 0x05000005, 0x640a6203, 0x59a8002a, 0x48026006, - 0x1c01f000, 0x64025a07, 0x0001fb2c, 0x0005f0e7, - 0x913805a7, 0x05000011, 0x91380594, 0x0500000b, - 0x91380595, 0x05000003, 0x91380596, 0x05c60c13, - 0x05edfea5, 0x05f60065, 0x59300203, 0x90000582, - 0x05c60c0e, 0x0501f00d, 0x4937c857, 0x05edfac2, - 0x6446580f, 0x0501f004, 0x4937c857, 0x05edfabe, - 0x6442580f, 0x64c65a07, 0x6412580e, 0x0001fb2c, - 0x05e5f847, 0x05f1f7f0, 0x59341400, 0x82081d00, - 0x000000ff, 0x59300c03, 0x480bc857, 0x4807c857, - 0xb0040593, 0x05000020, 0x90040582, 0x0500000f, - 0x90040581, 0x05000010, 0x90040583, 0x05000013, - 0x90040585, 0x05000014, 0x900405b3, 0x05000012, - 0x90040580, 0x05000013, 0x90040584, 0x05c60beb, - 0x0501f874, 0x0501f010, 0x900c0583, 0x05000837, - 0x0501f00d, 0x900c058b, 0x0502000b, 0x601c0800, - 0x05e1fb06, 0x0501f008, 0x900c0585, 0x05000849, - 0x0501f005, 0x900c0589, 0x05000864, 0x0501f002, - 0x0501f869, 0x654a6403, 0x59a81073, 0x592c040c, - 0x8c000500, 0x05000002, 0x60201000, 0x592c040c, - 0x8c000516, 0x05000002, 0x90081418, 0x592c000d, - 0x497a580e, 0x497a580f, 0x80080c80, 0x05000007, - 0x05001004, 0x641e5a07, 0x40001000, 0x0501f004, - 0x64565a07, 0x0501f002, 0x64025a07, 0x480a580d, - 0x05f5f92c, 0x0500000d, 0x592c1001, 0x480a600d, - 0x58080800, 0x90080402, 0x592c1012, 0x592c1813, - 0x60003000, 0x42002000, 0x00100efe, 0x05f5fa4d, - 0x05000002, 0x1c01f000, 0x64b25a07, 0x497a580d, - 0x0001fb2c, 0x0005f0e7, 0x91380595, 0x05020007, - 0x59a80086, 0x8c000502, 0x05020006, 0x05e1fb8a, - 0x60100800, 0x05e1f2cd, 0x601c0800, 0x05e1f2cb, - 0x05e5fa9e, 0x60401000, 0x05020008, 0x59340002, - 0x82000500, 0x00ff0000, 0x82000580, 0x00ff0000, - 0x05fc07f3, 0x60201000, 0x05e5f82a, 0x05fc07f0, - 0x592c040c, 0x84000540, 0x48025c0c, 0x05fdf7ef, - 0x91380595, 0x0502000b, 0x59a80086, 0x8c000502, - 0x0502000a, 0x05e1fbc7, 0x4d3c0000, 0x417a7800, - 0x05e1faa7, 0x5c027800, 0x60180800, 0x05e1f2af, - 0x60100800, 0x05e1f2ad, 0x05e5fa80, 0x60401000, - 0x05020008, 0x59340002, 0x82000500, 0x00ff0000, - 0x82000580, 0x00ff0000, 0x05fc07ef, 0x60201000, - 0x05e5f80c, 0x05fc07ec, 0x592c040c, 0x84000540, - 0x48025c0c, 0x05fdf7ef, 0x60100800, 0x05e1f29b, - 0x91380595, 0x05020003, 0x0505fc02, 0x05e00d15, - 0x1c01f000, 0x91380595, 0x05020015, 0x4c580000, - 0x91cc1408, 0x6008b000, 0x91341c06, 0x05f9f932, - 0x0502000e, 0x91cc140a, 0x6008b000, 0x91341c08, - 0x05f9f92d, 0x05020009, 0x59342200, 0x59cc1007, - 0x800811c0, 0x05000003, 0x480a6801, 0x84102542, - 0x8410251a, 0x48126a00, 0x5c00b000, 0x1c01f000, - 0x42000000, 0x00109810, 0x0509fa07, 0x05edfaa4, - 0x59300203, 0x4933c857, 0x4803c857, 0x90000c8e, - 0x05c61b52, 0x0c01f802, 0x05edf289, 0x001076a6, - 0x001076af, 0x001076a7, 0x001076a5, 0x001076a5, - 0x001076a5, 0x001076a5, 0x001076a5, 0x001076a5, - 0x001076a5, 0x001076a5, 0x001076a5, 0x001076a5, - 0x001076a5, 0x05c5fb41, 0x1c01f000, 0x59300403, - 0xb0000592, 0x05fc0090, 0x05e1ff81, 0x59325809, - 0x641a5a07, 0x0001fb2c, 0x05f1f727, 0x59301804, - 0x840c0520, 0x48026004, 0x598c000b, 0x81300580, - 0x0502000f, 0x8c0c0520, 0x0502000f, 0x42001000, - 0x00109730, 0x50081000, 0x58080002, 0x82000580, - 0x00000100, 0x0500000d, 0x5808000b, 0x81300580, - 0x05c60b26, 0x4978100b, 0x0501f003, 0x8c0c0520, - 0x05fe07e3, 0x0201f800, 0x0010ba2e, 0x80c40040, - 0x05fc07df, 0x05c5fb1d, 0x05edfd06, 0x05fc07fa, - 0x59300203, 0x90000c8e, 0x05c61b18, 0x0c01f7c8, - 0x4933c857, 0x4c500000, 0x4c540000, 0x4c580000, - 0x592c0c08, 0x48065814, 0x59cc0809, 0x48065808, - 0x59cc0808, 0x4806580c, 0x59a80885, 0x82040500, - 0x000003ff, 0x800010c4, 0x8c040514, 0x05000004, - 0x59cc0002, 0x90000503, 0x80081480, 0x480a621c, - 0x412c0800, 0x05c5fe70, 0x05c40b00, 0x492c080a, - 0x58040409, 0x84000552, 0x84000540, 0x48000c09, - 0x90081403, 0x80081104, 0x91cca406, 0x912cac05, - 0x60400800, 0x90080490, 0x05021003, 0x40080800, - 0x80000580, 0x4004b000, 0x4c000000, 0x0509faa3, - 0x5c000000, 0x800001c0, 0x0500000a, 0x412c1000, - 0x4c000000, 0x05c5fe58, 0x05c40ae8, 0x492c1001, - 0x912cac05, 0x5c000000, 0x40001000, 0x05fdf7ee, - 0x5c00b000, 0x5c00a800, 0x5c00a000, 0x1c01f000, - 0x4933c857, 0x4d2c0000, 0x4c380000, 0x59325809, - 0x5930021c, 0x48025a09, 0x59301013, 0x640a6203, - 0x592c020b, 0x8c000500, 0x05000004, 0x59300017, - 0x592c1010, 0x80081480, 0x800811c0, 0x05020007, - 0x64025a07, 0x592c000c, 0x82000500, 0x00000c00, - 0x05000009, 0x0501f009, 0x8c08053e, 0x05000005, - 0x641e5a07, 0x80081080, 0x80081000, 0x0501f002, - 0x64565a07, 0x480a5808, 0x42000000, 0x00109968, - 0x50007000, 0x5838000a, 0x80000540, 0x05020007, - 0x4930700b, 0x4930700a, 0x58380002, 0x90000580, - 0x05020808, 0x0501f004, 0x90001400, 0x45301000, - 0x4930700a, 0x5c007000, 0x5c025800, 0x1c01f000, - 0x4933c857, 0x592c000a, 0x40001000, 0x48007009, - 0x90080405, 0x48007003, 0x592c000e, 0x592c100f, - 0x48007006, 0x48087007, 0x592c0014, 0x592c1209, - 0x80080c80, 0x05001002, 0x40001000, 0x90081403, - 0x80081104, 0x90080490, 0x05021003, 0x80000580, - 0x0501f002, 0x60401000, 0x4800700c, 0x48087004, - 0x800810c4, 0x48087005, 0x40381000, 0x0001f01c, - 0x4d2c0000, 0x05c5fe00, 0x05c40a90, 0x42000800, - 0x00109968, 0x452c0800, 0x497a580a, 0x497a580b, - 0x497a580c, 0x4a025808, 0x00107764, 0x4a025802, - 0x00000100, 0x64025801, 0x5c025800, 0x1c01f000, - 0x4833c857, 0x4d300000, 0x4d2c0000, 0x4c5c0000, - 0x4030b800, 0x585c0009, 0x80025d40, 0x05020004, - 0x585c000b, 0x4c000000, 0x0501f03a, 0x585c0002, - 0x82000580, 0x00000100, 0x0502001c, 0x592c0801, - 0x4c040000, 0x05c5fe03, 0x5c000800, 0x800409c0, - 0x05000017, 0x4804b809, 0x585c100c, 0x800811c0, - 0x05020004, 0x40065800, 0x05c5fe03, 0x0501f010, - 0x90080490, 0x05021003, 0x80000580, 0x0501f002, - 0x60401000, 0x4800b80c, 0x4808b804, 0x800810c4, - 0x4808b805, 0x90040405, 0x4800b803, 0x405c1000, - 0x0001f81c, 0x0501f021, 0x0501f824, 0x585c000b, - 0x80026540, 0x59300000, 0x80000d40, 0x05020002, - 0x4800b80a, 0x4800b80b, 0x497a6000, 0x4c000000, - 0x4978b809, 0x59325809, 0x4a025a05, 0x00000103, - 0x59300402, 0x48025c07, 0x592c100c, 0x4c080000, - 0x0001fb2c, 0x05fdfa13, 0x5c001000, 0x8c080518, - 0x05000003, 0x05fdfab3, 0x0501f002, 0x0005f8e7, - 0x405c7000, 0x5c000000, 0x80026540, 0x05000003, - 0x59325809, 0x05fdff8b, 0x5c00b800, 0x5c025800, - 0x5c026000, 0x1c01f000, 0x483bc857, 0x58380009, - 0x40025800, 0x05c5fdcc, 0x5838000b, 0x80026540, - 0x59300009, 0x80025d40, 0x640a5a07, 0x1c01f000, - 0x4803c857, 0x4933c857, 0x4d1c0000, 0x497a601e, - 0x41323800, 0x40026000, 0x4d3c0000, 0x60167800, - 0x0501f836, 0x5c027800, 0x411e6000, 0x4933c857, - 0x59300416, 0x84000502, 0x48026416, 0x5c023800, - 0x1c01f000, 0x481bc857, 0x4933c857, 0x4c5c0000, - 0x4c600000, 0x4010b800, 0x4014c000, 0x0505ff28, - 0x8d0c0520, 0x05000006, 0x40602800, 0x405c3000, - 0x0505fb11, 0x90000541, 0x0501f002, 0x80000580, - 0x5c00c000, 0x5c00b800, 0x1c01f000, 0x4803c856, - 0x4d300000, 0x42026000, 0x0010cca4, 0x59a8000d, - 0x81640580, 0x05000013, 0x59300c07, 0x90040581, - 0x05000009, 0x90040584, 0x05000004, 0x90040590, - 0x05f80ed7, 0x0501f007, 0x59300203, 0x90000d87, - 0x05000004, 0x4807c857, 0x05fdfb65, 0x05020807, - 0x91326424, 0x41580000, 0x81300480, 0x05fc17ec, - 0x5c026000, 0x1c01f000, 0x4933c857, 0x59300403, - 0x4803c857, 0x05edf936, 0x4df00000, 0x59300407, - 0x4803c857, 0x90000d82, 0x05000011, 0x90000d81, - 0x05000007, 0x90000d84, 0x05000005, 0x4933c856, - 0x5c03e000, 0x05ec0916, 0x0501f036, 0x59300203, - 0x90000d81, 0x05000010, 0x90000d82, 0x05000027, - 0x90000d85, 0x05000025, 0x05c5f9d4, 0x59300203, - 0x90000d89, 0x05000008, 0x90000d8b, 0x05000006, - 0x90000d8a, 0x0500001d, 0x90000d8c, 0x0500001b, - 0x05c5f9ca, 0x598c000b, 0x81300580, 0x05020003, - 0x05edfbb0, 0x05020015, 0x59300004, 0x4803c857, - 0x8c000520, 0x05000004, 0x84000520, 0x48026004, - 0x0501f00e, 0x0201f800, 0x0010ba2e, 0x80c40040, - 0x05c609ba, 0x5c03e000, 0x05ec08f1, 0x59300407, - 0x90000d82, 0x05000004, 0x05e1fdf9, 0x05fdf9a8, - 0x05f40bb9, 0x05f1f5a0, 0x5c03e000, 0x05ec08e8, - 0x59300407, 0x90000d82, 0x05000006, 0x05e1fdf0, - 0x05fdf99f, 0x05f40bb0, 0x8d3c0500, 0x05000003, - 0x0505ff83, 0x05f1f594, 0x6406621f, 0x4a026403, - 0x00000085, 0x64266203, 0x640a6407, 0x42000800, - 0x80000040, 0x0005f07c, 0x60007040, 0x4203e000, - 0xb0800000, 0x6033f800, 0x40000000, 0x40000000, - 0x40000000, 0x0501b004, 0x80387040, 0x05c40993, - 0x05fdf7f9, 0x1c01f000, 0x4203e000, 0xb0800000, - 0x6023f800, 0x1c01f000, 0x83300480, 0x0010cc38, - 0x05001006, 0x41540000, 0x81300480, 0x05021003, - 0x80000580, 0x1c01f000, 0x81780080, 0x1c01f000, - 0x59a80873, 0x59cc2808, 0x82140500, 0x00000c00, - 0x05000003, 0x90040490, 0x05001015, 0x80001580, - 0x8c140512, 0x05000004, 0x90040494, 0x05001010, - 0x59cc100a, 0x80000580, 0x8c140510, 0x05000004, - 0x90040498, 0x0500100a, 0x59cc000b, 0x80080400, - 0x05001007, 0x05000005, 0x90000418, 0x80040480, - 0x05001003, 0x80000580, 0x1c01f000, 0x42000000, - 0x001097ed, 0x0509f814, 0x90000541, 0x05fdf7fb, - 0x4933c857, 0x4937c857, 0x492fc857, 0x48efc857, - 0x4d1c0000, 0x4d300000, 0x41323800, 0x05f1fd7c, - 0x0500001b, 0x48ee6023, 0x4936600a, 0x591c0407, - 0x90000583, 0x05000008, 0x591c0202, 0x4803c857, - 0x4802641b, 0x591c0402, 0x4802621b, 0x4803c857, - 0x0501f007, 0x591c0202, 0x4803c857, 0x4802621b, - 0x591c0402, 0x4802641b, 0x4803c857, 0x491e6020, - 0x64066407, 0x492e6009, 0x4d380000, 0x615e7000, - 0x0005f905, 0x5c027000, 0x90000541, 0x5c026000, - 0x5c023800, 0x1c01f000, 0x4933c857, 0x493bc857, - 0x4937c857, 0x4d2c0000, 0x4c500000, 0x4c540000, - 0x4c580000, 0x59325809, 0x05fdf832, 0x05000017, - 0x91cca406, 0x912cac07, 0x91380596, 0x05020007, - 0x59a80073, 0x90000588, 0x0502000e, 0x492fc857, - 0x6008b000, 0x0501f008, 0x91380595, 0x05020009, - 0x492fc857, 0x59a80073, 0x90000598, 0x05020005, - 0x6018b000, 0x0509f89a, 0x05f1fef3, 0x0501f003, - 0x05f5fb25, 0x0005f8e7, 0x5c00b000, 0x5c00a800, - 0x5c00a000, 0x5c025800, 0x1c01f000, 0x4933c857, - 0x05edf863, 0x4df00000, 0x59300203, 0x90000c8e, - 0x05c61912, 0x0c01f001, 0x001078e5, 0x001078e4, - 0x001078ea, 0x00107902, 0x001078e9, 0x001078e4, - 0x001078e4, 0x001078e4, 0x001078e4, 0x001078e4, - 0x001078e4, 0x001078e4, 0x001078e4, 0x001078e4, - 0x05c5f902, 0x5c03e000, 0x05ec0839, 0x80000580, - 0x1c01f000, 0x05c9fa28, 0x5c03e000, 0x05ec0834, - 0x8d3c0502, 0x05020011, 0x4d2c0000, 0x59325809, - 0x64165a07, 0x0001fb2c, 0x5c025800, 0x497a6009, - 0x8d3c0500, 0x0502000b, 0x642a621f, 0x4a026403, - 0x00000085, 0x64266203, 0x640a6407, 0x42000800, - 0x80004040, 0x0005f87c, 0x81780080, 0x1c01f000, - 0x05f1fcd5, 0x05fdf7fd, 0x05f9fda3, 0x05020003, - 0x05edfa97, 0x05020007, 0x0201f800, 0x0010b8bb, - 0x80c40040, 0x05fc07e1, 0x05e9ff58, 0x05c608db, - 0x59300203, 0x90000d83, 0x05c408d8, 0x90000c8e, - 0x05c618d6, 0x0c01f7c5, 0x4933c857, 0x4d340000, - 0x916c0583, 0x0502000d, 0x599c0018, 0x8c000516, - 0x05000003, 0x05d9fd5a, 0x0501f008, 0x60100800, - 0x05ddffee, 0x6486641f, 0x05fdfc31, 0x90000541, - 0x5c026800, 0x1c01f000, 0x80000580, 0x05fdf7fd, - 0x59303009, 0x58181a05, 0x820c1d00, 0x000000ff, - 0xb00c0588, 0x05000003, 0xb00c05aa, 0x05020045, - 0x58180409, 0x8c000500, 0x05000042, 0x42000000, - 0x00109968, 0x50006000, 0x41781800, 0x5830200b, - 0x41300000, 0x80100580, 0x05000006, 0x40101800, - 0x580c2000, 0x801021c0, 0x05fe07fa, 0x0501f035, - 0x4933c857, 0x59302000, 0x497a6000, 0x800c19c0, - 0x0502001e, 0x4933c856, 0x42007000, 0x00020a09, - 0x58300009, 0x800001c0, 0x05000018, 0x49786009, - 0x58380001, 0x80300580, 0x05020008, 0x4933c856, - 0x49787002, 0x4810600b, 0x801021c0, 0x0502001d, - 0x4978600a, 0x0501f01b, 0x4933c856, 0x4810600b, - 0x801021c0, 0x05020002, 0x4978600a, 0x4c180000, - 0x4c300000, 0x05c5fd36, 0x5c006000, 0x05fdfe09, - 0x5c003000, 0x0501f00f, 0x4933c856, 0x800c19c0, - 0x05020008, 0x801021c0, 0x05000003, 0x4810600b, - 0x0501f008, 0x4978600b, 0x4978600a, 0x0501f005, - 0x48101800, 0x801021c0, 0x05020002, 0x480c600a, - 0x58180409, 0x84000500, 0x48003409, 0x49783209, - 0x1c01f000, 0x4933c857, 0x59368c03, 0x4c180000, - 0x59300203, 0x9000348e, 0x05c61870, 0x0c01f803, - 0x5c003000, 0x1c01f000, 0x00107988, 0x00107dbe, - 0x00107ec0, 0x00107988, 0x00107988, 0x00107988, - 0x00107988, 0x00107988, 0x001079a5, 0x00107988, - 0x00107988, 0x00107988, 0x00107988, 0x00107988, - 0x05c5f85e, 0x4933c857, 0x61fe89ff, 0x813669c0, - 0x05000002, 0x59368c03, 0x4c180000, 0x59300203, - 0x9000348e, 0x05c61855, 0x0c01f803, 0x5c003000, - 0x1c01f000, 0x001079a3, 0x001080f5, 0x001079a3, - 0x001079a3, 0x001079a3, 0x001079a3, 0x001079a3, - 0x001079a3, 0x0010805e, 0x00108445, 0x0010846e, - 0x00108445, 0x0010846e, 0x001079a3, 0x05c5f843, - 0x05c5f842, 0xb1383497, 0x05c61840, 0x41380000, - 0x493bc857, 0x4d1c0000, 0x4d400000, 0x0c01f804, - 0x5c028000, 0x5c023800, 0x1c01f000, 0x00107a0f, - 0x00107b9e, 0x00107a0f, 0x00107a0f, 0x00107a0f, - 0x00107ba4, 0x00107a0f, 0x00107a0f, 0x00107a0f, - 0x00107a0f, 0x00107a0f, 0x00107a0f, 0x00107a0f, - 0x00107a0f, 0x00107a0f, 0x00107a0f, 0x00107a0f, - 0x00107a0f, 0x00107a0f, 0x00107a0f, 0x00107a0f, - 0x00107a0f, 0x00107a0f, 0x00107a2e, 0x00107a6c, - 0x00107a7d, 0x00107adc, 0x00107b20, 0x00107b56, - 0x00107b7b, 0x00107a0f, 0x00107a0f, 0x00107ba9, - 0x00107a0f, 0x00107a0f, 0x00107bb2, 0x00107bb7, - 0x00107a0f, 0x00107a0f, 0x00107a0f, 0x00107a0f, - 0x00107a0f, 0x00107c34, 0x00107a0f, 0x00107a0f, - 0x00107b09, 0x00107a0f, 0x00107a0f, 0x00107c0a, - 0x00107a0f, 0x00107a0f, 0x00107a0f, 0x00107c3f, - 0x00107a0f, 0x00107a0f, 0x00107a0f, 0x00107c7b, - 0x00107a0f, 0x00107a0f, 0x00107a0f, 0x00107a0f, - 0x00107a0f, 0x00107a0f, 0x00107cd0, 0x00107a0f, - 0x00107a0f, 0x00107a0f, 0x00107a0f, 0x00107a0f, - 0x00107a10, 0x00107a0f, 0x00107a0f, 0x00107a0f, - 0x00107a0f, 0x00107a1a, 0x00107a0f, 0x00107a0f, - 0x00107a0f, 0x00107cf3, 0x00107cf8, 0x00107d0e, - 0x00107a0f, 0x00107a0f, 0x00107a0f, 0x00107a0f, - 0x00107a0f, 0x00107a26, 0x00107a0f, 0x00107a0f, - 0x00107a0f, 0x00107a0f, 0x00107a0f, 0x00107a0f, - 0x00107a0f, 0x00107a0f, 0x00107a0f, 0x05c1ffd7, - 0x4933c857, 0x0505fa84, 0x05020304, 0x05d1f80a, - 0x05020302, 0x59cc0407, 0x4802601e, 0x65166403, - 0x64066203, 0x05e9f61f, 0x4933c857, 0x0505fa7a, - 0x050202fa, 0x05d1f800, 0x050202f8, 0x0501fb2a, - 0x05020167, 0x59cc0007, 0x4802601e, 0x652a6403, - 0x64066203, 0x05e9f613, 0x4933c857, 0x0505fa6e, - 0x050202ee, 0x05cdfff4, 0x050202ec, 0x655a6403, - 0x64066203, 0x05e9f60b, 0x4933c857, 0x05cdffee, - 0x0502000b, 0x05e1f97e, 0x05020009, 0x59a8021b, + 0x1c01f000, 0x4933c857, 0x05edf859, 0x4df00000, + 0x59300203, 0x90000c8e, 0x05c6187c, 0x0c01f001, + 0x0010797b, 0x0010797a, 0x00107980, 0x00107998, + 0x0010797f, 0x0010797a, 0x0010797a, 0x0010797a, + 0x0010797a, 0x0010797a, 0x0010797a, 0x0010797a, + 0x0010797a, 0x0010797a, 0x05c5f86c, 0x5c03e000, + 0x05ec082f, 0x80000580, 0x1c01f000, 0x05c9f992, + 0x5c03e000, 0x05ec082a, 0x8d3c0502, 0x05020011, + 0x4d2c0000, 0x59325809, 0x64165a07, 0x0001fb2c, + 0x5c025800, 0x497a6009, 0x8d3c0500, 0x0502000b, + 0x642a621f, 0x4a026403, 0x00000085, 0x64266203, + 0x640a6407, 0x42000800, 0x80004040, 0x0005f87c, + 0x81780080, 0x1c01f000, 0x05f1fcb7, 0x05fdf7fd, + 0x05f9fda0, 0x05020003, 0x05edfa8d, 0x05020007, + 0x0201f800, 0x0010b8cb, 0x80c40040, 0x05fc07e1, + 0x05e9ff4e, 0x05c60845, 0x59300203, 0x90000d83, + 0x05c40842, 0x90000c8e, 0x05c61840, 0x0c01f7c5, + 0x4933c857, 0x4d340000, 0x916c0583, 0x0502000d, + 0x599c0018, 0x8c000516, 0x05000003, 0x05d9fcc8, + 0x0501f008, 0x60100800, 0x05ddff64, 0x6486641f, + 0x05fdfc31, 0x90000541, 0x5c026800, 0x1c01f000, + 0x80000580, 0x05fdf7fd, 0x59303009, 0x58181a05, + 0x820c1d00, 0x000000ff, 0xb00c0588, 0x05000003, + 0xb00c05aa, 0x05020045, 0x58180409, 0x8c000500, + 0x05000042, 0x42000000, 0x001099e8, 0x50006000, + 0x41781800, 0x5830200b, 0x41300000, 0x80100580, + 0x05000006, 0x40101800, 0x580c2000, 0x801021c0, + 0x05fe07fa, 0x0501f035, 0x4933c857, 0x59302000, + 0x497a6000, 0x800c19c0, 0x0502001e, 0x4933c856, + 0x42007000, 0x00020a09, 0x58300009, 0x800001c0, + 0x05000018, 0x49786009, 0x58380001, 0x80300580, + 0x05020008, 0x4933c856, 0x49787002, 0x4810600b, + 0x801021c0, 0x0502001d, 0x4978600a, 0x0501f01b, + 0x4933c856, 0x4810600b, 0x801021c0, 0x05020002, + 0x4978600a, 0x4c180000, 0x4c300000, 0x05c5fca0, + 0x5c006000, 0x05fdfe09, 0x5c003000, 0x0501f00f, + 0x4933c856, 0x800c19c0, 0x05020008, 0x801021c0, + 0x05000003, 0x4810600b, 0x0501f008, 0x4978600b, + 0x4978600a, 0x0501f005, 0x48101800, 0x801021c0, + 0x05020002, 0x480c600a, 0x58180409, 0x84000500, + 0x48003409, 0x49783209, 0x1c01f000, 0x4933c857, + 0x59368c03, 0x4c180000, 0x59300203, 0x9000348e, + 0x05c21fda, 0x0c01f803, 0x5c003000, 0x1c01f000, + 0x00107a1e, 0x00107e61, 0x00107f66, 0x00107a1e, + 0x00107a1e, 0x00107a1e, 0x00107a1e, 0x00107a1e, + 0x00107a3b, 0x00107a1e, 0x00107a1e, 0x00107a1e, + 0x00107a1e, 0x00107a1e, 0x05c1ffc8, 0x4933c857, + 0x61fe89ff, 0x813669c0, 0x05000002, 0x59368c03, + 0x4c180000, 0x59300203, 0x9000348e, 0x05c21fbf, + 0x0c01f803, 0x5c003000, 0x1c01f000, 0x00107a39, + 0x001081a6, 0x00107a39, 0x00107a39, 0x00107a39, + 0x00107a39, 0x00107a39, 0x00107a39, 0x00108107, + 0x001084fd, 0x00108526, 0x001084fd, 0x00108526, + 0x00107a39, 0x05c1ffad, 0x05c1ffac, 0xb1383497, + 0x05c21faa, 0x41380000, 0x493bc857, 0x4d1c0000, + 0x4d400000, 0x0c01f804, 0x5c028000, 0x5c023800, + 0x1c01f000, 0x00107aa5, 0x00107c39, 0x00107aa5, + 0x00107aa5, 0x00107aa5, 0x00107c3f, 0x00107aa5, + 0x00107aa5, 0x00107aa5, 0x00107aa5, 0x00107aa5, + 0x00107aa5, 0x00107aa5, 0x00107aa5, 0x00107aa5, + 0x00107aa5, 0x00107aa5, 0x00107aa5, 0x00107aa5, + 0x00107aa5, 0x00107aa5, 0x00107aa5, 0x00107aa5, + 0x00107ac6, 0x00107b04, 0x00107b15, 0x00107b74, + 0x00107bb8, 0x00107bee, 0x00107c13, 0x00107aa5, + 0x00107aa5, 0x00107c44, 0x00107aa5, 0x00107aa5, + 0x00107c4d, 0x00107c52, 0x00107aa5, 0x00107aa5, + 0x00107aa5, 0x00107aa5, 0x00107aa5, 0x00107ccf, + 0x00107aa5, 0x00107aa5, 0x00107ba1, 0x00107aa5, + 0x00107aa5, 0x00107ca5, 0x00107aa5, 0x00107aa5, + 0x00107aa5, 0x00107cda, 0x00107aa5, 0x00107aa5, + 0x00107aa5, 0x00107d16, 0x00107aa5, 0x00107aa5, + 0x00107aa5, 0x00107aa5, 0x00107aa5, 0x00107aa5, + 0x00107d6b, 0x00107aa5, 0x00107aa5, 0x00107aa5, + 0x00107aa5, 0x00107aa5, 0x00107aa6, 0x00107aa5, + 0x00107aa5, 0x00107aa5, 0x00107aa5, 0x00107ab0, + 0x00107aa5, 0x00107aa5, 0x00107aa5, 0x00107d92, + 0x00107d97, 0x00107daf, 0x00107aa5, 0x00107aa5, + 0x00107aa5, 0x00107aa5, 0x00107aa5, 0x00107abc, + 0x00107aa5, 0x00107aa5, 0x00107aa5, 0x00107aa5, + 0x00107aa5, 0x00107aa5, 0x00107aa5, 0x00107aa5, + 0x00107aa5, 0x05c1ff41, 0x4933c857, 0x0505faa6, + 0x05020311, 0x05cdff76, 0x0502030f, 0x59cc0407, + 0x4802601e, 0x65166403, 0x64066203, 0x05e9f615, + 0x4933c857, 0x0505fa9c, 0x05020307, 0x05cdff6c, + 0x05020305, 0x0501fb37, 0x05020169, 0x59cc0007, + 0x4802601e, 0x652a6403, 0x64066203, 0x05e9f609, + 0x4933c857, 0x0505fa90, 0x050202fb, 0x05cdff60, + 0x050202f9, 0x0501fb2b, 0x0502015d, 0x655a6403, + 0x64066203, 0x05e9f5ff, 0x4933c857, 0x05cdff58, + 0x0502000b, 0x05e1f8f9, 0x05020009, 0x59a8021b, 0x8c000500, 0x0502000a, 0x8c000506, 0x05020004, - 0x05e1fea6, 0x05020006, 0x0501f2dc, 0x64266403, - 0x6426641c, 0x6402621c, 0x0501f164, 0x05e1fa24, + 0x05e1fe44, 0x05020006, 0x0501f2e7, 0x64266403, + 0x6426641c, 0x6402621c, 0x0501f167, 0x05e1f9a1, 0x05000022, 0x59340200, 0x8c00051a, 0x05000004, - 0x5934000a, 0x84000560, 0x4802680a, 0x0501ffc8, + 0x5934000a, 0x84000560, 0x4802680a, 0x0501ffe1, 0x05020021, 0x60a68000, 0x4d3c0000, 0x417a7800, - 0x0201f800, 0x0010b652, 0x5c027800, 0x42000000, - 0x001097fa, 0x0505fe44, 0x05ddff73, 0x64226403, - 0x600c3000, 0x8d0c0520, 0x0500014c, 0x59cc400b, + 0x0201f800, 0x0010b660, 0x5c027800, 0x42000000, + 0x0010987a, 0x0505fe76, 0x05ddfeea, 0x64226403, + 0x600c3000, 0x8d0c0520, 0x0500014f, 0x59cc400b, 0x59cc380c, 0x59cc180d, 0x59cc080e, 0x9c2041c0, 0x9c1c39c0, 0x9c0c19c0, 0x9c0409c0, 0x641e6203, - 0x41782800, 0x0501f13a, 0x0505f85b, 0x05fe07e4, + 0x41782800, 0x0501f13d, 0x0505f874, 0x05fe07e4, 0x64266403, 0x643a641c, 0x4a02621c, 0x00001900, - 0x0501f13a, 0x64266403, 0x640e641c, 0x0501f137, - 0x4933c857, 0x05cdffb0, 0x050202a8, 0x05e1f940, - 0x050202a6, 0x493a6403, 0x0501ff45, 0x05020006, - 0x641a6403, 0x8d0c0520, 0x0500012c, 0x641e6203, - 0x0505f4a4, 0x641e6403, 0x6426641c, 0x6402621c, - 0x0501f126, 0x4933c857, 0x05e1f931, 0x05020297, + 0x0501f13d, 0x64266403, 0x640e641c, 0x0501f13a, + 0x4933c857, 0x05cdff1a, 0x050202b3, 0x05e1f8bb, + 0x050202b1, 0x493a6403, 0x0501ff5e, 0x05020006, + 0x641a6403, 0x8d0c0520, 0x0500012f, 0x641e6203, + 0x0505f4d6, 0x641e6403, 0x6426641c, 0x6402621c, + 0x0501f129, 0x4933c857, 0x05e1f8ac, 0x050202a2, 0x5934000a, 0x82000500, 0x00010000, 0x82000580, - 0x00010000, 0x05060a10, 0x05cc0f97, 0x0502028f, + 0x00010000, 0x05060a30, 0x05cc0f01, 0x0502029a, 0x59cc0001, 0x82000500, 0x00ffff00, 0x82000580, 0x00fffc00, 0x05020006, 0x59a80006, 0x8c00050e, - 0x05000003, 0x8d0c0520, 0x05000035, 0x05e1f9d0, - 0x05020003, 0x60067800, 0x05ddfe69, 0x05e1f9ba, + 0x05000003, 0x8d0c0520, 0x05000035, 0x05e1f94d, + 0x05020003, 0x60067800, 0x05ddfddd, 0x05e1f937, 0x05000004, 0x82000580, 0x00000703, 0x05020031, 0x59cc0206, 0x90003503, 0x05020033, 0x90003494, 0x05001031, 0x59a83073, 0x80183480, 0x0500102e, 0x5934300a, 0x84183516, 0x90000594, 0x05020002, 0x84183556, 0x481a680a, 0x59cc0406, 0x90000503, - 0x05020025, 0x0501ffad, 0x0502002a, 0x05e1f988, + 0x05020025, 0x0501ffc6, 0x0502002a, 0x05e1f905, 0x05020006, 0x4c600000, 0x4178c000, 0x417a7800, - 0x05cdff03, 0x5c00c000, 0x916c0583, 0x05020006, - 0x60183000, 0x0505fc3b, 0x42000000, 0x001097f9, - 0x0505fdd9, 0x05ddff5f, 0x642a6403, 0x60803000, + 0x05cdfe6d, 0x5c00c000, 0x916c0583, 0x05020006, + 0x60183000, 0x0505fc6d, 0x42000000, 0x00109879, + 0x0505fe0b, 0x05ddfeda, 0x642a6403, 0x60803000, 0x59cc1a0a, 0x41780800, 0x41784000, 0x41783800, - 0x8d0c0520, 0x050000dd, 0x05fdf799, 0x642e6403, - 0x642e641c, 0x4a02621c, 0x00002c00, 0x0501f0d7, + 0x8d0c0520, 0x050000e0, 0x05fdf799, 0x642e6403, + 0x642e641c, 0x4a02621c, 0x00002c00, 0x0501f0da, 0x642e6403, 0x6426641c, 0x4a02621c, 0x00001e00, - 0x0501f0d2, 0x42000000, 0x00109754, 0x0505fdc2, - 0x642e6403, 0x641e641c, 0x6402621c, 0x0501f0cb, - 0x642e6403, 0x640e641c, 0x6402621c, 0x0501f0c7, - 0x4933c857, 0x05e1f8d2, 0x05020238, 0x0505f9b6, - 0x05020236, 0x05cdff3c, 0x05020234, 0x59cc0206, + 0x0501f0d5, 0x42000000, 0x001097d4, 0x0505fdf4, + 0x642e6403, 0x641e641c, 0x6402621c, 0x0501f0ce, + 0x642e6403, 0x640e641c, 0x6402621c, 0x0501f0ca, + 0x4933c857, 0x05e1f84d, 0x05020243, 0x0505f9d6, + 0x05020241, 0x05cdfea6, 0x0502023f, 0x59cc0206, 0x90003503, 0x0502001b, 0x90003494, 0x05001019, 0x59a83073, 0x80180480, 0x05001016, 0x59cc0406, 0x90000503, 0x05020013, 0x59340400, 0x82000580, 0x00000707, 0x05000013, 0x417a7800, 0x4c600000, - 0x4178c000, 0x05cdfec2, 0x5c00c000, 0x60283000, - 0x0505fbfc, 0x42000000, 0x001097f6, 0x0505fd9a, + 0x4178c000, 0x05cdfe2c, 0x5c00c000, 0x60283000, + 0x0505fc2e, 0x42000000, 0x00109876, 0x0505fdcc, 0x64326403, 0x41782800, 0x60843000, 0x05fdf7c5, - 0x64366403, 0x641e641c, 0x6402621c, 0x0501f09f, + 0x64366403, 0x641e641c, 0x6402621c, 0x0501f0a2, 0x64366403, 0x6426641c, 0x4a02621c, 0x00001e00, - 0x0501f09a, 0x4933c857, 0x05e1f8a5, 0x0502020b, - 0x0505f989, 0x05020209, 0x05cdff0f, 0x05020207, - 0x0501fa39, 0x0502000a, 0x493a6403, 0x0501fa3f, + 0x0501f09d, 0x4933c857, 0x05e1f820, 0x05020216, + 0x0505f9a9, 0x05020214, 0x05cdfe79, 0x05020212, + 0x0501fa44, 0x0502000a, 0x493a6403, 0x0501fa4a, 0x05020003, 0x64ba6403, 0x05fdf75f, 0x64366403, - 0x641e641c, 0x6402621c, 0x0501f088, 0x64366403, - 0x6426641c, 0x4a02621c, 0x00001e00, 0x0501f083, - 0x4933c857, 0x05e1f88e, 0x05fe0719, 0x59a8021b, + 0x641e641c, 0x6402621c, 0x0501f08b, 0x64366403, + 0x6426641c, 0x4a02621c, 0x00001e00, 0x0501f086, + 0x4933c857, 0x05e1f809, 0x05fe0719, 0x59a8021b, 0x8c000500, 0x05020005, 0x8c000506, 0x05fe0714, - 0x05e1fdb6, 0x050001ed, 0x05e1f927, 0x05020026, - 0x0501ff35, 0x0502000a, 0x643a6403, 0x8d0c0520, - 0x05000072, 0x61483000, 0x59cc4008, 0x59cc3809, + 0x05e1fd54, 0x050001f8, 0x05e1f8a4, 0x05020026, + 0x0501ff4e, 0x0502000a, 0x643a6403, 0x8d0c0520, + 0x05000075, 0x61483000, 0x59cc4008, 0x59cc3809, 0x59cc180a, 0x59cc080b, 0x05fdf725, 0x4933c857, - 0x600c3000, 0x0505fbc2, 0x4d3c0000, 0x417a7800, - 0x0201f800, 0x0010b652, 0x5c027800, 0x42000000, - 0x001097f8, 0x0505fd54, 0x59340200, 0x84000558, - 0x48026a00, 0x602c0800, 0x05ddfdc4, 0x8d0c0520, - 0x05000056, 0x601c3000, 0x0501f04b, 0x4933c857, + 0x600c3000, 0x0505fbf4, 0x4d3c0000, 0x417a7800, + 0x0201f800, 0x0010b660, 0x5c027800, 0x42000000, + 0x00109878, 0x0505fd86, 0x59340200, 0x84000558, + 0x48026a00, 0x602c0800, 0x05ddfd38, 0x8d0c0520, + 0x05000059, 0x601c3000, 0x0501f04e, 0x4933c857, 0x643e6403, 0x640e641c, 0x4a02621c, 0x00001e00, - 0x0501f052, 0x59340400, 0x82000580, 0x00000703, - 0x05fc07f7, 0x0501f032, 0x4933c857, 0x05e1f858, - 0x050201be, 0x59a8021b, 0x8c000500, 0x05020005, - 0x8c000506, 0x050201b9, 0x05e1fd80, 0x050001b7, - 0x05e1f8e8, 0x05020022, 0x0501ff12, 0x05000eac, + 0x0501f055, 0x59340400, 0x82000580, 0x00000703, + 0x05fc07f7, 0x0501f032, 0x4933c857, 0x05ddffd3, + 0x050201c9, 0x59a8021b, 0x8c000500, 0x05020005, + 0x8c000506, 0x050201c4, 0x05e1fd1e, 0x050001c2, + 0x05e1f865, 0x05020022, 0x0501ff2b, 0x05000ec5, 0x05020004, 0x64426403, 0x61403000, 0x05fdf6ee, - 0x4d3c0000, 0x417a7800, 0x0201f800, 0x0010b652, - 0x5c027800, 0x600c3000, 0x0505fb8d, 0x42000000, - 0x001097f8, 0x0505fd24, 0x59340200, 0x84000558, + 0x4d3c0000, 0x417a7800, 0x0201f800, 0x0010b660, + 0x5c027800, 0x600c3000, 0x0505fbbf, 0x42000000, + 0x00109878, 0x0505fd56, 0x59340200, 0x84000558, 0x48026a00, 0x05fdf7d2, 0x64466403, 0x640e641c, - 0x4a02621c, 0x00001e00, 0x0501f028, 0x4933c857, - 0x05cdfea1, 0x05040918, 0x05020198, 0x0501f9ca, - 0x05020007, 0x644a6403, 0x0501f020, 0x59340400, - 0x82000580, 0x00000703, 0x05fc07f0, 0x4d3c0000, - 0x417a7800, 0x60a68000, 0x0201f800, 0x0010b652, - 0x5c027800, 0x605c3000, 0x0505fb6d, 0x42000000, - 0x001097f8, 0x0505fd04, 0x8d0c0520, 0x0500000b, - 0x60183000, 0x60a68000, 0x4933c857, 0x64066403, - 0x641e6203, 0x41782800, 0x0501f002, 0x611a8000, - 0x0501ff44, 0x0505f37f, 0x4933c857, 0x64066403, - 0x602c0800, 0x05ddfd69, 0x64066203, 0x05e9f495, - 0x4933c857, 0x60240800, 0x05ddfd64, 0x64166403, - 0x05fdf7fa, 0x0505f8ec, 0x0502016c, 0x05cdfe72, - 0x0502016a, 0x0501f99c, 0x05fe07d9, 0x64826403, - 0x64066203, 0x05e9f487, 0x05cdfe6b, 0x05020163, - 0x648e6403, 0x64066203, 0x05e9f482, 0x0505f8de, - 0x05cc0e65, 0x0502015d, 0x0501f98f, 0x05fe07cc, - 0x59cc0807, 0x82040500, 0x00ffff00, 0x05020009, - 0x59340212, 0x82000500, 0x0000ff00, 0x05000005, - 0x59a8000f, 0x82000500, 0x000000ff, 0x0501f002, - 0x59a8000f, 0x82040d00, 0x00ffffff, 0x80040580, - 0x05020012, 0x59cc1408, 0x05fdf884, 0x05000022, - 0x591c0202, 0x82001580, 0x0000ffff, 0x05000004, - 0x59cc1208, 0x80080580, 0x0502001b, 0x591c000a, - 0x81340580, 0x05020018, 0x591c0407, 0x90000587, - 0x05020015, 0x0501f022, 0x59cc1208, 0x82080580, - 0x0000ffff, 0x0500000b, 0x05fdf870, 0x0500000e, - 0x59cc1408, 0x591c0202, 0x80080580, 0x0502001e, - 0x591c000a, 0x81340580, 0x0502001b, 0x0501f00e, - 0x59cc1408, 0x41780000, 0x0501fcc4, 0x05fe07f9, - 0x0501f013, 0x649a6403, 0x4a02621c, 0x00001700, - 0x59cc1208, 0x82081580, 0x0000ffff, 0x05fe07ab, - 0x0501f00b, 0x591c0407, 0x90000587, 0x05fe07f6, - 0x591c0403, 0x900005a4, 0x05020005, 0x4d300000, - 0x411e6000, 0x0005f8e7, 0x5c026000, 0x64966403, - 0x05fdf79e, 0x59cc1408, 0x41780000, 0x0501fcab, - 0x05fe07e9, 0x05fdf7fa, 0x4933c857, 0x4d3c0000, - 0x60067800, 0x05ddfcf2, 0x5c027800, 0x4c580000, - 0x6008b000, 0x91a81c02, 0x91cc140b, 0x05f5fb9a, - 0x5c00b000, 0x05000003, 0x64c66403, 0x05fdf78b, - 0x0005f8e7, 0x6008b000, 0x91a81c00, 0x91cc140d, - 0x05f5fb91, 0x0502000c, 0x05e9f817, 0x0500000a, - 0x59300407, 0x90000581, 0x05020007, 0x59300403, - 0x90000582, 0x05020004, 0x5930000a, 0x81340580, - 0x000408e7, 0x05e1fcb5, 0x05020009, 0x05e1fcc9, - 0x05020005, 0x64075014, 0x6006d800, 0x05e1fc2d, - 0x0501f003, 0x60040000, 0x05e1fc80, 0x1c01f000, - 0x05cdfde9, 0x050200e1, 0x0501f913, 0x05fe0750, - 0x493a6403, 0x0501f962, 0x05020003, 0x64ae6403, - 0x05fdf766, 0x64b26403, 0x05fdf764, 0x4933c857, - 0x05e9f8cf, 0x050200d5, 0x05cdfddb, 0x050200d3, - 0x05ddfff3, 0x05fe0759, 0x59cc0408, 0x4802641b, - 0x59cc0208, 0x4802621b, 0x59cc0807, 0x59340002, - 0x82000500, 0x00ffffff, 0x80040580, 0x05000011, - 0x59a8000f, 0x80040580, 0x0502001e, 0x59cc1408, - 0x05f9fffe, 0x05000020, 0x831c0580, 0xffffffff, - 0x05000005, 0x0501ff8e, 0x0500001b, 0x0505fa83, - 0x05000019, 0x491e6020, 0x64da6403, 0x0501f0b3, - 0x59cc1208, 0x82080580, 0x0000ffff, 0x05000008, - 0x05f9ffee, 0x05000010, 0x591c0202, 0x59cc0c08, - 0x80040580, 0x0502000c, 0x05fdf7ec, 0x59cc1408, - 0x60040000, 0x0501fc45, 0x05000007, 0x05fdf7e7, - 0x4803c856, 0x6426641c, 0x4a02621c, 0x00001500, + 0x4a02621c, 0x00001e00, 0x0501f02b, 0x4933c857, + 0x05cdfe0b, 0x05040938, 0x050201a3, 0x0501f9d5, + 0x05020007, 0x644a6403, 0x0501f023, 0x59340400, + 0x82000580, 0x00000703, 0x05fc07f0, 0x83340580, + 0x0010993e, 0x05000009, 0x4d3c0000, 0x417a7800, + 0x60a68000, 0x0201f800, 0x0010b660, 0x5c027800, + 0x605c3000, 0x0505fb9c, 0x42000000, 0x00109878, + 0x0505fd33, 0x8d0c0520, 0x0500000b, 0x60183000, + 0x60a68000, 0x4933c857, 0x64066403, 0x641e6203, + 0x41782800, 0x0501f002, 0x611a8000, 0x0501ff5a, + 0x0505f3ae, 0x4933c857, 0x64066403, 0x602c0800, + 0x05ddfcda, 0x64066203, 0x05e9f486, 0x4933c857, + 0x60240800, 0x05ddfcd5, 0x64166403, 0x05fdf7fa, + 0x0505f909, 0x05020174, 0x05cdfdd9, 0x05020172, + 0x0501f9a4, 0x05fe07d6, 0x64826403, 0x64066203, + 0x05e9f478, 0x05cdfdd2, 0x0502016b, 0x648e6403, + 0x64066203, 0x05e9f473, 0x0505f8fb, 0x05cc0dcc, + 0x05020165, 0x0501f997, 0x05fe07c9, 0x59cc0807, + 0x82040500, 0x00ffff00, 0x05020009, 0x59340212, + 0x82000500, 0x0000ff00, 0x05000005, 0x59a8000f, + 0x82000500, 0x000000ff, 0x0501f002, 0x59a8000f, + 0x82040d00, 0x00ffffff, 0x80040580, 0x05020012, + 0x59cc1408, 0x05fdf87f, 0x05000022, 0x591c0202, + 0x82001580, 0x0000ffff, 0x05000004, 0x59cc1208, + 0x80080580, 0x0502001b, 0x591c000a, 0x81340580, + 0x05020018, 0x591c0407, 0x90000587, 0x05020015, + 0x0501f022, 0x59cc1208, 0x82080580, 0x0000ffff, + 0x0500000b, 0x05fdf86b, 0x0500000e, 0x59cc1408, + 0x591c0202, 0x80080580, 0x0502001e, 0x591c000a, + 0x81340580, 0x0502001b, 0x0501f00e, 0x59cc1408, + 0x41780000, 0x0501fcd2, 0x05fe07f9, 0x0501f013, + 0x649a6403, 0x4a02621c, 0x00001700, 0x59cc1208, + 0x82081580, 0x0000ffff, 0x05fe07ab, 0x0501f00b, + 0x591c0407, 0x90000587, 0x05fe07f6, 0x591c0403, + 0x900005a4, 0x05020005, 0x4d300000, 0x411e6000, + 0x0005f8e7, 0x5c026000, 0x64966403, 0x05fdf79e, + 0x59cc1408, 0x41780000, 0x0501fcb9, 0x05fe07e9, + 0x05fdf7fa, 0x4933c857, 0x4d3c0000, 0x60067800, + 0x05ddfc63, 0x5c027800, 0x4c580000, 0x6008b000, + 0x91a81c02, 0x91cc140b, 0x05f5fb89, 0x5c00b000, + 0x05000003, 0x64c66403, 0x05fdf78b, 0x0005f8e7, + 0x6008b000, 0x91a81c00, 0x91cc140d, 0x05f5fb80, + 0x0502000c, 0x05e5ffd5, 0x0500000a, 0x59300407, + 0x90000581, 0x05020007, 0x59300403, 0x90000582, + 0x05020004, 0x5930000a, 0x81340580, 0x000408e7, + 0x05e1fc50, 0x05020009, 0x05e1fc64, 0x05020005, + 0x64075014, 0x6006d800, 0x05e1fbc8, 0x0501f003, + 0x60040000, 0x05e1fc1b, 0x1c01f000, 0x05cdfd50, + 0x050200e9, 0x0501f91b, 0x05fe074d, 0x493a6403, + 0x0501f96a, 0x05020003, 0x64ae6403, 0x05fdf766, + 0x64b26403, 0x05fdf764, 0x4933c857, 0x05e9f88d, + 0x050200dd, 0x05cdfd42, 0x050200db, 0x05ddff6d, + 0x05fe073f, 0x59cc0408, 0x4802641b, 0x59cc0208, + 0x4802621b, 0x59cc0807, 0x59340002, 0x82000500, + 0x00ffffff, 0x80040580, 0x05000011, 0x59a8000f, + 0x80040580, 0x0502001e, 0x59cc1408, 0x05f9fff9, + 0x05000020, 0x831c0580, 0xffffffff, 0x05000005, + 0x0501ffab, 0x0500001b, 0x0505fab2, 0x05000019, + 0x491e6020, 0x64da6403, 0x0501f0bb, 0x59cc1208, + 0x82080580, 0x0000ffff, 0x05000008, 0x05f9ffe9, + 0x05000010, 0x591c0202, 0x59cc0c08, 0x80040580, + 0x0502000c, 0x05fdf7ec, 0x59cc1408, 0x60040000, + 0x0501fc53, 0x05000007, 0x05fdf7e7, 0x4803c856, + 0x6426641c, 0x4a02621c, 0x00001500, 0x0501f005, + 0x4803c856, 0x640e641c, 0x4a02621c, 0x00001700, + 0x64de6403, 0x0501f0a0, 0x4933c857, 0x05e9f851, + 0x050200a1, 0x05cdfd06, 0x0502009f, 0x05ddff31, + 0x05fe0703, 0x05ddfe89, 0x05000045, 0x59cc0407, + 0x4802641b, 0x59cc1207, 0x480a621b, 0x82080580, + 0x0000ffff, 0x05000004, 0x05f9ffc2, 0x05000036, + 0x0501f008, 0x59cc1407, 0x60040000, 0x0501fc30, + 0x05000031, 0x831c0580, 0xffffffff, 0x0500002e, + 0x59cc0c07, 0x591c0202, 0x80040580, 0x0502002a, + 0x0505fa74, 0x05000028, 0x591c0416, 0x8c000516, + 0x0502002f, 0x4d300000, 0x411e6000, 0x05f9f8ff, + 0x5c026000, 0x641e3a03, 0x59cc0c09, 0x82040d00, + 0x0000ff00, 0x840409c0, 0x90040581, 0x05000009, + 0x90040585, 0x0500000b, 0x90040587, 0x05020011, + 0x42000000, 0x00109865, 0x0505fc15, 0x0501f008, + 0x42000000, 0x00109864, 0x0505fc11, 0x0501f007, + 0x42000000, 0x00109863, 0x0505fc0d, 0x591c0009, + 0x80000540, 0x05000003, 0x59cc2808, 0x0501f75a, + 0x4803c856, 0x6426641c, 0x4a02621c, 0x00002a00, 0x0501f005, 0x4803c856, 0x640e641c, 0x4a02621c, - 0x00001700, 0x64de6403, 0x0501f098, 0x4933c857, - 0x05e9f893, 0x05020099, 0x05cdfd9f, 0x05020097, - 0x05ddffb7, 0x05fe071d, 0x05ddff11, 0x05000045, - 0x59cc0407, 0x4802641b, 0x59cc1207, 0x480a621b, - 0x82080580, 0x0000ffff, 0x05000004, 0x05f9ffc7, - 0x05000036, 0x0501f008, 0x59cc1407, 0x60040000, - 0x0501fc22, 0x05000031, 0x831c0580, 0xffffffff, - 0x0500002e, 0x59cc0c07, 0x591c0202, 0x80040580, - 0x0502002a, 0x0505fa45, 0x05000028, 0x591c0416, - 0x8c000516, 0x0502002f, 0x4d300000, 0x411e6000, - 0x05f9f907, 0x5c026000, 0x641e3a03, 0x59cc0c09, - 0x82040d00, 0x0000ff00, 0x840409c0, 0x90040581, - 0x05000009, 0x90040585, 0x0500000b, 0x90040587, - 0x05020011, 0x42000000, 0x001097e5, 0x0505fbe6, - 0x0501f008, 0x42000000, 0x001097e4, 0x0505fbe2, - 0x0501f007, 0x42000000, 0x001097e3, 0x0505fbde, - 0x591c0009, 0x80000540, 0x05000003, 0x59cc2808, - 0x0501f73d, 0x4803c856, 0x6426641c, 0x4a02621c, - 0x00002a00, 0x0501f005, 0x4803c856, 0x640e641c, - 0x4a02621c, 0x00000300, 0x64ee6403, 0x0501f04b, - 0x4803c856, 0x642e641c, 0x6402621c, 0x05fdf7fb, - 0x4803c856, 0x641e641c, 0x6402621c, 0x05fdf7f7, - 0x4c080000, 0x05ddfede, 0x0500001f, 0x05ddfeb5, - 0x0505f819, 0x0502001a, 0x59a8021b, 0x90000543, - 0x4803521b, 0x59a80018, 0x800000d0, 0x59a8080f, - 0x82040d00, 0x000000ff, 0x80041540, 0x480b500f, - 0x600c0800, 0x05e9fc81, 0x497b501d, 0x8d0c0520, - 0x05000006, 0x4a032804, 0x000007d0, 0x599c0017, - 0x8c00050a, 0x05020008, 0x0005f8e7, 0x0201f800, - 0x0010b83b, 0x5c001000, 0x1c01f000, 0x0505f818, - 0x05fdf7fd, 0x5c001000, 0x0005f0e7, 0x0501f825, - 0x05000022, 0x653a6403, 0x64066203, 0x05e9f341, - 0x653e6403, 0x497a601e, 0x59cc0a06, 0x82040d00, - 0x000000ff, 0x800409c0, 0x05fc06a4, 0x90040581, - 0x05020005, 0x59cc0808, 0x59a80005, 0x80040580, - 0x05fc069e, 0x90040582, 0x05020006, 0x91cc140b, - 0x6008b000, 0x91341c06, 0x05f5faa3, 0x05fc0697, - 0x6406601e, 0x05fdf695, 0x65426403, 0x59cc0207, - 0x4802601e, 0x05fdf691, 0x64066203, 0x42000800, - 0x80000040, 0x0005f07c, 0x4803c857, 0x0005f0e7, - 0x4d2c0000, 0x4c500000, 0x4c580000, 0x4c540000, - 0x59a80073, 0x82000c80, 0x00000841, 0x05021021, - 0x05c5f835, 0x0500001f, 0x492e6009, 0x59a80073, - 0x48025802, 0x90000403, 0x80000104, 0x91cca406, - 0x90000c8a, 0x05001010, 0x642a5811, 0x6028b000, - 0x912c0406, 0x4000a800, 0x0505fc31, 0x412c7000, - 0x800409c0, 0x05020003, 0x49787001, 0x0501f00b, - 0x05c5f821, 0x0500000b, 0x492c7001, 0x40040000, - 0x05fdf7f0, 0x48025811, 0x4000b000, 0x912c0406, - 0x4000a800, 0x0505fc22, 0x90000541, 0x0501f005, - 0x497b5073, 0x59325809, 0x05c5f83f, 0x80000580, - 0x5c00a800, 0x5c00b000, 0x5c00a000, 0x5c025800, - 0x1c01f000, 0x4d340000, 0x5932680a, 0x59343400, - 0x4933c857, 0x4937c857, 0x481bc857, 0x05ddfef9, - 0x5c026800, 0x1c01f000, 0x4933c857, 0x4c600000, - 0x4d3c0000, 0x4d440000, 0x4d340000, 0x0501f84d, - 0x0502003b, 0x59cc0207, 0x82000d00, 0x0000ff00, - 0x900411c0, 0x59cc000a, 0x82000500, 0x00ffffff, - 0x80081540, 0x480a601e, 0x8c040518, 0x05000010, - 0x60203000, 0x0505f989, 0x42000000, 0x001097f7, - 0x0505fb2d, 0x8d0c0520, 0x05000005, 0x60082800, - 0x60903000, 0x611a8000, 0x0501fd72, 0x6004c000, - 0x417a7800, 0x05cdfc46, 0x0501f023, 0x8c04051a, - 0x0500001f, 0x59cc000a, 0x05e5fdd3, 0x00000ac4, - 0x0502001b, 0x5930000a, 0x4c000000, 0x8d0c0520, - 0x0500000b, 0x59340c03, 0x59341802, 0x820c1d00, - 0x00ffffff, 0x58002403, 0x60102800, 0x60903000, - 0x611a8000, 0x41301000, 0x0501fd68, 0x4936600a, - 0x60243000, 0x0505f96b, 0x42000000, 0x001097f7, - 0x0505fb09, 0x417a7800, 0x4178c000, 0x05cdfc28, - 0x5c000000, 0x4802600a, 0x0501f003, 0x90000541, - 0x0501f002, 0x80000580, 0x5c026800, 0x5c028800, - 0x5c027800, 0x5c00c000, 0x1c01f000, 0x4933c857, - 0x59cc0206, 0x90000490, 0x05021004, 0x6402621c, - 0x90000541, 0x0501f002, 0x80000580, 0x1c01f000, - 0x4933c857, 0x6402621c, 0x59cc0407, 0x82000500, - 0x0000ff00, 0x82000580, 0x00000800, 0x0502000d, - 0x59cc0206, 0x59a80873, 0x80040480, 0x0500100a, - 0x59cc0006, 0x82000500, 0x00ff0000, 0x82000d80, - 0x00140000, 0x05000003, 0x82000d80, 0x00100000, - 0x1c01f000, 0x42000000, 0x001097ec, 0x0505fada, - 0x90000541, 0x05fdf7fb, 0x59300403, 0xb0003497, - 0x05c21c26, 0x91383593, 0x05020006, 0x4803c857, - 0x4c000000, 0x0505fa00, 0x5c000000, 0x0c01f00f, - 0x4933c857, 0x493bc857, 0x913835a7, 0x05000003, - 0x91383594, 0x05c20c19, 0x493bc857, 0x4937c857, - 0x0505f9f3, 0x05ddfdb7, 0x601c0800, 0x05ddfb37, - 0x05e9fac9, 0x05f1f000, 0x00107e36, 0x00107e3c, - 0x00107e36, 0x00107e36, 0x00107e36, 0x00107e3c, - 0x00107e45, 0x00107eb4, 0x00107e80, 0x00107eb4, - 0x00107e8f, 0x00107eb4, 0x00107e94, 0x00107eb4, - 0x00107e97, 0x00107eb4, 0x00107e97, 0x00107eb4, - 0x00107eb4, 0x00107e36, 0x00107e36, 0x00107e36, - 0x00107e36, 0x00107e36, 0x00107e36, 0x00107e36, - 0x00107e36, 0x00107e36, 0x00107e36, 0x00107e36, - 0x00107e3c, 0x00107e36, 0x00107eb4, 0x00107e36, - 0x00107e36, 0x00107eb4, 0x00107e36, 0x00107eb4, - 0x00107eb4, 0x00107e36, 0x00107e36, 0x00107e36, - 0x00107e36, 0x00107eb4, 0x00107eb4, 0x00107e36, - 0x00107eb4, 0x00107eb4, 0x00107e36, 0x00107e40, - 0x00107e36, 0x00107e36, 0x00107e36, 0x00107e36, - 0x00107e99, 0x00107eb4, 0x00107e36, 0x00107e36, - 0x00107e9a, 0x00107eb4, 0x00107e36, 0x00107e36, - 0x00107e36, 0x00107e36, 0x00107e36, 0x00107e36, - 0x00107e36, 0x00107e36, 0x00107e36, 0x00107e37, - 0x00107e36, 0x00107e36, 0x00107e36, 0x00107e36, - 0x00107e37, 0x00107e36, 0x00107e36, 0x00107e36, - 0x00107e37, 0x00107e37, 0x00107e37, 0x00107e36, - 0x00107e36, 0x00107e36, 0x00107e36, 0x00107e36, - 0x00107e37, 0x00107e36, 0x00107e36, 0x00107e36, - 0x00107e36, 0x00107e36, 0x00107e36, 0x00107e36, - 0x00107e36, 0x00107e36, 0x05c1fbb0, 0x4d2c0000, - 0x59325809, 0x05c1ff48, 0x5c025800, 0x0005f0e7, - 0x59a8002a, 0x48026006, 0x640a6203, 0x1c01f000, - 0x4d3c0000, 0x417a7800, 0x05ddfabd, 0x5c027800, - 0x0501f070, 0x05ddfe0c, 0x0500006e, 0x59a8021b, - 0x8c000508, 0x0500000e, 0x5932680a, 0x4c580000, - 0x6008b000, 0x91a81c02, 0x91341406, 0x05f5f95e, - 0x80000540, 0x5c00b000, 0x05020062, 0x59340200, - 0x8400051a, 0x48026a00, 0x0501f01f, 0x599c0017, - 0x8c00050a, 0x0502005b, 0x4d3c0000, 0x417a7800, - 0x05ddfaa3, 0x5c027800, 0x601c0800, 0x05ddfaab, - 0x59340212, 0x82000500, 0x0000ff00, 0x05020009, - 0x83440d80, 0x000007fe, 0x0502004e, 0x4d300000, - 0x02000800, 0x0010b6da, 0x5c026000, 0x0501f049, - 0x599c0019, 0x8c00050e, 0x05020046, 0x416c0000, - 0x90000582, 0x05020004, 0x59a80016, 0x80000000, - 0x48035016, 0x600c0800, 0x05ddfa94, 0x64066407, - 0x64066203, 0x640a6403, 0x05e9f9be, 0x4ce80000, - 0x6005d000, 0x05e5ff1f, 0x5c01d000, 0x1c01f000, - 0x59340200, 0x8400051a, 0x48026a00, 0x05ddfdc5, - 0x05000030, 0x60100800, 0x05ddfa84, 0x0505f88c, - 0x0502002c, 0x60140800, 0x05ddfa80, 0x64066407, - 0x64066203, 0x640e6403, 0x05e9f1aa, 0x05ddfdc2, - 0x05020024, 0x60180800, 0x0501f823, 0x0501f021, - 0x60100800, 0x05ddfa75, 0x05fdf7b1, 0x05ddfcf1, - 0x0501f01c, 0x0501f01b, 0x59300820, 0x4807c857, - 0x800409c0, 0x05000017, 0x5804001e, 0x81300580, - 0x05020014, 0x4978081e, 0x58041416, 0x8c080516, - 0x05000010, 0x8c080514, 0x0500000e, 0x84081516, - 0x48080c16, 0x58065809, 0x812e59c0, 0x05000009, - 0x492fc857, 0x4d300000, 0x40066000, 0x641e6203, - 0x417a7800, 0x0005f843, 0x5c026000, 0x0501f001, - 0x0005f0e7, 0x4933c857, 0x4807c857, 0x05ddfa53, - 0x4d3c0000, 0x417a7800, 0x05ddfa45, 0x5c027800, - 0x5934000a, 0x84000520, 0x4802680a, 0x05ddf4c9, - 0x59340400, 0x4803c857, 0x80000110, 0x9000348c, - 0x05c21b22, 0x91383595, 0x05020002, 0x0c01f004, - 0x91383596, 0x05c20b1d, 0x0c01f00d, 0x0010645e, - 0x0010645e, 0x0010645e, 0x0010645e, 0x0010645e, - 0x0010645e, 0x00107f04, 0x00107ee3, 0x0010645e, - 0x0010645e, 0x0010645e, 0x0010645e, 0x0010645e, - 0x0010645e, 0x0010645e, 0x0010645e, 0x0010645e, - 0x0010645e, 0x00107f04, 0x00107f09, 0x0010645e, - 0x0010645e, 0x0010645e, 0x0010645e, 0x4933c857, - 0x599c0017, 0x8c00050a, 0x05020014, 0x813669c0, - 0x05000012, 0x59340212, 0x82000500, 0x0000ff00, - 0x0500000e, 0x599c0019, 0x8c00050e, 0x0502000b, - 0x4d3c0000, 0x417a7800, 0x05ddfa0d, 0x5c027800, - 0x600c0800, 0x05ddfa15, 0x64066407, 0x64066203, - 0x640a6403, 0x05e9f13f, 0x59cc0001, 0x59340802, - 0x80040580, 0x82000500, 0x00ffffff, 0x000600e7, - 0x59345002, 0x05d9fffd, 0x482a6802, 0x0005f0e7, - 0x4933c857, 0x59303403, 0x9018359e, 0x000400e7, - 0x1c01f000, 0x4933c857, 0x05f1ffe4, 0x000600e7, - 0x64066203, 0x64066403, 0x05e9f12a, 0x493bc857, - 0xb1380591, 0x05020007, 0x05e9fd67, 0x05ee0727, - 0x59300203, 0x90000582, 0x0500004b, 0x05c1facf, - 0x913805a7, 0x0500000c, 0xb1380588, 0x05000004, - 0x91380594, 0x05000008, 0x05c20ac8, 0x05e9fd5a, - 0x05ee071a, 0x59300203, 0x90000584, 0x000401be, - 0x05c1fac2, 0x4933c857, 0x59300403, 0xb0000c84, - 0x05c21abe, 0xb0000480, 0x05c01abc, 0x40027000, - 0x4803c857, 0x0c01f001, 0x00107f32, 0x00107f33, - 0x00107f33, 0x00107f49, 0x05c1fab4, 0x05e9f96a, - 0x59325809, 0x812e59c0, 0x05000012, 0x832c0500, - 0x00ff0000, 0x0500000f, 0x640a6203, 0x5932680a, - 0x59340200, 0x8c00050e, 0x0502000a, 0x60128000, - 0x0501fb8c, 0x497a6009, 0x59300006, 0x80000540, - 0x05020003, 0x59a8002b, 0x48026006, 0x641e6203, - 0x1c01f000, 0x05e9f954, 0x05f9f99a, 0x05ec068a, - 0x59325809, 0x05c1fe2b, 0x05edf687, 0x05c1fa97, - 0x59325809, 0x592c040b, 0x8c000502, 0x05000004, - 0x641e6203, 0x610e7000, 0x0005f105, 0x64126203, - 0x1c01f000, 0x0501fd41, 0x000401bc, 0x1c01f000, - 0x64066203, 0x65066403, 0x42027800, 0x80002042, - 0x0005f07c, 0xb1380591, 0x05000004, 0xb1380581, - 0x05c20a82, 0x1c01f000, 0x0005f853, 0x0501fd6a, - 0x0005f0e7, 0xb1380492, 0x05c21a7c, 0xb1380489, - 0x05c01a7a, 0x0c01f001, 0x00107f78, 0x00107f97, - 0x00107f77, 0x00107f77, 0x00107f77, 0x00107f77, - 0x00107f97, 0x00107f77, 0x00107fb4, 0x05c1fa6f, - 0x59325809, 0x592c040b, 0x8c00051e, 0x05000010, - 0x82000d00, 0x000000c0, 0x82040d80, 0x00000080, - 0x0500000e, 0x59300804, 0x8c040518, 0x0502000b, - 0x59300416, 0x8c000516, 0x05000003, 0x641e6203, - 0x0501f00e, 0x61067000, 0x0005f1da, 0x641e6203, - 0x497a6006, 0x0005f053, 0x59325809, 0x592c0c0b, - 0x8c04051a, 0x05020003, 0x0005f853, 0x0005f0e7, - 0x0501fd06, 0x05fc07fd, 0x1c01f000, 0x05e9f8e9, - 0x59325809, 0x5932680a, 0x59340200, 0x8c00050e, - 0x0500000d, 0x592c040b, 0x82000500, 0x000000c0, - 0x82000580, 0x00000080, 0x05000005, 0x592c0010, - 0x59301817, 0x800c1c80, 0x480e6017, 0x640a6203, - 0x0501f00b, 0x60128000, 0x0501fb22, 0x59300006, - 0x80000540, 0x05020004, 0x59a8002b, 0x800000c2, - 0x48026006, 0x497a6009, 0x641e6203, 0x1c01f000, - 0x4933c857, 0x05e9fcc4, 0x05c20a30, 0x59300203, - 0x90000582, 0x05fc07a8, 0x05c1fa2c, 0x641e6203, - 0x497a6006, 0x0005f053, 0x641e6203, 0x497a6006, - 0x0005f04e, 0x59300416, 0x8c00051c, 0x000601c9, - 0x59325809, 0x592c2010, 0x40080000, 0x80102480, - 0x59300017, 0x80102400, 0x48126017, 0x0005f1c9, - 0x8c04050e, 0x05020007, 0x641a6203, 0x0501f818, - 0x59300021, 0x80000540, 0x05c60a55, 0x0005f04e, - 0x640a6203, 0x1c01f000, 0x60040800, 0x05c5fa50, - 0x90040581, 0x000401ce, 0x05fdf7e4, 0x59300416, - 0x8c00051c, 0x05000004, 0x05c5f86e, 0x000401c3, - 0x1c01f000, 0x59300013, 0x80000540, 0x05020003, - 0x05c5f868, 0x000401c3, 0x1c01f000, 0x492fc857, - 0x480bc857, 0x8c08053e, 0x05000005, 0x80081080, - 0x80081000, 0x60240800, 0x0501f002, 0x60540800, - 0x480a580c, 0x1c01f000, 0x91380593, 0x05000003, - 0x91380594, 0x05c209f1, 0x59300416, 0x8c000516, - 0x05c009ee, 0x1c01f000, 0x05c1f9ec, 0x59300009, - 0x80000540, 0x05c209e9, 0x1c01f000, 0x59300416, - 0x8c000516, 0x05c009e5, 0x1c01f000, 0x64126203, + 0x00000300, 0x64ee6403, 0x0501f053, 0x4803c856, + 0x642e641c, 0x6402621c, 0x05fdf7fb, 0x4803c856, + 0x641e641c, 0x6402621c, 0x05fdf7f7, 0x59cc0001, + 0x82000580, 0x00fffffe, 0x0502004b, 0x4c080000, + 0x05ddfe52, 0x0500001f, 0x05ddfe29, 0x0505f832, + 0x0502001a, 0x59a8021b, 0x90000543, 0x4803521b, + 0x59a80018, 0x800000d0, 0x59a8080f, 0x82040d00, + 0x000000ff, 0x80041540, 0x480b500f, 0x600c0800, + 0x05e9fc6e, 0x497b501d, 0x8d0c0520, 0x05000006, + 0x4a032804, 0x000007d0, 0x599c0017, 0x8c00050a, + 0x05020008, 0x0005f8e7, 0x0201f800, 0x0010b84b, + 0x5c001000, 0x1c01f000, 0x0505f831, 0x05fdf7fd, + 0x5c001000, 0x0005f0e7, 0x0501f829, 0x05000026, + 0x653a6403, 0x64066203, 0x05e9f32e, 0x05ddfec6, + 0x05fe0687, 0x653e6403, 0x497a601e, 0x59cc0a06, + 0x82040d00, 0x000000ff, 0x800409c0, 0x05fc069e, + 0x90040581, 0x05020005, 0x59cc0808, 0x59a80005, + 0x80040580, 0x05fc0698, 0x90040582, 0x05020006, + 0x91cc140b, 0x6008b000, 0x91341c06, 0x05f5fa8c, + 0x05fc0691, 0x6406601e, 0x05fdf68f, 0x05ddfeae, + 0x05fe066f, 0x65426403, 0x59cc0207, 0x4802601e, + 0x05fdf689, 0x64066203, 0x42000800, 0x80000040, + 0x0005f07c, 0x4803c857, 0x0005f0e7, 0x4d2c0000, + 0x4c500000, 0x4c580000, 0x4c540000, 0x59a80073, + 0x82000c80, 0x00000841, 0x05021021, 0x05c1ff92, + 0x0500001f, 0x492e6009, 0x59a80073, 0x48025802, + 0x90000403, 0x80000104, 0x91cca406, 0x90000c8a, + 0x05001010, 0x642a5811, 0x6028b000, 0x912c0406, + 0x4000a800, 0x0505fc58, 0x412c7000, 0x800409c0, + 0x05020003, 0x49787001, 0x0501f00b, 0x05c1ff7e, + 0x0500000b, 0x492c7001, 0x40040000, 0x05fdf7f0, + 0x48025811, 0x4000b000, 0x912c0406, 0x4000a800, + 0x0505fc49, 0x90000541, 0x0501f005, 0x497b5073, + 0x59325809, 0x05c1ff9c, 0x80000580, 0x5c00a800, + 0x5c00b000, 0x5c00a000, 0x5c025800, 0x1c01f000, + 0x4d340000, 0x5932680a, 0x59343400, 0x4933c857, + 0x4937c857, 0x481bc857, 0x05ddfe6b, 0x5c026800, + 0x1c01f000, 0x4933c857, 0x4c600000, 0x4d3c0000, + 0x4d440000, 0x4d340000, 0x0501f84d, 0x0502003b, + 0x59cc0207, 0x82000d00, 0x0000ff00, 0x900411c0, + 0x59cc000a, 0x82000500, 0x00ffffff, 0x80081540, + 0x480a601e, 0x8c040518, 0x05000010, 0x60203000, + 0x0505f9b0, 0x42000000, 0x00109877, 0x0505fb54, + 0x8d0c0520, 0x05000005, 0x60082800, 0x60903000, + 0x611a8000, 0x0501fd80, 0x6004c000, 0x417a7800, + 0x05cdfba5, 0x0501f023, 0x8c04051a, 0x0500001f, + 0x59cc000a, 0x05e5fd89, 0x00000ac4, 0x0502001b, + 0x5930000a, 0x4c000000, 0x8d0c0520, 0x0500000b, + 0x59340c03, 0x59341802, 0x820c1d00, 0x00ffffff, + 0x58002403, 0x60102800, 0x60903000, 0x611a8000, + 0x41301000, 0x0501fd76, 0x4936600a, 0x60243000, + 0x0505f992, 0x42000000, 0x00109877, 0x0505fb30, + 0x417a7800, 0x4178c000, 0x05cdfb87, 0x5c000000, + 0x4802600a, 0x0501f003, 0x90000541, 0x0501f002, + 0x80000580, 0x5c026800, 0x5c028800, 0x5c027800, + 0x5c00c000, 0x1c01f000, 0x4933c857, 0x59cc0206, + 0x90000490, 0x05021004, 0x6402621c, 0x90000541, + 0x0501f002, 0x80000580, 0x1c01f000, 0x4933c857, + 0x6402621c, 0x59cc0407, 0x82000500, 0x0000ff00, + 0x82000580, 0x00000800, 0x0502000d, 0x59cc0206, + 0x59a80873, 0x80040480, 0x0500100a, 0x59cc0006, + 0x82000500, 0x00ff0000, 0x82000d80, 0x00140000, + 0x05000003, 0x82000d80, 0x00100000, 0x1c01f000, + 0x42000000, 0x0010986c, 0x0505fb01, 0x90000541, + 0x05fdf7fb, 0x59300403, 0xb0003497, 0x05c21b83, + 0x91383593, 0x05020006, 0x4803c857, 0x4c000000, + 0x0505fa27, 0x5c000000, 0x0c01f00f, 0x4933c857, + 0x493bc857, 0x913835a7, 0x05000003, 0x91383594, + 0x05c20b76, 0x493bc857, 0x4937c857, 0x0505fa1a, + 0x05ddfd27, 0x601c0800, 0x05ddfaa0, 0x05e9fab2, + 0x05edf7d5, 0x00107ed9, 0x00107edf, 0x00107ed9, + 0x00107ed9, 0x00107ed9, 0x00107edf, 0x00107ee8, + 0x00107f5a, 0x00107f26, 0x00107f5a, 0x00107f35, + 0x00107f5a, 0x00107f3a, 0x00107f5a, 0x00107f3d, + 0x00107f5a, 0x00107f3d, 0x00107f5a, 0x00107f5a, + 0x00107ed9, 0x00107ed9, 0x00107ed9, 0x00107ed9, + 0x00107ed9, 0x00107ed9, 0x00107ed9, 0x00107ed9, + 0x00107ed9, 0x00107ed9, 0x00107ed9, 0x00107edf, + 0x00107ed9, 0x00107f5a, 0x00107ed9, 0x00107ed9, + 0x00107f5a, 0x00107ed9, 0x00107f5a, 0x00107f5a, + 0x00107ed9, 0x00107ed9, 0x00107ed9, 0x00107ed9, + 0x00107f5a, 0x00107f5a, 0x00107ed9, 0x00107f5a, + 0x00107f5a, 0x00107ed9, 0x00107ee3, 0x00107ed9, + 0x00107ed9, 0x00107ed9, 0x00107ed9, 0x00107f3f, + 0x00107f5a, 0x00107ed9, 0x00107ed9, 0x00107f40, + 0x00107f5a, 0x00107ed9, 0x00107ed9, 0x00107ed9, + 0x00107ed9, 0x00107ed9, 0x00107ed9, 0x00107ed9, + 0x00107ed9, 0x00107ed9, 0x00107eda, 0x00107ed9, + 0x00107ed9, 0x00107ed9, 0x00107ed9, 0x00107eda, + 0x00107ed9, 0x00107ed9, 0x00107ed9, 0x00107eda, + 0x00107eda, 0x00107eda, 0x00107ed9, 0x00107ed9, + 0x00107ed9, 0x00107ed9, 0x00107ed9, 0x00107eda, + 0x00107ed9, 0x00107ed9, 0x00107ed9, 0x00107ed9, + 0x00107ed9, 0x00107ed9, 0x00107ed9, 0x00107ed9, + 0x00107ed9, 0x05c1fb0d, 0x4d2c0000, 0x59325809, + 0x05c1fea5, 0x5c025800, 0x0005f0e7, 0x59a8002a, + 0x48026006, 0x640a6203, 0x1c01f000, 0x4d3c0000, + 0x417a7800, 0x05ddfa26, 0x5c027800, 0x0501f073, + 0x05ddfd7e, 0x05000071, 0x59a8021b, 0x8c000508, + 0x0500000e, 0x5932680a, 0x4c580000, 0x6008b000, + 0x91a81c02, 0x91341406, 0x05f5f945, 0x80000540, + 0x5c00b000, 0x05020065, 0x59340200, 0x8400051a, + 0x48026a00, 0x0501f022, 0x599c0017, 0x8c00050a, + 0x05020007, 0x4d3c0000, 0x417a7800, 0x05ddfa0c, + 0x5c027800, 0x601c0800, 0x05ddfa14, 0x59340212, + 0x82000500, 0x0000ff00, 0x05020009, 0x83440d80, + 0x000007fe, 0x05020051, 0x4d300000, 0x02000800, + 0x0010b6ea, 0x5c026000, 0x0501f04c, 0x599c0017, + 0x8c00050a, 0x05020049, 0x599c0019, 0x8c00050e, + 0x05020046, 0x416c0000, 0x90000582, 0x05020004, + 0x59a80016, 0x80000000, 0x48035016, 0x600c0800, + 0x05ddf9fa, 0x64066407, 0x64066203, 0x640a6403, + 0x05e9f9a4, 0x4ce80000, 0x6005d000, 0x05e5ff05, + 0x5c01d000, 0x1c01f000, 0x59340200, 0x8400051a, + 0x48026a00, 0x05ddfd34, 0x05000030, 0x60100800, + 0x05ddf9ea, 0x0505f8b0, 0x0502002c, 0x60140800, + 0x05ddf9e6, 0x64066407, 0x64066203, 0x640e6403, + 0x05e9f190, 0x05ddfd31, 0x05020024, 0x60180800, + 0x0501f823, 0x0501f021, 0x60100800, 0x05ddf9db, + 0x05fdf7ae, 0x05ddfc5e, 0x0501f01c, 0x0501f01b, + 0x59300820, 0x4807c857, 0x800409c0, 0x05000017, + 0x5804001e, 0x81300580, 0x05020014, 0x4978081e, + 0x58041416, 0x8c080516, 0x05000010, 0x8c080514, + 0x0500000e, 0x84081516, 0x48080c16, 0x58065809, + 0x812e59c0, 0x05000009, 0x492fc857, 0x4d300000, + 0x40066000, 0x641e6203, 0x417a7800, 0x0005f843, + 0x5c026000, 0x0501f001, 0x0005f0e7, 0x4933c857, + 0x4807c857, 0x05ddf9b9, 0x4d3c0000, 0x417a7800, + 0x05ddf9ab, 0x5c027800, 0x5934000a, 0x84000520, + 0x4802680a, 0x05ddf436, 0x59340400, 0x4803c857, + 0x80000110, 0x9000348c, 0x05c21a7c, 0x91383595, + 0x05020002, 0x0c01f004, 0x91383596, 0x05c20a77, + 0x0c01f00d, 0x001064e5, 0x001064e5, 0x001064e5, + 0x001064e5, 0x001064e5, 0x001064e5, 0x00107faa, + 0x00107f89, 0x001064e5, 0x001064e5, 0x001064e5, + 0x001064e5, 0x001064e5, 0x001064e5, 0x001064e5, + 0x001064e5, 0x001064e5, 0x001064e5, 0x00107faa, + 0x00107faf, 0x001064e5, 0x001064e5, 0x001064e5, + 0x001064e5, 0x4933c857, 0x599c0017, 0x8c00050a, + 0x05020014, 0x813669c0, 0x05000012, 0x59340212, + 0x82000500, 0x0000ff00, 0x0500000e, 0x599c0019, + 0x8c00050e, 0x0502000b, 0x4d3c0000, 0x417a7800, + 0x05ddf973, 0x5c027800, 0x600c0800, 0x05ddf97b, + 0x64066407, 0x64066203, 0x640a6403, 0x05e9f125, + 0x59cc0001, 0x59340802, 0x80040580, 0x82000500, + 0x00ffffff, 0x000600e7, 0x59345002, 0x05d9ff63, + 0x482a6802, 0x0005f0e7, 0x4933c857, 0x59303403, + 0x9018359e, 0x000400e7, 0x1c01f000, 0x4933c857, + 0x05f1ffc5, 0x000600e7, 0x64066203, 0x64066403, + 0x05e9f110, 0x493bc857, 0xb1380591, 0x05020007, + 0x05e9fd4d, 0x05ee06fd, 0x59300203, 0x90000582, + 0x0500004b, 0x05c1fa29, 0x913805a7, 0x0500000c, + 0xb1380588, 0x05000004, 0x91380594, 0x05000008, + 0x05c20a22, 0x05e9fd40, 0x05ee06f0, 0x59300203, + 0x90000584, 0x000401be, 0x05c1fa1c, 0x4933c857, + 0x59300403, 0xb0000c84, 0x05c21a18, 0xb0000480, + 0x05c01a16, 0x40027000, 0x4803c857, 0x0c01f001, + 0x00107fd8, 0x00107fd9, 0x00107fd9, 0x00107fef, + 0x05c1fa0e, 0x05e9f950, 0x59325809, 0x812e59c0, + 0x05000012, 0x832c0500, 0x00ff0000, 0x0500000f, + 0x640a6203, 0x5932680a, 0x59340200, 0x8c00050e, + 0x0502000a, 0x60128000, 0x0501fb97, 0x497a6009, + 0x59300006, 0x80000540, 0x05020003, 0x59a8002b, + 0x48026006, 0x641e6203, 0x1c01f000, 0x05e9f93a, + 0x05f9f98a, 0x05ec065c, 0x59325809, 0x05c1fd85, + 0x05edf659, 0x05c1f9f1, 0x59325809, 0x592c040b, + 0x8c000502, 0x05000004, 0x641e6203, 0x610e7000, + 0x0005f105, 0x64126203, 0x1c01f000, 0x0501fd53, + 0x000401bc, 0x1c01f000, 0x64066203, 0x65066403, + 0x42027800, 0x80002042, 0x0005f07c, 0xb1380591, + 0x05000004, 0xb1380581, 0x05c209dc, 0x1c01f000, + 0x0005f853, 0x0501fd7c, 0x0005f0e7, 0xb1380492, + 0x05c219d6, 0xb1380489, 0x05c019d4, 0x0c01f001, + 0x0010801e, 0x00108040, 0x0010801d, 0x0010801d, + 0x0010801d, 0x0010801d, 0x00108040, 0x0010801d, + 0x0010805d, 0x05c1f9c9, 0x59325809, 0x592c040b, + 0x8c00051e, 0x05000010, 0x82000d00, 0x000000c0, + 0x82040d80, 0x00000080, 0x05000011, 0x59300804, + 0x8c040518, 0x0502000e, 0x59300416, 0x8c000516, + 0x05000003, 0x641e6203, 0x0501f011, 0x61067000, + 0x0005f1da, 0x641e6203, 0x497a6006, 0x59300416, + 0x8c000516, 0x0502000a, 0x0005f053, 0x59325809, + 0x592c0c0b, 0x8c04051a, 0x05020003, 0x0005f853, + 0x0005f0e7, 0x0501fd15, 0x05fc07fd, 0x1c01f000, + 0x05e9f8cc, 0x59325809, 0x5932680a, 0x59340200, + 0x8c00050e, 0x0500000d, 0x592c040b, 0x82000500, + 0x000000c0, 0x82000580, 0x00000080, 0x05000005, + 0x592c0010, 0x59301817, 0x800c1c80, 0x480e6017, + 0x640a6203, 0x0501f00b, 0x60128000, 0x0501fb2a, + 0x59300006, 0x80000540, 0x05020004, 0x59a8002b, + 0x800000c2, 0x48026006, 0x497a6009, 0x641e6203, + 0x1c01f000, 0x4933c857, 0x05e9fca7, 0x05c20987, + 0x59300203, 0x90000582, 0x05fc07a5, 0x05c1f983, + 0x641e6203, 0x497a6006, 0x0005f053, 0x641e6203, + 0x497a6006, 0x0005f04e, 0x59300416, 0x8c00051c, + 0x000601c9, 0x59325809, 0x592c2010, 0x40080000, + 0x80102480, 0x59300017, 0x80102400, 0x48126017, + 0x0005f1c9, 0x8c04050e, 0x05020007, 0x641a6203, + 0x0501f818, 0x59300021, 0x80000540, 0x05c609ac, + 0x0005f04e, 0x640a6203, 0x1c01f000, 0x60040800, + 0x05c5f9a7, 0x90040581, 0x000401ce, 0x05fdf7e4, + 0x59300416, 0x8c00051c, 0x05000004, 0x05c1ffc3, + 0x000401c3, 0x1c01f000, 0x59300013, 0x80000540, + 0x05020003, 0x05c1ffbd, 0x000401c3, 0x1c01f000, + 0x492fc857, 0x480bc857, 0x8c08053e, 0x05000005, + 0x80081080, 0x80081000, 0x60240800, 0x0501f002, + 0x60540800, 0x480a580c, 0x1c01f000, 0x91380593, + 0x05000003, 0x91380594, 0x05c20948, 0x59300416, + 0x8c000516, 0x05c00945, 0x1c01f000, 0x05c1f943, + 0x59300009, 0x80000540, 0x05c20940, 0x1c01f000, + 0x59300416, 0x8c000516, 0x05c0093c, 0x1c01f000, + 0x64126203, 0x493a6403, 0x42000800, 0x80002001, + 0x0005f07c, 0x640e6203, 0x493a6403, 0x0001f96f, + 0x59325809, 0x592c040b, 0x8c00051e, 0x05000011, + 0x82000500, 0x000000c0, 0x82000580, 0x00000080, + 0x0500000f, 0x59300416, 0x8c000512, 0x05020009, + 0x8c000510, 0x05020007, 0x592c040d, 0x80000540, + 0x05020004, 0x82080d40, 0x80003065, 0x0005f072, + 0x82080d40, 0x80002065, 0x0005f072, 0x82080d40, + 0x80002042, 0x0005f072, 0x4933c857, 0x493bc857, + 0xb1380484, 0x05c21915, 0xb1380481, 0x05c01913, + 0x0c01f001, 0x001080d8, 0x001080e6, 0x001080f8, + 0x59325809, 0x592c040b, 0x8c00051e, 0x05000019, + 0x82001d00, 0x000000c0, 0x820c1d80, 0x000000c0, + 0x05000014, 0x64066203, 0x493a6403, 0x42000800, + 0x80002042, 0x0005f07c, 0x59325809, 0x592c040b, + 0x8c00051e, 0x0500000b, 0x82001d00, 0x000000c0, + 0x820c1d80, 0x000000c0, 0x05000006, 0x64066203, 0x493a6403, 0x42000800, 0x80002001, 0x0005f07c, - 0x640e6203, 0x493a6403, 0x0001f96f, 0x59325809, - 0x592c040b, 0x8c00051e, 0x05000011, 0x82000500, - 0x000000c0, 0x82000580, 0x00000080, 0x0500000f, - 0x59300416, 0x8c000512, 0x05020009, 0x8c000510, - 0x05020007, 0x592c040d, 0x80000540, 0x05020004, - 0x82080d40, 0x80003065, 0x0005f072, 0x82080d40, - 0x80002065, 0x0005f072, 0x82080d40, 0x80002042, - 0x0005f072, 0x4933c857, 0x493bc857, 0xb1380484, - 0x05c219be, 0xb1380481, 0x05c019bc, 0x0c01f001, - 0x0010802f, 0x0010803d, 0x0010804f, 0x59325809, - 0x592c040b, 0x8c00051e, 0x05000019, 0x82001d00, - 0x000000c0, 0x820c1d80, 0x000000c0, 0x05000014, - 0x64066203, 0x493a6403, 0x42000800, 0x80002042, - 0x0005f07c, 0x59325809, 0x592c040b, 0x8c00051e, - 0x0500000b, 0x82001d00, 0x000000c0, 0x820c1d80, - 0x000000c0, 0x05000006, 0x64066203, 0x493a6403, - 0x42000800, 0x80002001, 0x0005f07c, 0x497a6009, - 0x497a6006, 0x60128000, 0x0501f27e, 0x59325809, - 0x592c040b, 0x8c00051e, 0x05fc07f9, 0x82001d00, - 0x000000c0, 0x820c1d80, 0x000000c0, 0x05fc07f4, - 0x640e6203, 0x493a6403, 0x0001f96f, 0x82080d40, - 0x80002065, 0x0005f072, 0x4933c857, 0x493bc857, - 0x83380580, 0x00000085, 0x05000005, 0x83380580, - 0x00000088, 0x05000007, 0x05c1f980, 0x64266203, - 0x493a6403, 0x42000800, 0x80000040, 0x0005f07c, - 0x83300580, 0x0010cc5c, 0x05c20978, 0x4d1c0000, - 0x813669c0, 0x05000003, 0x0501fc23, 0x0502003d, - 0x59cc1404, 0x41780000, 0x0501f83c, 0x05000014, - 0x59cc0204, 0x82001580, 0x0000ffff, 0x05000004, - 0x591c1402, 0x80080580, 0x0502000d, 0x591c0407, - 0x9000051f, 0x90002586, 0x05000005, 0x90002584, - 0x05000021, 0x90002591, 0x05020005, 0x497a3a05, - 0x61502000, 0x05edfe58, 0x0501f026, 0x8d0c0520, - 0x05000004, 0x42023800, 0xffffffff, 0x05fdf7f9, - 0x813669c0, 0x05020007, 0x59cc0001, 0x05e5fab6, - 0x0502001c, 0x05ddf8a5, 0x0502001a, 0x4936600a, - 0x4a026403, 0x00000087, 0x59cc1204, 0x82081580, - 0x0000ffff, 0x05020003, 0x4a026403, 0x00000086, - 0x4d2c0000, 0x0501fe96, 0x05ddfe32, 0x5c025800, - 0x0501f00c, 0x591c0403, 0x900005b8, 0x05fc07e1, - 0x591c0203, 0x90000587, 0x05fe07e1, 0x4d300000, - 0x411e6000, 0x05edfd28, 0x5c026000, 0x05fdf7dc, - 0x5c023800, 0x1c01f000, 0x4933c857, 0x480bc857, - 0x4c5c0000, 0x4000b800, 0x42002800, 0x0010cca4, - 0x41300000, 0x80140580, 0x05000016, 0x58140203, - 0x90000580, 0x05000013, 0x58140202, 0x80080580, - 0x05020010, 0x58141c07, 0x900c0585, 0x0500000d, - 0x8c5c0500, 0x05000003, 0x900c0587, 0x05000009, - 0x5930200a, 0x5814000a, 0x800001c0, 0x0500000a, + 0x497a6009, 0x497a6006, 0x60128000, 0x0501f286, + 0x59325809, 0x592c040b, 0x8c00051e, 0x05fc07f9, + 0x82001d00, 0x000000c0, 0x820c1d80, 0x000000c0, + 0x05fc07f4, 0x640e6203, 0x493a6403, 0x0001f96f, + 0x82080d40, 0x80002065, 0x0005f072, 0x4933c857, + 0x493bc857, 0x83380580, 0x00000085, 0x05000005, + 0x83380580, 0x00000088, 0x05000007, 0x05c1f8d7, + 0x64266203, 0x493a6403, 0x42000800, 0x80000040, + 0x0005f07c, 0x83300580, 0x0010cc6c, 0x05c208cf, + 0x4d1c0000, 0x813669c0, 0x05000003, 0x0501fc32, + 0x0502003d, 0x59cc1404, 0x41780000, 0x0501f83c, + 0x05000014, 0x59cc0204, 0x82001580, 0x0000ffff, + 0x05000004, 0x591c1402, 0x80080580, 0x0502000d, + 0x591c0407, 0x9000051f, 0x90002586, 0x05000005, + 0x90002584, 0x05000021, 0x90002591, 0x05020005, + 0x497a3a05, 0x61502000, 0x05edfe2b, 0x0501f026, + 0x8d0c0520, 0x05000004, 0x42023800, 0xffffffff, + 0x05fdf7f9, 0x813669c0, 0x05020007, 0x59cc0001, + 0x05e5fa66, 0x0502001c, 0x05ddf80b, 0x0502001a, + 0x4936600a, 0x4a026403, 0x00000087, 0x59cc1204, + 0x82081580, 0x0000ffff, 0x05020003, 0x4a026403, + 0x00000086, 0x4d2c0000, 0x0501feb7, 0x05ddfda1, + 0x5c025800, 0x0501f00c, 0x591c0403, 0x900005b8, + 0x05fc07e1, 0x591c0203, 0x90000587, 0x05fe07e1, + 0x4d300000, 0x411e6000, 0x05edfcf7, 0x5c026000, + 0x05fdf7dc, 0x5c023800, 0x1c01f000, 0x4933c857, + 0x480bc857, 0x4c5c0000, 0x4000b800, 0x42002800, + 0x0010ccb4, 0x41300000, 0x80140580, 0x05000019, + 0x58140203, 0x90000580, 0x05000016, 0x58140202, + 0x80080580, 0x05020013, 0x58141c07, 0x900c0585, + 0x05000010, 0x8c5c0500, 0x05000003, 0x900c0587, + 0x0500000c, 0x5930200a, 0x5814000a, 0x800001c0, + 0x0500000d, 0x82001d80, 0x0010993e, 0x0500000a, 0x801021c0, 0x05000003, 0x80100580, 0x05000011, - 0x90142c24, 0x41540000, 0x80140480, 0x05021018, - 0x05fdf7e4, 0x58140020, 0x801021c0, 0x05000005, + 0x90142c24, 0x41540000, 0x80140480, 0x0502101d, + 0x05fdf7e1, 0x58140020, 0x801021c0, 0x05000005, 0x58102002, 0x82102500, 0x00ffffff, 0x05fdf7f3, 0x8c5c0500, 0x05fe07f3, 0x59302020, 0x05fdf7ef, 0x40163800, 0x8c5c0500, 0x05000007, 0x4c080000, - 0x4c140000, 0x0501fdf9, 0x5c002800, 0x5c001000, - 0x05fc07e8, 0x81300540, 0x0501f009, 0x8c5c0500, - 0x05000007, 0x40080800, 0x42023800, 0xffffffff, - 0x05ddfded, 0x05fc07f8, 0x80000580, 0x5c00b800, - 0x1c01f000, 0x4933c857, 0x83300580, 0x0010cc38, - 0x0502002d, 0x64026203, 0x91380593, 0x05020022, - 0x59300403, 0x82000580, 0x00000092, 0x05c208e7, - 0x59a80063, 0x59325809, 0x812e59c0, 0x05000005, - 0x812c0580, 0x05c208e1, 0x592c0000, 0x497a5800, - 0x800001c0, 0x05000004, 0x48035063, 0x05edfc51, - 0x0501f003, 0x497b5063, 0x497b5064, 0x812e59c0, - 0x05000014, 0x592c0205, 0xb0000595, 0x05c00465, - 0x91380593, 0x05020003, 0x64025a07, 0x0001f32c, - 0x64c65a07, 0x64125812, 0x4a025813, 0x000000ff, - 0x0001f32c, 0x913805a7, 0x05000003, 0x91380594, - 0x05c208c6, 0x493bc857, 0x05e5ff7b, 0x05fdf7d9, - 0x1c01f000, 0x4933c857, 0x91380593, 0x0502000c, - 0x59300403, 0x4803c857, 0x82000c80, 0x00000085, - 0x05c018ba, 0x82000c80, 0x00000093, 0x05c218b7, - 0x82000480, 0x00000085, 0x0c01f010, 0x913805a7, - 0x05000003, 0x91380594, 0x05ee0504, 0x493bc857, - 0x05e5ff65, 0x59325809, 0x812e59c0, 0x05ec049a, - 0x64c65a07, 0x64125812, 0x4a025813, 0x000000ff, - 0x0001fb2c, 0x05edf494, 0x00108150, 0x00108154, - 0x00108154, 0x00108150, 0x00108150, 0x00108150, - 0x00108150, 0x00108150, 0x00108150, 0x00108150, - 0x00108150, 0x00108150, 0x00108150, 0x00108151, - 0x05c1f896, 0x59325809, 0x64025a07, 0x0001fb2c, - 0x0005f0e7, 0x4933c857, 0x42000000, 0x00109808, - 0x0501ff3d, 0x0501fb78, 0x497a6205, 0x602e8000, - 0x0501f805, 0x641a6407, 0x641e6203, 0x497a6006, - 0x1c01f000, 0x4933c857, 0x4943c857, 0x59300407, - 0x90000587, 0x05020002, 0x1c01f000, 0x05e5ffcc, - 0x4df00000, 0x05f5ff7b, 0x0500000a, 0x59300809, - 0x58040000, 0x80001540, 0x05000006, 0x49780800, - 0x4d2c0000, 0x400a5800, 0x0501f95a, 0x5c025800, - 0x05f5fd3f, 0x90000c8e, 0x05c21870, 0x0c01f001, - 0x00108198, 0x0010819b, 0x00108186, 0x001081a7, - 0x001081b5, 0x00108186, 0x00108186, 0x00108186, - 0x00108186, 0x00108186, 0x00108186, 0x00108186, - 0x00108186, 0x00108186, 0x4d400000, 0x59300021, - 0x80000540, 0x05000004, 0x41400800, 0x05c5f89c, - 0x40068000, 0x4d2c0000, 0x59325809, 0x05f5ff55, - 0x0502093c, 0x4c5c0000, 0x5930b80a, 0x05edfc42, - 0x485e600a, 0x5c00b800, 0x5c025800, 0x5c028000, - 0x5c03e000, 0x05e40786, 0x1c01f000, 0x598c000b, - 0x81300580, 0x05020003, 0x05e9fa32, 0x05020012, - 0x0201f800, 0x0010ba2e, 0x80c40040, 0x05fc07e3, - 0x05e5febe, 0x0500000c, 0x05c1f840, 0x05f5fcfe, - 0x05020003, 0x05e9f9f2, 0x05020007, 0x0201f800, - 0x0010b8bb, 0x80c40040, 0x05fc07d8, 0x05e5feb3, - 0x05c20836, 0x59300203, 0x90000c8e, 0x05c21833, - 0x0c01f7c4, 0x05c5f95c, 0x05fdf7d0, 0x4933c857, - 0x4d440000, 0x4d340000, 0x59cc3800, 0x821c3d00, - 0x00ffffff, 0x59cc0007, 0x4c000000, 0x59cc0001, - 0x82000500, 0x00ffffff, 0x82000d80, 0x00fffffe, - 0x5c000000, 0x05020005, 0x801c0d80, 0x05020045, - 0x42000000, 0x00fffffe, 0x05e5f97f, 0x00000ac4, - 0x05020040, 0x5930000a, 0x4c000000, 0x8d0c0520, - 0x05000011, 0x81342d80, 0x05000002, 0x60102800, - 0x58002403, 0x59340c03, 0x59341802, 0x820c1d00, - 0x00ffffff, 0x60143000, 0x59cc4008, 0x59cc3809, - 0x9c2041c0, 0x9c1c39c0, 0x611a8000, 0x41301000, - 0x0501f90e, 0x4936600a, 0x83440d80, 0x000007fe, - 0x0502000f, 0x60683000, 0x0501fd15, 0x42000000, - 0x001097f5, 0x0501feac, 0x4d3c0000, 0x4d400000, - 0x60a68000, 0x602a7804, 0x0201f800, 0x0010b5d3, - 0x5c028000, 0x5c027800, 0x0501f00e, 0x602c3000, - 0x0501fd07, 0x42000000, 0x001097f5, 0x0501fe9e, - 0x4d3c0000, 0x4d400000, 0x60a68000, 0x417a7800, - 0x0201f800, 0x0010b652, 0x5c028000, 0x5c027800, - 0x5c000000, 0x4802600a, 0x59cc0007, 0x83440d80, - 0x000007fe, 0x05020005, 0x42000000, 0x00fffffe, - 0x4a026c00, 0x00000707, 0x48026802, 0x80000580, - 0x5c026800, 0x5c028800, 0x1c01f000, 0x4933c857, - 0x4c040000, 0x59a80073, 0xb00005b4, 0x05020040, - 0x59cc0a08, 0x82040480, 0x00000100, 0x05001033, - 0x59cc0c08, 0x82040500, 0x00008000, 0x05000035, - 0x59a80013, 0x80000540, 0x05020009, 0x5930100a, - 0x58080212, 0x82000500, 0x0000ff00, 0x05000004, - 0x82040500, 0x00000800, 0x0500002a, 0x59cc0c09, - 0x80040840, 0x05001024, 0x59a80a1b, 0x8c040506, - 0x05000004, 0x59cc0c0f, 0x8c04051e, 0x05020012, - 0x59cc0a17, 0x800409c0, 0x05020012, 0x59cc0a18, - 0x82040480, 0x00000100, 0x05001014, 0x59cc0c18, - 0x800409c0, 0x0502000e, 0x59cc0c19, 0x80040840, - 0x05001011, 0x59cc0c1a, 0x80040840, 0x05001011, - 0x0501f017, 0x4a02621c, 0x00000100, 0x0501f012, - 0x4a02621c, 0x00000300, 0x0501f00f, 0x4a02621c, - 0x00000500, 0x0501f00c, 0x4a02621c, 0x00000700, - 0x0501f009, 0x4a02621c, 0x00000900, 0x0501f006, - 0x4a02621c, 0x00000f00, 0x0501f003, 0x4a02621c, - 0x00002d00, 0x90000541, 0x0501f002, 0x80000580, - 0x5c000800, 0x1c01f000, 0x59cc0407, 0x4803c857, - 0x82000580, 0x00000800, 0x05000002, 0x6402621c, - 0x1c01f000, 0x4933c857, 0x4c580000, 0x59cc000c, - 0x59340802, 0x82040d00, 0x00ffffff, 0x80040580, - 0x0502000a, 0x91cc1408, 0x6008b000, 0x91341c06, - 0x05f1fd41, 0x05020005, 0x91cc140a, 0x6008b000, - 0x91341c08, 0x05f1fd3c, 0x5c00b000, 0x1c01f000, - 0x4933c857, 0x4c580000, 0x91cc140b, 0x6008b000, - 0x91341c06, 0x05f1fd34, 0x05020008, 0x91cc140d, - 0x6008b000, 0x91341c08, 0x05f1fd2f, 0x05000014, - 0x4933c856, 0x4933c856, 0x4933c857, 0x59340009, - 0x4803c857, 0x5934000e, 0x4803c857, 0x59340008, - 0x4803c857, 0x5934000d, 0x4803c857, 0x59340007, - 0x4803c857, 0x5934000c, 0x4803c857, 0x59340006, - 0x4803c857, 0x5934000b, 0x4803c857, 0x5c00b000, - 0x1c01f000, 0x4933c857, 0x813261c0, 0x05000025, - 0x83300d80, 0x0010cc5c, 0x05000022, 0x8d3c0506, - 0x05020020, 0x59300c07, 0x90040581, 0x05000008, - 0x90040582, 0x0502001b, 0x5930021f, 0x90000581, - 0x05020018, 0x59300c18, 0x0501f002, 0x59300c03, - 0x900405b9, 0x05000003, 0x900405b5, 0x05020011, - 0x4d300000, 0x4d1c0000, 0x59326020, 0x4933c857, - 0x05f9f9ab, 0x05bc0f35, 0x591c001e, 0x497a381e, - 0x591c0c16, 0x84040d02, 0x48063c16, 0x5c023800, - 0x5c026000, 0x81300580, 0x05be0f2c, 0x497a6020, - 0x1c01f000, 0x5c000000, 0x4c000000, 0x4803c857, - 0x4d3c0000, 0x60067800, 0x05d9fe3d, 0x5c027800, - 0x4c580000, 0x6008b000, 0x91a81c02, 0x91cc140b, - 0x05f1fce5, 0x5c00b000, 0x80000540, 0x1c01f000, - 0x492fc857, 0x4943c857, 0x59a8000c, 0x812c0480, - 0x0500100f, 0x59a8000a, 0x812c0480, 0x0502100c, - 0x592c0000, 0x80005d40, 0x05000007, 0x497a5800, - 0x49425a07, 0x4c2c0000, 0x0001fb2c, 0x5c025800, - 0x05fdf7f8, 0x49425a07, 0x0001f32c, 0x1c01f000, - 0x61fc21ff, 0x5930100a, 0x800811c0, 0x05000002, - 0x58082403, 0x41301000, 0x0501f008, 0x40682800, - 0x406c3000, 0x41781000, 0x41442000, 0x0501f003, - 0x41781000, 0x61fc21ff, 0x5c000000, 0x4c000000, - 0x4803c857, 0x480bc857, 0x4813c857, 0x492fc857, - 0x4943c857, 0x4d2c0000, 0x4c040000, 0x4c080000, - 0x4c0c0000, 0x4c100000, 0x4c140000, 0x4c180000, - 0x4c1c0000, 0x4c200000, 0x05c1fa6a, 0x05bc0ee7, - 0x5c004000, 0x5c003800, 0x5c003000, 0x5c002800, - 0x5c002000, 0x5c001800, 0x5c001000, 0x5c000800, - 0x4a025805, 0x0000010d, 0x800811c0, 0x05000012, - 0x914005a9, 0x0502000c, 0x90180582, 0x05000007, - 0x90180583, 0x05000005, 0x90180588, 0x05000003, - 0x90180589, 0x05020004, 0x4a02580a, 0xffffffff, - 0x0501f002, 0x480a580a, 0x58080202, 0x48025c14, + 0x4c140000, 0x0501fe17, 0x5c002800, 0x5c001000, + 0x05fc07e8, 0x591c000a, 0x800001c0, 0x05020003, + 0x5930000a, 0x4802380a, 0x81300540, 0x0501f009, + 0x8c5c0500, 0x05000007, 0x40080800, 0x42023800, + 0xffffffff, 0x05ddfd54, 0x05fc07f3, 0x80000580, + 0x5c00b800, 0x1c01f000, 0x4933c857, 0x83300580, + 0x0010cc48, 0x0502002d, 0x64026203, 0x91380593, + 0x05020022, 0x59300403, 0x82000580, 0x00000092, + 0x05c20836, 0x59a80063, 0x59325809, 0x812e59c0, + 0x05000005, 0x812c0580, 0x05c20830, 0x592c0000, + 0x497a5800, 0x800001c0, 0x05000004, 0x48035063, + 0x05edfc18, 0x0501f003, 0x497b5063, 0x497b5064, + 0x812e59c0, 0x05000014, 0x592c0205, 0xb0000595, + 0x05c003b4, 0x91380593, 0x05020003, 0x64025a07, + 0x0001f32c, 0x64c65a07, 0x64125812, 0x4a025813, + 0x000000ff, 0x0001f32c, 0x913805a7, 0x05000003, + 0x91380594, 0x05c20815, 0x493bc857, 0x05e5ff56, + 0x05fdf7d9, 0x1c01f000, 0x4933c857, 0x91380593, + 0x0502000c, 0x59300403, 0x4803c857, 0x82000c80, + 0x00000085, 0x05c01809, 0x82000c80, 0x00000093, + 0x05c21806, 0x82000480, 0x00000085, 0x0c01f010, + 0x913805a7, 0x05000003, 0x91380594, 0x05ee04cf, + 0x493bc857, 0x05e5ff40, 0x59325809, 0x812e59c0, + 0x05ec0461, 0x64c65a07, 0x64125812, 0x4a025813, + 0x000000ff, 0x0001fb2c, 0x05edf45b, 0x00108201, + 0x00108205, 0x00108205, 0x00108201, 0x00108201, + 0x00108201, 0x00108201, 0x00108201, 0x00108201, + 0x00108201, 0x00108201, 0x00108201, 0x00108201, + 0x00108202, 0x05bdffe5, 0x59325809, 0x64025a07, + 0x0001fb2c, 0x0005f0e7, 0x4933c857, 0x42000000, + 0x00109888, 0x0501ff56, 0x0501fb7f, 0x497a6205, + 0x602e8000, 0x0501f805, 0x641a6407, 0x641e6203, + 0x497a6006, 0x1c01f000, 0x4933c857, 0x4943c857, + 0x59300407, 0x90000587, 0x05020002, 0x1c01f000, + 0x05e5ffa7, 0x4df00000, 0x05f5ff60, 0x0500000a, + 0x59300809, 0x58040000, 0x80001540, 0x05000006, + 0x49780800, 0x4d2c0000, 0x400a5800, 0x0501f95a, + 0x5c025800, 0x05f5fd21, 0x90000c8e, 0x05be1fbf, + 0x0c01f001, 0x00108249, 0x0010824c, 0x00108237, + 0x00108258, 0x00108266, 0x00108237, 0x00108237, + 0x00108237, 0x00108237, 0x00108237, 0x00108237, + 0x00108237, 0x00108237, 0x00108237, 0x4d400000, + 0x59300021, 0x80000540, 0x05000004, 0x41400800, + 0x05c1ffeb, 0x40068000, 0x4d2c0000, 0x59325809, + 0x05f5ff3a, 0x0502093c, 0x4c5c0000, 0x5930b80a, + 0x05edfc09, 0x485e600a, 0x5c00b800, 0x5c025800, + 0x5c028000, 0x5c03e000, 0x05e40761, 0x1c01f000, + 0x598c000b, 0x81300580, 0x05020003, 0x05e9fa0d, + 0x05020012, 0x0201f800, 0x0010ba3e, 0x80c40040, + 0x05fc07e3, 0x05e5fe99, 0x0500000c, 0x05bdff8f, + 0x05f5fce0, 0x05020003, 0x05e9f9cd, 0x05020007, + 0x0201f800, 0x0010b8cb, 0x80c40040, 0x05fc07d8, + 0x05e5fe8e, 0x05be0f85, 0x59300203, 0x90000c8e, + 0x05be1f82, 0x0c01f7c4, 0x05c5f8ab, 0x05fdf7d0, + 0x4933c857, 0x4d440000, 0x4d340000, 0x59cc3800, + 0x821c3d00, 0x00ffffff, 0x59cc0007, 0x4c000000, + 0x59cc0001, 0x82000500, 0x00ffffff, 0x82000d80, + 0x00fffffe, 0x5c000000, 0x05020005, 0x801c0d80, + 0x05020045, 0x42000000, 0x00fffffe, 0x05e5f927, + 0x00000ac4, 0x05020040, 0x5930000a, 0x4c000000, + 0x8d0c0520, 0x05000011, 0x81342d80, 0x05000002, + 0x60102800, 0x58002403, 0x59340c03, 0x59341802, + 0x820c1d00, 0x00ffffff, 0x60143000, 0x59cc4008, + 0x59cc3809, 0x9c2041c0, 0x9c1c39c0, 0x611a8000, + 0x41301000, 0x0501f90e, 0x4936600a, 0x83440d80, + 0x000007fe, 0x0502000f, 0x60683000, 0x0501fd2e, + 0x42000000, 0x00109875, 0x0501fec5, 0x4d3c0000, + 0x4d400000, 0x60a68000, 0x602a7804, 0x0201f800, + 0x0010b5e0, 0x5c028000, 0x5c027800, 0x0501f00e, + 0x602c3000, 0x0501fd20, 0x42000000, 0x00109875, + 0x0501feb7, 0x4d3c0000, 0x4d400000, 0x60a68000, + 0x417a7800, 0x0201f800, 0x0010b660, 0x5c028000, + 0x5c027800, 0x5c000000, 0x4802600a, 0x59cc0007, + 0x83440d80, 0x000007fe, 0x05020005, 0x42000000, + 0x00fffffe, 0x4a026c00, 0x00000707, 0x48026802, + 0x80000580, 0x5c026800, 0x5c028800, 0x1c01f000, + 0x4933c857, 0x4c040000, 0x59a80073, 0xb00005b4, + 0x05020040, 0x59cc0a08, 0x82040480, 0x00000100, + 0x05001033, 0x59cc0c08, 0x82040500, 0x00008000, + 0x05000035, 0x59a80013, 0x80000540, 0x05020009, + 0x5930100a, 0x58080212, 0x82000500, 0x0000ff00, + 0x05000004, 0x82040500, 0x00000800, 0x0500002a, + 0x59cc0c09, 0x80040840, 0x05001024, 0x59a80a1b, + 0x8c040506, 0x05000004, 0x59cc0c0f, 0x8c04051e, + 0x05020012, 0x59cc0a17, 0x800409c0, 0x05020012, + 0x59cc0a18, 0x82040480, 0x00000100, 0x05001014, + 0x59cc0c18, 0x800409c0, 0x0502000e, 0x59cc0c19, + 0x80040840, 0x05001011, 0x59cc0c1a, 0x80040840, + 0x05001011, 0x0501f017, 0x4a02621c, 0x00000100, + 0x0501f012, 0x4a02621c, 0x00000300, 0x0501f00f, + 0x4a02621c, 0x00000500, 0x0501f00c, 0x4a02621c, + 0x00000700, 0x0501f009, 0x4a02621c, 0x00000900, + 0x0501f006, 0x4a02621c, 0x00000f00, 0x0501f003, + 0x4a02621c, 0x00002d00, 0x90000541, 0x0501f002, + 0x80000580, 0x5c000800, 0x1c01f000, 0x59cc0407, + 0x4803c857, 0x82000580, 0x00000800, 0x05000002, + 0x6402621c, 0x1c01f000, 0x4933c857, 0x4c580000, + 0x59cc000c, 0x59340802, 0x82040d00, 0x00ffffff, + 0x80040580, 0x0502000a, 0x91cc1408, 0x6008b000, + 0x91341c06, 0x05f1fd1a, 0x05020005, 0x91cc140a, + 0x6008b000, 0x91341c08, 0x05f1fd15, 0x5c00b000, + 0x1c01f000, 0x4933c857, 0x4c580000, 0x91cc140b, + 0x6008b000, 0x91341c06, 0x05f1fd0d, 0x05020008, + 0x91cc140d, 0x6008b000, 0x91341c08, 0x05f1fd08, + 0x05000014, 0x4933c856, 0x4933c856, 0x4933c857, + 0x59340009, 0x4803c857, 0x5934000e, 0x4803c857, + 0x59340008, 0x4803c857, 0x5934000d, 0x4803c857, + 0x59340007, 0x4803c857, 0x5934000c, 0x4803c857, + 0x59340006, 0x4803c857, 0x5934000b, 0x4803c857, + 0x5c00b000, 0x1c01f000, 0x4933c857, 0x813261c0, + 0x05000025, 0x83300d80, 0x0010cc6c, 0x05000022, + 0x8d3c0506, 0x05020020, 0x59300c07, 0x90040581, + 0x05000008, 0x90040582, 0x0502001b, 0x5930021f, + 0x90000581, 0x05020018, 0x59300c18, 0x0501f002, + 0x59300c03, 0x900405b9, 0x05000003, 0x900405b5, + 0x05020011, 0x4d300000, 0x4d1c0000, 0x59326020, + 0x4933c857, 0x05f9f990, 0x05bc0e84, 0x591c001e, + 0x497a381e, 0x591c0c16, 0x84040d02, 0x48063c16, + 0x5c023800, 0x5c026000, 0x81300580, 0x05be0e7b, + 0x497a6020, 0x1c01f000, 0x5c000000, 0x4c000000, + 0x4803c857, 0x4d3c0000, 0x60067800, 0x05d9fd98, + 0x5c027800, 0x4c580000, 0x6008b000, 0x91a81c02, + 0x91cc140b, 0x05f1fcbe, 0x5c00b000, 0x80000540, + 0x1c01f000, 0x492fc857, 0x4943c857, 0x59a8000c, + 0x812c0480, 0x0500100f, 0x59a8000a, 0x812c0480, + 0x0502100c, 0x592c0000, 0x80005d40, 0x05000007, + 0x497a5800, 0x49425a07, 0x4c2c0000, 0x0001fb2c, + 0x5c025800, 0x05fdf7f8, 0x49425a07, 0x0001f32c, + 0x1c01f000, 0x61fc21ff, 0x5930100a, 0x800811c0, + 0x05000002, 0x58082403, 0x41301000, 0x0501f008, + 0x40682800, 0x406c3000, 0x41781000, 0x41442000, + 0x0501f003, 0x41781000, 0x61fc21ff, 0x5c000000, + 0x4c000000, 0x4803c857, 0x480bc857, 0x4813c857, + 0x492fc857, 0x4943c857, 0x4d2c0000, 0x4c040000, + 0x4c080000, 0x4c0c0000, 0x4c100000, 0x4c140000, + 0x4c180000, 0x4c1c0000, 0x4c200000, 0x05c1f9b9, + 0x05bc0e36, 0x5c004000, 0x5c003800, 0x5c003000, + 0x5c002800, 0x5c002000, 0x5c001800, 0x5c001000, + 0x5c000800, 0x4a025805, 0x0000010d, 0x800811c0, + 0x05000019, 0x914005a9, 0x05020013, 0x90180582, + 0x05000009, 0x90180583, 0x05000007, 0x90180588, + 0x05000005, 0x90180586, 0x05000006, 0x90180589, + 0x05020009, 0x4a02580a, 0xffffffff, 0x0501f007, + 0x5808280a, 0x58140002, 0x82000500, 0x00ffffff, + 0x48025813, 0x480a580a, 0x58080202, 0x48025c14, 0x0501f005, 0x4a02580a, 0xffffffff, 0x4a025c14, 0x0000ffff, 0xb1400586, 0x05000002, 0x41782800, 0x480e580d, 0x4806580e, 0x4822580f, 0x481e5810, 0x48165a08, 0x481a5c09, 0x49425a09, 0x48125a07, 0x82100580, 0x0000ffff, 0x0500000c, 0x4d440000, - 0x4d340000, 0x40128800, 0x0001fac4, 0x05be0eb3, + 0x4d340000, 0x40128800, 0x0001fac4, 0x05be0dfb, 0x59340002, 0x82000500, 0x00ffffff, 0x48025813, 0x5c026800, 0x5c028800, 0x497a5800, 0x497a5c05, - 0x0501fb17, 0x5c025800, 0x1c01f000, 0x5c000000, + 0x0501fb29, 0x5c025800, 0x1c01f000, 0x5c000000, 0x4c000000, 0x4803c857, 0x480bc857, 0x480fc857, 0x4813c857, 0x4817c857, 0x4d2c0000, 0x4c080000, - 0x4c0c0000, 0x4c100000, 0x4c140000, 0x05c1fa1d, - 0x05bc0e9a, 0x5c002800, 0x5c002000, 0x5c001800, + 0x4c0c0000, 0x4c100000, 0x4c140000, 0x05c1f965, + 0x05bc0de2, 0x5c002800, 0x5c002000, 0x5c001800, 0x5c001000, 0x05011000, 0x912c0405, 0x4803c840, 0x6443c842, 0x40000000, 0x05fd17ff, 0x4a025805, 0x0000010d, 0x65265a09, 0x480a5a0b, 0x480e5c0b, 0x48125a0c, 0x48165c0c, 0x82080580, 0x00008014, 0x05020050, 0x820c0580, 0x0000ffff, 0x0502004d, - 0x90100586, 0x0502004b, 0x59a8000f, 0x05ddfd77, + 0x90100586, 0x0502004b, 0x59a8000f, 0x05ddfcf5, 0x05000009, 0x82000d00, 0x00ffff00, 0x05020006, - 0x82000c00, 0x00101a21, 0x50040800, 0x80040910, + 0x82000c00, 0x00101a23, 0x50040800, 0x80040910, 0x48065a0d, 0x82000d00, 0x0000ffff, 0x48065c0d, 0x80000120, 0x48025a0e, 0x59a8021b, 0x82001500, 0x00002100, 0x480a5a0f, 0x8c000502, 0x05000016, @@ -8454,7 +8500,7 @@ static const uint32_t isp_2500_risc_code[] = { 0x05000006, 0x90000d22, 0x90040da2, 0x05020003, 0x640e5c0e, 0x0501f011, 0x8c000508, 0x05000006, 0x90000d12, 0x90040d92, 0x05020003, 0x640a5c0e, - 0x0501f00a, 0x05ddfd4d, 0x05020003, 0x64125c0e, + 0x0501f00a, 0x05ddfccb, 0x05020003, 0x64125c0e, 0x0501f006, 0x8c000506, 0x05000003, 0x64165c0e, 0x0501f002, 0x64025c0e, 0x59a8002a, 0x48025c0f, 0x59a8002b, 0x48025a10, 0x59c40801, 0x82040d00, @@ -8462,7 +8508,7 @@ static const uint32_t isp_2500_risc_code[] = { 0x0501f00c, 0x82040580, 0x00008000, 0x05020003, 0x64065c10, 0x0501f007, 0x82040580, 0x00010000, 0x05020003, 0x640e5c10, 0x0501f002, 0x64125c10, - 0x0501faa3, 0x5c025800, 0x1c01f000, 0x0501f805, + 0x0501fab5, 0x5c025800, 0x1c01f000, 0x0501f805, 0x60058800, 0x05000002, 0x60018800, 0x1c01f000, 0x5930080a, 0x800409c0, 0x05000004, 0x58040403, 0x81440580, 0x1c01f000, 0x90000541, 0x05fdf7fe, @@ -8474,12 +8520,12 @@ static const uint32_t isp_2500_risc_code[] = { 0x80000040, 0x0005f87c, 0x5c000800, 0x1c01f000, 0x4933c857, 0x40000000, 0x40000000, 0x1c01f000, 0x59300416, 0x4933c857, 0x4803c857, 0x8c000518, - 0x05000006, 0x8c000512, 0x05f606c1, 0x0501f8ee, + 0x05000006, 0x8c000512, 0x05f6069f, 0x0501f8ee, 0x0005f853, 0x0005f8e7, 0x1c01f000, 0x591c0407, 0x4803c857, 0x90000c89, 0x0502100b, 0x0c01f001, - 0x001083f5, 0x001083f5, 0x001083f5, 0x001083f7, - 0x001083f5, 0x001083f7, 0x001083f7, 0x001083f5, - 0x001083f7, 0x80000580, 0x1c01f000, 0x90000541, + 0x001084ad, 0x001084ad, 0x001084ad, 0x001084af, + 0x001084ad, 0x001084af, 0x001084af, 0x001084ad, + 0x001084af, 0x80000580, 0x1c01f000, 0x90000541, 0x1c01f000, 0x591c0407, 0x9000051f, 0x90000586, 0x0500000a, 0x4803c857, 0x64ee6403, 0x6426641c, 0x4a02621c, 0x00002a00, 0x64066203, 0x42000800, @@ -8487,40 +8533,40 @@ static const uint32_t isp_2500_risc_code[] = { 0x4c140000, 0x4d300000, 0x411e6000, 0x0501f8c6, 0x497a6205, 0x59300416, 0x4803c857, 0x82000500, 0xffffadff, 0x48026416, 0x497a6405, 0x5c026000, - 0x05c1f954, 0x05bc0dd1, 0x5c002800, 0x5c000800, + 0x05c1f89c, 0x05bc0d19, 0x5c002800, 0x5c000800, 0x4a025805, 0x0000010d, 0x497a5800, 0x497a5c05, 0x65165a09, 0x491e580a, 0x59300402, 0x48025c08, 0x5930041b, 0x48025c0c, 0x591c0416, 0x84000556, 0x48023c16, 0x591c180a, 0x580c0403, 0x48025a07, 0x580c0002, 0x82000500, 0x00ffffff, 0x48025813, 0x59cc0404, 0x48025c14, 0x497a5a08, 0x4816580b, - 0x48065a0c, 0x0501fa22, 0x493a6403, 0x4d400000, + 0x48065a0c, 0x0501fa34, 0x493a6403, 0x4d400000, 0x61168000, 0x591c0202, 0x4c000000, 0x4d300000, - 0x411e6000, 0x05fdfd28, 0x5c026000, 0x5c000000, + 0x411e6000, 0x05fdfd21, 0x5c026000, 0x5c000000, 0x48023a02, 0x5c028000, 0x491e6020, 0x4932381e, 0x641a3c07, 0x641e3a03, 0x497a3806, 0x497a3a05, 0x1c01f000, 0x4933c857, 0x91380593, 0x0502000a, 0x59300403, 0x4803c857, 0x82000d80, 0x00000085, 0x05000020, 0x82000d80, 0x0000008b, 0x0500001d, - 0x05bdfd96, 0x913805a7, 0x0502000a, 0x05e5fc4a, + 0x05bdfcde, 0x913805a7, 0x0502000a, 0x05e5fc1e, 0x4d2c0000, 0x4d400000, 0x59325809, 0x60128000, - 0x05fdfe74, 0x5c028000, 0x5c025800, 0x1c01f000, + 0x05fdfe6d, 0x5c028000, 0x5c025800, 0x1c01f000, 0x91380594, 0x05fc07f6, 0x83380580, 0x00000089, - 0x05000004, 0x83380580, 0x0000008a, 0x05ee01d7, - 0x05e9f815, 0x05ee01d5, 0x59300a03, 0x9004058a, - 0x05000006, 0x9004058c, 0x05000004, 0x05bdfd7b, + 0x05000004, 0x83380580, 0x0000008a, 0x05ee019b, + 0x05e5ffe9, 0x05ee0199, 0x59300a03, 0x9004058a, + 0x05000006, 0x9004058c, 0x05000004, 0x05bdfcc3, 0x642a6203, 0x1c01f000, 0x83380480, 0x00000093, 0x0502100b, 0x83380480, 0x00000085, 0x05001008, 0x83380580, 0x00000089, 0x05000008, 0x83380580, - 0x0000008a, 0x0500001a, 0x05bdfd6c, 0x493bc857, - 0x4933c857, 0x05edf1bd, 0x4933c857, 0x4c340000, - 0x41306800, 0x05edf986, 0x0500000d, 0x64066203, + 0x0000008a, 0x0500001a, 0x05bdfcb4, 0x493bc857, + 0x4933c857, 0x05edf181, 0x4933c857, 0x4c340000, + 0x41306800, 0x05edf94a, 0x0500000d, 0x64066203, 0x647a6403, 0x59cc0c07, 0x4806641b, 0x59cc0a07, 0x4806621b, 0x5834080a, 0x4806600a, 0x64126407, 0x42000800, 0x80000040, 0x0005f87c, 0x40366000, 0x0005f8e7, 0x5c006800, 0x1c01f000, 0x4933c857, 0x0005f0e7, 0x5930080a, 0x58040200, 0x8c00051a, - 0x05be0e0c, 0x1c01f000, 0x05d9feff, 0x05000019, + 0x05be0d54, 0x1c01f000, 0x05d9fe5a, 0x05000019, 0x640a6203, 0x59300416, 0x84000558, 0x48026416, 0x8c000512, 0x05000004, 0x59a8002c, 0x48026205, 0x0501f006, 0x59a8082c, 0x59a8002a, 0x80040400, @@ -8541,14 +8587,14 @@ static const uint32_t isp_2500_risc_code[] = { 0x497a6000, 0x5c006800, 0x1c01f000, 0x59300c07, 0x90040585, 0x05fc07fc, 0x90040591, 0x05fc07fa, 0x90040586, 0x05fc07f8, 0x90040581, 0x05fc07f6, - 0x05bdfcfa, 0x4933c857, 0x4c080000, 0x4c0c0000, + 0x05bdfc42, 0x4933c857, 0x4c080000, 0x4c0c0000, 0x4c580000, 0x59a81018, 0x59cc1807, 0x820c1d00, 0x00ffffff, 0x800c0110, 0x80083580, 0x0502000c, 0x91cc1408, 0x6008b000, 0x5930000a, 0x90001c06, - 0x05f1fab1, 0x05020006, 0x91cc140a, 0x6008b000, - 0x5930000a, 0x90001c08, 0x05f1faab, 0x5c00b000, + 0x05f1fa83, 0x05020006, 0x91cc140a, 0x6008b000, + 0x5930000a, 0x90001c08, 0x05f1fa7d, 0x5c00b000, 0x5c001800, 0x5c001000, 0x1c01f000, 0x4933c856, - 0x493a6403, 0x05d9f978, 0x0201f000, 0x0010b83b, + 0x493a6403, 0x05d9f8cc, 0x0201f000, 0x0010b84b, 0x4933c857, 0x492fc857, 0x5930080a, 0x58040200, 0x8c00051e, 0x05000004, 0x592c0209, 0x84000558, 0x48025a09, 0x1c01f000, 0x59e0180f, 0x599c0413, @@ -8558,353 +8604,358 @@ static const uint32_t isp_2500_risc_code[] = { 0x599c1015, 0x800c00cc, 0x80040c00, 0x90081440, 0x5c001800, 0x90000541, 0x4803c857, 0x1c01f000, 0x59300203, 0x4933c857, 0x4937c857, 0x493bc857, - 0x4803c857, 0x9000348e, 0x05be1cb4, 0x0c01f001, - 0x00108542, 0x0010861d, 0x00108542, 0x00108542, - 0x00108542, 0x00108542, 0x00108542, 0x001085a5, - 0x00108543, 0x00108542, 0x00108542, 0x00108542, - 0x00108542, 0x00108542, 0x05bdfca4, 0xb138058c, - 0x05be0ca2, 0x05d9fe6a, 0x0502001d, 0x59a80a1b, + 0x4803c857, 0x9000348e, 0x05be1bfc, 0x0c01f001, + 0x001085fa, 0x001086d8, 0x001085fa, 0x001085fa, + 0x001085fa, 0x001085fa, 0x001085fa, 0x0010865f, + 0x001085fb, 0x001085fa, 0x001085fa, 0x001085fa, + 0x001085fa, 0x001085fa, 0x05bdfbec, 0xb138058c, + 0x05be0bea, 0x05d9fdc5, 0x0502001d, 0x59a80a1b, 0x90040509, 0x90000588, 0x05000019, 0x8c040512, 0x05000029, 0x59cc0806, 0x82040d00, 0xff000000, 0x82040580, 0x03000000, 0x0500001d, 0x82040580, 0x50000000, 0x05000004, 0x82040580, 0x52000000, - 0x000600e7, 0x813669c0, 0x05000007, 0x497a6020, - 0x4d3c0000, 0x417a7800, 0x0201f800, 0x0010b652, + 0x000600e7, 0x83340580, 0x0010993e, 0x05000006, + 0x4d3c0000, 0x417a7800, 0x0201f800, 0x0010b660, 0x5c027800, 0x64066403, 0x0501f010, 0x59cc0806, 0x82040d00, 0xff000000, 0x82040580, 0x03000000, 0x05000007, 0x82040580, 0x50000000, 0x05000004, 0x82040580, 0x52000000, 0x000600e7, 0x64266403, 0x6426641c, 0x6402621c, 0x64126407, 0x64066203, - 0x05e5f2c4, 0x8d0c0520, 0x0500001e, 0x59cc0806, - 0x4807c857, 0x82040d00, 0xff000000, 0x82040580, - 0x03000000, 0x05000013, 0x82040580, 0x20000000, - 0x05000010, 0x82040580, 0x21000000, 0x0500000d, - 0x82040580, 0x24000000, 0x0500000a, 0x82040580, - 0x50000000, 0x05000007, 0x82040580, 0x52000000, - 0x05000004, 0x82040580, 0x05000000, 0x05020007, - 0x9c0431c0, 0x611a8000, 0x60042800, 0x05fdfd4d, - 0x0501f8ca, 0x05bc0c51, 0x61442000, 0x05edf94a, - 0x59cc0000, 0x82000500, 0x00ffffff, 0x82000580, - 0x00ffffff, 0x05000004, 0x641e6203, 0x493a6403, - 0x1c01f000, 0x59325819, 0x812e59c0, 0x05be0fde, - 0x0005f0e7, 0x4d2c0000, 0x4c580000, 0x4c500000, - 0x4c540000, 0x41385000, 0xb1380594, 0x05be0c3b, - 0x59325809, 0x592c0c0c, 0x82040d00, 0x0000e000, - 0x82040580, 0x00002000, 0x05020058, 0x59300819, - 0x800409c0, 0x05000010, 0x58041405, 0x41cca800, - 0x9004a406, 0x90080490, 0x05021004, 0x4008b000, - 0x0501fba3, 0x0501f008, 0x40001000, 0x603cb000, - 0x0501fb9f, 0x58040801, 0x800409c0, 0x05fe07f5, - 0x05bdfc22, 0x813669c0, 0x05000044, 0x59344c00, - 0x592c0c0a, 0x4807c857, 0x4827c857, 0x82040d00, - 0x000000ff, 0x90040583, 0x0500001d, 0x90040585, - 0x05000021, 0x900405a0, 0x05000024, 0xb0040592, - 0x0500002e, 0xb0040590, 0x0500002e, 0x900405a1, - 0x05000003, 0x900405a4, 0x05020030, 0x82240500, - 0x0000ff00, 0x82000580, 0x00000700, 0x05000005, - 0x60240800, 0x05d9fb29, 0x60305000, 0x0501f027, - 0x64c65a07, 0x6426580e, 0x59340400, 0x4802580f, - 0x0001fb2c, 0x05e9ffec, 0x0501f02e, 0x05d9f913, - 0x05d9fbd9, 0x600c0800, 0x05d9fb1c, 0x60205000, - 0x0501f01a, 0x59cc0007, 0x05e1feff, 0x05020017, - 0x05d9f90a, 0x0501f015, 0x82240500, 0x0000ff00, - 0x82000580, 0x00000700, 0x05fc07ea, 0x82240500, - 0x000000ff, 0x90000589, 0x05fc07e6, 0x05d9fc1d, - 0x60285000, 0x0501f009, 0x60385000, 0x0501f002, - 0x60405000, 0x82240500, 0x0000ff00, 0x82000580, - 0x00000700, 0x05fc07db, 0x482a6403, 0x64066203, - 0x592c000e, 0x48026013, 0x497a6015, 0x59a8002b, - 0x48026006, 0x417a7800, 0x05e5fa26, 0x59325819, - 0x812e59c0, 0x05000003, 0x05bdff6b, 0x497a6019, - 0x5c00a800, 0x5c00a000, 0x5c00b000, 0x5c025800, - 0x1c01f000, 0x4d2c0000, 0x59325809, 0x91380593, - 0x0502001c, 0x492fc857, 0x59300c03, 0xb0040594, - 0x05000014, 0x90040590, 0x0500000f, 0x9004058e, - 0x0500000d, 0x90040588, 0x05000008, 0x9004058c, - 0x05000006, 0x9004058a, 0x05be0bb8, 0x60180800, - 0x05d9fada, 0x0501f007, 0x60100800, 0x05d9fad7, - 0x0501f004, 0x59340200, 0x8400051a, 0x48026a00, - 0x64025a07, 0x0001fb2c, 0x0005f8e7, 0x0501f016, - 0x913805a7, 0x05000009, 0x91380594, 0x05be0ba7, - 0x492fc857, 0x05e5fa5c, 0x60c68000, 0x60100800, - 0x61fc1001, 0x0501f006, 0x492fc857, 0x05e5fa56, - 0x60c68000, 0x60100800, 0x60401000, 0x49425a07, - 0x4806580e, 0x480a580f, 0x0001fb2c, 0x05d9ffdc, - 0x05e9ff85, 0x5c025800, 0x1c01f000, 0x492fc857, - 0x42007000, 0x00020a09, 0x58380806, 0x492c7006, - 0x800409c0, 0x05020003, 0x492c7007, 0x0001f02b, - 0x492c0800, 0x1c01f000, 0x4d2c0000, 0x4c580000, - 0x4c500000, 0x4c540000, 0x4933c857, 0x4937c857, - 0x59cc0806, 0x4807c857, 0x82040d00, 0xff000000, - 0x82040580, 0x03000000, 0x0500000d, 0x82040580, - 0x05000000, 0x0500000a, 0x82040580, 0x21000000, - 0x05000027, 0x82040580, 0x24000000, 0x05000024, - 0x82040580, 0x20000000, 0x05020025, 0x05bdfef1, - 0x05000023, 0x492fc857, 0x492e6019, 0x59a8b073, - 0x9058b41b, 0x8258b500, 0xfffffffc, 0x8058b104, - 0x485a5c05, 0x412c7800, 0x41cca000, 0x90580490, - 0x05021004, 0x912cac06, 0x0501fad9, 0x0501f010, - 0x40580800, 0x603cb000, 0x912cac06, 0x0501fad4, - 0x9004b48f, 0x05bdfedb, 0x05000004, 0x492c7801, - 0x412c7800, 0x05fdf7f2, 0x59325819, 0x05bdfeee, - 0x497a6019, 0x80000580, 0x0501f005, 0x59340200, - 0x84000554, 0x48026a00, 0x90000541, 0x5c00a800, + 0x05e5f298, 0x8d0c0520, 0x05000020, 0x0501fc5b, + 0x0502001e, 0x59cc0806, 0x4807c857, 0x82040d00, + 0xff000000, 0x82040580, 0x03000000, 0x05000013, + 0x82040580, 0x20000000, 0x05000010, 0x82040580, + 0x21000000, 0x0500000d, 0x82040580, 0x24000000, + 0x0500000a, 0x82040580, 0x50000000, 0x05000007, + 0x82040580, 0x52000000, 0x05000004, 0x82040580, + 0x05000000, 0x05020007, 0x9c0431c0, 0x611a8000, + 0x60042800, 0x05fdfd44, 0x0501f8da, 0x05bc0b97, + 0x61442000, 0x05edf90c, 0x59cc0000, 0x82000500, + 0x00ffffff, 0x82000580, 0x00ffffff, 0x05000004, + 0x641e6203, 0x493a6403, 0x1c01f000, 0x59325819, + 0x812e59c0, 0x05be0f24, 0x0005f0e7, 0x4d2c0000, + 0x4c580000, 0x4c500000, 0x4c540000, 0x41385000, + 0xb1380594, 0x05be0b81, 0x59325809, 0x592c0c0c, + 0x82040d00, 0x0000e000, 0x82040580, 0x00002000, + 0x05020059, 0x59300819, 0x800409c0, 0x05000010, + 0x58041405, 0x41cca800, 0x9004a406, 0x90080490, + 0x05021004, 0x4008b000, 0x0501fbb3, 0x0501f008, + 0x40001000, 0x603cb000, 0x0501fbaf, 0x58040801, + 0x800409c0, 0x05fe07f5, 0x05bdfb68, 0x83340580, + 0x0010993e, 0x05000044, 0x59344c00, 0x592c0c0a, + 0x4807c857, 0x4827c857, 0x82040d00, 0x000000ff, + 0x90040583, 0x0500001d, 0x90040585, 0x05000020, + 0x900405a0, 0x05000024, 0xb0040592, 0x0500002e, + 0xb0040590, 0x0500002e, 0x900405a1, 0x05000003, + 0x900405a4, 0x05020030, 0x82240500, 0x0000ff00, + 0x82000580, 0x00000700, 0x05000005, 0x60240800, + 0x05d9fa7a, 0x60305000, 0x0501f027, 0x64c65a07, + 0x6426580e, 0x59340400, 0x4802580f, 0x0001fb2c, + 0x05e9ffa9, 0x0501f02e, 0x05d9fb2e, 0x600c0800, + 0x05d9fa6e, 0x60205000, 0x0501f01b, 0x59cc0007, + 0x05e1fe9e, 0x05020018, 0x4a026c00, 0x00000707, + 0x0501f015, 0x82240500, 0x0000ff00, 0x82000580, + 0x00000700, 0x05fc07ea, 0x82240500, 0x000000ff, + 0x90000589, 0x05fc07e6, 0x05d9fb75, 0x60285000, + 0x0501f009, 0x60385000, 0x0501f002, 0x60405000, + 0x82240500, 0x0000ff00, 0x82000580, 0x00000700, + 0x05fc07db, 0x482a6403, 0x64066203, 0x592c000e, + 0x48026013, 0x497a6015, 0x59a8002b, 0x48026006, + 0x417a7800, 0x05e5f9f7, 0x59325819, 0x812e59c0, + 0x05000003, 0x05bdfeb0, 0x497a6019, 0x5c00a800, 0x5c00a000, 0x5c00b000, 0x5c025800, 0x1c01f000, - 0x4933c857, 0x492fc857, 0x4d2c0000, 0x59300a03, - 0x90040587, 0x0500002c, 0x90040581, 0x05be0b3f, - 0x05e5fa8b, 0x4df00000, 0x598c000b, 0x81300580, - 0x05020014, 0x59300004, 0x8c000520, 0x05000004, - 0x84000520, 0x48026004, 0x0501f014, 0x42001000, - 0x00109730, 0x50081000, 0x58080002, 0x82000580, - 0x00000100, 0x05000005, 0x5808000b, 0x81300580, - 0x05be0b2a, 0x0501f009, 0x05e5fd12, 0x05020019, - 0x59300004, 0x8c000520, 0x05000004, 0x84000520, - 0x48026004, 0x0501f004, 0x0201f800, 0x0010ba2e, - 0x80c40040, 0x5c03e000, 0x05e40a55, 0x05f5fa19, - 0x05bc0b1a, 0x59325809, 0x64165a07, 0x0001fb2c, - 0x05d9ff5b, 0x59325819, 0x812e59c0, 0x05be0eae, - 0x05e9ff01, 0x80000580, 0x5c025800, 0x1c01f000, - 0x5c03e000, 0x05e40a46, 0x59300c07, 0x90040591, - 0x05fc07c7, 0x05fdf7f9, 0x4c040000, 0x59340200, - 0x4803c857, 0x8c00051c, 0x05000009, 0x59cc0805, - 0x591c001b, 0x4803c857, 0x80040580, 0x05000004, - 0x80000580, 0x4803c856, 0x0501f002, 0x90000541, - 0x5c000800, 0x1c01f000, 0x4c000000, 0x4c0c0000, - 0x4c100000, 0x61fc19ff, 0x60102000, 0x0501f010, - 0x4c000000, 0x4c0c0000, 0x4c100000, 0x5930200a, - 0x58101c03, 0x60102000, 0x0501f009, 0x4c000000, - 0x4c0c0000, 0x4c100000, 0x5930200a, 0x801021c0, - 0x05bc0ae6, 0x58101c03, 0x601c2000, 0x480fc857, - 0x4813c857, 0x481bc857, 0x05d1ff24, 0x5c002000, - 0x5c001800, 0x5c000000, 0x1c01f000, 0x8d0c0520, - 0x05000006, 0x4d400000, 0x850e1d44, 0x60aa8000, - 0x05fdfbdc, 0x5c028000, 0x1c01f000, 0x59a8021b, - 0x8c000508, 0x05000005, 0x599c0017, 0x8c00050a, - 0x05020002, 0x1c01f000, 0x90000541, 0x1c01f000, - 0x59300422, 0x84000540, 0x48026422, 0x1c01f000, - 0x4c640000, 0x05f5fd15, 0x59300203, 0x90000588, - 0x05020010, 0x60c8c800, 0x42000000, 0x20000000, - 0x41300800, 0x05c1f947, 0x0500000a, 0x59300203, - 0x90000588, 0x05020007, 0x60780000, 0x80000040, - 0x05fe07ff, 0x8064c840, 0x05fe07f4, 0x05bdfab3, - 0x05f5fd0d, 0x5c00c800, 0x1c01f000, 0x05bdfe31, - 0x05bc0aae, 0x59340403, 0x49365803, 0x65565a05, - 0x48025c07, 0x4a025c08, 0x00001000, 0x59340802, - 0x82040d00, 0x00ffffff, 0x59300403, 0x82000580, - 0x00000086, 0x42000000, 0x85000000, 0x05020003, - 0x42000000, 0x84000000, 0x80040540, 0x4802580a, - 0x59a8000f, 0x4802580b, 0x42000000, 0x00990000, - 0x59300c07, 0x90040d85, 0x05000002, 0x8400052e, - 0x4802580c, 0x497a580d, 0x59cc0004, 0x4802580e, - 0x497a580f, 0x42000800, 0x00030300, 0x59300403, - 0x82000580, 0x00000086, 0x05020006, 0x59cc0004, - 0x48025811, 0x4a025812, 0x0000ffff, 0x41780800, - 0x48065810, 0x1c01f000, 0x492fc857, 0x59a82863, - 0x801429c0, 0x05000057, 0x4c5c0000, 0x4c600000, - 0x4c640000, 0x4d2c0000, 0x4d300000, 0x42026000, - 0x0010cc38, 0x592c0c07, 0x592c100a, 0x82081500, - 0x00ffffff, 0x592c180b, 0x592c200e, 0x40165800, - 0x4014c000, 0x4014c800, 0x592c0205, 0x82000580, - 0x00000155, 0x05020037, 0x592c0407, 0x80040580, - 0x05020034, 0x592c000a, 0x82000500, 0x00ffffff, - 0x80080580, 0x0502002f, 0x592c000b, 0x82000500, - 0x00ffffff, 0x800c0580, 0x0502002a, 0x592c000e, - 0x80100580, 0x05020027, 0x4c040000, 0x4c080000, - 0x4c0c0000, 0x4c100000, 0x40640000, 0x812c0580, - 0x05020016, 0x59300203, 0x90000580, 0x0500000f, - 0x59300009, 0x800001c0, 0x0500000c, 0x05e5f998, - 0x4df00000, 0x05e5f8aa, 0x0201f800, 0x0010b998, - 0x80c40040, 0x05020002, 0x64026203, 0x5c03e000, - 0x05e4097b, 0x497a6009, 0x592cc800, 0x4064c000, - 0x4064b800, 0x0501f003, 0x592cb800, 0x485cc000, - 0x64165a07, 0x0001fb2c, 0x405e5800, 0x5c002000, - 0x5c001800, 0x5c001000, 0x5c000800, 0x0501f003, - 0x412cc000, 0x592e5800, 0x812e59c0, 0x05fe07c3, - 0x48675063, 0x48635064, 0x05e9fda2, 0x5c026000, - 0x5c025800, 0x5c00c800, 0x5c00c000, 0x5c00b800, - 0x1c01f000, 0x602c0800, 0x0501f004, 0x60100800, - 0x0501f002, 0x60040800, 0x4d2c0000, 0x59325809, - 0x812e59c0, 0x0500000f, 0x592c0205, 0x82000500, - 0x000000ff, 0x9000058e, 0x0502000a, 0x592c0000, - 0x48026009, 0x497a5800, 0x48065a09, 0x05e1f873, - 0x05000003, 0x05fdfe7e, 0x0501f002, 0x0001fb2c, - 0x5c025800, 0x1c01f000, 0x4817c857, 0x4c000000, - 0x4c040000, 0x8c14052a, 0x05000004, 0x5988011e, - 0x80000000, 0x4803111e, 0x8c14052e, 0x05000004, - 0x5988011f, 0x80000000, 0x4803111f, 0x8c14052c, - 0x05000013, 0x40140000, 0x82000500, 0x00070000, - 0x82000d80, 0x00030000, 0x0500000d, 0x82000d80, - 0x00040000, 0x0500000a, 0x82000d80, 0x00050000, - 0x05000007, 0x59880005, 0x80000000, 0x48031005, - 0x59880120, 0x80000000, 0x48031120, 0x5c000800, - 0x5c000000, 0x1c01f000, 0x4817c857, 0x4c000000, - 0x4c040000, 0x8c14052a, 0x05000004, 0x59880121, - 0x80000000, 0x48031121, 0x8c14052e, 0x05000004, - 0x59880122, 0x80000000, 0x48031122, 0x8c14052c, - 0x05000013, 0x40140000, 0x82000500, 0x00070000, - 0x82000d80, 0x00030000, 0x0500000d, 0x82000d80, - 0x00040000, 0x0500000a, 0x82000d80, 0x00050000, - 0x05000007, 0x59880005, 0x80000000, 0x48031005, - 0x59880123, 0x80000000, 0x48031123, 0x5c000800, + 0x4d2c0000, 0x59325809, 0x91380593, 0x0502002b, + 0x492fc857, 0x59300c03, 0xb0040594, 0x05000023, + 0x90040590, 0x0500001e, 0x9004058e, 0x0500001c, + 0x59341400, 0x82081d00, 0x0000ff00, 0x82081500, + 0x000000ff, 0x90040588, 0x0500000d, 0x9004058c, + 0x0500000d, 0x9004058a, 0x05be0af8, 0x820c0580, + 0x00000700, 0x05000011, 0x90080589, 0x0500000f, + 0x60180800, 0x05d9fa21, 0x0501f00c, 0x600c0000, + 0x0501f002, 0x60240000, 0x80080580, 0x05020007, + 0x60100800, 0x05d9fa19, 0x0501f004, 0x59340200, + 0x8400051a, 0x48026a00, 0x64025a07, 0x0001fb2c, + 0x0005f8e7, 0x0501f016, 0x913805a7, 0x05000009, + 0x91380594, 0x05be0add, 0x492fc857, 0x05e5fa1e, + 0x60c68000, 0x60100800, 0x61fc1001, 0x0501f006, + 0x492fc857, 0x05e5fa18, 0x60c68000, 0x60100800, + 0x60401000, 0x49425a07, 0x4806580e, 0x480a580f, + 0x0001fb2c, 0x05d9ff2a, 0x05e9ff33, 0x5c025800, + 0x1c01f000, 0x492fc857, 0x42007000, 0x00020a09, + 0x58380806, 0x492c7006, 0x800409c0, 0x05020003, + 0x492c7007, 0x0001f02b, 0x492c0800, 0x1c01f000, + 0x4d2c0000, 0x4c580000, 0x4c500000, 0x4c540000, + 0x4933c857, 0x4937c857, 0x59cc0806, 0x4807c857, + 0x82040d00, 0xff000000, 0x82040580, 0x03000000, + 0x0500000d, 0x82040580, 0x05000000, 0x0500000a, + 0x82040580, 0x21000000, 0x05000027, 0x82040580, + 0x24000000, 0x05000024, 0x82040580, 0x20000000, + 0x05020025, 0x05bdfe27, 0x05000023, 0x492fc857, + 0x492e6019, 0x59a8b073, 0x9058b41b, 0x8258b500, + 0xfffffffc, 0x8058b104, 0x485a5c05, 0x412c7800, + 0x41cca000, 0x90580490, 0x05021004, 0x912cac06, + 0x0501fad9, 0x0501f010, 0x40580800, 0x603cb000, + 0x912cac06, 0x0501fad4, 0x9004b48f, 0x05bdfe11, + 0x05000004, 0x492c7801, 0x412c7800, 0x05fdf7f2, + 0x59325819, 0x05bdfe24, 0x497a6019, 0x80000580, + 0x0501f005, 0x59340200, 0x84000554, 0x48026a00, + 0x90000541, 0x5c00a800, 0x5c00a000, 0x5c00b000, + 0x5c025800, 0x1c01f000, 0x4933c857, 0x492fc857, + 0x4d2c0000, 0x59300a03, 0x90040587, 0x0500002c, + 0x90040581, 0x05be0a75, 0x05e5fa4d, 0x4df00000, + 0x598c000b, 0x81300580, 0x05020014, 0x59300004, + 0x8c000520, 0x05000004, 0x84000520, 0x48026004, + 0x0501f014, 0x42001000, 0x001097b0, 0x50081000, + 0x58080002, 0x82000580, 0x00000100, 0x05000005, + 0x5808000b, 0x81300580, 0x05be0a60, 0x0501f009, + 0x05e5fcd4, 0x05020019, 0x59300004, 0x8c000520, + 0x05000004, 0x84000520, 0x48026004, 0x0501f004, + 0x0201f800, 0x0010ba3e, 0x80c40040, 0x5c03e000, + 0x05e40a17, 0x05f5f9e5, 0x05bc0a50, 0x59325809, + 0x64165a07, 0x0001fb2c, 0x05d9fea9, 0x59325819, + 0x812e59c0, 0x05be0de4, 0x05e9feaf, 0x80000580, + 0x5c025800, 0x1c01f000, 0x5c03e000, 0x05e40a08, + 0x59300c07, 0x90040591, 0x05fc07c7, 0x05fdf7f9, + 0x4c040000, 0x59340200, 0x4803c857, 0x8c00051c, + 0x05000009, 0x59cc0805, 0x591c001b, 0x4803c857, + 0x80040580, 0x05000004, 0x80000580, 0x4803c856, + 0x0501f002, 0x90000541, 0x5c000800, 0x1c01f000, + 0x4c000000, 0x4c0c0000, 0x4c100000, 0x61fc19ff, + 0x60102000, 0x0501f010, 0x4c000000, 0x4c0c0000, + 0x4c100000, 0x5930200a, 0x58101c03, 0x60102000, + 0x0501f009, 0x4c000000, 0x4c0c0000, 0x4c100000, + 0x5930200a, 0x801021c0, 0x05bc0a1c, 0x58101c03, + 0x601c2000, 0x480fc857, 0x4813c857, 0x481bc857, + 0x05d1fe5e, 0x5c002000, 0x5c001800, 0x5c000000, + 0x1c01f000, 0x8d0c0520, 0x05000006, 0x4d400000, + 0x850e1d44, 0x60aa8000, 0x05fdfbc3, 0x5c028000, + 0x1c01f000, 0x59a8021b, 0x8c000508, 0x05000005, + 0x599c0017, 0x8c00050a, 0x05020002, 0x1c01f000, + 0x90000541, 0x1c01f000, 0x59300422, 0x84000540, + 0x48026422, 0x1c01f000, 0x4c640000, 0x05f5fce1, + 0x59300203, 0x90000588, 0x05020010, 0x60c8c800, + 0x42000000, 0x20000000, 0x41300800, 0x05c1f87b, + 0x0500000a, 0x59300203, 0x90000588, 0x05020007, + 0x60780000, 0x80000040, 0x05fe07ff, 0x8064c840, + 0x05fe07f4, 0x05bdf9e9, 0x05f5fcd9, 0x5c00c800, + 0x1c01f000, 0x05bdfd67, 0x05bc09e4, 0x59340403, + 0x49365803, 0x65565a05, 0x48025c07, 0x4a025c08, + 0x00001000, 0x59340802, 0x82040d00, 0x00ffffff, + 0x59300403, 0x82000580, 0x00000086, 0x42000000, + 0x85000000, 0x05020003, 0x42000000, 0x84000000, + 0x80040540, 0x4802580a, 0x59a8000f, 0x4802580b, + 0x42000000, 0x00990000, 0x59300c07, 0x90040d85, + 0x05000002, 0x8400052e, 0x4802580c, 0x497a580d, + 0x59cc0004, 0x4802580e, 0x497a580f, 0x42000800, + 0x00030300, 0x59300403, 0x82000580, 0x00000086, + 0x05020006, 0x59cc0004, 0x48025811, 0x4a025812, + 0x0000ffff, 0x41780800, 0x48065810, 0x1c01f000, + 0x492fc857, 0x59a82863, 0x801429c0, 0x05000057, + 0x4c5c0000, 0x4c600000, 0x4c640000, 0x4d2c0000, + 0x4d300000, 0x42026000, 0x0010cc48, 0x592c0c07, + 0x592c100a, 0x82081500, 0x00ffffff, 0x592c180b, + 0x592c200e, 0x40165800, 0x4014c000, 0x4014c800, + 0x592c0205, 0x82000580, 0x00000155, 0x05020037, + 0x592c0407, 0x80040580, 0x05020034, 0x592c000a, + 0x82000500, 0x00ffffff, 0x80080580, 0x0502002f, + 0x592c000b, 0x82000500, 0x00ffffff, 0x800c0580, + 0x0502002a, 0x592c000e, 0x80100580, 0x05020027, + 0x4c040000, 0x4c080000, 0x4c0c0000, 0x4c100000, + 0x40640000, 0x812c0580, 0x05020016, 0x59300203, + 0x90000580, 0x0500000f, 0x59300009, 0x800001c0, + 0x0500000c, 0x05e5f95a, 0x4df00000, 0x05e5f86c, + 0x0201f800, 0x0010b9a8, 0x80c40040, 0x05020002, + 0x64026203, 0x5c03e000, 0x05e4093d, 0x497a6009, + 0x592cc800, 0x4064c000, 0x4064b800, 0x0501f003, + 0x592cb800, 0x485cc000, 0x64165a07, 0x0001fb2c, + 0x405e5800, 0x5c002000, 0x5c001800, 0x5c001000, + 0x5c000800, 0x0501f003, 0x412cc000, 0x592e5800, + 0x812e59c0, 0x05fe07c3, 0x48675063, 0x48635064, + 0x05e9fd50, 0x5c026000, 0x5c025800, 0x5c00c800, + 0x5c00c000, 0x5c00b800, 0x1c01f000, 0x602c0800, + 0x0501f004, 0x60100800, 0x0501f002, 0x60040800, + 0x4d2c0000, 0x59325809, 0x812e59c0, 0x0500000f, + 0x592c0205, 0x82000500, 0x000000ff, 0x9000058e, + 0x0502000a, 0x592c0000, 0x48026009, 0x497a5800, + 0x48065a09, 0x05ddfff2, 0x05000003, 0x05fdfe7e, + 0x0501f002, 0x0001fb2c, 0x5c025800, 0x1c01f000, + 0x4817c857, 0x4c000000, 0x4c040000, 0x8c14052a, + 0x05000004, 0x5988011e, 0x80000000, 0x4803111e, + 0x8c14052e, 0x05000004, 0x5988011f, 0x80000000, + 0x4803111f, 0x8c14052c, 0x05000013, 0x40140000, + 0x82000500, 0x00070000, 0x82000d80, 0x00030000, + 0x0500000d, 0x82000d80, 0x00040000, 0x0500000a, + 0x82000d80, 0x00050000, 0x05000007, 0x59880005, + 0x80000000, 0x48031005, 0x59880120, 0x80000000, + 0x48031120, 0x5c000800, 0x5c000000, 0x1c01f000, + 0x4817c857, 0x4c000000, 0x4c040000, 0x8c14052a, + 0x05000004, 0x59880121, 0x80000000, 0x48031121, + 0x8c14052e, 0x05000004, 0x59880122, 0x80000000, + 0x48031122, 0x8c14052c, 0x05000013, 0x40140000, + 0x82000500, 0x00070000, 0x82000d80, 0x00030000, + 0x0500000d, 0x82000d80, 0x00040000, 0x0500000a, + 0x82000d80, 0x00050000, 0x05000007, 0x59880005, + 0x80000000, 0x48031005, 0x59880123, 0x80000000, + 0x48031123, 0x5c000800, 0x5c000000, 0x1c01f000, + 0x4807c857, 0x4c000000, 0x8c04052c, 0x05000004, + 0x5988010c, 0x80000000, 0x4803110c, 0x8c04052a, + 0x05000004, 0x5988010d, 0x80000000, 0x4803110d, + 0x8c040528, 0x05000004, 0x5988010e, 0x80000000, + 0x4803110e, 0x8c040526, 0x05000004, 0x5988010f, + 0x80000000, 0x4803110f, 0x8c040524, 0x05000004, + 0x59880110, 0x80000000, 0x48031110, 0x8c040522, + 0x05000004, 0x59880111, 0x80000000, 0x48031111, + 0x8c040520, 0x05000004, 0x59880112, 0x80000000, + 0x48031112, 0x5c000000, 0x1c01f000, 0x4807c857, + 0x4c000000, 0x59880113, 0x80000000, 0x48031113, 0x5c000000, 0x1c01f000, 0x4807c857, 0x4c000000, - 0x8c04052c, 0x05000004, 0x5988010c, 0x80000000, - 0x4803110c, 0x8c04052a, 0x05000004, 0x5988010d, - 0x80000000, 0x4803110d, 0x8c040528, 0x05000004, - 0x5988010e, 0x80000000, 0x4803110e, 0x8c040526, - 0x05000004, 0x5988010f, 0x80000000, 0x4803110f, - 0x8c040524, 0x05000004, 0x59880110, 0x80000000, - 0x48031110, 0x8c040522, 0x05000004, 0x59880111, - 0x80000000, 0x48031111, 0x8c040520, 0x05000004, - 0x59880112, 0x80000000, 0x48031112, 0x5c000000, - 0x1c01f000, 0x4807c857, 0x4c000000, 0x59880113, - 0x80000000, 0x48031113, 0x5c000000, 0x1c01f000, - 0x4807c857, 0x4c000000, 0x8c04051c, 0x05000004, - 0x59880114, 0x80000000, 0x48031114, 0x8c04051a, - 0x05000004, 0x59880115, 0x80000000, 0x48031115, - 0x5c000000, 0x1c01f000, 0x4807c857, 0x4c000000, - 0x8c040518, 0x05000004, 0x59880116, 0x80000000, - 0x48031116, 0x8c040516, 0x05000004, 0x59880117, - 0x80000000, 0x48031117, 0x8c040514, 0x05000004, - 0x59880118, 0x80000000, 0x48031118, 0x5c000000, - 0x1c01f000, 0x4807c857, 0x4c000000, 0x8c040510, - 0x05000004, 0x59880119, 0x80000000, 0x48031119, - 0x8c04050c, 0x05000004, 0x5988011a, 0x80000000, - 0x4803111a, 0x5c000000, 0x1c01f000, 0x4807c857, - 0x4c000000, 0x8c040508, 0x05000004, 0x5988011b, - 0x80000000, 0x4803111b, 0x8c040504, 0x05000004, - 0x5988011c, 0x80000000, 0x4803111c, 0x5c000000, - 0x1c01f000, 0x4807c856, 0x4c000000, 0x598800e5, - 0x80000000, 0x480310e5, 0x5c000000, 0x1c01f000, - 0x40680000, 0x5c036000, 0x4db00000, 0x49b3c857, - 0x4c040000, 0x50000800, 0x80040800, 0x05001002, - 0x44040000, 0x5c000800, 0x1c01f000, 0x480fc857, - 0x4c000000, 0x900c0580, 0x05020004, 0x42000000, - 0x001097ba, 0x0501f012, 0x820c0580, 0x00001001, - 0x05020004, 0x42000000, 0x001097bb, 0x0501f00c, - 0x820c0580, 0x00001002, 0x05020004, 0x42000000, - 0x001097bc, 0x0501f006, 0x820c0c80, 0x0000201c, - 0x05be1932, 0x900c051f, 0x0c01f804, 0x05fdffde, - 0x5c000000, 0x1c01f000, 0x001088d6, 0x001088d9, - 0x001088dc, 0x001088df, 0x001088e2, 0x001088e5, - 0x001088e8, 0x001088eb, 0x001088ee, 0x001088f1, - 0x001088f4, 0x001088f7, 0x001088fa, 0x001088fd, - 0x00108900, 0x00108903, 0x00108906, 0x00108909, - 0x0010890c, 0x0010890f, 0x00108912, 0x00108915, - 0x00108918, 0x0010891b, 0x0010891e, 0x00108921, - 0x00108924, 0x00108927, 0x42000000, 0x001097bd, - 0x1c01f000, 0x42000000, 0x001097be, 0x1c01f000, - 0x42000000, 0x001097bf, 0x1c01f000, 0x42000000, - 0x001097c0, 0x1c01f000, 0x42000000, 0x001097c1, - 0x1c01f000, 0x42000000, 0x001097c2, 0x1c01f000, - 0x42000000, 0x001097c3, 0x1c01f000, 0x42000000, - 0x001097c4, 0x1c01f000, 0x42000000, 0x001097c5, - 0x1c01f000, 0x42000000, 0x001097c6, 0x1c01f000, - 0x42000000, 0x001097c7, 0x1c01f000, 0x42000000, - 0x001097c8, 0x1c01f000, 0x42000000, 0x001097c9, - 0x1c01f000, 0x42000000, 0x001097ca, 0x1c01f000, - 0x42000000, 0x001097cb, 0x1c01f000, 0x42000000, - 0x001097cc, 0x1c01f000, 0x42000000, 0x001097cd, - 0x1c01f000, 0x42000000, 0x001097ce, 0x1c01f000, - 0x42000000, 0x001097cf, 0x1c01f000, 0x42000000, - 0x001097d0, 0x1c01f000, 0x42000000, 0x001097d1, - 0x1c01f000, 0x42000000, 0x001097d2, 0x1c01f000, - 0x42000000, 0x001097d3, 0x1c01f000, 0x42000000, - 0x001097d4, 0x1c01f000, 0x42000000, 0x001097d5, - 0x1c01f000, 0x42000000, 0x001097d6, 0x1c01f000, - 0x42000000, 0x001097d7, 0x1c01f000, 0x42000000, - 0x001097d8, 0x1c01f000, 0x480fc857, 0x4c000000, - 0x900c0581, 0x05020004, 0x42000000, 0x0010973d, - 0x0501f00f, 0x900c0582, 0x05020004, 0x42000000, - 0x0010973e, 0x0501f00a, 0x900c0583, 0x05020004, - 0x42000000, 0x0010973f, 0x0501f005, 0x900c0584, - 0x05020004, 0x42000000, 0x00109740, 0x05fdff56, - 0x5c000000, 0x1c01f000, 0x4c000000, 0x59a8021b, - 0x4803c857, 0x8c000502, 0x05000010, 0x8c000506, - 0x05000004, 0x42000000, 0x00109748, 0x0501f011, - 0x8c00050a, 0x05000004, 0x42000000, 0x00109747, - 0x0501f00c, 0x8c000508, 0x05000004, 0x42000000, - 0x0010974a, 0x0501f007, 0x05d9ff88, 0x05000006, - 0x8c000506, 0x05020004, 0x42000000, 0x00109749, - 0x05fdff39, 0x5c000000, 0x1c01f000, 0x8058b1c0, - 0x05bc0886, 0x5450a800, 0x8050a000, 0x8054a800, - 0x8058b040, 0x05fe07fc, 0x1c01f000, 0x8058b1c0, - 0x05bc087e, 0x4450a800, 0x8054a800, 0x8058b040, - 0x05fe07fd, 0x1c01f000, 0x4813c857, 0x4817c857, - 0x40140000, 0x80100480, 0x05be1874, 0x497bc841, - 0x41787000, 0x42006800, 0x00140000, 0x59a80083, - 0x8c000500, 0x05000003, 0x42006800, 0x0013a000, - 0x4837c857, 0x8010048d, 0x05021005, 0x8014048d, - 0x05001003, 0x40147000, 0x80342840, 0x61fc7801, - 0x40100000, 0x80140480, 0x82006d00, 0xffffff00, - 0x05020002, 0x40007800, 0x4813c840, 0x483fc842, - 0x05011000, 0x40100000, 0x803c2400, 0x40100000, - 0x80140580, 0x05fe07f3, 0x45782800, 0x803871c0, - 0x05000005, 0x40382800, 0x41787000, 0x80102000, - 0x05fdf7eb, 0x1c01f000, 0x8058b1c0, 0x05bc084b, - 0x50500000, 0x9c0001c0, 0x4400a800, 0x8050a000, - 0x8054a800, 0x8058b040, 0x05fe07fa, 0x1c01f000, - 0x4c000000, 0x59a80007, 0x8c00051c, 0x5c000000, - 0x1c01f000, 0x0501f805, 0x60058800, 0x05020002, - 0x60018800, 0x1c01f000, 0x59a80007, 0x8c000518, - 0x1c01f000, 0x61906800, 0x80346840, 0x05000006, - 0x64070000, 0x40000000, 0x59807000, 0x8c380500, - 0x05fc07fa, 0x1c01f000, 0x640f0000, 0x40000000, - 0x59800000, 0x8c000500, 0x05fc07fc, 0x1c01f000, - 0x00000001, 0x00000002, 0x00000004, 0x00000008, - 0x00000010, 0x00000020, 0x00000040, 0x00000080, - 0x00000100, 0x00000200, 0x00000400, 0x00000800, - 0x00001000, 0x00002000, 0x00004000, 0x00008000, - 0x00010000, 0x00020000, 0x00040000, 0x00080000, - 0x00100000, 0x00200000, 0x00400000, 0x00800000, - 0x01000000, 0x02000000, 0x04000000, 0x08000000, - 0x10000000, 0x20000000, 0x40000000, 0x80000000, - 0x40000000, 0x600070e0, 0x60007820, 0x4a007016, - 0x00010001, 0x58380016, 0x8c000500, 0x05fc07fc, - 0x600c4000, 0x60003002, 0x64807808, 0x583c2808, - 0x8c14053e, 0x05000004, 0x80183040, 0x05fe07fc, - 0x0501f00d, 0x583c2808, 0x82140500, 0x20000400, - 0x82000580, 0x00000400, 0x05020005, 0x82140500, - 0x00000300, 0x90000580, 0x05000007, 0x80204040, - 0x05fe07ee, 0x4a007016, 0x00010000, 0x90000541, - 0x0501f040, 0x650c7808, 0x583c0009, 0x8c000500, - 0x05000005, 0x60002000, 0x4a007016, 0x00010000, - 0x0501f037, 0x65007808, 0x583c5809, 0x65047808, - 0x583c6009, 0x65087808, 0x583c6809, 0x4a007016, - 0x00010000, 0x82102d00, 0xf0000000, 0x90140580, - 0x05000002, 0x0501f020, 0x60202800, 0x60003000, - 0x803000c8, 0x40003800, 0x8030010a, 0x801c3d80, - 0x40300000, 0x80180580, 0x80100400, 0x801c0400, - 0x802c5c00, 0x803400c8, 0x40003800, 0x8034010a, - 0x801c3d80, 0x40340000, 0x80180580, 0x801c0400, - 0x80306400, 0x802c00c8, 0x40003800, 0x802c010a, - 0x801c3d80, 0x402c0000, 0x80180580, 0x801c0400, - 0x80346c00, 0x82183400, 0x9e3779b9, 0x80142840, - 0x05fe07e4, 0x0502000b, 0x402c0000, 0x80040580, - 0x05fe07c7, 0x40300000, 0x80080580, 0x05fe07c4, - 0x40340000, 0x800c0580, 0x05fe07c1, 0x80000580, - 0x1c01f000, 0x1c01f000, 0x42005000, 0x7ff4c000, - 0x58280800, 0x58281001, 0x58281802, 0x58282003, - 0x05fdff98, 0x05020807, 0x82101d00, 0x0fffffff, - 0x480fc021, 0x900c01c0, 0x4803c022, 0x1c01f000, - 0x497bc021, 0x497bc022, 0x4a03c020, 0x00004020, - 0x4a03c011, 0x40200011, 0x6016d800, 0x05027011, - 0x59e00020, 0x90000582, 0x0502000e, 0x05006000, - 0x4203e000, 0x40000000, 0x59e00017, 0x60000800, - 0x8c00050a, 0x05c20d22, 0x8d0c0530, 0x05c20d0e, - 0x05c20d10, 0x6403c017, 0x4203e000, 0x30000001, - 0x05bdf953, 0x05fdf7ff, 0x59a80886, 0x8c100502, - 0x05000003, 0x84040d42, 0x0501f007, 0x8c100504, - 0x05000003, 0x84040d44, 0x0501f003, 0x8c100500, - 0x84040d40, 0x48075086, 0x1c01f000, 0x59a80086, - 0x8c000502, 0x05000009, 0x4a035087, 0x0000008b, - 0x4a035088, 0x0000008b, 0x4a035089, 0x0000008b, - 0x6413508a, 0x0501f00c, 0x8c000504, 0x05000006, - 0x65bf5087, 0x65bf5088, 0x65df5089, 0x6403508a, - 0x0501f005, 0x64cf5087, 0x64cf5088, 0x64975089, - 0x6403508a, 0x1c01f000, 0x4024843a, - 0x00000000, 0x00000000, 0x0010d000, 0x00003c46, + 0x8c04051c, 0x05000004, 0x59880114, 0x80000000, + 0x48031114, 0x8c04051a, 0x05000004, 0x59880115, + 0x80000000, 0x48031115, 0x5c000000, 0x1c01f000, + 0x4807c857, 0x4c000000, 0x8c040518, 0x05000004, + 0x59880116, 0x80000000, 0x48031116, 0x8c040516, + 0x05000004, 0x59880117, 0x80000000, 0x48031117, + 0x8c040514, 0x05000004, 0x59880118, 0x80000000, + 0x48031118, 0x5c000000, 0x1c01f000, 0x4807c857, + 0x4c000000, 0x8c040510, 0x05000004, 0x59880119, + 0x80000000, 0x48031119, 0x8c04050c, 0x05000004, + 0x5988011a, 0x80000000, 0x4803111a, 0x5c000000, + 0x1c01f000, 0x4807c857, 0x4c000000, 0x8c040508, + 0x05000004, 0x5988011b, 0x80000000, 0x4803111b, + 0x8c040504, 0x05000004, 0x5988011c, 0x80000000, + 0x4803111c, 0x5c000000, 0x1c01f000, 0x4807c856, + 0x4c000000, 0x598800e5, 0x80000000, 0x480310e5, + 0x5c000000, 0x1c01f000, 0x40680000, 0x5c036000, + 0x4db00000, 0x49b3c857, 0x4c040000, 0x50000800, + 0x80040800, 0x05001002, 0x44040000, 0x5c000800, + 0x1c01f000, 0x480fc857, 0x4c000000, 0x900c0580, + 0x05020004, 0x42000000, 0x0010983a, 0x0501f012, + 0x820c0580, 0x00001001, 0x05020004, 0x42000000, + 0x0010983b, 0x0501f00c, 0x820c0580, 0x00001002, + 0x05020004, 0x42000000, 0x0010983c, 0x0501f006, + 0x820c0c80, 0x0000201c, 0x05be1868, 0x900c051f, + 0x0c01f804, 0x05fdffde, 0x5c000000, 0x1c01f000, + 0x001089a0, 0x001089a3, 0x001089a6, 0x001089a9, + 0x001089ac, 0x001089af, 0x001089b2, 0x001089b5, + 0x001089b8, 0x001089bb, 0x001089be, 0x001089c1, + 0x001089c4, 0x001089c7, 0x001089ca, 0x001089cd, + 0x001089d0, 0x001089d3, 0x001089d6, 0x001089d9, + 0x001089dc, 0x001089df, 0x001089e2, 0x001089e5, + 0x001089e8, 0x001089eb, 0x001089ee, 0x001089f1, + 0x42000000, 0x0010983d, 0x1c01f000, 0x42000000, + 0x0010983e, 0x1c01f000, 0x42000000, 0x0010983f, + 0x1c01f000, 0x42000000, 0x00109840, 0x1c01f000, + 0x42000000, 0x00109841, 0x1c01f000, 0x42000000, + 0x00109842, 0x1c01f000, 0x42000000, 0x00109843, + 0x1c01f000, 0x42000000, 0x00109844, 0x1c01f000, + 0x42000000, 0x00109845, 0x1c01f000, 0x42000000, + 0x00109846, 0x1c01f000, 0x42000000, 0x00109847, + 0x1c01f000, 0x42000000, 0x00109848, 0x1c01f000, + 0x42000000, 0x00109849, 0x1c01f000, 0x42000000, + 0x0010984a, 0x1c01f000, 0x42000000, 0x0010984b, + 0x1c01f000, 0x42000000, 0x0010984c, 0x1c01f000, + 0x42000000, 0x0010984d, 0x1c01f000, 0x42000000, + 0x0010984e, 0x1c01f000, 0x42000000, 0x0010984f, + 0x1c01f000, 0x42000000, 0x00109850, 0x1c01f000, + 0x42000000, 0x00109851, 0x1c01f000, 0x42000000, + 0x00109852, 0x1c01f000, 0x42000000, 0x00109853, + 0x1c01f000, 0x42000000, 0x00109854, 0x1c01f000, + 0x42000000, 0x00109855, 0x1c01f000, 0x42000000, + 0x00109856, 0x1c01f000, 0x42000000, 0x00109857, + 0x1c01f000, 0x42000000, 0x00109858, 0x1c01f000, + 0x480fc857, 0x4c000000, 0x900c0581, 0x05020004, + 0x42000000, 0x001097bd, 0x0501f00f, 0x900c0582, + 0x05020004, 0x42000000, 0x001097be, 0x0501f00a, + 0x900c0583, 0x05020004, 0x42000000, 0x001097bf, + 0x0501f005, 0x900c0584, 0x05020004, 0x42000000, + 0x001097c0, 0x05fdff56, 0x5c000000, 0x1c01f000, + 0x4c000000, 0x59a8021b, 0x4803c857, 0x8c000502, + 0x05000010, 0x8c000506, 0x05000004, 0x42000000, + 0x001097c8, 0x0501f011, 0x8c00050a, 0x05000004, + 0x42000000, 0x001097c7, 0x0501f00c, 0x8c000508, + 0x05000004, 0x42000000, 0x001097ca, 0x0501f007, + 0x05d9fef4, 0x05000006, 0x8c000506, 0x05020004, + 0x42000000, 0x001097c9, 0x05fdff39, 0x5c000000, + 0x1c01f000, 0x8058b1c0, 0x05b80fbc, 0x5450a800, + 0x8050a000, 0x8054a800, 0x8058b040, 0x05fe07fc, + 0x1c01f000, 0x8058b1c0, 0x05b80fb4, 0x4450a800, + 0x8054a800, 0x8058b040, 0x05fe07fd, 0x1c01f000, + 0x4813c857, 0x4817c857, 0x40140000, 0x80100480, + 0x05ba1faa, 0x497bc841, 0x41787000, 0x42006800, + 0x00140000, 0x59a80083, 0x8c000500, 0x05000003, + 0x42006800, 0x0013a000, 0x4837c857, 0x8010048d, + 0x05021005, 0x8014048d, 0x05001003, 0x40147000, + 0x80342840, 0x61fc7801, 0x40100000, 0x80140480, + 0x82006d00, 0xffffff00, 0x05020002, 0x40007800, + 0x4813c840, 0x483fc842, 0x05011000, 0x40100000, + 0x803c2400, 0x40100000, 0x80140580, 0x05fe07f3, + 0x45782800, 0x803871c0, 0x05000005, 0x40382800, + 0x41787000, 0x80102000, 0x05fdf7eb, 0x1c01f000, + 0x8058b1c0, 0x05b80f81, 0x50500000, 0x9c0001c0, + 0x4400a800, 0x8050a000, 0x8054a800, 0x8058b040, + 0x05fe07fa, 0x1c01f000, 0x4c000000, 0x59a80007, + 0x8c00051c, 0x5c000000, 0x1c01f000, 0x0501f805, + 0x60058800, 0x05020002, 0x60018800, 0x1c01f000, + 0x59a80007, 0x8c000518, 0x1c01f000, 0x61906800, + 0x80346840, 0x05000006, 0x64070000, 0x40000000, + 0x59807000, 0x8c380500, 0x05fc07fa, 0x1c01f000, + 0x640f0000, 0x40000000, 0x59800000, 0x8c000500, + 0x05fc07fc, 0x1c01f000, 0x59a80006, 0x8c000516, + 0x1c01f000, 0x00000001, 0x00000002, 0x00000004, + 0x00000008, 0x00000010, 0x00000020, 0x00000040, + 0x00000080, 0x00000100, 0x00000200, 0x00000400, + 0x00000800, 0x00001000, 0x00002000, 0x00004000, + 0x00008000, 0x00010000, 0x00020000, 0x00040000, + 0x00080000, 0x00100000, 0x00200000, 0x00400000, + 0x00800000, 0x01000000, 0x02000000, 0x04000000, + 0x08000000, 0x10000000, 0x20000000, 0x40000000, + 0x80000000, 0x40000000, 0x600070e0, 0x60007820, + 0x4a007016, 0x00010001, 0x58380016, 0x8c000500, + 0x05fc07fc, 0x600c4000, 0x60003002, 0x64807808, + 0x583c2808, 0x8c14053e, 0x05000004, 0x80183040, + 0x05fe07fc, 0x0501f00d, 0x583c2808, 0x82140500, + 0x20000400, 0x82000580, 0x00000400, 0x05020005, + 0x82140500, 0x00000300, 0x90000580, 0x05000007, + 0x80204040, 0x05fe07ee, 0x4a007016, 0x00010000, + 0x90000541, 0x0501f040, 0x650c7808, 0x583c0009, + 0x8c000500, 0x05000005, 0x60002000, 0x4a007016, + 0x00010000, 0x0501f037, 0x65007808, 0x583c5809, + 0x65047808, 0x583c6009, 0x65087808, 0x583c6809, + 0x4a007016, 0x00010000, 0x82102d00, 0xf0000000, + 0x90140580, 0x05000002, 0x0501f020, 0x60202800, + 0x60003000, 0x803000c8, 0x40003800, 0x8030010a, + 0x801c3d80, 0x40300000, 0x80180580, 0x80100400, + 0x801c0400, 0x802c5c00, 0x803400c8, 0x40003800, + 0x8034010a, 0x801c3d80, 0x40340000, 0x80180580, + 0x801c0400, 0x80306400, 0x802c00c8, 0x40003800, + 0x802c010a, 0x801c3d80, 0x402c0000, 0x80180580, + 0x801c0400, 0x80346c00, 0x82183400, 0x9e3779b9, + 0x80142840, 0x05fe07e4, 0x0502000b, 0x402c0000, + 0x80040580, 0x05fe07c7, 0x40300000, 0x80080580, + 0x05fe07c4, 0x40340000, 0x800c0580, 0x05fe07c1, + 0x80000580, 0x1c01f000, 0x1c01f000, 0x42005000, + 0x7ff4c000, 0x58280800, 0x58281001, 0x58281802, + 0x58282003, 0x05fdff98, 0x05020807, 0x82101d00, + 0x0fffffff, 0x480fc021, 0x900c01c0, 0x4803c022, + 0x1c01f000, 0x497bc021, 0x497bc022, 0x4a03c020, + 0x00004020, 0x4a03c011, 0x40200011, 0x6016d800, + 0x05027011, 0x59e00020, 0x90000582, 0x0502000e, + 0x05006000, 0x4203e000, 0x40000000, 0x59e00017, + 0x60000800, 0x8c00050a, 0x05c20c53, 0x8d0c0530, + 0x05c20c3f, 0x05c20c41, 0x6403c017, 0x4203e000, + 0x30000001, 0x05bdf886, 0x05fdf7ff, 0x59a80886, + 0x8c100502, 0x05000003, 0x84040d42, 0x0501f007, + 0x8c100504, 0x05000003, 0x84040d44, 0x0501f003, + 0x8c100500, 0x84040d40, 0x48075086, 0x1c01f000, + 0x59a80086, 0x8c000502, 0x05000009, 0x4a035087, + 0x0000008b, 0x4a035088, 0x0000008b, 0x4a035089, + 0x0000008b, 0x6413508a, 0x0501f00c, 0x8c000504, + 0x05000006, 0x65bf5087, 0x65bf5088, 0x65df5089, + 0x6403508a, 0x0501f005, 0x64cf5087, 0x64cf5088, + 0x64975089, 0x6403508a, 0x1c01f000, 0xf3199441, + 0x00000000, 0x00000000, 0x0010d000, 0x00003c5e, 0x00000000, 0x00000000, 0x00020000, 0x00000a08, - 0x916c0583, 0x01020180, 0x42000000, 0x00109428, + 0x916c0583, 0x01020180, 0x42000000, 0x001094a8, 0x50000000, 0x800001c0, 0x05020a0f, 0x0501f9cb, 0x0501fd37, 0x0501fb39, 0x59a80068, 0x80000540, 0x01020e7c, 0x0501ff5a, 0x05fdf7f2, 0x915c04a0, @@ -8931,7 +8982,7 @@ static const uint32_t isp_2500_risc_code[] = { 0x8c040508, 0x010209e6, 0x42007000, 0x00020a09, 0x58380000, 0x90001484, 0x0c001003, 0x0101f9e6, 0x1c01f000, 0x00020031, 0x00020071, 0x00020078, - 0x00100ee9, 0x82040d00, 0x43200f80, 0x0102061f, + 0x00100ee7, 0x82040d00, 0x43200f80, 0x0102061f, 0x58380002, 0x80000540, 0x05000008, 0x0101f612, 0x82040d00, 0x43200f80, 0x0102061f, 0x58380002, 0x80000540, 0x05fe07d6, 0x58386001, 0x58300008, @@ -8951,7 +9002,7 @@ static const uint32_t isp_2500_risc_code[] = { 0x58300802, 0x82040580, 0x00000100, 0x0102062c, 0x4d2c0000, 0x40325800, 0x0101fd79, 0x5c025800, 0x0101f637, 0x59b800ea, 0x82000d00, 0xf2000038, - 0x0102077a, 0x8c000510, 0x01000779, 0x59ba60e0, + 0x01020778, 0x8c000510, 0x01000777, 0x59ba60e0, 0x81300182, 0x0502103d, 0x05002024, 0x8532653e, 0x59300407, 0x90000583, 0x0502001e, 0x59300203, 0x90000584, 0x0502001b, 0x59325809, 0x59300004, @@ -8960,7 +9011,7 @@ static const uint32_t isp_2500_risc_code[] = { 0x5934000f, 0x8d0c0512, 0x05020005, 0x5934140b, 0x80081040, 0x05001002, 0x480a6c0b, 0x80000540, 0x050209f1, 0x59b800ea, 0x8c000510, 0x05fe07e0, - 0x1c01f000, 0x0129fc79, 0x05fc07ef, 0x0101f772, + 0x1c01f000, 0x0129fd05, 0x05fc07ef, 0x0101f770, 0x61567000, 0x0501f021, 0x83326500, 0x3fffffff, 0x59300407, 0x90000583, 0x05020012, 0x59325809, 0x5932680a, 0x4a025a05, 0x00000103, 0x497a580a, @@ -8969,14 +9020,14 @@ static const uint32_t isp_2500_risc_code[] = { 0x480a6c0b, 0x80000540, 0x050209d3, 0x05fdf7e2, 0x61527000, 0x0501f009, 0x83300500, 0x60000000, 0x05000011, 0x81326580, 0x8000013a, 0x82000400, - 0x0010077e, 0x50027000, 0x59300c07, 0x90040582, - 0x01000772, 0x59300004, 0x8c00053e, 0x05020003, - 0x0501fff5, 0x05fdf7d0, 0x0129fc79, 0x05fc07fd, - 0x0101f772, 0x83300500, 0x1f000000, 0x01000774, + 0x0010077c, 0x50027000, 0x59300c07, 0x90040582, + 0x01000770, 0x59300004, 0x8c00053e, 0x05020003, + 0x0501fff5, 0x05fdf7d0, 0x0129fd05, 0x05fc07fd, + 0x0101f770, 0x83300500, 0x1f000000, 0x01000772, 0x81326580, 0x80000130, 0x90000c94, 0x010219e6, - 0x1201f000, 0x00100782, 0x82000500, 0xf0000000, + 0x1201f000, 0x00100780, 0x82000500, 0xf0000000, 0x82040d00, 0x0fffffff, 0x80040d40, 0x4807c857, - 0x59b800ea, 0x8c000516, 0x01060051, 0x480770e1, + 0x59b800ea, 0x8c000516, 0x0106004f, 0x480770e1, 0x1c01f000, 0x59325809, 0x412c7000, 0x58380a05, 0x9004050f, 0x82000c00, 0x00100cde, 0x50044000, 0x0c01f001, 0x00100a75, 0x00100a75, 0x00020141, @@ -9002,44 +9053,44 @@ static const uint32_t isp_2500_risc_code[] = { 0x592c1a08, 0x4802600c, 0x481a600d, 0x481e600e, 0x480e600f, 0x843c7d4a, 0x403c1000, 0x1c01f000, 0x59e00004, 0x8c00050e, 0x05fe06d5, 0x1c01f000, - 0x42001000, 0x00109c51, 0x58080009, 0x80000540, - 0x01060758, 0x4a001003, 0x00109c5a, 0x4c080000, + 0x42001000, 0x00109cd1, 0x58080009, 0x80000540, + 0x01060756, 0x4a001003, 0x00109cda, 0x4c080000, 0x0501f812, 0x5c001000, 0x48141009, 0x480c1006, 0x48101007, 0x64001001, 0x64101005, 0x64041004, 0x05fdf680, 0x58300802, 0x82040580, 0x00000100, - 0x01060767, 0x82300580, 0x00109c51, 0x01060762, + 0x01060765, 0x82300580, 0x00109cd1, 0x01060760, 0x49786009, 0x1c01f000, 0x61901800, 0x800c1840, 0x05000006, 0x64070000, 0x40000000, 0x59800000, - 0x8c000500, 0x05fc07fa, 0x010407b9, 0x600028f4, + 0x8c000500, 0x05fc07fa, 0x010407b7, 0x600028f4, 0x58142024, 0x58141823, 0x58142825, 0x64030000, 0x1c01f000, 0x4c000000, 0x4df00000, 0x4203e000, 0xb0100000, 0x41f00000, 0x81fe1500, 0x8d080512, - 0x010a0989, 0x8d08051c, 0x05020eca, 0x8d080518, + 0x010a0987, 0x8d08051c, 0x05020eca, 0x8d080518, 0x05020efd, 0x8d08051a, 0x05fe0efb, 0x83080500, 0x00000d00, 0x05020804, 0x5c03e000, 0x5c000000, - 0x1801f000, 0x8d080516, 0x01060fd4, 0x8d080514, + 0x1801f000, 0x8d080516, 0x01060fd2, 0x8d080514, 0x05fe0fbc, 0x8d080508, 0x01060d6b, 0x8d080500, - 0x05020e6d, 0x8d08050c, 0x010a088e, 0x8d08050a, - 0x010606a4, 0x1c01f000, 0x42000000, 0x0010942e, + 0x05020e6d, 0x8d08050c, 0x010a088c, 0x8d08050a, + 0x010606a2, 0x1c01f000, 0x42000000, 0x001094ae, 0x50000000, 0x8c000504, 0x05000014, 0x42000000, - 0x0010942e, 0x50000000, 0x8c000502, 0x05020002, + 0x001094ae, 0x50000000, 0x8c000502, 0x05020002, 0x1c01f000, 0x4df00000, 0x4203e000, 0x50000000, - 0x42034000, 0x00109410, 0x59a0001e, 0x59a1d806, + 0x42034000, 0x00109490, 0x59a0001e, 0x59a1d806, 0x84000502, 0x4803401e, 0x58ec0008, 0x0801f800, 0x5c03e000, 0x1c01f000, 0x05027002, 0x05026002, 0x1c01f000, 0x4df00000, 0x4203e000, 0x50000000, 0x59e00020, 0xb0000d85, 0x05000003, 0xb0000d84, 0x05020007, 0x4803c857, 0x42000800, 0x00020a09, 0x58040800, 0x90040d80, 0x05020019, 0x0101fd68, - 0x05000017, 0x412dd800, 0x48efc857, 0x0115fe83, - 0x42034000, 0x00109410, 0x49a1d80a, 0x48ef4006, + 0x05000017, 0x412dd800, 0x48efc857, 0x0115fe87, + 0x42034000, 0x00109490, 0x49a1d80a, 0x48ef4006, 0x59a0001e, 0x84000544, 0x4803401e, 0x59e00020, 0x4803c857, 0x59e00021, 0x4803c857, 0x59e00022, 0x4803c857, 0x59e00023, 0x4803c857, 0x59e00024, - 0x4803c857, 0x010dfb25, 0x010dfb3d, 0x5c03e000, + 0x4803c857, 0x010dfb27, 0x010dfb3f, 0x5c03e000, 0x1c01f000, 0x4c5c0000, 0x4da00000, 0x4df00000, 0x4203e000, 0x50000000, 0x05006062, 0x42034000, - 0x00109410, 0x59a01018, 0x59a01819, 0x800c19c0, + 0x00109490, 0x59a01018, 0x59a01819, 0x800c19c0, 0x05020009, 0x59a0381c, 0x801c39c0, 0x010009e6, 0x49a3c857, 0x481fc857, 0x59a0041d, 0x801c3c00, 0x0501f00a, 0x59a0041a, 0x90000402, 0x4803441a, @@ -9064,9 +9115,9 @@ static const uint32_t isp_2500_risc_code[] = { 0x60083800, 0x42000800, 0x25000000, 0x585c1800, 0x585c3001, 0x900c19c0, 0x901831c0, 0x0101faa9, 0x5c03e000, 0x5c034000, 0x5c00b800, 0x1c01f000, - 0x910c0503, 0x011a0751, 0x59340400, 0x82000580, - 0x00000606, 0x011a072b, 0x5934000d, 0x80027d40, - 0x011a075a, 0x5934000f, 0x59341203, 0x80080540, + 0x910c0503, 0x011a075d, 0x59340400, 0x82000580, + 0x00000606, 0x011a0737, 0x5934000d, 0x80027d40, + 0x011a0766, 0x5934000f, 0x59341203, 0x80080540, 0x05020021, 0x8d0c0512, 0x05000010, 0x0501fe37, 0x05000017, 0x59a80087, 0x80000040, 0x05fe07ff, 0x492e6009, 0x4936600a, 0x58d400ea, 0x8c000516, @@ -9081,7 +9132,7 @@ static const uint32_t isp_2500_risc_code[] = { 0x592c0407, 0x800000c2, 0x800018c4, 0x800c0400, 0x48025804, 0x1c01f000, 0x492c0800, 0x05fdf7f9, 0x83440c80, 0x00000800, 0x05021009, 0x83440400, - 0x00108b80, 0x50000000, 0x80000540, 0x05000004, + 0x00108c00, 0x50000000, 0x80000540, 0x05000004, 0x40026800, 0x80000580, 0x1c01f000, 0x90000541, 0x1c01f000, 0x59340203, 0x80000540, 0x0502002b, 0x4d300000, 0x4d2c0000, 0x5934000f, 0x80025d40, @@ -9097,20 +9148,20 @@ static const uint32_t isp_2500_risc_code[] = { 0x5c025800, 0x5c026000, 0x1c01f000, 0x497a5800, 0x4932580a, 0x641a6407, 0x641e6203, 0x0501f802, 0x05fdf7eb, 0x592c020d, 0x48026202, 0x59a80082, - 0x8c000510, 0x011e02cc, 0x8d0c050e, 0x011e02ca, - 0x8d0c0504, 0x011e02c8, 0x59340200, 0x8c000518, - 0x011e02c6, 0x64025a07, 0x8c000508, 0x011e02c4, + 0x8c000510, 0x011e02df, 0x8d0c050e, 0x011e02dd, + 0x8d0c0504, 0x011e02db, 0x59340200, 0x8c000518, + 0x011e02d9, 0x64025a07, 0x8c000508, 0x011e02d7, 0x492e6009, 0x4d3c0000, 0x417a7800, 0x0501fd2c, 0x5c027800, 0x1c01f000, 0x58040001, 0x49680800, 0x49780801, 0x815eb800, 0x4006d000, 0x80000d40, 0x05fe07fa, 0x497a5801, 0x59c80000, 0x82000540, 0x00001200, 0x48039000, 0x1c01f000, 0x59980013, 0x48032823, 0x59d8010b, 0x48033014, 0x1c01f000, - 0x592c0405, 0x8c00051e, 0x011e072c, 0x497a5800, + 0x592c0405, 0x8c00051e, 0x011e0762, 0x497a5800, 0x8d0c0526, 0x0502000d, 0x0502d007, 0x592c0001, 0x492fb107, 0x80000d40, 0x05fe0fe4, 0x0500e0de, 0x1c01f000, 0x0500e8dc, 0x05fcd7f9, 0x42000000, - 0x00109751, 0x0145f898, 0x0501f939, 0x0500d944, + 0x001097d1, 0x0145f962, 0x0501f939, 0x0500d944, 0x0500e0d5, 0x59d80105, 0x82000d00, 0x01218780, 0x05020152, 0x1c01f000, 0x59980011, 0x0c01f001, 0x0002034c, 0x0002034d, 0x00020358, 0x00020398, @@ -9196,7 +9247,7 @@ static const uint32_t isp_2500_risc_code[] = { 0x05020005, 0x48033016, 0x850e1d26, 0x48033017, 0x1c01f000, 0x05fcd7f8, 0x05fdf7fd, 0x59d80105, 0x82000500, 0x01218780, 0x05020004, 0x42000000, - 0x00109751, 0x0145f098, 0x4803c857, 0x485fc857, + 0x001097d1, 0x0145f162, 0x4803c857, 0x485fc857, 0x8c00050e, 0x010209dc, 0x4203e000, 0x50000000, 0x6010b900, 0x0101f1ea, 0x05fce777, 0x59d80105, 0x82000500, 0x01218780, 0x05fe07f4, 0x8d0c0524, @@ -9240,9 +9291,9 @@ static const uint32_t isp_2500_risc_code[] = { 0x8d0c0530, 0x05020007, 0x6403c017, 0x4203e000, 0x30000001, 0x1c01f000, 0x05fdfb4e, 0x05fdf7fb, 0x8c000500, 0x05fe0c4b, 0x05fdf7f8, 0x41700000, - 0x0c01f001, 0x001044b4, 0x0002054e, 0x001044b4, - 0x00020609, 0x001044b3, 0x001044b3, 0x001044b3, - 0x001044b3, 0x00104822, 0x0501002e, 0x59980004, + 0x0c01f001, 0x001044ea, 0x0002054e, 0x001044ea, + 0x00020609, 0x001044e9, 0x001044e9, 0x001044e9, + 0x001044e9, 0x0010486b, 0x0501002e, 0x59980004, 0x80000540, 0x05020032, 0x0502c018, 0x6042f800, 0x4df00000, 0x4203e000, 0x50000000, 0x49db3003, 0x59da5808, 0x592c2a05, 0x497a5800, 0x497a5801, @@ -9250,90 +9301,90 @@ static const uint32_t isp_2500_risc_code[] = { 0x0c01f82f, 0x5c03e000, 0x817ef840, 0x05000007, 0x916c0583, 0x05020005, 0x91700581, 0x0502000e, 0x05010015, 0x05fcc7eb, 0x0500f93f, 0x0500b12b, - 0x59d40005, 0x82000500, 0x43218780, 0x012207ac, - 0x59d80005, 0x82000500, 0x43218780, 0x012207b2, + 0x59d40005, 0x82000500, 0x43218780, 0x012207f5, + 0x59d80005, 0x82000500, 0x43218780, 0x012207fb, 0x1c01f000, 0x91700583, 0x05000893, 0x91700581, 0x05fe07f2, 0x05010004, 0x05fcc7da, 0x05fdf7ef, 0x6042f800, 0x4df00000, 0x4203e000, 0x50000000, 0x49d73003, 0x59d65808, 0x05fdf7d7, 0x4df00000, 0x4203e000, 0x50000000, 0x40025800, 0x592c2a05, 0x497b3003, 0x497b3004, 0x6042f800, 0x05fdf7d1, - 0x0121fd05, 0x5c03e000, 0x05fdf7dc, 0x00104505, - 0x00104505, 0x00104505, 0x00104505, 0x00104564, - 0x00104505, 0x00104505, 0x00104505, 0x00104505, - 0x00104505, 0x00104511, 0x00104505, 0x00104505, - 0x00104505, 0x00104581, 0x00104505, 0x00104505, - 0x00104505, 0x0002064f, 0x00104505, 0x001046ca, - 0x00104505, 0x00104505, 0x00104505, 0x00020625, - 0x00104505, 0x00104505, 0x00104505, 0x00104505, - 0x00104505, 0x00104505, 0x00104505, 0x00104505, - 0x00104505, 0x00104505, 0x00104505, 0x00104505, - 0x00104505, 0x00104505, 0x00104505, 0x00104505, - 0x00104530, 0x00104505, 0x00104505, 0x00104505, - 0x00104505, 0x00104505, 0x00104505, 0x00104505, - 0x00104505, 0x00104505, 0x00104754, 0x00104505, - 0x00104505, 0x00104505, 0x00104505, 0x00104505, - 0x00104793, 0x00104505, 0x00104505, 0x00104505, - 0x00104505, 0x00104505, 0x00104505, 0x00104505, - 0x00104505, 0x00104505, 0x00104505, 0x00104505, - 0x00104505, 0x00104505, 0x00104505, 0x001047f0, - 0x00104505, 0x00104505, 0x00104505, 0x00104505, - 0x00104505, 0x00104505, 0x00104505, 0x00104505, - 0x00104505, 0x00104723, 0x001047be, 0x00104505, - 0x001047e6, 0x00104505, 0x00104505, 0x00104505, - 0x00104505, 0x00104505, 0x00104505, 0x00104505, - 0x00104505, 0x00104505, 0x00104505, 0x00104505, - 0x00104505, 0x00104505, 0x00104505, 0x00104505, - 0x00104505, 0x00104505, 0x00104505, 0x00104505, - 0x00104505, 0x00104505, 0x00104505, 0x00104505, - 0x00104505, 0x00104505, 0x00104505, 0x00104505, - 0x00104505, 0x00104505, 0x00104505, 0x00104505, - 0x00104505, 0x00104505, 0x00104505, 0x00104505, - 0x00104505, 0x4df00000, 0x4203e000, 0x50000000, - 0x59981003, 0x800811c0, 0x012004b8, 0x58080005, - 0x82000d00, 0x43218780, 0x012207b2, 0x8c000508, - 0x012004b6, 0x580a5808, 0x592c0205, 0x497a5800, + 0x0121fd3b, 0x5c03e000, 0x05fdf7dc, 0x0010453b, + 0x0010453b, 0x0010453b, 0x0010453b, 0x0010459a, + 0x0010453b, 0x0010453b, 0x0010453b, 0x0010453b, + 0x0010453b, 0x00104547, 0x0010453b, 0x0010453b, + 0x0010453b, 0x001045b7, 0x0010453b, 0x0010453b, + 0x0010453b, 0x0002064f, 0x0010453b, 0x00104711, + 0x0010453b, 0x0010453b, 0x0010453b, 0x00020625, + 0x0010453b, 0x0010453b, 0x0010453b, 0x0010453b, + 0x0010453b, 0x0010453b, 0x0010453b, 0x0010453b, + 0x0010453b, 0x0010453b, 0x0010453b, 0x0010453b, + 0x0010453b, 0x0010453b, 0x0010453b, 0x0010453b, + 0x00104566, 0x0010453b, 0x0010453b, 0x0010453b, + 0x0010453b, 0x0010453b, 0x0010453b, 0x0010453b, + 0x0010453b, 0x0010453b, 0x0010479b, 0x0010453b, + 0x0010453b, 0x0010453b, 0x0010453b, 0x0010453b, + 0x001047dc, 0x0010453b, 0x0010453b, 0x0010453b, + 0x0010453b, 0x0010453b, 0x0010453b, 0x0010453b, + 0x0010453b, 0x0010453b, 0x0010453b, 0x0010453b, + 0x0010453b, 0x0010453b, 0x0010453b, 0x00104839, + 0x0010453b, 0x0010453b, 0x0010453b, 0x0010453b, + 0x0010453b, 0x0010453b, 0x0010453b, 0x0010453b, + 0x0010453b, 0x0010476a, 0x00104807, 0x0010453b, + 0x0010482f, 0x0010453b, 0x0010453b, 0x0010453b, + 0x0010453b, 0x0010453b, 0x0010453b, 0x0010453b, + 0x0010453b, 0x0010453b, 0x0010453b, 0x0010453b, + 0x0010453b, 0x0010453b, 0x0010453b, 0x0010453b, + 0x0010453b, 0x0010453b, 0x0010453b, 0x0010453b, + 0x0010453b, 0x0010453b, 0x0010453b, 0x0010453b, + 0x0010453b, 0x0010453b, 0x0010453b, 0x0010453b, + 0x0010453b, 0x0010453b, 0x0010453b, 0x0010453b, + 0x0010453b, 0x0010453b, 0x0010453b, 0x0010453b, + 0x0010453b, 0x4df00000, 0x4203e000, 0x50000000, + 0x59981003, 0x800811c0, 0x012004ee, 0x58080005, + 0x82000d00, 0x43218780, 0x012207fb, 0x8c000508, + 0x012004ec, 0x580a5808, 0x592c0205, 0x497a5800, 0x497a5801, 0x82000500, 0x000000ff, 0xb0000c8b, - 0x012214b5, 0x1201f800, 0x001044ba, 0x5c03e000, + 0x012214eb, 0x1201f800, 0x001044f0, 0x5c03e000, 0x91700583, 0x05fc07e8, 0x0500f887, 0x0500b073, 0x1c01f000, 0x80140110, 0x80000040, 0x05000009, - 0x0120150b, 0x4a033006, 0x00020630, 0x48033000, + 0x01201541, 0x4a033006, 0x00020630, 0x48033000, 0x492f3001, 0x492f3002, 0x600ee000, 0x1c01f000, - 0x592e8a07, 0x83440c80, 0x000007f0, 0x01221517, - 0x8d0c050e, 0x01220538, 0x83440400, 0x00108b80, - 0x50000000, 0x80026d40, 0x01200545, 0x5934000a, - 0x8c00052e, 0x0122054b, 0x05fdfc46, 0x01220547, + 0x592e8a07, 0x83440c80, 0x000007f0, 0x0122154d, + 0x8d0c050e, 0x0122056e, 0x83440400, 0x00108c00, + 0x50000000, 0x80026d40, 0x0120057b, 0x5934000a, + 0x8c00052e, 0x01220581, 0x05fdfc46, 0x0122057d, 0x1c01f000, 0x59980802, 0x59980000, 0x48065800, 0x492c0801, 0x492f3002, 0x80000040, 0x48033000, 0x05000002, 0x1c01f000, 0x599a5801, 0x59980006, 0x6006e000, 0x0801f800, 0x1c01f000, 0x80140110, - 0x0120050b, 0x80000040, 0x05020009, 0x592c240b, + 0x01200541, 0x80000040, 0x05020009, 0x592c240b, 0x8c100504, 0x0500000a, 0x592c0208, 0x82000c80, - 0x00001001, 0x01221517, 0x0125f000, 0x4a033006, + 0x00001001, 0x0122154d, 0x0125f049, 0x4a033006, 0x0002065e, 0x05fdf7ce, 0x592c240b, 0x592e8a07, - 0x417a7800, 0x83440480, 0x00000800, 0x0122166e, - 0x83440400, 0x00108b80, 0x50000000, 0x80026d40, - 0x0120066e, 0x59340002, 0x592c0809, 0x80040580, - 0x82000500, 0x00ffffff, 0x01220517, 0x592e600a, - 0x497a5809, 0x83300480, 0x0010cca4, 0x01201687, - 0xa1300495, 0x0122163b, 0x592c0a0d, 0x59300202, - 0x80040580, 0x01220687, 0x4936600a, 0x8c10051c, - 0x0122062f, 0x59a80082, 0x8c000510, 0x0122069f, - 0x8d0c050e, 0x0122061b, 0x8d0c0504, 0x01220696, - 0x59340200, 0x8c000518, 0x01220684, 0x59300c07, - 0x90040586, 0x012206a2, 0x8c100508, 0x01220611, + 0x417a7800, 0x83440480, 0x00000800, 0x012216b2, + 0x83440400, 0x00108c00, 0x50000000, 0x80026d40, + 0x012006b2, 0x59340002, 0x592c0809, 0x80040580, + 0x82000500, 0x00ffffff, 0x0122054d, 0x592e600a, + 0x497a5809, 0x83300480, 0x0010ccb4, 0x012016cb, + 0xa1300495, 0x0122167f, 0x592c0a0d, 0x59300202, + 0x80040580, 0x012206cb, 0x4936600a, 0x8c10051c, + 0x01220673, 0x59a80082, 0x8c000510, 0x012206e3, + 0x8d0c050e, 0x0122065f, 0x8d0c0504, 0x012206da, + 0x59340200, 0x8c000518, 0x012206c8, 0x59300c07, + 0x90040586, 0x012206e6, 0x8c100508, 0x01220655, 0x59300809, 0x497a5804, 0x64025a07, 0x800409c0, - 0x01220616, 0x59300416, 0x8c000516, 0x0122068a, + 0x0122065a, 0x59300416, 0x8c000516, 0x012206ce, 0x492e6009, 0x0501f1ae, 0x4df00000, 0x4203e000, 0x50000000, 0x0502b00a, 0x915c04a0, 0x0500100c, 0x815eb840, 0x416a5800, 0x592ed000, 0x492fb007, 0x497a5800, 0x497a5801, 0x05fcb7f8, 0x59d80005, - 0x82000500, 0x43218780, 0x012207b2, 0x5c03e000, + 0x82000500, 0x43218780, 0x012207fb, 0x5c03e000, 0x1c01f000, 0x4df00000, 0x4203e000, 0x50000000, 0x0502f00a, 0x915c04a0, 0x0500100c, 0x815eb840, 0x416a5800, 0x592ed000, 0x492fa807, 0x497a5800, 0x497a5801, 0x05fcf7f8, 0x59d40005, 0x82000500, - 0x43218780, 0x012207ac, 0x5c03e000, 0x1c01f000, + 0x43218780, 0x012207f5, 0x5c03e000, 0x1c01f000, 0x40307000, 0x5838000a, 0x80025d40, 0x05000018, 0x58380002, 0x82000580, 0x00000100, 0x05000019, 0x4c380000, 0x592c0205, 0x82000500, 0x000000ff, @@ -9345,7 +9396,7 @@ static const uint32_t isp_2500_risc_code[] = { 0x58380004, 0x90000483, 0x05000074, 0x5838000f, 0x8c000500, 0x05020012, 0x600cb000, 0x912cac12, 0x58380009, 0x5838100c, 0x8008a400, 0x4c380000, - 0x0145f95f, 0x5c007000, 0x5838000c, 0x90000403, + 0x0145fa29, 0x5c007000, 0x5838000c, 0x90000403, 0x4800700c, 0x6404700f, 0x58380004, 0x90000483, 0x48007004, 0x90000583, 0x05000060, 0x5838000d, 0x80001d40, 0x0502001b, 0x4c380000, 0x0101fd55, @@ -9354,14 +9405,14 @@ static const uint32_t isp_2500_risc_code[] = { 0x05020002, 0x5838000a, 0x40000800, 0x492c0801, 0x492c700b, 0x603c0800, 0x0501f00e, 0x6022e000, 0x4a033005, 0x0002070b, 0x1c01f000, 0x600ae000, - 0x42000000, 0x00109969, 0x50007000, 0x05fdf7eb, + 0x42000000, 0x001099e9, 0x50007000, 0x05fdf7eb, 0x583a580b, 0x400c0000, 0x60540800, 0x80040c80, 0x58381004, 0x5838000e, 0x41783000, 0x80000540, 0x05020004, 0x84183540, 0x90081483, 0x05000037, 0x40080000, 0x80040480, 0x05001002, 0x40080800, 0x4004b000, 0x412c0000, 0x800c0400, 0x4000a800, 0x58380009, 0x5838100c, 0x8008a400, 0x4c080000, - 0x4c040000, 0x4c0c0000, 0x4c380000, 0x0145f95f, + 0x4c040000, 0x4c0c0000, 0x4c380000, 0x0145fa29, 0x5c007000, 0x5c001800, 0x5c000800, 0x40040000, 0x58381004, 0x80080480, 0x48007004, 0x90000583, 0x05000002, 0x84183500, 0x5c000000, 0x80041400, @@ -9371,13 +9422,13 @@ static const uint32_t isp_2500_risc_code[] = { 0x480c700d, 0x40180000, 0x0c01f001, 0x0002074f, 0x00020752, 0x00020750, 0x0002074f, 0x000206f6, 0x00020752, 0x00020750, 0x0002074f, 0x0101f9e6, - 0x5838100e, 0x0125f010, 0x5838080c, 0x90040402, + 0x5838100e, 0x0125f059, 0x5838080c, 0x90040402, 0x58381009, 0x80080400, 0x50001000, 0x800811c0, 0x0502000b, 0x6006e000, 0x583a580a, 0x4978700a, 0x4978700f, 0x592c0205, 0x82000500, 0x000000ff, 0x90000592, 0x05fc06fd, 0x05fdf6ce, 0x58380009, 0x80040c00, 0x90381c06, 0x54041800, 0x80040800, - 0x800c1800, 0x54041800, 0x0125f010, 0x4df00000, + 0x800c1800, 0x54041800, 0x0125f059, 0x4df00000, 0x4203e000, 0x50000000, 0x5994002e, 0x80000540, 0x050000c6, 0x4c000000, 0x5c000000, 0x59947824, 0x4803282f, 0x803c0480, 0x05001004, 0x05000003, @@ -9387,7 +9438,7 @@ static const uint32_t isp_2500_risc_code[] = { 0x05000002, 0x483fc857, 0x59e40852, 0x59a80076, 0x80040580, 0x05000004, 0x480bc857, 0x59e40052, 0x48035076, 0x59940030, 0x803c0400, 0x48032830, - 0x0125fe3e, 0x59940000, 0x90000580, 0x05020005, + 0x0125feca, 0x59940000, 0x90000580, 0x05020005, 0x59940030, 0x48032831, 0x497b2830, 0x64072800, 0x4c0c0000, 0x58d400e5, 0x8c000514, 0x05000013, 0x59940807, 0x59941006, 0x5994002f, 0x80081c80, @@ -9429,7 +9480,7 @@ static const uint32_t isp_2500_risc_code[] = { 0x0801f800, 0x0501f004, 0x9000040a, 0x4803282b, 0x05fc27f8, 0x5994082e, 0x5994002f, 0x80040480, 0x010019e6, 0x4803282e, 0x59940000, 0x0c01f001, - 0x0002083b, 0x00104da3, 0x00104e04, 0x5c03e000, + 0x0002083b, 0x00104e2f, 0x00104e90, 0x5c03e000, 0x1c01f000, 0x5994002e, 0x80000000, 0x4803282e, 0x4203e000, 0x70000000, 0x1c01f000, 0x813e79c0, 0x05020009, 0x59a80089, 0x80000040, 0x05fe07ff, @@ -9449,11 +9500,11 @@ static const uint32_t isp_2500_risc_code[] = { 0x59300004, 0x82000500, 0x00000100, 0x80040d40, 0x48066004, 0x58d400ea, 0x8c000516, 0x05fe07fe, 0x83300400, 0x40000000, 0x4801a8e1, 0x1c01f000, - 0x58d400ea, 0x82001500, 0x32000018, 0x012a0183, + 0x58d400ea, 0x82001500, 0x32000018, 0x012a020f, 0x8c000510, 0x0500002f, 0x58d410e0, 0x82080500, 0xfffff000, 0x0502000d, 0x900a350f, 0x80081108, 0x480bc857, 0x90080487, 0x010219e6, 0x90080481, - 0x010019e6, 0x1201f000, 0x00105187, 0x84000510, + 0x010019e6, 0x1201f000, 0x00105213, 0x84000510, 0x48026004, 0x0501f019, 0x840a653e, 0x59300804, 0x8c040520, 0x05fc07fa, 0x82040d00, 0xfffefeff, 0x48066004, 0x8c08053e, 0x05020009, 0x8c040514, @@ -9461,19 +9512,19 @@ static const uint32_t isp_2500_risc_code[] = { 0x604e7000, 0x0501f858, 0x0501f008, 0x8c040514, 0x05000004, 0x05fdffa2, 0x0501f835, 0x0501f003, 0x61267000, 0x0501f850, 0x58d400ea, 0x82001500, - 0x32000018, 0x012a0183, 0x8c000510, 0x05fe07d3, + 0x32000018, 0x012a020f, 0x8c000510, 0x05fe07d3, 0x1c01f000, 0x59bc00ea, 0x82001500, 0xb2000018, - 0x012a01ad, 0x8c000510, 0x05000007, 0x59bc10e0, + 0x012a0239, 0x8c000510, 0x05000007, 0x59bc10e0, 0x80080108, 0x900a350f, 0x4803c857, 0x1201f000, - 0x001051b1, 0x1c01f000, 0x59a80262, 0x81640480, + 0x0010523d, 0x1c01f000, 0x59a80262, 0x81640480, 0x05001015, 0x41626000, 0x41580000, 0x59300a03, 0x90040d80, 0x05020007, 0x64226203, 0x8166c840, 0x9132c424, 0x81600480, 0x05021008, 0x1c01f000, 0x91326424, 0x81300c80, 0x05fc17f5, 0x42026000, - 0x0010cca4, 0x05fdf7f2, 0x837ac540, 0x0010cca4, - 0x1c01f000, 0x42000000, 0x001097eb, 0x0145f895, + 0x0010ccb4, 0x05fdf7f2, 0x837ac540, 0x0010ccb4, + 0x1c01f000, 0x42000000, 0x0010986b, 0x0145f95f, 0x4967c857, 0x80026580, 0x1c01f000, 0x83300480, - 0x0010cca4, 0x010019e6, 0x41580000, 0x81300480, + 0x0010ccb4, 0x010019e6, 0x41580000, 0x81300480, 0x0502100a, 0x457a6000, 0x4a026202, 0x0000ffff, 0x05011000, 0x91300403, 0x4803c840, 0x6487c842, 0x8166c800, 0x1c01f000, 0x41540000, 0x81300480, @@ -9482,80 +9533,80 @@ static const uint32_t isp_2500_risc_code[] = { 0x05011000, 0x91300403, 0x4803c840, 0x6487c842, 0x1c01f000, 0x4d340000, 0x5932680a, 0x59300407, 0x9000051f, 0x0c01f803, 0x5c026800, 0x1c01f000, - 0x00105e30, 0x00105e3f, 0x00105e56, 0x0002092c, - 0x00107971, 0x00107989, 0x00020997, 0x00105e30, - 0x00105e3f, 0x00104f63, 0x00105e6b, 0x00105e30, - 0x00105e30, 0x00105e30, 0x00105e30, 0x00105e30, - 0x0010759f, 0x0010852c, 0x00105e30, 0x00105e30, - 0x00105e30, 0x00105e30, 0x00105e30, 0x00105e30, - 0x00105e30, 0x00105e30, 0x00105e30, 0x00105e30, - 0x00105e30, 0x00105e30, 0x00105e30, 0x00105e30, + 0x00105eac, 0x00105ebb, 0x00105ed2, 0x0002092c, + 0x00107a07, 0x00107a1f, 0x00020997, 0x00105eac, + 0x00105ebb, 0x00104fef, 0x00105ee7, 0x00105eac, + 0x00105eac, 0x00105eac, 0x00105eac, 0x00105eac, + 0x00107635, 0x001085e4, 0x00105eac, 0x00105eac, + 0x00105eac, 0x00105eac, 0x00105eac, 0x00105eac, + 0x00105eac, 0x00105eac, 0x00105eac, 0x00105eac, + 0x00105eac, 0x00105eac, 0x00105eac, 0x00105eac, 0x59300203, 0x90000c8e, 0x010219e6, 0x0c01f001, - 0x00105e6a, 0x001067dc, 0x0002093e, 0x00106960, - 0x001069e5, 0x00105e6a, 0x00105e6a, 0x00105e6a, - 0x001067c8, 0x00105e6a, 0x00105e6a, 0x00105e6a, - 0x00105e6a, 0x00106b93, 0xb1380498, 0x05021006, + 0x00105ee6, 0x00106866, 0x0002093e, 0x001069ea, + 0x00106a6f, 0x00105ee6, 0x00105ee6, 0x00105ee6, + 0x00106852, 0x00105ee6, 0x00105ee6, 0x00105ee6, + 0x00105ee6, 0x00106c1d, 0xb1380498, 0x05021006, 0xb1380480, 0x05001004, 0x4d2c0000, 0x0c01f803, - 0x5c025800, 0x1c01f000, 0x00106843, 0x00106843, - 0x00106843, 0x00106843, 0x00106843, 0x00106844, - 0x001068f2, 0x00106843, 0x00106843, 0x00106843, - 0x00106843, 0x00106843, 0x00106843, 0x00106843, - 0x00106843, 0x00106843, 0x00106843, 0x00106843, - 0x00106843, 0x001068f6, 0x0002095e, 0x00106843, - 0x001068f5, 0x001068f7, 0x59325809, 0x59300813, + 0x5c025800, 0x1c01f000, 0x001068cd, 0x001068cd, + 0x001068cd, 0x001068cd, 0x001068cd, 0x001068ce, + 0x0010697c, 0x001068cd, 0x001068cd, 0x001068cd, + 0x001068cd, 0x001068cd, 0x001068cd, 0x001068cd, + 0x001068cd, 0x001068cd, 0x001068cd, 0x001068cd, + 0x001068cd, 0x00106980, 0x0002095e, 0x001068cd, + 0x0010697f, 0x00106981, 0x59325809, 0x59300813, 0x59301402, 0x59340200, 0x8c00050e, 0x0502001a, 0x0501f823, 0x05000005, 0x4a025a05, 0x00000103, 0x497a580a, 0x0501f007, 0x4a025a05, 0x00000103, - 0x64025a07, 0x497a580a, 0x800409c0, 0x013609b5, + 0x64025a07, 0x497a580a, 0x800409c0, 0x01360a3f, 0x48065808, 0x480a5c07, 0x05fdf9ba, 0x5934000f, 0x8d0c0512, 0x05020005, 0x5934140b, 0x80081040, 0x05001002, 0x480a6c0b, 0x80000540, 0x05fe0956, 0x05fdf76b, 0x592c020b, 0x8c000502, 0x05fc07e5, 0x800409c0, 0x05fc07e9, 0x592c0209, 0x8c00050e, - 0x05fe07e6, 0x4933c857, 0x0139f291, 0x592c020b, + 0x05fe07e6, 0x4933c857, 0x0139f327, 0x592c020b, 0x8c000500, 0x0500000d, 0x59300017, 0x592c3810, 0x801c3c80, 0x05000009, 0x64565a07, 0x8c1c053e, 0x05000004, 0x641e5a07, 0x801c3880, 0x801c3800, 0x481fc857, 0x901c0d40, 0x1c01f000, 0x59300203, - 0x9000348e, 0x010219e6, 0x0c01f001, 0x001079a4, - 0x000209a9, 0x00107f61, 0x00107f69, 0x000209be, - 0x001079a4, 0x00108025, 0x000209da, 0x001079a4, - 0x001079a4, 0x001079a4, 0x001079a4, 0x001079a4, - 0x001079a4, 0x91380593, 0x013e070f, 0x59300403, + 0x9000348e, 0x010219e6, 0x0c01f001, 0x00107a3a, + 0x000209a9, 0x00108007, 0x0010800f, 0x000209be, + 0x00107a3a, 0x001080ce, 0x000209da, 0x00107a3a, + 0x00107a3a, 0x00107a3a, 0x00107a3a, 0x00107a3a, + 0x00107a3a, 0x91380593, 0x013e07b5, 0x59300403, 0xb0027484, 0x010219e6, 0xb0000480, 0x010019e6, - 0x0c01f001, 0x00107f4f, 0x000209b5, 0x00107f50, - 0x00107f5c, 0x59325809, 0x832c0500, 0x00ff0000, - 0x05000004, 0x592c0c0b, 0x8c04051a, 0x013e0759, + 0x0c01f001, 0x00107ff5, 0x000209b5, 0x00107ff6, + 0x00108002, 0x59325809, 0x832c0500, 0x00ff0000, + 0x05000004, 0x592c0c0b, 0x8c04051a, 0x013e07ff, 0x05fdfe97, 0x05fdf72a, 0xb1380588, 0x05000004, - 0xb1380593, 0x013c07db, 0x0101f9e6, 0x59300021, + 0xb1380593, 0x01400084, 0x0101f9e6, 0x59300021, 0x59301013, 0x5930080a, 0x58040a00, 0x8c04050e, - 0x013e07c1, 0x800811c0, 0x013e07cc, 0x59300021, - 0x80000540, 0x013e07d6, 0x59325809, 0x592c040b, - 0x8c00051e, 0x013c07bb, 0x64066203, 0x65066403, + 0x0142006a, 0x800811c0, 0x01420075, 0x59300021, + 0x80000540, 0x0142007f, 0x59325809, 0x592c040b, + 0x8c00051e, 0x01400064, 0x64066203, 0x65066403, 0x42000800, 0x80002042, 0x8c00051a, 0x05020002, 0x84040d54, 0x05fdf6a3, 0xb1380494, 0x010219e6, - 0xb1380480, 0x013c17f2, 0x0c01f001, 0x00107ffa, - 0x000209f3, 0x00108003, 0x00108008, 0x00107ffa, - 0x00107ffa, 0x00107ffa, 0x00107ffa, 0x00107ffb, - 0x00107fff, 0x00107fff, 0x00107ffa, 0x00107ffa, - 0x00107ffa, 0x00107ffa, 0x00107fff, 0x00107ffa, - 0x00107fff, 0x00107ffa, 0x00107ffb, 0x64066203, + 0xb1380480, 0x0140109b, 0x0c01f001, 0x001080a3, + 0x000209f3, 0x001080ac, 0x001080b1, 0x001080a3, + 0x001080a3, 0x001080a3, 0x001080a3, 0x001080a4, + 0x001080a8, 0x001080a8, 0x001080a3, 0x001080a3, + 0x001080a3, 0x001080a3, 0x001080a8, 0x001080a3, + 0x001080a8, 0x001080a3, 0x001080a4, 0x64066203, 0x493a6403, 0x42000800, 0x80002042, 0x05fdf685, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x9edc9de5, - 0x00000000, 0x00000000, 0x0010ad00, 0x00001add, - 0x42000000, 0x0010c810, 0x42001000, 0x0010c801, - 0x48001000, 0x42013800, 0x0010cc10, 0x42000000, - 0x0010c800, 0x489c0000, 0x409d4000, 0x409d6800, + 0x00000000, 0x00000000, 0x00000000, 0x9ec459b0, + 0x00000000, 0x00000000, 0x0010ad00, 0x00001ae5, + 0x42000000, 0x0010c820, 0x42001000, 0x0010c811, + 0x48001000, 0x42013800, 0x0010cc20, 0x42000000, + 0x0010c810, 0x489c0000, 0x409d4000, 0x409d6800, 0x1c01f000, 0x4200d000, 0x0000000d, 0x42000000, 0x00000002, 0x4800d000, 0x0401f7fb, 0x4200d000, 0x0000000d, 0x42000000, 0x00000001, 0x4800d000, 0x0401f7fb, 0x1c01f000, 0x809d3840, 0x48813800, 0x4933c857, 0x5931040c, 0x82817480, 0x00000038, 0x0400000d, 0x0400100c, 0x82810480, 0x00000038, - 0x4a025a06, 0x00000038, 0x0201f800, 0x00102d79, + 0x4a025a06, 0x00000038, 0x0201f800, 0x00102d7d, 0x40c65800, 0x80c589c0, 0x040207f4, 0x4178d000, 0x0401f004, 0x48825a06, 0x4200d000, 0x00000001, 0x40698800, 0x589d0000, 0x809d3800, 0x1c01f000, @@ -9586,11 +9637,11 @@ static const uint32_t isp_2500_risc_code[] = { 0x486b9121, 0x4a039123, 0xe1290008, 0x486f9122, 0x0401f7e2, 0x4a039100, 0x0000e980, 0x1c01f000, 0x59c8d007, 0x8c68d500, 0x04000003, 0x4a03900d, - 0x00000030, 0x1c01f000, 0x0201f800, 0x0010511f, + 0x00000030, 0x1c01f000, 0x0201f800, 0x001051ab, 0x59b8d0ea, 0x8268d500, 0x00000007, 0x82697480, 0x00000003, 0x04000002, 0x0401f003, 0x4a0370e8, 0x00000001, 0x1c01f000, 0x4a038805, 0x00020000, - 0x4200d000, 0x0000003c, 0x0201f800, 0x00101058, + 0x4200d000, 0x0000003c, 0x0201f800, 0x00101056, 0x4a038891, 0x0000ffff, 0x59c97035, 0x48bb9035, 0x4a03900d, 0x00000040, 0x42038000, 0x00007700, 0x0201f800, 0x00100b3d, 0x4a038006, 0x20000000, @@ -9600,7 +9651,7 @@ static const uint32_t isp_2500_risc_code[] = { 0x4a03b805, 0x20000000, 0x59d0d006, 0x8c68d50a, 0x040207fe, 0x59dcd006, 0x8c68d50a, 0x040207fb, 0x1c01f000, 0x4203a000, 0x00007600, 0x4200d000, - 0x00000040, 0x0201f800, 0x00101058, 0x4a03a00a, + 0x00000040, 0x0201f800, 0x00101056, 0x4a03a00a, 0x00000001, 0x4a03a005, 0x20000000, 0x59d0d006, 0x4a03a005, 0x30000000, 0x59d0d006, 0x8c68d50a, 0x040207fe, 0x59d0d005, 0x59a0d211, 0x59a0dc11, @@ -9626,14 +9677,14 @@ static const uint32_t isp_2500_risc_code[] = { 0x80697480, 0x04000015, 0x4967c857, 0x59a97060, 0x48bbc857, 0x59a9705f, 0x48bbc857, 0x59a9705e, 0x48bbc857, 0x4a034407, 0x00000018, 0x0201f800, - 0x00101c09, 0x0401f131, 0x4a034407, 0x00000005, - 0x0201f800, 0x00101c09, 0x0401f12c, 0x0201f800, - 0x00101c11, 0x0401f129, 0x59a8d05f, 0x59a8005e, - 0x80697480, 0x040207e9, 0x0201f800, 0x0010306d, - 0x80c589c0, 0x0402004b, 0x0201f800, 0x00101c15, - 0x0401f11e, 0x4887c857, 0x0201f800, 0x00101c0d, - 0x0401f11a, 0x0201f800, 0x00105e04, 0x40c66000, - 0x80c589c0, 0x0400003c, 0x0201f800, 0x00102d79, + 0x00101c0b, 0x0401f131, 0x4a034407, 0x00000005, + 0x0201f800, 0x00101c0b, 0x0401f12c, 0x0201f800, + 0x00101c13, 0x0401f129, 0x59a8d05f, 0x59a8005e, + 0x80697480, 0x040207e9, 0x0201f800, 0x00103071, + 0x80c589c0, 0x0402004b, 0x0201f800, 0x00101c17, + 0x0401f11e, 0x4887c857, 0x0201f800, 0x00101c0f, + 0x0401f11a, 0x0201f800, 0x00105e80, 0x40c66000, + 0x80c589c0, 0x0400003c, 0x0201f800, 0x00102d7d, 0x40c65800, 0x80c589c0, 0x04000020, 0x48898a05, 0x48898c05, 0x4882620c, 0x4886640c, 0x59a0d40f, 0x8068d0e0, 0x59a0da0f, 0x406c0000, 0x8068d540, @@ -9642,27 +9693,27 @@ static const uint32_t isp_2500_risc_code[] = { 0x8068d0e0, 0x59a0da0e, 0x406c0000, 0x8068d540, 0x486a600f, 0x59a0d411, 0x8068d0e0, 0x59a0da11, 0x406c0000, 0x8068d540, 0x486a6010, 0x0401fe9b, - 0x80c589c0, 0x04020006, 0x0201f800, 0x00105dd3, + 0x80c589c0, 0x04020006, 0x0201f800, 0x00105e4b, 0x4a034407, 0x00000002, 0x0401f7be, 0x48ee6023, 0x58ee580c, 0x4a01d801, 0x00000001, 0x592cd206, 0x4869d805, 0x832cd400, 0x00000007, 0x4869d803, 0x4895d806, 0x4891d807, 0x4a01d808, 0x0010afa5, 0x4a034000, 0x00000001, 0x49334001, 0x0401ff60, 0x0401f0da, 0x4a034407, 0x00000003, 0x0401f7a9, - 0x0201f800, 0x0010512e, 0x598e600b, 0x0201f800, - 0x001053cb, 0x0201f800, 0x0010512e, 0x408e3000, - 0x0201f800, 0x0010560b, 0x59926005, 0x813261c0, - 0x0400000d, 0x0201f800, 0x001052fc, 0x0201f800, - 0x00105102, 0x0201f800, 0x00105108, 0x42027800, + 0x0201f800, 0x001051ba, 0x598e600b, 0x0201f800, + 0x00105457, 0x0201f800, 0x001051ba, 0x408e3000, + 0x0201f800, 0x00105697, 0x59926005, 0x813261c0, + 0x0400000d, 0x0201f800, 0x00105388, 0x0201f800, + 0x0010518e, 0x0201f800, 0x00105194, 0x42027800, 0x00001000, 0x42028000, 0x0000002e, 0x0201f800, - 0x0010ba4a, 0x811a3000, 0x83197480, 0x00000004, - 0x040007ec, 0x040017eb, 0x0201f800, 0x001007cf, - 0x0201f800, 0x001022e3, 0x497b5079, 0x497b4408, - 0x4201d000, 0x003d0900, 0x0201f800, 0x00104ef3, + 0x0010ba5a, 0x811a3000, 0x83197480, 0x00000004, + 0x040007ec, 0x040017eb, 0x0201f800, 0x001007cd, + 0x0201f800, 0x001022e8, 0x497b5079, 0x497b4408, + 0x4201d000, 0x003d0900, 0x0201f800, 0x00104f7f, 0x59c50880, 0x59c510a3, 0x497b4002, 0x0401fe6d, 0x0401ff0d, 0x4a03a005, 0x10000000, 0x59c4d005, 0x8268d540, 0x000000f0, 0x486b8805, 0x0401fe85, - 0x0201f800, 0x001022ea, 0x40c50000, 0x80c589c0, + 0x0201f800, 0x001022ef, 0x40c50000, 0x80c589c0, 0x04020020, 0x59c8d001, 0x8068d1c0, 0x0402001d, 0x59dcd006, 0x8268d500, 0x43200f80, 0x0400000a, 0x59dcd006, 0x82697480, 0x00000000, 0x83f17500, @@ -9683,23 +9734,23 @@ static const uint32_t isp_2500_risc_code[] = { 0x04020004, 0x82797480, 0x00000032, 0x0400002b, 0x486fc857, 0x487bc857, 0x4877c857, 0x4883c857, 0x487fc857, 0x4873c857, 0x59a9700f, 0x48bbc857, - 0x0201f800, 0x001022fc, 0x4a035079, 0x00000001, + 0x0201f800, 0x00102301, 0x4a035079, 0x00000001, 0x4200d000, 0x00000064, 0x0401f004, 0x8068d1c0, 0x04000028, 0x8068d040, 0x59c0d807, 0x8c6cdd04, - 0x040007fb, 0x0401fe7d, 0x0201f800, 0x00103089, - 0x0201f800, 0x00105456, 0x0401fe6c, 0x4201d000, - 0x000186a0, 0x0201f800, 0x00104ef3, 0x488b88a3, + 0x040007fb, 0x0401fe7d, 0x0201f800, 0x0010308d, + 0x0201f800, 0x001054e2, 0x0401fe6c, 0x4201d000, + 0x000186a0, 0x0201f800, 0x00104f7f, 0x488b88a3, 0x48878880, 0x59a8d079, 0x8068d1c0, 0x04020713, - 0x0201f800, 0x00101bc7, 0x0401f030, 0x4a035079, + 0x0201f800, 0x00101bc9, 0x0401f030, 0x4a035079, 0x00000001, 0x0401f7ec, 0x82757480, 0x000000e1, 0x040207d4, 0x407c0000, 0x80817480, 0x040207d1, 0x59a8d00f, 0x80697480, 0x040207ce, 0x8270d500, 0x000000f0, 0x040207cb, 0x0401fe4a, 0x0401f7d5, - 0x4a035079, 0x00000001, 0x0201f800, 0x001015ca, + 0x4a035079, 0x00000001, 0x0201f800, 0x001015c8, 0x80c589c0, 0x04000008, 0x59c4d005, 0x8268d500, 0x000000f0, 0x04000007, 0x4a034408, 0x0000bbbb, 0x0401f7d1, 0x4a034408, 0x0000aaaa, 0x0401f7ce, - 0x0201f800, 0x001022ea, 0x80c57040, 0x04000008, + 0x0201f800, 0x001022ef, 0x80c57040, 0x04000008, 0x59c0d007, 0x8268d500, 0x000501c0, 0x040007c6, 0x4a034408, 0x0000dddd, 0x0401f7c3, 0x4a034408, 0x0000cccc, 0x0401f7c0, 0x589d2805, 0x589d2004, @@ -9712,8 +9763,8 @@ static const uint32_t isp_2500_risc_code[] = { 0x48b9d806, 0x5931700e, 0x48b9d807, 0x4a01d808, 0x0010afa5, 0x4a034000, 0x00000001, 0x40826000, 0x0401fe63, 0x0401f009, 0x41310000, 0x59a26001, - 0x4933c857, 0x0201f800, 0x00105dd5, 0x40826000, - 0x0201f800, 0x00101c15, 0x589d0000, 0x809d3800, + 0x4933c857, 0x0201f800, 0x00105e4d, 0x40826000, + 0x0201f800, 0x00101c17, 0x589d0000, 0x809d3800, 0x1c01f000, 0x829d3c80, 0x00000005, 0x48813800, 0x48853801, 0x48893802, 0x488d3803, 0x48913804, 0x412d1000, 0x41310800, 0x59a26001, 0x4069d800, @@ -9729,18 +9780,18 @@ static const uint32_t isp_2500_risc_code[] = { 0x58ee580c, 0x592cd205, 0x82697480, 0x00000103, 0x04000030, 0x41351800, 0x41452000, 0x592cd405, 0x8468d55e, 0x486a5c05, 0x42028800, 0x000007fd, - 0x4200d000, 0x00fffffd, 0x0201f800, 0x0010392e, + 0x4200d000, 0x00fffffd, 0x0201f800, 0x0010393d, 0x40c66800, 0x80c589c0, 0x04000010, 0x0201f800, - 0x001073d3, 0x80c589c0, 0x04000018, 0x40866000, + 0x00107469, 0x80c589c0, 0x04000018, 0x40866000, 0x4881d801, 0x4a01d808, 0x0010af7f, 0x0401f00f, - 0x0201f800, 0x00101c01, 0x0201f800, 0x00105dd3, + 0x0201f800, 0x00101c03, 0x0201f800, 0x00105e4b, 0x40866000, 0x0401f019, 0x59a26001, 0x0201f800, - 0x00105dd3, 0x40866000, 0x4a034407, 0x00000002, - 0x0201f800, 0x00101c09, 0x408a5800, 0x408e6800, - 0x40928800, 0x0401f00d, 0x0201f800, 0x00105dd3, + 0x00105e4b, 0x40866000, 0x4a034407, 0x00000002, + 0x0201f800, 0x00101c0b, 0x408a5800, 0x408e6800, + 0x40928800, 0x0401f00d, 0x0201f800, 0x00105e4b, 0x40866000, 0x4a034407, 0x00000004, 0x0401f7f5, - 0x0201f800, 0x00105dd3, 0x40866000, 0x0201f800, - 0x00101bc7, 0x408a5800, 0x589d2004, 0x589d1803, + 0x0201f800, 0x00105e4b, 0x40866000, 0x0201f800, + 0x00101bc9, 0x408a5800, 0x589d2004, 0x589d1803, 0x589d1002, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000005, 0x1c01f000, 0x829d3c80, 0x00000004, 0x48813800, 0x48853801, 0x48893802, 0x488d3803, @@ -9757,7 +9808,7 @@ static const uint32_t isp_2500_risc_code[] = { 0x4883a003, 0x59a0d40e, 0x8068d0e0, 0x59a0da0e, 0x406c0000, 0x80691d40, 0x59a0d411, 0x8068d0e0, 0x59a0da11, 0x406c0000, 0x80691540, 0x4201d000, - 0x00003a98, 0x0201f800, 0x00104ef3, 0x4883a002, + 0x00003a98, 0x0201f800, 0x00104f7f, 0x4883a002, 0x59a9707a, 0x48bba008, 0x488fa000, 0x488ba001, 0x59d0d005, 0x4a03a005, 0x10000000, 0x4178d000, 0x04025002, 0x8068d000, 0x8068d1c0, 0x04020007, @@ -9790,9 +9841,9 @@ static const uint32_t isp_2500_risc_code[] = { 0x0401ff4e, 0x0401f009, 0x4a034408, 0x0000dddd, 0x0401f006, 0x48690001, 0x4080d000, 0x0401ff47, 0x80c589c0, 0x040207f6, 0x589d0000, 0x809d3800, - 0x1c01f000, 0x0201f800, 0x001015ca, 0x80c589c0, + 0x1c01f000, 0x0201f800, 0x001015c8, 0x80c589c0, 0x04020002, 0x0401f009, 0x4a034407, 0x00000017, - 0x0201f800, 0x00101c09, 0x4203e000, 0x50000000, + 0x0201f800, 0x00101c0b, 0x4203e000, 0x50000000, 0x497bc856, 0x0401f000, 0x1c01f000, 0x4068d800, 0x59c17009, 0x48bbc857, 0x59c0e009, 0x8270d500, 0x00e00000, 0x04000019, 0x586cd000, 0x486b4210, @@ -9848,12 +9899,12 @@ static const uint32_t isp_2500_risc_code[] = { 0x0401ff54, 0x80c589c0, 0x040207f6, 0x589d0000, 0x809d3800, 0x1c01f000, 0x59a26000, 0x813261c0, 0x04000009, 0x59325809, 0x812e59c0, 0x04000005, - 0x0201f800, 0x00105dd3, 0x0201f800, 0x00100581, + 0x0201f800, 0x00105e4b, 0x0201f800, 0x00100581, 0x497b4000, 0x59a26001, 0x813261c0, 0x04000009, 0x59325809, 0x812e59c0, 0x04000005, 0x0201f800, - 0x00105dd3, 0x0201f800, 0x00100581, 0x497b4001, + 0x00105e4b, 0x0201f800, 0x00100581, 0x497b4001, 0x1c01f000, 0x809d3840, 0x48813800, 0x40690000, - 0x0201f800, 0x001022fc, 0x0201f800, 0x0010adb2, + 0x0201f800, 0x00102301, 0x0201f800, 0x0010adb2, 0x5880d00b, 0x8068d1c0, 0x04020004, 0x5880d00c, 0x8068d1c0, 0x04000007, 0x59a0d00d, 0x8068d1c0, 0x0402000a, 0x4200d000, 0x00000001, 0x0401f009, @@ -9861,38 +9912,38 @@ static const uint32_t isp_2500_risc_code[] = { 0x8068d1c0, 0x040007f8, 0x0401ffd0, 0x0401f7f6, 0x40698800, 0x589d0000, 0x809d3800, 0x1c01f000, 0x809d3840, 0x48813800, 0x4200d000, 0x000000ef, - 0x0201f800, 0x0010133d, 0x59c4d0a3, 0x8468d55a, - 0x8468d53a, 0x486b88a3, 0x0201f800, 0x001013a5, + 0x0201f800, 0x0010133b, 0x59c4d0a3, 0x8468d55a, + 0x8468d53a, 0x486b88a3, 0x0201f800, 0x001013a3, 0x80c589c0, 0x04000040, 0x4200d000, 0x00000001, - 0x0201f800, 0x0010159b, 0x4200d000, 0x00000001, - 0x0201f800, 0x00101571, 0x4201d000, 0x00000014, - 0x0201f800, 0x00104ec3, 0x59c4d008, 0x8268d540, + 0x0201f800, 0x00101599, 0x4200d000, 0x00000001, + 0x0201f800, 0x0010156f, 0x4201d000, 0x00000014, + 0x0201f800, 0x00104f4f, 0x59c4d008, 0x8268d540, 0x00000280, 0x8268d500, 0xffffffe1, 0x486b8808, 0x4a0388a7, 0x0000f7f7, 0x4a038805, 0x04000001, 0x4200d000, 0xbe20bfff, 0x4200d800, 0x80018000, - 0x0201f800, 0x001036ca, 0x4200d000, 0xfffeffff, - 0x4178d800, 0x0201f800, 0x001036ca, 0x42010000, + 0x0201f800, 0x001036d6, 0x4200d000, 0xfffeffff, + 0x4178d800, 0x0201f800, 0x001036d6, 0x42010000, 0x00001387, 0x0401f008, 0x80817040, 0x04000053, 0x80810040, 0x42000000, 0xffffffff, 0x80817480, 0x04000009, 0x4201d000, 0x00000014, 0x0201f800, - 0x00104ec3, 0x0201f800, 0x001015ca, 0x80c589c0, + 0x00104f4f, 0x0201f800, 0x001015c8, 0x80c589c0, 0x040007f2, 0x59c4d005, 0x8268dd00, 0x04000000, 0x8c68d534, 0x0402001c, 0x59c4d0a4, 0x8268d500, 0x0000000f, 0x82697480, 0x00000008, 0x0402003c, - 0x0401f015, 0x0201f800, 0x001013b0, 0x80c589c0, - 0x04000006, 0x4178d000, 0x0201f800, 0x0010159b, - 0x4178d000, 0x0401f7bf, 0x0201f800, 0x001013bb, + 0x0401f015, 0x0201f800, 0x001013ae, 0x80c589c0, + 0x04000006, 0x4178d000, 0x0201f800, 0x00101599, + 0x4178d000, 0x0401f7bf, 0x0201f800, 0x001013b9, 0x80c589c0, 0x04000026, 0x4200d000, 0x00000002, - 0x0201f800, 0x0010159b, 0x4200d000, 0x00000002, + 0x0201f800, 0x00101599, 0x4200d000, 0x00000002, 0x0401f7b4, 0x4200d000, 0x00020000, 0x0201f800, - 0x001036d1, 0x4201d000, 0x00000064, 0x0201f800, - 0x00104ec3, 0x4200d000, 0xfeffffff, 0x4200d800, - 0x02000000, 0x0201f800, 0x001036ca, 0x4200d000, - 0xfdffffff, 0x4178d800, 0x0201f800, 0x001036ca, + 0x001036dd, 0x4201d000, 0x00000064, 0x0201f800, + 0x00104f4f, 0x4200d000, 0xfeffffff, 0x4200d800, + 0x02000000, 0x0201f800, 0x001036d6, 0x4200d000, + 0xfdffffff, 0x4178d800, 0x0201f800, 0x001036d6, 0x4a038805, 0x04000001, 0x59c4d0a4, 0x8268d500, 0x0000000f, 0x4178d800, 0x8068d1c0, 0x0402000c, 0x4200d800, 0x00000001, 0x0401f009, 0x4200d000, - 0x00000003, 0x0201f800, 0x0010159b, 0x4200d000, + 0x00000003, 0x0201f800, 0x00101599, 0x4200d000, 0x00000003, 0x0401f78f, 0x40c4d800, 0x406d8800, 0x589d0000, 0x809d3800, 0x1c01f000, 0x829d3c80, 0x00000003, 0x48813800, 0x48853801, 0x48893802, @@ -9917,7 +9968,7 @@ static const uint32_t isp_2500_risc_code[] = { 0x829d3c00, 0x00000003, 0x1c01f000, 0x809d3840, 0x48813800, 0x40690000, 0x497bc856, 0x4203a000, 0x00007600, 0x4200d000, 0x00000040, 0x0201f800, - 0x00101058, 0x4a03a00a, 0x00000001, 0x4a03a005, + 0x00101056, 0x4a03a00a, 0x00000001, 0x4a03a005, 0x20000000, 0x59d0d006, 0x4a03a005, 0x30000000, 0x59d0d006, 0x8c68d50a, 0x040207fe, 0x59a0d20d, 0x48690005, 0x8068d1c0, 0x04020002, 0x0401f06d, @@ -9926,7 +9977,7 @@ static const uint32_t isp_2500_risc_code[] = { 0x59a0da0e, 0x406c0000, 0x8068d540, 0x48690006, 0x59a0d40c, 0x8068d0e0, 0x59a0da0c, 0x826c0500, 0x0000fffc, 0x8068d540, 0x48690009, 0x486ba003, - 0x0201f800, 0x00105e04, 0x40c66000, 0x80c589c0, + 0x0201f800, 0x00105e80, 0x40c66000, 0x80c589c0, 0x0400004c, 0x49334001, 0x0201f800, 0x00100565, 0x40c65800, 0x80c589c0, 0x0400003e, 0x4a025a05, 0x00000018, 0x4a025806, 0x00abcdef, 0x492e6009, @@ -9946,7 +9997,7 @@ static const uint32_t isp_2500_risc_code[] = { 0x040207fb, 0x4871000a, 0x486d0005, 0x0401f7e9, 0x4200d000, 0x0010b2c7, 0x4200d800, 0x00100565, 0x4080e000, 0x0201f800, 0x001001e3, 0x0401f7bc, - 0x4200d000, 0x0010b2c7, 0x4200d800, 0x00105e04, + 0x4200d000, 0x0010b2c7, 0x4200d800, 0x00105e80, 0x4080e000, 0x0201f800, 0x001001e3, 0x0401f7ae, 0x589d0000, 0x809d3800, 0x1c01f000, 0x809d3840, 0x48813800, 0x40690000, 0x497bc856, 0x42038000, @@ -9959,7 +10010,7 @@ static const uint32_t isp_2500_risc_code[] = { 0x59a0da0f, 0x406c0000, 0x8068d540, 0x48690006, 0x59a0d40c, 0x8068d0e0, 0x59a0da0c, 0x826c0500, 0x0000fffc, 0x8068d540, 0x48690009, 0x486bc857, - 0x58817009, 0x48bb8003, 0x0201f800, 0x00105e04, + 0x58817009, 0x48bb8003, 0x0201f800, 0x00105e80, 0x40c66000, 0x80c589c0, 0x04000057, 0x49334000, 0x0201f800, 0x00100565, 0x40c65800, 0x80c589c0, 0x04000049, 0x4a025a05, 0x00000018, 0x4a025806, @@ -9983,16 +10034,16 @@ static const uint32_t isp_2500_risc_code[] = { 0x0401f011, 0x4200d000, 0x0010b34f, 0x4200d800, 0x00100565, 0x4080e000, 0x0201f800, 0x001001e3, 0x0401f7b1, 0x4200d000, 0x0010b34f, 0x4200d800, - 0x00105e04, 0x4080e000, 0x0201f800, 0x001001e3, + 0x00105e80, 0x4080e000, 0x0201f800, 0x001001e3, 0x0401f7a3, 0x589d0000, 0x809d3800, 0x1c01f000, 0x829d3c80, 0x00000002, 0x48813800, 0x48853801, - 0x40690800, 0x406d0000, 0x0201f800, 0x0010160d, + 0x40690800, 0x406d0000, 0x0201f800, 0x0010160b, 0x40800000, 0x4084d000, 0x80c4dd00, 0x0201f800, - 0x00101614, 0x589d0801, 0x589d0000, 0x829d3c00, + 0x00101612, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000002, 0x1c01f000, 0x829d3c80, 0x00000002, 0x48813800, 0x48853801, 0x40690800, 0x406d0000, - 0x0201f800, 0x0010160d, 0x40800000, 0x4084d000, - 0x80c4dd40, 0x0201f800, 0x00101614, 0x589d0801, + 0x0201f800, 0x0010160b, 0x40800000, 0x4084d000, + 0x80c4dd40, 0x0201f800, 0x00101612, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000002, 0x1c01f000, 0x809d3840, 0x48a13800, 0x829d3c80, 0x0000000f, 0x409d4000, 0x829d3c80, 0x00000005, 0x48813800, @@ -10001,22 +10052,22 @@ static const uint32_t isp_2500_risc_code[] = { 0x59c51808, 0x59c52080, 0x8d0e1d0e, 0x040200a3, 0x59a0d407, 0x8268dd00, 0x00000007, 0x826d7480, 0x00000002, 0x040000aa, 0x806cd9c0, 0x04000006, - 0x806d7040, 0x04000144, 0x0201f800, 0x00101c0d, + 0x806d7040, 0x04000144, 0x0201f800, 0x00101c0f, 0x0401f17f, 0x4200d000, 0x00000802, 0x4200d800, 0x00000002, 0x0401ffc9, 0x0401fdc2, 0x80c589c0, 0x04000144, 0x59a0d410, 0x8068d0e0, 0x59a0da10, 0x406c0000, 0x8068d540, 0x48694000, 0x497b4408, 0x4979400b, 0x4979400c, 0x4979400d, 0x49794002, - 0x49794001, 0x0201f800, 0x001022e3, 0x0201f800, - 0x0010306d, 0x80c589c0, 0x040000fe, 0x0201f800, - 0x0010512e, 0x598e600b, 0x0201f800, 0x001053cb, - 0x0201f800, 0x0010512e, 0x417a3000, 0x0201f800, - 0x0010560b, 0x59926005, 0x813261c0, 0x0400000d, - 0x0201f800, 0x001052fc, 0x0201f800, 0x00105102, - 0x0201f800, 0x00105108, 0x42027800, 0x00001000, - 0x42028000, 0x0000002e, 0x0201f800, 0x0010ba4a, + 0x49794001, 0x0201f800, 0x001022e8, 0x0201f800, + 0x00103071, 0x80c589c0, 0x040000fe, 0x0201f800, + 0x001051ba, 0x598e600b, 0x0201f800, 0x00105457, + 0x0201f800, 0x001051ba, 0x417a3000, 0x0201f800, + 0x00105697, 0x59926005, 0x813261c0, 0x0400000d, + 0x0201f800, 0x00105388, 0x0201f800, 0x0010518e, + 0x0201f800, 0x00105194, 0x42027800, 0x00001000, + 0x42028000, 0x0000002e, 0x0201f800, 0x0010ba5a, 0x811a3000, 0x83197480, 0x00000004, 0x040007ec, - 0x040017eb, 0x0201f800, 0x001007cf, 0x49794004, + 0x040017eb, 0x0201f800, 0x001007cd, 0x49794004, 0x497b4002, 0x40a0d000, 0x0401feed, 0x59a0d408, 0x82697480, 0x0000dddd, 0x04000138, 0x40a0d000, 0x0401fe5f, 0x59a0d408, 0x82697480, 0x0000dddd, @@ -10032,21 +10083,21 @@ static const uint32_t isp_2500_risc_code[] = { 0x04000028, 0x40a0d000, 0x0401fcce, 0x59a0d408, 0x82697480, 0x0000dddd, 0x04000022, 0x0201f800, 0x0010ada0, 0x59c4d005, 0x8c68d534, 0x0402003c, - 0x0201f800, 0x001022ea, 0x80c589c0, 0x040200e4, + 0x0201f800, 0x001022ef, 0x80c589c0, 0x040200e4, 0x59a0d00d, 0x8068d1c0, 0x04000016, 0x59a26000, 0x59a0d40d, 0x8068d1c0, 0x04000004, 0x5930d00f, 0x8068d1c0, 0x040207c7, 0x59a26001, 0x59a0d20d, 0x8068d1c0, 0x04000004, 0x5930d00f, 0x8068d1c0, 0x040207c0, 0x58a0d002, 0x8068d1c0, 0x040207bd, 0x58a0d001, 0x8068d1c0, 0x040207ba, 0x0401fcff, - 0x58a0e00e, 0x0401f024, 0x0201f800, 0x001013d1, + 0x58a0e00e, 0x0401f024, 0x0201f800, 0x001013cf, 0x80c589c0, 0x0400075b, 0x4200d000, 0x00000003, - 0x0201f800, 0x0010159b, 0x4200d000, 0x00000003, - 0x0201f800, 0x00101571, 0x0401f752, 0x8d0e1d0e, - 0x0402000c, 0x0201f800, 0x001040d9, 0x80c589c0, + 0x0201f800, 0x00101599, 0x4200d000, 0x00000003, + 0x0201f800, 0x0010156f, 0x0401f752, 0x8d0e1d0e, + 0x0402000c, 0x0201f800, 0x0010410f, 0x80c589c0, 0x040200bf, 0x836d7480, 0x00000003, 0x04020005, 0x59c4d0a4, 0x8268d500, 0x0000000f, 0x0400075a, - 0x0201f800, 0x00101c11, 0x0401f0cd, 0x4a01400d, + 0x0201f800, 0x00101c13, 0x0401f0cd, 0x4a01400d, 0x0000bbbb, 0x4a01400e, 0x00000001, 0x4200e000, 0x00000001, 0x58a0d000, 0x8068d040, 0x48694000, 0x4200d800, 0x00030d40, 0x80717040, 0x04020004, @@ -10056,7 +10107,7 @@ static const uint32_t isp_2500_risc_code[] = { 0x04020003, 0x0201f800, 0x0010b0d5, 0x4a01400d, 0x0000dddd, 0x40a0d000, 0x0401fcd7, 0x80c589c0, 0x04020004, 0x58a0d000, 0x8068d1c0, 0x04020764, - 0x0201f800, 0x00103089, 0x0201f800, 0x00105456, + 0x0201f800, 0x0010308d, 0x0201f800, 0x001054e2, 0x0201f800, 0x0010ada6, 0x4201d000, 0x000186a0, 0x48938880, 0x488f8808, 0x488b88a3, 0x4883500f, 0x48879040, 0x42038000, 0x00007700, 0x4a038009, @@ -10066,16 +10117,16 @@ static const uint32_t isp_2500_risc_code[] = { 0x82697480, 0x00000002, 0x04000010, 0x4200d000, 0x00000802, 0x4200d800, 0xfffffffc, 0x0401fec1, 0x4200d000, 0x0000240c, 0x4200d800, 0xffffff7f, - 0x0401febc, 0x0201f800, 0x001040ef, 0x40c50000, + 0x0401febc, 0x0201f800, 0x00104125, 0x40c50000, 0x80c589c0, 0x04000067, 0x59a0d408, 0x82697480, 0x0000dddd, 0x0400000f, 0x58a0d80b, 0x806cd9c0, 0x04020007, 0x58a0d00c, 0x8068d1c0, 0x04020004, 0x58a0d00d, 0x8068d1c0, 0x0400006b, 0x486f4407, 0x58a0d00c, 0x486b4208, 0x58a0d00d, 0x486b4408, - 0x0201f800, 0x00101c19, 0x0401f065, 0x59c8d001, + 0x0201f800, 0x00101c1b, 0x0401f065, 0x59c8d001, 0x8068d1c0, 0x04020738, 0x40a0d000, 0x0201f800, 0x0010b07e, 0x59a0d408, 0x82697480, 0x0000dddd, - 0x04000731, 0x0201f800, 0x001022ea, 0x80c589c0, + 0x04000731, 0x0201f800, 0x001022ef, 0x80c589c0, 0x040007f3, 0x0201f800, 0x0010b0d5, 0x4a01400d, 0x0000aaaa, 0x4a01400e, 0x00000001, 0x0401f726, 0x40a0d000, 0x0201f800, 0x0010b0e3, 0x80c589c0, @@ -10092,98 +10143,102 @@ static const uint32_t isp_2500_risc_code[] = { 0x8068d1c0, 0x04020774, 0x0401f77a, 0x4a01400d, 0x0000cccc, 0x58a0d000, 0x486b4210, 0x58a0d000, 0x8068d120, 0x486b4410, 0x0401f74f, 0x4a034407, - 0x00000016, 0x0201f800, 0x00101c09, 0x0401f014, + 0x00000016, 0x0201f800, 0x00101c0b, 0x0401f014, 0x4a0388a7, 0x0000f7f7, 0x4200d000, 0xbeffffff, - 0x4200d800, 0x80018000, 0x0201f800, 0x001036ca, + 0x4200d800, 0x80018000, 0x0201f800, 0x001036d6, 0x4200d000, 0xfffeffff, 0x4080d800, 0x0201f800, - 0x001036ca, 0x0401f78d, 0x40a0d000, 0x0401fc2e, - 0x0401f75c, 0x0201f800, 0x00101bc7, 0x589d2004, + 0x001036d6, 0x0401f78d, 0x40a0d000, 0x0401fc2e, + 0x0401f75c, 0x0201f800, 0x00101bc9, 0x589d2004, 0x589d1803, 0x589d1002, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000014, 0x589d4000, 0x809d3800, 0x1c01f000, 0x4937c857, 0x5934d200, 0x8468d502, - 0x486a6a00, 0x1c01f000, 0x809d3840, 0x48813800, + 0x486a6a00, 0x1c01f000, 0x829d3c80, 0x00000002, + 0x48813800, 0x48853801, 0x59a8d006, 0x82690d00, + 0x00004000, 0x4178d800, 0x8c68d51c, 0x0402001f, 0x4937c857, 0x42010000, 0x00000001, 0x0201f800, - 0x00105e04, 0x40c66000, 0x80c589c0, 0x04000014, - 0x4935880a, 0x48818c07, 0x417a7800, 0x0201f800, - 0x001038ff, 0x59a8d016, 0x8068d000, 0x486b5016, - 0x599cd019, 0x417a7000, 0x8c68d50e, 0x04020003, - 0x42027000, 0x00000004, 0x0201f800, 0x00105e2e, - 0x599cd208, 0x486a6c12, 0x41790000, 0x40818800, - 0x589d0000, 0x809d3800, 0x1c01f000, 0x829d3c80, - 0x00000004, 0x48813800, 0x48853801, 0x48893802, - 0x488d3803, 0x41350800, 0x41451000, 0x412d1800, - 0x4943c857, 0x493fc857, 0x0201f800, 0x0010512e, - 0x40c50000, 0x0201f800, 0x0010bcd9, 0x0201f800, - 0x0010bcc9, 0x0201f800, 0x0010bd73, 0x0201f800, - 0x0010beb7, 0x808101c0, 0x04000003, 0x0201f800, - 0x0010511f, 0x417a8800, 0x0401f00a, 0x58c4d200, - 0x8c68d50e, 0x0400000e, 0x81468800, 0x83457480, - 0x000007ef, 0x83f17500, 0x03000000, 0x04000026, - 0x0201f800, 0x001039c0, 0x40c66800, 0x80c589c0, - 0x040007f6, 0x8d3e7d06, 0x040207f1, 0x8d3e7d18, - 0x0400003f, 0x5935000f, 0x0401f007, 0x49410207, - 0x40825800, 0x58810000, 0x492fc857, 0x0201f800, - 0x0002032c, 0x808101c0, 0x040207f9, 0x497a680f, - 0x497a6810, 0x4937c857, 0x4a026c00, 0x00000707, - 0x497a6a03, 0x497a6811, 0x599cd401, 0x486a6a0b, - 0x5934d402, 0x8268d500, 0x000000ff, 0x486a6c02, - 0x81468800, 0x83457480, 0x000007ef, 0x040007dd, - 0x040017dc, 0x8d3e7d02, 0x0400002a, 0x497b5018, - 0x42028800, 0x000007f0, 0x0401f007, 0x81468800, - 0x83457480, 0x000007ff, 0x83f17500, 0x03000000, - 0x04000020, 0x0201f800, 0x001039c0, 0x40c66800, - 0x80c589c0, 0x040007f6, 0x48c7c857, 0x4a018c00, - 0x00000707, 0x58c4d00c, 0x8068d1c0, 0x040207f0, - 0x58c4d00f, 0x8068d1c0, 0x040207ed, 0x0201f800, - 0x001036fe, 0x81468800, 0x83457480, 0x000007ff, - 0x040007ed, 0x040017ec, 0x0401f00a, 0x4937c857, - 0x8d0e1d20, 0x04000004, 0x4a026c00, 0x00000707, - 0x0401f7ae, 0x0201f800, 0x001036fe, 0x0401f7ab, - 0x40866800, 0x408a8800, 0x408e5800, 0x589d1803, - 0x589d1002, 0x589d0801, 0x589d0000, 0x829d3c00, - 0x00000004, 0x1c01f000, 0x829d3c80, 0x00000006, - 0x48813800, 0x48853801, 0x48893802, 0x488d3803, - 0x48913804, 0x48953805, 0x41352800, 0x41412000, - 0x41451800, 0x412d1000, 0x4933c857, 0x493fc857, - 0x0201f800, 0x0010512e, 0x40c50800, 0x5932680a, - 0x813669c0, 0x0400002a, 0x5934d403, 0x406a8800, - 0x42028000, 0x00000029, 0x0201f800, 0x0010bb8e, - 0x0201f800, 0x0010bc6a, 0x0201f800, 0x0010bd03, - 0x0201f800, 0x0010c0f3, 0x4937c857, 0x8d3e7d06, - 0x0402001e, 0x8d3e7d18, 0x04000021, 0x5935000f, - 0x808101c0, 0x0400000b, 0x49410207, 0x40825800, - 0x58810000, 0x492fc857, 0x0201f800, 0x0002032c, - 0x808101c0, 0x040207f9, 0x4882680f, 0x48826810, - 0x4937c857, 0x4a026c00, 0x00000707, 0x497a6a03, - 0x497a6811, 0x599cd401, 0x486a6a0b, 0x5934d402, - 0x8268d500, 0x000000ff, 0x486a6c02, 0x808509c0, - 0x04000013, 0x0401f00c, 0x5934d200, 0x8c68d50e, - 0x040207fb, 0x8d3e7d18, 0x040207e1, 0x8d0e1d20, + 0x00105e80, 0x40c66000, 0x80c589c0, 0x04020003, + 0x4080d800, 0x0401f015, 0x4935880a, 0x48818c07, + 0x40867800, 0x0201f800, 0x0010390b, 0x59a8d016, + 0x8068d000, 0x486b5016, 0x599cd019, 0x40867000, + 0x8c68d50e, 0x04020003, 0x42027000, 0x00000004, + 0x0201f800, 0x00105eaa, 0x599cd208, 0x486a6c12, + 0x41790000, 0x4080d800, 0x406d8800, 0x589d0801, + 0x589d0000, 0x829d3c00, 0x00000002, 0x1c01f000, + 0x829d3c80, 0x00000004, 0x48813800, 0x48853801, + 0x48893802, 0x488d3803, 0x41350800, 0x41451000, + 0x412d1800, 0x4943c857, 0x493fc857, 0x0201f800, + 0x001051ba, 0x40c50000, 0x0201f800, 0x0010bcde, + 0x0201f800, 0x0010bcce, 0x0201f800, 0x0010bd78, + 0x0201f800, 0x0010bebc, 0x808101c0, 0x04000003, + 0x0201f800, 0x001051ab, 0x417a8800, 0x0401f00a, + 0x58c4d200, 0x8c68d50e, 0x0400000e, 0x81468800, + 0x83457480, 0x000007ef, 0x83f17500, 0x03000000, + 0x04000027, 0x0201f800, 0x001039cf, 0x40c66800, + 0x80c589c0, 0x040007f6, 0x8d3e7d06, 0x040207f1, + 0x497a6c0b, 0x8d3e7d18, 0x0400003f, 0x5935000f, + 0x0401f007, 0x49410207, 0x40825800, 0x58810000, + 0x492fc857, 0x0201f800, 0x0002032c, 0x808101c0, + 0x040207f9, 0x497a680f, 0x497a6810, 0x4937c857, + 0x4a026c00, 0x00000707, 0x497a6a03, 0x497a6811, + 0x599cd401, 0x486a6a0b, 0x5934d402, 0x8268d500, + 0x000000ff, 0x486a6c02, 0x81468800, 0x83457480, + 0x000007ef, 0x040007dc, 0x040017db, 0x8d3e7d02, + 0x0400002a, 0x497b5018, 0x42028800, 0x000007f0, + 0x0401f007, 0x81468800, 0x83457480, 0x000007ff, + 0x83f17500, 0x03000000, 0x04000020, 0x0201f800, + 0x001039cf, 0x40c66800, 0x80c589c0, 0x040007f6, + 0x48c7c857, 0x4a018c00, 0x00000707, 0x58c4d00c, + 0x8068d1c0, 0x040207f0, 0x58c4d00f, 0x8068d1c0, + 0x040207ed, 0x0201f800, 0x0010370a, 0x81468800, + 0x83457480, 0x000007ff, 0x040007ed, 0x040017ec, + 0x0401f00a, 0x4937c857, 0x8d0e1d20, 0x04000004, + 0x4a026c00, 0x00000707, 0x0401f7ad, 0x0201f800, + 0x0010370a, 0x0401f7aa, 0x40866800, 0x408a8800, + 0x408e5800, 0x589d1803, 0x589d1002, 0x589d0801, + 0x589d0000, 0x829d3c00, 0x00000004, 0x1c01f000, + 0x829d3c80, 0x00000006, 0x48813800, 0x48853801, + 0x48893802, 0x488d3803, 0x48913804, 0x48953805, + 0x41352800, 0x41412000, 0x41451800, 0x412d1000, + 0x4933c857, 0x493fc857, 0x0201f800, 0x001051ba, + 0x40c50800, 0x5932680a, 0x813669c0, 0x0400002b, + 0x5934d403, 0x406a8800, 0x42028000, 0x00000029, + 0x0201f800, 0x0010bb9e, 0x0201f800, 0x0010bc6f, + 0x0201f800, 0x0010bd08, 0x0201f800, 0x0010c0ee, + 0x4937c857, 0x8d3e7d06, 0x0402001f, 0x497a6c0b, + 0x8d3e7d18, 0x04000022, 0x5935000f, 0x808101c0, + 0x0400000b, 0x49410207, 0x40825800, 0x58810000, + 0x492fc857, 0x0201f800, 0x0002032c, 0x808101c0, + 0x040207f9, 0x4882680f, 0x48826810, 0x4937c857, + 0x4a026c00, 0x00000707, 0x497a6a03, 0x497a6811, + 0x599cd401, 0x486a6a0b, 0x5934d402, 0x8268d500, + 0x000000ff, 0x486a6c02, 0x808509c0, 0x04000014, + 0x0401f00d, 0x5934d200, 0x8c68d50e, 0x040207fb, + 0x497a6c0b, 0x8d3e7d18, 0x040207e0, 0x8d0e1d20, 0x04000008, 0x4a026c00, 0x00000707, 0x808509c0, - 0x04000007, 0x0201f800, 0x0010511f, 0x0401f004, - 0x0201f800, 0x001036fe, 0x0401f7ed, 0x408a5800, + 0x04000007, 0x0201f800, 0x001051ab, 0x0401f004, + 0x0201f800, 0x0010370a, 0x0401f7ec, 0x408a5800, 0x408e8800, 0x40928000, 0x40966800, 0x589d2805, 0x589d2004, 0x589d1803, 0x589d1002, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000006, 0x1c01f000, 0x809d3840, 0x48813800, 0x4937c857, 0x42010000, - 0x00000001, 0x0201f800, 0x00105e04, 0x40c66000, + 0x00000001, 0x0201f800, 0x00105e80, 0x40c66000, 0x80c589c0, 0x0400001d, 0x4935880a, 0x5934d403, 0x82697480, 0x000007fe, 0x04000003, 0x417a7800, - 0x0401ff92, 0x48826407, 0x417a7800, 0x0201f800, - 0x001038ff, 0x4200d000, 0x00000003, 0x0201f800, - 0x00103909, 0x836d7480, 0x00000003, 0x04000004, + 0x0401ff90, 0x48826407, 0x417a7800, 0x0201f800, + 0x0010390b, 0x4200d000, 0x00000003, 0x0201f800, + 0x00103915, 0x836d7480, 0x00000003, 0x04000004, 0x59a8d016, 0x8068d000, 0x486b5016, 0x42027000, - 0x00000002, 0x0201f800, 0x00105e2e, 0x599cd208, + 0x00000002, 0x0201f800, 0x00105eaa, 0x599cd208, 0x486a6c12, 0x41790000, 0x40818800, 0x589d0000, 0x809d3800, 0x1c01f000, 0x829d3c80, 0x00000002, 0x48813800, 0x48853801, 0x497bc856, 0x42010000, 0x00000001, 0x48835017, 0x42028800, 0x000007fe, - 0x4200d000, 0x00fffffe, 0x0201f800, 0x0010392e, - 0x40c66800, 0x80c589c0, 0x04000012, 0x0401fec2, + 0x4200d000, 0x00fffffe, 0x0201f800, 0x0010393d, + 0x40c66800, 0x80c589c0, 0x04000012, 0x0401feb2, 0x0401ffc4, 0x40c50800, 0x80c589c0, 0x0402000d, 0x599cd208, 0x486a6c12, 0x59a8d21b, 0x8268d500, 0xffffdefc, 0x486b521b, 0x59a8d21b, 0x8468d54e, - 0x486b521b, 0x0201f800, 0x0010737f, 0x40850000, + 0x486b521b, 0x0201f800, 0x00107415, 0x40850000, 0x40818800, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000002, 0x1c01f000, 0x829d3c80, 0x00000005, 0x48813800, 0x48853801, 0x48893802, 0x488d3803, @@ -10193,58 +10248,58 @@ static const uint32_t isp_2500_risc_code[] = { 0x83f17500, 0x03000000, 0x04000044, 0x406d1000, 0x497bc856, 0x406c0000, 0x4200d000, 0x0000007e, 0x8068b480, 0x8058b1c0, 0x0400003c, 0x42012000, - 0x00101a21, 0x0401f014, 0x42010800, 0x00000001, - 0x0201f800, 0x00103e6d, 0x0201f800, 0x00103c32, + 0x00101a23, 0x0401f014, 0x42010800, 0x00000001, + 0x0201f800, 0x00103e85, 0x0201f800, 0x00103c47, 0x80c57040, 0x04000034, 0x59a8d06f, 0x8c68d502, 0x04020041, 0x4937c857, 0x599cd019, 0x8c68d50e, 0x04000066, 0x8058b040, 0x80891000, 0x8058b1c0, 0x04000026, 0x40880000, 0x8090d400, 0x5868d000, 0x82690500, 0x000000ff, 0x408c0000, 0x80817480, - 0x040007f5, 0x4080d000, 0x0201f800, 0x0010c750, + 0x040007f5, 0x4080d000, 0x0201f800, 0x0010c758, 0x80c589c0, 0x0400005e, 0x59a8d086, 0x8c68d502, 0x04000007, 0x4200d000, 0x00000010, 0x0201f800, - 0x00103e6e, 0x80c57040, 0x04000010, 0x41790800, - 0x0201f800, 0x001039c0, 0x80c589c0, 0x040207d3, + 0x00103e86, 0x80c57040, 0x04000010, 0x41790800, + 0x0201f800, 0x001039cf, 0x80c589c0, 0x040207d3, 0x599cd019, 0x8c68d50e, 0x040207df, 0x4080d000, - 0x0201f800, 0x00103934, 0x80c589c0, 0x040207cd, + 0x0201f800, 0x00103943, 0x80c589c0, 0x040207cd, 0x488b5017, 0x0401f048, 0x4a035017, 0x0000ffff, 0x0401f045, 0x8d0e1d02, 0x04020034, 0x59a8d06f, - 0x8c68d500, 0x04000005, 0x0201f800, 0x001019e9, - 0x80c57040, 0x040007cc, 0x0401fe4c, 0x80c57040, + 0x8c68d500, 0x04000005, 0x0201f800, 0x001019eb, + 0x80c57040, 0x040007cc, 0x0401fe3c, 0x80c57040, 0x040207c9, 0x0401f7ef, 0x4200b000, 0x0000007e, - 0x0401f7b1, 0x0201f800, 0x00103c5e, 0x40c50000, + 0x0401f7b1, 0x0201f800, 0x00103c73, 0x40c50000, 0x80c589c0, 0x040207c0, 0x808509c0, 0x04000029, - 0x0201f800, 0x001019e9, 0x80c57040, 0x040007ba, - 0x42026000, 0x0010cc5c, 0x4936600a, 0x48826009, - 0x40827800, 0x0401fed5, 0x4200d000, 0x001097f8, - 0x0201f800, 0x00108894, 0x8d0e1d20, 0x040007ae, + 0x0201f800, 0x001019eb, 0x80c57040, 0x040007ba, + 0x42026000, 0x0010cc6c, 0x4936600a, 0x48826009, + 0x40827800, 0x0401fed3, 0x4200d000, 0x00109878, + 0x0201f800, 0x0010895e, 0x8d0e1d20, 0x040007ae, 0x41450000, 0x41410800, 0x5934d403, 0x406a8800, 0x42028000, 0x00000029, 0x4178d000, 0x4200d800, - 0x00000008, 0x0201f800, 0x001082e7, 0x40828800, + 0x00000008, 0x0201f800, 0x00108398, 0x40828800, 0x40868000, 0x0401f7a0, 0x5934d200, 0x8c68d50e, - 0x04000796, 0x0401f7ca, 0x0401fe17, 0x0401ff19, + 0x04000796, 0x0401f7ca, 0x0401fe07, 0x0401ff19, 0x80c57040, 0x04020798, 0x488b5017, 0x0401f796, - 0x0201f800, 0x00103998, 0x0401f793, 0x4937c857, + 0x0201f800, 0x001039a7, 0x0401f793, 0x4937c857, 0x0401f7b8, 0x589d2004, 0x589d1803, 0x589d1002, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000005, 0x1c01f000, 0x829d3c80, 0x00000005, 0x48813800, 0x48853801, 0x48893802, 0x488d3803, 0x48913804, 0x59a8d00f, 0x82691d00, 0x000000ff, 0x59a90817, 0x82857480, 0x0000ffff, 0x0400006a, 0x41791000, - 0x42012000, 0x001098d3, 0x80840104, 0x8090d400, + 0x42012000, 0x00109953, 0x80840104, 0x8090d400, 0x5868d000, 0x8284dd00, 0x00000003, 0x826d7480, 0x00000002, 0x04000057, 0x826d7480, 0x00000002, 0x83f17500, 0x03000000, 0x04000030, 0x806d7040, 0x04000052, 0x82690500, 0x000000ff, 0x82817480, 0x000000ff, 0x04000032, 0x40800000, 0x4200d000, - 0x00101a21, 0x8068d400, 0x5868d000, 0x8068d110, + 0x00101a23, 0x8068d400, 0x5868d000, 0x8068d110, 0x82697480, 0x00000080, 0x0400001c, 0x408c0000, 0x80817480, 0x04000019, 0x808101c0, 0x04000017, 0x59a8d086, 0x8c68d502, 0x04000007, 0x4200d000, - 0x00000010, 0x0201f800, 0x00103e6e, 0x80c57040, + 0x00000010, 0x0201f800, 0x00103e86, 0x80c57040, 0x0400003f, 0x417a8800, 0x4080d000, 0x0201f800, - 0x0010c7c9, 0x80c589c0, 0x0400002c, 0x0201f800, - 0x0010397b, 0x80c589c0, 0x0402002e, 0x599cd019, + 0x0010c7d1, 0x80c589c0, 0x0400002c, 0x0201f800, + 0x0010398a, 0x80c589c0, 0x0402002e, 0x599cd019, 0x8c68d50e, 0x0400001a, 0x80850800, 0x80897040, 0x040207c6, 0x0401f030, 0x826d7480, 0x00000003, 0x040207d1, 0x8068d130, 0x82690500, 0x000000ff, @@ -10252,11 +10307,11 @@ static const uint32_t isp_2500_risc_code[] = { 0x00000003, 0x04020022, 0x59a8d06f, 0x8468d542, 0x486b506f, 0x4a035017, 0x0000ffff, 0x0401fefb, 0x42011000, 0x00000001, 0x0401f7e9, 0x4080d000, - 0x0201f800, 0x0010392e, 0x80c589c0, 0x04000007, - 0x0201f800, 0x00103e6d, 0x0401fd9b, 0x0401fe9d, + 0x0201f800, 0x0010393d, 0x80c589c0, 0x04000007, + 0x0201f800, 0x00103e85, 0x0401fd8b, 0x0401fe9d, 0x80c589c0, 0x040007dd, 0x48875017, 0x0401f00e, 0x8068d120, 0x0401f7b0, 0x8068d110, 0x0401f7ae, - 0x0201f800, 0x00103e6d, 0x0401fd94, 0x0401f7f5, + 0x0201f800, 0x00103e85, 0x0401fd84, 0x0401f7f5, 0x42010800, 0x00000001, 0x0401f795, 0x4a035017, 0x0000ffff, 0x589d2004, 0x589d1803, 0x589d1002, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000005, @@ -10264,18 +10319,18 @@ static const uint32_t isp_2500_risc_code[] = { 0x0000ffff, 0x0401f009, 0x59a8d06f, 0x8c68d500, 0x04000003, 0x8c68d502, 0x04000003, 0x0401fecb, 0x0401f002, 0x0401ff70, 0x1c01f000, 0x809d3840, - 0x48813800, 0x59a9021b, 0x0201f800, 0x00103baa, + 0x48813800, 0x59a9021b, 0x0201f800, 0x00103bbd, 0x80c589c0, 0x04000002, 0x0401f01d, 0x0201f800, - 0x001040d9, 0x80c589c0, 0x04000007, 0x8c810500, + 0x0010410f, 0x80c589c0, 0x04000007, 0x8c810500, 0x0402000a, 0x8c81050e, 0x040207f8, 0x0401fe8f, 0x0401f013, 0x8c810506, 0x040207f9, 0x4080d000, - 0x0401ffdd, 0x0401f00e, 0x0201f800, 0x00101a18, - 0x80c589c0, 0x040207ed, 0x0201f800, 0x001040d9, + 0x0401ffdd, 0x0401f00e, 0x0201f800, 0x00101a1a, + 0x80c589c0, 0x040207ed, 0x0201f800, 0x0010410f, 0x80c589c0, 0x04000004, 0x4a035017, 0x0000ffff, 0x0401f003, 0x4080d000, 0x0401ffcf, 0x589d0000, 0x809d3800, 0x1c01f000, 0x829d3c80, 0x00000003, 0x48813800, 0x48853801, 0x48893802, 0x40690800, - 0x406d1000, 0x40d50000, 0x0201f800, 0x00105108, + 0x406d1000, 0x40d50000, 0x0201f800, 0x00105194, 0x5880d02f, 0x41300000, 0x80697480, 0x04000018, 0x5880d02e, 0x41300000, 0x80697480, 0x0400001f, 0x5930d800, 0x806cd9c0, 0x04020008, 0x59317001, @@ -10299,7 +10354,7 @@ static const uint32_t isp_2500_risc_code[] = { 0x48a13800, 0x829d3c80, 0x00000005, 0x409d4000, 0x829d3c80, 0x00000005, 0x48813800, 0x48853801, 0x48893802, 0x488d3803, 0x48913804, 0x41790800, - 0x40850000, 0x4933c857, 0x0201f800, 0x0010512e, + 0x40850000, 0x4933c857, 0x0201f800, 0x001051ba, 0x40c52000, 0x41351800, 0x41191000, 0x49914003, 0x49d14000, 0x49a54001, 0x49154002, 0x48d94004, 0x5932680a, 0x58d4e02f, 0x4070d800, 0x8070e1c0, @@ -10311,45 +10366,45 @@ static const uint32_t isp_2500_risc_code[] = { 0x0401f005, 0x406d0000, 0x586cd801, 0x806cd9c0, 0x040007ec, 0x806d7480, 0x040207fb, 0x42010800, 0x00000001, 0x806cd9c0, 0x040207e8, 0x80857040, - 0x04000020, 0x417a3000, 0x0201f800, 0x0010560b, + 0x04000020, 0x417a3000, 0x0201f800, 0x00105697, 0x5990d005, 0x41300000, 0x80697480, 0x04000010, 0x811a3000, 0x83197480, 0x00000004, 0x040007f7, 0x040017f6, 0x408a3000, 0x408e6800, 0x58a32003, 0x58a3a000, 0x58a34801, 0x58a22802, 0x58a1b004, 0x80917040, 0x04020011, 0x0401f00e, 0x42010800, - 0x00000001, 0x0201f800, 0x001052fc, 0x0201f800, - 0x00105102, 0x0201f800, 0x00105108, 0x0401f7ee, + 0x00000001, 0x0201f800, 0x00105388, 0x0201f800, + 0x0010518e, 0x0201f800, 0x00105194, 0x0401f7ee, 0x4070d000, 0x4080d800, 0x0401ff48, 0x0401f7ea, - 0x0201f800, 0x0010511f, 0x40858800, 0x589d2004, + 0x0201f800, 0x001051ab, 0x40858800, 0x589d2004, 0x589d1803, 0x589d1002, 0x589d0801, 0x589d0000, 0x829d3c00, 0x0000000a, 0x589d4000, 0x809d3800, 0x1c01f000, 0x829d3c80, 0x00000002, 0x48813800, 0x48853801, 0x40690000, 0x59310800, 0x497a6000, - 0x0201f800, 0x00105108, 0x808101c0, 0x04000008, + 0x0201f800, 0x00105194, 0x808101c0, 0x04000008, 0x48850000, 0x598cd008, 0x41300000, 0x80697480, 0x0402000b, 0x48831808, 0x0401f009, 0x598cd008, 0x41300000, 0x80697480, 0x04000003, 0x48871809, 0x0401f003, 0x48831808, 0x48831809, 0x0201f800, - 0x00105118, 0x589d0801, 0x589d0000, 0x829d3c00, + 0x001051a4, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000002, 0x1c01f000, 0x829d3c80, 0x00000002, 0x48813800, 0x48853801, 0x598d0009, 0x41790800, 0x4933c857, 0x813261c0, 0x04020007, 0x0401f00a, 0x41300000, 0x80817480, 0x0400000e, 0x40810800, 0x58810000, 0x808101c0, 0x040207fa, 0x4178d000, - 0x0401f015, 0x4200d000, 0x000005a7, 0x4080d800, + 0x0401f015, 0x4200d000, 0x000005aa, 0x4080d800, 0x4084e000, 0x0201f800, 0x001001e3, 0x0401f7f6, 0x4084d000, 0x0401ffc4, 0x598cd00b, 0x41300000, 0x80697480, 0x04000005, 0x497a6008, 0x4200d000, - 0x00000001, 0x0401f004, 0x0201f800, 0x001055f3, + 0x00000001, 0x0401f004, 0x0201f800, 0x0010567f, 0x0401f7fa, 0x40698800, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000002, 0x1c01f000, 0x829d3c80, 0x00000002, 0x48813800, 0x48853801, 0x40690000, - 0x59310800, 0x497a6000, 0x0201f800, 0x00105108, + 0x59310800, 0x497a6000, 0x0201f800, 0x00105194, 0x808101c0, 0x04000008, 0x48850000, 0x598cd006, 0x41300000, 0x80697480, 0x0402000b, 0x48831806, 0x0401f009, 0x598cd006, 0x41300000, 0x80697480, 0x04000003, 0x48871807, 0x0401f003, 0x48831806, - 0x48831807, 0x0201f800, 0x00105118, 0x589d0801, + 0x48831807, 0x0201f800, 0x001051a4, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000002, 0x1c01f000, 0x829d3c80, 0x00000002, 0x48813800, 0x48853801, 0x598d0007, 0x41790800, 0x4933c857, 0x813261c0, @@ -10359,41 +10414,41 @@ static const uint32_t isp_2500_risc_code[] = { 0x0401ffcb, 0x598cd00b, 0x41300000, 0x80697480, 0x04000011, 0x5930d403, 0x82697480, 0x00000042, 0x0400000b, 0x4200d000, 0x00000001, 0x0401f00d, - 0x4200d000, 0x0000055e, 0x4080d800, 0x4084e000, + 0x4200d000, 0x00000561, 0x4080d800, 0x4084e000, 0x0201f800, 0x001001e3, 0x0401f7e9, 0x497a6008, - 0x0401f7f5, 0x0201f800, 0x001055f3, 0x0401f7ee, + 0x0401f7f5, 0x0201f800, 0x0010567f, 0x0401f7ee, 0x40698800, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000002, 0x1c01f000, 0x829d3c80, 0x00000002, 0x48813800, 0x48853801, 0x40690000, 0x59310800, - 0x497a6000, 0x0201f800, 0x00105108, 0x808101c0, + 0x497a6000, 0x0201f800, 0x00105194, 0x808101c0, 0x04000008, 0x48850000, 0x598cd002, 0x41300000, 0x80697480, 0x0402000b, 0x48831802, 0x0401f009, 0x598cd002, 0x41300000, 0x80697480, 0x04000003, 0x48871803, 0x0401f003, 0x48831802, 0x48831803, - 0x0201f800, 0x00105118, 0x589d0801, 0x589d0000, + 0x0201f800, 0x001051a4, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000002, 0x1c01f000, 0x829d3c80, 0x00000002, 0x48813800, 0x48853801, 0x598d0003, 0x40810800, 0x4933c857, 0x813261c0, 0x04020007, 0x0401f022, 0x41300000, 0x80817480, 0x04000007, 0x40810800, 0x58810000, 0x808101c0, 0x040207fa, 0x4178d000, 0x0401f02b, 0x598cd00b, 0x80697480, - 0x04000025, 0x0201f800, 0x00105108, 0x598cd003, + 0x04000025, 0x0201f800, 0x00105194, 0x598cd003, 0x40800000, 0x80697480, 0x04000017, 0x598cd002, 0x80697480, 0x04000009, 0x58817000, 0x48b90800, - 0x49790000, 0x0201f800, 0x00105118, 0x4200d000, + 0x49790000, 0x0201f800, 0x001051a4, 0x4200d000, 0x00000001, 0x0401f017, 0x48871802, 0x49790000, - 0x49790800, 0x0401f7f8, 0x4200d000, 0x000005ea, + 0x49790800, 0x0401f7f8, 0x4200d000, 0x000005ed, 0x4080d800, 0x4080e000, 0x0201f800, 0x001001e3, 0x0401f7de, 0x58817000, 0x48bb1803, 0x49790000, 0x598cd002, 0x80697480, 0x040207eb, 0x497b1802, - 0x0401f7e9, 0x0201f800, 0x001055f3, 0x0401f7da, + 0x0401f7e9, 0x0201f800, 0x0010567f, 0x0401f7da, 0x40698800, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000002, 0x1c01f000, 0x829d3c80, 0x00000002, 0x48813800, 0x48853801, 0x41790000, 0x0201f800, - 0x0010512e, 0x40c50800, 0x0401ff62, 0x80c57040, + 0x001051ba, 0x40c50800, 0x0401ff62, 0x80c57040, 0x04000007, 0x0401ff11, 0x80c57040, 0x04000004, 0x0401ffaf, 0x80c57040, 0x04020002, 0x40c50000, - 0x80857040, 0x04020003, 0x0201f800, 0x0010511f, + 0x80857040, 0x04020003, 0x0201f800, 0x001051ab, 0x40818800, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000002, 0x1c01f000, 0x829d3c80, 0x00000002, 0x48813800, 0x48853801, 0x5c00d000, 0x4c680000, @@ -10401,42 +10456,42 @@ static const uint32_t isp_2500_risc_code[] = { 0x59325809, 0x4933c857, 0x4943c857, 0x493fc857, 0x5930d407, 0x486bc857, 0x5930dc07, 0x806c0040, 0x4000d000, 0x82697480, 0x00000010, 0x83f17500, - 0x03000000, 0x04000013, 0x0c01f001, 0x0010baaf, - 0x0010ba87, 0x0010ba95, 0x0010baaf, 0x0010bab8, - 0x0010bac5, 0x0010ba74, 0x0010ba74, 0x0010ba74, - 0x0010bacf, 0x0010ba74, 0x0010ba74, 0x0010ba74, - 0x0010ba74, 0x0010ba74, 0x0010ba7a, 0x0010ba7a, - 0x4200d000, 0x00000a6e, 0x4130e000, 0x0201f800, - 0x001001e3, 0x0401f08b, 0x0201f800, 0x001070df, + 0x03000000, 0x04000013, 0x0c01f001, 0x0010babf, + 0x0010ba97, 0x0010baa5, 0x0010babf, 0x0010bac8, + 0x0010bad5, 0x0010ba84, 0x0010ba84, 0x0010ba84, + 0x0010badf, 0x0010ba84, 0x0010ba84, 0x0010ba84, + 0x0010ba84, 0x0010ba84, 0x0010ba8a, 0x0010ba8a, + 0x4200d000, 0x00000a7f, 0x4130e000, 0x0201f800, + 0x001001e3, 0x0401f08b, 0x0201f800, 0x00107175, 0x80c589c0, 0x0402005b, 0x59325819, 0x0201f800, - 0x00100581, 0x0201f800, 0x00105dd5, 0x8d3e7d1c, + 0x00100581, 0x0201f800, 0x00105e4d, 0x8d3e7d1c, 0x04000080, 0x497a600a, 0x0401f07e, 0x0201f800, - 0x001070df, 0x80c589c0, 0x040007f7, 0x49425a07, + 0x00107175, 0x80c589c0, 0x040007f7, 0x49425a07, 0x0201f800, 0x0002032c, 0x5930d21f, 0x82697480, - 0x00000003, 0x040207f0, 0x0201f800, 0x001071b4, + 0x00000003, 0x040207f0, 0x0201f800, 0x0010724a, 0x0401f7ed, 0x5930d008, 0x8c68d500, 0x04020045, - 0x0201f800, 0x001070df, 0x80c589c0, 0x040007e6, + 0x0201f800, 0x00107175, 0x80c589c0, 0x040007e6, 0x592cd205, 0x8268d500, 0x000000ff, 0x82697480, - 0x00000014, 0x04000003, 0x0201f800, 0x001071b4, + 0x00000014, 0x04000003, 0x0201f800, 0x0010724a, 0x4a025a05, 0x00000103, 0x49425a07, 0x497a580a, - 0x0201f800, 0x00107231, 0x0201f800, 0x0010850c, + 0x0201f800, 0x001072c7, 0x0201f800, 0x001085c4, 0x0201f800, 0x0002032c, 0x0401f7d3, 0x0201f800, - 0x0010bde3, 0x80c589c0, 0x04020030, 0x0201f800, - 0x0010738e, 0x0201f800, 0x001063ed, 0x0401f7ca, - 0x42000000, 0x0010cc38, 0x81317480, 0x0400002a, - 0x0201f800, 0x001070df, 0x80c589c0, 0x040007c2, - 0x4200d000, 0x000009b7, 0x412cd800, 0x4130e000, + 0x0010bde8, 0x80c589c0, 0x04020030, 0x0201f800, + 0x00107424, 0x0201f800, 0x0010646b, 0x0401f7ca, + 0x42000000, 0x0010cc48, 0x81317480, 0x0400002a, + 0x0201f800, 0x00107175, 0x80c589c0, 0x040007c2, + 0x4200d000, 0x000009c8, 0x412cd800, 0x4130e000, 0x0401f7b3, 0x5930d008, 0x8c68d500, 0x04020018, - 0x0201f800, 0x001070df, 0x80c589c0, 0x040007b6, - 0x0201f800, 0x001082cc, 0x0401f7b3, 0x0201f800, - 0x001070df, 0x80c589c0, 0x040007af, 0x49425a07, + 0x0201f800, 0x00107175, 0x80c589c0, 0x040007b6, + 0x0201f800, 0x0010837d, 0x0401f7b3, 0x0201f800, + 0x00107175, 0x80c589c0, 0x040007af, 0x49425a07, 0x497a5c0a, 0x0201f800, 0x0002032c, 0x0401f7aa, 0x49425a07, 0x0201f800, 0x0002032c, 0x0401f7a3, 0x0201f800, 0x00100b11, 0x0401f7ba, 0x0201f800, - 0x00100b11, 0x0401f7e7, 0x0201f800, 0x00101993, - 0x0401f7cf, 0x0201f800, 0x001070df, 0x80c589c0, + 0x00100b11, 0x0401f7e7, 0x0201f800, 0x00101992, + 0x0401f7cf, 0x0201f800, 0x00107175, 0x80c589c0, 0x04000016, 0x59a8e063, 0x412c0000, 0x80717480, - 0x04000005, 0x4200d000, 0x000009d0, 0x412cd800, + 0x04000005, 0x4200d000, 0x000009e1, 0x412cd800, 0x0401f787, 0x592d7000, 0x48bb5063, 0x592cd000, 0x8068d1c0, 0x04020002, 0x486b5064, 0x592cd205, 0x82697480, 0x00000055, 0x04000007, 0x49425a07, @@ -10446,12 +10501,12 @@ static const uint32_t isp_2500_risc_code[] = { 0x829d3c00, 0x00000002, 0x1c01f000, 0x809d3840, 0x48813800, 0x5930dc07, 0x406c0000, 0x826d7480, 0x00000011, 0x83f17500, 0x03000000, 0x04000014, - 0x0c01f001, 0x0010bb69, 0x0010bb40, 0x0010bb50, - 0x0010bb5c, 0x0010bb2f, 0x0010bb32, 0x0010bb7a, - 0x0010bb69, 0x0010bb69, 0x0010bb69, 0x0010bb69, - 0x0010bb27, 0x0010bb27, 0x0010bb69, 0x0010bb27, - 0x0010bb69, 0x0010bb69, 0x0010bb6d, 0x4200d000, - 0x00000b61, 0x4130e000, 0x0201f800, 0x001001e3, + 0x0c01f001, 0x0010bb79, 0x0010bb50, 0x0010bb60, + 0x0010bb6c, 0x0010bb3f, 0x0010bb42, 0x0010bb8a, + 0x0010bb79, 0x0010bb79, 0x0010bb79, 0x0010bb79, + 0x0010bb37, 0x0010bb37, 0x0010bb79, 0x0010bb37, + 0x0010bb79, 0x0010bb79, 0x0010bb7d, 0x4200d000, + 0x00000b72, 0x4130e000, 0x0201f800, 0x001001e3, 0x4200d800, 0x00000001, 0x0401f05c, 0x4178d800, 0x8d3e7d1a, 0x04020059, 0x833ce500, 0x00000001, 0x4178d800, 0x8d3e7d00, 0x04020054, 0x8d3e7d18, @@ -10459,10 +10514,10 @@ static const uint32_t isp_2500_risc_code[] = { 0x4070d800, 0x8c68d500, 0x0402004c, 0x0401f7ed, 0x8d3e7d1a, 0x04020019, 0x8d3e7d00, 0x04020017, 0x833d0500, 0x00001000, 0x8d3e7d18, 0x040207e5, - 0x8d3e7d06, 0x040007e3, 0x0201f800, 0x00107352, + 0x8d3e7d06, 0x040007e3, 0x0201f800, 0x001073e8, 0x4080d800, 0x80c589c0, 0x0402003c, 0x0401f7dd, 0x8d3e7d00, 0x040007db, 0x5930d21f, 0x82697480, - 0x00000003, 0x04020005, 0x0201f800, 0x00105075, + 0x00000003, 0x04020005, 0x0201f800, 0x00105101, 0x80c589c0, 0x040207d3, 0x4178d800, 0x0401f02f, 0x8d3e7d00, 0x04020028, 0x5930d00a, 0x833cdd00, 0x00001000, 0x8d3e7d18, 0x040207ca, 0x8d3e7d06, @@ -10474,760 +10529,758 @@ static const uint32_t isp_2500_risc_code[] = { 0x4068d800, 0x0401f011, 0x4178d800, 0x8d3e7d00, 0x0402000e, 0x833cd500, 0x00001000, 0x4200d800, 0x00000001, 0x8d3e7d18, 0x04020008, 0x4068d800, - 0x0401f006, 0x0201f800, 0x00105075, 0x40c4d800, + 0x0401f006, 0x0201f800, 0x00105101, 0x40c4d800, 0x80c589c0, 0x040207d5, 0x406d8800, 0x589d0000, 0x809d3800, 0x1c01f000, 0x829d3c80, 0x00000006, 0x48813800, 0x48853801, 0x48893802, 0x488d3803, 0x48913804, 0x48953805, 0x4933c857, 0x0201f800, - 0x0010512e, 0x40c52800, 0x41352000, 0x41311000, - 0x412d1800, 0x41790800, 0x598e6003, 0x0401f005, - 0x813669c0, 0x04000026, 0x41310800, 0x59326000, - 0x813261c0, 0x0400001c, 0x5932680a, 0x813669c0, - 0x040007f8, 0x5934d403, 0x41440000, 0x80697480, - 0x040207f4, 0x0401ff5e, 0x80c589c0, 0x040007f3, - 0x42010000, 0x00000001, 0x0201f800, 0x001070df, - 0x80c589c0, 0x0402001d, 0x808101c0, 0x040007eb, - 0x0201f800, 0x00105047, 0x59310000, 0x4084d000, - 0x0401fe0e, 0x0401fe8d, 0x40826000, 0x813261c0, - 0x040207e6, 0x408a6000, 0x408e5800, 0x40926800, - 0x80957040, 0x0400000a, 0x0401f016, 0x5930d407, - 0x82697480, 0x00000010, 0x040207d8, 0x83457480, - 0x0000ffff, 0x040207d5, 0x0401f7df, 0x0201f800, - 0x0010511f, 0x0401f00b, 0x0201f800, 0x00107591, - 0x80c589c0, 0x040007e1, 0x5930d403, 0x82697480, - 0x00000043, 0x040207dd, 0x41790000, 0x0401f7db, - 0x589d2805, 0x589d2004, 0x589d1803, 0x589d1002, - 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000006, - 0x1c01f000, 0x829d3c80, 0x00000006, 0x48813800, - 0x48853801, 0x48893802, 0x488d3803, 0x48913804, - 0x48953805, 0x412d1800, 0x41312000, 0x41352800, - 0x41790800, 0x0201f800, 0x0010512e, 0x40c51000, - 0x0201f800, 0x001039c0, 0x40c66800, 0x80c589c0, - 0x04000027, 0x598e6009, 0x0401f003, 0x41310800, - 0x59326000, 0x813261c0, 0x04000011, 0x5930d00a, - 0x41340000, 0x80697480, 0x040207f9, 0x0401ff08, - 0x80c589c0, 0x040007f6, 0x0201f800, 0x00105047, - 0x59310000, 0x4084d000, 0x0401fd1f, 0x0401fe3f, - 0x40826000, 0x813261c0, 0x040207f1, 0x8d3e7d06, - 0x04000004, 0x5934d200, 0x8c68d50e, 0x04020003, - 0x0201f800, 0x00103aed, 0x408e5800, 0x40926000, - 0x40966800, 0x80897040, 0x04000002, 0x0401f00b, - 0x0201f800, 0x0010511f, 0x0401f008, 0x4200d000, - 0x00000711, 0x40c4d800, 0x4144e000, 0x0201f800, - 0x001001e3, 0x0401f7d4, 0x589d2805, 0x589d2004, + 0x001051ba, 0x40c52800, 0x41352000, 0x41311000, + 0x412d1800, 0x41790800, 0x598e6003, 0x0401f00a, + 0x5932680a, 0x813669c0, 0x04000005, 0x5934d403, + 0x41440000, 0x80697480, 0x0400000b, 0x41310800, + 0x59326000, 0x813261c0, 0x040207f6, 0x408a6000, + 0x408e5800, 0x40926800, 0x80957040, 0x04000015, + 0x0401f021, 0x0401ff5a, 0x80c589c0, 0x040007f4, + 0x42010000, 0x00000001, 0x0201f800, 0x00107175, + 0x80c589c0, 0x0402000e, 0x808101c0, 0x040007ec, + 0x0201f800, 0x001050d3, 0x59310000, 0x4084d000, + 0x0401fe0a, 0x0401fe89, 0x40826000, 0x0401f7e6, + 0x0201f800, 0x001051ab, 0x0401f00b, 0x0201f800, + 0x00107627, 0x80c589c0, 0x040007f0, 0x5930d403, + 0x82697480, 0x00000043, 0x040207ec, 0x41790000, + 0x0401f7ea, 0x589d2805, 0x589d2004, 0x589d1803, + 0x589d1002, 0x589d0801, 0x589d0000, 0x829d3c00, + 0x00000006, 0x1c01f000, 0x829d3c80, 0x00000006, + 0x48813800, 0x48853801, 0x48893802, 0x488d3803, + 0x48913804, 0x48953805, 0x412d1800, 0x41312000, + 0x41352800, 0x41790800, 0x0201f800, 0x001051ba, + 0x40c51000, 0x0201f800, 0x001039cf, 0x40c66800, + 0x80c589c0, 0x04000027, 0x598e6009, 0x0401f003, + 0x41310800, 0x59326000, 0x813261c0, 0x04000011, + 0x5930d00a, 0x41340000, 0x80697480, 0x040207f9, + 0x0401ff13, 0x80c589c0, 0x040007f6, 0x0201f800, + 0x001050d3, 0x59310000, 0x4084d000, 0x0401fd2a, + 0x0401fe4a, 0x40826000, 0x813261c0, 0x040207f1, + 0x8d3e7d06, 0x04000004, 0x5934d200, 0x8c68d50e, + 0x04020003, 0x0201f800, 0x00103b00, 0x408e5800, + 0x40926000, 0x40966800, 0x80897040, 0x04000002, + 0x0401f00b, 0x0201f800, 0x001051ab, 0x0401f008, + 0x4200d000, 0x00000714, 0x40c4d800, 0x4144e000, + 0x0201f800, 0x001001e3, 0x0401f7d4, 0x589d2805, + 0x589d2004, 0x589d1803, 0x589d1002, 0x589d0801, + 0x589d0000, 0x829d3c00, 0x00000006, 0x1c01f000, + 0x829d3c80, 0x00000006, 0x48813800, 0x48853801, + 0x48893802, 0x488d3803, 0x48913804, 0x48953805, + 0x41311800, 0x41352000, 0x412d2800, 0x41790800, + 0x0201f800, 0x001051ba, 0x40c51000, 0x598e6007, + 0x0401f003, 0x41310800, 0x59326000, 0x813261c0, + 0x04000012, 0x5932680a, 0x5934d403, 0x41440000, + 0x80697480, 0x040207f8, 0x0401fecd, 0x80c589c0, + 0x040007f5, 0x59310000, 0x0201f800, 0x001050d3, + 0x4084d000, 0x0401fd32, 0x0401fe04, 0x40826000, + 0x813261c0, 0x040207f0, 0x0201f800, 0x00105d74, + 0x0201f800, 0x00105dd4, 0x408e6000, 0x40926800, + 0x40965800, 0x80897040, 0x04000002, 0x0401f003, + 0x0201f800, 0x001051ab, 0x589d2805, 0x589d2004, 0x589d1803, 0x589d1002, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000006, 0x1c01f000, 0x829d3c80, - 0x00000006, 0x48813800, 0x48853801, 0x48893802, - 0x488d3803, 0x48913804, 0x48953805, 0x41311800, - 0x41352000, 0x412d2800, 0x41790800, 0x0201f800, - 0x0010512e, 0x40c51000, 0x598e6007, 0x0401f003, - 0x41310800, 0x59326000, 0x813261c0, 0x04000012, - 0x5932680a, 0x5934d403, 0x41440000, 0x80697480, - 0x040207f8, 0x0401fec2, 0x80c589c0, 0x040007f5, - 0x59310000, 0x0201f800, 0x00105047, 0x4084d000, - 0x0401fd27, 0x0401fdf9, 0x40826000, 0x813261c0, - 0x040207f0, 0x0201f800, 0x00105cfc, 0x0201f800, - 0x00105d5c, 0x408e6000, 0x40926800, 0x40965800, - 0x80897040, 0x04000002, 0x0401f003, 0x0201f800, - 0x0010511f, 0x589d2805, 0x589d2004, 0x589d1803, - 0x589d1002, 0x589d0801, 0x589d0000, 0x829d3c00, - 0x00000006, 0x1c01f000, 0x829d3c80, 0x00000002, - 0x48813800, 0x48853801, 0x4947c857, 0x0201f800, - 0x0010512e, 0x40c50800, 0x413d0000, 0x853e7d00, - 0x0401ffbb, 0x0401ff70, 0x40827800, 0x80857040, - 0x04000002, 0x0401f003, 0x0201f800, 0x0010511f, - 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000002, + 0x00000002, 0x48813800, 0x48853801, 0x4947c857, + 0x0201f800, 0x001051ba, 0x40c50800, 0x413d0000, + 0x853e7d00, 0x0401ffbb, 0x0401ff70, 0x40827800, + 0x80857040, 0x04000002, 0x0401f003, 0x0201f800, + 0x001051ab, 0x589d0801, 0x589d0000, 0x829d3c00, + 0x00000002, 0x1c01f000, 0x829d3c80, 0x00000003, + 0x48813800, 0x48853801, 0x48893802, 0x41311000, + 0x41790800, 0x598e6009, 0x813261c0, 0x04000011, + 0x0401fe8b, 0x80c589c0, 0x04020006, 0x41310800, + 0x59326000, 0x813261c0, 0x040207fa, 0x0401f009, + 0x0201f800, 0x001050d3, 0x59310000, 0x4084d000, + 0x0401fc9d, 0x0401fdbd, 0x40826000, 0x0401f7ef, + 0x0201f800, 0x00103ae1, 0x408a6000, 0x589d1002, + 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000003, 0x1c01f000, 0x829d3c80, 0x00000003, 0x48813800, 0x48853801, 0x48893802, 0x41311000, 0x41790800, - 0x598e6009, 0x813261c0, 0x04000011, 0x0401fe80, + 0x598e6007, 0x813261c0, 0x04000011, 0x0401fe68, 0x80c589c0, 0x04020006, 0x41310800, 0x59326000, - 0x813261c0, 0x040207fa, 0x0401f009, 0x0201f800, - 0x00105047, 0x59310000, 0x4084d000, 0x0401fc92, - 0x0401fdb2, 0x40826000, 0x0401f7ef, 0x0201f800, - 0x00103ace, 0x408a6000, 0x589d1002, 0x589d0801, - 0x589d0000, 0x829d3c00, 0x00000003, 0x1c01f000, - 0x829d3c80, 0x00000003, 0x48813800, 0x48853801, - 0x48893802, 0x41311000, 0x41790800, 0x598e6007, - 0x813261c0, 0x04000011, 0x0401fe5d, 0x80c589c0, - 0x04020006, 0x41310800, 0x59326000, 0x813261c0, - 0x040207fa, 0x0401f009, 0x59310000, 0x0201f800, - 0x00105047, 0x4084d000, 0x0401fcbd, 0x0401fd8f, - 0x40826000, 0x0401f7ef, 0x0201f800, 0x00105d44, - 0x0201f800, 0x00105d5c, 0x408a6000, 0x589d1002, - 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000003, - 0x1c01f000, 0x809d3840, 0x48813800, 0x4943c857, - 0x0201f800, 0x0010512e, 0x40c50000, 0x0401ffd5, - 0x0401ffb1, 0x80817040, 0x04000002, 0x0401f003, - 0x0201f800, 0x0010511f, 0x589d0000, 0x809d3800, - 0x1c01f000, 0x829d3c80, 0x00000004, 0x48813800, - 0x48853801, 0x48893802, 0x488d3803, 0x0201f800, - 0x0010512e, 0x40c51800, 0x41311000, 0x41790800, - 0x598e6003, 0x813261c0, 0x04000008, 0x0401fe24, - 0x80c589c0, 0x04020009, 0x41310800, 0x59326000, - 0x813261c0, 0x040207fa, 0x408a6000, 0x808d7040, - 0x0400000a, 0x0401f00b, 0x0201f800, 0x00105047, - 0x59310000, 0x4084d000, 0x0401fcd4, 0x0401fd53, - 0x40826000, 0x0401f7ec, 0x0201f800, 0x0010511f, - 0x589d1803, 0x589d1002, 0x589d0801, 0x589d0000, - 0x829d3c00, 0x00000004, 0x1c01f000, 0x809d3840, - 0x48a13800, 0x829d3c80, 0x00000006, 0x409d4000, - 0x829d3c80, 0x00000007, 0x48813800, 0x48853801, - 0x48893802, 0x488d3803, 0x48913804, 0x48953805, - 0x48993806, 0x41791000, 0x0201f800, 0x0010512e, - 0x48c54005, 0x41311800, 0x41352800, 0x41193000, - 0x412d2000, 0x49914003, 0x49d14000, 0x49a54001, - 0x49154002, 0x48d94004, 0x58d6602f, 0x813261c0, - 0x0400000e, 0x41310800, 0x59310000, 0x5932680a, - 0x5934d403, 0x41440000, 0x80697480, 0x04000028, - 0x808101c0, 0x04000003, 0x41310800, 0x40826000, - 0x808101c0, 0x040207f5, 0x417a3000, 0x0201f800, - 0x0010560b, 0x59926005, 0x813261c0, 0x04000006, + 0x813261c0, 0x040207fa, 0x0401f009, 0x59310000, + 0x0201f800, 0x001050d3, 0x4084d000, 0x0401fcc8, + 0x0401fd9a, 0x40826000, 0x0401f7ef, 0x0201f800, + 0x00105dbc, 0x0201f800, 0x00105dd4, 0x408a6000, + 0x589d1002, 0x589d0801, 0x589d0000, 0x829d3c00, + 0x00000003, 0x1c01f000, 0x809d3840, 0x48813800, + 0x4943c857, 0x0201f800, 0x001051ba, 0x40c50000, + 0x0401ffd5, 0x0401ffb1, 0x80817040, 0x04000002, + 0x0401f003, 0x0201f800, 0x001051ab, 0x589d0000, + 0x809d3800, 0x1c01f000, 0x829d3c80, 0x00000004, + 0x48813800, 0x48853801, 0x48893802, 0x488d3803, + 0x0201f800, 0x001051ba, 0x40c51800, 0x41311000, + 0x41790800, 0x598e6003, 0x813261c0, 0x04000008, + 0x0401fe2f, 0x80c589c0, 0x04020009, 0x41310800, + 0x59326000, 0x813261c0, 0x040207fa, 0x408a6000, + 0x808d7040, 0x0400000a, 0x0401f00b, 0x0201f800, + 0x001050d3, 0x59310000, 0x4084d000, 0x0401fcdf, + 0x0401fd5e, 0x40826000, 0x0401f7ec, 0x0201f800, + 0x001051ab, 0x589d1803, 0x589d1002, 0x589d0801, + 0x589d0000, 0x829d3c00, 0x00000004, 0x1c01f000, + 0x809d3840, 0x48a13800, 0x829d3c80, 0x00000006, + 0x409d4000, 0x829d3c80, 0x00000007, 0x48813800, + 0x48853801, 0x48893802, 0x488d3803, 0x48913804, + 0x48953805, 0x48993806, 0x41791000, 0x0201f800, + 0x001051ba, 0x48c54005, 0x41311800, 0x41352800, + 0x41193000, 0x412d2000, 0x49914003, 0x49d14000, + 0x49a54001, 0x49154002, 0x48d94004, 0x58d6602f, + 0x813261c0, 0x0400000e, 0x41310800, 0x59310000, 0x5932680a, 0x5934d403, 0x41440000, 0x80697480, - 0x04000024, 0x811a3000, 0x83197480, 0x00000004, - 0x040007f3, 0x040017f2, 0x408e6000, 0x40966800, - 0x409a3000, 0x40925800, 0x58a32003, 0x58a3a000, - 0x58a34801, 0x58a22802, 0x58a1b004, 0x58a0d005, - 0x80697040, 0x04000010, 0x0401f01d, 0x41311000, - 0x40826000, 0x808101c0, 0x040007e0, 0x59310001, - 0x0401fdbb, 0x80c589c0, 0x040007f9, 0x4084d000, - 0x4088d800, 0x0201f800, 0x0010b862, 0x0401fcf3, - 0x0401f7f4, 0x0201f800, 0x0010511f, 0x0401f00c, - 0x0401fdaf, 0x80c589c0, 0x040007db, 0x0201f800, - 0x001052fc, 0x0201f800, 0x00105102, 0x0201f800, - 0x00105108, 0x0401fce5, 0x0401f7d3, 0x589d3006, - 0x589d2805, 0x589d2004, 0x589d1803, 0x589d1002, - 0x589d0801, 0x589d0000, 0x829d3c00, 0x0000000d, - 0x589d4000, 0x809d3800, 0x1c01f000, 0x809d3840, - 0x48a13800, 0x829d3c80, 0x00000008, 0x409d4000, - 0x829d3c80, 0x00000007, 0x48813800, 0x48853801, - 0x48893802, 0x488d3803, 0x48913804, 0x48953805, - 0x48993806, 0x41791800, 0x0201f800, 0x0010512e, - 0x40c52800, 0x41313000, 0x49354006, 0x492d4005, - 0x49194007, 0x49914003, 0x49d14000, 0x49a54001, - 0x49154002, 0x48d94004, 0x58d6602f, 0x813261c0, - 0x04000023, 0x41312000, 0x408d0800, 0x59311000, - 0x5932680a, 0x0401f009, 0x41311800, 0x808509c0, - 0x04000010, 0x808101c0, 0x04000002, 0x40826000, - 0x808101c0, 0x0400000d, 0x59310001, 0x0401fd6c, - 0x80c589c0, 0x040007f5, 0x4090d000, 0x408cd800, - 0x0201f800, 0x0010b862, 0x0401fca4, 0x0401f7f2, - 0x41310800, 0x0401f7f0, 0x808911c0, 0x04000006, - 0x408a6000, 0x808509c0, 0x04000003, 0x40852000, - 0x40810800, 0x808911c0, 0x040207e1, 0x417a3000, - 0x0201f800, 0x0010560b, 0x59926005, 0x813261c0, - 0x04000004, 0x0401fd52, 0x80c589c0, 0x04020012, - 0x811a3000, 0x83197480, 0x00000004, 0x040007f5, - 0x040017f4, 0x409a6000, 0x58a26806, 0x58a25805, - 0x58a23007, 0x58a32003, 0x58a3a000, 0x58a34801, - 0x58a22802, 0x58a1b004, 0x80957040, 0x0400000a, - 0x0401f00b, 0x0201f800, 0x001052fc, 0x0201f800, - 0x00105102, 0x0201f800, 0x00105108, 0x0401fc77, - 0x0401f7e8, 0x0201f800, 0x0010511f, 0x589d3006, - 0x589d2805, 0x589d2004, 0x589d1803, 0x589d1002, - 0x589d0801, 0x589d0000, 0x829d3c00, 0x0000000f, - 0x589d4000, 0x809d3800, 0x1c01f000, 0x4178e000, - 0x497bc856, 0x5930dc03, 0x826cd480, 0x00000002, - 0x82697480, 0x00000002, 0x04000007, 0x04001006, - 0x599cd019, 0x8c68d50e, 0x04000005, 0x806cd9c0, - 0x04020003, 0x4200e000, 0x00000001, 0x40718800, - 0x1c01f000, 0x829d3c80, 0x00000004, 0x48813800, - 0x48853801, 0x48893802, 0x488d3803, 0x412d0800, - 0x41351000, 0x41391800, 0x0201f800, 0x0010bb0b, - 0x80c589c0, 0x040000ac, 0x5932680a, 0x5930dc07, - 0x406c0000, 0x826d7480, 0x00000011, 0x83f17500, - 0x03000000, 0x04000026, 0x0c01f001, 0x0010bead, - 0x0010be58, 0x0010be68, 0x0010be35, 0x0010be58, - 0x0010be68, 0x0010be78, 0x0010be89, 0x0010be2f, - 0x0010be2f, 0x0010be20, 0x0010be2f, 0x0010be2f, - 0x0010be2f, 0x0010be2f, 0x0010bead, 0x0010be20, - 0x0010be1d, 0x59325819, 0x0201f800, 0x00100581, - 0x5930d203, 0x82697480, 0x00000004, 0x04000071, - 0x59325809, 0x0201f800, 0x001070df, 0x80c589c0, - 0x04020068, 0x0201f800, 0x00105dd5, 0x8d3e7d1c, - 0x04000081, 0x497a600a, 0x0401f07f, 0x4200d000, - 0x0000030f, 0x4130e000, 0x0201f800, 0x001001e3, - 0x0401f079, 0x813669c0, 0x04000061, 0x0201f800, - 0x00107924, 0x5930d203, 0x82697480, 0x00000004, - 0x0400006e, 0x59325809, 0x0201f800, 0x001070df, - 0x80c589c0, 0x040007e8, 0x592cd205, 0x8268d500, + 0x04000028, 0x808101c0, 0x04000003, 0x41310800, + 0x40826000, 0x808101c0, 0x040207f5, 0x417a3000, + 0x0201f800, 0x00105697, 0x59926005, 0x813261c0, + 0x04000006, 0x5932680a, 0x5934d403, 0x41440000, + 0x80697480, 0x04000024, 0x811a3000, 0x83197480, + 0x00000004, 0x040007f3, 0x040017f2, 0x408e6000, + 0x40966800, 0x409a3000, 0x40925800, 0x58a32003, + 0x58a3a000, 0x58a34801, 0x58a22802, 0x58a1b004, + 0x58a0d005, 0x80697040, 0x04000010, 0x0401f01d, + 0x41311000, 0x40826000, 0x808101c0, 0x040007e0, + 0x59310001, 0x0401fdc6, 0x80c589c0, 0x040007f9, + 0x4084d000, 0x4088d800, 0x0201f800, 0x0010b872, + 0x0401fcfe, 0x0401f7f4, 0x0201f800, 0x001051ab, + 0x0401f00c, 0x0401fdba, 0x80c589c0, 0x040007db, + 0x0201f800, 0x00105388, 0x0201f800, 0x0010518e, + 0x0201f800, 0x00105194, 0x0401fcf0, 0x0401f7d3, + 0x589d3006, 0x589d2805, 0x589d2004, 0x589d1803, + 0x589d1002, 0x589d0801, 0x589d0000, 0x829d3c00, + 0x0000000d, 0x589d4000, 0x809d3800, 0x1c01f000, + 0x809d3840, 0x48a13800, 0x829d3c80, 0x00000008, + 0x409d4000, 0x829d3c80, 0x00000007, 0x48813800, + 0x48853801, 0x48893802, 0x488d3803, 0x48913804, + 0x48953805, 0x48993806, 0x41791800, 0x0201f800, + 0x001051ba, 0x40c52800, 0x41313000, 0x49354006, + 0x492d4005, 0x49194007, 0x49914003, 0x49d14000, + 0x49a54001, 0x49154002, 0x48d94004, 0x58d6602f, + 0x813261c0, 0x04000023, 0x41312000, 0x408d0800, + 0x59311000, 0x5932680a, 0x0401f009, 0x41311800, + 0x808509c0, 0x04000010, 0x808101c0, 0x04000002, + 0x40826000, 0x808101c0, 0x0400000d, 0x59310001, + 0x0401fd77, 0x80c589c0, 0x040007f5, 0x4090d000, + 0x408cd800, 0x0201f800, 0x0010b872, 0x0401fcaf, + 0x0401f7f2, 0x41310800, 0x0401f7f0, 0x808911c0, + 0x04000006, 0x408a6000, 0x808509c0, 0x04000003, + 0x40852000, 0x40810800, 0x808911c0, 0x040207e1, + 0x417a3000, 0x0201f800, 0x00105697, 0x59926005, + 0x813261c0, 0x04000004, 0x0401fd5d, 0x80c589c0, + 0x04020012, 0x811a3000, 0x83197480, 0x00000004, + 0x040007f5, 0x040017f4, 0x409a6000, 0x58a26806, + 0x58a25805, 0x58a23007, 0x58a32003, 0x58a3a000, + 0x58a34801, 0x58a22802, 0x58a1b004, 0x80957040, + 0x0400000a, 0x0401f00b, 0x0201f800, 0x00105388, + 0x0201f800, 0x0010518e, 0x0201f800, 0x00105194, + 0x0401fc82, 0x0401f7e8, 0x0201f800, 0x001051ab, + 0x589d3006, 0x589d2805, 0x589d2004, 0x589d1803, + 0x589d1002, 0x589d0801, 0x589d0000, 0x829d3c00, + 0x0000000f, 0x589d4000, 0x809d3800, 0x1c01f000, + 0x4178e000, 0x497bc856, 0x5930dc03, 0x826cd480, + 0x00000002, 0x82697480, 0x00000002, 0x04000007, + 0x04001006, 0x599cd019, 0x8c68d50e, 0x04000005, + 0x806cd9c0, 0x04020003, 0x4200e000, 0x00000001, + 0x40718800, 0x1c01f000, 0x829d3c80, 0x00000004, + 0x48813800, 0x48853801, 0x48893802, 0x488d3803, + 0x412d0800, 0x41351000, 0x41391800, 0x0201f800, + 0x0010bb1b, 0x80c589c0, 0x040000ac, 0x5932680a, + 0x5930dc07, 0x406c0000, 0x826d7480, 0x00000011, + 0x83f17500, 0x03000000, 0x04000026, 0x0c01f001, + 0x0010beb2, 0x0010be5d, 0x0010be6d, 0x0010be3a, + 0x0010be5d, 0x0010be6d, 0x0010be7d, 0x0010be8e, + 0x0010be34, 0x0010be34, 0x0010be25, 0x0010be34, + 0x0010be34, 0x0010be34, 0x0010be34, 0x0010beb2, + 0x0010be25, 0x0010be22, 0x59325819, 0x0201f800, + 0x00100581, 0x5930d203, 0x82697480, 0x00000004, + 0x04000071, 0x59325809, 0x0201f800, 0x00107175, + 0x80c589c0, 0x04020068, 0x0201f800, 0x00105e4d, + 0x8d3e7d1c, 0x04000081, 0x497a600a, 0x0401f07f, + 0x4200d000, 0x0000030f, 0x4130e000, 0x0201f800, + 0x001001e3, 0x0401f079, 0x813669c0, 0x04000061, + 0x0201f800, 0x001079ba, 0x5930d203, 0x82697480, + 0x00000004, 0x0400006e, 0x59325809, 0x0201f800, + 0x00107175, 0x80c589c0, 0x040007e8, 0x592cd205, + 0x8268d500, 0x000000ff, 0x82697480, 0x00000014, + 0x04000003, 0x0201f800, 0x0010724a, 0x4a025a05, + 0x00000103, 0x5930d402, 0x486a5c07, 0x592cd409, + 0x8c68d512, 0x04020051, 0x49425a07, 0x497a580a, + 0x0201f800, 0x00107631, 0x0201f800, 0x0002032c, + 0x0401f7d2, 0x5930d403, 0x82697480, 0x00000043, + 0x04000052, 0x0201f800, 0x0010888d, 0x0401ff85, + 0x80c589c0, 0x0402003e, 0x0201f800, 0x0010726c, + 0x80c589c0, 0x040007c5, 0x0201f800, 0x0010646b, + 0x0401f7c2, 0x59325809, 0x0201f800, 0x00107175, + 0x80c589c0, 0x040007bd, 0x49425a07, 0x497a5c0a, + 0x0201f800, 0x0002032c, 0x5930d21f, 0x82697480, + 0x00000003, 0x040207b5, 0x0201f800, 0x0010724a, + 0x0401f7b2, 0x5930d203, 0x82697480, 0x00000004, + 0x0400002c, 0x59325809, 0x0201f800, 0x00107175, + 0x80c589c0, 0x040007a9, 0x49425a07, 0x813669c0, + 0x040007d0, 0x0201f800, 0x001085c4, 0x0201f800, + 0x00107631, 0x0401f7cd, 0x5930d203, 0x82697480, + 0x00000011, 0x04020021, 0x5930d41f, 0x486a6203, + 0x0401f01e, 0x49425a07, 0x0201f800, 0x0002032c, + 0x0401f796, 0x0201f800, 0x00100b11, 0x0401f78e, + 0x4200d000, 0x00000182, 0x4134d800, 0x4130e000, + 0x0201f800, 0x001001e3, 0x0401f79a, 0x0201f800, + 0x00101992, 0x0401f7c1, 0x412d0000, 0x592e580a, + 0x0201f800, 0x00100581, 0x40825800, 0x0401f7ab, + 0x0201f800, 0x00100b11, 0x0401f7d3, 0x0201f800, + 0x00100b11, 0x0401f791, 0x40865800, 0x408a6800, + 0x408e7000, 0x589d1803, 0x589d1002, 0x589d0801, + 0x589d0000, 0x829d3c00, 0x00000004, 0x1c01f000, + 0x829d3c80, 0x00000002, 0x48813800, 0x48853801, + 0x41310800, 0x4933c857, 0x4943c857, 0x493fc857, + 0x42010000, 0x0010ccb4, 0x59a8d00d, 0x41640000, + 0x80697480, 0x04000010, 0x41580000, 0x80817480, + 0x0402100d, 0x40826000, 0x8d3e7d12, 0x04000004, + 0x40800000, 0x80857480, 0x04000002, 0x0401ff27, + 0x82810400, 0x00000024, 0x41580000, 0x80817480, + 0x040017f5, 0x41510000, 0x41540000, 0x80817480, + 0x04021019, 0x8d3e7d18, 0x04000017, 0x59a8d05e, + 0x59a8005f, 0x80697480, 0x04000013, 0x40826000, + 0x5880d00a, 0x8068d1c0, 0x04020005, 0x5880d203, + 0x82697480, 0x00000008, 0x04000008, 0x0401ff0f, + 0x82810400, 0x00000024, 0x41540000, 0x80817480, + 0x040017ed, 0x0401f004, 0x0201f800, 0x001087ea, + 0x0401f7f7, 0x40866000, 0x589d0801, 0x589d0000, + 0x829d3c00, 0x00000002, 0x1c01f000, 0x809d3840, + 0x48813800, 0x497a621f, 0x812e59c0, 0x04000041, + 0x592cd205, 0x486bc857, 0x592cd205, 0x8268d500, 0x000000ff, 0x82697480, 0x00000014, 0x04000003, - 0x0201f800, 0x001071b4, 0x4a025a05, 0x00000103, - 0x5930d402, 0x486a5c07, 0x592cd409, 0x8c68d512, - 0x04020051, 0x49425a07, 0x497a580a, 0x0201f800, - 0x0010759b, 0x0201f800, 0x0002032c, 0x0401f7d2, - 0x5930d403, 0x82697480, 0x00000043, 0x04000052, - 0x0201f800, 0x001087c3, 0x0401ff85, 0x80c589c0, - 0x0402003e, 0x0201f800, 0x001071d6, 0x80c589c0, - 0x040007c5, 0x0201f800, 0x001063ed, 0x0401f7c2, - 0x59325809, 0x0201f800, 0x001070df, 0x80c589c0, - 0x040007bd, 0x49425a07, 0x497a5c0a, 0x0201f800, - 0x0002032c, 0x5930d21f, 0x82697480, 0x00000003, - 0x040207b5, 0x0201f800, 0x001071b4, 0x0401f7b2, - 0x5930d203, 0x82697480, 0x00000004, 0x0400002c, - 0x59325809, 0x0201f800, 0x001070df, 0x80c589c0, - 0x040007a9, 0x49425a07, 0x813669c0, 0x040007d0, - 0x0201f800, 0x0010850c, 0x0201f800, 0x0010759b, - 0x0401f7cd, 0x5930d203, 0x82697480, 0x00000011, - 0x04020021, 0x5930d41f, 0x486a6203, 0x0401f01e, - 0x49425a07, 0x0201f800, 0x0002032c, 0x0401f796, - 0x0201f800, 0x00100b11, 0x0401f78e, 0x4200d000, - 0x00000182, 0x4134d800, 0x4130e000, 0x0201f800, - 0x001001e3, 0x0401f79a, 0x0201f800, 0x00101993, - 0x0401f7c1, 0x412d0000, 0x592e580a, 0x0201f800, - 0x00100581, 0x40825800, 0x0401f7ab, 0x0201f800, - 0x00100b11, 0x0401f7d3, 0x0201f800, 0x00100b11, - 0x0401f791, 0x40865800, 0x408a6800, 0x408e7000, - 0x589d1803, 0x589d1002, 0x589d0801, 0x589d0000, - 0x829d3c00, 0x00000004, 0x1c01f000, 0x829d3c80, - 0x00000002, 0x48813800, 0x48853801, 0x41310800, - 0x4933c857, 0x4943c857, 0x493fc857, 0x42010000, - 0x0010cca4, 0x59a8d00d, 0x41640000, 0x80697480, - 0x04000010, 0x41580000, 0x80817480, 0x0402100d, - 0x40826000, 0x8d3e7d12, 0x04000004, 0x40800000, - 0x80857480, 0x04000002, 0x0401ff27, 0x82810400, - 0x00000024, 0x41580000, 0x80817480, 0x040017f5, - 0x41510000, 0x41540000, 0x80817480, 0x04021019, - 0x8d3e7d18, 0x04000017, 0x59a8d05e, 0x59a8005f, - 0x80697480, 0x04000013, 0x40826000, 0x5880d00a, - 0x8068d1c0, 0x04020005, 0x5880d203, 0x82697480, - 0x00000008, 0x04000008, 0x0401ff0f, 0x82810400, - 0x00000024, 0x41540000, 0x80817480, 0x040017ed, - 0x0401f004, 0x0201f800, 0x00108720, 0x0401f7f7, - 0x40866000, 0x589d0801, 0x589d0000, 0x829d3c00, - 0x00000002, 0x1c01f000, 0x809d3840, 0x48813800, - 0x497a621f, 0x812e59c0, 0x04000041, 0x592cd205, - 0x486bc857, 0x592cd205, 0x8268d500, 0x000000ff, - 0x82697480, 0x00000014, 0x04000003, 0x4a02621f, - 0x00000003, 0x592cd409, 0x8c68d510, 0x04020021, - 0x592cd209, 0x0201f800, 0x00103f3f, 0x0201f800, - 0x0010759b, 0x0201f800, 0x001089a9, 0x80c589c0, - 0x04000023, 0x4a026403, 0x00000085, 0x4a026203, - 0x00000009, 0x4a026407, 0x00000002, 0x59310004, - 0x82810500, 0x00000100, 0x0201f800, 0x0010784a, - 0x82810540, 0x80004040, 0x48826004, 0x0201f800, - 0x00107856, 0x0201f800, 0x0010511f, 0x4200d000, - 0x80004040, 0x0201f800, 0x00105035, 0x0401f01f, - 0x592cd209, 0x0201f800, 0x00103f3f, 0x4a025c09, - 0x00000100, 0x0201f800, 0x0010759b, 0x0201f800, - 0x001089a9, 0x80c589c0, 0x040207df, 0x0201f800, - 0x0002032c, 0x5930d21f, 0x82697480, 0x00000003, - 0x0400000a, 0x497a6009, 0x0401f7d7, 0x4200d000, - 0x00000527, 0x4130d800, 0x412ce000, 0x0201f800, - 0x001001e3, 0x0401f005, 0x0201f800, 0x001071b4, - 0x497a6009, 0x0401f7cc, 0x589d0000, 0x809d3800, - 0x1c01f000, 0x0201f800, 0x0010511f, 0x812e59c0, - 0x0400001b, 0x592cd409, 0x8c68d510, 0x04020012, - 0x592cd209, 0x0201f800, 0x00103f3f, 0x0201f800, - 0x0010759b, 0x0201f800, 0x0002032c, 0x5930d203, - 0x82697480, 0x0000000d, 0x0400000d, 0x0201f800, - 0x0010511f, 0x5930d00a, 0x0201f800, 0x00103be5, - 0x0401f007, 0x592cd209, 0x0201f800, 0x00103f3f, - 0x4a025c09, 0x00000100, 0x0401f7ed, 0x0201f800, - 0x00105dd5, 0x1c01f000, 0x829d3c80, 0x00000002, - 0x48813800, 0x48853801, 0x41790000, 0x0201f800, - 0x00106eb0, 0x40c50800, 0x48c7c857, 0x40840000, - 0x82857480, 0x0000000d, 0x83f17500, 0x03000000, - 0x0400002b, 0x0c01f001, 0x0010bf9b, 0x0010bfd3, - 0x0010bfb1, 0x0010bf88, 0x0010bfb3, 0x0010bfa3, - 0x0010bf9b, 0x0010bf9b, 0x0010bf9b, 0x0010bfa3, - 0x0010bfa3, 0x0010bfa3, 0x0010bfa3, 0x0010bfb1, - 0x0201f800, 0x00106ea0, 0x80c589c0, 0x04000005, - 0x0201f800, 0x00105396, 0x80c589c0, 0x04000055, - 0x0201f800, 0x0010b8bb, 0x80c589c0, 0x04000017, - 0x5930d403, 0x486bc857, 0x5930d403, 0x82697480, - 0x00000040, 0x04020018, 0x0401ffaf, 0x42010000, - 0x00000001, 0x0401f069, 0x40840000, 0x82857480, - 0x0000000d, 0x040007d8, 0x040017d7, 0x4200d000, - 0x000004b7, 0x4130d800, 0x4084e000, 0x0201f800, - 0x001001e3, 0x0401f05d, 0x497bc856, 0x0201f800, - 0x0010505d, 0x80c589c0, 0x04020036, 0x59317004, - 0x48bbc857, 0x0401ff45, 0x0401f7e9, 0x812e59c0, - 0x0400004c, 0x0201f800, 0x00107447, 0x80c589c0, - 0x04000030, 0x0201f800, 0x0010511f, 0x592cd209, - 0x8468d50c, 0x486a5a09, 0x592cdc07, 0x806cd0c6, - 0x406c0000, 0x8068d400, 0x8068d400, 0x486a6006, - 0x4200d000, 0x10000000, 0x4130d800, 0x0201f800, - 0x00100869, 0x80c589c0, 0x0400002b, 0x592cd209, - 0x8c68d51c, 0x04020024, 0x8468d55c, 0x486a5a09, - 0x4a026006, 0x00000002, 0x0401f7c9, 0x598d700b, - 0x48bbc857, 0x40b8d000, 0x41300000, 0x80697480, - 0x04000014, 0x0201f800, 0x0010ba2e, 0x80c589c0, - 0x040207be, 0x497bc856, 0x0201f800, 0x0010505d, - 0x4200d000, 0x000003f5, 0x80c589c0, 0x040007c2, - 0x5930d203, 0x486bc857, 0x59310a03, 0x0401f01f, - 0x0201f800, 0x00100b11, 0x0401ff0c, 0x0401f7b0, - 0x0201f800, 0x001053cb, 0x80c589c0, 0x040007f5, - 0x0401f7e9, 0x41310000, 0x0201f800, 0x0010102b, - 0x40826000, 0x5930d203, 0x82697480, 0x00000004, - 0x040207a3, 0x41390000, 0x42027000, 0x00000048, - 0x0201f800, 0x00105e2e, 0x40827000, 0x0401f79c, - 0x4200d000, 0x000004a7, 0x4130d800, 0x412ce000, - 0x0201f800, 0x001001e3, 0x808101c0, 0x04000797, + 0x4a02621f, 0x00000003, 0x592cd409, 0x8c68d510, + 0x04020021, 0x592cd209, 0x0201f800, 0x00103f75, + 0x0201f800, 0x00107631, 0x0201f800, 0x00108a73, + 0x80c589c0, 0x04000023, 0x4a026403, 0x00000085, + 0x4a026203, 0x00000009, 0x4a026407, 0x00000002, + 0x59310004, 0x82810500, 0x00000100, 0x0201f800, + 0x001078e0, 0x82810540, 0x80004040, 0x48826004, + 0x0201f800, 0x001078ec, 0x0201f800, 0x001051ab, + 0x4200d000, 0x80004040, 0x0201f800, 0x001050c1, + 0x0401f01f, 0x592cd209, 0x0201f800, 0x00103f75, + 0x4a025c09, 0x00000100, 0x0201f800, 0x00107631, + 0x0201f800, 0x00108a73, 0x80c589c0, 0x040207df, + 0x0201f800, 0x0002032c, 0x5930d21f, 0x82697480, + 0x00000003, 0x0400000a, 0x497a6009, 0x0401f7d7, + 0x4200d000, 0x00000527, 0x4130d800, 0x412ce000, + 0x0201f800, 0x001001e3, 0x0401f005, 0x0201f800, + 0x0010724a, 0x497a6009, 0x0401f7cc, 0x589d0000, + 0x809d3800, 0x1c01f000, 0x0201f800, 0x001051ab, + 0x812e59c0, 0x0400001b, 0x592cd409, 0x8c68d510, + 0x04020012, 0x592cd209, 0x0201f800, 0x00103f75, + 0x0201f800, 0x00107631, 0x0201f800, 0x0002032c, + 0x5930d203, 0x82697480, 0x0000000d, 0x0400000d, + 0x0201f800, 0x001051ab, 0x5930d00a, 0x0201f800, + 0x00103bf8, 0x0401f007, 0x592cd209, 0x0201f800, + 0x00103f75, 0x4a025c09, 0x00000100, 0x0401f7ed, + 0x0201f800, 0x00105e4d, 0x1c01f000, 0x829d3c80, + 0x00000002, 0x48813800, 0x48853801, 0x41790000, + 0x0201f800, 0x00106f43, 0x40c50800, 0x48c7c857, + 0x40840000, 0x82857480, 0x0000000d, 0x83f17500, + 0x03000000, 0x0400002b, 0x0c01f001, 0x0010bfa0, + 0x0010bfd8, 0x0010bfb6, 0x0010bf8d, 0x0010bfb8, + 0x0010bfa8, 0x0010bfa0, 0x0010bfa0, 0x0010bfa0, + 0x0010bfa8, 0x0010bfa8, 0x0010bfa8, 0x0010bfa8, + 0x0010bfb6, 0x0201f800, 0x00106f33, 0x80c589c0, + 0x04000005, 0x0201f800, 0x00105422, 0x80c589c0, + 0x04000055, 0x0201f800, 0x0010b8cb, 0x80c589c0, + 0x04000017, 0x5930d403, 0x486bc857, 0x5930d403, + 0x82697480, 0x00000040, 0x04020018, 0x0401ffaf, + 0x42010000, 0x00000001, 0x0401f069, 0x40840000, + 0x82857480, 0x0000000d, 0x040007d8, 0x040017d7, + 0x4200d000, 0x000004b7, 0x4130d800, 0x4084e000, + 0x0201f800, 0x001001e3, 0x0401f05d, 0x497bc856, + 0x0201f800, 0x001050e9, 0x80c589c0, 0x04020036, + 0x59317004, 0x48bbc857, 0x0401ff45, 0x0401f7e9, + 0x812e59c0, 0x0400004c, 0x0201f800, 0x001074dd, + 0x80c589c0, 0x04000030, 0x0201f800, 0x001051ab, + 0x592cd209, 0x8468d50c, 0x486a5a09, 0x592cdc07, + 0x806cd0c6, 0x406c0000, 0x8068d400, 0x8068d400, + 0x486a6006, 0x4200d000, 0x10000000, 0x4130d800, + 0x0201f800, 0x00100867, 0x80c589c0, 0x0400002b, + 0x592cd209, 0x8c68d51c, 0x04020024, 0x8468d55c, + 0x486a5a09, 0x4a026006, 0x00000002, 0x0401f7c9, + 0x598d700b, 0x48bbc857, 0x40b8d000, 0x41300000, + 0x80697480, 0x04000014, 0x0201f800, 0x0010ba3e, + 0x80c589c0, 0x040207be, 0x497bc856, 0x0201f800, + 0x001050e9, 0x4200d000, 0x000003f5, 0x80c589c0, + 0x040007c2, 0x5930d203, 0x486bc857, 0x59310a03, + 0x0401f01f, 0x0201f800, 0x00100b11, 0x0401ff0c, + 0x0401f7b0, 0x0201f800, 0x00105457, 0x80c589c0, + 0x040007f5, 0x0401f7e9, 0x41310000, 0x0201f800, + 0x00101029, 0x40826000, 0x5930d203, 0x82697480, + 0x00000004, 0x040207a3, 0x41390000, 0x42027000, + 0x00000048, 0x0201f800, 0x00105eaa, 0x40827000, + 0x0401f79c, 0x4200d000, 0x000004a7, 0x4130d800, + 0x412ce000, 0x0201f800, 0x001001e3, 0x808101c0, + 0x04000797, 0x589d0801, 0x589d0000, 0x829d3c00, + 0x00000002, 0x1c01f000, 0x829d3c80, 0x00000002, + 0x48813800, 0x48853801, 0x412d0800, 0x41410000, + 0x4200d000, 0x00109887, 0x0201f800, 0x0010895e, + 0x417a5800, 0x0201f800, 0x00107175, 0x80c589c0, + 0x04000009, 0x0201f800, 0x001079ba, 0x59325809, + 0x592cd209, 0x8468d54c, 0x486a5a09, 0x42028000, + 0x00000006, 0x0201f800, 0x001051ba, 0x0401ff44, + 0x0201f800, 0x001051ab, 0x40828000, 0x40865800, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000002, 0x1c01f000, 0x829d3c80, 0x00000002, 0x48813800, - 0x48853801, 0x412d0800, 0x41410000, 0x4200d000, - 0x00109807, 0x0201f800, 0x00108894, 0x417a5800, - 0x0201f800, 0x001070df, 0x80c589c0, 0x04000009, - 0x0201f800, 0x00107924, 0x59325809, 0x592cd209, - 0x8468d54c, 0x486a5a09, 0x42028000, 0x00000006, - 0x0201f800, 0x0010512e, 0x0401ff44, 0x0201f800, - 0x0010511f, 0x40828000, 0x40865800, 0x589d0801, - 0x589d0000, 0x829d3c00, 0x00000002, 0x1c01f000, - 0x829d3c80, 0x00000002, 0x48813800, 0x48853801, - 0x412d0800, 0x0201f800, 0x0010bb0b, 0x80c589c0, - 0x040000a3, 0x5930dc07, 0x406c0000, 0x826d7480, - 0x00000011, 0x83f17500, 0x03000000, 0x04000025, - 0x0c01f001, 0x0010c0db, 0x0010c091, 0x0010c0a0, - 0x0010c06e, 0x0010c091, 0x0010c0a0, 0x0010c0b7, - 0x0010c0b0, 0x0010c064, 0x0010c064, 0x0010c053, - 0x0010c064, 0x0010c064, 0x0010c064, 0x0010c064, - 0x0010c0db, 0x0010c059, 0x0010c06a, 0x5930d203, - 0x82697480, 0x00000004, 0x04020003, 0x0201f800, - 0x00100b11, 0x59325809, 0x0201f800, 0x001070df, - 0x80c589c0, 0x0402006b, 0x0201f800, 0x00105dd5, - 0x8d3e7d1c, 0x0400007a, 0x497a600a, 0x0401f078, - 0x4200d000, 0x0000031c, 0x4130e000, 0x0201f800, - 0x001001e3, 0x0401f072, 0x59325819, 0x0201f800, - 0x00100581, 0x0401f7ec, 0x0201f800, 0x00107924, - 0x5930d203, 0x82697480, 0x00000004, 0x0400005c, - 0x59325809, 0x0201f800, 0x001070df, 0x80c589c0, - 0x040007e6, 0x592cd205, 0x8268d500, 0x000000ff, - 0x82697480, 0x00000014, 0x04000003, 0x0201f800, - 0x001071b4, 0x4a025a05, 0x00000103, 0x592cd409, - 0x8c68d512, 0x0402004d, 0x49425a07, 0x497a580a, - 0x0201f800, 0x0010850c, 0x0201f800, 0x0010759b, - 0x0201f800, 0x00107231, 0x0201f800, 0x0002032c, - 0x0401f7ce, 0x5930d403, 0x82697480, 0x00000043, - 0x04000047, 0x0201f800, 0x0010bde3, 0x80c589c0, - 0x04020034, 0x0201f800, 0x001071d6, 0x80c589c0, - 0x040007c2, 0x0201f800, 0x001063ed, 0x0401f7bf, - 0x59325809, 0x0201f800, 0x001070df, 0x80c589c0, - 0x040007ba, 0x49425a07, 0x497a5c0a, 0x0201f800, - 0x0002032c, 0x5930d21f, 0x82697480, 0x00000003, - 0x040207b2, 0x0201f800, 0x001071b4, 0x0401f7af, - 0x5930d203, 0x82697480, 0x00000011, 0x04020028, - 0x5930d41f, 0x486a6203, 0x0401f025, 0x5930d203, - 0x82697480, 0x00000004, 0x0400001e, 0x59325809, - 0x0201f800, 0x001070df, 0x80c589c0, 0x0400079f, - 0x49425a07, 0x0201f800, 0x0010850c, 0x0201f800, - 0x0010759b, 0x0201f800, 0x0002032c, 0x0401f797, - 0x49425a07, 0x0201f800, 0x0002032c, 0x0401f793, - 0x0201f800, 0x00101993, 0x0401f7cb, 0x0201f800, - 0x00100b11, 0x0401f7a3, 0x412d0000, 0x592e580a, - 0x0201f800, 0x00100581, 0x40825800, 0x0401f7af, - 0x0201f800, 0x00100b11, 0x0401f7e1, 0x40865800, - 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000002, - 0x1c01f000, 0x0201f800, 0x001083b3, 0x80c589c0, - 0x0402000c, 0x5930d407, 0x82697480, 0x00000010, - 0x04000002, 0x0401f009, 0x83457480, 0x0000ffff, - 0x040207fd, 0x5930d00a, 0x8068d1c0, 0x040207fa, - 0x5932680a, 0x0401ff3f, 0x1c01f000, 0x829d3c80, - 0x00000005, 0x48813800, 0x48853801, 0x48893802, - 0x488d3803, 0x48913804, 0x41311000, 0x41352000, - 0x4933c857, 0x4947c857, 0x4943c857, 0x0201f800, - 0x0010512e, 0x40c51800, 0x0201f800, 0x00108295, - 0x41310800, 0x813261c0, 0x04000048, 0x42000000, - 0x0010cc5c, 0x81317480, 0x04000044, 0x59a8d00d, - 0x8068d040, 0x42010000, 0x0010cca4, 0x40680000, - 0x81657480, 0x0400000f, 0x41580000, 0x80817480, - 0x0402100c, 0x40826000, 0x40800000, 0x80857480, - 0x04000003, 0x4084d000, 0x0401ffc7, 0x82810400, - 0x00000024, 0x41580000, 0x80817480, 0x040017f6, - 0x41510000, 0x41540000, 0x80817480, 0x04021012, - 0x8d3e7d18, 0x04000010, 0x59a8d05e, 0x59a8005f, - 0x80697480, 0x0400000c, 0x40826000, 0x5880d00a, - 0x8068d1c0, 0x0400000d, 0x4084d000, 0x0401ffb2, - 0x82810400, 0x00000024, 0x41540000, 0x80817480, - 0x040017f0, 0x408a6000, 0x40926800, 0x808d7040, - 0x04000018, 0x0401f01d, 0x0201f800, 0x001039c0, - 0x40c66800, 0x80c589c0, 0x040007f2, 0x58c4d002, - 0x5930d820, 0x82680500, 0x00ffffff, 0x806d7480, - 0x040207ec, 0x5930d203, 0x82697480, 0x00000008, - 0x0400000b, 0x4936600a, 0x0401fee6, 0x82810400, - 0x00000024, 0x0401f7e5, 0x59a8d00d, 0x0401f7be, - 0x0201f800, 0x0010511f, 0x0401f004, 0x0201f800, - 0x00108720, 0x0401f7f4, 0x589d2004, 0x589d1803, - 0x589d1002, 0x589d0801, 0x589d0000, 0x829d3c00, - 0x00000005, 0x1c01f000, 0x829d3c80, 0x00000007, + 0x48853801, 0x412d0800, 0x0201f800, 0x0010bb1b, + 0x80c589c0, 0x040000a3, 0x5930dc07, 0x406c0000, + 0x826d7480, 0x00000011, 0x83f17500, 0x03000000, + 0x04000025, 0x0c01f001, 0x0010c0e0, 0x0010c096, + 0x0010c0a5, 0x0010c073, 0x0010c096, 0x0010c0a5, + 0x0010c0bc, 0x0010c0b5, 0x0010c069, 0x0010c069, + 0x0010c058, 0x0010c069, 0x0010c069, 0x0010c069, + 0x0010c069, 0x0010c0e0, 0x0010c05e, 0x0010c06f, + 0x5930d203, 0x82697480, 0x00000004, 0x04020003, + 0x0201f800, 0x00100b11, 0x59325809, 0x0201f800, + 0x00107175, 0x80c589c0, 0x0402006b, 0x0201f800, + 0x00105e4d, 0x8d3e7d1c, 0x0400007a, 0x497a600a, + 0x0401f078, 0x4200d000, 0x00000328, 0x4130e000, + 0x0201f800, 0x001001e3, 0x0401f072, 0x59325819, + 0x0201f800, 0x00100581, 0x0401f7ec, 0x0201f800, + 0x001079ba, 0x5930d203, 0x82697480, 0x00000004, + 0x0400005c, 0x59325809, 0x0201f800, 0x00107175, + 0x80c589c0, 0x040007e6, 0x592cd205, 0x8268d500, + 0x000000ff, 0x82697480, 0x00000014, 0x04000003, + 0x0201f800, 0x0010724a, 0x4a025a05, 0x00000103, + 0x592cd409, 0x8c68d512, 0x0402004d, 0x49425a07, + 0x497a580a, 0x0201f800, 0x001085c4, 0x0201f800, + 0x00107631, 0x0201f800, 0x001072c7, 0x0201f800, + 0x0002032c, 0x0401f7ce, 0x5930d403, 0x82697480, + 0x00000043, 0x04000047, 0x0201f800, 0x0010bde8, + 0x80c589c0, 0x04020034, 0x0201f800, 0x0010726c, + 0x80c589c0, 0x040007c2, 0x0201f800, 0x0010646b, + 0x0401f7bf, 0x59325809, 0x0201f800, 0x00107175, + 0x80c589c0, 0x040007ba, 0x49425a07, 0x497a5c0a, + 0x0201f800, 0x0002032c, 0x5930d21f, 0x82697480, + 0x00000003, 0x040207b2, 0x0201f800, 0x0010724a, + 0x0401f7af, 0x5930d203, 0x82697480, 0x00000011, + 0x04020028, 0x5930d41f, 0x486a6203, 0x0401f025, + 0x5930d203, 0x82697480, 0x00000004, 0x0400001e, + 0x59325809, 0x0201f800, 0x00107175, 0x80c589c0, + 0x0400079f, 0x49425a07, 0x0201f800, 0x001085c4, + 0x0201f800, 0x00107631, 0x0201f800, 0x0002032c, + 0x0401f797, 0x49425a07, 0x0201f800, 0x0002032c, + 0x0401f793, 0x0201f800, 0x00101992, 0x0401f7cb, + 0x0201f800, 0x00100b11, 0x0401f7a3, 0x412d0000, + 0x592e580a, 0x0201f800, 0x00100581, 0x40825800, + 0x0401f7af, 0x0201f800, 0x00100b11, 0x0401f7e1, + 0x40865800, 0x589d0801, 0x589d0000, 0x829d3c00, + 0x00000002, 0x1c01f000, 0x0201f800, 0x0010846b, + 0x80c589c0, 0x04020002, 0x0401f003, 0x5932680a, + 0x0401ff49, 0x1c01f000, 0x829d3c80, 0x00000005, 0x48813800, 0x48853801, 0x48893802, 0x488d3803, - 0x48913804, 0x48953805, 0x48993806, 0x42010000, - 0x00000001, 0x41790800, 0x497bc856, 0x41311000, - 0x41351800, 0x41452000, 0x413d2800, 0x40593000, - 0x4200d000, 0x0010c15e, 0x0201f800, 0x00104d89, - 0x59a8d21b, 0x8c68d508, 0x0400001d, 0x8c68d516, - 0x0402001b, 0x59aa687d, 0x813669c0, 0x04000076, - 0x5934d400, 0x82697480, 0x00000404, 0x04020072, - 0x0201f800, 0x00105e04, 0x40c66000, 0x80c589c0, - 0x04000067, 0x48818c07, 0x4935880a, 0x40867800, - 0x0201f800, 0x001038ff, 0x4200d000, 0x00000005, - 0x0201f800, 0x00103909, 0x42027000, 0x00000003, - 0x0201f800, 0x00105e2e, 0x0401f05f, 0x8c68d506, - 0x04020003, 0x8c68d50a, 0x04000014, 0x0201f800, - 0x00103baa, 0x80c589c0, 0x0400000a, 0x83acd400, - 0x000007fe, 0x586a6800, 0x5934d200, 0x8468d51a, - 0x486a6a00, 0x59a8d21b, 0x8c68d506, 0x0402003b, - 0x808509c0, 0x04000005, 0x8d0e1d20, 0x0402003b, - 0x0201f800, 0x0010b83b, 0x80817040, 0x04020046, - 0x4200b000, 0x000007f0, 0x417a8800, 0x0401f004, - 0x81468800, 0x8058b040, 0x0400003f, 0x0201f800, - 0x001039c0, 0x80c589c0, 0x040007fa, 0x5934d200, - 0x8c68d51a, 0x040007f7, 0x5934d403, 0x406a8800, - 0x417a7800, 0x42028000, 0x00000029, 0x413cd000, - 0x413cd800, 0x0201f800, 0x001082e7, 0x5934d200, - 0x8468d558, 0x486a6a00, 0x5934d200, 0x8468d51a, + 0x48913804, 0x41311000, 0x41352000, 0x4933c857, + 0x4947c857, 0x4943c857, 0x0201f800, 0x001051ba, + 0x40c51800, 0x0201f800, 0x00108346, 0x41310800, + 0x813261c0, 0x04000048, 0x42000000, 0x0010cc6c, + 0x81317480, 0x04000044, 0x59a8d00d, 0x8068d040, + 0x42010000, 0x0010ccb4, 0x40680000, 0x81657480, + 0x0400000f, 0x41580000, 0x80817480, 0x0402100c, + 0x40826000, 0x40800000, 0x80857480, 0x04000003, + 0x4084d000, 0x0401ffd1, 0x82810400, 0x00000024, + 0x41580000, 0x80817480, 0x040017f6, 0x41510000, + 0x41540000, 0x80817480, 0x04021012, 0x8d3e7d18, + 0x04000010, 0x59a8d05e, 0x59a8005f, 0x80697480, + 0x0400000c, 0x40826000, 0x5880d00a, 0x8068d1c0, + 0x0400000d, 0x4084d000, 0x0401ffbc, 0x82810400, + 0x00000024, 0x41540000, 0x80817480, 0x040017f0, + 0x408a6000, 0x40926800, 0x808d7040, 0x04000018, + 0x0401f01d, 0x0201f800, 0x001039cf, 0x40c66800, + 0x80c589c0, 0x040007f2, 0x58c4d002, 0x5930d820, + 0x82680500, 0x00ffffff, 0x806d7480, 0x040207ec, + 0x5930d203, 0x82697480, 0x00000008, 0x0400000b, + 0x4936600a, 0x0401fef0, 0x82810400, 0x00000024, + 0x0401f7e5, 0x59a8d00d, 0x0401f7be, 0x0201f800, + 0x001051ab, 0x0401f004, 0x0201f800, 0x001087ea, + 0x0401f7f4, 0x589d2004, 0x589d1803, 0x589d1002, + 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000005, + 0x1c01f000, 0x829d3c80, 0x00000007, 0x48813800, + 0x48853801, 0x48893802, 0x488d3803, 0x48913804, + 0x48953805, 0x48993806, 0x42010000, 0x00000001, + 0x41790800, 0x497bc856, 0x41311000, 0x41351800, + 0x41452000, 0x413d2800, 0x40593000, 0x4200d000, + 0x0010c159, 0x0201f800, 0x00104e15, 0x59a8d21b, + 0x8c68d508, 0x0400001d, 0x8c68d516, 0x0402001b, + 0x59aa687d, 0x813669c0, 0x0400007a, 0x5934d400, + 0x82697480, 0x00000404, 0x04020076, 0x0201f800, + 0x00105e80, 0x40c66000, 0x80c589c0, 0x0400006b, + 0x48818c07, 0x4935880a, 0x40867800, 0x0201f800, + 0x0010390b, 0x4200d000, 0x00000005, 0x0201f800, + 0x00103915, 0x42027000, 0x00000003, 0x0201f800, + 0x00105eaa, 0x0401f063, 0x8c68d506, 0x04020003, + 0x8c68d50a, 0x04000014, 0x0201f800, 0x00103bbd, + 0x80c589c0, 0x0400000a, 0x83acd400, 0x000007fe, + 0x586a6800, 0x5934d200, 0x8468d51a, 0x486a6a00, + 0x59a8d21b, 0x8c68d506, 0x0402003c, 0x808509c0, + 0x04000005, 0x8d0e1d20, 0x0402003c, 0x0201f800, + 0x0010b84b, 0x80817040, 0x0402004a, 0x4200b000, + 0x000007f0, 0x417a8800, 0x0401f01c, 0x826cd540, + 0x00001000, 0x486a6a00, 0x5934d200, 0x8468d51a, 0x486a6a00, 0x4937c857, 0x4a026c00, 0x00000707, - 0x0201f800, 0x0010512e, 0x40c50000, 0x417a6000, - 0x0201f800, 0x0010bb8e, 0x0201f800, 0x0010bc6a, - 0x417a7800, 0x0201f800, 0x0010bd03, 0x0201f800, - 0x0010c0f3, 0x80817040, 0x040207d6, 0x0201f800, - 0x0010511f, 0x0401f7d3, 0x41790000, 0x42010800, - 0x00000001, 0x0401f7c3, 0x4200d000, 0x000007d0, - 0x4200d800, 0x0010c15e, 0x0201f800, 0x00104e9c, - 0x0201f800, 0x0010b83b, 0x0401f7c0, 0x4200d000, - 0x00000098, 0x40c4d800, 0x4134e000, 0x0201f800, - 0x001001e3, 0x408a6000, 0x408e6800, 0x40928800, - 0x40967800, 0x4098b000, 0x589d3006, 0x589d2805, - 0x589d2004, 0x589d1803, 0x589d1002, 0x589d0801, - 0x589d0000, 0x829d3c00, 0x00000007, 0x1c01f000, - 0x497bc856, 0x0201f800, 0x001040d9, 0x80c589c0, - 0x0402002b, 0x59a8d015, 0x8c68d504, 0x04000031, - 0x8d0e1d20, 0x0400001c, 0x4200b000, 0x000007f0, - 0x417a8800, 0x0401f004, 0x81468800, 0x8058b040, - 0x04000015, 0x0201f800, 0x001039c0, 0x80c589c0, - 0x040007fa, 0x0201f800, 0x00103c43, 0x80c589c0, - 0x040007f6, 0x59a8d00f, 0x59340002, 0x8068d580, - 0x8268d500, 0x00ffff00, 0x040207f0, 0x5934d200, - 0x8468d55a, 0x486a6a00, 0x81468800, 0x8058b040, - 0x040207ed, 0x0201f800, 0x00103baa, 0x80c589c0, - 0x04000020, 0x59a8d029, 0x4200d800, 0x0010c15e, - 0x0201f800, 0x00104e9c, 0x0401f01f, 0x83acd400, - 0x000007fe, 0x586a6800, 0x813669c0, 0x040007d5, - 0x5934d200, 0x8468d51a, 0x486a6a00, 0x0401f7d1, - 0x59a8d21b, 0x8c68d506, 0x040007ce, 0x83acd400, - 0x000007fe, 0x586a6800, 0x813669c0, 0x040007c9, - 0x0201f800, 0x00103c43, 0x80c589c0, 0x040007c5, - 0x5934d200, 0x8468d55a, 0x486a6a00, 0x0401f7c1, - 0x8d0e1d20, 0x040007e5, 0x4200d000, 0x000007d0, - 0x0401f7de, 0x1c01f000, 0x829d3c80, 0x00000003, - 0x48813800, 0x48853801, 0x48893802, 0x40691000, - 0x40710800, 0x4978e000, 0x83457480, 0x000007ff, - 0x83f17500, 0x03000000, 0x04000047, 0x4978e002, - 0x4944e001, 0x4144e800, 0x42010000, 0x00108b80, - 0x4200b000, 0x000007f0, 0x83457480, 0x000007ef, - 0x04000039, 0x04001038, 0x4200b000, 0x00000010, - 0x8058b1c0, 0x04000017, 0x40740000, 0x8080d400, - 0x5868f000, 0x8078f1c0, 0x04020043, 0x5884e001, - 0x41440000, 0x80717480, 0x0400005b, 0x8070d000, - 0x8074e800, 0x83457480, 0x000007ef, 0x0400004d, - 0x0400104c, 0x82697480, 0x00000800, 0x0400002e, - 0x48690801, 0x8058b040, 0x8058b1c0, 0x040207eb, - 0x5884d802, 0x806cd9c0, 0x04000065, 0x412d0000, - 0x4088d000, 0x0201f800, 0x0010392e, 0x4947c857, - 0x4937c857, 0x40825800, 0x813669c0, 0x04000062, - 0x497a6a12, 0x59a8d21b, 0x8c68d50a, 0x0402000a, - 0x8288dd00, 0x00ffff00, 0x04000050, 0x59a8d00f, - 0x8268d500, 0x00ffff00, 0x406c0000, 0x80697480, - 0x0400004a, 0x488a6802, 0x4200d000, 0x00000001, - 0x0401f079, 0x82697480, 0x00fffffb, 0x040007c9, - 0x040017c8, 0x4947c857, 0x488bc857, 0x58857001, - 0x48bbc857, 0x4a010800, 0x00000019, 0x4178d000, - 0x0401f06d, 0x4a010801, 0x000007f0, 0x4200e800, - 0x000007f0, 0x42010000, 0x00108b80, 0x8058b040, - 0x0401f7ce, 0x5878d002, 0x8268e500, 0x00ffffff, - 0x48710803, 0x40880000, 0x80717480, 0x04000049, - 0x5884e001, 0x41440000, 0x80717480, 0x040207b8, - 0x58797002, 0x48b90803, 0x4947c857, 0x58857003, - 0x48bbc857, 0x4a010800, 0x0000001b, 0x0401f7e4, - 0x82697480, 0x000007f0, 0x040207b6, 0x49790801, - 0x42010000, 0x00108b80, 0x4178e800, 0x8058b040, - 0x0401f7b2, 0x49450802, 0x83457480, 0x000007ef, - 0x0400000e, 0x0400100d, 0x83457480, 0x000007fc, - 0x04000028, 0x83457480, 0x000007fd, 0x0400001a, - 0x83457480, 0x000007ff, 0x0402001a, 0x82897480, - 0x00ffffff, 0x04020017, 0x5884d002, 0x8468d55e, - 0x48690802, 0x0401f792, 0x8288d500, 0x000000ff, - 0x8068d0d0, 0x486a6a12, 0x0401f7b3, 0x4200d000, - 0x000003f1, 0x4084e000, 0x0201f800, 0x001001e3, - 0x0401f797, 0x4947c857, 0x4a010800, 0x0000000a, - 0x0401f7b7, 0x82897480, 0x00fffffd, 0x040007eb, - 0x4947c857, 0x488bc857, 0x58857001, 0x48bbc857, - 0x4a010800, 0x00000019, 0x4078d000, 0x0401f01a, - 0x82897480, 0x00fffffc, 0x040007e0, 0x0401f7f5, - 0x5884d001, 0x41440000, 0x80697480, 0x04000007, - 0x4947c857, 0x4873c857, 0x486fc857, 0x4a010800, - 0x0000001a, 0x0401f79e, 0x407a6800, 0x8c6cdd08, - 0x0400078e, 0x0201f800, 0x00103b9d, 0x80c589c0, - 0x0400078a, 0x4947c857, 0x4a010800, 0x0000001d, - 0x0401f793, 0x40698800, 0x589d1002, 0x589d0801, - 0x589d0000, 0x829d3c00, 0x00000003, 0x1c01f000, - 0x809d3840, 0x48813800, 0x4200d000, 0x00009c0e, - 0x4200d800, 0xfffffff7, 0x0201f800, 0x0010b3e0, - 0x4200d000, 0x00009c0e, 0x4200d800, 0x00000010, - 0x0201f800, 0x0010b3f2, 0x59c4d0a3, 0x8468d518, - 0x486b88a3, 0x0201f800, 0x00102ede, 0x80c589c0, - 0x04000007, 0x599cd019, 0x8268d500, 0x0000e000, - 0x82697480, 0x00004000, 0x0400008c, 0x4200d000, - 0x00000080, 0x0201f800, 0x001012db, 0x0201f800, - 0x00104ed1, 0x59c4d0a3, 0x8468d506, 0x486b88a3, - 0x0201f800, 0x001040e4, 0x80c589c0, 0x04020005, - 0x0201f800, 0x001040fa, 0x80c589c0, 0x0400006c, - 0x59c4d0a3, 0x8268d500, 0xbe7fffff, 0x486b88a3, - 0x4200d000, 0x000000f8, 0x0201f800, 0x00103669, - 0x59c4d0a3, 0x8268d540, 0x00018000, 0x8468d51c, - 0x486b88a3, 0x59c4d0a3, 0x8468d520, 0x486b88a3, - 0x4a038808, 0x00000200, 0x59c4d006, 0x8268d500, - 0xfbffff0e, 0x486b8806, 0x497b282c, 0x497b282d, - 0x4200d000, 0x000001f4, 0x4200d800, 0x0010c547, - 0x0201f800, 0x00104d74, 0x4a038805, 0x00000001, - 0x0201f800, 0x001013a5, 0x80c589c0, 0x04020023, - 0x0201f800, 0x001013b0, 0x80c589c0, 0x04000035, - 0x4178d000, 0x0201f800, 0x0010159b, 0x4178d000, - 0x0201f800, 0x00101571, 0x0201f800, 0x001015fb, - 0x4a035038, 0x00000001, 0x0201f800, 0x001040e4, - 0x80c589c0, 0x04000018, 0x59c4d0a4, 0x8268d500, - 0x0000000f, 0x82697480, 0x00000008, 0x04000003, - 0x4a038805, 0x04000000, 0x59c4d0a3, 0x8268d540, - 0x0001c000, 0x486b88a3, 0x59c4d0a3, 0x8468d520, - 0x486b88a3, 0x0401f077, 0x4200d000, 0x00000001, - 0x0201f800, 0x0010159b, 0x4200d000, 0x00000001, - 0x0401f7e0, 0x0201f800, 0x001040fa, 0x80c589c0, - 0x040207e6, 0x0201f800, 0x001040ef, 0x4200d000, - 0x000001a1, 0x80c589c0, 0x04020052, 0x599cd818, - 0x40c4e000, 0x0201f800, 0x001001e3, 0x0401f061, - 0x0201f800, 0x001013bb, 0x80c589c0, 0x04020030, - 0x0201f800, 0x001013c6, 0x80c589c0, 0x04000039, - 0x4200d000, 0x00000003, 0x0201f800, 0x0010159b, - 0x4200d000, 0x00000003, 0x0401f7c2, 0x0201f800, - 0x001040ef, 0x4200d000, 0x0000014e, 0x80c589c0, - 0x040007e7, 0x59c4d0a3, 0x8468d570, 0x8468d532, - 0x486b88a3, 0x0201f800, 0x00104416, 0x4a038808, - 0x00000208, 0x0401f799, 0x59a8d86b, 0x826d0500, - 0x00000007, 0x04020019, 0x59a8d037, 0x82697480, - 0x00000002, 0x04000018, 0x0201f800, 0x00101568, - 0x48835036, 0x0201f800, 0x0010191b, 0x4a035044, - 0x00000003, 0x4a035037, 0x00000002, 0x4a035043, - 0x00000001, 0x59a8d86b, 0x0401f00b, 0x4200d000, - 0x00000002, 0x0201f800, 0x0010159b, 0x4200d000, - 0x00000002, 0x0401f797, 0x82817480, 0x00000004, - 0x04000019, 0x806cd000, 0x486b506b, 0x0401f754, - 0x0201f800, 0x001013d1, 0x80c589c0, 0x0400000e, - 0x59a8d043, 0x8068d1c0, 0x0400078c, 0x0201f800, - 0x001013db, 0x4a035038, 0x00000001, 0x0401f015, - 0x4a035014, 0x00000001, 0x0201f800, 0x0010405c, - 0x0401f010, 0x4200d000, 0x00000182, 0x59a8d837, - 0x0401f7a8, 0x497b2804, 0x497b2805, 0x0201f800, - 0x0010192a, 0x4a035043, 0x00000001, 0x4a035044, - 0xaabbccdd, 0x48835037, 0x59a8d86b, 0x0401f7de, - 0x589d0000, 0x809d3800, 0x1c01f000, 0x5994d02c, - 0x8068d1c0, 0x04020006, 0x5994d02d, 0x4200d800, - 0x00000001, 0x8068d1c0, 0x04000002, 0x4178d800, - 0x406d8800, 0x1c01f000, 0x0201f800, 0x00101568, - 0x4a035038, 0x00000002, 0x497b5043, 0x59c4d0a3, - 0x8468d520, 0x486b88a3, 0x0201f800, 0x00102ede, - 0x80c589c0, 0x04000002, 0x0401f00d, 0x0201f800, - 0x001040ef, 0x80c589c0, 0x040207fc, 0x48c7282c, - 0x48c7282d, 0x4200d000, 0x0000002d, 0x4200d800, - 0x0010c547, 0x0201f800, 0x00104d74, 0x1c01f000, - 0x0401ffdb, 0x80c589c0, 0x04000004, 0x4a035038, - 0x00000003, 0x0401f01f, 0x0201f800, 0x001013d1, - 0x80c589c0, 0x04000004, 0x59a8d043, 0x8068d1c0, - 0x04020008, 0x0201f800, 0x001015ca, 0x80c589c0, - 0x04020002, 0x0401f013, 0x0401ffd4, 0x0401f011, - 0x0201f800, 0x001013db, 0x59a8d042, 0x8c68d51e, - 0x040007f9, 0x0201f800, 0x001040ef, 0x80c589c0, - 0x04020003, 0x0401ffc9, 0x0401f006, 0x4a035014, - 0x00000001, 0x0201f800, 0x0010405c, 0x0401f7fa, - 0x1c01f000, 0x4202d800, 0x00000001, 0x497b5038, - 0x4a038805, 0x00000001, 0x497b282c, 0x497b282d, - 0x497b8885, 0x1c01f000, 0x59c4d005, 0x8268d500, - 0x000000c0, 0x04020003, 0x486b8885, 0x0401f006, - 0x59c4d006, 0x8268d540, 0x000000f1, 0x486b8806, - 0x0401ffed, 0x1c01f000, 0x0201f800, 0x001040fa, - 0x80c589c0, 0x04000005, 0x59a8d013, 0x82697480, - 0x0000aaaa, 0x0400000c, 0x497b5013, 0x59c4d006, - 0x8268d540, 0x04000001, 0x486b8806, 0x8d0e1d06, - 0x04020008, 0x59c4d0a3, 0x8468d546, 0x486b88a3, - 0x0401f004, 0x4a03500f, 0x00ffffff, 0x0401f7f3, - 0x0401ffd5, 0x1c01f000, 0x809d3840, 0x48813800, - 0x0401ff87, 0x80c589c0, 0x04000005, 0x4a035038, - 0x00000003, 0x497b8885, 0x0401f08b, 0x4a038805, - 0x000000f0, 0x0201f800, 0x001015ca, 0x80c589c0, - 0x04000042, 0x0201f800, 0x001017bd, 0x80c589c0, - 0x04000048, 0x59a8d04b, 0x8c68d50c, 0x0400005e, - 0x0201f800, 0x001017bd, 0x80c589c0, 0x0402000b, - 0x4a03c014, 0x00200020, 0x59c4d001, 0x8268d500, - 0x00018000, 0x82697480, 0x00018000, 0x0400005f, - 0x4a03c013, 0x00200000, 0x0201f800, 0x001040ef, - 0x80c589c0, 0x0402004a, 0x59c4d0a4, 0x8268d500, - 0x0000000f, 0x82697480, 0x00000008, 0x0400002b, - 0x59c4d005, 0x82690500, 0x04000000, 0x8c68d534, - 0x04020026, 0x5994d02c, 0x82697480, 0x00000002, - 0x83f17500, 0x03000000, 0x040007cf, 0x0201f800, - 0x001040fa, 0x80c589c0, 0x040007cb, 0x4a038805, - 0x000000f0, 0x0201f800, 0x00104128, 0x4a035013, - 0x0000aaaa, 0x48835014, 0x59c4d0a3, 0x8468d546, - 0x486b88a3, 0x4202d800, 0x00000001, 0x48835038, - 0x4a038805, 0x00000001, 0x4883282c, 0x4883282d, - 0x0401ff8e, 0x0401f7b8, 0x0201f800, 0x001013d1, - 0x80c589c0, 0x040007b4, 0x59a8d043, 0x8068d1c0, - 0x040007b1, 0x0401f7ae, 0x0401ff90, 0x0401f7ae, - 0x0201f800, 0x00101793, 0x80c589c0, 0x040007b6, - 0x0201f800, 0x001017a1, 0x80c589c0, 0x04000022, - 0x0201f800, 0x001013c6, 0x80c589c0, 0x0400002a, - 0x59a8d044, 0x42000000, 0xaabbccdd, 0x80697480, - 0x04000004, 0x82697480, 0x00000004, 0x040207a6, - 0x4a035038, 0x00000003, 0x0401f023, 0x0401ff6b, - 0x0401f021, 0x4200d000, 0x00009c0e, 0x4200d800, - 0xffffffef, 0x0201f800, 0x0010b3e0, 0x4200d000, - 0x00009c0e, 0x4200d800, 0x00000008, 0x0201f800, - 0x0010b3f2, 0x0401f797, 0x4a03c013, 0x00200020, - 0x0401f7a2, 0x0201f800, 0x001013a5, 0x80c589c0, - 0x0400000b, 0x59a8d044, 0x42000000, 0xaabbccdd, - 0x80697480, 0x040007e3, 0x8068d1c0, 0x04020786, - 0x0401f7e0, 0x59a8d044, 0x0401f7db, 0x59a8d044, - 0x0401f7fa, 0x589d0000, 0x809d3800, 0x1c01f000, - 0x497bc856, 0x4200d000, 0x00000080, 0x0201f800, - 0x001012db, 0x497b5038, 0x0201f800, 0x001013d1, - 0x80c589c0, 0x0400000e, 0x59a8d036, 0x8068d1c0, - 0x04020008, 0x8068d1c0, 0x04020009, 0x4a035036, - 0x0000000a, 0x4a035043, 0x00000001, 0x0401f004, - 0x8068d040, 0x486b5036, 0x0401f7f7, 0x497b8885, - 0x0201f800, 0x001003ba, 0x1c01f000, 0x4200e000, - 0x00000003, 0x59a80038, 0x80717480, 0x04001006, - 0x0c01f001, 0x0010c541, 0x0010c543, 0x0010c545, - 0x0010c53f, 0x4200d000, 0x000000c3, 0x4000d800, - 0x0201f800, 0x001001e3, 0x0401f008, 0x0401ffd5, - 0x0401f006, 0x0401fddb, 0x0401f004, 0x0401fee9, - 0x0401f002, 0x0401ff39, 0x1c01f000, 0x497b282d, - 0x1c01f000, 0x0201f800, 0x00102ede, 0x80c589c0, - 0x04000007, 0x599cd019, 0x8268d500, 0x0000e000, - 0x82697480, 0x00004000, 0x04000003, 0x4178d000, - 0x0401f024, 0x59c4d001, 0x8268d500, 0x00018000, - 0x82697480, 0x00010000, 0x040207f9, 0x59a8d06c, - 0x82697480, 0x00000002, 0x83f17500, 0x03000000, - 0x040007f3, 0x0201f800, 0x0010192a, 0x4a035043, - 0x00000001, 0x4a035044, 0xaabbccdd, 0x4a035037, - 0x00000004, 0x497b5038, 0x4202d800, 0x00000004, - 0x59a8d06c, 0x8068d000, 0x486b506c, 0x59a8d06b, - 0x8268d500, 0xfffffff8, 0x8468d544, 0x486b506b, - 0x0201f800, 0x00100401, 0x4200d000, 0x00000001, - 0x40698800, 0x1c01f000, 0x59a8d017, 0x82697480, - 0x0000ffff, 0x04000004, 0x0201f800, 0x0010b83b, - 0x0401f0b2, 0x59a8da1b, 0x826cd500, 0x00000028, - 0x04000025, 0x8c6cdd00, 0x04000023, 0x4a038802, - 0x0000ffbf, 0x59a8da1b, 0x8c6cdd02, 0x0400001e, - 0x599ce018, 0x8c70e516, 0x04020012, 0x59a8d01c, - 0x82697480, 0x0000ffff, 0x0400000e, 0x0201f800, - 0x00101947, 0x59a8d21b, 0x8268dd00, 0x00000004, - 0x8c68d504, 0x04020051, 0x406e5800, 0x4200d000, - 0x00000003, 0x0201f800, 0x0010196a, 0x0401f093, - 0x8c70e516, 0x04020005, 0x59a8d01c, 0x82697480, - 0x0000ffff, 0x04000085, 0x59a8d01d, 0x8068d1c0, - 0x04020042, 0x8c6cdd08, 0x04000041, 0x599cd019, - 0x8c68d510, 0x04000042, 0x0201f800, 0x00103baa, - 0x80c589c0, 0x04020039, 0x599cd019, 0x8c68d510, - 0x0400003e, 0x59a8d21b, 0x8c68d508, 0x0400003b, - 0x4a038802, 0x0000ffff, 0x4200d000, 0x00109457, - 0x0201f800, 0x0010050d, 0x4200d000, 0x00109464, - 0x0201f800, 0x0010050d, 0x850e1d02, 0x4a01a8e4, - 0x00000080, 0x4202d800, 0x00000003, 0x4a035017, - 0x0000ffff, 0x0201f800, 0x001003e8, 0x4178d000, - 0x0201f800, 0x001012db, 0x497b506c, 0x59a8d21b, - 0x8c68d506, 0x04000048, 0x599cd018, 0x8268e500, - 0x00000800, 0x8c68d516, 0x04020040, 0x599cd019, - 0x8c68d510, 0x04000004, 0x59a8d21b, 0x8c68d508, - 0x04020049, 0x4200d000, 0x0000ffff, 0x4200d800, - 0x00000006, 0x4178e000, 0x0201f800, 0x00102e27, - 0x0201f800, 0x001040fa, 0x80c589c0, 0x04000020, - 0x0201f800, 0x00105456, 0x0401f048, 0x59a8d016, - 0x8068d1c0, 0x040007c1, 0x0401f044, 0x8c6cdd16, - 0x040207be, 0x0401f041, 0x599cd018, 0x8c68d516, - 0x0400001d, 0x599cd017, 0x8c68d50a, 0x040007c1, + 0x0201f800, 0x001051ba, 0x40c50000, 0x417a6000, + 0x0201f800, 0x0010bb9e, 0x0201f800, 0x0010bc6f, + 0x417a7800, 0x0201f800, 0x0010bd08, 0x0201f800, + 0x0010c0ee, 0x80817040, 0x04000025, 0x81468800, + 0x8058b040, 0x0400002b, 0x0201f800, 0x001039cf, + 0x80c589c0, 0x040007fa, 0x5934da00, 0x8c6cdd1a, + 0x040007f7, 0x5934d403, 0x406a8800, 0x417a7800, + 0x42028000, 0x00000029, 0x8d0e1d20, 0x040007d8, + 0x413cd000, 0x413cd800, 0x0201f800, 0x00108398, + 0x5934da00, 0x0401f7d2, 0x41790000, 0x42010800, + 0x00000001, 0x0401f7c2, 0x4200d000, 0x000007d0, + 0x4200d800, 0x0010c159, 0x0201f800, 0x00104f28, + 0x0201f800, 0x0010b84b, 0x0401f7bf, 0x0201f800, + 0x001051ab, 0x0401f7da, 0x4200d000, 0x000000a0, + 0x40c4d800, 0x4134e000, 0x0201f800, 0x001001e3, + 0x408a6000, 0x408e6800, 0x40928800, 0x40967800, + 0x4098b000, 0x589d3006, 0x589d2805, 0x589d2004, + 0x589d1803, 0x589d1002, 0x589d0801, 0x589d0000, + 0x829d3c00, 0x00000007, 0x1c01f000, 0x497bc856, + 0x0201f800, 0x0010410f, 0x80c589c0, 0x0402002e, + 0x59a8d015, 0x8c68d504, 0x04000034, 0x8d0e1d20, + 0x04020004, 0x59a8d006, 0x8c68d51c, 0x0400001c, 0x4200b000, 0x000007f0, 0x417a8800, 0x0401f004, - 0x81468800, 0x8058b040, 0x040007ba, 0x0201f800, - 0x001039c0, 0x80c589c0, 0x040007fa, 0x5934d200, + 0x81468800, 0x8058b040, 0x04000015, 0x0201f800, + 0x001039cf, 0x80c589c0, 0x040007fa, 0x0201f800, + 0x00103c58, 0x80c589c0, 0x040007f6, 0x59a8d00f, + 0x59340002, 0x8068d580, 0x8268d500, 0x00ffff00, + 0x040207f0, 0x5934d200, 0x8468d55a, 0x486a6a00, + 0x81468800, 0x8058b040, 0x040207ed, 0x0201f800, + 0x00103bbd, 0x80c589c0, 0x04000020, 0x59a8d029, + 0x4200d800, 0x0010c159, 0x0201f800, 0x00104f28, + 0x0401f022, 0x83acd400, 0x000007fe, 0x586a6800, + 0x813669c0, 0x040007d2, 0x5934d200, 0x8468d51a, + 0x486a6a00, 0x0401f7ce, 0x59a8d21b, 0x8c68d506, + 0x040007cb, 0x83acd400, 0x000007fe, 0x586a6800, + 0x813669c0, 0x040007c6, 0x0201f800, 0x00103c58, + 0x80c589c0, 0x040007c2, 0x5934d200, 0x8468d55a, + 0x486a6a00, 0x0401f7be, 0x8d0e1d20, 0x04020004, + 0x59a8d006, 0x8c68d51c, 0x040007e2, 0x4200d000, + 0x000007d0, 0x0401f7db, 0x1c01f000, 0x829d3c80, + 0x00000003, 0x48813800, 0x48853801, 0x48893802, + 0x40691000, 0x40710800, 0x4978e000, 0x83457480, + 0x000007ff, 0x83f17500, 0x03000000, 0x04000047, + 0x4978e002, 0x4944e001, 0x4144e800, 0x42010000, + 0x00108c00, 0x4200b000, 0x000007f0, 0x83457480, + 0x000007ef, 0x04000039, 0x04001038, 0x4200b000, + 0x00000010, 0x8058b1c0, 0x04000017, 0x40740000, + 0x8080d400, 0x5868f000, 0x8078f1c0, 0x04020043, + 0x5884e001, 0x41440000, 0x80717480, 0x0400005b, + 0x8070d000, 0x8074e800, 0x83457480, 0x000007ef, + 0x0400004d, 0x0400104c, 0x82697480, 0x00000800, + 0x0400002e, 0x48690801, 0x8058b040, 0x8058b1c0, + 0x040207eb, 0x5884d802, 0x806cd9c0, 0x04000065, + 0x412d0000, 0x4088d000, 0x0201f800, 0x0010393d, + 0x4947c857, 0x4937c857, 0x40825800, 0x813669c0, + 0x04000062, 0x497a6a12, 0x59a8d21b, 0x8c68d50a, + 0x0402000a, 0x8288dd00, 0x00ffff00, 0x04000050, + 0x59a8d00f, 0x8268d500, 0x00ffff00, 0x406c0000, + 0x80697480, 0x0400004a, 0x488a6802, 0x4200d000, + 0x00000001, 0x0401f079, 0x82697480, 0x00fffffb, + 0x040007c9, 0x040017c8, 0x4947c857, 0x488bc857, + 0x58857001, 0x48bbc857, 0x4a010800, 0x00000019, + 0x4178d000, 0x0401f06d, 0x4a010801, 0x000007f0, + 0x4200e800, 0x000007f0, 0x42010000, 0x00108c00, + 0x8058b040, 0x0401f7ce, 0x5878d002, 0x8268e500, + 0x00ffffff, 0x48710803, 0x40880000, 0x80717480, + 0x04000049, 0x5884e001, 0x41440000, 0x80717480, + 0x040207b8, 0x58797002, 0x48b90803, 0x4947c857, + 0x58857003, 0x48bbc857, 0x4a010800, 0x0000001b, + 0x0401f7e4, 0x82697480, 0x000007f0, 0x040207b6, + 0x49790801, 0x42010000, 0x00108c00, 0x4178e800, + 0x8058b040, 0x0401f7b2, 0x49450802, 0x83457480, + 0x000007ef, 0x0400000e, 0x0400100d, 0x83457480, + 0x000007fc, 0x04000028, 0x83457480, 0x000007fd, + 0x0400001a, 0x83457480, 0x000007ff, 0x0402001a, + 0x82897480, 0x00ffffff, 0x04020017, 0x5884d002, + 0x8468d55e, 0x48690802, 0x0401f792, 0x8288d500, + 0x000000ff, 0x8068d0d0, 0x486a6a12, 0x0401f7b3, + 0x4200d000, 0x0000044d, 0x4084e000, 0x0201f800, + 0x001001e3, 0x0401f797, 0x4947c857, 0x4a010800, + 0x0000000a, 0x0401f7b7, 0x82897480, 0x00fffffd, + 0x040007eb, 0x4947c857, 0x488bc857, 0x58857001, + 0x48bbc857, 0x4a010800, 0x00000019, 0x4078d000, + 0x0401f01a, 0x82897480, 0x00fffffc, 0x040007e0, + 0x0401f7f5, 0x5884d001, 0x41440000, 0x80697480, + 0x04000007, 0x4947c857, 0x4873c857, 0x486fc857, + 0x4a010800, 0x0000001a, 0x0401f79e, 0x407a6800, + 0x8c6cdd08, 0x0400078e, 0x0201f800, 0x00103bb0, + 0x80c589c0, 0x0400078a, 0x4947c857, 0x4a010800, + 0x0000001d, 0x0401f793, 0x40698800, 0x589d1002, + 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000003, + 0x1c01f000, 0x809d3840, 0x48813800, 0x4200d000, + 0x00009c0e, 0x4200d800, 0xfffffff7, 0x0201f800, + 0x0010b3e0, 0x4200d000, 0x00009c0e, 0x4200d800, + 0x00000010, 0x0201f800, 0x0010b3f2, 0x59c4d0a3, + 0x8468d518, 0x486b88a3, 0x0201f800, 0x00102ee2, + 0x80c589c0, 0x04000007, 0x599cd019, 0x8268d500, + 0x0000e000, 0x82697480, 0x00004000, 0x0400008c, + 0x4200d000, 0x00000080, 0x0201f800, 0x001012d9, + 0x0201f800, 0x00104f5d, 0x59c4d0a3, 0x8468d506, + 0x486b88a3, 0x0201f800, 0x0010411a, 0x80c589c0, + 0x04020005, 0x0201f800, 0x00104130, 0x80c589c0, + 0x0400006c, 0x59c4d0a3, 0x8268d500, 0xbe7fffff, + 0x486b88a3, 0x4200d000, 0x000000f8, 0x0201f800, + 0x00103675, 0x59c4d0a3, 0x8268d540, 0x00018000, + 0x8468d51c, 0x486b88a3, 0x59c4d0a3, 0x8468d520, + 0x486b88a3, 0x4a038808, 0x00000200, 0x59c4d006, + 0x8268d500, 0xfbffff0e, 0x486b8806, 0x497b282c, + 0x497b282d, 0x4200d000, 0x000001f4, 0x4200d800, + 0x0010c54c, 0x0201f800, 0x00104e00, 0x4a038805, + 0x00000001, 0x0201f800, 0x001013a3, 0x80c589c0, + 0x04020023, 0x0201f800, 0x001013ae, 0x80c589c0, + 0x04000035, 0x4178d000, 0x0201f800, 0x00101599, + 0x4178d000, 0x0201f800, 0x0010156f, 0x0201f800, + 0x001015f9, 0x4a035038, 0x00000001, 0x0201f800, + 0x0010411a, 0x80c589c0, 0x04000018, 0x59c4d0a4, + 0x8268d500, 0x0000000f, 0x82697480, 0x00000008, + 0x04000003, 0x4a038805, 0x04000000, 0x59c4d0a3, + 0x8268d540, 0x0001c000, 0x486b88a3, 0x59c4d0a3, + 0x8468d520, 0x486b88a3, 0x0401f077, 0x4200d000, + 0x00000001, 0x0201f800, 0x00101599, 0x4200d000, + 0x00000001, 0x0401f7e0, 0x0201f800, 0x00104130, + 0x80c589c0, 0x040207e6, 0x0201f800, 0x00104125, + 0x4200d000, 0x000001a9, 0x80c589c0, 0x04020052, + 0x599cd818, 0x40c4e000, 0x0201f800, 0x001001e3, + 0x0401f061, 0x0201f800, 0x001013b9, 0x80c589c0, + 0x04020030, 0x0201f800, 0x001013c4, 0x80c589c0, + 0x04000039, 0x4200d000, 0x00000003, 0x0201f800, + 0x00101599, 0x4200d000, 0x00000003, 0x0401f7c2, + 0x0201f800, 0x00104125, 0x4200d000, 0x00000156, + 0x80c589c0, 0x040007e7, 0x59c4d0a3, 0x8468d570, + 0x8468d532, 0x486b88a3, 0x0201f800, 0x0010444c, + 0x4a038808, 0x00000208, 0x0401f799, 0x59a8d86b, + 0x826d0500, 0x00000007, 0x04020019, 0x59a8d037, + 0x82697480, 0x00000002, 0x04000018, 0x0201f800, + 0x00101566, 0x48835036, 0x0201f800, 0x0010191a, + 0x4a035044, 0x00000003, 0x4a035037, 0x00000002, + 0x4a035043, 0x00000001, 0x59a8d86b, 0x0401f00b, + 0x4200d000, 0x00000002, 0x0201f800, 0x00101599, + 0x4200d000, 0x00000002, 0x0401f797, 0x82817480, + 0x00000004, 0x04000019, 0x806cd000, 0x486b506b, + 0x0401f754, 0x0201f800, 0x001013cf, 0x80c589c0, + 0x0400000e, 0x59a8d043, 0x8068d1c0, 0x0400078c, + 0x0201f800, 0x001013d9, 0x4a035038, 0x00000001, + 0x0401f015, 0x4a035014, 0x00000001, 0x0201f800, + 0x00104092, 0x0401f010, 0x4200d000, 0x0000018a, + 0x59a8d837, 0x0401f7a8, 0x497b2804, 0x497b2805, + 0x0201f800, 0x00101929, 0x4a035043, 0x00000001, + 0x4a035044, 0xaabbccdd, 0x48835037, 0x59a8d86b, + 0x0401f7de, 0x589d0000, 0x809d3800, 0x1c01f000, + 0x5994d02c, 0x8068d1c0, 0x04020006, 0x5994d02d, + 0x4200d800, 0x00000001, 0x8068d1c0, 0x04000002, + 0x4178d800, 0x406d8800, 0x1c01f000, 0x0201f800, + 0x00101566, 0x4a035038, 0x00000002, 0x497b5043, + 0x59c4d0a3, 0x8468d520, 0x486b88a3, 0x0201f800, + 0x00102ee2, 0x80c589c0, 0x04000002, 0x0401f00d, + 0x0201f800, 0x00104125, 0x80c589c0, 0x040207fc, + 0x48c7282c, 0x48c7282d, 0x4200d000, 0x0000002d, + 0x4200d800, 0x0010c54c, 0x0201f800, 0x00104e00, + 0x1c01f000, 0x0401ffdb, 0x80c589c0, 0x04000004, + 0x4a035038, 0x00000003, 0x0401f01f, 0x0201f800, + 0x001013cf, 0x80c589c0, 0x04000004, 0x59a8d043, + 0x8068d1c0, 0x04020008, 0x0201f800, 0x001015c8, + 0x80c589c0, 0x04020002, 0x0401f013, 0x0401ffd4, + 0x0401f011, 0x0201f800, 0x001013d9, 0x59a8d042, + 0x8c68d51e, 0x040007f9, 0x0201f800, 0x00104125, + 0x80c589c0, 0x04020003, 0x0401ffc9, 0x0401f006, + 0x4a035014, 0x00000001, 0x0201f800, 0x00104092, + 0x0401f7fa, 0x1c01f000, 0x4202d800, 0x00000001, + 0x497b5038, 0x4a038805, 0x00000001, 0x497b282c, + 0x497b282d, 0x497b8885, 0x1c01f000, 0x59c4d005, + 0x8268d500, 0x000000c0, 0x04020003, 0x486b8885, + 0x0401f006, 0x59c4d006, 0x8268d540, 0x000000f1, + 0x486b8806, 0x0401ffed, 0x1c01f000, 0x0201f800, + 0x00104130, 0x80c589c0, 0x04000005, 0x59a8d013, + 0x82697480, 0x0000aaaa, 0x0400000c, 0x497b5013, + 0x59c4d006, 0x8268d540, 0x04000001, 0x486b8806, + 0x8d0e1d06, 0x04020008, 0x59c4d0a3, 0x8468d546, + 0x486b88a3, 0x0401f004, 0x4a03500f, 0x00ffffff, + 0x0401f7f3, 0x0401ffd5, 0x1c01f000, 0x809d3840, + 0x48813800, 0x0401ff87, 0x80c589c0, 0x04000005, + 0x4a035038, 0x00000003, 0x497b8885, 0x0401f08b, + 0x4a038805, 0x000000f0, 0x0201f800, 0x001015c8, + 0x80c589c0, 0x04000042, 0x0201f800, 0x001017bb, + 0x80c589c0, 0x04000048, 0x59a8d04b, 0x8c68d50c, + 0x0400005e, 0x0201f800, 0x001017bb, 0x80c589c0, + 0x0402000b, 0x4a03c014, 0x00200020, 0x59c4d001, + 0x8268d500, 0x00018000, 0x82697480, 0x00018000, + 0x0400005f, 0x4a03c013, 0x00200000, 0x0201f800, + 0x00104125, 0x80c589c0, 0x0402004a, 0x59c4d0a4, + 0x8268d500, 0x0000000f, 0x82697480, 0x00000008, + 0x0400002b, 0x59c4d005, 0x82690500, 0x04000000, + 0x8c68d534, 0x04020026, 0x5994d02c, 0x82697480, + 0x00000002, 0x83f17500, 0x03000000, 0x040007cf, + 0x0201f800, 0x00104130, 0x80c589c0, 0x040007cb, + 0x4a038805, 0x000000f0, 0x0201f800, 0x0010415e, + 0x4a035013, 0x0000aaaa, 0x48835014, 0x59c4d0a3, + 0x8468d546, 0x486b88a3, 0x4202d800, 0x00000001, + 0x48835038, 0x4a038805, 0x00000001, 0x4883282c, + 0x4883282d, 0x0401ff8e, 0x0401f7b8, 0x0201f800, + 0x001013cf, 0x80c589c0, 0x040007b4, 0x59a8d043, + 0x8068d1c0, 0x040007b1, 0x0401f7ae, 0x0401ff90, + 0x0401f7ae, 0x0201f800, 0x00101791, 0x80c589c0, + 0x040007b6, 0x0201f800, 0x0010179f, 0x80c589c0, + 0x04000022, 0x0201f800, 0x001013c4, 0x80c589c0, + 0x0400002a, 0x59a8d044, 0x42000000, 0xaabbccdd, + 0x80697480, 0x04000004, 0x82697480, 0x00000004, + 0x040207a6, 0x4a035038, 0x00000003, 0x0401f023, + 0x0401ff6b, 0x0401f021, 0x4200d000, 0x00009c0e, + 0x4200d800, 0xffffffef, 0x0201f800, 0x0010b3e0, + 0x4200d000, 0x00009c0e, 0x4200d800, 0x00000008, + 0x0201f800, 0x0010b3f2, 0x0401f797, 0x4a03c013, + 0x00200020, 0x0401f7a2, 0x0201f800, 0x001013a3, + 0x80c589c0, 0x0400000b, 0x59a8d044, 0x42000000, + 0xaabbccdd, 0x80697480, 0x040007e3, 0x8068d1c0, + 0x04020786, 0x0401f7e0, 0x59a8d044, 0x0401f7db, + 0x59a8d044, 0x0401f7fa, 0x589d0000, 0x809d3800, + 0x1c01f000, 0x497bc856, 0x4200d000, 0x00000080, + 0x0201f800, 0x001012d9, 0x497b5038, 0x0201f800, + 0x001013cf, 0x80c589c0, 0x0400000e, 0x59a8d036, + 0x8068d1c0, 0x04020008, 0x8068d1c0, 0x04020009, + 0x4a035036, 0x0000000a, 0x4a035043, 0x00000001, + 0x0401f004, 0x8068d040, 0x486b5036, 0x0401f7f7, + 0x497b8885, 0x0201f800, 0x001003ba, 0x1c01f000, + 0x4200e000, 0x00000003, 0x59a80038, 0x80717480, + 0x04001006, 0x0c01f001, 0x0010c546, 0x0010c548, + 0x0010c54a, 0x0010c544, 0x4200d000, 0x000000cb, + 0x4000d800, 0x0201f800, 0x001001e3, 0x0401f008, + 0x0401ffd5, 0x0401f006, 0x0401fddb, 0x0401f004, + 0x0401fee9, 0x0401f002, 0x0401ff39, 0x1c01f000, + 0x497b282d, 0x1c01f000, 0x0201f800, 0x00102ee2, + 0x80c589c0, 0x04000007, 0x599cd019, 0x8268d500, + 0x0000e000, 0x82697480, 0x00004000, 0x04000003, + 0x4178d000, 0x0401f024, 0x59c4d001, 0x8268d500, + 0x00018000, 0x82697480, 0x00010000, 0x040207f9, + 0x59a8d06c, 0x82697480, 0x00000002, 0x83f17500, + 0x03000000, 0x040007f3, 0x0201f800, 0x00101929, + 0x4a035043, 0x00000001, 0x4a035044, 0xaabbccdd, + 0x4a035037, 0x00000004, 0x497b5038, 0x4202d800, + 0x00000004, 0x59a8d06c, 0x8068d000, 0x486b506c, + 0x59a8d06b, 0x8268d500, 0xfffffff8, 0x8468d544, + 0x486b506b, 0x0201f800, 0x00100401, 0x4200d000, + 0x00000001, 0x40698800, 0x1c01f000, 0x59a8d017, + 0x82697480, 0x0000ffff, 0x04000004, 0x0201f800, + 0x0010b84b, 0x0401f0b5, 0x59a8da1b, 0x826cd500, + 0x00000028, 0x04000025, 0x8c6cdd00, 0x04000023, + 0x4a038802, 0x0000ffbf, 0x59a8da1b, 0x8c6cdd02, + 0x0400001e, 0x599ce018, 0x8c70e516, 0x04020012, + 0x59a8d01c, 0x82697480, 0x0000ffff, 0x0400000e, + 0x0201f800, 0x00101946, 0x59a8d21b, 0x8268dd00, + 0x00000004, 0x8c68d504, 0x0402005a, 0x406e5800, + 0x4200d000, 0x00000003, 0x0201f800, 0x00101969, + 0x0401f096, 0x8c70e516, 0x04020005, 0x59a8d01c, + 0x82697480, 0x0000ffff, 0x04000088, 0x59a8d01d, + 0x8068d1c0, 0x0402004b, 0x8c6cdd08, 0x0400004a, + 0x599cd019, 0x8c68d510, 0x0400004b, 0x0201f800, + 0x00103bbd, 0x80c589c0, 0x04020042, 0x599cd019, + 0x8c68d510, 0x04000004, 0x59a8d21b, 0x8c68d508, + 0x0402000a, 0x599cd018, 0x8c68d516, 0x0400005a, + 0x599cd017, 0x8c68d50a, 0x0402003e, 0x59a8d006, + 0x8c68d51c, 0x0402003b, 0x4a038802, 0x0000ffff, + 0x4200d000, 0x001094d7, 0x0201f800, 0x0010050d, + 0x4200d000, 0x001094e4, 0x0201f800, 0x0010050d, + 0x850e1d02, 0x4a01a8e4, 0x00000080, 0x4202d800, + 0x00000003, 0x4a035017, 0x0000ffff, 0x0201f800, + 0x001003e8, 0x4178d000, 0x0201f800, 0x001012d9, + 0x497b506c, 0x59a8d21b, 0x8c68d506, 0x04000042, + 0x599cd018, 0x8268e500, 0x00000800, 0x8c68d516, + 0x0402003a, 0x599cd019, 0x8c68d510, 0x04000004, + 0x59a8d21b, 0x8c68d508, 0x0402003e, 0x4200d000, + 0x0000ffff, 0x4200d800, 0x00000006, 0x4178e000, + 0x0201f800, 0x00102e2b, 0x0201f800, 0x00104130, + 0x80c589c0, 0x0400001a, 0x0201f800, 0x001054e2, + 0x0401f042, 0x59a8d016, 0x8068d1c0, 0x040007b8, + 0x0401f03e, 0x8c6cdd16, 0x040207b5, 0x0401f03b, + 0x4200b000, 0x000007f0, 0x417a8800, 0x0401f004, + 0x81468800, 0x8058b040, 0x040007c0, 0x0201f800, + 0x001039cf, 0x80c589c0, 0x040007fa, 0x5934d200, 0x8c68d51a, 0x040007f7, 0x0401f02c, 0x0201f800, - 0x001040d9, 0x80c589c0, 0x04000016, 0x59c4d006, - 0x8468d534, 0x486b8806, 0x0201f800, 0x00105456, - 0x0401f7da, 0x0201f800, 0x00103e5a, 0x80c589c0, - 0x040007e1, 0x0401f01d, 0x0201f800, 0x00102e73, - 0x0401f7cc, 0x0201f800, 0x001040d9, 0x80c589c0, - 0x040207b6, 0x59a8d21b, 0x486b541b, 0x0401f7b3, - 0x59c4d006, 0x8268d500, 0xffffff0f, 0x486b8806, - 0x0401f7ea, 0x4200d000, 0x000007fe, 0x4200d800, - 0x00000004, 0x0401f7b9, 0x8c6cdd04, 0x0402077b, - 0x826cd500, 0x00004000, 0x8c6cdd1c, 0x04020777, - 0x406a5800, 0x0401f76a, 0x1c01f000, 0x809d3840, + 0x0010410f, 0x80c589c0, 0x0400001b, 0x59c4d006, + 0x8468d534, 0x486b8806, 0x0201f800, 0x001054e2, + 0x0401f7e0, 0x0201f800, 0x00103e72, 0x80c589c0, + 0x040007a4, 0x0401f01d, 0x0201f800, 0x00102e77, + 0x0401f7d2, 0x0201f800, 0x0010410f, 0x80c589c0, + 0x040207bc, 0x59a8d21b, 0x486b541b, 0x0401f7b9, + 0x4200d000, 0x000007fe, 0x4200d800, 0x00000004, + 0x0401f7c4, 0x59c4d006, 0x8268d500, 0xffffff0f, + 0x486b8806, 0x0401f7e5, 0x8c6cdd04, 0x04020778, + 0x826cd500, 0x00004000, 0x8c6cdd1c, 0x04020774, + 0x406a5800, 0x0401f767, 0x1c01f000, 0x809d3840, 0x48813800, 0x59c4d00d, 0x8c68d51e, 0x04020004, 0x59c4d005, 0x8c68d500, 0x0400000c, 0x0201f800, - 0x001003fa, 0x0201f800, 0x001040d9, 0x80c589c0, - 0x0400000f, 0x0201f800, 0x0010405c, 0x816d7040, + 0x001003fa, 0x0201f800, 0x0010410f, 0x80c589c0, + 0x0400000f, 0x0201f800, 0x00104092, 0x816d7040, 0x040000a2, 0x0401f108, 0x4a035043, 0x00000001, - 0x4202d800, 0x00000004, 0x4200d000, 0x00109862, - 0x0201f800, 0x00108894, 0x0401f0ff, 0x0201f800, - 0x001040fa, 0x80c589c0, 0x0402008a, 0x0201f800, - 0x00103094, 0x59c4d0a4, 0x8268d500, 0x0000000f, + 0x4202d800, 0x00000004, 0x4200d000, 0x001098e2, + 0x0201f800, 0x0010895e, 0x0401f0ff, 0x0201f800, + 0x00104130, 0x80c589c0, 0x0402008a, 0x0201f800, + 0x001030a0, 0x59c4d0a4, 0x8268d500, 0x0000000f, 0x82697480, 0x00000006, 0x83f17500, 0x03000000, - 0x040007e9, 0x0201f800, 0x00104ed1, 0x59c4d0a3, + 0x040007e9, 0x0201f800, 0x00104f5d, 0x59c4d0a3, 0x8468d528, 0x486b88a3, 0x59a8d078, 0x8068d1c0, 0x040000a8, 0x59a8d015, 0x8468d546, 0x486b5015, - 0x0201f800, 0x001040e4, 0x80c589c0, 0x040200a8, + 0x0201f800, 0x0010411a, 0x80c589c0, 0x040200a8, 0x59c4d006, 0x8268d540, 0x440000f1, 0x486b8806, - 0x497b9005, 0x0401fed8, 0x80c589c0, 0x040207d2, + 0x497b9005, 0x0401fed5, 0x80c589c0, 0x040207d2, 0x4a038802, 0x0000ffff, 0x4a0378e4, 0x00003000, - 0x4200d000, 0x00109472, 0x5868d400, 0x8c68d508, + 0x4200d000, 0x001094f2, 0x5868d400, 0x8c68d508, 0x04020003, 0x4a01a8e4, 0x0000c000, 0x4200d000, - 0x0010973b, 0x0201f800, 0x00108894, 0x59a8d00f, - 0x4200d800, 0x00000003, 0x0201f800, 0x00105160, + 0x001097bb, 0x0201f800, 0x0010895e, 0x59a8d00f, + 0x4200d800, 0x00000003, 0x0201f800, 0x001051ec, 0x4200d000, 0x00008010, 0x59a8d809, 0x0201f800, - 0x00102db6, 0x59c4d001, 0x8268d500, 0x00018000, + 0x00102dba, 0x59c4d001, 0x8268d500, 0x00018000, 0x82697480, 0x00018000, 0x04000091, 0x59c4d0a3, 0x8468d518, 0x486b88a3, 0x59c8d015, 0x8468d548, - 0x486b9015, 0x0201f800, 0x00101568, 0x59a8d008, + 0x486b9015, 0x0201f800, 0x00101566, 0x59a8d008, 0x8468d500, 0x486b5008, 0x850e1d0a, 0x0201f800, - 0x0010c200, 0x0201f800, 0x001040d9, 0x80c589c0, + 0x0010c1ff, 0x0201f800, 0x0010410f, 0x80c589c0, 0x04020003, 0x8d0e1d06, 0x0402008e, 0x0201f800, - 0x00103baa, 0x80c589c0, 0x04000080, 0x59c4d002, + 0x00103bbd, 0x80c589c0, 0x04000080, 0x59c4d002, 0x8468d50c, 0x486b8802, 0x497b501d, 0x497b501c, - 0x497b5070, 0x0201f800, 0x001040d9, 0x80c589c0, - 0x04000067, 0x497b521b, 0x0201f800, 0x0010136e, + 0x497b5070, 0x0201f800, 0x0010410f, 0x80c589c0, + 0x04000067, 0x497b521b, 0x0201f800, 0x0010136c, 0x59a8d01f, 0x82680500, 0xffff0000, 0x80c4d540, 0x486b501f, 0x599cd017, 0x8c68d50a, 0x04000004, 0x59a8d21b, 0x8468d544, 0x486b521b, 0x4200d000, - 0x00000005, 0x0201f800, 0x001055eb, 0x497b501d, + 0x00000005, 0x0201f800, 0x00105677, 0x497b501d, 0x497b5016, 0x4a035017, 0x0000ffff, 0x4a01a8e4, 0x000000c0, 0x4202d800, 0x00000002, 0x0201f800, - 0x001040d9, 0x80c589c0, 0x04020007, 0x59a8d21b, + 0x0010410f, 0x80c589c0, 0x04020007, 0x59a8d21b, 0x8268d500, 0x0000000c, 0x82697480, 0x00000004, - 0x0400076d, 0x0201f800, 0x0010b83b, 0x0401f072, - 0x5994d02d, 0x42000000, 0x00103655, 0x80697480, + 0x0400076d, 0x0201f800, 0x0010b84b, 0x0401f072, + 0x5994d02d, 0x42000000, 0x00103661, 0x80697480, 0x0400002f, 0x59c4d006, 0x8268d540, 0x000000c0, 0x486b8806, 0x0401f76e, 0x59a8d011, 0x82697480, 0x00000009, 0x0402075c, 0x497b500f, 0x4a038893, 0x00000001, 0x4a038805, 0x000000f0, 0x0201f800, - 0x001040ef, 0x80c589c0, 0x04000034, 0x59c4d006, + 0x00104125, 0x80c589c0, 0x04000034, 0x59c4d006, 0x8268d540, 0x000000f1, 0x486b8806, 0x59c4d006, 0x8268d500, 0xbbffffff, 0x486b8806, 0x0201f800, - 0x00104ed1, 0x0201f800, 0x00105179, 0x0401fe4a, + 0x00104f5d, 0x0201f800, 0x00105205, 0x0401fe47, 0x40c50000, 0x80c589c0, 0x04020743, 0x4200d000, - 0x00109744, 0x0201f800, 0x00108894, 0x4883506f, + 0x001097c4, 0x0201f800, 0x0010895e, 0x4883506f, 0x4200d000, 0x00008030, 0x4080d800, 0x0401f780, - 0x0201f800, 0x001035a9, 0x0401f03f, 0x5994d02c, + 0x0201f800, 0x001035b5, 0x0401f03f, 0x5994d02c, 0x8068d1c0, 0x04020742, 0x0401f7cf, 0x59c4d006, 0x8268d540, 0x44000001, 0x486b8806, 0x59c4d006, 0x8268d500, 0xffffff0f, 0x0401f755, 0x59a8d01f, 0x8268d500, 0xffff0000, 0x486b501f, 0x0201f800, - 0x0010136e, 0x48c78880, 0x0401f79b, 0x59c4d0a3, + 0x0010136c, 0x48c78880, 0x0401f79b, 0x59c4d0a3, 0x8468d558, 0x0401f770, 0x59c4d006, 0x8268d540, - 0x440000f1, 0x0401f7d1, 0x0201f800, 0x001040d9, + 0x440000f1, 0x0401f7d1, 0x0201f800, 0x0010410f, 0x80c589c0, 0x0400000d, 0x59a8d018, 0x8068d1c0, - 0x0402077e, 0x0201f800, 0x0010737f, 0x0401f77b, + 0x0402077e, 0x0201f800, 0x00107415, 0x0401f77b, 0x4a03506f, 0x00000001, 0x850e1d0e, 0x0201f800, - 0x001031b2, 0x0401f014, 0x0201f800, 0x0010737f, + 0x001031be, 0x0401f014, 0x0201f800, 0x00107415, 0x59a8d21b, 0x8c68d506, 0x04020770, 0x59a8d018, 0x8068d1c0, 0x04020007, 0x59a8d41b, 0x8c68d508, 0x0400076a, 0x82697480, 0x0000ffff, 0x04000767, - 0x4a03541b, 0x0000ffff, 0x0201f800, 0x0010369f, + 0x4a03541b, 0x0000ffff, 0x0201f800, 0x001036ab, 0x0401f762, 0x589d0000, 0x809d3800, 0x1c01f000, 0x829d3c80, 0x00000005, 0x48813800, 0x48853801, 0x48893802, 0x488d3803, 0x48913804, 0x42011800, @@ -11264,7 +11317,7 @@ static const uint32_t isp_2500_risc_code[] = { 0x00000004, 0x00000005, 0x00000006, 0x00000007, 0x00000008, 0x00000009, 0x0000000a, 0x0000000b, 0x0000000c, 0x0000000d, 0x0000000e, 0x0000000f, - 0x4ffe73bb, 0x02800004, 0x00000000, 0x0000c000, + 0x01e5e2c1, 0x02800004, 0x00000000, 0x0000c000, 0x00000705, 0x073fca5a, 0x0705a5a5, 0x01928009, 0x070ff0e1, 0x03800006, 0x053f2aaa, 0x070aaaaa, 0x073f3aaa, 0x070aaaaa, 0x05958014, 0x05308000, @@ -11714,7 +11767,7 @@ static const uint32_t isp_2500_risc_code[] = { 0x050f80ff, 0x01202003, 0x073fa00a, 0x06000001, 0x07f00000, 0x05601041, 0x050f80ff, 0x032fa071, 0x028000cb, 0xd17e39c3, 0x02800004, 0x00000000, - 0x00008000, 0x000003e3, 0x033d0aaa, 0x070aaaaa, + 0x00008000, 0x000003ea, 0x033d0aaa, 0x070aaaaa, 0x013d1aaa, 0x070aaaaa, 0x050f801e, 0x012fa8d1, 0x050f801e, 0x043fa889, 0x0700000f, 0x03200005, 0x07420000, 0x050fb000, 0x050f801e, 0x073fa021, @@ -11728,16 +11781,16 @@ static const uint32_t isp_2500_risc_code[] = { 0x0380003a, 0x03e00000, 0x03800018, 0x04908031, 0x030160e1, 0x0380003c, 0x04908034, 0x030150e1, 0x0380003c, 0x04908037, 0x010140e1, 0x0380003c, - 0x060fc013, 0x07a003db, 0x03800018, 0x014940e4, + 0x060fc013, 0x07a003e2, 0x03800018, 0x014940e4, 0x00a18040, 0x03800021, 0x02681e0d, 0x050fb0ff, 0x04600875, 0x050f80ff, 0x053fa809, 0x06000001, 0x05488003, 0x0481804f, 0x0400800d, 0x0120d000, 0x013e4000, 0x05000200, 0x06009075, 0x04002076, - 0x06a003c7, 0x07c00000, 0x000170e3, 0x050fe017, + 0x06a003ce, 0x07c00000, 0x000170e3, 0x050fe017, 0x05878056, 0x0547f417, 0x0301f0ff, 0x01800147, 0x054bc417, 0x050fb0ff, 0x03640aff, 0x0482805e, 0x0179fe17, 0x070fffff, 0x030750ff, 0x01800281, - 0x050fd017, 0x07a003db, 0x0380001d, 0x00018098, + 0x050fd017, 0x07a003e2, 0x0380001d, 0x00018098, 0x07480018, 0x05818072, 0x05481018, 0x04818070, 0x05482018, 0x0481806e, 0x07483018, 0x0581806c, 0x002fb004, 0x02800073, 0x012fb003, 0x02800073, @@ -11760,7 +11813,7 @@ static const uint32_t isp_2500_risc_code[] = { 0x05a680d8, 0x038000a6, 0x0760127b, 0x050f80ff, 0x032fa009, 0x0744f000, 0x0760127b, 0x050f80ff, 0x032fa00a, 0x03800087, 0x052e400c, 0x040080fb, - 0x046aa108, 0x06009075, 0x04002076, 0x06a003c7, + 0x046aa108, 0x06009075, 0x04002076, 0x06a003ce, 0x038000a6, 0x04278001, 0x05482017, 0x078100cc, 0x068b00c2, 0x060ff086, 0x0349f0ff, 0x04818073, 0x07483017, 0x078100c9, 0x050fd0ff, 0x040fe07f, @@ -11780,14 +11833,14 @@ static const uint32_t isp_2500_risc_code[] = { 0x050f80ff, 0x032fa009, 0x0107e000, 0x070ff07e, 0x028000ef, 0x0307c000, 0x07c00000, 0x052e400c, 0x040080fb, 0x046aa108, 0x06009075, 0x04002076, - 0x028003c7, 0x040fd075, 0x050fd017, 0x060ff086, + 0x028003ce, 0x040fd075, 0x050fd017, 0x060ff086, 0x077800ff, 0x07000060, 0x037c00ff, 0x07000060, 0x0681810d, 0x06601875, 0x050f80ff, 0x073fa022, 0x0600003e, 0x052e400c, 0x04600875, 0x050f80ff, 0x053fa809, 0x06000001, 0x05488003, 0x04810123, 0x0400d0fb, 0x066a810d, 0x013e4000, 0x07000300, 0x03800021, 0x040080fb, 0x066a8108, 0x06009075, - 0x04002076, 0x06a003c7, 0x03800021, 0x0240007f, + 0x04002076, 0x06a003ce, 0x03800021, 0x0240007f, 0x0742007e, 0x050f807e, 0x032fa009, 0x050fe000, 0x02868143, 0x070ff07d, 0x055c047b, 0x04810138, 0x0760007d, 0x050f80ff, 0x032fa009, 0x050fe000, @@ -11795,7 +11848,7 @@ static const uint32_t isp_2500_risc_code[] = { 0x050f80ff, 0x032fa009, 0x03681e00, 0x0450041c, 0x0107e0ff, 0x050f80ff, 0x032fa009, 0x050fe000, 0x00860145, 0x0307c000, 0x07c00000, 0x040fd075, - 0x038003db, 0x0460081f, 0x050f80ff, 0x032fa039, + 0x038003e2, 0x0460081f, 0x050f80ff, 0x032fa039, 0x01021000, 0x03020005, 0x01018006, 0x01683e21, 0x00d0014f, 0x0180016f, 0x0180019a, 0x018001b7, 0x0080022f, 0x00800173, 0x0180016f, 0x0180016f, @@ -11805,7 +11858,7 @@ static const uint32_t isp_2500_risc_code[] = { 0x0180016f, 0x0180016f, 0x0180016f, 0x0180016f, 0x0180016f, 0x0180016f, 0x0180016f, 0x0180016f, 0x0180016f, 0x0180016f, 0x0180016f, 0x0180016f, - 0x0180016f, 0x050fd0ff, 0x07a003db, 0x03800018, + 0x0180016f, 0x050fd0ff, 0x07a003e2, 0x03800018, 0x0380001d, 0x01494021, 0x0781824b, 0x0400701f, 0x04a00279, 0x007a0101, 0x07060000, 0x07303000, 0x07008290, 0x03496021, 0x0681817f, 0x06006013, @@ -11841,7 +11894,7 @@ static const uint32_t isp_2500_risc_code[] = { 0x06780002, 0x07000003, 0x07818200, 0x06003001, 0x06000013, 0x04001013, 0x04004013, 0x06005013, 0x050f801e, 0x022fa032, 0x01800227, 0x040fd01f, - 0x07a003db, 0x03800018, 0x0379ff03, 0x070000ff, + 0x07a003e2, 0x03800018, 0x0379ff03, 0x070000ff, 0x04488002, 0x04810207, 0x070ff003, 0x04500408, 0x050080ff, 0x0379ff00, 0x070000ff, 0x06489002, 0x0481020e, 0x070ff000, 0x04500408, 0x050080ff, @@ -11870,7 +11923,7 @@ static const uint32_t isp_2500_risc_code[] = { 0x01860271, 0x03200006, 0x0760141b, 0x050f80ff, 0x073fa009, 0x06000001, 0x04008013, 0x0660181f, 0x050f80ff, 0x022fa04a, 0x00800175, 0x012080c0, - 0x0600901f, 0x05002021, 0x06a003c7, 0x01800172, + 0x0600901f, 0x05002021, 0x06a003ce, 0x01800172, 0x03200000, 0x06006075, 0x0180027b, 0x03200011, 0x0600601f, 0x05a002fa, 0x05600406, 0x050f80ff, 0x053fa809, 0x06000002, 0x07c00000, 0x04600875, @@ -11884,7 +11937,7 @@ static const uint32_t isp_2500_risc_code[] = { 0x018002f3, 0x072d0300, 0x039b829f, 0x018002f3, 0x072d0c00, 0x029b82a2, 0x018002f3, 0x033d0000, 0x07000003, 0x039b82a5, 0x018002f3, 0x040fd075, - 0x050fd078, 0x07a003db, 0x0380001d, 0x048b02ad, + 0x050fd078, 0x07a003e2, 0x0380001d, 0x048b02ad, 0x03385000, 0x07030000, 0x05600818, 0x050f80ff, 0x032fa009, 0x07f00000, 0x054b0400, 0x0308a0ff, 0x0179fe00, 0x070000ff, 0x010880ff, 0x0448b076, @@ -11903,349 +11956,353 @@ static const uint32_t isp_2500_risc_code[] = { 0x0008400e, 0x058b02eb, 0x03385000, 0x03010000, 0x04278001, 0x040fe07f, 0x008602f2, 0x038000d8, 0x07c00000, 0x00683e76, 0x048102f8, 0x0448d076, - 0x0781031e, 0x03800355, 0x07a003bb, 0x018002ac, + 0x06810325, 0x0380035c, 0x06a003c2, 0x018002ac, 0x01978305, 0x07602418, 0x050f80ff, 0x012fa809, 0x06780001, 0x070000ff, 0x075a0000, 0x070ff014, 0x0569feff, 0x054b08ff, 0x075a0000, 0x05600418, 0x050f80ff, 0x012fa809, 0x040fe007, 0x0186830c, - 0x01204000, 0x0280031a, 0x00700101, 0x03010000, - 0x06780001, 0x07ff0000, 0x076c00ff, 0x05818314, - 0x00700101, 0x03010000, 0x05600418, 0x050f80ff, - 0x012fa80a, 0x06780001, 0x07ff0000, 0x050040ff, - 0x0279ff01, 0x0700ffff, 0x05002014, 0x07c00000, - 0x04007075, 0x0448b076, 0x06810334, 0x03200011, - 0x06006075, 0x05a0027b, 0x007a0101, 0x07060000, - 0x07303000, 0x07008290, 0x02496076, 0x0481832c, - 0x06006013, 0x03800347, 0x02400010, 0x0681032c, - 0x06006010, 0x06603675, 0x050f80ff, 0x073fa00a, - 0x07000003, 0x03800347, 0x0600007a, 0x02493076, - 0x0481833d, 0x06602e75, 0x050f80ff, 0x032fa009, - 0x060ff07a, 0x05500400, 0x070000ff, 0x06473076, - 0x06602e75, 0x050f80ff, 0x032fa00a, 0x04a00276, - 0x007a0101, 0x03010000, 0x06303008, 0x05008000, - 0x0600600e, 0x072d0003, 0x019b8347, 0x050a4000, - 0x060a5001, 0x060a6002, 0x050a7003, 0x040a8004, - 0x070a9005, 0x050ae006, 0x053079a0, 0x0600000e, - 0x060a0007, 0x062d0002, 0x018002ac, 0x00683e76, - 0x076c0aff, 0x0781037d, 0x04007013, 0x03200011, - 0x06006075, 0x05a0027b, 0x007a0101, 0x03070000, - 0x04602c75, 0x050f80ff, 0x053fa809, 0x06000001, - 0x03499003, 0x07810369, 0x07303000, 0x07008890, - 0x053079a0, 0x0700000c, 0x0280036d, 0x07303000, - 0x04008980, 0x04307920, 0x0700000c, 0x074d0005, - 0x06006013, 0x072d0003, 0x019b836f, 0x050a4000, - 0x060a5001, 0x060a6002, 0x050a7003, 0x040a8004, - 0x070a9005, 0x050ae006, 0x007a0107, 0x06000020, - 0x060a0007, 0x062d0002, 0x018002ac, 0x06602e75, - 0x050f80ff, 0x032fa009, 0x060ff07a, 0x05500400, - 0x070000ff, 0x06473076, 0x06602e75, 0x050f80ff, - 0x032fa00a, 0x04007075, 0x04a00276, 0x007a0101, - 0x03010000, 0x06303008, 0x07008800, 0x074d0005, - 0x06600a75, 0x050f80ff, 0x073fa009, 0x07000003, - 0x07f00000, 0x054b0406, 0x045a0404, 0x050040ff, - 0x0600600e, 0x072d0003, 0x009b8397, 0x050a4000, - 0x060a5001, 0x060a6002, 0x050a7003, 0x040a8004, - 0x070a9005, 0x050ae006, 0x04307920, 0x0600000e, - 0x06307d20, 0x0600000e, 0x0648c076, 0x048183a8, - 0x04307920, 0x0600000e, 0x060a0007, 0x062d0002, - 0x018002ac, 0x072d0003, 0x009b83ab, 0x070ff0f6, - 0x03687eff, 0x048183ad, 0x050f2074, 0x060a0007, - 0x040070fb, 0x046a7007, 0x050f40ff, 0x062d0002, - 0x018002ac, 0x01208060, 0x0600901f, 0x05002021, - 0x028003c7, 0x040080fb, 0x066ae108, 0x06009075, - 0x04002076, 0x028003c7, 0x03201100, 0x058483c5, - 0x06420001, 0x048183c1, 0x038003de, 0x020e0008, - 0x07c00000, 0x050fd009, 0x040fd008, 0x03201100, - 0x048483ce, 0x06420001, 0x058183ca, 0x038003de, - 0x007a0102, 0x04000101, 0x05600809, 0x050f80ff, - 0x073fa00a, 0x06000001, 0x020e0008, 0x078403d8, - 0x030e0009, 0x07c00000, 0x01011009, 0x052e4300, - 0x07c00000, 0x052e400f, 0x01208090, 0x038003c0, - 0x070fc0ff, 0x040f8013, 0x032fa009, 0x038003e1, - 0xe466d97c, 0x02800004, 0x00000000, 0x0000a000, - 0x0000046c, 0x033d0aaa, 0x070aaaaa, 0x013d1aaa, - 0x070aaaaa, 0x008c02c8, 0x078e032b, 0x068d0337, - 0x038f0399, 0x02910013, 0x040f7029, 0x02860013, - 0x066c001f, 0x078103b4, 0x066c0a1f, 0x068103d6, - 0x040f702f, 0x0386001d, 0x06000010, 0x050fb000, - 0x066c0079, 0x05810412, 0x0398001d, 0x03400000, - 0x076c0a00, 0x04818016, 0x07960021, 0x05998021, - 0x06a0009e, 0x02800008, 0x050f7012, 0x07a682a3, - 0x04908008, 0x030150e1, 0x06780015, 0x07fffff0, - 0x06810064, 0x0079fe15, 0x031fffff, 0x030160ff, - 0x064bd415, 0x03d0002d, 0x01800155, 0x028000c2, - 0x03800035, 0x02800040, 0x0380004b, 0x03800056, - 0x02800076, 0x02800076, 0x040f7025, 0x01868039, - 0x02026016, 0x0280003d, 0x06600025, 0x050f80ff, - 0x073fa00a, 0x0600000b, 0x02025016, 0x02400029, - 0x03800078, 0x050f7021, 0x01868044, 0x00022016, - 0x03800048, 0x07600021, 0x050f80ff, 0x073fa00a, - 0x0600000b, 0x00021016, 0x02400029, 0x03800078, - 0x040f7023, 0x0086804f, 0x00024016, 0x03800053, - 0x06600023, 0x050f80ff, 0x073fa00a, 0x0600000b, - 0x02023016, 0x02400029, 0x03800078, 0x04600816, - 0x050f80ff, 0x012fa839, 0x06780004, 0x07ffff00, - 0x037c00ff, 0x05000700, 0x06810062, 0x0448e001, - 0x04818062, 0x07a000a9, 0x03800078, 0x040fd016, - 0x03800078, 0x0279f015, 0x07ffffff, 0x04818076, - 0x060ff015, 0x03d00069, 0x03800071, 0x02800073, + 0x01204000, 0x03800321, 0x05600e06, 0x050f80ff, + 0x073fa009, 0x06000002, 0x07f00000, 0x064d0004, + 0x00700104, 0x03010000, 0x06780004, 0x07ff0000, + 0x076c00ff, 0x0481831a, 0x00700104, 0x03010000, + 0x064d0004, 0x05600e06, 0x050f80ff, 0x073fa00a, + 0x06000002, 0x07f00000, 0x044b0804, 0x0279ff01, + 0x0700ffff, 0x05002014, 0x07c00000, 0x04007075, + 0x0448b076, 0x0681033b, 0x03200011, 0x06006075, + 0x05a0027b, 0x007a0101, 0x07060000, 0x07303000, + 0x07008290, 0x02496076, 0x05818333, 0x06006013, + 0x0380034e, 0x02400010, 0x07810333, 0x06006010, + 0x06603675, 0x050f80ff, 0x073fa00a, 0x07000003, + 0x0380034e, 0x0600007a, 0x02493076, 0x05818344, + 0x06602e75, 0x050f80ff, 0x032fa009, 0x060ff07a, + 0x05500400, 0x070000ff, 0x06473076, 0x06602e75, + 0x050f80ff, 0x032fa00a, 0x04a00276, 0x007a0101, + 0x03010000, 0x06303008, 0x05008000, 0x0600600e, + 0x072d0003, 0x019b834e, 0x050a4000, 0x060a5001, + 0x060a6002, 0x050a7003, 0x040a8004, 0x070a9005, + 0x050ae006, 0x053079a0, 0x0600000e, 0x060a0007, + 0x062d0002, 0x018002ac, 0x00683e76, 0x076c0aff, + 0x07810384, 0x04007013, 0x03200011, 0x06006075, + 0x05a0027b, 0x007a0101, 0x03070000, 0x04602c75, + 0x050f80ff, 0x053fa809, 0x06000001, 0x03499003, + 0x06810370, 0x07303000, 0x07008890, 0x053079a0, + 0x0700000c, 0x03800374, 0x07303000, 0x04008980, + 0x04307920, 0x0700000c, 0x074d0005, 0x06006013, + 0x072d0003, 0x009b8376, 0x050a4000, 0x060a5001, + 0x060a6002, 0x050a7003, 0x040a8004, 0x070a9005, + 0x050ae006, 0x007a0107, 0x06000020, 0x060a0007, + 0x062d0002, 0x018002ac, 0x06602e75, 0x050f80ff, + 0x032fa009, 0x060ff07a, 0x05500400, 0x070000ff, + 0x06473076, 0x06602e75, 0x050f80ff, 0x032fa00a, + 0x04007075, 0x04a00276, 0x007a0101, 0x03010000, + 0x06303008, 0x07008800, 0x074d0005, 0x06600a75, + 0x050f80ff, 0x073fa009, 0x07000003, 0x07f00000, + 0x054b0406, 0x045a0404, 0x050040ff, 0x0600600e, + 0x072d0003, 0x009b839e, 0x050a4000, 0x060a5001, + 0x060a6002, 0x050a7003, 0x040a8004, 0x070a9005, + 0x050ae006, 0x04307920, 0x0600000e, 0x06307d20, + 0x0600000e, 0x0648c076, 0x058183af, 0x04307920, + 0x0600000e, 0x060a0007, 0x062d0002, 0x018002ac, + 0x072d0003, 0x019b83b2, 0x070ff0f6, 0x03687eff, + 0x058183b4, 0x050f2074, 0x060a0007, 0x040070fb, + 0x046a7007, 0x050f40ff, 0x062d0002, 0x018002ac, + 0x01208060, 0x0600901f, 0x05002021, 0x028003ce, + 0x040080fb, 0x066ae108, 0x06009075, 0x04002076, + 0x028003ce, 0x03201100, 0x058483cc, 0x06420001, + 0x048183c8, 0x028003e5, 0x020e0008, 0x07c00000, + 0x050fd009, 0x040fd008, 0x03201100, 0x048483d5, + 0x06420001, 0x058183d1, 0x028003e5, 0x007a0102, + 0x04000101, 0x05600809, 0x050f80ff, 0x073fa00a, + 0x06000001, 0x020e0008, 0x068403df, 0x030e0009, + 0x07c00000, 0x01011009, 0x052e4300, 0x07c00000, + 0x052e400f, 0x01208090, 0x028003c7, 0x070fc0ff, + 0x040f8013, 0x032fa009, 0x038003e8, 0xb459e03b, + 0x02800004, 0x00000000, 0x0000a000, 0x00000475, + 0x033d0aaa, 0x070aaaaa, 0x013d1aaa, 0x070aaaaa, + 0x018c02d1, 0x068e0334, 0x068d0340, 0x028f03a2, + 0x02910013, 0x040f7029, 0x02860013, 0x066c001f, + 0x078103bd, 0x066c0a1f, 0x068103df, 0x040f702f, + 0x0386001d, 0x06000010, 0x050fb000, 0x066c0079, + 0x0581041b, 0x0398001d, 0x03400000, 0x076c0a00, + 0x04818016, 0x07960021, 0x05998021, 0x06a0009e, + 0x02800008, 0x050f7012, 0x07a682ac, 0x04908008, + 0x030150e1, 0x06780015, 0x07fffff0, 0x06810064, + 0x0079fe15, 0x031fffff, 0x030160ff, 0x064bd415, + 0x03d0002d, 0x01800155, 0x028000c2, 0x03800035, + 0x02800040, 0x0380004b, 0x03800056, 0x02800076, + 0x02800076, 0x040f7025, 0x01868039, 0x02026016, + 0x0280003d, 0x06600025, 0x050f80ff, 0x073fa00a, + 0x0600000b, 0x02025016, 0x02400029, 0x03800078, + 0x050f7021, 0x01868044, 0x00022016, 0x03800048, + 0x07600021, 0x050f80ff, 0x073fa00a, 0x0600000b, + 0x00021016, 0x02400029, 0x03800078, 0x040f7023, + 0x0086804f, 0x00024016, 0x03800053, 0x06600023, + 0x050f80ff, 0x073fa00a, 0x0600000b, 0x02023016, + 0x02400029, 0x03800078, 0x04600816, 0x050f80ff, + 0x012fa839, 0x06780004, 0x07ffff00, 0x037c00ff, + 0x05000700, 0x06810062, 0x0448e001, 0x04818062, + 0x07a000a9, 0x03800078, 0x040fd016, 0x03800078, + 0x0279f015, 0x07ffffff, 0x04818076, 0x060ff015, + 0x03d00069, 0x03800071, 0x02800073, 0x02800076, 0x02800076, 0x02800076, 0x02800076, 0x02800076, - 0x02800076, 0x02800076, 0x03e00000, 0x02800008, - 0x04908073, 0x010140e1, 0x03800078, 0x060fc010, - 0x04a00464, 0x02800008, 0x072e4800, 0x03016011, - 0x0186807e, 0x060fc010, 0x07c00000, 0x00011010, - 0x0647f016, 0x072d000c, 0x009b8080, 0x04600816, - 0x050f80ff, 0x012fa839, 0x0249f001, 0x04818097, - 0x06780004, 0x07ffff00, 0x037c00ff, 0x07000300, - 0x0481809b, 0x0448e001, 0x0481809b, 0x0079c101, - 0x07ffffff, 0x007a0b01, 0x03800000, 0x04600816, - 0x050f80ff, 0x012fa80a, 0x062d0008, 0x038000a9, - 0x062d0008, 0x00011016, 0x052e4c00, 0x07c00000, - 0x062d0008, 0x040fd016, 0x07c00000, 0x030160eb, - 0x0249f016, 0x0481807f, 0x04600816, 0x050f80ff, - 0x012fa839, 0x06783f01, 0x03800060, 0x007c0b01, - 0x03800000, 0x0581809c, 0x06601807, 0x070030ff, - 0x050f80ff, 0x012fa809, 0x050f8003, 0x073fa00a, - 0x0600000b, 0x040f7001, 0x038600b7, 0x04600201, - 0x050f80ff, 0x073fa00a, 0x0600000b, 0x07c00000, - 0x050f702e, 0x008680bc, 0x0002e016, 0x0202f016, - 0x028000c1, 0x0760002e, 0x050f80ff, 0x073fa00a, - 0x0600000b, 0x0002e016, 0x07c00000, 0x0430e004, - 0x03080000, 0x06601216, 0x050f80ff, 0x073fa011, - 0x07000005, 0x07f00000, 0x0660000b, 0x050f80ff, - 0x022fa019, 0x0700c000, 0x0279ff02, 0x0700ffff, - 0x00017002, 0x0760220a, 0x050f80ff, 0x012fa809, - 0x0079fe01, 0x0700ffff, 0x055c0417, 0x06818143, - 0x0400d010, 0x0548e00c, 0x078100db, 0x0245600e, - 0x07600a0a, 0x050f80ff, 0x032fa039, 0x02015002, - 0x064b0015, 0x0379ff03, 0x070000ff, 0x01018003, - 0x05420418, 0x048180e6, 0x0045700e, 0x0179fe06, - 0x070000ff, 0x0700f0ff, 0x04603216, 0x050f80ff, - 0x073fa012, 0x06000002, 0x0769ff00, 0x076c9000, - 0x048180f1, 0x0444b00e, 0x0368060f, 0x03d000f3, - 0x028000fd, 0x028000f8, 0x038000ff, 0x028000f7, - 0x00800143, 0x007a010e, 0x07001800, 0x076c3000, - 0x02a1823e, 0x07818128, 0x0220f002, 0x01800106, - 0x0120d081, 0x007a010e, 0x05001000, 0x076c3000, - 0x02a1823e, 0x07818128, 0x0220f004, 0x0548700c, - 0x05810109, 0x0644900d, 0x024a1815, 0x004a2c15, - 0x04500415, 0x070030ff, 0x0700000f, 0x017a0100, - 0x05004000, 0x0400100e, 0x05304000, 0x07000030, - 0x04002010, 0x0600500d, 0x0700600a, 0x0400700b, - 0x05008017, 0x06600616, 0x050f80ff, 0x022fa04a, - 0x0448b00e, 0x05818056, 0x050f7027, 0x03868121, - 0x00028016, 0x00800125, 0x07600027, 0x050f80ff, - 0x073fa00a, 0x0600000b, 0x00027016, 0x02400029, - 0x03800078, 0x040fd016, 0x050fd00a, 0x07600a0a, - 0x050f80ff, 0x032fa009, 0x05780100, 0x07ffff00, - 0x017a0700, 0x06000001, 0x050f80ff, 0x032fa00a, - 0x07f00000, 0x05600e0a, 0x050f80ff, 0x022fa019, - 0x05780100, 0x07ffff00, 0x076a0500, 0x00202001, - 0x0560200a, 0x050f80ff, 0x012fa809, 0x06003010, - 0x05600e0a, 0x050f80ff, 0x032fa022, 0x0180014d, - 0x050fd00a, 0x07600a0a, 0x050f80ff, 0x032fa009, - 0x0379ff00, 0x0380ffff, 0x0145b000, 0x07600a0a, - 0x050f80ff, 0x032fa00a, 0x07303000, 0x07000030, - 0x04600e16, 0x050f80ff, 0x053fa80a, 0x06000001, - 0x04a00292, 0x03800078, 0x06600616, 0x050f80ff, - 0x012fa841, 0x0079fe01, 0x070000ff, 0x070090ff, - 0x0500d006, 0x0600a007, 0x0400b008, 0x07600a0a, - 0x050f80ff, 0x032fa009, 0x0769ff00, 0x0660000b, - 0x050f80ff, 0x073fa009, 0x07000006, 0x07f00000, - 0x04602c16, 0x050f80ff, 0x053fa809, 0x0600000b, - 0x07479017, 0x056c0e09, 0x04810170, 0x076c0c09, - 0x02a18464, 0x0560160a, 0x050f80ff, 0x053fa809, - 0x06000007, 0x07f00000, 0x074b000f, 0x0368060f, - 0x01d00178, 0x0080017c, 0x008001da, 0x008001ae, - 0x018001f9, 0x0748f00f, 0x048101f7, 0x0530e042, - 0x02080002, 0x0578400f, 0x06000020, 0x017c40ff, - 0x06000020, 0x07818188, 0x0748500c, 0x05810188, - 0x03459017, 0x04602c16, 0x050f80ff, 0x053fa80a, - 0x0600000b, 0x0569800f, 0x06818194, 0x0548d00f, - 0x06818191, 0x0644a00e, 0x056c0e09, 0x0581019f, - 0x008001fb, 0x050010ff, 0x046c8001, 0x078181a3, - 0x056c0e09, 0x0581019f, 0x05601a0a, 0x050f80ff, - 0x012fa809, 0x04780101, 0x07ffff00, 0x048101fb, - 0x06300001, 0x04000410, 0x05a0020a, 0x03800035, - 0x026d0001, 0x058101a6, 0x018001f9, 0x0530e042, - 0x02080002, 0x04a00225, 0x078181f5, 0x07300003, - 0x05000430, 0x05a0020a, 0x03800056, 0x0630e445, - 0x02080002, 0x056c0e09, 0x068181fb, 0x0748f00f, - 0x058101bb, 0x0569800f, 0x078181f9, 0x0548d00f, - 0x078181bd, 0x007a010e, 0x06000010, 0x018001c3, - 0x0246a00e, 0x018001c3, 0x0246a00e, 0x0748500f, - 0x058101c3, 0x0748500c, 0x058101c3, 0x03459017, - 0x0349a017, 0x078181ca, 0x04602c16, 0x050f80ff, - 0x053fa80a, 0x0600000b, 0x018001d4, 0x0747a017, - 0x05001017, 0x05601c0a, 0x050f80ff, 0x073fa009, - 0x06000001, 0x07f00000, 0x04602c16, 0x050f80ff, - 0x012fa812, 0x04a00225, 0x078181f5, 0x07300003, - 0x05000430, 0x05a0020a, 0x03800056, 0x056c0e09, - 0x068181fb, 0x0430e001, 0x02080002, 0x0644000d, - 0x0748f00f, 0x058101eb, 0x0569800f, 0x078181f9, + 0x02800076, 0x03e00000, 0x02800008, 0x04908073, + 0x010140e1, 0x03800078, 0x060fc010, 0x04a0046d, + 0x02800008, 0x072e4800, 0x03016011, 0x0186807e, + 0x060fc010, 0x07c00000, 0x00011010, 0x0647f016, + 0x072d000c, 0x009b8080, 0x04600816, 0x050f80ff, + 0x012fa839, 0x0249f001, 0x04818097, 0x06780004, + 0x07ffff00, 0x037c00ff, 0x07000300, 0x0481809b, + 0x0448e001, 0x0481809b, 0x0079c101, 0x07ffffff, + 0x007a0b01, 0x03800000, 0x04600816, 0x050f80ff, + 0x012fa80a, 0x062d0008, 0x038000a9, 0x062d0008, + 0x00011016, 0x052e4c00, 0x07c00000, 0x062d0008, + 0x040fd016, 0x07c00000, 0x030160eb, 0x0249f016, + 0x0481807f, 0x04600816, 0x050f80ff, 0x012fa839, + 0x06783f01, 0x03800060, 0x007c0b01, 0x03800000, + 0x0581809c, 0x06601807, 0x070030ff, 0x050f80ff, + 0x012fa809, 0x050f8003, 0x073fa00a, 0x0600000b, + 0x040f7001, 0x038600b7, 0x04600201, 0x050f80ff, + 0x073fa00a, 0x0600000b, 0x07c00000, 0x050f702e, + 0x008680bc, 0x0002e016, 0x0202f016, 0x028000c1, + 0x0760002e, 0x050f80ff, 0x073fa00a, 0x0600000b, + 0x0002e016, 0x07c00000, 0x0430e004, 0x03080000, + 0x06601216, 0x050f80ff, 0x073fa011, 0x07000005, + 0x07f00000, 0x0660000b, 0x050f80ff, 0x022fa019, + 0x0700c000, 0x0279ff02, 0x0700ffff, 0x00017002, + 0x0760220a, 0x050f80ff, 0x012fa809, 0x0079fe01, + 0x0700ffff, 0x055c0417, 0x06818143, 0x0400d010, + 0x0548e00c, 0x078100db, 0x0245600e, 0x07600a0a, + 0x050f80ff, 0x032fa039, 0x02015002, 0x064b0015, + 0x0379ff03, 0x070000ff, 0x01018003, 0x05420418, + 0x048180e6, 0x0045700e, 0x0179fe06, 0x070000ff, + 0x0700f0ff, 0x04603216, 0x050f80ff, 0x073fa012, + 0x06000002, 0x0769ff00, 0x076c9000, 0x048180f1, + 0x0444b00e, 0x0368060f, 0x03d000f3, 0x028000fd, + 0x028000f8, 0x038000ff, 0x028000f7, 0x00800143, + 0x007a010e, 0x07001800, 0x076c3000, 0x03a18247, + 0x07818128, 0x0220f002, 0x01800106, 0x0120d081, + 0x007a010e, 0x05001000, 0x076c3000, 0x03a18247, + 0x07818128, 0x0220f004, 0x0548700c, 0x05810109, + 0x0644900d, 0x024a1815, 0x004a2c15, 0x04500415, + 0x070030ff, 0x0700000f, 0x017a0100, 0x05004000, + 0x0400100e, 0x05304000, 0x07000030, 0x04002010, + 0x0600500d, 0x0700600a, 0x0400700b, 0x05008017, + 0x06600616, 0x050f80ff, 0x022fa04a, 0x0448b00e, + 0x05818056, 0x050f7027, 0x03868121, 0x00028016, + 0x00800125, 0x07600027, 0x050f80ff, 0x073fa00a, + 0x0600000b, 0x00027016, 0x02400029, 0x03800078, + 0x040fd016, 0x050fd00a, 0x07600a0a, 0x050f80ff, + 0x032fa009, 0x05780100, 0x07ffff00, 0x017a0700, + 0x06000001, 0x050f80ff, 0x032fa00a, 0x07f00000, + 0x05600e0a, 0x050f80ff, 0x022fa019, 0x05780100, + 0x07ffff00, 0x076a0500, 0x00202001, 0x0560200a, + 0x050f80ff, 0x012fa809, 0x06003010, 0x05600e0a, + 0x050f80ff, 0x032fa022, 0x0180014d, 0x050fd00a, + 0x07600a0a, 0x050f80ff, 0x032fa009, 0x0379ff00, + 0x0380ffff, 0x0145b000, 0x07600a0a, 0x050f80ff, + 0x032fa00a, 0x07303000, 0x07000030, 0x04600e16, + 0x050f80ff, 0x053fa80a, 0x06000001, 0x04a0029b, + 0x03800078, 0x06600616, 0x050f80ff, 0x012fa841, + 0x0079fe01, 0x070000ff, 0x070090ff, 0x0500d006, + 0x0600a007, 0x0400b008, 0x07600a0a, 0x050f80ff, + 0x032fa009, 0x0769ff00, 0x0660000b, 0x050f80ff, + 0x073fa009, 0x07000006, 0x07f00000, 0x04602c16, + 0x050f80ff, 0x053fa809, 0x0600000b, 0x07479017, + 0x056c0e09, 0x04810170, 0x076c0c09, 0x02a1846d, + 0x0560160a, 0x050f80ff, 0x053fa809, 0x06000007, + 0x07f00000, 0x074b000f, 0x0368060f, 0x01d00178, + 0x0080017c, 0x008001da, 0x008001ae, 0x018001f9, + 0x0748f00f, 0x048101f7, 0x0530e042, 0x02080002, 0x0578400f, 0x06000020, 0x017c40ff, 0x06000020, - 0x078181eb, 0x0748500c, 0x058101eb, 0x03459017, + 0x07818188, 0x0748500c, 0x05810188, 0x03459017, 0x04602c16, 0x050f80ff, 0x053fa80a, 0x0600000b, - 0x04a00225, 0x078181f5, 0x06300004, 0x04000420, - 0x05a0020a, 0x03800035, 0x02200010, 0x018001fc, - 0x02200001, 0x018001fc, 0x03200006, 0x018001fc, - 0x02200004, 0x040fd016, 0x050fd00a, 0x050fd000, - 0x05600e0a, 0x050f80ff, 0x032fa00a, 0x07303000, - 0x07000060, 0x04600e16, 0x050f80ff, 0x053fa80a, - 0x06000001, 0x04a00292, 0x03800078, 0x05600e0a, - 0x050f80ff, 0x053fa809, 0x06000001, 0x07f00000, - 0x074b0003, 0x034a1803, 0x014a2c03, 0x05500403, - 0x070030ff, 0x0400100e, 0x04002010, 0x05304000, - 0x07000060, 0x0600500d, 0x0700600a, 0x0400700b, + 0x0569800f, 0x06818194, 0x0548d00f, 0x06818191, + 0x0644a00e, 0x056c0e09, 0x0581019f, 0x008001fb, + 0x050010ff, 0x046c8001, 0x078181a3, 0x056c0e09, + 0x0581019f, 0x05601a0a, 0x050f80ff, 0x012fa809, + 0x04780101, 0x07ffff00, 0x048101fb, 0x06300001, + 0x04000410, 0x05a00211, 0x03800035, 0x026d0001, + 0x058101a6, 0x018001f9, 0x0530e042, 0x02080002, + 0x05a0022e, 0x078181f5, 0x07300003, 0x05000430, + 0x05a00211, 0x03800056, 0x0630e445, 0x02080002, + 0x056c0e09, 0x068181fb, 0x0748f00f, 0x058101bb, + 0x0569800f, 0x078181f9, 0x0548d00f, 0x078181bd, + 0x007a010e, 0x06000010, 0x018001c3, 0x0246a00e, + 0x018001c3, 0x0246a00e, 0x0748500f, 0x058101c3, + 0x0748500c, 0x058101c3, 0x03459017, 0x0349a017, + 0x078181ca, 0x04602c16, 0x050f80ff, 0x053fa80a, + 0x0600000b, 0x018001d4, 0x0747a017, 0x05001017, + 0x05601c0a, 0x050f80ff, 0x073fa009, 0x06000001, + 0x07f00000, 0x04602c16, 0x050f80ff, 0x012fa812, + 0x05a0022e, 0x078181f5, 0x07300003, 0x05000430, + 0x05a00211, 0x03800056, 0x056c0e09, 0x068181fb, + 0x0430e001, 0x02080002, 0x0644000d, 0x0748f00f, + 0x058101eb, 0x0569800f, 0x078181f9, 0x0578400f, + 0x06000020, 0x017c40ff, 0x06000020, 0x078181eb, + 0x0748500c, 0x058101eb, 0x03459017, 0x04602c16, + 0x050f80ff, 0x053fa80a, 0x0600000b, 0x05a0022e, + 0x078181f5, 0x06300004, 0x04000420, 0x05a00211, + 0x03800035, 0x02200010, 0x018001fc, 0x02200001, + 0x018001fc, 0x03200006, 0x018001fc, 0x02200004, + 0x040fd016, 0x050fd00a, 0x050fd000, 0x05600e0a, + 0x050f80ff, 0x032fa00a, 0x07f00000, 0x04600e16, + 0x050f80ff, 0x053fa809, 0x06000001, 0x05780103, + 0x070000ff, 0x017a0103, 0x07000600, 0x04600e16, + 0x050f80ff, 0x053fa80a, 0x06000001, 0x04a0029b, + 0x03800078, 0x05600e0a, 0x050f80ff, 0x053fa809, + 0x06000001, 0x07f00000, 0x074b0003, 0x034a1803, + 0x014a2c03, 0x05500403, 0x070030ff, 0x0400100e, + 0x04002010, 0x04600e16, 0x050f80ff, 0x073fa009, + 0x06000002, 0x0600500d, 0x0700600a, 0x0400700b, 0x0460040b, 0x050f80ff, 0x073fa009, 0x06000004, 0x0279ff08, 0x0700ffff, 0x06600616, 0x050f80ff, 0x022fa04a, 0x07c00000, 0x03681e00, 0x070090ff, - 0x076c2400, 0x0681823b, 0x05601c0a, 0x050f80ff, + 0x076c2400, 0x07818244, 0x05601c0a, 0x050f80ff, 0x043fa819, 0x06000002, 0x05008005, 0x0500100a, - 0x06780007, 0x07ffff00, 0x05810233, 0x0245500e, + 0x06780007, 0x07ffff00, 0x0581023c, 0x0245500e, 0x0560100a, 0x050f80ff, 0x053fa809, 0x06000001, - 0x0379ff03, 0x070000ff, 0x01018003, 0x0180024e, - 0x040fd016, 0x050fd00a, 0x00800464, 0x0447400e, - 0x03681e00, 0x070090ff, 0x076c3000, 0x05810248, - 0x076c9000, 0x05810248, 0x040fd016, 0x050fd00a, - 0x00800464, 0x0500100a, 0x0560200a, 0x050f80ff, - 0x053fa809, 0x07000003, 0x04008010, 0x05a00256, - 0x07818255, 0x07003018, 0x06601816, 0x050f80ff, + 0x0379ff03, 0x070000ff, 0x01018003, 0x00800257, + 0x040fd016, 0x050fd00a, 0x0080046d, 0x0447400e, + 0x03681e00, 0x070090ff, 0x076c3000, 0x04810251, + 0x076c9000, 0x04810251, 0x040fd016, 0x050fd00a, + 0x0080046d, 0x0500100a, 0x0560200a, 0x050f80ff, + 0x053fa809, 0x07000003, 0x04008010, 0x05a0025f, + 0x0681825e, 0x07003018, 0x06601816, 0x050f80ff, 0x022fa04a, 0x075c00ff, 0x07c00000, 0x070ff009, 0x0550041b, 0x050f80ff, 0x073fa009, 0x06000001, - 0x05a0026a, 0x06818268, 0x060ff001, 0x05500400, + 0x04a00273, 0x07818271, 0x060ff001, 0x05500400, 0x050f80ff, 0x063fa019, 0x06000002, 0x07f00000, - 0x07420018, 0x05810269, 0x02400002, 0x05a0026a, - 0x05810269, 0x056a02ff, 0x07c00000, 0x070ff01d, - 0x00540402, 0x00d0026d, 0x00800273, 0x00800275, - 0x01800277, 0x00800279, 0x0180027b, 0x0180027d, - 0x03200006, 0x01800290, 0x03200009, 0x01800290, - 0x0320000c, 0x01800290, 0x0320000f, 0x01800290, - 0x03200012, 0x01800290, 0x04600201, 0x050f80ff, - 0x012fa809, 0x040f7001, 0x0086028c, 0x06600a01, + 0x07420018, 0x05810272, 0x02400002, 0x04a00273, + 0x05810272, 0x056a02ff, 0x07c00000, 0x070ff01d, + 0x00540402, 0x00d00276, 0x0080027c, 0x0180027e, + 0x00800280, 0x01800282, 0x01800284, 0x00800286, + 0x03200006, 0x01800299, 0x03200009, 0x01800299, + 0x0320000c, 0x01800299, 0x0320000f, 0x01800299, + 0x03200012, 0x01800299, 0x04600201, 0x050f80ff, + 0x012fa809, 0x040f7001, 0x01860295, 0x06600a01, 0x050f80ff, 0x073fa009, 0x06000001, 0x02681e02, 0x0550041b, 0x050f80ff, 0x073fa009, 0x06000001, - 0x0180026a, 0x040fd016, 0x040fd002, 0x056a02ff, - 0x00800291, 0x075c00ff, 0x07c00000, 0x050f7012, - 0x01860299, 0x06600013, 0x050f80ff, 0x073fa00a, + 0x00800273, 0x040fd016, 0x040fd002, 0x056a02ff, + 0x0180029a, 0x075c00ff, 0x07c00000, 0x050f7012, + 0x008602a2, 0x06600013, 0x050f80ff, 0x073fa00a, 0x0600000b, 0x07c00000, 0x070ff0e2, 0x077800ff, - 0x033e0000, 0x077400ff, 0x031a0000, 0x058202be, - 0x058102be, 0x00012016, 0x02013016, 0x07c00000, + 0x033e0000, 0x077400ff, 0x031a0000, 0x048202c7, + 0x048102c7, 0x00012016, 0x02013016, 0x07c00000, 0x070ff0e2, 0x077800ff, 0x033e0000, 0x077400ff, - 0x031a0000, 0x048202ab, 0x048102ab, 0x07c00000, + 0x031a0000, 0x058202b4, 0x058102b4, 0x07c00000, 0x03016012, 0x06600016, 0x050f80ff, 0x032fa009, 0x07f00000, 0x06600016, 0x050f80ff, 0x073fa00a, - 0x06000008, 0x050f7000, 0x018602b8, 0x01012000, - 0x008002ba, 0x00012010, 0x02013010, 0x04600816, + 0x06000008, 0x050f7000, 0x008602c1, 0x01012000, + 0x018002c3, 0x00012010, 0x02013010, 0x04600816, 0x050f80ff, 0x073fa009, 0x06000007, 0x0647f00e, 0x007a010e, 0x04000101, 0x04600816, 0x050f80ff, 0x073fa00a, 0x06000007, 0x072e0030, 0x020e0016, 0x07c00000, 0x0391000a, 0x0784001d, 0x022c0004, - 0x046c041f, 0x058102db, 0x046c021f, 0x058102f3, - 0x046c081f, 0x07810305, 0x066c061f, 0x0681031f, + 0x046c041f, 0x058102e4, 0x046c021f, 0x058102fc, + 0x046c081f, 0x0681030e, 0x066c061f, 0x07810328, 0x0721f000, 0x0202c010, 0x0202a010, 0x02020010, - 0x052e5800, 0x02b60079, 0x068d0337, 0x0380000c, - 0x040f702a, 0x018602d4, 0x06000010, 0x04001010, + 0x052e5800, 0x02b60079, 0x068d0340, 0x0380000c, + 0x040f702a, 0x018602dd, 0x06000010, 0x04001010, 0x0760122b, 0x050f80ff, 0x032fa012, 0x07f00000, 0x06420029, 0x0660002a, 0x050f80ff, 0x053fa809, - 0x06000001, 0x050f7003, 0x018602f0, 0x01028003, + 0x06000001, 0x050f7003, 0x018602f9, 0x01028003, 0x0660002a, 0x050f80ff, 0x073fa00a, 0x06000008, - 0x02800320, 0x00028010, 0x00027010, 0x02800320, - 0x040f702a, 0x008602d3, 0x06420029, 0x0660002a, + 0x02800329, 0x00028010, 0x00027010, 0x02800329, + 0x040f702a, 0x008602dc, 0x06420029, 0x0660002a, 0x050f80ff, 0x053fa809, 0x06000001, 0x050f7003, - 0x02860302, 0x03026003, 0x0660002a, 0x050f80ff, - 0x073fa00a, 0x06000008, 0x02800320, 0x02026010, - 0x02025010, 0x02800320, 0x040f702a, 0x008602d3, + 0x0286030b, 0x03026003, 0x0660002a, 0x050f80ff, + 0x073fa00a, 0x06000008, 0x02800329, 0x02026010, + 0x02025010, 0x02800329, 0x040f702a, 0x008602dc, 0x06420029, 0x0660002a, 0x050f80ff, 0x053fa809, - 0x06000001, 0x050f7003, 0x03860314, 0x01022003, + 0x06000001, 0x050f7003, 0x0386031d, 0x01022003, 0x0660002a, 0x050f80ff, 0x073fa00a, 0x06000008, - 0x02800316, 0x00022010, 0x00021010, 0x0647f020, - 0x007a0120, 0x04000101, 0x07a003a5, 0x0400802a, - 0x04a00449, 0x029482d3, 0x0721f005, 0x018002d4, - 0x008002d9, 0x0647f020, 0x06486020, 0x04818325, - 0x07a003a5, 0x008002d3, 0x007a0120, 0x04000101, - 0x07a003a5, 0x0400802a, 0x04a00449, 0x008002d3, + 0x0280031f, 0x00022010, 0x00021010, 0x0647f020, + 0x007a0120, 0x04000101, 0x06a003ae, 0x0400802a, + 0x04a00452, 0x029482dc, 0x0721f005, 0x018002dd, + 0x018002e2, 0x0647f020, 0x06486020, 0x0581832e, + 0x06a003ae, 0x008002dc, 0x007a0120, 0x04000101, + 0x06a003ae, 0x0400802a, 0x04a00452, 0x008002dc, 0x0391000a, 0x070ff0e2, 0x077800ff, 0x033e0000, - 0x077400ff, 0x031a0000, 0x068282d9, 0x040fd02a, - 0x052e4003, 0x00208010, 0x04a00449, 0x008002d9, - 0x0784001d, 0x030150c0, 0x0448e015, 0x05818365, - 0x0648f015, 0x0481835d, 0x02490015, 0x05818355, - 0x00491015, 0x0581834d, 0x00492015, 0x06810397, - 0x033d0000, 0x07000003, 0x009b8397, 0x033d0000, + 0x077400ff, 0x031a0000, 0x078282e2, 0x040fd02a, + 0x052e4003, 0x00208010, 0x04a00452, 0x018002e2, + 0x0784001d, 0x030150c0, 0x0448e015, 0x0481836e, + 0x0648f015, 0x05818366, 0x02490015, 0x0481835e, + 0x00491015, 0x05818356, 0x00492015, 0x078103a0, + 0x033d0000, 0x07000003, 0x019b83a0, 0x033d0000, 0x06000002, 0x073c0000, 0x06000040, 0x052e5200, - 0x02200004, 0x0380036c, 0x072d0c00, 0x019b8341, + 0x02200004, 0x02800375, 0x072d0c00, 0x009b834a, 0x052d0800, 0x073c0000, 0x06000020, 0x062e5080, - 0x03200003, 0x0380036c, 0x072d0300, 0x019b833f, + 0x03200003, 0x02800375, 0x072d0300, 0x019b8348, 0x052d0200, 0x073c0000, 0x06000010, 0x062e5020, - 0x02200002, 0x0380036c, 0x072d00c0, 0x009b833d, + 0x02200002, 0x02800375, 0x072d00c0, 0x009b8346, 0x062d0080, 0x073c0000, 0x06000008, 0x062e5008, - 0x02200001, 0x0380036c, 0x072d0030, 0x009b833b, + 0x02200001, 0x02800375, 0x072d0030, 0x019b8344, 0x062d0020, 0x073c0000, 0x06000004, 0x062e5002, 0x06000010, 0x0784001d, 0x0392000c, 0x050fb000, - 0x040f707c, 0x03860393, 0x046c0279, 0x0581837d, - 0x0448b07a, 0x07810384, 0x06000010, 0x04001010, + 0x040f707c, 0x0386039c, 0x046c0279, 0x04818386, + 0x0448b07a, 0x0781038d, 0x06000010, 0x04001010, 0x0760127b, 0x050f80ff, 0x032fa012, 0x0046b07a, - 0x02b60079, 0x03800387, 0x066c0079, 0x07810382, - 0x040fd07c, 0x04a00464, 0x02800008, 0x040fd07c, - 0x03800387, 0x0045207a, 0x0279ff7a, 0x07ffd7ff, - 0x0007d010, 0x0647f07a, 0x0648607a, 0x0581838d, - 0x06a003ab, 0x03800393, 0x007a017a, 0x04000101, - 0x06a003ab, 0x0400807c, 0x0245f008, 0x04a00449, + 0x02b60079, 0x03800390, 0x066c0079, 0x0781038b, + 0x040fd07c, 0x04a0046d, 0x02800008, 0x040fd07c, + 0x03800390, 0x0045207a, 0x0279ff7a, 0x07ffd7ff, + 0x0007d010, 0x0647f07a, 0x0648607a, 0x05818396, + 0x07a003b4, 0x0380039c, 0x007a017a, 0x04000101, + 0x07a003b4, 0x0400807c, 0x0245f008, 0x04a00452, 0x07279000, 0x0007e010, 0x0207c010, 0x0207a010, - 0x008c02c8, 0x0380000c, 0x0392000c, 0x070ff0e2, + 0x018c02d1, 0x0380000c, 0x0392000c, 0x070ff0e2, 0x077800ff, 0x033e0000, 0x077400ff, 0x031a0000, - 0x04828397, 0x070fc0ff, 0x052e400c, 0x00208020, - 0x04a00449, 0x02800397, 0x06000020, 0x05001014, + 0x058283a0, 0x070fc0ff, 0x052e400c, 0x00208020, + 0x04a00452, 0x038003a0, 0x06000020, 0x05001014, 0x0460082a, 0x050f80ff, 0x032fa012, 0x07c00000, 0x0600007a, 0x040010a2, 0x044b0801, 0x070ff014, 0x065a0001, 0x0460087c, 0x050f80ff, 0x032fa012, - 0x07c00000, 0x050f7022, 0x038603c3, 0x070ff0e2, + 0x07c00000, 0x050f7022, 0x038603cc, 0x070ff0e2, 0x077800ff, 0x033e0000, 0x077400ff, 0x031a0000, - 0x04828013, 0x0302a022, 0x04a00404, 0x04488020, - 0x078103e7, 0x040fd02a, 0x0202a010, 0x02020010, - 0x040f7026, 0x038603d1, 0x0202a026, 0x04a00404, - 0x04488020, 0x048183cd, 0x0621f001, 0x00683e20, - 0x058183f9, 0x038003e8, 0x040fd02a, 0x0202a010, - 0x0002b010, 0x02020010, 0x050f7028, 0x00860401, - 0x0621f002, 0x0302a028, 0x028003f8, 0x070ff0e2, + 0x04828013, 0x0302a022, 0x04a0040d, 0x04488020, + 0x078103f0, 0x040fd02a, 0x0202a010, 0x02020010, + 0x040f7026, 0x028603da, 0x0202a026, 0x04a0040d, + 0x04488020, 0x048183d6, 0x0621f001, 0x00683e20, + 0x06818402, 0x028003f1, 0x040fd02a, 0x0202a010, + 0x0002b010, 0x02020010, 0x050f7028, 0x0186040a, + 0x0621f002, 0x0302a028, 0x00800401, 0x070ff0e2, 0x077800ff, 0x033e0000, 0x077400ff, 0x031a0000, - 0x04828013, 0x050f7022, 0x00860401, 0x0302a022, - 0x04a00404, 0x04488020, 0x078103e7, 0x040fd02a, - 0x0202a010, 0x0002b010, 0x02020010, 0x00800401, + 0x04828013, 0x050f7022, 0x0186040a, 0x0302a022, + 0x04a0040d, 0x04488020, 0x078103f0, 0x040fd02a, + 0x0202a010, 0x0002b010, 0x02020010, 0x0180040a, 0x0621f004, 0x070ff0e2, 0x077800ff, 0x033e0000, - 0x077400ff, 0x031a0000, 0x058283f3, 0x01208060, - 0x0600902a, 0x04002020, 0x05a00450, 0x00800401, + 0x077400ff, 0x031a0000, 0x058283fc, 0x01208060, + 0x0600902a, 0x04002020, 0x05a00459, 0x0180040a, 0x0202a010, 0x02020010, 0x0002b010, 0x0721f000, - 0x00800401, 0x04a00404, 0x0400102a, 0x0245f001, - 0x05a0040a, 0x050f801e, 0x0320000a, 0x022017d0, - 0x032fa012, 0x072e5c00, 0x008c02c8, 0x068d0337, + 0x0180040a, 0x04a0040d, 0x0400102a, 0x0245f001, + 0x04a00413, 0x050f801e, 0x0320000a, 0x022017d0, + 0x032fa012, 0x072e5c00, 0x018c02d1, 0x068d0340, 0x02800013, 0x0460082a, 0x050f80ff, 0x022fa031, 0x03020000, 0x0102b005, 0x07c00000, 0x01200100, - 0x049a040e, 0x060f0001, 0x07c00000, 0x07420000, - 0x0681840b, 0x060fc010, 0x00800464, 0x0392001d, + 0x059a0417, 0x060f0001, 0x07c00000, 0x07420000, + 0x07818414, 0x060fc010, 0x0080046d, 0x0392001d, 0x0207c02f, 0x0460087c, 0x050f80ff, 0x032fa039, 0x0307a000, 0x0107b005, 0x0307f006, 0x0660007c, 0x050020ff, 0x050f80ff, 0x032fa011, 0x0302f000, - 0x0286842a, 0x0202f001, 0x03868428, 0x0002e010, + 0x03868433, 0x0202f001, 0x02868431, 0x0002e010, 0x0660187f, 0x050f80ff, 0x073fa00a, 0x06000008, - 0x01800430, 0x0002e001, 0x01800430, 0x040f7001, - 0x00860423, 0x0760002e, 0x050f80ff, 0x012fa80a, + 0x01800439, 0x0002e001, 0x01800439, 0x040f7001, + 0x0086042c, 0x0760002e, 0x050f80ff, 0x012fa80a, 0x0002e001, 0x06000010, 0x04001010, 0x040f8002, 0x032fa012, 0x06279001, 0x0400107c, 0x060ff0fb, - 0x054bc8ff, 0x065a0001, 0x05a0040a, 0x0320000a, + 0x054bc8ff, 0x065a0001, 0x04a00413, 0x0320000a, 0x022011f4, 0x00202004, 0x06003010, 0x0249507a, - 0x05810441, 0x0020200e, 0x050f8078, 0x032fa022, - 0x030e5077, 0x008c02c8, 0x068d0337, 0x040f702f, - 0x00868013, 0x0380001d, 0x03201100, 0x0784844e, - 0x06420001, 0x0681844a, 0x00800467, 0x020e0008, + 0x0481044a, 0x0020200e, 0x050f8078, 0x032fa022, + 0x030e5077, 0x018c02d1, 0x068d0340, 0x040f702f, + 0x00868013, 0x0380001d, 0x03201100, 0x06848457, + 0x06420001, 0x07818453, 0x00800470, 0x020e0008, 0x07c00000, 0x050fd009, 0x040fd008, 0x03201100, - 0x06848457, 0x06420001, 0x07818453, 0x00800467, + 0x07848460, 0x06420001, 0x0781845c, 0x00800470, 0x007a0102, 0x04000101, 0x05600809, 0x050f80ff, - 0x073fa00a, 0x06000001, 0x020e0008, 0x06848462, - 0x06420001, 0x0681845e, 0x00800467, 0x030e0009, - 0x07c00000, 0x052e400f, 0x00208040, 0x00800449, - 0x070fc0ff, 0x040f8010, 0x032fa009, 0x0180046a, - 0x2902a276, 0x00000000, 0x00000000, 0x0000400e, + 0x073fa00a, 0x06000001, 0x020e0008, 0x0684846b, + 0x06420001, 0x06818467, 0x00800470, 0x030e0009, + 0x07c00000, 0x052e400f, 0x00208040, 0x00800452, + 0x070fc0ff, 0x040f8010, 0x032fa009, 0x00800473, + 0xf6229e3f, 0x00000000, 0x00000000, 0x0000400e, 0x00000808, 0x00000803, 0x00011f0f, 0x02080b02, 0xe6e5610b, 0x7f04e630, 0x7f028001, 0x30e2e500, 0x017e04e4, 0x007e0280, 0x08605fee, 0xe4f7f953, @@ -12759,7 +12816,7 @@ static const uint32_t isp_2500_risc_code[] = { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000f1f01, 0xc3002003, 0xb9f6ad13, - 0xffffb7ea, 0xffeef3ba + 0xffffb7ea, 0xffeef3a2 }; #endif #ifdef ISP_2500_MULTI @@ -12770,25 +12827,22 @@ static const uint32_t isp_2500_risc_code[] = { * * * ******************************************************************** * */ -/* - * Firmware Version 5.04.00 (12:37 Jul 02, 2010) - */ static const uint32_t isp_2500_multi_risc_code[] = { - 0x0501f042, 0x00111000, 0x00100000, 0x0000a29b, - 0x00000005, 0x00000004, 0x00000000, 0x00000095, + 0x0501f042, 0x00111000, 0x00100000, 0x0000a562, + 0x00000005, 0x00000005, 0x00000000, 0x00009095, 0x00000004, 0x00000000, 0x20434f50, 0x59524947, 0x48542032, 0x30303720, 0x514c4f47, 0x49432043, 0x4f52504f, 0x52415449, 0x4f4e2020, 0x20495350, 0x32357878, 0x20466972, 0x6d776172, 0x65202020, - 0x56657273, 0x696f6e20, 0x2020352e, 0x30342e30, + 0x56657273, 0x696f6e20, 0x2020352e, 0x30352e30, 0x30202024, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00100000, 0x00100000, - 0x0000a29b, 0xffffffff, 0x00111004, 0x00020000, - 0x00000d9e, 0xffffffff, 0x00111da2, 0x0010e300, - 0x00001ae9, 0xffffffff, 0x0011388b, 0x0000c000, - 0x0000093b, 0x00ffffff, 0x001141c6, 0x00008000, - 0x00000599, 0x00ffffff, 0x0011475f, 0x0000a000, - 0x0000059b, 0x00ffffff, 0x00114cfa, 0x0000400e, + 0x0000a562, 0xffffffff, 0x00111004, 0x00020000, + 0x00000d9e, 0xffffffff, 0x00111da2, 0x0010e500, + 0x00001b0f, 0xffffffff, 0x001138b1, 0x0000c000, + 0x0000093b, 0x00ffffff, 0x001141ec, 0x00008000, + 0x000005a0, 0x00ffffff, 0x0011478c, 0x0000a000, + 0x000005a3, 0x00ffffff, 0x00114d2f, 0x0000400e, 0x00000808, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x4203f000, 0x00021fff, 0x40000000, 0x4203e000, 0x90000100, 0x40000000, @@ -12796,17 +12850,17 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x50000000, 0x8c000500, 0x05020003, 0x42000800, 0x00020000, 0x45780800, 0x80040800, 0x82040580, 0x00022000, 0x05fe07fc, 0x4178a000, 0x4200a800, - 0x0010a29b, 0x42000800, 0x0010e300, 0x40540000, - 0x8004b480, 0x0551f80b, 0x0501fbce, 0x600c6020, + 0x0010a562, 0x42000800, 0x0010e500, 0x40540000, + 0x8004b480, 0x0551fabb, 0x0501fbce, 0x600c6020, 0x50304800, 0x8c240500, 0x0500001c, 0x59e00016, - 0x8c000504, 0x05020019, 0x0551f860, 0x604808fa, + 0x8c000504, 0x05020019, 0x0551fb10, 0x604808fa, 0x50041000, 0x82081500, 0xfffffffc, 0x90081d43, 0x90081540, 0x84244d00, 0x440c0800, 0x44080800, 0x44246000, 0x64030000, 0x4203e000, 0x70000000, 0x4203e000, 0xb0300000, 0x603ff84e, 0x59e00016, 0x8c000504, 0x05020002, 0x05fe47fd, 0x84244d40, - 0x44246000, 0x0551f849, 0x64030000, 0x0501f9f1, - 0x4803c856, 0x0505ff74, 0x6413c020, 0x4203e000, + 0x44246000, 0x0551faf9, 0x64030000, 0x0501f9f1, + 0x4803c856, 0x0505ff72, 0x6413c020, 0x4203e000, 0x6000000f, 0x640f70e8, 0x640f78e8, 0x640da8e8, 0x59e00023, 0x8c000500, 0x0502002b, 0x42002800, 0x00100022, 0x58140800, 0x4817c857, 0x4807c857, @@ -12817,48 +12871,48 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x8050a1c0, 0x05000014, 0x4c140000, 0x5814a801, 0x4857c857, 0x40500000, 0x80540480, 0x0500000b, 0x82540480, 0x0000400e, 0x05020005, 0x9050a404, - 0x0509fadf, 0x05020028, 0x0501f004, 0x5814b002, - 0x485bc857, 0x054dffaf, 0x5c002800, 0x90142c04, - 0x05fdf7e9, 0x050df957, 0x42001000, 0x7ff481fe, + 0x0509fadd, 0x05020028, 0x0501f004, 0x5814b002, + 0x485bc857, 0x0551fa5f, 0x5c002800, 0x90142c04, + 0x05fdf7e9, 0x050df958, 0x42001000, 0x7ff481fe, 0x59e00002, 0x8c00051e, 0x05020003, 0x42001000, 0x7ff480fe, 0x50081000, 0x480b505c, 0x42002800, 0x00100022, 0x58140801, 0x4817c857, 0x4807c857, 0x800409c0, 0x05000023, 0x58142002, 0x4813c857, 0x58141003, 0x4c140000, 0x82040480, 0x0000400e, - 0x05020004, 0x0509fae9, 0x4803c856, 0x0501f003, + 0x05020004, 0x0509fae7, 0x4803c856, 0x0501f003, 0x0501fb53, 0x05020004, 0x5c002800, 0x90142c04, 0x05fdf7ed, 0x4803c856, 0x4a03c020, 0x00004010, 0x4a03c011, 0x40100011, 0x05006000, 0x4203e000, 0x40000000, 0x59e00017, 0x60000800, 0x8c00050a, - 0x050a0995, 0x8d0c0530, 0x050a0981, 0x050a0983, + 0x050a0993, 0x8d0c0530, 0x050a097f, 0x050a0981, 0x6403c017, 0x4203e000, 0x30000001, 0x0501f000, - 0x4803c856, 0x0201f800, 0x0010e304, 0x59e00024, - 0x8c000500, 0x050a0a89, 0x0501fbc9, 0x050df9fd, + 0x4803c856, 0x0201f800, 0x0010e504, 0x59e00024, + 0x8c000500, 0x050a0a87, 0x0501fbc9, 0x050df9fe, 0x05020004, 0x4a03c014, 0x001c001c, 0x0501f003, 0x4a03c014, 0x081c001c, 0x4817c857, 0x0501fbe7, - 0x42002000, 0x0010fde9, 0x054dff75, 0x59a8006b, + 0x42002000, 0x0011000f, 0x0551fa25, 0x59a8006b, 0x800001c0, 0x0500000c, 0x59a8008a, 0x8c000500, 0x05000005, 0x59a8000a, 0x82000480, 0x0013ffff, 0x05001005, 0x59a8206b, 0x80102000, 0x59a8280a, - 0x054dff67, 0x0551f945, 0x0551f96c, 0x59a8280a, + 0x0551fa17, 0x0551fc0c, 0x0551fc33, 0x59a8280a, 0x60000812, 0x60001802, 0x4807500d, 0x480f5266, - 0x60c01000, 0x052dfc0f, 0x82040c00, 0x001102e4, + 0x60c01000, 0x052dfdd1, 0x82040c00, 0x00110514, 0x4807500b, 0x600400de, 0x50000000, 0x8c000502, 0x05000004, 0x59a8008a, 0x84000540, 0x4803508a, - 0x4a03c810, 0x00100000, 0x4a03c811, 0x0010a29b, - 0x4a03c812, 0x0010e300, 0x4a03c813, 0x0010fde8, + 0x4a03c810, 0x00100000, 0x4a03c811, 0x0010a562, + 0x4a03c812, 0x0010e500, 0x4a03c813, 0x0011000e, 0x0501fb86, 0x6447c829, 0x59e40001, 0x82000540, 0x0003403f, 0x4803c801, 0x4a03c802, 0x00000933, 0x59e00003, 0x82000540, 0x00240000, 0x4803c003, 0x64ffc019, 0x60701000, 0x0501fae0, 0x4202c000, - 0x001102e4, 0x59aab00b, 0x59aaa00b, 0x59aaa80b, + 0x00110514, 0x59aab00b, 0x59aaa00b, 0x59aaa80b, 0x59aac80d, 0x49675065, 0x59a8000b, 0x4803500c, - 0x0501fbe9, 0x0535fbc7, 0x0501fbf2, 0x0501fc65, - 0x0509fb00, 0x59a8004f, 0x8c000508, 0x05000004, - 0x050dfa29, 0x0519fd6f, 0x050dfb2b, 0x0501fd78, - 0x0505fb2c, 0x052dfc13, 0x0501f85d, 0x050dffc8, - 0x0525fc74, 0x0521fe4e, 0x052df979, 0x0509fb2f, - 0x0509f95e, 0x4203e000, 0xf0000001, 0x0551f930, + 0x0501fbe9, 0x0535fd7b, 0x0501fbf2, 0x0501fc65, + 0x0509fafe, 0x59a8004f, 0x8c000508, 0x05000004, + 0x050dfa2a, 0x0519fe3a, 0x050dfb2d, 0x0501fd78, + 0x0505fb2c, 0x052dfdd5, 0x0501f85d, 0x0511f86b, + 0x0525fd79, 0x0521ff4b, 0x052dfb3b, 0x0509fb2d, + 0x0509f95c, 0x4203e000, 0xf0000001, 0x0551fbf7, 0x6403c018, 0x4203e000, 0xa0000001, 0x59a8008a, 0x80000540, 0x05000004, 0x4203e000, 0x20000551, 0x0501f003, 0x4203e000, 0x20000511, 0x4203e000, @@ -12867,22 +12921,22 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x4a03c011, 0x40000010, 0x05006000, 0x4203e000, 0x40000000, 0x4df00000, 0x4203e000, 0x50000000, 0x59e00017, 0x60000800, 0x8c00050a, 0x0002088c, - 0x8d0c0530, 0x050a08ee, 0x000209af, 0x5c03e000, + 0x8d0c0530, 0x050a08ec, 0x000209af, 0x5c03e000, 0x6403c017, 0x4203e000, 0x30000001, 0x6002d800, 0x4203e000, 0xb0600000, 0x59a80091, 0x4003f800, 0x0001f004, 0x4df00000, 0x4203e000, 0x50000000, 0x416c0000, 0x90000c88, 0x05021869, 0x0c01f803, - 0x5c03e000, 0x0001f006, 0x00100193, 0x0010fbf4, - 0x0010fb25, 0x00100192, 0x0010fada, 0x00100192, + 0x5c03e000, 0x0001f006, 0x00100193, 0x0010fe1a, + 0x0010fd24, 0x00100192, 0x0010fcd9, 0x00100192, 0x00100192, 0x001001a4, 0x0501f85d, 0x42000800, - 0x0010ac19, 0x5804001e, 0x8c000500, 0x0500000c, + 0x0010ae99, 0x5804001e, 0x8c000500, 0x0500000c, 0x84000500, 0x4800081e, 0x6012d800, 0x0501fa6f, 0x49f3c857, 0x5c000800, 0x5c000000, 0x82000540, 0x00007e20, 0x4c000000, 0x4c040000, 0x1c01f000, 0x4a038805, 0x000000f0, 0x1c01f000, 0x6417505d, - 0x6413505e, 0x6403505f, 0x4a035060, 0x00000095, - 0x0525fbe3, 0x4a03541b, 0x0000ffff, 0x4a03500f, - 0x00ffffff, 0x0541fd15, 0x4a03501f, 0x20200000, + 0x6417505e, 0x6403505f, 0x4a035060, 0x00009095, + 0x0525fce8, 0x4a03541b, 0x0000ffff, 0x4a03500f, + 0x00ffffff, 0x0541fef6, 0x4a03501f, 0x20200000, 0x4a035020, 0x88000200, 0x4a035021, 0x00ff001f, 0x4a035022, 0x000007d0, 0x4a035023, 0x80000a00, 0x4a035024, 0xa0000200, 0x4a035025, 0x00ff0004, @@ -12891,7 +12945,7 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x4a03502a, 0x00010000, 0x4a035031, 0x514c4f47, 0x4a035032, 0x49432020, 0x1c01f000, 0x4d440000, 0x417a8800, 0x4c5c0000, 0x4178b800, 0x0001fae7, - 0x05020004, 0x0521fac6, 0x05020002, 0x805cb800, + 0x05020004, 0x0521fba2, 0x05020002, 0x805cb800, 0x81468800, 0x83440580, 0x000007f0, 0x05fe07f8, 0x405c0800, 0x5c00b800, 0x5c028800, 0x1c01f000, 0x4803c857, 0x5c000000, 0x4c000000, 0x4803c857, @@ -12901,13 +12955,13 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x4203e000, 0x50000000, 0x6008b900, 0x05006000, 0x4c000000, 0x4c040000, 0x59bc00ea, 0x4803c857, 0x90000507, 0x90000581, 0x05020003, 0x60000800, - 0x052dfda5, 0x59b800ea, 0x4803c857, 0x641370e8, + 0x052dff67, 0x59b800ea, 0x4803c857, 0x641370e8, 0x5c000800, 0x4807c025, 0x80040920, 0x4807c026, 0x5c000000, 0x4803c023, 0x80000120, 0x4803c024, 0x5c000000, 0x4803c857, 0x4803c021, 0x80000120, 0x4803c022, 0x41f80000, 0x4803c029, 0x80000120, - 0x4803c02a, 0x054dfeac, 0x0500004a, 0x42000800, - 0x0010cf8e, 0x46000800, 0xfaceface, 0x80040800, + 0x4803c02a, 0x0551f95c, 0x0500004a, 0x42000800, + 0x0010d20e, 0x46000800, 0xfaceface, 0x80040800, 0x4c080000, 0x4c0c0000, 0x600010f4, 0x58080013, 0x44000800, 0x80040800, 0x58080022, 0x44000800, 0x80040800, 0x58080023, 0x44000800, 0x80040800, @@ -12927,29 +12981,29 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x44000800, 0x80040800, 0x5c001800, 0x5c001000, 0x64030000, 0x485fc020, 0x905cb9c0, 0x905cbd52, 0x485fc011, 0x4203e000, 0x40000000, 0x6016d800, - 0x59e00017, 0x60000800, 0x8c00050a, 0x050a080e, - 0x8d0c0530, 0x05060ffa, 0x05060ffc, 0x6403c017, + 0x59e00017, 0x60000800, 0x8c00050a, 0x050a080c, + 0x8d0c0530, 0x05060ff8, 0x05060ffa, 0x6403c017, 0x4203e000, 0x30000001, 0x0501f956, 0x05fdf7ff, 0x60100000, 0x0501f80c, 0x4a03c855, 0x0001eb5a, 0x59e40001, 0x82000540, 0xff000700, 0x4803c801, - 0x42000000, 0x0010b0e4, 0x49780003, 0x49780004, - 0x1c01f000, 0x42000800, 0x0010b0e6, 0x44000800, + 0x42000000, 0x0010b364, 0x49780003, 0x49780004, + 0x1c01f000, 0x42000800, 0x0010b366, 0x44000800, 0x59e40801, 0x82041500, 0x00f3c0ff, 0x480bc801, 0x8c040524, 0x0500000b, 0x4c000000, 0x59e41052, - 0x59e40054, 0x800000d4, 0x82000400, 0x0010cfb7, + 0x59e40054, 0x800000d4, 0x82000400, 0x0010d237, 0x80081480, 0x480bc853, 0x6503c800, 0x5c000000, - 0x4a03c850, 0x0010cfb7, 0x800000d4, 0x82002400, - 0x0010cfb6, 0x4813c851, 0x4a03c853, 0x00000400, - 0x42000000, 0x0010cfb7, 0x82001400, 0x00001000, + 0x4a03c850, 0x0010d237, 0x800000d4, 0x82002400, + 0x0010d236, 0x4813c851, 0x4a03c853, 0x00000400, + 0x42000000, 0x0010d237, 0x82001400, 0x00001000, 0x45780000, 0x80000000, 0x80081d80, 0x05fe07fd, - 0x4807c801, 0x1c01f000, 0x42002000, 0x0010b0e4, + 0x4807c801, 0x1c01f000, 0x42002000, 0x0010b364, 0x59e41801, 0x58100c01, 0x82040500, 0x00003800, 0x820c1d00, 0xffffc7ff, 0x800c1d40, 0x480fc801, 0x1c01f000, 0x5c036000, 0x4db00000, 0x49b3c857, 0x4803c857, 0x1c01f000, 0x4c5c0000, 0x4c600000, 0x4c640000, 0x8d0c052a, 0x0500002f, 0x401c0000, 0x80040d40, 0x4004b800, 0x400cc000, 0x4018c800, - 0x0501f8d3, 0x41784000, 0x42002800, 0x0010b0e4, + 0x0501f8d3, 0x41784000, 0x42002800, 0x0010b364, 0x58142017, 0x5814000d, 0x80100400, 0x445c0000, 0x80102000, 0x80000000, 0x82104d00, 0x000000ff, 0x050008a9, 0x0500001c, 0x4c000000, 0x0501f88e, @@ -12962,17 +13016,17 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x05060ca0, 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x1c01f000, 0x4c5c0000, 0x4c600000, 0x4c640000, 0x42001000, 0x04000000, 0x41ccc800, 0x42002800, - 0x0010b0e4, 0x59a8008c, 0x82000d00, 0x000003ff, + 0x0010b364, 0x59a8008c, 0x82000d00, 0x000003ff, 0x4c000000, 0x58140212, 0x0501f85b, 0x5c000000, 0x4004b800, 0x4008c000, 0x905cbc06, 0x0501f016, 0x4c5c0000, 0x4c600000, 0x4c640000, 0x42002800, - 0x0010b0e4, 0x42001000, 0x03000000, 0x4000c800, + 0x0010b364, 0x42001000, 0x03000000, 0x4000c800, 0x821c0500, 0x00003c00, 0x80000114, 0x821c0d00, 0x000003ff, 0x4c000000, 0x58140412, 0x0501f846, 0x5c000000, 0x4004b800, 0x4008c000, 0x805cbc00, 0x805cb840, 0x825c0480, 0x00000240, 0x05fe1edc, 0x0501f87b, 0x405c0000, 0x905cbc02, 0x80600d40, - 0x42002800, 0x0010b0e4, 0x41784000, 0x58142017, + 0x42002800, 0x0010b364, 0x41784000, 0x58142017, 0x825c0480, 0x00000101, 0x05021029, 0x5814000d, 0x80100400, 0x44040000, 0x80102000, 0x80000000, 0x805cb840, 0x82104d00, 0x000000ff, 0x0500084a, @@ -13002,7 +13056,7 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x58140014, 0x80000000, 0x90000503, 0x48002814, 0x05000003, 0x400c0000, 0x0501f002, 0x5814000d, 0x80000540, 0x4803c857, 0x1c01f000, 0x42002800, - 0x0010b0e4, 0x58140000, 0x8c00050a, 0x0500002f, + 0x0010b364, 0x58140000, 0x8c00050a, 0x0500002f, 0x8c000502, 0x0502002d, 0x4c5c0000, 0x5814b821, 0x49782821, 0x8400050a, 0x48002800, 0x58142017, 0x4813c857, 0x5814000d, 0x80100400, 0x41784000, @@ -13014,13 +13068,13 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x80000000, 0x80102000, 0x82104d00, 0x000000ff, 0x05fc0fb9, 0x05fc0e36, 0x48102817, 0x802041c0, 0x05060bc8, 0x405c2000, 0x600c1800, 0x60a01100, - 0x0519f942, 0x5c00b800, 0x1c01f000, 0x1c01f000, + 0x0519fa0d, 0x5c00b800, 0x1c01f000, 0x1c01f000, 0x59a80076, 0x8c000530, 0x05fe07fe, 0x4c080000, 0x60101000, 0x0501f849, 0x5c001000, 0x4201d000, - 0x00028b0a, 0x052df8b2, 0x4c080000, 0x60201000, + 0x00028b0a, 0x052dfa74, 0x4c080000, 0x60201000, 0x0501f842, 0x5c001000, 0x4201d000, 0x00028b0a, - 0x052df8ab, 0x4c080000, 0x60401000, 0x0501f83b, - 0x5c001000, 0x4201d000, 0x00028b0a, 0x052df8a4, + 0x052dfa6d, 0x4c080000, 0x60401000, 0x0501f83b, + 0x5c001000, 0x4201d000, 0x00028b0a, 0x052dfa66, 0x05fdf7e8, 0x8c00050c, 0x59a80876, 0x05020003, 0x84040d30, 0x0501f005, 0x84040d70, 0x48075076, 0x60001000, 0x0501f02d, 0x48075076, 0x916c0507, @@ -13063,13 +13117,13 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x417a5800, 0x417a6000, 0x417a6800, 0x417a7000, 0x417a7800, 0x417a8000, 0x417a8800, 0x417a9000, 0x417a9800, 0x417ae800, 0x417af800, 0x600300f8, - 0x42031000, 0x0010af93, 0x607f1960, 0x60df2160, - 0x42032800, 0x0010af07, 0x42033000, 0x00020da8, - 0x42034000, 0x0010ac19, 0x42033800, 0x0010ac38, - 0x42034800, 0x0010ac7d, 0x42035000, 0x0010ab80, - 0x42035800, 0x0010a380, 0x417b6000, 0x600368de, + 0x42031000, 0x0010b213, 0x607f1960, 0x60df2160, + 0x42032800, 0x0010b187, 0x42033000, 0x00020da8, + 0x42034000, 0x0010ae99, 0x42033800, 0x0010aeb8, + 0x42034800, 0x0010aefd, 0x42035000, 0x0010ae00, + 0x42035800, 0x0010a600, 0x417b6000, 0x600368de, 0x6003c860, 0x600371fe, 0x6003797e, 0x600380ee, - 0x60038880, 0x600390c0, 0x42039800, 0x0010ccc6, + 0x60038880, 0x600390c0, 0x42039800, 0x0010cf46, 0x6003a0ec, 0x6003a8e8, 0x6003b0e4, 0x6003b8e2, 0x6003c0e0, 0x6003d000, 0x4203e800, 0x000201d8, 0x417bd800, 0x1c01f000, 0x6407c830, 0x640fc831, @@ -13086,10 +13140,10 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x05020005, 0x50040000, 0x82000580, 0x55555555, 0x05fe07f1, 0x80142840, 0x4817c857, 0x4817c861, 0x4817500a, 0x1c01f000, 0x4817c857, 0x4c5c0000, - 0x4c600000, 0x054dfbdc, 0x05000030, 0x4817c857, + 0x4c600000, 0x054dfe8c, 0x05000030, 0x4817c857, 0x606c08f6, 0x50040800, 0x8c04053e, 0x0500002b, 0x4817c857, 0x850e1d70, 0x4c040000, 0x4c140000, - 0x0505fd6f, 0x5c002800, 0x5c000800, 0x59e0b81a, + 0x0505fd6d, 0x5c002800, 0x5c000800, 0x59e0b81a, 0x8204b500, 0x000007ff, 0x8058b000, 0x485b506e, 0x600008f4, 0x58042029, 0x5804302a, 0x82102500, 0xfffffff8, 0x82183500, 0xfffffff8, 0x40100000, @@ -13103,8 +13157,8 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x800409c0, 0x05020006, 0x49781c0c, 0x64081a0c, 0x641c1804, 0x59a8000f, 0x48001805, 0x05fdfcb0, 0x800409c0, 0x05020002, 0x80040800, 0x48041806, - 0x1c01f000, 0x61fcb001, 0x42024800, 0x0010b111, - 0x42000000, 0x0010bc11, 0x48024809, 0x90000410, + 0x1c01f000, 0x61fcb001, 0x42024800, 0x0010b391, + 0x42000000, 0x0010be91, 0x48024809, 0x90000410, 0x91264c0b, 0x8058b040, 0x05fe07fc, 0x1c01f000, 0x59a8080c, 0x4006d000, 0x6006b800, 0x59a8180a, 0x480fc857, 0x41783000, 0x90041415, 0x90082415, @@ -13123,18 +13177,18 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x1c01f000, 0x915c04a0, 0x0500100a, 0x496bc857, 0x815eb840, 0x416a5800, 0x592ed000, 0x497a5800, 0x497a5801, 0x497a5805, 0x812e59c0, 0x1c01f000, - 0x42000000, 0x0010b048, 0x054dfa1f, 0x417a5800, + 0x42000000, 0x0010b2c8, 0x054dfccf, 0x417a5800, 0x05fdf7fa, 0x0501f803, 0x412d8800, 0x1c01f000, 0x815eb840, 0x05001009, 0x416a5800, 0x492fc857, 0x592ed000, 0x497a5800, 0x497a5801, 0x497a5805, - 0x812e59c0, 0x1c01f000, 0x42000000, 0x0010b048, - 0x054dfa0d, 0x417ab800, 0x417a5800, 0x05fdf7f9, + 0x812e59c0, 0x1c01f000, 0x42000000, 0x0010b2c8, + 0x054dfcbd, 0x417ab800, 0x417a5800, 0x05fdf7f9, 0x492fc857, 0x496a5800, 0x412ed000, 0x815eb800, 0x59c80000, 0x82000540, 0x00001200, 0x48039000, 0x1c01f000, 0x492fc857, 0x812e59c0, 0x05000007, 0x592c0001, 0x497a5801, 0x4c000000, 0x05fdfff1, 0x5c025800, 0x05fdf7f9, 0x1c01f000, 0x42000000, - 0x0010b048, 0x054df9f7, 0x80025d80, 0x1c01f000, + 0x0010b2c8, 0x054dfca7, 0x80025d80, 0x1c01f000, 0x4807c856, 0x42007000, 0x00020d9f, 0x64007000, 0x59e00003, 0x82000540, 0x00008080, 0x4803c003, 0x4a03b805, 0x90000001, 0x59dc0006, 0x4a03b805, @@ -13149,24 +13203,24 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x497bb807, 0x8058b040, 0x05fe07fe, 0x4a03b805, 0x30000000, 0x59dc0006, 0x4a03b805, 0x60000001, 0x4803c856, 0x05fdff90, 0x05fc0c15, 0x42001000, - 0x0010af8e, 0x452c1000, 0x64065801, 0x4a025802, - 0x00000100, 0x4a025808, 0x00106545, 0x497a5809, + 0x0010b20e, 0x452c1000, 0x64065801, 0x4a025802, + 0x00000100, 0x4a025808, 0x00106706, 0x497a5809, 0x497a580a, 0x497a580b, 0x05fdff83, 0x05fc0c08, - 0x42001000, 0x0010af8f, 0x452c1000, 0x64025801, + 0x42001000, 0x0010b20f, 0x452c1000, 0x64025801, 0x4a025802, 0x00000100, 0x4a025808, 0x00100f36, 0x497a5803, 0x497a5806, 0x497a5807, 0x497a5809, - 0x05fdff75, 0x05fc0bfa, 0x42001000, 0x0010af90, + 0x05fdff75, 0x05fc0bfa, 0x42001000, 0x0010b210, 0x452c1000, 0x64025801, 0x4a025802, 0x00000100, 0x4a025808, 0x00100f5a, 0x497a5803, 0x497a5806, 0x497a5807, 0x497a5809, 0x1c01f000, 0x40681000, 0x0001f81c, 0x1c01f000, 0x42001000, 0x0002002b, - 0x0529fd29, 0x0541f98d, 0x0549fdce, 0x05000010, + 0x0529feeb, 0x0541fb6e, 0x054df86c, 0x05000010, 0x4a03b805, 0x30000002, 0x59dc0006, 0x4807b800, 0x480bb801, 0x42007000, 0x00020d9f, 0x65007002, 0x480c7008, 0x58380007, 0x90000405, 0x48007003, 0x640c7000, 0x4803b803, 0x0001f053, 0x42000000, - 0x0010afb0, 0x054df978, 0x0541f983, 0x60040800, - 0x42001000, 0x0002002b, 0x0529fcec, 0x42007000, + 0x0010b230, 0x054dfc28, 0x0541fb64, 0x60040800, + 0x42001000, 0x0002002b, 0x0529feae, 0x42007000, 0x00020d9f, 0x0001f034, 0x58380802, 0x600011fe, 0x82040480, 0x0000ff00, 0x05021003, 0x40041000, 0x80000580, 0x48007002, 0x480bb802, 0x59dc0006, @@ -13206,7 +13260,7 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x05000003, 0x48107005, 0x0501f008, 0x49787005, 0x49787004, 0x0501f005, 0x48101800, 0x801021c0, 0x05020002, 0x480c7004, 0x1c01f000, 0x4803c856, - 0x4dc00000, 0x42007000, 0x0010af91, 0x64007400, + 0x4dc00000, 0x42007000, 0x0010b211, 0x64007400, 0x49787001, 0x600380ee, 0x60080800, 0x59c00007, 0x4a038006, 0x60000001, 0x59c00007, 0x4a038006, 0x60000003, 0x59c00007, 0x4a038006, 0x60000005, @@ -13246,12 +13300,12 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x90000001, 0x80040840, 0x05fe07fa, 0x05fdfa98, 0x83c00580, 0x00007700, 0x05000003, 0x600380ee, 0x05fdf7f3, 0x4178a000, 0x805cb9c0, 0x0502000f, - 0x6080b000, 0x91b8ac20, 0x054df906, 0x640770fb, + 0x6080b000, 0x91b8ac20, 0x054dfbb6, 0x640770fb, 0x4a037020, 0x00100e26, 0x59a80030, 0x82000500, - 0x0000ffff, 0x48037021, 0x4a037035, 0x0010cc01, + 0x0000ffff, 0x48037021, 0x4a037035, 0x0010ce81, 0x4a037038, 0x00100e1d, 0x640770fb, 0x6080b000, - 0x91b8ac00, 0x054df8f7, 0x6100b000, 0xb1b8ac00, - 0x054df8f4, 0x805cb9c0, 0x05020006, 0x4a0370e4, + 0x91b8ac00, 0x054dfba7, 0x6100b000, 0xb1b8ac00, + 0x054dfba4, 0x805cb9c0, 0x05020006, 0x4a0370e4, 0xaaaaaaaa, 0x4a0370e5, 0xaaaaaaaa, 0x0501f005, 0x4a0370e4, 0xa2aa2a82, 0x4a0370e5, 0xaaaaa2aa, 0x4a0370e6, 0xaaaaaaaa, 0x640370fb, 0x4a0370e6, @@ -13263,122 +13317,122 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x4d340000, 0x4d400000, 0x4cfc0000, 0x4d380000, 0x4d3c0000, 0x4d440000, 0x4d4c0000, 0x4d480000, 0x4c5c0000, 0x4c600000, 0x4c640000, 0x4d040000, - 0x4cf40000, 0x4cf80000, 0x4cfc0000, 0x0001f8bd, - 0x5c01f800, 0x5c01f000, 0x5c01e800, 0x5c020800, - 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x5c029000, - 0x5c029800, 0x5c028800, 0x5c027800, 0x5c027000, - 0x5c01f800, 0x5c028000, 0x5c026800, 0x5c025800, - 0x5c026000, 0x1c01f000, 0x493bc857, 0x0001f0ea, - 0x83300500, 0x000000ff, 0x90000c87, 0x05fe1a30, - 0x0c01f022, 0x1c01f000, 0x82000d00, 0xc2000038, - 0x05fe0a21, 0x05fdfa2a, 0x00000000, 0x00000048, - 0x00000054, 0x00000053, 0x001007e1, 0x00100801, - 0x001007f9, 0x0010081b, 0x001007ea, 0x001007f3, - 0x001007fc, 0x00100817, 0x00100867, 0x001007e1, - 0x00100869, 0x001007e1, 0x001007e1, 0x0010086c, - 0x00100870, 0x00100881, 0x00100892, 0x0010081c, - 0x00100899, 0x001008a3, 0x001007e1, 0x001007e1, - 0x001007e1, 0x05fdfa0e, 0x001007e9, 0x00100923, - 0x00100839, 0x00100859, 0x001007e9, 0x001007e9, - 0x001007e9, 0x05fdfa06, 0x4803c856, 0x59300004, - 0x8c00053e, 0x05020003, 0x61567000, 0x0005f478, - 0x052dfb45, 0x05fc07fd, 0x1c01f000, 0x4803c856, - 0x0501f8b1, 0x40002800, 0x41782000, 0x615a7000, - 0x0005f478, 0x4803c856, 0x615e7000, 0x0005f478, - 0x4803c856, 0x0529f87f, 0x42000000, 0x80000000, - 0x0001f12d, 0x4803c856, 0x59325809, 0x812e59c0, - 0x05000012, 0x59300008, 0x8c00051a, 0x0502000b, - 0x592c0409, 0x8c00051c, 0x05020003, 0x4a026013, - 0xffffffff, 0x59300004, 0x8c00053e, 0x05020005, - 0x61227000, 0x0005f478, 0x641e5a07, 0x05fdf7f8, - 0x052dfb21, 0x05fc07fb, 0x1c01f000, 0x4803c856, - 0x83300500, 0x00ffffff, 0x0529f4f5, 0x1c01f000, - 0x4803c856, 0x813261c0, 0x05fc09d1, 0x053dfaf3, - 0x0500000b, 0x59325809, 0x592c0209, 0x84000552, - 0x48025a09, 0x0505f8aa, 0x59300004, 0x8c00053e, - 0x05020004, 0x417a7800, 0x0539ff46, 0x1c01f000, - 0x052dfb09, 0x05fc07fc, 0x1c01f000, 0x4c040000, - 0x59b808ea, 0x90040d07, 0x90040583, 0x05000004, - 0x42000000, 0x60000000, 0x0501f89a, 0x5c000800, - 0x1c01f000, 0x0501f8dd, 0x05000015, 0x59325809, - 0x812e59c0, 0x05000012, 0x592c0205, 0x82000500, - 0x000000ff, 0x90000da9, 0x0502000d, 0x59300203, - 0x90000583, 0x05000008, 0x59300808, 0x84040d26, - 0x48066008, 0x0001f938, 0x6503900d, 0x642370e5, - 0x1c01f000, 0x052dfae8, 0x05fc07f8, 0x42000000, - 0x0010b04e, 0x0549ff44, 0x5988014a, 0x80000000, - 0x4803114a, 0x6503900d, 0x42000000, 0xc0000000, - 0x0001f12d, 0x4c5c0000, 0x4c600000, 0x4c640000, - 0x4200c800, 0x0010cc08, 0x6000b860, 0x6014c002, - 0x0529f947, 0x4a0370e4, 0x02000000, 0x5c00c800, - 0x5c00c000, 0x5c00b800, 0x1c01f000, 0x4933c857, - 0x0005f45a, 0x4933c857, 0x0501fba1, 0x1c01f000, - 0x41300800, 0x800409c0, 0x05fe0981, 0x05fdf976, - 0x42000000, 0x0010b04e, 0x0549ff23, 0x4933c857, - 0x813261c0, 0x05fc097a, 0x0501f82f, 0x40002800, - 0x0549fe86, 0x0501f894, 0x05000006, 0x5932680a, - 0x59340200, 0x8c00050e, 0x59300416, 0x053e0d8c, - 0x1c01f000, 0x42000000, 0x0010b04e, 0x0549ff12, - 0x4933c857, 0x813261c0, 0x05fc0969, 0x0501f886, - 0x05000009, 0x053dfa89, 0x05000007, 0x59325809, - 0x592c0209, 0x8400054e, 0x48025a09, 0x417a7800, - 0x0539fee0, 0x1c01f000, 0x485fc857, 0x5c000000, - 0x4d780000, 0x4203e000, 0x50000000, 0x6014b900, - 0x05fdf15b, 0x4933c857, 0x913004a0, 0x05fe1954, - 0x83300c00, 0x0010b0c1, 0x50040000, 0x80000000, - 0x05001002, 0x44000800, 0x1c01f000, 0x4933c857, - 0x05fdf7f6, 0x4807c856, 0x59b800ea, 0x8c000510, - 0x05fc07fd, 0x59b800e0, 0x4803c857, 0x1c01f000, - 0x4803c856, 0x42000000, 0x10000000, 0x41300800, - 0x0501f020, 0x8c000510, 0x00000133, 0x4c040000, - 0x0501f808, 0x5c000800, 0x90100488, 0x00001133, - 0x4c040000, 0x05fdfedd, 0x5c000800, 0x0001f133, - 0x59b800e2, 0x59b820e2, 0x80100580, 0x05fe07fd, - 0x80102114, 0x0501f001, 0x40101800, 0x800c190a, - 0x9010051f, 0x900c1d1f, 0x800c2480, 0x9010251f, - 0x1c01f000, 0x40680000, 0x406c0800, 0x0501f805, - 0x60058800, 0x05020002, 0x60018800, 0x1c01f000, - 0x82000500, 0xf0000000, 0x82040d00, 0x0fffffff, - 0x80040d40, 0x4807c857, 0x42001000, 0x0010af92, - 0x50080000, 0x80000540, 0x05020004, 0x640f70e5, - 0x4a0370e4, 0x00000300, 0x80000000, 0x44001000, - 0x60001008, 0x59b800ea, 0x8c000510, 0x0500000b, - 0x05fdffd8, 0x90100488, 0x05001007, 0x4c040000, - 0x4c080000, 0x05fdfead, 0x5c001000, 0x5c000800, - 0x0501f01c, 0x59b800ea, 0x8c000516, 0x05020019, - 0x4a0370e4, 0x00300000, 0x480770e1, 0x600011fe, - 0x80081040, 0x05000010, 0x59b808e4, 0x8c040528, - 0x05fe07fc, 0x42001000, 0x0010af92, 0x50080000, - 0x80000040, 0x05020004, 0x640b70e5, 0x4a0370e4, - 0x00000200, 0x05fc18ee, 0x44001000, 0x8c04052c, - 0x1c01f000, 0x41f80000, 0x50000000, 0x05fdf8e8, - 0x80081040, 0x05fe07d8, 0x41f80000, 0x50000000, - 0x05fdf8e3, 0x4d380000, 0x59300c07, 0x90040589, - 0x05020004, 0x611e7000, 0x0005fc78, 0x80000580, - 0x5c027000, 0x1c01f000, 0x4c500000, 0x6407900d, - 0x59c8a020, 0x640b900d, 0x59c80820, 0x8c50052e, - 0x05000002, 0x900409c0, 0x82040d00, 0x0000ffff, - 0x0525fe8b, 0x5c00a000, 0x1c01f000, 0x42000000, - 0x0010b045, 0x0549fe70, 0x05fdfff0, 0x0500004a, - 0x4933c857, 0x59300407, 0x90000580, 0x05000046, - 0x59c82021, 0x6407900d, 0x59c82821, 0x82142d00, - 0x0000ffff, 0x59325809, 0x812e59c0, 0x0500003e, - 0x5932680a, 0x051dfa95, 0x053e0cbd, 0x599c0019, - 0x8c00050c, 0x0502001b, 0x051dfa90, 0x05020019, - 0x59300813, 0x4807c857, 0x592c0409, 0x8c00051c, - 0x05020012, 0x8400055c, 0x48025c09, 0x592c0a05, - 0x82040d00, 0x000000ff, 0xb0040588, 0x05000007, - 0x90040598, 0x05000005, 0xb00405a8, 0x05000003, - 0xb00405aa, 0x05020005, 0x59300013, 0x0541fb6f, - 0x80000d40, 0x48065803, 0x4a026013, 0x7fffffff, - 0x59300008, 0x8c000516, 0x0502001b, 0x48166015, - 0x599c0019, 0x8c00050c, 0x05020004, 0x59a80007, - 0x8c00051e, 0x05020014, 0x0501fce8, 0x05020012, + 0x4cf40000, 0x4cf80000, 0x0001f8bd, 0x5c01f000, + 0x5c01e800, 0x5c020800, 0x5c00c800, 0x5c00c000, + 0x5c00b800, 0x5c029000, 0x5c029800, 0x5c028800, + 0x5c027800, 0x5c027000, 0x5c01f800, 0x5c028000, + 0x5c026800, 0x5c025800, 0x5c026000, 0x1c01f000, + 0x493bc857, 0x0001f0ea, 0x83300500, 0x000000ff, + 0x90000c87, 0x05fe1a32, 0x0c01f022, 0x1c01f000, + 0x82000d00, 0xc2000038, 0x05fe0a23, 0x05fdfa2c, + 0x00000000, 0x00000048, 0x00000054, 0x00000053, + 0x001007df, 0x001007ff, 0x001007f7, 0x00100819, + 0x001007e8, 0x001007f1, 0x001007fa, 0x00100815, + 0x00100865, 0x001007df, 0x00100867, 0x001007df, + 0x001007df, 0x0010086a, 0x0010086e, 0x0010087f, + 0x00100890, 0x0010081a, 0x00100897, 0x001008a1, + 0x001007df, 0x001007df, 0x001007df, 0x05fdfa10, + 0x001007e7, 0x00100921, 0x00100837, 0x00100857, + 0x001007e7, 0x001007e7, 0x001007e7, 0x05fdfa08, + 0x4803c856, 0x59300004, 0x8c00053e, 0x05020003, + 0x61567000, 0x0005f478, 0x052dfd09, 0x05fc07fd, + 0x1c01f000, 0x4803c856, 0x0501f8b1, 0x40002800, + 0x41782000, 0x615a7000, 0x0005f478, 0x4803c856, + 0x615e7000, 0x0005f478, 0x4803c856, 0x0529fa0c, + 0x42000000, 0x80000000, 0x0001f12d, 0x4803c856, + 0x59325809, 0x812e59c0, 0x05000012, 0x59300008, + 0x8c00051a, 0x0502000b, 0x592c0409, 0x8c00051c, + 0x05020003, 0x4a026013, 0xffffffff, 0x59300004, + 0x8c00053e, 0x05020005, 0x61227000, 0x0005f478, + 0x641e5a07, 0x05fdf7f8, 0x052dfce5, 0x05fc07fb, + 0x1c01f000, 0x4803c856, 0x83300500, 0x00ffffff, + 0x0529f6b9, 0x1c01f000, 0x4803c856, 0x813261c0, + 0x05fc09d3, 0x053dfcd6, 0x0500000b, 0x59325809, + 0x592c0209, 0x84000552, 0x48025a09, 0x0505f8aa, + 0x59300004, 0x8c00053e, 0x05020004, 0x417a7800, + 0x053df926, 0x1c01f000, 0x052dfccd, 0x05fc07fc, + 0x1c01f000, 0x4c040000, 0x59b808ea, 0x90040d07, + 0x90040583, 0x05000004, 0x42000000, 0x60000000, + 0x0501f89a, 0x5c000800, 0x1c01f000, 0x0501f8dd, + 0x05000015, 0x59325809, 0x812e59c0, 0x05000012, + 0x592c0205, 0x82000500, 0x000000ff, 0x90000da9, + 0x0502000d, 0x59300203, 0x90000583, 0x05000008, + 0x59300808, 0x84040d26, 0x48066008, 0x0001f938, + 0x6503900d, 0x642370e5, 0x1c01f000, 0x052dfcac, + 0x05fc07f8, 0x42000000, 0x0010b2ce, 0x054df9f6, + 0x5988014a, 0x80000000, 0x4803114a, 0x6503900d, + 0x42000000, 0xc0000000, 0x0001f12d, 0x4c5c0000, + 0x4c600000, 0x4c640000, 0x4200c800, 0x0010ce88, + 0x6000b860, 0x6014c002, 0x0529fad8, 0x4a0370e4, + 0x02000000, 0x5c00c800, 0x5c00c000, 0x5c00b800, + 0x1c01f000, 0x4933c857, 0x0005f45a, 0x4933c857, + 0x0501fba3, 0x1c01f000, 0x41300800, 0x800409c0, + 0x05fe0983, 0x05fdf978, 0x42000000, 0x0010b2ce, + 0x054df9d5, 0x4933c857, 0x813261c0, 0x05fc097c, + 0x0501f82f, 0x40002800, 0x054df938, 0x0501f894, + 0x05000006, 0x5932680a, 0x59340200, 0x8c00050e, + 0x59300416, 0x053e0f6f, 0x1c01f000, 0x42000000, + 0x0010b2ce, 0x054df9c4, 0x4933c857, 0x813261c0, + 0x05fc096b, 0x0501f886, 0x05000009, 0x053dfc6c, + 0x05000007, 0x59325809, 0x592c0209, 0x8400054e, + 0x48025a09, 0x417a7800, 0x053df8c0, 0x1c01f000, + 0x485fc857, 0x5c000000, 0x4d780000, 0x4203e000, + 0x50000000, 0x6014b900, 0x05fdf15d, 0x4933c857, + 0x913004a0, 0x05fe1956, 0x83300c00, 0x0010b341, + 0x50040000, 0x80000000, 0x05001002, 0x44000800, + 0x1c01f000, 0x4933c857, 0x05fdf7f6, 0x4807c856, + 0x59b800ea, 0x8c000510, 0x05fc07fd, 0x59b800e0, + 0x4803c857, 0x1c01f000, 0x4803c856, 0x42000000, + 0x10000000, 0x41300800, 0x0501f020, 0x8c000510, + 0x00000133, 0x4c040000, 0x0501f808, 0x5c000800, + 0x90100488, 0x00001133, 0x4c040000, 0x05fdfedf, + 0x5c000800, 0x0001f133, 0x59b800e2, 0x59b820e2, + 0x80100580, 0x05fe07fd, 0x80102114, 0x0501f001, + 0x40101800, 0x800c190a, 0x9010051f, 0x900c1d1f, + 0x800c2480, 0x9010251f, 0x1c01f000, 0x40680000, + 0x406c0800, 0x0501f805, 0x60058800, 0x05020002, + 0x60018800, 0x1c01f000, 0x82000500, 0xf0000000, + 0x82040d00, 0x0fffffff, 0x80040d40, 0x4807c857, + 0x42001000, 0x0010b212, 0x50080000, 0x80000540, + 0x05020004, 0x640f70e5, 0x4a0370e4, 0x00000300, + 0x80000000, 0x44001000, 0x60001008, 0x59b800ea, + 0x8c000510, 0x0500000b, 0x05fdffd8, 0x90100488, + 0x05001007, 0x4c040000, 0x4c080000, 0x05fdfeaf, + 0x5c001000, 0x5c000800, 0x0501f01c, 0x59b800ea, + 0x8c000516, 0x05020019, 0x4a0370e4, 0x00300000, + 0x480770e1, 0x600011fe, 0x80081040, 0x05000010, + 0x59b808e4, 0x8c040528, 0x05fe07fc, 0x42001000, + 0x0010b212, 0x50080000, 0x80000040, 0x05020004, + 0x640b70e5, 0x4a0370e4, 0x00000200, 0x05fc18f0, + 0x44001000, 0x8c04052c, 0x1c01f000, 0x41f80000, + 0x50000000, 0x05fdf8ea, 0x80081040, 0x05fe07d8, + 0x41f80000, 0x50000000, 0x05fdf8e5, 0x4d380000, + 0x59300c07, 0x90040589, 0x05020004, 0x611e7000, + 0x0005fc78, 0x80000580, 0x5c027000, 0x1c01f000, + 0x4c500000, 0x6407900d, 0x59c8a020, 0x640b900d, + 0x59c80820, 0x8c50052e, 0x05000002, 0x900409c0, + 0x82040d00, 0x0000ffff, 0x0529f816, 0x5c00a000, + 0x1c01f000, 0x42000000, 0x0010b2c5, 0x054df922, + 0x05fdfff0, 0x0500004c, 0x4933c857, 0x59300407, + 0x90000580, 0x05000048, 0x59c82021, 0x6407900d, + 0x59c82821, 0x82142d00, 0x0000ffff, 0x59325809, + 0x812e59c0, 0x05000040, 0x5932680a, 0x051dfb71, + 0x053e0ea0, 0x599c0019, 0x8c00050c, 0x0502001b, + 0x051dfb6c, 0x05020019, 0x59300813, 0x4807c857, + 0x592c0409, 0x8c00051c, 0x05020012, 0x8400055c, + 0x48025c09, 0x592c0a05, 0x82040d00, 0x000000ff, + 0xb0040588, 0x05000007, 0x90040598, 0x05000005, + 0xb00405a8, 0x05000003, 0xb00405aa, 0x05020005, + 0x59300013, 0x0541fd57, 0x80000d40, 0x48065803, + 0x4a026013, 0x7fffffff, 0x59300008, 0x8c000516, + 0x0502001d, 0x48166015, 0x051dfb4e, 0x05000004, + 0x59300416, 0x8c00051c, 0x05000004, 0x599c0019, + 0x8c00050c, 0x05000014, 0x0501fce8, 0x05020012, 0x0501fa0b, 0x40280000, 0x4802600f, 0x05000005, 0x4832600d, 0x50200000, 0x4802600c, 0x4822600e, 0x59300416, 0x8c00051c, 0x05020004, 0x599c0019, 0x8c00050c, 0x05020871, 0x6503900d, 0x642370e5, - 0x1c01f000, 0x42000000, 0x0010b04e, 0x0549fe22, + 0x1c01f000, 0x42000000, 0x0010b2ce, 0x054df8d2, 0x5988014c, 0x80000000, 0x4803114c, 0x6503900d, 0x42000000, 0xc0000000, 0x0001f12d, 0x4cf80000, 0x58f40000, 0x8001f540, 0x0501f81e, 0x41781800, @@ -13405,7 +13459,7 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x4979e800, 0x4179f000, 0x5c025800, 0x1c01f000, 0x80f5e9c0, 0x05000008, 0x80f9f1c0, 0x05fe0ff6, 0x4d2c0000, 0x40f65800, 0x05fdfbb2, 0x4179e800, - 0x5c025800, 0x1c01f000, 0x4cf40000, 0x051df9eb, + 0x5c025800, 0x1c01f000, 0x4cf40000, 0x051dfac5, 0x0502002e, 0x59300808, 0x82040500, 0x00003000, 0x0502002a, 0x8c040522, 0x0500002a, 0x5930002b, 0x8001ed40, 0x05fc0806, 0x82000580, 0xffffffff, @@ -13432,11 +13486,11 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x0501f022, 0x580c2a07, 0x580c0008, 0x59301813, 0x800c0580, 0x05000021, 0x90040580, 0x0500000e, 0x40140000, 0x4c080000, 0x400c1000, 0x41780800, - 0x0529faf4, 0x800409c0, 0x05fa0fa5, 0x90140c08, - 0x0529fad4, 0x5c001000, 0x40041800, 0x592c0803, + 0x0529fcb6, 0x800409c0, 0x05fa0fa5, 0x90140c08, + 0x0529fc96, 0x5c001000, 0x40041800, 0x592c0803, 0x0501f015, 0x90140408, 0x4c080000, 0x400c1000, - 0x41780800, 0x0529fae7, 0x800409c0, 0x05fa0f98, - 0x40140800, 0x0529fac7, 0x5c001000, 0x40041800, + 0x41780800, 0x0529fca9, 0x800409c0, 0x05fa0f98, + 0x40140800, 0x0529fc89, 0x5c001000, 0x40041800, 0x592c0803, 0x0501f008, 0x59301813, 0x40040000, 0x800c0580, 0x05020004, 0x497a5a02, 0x64125c01, 0x0501f007, 0x64065a02, 0x641a5c01, 0x497a5804, @@ -13484,7 +13538,7 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x05020005, 0x90183402, 0x80142840, 0x05fe07f7, 0x1c01f000, 0x90000541, 0x05fdf7fe, 0x05f9fedc, 0x592c020b, 0x8c000502, 0x05fc07fd, 0x497a6014, - 0x0501fdce, 0x412c7000, 0x59300008, 0x84000556, + 0x0501fdcc, 0x412c7000, 0x59300008, 0x84000556, 0x48026008, 0x9004050f, 0x82000c00, 0x00100e26, 0x50044000, 0x80204000, 0x50200000, 0x80187c00, 0x583c2800, 0x583c2001, 0x583c1002, 0x58380a08, @@ -13516,7 +13570,7 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x58342800, 0x58343801, 0x480e6012, 0x48166010, 0x481e6011, 0x0501f275, 0x4933c857, 0x5931f809, 0x59301006, 0x800811c0, 0x05000009, 0x41780800, - 0x60280000, 0x0529f9a3, 0x80080102, 0x05020002, + 0x60280000, 0x0529fb65, 0x80080102, 0x05020002, 0x84001542, 0x80081040, 0x4809fc07, 0x640a6006, 0x592c040a, 0x90000508, 0x05000008, 0x0501f834, 0x59300203, 0x90000584, 0x05020003, 0x61227000, @@ -13527,7 +13581,7 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x58fc0008, 0x0501f00a, 0x58fc0409, 0x8c000512, 0x05020019, 0x58fc0c0a, 0x8c040516, 0x05020003, 0x5c01f800, 0x1c01f000, 0x58fc000b, 0x4c000000, - 0x4d2c0000, 0x40fe5800, 0x59300013, 0x0541f8f7, + 0x4d2c0000, 0x40fe5800, 0x59300013, 0x0541fadd, 0x5c025800, 0x80000d40, 0x5c000000, 0x80040580, 0x05020007, 0x59300008, 0x84000500, 0x48026008, 0x61227000, 0x5c01f800, 0x0005f478, 0x5c01f800, @@ -13536,10 +13590,10 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x90040d07, 0x90040580, 0x05000021, 0x90040583, 0x0500001f, 0x59300407, 0x4c000000, 0x64026407, 0x61043000, 0x4a0370e5, 0x00003000, 0x42000000, - 0x50000000, 0x41300800, 0x4c180000, 0x05fdfce5, + 0x50000000, 0x41300800, 0x4c180000, 0x05fdfce3, 0x5c003000, 0x0500000d, 0x60780000, 0x80000040, 0x05fe07ff, 0x80183040, 0x05fe07f5, 0x42000000, - 0x40000000, 0x41300800, 0x05fdfcda, 0x59880146, + 0x40000000, 0x41300800, 0x05fdfcd8, 0x59880146, 0x80000000, 0x48031146, 0x4a0370e5, 0x00002000, 0x5c000000, 0x48026407, 0x1c01f000, 0x59300008, 0x84000500, 0x48026008, 0x05fdf7fc, 0x59c00007, @@ -13547,28 +13601,28 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x8c00050a, 0x05fe07fe, 0x1c01f000, 0x5c000000, 0x4c000000, 0x4803c857, 0x4dc00000, 0x640370e8, 0x608380ee, 0x05fdfff2, 0x600380ee, 0x05fdfff0, - 0x051dfe19, 0x05020011, 0x4a038891, 0x0000ffff, - 0x497b8880, 0x4ce80000, 0x6059d000, 0x0529f864, - 0x497b8892, 0x6059d000, 0x0529f861, 0x5c01d000, - 0x42000000, 0x0010b099, 0x0549fb73, 0x0501f810, - 0x5c038000, 0x051df707, 0x0501f81f, 0x4c080000, - 0x4c140000, 0x42000000, 0x0010b09a, 0x0549fb6a, + 0x051dff1e, 0x05020011, 0x4a038891, 0x0000ffff, + 0x497b8880, 0x4ce80000, 0x6059d000, 0x0529fa26, + 0x497b8892, 0x6059d000, 0x0529fa23, 0x5c01d000, + 0x42000000, 0x0010b319, 0x0549fe23, 0x0501f810, + 0x5c038000, 0x0521f00c, 0x0501f81f, 0x4c080000, + 0x4c140000, 0x42000000, 0x0010b31a, 0x0549fe1a, 0x0501f807, 0x5c002800, 0x5c001000, 0x48178892, 0x480b8880, 0x5c038000, 0x1c01f000, 0x496fc857, 0x916c0583, 0x05020008, 0x4c080000, 0x4c0c0000, - 0x61201100, 0x61fc19ff, 0x0515f8c8, 0x5c001800, - 0x5c001000, 0x60f00800, 0x0501ff12, 0x4a038891, + 0x61201100, 0x61fc19ff, 0x0515f993, 0x5c001800, + 0x5c001000, 0x60f00800, 0x0501ff10, 0x4a038891, 0x0000ffff, 0x6503900d, 0x05fdfae3, 0x640770e8, 0x1c01f000, 0x5c000000, 0x4c000000, 0x4803c857, 0x59c41080, 0x497b8880, 0x4ce80000, 0x6059d000, - 0x4c080000, 0x0529f832, 0x5c001000, 0x5c01d000, - 0x59c42892, 0x497b8892, 0x051dfddb, 0x05020002, + 0x4c080000, 0x0529f9f4, 0x5c001000, 0x5c01d000, + 0x59c42892, 0x497b8892, 0x051dfee0, 0x05020002, 0x1c01f000, 0x61802004, 0x59c418a4, 0x900c1d0f, 0x900c0580, 0x0500000c, 0x59c41805, 0x900c1d01, 0x0502000b, 0x59c418a4, 0x900c1d0f, 0x900c0487, 0x05001003, 0x900c048c, 0x05001003, 0x80102040, 0x05fe07f2, 0x497b8891, 0x1c01f000, 0x4c100000, - 0x60642000, 0x64078805, 0x0505fca0, 0x59c41805, + 0x60642000, 0x64078805, 0x0505fca1, 0x59c41805, 0x900c1d01, 0x05000005, 0x80102040, 0x05fe07fa, 0x5c002000, 0x05fdf7f4, 0x5c002000, 0x05fdf7f0, 0x4803c856, 0x1c01f000, 0x00100c86, 0x00100c86, @@ -13585,7 +13639,7 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x4802600c, 0x492e600d, 0x480a600e, 0x480e600f, 0x497a6014, 0x05fdf7f3, 0x8c040500, 0x05020071, 0x82040d00, 0x00000080, 0x0500006e, 0x0001f18e, - 0x0501fc3a, 0x843c7d4e, 0x0001f19b, 0x59307804, + 0x0501fc38, 0x843c7d4e, 0x0001f19b, 0x59307804, 0x823c7d00, 0x01880080, 0x823c7d40, 0x80000005, 0x59300013, 0x82000500, 0xffff0000, 0x05000002, 0x843c7d6a, 0x59300015, 0x59301014, 0x80080580, @@ -13596,14 +13650,14 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x00008080, 0x05020016, 0x592c6001, 0x58300406, 0x90000503, 0x90000581, 0x05020011, 0x84040d1e, 0x48066004, 0x58300207, 0x59302015, 0x801021c0, - 0x0500000b, 0x40101000, 0x41780800, 0x0529f861, + 0x0500000b, 0x40101000, 0x41780800, 0x0529fa23, 0x800810c6, 0x59301814, 0x800c0482, 0x80100580, 0x05020003, 0x48126014, 0x05fdf7db, 0x42000000, - 0x0010b046, 0x0549fab0, 0x59302015, 0x59300416, + 0x0010b2c6, 0x0549fd60, 0x59302015, 0x59300416, 0x4803c857, 0x8c000514, 0x0502000f, 0x599c1819, 0x8c0c0512, 0x0500000a, 0x592c0810, 0x59300017, 0x80040c80, 0x05000005, 0x05001004, 0x80040000, - 0x80140480, 0x05001008, 0x0531f882, 0x900c1d41, + 0x80140480, 0x05001008, 0x0531fa3a, 0x900c1d41, 0x0501f01f, 0x84000514, 0x48026416, 0x48126017, 0x4813c857, 0x4c3c0000, 0x0501f948, 0x5c007800, 0x05020017, 0x5930500f, 0x592c0209, 0x4803c857, @@ -13613,21 +13667,21 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x482a600f, 0x480fc857, 0x4833c857, 0x4823c857, 0x482bc857, 0x80000580, 0x483e6004, 0x1c01f000, 0x05f9fcd7, 0x4933c857, 0x4d2c0000, 0x59900005, - 0x81300580, 0x05fa0cd2, 0x0539fdf4, 0x05f80cd0, + 0x81300580, 0x05fa0cd2, 0x0539ffd5, 0x05f80cd0, 0x59325809, 0x4d3c0000, 0x4d400000, 0x59300004, - 0x4803c857, 0x4c000000, 0x0529fc95, 0x0529f98e, + 0x4803c857, 0x4c000000, 0x0529fe57, 0x0529fb50, 0x5c000000, 0x8c000516, 0x0500000e, 0x592c0010, 0x4803c857, 0x48025808, 0x41780800, 0x600a8000, - 0x051dfabd, 0x4a025c07, 0x0000ffff, 0x492fc857, - 0x0001fb5b, 0x053dff80, 0x052dffdd, 0x0501f015, + 0x051dfbba, 0x4a025c07, 0x0000ffff, 0x492fc857, + 0x0001fb5b, 0x0541f966, 0x0531f991, 0x0501f015, 0x640a6203, 0x592c0209, 0x8c000512, 0x05020004, 0x592c0209, 0x8400054e, 0x48025a09, 0x59300407, 0x90000586, 0x05020009, 0x811800ca, 0x81c80c00, 0x58040939, 0x592c000e, 0x80040480, 0x592c0810, - 0x80040480, 0x4802580c, 0x417a7800, 0x0539fa25, + 0x80040480, 0x4802580c, 0x417a7800, 0x0539fc03, 0x5c028000, 0x5c027800, 0x5c025800, 0x1c01f000, 0x4933c857, 0x4d2c0000, 0x59900005, 0x81300580, - 0x05fa0c9b, 0x0539fdbd, 0x05f80c99, 0x59325809, + 0x05fa0c9b, 0x0539ff9e, 0x05f80c99, 0x59325809, 0x592c0209, 0x84000540, 0x48025a09, 0x05fdf7c6, 0x491bc857, 0x4dd00000, 0x4c580000, 0x41780800, 0x8007a0ca, 0x83d3a400, 0x00007600, 0x4a03a005, @@ -13653,14 +13707,14 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x59d00810, 0x59d01011, 0x59d01812, 0x48002c23, 0x48042824, 0x48082825, 0x480c2826, 0x6401b006, 0x4a03a005, 0x30000000, 0x59d00006, 0x1c01f000, - 0x42000000, 0x0010b0e1, 0x0549f9d7, 0x600008ec, + 0x42000000, 0x0010b361, 0x0549fc87, 0x600008ec, 0x580410a2, 0x41780800, 0x9008050f, 0x8c000506, 0x05020003, 0x81180580, 0x05000006, 0x80040800, 0x80081108, 0x90040587, 0x05fe07f8, 0x05f9fc24, 0x4a039040, 0x04000000, 0x59c80040, 0x8c000532, 0x05fe07fe, 0x59d0000d, 0x800000e0, 0x59d0100c, 0x82081500, 0x0000ffff, 0x80081540, 0x480b9028, - 0x4d2c0000, 0x59325809, 0x0539fd38, 0x05f80c14, + 0x4d2c0000, 0x59325809, 0x0539ff19, 0x05f80c14, 0x59d02004, 0x592c0205, 0x82001500, 0x000000ff, 0x9000050f, 0x90000582, 0x05000003, 0xb00805ba, 0x05020004, 0x592c000e, 0x80102480, 0x05f81c08, @@ -13695,10 +13749,10 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x592c000e, 0x80102480, 0x801021c0, 0x41781000, 0x0500000e, 0x592c6001, 0x58300406, 0x58300a07, 0x90000503, 0x90000580, 0x05000002, 0x90040c08, - 0x40040000, 0x40101000, 0x41780800, 0x0525fed5, - 0x800409c0, 0x05020059, 0x0501faaa, 0x0500004f, + 0x40040000, 0x40101000, 0x41780800, 0x0529f897, + 0x800409c0, 0x05020059, 0x0501faa8, 0x0500004f, 0x0501f056, 0x59300004, 0x8c00050e, 0x0500000d, - 0x0501fb37, 0x05020051, 0x592c6001, 0x42004000, + 0x0501fb35, 0x05020051, 0x592c6001, 0x42004000, 0x00100e1e, 0x58300406, 0x8c000510, 0x0500000f, 0x5830540a, 0x42004000, 0x00100e1f, 0x0501f00b, 0x412c6000, 0x0501f847, 0x05000008, 0x90240582, @@ -13729,11 +13783,11 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x80000580, 0x1c01f000, 0x4c5c0000, 0x59e4b800, 0x485fc857, 0x905c051f, 0x05fa0b09, 0x825c0500, 0x000000e0, 0x05f80b06, 0x8c5c050e, 0x05020807, - 0x8c5c050c, 0x05020809, 0x8c5c050a, 0x05020902, + 0x8c5c050c, 0x05020809, 0x8c5c050a, 0x05020900, 0x5c00b800, 0x1c01f000, 0x4803c856, 0x4a03c800, 0x00000080, 0x1c01f000, 0x4d2c0000, 0x42007800, - 0x0010b0e4, 0x583c0003, 0x583c0804, 0x80040540, - 0x05000037, 0x42000800, 0x0010af8f, 0x50065800, + 0x0010b364, 0x583c0003, 0x583c0804, 0x80040540, + 0x05000037, 0x42000800, 0x0010b20f, 0x50065800, 0x592c0002, 0x90000580, 0x05000031, 0x59e40050, 0x59e40852, 0x80040480, 0x82000500, 0xfffffc00, 0x05020005, 0x59e40050, 0x59e40851, 0x80040800, @@ -13747,958 +13801,971 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x64025801, 0x4a025808, 0x00100f36, 0x480a5806, 0x48065807, 0x59e40053, 0x800000c4, 0x48025805, 0x412c1000, 0x492fc857, 0x0001f81c, 0x5c025800, - 0x6503c800, 0x1c01f000, 0x42007800, 0x0010af8f, + 0x6503c800, 0x1c01f000, 0x42007800, 0x0010b20f, 0x503c7800, 0x4a007802, 0x00000100, 0x42007800, - 0x0010b0e4, 0x583c0000, 0x84000552, 0x48007800, + 0x0010b364, 0x583c0000, 0x84000552, 0x48007800, 0x583c100c, 0x480bc857, 0x80081000, 0x4808780c, 0x583c180b, 0x800c19c0, 0x05000013, 0x90080503, 0x05020011, 0x583c0007, 0x4803c857, 0x583c2008, 0x4813c857, 0x80102000, 0x80100580, 0x05020002, 0x41782000, 0x48107808, 0x400c0000, 0x80080580, 0x05020005, 0x4978780c, 0x60041800, 0x60a01100, - 0x0511fdaa, 0x1c01f000, 0x42007800, 0x0010b0e4, + 0x0511fe75, 0x1c01f000, 0x42007800, 0x0010b364, 0x4d2c0000, 0x4c5c0000, 0x4c600000, 0x4030b800, 0x583cc000, 0x4a00b802, 0x00000100, 0x583c2015, 0x80100800, 0x583c0013, 0x80040580, 0x05020003, 0x8460c554, 0x41780800, 0x48047815, 0x8c600502, 0x05f80a83, 0x8460c502, 0x48607800, 0x42000000, - 0x0010af90, 0x50000000, 0x80300580, 0x05fa0a7c, + 0x0010b210, 0x50000000, 0x80300580, 0x05fa0a7c, 0x583c081e, 0x800409c0, 0x05000008, 0x583c001f, 0x80040580, 0x05020005, 0x4978781f, 0x60081800, - 0x60a01100, 0x0511fd85, 0x8c600508, 0x050a0e21, + 0x60a01100, 0x0511fe50, 0x8c600508, 0x050a0ec7, 0x5c00c000, 0x5c00b800, 0x5c025800, 0x1c01f000, 0x4d2c0000, 0x4c5c0000, 0x4c600000, 0x4c640000, - 0x42000800, 0x0010af90, 0x50065800, 0x4a025808, - 0x00100f5a, 0x6000c008, 0x4200b800, 0x0010b0e4, - 0x585cc800, 0x4867c857, 0x8d0c052a, 0x05020011, + 0x42000800, 0x0010b210, 0x50065800, 0x4a025808, + 0x00100f5a, 0x6000c002, 0x4200b800, 0x0010b364, + 0x585cc800, 0x4867c857, 0x8d0c052a, 0x0502000f, 0x40ee5800, 0x492fc857, 0x4a025802, 0x00000100, 0x585c0014, 0x80000000, 0x90000503, 0x4800b814, - 0x4a025808, 0x001025a0, 0x585cc017, 0x8260c500, - 0x000000ff, 0x05f80a4e, 0x8060c0c4, 0x4863c857, - 0x4c580000, 0x61e8b001, 0x8058b040, 0x05f80a48, - 0x8c640502, 0x0500000b, 0x8d0c052a, 0x05fa0a44, - 0x4c580000, 0x4c600000, 0x0001f9ab, 0x585cc800, - 0x5c00c000, 0x5c00b000, 0x485bc857, 0x05fdf7f3, - 0x5c00b000, 0x4200b800, 0x0010b0e4, 0x8464cd42, - 0x4864b800, 0x592c0002, 0x90000580, 0x05f80a34, - 0x585c100d, 0x585c0014, 0x585c0818, 0x4978b818, - 0x80000040, 0x05000005, 0x82040400, 0x00000100, - 0x4800b818, 0x80081400, 0x492fc857, 0x480bc857, - 0x4863c857, 0x480a5803, 0x585c001d, 0x4803c857, - 0x585c180e, 0x800c1400, 0x480a5806, 0x4808b81b, - 0x80600400, 0x4800b81d, 0x4803c857, 0x800c0400, - 0x4800b819, 0x585c0810, 0x4807c857, 0x4803c857, - 0x80040d80, 0x05020004, 0x4978b81d, 0x585c080e, - 0x4804b819, 0x585c080e, 0x80040580, 0x82000500, - 0x000003ff, 0x05020004, 0x585c001f, 0x80000000, - 0x4800b81f, 0x585c080f, 0x48065807, 0x4807c857, - 0x64025801, 0x48625805, 0x412c1000, 0x0001f81c, - 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x5c025800, - 0x1c01f000, 0x6483c800, 0x0545ff9b, 0x59e40000, - 0x1c01f000, 0x60001020, 0x80081040, 0x05000022, - 0x0549f8c5, 0x05fc07fd, 0x59800801, 0x82040d00, - 0xfff006ff, 0x82040d40, 0x000ff900, 0x48070001, - 0x59e00002, 0x8c00051e, 0x05020016, 0x605c00f4, - 0x50001000, 0x82081500, 0x03f00000, 0x82080580, - 0x00800000, 0x0500000f, 0x61901000, 0x80081040, - 0x0500000c, 0x59800881, 0x8c040514, 0x05fc07fc, - 0x82040500, 0x00000180, 0x82000580, 0x00000180, - 0x05020004, 0x59800080, 0x84000540, 0x48030080, - 0x90000541, 0x64030000, 0x1c01f000, 0x0549f8a2, - 0x59800802, 0x4807c857, 0x8c040520, 0x05000007, - 0x64030000, 0x60101020, 0x50080000, 0x8400054c, - 0x44001000, 0x0501f000, 0x82040500, 0x00001084, - 0x05fa09c7, 0x8c040510, 0x05000006, 0x42000000, - 0x0010b0e2, 0x0545ff68, 0x4a030002, 0x00000100, - 0x8c040522, 0x0500002d, 0x59e00002, 0x8c00051e, - 0x0502002a, 0x601c20f6, 0x50102800, 0x4817c857, - 0x605c00f4, 0x50003000, 0x82180500, 0x000f0000, - 0x40003800, 0x40144000, 0x821c0580, 0x00020000, - 0x05020002, 0x902041c0, 0x8c18050c, 0x05000002, - 0x842041c0, 0x82204500, 0x000000ff, 0x90204401, - 0x8c200510, 0x05000005, 0x42000000, 0x0010b0e3, - 0x0545ff49, 0x61fc4001, 0x42001800, 0xffffff00, - 0x8c18050c, 0x05000003, 0x840c19c0, 0x842041c0, - 0x821c0580, 0x00020000, 0x05020003, 0x900c19c0, - 0x902041c0, 0x800c0505, 0x80200540, 0x44002000, - 0x4a030002, 0x00020000, 0x64030000, 0x1c01f000, - 0x4d2c0000, 0x64007000, 0x82040d00, 0x43200f80, - 0x05fa098b, 0x58380008, 0x4803c00f, 0x4a0370e4, - 0x00003000, 0x0539ff38, 0x583a5807, 0x592c0000, - 0x48007007, 0x800001c0, 0x05020002, 0x49787006, - 0x05f9fd1c, 0x5c025800, 0x42007000, 0x00020d9f, - 0x0001f031, 0x4803c856, 0x4c3c0000, 0x4d2c0000, - 0x4d300000, 0x58300009, 0x80025d40, 0x05f80974, - 0x592e6009, 0x4c300000, 0x0539ff3d, 0x5c006000, - 0x05f8096f, 0x58300002, 0x82000580, 0x00000100, - 0x0502000d, 0x5930780d, 0x583c0001, 0x80007d40, - 0x0500000b, 0x4802600d, 0x90000402, 0x48006003, - 0x583c0000, 0x48006005, 0x40301000, 0x0001f81c, - 0x0501f008, 0x640a5a07, 0x492fc857, 0x4c300000, - 0x0001fb5b, 0x5c025800, 0x05f9fcf6, 0x0005fc5a, - 0x5c026000, 0x5c025800, 0x5c007800, 0x1c01f000, - 0x4803c856, 0x4d2c0000, 0x4d300000, 0x42007000, - 0x00020d9f, 0x58380800, 0x90040582, 0x05020010, - 0x58386001, 0x58300009, 0x812c0580, 0x0502000c, - 0x59e00004, 0x8c00050e, 0x05fc07fe, 0x59dc0006, - 0x4803c857, 0x4a03b805, 0x20000000, 0x8c00053e, - 0x05fc07f8, 0x64007000, 0x0501f018, 0x58386005, - 0x40305000, 0x803061c0, 0x05f80939, 0x58300009, - 0x812c0580, 0x05000004, 0x40305000, 0x58306000, - 0x05fdf7f9, 0x40280000, 0x80300580, 0x58300000, - 0x05000006, 0x48005000, 0x800001c0, 0x05020007, - 0x48287004, 0x0501f005, 0x800001c0, 0x05020002, - 0x48007004, 0x48007005, 0x40325800, 0x05f9fcc1, - 0x5c026000, 0x5c025800, 0x0001f02b, 0x59300025, - 0x48025811, 0x59300026, 0x48025812, 0x59300a23, - 0x8c04050c, 0x05020007, 0x59300020, 0x59300a21, - 0x800408e0, 0x80040540, 0x5930081f, 0x0501f006, - 0x59300820, 0x59300221, 0x800408e0, 0x80040d40, - 0x5930001f, 0x9c0001c0, 0x9c0409c0, 0x48025813, - 0x48065814, 0x1c01f000, 0x592c0001, 0x80003540, - 0x05f80907, 0x58180a05, 0x82040d00, 0x000000ff, - 0xb004058a, 0x05fa0902, 0x592c1012, 0x592c1a13, - 0x58182206, 0x592c2c13, 0x592c0014, 0x800000e0, - 0x80142d40, 0x592c0014, 0x80003920, 0x58184406, - 0x58180207, 0x8c20050e, 0x05fa08f5, 0x800048e0, - 0x80244d40, 0x58180008, 0x4802602c, 0x8c20050c, - 0x05020009, 0x901c51c0, 0x841401c0, 0x82003d00, - 0x0000ffff, 0x80140120, 0x80280540, 0x9c0029c0, - 0x0501f003, 0x9c1429c0, 0x841c39c0, 0x480a601f, - 0x480e6020, 0x48126421, 0x48126221, 0x48166022, - 0x481e6423, 0x48226223, 0x48266024, 0x1c01f000, - 0x4c5c0000, 0x592c0001, 0x80006540, 0x05f808d8, - 0x58300a05, 0x82040d00, 0x000000ff, 0xb004058a, - 0x05fa08d3, 0x58302c06, 0x8c140506, 0x58300206, - 0x05000002, 0x80080400, 0x48026421, 0x48026221, - 0x58300207, 0x800008e0, 0x80040540, 0x48026024, - 0x8c14050a, 0x05020004, 0x592c0012, 0x80080400, - 0x4802601f, 0x58303207, 0x8c140510, 0x0502000c, - 0x90142d03, 0x90140582, 0x0500000e, 0x90140581, - 0x05000007, 0x40080800, 0x90180408, 0x40001000, - 0x0525fbe8, 0x40042000, 0x0501f006, 0x40080800, - 0x40181000, 0x4004b800, 0x0525fbe2, 0x40042000, - 0x4c100000, 0x05fdfd83, 0x05f808ad, 0x5c002000, - 0x50200000, 0x80004540, 0x0500005e, 0x58300a05, - 0x82040d00, 0x000000ff, 0xb004058a, 0x05020006, - 0x80204000, 0x58300406, 0x8c000510, 0x05000002, - 0x80204000, 0x50200000, 0x80000540, 0x0500000b, - 0x80301400, 0x58080002, 0x80102480, 0x0500101d, - 0x801021c0, 0x05000009, 0x80285040, 0x05000049, - 0x80204000, 0x05fdf7f4, 0x58300001, 0x80006540, - 0x05000044, 0x05fdf7df, 0x80285040, 0x05000041, - 0x80204000, 0x50200000, 0x80000540, 0x05020009, - 0x58300001, 0x80006540, 0x0500003a, 0x58300205, - 0x90004d0f, 0x82244400, 0x00100e26, 0x50204000, - 0x592c0209, 0x8400051e, 0x48025a09, 0x0501f010, - 0x80102080, 0x80102000, 0x48126012, 0x4813c857, - 0x58080802, 0x40100000, 0x80042480, 0x05f81874, - 0x58080000, 0x80102400, 0x48126010, 0x4813c857, - 0x592c0209, 0x8400055e, 0x48025a09, 0x59300008, - 0x8400052c, 0x48026008, 0x592c1001, 0x58080406, - 0x90000503, 0x90000581, 0x05020012, 0x599c0019, - 0x8c00050c, 0x0502000f, 0x90280581, 0x05020003, - 0x59300812, 0x0501f007, 0x80280840, 0x58080207, - 0x40001000, 0x0525fb8b, 0x59300012, 0x80040c00, - 0x48066013, 0x59300008, 0x8400056c, 0x48026008, - 0x592c1001, 0x58080406, 0x8c000510, 0x05000003, - 0x0501f822, 0x05000003, 0x80000580, 0x0501f002, - 0x90000541, 0x5c00b800, 0x1c01f000, 0x592c6801, - 0x803469c0, 0x05000017, 0x58347802, 0x58347406, - 0x90380503, 0x8c380510, 0x0c020006, 0x0c01f001, - 0x001011bb, 0x001011b8, 0x001011be, 0x001011c0, - 0x001011c0, 0x001011c0, 0x001011bb, 0x001011bb, - 0x803c00c6, 0x80102400, 0x0501f004, 0x803c00c6, - 0x80102480, 0x05001003, 0x80000580, 0x1c01f000, - 0x90000541, 0x1c01f000, 0x4c040000, 0x4c080000, - 0x4c600000, 0x592c0205, 0x82000500, 0x000000ff, - 0xb00005a8, 0x05000007, 0x90000582, 0x05000005, - 0x90000598, 0x05000003, 0x90000588, 0x05020037, - 0x592c6801, 0x803469c0, 0x05000034, 0x58340205, - 0x82000500, 0x000000ff, 0xb000058a, 0x0502002f, - 0x5834740a, 0x592cc208, 0x40380000, 0x8060c480, - 0x42007800, 0x00100e1f, 0x0501f82a, 0x05fe07ff, - 0x40607000, 0x503c0000, 0x80341400, 0x805c00c6, - 0x58088002, 0x80408480, 0x0500101b, 0x0500001a, - 0x58088800, 0x80448c00, 0x58089001, 0x90489440, - 0x59300827, 0x800409c0, 0x05000018, 0x4844080a, - 0x4848080b, 0x4840080c, 0x49780809, 0x80380040, - 0x05000003, 0x05020813, 0x48380809, 0x59300827, - 0x48340807, 0x483c0808, 0x503c0000, 0x48000806, - 0x90000541, 0x5c00c000, 0x5c001000, 0x5c000800, - 0x1c01f000, 0x58088002, 0x80400106, 0x805cbc80, - 0x0501f804, 0x05fe07dc, 0x80000580, 0x05fdf7f6, - 0x4803c856, 0x803c7800, 0x503c0000, 0x80000540, - 0x05000003, 0x80387040, 0x1c01f000, 0x58340001, - 0x80006d40, 0x0500000a, 0x58340205, 0x9000050f, - 0x82000400, 0x00100e26, 0x50007800, 0x803c79c0, - 0x05f40fd7, 0x80387040, 0x1c01f000, 0x40007000, - 0x1c01f000, 0x802850c6, 0x59306827, 0x58340006, - 0x58341007, 0x58341808, 0x58342009, 0x5834480d, - 0x80087c00, 0x583c0002, 0x80284480, 0x0500100f, - 0x80102040, 0x0500001f, 0x80244c80, 0x0500001d, - 0x40205000, 0x800c1800, 0x500c0000, 0x80000d40, - 0x05fe07f4, 0x58081001, 0x42001800, 0x00100e1d, - 0x60180000, 0x05fdf7ef, 0x80204080, 0x80204000, - 0x48106809, 0x583c0000, 0x80282c00, 0x583c3001, - 0x90183440, 0x500c0800, 0x48046806, 0x48086807, - 0x480c6808, 0x48106809, 0x4814680a, 0x4818680b, - 0x4820680c, 0x4824680d, 0x80000580, 0x1c01f000, - 0x90000541, 0x1c01f000, 0x4d2c0000, 0x0001f813, - 0x05f40fa3, 0x412c1000, 0x5c025800, 0x4a001008, - 0x000201c0, 0x90080409, 0x48001003, 0x0001f1b6, - 0x4d2c0000, 0x40325800, 0x05f9fb37, 0x5c025800, - 0x1c01f000, 0x4807c857, 0x05f5ff95, 0x42001000, - 0x0010cfad, 0x4a001003, 0x0010cfb6, 0x4a001008, - 0x000201c0, 0x49781009, 0x1c01f000, 0x59e00017, - 0x8c000500, 0x1c01f000, 0x0001f9c9, 0x4d040000, - 0x4c640000, 0x4c600000, 0x40120800, 0x400cc800, - 0x4014c000, 0x0501f021, 0x4803c856, 0x42000800, - 0x4fffffff, 0x46000800, 0x00002bad, 0x50040000, - 0x0501f000, 0x59e00017, 0x8c00050c, 0x05020005, - 0x59a8086a, 0x58040003, 0x8c000500, 0x0500000d, - 0x4c080000, 0x59a81069, 0x50080000, 0x84000542, - 0x44001000, 0x5c001000, 0x59e00017, 0x8c00050c, - 0x05fe07fe, 0x58040003, 0x8c000500, 0x05fe07fb, - 0x4d040000, 0x4c640000, 0x4c600000, 0x5804c800, - 0x58060801, 0x5804c002, 0x4a03b805, 0x20000000, - 0x59dc0006, 0x4a03b805, 0x30000000, 0x59dc0006, - 0x4a03b805, 0x70000000, 0x59dc0006, 0x4867b800, - 0x4907b801, 0x6413b802, 0x601c00e2, 0x44600000, - 0x4a03b805, 0x30000000, 0x59dc0006, 0x4a03b805, - 0x10000003, 0x59dc0006, 0x8c00053e, 0x05fc07fe, - 0x4a03b805, 0x20000000, 0x59dc0006, 0x5c00c000, - 0x5c00c800, 0x5c020800, 0x1c01f000, 0x4803c856, - 0x0545fe1a, 0x0001f1d2, 0x4803c856, 0x60f00800, - 0x48079000, 0x59c80000, 0x80040500, 0x05fe07fe, - 0x497b9005, 0x4a039035, 0x00880400, 0x59a8000d, - 0x800000e0, 0x4803900e, 0x64c39011, 0x4a03900f, - 0x001102e4, 0x4a039010, 0x001102e4, 0x65db9015, - 0x4a039003, 0x00001f07, 0x6503900d, 0x4a039000, - 0x00001600, 0x1c01f000, 0x59c80007, 0x8c000508, - 0x05020885, 0x59c80800, 0x8c040516, 0x05020003, - 0x90000506, 0x0c01f004, 0x4807c857, 0x9000050e, - 0x0c01f001, 0x001012e2, 0x001012e1, 0x0010534b, - 0x001012e1, 0x001012e4, 0x001012e1, 0x001012e4, - 0x001012e4, 0x001012e1, 0x001012e1, 0x001012e1, - 0x001012e1, 0x001012e4, 0x001012e1, 0x001012e4, - 0x001012e1, 0x05f5ff0e, 0x4803c857, 0x1c01f000, - 0x59c8080c, 0x4807c857, 0x82040500, 0x00006000, - 0x05000003, 0x0545fc67, 0x0501f005, 0x82040500, - 0x007f0000, 0x05000004, 0x0545fc34, 0x0525ffbc, - 0x0501f02c, 0x90040514, 0x0500000d, 0x0545fc8c, - 0x916c0583, 0x05000008, 0x0519ff37, 0x05000003, - 0x0515fa3d, 0x0501f004, 0x64075014, 0x6006d800, - 0x0519feaf, 0x0501f820, 0x0501f01e, 0x82040500, - 0x00001c00, 0x05000004, 0x0545fc5c, 0x0501f81a, - 0x0501f018, 0x82040500, 0x00000140, 0x05000004, - 0x0545fc69, 0x0501f814, 0x0501f012, 0x82040500, - 0x00008000, 0x0500000f, 0x0519ff1f, 0x0500000b, - 0x59c400a4, 0x9000050f, 0x9000058b, 0x05020007, - 0x4c040000, 0x0515fa37, 0x60780000, 0x80000040, - 0x05fe07ff, 0x5c000800, 0x0545fc2f, 0x0501f802, - 0x1c01f000, 0x4c0c0000, 0x4c100000, 0x4c140000, - 0x05fdf8eb, 0x5c002800, 0x5c002000, 0x5c001800, - 0x1c01f000, 0x4803c856, 0x59a80804, 0x59a80020, - 0x82000500, 0xfffff000, 0x80040540, 0x48035020, - 0x59a80024, 0x82000500, 0xfffff000, 0x80040540, - 0x48035024, 0x59a80028, 0x82000500, 0xfffff000, - 0x80040540, 0x48035028, 0x48078882, 0x82040480, - 0x00000204, 0x05021004, 0x42001000, 0x00240f04, - 0x0501f00f, 0x82040480, 0x00000404, 0x05021004, - 0x42001000, 0x00440800, 0x0501f009, 0x82040480, - 0x00000804, 0x05021004, 0x42001000, 0x00840410, - 0x0501f003, 0x42001000, 0x00880400, 0x480b9035, - 0x0501f33d, 0x59c80815, 0x05f5fe97, 0x40680800, - 0xb0040d3c, 0x48079000, 0x59c80000, 0x80040500, - 0x05fe07fe, 0x8c040504, 0x0500001b, 0x59c80035, - 0x48039035, 0x59a8008a, 0x80000540, 0x05000016, - 0x4c300000, 0x600060de, 0x58300801, 0x82040d00, - 0xffc00000, 0x8004090c, 0x58300000, 0x90000541, - 0x48006000, 0x58300000, 0x8c000500, 0x05fe07fe, - 0x82000500, 0xfc00ffff, 0x80040540, 0x84000574, - 0x48006000, 0x58300000, 0x8c000534, 0x05fe07fe, - 0x5c006000, 0x59c80000, 0x82000540, 0x00001200, - 0x48039000, 0x1c01f000, 0x42006000, 0x7ff4c000, - 0x58300003, 0x8c000502, 0x0502000a, 0x600060de, - 0x64686000, 0x58300000, 0x8c000504, 0x05fe07fe, - 0x641c6002, 0x59a8008a, 0x84000540, 0x4803508a, - 0x1c01f000, 0x600060de, 0x58300801, 0x9004050c, - 0x05f60e67, 0x60f00800, 0x05fdf7c6, 0x4853c857, - 0x497b8801, 0x850e1d1a, 0x5050b000, 0x485bc857, - 0x8058b1c0, 0x0500089d, 0x82580480, 0x00000804, - 0x0502189a, 0x60040000, 0x61000801, 0x0501fd82, - 0x40582000, 0x8050a000, 0x50500000, 0x80102400, - 0x9058b483, 0x8050a000, 0x485bc857, 0x4853c857, - 0x50501000, 0x80082404, 0x60101800, 0x82080500, - 0x000000ff, 0x61000821, 0x0501fd73, 0x80081110, - 0x800c1840, 0x05fe07fa, 0x8050a000, 0x8058b040, - 0x05fe07f4, 0x4803c856, 0x41780000, 0x61000801, - 0x0501fd69, 0x50501000, 0x80082404, 0x0502087b, - 0x4803c856, 0x1c01f000, 0x4a035048, 0xaabbccdd, - 0x600c0000, 0x0501fcbc, 0x600c0000, 0x0501fce4, - 0x60300868, 0x0501fd54, 0x90040541, 0x60300868, - 0x0501fd59, 0x60480888, 0x0501fd4f, 0x90040548, - 0x60480888, 0x0501fd54, 0x60180818, 0x0501fd4a, - 0x82040540, 0x00000080, 0x60180818, 0x0501fd4e, - 0x60480828, 0x0501fd44, 0x90040541, 0x60480828, - 0x0501fd49, 0x59a8004f, 0x8c00050e, 0x05000006, - 0x4803c857, 0x82000500, 0x0000ff00, 0x80000110, - 0x0501f002, 0x60e00001, 0x60300800, 0x0501fd3e, - 0x60380940, 0x0501fd34, 0x82040500, 0xffffff0f, - 0x0501ff0c, 0x05020003, 0x90000540, 0x0501f002, - 0x90000550, 0x60380940, 0x0501fd33, 0x60380938, - 0x0501fd29, 0x90040550, 0x60380938, 0x0501fd2e, - 0x60800000, 0x61000859, 0x0501fd2b, 0x61000000, - 0x61000851, 0x0501fd28, 0x60300000, 0x61800861, - 0x0501fd25, 0x60840000, 0x61800821, 0x0501fd22, - 0x59c40001, 0x84000574, 0x48038801, 0x850e1d5a, - 0x61602004, 0x6029d000, 0x0501f83c, 0x4813c857, - 0x61000849, 0x0501fd10, 0x4807c857, 0x82041500, - 0x000000c0, 0x82081580, 0x000000c0, 0x05000004, - 0x80102040, 0x05000825, 0x05fdf7f3, 0x4803c856, - 0x60c82000, 0x6029d000, 0x0501f82c, 0x60380878, - 0x0501fd01, 0x90040d01, 0x05020004, 0x80102040, - 0x0500081a, 0x05fdf7f8, 0x4803c856, 0x61702001, - 0x6029d000, 0x0525f866, 0x60380818, 0x0501fcf6, - 0x90040d10, 0x05020004, 0x80102040, 0x05f40dd0, - 0x05fdf7f8, 0x4803c856, 0x60a02000, 0x6029d000, - 0x0525f85b, 0x603808b8, 0x0501fceb, 0x90040d04, - 0x05000004, 0x80102040, 0x05f40dc5, 0x05fdf7f8, - 0x4803c856, 0x1c01f000, 0x4803c856, 0x4a03c020, - 0x00004010, 0x4a03c011, 0x40100011, 0x05006000, - 0x4203e000, 0x40000000, 0x4203e000, 0x30000001, - 0x4803c856, 0x0501f000, 0x61201801, 0x800c1840, - 0x05fe07ff, 0x80e9d040, 0x05fe07fc, 0x1c01f000, - 0x4803c856, 0x497b88a9, 0x64078807, 0x497b8807, - 0x59c40005, 0x48038805, 0x0501fdef, 0x0501fe32, - 0x0501f9e6, 0x4a0388a7, 0x0000f7f7, 0x4a0388a3, - 0x8000403c, 0x4a0388ae, 0x000061a8, 0x59c40001, - 0x82000540, 0x185fa063, 0x48038801, 0x4a038810, - 0x00410108, 0x4a038811, 0x00520608, 0x4a038812, - 0x00450320, 0x4a038813, 0x00440405, 0x4a03881c, - 0x004132e1, 0x4a038850, 0x80000108, 0x64238860, - 0x64238870, 0x4a038851, 0x80000508, 0x4a038861, - 0x00800000, 0x4a038871, 0x00800000, 0x4a038852, - 0x80000708, 0x4a038862, 0x00800000, 0x4a038872, - 0x00800000, 0x4a038853, 0x80000608, 0x497b8863, - 0x4a038873, 0x00800000, 0x4a038882, 0x00000840, - 0x4a0388a5, 0x000000fe, 0x647b88a6, 0x4a0388b0, - 0x00007530, 0x4a038802, 0x0000ffff, 0x4a038806, - 0xc0e80b00, 0x1c01f000, 0x850e1d4e, 0x1c01f000, - 0x59c40805, 0x59c40006, 0x80040d00, 0x05f40d6c, - 0x82040500, 0x00e80b00, 0x05020004, 0x8c04053e, - 0x050208c4, 0x0501f005, 0x82040500, 0x00880b00, - 0x05f60d59, 0x05f5fd62, 0x4c5c0000, 0x4c600000, - 0x59c4b805, 0x59c410a3, 0x84081518, 0x825c0500, - 0x04000000, 0x05020d6e, 0x59c40006, 0x8c000500, - 0x05000003, 0x8c5c0500, 0x0502007f, 0x485fc857, - 0x0519fd91, 0x0500001a, 0x59c40005, 0x82000500, - 0x000000c0, 0x05000042, 0x0519fdac, 0x05020040, - 0x59c40006, 0x82000500, 0x000000f0, 0x05020004, - 0x4a038805, 0x000000c0, 0x0501f039, 0x59a80015, - 0x84000506, 0x48035015, 0x42006000, 0xff203fff, - 0x42006800, 0x40000000, 0x0515f9db, 0x60400800, - 0x42001000, 0x00103dfd, 0x0521ffc0, 0x8c5c0534, - 0x0502002b, 0x4a035013, 0x0000aaaa, 0x59c40005, - 0x8c00050c, 0x0502000f, 0x8c00050e, 0x05020015, - 0x8c00050a, 0x0502001b, 0x8c000508, 0x05000008, - 0x59a80011, 0x90000589, 0x05020005, 0x42000000, - 0x0010afab, 0x0545facc, 0x0519ff21, 0x0501f04c, - 0x42000000, 0x0010afb9, 0x0545fac7, 0x41781800, - 0x60042000, 0x0501fd26, 0x64035014, 0x0501f00e, - 0x42000000, 0x0010afba, 0x0545fabf, 0x41781800, - 0x60082000, 0x0501fd1e, 0x640b5014, 0x0501f006, - 0x42000000, 0x0010afad, 0x0545fab7, 0x0519feb2, - 0x0501f037, 0x0519ff5e, 0x0501f035, 0x8c5c0534, - 0x05000031, 0x59c40005, 0x8c00053a, 0x05020004, - 0x42000000, 0x0010afa1, 0x0545faab, 0x4a038805, - 0x20000000, 0x0519fd40, 0x0502000e, 0x4a038805, - 0x04000000, 0x59c418a8, 0x60002000, 0x0501fd04, - 0x0519fd4f, 0x05020005, 0x64075014, 0x6006d800, - 0x0519fcb3, 0x0501f050, 0x41780000, 0x0519fd06, - 0x0501fcf4, 0x4000c000, 0x0501fc3a, 0x916c1584, - 0x0502000b, 0x8c5c0500, 0x05020013, 0x8d0c0506, - 0x05020004, 0x59c410a3, 0x90081548, 0x480b88a3, - 0x59c41006, 0x84081540, 0x480b8806, 0x4a038805, - 0x04000000, 0x6006d800, 0x497b5010, 0x8d0c0518, - 0x05020004, 0x4803c856, 0x850e1d06, 0x0515f83e, - 0x0511fadb, 0x8c5c053c, 0x0502084f, 0x8c5c0500, - 0x0500002e, 0x42000000, 0x0010b0be, 0x0545fa7a, - 0x64078805, 0x6148b006, 0x6191d000, 0x4c580000, - 0x0521ff5f, 0x0501fbb1, 0x5c00b000, 0x05000004, - 0x8058b040, 0x05fe07f9, 0x0501f003, 0x64078805, - 0x0501f01e, 0x59c40006, 0x84000500, 0x48038806, - 0x0525fda5, 0x497b8880, 0x0501fdbe, 0x05000007, - 0x59e00013, 0x8c000516, 0x05000004, 0x60142000, - 0x0519ff4b, 0x0501f003, 0x60182000, 0x0519ff48, - 0x59c400a3, 0x82000500, 0xfcf8ffff, 0x480388a3, - 0x640b5075, 0x6012d800, 0x64078805, 0x05f5fecb, - 0x0501fb2b, 0x497b503a, 0x64075047, 0x497b5070, - 0x0201f800, 0x0010fada, 0x825cbd00, 0xbbfffffe, - 0x485f8805, 0x5c00c000, 0x5c00b800, 0x1c01f000, - 0x4d180000, 0x59c41004, 0x480bc857, 0x8c080500, - 0x05000006, 0x4803c856, 0x4a01a8e5, 0x00000800, - 0x0525fe2a, 0x0501f007, 0x82080500, 0x000001f0, - 0x05000004, 0x4803c856, 0x0525ff4f, 0x05260e42, - 0x4a038805, 0x80000000, 0x5c023000, 0x1c01f000, - 0x59c408a3, 0x4807c857, 0x84040d40, 0x480788a3, - 0x1c01f000, 0x4d900000, 0x4dd00000, 0x4da40000, - 0x4d140000, 0x4cd80000, 0x4a038805, 0x40000000, - 0x42000000, 0x0010afb3, 0x0545fa27, 0x0525fa0e, - 0x59c41004, 0x8c080500, 0x05000040, 0x598e600b, - 0x4a01a8e5, 0x00000800, 0x813261c0, 0x05000024, - 0x59300403, 0x900005b2, 0x05020021, 0x5930001e, - 0x48038833, 0x4a038807, 0x00018000, 0x6009d000, - 0x0521feff, 0x497b8807, 0x6009d000, 0x0521fefc, - 0x0525fc90, 0x60c1d0ea, 0x0521fef9, 0x59c408a4, - 0x90040d0f, 0x90040d80, 0x05000004, 0x42000000, - 0x00200000, 0x0501fb91, 0x0525f944, 0x59300009, - 0x80000540, 0x05f40c5e, 0x40025800, 0x4a025a05, - 0x00000103, 0x5931d82d, 0x58ef400a, 0x58ec0008, - 0x0801f800, 0x0005fc5a, 0x0501f032, 0x598c000d, - 0x82001c80, 0x000000c8, 0x0502100c, 0x80000000, - 0x4803180d, 0x59c400a4, 0x9000050f, 0x90000582, - 0x05020004, 0x42000000, 0x00200000, 0x0501fb77, - 0x0521fe7a, 0x0501f023, 0x4933c857, 0x0525fc69, - 0x813261c0, 0x0500001f, 0x64066203, 0x609e7000, - 0x0005fc78, 0x0501f01b, 0x0525fef7, 0x05000019, - 0x0525ff1e, 0x0521fe96, 0x59926005, 0x813261c0, - 0x0500000d, 0x61201801, 0x0525fee6, 0x0502000a, - 0x59c400a4, 0x9000050f, 0x90000582, 0x05020004, - 0x42000000, 0x00200000, 0x0501fb5c, 0x0521fe65, - 0x0501f008, 0x4933c857, 0x0525fbf5, 0x813261c0, - 0x05000004, 0x613e7000, 0x640e6203, 0x0005fc78, - 0x5c01b000, 0x5c022800, 0x5c034800, 0x5c03a000, - 0x5c032000, 0x0525f198, 0x40680000, 0x810c0d80, - 0x8c04050e, 0x05000051, 0x4803c857, 0x8d0c050e, - 0x0500001f, 0x850e1d0e, 0x497b5075, 0x42000000, - 0x0010af9a, 0x0545f9b8, 0x0545fa64, 0x60441100, - 0x59c40001, 0x82000500, 0x00018000, 0x90001d80, - 0x0500000b, 0x82001d80, 0x00008000, 0x0500000a, - 0x82001d80, 0x00010000, 0x05000009, 0x82001d80, - 0x00018000, 0x05000008, 0x05f5fc01, 0x60001800, - 0x0501f006, 0x60041800, 0x0501f004, 0x600c1800, - 0x0501f002, 0x60101800, 0x050df70c, 0x850e1d4e, - 0x59a80875, 0x800409c0, 0x05020006, 0x59c4000d, - 0x8c000520, 0x05000003, 0x600c1800, 0x0501f002, - 0x40041800, 0x0545fa29, 0x4c0c0000, 0x41782000, - 0x0501fce8, 0x0500000f, 0x0501fcca, 0x60042000, - 0x0502000c, 0x0501fcd5, 0x05020006, 0x60082000, - 0x0501f8c2, 0x05020007, 0x60102000, 0x0501f005, - 0x600c2000, 0x0501f89c, 0x05020002, 0x60142000, - 0x5c001800, 0x60481100, 0x050dfeec, 0x05f5fdf3, - 0x0545fa8d, 0x0502000d, 0x4d200000, 0x61fe4001, - 0x0501f84f, 0x5c024000, 0x4d400000, 0x4d3c0000, - 0x60a28000, 0x60227800, 0x0201f800, 0x0010ebe6, - 0x5c027800, 0x5c028000, 0x1c01f000, 0x4803c857, - 0x82000400, 0x00102013, 0x50000800, 0x82040d00, - 0x000000ff, 0x1c01f000, 0x4803c856, 0x4c580000, - 0x6040b000, 0x497b88ac, 0x497b88ad, 0x8058b040, - 0x05fe07fe, 0x5c00b000, 0x1c01f000, 0x40680800, - 0x4807c857, 0x80041908, 0x480f88ac, 0x9004250f, - 0x82102400, 0x0010a0cc, 0x50102000, 0x59c400ad, - 0x80100540, 0x480f88ac, 0x480388ad, 0x1c01f000, - 0x4807c857, 0x80041908, 0x480f88ac, 0x9004250f, - 0x82102400, 0x0010a0cc, 0x50102000, 0x59c400ad, - 0x80101500, 0x05000004, 0x80100580, 0x480f88ac, - 0x480388ad, 0x1c01f000, 0x4803c857, 0x4c080000, - 0x4c040000, 0x4c000000, 0x59c40892, 0x4807c857, - 0x80041580, 0x0500000e, 0x80041480, 0x05021006, - 0x80081080, 0x80081000, 0x4008b000, 0x60040004, - 0x0501f003, 0x4008b000, 0x60400004, 0x48038886, - 0x8058b040, 0x05fe07fe, 0x497b8886, 0x5c000000, - 0x5c000800, 0x5c001000, 0x1c01f000, 0x4803c856, - 0x8d0c0520, 0x05000003, 0x60ba8000, 0x0541f232, - 0x1c01f000, 0x0501f803, 0x40058800, 0x1c01f000, - 0x59a8008a, 0x80000540, 0x05000008, 0x0519fbb6, - 0x60280800, 0x0502000e, 0x600008de, 0x58040001, - 0x8000092c, 0x0501f00a, 0x59c80835, 0x82040d00, - 0x00001f00, 0x80040910, 0x80040800, 0x59a8008a, - 0x80000540, 0x05000002, 0x61680804, 0x4807c857, - 0x1c01f000, 0x59a8008a, 0x80000540, 0x0500001c, - 0x599c1a01, 0x60a80801, 0x820c0480, 0x00000204, - 0x0500100a, 0x61680800, 0x820c0480, 0x00000404, - 0x05001006, 0x60b80800, 0x820c0480, 0x00000804, - 0x05001002, 0x60b40800, 0x4c300000, 0x600060de, - 0x58301000, 0x82081500, 0xfc00ffff, 0x800400e0, - 0x80080540, 0x84000574, 0x48006000, 0x58300000, - 0x8c000534, 0x05fe07fe, 0x5c006000, 0x1c01f000, - 0x0501f805, 0x60058800, 0x05000002, 0x60018800, - 0x1c01f000, 0x4c000000, 0x59a8003b, 0x4803c857, - 0x90000580, 0x5c000000, 0x1c01f000, 0x0501f805, - 0x60058800, 0x05000002, 0x60018800, 0x1c01f000, - 0x4c000000, 0x59a8003b, 0x4803c857, 0x90000581, - 0x5c000000, 0x1c01f000, 0x0501f805, 0x60058800, - 0x05000002, 0x60018800, 0x1c01f000, 0x4c000000, - 0x59a8003b, 0x4803c857, 0x90000583, 0x5c000000, + 0x4a025808, 0x00102646, 0x585cc017, 0x8260c500, + 0x000000ff, 0x05f80a4e, 0x4c580000, 0x61e8b001, + 0x8058b040, 0x05f80a4a, 0x8c640502, 0x0500000b, + 0x8d0c052a, 0x05fa0a46, 0x4c580000, 0x4c600000, + 0x0001f9ab, 0x585cc800, 0x5c00c000, 0x5c00b000, + 0x485bc857, 0x05fdf7f3, 0x5c00b000, 0x4200b800, + 0x0010b364, 0x8464cd42, 0x4864b800, 0x592c0002, + 0x90000580, 0x05f80a36, 0x585c100d, 0x585c0018, + 0x80081400, 0x80600400, 0x4800b818, 0x585c0014, + 0x800001c0, 0x05020002, 0x4978b818, 0x8060c0c4, + 0x492fc857, 0x480bc857, 0x4863c857, 0x480a5803, + 0x585c001d, 0x4803c857, 0x585c180e, 0x800c1400, + 0x480a5806, 0x4808b81b, 0x80600400, 0x4800b81d, + 0x4803c857, 0x800c0400, 0x4800b819, 0x585c0810, + 0x4807c857, 0x4803c857, 0x80040d80, 0x05020004, + 0x4978b81d, 0x585c080e, 0x4804b819, 0x585c080e, + 0x80040580, 0x82000500, 0x000003ff, 0x05020004, + 0x585c001f, 0x80000000, 0x4800b81f, 0x585c080f, + 0x48065807, 0x4807c857, 0x64025801, 0x48625805, + 0x412c1000, 0x0001f81c, 0x5c00c800, 0x5c00c000, + 0x5c00b800, 0x5c025800, 0x1c01f000, 0x6483c800, + 0x0549fa4d, 0x59e40000, 0x1c01f000, 0x60001020, + 0x80081040, 0x05000022, 0x0549fb77, 0x05fc07fd, + 0x59800801, 0x82040d00, 0xfff006ff, 0x82040d40, + 0x000ff900, 0x48070001, 0x59e00002, 0x8c00051e, + 0x05020016, 0x605c00f4, 0x50001000, 0x82081500, + 0x03f00000, 0x82080580, 0x00800000, 0x0500000f, + 0x61901000, 0x80081040, 0x0500000c, 0x59800881, + 0x8c040514, 0x05fc07fc, 0x82040500, 0x00000180, + 0x82000580, 0x00000180, 0x05020004, 0x59800080, + 0x84000540, 0x48030080, 0x90000541, 0x64030000, + 0x1c01f000, 0x0549fb54, 0x59800802, 0x4807c857, + 0x8c040520, 0x05000007, 0x64030000, 0x60101020, + 0x50080000, 0x8400054c, 0x44001000, 0x0501f000, + 0x82040500, 0x00001084, 0x05fa09c9, 0x8c040510, + 0x05000006, 0x42000000, 0x0010b362, 0x0549fa1a, + 0x4a030002, 0x00000100, 0x8c040522, 0x0500002d, + 0x59e00002, 0x8c00051e, 0x0502002a, 0x601c20f6, + 0x50102800, 0x4817c857, 0x605c00f4, 0x50003000, + 0x82180500, 0x000f0000, 0x40003800, 0x40144000, + 0x821c0580, 0x00020000, 0x05020002, 0x902041c0, + 0x8c18050c, 0x05000002, 0x842041c0, 0x82204500, + 0x000000ff, 0x90204401, 0x8c200510, 0x05000005, + 0x42000000, 0x0010b363, 0x0549f9fb, 0x61fc4001, + 0x42001800, 0xffffff00, 0x8c18050c, 0x05000003, + 0x840c19c0, 0x842041c0, 0x821c0580, 0x00020000, + 0x05020003, 0x900c19c0, 0x902041c0, 0x800c0505, + 0x80200540, 0x44002000, 0x4a030002, 0x00020000, + 0x64030000, 0x1c01f000, 0x4d2c0000, 0x64007000, + 0x82040d00, 0x43200f80, 0x05fa098d, 0x58380008, + 0x4803c00f, 0x4a0370e4, 0x00003000, 0x053df91b, + 0x583a5807, 0x592c0000, 0x48007007, 0x800001c0, + 0x05020002, 0x49787006, 0x05f9fd1e, 0x5c025800, + 0x42007000, 0x00020d9f, 0x0001f031, 0x4803c856, + 0x4c3c0000, 0x4d2c0000, 0x4d300000, 0x58300009, + 0x80025d40, 0x05f80976, 0x592e6009, 0x4c300000, + 0x053df920, 0x5c006000, 0x05f80971, 0x58300002, + 0x82000580, 0x00000100, 0x0502000d, 0x5930780d, + 0x583c0001, 0x80007d40, 0x0500000b, 0x4802600d, + 0x90000402, 0x48006003, 0x583c0000, 0x48006005, + 0x40301000, 0x0001f81c, 0x0501f008, 0x640a5a07, + 0x492fc857, 0x4c300000, 0x0001fb5b, 0x5c025800, + 0x05f9fcf8, 0x0005fc5a, 0x5c026000, 0x5c025800, + 0x5c007800, 0x1c01f000, 0x4803c856, 0x4d2c0000, + 0x4d300000, 0x42007000, 0x00020d9f, 0x58380800, + 0x90040582, 0x05020010, 0x58386001, 0x58300009, + 0x812c0580, 0x0502000c, 0x59e00004, 0x8c00050e, + 0x05fc07fe, 0x59dc0006, 0x4803c857, 0x4a03b805, + 0x20000000, 0x8c00053e, 0x05fc07f8, 0x64007000, + 0x0501f018, 0x58386005, 0x40305000, 0x803061c0, + 0x05f8093b, 0x58300009, 0x812c0580, 0x05000004, + 0x40305000, 0x58306000, 0x05fdf7f9, 0x40280000, + 0x80300580, 0x58300000, 0x05000006, 0x48005000, + 0x800001c0, 0x05020007, 0x48287004, 0x0501f005, + 0x800001c0, 0x05020002, 0x48007004, 0x48007005, + 0x40325800, 0x05f9fcc3, 0x5c026000, 0x5c025800, + 0x0001f02b, 0x59300025, 0x48025811, 0x59300026, + 0x48025812, 0x59300a23, 0x8c04050c, 0x05020007, + 0x59300020, 0x59300a21, 0x800408e0, 0x80040540, + 0x5930081f, 0x0501f006, 0x59300820, 0x59300221, + 0x800408e0, 0x80040d40, 0x5930001f, 0x9c0001c0, + 0x9c0409c0, 0x48025813, 0x48065814, 0x1c01f000, + 0x592c0001, 0x80003540, 0x05f80909, 0x58180a05, + 0x82040d00, 0x000000ff, 0xb004058a, 0x05fa0904, + 0x592c1012, 0x592c1a13, 0x58182206, 0x592c2c13, + 0x592c0014, 0x800000e0, 0x80142d40, 0x592c0014, + 0x80003920, 0x58184406, 0x58180207, 0x8c20050e, + 0x05fa08f7, 0x800048e0, 0x80244d40, 0x58180008, + 0x4802602c, 0x8c20050c, 0x05020009, 0x901c51c0, + 0x841401c0, 0x82003d00, 0x0000ffff, 0x80140120, + 0x80280540, 0x9c0029c0, 0x0501f003, 0x9c1429c0, + 0x841c39c0, 0x480a601f, 0x480e6020, 0x48126421, + 0x48126221, 0x48166022, 0x481e6423, 0x48226223, + 0x48266024, 0x1c01f000, 0x4c5c0000, 0x592c0001, + 0x80006540, 0x05f808da, 0x58300a05, 0x82040d00, + 0x000000ff, 0xb004058a, 0x05fa08d5, 0x58302c06, + 0x8c140506, 0x58300206, 0x05000002, 0x80080400, + 0x48026421, 0x48026221, 0x58300207, 0x800008e0, + 0x80040540, 0x48026024, 0x8c14050a, 0x05020004, + 0x592c0012, 0x80080400, 0x4802601f, 0x58303207, + 0x8c140510, 0x0502000c, 0x90142d03, 0x90140582, + 0x0500000e, 0x90140581, 0x05000007, 0x40080800, + 0x90180408, 0x40001000, 0x0525fdac, 0x40042000, + 0x0501f006, 0x40080800, 0x40181000, 0x4004b800, + 0x0525fda6, 0x40042000, 0x4c100000, 0x05fdfd85, + 0x05f808af, 0x5c002000, 0x50200000, 0x80004540, + 0x0500005e, 0x58300a05, 0x82040d00, 0x000000ff, + 0xb004058a, 0x05020006, 0x80204000, 0x58300406, + 0x8c000510, 0x05000002, 0x80204000, 0x50200000, + 0x80000540, 0x0500000b, 0x80301400, 0x58080002, + 0x80102480, 0x0500101d, 0x801021c0, 0x05000009, + 0x80285040, 0x05000049, 0x80204000, 0x05fdf7f4, + 0x58300001, 0x80006540, 0x05000044, 0x05fdf7df, + 0x80285040, 0x05000041, 0x80204000, 0x50200000, + 0x80000540, 0x05020009, 0x58300001, 0x80006540, + 0x0500003a, 0x58300205, 0x90004d0f, 0x82244400, + 0x00100e26, 0x50204000, 0x592c0209, 0x8400051e, + 0x48025a09, 0x0501f010, 0x80102080, 0x80102000, + 0x48126012, 0x4813c857, 0x58080802, 0x40100000, + 0x80042480, 0x05f81876, 0x58080000, 0x80102400, + 0x48126010, 0x4813c857, 0x592c0209, 0x8400055e, + 0x48025a09, 0x59300008, 0x8400052c, 0x48026008, + 0x592c1001, 0x58080406, 0x90000503, 0x90000581, + 0x05020012, 0x599c0019, 0x8c00050c, 0x0502000f, + 0x90280581, 0x05020003, 0x59300812, 0x0501f007, + 0x80280840, 0x58080207, 0x40001000, 0x0525fd4f, + 0x59300012, 0x80040c00, 0x48066013, 0x59300008, + 0x8400056c, 0x48026008, 0x592c1001, 0x58080406, + 0x8c000510, 0x05000003, 0x0501f822, 0x05000003, + 0x80000580, 0x0501f002, 0x90000541, 0x5c00b800, + 0x1c01f000, 0x592c6801, 0x803469c0, 0x05000017, + 0x58347802, 0x58347406, 0x90380503, 0x8c380510, + 0x0c020006, 0x0c01f001, 0x001011b9, 0x001011b6, + 0x001011bc, 0x001011be, 0x001011be, 0x001011be, + 0x001011b9, 0x001011b9, 0x803c00c6, 0x80102400, + 0x0501f004, 0x803c00c6, 0x80102480, 0x05001003, + 0x80000580, 0x1c01f000, 0x90000541, 0x1c01f000, + 0x4c040000, 0x4c080000, 0x4c600000, 0x592c0205, + 0x82000500, 0x000000ff, 0xb00005a8, 0x05000007, + 0x90000582, 0x05000005, 0x90000598, 0x05000003, + 0x90000588, 0x05020037, 0x592c6801, 0x803469c0, + 0x05000034, 0x58340205, 0x82000500, 0x000000ff, + 0xb000058a, 0x0502002f, 0x5834740a, 0x592cc208, + 0x40380000, 0x8060c480, 0x42007800, 0x00100e1f, + 0x0501f82a, 0x05fe07ff, 0x40607000, 0x503c0000, + 0x80341400, 0x805c00c6, 0x58088002, 0x80408480, + 0x0500101b, 0x0500001a, 0x58088800, 0x80448c00, + 0x58089001, 0x90489440, 0x59300827, 0x800409c0, + 0x05000018, 0x4844080a, 0x4848080b, 0x4840080c, + 0x49780809, 0x80380040, 0x05000003, 0x05020813, + 0x48380809, 0x59300827, 0x48340807, 0x483c0808, + 0x503c0000, 0x48000806, 0x90000541, 0x5c00c000, + 0x5c001000, 0x5c000800, 0x1c01f000, 0x58088002, + 0x80400106, 0x805cbc80, 0x0501f804, 0x05fe07dc, + 0x80000580, 0x05fdf7f6, 0x4803c856, 0x803c7800, + 0x503c0000, 0x80000540, 0x05000003, 0x80387040, + 0x1c01f000, 0x58340001, 0x80006d40, 0x0500000a, + 0x58340205, 0x9000050f, 0x82000400, 0x00100e26, + 0x50007800, 0x803c79c0, 0x05f40fd9, 0x80387040, + 0x1c01f000, 0x40007000, 0x1c01f000, 0x802850c6, + 0x59306827, 0x58340006, 0x58341007, 0x58341808, + 0x58342009, 0x5834480d, 0x80087c00, 0x583c0002, + 0x80284480, 0x0500100f, 0x80102040, 0x0500001f, + 0x80244c80, 0x0500001d, 0x40205000, 0x800c1800, + 0x500c0000, 0x80000d40, 0x05fe07f4, 0x58081001, + 0x42001800, 0x00100e1d, 0x60180000, 0x05fdf7ef, + 0x80204080, 0x80204000, 0x48106809, 0x583c0000, + 0x80282c00, 0x583c3001, 0x90183440, 0x500c0800, + 0x48046806, 0x48086807, 0x480c6808, 0x48106809, + 0x4814680a, 0x4818680b, 0x4820680c, 0x4824680d, + 0x80000580, 0x1c01f000, 0x90000541, 0x1c01f000, + 0x4d2c0000, 0x0001f813, 0x05f40fa5, 0x412c1000, + 0x5c025800, 0x4a001008, 0x000201c0, 0x90080409, + 0x48001003, 0x0001f1b6, 0x4d2c0000, 0x40325800, + 0x05f9fb39, 0x5c025800, 0x1c01f000, 0x4807c857, + 0x05f5ff97, 0x42001000, 0x0010d22d, 0x4a001003, + 0x0010d236, 0x4a001008, 0x000201c0, 0x49781009, + 0x1c01f000, 0x59e00017, 0x8c000500, 0x1c01f000, + 0x0001f9c9, 0x4d040000, 0x4c640000, 0x4c600000, + 0x40120800, 0x400cc800, 0x4014c000, 0x0501f021, + 0x4803c856, 0x42000800, 0x4fffffff, 0x46000800, + 0x00002bad, 0x50040000, 0x0501f000, 0x59e00017, + 0x8c00050c, 0x05020005, 0x59a8086a, 0x58040003, + 0x8c000500, 0x0500000d, 0x4c080000, 0x59a81069, + 0x50080000, 0x84000542, 0x44001000, 0x5c001000, + 0x59e00017, 0x8c00050c, 0x05fe07fe, 0x58040003, + 0x8c000500, 0x05fe07fb, 0x4d040000, 0x4c640000, + 0x4c600000, 0x5804c800, 0x58060801, 0x5804c002, + 0x4a03b805, 0x20000000, 0x59dc0006, 0x4a03b805, + 0x30000000, 0x59dc0006, 0x4a03b805, 0x70000000, + 0x59dc0006, 0x4867b800, 0x4907b801, 0x6413b802, + 0x601c00e2, 0x44600000, 0x4a03b805, 0x30000000, + 0x59dc0006, 0x4a03b805, 0x10000003, 0x59dc0006, + 0x8c00053e, 0x05fc07fe, 0x4a03b805, 0x20000000, + 0x59dc0006, 0x5c00c000, 0x5c00c800, 0x5c020800, + 0x1c01f000, 0x4803c856, 0x0549f8cc, 0x0001f1d2, + 0x4803c856, 0x60f00800, 0x48079000, 0x59c80000, + 0x80040500, 0x05fe07fe, 0x497b9005, 0x4a039035, + 0x00880400, 0x59a8000d, 0x800000e0, 0x4803900e, + 0x64c39011, 0x4a03900f, 0x00110514, 0x4a039010, + 0x00110514, 0x65db9015, 0x4a039003, 0x00001f07, + 0x6503900d, 0x4a039000, 0x00001600, 0x1c01f000, + 0x59c80007, 0x8c000508, 0x05020885, 0x59c80800, + 0x8c040516, 0x05020003, 0x90000506, 0x0c01f004, + 0x4807c857, 0x9000050e, 0x0c01f001, 0x001012e0, + 0x001012df, 0x001054c4, 0x001012df, 0x001012e2, + 0x001012df, 0x001012e2, 0x001012e2, 0x001012df, + 0x001012df, 0x001012df, 0x001012df, 0x001012e2, + 0x001012df, 0x001012e2, 0x001012df, 0x05f5ff10, + 0x4803c857, 0x1c01f000, 0x59c8080c, 0x4807c857, + 0x82040500, 0x00006000, 0x05000003, 0x0545ff19, + 0x0501f005, 0x82040500, 0x007f0000, 0x05000004, + 0x0545fee6, 0x0529f980, 0x0501f02c, 0x90040514, + 0x0500000d, 0x0545ff3e, 0x916c0583, 0x05000008, + 0x051df83e, 0x05000003, 0x0515fb12, 0x0501f004, + 0x64075014, 0x6006d800, 0x0519ffb6, 0x0501f820, + 0x0501f01e, 0x82040500, 0x00001c00, 0x05000004, + 0x0545ff0e, 0x0501f81a, 0x0501f018, 0x82040500, + 0x00000140, 0x05000004, 0x0545ff1b, 0x0501f814, + 0x0501f012, 0x82040500, 0x00008000, 0x0500000f, + 0x051df826, 0x0500000b, 0x59c400a4, 0x9000050f, + 0x9000058b, 0x05020007, 0x4c040000, 0x0515fb0c, + 0x60780000, 0x80000040, 0x05fe07ff, 0x5c000800, + 0x0545fee1, 0x0501f802, 0x1c01f000, 0x4c0c0000, + 0x4c100000, 0x4c140000, 0x05fdf8ed, 0x5c002800, + 0x5c002000, 0x5c001800, 0x1c01f000, 0x4803c856, + 0x59a80804, 0x59a80020, 0x82000500, 0xfffff000, + 0x80040540, 0x48035020, 0x59a80024, 0x82000500, + 0xfffff000, 0x80040540, 0x48035024, 0x59a80028, + 0x82000500, 0xfffff000, 0x80040540, 0x48035028, + 0x48078882, 0x82040480, 0x00000204, 0x05021004, + 0x42001000, 0x00240f04, 0x0501f00f, 0x82040480, + 0x00000404, 0x05021004, 0x42001000, 0x00440800, + 0x0501f009, 0x82040480, 0x00000804, 0x05021004, + 0x42001000, 0x00840410, 0x0501f003, 0x42001000, + 0x00880400, 0x480b9035, 0x0501f340, 0x59c80815, + 0x05f5fe99, 0x40680800, 0xb0040d3c, 0x48079000, + 0x59c80000, 0x80040500, 0x05fe07fe, 0x8c040504, + 0x0500001b, 0x59c80035, 0x48039035, 0x59a8008a, + 0x80000540, 0x05000016, 0x4c300000, 0x600060de, + 0x58300801, 0x82040d00, 0xffc00000, 0x8004090c, + 0x58300000, 0x90000541, 0x48006000, 0x58300000, + 0x8c000500, 0x05fe07fe, 0x82000500, 0xfc00ffff, + 0x80040540, 0x84000574, 0x48006000, 0x58300000, + 0x8c000534, 0x05fe07fe, 0x5c006000, 0x59c80000, + 0x82000540, 0x00001200, 0x48039000, 0x1c01f000, + 0x42006000, 0x7ff4c000, 0x58300003, 0x8c000502, + 0x0502000a, 0x600060de, 0x64686000, 0x58300000, + 0x8c000504, 0x05fe07fe, 0x641c6002, 0x59a8008a, + 0x84000540, 0x4803508a, 0x1c01f000, 0x600060de, + 0x58300801, 0x9004050c, 0x05f60e69, 0x60f00800, + 0x05fdf7c6, 0x4853c857, 0x497b8801, 0x850e1d1a, + 0x5050b000, 0x485bc857, 0x8058b1c0, 0x0500089d, + 0x82580480, 0x00000804, 0x0502189a, 0x60040000, + 0x61000801, 0x0501fd85, 0x40582000, 0x8050a000, + 0x50500000, 0x80102400, 0x9058b483, 0x8050a000, + 0x485bc857, 0x4853c857, 0x50501000, 0x80082404, + 0x60101800, 0x82080500, 0x000000ff, 0x61000821, + 0x0501fd76, 0x80081110, 0x800c1840, 0x05fe07fa, + 0x8050a000, 0x8058b040, 0x05fe07f4, 0x4803c856, + 0x41780000, 0x61000801, 0x0501fd6c, 0x50501000, + 0x80082404, 0x0502087b, 0x4803c856, 0x1c01f000, + 0x4a035048, 0xaabbccdd, 0x600c0000, 0x0501fcbf, + 0x600c0000, 0x0501fce7, 0x60300868, 0x0501fd57, + 0x90040541, 0x60300868, 0x0501fd5c, 0x60480888, + 0x0501fd52, 0x90040548, 0x60480888, 0x0501fd57, + 0x60180818, 0x0501fd4d, 0x82040540, 0x00000080, + 0x60180818, 0x0501fd51, 0x60480828, 0x0501fd47, + 0x90040541, 0x60480828, 0x0501fd4c, 0x59a8004f, + 0x8c00050e, 0x05000006, 0x4803c857, 0x82000500, + 0x0000ff00, 0x80000110, 0x0501f002, 0x60e00001, + 0x60300800, 0x0501fd41, 0x60380940, 0x0501fd37, + 0x82040500, 0xffffff0f, 0x0501ff0f, 0x05020003, + 0x90000540, 0x0501f002, 0x90000550, 0x60380940, + 0x0501fd36, 0x60380938, 0x0501fd2c, 0x90040550, + 0x60380938, 0x0501fd31, 0x60800000, 0x61000859, + 0x0501fd2e, 0x61000000, 0x61000851, 0x0501fd2b, + 0x60300000, 0x61800861, 0x0501fd28, 0x60840000, + 0x61800821, 0x0501fd25, 0x59c40001, 0x84000574, + 0x48038801, 0x850e1d5a, 0x61602004, 0x6029d000, + 0x0501f83c, 0x4813c857, 0x61000849, 0x0501fd13, + 0x4807c857, 0x82041500, 0x000000c0, 0x82081580, + 0x000000c0, 0x05000004, 0x80102040, 0x05000825, + 0x05fdf7f3, 0x4803c856, 0x60c82000, 0x6029d000, + 0x0501f82c, 0x60380878, 0x0501fd04, 0x90040d01, + 0x05020004, 0x80102040, 0x0500081a, 0x05fdf7f8, + 0x4803c856, 0x61702001, 0x6029d000, 0x0525fa2a, + 0x60380818, 0x0501fcf9, 0x90040d10, 0x05020004, + 0x80102040, 0x05f40dd2, 0x05fdf7f8, 0x4803c856, + 0x60a02000, 0x6029d000, 0x0525fa1f, 0x603808b8, + 0x0501fcee, 0x90040d04, 0x05000004, 0x80102040, + 0x05f40dc7, 0x05fdf7f8, 0x4803c856, 0x1c01f000, + 0x4803c856, 0x4a03c020, 0x00004010, 0x4a03c011, + 0x40100011, 0x05006000, 0x4203e000, 0x40000000, + 0x4203e000, 0x30000001, 0x4803c856, 0x0501f000, + 0x61201801, 0x800c1840, 0x05fe07ff, 0x80e9d040, + 0x05fe07fc, 0x1c01f000, 0x4803c856, 0x497b88a9, + 0x64078807, 0x497b8807, 0x59c40005, 0x48038805, + 0x0501fdf2, 0x0501fe35, 0x0501f9e6, 0x4a0388a7, + 0x0000f7f7, 0x4a0388a3, 0x8000403c, 0x4a0388ae, + 0x000061a8, 0x59c40001, 0x82000540, 0x185fa063, + 0x48038801, 0x4a038810, 0x00410108, 0x4a038811, + 0x00520608, 0x4a038812, 0x00450320, 0x4a038813, + 0x00440405, 0x4a03881c, 0x004132e1, 0x4a038850, + 0x80000108, 0x64238860, 0x64238870, 0x4a038851, + 0x80000508, 0x4a038861, 0x00800000, 0x4a038871, + 0x00800000, 0x4a038852, 0x80000708, 0x4a038862, + 0x00800000, 0x4a038872, 0x00800000, 0x4a038853, + 0x80000608, 0x497b8863, 0x4a038873, 0x00800000, + 0x4a038882, 0x00000840, 0x4a0388a5, 0x000000fe, + 0x647b88a6, 0x4a0388b0, 0x00007530, 0x4a038802, + 0x0000ffff, 0x4a038806, 0xc0e80b00, 0x1c01f000, + 0x850e1d4e, 0x1c01f000, 0x59c40805, 0x59c40006, + 0x80040d00, 0x05f40d6e, 0x82040500, 0x00e80b00, + 0x05020004, 0x8c04053e, 0x050208c4, 0x0501f005, + 0x82040500, 0x00880b00, 0x05f60d5b, 0x05f5fd64, + 0x4c5c0000, 0x4c600000, 0x59c4b805, 0x59c410a3, + 0x84081518, 0x825c0500, 0x04000000, 0x05020d71, + 0x59c40006, 0x8c000500, 0x05000003, 0x8c5c0500, + 0x0502007f, 0x485fc857, 0x0519fe98, 0x0500001a, + 0x59c40005, 0x82000500, 0x000000c0, 0x05000042, + 0x0519feb3, 0x05020040, 0x59c40006, 0x82000500, + 0x000000f0, 0x05020004, 0x4a038805, 0x000000c0, + 0x0501f039, 0x59a80015, 0x84000506, 0x48035015, + 0x42006000, 0xff203fff, 0x42006800, 0x40000000, + 0x0515fab0, 0x60400800, 0x42001000, 0x00103ed0, + 0x0525f984, 0x8c5c0534, 0x0502002b, 0x4a035013, + 0x0000aaaa, 0x59c40005, 0x8c00050c, 0x0502000f, + 0x8c00050e, 0x05020015, 0x8c00050a, 0x0502001b, + 0x8c000508, 0x05000008, 0x59a80011, 0x90000589, + 0x05020005, 0x42000000, 0x0010b22b, 0x0545fd7e, + 0x051df828, 0x0501f04c, 0x42000000, 0x0010b239, + 0x0545fd79, 0x41781800, 0x60042000, 0x0501fd29, + 0x64035014, 0x0501f00e, 0x42000000, 0x0010b23a, + 0x0545fd71, 0x41781800, 0x60082000, 0x0501fd21, + 0x640b5014, 0x0501f006, 0x42000000, 0x0010b22d, + 0x0545fd69, 0x0519ffb9, 0x0501f037, 0x051df865, + 0x0501f035, 0x8c5c0534, 0x05000031, 0x59c40005, + 0x8c00053a, 0x05020004, 0x42000000, 0x0010b221, + 0x0545fd5d, 0x4a038805, 0x20000000, 0x0519fe47, + 0x0502000e, 0x4a038805, 0x04000000, 0x59c418a8, + 0x60002000, 0x0501fd07, 0x0519fe56, 0x05020005, + 0x64075014, 0x6006d800, 0x0519fdba, 0x0501f050, + 0x41780000, 0x0519fe0d, 0x0501fcf7, 0x4000c000, + 0x0501fc3d, 0x916c1584, 0x0502000b, 0x8c5c0500, + 0x05020013, 0x8d0c0506, 0x05020004, 0x59c410a3, + 0x90081548, 0x480b88a3, 0x59c41006, 0x84081540, + 0x480b8806, 0x4a038805, 0x04000000, 0x6006d800, + 0x497b5010, 0x8d0c0518, 0x05020004, 0x4803c856, + 0x850e1d06, 0x0515f913, 0x0511fbb0, 0x8c5c053c, + 0x0502084f, 0x8c5c0500, 0x0500002e, 0x42000000, + 0x0010b33e, 0x0545fd2c, 0x64078805, 0x6148b006, + 0x6191d000, 0x4c580000, 0x0525f923, 0x0501fbb4, + 0x5c00b000, 0x05000004, 0x8058b040, 0x05fe07f9, + 0x0501f003, 0x64078805, 0x0501f01e, 0x59c40006, + 0x84000500, 0x48038806, 0x0525ff69, 0x497b8880, + 0x0501fdc1, 0x05000007, 0x59e00013, 0x8c000516, + 0x05000004, 0x60142000, 0x051df852, 0x0501f003, + 0x60182000, 0x051df84f, 0x59c400a3, 0x82000500, + 0xfcf8ffff, 0x480388a3, 0x640b5075, 0x6012d800, + 0x64078805, 0x05f5fecd, 0x0501fb2e, 0x497b503a, + 0x64075047, 0x497b5070, 0x0201f800, 0x0010fcd9, + 0x825cbd00, 0xbbfffffe, 0x485f8805, 0x5c00c000, + 0x5c00b800, 0x1c01f000, 0x4d180000, 0x59c41004, + 0x480bc857, 0x8c080500, 0x05000006, 0x4803c856, + 0x4a01a8e5, 0x00000800, 0x0525ffee, 0x0501f007, + 0x82080500, 0x000001f0, 0x05000004, 0x4803c856, + 0x0529f913, 0x052a0806, 0x4a038805, 0x80000000, + 0x5c023000, 0x1c01f000, 0x59c408a3, 0x4807c857, + 0x84040d40, 0x480788a3, 0x1c01f000, 0x4d900000, + 0x4dd00000, 0x4da40000, 0x4d140000, 0x4cd80000, + 0x4a038805, 0x40000000, 0x42000000, 0x0010b233, + 0x0545fcd9, 0x0525fbd2, 0x59c41004, 0x8c080500, + 0x05000040, 0x598e600b, 0x4a01a8e5, 0x00000800, + 0x813261c0, 0x05000024, 0x59300403, 0x900005b2, + 0x05020021, 0x5930001e, 0x48038833, 0x4a038807, + 0x00018000, 0x6009d000, 0x0525f8c3, 0x497b8807, + 0x6009d000, 0x0525f8c0, 0x0525fe54, 0x60c1d0ea, + 0x0525f8bd, 0x59c408a4, 0x90040d0f, 0x90040d80, + 0x05000004, 0x42000000, 0x00200000, 0x0501fb94, + 0x0525fb08, 0x59300009, 0x80000540, 0x05f40c60, + 0x40025800, 0x4a025a05, 0x00000103, 0x5931d82d, + 0x58ef400a, 0x58ec0008, 0x0801f800, 0x0005fc5a, + 0x0501f032, 0x598c000d, 0x82001c80, 0x000000c8, + 0x0502100c, 0x80000000, 0x4803180d, 0x59c400a4, + 0x9000050f, 0x90000582, 0x05020004, 0x42000000, + 0x00200000, 0x0501fb7a, 0x0525f83e, 0x0501f023, + 0x4933c857, 0x0525fe2d, 0x813261c0, 0x0500001f, + 0x64066203, 0x609e7000, 0x0005fc78, 0x0501f01b, + 0x0529f8bb, 0x05000019, 0x0529f8e2, 0x0525f85a, + 0x59926005, 0x813261c0, 0x0500000d, 0x61201801, + 0x0529f8aa, 0x0502000a, 0x59c400a4, 0x9000050f, + 0x90000582, 0x05020004, 0x42000000, 0x00200000, + 0x0501fb5f, 0x0525f829, 0x0501f008, 0x4933c857, + 0x0525fdb9, 0x813261c0, 0x05000004, 0x613e7000, + 0x640e6203, 0x0005fc78, 0x5c01b000, 0x5c022800, + 0x5c034800, 0x5c03a000, 0x5c032000, 0x0525f35c, + 0x40680000, 0x810c0d80, 0x8c04050e, 0x05000051, + 0x4803c857, 0x8d0c050e, 0x0500001f, 0x850e1d0e, + 0x497b5075, 0x42000000, 0x0010b21a, 0x0545fc6a, + 0x0545fd16, 0x60441100, 0x59c40001, 0x82000500, + 0x00018000, 0x90001d80, 0x0500000b, 0x82001d80, + 0x00008000, 0x0500000a, 0x82001d80, 0x00010000, + 0x05000009, 0x82001d80, 0x00018000, 0x05000008, + 0x05f5fc03, 0x60001800, 0x0501f006, 0x60041800, + 0x0501f004, 0x600c1800, 0x0501f002, 0x60101800, + 0x050df7d9, 0x850e1d4e, 0x59a80875, 0x800409c0, + 0x05020006, 0x59c4000d, 0x8c000520, 0x05000003, + 0x600c1800, 0x0501f002, 0x40041800, 0x0545fcdb, + 0x4c0c0000, 0x41782000, 0x0501fceb, 0x0500000f, + 0x0501fccd, 0x60042000, 0x0502000c, 0x0501fcd8, + 0x05020006, 0x60082000, 0x0501f8c5, 0x05020007, + 0x60102000, 0x0501f005, 0x600c2000, 0x0501f89f, + 0x05020002, 0x60142000, 0x5c001800, 0x60481100, + 0x050dffb9, 0x05f5fdf5, 0x0545fd3f, 0x0502000d, + 0x4d200000, 0x61fe4001, 0x0501f852, 0x5c024000, + 0x4d400000, 0x4d3c0000, 0x60a28000, 0x60227800, + 0x0201f800, 0x0010edf3, 0x5c027800, 0x5c028000, + 0x1c01f000, 0x4803c857, 0x82000400, 0x001020b6, + 0x50000800, 0x82040d00, 0x000000ff, 0x1c01f000, + 0x4803c856, 0x4c580000, 0x6040b000, 0x497b88ac, + 0x497b88ad, 0x8058b040, 0x05fe07fe, 0x5c00b000, + 0x1c01f000, 0x40680800, 0x4807c857, 0x80041908, + 0x480f88ac, 0x9004250f, 0x82102400, 0x0010a393, + 0x50102000, 0x59c400ad, 0x80100540, 0x480f88ac, + 0x480388ad, 0x0545fd40, 0x05000002, 0x4807500f, + 0x1c01f000, 0x4807c857, 0x80041908, 0x480f88ac, + 0x9004250f, 0x82102400, 0x0010a393, 0x50102000, + 0x59c400ad, 0x80101500, 0x05000004, 0x80100580, + 0x480f88ac, 0x480388ad, 0x1c01f000, 0x4803c857, + 0x4c080000, 0x4c040000, 0x4c000000, 0x59c40892, + 0x4807c857, 0x80041580, 0x0500000e, 0x80041480, + 0x05021006, 0x80081080, 0x80081000, 0x4008b000, + 0x60040004, 0x0501f003, 0x4008b000, 0x60400004, + 0x48038886, 0x8058b040, 0x05fe07fe, 0x497b8886, + 0x5c000000, 0x5c000800, 0x5c001000, 0x1c01f000, + 0x4803c856, 0x8d0c0520, 0x05000003, 0x60ba8000, + 0x0541f4c8, 0x1c01f000, 0x0501f803, 0x40058800, + 0x1c01f000, 0x59a8008a, 0x80000540, 0x05000008, + 0x0519fcba, 0x60280800, 0x0502000e, 0x600008de, + 0x58040001, 0x8000092c, 0x0501f00a, 0x59c80835, + 0x82040d00, 0x00001f00, 0x80040910, 0x80040800, + 0x59a8008a, 0x80000540, 0x05000002, 0x61680804, + 0x4807c857, 0x1c01f000, 0x59a8008a, 0x80000540, + 0x0500001c, 0x599c1a01, 0x60a80801, 0x820c0480, + 0x00000204, 0x0500100a, 0x61680800, 0x820c0480, + 0x00000404, 0x05001006, 0x60b80800, 0x820c0480, + 0x00000804, 0x05001002, 0x60b40800, 0x4c300000, + 0x600060de, 0x58301000, 0x82081500, 0xfc00ffff, + 0x800400e0, 0x80080540, 0x84000574, 0x48006000, + 0x58300000, 0x8c000534, 0x05fe07fe, 0x5c006000, 0x1c01f000, 0x0501f805, 0x60058800, 0x05000002, 0x60018800, 0x1c01f000, 0x4c000000, 0x59a8003b, - 0x4803c857, 0x90000584, 0x5c000000, 0x1c01f000, + 0x4803c857, 0x90000580, 0x5c000000, 0x1c01f000, 0x0501f805, 0x60058800, 0x05000002, 0x60018800, - 0x1c01f000, 0x4c000000, 0x59a8003b, 0x90000582, - 0x5c000000, 0x1c01f000, 0x4c000000, 0x4c040000, - 0x4c080000, 0x4c380000, 0x59a8003e, 0x90000c87, - 0x05f61b0b, 0x0c01f806, 0x5c007000, 0x5c001000, - 0x5c000800, 0x5c000000, 0x1c01f000, 0x001016f2, - 0x001016ff, 0x0010170c, 0x0010170d, 0x0010172b, - 0x0010172c, 0x0010172d, 0x4803c856, 0x64035040, - 0x600c0000, 0x0501f9aa, 0x600c0000, 0x0501f97e, - 0x0501fa06, 0x4803c856, 0x641b503e, 0x60740800, - 0x42001000, 0x0010172e, 0x0521f55e, 0x497b5043, - 0x64db5038, 0x64ab5037, 0x4803c856, 0x64075040, - 0x600c0000, 0x0501f970, 0x4803c856, 0x641b503e, - 0x60740800, 0x42001000, 0x0010172e, 0x0521f551, - 0x05f5fae3, 0x64db5038, 0x4803c856, 0x640f5040, - 0x60000800, 0x0501fa00, 0x90040d1c, 0x9004059c, - 0x05000008, 0x90040598, 0x05000008, 0x90040594, - 0x05000008, 0x90040590, 0x05000008, 0x05f5fad4, - 0x60040000, 0x0501f006, 0x60000000, 0x0501f004, - 0x60080000, 0x0501f002, 0x600c0000, 0x0501f952, - 0x497b5044, 0x4803c856, 0x641b503e, 0x60740800, - 0x42001000, 0x0010172e, 0x0521f532, 0x05f5fac4, - 0x05f5fac3, 0x1c01f000, 0x4c000000, 0x4c040000, - 0x4c080000, 0x4c380000, 0x59a80040, 0x90000c87, - 0x05f61abb, 0x0c01f806, 0x5c007000, 0x5c001000, - 0x5c000800, 0x5c000000, 0x1c01f000, 0x00101742, - 0x0010175e, 0x001017af, 0x001017c4, 0x001017d8, - 0x001017e1, 0x001017e2, 0x0501f990, 0x05020018, - 0x59a81046, 0x60000800, 0x0501f9cb, 0x90040d1c, + 0x1c01f000, 0x4c000000, 0x59a8003b, 0x4803c857, + 0x90000581, 0x5c000000, 0x1c01f000, 0x0501f805, + 0x60058800, 0x05000002, 0x60018800, 0x1c01f000, + 0x4c000000, 0x59a8003b, 0x4803c857, 0x90000583, + 0x5c000000, 0x1c01f000, 0x0501f805, 0x60058800, + 0x05000002, 0x60018800, 0x1c01f000, 0x4c000000, + 0x59a8003b, 0x4803c857, 0x90000584, 0x5c000000, + 0x1c01f000, 0x0501f805, 0x60058800, 0x05000002, + 0x60018800, 0x1c01f000, 0x4c000000, 0x59a8003b, + 0x90000582, 0x5c000000, 0x1c01f000, 0x4c000000, + 0x4c040000, 0x4c080000, 0x4c380000, 0x59a8003e, + 0x90000c87, 0x05f61b0a, 0x0c01f806, 0x5c007000, + 0x5c001000, 0x5c000800, 0x5c000000, 0x1c01f000, + 0x001016f3, 0x00101700, 0x0010170d, 0x0010170e, + 0x0010172c, 0x0010172d, 0x0010172e, 0x4803c856, + 0x64035040, 0x600c0000, 0x0501f9aa, 0x600c0000, + 0x0501f97e, 0x0501fa06, 0x4803c856, 0x641b503e, + 0x60740800, 0x42001000, 0x0010172f, 0x0521f71f, + 0x497b5043, 0x64db5038, 0x64ab5037, 0x4803c856, + 0x64075040, 0x600c0000, 0x0501f970, 0x4803c856, + 0x641b503e, 0x60740800, 0x42001000, 0x0010172f, + 0x0521f712, 0x05f5fae2, 0x64db5038, 0x4803c856, + 0x640f5040, 0x60000800, 0x0501fa00, 0x90040d1c, 0x9004059c, 0x05000008, 0x90040598, 0x05000008, 0x90040594, 0x05000008, 0x90040590, 0x05000008, - 0x05f5fa9f, 0x84081540, 0x0501f006, 0x84081542, - 0x0501f004, 0x84081544, 0x0501f002, 0x84081546, - 0x480b5046, 0x6407503e, 0x0501f003, 0x0501f8be, - 0x05fdff9d, 0x1c01f000, 0x0501f885, 0x0500004f, - 0x0501f972, 0x05020029, 0x60000800, 0x0501f9ae, - 0x59c41001, 0x82081500, 0x00018000, 0x90040d1c, - 0x90040590, 0x05000042, 0x90040594, 0x05000006, - 0x90040598, 0x0500000a, 0x9004059c, 0x0500000a, - 0x05f5fa7f, 0x90080580, 0x05000039, 0x82080580, - 0x00008000, 0x05000036, 0x0501f003, 0x90080580, - 0x05000033, 0x60000800, 0x0501f997, 0x59a80046, - 0x90040d1c, 0x90041594, 0x05000006, 0x90041598, - 0x05000006, 0x9004159c, 0x05000006, 0x05f60a6c, - 0x84000544, 0x0501f004, 0x84000542, 0x0501f002, - 0x84000540, 0x48035046, 0x59a80043, 0x80000000, - 0x48035043, 0x90000585, 0x05000003, 0x0501f859, - 0x0501f01d, 0x497b5043, 0x59c40801, 0x82040d00, - 0x00018000, 0x90040580, 0x0500000b, 0x82040580, - 0x00008000, 0x0500000a, 0x82040580, 0x00010000, - 0x05000009, 0x82040580, 0x00018000, 0x05000008, - 0x05f5fa4f, 0x60040000, 0x0501f006, 0x60000000, + 0x05f5fad3, 0x60040000, 0x0501f006, 0x60000000, 0x0501f004, 0x60080000, 0x0501f002, 0x600c0000, - 0x0501f8f7, 0x640b5040, 0x0501f003, 0x640f503e, - 0x0501f002, 0x05fdff59, 0x1c01f000, 0x0501f834, - 0x05000013, 0x59a80037, 0x80000040, 0x48035037, - 0x0501f91e, 0x05020004, 0x640f503e, 0x497b503f, - 0x0501f00b, 0x59a80037, 0x80000540, 0x05020003, - 0x0501f891, 0x0501f002, 0x0501f841, 0x0501f829, - 0x497b5043, 0x64075040, 0x05fdff44, 0x1c01f000, - 0x0501f81f, 0x05000012, 0x0501f90c, 0x0502000d, - 0x59a80044, 0x80000000, 0x48035044, 0x90000587, - 0x0502000a, 0x642b503a, 0x497b5047, 0x59a80046, - 0x8400055e, 0x48035046, 0x4803c857, 0x0501f004, - 0x0501f814, 0x64135040, 0x05fdff4f, 0x1c01f000, - 0x0501f80b, 0x05000007, 0x0501f8f8, 0x05020003, - 0x05fdff32, 0x0501f003, 0x0501f80a, 0x05fdff46, - 0x1c01f000, 0x05f5fa0e, 0x05f5fa0d, 0x59a80038, - 0x80000040, 0x48035038, 0x05000885, 0x1c01f000, - 0x4c040000, 0x60000800, 0x0501f927, 0x90040d1c, - 0x9004059c, 0x05000008, 0x90040598, 0x0500000a, - 0x90040594, 0x0500000a, 0x90040590, 0x05000004, - 0x05f5f9fb, 0x600c0000, 0x0501f006, 0x60080000, - 0x0501f004, 0x60040000, 0x0501f002, 0x60000000, - 0x0501f8a3, 0x5c000800, 0x1c01f000, 0x4c040000, - 0x59c40801, 0x82040d00, 0x00018000, 0x90040580, - 0x0500000b, 0x82040580, 0x00008000, 0x0500000c, - 0x82040580, 0x00010000, 0x0500000b, 0x82040580, - 0x00018000, 0x05000004, 0x05f5f9e1, 0x600c0000, - 0x0501f006, 0x60080000, 0x0501f004, 0x60040000, - 0x0501f002, 0x60000000, 0x0501f85f, 0x5c000800, - 0x1c01f000, 0x4c040000, 0x59a80043, 0x80000000, - 0x48035043, 0x90000585, 0x05020019, 0x497b5043, - 0x59c40801, 0x82040d00, 0x00018000, 0x90040580, - 0x0500000b, 0x82040580, 0x00008000, 0x0500000c, - 0x82040580, 0x00010000, 0x0500000b, 0x82040580, - 0x00018000, 0x05000004, 0x05f5f9c1, 0x600c0000, - 0x0501f006, 0x60080000, 0x0501f004, 0x60040000, - 0x0501f002, 0x60000000, 0x0501f83f, 0x60000800, - 0x0501f8d9, 0x90040d1c, 0x9004059c, 0x05000008, - 0x90040598, 0x0500000a, 0x90040594, 0x0500000a, - 0x90040590, 0x05000004, 0x05f5f9ad, 0x600c0000, - 0x0501f006, 0x60080000, 0x0501f004, 0x60040000, - 0x0501f002, 0x60000000, 0x0501f855, 0x5c000800, - 0x1c01f000, 0x4c200000, 0x59a80046, 0x82000500, - 0x00007fff, 0x05f4099e, 0x59a84045, 0x80204102, - 0x05f4199b, 0x48235045, 0x80204500, 0x05fc07fb, - 0x8c000506, 0x05020008, 0x8c000504, 0x05020008, - 0x8c000502, 0x05020008, 0x8c000500, 0x05020008, - 0x05f5f98f, 0x600c0000, 0x0501f006, 0x60080000, - 0x0501f004, 0x60000000, 0x0501f002, 0x60040000, - 0x0501f80d, 0x5c004000, 0x1c01f000, 0x05011000, - 0x4a03c840, 0x0010abbe, 0x6427c842, 0x40000000, - 0x05fd17ff, 0x64235045, 0x6403503c, 0x1c01f000, - 0x40680000, 0x4c000000, 0x0501f967, 0x5c000000, - 0x0501fa82, 0x60080800, 0x0501f897, 0x82041500, - 0xffffffe3, 0x59c41801, 0x820c1d00, 0xfffe7fff, - 0x800001c0, 0x05000007, 0x90000d81, 0x0502000a, - 0x9008055c, 0x900c1d40, 0x840c1d32, 0x0501f012, - 0x90080558, 0x820c1d40, 0x00008000, 0x840c1d32, - 0x0501f00d, 0x90000d82, 0x05020006, 0x90080554, - 0x820c1d40, 0x00010000, 0x840c1d32, 0x0501f006, - 0x90000d83, 0x05f6095a, 0x90080550, 0x820c1d40, - 0x02018000, 0x60080800, 0x0501f87f, 0x480f8801, - 0x0501f146, 0x1c01f000, 0x40680000, 0x4c000000, - 0x0501f938, 0x5c000000, 0x0501fa58, 0x60000800, - 0x0501f86d, 0x82041500, 0xffffffe3, 0x59c41801, - 0x800001c0, 0x05000006, 0x90000d81, 0x05020007, - 0x9008055c, 0x840c1d30, 0x0501f00d, 0x90080558, - 0x840c1d30, 0x0501f00a, 0x90000d82, 0x05020004, - 0x90080554, 0x840c1d30, 0x0501f005, 0x90000d83, - 0x05f60937, 0x90080550, 0x840c1d70, 0x480f8801, - 0x60000800, 0x0501f85c, 0x0501fa2e, 0x0500000d, - 0x4a03c014, 0x00200020, 0x60000800, 0x0501f84e, - 0x90040d1c, 0x90040590, 0x05020004, 0x4a03c013, - 0x00200020, 0x0501f003, 0x4a03c013, 0x00200000, - 0x0501f11d, 0x0501f805, 0x60058800, 0x05000002, - 0x60018800, 0x1c01f000, 0x4c580000, 0x6050b000, - 0x8058b040, 0x05000026, 0x59c4000d, 0x8c000520, - 0x05fe07fc, 0x0501f831, 0x59c4000d, 0x8c000520, - 0x05fe07f8, 0x59c40808, 0x82040d40, 0x00000300, - 0x48078808, 0x6120b001, 0x8058b040, 0x05fe07ff, - 0x6050b000, 0x8058b040, 0x05000015, 0x59c4000d, - 0x8c000520, 0x05020012, 0x0501f820, 0x59c4000d, - 0x8c000520, 0x0502000e, 0x6028b000, 0x8058b040, - 0x05000003, 0x0501f819, 0x05fdf7fd, 0x6190b000, - 0x59c4000d, 0x8c00051e, 0x05000005, 0x8058b040, - 0x05fe07fc, 0x80000580, 0x0501f002, 0x90000541, - 0x5c00b000, 0x1c01f000, 0x60080800, 0x0501f812, - 0x82040500, 0xfffffffe, 0x60080800, 0x0501f816, - 0x60000800, 0x0501f80c, 0x82040500, 0xfffffffe, - 0x60000800, 0x0501f010, 0x40000000, 0x40000000, - 0x40000000, 0x40000000, 0x40000000, 0x1c01f000, - 0x40680800, 0x4807880e, 0x59c4080f, 0x82040d00, - 0x000000ff, 0x40058800, 0x1c01f000, 0x40680800, - 0x406c0000, 0x900001c0, 0x80040d40, 0x84040d40, - 0x4807880e, 0x1c01f000, 0x82000d80, 0x00200000, - 0x05000009, 0x82000d80, 0x02000000, 0x05000006, - 0x82000d80, 0x01000000, 0x05000006, 0x59c408a3, - 0x0501f006, 0x59c408a3, 0x84040d30, 0x0501f003, - 0x59c408a3, 0x84040d32, 0x80040540, 0x480388a3, - 0x480788a3, 0x1c01f000, 0x59c400a3, 0x84000556, - 0x480388a3, 0x84000516, 0x480388a3, 0x1c01f000, - 0x485fc857, 0x4863c857, 0x4c640000, 0x4d3c0000, - 0x4d400000, 0x0525f994, 0x48635009, 0x40601800, - 0x60002000, 0x0501f8b6, 0x42000000, 0x0010afb8, - 0x0541fe51, 0x82600500, 0x0000ff00, 0x82000580, - 0x0000f700, 0x05020004, 0x42000000, 0x0010afa0, - 0x0541fe49, 0x0541ff58, 0x05020085, 0x82600d00, - 0x0000ff00, 0x61fe41ff, 0x800409c0, 0x0500001b, - 0x82041580, 0x0000f700, 0x05000013, 0x82041580, - 0x0000f800, 0x05000010, 0x82041580, 0x0000ff00, - 0x6000c800, 0x05000029, 0x840439c0, 0x0501fdda, - 0x05020019, 0x83200400, 0x0010a0ec, 0x50024800, - 0x59240200, 0x8c000500, 0x05000013, 0x6004c800, - 0x0501f01e, 0x42024800, 0x0010b111, 0x59240200, - 0x8c000502, 0x0500000c, 0x59c410a3, 0x82081500, - 0x00008000, 0x05000008, 0x59c410a7, 0x82081500, - 0x0000ff00, 0x82081580, 0x0000ff00, 0x6000c800, - 0x0500000e, 0x8d0c0502, 0x05020007, 0x8d0c0500, - 0x0502000a, 0x599c1017, 0x8c08051a, 0x0500004e, - 0x850e1d42, 0x61fe41ff, 0x6008c800, 0x60128000, - 0x60227800, 0x0501f004, 0x850e1d40, 0x60128000, - 0x417a7800, 0x59a80005, 0x8c000502, 0x05020004, - 0x8d0c050a, 0x05020046, 0x850e1d4a, 0x42000000, - 0x0010af9f, 0x0541fe04, 0x59a81809, 0x604c1100, - 0x050dfb6e, 0x83200580, 0x0000ffff, 0x05000018, - 0x59240400, 0x8c000508, 0x05000009, 0x417a7800, - 0x4d300000, 0x417a6000, 0x0501fdd5, 0x5c026000, - 0x59240400, 0x8c00050a, 0x05020031, 0x4d400000, - 0x82600500, 0x000000ff, 0x61fe89ff, 0x40643000, - 0x603a8000, 0x053dfef5, 0x60040800, 0x60001002, - 0x0521fb5a, 0x5c028000, 0x0501f025, 0x8d0c0520, - 0x05000018, 0x4c580000, 0x42024800, 0x0010b111, - 0x0541fefe, 0x4d400000, 0x59240200, 0x8c000500, - 0x05000004, 0x60040800, 0x60001002, 0x0521fb4b, - 0x91264c0b, 0x8058b040, 0x05fe07f8, 0x603a8000, - 0x61fe89ff, 0x40643000, 0x053dfedc, 0x5c028000, - 0x5c00b000, 0x599c0817, 0x8c04050a, 0x0502000c, - 0x493fc857, 0x4943c857, 0x0201f800, 0x0010ebe6, - 0x0501f007, 0x8d0c0520, 0x05000005, 0x603e8000, - 0x61fe89ff, 0x60003000, 0x053dfecf, 0x497b8880, - 0x5c028000, 0x5c027800, 0x5c00c800, 0x1c01f000, - 0x60000800, 0x05fdff38, 0x90040542, 0x60000800, - 0x05fdf73d, 0x60080800, 0x05fdff33, 0x90040542, - 0x60080800, 0x05fdf738, 0x60080800, 0x05fdff2e, - 0x82040500, 0xfffffffd, 0x90000550, 0x60080800, - 0x05fdf731, 0x60000800, 0x05fdff27, 0x82040500, - 0xfffffffd, 0x90000550, 0x60000800, 0x05fdf72a, - 0x59c408a8, 0x05fdff19, 0x05fdff18, 0x59c400a8, - 0x80040d80, 0x05fe07fb, 0x1c01f000, 0x59a80005, - 0x8c000500, 0x05000008, 0x59a80008, 0x8c000500, - 0x05020005, 0x84000540, 0x48035008, 0x60581100, - 0x050dfb02, 0x1c01f000, 0x1c01f000, 0x59c40801, - 0x82040d00, 0x00018000, 0x82040d80, 0x00018000, - 0x05000002, 0x84081518, 0x480b88a3, 0x1c01f000, - 0x42000800, 0x7ff4818e, 0x59e00002, 0x8c00051e, - 0x05020003, 0x42000800, 0x7ff4808e, 0x58041800, - 0x480f504f, 0x8c0c0500, 0x05020007, 0x8c0c0502, - 0x05000005, 0x58044001, 0x58042002, 0x58041003, - 0x0501f007, 0x42004000, 0x0003c014, 0x42002000, - 0x0003c014, 0x42001000, 0x0002e014, 0x480b5049, - 0x4813504a, 0x4823504b, 0x8c0c0500, 0x05020007, - 0x8c0c0504, 0x05000005, 0x58044004, 0x58042005, - 0x58041006, 0x0501f004, 0x60c8400d, 0x60c8200d, - 0x60c8100d, 0x480b504c, 0x4813504d, 0x4823504e, - 0x1c01f000, 0x59a8104c, 0x59a8204d, 0x59a8404e, - 0x60380840, 0x05fdfed8, 0x82040d00, 0xffffffc0, - 0x82200500, 0x003f0000, 0x80000120, 0x80040540, - 0x60380840, 0x05fdfed8, 0x60380848, 0x05fdfece, - 0x82040d00, 0xffffffc0, 0x82200500, 0x0000fc00, - 0x80000114, 0x80040540, 0x60380848, 0x05fdfece, - 0x82200500, 0x000003e0, 0x8000010a, 0x603808d8, - 0x05fdfec9, 0x9020051f, 0x603808f0, 0x05fdfec6, - 0x82100500, 0x003f0000, 0x80000120, 0x60380908, - 0x05fdfec1, 0x82100500, 0x0000fc00, 0x80000114, - 0x60380918, 0x05fdfebc, 0x82100500, 0x000003e0, - 0x8000010a, 0x603808e0, 0x05fdfeb7, 0x9010051f, - 0x603808f8, 0x05fdfeb4, 0x82080500, 0x003f0000, - 0x80000120, 0x60380910, 0x05fdfeaf, 0x82080500, - 0x0000fc00, 0x80000114, 0x60380920, 0x05fdfeaa, - 0x82080500, 0x000003e0, 0x8000010a, 0x603808e8, - 0x05fdfea5, 0x9008051f, 0x60380900, 0x05fdfea2, - 0x1c01f000, 0x59a81049, 0x59a8204a, 0x59a8404b, - 0x9020051f, 0x800000c2, 0x84000540, 0x60480800, - 0x05fdfe99, 0x82200500, 0x000001e0, 0x80000908, - 0x84040d40, 0x82200500, 0x00000600, 0x80000106, - 0x8400054a, 0x80040540, 0x60480830, 0x05fdfe8e, - 0x82200500, 0x00001800, 0x80000916, 0x82200500, - 0x0003e000, 0x80000114, 0x84000544, 0x80040540, - 0x60480848, 0x05fdfe84, 0x9010051f, 0x800000c2, - 0x84000540, 0x60480808, 0x05fdfe7f, 0x82100500, - 0x000001e0, 0x80000908, 0x84040d40, 0x82100500, - 0x00000600, 0x80000106, 0x8400054a, 0x80040540, - 0x60480838, 0x05fdfe74, 0x82100500, 0x00001800, - 0x80000916, 0x82100500, 0x0003e000, 0x80000114, - 0x84000544, 0x80040540, 0x60480850, 0x05fdfe6a, - 0x9008051f, 0x800000c2, 0x84000540, 0x60480810, - 0x05fdfe65, 0x82080500, 0x000001e0, 0x80000908, - 0x84040d40, 0x82080500, 0x00000600, 0x80000106, - 0x8400054a, 0x80040540, 0x60480840, 0x05fdfe5a, - 0x82080500, 0x00001800, 0x80000916, 0x82080500, - 0x0003e000, 0x80000114, 0x84000544, 0x80040540, - 0x60480858, 0x05fdfe50, 0x1c01f000, 0x0501f805, - 0x60058800, 0x05000002, 0x60018800, 0x1c01f000, - 0x4c000000, 0x050dfb5c, 0x05020003, 0x90000541, - 0x0501f003, 0x59e00013, 0x8c00050e, 0x5c000000, - 0x1c01f000, 0x0501f805, 0x60058800, 0x05000002, - 0x60018800, 0x1c01f000, 0x4c140000, 0x4a03c013, - 0x03800300, 0x4a03c014, 0x03800380, 0x60800801, - 0x60281000, 0x0505fc1c, 0x05000002, 0x8c14050c, - 0x4a03c014, 0x03800000, 0x5c002800, 0x1c01f000, - 0x4c000000, 0x59a8004f, 0x8c000508, 0x05020004, - 0x90000541, 0x5c000000, 0x1c01f000, 0x80000580, - 0x05fdf7fd, 0x05fdfff7, 0x60058800, 0x05000002, - 0x60018800, 0x1c01f000, 0x4c5c0000, 0x4000b800, - 0x59a80048, 0x82000d80, 0xaabbccdd, 0x0500000f, - 0x90000c85, 0x05f21eee, 0x4c000000, 0x050dfb08, - 0x5c000000, 0x05020003, 0x0c01f81a, 0x0501f016, - 0x4c000000, 0x050dfb19, 0x5c000000, 0x05fc07fb, - 0x0c01f819, 0x0501f010, 0x05fdffde, 0x0500000e, - 0x8d0c051a, 0x0500000c, 0x05fdffbe, 0x0502000a, - 0x05fdffca, 0x05020005, 0x905c0d83, 0x05020006, - 0x6008b800, 0x0501f004, 0x905c0d81, 0x05020002, - 0x600cb800, 0x405c0000, 0x5c00b800, 0x1c01f000, - 0x00101b2a, 0x00101b2b, 0x00101b2c, 0x00101b2d, - 0x00101b31, 0x00101b32, 0x00101b34, 0x00101b44, - 0x00101b52, 0x00101b62, 0x1c01f000, 0x1c01f000, - 0x1c01f000, 0x905c0d83, 0x05020002, 0x6008b800, - 0x1c01f000, 0x1c01f000, 0x6004b800, 0x1c01f000, - 0x05fdffb8, 0x05000007, 0x05fdff9a, 0x05020005, - 0x05fdffa6, 0x05000003, 0x6000b800, 0x0501f008, - 0x905c0d83, 0x05020003, 0x6000b800, 0x0501f004, - 0x905c0d82, 0x05020002, 0x05f1fead, 0x1c01f000, - 0x05fdffa8, 0x0500000c, 0x05fdff8a, 0x0502000a, - 0x05fdff96, 0x05020005, 0x905c0d83, 0x05020006, - 0x6008b800, 0x0501f004, 0x905c0d81, 0x05020002, - 0x600cb800, 0x1c01f000, 0x05fdff9a, 0x0500000b, - 0x05fdff7c, 0x05020009, 0x05fdff88, 0x05020002, - 0x0501f006, 0x905c0d83, 0x05000006, 0x905c0d81, - 0x05000004, 0x0501f004, 0x905c0d83, 0x05020002, - 0x6008b800, 0x1c01f000, 0x05fdff8a, 0x05000006, - 0x05fdff6c, 0x05020004, 0x05fdff78, 0x05020002, - 0x0501f004, 0x905c0d81, 0x05020002, 0x600cb800, - 0x1c01f000, 0x4803c856, 0x4c5c0000, 0x4c600000, - 0x4c640000, 0x4c580000, 0x497b5050, 0x4200c000, - 0x7ff52000, 0x050dfab8, 0x05020007, 0x4803c856, - 0x4a03c014, 0x07e30000, 0x59e0c813, 0x0501f8ba, - 0x0501f013, 0x82000d80, 0x3261103c, 0x050200b1, - 0x4803c856, 0x42000800, 0x7ff481e6, 0x59e06802, - 0x8c34051e, 0x05020003, 0x42000800, 0x7ff480e6, - 0x50040000, 0x4803c857, 0x48035057, 0x8c00051e, - 0x050000a4, 0x8200cd00, 0x000000ff, 0x4867c857, - 0x48675051, 0x50600800, 0x48075052, 0x4807c857, - 0x82040d80, 0x53434651, 0x05020098, 0x8060c000, - 0x50600800, 0x48075053, 0x8060c000, 0x50600800, - 0x48075054, 0x8060c000, 0x50600800, 0x48075055, - 0x8060c000, 0x50600800, 0x82040d00, 0x0000ffff, - 0x48075056, 0x4200c000, 0x7ff52002, 0x5060b800, - 0x825cbd00, 0xffff0000, 0x805cb920, 0x805cb800, - 0x05001082, 0x8c5c051e, 0x05020080, 0x59e06802, - 0x8c34051e, 0x0502006a, 0x4803c856, 0x4200c000, - 0x7ff52045, 0x50603000, 0x82183500, 0x0000ffff, - 0x05000011, 0x80180497, 0x05021074, 0x8060c000, - 0x50602000, 0x82100500, 0xffff0000, 0x80000120, - 0x82100d00, 0x0000ffff, 0x4803c857, 0x4807c857, - 0x4c180000, 0x05fdfd54, 0x5c003000, 0x80183040, - 0x05fe07f3, 0x41780800, 0x40641000, 0x60100000, - 0x0521f970, 0x59e06802, 0x8c34051e, 0x05020057, - 0x4200c000, 0x7ff52005, 0x8008c418, 0x5060c800, - 0x800409c0, 0x0500000a, 0x90041581, 0x05020003, - 0x8064c910, 0x0501f006, 0x90041582, 0x05020003, - 0x8064c920, 0x0501f002, 0x8064c930, 0x8264cd00, - 0x000000ff, 0x4867c857, 0x48675058, 0x42001000, - 0x7ff52002, 0x50080000, 0x82000500, 0x0000ffff, - 0x4803c857, 0x8c00051e, 0x05020044, 0x80640480, - 0x05021042, 0x40640800, 0x405c1000, 0x0521f931, - 0x4803c857, 0x800001c0, 0x0502003c, 0x59e06802, - 0x8c34051e, 0x05020034, 0x4200c000, 0x7ff52045, - 0x805cc418, 0x8004c418, 0x05001034, 0x05000033, - 0x4863c857, 0x50600000, 0x82000500, 0x0000ffff, - 0x48035059, 0x8c00051e, 0x0502002c, 0x4803c857, - 0x80000c97, 0x05021029, 0x40601000, 0x80081000, - 0x50080800, 0x4807505a, 0x80081000, 0x50080800, - 0x4807505b, 0x4000b800, 0x8060c000, 0x50602000, - 0x82100500, 0xffff0000, 0x80000120, 0x82100d00, - 0x0000ffff, 0x4803c857, 0x4807c857, 0x05fdfd02, - 0x805cb840, 0x05fe07f5, 0x0501f016, 0x4803c856, - 0x42000000, 0x7ff52001, 0x5000b000, 0x8258b500, - 0xffff0000, 0x8058b124, 0x8258c400, 0x7ff52000, - 0xb060c400, 0x05fdf790, 0x8258c400, 0x7ff52000, - 0x05fdf7aa, 0x8258c400, 0x7ff52000, 0xb060c400, - 0x805cc418, 0x05fdf7cc, 0x4a035050, 0xdeaddead, - 0x5c00b000, 0x5c00c800, 0x5c00c000, 0x5c00b800, - 0x1c01f000, 0x4867c857, 0x90640d20, 0x8004690a, - 0x82640d00, 0x00000400, 0x80040912, 0x80046d4d, - 0x90640d01, 0x800408c4, 0x80046d4d, 0x90640d02, - 0x800408c4, 0x80046d4d, 0x82640d00, 0x00000100, - 0x80040908, 0x80046d4d, 0x82640d00, 0x00000080, - 0x80040904, 0x80046d4d, 0xb0640d00, 0x80046d4d, - 0x82640d00, 0x00000200, 0x80040904, 0x80046d4d, - 0x8234cd00, 0x000000ff, 0x1c01f000, 0x050df9eb, - 0x0502000d, 0x4803c856, 0x4a03c014, 0x18001800, - 0x4a03c013, 0x18000800, 0x05fdfcb0, 0x4a03c013, - 0x18000000, 0x61a1d007, 0x0521f821, 0x4a03c013, - 0x18000800, 0x1c01f000, 0x050df9dc, 0x0502000d, - 0x4803c856, 0x4a03c014, 0x18001800, 0x4a03c013, - 0x18001800, 0x05fdfca1, 0x4a03c013, 0x18001000, - 0x61a1d007, 0x0521f812, 0x4a03c013, 0x18001800, - 0x1c01f000, 0x050df9cd, 0x0502000c, 0x60041800, - 0x42001000, 0x0010abd1, 0x60900800, 0x60002180, - 0x50080000, 0x82000500, 0x000000ff, 0x4803c857, - 0x050dfa64, 0x05f00d72, 0x1c01f000, 0x4803c856, - 0x59a80006, 0x8c00051e, 0x05020008, 0x61f2880f, - 0x42003000, 0x00fffffc, 0x0511fc8f, 0x05020007, - 0x0501f808, 0x05000005, 0x4a03501c, 0x0000ffff, - 0x90000541, 0x1c01f000, 0x80000580, 0x05fdf7fe, - 0x4937c857, 0x0529f8b4, 0x05000011, 0x4926601d, - 0x4936600a, 0x0535fa4c, 0x64066407, 0x417a7800, - 0x0511fc48, 0x600c0800, 0x0511fc51, 0x59a8001d, - 0x80000000, 0x4803501d, 0x599c0208, 0x48026c12, - 0x600a7000, 0x0005fc78, 0x90000541, 0x1c01f000, - 0x40681000, 0x0501f805, 0x60018800, 0x05000002, - 0x60058800, 0x1c01f000, 0x480bc857, 0x492fc857, - 0x4923c857, 0x4927c857, 0x4c5c0000, 0x4008b800, - 0x61f6880f, 0x42003000, 0x00fffffd, 0x0511fc62, - 0x0502001b, 0x5934000a, 0x84000544, 0x4802680a, - 0x0529f88d, 0x05000016, 0x4926601d, 0x4936600a, - 0x812e59c0, 0x05000006, 0x592c0405, 0x8c00051e, - 0x05000003, 0x48ee602d, 0x0501f004, 0x59a8021b, - 0x8400055c, 0x4803521b, 0x492e6009, 0x64066407, - 0x485e601e, 0x0535fa18, 0x608a7000, 0x0005fc78, - 0x90000541, 0x5c00b800, 0x1c01f000, 0x80000580, - 0x05fdf7fd, 0x4933c857, 0x59a8021b, 0x8c000508, - 0x05020010, 0x5930500a, 0x482bc857, 0x916c0582, - 0x0502000c, 0x0501f812, 0x0502000a, 0x58280403, - 0x82000580, 0x000007fc, 0x05000007, 0x59a80016, - 0x80000040, 0x4803c857, 0x05f01d0d, 0x48035016, - 0x1c01f000, 0x59a8001d, 0x80000040, 0x4803c857, - 0x05fc17fc, 0x4803501d, 0x1c01f000, 0x59300009, - 0x800001c0, 0x05020007, 0x59300403, 0x90000581, - 0x05020003, 0x90000541, 0x0501f002, 0x80000580, - 0x1c01f000, 0x4933c857, 0x493fc857, 0x4947c857, - 0x4927c857, 0x4d400000, 0x4d340000, 0x4d440000, - 0x4c580000, 0x0521fa80, 0x4df00000, 0x8060c1c0, - 0x05020003, 0x6004b000, 0x0501f003, 0x61c0b00f, - 0x417a8800, 0x41440000, 0x81ac0400, 0x50000000, - 0x80026d40, 0x0500001b, 0x59245005, 0x59340013, - 0x82000500, 0x00ffffff, 0x80280580, 0x05020015, - 0x4d3c0000, 0x60067800, 0x0511fefd, 0x5c027800, - 0x60a68000, 0x0201f800, 0x0010f051, 0x0201f800, - 0x0010f148, 0x0201f800, 0x0010f1e1, 0x0511ff80, - 0x05020005, 0x4937c857, 0x4a026c00, 0x00000404, - 0x0501f002, 0x0511ffaa, 0x0201f800, 0x0010f603, - 0x81468800, 0x8058b040, 0x05fe07df, 0x5c03e000, - 0x05200a41, 0x5c00b000, 0x5c028800, 0x5c026800, - 0x5c028000, 0x1c01f000, 0x4937c857, 0x4947c857, - 0x4c5c0000, 0x4c600000, 0x4c640000, 0x59a80073, - 0x8c000500, 0x0500001d, 0x599c0017, 0x8c00050a, - 0x0502001a, 0x5934ba02, 0x825cbd00, 0x000000ff, - 0x485fc857, 0x4178c000, 0x4178c800, 0x82600400, - 0x0010cc24, 0x50002000, 0x8060c1c0, 0x05000008, - 0x82100500, 0x000000ff, 0x82002d80, 0x000000ff, - 0x0500000a, 0x805c0580, 0x0500000a, 0x80102110, - 0x8064c800, 0x90640584, 0x05fe07f6, 0x8060c000, - 0x906005a0, 0x05fe07ed, 0x4813c857, 0x90000541, - 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x1c01f000, - 0x59a8021b, 0x8c000512, 0x05f20d53, 0x1c01f000, - 0x4c5c0000, 0x4c600000, 0x4c640000, 0x6004b000, - 0x42024800, 0x0010b111, 0x417a4000, 0x61fa880f, - 0x0515fcc9, 0x05000002, 0x0541fb50, 0x5924ba00, - 0x8c5c0500, 0x05000051, 0x83240d80, 0x0010b111, - 0x0502000f, 0x825cc500, 0x000000e0, 0x0502000c, - 0x0515fcbd, 0x05000004, 0x42000800, 0xffffff1d, - 0x0501fa62, 0x59a8021b, 0x82000500, 0xffffdafc, - 0x8400054e, 0x4803521b, 0x0501f006, 0x82600580, - 0x000000e0, 0x05020043, 0x8c5c050e, 0x0502003b, - 0x5924c809, 0x9064040e, 0x50000000, 0x4803c857, - 0x80026d40, 0x05000011, 0x0515fca7, 0x05000013, - 0x59340200, 0x8c00051a, 0x05020030, 0x59240805, - 0x80040910, 0x0500000d, 0x59a80018, 0x4803c857, - 0x4807c857, 0x80040580, 0x05000008, 0x4a026806, - 0xdeaddead, 0x0501f005, 0x42003000, 0x00fffffe, - 0x0511fb7d, 0x05020027, 0x0525ffab, 0x05000025, - 0x4936600a, 0x4926601d, 0x64066407, 0x417a7800, - 0x0511fb40, 0x0201f800, 0x0010ebe1, 0x600c0800, - 0x0511fb47, 0x0535f93c, 0x49235017, 0x4923c857, - 0x59240005, 0x82000500, 0x000000ff, 0x48024805, - 0x916c0583, 0x05000004, 0x59a80016, 0x80000000, - 0x48035016, 0x599c0208, 0x48026c12, 0x600a7000, - 0x0005fc78, 0x59240200, 0x82000500, 0xffffff9d, - 0x8400054e, 0x48024a00, 0x81224000, 0x91264c0b, - 0x8058b040, 0x05fe07aa, 0x4a035017, 0x0000ffff, - 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x1c01f000, - 0x4d300000, 0x4d440000, 0x4d340000, 0x61fa880f, - 0x42003000, 0x00fffffe, 0x0511fb4b, 0x0502001a, - 0x0525ff79, 0x05000018, 0x4927c857, 0x4923c857, - 0x497a6009, 0x4936600a, 0x4926601d, 0x64866429, - 0x64066407, 0x600c0800, 0x0511fb15, 0x599c0208, - 0x48026c12, 0x600a7000, 0x0005fc78, 0x497a4805, + 0x0501f952, 0x497b5044, 0x4803c856, 0x641b503e, + 0x60740800, 0x42001000, 0x0010172f, 0x0521f6f3, + 0x05f5fac3, 0x05f5fac2, 0x1c01f000, 0x4c000000, + 0x4c040000, 0x4c080000, 0x4c380000, 0x59a80040, + 0x90000c87, 0x05f61aba, 0x0c01f806, 0x5c007000, + 0x5c001000, 0x5c000800, 0x5c000000, 0x1c01f000, + 0x00101743, 0x0010175f, 0x001017b0, 0x001017c5, + 0x001017d9, 0x001017e2, 0x001017e3, 0x0501f990, + 0x05020018, 0x59a81046, 0x60000800, 0x0501f9cb, + 0x90040d1c, 0x9004059c, 0x05000008, 0x90040598, + 0x05000008, 0x90040594, 0x05000008, 0x90040590, + 0x05000008, 0x05f5fa9e, 0x84081540, 0x0501f006, + 0x84081542, 0x0501f004, 0x84081544, 0x0501f002, + 0x84081546, 0x480b5046, 0x6407503e, 0x0501f003, + 0x0501f8be, 0x05fdff9d, 0x1c01f000, 0x0501f885, + 0x0500004f, 0x0501f972, 0x05020029, 0x60000800, + 0x0501f9ae, 0x59c41001, 0x82081500, 0x00018000, + 0x90040d1c, 0x90040590, 0x05000042, 0x90040594, + 0x05000006, 0x90040598, 0x0500000a, 0x9004059c, + 0x0500000a, 0x05f5fa7e, 0x90080580, 0x05000039, + 0x82080580, 0x00008000, 0x05000036, 0x0501f003, + 0x90080580, 0x05000033, 0x60000800, 0x0501f997, + 0x59a80046, 0x90040d1c, 0x90041594, 0x05000006, + 0x90041598, 0x05000006, 0x9004159c, 0x05000006, + 0x05f60a6b, 0x84000544, 0x0501f004, 0x84000542, + 0x0501f002, 0x84000540, 0x48035046, 0x59a80043, + 0x80000000, 0x48035043, 0x90000585, 0x05000003, + 0x0501f859, 0x0501f01d, 0x497b5043, 0x59c40801, + 0x82040d00, 0x00018000, 0x90040580, 0x0500000b, + 0x82040580, 0x00008000, 0x0500000a, 0x82040580, + 0x00010000, 0x05000009, 0x82040580, 0x00018000, + 0x05000008, 0x05f5fa4e, 0x60040000, 0x0501f006, + 0x60000000, 0x0501f004, 0x60080000, 0x0501f002, + 0x600c0000, 0x0501f8f7, 0x640b5040, 0x0501f003, + 0x640f503e, 0x0501f002, 0x05fdff59, 0x1c01f000, + 0x0501f834, 0x05000013, 0x59a80037, 0x80000040, + 0x48035037, 0x0501f91e, 0x05020004, 0x640f503e, + 0x497b503f, 0x0501f00b, 0x59a80037, 0x80000540, + 0x05020003, 0x0501f891, 0x0501f002, 0x0501f841, + 0x0501f829, 0x497b5043, 0x64075040, 0x05fdff44, + 0x1c01f000, 0x0501f81f, 0x05000012, 0x0501f90c, + 0x0502000d, 0x59a80044, 0x80000000, 0x48035044, + 0x90000587, 0x0502000a, 0x642b503a, 0x497b5047, + 0x59a80046, 0x8400055e, 0x48035046, 0x4803c857, + 0x0501f004, 0x0501f814, 0x64135040, 0x05fdff4f, + 0x1c01f000, 0x0501f80b, 0x05000007, 0x0501f8f8, + 0x05020003, 0x05fdff32, 0x0501f003, 0x0501f80a, + 0x05fdff46, 0x1c01f000, 0x05f5fa0d, 0x05f5fa0c, + 0x59a80038, 0x80000040, 0x48035038, 0x05000885, + 0x1c01f000, 0x4c040000, 0x60000800, 0x0501f927, + 0x90040d1c, 0x9004059c, 0x05000008, 0x90040598, + 0x0500000a, 0x90040594, 0x0500000a, 0x90040590, + 0x05000004, 0x05f5f9fa, 0x600c0000, 0x0501f006, + 0x60080000, 0x0501f004, 0x60040000, 0x0501f002, + 0x60000000, 0x0501f8a3, 0x5c000800, 0x1c01f000, + 0x4c040000, 0x59c40801, 0x82040d00, 0x00018000, + 0x90040580, 0x0500000b, 0x82040580, 0x00008000, + 0x0500000c, 0x82040580, 0x00010000, 0x0500000b, + 0x82040580, 0x00018000, 0x05000004, 0x05f5f9e0, + 0x600c0000, 0x0501f006, 0x60080000, 0x0501f004, + 0x60040000, 0x0501f002, 0x60000000, 0x0501f85f, + 0x5c000800, 0x1c01f000, 0x4c040000, 0x59a80043, + 0x80000000, 0x48035043, 0x90000585, 0x05020019, + 0x497b5043, 0x59c40801, 0x82040d00, 0x00018000, + 0x90040580, 0x0500000b, 0x82040580, 0x00008000, + 0x0500000c, 0x82040580, 0x00010000, 0x0500000b, + 0x82040580, 0x00018000, 0x05000004, 0x05f5f9c0, + 0x600c0000, 0x0501f006, 0x60080000, 0x0501f004, + 0x60040000, 0x0501f002, 0x60000000, 0x0501f83f, + 0x60000800, 0x0501f8d9, 0x90040d1c, 0x9004059c, + 0x05000008, 0x90040598, 0x0500000a, 0x90040594, + 0x0500000a, 0x90040590, 0x05000004, 0x05f5f9ac, + 0x600c0000, 0x0501f006, 0x60080000, 0x0501f004, + 0x60040000, 0x0501f002, 0x60000000, 0x0501f855, + 0x5c000800, 0x1c01f000, 0x4c200000, 0x59a80046, + 0x82000500, 0x00007fff, 0x05f4099d, 0x59a84045, + 0x80204102, 0x05f4199a, 0x48235045, 0x80204500, + 0x05fc07fb, 0x8c000506, 0x05020008, 0x8c000504, + 0x05020008, 0x8c000502, 0x05020008, 0x8c000500, + 0x05020008, 0x05f5f98e, 0x600c0000, 0x0501f006, + 0x60080000, 0x0501f004, 0x60000000, 0x0501f002, + 0x60040000, 0x0501f80d, 0x5c004000, 0x1c01f000, + 0x05011000, 0x4a03c840, 0x0010ae3e, 0x6427c842, + 0x40000000, 0x05fd17ff, 0x64235045, 0x6403503c, + 0x1c01f000, 0x40680000, 0x4c000000, 0x0501f967, + 0x5c000000, 0x0501fa82, 0x60080800, 0x0501f897, + 0x82041500, 0xffffffe3, 0x59c41801, 0x820c1d00, + 0xfffe7fff, 0x800001c0, 0x05000007, 0x90000d81, + 0x0502000a, 0x9008055c, 0x900c1d40, 0x840c1d32, + 0x0501f012, 0x90080558, 0x820c1d40, 0x00008000, + 0x840c1d32, 0x0501f00d, 0x90000d82, 0x05020006, + 0x90080554, 0x820c1d40, 0x00010000, 0x840c1d32, + 0x0501f006, 0x90000d83, 0x05f60959, 0x90080550, + 0x820c1d40, 0x02018000, 0x60080800, 0x0501f87f, + 0x480f8801, 0x0501f146, 0x1c01f000, 0x40680000, + 0x4c000000, 0x0501f938, 0x5c000000, 0x0501fa58, + 0x60000800, 0x0501f86d, 0x82041500, 0xffffffe3, + 0x59c41801, 0x800001c0, 0x05000006, 0x90000d81, + 0x05020007, 0x9008055c, 0x840c1d30, 0x0501f00d, + 0x90080558, 0x840c1d30, 0x0501f00a, 0x90000d82, + 0x05020004, 0x90080554, 0x840c1d30, 0x0501f005, + 0x90000d83, 0x05f60936, 0x90080550, 0x840c1d70, + 0x480f8801, 0x60000800, 0x0501f85c, 0x0501fa2e, + 0x0500000d, 0x4a03c014, 0x00200020, 0x60000800, + 0x0501f84e, 0x90040d1c, 0x90040590, 0x05020004, + 0x4a03c013, 0x00200020, 0x0501f003, 0x4a03c013, + 0x00200000, 0x0501f11d, 0x0501f805, 0x60058800, + 0x05000002, 0x60018800, 0x1c01f000, 0x4c580000, + 0x6050b000, 0x8058b040, 0x05000026, 0x59c4000d, + 0x8c000520, 0x05fe07fc, 0x0501f831, 0x59c4000d, + 0x8c000520, 0x05fe07f8, 0x59c40808, 0x82040d40, + 0x00000300, 0x48078808, 0x6120b001, 0x8058b040, + 0x05fe07ff, 0x6050b000, 0x8058b040, 0x05000015, + 0x59c4000d, 0x8c000520, 0x05020012, 0x0501f820, + 0x59c4000d, 0x8c000520, 0x0502000e, 0x6028b000, + 0x8058b040, 0x05000003, 0x0501f819, 0x05fdf7fd, + 0x6190b000, 0x59c4000d, 0x8c00051e, 0x05000005, + 0x8058b040, 0x05fe07fc, 0x80000580, 0x0501f002, + 0x90000541, 0x5c00b000, 0x1c01f000, 0x60080800, + 0x0501f812, 0x82040500, 0xfffffffe, 0x60080800, + 0x0501f816, 0x60000800, 0x0501f80c, 0x82040500, + 0xfffffffe, 0x60000800, 0x0501f010, 0x40000000, + 0x40000000, 0x40000000, 0x40000000, 0x40000000, + 0x1c01f000, 0x40680800, 0x4807880e, 0x59c4080f, + 0x82040d00, 0x000000ff, 0x40058800, 0x1c01f000, + 0x40680800, 0x406c0000, 0x900001c0, 0x80040d40, + 0x84040d40, 0x4807880e, 0x1c01f000, 0x82000d80, + 0x00200000, 0x05000009, 0x82000d80, 0x02000000, + 0x05000006, 0x82000d80, 0x01000000, 0x05000006, + 0x59c408a3, 0x0501f006, 0x59c408a3, 0x84040d30, + 0x0501f003, 0x59c408a3, 0x84040d32, 0x80040540, + 0x480388a3, 0x480788a3, 0x1c01f000, 0x59c400a3, + 0x84000556, 0x480388a3, 0x84000516, 0x480388a3, + 0x1c01f000, 0x485fc857, 0x4863c857, 0x4c640000, + 0x4d3c0000, 0x4d400000, 0x0525fb55, 0x48635009, + 0x40601800, 0x60002000, 0x0501f8b6, 0x42000000, + 0x0010b238, 0x0545f900, 0x82600500, 0x0000ff00, + 0x82000580, 0x0000f700, 0x05020004, 0x42000000, + 0x0010b220, 0x0545f8f8, 0x0545fa07, 0x05020085, + 0x82600d00, 0x0000ff00, 0x61fe41ff, 0x800409c0, + 0x0500001b, 0x82041580, 0x0000f700, 0x05000013, + 0x82041580, 0x0000f800, 0x05000010, 0x82041580, + 0x0000ff00, 0x6000c800, 0x05000029, 0x840439c0, + 0x0501fe32, 0x05020019, 0x83200400, 0x0010a3b3, + 0x50024800, 0x59240200, 0x8c000500, 0x05000013, + 0x6004c800, 0x0501f01e, 0x42024800, 0x0010b391, + 0x59240200, 0x8c000502, 0x0500000c, 0x59c410a3, + 0x82081500, 0x00008000, 0x05000008, 0x59c410a7, + 0x82081500, 0x0000ff00, 0x82081580, 0x0000ff00, + 0x6000c800, 0x0500000e, 0x8d0c0502, 0x05020007, + 0x8d0c0500, 0x0502000a, 0x599c1017, 0x8c08051a, + 0x0500004e, 0x850e1d42, 0x61fe41ff, 0x6008c800, + 0x60128000, 0x60227800, 0x0501f004, 0x850e1d40, + 0x60128000, 0x417a7800, 0x59a80005, 0x8c000502, + 0x05020004, 0x8d0c050a, 0x05020046, 0x850e1d4a, + 0x42000000, 0x0010b21f, 0x0545f8b3, 0x59a81809, + 0x604c1100, 0x050dfc38, 0x83200580, 0x0000ffff, + 0x05000018, 0x59240400, 0x8c000508, 0x05000009, + 0x417a7800, 0x4d300000, 0x417a6000, 0x0501fe2d, + 0x5c026000, 0x59240400, 0x8c00050a, 0x05020031, + 0x4d400000, 0x82600500, 0x000000ff, 0x61fe89ff, + 0x40643000, 0x603a8000, 0x0541f98b, 0x60040800, + 0x60001002, 0x0521fd1b, 0x5c028000, 0x0501f025, + 0x8d0c0520, 0x05000018, 0x4c580000, 0x42024800, + 0x0010b391, 0x0545f9ad, 0x4d400000, 0x59240200, + 0x8c000500, 0x05000004, 0x60040800, 0x60001002, + 0x0521fd0c, 0x91264c0b, 0x8058b040, 0x05fe07f8, + 0x603a8000, 0x61fe89ff, 0x40643000, 0x0541f972, + 0x5c028000, 0x5c00b000, 0x599c0817, 0x8c04050a, + 0x0502000c, 0x493fc857, 0x4943c857, 0x0201f800, + 0x0010edf3, 0x0501f007, 0x8d0c0520, 0x05000005, + 0x603e8000, 0x61fe89ff, 0x60003000, 0x0541f965, + 0x497b8880, 0x5c028000, 0x5c027800, 0x5c00c800, + 0x1c01f000, 0x60000800, 0x05fdff38, 0x90040542, + 0x60000800, 0x05fdf73d, 0x60080800, 0x05fdff33, + 0x90040542, 0x60080800, 0x05fdf738, 0x60080800, + 0x05fdff2e, 0x82040500, 0xfffffffd, 0x90000550, + 0x60080800, 0x05fdf731, 0x60000800, 0x05fdff27, + 0x82040500, 0xfffffffd, 0x90000550, 0x60000800, + 0x05fdf72a, 0x59c408a8, 0x05fdff19, 0x05fdff18, + 0x59c400a8, 0x80040d80, 0x05fe07fb, 0x1c01f000, + 0x59a80005, 0x8c000500, 0x05000008, 0x59a80008, + 0x8c000500, 0x05020005, 0x84000540, 0x48035008, + 0x60581100, 0x050dfbcc, 0x1c01f000, 0x1c01f000, + 0x59c40801, 0x82040d00, 0x00018000, 0x82040d80, + 0x00018000, 0x05000002, 0x84081518, 0x480b88a3, + 0x1c01f000, 0x42000800, 0x7ff4818e, 0x59e00002, + 0x8c00051e, 0x05020003, 0x42000800, 0x7ff4808e, + 0x58041800, 0x480f504f, 0x8c0c0500, 0x05020007, + 0x8c0c0502, 0x05000005, 0x58044001, 0x58042002, + 0x58041003, 0x0501f007, 0x42004000, 0x0003c014, + 0x42002000, 0x0003c014, 0x42001000, 0x0002e014, + 0x480b5049, 0x4813504a, 0x4823504b, 0x8c0c0500, + 0x05020007, 0x8c0c0504, 0x05000005, 0x58044004, + 0x58042005, 0x58041006, 0x0501f004, 0x60c8400d, + 0x60c8200d, 0x60c8100d, 0x480b504c, 0x4813504d, + 0x4823504e, 0x1c01f000, 0x59a8104c, 0x59a8204d, + 0x59a8404e, 0x60380840, 0x05fdfed8, 0x82040d00, + 0xffffffc0, 0x82200500, 0x003f0000, 0x80000120, + 0x80040540, 0x60380840, 0x05fdfed8, 0x60380848, + 0x05fdfece, 0x82040d00, 0xffffffc0, 0x82200500, + 0x0000fc00, 0x80000114, 0x80040540, 0x60380848, + 0x05fdfece, 0x82200500, 0x000003e0, 0x8000010a, + 0x603808d8, 0x05fdfec9, 0x9020051f, 0x603808f0, + 0x05fdfec6, 0x82100500, 0x003f0000, 0x80000120, + 0x60380908, 0x05fdfec1, 0x82100500, 0x0000fc00, + 0x80000114, 0x60380918, 0x05fdfebc, 0x82100500, + 0x000003e0, 0x8000010a, 0x603808e0, 0x05fdfeb7, + 0x9010051f, 0x603808f8, 0x05fdfeb4, 0x82080500, + 0x003f0000, 0x80000120, 0x60380910, 0x05fdfeaf, + 0x82080500, 0x0000fc00, 0x80000114, 0x60380920, + 0x05fdfeaa, 0x82080500, 0x000003e0, 0x8000010a, + 0x603808e8, 0x05fdfea5, 0x9008051f, 0x60380900, + 0x05fdfea2, 0x1c01f000, 0x59a81049, 0x59a8204a, + 0x59a8404b, 0x9020051f, 0x800000c2, 0x84000540, + 0x60480800, 0x05fdfe99, 0x82200500, 0x000001e0, + 0x80000908, 0x84040d40, 0x82200500, 0x00000600, + 0x80000106, 0x8400054a, 0x80040540, 0x60480830, + 0x05fdfe8e, 0x82200500, 0x00001800, 0x80000916, + 0x82200500, 0x0003e000, 0x80000114, 0x84000544, + 0x80040540, 0x60480848, 0x05fdfe84, 0x9010051f, + 0x800000c2, 0x84000540, 0x60480808, 0x05fdfe7f, + 0x82100500, 0x000001e0, 0x80000908, 0x84040d40, + 0x82100500, 0x00000600, 0x80000106, 0x8400054a, + 0x80040540, 0x60480838, 0x05fdfe74, 0x82100500, + 0x00001800, 0x80000916, 0x82100500, 0x0003e000, + 0x80000114, 0x84000544, 0x80040540, 0x60480850, + 0x05fdfe6a, 0x9008051f, 0x800000c2, 0x84000540, + 0x60480810, 0x05fdfe65, 0x82080500, 0x000001e0, + 0x80000908, 0x84040d40, 0x82080500, 0x00000600, + 0x80000106, 0x8400054a, 0x80040540, 0x60480840, + 0x05fdfe5a, 0x82080500, 0x00001800, 0x80000916, + 0x82080500, 0x0003e000, 0x80000114, 0x84000544, + 0x80040540, 0x60480858, 0x05fdfe50, 0x1c01f000, + 0x0501f805, 0x60058800, 0x05000002, 0x60018800, + 0x1c01f000, 0x4c000000, 0x050dfc26, 0x05020003, + 0x90000541, 0x0501f003, 0x59e00013, 0x8c00050e, + 0x5c000000, 0x1c01f000, 0x0501f805, 0x60058800, + 0x05000002, 0x60018800, 0x1c01f000, 0x4c140000, + 0x4a03c013, 0x03800300, 0x4a03c014, 0x03800380, + 0x60800801, 0x60281000, 0x0505fcc1, 0x05000002, + 0x8c14050c, 0x4a03c014, 0x03800000, 0x5c002800, + 0x1c01f000, 0x4c000000, 0x59a8004f, 0x8c000508, + 0x05020004, 0x90000541, 0x5c000000, 0x1c01f000, + 0x80000580, 0x05fdf7fd, 0x05fdfff7, 0x60058800, + 0x05000002, 0x60018800, 0x1c01f000, 0x4c5c0000, + 0x4000b800, 0x59a80048, 0x82000d80, 0xaabbccdd, + 0x0500000f, 0x90000c85, 0x05f21eed, 0x4c000000, + 0x050dfbd2, 0x5c000000, 0x05020003, 0x0c01f81a, + 0x0501f016, 0x4c000000, 0x050dfbe3, 0x5c000000, + 0x05fc07fb, 0x0c01f819, 0x0501f010, 0x05fdffde, + 0x0500000e, 0x8d0c051a, 0x0500000c, 0x05fdffbe, + 0x0502000a, 0x05fdffca, 0x05020005, 0x905c0d83, + 0x05020006, 0x6008b800, 0x0501f004, 0x905c0d81, + 0x05020002, 0x600cb800, 0x405c0000, 0x5c00b800, + 0x1c01f000, 0x00101b2b, 0x00101b2c, 0x00101b2d, + 0x00101b2e, 0x00101b32, 0x00101b33, 0x00101b35, + 0x00101b45, 0x00101b53, 0x00101b63, 0x1c01f000, + 0x1c01f000, 0x1c01f000, 0x905c0d83, 0x05020002, + 0x6008b800, 0x1c01f000, 0x1c01f000, 0x6004b800, + 0x1c01f000, 0x05fdffb8, 0x05000007, 0x05fdff9a, + 0x05020005, 0x05fdffa6, 0x05000003, 0x6000b800, + 0x0501f008, 0x905c0d83, 0x05020003, 0x6000b800, + 0x0501f004, 0x905c0d82, 0x05020002, 0x05f1feac, + 0x1c01f000, 0x05fdffa8, 0x0500000c, 0x05fdff8a, + 0x0502000a, 0x05fdff96, 0x05020005, 0x905c0d83, + 0x05020006, 0x6008b800, 0x0501f004, 0x905c0d81, + 0x05020002, 0x600cb800, 0x1c01f000, 0x05fdff9a, + 0x0500000b, 0x05fdff7c, 0x05020009, 0x05fdff88, + 0x05020002, 0x0501f006, 0x905c0d83, 0x05000006, + 0x905c0d81, 0x05000004, 0x0501f004, 0x905c0d83, + 0x05020002, 0x6008b800, 0x1c01f000, 0x05fdff8a, + 0x05000006, 0x05fdff6c, 0x05020004, 0x05fdff78, + 0x05020002, 0x0501f004, 0x905c0d81, 0x05020002, + 0x600cb800, 0x1c01f000, 0x4803c856, 0x4c5c0000, + 0x4c600000, 0x4c640000, 0x4c580000, 0x497b5050, + 0x4200c000, 0x7ff52000, 0x050dfb82, 0x05020007, + 0x4803c856, 0x4a03c014, 0x07e30000, 0x59e0c813, + 0x0501f8bb, 0x0501f014, 0x59a8005c, 0x82000d80, + 0x3261103c, 0x050200b1, 0x4803c856, 0x42000800, + 0x7ff481e6, 0x59e06802, 0x8c34051e, 0x05020003, + 0x42000800, 0x7ff480e6, 0x50040000, 0x4803c857, + 0x48035057, 0x8c00051e, 0x050000a4, 0x8200cd00, + 0x000000ff, 0x4867c857, 0x48675051, 0x50600800, + 0x48075052, 0x4807c857, 0x82040d80, 0x53434651, + 0x05020098, 0x8060c000, 0x50600800, 0x48075053, + 0x8060c000, 0x50600800, 0x48075054, 0x8060c000, + 0x50600800, 0x48075055, 0x8060c000, 0x50600800, + 0x82040d00, 0x0000ffff, 0x48075056, 0x4200c000, + 0x7ff52002, 0x5060b800, 0x825cbd00, 0xffff0000, + 0x805cb920, 0x805cb800, 0x05001082, 0x8c5c051e, + 0x05020080, 0x59e06802, 0x8c34051e, 0x0502006a, + 0x4803c856, 0x4200c000, 0x7ff52045, 0x50603000, + 0x82183500, 0x0000ffff, 0x05000011, 0x80180497, + 0x05021074, 0x8060c000, 0x50602000, 0x82100500, + 0xffff0000, 0x80000120, 0x82100d00, 0x0000ffff, + 0x4803c857, 0x4807c857, 0x4c180000, 0x05fdfd53, + 0x5c003000, 0x80183040, 0x05fe07f3, 0x41780800, + 0x40641000, 0x60100000, 0x0521fb30, 0x59e06802, + 0x8c34051e, 0x05020057, 0x4200c000, 0x7ff52005, + 0x8008c418, 0x5060c800, 0x800409c0, 0x0500000a, + 0x90041581, 0x05020003, 0x8064c910, 0x0501f006, + 0x90041582, 0x05020003, 0x8064c920, 0x0501f002, + 0x8064c930, 0x8264cd00, 0x000000ff, 0x4867c857, + 0x48675058, 0x42001000, 0x7ff52002, 0x50080000, + 0x82000500, 0x0000ffff, 0x4803c857, 0x8c00051e, + 0x05020044, 0x80640480, 0x05021042, 0x40640800, + 0x405c1000, 0x0521faf1, 0x4803c857, 0x800001c0, + 0x0502003c, 0x59e06802, 0x8c34051e, 0x05020034, + 0x4200c000, 0x7ff52045, 0x805cc418, 0x8004c418, + 0x05001034, 0x05000033, 0x4863c857, 0x50600000, + 0x82000500, 0x0000ffff, 0x48035059, 0x8c00051e, + 0x0502002c, 0x4803c857, 0x80000c97, 0x05021029, + 0x40601000, 0x80081000, 0x50080800, 0x4807505a, + 0x80081000, 0x50080800, 0x4807505b, 0x4000b800, + 0x8060c000, 0x50602000, 0x82100500, 0xffff0000, + 0x80000120, 0x82100d00, 0x0000ffff, 0x4803c857, + 0x4807c857, 0x05fdfd01, 0x805cb840, 0x05fe07f5, + 0x0501f016, 0x4803c856, 0x42000000, 0x7ff52001, + 0x5000b000, 0x8258b500, 0xffff0000, 0x8058b124, + 0x8258c400, 0x7ff52000, 0xb060c400, 0x05fdf790, + 0x8258c400, 0x7ff52000, 0x05fdf7aa, 0x8258c400, + 0x7ff52000, 0xb060c400, 0x805cc418, 0x05fdf7cc, + 0x4a035050, 0xdeaddead, 0x5c00b000, 0x5c00c800, + 0x5c00c000, 0x5c00b800, 0x1c01f000, 0x4867c857, + 0x90640d20, 0x8004690a, 0x82640d00, 0x00000400, + 0x80040912, 0x80046d4d, 0x90640d01, 0x800408c4, + 0x80046d4d, 0x90640d02, 0x800408c4, 0x80046d4d, + 0x82640d00, 0x00000100, 0x80040908, 0x80046d4d, + 0x82640d00, 0x00000080, 0x80040904, 0x80046d4d, + 0xb0640d00, 0x80046d4d, 0x82640d00, 0x00000200, + 0x80040904, 0x80046d4d, 0x8234cd00, 0x000000ff, + 0x1c01f000, 0x050dfab4, 0x0502000d, 0x4803c856, + 0x4a03c014, 0x18001800, 0x4a03c013, 0x18000800, + 0x05fdfcaf, 0x4a03c013, 0x18000000, 0x61a1d007, + 0x0521f9e1, 0x4a03c013, 0x18000800, 0x1c01f000, + 0x050dfaa5, 0x0502000d, 0x4803c856, 0x4a03c014, + 0x18001800, 0x4a03c013, 0x18001800, 0x05fdfca0, + 0x4a03c013, 0x18001000, 0x61a1d007, 0x0521f9d2, + 0x4a03c013, 0x18001800, 0x1c01f000, 0x050dfa96, + 0x0502000c, 0x60041800, 0x42001000, 0x0010ae51, + 0x60900800, 0x60002180, 0x50080000, 0x82000500, + 0x000000ff, 0x4803c857, 0x050dfb2d, 0x05f00d70, + 0x1c01f000, 0x4803c856, 0x59a80006, 0x8c00051e, + 0x05020008, 0x61f2880f, 0x42003000, 0x00fffffc, + 0x0511fd63, 0x05020007, 0x0501f808, 0x05000005, + 0x4a03501c, 0x0000ffff, 0x90000541, 0x1c01f000, + 0x80000580, 0x05fdf7fe, 0x4937c857, 0x0529fa6a, + 0x05000011, 0x4926601d, 0x4936600a, 0x0535fc2b, + 0x64066407, 0x417a7800, 0x0511fd19, 0x600c0800, + 0x0511fd22, 0x59a8001d, 0x80000000, 0x4803501d, + 0x599c0208, 0x48026c12, 0x600a7000, 0x0005fc78, + 0x90000541, 0x1c01f000, 0x40681000, 0x0501f805, + 0x60018800, 0x05000002, 0x60058800, 0x1c01f000, + 0x480bc857, 0x492fc857, 0x4923c857, 0x4927c857, + 0x4c5c0000, 0x4008b800, 0x61f6880f, 0x42003000, + 0x00fffffd, 0x0511fd36, 0x0502001b, 0x5934000a, + 0x84000544, 0x4802680a, 0x0529fa43, 0x05000016, + 0x4926601d, 0x4936600a, 0x812e59c0, 0x05000006, + 0x592c0405, 0x8c00051e, 0x05000003, 0x48ee602d, + 0x0501f004, 0x59a8021b, 0x8400055c, 0x4803521b, + 0x492e6009, 0x64066407, 0x485e601e, 0x0535fbf7, + 0x608a7000, 0x0005fc78, 0x90000541, 0x5c00b800, + 0x1c01f000, 0x80000580, 0x05fdf7fd, 0x4933c857, + 0x59a8021b, 0x8c000508, 0x05020010, 0x5930500a, + 0x482bc857, 0x916c0582, 0x0502000c, 0x0501f815, + 0x0502000a, 0x58280403, 0x82000580, 0x000007fc, + 0x05000007, 0x59a80016, 0x80000040, 0x4803c857, + 0x05f01d0b, 0x48035016, 0x1c01f000, 0x59300429, + 0x900005a1, 0x05fc07fd, 0x59a8001d, 0x80000040, + 0x4803c857, 0x05fc17f9, 0x4803501d, 0x1c01f000, + 0x59300009, 0x800001c0, 0x05020007, 0x59300403, + 0x90000581, 0x05020003, 0x90000541, 0x0501f002, + 0x80000580, 0x1c01f000, 0x4933c857, 0x493fc857, + 0x4947c857, 0x4927c857, 0x4d400000, 0x4d340000, + 0x4d440000, 0x4c580000, 0x0521fc3d, 0x4df00000, + 0x8060c1c0, 0x05020003, 0x6004b000, 0x0501f003, + 0x61c0b00f, 0x417a8800, 0x41440000, 0x81ac0400, + 0x50000000, 0x80026d40, 0x0500001b, 0x59245005, + 0x59340013, 0x82000500, 0x00ffffff, 0x80280580, + 0x05020015, 0x4d3c0000, 0x60067800, 0x0511ffd2, + 0x5c027800, 0x60a68000, 0x0201f800, 0x0010f260, + 0x0201f800, 0x0010f344, 0x0201f800, 0x0010f3dd, + 0x0515f857, 0x05020005, 0x4937c857, 0x4a026c00, + 0x00000404, 0x0501f002, 0x0515f881, 0x0201f800, + 0x0010f7f5, 0x81468800, 0x8058b040, 0x05fe07df, + 0x5c03e000, 0x05200bfe, 0x5c00b000, 0x5c028800, + 0x5c026800, 0x5c028000, 0x1c01f000, 0x4937c857, + 0x4947c857, 0x4c5c0000, 0x4c600000, 0x4c640000, + 0x59a80073, 0x8c000500, 0x0500001d, 0x599c0017, + 0x8c00050a, 0x0502001a, 0x5934ba02, 0x825cbd00, + 0x000000ff, 0x485fc857, 0x4178c000, 0x4178c800, + 0x82600400, 0x0010cea4, 0x50002000, 0x8060c1c0, + 0x05000008, 0x82100500, 0x000000ff, 0x82002d80, + 0x000000ff, 0x0500000a, 0x805c0580, 0x0500000a, + 0x80102110, 0x8064c800, 0x90640584, 0x05fe07f6, + 0x8060c000, 0x906005a0, 0x05fe07ed, 0x4813c857, + 0x90000541, 0x5c00c800, 0x5c00c000, 0x5c00b800, + 0x1c01f000, 0x59a8021b, 0x8c000512, 0x05f20d4e, + 0x1c01f000, 0x4c5c0000, 0x4c600000, 0x4c640000, + 0x4c500000, 0x6004b000, 0x42024800, 0x0010b391, + 0x417a4000, 0x61fa880f, 0x0541fe17, 0x05000020, + 0x0541fdf6, 0x5924ba00, 0x8c5c0500, 0x05000079, + 0x59a8a21b, 0x8c500506, 0x0500000d, 0x825c0500, + 0x000000e0, 0x82000580, 0x000000e0, 0x05000071, + 0x0501f87e, 0x59a80016, 0x4923c857, 0x4803c857, + 0x80000000, 0x48035016, 0x0501f06a, 0x8c5c051e, + 0x05000068, 0x4927c856, 0x6004b000, 0x825c0500, + 0x000000e1, 0x48024a00, 0x485fc857, 0x825cc500, + 0x000000e0, 0x0502001f, 0x0501f018, 0x0515fda7, + 0x05000002, 0x0541fdd9, 0x5924ba00, 0x8c5c0500, + 0x05000058, 0x0541fdf0, 0x05000005, 0x59a8021b, + 0x8c00050e, 0x05020013, 0x0501f004, 0x83240d80, + 0x0010b391, 0x0502000f, 0x825cc500, 0x000000e0, + 0x0502000c, 0x0515fd95, 0x05000004, 0x42000800, + 0xffffff1d, 0x0501fa91, 0x59a8021b, 0x82000500, + 0xffffdafc, 0x8400054e, 0x4803521b, 0x0501f006, + 0x82600580, 0x000000e0, 0x05020047, 0x8c5c050e, + 0x0502003c, 0x5924c809, 0x9064040e, 0x50000000, + 0x4803c857, 0x80026d40, 0x05000011, 0x0515fd7f, + 0x05000013, 0x59340200, 0x8c00051a, 0x05020031, + 0x59240805, 0x80040910, 0x0500000d, 0x59a80018, + 0x4803c857, 0x4807c857, 0x80040580, 0x05000008, + 0x4a026806, 0xdeaddead, 0x0501f005, 0x42003000, + 0x00fffffe, 0x0511fc26, 0x0502002b, 0x0529f936, + 0x05000029, 0x4936600a, 0x4926601d, 0x64066407, + 0x417a7800, 0x0511fbe6, 0x0201f800, 0x0010edee, + 0x600c0800, 0x0511fbed, 0x0535faf0, 0x49235017, + 0x4923c857, 0x59240005, 0x82000500, 0x000000ff, + 0x48024805, 0x916c0583, 0x05000004, 0x59a80016, + 0x80000000, 0x48035016, 0x599c0208, 0x48026c12, + 0x600a7000, 0x0005fc78, 0x59240200, 0x82000500, + 0xffffff9d, 0x8400054e, 0x8400055e, 0x48024a00, + 0x81224000, 0x91264c0b, 0x8058b040, 0x05000004, + 0x0541fd95, 0x05fe0780, 0x05fdf7a0, 0x4a035017, + 0x0000ffff, 0x5c00a000, 0x5c00c800, 0x5c00c000, + 0x5c00b800, 0x1c01f000, 0x4d300000, 0x4d440000, + 0x4d340000, 0x61fa880f, 0x42003000, 0x00fffffe, + 0x0511fbef, 0x0502001c, 0x0529f8ff, 0x0500001a, + 0x4927c857, 0x4923c857, 0x497a6009, 0x4936600a, + 0x4926601d, 0x64066407, 0x600c0800, 0x0511fbb7, + 0x599c0208, 0x48026c12, 0x600a7000, 0x0005fc78, + 0x59a80a1b, 0x8c040506, 0x05020002, 0x497a4805, 0x59240200, 0x82000500, 0xffffff9d, 0x8400054e, 0x48024a00, 0x5c026800, 0x5c028800, 0x5c026000, 0x1c01f000, 0x80000580, 0x05fdf7fb, 0x4d200000, 0x4d240000, 0x4c580000, 0x4d340000, 0x4d300000, - 0x4d3c0000, 0x4d380000, 0x4d440000, 0x0511fe05, - 0x05020009, 0x0515fc3c, 0x05000004, 0x59a8121b, - 0x8c080506, 0x05000003, 0x05fdff66, 0x0501f002, + 0x4d3c0000, 0x4d380000, 0x4d440000, 0x0511feab, + 0x05020009, 0x0515fd0d, 0x05000004, 0x59a8121b, + 0x8c080506, 0x05000003, 0x05fdff37, 0x0501f002, 0x0501f80a, 0x5c028800, 0x5c027000, 0x5c027800, 0x5c026000, 0x5c026800, 0x5c00b000, 0x5c024800, 0x5c024000, 0x1c01f000, 0x4803c856, 0x4c600000, - 0x0541fab2, 0x4200c000, 0x0010b10f, 0x50600000, + 0x0541fd2e, 0x4200c000, 0x0010b38f, 0x50600000, 0x82024580, 0x0000ffff, 0x05020004, 0x42024800, - 0x0010b111, 0x0501f008, 0x8058b480, 0x05000026, - 0x05001025, 0x40024000, 0x82000400, 0x0010a0ec, + 0x0010b391, 0x0501f008, 0x8058b480, 0x05000026, + 0x05001025, 0x40024000, 0x82000400, 0x0010a3b3, 0x50024800, 0x4520c000, 0x59240005, 0x82000500, 0x000000ff, 0x48024805, 0x59240200, 0x90000503, 0x90000583, 0x0502000e, 0x59240400, 0x8c000508, @@ -14711,19 +14778,19 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x4923c857, 0x4c580000, 0x4c100000, 0x4c0c0000, 0x4c080000, 0x4c040000, 0x4d240000, 0x59243c08, 0x59a81817, 0x820c1580, 0x0000ffff, 0x05020002, - 0x60041800, 0x800c1104, 0x82082400, 0x0010cc24, - 0x50102000, 0x900c0503, 0x0c01f001, 0x00101e4f, - 0x00101e51, 0x00101e53, 0x00101e55, 0x40101000, + 0x60041800, 0x800c1104, 0x82082400, 0x0010cea4, + 0x50102000, 0x900c0503, 0x0c01f001, 0x00101e83, + 0x00101e85, 0x00101e87, 0x00101e89, 0x40101000, 0x0501f006, 0x80101110, 0x0501f004, 0x80101120, 0x0501f002, 0x80101130, 0x4c0c0000, 0x82080500, 0x000000ff, 0x801c0d80, 0x0500001c, 0x800001c0, 0x0500001a, 0x40000800, 0x82000580, 0x000000ff, - 0x0500001a, 0x0501f902, 0x05000014, 0x40040000, - 0x051df819, 0x0502001f, 0x0511fb20, 0x05000005, - 0x0201f800, 0x0010ebbd, 0x0500001a, 0x0501f00b, - 0x599c0019, 0x8c00050e, 0x05020008, 0x0511faa6, - 0x05020014, 0x0201f800, 0x0010ebe1, 0x0201f800, - 0x0010ecd0, 0x0500000f, 0x5c001800, 0x480f5017, + 0x0500001a, 0x0501f927, 0x05000014, 0x40040000, + 0x051df96e, 0x0502001f, 0x0511fbc2, 0x05000005, + 0x0201f800, 0x0010edbd, 0x0500001a, 0x0501f00b, + 0x599c0019, 0x8c00050e, 0x05020008, 0x0511fb48, + 0x05020014, 0x0201f800, 0x0010edee, 0x0201f800, + 0x0010eedf, 0x0500000f, 0x5c001800, 0x480f5017, 0x800c1800, 0x05fdf7cc, 0x5c001800, 0x4a035017, 0x0000ffff, 0x5c024800, 0x5c000800, 0x5c001000, 0x5c001800, 0x5c002000, 0x5c00b000, 0x1c01f000, @@ -14732,2436 +14799,2478 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x59243c08, 0x59a80017, 0x82001580, 0x0000ffff, 0x05020003, 0x4178a800, 0x0501f004, 0x8058b480, 0x05001021, 0x4000a800, 0x48575017, 0x8254bc00, - 0x00102013, 0x505cb800, 0x825cbd00, 0x000000ff, - 0x405c0800, 0x0501f8c6, 0x05000014, 0x405c0000, - 0x0519ffdd, 0x05020016, 0x0511fae4, 0x05000005, - 0x0201f800, 0x0010ebbd, 0x05000011, 0x0501f00b, - 0x599c0019, 0x8c00050e, 0x05020008, 0x0511fa6a, - 0x0502000b, 0x0201f800, 0x0010ebe1, 0x0201f800, - 0x0010ecd0, 0x05000006, 0x8054a800, 0x8058b040, + 0x001020b6, 0x505cb800, 0x825cbd00, 0x000000ff, + 0x405c0800, 0x0501f8eb, 0x05000014, 0x405c0000, + 0x051df932, 0x05020016, 0x0511fb86, 0x05000005, + 0x0201f800, 0x0010edbd, 0x05000011, 0x0501f00b, + 0x599c0019, 0x8c00050e, 0x05020008, 0x0511fb0c, + 0x0502000b, 0x0201f800, 0x0010edee, 0x0201f800, + 0x0010eedf, 0x05000006, 0x8054a800, 0x8058b040, 0x05fe07e2, 0x4a035017, 0x0000ffff, 0x5c00a800, 0x5c00b000, 0x5c00b800, 0x1c01f000, 0x4c580000, 0x4d440000, 0x61c0b00f, 0x80028d80, 0x0001fae7, - 0x05020019, 0x05fdfe6d, 0x05000017, 0x4937c857, - 0x0511fe28, 0x42026000, 0x00110284, 0x4936600a, + 0x05020019, 0x05fdfe3e, 0x05000017, 0x4937c857, + 0x0511fed0, 0x42026000, 0x001104b4, 0x4936600a, 0x497a6009, 0x4926601d, 0x417a7800, 0x0201f800, - 0x0010ec6c, 0x42000000, 0x0010b056, 0x0541f8c6, + 0x0010ee7a, 0x42000000, 0x0010b2d6, 0x0541fb42, 0x59240400, 0x8c00050a, 0x05020007, 0x41782800, - 0x60203000, 0x4d400000, 0x60a68000, 0x053df9c7, + 0x60203000, 0x4d400000, 0x60a68000, 0x053dfc2a, 0x5c028000, 0x81468800, 0x8058b040, 0x05fe07e4, - 0x5c028800, 0x5c00b000, 0x1c01f000, 0x4d200000, - 0x4d240000, 0x4c580000, 0x0541f9d0, 0x8058b040, - 0x05000014, 0x60064000, 0x42024800, 0x0010b11c, - 0x59a8021b, 0x8c000514, 0x05000012, 0x59240200, - 0x8c000510, 0x05020007, 0x59241200, 0x8c080500, - 0x05000004, 0x4923c856, 0x0501f812, 0x05000005, - 0x81224000, 0x91264c0b, 0x8058b040, 0x05fe07f4, + 0x5c028800, 0x5c00b000, 0x1c01f000, 0x4927c857, + 0x4c5c0000, 0x400cb800, 0x4d200000, 0x4d240000, + 0x4c580000, 0x0541fc49, 0x417a4000, 0x42024800, + 0x0010b391, 0x59240200, 0x8c000500, 0x0500000f, + 0x8c5c0508, 0x05000004, 0x8400055a, 0x48024a00, + 0x0501f00a, 0x82000500, 0x000000e0, 0x82000580, + 0x000000e0, 0x05000005, 0x4927c857, 0x4923c857, + 0x0501f838, 0x05000005, 0x81224000, 0x91264c0b, + 0x8058b040, 0x05fe07ec, 0x5c00b000, 0x5c024800, + 0x5c024000, 0x5c00b800, 0x1c01f000, 0x40681800, + 0x4d200000, 0x4d240000, 0x4c580000, 0x4c5c0000, + 0x400cb800, 0x485fc857, 0x0541fc24, 0x8058b040, + 0x05000017, 0x60064000, 0x42024800, 0x0010b39c, + 0x59a8021b, 0x8c000514, 0x05000016, 0x59241200, + 0x8c080510, 0x0502000a, 0x8c080500, 0x05000008, + 0x8c5c0508, 0x05000004, 0x8408155a, 0x480a4a00, + 0x0501f003, 0x0501f813, 0x05000005, 0x81224000, + 0x91264c0b, 0x8058b040, 0x05fe07f1, 0x5c00b800, 0x5c00b000, 0x5c024800, 0x5c024000, 0x1c01f000, 0x497a4805, 0x59240200, 0x90000501, 0x48024a00, - 0x91264c0b, 0x8058b040, 0x05fe07fa, 0x05fdf7f5, + 0x91264c0b, 0x8058b040, 0x05fe07fa, 0x05fdf7f4, 0x4927c857, 0x4923c857, 0x59a8021b, 0x8c000514, - 0x0500001d, 0x4c040000, 0x42000800, 0x0010b111, - 0x58040200, 0x8c00050c, 0x5c000800, 0x05000016, - 0x61fa880f, 0x42003000, 0x00fffffe, 0x0511fa02, - 0x05020011, 0x599c0208, 0x48026c12, 0x4d2c0000, - 0x417a5800, 0x0535f995, 0x5c025800, 0x0500000a, - 0x59a8007b, 0x80000000, 0x4803507b, 0x59240200, - 0x84000550, 0x84000512, 0x48024a00, 0x90000541, - 0x1c01f000, 0x80000580, 0x05fdf7fe, 0x4c580000, - 0x0541f98a, 0x417a4000, 0x42000800, 0x0010b111, - 0x5930001d, 0x80040580, 0x05000006, 0x81224000, - 0x90040c0b, 0x8058b040, 0x05fe07fa, 0x05f1fabc, - 0x4933c857, 0x4923c857, 0x5c00b000, 0x1c01f000, - 0x40683800, 0x4c580000, 0x0541f978, 0x417a4000, - 0x42024800, 0x0010b111, 0x59a8121b, 0x8c080508, - 0x0500000a, 0x821c0d80, 0x00fffffe, 0x0500001d, - 0x8c08050c, 0x0500001b, 0x59240005, 0x801c0580, - 0x05000018, 0x0501f014, 0x90080528, 0x05020005, - 0x59240005, 0x82000500, 0x000000ff, 0x0501f005, - 0x59240200, 0x8c000500, 0x05000004, 0x59240005, - 0x801c0580, 0x0500000b, 0x81224000, 0x91264c0b, - 0x8058b040, 0x05000004, 0x90080528, 0x05fe07f5, - 0x05fdf7f0, 0x61fe41ff, 0x90000541, 0x481fc856, - 0x4923c857, 0x5c00b000, 0x1c01f000, 0x4807c857, - 0x4c580000, 0x0541f94d, 0x42006800, 0x0010b111, - 0x58340005, 0x82000500, 0x000000ff, 0x80040580, - 0x05000005, 0x90346c0b, 0x8058b040, 0x05fe07f9, - 0x90000541, 0x5c00b000, 0x1c01f000, 0x4923c857, - 0x493fc857, 0x4c580000, 0x4d400000, 0x4d440000, - 0x4d340000, 0x4c5c0000, 0x0521f803, 0x4df00000, - 0x61c0b00f, 0x417a8800, 0x83440400, 0x0010a380, - 0x50000000, 0x80026d40, 0x05000021, 0x59340013, - 0x80000130, 0x81200580, 0x0502001d, 0x60a68000, - 0x833c0500, 0x00004000, 0x051e0eab, 0x0201f800, - 0x0010f051, 0x0201f800, 0x0010f148, 0x0201f800, - 0x0010f1e1, 0x0201f800, 0x0010f603, 0x8d3c051c, - 0x05000004, 0x41240800, 0x0511fd75, 0x0501f00c, - 0x8d3c0506, 0x05000004, 0x59340200, 0x8c00050e, - 0x05020007, 0x4937c857, 0x4a026c00, 0x00000707, - 0x59240400, 0x8c00050a, 0x050e0f1d, 0x81468800, - 0x8058b040, 0x05fe07d9, 0x8d3c0502, 0x0500001b, - 0x6040b000, 0x5924b809, 0x505c0000, 0x80026d40, - 0x05000013, 0x59368c03, 0x833c0500, 0x00004000, - 0x051e0e85, 0x0201f800, 0x0010f051, 0x0201f800, - 0x0010f148, 0x0201f800, 0x0010f1e1, 0x0201f800, - 0x0010f603, 0x8d3c051c, 0x05020003, 0x050dff04, - 0x0501f003, 0x41240800, 0x0511fd4d, 0x805cb800, - 0x8058b040, 0x05fe07e9, 0x4d300000, 0x61fe89ff, - 0x42026000, 0x00110284, 0x497a600a, 0x4926601d, - 0x60a68000, 0x0201f800, 0x0010f051, 0x0201f800, - 0x0010f603, 0x5c026000, 0x5c03e000, 0x051c0f9a, + 0x05000016, 0x61fa880f, 0x42003000, 0x00fffffe, + 0x0511fa7f, 0x05020011, 0x599c0208, 0x48026c12, + 0x4d2c0000, 0x417a5800, 0x0535fb1d, 0x5c025800, + 0x0500000a, 0x59a8007b, 0x80000000, 0x4803507b, + 0x59240200, 0x84000550, 0x84000512, 0x48024a00, + 0x90000541, 0x1c01f000, 0x80000580, 0x05fdf7fe, + 0x4c580000, 0x0541fbe1, 0x417a4000, 0x42000800, + 0x0010b391, 0x5930001d, 0x80040580, 0x05000006, + 0x81224000, 0x90040c0b, 0x8058b040, 0x05fe07fa, + 0x05f1fa63, 0x4933c857, 0x4923c857, 0x5c00b000, + 0x1c01f000, 0x40683800, 0x4c580000, 0x0541fbcf, + 0x417a4000, 0x42024800, 0x0010b391, 0x59a8121b, + 0x8c080508, 0x0500000a, 0x821c0d80, 0x00fffffe, + 0x0500001d, 0x8c08050c, 0x0500001b, 0x59240005, + 0x801c0580, 0x05000018, 0x0501f014, 0x90080528, + 0x05020005, 0x59240005, 0x82000500, 0x000000ff, + 0x0501f005, 0x59240200, 0x8c000500, 0x05000004, + 0x59240005, 0x801c0580, 0x0500000b, 0x81224000, + 0x91264c0b, 0x8058b040, 0x05000004, 0x90080528, + 0x05fe07f5, 0x05fdf7f0, 0x61fe41ff, 0x90000541, + 0x481fc856, 0x4923c857, 0x5c00b000, 0x1c01f000, + 0x4807c857, 0x4c580000, 0x0541fba4, 0x42006800, + 0x0010b391, 0x58340005, 0x82000500, 0x000000ff, + 0x80040580, 0x05000005, 0x90346c0b, 0x8058b040, + 0x05fe07f9, 0x90000541, 0x5c00b000, 0x1c01f000, + 0x4923c857, 0x493fc857, 0x4c580000, 0x4d400000, + 0x4d440000, 0x4d340000, 0x4c5c0000, 0x0521f96c, + 0x4df00000, 0x61c0b00f, 0x417a8800, 0x83440400, + 0x0010a600, 0x50000000, 0x80026d40, 0x05000022, + 0x59340013, 0x80000130, 0x81200580, 0x0502001e, + 0x60a68000, 0x833c0500, 0x00004000, 0x05220814, + 0x0201f800, 0x0010f260, 0x0201f800, 0x0010f344, + 0x0201f800, 0x0010f3dd, 0x0201f800, 0x0010f7f5, + 0x8d3c051c, 0x05000004, 0x41240800, 0x0511fdf8, + 0x0501f00d, 0x8d3c0506, 0x05000004, 0x59340200, + 0x8c00050e, 0x05020008, 0x4937c857, 0x497a6c0b, + 0x4a026c00, 0x00000707, 0x59240400, 0x8c00050a, + 0x050e0f96, 0x81468800, 0x8058b040, 0x05fe07d8, + 0x8d3c0502, 0x0500001b, 0x6040b000, 0x5924b809, + 0x505c0000, 0x80026d40, 0x05000013, 0x59368c03, + 0x833c0500, 0x00004000, 0x051e0fed, 0x0201f800, + 0x0010f260, 0x0201f800, 0x0010f344, 0x0201f800, + 0x0010f3dd, 0x0201f800, 0x0010f7f5, 0x8d3c051c, + 0x05020003, 0x050dff7d, 0x0501f003, 0x41240800, + 0x0511fdcf, 0x805cb800, 0x8058b040, 0x05fe07e9, + 0x4d300000, 0x61fe89ff, 0x42026000, 0x001104b4, + 0x4a02600a, 0x0010ce8f, 0x0515f858, 0x4926601d, + 0x60a68000, 0x0201f800, 0x0010f260, 0x0201f800, + 0x0010f7f5, 0x5c026000, 0x5c03e000, 0x05200900, 0x5c00b800, 0x5c026800, 0x5c028800, 0x5c028000, 0x5c00b000, 0x1c01f000, 0x4807c857, 0x4c580000, - 0x0541f8da, 0x42001000, 0x0010b111, 0x58080200, + 0x0541fb2e, 0x42001000, 0x0010b391, 0x58080200, 0x80040500, 0x48001200, 0x9008140b, 0x8058b040, 0x05fe07fb, 0x5c00b000, 0x1c01f000, 0x4803c856, 0x4d440000, 0x4d340000, 0x4c580000, 0x4c5c0000, 0x6040b000, 0x61c2880f, 0x5924b809, 0x83440580, 0x000007fe, 0x05000005, 0x505e6800, 0x813669c0, - 0x05000002, 0x050dfece, 0x81468800, 0x805cb800, + 0x05000002, 0x050dff45, 0x81468800, 0x805cb800, 0x8058b040, 0x05fe07f6, 0x5c00b800, 0x5c00b000, 0x5c026800, 0x5c028800, 0x1c01f000, 0x4923c857, - 0x61fa880f, 0x42003000, 0x00fffffe, 0x0511f916, + 0x61fa880f, 0x42003000, 0x00fffffe, 0x0511f990, 0x05020011, 0x599c0208, 0x48026c12, 0x4d2c0000, - 0x417a5800, 0x0535f8a9, 0x5c025800, 0x0500000a, + 0x417a5800, 0x0535fa2e, 0x5c025800, 0x0500000a, 0x59a8007b, 0x80000000, 0x4803507b, 0x59240200, 0x84000550, 0x84000512, 0x48024a00, 0x90000541, - 0x1c01f000, 0x80000580, 0x05fdf7fe, 0x00007eef, - 0x00007de8, 0x00007ce4, 0x000080e2, 0x00007be1, - 0x000080e0, 0x000080dc, 0x000080da, 0x00007ad9, - 0x000080d6, 0x000080d5, 0x000080d4, 0x000080d3, - 0x000080d2, 0x000080d1, 0x000079ce, 0x000078cd, - 0x000080cc, 0x000080cb, 0x000080ca, 0x000080c9, - 0x000080c7, 0x000080c6, 0x000077c5, 0x000076c3, - 0x000080bc, 0x000080ba, 0x000075b9, 0x000080b6, - 0x000074b5, 0x000073b4, 0x000072b3, 0x000080b2, - 0x000080b1, 0x000080ae, 0x000071ad, 0x000080ac, - 0x000070ab, 0x00006faa, 0x00006ea9, 0x000080a7, - 0x00006da6, 0x00006ca5, 0x00006ba3, 0x00006a9f, - 0x0000699e, 0x0000689d, 0x0000809b, 0x00008098, - 0x00006797, 0x00006690, 0x0000658f, 0x00006488, - 0x00006384, 0x00006282, 0x00008081, 0x00008080, - 0x0000617c, 0x0000607a, 0x00008079, 0x00005f76, - 0x00008075, 0x00008074, 0x00008073, 0x00008072, - 0x00008071, 0x0000806e, 0x00005e6d, 0x0000806c, - 0x00005d6b, 0x00005c6a, 0x00005b69, 0x00008067, - 0x00005a66, 0x00005965, 0x00005863, 0x0000575c, - 0x0000565a, 0x00005559, 0x00008056, 0x00008055, - 0x00005454, 0x00005353, 0x00005252, 0x00005151, - 0x0000504e, 0x00004f4d, 0x0000804c, 0x0000804b, - 0x00004e4a, 0x00004d49, 0x00008047, 0x00004c46, - 0x00008045, 0x00008043, 0x0000803c, 0x0000803a, - 0x00008039, 0x00008036, 0x00004b35, 0x00008034, - 0x00004a33, 0x00004932, 0x00004831, 0x0000802e, - 0x0000472d, 0x0000462c, 0x0000452b, 0x0000442a, - 0x00004329, 0x00004227, 0x00008026, 0x00008025, - 0x00004123, 0x0000401f, 0x00003f1e, 0x00003e1d, - 0x00003d1b, 0x00003c18, 0x00008017, 0x00008010, - 0x00003b0f, 0x00003a08, 0x00008004, 0x00003902, - 0x00008001, 0x00008000, 0x00008000, 0x00003800, - 0x00003700, 0x00003600, 0x00008000, 0x00003500, - 0x00008000, 0x00008000, 0x00008000, 0x00003400, + 0x1c01f000, 0x80000580, 0x05fdf7fe, 0x4923c857, + 0x4d300000, 0x4d440000, 0x61fa880f, 0x42003000, + 0x00fffffe, 0x0511f976, 0x0502001b, 0x0525fe86, + 0x05000019, 0x497a6009, 0x4936600a, 0x4926601d, + 0x64066407, 0x600c0800, 0x0511f940, 0x599c0208, + 0x48026c12, 0x600a7000, 0x0005fc78, 0x59240200, + 0x4927c857, 0x82000500, 0xffffff9d, 0x8400054e, + 0x48024a00, 0x59a8021b, 0x82000500, 0xffffdafc, + 0x8400054e, 0x4803521b, 0x5c028800, 0x5c026000, + 0x1c01f000, 0x80000580, 0x05fdf7fc, 0x4c580000, + 0x0541face, 0x485bc857, 0x41782800, 0x42002000, + 0x0010b391, 0x58100200, 0x90000503, 0x90000583, + 0x05020003, 0x90000541, 0x0501f005, 0x80142800, + 0x9010240b, 0x8058b040, 0x05fe07f7, 0x5c00b000, + 0x1c01f000, 0x0501f805, 0x60018800, 0x05000002, + 0x60058800, 0x1c01f000, 0x4c580000, 0x0541fab7, + 0x42001000, 0x0010b391, 0x58080200, 0x8c00051a, + 0x05020004, 0x9008140b, 0x8058b040, 0x05fe07fb, + 0x5c00b000, 0x1c01f000, 0x00007eef, 0x00007de8, + 0x00007ce4, 0x000080e2, 0x00007be1, 0x000080e0, + 0x000080dc, 0x000080da, 0x00007ad9, 0x000080d6, + 0x000080d5, 0x000080d4, 0x000080d3, 0x000080d2, + 0x000080d1, 0x000079ce, 0x000078cd, 0x000080cc, + 0x000080cb, 0x000080ca, 0x000080c9, 0x000080c7, + 0x000080c6, 0x000077c5, 0x000076c3, 0x000080bc, + 0x000080ba, 0x000075b9, 0x000080b6, 0x000074b5, + 0x000073b4, 0x000072b3, 0x000080b2, 0x000080b1, + 0x000080ae, 0x000071ad, 0x000080ac, 0x000070ab, + 0x00006faa, 0x00006ea9, 0x000080a7, 0x00006da6, + 0x00006ca5, 0x00006ba3, 0x00006a9f, 0x0000699e, + 0x0000689d, 0x0000809b, 0x00008098, 0x00006797, + 0x00006690, 0x0000658f, 0x00006488, 0x00006384, + 0x00006282, 0x00008081, 0x00008080, 0x0000617c, + 0x0000607a, 0x00008079, 0x00005f76, 0x00008075, + 0x00008074, 0x00008073, 0x00008072, 0x00008071, + 0x0000806e, 0x00005e6d, 0x0000806c, 0x00005d6b, + 0x00005c6a, 0x00005b69, 0x00008067, 0x00005a66, + 0x00005965, 0x00005863, 0x0000575c, 0x0000565a, + 0x00005559, 0x00008056, 0x00008055, 0x00005454, + 0x00005353, 0x00005252, 0x00005151, 0x0000504e, + 0x00004f4d, 0x0000804c, 0x0000804b, 0x00004e4a, + 0x00004d49, 0x00008047, 0x00004c46, 0x00008045, + 0x00008043, 0x0000803c, 0x0000803a, 0x00008039, + 0x00008036, 0x00004b35, 0x00008034, 0x00004a33, + 0x00004932, 0x00004831, 0x0000802e, 0x0000472d, + 0x0000462c, 0x0000452b, 0x0000442a, 0x00004329, + 0x00004227, 0x00008026, 0x00008025, 0x00004123, + 0x0000401f, 0x00003f1e, 0x00003e1d, 0x00003d1b, + 0x00003c18, 0x00008017, 0x00008010, 0x00003b0f, + 0x00003a08, 0x00008004, 0x00003902, 0x00008001, + 0x00008000, 0x00008000, 0x00003800, 0x00003700, + 0x00003600, 0x00008000, 0x00003500, 0x00008000, + 0x00008000, 0x00008000, 0x00003400, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, - 0x00008000, 0x00008000, 0x00003300, 0x00003200, + 0x00008000, 0x00003300, 0x00003200, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, - 0x00008000, 0x00008000, 0x00003100, 0x00003000, - 0x00008000, 0x00008000, 0x00002f00, 0x00008000, - 0x00002e00, 0x00002d00, 0x00002c00, 0x00008000, - 0x00008000, 0x00008000, 0x00002b00, 0x00008000, - 0x00002a00, 0x00002900, 0x00002800, 0x00008000, - 0x00002700, 0x00002600, 0x00002500, 0x00002400, - 0x00002300, 0x00002200, 0x00008000, 0x00008000, - 0x00002100, 0x00002000, 0x00001f00, 0x00001e00, - 0x00001d00, 0x00001c00, 0x00008000, 0x00008000, - 0x00001b00, 0x00001a00, 0x00008000, 0x00001900, + 0x00008000, 0x00003100, 0x00003000, 0x00008000, + 0x00008000, 0x00002f00, 0x00008000, 0x00002e00, + 0x00002d00, 0x00002c00, 0x00008000, 0x00008000, + 0x00008000, 0x00002b00, 0x00008000, 0x00002a00, + 0x00002900, 0x00002800, 0x00008000, 0x00002700, + 0x00002600, 0x00002500, 0x00002400, 0x00002300, + 0x00002200, 0x00008000, 0x00008000, 0x00002100, + 0x00002000, 0x00001f00, 0x00001e00, 0x00001d00, + 0x00001c00, 0x00008000, 0x00008000, 0x00001b00, + 0x00001a00, 0x00008000, 0x00001900, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, - 0x00008000, 0x00008000, 0x00001800, 0x00008000, - 0x00001700, 0x00001600, 0x00001500, 0x00008000, - 0x00001400, 0x00001300, 0x00001200, 0x00001100, - 0x00001000, 0x00000f00, 0x00008000, 0x00008000, - 0x00000e00, 0x00000d00, 0x00000c00, 0x00000b00, - 0x00000a00, 0x00000900, 0x00008000, 0x00008000, - 0x00000800, 0x00000700, 0x00008000, 0x00000600, - 0x00008000, 0x00008000, 0x00008000, 0x00000500, - 0x00000400, 0x00000300, 0x00008000, 0x00000200, - 0x00008000, 0x00008000, 0x00008000, 0x00000100, + 0x00008000, 0x00001800, 0x00008000, 0x00001700, + 0x00001600, 0x00001500, 0x00008000, 0x00001400, + 0x00001300, 0x00001200, 0x00001100, 0x00001000, + 0x00000f00, 0x00008000, 0x00008000, 0x00000e00, + 0x00000d00, 0x00000c00, 0x00000b00, 0x00000a00, + 0x00000900, 0x00008000, 0x00008000, 0x00000800, + 0x00000700, 0x00008000, 0x00000600, 0x00008000, + 0x00008000, 0x00008000, 0x00000500, 0x00000400, + 0x00000300, 0x00008000, 0x00000200, 0x00008000, + 0x00008000, 0x00008000, 0x00000100, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, - 0x00008000, 0x00008000, 0x00000000, 0x00008000, + 0x00008000, 0x00000000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, - 0x00008000, 0x00008000, 0x00008000, 0x05f1fc56, - 0x05f008db, 0x492f4017, 0x1c01f000, 0x91a0ac07, - 0x83a00580, 0x0010ac19, 0x05000008, 0x492fc857, - 0x812e59c0, 0x05f008d2, 0x912ca407, 0x6034b000, - 0x053dff40, 0x0501f00d, 0x6040b000, 0x91e0a420, - 0x50500000, 0x8050a000, 0x50500800, 0x900409c0, - 0x80040540, 0x4400a800, 0x8050a000, 0x8054a800, - 0x8058b040, 0x05fe07f7, 0x1c01f000, 0x59a00207, - 0xb0000cbf, 0x050210be, 0x0c01f001, 0x001021b9, - 0x001021ef, 0x001021ef, 0x00102239, 0x0010224e, - 0x001021ef, 0x001021b9, 0x00102263, 0x00102274, - 0x001021ef, 0x001021ef, 0x00102289, 0x001022a7, - 0x001022c5, 0x001021ef, 0x001022e2, 0x001021ef, - 0x001021ef, 0x00102302, 0x001021ef, 0x001023b5, - 0x001021ef, 0x001021ef, 0x001021ef, 0x001021ef, - 0x001023dc, 0x00102433, 0x001021ef, 0x001021ef, - 0x001021ef, 0x001021ef, 0x001021ef, 0x0010247f, - 0x001021ef, 0x001024c7, 0x001021ef, 0x001021ef, - 0x001021ef, 0x001021ef, 0x001024cc, 0x001025c6, - 0x001021ef, 0x001025cd, 0x001021ef, 0x001021ef, - 0x001021ef, 0x001021ef, 0x001021ef, 0x001025ce, - 0x00102656, 0x001027f4, 0x00102800, 0x001021ef, - 0x001021ef, 0x001021ef, 0x001021ef, 0x00102813, - 0x001021ef, 0x001021ef, 0x001021ef, 0x001021ef, - 0x001021ef, 0x001021ef, 0x001021ef, 0x00102837, - 0x00102875, 0x001028b9, 0x001028d0, 0x0010e415, - 0x0010ea14, 0x0010290f, 0x001021ef, 0x00102d9e, - 0x00102a54, 0x00102a8d, 0x001021ef, 0x001021ef, - 0x001021ef, 0x001021ef, 0x001021ef, 0x001021ef, - 0x001021ef, 0x001021ef, 0x00102aa8, 0x00102b05, - 0x001021ef, 0x001021ef, 0x00102b61, 0x001021ef, - 0x00102bdd, 0x00102c61, 0x001021ef, 0x001021ef, - 0x00102cd0, 0x00102d5a, 0x001021ef, 0x00102d9e, - 0x00102fe4, 0x001021ef, 0x00102ff3, 0x0010306d, - 0x001021ef, 0x001021ef, 0x001021ef, 0x001021ef, - 0x001030bc, 0x001030d6, 0x001030ef, 0x001021ef, - 0x00103165, 0x001021ef, 0x001021ef, 0x001031a3, - 0x001021ef, 0x001031c7, 0x001021ef, 0x001021ef, - 0x0010321b, 0x00103350, 0x001021ef, 0x001021ef, - 0x001021ef, 0x001021ef, 0x001021ef, 0x00103392, - 0x00103412, 0x001021ef, 0x48efc857, 0x4031d800, - 0x58ef400a, 0x58ec0002, 0x82000580, 0x00000200, - 0x0500003b, 0x48efc857, 0x4a034207, 0x00004000, - 0x0509fb1c, 0x83a00580, 0x0010ac19, 0x0500000b, - 0x58ee5809, 0x4d2c0000, 0x0501f850, 0x41a25800, - 0x05f1fbc8, 0x40ee5800, 0x05f1fbc6, 0x5c025800, - 0x492fc857, 0x0001f35b, 0x05026007, 0x59a0001e, - 0x84000542, 0x4803401e, 0x4a01d808, 0x001021ca, - 0x1c01f000, 0x59a00207, 0x82000d80, 0x00004000, - 0x05000005, 0x900001c0, 0x90000551, 0x4803c011, - 0x0501f004, 0x900001c0, 0x90000550, 0x4803c011, - 0x0501f844, 0x59e00017, 0x8c00050a, 0x60000800, - 0x0002088c, 0x8d0c0530, 0x05fa0881, 0x000209af, - 0x6403c017, 0x4203e000, 0x30000001, 0x4203e000, - 0x40000000, 0x40ee5800, 0x05f1fba2, 0x59a0001e, - 0x84000504, 0x4803401e, 0x1c01f000, 0x4803c856, - 0x4a034207, 0x00004001, 0x05fdf7ca, 0x4803c856, - 0x4a034207, 0x00004002, 0x05fdf7c6, 0x4803c856, - 0x4a034207, 0x00004003, 0x05fdf7c2, 0x4803c856, - 0x4a034207, 0x00004005, 0x05fdf7be, 0x4803c856, - 0x4a034207, 0x00004006, 0x05fdf7ba, 0x4803c856, - 0x4a034207, 0x0000400b, 0x05fdf7b6, 0x4803c856, - 0x4a034207, 0x0000400c, 0x05fdf7b2, 0x4803c856, - 0x4a034207, 0x0000400c, 0x05fdf7ae, 0x4a034207, - 0x00004020, 0x05fdf7ab, 0x4c580000, 0x4c500000, - 0x4c540000, 0x58eca809, 0x8054a9c0, 0x05ec0fd8, - 0x91a0a407, 0x9054ac07, 0x6034b000, 0x053dfe45, + 0x00008000, 0x00008000, 0x05f1fbb3, 0x05f00838, + 0x492f4017, 0x1c01f000, 0x91a0ac07, 0x83a00580, + 0x0010ae99, 0x05000008, 0x492fc857, 0x812e59c0, + 0x05f0082f, 0x912ca407, 0x6034b000, 0x0541f94d, + 0x0501f00d, 0x6040b000, 0x91e0a420, 0x50500000, + 0x8050a000, 0x50500800, 0x900409c0, 0x80040540, + 0x4400a800, 0x8050a000, 0x8054a800, 0x8058b040, + 0x05fe07f7, 0x1c01f000, 0x59a00207, 0xb0000cbf, + 0x050210be, 0x0c01f001, 0x0010225c, 0x00102292, + 0x00102292, 0x001022dc, 0x001022f1, 0x00102292, + 0x0010225c, 0x00102306, 0x00102317, 0x00102292, + 0x00102292, 0x0010232f, 0x0010234d, 0x0010236b, + 0x00102292, 0x00102388, 0x00102292, 0x00102292, + 0x001023a8, 0x00102292, 0x0010245b, 0x00102292, + 0x00102292, 0x00102292, 0x00102292, 0x00102482, + 0x001024d9, 0x00102292, 0x00102292, 0x00102292, + 0x00102292, 0x00102292, 0x00102525, 0x00102292, + 0x0010256d, 0x00102292, 0x00102292, 0x00102292, + 0x00102292, 0x00102572, 0x0010266c, 0x00102292, + 0x00102673, 0x00102292, 0x00102292, 0x00102292, + 0x00102292, 0x00102292, 0x00102674, 0x001026fc, + 0x0010289a, 0x001028a6, 0x00102292, 0x00102292, + 0x00102292, 0x00102292, 0x001028b9, 0x00102292, + 0x00102292, 0x00102292, 0x00102292, 0x00102292, + 0x00102292, 0x00102292, 0x001028dd, 0x0010291b, + 0x0010295f, 0x00102976, 0x0010e615, 0x0010ec14, + 0x001029b5, 0x00102292, 0x00102e44, 0x00102afa, + 0x00102b33, 0x00102292, 0x00102292, 0x00102292, + 0x00102292, 0x00102292, 0x00102292, 0x00102292, + 0x00102292, 0x00102b4e, 0x00102bab, 0x00102292, + 0x00102292, 0x00102c07, 0x00102292, 0x00102c83, + 0x00102d07, 0x00102292, 0x00102292, 0x00102d76, + 0x00102e00, 0x00102292, 0x00102e44, 0x001030af, + 0x00102292, 0x001030be, 0x00103138, 0x00102292, + 0x00102292, 0x00102292, 0x00102292, 0x00103187, + 0x001031a1, 0x001031ba, 0x00102292, 0x00103230, + 0x00102292, 0x00102292, 0x0010326e, 0x00102292, + 0x00103292, 0x00102292, 0x00102292, 0x001032e6, + 0x0010341b, 0x00102292, 0x00102292, 0x00102292, + 0x00102292, 0x00102292, 0x0010345d, 0x001034dd, + 0x00102292, 0x48efc857, 0x4031d800, 0x58ef400a, + 0x58ec0002, 0x82000580, 0x00000200, 0x0500003b, + 0x48efc857, 0x4a034207, 0x00004000, 0x0509fb44, + 0x83a00580, 0x0010ae99, 0x0500000b, 0x58ee5809, + 0x4d2c0000, 0x0501f850, 0x41a25800, 0x05f1fb25, + 0x40ee5800, 0x05f1fb23, 0x5c025800, 0x492fc857, + 0x0001f35b, 0x05026007, 0x59a0001e, 0x84000542, + 0x4803401e, 0x4a01d808, 0x0010226d, 0x1c01f000, + 0x59a00207, 0x82000d80, 0x00004000, 0x05000005, + 0x900001c0, 0x90000551, 0x4803c011, 0x0501f004, + 0x900001c0, 0x90000550, 0x4803c011, 0x0501f844, + 0x59e00017, 0x8c00050a, 0x60000800, 0x0002088c, + 0x8d0c0530, 0x05f60fdc, 0x000209af, 0x6403c017, + 0x4203e000, 0x30000001, 0x4203e000, 0x40000000, + 0x40ee5800, 0x05f1faff, 0x59a0001e, 0x84000504, + 0x4803401e, 0x1c01f000, 0x4803c856, 0x4a034207, + 0x00004001, 0x05fdf7ca, 0x4803c856, 0x4a034207, + 0x00004002, 0x05fdf7c6, 0x4803c856, 0x4a034207, + 0x00004003, 0x05fdf7c2, 0x4803c856, 0x4a034207, + 0x00004005, 0x05fdf7be, 0x4803c856, 0x4a034207, + 0x00004006, 0x05fdf7ba, 0x4803c856, 0x4a034207, + 0x0000400b, 0x05fdf7b6, 0x4803c856, 0x4a034207, + 0x0000400c, 0x05fdf7b2, 0x4803c856, 0x4a034207, + 0x0000400c, 0x05fdf7ae, 0x4a034207, 0x00004020, + 0x05fdf7ab, 0x4c580000, 0x4c500000, 0x4c540000, + 0x58eca809, 0x8054a9c0, 0x05ec0f35, 0x91a0a407, + 0x9054ac07, 0x6034b000, 0x0541f852, 0x5c00a800, + 0x5c00a000, 0x5c00b000, 0x1c01f000, 0x4c580000, + 0x4c500000, 0x4c540000, 0x59a00007, 0x4803c857, + 0x59a00008, 0x4803c857, 0x59a00009, 0x4803c857, + 0x91e0ac20, 0x91a0a407, 0x6040b000, 0x50500000, + 0x4400a800, 0x8054a800, 0x900001c0, 0x4400a800, + 0x8054a800, 0x8050a000, 0x8058b040, 0x05fe07f8, 0x5c00a800, 0x5c00a000, 0x5c00b000, 0x1c01f000, - 0x4c580000, 0x4c500000, 0x4c540000, 0x59a00007, - 0x4803c857, 0x59a00008, 0x4803c857, 0x59a00009, - 0x4803c857, 0x91e0ac20, 0x91a0a407, 0x6040b000, - 0x50500000, 0x4400a800, 0x8054a800, 0x900001c0, - 0x4400a800, 0x8054a800, 0x8050a000, 0x8058b040, - 0x05fe07f8, 0x5c00a800, 0x5c00a000, 0x5c00b000, - 0x1c01f000, 0x59a00407, 0x800000c2, 0x59a00a08, - 0x900409c0, 0x80040540, 0x84000540, 0x59a00c08, - 0x8c040500, 0x0500000b, 0x4c000000, 0x053dfe7a, - 0x5c000000, 0x05000004, 0x48030004, 0x64030000, - 0x05fdf771, 0x64030000, 0x64134407, 0x05fc07b0, - 0x4803880e, 0x05fdf76c, 0x59a00407, 0x800000c2, - 0x59a00c08, 0x8c040500, 0x0500000d, 0x4c000000, - 0x053dfe69, 0x5c000000, 0x05000006, 0x48030004, - 0x59800805, 0x48074407, 0x64030000, 0x05fdf75e, - 0x64030000, 0x64134407, 0x05fc079d, 0x4803880e, - 0x59c4080f, 0x48074407, 0x05fdf757, 0x59a01c07, - 0x59a00208, 0x900c19c0, 0x800c1d40, 0x580c0803, - 0x80000580, 0x500c1000, 0x80080400, 0x800c1800, - 0x80040840, 0x05fe07fc, 0x48034407, 0x900001c0, - 0x48034208, 0x800001c0, 0x05fc0747, 0x05fdf784, - 0x64174407, 0x64134208, 0x64034408, 0x59a8000a, - 0x82000c80, 0x00140000, 0x05021004, 0x42000000, - 0x0013ffff, 0x0501f006, 0x59a8088a, 0x8c040500, - 0x05000003, 0x82000400, 0x00006000, 0x48034209, - 0x900001c0, 0x48034409, 0x4a03420a, 0x00000095, - 0x05fdf731, 0x59a00408, 0x59a01208, 0x900811c0, - 0x80081540, 0x59a0040a, 0x59a01a0a, 0x900c19c0, - 0x800c1d40, 0x59a00a09, 0x59a00409, 0x900409c0, - 0x80040d40, 0x59a0020b, 0x90002490, 0x05fc1768, - 0x59a02407, 0x900001c0, 0x80100540, 0x59a8280a, - 0x80142480, 0x050a1249, 0x42002800, 0x7fefffff, - 0x80142480, 0x05fe175e, 0x42002800, 0x7ffd0000, - 0x80142480, 0x05fc175a, 0x0509f240, 0x59a00408, + 0x59a00407, 0x800000c2, 0x59a00a08, 0x900409c0, + 0x80040540, 0x84000540, 0x59a00c08, 0x8c040500, + 0x0500000b, 0x4c000000, 0x0541f887, 0x5c000000, + 0x05000004, 0x48030004, 0x64030000, 0x05fdf771, + 0x64030000, 0x64134407, 0x05fc07b0, 0x4803880e, + 0x05fdf76c, 0x59a00407, 0x800000c2, 0x59a00c08, + 0x8c040500, 0x0500000d, 0x4c000000, 0x0541f876, + 0x5c000000, 0x05000006, 0x48030004, 0x59800805, + 0x48074407, 0x64030000, 0x05fdf75e, 0x64030000, + 0x64134407, 0x05fc079d, 0x4803880e, 0x59c4080f, + 0x48074407, 0x05fdf757, 0x59a01c07, 0x59a00208, + 0x900c19c0, 0x800c1d40, 0x580c0803, 0x80000580, + 0x500c1000, 0x80080400, 0x800c1800, 0x80040840, + 0x05fe07fc, 0x48034407, 0x900001c0, 0x48034208, + 0x800001c0, 0x05fc0747, 0x05fdf784, 0x64174407, + 0x64174208, 0x64034408, 0x59a8000a, 0x82000c80, + 0x00140000, 0x05021004, 0x42000000, 0x0013ffff, + 0x0501f006, 0x59a8088a, 0x8c040500, 0x05000003, + 0x82000400, 0x00006000, 0x48034209, 0x900001c0, + 0x48034409, 0x60540121, 0x4803420a, 0x900001c0, + 0x4803440e, 0x6403400f, 0x05fdf72e, 0x59a00408, 0x59a01208, 0x900811c0, 0x80081540, 0x59a0040a, 0x59a01a0a, 0x900c19c0, 0x800c1d40, 0x59a00a09, 0x59a00409, 0x900409c0, 0x80040d40, 0x59a0020b, - 0x90002490, 0x05fc174a, 0x59a02407, 0x900001c0, - 0x80100540, 0x59a8280a, 0x80142480, 0x050a1231, - 0x42002800, 0x7fefffff, 0x80142480, 0x05fe1740, - 0x42002800, 0x7ffd0000, 0x80142480, 0x05fc173c, - 0x0509f228, 0x59a02408, 0x59a00208, 0x901021c0, - 0x80102540, 0x59a01a0b, 0x59a00407, 0x900c19c0, - 0x800c1d40, 0x41781000, 0x820c0580, 0x00007c00, - 0x0500000a, 0x820c0480, 0x00007a00, 0x05001007, - 0x820c0480, 0x00007cff, 0x05021004, 0x053dfde6, - 0x05000007, 0x80081000, 0x44101800, 0x800811c0, - 0x05fc06dd, 0x64030000, 0x05fdf6db, 0x64030000, - 0x64134407, 0x05fdf71a, 0x59a01a0b, 0x59a00407, - 0x900c19c0, 0x800c1d40, 0x41781000, 0x820c0580, - 0x00007c00, 0x0500000a, 0x820c0480, 0x00007a00, - 0x05001007, 0x820c0480, 0x00007cff, 0x05021004, - 0x053dfdcd, 0x0500000e, 0x80081000, 0x500c0000, - 0x82000d00, 0x0000ffff, 0x48074208, 0x82000d00, - 0xffff0000, 0x900409c0, 0x48074408, 0x800811c0, - 0x05fc06bd, 0x64030000, 0x05fdf6bb, 0x64030000, - 0x64134407, 0x05fdf6fa, 0x4d2c0000, 0x4d340000, - 0x4d300000, 0x4d440000, 0x0509faab, 0x05020006, - 0x4923c857, 0x4927c857, 0x59a28c07, 0x0511f9e9, - 0x05000006, 0x5c028800, 0x5c026000, 0x5c026800, - 0x5c025800, 0x05fdf6ee, 0x4937c857, 0x59a04408, - 0x59a00208, 0x900001c0, 0x80204540, 0x4823c857, - 0x0501f877, 0x05000008, 0x64074209, 0x4a034407, - 0x0000ffff, 0x4a034208, 0x0000ffff, 0x497b4408, - 0x0501f03d, 0x497b4407, 0x0501f879, 0x0500003f, - 0x59300402, 0x48034407, 0x59300202, 0x48034208, - 0x59300006, 0x48034408, 0x59a0020c, 0x8c000500, - 0x05000030, 0x4933c857, 0x0511f97e, 0x05000003, - 0x64274407, 0x0501f031, 0x8d0c050e, 0x05000003, - 0x64074407, 0x0501f02d, 0x916c0583, 0x05000003, - 0x641f4407, 0x0501f029, 0x59340200, 0x8c00050e, - 0x05000003, 0x64834407, 0x0501f024, 0x59300407, - 0x90000d83, 0x05020007, 0x59300804, 0x9004051f, - 0x90000584, 0x05020003, 0x8c04053e, 0x05020015, - 0x0509f97e, 0x05020003, 0x640b4407, 0x0501f017, - 0x492fc857, 0x4a025c05, 0x00008000, 0x497a5a05, - 0x497a5806, 0x0535f998, 0x05020003, 0x640f4407, - 0x0501f00e, 0x4a01d808, 0x00102367, 0x5c028800, - 0x5c026000, 0x5c026800, 0x5c025800, 0x1c01f000, - 0x640b4209, 0x5c028800, 0x5c026000, 0x5c026800, - 0x5c025800, 0x05fdf658, 0x5c028800, 0x5c026000, - 0x5c026800, 0x5c025800, 0x05fdf695, 0x492fc857, - 0x4933c857, 0x497a602a, 0x592c0006, 0x82000580, - 0x01000000, 0x05020003, 0x64134407, 0x05fdf68c, - 0x4d2c0000, 0x912e5c07, 0x592c0000, 0x82000580, - 0x02000000, 0x05020011, 0x4803c856, 0x64134209, - 0x592c0804, 0x82040500, 0x0000ffff, 0x48034409, - 0x80040920, 0x4807420a, 0x592c0805, 0x82040500, - 0x0000ffff, 0x4803440a, 0x80040920, 0x4807420b, - 0x5c025800, 0x05fdf634, 0x4803c856, 0x64174209, - 0x592c0801, 0x82040500, 0x0000ffff, 0x48034409, - 0x80040920, 0x4807420a, 0x05fdf7f6, 0x4937c857, - 0x4823c857, 0x5934000f, 0x80001d40, 0x05000005, - 0x580c0006, 0x80200580, 0x05020003, 0x81780000, - 0x1c01f000, 0x580c0000, 0x05fdf7f8, 0x4823c857, - 0x4d2c0000, 0x42026000, 0x001102e4, 0x59300407, - 0x90000d83, 0x05000003, 0x90000d86, 0x05020007, - 0x59325809, 0x812e59c0, 0x05000004, 0x592c0006, - 0x80200580, 0x05000009, 0x91326430, 0x59a8000b, - 0x81300480, 0x05fc17f2, 0x417a6000, 0x80000580, - 0x5c025800, 0x1c01f000, 0x90000541, 0x5c025800, - 0x1c01f000, 0x83a00580, 0x0010ac19, 0x05fe0638, - 0x64030000, 0x4a034207, 0x00004000, 0x4a03c011, - 0x40000010, 0x05fdfe63, 0x59e00017, 0x8c00050a, - 0x60000800, 0x0002088c, 0x8d0c0530, 0x05f60ea0, - 0x000209af, 0x6403c017, 0x4203e000, 0x30000001, - 0x4203e000, 0x40000000, 0x4203e000, 0xb0100000, - 0x41fc0000, 0x8c00050a, 0x05fc07fc, 0x053dfcee, - 0x05fc07ff, 0x59800802, 0x8c040520, 0x05020003, - 0x64030000, 0x05fdf7f5, 0x60101020, 0x50080000, - 0x8400054c, 0x44001000, 0x64030000, 0x0501f000, - 0x59a00c07, 0x800409c0, 0x05000005, 0x916c0580, - 0x05000003, 0x646b4407, 0x05fdf619, 0x42007000, - 0x0010ac7a, 0x58381c01, 0x58382201, 0x58383202, - 0x8c040500, 0x0500000b, 0x59a01208, 0x82080500, - 0x0000f003, 0x05fe0612, 0x82080480, 0x00000841, - 0x05fe160f, 0x82080480, 0x00000100, 0x05fc160c, - 0x40040000, 0x800c0540, 0x90000528, 0x900005a8, - 0x05fc0607, 0x8c04050a, 0x05000006, 0x59a03c08, - 0x901c0486, 0x05fe1602, 0x901c0481, 0x05fc1600, - 0x8c040506, 0x05000003, 0x4a01a8e4, 0x0000c000, - 0x8c040504, 0x05000004, 0x59e00002, 0x8400056e, - 0x4803c002, 0x8c040502, 0x05000004, 0x600028ec, - 0x4a002805, 0xd0000000, 0x40040000, 0x800c0540, - 0x48007401, 0x8c040500, 0x05000002, 0x48087201, - 0x8c04050a, 0x0500001a, 0x481c7202, 0x4c0c0000, - 0x4c100000, 0x4c180000, 0x051dfb63, 0x4df00000, - 0x58383a02, 0x481fc857, 0x41780000, 0x801c3840, - 0x800010c8, 0x82081400, 0x0000b037, 0x64001002, - 0x801c1c80, 0x05021002, 0x64081002, 0x80000000, - 0x90001c85, 0x05fc17f7, 0x5c03e000, 0x051c0b3e, - 0x5c003000, 0x5c002000, 0x5c001800, 0x480f4407, - 0x48134208, 0x481b4408, 0x05fdf587, 0x4d440000, - 0x4d340000, 0x59a28c07, 0x0509f97b, 0x05020009, - 0x0511f8bc, 0x05020007, 0x0511f872, 0x05000008, - 0x64274407, 0x5c026800, 0x5c028800, 0x05fdf5bc, - 0x5c026800, 0x5c028800, 0x05fdf5bd, 0x59a01208, - 0x59a01c08, 0x5934400a, 0x82203d00, 0x0000e000, - 0x801c391a, 0x8c080500, 0x0500001a, 0x900c0d07, - 0x90040580, 0x0500000b, 0x90040581, 0x05000009, - 0x90040583, 0x05000007, 0x90040584, 0x05000005, - 0x90040593, 0x05000003, 0x4937c857, 0x60100800, - 0x82204500, 0xffff1fff, 0x800400da, 0x80200540, - 0x4802680a, 0x4c080000, 0x4c1c0000, 0x051dfb1e, - 0x0511fadc, 0x051dfb08, 0x5c003800, 0x5c001000, - 0x481f4408, 0x5934400a, 0x82203d00, 0x0f000000, - 0x801c3930, 0x8c080504, 0x05020011, 0x8c080502, - 0x0500000b, 0x4823c857, 0x82204500, 0xf0ffffff, - 0x59a01a09, 0x900c0d0f, 0x800400f0, 0x8400056e, - 0x80200540, 0x4802680a, 0x4803c857, 0x481f4209, - 0x5c026800, 0x5c028800, 0x05fdf53f, 0x82204500, - 0xf07fffff, 0x4822680a, 0x05fdf7f9, 0x8d0c050e, - 0x05000003, 0x64074407, 0x05fdf579, 0x916c0583, - 0x05020014, 0x0509f92c, 0x05fe0579, 0x59240200, - 0x8c000502, 0x0500003c, 0x59240005, 0x497b4407, - 0x0511fda1, 0x0500000e, 0x82000d00, 0x00ffff00, - 0x0502000b, 0x82000c00, 0x00102013, 0x50040800, - 0x80040910, 0x82041580, 0x00000080, 0x05020003, - 0x641f4407, 0x05fdf562, 0x48074407, 0x82000d00, - 0x0000ffff, 0x48074208, 0x80000120, 0x48034408, - 0x59a8021b, 0x82001500, 0x00003500, 0x480b440a, - 0x8c000502, 0x05000016, 0x8c000506, 0x05000006, - 0x90000d0a, 0x90040d8a, 0x05020003, 0x6407420a, - 0x0501f018, 0x8c00050a, 0x05000006, 0x90000d22, - 0x90040da2, 0x05020003, 0x640f420a, 0x0501f011, - 0x8c000508, 0x05000006, 0x90000d12, 0x90040d92, - 0x05020003, 0x640b420a, 0x0501f00a, 0x0511fd72, - 0x05020003, 0x6413420a, 0x05fdf4fb, 0x8c000506, - 0x05000003, 0x64174407, 0x05fdf539, 0x6403420a, - 0x05fdf4f5, 0x646f4407, 0x05fdf535, 0x59a8002e, - 0x48034408, 0x59a8002f, 0x4803420a, 0x05fdf4ee, - 0x42007800, 0x0010b0e4, 0x59a00407, 0x4803c857, - 0x90000c8a, 0x05fe152e, 0x0c01f001, 0x00102545, - 0x001024e5, 0x001024f2, 0x00102502, 0x00102521, - 0x00102546, 0x001024de, 0x001024de, 0x00102552, - 0x0010258d, 0x001024df, 0x05fdf521, 0x59a00208, - 0x48007c01, 0x59a00408, 0x48007a01, 0x05edfdbf, - 0x0501f061, 0x916c0580, 0x05fc0515, 0x59a00a08, - 0x59a00408, 0x900001c0, 0x80040d40, 0x4807c857, - 0x59a00a09, 0x59a00409, 0x900001c0, 0x80040d40, - 0x4807c857, 0x0501f054, 0x916c0580, 0x05fc0508, - 0x59a00408, 0x59a01208, 0x900001c0, 0x80081540, - 0x59a00409, 0x59a01a09, 0x900001c0, 0x800c1d40, - 0x42000000, 0x0010cfb7, 0x480fc857, 0x480bc857, - 0x60000820, 0x0505f7eb, 0x59a00a08, 0x59a00408, - 0x900001c0, 0x80041d40, 0x820c0c80, 0x0010a29b, - 0x05fe14f7, 0x820c0c80, 0x00100000, 0x05fc14f4, - 0x480fc857, 0x903c7c22, 0x503c0800, 0x800409c0, - 0x05000005, 0x903c05a6, 0x05fc04ed, 0x803c7800, - 0x05fdf7fa, 0x59e41001, 0x82080d00, 0xfffeffcf, - 0x4807c801, 0x440c7800, 0x46001800, 0x0201f800, - 0x800c1800, 0x46001800, 0x001001e0, 0x480bc801, - 0x0501f025, 0x59a01a08, 0x59a00408, 0x900001c0, - 0x800c1d40, 0x480c7803, 0x59a02209, 0x59a00409, - 0x900001c0, 0x80102540, 0x48107804, 0x59a0020a, - 0x40001000, 0x48007807, 0x80000040, 0x05fc14d0, - 0x48007808, 0x60000880, 0x0519ffee, 0x80000540, - 0x05000002, 0x05fdf4ca, 0x40040000, 0x800c1c00, - 0x05fc14c7, 0x4800780a, 0x480c7805, 0x48107806, - 0x4978780c, 0x59a0040a, 0x800000c4, 0x4800780b, - 0x59e40001, 0x4803c857, 0x82000540, 0x00040000, - 0x4803c801, 0x05fdf474, 0x49787803, 0x49787804, - 0x49787808, 0x49787807, 0x49787803, 0x49787805, - 0x49787806, 0x4978780c, 0x4978780b, 0x59e40001, - 0x84000524, 0x05fdf7f3, 0x4978781f, 0x49787814, - 0x49787815, 0x4978781d, 0x49787817, 0x49787818, - 0x59a01a08, 0x59a00408, 0x900001c0, 0x800c1d40, - 0x480c780e, 0x480c7819, 0x480c781b, 0x59a02209, - 0x59a00409, 0x900001c0, 0x80102540, 0x4810780f, - 0x4810781a, 0x4810781c, 0x59a0020a, 0x80000540, - 0x05fc0497, 0x48007813, 0x60000808, 0x40001000, - 0x0519ffb4, 0x80000540, 0x05fe0491, 0x40040000, - 0x800c1c00, 0x05fc148e, 0x480c7810, 0x48107811, - 0x4a03420a, 0x00000400, 0x59a0040a, 0x4800781e, - 0x850e1d6a, 0x59a0040b, 0x48007a12, 0x59a0020c, - 0x48007c12, 0x600c0000, 0x05edfcff, 0x80102000, - 0x4810780d, 0x48134209, 0x901021c0, 0x48134409, - 0x59e40052, 0x4803c857, 0x4a007816, 0x00000400, - 0x903c0416, 0x48034208, 0x900001c0, 0x48034408, - 0x05fdf42d, 0x583c0800, 0x830e1d00, 0xffcfffff, - 0x48ec7820, 0x4a01d802, 0x00000100, 0x583c0017, - 0x82000500, 0x000000ff, 0x05020008, 0x4807c857, - 0x8c040502, 0x05000004, 0x84040d48, 0x48047800, - 0x1c01f000, 0x0501f003, 0x05f5f9e6, 0x1c01f000, - 0x42007800, 0x0010b0e4, 0x583dd820, 0x58ef400a, - 0x40ec6000, 0x583c0000, 0x48efc857, 0x49a3c857, - 0x4803c857, 0x82000500, 0x0000ffc0, 0x48007800, - 0x583c001d, 0x4803c857, 0x583c0819, 0x4807c857, - 0x48074208, 0x900409c0, 0x48074408, 0x583c081a, - 0x48074209, 0x900409c0, 0x48074409, 0x583c081b, - 0x4807420a, 0x900409c0, 0x4807440a, 0x583c081c, - 0x4807420b, 0x900409c0, 0x4807440b, 0x49787818, - 0x583c0017, 0x49787817, 0x82000500, 0x000000ff, - 0x05fe03ee, 0x05fdf3f4, 0x59a80005, 0x48034407, - 0x59a80006, 0x48034208, 0x59a80007, 0x48034408, - 0x05fdf3ed, 0x05edfc22, 0x4803c856, 0x59a0020c, - 0x4803c857, 0x8c00051e, 0x050a00ad, 0x05f9fd19, - 0x05000003, 0x05f9fcfb, 0x05000003, 0x648b4407, - 0x05fdf423, 0x4a03c013, 0x03800300, 0x4a03c014, - 0x03800380, 0x59a00c07, 0x82040580, 0x000000a0, - 0x05000004, 0x82040580, 0x000000a2, 0x0502001c, - 0x59a0140b, 0x82080480, 0x00000100, 0x05021018, - 0x59a0020c, 0x8c000500, 0x0502001f, 0x59a00a0b, - 0x800409c0, 0x05000012, 0xb0040481, 0x05021010, - 0x0505fed6, 0x0500000a, 0x59a01008, 0x900811c0, - 0x59a0180a, 0x900c19c0, 0x59a00a0b, 0x0505fef1, - 0x4a01d808, 0x00102602, 0x1c01f000, 0x640b4407, - 0x4a03c014, 0x03800000, 0x05fdf3fd, 0x4a03c014, - 0x03800000, 0x05fdf3fe, 0x4031d800, 0x58ef400a, - 0x58ee580c, 0x58ec0002, 0x82000580, 0x00000200, - 0x05fc03eb, 0x59a00c07, 0x59a0140b, 0x59a0020c, - 0x8c000500, 0x05020038, 0x912e5c05, 0x4178c000, - 0x59a0ba0b, 0x40600000, 0x812c0400, 0x5000c800, - 0x82641d00, 0x000000ff, 0x4c040000, 0x4c080000, - 0x0501f8b8, 0x5c001000, 0x5c000800, 0x05000037, - 0x805cb840, 0x05000032, 0x80081000, 0x82641d00, - 0x0000ff00, 0x800c1910, 0x4c040000, 0x4c080000, - 0x0501f8ac, 0x5c001000, 0x5c000800, 0x0500002b, - 0x805cb840, 0x05000026, 0x80081000, 0x82641d00, - 0x00ff0000, 0x800c1920, 0x4c040000, 0x4c080000, - 0x0501f8a0, 0x5c001000, 0x5c000800, 0x0500001f, - 0x805cb840, 0x0500001a, 0x80081000, 0x82641d00, - 0xff000000, 0x800c1930, 0x4c040000, 0x4c080000, - 0x0501f894, 0x5c001000, 0x5c000800, 0x05000013, - 0x805cb840, 0x0500000e, 0x80081000, 0x8060c000, - 0x05fdf7cd, 0x59a0020b, 0x82000500, 0x000000ff, - 0x40001800, 0x4c040000, 0x4c080000, 0x0501f885, - 0x5c001000, 0x5c000800, 0x05000004, 0x4a03c014, - 0x03800000, 0x05fdf368, 0x4a03c014, 0x03800000, - 0x64134407, 0x05fdf3a6, 0x4803c856, 0x59a0020c, - 0x4803c857, 0x8c00051e, 0x050607ed, 0x05f9fc91, - 0x05000003, 0x05f9fc73, 0x05000003, 0x648b4407, - 0x05fdf39b, 0x4a03c013, 0x03800300, 0x4a03c014, - 0x03800380, 0x59a00c07, 0x82040580, 0x000000a0, - 0x05000004, 0x82040580, 0x000000a2, 0x05020062, - 0x59a0140b, 0x82080480, 0x00000100, 0x0502105e, - 0x59a0020c, 0x8c000500, 0x05020050, 0x59a01a0b, - 0x800c19c0, 0x05000058, 0xb00c0481, 0x05021056, - 0x0505fe4e, 0x05020006, 0x640b4407, 0x4a03c014, - 0x03800000, 0x4803c857, 0x05fdf37d, 0x912e5c05, - 0x4178c000, 0x59a0ba0b, 0x4803c857, 0x40600000, - 0x812c0400, 0x4000c800, 0x4c040000, 0x4c080000, - 0x0501f879, 0x5c001000, 0x5c000800, 0x0500003e, - 0x4414c800, 0x805cb840, 0x0500002b, 0x80081000, - 0x4c040000, 0x4c080000, 0x0501f86f, 0x5c001000, - 0x5c000800, 0x05000034, 0x50640000, 0x801428d0, - 0x80140540, 0x4400c800, 0x805cb840, 0x0500001e, - 0x80081000, 0x4c040000, 0x4c080000, 0x0501f862, - 0x5c001000, 0x5c000800, 0x05000027, 0x50640000, - 0x801428e0, 0x80140540, 0x4400c800, 0x805cb840, - 0x05000011, 0x80081000, 0x4c040000, 0x4c080000, - 0x0501f855, 0x5c001000, 0x5c000800, 0x0500001a, - 0x50640000, 0x801428f0, 0x80140540, 0x4400c800, - 0x805cb840, 0x05000004, 0x80081000, 0x8060c000, - 0x05fdf7ca, 0x59a00a0b, 0x59a01008, 0x900811c0, - 0x59a0180a, 0x900c19c0, 0x4a03c014, 0x03800000, - 0x412c0000, 0x0505f629, 0x4803c857, 0x0501f83e, - 0x05000005, 0x48174407, 0x4a03c014, 0x03800000, - 0x05fdf2f1, 0x4a03c014, 0x03800000, 0x64134407, - 0x05fdf32f, 0x4a03c014, 0x03800000, 0x05fdf330, - 0x4c5c0000, 0x4c600000, 0x4c640000, 0x4004b800, - 0x4008c000, 0x400cc800, 0x0501f86d, 0x0500000f, - 0x0501f89b, 0x05020011, 0x4060b800, 0x0501f898, - 0x0502000e, 0x4064b800, 0x0501f895, 0x0502000b, - 0x0501f883, 0x4ce80000, 0x6021d027, 0x0519fd9c, - 0x5c01d000, 0x90000541, 0x5c00c800, 0x5c00c000, - 0x5c00b800, 0x1c01f000, 0x0501f879, 0x80000580, - 0x05fdf7fa, 0x4c5c0000, 0x485fc857, 0x0501f854, - 0x05000008, 0x905cbd41, 0x0501f881, 0x05020009, - 0x0501f8bd, 0x0501f8ef, 0x0501f86d, 0x90000541, - 0x4803c857, 0x4867c857, 0x5c00b800, 0x1c01f000, - 0x0501f867, 0x80000580, 0x4803c857, 0x485fc857, - 0x05fdf7f8, 0x4c5c0000, 0x4c600000, 0x4c640000, - 0x4807c857, 0x480bc857, 0x4004b800, 0x4008c000, - 0x0501f83b, 0x0500000c, 0x0501f869, 0x0502000f, - 0x4c5c0000, 0x4060b800, 0x0501f865, 0x5c00b800, - 0x0502000a, 0x05fdffdc, 0x05000003, 0x0501f850, - 0x90000541, 0x40642800, 0x5c00c800, 0x5c00c000, - 0x5c00b800, 0x1c01f000, 0x0501f849, 0x80000580, - 0x4803c857, 0x4867c857, 0x05fdf7f7, 0x4ce80000, - 0x4c580000, 0x4803c856, 0x6030b000, 0x6029d000, - 0x0519fd5b, 0x4a03c013, 0x02000200, 0x6029d000, - 0x0519fd57, 0x4a03c013, 0x02000000, 0x8058b040, - 0x05fe07f7, 0x61a00807, 0x4a03c013, 0x03800300, - 0x80040840, 0x0500000f, 0x4a03c014, 0x03800000, - 0x59e00013, 0x4a03c014, 0x03800380, 0x82000500, - 0x00000300, 0x82000580, 0x00000300, 0x05fe07f3, - 0x90000541, 0x5c00b000, 0x5c01d000, 0x1c01f000, - 0x4803c857, 0x80000580, 0x05fdf7fb, 0x4ce80000, - 0x4803c856, 0x61a00807, 0x4a03c013, 0x03800300, - 0x80040840, 0x05000016, 0x4a03c014, 0x03800000, - 0x59e00013, 0x4a03c014, 0x03800380, 0x82000500, - 0x00000300, 0x82000580, 0x00000300, 0x05fe07f3, - 0x6029d000, 0x0519fd2a, 0x4a03c013, 0x01000000, - 0x6029d000, 0x0519fd26, 0x4a03c013, 0x02000000, - 0x90000541, 0x5c01d000, 0x1c01f000, 0x4803c857, - 0x05fdffbf, 0x05fe07f3, 0x05fdf7fb, 0x4803c856, - 0x4a03c013, 0x01000000, 0x4ce80000, 0x6029d000, - 0x0519fd17, 0x5c01d000, 0x4a03c013, 0x02000200, - 0x4ce80000, 0x6029d000, 0x0519fd11, 0x5c01d000, - 0x4a03c013, 0x01000100, 0x1c01f000, 0x4c5c0000, - 0x4c600000, 0x485fc857, 0x6020c000, 0x825c0500, - 0x00000080, 0x800000c2, 0x82000540, 0x01000000, - 0x4803c013, 0x4ce80000, 0x6029d000, 0x0519fd00, - 0x5c01d000, 0x4a03c013, 0x02000200, 0x4ce80000, - 0x6029d000, 0x0519fcfa, 0x5c01d000, 0x4a03c013, - 0x02000000, 0x805cb8c2, 0x8060c040, 0x05fe07ec, - 0x4a03c013, 0x01000100, 0x4ce80000, 0x6029d000, - 0x0519fcef, 0x5c01d000, 0x4a03c013, 0x02000200, - 0x4ce80000, 0x6029d000, 0x0519fce9, 0x5c01d000, - 0x4a03c014, 0x03800000, 0x61a00807, 0x59e0b813, - 0x825cbd00, 0x00000100, 0x80040840, 0x05000004, - 0x405c0000, 0x80000540, 0x05fe07f9, 0x4a03c014, - 0x03800380, 0x4a03c013, 0x02000000, 0x4ce80000, - 0x6029d000, 0x0519fcd6, 0x5c01d000, 0x485fc857, - 0x405c0000, 0x80000540, 0x5c00c000, 0x5c00b800, - 0x1c01f000, 0x4c600000, 0x4803c856, 0x4a03c013, - 0x01000100, 0x6020c000, 0x61a0c807, 0x4ce80000, - 0x6029d000, 0x0519fcc6, 0x5c01d000, 0x4a03c013, - 0x02000200, 0x4a03c014, 0x03800000, 0x59e00013, - 0x4a03c014, 0x03800380, 0x82000500, 0x00000200, - 0x05020003, 0x8064c840, 0x05fe07f7, 0x4178c800, - 0x0501f007, 0x4ce80000, 0x6029d000, 0x0519fcb4, - 0x5c01d000, 0x4a03c013, 0x02000200, 0x4ce80000, - 0x6029d000, 0x0519fcae, 0x5c01d000, 0x4a03c014, + 0x90002490, 0x05fc1765, 0x59a02407, 0x900001c0, + 0x80100540, 0x59a8280a, 0x80142480, 0x050a126e, + 0x42002800, 0x7fefffff, 0x80142480, 0x05fe175b, + 0x42002800, 0x7ffd0000, 0x80142480, 0x05fc1757, + 0x0509f265, 0x59a00408, 0x59a01208, 0x900811c0, + 0x80081540, 0x59a0040a, 0x59a01a0a, 0x900c19c0, + 0x800c1d40, 0x59a00a09, 0x59a00409, 0x900409c0, + 0x80040d40, 0x59a0020b, 0x90002490, 0x05fc1747, + 0x59a02407, 0x900001c0, 0x80100540, 0x59a8280a, + 0x80142480, 0x050a1256, 0x42002800, 0x7fefffff, + 0x80142480, 0x05fe173d, 0x42002800, 0x7ffd0000, + 0x80142480, 0x05fc1739, 0x0509f24d, 0x59a02408, + 0x59a00208, 0x901021c0, 0x80102540, 0x59a01a0b, + 0x59a00407, 0x900c19c0, 0x800c1d40, 0x41781000, + 0x820c0580, 0x00007c00, 0x0500000a, 0x820c0480, + 0x00007a00, 0x05001007, 0x820c0480, 0x00007cff, + 0x05021004, 0x053dfff0, 0x05000007, 0x80081000, + 0x44101800, 0x800811c0, 0x05fc06da, 0x64030000, + 0x05fdf6d8, 0x64030000, 0x64134407, 0x05fdf717, + 0x59a01a0b, 0x59a00407, 0x900c19c0, 0x800c1d40, + 0x41781000, 0x820c0580, 0x00007c00, 0x0500000a, + 0x820c0480, 0x00007a00, 0x05001007, 0x820c0480, + 0x00007cff, 0x05021004, 0x053dffd7, 0x0500000e, + 0x80081000, 0x500c0000, 0x82000d00, 0x0000ffff, + 0x48074208, 0x82000d00, 0xffff0000, 0x900409c0, + 0x48074408, 0x800811c0, 0x05fc06ba, 0x64030000, + 0x05fdf6b8, 0x64030000, 0x64134407, 0x05fdf6f7, + 0x4d2c0000, 0x4d340000, 0x4d300000, 0x4d440000, + 0x0509fad0, 0x05020006, 0x4923c857, 0x4927c857, + 0x59a28c07, 0x0511fa1f, 0x05000006, 0x5c028800, + 0x5c026000, 0x5c026800, 0x5c025800, 0x05fdf6eb, + 0x4937c857, 0x59a04408, 0x59a00208, 0x900001c0, + 0x80204540, 0x4823c857, 0x0501f877, 0x05000008, + 0x64074209, 0x4a034407, 0x0000ffff, 0x4a034208, + 0x0000ffff, 0x497b4408, 0x0501f03d, 0x497b4407, + 0x0501f879, 0x0500003f, 0x59300402, 0x48034407, + 0x59300202, 0x48034208, 0x59300006, 0x48034408, + 0x59a0020c, 0x8c000500, 0x05000030, 0x4933c857, + 0x0511f9b4, 0x05000003, 0x64274407, 0x0501f031, + 0x8d0c050e, 0x05000003, 0x64074407, 0x0501f02d, + 0x916c0583, 0x05000003, 0x641f4407, 0x0501f029, + 0x59340200, 0x8c00050e, 0x05000003, 0x64834407, + 0x0501f024, 0x59300407, 0x90000d83, 0x05020007, + 0x59300804, 0x9004051f, 0x90000584, 0x05020003, + 0x8c04053e, 0x05020015, 0x0509f9a3, 0x05020003, + 0x640b4407, 0x0501f017, 0x492fc857, 0x4a025c05, + 0x00008000, 0x497a5a05, 0x497a5806, 0x0535fad8, + 0x05020003, 0x640f4407, 0x0501f00e, 0x4a01d808, + 0x0010240d, 0x5c028800, 0x5c026000, 0x5c026800, + 0x5c025800, 0x1c01f000, 0x640b4209, 0x5c028800, + 0x5c026000, 0x5c026800, 0x5c025800, 0x05fdf655, + 0x5c028800, 0x5c026000, 0x5c026800, 0x5c025800, + 0x05fdf692, 0x492fc857, 0x4933c857, 0x497a602a, + 0x592c0006, 0x82000580, 0x01000000, 0x05020003, + 0x64134407, 0x05fdf689, 0x4d2c0000, 0x912e5c07, + 0x592c0000, 0x82000580, 0x02000000, 0x05020011, + 0x4803c856, 0x64134209, 0x592c0804, 0x82040500, + 0x0000ffff, 0x48034409, 0x80040920, 0x4807420a, + 0x592c0805, 0x82040500, 0x0000ffff, 0x4803440a, + 0x80040920, 0x4807420b, 0x5c025800, 0x05fdf631, + 0x4803c856, 0x64174209, 0x592c0801, 0x82040500, + 0x0000ffff, 0x48034409, 0x80040920, 0x4807420a, + 0x05fdf7f6, 0x4937c857, 0x4823c857, 0x5934000f, + 0x80001d40, 0x05000005, 0x580c0006, 0x80200580, + 0x05020003, 0x81780000, 0x1c01f000, 0x580c0000, + 0x05fdf7f8, 0x4823c857, 0x4d2c0000, 0x42026000, + 0x00110514, 0x59300407, 0x90000d83, 0x05000003, + 0x90000d86, 0x05020007, 0x59325809, 0x812e59c0, + 0x05000004, 0x592c0006, 0x80200580, 0x05000009, + 0x91326430, 0x59a8000b, 0x81300480, 0x05fc17f2, + 0x417a6000, 0x80000580, 0x5c025800, 0x1c01f000, + 0x90000541, 0x5c025800, 0x1c01f000, 0x83a00580, + 0x0010ae99, 0x05fe0635, 0x64030000, 0x4a034207, + 0x00004000, 0x4a03c011, 0x40000010, 0x05fdfe60, + 0x59e00017, 0x8c00050a, 0x60000800, 0x0002088c, + 0x8d0c0530, 0x05f60df8, 0x000209af, 0x6403c017, + 0x4203e000, 0x30000001, 0x4203e000, 0x40000000, + 0x4203e000, 0xb0100000, 0x41fc0000, 0x8c00050a, + 0x05fc07fc, 0x053dfef8, 0x05fc07ff, 0x59800802, + 0x8c040520, 0x05020003, 0x64030000, 0x05fdf7f5, + 0x60101020, 0x50080000, 0x8400054c, 0x44001000, + 0x64030000, 0x0501f000, 0x59a00c07, 0x800409c0, + 0x05000005, 0x916c0580, 0x05000003, 0x646b4407, + 0x05fdf616, 0x42007000, 0x0010aefa, 0x58381c01, + 0x58382201, 0x58383202, 0x8c040500, 0x0500000b, + 0x59a01208, 0x82080500, 0x0000f003, 0x05fe060f, + 0x82080480, 0x00000841, 0x05fe160c, 0x82080480, + 0x00000100, 0x05fc1609, 0x40040000, 0x800c0540, + 0x90000528, 0x900005a8, 0x05fc0604, 0x8c04050a, + 0x05000006, 0x59a03c08, 0x901c0486, 0x05fe15ff, + 0x901c0481, 0x05fc15fd, 0x8c040506, 0x05000003, + 0x4a01a8e4, 0x0000c000, 0x8c040504, 0x05000004, + 0x59e00002, 0x8400056e, 0x4803c002, 0x8c040502, + 0x05000004, 0x600028ec, 0x4a002805, 0xd0000000, + 0x40040000, 0x800c0540, 0x48007401, 0x8c040500, + 0x05000002, 0x48087201, 0x8c04050a, 0x0500001a, + 0x481c7202, 0x4c0c0000, 0x4c100000, 0x4c180000, + 0x051dfc7f, 0x4df00000, 0x58383a02, 0x481fc857, + 0x41780000, 0x801c3840, 0x800010c8, 0x82081400, + 0x0000b037, 0x64001002, 0x801c1c80, 0x05021002, + 0x64081002, 0x80000000, 0x90001c85, 0x05fc17f7, + 0x5c03e000, 0x051c0c5a, 0x5c003000, 0x5c002000, + 0x5c001800, 0x480f4407, 0x48134208, 0x481b4408, + 0x05fdf584, 0x4d440000, 0x4d340000, 0x59a28c07, + 0x0509f9a0, 0x05020009, 0x0511f8f2, 0x05020007, + 0x0511f8a8, 0x05000008, 0x64274407, 0x5c026800, + 0x5c028800, 0x05fdf5b9, 0x5c026800, 0x5c028800, + 0x05fdf5ba, 0x59a01208, 0x59a01c08, 0x5934400a, + 0x82203d00, 0x0000e000, 0x801c391a, 0x8c080500, + 0x0500001a, 0x900c0d07, 0x90040580, 0x0500000b, + 0x90040581, 0x05000009, 0x90040583, 0x05000007, + 0x90040584, 0x05000005, 0x90040593, 0x05000003, + 0x4937c857, 0x60100800, 0x82204500, 0xffff1fff, + 0x800400da, 0x80200540, 0x4802680a, 0x4c080000, + 0x4c1c0000, 0x051dfc3a, 0x0511fb15, 0x051dfc24, + 0x5c003800, 0x5c001000, 0x481f4408, 0x5934400a, + 0x82203d00, 0x0f000000, 0x801c3930, 0x8c080504, + 0x05020011, 0x8c080502, 0x0500000b, 0x4823c857, + 0x82204500, 0xf0ffffff, 0x59a01a09, 0x900c0d0f, + 0x800400f0, 0x8400056e, 0x80200540, 0x4802680a, + 0x4803c857, 0x481f4209, 0x5c026800, 0x5c028800, + 0x05fdf53c, 0x82204500, 0xf07fffff, 0x4822680a, + 0x05fdf7f9, 0x8d0c050e, 0x05000003, 0x64074407, + 0x05fdf576, 0x916c0583, 0x05020014, 0x0509f951, + 0x05fe0576, 0x59240200, 0x8c000502, 0x0500003c, + 0x59240005, 0x497b4407, 0x0511fe00, 0x0500000e, + 0x82000d00, 0x00ffff00, 0x0502000b, 0x82000c00, + 0x001020b6, 0x50040800, 0x80040910, 0x82041580, + 0x00000080, 0x05020003, 0x641f4407, 0x05fdf55f, + 0x48074407, 0x82000d00, 0x0000ffff, 0x48074208, + 0x80000120, 0x48034408, 0x59a8021b, 0x82001500, + 0x00003500, 0x480b440a, 0x8c000502, 0x05000016, + 0x8c000506, 0x05000006, 0x90000d0a, 0x90040d8a, + 0x05020003, 0x6407420a, 0x0501f018, 0x8c00050a, + 0x05000006, 0x90000d22, 0x90040da2, 0x05020003, + 0x640f420a, 0x0501f011, 0x8c000508, 0x05000006, + 0x90000d12, 0x90040d92, 0x05020003, 0x640b420a, + 0x0501f00a, 0x0511fdd1, 0x05020003, 0x6413420a, + 0x05fdf4f8, 0x8c000506, 0x05000003, 0x64174407, + 0x05fdf536, 0x6403420a, 0x05fdf4f2, 0x646f4407, + 0x05fdf532, 0x59a8002e, 0x48034408, 0x59a8002f, + 0x4803420a, 0x05fdf4eb, 0x42007800, 0x0010b364, + 0x59a00407, 0x4803c857, 0x90000c8a, 0x05fe152b, + 0x0c01f001, 0x001025eb, 0x0010258b, 0x00102598, + 0x001025a8, 0x001025c7, 0x001025ec, 0x00102584, + 0x00102584, 0x001025f8, 0x00102633, 0x00102585, + 0x05fdf51e, 0x59a00208, 0x48007c01, 0x59a00408, + 0x48007a01, 0x05edfd19, 0x0501f061, 0x916c0580, + 0x05fc0512, 0x59a00a08, 0x59a00408, 0x900001c0, + 0x80040d40, 0x4807c857, 0x59a00a09, 0x59a00409, + 0x900001c0, 0x80040d40, 0x4807c857, 0x0501f054, + 0x916c0580, 0x05fc0505, 0x59a00408, 0x59a01208, + 0x900001c0, 0x80081540, 0x59a00409, 0x59a01a09, + 0x900001c0, 0x800c1d40, 0x42000000, 0x0010d237, + 0x480fc857, 0x480bc857, 0x60000820, 0x0509f010, + 0x59a00a08, 0x59a00408, 0x900001c0, 0x80041d40, + 0x820c0c80, 0x0010a562, 0x05fe14f4, 0x820c0c80, + 0x00100000, 0x05fc14f1, 0x480fc857, 0x903c7c22, + 0x503c0800, 0x800409c0, 0x05000005, 0x903c05a6, + 0x05fc04ea, 0x803c7800, 0x05fdf7fa, 0x59e41001, + 0x82080d00, 0xfffeffcf, 0x4807c801, 0x440c7800, + 0x46001800, 0x0201f800, 0x800c1800, 0x46001800, + 0x001001e0, 0x480bc801, 0x0501f025, 0x59a01a08, + 0x59a00408, 0x900001c0, 0x800c1d40, 0x480c7803, + 0x59a02209, 0x59a00409, 0x900001c0, 0x80102540, + 0x48107804, 0x59a0020a, 0x40001000, 0x48007807, + 0x80000040, 0x05fc14cd, 0x48007808, 0x60000880, + 0x051df90a, 0x80000540, 0x05000002, 0x05fdf4c7, + 0x40040000, 0x800c1c00, 0x05fc14c4, 0x4800780a, + 0x480c7805, 0x48107806, 0x4978780c, 0x59a0040a, + 0x800000c4, 0x4800780b, 0x59e40001, 0x4803c857, + 0x82000540, 0x00040000, 0x4803c801, 0x05fdf471, + 0x49787803, 0x49787804, 0x49787808, 0x49787807, + 0x49787803, 0x49787805, 0x49787806, 0x4978780c, + 0x4978780b, 0x59e40001, 0x84000524, 0x05fdf7f3, + 0x4978781f, 0x49787814, 0x49787815, 0x4978781d, + 0x49787817, 0x49787818, 0x59a01a08, 0x59a00408, + 0x900001c0, 0x800c1d40, 0x480c780e, 0x480c7819, + 0x480c781b, 0x59a02209, 0x59a00409, 0x900001c0, + 0x80102540, 0x4810780f, 0x4810781a, 0x4810781c, + 0x59a0020a, 0x80000540, 0x05fc0494, 0x48007813, + 0x60000808, 0x40001000, 0x051df8d0, 0x80000540, + 0x05fe048e, 0x40040000, 0x800c1c00, 0x05fc148b, + 0x480c7810, 0x48107811, 0x4a03420a, 0x00000400, + 0x59a0040a, 0x4800781e, 0x850e1d6a, 0x59a0040b, + 0x48007a12, 0x59a0020c, 0x48007c12, 0x600c0000, + 0x05edfc59, 0x80102000, 0x4810780d, 0x48134209, + 0x901021c0, 0x48134409, 0x59e40052, 0x4803c857, + 0x4a007816, 0x00000400, 0x903c0416, 0x48034208, + 0x900001c0, 0x48034408, 0x05fdf42a, 0x583c0800, + 0x830e1d00, 0xffcfffff, 0x48ec7820, 0x4a01d802, + 0x00000100, 0x583c0017, 0x82000500, 0x000000ff, + 0x05020008, 0x4807c857, 0x8c040502, 0x05000004, + 0x84040d48, 0x48047800, 0x1c01f000, 0x0501f003, + 0x05f5f940, 0x1c01f000, 0x42007800, 0x0010b364, + 0x583dd820, 0x58ef400a, 0x40ec6000, 0x583c0000, + 0x48efc857, 0x49a3c857, 0x4803c857, 0x82000500, + 0x0000ffc0, 0x48007800, 0x583c001d, 0x4803c857, + 0x583c0819, 0x4807c857, 0x48074208, 0x900409c0, + 0x48074408, 0x583c081a, 0x48074209, 0x900409c0, + 0x48074409, 0x583c081b, 0x4807420a, 0x900409c0, + 0x4807440a, 0x583c081c, 0x4807420b, 0x900409c0, + 0x4807440b, 0x49787818, 0x583c0017, 0x49787817, + 0x82000500, 0x000000ff, 0x05fe03eb, 0x05fdf3f1, + 0x59a80005, 0x48034407, 0x59a80006, 0x48034208, + 0x59a80007, 0x48034408, 0x05fdf3ea, 0x05edfb7c, + 0x4803c856, 0x59a0020c, 0x4803c857, 0x8c00051e, + 0x050a00d2, 0x05f9fc74, 0x05000003, 0x05f9fc56, + 0x05000003, 0x648b4407, 0x05fdf420, 0x4a03c013, + 0x03800300, 0x4a03c014, 0x03800380, 0x59a00c07, + 0x82040580, 0x000000a0, 0x05000004, 0x82040580, + 0x000000a2, 0x0502001c, 0x59a0140b, 0x82080480, + 0x00000100, 0x05021018, 0x59a0020c, 0x8c000500, + 0x0502001f, 0x59a00a0b, 0x800409c0, 0x05000012, + 0xb0040481, 0x05021010, 0x0505fefb, 0x0500000a, + 0x59a01008, 0x900811c0, 0x59a0180a, 0x900c19c0, + 0x59a00a0b, 0x0505ff16, 0x4a01d808, 0x001026a8, + 0x1c01f000, 0x640b4407, 0x4a03c014, 0x03800000, + 0x05fdf3fa, 0x4a03c014, 0x03800000, 0x05fdf3fb, + 0x4031d800, 0x58ef400a, 0x58ee580c, 0x58ec0002, + 0x82000580, 0x00000200, 0x05fc03e8, 0x59a00c07, + 0x59a0140b, 0x59a0020c, 0x8c000500, 0x05020038, + 0x912e5c05, 0x4178c000, 0x59a0ba0b, 0x40600000, + 0x812c0400, 0x5000c800, 0x82641d00, 0x000000ff, + 0x4c040000, 0x4c080000, 0x0501f8b8, 0x5c001000, + 0x5c000800, 0x05000037, 0x805cb840, 0x05000032, + 0x80081000, 0x82641d00, 0x0000ff00, 0x800c1910, + 0x4c040000, 0x4c080000, 0x0501f8ac, 0x5c001000, + 0x5c000800, 0x0500002b, 0x805cb840, 0x05000026, + 0x80081000, 0x82641d00, 0x00ff0000, 0x800c1920, + 0x4c040000, 0x4c080000, 0x0501f8a0, 0x5c001000, + 0x5c000800, 0x0500001f, 0x805cb840, 0x0500001a, + 0x80081000, 0x82641d00, 0xff000000, 0x800c1930, + 0x4c040000, 0x4c080000, 0x0501f894, 0x5c001000, + 0x5c000800, 0x05000013, 0x805cb840, 0x0500000e, + 0x80081000, 0x8060c000, 0x05fdf7cd, 0x59a0020b, + 0x82000500, 0x000000ff, 0x40001800, 0x4c040000, + 0x4c080000, 0x0501f885, 0x5c001000, 0x5c000800, + 0x05000004, 0x4a03c014, 0x03800000, 0x05fdf365, + 0x4a03c014, 0x03800000, 0x64134407, 0x05fdf3a3, + 0x4803c856, 0x59a0020c, 0x4803c857, 0x8c00051e, + 0x050a0012, 0x05f9fbec, 0x05000003, 0x05f9fbce, + 0x05000003, 0x648b4407, 0x05fdf398, 0x4a03c013, + 0x03800300, 0x4a03c014, 0x03800380, 0x59a00c07, + 0x82040580, 0x000000a0, 0x05000004, 0x82040580, + 0x000000a2, 0x05020062, 0x59a0140b, 0x82080480, + 0x00000100, 0x0502105e, 0x59a0020c, 0x8c000500, + 0x05020050, 0x59a01a0b, 0x800c19c0, 0x05000058, + 0xb00c0481, 0x05021056, 0x0505fe73, 0x05020006, + 0x640b4407, 0x4a03c014, 0x03800000, 0x4803c857, + 0x05fdf37a, 0x912e5c05, 0x4178c000, 0x59a0ba0b, + 0x4803c857, 0x40600000, 0x812c0400, 0x4000c800, + 0x4c040000, 0x4c080000, 0x0501f879, 0x5c001000, + 0x5c000800, 0x0500003e, 0x4414c800, 0x805cb840, + 0x0500002b, 0x80081000, 0x4c040000, 0x4c080000, + 0x0501f86f, 0x5c001000, 0x5c000800, 0x05000034, + 0x50640000, 0x801428d0, 0x80140540, 0x4400c800, + 0x805cb840, 0x0500001e, 0x80081000, 0x4c040000, + 0x4c080000, 0x0501f862, 0x5c001000, 0x5c000800, + 0x05000027, 0x50640000, 0x801428e0, 0x80140540, + 0x4400c800, 0x805cb840, 0x05000011, 0x80081000, + 0x4c040000, 0x4c080000, 0x0501f855, 0x5c001000, + 0x5c000800, 0x0500001a, 0x50640000, 0x801428f0, + 0x80140540, 0x4400c800, 0x805cb840, 0x05000004, + 0x80081000, 0x8060c000, 0x05fdf7ca, 0x59a00a0b, + 0x59a01008, 0x900811c0, 0x59a0180a, 0x900c19c0, + 0x4a03c014, 0x03800000, 0x412c0000, 0x0505f64e, + 0x4803c857, 0x0501f83e, 0x05000005, 0x48174407, + 0x4a03c014, 0x03800000, 0x05fdf2ee, 0x4a03c014, + 0x03800000, 0x64134407, 0x05fdf32c, 0x4a03c014, + 0x03800000, 0x05fdf32d, 0x4c5c0000, 0x4c600000, + 0x4c640000, 0x4004b800, 0x4008c000, 0x400cc800, + 0x0501f86d, 0x0500000f, 0x0501f89b, 0x05020011, + 0x4060b800, 0x0501f898, 0x0502000e, 0x4064b800, + 0x0501f895, 0x0502000b, 0x0501f883, 0x4ce80000, + 0x6021d027, 0x0519feb8, 0x5c01d000, 0x90000541, + 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x1c01f000, + 0x0501f879, 0x80000580, 0x05fdf7fa, 0x4c5c0000, + 0x485fc857, 0x0501f854, 0x05000008, 0x905cbd41, + 0x0501f881, 0x05020009, 0x0501f8bd, 0x0501f8ef, + 0x0501f86d, 0x90000541, 0x4803c857, 0x4867c857, + 0x5c00b800, 0x1c01f000, 0x0501f867, 0x80000580, + 0x4803c857, 0x485fc857, 0x05fdf7f8, 0x4c5c0000, + 0x4c600000, 0x4c640000, 0x4807c857, 0x480bc857, + 0x4004b800, 0x4008c000, 0x0501f83b, 0x0500000c, + 0x0501f869, 0x0502000f, 0x4c5c0000, 0x4060b800, + 0x0501f865, 0x5c00b800, 0x0502000a, 0x05fdffdc, + 0x05000003, 0x0501f850, 0x90000541, 0x40642800, + 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x1c01f000, + 0x0501f849, 0x80000580, 0x4803c857, 0x4867c857, + 0x05fdf7f7, 0x4ce80000, 0x4c580000, 0x4803c856, + 0x6030b000, 0x6029d000, 0x0519fe77, 0x4a03c013, + 0x02000200, 0x6029d000, 0x0519fe73, 0x4a03c013, + 0x02000000, 0x8058b040, 0x05fe07f7, 0x61a00807, + 0x4a03c013, 0x03800300, 0x80040840, 0x0500000f, + 0x4a03c014, 0x03800000, 0x59e00013, 0x4a03c014, + 0x03800380, 0x82000500, 0x00000300, 0x82000580, + 0x00000300, 0x05fe07f3, 0x90000541, 0x5c00b000, + 0x5c01d000, 0x1c01f000, 0x4803c857, 0x80000580, + 0x05fdf7fb, 0x4ce80000, 0x4803c856, 0x61a00807, + 0x4a03c013, 0x03800300, 0x80040840, 0x05000016, + 0x4a03c014, 0x03800000, 0x59e00013, 0x4a03c014, + 0x03800380, 0x82000500, 0x00000300, 0x82000580, + 0x00000300, 0x05fe07f3, 0x6029d000, 0x0519fe46, + 0x4a03c013, 0x01000000, 0x6029d000, 0x0519fe42, + 0x4a03c013, 0x02000000, 0x90000541, 0x5c01d000, + 0x1c01f000, 0x4803c857, 0x05fdffbf, 0x05fe07f3, + 0x05fdf7fb, 0x4803c856, 0x4a03c013, 0x01000000, + 0x4ce80000, 0x6029d000, 0x0519fe33, 0x5c01d000, + 0x4a03c013, 0x02000200, 0x4ce80000, 0x6029d000, + 0x0519fe2d, 0x5c01d000, 0x4a03c013, 0x01000100, + 0x1c01f000, 0x4c5c0000, 0x4c600000, 0x485fc857, + 0x6020c000, 0x825c0500, 0x00000080, 0x800000c2, + 0x82000540, 0x01000000, 0x4803c013, 0x4ce80000, + 0x6029d000, 0x0519fe1c, 0x5c01d000, 0x4a03c013, + 0x02000200, 0x4ce80000, 0x6029d000, 0x0519fe16, + 0x5c01d000, 0x4a03c013, 0x02000000, 0x805cb8c2, + 0x8060c040, 0x05fe07ec, 0x4a03c013, 0x01000100, + 0x4ce80000, 0x6029d000, 0x0519fe0b, 0x5c01d000, + 0x4a03c013, 0x02000200, 0x4ce80000, 0x6029d000, + 0x0519fe05, 0x5c01d000, 0x4a03c014, 0x03800000, + 0x61a00807, 0x59e0b813, 0x825cbd00, 0x00000100, + 0x80040840, 0x05000004, 0x405c0000, 0x80000540, + 0x05fe07f9, 0x4a03c014, 0x03800380, 0x4a03c013, + 0x02000000, 0x4ce80000, 0x6029d000, 0x0519fdf2, + 0x5c01d000, 0x485fc857, 0x405c0000, 0x80000540, + 0x5c00c000, 0x5c00b800, 0x1c01f000, 0x4c600000, + 0x4803c856, 0x4a03c013, 0x01000100, 0x6020c000, + 0x61a0c807, 0x4ce80000, 0x6029d000, 0x0519fde2, + 0x5c01d000, 0x4a03c013, 0x02000200, 0x4a03c014, 0x03800000, 0x59e00013, 0x4a03c014, 0x03800380, - 0x82000500, 0x00000100, 0x80000110, 0x8064c8c2, - 0x8064cd40, 0x4a03c013, 0x02000000, 0x8060c040, - 0x05fe07e9, 0x4867c857, 0x5c00c000, 0x1c01f000, - 0x4803c856, 0x4a03c013, 0x01000100, 0x4ce80000, - 0x6029d000, 0x0519fc96, 0x5c01d000, 0x4a03c013, - 0x02000200, 0x4ce80000, 0x6029d000, 0x0519fc90, - 0x5c01d000, 0x4a03c013, 0x02000000, 0x1c01f000, - 0x59a00408, 0x59a8082e, 0x4803502e, 0x48074408, - 0x59a00a0a, 0x90040494, 0x05021002, 0x6140080f, - 0x59a8002f, 0x4807502f, 0x4803420a, 0x05fdf1ba, - 0x59a00407, 0x59a00a08, 0x900409c0, 0x80040d40, - 0x59a00408, 0x59a01209, 0x900811c0, 0x80081540, - 0x59a00409, 0x59a01a0a, 0x900c19c0, 0x800c1d40, - 0x59a0040a, 0x59a0220b, 0x901021c0, 0x80102540, - 0x053df9dc, 0x05fc01a8, 0x05fdf1fd, 0x916c0580, - 0x0500000a, 0x59a80005, 0x59a00c07, 0x80041580, - 0xb0081500, 0x05fc01a0, 0x80080580, 0x48035005, - 0x05edfbc1, 0x05fdf19c, 0x59a00407, 0x59a80805, - 0x48035005, 0x80040d80, 0x8c04050c, 0x05ee0bba, - 0x59a00208, 0x599c0818, 0x8c040510, 0x05000002, - 0x8400054a, 0x48035006, 0x59a00408, 0x8c00051a, - 0x05000009, 0x600018ec, 0x60140800, 0x580c1006, - 0x4a001805, 0x70000005, 0x900c1c20, 0x80040840, - 0x05fe07fb, 0x48035007, 0x05fdf183, 0x8d0c050e, - 0x05000003, 0x64074407, 0x05fdf1c1, 0x0511f9f2, - 0x05020003, 0x645b4407, 0x05fdf1bd, 0x916c0583, - 0x05000003, 0x641f4407, 0x05fdf1b9, 0x59a00c07, - 0x82040500, 0xffffff00, 0x05fe01b9, 0x82041580, + 0x82000500, 0x00000200, 0x05020003, 0x8064c840, + 0x05fe07f7, 0x4178c800, 0x0501f007, 0x4ce80000, + 0x6029d000, 0x0519fdd0, 0x5c01d000, 0x4a03c013, + 0x02000200, 0x4ce80000, 0x6029d000, 0x0519fdca, + 0x5c01d000, 0x4a03c014, 0x03800000, 0x59e00013, + 0x4a03c014, 0x03800380, 0x82000500, 0x00000100, + 0x80000110, 0x8064c8c2, 0x8064cd40, 0x4a03c013, + 0x02000000, 0x8060c040, 0x05fe07e9, 0x4867c857, + 0x5c00c000, 0x1c01f000, 0x4803c856, 0x4a03c013, + 0x01000100, 0x4ce80000, 0x6029d000, 0x0519fdb2, + 0x5c01d000, 0x4a03c013, 0x02000200, 0x4ce80000, + 0x6029d000, 0x0519fdac, 0x5c01d000, 0x4a03c013, + 0x02000000, 0x1c01f000, 0x59a00408, 0x59a8082e, + 0x4803502e, 0x48074408, 0x59a00a0a, 0x90040494, + 0x05021002, 0x6140080f, 0x59a8002f, 0x4807502f, + 0x4803420a, 0x05fdf1b7, 0x59a00407, 0x59a00a08, + 0x900409c0, 0x80040d40, 0x59a00408, 0x59a01209, + 0x900811c0, 0x80081540, 0x59a00409, 0x59a01a0a, + 0x900c19c0, 0x800c1d40, 0x59a0040a, 0x59a0220b, + 0x901021c0, 0x80102540, 0x053dfbfd, 0x05fc01a5, + 0x05fdf1fa, 0x916c0580, 0x0500000a, 0x59a80005, + 0x59a00c07, 0x80041580, 0xb0081500, 0x05fc019d, + 0x80080580, 0x48035005, 0x05edfb1b, 0x05fdf199, + 0x59a00407, 0x59a80805, 0x48035005, 0x80040d80, + 0x8c04050c, 0x05ee0b14, 0x59a00208, 0x599c0818, + 0x8c040510, 0x05000002, 0x8400054a, 0x48035006, + 0x59a00408, 0x8c00051a, 0x05000009, 0x600018ec, + 0x60140800, 0x580c1006, 0x4a001805, 0x70000005, + 0x900c1c20, 0x80040840, 0x05fe07fb, 0x48035007, + 0x05fdf180, 0x8d0c050e, 0x05000003, 0x64074407, + 0x05fdf1be, 0x0511fa51, 0x05020003, 0x645b4407, + 0x05fdf1ba, 0x916c0583, 0x05000003, 0x641f4407, + 0x05fdf1b6, 0x59a00c07, 0x82040500, 0xffffff00, + 0x05fe01b6, 0x82041580, 0x000000ff, 0x05020007, + 0x59a8000f, 0x82000500, 0x000000ff, 0x82001540, + 0x0000ff00, 0x0501f00f, 0x82040400, 0x001020b6, + 0x50000000, 0x80000110, 0x82000580, 0x00000080, + 0x05fc01a6, 0x59a8000f, 0x82000500, 0x000000ff, + 0x80041580, 0x05fc01a1, 0x840409c0, 0x80041540, + 0x0521fdf9, 0x05020003, 0x640f4407, 0x05fdf197, + 0x48ee602d, 0x480a621e, 0x4a02641e, 0x0000bc09, + 0x64066407, 0x0505fc84, 0x05020004, 0x0005fc5a, + 0x640b4407, 0x05fdf18d, 0x497a5a05, 0x497a5806, + 0x4a025c05, 0x00008000, 0x4a01d808, 0x00102959, + 0x492e6009, 0x60ca7000, 0x0005f478, 0x8d0c050e, + 0x05000003, 0x64074407, 0x05fdf180, 0x0511fa13, + 0x05020003, 0x645b4407, 0x05fdf17c, 0x916c0583, + 0x05000003, 0x641f4407, 0x05fdf178, 0x59a00c07, + 0x82040500, 0xffffff00, 0x05fe0178, 0x82041580, 0x000000ff, 0x05020007, 0x59a8000f, 0x82000500, 0x000000ff, 0x82001540, 0x0000ff00, 0x0501f00f, - 0x82040400, 0x00102013, 0x50000000, 0x80000110, - 0x82000580, 0x00000080, 0x05fc01a9, 0x59a8000f, - 0x82000500, 0x000000ff, 0x80041580, 0x05fc01a4, - 0x840409c0, 0x80041540, 0x0521fce7, 0x05020003, - 0x640f4407, 0x05fdf19a, 0x48ee602d, 0x480a621e, - 0x4a02641e, 0x0000bc09, 0x64066407, 0x0505fc5f, - 0x05020004, 0x0005fc5a, 0x640b4407, 0x05fdf190, + 0x82040400, 0x001020b6, 0x50000000, 0x80000110, + 0x82000580, 0x00000080, 0x05fc0168, 0x59a8000f, + 0x82000500, 0x000000ff, 0x80041580, 0x05fc0163, + 0x840409c0, 0x80041540, 0x0521fdbb, 0x05020003, + 0x640f4407, 0x05fdf159, 0x48ee602d, 0x480a621e, + 0x4a02641e, 0x0000bc05, 0x64066407, 0x0505fc46, + 0x05020004, 0x0005fc5a, 0x640b4407, 0x05fdf14f, 0x497a5a05, 0x497a5806, 0x4a025c05, 0x00008000, - 0x4a01d808, 0x001028b3, 0x492e6009, 0x60ca7000, - 0x0005f478, 0x8d0c050e, 0x05000003, 0x64074407, - 0x05fdf183, 0x0511f9b4, 0x05020003, 0x645b4407, - 0x05fdf17f, 0x916c0583, 0x05000003, 0x641f4407, - 0x05fdf17b, 0x59a00c07, 0x82040500, 0xffffff00, - 0x05fe017b, 0x82041580, 0x000000ff, 0x05020007, - 0x59a8000f, 0x82000500, 0x000000ff, 0x82001540, - 0x0000ff00, 0x0501f00f, 0x82040400, 0x00102013, - 0x50000000, 0x80000110, 0x82000580, 0x00000080, - 0x05fc016b, 0x59a8000f, 0x82000500, 0x000000ff, - 0x80041580, 0x05fc0166, 0x840409c0, 0x80041540, - 0x0521fca9, 0x05020003, 0x640f4407, 0x05fdf15c, - 0x48ee602d, 0x480a621e, 0x4a02641e, 0x0000bc05, - 0x64066407, 0x0505fc21, 0x05020004, 0x0005fc5a, - 0x640b4407, 0x05fdf152, 0x497a5a05, 0x497a5806, - 0x4a025c05, 0x00008000, 0x4a01d808, 0x001028b3, - 0x492e6009, 0x60ca7000, 0x0005f478, 0x592c0006, - 0x82000580, 0x01000000, 0x05fe0103, 0x64134407, - 0x05fdf143, 0x497b4407, 0x497b4208, 0x8d0c0520, - 0x05000008, 0x59a80062, 0x59a80863, 0x80040480, - 0x59a80864, 0x48074407, 0x80041480, 0x480b4208, - 0x0505fd29, 0x48034408, 0x59a8100d, 0x59a80266, - 0x80080480, 0x4803420a, 0x495f440a, 0x59a8001a, - 0x4803420c, 0x4a03440c, 0x000000fe, 0x05fdf0ea, - 0x8d0c050e, 0x05000003, 0x64074407, 0x05fdf128, - 0x59a00407, 0x8c000500, 0x0502000d, 0x59a80065, - 0x81640480, 0x05001008, 0x59a8000b, 0x81500580, - 0x05000007, 0x59a80063, 0x59a81062, 0x80080580, - 0x05000003, 0x64634407, 0x05fdf119, 0x850e1d58, - 0x4803c856, 0x850e1d46, 0x0509f82b, 0x05fdf0d2, - 0x599c0201, 0x4803507f, 0x41780800, 0x60401076, - 0x0519fc50, 0x480b5080, 0x1c01f000, 0x0501f805, - 0x60018800, 0x05020002, 0x60058800, 0x1c01f000, - 0x90000541, 0x0502500b, 0x4203e000, 0x80000000, - 0x40e81000, 0x41780800, 0x61900000, 0x0519fc41, - 0x5994002e, 0x80080400, 0x4803282e, 0x80000580, - 0x1c01f000, 0x4d900000, 0x4dd00000, 0x4da40000, - 0x4d140000, 0x4cd80000, 0x417a3000, 0x051dfbcb, - 0x051df8b3, 0x5c01b000, 0x5c022800, 0x5c034800, - 0x5c03a000, 0x5c032000, 0x1c01f000, 0x59c80003, - 0x82000500, 0xffffe0ff, 0x48039003, 0x61f00800, - 0x05f5fa3c, 0x4a03902c, 0x00200000, 0x61d0b003, - 0x59c8002c, 0x8c00052c, 0x05000006, 0x8058b040, - 0x05fe07fc, 0x600c0080, 0x41781000, 0x0501f11e, - 0x640b5088, 0x42006000, 0x00102a52, 0x50301000, - 0x41784800, 0x4a03902d, 0x00008000, 0x61d0b003, - 0x59c8002c, 0x8c000534, 0x05000006, 0x8058b040, - 0x05fe07fc, 0x600c0080, 0x41781000, 0x0501f10e, - 0x0501f894, 0x80244800, 0x82240580, 0x000003b1, - 0x05fe07fc, 0x0501f918, 0x41784800, 0x0501f8b8, - 0x80244800, 0x82240580, 0x000003b1, 0x05fe07fc, - 0x80306000, 0x82300580, 0x00102a54, 0x05fe07e4, + 0x4a01d808, 0x00102959, 0x492e6009, 0x60ca7000, + 0x0005f478, 0x592c0006, 0x82000580, 0x01000000, + 0x05fe0100, 0x64134407, 0x05fdf140, 0x497b4407, + 0x497b4208, 0x8d0c0520, 0x05000008, 0x59a80062, + 0x59a80863, 0x80040480, 0x59a80864, 0x48074407, + 0x80041480, 0x480b4208, 0x0505fd4e, 0x48034408, + 0x59a8100d, 0x59a80266, 0x80080480, 0x4803420a, + 0x495f440a, 0x59a8001a, 0x4803420c, 0x4a03440c, + 0x000000fe, 0x05fdf0e7, 0x8d0c050e, 0x05000003, + 0x64074407, 0x05fdf125, 0x59a00407, 0x8c000500, + 0x0502000d, 0x59a80065, 0x81640480, 0x05001008, + 0x59a8000b, 0x81500580, 0x05000007, 0x59a80063, + 0x59a81062, 0x80080580, 0x05000003, 0x64634407, + 0x05fdf116, 0x850e1d58, 0x4803c856, 0x850e1d46, + 0x0509f858, 0x05fdf0cf, 0x599c0201, 0x4803507f, + 0x41780800, 0x60401076, 0x0519fd6c, 0x480b5080, + 0x1c01f000, 0x0501f805, 0x60018800, 0x05020002, + 0x60058800, 0x1c01f000, 0x90000541, 0x0502500b, + 0x4203e000, 0x80000000, 0x40e81000, 0x41780800, + 0x61900000, 0x0519fd5d, 0x5994002e, 0x80080400, + 0x4803282e, 0x80000580, 0x1c01f000, 0x4d900000, + 0x4dd00000, 0x4da40000, 0x4d140000, 0x4cd80000, + 0x417a3000, 0x051dfce7, 0x051df9cf, 0x5c01b000, + 0x5c022800, 0x5c034800, 0x5c03a000, 0x5c032000, + 0x1c01f000, 0x59c80003, 0x82000500, 0xffffe0ff, + 0x48039003, 0x61f00800, 0x05f5f994, 0x4a03902c, + 0x00200000, 0x61d0b003, 0x59c8002c, 0x8c00052c, + 0x05000006, 0x8058b040, 0x05fe07fc, 0x600c0080, + 0x41781000, 0x0501f11e, 0x640b5088, 0x42006000, + 0x00102af8, 0x50301000, 0x41784800, 0x4a03902d, + 0x00008000, 0x61d0b003, 0x59c8002c, 0x8c000534, + 0x05000006, 0x8058b040, 0x05fe07fc, 0x600c0080, + 0x41781000, 0x0501f10e, 0x0501f894, 0x80244800, + 0x82240580, 0x000003b1, 0x05fe07fc, 0x0501f918, + 0x41784800, 0x0501f8b8, 0x80244800, 0x82240580, + 0x000003b1, 0x05fe07fc, 0x80306000, 0x82300580, + 0x00102afa, 0x05fe07e4, 0x59a80887, 0x800409c0, + 0x05000005, 0x60100080, 0x60081000, 0x59a81886, + 0x0501f0f7, 0x42006000, 0x00102af8, 0x64435088, + 0x50301000, 0x41784800, 0x4a03902d, 0x00000800, + 0x0501f876, 0x80244800, 0x90240598, 0x05fe07fd, + 0x0501f8fb, 0x41784800, 0x0501f89b, 0x80244800, + 0x90240598, 0x05fe07fd, 0x80306000, 0x82300580, + 0x00102afa, 0x05fe07ef, 0x59a80887, 0x800409c0, + 0x05000005, 0x60100080, 0x60401000, 0x59a81886, + 0x0501f0db, 0x42006000, 0x00102af8, 0x64235088, + 0x50301000, 0x41784800, 0x4a03902d, 0x00000400, + 0x0501f85a, 0x80244800, 0x82240580, 0x00000088, + 0x05fe07fc, 0x0501f8de, 0x41784800, 0x0501f87e, + 0x80244800, 0x82240580, 0x00000088, 0x05fe07fc, + 0x80306000, 0x82300580, 0x00102afa, 0x05fe07ed, 0x59a80887, 0x800409c0, 0x05000005, 0x60100080, - 0x60081000, 0x59a81886, 0x0501f0f7, 0x42006000, - 0x00102a52, 0x64435088, 0x50301000, 0x41784800, - 0x4a03902d, 0x00000800, 0x0501f876, 0x80244800, - 0x90240598, 0x05fe07fd, 0x0501f8fb, 0x41784800, - 0x0501f89b, 0x80244800, 0x90240598, 0x05fe07fd, - 0x80306000, 0x82300580, 0x00102a54, 0x05fe07ef, - 0x59a80887, 0x800409c0, 0x05000005, 0x60100080, - 0x60401000, 0x59a81886, 0x0501f0db, 0x42006000, - 0x00102a52, 0x64235088, 0x50301000, 0x41784800, - 0x4a03902d, 0x00000400, 0x0501f85a, 0x80244800, - 0x82240580, 0x00000088, 0x05fe07fc, 0x0501f8de, - 0x41784800, 0x0501f87e, 0x80244800, 0x82240580, - 0x00000088, 0x05fe07fc, 0x80306000, 0x82300580, - 0x00102a54, 0x05fe07ed, 0x59a80887, 0x800409c0, - 0x05000005, 0x60100080, 0x60201000, 0x59a81886, - 0x0501f0bd, 0x42006000, 0x00102a52, 0x64835088, - 0x50301000, 0x41784800, 0x4a03902d, 0x00002000, - 0x61d0b003, 0x59c8002c, 0x8c000530, 0x05000006, - 0x8058b040, 0x05fe07fc, 0x600c0080, 0x41781000, - 0x0501f0ad, 0x59c8002c, 0x82000500, 0xffe0ffff, - 0x82080d00, 0x001f0000, 0x80040540, 0x4803902c, - 0x0501f82c, 0x80244800, 0x82240580, 0x00000110, - 0x05fe07fc, 0x0501f8b0, 0x41784800, 0x0501f850, - 0x59c80034, 0x82080d00, 0x001f0000, 0x82000500, - 0x001f0000, 0x80040580, 0x05000006, 0x59a80087, - 0x80000000, 0x48035087, 0x40240000, 0x48035086, - 0x80244800, 0x82240580, 0x00000110, 0x05fe07f0, - 0x80306000, 0x82300580, 0x00102a54, 0x05fe07d1, - 0x59a80887, 0x800409c0, 0x05000004, 0x60100080, - 0x60801000, 0x59a81886, 0x59c80803, 0x82040d40, - 0x00001f00, 0x48079003, 0x59c8002c, 0x8400052a, - 0x4803902c, 0x61f00800, 0x05f5f98e, 0x05f9f7f6, - 0x59c8002c, 0x82000500, 0xffff0000, 0x82080d00, - 0x0000ffff, 0x80040540, 0x4803902c, 0x480b9028, - 0x480b9029, 0x59a80088, 0x90004584, 0x05000007, - 0x90000590, 0x05020003, 0x80080920, 0x4807903a, - 0x480b902a, 0x480b902b, 0x59c8002d, 0x82000500, - 0xfffffc00, 0x80240540, 0x4803902d, 0x61d0b003, + 0x60201000, 0x59a81886, 0x0501f0bd, 0x42006000, + 0x00102af8, 0x64835088, 0x50301000, 0x41784800, + 0x4a03902d, 0x00002000, 0x61d0b003, 0x59c8002c, + 0x8c000530, 0x05000006, 0x8058b040, 0x05fe07fc, + 0x600c0080, 0x41781000, 0x0501f0ad, 0x59c8002c, + 0x82000500, 0xffe0ffff, 0x82080d00, 0x001f0000, + 0x80040540, 0x4803902c, 0x0501f82c, 0x80244800, + 0x82240580, 0x00000110, 0x05fe07fc, 0x0501f8b0, + 0x41784800, 0x0501f850, 0x59c80034, 0x82080d00, + 0x001f0000, 0x82000500, 0x001f0000, 0x80040580, + 0x05000006, 0x59a80087, 0x80000000, 0x48035087, + 0x40240000, 0x48035086, 0x80244800, 0x82240580, + 0x00000110, 0x05fe07f0, 0x80306000, 0x82300580, + 0x00102afa, 0x05fe07d1, 0x59a80887, 0x800409c0, + 0x05000004, 0x60100080, 0x60801000, 0x59a81886, + 0x59c80803, 0x82040d40, 0x00001f00, 0x48079003, + 0x59c8002c, 0x8400052a, 0x4803902c, 0x61f00800, + 0x05f5f8e6, 0x05f9f7f3, 0x59c8002c, 0x82000500, + 0xffff0000, 0x82080d00, 0x0000ffff, 0x80040540, + 0x4803902c, 0x480b9028, 0x480b9029, 0x59a80088, + 0x90004584, 0x05000007, 0x90000590, 0x05020003, + 0x80080920, 0x4807903a, 0x480b902a, 0x480b902b, + 0x59c8002d, 0x82000500, 0xfffffc00, 0x80240540, + 0x4803902d, 0x61d0b003, 0x59c8002c, 0x82000500, + 0x18000000, 0x05000006, 0x8058b040, 0x05fe07fb, + 0x600c0080, 0x41781000, 0x0501f059, 0x6407902e, + 0x61d0b003, 0x59c8002e, 0x8c000500, 0x05000005, + 0x8058b040, 0x05fe07fc, 0x600c0080, 0x0501f050, + 0x1c01f000, 0x41783800, 0x59c8002d, 0x82000500, + 0xfffffc00, 0x80240d40, 0x4807902d, 0x61d0b003, 0x59c8002c, 0x82000500, 0x18000000, 0x05000006, 0x8058b040, 0x05fe07fb, 0x600c0080, 0x41781000, - 0x0501f059, 0x6407902e, 0x61d0b003, 0x59c8002e, - 0x8c000500, 0x05000005, 0x8058b040, 0x05fe07fc, - 0x600c0080, 0x0501f050, 0x1c01f000, 0x41783800, - 0x59c8002d, 0x82000500, 0xfffffc00, 0x80240d40, - 0x4807902d, 0x61d0b003, 0x59c8002c, 0x82000500, - 0x18000000, 0x05000006, 0x8058b040, 0x05fe07fb, - 0x600c0080, 0x41781000, 0x0501f03f, 0x59c81830, - 0x59c80030, 0x800c0d80, 0x05fe07fd, 0x80080d80, - 0x05000002, 0x801c3800, 0x59c82031, 0x59c80031, - 0x80100d80, 0x05fe07fd, 0x80080d80, 0x05000002, - 0x801c3800, 0x59a80088, 0x90004584, 0x0500001e, - 0x61fc41ff, 0x90000590, 0x05020003, 0x42004000, - 0x7f7f7f7f, 0x59c82832, 0x59c80032, 0x80140d80, + 0x0501f03f, 0x59c81830, 0x59c80030, 0x800c0d80, 0x05fe07fd, 0x80080d80, 0x05000002, 0x801c3800, - 0x59c83033, 0x59c80033, 0x80180d80, 0x05fe07fd, - 0x80080d80, 0x05000002, 0x801c3800, 0x59c80034, + 0x59c82031, 0x59c80031, 0x80100d80, 0x05fe07fd, + 0x80080d80, 0x05000002, 0x801c3800, 0x59a80088, + 0x90004584, 0x0500001e, 0x61fc41ff, 0x90000590, + 0x05020003, 0x42004000, 0x7f7f7f7f, 0x59c82832, + 0x59c80032, 0x80140d80, 0x05fe07fd, 0x80080d80, + 0x05000002, 0x801c3800, 0x59c83033, 0x59c80033, + 0x80180d80, 0x05fe07fd, 0x80080d80, 0x05000002, + 0x801c3800, 0x59c80034, 0x59c80834, 0x80040d80, + 0x05fe07fd, 0x80080d80, 0x40200000, 0x80040d00, + 0x0500000c, 0x801c3800, 0x0501f00a, 0x59c80034, 0x59c80834, 0x80040d80, 0x05fe07fd, 0x80080d80, - 0x40200000, 0x80040d00, 0x0500000c, 0x801c3800, - 0x0501f00a, 0x59c80034, 0x59c80834, 0x80040d80, - 0x05fe07fd, 0x80080d80, 0x82040d00, 0x000000ff, - 0x05000002, 0x801c3800, 0x801c39c0, 0x05000005, - 0x59a80087, 0x801c0400, 0x48035087, 0x48275086, - 0x1c01f000, 0x48034207, 0x48074407, 0x480b4208, - 0x480f4408, 0x48134209, 0x48174409, 0x59c80003, - 0x82000540, 0x00001f00, 0x48039003, 0x59c8002c, - 0x8400052a, 0x4803902c, 0x61f00800, 0x05f5f905, - 0x05f9f770, 0x42000000, 0x00600000, 0x80000040, - 0x05fe07ff, 0x1c01f000, 0x5a5a5a5a, 0xa5a5a5a5, - 0x0505fa72, 0x05020003, 0x640b4407, 0x05f9f7a4, - 0x42005000, 0x0010b110, 0x50285000, 0x482b4000, - 0x4200a000, 0x0010b111, 0x59a00408, 0x59a01208, - 0x900811c0, 0x80081540, 0x59a0040a, 0x59a01a0a, - 0x900c19c0, 0x800c1d40, 0x42024800, 0x0010b111, - 0x912cac05, 0x6018b000, 0x9050040b, 0x48034001, - 0x0539fdf4, 0x60180800, 0x800400c4, 0x80080c00, - 0x48074002, 0x900c0c40, 0x48074003, 0x60180800, - 0x912c0405, 0x0505fa77, 0x4a01d808, 0x00102a79, - 0x1c01f000, 0x4031d800, 0x58ef400a, 0x58ec0002, - 0x82000580, 0x00000200, 0x05f80775, 0x59a0a001, - 0x59a01000, 0x80081040, 0x480b4000, 0x05000005, - 0x59a01002, 0x59a01803, 0x58ee580c, 0x05fdf7e1, - 0x42000800, 0x0010b110, 0x50040800, 0x48074407, - 0x05f9f72d, 0x0505fa39, 0x05020003, 0x640b4407, - 0x05f9f76b, 0x59a00c0b, 0x42000000, 0x0010b110, - 0x50000000, 0x80040480, 0x05fa1769, 0x8204a400, - 0x0010a0ec, 0x5050a000, 0x912cac05, 0x6018b000, - 0x0539fdc4, 0x59a00408, 0x59a01208, 0x900811c0, - 0x80081540, 0x59a0040a, 0x59a01a0a, 0x900c19c0, - 0x800c1d40, 0x60180800, 0x912c0405, 0x0505f245, - 0x59a00c0b, 0x800409c0, 0x05f80755, 0x900404a1, - 0x05fa1753, 0x90040491, 0x05001002, 0x60400800, - 0x59a00209, 0x59a01408, 0x900811c0, 0x80081540, - 0x59a00208, 0x59a01c07, 0x900c19c0, 0x800c1d40, - 0x0505fa0e, 0x05000005, 0x0505fa2c, 0x4a01d808, - 0x00102ac0, 0x1c01f000, 0x640b4407, 0x05f9f73c, - 0x4031d800, 0x58ef400a, 0x58ec0002, 0x82000580, - 0x00000200, 0x05f8072e, 0x59a00c0b, 0x90040491, - 0x05001002, 0x60400800, 0x59a0040c, 0x59a0120c, - 0x900811c0, 0x80081540, 0x59a0020a, 0x59a01c09, - 0x900c19c0, 0x800c1d40, 0x58ec0003, 0x0505fa19, - 0x4a01d808, 0x00102ad7, 0x1c01f000, 0x4031d800, - 0x58ef400a, 0x58ec0002, 0x82000580, 0x00000200, - 0x05f80717, 0x59a00c0b, 0x90040491, 0x05f816da, - 0x90040c90, 0x59a00209, 0x59a01408, 0x900811c0, - 0x80081540, 0x59a00208, 0x59a01c07, 0x900c19c0, - 0x800c1d40, 0xb0081400, 0x58ec0003, 0x0505f9fb, - 0x4a01d808, 0x00102aef, 0x1c01f000, 0x4031d800, - 0x58ef400a, 0x58ec0002, 0x82000580, 0x00000200, - 0x05f806ff, 0x59a0040b, 0x90000c90, 0x59a0040c, - 0x59a0120c, 0x900811c0, 0x80081540, 0x59a0020a, - 0x59a01c09, 0x900c19c0, 0x800c1d40, 0xb0081400, - 0x58ec0003, 0x0505f9eb, 0x4a01d808, 0x001021b2, - 0x1c01f000, 0x48efc857, 0x59a00208, 0x59a01408, - 0x900001c0, 0x80081540, 0x59a0020a, 0x59a01c0a, - 0x900001c0, 0x800c1d40, 0x59a00407, 0x48034000, - 0x480b4001, 0x480f4002, 0x0505f9b4, 0x05020003, - 0x640b4407, 0x05f9f6e6, 0x60400800, 0x0505f9cf, - 0x4a01d808, 0x00102b1b, 0x1c01f000, 0x4031d800, - 0x58ef400a, 0x58ee580c, 0x58ec0002, 0x82000580, - 0x00000200, 0x05f806d2, 0x48efc857, 0x49a3c857, - 0x492fc857, 0x592c0a05, 0x80040910, 0x05020003, - 0x64674407, 0x05f9f6d2, 0x4805d80b, 0x0501f009, - 0x4031d800, 0x58ef400a, 0x58ec0002, 0x82000580, - 0x00000200, 0x05f806c2, 0x48efc857, 0x49a3c857, - 0x48efc857, 0x49a3c857, 0x58ec000b, 0x80000040, - 0x0500000d, 0x4801d80b, 0x0505f98c, 0x05020003, - 0x640b4407, 0x05f9f6be, 0x60400800, 0x58ec1006, - 0x58ec1807, 0x0505f9a5, 0x4a01d808, 0x00102b2c, - 0x1c01f000, 0x58ee580c, 0x48efc857, 0x49a3c857, - 0x492fc857, 0x492f3004, 0x592c0405, 0x8400055e, - 0x48025c05, 0x4a01d808, 0x00102b50, 0x1c01f000, - 0x4d2c0000, 0x58ee580c, 0x48efc857, 0x49a3c857, - 0x492fc857, 0x592c0405, 0x8400051e, 0x48025c05, - 0x59a00000, 0x59a01001, 0x59a01802, 0x80081400, - 0x900c1c40, 0x912c0405, 0x60400800, 0x5c025800, - 0x0505f18c, 0x8d0c050e, 0x05000003, 0x64074407, - 0x05f9f697, 0x916c0583, 0x05000003, 0x641f4407, - 0x05f9f693, 0x59a0320c, 0x82183500, 0x000000ff, - 0x59a28c07, 0x0505fa44, 0x05fa0691, 0x050df985, - 0x05fa068f, 0x83440580, 0x000007fd, 0x05000005, - 0x050df927, 0x05000003, 0x64274407, 0x05f9f684, - 0x0505f94e, 0x05020003, 0x640b4407, 0x05f9f680, - 0x801831c0, 0x05000007, 0x412c0800, 0x0505f947, - 0x05020003, 0x640b4407, 0x05f9f679, 0x40065800, - 0x4a025c05, 0x00008000, 0x497a5a05, 0x052df849, - 0x05020003, 0x640f4407, 0x05f9f671, 0x4a01d808, - 0x00102b8e, 0x1c01f000, 0x592c0006, 0x82000580, - 0x01000000, 0x05020003, 0x64134407, 0x05f9f668, - 0x592c0407, 0x82002d00, 0x0000ff00, 0x82000500, - 0x000000ff, 0x80000904, 0x80040800, 0x90040486, - 0x05001002, 0x60140800, 0x4c500000, 0x4c540000, - 0x4c580000, 0x912ca407, 0x4050a800, 0x4004b000, - 0x0539fcf7, 0x59a00408, 0x59a01208, 0x900811c0, - 0x80081540, 0x59a0040a, 0x59a01a0a, 0x900c19c0, - 0x800c1d40, 0x912c0407, 0x4c140000, 0x0505f93d, - 0x5c002800, 0x801429c0, 0x05000003, 0x4a01d808, - 0x00102bb9, 0x5c00b000, 0x5c00a800, 0x5c00a000, - 0x1c01f000, 0x4031d800, 0x58ef400a, 0x58ee580c, - 0x58ec0002, 0x82000580, 0x00000200, 0x05f80634, - 0x812e59c0, 0x05e80e2e, 0x592c0007, 0x82000500, - 0xff000000, 0x80000904, 0x800409c0, 0x05f805f2, - 0x4807c857, 0x9004048e, 0x05001002, 0x60340800, - 0x592e5801, 0x812e59c0, 0x05e80e21, 0x4c500000, - 0x4c540000, 0x4c580000, 0x912ca406, 0x4050a800, - 0x4004b000, 0x0539fcc6, 0x5c00b000, 0x5c00a800, - 0x5c00a000, 0x58ec1006, 0x58ec1807, 0x912c0406, - 0x0505f110, 0x0505f8e9, 0x05020003, 0x640b4407, - 0x05f9f61b, 0x59a00c07, 0x82040500, 0x0000ff00, - 0x840001c0, 0x90001487, 0x05fa1619, 0x0c01f001, - 0x00102bef, 0x00102bf5, 0x00102bfb, 0x00102bfb, - 0x00102bfb, 0x00102bfc, 0x00102c00, 0x60340800, - 0x42003800, 0x00102c11, 0x4a034000, 0x0010ac60, - 0x0501f00f, 0x60340800, 0x42003800, 0x00102c11, - 0x4a034000, 0x0010ac6d, 0x0501f009, 0x05f9f604, - 0x60200800, 0x42003800, 0x00102c1e, 0x0501f004, - 0x60100800, 0x42003800, 0x00102c53, 0x59a00208, - 0x59a01408, 0x900001c0, 0x80081540, 0x59a0020a, - 0x59a01c0a, 0x900001c0, 0x800c1d40, 0x912c0406, - 0x4c1c0000, 0x0505f8d9, 0x5c003800, 0x481dd808, - 0x1c01f000, 0x4031d800, 0x58ef400a, 0x58ee580c, - 0x58ec0002, 0x82000580, 0x00000200, 0x05f805dc, - 0x64075019, 0x6034b000, 0x59a0a800, 0x912ca406, - 0x0539fc7f, 0x05f9f59c, 0x4031d800, 0x58ef400a, - 0x58ee580c, 0x58ec0002, 0x82000580, 0x00000200, - 0x05f805cf, 0x912ca406, 0x50500000, 0x82001500, - 0x000c0016, 0x05fa05d6, 0x90500c03, 0x50040000, - 0x90001501, 0x05fa05d2, 0x50500000, 0x90001528, - 0x05000015, 0x900815a8, 0x05fa05cd, 0x80500800, - 0x50040000, 0x90001513, 0x90081593, 0x05fa05c8, - 0x80040800, 0x50040000, 0x82001500, 0x00050000, - 0x82081580, 0x00050000, 0x05fa05c1, 0x916c0580, - 0x0500000e, 0x599c0019, 0x8c00050e, 0x0502000b, - 0x05f9f5bb, 0x80500800, 0x50040000, 0x90001513, - 0x05fa05b7, 0x80040800, 0x50040000, 0x82001500, - 0x00050000, 0x05fa05b2, 0x6020b000, 0x4200a800, - 0x0010ac58, 0x0539fc0f, 0x05f9f567, 0x4031d800, - 0x58ef400a, 0x58ee580c, 0x58ec0002, 0x82000580, - 0x00000200, 0x05f8059a, 0x6010b000, 0x4200a800, - 0x0010b10b, 0x912ca406, 0x0539fc02, 0x850e1d50, - 0x05f9f559, 0x0505f865, 0x05020003, 0x640b4407, - 0x05f9f597, 0x912cac06, 0x59a00c07, 0x82040500, - 0x0000ff00, 0x840001c0, 0x90001488, 0x05fa1594, - 0x0c01f001, 0x00102c75, 0x00102c78, 0x00102c7b, - 0x00102c7b, 0x00102c7b, 0x00102c7c, 0x00102c7b, - 0x00102c82, 0x4200a000, 0x0010ac60, 0x0501f040, - 0x4200a000, 0x0010ac6d, 0x0501f03d, 0x05f9f584, - 0x6020b000, 0x40580800, 0x4200a000, 0x0010ac58, - 0x0539fbe0, 0x0501f039, 0x59a00a0b, 0x6473420b, - 0x9004049c, 0x05f8157a, 0x603cb000, 0x4178a000, - 0x0539fbe0, 0x912cac06, 0x6010b000, 0x91a8a41f, - 0x0539fbd4, 0x916c0580, 0x05000004, 0x6010b000, - 0x91a8a400, 0x0539fbcf, 0x912cac12, 0x600cb000, - 0x91a8a423, 0x0539fbcb, 0x492f4000, 0x0505f82f, - 0x05020003, 0x640b4407, 0x05f9f561, 0x912cac06, - 0x603cb000, 0x4178a000, 0x0539fbca, 0x912cac06, - 0x6004b000, 0x91a8a426, 0x0539fbbe, 0x912cac07, - 0x6010b000, 0x91a8a427, 0x0539fbba, 0x492f4001, - 0x59a25800, 0x59a00208, 0x59a01408, 0x900001c0, - 0x80081540, 0x59a0020a, 0x59a01c0a, 0x900001c0, - 0x800c1d40, 0x912c0406, 0x603c0800, 0x0505f839, - 0x4a01d808, 0x00102cc4, 0x1c01f000, 0x6034b000, - 0x40580800, 0x0539fbe2, 0x59a00208, 0x59a01408, - 0x900001c0, 0x80081540, 0x59a0020a, 0x59a01c0a, - 0x900001c0, 0x800c1d40, 0x912c0406, 0x0505f029, - 0x4031d800, 0x58ef400a, 0x58ec0002, 0x82000580, - 0x00000200, 0x05f8052a, 0x59a25801, 0x58ec1006, - 0x58ec1807, 0x912c0406, 0x60340800, 0x0505f01d, - 0x916c0580, 0x05020003, 0x641f4407, 0x05f9f528, - 0x59a01407, 0x800811c0, 0x0502002a, 0x497b4208, - 0x05f5fe14, 0x05000011, 0x05f5fdf6, 0x64074208, - 0x0502000e, 0x4c080000, 0x05f5fe00, 0x5c001000, - 0x05020006, 0x640b4208, 0x05f5f9ec, 0x05020007, - 0x64134208, 0x0501f005, 0x640f4208, 0x05f5f9c6, - 0x05020002, 0x64174208, 0x59c40801, 0x82040d00, - 0x00018000, 0x90040580, 0x05020003, 0x64034407, - 0x0501f069, 0x82040580, 0x00008000, 0x05020003, - 0x64074407, 0x0501f064, 0x82040580, 0x00010000, - 0x05020003, 0x640f4407, 0x0501f05f, 0x82040580, - 0x00018000, 0x05ea0cf2, 0x64134407, 0x0501f05a, - 0x59a8008d, 0x8c000502, 0x05000004, 0x60080000, - 0x40000800, 0x0501f012, 0x59a00208, 0x4c000000, - 0x0505f903, 0x5c000000, 0x05000005, 0x4c000000, - 0x0505f916, 0x5c000000, 0x05020007, 0x90000d84, - 0x05000003, 0x90000d82, 0x05020003, 0x600c0000, - 0x600c1000, 0x48034002, 0x59a8083b, 0x4803503b, - 0x599c7819, 0x823c7d00, 0xffff1fff, 0x800000da, - 0x803c7d40, 0x483f3819, 0x497b4208, 0x05f5fdcd, - 0x05000013, 0x05f5fdaf, 0x64074208, 0x05020010, - 0x4c040000, 0x4c080000, 0x05f5fdb8, 0x5c001000, - 0x5c000800, 0x05020006, 0x640b4208, 0x05f5f9a3, - 0x05020007, 0x64134208, 0x0501f005, 0x640f4208, - 0x05f5f97d, 0x05020002, 0x64174208, 0x05f5f97a, - 0x0500000b, 0x05f5f983, 0x05000009, 0x05f5f98c, - 0x05000007, 0x05f5f995, 0x05000005, 0x05f5f99e, - 0x05000003, 0x4807503b, 0x05f9f4c1, 0x90080583, - 0x05020005, 0x59a00002, 0x48035048, 0x640b503b, - 0x0501f005, 0x4a035048, 0xaabbccdd, 0x90080582, - 0x05020011, 0x59c40006, 0x84000500, 0x48038806, - 0x0519fd85, 0x497b8880, 0x42000000, 0x0010b0be, - 0x0539fa45, 0x4803c856, 0x850e1d48, 0x4a038808, - 0x00000200, 0x6012d800, 0x64078805, 0x64075047, - 0x05e9feb2, 0x05f9f460, 0x8d0c050e, 0x05000003, - 0x64074407, 0x05f9f49e, 0x916c0583, 0x05000003, - 0x641f4407, 0x05f9f49a, 0x59a28c07, 0x59a0320c, - 0x82183500, 0x000000ff, 0x0505f84b, 0x05fa0498, - 0x0509ff8c, 0x05fa0496, 0x83440580, 0x000007fd, - 0x05000005, 0x0509ff2e, 0x05000003, 0x60240800, - 0x05f9f48b, 0x0501ff55, 0x05020003, 0x640b4407, - 0x05f9f487, 0x497a5a05, 0x4a025c05, 0x00008000, - 0x0529fe6b, 0x05020003, 0x640f4407, 0x05f9f480, - 0x4a01d808, 0x00102d7f, 0x1c01f000, 0x592c0006, - 0x82000d00, 0x0000ffff, 0x82000500, 0xffff0000, - 0x82000580, 0x01000000, 0x05020003, 0x64134407, - 0x05f9f473, 0x80040904, 0x4c500000, 0x4c540000, - 0x4c580000, 0x912ca406, 0x4050a800, 0x4004b000, - 0x0539fb0b, 0x5c00b000, 0x5c00a800, 0x5c00a000, - 0x59a00208, 0x59a01408, 0x900001c0, 0x80081540, - 0x59a0020a, 0x59a01c0a, 0x900001c0, 0x800c1d40, - 0x912c0406, 0x0501f74f, 0x60000020, 0x50000000, - 0x82000480, 0x25320001, 0x05020007, 0x4a03c014, - 0x00400040, 0x4a03c013, 0x00400000, 0x6041d04e, - 0x0515fed7, 0x496fc857, 0x916c0580, 0x05000003, - 0x646b4407, 0x05f9f44e, 0x050dfc7f, 0x05060fa2, - 0x60800800, 0x59a00408, 0x59a01208, 0x900811c0, - 0x80081540, 0x59a0040a, 0x59a01a0a, 0x900c19c0, - 0x800c1d40, 0x419c0000, 0x49a3c857, 0x0501ff2b, - 0x4a01d808, 0x00102dbf, 0x1c01f000, 0x4833c857, - 0x4031d800, 0x58ef400a, 0x58ec0002, 0x82000580, - 0x00000200, 0x05f8042e, 0x599c0200, 0x800001c0, - 0x05f80437, 0x59a8008d, 0x8c000502, 0x05000011, - 0x599c0017, 0x84000508, 0x48033817, 0x599c0019, - 0x82000500, 0xffff1fff, 0x82000540, 0x00004000, - 0x48033819, 0x599c0018, 0x84000510, 0x84000516, - 0x82000500, 0xffffffcf, 0x90000560, 0x0501f004, - 0x8c000504, 0x05000003, 0x599c0018, 0x48033818, - 0x052dfdba, 0x850e1d20, 0x599c0017, 0x8c000508, - 0x05000003, 0x850e1d60, 0x0501f003, 0x8c00050a, - 0x05fa0417, 0x42024800, 0x0010b111, 0x64124a00, - 0x42000800, 0x0010b110, 0x64040800, 0x42000800, - 0x0010b10f, 0x46000800, 0x0000ffff, 0x59240c00, - 0x84040d46, 0x599c1017, 0x8c08050a, 0x05020002, - 0x84040d48, 0x8c080508, 0x05020002, 0x84040d4a, - 0x84040d4c, 0x48064c00, 0x59240a00, 0x84040d40, - 0x48064a00, 0x4803c857, 0x8c000504, 0x05020004, - 0x59c408a3, 0x84040d7a, 0x480788a3, 0x8c000502, - 0x05020004, 0x59c408a3, 0x84040d08, 0x480788a3, - 0x599c0c02, 0x8c000500, 0x0502000b, 0x8c000516, - 0x0500001f, 0x4c000000, 0x59240400, 0x84000542, - 0x840411c0, 0x80081540, 0x480a4c00, 0x5c000000, - 0x0501f008, 0x4c000000, 0x59240400, 0x84000540, - 0x840411c0, 0x80081540, 0x480a4c00, 0x5c000000, - 0xb00414bf, 0x05fa13de, 0x82041400, 0x00102013, - 0x50081000, 0x82081500, 0x000000ff, 0x48064a08, - 0x480a4805, 0x480a4c08, 0x8c000500, 0x05020004, - 0x480b500f, 0x600c0800, 0x0519f97e, 0x0501ff54, - 0x05000004, 0x59240400, 0x84000544, 0x48024c00, - 0x599c0019, 0x8c000506, 0x05000003, 0x4a03b805, - 0x90000000, 0x8c00050e, 0x05020009, 0x59a80805, - 0x8c040514, 0x05000006, 0x42000800, 0x0010ac58, - 0x50040800, 0x90040d28, 0x05fa03bd, 0x90000530, - 0x05000003, 0x80000108, 0x0501f002, 0x60080000, - 0x48039040, 0x60080800, 0x82000400, 0x00102fe0, - 0x50001000, 0x0519f95f, 0x599c0201, 0x82000c80, - 0x00000100, 0x05f813ae, 0x82000c80, 0x00000841, - 0x05fa13ab, 0x90000507, 0x05fa03a9, 0x599c0401, - 0x80000540, 0x05f803a6, 0x59a8088d, 0x8c040502, - 0x05000005, 0x90000c90, 0x05001003, 0x60400000, - 0x48033c01, 0x850e1d52, 0x82000580, 0x0000ffff, - 0x05000002, 0x850e1d12, 0x599c0409, 0x599c0c07, - 0x80040c80, 0x05fa1396, 0x80000040, 0x05f80394, - 0x599c0209, 0x599c0a07, 0x80040c80, 0x05fa1390, - 0x80000040, 0x05f8038e, 0x91a81423, 0x599c0818, - 0x8c040510, 0x05020005, 0x50080000, 0x8400053e, - 0x44001000, 0x0501f00b, 0x59a80006, 0x8400054a, - 0x48035006, 0x4a0370e4, 0x0000c000, 0x4c040000, - 0x59c408a3, 0x84040d3a, 0x480788a3, 0x5c000800, - 0x8c040512, 0x05020009, 0x50080000, 0x82000500, - 0xfffff5ff, 0x44001000, 0x80081000, 0x50080000, - 0x8400053e, 0x44001000, 0x050dff40, 0x050df923, - 0x599c0201, 0x48035004, 0x05f1fc93, 0x599c020a, - 0x800001c0, 0x05000003, 0x48035035, 0x0501f003, - 0x4a035035, 0x000000c8, 0x8d0c0520, 0x05000003, - 0x0515fe23, 0x417a5000, 0x599c0003, 0x599c0804, - 0x9c0001c0, 0x9c0409c0, 0x48024801, 0x48064802, - 0x48035002, 0x48075003, 0x599c1017, 0x8c08051c, - 0x05000006, 0x599c0005, 0x599c0806, 0x9c0001c0, - 0x9c0409c0, 0x0501f003, 0x82000500, 0xf0ffffff, - 0x48024803, 0x48064804, 0x48035000, 0x48075001, - 0x42001000, 0x0010ac60, 0x48001000, 0x48041001, - 0x42001000, 0x0010ac6d, 0x48001000, 0x48041001, - 0x59a00207, 0xb0000588, 0x05020092, 0x0501fe07, - 0x05020003, 0x640b4407, 0x05f9f339, 0x60400800, - 0x59a00208, 0x59a01408, 0x900001c0, 0x80081540, - 0x59a0020a, 0x59a01c0a, 0x900001c0, 0x800c1d40, - 0x82081400, 0x00000080, 0xb0083400, 0x481b4002, - 0x900c3440, 0x481b4003, 0x912c0405, 0x0501fe13, - 0x4a01d808, 0x00102ed7, 0x1c01f000, 0x4031d800, - 0x58ef400a, 0x58ee580c, 0x58ec0002, 0x82000580, - 0x00000200, 0x05f80316, 0x592c1005, 0x480bc857, - 0x80080120, 0x42024800, 0x0010b111, 0x48024c06, - 0x82081500, 0x0000ffff, 0x599c0818, 0x90040d30, - 0x90040580, 0x05020004, 0xb00804be, 0x05fa1314, - 0x0501f004, 0x82080480, 0x000000ff, 0x05fa1310, - 0x80080800, 0x42000000, 0x0010b110, 0x44040000, - 0x800811c0, 0x0500005b, 0x42024800, 0x0010b11c, - 0x80040840, 0x912e5c06, 0x600c4000, 0x592c0400, - 0x8c000506, 0x05000012, 0x59a8108d, 0x90081506, - 0x05fa02ff, 0x8c00050a, 0x05020003, 0x8d0c0520, - 0x05f802fb, 0x64164a00, 0x90001503, 0x05000006, - 0x840011c0, 0x82081500, 0x000000ff, 0x480a4a08, - 0x0501f003, 0x82000500, 0x000000ff, 0x48024c00, - 0x592c0001, 0x592c1002, 0x9c0001c0, 0x9c0811c0, - 0x48024801, 0x480a4802, 0x599c1817, 0x8c0c051c, - 0x05000006, 0x592c0003, 0x592c1004, 0x9c0001c0, - 0x9c0811c0, 0x0501f003, 0x82000500, 0xf0ffffff, - 0x48024803, 0x480a4804, 0x912e5c05, 0x91264c0b, - 0x80040840, 0x0500001d, 0x80204040, 0x05fe07d4, - 0x48074000, 0x49274001, 0x603c0800, 0x59a01002, - 0x59a01803, 0x9008343c, 0x481b4002, 0x900c3440, - 0x481b4003, 0x58ee580c, 0x912c0405, 0x0501fdb3, - 0x4a01d808, 0x00102f37, 0x1c01f000, 0x4031d800, - 0x58ef400a, 0x58ec0002, 0x82000580, 0x00000200, - 0x05f802b7, 0x58ee580c, 0x912e5c05, 0x59a00800, - 0x59a24801, 0x05fdf7b9, 0x42006800, 0x0010b111, - 0x4200b000, 0x0010b110, 0x5058b000, 0x8058b040, - 0x05000008, 0x42024800, 0x0010b11c, 0x58340206, - 0x48024a06, 0x91264c0b, 0x8058b040, 0x05fe07fc, - 0x599c1019, 0x82081500, 0x0000e000, 0x497b4208, - 0x05f5fb98, 0x05000012, 0x05f5fb7a, 0x64074208, - 0x0502000f, 0x4c080000, 0x05f5fb84, 0x5c001000, - 0x05020007, 0x640b4208, 0x82080580, 0x00008000, - 0x05020007, 0x64134208, 0x0501f005, 0x640f4208, - 0x90080580, 0x05020002, 0x64174208, 0x90080580, - 0x05020007, 0x6403503b, 0x60040000, 0x05f5f934, - 0x60040000, 0x05f5f908, 0x0501f02b, 0x82080580, - 0x00002000, 0x05020008, 0x6407503b, 0x60000000, - 0x05f5f92b, 0x60000000, 0x05f5f8ff, 0x05f5fcdc, - 0x0501f021, 0x82080580, 0x00004000, 0x05020004, - 0x640b503b, 0x64075047, 0x05fdf7f9, 0x82080580, - 0x00006000, 0x0502000f, 0x59a8085c, 0x82040d80, - 0x01391077, 0x05020004, 0x59e00813, 0x8c040500, - 0x05fa0277, 0x640f503b, 0x60080000, 0x05f5f914, - 0x60080000, 0x05f5f8e8, 0x05fdf7e9, 0x0501f00a, - 0x82080580, 0x00008000, 0x05fa026d, 0x05f5fccf, - 0x6413503b, 0x600c0000, 0x05f5f909, 0x600c0000, - 0x05f5f8dd, 0x599c1019, 0x82081500, 0x0000e000, - 0x4c080000, 0x0501fea1, 0x5c001000, 0x05020004, - 0x82080580, 0x00004000, 0x0500000b, 0x0501fe68, - 0x05000003, 0x0501fe7d, 0x05020009, 0x82080580, - 0x00008000, 0x05000004, 0x82080580, 0x00004000, - 0x05020003, 0x600010c0, 0x0501f004, 0x599c0019, - 0x8c000518, 0x05000005, 0x8008111a, 0x480b5048, - 0x640b503b, 0x64075047, 0x599c0019, 0x8c000520, - 0x05000001, 0x4a035013, 0x0000aaaa, 0x599c1018, - 0x90081530, 0x90080d80, 0x05000005, 0x90080d90, - 0x05000008, 0x90080da0, 0x05020002, 0x48075013, - 0x0501fdba, 0x05000007, 0x4803c856, 0x850e1d46, - 0x05f1feac, 0x59a8001f, 0x80040540, 0x4803501f, - 0x49f3c857, 0x42001000, 0x0010497d, 0x0515fb57, - 0x42001000, 0x00104970, 0x0515fc9c, 0x4a038805, - 0xffffffff, 0x0501fe58, 0x05000005, 0x4a03c014, - 0x00400040, 0x4a03c013, 0x00400000, 0x59a0001e, - 0x84000540, 0x4803401e, 0x49f3c857, 0x05f9f1da, - 0x00000018, 0x0000000c, 0x00000018, 0x00000020, - 0x916c0580, 0x05020003, 0x601c0800, 0x05f9f214, - 0x60800800, 0x59a00408, 0x59a01208, 0x900811c0, - 0x80081540, 0x59a0040a, 0x59a01a0a, 0x900c19c0, - 0x800c1d40, 0x419c0000, 0x0501f4fa, 0x8d0c050e, - 0x05000003, 0x64074407, 0x05f9f205, 0x050dfa36, - 0x05020003, 0x645b4407, 0x05f9f201, 0x59a80073, - 0x8c000500, 0x0500000e, 0x64034407, 0x60800800, + 0x82040d00, 0x000000ff, 0x05000002, 0x801c3800, + 0x801c39c0, 0x05000005, 0x59a80087, 0x801c0400, + 0x48035087, 0x48275086, 0x1c01f000, 0x48034207, + 0x48074407, 0x480b4208, 0x480f4408, 0x48134209, + 0x48174409, 0x59c80003, 0x82000540, 0x00001f00, + 0x48039003, 0x59c8002c, 0x8400052a, 0x4803902c, + 0x61f00800, 0x05f5f85d, 0x05f9f76d, 0x42000000, + 0x00600000, 0x80000040, 0x05fe07ff, 0x1c01f000, + 0x5a5a5a5a, 0xa5a5a5a5, 0x0505fa97, 0x05020003, + 0x640b4407, 0x05f9f7a1, 0x42005000, 0x0010b390, + 0x50285000, 0x482b4000, 0x4200a000, 0x0010b391, 0x59a00408, 0x59a01208, 0x900811c0, 0x80081540, 0x59a0040a, 0x59a01a0a, 0x900c19c0, 0x800c1d40, - 0x42000000, 0x0010cc24, 0x0501f4e2, 0x64074407, - 0x6080b000, 0x4200a800, 0x0010cc24, 0x4200a000, - 0xffffffff, 0x4450a800, 0x8054a800, 0x8058b040, - 0x05fe07fd, 0x4d440000, 0x4d340000, 0x42028800, - 0xffffffff, 0x42002000, 0xffffffff, 0x60043000, - 0x60043800, 0x42001800, 0x0010cc24, 0x59a8100f, - 0x82081500, 0x000000ff, 0x40180000, 0x0c01f001, - 0x00103028, 0x0010302b, 0x0010302f, 0x00103033, - 0x82102500, 0xffffff00, 0x0501f014, 0x82102500, - 0xffff00ff, 0x840811c0, 0x0501f010, 0x82102500, - 0xff00ffff, 0x900811c0, 0x0501f00c, 0x82102500, - 0x00ffffff, 0x9c0801c0, 0x80102540, 0x44101800, - 0x42003000, 0xffffffff, 0x42002000, 0xffffffff, - 0x800c1800, 0x0501f003, 0x40080000, 0x80102540, - 0x81468800, 0xb1442cbf, 0x05021012, 0x4c080000, - 0x4c0c0000, 0x4c180000, 0x4c1c0000, 0x0001fae7, - 0x5c003800, 0x5c003000, 0x5c001800, 0x5c001000, - 0x05fe07f4, 0x0509fc5f, 0x05fe07f2, 0x80183000, - 0x801c3800, 0x59341202, 0x40180000, 0x0c01f7d1, - 0x82100580, 0xffffffff, 0x05000002, 0x44101800, - 0x42001800, 0x0010cc24, 0x500c0000, 0x82000500, - 0xffffff00, 0x801c0540, 0x44001800, 0x5c026800, - 0x5c028800, 0x60800800, 0x59a00408, 0x59a01208, - 0x900811c0, 0x80081540, 0x59a0040a, 0x59a01a0a, - 0x900c19c0, 0x800c1d40, 0x42000000, 0x0010cc24, - 0x0501f480, 0x59a28c07, 0x0501fd43, 0x05fa0190, - 0x0509fc84, 0x05fa018e, 0x0501fc54, 0x05020003, - 0x640b4407, 0x05f9f186, 0x59a0020c, 0x8c000500, - 0x05000003, 0x0509fc33, 0x0502050e, 0x59a0020c, - 0x8c000502, 0x05000015, 0x83440480, 0x000007f0, - 0x05021012, 0x0509fc34, 0x05020010, 0x497a5a05, - 0x4a025c05, 0x00008000, 0x59a24805, 0x0529fb32, - 0x05020003, 0x640f4407, 0x05f9f171, 0x4a01d808, - 0x0010308e, 0x1c01f000, 0x59a28c07, 0x59a2440b, - 0x0509fc64, 0x05fa016e, 0x4c580000, 0x4c500000, - 0x4c540000, 0x6028b000, 0x4134a000, 0x912e5c02, - 0x412ca800, 0x0535ffc7, 0x912cac06, 0x4054a000, - 0x6010b000, 0x0535fffe, 0x5c00a800, 0x5c00a000, - 0x5c00b000, 0x592c0802, 0x82040500, 0x00ff00ff, - 0x900001c0, 0x82041500, 0xff00ff00, 0x80080540, - 0x48025802, 0x592c0801, 0x82040500, 0x00ff00ff, - 0x900001c0, 0x82041500, 0xff00ff00, 0x80080540, - 0x48025801, 0x60280800, 0x59a00408, 0x59a01208, - 0x900811c0, 0x80081540, 0x59a0040a, 0x59a01a0a, - 0x900c19c0, 0x800c1d40, 0x412c0000, 0x0501f431, - 0x496fc857, 0x496f4407, 0x497b4208, 0x05f5fa2d, - 0x05000015, 0x05f5fa0f, 0x64074208, 0x05020012, - 0x4c080000, 0x05f5fa19, 0x5c001000, 0x05020008, - 0x640b4208, 0x916c0580, 0x0500000b, 0x05f1fe03, - 0x05020009, 0x64134208, 0x0501f007, 0x640f4208, - 0x916c0580, 0x05000004, 0x05f1fddb, 0x05020002, - 0x64174208, 0x05f9f0e4, 0x59a28c07, 0x0501fcda, - 0x05fa0127, 0x0509fc1b, 0x05fa0125, 0x916c0583, - 0x05000003, 0x641f4407, 0x05f9f11d, 0x91340c06, - 0x59a0020c, 0x8c000500, 0x05000002, 0x91340c08, - 0x58040001, 0x4803440a, 0x900001c0, 0x4803420a, - 0x50040000, 0x48034408, 0x900001c0, 0x48034208, - 0x59340200, 0x48034407, 0x05f9f0cb, 0x8d0c050e, - 0x05000003, 0x64074407, 0x05f9f109, 0x59a0220c, - 0x8c100500, 0x05020021, 0x8c100506, 0x05020004, - 0x59a03209, 0x90180483, 0x05fa1105, 0x59a28c07, - 0x0001fae7, 0x05fa0102, 0x0509fb9d, 0x05000003, - 0x64274407, 0x05f9f0fa, 0x0501fbc4, 0x05020003, - 0x640b4407, 0x05f9f0f6, 0x59a0220c, 0x8c100506, - 0x05000004, 0x59343002, 0x82183500, 0x00ffffff, - 0x497a5a05, 0x4a025c05, 0x00008000, 0x0529fa72, - 0x05020003, 0x640f4407, 0x05f9f0e9, 0x4a01d808, - 0x00103154, 0x1c01f000, 0x59a28c07, 0x0001fae7, - 0x05fa00e7, 0x0509fb82, 0x05000003, 0x64274407, - 0x05f9f0df, 0x0501fba9, 0x05020003, 0x640b4407, - 0x05f9f0db, 0x497a5a05, 0x4a025c05, 0x00008000, - 0x0501fba2, 0x05020003, 0x640b4407, 0x05f9f0d4, - 0x592e5800, 0x0529fa6b, 0x05020003, 0x640f4407, - 0x05f9f0cf, 0x4a01d808, 0x00103130, 0x1c01f000, - 0x592c2806, 0x82140d80, 0x01000000, 0x05020003, - 0x64134407, 0x05f9f0c6, 0x60200800, 0x59a00208, + 0x42024800, 0x0010b391, 0x912cac05, 0x6018b000, + 0x9050040b, 0x48034001, 0x0539fffe, 0x60180800, + 0x800400c4, 0x80080c00, 0x48074002, 0x900c0c40, + 0x48074003, 0x60180800, 0x912c0405, 0x0505fa9c, + 0x4a01d808, 0x00102b1f, 0x1c01f000, 0x4031d800, + 0x58ef400a, 0x58ec0002, 0x82000580, 0x00000200, + 0x05f80772, 0x59a0a001, 0x59a01000, 0x80081040, + 0x480b4000, 0x05000005, 0x59a01002, 0x59a01803, + 0x58ee580c, 0x05fdf7e1, 0x42000800, 0x0010b390, + 0x50040800, 0x48074407, 0x05f9f72a, 0x0505fa5e, + 0x05020003, 0x640b4407, 0x05f9f768, 0x59a00c0b, + 0x42000000, 0x0010b390, 0x50000000, 0x80040480, + 0x05fa1766, 0x8204a400, 0x0010a3b3, 0x5050a000, + 0x912cac05, 0x6018b000, 0x0539ffce, 0x59a00408, + 0x59a01208, 0x900811c0, 0x80081540, 0x59a0040a, + 0x59a01a0a, 0x900c19c0, 0x800c1d40, 0x60180800, + 0x912c0405, 0x0505f26a, 0x59a00c0b, 0x800409c0, + 0x05f80752, 0x900404a1, 0x05fa1750, 0x90040491, + 0x05001002, 0x60400800, 0x59a00209, 0x59a01408, + 0x900811c0, 0x80081540, 0x59a00208, 0x59a01c07, + 0x900c19c0, 0x800c1d40, 0x0505fa33, 0x05000005, + 0x0505fa51, 0x4a01d808, 0x00102b66, 0x1c01f000, + 0x640b4407, 0x05f9f739, 0x4031d800, 0x58ef400a, + 0x58ec0002, 0x82000580, 0x00000200, 0x05f8072b, + 0x59a00c0b, 0x90040491, 0x05001002, 0x60400800, + 0x59a0040c, 0x59a0120c, 0x900811c0, 0x80081540, + 0x59a0020a, 0x59a01c09, 0x900c19c0, 0x800c1d40, + 0x58ec0003, 0x0505fa3e, 0x4a01d808, 0x00102b7d, + 0x1c01f000, 0x4031d800, 0x58ef400a, 0x58ec0002, + 0x82000580, 0x00000200, 0x05f80714, 0x59a00c0b, + 0x90040491, 0x05f816d7, 0x90040c90, 0x59a00209, + 0x59a01408, 0x900811c0, 0x80081540, 0x59a00208, + 0x59a01c07, 0x900c19c0, 0x800c1d40, 0xb0081400, + 0x58ec0003, 0x0505fa20, 0x4a01d808, 0x00102b95, + 0x1c01f000, 0x4031d800, 0x58ef400a, 0x58ec0002, + 0x82000580, 0x00000200, 0x05f806fc, 0x59a0040b, + 0x90000c90, 0x59a0040c, 0x59a0120c, 0x900811c0, + 0x80081540, 0x59a0020a, 0x59a01c09, 0x900c19c0, + 0x800c1d40, 0xb0081400, 0x58ec0003, 0x0505fa10, + 0x4a01d808, 0x00102255, 0x1c01f000, 0x48efc857, + 0x59a00208, 0x59a01408, 0x900001c0, 0x80081540, + 0x59a0020a, 0x59a01c0a, 0x900001c0, 0x800c1d40, + 0x59a00407, 0x48034000, 0x480b4001, 0x480f4002, + 0x0505f9d9, 0x05020003, 0x640b4407, 0x05f9f6e3, + 0x60400800, 0x0505f9f4, 0x4a01d808, 0x00102bc1, + 0x1c01f000, 0x4031d800, 0x58ef400a, 0x58ee580c, + 0x58ec0002, 0x82000580, 0x00000200, 0x05f806cf, + 0x48efc857, 0x49a3c857, 0x492fc857, 0x592c0a05, + 0x80040910, 0x05020003, 0x64674407, 0x05f9f6cf, + 0x4805d80b, 0x0501f009, 0x4031d800, 0x58ef400a, + 0x58ec0002, 0x82000580, 0x00000200, 0x05f806bf, + 0x48efc857, 0x49a3c857, 0x48efc857, 0x49a3c857, + 0x58ec000b, 0x80000040, 0x0500000d, 0x4801d80b, + 0x0505f9b1, 0x05020003, 0x640b4407, 0x05f9f6bb, + 0x60400800, 0x58ec1006, 0x58ec1807, 0x0505f9ca, + 0x4a01d808, 0x00102bd2, 0x1c01f000, 0x58ee580c, + 0x48efc857, 0x49a3c857, 0x492fc857, 0x492f3004, + 0x592c0405, 0x8400055e, 0x48025c05, 0x4a01d808, + 0x00102bf6, 0x1c01f000, 0x4d2c0000, 0x58ee580c, + 0x48efc857, 0x49a3c857, 0x492fc857, 0x592c0405, + 0x8400051e, 0x48025c05, 0x59a00000, 0x59a01001, + 0x59a01802, 0x80081400, 0x900c1c40, 0x912c0405, + 0x60400800, 0x5c025800, 0x0505f1b1, 0x8d0c050e, + 0x05000003, 0x64074407, 0x05f9f694, 0x916c0583, + 0x05000003, 0x641f4407, 0x05f9f690, 0x59a0320c, + 0x82183500, 0x000000ff, 0x59a28c07, 0x0505fa69, + 0x05fa068e, 0x050df9bb, 0x05fa068c, 0x83440580, + 0x000007fd, 0x05000005, 0x050df95d, 0x05000003, + 0x64274407, 0x05f9f681, 0x0505f973, 0x05020003, + 0x640b4407, 0x05f9f67d, 0x801831c0, 0x05000007, + 0x412c0800, 0x0505f96c, 0x05020003, 0x640b4407, + 0x05f9f676, 0x40065800, 0x4a025c05, 0x00008000, + 0x497a5a05, 0x052df984, 0x05020003, 0x640f4407, + 0x05f9f66e, 0x4a01d808, 0x00102c34, 0x1c01f000, + 0x592c0006, 0x82000580, 0x01000000, 0x05020003, + 0x64134407, 0x05f9f665, 0x592c0407, 0x82002d00, + 0x0000ff00, 0x82000500, 0x000000ff, 0x80000904, + 0x80040800, 0x90040486, 0x05001002, 0x60140800, + 0x4c500000, 0x4c540000, 0x4c580000, 0x912ca407, + 0x4050a800, 0x4004b000, 0x0539ff01, 0x59a00408, + 0x59a01208, 0x900811c0, 0x80081540, 0x59a0040a, + 0x59a01a0a, 0x900c19c0, 0x800c1d40, 0x912c0407, + 0x4c140000, 0x0505f962, 0x5c002800, 0x801429c0, + 0x05000003, 0x4a01d808, 0x00102c5f, 0x5c00b000, + 0x5c00a800, 0x5c00a000, 0x1c01f000, 0x4031d800, + 0x58ef400a, 0x58ee580c, 0x58ec0002, 0x82000580, + 0x00000200, 0x05f80631, 0x812e59c0, 0x05e80d88, + 0x592c0007, 0x82000500, 0xff000000, 0x80000904, + 0x800409c0, 0x05f805ef, 0x4807c857, 0x9004048e, + 0x05001002, 0x60340800, 0x592e5801, 0x812e59c0, + 0x05e80d7b, 0x4c500000, 0x4c540000, 0x4c580000, + 0x912ca406, 0x4050a800, 0x4004b000, 0x0539fed0, + 0x5c00b000, 0x5c00a800, 0x5c00a000, 0x58ec1006, + 0x58ec1807, 0x912c0406, 0x0505f135, 0x0505f90e, + 0x05020003, 0x640b4407, 0x05f9f618, 0x59a00c07, + 0x82040500, 0x0000ff00, 0x840001c0, 0x90001487, + 0x05fa1616, 0x0c01f001, 0x00102c95, 0x00102c9b, + 0x00102ca1, 0x00102ca1, 0x00102ca1, 0x00102ca2, + 0x00102ca6, 0x60340800, 0x42003800, 0x00102cb7, + 0x4a034000, 0x0010aee0, 0x0501f00f, 0x60340800, + 0x42003800, 0x00102cb7, 0x4a034000, 0x0010aeed, + 0x0501f009, 0x05f9f601, 0x60200800, 0x42003800, + 0x00102cc4, 0x0501f004, 0x60100800, 0x42003800, + 0x00102cf9, 0x59a00208, 0x59a01408, 0x900001c0, + 0x80081540, 0x59a0020a, 0x59a01c0a, 0x900001c0, + 0x800c1d40, 0x912c0406, 0x4c1c0000, 0x0505f8fe, + 0x5c003800, 0x481dd808, 0x1c01f000, 0x4031d800, + 0x58ef400a, 0x58ee580c, 0x58ec0002, 0x82000580, + 0x00000200, 0x05f805d9, 0x64075019, 0x6034b000, + 0x59a0a800, 0x912ca406, 0x0539fe89, 0x05f9f599, + 0x4031d800, 0x58ef400a, 0x58ee580c, 0x58ec0002, + 0x82000580, 0x00000200, 0x05f805cc, 0x912ca406, + 0x50500000, 0x82001500, 0x000c0016, 0x05fa05d3, + 0x90500c03, 0x50040000, 0x90001501, 0x05fa05cf, + 0x50500000, 0x90001528, 0x05000015, 0x900815a8, + 0x05fa05ca, 0x80500800, 0x50040000, 0x90001513, + 0x90081593, 0x05fa05c5, 0x80040800, 0x50040000, + 0x82001500, 0x00050000, 0x82081580, 0x00050000, + 0x05fa05be, 0x916c0580, 0x0500000e, 0x599c0019, + 0x8c00050e, 0x0502000b, 0x05f9f5b8, 0x80500800, + 0x50040000, 0x90001513, 0x05fa05b4, 0x80040800, + 0x50040000, 0x82001500, 0x00050000, 0x05fa05af, + 0x6020b000, 0x4200a800, 0x0010aed8, 0x0539fe19, + 0x05f9f564, 0x4031d800, 0x58ef400a, 0x58ee580c, + 0x58ec0002, 0x82000580, 0x00000200, 0x05f80597, + 0x6010b000, 0x4200a800, 0x0010b38b, 0x912ca406, + 0x0539fe0c, 0x850e1d50, 0x05f9f556, 0x0505f88a, + 0x05020003, 0x640b4407, 0x05f9f594, 0x912cac06, + 0x59a00c07, 0x82040500, 0x0000ff00, 0x840001c0, + 0x90001488, 0x05fa1591, 0x0c01f001, 0x00102d1b, + 0x00102d1e, 0x00102d21, 0x00102d21, 0x00102d21, + 0x00102d22, 0x00102d21, 0x00102d28, 0x4200a000, + 0x0010aee0, 0x0501f040, 0x4200a000, 0x0010aeed, + 0x0501f03d, 0x05f9f581, 0x6020b000, 0x40580800, + 0x4200a000, 0x0010aed8, 0x0539fdea, 0x0501f039, + 0x59a00a0b, 0x6473420b, 0x9004049c, 0x05f81577, + 0x603cb000, 0x4178a000, 0x0539fdea, 0x912cac06, + 0x6010b000, 0x91a8a41f, 0x0539fdde, 0x916c0580, + 0x05000004, 0x6010b000, 0x91a8a400, 0x0539fdd9, + 0x912cac12, 0x600cb000, 0x91a8a423, 0x0539fdd5, + 0x492f4000, 0x0505f854, 0x05020003, 0x640b4407, + 0x05f9f55e, 0x912cac06, 0x603cb000, 0x4178a000, + 0x0539fdd4, 0x912cac06, 0x6004b000, 0x91a8a426, + 0x0539fdc8, 0x912cac07, 0x6010b000, 0x91a8a427, + 0x0539fdc4, 0x492f4001, 0x59a25800, 0x59a00208, 0x59a01408, 0x900001c0, 0x80081540, 0x59a0020a, 0x59a01c0a, 0x900001c0, 0x800c1d40, 0x912c0406, - 0x0501fbac, 0x8c140500, 0x05000003, 0x4a01d808, - 0x00103146, 0x1c01f000, 0x4031d800, 0x58ef400a, - 0x58ee580d, 0x58ec0002, 0x82000580, 0x00000200, - 0x05f800a7, 0x812e59c0, 0x05e808a1, 0x60200800, - 0x912c0406, 0x58ec1006, 0x58ec1807, 0x0501f399, - 0x592c0006, 0x82000580, 0x01000000, 0x05020003, - 0x64134407, 0x05f9f0a2, 0x59a00208, 0x59a01408, + 0x603c0800, 0x0505f85e, 0x4a01d808, 0x00102d6a, + 0x1c01f000, 0x6034b000, 0x40580800, 0x0539fdec, + 0x59a00208, 0x59a01408, 0x900001c0, 0x80081540, + 0x59a0020a, 0x59a01c0a, 0x900001c0, 0x800c1d40, + 0x912c0406, 0x0505f04e, 0x4031d800, 0x58ef400a, + 0x58ec0002, 0x82000580, 0x00000200, 0x05f80527, + 0x59a25801, 0x58ec1006, 0x58ec1807, 0x912c0406, + 0x60340800, 0x0505f042, 0x916c0580, 0x05020003, + 0x641f4407, 0x05f9f525, 0x59a01407, 0x800811c0, + 0x0502002a, 0x497b4208, 0x05f5fd6f, 0x05000011, + 0x05f5fd51, 0x64074208, 0x0502000e, 0x4c080000, + 0x05f5fd5b, 0x5c001000, 0x05020006, 0x640b4208, + 0x05f5f947, 0x05020007, 0x64134208, 0x0501f005, + 0x640f4208, 0x05f5f921, 0x05020002, 0x64174208, + 0x59c40801, 0x82040d00, 0x00018000, 0x90040580, + 0x05020003, 0x64034407, 0x0501f069, 0x82040580, + 0x00008000, 0x05020003, 0x64074407, 0x0501f064, + 0x82040580, 0x00010000, 0x05020003, 0x640f4407, + 0x0501f05f, 0x82040580, 0x00018000, 0x05ea0c4c, + 0x64134407, 0x0501f05a, 0x59a8008d, 0x8c000502, + 0x05000004, 0x60080000, 0x40000800, 0x0501f012, + 0x59a00208, 0x4c000000, 0x0505f928, 0x5c000000, + 0x05000005, 0x4c000000, 0x0505f93b, 0x5c000000, + 0x05020007, 0x90000d84, 0x05000003, 0x90000d82, + 0x05020003, 0x600c0000, 0x600c1000, 0x48034002, + 0x59a8083b, 0x4803503b, 0x599c7819, 0x823c7d00, + 0xffff1fff, 0x800000da, 0x803c7d40, 0x483f3819, + 0x497b4208, 0x05f5fd28, 0x05000013, 0x05f5fd0a, + 0x64074208, 0x05020010, 0x4c040000, 0x4c080000, + 0x05f5fd13, 0x5c001000, 0x5c000800, 0x05020006, + 0x640b4208, 0x05f5f8fe, 0x05020007, 0x64134208, + 0x0501f005, 0x640f4208, 0x05f5f8d8, 0x05020002, + 0x64174208, 0x05f5f8d5, 0x0500000b, 0x05f5f8de, + 0x05000009, 0x05f5f8e7, 0x05000007, 0x05f5f8f0, + 0x05000005, 0x05f5f8f9, 0x05000003, 0x4807503b, + 0x05f9f4be, 0x90080583, 0x05020005, 0x59a00002, + 0x48035048, 0x640b503b, 0x0501f005, 0x4a035048, + 0xaabbccdd, 0x90080582, 0x05020011, 0x59c40006, + 0x84000500, 0x48038806, 0x0519fea1, 0x497b8880, + 0x42000000, 0x0010b33e, 0x0539fc4f, 0x4803c856, + 0x850e1d48, 0x4a038808, 0x00000200, 0x6012d800, + 0x64078805, 0x64075047, 0x05e9fe0c, 0x05f9f45d, + 0x8d0c050e, 0x05000003, 0x64074407, 0x05f9f49b, + 0x916c0583, 0x05000003, 0x641f4407, 0x05f9f497, + 0x59a28c07, 0x59a0320c, 0x82183500, 0x000000ff, + 0x0505f870, 0x05fa0495, 0x0509ffc2, 0x05fa0493, + 0x83440580, 0x000007fd, 0x05000005, 0x0509ff64, + 0x05000003, 0x60240800, 0x05f9f488, 0x0501ff7a, + 0x05020003, 0x640b4407, 0x05f9f484, 0x497a5a05, + 0x4a025c05, 0x00008000, 0x0529ffa6, 0x05020003, + 0x640f4407, 0x05f9f47d, 0x4a01d808, 0x00102e25, + 0x1c01f000, 0x592c0006, 0x82000d00, 0x0000ffff, + 0x82000500, 0xffff0000, 0x82000580, 0x01000000, + 0x05020003, 0x64134407, 0x05f9f470, 0x80040904, + 0x4c500000, 0x4c540000, 0x4c580000, 0x912ca406, + 0x4050a800, 0x4004b000, 0x0539fd15, 0x5c00b000, + 0x5c00a800, 0x5c00a000, 0x59a00208, 0x59a01408, 0x900001c0, 0x80081540, 0x59a0020a, 0x59a01c0a, - 0x900001c0, 0x800c1d40, 0x60180800, 0x912c0407, - 0x0501f388, 0x59a00a0b, 0x800409c0, 0x05f80098, - 0x0501fc49, 0x05fa0096, 0x82040480, 0x00000081, - 0x05001002, 0x60000801, 0x59c40085, 0x59881004, - 0x80081400, 0x480b1004, 0x497b8885, 0x59c400b1, - 0x48031022, 0x59c400b2, 0x48031021, 0x59c400a2, - 0x48031023, 0x598810b7, 0x598800b8, 0x80081400, - 0x598800b9, 0x80081400, 0x598800ba, 0x80081400, - 0x5988011d, 0x80081400, 0x598800bb, 0x80081400, - 0x480b1024, 0x59a00208, 0x59a01408, 0x900001c0, + 0x900001c0, 0x800c1d40, 0x912c0406, 0x0501f774, + 0x60000020, 0x50000000, 0x82000480, 0x25320001, + 0x05020007, 0x4a03c014, 0x00400040, 0x4a03c013, + 0x00400000, 0x6041d04e, 0x0515fff3, 0x496fc857, + 0x916c0580, 0x05000003, 0x646b4407, 0x05f9f44b, + 0x050dfcde, 0x05060fcf, 0x60800800, 0x59a00408, + 0x59a01208, 0x900811c0, 0x80081540, 0x59a0040a, + 0x59a01a0a, 0x900c19c0, 0x800c1d40, 0x419c0000, + 0x49a3c857, 0x0501ff50, 0x4a01d808, 0x00102e65, + 0x1c01f000, 0x4833c857, 0x4031d800, 0x58ef400a, + 0x58ec0002, 0x82000580, 0x00000200, 0x05f8042b, + 0x599c0200, 0x800001c0, 0x05f80434, 0x59a8008d, + 0x8c000502, 0x05000011, 0x599c0017, 0x84000508, + 0x48033817, 0x599c0019, 0x82000500, 0xffff1fff, + 0x82000540, 0x00004000, 0x48033819, 0x599c0018, + 0x84000510, 0x84000516, 0x82000500, 0xffffffcf, + 0x90000560, 0x0501f004, 0x8c000504, 0x05000003, + 0x599c0018, 0x48033818, 0x052dfefa, 0x850e1d20, + 0x599c0017, 0x8c000508, 0x05000003, 0x850e1d60, + 0x0501f006, 0x8c00050a, 0x05fa0414, 0x59a80806, + 0x8c040516, 0x05fa0411, 0x42024800, 0x0010b391, + 0x64124a00, 0x42000800, 0x0010b390, 0x64040800, + 0x42000800, 0x0010b38f, 0x46000800, 0x0000ffff, + 0x59240c00, 0x84040d46, 0x599c1017, 0x8c08050a, + 0x05020002, 0x84040d48, 0x8c080508, 0x05020002, + 0x84040d4a, 0x84040d4c, 0x48064c00, 0x59240a00, + 0x84040d40, 0x48064a00, 0x4803c857, 0x8c000504, + 0x05020004, 0x59c408a3, 0x84040d7a, 0x480788a3, + 0x8c000502, 0x05020004, 0x59c408a3, 0x84040d08, + 0x480788a3, 0x599c0c02, 0x8c000500, 0x0502000b, + 0x8c000516, 0x0500001f, 0x4c000000, 0x59240400, + 0x84000542, 0x840411c0, 0x80081540, 0x480a4c00, + 0x5c000000, 0x0501f008, 0x4c000000, 0x59240400, + 0x84000540, 0x840411c0, 0x80081540, 0x480a4c00, + 0x5c000000, 0xb00414bf, 0x05fa13d8, 0x82041400, + 0x001020b6, 0x50081000, 0x82081500, 0x000000ff, + 0x48064a08, 0x480a4805, 0x480a4c08, 0x8c000500, + 0x05020004, 0x480b500f, 0x600c0800, 0x0519fa97, + 0x0501ff76, 0x05000004, 0x59240400, 0x84000544, + 0x48024c00, 0x599c0019, 0x8c000506, 0x05000003, + 0x4a03b805, 0x90000000, 0x8c00050e, 0x05020005, + 0x4c000000, 0x0505f9d5, 0x5c000000, 0x05fa03bb, + 0x90000530, 0x05000003, 0x80000108, 0x0501f002, + 0x60080000, 0x48039040, 0x60080800, 0x82000400, + 0x001030ab, 0x50001000, 0x0519fa7c, 0x599c0201, + 0x82000c80, 0x00000100, 0x05f813ac, 0x82000c80, + 0x00000841, 0x05fa13a9, 0x90000507, 0x05fa03a7, + 0x599c0401, 0x80000540, 0x05f803a4, 0x59a8088d, + 0x8c040502, 0x05000005, 0x90000c90, 0x05001003, + 0x60400000, 0x48033c01, 0x850e1d52, 0x82000580, + 0x0000ffff, 0x05000002, 0x850e1d12, 0x599c0409, + 0x599c0c07, 0x80040c80, 0x05fa1394, 0x80000040, + 0x05f80392, 0x599c0209, 0x599c0a07, 0x80040c80, + 0x05fa138e, 0x80000040, 0x05f8038c, 0x91a81423, + 0x599c0818, 0x8c040510, 0x05020005, 0x50080000, + 0x8400053e, 0x44001000, 0x0501f00b, 0x59a80006, + 0x8400054a, 0x48035006, 0x4a0370e4, 0x0000c000, + 0x4c040000, 0x59c408a3, 0x84040d3a, 0x480788a3, + 0x5c000800, 0x8c040512, 0x05020009, 0x50080000, + 0x82000500, 0xfffff5ff, 0x44001000, 0x80081000, + 0x50080000, 0x8400053e, 0x44001000, 0x050dffa0, + 0x050df97b, 0x599c0201, 0x48035004, 0x05f1fbec, + 0x599c020a, 0x800001c0, 0x05000003, 0x48035035, + 0x0501f003, 0x4a035035, 0x000000c8, 0x8d0c0520, + 0x05000003, 0x0515ff40, 0x417a5000, 0x599c0003, + 0x599c0804, 0x9c0001c0, 0x9c0409c0, 0x48024801, + 0x48064802, 0x48035002, 0x48075003, 0x599c1017, + 0x8c08051c, 0x05000006, 0x599c0005, 0x599c0806, + 0x9c0001c0, 0x9c0409c0, 0x0501f003, 0x82000500, + 0xf0ffffff, 0x48024803, 0x48064804, 0x48035000, + 0x48075001, 0x42001000, 0x0010aee0, 0x48001000, + 0x48041001, 0x42001000, 0x0010aeed, 0x48001000, + 0x48041001, 0x59a00207, 0xb0000588, 0x050200b8, + 0x0501fe2d, 0x05020003, 0x640b4407, 0x05f9f337, + 0x60400800, 0x59a00208, 0x59a01408, 0x900001c0, 0x80081540, 0x59a0020a, 0x59a01c0a, 0x900001c0, - 0x800c1d40, 0x91880400, 0x0501fb5e, 0x4a01d808, - 0x00103192, 0x1c01f000, 0x4031d800, 0x58ef400a, - 0x58ec0002, 0x82000580, 0x00000200, 0x05f8005c, - 0x59a0020c, 0x8c000500, 0x05000006, 0x91880400, - 0x4803c840, 0x641bc842, 0x05011000, 0x497b8885, - 0x4a034208, 0x00000080, 0x05f9f017, 0x8d0c050e, - 0x05000003, 0x64074407, 0x05f9f055, 0x0501fc0a, - 0x05fa0057, 0x0501fb1d, 0x05020003, 0x640b4407, - 0x05f9f04f, 0x497a5a05, 0x4a025c05, 0x00008000, - 0x59a00407, 0x800001c0, 0x05f8004d, 0x82001580, - 0x000000ff, 0x05000003, 0x90001484, 0x05fa1048, - 0x40001000, 0x59a24805, 0x05f5faf0, 0x05020003, - 0x640f4407, 0x05f9f03e, 0x4a01d808, 0x001031c1, - 0x1c01f000, 0x592c0006, 0x82000580, 0x01000000, - 0x05f607f5, 0x64134407, 0x05f9f035, 0x59a01407, - 0x8c080508, 0x05020005, 0x8d0c050e, 0x05000003, - 0x64074407, 0x05f9f02e, 0x59a01c08, 0x820c0480, - 0x00001000, 0x05fa102e, 0x497b2804, 0x497b2805, - 0x497b2826, 0x497b2827, 0x497b2829, 0x497b282a, - 0x497b282c, 0x497b282d, 0x4803c856, 0x850e1d06, - 0x8c080500, 0x05000004, 0x4803c856, 0x910e1d51, - 0x0501f004, 0x8c080506, 0x05000002, 0x850e1d42, - 0x850e1d0a, 0x6006d800, 0x82081500, 0x000000e0, - 0x8008010a, 0x0c02002a, 0x050df843, 0x05020008, - 0x64075014, 0x4a035013, 0x0000aaaa, 0x0509ffbc, - 0x0501f018, 0x64035014, 0x05fdf7fb, 0x497b5013, - 0x0505fb5d, 0x0515fd88, 0x0519f8db, 0x0515fd72, - 0x59a00a08, 0x480788a7, 0x59c400a3, 0x82000500, - 0xfeffffff, 0x82000540, 0x80018000, 0x40000800, - 0x84040d20, 0x480388a3, 0x480788a3, 0x497b5036, - 0x60b40800, 0x42001000, 0x00103dce, 0x0515f8fc, - 0x59a00408, 0x800000c2, 0x800008c4, 0x8005d400, - 0x61fc01ff, 0x050df820, 0x05000003, 0x59a00208, - 0x80000110, 0x0501fbb5, 0x05f5f7a7, 0x001031ea, - 0x001031ec, 0x001031f3, 0x001021ff, 0x001031f1, - 0x001021ff, 0x001021ff, 0x001021ff, 0x916c0583, - 0x05000003, 0x641f4407, 0x05f5f7dd, 0x0501fb92, - 0x05f607df, 0x59a00408, 0x59a00a08, 0x900409c0, - 0x80040d40, 0x4805d806, 0x59a0040a, 0x59a00a0a, - 0x900409c0, 0x80040d40, 0x4805d807, 0x6401d801, - 0x0501fa9a, 0x05020003, 0x640b4407, 0x05f5f7cc, - 0x417a8800, 0x497b4001, 0x912c0406, 0x48034002, - 0x59a00407, 0x8c000504, 0x0502008c, 0x4c5c0000, - 0x4c600000, 0x4c640000, 0x4178b800, 0x59a0c407, - 0x59a0c802, 0x59a2440b, 0x0509fab6, 0x05020027, - 0x0509fa5b, 0x05000003, 0x0509f997, 0x05020023, - 0x8c60053e, 0x05020020, 0x8c600500, 0x05000008, - 0x59340009, 0x4400c800, 0x8064c800, 0x59340008, - 0x4400c800, 0x8064c800, 0x0501f007, 0x59340007, - 0x4400c800, 0x8064c800, 0x59340006, 0x4400c800, - 0x8064c800, 0x83440580, 0x000007fe, 0x0500000b, - 0x83440580, 0x000007fc, 0x05000008, 0x0509fa51, - 0x05000003, 0x85468d5e, 0x0501f004, 0x0509f956, - 0x05020002, 0x85468d5e, 0x4544c800, 0x85468d1e, - 0x8064c800, 0x905cbc0c, 0x81468800, 0x83440480, - 0x000007f0, 0x0500100c, 0x8c600506, 0x05000025, - 0x83440580, 0x000007f0, 0x05020003, 0x61fa880f, - 0x0501f005, 0x83440580, 0x000007ff, 0x0502001d, - 0x61f2880f, 0x905c05bc, 0x05fe07c8, 0x59a00001, - 0x805c0400, 0x48034001, 0x8c60053e, 0x05020007, - 0x59a00a0b, 0x800409c0, 0x05000006, 0x80040480, - 0x05021004, 0x8460c57e, 0x4178b800, 0x05fdf7bb, - 0x49474000, 0x485dd805, 0x59a00002, 0x4801d803, - 0x40ec1000, 0x0001f81c, 0x4a01d808, 0x001032ba, - 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x1c01f000, - 0x8c60053e, 0x05020019, 0x805cb9c0, 0x05000021, - 0x59a00001, 0x805c0400, 0x48034001, 0x59a00a0b, - 0x800409c0, 0x05000005, 0x80040480, 0x05021003, - 0x4178b800, 0x0501f00d, 0x59a00801, 0x48074407, - 0x485dd805, 0x59a00002, 0x4801d803, 0x4a01d808, - 0x001021b2, 0x40ec1000, 0x5c00c800, 0x5c00c000, - 0x5c00b800, 0x0001f01c, 0x59a00001, 0x805c0c00, - 0x59a0020b, 0x80040480, 0x48034208, 0x642b4407, - 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x05f5f748, - 0x59a00801, 0x48074407, 0x5c00c800, 0x5c00c000, - 0x5c00b800, 0x05f5f700, 0x4031d800, 0x58ef400a, - 0x58ec0002, 0x82000580, 0x00000200, 0x05f40734, - 0x59a28800, 0x05fdf776, 0x4c5c0000, 0x4c600000, - 0x4c640000, 0x4178b800, 0x59a0c407, 0x59a0c802, - 0x59a2440b, 0x0509fa2b, 0x05020029, 0x0509f9d0, - 0x05000003, 0x0509f90c, 0x05020025, 0x8c60053e, - 0x05020022, 0x83440580, 0x000007fe, 0x0500000f, - 0x83440580, 0x000007fc, 0x0500000c, 0x0509f9d5, - 0x05000005, 0x59340403, 0x8400055e, 0x48026c03, - 0x0501f006, 0x0509f8d8, 0x05020004, 0x59340403, - 0x8400055e, 0x48026c03, 0x4134a000, 0x4064a800, - 0x6018b000, 0x0535fd7b, 0x59340007, 0x4400a800, - 0x59340006, 0x4800a801, 0x59340009, 0x4800a802, - 0x59340008, 0x4800a803, 0x59340403, 0x8400051e, - 0x48026c03, 0x9064cc0a, 0x905cbc28, 0x81468800, - 0x83440480, 0x000007f0, 0x0500100c, 0x8c600506, - 0x05000026, 0x83440580, 0x000007f0, 0x05020003, - 0x61fa880f, 0x0501f005, 0x83440580, 0x000007ff, - 0x0502001e, 0x61f2880f, 0x905c05a8, 0x05000002, - 0x05fdf7c4, 0x59a00001, 0x805c0400, 0x48034001, - 0x8c60053e, 0x05020007, 0x59a00a0b, 0x800409c0, - 0x05000006, 0x80040480, 0x05021004, 0x8460c57e, - 0x4178b800, 0x05fdf7b7, 0x49474000, 0x485dd805, - 0x59a00002, 0x4801d803, 0x40ec1000, 0x0001f81c, - 0x4a01d808, 0x00103348, 0x5c00c800, 0x5c00c000, - 0x5c00b800, 0x1c01f000, 0x8c60053e, 0x05020019, - 0x805cb9c0, 0x05000021, 0x59a00001, 0x805c0400, - 0x48034001, 0x59a00a0b, 0x800409c0, 0x05000005, - 0x80040480, 0x05021003, 0x4178b800, 0x0501f00d, - 0x59a00801, 0x48074407, 0x485dd805, 0x59a00002, - 0x4801d803, 0x4a01d808, 0x001021b2, 0x40ec1000, - 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x0001f01c, - 0x59a00001, 0x805c0c00, 0x59a0020b, 0x80040480, - 0x48034208, 0x642b4407, 0x5c00c800, 0x5c00c000, - 0x5c00b800, 0x05f5f6ba, 0x59a00801, 0x48074407, - 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x05f5f672, - 0x4031d800, 0x58ef400a, 0x58ec0002, 0x82000580, - 0x00000200, 0x05f406a6, 0x59a28800, 0x05fdf773, - 0x61f82800, 0x59a00c07, 0x59a01208, 0x59a01c08, - 0x59a0220a, 0x82040500, 0x0000ff00, 0x840001c0, - 0x900034a0, 0x05f416a6, 0x80140480, 0x05f416a4, - 0x82040500, 0x000000ff, 0x900034a0, 0x05f416a0, - 0x80140480, 0x05f4169e, 0x82080500, 0x0000ff00, - 0x840001c0, 0x900034a0, 0x05f41699, 0x80140480, - 0x05f41697, 0x82080500, 0x000000ff, 0x900034a0, - 0x05f41693, 0x80140480, 0x05f41691, 0x820c0500, - 0x0000ff00, 0x840001c0, 0x900034a0, 0x05f4168c, - 0x80140480, 0x05f4168a, 0x820c0500, 0x000000ff, - 0x900034a0, 0x05f41686, 0x80140480, 0x05f41684, - 0x82100500, 0x0000ff00, 0x840001c0, 0x900034a0, - 0x05f4167f, 0x80140480, 0x05f4167d, 0x82100500, - 0x000000ff, 0x900034a0, 0x05f41679, 0x80140480, - 0x05f41677, 0x900401c0, 0x80080d40, 0x900c01c0, - 0x80101d40, 0x91a83431, 0x44043000, 0x80183000, - 0x440c3000, 0x05f5f628, 0x916c0583, 0x05000003, - 0x641f4407, 0x05f5f666, 0x0501fa1b, 0x05f60668, + 0x800c1d40, 0x82081400, 0x00000080, 0xb0083400, + 0x481b4002, 0x900c3440, 0x481b4003, 0x912c0405, + 0x0501fe39, 0x4a01d808, 0x00102f7c, 0x1c01f000, + 0x4031d800, 0x58ef400a, 0x58ee580c, 0x58ec0002, + 0x82000580, 0x00000200, 0x05f80314, 0x592c1005, + 0x480bc857, 0x80080120, 0x42024800, 0x0010b391, + 0x48024c06, 0x82081500, 0x0000ffff, 0x599c0818, + 0x90040d30, 0x90040580, 0x05020004, 0xb00804be, + 0x05fa1312, 0x0501f001, 0x0539fbef, 0x05000014, + 0x82080480, 0x00000100, 0x05fa130c, 0x42000000, + 0x0010b390, 0x44080000, 0x800811c0, 0x05f80307, + 0x40080800, 0x42024800, 0x0010b391, 0x912e5c06, + 0x592c0400, 0x8c000506, 0x05020012, 0x59240200, + 0x84000500, 0x48024a00, 0x0501f00e, 0x82080480, + 0x000000ff, 0x05fa12f9, 0x80080800, 0x42000000, + 0x0010b390, 0x44040000, 0x800811c0, 0x0500006c, + 0x42024800, 0x0010b39c, 0x80040840, 0x912e5c06, + 0x600c4000, 0x592c0400, 0x8c000506, 0x05000012, + 0x59a8108d, 0x90081506, 0x05fa02e8, 0x8c00050a, + 0x05020003, 0x8d0c0520, 0x05f802e4, 0x64164a00, + 0x90001503, 0x05000006, 0x840011c0, 0x82081500, + 0x000000ff, 0x480a4a08, 0x0501f003, 0x82000500, + 0x000000ff, 0x48024c00, 0x592c0001, 0x592c1002, + 0x9c0001c0, 0x9c0811c0, 0x48024801, 0x480a4802, + 0x599c1817, 0x8c0c051c, 0x05000006, 0x592c0003, + 0x592c1004, 0x9c0001c0, 0x9c0811c0, 0x0501f003, + 0x82000500, 0xf0ffffff, 0x48024803, 0x480a4804, + 0x912e5c05, 0x91264c0b, 0x80040840, 0x0500001d, + 0x80204040, 0x05fe07d4, 0x48074000, 0x49274001, + 0x603c0800, 0x59a01002, 0x59a01803, 0x9008343c, + 0x481b4002, 0x900c3440, 0x481b4003, 0x58ee580c, + 0x912c0405, 0x0501fdc4, 0x4a01d808, 0x00102ff1, + 0x1c01f000, 0x4031d800, 0x58ef400a, 0x58ec0002, + 0x82000580, 0x00000200, 0x05f802a0, 0x58ee580c, + 0x912e5c05, 0x59a00800, 0x59a24801, 0x05fdf7b9, + 0x0539fb85, 0x05000010, 0x42006800, 0x0010b391, + 0x4200b000, 0x0010b390, 0x5058b000, 0x58340400, + 0x8c000506, 0x05000005, 0x58340200, 0x8400055e, + 0x48006a00, 0x0501f004, 0x90346c0b, 0x8058b040, + 0x05fe07f7, 0x42006800, 0x0010b391, 0x4200b000, + 0x0010b390, 0x5058b000, 0x8058b040, 0x05000008, + 0x42024800, 0x0010b39c, 0x58340206, 0x48024a06, + 0x91264c0b, 0x8058b040, 0x05fe07fc, 0x599c1019, + 0x82081500, 0x0000e000, 0x497b4208, 0x05f5face, + 0x05000012, 0x05f5fab0, 0x64074208, 0x0502000f, + 0x4c080000, 0x05f5faba, 0x5c001000, 0x05020007, + 0x640b4208, 0x82080580, 0x00008000, 0x05020007, + 0x64134208, 0x0501f005, 0x640f4208, 0x90080580, + 0x05020002, 0x64174208, 0x90080580, 0x05020007, + 0x6403503b, 0x60040000, 0x05f5f86a, 0x60040000, + 0x05f5f83e, 0x0501f02b, 0x82080580, 0x00002000, + 0x05020008, 0x6407503b, 0x60000000, 0x05f5f861, + 0x60000000, 0x05f5f835, 0x05f5fc13, 0x0501f021, + 0x82080580, 0x00004000, 0x05020004, 0x640b503b, + 0x64075047, 0x05fdf7f9, 0x82080580, 0x00006000, + 0x0502000f, 0x59a8085c, 0x82040d80, 0x01391077, + 0x05020004, 0x59e00813, 0x8c040500, 0x05fa024f, + 0x640f503b, 0x60080000, 0x05f5f84a, 0x60080000, + 0x05f5f81e, 0x05fdf7e9, 0x0501f00a, 0x82080580, + 0x00008000, 0x05fa0245, 0x05f5fc06, 0x6413503b, + 0x600c0000, 0x05f5f83f, 0x600c0000, 0x05f5f813, + 0x599c1019, 0x82081500, 0x0000e000, 0x4c080000, + 0x0501fea1, 0x5c001000, 0x05020004, 0x82080580, + 0x00004000, 0x0500000b, 0x0501fe68, 0x05000003, + 0x0501fe7d, 0x05020009, 0x82080580, 0x00008000, + 0x05000004, 0x82080580, 0x00004000, 0x05020003, + 0x600010c0, 0x0501f004, 0x599c0019, 0x8c000518, + 0x05000005, 0x8008111a, 0x480b5048, 0x640b503b, + 0x64075047, 0x599c0019, 0x8c000520, 0x05000001, + 0x4a035013, 0x0000aaaa, 0x599c1018, 0x90081530, + 0x90080d80, 0x05000005, 0x90080d90, 0x05000008, + 0x90080da0, 0x05020002, 0x48075013, 0x0501fdba, + 0x05000007, 0x4803c856, 0x850e1d46, 0x05f1fde2, + 0x59a8001f, 0x80040540, 0x4803501f, 0x49f3c857, + 0x42001000, 0x00104a82, 0x0515fc4e, 0x42001000, + 0x00104a75, 0x0515fd93, 0x4a038805, 0xffffffff, + 0x0501fe58, 0x05000005, 0x4a03c014, 0x00400040, + 0x4a03c013, 0x00400000, 0x59a0001e, 0x84000540, + 0x4803401e, 0x49f3c857, 0x05f9f1b2, 0x00000018, + 0x0000000c, 0x00000018, 0x00000020, 0x916c0580, + 0x05020003, 0x601c0800, 0x05f9f1ec, 0x60800800, + 0x59a00408, 0x59a01208, 0x900811c0, 0x80081540, + 0x59a0040a, 0x59a01a0a, 0x900c19c0, 0x800c1d40, + 0x419c0000, 0x0501f4fa, 0x8d0c050e, 0x05000003, + 0x64074407, 0x05f9f1dd, 0x050dfa70, 0x05020003, + 0x645b4407, 0x05f9f1d9, 0x59a80073, 0x8c000500, + 0x0500000e, 0x64034407, 0x60800800, 0x59a00408, + 0x59a01208, 0x900811c0, 0x80081540, 0x59a0040a, + 0x59a01a0a, 0x900c19c0, 0x800c1d40, 0x42000000, + 0x0010cea4, 0x0501f4e2, 0x64074407, 0x6080b000, + 0x4200a800, 0x0010cea4, 0x4200a000, 0xffffffff, + 0x4450a800, 0x8054a800, 0x8058b040, 0x05fe07fd, + 0x4d440000, 0x4d340000, 0x42028800, 0xffffffff, + 0x42002000, 0xffffffff, 0x60043000, 0x60043800, + 0x42001800, 0x0010cea4, 0x59a8100f, 0x82081500, + 0x000000ff, 0x40180000, 0x0c01f001, 0x001030f3, + 0x001030f6, 0x001030fa, 0x001030fe, 0x82102500, + 0xffffff00, 0x0501f014, 0x82102500, 0xffff00ff, + 0x840811c0, 0x0501f010, 0x82102500, 0xff00ffff, + 0x900811c0, 0x0501f00c, 0x82102500, 0x00ffffff, + 0x9c0801c0, 0x80102540, 0x44101800, 0x42003000, + 0xffffffff, 0x42002000, 0xffffffff, 0x800c1800, + 0x0501f003, 0x40080000, 0x80102540, 0x81468800, + 0xb1442cbf, 0x05021012, 0x4c080000, 0x4c0c0000, + 0x4c180000, 0x4c1c0000, 0x0001fae7, 0x5c003800, + 0x5c003000, 0x5c001800, 0x5c001000, 0x05fe07f4, + 0x0509fc70, 0x05fe07f2, 0x80183000, 0x801c3800, + 0x59341202, 0x40180000, 0x0c01f7d1, 0x82100580, + 0xffffffff, 0x05000002, 0x44101800, 0x42001800, + 0x0010cea4, 0x500c0000, 0x82000500, 0xffffff00, + 0x801c0540, 0x44001800, 0x5c026800, 0x5c028800, + 0x60800800, 0x59a00408, 0x59a01208, 0x900811c0, + 0x80081540, 0x59a0040a, 0x59a01a0a, 0x900c19c0, + 0x800c1d40, 0x42000000, 0x0010cea4, 0x0501f480, + 0x59a28c07, 0x0501fd43, 0x05fa0168, 0x0509fc95, + 0x05fa0166, 0x0501fc54, 0x05020003, 0x640b4407, + 0x05f9f15e, 0x59a0020c, 0x8c000500, 0x05000003, + 0x0509fc44, 0x0502050e, 0x59a0020c, 0x8c000502, + 0x05000015, 0x83440480, 0x000007f0, 0x05021012, + 0x0509fc45, 0x05020010, 0x497a5a05, 0x4a025c05, + 0x00008000, 0x59a24805, 0x0529fc48, 0x05020003, + 0x640f4407, 0x05f9f149, 0x4a01d808, 0x00103159, + 0x1c01f000, 0x59a28c07, 0x59a2440b, 0x0509fc75, + 0x05fa0146, 0x4c580000, 0x4c500000, 0x4c540000, + 0x6028b000, 0x4134a000, 0x912e5c02, 0x412ca800, + 0x0539f9ac, 0x912cac06, 0x4054a000, 0x6010b000, + 0x0539f9e3, 0x5c00a800, 0x5c00a000, 0x5c00b000, + 0x592c0802, 0x82040500, 0x00ff00ff, 0x900001c0, + 0x82041500, 0xff00ff00, 0x80080540, 0x48025802, + 0x592c0801, 0x82040500, 0x00ff00ff, 0x900001c0, + 0x82041500, 0xff00ff00, 0x80080540, 0x48025801, + 0x60280800, 0x59a00408, 0x59a01208, 0x900811c0, + 0x80081540, 0x59a0040a, 0x59a01a0a, 0x900c19c0, + 0x800c1d40, 0x412c0000, 0x0501f431, 0x496fc857, + 0x496f4407, 0x497b4208, 0x05f5f963, 0x05000015, + 0x05f5f945, 0x64074208, 0x05020012, 0x4c080000, + 0x05f5f94f, 0x5c001000, 0x05020008, 0x640b4208, + 0x916c0580, 0x0500000b, 0x05f1fd39, 0x05020009, + 0x64134208, 0x0501f007, 0x640f4208, 0x916c0580, + 0x05000004, 0x05f1fd11, 0x05020002, 0x64174208, + 0x05f9f0bc, 0x59a28c07, 0x0501fcda, 0x05fa00ff, + 0x0509fc2c, 0x05fa00fd, 0x916c0583, 0x05000003, + 0x641f4407, 0x05f9f0f5, 0x91340c06, 0x59a0020c, + 0x8c000500, 0x05000002, 0x91340c08, 0x58040001, + 0x4803440a, 0x900001c0, 0x4803420a, 0x50040000, + 0x48034408, 0x900001c0, 0x48034208, 0x59340200, + 0x48034407, 0x05f9f0a3, 0x8d0c050e, 0x05000003, + 0x64074407, 0x05f9f0e1, 0x59a0220c, 0x8c100500, + 0x05020021, 0x8c100506, 0x05020004, 0x59a03209, + 0x90180483, 0x05fa10dd, 0x59a28c07, 0x0001fae7, + 0x05fa00da, 0x0509fbae, 0x05000003, 0x64274407, + 0x05f9f0d2, 0x0501fbc4, 0x05020003, 0x640b4407, + 0x05f9f0ce, 0x59a0220c, 0x8c100506, 0x05000004, + 0x59343002, 0x82183500, 0x00ffffff, 0x497a5a05, + 0x4a025c05, 0x00008000, 0x0529fb88, 0x05020003, + 0x640f4407, 0x05f9f0c1, 0x4a01d808, 0x0010321f, + 0x1c01f000, 0x59a28c07, 0x0001fae7, 0x05fa00bf, + 0x0509fb93, 0x05000003, 0x64274407, 0x05f9f0b7, + 0x0501fba9, 0x05020003, 0x640b4407, 0x05f9f0b3, + 0x497a5a05, 0x4a025c05, 0x00008000, 0x0501fba2, + 0x05020003, 0x640b4407, 0x05f9f0ac, 0x592e5800, + 0x0529fb81, 0x05020003, 0x640f4407, 0x05f9f0a7, + 0x4a01d808, 0x001031fb, 0x1c01f000, 0x592c2806, + 0x82140d80, 0x01000000, 0x05020003, 0x64134407, + 0x05f9f09e, 0x60200800, 0x59a00208, 0x59a01408, + 0x900001c0, 0x80081540, 0x59a0020a, 0x59a01c0a, + 0x900001c0, 0x800c1d40, 0x912c0406, 0x0501fbac, + 0x8c140500, 0x05000003, 0x4a01d808, 0x00103211, + 0x1c01f000, 0x4031d800, 0x58ef400a, 0x58ee580d, + 0x58ec0002, 0x82000580, 0x00000200, 0x05f8007f, + 0x812e59c0, 0x05e40fd6, 0x60200800, 0x912c0406, + 0x58ec1006, 0x58ec1807, 0x0501f399, 0x592c0006, + 0x82000580, 0x01000000, 0x05020003, 0x64134407, + 0x05f9f07a, 0x59a00208, 0x59a01408, 0x900001c0, + 0x80081540, 0x59a0020a, 0x59a01c0a, 0x900001c0, + 0x800c1d40, 0x60180800, 0x912c0407, 0x0501f388, + 0x59a00a0b, 0x800409c0, 0x05f80070, 0x0501fc49, + 0x05fa006e, 0x82040480, 0x00000081, 0x05001002, + 0x60000801, 0x59c40085, 0x59881004, 0x80081400, + 0x480b1004, 0x497b8885, 0x59c400b1, 0x48031022, + 0x59c400b2, 0x48031021, 0x59c400a2, 0x48031023, + 0x598810b7, 0x598800b8, 0x80081400, 0x598800b9, + 0x80081400, 0x598800ba, 0x80081400, 0x5988011d, + 0x80081400, 0x598800bb, 0x80081400, 0x480b1024, + 0x59a00208, 0x59a01408, 0x900001c0, 0x80081540, + 0x59a0020a, 0x59a01c0a, 0x900001c0, 0x800c1d40, + 0x91880400, 0x0501fb5e, 0x4a01d808, 0x0010325d, + 0x1c01f000, 0x4031d800, 0x58ef400a, 0x58ec0002, + 0x82000580, 0x00000200, 0x05f80034, 0x59a0020c, + 0x8c000500, 0x05000006, 0x91880400, 0x4803c840, + 0x641bc842, 0x05011000, 0x497b8885, 0x4a034208, + 0x00000080, 0x05f5f7ef, 0x8d0c050e, 0x05000003, + 0x64074407, 0x05f9f02d, 0x0501fc0a, 0x05fa002f, + 0x0501fb1d, 0x05020003, 0x640b4407, 0x05f9f027, + 0x497a5a05, 0x4a025c05, 0x00008000, 0x59a00407, + 0x800001c0, 0x05f80025, 0x82001580, 0x000000ff, + 0x05000003, 0x90001484, 0x05fa1020, 0x40001000, + 0x59a24805, 0x05f5fa27, 0x05020003, 0x640f4407, + 0x05f9f016, 0x4a01d808, 0x0010328c, 0x1c01f000, + 0x592c0006, 0x82000580, 0x01000000, 0x05f607cd, + 0x64134407, 0x05f9f00d, 0x59a01407, 0x8c080508, + 0x05020005, 0x8d0c050e, 0x05000003, 0x64074407, + 0x05f9f006, 0x59a01c08, 0x820c0480, 0x00001000, + 0x05fa1006, 0x497b2804, 0x497b2805, 0x497b2826, + 0x497b2827, 0x497b2829, 0x497b282a, 0x497b282c, + 0x497b282d, 0x4803c856, 0x850e1d06, 0x8c080500, + 0x05000004, 0x4803c856, 0x910e1d51, 0x0501f004, + 0x8c080506, 0x05000002, 0x850e1d42, 0x850e1d0a, + 0x6006d800, 0x82081500, 0x000000e0, 0x8008010a, + 0x0c02002a, 0x050df87d, 0x05020008, 0x64075014, + 0x4a035013, 0x0000aaaa, 0x0509fff6, 0x0501f018, + 0x64035014, 0x05fdf7fb, 0x497b5013, 0x0505fb65, + 0x0515fe7f, 0x0519f9d2, 0x0515fe69, 0x59a00a08, + 0x480788a7, 0x59c400a3, 0x82000500, 0xfeffffff, + 0x82000540, 0x80018000, 0x40000800, 0x84040d20, + 0x480388a3, 0x480788a3, 0x497b5036, 0x60b40800, + 0x42001000, 0x00103ea1, 0x0515f9f3, 0x59a00408, + 0x800000c2, 0x800008c4, 0x8005d400, 0x61fc01ff, + 0x050df85a, 0x05000003, 0x59a00208, 0x80000110, + 0x0501fbb5, 0x05f5f77f, 0x001032b5, 0x001032b7, + 0x001032be, 0x001022a2, 0x001032bc, 0x001022a2, + 0x001022a2, 0x001022a2, 0x916c0583, 0x05000003, + 0x641f4407, 0x05f5f7b5, 0x0501fb92, 0x05f607b7, 0x59a00408, 0x59a00a08, 0x900409c0, 0x80040d40, 0x4805d806, 0x59a0040a, 0x59a00a0a, 0x900409c0, - 0x80040d40, 0x4805d807, 0x6401d801, 0x0501f923, - 0x05020003, 0x640b4407, 0x05f5f655, 0x417a8800, - 0x497b4001, 0x912c0405, 0x48034002, 0x4c5c0000, - 0x4c600000, 0x4c640000, 0x4178b800, 0x4178c800, - 0x59a0c002, 0x0509f943, 0x0502000a, 0x0509f8e8, - 0x05020008, 0x8c64053e, 0x05020005, 0x59340002, - 0x4800c000, 0x4944c001, 0x9060c402, 0x905cbc08, - 0x81468800, 0x83440480, 0x00000800, 0x0502101f, - 0xb05c0480, 0x05021002, 0x05fdf7ef, 0x59a00001, - 0x805c0400, 0x48034001, 0x8c64053e, 0x05000003, - 0x4178b800, 0x05fdf7e8, 0x59a00a0b, 0x800409c0, - 0x05000006, 0x80040480, 0x05021004, 0x4178b800, - 0x8464cd7e, 0x05fdf7e0, 0x49474000, 0x485dd805, - 0x59a00002, 0x4801d803, 0x40ec1000, 0x0001f81c, - 0x4a01d808, 0x0010340a, 0x5c00c800, 0x5c00c000, - 0x5c00b800, 0x1c01f000, 0x8c64053e, 0x0502001a, - 0x805cb9c0, 0x05000022, 0x59a00001, 0x805c0400, - 0x48034001, 0x59a00a0b, 0x800409c0, 0x05000005, - 0x80040480, 0x05021003, 0x4178b800, 0x0501f00e, - 0x59a00801, 0x80040906, 0x48074407, 0x485dd805, - 0x59a00002, 0x4801d803, 0x4a01d808, 0x001021b2, + 0x80040d40, 0x4805d807, 0x6401d801, 0x0501fa9a, + 0x05020003, 0x640b4407, 0x05f5f7a4, 0x417a8800, + 0x497b4001, 0x912c0406, 0x48034002, 0x59a00407, + 0x8c000504, 0x0502008c, 0x4c5c0000, 0x4c600000, + 0x4c640000, 0x4178b800, 0x59a0c407, 0x59a0c802, + 0x59a2440b, 0x0509fac7, 0x05020027, 0x0509fa6c, + 0x05000003, 0x0509f9a6, 0x05020023, 0x8c60053e, + 0x05020020, 0x8c600500, 0x05000008, 0x59340009, + 0x4400c800, 0x8064c800, 0x59340008, 0x4400c800, + 0x8064c800, 0x0501f007, 0x59340007, 0x4400c800, + 0x8064c800, 0x59340006, 0x4400c800, 0x8064c800, + 0x83440580, 0x000007fe, 0x0500000b, 0x83440580, + 0x000007fc, 0x05000008, 0x0509fa62, 0x05000003, + 0x85468d5e, 0x0501f004, 0x0509f965, 0x05020002, + 0x85468d5e, 0x4544c800, 0x85468d1e, 0x8064c800, + 0x905cbc0c, 0x81468800, 0x83440480, 0x000007f0, + 0x0500100c, 0x8c600506, 0x05000025, 0x83440580, + 0x000007f0, 0x05020003, 0x61fa880f, 0x0501f005, + 0x83440580, 0x000007ff, 0x0502001d, 0x61f2880f, + 0x905c05bc, 0x05fe07c8, 0x59a00001, 0x805c0400, + 0x48034001, 0x8c60053e, 0x05020007, 0x59a00a0b, + 0x800409c0, 0x05000006, 0x80040480, 0x05021004, + 0x8460c57e, 0x4178b800, 0x05fdf7bb, 0x49474000, + 0x485dd805, 0x59a00002, 0x4801d803, 0x40ec1000, + 0x0001f81c, 0x4a01d808, 0x00103385, 0x5c00c800, + 0x5c00c000, 0x5c00b800, 0x1c01f000, 0x8c60053e, + 0x05020019, 0x805cb9c0, 0x05000021, 0x59a00001, + 0x805c0400, 0x48034001, 0x59a00a0b, 0x800409c0, + 0x05000005, 0x80040480, 0x05021003, 0x4178b800, + 0x0501f00d, 0x59a00801, 0x48074407, 0x485dd805, + 0x59a00002, 0x4801d803, 0x4a01d808, 0x00102255, 0x40ec1000, 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x0001f01c, 0x59a00001, 0x805c0c00, 0x59a0020b, 0x80040480, 0x48034208, 0x642b4407, 0x5c00c800, - 0x5c00c000, 0x5c00b800, 0x05f5f5f9, 0x59a00801, - 0x80040906, 0x48074407, 0x5c00c800, 0x5c00c000, - 0x5c00b800, 0x05f5f5b0, 0x4031d800, 0x58ef400a, - 0x58ec0002, 0x82000580, 0x00000200, 0x05f405e4, - 0x59a28800, 0x05fdf79a, 0x8d0c050e, 0x05000003, - 0x64074407, 0x05f5f5e6, 0x59a8021b, 0x8c00050a, - 0x05020005, 0x8c000506, 0x05020003, 0x645b4407, - 0x05f5f5df, 0x0501f994, 0x05f605e1, 0x0501f8a7, - 0x05020003, 0x640b4407, 0x05f5f5d9, 0x59a00c07, - 0x80040902, 0x59a00408, 0x59a01208, 0x900811c0, - 0x80081540, 0x59a0040a, 0x59a01a0a, 0x900c19c0, - 0x800c1d40, 0x912c0406, 0x0501f8b8, 0x4a01d808, - 0x00103432, 0x1c01f000, 0x4031d800, 0x58ef400a, - 0x58ee580c, 0x58ec0002, 0x82000580, 0x00000200, - 0x05f405bb, 0x592c000a, 0x59a8380f, 0x0511fa42, - 0x05040cd9, 0x05f605c2, 0x49474001, 0x481a6802, - 0x592c000b, 0x82001d80, 0x70000000, 0x05020005, - 0x0501f882, 0x0502000c, 0x640b4407, 0x05f5f5b4, - 0x82001d80, 0x72000000, 0x05f605b5, 0x0501f87b, - 0x0502087a, 0x05020879, 0x05020003, 0x640b4407, - 0x05f5f5ab, 0x58ee580c, 0x4a025c05, 0x00008000, - 0x497a5a05, 0x592c3209, 0x80183102, 0x592c1801, - 0x4a001806, 0x01000000, 0x0525ff4c, 0x05020003, - 0x640f4407, 0x05f5f59e, 0x4a01d808, 0x00103461, - 0x1c01f000, 0x592c4000, 0x592c0006, 0x82000580, - 0x01000000, 0x05020003, 0x64134407, 0x05f5f594, - 0x4c580000, 0x4c500000, 0x4c540000, 0x912c3c06, - 0x401ca000, 0x401ca800, 0x5820280b, 0x6008b000, - 0x82143580, 0x70000000, 0x05000002, 0x603cb000, - 0x0535fc27, 0x5c00a800, 0x5c00a000, 0x5c00b000, - 0x401c0000, 0x58201007, 0x58201808, 0x58202206, - 0x80102102, 0x82143580, 0x70000000, 0x05020005, - 0x90103482, 0x05f4157e, 0x60080800, 0x0501f069, - 0x82143580, 0x72000000, 0x05f60579, 0x901034aa, - 0x05f41577, 0x603c0800, 0x0501f862, 0x4a01d808, - 0x0010348e, 0x1c01f000, 0x4031d800, 0x58ef400a, - 0x58ee580d, 0x58ec0002, 0x82000580, 0x00000200, - 0x05f4055f, 0x592e5800, 0x912c0c06, 0x4c580000, - 0x4c500000, 0x4c540000, 0x4004a000, 0x4004a800, - 0x603cb000, 0x0535fbfe, 0x5c00a800, 0x5c00a000, - 0x5c00b000, 0x40ec1000, 0x64001001, 0x64f01005, - 0x48041003, 0x0001f81c, 0x4a01d808, 0x001034a9, + 0x5c00c000, 0x5c00b800, 0x05f5f720, 0x59a00801, + 0x48074407, 0x5c00c800, 0x5c00c000, 0x5c00b800, + 0x05f5f6d8, 0x4031d800, 0x58ef400a, 0x58ec0002, + 0x82000580, 0x00000200, 0x05f4070c, 0x59a28800, + 0x05fdf776, 0x4c5c0000, 0x4c600000, 0x4c640000, + 0x4178b800, 0x59a0c407, 0x59a0c802, 0x59a2440b, + 0x0509fa3c, 0x05020029, 0x0509f9e1, 0x05000003, + 0x0509f91b, 0x05020025, 0x8c60053e, 0x05020022, + 0x83440580, 0x000007fe, 0x0500000f, 0x83440580, + 0x000007fc, 0x0500000c, 0x0509f9e6, 0x05000005, + 0x59340403, 0x8400055e, 0x48026c03, 0x0501f006, + 0x0509f8e7, 0x05020004, 0x59340403, 0x8400055e, + 0x48026c03, 0x4134a000, 0x4064a800, 0x6018b000, + 0x0535ff60, 0x59340007, 0x4400a800, 0x59340006, + 0x4800a801, 0x59340009, 0x4800a802, 0x59340008, + 0x4800a803, 0x59340403, 0x8400051e, 0x48026c03, + 0x9064cc0a, 0x905cbc28, 0x81468800, 0x83440480, + 0x000007f0, 0x0500100c, 0x8c600506, 0x05000026, + 0x83440580, 0x000007f0, 0x05020003, 0x61fa880f, + 0x0501f005, 0x83440580, 0x000007ff, 0x0502001e, + 0x61f2880f, 0x905c05a8, 0x05000002, 0x05fdf7c4, + 0x59a00001, 0x805c0400, 0x48034001, 0x8c60053e, + 0x05020007, 0x59a00a0b, 0x800409c0, 0x05000006, + 0x80040480, 0x05021004, 0x8460c57e, 0x4178b800, + 0x05fdf7b7, 0x49474000, 0x485dd805, 0x59a00002, + 0x4801d803, 0x40ec1000, 0x0001f81c, 0x4a01d808, + 0x00103413, 0x5c00c800, 0x5c00c000, 0x5c00b800, + 0x1c01f000, 0x8c60053e, 0x05020019, 0x805cb9c0, + 0x05000021, 0x59a00001, 0x805c0400, 0x48034001, + 0x59a00a0b, 0x800409c0, 0x05000005, 0x80040480, + 0x05021003, 0x4178b800, 0x0501f00d, 0x59a00801, + 0x48074407, 0x485dd805, 0x59a00002, 0x4801d803, + 0x4a01d808, 0x00102255, 0x40ec1000, 0x5c00c800, + 0x5c00c000, 0x5c00b800, 0x0001f01c, 0x59a00001, + 0x805c0c00, 0x59a0020b, 0x80040480, 0x48034208, + 0x642b4407, 0x5c00c800, 0x5c00c000, 0x5c00b800, + 0x05f5f692, 0x59a00801, 0x48074407, 0x5c00c800, + 0x5c00c000, 0x5c00b800, 0x05f5f64a, 0x4031d800, + 0x58ef400a, 0x58ec0002, 0x82000580, 0x00000200, + 0x05f4067e, 0x59a28800, 0x05fdf773, 0x61f82800, + 0x59a00c07, 0x59a01208, 0x59a01c08, 0x59a0220a, + 0x82040500, 0x0000ff00, 0x840001c0, 0x900034a0, + 0x05f4167e, 0x80140480, 0x05f4167c, 0x82040500, + 0x000000ff, 0x900034a0, 0x05f41678, 0x80140480, + 0x05f41676, 0x82080500, 0x0000ff00, 0x840001c0, + 0x900034a0, 0x05f41671, 0x80140480, 0x05f4166f, + 0x82080500, 0x000000ff, 0x900034a0, 0x05f4166b, + 0x80140480, 0x05f41669, 0x820c0500, 0x0000ff00, + 0x840001c0, 0x900034a0, 0x05f41664, 0x80140480, + 0x05f41662, 0x820c0500, 0x000000ff, 0x900034a0, + 0x05f4165e, 0x80140480, 0x05f4165c, 0x82100500, + 0x0000ff00, 0x840001c0, 0x900034a0, 0x05f41657, + 0x80140480, 0x05f41655, 0x82100500, 0x000000ff, + 0x900034a0, 0x05f41651, 0x80140480, 0x05f4164f, + 0x900401c0, 0x80080d40, 0x900c01c0, 0x80101d40, + 0x91a83431, 0x44043000, 0x80183000, 0x440c3000, + 0x05f5f600, 0x916c0583, 0x05000003, 0x641f4407, + 0x05f5f63e, 0x0501fa1b, 0x05f60640, 0x59a00408, + 0x59a00a08, 0x900409c0, 0x80040d40, 0x4805d806, + 0x59a0040a, 0x59a00a0a, 0x900409c0, 0x80040d40, + 0x4805d807, 0x6401d801, 0x0501f923, 0x05020003, + 0x640b4407, 0x05f5f62d, 0x417a8800, 0x497b4001, + 0x912c0405, 0x48034002, 0x4c5c0000, 0x4c600000, + 0x4c640000, 0x4178b800, 0x4178c800, 0x59a0c002, + 0x0509f954, 0x0502000a, 0x0509f8f9, 0x05020008, + 0x8c64053e, 0x05020005, 0x59340002, 0x4800c000, + 0x4944c001, 0x9060c402, 0x905cbc08, 0x81468800, + 0x83440480, 0x00000800, 0x0502101f, 0xb05c0480, + 0x05021002, 0x05fdf7ef, 0x59a00001, 0x805c0400, + 0x48034001, 0x8c64053e, 0x05000003, 0x4178b800, + 0x05fdf7e8, 0x59a00a0b, 0x800409c0, 0x05000006, + 0x80040480, 0x05021004, 0x4178b800, 0x8464cd7e, + 0x05fdf7e0, 0x49474000, 0x485dd805, 0x59a00002, + 0x4801d803, 0x40ec1000, 0x0001f81c, 0x4a01d808, + 0x001034d5, 0x5c00c800, 0x5c00c000, 0x5c00b800, + 0x1c01f000, 0x8c64053e, 0x0502001a, 0x805cb9c0, + 0x05000022, 0x59a00001, 0x805c0400, 0x48034001, + 0x59a00a0b, 0x800409c0, 0x05000005, 0x80040480, + 0x05021003, 0x4178b800, 0x0501f00e, 0x59a00801, + 0x80040906, 0x48074407, 0x485dd805, 0x59a00002, + 0x4801d803, 0x4a01d808, 0x00102255, 0x40ec1000, + 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x0001f01c, + 0x59a00001, 0x805c0c00, 0x59a0020b, 0x80040480, + 0x48034208, 0x642b4407, 0x5c00c800, 0x5c00c000, + 0x5c00b800, 0x05f5f5d1, 0x59a00801, 0x80040906, + 0x48074407, 0x5c00c800, 0x5c00c000, 0x5c00b800, + 0x05f5f588, 0x4031d800, 0x58ef400a, 0x58ec0002, + 0x82000580, 0x00000200, 0x05f405bc, 0x59a28800, + 0x05fdf79a, 0x8d0c050e, 0x05000003, 0x64074407, + 0x05f5f5be, 0x59a8021b, 0x8c00050a, 0x05020005, + 0x8c000506, 0x05020003, 0x645b4407, 0x05f5f5b7, + 0x0501f994, 0x05f605b9, 0x0501f8a7, 0x05020003, + 0x640b4407, 0x05f5f5b1, 0x59a00c07, 0x80040902, + 0x59a00408, 0x59a01208, 0x900811c0, 0x80081540, + 0x59a0040a, 0x59a01a0a, 0x900c19c0, 0x800c1d40, + 0x912c0406, 0x0501f8b8, 0x4a01d808, 0x001034fd, + 0x1c01f000, 0x4031d800, 0x58ef400a, 0x58ee580c, + 0x58ec0002, 0x82000580, 0x00000200, 0x05f40593, + 0x592c000a, 0x59a8380f, 0x0511fb00, 0x05040ce4, + 0x05f6059a, 0x49474001, 0x481a6802, 0x592c000b, + 0x82001d80, 0x70000000, 0x05020005, 0x0501f882, + 0x0502000c, 0x640b4407, 0x05f5f58c, 0x82001d80, + 0x72000000, 0x05f6058d, 0x0501f87b, 0x0502087a, + 0x05020879, 0x05020003, 0x640b4407, 0x05f5f583, + 0x58ee580c, 0x4a025c05, 0x00008000, 0x497a5a05, + 0x592c3209, 0x80183102, 0x592c1801, 0x4a001806, + 0x01000000, 0x0529f862, 0x05020003, 0x640f4407, + 0x05f5f576, 0x4a01d808, 0x0010352c, 0x1c01f000, + 0x592c4000, 0x592c0006, 0x82000580, 0x01000000, + 0x05020003, 0x64134407, 0x05f5f56c, 0x4c580000, + 0x4c500000, 0x4c540000, 0x912c3c06, 0x401ca000, + 0x401ca800, 0x5820280b, 0x6008b000, 0x82143580, + 0x70000000, 0x05000002, 0x603cb000, 0x0535fe0c, + 0x5c00a800, 0x5c00a000, 0x5c00b000, 0x401c0000, + 0x58201007, 0x58201808, 0x58202206, 0x80102102, + 0x82143580, 0x70000000, 0x05020005, 0x90103482, + 0x05f41556, 0x60080800, 0x0501f069, 0x82143580, + 0x72000000, 0x05f60551, 0x901034aa, 0x05f4154f, + 0x603c0800, 0x0501f862, 0x4a01d808, 0x00103559, 0x1c01f000, 0x4031d800, 0x58ef400a, 0x58ee580d, - 0x58ec0002, 0x82000580, 0x00000200, 0x05f40544, - 0x912c0c06, 0x4c580000, 0x4c500000, 0x4c540000, - 0x4004a000, 0x4004a800, 0x6030b000, 0x0535fbe4, - 0x5c00a800, 0x5c00a000, 0x5c00b000, 0x40ec1000, - 0x64001001, 0x64c01005, 0x48041003, 0x0001f81c, - 0x4a01d808, 0x001021b2, 0x1c01f000, 0x0501f803, - 0x412d8800, 0x1c01f000, 0x05e9f8b6, 0x0500000e, - 0x497a5800, 0x58ec000c, 0x80000540, 0x05020004, - 0x492dd80c, 0x492dd80d, 0x0501f006, 0x58ec000d, - 0x48025800, 0x90000401, 0x452c0000, 0x492dd80d, - 0x912c0405, 0x492fc857, 0x4803c857, 0x1c01f000, - 0x4d2c0000, 0x58ec400c, 0x802041c0, 0x05000007, - 0x4823c857, 0x40225800, 0x592c4001, 0x497a5801, - 0x05e9f8ac, 0x05fdf7f9, 0x4979d80c, 0x4979d80d, - 0x5c025800, 0x1c01f000, 0x60043000, 0x0501f006, - 0x60043000, 0x0501f005, 0x60003000, 0x0501f003, - 0x60003000, 0x800408c4, 0x800409c0, 0x05e40d00, - 0x4803c857, 0x4807c857, 0x480bc857, 0x480fc857, - 0x481bc857, 0x48efc857, 0x4819d801, 0x4801d803, - 0x4809d806, 0x480dd807, 0x4805d805, 0x40ec1000, - 0x0001f81c, 0x4a01d808, 0x001021b2, 0x1c01f000, - 0x40681000, 0x406c1800, 0x80002d80, 0x480bc857, - 0x480fc857, 0x4813c857, 0x4817c857, 0x8d0c0520, - 0x05000004, 0x59a80005, 0x8c000516, 0x053203f0, - 0x4d2c0000, 0x4da00000, 0x42034000, 0x0010ac19, - 0x59a00018, 0x800001c0, 0x05020014, 0x05006013, - 0x480bc020, 0x480fc021, 0x4813c022, 0x4817c023, - 0x900811c0, 0x90081552, 0x480bc011, 0x59e00017, - 0x8c00050a, 0x60000800, 0x0002088c, 0x8d0c0530, - 0x05ee0d43, 0x000209af, 0x6403c017, 0x4203e000, - 0x30000001, 0x0501f049, 0x4c040000, 0x4c1c0000, - 0x80000800, 0x48074018, 0x59a0381b, 0x481fc857, - 0x801c39c0, 0x05020023, 0x9000048a, 0x0502100e, - 0x59a00019, 0x80000000, 0x48034019, 0x59a0021a, - 0x90000402, 0x90000c94, 0x4803421a, 0x05001003, - 0x497b421a, 0x41780000, 0x59a03817, 0x801c3c00, - 0x0501f02c, 0x4803c856, 0x05e9f83e, 0x05000007, - 0x492f401b, 0x492f401c, 0x412c3800, 0x497b421d, - 0x497a5814, 0x0501f023, 0x5988001e, 0x80000000, - 0x4803101e, 0x59a00018, 0x80000040, 0x48034018, - 0x59a0021a, 0x59a03817, 0x801c3c00, 0x0501f019, - 0x59a0021d, 0x90000402, 0x90000c93, 0x05021004, - 0x4803421d, 0x801c3c00, 0x0501f012, 0x05e9f825, - 0x0502000b, 0x5988001e, 0x80000000, 0x4803101e, - 0x59a00018, 0x80000040, 0x48034018, 0x4803c856, - 0x59a0021d, 0x801c3c00, 0x0501f006, 0x492f401b, - 0x492c3814, 0x412c3800, 0x497b421d, 0x497a5814, - 0x48083c00, 0x480c3a00, 0x48103c01, 0x48143a01, - 0x5c003800, 0x5c000800, 0x5c034000, 0x5c025800, - 0x1c01f000, 0x40681800, 0x406c2000, 0x40703000, - 0x480fc857, 0x4813c857, 0x481bc857, 0x42000000, - 0x0010b013, 0x0535fa1c, 0x801800d0, 0x81202d40, - 0x60501100, 0x05fdf786, 0x4c000000, 0x599c0017, - 0x8c000512, 0x5c000000, 0x1c01f000, 0x4c000000, - 0x599c0018, 0x8c00050e, 0x5c000000, 0x1c01f000, - 0x8d0c050e, 0x05000003, 0x64074407, 0x05f5f470, - 0x916c0583, 0x05000003, 0x641f4407, 0x05f5f46c, - 0x59a24805, 0x59240400, 0x8c000508, 0x05020003, - 0x64234407, 0x05f5f466, 0x59340405, 0x8c000508, - 0x05020003, 0x8c00050a, 0x05fe02e1, 0x497a5a05, - 0x497a5806, 0x4a025c05, 0x00008000, 0x0525fe9e, - 0x05020003, 0x640f4407, 0x05f5f459, 0x4a01d808, - 0x001035a6, 0x1c01f000, 0x592c0006, 0x82000580, - 0x01000000, 0x05020003, 0x64134407, 0x05f5f450, - 0x59a28c07, 0x59a2440b, 0x0505ff46, 0x05f60450, - 0x05fdf2cb, 0x4c040000, 0x59a2440b, 0x42000000, - 0x0010b110, 0x50000000, 0x81200480, 0x0502100d, - 0x83200c00, 0x0010a0ec, 0x50064800, 0x812649c0, - 0x05000008, 0x59240200, 0x8c000500, 0x05000005, - 0x49274005, 0x80000580, 0x5c000800, 0x1c01f000, - 0x90000541, 0x05fdf7fd, 0x61be880f, 0x0001fae7, - 0x05100d79, 0x81468840, 0x05fe17fd, 0x1c01f000, - 0x4803c856, 0x4c0c0000, 0x4d340000, 0x4d440000, - 0x61fa880f, 0x60024000, 0x0505ff22, 0x05020006, - 0x5934180a, 0x900c1d01, 0x900c1d81, 0x606c1100, - 0x05fdff2a, 0x5c028800, 0x5c026800, 0x5c001800, - 0x1c01f000, 0x48efc857, 0x05011000, 0x48efc840, - 0x643fc842, 0x40000000, 0x05fd17ff, 0x4a01d80e, - 0xbeefbeef, 0x1c01f000, 0x497b4000, 0x497b4001, - 0x497b4002, 0x497b4003, 0x497b4004, 0x497b4005, - 0x1c01f000, 0x42002000, 0x001102e4, 0x41580000, - 0x41781000, 0x58100c07, 0x800409c0, 0x0500000c, - 0x90041d83, 0x0500000a, 0x90041c86, 0x05001007, - 0x90041d8a, 0x05000005, 0x90041c8f, 0x05001004, - 0x90041c92, 0x05021002, 0x80081000, 0x90102430, - 0x80100c80, 0x05fc17f0, 0x40080000, 0x59a81266, - 0x80080480, 0x05021002, 0x41780000, 0x81640480, - 0x05021002, 0x41780000, 0x1c01f000, 0x05f1fce1, - 0x05020015, 0x59a8685c, 0x82346d80, 0x3261103c, - 0x05020011, 0x0535faac, 0x0500000d, 0x605c70f4, - 0x50386800, 0x82347500, 0x03f00000, 0x82387580, - 0x00400000, 0x05020007, 0x82347500, 0x000f0000, - 0x82387580, 0x00010000, 0x05000002, 0x90000541, - 0x64030000, 0x1c01f000, 0x05f1fcca, 0x05020004, - 0x59a8685c, 0x82347580, 0x01651077, 0x1c01f000, + 0x58ec0002, 0x82000580, 0x00000200, 0x05f40537, + 0x592e5800, 0x912c0c06, 0x4c580000, 0x4c500000, + 0x4c540000, 0x4004a000, 0x4004a800, 0x603cb000, + 0x0535fde3, 0x5c00a800, 0x5c00a000, 0x5c00b000, + 0x40ec1000, 0x64001001, 0x64f01005, 0x48041003, + 0x0001f81c, 0x4a01d808, 0x00103574, 0x1c01f000, + 0x4031d800, 0x58ef400a, 0x58ee580d, 0x58ec0002, + 0x82000580, 0x00000200, 0x05f4051c, 0x912c0c06, + 0x4c580000, 0x4c500000, 0x4c540000, 0x4004a000, + 0x4004a800, 0x6030b000, 0x0535fdc9, 0x5c00a800, + 0x5c00a000, 0x5c00b000, 0x40ec1000, 0x64001001, + 0x64c01005, 0x48041003, 0x0001f81c, 0x4a01d808, + 0x00102255, 0x1c01f000, 0x0501f803, 0x412d8800, + 0x1c01f000, 0x05e5ffeb, 0x0500000e, 0x497a5800, + 0x58ec000c, 0x80000540, 0x05020004, 0x492dd80c, + 0x492dd80d, 0x0501f006, 0x58ec000d, 0x48025800, + 0x90000401, 0x452c0000, 0x492dd80d, 0x912c0405, + 0x492fc857, 0x4803c857, 0x1c01f000, 0x4d2c0000, + 0x58ec400c, 0x802041c0, 0x05000007, 0x4823c857, + 0x40225800, 0x592c4001, 0x497a5801, 0x05e5ffe1, + 0x05fdf7f9, 0x4979d80c, 0x4979d80d, 0x5c025800, + 0x1c01f000, 0x60043000, 0x0501f006, 0x60043000, + 0x0501f005, 0x60003000, 0x0501f003, 0x60003000, + 0x800408c4, 0x800409c0, 0x05e40c35, 0x4803c857, + 0x4807c857, 0x480bc857, 0x480fc857, 0x481bc857, + 0x48efc857, 0x4819d801, 0x4801d803, 0x4809d806, + 0x480dd807, 0x4805d805, 0x40ec1000, 0x0001f81c, + 0x4a01d808, 0x00102255, 0x1c01f000, 0x40681000, + 0x406c1800, 0x80002d80, 0x480bc857, 0x480fc857, + 0x4813c857, 0x4817c857, 0x8d0c0520, 0x05000004, + 0x59a80005, 0x8c000516, 0x053205c3, 0x4d2c0000, + 0x4da00000, 0x42034000, 0x0010ae99, 0x59a00018, + 0x800001c0, 0x05020014, 0x05006013, 0x480bc020, + 0x480fc021, 0x4813c022, 0x4817c023, 0x900811c0, + 0x90081552, 0x480bc011, 0x59e00017, 0x8c00050a, + 0x60000800, 0x0002088c, 0x8d0c0530, 0x05ee0c76, + 0x000209af, 0x6403c017, 0x4203e000, 0x30000001, + 0x0501f049, 0x4c040000, 0x4c1c0000, 0x80000800, + 0x48074018, 0x59a0381b, 0x481fc857, 0x801c39c0, + 0x05020023, 0x9000048a, 0x0502100e, 0x59a00019, + 0x80000000, 0x48034019, 0x59a0021a, 0x90000402, + 0x90000c94, 0x4803421a, 0x05001003, 0x497b421a, + 0x41780000, 0x59a03817, 0x801c3c00, 0x0501f02c, + 0x4803c856, 0x05e5ff73, 0x05000007, 0x492f401b, + 0x492f401c, 0x412c3800, 0x497b421d, 0x497a5814, + 0x0501f023, 0x5988001e, 0x80000000, 0x4803101e, + 0x59a00018, 0x80000040, 0x48034018, 0x59a0021a, + 0x59a03817, 0x801c3c00, 0x0501f019, 0x59a0021d, + 0x90000402, 0x90000c93, 0x05021004, 0x4803421d, + 0x801c3c00, 0x0501f012, 0x05e5ff5a, 0x0502000b, + 0x5988001e, 0x80000000, 0x4803101e, 0x59a00018, + 0x80000040, 0x48034018, 0x4803c856, 0x59a0021d, + 0x801c3c00, 0x0501f006, 0x492f401b, 0x492c3814, + 0x412c3800, 0x497b421d, 0x497a5814, 0x48083c00, + 0x480c3a00, 0x48103c01, 0x48143a01, 0x5c003800, + 0x5c000800, 0x5c034000, 0x5c025800, 0x1c01f000, + 0x40681800, 0x406c2000, 0x40703000, 0x480fc857, + 0x4813c857, 0x481bc857, 0x42000000, 0x0010b293, + 0x0535fc01, 0x801800d0, 0x81202d40, 0x60501100, + 0x05fdf786, 0x4c000000, 0x599c0017, 0x8c000512, + 0x5c000000, 0x1c01f000, 0x4c000000, 0x599c0018, + 0x8c00050e, 0x5c000000, 0x1c01f000, 0x8d0c050e, + 0x05000003, 0x64074407, 0x05f5f448, 0x916c0583, + 0x05000003, 0x641f4407, 0x05f5f444, 0x59a24805, + 0x59240400, 0x8c000508, 0x05020003, 0x64234407, + 0x05f5f43e, 0x59340405, 0x8c000508, 0x05020003, + 0x8c00050a, 0x05fe02e1, 0x497a5a05, 0x497a5806, + 0x4a025c05, 0x00008000, 0x0525ffb4, 0x05020003, + 0x640f4407, 0x05f5f431, 0x4a01d808, 0x00103671, + 0x1c01f000, 0x592c0006, 0x82000580, 0x01000000, + 0x05020003, 0x64134407, 0x05f5f428, 0x59a28c07, + 0x59a2440b, 0x0505ff57, 0x05f60428, 0x05fdf2cb, + 0x4c040000, 0x59a2440b, 0x42000000, 0x0010b390, + 0x50000000, 0x81200480, 0x0502100d, 0x83200c00, + 0x0010a3b3, 0x50064800, 0x812649c0, 0x05000008, + 0x59240200, 0x8c000500, 0x05000005, 0x49274005, + 0x80000580, 0x5c000800, 0x1c01f000, 0x90000541, + 0x05fdf7fd, 0x61be880f, 0x0001fae7, 0x05100e70, + 0x81468840, 0x05fe17fd, 0x1c01f000, 0x4803c856, + 0x4c0c0000, 0x4d340000, 0x4d440000, 0x61fa880f, + 0x60024000, 0x0505ff33, 0x05020006, 0x5934180a, + 0x900c1d01, 0x900c1d81, 0x606c1100, 0x05fdff2a, + 0x5c028800, 0x5c026800, 0x5c001800, 0x1c01f000, + 0x48efc857, 0x05011000, 0x48efc840, 0x643fc842, + 0x40000000, 0x05fd17ff, 0x4a01d80e, 0xbeefbeef, + 0x1c01f000, 0x497b4000, 0x497b4001, 0x497b4002, + 0x497b4003, 0x497b4004, 0x497b4005, 0x1c01f000, + 0x42002000, 0x00110514, 0x41580000, 0x41781000, + 0x58100c07, 0x800409c0, 0x0500000c, 0x90041d83, + 0x0500000a, 0x90041c86, 0x05001007, 0x90041d8a, + 0x05000005, 0x90041c8f, 0x05001004, 0x90041c92, + 0x05021002, 0x80081000, 0x90102430, 0x80100c80, + 0x05fc17f0, 0x40080000, 0x59a81266, 0x80080480, + 0x05021002, 0x41780000, 0x81640480, 0x05021002, + 0x41780000, 0x1c01f000, 0x05f1fc17, 0x05020015, + 0x59a8685c, 0x82346d80, 0x3261103c, 0x05020011, + 0x0535fc91, 0x0500000d, 0x605c70f4, 0x50386800, + 0x82347500, 0x03f00000, 0x82387580, 0x00400000, + 0x05020007, 0x82347500, 0x000f0000, 0x82387580, + 0x00010000, 0x05000002, 0x90000541, 0x64030000, + 0x1c01f000, 0x05f1fc00, 0x05020004, 0x59a8685c, + 0x82347580, 0x01651077, 0x1c01f000, 0x0501f805, + 0x60058800, 0x05000002, 0x60018800, 0x1c01f000, + 0x05f1fbf5, 0x0502000a, 0x59a8685c, 0x82347580, + 0x01661077, 0x05000006, 0x82347580, 0x01681077, + 0x05000003, 0x82347580, 0x01761077, 0x1c01f000, 0x0501f805, 0x60058800, 0x05000002, 0x60018800, - 0x1c01f000, 0x05f1fcbf, 0x0502000a, 0x59a8685c, - 0x82347580, 0x01661077, 0x05000006, 0x82347580, - 0x01681077, 0x05000003, 0x82347580, 0x01761077, - 0x1c01f000, 0x0501f805, 0x60058800, 0x05000002, - 0x60018800, 0x1c01f000, 0x05f1fcae, 0x05020007, - 0x59a8685c, 0x82347580, 0x01681077, 0x05000003, - 0x82347580, 0x01761077, 0x1c01f000, 0x4803c856, - 0x05fdfff6, 0x65034407, 0x05f603b1, 0x59a0020b, - 0x4803c857, 0x800001c0, 0x05f403b1, 0xb0000485, - 0x05f613af, 0x59a0220c, 0x8c100500, 0x0502001b, - 0x4803c856, 0x05fdfe71, 0x05020004, 0x640b4407, - 0x4803c856, 0x05f5f3a2, 0x59a00c0b, 0x59a01a0b, - 0x59a0220c, 0x59a02c07, 0x912e5c02, 0x412cc800, - 0x4807c857, 0x480fc857, 0x4813c857, 0x4817c857, - 0x4867c857, 0x0501f8cf, 0x05000017, 0x59a00a0b, - 0x59a01008, 0x900811c0, 0x59a0180a, 0x900c19c0, - 0x412c0000, 0x05fdf67d, 0x4807c856, 0x59a00c0b, - 0x59a01a0b, 0x900c0581, 0x05f6038d, 0x59a02c07, - 0x91a0cc07, 0x4807c857, 0x4813c857, 0x4817c857, - 0x0501f8bc, 0x05000004, 0x59a00a07, 0x48074407, - 0x05f5f33d, 0x64134407, 0x05f5f37d, 0x59a0220c, - 0x4813c857, 0x05fdffbd, 0x65034407, 0x05f60378, - 0x59a00c0b, 0x4807c857, 0x8c100500, 0x0502001b, - 0x05fdfe3e, 0x05020003, 0x640b4407, 0x05f5f370, - 0x59a00a0b, 0xb0040485, 0x05f61371, 0x59a01008, - 0x900811c0, 0x59a0180a, 0x900c19c0, 0x912c0402, - 0x05fdfe54, 0x4a01d808, 0x00103698, 0x1c01f000, - 0x4031d800, 0x58ef400a, 0x58ee580c, 0x58ec0002, - 0x82000580, 0x00000200, 0x05f40355, 0x912c1402, - 0x59a01a0b, 0x0501f003, 0x91a0140b, 0x60041800, - 0x59a00c0b, 0x59a0220c, 0x59a02c07, 0x4807c857, - 0x480bc857, 0x50080000, 0x82000500, 0x000000ff, - 0x4803c857, 0x480fc857, 0x4813c857, 0x4817c857, - 0x0501f830, 0x64134407, 0x05f40349, 0x05f5f306, - 0x05fdff8a, 0x0502000d, 0x4803c856, 0x61c0083f, - 0x61c4103f, 0x64000800, 0x46001000, 0x000001a7, - 0x64040800, 0x64041000, 0x64080800, 0x50080000, - 0x8400054e, 0x44001000, 0x1c01f000, 0x4803c856, - 0x4c5c0000, 0x64103000, 0x60e0b817, 0x05f1fa43, - 0x805cb840, 0x05000005, 0x501c6800, 0x90346d02, - 0x05fe07fb, 0x90346d41, 0x485fc857, 0x5c00b800, - 0x1c01f000, 0x4803c856, 0x4c5c0000, 0x64103000, - 0x60e0b817, 0x05f1fa35, 0x805cb840, 0x05000006, - 0x501c6800, 0x82346d00, 0x00000082, 0x05fe07fa, + 0x1c01f000, 0x05f1fbe4, 0x05020007, 0x59a8685c, + 0x82347580, 0x01681077, 0x05000003, 0x82347580, + 0x01761077, 0x1c01f000, 0x4803c856, 0x05fdfff6, + 0x65034407, 0x05f60389, 0x59a0020b, 0x4803c857, + 0x800001c0, 0x05f40389, 0xb0000485, 0x05f61387, + 0x59a0220c, 0x8c100500, 0x0502001b, 0x4803c856, + 0x05fdfe71, 0x05020004, 0x640b4407, 0x4803c856, + 0x05f5f37a, 0x59a00c0b, 0x59a01a0b, 0x59a0220c, + 0x59a02c07, 0x912e5c02, 0x412cc800, 0x4807c857, + 0x480fc857, 0x4813c857, 0x4817c857, 0x4867c857, + 0x0501f8cf, 0x05000017, 0x59a00a0b, 0x59a01008, + 0x900811c0, 0x59a0180a, 0x900c19c0, 0x412c0000, + 0x05fdf67d, 0x4807c856, 0x59a00c0b, 0x59a01a0b, + 0x900c0581, 0x05f60365, 0x59a02c07, 0x91a0cc07, + 0x4807c857, 0x4813c857, 0x4817c857, 0x0501f8bc, + 0x05000004, 0x59a00a07, 0x48074407, 0x05f5f315, + 0x64134407, 0x05f5f355, 0x59a0220c, 0x4813c857, + 0x05fdffbd, 0x65034407, 0x05f60350, 0x59a00c0b, + 0x4807c857, 0x8c100500, 0x0502001b, 0x05fdfe3e, + 0x05020003, 0x640b4407, 0x05f5f348, 0x59a00a0b, + 0xb0040485, 0x05f61349, 0x59a01008, 0x900811c0, + 0x59a0180a, 0x900c19c0, 0x912c0402, 0x05fdfe54, + 0x4a01d808, 0x00103763, 0x1c01f000, 0x4031d800, + 0x58ef400a, 0x58ee580c, 0x58ec0002, 0x82000580, + 0x00000200, 0x05f4032d, 0x912c1402, 0x59a01a0b, + 0x0501f003, 0x91a0140b, 0x60041800, 0x59a00c0b, + 0x59a0220c, 0x59a02c07, 0x4807c857, 0x480bc857, + 0x50080000, 0x82000500, 0x000000ff, 0x4803c857, + 0x480fc857, 0x4813c857, 0x4817c857, 0x0501f830, + 0x64134407, 0x05f40321, 0x05f5f2de, 0x05fdff8a, + 0x0502000d, 0x4803c856, 0x61c0083f, 0x61c4103f, + 0x64000800, 0x46001000, 0x000001a7, 0x64040800, + 0x64041000, 0x64080800, 0x50080000, 0x8400054e, + 0x44001000, 0x1c01f000, 0x4803c856, 0x4c5c0000, + 0x64103000, 0x60e0b817, 0x05f1f979, 0x805cb840, + 0x05000005, 0x501c6800, 0x90346d02, 0x05fe07fb, 0x90346d41, 0x485fc857, 0x5c00b800, 0x1c01f000, - 0x4803c856, 0x4c5c0000, 0x61c0303f, 0x61c4383f, - 0x64103000, 0x61a0b807, 0x805cb840, 0x0500004b, - 0x501c0000, 0x8c00050c, 0x05fe07fc, 0x640c3000, - 0x46003800, 0x000000a0, 0x64103000, 0x46003800, - 0x00000090, 0x05fdffe0, 0x05000040, 0x8c10051c, - 0x05000008, 0x640c3000, 0x4807c857, 0x44043800, - 0x64103000, 0x64403800, 0x05fdffd7, 0x05000037, - 0x800c19c0, 0x05000033, 0x640c3000, 0x5008b800, - 0x445c3800, 0x485fc857, 0x480fc857, 0x800c1840, - 0x05000028, 0x64103000, 0x64403800, 0x05fdffca, - 0x0500002a, 0x640c3000, 0x805cb910, 0x445c3800, - 0x485fc857, 0x480fc857, 0x800c1840, 0x0500001d, - 0x64103000, 0x64403800, 0x05fdffbf, 0x0500001f, - 0x640c3000, 0x805cb910, 0x445c3800, 0x485fc857, - 0x480fc857, 0x800c1840, 0x05000012, 0x64103000, - 0x64403800, 0x05fdffb4, 0x05000014, 0x640c3000, - 0x805cb910, 0x445c3800, 0x485fc857, 0x480fc857, - 0x800c1840, 0x05000007, 0x64103000, 0x64403800, - 0x05fdffa9, 0x05000009, 0x80081000, 0x05fdf7d3, - 0x64103000, 0x65403800, 0x05fdffa3, 0x05000003, - 0x90000541, 0x4803c856, 0x5c00b800, 0x1c01f000, - 0x4803c856, 0x4c5c0000, 0x4c600000, 0x400c6000, - 0x61c0303f, 0x61c4383f, 0x64103000, 0x61a0b807, - 0x805cb840, 0x05000088, 0x501c0000, 0x4803c857, - 0x8c00050c, 0x05fe07fb, 0x8c10051c, 0x05000014, - 0x640c3000, 0x50180000, 0x4803c857, 0x501c0000, - 0x4803c857, 0x46003800, 0x000000a0, 0x64103000, - 0x46003800, 0x00000090, 0x05fdff83, 0x05000076, + 0x4803c856, 0x4c5c0000, 0x64103000, 0x60e0b817, + 0x05f1f96b, 0x805cb840, 0x05000006, 0x501c6800, + 0x82346d00, 0x00000082, 0x05fe07fa, 0x90346d41, + 0x485fc857, 0x5c00b800, 0x1c01f000, 0x4803c856, + 0x4c5c0000, 0x61c0303f, 0x61c4383f, 0x64103000, + 0x61a0b807, 0x805cb840, 0x0500004b, 0x501c0000, + 0x8c00050c, 0x05fe07fc, 0x640c3000, 0x46003800, + 0x000000a0, 0x64103000, 0x46003800, 0x00000090, + 0x05fdffe0, 0x05000040, 0x8c10051c, 0x05000008, 0x640c3000, 0x4807c857, 0x44043800, 0x64103000, - 0x64403800, 0x05fdff7c, 0x0500006f, 0x640c3000, - 0x46003800, 0x000000a1, 0x64103000, 0x46003800, - 0x00000090, 0x05fdff74, 0x05000067, 0x800c19c0, - 0x05e40a8f, 0x4178b800, 0x900c1581, 0x05000040, - 0x64103000, 0x64803800, 0x05fdff5d, 0x0500005e, - 0x640c3000, 0x501c0800, 0x4807c857, 0x9c0409c0, - 0x8004bd57, 0x485fc857, 0x480fc857, 0x805cb910, - 0x800c1840, 0x900c1581, 0x05000031, 0x64103000, - 0x64803800, 0x05fdff4e, 0x0500004f, 0x640c3000, + 0x64403800, 0x05fdffd7, 0x05000037, 0x800c19c0, + 0x05000033, 0x640c3000, 0x5008b800, 0x445c3800, + 0x485fc857, 0x480fc857, 0x800c1840, 0x05000028, + 0x64103000, 0x64403800, 0x05fdffca, 0x0500002a, + 0x640c3000, 0x805cb910, 0x445c3800, 0x485fc857, + 0x480fc857, 0x800c1840, 0x0500001d, 0x64103000, + 0x64403800, 0x05fdffbf, 0x0500001f, 0x640c3000, + 0x805cb910, 0x445c3800, 0x485fc857, 0x480fc857, + 0x800c1840, 0x05000012, 0x64103000, 0x64403800, + 0x05fdffb4, 0x05000014, 0x640c3000, 0x805cb910, + 0x445c3800, 0x485fc857, 0x480fc857, 0x800c1840, + 0x05000007, 0x64103000, 0x64403800, 0x05fdffa9, + 0x05000009, 0x80081000, 0x05fdf7d3, 0x64103000, + 0x65403800, 0x05fdffa3, 0x05000003, 0x90000541, + 0x4803c856, 0x5c00b800, 0x1c01f000, 0x4803c856, + 0x4c5c0000, 0x4c600000, 0x400c6000, 0x61c0303f, + 0x61c4383f, 0x64103000, 0x61a0b807, 0x805cb840, + 0x05000088, 0x501c0000, 0x4803c857, 0x8c00050c, + 0x05fe07fb, 0x8c10051c, 0x05000014, 0x640c3000, + 0x50180000, 0x4803c857, 0x501c0000, 0x4803c857, + 0x46003800, 0x000000a0, 0x64103000, 0x46003800, + 0x00000090, 0x05fdff83, 0x05000076, 0x640c3000, + 0x4807c857, 0x44043800, 0x64103000, 0x64403800, + 0x05fdff7c, 0x0500006f, 0x640c3000, 0x46003800, + 0x000000a1, 0x64103000, 0x46003800, 0x00000090, + 0x05fdff74, 0x05000067, 0x800c19c0, 0x05e409c4, + 0x4178b800, 0x900c1581, 0x05000040, 0x64103000, + 0x64803800, 0x05fdff5d, 0x0500005e, 0x640c3000, 0x501c0800, 0x4807c857, 0x9c0409c0, 0x8004bd57, 0x485fc857, 0x480fc857, 0x805cb910, 0x800c1840, - 0x900c1581, 0x05000022, 0x64103000, 0x64803800, - 0x05fdff3f, 0x05000040, 0x640c3000, 0x501c0800, + 0x900c1581, 0x05000031, 0x64103000, 0x64803800, + 0x05fdff4e, 0x0500004f, 0x640c3000, 0x501c0800, 0x4807c857, 0x9c0409c0, 0x8004bd57, 0x485fc857, 0x480fc857, 0x805cb910, 0x800c1840, 0x900c1581, - 0x05000013, 0x64103000, 0x64803800, 0x05fdff30, - 0x05000031, 0x640c3000, 0x501c0800, 0x4807c857, + 0x05000022, 0x64103000, 0x64803800, 0x05fdff3f, + 0x05000040, 0x640c3000, 0x501c0800, 0x4807c857, 0x9c0409c0, 0x8004bd57, 0x485fc857, 0x480fc857, - 0x445cc800, 0x8064c800, 0x4178b800, 0x800c1840, - 0x900c1581, 0x05000002, 0x05fdf7c2, 0x64103000, - 0x65a03800, 0x05fdff1e, 0x0500001f, 0x640c3000, - 0x501c0800, 0x4807c857, 0x82040d00, 0x000000ff, - 0x9c0409c0, 0x8004bd57, 0x4807c857, 0x485fc857, - 0x4863c857, 0x4867c857, 0x480fc857, 0x40301000, - 0x41780800, 0x60100000, 0x0511fd86, 0x4807c857, - 0x800409c0, 0x05000006, 0x60100000, 0x80000c81, - 0x805cb910, 0x80040840, 0x05fe07fe, 0x445cc800, - 0x485fc857, 0x4863c857, 0x4867c857, 0x90000541, - 0x4803c856, 0x5c00c000, 0x5c00b800, 0x1c01f000, - 0x0501f805, 0x60058800, 0x05000002, 0x60018800, - 0x1c01f000, 0x60003020, 0x80183040, 0x05000010, - 0x0535f8ed, 0x05fc07fd, 0x05e5fec5, 0x605430f4, - 0x50183800, 0x821c0500, 0x00007000, 0x05000006, - 0x48035094, 0x821c0500, 0xffff8fff, 0x44003000, - 0x80000580, 0x64030000, 0x1c01f000, 0x4803c856, - 0x4a034408, 0x0000cccc, 0x90000541, 0x05fdf7fa, - 0x0535f8d9, 0x05fc07ff, 0x600008f4, 0x58040015, - 0x82000500, 0xffff8fff, 0x59a81094, 0x80080540, - 0x48000815, 0x64030000, 0x1c01f000, 0x59c400a4, - 0x4c580000, 0x4c500000, 0x4c540000, 0x9000050f, - 0x90000487, 0x05001008, 0x90006c87, 0x05e619f8, - 0x0c01f807, 0x5c00a800, 0x5c00a000, 0x5c00b000, - 0x1c01f000, 0x0501f8e9, 0x05fdf7fb, 0x00103806, - 0x0010380c, 0x00103830, 0x0010384a, 0x001038ec, - 0x00103805, 0x1c01f000, 0x59c40806, 0x8c040500, - 0x05020003, 0x84040d40, 0x48078806, 0x1c01f000, - 0x59c40005, 0x8c000534, 0x0502069e, 0x4a038805, - 0xffffffff, 0x42006000, 0x00020000, 0x0501fe80, - 0x59a80015, 0x82000500, 0xfffffffa, 0x84000542, - 0x48035015, 0x497b521b, 0x42000800, 0x0010cc24, - 0x45780800, 0x497b5073, 0x42000000, 0x0010b10f, - 0x46000000, 0x0000ffff, 0x42006000, 0xffefffff, - 0x42006800, 0x40000000, 0x0501fe67, 0x59c40006, - 0x82000500, 0xffffff0f, 0x48038806, 0x60400800, - 0x42001000, 0x00103df8, 0x0511faed, 0x0501f001, - 0x42006000, 0xffffffff, 0x42006800, 0x00800000, - 0x0501fe59, 0x6120b001, 0x59c400a4, 0x9000050f, - 0x9000058a, 0x0500000d, 0x8058b040, 0x05fe07fb, - 0x497b5010, 0x42006000, 0xbf7fffff, 0x42006800, - 0x00018000, 0x0501fe4c, 0x42006000, 0xfffeffff, - 0x41786800, 0x0501f648, 0x497b5010, 0x64035072, - 0x80000580, 0x0501f651, 0x4a038805, 0xffffffff, - 0x59a80072, 0x90000c84, 0x05e619a1, 0x0c01f001, - 0x00103853, 0x00103879, 0x001038e5, 0x4803c856, - 0x59c400a3, 0x8400051e, 0x480388a3, 0x64075072, - 0x59c40008, 0x82000540, 0x00000280, 0x48038808, - 0x0501fe19, 0x42007800, 0x0010ac85, 0x4a007806, - 0x11010000, 0x4200a000, 0x0010b112, 0x4200a800, - 0x0010ac8c, 0x6008b000, 0x0531fffa, 0x59c40802, - 0x84040d0c, 0x48078802, 0x600c0800, 0x497b507c, - 0x0501fd0e, 0x6407507c, 0x497b5077, 0x0501fe31, - 0x42006000, 0xffffffff, 0x42006800, 0x00080000, - 0x0501fe19, 0x42006000, 0xfff7ffff, 0x41786800, - 0x0501f615, 0x59a80077, 0x497b5077, 0x80002540, - 0x0500005e, 0x59c40004, 0x90000503, 0x05020065, - 0x59a80815, 0x8c040502, 0x05000049, 0x9010058c, - 0x0502004c, 0x90100418, 0x8000b104, 0x41cc1000, - 0x42001800, 0x0010ac85, 0x50080800, 0x500c0000, - 0x80040580, 0x05020019, 0x80081000, 0x800c1800, - 0x8058b040, 0x05fe07f9, 0x0501fe0e, 0x59c80015, - 0x84000508, 0x48039015, 0x42006000, 0xffffffff, - 0x42006800, 0x00500000, 0x0501fdf3, 0x640b5072, - 0x640b5010, 0x05edfd91, 0x6140080f, 0x42001000, - 0x00103d56, 0x0511fbbb, 0x59a80015, 0x84000506, - 0x48035015, 0x0501f5d0, 0x59cc0806, 0x82040d80, - 0x11010000, 0x05020027, 0x59cc0800, 0x82040500, - 0x00ffffff, 0x05000018, 0x82000580, 0x000000ef, - 0x05020015, 0x59cc0801, 0x82040500, 0x00ffffff, - 0x82000580, 0x000000ef, 0x0502000f, 0x91cca407, - 0x4200a800, 0x0010b112, 0x6008b000, 0x50500800, - 0x50540000, 0x80040480, 0x05001007, 0x05020011, - 0x8050a000, 0x8054a800, 0x8058b040, 0x05fe07f8, - 0x0501f00c, 0x59a80015, 0x84000502, 0x48035015, - 0x59c80015, 0x84000508, 0x48039015, 0x41cca000, - 0x4200a800, 0x0010ac85, 0x6024b000, 0x0531ff91, - 0x0501fdd0, 0x42006000, 0xffffffff, 0x42006800, - 0x00080000, 0x0501fdb8, 0x42006000, 0xfff7ffff, - 0x41786800, 0x0501fdb4, 0x42006000, 0xffffffff, - 0x60006880, 0x0501fdb0, 0x59c40004, 0x90000503, - 0x05020004, 0x497b5077, 0x600c0800, 0x0501f497, - 0x1c01f000, 0x1c01f000, 0x59a80010, 0x90006d8f, - 0x05000003, 0x9000059b, 0x05020c62, 0x1c01f000, - 0x59a80015, 0x84000506, 0x48035015, 0x497b507c, - 0x59a80010, 0x90000c9e, 0x05e618fd, 0x0c01f001, - 0x00103923, 0x00103933, 0x00103955, 0x0010396f, - 0x0010398d, 0x00103990, 0x00103993, 0x00103996, - 0x00103999, 0x001039ad, 0x001039b0, 0x00103a04, - 0x00103a07, 0x00103a14, 0x00103a17, 0x00103a29, - 0x00103a2e, 0x00103a7d, 0x00103aa4, 0x00103b1c, - 0x00103b43, 0x00103b92, 0x00103bd8, 0x00103c26, - 0x00103c44, 0x00103c86, 0x00103ca4, 0x00103cb4, - 0x00103cb5, 0x4803c856, 0x601ed800, 0x0509f91a, - 0x05000006, 0x42006000, 0xffffffd7, 0x41786800, - 0x0501fd75, 0x0501f009, 0x59c40006, 0x82000500, - 0xffffff0f, 0x48038806, 0x4a038805, 0x000000f0, - 0x0509fc68, 0x0509f881, 0x1c01f000, 0x4803c856, - 0x42006000, 0xbf7fffff, 0x42006800, 0x00400000, - 0x0501fd65, 0x05edfd05, 0x64075010, 0x42001000, - 0x00103df8, 0x0511fa0c, 0x0501fcd3, 0x6140080f, - 0x42001000, 0x00103d56, 0x0511f32a, 0x59a80077, - 0x90000594, 0x0502001e, 0x4803c857, 0x42006000, - 0xffbfffff, 0x41786800, 0x0501fd53, 0x59c40004, - 0x90000503, 0x05020016, 0x42001000, 0x00103d56, - 0x0511f9e6, 0x59cc1006, 0x82081580, 0x11020000, - 0x05020010, 0x59cc1007, 0x8c08053e, 0x0500000a, - 0x59a80015, 0x8c000504, 0x05020007, 0x42000000, - 0x0010afa4, 0x0531fe48, 0x59a80015, 0x84000544, - 0x48035015, 0x64435010, 0x0501f0dc, 0x1c01f000, - 0x0501f3f8, 0x4803c856, 0x640f5010, 0x42006000, - 0xbf3fffff, 0x42006800, 0x00100000, 0x0501fd32, - 0x42001000, 0x00103df8, 0x0511f9db, 0x0501fca2, - 0x42001000, 0x00103d56, 0x0511f9c4, 0x59a8041b, - 0x90000528, 0x05000004, 0x42000800, 0xfffff815, - 0x05f1fe6e, 0x42007800, 0x0010ac8b, 0x46007800, - 0x11020000, 0x60140800, 0x0501f40c, 0x59a80077, - 0x80000540, 0x0500001a, 0x4803c857, 0x42001000, - 0x00103d56, 0x0511f9b1, 0x59a80077, 0x90000594, - 0x05020014, 0x59cc1006, 0x82081580, 0x11020000, - 0x05020010, 0x59cc1007, 0x8c08053e, 0x0500000a, - 0x59a80015, 0x8c000504, 0x05020007, 0x42000000, - 0x0010afa4, 0x0531fe10, 0x59a80015, 0x84000544, - 0x48035015, 0x64135010, 0x0501f003, 0x1c01f000, - 0x0501f3c0, 0x4803c856, 0x64175010, 0x0501f117, - 0x4c5c0000, 0x6004b800, 0x0501f0ed, 0x4803c856, - 0x641f5010, 0x0501f1b0, 0x4c5c0000, 0x6004b800, - 0x0501f186, 0x4803c856, 0x64275010, 0x91cca406, - 0x4200a800, 0x0010ac8b, 0x6014b000, 0x0531fec1, - 0x42007800, 0x0010ac8b, 0x46007800, 0x11050100, - 0x8d0c0506, 0x05000243, 0x60140800, 0x0501fbd3, - 0x4d3c0000, 0x60067800, 0x0529fa7e, 0x5c027800, - 0x1c01f000, 0x4c5c0000, 0x6004b800, 0x0501f1e5, - 0x4803c856, 0x642f5010, 0x42001000, 0x0010ac8c, - 0x4008a800, 0x6080b000, 0x4600a800, 0xffffffff, - 0x8054a800, 0x8058b040, 0x05fe07fc, 0x42007800, - 0x0010ac8b, 0x46007800, 0x11060000, 0x8d0c0506, - 0x05000005, 0x50080000, 0x46001000, 0x00ffffff, - 0x0501f03e, 0x42024800, 0x0010b111, 0x0531feef, - 0x40083000, 0x41782800, 0x41781800, 0x41782000, - 0x59240200, 0x8c000500, 0x05000012, 0x8c000502, - 0x05000010, 0x801429c0, 0x05020002, 0x800c1800, - 0x80142800, 0x59244408, 0x82204500, 0x000000ff, - 0x400c0000, 0x50182000, 0x0c01f810, 0x80102540, - 0x44103000, 0x800c19c0, 0x05020002, 0x80183000, - 0x91264c0b, 0x8058b040, 0x05fe07ea, 0x50080000, - 0x82000500, 0x00ffffff, 0x801428f0, 0x80140540, - 0x44001000, 0x0501f019, 0x001039ee, 0x001039f3, - 0x001039f8, 0x001039fd, 0x802000f0, 0x82102500, - 0x00ffffff, 0x800c1800, 0x1c01f000, 0x802000e0, - 0x82102500, 0xff00ffff, 0x800c1800, 0x1c01f000, - 0x802000d0, 0x82102500, 0xffff00ff, 0x800c1800, - 0x1c01f000, 0x40200000, 0x82102500, 0xffffff00, - 0x41781800, 0x1c01f000, 0x60840800, 0x0501f377, - 0x4c5c0000, 0x6004b800, 0x0501f222, 0x4803c856, - 0x64375010, 0x91cca406, 0x4200a800, 0x0010ac8b, - 0x6084b000, 0x0531fe53, 0x42007800, 0x0010ac8b, - 0x46007800, 0x11070000, 0x60840800, 0x0501f367, - 0x4c5c0000, 0x6004b800, 0x0501f272, 0x4803c856, - 0x90040d41, 0x0501fc81, 0x643f5010, 0x497b5077, - 0x42006000, 0xffffffff, 0x42006800, 0x00300000, - 0x0501fc6d, 0x42006000, 0xffdfffff, 0x41786800, - 0x0501fc69, 0x6140080f, 0x42001000, 0x00103d56, - 0x0511f0db, 0x4803c856, 0x59a80077, 0x80000540, - 0x05020320, 0x1c01f000, 0x4803c856, 0x64475010, - 0x91cca406, 0x4200a800, 0x0010ac8b, 0x6014b000, - 0x0531fe2c, 0x4200a800, 0x0010ac8b, 0x4600a800, - 0x11020000, 0x8d0c0506, 0x05020041, 0x59a80c1b, - 0x82040580, 0x0000ffff, 0x0500003d, 0x90040d30, - 0x05000005, 0x42000800, 0xfffff815, 0x05f1fd93, - 0x0501f037, 0x59cc0007, 0x8c00053c, 0x05000034, - 0x42024800, 0x0010b111, 0x0531fe6c, 0x59240200, - 0xb0000d23, 0xb0040da3, 0x05020021, 0x59240a08, - 0x42001000, 0x0010ac8c, 0x0501fab5, 0x05000009, - 0x59240c08, 0x05edfbef, 0x59240200, 0x84000502, - 0x84000518, 0x84000544, 0x48024a00, 0x0501f014, - 0x59240200, 0x82000540, 0x00001006, 0x84000506, - 0x48024a00, 0x48064a08, 0x82042c00, 0x00102013, - 0x50142800, 0x82142d00, 0x000000ff, 0x48164c08, - 0x59240005, 0x82000500, 0x00ffff00, 0x80140d40, - 0x48064805, 0x40140800, 0x05edfbca, 0x91264c0b, - 0x8058b040, 0x05fe07da, 0x42024800, 0x0010b111, - 0x59242a00, 0x8c140502, 0x05000005, 0x8c140500, - 0x05000003, 0x59242c08, 0x4817500f, 0x60140800, - 0x0501f2fe, 0x4c5c0000, 0x4178b800, 0x59a80077, - 0x80000540, 0x05000021, 0x4803c857, 0x42001000, - 0x00103d56, 0x0511f8a1, 0x59a80077, 0x90000594, - 0x05020019, 0x59cc1006, 0x82081580, 0x11030000, - 0x05020015, 0x59cc1007, 0x8c08053e, 0x0500000a, - 0x59a80015, 0x8c000504, 0x05020007, 0x42000000, - 0x0010afa4, 0x0531fd00, 0x59a80015, 0x84000544, - 0x48035015, 0x805cb9c0, 0x05000004, 0x641b5010, - 0x05fdfef7, 0x0501f005, 0x644b5010, 0x0501f805, - 0x0501f002, 0x0501faab, 0x5c00b800, 0x1c01f000, - 0x4803c856, 0x644f5010, 0x91cca407, 0x4200a800, - 0x0010ac8c, 0x6010b000, 0x0531fdb6, 0x4200a800, - 0x0010ac8b, 0x4600a800, 0x11030000, 0x8d0c0506, - 0x0502006a, 0x42024800, 0x0010b111, 0x0531fe03, - 0x4c600000, 0x4178c000, 0x59a8021b, 0x82000500, - 0xfffffffc, 0x4803521b, 0x59240200, 0x40000800, - 0x82040d00, 0xfffffb17, 0x48064a00, 0x8c000500, - 0x05000048, 0x8c000518, 0x05020046, 0x8c000502, - 0x05020004, 0x59240400, 0x8c000502, 0x05000041, - 0x59240a08, 0x42001000, 0x0010ac8c, 0x0501fa3c, - 0x0500002b, 0x59240005, 0x82000500, 0x00ffff00, - 0x48024805, 0x59240200, 0x8c000502, 0x05000019, - 0x59240207, 0x82000500, 0x0000ffff, 0x05000015, - 0x8060c000, 0x59240c08, 0x05edfb6a, 0x4c640000, - 0x4c580000, 0x4d2c0000, 0x5924c809, 0x6040b000, - 0x50640000, 0x800001c0, 0x05000004, 0x4578c800, - 0x40025800, 0x05e5faa7, 0x8064c800, 0x8058b040, - 0x05fe07f8, 0x5c025800, 0x5c00b000, 0x5c00c800, - 0x59240200, 0x84000502, 0x84000544, 0x48024a00, - 0x59240400, 0x8c000504, 0x05000016, 0x59240200, - 0x84000546, 0x48024a00, 0x0501f012, 0x59240200, - 0x90000546, 0x84000506, 0x48024a00, 0x82042c00, - 0x00102013, 0x50142800, 0x82142d00, 0x000000ff, - 0x48164c08, 0x59240005, 0x82000500, 0x00ffff00, - 0x80140d40, 0x48064805, 0x40140800, 0x05edfb31, - 0x59240200, 0x84000518, 0x48024a00, 0x91264c0b, - 0x8058b040, 0x05fe07ad, 0x8060c1c0, 0x05020b0b, - 0x5c00c000, 0x42024800, 0x0010b111, 0x59242a00, - 0x8c140502, 0x05000005, 0x8c140500, 0x05000003, - 0x59242c08, 0x4817500f, 0x60140800, 0x0501f25f, - 0x4c5c0000, 0x4178b800, 0x59a80077, 0x80000540, - 0x05000021, 0x4803c857, 0x42001000, 0x00103d56, - 0x0511f802, 0x59a80077, 0x90000594, 0x05020019, - 0x59cc1006, 0x82081580, 0x11040000, 0x05020015, - 0x59cc1007, 0x8c08053e, 0x0500000a, 0x59a80015, - 0x8c000504, 0x05020007, 0x42000000, 0x0010afa4, - 0x0531fc61, 0x59a80015, 0x84000544, 0x48035015, - 0x805cb9c0, 0x05000004, 0x64235010, 0x05fdfe5e, - 0x0501f005, 0x64535010, 0x0501f805, 0x0501f002, - 0x0501fa0c, 0x5c00b800, 0x1c01f000, 0x4803c856, - 0x64575010, 0x91cca407, 0x4200a800, 0x0010ac8c, - 0x6010b000, 0x0531fd17, 0x4200a800, 0x0010ac8b, - 0x4600a800, 0x11040000, 0x8d0c0506, 0x05020041, - 0x42024800, 0x0010b111, 0x0531fd64, 0x59240400, - 0x8c000500, 0x0500002f, 0x59240200, 0x8c000500, - 0x0500002c, 0x8c000502, 0x0502002a, 0x59240c00, - 0x80040910, 0x82040d00, 0x000000ff, 0x42001000, - 0x0010ac8c, 0x0501f9a6, 0x05000010, 0x59240005, - 0x82000500, 0x00ffff00, 0x48024805, 0x59240200, - 0x84000502, 0x48024a00, 0x59242400, 0x8c100504, - 0x05000018, 0x84000546, 0x84000544, 0x48024a00, - 0x8060c000, 0x0501f013, 0x59240200, 0x90000546, - 0x84000506, 0x48024a00, 0x48064a08, 0x82042c00, - 0x00102013, 0x50142800, 0x82142d00, 0x000000ff, - 0x48164c08, 0x59240005, 0x82000500, 0x00ffff00, - 0x80140d40, 0x48064805, 0x40140800, 0x05edfab5, - 0x91264c0b, 0x8058b040, 0x05fe07cd, 0x42024800, - 0x0010b111, 0x59242a00, 0x8c140502, 0x05000005, - 0x8c140500, 0x05000003, 0x59242c08, 0x4817500f, - 0x60140800, 0x0501f1e9, 0x4c5c0000, 0x4178b800, - 0x59a80077, 0x80000540, 0x05000040, 0x4803c857, - 0x42001000, 0x00103d56, 0x050dff8c, 0x59a80077, - 0x90000594, 0x05020038, 0x59cc1006, 0x82080500, - 0x11050000, 0x82000580, 0x11050000, 0x05020032, - 0x8c080510, 0x05000013, 0x0501faf4, 0x59cc1007, - 0x8c08053e, 0x0500000a, 0x59a80015, 0x8c000504, - 0x05020007, 0x42000000, 0x0010afa4, 0x0531fbe6, - 0x59a80015, 0x84000544, 0x48035015, 0x805cb9c0, - 0x05000014, 0x642b5010, 0x05fdfdfa, 0x0501f01f, - 0x59cc1007, 0x8c08053e, 0x0500000a, 0x59a80015, - 0x8c000504, 0x05020007, 0x42000000, 0x0010afa4, - 0x0531fbd5, 0x59a80015, 0x84000544, 0x48035015, - 0x90000541, 0x0501fad5, 0x497b5073, 0x0501f002, - 0x64075073, 0x59cc1007, 0x8c08053c, 0x05000002, - 0x6423521b, 0x805cb9c0, 0x05020004, 0x645b5010, - 0x0501f808, 0x0501f005, 0x643b5010, 0x05fdfe44, - 0x0501f002, 0x0501f977, 0x5c00b800, 0x1c01f000, - 0x4803c856, 0x91cca406, 0x4200a800, 0x0010ac8b, - 0x6014b000, 0x0531fc83, 0x645f5010, 0x59a80073, - 0x8c000500, 0x05000006, 0x42001000, 0x0010ac8b, - 0x46001000, 0x11050100, 0x0501f002, 0x646f5010, - 0x42024800, 0x0010b111, 0x0531fccc, 0x599c2817, - 0x59240200, 0x8c000500, 0x05000025, 0x8c000502, - 0x05020023, 0x8c000506, 0x05020021, 0x4c580000, - 0x0501f8c2, 0x5c00b000, 0x0502000b, 0x59240005, - 0x82000500, 0x00ffff00, 0x48024805, 0x59240200, - 0x84000502, 0x84000546, 0x84000544, 0x48024a00, - 0x0501f013, 0x59240200, 0x90000546, 0x84000506, - 0x48024a00, 0x48064a08, 0x82042c00, 0x00102013, - 0x50142800, 0x82142d00, 0x000000ff, 0x48164c08, - 0x59240005, 0x82000500, 0x00ffff00, 0x80140d40, - 0x48064805, 0x40140800, 0x05edfa26, 0x91264c0b, - 0x8058b040, 0x05fe07d7, 0x42024800, 0x0010b111, - 0x59242a00, 0x8c140502, 0x05000005, 0x8c140500, - 0x05000003, 0x59242c08, 0x4817500f, 0x60140800, - 0x0501f95a, 0x4d3c0000, 0x60067800, 0x0529f805, - 0x5c027800, 0x1c01f000, 0x4c5c0000, 0x4178b800, - 0x59a80077, 0x80000540, 0x05000018, 0x4803c857, - 0x42001000, 0x00103d56, 0x050dfef8, 0x59a80077, - 0x82000580, 0x00000084, 0x0502000f, 0x59cc1006, - 0x82081580, 0x11060000, 0x0502000b, 0x80000580, - 0x0501fa62, 0x805cb9c0, 0x05000004, 0x64335010, - 0x05fdfdcb, 0x0501f005, 0x64635010, 0x0501f805, - 0x0501f002, 0x0501f90b, 0x5c00b800, 0x1c01f000, - 0x4803c856, 0x64675010, 0x91cca406, 0x4200a800, - 0x0010ac8b, 0x6084b000, 0x0531fc16, 0x42003800, - 0x0010ac8c, 0x42024800, 0x0010b111, 0x4200b000, - 0x0010b110, 0x5058b000, 0x59240200, 0x8c000500, - 0x05000019, 0x8c000502, 0x05000017, 0x401c2800, - 0x50141000, 0x80080130, 0x80000000, 0x40001800, - 0x82081500, 0x00ffffff, 0x800000f0, 0x80080540, - 0x44002800, 0x59244408, 0x82204500, 0x000000ff, - 0x400c1000, 0x80081104, 0x82083400, 0x0010ac8c, - 0x50181000, 0x900c0503, 0x0c01f808, 0x80081540, - 0x44083000, 0x91264c0b, 0x8058b040, 0x05fe07e3, - 0x60840800, 0x0501f109, 0x00103c76, 0x00103c7a, - 0x00103c7e, 0x00103c82, 0x802000f0, 0x82081500, - 0x00ffffff, 0x1c01f000, 0x802000e0, 0x82081500, - 0xff00ffff, 0x1c01f000, 0x802000d0, 0x82081500, - 0xffff00ff, 0x1c01f000, 0x40200000, 0x82081500, - 0xffffff00, 0x1c01f000, 0x4c5c0000, 0x4178b800, - 0x59a80077, 0x80000540, 0x05000018, 0x4803c857, - 0x42001000, 0x00103d56, 0x050dfe98, 0x59a80077, - 0x82000580, 0x00000084, 0x0502000f, 0x59cc1006, - 0x82081580, 0x11070000, 0x0502000b, 0x64075073, - 0x0501f897, 0x805cb9c0, 0x05000004, 0x643b5010, - 0x05fdfd7b, 0x0501f005, 0x646b5010, 0x0501f805, - 0x0501f002, 0x0501f8ab, 0x5c00b800, 0x1c01f000, - 0x90000541, 0x0501f9f5, 0x646f5010, 0x91cca406, - 0x4200a800, 0x0010ac8b, 0x59a82077, 0x40100000, - 0x8000b104, 0x40580800, 0x5450a800, 0x8050a000, - 0x8054a800, 0x8058b040, 0x05fe07fc, 0x0501f0c7, - 0x1c01f000, 0x1c01f000, 0x4803c856, 0x60103000, - 0x42004000, 0x0010ac8c, 0x599c2817, 0x8c140514, - 0x0502001c, 0x600c1000, 0x40200000, 0x80080400, - 0x50000800, 0x82042580, 0xffffffff, 0x05020005, - 0x80081040, 0x80183040, 0x05fe07f8, 0x0501f03f, - 0x800811c0, 0x05020006, 0x82042580, 0x3fffffff, - 0x05000039, 0x82040d40, 0xc0000000, 0x6080b000, - 0x60041800, 0x40042000, 0x80102102, 0x0502101f, - 0x800c18c2, 0x8058b040, 0x05fe07fc, 0x0501f02e, - 0x41781000, 0x40200000, 0x80080400, 0x50000800, - 0x82042580, 0xffffffff, 0x05020005, 0x80081000, - 0x80183040, 0x05fe07f8, 0x0501f023, 0x800811c0, - 0x05020003, 0x82040d40, 0xc0000000, 0x6004b000, - 0x42001800, 0x80000000, 0x40042000, 0x801020c2, - 0x05021006, 0x800c1902, 0x8058b000, 0x905804a1, - 0x05fc17fb, 0x0501f014, 0x40200000, 0x80082400, - 0x50100000, 0x800c0540, 0x44002000, 0x59a80015, - 0x84000540, 0x48035015, 0x40580000, 0x60802800, - 0x80142c80, 0x40080000, 0x600c3800, 0x801c0480, - 0x800000ca, 0x80142d40, 0x40140800, 0x90000541, - 0x0501f002, 0x80000580, 0x1c01f000, 0x4807c857, - 0x480bc857, 0x40041800, 0x41782000, 0x600c0000, - 0x900c1ca0, 0x05001004, 0x80102000, 0x80000040, - 0x05fdf7fc, 0x40041800, 0x801021c0, 0x05000004, - 0x900c1ca0, 0x80102040, 0x05fe07fe, 0x60042000, - 0x800c19c0, 0x05000004, 0x801020c2, 0x800c1840, - 0x05fe07fe, 0x80083c00, 0x401c2800, 0x50140000, - 0x80102d00, 0x05020007, 0x80100540, 0x44003800, - 0x59a80015, 0x84000540, 0x48035015, 0x80000580, - 0x1c01f000, 0x4807c856, 0x605c1100, 0x59a81836, - 0x0531fa73, 0x05f9ffd5, 0x1c01f000, 0x4807c856, - 0x6080b000, 0x91cca407, 0x4200a800, 0x0010cc24, - 0x0531f367, 0x4807c856, 0x0511fd9b, 0x61dc0801, - 0x0501f8d5, 0x497b2804, 0x497b2805, 0x497b2826, - 0x497b2827, 0x6006d800, 0x42006000, 0xbe7fffff, - 0x42006800, 0x00018000, 0x0501f94b, 0x42006000, - 0xfffeffff, 0x41786800, 0x0501f947, 0x497b5036, - 0x60b40800, 0x42001000, 0x00103dce, 0x050df5b8, - 0x4807c856, 0x05fdffe8, 0x497b5010, 0x497b5077, - 0x1c01f000, 0x4807c856, 0x42006000, 0xffffffff, - 0x60a06800, 0x0501f138, 0x4807c856, 0x05fdffd2, - 0x0511fa25, 0x4df00000, 0x0511fcba, 0x5c03e000, - 0x05100a0d, 0x59c400a4, 0x9000050f, 0x90000582, - 0x0502000a, 0x42006000, 0xffffffff, 0x42006800, - 0x00200000, 0x0501f928, 0x42006000, 0xffdfffff, - 0x41786800, 0x0501f924, 0x497b5010, 0x61dc0801, - 0x0501f8a1, 0x59c400a3, 0x82000500, 0xbf20bfff, - 0x82000540, 0x0001c000, 0x480388a3, 0x84000520, - 0x480388a3, 0x497b5036, 0x60b40800, 0x42001000, - 0x00103dce, 0x050df58a, 0x497b5077, 0x59b400f5, - 0x8c000500, 0x05020003, 0x90000541, 0x480368f5, - 0x800400c4, 0x82000400, 0x00002000, 0x4803910a, - 0x59b400f6, 0x90000518, 0x05fe07fe, 0x4a0368f0, - 0x0010ac84, 0x42000000, 0x0010ac8b, 0x4c040000, - 0x40043800, 0x50000800, 0x82040d80, 0x11010000, - 0x0500000c, 0x50000800, 0x4807c857, 0x8d0c052a, - 0x05000008, 0x4c000000, 0x821c3d40, 0x0000dc00, - 0x42000000, 0x0010ac85, 0x05e1fd62, 0x5c000000, - 0x5c000800, 0x480368f1, 0x82040400, 0x0000dc00, - 0x480368f3, 0x59c400a4, 0x9000050f, 0x90000588, - 0x05020013, 0x4c5c0000, 0x4c600000, 0x59c4b805, - 0x8c5c053a, 0x05020004, 0x42000000, 0x0010afa1, - 0x0531f9e9, 0x4a038805, 0x20000000, 0x05edfc41, - 0x4000c000, 0x05edfb87, 0x6006d800, 0x497b5010, - 0x5c00c000, 0x5c00b800, 0x1c01f000, 0x59c8010b, - 0x8c000502, 0x05fc07e8, 0x59c408a4, 0x90040d0f, - 0x90040d8b, 0x05020005, 0x59a80810, 0x82040d40, - 0x00002000, 0x0501f004, 0x59a80872, 0x82040d40, - 0x00001000, 0x48075036, 0x59a8087c, 0x800409c0, - 0x05020005, 0x6140080f, 0x42001000, 0x00103d56, - 0x050dfe90, 0x1c01f000, 0x4807c856, 0x05fdff5a, - 0x0511f9ad, 0x4df00000, 0x0511fc42, 0x5c03e000, - 0x05100995, 0x59c400a4, 0x9000050f, 0x90000582, - 0x0502000a, 0x42006000, 0xffffffff, 0x42006800, - 0x00200000, 0x0501f8b0, 0x42006000, 0xffdfffff, - 0x41786800, 0x0501f8ac, 0x0505fc56, 0x05000010, - 0x0505fc6a, 0x0502000e, 0x4a035013, 0x0000aaaa, - 0x4c040000, 0x05edf88b, 0x59a8001f, 0x82000500, - 0xffff0000, 0x80040540, 0x4803501f, 0x5c000800, - 0x64035014, 0x0505fbba, 0x0501f005, 0x64175075, - 0x60000001, 0x05e9ffde, 0x05fdff3f, 0x1c01f000, - 0x0501f809, 0x42006000, 0xbf7f7fff, 0x41786800, - 0x0501f091, 0x42006000, 0xbf7f7fff, 0x41786800, - 0x0501f08d, 0x0505fc4d, 0x05020009, 0x59c40006, - 0x82000540, 0x000000f0, 0x48038806, 0x42006000, - 0xbfffffff, 0x41786800, 0x0501f883, 0x1c01f000, - 0x40680800, 0x800408d0, 0x59a80015, 0x8c000506, - 0x05000006, 0x59a8000f, 0x82000500, 0x000000ff, - 0x80040540, 0x0501f003, 0x82040540, 0x000000f7, - 0x480388a7, 0x1c01f000, 0x4807c856, 0x42000000, - 0x0010b039, 0x0531f978, 0x60143000, 0x4d3c0000, - 0x4c180000, 0x60343000, 0x600a7800, 0x0501f037, - 0x4807c856, 0x42000000, 0x0010b05e, 0x0531f96e, - 0x60003000, 0x4d3c0000, 0x4c180000, 0x603c3000, - 0x61fc19ff, 0x601c2000, 0x05f9ff46, 0x5c003000, - 0x59240200, 0x84000556, 0x48024a00, 0x4d400000, - 0x60aa8000, 0x59240400, 0x8c00050a, 0x052c0a6a, - 0x600a7800, 0x05f1f93a, 0x5c028000, 0x5c027800, - 0x0005f45a, 0x4807c856, 0x42000000, 0x0010b05c, - 0x0531f955, 0x600c3000, 0x4d3c0000, 0x4c180000, - 0x60383000, 0x600a7804, 0x0501f014, 0x4807c856, - 0x42000000, 0x0010b05b, 0x0531f94b, 0x60103000, - 0x4d3c0000, 0x4c180000, 0x60403000, 0x600a7804, - 0x0501f00a, 0x4807c856, 0x42000000, 0x0010afa3, - 0x0531f941, 0x60043000, 0x4d3c0000, 0x4c180000, - 0x60303000, 0x600a7800, 0x61fc19ff, 0x601c2000, - 0x4d200000, 0x417a4000, 0x05f9ff16, 0x5c024000, - 0x5c003000, 0x4d400000, 0x052dff9d, 0x60aa8000, - 0x0201f800, 0x0010ebe6, 0x4c580000, 0x0531fa4f, - 0x42000800, 0x0010b111, 0x58040005, 0x82000500, - 0x000000ff, 0x48000805, 0x90040c0b, 0x8058b040, - 0x05fe07fa, 0x5c00b000, 0x5c028000, 0x5c027800, - 0x1c01f000, 0x4807c856, 0x05011000, 0x4a03c840, - 0x0010ac84, 0x6503c842, 0x40000000, 0x05fd17ff, - 0x42007800, 0x0010ac84, 0x64447800, 0x803c7800, - 0x4a007800, 0x220000ef, 0x4a007801, 0x000000ef, - 0x4a007802, 0x01380000, 0x64007803, 0x4a007804, - 0xffffffff, 0x64007805, 0x1c01f000, 0x40686000, - 0x406c6800, 0x59c400a3, 0x80300500, 0x80340540, - 0x480388a3, 0x1c01f000, 0x40686000, 0x4833c857, - 0x59c400a3, 0x80300540, 0x480388a3, 0x80300580, - 0x480388a3, 0x1c01f000, 0x4803c856, 0x05000003, - 0x6407507d, 0x0501f002, 0x497b507d, 0x1c01f000, - 0x59c80002, 0x80000540, 0x05000009, 0x80000040, - 0x05000007, 0x4a039005, 0x00000140, 0x60180000, - 0x80000040, 0x05fe07ff, 0x05fdf7f6, 0x1c01f000, - 0x4c5c0000, 0x4c600000, 0x59c4b805, 0x485fc856, - 0x8c5c053a, 0x05020004, 0x42000000, 0x0010afa1, - 0x0531f8e1, 0x4a038805, 0x20000000, 0x05edfb39, - 0x4000c000, 0x05edfa7f, 0x4a038805, 0x04000000, - 0x5c00c000, 0x5c00b800, 0x1c01f000, 0x497a6a00, - 0x0501fab4, 0x4a026c00, 0x00000707, 0x497a6801, - 0x497a6808, 0x497a6809, 0x497a6806, 0x497a6807, - 0x497a6c0b, 0x497a680c, 0x59240400, 0x8c00050a, - 0x05000005, 0x5934080f, 0x59340010, 0x80040540, - 0x05e20b1f, 0x4a026a04, 0x00000100, 0x497a6a03, - 0x59340402, 0x82000500, 0x000000ff, 0x48026c02, - 0x497a6c04, 0x497a6a05, 0x497a6c05, 0x497a6811, - 0x4d2c0000, 0x5934000d, 0x49466c03, 0x80025d40, - 0x05000003, 0x05e1feb4, 0x497a680d, 0x5c025800, - 0x599c0401, 0x48026a0b, 0x599c0208, 0x48026c12, - 0x4a02680a, 0x00008000, 0x0505f032, 0x60140000, - 0x80000d80, 0x0501f024, 0x0501fdd4, 0x05020013, - 0x59a8021b, 0x8c00050a, 0x0502000d, 0x59340212, - 0x82000500, 0x0000ff00, 0x4803c857, 0x05000008, - 0x59340a00, 0x8c04051e, 0x000002ad, 0x60a40000, - 0x60000820, 0x492fc857, 0x0501f013, 0x492fc857, - 0x60a00000, 0x0501f00e, 0x8d0c0502, 0x05020003, - 0x8d0c0500, 0x05000003, 0x60100000, 0x0501f008, - 0x60a40000, 0x59340a00, 0x8c04051e, 0x05000004, - 0x492fc857, 0x60000820, 0x0501f003, 0x492fc857, - 0x80000d80, 0x4803c857, 0x80028540, 0x1c01f000, - 0x490fc857, 0x8d0c0500, 0x05fe07f0, 0x0501fd84, - 0x05fe07ea, 0x59340200, 0x8c00050e, 0x05fc07e7, - 0x0001f2ad, 0x4d480000, 0x4d4c0000, 0x592e9009, - 0x592e980a, 0x0501fc52, 0x5c029800, 0x5c029000, - 0x05fc07c7, 0x0001f2b0, 0x492fc857, 0x592e8c07, - 0x83440d80, 0x000007fc, 0x05000004, 0x83440480, - 0x000007f0, 0x05021016, 0x592e4408, 0x0509fb61, - 0x05000dc4, 0x05020012, 0x0501fd7a, 0x05020012, - 0x0515fe11, 0x05000019, 0x83200400, 0x0010a0ec, - 0x50024800, 0x4926601d, 0x59340002, 0x4802600b, - 0x4936600a, 0x492e6009, 0x642a6407, 0x61027000, - 0x0005fc78, 0x80000580, 0x0501f00b, 0x60a00000, - 0x0501f008, 0x0501fd7d, 0x05fc07fd, 0x910c0d03, - 0x05000003, 0x60100000, 0x0501f002, 0x60a40000, - 0x80000540, 0x1c01f000, 0x60b00000, 0x05fdf7fd, - 0x492fc857, 0x592e4408, 0x4923c857, 0x0509fb3d, - 0x592c4208, 0x0500000a, 0x60380000, 0x59240a00, - 0x8c040500, 0x05000160, 0x90200d0f, 0x90040d88, - 0x0502015d, 0x90200d30, 0x0500015b, 0x592e8c07, - 0x4947c857, 0x83440c80, 0x00000800, 0x60280000, - 0x05021155, 0x4823c857, 0x9020050f, 0x0c01f001, - 0x00103f7b, 0x00103ff2, 0x00104035, 0x0010403d, - 0x00104045, 0x00103f78, 0x00103f78, 0x00103f78, - 0x0010404f, 0x0010409c, 0x001040b8, 0x00103f78, - 0x00103f78, 0x00103f78, 0x00103f78, 0x00103f78, - 0x4803c857, 0x60300000, 0x0501f13f, 0x592c1009, - 0x82081500, 0x00ffffff, 0x59240005, 0x80084d80, - 0x60400000, 0x05000138, 0x0501fca7, 0x0500002d, - 0x4803c857, 0x90004d9d, 0x05020016, 0x0005f8e2, - 0x59340405, 0x4c000000, 0x0501fd11, 0x5c000000, - 0x05000004, 0x8c20050a, 0x05000022, 0x80000580, - 0x44002800, 0x59340008, 0x48002802, 0x59340009, - 0x48002801, 0x59340006, 0x48002804, 0x59340007, - 0x48002803, 0x6014b000, 0x0525f9c6, 0x0501f141, - 0x4803c857, 0x90004d9a, 0x05020003, 0x40101000, - 0x0501f11e, 0x4803c857, 0x90004d9b, 0x05020003, - 0x40181000, 0x0501f119, 0x4803c857, 0x90004d9f, - 0x0500011a, 0x90004d9c, 0x05000118, 0x90004d99, - 0x60280000, 0x0500010c, 0x60280000, 0x0502011d, - 0x59a8008d, 0x8c000502, 0x05000016, 0x0501fce8, - 0x05000014, 0x59340212, 0x82000500, 0x0000ff00, - 0x60401000, 0x0502000b, 0x60201000, 0x59a8021b, - 0x8c000506, 0x05020008, 0x59340002, 0x82000500, - 0x00ff0000, 0x82000580, 0x00ff0000, 0x05000005, - 0x0501ff59, 0x60700000, 0x40181000, 0x050200f7, - 0x0515fd7d, 0x050000ff, 0x82200500, 0x00000100, - 0x0501fc79, 0x4926601d, 0x4936600a, 0x0521ff12, - 0x492e6009, 0x64066407, 0x8c20050a, 0x05000004, - 0x592c0405, 0x8400055c, 0x48025c05, 0x4c200000, - 0x4d3c0000, 0x60027830, 0x0201f800, 0x0010ec6c, - 0x5c027800, 0x5c004000, 0x8c200512, 0x0500000b, - 0x599c0018, 0x8c000518, 0x05000008, 0x592c000a, - 0x82000500, 0x00000380, 0x5934080a, 0x80040d40, - 0x84040d54, 0x4806680a, 0x417a7800, 0x0501f8f5, - 0x600c0800, 0x0501f8fe, 0x600a7000, 0x0005fc78, - 0x80000580, 0x0501f0ee, 0x0501fd02, 0x050200d9, - 0x0501fcad, 0x05000009, 0x0501fca5, 0x050200d9, - 0x4c600000, 0x4178c000, 0x60027830, 0x417a6000, - 0x05edfcf9, 0x5c00c000, 0x59a8008d, 0x8c000502, - 0x05000016, 0x0501fc9a, 0x05000014, 0x59340212, - 0x82000500, 0x0000ff00, 0x60401000, 0x0502000b, - 0x60201000, 0x59a8021b, 0x8c000506, 0x05020008, - 0x59340002, 0x82000500, 0x00ff0000, 0x82000580, - 0x00ff0000, 0x05000005, 0x0501ff0b, 0x60700000, - 0x40181000, 0x050200a9, 0x0515fd2f, 0x050000b1, - 0x5934080a, 0x8c200512, 0x0500000c, 0x599c0018, - 0x8c000518, 0x05000009, 0x592c000a, 0x82000500, - 0x00000380, 0x82041500, 0xfffffc7f, 0x80080d40, - 0x84040d54, 0x0501f002, 0x84040d14, 0x4806680a, - 0x4926601d, 0x4936600a, 0x0521feb7, 0x492e6009, - 0x64066407, 0x417a7800, 0x0501f8b2, 0x60140800, - 0x0501f8bb, 0x600e7000, 0x0005fc78, 0x80000580, - 0x0501f0ab, 0x0501fcbf, 0x05020096, 0x0501fc7e, - 0x05020098, 0x0525f861, 0x0500008e, 0x80000580, - 0x0501f0a3, 0x0501fcb7, 0x0502008e, 0x0501fc76, - 0x05020090, 0x0521fb78, 0x05000086, 0x80000580, - 0x0501f09b, 0x0501fcaf, 0x05020086, 0x83444d80, - 0x000007fe, 0x60280000, 0x0502006f, 0x0525f863, - 0x0500007c, 0x80000580, 0x0501f091, 0xb0200530, - 0x05020004, 0x8c20050e, 0x60300000, 0x05020066, - 0x8c20050a, 0x0500000c, 0x4d3c0000, 0x600278a0, - 0x8c20050e, 0x05020003, 0x853e7d56, 0x853e7d1c, - 0x82200500, 0x000004a0, 0x0501fc0a, 0x5c027800, - 0x0501f07c, 0x8c200508, 0x0502001e, 0x592c1009, - 0x82081500, 0x00ffffff, 0x59240005, 0x80084d80, - 0x60400000, 0x05000050, 0x0501fbbf, 0x05000024, - 0x4803c857, 0x90004d9a, 0x05020003, 0x40101000, - 0x0501f04e, 0x4803c857, 0x90004d9b, 0x05020003, - 0x40181000, 0x0501f049, 0x4803c857, 0x90004d9f, - 0x0500004a, 0x90004d9c, 0x05000048, 0x90004d99, - 0x60280000, 0x0500003c, 0x60280000, 0x0501f04d, - 0x0501fc74, 0x0502004b, 0x4d3c0000, 0x600278a0, - 0x8c20050e, 0x05020003, 0x853e7d56, 0x853e7d1c, - 0x82200500, 0x00000090, 0x0501fbc9, 0x5c027800, - 0x60280000, 0x0502002c, 0x0501f04e, 0x916c0583, - 0x601c0800, 0x05020005, 0x0521ffc0, 0x05000006, - 0x80000580, 0x0501f04a, 0x0501fc43, 0x05000042, - 0x0501f044, 0x0501fc40, 0x0500002e, 0x0501f041, - 0x0501fc58, 0x0502002f, 0x916c0583, 0x05020036, - 0x8c200508, 0x05000008, 0x4c600000, 0x4178c000, - 0x60027830, 0x417a6000, 0x05edfc4f, 0x5c00c000, - 0x0501f034, 0x0501fbf8, 0x05000009, 0x0501fbf0, - 0x05020024, 0x4c600000, 0x4178c000, 0x60027830, - 0x417a6000, 0x05edfc44, 0x5c00c000, 0x480bc856, - 0x0521fe3f, 0x05000013, 0x80000580, 0x0501f028, - 0x05fdf7e4, 0x480bc857, 0x60640800, 0x40001000, - 0x6008b000, 0x0501f008, 0x480bc857, 0x40000800, - 0x6008b000, 0x0501f004, 0x480bc857, 0x40000800, - 0x6004b000, 0x480bc857, 0x60c68000, 0x0501f017, - 0x480bc857, 0x600c0800, 0x6004b000, 0x05fdf7fa, - 0x480bc857, 0x60280800, 0x6004b000, 0x05fdf7f6, - 0x480bc857, 0x60240800, 0x40001000, 0x6008b000, - 0x05fdf7f1, 0x480bc857, 0x601c0800, 0x6004b000, - 0x05fdf7ed, 0x480bc857, 0x6004b000, 0x05fdf7ea, - 0x80028580, 0x4178b000, 0x90000541, 0x1c01f000, - 0x4937c857, 0x5932680a, 0x59341200, 0x813e79c0, - 0x05000003, 0x84081540, 0x0501f002, 0x84081500, - 0x480a6a00, 0x1c01f000, 0x40680800, 0x5932680a, - 0x5c000000, 0x4c000000, 0x4803c857, 0x4937c857, - 0x90040586, 0x05020003, 0x6018000c, 0x0501f014, - 0x90040584, 0x05020003, 0x60100008, 0x0501f010, - 0x90040587, 0x601c000e, 0x0500000d, 0x90040583, - 0x600c000e, 0x0500000a, 0x90040585, 0x60140008, - 0x05000007, 0x90040589, 0x60240008, 0x05000004, - 0x9004058b, 0x602c000e, 0x05e208e9, 0x4803c857, - 0x48026c00, 0x90040d86, 0x05020004, 0x59341404, - 0x800811c0, 0x05e008e2, 0x1c01f000, 0x40683000, - 0x0501f805, 0x41358800, 0x05000002, 0x41798800, - 0x1c01f000, 0x5c000000, 0x4c000000, 0x4803c857, - 0x4947c857, 0x481bc857, 0x83440480, 0x00000800, - 0x05021055, 0x83200400, 0x0010a0ec, 0x50024800, - 0x59240009, 0x83441480, 0x000007f0, 0x05001003, - 0x80081400, 0x0501f003, 0x83441400, 0x0010a380, - 0x50080000, 0x80026d40, 0x05000005, 0x59340013, - 0x80000130, 0x81200580, 0x05000016, 0x4c180000, - 0x4d2c0000, 0x05e1fc38, 0x412e6800, 0x5c025800, - 0x5c003000, 0x0500003c, 0x59242005, 0x812000f0, - 0x80102540, 0x48126813, 0x59242207, 0x80102000, - 0x48124a07, 0x45341000, 0x497a680d, 0x497a6810, - 0x497a680f, 0x4c180000, 0x05fdfd7d, 0x5c003000, - 0x59340a12, 0x4c040000, 0x0505f8e7, 0x5c000800, - 0x05000009, 0x82180500, 0x00ffff00, 0x05000008, - 0x59a8100f, 0x82081500, 0x00ffff00, 0x80080580, - 0x05000003, 0x80000580, 0x0501f004, 0x82180500, - 0x000000ff, 0x800000d0, 0x80040d80, 0x05000003, - 0x4803c857, 0x48026a12, 0x59340813, 0x59242005, - 0x812000f0, 0x80102540, 0x40040000, 0x80100580, - 0x05000003, 0x4813c857, 0x48126813, 0x83440580, - 0x000007fe, 0x05020004, 0x4a026802, 0x00fffffe, - 0x0501f006, 0x59340002, 0x80180580, 0x05000003, - 0x481bc857, 0x481a6802, 0x0501f806, 0x80000580, - 0x1c01f000, 0x4803c856, 0x90000541, 0x05fdf7fd, - 0x59341200, 0x84081508, 0x5934000a, 0x8c00050c, - 0x0502000b, 0x599c0018, 0x8c000510, 0x05000009, - 0x59a80006, 0x8c00050a, 0x05000005, 0x59340c03, - 0x82040480, 0x000007f0, 0x05001002, 0x84081548, - 0x480a6a00, 0x1c01f000, 0x4947c857, 0x83440480, - 0x00000800, 0x05021018, 0x83200400, 0x0010a0ec, - 0x50024800, 0x59240009, 0x83441480, 0x000007f0, - 0x05001003, 0x80081400, 0x0501f003, 0x83441400, - 0x0010a380, 0x50080000, 0x80026d40, 0x05000009, - 0x0501fb03, 0x05020008, 0x8d0c0502, 0x05000004, - 0x59340200, 0x8c00050e, 0x05000003, 0x90000541, - 0x1c01f000, 0x80000580, 0x05fdf7fe, 0x5c000000, - 0x4c000000, 0x4803c857, 0x4947c857, 0x0501f805, + 0x805cb910, 0x800c1840, 0x900c1581, 0x05000013, + 0x64103000, 0x64803800, 0x05fdff30, 0x05000031, + 0x640c3000, 0x501c0800, 0x4807c857, 0x9c0409c0, + 0x8004bd57, 0x485fc857, 0x480fc857, 0x445cc800, + 0x8064c800, 0x4178b800, 0x800c1840, 0x900c1581, + 0x05000002, 0x05fdf7c2, 0x64103000, 0x65a03800, + 0x05fdff1e, 0x0500001f, 0x640c3000, 0x501c0800, + 0x4807c857, 0x82040d00, 0x000000ff, 0x9c0409c0, + 0x8004bd57, 0x4807c857, 0x485fc857, 0x4863c857, + 0x4867c857, 0x480fc857, 0x40301000, 0x41780800, + 0x60100000, 0x0511fe7d, 0x4807c857, 0x800409c0, + 0x05000006, 0x60100000, 0x80000c81, 0x805cb910, + 0x80040840, 0x05fe07fe, 0x445cc800, 0x485fc857, + 0x4863c857, 0x4867c857, 0x90000541, 0x4803c856, + 0x5c00c000, 0x5c00b800, 0x1c01f000, 0x0501f805, 0x60058800, 0x05000002, 0x60018800, 0x1c01f000, - 0x4d2c0000, 0x4d300000, 0x83440480, 0x00000800, - 0x0502101d, 0x83441400, 0x0010a380, 0x50080000, - 0x80026d40, 0x05000014, 0x45781000, 0x5934000d, - 0x80025d40, 0x05e20bdc, 0x59366011, 0x813261c0, - 0x0500000a, 0x4c640000, 0x5930c800, 0x59325809, - 0x0521f952, 0x05e20bd4, 0x0005fc5a, 0x90666540, - 0x05fe07fa, 0x5c00c800, 0x0501fd56, 0x41365800, - 0x05e1fbc5, 0x80000580, 0x5c026000, 0x5c025800, - 0x1c01f000, 0x90000541, 0x05fdf7fc, 0x0001fae7, - 0x41358800, 0x05000002, 0x41798800, 0x1c01f000, - 0x4c580000, 0x59cc0001, 0x4937c857, 0x82000500, - 0x00ffffff, 0x48026802, 0x497a6c01, 0x497a6a01, - 0x59340200, 0x84000502, 0x48026a00, 0x4004b000, - 0x0505f84d, 0x05020012, 0x59340403, 0x82000580, - 0x000007fe, 0x05000005, 0x59a8021b, 0x8c00050a, - 0x0502000b, 0x0501f008, 0x59cc0408, 0x8c000518, - 0x05000007, 0x59cc0009, 0x4803502c, 0x59cc000a, - 0x4803502d, 0x8058b1c0, 0x05020001, 0x59cc0a09, - 0x90040d10, 0x59cc0408, 0x90000520, 0x05000005, - 0x84040d40, 0x59a8121b, 0x8408155a, 0x480b521b, - 0x5934000a, 0x82000500, 0xffffffee, 0x80040540, - 0x4802680a, 0x91cca40b, 0x9134ac06, 0x6008b000, - 0x052dfe5c, 0x91cca40d, 0x9134ac08, 0x6008b000, - 0x052dfe58, 0x59a8208c, 0x82100d00, 0x0000f000, - 0x82040d80, 0x00003000, 0x05020017, 0x59cc0013, - 0x8c00053e, 0x05000014, 0x59cc0414, 0x599c0818, - 0x8c040512, 0x0500000e, 0x8c00051e, 0x05000005, - 0x59340200, 0x84000546, 0x84000544, 0x48026a00, - 0x59cc0213, 0x8c000516, 0x05000005, 0x59340200, - 0x8400054c, 0x84000544, 0x48026a00, 0x59cc0a14, - 0x0501f005, 0x59340200, 0x84000508, 0x48026a00, - 0x59cc0a18, 0x82040480, 0x00000800, 0x0502100a, - 0x82040480, 0x00000400, 0x05001003, 0x60000808, - 0x0501f005, 0x82040480, 0x00000200, 0x05001002, - 0x60000804, 0x42001000, 0x0010ac7a, 0x58080201, - 0x80041480, 0x05001002, 0x40000800, 0x48066a04, - 0x59340403, 0x82000580, 0x000007fe, 0x05020003, - 0x59cc0a08, 0x48066a04, 0x0501fcfa, 0x5c00b000, - 0x1c01f000, 0x59a8021b, 0x4937c857, 0x8c000508, - 0x05000007, 0x84000556, 0x4803c857, 0x4803521b, - 0x42001000, 0x0010f674, 0x050df8d8, 0x59cc0207, - 0x4803c857, 0x48026a05, 0x59cc020a, 0x4803c857, - 0x48026c05, 0x59341200, 0x599c0818, 0x5934180a, - 0x4807c857, 0x480bc857, 0x480fc857, 0x59cc2006, - 0x82102500, 0xff000000, 0x82102580, 0x02000000, - 0x05000007, 0x8c00050e, 0x05000009, 0x8c0c0514, - 0x05000003, 0x8c0c050e, 0x05000005, 0x8c040518, - 0x05000003, 0x8408154a, 0x0501f002, 0x8408150a, - 0x8c000510, 0x05000009, 0x8c0c0514, 0x05000003, - 0x8c0c0510, 0x05000005, 0x8c040518, 0x05000003, - 0x8408154e, 0x0501f002, 0x8408150e, 0x8c000512, - 0x05000009, 0x8c0c0514, 0x05000003, 0x8c0c0512, - 0x05000005, 0x8c040518, 0x05000003, 0x8408155c, - 0x0501f002, 0x8408151c, 0x480a6a00, 0x1c01f000, - 0x4803c856, 0x4c5c0000, 0x4d2c0000, 0x4c580000, - 0x5934000d, 0x80025d40, 0x05000023, 0x592c0003, - 0x90000488, 0x0500100a, 0x412cb800, 0x592c0001, - 0x80025d40, 0x05fe07fa, 0x05e1faea, 0x0500002e, - 0x492fc857, 0x492cb801, 0x0501f01b, 0x912c0c04, - 0x6020b000, 0x50040000, 0x82000580, 0xffffffff, - 0x05020006, 0x80041000, 0x50080000, 0x82000580, - 0xffffffff, 0x05000005, 0x90040c02, 0x8058b040, - 0x05fe07f5, 0x05ddff4a, 0x45480800, 0x454c1000, - 0x592c1803, 0x800c1800, 0x480e5803, 0x480fc857, - 0x0501f010, 0x05e1facf, 0x05000013, 0x492fc857, - 0x492e680d, 0x497a5802, 0x64065803, 0x494a5804, - 0x494e5805, 0x912c0c06, 0x6038b000, 0x46000800, - 0xffffffff, 0x80040800, 0x8058b040, 0x05fe07fc, - 0x90000541, 0x5c00b000, 0x5c025800, 0x5c00b800, - 0x1c01f000, 0x80000580, 0x05fdf7fb, 0x4803c856, - 0x4d3c0000, 0x4d2c0000, 0x5934000d, 0x80025d40, - 0x0500001c, 0x592c0002, 0x80000540, 0x0502001c, - 0x412e7800, 0x0501f8a6, 0x05020019, 0x46000800, - 0xffffffff, 0x46001000, 0xffffffff, 0x4813c857, - 0x480fc857, 0x580c0003, 0x90000c82, 0x05021012, - 0x480fc857, 0x400c0000, 0x812c0580, 0x05020004, - 0x580c0001, 0x4802680d, 0x0501f003, 0x580c0001, - 0x48002001, 0x400e5800, 0x05e1faaa, 0x90000541, - 0x5c025800, 0x5c027800, 0x1c01f000, 0x80000580, - 0x05fdf7fc, 0x80000040, 0x48001803, 0x4803c857, - 0x05fdf7f7, 0x64225a07, 0x0001f35b, 0x64a65a07, - 0x0001f35b, 0x64aa5a07, 0x0001f35b, 0x64a25a07, - 0x0001f35b, 0x643a5a07, 0x0001f35b, 0x4943c857, - 0x4d440000, 0x4d340000, 0x4d2c0000, 0x4c580000, - 0x61c0b00f, 0x417a8800, 0x0001fae7, 0x05020007, - 0x8d3c0506, 0x05000004, 0x59340200, 0x8c00050e, - 0x05020002, 0x0501f811, 0x81468800, 0x8058b040, - 0x05fe07f6, 0x83440480, 0x00000800, 0x05021006, - 0x8d3c0502, 0x05000004, 0x61c2880f, 0x6040b000, - 0x05fdf7ee, 0x5c00b000, 0x5c025800, 0x5c026800, - 0x5c028800, 0x1c01f000, 0x4d2c0000, 0x4c600000, - 0x4c5c0000, 0x4178b800, 0x5936580f, 0x812e59c0, - 0x0500002b, 0x592c0205, 0x82000500, 0x000000ff, - 0x90000592, 0x05000023, 0xb00005a0, 0x05000021, - 0x90000588, 0x0500001f, 0x8d3c0500, 0x05000003, - 0x0501f845, 0x0502001b, 0x592cc000, 0x497a5800, - 0x805cb9c0, 0x05020009, 0x59340010, 0x812c0580, - 0x05020004, 0x497a680f, 0x497a6810, 0x0501f008, - 0x4862680f, 0x0501f006, 0x4860b800, 0x59340010, - 0x812c0580, 0x05020002, 0x485e6810, 0x0001ff6c, - 0x4a025a05, 0x00000103, 0x49425a07, 0x497a580a, - 0x0521f936, 0x0001fb5b, 0x40625800, 0x05fdf7d8, - 0x412cb800, 0x592e5800, 0x05fdf7d5, 0x5c00b800, - 0x5c00c000, 0x5c025800, 0x1c01f000, 0x4803c856, - 0x41781800, 0x5934000f, 0x80025d40, 0x05000018, - 0x592c0006, 0x80200580, 0x592c0000, 0x05000003, - 0x412c1800, 0x05fdf7f9, 0x592c0a05, 0x82040d00, - 0x000000ff, 0x90040d92, 0x05fc07fa, 0xb0040da0, - 0x05fc07f8, 0x90040d88, 0x05fc07f6, 0x497a5800, - 0x800c19c0, 0x05000007, 0x48001800, 0x80000540, - 0x05020003, 0x480e6810, 0x90000541, 0x1c01f000, - 0x4802680f, 0x80000540, 0x05fe07fd, 0x497a6810, - 0x05fdf7fa, 0x592c0009, 0x81480580, 0x05020003, - 0x592c000a, 0x814c0580, 0x1c01f000, 0x4803c856, - 0x4c580000, 0x413c1800, 0x400c2000, 0x593c0002, - 0x80000540, 0x05020014, 0x6020b000, 0x900c0c04, - 0x50040000, 0x81480580, 0x05020005, 0x80041000, - 0x50080000, 0x814c0580, 0x0500000b, 0x90040c02, - 0x8058b040, 0x05fe07f7, 0x400c2000, 0x580c0001, - 0x80001d40, 0x05fe07f1, 0x90000541, 0x5c00b000, - 0x1c01f000, 0x80000580, 0x05fdf7fd, 0x4937c857, - 0x4c580000, 0x4d2c0000, 0x5934000d, 0x80025d40, - 0x05020011, 0x05e1f9e7, 0x0500000c, 0x492e680d, - 0x64065802, 0x497a5803, 0x912c0c04, 0x6040b000, - 0x46000800, 0xffffffff, 0x80040800, 0x8058b040, - 0x05fe07fc, 0x90000541, 0x5c025800, 0x5c00b000, - 0x1c01f000, 0x4d2c0000, 0x592e5801, 0x05e1f9ee, - 0x5c025800, 0x497a5801, 0x05fdf7ee, 0x4d2c0000, - 0x5936580d, 0x812e59c0, 0x05000005, 0x4937c857, - 0x497a680d, 0x05e1f9e4, 0x90000541, 0x5c025800, - 0x1c01f000, 0x59340405, 0x4937c857, 0x4803c857, - 0x8c000508, 0x1c01f000, 0x4933c857, 0x5930380a, - 0x581c0200, 0x8400051a, 0x48003a00, 0x1c01f000, - 0x4933c857, 0x5930000a, 0x50000000, 0x8c000508, - 0x1c01f000, 0x0501f805, 0x60058800, 0x05020002, - 0x60018800, 0x1c01f000, 0x5930000a, 0x50000000, - 0x4933c857, 0x4803c857, 0x8c00050e, 0x1c01f000, - 0x5930000a, 0x50000000, 0x8c00050a, 0x1c01f000, - 0x0501f805, 0x60058800, 0x05000002, 0x60018800, - 0x1c01f000, 0x4933c856, 0x0501f8d2, 0x05000005, - 0x59340400, 0x82000d00, 0x000000ff, 0x90041585, - 0x1c01f000, 0x4803c856, 0x59a80a1b, 0x8c040506, - 0x0500000a, 0x5930081d, 0x58040200, 0x8c000500, - 0x05000006, 0x58040009, 0x9000040e, 0x50000800, - 0x58040200, 0x8c00051a, 0x1c01f000, 0x0501f805, + 0x60003020, 0x80183040, 0x05000010, 0x0535fad2, + 0x05fc07fd, 0x05e5fdfa, 0x605430f4, 0x50183800, + 0x821c0500, 0x00007000, 0x05000006, 0x48035094, + 0x821c0500, 0xffff8fff, 0x44003000, 0x80000580, + 0x64030000, 0x1c01f000, 0x4803c856, 0x4a034408, + 0x0000cccc, 0x90000541, 0x05fdf7fa, 0x0535fabe, + 0x05fc07ff, 0x600008f4, 0x58040015, 0x82000500, + 0xffff8fff, 0x59a81094, 0x80080540, 0x48000815, + 0x64030000, 0x1c01f000, 0x59a80005, 0x8c000514, + 0x05000005, 0x42000000, 0x0010aed8, 0x50000000, + 0x90000528, 0x1c01f000, 0x59c400a4, 0x4c580000, + 0x4c500000, 0x4c540000, 0x9000050f, 0x90000487, + 0x05001008, 0x90006c87, 0x05e61925, 0x0c01f807, + 0x5c00a800, 0x5c00a000, 0x5c00b000, 0x1c01f000, + 0x0501f8e9, 0x05fdf7fb, 0x001038d9, 0x001038df, + 0x00103903, 0x0010391d, 0x001039bf, 0x001038d8, + 0x1c01f000, 0x59c40806, 0x8c040500, 0x05020003, + 0x84040d40, 0x48078806, 0x1c01f000, 0x59c40005, + 0x8c000534, 0x0502069e, 0x4a038805, 0xffffffff, + 0x42006000, 0x00020000, 0x0501fe80, 0x59a80015, + 0x82000500, 0xfffffffa, 0x84000542, 0x48035015, + 0x497b521b, 0x42000800, 0x0010cea4, 0x45780800, + 0x497b5073, 0x42000000, 0x0010b38f, 0x46000000, + 0x0000ffff, 0x42006000, 0xffefffff, 0x42006800, + 0x40000000, 0x0501fe67, 0x59c40006, 0x82000500, + 0xffffff0f, 0x48038806, 0x60400800, 0x42001000, + 0x00103ecb, 0x0511fbdc, 0x0501f001, 0x42006000, + 0xffffffff, 0x42006800, 0x00800000, 0x0501fe59, + 0x6120b001, 0x59c400a4, 0x9000050f, 0x9000058a, + 0x0500000d, 0x8058b040, 0x05fe07fb, 0x497b5010, + 0x42006000, 0xbf7fffff, 0x42006800, 0x00018000, + 0x0501fe4c, 0x42006000, 0xfffeffff, 0x41786800, + 0x0501f648, 0x497b5010, 0x64035072, 0x80000580, + 0x0501f651, 0x4a038805, 0xffffffff, 0x59a80072, + 0x90000c84, 0x05e618ce, 0x0c01f001, 0x00103926, + 0x0010394c, 0x001039b8, 0x4803c856, 0x59c400a3, + 0x8400051e, 0x480388a3, 0x64075072, 0x59c40008, + 0x82000540, 0x00000280, 0x48038808, 0x0501fe19, + 0x42007800, 0x0010af05, 0x4a007806, 0x11010000, + 0x4200a000, 0x0010b392, 0x4200a800, 0x0010af0c, + 0x6008b000, 0x0535f9d7, 0x59c40802, 0x84040d0c, + 0x48078802, 0x600c0800, 0x497b507c, 0x0501fd0e, + 0x6407507c, 0x497b5077, 0x0501fe31, 0x42006000, + 0xffffffff, 0x42006800, 0x00080000, 0x0501fe19, + 0x42006000, 0xfff7ffff, 0x41786800, 0x0501f615, + 0x59a80077, 0x497b5077, 0x80002540, 0x0500005e, + 0x59c40004, 0x90000503, 0x05020065, 0x59a80815, + 0x8c040502, 0x05000049, 0x9010058c, 0x0502004c, + 0x90100418, 0x8000b104, 0x41cc1000, 0x42001800, + 0x0010af05, 0x50080800, 0x500c0000, 0x80040580, + 0x05020019, 0x80081000, 0x800c1800, 0x8058b040, + 0x05fe07f9, 0x0501fe0e, 0x59c80015, 0x84000508, + 0x48039015, 0x42006000, 0xffffffff, 0x42006800, + 0x00500000, 0x0501fdf3, 0x640b5072, 0x640b5010, + 0x05edfcbc, 0x6140080f, 0x42001000, 0x00103e29, + 0x0511fcaa, 0x59a80015, 0x84000506, 0x48035015, + 0x0501f5d0, 0x59cc0806, 0x82040d80, 0x11010000, + 0x05020027, 0x59cc0800, 0x82040500, 0x00ffffff, + 0x05000018, 0x82000580, 0x000000ef, 0x05020015, + 0x59cc0801, 0x82040500, 0x00ffffff, 0x82000580, + 0x000000ef, 0x0502000f, 0x91cca407, 0x4200a800, + 0x0010b392, 0x6008b000, 0x50500800, 0x50540000, + 0x80040480, 0x05001007, 0x05020011, 0x8050a000, + 0x8054a800, 0x8058b040, 0x05fe07f8, 0x0501f00c, + 0x59a80015, 0x84000502, 0x48035015, 0x59c80015, + 0x84000508, 0x48039015, 0x41cca000, 0x4200a800, + 0x0010af05, 0x6024b000, 0x0535f96e, 0x0501fdd0, + 0x42006000, 0xffffffff, 0x42006800, 0x00080000, + 0x0501fdb8, 0x42006000, 0xfff7ffff, 0x41786800, + 0x0501fdb4, 0x42006000, 0xffffffff, 0x60006880, + 0x0501fdb0, 0x59c40004, 0x90000503, 0x05020004, + 0x497b5077, 0x600c0800, 0x0501f497, 0x1c01f000, + 0x1c01f000, 0x59a80010, 0x90006d8f, 0x05000003, + 0x9000059b, 0x05020c62, 0x1c01f000, 0x59a80015, + 0x84000506, 0x48035015, 0x497b507c, 0x59a80010, + 0x90000c9e, 0x05e6182a, 0x0c01f001, 0x001039f6, + 0x00103a06, 0x00103a28, 0x00103a42, 0x00103a60, + 0x00103a63, 0x00103a66, 0x00103a69, 0x00103a6c, + 0x00103a80, 0x00103a83, 0x00103ad7, 0x00103ada, + 0x00103ae7, 0x00103aea, 0x00103afc, 0x00103b01, + 0x00103b50, 0x00103b77, 0x00103bef, 0x00103c16, + 0x00103c65, 0x00103cab, 0x00103cf9, 0x00103d17, + 0x00103d59, 0x00103d77, 0x00103d87, 0x00103d88, + 0x4803c856, 0x601ed800, 0x0509f94c, 0x05000006, + 0x42006000, 0xffffffd7, 0x41786800, 0x0501fd75, + 0x0501f009, 0x59c40006, 0x82000500, 0xffffff0f, + 0x48038806, 0x4a038805, 0x000000f0, 0x0509fc9a, + 0x0509f8b3, 0x1c01f000, 0x4803c856, 0x42006000, + 0xbf7fffff, 0x42006800, 0x00400000, 0x0501fd65, + 0x05edfc30, 0x64075010, 0x42001000, 0x00103ecb, + 0x0511fafb, 0x0501fcd3, 0x6140080f, 0x42001000, + 0x00103e29, 0x0511f419, 0x59a80077, 0x90000594, + 0x0502001e, 0x4803c857, 0x42006000, 0xffbfffff, + 0x41786800, 0x0501fd53, 0x59c40004, 0x90000503, + 0x05020016, 0x42001000, 0x00103e29, 0x0511fad5, + 0x59cc1006, 0x82081580, 0x11020000, 0x05020010, + 0x59cc1007, 0x8c08053e, 0x0500000a, 0x59a80015, + 0x8c000504, 0x05020007, 0x42000000, 0x0010b224, + 0x0535f825, 0x59a80015, 0x84000544, 0x48035015, + 0x64435010, 0x0501f0dc, 0x1c01f000, 0x0501f3f8, + 0x4803c856, 0x640f5010, 0x42006000, 0xbf3fffff, + 0x42006800, 0x00100000, 0x0501fd32, 0x42001000, + 0x00103ecb, 0x0511faca, 0x0501fca2, 0x42001000, + 0x00103e29, 0x0511fab3, 0x59a8041b, 0x90000528, + 0x05000004, 0x42000800, 0xffffd815, 0x05f1fdf7, + 0x42007800, 0x0010af0b, 0x46007800, 0x11020000, + 0x60140800, 0x0501f40c, 0x59a80077, 0x80000540, + 0x0500001a, 0x4803c857, 0x42001000, 0x00103e29, + 0x0511faa0, 0x59a80077, 0x90000594, 0x05020014, + 0x59cc1006, 0x82081580, 0x11020000, 0x05020010, + 0x59cc1007, 0x8c08053e, 0x0500000a, 0x59a80015, + 0x8c000504, 0x05020007, 0x42000000, 0x0010b224, + 0x0531ffed, 0x59a80015, 0x84000544, 0x48035015, + 0x64135010, 0x0501f003, 0x1c01f000, 0x0501f3c0, + 0x4803c856, 0x64175010, 0x0501f117, 0x4c5c0000, + 0x6004b800, 0x0501f0ed, 0x4803c856, 0x641f5010, + 0x0501f1b0, 0x4c5c0000, 0x6004b800, 0x0501f186, + 0x4803c856, 0x64275010, 0x91cca406, 0x4200a800, + 0x0010af0b, 0x6014b000, 0x0535f89e, 0x42007800, + 0x0010af0b, 0x46007800, 0x11050100, 0x8d0c0506, + 0x05000243, 0x60140800, 0x0501fbd3, 0x4d3c0000, + 0x60067800, 0x0529fb91, 0x5c027800, 0x1c01f000, + 0x4c5c0000, 0x6004b800, 0x0501f1e5, 0x4803c856, + 0x642f5010, 0x42001000, 0x0010af0c, 0x4008a800, + 0x6080b000, 0x4600a800, 0xffffffff, 0x8054a800, + 0x8058b040, 0x05fe07fc, 0x42007800, 0x0010af0b, + 0x46007800, 0x11060000, 0x8d0c0506, 0x05000005, + 0x50080000, 0x46001000, 0x00ffffff, 0x0501f03e, + 0x42024800, 0x0010b391, 0x0535f8cc, 0x40083000, + 0x41782800, 0x41781800, 0x41782000, 0x59240200, + 0x8c000500, 0x05000012, 0x8c000502, 0x05000010, + 0x801429c0, 0x05020002, 0x800c1800, 0x80142800, + 0x59244408, 0x82204500, 0x000000ff, 0x400c0000, + 0x50182000, 0x0c01f810, 0x80102540, 0x44103000, + 0x800c19c0, 0x05020002, 0x80183000, 0x91264c0b, + 0x8058b040, 0x05fe07ea, 0x50080000, 0x82000500, + 0x00ffffff, 0x801428f0, 0x80140540, 0x44001000, + 0x0501f019, 0x00103ac1, 0x00103ac6, 0x00103acb, + 0x00103ad0, 0x802000f0, 0x82102500, 0x00ffffff, + 0x800c1800, 0x1c01f000, 0x802000e0, 0x82102500, + 0xff00ffff, 0x800c1800, 0x1c01f000, 0x802000d0, + 0x82102500, 0xffff00ff, 0x800c1800, 0x1c01f000, + 0x40200000, 0x82102500, 0xffffff00, 0x41781800, + 0x1c01f000, 0x60840800, 0x0501f377, 0x4c5c0000, + 0x6004b800, 0x0501f222, 0x4803c856, 0x64375010, + 0x91cca406, 0x4200a800, 0x0010af0b, 0x6084b000, + 0x0535f830, 0x42007800, 0x0010af0b, 0x46007800, + 0x11070000, 0x60840800, 0x0501f367, 0x4c5c0000, + 0x6004b800, 0x0501f272, 0x4803c856, 0x90040d41, + 0x0501fc81, 0x643f5010, 0x497b5077, 0x42006000, + 0xffffffff, 0x42006800, 0x00300000, 0x0501fc6d, + 0x42006000, 0xffdfffff, 0x41786800, 0x0501fc69, + 0x6140080f, 0x42001000, 0x00103e29, 0x0511f1ca, + 0x4803c856, 0x59a80077, 0x80000540, 0x05020320, + 0x1c01f000, 0x4803c856, 0x64475010, 0x91cca406, + 0x4200a800, 0x0010af0b, 0x6014b000, 0x0535f809, + 0x4200a800, 0x0010af0b, 0x4600a800, 0x11020000, + 0x8d0c0506, 0x05020041, 0x59a80c1b, 0x82040580, + 0x0000ffff, 0x0500003d, 0x90040d30, 0x05000005, + 0x42000800, 0xffffd815, 0x05f1fd1c, 0x0501f037, + 0x59cc0007, 0x8c00053c, 0x05000034, 0x42024800, + 0x0010b391, 0x0535f849, 0x59240200, 0xb0000d23, + 0xb0040da3, 0x05020021, 0x59240a08, 0x42001000, + 0x0010af0c, 0x0501fab5, 0x05000009, 0x59240c08, + 0x05edfb1d, 0x59240200, 0x84000502, 0x84000518, + 0x84000544, 0x48024a00, 0x0501f014, 0x59240200, + 0x82000540, 0x00001006, 0x84000506, 0x48024a00, + 0x48064a08, 0x82042c00, 0x001020b6, 0x50142800, + 0x82142d00, 0x000000ff, 0x48164c08, 0x59240005, + 0x82000500, 0x00ffff00, 0x80140d40, 0x48064805, + 0x40140800, 0x05edfaf5, 0x91264c0b, 0x8058b040, + 0x05fe07da, 0x42024800, 0x0010b391, 0x59242a00, + 0x8c140502, 0x05000005, 0x8c140500, 0x05000003, + 0x59242c08, 0x4817500f, 0x60140800, 0x0501f2fe, + 0x4c5c0000, 0x4178b800, 0x59a80077, 0x80000540, + 0x05000021, 0x4803c857, 0x42001000, 0x00103e29, + 0x0511f990, 0x59a80077, 0x90000594, 0x05020019, + 0x59cc1006, 0x82081580, 0x11030000, 0x05020015, + 0x59cc1007, 0x8c08053e, 0x0500000a, 0x59a80015, + 0x8c000504, 0x05020007, 0x42000000, 0x0010b224, + 0x0531fedd, 0x59a80015, 0x84000544, 0x48035015, + 0x805cb9c0, 0x05000004, 0x641b5010, 0x05fdfef7, + 0x0501f005, 0x644b5010, 0x0501f805, 0x0501f002, + 0x0501faab, 0x5c00b800, 0x1c01f000, 0x4803c856, + 0x644f5010, 0x91cca407, 0x4200a800, 0x0010af0c, + 0x6010b000, 0x0531ff93, 0x4200a800, 0x0010af0b, + 0x4600a800, 0x11030000, 0x8d0c0506, 0x0502006a, + 0x42024800, 0x0010b391, 0x0531ffe0, 0x4c600000, + 0x4178c000, 0x59a8021b, 0x82000500, 0xfffffffc, + 0x4803521b, 0x59240200, 0x40000800, 0x82040d00, + 0xfffffb17, 0x48064a00, 0x8c000500, 0x05000048, + 0x8c000518, 0x05020046, 0x8c000502, 0x05020004, + 0x59240400, 0x8c000502, 0x05000041, 0x59240a08, + 0x42001000, 0x0010af0c, 0x0501fa3c, 0x0500002b, + 0x59240005, 0x82000500, 0x00ffff00, 0x48024805, + 0x59240200, 0x8c000502, 0x05000019, 0x59240207, + 0x82000500, 0x0000ffff, 0x05000015, 0x8060c000, + 0x59240c08, 0x05edfa98, 0x4c640000, 0x4c580000, + 0x4d2c0000, 0x5924c809, 0x6040b000, 0x50640000, + 0x800001c0, 0x05000004, 0x4578c800, 0x40025800, + 0x05e5f9d4, 0x8064c800, 0x8058b040, 0x05fe07f8, + 0x5c025800, 0x5c00b000, 0x5c00c800, 0x59240200, + 0x84000502, 0x84000544, 0x48024a00, 0x59240400, + 0x8c000504, 0x05000016, 0x59240200, 0x84000546, + 0x48024a00, 0x0501f012, 0x59240200, 0x90000546, + 0x84000506, 0x48024a00, 0x82042c00, 0x001020b6, + 0x50142800, 0x82142d00, 0x000000ff, 0x48164c08, + 0x59240005, 0x82000500, 0x00ffff00, 0x80140d40, + 0x48064805, 0x40140800, 0x05edfa5c, 0x59240200, + 0x84000518, 0x48024a00, 0x91264c0b, 0x8058b040, + 0x05fe07ad, 0x8060c1c0, 0x05020b0b, 0x5c00c000, + 0x42024800, 0x0010b391, 0x59242a00, 0x8c140502, + 0x05000005, 0x8c140500, 0x05000003, 0x59242c08, + 0x4817500f, 0x60140800, 0x0501f25f, 0x4c5c0000, + 0x4178b800, 0x59a80077, 0x80000540, 0x05000021, + 0x4803c857, 0x42001000, 0x00103e29, 0x0511f8f1, + 0x59a80077, 0x90000594, 0x05020019, 0x59cc1006, + 0x82081580, 0x11040000, 0x05020015, 0x59cc1007, + 0x8c08053e, 0x0500000a, 0x59a80015, 0x8c000504, + 0x05020007, 0x42000000, 0x0010b224, 0x0531fe3e, + 0x59a80015, 0x84000544, 0x48035015, 0x805cb9c0, + 0x05000004, 0x64235010, 0x05fdfe5e, 0x0501f005, + 0x64535010, 0x0501f805, 0x0501f002, 0x0501fa0c, + 0x5c00b800, 0x1c01f000, 0x4803c856, 0x64575010, + 0x91cca407, 0x4200a800, 0x0010af0c, 0x6010b000, + 0x0531fef4, 0x4200a800, 0x0010af0b, 0x4600a800, + 0x11040000, 0x8d0c0506, 0x05020041, 0x42024800, + 0x0010b391, 0x0531ff41, 0x59240400, 0x8c000500, + 0x0500002f, 0x59240200, 0x8c000500, 0x0500002c, + 0x8c000502, 0x0502002a, 0x59240c00, 0x80040910, + 0x82040d00, 0x000000ff, 0x42001000, 0x0010af0c, + 0x0501f9a6, 0x05000010, 0x59240005, 0x82000500, + 0x00ffff00, 0x48024805, 0x59240200, 0x84000502, + 0x48024a00, 0x59242400, 0x8c100504, 0x05000018, + 0x84000546, 0x84000544, 0x48024a00, 0x8060c000, + 0x0501f013, 0x59240200, 0x90000546, 0x84000506, + 0x48024a00, 0x48064a08, 0x82042c00, 0x001020b6, + 0x50142800, 0x82142d00, 0x000000ff, 0x48164c08, + 0x59240005, 0x82000500, 0x00ffff00, 0x80140d40, + 0x48064805, 0x40140800, 0x05edf9e0, 0x91264c0b, + 0x8058b040, 0x05fe07cd, 0x42024800, 0x0010b391, + 0x59242a00, 0x8c140502, 0x05000005, 0x8c140500, + 0x05000003, 0x59242c08, 0x4817500f, 0x60140800, + 0x0501f1e9, 0x4c5c0000, 0x4178b800, 0x59a80077, + 0x80000540, 0x05000040, 0x4803c857, 0x42001000, + 0x00103e29, 0x0511f87b, 0x59a80077, 0x90000594, + 0x05020038, 0x59cc1006, 0x82080500, 0x11050000, + 0x82000580, 0x11050000, 0x05020032, 0x8c080510, + 0x05000013, 0x0501faf4, 0x59cc1007, 0x8c08053e, + 0x0500000a, 0x59a80015, 0x8c000504, 0x05020007, + 0x42000000, 0x0010b224, 0x0531fdc3, 0x59a80015, + 0x84000544, 0x48035015, 0x805cb9c0, 0x05000014, + 0x642b5010, 0x05fdfdfa, 0x0501f01f, 0x59cc1007, + 0x8c08053e, 0x0500000a, 0x59a80015, 0x8c000504, + 0x05020007, 0x42000000, 0x0010b224, 0x0531fdb2, + 0x59a80015, 0x84000544, 0x48035015, 0x90000541, + 0x0501fad5, 0x497b5073, 0x0501f002, 0x64075073, + 0x59cc1007, 0x8c08053c, 0x05000002, 0x6423521b, + 0x805cb9c0, 0x05020004, 0x645b5010, 0x0501f808, + 0x0501f005, 0x643b5010, 0x05fdfe44, 0x0501f002, + 0x0501f977, 0x5c00b800, 0x1c01f000, 0x4803c856, + 0x91cca406, 0x4200a800, 0x0010af0b, 0x6014b000, + 0x0531fe60, 0x645f5010, 0x59a80073, 0x8c000500, + 0x05000006, 0x42001000, 0x0010af0b, 0x46001000, + 0x11050100, 0x0501f002, 0x646f5010, 0x42024800, + 0x0010b391, 0x0531fea9, 0x599c2817, 0x59240200, + 0x8c000500, 0x05000025, 0x8c000502, 0x05020023, + 0x8c000506, 0x05020021, 0x4c580000, 0x0501f8c2, + 0x5c00b000, 0x0502000b, 0x59240005, 0x82000500, + 0x00ffff00, 0x48024805, 0x59240200, 0x84000502, + 0x84000546, 0x84000544, 0x48024a00, 0x0501f013, + 0x59240200, 0x90000546, 0x84000506, 0x48024a00, + 0x48064a08, 0x82042c00, 0x001020b6, 0x50142800, + 0x82142d00, 0x000000ff, 0x48164c08, 0x59240005, + 0x82000500, 0x00ffff00, 0x80140d40, 0x48064805, + 0x40140800, 0x05edf951, 0x91264c0b, 0x8058b040, + 0x05fe07d7, 0x42024800, 0x0010b391, 0x59242a00, + 0x8c140502, 0x05000005, 0x8c140500, 0x05000003, + 0x59242c08, 0x4817500f, 0x60140800, 0x0501f95a, + 0x4d3c0000, 0x60067800, 0x0529f918, 0x5c027800, + 0x1c01f000, 0x4c5c0000, 0x4178b800, 0x59a80077, + 0x80000540, 0x05000018, 0x4803c857, 0x42001000, + 0x00103e29, 0x050dffe7, 0x59a80077, 0x82000580, + 0x00000084, 0x0502000f, 0x59cc1006, 0x82081580, + 0x11060000, 0x0502000b, 0x80000580, 0x0501fa62, + 0x805cb9c0, 0x05000004, 0x64335010, 0x05fdfdcb, + 0x0501f005, 0x64635010, 0x0501f805, 0x0501f002, + 0x0501f90b, 0x5c00b800, 0x1c01f000, 0x4803c856, + 0x64675010, 0x91cca406, 0x4200a800, 0x0010af0b, + 0x6084b000, 0x0531fdf3, 0x42003800, 0x0010af0c, + 0x42024800, 0x0010b391, 0x4200b000, 0x0010b390, + 0x5058b000, 0x59240200, 0x8c000500, 0x05000019, + 0x8c000502, 0x05000017, 0x401c2800, 0x50141000, + 0x80080130, 0x80000000, 0x40001800, 0x82081500, + 0x00ffffff, 0x800000f0, 0x80080540, 0x44002800, + 0x59244408, 0x82204500, 0x000000ff, 0x400c1000, + 0x80081104, 0x82083400, 0x0010af0c, 0x50181000, + 0x900c0503, 0x0c01f808, 0x80081540, 0x44083000, + 0x91264c0b, 0x8058b040, 0x05fe07e3, 0x60840800, + 0x0501f109, 0x00103d49, 0x00103d4d, 0x00103d51, + 0x00103d55, 0x802000f0, 0x82081500, 0x00ffffff, + 0x1c01f000, 0x802000e0, 0x82081500, 0xff00ffff, + 0x1c01f000, 0x802000d0, 0x82081500, 0xffff00ff, + 0x1c01f000, 0x40200000, 0x82081500, 0xffffff00, + 0x1c01f000, 0x4c5c0000, 0x4178b800, 0x59a80077, + 0x80000540, 0x05000018, 0x4803c857, 0x42001000, + 0x00103e29, 0x050dff87, 0x59a80077, 0x82000580, + 0x00000084, 0x0502000f, 0x59cc1006, 0x82081580, + 0x11070000, 0x0502000b, 0x64075073, 0x0501f897, + 0x805cb9c0, 0x05000004, 0x643b5010, 0x05fdfd7b, + 0x0501f005, 0x646b5010, 0x0501f805, 0x0501f002, + 0x0501f8ab, 0x5c00b800, 0x1c01f000, 0x90000541, + 0x0501f9f5, 0x646f5010, 0x91cca406, 0x4200a800, + 0x0010af0b, 0x59a82077, 0x40100000, 0x8000b104, + 0x40580800, 0x5450a800, 0x8050a000, 0x8054a800, + 0x8058b040, 0x05fe07fc, 0x0501f0c7, 0x1c01f000, + 0x1c01f000, 0x4803c856, 0x60103000, 0x42004000, + 0x0010af0c, 0x599c2817, 0x8c140514, 0x0502001c, + 0x600c1000, 0x40200000, 0x80080400, 0x50000800, + 0x82042580, 0xffffffff, 0x05020005, 0x80081040, + 0x80183040, 0x05fe07f8, 0x0501f03f, 0x800811c0, + 0x05020006, 0x82042580, 0x3fffffff, 0x05000039, + 0x82040d40, 0xc0000000, 0x6080b000, 0x60041800, + 0x40042000, 0x80102102, 0x0502101f, 0x800c18c2, + 0x8058b040, 0x05fe07fc, 0x0501f02e, 0x41781000, + 0x40200000, 0x80080400, 0x50000800, 0x82042580, + 0xffffffff, 0x05020005, 0x80081000, 0x80183040, + 0x05fe07f8, 0x0501f023, 0x800811c0, 0x05020003, + 0x82040d40, 0xc0000000, 0x6004b000, 0x42001800, + 0x80000000, 0x40042000, 0x801020c2, 0x05021006, + 0x800c1902, 0x8058b000, 0x905804a1, 0x05fc17fb, + 0x0501f014, 0x40200000, 0x80082400, 0x50100000, + 0x800c0540, 0x44002000, 0x59a80015, 0x84000540, + 0x48035015, 0x40580000, 0x60802800, 0x80142c80, + 0x40080000, 0x600c3800, 0x801c0480, 0x800000ca, + 0x80142d40, 0x40140800, 0x90000541, 0x0501f002, + 0x80000580, 0x1c01f000, 0x4807c857, 0x480bc857, + 0x40041800, 0x41782000, 0x600c0000, 0x900c1ca0, + 0x05001004, 0x80102000, 0x80000040, 0x05fdf7fc, + 0x40041800, 0x801021c0, 0x05000004, 0x900c1ca0, + 0x80102040, 0x05fe07fe, 0x60042000, 0x800c19c0, + 0x05000004, 0x801020c2, 0x800c1840, 0x05fe07fe, + 0x80083c00, 0x401c2800, 0x50140000, 0x80102d00, + 0x05020007, 0x80100540, 0x44003800, 0x59a80015, + 0x84000540, 0x48035015, 0x80000580, 0x1c01f000, + 0x4807c856, 0x605c1100, 0x59a81836, 0x0531fc50, + 0x05f9ffcd, 0x1c01f000, 0x4807c856, 0x6080b000, + 0x91cca407, 0x4200a800, 0x0010cea4, 0x0531f544, + 0x4807c856, 0x0511fe8a, 0x61dc0801, 0x0501f8d5, + 0x497b2804, 0x497b2805, 0x497b2826, 0x497b2827, + 0x6006d800, 0x42006000, 0xbe7fffff, 0x42006800, + 0x00018000, 0x0501f94b, 0x42006000, 0xfffeffff, + 0x41786800, 0x0501f947, 0x497b5036, 0x60b40800, + 0x42001000, 0x00103ea1, 0x050df6a7, 0x4807c856, + 0x05fdffe8, 0x497b5010, 0x497b5077, 0x1c01f000, + 0x4807c856, 0x42006000, 0xffffffff, 0x60a06800, + 0x0501f138, 0x4807c856, 0x05fdffd2, 0x0511fb14, + 0x4df00000, 0x0511fda9, 0x5c03e000, 0x05100afc, + 0x59c400a4, 0x9000050f, 0x90000582, 0x0502000a, + 0x42006000, 0xffffffff, 0x42006800, 0x00200000, + 0x0501f928, 0x42006000, 0xffdfffff, 0x41786800, + 0x0501f924, 0x497b5010, 0x61dc0801, 0x0501f8a1, + 0x59c400a3, 0x82000500, 0xbf20bfff, 0x82000540, + 0x0001c000, 0x480388a3, 0x84000520, 0x480388a3, + 0x497b5036, 0x60b40800, 0x42001000, 0x00103ea1, + 0x050df679, 0x497b5077, 0x59b400f5, 0x8c000500, + 0x05020003, 0x90000541, 0x480368f5, 0x800400c4, + 0x82000400, 0x00002000, 0x4803910a, 0x59b400f6, + 0x90000518, 0x05fe07fe, 0x4a0368f0, 0x0010af04, + 0x42000000, 0x0010af0b, 0x4c040000, 0x40043800, + 0x50000800, 0x82040d80, 0x11010000, 0x0500000c, + 0x50000800, 0x4807c857, 0x8d0c052a, 0x05000008, + 0x4c000000, 0x821c3d40, 0x0000dc00, 0x42000000, + 0x0010af05, 0x05e1fc8f, 0x5c000000, 0x5c000800, + 0x480368f1, 0x82040400, 0x0000dc00, 0x480368f3, + 0x59c400a4, 0x9000050f, 0x90000588, 0x05020013, + 0x4c5c0000, 0x4c600000, 0x59c4b805, 0x8c5c053a, + 0x05020004, 0x42000000, 0x0010b221, 0x0531fbc6, + 0x4a038805, 0x20000000, 0x05edfb6f, 0x4000c000, + 0x05edfab5, 0x6006d800, 0x497b5010, 0x5c00c000, + 0x5c00b800, 0x1c01f000, 0x59c8010b, 0x8c000502, + 0x05fc07e8, 0x59c408a4, 0x90040d0f, 0x90040d8b, + 0x05020005, 0x59a80810, 0x82040d40, 0x00002000, + 0x0501f004, 0x59a80872, 0x82040d40, 0x00001000, + 0x48075036, 0x59a8087c, 0x800409c0, 0x05020005, + 0x6140080f, 0x42001000, 0x00103e29, 0x050dff7f, + 0x1c01f000, 0x4807c856, 0x05fdff5a, 0x0511fa9c, + 0x4df00000, 0x0511fd31, 0x5c03e000, 0x05100a84, + 0x59c400a4, 0x9000050f, 0x90000582, 0x0502000a, + 0x42006000, 0xffffffff, 0x42006800, 0x00200000, + 0x0501f8b0, 0x42006000, 0xffdfffff, 0x41786800, + 0x0501f8ac, 0x0505fc88, 0x05000010, 0x0505fc9c, + 0x0502000e, 0x4a035013, 0x0000aaaa, 0x4c040000, + 0x05e9ffb9, 0x59a8001f, 0x82000500, 0xffff0000, + 0x80040540, 0x4803501f, 0x5c000800, 0x64035014, + 0x0505fbec, 0x0501f005, 0x64175075, 0x60000001, + 0x05e9ff09, 0x05fdff3f, 0x1c01f000, 0x0501f809, + 0x42006000, 0xbf7f7fff, 0x41786800, 0x0501f091, + 0x42006000, 0xbf7f7fff, 0x41786800, 0x0501f08d, + 0x0505fc7f, 0x05020009, 0x59c40006, 0x82000540, + 0x000000f0, 0x48038806, 0x42006000, 0xbfffffff, + 0x41786800, 0x0501f883, 0x1c01f000, 0x40680800, + 0x800408d0, 0x59a80015, 0x8c000506, 0x05000006, + 0x59a8000f, 0x82000500, 0x000000ff, 0x80040540, + 0x0501f003, 0x82040540, 0x000000f7, 0x480388a7, + 0x1c01f000, 0x4807c856, 0x42000000, 0x0010b2b9, + 0x0531fb55, 0x60143000, 0x4d3c0000, 0x4c180000, + 0x60343000, 0x600a7800, 0x0501f037, 0x4807c856, + 0x42000000, 0x0010b2de, 0x0531fb4b, 0x60003000, + 0x4d3c0000, 0x4c180000, 0x603c3000, 0x61fc19ff, + 0x601c2000, 0x05f9ff3e, 0x5c003000, 0x59240200, + 0x84000556, 0x48024a00, 0x4d400000, 0x60aa8000, + 0x59240400, 0x8c00050a, 0x052c0c2e, 0x600a7800, + 0x05f1f8c0, 0x5c028000, 0x5c027800, 0x0005f45a, + 0x4807c856, 0x42000000, 0x0010b2dc, 0x0531fb32, + 0x600c3000, 0x4d3c0000, 0x4c180000, 0x60383000, + 0x600a7804, 0x0501f014, 0x4807c856, 0x42000000, + 0x0010b2db, 0x0531fb28, 0x60103000, 0x4d3c0000, + 0x4c180000, 0x60403000, 0x600a7804, 0x0501f00a, + 0x4807c856, 0x42000000, 0x0010b223, 0x0531fb1e, + 0x60043000, 0x4d3c0000, 0x4c180000, 0x60303000, + 0x600a7800, 0x61fc19ff, 0x601c2000, 0x4d200000, + 0x417a4000, 0x05f9ff0e, 0x5c024000, 0x5c003000, + 0x4d400000, 0x0531f97a, 0x60aa8000, 0x0201f800, + 0x0010edf3, 0x4c580000, 0x0531fc2c, 0x42000800, + 0x0010b391, 0x58040005, 0x82000500, 0x000000ff, + 0x48000805, 0x90040c0b, 0x8058b040, 0x05fe07fa, + 0x5c00b000, 0x5c028000, 0x5c027800, 0x1c01f000, + 0x4807c856, 0x05011000, 0x4a03c840, 0x0010af04, + 0x6503c842, 0x40000000, 0x05fd17ff, 0x42007800, + 0x0010af04, 0x64447800, 0x803c7800, 0x4a007800, + 0x220000ef, 0x4a007801, 0x000000ef, 0x4a007802, + 0x01380000, 0x64007803, 0x4a007804, 0xffffffff, + 0x64007805, 0x1c01f000, 0x40686000, 0x406c6800, + 0x59c400a3, 0x80300500, 0x80340540, 0x480388a3, + 0x1c01f000, 0x40686000, 0x4833c857, 0x59c400a3, + 0x80300540, 0x480388a3, 0x80300580, 0x480388a3, + 0x1c01f000, 0x4803c856, 0x05000003, 0x6407507d, + 0x0501f002, 0x497b507d, 0x1c01f000, 0x59c80002, + 0x80000540, 0x05000009, 0x80000040, 0x05000007, + 0x4a039005, 0x00000140, 0x60180000, 0x80000040, + 0x05fe07ff, 0x05fdf7f6, 0x1c01f000, 0x4c5c0000, + 0x4c600000, 0x59c4b805, 0x485fc856, 0x8c5c053a, + 0x05020004, 0x42000000, 0x0010b221, 0x0531fabe, + 0x4a038805, 0x20000000, 0x05edfa67, 0x4000c000, + 0x05edf9ad, 0x4a038805, 0x04000000, 0x5c00c000, + 0x5c00b800, 0x1c01f000, 0x497a6a00, 0x0501fab7, + 0x4a026c00, 0x00000707, 0x497a6801, 0x497a6808, + 0x497a6809, 0x497a6806, 0x497a6807, 0x497a6c0b, + 0x497a680c, 0x59240400, 0x8c00050a, 0x05000005, + 0x5934080f, 0x59340010, 0x80040540, 0x05e20a4c, + 0x4a026a04, 0x00000100, 0x497a6a03, 0x59340402, + 0x82000500, 0x000000ff, 0x48026c02, 0x497a6c04, + 0x497a6a05, 0x497a6c05, 0x497a6811, 0x4d2c0000, + 0x5934000d, 0x49466c03, 0x80025d40, 0x05000003, + 0x05e1fde1, 0x497a680d, 0x5c025800, 0x599c0401, + 0x48026a0b, 0x599c0208, 0x48026c12, 0x4a02680a, + 0x00008000, 0x0505f03e, 0x60140000, 0x80000d80, + 0x0501f024, 0x0501fddd, 0x05020013, 0x59a8021b, + 0x8c00050a, 0x0502000d, 0x59340212, 0x82000500, + 0x0000ff00, 0x4803c857, 0x05000008, 0x59340a00, + 0x8c04051e, 0x000002ad, 0x60a40000, 0x60000820, + 0x492fc857, 0x0501f013, 0x492fc857, 0x60a00000, + 0x0501f00e, 0x8d0c0502, 0x05020003, 0x8d0c0500, + 0x05000003, 0x60100000, 0x0501f008, 0x60a40000, + 0x59340a00, 0x8c04051e, 0x05000004, 0x492fc857, + 0x60000820, 0x0501f003, 0x492fc857, 0x80000d80, + 0x4803c857, 0x80028540, 0x1c01f000, 0x490fc857, + 0x8d0c0500, 0x05fe07f0, 0x0501fd8d, 0x05fe07ea, + 0x59340200, 0x8c00050e, 0x05fc07e7, 0x0001f2ad, + 0x4d480000, 0x4d4c0000, 0x592e9009, 0x592e980a, + 0x0501fc59, 0x5c029800, 0x5c029000, 0x05fc07c7, + 0x0001f2b0, 0x492fc857, 0x592e8c07, 0x83440d80, + 0x000007fc, 0x05000004, 0x83440480, 0x000007f0, + 0x05021016, 0x592e4408, 0x0509fc07, 0x05000dcd, + 0x05020012, 0x0501fd83, 0x05020012, 0x0515fef6, + 0x05000019, 0x83200400, 0x0010a3b3, 0x50024800, + 0x4926601d, 0x59340002, 0x4802600b, 0x4936600a, + 0x492e6009, 0x642a6407, 0x61027000, 0x0005fc78, + 0x80000580, 0x0501f00b, 0x60a00000, 0x0501f008, + 0x0501fd86, 0x05fc07fd, 0x910c0d03, 0x05000003, + 0x60100000, 0x0501f002, 0x60a40000, 0x80000540, + 0x1c01f000, 0x60b00000, 0x05fdf7fd, 0x492fc857, + 0x592e4408, 0x4923c857, 0x0509fbe3, 0x592c4208, + 0x0500000a, 0x60380000, 0x59240a00, 0x8c040500, + 0x05000160, 0x90200d0f, 0x90040d88, 0x0502015d, + 0x90200d30, 0x0500015b, 0x592e8c07, 0x4947c857, + 0x83440c80, 0x00000800, 0x60280000, 0x05021155, + 0x4823c857, 0x9020050f, 0x0c01f001, 0x0010404e, + 0x001040c5, 0x00104108, 0x00104110, 0x00104118, + 0x0010404b, 0x0010404b, 0x0010404b, 0x00104122, + 0x0010416f, 0x0010418b, 0x0010404b, 0x0010404b, + 0x0010404b, 0x0010404b, 0x0010404b, 0x4803c857, + 0x60300000, 0x0501f13f, 0x592c1009, 0x82081500, + 0x00ffffff, 0x59240005, 0x80084d80, 0x60400000, + 0x05000138, 0x0501fcae, 0x0500002d, 0x4803c857, + 0x90004d9d, 0x05020016, 0x0005f8e2, 0x59340405, + 0x4c000000, 0x0501fd1a, 0x5c000000, 0x05000004, + 0x8c20050a, 0x05000022, 0x80000580, 0x44002800, + 0x59340008, 0x48002802, 0x59340009, 0x48002801, + 0x59340006, 0x48002804, 0x59340007, 0x48002803, + 0x6014b000, 0x0525fad9, 0x0501f141, 0x4803c857, + 0x90004d9a, 0x05020003, 0x40101000, 0x0501f11e, + 0x4803c857, 0x90004d9b, 0x05020003, 0x40181000, + 0x0501f119, 0x4803c857, 0x90004d9f, 0x0500011a, + 0x90004d9c, 0x05000118, 0x90004d99, 0x60280000, + 0x0500010c, 0x60280000, 0x0502011d, 0x59a8008d, + 0x8c000502, 0x05000016, 0x0501fcf1, 0x05000014, + 0x59340212, 0x82000500, 0x0000ff00, 0x60401000, + 0x0502000b, 0x60201000, 0x59a8021b, 0x8c000506, + 0x05020008, 0x59340002, 0x82000500, 0x00ff0000, + 0x82000580, 0x00ff0000, 0x05000005, 0x0501ff65, + 0x60700000, 0x40181000, 0x050200f7, 0x0515fe62, + 0x050000ff, 0x82200500, 0x00000100, 0x0501fc80, + 0x4926601d, 0x4936600a, 0x0525f820, 0x492e6009, + 0x64066407, 0x8c20050a, 0x05000004, 0x592c0405, + 0x8400055c, 0x48025c05, 0x4c200000, 0x4d3c0000, + 0x60027830, 0x0201f800, 0x0010ee7a, 0x5c027800, + 0x5c004000, 0x8c200512, 0x0500000b, 0x599c0018, + 0x8c000518, 0x05000008, 0x592c000a, 0x82000500, + 0x00000380, 0x5934080a, 0x80040d40, 0x84040d54, + 0x4806680a, 0x417a7800, 0x0501f8f5, 0x600c0800, + 0x0501f8fe, 0x600a7000, 0x0005fc78, 0x80000580, + 0x0501f0ee, 0x0501fd0b, 0x050200d9, 0x0501fcb6, + 0x05000009, 0x0501fcae, 0x050200d9, 0x4c600000, + 0x4178c000, 0x60027830, 0x417a6000, 0x05edfc2b, + 0x5c00c000, 0x59a8008d, 0x8c000502, 0x05000016, + 0x0501fca3, 0x05000014, 0x59340212, 0x82000500, + 0x0000ff00, 0x60401000, 0x0502000b, 0x60201000, + 0x59a8021b, 0x8c000506, 0x05020008, 0x59340002, + 0x82000500, 0x00ff0000, 0x82000580, 0x00ff0000, + 0x05000005, 0x0501ff17, 0x60700000, 0x40181000, + 0x050200a9, 0x0515fe14, 0x050000b1, 0x5934080a, + 0x8c200512, 0x0500000c, 0x599c0018, 0x8c000518, + 0x05000009, 0x592c000a, 0x82000500, 0x00000380, + 0x82041500, 0xfffffc7f, 0x80080d40, 0x84040d54, + 0x0501f002, 0x84040d14, 0x4806680a, 0x4926601d, + 0x4936600a, 0x0521ffc5, 0x492e6009, 0x64066407, + 0x417a7800, 0x0501f8b2, 0x60140800, 0x0501f8bb, + 0x600e7000, 0x0005fc78, 0x80000580, 0x0501f0ab, + 0x0501fcc8, 0x05020096, 0x0501fc87, 0x05020098, + 0x0525f96f, 0x0500008e, 0x80000580, 0x0501f0a3, + 0x0501fcc0, 0x0502008e, 0x0501fc7f, 0x05020090, + 0x0521fc86, 0x05000086, 0x80000580, 0x0501f09b, + 0x0501fcb8, 0x05020086, 0x83444d80, 0x000007fe, + 0x60280000, 0x0502006f, 0x0525f971, 0x0500007c, + 0x80000580, 0x0501f091, 0xb0200530, 0x05020004, + 0x8c20050e, 0x60300000, 0x05020066, 0x8c20050a, + 0x0500000c, 0x4d3c0000, 0x600278a0, 0x8c20050e, + 0x05020003, 0x853e7d56, 0x853e7d1c, 0x82200500, + 0x000004a0, 0x0501fc11, 0x5c027800, 0x0501f07c, + 0x8c200508, 0x0502001e, 0x592c1009, 0x82081500, + 0x00ffffff, 0x59240005, 0x80084d80, 0x60400000, + 0x05000050, 0x0501fbc6, 0x05000024, 0x4803c857, + 0x90004d9a, 0x05020003, 0x40101000, 0x0501f04e, + 0x4803c857, 0x90004d9b, 0x05020003, 0x40181000, + 0x0501f049, 0x4803c857, 0x90004d9f, 0x0500004a, + 0x90004d9c, 0x05000048, 0x90004d99, 0x60280000, + 0x0500003c, 0x60280000, 0x0501f04d, 0x0501fc7d, + 0x0502004b, 0x4d3c0000, 0x600278a0, 0x8c20050e, + 0x05020003, 0x853e7d56, 0x853e7d1c, 0x82200500, + 0x00000090, 0x0501fbd0, 0x5c027800, 0x60280000, + 0x0502002c, 0x0501f04e, 0x916c0583, 0x601c0800, + 0x05020005, 0x0525f8ce, 0x05000006, 0x80000580, + 0x0501f04a, 0x0501fc4c, 0x05000042, 0x0501f044, + 0x0501fc49, 0x0500002e, 0x0501f041, 0x0501fc61, + 0x0502002f, 0x916c0583, 0x05020036, 0x8c200508, + 0x05000008, 0x4c600000, 0x4178c000, 0x60027830, + 0x417a6000, 0x05edfb81, 0x5c00c000, 0x0501f034, + 0x0501fc01, 0x05000009, 0x0501fbf9, 0x05020024, + 0x4c600000, 0x4178c000, 0x60027830, 0x417a6000, + 0x05edfb76, 0x5c00c000, 0x480bc856, 0x0521ff4d, + 0x05000013, 0x80000580, 0x0501f028, 0x05fdf7e4, + 0x480bc857, 0x60640800, 0x40001000, 0x6008b000, + 0x0501f008, 0x480bc857, 0x40000800, 0x6008b000, + 0x0501f004, 0x480bc857, 0x40000800, 0x6004b000, + 0x480bc857, 0x60c68000, 0x0501f017, 0x480bc857, + 0x600c0800, 0x6004b000, 0x05fdf7fa, 0x480bc857, + 0x60280800, 0x6004b000, 0x05fdf7f6, 0x480bc857, + 0x60240800, 0x40001000, 0x6008b000, 0x05fdf7f1, + 0x480bc857, 0x601c0800, 0x6004b000, 0x05fdf7ed, + 0x480bc857, 0x6004b000, 0x05fdf7ea, 0x80028580, + 0x4178b000, 0x90000541, 0x1c01f000, 0x4937c857, + 0x5932680a, 0x59341200, 0x813e79c0, 0x05000003, + 0x84081540, 0x0501f002, 0x84081500, 0x480a6a00, + 0x1c01f000, 0x40680800, 0x5932680a, 0x5c000000, + 0x4c000000, 0x4803c857, 0x4937c857, 0x83340580, + 0x0010ce8f, 0x0500001f, 0x90040586, 0x05020003, + 0x6018000c, 0x0501f014, 0x90040584, 0x05020003, + 0x60100008, 0x0501f010, 0x90040587, 0x601c000e, + 0x0500000d, 0x90040583, 0x600c000e, 0x0500000a, + 0x90040585, 0x60140008, 0x05000007, 0x90040589, + 0x60240008, 0x05000004, 0x9004058b, 0x602c000e, + 0x05e20813, 0x4803c857, 0x48026c00, 0x90040d86, + 0x05020004, 0x59341404, 0x800811c0, 0x05e0080c, + 0x1c01f000, 0x40683000, 0x0501f805, 0x41358800, + 0x05000002, 0x41798800, 0x1c01f000, 0x5c000000, + 0x4c000000, 0x4803c857, 0x4947c857, 0x481bc857, + 0x83440480, 0x00000800, 0x05021055, 0x83200400, + 0x0010a3b3, 0x50024800, 0x59240009, 0x83441480, + 0x000007f0, 0x05001003, 0x80081400, 0x0501f003, + 0x83441400, 0x0010a600, 0x50080000, 0x80026d40, + 0x05000005, 0x59340013, 0x80000130, 0x81200580, + 0x05000016, 0x4c180000, 0x4d2c0000, 0x05e1fb62, + 0x412e6800, 0x5c025800, 0x5c003000, 0x0500003c, + 0x59242005, 0x812000f0, 0x80102540, 0x48126813, + 0x59242207, 0x80102000, 0x48124a07, 0x45341000, + 0x497a680d, 0x497a6810, 0x497a680f, 0x4c180000, + 0x05fdfd7a, 0x5c003000, 0x59340a12, 0x4c040000, + 0x0505f916, 0x5c000800, 0x05000009, 0x82180500, + 0x00ffff00, 0x05000008, 0x59a8100f, 0x82081500, + 0x00ffff00, 0x80080580, 0x05000003, 0x80000580, + 0x0501f004, 0x82180500, 0x000000ff, 0x800000d0, + 0x80040d80, 0x05000003, 0x4803c857, 0x48026a12, + 0x59340813, 0x59242005, 0x812000f0, 0x80102540, + 0x40040000, 0x80100580, 0x05000003, 0x4813c857, + 0x48126813, 0x83440580, 0x000007fe, 0x05020004, + 0x4a026802, 0x00fffffe, 0x0501f006, 0x59340002, + 0x80180580, 0x05000003, 0x481bc857, 0x481a6802, + 0x0501f806, 0x80000580, 0x1c01f000, 0x4803c856, + 0x90000541, 0x05fdf7fd, 0x59341200, 0x84081508, + 0x5934000a, 0x8c00050c, 0x0502000b, 0x599c0018, + 0x8c000510, 0x05000009, 0x59a80006, 0x8c00050a, + 0x05000005, 0x59340c03, 0x82040480, 0x000007f0, + 0x05001002, 0x84081548, 0x480a6a00, 0x1c01f000, + 0x4947c857, 0x83440480, 0x00000800, 0x05021018, + 0x83200400, 0x0010a3b3, 0x50024800, 0x59240009, + 0x83441480, 0x000007f0, 0x05001003, 0x80081400, + 0x0501f003, 0x83441400, 0x0010a600, 0x50080000, + 0x80026d40, 0x05000009, 0x0501fb09, 0x05020008, + 0x8d0c0502, 0x05000004, 0x59340200, 0x8c00050e, + 0x05000003, 0x90000541, 0x1c01f000, 0x80000580, + 0x05fdf7fe, 0x5c000000, 0x4c000000, 0x4803c857, + 0x4947c857, 0x0501f805, 0x60058800, 0x05000002, + 0x60018800, 0x1c01f000, 0x4d2c0000, 0x4d300000, + 0x83440480, 0x00000800, 0x0502101d, 0x83441400, + 0x0010a600, 0x50080000, 0x80026d40, 0x05000014, + 0x45781000, 0x5934000d, 0x80025d40, 0x05e20b06, + 0x59366011, 0x813261c0, 0x0500000a, 0x4c640000, + 0x5930c800, 0x59325809, 0x0521fa5d, 0x05e20afe, + 0x0005fc5a, 0x90666540, 0x05fe07fa, 0x5c00c800, + 0x0501fd5f, 0x41365800, 0x05e1faef, 0x80000580, + 0x5c026000, 0x5c025800, 0x1c01f000, 0x90000541, + 0x05fdf7fc, 0x0001fae7, 0x41358800, 0x05000002, + 0x41798800, 0x1c01f000, 0x4c580000, 0x59cc0001, + 0x4937c857, 0x82000500, 0x00ffffff, 0x48026802, + 0x497a6c01, 0x497a6a01, 0x59340200, 0x82000500, + 0xffffdffd, 0x48026a00, 0x4004b000, 0x0505f87b, + 0x05020012, 0x59340403, 0x82000580, 0x000007fe, + 0x05000005, 0x59a8021b, 0x8c00050a, 0x0502000b, + 0x0501f008, 0x59cc0408, 0x8c000518, 0x05000007, + 0x59cc0009, 0x4803502c, 0x59cc000a, 0x4803502d, + 0x8058b1c0, 0x05020001, 0x59cc0a09, 0x90040d10, + 0x59cc0408, 0x90000520, 0x05000005, 0x84040d40, + 0x59a8121b, 0x8408155a, 0x480b521b, 0x5934000a, + 0x82000500, 0xffffffee, 0x80040540, 0x4802680a, + 0x91cca40b, 0x9134ac06, 0x6008b000, 0x0531f835, + 0x91cca40d, 0x9134ac08, 0x6008b000, 0x0531f831, + 0x59a8208c, 0x82100d00, 0x0000f000, 0x82040d80, + 0x00003000, 0x05020017, 0x59cc0013, 0x8c00053e, + 0x05000014, 0x59cc0414, 0x599c0818, 0x8c040512, + 0x0500000e, 0x8c00051e, 0x05000005, 0x59340200, + 0x84000546, 0x84000544, 0x48026a00, 0x59cc0213, + 0x8c000516, 0x05000005, 0x59340200, 0x8400054c, + 0x84000544, 0x48026a00, 0x59cc0a14, 0x0501f005, + 0x59340200, 0x84000508, 0x48026a00, 0x59cc0a18, + 0x59a80006, 0x8c00050c, 0x05020013, 0x82040480, + 0x00000800, 0x0502100a, 0x82040480, 0x00000400, + 0x05001003, 0x60000808, 0x0501f005, 0x82040480, + 0x00000200, 0x05001002, 0x60000804, 0x42001000, + 0x0010aefa, 0x58080201, 0x80041480, 0x05001002, + 0x40000800, 0x48066a04, 0x59340403, 0x82000580, + 0x000007fe, 0x05020003, 0x59cc0a08, 0x48066a04, + 0x0501fcff, 0x5c00b000, 0x1c01f000, 0x59a8021b, + 0x4937c857, 0x8c000508, 0x05000007, 0x84000556, + 0x4803c857, 0x4803521b, 0x42001000, 0x0010f866, + 0x050df9c0, 0x59cc0207, 0x4803c857, 0x48026a05, + 0x59cc020a, 0x4803c857, 0x48026c05, 0x59341200, + 0x599c0818, 0x5934180a, 0x4807c857, 0x480bc857, + 0x480fc857, 0x59cc2006, 0x82102500, 0xff000000, + 0x82102580, 0x02000000, 0x05000007, 0x8c00050e, + 0x05000009, 0x8c0c0514, 0x05000003, 0x8c0c050e, + 0x05000005, 0x8c040518, 0x05000003, 0x8408154a, + 0x0501f002, 0x8408150a, 0x8c000510, 0x05000009, + 0x8c0c0514, 0x05000003, 0x8c0c0510, 0x05000005, + 0x8c040518, 0x05000003, 0x8408154e, 0x0501f002, + 0x8408150e, 0x8c000512, 0x05000009, 0x8c0c0514, + 0x05000003, 0x8c0c0512, 0x05000005, 0x8c040518, + 0x05000003, 0x8408155c, 0x0501f002, 0x8408151c, + 0x480a6a00, 0x1c01f000, 0x4803c856, 0x4c5c0000, + 0x4d2c0000, 0x4c580000, 0x5934000d, 0x80025d40, + 0x05000023, 0x592c0003, 0x90000488, 0x0500100a, + 0x412cb800, 0x592c0001, 0x80025d40, 0x05fe07fa, + 0x05e1fa10, 0x0500002e, 0x492fc857, 0x492cb801, + 0x0501f01b, 0x912c0c04, 0x6020b000, 0x50040000, + 0x82000580, 0xffffffff, 0x05020006, 0x80041000, + 0x50080000, 0x82000580, 0xffffffff, 0x05000005, + 0x90040c02, 0x8058b040, 0x05fe07f5, 0x05ddfe70, + 0x45480800, 0x454c1000, 0x592c1803, 0x800c1800, + 0x480e5803, 0x480fc857, 0x0501f010, 0x05e1f9f5, + 0x05000013, 0x492fc857, 0x492e680d, 0x497a5802, + 0x64065803, 0x494a5804, 0x494e5805, 0x912c0c06, + 0x6038b000, 0x46000800, 0xffffffff, 0x80040800, + 0x8058b040, 0x05fe07fc, 0x90000541, 0x5c00b000, + 0x5c025800, 0x5c00b800, 0x1c01f000, 0x80000580, + 0x05fdf7fb, 0x4803c856, 0x4d3c0000, 0x4d2c0000, + 0x5934000d, 0x80025d40, 0x0500001c, 0x592c0002, + 0x80000540, 0x0502001c, 0x412e7800, 0x0501f8a6, + 0x05020019, 0x46000800, 0xffffffff, 0x46001000, + 0xffffffff, 0x4813c857, 0x480fc857, 0x580c0003, + 0x90000c82, 0x05021012, 0x480fc857, 0x400c0000, + 0x812c0580, 0x05020004, 0x580c0001, 0x4802680d, + 0x0501f003, 0x580c0001, 0x48002001, 0x400e5800, + 0x05e1f9d0, 0x90000541, 0x5c025800, 0x5c027800, + 0x1c01f000, 0x80000580, 0x05fdf7fc, 0x80000040, + 0x48001803, 0x4803c857, 0x05fdf7f7, 0x64225a07, + 0x0001f35b, 0x64a65a07, 0x0001f35b, 0x64aa5a07, + 0x0001f35b, 0x64a25a07, 0x0001f35b, 0x643a5a07, + 0x0001f35b, 0x4943c857, 0x4d440000, 0x4d340000, + 0x4d2c0000, 0x4c580000, 0x61c0b00f, 0x417a8800, + 0x0001fae7, 0x05020007, 0x8d3c0506, 0x05000004, + 0x59340200, 0x8c00050e, 0x05020002, 0x0501f811, + 0x81468800, 0x8058b040, 0x05fe07f6, 0x83440480, + 0x00000800, 0x05021006, 0x8d3c0502, 0x05000004, + 0x61c2880f, 0x6040b000, 0x05fdf7ee, 0x5c00b000, + 0x5c025800, 0x5c026800, 0x5c028800, 0x1c01f000, + 0x4d2c0000, 0x4c600000, 0x4c5c0000, 0x4178b800, + 0x5936580f, 0x812e59c0, 0x0500002b, 0x592c0205, + 0x82000500, 0x000000ff, 0x90000592, 0x05000023, + 0xb00005a0, 0x05000021, 0x90000588, 0x0500001f, + 0x8d3c0500, 0x05000003, 0x0501f845, 0x0502001b, + 0x592cc000, 0x497a5800, 0x805cb9c0, 0x05020009, + 0x59340010, 0x812c0580, 0x05020004, 0x497a680f, + 0x497a6810, 0x0501f008, 0x4862680f, 0x0501f006, + 0x4860b800, 0x59340010, 0x812c0580, 0x05020002, + 0x485e6810, 0x0001ff6c, 0x4a025a05, 0x00000103, + 0x49425a07, 0x497a580a, 0x0521fa3d, 0x0001fb5b, + 0x40625800, 0x05fdf7d8, 0x412cb800, 0x592e5800, + 0x05fdf7d5, 0x5c00b800, 0x5c00c000, 0x5c025800, + 0x1c01f000, 0x4803c856, 0x41781800, 0x5934000f, + 0x80025d40, 0x05000018, 0x592c0006, 0x80200580, + 0x592c0000, 0x05000003, 0x412c1800, 0x05fdf7f9, + 0x592c0a05, 0x82040d00, 0x000000ff, 0x90040d92, + 0x05fc07fa, 0xb0040da0, 0x05fc07f8, 0x90040d88, + 0x05fc07f6, 0x497a5800, 0x800c19c0, 0x05000007, + 0x48001800, 0x80000540, 0x05020003, 0x480e6810, + 0x90000541, 0x1c01f000, 0x4802680f, 0x80000540, + 0x05fe07fd, 0x497a6810, 0x05fdf7fa, 0x592c0009, + 0x81480580, 0x05020003, 0x592c000a, 0x814c0580, + 0x1c01f000, 0x4803c856, 0x4c580000, 0x413c1800, + 0x400c2000, 0x593c0002, 0x80000540, 0x05020014, + 0x6020b000, 0x900c0c04, 0x50040000, 0x81480580, + 0x05020005, 0x80041000, 0x50080000, 0x814c0580, + 0x0500000b, 0x90040c02, 0x8058b040, 0x05fe07f7, + 0x400c2000, 0x580c0001, 0x80001d40, 0x05fe07f1, + 0x90000541, 0x5c00b000, 0x1c01f000, 0x80000580, + 0x05fdf7fd, 0x4937c857, 0x4c580000, 0x4d2c0000, + 0x5934000d, 0x80025d40, 0x05020011, 0x05e1f90d, + 0x0500000c, 0x492e680d, 0x64065802, 0x497a5803, + 0x912c0c04, 0x6040b000, 0x46000800, 0xffffffff, + 0x80040800, 0x8058b040, 0x05fe07fc, 0x90000541, + 0x5c025800, 0x5c00b000, 0x1c01f000, 0x4d2c0000, + 0x592e5801, 0x05e1f914, 0x5c025800, 0x497a5801, + 0x05fdf7ee, 0x4d2c0000, 0x5936580d, 0x812e59c0, + 0x05000005, 0x4937c857, 0x497a680d, 0x05e1f90a, + 0x90000541, 0x5c025800, 0x1c01f000, 0x59340405, + 0x4937c857, 0x4803c857, 0x8c000508, 0x1c01f000, + 0x4933c857, 0x5930380a, 0x581c0200, 0x8400051a, + 0x48003a00, 0x1c01f000, 0x4933c857, 0x5930000a, + 0x50000000, 0x8c000508, 0x1c01f000, 0x0501f805, 0x60058800, 0x05020002, 0x60018800, 0x1c01f000, - 0x4d340000, 0x4c580000, 0x59a80a1b, 0x8c040506, - 0x05000014, 0x052dfcb9, 0x42000800, 0x0010b111, - 0x58041009, 0x9008040e, 0x50026800, 0x813669c0, - 0x05000008, 0x58040200, 0x90000503, 0x90000583, - 0x05020004, 0x59340200, 0x8c00051a, 0x05020005, - 0x90040c0b, 0x8058b040, 0x05fe07f2, 0x80000580, - 0x5c00b000, 0x5c026800, 0x1c01f000, 0x4937c857, - 0x493fc857, 0x59341200, 0x813e79c0, 0x05000003, - 0x8408155e, 0x0501f002, 0x8408151e, 0x480a6a00, - 0x1c01f000, 0x4937c857, 0x05edf93e, 0x05000005, - 0x59a8082c, 0x42001000, 0x00104421, 0x050df83d, - 0x1c01f000, 0x4937c857, 0x42001000, 0x00104421, - 0x0509ff02, 0x59a8121b, 0x84081512, 0x480b521b, - 0x1c01f000, 0x4008d000, 0x4020d800, 0x909d3c84, - 0x409ce000, 0x0201f800, 0x0010f7c4, 0x589c0000, - 0x589c2001, 0x589c2802, 0x589c3003, 0x909d3c04, - 0x800001c0, 0x1c01f000, 0x4d340000, 0x406a6800, - 0x0501f803, 0x5c026800, 0x1c01f000, 0x5934000f, - 0x8d0c0512, 0x05020005, 0x5934140b, 0x80081040, - 0x05001002, 0x480a6c0b, 0x80000540, 0x00020af4, - 0x1c01f000, 0x59340a00, 0x84040d08, 0x80000540, - 0x05000005, 0x5934000a, 0x8400054c, 0x4802680a, - 0x0501f004, 0x599c0018, 0x8c000510, 0x05000002, - 0x84040d48, 0x48066a00, 0x1c01f000, 0x4803c857, - 0x4947c857, 0x4c300000, 0x90006530, 0x05000005, - 0x4c000000, 0x0521fb6e, 0x5c000000, 0x0502000b, - 0x8c00050e, 0x05000006, 0x0501f896, 0x05020007, - 0x4937c857, 0x41240800, 0x0501f8a9, 0x80000580, - 0x5c006000, 0x1c01f000, 0x90000541, 0x05fdf7fd, - 0x4803c857, 0x4c580000, 0x4d440000, 0x40001000, - 0x80000d80, 0x61c0b00f, 0x4c040000, 0x40068800, - 0x4c080000, 0x40080000, 0x05fdffe3, 0x5c001000, - 0x5c000800, 0x80040800, 0x8058b040, 0x05fe07f7, - 0x8c080514, 0x05000005, 0x84081514, 0x6004b000, - 0x61f0080f, 0x05fdf7f1, 0x4d300000, 0x4d400000, - 0x4d240000, 0x61fe89ff, 0x42026000, 0x00110284, - 0x497a600a, 0x417a4800, 0x4926601d, 0x60a68000, - 0x050dfaf5, 0x4df00000, 0x0201f800, 0x0010f051, - 0x0201f800, 0x0010f603, 0x5c03e000, 0x050c0ada, + 0x5930000a, 0x50000000, 0x4933c857, 0x4803c857, + 0x8c00050e, 0x1c01f000, 0x5930000a, 0x50000000, + 0x8c00050a, 0x1c01f000, 0x0501f805, 0x60058800, + 0x05000002, 0x60018800, 0x1c01f000, 0x4933c856, + 0x0501f8d4, 0x05000005, 0x59340400, 0x82000d00, + 0x000000ff, 0x90041585, 0x1c01f000, 0x4803c856, + 0x59a80a1b, 0x8c040506, 0x0500000a, 0x5930081d, + 0x58040200, 0x8c000500, 0x05000006, 0x58040009, + 0x9000040e, 0x50000800, 0x58040200, 0x8c00051a, + 0x1c01f000, 0x0501f805, 0x60058800, 0x05020002, + 0x60018800, 0x1c01f000, 0x4d340000, 0x4c580000, + 0x59a80a1b, 0x8c040506, 0x05000014, 0x052dfe8f, + 0x42000800, 0x0010b391, 0x58041009, 0x9008040e, + 0x50026800, 0x813669c0, 0x05000008, 0x58040200, + 0x90000503, 0x90000583, 0x05020004, 0x59340200, + 0x8c00051a, 0x05020005, 0x90040c0b, 0x8058b040, + 0x05fe07f2, 0x80000580, 0x5c00b000, 0x5c026800, + 0x1c01f000, 0x4937c857, 0x493fc857, 0x59341200, + 0x813e79c0, 0x05000003, 0x8408155e, 0x0501f002, + 0x8408151e, 0x480a6a00, 0x1c01f000, 0x4937c857, + 0x05edf869, 0x05000005, 0x59a8082c, 0x42001000, + 0x001044fb, 0x050df925, 0x1c01f000, 0x4937c857, + 0x42001000, 0x001044fb, 0x0509ffea, 0x59a8121b, + 0x84081512, 0x480b521b, 0x1c01f000, 0x4008d000, + 0x4020d800, 0x909d3c84, 0x409ce000, 0x0201f800, + 0x0010f9c3, 0x589c0000, 0x589c2001, 0x589c2802, + 0x589c3003, 0x909d3c04, 0x800001c0, 0x1c01f000, + 0x4d340000, 0x406a6800, 0x0501f803, 0x5c026800, + 0x1c01f000, 0x5934000f, 0x8d0c0512, 0x05020005, + 0x5934140b, 0x80081040, 0x05001002, 0x480a6c0b, + 0x80000540, 0x00020af4, 0x1c01f000, 0x59340a00, + 0x84040d08, 0x80000540, 0x05000005, 0x5934000a, + 0x8400054c, 0x4802680a, 0x0501f004, 0x599c0018, + 0x8c000510, 0x05000002, 0x84040d48, 0x48066a00, + 0x1c01f000, 0x4803c857, 0x4947c857, 0x4c300000, + 0x90006530, 0x05000005, 0x4c000000, 0x0521fc75, + 0x5c000000, 0x0502000b, 0x8c00050e, 0x05000006, + 0x0501f898, 0x05020007, 0x4937c857, 0x41240800, + 0x0501f8ab, 0x80000580, 0x5c006000, 0x1c01f000, + 0x90000541, 0x05fdf7fd, 0x4803c857, 0x4c580000, + 0x4d440000, 0x40001000, 0x80000d80, 0x61c0b00f, + 0x4c040000, 0x40068800, 0x4c080000, 0x40080000, + 0x05fdffe3, 0x5c001000, 0x5c000800, 0x80040800, + 0x8058b040, 0x05fe07f7, 0x8c080514, 0x05000005, + 0x84081514, 0x6004b000, 0x61f0080f, 0x05fdf7f1, + 0x4d300000, 0x4d400000, 0x4d240000, 0x0501fb1f, + 0x61fe89ff, 0x42026000, 0x001104b4, 0x4a02600a, + 0x0010ce8f, 0x417a4800, 0x4926601d, 0x60a68000, + 0x050dfbdb, 0x4df00000, 0x0201f800, 0x0010f260, + 0x0201f800, 0x0010f7f5, 0x5c03e000, 0x050c0bc0, 0x5c024800, 0x5c028000, 0x5c026000, 0x5c028800, 0x5c00b000, 0x1c01f000, 0x0501f805, 0x60058800, 0x05000002, 0x60018800, 0x1c01f000, 0x4c5c0000, @@ -17183,1043 +17292,1073 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x1c01f000, 0x4c040000, 0x4c080000, 0x592c0208, 0x8c00050c, 0x0500000d, 0x592e8c07, 0x82000500, 0x00000080, 0x84000548, 0x4d3c0000, 0x60027820, - 0x05fdff6f, 0x5c027800, 0x90000541, 0x5c001000, + 0x05fdff6d, 0x5c027800, 0x90000541, 0x5c001000, 0x5c000800, 0x1c01f000, 0x80000580, 0x05fdf7fc, - 0x59340013, 0x80024130, 0x83224c00, 0x0010a0ec, - 0x51264800, 0x812649c0, 0x05dc0cfd, 0x1c01f000, + 0x59340013, 0x80024130, 0x83224c00, 0x0010a3b3, + 0x51264800, 0x812649c0, 0x05dc0c21, 0x1c01f000, 0x83440c80, 0x00000800, 0x05021013, 0x83200400, - 0x0010a0ec, 0x50024800, 0x59240009, 0x83440c80, + 0x0010a3b3, 0x50024800, 0x59240009, 0x83440c80, 0x000007f0, 0x05001003, 0x80040c00, 0x0501f003, - 0x83440c00, 0x0010a380, 0x50040000, 0x80026d40, + 0x83440c00, 0x0010a600, 0x50040000, 0x80026d40, 0x05000005, 0x59340013, 0x80000130, 0x81200580, 0x1c01f000, 0x90000541, 0x05fdf7fe, 0x4937c857, 0x4c580000, 0x4d440000, 0x59368c03, 0x83441480, - 0x000007f0, 0x05021003, 0x05fdfc91, 0x0501f00b, + 0x000007f0, 0x05021003, 0x05fdfc8b, 0x0501f00b, 0x58040009, 0x80080c00, 0x50040000, 0x81340580, - 0x05de0cd7, 0x4d2c0000, 0x45780800, 0x41365800, - 0x05e1f870, 0x5c025800, 0x80000580, 0x5c028800, + 0x05de0bfb, 0x4d2c0000, 0x45780800, 0x41365800, + 0x05ddff94, 0x5c025800, 0x80000580, 0x5c028800, 0x5c00b000, 0x1c01f000, 0x592c040c, 0x82000500, 0x0000e000, 0x82000580, 0x00006000, 0x0500001f, - 0x916c0583, 0x05000011, 0x916c0582, 0x050200f1, + 0x916c0583, 0x05000011, 0x916c0582, 0x050200f4, 0x59a8021b, 0x90000d38, 0x05020005, 0x59a80813, - 0x800409c0, 0x05000009, 0x0501f0ea, 0x90000d03, - 0x90040d83, 0x050200e7, 0x90000d28, 0x05020003, - 0x8c00050c, 0x050000e3, 0x592e4408, 0x83224500, - 0x000000ff, 0x0505fd53, 0x050200be, 0x592c100b, - 0x82080500, 0xff000000, 0x050200c6, 0x59240005, - 0x80080580, 0x050000c1, 0x592c0c0c, 0x82040d00, - 0x0000e000, 0x82040480, 0x00008000, 0x050210bf, - 0x592e8c07, 0x83440480, 0x00000800, 0x05001013, - 0x83440580, 0x0000ffff, 0x050200a8, 0x800409c0, - 0x050200e0, 0x592c240a, 0x82100500, 0xffffff00, - 0x050200ac, 0x480bc857, 0x4813c857, 0x592c000e, - 0x82000480, 0x00000841, 0x050210ae, 0x614e7000, - 0x417a6800, 0x0501f084, 0x800409c0, 0x050200d1, - 0x41784000, 0x05fdfec4, 0x050200be, 0x59342204, - 0x592c000e, 0x80100480, 0x050010a2, 0x614e7000, - 0x592c240a, 0x82100500, 0xffffff00, 0x05020095, - 0x4813c857, 0x592c0408, 0x82000500, 0x0000f000, - 0x82000580, 0x00003000, 0x05020006, 0x59340200, - 0x8c000508, 0x05020003, 0x90100583, 0x05020083, - 0x592c000d, 0x800001c0, 0x05000065, 0x90100584, - 0x05000082, 0xb0100591, 0x05000080, 0x90100583, - 0x0500000f, 0x901005a0, 0x05000039, 0x901005a4, - 0x05000033, 0x901005a1, 0x05000033, 0xb0100590, - 0x0500002b, 0xb0100592, 0x05000027, 0x90100585, - 0x05020055, 0x60067000, 0x0501f018, 0x600a7000, - 0x59a8008d, 0x8c000502, 0x05000014, 0x05fdff04, + 0x800409c0, 0x05000009, 0x0501f0ed, 0x90000d03, + 0x90040d83, 0x050200ea, 0x90000d28, 0x05020003, + 0x8c00050c, 0x050000e6, 0x592e4408, 0x83224500, + 0x000000ff, 0x0505fdf0, 0x050200c1, 0x592c100b, + 0x82080500, 0xff000000, 0x050200c9, 0x59240005, + 0x80080580, 0x050000c4, 0x592c0c0c, 0x82040d00, + 0x0000e000, 0x82040480, 0x00008000, 0x050210c2, + 0x592e8c07, 0x83440480, 0x00000800, 0x05001015, + 0x83440580, 0x0000ffff, 0x050200ab, 0x800409c0, + 0x050200e3, 0x592c240a, 0x82100500, 0xffffff00, + 0x050200af, 0x480bc857, 0x4813c857, 0x592c000e, + 0x82000480, 0x00000841, 0x050210b1, 0x614e7000, + 0x0501fa3e, 0x42026800, 0x0010ce8f, 0x0501f084, + 0x800409c0, 0x050200d2, 0x41784000, 0x05fdfec0, + 0x050200bf, 0x59342204, 0x592c000e, 0x80100480, + 0x050010a3, 0x614e7000, 0x592c240a, 0x82100500, + 0xffffff00, 0x05020096, 0x4813c857, 0x592c0408, + 0x82000500, 0x0000f000, 0x82000580, 0x00003000, + 0x05020006, 0x59340200, 0x8c000508, 0x05020003, + 0x90100583, 0x05020084, 0x592c000d, 0x800001c0, + 0x05000065, 0x90100584, 0x05000083, 0xb0100591, + 0x05000081, 0x90100583, 0x0500000f, 0x901005a0, + 0x05000039, 0x901005a4, 0x05000033, 0x901005a1, + 0x05000033, 0xb0100590, 0x0500002b, 0xb0100592, + 0x05000027, 0x90100585, 0x05020055, 0x60067000, + 0x0501f018, 0x600a7000, 0x59a8008d, 0x8c000502, + 0x05000014, 0x05fdff02, 0x05000012, 0x59340212, + 0x82000500, 0x0000ff00, 0x60401000, 0x0502000b, + 0x59a8021b, 0x8c000506, 0x0502005b, 0x60201000, + 0x59340002, 0x82000500, 0x00ff0000, 0x82000580, + 0x00ff0000, 0x05000003, 0x0501f976, 0x05020052, + 0x0515f875, 0x05000068, 0x64426407, 0x4926601d, + 0x4936600a, 0x600c0800, 0x91380582, 0x05000002, + 0x602c0800, 0x05fdfb2d, 0x0501f036, 0x60027000, + 0x0501f002, 0x60127000, 0x05fdfefb, 0x0502005f, + 0x0501f02b, 0x60ce7000, 0x0501f004, 0x60167000, + 0x0501f002, 0x600e7000, 0x05fdfeea, 0x05020057, + 0x59a8008d, 0x8c000502, 0x05000014, 0x05fdfed4, 0x05000012, 0x59340212, 0x82000500, 0x0000ff00, 0x60401000, 0x0502000b, 0x59a8021b, 0x8c000506, - 0x0502005a, 0x60201000, 0x59340002, 0x82000500, + 0x0502002d, 0x60201000, 0x59340002, 0x82000500, 0x00ff0000, 0x82000580, 0x00ff0000, 0x05000003, - 0x0501f975, 0x05020051, 0x0511ff9b, 0x05000067, - 0x64426407, 0x4926601d, 0x4936600a, 0x600c0800, - 0x91380582, 0x05000002, 0x602c0800, 0x05fdfb38, - 0x0501f036, 0x60027000, 0x0501f002, 0x60127000, - 0x05fdfefd, 0x0502005e, 0x0501f02b, 0x60ce7000, - 0x0501f004, 0x60167000, 0x0501f002, 0x600e7000, - 0x05fdfeec, 0x05020056, 0x59a8008d, 0x8c000502, - 0x05000014, 0x05fdfed6, 0x05000012, 0x59340212, - 0x82000500, 0x0000ff00, 0x60401000, 0x0502000b, - 0x59a8021b, 0x8c000506, 0x0502002c, 0x60201000, - 0x59340002, 0x82000500, 0x00ff0000, 0x82000580, - 0x00ff0000, 0x05000003, 0x0501f947, 0x05020023, - 0x0511ff6d, 0x05000039, 0x64426407, 0x4926601d, - 0x4936600a, 0x60140800, 0x91380583, 0x05000002, - 0x60240800, 0x05fdfb0a, 0x0501f008, 0x90102591, - 0x0502002a, 0x0511ff60, 0x0500002c, 0x64426407, - 0x4926601d, 0x4936600a, 0x0521fbc0, 0x492e6009, - 0x49325809, 0x813669c0, 0x05000007, 0x592c0c0c, - 0x8c040518, 0x05000004, 0x59340200, 0x84000514, - 0x48026a00, 0x0005fc78, 0x80000580, 0x1c01f000, - 0x90000541, 0x05fdf7fe, 0x60281000, 0x0501f014, - 0x60381000, 0x0501f012, 0x603c1000, 0x0501f010, - 0x60401000, 0x0501f00e, 0x60581000, 0x0501f00c, - 0x605c1000, 0x0501f00a, 0x60601000, 0x0501f008, - 0x606c1000, 0x0501f006, 0x60781000, 0x0501f004, - 0x60901000, 0x0501f002, 0x60801000, 0x60640800, - 0x60c68000, 0x05fdf7e7, 0x600c0800, 0x0501f002, - 0x60280800, 0x41781000, 0x05fdf7fa, 0x60240800, - 0x59341400, 0x05fdf7f7, 0x60228000, 0x0501f004, - 0x601c0800, 0x416c1000, 0x05fdf7f2, 0x41780800, - 0x41781000, 0x05fdf7d7, 0x60028000, 0x05fdf7fc, - 0x90004d9d, 0x05dc0bca, 0x90004d9a, 0x05020004, - 0x40101000, 0x40000800, 0x05fdf7e6, 0x90004d9b, - 0x05020003, 0x40181000, 0x05fdf7fb, 0x90004d9c, - 0x05fc07f9, 0x90004d99, 0x05fc07c8, 0x05fdf7e1, - 0x592e6009, 0x0521f986, 0x05fc07ca, 0x59300c07, - 0x90040591, 0x05fe07e1, 0x592c0c0c, 0x82041500, - 0x0000e000, 0x82080580, 0x00006000, 0x05000021, - 0x83440580, 0x0000ffff, 0x05020005, 0x5932680a, - 0x813669c0, 0x0500000e, 0x05fdf7d4, 0x592c100b, - 0x82081500, 0x00ffffff, 0x41784000, 0x05fdfdde, - 0x05fe07d8, 0x5930000a, 0x800001c0, 0x05000003, - 0x81340580, 0x05fe07c9, 0x4936600a, 0x61000810, - 0x813669c0, 0x05000002, 0x59340a04, 0x592c000e, - 0x80040480, 0x05fc17b3, 0x59300a03, 0x90040587, - 0x05fe07be, 0x492e6009, 0x61527000, 0x05fdf78e, - 0x0529ff31, 0x05fc07c1, 0x05fdf7b8, 0x492fc857, - 0x592e6009, 0x83300580, 0xffffffff, 0x05020041, - 0x592c0208, 0x8c000500, 0x0502006c, 0x8d0c050e, - 0x05020059, 0x592e8c07, 0x83440480, 0x00000800, - 0x05021036, 0x592c380b, 0x821c3d00, 0x00ffffff, - 0x05edf8c5, 0x05020039, 0x49265802, 0x41784000, - 0x592c100a, 0x82081500, 0x00ffffff, 0x05fdfdae, - 0x0502004b, 0x592e6014, 0x4933c857, 0x83300580, - 0xffffffff, 0x05000018, 0x0521f939, 0x0500002d, - 0x591c1407, 0x800811c0, 0x05000013, 0x592c040e, - 0x591c0a02, 0x80040580, 0x0502000f, 0x591c000a, - 0x800001c0, 0x05020007, 0x591c082a, 0x59340002, - 0x80040580, 0x82000500, 0x00ffffff, 0x0501f002, - 0x81340580, 0x05020004, 0x90080587, 0x0502002c, - 0x64923c03, 0x59240005, 0x592c080a, 0x82041500, - 0x00ffffff, 0x80081580, 0x0500000c, 0x80040932, - 0xb0040582, 0x0502000b, 0x49365803, 0x0501f8da, - 0x80000580, 0x1c01f000, 0x60281000, 0x0501f00a, - 0x60401000, 0x0501f008, 0x60501000, 0x0501f006, - 0x605c1000, 0x0501f004, 0x60601000, 0x0501f002, - 0x60f01000, 0x492fc857, 0x480bc857, 0x60640800, - 0x60c68000, 0x90000541, 0x05fdf7ef, 0x492fc857, - 0x4803c857, 0x480bc857, 0x40000800, 0x05fdf7f9, - 0x492fc857, 0x60280800, 0x41781000, 0x05fdf7f5, - 0x41780800, 0x41781000, 0x05fdf7f3, 0x60780800, - 0x05fdf7fa, 0x60040800, 0x05fdf7f8, 0x90004d9d, - 0x05dc0b27, 0x90004d9a, 0x05020003, 0x40101000, - 0x05fdf7eb, 0x90004d9b, 0x05020003, 0x40181000, - 0x05fdf7e7, 0x90004d9c, 0x05fc07e5, 0x90004d99, - 0x05fc07e3, 0x05fdf7e7, 0x0529ff90, 0x60028000, - 0x05fdf7e8, 0x5c000000, 0x4c000000, 0x4803c857, - 0x5930200a, 0x801021c0, 0x05000029, 0x58101400, - 0x4813c857, 0x480bc857, 0x82081d00, 0x000000ff, - 0x59300c03, 0x90040588, 0x05000018, 0x9004058a, - 0x05000010, 0x9004058c, 0x0500000b, 0x90040582, - 0x05000012, 0x90040581, 0x0500000d, 0x90040583, - 0x05000008, 0x90040585, 0x05000003, 0x900405b3, - 0x05020013, 0x900c0589, 0x0500000a, 0x0501f010, - 0x900c0585, 0x05000007, 0x0501f00d, 0x900c058b, - 0x05000004, 0x0501f00a, 0x900c0583, 0x05020008, - 0x82081d00, 0xffffff00, 0x840c01c0, 0x800c0540, - 0x4807c857, 0x4803c857, 0x48002400, 0x1c01f000, - 0x0501f805, 0x60058800, 0x05020002, 0x60018800, - 0x1c01f000, 0x599c0017, 0x8c00050a, 0x05000003, - 0x80000580, 0x1c01f000, 0x59a8021b, 0x90000528, - 0x05000007, 0x61f6880f, 0x417a4000, 0x05fdfddd, - 0x05020003, 0x5934000a, 0x8c000504, 0x1c01f000, - 0x1c01f000, 0x4d440000, 0x4d340000, 0x80000580, - 0x40001800, 0x40028800, 0x90080588, 0x05020002, - 0x60041800, 0x0001fae7, 0x0502000a, 0x05fdfd74, - 0x05020008, 0x800c19c0, 0x05000004, 0x59340405, - 0x8c000508, 0x05000003, 0x80081040, 0x05000009, - 0x81468800, 0x83440480, 0x00000800, 0x05fc17f2, - 0x80000580, 0x5c026800, 0x5c028800, 0x1c01f000, - 0x90000541, 0x5c026800, 0x5c028800, 0x1c01f000, - 0x60200800, 0x58d400e4, 0x8c00051c, 0x0502002f, - 0x59a8021b, 0x8c000508, 0x0502002c, 0x5934100a, - 0x82081500, 0x0000e000, 0x41781800, 0x90080580, - 0x0500000a, 0x800c1800, 0x82080580, 0x00002000, - 0x05000006, 0x800c1800, 0x82080580, 0x00006000, - 0x05000002, 0x800c1800, 0x42007000, 0x0010ac7a, - 0x58380401, 0x8c000504, 0x05000006, 0x900c2c84, - 0x05021016, 0x820c0400, 0x00104770, 0x0501f012, - 0x41782000, 0x59342a04, 0x82140480, 0x00000800, - 0x05021006, 0x80102000, 0x82140480, 0x00000400, - 0x05021002, 0x80102000, 0x800c00c2, 0x800c0400, - 0x80100400, 0x90002c89, 0x05021004, 0x82000400, - 0x00104774, 0x50000800, 0x48066c04, 0x1c01f000, - 0x00000002, 0x00000004, 0x00000008, 0x00000008, - 0x00002802, 0x00001402, 0x00000a02, 0x00001402, - 0x00000a02, 0x00000502, 0x00000a02, 0x00000502, - 0x00000504, 0x59a80868, 0x800409c0, 0x05020004, - 0x492f5067, 0x492f5068, 0x0511f50c, 0x492c0800, - 0x492f5068, 0x1c01f000, 0x5934000f, 0x41784000, - 0x80001540, 0x05000010, 0x58080205, 0x82000500, - 0x000000ff, 0x90000592, 0x05000005, 0xb00005a0, - 0x05000003, 0x90000588, 0x05020004, 0x5808020d, - 0x80040580, 0x05000005, 0x58080000, 0x40084000, - 0x05fdf7f0, 0x90000541, 0x1c01f000, 0x64033011, - 0x4a03b104, 0x80000000, 0x4a03b104, 0x60000001, - 0x497b3016, 0x497b3017, 0x1c01f000, 0x599c0018, - 0x4803c856, 0x497b3014, 0x497b3015, 0x9000050f, - 0x48033012, 0x05000008, 0x599c0216, 0x82000500, - 0x0000ffff, 0x05020002, 0x60080000, 0x48033013, - 0x850e1d62, 0x1c01f000, 0x05fdfff1, 0x6413c826, - 0x599c0209, 0x80000540, 0x0500001c, 0x599c0207, - 0x80000540, 0x05000007, 0x800000cc, 0x599c080d, - 0x80040400, 0x4803b100, 0x497bb102, 0x59d80101, - 0x599c000d, 0x4803b100, 0x599c000e, 0x4803b101, - 0x599c0207, 0x80000540, 0x05020002, 0x497bb102, - 0x599c0a09, 0x82040540, 0x00400000, 0x4803b103, - 0x6417b109, 0x4a03b104, 0x10000001, 0x8d0c0522, - 0x05020003, 0x64073011, 0x1c01f000, 0x8d0c0520, - 0x05020003, 0x640b3011, 0x05fdf7fc, 0x640f3011, - 0x05fdf7fa, 0x592c0205, 0x492fc857, 0x80000540, - 0x05000007, 0x42034000, 0x0010ac19, 0x59a1d806, - 0x80edd9c0, 0x05dc0a0e, 0x0501f005, 0x0521fcc8, - 0x05de0a0b, 0x5931d82d, 0x58ef400a, 0x58ec0008, - 0x800001c0, 0x05dc0a06, 0x0801f800, 0x1c01f000, - 0x40680800, 0x5c000000, 0x4c000000, 0x4803c857, - 0x492fc857, 0x4943c857, 0x4807c857, 0x4c040000, - 0x0001ff6c, 0x5c000800, 0x4a025a05, 0x00000103, - 0x49425a07, 0x48065a09, 0x4a025c07, 0x0000ffff, - 0x813261c0, 0x05000003, 0x59300402, 0x48025c07, - 0x592c0209, 0x8c000512, 0x05020006, 0x912c040a, - 0x05011000, 0x4803c840, 0x642fc842, 0x05011000, - 0x1c01f000, 0x40680000, 0x4c540000, 0x4c580000, - 0x4c5c0000, 0x4d2c0000, 0x4000b800, 0x052df8a3, - 0x4178a800, 0x05ddfd58, 0x0500008e, 0x05011000, - 0x485fc857, 0x4943c857, 0x4923c857, 0x912c0405, - 0x4803c840, 0x6443c842, 0x40000000, 0x05fd17ff, - 0x412c7000, 0x4a025805, 0x00000132, 0x497a5806, - 0x805cb9c0, 0x0502005e, 0x912e5c08, 0x417a4000, - 0x42024800, 0x0010b111, 0x41786800, 0x59240a00, - 0x9004050f, 0x0c01f001, 0x00104843, 0x00104843, - 0x00104843, 0x00104843, 0x00104843, 0x00104843, - 0x00104843, 0x0010483a, 0x00104843, 0x00104843, - 0x00104843, 0x00104843, 0x00104843, 0x00104843, - 0x00104843, 0x00104843, 0x8054a800, 0x812241c0, - 0x05020007, 0x59240805, 0x805c00f0, 0x80040d40, - 0x48065800, 0x812e5800, 0x0501f030, 0x90340503, - 0x0c01f001, 0x00104849, 0x00104851, 0x0010485a, - 0x00104863, 0x91200581, 0x05020003, 0x60042000, - 0x0501f020, 0x912004a0, 0x0500101d, 0x80346800, - 0x0501f01b, 0x912005a1, 0x05020004, 0x812e5800, - 0x60042000, 0x0501f017, 0xb1200480, 0x05001014, - 0x80346800, 0x0501f012, 0xb1200581, 0x05020004, - 0x812e5800, 0x60042000, 0x0501f00e, 0xb12004a0, - 0x0500100b, 0x80346800, 0x0501f009, 0xb12005a1, - 0x05020004, 0x812e5800, 0x60042000, 0x0501f005, - 0xb12004bf, 0x05001002, 0x80346800, 0x801020c2, - 0x90040507, 0x90000587, 0x05020004, 0x592c0000, - 0x80100540, 0x48025800, 0x91264c0b, 0x81224000, - 0x8058b040, 0x05fe07b2, 0x8054a9c0, 0x403a5800, - 0x05000027, 0x052df839, 0x8058b040, 0x805800d0, - 0x80540540, 0x48025a07, 0x0501f01c, 0x91400581, - 0x05020004, 0x48165a09, 0x90140583, 0x05000019, - 0x83400d00, 0x000000ff, 0x90040584, 0x05000015, - 0x90040586, 0x05000013, 0x83400d00, 0x0000ff00, - 0x05000003, 0x81400110, 0x4802580d, 0x814000d0, - 0x81200540, 0x48025c07, 0x8058b040, 0x805800d0, - 0x90000541, 0x48025a07, 0x59240805, 0x805c00f0, - 0x80040d40, 0x48065808, 0x0001fb5b, 0x0501f005, - 0x59cc0007, 0x4802580d, 0x05fdf7f1, 0x05ddfced, - 0x5c025800, 0x5c00b800, 0x5c00b000, 0x5c00a800, - 0x1c01f000, 0x59a80011, 0x90000c8a, 0x05de1948, - 0x0c01f808, 0x4a038805, 0x000000f0, 0x59c400a3, - 0x82000500, 0x02870000, 0x05de0941, 0x1c01f000, - 0x0010492d, 0x001048bb, 0x001048d3, 0x001048fc, - 0x00104920, 0x001001ef, 0x001001ef, 0x001048d3, - 0x001001ef, 0x001048ba, 0x1c01f000, 0x600c2000, - 0x0501fbc3, 0x4a038808, 0x00000204, 0x0501fbb7, - 0x59c40805, 0x8c04050e, 0x05020010, 0x8c04050a, - 0x05020009, 0x8c04050c, 0x05020005, 0x8c040508, - 0x0500000a, 0x640f5011, 0x0501f007, 0x64035011, - 0x0501f005, 0x42000000, 0x0010afab, 0x0529fec6, - 0x640b5011, 0x0501f896, 0x1c01f000, 0x60002000, - 0x0501fbab, 0x4a038808, 0x00000202, 0x59c40805, - 0x8c040508, 0x05020020, 0x8c04050c, 0x0502001c, - 0x8c04050e, 0x05020018, 0x82040500, 0x000000f0, - 0x0502001b, 0x0501fb95, 0x4a038808, 0x00000280, - 0x59c40002, 0x8400050c, 0x48038802, 0x0501f96d, - 0x4d3c0000, 0x60067800, 0x0521fb3e, 0x5c027800, - 0x59c410a3, 0x84081518, 0x05e9f915, 0x4a038808, - 0x00000280, 0x60082000, 0x0501fb8d, 0x64275011, - 0x0501f007, 0x64075011, 0x0501f004, 0x64035011, - 0x0501f002, 0x640f5011, 0x0501f86d, 0x1c01f000, - 0x60042000, 0x0501fb82, 0x59c410a3, 0x84081518, - 0x05e9f903, 0x4a038808, 0x00000280, 0x59c40805, - 0x8c04050a, 0x05020018, 0x8c04050c, 0x05020014, - 0x8c04050e, 0x05020010, 0x82040500, 0x000000f0, - 0x05020013, 0x59c40002, 0x8400050c, 0x48038802, - 0x0501f944, 0x4d3c0000, 0x60067800, 0x0521fb15, - 0x5c027800, 0x60082000, 0x0501fb69, 0x64275011, - 0x0501f007, 0x64075011, 0x0501f004, 0x64035011, - 0x0501f002, 0x640b5011, 0x0501f849, 0x1c01f000, - 0x0501fc5a, 0x4a038808, 0x00000208, 0x59c40805, - 0x8c04050c, 0x05020005, 0x8c04050e, 0x05000005, - 0x64075011, 0x0501f002, 0x64035011, 0x0501f83c, - 0x1c01f000, 0x60102000, 0x0501fb51, 0x0501f873, - 0x59c40805, 0x8c04050c, 0x05020009, 0x8c04050a, - 0x05020005, 0x8c04050e, 0x05000005, 0x64075011, - 0x0501f002, 0x640b5011, 0x0501f82d, 0x1c01f000, - 0x0501f8f1, 0x05de08b2, 0x601c2000, 0x0501fb40, - 0x8d0c050c, 0x05000010, 0x850e1d0c, 0x64438805, - 0x05e5ffc6, 0x59c40005, 0x8c000508, 0x05000006, - 0x4a038808, 0x00000208, 0x64075014, 0x6006d800, - 0x0501f01a, 0x59c40006, 0x84000548, 0x48038806, - 0x0501f016, 0x59a80011, 0x90000581, 0x05020012, - 0x42000000, 0x0010afab, 0x0529fe3f, 0x4ce80000, - 0x61a1d007, 0x0509fb26, 0x59c40005, 0x90000530, - 0x05000008, 0x8c00050a, 0x05000004, 0x60002000, - 0x0501fb1f, 0x0501f003, 0x60042000, 0x0501fb1c, - 0x5c01d000, 0x64135011, 0x1c01f000, 0x4c040000, - 0x4c080000, 0x61900800, 0x42001000, 0x00104970, - 0x0509faf9, 0x5c001000, 0x5c000800, 0x1c01f000, - 0x4803c856, 0x4c040000, 0x0509fe0b, 0x4df00000, - 0x050df8a0, 0x5c03e000, 0x05080df3, 0x42000000, - 0x0010afaa, 0x0529fe1c, 0x05fdffc2, 0x5c000800, - 0x1c01f000, 0x4803c856, 0x4c040000, 0x4c080000, - 0x0509fdfd, 0x4df00000, 0x050df892, 0x5c03e000, - 0x05080de5, 0x59c40006, 0x84000500, 0x48038806, - 0x050df949, 0x497b8880, 0x42000000, 0x0010afa9, - 0x0529fe09, 0x05e5fede, 0x64135075, 0x6012d800, - 0x64078805, 0x42001000, 0x00104970, 0x0509fadb, - 0x05ddfa76, 0x0501f8ae, 0x05000005, 0x42006000, - 0xfeffffff, 0x41786800, 0x05f9fcf3, 0x0201f800, - 0x0010fada, 0x60000001, 0x05e5fc35, 0x5c001000, - 0x5c000800, 0x1c01f000, 0x59c40008, 0x82000580, - 0x00000210, 0x05000005, 0x4a038808, 0x00000210, - 0x6021d027, 0x0509fad6, 0x1c01f000, 0x4c040000, - 0x59a80814, 0x90040580, 0x05000008, 0x90040581, - 0x05000008, 0x90040582, 0x05000008, 0x90040583, - 0x05000008, 0x0501f043, 0x64035011, 0x0501f006, - 0x64135011, 0x0501f004, 0x64075011, 0x0501f002, - 0x641f5011, 0x497b8880, 0x64078893, 0x41780000, - 0x05e5fc92, 0x050df910, 0x916c0d84, 0x05000008, + 0x0501f948, 0x05020024, 0x0515f847, 0x0500003a, + 0x64426407, 0x4926601d, 0x4936600a, 0x60140800, + 0x91380583, 0x05000002, 0x60240800, 0x05fdfaff, + 0x0501f008, 0x90102591, 0x0502002b, 0x0515f83a, + 0x0500002d, 0x64426407, 0x4926601d, 0x4936600a, + 0x0521fcc8, 0x492e6009, 0x49325809, 0x83340580, + 0x0010ce8f, 0x05000007, 0x592c0c0c, 0x8c040518, + 0x05000004, 0x59340200, 0x84000514, 0x48026a00, + 0x0005fc78, 0x80000580, 0x1c01f000, 0x90000541, + 0x05fdf7fe, 0x60281000, 0x0501f014, 0x60381000, + 0x0501f012, 0x603c1000, 0x0501f010, 0x60401000, + 0x0501f00e, 0x60581000, 0x0501f00c, 0x605c1000, + 0x0501f00a, 0x60601000, 0x0501f008, 0x606c1000, + 0x0501f006, 0x60781000, 0x0501f004, 0x60901000, + 0x0501f002, 0x60801000, 0x60640800, 0x60c68000, + 0x05fdf7e7, 0x600c0800, 0x0501f002, 0x60280800, + 0x41781000, 0x05fdf7fa, 0x60240800, 0x59341400, + 0x05fdf7f7, 0x60228000, 0x0501f004, 0x601c0800, + 0x416c1000, 0x05fdf7f2, 0x41780800, 0x41781000, + 0x05fdf7d7, 0x60028000, 0x05fdf7fc, 0x90004d9d, + 0x05dc0aeb, 0x90004d9a, 0x05020004, 0x40101000, + 0x40000800, 0x05fdf7e6, 0x90004d9b, 0x05020003, + 0x40181000, 0x05fdf7fb, 0x90004d9c, 0x05fc07f9, + 0x90004d99, 0x05fc07c8, 0x05fdf7e1, 0x592e6009, + 0x0521fa88, 0x05fc07ca, 0x59300c07, 0x90040591, + 0x05fe07e1, 0x592c0c0c, 0x82041500, 0x0000e000, + 0x82080580, 0x00006000, 0x05000021, 0x83440580, + 0x0000ffff, 0x05020007, 0x5932680a, 0x83340580, + 0x0010ce8f, 0x05fe07d4, 0x61000810, 0x0501f00f, + 0x592c100b, 0x82081500, 0x00ffffff, 0x41784000, + 0x05fdfdd7, 0x05fe07d6, 0x5930000a, 0x82000d80, + 0x0010ce8f, 0x05000003, 0x81340580, 0x05fe07c6, + 0x4936600a, 0x59340a04, 0x592c000e, 0x80040480, + 0x05fc17b3, 0x59300a03, 0x90040587, 0x05fe07be, + 0x492e6009, 0x61527000, 0x05fdf78d, 0x052df902, + 0x05fc07c1, 0x05fdf7b8, 0x492fc857, 0x592e6009, + 0x83300580, 0xffffffff, 0x05020041, 0x592c0208, + 0x8c000500, 0x0502006c, 0x8d0c050e, 0x05020059, + 0x592e8c07, 0x83440480, 0x00000800, 0x05021036, + 0x592c380b, 0x821c3d00, 0x00ffffff, 0x05edf83f, + 0x05020039, 0x49265802, 0x41784000, 0x592c100a, + 0x82081500, 0x00ffffff, 0x05fdfda9, 0x0502004b, + 0x592e6014, 0x4933c857, 0x83300580, 0xffffffff, + 0x05000018, 0x0521fa3b, 0x0500002d, 0x591c1407, + 0x800811c0, 0x05000013, 0x592c040e, 0x591c0a02, + 0x80040580, 0x0502000f, 0x591c000a, 0x800001c0, + 0x05020007, 0x591c082a, 0x59340002, 0x80040580, + 0x82000500, 0x00ffffff, 0x0501f002, 0x81340580, + 0x05020004, 0x90080587, 0x0502002c, 0x64923c03, + 0x59240005, 0x592c080a, 0x82041500, 0x00ffffff, + 0x80081580, 0x0500000c, 0x80040932, 0xb0040582, + 0x0502000b, 0x49365803, 0x0501f8da, 0x80000580, + 0x1c01f000, 0x60281000, 0x0501f00a, 0x60401000, + 0x0501f008, 0x60501000, 0x0501f006, 0x605c1000, + 0x0501f004, 0x60601000, 0x0501f002, 0x60f01000, + 0x492fc857, 0x480bc857, 0x60640800, 0x60c68000, + 0x90000541, 0x05fdf7ef, 0x492fc857, 0x4803c857, + 0x480bc857, 0x40000800, 0x05fdf7f9, 0x492fc857, + 0x60280800, 0x41781000, 0x05fdf7f5, 0x41780800, + 0x41781000, 0x05fdf7f3, 0x60780800, 0x05fdf7fa, + 0x60040800, 0x05fdf7f8, 0x90004d9d, 0x05dc0a48, + 0x90004d9a, 0x05020003, 0x40101000, 0x05fdf7eb, + 0x90004d9b, 0x05020003, 0x40181000, 0x05fdf7e7, + 0x90004d9c, 0x05fc07e5, 0x90004d99, 0x05fc07e3, + 0x05fdf7e7, 0x052df961, 0x60028000, 0x05fdf7e8, + 0x5c000000, 0x4c000000, 0x4803c857, 0x5930200a, + 0x801021c0, 0x05000029, 0x58101400, 0x4813c857, + 0x480bc857, 0x82081d00, 0x000000ff, 0x59300c03, + 0x90040588, 0x05000018, 0x9004058a, 0x05000010, + 0x9004058c, 0x0500000b, 0x90040582, 0x05000012, + 0x90040581, 0x0500000d, 0x90040583, 0x05000008, + 0x90040585, 0x05000003, 0x900405b3, 0x05020013, + 0x900c0589, 0x0500000a, 0x0501f010, 0x900c0585, + 0x05000007, 0x0501f00d, 0x900c058b, 0x05000004, + 0x0501f00a, 0x900c0583, 0x05020008, 0x82081d00, + 0xffffff00, 0x840c01c0, 0x800c0540, 0x4807c857, + 0x4803c857, 0x48002400, 0x1c01f000, 0x0501f805, + 0x60058800, 0x05020002, 0x60018800, 0x1c01f000, + 0x599c0017, 0x8c00050a, 0x05000003, 0x80000580, + 0x1c01f000, 0x59a8021b, 0x90000528, 0x05000007, + 0x61f6880f, 0x417a4000, 0x05fdfdda, 0x05020003, + 0x5934000a, 0x8c000504, 0x1c01f000, 0x1c01f000, + 0x4d440000, 0x4d340000, 0x80000580, 0x40001800, + 0x40028800, 0x90080588, 0x05020002, 0x60041800, + 0x0001fae7, 0x0502000a, 0x05fdfd71, 0x05020008, + 0x800c19c0, 0x05000004, 0x59340405, 0x8c000508, + 0x05000003, 0x80081040, 0x05000009, 0x81468800, + 0x83440480, 0x00000800, 0x05fc17f2, 0x80000580, + 0x5c026800, 0x5c028800, 0x1c01f000, 0x90000541, + 0x5c026800, 0x5c028800, 0x1c01f000, 0x60200800, + 0x58d400e4, 0x8c00051c, 0x0502002f, 0x59a8021b, + 0x8c000508, 0x0502002c, 0x5934100a, 0x82081500, + 0x0000e000, 0x41781800, 0x90080580, 0x0500000a, + 0x800c1800, 0x82080580, 0x00002000, 0x05000006, + 0x800c1800, 0x82080580, 0x00006000, 0x05000002, + 0x800c1800, 0x42007000, 0x0010aefa, 0x58380401, + 0x8c000504, 0x05000006, 0x900c2c84, 0x05021016, + 0x820c0400, 0x0010484f, 0x0501f012, 0x41782000, + 0x59342a04, 0x82140480, 0x00000800, 0x05021006, + 0x80102000, 0x82140480, 0x00000400, 0x05021002, + 0x80102000, 0x800c00c2, 0x800c0400, 0x80100400, + 0x90002c89, 0x05021004, 0x82000400, 0x00104853, + 0x50000800, 0x48066c04, 0x1c01f000, 0x00000002, + 0x00000004, 0x00000008, 0x00000008, 0x00002802, + 0x00001402, 0x00000a02, 0x00001402, 0x00000a02, + 0x00000502, 0x00000a02, 0x00000502, 0x00000504, + 0x59a80868, 0x800409c0, 0x05020004, 0x492f5067, + 0x492f5068, 0x0511f5e1, 0x492c0800, 0x492f5068, + 0x1c01f000, 0x5934000f, 0x41784000, 0x80001540, + 0x05000010, 0x58080205, 0x82000500, 0x000000ff, + 0x90000592, 0x05000005, 0xb00005a0, 0x05000003, + 0x90000588, 0x05020004, 0x5808020d, 0x80040580, + 0x05000005, 0x58080000, 0x40084000, 0x05fdf7f0, + 0x90000541, 0x1c01f000, 0x42000000, 0x0010ce8f, + 0x4a000400, 0x00000707, 0x4a000204, 0x00000840, + 0x4a000403, 0x0000ffff, 0x49780200, 0x1c01f000, + 0x4d340000, 0x4d440000, 0x4c580000, 0x61c0b00f, + 0x4803c856, 0x417a8800, 0x0001fae7, 0x05020006, + 0x59340200, 0x8c00051a, 0x05000003, 0x8400051a, + 0x48026a00, 0x81468800, 0x8058b040, 0x05fe07f7, + 0x5c00b000, 0x5c028800, 0x5c026800, 0x1c01f000, + 0x64033011, 0x4a03b104, 0x80000000, 0x4a03b104, + 0x60000001, 0x497b3016, 0x497b3017, 0x1c01f000, + 0x599c0018, 0x4803c856, 0x497b3014, 0x497b3015, + 0x9000050f, 0x48033012, 0x05000008, 0x599c0216, + 0x82000500, 0x0000ffff, 0x05020002, 0x60080000, + 0x48033013, 0x850e1d62, 0x1c01f000, 0x05fdfff1, + 0x6413c826, 0x599c0209, 0x80000540, 0x0500001c, + 0x599c0207, 0x80000540, 0x05000007, 0x800000cc, + 0x599c080d, 0x80040400, 0x4803b100, 0x497bb102, + 0x59d80101, 0x599c000d, 0x4803b100, 0x599c000e, + 0x4803b101, 0x599c0207, 0x80000540, 0x05020002, + 0x497bb102, 0x599c0a09, 0x82040540, 0x00400000, + 0x4803b103, 0x6417b109, 0x4a03b104, 0x10000001, + 0x8d0c0522, 0x05020003, 0x64073011, 0x1c01f000, + 0x8d0c0520, 0x05020003, 0x640b3011, 0x05fdf7fc, + 0x640f3011, 0x05fdf7fa, 0x592c0205, 0x492fc857, + 0x80000540, 0x05000007, 0x42034000, 0x0010ae99, + 0x59a1d806, 0x80edd9c0, 0x05dc0911, 0x0501f005, + 0x0521fdb1, 0x05de090e, 0x5931d82d, 0x58ef400a, + 0x58ec0008, 0x800001c0, 0x05dc0909, 0x0801f800, + 0x1c01f000, 0x40680800, 0x5c000000, 0x4c000000, + 0x4803c857, 0x492fc857, 0x4943c857, 0x4807c857, + 0x4c040000, 0x0001ff6c, 0x5c000800, 0x4a025a05, + 0x00000103, 0x49425a07, 0x48065a09, 0x4a025c07, + 0x0000ffff, 0x813261c0, 0x05000003, 0x59300402, + 0x48025c07, 0x592c0209, 0x8c000512, 0x05020006, + 0x912c040a, 0x05011000, 0x4803c840, 0x642fc842, + 0x05011000, 0x1c01f000, 0x40680000, 0x4c540000, + 0x4c580000, 0x4c5c0000, 0x4d2c0000, 0x4000b800, + 0x052dfa56, 0x4178a800, 0x05ddfc5b, 0x05000094, + 0x05011000, 0x485fc857, 0x4943c857, 0x4923c857, + 0x912c0405, 0x4803c840, 0x6443c842, 0x40000000, + 0x05fd17ff, 0x412c7000, 0x4a025805, 0x00000132, + 0x497a5806, 0x805cb9c0, 0x05020060, 0x912e5c08, + 0x417a4000, 0x42024800, 0x0010b391, 0x41786800, + 0x59240a00, 0x9004050f, 0x0c01f001, 0x00104940, + 0x00104940, 0x00104940, 0x00104940, 0x00104940, + 0x00104940, 0x00104940, 0x00104937, 0x00104940, + 0x00104940, 0x00104940, 0x00104940, 0x00104940, + 0x00104940, 0x00104940, 0x00104940, 0x8054a800, + 0x812241c0, 0x05020007, 0x59240805, 0x805c00f0, + 0x80040d40, 0x48065800, 0x812e5800, 0x0501f030, + 0x90340503, 0x0c01f001, 0x00104946, 0x0010494e, + 0x00104957, 0x00104960, 0x91200581, 0x05020003, + 0x60042000, 0x0501f020, 0x912004a0, 0x0500101d, + 0x80346800, 0x0501f01b, 0x912005a1, 0x05020004, + 0x812e5800, 0x60042000, 0x0501f017, 0xb1200480, + 0x05001014, 0x80346800, 0x0501f012, 0xb1200581, + 0x05020004, 0x812e5800, 0x60042000, 0x0501f00e, + 0xb12004a0, 0x0500100b, 0x80346800, 0x0501f009, + 0xb12005a1, 0x05020004, 0x812e5800, 0x60042000, + 0x0501f005, 0xb12004bf, 0x05001002, 0x80346800, + 0x801020c2, 0x90040507, 0x90000587, 0x05020004, + 0x592c0000, 0x80100540, 0x48025800, 0x91264c0b, + 0x81224000, 0x8058b040, 0x05fe07b2, 0x8054a9c0, + 0x403a5800, 0x0500002d, 0x052df9ec, 0x052dfa0a, + 0x05020002, 0x8058b040, 0x805800d0, 0x80540540, + 0x48025a07, 0x0501f01e, 0x91400581, 0x05020004, + 0x48165a09, 0x90140583, 0x0500001d, 0x83400d00, + 0x000000ff, 0x90040584, 0x05000019, 0x90040586, + 0x05000017, 0x83400d00, 0x0000ff00, 0x05000003, + 0x81400110, 0x4802580d, 0x814000d0, 0x81200540, + 0x48025c07, 0x052df9f0, 0x05020002, 0x8058b040, + 0x805800d0, 0x90000541, 0x48025a07, 0x59240805, + 0x805c00f0, 0x80040d40, 0x48065808, 0x052df9f5, + 0x0502000c, 0x0001fb5b, 0x0501f005, 0x59cc0007, + 0x4802580d, 0x05fdf7ed, 0x05ddfbea, 0x5c025800, + 0x5c00b800, 0x5c00b000, 0x5c00a800, 0x1c01f000, + 0x0529fe4c, 0x05fdf7fa, 0x59a80011, 0x90000c8a, + 0x05de1843, 0x0c01f808, 0x4a038805, 0x000000f0, + 0x59c400a3, 0x82000500, 0x02870000, 0x05de083c, + 0x1c01f000, 0x00104a32, 0x001049c0, 0x001049d8, + 0x00104a01, 0x00104a25, 0x001001ef, 0x001001ef, + 0x001049d8, 0x001001ef, 0x001049bf, 0x1c01f000, + 0x600c2000, 0x0501fbc3, 0x4a038808, 0x00000204, + 0x0501fbb7, 0x59c40805, 0x8c04050e, 0x05020010, + 0x8c04050a, 0x05020009, 0x8c04050c, 0x05020005, + 0x8c040508, 0x0500000a, 0x640f5011, 0x0501f007, + 0x64035011, 0x0501f005, 0x42000000, 0x0010b22b, + 0x052df871, 0x640b5011, 0x0501f896, 0x1c01f000, + 0x60002000, 0x0501fbab, 0x4a038808, 0x00000202, + 0x59c40805, 0x8c040508, 0x05020020, 0x8c04050c, + 0x0502001c, 0x8c04050e, 0x05020018, 0x82040500, + 0x000000f0, 0x0502001b, 0x0501fb95, 0x4a038808, + 0x00000280, 0x59c40002, 0x8400050c, 0x48038802, + 0x0501f96d, 0x4d3c0000, 0x60067800, 0x0521fc1f, + 0x5c027800, 0x59c410a3, 0x84081518, 0x05e9f811, + 0x4a038808, 0x00000280, 0x60082000, 0x0501fb8d, + 0x64275011, 0x0501f007, 0x64075011, 0x0501f004, + 0x64035011, 0x0501f002, 0x640f5011, 0x0501f86d, + 0x1c01f000, 0x60042000, 0x0501fb82, 0x59c410a3, + 0x84081518, 0x05e5ffff, 0x4a038808, 0x00000280, + 0x59c40805, 0x8c04050a, 0x05020018, 0x8c04050c, + 0x05020014, 0x8c04050e, 0x05020010, 0x82040500, + 0x000000f0, 0x05020013, 0x59c40002, 0x8400050c, + 0x48038802, 0x0501f944, 0x4d3c0000, 0x60067800, + 0x0521fbf6, 0x5c027800, 0x60082000, 0x0501fb69, + 0x64275011, 0x0501f007, 0x64075011, 0x0501f004, + 0x64035011, 0x0501f002, 0x640b5011, 0x0501f849, + 0x1c01f000, 0x0501fc5a, 0x4a038808, 0x00000208, + 0x59c40805, 0x8c04050c, 0x05020005, 0x8c04050e, + 0x05000005, 0x64075011, 0x0501f002, 0x64035011, + 0x0501f83c, 0x1c01f000, 0x60102000, 0x0501fb51, + 0x0501f873, 0x59c40805, 0x8c04050c, 0x05020009, + 0x8c04050a, 0x05020005, 0x8c04050e, 0x05000005, + 0x64075011, 0x0501f002, 0x640b5011, 0x0501f82d, + 0x1c01f000, 0x0501f8f1, 0x05da0fad, 0x601c2000, + 0x0501fb40, 0x8d0c050c, 0x05000010, 0x850e1d0c, + 0x64438805, 0x05e5fec2, 0x59c40005, 0x8c000508, + 0x05000006, 0x4a038808, 0x00000208, 0x64075014, + 0x6006d800, 0x0501f01a, 0x59c40006, 0x84000548, + 0x48038806, 0x0501f016, 0x59a80011, 0x90000581, + 0x05020012, 0x42000000, 0x0010b22b, 0x0529ffea, + 0x4ce80000, 0x61a1d007, 0x0509fbe3, 0x59c40005, + 0x90000530, 0x05000008, 0x8c00050a, 0x05000004, + 0x60002000, 0x0501fb1f, 0x0501f003, 0x60042000, + 0x0501fb1c, 0x5c01d000, 0x64135011, 0x1c01f000, + 0x4c040000, 0x4c080000, 0x61900800, 0x42001000, + 0x00104a75, 0x0509fbb6, 0x5c001000, 0x5c000800, + 0x1c01f000, 0x4803c856, 0x4c040000, 0x0509fec8, + 0x4df00000, 0x050df95d, 0x5c03e000, 0x05080eb0, + 0x42000000, 0x0010b22a, 0x0529ffc7, 0x05fdffc2, + 0x5c000800, 0x1c01f000, 0x4803c856, 0x4c040000, + 0x4c080000, 0x0509feba, 0x4df00000, 0x050df94f, + 0x5c03e000, 0x05080ea2, 0x59c40006, 0x84000500, + 0x48038806, 0x050dfa06, 0x497b8880, 0x42000000, + 0x0010b229, 0x0529ffb4, 0x05e5fdda, 0x64135075, + 0x6012d800, 0x64078805, 0x42001000, 0x00104a75, + 0x0509fb98, 0x05ddf971, 0x0501f8ae, 0x05000005, + 0x42006000, 0xfeffffff, 0x41786800, 0x05f9fcc1, + 0x0201f800, 0x0010fcd9, 0x60000001, 0x05e5fb2e, + 0x5c001000, 0x5c000800, 0x1c01f000, 0x59c40008, + 0x82000580, 0x00000210, 0x05000005, 0x4a038808, + 0x00000210, 0x6021d027, 0x0509fb93, 0x1c01f000, + 0x4c040000, 0x59a80814, 0x90040580, 0x05000008, + 0x90040581, 0x05000008, 0x90040582, 0x05000008, + 0x90040583, 0x05000008, 0x0501f043, 0x64035011, + 0x0501f006, 0x64135011, 0x0501f004, 0x64075011, + 0x0501f002, 0x641f5011, 0x497b8880, 0x64078893, + 0x41780000, 0x05e5fb8e, 0x050df9cd, 0x916c0d84, + 0x05000008, 0x59c40006, 0x82000500, 0xffffff0f, + 0x82000540, 0x04000001, 0x48038806, 0x0501f007, 0x59c40006, 0x82000500, 0xffffff0f, 0x82000540, - 0x04000001, 0x48038806, 0x0501f007, 0x59c40006, - 0x82000500, 0xffffff0f, 0x82000540, 0x04000000, - 0x48038806, 0x0501f872, 0x05020005, 0x59c40806, - 0x82040d00, 0xfbffff0f, 0x48078806, 0x59c40005, - 0x8c000534, 0x05020026, 0x42006000, 0xfc18ffff, - 0x42006800, 0x01000000, 0x05f9fcaf, 0x05e5ff2b, - 0x59c408a4, 0x90040d0f, 0x90040d8c, 0x0502089a, - 0x0501f85f, 0x05000005, 0x42006000, 0xfeffffff, - 0x41786800, 0x05f9fca4, 0x916c0d84, 0x0500000c, - 0x05fdff7b, 0x5994102e, 0x41780800, 0x60280000, - 0x0509fb4c, 0x40080000, 0x59a80835, 0x80040c00, - 0x42001000, 0x0010497d, 0x0509fa66, 0x64135014, - 0x05fdfead, 0x0501f84a, 0x05020005, 0x59c408a4, - 0x90040d0f, 0x9004058c, 0x05da0ff1, 0x5c000800, - 0x1c01f000, 0x4803c856, 0x4c000000, 0x0509fa8a, - 0x4a03500f, 0x00ffffff, 0x497b5013, 0x59a8001f, - 0x82000500, 0xffff0000, 0x4803501f, 0x497b8880, - 0x497b8893, 0x41780000, 0x05e5fc44, 0x59c40001, - 0x82000500, 0xfffffcff, 0x48038801, 0x42006000, - 0xfc18ffff, 0x41786800, 0x05f9fc77, 0x59c410a3, - 0x84081518, 0x05e5ffea, 0x4a038808, 0x00000200, - 0x5c000000, 0x800001c0, 0x05fa0b17, 0x4a038805, - 0x040000f0, 0x59c40006, 0x82000500, 0xffffffcf, - 0x82000540, 0x440000c1, 0x48038806, 0x1c01f000, + 0x04000000, 0x48038806, 0x0501f872, 0x05020005, + 0x59c40806, 0x82040d00, 0xfbffff0f, 0x48078806, + 0x59c40005, 0x8c000534, 0x05020026, 0x42006000, + 0xfc18ffff, 0x42006800, 0x01000000, 0x05f9fc7d, + 0x05e5fe27, 0x59c408a4, 0x90040d0f, 0x90040d8c, + 0x0502089a, 0x0501f85f, 0x05000005, 0x42006000, + 0xfeffffff, 0x41786800, 0x05f9fc72, 0x916c0d84, + 0x0500000c, 0x05fdff7b, 0x5994102e, 0x41780800, + 0x60280000, 0x0509fc09, 0x40080000, 0x59a80835, + 0x80040c00, 0x42001000, 0x00104a82, 0x0509fb23, + 0x64135014, 0x05fdfead, 0x0501f84a, 0x05020005, + 0x59c408a4, 0x90040d0f, 0x9004058c, 0x05da0eec, + 0x5c000800, 0x1c01f000, 0x4803c856, 0x4c000000, + 0x0509fb47, 0x4a03500f, 0x00ffffff, 0x497b5013, + 0x59a8001f, 0x82000500, 0xffff0000, 0x4803501f, + 0x497b8880, 0x497b8893, 0x41780000, 0x05e5fb40, + 0x59c40001, 0x82000500, 0xfffffcff, 0x48038801, + 0x42006000, 0xfc18ffff, 0x41786800, 0x05f9fc45, + 0x59c410a3, 0x84081518, 0x05e5fee6, 0x4a038808, + 0x00000200, 0x5c000000, 0x800001c0, 0x05fa0ae5, + 0x4a038805, 0x040000f0, 0x59c40006, 0x82000500, + 0xffffffcf, 0x82000540, 0x440000c1, 0x48038806, + 0x1c01f000, 0x0501f805, 0x60058800, 0x05000002, + 0x60018800, 0x1c01f000, 0x4c5c0000, 0x59a8b813, + 0x825cbd80, 0x0000aaaa, 0x5c00b800, 0x1c01f000, 0x0501f805, 0x60058800, 0x05000002, 0x60018800, - 0x1c01f000, 0x4c5c0000, 0x59a8b813, 0x825cbd80, - 0x0000aaaa, 0x5c00b800, 0x1c01f000, 0x0501f805, + 0x1c01f000, 0x4c5c0000, 0x599cb818, 0x905cbd30, + 0x905cbd80, 0x5c00b800, 0x1c01f000, 0x0501f805, 0x60058800, 0x05000002, 0x60018800, 0x1c01f000, - 0x4c5c0000, 0x599cb818, 0x905cbd30, 0x905cbd80, + 0x4c5c0000, 0x599cb818, 0x905cbd30, 0x905cbd90, 0x5c00b800, 0x1c01f000, 0x0501f805, 0x60058800, 0x05000002, 0x60018800, 0x1c01f000, 0x4c5c0000, - 0x599cb818, 0x905cbd30, 0x905cbd90, 0x5c00b800, - 0x1c01f000, 0x0501f805, 0x60058800, 0x05000002, - 0x60018800, 0x1c01f000, 0x4c5c0000, 0x599cb818, - 0x905cbd30, 0x905cbda0, 0x5c00b800, 0x1c01f000, - 0x490fc857, 0x910c0d13, 0x0500001e, 0x599c1017, - 0x4d3c0000, 0x910c0511, 0x05000005, 0x417a7800, - 0x8d0c0520, 0x05020007, 0x0501f00f, 0x60227800, - 0x8d0c0520, 0x0500000c, 0x600c3000, 0x0501f002, - 0x60103000, 0x603a8000, 0x4d200000, 0x61fe4001, - 0x0525fe39, 0x5c024000, 0x599c1017, 0x8c08050a, - 0x05020006, 0x60128000, 0x0201f800, 0x0010ebe6, - 0x4803c856, 0x850e1d08, 0x5c027800, 0x0501f009, - 0x8d0c0520, 0x05000007, 0x603e8000, 0x60043000, - 0x4d200000, 0x61fe4001, 0x0525fe27, 0x5c024000, - 0x1c01f000, 0x4803c856, 0x4c580000, 0x42000000, - 0x0010b0bf, 0x0529fd14, 0x42000800, 0x0010cedc, - 0x59c40003, 0x44000800, 0x59c40004, 0x48000801, - 0x59c4000b, 0x48000802, 0x59c4008e, 0x48000803, - 0x59c4008f, 0x48000804, 0x59c40090, 0x48000805, - 0x59c40091, 0x48000806, 0x59c40092, 0x48000807, - 0x59c40093, 0x48000808, 0x59c40099, 0x48000809, - 0x59c4009e, 0x4800080a, 0x59c400aa, 0x4800080b, - 0x59c400af, 0x4800080c, 0x59c400b2, 0x4800080d, - 0x59c400b1, 0x4800080e, 0x90040c0f, 0x41c41800, - 0x60c0b000, 0x580c0050, 0x44000800, 0x80040800, - 0x800c1800, 0x8058b040, 0x05fe07fb, 0x41c41800, - 0x6080b000, 0x580c0010, 0x44000800, 0x80040800, - 0x800c1800, 0x8058b040, 0x05fe07fb, 0x497b8830, - 0x6100b000, 0x59c40031, 0x44000800, 0x80040800, - 0x8058b040, 0x05fe07fc, 0x497b88ac, 0x6040b000, - 0x59c400ad, 0x44000800, 0x80040800, 0x8058b040, - 0x05fe07fc, 0x59c41001, 0x4c080000, 0x8408150c, - 0x480b8801, 0x4a0370e4, 0x00000300, 0x4a0370e5, - 0xb0000000, 0x60000810, 0x80040840, 0x05d80f24, - 0x59b800e5, 0x8c000538, 0x05fe07fc, 0x4a0370e4, - 0x00000200, 0x42006000, 0xffffffff, 0x42006800, - 0x80000000, 0x05f9fbb8, 0x64078807, 0x497b8807, - 0x0501fab0, 0x4a038808, 0x00000210, 0x42006000, - 0xfcf8ffff, 0x42006800, 0x01000000, 0x05f9fbae, - 0x5c001000, 0x480b8801, 0x42000800, 0x0010cedc, - 0x50040000, 0x48038803, 0x58040001, 0x48038804, - 0x58040002, 0x4803880b, 0x58040003, 0x4803888e, - 0x58040004, 0x4803888f, 0x58040005, 0x48038890, - 0x58040006, 0x48038891, 0x58040007, 0x48038892, - 0x58040008, 0x48038893, 0x58040009, 0x48038899, - 0x5804000a, 0x4803889e, 0x5804000b, 0x480388aa, - 0x5804000c, 0x480388af, 0x5804000d, 0x480388b2, - 0x5804000e, 0x480388b1, 0x90040c0f, 0x41c41800, - 0x60c0b000, 0x50040000, 0x48001850, 0x80040800, - 0x800c1800, 0x8058b040, 0x05fe07fb, 0x41c41800, - 0x6080b000, 0x50040000, 0x48001810, 0x80040800, - 0x800c1800, 0x8058b040, 0x05fe07fb, 0x497b8830, - 0x6100b000, 0x50040000, 0x48038831, 0x80040800, - 0x8058b040, 0x05fe07fc, 0x497b88ac, 0x6040b000, - 0x50040000, 0x480388ad, 0x80040800, 0x8058b040, - 0x05fe07fc, 0x497b8880, 0x41780000, 0x05e5fb2f, - 0x59c408a4, 0x90040d0f, 0x9004058c, 0x05da0ec8, - 0x4a038805, 0x04000000, 0x5c00b000, 0x1c01f000, - 0x4803c856, 0x4c580000, 0x4ce80000, 0x42000000, - 0x0010afac, 0x0529fc64, 0x59c41008, 0x4c080000, - 0x82081500, 0xffffff7f, 0x480b8808, 0x59c40004, - 0x82000500, 0x00003e02, 0x05000003, 0x6051d000, - 0x0509f943, 0x59c40006, 0x82000500, 0xffffff0f, - 0x48038806, 0x0501fa40, 0x64438805, 0x4a038808, - 0x00000204, 0x6194b000, 0x59c40005, 0x8c000508, - 0x05020010, 0x61a1d007, 0x0509f935, 0x8058b040, - 0x05fe07fa, 0x601c2000, 0x0501f931, 0x0501fa2b, - 0x0509ff81, 0x4803c856, 0x4a038808, 0x00000208, - 0x64075014, 0x6006d800, 0x90000541, 0x0501f032, - 0x60042000, 0x0501f926, 0x05ddfcd5, 0x42000000, - 0x0010b09b, 0x0529fc38, 0x05e1f8d5, 0x497b8880, - 0x59a8001f, 0x82000500, 0x0000ffff, 0x4c000000, - 0x05e5faee, 0x5c000000, 0x48038880, 0x59c410a3, - 0x84081518, 0x05e5fe9a, 0x4a038808, 0x00000200, - 0x64238805, 0x6194b000, 0x4a038805, 0x000000f0, - 0x05e5fd9a, 0x61c00801, 0x59c40005, 0x80040d00, - 0x05000006, 0x61a1d007, 0x0509f909, 0x8058b040, - 0x05fe07f6, 0x05fdf7d4, 0x59c410a3, 0x84081558, - 0x05e5fe87, 0x60082000, 0x0501f901, 0x59c40006, - 0x82000540, 0x000000f0, 0x48038806, 0x59a80012, - 0x80000540, 0x05020002, 0x80000000, 0x48038893, - 0x80000580, 0x4df00000, 0x05e5fda8, 0x5c03e000, - 0x5c001000, 0x480b8808, 0x5c01d000, 0x5c00b000, + 0x599cb818, 0x905cbd30, 0x905cbda0, 0x5c00b800, + 0x1c01f000, 0x490fc857, 0x910c0d13, 0x0500001e, + 0x599c1017, 0x4d3c0000, 0x910c0511, 0x05000005, + 0x417a7800, 0x8d0c0520, 0x05020007, 0x0501f00f, + 0x60227800, 0x8d0c0520, 0x0500000c, 0x600c3000, + 0x0501f002, 0x60103000, 0x603a8000, 0x4d200000, + 0x61fe4001, 0x0525ffcb, 0x5c024000, 0x599c1017, + 0x8c08050a, 0x05020006, 0x60128000, 0x0201f800, + 0x0010edf3, 0x4803c856, 0x850e1d08, 0x5c027800, + 0x0501f009, 0x8d0c0520, 0x05000007, 0x603e8000, + 0x60043000, 0x4d200000, 0x61fe4001, 0x0525ffb9, + 0x5c024000, 0x1c01f000, 0x4803c856, 0x4c580000, + 0x42000000, 0x0010b33f, 0x0529febf, 0x42000800, + 0x0010d15c, 0x59c40003, 0x44000800, 0x59c40004, + 0x48000801, 0x59c4000b, 0x48000802, 0x59c4008e, + 0x48000803, 0x59c4008f, 0x48000804, 0x59c40090, + 0x48000805, 0x59c40091, 0x48000806, 0x59c40092, + 0x48000807, 0x59c40093, 0x48000808, 0x59c40099, + 0x48000809, 0x59c4009e, 0x4800080a, 0x59c400aa, + 0x4800080b, 0x59c400af, 0x4800080c, 0x59c400b2, + 0x4800080d, 0x59c400b1, 0x4800080e, 0x90040c0f, + 0x41c41800, 0x60c0b000, 0x580c0050, 0x44000800, + 0x80040800, 0x800c1800, 0x8058b040, 0x05fe07fb, + 0x41c41800, 0x6080b000, 0x580c0010, 0x44000800, + 0x80040800, 0x800c1800, 0x8058b040, 0x05fe07fb, + 0x497b8830, 0x6100b000, 0x59c40031, 0x44000800, + 0x80040800, 0x8058b040, 0x05fe07fc, 0x497b88ac, + 0x6040b000, 0x59c400ad, 0x44000800, 0x80040800, + 0x8058b040, 0x05fe07fc, 0x59c41001, 0x4c080000, + 0x8408150c, 0x480b8801, 0x4a0370e4, 0x00000300, + 0x4a0370e5, 0xb0000000, 0x60000810, 0x80040840, + 0x05d80e1f, 0x59b800e5, 0x8c000538, 0x05fe07fc, + 0x4a0370e4, 0x00000200, 0x42006000, 0xffffffff, + 0x42006800, 0x80000000, 0x05f9fb86, 0x64078807, + 0x497b8807, 0x0501fab0, 0x4a038808, 0x00000210, + 0x42006000, 0xfcf8ffff, 0x42006800, 0x01000000, + 0x05f9fb7c, 0x5c001000, 0x480b8801, 0x42000800, + 0x0010d15c, 0x50040000, 0x48038803, 0x58040001, + 0x48038804, 0x58040002, 0x4803880b, 0x58040003, + 0x4803888e, 0x58040004, 0x4803888f, 0x58040005, + 0x48038890, 0x58040006, 0x48038891, 0x58040007, + 0x48038892, 0x58040008, 0x48038893, 0x58040009, + 0x48038899, 0x5804000a, 0x4803889e, 0x5804000b, + 0x480388aa, 0x5804000c, 0x480388af, 0x5804000d, + 0x480388b2, 0x5804000e, 0x480388b1, 0x90040c0f, + 0x41c41800, 0x60c0b000, 0x50040000, 0x48001850, + 0x80040800, 0x800c1800, 0x8058b040, 0x05fe07fb, + 0x41c41800, 0x6080b000, 0x50040000, 0x48001810, + 0x80040800, 0x800c1800, 0x8058b040, 0x05fe07fb, + 0x497b8830, 0x6100b000, 0x50040000, 0x48038831, + 0x80040800, 0x8058b040, 0x05fe07fc, 0x497b88ac, + 0x6040b000, 0x50040000, 0x480388ad, 0x80040800, + 0x8058b040, 0x05fe07fc, 0x497b8880, 0x41780000, + 0x05e5fa2b, 0x59c408a4, 0x90040d0f, 0x9004058c, + 0x05da0dc3, 0x4a038805, 0x04000000, 0x5c00b000, 0x1c01f000, 0x4803c856, 0x4c580000, 0x4ce80000, - 0x59c41008, 0x4c080000, 0x82081500, 0xffffff7f, - 0x480b8808, 0x59c40004, 0x82000500, 0x00003e02, - 0x05000003, 0x6051d000, 0x0509f8e1, 0x05ddfc90, - 0x42000000, 0x0010b09c, 0x0529fbf3, 0x05e1f890, - 0x60002000, 0x0501f8da, 0x4a038808, 0x00000202, - 0x80000580, 0x48038880, 0x48038893, 0x05e5faa7, - 0x6010b007, 0x4a038805, 0x000000f0, 0x05e5fd5b, - 0x61c00801, 0x59c40005, 0x80040d00, 0x05000016, - 0x82000500, 0x000000d0, 0x0502001f, 0x619dd000, - 0x0509f8c7, 0x8058b040, 0x05fe07f3, 0x601c2000, - 0x0501f8c3, 0x0509ff14, 0x0501f9bc, 0x4a038808, - 0x00000208, 0x64075014, 0x6006d800, 0x59c40006, - 0x8400050a, 0x48038806, 0x64838805, 0x90000541, - 0x0501f01b, 0x59c410a3, 0x84081518, 0x05e5fe38, - 0x4a038808, 0x00000200, 0x6095d000, 0x0509f8b0, - 0x59c410a3, 0x84081558, 0x05e5fe31, 0x60082000, - 0x0501f8ab, 0x497b8880, 0x59a80012, 0x80000540, - 0x05020002, 0x80000000, 0x48038893, 0x59a8001f, - 0x82000500, 0x0000ffff, 0x4c000000, 0x05e5fa73, - 0x5c000000, 0x48038880, 0x80000580, 0x4df00000, - 0x05e5fd4e, 0x5c03e000, 0x5c001000, 0x480b8808, - 0x5c01d000, 0x5c00b000, 0x1c01f000, 0x4803c856, - 0x60042000, 0x0501f892, 0x59c40004, 0x82000500, - 0x00003e02, 0x05000008, 0x0509fedf, 0x0501f987, + 0x42000000, 0x0010b22c, 0x0529fe0f, 0x59c41008, + 0x4c080000, 0x82081500, 0xffffff7f, 0x480b8808, + 0x59c40004, 0x82000500, 0x00003e02, 0x05000003, + 0x6051d000, 0x0509fa00, 0x59c40006, 0x82000500, + 0xffffff0f, 0x48038806, 0x0501fa40, 0x64438805, + 0x4a038808, 0x00000204, 0x6194b000, 0x59c40005, + 0x8c000508, 0x05020010, 0x61a1d007, 0x0509f9f2, + 0x8058b040, 0x05fe07fa, 0x601c2000, 0x0501f931, + 0x0501fa2b, 0x050df83e, 0x4803c856, 0x4a038808, + 0x00000208, 0x64075014, 0x6006d800, 0x90000541, + 0x0501f032, 0x60042000, 0x0501f926, 0x05ddfbce, + 0x42000000, 0x0010b31b, 0x0529fde3, 0x05ddffd0, + 0x497b8880, 0x59a8001f, 0x82000500, 0x0000ffff, + 0x4c000000, 0x05e5f9ea, 0x5c000000, 0x48038880, + 0x59c410a3, 0x84081518, 0x05e5fd96, 0x4a038808, + 0x00000200, 0x64238805, 0x6194b000, 0x4a038805, + 0x000000f0, 0x05e5fc96, 0x61c00801, 0x59c40005, + 0x80040d00, 0x05000006, 0x61a1d007, 0x0509f9c6, + 0x8058b040, 0x05fe07f6, 0x05fdf7d4, 0x59c410a3, + 0x84081558, 0x05e5fd83, 0x60082000, 0x0501f901, + 0x59c40006, 0x82000540, 0x000000f0, 0x48038806, + 0x59a80012, 0x80000540, 0x05020002, 0x80000000, + 0x48038893, 0x80000580, 0x4df00000, 0x05e5fca4, + 0x5c03e000, 0x5c001000, 0x480b8808, 0x5c01d000, + 0x5c00b000, 0x1c01f000, 0x4803c856, 0x4c580000, + 0x4ce80000, 0x59c41008, 0x4c080000, 0x82081500, + 0xffffff7f, 0x480b8808, 0x59c40004, 0x82000500, + 0x00003e02, 0x05000003, 0x6051d000, 0x0509f99e, + 0x05ddfb89, 0x42000000, 0x0010b31c, 0x0529fd9e, + 0x05ddff8b, 0x60002000, 0x0501f8da, 0x4a038808, + 0x00000202, 0x80000580, 0x48038880, 0x48038893, + 0x05e5f9a3, 0x6010b007, 0x4a038805, 0x000000f0, + 0x05e5fc57, 0x61c00801, 0x59c40005, 0x80040d00, + 0x05000016, 0x82000500, 0x000000d0, 0x0502001f, + 0x619dd000, 0x0509f984, 0x8058b040, 0x05fe07f3, + 0x601c2000, 0x0501f8c3, 0x0509ffd1, 0x0501f9bc, 0x4a038808, 0x00000208, 0x64075014, 0x6006d800, - 0x0501f046, 0x05ddfc36, 0x42000000, 0x0010b09d, - 0x0529fb99, 0x05e1f836, 0x59c40006, 0x84000508, - 0x48038806, 0x64438805, 0x850e1d4c, 0x61900800, - 0x42001000, 0x00104970, 0x0509f85f, 0x59c410a3, - 0x84081518, 0x05e5fdfa, 0x4a038808, 0x00000200, - 0x497b8880, 0x4a038805, 0x000000f0, 0x05e5fcfb, - 0x61c00801, 0x59c40005, 0x80040d00, 0x0500000b, - 0x82000500, 0x000000e0, 0x0502000d, 0x61a1d007, - 0x0509f867, 0x0505fece, 0x59940004, 0x80000540, - 0x05fe07f1, 0x0501f021, 0x59c410a3, 0x84081558, - 0x05e5fde3, 0x60082000, 0x0501f85d, 0x4c080000, - 0x42001000, 0x00104970, 0x0509f848, 0x5c001000, - 0x497b8880, 0x59a80012, 0x80000540, 0x05020002, - 0x80000000, 0x48038893, 0x59a8001f, 0x82000500, - 0x0000ffff, 0x4c000000, 0x05e5fa20, 0x5c000000, - 0x48038880, 0x850e1d0c, 0x59c40006, 0x84000548, - 0x48038806, 0x05e5fcf9, 0x59c40008, 0x82000540, - 0x00000280, 0x48038808, 0x1c01f000, 0x4803c856, - 0x4d400000, 0x4d3c0000, 0x0509fe8f, 0x0529fc62, - 0x0502002c, 0x599c1017, 0x8d0c0500, 0x05020009, - 0x8c08051a, 0x05000027, 0x850e1d42, 0x60128000, - 0x60227800, 0x8d0c0520, 0x05020006, 0x0501f01d, - 0x60128000, 0x417a7800, 0x8d0c0520, 0x05000019, - 0x0529fc5e, 0x42024800, 0x0010b111, 0x59240200, - 0x8c000500, 0x05000006, 0x4c580000, 0x60040800, - 0x60001002, 0x0509f8a9, 0x5c00b000, 0x91264c0b, - 0x8058b040, 0x05fe07f6, 0x61fe41ff, 0x4d400000, - 0x603a8000, 0x600c3000, 0x61fe89ff, 0x0525fc37, - 0x5c028000, 0x599c0817, 0x8c04050a, 0x05020005, - 0x4943c857, 0x493fc857, 0x0201f800, 0x0010ebe6, - 0x497b8880, 0x6006d800, 0x05fdfd39, 0x5c027800, - 0x5c028000, 0x1c01f000, 0x05ddfbb9, 0x42000000, - 0x0010b09e, 0x0529fb1c, 0x05ddffb9, 0x60040000, - 0x05e5f9d6, 0x64078880, 0x05e5f4b4, 0x42000800, - 0x0010ac15, 0x48100802, 0x90101488, 0x05001008, - 0x58040001, 0x4803c857, 0x4813c857, 0x58040003, - 0x80000000, 0x48000803, 0x60082000, 0x58040001, - 0x9000148b, 0x05001007, 0x4803c857, 0x4813c857, - 0x58040003, 0x80000000, 0x48000803, 0x60000000, - 0x48000800, 0x59c428a4, 0x90142d0f, 0x90142d8c, - 0x0c000002, 0x0501f0fb, 0x00104ca5, 0x00104cbf, - 0x00104cd9, 0x00104cf3, 0x00104d0d, 0x00104d23, - 0x00104d32, 0x00104d45, 0x00104d58, 0x00104d6b, - 0x00104d6d, 0x40100000, 0x0c01f001, 0x00104caf, - 0x00104cb1, 0x00104cb3, 0x00104cb4, 0x00104cb6, - 0x00104cb8, 0x00104cbb, 0x00104cbd, 0x64080801, - 0x1c01f000, 0x640c0801, 0x0501f0bc, 0x1c01f000, - 0x641c0801, 0x1c01f000, 0x64100801, 0x0501f0ba, - 0x64140801, 0x0501f8be, 0x0501f0ba, 0x64140801, - 0x0501f0bb, 0x4813c857, 0x1c01f000, 0x40100000, - 0x0c01f001, 0x00104cc9, 0x00104ccb, 0x00104ccd, - 0x00104cce, 0x00104cd0, 0x00104cd2, 0x00104cd5, - 0x00104cd7, 0x64080801, 0x1c01f000, 0x640c0801, - 0x1c01f000, 0x1c01f000, 0x641c0801, 0x1c01f000, - 0x64100801, 0x0501f0a0, 0x64140801, 0x0501f8a4, - 0x0501f0a0, 0x64140801, 0x1c01f000, 0x64140801, - 0x0501f099, 0x40100000, 0x0c01f001, 0x00104ce3, - 0x00104ce4, 0x00104ce6, 0x00104ce8, 0x00104cea, - 0x00104cec, 0x00104cef, 0x00104cf1, 0x1c01f000, - 0x640c0801, 0x1c01f000, 0x64000801, 0x1c01f000, - 0x641c0801, 0x1c01f000, 0x64100801, 0x0501f086, - 0x64140801, 0x0501f88a, 0x0501f086, 0x64140801, - 0x1c01f000, 0x64140801, 0x0501f07f, 0x40100000, - 0x0c01f001, 0x00104cfd, 0x00104cff, 0x00104d00, - 0x00104d02, 0x00104d04, 0x00104d06, 0x00104d09, - 0x00104d0b, 0x64080801, 0x1c01f000, 0x1c01f000, - 0x64000801, 0x1c01f000, 0x641c0801, 0x1c01f000, - 0x64100801, 0x0501f06c, 0x64140801, 0x0501f870, - 0x0501f06c, 0x64140801, 0x1c01f000, 0x64140801, - 0x0501f065, 0x40100000, 0x0c01f001, 0x00104d17, - 0x00104d19, 0x00104d19, 0x00104d1a, 0x00104d19, - 0x00104d1c, 0x00104d1f, 0x00104d21, 0x64080801, - 0x1c01f000, 0x1c01f000, 0x641c0801, 0x1c01f000, - 0x64140801, 0x0501f85a, 0x0501f056, 0x64140801, - 0x1c01f000, 0x64140801, 0x0501f04f, 0x40100000, - 0x0c01f001, 0x00104d31, 0x00104d31, 0x00104d31, - 0x00104d2d, 0x00104d2f, 0x00104d31, 0x00104d31, - 0x00104d31, 0x641c0801, 0x1c01f000, 0x64100801, - 0x1c01f000, 0x1c01f000, 0x40100000, 0x0c01f001, - 0x00104d3c, 0x00104d3e, 0x00104d3e, 0x00104d3f, - 0x00104d41, 0x00104d43, 0x00104d43, 0x00104d43, - 0x64080801, 0x1c01f000, 0x1c01f000, 0x641c0801, - 0x1c01f000, 0x64100801, 0x0501f02f, 0x64200801, - 0x1c01f000, 0x40100000, 0x0c01f001, 0x00104d4f, - 0x00104d51, 0x00104d53, 0x00104d53, 0x00104d54, - 0x00104d56, 0x00104d56, 0x00104d56, 0x64080801, - 0x1c01f000, 0x640c0801, 0x1c01f000, 0x1c01f000, - 0x64100801, 0x0501f01c, 0x64200801, 0x1c01f000, - 0x40100000, 0x0c01f001, 0x00104d62, 0x00104d62, - 0x00104d64, 0x00104d65, 0x00104d67, 0x00104d64, - 0x00104d69, 0x00104d64, 0x64140801, 0x0501f00b, + 0x59c40006, 0x8400050a, 0x48038806, 0x64838805, + 0x90000541, 0x0501f01b, 0x59c410a3, 0x84081518, + 0x05e5fd34, 0x4a038808, 0x00000200, 0x6095d000, + 0x0509f96d, 0x59c410a3, 0x84081558, 0x05e5fd2d, + 0x60082000, 0x0501f8ab, 0x497b8880, 0x59a80012, + 0x80000540, 0x05020002, 0x80000000, 0x48038893, + 0x59a8001f, 0x82000500, 0x0000ffff, 0x4c000000, + 0x05e5f96f, 0x5c000000, 0x48038880, 0x80000580, + 0x4df00000, 0x05e5fc4a, 0x5c03e000, 0x5c001000, + 0x480b8808, 0x5c01d000, 0x5c00b000, 0x1c01f000, + 0x4803c856, 0x60042000, 0x0501f892, 0x59c40004, + 0x82000500, 0x00003e02, 0x05000008, 0x0509ff9c, + 0x0501f987, 0x4a038808, 0x00000208, 0x64075014, + 0x6006d800, 0x0501f046, 0x05ddfb2f, 0x42000000, + 0x0010b31d, 0x0529fd44, 0x05ddff31, 0x59c40006, + 0x84000508, 0x48038806, 0x64438805, 0x850e1d4c, + 0x61900800, 0x42001000, 0x00104a75, 0x0509f91c, + 0x59c410a3, 0x84081518, 0x05e5fcf6, 0x4a038808, + 0x00000200, 0x497b8880, 0x4a038805, 0x000000f0, + 0x05e5fbf7, 0x61c00801, 0x59c40005, 0x80040d00, + 0x0500000b, 0x82000500, 0x000000e0, 0x0502000d, + 0x61a1d007, 0x0509f924, 0x0505ff8b, 0x59940004, + 0x80000540, 0x05fe07f1, 0x0501f021, 0x59c410a3, + 0x84081558, 0x05e5fcdf, 0x60082000, 0x0501f85d, + 0x4c080000, 0x42001000, 0x00104a75, 0x0509f905, + 0x5c001000, 0x497b8880, 0x59a80012, 0x80000540, + 0x05020002, 0x80000000, 0x48038893, 0x59a8001f, + 0x82000500, 0x0000ffff, 0x4c000000, 0x05e5f91c, + 0x5c000000, 0x48038880, 0x850e1d0c, 0x59c40006, + 0x84000548, 0x48038806, 0x05e5fbf5, 0x59c40008, + 0x82000540, 0x00000280, 0x48038808, 0x1c01f000, + 0x4803c856, 0x4d400000, 0x4d3c0000, 0x0509ff4c, + 0x0529fe0d, 0x0502002c, 0x599c1017, 0x8d0c0500, + 0x05020009, 0x8c08051a, 0x05000027, 0x850e1d42, + 0x60128000, 0x60227800, 0x8d0c0520, 0x05020006, + 0x0501f01d, 0x60128000, 0x417a7800, 0x8d0c0520, + 0x05000019, 0x0529fe09, 0x42024800, 0x0010b391, + 0x59240200, 0x8c000500, 0x05000006, 0x4c580000, + 0x60040800, 0x60001002, 0x0509f966, 0x5c00b000, + 0x91264c0b, 0x8058b040, 0x05fe07f6, 0x61fe41ff, + 0x4d400000, 0x603a8000, 0x600c3000, 0x61fe89ff, + 0x0525fdc9, 0x5c028000, 0x599c0817, 0x8c04050a, + 0x05020005, 0x4943c857, 0x493fc857, 0x0201f800, + 0x0010edf3, 0x497b8880, 0x6006d800, 0x05fdfd39, + 0x5c027800, 0x5c028000, 0x1c01f000, 0x05ddfab2, + 0x42000000, 0x0010b31e, 0x0529fcc7, 0x05ddfeb4, + 0x60040000, 0x05e5f8d2, 0x64078880, 0x05e5f3b0, + 0x42000800, 0x0010ae95, 0x48100802, 0x90101488, + 0x05001008, 0x58040001, 0x4803c857, 0x4813c857, + 0x58040003, 0x80000000, 0x48000803, 0x60082000, + 0x58040001, 0x9000148b, 0x05001007, 0x4803c857, + 0x4813c857, 0x58040003, 0x80000000, 0x48000803, + 0x60000000, 0x48000800, 0x59c428a4, 0x90142d0f, + 0x90142d8c, 0x0c000002, 0x0501f0fb, 0x00104daa, + 0x00104dc4, 0x00104dde, 0x00104df8, 0x00104e12, + 0x00104e28, 0x00104e37, 0x00104e4a, 0x00104e5d, + 0x00104e70, 0x00104e72, 0x40100000, 0x0c01f001, + 0x00104db4, 0x00104db6, 0x00104db8, 0x00104db9, + 0x00104dbb, 0x00104dbd, 0x00104dc0, 0x00104dc2, + 0x64080801, 0x1c01f000, 0x640c0801, 0x0501f0bc, 0x1c01f000, 0x641c0801, 0x1c01f000, 0x64100801, - 0x1c01f000, 0x64200801, 0x1c01f000, 0x64240801, - 0x1c01f000, 0x1c01f000, 0x42000000, 0x0010af96, - 0x0529f225, 0x42000000, 0x0010af93, 0x0529f222, - 0x42000000, 0x0010af95, 0x0529f21f, 0x42000000, - 0x0010af94, 0x0529f21c, 0x42000800, 0x0010ac15, - 0x58040001, 0x48000800, 0x64140801, 0x64200802, - 0x1c01f000, 0x42000800, 0x0010ac15, 0x58040001, - 0x48000800, 0x64040801, 0x64280802, 0x1c01f000, - 0x42000800, 0x0010ac15, 0x58040001, 0x48000800, - 0x64180801, 0x64240802, 0x1c01f000, 0x42000800, - 0x0010ac15, 0x64280801, 0x64280800, 0x1c01f000, - 0x496fc857, 0x4813c857, 0x40100000, 0x0c01f001, - 0x00104dae, 0x00104dae, 0x00104dae, 0x00104dae, - 0x00104da0, 0x00104da8, 0x00104dac, 0x00104dae, - 0x59a8021b, 0x8c000506, 0x05000003, 0x8c000502, - 0x0500000a, 0x0501f80a, 0x05fe07cb, 0x0501f007, - 0x0501f807, 0x05000005, 0x05fdffca, 0x05fdf7cc, - 0x0501f803, 0x05fe07ca, 0x1c01f000, 0x496fc857, - 0x416c0000, 0x90000c88, 0x05da1c3d, 0x0c01f001, - 0x00104dbc, 0x00104dbe, 0x00104dbe, 0x00104dbe, - 0x00104dbc, 0x00104dbc, 0x00104dbc, 0x00104dbe, - 0x80000580, 0x1c01f000, 0x90000541, 0x1c01f000, - 0x6002e000, 0x497b3004, 0x4a03b004, 0x60000001, - 0x59d80005, 0x4a03b004, 0x90000001, 0x4a03a804, - 0x60000001, 0x59d40005, 0x4a03a804, 0x90000001, - 0x0501fd55, 0x0501f541, 0x6413c825, 0x6413c827, - 0x599c0409, 0x80000d40, 0x0500001f, 0x599c0407, - 0x80000540, 0x05000007, 0x800000cc, 0x599c100b, - 0x80080400, 0x4803b000, 0x497bb002, 0x59d80001, - 0x599c000b, 0x4803b000, 0x599c000c, 0x4803b001, - 0x599c0407, 0x80000540, 0x05020002, 0x497bb002, - 0x599c0c09, 0x82040540, 0x00400000, 0x4803b003, - 0x6417b009, 0x4a03b004, 0x10000001, 0x59e00803, - 0x82040d00, 0xfffffeff, 0x82040d40, 0x00008000, - 0x4807c003, 0x599c040a, 0x80000540, 0x0500001f, - 0x599c0408, 0x80000540, 0x05000007, 0x800000cc, - 0x599c100f, 0x80080400, 0x4803a800, 0x497ba802, - 0x59d40001, 0x599c000f, 0x4803a800, 0x599c0010, - 0x4803a801, 0x599c0408, 0x80000540, 0x05020002, - 0x497ba802, 0x599c0c0a, 0x82040540, 0x00400000, - 0x4803a803, 0x6417a809, 0x4a03a804, 0x10000001, - 0x59e00803, 0x82040d00, 0xfffffbff, 0x82040d40, - 0x00008000, 0x4807c003, 0x800409c0, 0x05000004, - 0x6006e000, 0x0004b8ed, 0x0004f100, 0x1c01f000, - 0x05d9fbd7, 0x1c01f000, 0x0501f850, 0x5c03e000, - 0x0001f652, 0x0001ffb1, 0x05fdf7fd, 0x00104e6a, - 0x00104e6a, 0x00104e6a, 0x00104e6a, 0x00104e76, - 0x00104e6a, 0x00104e6a, 0x00104e6a, 0x00104e6a, - 0x00104e6a, 0x000207a8, 0x00104e6a, 0x00104e6a, - 0x00104e76, 0x00104e76, 0x00104e6a, 0x00104e6a, - 0x00104e6a, 0x00104e6a, 0x00104e6a, 0x00104e6a, - 0x00104e6a, 0x00104e6a, 0x00104e6a, 0x00104e6a, - 0x00104e6a, 0x00104e6a, 0x00104e6a, 0x00104e6a, - 0x00104e6a, 0x00104e6a, 0x00104e6a, 0x00104e6a, - 0x00104e6a, 0x00104e6a, 0x00104e6a, 0x00104e6a, - 0x00104e6a, 0x00104e6a, 0x00104e6a, 0x00104e6a, - 0x00104e6a, 0x00104e6a, 0x00104e6a, 0x00104e6a, - 0x00104e6a, 0x00104e6a, 0x00104e6a, 0x00104e6a, - 0x00104e6a, 0x00104e6a, 0x00104e6a, 0x00104e6a, - 0x00104e6a, 0x00104e6a, 0x00104e6a, 0x00104e6a, - 0x00104e6a, 0x00104e6a, 0x00104e6a, 0x00104e6a, - 0x00104e6a, 0x00104e6a, 0x00104e6a, 0x00104e6a, - 0x00104e6a, 0x00104e6a, 0x00104e6a, 0x00104e6a, - 0x00104e6a, 0x00104e6a, 0x00104e6a, 0x00104e6a, - 0x00104e6a, 0x000207a8, 0x492fc857, 0x42000000, - 0x0010b051, 0x0529f928, 0x60000008, 0x0501f013, - 0x492fc857, 0x42000000, 0x0010b050, 0x0529f922, - 0x60000020, 0x0501f00d, 0x492fc857, 0x42000000, - 0x0010b04f, 0x0529f91c, 0x60000040, 0x0501f007, - 0x492fc857, 0x42000000, 0x0010b052, 0x0529f916, - 0x60000010, 0x0501f001, 0x4803c857, 0x592c0c05, - 0x82040d00, 0xffff80ff, 0x80040540, 0x59980803, - 0x800409c0, 0x05000002, 0x8400051e, 0x48025c05, - 0x0001ff6c, 0x0001fb5b, 0x91700583, 0x6006e000, - 0x05000002, 0x1c01f000, 0x599a5801, 0x812e59c0, - 0x05fe07e2, 0x05d9fb5a, 0x60081000, 0x60000801, - 0x60401800, 0x0501f004, 0x600c1000, 0x41780800, - 0x60181800, 0x492fc857, 0x480bc857, 0x592c0205, - 0x82000500, 0x000000ff, 0xb00005aa, 0x05000004, - 0x480e5a07, 0x0001fb5b, 0x0501f00a, 0x4d400000, - 0x4c300000, 0x497a5c09, 0x497a5c0a, 0x400a8000, - 0x05fdf941, 0x0001fb5b, 0x5c006000, 0x5c028000, - 0x6006e000, 0x4a006002, 0x00000100, 0x58325809, - 0x49786009, 0x05d9fed7, 0x5c025800, 0x1c01f000, - 0x492fc857, 0x80140110, 0x05fc07b6, 0x80000040, - 0x05000026, 0x4a033006, 0x00104ee2, 0x0001f65b, - 0x492fc857, 0x0529f9e4, 0x00020799, 0x492fc856, - 0x83440400, 0x0010a380, 0x50000000, 0x80026d40, - 0x0500000b, 0x592e4411, 0x81224110, 0x59340013, - 0x80000130, 0x81200580, 0x05020005, 0x4937c857, - 0x59340200, 0x8c00050e, 0x00020799, 0x60a28000, - 0x41780800, 0x417a6000, 0x05fdf917, 0x0519fd9f, - 0x0001f35b, 0x82000500, 0x0f000000, 0x8000012a, - 0x592c0c0b, 0x82040d00, 0x0000ff87, 0x80040540, - 0x48025c0b, 0x0001f7a5, 0x492fc857, 0x592c0409, - 0x80000540, 0x05fe0797, 0x8d0c050e, 0x05020008, - 0x592c0208, 0x80000540, 0x05fc0792, 0x497a5a07, - 0x05f9f83a, 0x05020003, 0x1c01f000, 0x60a00000, - 0x48025a07, 0x0001f35b, 0x592e8a07, 0x592c0407, - 0x4947c857, 0x4803c857, 0x82000500, 0x000000ff, - 0x6004b800, 0x90000d81, 0x0500000e, 0x417a8800, - 0x61c0b80f, 0x90000d82, 0x0500000a, 0x80000540, - 0x0002035b, 0x592e8a07, 0x0001fae7, 0x0002035b, - 0x592e9009, 0x592e980a, 0x05f9fbbd, 0x0001f35b, - 0x850e1d00, 0x0001fae7, 0x05f80ca1, 0x81468800, - 0x805cb840, 0x05fe07fc, 0x0001f35b, 0x592c0a09, - 0x4807c857, 0x592e4411, 0x81224110, 0x9004058e, - 0x0500006b, 0x900405aa, 0x0500001d, 0x9004058f, - 0x05000413, 0x900405ae, 0x05000411, 0x4c040000, - 0x0501fb74, 0x5c000800, 0x05020411, 0xb0040586, - 0x0500007e, 0xb0040585, 0x05000029, 0xb0040589, - 0x05000407, 0x900405a9, 0x05020409, 0x592e8a07, - 0x05f9fdcc, 0x05020402, 0x59340200, 0x84000518, - 0x48026a00, 0x592e600a, 0x4933c857, 0x83300580, - 0xffffffff, 0x05020072, 0x0501f3f9, 0x83200580, - 0x000000ff, 0x05000008, 0x83200400, 0x0010a0ec, - 0x50024800, 0x59240a00, 0x84040d16, 0x48064a00, - 0x0501f3ef, 0x42024800, 0x0010b111, 0x0529f973, - 0x59240200, 0x8c000500, 0x05000004, 0x59240200, - 0x84000516, 0x48024a00, 0x91264c0b, 0x8058b040, - 0x05fe07f8, 0x850e1d04, 0x0501f3e1, 0x592c1408, - 0x480bc857, 0x051df865, 0x411e6000, 0x05020003, - 0x4803c856, 0x0501f3de, 0x59300c07, 0x90040584, - 0x05000003, 0x4803c856, 0x0501f3d9, 0x592c0208, - 0x8c000506, 0x0500000b, 0x0509f823, 0x4df00000, - 0x0505ff20, 0x0201f800, 0x0010eeb1, 0x80c40040, - 0x5c03e000, 0x05080808, 0x050dfdb1, 0x0501f3c8, - 0x592e380a, 0x591c1416, 0x8c080516, 0x050003c8, - 0x59300009, 0x800001c0, 0x05da0a85, 0x84081554, - 0x480a3c16, 0x64ea6403, 0x592c040c, 0x80000540, - 0x05000006, 0x64ee6403, 0x592c020d, 0x4802641c, - 0x592c040d, 0x4802621c, 0x64066203, 0x42000800, - 0x80000040, 0x0501fbbd, 0x05000003, 0x492e6009, - 0x0005f32e, 0x0005fb2e, 0x0501f3ad, 0x83200d80, - 0x000000ff, 0x05000010, 0x42000000, 0x0010b110, - 0x50000000, 0x81200480, 0x000610e7, 0x83200400, - 0x0010a0ec, 0x50024800, 0x59240200, 0x8c000500, - 0x000400e7, 0x59240206, 0x84000510, 0x48024a06, - 0x0501f39b, 0x42024800, 0x0010b111, 0x0529f91f, - 0x59240200, 0x8c000500, 0x05000004, 0x59240206, - 0x84000510, 0x48024a06, 0x91264c0b, 0x8058b040, - 0x05fe07f8, 0x0501f38e, 0x592c1208, 0x8c080500, - 0x0502038b, 0x592e8a07, 0x592e600a, 0x051df818, - 0x05020003, 0x4803c856, 0x0501f389, 0x59300c07, - 0x90040584, 0x05000003, 0x4803c856, 0x0501f384, - 0x59300a03, 0x90040587, 0x05000003, 0x4803c856, - 0x0501f37f, 0x59300c03, 0x90040581, 0x05000016, - 0x90040582, 0x0500000e, 0x90040588, 0x05000010, - 0x9004058a, 0x05000005, 0x9004058c, 0x05020014, - 0x60240800, 0x0501f011, 0x5932680a, 0x05f9fcf6, - 0x0502000f, 0x60140800, 0x0501f00c, 0x417a7800, - 0x0201f800, 0x0010ec6c, 0x64066407, 0x600c0800, - 0x0501f006, 0x417a7800, 0x0201f800, 0x0010ec6c, - 0x64066407, 0x602c0800, 0x05f9f91d, 0x64066203, - 0x0501fb66, 0x05000003, 0x492e6009, 0x0505f64f, - 0x0505fe4e, 0x0501f356, 0x59300416, 0x8c000518, - 0x052603a0, 0x0501f094, 0x40000800, 0x58040000, - 0x80000540, 0x05fe07fd, 0x492c0800, 0x1c01f000, - 0x492fc857, 0x59300c07, 0x90040586, 0x05020087, - 0x59340400, 0x82000580, 0x00000606, 0x05020004, - 0x59340200, 0x8c00051a, 0x000007fb, 0x59340200, - 0x8c00050e, 0x0500007d, 0x59300203, 0x60067800, - 0x90000587, 0x000207fb, 0x640a6203, 0x0001f7fb, - 0x600a8000, 0x64526006, 0x4d2c0000, 0x0521ff12, - 0x5c025800, 0x59300c07, 0x4807c857, 0x90040587, - 0x0502005c, 0x492fc857, 0x64065a07, 0x0001f35b, - 0x83300580, 0xffffffff, 0x05020056, 0x592c240b, - 0x492fc857, 0x4813c857, 0x8c10051c, 0x05020016, - 0x8c10051a, 0x05000003, 0x8c10050a, 0x05000062, - 0x59340a00, 0x8c04050e, 0x05000003, 0x8c10051e, - 0x0500005d, 0x0005fc3d, 0x05000065, 0x592c240b, - 0x59243a00, 0x592c020d, 0x48026202, 0x4936600a, - 0x4926601d, 0x4932580a, 0x641a6407, 0x641e6203, - 0x0001f7f6, 0x592c0a0d, 0x4c040000, 0x05f9ff67, - 0x5c000800, 0x0502006a, 0x58080000, 0x49781000, - 0x802041c0, 0x05000006, 0x48004000, 0x80000540, - 0x05020007, 0x48226810, 0x0501f005, 0x4802680f, - 0x80000540, 0x05020002, 0x497a6810, 0x4d2c0000, - 0x400a5800, 0x640a5a07, 0x0001fb5b, 0x5c025800, - 0x05fdf7c9, 0x8c10051c, 0x000207e7, 0x0501f01e, - 0x05f9fcbc, 0x000007dd, 0x42000000, 0x0010b110, - 0x50000000, 0x81200480, 0x0502102c, 0x8c10051c, - 0x05000015, 0x592c0207, 0x82000580, 0x0000ffff, - 0x05020011, 0x592e600a, 0x83300580, 0xffffffff, - 0x05fc07b5, 0x051dfc62, 0x0502000e, 0x592c220d, - 0x59300202, 0x80100580, 0x0502000a, 0x59300009, - 0x800001c0, 0x05020004, 0x59300203, 0x90000587, - 0x05fc07a0, 0x492fc857, 0x64a65a07, 0x0001f35b, - 0x492fc857, 0x64225a07, 0x0001f35b, 0x4803c857, - 0x8c000514, 0x05000007, 0x42000000, 0x0010b040, - 0x0525ff35, 0x492fc857, 0x492e6009, 0x1c01f000, - 0x492fc857, 0x65165a07, 0x0001f35b, 0x492fc857, - 0x64aa5a07, 0x0001f35b, 0x492fc857, 0x64a25a07, - 0x0001f35b, 0x492fc857, 0x641a5a07, 0x0001f35b, - 0x492fc857, 0x643a5a07, 0x0001f35b, 0x90040587, - 0x05fe07e4, 0x640a5a07, 0x0001f35b, 0x592c0407, - 0x800000c2, 0x800008c4, 0x80040400, 0x48025804, - 0x59340010, 0x492e6810, 0x492fc857, 0x80000d40, - 0x05000003, 0x492c0800, 0x1c01f000, 0x59340203, - 0x492e680f, 0x492fc857, 0x4803c857, 0x80000540, - 0x05020002, 0x64066a03, 0x1c01f000, 0x59a8000d, - 0x81640480, 0x05fe1770, 0x42026000, 0x001102e4, - 0x5930000a, 0x81340580, 0x05020004, 0x59300202, - 0x80040580, 0x05fc075f, 0x91326430, 0x41580000, - 0x81300480, 0x05fc17f7, 0x05fdf763, 0x492fc857, - 0x592e7c07, 0x833c0500, 0xfffffffe, 0x0502003d, - 0x592c4008, 0x42026000, 0x001102e4, 0x41581800, - 0x400c0000, 0x81300480, 0x05021021, 0x59300203, - 0x90000580, 0x05000007, 0x59300009, 0x80000d40, - 0x05000004, 0x58040006, 0x80200580, 0x05000003, - 0x91326430, 0x05fdf7f3, 0x58040205, 0x82000500, - 0x000000ff, 0xb0000d93, 0x0500000b, 0xb0000d88, - 0x05000009, 0x90000d98, 0x05000007, 0x90000da9, + 0x0501f0ba, 0x64140801, 0x0501f8be, 0x0501f0ba, + 0x64140801, 0x0501f0bb, 0x4813c857, 0x1c01f000, + 0x40100000, 0x0c01f001, 0x00104dce, 0x00104dd0, + 0x00104dd2, 0x00104dd3, 0x00104dd5, 0x00104dd7, + 0x00104dda, 0x00104ddc, 0x64080801, 0x1c01f000, + 0x640c0801, 0x1c01f000, 0x1c01f000, 0x641c0801, + 0x1c01f000, 0x64100801, 0x0501f0a0, 0x64140801, + 0x0501f8a4, 0x0501f0a0, 0x64140801, 0x1c01f000, + 0x64140801, 0x0501f099, 0x40100000, 0x0c01f001, + 0x00104de8, 0x00104de9, 0x00104deb, 0x00104ded, + 0x00104def, 0x00104df1, 0x00104df4, 0x00104df6, + 0x1c01f000, 0x640c0801, 0x1c01f000, 0x64000801, + 0x1c01f000, 0x641c0801, 0x1c01f000, 0x64100801, + 0x0501f086, 0x64140801, 0x0501f88a, 0x0501f086, + 0x64140801, 0x1c01f000, 0x64140801, 0x0501f07f, + 0x40100000, 0x0c01f001, 0x00104e02, 0x00104e04, + 0x00104e05, 0x00104e07, 0x00104e09, 0x00104e0b, + 0x00104e0e, 0x00104e10, 0x64080801, 0x1c01f000, + 0x1c01f000, 0x64000801, 0x1c01f000, 0x641c0801, + 0x1c01f000, 0x64100801, 0x0501f06c, 0x64140801, + 0x0501f870, 0x0501f06c, 0x64140801, 0x1c01f000, + 0x64140801, 0x0501f065, 0x40100000, 0x0c01f001, + 0x00104e1c, 0x00104e1e, 0x00104e1e, 0x00104e1f, + 0x00104e1e, 0x00104e21, 0x00104e24, 0x00104e26, + 0x64080801, 0x1c01f000, 0x1c01f000, 0x641c0801, + 0x1c01f000, 0x64140801, 0x0501f85a, 0x0501f056, + 0x64140801, 0x1c01f000, 0x64140801, 0x0501f04f, + 0x40100000, 0x0c01f001, 0x00104e36, 0x00104e36, + 0x00104e36, 0x00104e32, 0x00104e34, 0x00104e36, + 0x00104e36, 0x00104e36, 0x641c0801, 0x1c01f000, + 0x64100801, 0x1c01f000, 0x1c01f000, 0x40100000, + 0x0c01f001, 0x00104e41, 0x00104e43, 0x00104e43, + 0x00104e44, 0x00104e46, 0x00104e48, 0x00104e48, + 0x00104e48, 0x64080801, 0x1c01f000, 0x1c01f000, + 0x641c0801, 0x1c01f000, 0x64100801, 0x0501f02f, + 0x64200801, 0x1c01f000, 0x40100000, 0x0c01f001, + 0x00104e54, 0x00104e56, 0x00104e58, 0x00104e58, + 0x00104e59, 0x00104e5b, 0x00104e5b, 0x00104e5b, + 0x64080801, 0x1c01f000, 0x640c0801, 0x1c01f000, + 0x1c01f000, 0x64100801, 0x0501f01c, 0x64200801, + 0x1c01f000, 0x40100000, 0x0c01f001, 0x00104e67, + 0x00104e67, 0x00104e69, 0x00104e6a, 0x00104e6c, + 0x00104e69, 0x00104e6e, 0x00104e69, 0x64140801, + 0x0501f00b, 0x1c01f000, 0x641c0801, 0x1c01f000, + 0x64100801, 0x1c01f000, 0x64200801, 0x1c01f000, + 0x64240801, 0x1c01f000, 0x1c01f000, 0x42000000, + 0x0010b216, 0x0529f3d0, 0x42000000, 0x0010b213, + 0x0529f3cd, 0x42000000, 0x0010b215, 0x0529f3ca, + 0x42000000, 0x0010b214, 0x0529f3c7, 0x42000800, + 0x0010ae95, 0x58040001, 0x48000800, 0x64140801, + 0x64200802, 0x1c01f000, 0x42000800, 0x0010ae95, + 0x58040001, 0x48000800, 0x64040801, 0x64280802, + 0x1c01f000, 0x42000800, 0x0010ae95, 0x58040001, + 0x48000800, 0x64180801, 0x64240802, 0x1c01f000, + 0x42000800, 0x0010ae95, 0x64280801, 0x64280800, + 0x1c01f000, 0x496fc857, 0x4813c857, 0x40100000, + 0x0c01f001, 0x00104eb3, 0x00104eb3, 0x00104eb3, + 0x00104eb3, 0x00104ea5, 0x00104ead, 0x00104eb1, + 0x00104eb3, 0x59a8021b, 0x8c000506, 0x05000003, + 0x8c000502, 0x0500000a, 0x0501f80a, 0x05fe07cb, + 0x0501f007, 0x0501f807, 0x05000005, 0x05fdffca, + 0x05fdf7cc, 0x0501f803, 0x05fe07ca, 0x1c01f000, + 0x496fc857, 0x416c0000, 0x90000c88, 0x05da1b38, + 0x0c01f001, 0x00104ec1, 0x00104ec3, 0x00104ec3, + 0x00104ec3, 0x00104ec1, 0x00104ec1, 0x00104ec1, + 0x00104ec3, 0x80000580, 0x1c01f000, 0x90000541, + 0x1c01f000, 0x6002e000, 0x497b3004, 0x4a03b004, + 0x60000001, 0x59d80005, 0x4a03b004, 0x90000001, + 0x4a03a804, 0x60000001, 0x59d40005, 0x4a03a804, + 0x90000001, 0x0501fdc9, 0x0501f5b5, 0x6413c825, + 0x6413c827, 0x599c0409, 0x80000d40, 0x0500001f, + 0x599c0407, 0x80000540, 0x05000007, 0x800000cc, + 0x599c100b, 0x80080400, 0x4803b000, 0x497bb002, + 0x59d80001, 0x599c000b, 0x4803b000, 0x599c000c, + 0x4803b001, 0x599c0407, 0x80000540, 0x05020002, + 0x497bb002, 0x599c0c09, 0x82040540, 0x00400000, + 0x4803b003, 0x6417b009, 0x4a03b004, 0x10000001, + 0x59e00803, 0x82040d00, 0xfffffeff, 0x82040d40, + 0x00008000, 0x4807c003, 0x599c040a, 0x80000540, + 0x0500001f, 0x599c0408, 0x80000540, 0x05000007, + 0x800000cc, 0x599c100f, 0x80080400, 0x4803a800, + 0x497ba802, 0x59d40001, 0x599c000f, 0x4803a800, + 0x599c0010, 0x4803a801, 0x599c0408, 0x80000540, + 0x05020002, 0x497ba802, 0x599c0c0a, 0x82040540, + 0x00400000, 0x4803a803, 0x6417a809, 0x4a03a804, + 0x10000001, 0x59e00803, 0x82040d00, 0xfffffbff, + 0x82040d40, 0x00008000, 0x4807c003, 0x800409c0, + 0x05000004, 0x6006e000, 0x0004b8ed, 0x0004f100, + 0x1c01f000, 0x05d9fad2, 0x1c01f000, 0x0501f850, + 0x5c03e000, 0x0001f652, 0x0001ffb1, 0x05fdf7fd, + 0x00104f6f, 0x00104f6f, 0x00104f6f, 0x00104f6f, + 0x00104f7b, 0x00104f6f, 0x00104f6f, 0x00104f6f, + 0x00104f6f, 0x00104f6f, 0x000207a8, 0x00104f6f, + 0x00104f6f, 0x00104f7b, 0x00104f7b, 0x00104f6f, + 0x00104f6f, 0x00104f6f, 0x00104f6f, 0x00104f6f, + 0x00104f6f, 0x00104f6f, 0x00104f6f, 0x00104f6f, + 0x00104f6f, 0x00104f6f, 0x00104f6f, 0x00104f6f, + 0x00104f6f, 0x00104f6f, 0x00104f6f, 0x00104f6f, + 0x00104f6f, 0x00104f6f, 0x00104f6f, 0x00104f6f, + 0x00104f6f, 0x00104f6f, 0x00104f6f, 0x00104f6f, + 0x00104f6f, 0x00104f6f, 0x00104f6f, 0x00104f6f, + 0x00104f6f, 0x00104f6f, 0x00104f6f, 0x00104f6f, + 0x00104f6f, 0x00104f6f, 0x00104f6f, 0x00104f6f, + 0x00104f6f, 0x00104f6f, 0x00104f6f, 0x00104f6f, + 0x00104f6f, 0x00104f6f, 0x00104f6f, 0x00104f6f, + 0x00104f6f, 0x00104f6f, 0x00104f6f, 0x00104f6f, + 0x00104f6f, 0x00104f6f, 0x00104f6f, 0x00104f6f, + 0x00104f6f, 0x00104f6f, 0x00104f6f, 0x00104f6f, + 0x00104f6f, 0x00104f6f, 0x000207a8, 0x492fc857, + 0x42000000, 0x0010b2d1, 0x0529fad3, 0x60000008, + 0x0501f013, 0x492fc857, 0x42000000, 0x0010b2d0, + 0x0529facd, 0x60000020, 0x0501f00d, 0x492fc857, + 0x42000000, 0x0010b2cf, 0x0529fac7, 0x60000040, + 0x0501f007, 0x492fc857, 0x42000000, 0x0010b2d2, + 0x0529fac1, 0x60000010, 0x0501f001, 0x4803c857, + 0x592c0c05, 0x82040d00, 0xffff80ff, 0x80040540, + 0x59980803, 0x800409c0, 0x05000002, 0x8400051e, + 0x48025c05, 0x0001ff6c, 0x0001fb5b, 0x91700583, + 0x6006e000, 0x05000002, 0x1c01f000, 0x599a5801, + 0x812e59c0, 0x05fe07e2, 0x05d9fa55, 0x60081000, + 0x60000801, 0x60401800, 0x0501f004, 0x600c1000, + 0x41780800, 0x60181800, 0x492fc857, 0x480bc857, + 0x592c0205, 0x82000500, 0x000000ff, 0xb00005aa, + 0x05000004, 0x480e5a07, 0x0001fb5b, 0x0501f00a, + 0x4d400000, 0x4c300000, 0x497a5c09, 0x497a5c0a, + 0x400a8000, 0x05fdf939, 0x0001fb5b, 0x5c006000, + 0x5c028000, 0x6006e000, 0x4a006002, 0x00000100, + 0x58325809, 0x49786009, 0x05d9fdd2, 0x5c025800, + 0x1c01f000, 0x492fc857, 0x80140110, 0x05fc07b6, + 0x80000040, 0x05000026, 0x4a033006, 0x00104fe7, + 0x0001f65b, 0x492fc857, 0x0529fb8f, 0x00020799, + 0x492fc856, 0x83440400, 0x0010a600, 0x50000000, + 0x80026d40, 0x0500000b, 0x592e4411, 0x81224110, + 0x59340013, 0x80000130, 0x81200580, 0x05020005, + 0x4937c857, 0x59340200, 0x8c00050e, 0x00020799, + 0x60a28000, 0x41780800, 0x417a6000, 0x05fdf90f, + 0x0519fe7b, 0x0001f35b, 0x82000500, 0x0f000000, + 0x8000012a, 0x592c0c0b, 0x82040d00, 0x0000ff87, + 0x80040540, 0x48025c0b, 0x0001f7a5, 0x492fc857, + 0x592c0409, 0x80000540, 0x05fe0797, 0x8d0c050e, + 0x05020008, 0x592c0208, 0x80000540, 0x05fc0792, + 0x497a5a07, 0x05f9f808, 0x05020003, 0x1c01f000, + 0x60a00000, 0x48025a07, 0x0001f35b, 0x592e8a07, + 0x592c0407, 0x4947c857, 0x4803c857, 0x82000500, + 0x000000ff, 0x6004b800, 0x90000d81, 0x0500000e, + 0x417a8800, 0x61c0b80f, 0x90000d82, 0x0500000a, + 0x80000540, 0x0002035b, 0x592e8a07, 0x0001fae7, + 0x0002035b, 0x592e9009, 0x592e980a, 0x05f9fb92, + 0x0001f35b, 0x850e1d00, 0x0001fae7, 0x05f80c76, + 0x81468800, 0x805cb840, 0x05fe07fc, 0x0001f35b, + 0x592c0a09, 0x4807c857, 0x592e4411, 0x81224110, + 0x9004058e, 0x05000070, 0x900405aa, 0x05000022, + 0x9004058f, 0x05000487, 0x900405ae, 0x05000485, + 0x4c040000, 0x0501fbe8, 0x5c000800, 0x05020485, + 0xb0040586, 0x05000083, 0xb0040585, 0x0500002e, + 0xb0040589, 0x0500047b, 0x900405a9, 0x0502047d, + 0x592e8a07, 0x42026800, 0x0010ce8f, 0x83440580, + 0x0000ffff, 0x05000006, 0x05f9fd9e, 0x05020471, + 0x59340200, 0x84000518, 0x48026a00, 0x592e600a, + 0x4933c857, 0x83300580, 0xffffffff, 0x05020072, + 0x0501f468, 0x83200580, 0x000000ff, 0x05000008, + 0x83200400, 0x0010a3b3, 0x50024800, 0x59240a00, + 0x84040d16, 0x48064a00, 0x0501f45e, 0x42024800, + 0x0010b391, 0x0529fb19, 0x59240200, 0x8c000500, + 0x05000004, 0x59240200, 0x84000516, 0x48024a00, + 0x91264c0b, 0x8058b040, 0x05fe07f8, 0x850e1d04, + 0x0501f450, 0x592c1408, 0x480bc857, 0x051df93c, + 0x411e6000, 0x05020003, 0x4803c856, 0x0501f44d, + 0x59300c07, 0x90040584, 0x05000003, 0x4803c856, + 0x0501f448, 0x592c0208, 0x8c000506, 0x0500000b, + 0x0509f8db, 0x4df00000, 0x0505ffd8, 0x0201f800, + 0x0010f0c0, 0x80c40040, 0x5c03e000, 0x050808c0, + 0x050dfe5b, 0x0501f437, 0x592e380a, 0x591c1416, + 0x8c080516, 0x05000437, 0x59300009, 0x800001c0, + 0x05da097b, 0x84081554, 0x480a3c16, 0x64ea6403, + 0x592c040c, 0x80000540, 0x05000006, 0x64ee6403, + 0x592c020d, 0x4802641c, 0x592c040d, 0x4802621c, + 0x64066203, 0x42000800, 0x80000040, 0x0501fc2c, + 0x05000003, 0x492e6009, 0x0005f32e, 0x0005fb2e, + 0x0501f41c, 0x83200d80, 0x000000ff, 0x05000010, + 0x42000000, 0x0010b390, 0x50000000, 0x81200480, + 0x000610e7, 0x83200400, 0x0010a3b3, 0x50024800, + 0x59240200, 0x8c000500, 0x000400e7, 0x59240206, + 0x84000510, 0x48024a06, 0x0501f40a, 0x42024800, + 0x0010b391, 0x0529fac5, 0x59240200, 0x8c000500, + 0x05000004, 0x59240206, 0x84000510, 0x48024a06, + 0x91264c0b, 0x8058b040, 0x05fe07f8, 0x0501f3fd, + 0x592c1208, 0x8c080500, 0x050203fa, 0x592e8a07, + 0x592e600a, 0x051df8ef, 0x05020003, 0x4803c856, + 0x0501f3f8, 0x59300c07, 0x90040584, 0x05000003, + 0x4803c856, 0x0501f3f3, 0x59300a03, 0x90040587, + 0x05000003, 0x4803c856, 0x0501f3ee, 0x59300c03, + 0x90040581, 0x05000016, 0x90040582, 0x0500000e, + 0x90040588, 0x05000010, 0x9004058a, 0x05000005, + 0x9004058c, 0x0502001d, 0x60240800, 0x0501f01a, + 0x5932680a, 0x05f9fcc8, 0x05020018, 0x60140800, + 0x0501f015, 0x417a7800, 0x0201f800, 0x0010ee7a, + 0x64066407, 0x600c0800, 0x0501f00f, 0x83340580, + 0x0010ce8f, 0x05020007, 0x5930000a, 0x82000580, + 0x0010ce8f, 0x050203cf, 0x64066407, 0x0501f007, + 0x417a7800, 0x0201f800, 0x0010ee7a, 0x64066407, + 0x602c0800, 0x05f9f8dd, 0x64066203, 0x0501fbcc, + 0x05000003, 0x492e6009, 0x0505f6fe, 0x0505fefd, + 0x0501f3bc, 0x59300416, 0x8c000518, 0x0526052b, + 0x0501f094, 0x40000800, 0x58040000, 0x80000540, + 0x05fe07fd, 0x492c0800, 0x1c01f000, 0x492fc857, + 0x59300c07, 0x90040586, 0x05020087, 0x59340400, + 0x82000580, 0x00000606, 0x05020004, 0x59340200, + 0x8c00051a, 0x000007fb, 0x59340200, 0x8c00050e, + 0x0500007d, 0x59300203, 0x60067800, 0x90000587, + 0x000207fb, 0x640a6203, 0x0001f7fb, 0x600a8000, + 0x64526006, 0x4d2c0000, 0x0525f896, 0x5c025800, + 0x59300c07, 0x4807c857, 0x90040587, 0x0502005c, + 0x492fc857, 0x64065a07, 0x0001f35b, 0x83300580, + 0xffffffff, 0x05020056, 0x592c240b, 0x492fc857, + 0x4813c857, 0x8c10051c, 0x05020016, 0x8c10051a, + 0x05000003, 0x8c10050a, 0x05000062, 0x59340a00, + 0x8c04050e, 0x05000003, 0x8c10051e, 0x0500005d, + 0x0005fc3d, 0x05000065, 0x592c240b, 0x59243a00, + 0x592c020d, 0x48026202, 0x4936600a, 0x4926601d, + 0x4932580a, 0x641a6407, 0x641e6203, 0x0001f7f6, + 0x592c0a0d, 0x4c040000, 0x05f9ff33, 0x5c000800, + 0x0502006a, 0x58080000, 0x49781000, 0x802041c0, + 0x05000006, 0x48004000, 0x80000540, 0x05020007, + 0x48226810, 0x0501f005, 0x4802680f, 0x80000540, + 0x05020002, 0x497a6810, 0x4d2c0000, 0x400a5800, + 0x640a5a07, 0x0001fb5b, 0x5c025800, 0x05fdf7c9, + 0x8c10051c, 0x000207e7, 0x0501f01e, 0x05f9fc85, + 0x000007dd, 0x42000000, 0x0010b390, 0x50000000, + 0x81200480, 0x0502102c, 0x8c10051c, 0x05000015, + 0x592c0207, 0x82000580, 0x0000ffff, 0x05020011, + 0x592e600a, 0x83300580, 0xffffffff, 0x05fc07b5, + 0x051dfd35, 0x0502000e, 0x592c220d, 0x59300202, + 0x80100580, 0x0502000a, 0x59300009, 0x800001c0, + 0x05020004, 0x59300203, 0x90000587, 0x05fc07a0, + 0x492fc857, 0x64a65a07, 0x0001f35b, 0x492fc857, + 0x64225a07, 0x0001f35b, 0x4803c857, 0x8c000514, + 0x05000007, 0x42000000, 0x0010b2c0, 0x0529f8d2, + 0x492fc857, 0x492e6009, 0x1c01f000, 0x492fc857, + 0x65165a07, 0x0001f35b, 0x492fc857, 0x64aa5a07, + 0x0001f35b, 0x492fc857, 0x64a25a07, 0x0001f35b, + 0x492fc857, 0x641a5a07, 0x0001f35b, 0x492fc857, + 0x643a5a07, 0x0001f35b, 0x90040587, 0x05fe07e4, + 0x640a5a07, 0x0001f35b, 0x592c0407, 0x800000c2, + 0x800008c4, 0x80040400, 0x48025804, 0x59340010, + 0x492e6810, 0x492fc857, 0x80000d40, 0x05000003, + 0x492c0800, 0x1c01f000, 0x59340203, 0x492e680f, + 0x492fc857, 0x4803c857, 0x80000540, 0x05020002, + 0x64066a03, 0x1c01f000, 0x59a8000d, 0x81640480, + 0x05fe1770, 0x42026000, 0x00110514, 0x59300407, + 0x90000586, 0x05020007, 0x5930000a, 0x81340580, + 0x05020004, 0x59300202, 0x80040580, 0x05fc075c, + 0x91326430, 0x41580000, 0x81300480, 0x05fc17f4, + 0x05fdf760, 0x492fc857, 0x592e7c07, 0x833c0500, + 0xfffffffe, 0x0502003f, 0x592c4008, 0x42026000, + 0x00110514, 0x41581800, 0x400c0000, 0x81300480, + 0x05021023, 0x59300203, 0x90000580, 0x05000007, + 0x59300009, 0x80000d40, 0x05000004, 0x58040006, + 0x80200580, 0x05000003, 0x91326430, 0x05fdf7f3, + 0x58040205, 0x82000500, 0x000000ff, 0xb0000d93, + 0x0500000d, 0xb0000d88, 0x0500000b, 0x90000d98, + 0x05000009, 0x90000da9, 0x05000007, 0x90000d94, 0x05000005, 0xb00005a8, 0x05000003, 0x90000582, - 0x05fe07f0, 0x4d2c0000, 0x0515feae, 0x5c025800, + 0x05fe07ee, 0x4d2c0000, 0x0515ff74, 0x5c025800, 0x05000018, 0x64025a07, 0x0001f35b, 0x592e8a07, 0x83440480, 0x000007f0, 0x05021012, 0x83440400, - 0x0010a380, 0x50000000, 0x80026d40, 0x0500000d, - 0x4d2c0000, 0x05f9fa7a, 0x05000009, 0x60168000, - 0x592c0a09, 0x417a6000, 0x05f9ff17, 0x0519fba4, + 0x0010a600, 0x50000000, 0x80026d40, 0x0500000d, + 0x4d2c0000, 0x05f9fa3c, 0x05000009, 0x60168000, + 0x592c0a09, 0x417a6000, 0x05f9fefc, 0x0519fc6d, 0x0001fb5b, 0x5c025800, 0x05fdf7eb, 0x5c025800, 0x64c65a07, 0x0001f35b, 0x492fc857, 0x4d2c0000, - 0x05d9fc9c, 0x05000011, 0x492fc857, 0x412f4000, - 0x05d9fc98, 0x0500000b, 0x492fc857, 0x412dd800, - 0x05f1fcf5, 0x05f1fcfd, 0x49a1d80a, 0x5c025800, - 0x492dd809, 0x48ef4006, 0x05e9f829, 0x05e9f040, - 0x41a25800, 0x05d9fc9b, 0x5c025800, 0x4a025a07, + 0x05d9fb84, 0x05000011, 0x492fc857, 0x412f4000, + 0x05d9fb80, 0x0500000b, 0x492fc857, 0x412dd800, + 0x05f1fca8, 0x05f1fcb0, 0x49a1d80a, 0x5c025800, + 0x492dd809, 0x48ef4006, 0x05e5ffb4, 0x05e5f7cb, + 0x41a25800, 0x05d9fb83, 0x5c025800, 0x4a025a07, 0x00004005, 0x640a5c07, 0x0001f35b, 0x4807c857, 0x485fc857, 0x6004b800, 0x5c000800, 0x4c5c0000, 0x0501f005, 0x4807c857, 0x485fc857, 0x5c000800, 0x4d780000, 0x4803c857, 0x492fc857, 0x8c00050e, - 0x05da08e1, 0x4203e000, 0x50000000, 0x600cb900, - 0x05d9f0eb, 0x4803c856, 0x4c5c0000, 0x4c600000, + 0x05d60fc9, 0x4203e000, 0x50000000, 0x600cb900, + 0x05d5f7d3, 0x4803c856, 0x4c5c0000, 0x4c600000, 0x4c640000, 0x4d040000, 0x59a8008d, 0x90000506, - 0x0502008c, 0x916c0580, 0x0500008a, 0x592c0208, + 0x050200ca, 0x916c0580, 0x050000c8, 0x592c0208, 0x8200cd00, 0x000000ff, 0x592c0408, 0x8200c500, - 0x000000ff, 0x05000087, 0x42000000, 0x0010b110, - 0x50000000, 0x80600480, 0x05021082, 0x912c7c09, - 0x60064000, 0x60060800, 0x4200b800, 0xffffffff, - 0x83200580, 0x000000e1, 0x05020003, 0x4200b800, - 0x3fffffff, 0x503c0000, 0x805cbd00, 0x05020003, - 0x91224420, 0x0501f00f, 0x805cb902, 0x05021009, - 0x83200400, 0x0010a0ec, 0x50024800, 0x90640580, - 0x05000010, 0x8c640506, 0x05020031, 0x0501f069, - 0x81060800, 0x81224000, 0x910404a1, 0x05fc17f3, - 0x803c7800, 0x83200480, 0x00000100, 0x05fc17e2, - 0x61fa4001, 0x8060c1c0, 0x0502005e, 0x0501f045, - 0x59240a00, 0x90040d03, 0x90040d83, 0x05000059, - 0x59240c00, 0x8c04050a, 0x05020004, 0x8d0c0520, - 0x05000054, 0x0501f003, 0x8c040508, 0x05000051, - 0x4d3c0000, 0x4d300000, 0x600a78a0, 0x417a6000, - 0x05e5fe1f, 0x5c026000, 0x5c027800, 0x59240206, - 0x82000500, 0xfffffcff, 0x48024a06, 0x64164a00, - 0x05fdf8d1, 0x05020003, 0x05e5fda6, 0x0500003f, - 0x81060800, 0x81224000, 0x8060c040, 0x05fe07cb, - 0x05fdf8c9, 0x05020023, 0x0501f02e, 0x59240a00, - 0x8c040500, 0x05000037, 0x82040d00, 0xfffffffc, - 0x84040d44, 0x48064a00, 0x8c640502, 0x05020013, - 0x59240c08, 0x05e1fcd3, 0x4c5c0000, 0x4d3c0000, - 0x600a78a0, 0x4d300000, 0x417a6000, 0x05e5fdfc, + 0x000000ff, 0x050000c5, 0x42000000, 0x0010b390, + 0x50000000, 0x4c000000, 0x0529f94b, 0x5c000000, + 0x05000002, 0x80000000, 0x80600480, 0x050210bb, + 0x912c7c09, 0x592c0407, 0x4803c857, 0x8c000500, + 0x05000005, 0x0529f940, 0x050000b4, 0x417a4000, + 0x0501f002, 0x60064000, 0x60060800, 0x4200b800, + 0xffffffff, 0x83200580, 0x000000e1, 0x05020003, + 0x4200b800, 0x3fffffff, 0x503c0000, 0x805cbd00, + 0x05020003, 0x91224420, 0x0501f00f, 0x805cb902, + 0x05021009, 0x83200400, 0x0010a3b3, 0x50024800, + 0x90640580, 0x05000010, 0x8c640506, 0x05020044, + 0x0501f09a, 0x81060800, 0x81224000, 0x910404a1, + 0x05fc17f3, 0x803c7800, 0x83200480, 0x00000100, + 0x05fc17e2, 0x61fa4001, 0x8060c1c0, 0x0502008f, + 0x0501f071, 0x59240a00, 0x0529f921, 0x05000004, + 0x8c040500, 0x05020089, 0x0501f004, 0x90040d03, + 0x90040d83, 0x05000085, 0x59240c00, 0x8c04050a, + 0x05020004, 0x8d0c0520, 0x05000080, 0x0501f003, + 0x8c040508, 0x0500007d, 0x4d3c0000, 0x4d300000, + 0x600a78a0, 0x417a6000, 0x05e5fd4e, 0x5c026000, + 0x5c027800, 0x59240206, 0x82000500, 0xfffffcff, + 0x48024a06, 0x64164a00, 0x05fdf8ac, 0x05020011, + 0x59a8021b, 0x82000500, 0x00000082, 0x82000d80, + 0x00000082, 0x05000009, 0x8c00050e, 0x05020009, + 0x59240200, 0x8400055e, 0x48024a00, 0x05e5fddc, + 0x05000059, 0x0501f003, 0x05e5fcce, 0x0500005d, + 0x81060800, 0x81224000, 0x8060c040, 0x05fe07b8, + 0x05fdf896, 0x0502003c, 0x0501f047, 0x59240a00, + 0x8c040500, 0x05000055, 0x4c040000, 0x82040d00, + 0xffffdffc, 0x84040d44, 0x48064a00, 0x0529f8da, + 0x05000011, 0x59240200, 0x8c00051e, 0x0500000e, + 0x8400051e, 0x48024a00, 0x05e5fde5, 0x05000007, + 0x4813c857, 0x4817c857, 0x58100200, 0x8400055e, + 0x48002200, 0x0501f004, 0x59a8021b, 0x8400050e, + 0x4803521b, 0x5c000800, 0x8c640502, 0x05020013, + 0x59240c08, 0x05e1fb88, 0x4c5c0000, 0x4d3c0000, + 0x600a78a0, 0x4d300000, 0x417a6000, 0x05e5fd09, 0x5c026000, 0x5c027800, 0x5c00b800, 0x81060800, - 0x81224000, 0x8060c040, 0x05fe07b0, 0x90640589, - 0x05000008, 0x0501f013, 0x0501f822, 0x81060800, - 0x81224000, 0x8060c040, 0x05fe07a8, 0x0501f00d, - 0x916c0584, 0x0500000b, 0x05fdf8a3, 0x05020007, - 0x4a035013, 0x0000aaaa, 0x64075014, 0x6006d800, - 0x05fdf81b, 0x0501f003, 0x6006d800, 0x05f5fba2, - 0x497a5a07, 0x64025c07, 0x0001fb5b, 0x5c020800, - 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x1c01f000, - 0x60143000, 0x0501f004, 0x60083000, 0x0501f002, - 0x60043000, 0x49225a07, 0x481a5c07, 0x05fdf7f3, - 0x4923c857, 0x4d440000, 0x4d300000, 0x4d340000, - 0x4c580000, 0x4d400000, 0x4d3c0000, 0x4c5c0000, - 0x60a68000, 0x600a7820, 0x61c0b00f, 0x417a8800, - 0x83440400, 0x0010a380, 0x50000000, 0x80026d40, - 0x0500001e, 0x59340013, 0x80000130, 0x81200580, - 0x0502001a, 0x4937c857, 0x4947c857, 0x05f9faf1, - 0x05020046, 0x0505fdc0, 0x4df00000, 0x050dfb8e, - 0x05d8082f, 0x64066407, 0x4936600a, 0x4926601d, - 0x0201f800, 0x0010f051, 0x0201f800, 0x0010f148, - 0x0201f800, 0x0010f1e1, 0x0201f800, 0x0010f603, - 0x5c03e000, 0x05040d9c, 0x602c0800, 0x05f5ff1c, - 0x60067000, 0x0005fc78, 0x81468800, 0x83440580, - 0x0000ffff, 0x05000007, 0x8058b040, 0x05fe07d9, - 0x61fe89ff, 0x42026800, 0x0010cc0f, 0x0501f027, - 0x9064058b, 0x0502001d, 0x61c2880f, 0x6040b000, - 0x5924b809, 0x505c0000, 0x80026d40, 0x05000013, - 0x05f9fac8, 0x0502001d, 0x59340002, 0x82000500, - 0x00ffffff, 0x4803c857, 0x82000580, 0x00fffffd, - 0x0500000a, 0x050dfb60, 0x05d80801, 0x64066407, - 0x4936600a, 0x4926601d, 0x602c0800, 0x05f5fef8, - 0x60067000, 0x0005fc78, 0x805cb800, 0x81468800, - 0x8058b040, 0x05fe07e8, 0x5c00b800, 0x5c027800, - 0x5c028000, 0x5c00b000, 0x5c026800, 0x5c026000, - 0x5c028800, 0x1c01f000, 0x4947c857, 0x0505fd7a, - 0x4df00000, 0x417a6000, 0x0505fc2f, 0x0201f800, - 0x0010f051, 0x0201f800, 0x0010f148, 0x0201f800, - 0x0010f1e1, 0x0201f800, 0x0010f603, 0x4a026c00, - 0x00000707, 0x5c03e000, 0x05040d57, 0x83440580, - 0x0000ffff, 0x05fc07c7, 0x83441480, 0x000007f0, - 0x05fc17ba, 0x05fdf7dd, 0x4c640000, 0x59a8008d, - 0x90000506, 0x05020066, 0x916c0580, 0x05000064, - 0x497a5c07, 0x592c2208, 0x80100110, 0x8200cd00, - 0x000000ff, 0x05000058, 0x90640483, 0x05021056, - 0x4d2c0000, 0x4d040000, 0x417a0800, 0x592c1408, - 0x820a4500, 0x000000ff, 0x05000053, 0x0525fe83, - 0x40580000, 0x81200480, 0x0502104f, 0x83200400, - 0x0010a0ec, 0x50024800, 0x59240200, 0x8c000500, - 0x05020043, 0x592c0209, 0x8c00050a, 0x05020004, - 0x8d0c0520, 0x05000042, 0x0501f003, 0x8c000508, - 0x0500003f, 0x48024c00, 0x8c000502, 0x05000003, + 0x81224000, 0x8060c040, 0x05fe0789, 0x90640589, + 0x0500000d, 0x0501f018, 0x916c0584, 0x05fc07ed, + 0x90040d03, 0x90040d83, 0x05fe07ea, 0x0501f827, + 0x81060800, 0x81224000, 0x8060c040, 0x05fe077c, + 0x0501f00d, 0x916c0584, 0x0500000b, 0x05fdf857, + 0x05020007, 0x4a035013, 0x0000aaaa, 0x64075014, + 0x6006d800, 0x05f9ffcf, 0x0501f003, 0x6006d800, + 0x05f5fb24, 0x497a5a07, 0x64025c07, 0x0001fb5b, + 0x5c020800, 0x5c00c800, 0x5c00c000, 0x5c00b800, + 0x1c01f000, 0x59240200, 0x82000500, 0xfffffffc, + 0x48024a00, 0x0501f006, 0x60143000, 0x0501f004, + 0x60083000, 0x0501f002, 0x60043000, 0x49225a07, + 0x481a5c07, 0x05fdf7ee, 0x4923c857, 0x4d440000, + 0x4d300000, 0x4d340000, 0x4c580000, 0x4d400000, + 0x4d3c0000, 0x4c5c0000, 0x60a68000, 0x600a7820, + 0x61c0b00f, 0x417a8800, 0x83440400, 0x0010a600, + 0x50000000, 0x80026d40, 0x0500001e, 0x59340013, + 0x80000130, 0x81200580, 0x0502001a, 0x4937c857, + 0x4947c857, 0x05f9fa77, 0x05020046, 0x0505fe2c, + 0x4df00000, 0x050dfbf0, 0x05d40ed9, 0x64066407, + 0x4936600a, 0x4926601d, 0x0201f800, 0x0010f260, + 0x0201f800, 0x0010f344, 0x0201f800, 0x0010f3dd, + 0x0201f800, 0x0010f7f5, 0x5c03e000, 0x05040e08, + 0x602c0800, 0x05f5fe99, 0x60067000, 0x0005fc78, + 0x81468800, 0x83440580, 0x0000ffff, 0x05000007, + 0x8058b040, 0x05fe07d9, 0x61fe89ff, 0x42026800, + 0x0010ce8f, 0x0501f027, 0x9064058b, 0x0502001d, + 0x61c2880f, 0x6040b000, 0x5924b809, 0x505c0000, + 0x80026d40, 0x05000013, 0x05f9fa4e, 0x0502001d, + 0x59340002, 0x82000500, 0x00ffffff, 0x4803c857, + 0x82000580, 0x00fffffd, 0x0500000a, 0x050dfbc2, + 0x05d40eab, 0x64066407, 0x4936600a, 0x4926601d, + 0x602c0800, 0x05f5fe75, 0x60067000, 0x0005fc78, + 0x805cb800, 0x81468800, 0x8058b040, 0x05fe07e8, + 0x5c00b800, 0x5c027800, 0x5c028000, 0x5c00b000, + 0x5c026800, 0x5c026000, 0x5c028800, 0x1c01f000, + 0x4947c857, 0x0505fde6, 0x4df00000, 0x417a6000, + 0x0505fc9b, 0x0201f800, 0x0010f260, 0x0201f800, + 0x0010f344, 0x0201f800, 0x0010f3dd, 0x0201f800, + 0x0010f7f5, 0x4a026c00, 0x00000707, 0x5c03e000, + 0x05040dc3, 0x83440580, 0x0000ffff, 0x05fc07c7, + 0x83441480, 0x000007f0, 0x05fc17ba, 0x05fdf7dd, + 0x4c640000, 0x4c600000, 0x59a8008d, 0x90000506, + 0x05020087, 0x916c0580, 0x05000085, 0x497a5c07, + 0x592c2208, 0x8210c500, 0x000000ff, 0x80100110, + 0x8200cd00, 0x000000ff, 0x05000077, 0x90640483, + 0x05021075, 0x4d2c0000, 0x4d040000, 0x417a0800, + 0x592c1408, 0x820a4500, 0x000000ff, 0x4923c857, + 0x0525ffda, 0x40580000, 0x81200480, 0x0502106e, + 0x83200400, 0x0010a3b3, 0x50024800, 0x90600583, + 0x05020012, 0x59a8021b, 0x8c000514, 0x0500000c, + 0x59240200, 0x82001d00, 0x00002001, 0x820c1d80, + 0x00002001, 0x05020006, 0x8c000510, 0x05020004, + 0x41781800, 0x05e5fbc7, 0x0501f042, 0x4803c857, + 0x60183000, 0x0501f061, 0x59240200, 0x8c000500, + 0x0502004f, 0x592c0209, 0x8c00050a, 0x05020004, + 0x8d0c0520, 0x0500004e, 0x0501f003, 0x8c000508, + 0x0500004b, 0x48024c00, 0x8c000502, 0x05000003, 0x80001110, 0x480a4a08, 0x592c000a, 0x9c0001c0, 0x48024801, 0x592c000b, 0x9c0001c0, 0x48024802, 0x592c000c, 0x9c0001c0, 0x48024803, 0x592c000d, 0x9c0001c0, 0x48024804, 0x810609c0, 0x05000002, - 0x912e5c85, 0x592c0a08, 0x8c040500, 0x05000011, + 0x912e5c85, 0x592c0a08, 0x8c040500, 0x0500001d, 0x4d3c0000, 0x4d300000, 0x600a78a0, 0x417a6000, - 0x05e5fd17, 0x5c026000, 0x5c027800, 0x59240206, + 0x05e5fc04, 0x5c026000, 0x5c027800, 0x59240206, 0x82000500, 0xfffffcff, 0x48024a06, 0x64164a00, - 0x05f9ffc9, 0x05020003, 0x05e5fc9e, 0x0500001e, + 0x05f9ff62, 0x0502000f, 0x05e5fcc1, 0x0502000b, + 0x59a8021b, 0x4803c857, 0x8c00050e, 0x05020009, + 0x59240200, 0x8400055e, 0x48024a00, 0x05e5fc94, + 0x05000021, 0x0501f003, 0x05e5fb86, 0x0500001e, 0x8064c840, 0x05000006, 0x592c1408, 0x80081110, - 0x81060800, 0x912e5c05, 0x05fdf7be, 0x5c020800, - 0x5c025800, 0x05f9ffbc, 0x0500001b, 0x592c0a08, + 0x81060800, 0x912e5c05, 0x05fdf79f, 0x5c020800, + 0x5c025800, 0x05f9ff49, 0x0500001b, 0x592c0a08, 0x8c040500, 0x05000018, 0x916c0584, 0x05000016, - 0x6006d800, 0x05f5fabc, 0x0501f013, 0x60043000, + 0x6006d800, 0x05f5fa17, 0x0501f013, 0x60043000, 0x0501f00e, 0x60083000, 0x0501f00e, 0x600c3000, 0x0501f00a, 0x60103000, 0x0501f008, 0x60143000, 0x0501f008, 0x60183000, 0x59240200, 0x82000500, 0xfffffffc, 0x48024a00, 0x5c020800, 0x5c025800, - 0x481a5c07, 0x0001fb5b, 0x5c00c800, 0x1c01f000, - 0x4c580000, 0x0525fe21, 0x40580000, 0x81200480, - 0x05021009, 0x83200400, 0x0010a0ec, 0x50024800, - 0x59240200, 0x90000503, 0x90000583, 0x5c00b000, - 0x1c01f000, 0x4923c857, 0x4927c857, 0x90000541, - 0x05fdf7fb, 0x80140110, 0x80000040, 0x05fe03cd, - 0x599c0019, 0x8c000510, 0x0502000b, 0x05f9fa7b, - 0x05020002, 0x1c01f000, 0x49425a07, 0x4806580e, - 0x480a580f, 0x4943c857, 0x4807c857, 0x480bc857, - 0x0001f35b, 0x592c040c, 0x82000500, 0x0000e000, - 0x82000580, 0x00006000, 0x05fc07f1, 0x59a8021b, - 0x8c000508, 0x05fc07ee, 0x592c120c, 0x592c080b, - 0x82040500, 0xff000000, 0x80040d80, 0x80000110, - 0x80081540, 0x05000004, 0x4806580b, 0x0501f876, - 0x05fdf7e3, 0x60701000, 0x60640800, 0x60c68000, - 0x05fdf7e2, 0x80140110, 0x80000040, 0x05fe03a5, - 0x05f9fb97, 0x05020002, 0x1c01f000, 0x49425a07, - 0x48065812, 0x480a5813, 0x0001f35b, 0x80140110, - 0x05fc039c, 0x80000040, 0x0502000a, 0x6006e000, - 0x592c020b, 0x8c000504, 0x00000791, 0x592c0208, - 0x82000c80, 0x00001001, 0x05fe139e, 0x0501f004, - 0x4a033006, 0x00020791, 0x0001f65b, 0x592c1014, - 0x82080500, 0xffff0003, 0x05fe0396, 0x600ae000, - 0x42000000, 0x0010ccba, 0x50007000, 0x592c0012, - 0x592c0813, 0x48007006, 0x48047007, 0x492c700a, - 0x4978700d, 0x4978700b, 0x0501f001, 0x4978700c, - 0x82080480, 0x00000180, 0x4803c857, 0x05001006, - 0x4800700e, 0x4a007005, 0x00000180, 0x65807004, - 0x0501f005, 0x4978700e, 0x48087005, 0x80081104, - 0x48087004, 0x58380009, 0x48007003, 0x40381000, - 0x0001f01c, 0x4df00000, 0x4203e000, 0x50000000, - 0x0001f813, 0x05000003, 0x59980005, 0x0801f800, - 0x5c03e000, 0x1c01f000, 0x05d9fa5b, 0x05d40ee0, - 0x4a025809, 0x0010cc59, 0x42000800, 0x0010ccba, - 0x452c0800, 0x497a580a, 0x497a580b, 0x497a580c, - 0x497a580d, 0x497a580e, 0x4a025808, 0x00020913, - 0x497a580f, 0x4a025802, 0x00000100, 0x64065801, - 0x1c01f000, 0x42000800, 0x0010ccbb, 0x64040801, - 0x4a000802, 0x00000100, 0x64400804, 0x65000805, - 0x4a000808, 0x0002068f, 0x1c01f000, 0x0501f808, - 0x000400ea, 0x64065a09, 0x0525f216, 0x0501f804, - 0x000400e7, 0x641a5a09, 0x0525f212, 0x59a80005, - 0x8c00051a, 0x1c01f000, 0x59a80005, 0x8c00051c, - 0x1c01f000, 0x59a8000f, 0x80080580, 0x05020002, - 0x1c01f000, 0x480bc857, 0x42024800, 0x0010b111, - 0x480a4805, 0x480b500f, 0x497b8830, 0x82080d40, - 0x01000000, 0x48078832, 0x59c40002, 0x8400054c, - 0x48038802, 0x600c0800, 0x0505f462, 0x59c80007, - 0x8c000502, 0x0500006c, 0x915c2c85, 0x0500176d, - 0x59c82817, 0x4817508c, 0x497b9005, 0x82140500, - 0x00e00000, 0x05020050, 0x82140500, 0x000003ff, - 0x90001c06, 0x41cc2000, 0x600030c1, 0xb00c0480, - 0x05001004, 0x61001000, 0xb00c1c80, 0x0501f003, - 0x400c1000, 0x41781800, 0x54182000, 0x80102000, - 0x80183000, 0x80081040, 0x05fe07fc, 0x800c19c0, - 0x05000005, 0x59c80005, 0x80000000, 0x48039005, - 0x05fdf7ee, 0x82140500, 0x000003ff, 0x800018c4, - 0x8c140514, 0x05000004, 0x59cc0002, 0x90000503, - 0x800c1c80, 0x480f5077, 0x82140500, 0x01f60000, - 0x05020027, 0x82140500, 0x0000f000, 0x0500000b, - 0x82000c80, 0x00004000, 0x0502100f, 0x4a039005, - 0x00000140, 0x82140500, 0x0e000000, 0x80000132, - 0x0c01f837, 0x1c01f000, 0x59cc0400, 0x82000500, - 0x0000ff00, 0x82000580, 0x00008100, 0x05fc07f4, - 0x0501f019, 0x4817c857, 0x82140500, 0x000003ff, - 0x05020007, 0x59cc0400, 0x82000500, 0x0000ff00, - 0x82000580, 0x00008100, 0x0502000f, 0x42000000, - 0x0010b0b0, 0x0525fbfc, 0x0501fdfb, 0x4803c856, - 0x4a039005, 0x00000140, 0x0501f01b, 0x4817c857, - 0x82140500, 0x00f60000, 0x05020003, 0x0501fe30, - 0x05fe07d5, 0x05f9fe88, 0x0500000e, 0x59c400a4, - 0x4803c857, 0x9000050f, 0x9000058a, 0x05020009, - 0x497b5077, 0x59c400a3, 0x82000540, 0x00080000, - 0x480388a3, 0x82000500, 0xfff7ffff, 0x480388a3, - 0x4817c856, 0x0525fb25, 0x4a039005, 0x00000140, - 0x0501f03b, 0x4803c856, 0x1c01f000, 0x001053c8, - 0x00105687, 0x001053c3, 0x001053c3, 0x001053c3, - 0x001053c3, 0x001053c3, 0x001053c3, 0x4803c857, - 0x42000000, 0x0010b04d, 0x0525fbcf, 0x1c01f000, - 0x8d0c052a, 0x05000004, 0x4c140000, 0x05d5ff1e, - 0x5c002800, 0x59cc0400, 0x82000d00, 0x0000ff00, - 0x82041500, 0x0000f000, 0x840409c0, 0x82080580, - 0x0000c000, 0x05020003, 0x0501fbe2, 0x0501f01b, - 0x82080580, 0x00002000, 0x0502000f, 0x916c0581, - 0x0502000b, 0x59cc0006, 0x82000500, 0xff000000, - 0x82000580, 0x11000000, 0x05d60ecb, 0x0502000f, - 0x05f1fc0b, 0x0501ff02, 0x0501f00c, 0x0501f81b, - 0x0501f00a, 0x82080580, 0x00003000, 0x05020003, - 0x0501fa34, 0x0501f005, 0x82080580, 0x00008000, - 0x05020002, 0x0501faff, 0x1c01f000, 0x4817c857, - 0x42000000, 0x0010b04c, 0x0525fb9f, 0x916c0583, - 0x05020009, 0x4c080000, 0x4c0c0000, 0x61201100, - 0x40141800, 0x80142120, 0x05f1f904, 0x5c001800, - 0x5c001000, 0x1c01f000, 0x59cc0002, 0x82000500, - 0xff000000, 0x82001580, 0x01000000, 0x05000005, - 0x82001580, 0x23000000, 0x05d60ea3, 0x0502058d, - 0x59a80077, 0x90000484, 0x050011c7, 0x900405a3, - 0x05020046, 0x59cc0004, 0x4803c857, 0x59cc0006, - 0x82000500, 0xff000000, 0x59cc0801, 0x82040d00, - 0x00ffffff, 0x80040540, 0x4803c857, 0x0501fb8f, - 0x05d40e91, 0x050001b8, 0x59300c07, 0x90040590, - 0x0500000a, 0x90040591, 0x05000008, 0x90040581, - 0x05000006, 0x90040584, 0x05000004, 0x90040588, - 0x05d60e85, 0x050201ac, 0x59300004, 0x82000500, - 0x80010000, 0x05000004, 0x0505ff07, 0x05d60e7e, - 0x050201a5, 0x59cc0a04, 0x48066202, 0x59cc0006, - 0x82000500, 0xffff0000, 0x82000d80, 0x02000000, - 0x05020007, 0x60567000, 0x0501fbcf, 0x0501fbf6, - 0x05d40e71, 0x05000198, 0x0005f478, 0x82000d80, - 0x02140000, 0x05fc07f8, 0x82000d80, 0x02100000, - 0x05fc07f5, 0x82000d80, 0x02100000, 0x05fc07f2, - 0x82000d80, 0x01000000, 0x05d60e63, 0x0502018a, - 0x59cc0006, 0x82000500, 0x0000ffff, 0x05d60e5e, - 0x05020185, 0x59a80077, 0x90000488, 0x05001182, - 0x605a7000, 0x05fdf7e5, 0x900405a2, 0x05d60e56, - 0x0502017d, 0x59cc0004, 0x4803c857, 0x59cc0006, - 0x4803c857, 0x59cc0001, 0x4803c857, 0x59a80077, - 0x800001c0, 0x05d40e4c, 0x05000173, 0x59a80805, - 0x8c040514, 0x05000030, 0x0501f986, 0x0502002e, - 0x0501f99e, 0x0500002c, 0x61327000, 0x59cc3800, - 0x821c3d00, 0x00ffffff, 0x4c1c0000, 0x05e5faca, - 0x5c003800, 0x05000003, 0x05d5fe3b, 0x0501f162, - 0x59cc0001, 0x82000500, 0x00ffffff, 0x0501fdf7, - 0x05000003, 0x61fe89ff, 0x417a6800, 0x599c0019, - 0x8c000510, 0x05000144, 0x59a8021b, 0x8c000508, - 0x05000141, 0x59cc1006, 0x82081500, 0xffff0000, - 0x82081580, 0x03000000, 0x0502013b, 0x91641490, - 0x05001152, 0x8400054c, 0x4803521b, 0x59cc1000, - 0x82081500, 0x00ffffff, 0x05fdfeab, 0x59cc0007, + 0x481a5c07, 0x0001fb5b, 0x5c00c000, 0x5c00c800, + 0x1c01f000, 0x4c580000, 0x0525ff58, 0x40580000, + 0x81200480, 0x05021009, 0x83200400, 0x0010a3b3, + 0x50024800, 0x59240200, 0x90000503, 0x90000583, + 0x5c00b000, 0x1c01f000, 0x4923c857, 0x4927c857, + 0x90000541, 0x05fdf7fb, 0x80140110, 0x80000040, + 0x05fe0359, 0x599c0019, 0x8c000510, 0x0502000b, + 0x05f9f9de, 0x05020002, 0x1c01f000, 0x49425a07, + 0x4806580e, 0x480a580f, 0x4943c857, 0x4807c857, + 0x480bc857, 0x0001f35b, 0x592c040c, 0x82000500, + 0x0000e000, 0x82000580, 0x00006000, 0x05fc07f1, + 0x59a8021b, 0x8c000508, 0x05fc07ee, 0x592c120c, + 0x592c080b, 0x82040500, 0xff000000, 0x80040d80, + 0x80000110, 0x80081540, 0x05000004, 0x4806580b, + 0x0501f876, 0x05fdf7e3, 0x60701000, 0x60640800, + 0x60c68000, 0x05fdf7e2, 0x80140110, 0x80000040, + 0x05fe0331, 0x05f9fafd, 0x05020002, 0x1c01f000, + 0x49425a07, 0x48065812, 0x480a5813, 0x0001f35b, + 0x80140110, 0x05fc0328, 0x80000040, 0x0502000a, + 0x6006e000, 0x592c020b, 0x8c000504, 0x00000791, + 0x592c0208, 0x82000c80, 0x00001001, 0x05fe132a, + 0x0501f004, 0x4a033006, 0x00020791, 0x0001f65b, + 0x592c1014, 0x82080500, 0xffff0003, 0x05fe0322, + 0x600ae000, 0x42000000, 0x0010cf3a, 0x50007000, + 0x592c0012, 0x592c0813, 0x48007006, 0x48047007, + 0x492c700a, 0x4978700d, 0x4978700b, 0x0501f001, + 0x4978700c, 0x82080480, 0x00000180, 0x4803c857, + 0x05001006, 0x4800700e, 0x4a007005, 0x00000180, + 0x65807004, 0x0501f005, 0x4978700e, 0x48087005, + 0x80081104, 0x48087004, 0x58380009, 0x48007003, + 0x40381000, 0x0001f01c, 0x4df00000, 0x4203e000, + 0x50000000, 0x0001f813, 0x05000003, 0x59980005, + 0x0801f800, 0x5c03e000, 0x1c01f000, 0x05d9f8e2, + 0x05d40d67, 0x4a025809, 0x0010ced9, 0x42000800, + 0x0010cf3a, 0x452c0800, 0x497a580a, 0x497a580b, + 0x497a580c, 0x497a580d, 0x497a580e, 0x4a025808, + 0x00020913, 0x497a580f, 0x4a025802, 0x00000100, + 0x64065801, 0x1c01f000, 0x42000800, 0x0010cf3b, + 0x64040801, 0x4a000802, 0x00000100, 0x64400804, + 0x65000805, 0x4a000808, 0x0002068f, 0x1c01f000, + 0x0501f808, 0x000400ea, 0x64065a09, 0x0525f34d, + 0x0501f804, 0x000400e7, 0x641a5a09, 0x0525f349, + 0x59a80005, 0x8c00051a, 0x1c01f000, 0x59a80005, + 0x8c00051c, 0x1c01f000, 0x59a8000f, 0x80080580, + 0x05020002, 0x1c01f000, 0x480bc857, 0x42024800, + 0x0010b391, 0x480a4805, 0x480b500f, 0x497b8830, + 0x82080d40, 0x01000000, 0x48078832, 0x59c40002, + 0x8400054c, 0x48038802, 0x600c0800, 0x0505f4ab, + 0x59c80007, 0x8c000502, 0x05000044, 0x915c2c85, + 0x05001783, 0x59c82817, 0x4817508c, 0x497b9005, + 0x82140500, 0x00e00000, 0x05020038, 0x82140500, + 0x000003ff, 0x90001c06, 0x41cc2000, 0x600030c1, + 0xb00c0480, 0x05001004, 0x61001000, 0xb00c1c80, + 0x0501f003, 0x400c1000, 0x41781800, 0x54182000, + 0x80102000, 0x80183000, 0x80081040, 0x05fe07fc, + 0x800c19c0, 0x05000005, 0x59c80005, 0x80000000, + 0x48039005, 0x05fdf7ee, 0x82140500, 0x000003ff, + 0x800018c4, 0x8c140514, 0x05000004, 0x59cc0002, + 0x90000503, 0x800c1c80, 0x480f5077, 0x82140500, + 0x01f60000, 0x0502000f, 0x0501ff64, 0x05020008, + 0x4a039005, 0x00000140, 0x82140500, 0x0e000000, + 0x80000132, 0x0c01f813, 0x1c01f000, 0x800001c0, + 0x0502000a, 0x4a039005, 0x00000140, 0x0501f00b, + 0x4817c857, 0x82140500, 0x00f60000, 0x05020003, + 0x0501fe5e, 0x05fe07ed, 0x0501ff72, 0x4a039005, + 0x00000140, 0x0501f03b, 0x4803c856, 0x1c01f000, + 0x00105519, 0x00105810, 0x00105514, 0x00105514, + 0x00105514, 0x00105514, 0x00105514, 0x00105514, + 0x4803c857, 0x42000000, 0x0010b2cd, 0x0525fd2e, + 0x1c01f000, 0x8d0c052a, 0x05000004, 0x4c140000, + 0x05d5fdcd, 0x5c002800, 0x59cc0400, 0x82000d00, + 0x0000ff00, 0x82041500, 0x0000f000, 0x840409c0, + 0x82080580, 0x0000c000, 0x05020003, 0x0501fc1a, + 0x0501f01b, 0x82080580, 0x00002000, 0x0502000f, + 0x916c0581, 0x0502000b, 0x59cc0006, 0x82000500, + 0xff000000, 0x82000580, 0x11000000, 0x05d60d7a, + 0x0502000f, 0x05f1fb8d, 0x0501ff73, 0x0501f00c, + 0x0501f81b, 0x0501f00a, 0x82080580, 0x00003000, + 0x05020003, 0x0501fa52, 0x0501f005, 0x82080580, + 0x00008000, 0x05020002, 0x0501fb37, 0x1c01f000, + 0x4817c857, 0x42000000, 0x0010b2cc, 0x0525fcfe, + 0x916c0583, 0x05020009, 0x4c080000, 0x4c0c0000, + 0x61201100, 0x40141800, 0x80142120, 0x05f1f87e, + 0x5c001800, 0x5c001000, 0x1c01f000, 0x59cc0002, + 0x82000500, 0xff000000, 0x82001580, 0x01000000, + 0x05000005, 0x82001580, 0x23000000, 0x05d60d52, + 0x050205cb, 0x59a80077, 0x90000484, 0x050011de, + 0x900405a3, 0x05020046, 0x59cc0004, 0x4803c857, + 0x59cc0006, 0x82000500, 0xff000000, 0x59cc0801, + 0x82040d00, 0x00ffffff, 0x80040540, 0x4803c857, + 0x0501fbc7, 0x05d40d40, 0x050001cf, 0x59300c07, + 0x90040590, 0x0500000a, 0x90040591, 0x05000008, + 0x90040581, 0x05000006, 0x90040584, 0x05000004, + 0x90040588, 0x05d60d34, 0x050201c3, 0x59300004, + 0x82000500, 0x80010000, 0x05000004, 0x0505ff78, + 0x05d60d2d, 0x050201bc, 0x59cc0a04, 0x48066202, + 0x59cc0006, 0x82000500, 0xffff0000, 0x82000d80, + 0x02000000, 0x05020007, 0x60567000, 0x0501fc07, + 0x0501fc30, 0x05d40d20, 0x050001af, 0x0005f478, + 0x82000d80, 0x02140000, 0x05fc07f8, 0x82000d80, + 0x02100000, 0x05fc07f5, 0x82000d80, 0x02100000, + 0x05fc07f2, 0x82000d80, 0x01000000, 0x05d60d12, + 0x050201a1, 0x59cc0006, 0x82000500, 0x0000ffff, + 0x05d60d0d, 0x0502019c, 0x59a80077, 0x90000488, + 0x05001199, 0x605a7000, 0x05fdf7e5, 0x900405a2, + 0x05d60d05, 0x05020194, 0x59cc0004, 0x4803c857, + 0x59cc0006, 0x4803c857, 0x59cc0001, 0x4803c857, + 0x59a80077, 0x800001c0, 0x05d40cfb, 0x0500018a, + 0x59a80805, 0x8c040514, 0x05000033, 0x0501f9a4, + 0x05020031, 0x0501f9bc, 0x0500002f, 0x61327000, + 0x59cc3800, 0x821c3d00, 0x00ffffff, 0x4c1c0000, + 0x05e5f9d2, 0x5c003800, 0x05000003, 0x05d5fcea, + 0x0501f179, 0x59cc0001, 0x82000500, 0x00ffffff, + 0x0501fe35, 0x05000006, 0x61fe89ff, 0x42026800, + 0x0010ce8f, 0x05f9faad, 0x481a6802, 0x599c0019, + 0x8c000510, 0x05000157, 0x59a8021b, 0x8c000508, + 0x05000154, 0x59cc1006, 0x82081500, 0xffff0000, + 0x82081580, 0x03000000, 0x0502014e, 0x91641490, + 0x05001166, 0x8400054c, 0x4803521b, 0x59cc1000, + 0x82081500, 0x00ffffff, 0x05fdfed0, 0x59cc0007, 0x82000500, 0x0000ffff, 0x48038893, 0x48035012, - 0x0501f12d, 0x59cc0006, 0x82000500, 0xffff0000, + 0x0501f140, 0x59cc0006, 0x82000500, 0xffff0000, 0x82000d80, 0x03000000, 0x05020032, 0x59a8021b, 0x8c000508, 0x05000020, 0x8400054c, 0x4803521b, 0x59cc0800, 0x82040d00, 0x00ffffff, 0x42024800, - 0x0010b111, 0x4807c857, 0x48064805, 0x4807500f, + 0x0010b391, 0x4807c857, 0x48064805, 0x4807500f, 0x497b8830, 0x84040d70, 0x48078832, 0x59c40802, 0x84040d4c, 0x48078802, 0x59cc0007, 0x82000500, 0x0000ffff, 0x48038893, 0x48035012, 0x600c0800, - 0x59a8100f, 0x0505faf7, 0x59cc0006, 0x82000500, - 0x0000ffff, 0x05d60df4, 0x0502011b, 0x605e7000, + 0x59a8100f, 0x0505fb65, 0x59cc0006, 0x82000500, + 0x0000ffff, 0x05d60ca0, 0x0502012f, 0x605e7000, 0x0501f0e3, 0x4c000000, 0x82140500, 0x0000f000, 0x82000580, 0x00003000, 0x5c000000, 0x05fe07f3, - 0x05f9fd69, 0x05fe07f1, 0x8c000502, 0x05fe07ef, - 0x60583002, 0x0501fcd2, 0x4803c857, 0x0501f10a, + 0x05f9fd1a, 0x05fe07f1, 0x8c000502, 0x05fe07ef, + 0x60583002, 0x0501fd0d, 0x4803c857, 0x0501f11e, 0x82000d80, 0x04000000, 0x05020013, 0x59cc0006, - 0x82000500, 0x0000ffff, 0x05d60ddb, 0x05020102, - 0x05f9fd59, 0x05000003, 0x60767000, 0x0501f0c8, - 0x497b5082, 0x42001000, 0x0010f674, 0x0501fe4b, + 0x82000500, 0x0000ffff, 0x05d60c87, 0x05020116, + 0x05f9fd0a, 0x05000002, 0x0501f0c8, 0x497b5082, + 0x42001000, 0x0010f866, 0x0501feba, 0x05f9fa55, 0x59a8021b, 0x84000548, 0x4803521b, 0x60c27000, 0x0501f0bf, 0x82000d80, 0x05000000, 0x05020008, - 0x59cc0006, 0x82000500, 0x0000ffff, 0x05d60dc6, - 0x050200ed, 0x60627000, 0x0501f0b5, 0x82000d80, + 0x59cc0006, 0x82000500, 0x0000ffff, 0x05d60c72, + 0x05020101, 0x60627000, 0x0501f0b5, 0x82000d80, 0x20100000, 0x05020003, 0x60667000, 0x0501f0b0, 0x82000d80, 0x21100000, 0x05020003, 0x606a7000, 0x0501f0ab, 0x82000d80, 0x52000000, 0x05020008, - 0x59cc0006, 0x82000500, 0x0000ffff, 0x05d60db2, - 0x050200d9, 0x606e7000, 0x0501f0a1, 0x82000d80, + 0x59cc0006, 0x82000500, 0x0000ffff, 0x05d60c5e, + 0x050200ed, 0x606e7000, 0x0501f0a1, 0x82000d80, 0x50000000, 0x05020008, 0x59cc0006, 0x82000500, - 0x0000ffff, 0x05d60da8, 0x050200cf, 0x60727000, + 0x0000ffff, 0x05d60c54, 0x050200e3, 0x60727000, 0x0501f097, 0x82000d80, 0x13000000, 0x05020003, 0x60d27000, 0x0501f092, 0x82000d80, 0x12000000, 0x05020008, 0x59cc0006, 0x82000500, 0x0000ffff, - 0x05d60d99, 0x050200c0, 0x60927000, 0x0501f088, + 0x05d60c45, 0x050200d4, 0x60927000, 0x0501f088, 0x82000d00, 0xff000000, 0x82040d80, 0x24000000, 0x05020003, 0x60b67000, 0x0501f081, 0x82000d00, 0xff000000, 0x82040d80, 0x53000000, 0x05020003, @@ -18231,19 +18370,19 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x00000401, 0x05021037, 0x90001503, 0x05020035, 0x59a81077, 0x80081480, 0x05001032, 0x90000484, 0x8000b104, 0x8058b1c0, 0x0500002e, 0x59cc3800, - 0x821c3d00, 0x00ffffff, 0x4d200000, 0x05e5f9f2, + 0x821c3d00, 0x00ffffff, 0x4d200000, 0x05e5f8f7, 0x05000003, 0x5c024000, 0x0501f026, 0x505cc800, 0x8264c500, 0x03000000, 0x8060c130, 0x42000000, - 0x0010b017, 0x90602580, 0x05020004, 0x42000000, - 0x0010b014, 0x0501f00a, 0x90602581, 0x05020004, - 0x42000000, 0x0010b015, 0x0501f005, 0x90602582, - 0x05020003, 0x42000000, 0x0010b016, 0x0525fa36, + 0x0010b297, 0x90602580, 0x05020004, 0x42000000, + 0x0010b294, 0x0501f00a, 0x90602581, 0x05020004, + 0x42000000, 0x0010b295, 0x0501f005, 0x90602582, + 0x05020003, 0x42000000, 0x0010b296, 0x0525fb92, 0x60541100, 0x82642500, 0x0000ffff, 0x80641920, - 0x41202800, 0x05edff9e, 0x805cb800, 0x8058b040, + 0x41202800, 0x05edff15, 0x805cb800, 0x8058b040, 0x05fe07e3, 0x5c024000, 0x5c00b000, 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x608e7000, 0x0501f030, 0x5c00b000, 0x5c00c800, 0x5c00c000, 0x5c00b800, - 0x42000000, 0x0010b04a, 0x0525f21f, 0x82000d80, + 0x42000000, 0x0010b2ca, 0x0525f37b, 0x82000d80, 0x60000000, 0x05020003, 0x60fe7000, 0x0501f024, 0x82000d80, 0x78000000, 0x05020003, 0x61167000, 0x0501f01f, 0x82000d80, 0x10000000, 0x05020003, @@ -18257,1207 +18396,1230 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x821c3d00, 0x00ffffff, 0x821c0580, 0x00fffffe, 0x59cc0001, 0x05020004, 0x40003000, 0x61fa880f, 0x0501f009, 0x59cc3800, 0x821c3d00, 0x00ffffff, - 0x4c1c0000, 0x0501f8d1, 0x5c003800, 0x05d60cfe, - 0x05020025, 0x05e5f988, 0x05f40b68, 0x05d60cfa, - 0x05020021, 0x59340200, 0x8c000514, 0x0500000a, - 0x913805b0, 0x05000008, 0x913805bf, 0x05000006, - 0x913805b4, 0x05000004, 0x913805a4, 0x05000002, - 0x61327000, 0x0509ff84, 0x05000018, 0x4926601d, - 0x4936600a, 0x64126407, 0x59cc0c04, 0x48066202, - 0xb138058c, 0x05020008, 0x64466407, 0x813669c0, - 0x05020005, 0x59cc0001, 0x82000500, 0x00ffffff, - 0x4802602a, 0x0501fa38, 0x0501fa90, 0x0004045a, + 0x4c1c0000, 0x0501f906, 0x5c003800, 0x05d60baa, + 0x05020039, 0x05e5f88d, 0x83440480, 0x000007f0, + 0x05001001, 0x05f1f9b1, 0x0500000f, 0x4c180000, + 0x05f5fec4, 0x5c003000, 0x0500000e, 0x4c180000, + 0x0501f84b, 0x5c003000, 0x05020007, 0x05f9f967, + 0x42026800, 0x0010ce8f, 0x481a6802, 0x61fe89ff, + 0x0501f004, 0x05f5fad7, 0x05d60b93, 0x05020022, + 0x59340200, 0x8c000514, 0x0500000a, 0x913805b0, + 0x05000008, 0x913805bf, 0x05000006, 0x913805b4, + 0x05000004, 0x913805a4, 0x05000002, 0x61327000, + 0x0509ffd5, 0x05000019, 0x4926601d, 0x4936600a, + 0x64126407, 0x83340580, 0x0010ce8f, 0x05020005, + 0x59cc0001, 0x82000500, 0x00ffffff, 0x4802602a, + 0x59cc0c04, 0x48066202, 0xb138058c, 0x05020002, + 0x64466407, 0x0501fa59, 0x0501fab3, 0x0004045a, 0x0005f478, 0x598800b7, 0x4803c857, 0x80000000, 0x480310b7, 0x1c01f000, 0x61241100, 0x59cc1806, - 0x800c1930, 0x05edff25, 0x0509ff6f, 0x05d40cce, - 0x05fc07f5, 0x4926601d, 0x4936600a, 0x64126407, - 0x59cc0c04, 0x48066202, 0x64266403, 0x6426641c, - 0x4a02621c, 0x00002900, 0x64066203, 0x0505f037, - 0x59a8021b, 0x4803c857, 0x8c000508, 0x05000013, - 0x599c0019, 0x8c000510, 0x05020010, 0x59cc0006, - 0x82000500, 0xff000000, 0x82000d80, 0x03000000, - 0x0500000c, 0x82000d80, 0x20000000, 0x05000009, - 0x82000d80, 0x05000000, 0x05000006, 0x82000d80, - 0x21000000, 0x05000003, 0x80000580, 0x1c01f000, - 0x90000541, 0x05fdf7fe, 0x59cc2006, 0x82102500, - 0xff000000, 0x9c1021c0, 0x0501f807, 0x820c1c00, - 0x0010ac58, 0x500c1800, 0x800c0500, 0x4803c857, - 0x1c01f000, 0x40100800, 0x41781800, 0x900404a0, - 0x05001004, 0x800c1800, 0x40000800, 0x05fdf7fc, - 0x9004050f, 0x82000400, 0x0010a0cc, 0x50000000, - 0x8c040508, 0x05000002, 0x900001c0, 0x1c01f000, - 0x4803c856, 0x0501fc77, 0x05020009, 0x05e1ff35, - 0x05020007, 0x59cc0002, 0x82000500, 0xff000000, - 0x82000d80, 0x08000000, 0x05000802, 0x1c01f000, - 0x4803c856, 0x59cc0400, 0x82000d00, 0x0000ff00, - 0x840409c0, 0x900405b3, 0x05020025, 0x0501f977, - 0x05000046, 0x59cc0a04, 0x48066202, 0x59a80077, - 0x90000484, 0x05001041, 0x59cc0006, 0x4803c857, - 0x82000500, 0xffff0000, 0x82000d80, 0x02000000, - 0x05020009, 0x59cc0006, 0x82000500, 0x0000ffff, - 0x05020036, 0x0501f9ec, 0x0004045a, 0x60567000, - 0x0005f478, 0x82000d80, 0x01000000, 0x0502002f, - 0x59cc0006, 0x82000500, 0x0000ffff, 0x0502002b, - 0x59a80077, 0x90000488, 0x05001028, 0x0501f9de, - 0x0004045a, 0x605a7000, 0x0005f478, 0x900405b2, - 0x05020022, 0x59cc0006, 0x82000500, 0xffff0000, - 0x82000d80, 0x14000000, 0x0502001c, 0x59a80077, - 0x90000490, 0x05001019, 0x60e27000, 0x59cc0001, - 0x59cc3800, 0x821c3d00, 0x00ffffff, 0x4c1c0000, - 0x0501f815, 0x5c003800, 0x05020010, 0x05e5f8ce, - 0x0502000e, 0x05f5faa8, 0x0502000c, 0x0509fed6, - 0x0500000a, 0x4926601d, 0x4936600a, 0x0519f86e, - 0x64126407, 0x59cc0c04, 0x48066202, 0x0501f9eb, - 0x0004045a, 0x0005f478, 0x42000000, 0x0010b04a, - 0x0525f119, 0x4803c857, 0x4000d000, 0x401cd800, - 0x82003500, 0x00ffffff, 0x0201f800, 0x0010fd25, - 0x40c40000, 0x90000581, 0x1c01f000, 0x59a8021b, - 0x8c00050e, 0x05000003, 0x8c000502, 0x05000005, - 0x59cc0c00, 0x80040910, 0x9004050f, 0x0c01f002, - 0x1c01f000, 0x001056a1, 0x001056a1, 0x001056a1, - 0x00105971, 0x001056a1, 0x001056a3, 0x001056ca, - 0x001056cd, 0x001056a1, 0x001056a1, 0x001056a1, - 0x001056a1, 0x001056a1, 0x001056a1, 0x001056a1, - 0x001056a1, 0x4803c856, 0x1c01f000, 0x0501f907, - 0x05000021, 0x59a80077, 0x9000048c, 0x0500101e, - 0x59300407, 0x90000583, 0x0502001b, 0x59cc0001, - 0x5932680a, 0x813669c0, 0x05000017, 0x59340802, - 0x80040580, 0x82000500, 0x00ffffff, 0x05020012, - 0x0501fc0d, 0x05020010, 0x59cc0a04, 0x59300202, - 0x82001580, 0x0000ffff, 0x05000003, 0x80040580, - 0x05020009, 0x48066202, 0x59300416, 0x8c00051a, - 0x05020005, 0x611a7000, 0x0501f937, 0x05000002, - 0x0005f478, 0x59cc0004, 0x4803c857, 0x42000000, - 0x0010b04b, 0x0525f0cc, 0x59cc0004, 0x4803c857, - 0x1c01f000, 0x0501f8dd, 0x0500001d, 0x59a80077, - 0x9000048c, 0x0500101a, 0x59300407, 0x90000583, - 0x05020017, 0x59cc0001, 0x82000500, 0x00ffffff, - 0x5932680a, 0x813669c0, 0x05000011, 0x59340802, - 0x82040d00, 0x00ffffff, 0x80040580, 0x0502000c, - 0x0501fbe1, 0x0502000a, 0x59cc0a04, 0x48066202, - 0x59300416, 0x8c00051a, 0x05020005, 0x61167000, - 0x0501f911, 0x05000002, 0x0005f478, 0x59cc0004, - 0x4803c857, 0x42000000, 0x0010b04b, 0x0525f0a6, - 0x59cc0004, 0x4803c857, 0x59cc0000, 0x82000500, - 0xff000000, 0x59cc1001, 0x82081500, 0x00ffffff, - 0x80080540, 0x4803c857, 0x4817c857, 0x0501fb9d, - 0x05d60bb1, 0x0502000e, 0x05e1fe5a, 0x05d60bae, - 0x0502000b, 0x59cc0002, 0x82000500, 0xff000000, - 0x90000580, 0x05020293, 0x9004050f, 0x90000c86, - 0x05d61ba5, 0x05021002, 0x0c01f003, 0x4803c856, - 0x1c01f000, 0x00105713, 0x00105715, 0x00105713, - 0x00105713, 0x0010577d, 0x0010578f, 0x4803c856, - 0x1c01f000, 0x59a80077, 0x800001c0, 0x05d60b96, - 0x05fe07fb, 0x59cc0802, 0x4807c856, 0x8c04052e, - 0x05020021, 0x42026000, 0x00110284, 0x497a6416, - 0x59cc0001, 0x59cc3800, 0x05fdff5b, 0x05020012, - 0x0001fae7, 0x05020010, 0x59cc3800, 0x821c3d00, - 0x00ffffff, 0x05e5f810, 0x05fe07e9, 0x4926601d, - 0x0515ffb5, 0x64166407, 0x64226203, 0x4936600a, - 0x60227001, 0x0501f8c8, 0x05d40b7b, 0x05fc07e0, - 0x0005f478, 0x4803c857, 0x61fe89ff, 0x417a6800, + 0x800c1930, 0x05edfe88, 0x0509ffbf, 0x05d40b66, + 0x05fc07f5, 0x4926601d, 0x4936600a, 0x83340580, + 0x0010ce8f, 0x05020005, 0x59cc0001, 0x82000500, + 0x00ffffff, 0x4802602a, 0x64126407, 0x59cc0c04, + 0x48066202, 0x64266403, 0x6426641c, 0x4a02621c, + 0x00002900, 0x64066203, 0x0505f08a, 0x59a8021b, + 0x4803c857, 0x8c000508, 0x05000013, 0x599c0019, + 0x8c000510, 0x05020010, 0x59cc0006, 0x82000500, + 0xff000000, 0x82000d80, 0x03000000, 0x0500000c, + 0x82000d80, 0x20000000, 0x05000009, 0x82000d80, + 0x05000000, 0x05000006, 0x82000d80, 0x21000000, + 0x05000003, 0x80000580, 0x1c01f000, 0x90000541, + 0x05fdf7fe, 0x59cc2006, 0x82102500, 0xff000000, + 0x9c1021c0, 0x0501f807, 0x820c1c00, 0x0010aed8, + 0x500c1800, 0x800c0500, 0x4803c857, 0x1c01f000, + 0x40100800, 0x41781800, 0x900404a0, 0x05001004, + 0x800c1800, 0x40000800, 0x05fdf7fc, 0x9004050f, + 0x82000400, 0x0010a393, 0x50000000, 0x8c040508, + 0x05000002, 0x900001c0, 0x1c01f000, 0x4803c856, + 0x0501fc97, 0x05020009, 0x05e1fdcb, 0x05020007, + 0x59cc0002, 0x82000500, 0xff000000, 0x82000d80, + 0x08000000, 0x05000802, 0x1c01f000, 0x4803c856, + 0x59cc0400, 0x82000d00, 0x0000ff00, 0x840409c0, + 0x900405b3, 0x05020025, 0x0501f991, 0x05000060, + 0x59cc0a04, 0x48066202, 0x59a80077, 0x90000484, + 0x0500105b, 0x59cc0006, 0x4803c857, 0x82000500, + 0xffff0000, 0x82000d80, 0x02000000, 0x05020009, + 0x59cc0006, 0x82000500, 0x0000ffff, 0x05020050, + 0x0501fa08, 0x0004045a, 0x60567000, 0x0005f478, + 0x82000d80, 0x01000000, 0x05020049, 0x59cc0006, + 0x82000500, 0x0000ffff, 0x05020045, 0x59a80077, + 0x90000488, 0x05001042, 0x0501f9fa, 0x0004045a, + 0x605a7000, 0x0005f478, 0x900405b2, 0x0502003c, + 0x59cc0006, 0x82000500, 0xffff0000, 0x82000d80, + 0x14000000, 0x05020036, 0x59a80077, 0x90000490, + 0x05001033, 0x60e27000, 0x59cc0001, 0x59cc3800, + 0x821c3d00, 0x00ffffff, 0x4c1c0000, 0x0501f82f, + 0x5c003800, 0x0502002a, 0x05e1ffb8, 0x05020028, + 0x83440480, 0x000007f0, 0x05001001, 0x05f1f8db, + 0x0500000f, 0x4c180000, 0x05f5fdee, 0x5c003000, + 0x0500000d, 0x4c180000, 0x05fdff75, 0x5c003000, + 0x05020007, 0x05f9f891, 0x42026800, 0x0010ce8f, + 0x481a6802, 0x61fe89ff, 0x0501f003, 0x05f5f9fc, + 0x05020013, 0x0509ff0c, 0x05000011, 0x4926601d, + 0x4936600a, 0x83340580, 0x0010ce8f, 0x05020005, 0x59cc0001, 0x82000500, 0x00ffffff, 0x4802602a, - 0x05fdf7ea, 0x59cc0001, 0x4803c857, 0x59cc3800, - 0x821c3d00, 0x00ffffff, 0x4c1c0000, 0x05fdff3a, - 0x5c003800, 0x05d60b68, 0x05fe07cd, 0x05e1fff2, - 0x05d60b65, 0x05fe07ca, 0x05f5f9cb, 0x05d60b62, - 0x05fe07c7, 0x59cc0005, 0x8c000500, 0x05020010, - 0x59340200, 0x8c00050e, 0x05d60b5b, 0x05fe07c0, - 0x59a8288c, 0x82140d00, 0x0000f000, 0x82040580, - 0x00003000, 0x05d40b54, 0x05fc07b9, 0x82040580, - 0x00002000, 0x05d40b50, 0x05fc07b5, 0x05f5fd4d, - 0x05020011, 0x0501f849, 0x05d40b4b, 0x05fc07b0, - 0x42026000, 0x00110284, 0x4926601d, 0x4936600a, - 0x497a6416, 0x0515ff78, 0x640a6407, 0x64226203, - 0x60227001, 0x0501f88c, 0x05d40b3f, 0x05fc07a4, - 0x0005f478, 0x0509fdd4, 0x05fc07a1, 0x4926601d, - 0x4936600a, 0x0515ff6c, 0x64126407, 0x59cc0c04, - 0x48066202, 0x60067000, 0x0501f87f, 0x0004045a, - 0x0005f478, 0x59cc0802, 0x8c04052e, 0x05020004, - 0x0501f828, 0x0500000c, 0x0501f007, 0x0501f827, - 0x05000009, 0x0501fb1c, 0x05020007, 0x59cc0a04, - 0x48066202, 0x60267001, 0x0501f86f, 0x05000002, - 0x0005f478, 0x4933c857, 0x1c01f000, 0x59cc0004, - 0x4803c857, 0x59a80077, 0x90000484, 0x05001011, - 0x59cc0802, 0x8c04052e, 0x05020004, 0x0501f811, - 0x0500000c, 0x0501f007, 0x0501f810, 0x05000009, - 0x0501fb05, 0x05020007, 0x59cc0a04, 0x48066202, - 0x602a7001, 0x0501f858, 0x05000002, 0x0005f478, - 0x4933c857, 0x42000000, 0x0010b04a, 0x0521f7ee, - 0x59cc0a04, 0x0501f002, 0x59cc0c04, 0x59a8000d, - 0x59a81064, 0x80080400, 0x80040480, 0x05021007, - 0x800400ca, 0x800408c8, 0x80040c00, 0x82066400, - 0x001102e4, 0x1c01f000, 0x80000580, 0x05fdf7fe, - 0x4803c856, 0x90040507, 0x0c01f001, 0x001057c3, - 0x001057d6, 0x001057e9, 0x001057f8, 0x001057f8, - 0x001057f8, 0x001057f8, 0x001057f8, 0x59cc0802, - 0x8c04052e, 0x0500000e, 0x05fdffe4, 0x05000007, + 0x0519f8c6, 0x64126407, 0x59cc0c04, 0x48066202, + 0x0501f9ed, 0x0004045a, 0x0005f478, 0x42000000, + 0x0010b2ca, 0x0525f240, 0x4803c857, 0x4000d000, + 0x401cd800, 0x82003500, 0x00ffffff, 0x0201f800, + 0x0010ff4b, 0x40c40000, 0x90000581, 0x1c01f000, + 0x59a8021b, 0x8c00050e, 0x05000003, 0x8c000502, + 0x05000005, 0x59cc0c00, 0x80040910, 0x9004050f, + 0x0c01f002, 0x1c01f000, 0x0010582a, 0x0010582a, + 0x0010582a, 0x00105b00, 0x0010582a, 0x0010582c, + 0x00105853, 0x00105856, 0x0010582a, 0x0010582a, + 0x0010582a, 0x0010582a, 0x0010582a, 0x0010582a, + 0x0010582a, 0x0010582a, 0x4803c856, 0x1c01f000, + 0x0501f907, 0x05000021, 0x59a80077, 0x9000048c, + 0x0500101e, 0x59300407, 0x90000583, 0x0502001b, + 0x59cc0001, 0x5932680a, 0x813669c0, 0x05000017, + 0x59340802, 0x80040580, 0x82000500, 0x00ffffff, + 0x05020012, 0x0501fc13, 0x05020010, 0x59cc0a04, + 0x59300202, 0x82001580, 0x0000ffff, 0x05000003, + 0x80040580, 0x05020009, 0x48066202, 0x59300416, + 0x8c00051a, 0x05020005, 0x611a7000, 0x0501f937, + 0x05000002, 0x0005f478, 0x59cc0004, 0x4803c857, + 0x42000000, 0x0010b2cb, 0x0525f1f3, 0x59cc0004, + 0x4803c857, 0x1c01f000, 0x0501f8dd, 0x0500001d, + 0x59a80077, 0x9000048c, 0x0500101a, 0x59300407, + 0x90000583, 0x05020017, 0x59cc0001, 0x82000500, + 0x00ffffff, 0x5932680a, 0x813669c0, 0x05000011, + 0x59340802, 0x82040d00, 0x00ffffff, 0x80040580, + 0x0502000c, 0x0501fbe7, 0x0502000a, 0x59cc0a04, + 0x48066202, 0x59300416, 0x8c00051a, 0x05020005, + 0x61167000, 0x0501f911, 0x05000002, 0x0005f478, + 0x59cc0004, 0x4803c857, 0x42000000, 0x0010b2cb, + 0x0525f1cd, 0x59cc0004, 0x4803c857, 0x59cc0000, + 0x82000500, 0xff000000, 0x59cc1001, 0x82081500, + 0x00ffffff, 0x80080540, 0x4803c857, 0x4817c857, + 0x0501fba3, 0x05d60a28, 0x0502000e, 0x05e1fcd6, + 0x05d60a25, 0x0502000b, 0x59cc0002, 0x82000500, + 0xff000000, 0x90000580, 0x05020299, 0x9004050f, + 0x90000c86, 0x05d61a1c, 0x05021002, 0x0c01f003, + 0x4803c856, 0x1c01f000, 0x0010589c, 0x0010589e, + 0x0010589c, 0x0010589c, 0x00105906, 0x00105918, + 0x4803c856, 0x1c01f000, 0x59a80077, 0x800001c0, + 0x05d60a0d, 0x05fe07fb, 0x59cc0802, 0x4807c856, + 0x8c04052e, 0x05020021, 0x42026000, 0x001104b4, + 0x497a6416, 0x59cc0001, 0x59cc3800, 0x05fdff5b, + 0x05020012, 0x0001fae7, 0x05020010, 0x59cc3800, + 0x821c3d00, 0x00ffffff, 0x05e1fee0, 0x05fe07e9, + 0x4926601d, 0x0519f80d, 0x64166407, 0x64226203, + 0x4936600a, 0x60227001, 0x0501f8c8, 0x05d409f2, + 0x05fc07e0, 0x0005f478, 0x4803c857, 0x61fe89ff, + 0x417a6800, 0x59cc0001, 0x82000500, 0x00ffffff, + 0x4802602a, 0x05fdf7ea, 0x59cc0001, 0x4803c857, + 0x59cc3800, 0x821c3d00, 0x00ffffff, 0x4c1c0000, + 0x05fdff3a, 0x5c003800, 0x05d609df, 0x05fe07cd, + 0x05e1fec2, 0x05d609dc, 0x05fe07ca, 0x05f5f918, + 0x05d609d9, 0x05fe07c7, 0x59cc0005, 0x8c000500, + 0x05020010, 0x59340200, 0x8c00050e, 0x05d609d2, + 0x05fe07c0, 0x59a8288c, 0x82140d00, 0x0000f000, + 0x82040580, 0x00003000, 0x05d409cb, 0x05fc07b9, + 0x82040580, 0x00002000, 0x05d409c7, 0x05fc07b5, + 0x05f5fca0, 0x05020011, 0x0501f849, 0x05d409c2, + 0x05fc07b0, 0x42026000, 0x001104b4, 0x4926601d, + 0x4936600a, 0x497a6416, 0x0515ffd0, 0x640a6407, + 0x64226203, 0x60227001, 0x0501f88c, 0x05d409b6, + 0x05fc07a4, 0x0005f478, 0x0509fe03, 0x05fc07a1, + 0x4926601d, 0x4936600a, 0x0515ffc4, 0x64126407, + 0x59cc0c04, 0x48066202, 0x60067000, 0x0501f87f, + 0x0004045a, 0x0005f478, 0x59cc0802, 0x8c04052e, + 0x05020004, 0x0501f828, 0x0500000c, 0x0501f007, + 0x0501f827, 0x05000009, 0x0501fb22, 0x05020007, + 0x59cc0a04, 0x48066202, 0x60267001, 0x0501f86f, + 0x05000002, 0x0005f478, 0x4933c857, 0x1c01f000, + 0x59cc0004, 0x4803c857, 0x59a80077, 0x90000484, + 0x05001011, 0x59cc0802, 0x8c04052e, 0x05020004, + 0x0501f811, 0x0500000c, 0x0501f007, 0x0501f810, + 0x05000009, 0x0501fb0b, 0x05020007, 0x59cc0a04, + 0x48066202, 0x602a7001, 0x0501f858, 0x05000002, + 0x0005f478, 0x4933c857, 0x42000000, 0x0010b2ca, + 0x0525f115, 0x59cc0a04, 0x0501f002, 0x59cc0c04, + 0x59a8000d, 0x59a81064, 0x80080400, 0x80040480, + 0x05021007, 0x800400ca, 0x800408c8, 0x80040c00, + 0x82066400, 0x00110514, 0x1c01f000, 0x80000580, + 0x05fdf7fe, 0x4803c856, 0x90040507, 0x0c01f001, + 0x0010594c, 0x0010595f, 0x00105972, 0x00105981, + 0x00105981, 0x00105981, 0x00105981, 0x00105981, + 0x59cc0802, 0x8c04052e, 0x0500000e, 0x05fdffe4, + 0x05000007, 0x59cc0802, 0x90040d30, 0x90040d90, + 0x05000004, 0x61827000, 0x0005f478, 0x1c01f000, + 0x59300416, 0x8400055c, 0x48026416, 0x0515f6ac, + 0x05fdffd5, 0x05fc07fa, 0x05fdf7f3, 0x59cc0802, + 0x8c04052e, 0x0500000e, 0x05fdffd1, 0x05000007, 0x59cc0802, 0x90040d30, 0x90040d90, 0x05000004, - 0x61827000, 0x0005f478, 0x1c01f000, 0x59300416, - 0x8400055c, 0x48026416, 0x0515f654, 0x05fdffd5, - 0x05fc07fa, 0x05fdf7f3, 0x59cc0802, 0x8c04052e, - 0x0500000e, 0x05fdffd1, 0x05000007, 0x59cc0802, - 0x90040d30, 0x90040d90, 0x05000004, 0x61867000, - 0x0005f478, 0x1c01f000, 0x59300416, 0x8400055c, - 0x48026416, 0x0515f641, 0x05fdffc2, 0x05fc07fa, - 0x05fdf7f3, 0x82140500, 0x0000f000, 0x82000580, - 0x00002000, 0x0502000b, 0x59cc0802, 0x8c04052e, - 0x05000008, 0x05fdffb9, 0x05000006, 0x59300416, - 0x8c000510, 0x05000003, 0x618a7000, 0x0005f478, - 0x1c01f000, 0x59a8288c, 0x8c14051a, 0x0500000c, - 0x4803c856, 0x4d300000, 0x5930100a, 0x4c080000, - 0x0509fd45, 0x5c001000, 0x05000003, 0x59cc2a04, - 0x0501f901, 0x5c026000, 0x1c01f000, 0x90000541, - 0x1c01f000, 0x4803c856, 0x4c0c0000, 0x4d340000, - 0x5930000a, 0x40026800, 0x59a81a1b, 0x05f9fa1e, - 0x0502001e, 0x813669c0, 0x05000015, 0x59340403, - 0x82000580, 0x000007fe, 0x05020011, 0x59cc0408, - 0x8c000518, 0x05000015, 0x5930001d, 0x82000580, - 0x0010b111, 0x05020011, 0x59cc0207, 0x80000540, - 0x05020002, 0x60040000, 0x48038893, 0x48035012, - 0x84000560, 0x480388b3, 0x0501f008, 0x59300403, - 0x90000582, 0x05000003, 0x91380597, 0x05020003, - 0x8c0c0508, 0x05fe07f1, 0x5c026800, 0x5c001800, - 0x1c01f000, 0x59a8288c, 0x8c14051a, 0x05000018, - 0x4803c856, 0x4d300000, 0x4c5c0000, 0x4130b800, - 0x0509fd0d, 0x0500000f, 0x485e602a, 0x585c0407, - 0x90000581, 0x05020008, 0x4d300000, 0x405e6000, - 0x0515fddb, 0x5c026000, 0x05000003, 0x4a026416, - 0x00000080, 0x585c100a, 0x59cc2a04, 0x0501f8be, - 0x5c00b800, 0x5c026000, 0x1c01f000, 0x90000541, - 0x1c01f000, 0x59a8288c, 0x8c14051a, 0x05000011, - 0x4803c856, 0x4d300000, 0x4c5c0000, 0x4130b800, - 0x4a026416, 0x00000100, 0x0509fcef, 0x05000006, - 0x485e602a, 0x585c2c02, 0x585c100a, 0x405c2000, - 0x0501f8ad, 0x5c00b800, 0x5c026000, 0x1c01f000, - 0x90000541, 0x1c01f000, 0x59a8288c, 0x8c14051a, - 0x05000016, 0x4803c856, 0x4d300000, 0x4c5c0000, - 0x4130b800, 0x4a026416, 0x00000100, 0x0509fcda, - 0x0500000b, 0x493a6403, 0x485e602a, 0x0515fdac, - 0x05000003, 0x4a026416, 0x00000080, 0x585c2c02, - 0x585c100a, 0x405c2000, 0x0501f893, 0x5c00b800, + 0x61867000, 0x0005f478, 0x1c01f000, 0x59300416, + 0x8400055c, 0x48026416, 0x0515f699, 0x05fdffc2, + 0x05fc07fa, 0x05fdf7f3, 0x82140500, 0x0000f000, + 0x82000580, 0x00002000, 0x0502000b, 0x59cc0802, + 0x8c04052e, 0x05000008, 0x05fdffb9, 0x05000006, + 0x59300416, 0x8c000510, 0x05000003, 0x618a7000, + 0x0005f478, 0x1c01f000, 0x59a8288c, 0x8c14051a, + 0x0500000c, 0x4803c856, 0x4d300000, 0x5930100a, + 0x4c080000, 0x0509fd74, 0x5c001000, 0x05000003, + 0x59cc2a04, 0x0501f903, 0x5c026000, 0x1c01f000, + 0x90000541, 0x1c01f000, 0x4803c856, 0x4c0c0000, + 0x4d340000, 0x5932680a, 0x59a81a1b, 0x05f9f99b, + 0x05020021, 0x813669c0, 0x05000018, 0x83340580, + 0x0010ce8f, 0x05000015, 0x59340403, 0x82000580, + 0x000007fe, 0x05020011, 0x59cc0408, 0x8c000518, + 0x05000015, 0x5930001d, 0x82000580, 0x0010b391, + 0x05020011, 0x59cc0207, 0x80000540, 0x05020002, + 0x60040000, 0x48038893, 0x48035012, 0x84000560, + 0x480388b3, 0x0501f008, 0x59300403, 0x90000582, + 0x05000003, 0x91380597, 0x05020003, 0x8c0c0508, + 0x05fe07f1, 0x5c026800, 0x5c001800, 0x1c01f000, + 0x59a8288c, 0x8c14051a, 0x05000018, 0x4803c856, + 0x4d300000, 0x4c5c0000, 0x4130b800, 0x0509fd3a, + 0x0500000f, 0x485e602a, 0x585c0407, 0x90000581, + 0x05020008, 0x4d300000, 0x405e6000, 0x0515fe31, + 0x5c026000, 0x05000003, 0x4a026416, 0x00000080, + 0x585c100a, 0x59cc2a04, 0x0501f8be, 0x5c00b800, 0x5c026000, 0x1c01f000, 0x90000541, 0x1c01f000, - 0x4803c856, 0x4c600000, 0x4c640000, 0x4c5c0000, - 0x4d200000, 0x4d240000, 0x4200c000, 0x0010cc01, - 0x5930c80a, 0x8064c9c0, 0x05020015, 0x58603800, - 0x821c3d00, 0x00ffffff, 0x4c1c0000, 0x05e1feae, - 0x5c003800, 0x05020061, 0x4d340000, 0x58600001, - 0x82000500, 0x00ffffff, 0x0501f9dc, 0x05d6095c, - 0x4936600a, 0x59341200, 0x5c026800, 0x0501fa0f, - 0x4a026416, 0x00000100, 0x65126403, 0x58601006, - 0x82081500, 0x0000f000, 0x82080480, 0x00002000, - 0x05001055, 0x42002000, 0xc0000000, 0x5930100a, - 0x58080200, 0x8c000508, 0x05000056, 0x8c00050c, - 0x05000013, 0x8c000504, 0x0500000a, 0x58602a02, - 0x82142d00, 0x00003000, 0x82140580, 0x00001000, - 0x0500000b, 0x82140580, 0x00002000, 0x05000044, - 0x8064c9c0, 0x05000004, 0x58600402, 0x8c000526, - 0x0500003d, 0x42002000, 0xc1000000, 0x41783000, - 0x4130b800, 0x0509fc88, 0x05000030, 0x58601804, - 0x8064c9c0, 0x05020006, 0x65126403, 0x585c0402, - 0x820c1d00, 0xffff0000, 0x800c1d40, 0x58600000, - 0x58600801, 0x58601003, 0x82000500, 0x00ffffff, - 0x82040d00, 0x00ffffff, 0x4a026416, 0x00000100, - 0x485e602a, 0x48026019, 0x4806601a, 0x480a601c, - 0x480e601d, 0x585c380a, 0x581c0a12, 0x82040d00, - 0x0000ff00, 0x800000e0, 0x80040540, 0x90000561, - 0x48026018, 0x585c0416, 0x58600802, 0x585c1407, - 0x8c00051c, 0x05020022, 0x4806601b, 0x480a6407, - 0x643e6203, 0x640e6006, 0x0509fad0, 0x4c100000, - 0x0501fd2b, 0x5c002000, 0x82100580, 0xc2000000, - 0x05020015, 0x90000541, 0x405e6000, 0x5c024800, - 0x5c024000, 0x5c00b800, 0x5c00c800, 0x5c00c000, - 0x1c01f000, 0x90000541, 0x05fdf7f9, 0x42002000, - 0xc2000000, 0x42003000, 0x02120000, 0x05fdf7c1, - 0x42002000, 0xc2000000, 0x42003000, 0x01050000, - 0x05fdf7bc, 0x80000580, 0x05fdf7ec, 0x90040d50, - 0x05fdf7de, 0x4803c856, 0x41782000, 0x0501f805, - 0x1c01f000, 0x4803c856, 0x0501f802, 0x1c01f000, - 0x4813c857, 0x59300416, 0x84000550, 0x48026416, - 0x4816621d, 0x480a600a, 0x493a6403, 0x643e6203, - 0x59cc0000, 0x82000500, 0x00ffffff, 0x48026019, - 0x82000500, 0x000000ff, 0x800000e0, 0x59cc0801, - 0x82040d00, 0x00ffffff, 0x4806601a, 0x82040d00, - 0x000000ff, 0x800811c0, 0x0500000a, 0x58080a12, - 0x0501f002, 0x800408d0, 0x80040540, 0x90000561, - 0x4803c857, 0x4807c857, 0x48026018, 0x0501f00e, - 0x4c000000, 0x4c040000, 0x05f9f8ff, 0x5c000800, - 0x5c000000, 0x05000007, 0x59a81a1b, 0x8c0c0506, - 0x05fc07f1, 0x90000561, 0x48026018, 0x0501f002, - 0x64866018, 0x59cc0404, 0x4802641d, 0x59cc0002, - 0x4802601b, 0x59cc0403, 0x4802641c, 0x59cc0203, - 0x4802621c, 0x801021c0, 0x05000002, 0x64082008, - 0x42002800, 0xc0000000, 0x800811c0, 0x0500000d, - 0x58080200, 0x8c000508, 0x05000015, 0x8c00050c, - 0x05000008, 0x8c000504, 0x05020019, 0x42002800, - 0xc1000000, 0x801021c0, 0x05000002, 0x64082008, - 0x40142000, 0x41783000, 0x0509fa60, 0x0501fcbc, - 0x90000541, 0x1c01f000, 0x42002000, 0xc2000000, - 0x42003000, 0x02120000, 0x0501f005, 0x42002000, - 0xc2000000, 0x42003000, 0x01050000, 0x0509fa53, - 0x0501fcaf, 0x80000580, 0x05fdf7f3, 0x59cc1002, - 0x82081500, 0x00003000, 0x82080580, 0x00001000, - 0x05fc07e8, 0x82080580, 0x00002000, 0x05fc07eb, - 0x05fdf7df, 0x59cc0802, 0x8c04052e, 0x0502001d, - 0x05fdfe34, 0x0500001b, 0x59300407, 0x90000586, - 0x05020018, 0x59cc0001, 0x82000500, 0x00ffffff, - 0x5932680a, 0x813669c0, 0x05000012, 0x59340802, - 0x82040d00, 0x00ffffff, 0x80040580, 0x0502000d, - 0x0501f93d, 0x0502000b, 0x59a80077, 0x800001c0, - 0x05020008, 0x61467000, 0x59300416, 0x8c00051a, - 0x05020004, 0x05fdfec0, 0x05000002, 0x0005f478, - 0x59cc0004, 0x4803c857, 0x42000000, 0x0010b04b, - 0x0521f601, 0x4803c856, 0x60143002, 0x0501f004, - 0x601c3004, 0x0501f802, 0x1c01f000, 0x481bc857, - 0x4c5c0000, 0x4c600000, 0x4c640000, 0x41ccc800, - 0x4014b800, 0x4018c000, 0x0501f805, 0x5c00c800, - 0x5c00c000, 0x5c00b800, 0x1c01f000, 0x4803c856, - 0x4c580000, 0x58640400, 0x82000500, 0x0000f000, - 0x82000580, 0x0000c000, 0x05000021, 0x0509fb96, - 0x0500001f, 0x58640001, 0x58643800, 0x821c3d00, - 0x00ffffff, 0x4c1c0000, 0x05fdfcc7, 0x5c003800, - 0x05020019, 0x05e1fd80, 0x05020017, 0x05f1ff5a, - 0x05020015, 0x4936600a, 0x0515fd23, 0x05d5fbbd, - 0x05000011, 0x4926601d, 0x492e6019, 0x497a5800, - 0x497a5a05, 0x485e5c05, 0x912cac06, 0x601cb000, - 0x4064a000, 0x0521fe97, 0x4862641c, 0x64fa6403, - 0x64066407, 0x64066203, 0x0501fc54, 0x5c00b000, - 0x1c01f000, 0x0005fc5a, 0x05fdf7fd, 0x4803c856, - 0x59cc0400, 0x82000d00, 0x0000ff00, 0x82040500, - 0x0000f000, 0x840409c0, 0x82000580, 0x00002000, - 0x05020055, 0x900405a2, 0x05020040, 0x59c400a4, - 0x9000050f, 0x90000c87, 0x05001003, 0x9000048c, - 0x05001064, 0x59cc0006, 0x82000500, 0xffff0000, - 0x82000d80, 0x04000000, 0x0500005e, 0x82000d80, - 0x60000000, 0x0500005b, 0x82000d80, 0x54000000, - 0x05000058, 0x82000d80, 0x03000000, 0x0502001e, - 0x59a80a1b, 0x8c040508, 0x05020052, 0x8c040502, - 0x05020060, 0x82000d80, 0x03000000, 0x05020008, - 0x82140d00, 0x0000f000, 0x82040d80, 0x00003000, - 0x05020003, 0x05f9f82c, 0x05000046, 0x05f5f9f1, - 0x05000046, 0x59a80018, 0x800000d0, 0x59a8080f, - 0x82040d00, 0x000000ff, 0x80040540, 0x59cc0800, - 0x82040d00, 0x00ffffff, 0x80040580, 0x05020037, - 0x0501f038, 0x59c40802, 0x8c04050c, 0x0502001e, - 0x82000d80, 0x52000000, 0x05fc07ed, 0x82000d80, - 0x05000000, 0x05fc07ea, 0x82000d80, 0x50000000, - 0x05fc07e7, 0x0501f029, 0x900405a3, 0x05020027, - 0x05fdfd8a, 0x05000025, 0x59300c03, 0x90040582, - 0x05000024, 0xb0040591, 0x05000022, 0x0501f00a, - 0x05fdfd82, 0x0500001d, 0x59300403, 0x90000582, - 0x0502001a, 0x59300203, 0x9000058e, 0x05020017, - 0x0501f018, 0x59a8021b, 0x8c000514, 0x05fc07f5, - 0x4c580000, 0x0521fe7d, 0xb0582481, 0x5c00b000, - 0x0500100e, 0x59cc0800, 0x82040d00, 0x00ffffff, - 0x42001000, 0x0010b3d1, 0x58080005, 0x80040580, - 0x05000008, 0x801021c0, 0x05000004, 0x80102040, - 0x9008140b, 0x05fdf7f9, 0x80000580, 0x0501f002, - 0x90000541, 0x1c01f000, 0x59cc0006, 0x82000500, - 0xffff0000, 0x82000d80, 0x03000000, 0x05000004, - 0x82000d80, 0x52000000, 0x05fe07f4, 0x59a8021b, - 0x90000509, 0x90000588, 0x05fc07f2, 0x05fdf7ef, - 0x59a8288c, 0x82140500, 0x0000f000, 0x82000580, - 0x00003000, 0x05fe07eb, 0x05f5ffcf, 0x05fe07e9, + 0x59a8288c, 0x8c14051a, 0x05000011, 0x4803c856, + 0x4d300000, 0x4c5c0000, 0x4130b800, 0x4a026416, + 0x00000100, 0x0509fd1c, 0x05000006, 0x485e602a, + 0x585c2c02, 0x585c100a, 0x405c2000, 0x0501f8ad, + 0x5c00b800, 0x5c026000, 0x1c01f000, 0x90000541, + 0x1c01f000, 0x59a8288c, 0x8c14051a, 0x05000016, + 0x4803c856, 0x4d300000, 0x4c5c0000, 0x4130b800, + 0x4a026416, 0x00000100, 0x0509fd07, 0x0500000b, + 0x493a6403, 0x485e602a, 0x0515fe02, 0x05000003, + 0x4a026416, 0x00000080, 0x585c2c02, 0x585c100a, + 0x405c2000, 0x0501f893, 0x5c00b800, 0x5c026000, + 0x1c01f000, 0x90000541, 0x1c01f000, 0x4803c856, + 0x4c600000, 0x4c640000, 0x4c5c0000, 0x4d200000, + 0x4d240000, 0x4200c000, 0x0010ce81, 0x5930c80a, + 0x8064c9c0, 0x05020015, 0x58603800, 0x821c3d00, + 0x00ffffff, 0x4c1c0000, 0x05e1fd7c, 0x5c003800, + 0x05020061, 0x4d340000, 0x58600001, 0x82000500, + 0x00ffffff, 0x0501f9e0, 0x05d20fd1, 0x4936600a, + 0x59341200, 0x5c026800, 0x0501fa13, 0x4a026416, + 0x00000100, 0x65126403, 0x58601006, 0x82081500, + 0x0000f000, 0x82080480, 0x00002000, 0x05001055, + 0x42002000, 0xc0000000, 0x5930100a, 0x58080200, + 0x8c000508, 0x05000056, 0x8c00050c, 0x05000013, + 0x8c000504, 0x0500000a, 0x58602a02, 0x82142d00, + 0x00003000, 0x82140580, 0x00001000, 0x0500000b, + 0x82140580, 0x00002000, 0x05000044, 0x8064c9c0, + 0x05000004, 0x58600402, 0x8c000526, 0x0500003d, + 0x42002000, 0xc1000000, 0x41783000, 0x4130b800, + 0x0509fcb5, 0x05000030, 0x58601804, 0x8064c9c0, + 0x05020006, 0x65126403, 0x585c0402, 0x820c1d00, + 0xffff0000, 0x800c1d40, 0x58600000, 0x58600801, + 0x58601003, 0x82000500, 0x00ffffff, 0x82040d00, + 0x00ffffff, 0x4a026416, 0x00000100, 0x485e602a, + 0x48026019, 0x4806601a, 0x480a601c, 0x480e601d, + 0x585c380a, 0x581c0a12, 0x82040d00, 0x0000ff00, + 0x800000e0, 0x80040540, 0x90000561, 0x48026018, + 0x585c0416, 0x58600802, 0x585c1407, 0x8c00051c, + 0x05020022, 0x4806601b, 0x480a6407, 0x643e6203, + 0x640e6006, 0x0509faf9, 0x4c100000, 0x0501fd62, + 0x5c002000, 0x82100580, 0xc2000000, 0x05020015, + 0x90000541, 0x405e6000, 0x5c024800, 0x5c024000, + 0x5c00b800, 0x5c00c800, 0x5c00c000, 0x1c01f000, + 0x90000541, 0x05fdf7f9, 0x42002000, 0xc2000000, + 0x42003000, 0x02120000, 0x05fdf7c1, 0x42002000, + 0xc2000000, 0x42003000, 0x01050000, 0x05fdf7bc, + 0x80000580, 0x05fdf7ec, 0x90040d50, 0x05fdf7de, + 0x4803c856, 0x41782000, 0x0501f805, 0x1c01f000, + 0x4803c856, 0x0501f802, 0x1c01f000, 0x4813c857, + 0x59300416, 0x84000550, 0x48026416, 0x4816621d, + 0x480a600a, 0x82080580, 0x0010ce8f, 0x05020002, + 0x41781000, 0x493a6403, 0x643e6203, 0x59cc0000, + 0x82000500, 0x00ffffff, 0x48026019, 0x82000500, + 0x000000ff, 0x800000e0, 0x59cc0801, 0x82040d00, + 0x00ffffff, 0x4806601a, 0x82040d00, 0x000000ff, + 0x800811c0, 0x0500000a, 0x58080a12, 0x0501f002, + 0x800408d0, 0x80040540, 0x90000561, 0x4803c857, + 0x4807c857, 0x48026018, 0x0501f00e, 0x4c000000, + 0x4c040000, 0x05f9f875, 0x5c000800, 0x5c000000, + 0x05000007, 0x59a81a1b, 0x8c0c0506, 0x05fc07f1, + 0x90000561, 0x48026018, 0x0501f002, 0x64866018, + 0x59cc0404, 0x4802641d, 0x59cc0002, 0x4802601b, + 0x59cc0403, 0x4802641c, 0x59cc0203, 0x4802621c, + 0x801021c0, 0x05000002, 0x64082008, 0x42002800, + 0xc0000000, 0x800811c0, 0x0500000d, 0x58080200, + 0x8c000508, 0x05000015, 0x8c00050c, 0x05000008, + 0x8c000504, 0x05020019, 0x42002800, 0xc1000000, + 0x801021c0, 0x05000002, 0x64082008, 0x40142000, + 0x41783000, 0x0509fa85, 0x0501fcef, 0x90000541, + 0x1c01f000, 0x42002000, 0xc2000000, 0x42003000, + 0x02120000, 0x0501f005, 0x42002000, 0xc2000000, + 0x42003000, 0x01050000, 0x0509fa78, 0x0501fce2, + 0x80000580, 0x05fdf7f3, 0x59cc1002, 0x82081500, + 0x00003000, 0x82080580, 0x00001000, 0x05fc07e8, + 0x82080580, 0x00002000, 0x05fc07eb, 0x05fdf7df, + 0x59cc0802, 0x8c04052e, 0x0502001d, 0x05fdfe2e, + 0x0500001b, 0x59300407, 0x90000586, 0x05020018, + 0x59cc0001, 0x82000500, 0x00ffffff, 0x5932680a, + 0x813669c0, 0x05000012, 0x59340802, 0x82040d00, + 0x00ffffff, 0x80040580, 0x0502000d, 0x0501f93d, + 0x0502000b, 0x59a80077, 0x800001c0, 0x05020008, + 0x61467000, 0x59300416, 0x8c00051a, 0x05020004, + 0x05fdfebc, 0x05000002, 0x0005f478, 0x59cc0004, + 0x4803c857, 0x42000000, 0x0010b2cb, 0x0521f722, + 0x4803c856, 0x60143002, 0x0501f004, 0x601c3004, + 0x0501f802, 0x1c01f000, 0x481bc857, 0x4c5c0000, + 0x4c600000, 0x4c640000, 0x41ccc800, 0x4014b800, + 0x4018c000, 0x0501f805, 0x5c00c800, 0x5c00c000, + 0x5c00b800, 0x1c01f000, 0x4803c856, 0x4c580000, + 0x58640400, 0x82000500, 0x0000f000, 0x82000580, + 0x0000c000, 0x05000021, 0x0509fbbf, 0x0500001f, + 0x58640001, 0x58643800, 0x821c3d00, 0x00ffffff, + 0x4c1c0000, 0x05fdfcc1, 0x5c003800, 0x05020019, + 0x05e1fc4a, 0x05020017, 0x05f1fea1, 0x05020015, + 0x4936600a, 0x0515fd75, 0x05d5fa2e, 0x05000011, + 0x4926601d, 0x492e6019, 0x497a5800, 0x497a5a05, + 0x485e5c05, 0x912cac06, 0x601cb000, 0x4064a000, + 0x0521ffb8, 0x4862641c, 0x64fa6403, 0x64066407, + 0x64066203, 0x0501fc87, 0x5c00b000, 0x1c01f000, + 0x0005fc5a, 0x05fdf7fd, 0x4803c856, 0x59cc0400, + 0x82000d00, 0x0000ff00, 0x82040500, 0x0000f000, + 0x840409c0, 0x82000580, 0x00002000, 0x05020055, + 0x900405a2, 0x05020040, 0x59c400a4, 0x9000050f, + 0x90000c87, 0x05001003, 0x9000048c, 0x05001064, + 0x59cc0006, 0x82000500, 0xffff0000, 0x82000d80, + 0x04000000, 0x0500005e, 0x82000d80, 0x60000000, + 0x0500005b, 0x82000d80, 0x54000000, 0x05000058, + 0x82000d80, 0x03000000, 0x0502001e, 0x59a80a1b, + 0x8c040508, 0x05020052, 0x8c040502, 0x05020060, + 0x82000d80, 0x03000000, 0x05020008, 0x82140d00, + 0x0000f000, 0x82040d80, 0x00003000, 0x05020003, + 0x05f5ffa2, 0x05000046, 0x05f5f93c, 0x05000046, 0x59a80018, 0x800000d0, 0x59a8080f, 0x82040d00, 0x000000ff, 0x80040540, 0x59cc0800, 0x82040d00, - 0x00ffffff, 0x80040580, 0x05fc07de, 0x60043002, - 0x05fdff2f, 0x05fdf7d9, 0x4803c857, 0x4c580000, - 0x40003000, 0x61c0200f, 0x6040b000, 0x59247009, - 0x50380000, 0x80026d40, 0x05000013, 0x59340002, - 0x82000500, 0x00ffffff, 0x80180580, 0x0502000e, - 0x59341013, 0x80080130, 0x81200580, 0x0502000a, - 0x82080500, 0x00ffffff, 0x59240805, 0x80040580, - 0x05000011, 0x812000f0, 0x80040d40, 0x48066813, - 0x0501f00d, 0x80102000, 0x80387000, 0x8058b040, - 0x05fe07e8, 0x82100480, 0x00000800, 0x60002000, - 0x61c0b00f, 0x41ac7000, 0x05fe17e2, 0x90000541, - 0x0501f002, 0x40128800, 0x5c00b000, 0x1c01f000, - 0x59a8021b, 0x8c00050e, 0x05000004, 0x8c000502, - 0x05000003, 0x80000580, 0x1c01f000, 0x90000541, - 0x05fdf7fe, 0x59300c07, 0x90040582, 0x05000002, - 0x90040585, 0x1c01f000, 0x60080800, 0x8c080508, - 0x05000007, 0x8c08050c, 0x05000004, 0x8c080504, - 0x05020004, 0x90040d44, 0x48066008, 0x1c01f000, - 0x42001800, 0x0010cc01, 0x580c1202, 0x82081500, - 0x00003000, 0x82080580, 0x00001000, 0x05fc07f7, - 0x82080580, 0x00002000, 0x05fc07f5, 0x05fdf7f2, - 0x59c80000, 0x84000558, 0x84000512, 0x48039000, - 0x1c01f000, 0x59cc0800, 0x59340013, 0x80040580, - 0x82000500, 0x00ffffff, 0x1c01f000, 0x4a032824, - 0x000003e8, 0x4a032802, 0x001102e4, 0x64032800, - 0x4a032808, 0x00106426, 0x60140000, 0x91947c09, - 0x49787801, 0x4a007804, 0x001063d1, 0x903c7c05, - 0x80000040, 0x05fe07fb, 0x4a032823, 0xffff0000, - 0x6191d000, 0x0501f9c6, 0x4201d000, 0x000186a0, - 0x0501f1d3, 0x00000000, 0x00000005, 0x0000000a, - 0x0000000f, 0x00000014, 0x00000002, 0x00000008, - 0x00000020, 0x00000080, 0x00000200, 0x4d300000, - 0x4d2c0000, 0x4d340000, 0x4d400000, 0x4cfc0000, - 0x4d380000, 0x4d3c0000, 0x4d440000, 0x4d4c0000, - 0x4d480000, 0x4c5c0000, 0x4c600000, 0x4c640000, - 0x0005fa04, 0x5c00c800, 0x5c00c000, 0x5c00b800, - 0x5c029000, 0x5c029800, 0x5c028800, 0x5c027800, - 0x5c027000, 0x5c01f800, 0x5c028000, 0x5c026800, - 0x5c025800, 0x5c026000, 0x1c01f000, 0x59940004, - 0x80000540, 0x05020008, 0x5994002f, 0x80040400, - 0x05d01ee7, 0x48032804, 0x480b2805, 0x642b2803, - 0x80000580, 0x1c01f000, 0x59940029, 0x80000540, - 0x05020008, 0x5994002f, 0x80040400, 0x05d01edc, - 0x48032829, 0x480b282a, 0x64072828, 0x80000580, - 0x1c01f000, 0x40680800, 0x406c1000, 0x5994002c, - 0x80000540, 0x05020008, 0x5994002f, 0x80040400, - 0x05d01ecf, 0x4803282c, 0x480b282d, 0x642b282b, - 0x80000580, 0x1c01f000, 0x4c000000, 0x59940005, - 0x80080580, 0x05020003, 0x497b2804, 0x497b2805, - 0x5c000000, 0x1c01f000, 0x40681000, 0x05fdfff7, - 0x1c01f000, 0x4c000000, 0x5994002a, 0x80080580, - 0x05020003, 0x497b2829, 0x497b282a, 0x5c000000, - 0x1c01f000, 0x4c000000, 0x5994002d, 0x80080580, - 0x05020003, 0x497b282c, 0x497b282d, 0x5c000000, - 0x1c01f000, 0x4937c857, 0x48ebc857, 0x59340203, - 0x80e80480, 0x05001002, 0x48ea6a03, 0x1c01f000, - 0x4d440000, 0x60407800, 0x59968801, 0x0001fae7, - 0x05020059, 0x59341a03, 0x800c1840, 0x05001015, - 0x59940031, 0x800c0480, 0x05000003, 0x48026a03, - 0x05021010, 0x5934000f, 0x497a6a03, 0x80000540, - 0x0500004d, 0x5934000b, 0x80001120, 0x82000500, - 0x0000ffff, 0x80080480, 0x05001003, 0x64066a03, - 0x0501f004, 0x4c3c0000, 0x0001faf4, 0x5c007800, - 0x4d2c0000, 0x41781800, 0x5934000f, 0x80025d40, - 0x0500003c, 0x592c0004, 0x80000d40, 0x05000006, - 0x59940031, 0x80040480, 0x48025804, 0x05001007, - 0x05000006, 0x412c1800, 0x592c0000, 0x80025d40, - 0x05000030, 0x05fdf7f4, 0x592c2000, 0x497a5800, - 0x800c19c0, 0x05020009, 0x59340010, 0x812c0580, - 0x05020004, 0x497a680f, 0x497a6810, 0x0501f008, - 0x4812680f, 0x0501f006, 0x48101800, 0x59340010, - 0x812c0580, 0x05020002, 0x480e6810, 0x592c0205, - 0x82000500, 0x000000ff, 0x90000592, 0x05000005, - 0xb00005a0, 0x05000003, 0x90000588, 0x05020003, - 0x642e5a07, 0x0501f00c, 0x4c0c0000, 0x4c100000, - 0x0001ff6c, 0x5c002000, 0x5c001800, 0x4a025a05, - 0x00000103, 0x641a5a07, 0x497a580a, 0x4a025c07, - 0x0000ffff, 0x4c0c0000, 0x4c100000, 0x0001fb5b, - 0x5c002000, 0x5c001800, 0x40100000, 0x05fdf7d0, - 0x5c025800, 0x81468800, 0x83440480, 0x00000800, - 0x05021007, 0x803c7840, 0x05fe07a1, 0x49472801, - 0x5c028800, 0x5c03e000, 0x1c01f000, 0x640b2800, - 0x497b2801, 0x05fdf7fb, 0x60407800, 0x59966002, - 0x59300205, 0x80000d40, 0x05000014, 0x59940031, - 0x80040480, 0x48026205, 0x4df00000, 0x4c040000, - 0x0515fb34, 0x5c000800, 0x05000009, 0x59300205, - 0x9000048b, 0x05021006, 0x9004048b, 0x05001004, - 0x4c3c0000, 0x0515fa61, 0x5c007800, 0x5c03e000, - 0x05001027, 0x05000026, 0x59300006, 0x80000d40, - 0x05000010, 0x4203e000, 0xb0800000, 0x4203f800, - 0x0c000000, 0x40000000, 0x40000000, 0x40000000, - 0x0503b008, 0x59940031, 0x80040480, 0x48026006, - 0x4203f800, 0x08000000, 0x05001019, 0x05000018, - 0x91326430, 0x49332802, 0x41540000, 0x81300480, - 0x05021005, 0x803c7840, 0x05fe07d2, 0x5c03e000, - 0x1c01f000, 0x59940030, 0x48032831, 0x4a032802, - 0x001102e4, 0x497b2830, 0x80000540, 0x0500000c, - 0x64072800, 0x5c03e000, 0x1c01f000, 0x4c3c0000, - 0x0515f930, 0x5c007800, 0x05fdf7d8, 0x4c3c0000, - 0x0511fcf7, 0x5c007800, 0x05fdf7e6, 0x64032800, - 0x5c03e000, 0x1c01f000, 0x59a80876, 0x8c040530, - 0x05020025, 0x8c040532, 0x0500000f, 0x59a80065, - 0x81640480, 0x05001016, 0x59a8000b, 0x81500580, - 0x05000005, 0x59a80063, 0x59a81062, 0x80080580, - 0x0502000f, 0x900411c0, 0x82081500, 0x00007000, - 0x0501f00f, 0x9004051f, 0x05000013, 0x80040840, - 0x9004051f, 0x05000003, 0x48075076, 0x0501f00e, - 0x900401c0, 0x9000051f, 0x80040d40, 0x900401c0, - 0x80040580, 0x82001500, 0x00007000, 0x82040500, - 0xffff8fff, 0x80080540, 0x48035076, 0x80081114, - 0x05d1fff2, 0x1c01f000, 0x4a032807, 0x000007d0, - 0x642b2806, 0x4a01a8e5, 0x00000c00, 0x1c01f000, - 0x60100800, 0x91180485, 0x05d21dc5, 0x91947c09, - 0x83180400, 0x00105add, 0x50000000, 0x803c7c00, - 0x4a007801, 0x000001f4, 0x48047802, 0x64287800, - 0x49787803, 0x83180400, 0x00105ae2, 0x50000000, - 0x82000540, 0x00000155, 0x4801a8e5, 0x1c01f000, - 0x91180485, 0x05d21db2, 0x91947c09, 0x83180400, - 0x00105add, 0x50000000, 0x803c7c00, 0x583c0002, - 0x80000040, 0x48007802, 0x05000004, 0x4a007801, - 0x000001f4, 0x64287800, 0x1c01f000, 0x91180485, - 0x05d21da3, 0x91947c09, 0x83180400, 0x00105add, - 0x50000000, 0x803c7c00, 0x49787801, 0x83180400, - 0x00105ae2, 0x50000000, 0x4801a8e5, 0x1c01f000, - 0x40680800, 0x406c1000, 0x0501f802, 0x1c01f000, + 0x00ffffff, 0x80040580, 0x05020037, 0x0501f038, + 0x59c40802, 0x8c04050c, 0x0502001e, 0x82000d80, + 0x52000000, 0x05fc07ed, 0x82000d80, 0x05000000, + 0x05fc07ea, 0x82000d80, 0x50000000, 0x05fc07e7, + 0x0501f029, 0x900405a3, 0x05020027, 0x05fdfd84, + 0x05000025, 0x59300c03, 0x90040582, 0x05000024, + 0xb0040591, 0x05000022, 0x0501f00a, 0x05fdfd7c, + 0x0500001d, 0x59300403, 0x90000582, 0x0502001a, + 0x59300203, 0x9000058e, 0x05020017, 0x0501f018, + 0x59a8021b, 0x8c000514, 0x05fc07f5, 0x4c580000, + 0x0521ff9e, 0xb0582481, 0x5c00b000, 0x0500100e, + 0x59cc0800, 0x82040d00, 0x00ffffff, 0x42001000, + 0x0010b651, 0x58080005, 0x80040580, 0x05000008, + 0x801021c0, 0x05000004, 0x80102040, 0x9008140b, + 0x05fdf7f9, 0x80000580, 0x0501f002, 0x90000541, + 0x1c01f000, 0x59cc0006, 0x82000500, 0xffff0000, + 0x82000d80, 0x03000000, 0x05000004, 0x82000d80, + 0x52000000, 0x05fe07f4, 0x59a8021b, 0x90000509, + 0x90000588, 0x05fc07f2, 0x05fdf7ef, 0x59a8288c, + 0x82140500, 0x0000f000, 0x82000580, 0x00003000, + 0x05fe07eb, 0x05f5ff45, 0x05fe07e9, 0x59a80018, + 0x800000d0, 0x59a8080f, 0x82040d00, 0x000000ff, + 0x80040540, 0x59cc0800, 0x82040d00, 0x00ffffff, + 0x80040580, 0x05fc07de, 0x60043002, 0x05fdff2f, + 0x05fdf7d9, 0x4803c857, 0x4c580000, 0x40003000, + 0x61c0200f, 0x6040b000, 0x59247009, 0x50380000, + 0x80026d40, 0x05000013, 0x59340002, 0x82000500, + 0x00ffffff, 0x80180580, 0x0502000e, 0x59341013, + 0x80080130, 0x81200580, 0x0502000a, 0x82080500, + 0x00ffffff, 0x59240805, 0x80040580, 0x05000011, + 0x812000f0, 0x80040d40, 0x48066813, 0x0501f00d, + 0x80102000, 0x80387000, 0x8058b040, 0x05fe07e8, + 0x82100480, 0x00000800, 0x60002000, 0x61c0b00f, + 0x41ac7000, 0x05fe17e2, 0x90000541, 0x0501f002, + 0x40128800, 0x5c00b000, 0x1c01f000, 0x59a8021b, + 0x8c00050e, 0x05000004, 0x8c000502, 0x05000003, + 0x80000580, 0x1c01f000, 0x90000541, 0x05fdf7fe, + 0x59300c07, 0x90040582, 0x05000002, 0x90040585, + 0x1c01f000, 0x60080800, 0x8c080508, 0x05000007, + 0x8c08050c, 0x05000004, 0x8c080504, 0x05020004, + 0x90040d44, 0x48066008, 0x1c01f000, 0x42001800, + 0x0010ce81, 0x580c1202, 0x82081500, 0x00003000, + 0x82080580, 0x00001000, 0x05fc07f7, 0x82080580, + 0x00002000, 0x05fc07f5, 0x05fdf7f2, 0x59c80000, + 0x84000558, 0x84000512, 0x48039000, 0x1c01f000, + 0x59cc0800, 0x59340013, 0x80040580, 0x82000500, + 0x00ffffff, 0x1c01f000, 0x82140500, 0x0000f000, + 0x05000006, 0x82000c80, 0x00004000, 0x0502100a, + 0x80000580, 0x1c01f000, 0x59cc0400, 0x82000500, + 0x0000ff00, 0x82000580, 0x00008100, 0x05fc07fa, + 0x0501f012, 0x4817c857, 0x82140500, 0x000003ff, + 0x05020007, 0x59cc0400, 0x82000500, 0x0000ff00, + 0x82000580, 0x00008100, 0x05020008, 0x42000000, + 0x0010b330, 0x0521fdd4, 0x05fdfeb2, 0x4803c856, + 0x90000541, 0x05fdf7e8, 0x41780000, 0x05fdf7e6, + 0x05f5feba, 0x0500000e, 0x59c400a4, 0x4803c857, + 0x9000050f, 0x9000058a, 0x05020009, 0x497b5077, + 0x59c400a3, 0x82000540, 0x00080000, 0x480388a3, + 0x82000500, 0xfff7ffff, 0x480388a3, 0x4817c856, + 0x0521f502, 0x4a032824, 0x000003e8, 0x4a032802, + 0x00110514, 0x64032800, 0x4a032808, 0x001065e8, + 0x60140000, 0x91947c09, 0x49787801, 0x4a007804, + 0x00106593, 0x903c7c05, 0x80000040, 0x05fe07fb, + 0x4a032823, 0xffff0000, 0x6191d000, 0x0501f9c6, + 0x4201d000, 0x000186a0, 0x0501f1d3, 0x00000000, + 0x00000005, 0x0000000a, 0x0000000f, 0x00000014, + 0x00000002, 0x00000008, 0x00000020, 0x00000080, + 0x00000200, 0x4d300000, 0x4d2c0000, 0x4d340000, + 0x4d400000, 0x4cfc0000, 0x4d380000, 0x4d3c0000, + 0x4d440000, 0x4d4c0000, 0x4d480000, 0x4c5c0000, + 0x4c600000, 0x4c640000, 0x0005fa04, 0x5c00c800, + 0x5c00c000, 0x5c00b800, 0x5c029000, 0x5c029800, + 0x5c028800, 0x5c027800, 0x5c027000, 0x5c01f800, + 0x5c028000, 0x5c026800, 0x5c025800, 0x5c026000, + 0x1c01f000, 0x59940004, 0x80000540, 0x05020008, + 0x5994002f, 0x80040400, 0x05d01d25, 0x48032804, + 0x480b2805, 0x642b2803, 0x80000580, 0x1c01f000, + 0x59940029, 0x80000540, 0x05020008, 0x5994002f, + 0x80040400, 0x05d01d1a, 0x48032829, 0x480b282a, + 0x64072828, 0x80000580, 0x1c01f000, 0x40680800, + 0x406c1000, 0x5994002c, 0x80000540, 0x05020008, + 0x5994002f, 0x80040400, 0x05d01d0d, 0x4803282c, + 0x480b282d, 0x642b282b, 0x80000580, 0x1c01f000, + 0x4c000000, 0x59940005, 0x80080580, 0x05020003, + 0x497b2804, 0x497b2805, 0x5c000000, 0x1c01f000, + 0x40681000, 0x05fdfff7, 0x1c01f000, 0x4c000000, + 0x5994002a, 0x80080580, 0x05020003, 0x497b2829, + 0x497b282a, 0x5c000000, 0x1c01f000, 0x4c000000, + 0x5994002d, 0x80080580, 0x05020003, 0x497b282c, + 0x497b282d, 0x5c000000, 0x1c01f000, 0x4937c857, + 0x48ebc857, 0x59340203, 0x80e80480, 0x05001002, + 0x48ea6a03, 0x1c01f000, 0x4d440000, 0x60407800, + 0x59968801, 0x0001fae7, 0x05020059, 0x59341a03, + 0x800c1840, 0x05001015, 0x59940031, 0x800c0480, + 0x05000003, 0x48026a03, 0x05021010, 0x5934000f, + 0x497a6a03, 0x80000540, 0x0500004d, 0x5934000b, + 0x80001120, 0x82000500, 0x0000ffff, 0x80080480, + 0x05001003, 0x64066a03, 0x0501f004, 0x4c3c0000, + 0x0001faf4, 0x5c007800, 0x4d2c0000, 0x41781800, + 0x5934000f, 0x80025d40, 0x0500003c, 0x592c0004, + 0x80000d40, 0x05000006, 0x59940031, 0x80040480, + 0x48025804, 0x05001007, 0x05000006, 0x412c1800, + 0x592c0000, 0x80025d40, 0x05000030, 0x05fdf7f4, + 0x592c2000, 0x497a5800, 0x800c19c0, 0x05020009, + 0x59340010, 0x812c0580, 0x05020004, 0x497a680f, + 0x497a6810, 0x0501f008, 0x4812680f, 0x0501f006, + 0x48101800, 0x59340010, 0x812c0580, 0x05020002, + 0x480e6810, 0x592c0205, 0x82000500, 0x000000ff, + 0x90000592, 0x05000005, 0xb00005a0, 0x05000003, + 0x90000588, 0x05020003, 0x642e5a07, 0x0501f00c, + 0x4c0c0000, 0x4c100000, 0x0001ff6c, 0x5c002000, + 0x5c001800, 0x4a025a05, 0x00000103, 0x641a5a07, + 0x497a580a, 0x4a025c07, 0x0000ffff, 0x4c0c0000, + 0x4c100000, 0x0001fb5b, 0x5c002000, 0x5c001800, + 0x40100000, 0x05fdf7d0, 0x5c025800, 0x81468800, + 0x83440480, 0x00000800, 0x05021007, 0x803c7840, + 0x05fe07a1, 0x49472801, 0x5c028800, 0x5c03e000, + 0x1c01f000, 0x640b2800, 0x497b2801, 0x05fdf7fb, + 0x60407800, 0x59966002, 0x59300205, 0x80000d40, + 0x05000014, 0x59940031, 0x80040480, 0x48026205, + 0x4df00000, 0x4c040000, 0x0515fb53, 0x5c000800, + 0x05000009, 0x59300205, 0x9000048b, 0x05021006, + 0x9004048b, 0x05001004, 0x4c3c0000, 0x0515fa80, + 0x5c007800, 0x5c03e000, 0x05001027, 0x05000026, + 0x59300006, 0x80000d40, 0x05000010, 0x4203e000, + 0xb0800000, 0x4203f800, 0x0c000000, 0x40000000, + 0x40000000, 0x40000000, 0x0503b008, 0x59940031, + 0x80040480, 0x48026006, 0x4203f800, 0x08000000, + 0x05001019, 0x05000018, 0x91326430, 0x49332802, + 0x41540000, 0x81300480, 0x05021005, 0x803c7840, + 0x05fe07d2, 0x5c03e000, 0x1c01f000, 0x59940030, + 0x48032831, 0x4a032802, 0x00110514, 0x497b2830, + 0x80000540, 0x0500000c, 0x64072800, 0x5c03e000, + 0x1c01f000, 0x4c3c0000, 0x0515f94f, 0x5c007800, + 0x05fdf7d8, 0x4c3c0000, 0x0511fd13, 0x5c007800, + 0x05fdf7e6, 0x64032800, 0x5c03e000, 0x1c01f000, + 0x59a80876, 0x8c040530, 0x05020025, 0x8c040532, + 0x0500000f, 0x59a80065, 0x81640480, 0x05001016, + 0x59a8000b, 0x81500580, 0x05000005, 0x59a80063, + 0x59a81062, 0x80080580, 0x0502000f, 0x900411c0, + 0x82081500, 0x00007000, 0x0501f00f, 0x9004051f, + 0x05000013, 0x80040840, 0x9004051f, 0x05000003, + 0x48075076, 0x0501f00e, 0x900401c0, 0x9000051f, + 0x80040d40, 0x900401c0, 0x80040580, 0x82001500, + 0x00007000, 0x82040500, 0xffff8fff, 0x80080540, + 0x48035076, 0x80081114, 0x05d1fe30, 0x1c01f000, + 0x4a032807, 0x000007d0, 0x642b2806, 0x4a01a8e5, + 0x00000c00, 0x1c01f000, 0x60100800, 0x91180485, + 0x05d21c03, 0x91947c09, 0x83180400, 0x00105c9f, + 0x50000000, 0x803c7c00, 0x4a007801, 0x000001f4, + 0x48047802, 0x64287800, 0x49787803, 0x83180400, + 0x00105ca4, 0x50000000, 0x82000540, 0x00000155, + 0x4801a8e5, 0x1c01f000, 0x91180485, 0x05d21bf0, + 0x91947c09, 0x83180400, 0x00105c9f, 0x50000000, + 0x803c7c00, 0x583c0002, 0x80000040, 0x48007802, + 0x05000004, 0x4a007801, 0x000001f4, 0x64287800, + 0x1c01f000, 0x91180485, 0x05d21be1, 0x91947c09, + 0x83180400, 0x00105c9f, 0x50000000, 0x803c7c00, + 0x49787801, 0x83180400, 0x00105ca4, 0x50000000, + 0x4801a8e5, 0x1c01f000, 0x40680800, 0x406c1000, + 0x0501f802, 0x1c01f000, 0x4807c857, 0x480bc857, + 0x5994002f, 0x80040400, 0x05d01bcd, 0x48032804, + 0x480b2805, 0x642b2803, 0x1c01f000, 0x4807c857, + 0x480bc857, 0x5994002f, 0x80040400, 0x05d01bc4, + 0x48032826, 0x480b2827, 0x642b2825, 0x1c01f000, + 0x4c000000, 0x59940027, 0x80080580, 0x05020003, + 0x48032826, 0x48032827, 0x5c000000, 0x1c01f000, 0x4807c857, 0x480bc857, 0x5994002f, 0x80040400, - 0x05d01d8f, 0x48032804, 0x480b2805, 0x642b2803, - 0x1c01f000, 0x4807c857, 0x480bc857, 0x5994002f, - 0x80040400, 0x05d01d86, 0x48032826, 0x480b2827, - 0x642b2825, 0x1c01f000, 0x4c000000, 0x59940027, - 0x80080580, 0x05020003, 0x48032826, 0x48032827, - 0x5c000000, 0x1c01f000, 0x4807c857, 0x480bc857, - 0x5994002f, 0x80040400, 0x05d01d75, 0x4803282c, - 0x480b282d, 0x642b282b, 0x1c01f000, 0x80e9d1c0, - 0x0500000c, 0x0501f82e, 0x05025000, 0x4203e000, - 0x80000000, 0x40e81000, 0x41780800, 0x61900000, - 0x0501f8b4, 0x5994002e, 0x80080400, 0x4803282e, - 0x1c01f000, 0x42001000, 0x0010497d, 0x05fdfe97, - 0x42001000, 0x00104970, 0x05fdffdc, 0x42001000, - 0x00103d56, 0x05fdfe91, 0x42001000, 0x00103dce, - 0x05fdfe8e, 0x42001000, 0x00103d35, 0x05fdfe8b, - 0x42001000, 0x00103df8, 0x05fdf69b, 0x4203e000, - 0x70000000, 0x4203e000, 0xb0300000, 0x40ebf800, - 0x60f00000, 0x05004004, 0x80000040, 0x05fe07fe, - 0x0501f006, 0x4203e000, 0x70000000, 0x42000000, - 0x0010b071, 0x0521fae8, 0x1c01f000, 0x4203e000, - 0x80000000, 0x4203e000, 0xb0400000, 0x40ebf800, - 0x60f00000, 0x05005004, 0x80000040, 0x05fe07fe, - 0x0501f006, 0x4203e000, 0x80000000, 0x42000000, - 0x0010b072, 0x0521fad8, 0x1c01f000, 0x59a8080d, - 0x59a80266, 0x80040480, 0x599c0a02, 0x800409c0, - 0x05020002, 0x80040800, 0x80041480, 0x05001002, - 0x40000800, 0x48075064, 0x59a8100d, 0x40040000, - 0x800acc80, 0x4967500d, 0x49675065, 0x59aaa80b, - 0x41640800, 0x60c01000, 0x0501f84e, 0x8206a400, - 0x001102e4, 0x49535061, 0x4152b000, 0x42006000, - 0x0010cc44, 0x4a006005, 0x0000012c, 0x4a006006, - 0xda10da10, 0x64486009, 0x4a00600a, 0x0010cc44, - 0x4a00600b, 0x00100e21, 0x599c0014, 0x48006012, - 0x599c0015, 0x48006013, 0x42006000, 0x00110224, - 0x64206203, 0x64186407, 0x4a006002, 0xffff0000, - 0x4a006009, 0x0010cc44, 0x4a006016, 0x0010cc44, - 0x599c0014, 0x48006017, 0x599c0015, 0x48006018, - 0x599c0413, 0x48006019, 0x4950601a, 0x4954601b, - 0x59a80064, 0x4800601c, 0x4a00601d, 0x0010abe1, - 0x4a00601e, 0x0010abe2, 0x4a00601f, 0x0010abe3, - 0x42000000, 0xb0000000, 0x42000800, 0x00110224, - 0x0001f92d, 0x1c01f000, 0x4807c856, 0x59240206, - 0x800409c0, 0x05000003, 0x80080540, 0x0501f002, - 0x80080500, 0x48024a06, 0x1c01f000, 0x4803c856, - 0x4c000000, 0x05fdf96c, 0x0502000b, 0x05f1fc02, - 0x05d20cdb, 0x5c000000, 0x48026802, 0x0509f82e, - 0x05000006, 0x4936600a, 0x64066407, 0x60067000, - 0x0005f478, 0x5c000000, 0x1c01f000, 0x05d1fcd0, - 0x4c0c0000, 0x4c100000, 0x4c140000, 0x4c180000, - 0x80001d80, 0x80002580, 0x60803000, 0x90040501, - 0x05000003, 0x40080000, 0x800c1c00, 0x400c2800, - 0x800c1902, 0x80102102, 0x90140501, 0x05000003, - 0x82102540, 0x80000000, 0x80040902, 0x80183040, - 0x05fe07f3, 0x40100800, 0x400c0000, 0x5c003000, - 0x5c002800, 0x5c002000, 0x5c001800, 0x1c01f000, - 0x4c580000, 0x6080b000, 0x80000540, 0x05000018, - 0x80041c80, 0x05021016, 0x800810c2, 0x80040982, - 0x05001006, 0x80041c80, 0x05021005, 0x8058b040, - 0x05fe07fa, 0x0501f006, 0x80041c80, 0x400c0800, - 0x80081000, 0x8058b040, 0x05fe07f4, 0x4c000000, - 0x41f00000, 0x82000500, 0xf7ffffff, 0x4003e000, - 0x5c000000, 0x5c00b000, 0x1c01f000, 0x4c000000, - 0x41f00000, 0x82000540, 0x08000000, 0x05fdf7f8, - 0x42007000, 0x0010ac7a, 0x64147000, 0x64007401, - 0x4a007201, 0x00000840, 0x64147202, 0x6401a8e8, - 0x6443c82b, 0x0501f84e, 0x4a01a8e9, 0x00003a0d, - 0x4a01a8ee, 0x00080202, 0x6405a8e8, 0x640378e8, - 0x6443c821, 0x6413c823, 0x0501f879, 0x4a0378e9, - 0x00003a0d, 0x4a0378ee, 0x00080302, 0x640778e8, - 0x41780800, 0x6003a0ec, 0x42001000, 0x0010af39, - 0x42001800, 0x0010dfb7, 0x600c2000, 0x6120297f, - 0x4a03a005, 0xd0000001, 0x59d00006, 0x4a03a005, - 0x90000001, 0x59d00006, 0x4a03a005, 0x60000001, - 0x59d00006, 0x4a03a005, 0x60000003, 0x59d00006, - 0x4a03a005, 0x60000005, 0x59d00006, 0x4a03a005, - 0x60000007, 0x59d00006, 0x4a03a005, 0x60000009, - 0x59d00006, 0x4a03a005, 0x6000000b, 0x64041001, - 0x4a001002, 0x00000100, 0x4a001008, 0x00020bf5, - 0x480c100a, 0x4810100c, 0x4814100d, 0x4978120e, - 0x4804140e, 0x4978100f, 0x820c1c00, 0x00000080, - 0x480c100b, 0x90081411, 0x801020c4, 0x80142800, - 0x91d3a420, 0x80040800, 0x90040485, 0x05fc17d7, - 0x59e00003, 0x82000500, 0xffffffe0, 0x82000540, - 0x00008000, 0x4803c003, 0x59c40006, 0x82000500, - 0xfffcffff, 0x48038806, 0x1c01f000, 0x4d900000, - 0x4d180000, 0x4c500000, 0x4c580000, 0x4c540000, - 0x4a01a8e7, 0xaaaaaaaa, 0x4a01a8e6, 0xaaaaaaaa, - 0x4a01a8e5, 0xaaaaaaaa, 0x4a01a8e4, 0xaaaaaaaa, - 0x4a01a8ee, 0x00200000, 0x4979a8ee, 0x4a01a8ce, - 0x0010a0ec, 0x6000b001, 0x90d4ac00, 0x4178a000, - 0x0521faa0, 0x4a01a81d, 0x00100e1d, 0x4a01a81b, - 0x00100e26, 0x4a01a81c, 0x00100e36, 0x4a01a81e, - 0x0010af0d, 0x64031800, 0x600c0800, 0x42001800, - 0x0010af10, 0x417a3000, 0x811b20c8, 0x83932400, - 0x0000b037, 0x48072000, 0x480f2001, 0x64032002, - 0x800408c4, 0x900c1c05, 0x811a3000, 0x91180485, - 0x05fc17f6, 0x5c00a800, 0x5c00b000, 0x5c00a000, - 0x5c023000, 0x5c032000, 0x1c01f000, 0x4cd80000, - 0x4d180000, 0x4a0378e7, 0xaaaaaaaa, 0x4a0378e6, - 0xaaaaaaaa, 0x4a0378e5, 0xaaaaaaaa, 0x4a0378e4, - 0xaaaaaaaa, 0x4a03781b, 0x00100e26, 0x4a03781c, - 0x00100e36, 0x4a03781d, 0x0010ac7d, 0x4a03781e, - 0x0010ac84, 0x42000800, 0x0010af10, 0x417a3000, - 0x42001000, 0x0010dfb7, 0x8119b0c8, 0x82d9b400, - 0x0000bf32, 0x83180400, 0x001064e5, 0x50000000, - 0x4801b002, 0x4809b000, 0x4809b001, 0x82081400, - 0x00000080, 0x90040c05, 0x811a3000, 0x91180485, - 0x05fc17f2, 0x5c023000, 0x5c01b000, 0x1c01f000, - 0x40680800, 0x0005fb2e, 0x1c01f000, 0x4933c857, - 0x42000800, 0x8000004e, 0x59300416, 0x8c000510, - 0x05000002, 0x84040d52, 0x48066004, 0x58d400ea, - 0x8c000516, 0x05fe07fe, 0x83300400, 0x80000000, - 0x4801a8e1, 0x1c01f000, 0x4933c857, 0x59300804, - 0x82040d00, 0x00000100, 0x82040d40, 0x80000040, + 0x05d01bb3, 0x4803282c, 0x480b282d, 0x642b282b, + 0x1c01f000, 0x80e9d1c0, 0x0500000c, 0x0501f82e, + 0x05025000, 0x4203e000, 0x80000000, 0x40e81000, + 0x41780800, 0x61900000, 0x0501f8b4, 0x5994002e, + 0x80080400, 0x4803282e, 0x1c01f000, 0x42001000, + 0x00104a82, 0x05fdfe97, 0x42001000, 0x00104a75, + 0x05fdffdc, 0x42001000, 0x00103e29, 0x05fdfe91, + 0x42001000, 0x00103ea1, 0x05fdfe8e, 0x42001000, + 0x00103e08, 0x05fdfe8b, 0x42001000, 0x00103ecb, + 0x05fdf69b, 0x4203e000, 0x70000000, 0x4203e000, + 0xb0300000, 0x40ebf800, 0x60f00000, 0x05004004, + 0x80000040, 0x05fe07fe, 0x0501f006, 0x4203e000, + 0x70000000, 0x42000000, 0x0010b2f1, 0x0521fbd6, + 0x1c01f000, 0x4203e000, 0x80000000, 0x4203e000, + 0xb0400000, 0x40ebf800, 0x60f00000, 0x05005004, + 0x80000040, 0x05fe07fe, 0x0501f006, 0x4203e000, + 0x80000000, 0x42000000, 0x0010b2f2, 0x0521fbc6, + 0x1c01f000, 0x59a8080d, 0x59a80266, 0x80040480, + 0x599c0a02, 0x800409c0, 0x05020002, 0x80040800, + 0x80041480, 0x05001002, 0x40000800, 0x48075064, + 0x59a8100d, 0x40040000, 0x800acc80, 0x4967500d, + 0x49675065, 0x59aaa80b, 0x41640800, 0x60c01000, + 0x0501f84e, 0x8206a400, 0x00110514, 0x49535061, + 0x4152b000, 0x42006000, 0x0010cec4, 0x4a006005, + 0x0000012c, 0x4a006006, 0xda10da10, 0x64486009, + 0x4a00600a, 0x0010cec4, 0x4a00600b, 0x00100e21, + 0x599c0014, 0x48006012, 0x599c0015, 0x48006013, + 0x42006000, 0x00110454, 0x64206203, 0x64186407, + 0x4a006002, 0xffff0000, 0x4a006009, 0x0010cec4, + 0x4a006016, 0x0010cec4, 0x599c0014, 0x48006017, + 0x599c0015, 0x48006018, 0x599c0413, 0x48006019, + 0x4950601a, 0x4954601b, 0x59a80064, 0x4800601c, + 0x4a00601d, 0x0010ae61, 0x4a00601e, 0x0010ae62, + 0x4a00601f, 0x0010ae63, 0x42000000, 0xb0000000, + 0x42000800, 0x00110454, 0x0001f92d, 0x1c01f000, + 0x4807c856, 0x59240206, 0x800409c0, 0x05000003, + 0x80080540, 0x0501f002, 0x80080500, 0x48024a06, + 0x1c01f000, 0x4803c856, 0x4c000000, 0x05fdf933, + 0x0502000b, 0x05f1fb16, 0x05d20b19, 0x5c000000, + 0x48026802, 0x0509f824, 0x05000006, 0x4936600a, + 0x64066407, 0x60067000, 0x0005f478, 0x5c000000, + 0x1c01f000, 0x05d1fb0e, 0x4c0c0000, 0x4c100000, + 0x4c140000, 0x4c180000, 0x80001d80, 0x80002580, + 0x60803000, 0x90040501, 0x05000003, 0x40080000, + 0x800c1c00, 0x400c2800, 0x800c1902, 0x80102102, + 0x90140501, 0x05000003, 0x82102540, 0x80000000, + 0x80040902, 0x80183040, 0x05fe07f3, 0x40100800, + 0x400c0000, 0x5c003000, 0x5c002800, 0x5c002000, + 0x5c001800, 0x1c01f000, 0x4c580000, 0x6080b000, + 0x80000540, 0x05000018, 0x80041c80, 0x05021016, + 0x800810c2, 0x80040982, 0x05001006, 0x80041c80, + 0x05021005, 0x8058b040, 0x05fe07fa, 0x0501f006, + 0x80041c80, 0x400c0800, 0x80081000, 0x8058b040, + 0x05fe07f4, 0x4c000000, 0x41f00000, 0x82000500, + 0xf7ffffff, 0x4003e000, 0x5c000000, 0x5c00b000, + 0x1c01f000, 0x4c000000, 0x41f00000, 0x82000540, + 0x08000000, 0x05fdf7f8, 0x42007000, 0x0010aefa, + 0x64147000, 0x64007401, 0x4a007201, 0x00000840, + 0x64147202, 0x6401a8e8, 0x6443c82b, 0x0501f84e, + 0x4a01a8e9, 0x00003a0d, 0x4a01a8ee, 0x00080202, + 0x6405a8e8, 0x640378e8, 0x6443c821, 0x6413c823, + 0x0501f879, 0x4a0378e9, 0x00003a0d, 0x4a0378ee, + 0x00080302, 0x640778e8, 0x41780800, 0x6003a0ec, + 0x42001000, 0x0010b1b9, 0x42001800, 0x0010e237, + 0x600c2000, 0x6120297f, 0x4a03a005, 0xd0000001, + 0x59d00006, 0x4a03a005, 0x90000001, 0x59d00006, + 0x4a03a005, 0x60000001, 0x59d00006, 0x4a03a005, + 0x60000003, 0x59d00006, 0x4a03a005, 0x60000005, + 0x59d00006, 0x4a03a005, 0x60000007, 0x59d00006, + 0x4a03a005, 0x60000009, 0x59d00006, 0x4a03a005, + 0x6000000b, 0x64041001, 0x4a001002, 0x00000100, + 0x4a001008, 0x00020bf5, 0x480c100a, 0x4810100c, + 0x4814100d, 0x4978120e, 0x4804140e, 0x4978100f, + 0x820c1c00, 0x00000080, 0x480c100b, 0x90081411, + 0x801020c4, 0x80142800, 0x91d3a420, 0x80040800, + 0x90040485, 0x05fc17d7, 0x59e00003, 0x82000500, + 0xffffffe0, 0x82000540, 0x00008000, 0x4803c003, + 0x59c40006, 0x82000500, 0xfffcffff, 0x48038806, + 0x1c01f000, 0x4d900000, 0x4d180000, 0x4c500000, + 0x4c580000, 0x4c540000, 0x4a01a8e7, 0xaaaaaaaa, + 0x4a01a8e6, 0xaaaaaaaa, 0x4a01a8e5, 0xaaaaaaaa, + 0x4a01a8e4, 0xaaaaaaaa, 0x4a01a8ee, 0x00200000, + 0x4979a8ee, 0x4a01a8ce, 0x0010a3b3, 0x6000b001, + 0x90d4ac00, 0x4178a000, 0x0521fb8e, 0x4a01a81d, + 0x00100e1d, 0x4a01a81b, 0x00100e26, 0x4a01a81c, + 0x00100e36, 0x4a01a81e, 0x0010b18d, 0x64031800, + 0x600c0800, 0x42001800, 0x0010b190, 0x417a3000, + 0x811b20c8, 0x83932400, 0x0000b037, 0x48072000, + 0x480f2001, 0x64032002, 0x800408c4, 0x900c1c05, + 0x811a3000, 0x91180485, 0x05fc17f6, 0x5c00a800, + 0x5c00b000, 0x5c00a000, 0x5c023000, 0x5c032000, + 0x1c01f000, 0x4cd80000, 0x4d180000, 0x4a0378e7, + 0xaaaaaaaa, 0x4a0378e6, 0xaaaaaaaa, 0x4a0378e5, + 0xaaaaaaaa, 0x4a0378e4, 0xaaaaaaaa, 0x4a03781b, + 0x00100e26, 0x4a03781c, 0x00100e36, 0x4a03781d, + 0x0010aefd, 0x4a03781e, 0x0010af04, 0x42000800, + 0x0010b190, 0x417a3000, 0x42001000, 0x0010e237, + 0x8119b0c8, 0x82d9b400, 0x0000bf32, 0x83180400, + 0x001066a7, 0x50000000, 0x4801b002, 0x4809b000, + 0x4809b001, 0x82081400, 0x00000080, 0x90040c05, + 0x811a3000, 0x91180485, 0x05fc17f2, 0x5c023000, + 0x5c01b000, 0x1c01f000, 0x40680800, 0x0005fb2e, + 0x1c01f000, 0x4933c857, 0x42000800, 0x8000004e, 0x59300416, 0x8c000510, 0x05000002, 0x84040d52, - 0x48066004, 0x497a6000, 0x58d400ea, 0x8c000516, - 0x05fe07fe, 0x83300400, 0x60000000, 0x4801a8e1, - 0x1c01f000, 0x0501f802, 0x1c01f000, 0x0501f946, - 0x4df00000, 0x4d300000, 0x4c5c0000, 0x4c600000, - 0x4130c000, 0x4178b800, 0x598e6005, 0x813261c0, - 0x05000036, 0x5930080a, 0x800409c0, 0x0502000d, - 0x4d340000, 0x0001fae7, 0x41340800, 0x5c026800, - 0x0502002b, 0x58040802, 0x59300019, 0x80040580, - 0x82000500, 0x00ffffff, 0x05000005, 0x0501f024, - 0x58040403, 0x81440580, 0x05020021, 0x5930501a, - 0x59340013, 0x82000500, 0x00ffffff, 0x80280580, - 0x0502001b, 0x5930002a, 0x80600580, 0x05000018, - 0x0501f820, 0x59302000, 0x497a6000, 0x805cb9c0, - 0x05020009, 0x598c0004, 0x81300580, 0x05020004, - 0x497b1805, 0x497b1804, 0x0501f008, 0x48131805, - 0x0501f006, 0x4810b800, 0x598c0004, 0x81300580, - 0x05020002, 0x485f1804, 0x4c100000, 0x0005fc5a, - 0x0501f8f2, 0x5c026000, 0x05fdf7cd, 0x4130b800, - 0x59326000, 0x05fdf7ca, 0x5c00c000, 0x5c00b800, - 0x5c026000, 0x5c03e000, 0x050008ef, 0x1c01f000, - 0x598c000b, 0x81300580, 0x05000003, 0x497a6008, - 0x1c01f000, 0x59c40004, 0x9000050c, 0x05000005, - 0x64338804, 0x4a01a8e5, 0x00000800, 0x0501f008, - 0x0501fb8c, 0x59300403, 0xb0000d80, 0x05000003, - 0xb0000582, 0x05020002, 0x497a6008, 0x0501fe2b, - 0x80000580, 0x1c01f000, 0x0501f805, 0x60058800, - 0x05000002, 0x60018800, 0x1c01f000, 0x59300804, - 0x8c040520, 0x05020003, 0x90000541, 0x1c01f000, - 0x4933c857, 0x4d380000, 0x59300804, 0x84040d20, - 0x48066004, 0x61267000, 0x59300203, 0x90000583, - 0x05000002, 0x604e7000, 0x0005fc78, 0x80000580, - 0x5c027000, 0x1c01f000, 0x0501f805, 0x60058800, - 0x05000002, 0x60018800, 0x1c01f000, 0x59300019, - 0x81480580, 0x05020003, 0x5930001a, 0x814c0580, - 0x1c01f000, 0x4d2c0000, 0x4d300000, 0x0501f8c6, - 0x4df00000, 0x05fdfd92, 0x59900002, 0x90000503, - 0x0c01f001, 0x00105ecd, 0x00105ec2, 0x00105ec1, - 0x00105ec1, 0x05d1fb2e, 0x59926005, 0x0501f889, - 0x813261c0, 0x05000008, 0x59300004, 0x8c000516, - 0x05000004, 0x59325809, 0x497a5809, 0x497a580a, - 0x0501f886, 0x5c03e000, 0x0500089b, 0x5c026000, - 0x5c025800, 0x1c01f000, 0x5c000000, 0x4c000000, - 0x4803c857, 0x4d300000, 0x4a01a8e5, 0x00000800, - 0x0501f8a5, 0x4df00000, 0x598c0000, 0x90000507, - 0x4803c857, 0x0c01f001, 0x00105f04, 0x00105ee7, - 0x00105eee, 0x00105ef1, 0x00105efd, 0x00105f04, - 0x00105f01, 0x00105ee6, 0x05d1fb09, 0x598c000b, - 0x80026540, 0x05000003, 0x0501f81e, 0x05d20b04, - 0x0501fdce, 0x0501f017, 0x0501f829, 0x0501fdcb, - 0x0501f014, 0x598c000b, 0x80026540, 0x05000011, - 0x0501f83a, 0x05000006, 0x0501f847, 0x05000004, - 0x0501f810, 0x05000002, 0x0501f81d, 0x0501fdbf, - 0x0501f008, 0x0501f840, 0x05d20af1, 0x0501fdbb, - 0x0501f004, 0x0501f82d, 0x05d20aed, 0x0501fdb7, - 0x5c03e000, 0x05000864, 0x5c026000, 0x1c01f000, - 0x598c0007, 0x81300580, 0x0502000c, 0x0501f857, - 0x0501f846, 0x59300000, 0x800001c0, 0x05000004, - 0x48031807, 0x497a6000, 0x0501f003, 0x497b1807, - 0x497b1806, 0x80000580, 0x1c01f000, 0x4d2c0000, - 0x59300407, 0x90000583, 0x05020012, 0x598c0009, - 0x81300580, 0x0502000f, 0x0501f844, 0x59325809, - 0x497a5809, 0x497a580a, 0x0501f830, 0x59300000, - 0x800001c0, 0x05000004, 0x48031809, 0x497a6000, - 0x0501f003, 0x497b1808, 0x497b1809, 0x80000580, - 0x5c025800, 0x1c01f000, 0x598c0005, 0x81300580, - 0x0502000c, 0x0501f831, 0x0501f820, 0x59300000, - 0x800001c0, 0x05000004, 0x48031805, 0x497a6000, - 0x0501f003, 0x497b1805, 0x497b1804, 0x80000580, - 0x1c01f000, 0x598c0003, 0x81300580, 0x0502000c, - 0x0501f822, 0x0501f811, 0x59300000, 0x800001c0, - 0x05000004, 0x48031803, 0x497a6000, 0x0501f003, - 0x497b1803, 0x497b1802, 0x80000580, 0x1c01f000, - 0x64032002, 0x497b2005, 0x497b2006, 0x497b2007, - 0x4979b003, 0x1c01f000, 0x4c040000, 0x59300004, - 0x82000500, 0x7ffeffff, 0x48026004, 0x58d400e4, - 0x8c000514, 0x05000007, 0x58d40011, 0x81300580, - 0x05020004, 0x4979a811, 0x4a01a8e4, 0x00000800, - 0x5c000800, 0x1c01f000, 0x4803c856, 0x598c000a, - 0x80000540, 0x05000003, 0x80000040, 0x4803180a, - 0x1c01f000, 0x58d400ea, 0x90000507, 0x90000583, - 0x05020003, 0x4803c856, 0x6405a8e8, 0x59bc00ea, - 0x90000507, 0x90000583, 0x05020005, 0x4803c856, - 0x640778e8, 0x4a0370e4, 0x00000800, 0x1c01f000, + 0x48066004, 0x58d400ea, 0x8c000516, 0x05fe07fe, + 0x83300400, 0x80000000, 0x4801a8e1, 0x1c01f000, + 0x4933c857, 0x59300804, 0x82040d00, 0x00000100, + 0x82040d40, 0x80000040, 0x59300416, 0x8c000510, + 0x05000002, 0x84040d52, 0x48066004, 0x497a6000, + 0x58d400ea, 0x8c000516, 0x05fe07fe, 0x83300400, + 0x60000000, 0x4801a8e1, 0x1c01f000, 0x0501f802, + 0x1c01f000, 0x0501f946, 0x4df00000, 0x4d300000, + 0x4c5c0000, 0x4c600000, 0x4130c000, 0x4178b800, + 0x598e6005, 0x813261c0, 0x05000036, 0x5930080a, + 0x800409c0, 0x0502000d, 0x4d340000, 0x0001fae7, + 0x41340800, 0x5c026800, 0x0502002b, 0x58040802, + 0x59300019, 0x80040580, 0x82000500, 0x00ffffff, + 0x05000005, 0x0501f024, 0x58040403, 0x81440580, + 0x05020021, 0x5930501a, 0x59340013, 0x82000500, + 0x00ffffff, 0x80280580, 0x0502001b, 0x5930002a, + 0x80600580, 0x05000018, 0x0501f820, 0x59302000, + 0x497a6000, 0x805cb9c0, 0x05020009, 0x598c0004, + 0x81300580, 0x05020004, 0x497b1805, 0x497b1804, + 0x0501f008, 0x48131805, 0x0501f006, 0x4810b800, + 0x598c0004, 0x81300580, 0x05020002, 0x485f1804, + 0x4c100000, 0x0005fc5a, 0x0501f8f2, 0x5c026000, + 0x05fdf7cd, 0x4130b800, 0x59326000, 0x05fdf7ca, + 0x5c00c000, 0x5c00b800, 0x5c026000, 0x5c03e000, + 0x050008ef, 0x1c01f000, 0x598c000b, 0x81300580, + 0x05000003, 0x497a6008, 0x1c01f000, 0x59c40004, + 0x9000050c, 0x05000005, 0x64338804, 0x4a01a8e5, + 0x00000800, 0x0501f008, 0x0501fb8c, 0x59300403, + 0xb0000d80, 0x05000003, 0xb0000582, 0x05020002, + 0x497a6008, 0x0501fe2b, 0x80000580, 0x1c01f000, 0x0501f805, 0x60058800, 0x05000002, 0x60018800, - 0x1c01f000, 0x60042800, 0x58d400ea, 0x90000507, - 0x90000581, 0x0502000d, 0x4803c856, 0x60000800, - 0x0501f831, 0x60000820, 0x58d400ea, 0x90000507, - 0x90000583, 0x05000004, 0x80040840, 0x05fe07fb, - 0x05d1fa63, 0x41782800, 0x59bc00ea, 0x90000507, - 0x90000581, 0x0502000e, 0x4803c856, 0x60000800, - 0x0501f80d, 0x4a0370e4, 0x00000c00, 0x60000820, - 0x59bc00ea, 0x90000507, 0x90000583, 0x05000005, - 0x80040840, 0x05fe07fb, 0x05d1fa51, 0x801429c0, - 0x1c01f000, 0x59bc00ea, 0x90000507, 0x90000581, - 0x05d20a4b, 0x59bc00ea, 0x8c000516, 0x05fe07fe, - 0x480778e1, 0x1c01f000, 0x40681000, 0x406c0800, - 0x59bc00ea, 0x8c000516, 0x05fe07fe, 0x480778e1, - 0x59bc00ea, 0x8c000516, 0x05fe07fe, 0x480b78e1, - 0x1c01f000, 0x58d400ea, 0x8c000516, 0x05fe07fe, - 0x4805a8e1, 0x1c01f000, 0x58d400ea, 0x8c000516, - 0x05fe07fe, 0x4805a8e1, 0x58d400ea, 0x8c000516, - 0x05fe07fe, 0x4809a8e1, 0x1c01f000, 0x4a0378e4, - 0x00002000, 0x42007000, 0x0010ac7a, 0x58380401, - 0x8c000506, 0x05020003, 0x4a01a8e4, 0x00008000, - 0x1c01f000, 0x82000d00, 0x02000018, 0x05d20a16, - 0x05d1fa1f, 0x00106134, 0x00106149, 0x00105fd8, - 0x00106133, 0x00105fd7, 0x001060cd, 0x05d1fa18, - 0x4d2c0000, 0x4d300000, 0x58d400ea, 0x8c000510, - 0x05fc07fe, 0x58d660e0, 0x813261c0, 0x05d00a10, - 0x59300004, 0x8c000520, 0x05000010, 0x82000500, - 0xfffefeff, 0x48026004, 0x59325809, 0x59301407, - 0x90080583, 0x05000006, 0x90080586, 0x05d20a04, - 0x592c0a07, 0x0005fae7, 0x0501f006, 0x0001fb5b, - 0x0005fc5a, 0x0501f003, 0x84000510, 0x48026004, - 0x5c026000, 0x5c025800, 0x1c01f000, 0x82000d00, - 0x82000018, 0x05d209ec, 0x05d1f9f5, 0x0010600b, - 0x0010600b, 0x0010600b, 0x0010600c, 0x0010602c, - 0x001060af, 0x0010600b, 0x00106102, 0x0010600b, - 0x00106133, 0x0010604b, 0x00020b80, 0x0010608e, - 0x0010600b, 0x0010600b, 0x0010600b, 0x05d1f9e4, - 0x4d300000, 0x4d900000, 0x4dd00000, 0x4da40000, - 0x4d140000, 0x4cd80000, 0x0501fcc0, 0x59bc00ea, - 0x8c000510, 0x05fc07fe, 0x59be60e0, 0x59300004, - 0x8c000520, 0x05000010, 0x82000500, 0xfffefeff, - 0x48026004, 0x05fdff60, 0x05d5fd3e, 0x05d5fd9d, - 0x05d5fd5c, 0x5c01b000, 0x5c022800, 0x5c034800, - 0x5c03a000, 0x5c032000, 0x5c026000, 0x642378e4, - 0x05fdf741, 0x84000510, 0x48026004, 0x05fdf7f6, - 0x4d300000, 0x4d900000, 0x4dd00000, 0x4da40000, - 0x4d140000, 0x4cd80000, 0x0501fca0, 0x59bc00ea, - 0x8c000510, 0x05fc07fe, 0x59be60e0, 0x59300004, - 0x8c000520, 0x0500000f, 0x82000500, 0xfffefeff, - 0x48026004, 0x640e6203, 0x05fdff3f, 0x05d5fcda, - 0x5c01b000, 0x5c022800, 0x5c034800, 0x5c03a000, - 0x5c032000, 0x5c026000, 0x642378e4, 0x05fdf722, - 0x84000510, 0x48026004, 0x05fdf7f6, 0x4d300000, - 0x4d2c0000, 0x4d900000, 0x4dd00000, 0x4da40000, - 0x4d140000, 0x4cd80000, 0x0501fc80, 0x59bc00ea, - 0x8c000510, 0x05fc07fe, 0x59be60e0, 0x59300004, - 0x8c000520, 0x0500001a, 0x82000500, 0xfffefeff, - 0x48026004, 0x640e6203, 0x59325809, 0x812e59c0, - 0x05d0098f, 0x42000000, 0x0010b079, 0x051dff32, - 0x592c0209, 0x84000552, 0x48025a09, 0x05d9f868, - 0x05fdff15, 0x05d5fcb0, 0x5c01b000, 0x5c022800, - 0x5c034800, 0x5c03a000, 0x5c032000, 0x5c025800, - 0x5c026000, 0x642378e4, 0x05fdf6f7, 0x84000510, - 0x48026004, 0x05fdf7f5, 0x42007000, 0x00020d9f, - 0x58380000, 0x90000580, 0x0500000d, 0x58d80805, - 0x8c040500, 0x0500000a, 0x83180400, 0x00020bf0, - 0x50006000, 0x58380001, 0x80300580, 0x05000005, - 0x4803c856, 0x05d1fe1e, 0x4979b005, 0x1c01f000, - 0x5830000f, 0x4803c857, 0x6404620e, 0x4978600f, - 0x49787002, 0x1c01f000, 0x4d2c0000, 0x4d300000, - 0x59bc00ea, 0x8c000510, 0x05fc07fe, 0x59be60e0, - 0x813261c0, 0x05d0095a, 0x59300004, 0x8c000520, - 0x05000014, 0x82000500, 0xfffefeff, 0x48026004, - 0x59301407, 0x90080583, 0x05d20951, 0x0201f800, - 0x0010eee3, 0x80c40040, 0x05d2094d, 0x59325809, - 0x60040800, 0x600a8000, 0x05f1ff47, 0x0001fb5b, - 0x0005fc5a, 0x5c026000, 0x5c025800, 0x1c01f000, - 0x84000510, 0x48026004, 0x05fdf7fb, 0x4d300000, - 0x4d900000, 0x4dd00000, 0x4da40000, 0x4d140000, - 0x4cd80000, 0x0501fc1d, 0x59bc00ea, 0x8c000510, - 0x05fc07fe, 0x59be60e0, 0x59300004, 0x8c000520, - 0x0500000e, 0x82000500, 0xfffefeff, 0x48026004, - 0x05fdfebd, 0x05d5fc8f, 0x5c01b000, 0x5c022800, + 0x1c01f000, 0x59300804, 0x8c040520, 0x05020003, + 0x90000541, 0x1c01f000, 0x4933c857, 0x4d380000, + 0x59300804, 0x84040d20, 0x48066004, 0x61267000, + 0x59300203, 0x90000583, 0x05000002, 0x604e7000, + 0x0005fc78, 0x80000580, 0x5c027000, 0x1c01f000, + 0x0501f805, 0x60058800, 0x05000002, 0x60018800, + 0x1c01f000, 0x59300019, 0x81480580, 0x05020003, + 0x5930001a, 0x814c0580, 0x1c01f000, 0x4d2c0000, + 0x4d300000, 0x0501f8c6, 0x4df00000, 0x05fdfd92, + 0x59900002, 0x90000503, 0x0c01f001, 0x0010608f, + 0x00106084, 0x00106083, 0x00106083, 0x05d1f96c, + 0x59926005, 0x0501f889, 0x813261c0, 0x05000008, + 0x59300004, 0x8c000516, 0x05000004, 0x59325809, + 0x497a5809, 0x497a580a, 0x0501f886, 0x5c03e000, + 0x0500089b, 0x5c026000, 0x5c025800, 0x1c01f000, + 0x5c000000, 0x4c000000, 0x4803c857, 0x4d300000, + 0x4a01a8e5, 0x00000800, 0x0501f8a5, 0x4df00000, + 0x598c0000, 0x90000507, 0x4803c857, 0x0c01f001, + 0x001060c6, 0x001060a9, 0x001060b0, 0x001060b3, + 0x001060bf, 0x001060c6, 0x001060c3, 0x001060a8, + 0x05d1f947, 0x598c000b, 0x80026540, 0x05000003, + 0x0501f81e, 0x05d20942, 0x0501fdce, 0x0501f017, + 0x0501f829, 0x0501fdcb, 0x0501f014, 0x598c000b, + 0x80026540, 0x05000011, 0x0501f83a, 0x05000006, + 0x0501f847, 0x05000004, 0x0501f810, 0x05000002, + 0x0501f81d, 0x0501fdbf, 0x0501f008, 0x0501f840, + 0x05d2092f, 0x0501fdbb, 0x0501f004, 0x0501f82d, + 0x05d2092b, 0x0501fdb7, 0x5c03e000, 0x05000864, + 0x5c026000, 0x1c01f000, 0x598c0007, 0x81300580, + 0x0502000c, 0x0501f857, 0x0501f846, 0x59300000, + 0x800001c0, 0x05000004, 0x48031807, 0x497a6000, + 0x0501f003, 0x497b1807, 0x497b1806, 0x80000580, + 0x1c01f000, 0x4d2c0000, 0x59300407, 0x90000583, + 0x05020012, 0x598c0009, 0x81300580, 0x0502000f, + 0x0501f844, 0x59325809, 0x497a5809, 0x497a580a, + 0x0501f830, 0x59300000, 0x800001c0, 0x05000004, + 0x48031809, 0x497a6000, 0x0501f003, 0x497b1808, + 0x497b1809, 0x80000580, 0x5c025800, 0x1c01f000, + 0x598c0005, 0x81300580, 0x0502000c, 0x0501f831, + 0x0501f820, 0x59300000, 0x800001c0, 0x05000004, + 0x48031805, 0x497a6000, 0x0501f003, 0x497b1805, + 0x497b1804, 0x80000580, 0x1c01f000, 0x598c0003, + 0x81300580, 0x0502000c, 0x0501f822, 0x0501f811, + 0x59300000, 0x800001c0, 0x05000004, 0x48031803, + 0x497a6000, 0x0501f003, 0x497b1803, 0x497b1802, + 0x80000580, 0x1c01f000, 0x64032002, 0x497b2005, + 0x497b2006, 0x497b2007, 0x4979b003, 0x1c01f000, + 0x4c040000, 0x59300004, 0x82000500, 0x7ffeffff, + 0x48026004, 0x58d400e4, 0x8c000514, 0x05000007, + 0x58d40011, 0x81300580, 0x05020004, 0x4979a811, + 0x4a01a8e4, 0x00000800, 0x5c000800, 0x1c01f000, + 0x4803c856, 0x598c000a, 0x80000540, 0x05000003, + 0x80000040, 0x4803180a, 0x1c01f000, 0x58d400ea, + 0x90000507, 0x90000583, 0x05020003, 0x4803c856, + 0x6405a8e8, 0x59bc00ea, 0x90000507, 0x90000583, + 0x05020005, 0x4803c856, 0x640778e8, 0x4a0370e4, + 0x00000800, 0x1c01f000, 0x0501f805, 0x60058800, + 0x05000002, 0x60018800, 0x1c01f000, 0x60042800, + 0x58d400ea, 0x90000507, 0x90000581, 0x0502000d, + 0x4803c856, 0x60000800, 0x0501f831, 0x60000820, + 0x58d400ea, 0x90000507, 0x90000583, 0x05000004, + 0x80040840, 0x05fe07fb, 0x05d1f8a1, 0x41782800, + 0x59bc00ea, 0x90000507, 0x90000581, 0x0502000e, + 0x4803c856, 0x60000800, 0x0501f80d, 0x4a0370e4, + 0x00000c00, 0x60000820, 0x59bc00ea, 0x90000507, + 0x90000583, 0x05000005, 0x80040840, 0x05fe07fb, + 0x05d1f88f, 0x801429c0, 0x1c01f000, 0x59bc00ea, + 0x90000507, 0x90000581, 0x05d20889, 0x59bc00ea, + 0x8c000516, 0x05fe07fe, 0x480778e1, 0x1c01f000, + 0x40681000, 0x406c0800, 0x59bc00ea, 0x8c000516, + 0x05fe07fe, 0x480778e1, 0x59bc00ea, 0x8c000516, + 0x05fe07fe, 0x480b78e1, 0x1c01f000, 0x58d400ea, + 0x8c000516, 0x05fe07fe, 0x4805a8e1, 0x1c01f000, + 0x58d400ea, 0x8c000516, 0x05fe07fe, 0x4805a8e1, + 0x58d400ea, 0x8c000516, 0x05fe07fe, 0x4809a8e1, + 0x1c01f000, 0x4a0378e4, 0x00002000, 0x42007000, + 0x0010aefa, 0x58380401, 0x8c000506, 0x05020003, + 0x4a01a8e4, 0x00008000, 0x1c01f000, 0x82000d00, + 0x02000018, 0x05d20854, 0x05d1f85d, 0x001062f6, + 0x0010630b, 0x0010619a, 0x001062f5, 0x00106199, + 0x0010628f, 0x05d1f856, 0x4d2c0000, 0x4d300000, + 0x58d400ea, 0x8c000510, 0x05fc07fe, 0x58d660e0, + 0x813261c0, 0x05d0084e, 0x59300004, 0x8c000520, + 0x05000010, 0x82000500, 0xfffefeff, 0x48026004, + 0x59325809, 0x59301407, 0x90080583, 0x05000006, + 0x90080586, 0x05d20842, 0x592c0a07, 0x0005fae7, + 0x0501f006, 0x0001fb5b, 0x0005fc5a, 0x0501f003, + 0x84000510, 0x48026004, 0x5c026000, 0x5c025800, + 0x1c01f000, 0x82000d00, 0x82000018, 0x05d2082a, + 0x05d1f833, 0x001061cd, 0x001061cd, 0x001061cd, + 0x001061ce, 0x001061ee, 0x00106271, 0x001061cd, + 0x001062c4, 0x001061cd, 0x001062f5, 0x0010620d, + 0x00020b80, 0x00106250, 0x001061cd, 0x001061cd, + 0x001061cd, 0x05d1f822, 0x4d300000, 0x4d900000, + 0x4dd00000, 0x4da40000, 0x4d140000, 0x4cd80000, + 0x0501fcc0, 0x59bc00ea, 0x8c000510, 0x05fc07fe, + 0x59be60e0, 0x59300004, 0x8c000520, 0x05000010, + 0x82000500, 0xfffefeff, 0x48026004, 0x05fdff60, + 0x05d5fb7c, 0x05d5fbdb, 0x05d5fb9a, 0x5c01b000, + 0x5c022800, 0x5c034800, 0x5c03a000, 0x5c032000, + 0x5c026000, 0x642378e4, 0x05fdf741, 0x84000510, + 0x48026004, 0x05fdf7f6, 0x4d300000, 0x4d900000, + 0x4dd00000, 0x4da40000, 0x4d140000, 0x4cd80000, + 0x0501fca0, 0x59bc00ea, 0x8c000510, 0x05fc07fe, + 0x59be60e0, 0x59300004, 0x8c000520, 0x0500000f, + 0x82000500, 0xfffefeff, 0x48026004, 0x640e6203, + 0x05fdff3f, 0x05d5fb18, 0x5c01b000, 0x5c022800, 0x5c034800, 0x5c03a000, 0x5c032000, 0x5c026000, - 0x642378e4, 0x05fdf6a0, 0x84000510, 0x48026004, - 0x05fdf7f6, 0x4d300000, 0x4d2c0000, 0x4d340000, - 0x4da40000, 0x4cd00000, 0x4d240000, 0x58d400ea, - 0x8c000510, 0x05fc07fe, 0x58d660e0, 0x813261c0, - 0x05d00917, 0x59300004, 0x8c000520, 0x0500001e, - 0x82000500, 0xfffefeff, 0x48026004, 0x5932680a, - 0x42034800, 0x0010ac7d, 0x5932481d, 0x05011000, - 0x4a03c840, 0x0010ac84, 0x644bc842, 0x05011000, - 0x4a03c840, 0x0010ac96, 0x4a03c842, 0x000000ff, - 0x05011000, 0x4a03c840, 0x0010ad95, 0x4a03c842, - 0x000000ff, 0x0501fbf9, 0x5c024800, 0x5c01a000, - 0x5c034800, 0x5c026800, 0x5c025800, 0x5c026000, - 0x1c01f000, 0x84000510, 0x48026004, 0x5c024800, - 0x5c01a000, 0x5c034800, 0x5c026800, 0x5c025800, - 0x5c026000, 0x1c01f000, 0x4d300000, 0x4d2c0000, - 0x4d340000, 0x4cd00000, 0x4d240000, 0x4d900000, + 0x642378e4, 0x05fdf722, 0x84000510, 0x48026004, + 0x05fdf7f6, 0x4d300000, 0x4d2c0000, 0x4d900000, 0x4dd00000, 0x4da40000, 0x4d140000, 0x4cd80000, - 0x0501fbc6, 0x59bc00ea, 0x8c000510, 0x05fc07fe, - 0x59be60e0, 0x813261c0, 0x05d008dd, 0x59300004, - 0x8c000520, 0x05000011, 0x82000500, 0xfffefeff, - 0x48026004, 0x5932481d, 0x0505fa5c, 0x5c01b000, - 0x5c022800, 0x5c034800, 0x5c03a000, 0x5c032000, - 0x5c024800, 0x5c01a000, 0x5c026800, 0x5c025800, - 0x5c026000, 0x1c01f000, 0x84000510, 0x48026004, + 0x0501fc80, 0x59bc00ea, 0x8c000510, 0x05fc07fe, + 0x59be60e0, 0x59300004, 0x8c000520, 0x0500001a, + 0x82000500, 0xfffefeff, 0x48026004, 0x640e6203, + 0x59325809, 0x812e59c0, 0x05cc0fcd, 0x42000000, + 0x0010b2f9, 0x0521f820, 0x592c0209, 0x84000552, + 0x48025a09, 0x05d5fea4, 0x05fdff15, 0x05d5faee, 0x5c01b000, 0x5c022800, 0x5c034800, 0x5c03a000, - 0x5c032000, 0x5c024800, 0x5c01a000, 0x5c026800, - 0x5c025800, 0x5c026000, 0x1c01f000, 0x05d1f8bc, - 0x4d300000, 0x4d380000, 0x42000000, 0x0010b0b7, - 0x051dfe5d, 0x05fdfe44, 0x598e600b, 0x59c40004, - 0x8c000506, 0x05000003, 0x0501f8d6, 0x64238804, - 0x813261c0, 0x05000004, 0x0501fb8b, 0x60527000, - 0x0005fc78, 0x6409a8e4, 0x5c027000, 0x5c026000, - 0x05fdf621, 0x4d180000, 0x4d300000, 0x4d380000, - 0x4d900000, 0x4dd00000, 0x4da40000, 0x4d140000, - 0x4cd80000, 0x05fdfe2c, 0x417a3000, 0x59c40804, - 0x83180400, 0x00106491, 0x50000000, 0x80040500, - 0x05000017, 0x42000000, 0x0010b0b8, 0x051dfe3a, - 0x0501fb76, 0x59926005, 0x0501f85d, 0x83180400, - 0x00106491, 0x50000000, 0x48038804, 0x813261c0, - 0x05000007, 0x59300004, 0x8c00050c, 0x05020002, - 0x640e6203, 0x612a7000, 0x0005fc78, 0x59c40004, - 0x82000500, 0x00f80000, 0x05000004, 0x811a3000, - 0x91180485, 0x05fc17e2, 0x6421a8e4, 0x5c01b000, - 0x5c022800, 0x5c034800, 0x5c03a000, 0x5c032000, - 0x5c027000, 0x5c026000, 0x5c023000, 0x05fdf5ee, - 0x4d2c0000, 0x4d340000, 0x5932680a, 0x598c0800, - 0x90040586, 0x05020004, 0x918c1405, 0x918c1c04, - 0x0501f00f, 0x90040584, 0x05020004, 0x918c1403, - 0x918c1c02, 0x0501f00a, 0x90040581, 0x05020004, - 0x918c1407, 0x918c1c06, 0x0501f005, 0x90040582, - 0x05020024, 0x918c1409, 0x918c1c08, 0x41306800, - 0x58340000, 0x80007d40, 0x0500001e, 0x583c000a, - 0x81340580, 0x05020006, 0x403c6800, 0x583c0000, - 0x80007d40, 0x05fe07fa, 0x0501f016, 0x4933c857, - 0x483fc857, 0x583c0000, 0x48006800, 0x49307800, - 0x443c1000, 0x500c0000, 0x803c0580, 0x05020002, - 0x44341800, 0x80000580, 0x4803180b, 0x4803180d, - 0x598c0000, 0x90000583, 0x05000002, 0x64031800, - 0x80000580, 0x5c026800, 0x5c025800, 0x1c01f000, - 0x90000541, 0x05fdf7fc, 0x0501f805, 0x60018800, - 0x05000002, 0x60058800, 0x1c01f000, 0x491bc857, - 0x59b400f6, 0x90000538, 0x05fe07fe, 0x59c80840, - 0x90040550, 0x48039040, 0x59c41008, 0x4c040000, - 0x4c080000, 0x82081500, 0xffffff7f, 0x480b8808, - 0x0501faa5, 0x05020006, 0x0501faa9, 0x05000020, - 0x48038804, 0x05d5fbbe, 0x0501f03d, 0x64238803, - 0x59c40003, 0x90000503, 0x05fc07fe, 0x8c000502, - 0x05020006, 0x0501fa9e, 0x05000015, 0x48038804, - 0x05d5fbb3, 0x0501f032, 0x0501faa5, 0x05020007, - 0x59c80040, 0x8400056a, 0x48039040, 0x59c80040, - 0x8c00052a, 0x05fe07fe, 0x59c40005, 0x82000500, - 0xc0000000, 0x05000006, 0x59c400a3, 0x84000540, - 0x480388a3, 0x4a038805, 0xc0000000, 0x05d5fb71, - 0x4a03a005, 0x30000000, 0x59d00006, 0x4a03a005, - 0x30000000, 0x6401b006, 0x59d00005, 0x8c000504, - 0x05fe07fe, 0x05fdfe81, 0x6403a014, 0x600008ec, - 0x83180540, 0x60000000, 0x480008a1, 0x811800dc, - 0x59c80840, 0x80040540, 0x48039040, 0x82000540, - 0x00003000, 0x48039040, 0x59c80040, 0x82000500, - 0x00003000, 0x05fe07fd, 0x05d5fb76, 0x83180400, - 0x00106491, 0x50000000, 0x48038804, 0x80000580, - 0x4df00000, 0x05fdfa3e, 0x5c03e000, 0x5c001000, - 0x5c000800, 0x480b8808, 0x48079040, 0x1c01f000, - 0x4803c856, 0x59b400f6, 0x90000538, 0x05fe07fe, - 0x59c80840, 0x90040550, 0x48039040, 0x59c41008, - 0x4c040000, 0x4c080000, 0x82081500, 0xffffff7f, - 0x480b8808, 0x59c40004, 0x90000503, 0x0502000e, - 0x59c40004, 0x9000050c, 0x05000004, 0x64338804, - 0x8c000504, 0x0501f022, 0x59c80040, 0x8400056e, - 0x48039040, 0x59c80040, 0x8c00052e, 0x05fe07fe, - 0x0501f01b, 0x64238803, 0x59c40003, 0x90000503, - 0x05fc07fe, 0x8c000502, 0x05020005, 0x59c40004, - 0x64338804, 0x8c000504, 0x0501f011, 0x59c80040, - 0x8400056a, 0x48039040, 0x59c80040, 0x8c00052a, - 0x05fe07fe, 0x59c40005, 0x82000500, 0xc0000000, - 0x05000007, 0x59c400a3, 0x84000540, 0x480388a3, - 0x4a038805, 0xc0000000, 0x80000580, 0x4a01a8e5, - 0x00000800, 0x5c001000, 0x5c000800, 0x480b8808, - 0x48079040, 0x1c01f000, 0x0501f805, 0x60058800, - 0x05000002, 0x60018800, 0x1c01f000, 0x5c000000, - 0x4c000000, 0x4803c857, 0x491bc857, 0x4933c857, - 0x4d900000, 0x4dd00000, 0x4da40000, 0x4d140000, - 0x4cd80000, 0x05fdfd1c, 0x4df00000, 0x0501fa6f, - 0x59900005, 0x800001c0, 0x05000012, 0x81300580, - 0x05020010, 0x59300004, 0x84000520, 0x48026004, - 0x05fdff4f, 0x0502000a, 0x5c03e000, 0x05fc0cfa, - 0x80000580, 0x5c01b000, 0x5c022800, 0x5c034800, - 0x5c03a000, 0x5c032000, 0x1c01f000, 0x05fdfc3e, - 0x61267000, 0x59300004, 0x84000520, 0x48026004, - 0x8c00050c, 0x00060c78, 0x5c03e000, 0x05fc0cea, - 0x90000541, 0x5c01b000, 0x5c022800, 0x5c034800, - 0x5c03a000, 0x5c032000, 0x1c01f000, 0x0501f805, - 0x60058800, 0x05000002, 0x60018800, 0x1c01f000, - 0x4933c857, 0x05fdfcf0, 0x4df00000, 0x598c000b, - 0x80026540, 0x0500000f, 0x59300004, 0x84000520, - 0x48026004, 0x05fdff7f, 0x05000011, 0x05fdfc3b, - 0x604e7000, 0x59300004, 0x8c00050c, 0x00060c78, - 0x5c03e000, 0x05fc0ccc, 0x90000541, 0x1c01f000, - 0x916c1581, 0x05fc07fb, 0x916c1584, 0x05fc07f9, - 0x42001000, 0x00103d56, 0x05fdf880, 0x5c03e000, - 0x05fc0cc1, 0x80000580, 0x1c01f000, 0x4d300000, - 0x4d180000, 0x4d3c0000, 0x05fdfccf, 0x4df00000, - 0x643da8e4, 0x643f78e4, 0x0501fa08, 0x417a3000, - 0x811808c8, 0x82040c00, 0x0000b037, 0x58066005, - 0x813261c0, 0x0500000b, 0x417a7800, 0x05f1f90f, - 0x05000007, 0x59300c07, 0x90040583, 0x05000003, - 0x90040586, 0x05020002, 0x600a7800, 0x050dfcad, - 0x811a3000, 0x91180485, 0x05fc17ee, 0x61000800, - 0x05d9f888, 0x642b78e4, 0x6429a8e4, 0x5c03e000, - 0x05fc0c9d, 0x5c027800, 0x5c023000, 0x5c026000, - 0x1c01f000, 0x4803c856, 0x4d300000, 0x05fdfcaa, - 0x4df00000, 0x59c80840, 0x84040d74, 0x90040550, + 0x5c032000, 0x5c025800, 0x5c026000, 0x642378e4, + 0x05fdf6f7, 0x84000510, 0x48026004, 0x05fdf7f5, + 0x42007000, 0x00020d9f, 0x58380000, 0x90000580, + 0x0500000d, 0x58d80805, 0x8c040500, 0x0500000a, + 0x83180400, 0x00020bf0, 0x50006000, 0x58380001, + 0x80300580, 0x05000005, 0x4803c856, 0x05d1fc5c, + 0x4979b005, 0x1c01f000, 0x5830000f, 0x4803c857, + 0x6404620e, 0x4978600f, 0x49787002, 0x1c01f000, + 0x4d2c0000, 0x4d300000, 0x59bc00ea, 0x8c000510, + 0x05fc07fe, 0x59be60e0, 0x813261c0, 0x05cc0f98, + 0x59300004, 0x8c000520, 0x05000014, 0x82000500, + 0xfffefeff, 0x48026004, 0x59301407, 0x90080583, + 0x05ce0f8f, 0x0201f800, 0x0010f0f2, 0x80c40040, + 0x05ce0f8b, 0x59325809, 0x60040800, 0x600a8000, + 0x05f1fe82, 0x0001fb5b, 0x0005fc5a, 0x5c026000, + 0x5c025800, 0x1c01f000, 0x84000510, 0x48026004, + 0x05fdf7fb, 0x4d300000, 0x4d900000, 0x4dd00000, + 0x4da40000, 0x4d140000, 0x4cd80000, 0x0501fc1d, + 0x59bc00ea, 0x8c000510, 0x05fc07fe, 0x59be60e0, + 0x59300004, 0x8c000520, 0x0500000e, 0x82000500, + 0xfffefeff, 0x48026004, 0x05fdfebd, 0x05d5facd, + 0x5c01b000, 0x5c022800, 0x5c034800, 0x5c03a000, + 0x5c032000, 0x5c026000, 0x642378e4, 0x05fdf6a0, + 0x84000510, 0x48026004, 0x05fdf7f6, 0x4d300000, + 0x4d2c0000, 0x4d340000, 0x4da40000, 0x4cd00000, + 0x4d240000, 0x58d400ea, 0x8c000510, 0x05fc07fe, + 0x58d660e0, 0x813261c0, 0x05cc0f55, 0x59300004, + 0x8c000520, 0x0500001e, 0x82000500, 0xfffefeff, + 0x48026004, 0x5932680a, 0x42034800, 0x0010aefd, + 0x5932481d, 0x05011000, 0x4a03c840, 0x0010af04, + 0x644bc842, 0x05011000, 0x4a03c840, 0x0010af16, + 0x4a03c842, 0x000000ff, 0x05011000, 0x4a03c840, + 0x0010b015, 0x4a03c842, 0x000000ff, 0x0501fbf9, + 0x5c024800, 0x5c01a000, 0x5c034800, 0x5c026800, + 0x5c025800, 0x5c026000, 0x1c01f000, 0x84000510, + 0x48026004, 0x5c024800, 0x5c01a000, 0x5c034800, + 0x5c026800, 0x5c025800, 0x5c026000, 0x1c01f000, + 0x4d300000, 0x4d2c0000, 0x4d340000, 0x4cd00000, + 0x4d240000, 0x4d900000, 0x4dd00000, 0x4da40000, + 0x4d140000, 0x4cd80000, 0x0501fbc6, 0x59bc00ea, + 0x8c000510, 0x05fc07fe, 0x59be60e0, 0x813261c0, + 0x05cc0f1b, 0x59300004, 0x8c000520, 0x05000011, + 0x82000500, 0xfffefeff, 0x48026004, 0x5932481d, + 0x0505fa4e, 0x5c01b000, 0x5c022800, 0x5c034800, + 0x5c03a000, 0x5c032000, 0x5c024800, 0x5c01a000, + 0x5c026800, 0x5c025800, 0x5c026000, 0x1c01f000, + 0x84000510, 0x48026004, 0x5c01b000, 0x5c022800, + 0x5c034800, 0x5c03a000, 0x5c032000, 0x5c024800, + 0x5c01a000, 0x5c026800, 0x5c025800, 0x5c026000, + 0x1c01f000, 0x05cdfefa, 0x4d300000, 0x4d380000, + 0x42000000, 0x0010b337, 0x051dff4b, 0x05fdfe44, + 0x598e600b, 0x59c40004, 0x8c000506, 0x05000003, + 0x0501f8d6, 0x64238804, 0x813261c0, 0x05000004, + 0x0501fb8b, 0x60527000, 0x0005fc78, 0x6409a8e4, + 0x5c027000, 0x5c026000, 0x05fdf621, 0x4d180000, + 0x4d300000, 0x4d380000, 0x4d900000, 0x4dd00000, + 0x4da40000, 0x4d140000, 0x4cd80000, 0x05fdfe2c, + 0x417a3000, 0x59c40804, 0x83180400, 0x00106653, + 0x50000000, 0x80040500, 0x05000017, 0x42000000, + 0x0010b338, 0x051dff28, 0x0501fb76, 0x59926005, + 0x0501f85d, 0x83180400, 0x00106653, 0x50000000, + 0x48038804, 0x813261c0, 0x05000007, 0x59300004, + 0x8c00050c, 0x05020002, 0x640e6203, 0x612a7000, + 0x0005fc78, 0x59c40004, 0x82000500, 0x00f80000, + 0x05000004, 0x811a3000, 0x91180485, 0x05fc17e2, + 0x6421a8e4, 0x5c01b000, 0x5c022800, 0x5c034800, + 0x5c03a000, 0x5c032000, 0x5c027000, 0x5c026000, + 0x5c023000, 0x05fdf5ee, 0x4d2c0000, 0x4d340000, + 0x5932680a, 0x598c0800, 0x90040586, 0x05020004, + 0x918c1405, 0x918c1c04, 0x0501f00f, 0x90040584, + 0x05020004, 0x918c1403, 0x918c1c02, 0x0501f00a, + 0x90040581, 0x05020004, 0x918c1407, 0x918c1c06, + 0x0501f005, 0x90040582, 0x05020024, 0x918c1409, + 0x918c1c08, 0x41306800, 0x58340000, 0x80007d40, + 0x0500001e, 0x583c000a, 0x81340580, 0x05020006, + 0x403c6800, 0x583c0000, 0x80007d40, 0x05fe07fa, + 0x0501f016, 0x4933c857, 0x483fc857, 0x583c0000, + 0x48006800, 0x49307800, 0x443c1000, 0x500c0000, + 0x803c0580, 0x05020002, 0x44341800, 0x80000580, + 0x4803180b, 0x4803180d, 0x598c0000, 0x90000583, + 0x05000002, 0x64031800, 0x80000580, 0x5c026800, + 0x5c025800, 0x1c01f000, 0x90000541, 0x05fdf7fc, + 0x0501f805, 0x60018800, 0x05000002, 0x60058800, + 0x1c01f000, 0x491bc857, 0x59b400f6, 0x90000538, + 0x05fe07fe, 0x59c80840, 0x90040550, 0x48039040, + 0x59c41008, 0x4c040000, 0x4c080000, 0x82081500, + 0xffffff7f, 0x480b8808, 0x0501faa5, 0x05020006, + 0x0501faa9, 0x05000020, 0x48038804, 0x05d5f9fc, + 0x0501f03d, 0x64238803, 0x59c40003, 0x90000503, + 0x05fc07fe, 0x8c000502, 0x05020006, 0x0501fa9e, + 0x05000015, 0x48038804, 0x05d5f9f1, 0x0501f032, + 0x0501faa5, 0x05020007, 0x59c80040, 0x8400056a, + 0x48039040, 0x59c80040, 0x8c00052a, 0x05fe07fe, + 0x59c40005, 0x82000500, 0xc0000000, 0x05000006, + 0x59c400a3, 0x84000540, 0x480388a3, 0x4a038805, + 0xc0000000, 0x05d5f9af, 0x4a03a005, 0x30000000, + 0x59d00006, 0x4a03a005, 0x30000000, 0x6401b006, + 0x59d00005, 0x8c000504, 0x05fe07fe, 0x05fdfe81, + 0x6403a014, 0x600008ec, 0x83180540, 0x60000000, + 0x480008a1, 0x811800dc, 0x59c80840, 0x80040540, + 0x48039040, 0x82000540, 0x00003000, 0x48039040, + 0x59c80040, 0x82000500, 0x00003000, 0x05fe07fd, + 0x05d5f9b4, 0x83180400, 0x00106653, 0x50000000, + 0x48038804, 0x80000580, 0x4df00000, 0x05fdfa3e, + 0x5c03e000, 0x5c001000, 0x5c000800, 0x480b8808, + 0x48079040, 0x1c01f000, 0x4803c856, 0x59b400f6, + 0x90000538, 0x05fe07fe, 0x59c80840, 0x90040550, 0x48039040, 0x59c41008, 0x4c040000, 0x4c080000, - 0x82081500, 0xffffff7f, 0x480b8808, 0x600c1000, - 0x0501f9d3, 0x598e600b, 0x813261c0, 0x05fe0fa9, - 0x050009d6, 0x4a01a8e5, 0x00000800, 0x0501f809, - 0x5c001000, 0x5c000800, 0x480b8808, 0x48079040, - 0x5c03e000, 0x05fc0c7c, 0x5c026000, 0x1c01f000, - 0x4d380000, 0x4d180000, 0x4d300000, 0x4d900000, - 0x4dd00000, 0x4da40000, 0x4d140000, 0x4cd80000, - 0x417a3000, 0x05fdf952, 0x811a3000, 0x91180585, - 0x05fe07fd, 0x0501f9ac, 0x0502000a, 0x5c01b000, + 0x82081500, 0xffffff7f, 0x480b8808, 0x59c40004, + 0x90000503, 0x0502000e, 0x59c40004, 0x9000050c, + 0x05000004, 0x64338804, 0x8c000504, 0x0501f022, + 0x59c80040, 0x8400056e, 0x48039040, 0x59c80040, + 0x8c00052e, 0x05fe07fe, 0x0501f01b, 0x64238803, + 0x59c40003, 0x90000503, 0x05fc07fe, 0x8c000502, + 0x05020005, 0x59c40004, 0x64338804, 0x8c000504, + 0x0501f011, 0x59c80040, 0x8400056a, 0x48039040, + 0x59c80040, 0x8c00052a, 0x05fe07fe, 0x59c40005, + 0x82000500, 0xc0000000, 0x05000007, 0x59c400a3, + 0x84000540, 0x480388a3, 0x4a038805, 0xc0000000, + 0x80000580, 0x4a01a8e5, 0x00000800, 0x5c001000, + 0x5c000800, 0x480b8808, 0x48079040, 0x1c01f000, + 0x0501f805, 0x60058800, 0x05000002, 0x60018800, + 0x1c01f000, 0x5c000000, 0x4c000000, 0x4803c857, + 0x491bc857, 0x4933c857, 0x4d900000, 0x4dd00000, + 0x4da40000, 0x4d140000, 0x4cd80000, 0x05fdfd1c, + 0x4df00000, 0x0501fa6f, 0x59900005, 0x800001c0, + 0x05000012, 0x81300580, 0x05020010, 0x59300004, + 0x84000520, 0x48026004, 0x05fdff4f, 0x0502000a, + 0x5c03e000, 0x05fc0cfa, 0x80000580, 0x5c01b000, 0x5c022800, 0x5c034800, 0x5c03a000, 0x5c032000, - 0x5c026000, 0x5c023000, 0x5c027000, 0x1c01f000, - 0x0501f9ca, 0x59926005, 0x4933c857, 0x05fdfeb0, - 0x813261c0, 0x05fc07f2, 0x612a7000, 0x640e6203, - 0x0005fc78, 0x05fdf7ee, 0x4d300000, 0x4d180000, - 0x4d900000, 0x05fdfc68, 0x60001000, 0x598c0800, - 0x90040585, 0x0500099a, 0x417a3000, 0x811b20c8, - 0x83932400, 0x0000b037, 0x59900002, 0x90000581, - 0x0502000a, 0x60100800, 0x59926005, 0x59300013, - 0x82000500, 0xfff00000, 0x80000540, 0x05000002, - 0x60380800, 0x05fdf900, 0x811a3000, 0x91180485, - 0x05fc17ef, 0x59c81040, 0x84081534, 0x480b9040, - 0x05fdfc39, 0x5c032000, 0x5c023000, 0x5c026000, - 0x1c01f000, 0x4933c857, 0x4d900000, 0x4dd00000, - 0x4da40000, 0x4d140000, 0x4cd80000, 0x4d380000, - 0x05fdfc41, 0x4df00000, 0x59300004, 0x8c00053e, - 0x05020006, 0x8c000520, 0x0500001e, 0x05fdfb54, - 0x0500001c, 0x0501f025, 0x598c000b, 0x81300580, - 0x0500000e, 0x050dfd2f, 0x05020020, 0x0501f928, - 0x0500001e, 0x48038804, 0x0501f984, 0x05d5fa3c, - 0x05fdfb65, 0x61267000, 0x59300004, 0x8c00050c, - 0x0502000b, 0x0501f00b, 0x59c40004, 0x8c000504, - 0x05000012, 0x64138804, 0x05fdfb78, 0x604e7000, - 0x59300004, 0x8c00050c, 0x05000002, 0x0005fc78, - 0x5c03e000, 0x05fc0c08, 0x5c027000, 0x5c01b000, + 0x1c01f000, 0x05fdfc3e, 0x61267000, 0x59300004, + 0x84000520, 0x48026004, 0x8c00050c, 0x00060c78, + 0x5c03e000, 0x05fc0cea, 0x90000541, 0x5c01b000, 0x5c022800, 0x5c034800, 0x5c03a000, 0x5c032000, - 0x80000580, 0x1c01f000, 0x5c03e000, 0x05fc0bfe, + 0x1c01f000, 0x0501f805, 0x60058800, 0x05000002, + 0x60018800, 0x1c01f000, 0x4933c857, 0x05fdfcf0, + 0x4df00000, 0x598c000b, 0x80026540, 0x0500000f, + 0x59300004, 0x84000520, 0x48026004, 0x05fdff7f, + 0x05000011, 0x05fdfc3b, 0x604e7000, 0x59300004, + 0x8c00050c, 0x00060c78, 0x5c03e000, 0x05fc0ccc, + 0x90000541, 0x1c01f000, 0x916c1581, 0x05fc07fb, + 0x916c1584, 0x05fc07f9, 0x42001000, 0x00103e29, + 0x05fdf880, 0x5c03e000, 0x05fc0cc1, 0x80000580, + 0x1c01f000, 0x4d300000, 0x4d180000, 0x4d3c0000, + 0x05fdfccf, 0x4df00000, 0x643da8e4, 0x643f78e4, + 0x0501fa08, 0x417a3000, 0x811808c8, 0x82040c00, + 0x0000b037, 0x58066005, 0x813261c0, 0x0500000b, + 0x417a7800, 0x05f1f827, 0x05000007, 0x59300c07, + 0x90040583, 0x05000003, 0x90040586, 0x05020002, + 0x600a7800, 0x050dfcc9, 0x811a3000, 0x91180485, + 0x05fc17ee, 0x61000800, 0x05d5fec4, 0x642b78e4, + 0x6429a8e4, 0x5c03e000, 0x05fc0c9d, 0x5c027800, + 0x5c023000, 0x5c026000, 0x1c01f000, 0x4803c856, + 0x4d300000, 0x05fdfcaa, 0x4df00000, 0x59c80840, + 0x84040d74, 0x90040550, 0x48039040, 0x59c41008, + 0x4c040000, 0x4c080000, 0x82081500, 0xffffff7f, + 0x480b8808, 0x600c1000, 0x0501f9d3, 0x598e600b, + 0x813261c0, 0x05fe0fa9, 0x050009d6, 0x4a01a8e5, + 0x00000800, 0x0501f809, 0x5c001000, 0x5c000800, + 0x480b8808, 0x48079040, 0x5c03e000, 0x05fc0c7c, + 0x5c026000, 0x1c01f000, 0x4d380000, 0x4d180000, + 0x4d300000, 0x4d900000, 0x4dd00000, 0x4da40000, + 0x4d140000, 0x4cd80000, 0x417a3000, 0x05fdf952, + 0x811a3000, 0x91180585, 0x05fe07fd, 0x0501f9ac, + 0x0502000a, 0x5c01b000, 0x5c022800, 0x5c034800, + 0x5c03a000, 0x5c032000, 0x5c026000, 0x5c023000, + 0x5c027000, 0x1c01f000, 0x0501f9ca, 0x59926005, + 0x4933c857, 0x05fdfeb0, 0x813261c0, 0x05fc07f2, + 0x612a7000, 0x640e6203, 0x0005fc78, 0x05fdf7ee, + 0x4d300000, 0x4d180000, 0x4d900000, 0x05fdfc68, + 0x60001000, 0x598c0800, 0x90040585, 0x0500099a, + 0x417a3000, 0x811b20c8, 0x83932400, 0x0000b037, + 0x59900002, 0x90000581, 0x0502000a, 0x60100800, + 0x59926005, 0x59300013, 0x82000500, 0xfff00000, + 0x80000540, 0x05000002, 0x60380800, 0x05fdf900, + 0x811a3000, 0x91180485, 0x05fc17ef, 0x59c81040, + 0x84081534, 0x480b9040, 0x05fdfc39, 0x5c032000, + 0x5c023000, 0x5c026000, 0x1c01f000, 0x4933c857, + 0x4d900000, 0x4dd00000, 0x4da40000, 0x4d140000, + 0x4cd80000, 0x4d380000, 0x05fdfc41, 0x4df00000, + 0x59300004, 0x8c00053e, 0x05020006, 0x8c000520, + 0x0500001e, 0x05fdfb54, 0x0500001c, 0x0501f025, + 0x598c000b, 0x81300580, 0x0500000e, 0x050dfd4b, + 0x05020020, 0x0501f928, 0x0500001e, 0x48038804, + 0x0501f984, 0x05d5f87a, 0x05fdfb65, 0x61267000, + 0x59300004, 0x8c00050c, 0x0502000b, 0x0501f00b, + 0x59c40004, 0x8c000504, 0x05000012, 0x64138804, + 0x05fdfb78, 0x604e7000, 0x59300004, 0x8c00050c, + 0x05000002, 0x0005fc78, 0x5c03e000, 0x05fc0c08, 0x5c027000, 0x5c01b000, 0x5c022800, 0x5c034800, - 0x5c03a000, 0x5c032000, 0x90000541, 0x1c01f000, - 0x59300407, 0x90000583, 0x05020007, 0x050dff9b, - 0x05000005, 0x59301009, 0x58080409, 0x84000550, - 0x48001409, 0x1c01f000, 0x4a01a8e5, 0x00000800, - 0x05fdfbfd, 0x59c400af, 0x800001c0, 0x05020003, - 0x05fdfbe5, 0x05d9f1db, 0x598c000d, 0x90001482, - 0x05021006, 0x80000000, 0x4803180d, 0x80000580, - 0x05fdf896, 0x0500000e, 0x05fdfefe, 0x0502000c, - 0x05fdffe4, 0x42000000, 0x0010b06f, 0x051dfc02, - 0x05fdfde8, 0x05000006, 0x0501f937, 0x4d380000, - 0x60527000, 0x0005fc78, 0x5c027000, 0x05fdfbce, - 0x05d9f1c4, 0x4d900000, 0x4dd00000, 0x4da40000, - 0x4d140000, 0x4cd80000, 0x4d300000, 0x05fdf8a8, - 0x05fdfbd9, 0x59c400af, 0x800001c0, 0x05000022, - 0x0501f92a, 0x59926005, 0x4933c857, 0x59300004, - 0x8c000516, 0x05000009, 0x05fdfea9, 0x0502001a, - 0x05fdfb05, 0x05fdfbb8, 0x42000800, 0x80000804, - 0x0005fb20, 0x0501f014, 0x60c018ea, 0x0501f8e9, - 0x05020003, 0x05fdf86f, 0x0501f00f, 0x05fdfe9c, - 0x0502000d, 0x05fdffb7, 0x42000000, 0x0010b070, - 0x051dfbd5, 0x59300004, 0x8c00050c, 0x05020002, - 0x640e6203, 0x4d380000, 0x612a7000, 0x0005fc78, - 0x5c027000, 0x05fdfba0, 0x5c026000, 0x5c01b000, + 0x5c03a000, 0x5c032000, 0x80000580, 0x1c01f000, + 0x5c03e000, 0x05fc0bfe, 0x5c027000, 0x5c01b000, 0x5c022800, 0x5c034800, 0x5c03a000, 0x5c032000, - 0x05d9f190, 0x4c600000, 0x4d900000, 0x4dd00000, - 0x4da40000, 0x4d140000, 0x4cd80000, 0x4d300000, - 0x4d2c0000, 0x05fdfba4, 0x0501f8f8, 0x59926005, - 0x813261c0, 0x05000040, 0x05f1fe4f, 0x05020005, - 0x4178c000, 0x0505f8d4, 0x05000002, 0x6004c000, - 0x05f1fe49, 0x05020005, 0x8060c1c0, 0x05000003, - 0x0505f8f4, 0x0501f034, 0x05fdf852, 0x05020032, - 0x4933c857, 0x0501f892, 0x05020015, 0x05fdf85c, - 0x813261c0, 0x0500002c, 0x59325809, 0x812e59c0, - 0x05cc0dfb, 0x05f1fe38, 0x0502001c, 0x59c40093, - 0x4803c857, 0x800001c0, 0x05020009, 0x592c0209, - 0x84000550, 0x48025a09, 0x05f1ff2e, 0x0502001e, - 0x592c0209, 0x84000510, 0x48025a09, 0x05fdf825, - 0x0501f019, 0x42000000, 0x0010b070, 0x051dfb8e, - 0x05fdfdb3, 0x592c0209, 0x84000550, 0x48025a09, - 0x4d380000, 0x612a7000, 0x640e6203, 0x0005fc78, - 0x5c027000, 0x0501f00c, 0x59901007, 0x800811c0, - 0x05fe07f1, 0x59c408af, 0x82040480, 0x000003e8, - 0x05fe17ed, 0x80081000, 0x480b2007, 0x05fdf80d, - 0x05edf919, 0x5c025800, 0x5c026000, 0x5c01b000, - 0x5c022800, 0x5c034800, 0x5c03a000, 0x5c032000, - 0x5c00c000, 0x05fdf344, 0x4d300000, 0x4d2c0000, - 0x05fdfb55, 0x598e600b, 0x4933c857, 0x813261c0, - 0x0500003e, 0x59c41004, 0x480bc857, 0x8c080500, - 0x05000007, 0x05f1fdfc, 0x05020012, 0x05f1fef9, - 0x05020036, 0x05f9ffed, 0x0501f034, 0x82080500, - 0x000001fe, 0x05fe07fc, 0x59c8010b, 0x4803c857, - 0x8c000500, 0x05fc07f8, 0x42000000, 0x0010b0b9, - 0x051dfb55, 0x05fdfe4b, 0x05000878, 0x0501f027, - 0x598c000d, 0x80000540, 0x0502000e, 0x59c408af, - 0x82040480, 0x000003e8, 0x0502100a, 0x598c080d, - 0x80040800, 0x4807180d, 0x05f9ffd4, 0x42000000, - 0x0010afae, 0x051dfb44, 0x05edf8e3, 0x0501f017, - 0x42000000, 0x0010b06f, 0x051dfb3f, 0x05fdfdbd, - 0x813261c0, 0x05020003, 0x0501f860, 0x0501f00f, - 0x59300407, 0x90000583, 0x05020007, 0x59325809, - 0x812e59c0, 0x05000004, 0x592c0209, 0x84000550, - 0x48025a09, 0x0501f868, 0x4d380000, 0x60527000, - 0x0005fc78, 0x5c027000, 0x5c025800, 0x5c026000, - 0x05fdf2fd, 0x59c40804, 0x83180400, 0x00106487, + 0x90000541, 0x1c01f000, 0x59300407, 0x90000583, + 0x05020007, 0x050dffba, 0x05000005, 0x59301009, + 0x58080409, 0x84000550, 0x48001409, 0x1c01f000, + 0x4a01a8e5, 0x00000800, 0x05fdfbfd, 0x59c400af, + 0x800001c0, 0x05020003, 0x05fdfbe5, 0x05d9f017, + 0x598c000d, 0x90001482, 0x05021006, 0x80000000, + 0x4803180d, 0x80000580, 0x05fdf896, 0x0500000e, + 0x05fdfefe, 0x0502000c, 0x05fdffe4, 0x42000000, + 0x0010b2ef, 0x051dfcf0, 0x05fdfde8, 0x05000006, + 0x0501f937, 0x4d380000, 0x60527000, 0x0005fc78, + 0x5c027000, 0x05fdfbce, 0x05d9f000, 0x4d900000, + 0x4dd00000, 0x4da40000, 0x4d140000, 0x4cd80000, + 0x4d300000, 0x05fdf8a8, 0x05fdfbd9, 0x59c400af, + 0x800001c0, 0x05000022, 0x0501f92a, 0x59926005, + 0x4933c857, 0x59300004, 0x8c000516, 0x05000009, + 0x05fdfea9, 0x0502001a, 0x05fdfb05, 0x05fdfbb8, + 0x42000800, 0x80000804, 0x0005fb20, 0x0501f014, + 0x60c018ea, 0x0501f8e9, 0x05020003, 0x05fdf86f, + 0x0501f00f, 0x05fdfe9c, 0x0502000d, 0x05fdffb7, + 0x42000000, 0x0010b2f0, 0x051dfcc3, 0x59300004, + 0x8c00050c, 0x05020002, 0x640e6203, 0x4d380000, + 0x612a7000, 0x0005fc78, 0x5c027000, 0x05fdfba0, + 0x5c026000, 0x5c01b000, 0x5c022800, 0x5c034800, + 0x5c03a000, 0x5c032000, 0x05d5f7cc, 0x4c600000, + 0x4d900000, 0x4dd00000, 0x4da40000, 0x4d140000, + 0x4cd80000, 0x4d300000, 0x4d2c0000, 0x05fdfba4, + 0x0501f8f8, 0x59926005, 0x813261c0, 0x05000040, + 0x05f1fd92, 0x05020005, 0x4178c000, 0x0505f8c6, + 0x05000002, 0x6004c000, 0x05f1fd8c, 0x05020005, + 0x8060c1c0, 0x05000003, 0x0505f8e6, 0x0501f034, + 0x05fdf852, 0x05020032, 0x4933c857, 0x0501f892, + 0x05020015, 0x05fdf85c, 0x813261c0, 0x0500002c, + 0x59325809, 0x812e59c0, 0x05cc0c39, 0x05f1fd7b, + 0x0502001c, 0x59c40093, 0x4803c857, 0x800001c0, + 0x05020009, 0x592c0209, 0x84000550, 0x48025a09, + 0x05f1fe71, 0x0502001e, 0x592c0209, 0x84000510, + 0x48025a09, 0x05fdf825, 0x0501f019, 0x42000000, + 0x0010b2f0, 0x051dfc7c, 0x05fdfdb3, 0x592c0209, + 0x84000550, 0x48025a09, 0x4d380000, 0x612a7000, + 0x640e6203, 0x0005fc78, 0x5c027000, 0x0501f00c, + 0x59901007, 0x800811c0, 0x05fe07f1, 0x59c408af, + 0x82040480, 0x000003e8, 0x05fe17ed, 0x80081000, + 0x480b2007, 0x05fdf80d, 0x05edf82a, 0x5c025800, + 0x5c026000, 0x5c01b000, 0x5c022800, 0x5c034800, + 0x5c03a000, 0x5c032000, 0x5c00c000, 0x05fdf344, + 0x4d300000, 0x4d2c0000, 0x05fdfb55, 0x598e600b, + 0x4933c857, 0x813261c0, 0x0500003e, 0x59c41004, + 0x480bc857, 0x8c080500, 0x05000007, 0x05f1fd3f, + 0x05020012, 0x05f1fe3c, 0x05020036, 0x05f9ffed, + 0x0501f034, 0x82080500, 0x000001fe, 0x05fe07fc, + 0x59c8010b, 0x4803c857, 0x8c000500, 0x05fc07f8, + 0x42000000, 0x0010b339, 0x051dfc43, 0x05fdfe4b, + 0x05000878, 0x0501f027, 0x598c000d, 0x80000540, + 0x0502000e, 0x59c408af, 0x82040480, 0x000003e8, + 0x0502100a, 0x598c080d, 0x80040800, 0x4807180d, + 0x05f9ffd4, 0x42000000, 0x0010b22e, 0x051dfc32, + 0x05e9fff4, 0x0501f017, 0x42000000, 0x0010b2ef, + 0x051dfc2d, 0x05fdfdbd, 0x813261c0, 0x05020003, + 0x0501f860, 0x0501f00f, 0x59300407, 0x90000583, + 0x05020007, 0x59325809, 0x812e59c0, 0x05000004, + 0x592c0209, 0x84000550, 0x48025a09, 0x0501f868, + 0x4d380000, 0x60527000, 0x0005fc78, 0x5c027000, + 0x5c025800, 0x5c026000, 0x05fdf2fd, 0x59c40804, + 0x83180400, 0x00106649, 0x50000000, 0x80040500, + 0x1c01f000, 0x59c40804, 0x83180400, 0x0010664e, 0x50000000, 0x80040500, 0x1c01f000, 0x59c40804, - 0x83180400, 0x0010648c, 0x50000000, 0x80040500, - 0x1c01f000, 0x59c40804, 0x83180400, 0x00106496, - 0x50000000, 0x80040500, 0x1c01f000, 0x59c80840, - 0x82040d00, 0x000e0000, 0x83180400, 0x0010649b, - 0x50000000, 0x80040580, 0x1c01f000, 0x00000210, - 0x00000420, 0x00000840, 0x00001080, 0x00002100, - 0x00004000, 0x00008000, 0x00010000, 0x00020000, - 0x00040000, 0x00080000, 0x00100000, 0x00200000, - 0x00400000, 0x00800000, 0x00084000, 0x00108000, - 0x00210000, 0x00420000, 0x00840000, 0x00000000, - 0x00020000, 0x00040000, 0x00060000, 0x00080000, - 0x59900007, 0x800c0c80, 0x05021003, 0x90000541, - 0x0501f004, 0x80000000, 0x48032007, 0x80000580, - 0x1c01f000, 0x417a3000, 0x05fdffd5, 0x05000005, - 0x811a3000, 0x91180585, 0x05fe07fc, 0x1c01f000, - 0x81780080, 0x1c01f000, 0x40681000, 0x480bc857, - 0x05fdfac9, 0x4df00000, 0x480b1800, 0x5c03e000, - 0x05fc0ab1, 0x1c01f000, 0x4803c856, 0x05fdfac2, - 0x4df00000, 0x497b180b, 0x497b1801, 0x497b180c, - 0x497b180d, 0x497b180e, 0x598c0000, 0x90000583, - 0x05000006, 0x916c0582, 0x05020003, 0x64171800, - 0x0501f002, 0x64031800, 0x5c03e000, 0x05fc0a9e, - 0x1c01f000, 0x59300004, 0x8c00050c, 0x05020002, - 0x64066203, 0x1c01f000, 0x91180485, 0x05ce1d1c, - 0x491bc857, 0x811b20c8, 0x83932400, 0x0000b037, - 0x8119b0c8, 0x82d9b400, 0x0000bf32, 0x811ba0ca, - 0x83d3a400, 0x00007600, 0x83180400, 0x001064e5, - 0x50034800, 0x811a28c2, 0x83162c00, 0x00006100, - 0x1c01f000, 0x0010ae94, 0x0010aeab, 0x0010aec2, - 0x0010aed9, 0x0010aef0, 0x4933c857, 0x59300407, - 0x90000c92, 0x05021015, 0x05011000, 0x0c01f001, - 0x00106502, 0x00106592, 0x001068dc, 0x0010693c, - 0x00106592, 0x001068dc, 0x0010693c, 0x00106502, - 0x00106592, 0x00106502, 0x00106502, 0x00106502, - 0x00106502, 0x00106502, 0x00106502, 0x00106502, - 0x00106506, 0x00106506, 0x4803c857, 0x05fdfa7a, - 0x05fdf9ce, 0x05fdf264, 0x42001000, 0x0010af8e, - 0x50081000, 0x4930100b, 0x58080002, 0x82000580, - 0x00000100, 0x05020037, 0x59325809, 0x812e59c0, - 0x05cc0cdf, 0x492fc856, 0x5932680a, 0x813669c0, - 0x0500001e, 0x592c040c, 0x82000500, 0x0000e000, - 0x05000003, 0x0501fbbc, 0x0501f002, 0x0501fbac, - 0x592c000e, 0x90000503, 0x05000006, 0x90000583, - 0x80000000, 0x58d00802, 0x80040540, 0x4801a002, - 0x42001000, 0x0010af8e, 0x50081000, 0x4930100a, - 0x492c1009, 0x90d00406, 0x48001003, 0x592c000e, - 0x48001005, 0x592c000f, 0x48001006, 0x592c0010, - 0x48001007, 0x0001f01c, 0x42026800, 0x0010cc0f, - 0x592c080b, 0x48066802, 0x82040500, 0x00ffff00, - 0x05000007, 0x497a6a12, 0x59a8100f, 0x82081500, - 0x00ffff00, 0x80080580, 0x05fe07d7, 0x82040d00, - 0x000000ff, 0x800408d0, 0x48066a12, 0x05fdf7d2, - 0x1c01f000, 0x4d2c0000, 0x4d300000, 0x4c580000, - 0x4c540000, 0x4c500000, 0x58325809, 0x812e59c0, - 0x05cc0ca3, 0x58300002, 0x82000580, 0x00000100, - 0x0502001e, 0x5830000a, 0x5832600b, 0x81300d80, - 0x0502000e, 0x0501f82c, 0x05020012, 0x592c080e, - 0x90040c03, 0x80040904, 0x4004b000, 0x4200a000, - 0x0010ac84, 0x4050a800, 0x051dfb3d, 0x600011b8, - 0x0501fe64, 0x0501f007, 0x4803c857, 0x4933c857, - 0x813261c0, 0x05000003, 0x0501f81b, 0x05fc0f9f, - 0x5c00a000, 0x5c00a800, 0x5c00b000, 0x5c026000, - 0x5c025800, 0x1c01f000, 0x5830000a, 0x5832600b, - 0x4a006002, 0x00000100, 0x4803c857, 0x4933c857, - 0x81300d80, 0x05fe07ed, 0x0501f80b, 0x05fe07f1, - 0x4803c857, 0x0201f800, 0x0010eee3, 0x80c40040, - 0x05ce0c73, 0x640a5a07, 0x0001fb5b, 0x0501ff94, - 0x05fdf7e8, 0x05fdf9fc, 0x4df00000, 0x598c000b, - 0x81300580, 0x05020008, 0x598c0003, 0x81300580, - 0x05020005, 0x5c03e000, 0x05fc09df, 0x80000580, - 0x1c01f000, 0x4803c857, 0x5c03e000, 0x05fc09da, - 0x90000541, 0x1c01f000, 0x59300403, 0xb0000c98, - 0x05ce1c5b, 0x4803c857, 0x0c01f001, 0x001066df, - 0x001066f8, 0x0010671b, 0x0010684d, 0x00106807, - 0x0010680b, 0x00106817, 0x00106827, 0x0010681d, - 0x00106827, 0x0010686e, 0x00106827, 0x001068a9, - 0x00106827, 0x001068b4, 0x00106827, 0x0010681d, - 0x00106827, 0x001068b8, 0x001065f7, 0x001065f7, - 0x001065f7, 0x001065f7, 0x001065f7, 0x001065f7, - 0x001065f7, 0x001065f7, 0x001065f7, 0x001065f7, - 0x001065f7, 0x00106955, 0x0010696a, 0x00106972, - 0x001065f7, 0x00106989, 0x00106817, 0x001065f7, - 0x00106817, 0x00106827, 0x001065f7, 0x0010671b, - 0x0010684d, 0x001065f7, 0x001069d1, 0x00106827, - 0x001065f7, 0x001069df, 0x00106827, 0x001065f7, - 0x0010681d, 0x001066d2, 0x001065f8, 0x001065f7, - 0x001069f4, 0x00106a26, 0x00106a9e, 0x001065f7, - 0x00106aac, 0x00106815, 0x00106aa1, 0x001065f7, - 0x00106993, 0x00106ae1, 0x001065f7, 0x001065f7, - 0x001065f7, 0x001065f7, 0x0010660b, 0x0010666c, - 0x00106676, 0x001065f7, 0x001065f7, 0x001065f7, - 0x001066a8, 0x001066b0, 0x001065f7, 0x001065f7, - 0x0010661c, 0x00106646, 0x00106b11, 0x00106b46, - 0x00106b67, 0x001065f7, 0x001065f7, 0x001065f7, - 0x00106b3c, 0x00106ac3, 0x001069f4, 0x001065f7, - 0x001065f7, 0x001065f7, 0x001065f7, 0x001065f7, - 0x001065f7, 0x001065f7, 0x001065f7, 0x05cdfbf8, - 0x0501facf, 0x59325809, 0x592c000a, 0x4801a006, - 0x592c000b, 0x4801a007, 0x592c000c, 0x4801a008, - 0x592c000d, 0x4801a009, 0x592c000e, 0x4801a00a, - 0x4979a00b, 0x592c080a, 0x82040d00, 0x00000fff, - 0x80040904, 0x600011b8, 0x0501f5ba, 0x4a026202, - 0x0000ffff, 0x0501faba, 0x4d2c0000, 0x4a01a006, - 0x05000000, 0x59325809, 0x592c000a, 0x4801a007, - 0x592c000b, 0x4801a008, 0x592c000c, 0x4801a009, - 0x5c025800, 0x60100800, 0x600011b8, 0x0501f5a9, - 0x4c580000, 0x4c500000, 0x4c540000, 0x4d2c0000, - 0x0501faa7, 0x5930040c, 0x90000503, 0x05000006, - 0x90000583, 0x80000000, 0x58d00802, 0x80040540, - 0x4801a002, 0x59325809, 0x4200a800, 0x0010ac84, - 0x592cb206, 0x9058b403, 0x8058b104, 0x912ca407, - 0x051dfa30, 0x40580000, 0x8054ac00, 0x592c0001, - 0x80000540, 0x05000003, 0x40025800, 0x05fdf7f5, - 0x4200a000, 0x0010ac84, 0x4050a800, 0x5930b40c, - 0x9058b403, 0x8058b104, 0x40580800, 0x051dfa5c, - 0x600011b8, 0x5c025800, 0x5c00a800, 0x5c00a000, - 0x5c00b000, 0x0501f57f, 0x4c580000, 0x4c500000, - 0x4c540000, 0x4d2c0000, 0x42034800, 0x0010ac7d, - 0x0501fa89, 0x59325809, 0x592c0802, 0x4807c857, - 0x40041000, 0x80040904, 0x90081503, 0x05000007, - 0x80040800, 0x90081583, 0x80081000, 0x58d00002, - 0x80080540, 0x4801a002, 0x4a025806, 0x02000000, - 0x90d0ac06, 0x592cb011, 0x912ca406, 0x051dfa01, - 0x40580000, 0x8054ac00, 0x592e5801, 0x41780000, - 0x812e5d40, 0x05fe07f8, 0x600011b8, 0x5c025800, - 0x5c00a800, 0x5c00a000, 0x5c00b000, 0x0501f559, - 0x0501fa5b, 0x4a01a006, 0x78000000, 0x5930001e, - 0x840001c0, 0x4801a407, 0x4979a207, 0x60080800, - 0x600011b8, 0x0501f54f, 0x4c580000, 0x4c540000, - 0x4c500000, 0x0501fa5c, 0x4a01a006, 0x02000000, - 0x5932481d, 0x59240001, 0x4801a008, 0x59240002, - 0x4801a009, 0x59240003, 0x4801a00a, 0x59240004, - 0x4801a00b, 0x5930001e, 0x82000d80, 0x0000e000, - 0x0500000e, 0x82000d80, 0x0000df00, 0x05000004, - 0x6441a407, 0x60180800, 0x0501f015, 0x42001800, - 0x0010ac60, 0x05cdfe86, 0x600001be, 0x4200a000, - 0x0010ac60, 0x0501f007, 0x42001800, 0x0010ac6d, - 0x05cdfe7f, 0x600001c0, 0x4200a000, 0x0010ac6d, - 0x90000550, 0x4801a407, 0x64d1a207, 0x6034b000, - 0x90d0ac0c, 0x051df9bf, 0x604c0800, 0x600011b8, - 0x5c00a000, 0x5c00a800, 0x5c00b000, 0x0501f51d, - 0x0501fa1f, 0x4a01a006, 0x63000028, 0x5930001e, - 0x4801a007, 0x60080800, 0x600011b8, 0x0501f515, - 0x0501fa25, 0x41780000, 0x41780800, 0x42002000, - 0x00080000, 0x0c01f80e, 0x80000000, 0x80040800, - 0x60301000, 0x82080540, 0x02000000, 0x4801a006, - 0x800408e0, 0x5930001e, 0x80040540, 0x4801a007, - 0x80080904, 0x600011b8, 0x0501f502, 0x001066c8, - 0x001066ca, 0x001066cc, 0x001066ce, 0x001066d0, - 0x4811a008, 0x1c01f000, 0x4811a009, 0x1c01f000, - 0x4811a00a, 0x1c01f000, 0x4811a00b, 0x1c01f000, - 0x4811a00c, 0x1c01f000, 0x4a02600a, 0x0010cc0f, - 0x59a8000f, 0x82000500, 0x000000ff, 0x800000d0, - 0x42026800, 0x0010cc0f, 0x48026a12, 0x0501fa51, - 0x41780800, 0x600010b8, 0x0501f4e6, 0x0501f9e8, - 0x4a01a006, 0x52000000, 0x4979a007, 0x5932481d, - 0x59240400, 0x90000503, 0x05000005, 0x59240400, - 0x80000110, 0x05d5ff3e, 0x4805a007, 0x59240001, - 0x4801a008, 0x59240002, 0x4801a009, 0x59240003, - 0x4801a00a, 0x59240004, 0x4801a00b, 0x59240005, - 0x4801a00c, 0x601c0800, 0x600011b8, 0x0501f4cd, - 0x4a026202, 0x0000ffff, 0x4d340000, 0x813669c0, - 0x05020011, 0x42026800, 0x0010cc0f, 0x4936600a, - 0x4a026c03, 0x0000ffff, 0x497a6a00, 0x5930002a, - 0x48026802, 0x497a602a, 0x497a6a12, 0x82000d00, - 0x00ffff00, 0x05020004, 0x800000d0, 0x48026a12, - 0x0501f001, 0x0501f9ba, 0x5c026800, 0x4a01a006, - 0x05000000, 0x5932481d, 0x59240005, 0x4801a007, - 0x59240001, 0x59240802, 0x4801a008, 0x4805a009, - 0x60100800, 0x600011b8, 0x0501f4aa, 0x4a026202, - 0x0000ffff, 0x0501f9aa, 0x4d3c0000, 0x417a7800, - 0x05edfcef, 0x5c027800, 0x4a01a006, 0x03000000, - 0x59340403, 0x82000580, 0x000007fe, 0x0502007f, - 0x4a01a006, 0x04000000, 0x81a40800, 0x4a000800, - 0x22fffffe, 0x5934000a, 0x84000500, 0x4802680a, - 0x59a8021b, 0x8c000508, 0x05000010, 0x59a8001f, - 0x4801a007, 0x59a80020, 0x82000500, 0x07deffff, - 0x599c0818, 0x8c040516, 0x05000002, 0x8400056a, - 0x4801a008, 0x4a01a009, 0x00002710, 0x59a80022, - 0x4801a00a, 0x0501f03a, 0x59a8001f, 0x59a8121b, - 0x8c080506, 0x05000003, 0x82000500, 0xffff0000, - 0x4801a007, 0x05f1fae4, 0x0502000b, 0x59300c03, - 0xb0041591, 0x05000008, 0x497b8880, 0x82000500, - 0x0000ffff, 0x4c000000, 0x05d5ff00, 0x5c000000, - 0x48038880, 0x59a80020, 0x05f1fad7, 0x05020006, - 0x82000500, 0xb7ffffff, 0x82000540, 0x80000000, - 0x0501f003, 0x82000500, 0x3fffffff, 0x599c0818, - 0x8c040516, 0x05000002, 0x8400056a, 0x8d0c0510, - 0x05000014, 0x59300c03, 0xb0041591, 0x05000011, - 0x900415b1, 0x0500000f, 0x4c580000, 0x4c500000, - 0x4c540000, 0x6010b000, 0x4200a000, 0x0010b10b, - 0x90d0ac1f, 0x4c000000, 0x051df8ee, 0x5c000000, - 0x5c00a800, 0x5c00a000, 0x5c00b000, 0x8400057a, - 0x4801a008, 0x4979a009, 0x4979a00a, 0x59240001, - 0x59240802, 0x4801a00b, 0x4805a00c, 0x59240003, - 0x59240804, 0x4801a00d, 0x4805a00e, 0x4979a00f, - 0x4979a010, 0x4979a011, 0x4979a012, 0x599c0018, - 0x8c000510, 0x05000011, 0x59a80006, 0x8c00050a, - 0x05000004, 0x59a8021b, 0x8c000508, 0x0502000b, - 0x59a80023, 0x84000576, 0x4801a013, 0x59a80024, - 0x4801a014, 0x59a80025, 0x4801a015, 0x59a80026, - 0x4801a016, 0x0501f005, 0x4979a013, 0x4979a014, - 0x4979a015, 0x4979a016, 0x59a80027, 0x84000576, - 0x4801a017, 0x59a80028, 0x4801a018, 0x4979a019, - 0x4979a01a, 0x0501f05f, 0x59a8021b, 0x8c000508, - 0x0500000c, 0x59a8001f, 0x82000500, 0x0000ffff, - 0x59c40880, 0x80040d80, 0x05000006, 0x497b8880, - 0x4c000000, 0x05d5fea1, 0x5c000000, 0x48038880, - 0x59a8001f, 0x4801a007, 0x4c640000, 0x4d2c0000, - 0x59a8c820, 0x050dfb59, 0x0500000d, 0x0511f9dd, - 0x0502000b, 0x592c0208, 0x8c00050e, 0x05000008, - 0x8264cd00, 0x0000ffff, 0x592c000a, 0x82000500, - 0xffff0000, 0x8064cd40, 0x0501f005, 0x59a80a1b, - 0x90040d30, 0x05000002, 0x8464cd36, 0x4865a008, - 0x5c025800, 0x5c00c800, 0x59a80021, 0x4801a009, - 0x59a80022, 0x4801a00a, 0x59240001, 0x59240802, + 0x83180400, 0x00106658, 0x50000000, 0x80040500, + 0x1c01f000, 0x59c80840, 0x82040d00, 0x000e0000, + 0x83180400, 0x0010665d, 0x50000000, 0x80040580, + 0x1c01f000, 0x00000210, 0x00000420, 0x00000840, + 0x00001080, 0x00002100, 0x00004000, 0x00008000, + 0x00010000, 0x00020000, 0x00040000, 0x00080000, + 0x00100000, 0x00200000, 0x00400000, 0x00800000, + 0x00084000, 0x00108000, 0x00210000, 0x00420000, + 0x00840000, 0x00000000, 0x00020000, 0x00040000, + 0x00060000, 0x00080000, 0x59900007, 0x800c0c80, + 0x05021003, 0x90000541, 0x0501f004, 0x80000000, + 0x48032007, 0x80000580, 0x1c01f000, 0x417a3000, + 0x05fdffd5, 0x05000005, 0x811a3000, 0x91180585, + 0x05fe07fc, 0x1c01f000, 0x81780080, 0x1c01f000, + 0x40681000, 0x480bc857, 0x05fdfac9, 0x4df00000, + 0x480b1800, 0x5c03e000, 0x05fc0ab1, 0x1c01f000, + 0x4803c856, 0x05fdfac2, 0x4df00000, 0x497b180b, + 0x497b1801, 0x497b180c, 0x497b180d, 0x497b180e, + 0x598c0000, 0x90000583, 0x05000006, 0x916c0582, + 0x05020003, 0x64171800, 0x0501f002, 0x64031800, + 0x5c03e000, 0x05fc0a9e, 0x1c01f000, 0x59300004, + 0x8c00050c, 0x05020002, 0x64066203, 0x1c01f000, + 0x91180485, 0x05ce1b5a, 0x491bc857, 0x811b20c8, + 0x83932400, 0x0000b037, 0x8119b0c8, 0x82d9b400, + 0x0000bf32, 0x811ba0ca, 0x83d3a400, 0x00007600, + 0x83180400, 0x001066a7, 0x50034800, 0x811a28c2, + 0x83162c00, 0x00006100, 0x1c01f000, 0x0010b114, + 0x0010b12b, 0x0010b142, 0x0010b159, 0x0010b170, + 0x4933c857, 0x59300407, 0x90000c92, 0x05021015, + 0x05011000, 0x0c01f001, 0x001066c4, 0x00106753, + 0x00106a90, 0x00106af0, 0x00106753, 0x00106a90, + 0x00106af0, 0x001066c4, 0x00106753, 0x001066c4, + 0x001066c4, 0x001066c4, 0x001066c4, 0x001066c4, + 0x001066c4, 0x001066c4, 0x001066c8, 0x001066c8, + 0x4803c857, 0x05fdfa7a, 0x05fdf9ce, 0x05fdf264, + 0x42001000, 0x0010b20e, 0x50081000, 0x4930100b, + 0x58080002, 0x82000580, 0x00000100, 0x05020036, + 0x59325809, 0x812e59c0, 0x05cc0b1d, 0x492fc856, + 0x5932680a, 0x83340580, 0x0010ce8f, 0x0500001e, + 0x592c040c, 0x82000500, 0x0000e000, 0x05000003, + 0x0501fbad, 0x0501f002, 0x0501fb9d, 0x592c000e, + 0x90000503, 0x05000006, 0x90000583, 0x80000000, + 0x58d00802, 0x80040540, 0x4801a002, 0x42001000, + 0x0010b20e, 0x50081000, 0x4930100a, 0x492c1009, + 0x90d00406, 0x48001003, 0x592c000e, 0x48001005, + 0x592c000f, 0x48001006, 0x592c0010, 0x48001007, + 0x0001f01c, 0x592c080b, 0x48066802, 0x82040500, + 0x00ffff00, 0x05000007, 0x497a6a12, 0x59a8100f, + 0x82081500, 0x00ffff00, 0x80080580, 0x05fe07d9, + 0x82040d00, 0x000000ff, 0x800408d0, 0x48066a12, + 0x05fdf7d4, 0x1c01f000, 0x4d2c0000, 0x4d300000, + 0x4c580000, 0x4c540000, 0x4c500000, 0x58325809, + 0x812e59c0, 0x05cc0ae2, 0x58300002, 0x82000580, + 0x00000100, 0x0502001e, 0x5830000a, 0x5832600b, + 0x81300d80, 0x0502000e, 0x0501f82c, 0x05020012, + 0x592c080e, 0x90040c03, 0x80040904, 0x4004b000, + 0x4200a000, 0x0010af04, 0x4050a800, 0x051dfc2c, + 0x600011b8, 0x0501fe57, 0x0501f007, 0x4803c857, + 0x4933c857, 0x813261c0, 0x05000003, 0x0501f81b, + 0x05fc0fa0, 0x5c00a000, 0x5c00a800, 0x5c00b000, + 0x5c026000, 0x5c025800, 0x1c01f000, 0x5830000a, + 0x5832600b, 0x4a006002, 0x00000100, 0x4803c857, + 0x4933c857, 0x81300d80, 0x05fe07ed, 0x0501f80b, + 0x05fe07f1, 0x4803c857, 0x0201f800, 0x0010f0f2, + 0x80c40040, 0x05ce0ab2, 0x640a5a07, 0x0001fb5b, + 0x0501ff87, 0x05fdf7e8, 0x05fdf9fd, 0x4df00000, + 0x598c000b, 0x81300580, 0x05020008, 0x598c0003, + 0x81300580, 0x05020005, 0x5c03e000, 0x05fc09e0, + 0x80000580, 0x1c01f000, 0x4803c857, 0x5c03e000, + 0x05fc09db, 0x90000541, 0x1c01f000, 0x59300403, + 0xb0000c98, 0x05ce1a9a, 0x83340d80, 0x0010ce8f, + 0x0502000a, 0x5930082a, 0x48066802, 0x82041500, + 0x00ffff00, 0x05020004, 0x800408d0, 0x48066a12, + 0x0501f002, 0x497a6a12, 0x4803c857, 0x0c01f001, + 0x001068ac, 0x001068c5, 0x001068d4, 0x001069f9, + 0x001069c6, 0x001069ca, 0x001069d6, 0x001069e6, + 0x001069dc, 0x001069e6, 0x00106a1e, 0x001069e6, + 0x00106a5d, 0x001069e6, 0x00106a68, 0x001069e6, + 0x001069dc, 0x001069e6, 0x00106a6c, 0x001067c4, + 0x001067c4, 0x001067c4, 0x001067c4, 0x001067c4, + 0x001067c4, 0x001067c4, 0x001067c4, 0x001067c4, + 0x001067c4, 0x001067c4, 0x00106b09, 0x00106b1e, + 0x00106b26, 0x001067c4, 0x00106b3d, 0x001069d6, + 0x001067c4, 0x001069d6, 0x001069e6, 0x001067c4, + 0x001068d4, 0x001069f9, 0x001067c4, 0x00106b85, + 0x001069e6, 0x001067c4, 0x00106b93, 0x001069e6, + 0x001067c4, 0x001069dc, 0x0010689f, 0x001067c5, + 0x001067c4, 0x00106ba8, 0x00106bda, 0x00106c52, + 0x001067c4, 0x00106c60, 0x001069d4, 0x00106c55, + 0x001067c4, 0x00106b47, 0x00106c95, 0x001067c4, + 0x001067c4, 0x001067c4, 0x001067c4, 0x001067d8, + 0x00106839, 0x00106843, 0x001067c4, 0x001067c4, + 0x001067c4, 0x00106875, 0x0010687d, 0x001067c4, + 0x001067c4, 0x001067e9, 0x00106813, 0x00106cc5, + 0x00106cfa, 0x00106d1b, 0x001067c4, 0x001067c4, + 0x001067c4, 0x00106cf0, 0x00106c77, 0x00106ba8, + 0x001067c4, 0x001067c4, 0x001067c4, 0x001067c4, + 0x001067c4, 0x001067c4, 0x001067c4, 0x001067c4, + 0x05cdfa2b, 0x0501fab6, 0x59325809, 0x592c000a, + 0x4801a006, 0x592c000b, 0x4801a007, 0x592c000c, + 0x4801a008, 0x592c000d, 0x4801a009, 0x592c000e, + 0x4801a00a, 0x4979a00b, 0x592c080a, 0x82040d00, + 0x00000fff, 0x80040904, 0x600011b8, 0x0501f5a1, + 0x4a026202, 0x0000ffff, 0x0501faa1, 0x4d2c0000, + 0x4a01a006, 0x05000000, 0x59325809, 0x592c000a, + 0x4801a007, 0x592c000b, 0x4801a008, 0x592c000c, + 0x4801a009, 0x5c025800, 0x60100800, 0x600011b8, + 0x0501f590, 0x4c580000, 0x4c500000, 0x4c540000, + 0x4d2c0000, 0x0501fa8e, 0x5930040c, 0x90000503, + 0x05000006, 0x90000583, 0x80000000, 0x58d00802, + 0x80040540, 0x4801a002, 0x59325809, 0x4200a800, + 0x0010af04, 0x592cb206, 0x9058b403, 0x8058b104, + 0x912ca407, 0x051dfb13, 0x40580000, 0x8054ac00, + 0x592c0001, 0x80000540, 0x05000003, 0x40025800, + 0x05fdf7f5, 0x4200a000, 0x0010af04, 0x4050a800, + 0x5930b40c, 0x9058b403, 0x8058b104, 0x40580800, + 0x051dfb3f, 0x600011b8, 0x5c025800, 0x5c00a800, + 0x5c00a000, 0x5c00b000, 0x0501f566, 0x4c580000, + 0x4c500000, 0x4c540000, 0x4d2c0000, 0x42034800, + 0x0010aefd, 0x0501fa70, 0x59325809, 0x592c0802, + 0x4807c857, 0x40041000, 0x80040904, 0x90081503, + 0x05000007, 0x80040800, 0x90081583, 0x80081000, + 0x58d00002, 0x80080540, 0x4801a002, 0x4a025806, + 0x02000000, 0x90d0ac06, 0x592cb011, 0x912ca406, + 0x051dfae4, 0x40580000, 0x8054ac00, 0x592e5801, + 0x41780000, 0x812e5d40, 0x05fe07f8, 0x600011b8, + 0x5c025800, 0x5c00a800, 0x5c00a000, 0x5c00b000, + 0x0501f540, 0x0501fa42, 0x4a01a006, 0x78000000, + 0x5930001e, 0x840001c0, 0x4801a407, 0x4979a207, + 0x60080800, 0x600011b8, 0x0501f536, 0x4c580000, + 0x4c540000, 0x4c500000, 0x0501fa43, 0x4a01a006, + 0x02000000, 0x5932481d, 0x59240001, 0x4801a008, + 0x59240002, 0x4801a009, 0x59240003, 0x4801a00a, + 0x59240004, 0x4801a00b, 0x5930001e, 0x82000d80, + 0x0000e000, 0x0500000e, 0x82000d80, 0x0000df00, + 0x05000004, 0x6441a407, 0x60180800, 0x0501f015, + 0x42001800, 0x0010aee0, 0x05cdfcb9, 0x600001be, + 0x4200a000, 0x0010aee0, 0x0501f007, 0x42001800, + 0x0010aeed, 0x05cdfcb2, 0x600001c0, 0x4200a000, + 0x0010aeed, 0x90000550, 0x4801a407, 0x64d1a207, + 0x6034b000, 0x90d0ac0c, 0x051dfaa2, 0x604c0800, + 0x600011b8, 0x5c00a000, 0x5c00a800, 0x5c00b000, + 0x0501f504, 0x0501fa06, 0x4a01a006, 0x63000028, + 0x5930001e, 0x4801a007, 0x60080800, 0x600011b8, + 0x0501f4fc, 0x0501fa0c, 0x41780000, 0x41780800, + 0x42002000, 0x00080000, 0x0c01f80e, 0x80000000, + 0x80040800, 0x60301000, 0x82080540, 0x02000000, + 0x4801a006, 0x800408e0, 0x5930001e, 0x80040540, + 0x4801a007, 0x80080904, 0x600011b8, 0x0501f4e9, + 0x00106895, 0x00106897, 0x00106899, 0x0010689b, + 0x0010689d, 0x4811a008, 0x1c01f000, 0x4811a009, + 0x1c01f000, 0x4811a00a, 0x1c01f000, 0x4811a00b, + 0x1c01f000, 0x4811a00c, 0x1c01f000, 0x4a02600a, + 0x0010ce8f, 0x59a8000f, 0x82000500, 0x000000ff, + 0x800000d0, 0x42026800, 0x0010ce8f, 0x48026a12, + 0x0501fa38, 0x41780800, 0x600010b8, 0x0501f4cd, + 0x0501f9cf, 0x4a01a006, 0x52000000, 0x4979a007, + 0x5932481d, 0x59240400, 0x90000503, 0x05000005, + 0x59240400, 0x80000110, 0x05d5fd6f, 0x4805a007, + 0x59240001, 0x4801a008, 0x59240002, 0x4801a009, + 0x59240003, 0x4801a00a, 0x59240004, 0x4801a00b, + 0x59240005, 0x4801a00c, 0x601c0800, 0x600011b8, + 0x0501f4b4, 0x4a026202, 0x0000ffff, 0x0501f9b4, + 0x4a01a006, 0x05000000, 0x5932481d, 0x59240005, + 0x4801a007, 0x59240001, 0x59240802, 0x4801a008, + 0x4805a009, 0x60100800, 0x600011b8, 0x0501f4a5, + 0x4a026202, 0x0000ffff, 0x0501f9a5, 0x4d3c0000, + 0x417a7800, 0x05edfc10, 0x5c027800, 0x4a01a006, + 0x03000000, 0x59340403, 0x82000580, 0x000007fe, + 0x05020085, 0x4a01a006, 0x04000000, 0x59a8021b, + 0x8c000506, 0x05000004, 0x5930081d, 0x58040408, + 0x4801a001, 0x81a40800, 0x4a000800, 0x22fffffe, + 0x5934000a, 0x84000500, 0x4802680a, 0x59a8021b, + 0x8c000508, 0x05000010, 0x59a8001f, 0x4801a007, + 0x59a80020, 0x82000500, 0x07deffff, 0x599c0818, + 0x8c040516, 0x05000002, 0x8400056a, 0x4801a008, + 0x4a01a009, 0x00002710, 0x59a80022, 0x4801a00a, + 0x0501f03a, 0x59a8001f, 0x59a8121b, 0x8c080506, + 0x05000003, 0x82000500, 0xffff0000, 0x4801a007, + 0x05f1fa2a, 0x0502000b, 0x59300c03, 0xb0041591, + 0x05000008, 0x497b8880, 0x82000500, 0x0000ffff, + 0x4c000000, 0x05d5fd42, 0x5c000000, 0x48038880, + 0x59a80020, 0x05f1fa1d, 0x05020006, 0x82000500, + 0xb7ffffff, 0x82000540, 0x80000000, 0x0501f003, + 0x82000500, 0x3fffffff, 0x599c0818, 0x8c040516, + 0x05000002, 0x8400056a, 0x8d0c0510, 0x05000014, + 0x59300c03, 0xb0041591, 0x05000011, 0x900415b1, + 0x0500000f, 0x4c580000, 0x4c500000, 0x4c540000, + 0x6010b000, 0x4200a000, 0x0010b38b, 0x90d0ac1f, + 0x4c000000, 0x051df9df, 0x5c000000, 0x5c00a800, + 0x5c00a000, 0x5c00b000, 0x8400057a, 0x4801a008, + 0x4979a009, 0x4979a00a, 0x59240001, 0x59240802, 0x4801a00b, 0x4805a00c, 0x59240003, 0x59240804, 0x4801a00d, 0x4805a00e, 0x4979a00f, 0x4979a010, - 0x4979a011, 0x4979a012, 0x59340200, 0x8c000508, - 0x05000005, 0x59a80023, 0x8400057e, 0x48035023, - 0x0501f00b, 0x599c0018, 0x8c000510, 0x05000011, - 0x59a80006, 0x8c00050a, 0x05000005, 0x59340c03, - 0x82040480, 0x000007f0, 0x0500100a, 0x59a80023, - 0x4801a013, 0x59a80024, 0x4801a014, 0x59a80025, - 0x4801a015, 0x59a80026, 0x4801a016, 0x0501f005, - 0x4979a013, 0x4979a014, 0x4979a015, 0x4979a016, - 0x59a80027, 0x4801a017, 0x59a80028, 0x4801a018, - 0x59a80029, 0x4801a019, 0x59a8002a, 0x4801a01a, - 0x60740800, 0x600011b8, 0x0501f3be, 0x0501f8c0, - 0x4a01a006, 0x50000000, 0x05fdf79c, 0x0501f8bc, - 0x4a01a006, 0x21100014, 0x4979a007, 0x4979a008, - 0x4979a009, 0x4979a00a, 0x60140800, 0x600011b8, - 0x0501f3b0, 0x0501f8b9, 0x0501f002, 0x0501f8be, - 0x4a01a006, 0x02000000, 0x60040800, 0x600011b8, - 0x0501f3a8, 0x0501f8b8, 0x4a01a006, 0x02000000, - 0x59300403, 0x900005b1, 0x05fe0784, 0x81a40800, - 0x4a000801, 0x00fffffe, 0x05fdf70a, 0x4d340000, - 0x813669c0, 0x05020010, 0x42026800, 0x0010cc0f, - 0x4936600a, 0x4a026c03, 0x0000ffff, 0x497a6a00, - 0x5930002a, 0x48026802, 0x497a602a, 0x497a6a12, - 0x82000d00, 0x00ffff00, 0x05020003, 0x800000d0, - 0x48026a12, 0x0501f89c, 0x5c026800, 0x4a01a006, + 0x4979a011, 0x4979a012, 0x599c0018, 0x8c000510, + 0x05000011, 0x59a80006, 0x8c00050a, 0x05000004, + 0x59a8021b, 0x8c000508, 0x0502000b, 0x59a80023, + 0x84000576, 0x4801a013, 0x59a80024, 0x4801a014, + 0x59a80025, 0x4801a015, 0x59a80026, 0x4801a016, + 0x0501f005, 0x4979a013, 0x4979a014, 0x4979a015, + 0x4979a016, 0x59a80027, 0x84000576, 0x4801a017, + 0x59a80028, 0x4801a018, 0x4979a019, 0x4979a01a, + 0x0501f05f, 0x59a8021b, 0x8c000508, 0x0500000c, + 0x59a8001f, 0x82000500, 0x0000ffff, 0x59c40880, + 0x80040d80, 0x05000006, 0x497b8880, 0x4c000000, + 0x05d5fce3, 0x5c000000, 0x48038880, 0x59a8001f, + 0x4801a007, 0x4c640000, 0x4d2c0000, 0x59a8c820, + 0x050dfb7b, 0x0500000d, 0x0511fa04, 0x0502000b, + 0x592c0208, 0x8c00050e, 0x05000008, 0x8264cd00, + 0x0000ffff, 0x592c000a, 0x82000500, 0xffff0000, + 0x8064cd40, 0x0501f005, 0x59a80a1b, 0x90040d30, + 0x05000002, 0x8464cd36, 0x4865a008, 0x5c025800, + 0x5c00c800, 0x59a80021, 0x4801a009, 0x59a80022, + 0x4801a00a, 0x59240001, 0x59240802, 0x4801a00b, + 0x4805a00c, 0x59240003, 0x59240804, 0x4801a00d, + 0x4805a00e, 0x4979a00f, 0x4979a010, 0x4979a011, + 0x4979a012, 0x59340200, 0x8c000508, 0x05000005, + 0x59a80023, 0x8400057e, 0x48035023, 0x0501f00b, + 0x599c0018, 0x8c000510, 0x05000011, 0x59a80006, + 0x8c00050a, 0x05000005, 0x59340c03, 0x82040480, + 0x000007f0, 0x0500100a, 0x59a80023, 0x4801a013, + 0x59a80024, 0x4801a014, 0x59a80025, 0x4801a015, + 0x59a80026, 0x4801a016, 0x0501f005, 0x4979a013, + 0x4979a014, 0x4979a015, 0x4979a016, 0x59a80027, + 0x4801a017, 0x59a80028, 0x4801a018, 0x59a80029, + 0x4801a019, 0x59a8002a, 0x4801a01a, 0x60740800, + 0x600011b8, 0x0501f3b3, 0x0501f8b5, 0x4a01a006, + 0x50000000, 0x05fdf79c, 0x0501f8b1, 0x4a01a006, + 0x21100014, 0x4979a007, 0x4979a008, 0x4979a009, + 0x4979a00a, 0x60140800, 0x600011b8, 0x0501f3a5, + 0x0501f8ae, 0x0501f002, 0x0501f8b3, 0x4a01a006, + 0x02000000, 0x60040800, 0x600011b8, 0x0501f39d, + 0x0501f8ad, 0x4a01a006, 0x02000000, 0x59300403, + 0x900005b1, 0x05fe0784, 0x81a40800, 0x4a000801, + 0x00fffffe, 0x05fdf70a, 0x0501f8a3, 0x4a01a006, 0x01000000, 0x5930041c, 0x80000540, 0x05000003, 0x4801a407, 0x0501f002, 0x640da407, 0x5930021c, 0x80000540, 0x05000003, 0x4801a207, 0x0501f003, 0x4a01a207, 0x00002a00, 0x60080800, 0x600011b8, - 0x0501f378, 0x4a026202, 0x0000ffff, 0x0501f878, + 0x0501f380, 0x4a026202, 0x0000ffff, 0x0501f880, 0x4a01a406, 0x00002010, 0x6451a206, 0x4a01a407, 0x00000800, 0x4a01a207, 0x00002000, 0x60000008, + 0x59a80807, 0x8c04050c, 0x05000002, 0x80000580, 0x5932481d, 0x59240c00, 0x8c040508, 0x05000004, 0x90000560, 0x8c04050a, 0x05020002, 0x90000550, 0x90000542, 0x5934080a, 0x8c040514, 0x05000005, 0x82040d00, 0x00000380, 0x80040540, 0x0501f006, 0x599c0818, 0x8c040518, 0x05000003, 0x82000540, - 0x00000380, 0x0501f038, 0x0501f867, 0x4a01a406, + 0x00000380, 0x0501f03c, 0x0501f86b, 0x4a01a406, 0x00000210, 0x6451a206, 0x4a01a407, 0x00000800, 0x5934000a, 0x8c000516, 0x05000013, 0x59340c05, 0x90040530, 0x05000013, 0x59340a05, 0x82040500, @@ -19465,7 +19627,8 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x4a01a207, 0x00002100, 0x0501f00c, 0x4a01a207, 0x00000100, 0x0501f009, 0x4a01a207, 0x00000400, 0x0501f006, 0x4a01a207, 0x00000700, 0x0501f003, - 0x4a01a207, 0x00000800, 0x60000008, 0x5932481d, + 0x4a01a207, 0x00000800, 0x60000008, 0x59a80807, + 0x8c04050c, 0x05000002, 0x80000580, 0x5932481d, 0x59240c00, 0x8c040508, 0x05000004, 0x90000560, 0x8c04050a, 0x05020002, 0x90000550, 0x90000542, 0x59340a00, 0x8c04050e, 0x0500000b, 0x84000550, @@ -19475,7 +19638,7 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x0501f31c, 0x0501f82c, 0x4a01a006, 0x02100014, 0x4a01a007, 0x00000100, 0x4979a008, 0x4979a009, 0x4979a00a, 0x60140800, 0x600011b8, 0x0501f311, - 0x0501f821, 0x4a01a006, 0x02000000, 0x05fdf62b, + 0x0501f821, 0x4a01a006, 0x02000000, 0x05fdf644, 0x4933c857, 0x0501f81c, 0x4a01a006, 0x01000000, 0x642da407, 0x60080800, 0x600011b8, 0x0501f305, 0x42005000, 0x32000000, 0x42006000, 0x08290000, @@ -19485,23 +19648,23 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x42006000, 0x08980000, 0x41786800, 0x41787800, 0x0501f2bb, 0x42005000, 0x23000000, 0x42006000, 0x01980000, 0x41786800, 0x41787800, 0x0501f2b4, - 0x59300403, 0x82000c80, 0x00000085, 0x05cc1910, - 0x82000c80, 0x00000093, 0x05ce190d, 0x82000480, - 0x00000085, 0x0c01f001, 0x001068f5, 0x001068f4, - 0x001068f4, 0x001068f4, 0x001068f4, 0x001068f4, - 0x001068f5, 0x001068f4, 0x001068f4, 0x001068f4, - 0x001068f4, 0x001068f4, 0x001068f4, 0x001068fc, - 0x05cdf8fb, 0x4933c857, 0x42034800, 0x0010ac7d, + 0x59300403, 0x82000c80, 0x00000085, 0x05c81f5c, + 0x82000c80, 0x00000093, 0x05ca1f59, 0x82000480, + 0x00000085, 0x0c01f001, 0x00106aa9, 0x00106aa8, + 0x00106aa8, 0x00106aa8, 0x00106aa8, 0x00106aa8, + 0x00106aa9, 0x00106aa8, 0x00106aa8, 0x00106aa8, + 0x00106aa8, 0x00106aa8, 0x00106aa8, 0x00106ab0, + 0x05c9ff47, 0x4933c857, 0x42034800, 0x0010aefd, 0x0501f834, 0x41780800, 0x600010b8, 0x0501f2c9, 0x4d2c0000, 0x59325809, 0x4933c857, 0x492fc857, - 0x812e59c0, 0x05cc08ee, 0x59340a12, 0x82040d00, + 0x812e59c0, 0x05c80f3a, 0x59340a12, 0x82040d00, 0x0000ff00, 0x592c000b, 0x82000500, 0x000000ff, 0x900001c0, 0x80040540, 0x592c0c08, 0x82040d00, 0x0000f000, 0x82040d80, 0x00003000, 0x05020003, 0x90000570, 0x0501f002, 0x90000551, 0x44034800, 0x81a5a000, 0x60241000, 0x600c0800, 0x592c000a, 0x82000500, 0xff000000, 0x82001d80, 0x84000000, - 0x05000006, 0x82001d80, 0x85000000, 0x05ce08d0, + 0x05000006, 0x82001d80, 0x85000000, 0x05ca0f1c, 0x601c1000, 0x60040800, 0x912c1c0a, 0x500c0000, 0x4401a000, 0x800c1800, 0x80d1a000, 0x80081040, 0x05fe07fb, 0x600011b8, 0x5c025800, 0x0501f299, @@ -19509,11 +19672,11 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x41786800, 0x41787800, 0x59301407, 0x90081585, 0x05020003, 0x42006000, 0x00890000, 0x59301416, 0x8c08051a, 0x05000002, 0x60047800, 0x0501f254, - 0x59300403, 0xb0000c93, 0x05ce18b1, 0xb000048b, - 0x05cc18af, 0x5932680a, 0x59368c03, 0x4803c857, - 0x0c01f001, 0x001069aa, 0x001069b2, 0x001069ba, - 0x001069c2, 0x0010694d, 0x0010694d, 0x0010694d, - 0x001069a2, 0x05cdf8a2, 0x42005000, 0x06000000, + 0x59300403, 0xb0000c93, 0x05ca1efd, 0xb000048b, + 0x05c81efb, 0x5932680a, 0x59368c03, 0x4803c857, + 0x0c01f001, 0x00106b5e, 0x00106b66, 0x00106b6e, + 0x00106b76, 0x00106b01, 0x00106b01, 0x00106b01, + 0x00106b56, 0x05c9feee, 0x42005000, 0x06000000, 0x42006000, 0x08290000, 0x41786800, 0x41787800, 0x0501f23b, 0x4933c857, 0x05fdff71, 0x4a01a006, 0x12000000, 0x59300407, 0x90000584, 0x05020003, @@ -19532,7 +19695,7 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x4a01a006, 0x62000000, 0x5930001e, 0x4801a007, 0x60080800, 0x600011b8, 0x0501f232, 0x05fdff34, 0x59300809, 0x4c500000, 0x4c540000, 0x4c580000, - 0x9004a40b, 0x5930b01e, 0x90d0ac06, 0x0519fec5, + 0x9004a40b, 0x5930b01e, 0x90d0ac06, 0x0519ffc1, 0x5930081e, 0x600011b8, 0x5c00b000, 0x5c00a800, 0x5c00a000, 0x0501f223, 0x05fdffac, 0x59300019, 0x4801a006, 0x5930001a, 0x4801a007, 0x4a01a008, @@ -19556,36 +19719,36 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x4979a408, 0x4979a208, 0x4979a409, 0x4979a209, 0x4979a00b, 0x60180800, 0x600011b8, 0x0501f1d1, 0x4933c857, 0x4937c857, 0x4d1c0000, 0x60d40800, - 0x050dfd72, 0x05020021, 0x05fdfecd, 0x4a01a006, + 0x050dfd9f, 0x05020021, 0x05fdfecd, 0x4a01a006, 0x13000000, 0x5932382a, 0x59300403, 0xb0000597, - 0x05000004, 0x591c0416, 0x8c000502, 0x05c80fec, + 0x05000004, 0x591c0416, 0x8c000502, 0x05c80e38, 0x591c001b, 0x4801a005, 0x591c0407, 0x90000583, 0x05000007, 0x5930080a, 0x58040002, 0x82000500, 0x00ffffff, 0x4801a007, 0x0501f004, 0x5932481d, 0x59240005, 0x4801a007, 0x5930041b, 0x4801a408, 0x5930021b, 0x4801a208, 0x600c0800, 0x600011b8, - 0x5c023800, 0x0501f1ab, 0x4803c856, 0x05f9fd62, - 0x598c000b, 0x81300580, 0x05ca0fd1, 0x05f9fcb3, - 0x59300403, 0xb0000597, 0x050409d7, 0x0005fc5a, - 0x5c023800, 0x05f9f544, 0x4803c856, 0x4d2c0000, - 0x4d1c0000, 0x5932382a, 0x811e39c0, 0x05c80fc4, + 0x5c023800, 0x0501f1ab, 0x4803c856, 0x05f9fd70, + 0x598c000b, 0x81300580, 0x05ca0e1d, 0x05f9fcc1, + 0x59300403, 0xb0000597, 0x050409e2, 0x0005fc5a, + 0x5c023800, 0x05f9f552, 0x4803c856, 0x4d2c0000, + 0x4d1c0000, 0x5932382a, 0x811e39c0, 0x05c80e10, 0x831c0580, 0xffffffff, 0x05000036, 0x591c0c07, 0x90040586, 0x0500000a, 0x90040583, 0x05000036, 0x64de6403, 0x640e641c, 0x4a02621c, 0x00001700, 0x5c023800, 0x5c025800, 0x0501f064, 0x0501f848, 0x42001000, 0x40000000, 0x591c0203, 0x591c0804, 0x8c04053e, 0x05020020, 0x90000c91, 0x0c001002, - 0x05c9ffab, 0x00106a56, 0x00106a61, 0x00106a57, - 0x00106a61, 0x00106a5d, 0x00106a56, 0x00106a56, - 0x00106a61, 0x00106a61, 0x00106a56, 0x00106a56, - 0x00106a56, 0x00106a56, 0x00106a56, 0x00106a61, - 0x00106a56, 0x00106a61, 0x05c9ff99, 0x591c0416, + 0x05c9fdf7, 0x00106c0a, 0x00106c15, 0x00106c0b, + 0x00106c15, 0x00106c11, 0x00106c0a, 0x00106c0a, + 0x00106c15, 0x00106c15, 0x00106c0a, 0x00106c0a, + 0x00106c0a, 0x00106c0a, 0x00106c0a, 0x00106c15, + 0x00106c0a, 0x00106c15, 0x05c9fde5, 0x591c0416, 0x4803c857, 0x8c000518, 0x05000003, 0x8c000512, 0x05000003, 0x80001580, 0x0501f003, 0x42001000, 0x20000000, 0x591c0017, 0x4801a00a, 0x0501f01a, 0x0501f81f, 0x42001000, 0x40000000, 0x41780000, 0x05fdf7fa, 0x0501f81a, 0x591e5809, 0x812e59c0, - 0x05c80f83, 0x592c1010, 0x591c0013, 0x80080480, + 0x05c80dcf, 0x592c1010, 0x591c0013, 0x80080480, 0x4801a00a, 0x591c0203, 0x591c0804, 0x8c04053e, 0x05020005, 0x90000d82, 0x05000006, 0x90000d84, 0x05000004, 0x42001000, 0x40000000, 0x0501f002, @@ -19616,7 +19779,7 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x80080540, 0x4801a007, 0x60080800, 0x600011b8, 0x0501f0e4, 0x4803c856, 0x0501f809, 0x5930041c, 0x900001c0, 0x4801a005, 0x0501f92d, 0x41780800, - 0x600010b8, 0x0501f8db, 0x05f9f138, 0x4803c856, + 0x600010b8, 0x0501f8db, 0x05f9f146, 0x4803c856, 0x59300819, 0x90041c06, 0x64874800, 0x58040405, 0x82000500, 0x0000f000, 0x82000580, 0x00003000, 0x05000002, 0x65074800, 0x81a5a000, 0x580c0001, @@ -19630,12 +19793,12 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x05000006, 0x4a01a006, 0x01000000, 0x640da407, 0x60080800, 0x0501f021, 0x4a01a006, 0x02000000, 0x41780800, 0x916c0584, 0x05020003, 0x84040d42, - 0x0501f00c, 0x05edff0c, 0x05020003, 0x84040d4a, + 0x0501f00c, 0x05edfe5d, 0x05020003, 0x84040d4a, 0x0501f002, 0x84040d48, 0x59a8021b, 0x8c000506, 0x05020003, 0x8c00050a, 0x05000002, 0x84040d46, 0x4805a207, 0x59c40085, 0x48031004, 0x4c580000, 0x4c500000, 0x4c540000, 0x6018b000, 0x9188a400, - 0x90d0ac08, 0x0519fd2b, 0x5c00a800, 0x5c00a000, + 0x90d0ac08, 0x0519fe27, 0x5c00a800, 0x5c00a000, 0x5c00b000, 0x60200800, 0x600011b8, 0x0501f089, 0x05fdfd8b, 0x4a01a006, 0x56000000, 0x59340006, 0x4801a007, 0x59340007, 0x4801a008, 0x600c0800, @@ -19644,16 +19807,16 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x0000ffff, 0x05000003, 0x90040487, 0x05021006, 0x4a01a006, 0x01000000, 0x640da407, 0x60080800, 0x0501f011, 0x4a01a006, 0x0200001c, 0x6405a007, - 0x42001000, 0x0010ac65, 0x50080000, 0x9c0001c0, + 0x42001000, 0x0010aee5, 0x50080000, 0x9c0001c0, 0x4801a009, 0x5932481d, 0x59240005, 0x4801a00a, 0x59240001, 0x59240802, 0x4801a00b, 0x4805a00c, 0x601c0800, 0x600011b8, 0x0501f05e, 0x4d2c0000, 0x05fdfd5f, 0x59325809, 0x812e59c0, 0x05020003, 0x4979a001, 0x0501f005, 0x592c0009, 0x82000500, 0x00ffffff, 0x4801a001, 0x4a01a006, 0x51000000, - 0x5c025800, 0x05fdf3bb, 0x4803c856, 0x59325809, + 0x5c025800, 0x05fdf3c6, 0x4803c856, 0x59325809, 0x5932680a, 0x59300407, 0x4803c857, 0x90000d8a, - 0x05000002, 0x05c9fe72, 0x42005000, 0x02000000, + 0x05000002, 0x05c9fcbe, 0x42005000, 0x02000000, 0x42006000, 0x20290000, 0x41786800, 0x41787800, 0x0501f805, 0x91180d78, 0x60801193, 0x0501f86b, 0x1c01f000, 0x6081a000, 0x59300416, 0x8c000510, @@ -19674,15 +19837,15 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x4807c857, 0x4c040000, 0x0501f841, 0x5c000800, 0x40040000, 0x80081540, 0x800000c4, 0x82000540, 0x00002000, 0x4803910a, 0x59b400f6, 0x90000518, - 0x05fe07fe, 0x42001800, 0x0010ac7e, 0x580c0004, + 0x05fe07fe, 0x42001800, 0x0010aefe, 0x580c0004, 0x4803c857, 0x580c0006, 0x4803c857, 0x580c1800, 0x480fc857, 0x8d0c052a, 0x0500000c, 0x820c1d00, 0xf8000000, 0x05000009, 0x4c040000, 0x4c080000, - 0x40083800, 0x42000000, 0x0010ac7e, 0x05c9ff19, - 0x5c001000, 0x5c000800, 0x4a0368f0, 0x0010ac7d, - 0x4a0368f1, 0x0010ac84, 0x480b68f3, 0x59b400f6, + 0x40083800, 0x42000000, 0x0010aefe, 0x05c9fd65, + 0x5c001000, 0x5c000800, 0x4a0368f0, 0x0010aefd, + 0x4a0368f1, 0x0010af04, 0x480b68f3, 0x59b400f6, 0x90000538, 0x05fe07fe, 0x4203e000, 0xb0800000, - 0x600bf800, 0x05f9f031, 0x4807c857, 0x59300004, + 0x600bf800, 0x05f9f03f, 0x4807c857, 0x59300004, 0x8c000512, 0x05000002, 0x8408154c, 0x480a2800, 0x4c040000, 0x0501f80e, 0x5c000800, 0x59b400f6, 0x8c00050a, 0x05fe07fe, 0x49a768f2, 0x480768f4, @@ -19690,27 +19853,27 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0xb0800000, 0x600bf800, 0x1c01f000, 0x61a07007, 0x4203e000, 0xb0800000, 0x600ff800, 0x40000000, 0x40000000, 0x40000000, 0x0501b004, 0x80387040, - 0x05c80ddf, 0x05fdf7f9, 0x1c01f000, 0x82000500, + 0x05c80c2b, 0x05fdf7f9, 0x1c01f000, 0x82000500, 0xffff0000, 0x82000580, 0x01050000, 0x0502000b, 0x599c0818, 0x8c040510, 0x05000008, 0x59a80806, 0x8c04050a, 0x05000005, 0x613c1100, 0x41781800, - 0x41782000, 0x05e5f8e1, 0x1c01f000, 0x1c01f000, + 0x41782000, 0x05e1fff8, 0x1c01f000, 0x1c01f000, 0x59a80067, 0x800001c0, 0x0500004b, 0x4d2c0000, 0x4d300000, 0x4c5c0000, 0x4c600000, 0x4c640000, 0x40025800, 0x4000c000, 0x4000c800, 0x42026000, - 0x00110254, 0x592c0407, 0x81440580, 0x05020033, + 0x00110484, 0x592c0407, 0x81440580, 0x05020033, 0x83240580, 0xffffffff, 0x05000004, 0x592c0002, 0x81240580, 0x0502002d, 0x592c0205, 0xb0000595, 0x05000005, 0x8d3c0518, 0x05000028, 0x8d3c0516, 0x05020026, 0x40640000, 0x812c0580, 0x05020016, 0x59300203, 0x90000580, 0x0500000f, 0x59300009, - 0x800001c0, 0x0500000c, 0x05f9fb33, 0x4df00000, - 0x05f9fa30, 0x0201f800, 0x0010eeb1, 0x80c40040, - 0x05020002, 0x64026203, 0x5c03e000, 0x05f80b16, + 0x800001c0, 0x0500000c, 0x05f9fb41, 0x4df00000, + 0x05f9fa3e, 0x0201f800, 0x0010f0c0, 0x80c40040, + 0x05020002, 0x64026203, 0x5c03e000, 0x05f80b24, 0x497a6009, 0x592cc800, 0x4064c000, 0x4064b800, 0x0501f003, 0x592cb800, 0x485cc000, 0x497a5800, 0x592c0205, 0x82000580, 0x00000155, 0x05000003, - 0x05cdf92c, 0x0501f003, 0x49425a07, 0x0001fb5b, + 0x05c9ff78, 0x0501f003, 0x49425a07, 0x0001fb5b, 0x405e5800, 0x0501f003, 0x412cc000, 0x592e5800, 0x812e59c0, 0x05fe07c8, 0x48675067, 0x48635068, 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x5c026000, @@ -19722,7 +19885,7 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x8d3c0502, 0x05000004, 0x61c2880f, 0x6040b000, 0x05fdf7f3, 0x5c024800, 0x5c00b000, 0x5c026800, 0x5c028800, 0x1c01f000, 0x4d300000, 0x59a81067, - 0x800811c0, 0x05000022, 0x42026000, 0x00110254, + 0x800811c0, 0x05000022, 0x42026000, 0x00110484, 0x59300203, 0x90000580, 0x0502001d, 0x58080803, 0x58080002, 0x4802601d, 0x4806600a, 0x480a6009, 0x64166407, 0x64066203, 0x4a026403, 0x00000092, @@ -19733,129 +19896,130 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x00000100, 0x84040d52, 0x0005fb32, 0x5c026000, 0x1c01f000, 0x4d900000, 0x4dd00000, 0x4da40000, 0x4d140000, 0x4cd80000, 0x4d180000, 0x4803c856, - 0x417a3000, 0x05fdf815, 0x59900805, 0x800409c0, - 0x05000012, 0x91947c09, 0x83180400, 0x00105add, + 0x417a3000, 0x05fdf823, 0x59900805, 0x800409c0, + 0x05000012, 0x91947c09, 0x83180400, 0x00105c9f, 0x50000000, 0x803c7c00, 0x583c0003, 0x811808ca, 0x82040c00, 0x00006139, 0x50040800, 0x80040580, - 0x05000006, 0x42000000, 0x0010b0ba, 0x0519fac6, + 0x05000006, 0x42000000, 0x0010b33a, 0x0519fbc2, 0x90000541, 0x0501f004, 0x811a3000, 0x91180585, 0x05fe07e9, 0x5c023000, 0x5c01b000, 0x5c022800, 0x5c034800, 0x5c03a000, 0x5c032000, 0x1c01f000, 0x4d900000, 0x4dd00000, 0x4da40000, 0x4d140000, 0x4cd80000, 0x4d180000, 0x4803c856, 0x598c080b, - 0x800409c0, 0x05000002, 0x05f5ff3c, 0x417a3000, - 0x05f9ffea, 0x59900805, 0x800409c0, 0x0500000f, - 0x91947c09, 0x83180400, 0x00105add, 0x50000000, + 0x800409c0, 0x05000002, 0x05f5ff4a, 0x417a3000, + 0x05f9fff8, 0x59900805, 0x800409c0, 0x0500000f, + 0x91947c09, 0x83180400, 0x00105c9f, 0x50000000, 0x803c7c00, 0x811808ca, 0x82040c00, 0x00006139, 0x50040800, 0x48047803, 0x4a007801, 0x000001f4, 0x64287800, 0x64107802, 0x811a3000, 0x91180585, 0x05fe07ec, 0x5c023000, 0x5c01b000, 0x5c022800, 0x5c034800, 0x5c03a000, 0x5c032000, 0x1c01f000, - 0x41781000, 0x42026000, 0x001102e4, 0x59a8180d, + 0x41781000, 0x42026000, 0x00110514, 0x59a8180d, 0x480a6402, 0x4a026202, 0x0000ffff, 0x80081000, 0x800c1840, 0x05000003, 0x91326430, 0x05fdf7f9, 0x1c01f000, 0x0005fc5a, 0x1c01f000, 0x5c036000, 0x4db00000, 0x49b3c857, 0x4933c857, 0x813261c0, - 0x05000029, 0x59300203, 0x90000580, 0x05000026, + 0x0500002d, 0x59300203, 0x90000580, 0x0500002a, 0x59300407, 0x4803c857, 0x90000d84, 0x0500000c, 0x90000d81, 0x0500000a, 0x90000d83, 0x05000004, - 0x90000d86, 0x05020012, 0x0515fe6e, 0x5930001e, - 0x800001c0, 0x050e0eda, 0x0501f00d, 0x5930082a, - 0x4807c857, 0x4d300000, 0x40066000, 0x050dff7c, + 0x90000d86, 0x05020016, 0x0515ff58, 0x5930001e, + 0x800001c0, 0x050e0f0c, 0x0501f011, 0x5930000a, + 0x82000580, 0x0010ce8f, 0x0500000d, 0x5930082a, + 0x4807c857, 0x4d300000, 0x40066000, 0x050dffaa, 0x5c026000, 0x05020006, 0x5804001e, 0x4803c857, 0x81300580, 0x05020002, 0x4978081e, 0x641e6407, 0x497a6009, 0x4a026004, 0x00004000, 0x59a8002e, 0xb0000c91, 0x05001002, 0x80000102, 0x48026006, 0x497a6205, 0x1c01f000, 0x0501f803, 0x41318800, 0x1c01f000, 0x91640490, 0x05021007, 0x42000000, - 0x0010b049, 0x0519fa4c, 0x4967c857, 0x80026580, + 0x0010b2c9, 0x0519fb44, 0x4967c857, 0x80026580, 0x1c01f000, 0x8166c9c0, 0x05000018, 0x41626000, 0x41580000, 0x59300a03, 0x90040d80, 0x05000007, 0x91326430, 0x81300c80, 0x05fc17fb, 0x42026000, - 0x001102e4, 0x05fdf7f8, 0x4933c857, 0x8166c840, + 0x00110514, 0x05fdf7f8, 0x4933c857, 0x8166c840, 0x91300c30, 0x80040480, 0x05021005, 0x4006c000, 0x64226203, 0x813261c0, 0x1c01f000, 0x4202c000, - 0x001102e4, 0x05fdf7fb, 0x42000000, 0x0010b049, - 0x0519fa2d, 0x4933c856, 0x417a6000, 0x05fdf7f6, + 0x00110514, 0x05fdf7fb, 0x42000000, 0x0010b2c9, + 0x0519fb25, 0x4933c856, 0x417a6000, 0x05fdf7f6, 0x0005fc78, 0x1c01f000, 0x4933c857, 0x91380593, 0x05020008, 0x59300004, 0x8c00053e, 0x05000004, - 0x05f9fa09, 0x05f9f95d, 0x05f9f9f3, 0x1c01f000, + 0x05f9fa13, 0x05f9f967, 0x05f9f9fd, 0x1c01f000, 0x4933c857, 0x598800b7, 0x80000000, 0x480310b7, 0x1c01f000, 0x4933c857, 0x59300203, 0x90003491, - 0x05ca1c6f, 0x4d2c0000, 0x0c01f803, 0x5c025800, - 0x1c01f000, 0x00106d96, 0x001072eb, 0x00107421, - 0x00106d96, 0x00107465, 0x00106f22, 0x00106d96, - 0x00106d96, 0x0010727e, 0x00106d96, 0x00106d96, - 0x00106d96, 0x00106d96, 0x00106d96, 0x0010849d, - 0x00106d96, 0x00106d96, 0x05c9fc59, 0x4933c857, - 0x59300203, 0x90003491, 0x05ca1c55, 0x0c01f001, - 0x00106dad, 0x00107dc1, 0x00106dad, 0x00106dad, - 0x00106dad, 0x00106dad, 0x00106dad, 0x00106dad, - 0x00107d61, 0x00107dd7, 0x00107e58, 0x00107dd7, - 0x00107e58, 0x00106dad, 0x001084c3, 0x00106dad, - 0x00106dad, 0x05c9fc42, 0x05c9fc41, 0x4933c857, + 0x05ca1ab7, 0x4d2c0000, 0x0c01f803, 0x5c025800, + 0x1c01f000, 0x00106f4e, 0x001074aa, 0x001075e0, + 0x00106f4e, 0x0010762d, 0x001070dc, 0x00106f4e, + 0x00106f4e, 0x0010743d, 0x00106f4e, 0x00106f4e, + 0x00106f4e, 0x00106f4e, 0x00106f4e, 0x0010867e, + 0x00106f4e, 0x00106f4e, 0x05c9faa1, 0x4933c857, + 0x59300203, 0x90003491, 0x05ca1a9d, 0x0c01f001, + 0x00106f65, 0x00107f96, 0x00106f65, 0x00106f65, + 0x00106f65, 0x00106f65, 0x00106f65, 0x00106f65, + 0x00107f36, 0x00107fb5, 0x00108036, 0x00107fb5, + 0x00108036, 0x00106f65, 0x001086a4, 0x00106f65, + 0x00106f65, 0x05c9fa8a, 0x05c9fa89, 0x4933c857, 0x4d300000, 0x4d1c0000, 0x59300203, 0x9000058f, - 0x05ca0c3b, 0x91380593, 0x05020025, 0x59300c03, + 0x05ca0a83, 0x91380593, 0x05020025, 0x59300c03, 0xb0040586, 0x05000015, 0xb0040584, 0x0502000a, - 0x4d300000, 0x5932602a, 0x050df9fd, 0x5c026000, + 0x4d300000, 0x5932602a, 0x050dfa26, 0x5c026000, 0x0500001c, 0x591c0416, 0x8400054a, 0x48023c16, 0x0501f010, 0x59300019, 0x82000500, 0xff000000, 0x82000580, 0xc2000000, 0x05020012, 0x5930001e, - 0x05fdfe47, 0x0501f00f, 0x59300416, 0x84000504, - 0x48026416, 0x5930141d, 0x050df9e0, 0x05000009, + 0x05fdfe43, 0x0501f00f, 0x59300416, 0x84000504, + 0x48026416, 0x5930141d, 0x050dfa09, 0x05000009, 0x411e6000, 0x5930001c, 0x80000540, 0x05000005, - 0x497a601c, 0x0801f800, 0x0501f002, 0x05f9f8f7, + 0x497a601c, 0x0801f800, 0x0501f002, 0x05f9f901, 0x5c023800, 0x5c026000, 0x0005f45a, 0x4933c857, 0x4d2c0000, 0x59325809, 0x59300203, 0x90003491, - 0x05ca1c0b, 0x0c01f803, 0x5c025800, 0x1c01f000, - 0x00106df9, 0x00106df9, 0x00106df9, 0x00106e0e, - 0x00106e5d, 0x00106df9, 0x00106df9, 0x00106df9, - 0x00106dfa, 0x00106df9, 0x00106df9, 0x00106df9, - 0x00106df9, 0x00106df9, 0x00106df9, 0x00106df9, - 0x00106e47, 0x05c9fbf6, 0x4933c857, 0xb1380580, - 0x05ca0bf3, 0x4a026008, 0x00082000, 0x640e6203, + 0x05ca1a53, 0x0c01f803, 0x5c025800, 0x1c01f000, + 0x00106fb1, 0x00106fb1, 0x00106fb1, 0x00106fc6, + 0x00107015, 0x00106fb1, 0x00106fb1, 0x00106fb1, + 0x00106fb2, 0x00106fb1, 0x00106fb1, 0x00106fb1, + 0x00106fb1, 0x00106fb1, 0x00106fb1, 0x00106fb1, + 0x00106fff, 0x05c9fa3e, 0x4933c857, 0xb1380580, + 0x05ca0a3b, 0x4a026008, 0x00082000, 0x640e6203, 0x493a6403, 0x64065c09, 0x592c000e, 0x48026013, 0x497a6015, 0x592c0209, 0x800000c2, 0x800010c4, 0x80081400, 0x480a6006, 0x0001f980, 0x42000800, 0x80000060, 0x0005f320, 0x4933c857, 0xb1380490, - 0x05ca1bdf, 0xb1380489, 0x05c81bdd, 0x0c01f001, - 0x00106e1c, 0x00106e29, 0x00106e1b, 0x00106e1b, - 0x00106e1b, 0x00106e1b, 0x00106e2f, 0x05c9fbd4, - 0x050df8d4, 0x05000003, 0x64426203, 0x0501f002, + 0x05ca1a27, 0xb1380489, 0x05c81a25, 0x0c01f001, + 0x00106fd4, 0x00106fe1, 0x00106fd3, 0x00106fd3, + 0x00106fd3, 0x00106fd3, 0x00106fe7, 0x05c9fa1c, + 0x050df8fd, 0x05000003, 0x64426203, 0x0501f002, 0x64126203, 0x640a5c09, 0x592c0208, 0x48025c0a, 0x592c020a, 0x48025a08, 0x592c000d, 0x4802580e, - 0x1c01f000, 0x05f9f88c, 0x0509fce8, 0x05000003, - 0x641a5a07, 0x0001fb5b, 0x0005f45a, 0x05f9f886, - 0x4d3c0000, 0x417a7800, 0x0201f800, 0x0010ec6c, + 0x1c01f000, 0x05f9f896, 0x0509fd11, 0x05000003, + 0x641a5a07, 0x0001fb5b, 0x0005f45a, 0x05f9f890, + 0x4d3c0000, 0x417a7800, 0x0201f800, 0x0010ee7a, 0x5c027800, 0x60503000, 0x41782800, 0x60082000, 0x4d400000, 0x4d440000, 0x59368c03, 0x60a68000, - 0x050dfdd8, 0x5c028800, 0x5c028000, 0x42000000, - 0x0010b056, 0x0519f954, 0x0509fcd0, 0x0004045a, + 0x050dfe06, 0x5c028800, 0x5c028000, 0x42000000, + 0x0010b2d6, 0x0519fa4c, 0x0509fcf9, 0x0004045a, 0x64a65a07, 0x0001fb5b, 0x0005f45a, 0x4933c857, 0xb13805a1, 0x05000006, 0xb13805a0, 0x05020007, 0x59cc0002, 0x8c000526, 0x05000005, 0xb1380589, - 0x05000004, 0x05c9fb9e, 0x05fdff26, 0x1c01f000, + 0x05000004, 0x05c9f9e6, 0x05fdff26, 0x1c01f000, 0x59a80030, 0x48026205, 0x64126203, 0x5930001c, 0x80000540, 0x05000003, 0x497a601c, 0x0801f800, 0x1c01f000, 0x4933c857, 0xb1380588, 0x05000003, - 0xb1380593, 0x05ca0b8e, 0x592c0207, 0x90000587, + 0xb1380593, 0x05ca09d6, 0x592c0207, 0x90000587, 0x05000008, 0x59300013, 0x80000540, 0x05000005, 0x592c080d, 0x80040480, 0x4802580d, 0x64565a07, 0x592c0207, 0x80000540, 0x05020002, 0x64025a07, 0x0001fb5b, 0x0005f45a, 0x4933c857, 0x4d2c0000, 0x4c500000, 0x4c540000, 0x4c580000, 0x4c5c0000, - 0x4c600000, 0x4c640000, 0x4c100000, 0x05c9ff01, - 0x05c80b73, 0x497a5a07, 0x59a8008c, 0x82000500, + 0x4c600000, 0x4c640000, 0x4c100000, 0x05c9fd49, + 0x05c809bb, 0x497a5a07, 0x59a8008c, 0x82000500, 0x0000f000, 0x48025c08, 0x59a80877, 0x90040c18, 0x48065a08, 0x412cb800, 0x4d2c0000, 0x41cca000, 0x6004c000, 0x60b0c800, 0x900404ad, 0x05021004, - 0x912cac0a, 0x0509f888, 0x0501f023, 0x40043000, - 0x60b00800, 0x912cac0a, 0x0509f883, 0x901834ac, - 0x4c180000, 0x05c9fee7, 0x5c003000, 0x05000012, + 0x912cac0a, 0x0509f8ae, 0x0501f023, 0x40043000, + 0x60b00800, 0x912cac0a, 0x0509f8a9, 0x901834ac, + 0x4c180000, 0x05c9fd2f, 0x5c003000, 0x05000012, 0x8060c000, 0x4a025805, 0x00000110, 0x492cb801, 0x90180cbd, 0x05021005, 0x40180800, 0x912cac06, - 0x0509f875, 0x0501f010, 0x9064cc3c, 0x901834bc, - 0x60f00800, 0x412cb800, 0x912cac06, 0x0509f86e, + 0x0509f89b, 0x0501f010, 0x9064cc3c, 0x901834bc, + 0x60f00800, 0x412cb800, 0x912cac06, 0x0509f894, 0x05fdf7ec, 0x5c025800, 0x592c0207, 0x8400055e, 0x48025a07, 0x592c0408, 0x80640540, 0x48025c08, 0x0501f002, 0x5c025800, 0x5c002000, 0x813669c0, @@ -19868,2361 +20032,2414 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x05000003, 0x90000588, 0x05020002, 0x58041006, 0x480a5806, 0x592c0408, 0x81200540, 0x48025c08, 0x0501f002, 0x49225c06, 0x846001c0, 0x80100540, - 0x48025805, 0x592c0001, 0x497a5801, 0x4c000000, - 0x0001fb5b, 0x5c025800, 0x812e59c0, 0x05fe07fa, - 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x5c00b000, - 0x5c00a800, 0x5c00a000, 0x5c025800, 0x1c01f000, - 0x0515fe5c, 0x05fdf7f7, 0x4803c856, 0x4c5c0000, - 0x4d2c0000, 0x4c500000, 0x4c540000, 0x4c580000, - 0x412cb800, 0x592c040c, 0x8c000516, 0x05000003, - 0x41cca000, 0x0501f002, 0x91cca406, 0x4008b000, - 0x41781000, 0xb058048c, 0x05001003, 0x6130b000, - 0x40001000, 0x4c080000, 0x4d2c0000, 0x05c9fe7d, - 0x0500001f, 0x5c001800, 0x492c1801, 0x485a5800, - 0x9058b403, 0x8058b104, 0x912cac02, 0x0519f994, - 0x585c040c, 0x8c000500, 0x0500000b, 0x912c1402, - 0x8c000516, 0x05000002, 0x90081406, 0x64041000, - 0x80081000, 0x46001000, 0x00000900, 0x84000500, - 0x4800bc0c, 0x5c001000, 0x800811c0, 0x05fe07e0, - 0x90000541, 0x5c00b000, 0x5c00a800, 0x5c00a000, - 0x5c025800, 0x5c00b800, 0x1c01f000, 0x5c025800, - 0x5c001000, 0x05fdf7f8, 0x4933c857, 0x91380d95, - 0x05020008, 0x0509ffcb, 0x05000005, 0x5930082a, - 0x58040416, 0x8400051a, 0x48000c16, 0x0005f45a, - 0x91380d96, 0x05ca0ac2, 0x0005f45a, 0x4933c857, - 0x4d2c0000, 0x4c500000, 0x4c540000, 0x4c580000, - 0x59325809, 0x91cca406, 0x59cc1806, 0x820c0580, - 0x01000000, 0x05020003, 0x6008b000, 0x0501f00a, - 0x6020b000, 0x912cac06, 0x0519f922, 0x8c0c0500, - 0x05000007, 0x6020b000, 0x592e5801, 0x812e59c0, - 0x05c80aab, 0x912cac06, 0x0519f91a, 0x0501f812, - 0x5c00b000, 0x5c00a800, 0x5c00a000, 0x5c025800, - 0x1c01f000, 0x4933c857, 0x4c500000, 0x4c540000, - 0x4c580000, 0x91cca406, 0x5930a809, 0x9054ac06, - 0x601cb000, 0x0519f90b, 0x5c00b000, 0x5c00a800, - 0x5c00a000, 0x4933c857, 0x0509fbb8, 0x0004045a, - 0x4d2c0000, 0x050dfa3b, 0x05020008, 0x41780800, - 0x4d400000, 0x60028000, 0x050df87a, 0x5c028000, - 0x5c025800, 0x0005f45a, 0x5931d82d, 0x58ef400a, - 0x58ee580c, 0x4a025a05, 0x00000103, 0x58ec0008, - 0x0801f800, 0x5c025800, 0x0005f45a, 0x4933c857, - 0x59cc1806, 0x820c0580, 0x02000000, 0x0502001e, - 0x4a026802, 0x00fffffd, 0x5934000a, 0x84000504, - 0x4802680a, 0x60000000, 0x4c0c0000, 0x0501f823, - 0x5c001800, 0x59300c29, 0x900405a1, 0x05020006, - 0x05d5ffa7, 0x61fc19ff, 0x60102000, 0x60483000, - 0x05e1fdf0, 0x59300809, 0x800409c0, 0x0004045a, - 0x4a000a05, 0x00000103, 0x480c0806, 0x5931d82d, - 0x58ef400a, 0x58ee580c, 0x58ec0008, 0x0801f800, - 0x0005f45a, 0x42000000, 0x0010b05f, 0x0519f802, - 0x60180000, 0x4c0c0000, 0x0501f808, 0x5c001800, - 0x05fc07ed, 0x4c0c0000, 0x0501f819, 0x5c001800, - 0x05fe07e9, 0x1c01f000, 0x4933c857, 0x4d400000, - 0x4d240000, 0x4d200000, 0x5932481d, 0x40028000, - 0x59300429, 0xb0000d91, 0x05000003, 0x90000da1, - 0x05020006, 0x05d5ff7e, 0x60040000, 0x05edf85f, - 0x80000580, 0x0501f002, 0x90000541, 0x5c024000, - 0x5c024800, 0x5c028000, 0x1c01f000, 0x4933c857, - 0x4d2c0000, 0x59325809, 0x812e59c0, 0x0502000b, - 0x497a6006, 0x497a6205, 0x0509ff36, 0x05000002, - 0x497a6417, 0x4d380000, 0x608a7000, 0x0501fb28, - 0x5c027000, 0x80000580, 0x5c025800, 0x1c01f000, - 0x4933c857, 0x4d2c0000, 0x4c500000, 0x4c540000, - 0x4c580000, 0x59325809, 0x592e5801, 0x912cac06, - 0x91cca406, 0x59a8088c, 0x82040d00, 0x000003ff, - 0x9004148f, 0x05001011, 0x603cb000, 0x0519f88d, - 0x592e5801, 0x912cac06, 0x90080c8f, 0x05001008, - 0x603cb000, 0x0519f887, 0x592e5801, 0x912cac06, - 0x9004148f, 0x05001005, 0x603c1000, 0x4008b000, - 0x0519f880, 0x0501f003, 0x4004b000, 0x0519f87d, - 0x5931d82d, 0x58ef400a, 0x58ee580c, 0x4a025a05, - 0x00000103, 0x592e5801, 0x58ec0008, 0x0801f800, - 0x0005fc5a, 0x5c00b000, 0x5c00a800, 0x5c00a000, - 0x5c025800, 0x1c01f000, 0x4933c857, 0x4d2c0000, - 0x4c500000, 0x4c540000, 0x4c580000, 0x59cc0006, - 0x82000d80, 0x01000000, 0x05000021, 0x59cc0007, - 0x9000b1c0, 0x8258b500, 0x000000ff, 0x8058b104, - 0x9058b402, 0x90580c87, 0x05001002, 0x6018b000, - 0x91cca406, 0x59301009, 0x800811c0, 0x05c809e8, - 0x9008ac06, 0x0519f857, 0x82000d00, 0xff000000, - 0x800409c0, 0x05000014, 0x8200b500, 0x000000ff, - 0x05000011, 0x8058b104, 0x90580c8e, 0x05001002, - 0x6034b000, 0x58081001, 0x800811c0, 0x05c809d8, - 0x9008ac06, 0x0519f847, 0x0501f007, 0x59301009, - 0x800811c0, 0x05c809d2, 0x48001006, 0x59cc0007, - 0x48001007, 0x05fdff38, 0x5c00b000, 0x5c00a800, + 0x48025805, 0x0519faff, 0x05020010, 0x592c0001, + 0x497a5801, 0x4c000000, 0x0001fb5b, 0x5c025800, + 0x812e59c0, 0x05fe07f8, 0x5c00c800, 0x5c00c000, + 0x5c00b800, 0x5c00b000, 0x5c00a800, 0x5c00a000, + 0x5c025800, 0x1c01f000, 0x0515ff52, 0x05fdf7f7, + 0x4803c856, 0x4c5c0000, 0x4d2c0000, 0x4c500000, + 0x4c540000, 0x4c580000, 0x412cb800, 0x592c040c, + 0x8c000516, 0x05000003, 0x41cca000, 0x0501f002, + 0x91cca406, 0x4008b000, 0x41781000, 0xb058048c, + 0x05001003, 0x6130b000, 0x40001000, 0x4c080000, + 0x4d2c0000, 0x05c9fcc3, 0x0500001f, 0x5c001800, + 0x492c1801, 0x485a5800, 0x9058b403, 0x8058b104, + 0x912cac02, 0x0519fa8a, 0x585c040c, 0x8c000500, + 0x0500000b, 0x912c1402, 0x8c000516, 0x05000002, + 0x90081406, 0x64041000, 0x80081000, 0x46001000, + 0x00000900, 0x84000500, 0x4800bc0c, 0x5c001000, + 0x800811c0, 0x05fe07e0, 0x90000541, 0x5c00b000, + 0x5c00a800, 0x5c00a000, 0x5c025800, 0x5c00b800, + 0x1c01f000, 0x5c025800, 0x5c001000, 0x05fdf7f8, + 0x4933c857, 0x91380d95, 0x05020008, 0x0509fff2, + 0x05000005, 0x5930082a, 0x58040416, 0x8400051a, + 0x48000c16, 0x0005f45a, 0x91380d96, 0x05ca0908, + 0x0005f45a, 0x4933c857, 0x4d2c0000, 0x4c500000, + 0x4c540000, 0x4c580000, 0x59325809, 0x91cca406, + 0x59cc1806, 0x820c0580, 0x01000000, 0x05020003, + 0x6008b000, 0x0501f00a, 0x6020b000, 0x912cac06, + 0x0519fa18, 0x8c0c0500, 0x05000007, 0x6020b000, + 0x592e5801, 0x812e59c0, 0x05c808f1, 0x912cac06, + 0x0519fa10, 0x0501f812, 0x5c00b000, 0x5c00a800, 0x5c00a000, 0x5c025800, 0x1c01f000, 0x4933c857, + 0x4c500000, 0x4c540000, 0x4c580000, 0x91cca406, + 0x5930a809, 0x9054ac06, 0x601cb000, 0x0519fa01, + 0x5c00b000, 0x5c00a800, 0x5c00a000, 0x4933c857, + 0x0509fbdf, 0x0004045a, 0x4d2c0000, 0x050dfa67, + 0x05020008, 0x41780800, 0x4d400000, 0x60028000, + 0x050df8a1, 0x5c028000, 0x5c025800, 0x0005f45a, + 0x5931d82d, 0x58ef400a, 0x58ee580c, 0x4a025a05, + 0x00000103, 0x58ec0008, 0x0801f800, 0x5c025800, + 0x0005f45a, 0x4933c857, 0x59cc1806, 0x820c0580, + 0x02000000, 0x0502001e, 0x4a026802, 0x00fffffd, + 0x5934000a, 0x84000504, 0x4802680a, 0x60000000, + 0x4c0c0000, 0x0501f823, 0x5c001800, 0x59300c29, + 0x900405a1, 0x05020006, 0x05d5fe46, 0x61fc19ff, + 0x60102000, 0x60483000, 0x05e1fd01, 0x59300809, + 0x800409c0, 0x0004045a, 0x4a000a05, 0x00000103, + 0x480c0806, 0x5931d82d, 0x58ef400a, 0x58ee580c, + 0x58ec0008, 0x0801f800, 0x0005f45a, 0x42000000, + 0x0010b2df, 0x0519f8f8, 0x60180000, 0x4c0c0000, + 0x0501f808, 0x5c001800, 0x05fc07ed, 0x4c0c0000, + 0x0501f81e, 0x5c001800, 0x05fe07e9, 0x1c01f000, + 0x4933c857, 0x4d400000, 0x4d240000, 0x4d200000, + 0x5932481d, 0x40028000, 0x59300429, 0xb0000d91, + 0x05000003, 0x90000da1, 0x0502000b, 0x05d5fe1d, + 0x0519fa1d, 0x05020004, 0x59300429, 0x900005a1, + 0x05d40b6b, 0x60040000, 0x05e9ff9d, 0x80000580, + 0x0501f002, 0x90000541, 0x5c024000, 0x5c024800, + 0x5c028000, 0x1c01f000, 0x4933c857, 0x4d2c0000, + 0x59325809, 0x812e59c0, 0x0502000b, 0x497a6006, + 0x497a6205, 0x0509ff58, 0x05000002, 0x497a6417, + 0x4d380000, 0x608a7000, 0x0501fb28, 0x5c027000, + 0x80000580, 0x5c025800, 0x1c01f000, 0x4933c857, 0x4d2c0000, 0x4c500000, 0x4c540000, 0x4c580000, - 0x6008b000, 0x59cc0806, 0x82040580, 0x01000000, - 0x05000004, 0x8204b500, 0x0000ffff, 0x8058b104, - 0x91cca406, 0x59300009, 0x9000ac06, 0x0519f829, - 0x05fdff21, 0x5c00b000, 0x5c00a800, 0x5c00a000, - 0x5c025800, 0x1c01f000, 0x4933c857, 0x4803c857, - 0x4807c857, 0x480bc857, 0x480fc857, 0x4813c857, - 0x481bc857, 0x492fc857, 0x4d2c0000, 0x4c000000, - 0x05c9fd21, 0x5c000000, 0x0500000d, 0x48025803, - 0x481a5801, 0x48125808, 0x48065805, 0x480a5806, - 0x480e5807, 0x5c001000, 0x4c080000, 0x480a5809, - 0x412c1000, 0x0001f81c, 0x90000541, 0x5c025800, - 0x1c01f000, 0x4933c857, 0x4937c857, 0x4d1c0000, - 0x05f5fa3c, 0x05020020, 0x59cc0001, 0x82000500, - 0x00ffffff, 0x59341002, 0x82081500, 0x00ffffff, - 0x80080580, 0x05020018, 0x497a6205, 0x60d40800, - 0x0509ff02, 0x0502000f, 0x591c001e, 0x800001c0, - 0x0500000c, 0x497a381e, 0x591c0416, 0x8c000502, - 0x05c8097f, 0x84000502, 0x48023c16, 0x591c1407, - 0x90080583, 0x05000005, 0x90080586, 0x05000005, - 0x05fdfc9b, 0x0501f004, 0x0501f805, 0x0501f002, - 0x0501f8c4, 0x5c023800, 0x1c01f000, 0x4d2c0000, - 0x591e5809, 0x4933c857, 0x491fc857, 0x493bc857, - 0x492fc857, 0x91380595, 0x050000b8, 0x91380596, - 0x050200b4, 0x4d300000, 0x411e6000, 0x59cc0207, - 0x4803c857, 0x82000d00, 0x0000ff00, 0x82040580, - 0x00001700, 0x05000004, 0x82040580, 0x00000300, - 0x05020065, 0x0509fe5b, 0x05000006, 0x591c0403, - 0xb0000590, 0x05020003, 0x05fdfc79, 0x0501f09d, - 0x591c0203, 0x4803c857, 0x9000058d, 0x05000041, - 0x812e59c0, 0x0500009a, 0x591c0202, 0x4803c857, - 0x82000580, 0x0000ffff, 0x05020082, 0x0509fe49, - 0x05000004, 0x591c0203, 0x90000d8e, 0x0502007d, - 0x592c020b, 0x4803c857, 0x90000503, 0x90000582, - 0x05020007, 0x592c0810, 0x591c0013, 0x4803c857, - 0x4807c857, 0x80040580, 0x05020072, 0x591c0416, - 0x4803c857, 0x8c000500, 0x0502006e, 0x42000000, - 0x0010b03c, 0x0515fed8, 0x41780800, 0x591c1006, - 0x60280000, 0x05f5fc7b, 0x592c0407, 0x4803c857, - 0x800001c0, 0x0500000b, 0x80080c80, 0x05001003, - 0x05ca0927, 0x80001040, 0x480a5c07, 0x800811c0, - 0x05020004, 0x0201f800, 0x0010f510, 0x0501f069, - 0x0509fb26, 0x591c0819, 0x591c001a, 0x48065809, - 0x4802580a, 0x592e4411, 0x81224110, 0x59300008, - 0x8c000500, 0x05ce0afe, 0x497a3809, 0x0001faa7, - 0x0502004c, 0x411e6000, 0x05fdfc35, 0x0501f059, - 0x05fdfc65, 0x05000015, 0x591c0006, 0x48026006, - 0x4926601d, 0x4936600a, 0x0509fdfb, 0x640e6407, - 0x492e6009, 0x591c0819, 0x591c101a, 0x48066019, - 0x480a601a, 0x4d380000, 0x591e7403, 0x4d300000, - 0x411e6000, 0x05fdfc22, 0x5c026000, 0x0005fc78, - 0x5c027000, 0x0501f043, 0x59a80030, 0x48023a05, - 0x0501f040, 0x59cc0407, 0x9000058b, 0x05020026, - 0x59340a00, 0x84040d0e, 0x48066a00, 0x592c0a05, - 0x82040d00, 0x000000ff, 0x90040d94, 0x05000002, - 0x640e6229, 0x59300008, 0x8c000500, 0x05ce0ad0, - 0x4d400000, 0x497a5c0a, 0x600e8000, 0x592c0a09, - 0x05e9fee1, 0x0515ffa2, 0x05020006, 0x0001fb5b, - 0x59300a29, 0x90040d83, 0x05080ae4, 0x497a6009, - 0x5c028000, 0x4a026403, 0x00000085, 0x64266203, - 0x640a6407, 0x42000800, 0x80004040, 0x050dfb80, - 0x0005fb2e, 0x4203e000, 0xb0800000, 0x6023f800, - 0x0501f018, 0x59cc0207, 0x82000580, 0x00002a00, - 0x05020004, 0x59a80030, 0x48023a05, 0x0501f011, - 0x812e59c0, 0x05c808c6, 0x0001ff6c, 0x497a6027, - 0x4a025a05, 0x00000103, 0x591c0008, 0x8c000500, - 0x05ce0aa7, 0x591c0402, 0x48025c07, 0x640e5a07, - 0x497a5c0a, 0x0001fb5b, 0x05fdfbdd, 0x05e9fb04, - 0x5c026000, 0x0005fc5a, 0x0501f002, 0x5c026000, - 0x5c025800, 0x1c01f000, 0x0501f813, 0x05fdf7fd, - 0x4933c857, 0x91380595, 0x05020004, 0x59a80030, - 0x48023a05, 0x0501f009, 0x91380596, 0x05020009, - 0x4d300000, 0x411e6000, 0x0515fa4a, 0x0005faec, - 0x0005fc5a, 0x5c026000, 0x497a381e, 0x0005fc5a, - 0x1c01f000, 0x4c5c0000, 0x591c0416, 0x84000540, - 0x48023c16, 0x59ccb80b, 0x4933c857, 0x491fc857, - 0x492fc857, 0x4803c857, 0x485fc857, 0x0509fd95, - 0x05020007, 0x8c5c053c, 0x05000005, 0x59a80030, - 0x48023a05, 0x497a381e, 0x0501f064, 0x4d300000, - 0x411e6000, 0x0505fe02, 0x5c026000, 0x591c0407, - 0x90000580, 0x0500005d, 0x591c0403, 0xb0000590, - 0x0502000a, 0x4d300000, 0x411e6000, 0x64066203, - 0x42000800, 0x80000043, 0x0005fb2e, 0x5c026000, - 0x497a381e, 0x0501f051, 0x591c0203, 0x9000058d, - 0x0500001c, 0x812e59c0, 0x05c80875, 0x592c020b, - 0x4803c857, 0x8c000500, 0x0502001b, 0x8c000502, - 0x05000014, 0x591c0416, 0x8c00051c, 0x05020007, - 0x591c0013, 0x4803c857, 0x800001c0, 0x0500000d, - 0x591c0014, 0x48023818, 0x4a023814, 0x0fffffff, - 0x592c0209, 0x8400051e, 0x48025a09, 0x42000000, - 0x0010b03e, 0x0515fe04, 0x64063a16, 0x0501f016, - 0x42000000, 0x0010b03f, 0x0515fdff, 0x641e3a16, - 0x0501f011, 0x8c5c053a, 0x05fe07fa, 0x59cc000a, - 0x592c1810, 0x4803c857, 0x480fc857, 0x800c0580, - 0x05fc07f4, 0x59cc000a, 0x4803c857, 0x48023818, - 0x48023817, 0x42000000, 0x0010b03d, 0x0515fdee, - 0x64163a16, 0x0509fd47, 0x0500001a, 0x591c0416, - 0x8c00051a, 0x05000017, 0x4803c857, 0x8c00051e, - 0x05000016, 0x4130b800, 0x05fdfb93, 0x0500000f, - 0x4926601d, 0x64066203, 0x647a6403, 0x585c041b, - 0x4802641b, 0x585c021b, 0x4802621b, 0x591e680a, - 0x4936600a, 0x0509fd24, 0x64066407, 0x42000800, - 0x80000040, 0x0005fb2e, 0x405e6000, 0x0501f003, - 0x5c00b800, 0x0509f3d8, 0x5c00b800, 0x0005f45a, - 0x4933c857, 0x4d1c0000, 0x05f5f8ce, 0x0502003f, - 0x59cc0001, 0x59341002, 0x80080580, 0x82000500, - 0x00ffffff, 0x05020037, 0x5930141b, 0x0509fddf, - 0x05c8081b, 0x591c1407, 0x90080587, 0x05000031, - 0x90080582, 0x0500002f, 0x90080580, 0x0500002d, - 0x591c0202, 0x82000d80, 0x0000ffff, 0x05000004, - 0x59301a1b, 0x800c0580, 0x05020026, 0x91380595, - 0x05000022, 0x4d300000, 0x4d2c0000, 0x411e6000, - 0x59325809, 0x0509f929, 0x05c80805, 0x592c0205, - 0x82000500, 0x000000ff, 0x90000594, 0x05000002, - 0x640e6229, 0x497a5c0a, 0x600e8000, 0x592c0a09, - 0x05e9fdf9, 0x0515feba, 0x05020006, 0x0001fb5b, - 0x59300a29, 0x90040d83, 0x050809fc, 0x497a6009, - 0x5c025800, 0x4a026403, 0x00000085, 0x64266203, - 0x640a6407, 0x42000800, 0x80004040, 0x0005fb2e, - 0x5c026000, 0x0501f003, 0x59a80030, 0x48023a05, - 0x497a381e, 0x0005fc5a, 0x5c023800, 0x1c01f000, - 0x4933c857, 0x4c580000, 0x4d2c0000, 0x59325809, - 0x59342200, 0x82102500, 0xffffdffd, 0x48126a00, - 0x91383595, 0x05000009, 0x0509f8fc, 0x05000048, - 0x0509ff80, 0x05020003, 0x6008b000, 0x0509ff62, - 0x0501f9dd, 0x0501f05b, 0x91cc1408, 0x6008b000, - 0x91341c06, 0x0501fe2b, 0x0502000f, 0x91cc140a, - 0x6008b000, 0x91341c08, 0x0501fe26, 0x0502000a, - 0x05d5faa9, 0x59342200, 0x59cc1007, 0x800811c0, - 0x05000003, 0x480a6801, 0x84102542, 0x48126a00, - 0x0501f04a, 0x4d3c0000, 0x417a7800, 0x0201f800, - 0x0010ec6c, 0x5c027800, 0x42000000, 0x0010b056, - 0x0515fd5d, 0x59340200, 0x84000558, 0x48026a00, - 0x4d300000, 0x05fdfb08, 0x05c40fb1, 0x4926601d, - 0x4936600a, 0x497a6009, 0x64066407, 0x64066403, - 0x600c3000, 0x0515fba9, 0x05d5fce1, 0x59240400, - 0x8c00050a, 0x0502000b, 0x41782800, 0x60043000, - 0x4d400000, 0x60a68000, 0x0511fe47, 0x5c028000, - 0x64126407, 0x641e6203, 0x6406642c, 0x0501f005, - 0x64066203, 0x602c0800, 0x05e5fe95, 0x05f5fbcb, - 0x5c026000, 0x0509f8b9, 0x0500001e, 0x0509ff3d, - 0x0502001e, 0x0501f99c, 0x0501f01a, 0x42000000, - 0x0010b059, 0x0515fd34, 0x4d3c0000, 0x417a7800, - 0x0201f800, 0x0010ec6c, 0x42000000, 0x0010b056, - 0x0515fd2d, 0x59340200, 0x84000558, 0x48026a00, - 0x600c3000, 0x41782800, 0x60142000, 0x4d400000, - 0x4d440000, 0x59368c03, 0x60a68000, 0x050df9a1, - 0x5c028800, 0x5c028000, 0x5c027800, 0x05d5fa5a, - 0x0005fc5a, 0x0501f002, 0x05fdfcdf, 0x5c025800, - 0x5c00b000, 0x1c01f000, 0x4933c857, 0x41380000, - 0xb1383498, 0x05c61f6e, 0x0c01f001, 0x001072e7, - 0x001072e4, 0x001072e7, 0x001072e7, 0x001072e7, - 0x001072e7, 0x001072e3, 0x001072e3, 0x001072e3, - 0x001072e3, 0x001072e3, 0x001072e3, 0x001072e3, - 0x001072e3, 0x001072e3, 0x001072e3, 0x001072e3, - 0x001072e3, 0x001072e3, 0x001072e3, 0x001072e3, - 0x001072e3, 0x001072e3, 0x001072e3, 0x001072e3, - 0x001072e3, 0x001072e3, 0x001072e3, 0x001072e3, - 0x001072e3, 0x001072e3, 0x001072e7, 0x001072e3, - 0x001072e7, 0x001072e7, 0x001072e3, 0x001072e3, - 0x001072e3, 0x001072e3, 0x001072e3, 0x001072e7, - 0x001072e3, 0x001072e3, 0x001072e3, 0x001072e3, - 0x001072e3, 0x001072e3, 0x001072e3, 0x001072e3, - 0x001072e3, 0x001072e7, 0x001072e7, 0x001072e3, - 0x001072e3, 0x001072e3, 0x001072e3, 0x001072e3, - 0x001072e3, 0x001072e3, 0x001072e3, 0x001072e3, - 0x001072e7, 0x001072e3, 0x001072e3, 0x001072e3, - 0x001072e3, 0x001072e3, 0x001072e7, 0x001072e7, - 0x001072e3, 0x001072e3, 0x001072e3, 0x001072e3, - 0x001072e7, 0x001072e3, 0x001072e3, 0x001072e3, - 0x001072e7, 0x001072e3, 0x001072e3, 0x001072e3, - 0x001072e7, 0x001072e3, 0x001072e3, 0x001072e3, - 0x001072e7, 0x001072e3, 0x001072e7, 0x001072e3, - 0x001072e3, 0x001072e3, 0x001072e3, 0x001072e3, - 0x001072e3, 0x001072e3, 0x001072e3, 0x05c5ff0c, - 0x64066203, 0x493a6403, 0x05f5f33c, 0x4933c857, - 0x64066203, 0x493a6403, 0x05f5f338, 0x59300403, - 0xb0003498, 0x05c61f02, 0x91383593, 0x05000083, - 0x913835a7, 0x05020043, 0x4933c857, 0x05f5fbdf, - 0x0515fbcf, 0x0509f914, 0x0500000c, 0x0509f926, - 0x0500003a, 0x59300403, 0x90000da2, 0x05020034, - 0x60140004, 0x05fdfca1, 0x05000031, 0x05fdfcb4, - 0x05000031, 0x0501f031, 0x600c0004, 0x05fdfc9b, - 0x0500002b, 0x05d5f9cc, 0x601c0800, 0x05e5fde4, - 0x0501f8f1, 0x4d440000, 0x59368c03, 0x83440580, - 0x000007fe, 0x05020007, 0x59a8121b, 0x84081540, - 0x05e9ff1d, 0x05020002, 0x8408154a, 0x480b521b, - 0x60a68000, 0x05f5fb22, 0x4d3c0000, 0x417a7800, - 0x0201f800, 0x0010ec6c, 0x5c027800, 0x916c0583, - 0x0500000b, 0x5932680a, 0x59340008, 0x800001c0, - 0x05020007, 0x59368c03, 0x4933c857, 0x4937c857, - 0x4947c857, 0x05e5fe7e, 0x0501f008, 0x42000000, - 0x0010b056, 0x0515fc6c, 0x60543000, 0x41782800, - 0x600c2000, 0x050df8e7, 0x5c028800, 0x0509fba6, - 0x0005f45a, 0x1c01f000, 0x0501f8c7, 0x05fdf7fc, - 0x91380594, 0x0500000c, 0x4933c857, 0xb13805a1, - 0x05000003, 0xb13805a0, 0x05fe07f7, 0x05f5fffa, - 0x05fe023c, 0x59300203, 0x9000058e, 0x0508015e, - 0x05c5feaf, 0x4933c857, 0x05f5fb90, 0x0515fb80, - 0x60082800, 0x59300403, 0xb0000591, 0x050c0258, - 0x4d3c0000, 0x417a7800, 0x0201f800, 0x0010ec6c, - 0x5c027800, 0x60583000, 0x41782800, 0x4d400000, - 0x4d440000, 0x59368c03, 0x60242000, 0x60a68000, - 0x050df8c0, 0x5c028800, 0x5c028000, 0x42000000, - 0x0010b056, 0x0515fc3c, 0x0509f8af, 0x0502000b, - 0x05d5f975, 0x0501f89c, 0x59340c03, 0x82040580, - 0x000007fe, 0x05fe07ce, 0x59a80a1b, 0x84040d40, - 0x4807521b, 0x05fdf7ca, 0x0509f8b7, 0x05020003, - 0x0501f891, 0x05fdf7c6, 0x59300403, 0x90000db2, - 0x05020003, 0x05d5fe8e, 0x05fdf7c1, 0x90000da2, - 0x05000889, 0x05fdf7be, 0x4933c857, 0x4803c857, - 0x0c01f001, 0x001073d6, 0x001073d6, 0x001073d6, - 0x001073d6, 0x001073d6, 0x001073d6, 0x001073d5, - 0x001073d5, 0x001073d5, 0x001073d5, 0x001073d5, - 0x001073d5, 0x001073d5, 0x001073d5, 0x001073d5, - 0x001073d5, 0x001073d5, 0x001073d5, 0x001073d5, - 0x001073d5, 0x001073d5, 0x001073d5, 0x001073d5, - 0x001073d5, 0x001073d5, 0x001073d5, 0x001073d5, - 0x001073d5, 0x001073d5, 0x001073d5, 0x001073db, - 0x001073f1, 0x001073d5, 0x001073f1, 0x001073f1, - 0x001073d5, 0x001073d5, 0x001073d5, 0x001073d5, - 0x001073d5, 0x001073f1, 0x001073f1, 0x001073d5, - 0x001073d5, 0x001073d5, 0x001073d5, 0x001073d5, - 0x001073d5, 0x001073d5, 0x001073d5, 0x001073e9, - 0x001073f1, 0x001073d5, 0x001073e4, 0x001073d5, - 0x001073d5, 0x001073d5, 0x001073e4, 0x001073d5, - 0x001073d5, 0x001073d5, 0x001073f1, 0x001073e7, - 0x001073d5, 0x001073d5, 0x001073d5, 0x001073d5, - 0x001073f1, 0x001073f1, 0x001073d5, 0x001073d5, - 0x001073d5, 0x001073d5, 0x001073f1, 0x001073d5, - 0x001073d5, 0x001073d5, 0x001073f1, 0x001073d5, - 0x001073d5, 0x001073d5, 0x001073f1, 0x001073d5, - 0x001073d5, 0x001073d5, 0x001073f1, 0x001073d5, - 0x001073f1, 0x001073d5, 0x001073d5, 0x001073d5, - 0x001073d5, 0x001073d5, 0x001073d5, 0x001073d5, - 0x001073d5, 0x05c5fe1a, 0x640a6203, 0x0509fb19, - 0x05000002, 0x643a6203, 0x0509f0a6, 0x64166203, - 0x59a80030, 0x48026205, 0x0509fb12, 0x05000002, + 0x59325809, 0x592e5801, 0x912cac06, 0x91cca406, + 0x59a8088c, 0x82040d00, 0x000003ff, 0x9004148f, + 0x05001011, 0x603cb000, 0x0519f97e, 0x592e5801, + 0x912cac06, 0x90080c8f, 0x05001008, 0x603cb000, + 0x0519f978, 0x592e5801, 0x912cac06, 0x9004148f, + 0x05001005, 0x603c1000, 0x4008b000, 0x0519f971, + 0x0501f003, 0x4004b000, 0x0519f96e, 0x5931d82d, + 0x58ef400a, 0x58ee580c, 0x4a025a05, 0x00000103, + 0x592e5801, 0x58ec0008, 0x0801f800, 0x0005fc5a, + 0x5c00b000, 0x5c00a800, 0x5c00a000, 0x5c025800, + 0x1c01f000, 0x4933c857, 0x4d2c0000, 0x4c500000, + 0x4c540000, 0x4c580000, 0x59cc0006, 0x82000d80, + 0x01000000, 0x05000021, 0x59cc0007, 0x9000b1c0, + 0x8258b500, 0x000000ff, 0x8058b104, 0x9058b402, + 0x90580c87, 0x05001002, 0x6018b000, 0x91cca406, + 0x59301009, 0x800811c0, 0x05c80829, 0x9008ac06, + 0x0519f948, 0x82000d00, 0xff000000, 0x800409c0, + 0x05000014, 0x8200b500, 0x000000ff, 0x05000011, + 0x8058b104, 0x90580c8e, 0x05001002, 0x6034b000, + 0x58081001, 0x800811c0, 0x05c80819, 0x9008ac06, + 0x0519f938, 0x0501f007, 0x59301009, 0x800811c0, + 0x05c80813, 0x48001006, 0x59cc0007, 0x48001007, + 0x05fdff33, 0x5c00b000, 0x5c00a800, 0x5c00a000, + 0x5c025800, 0x1c01f000, 0x4933c857, 0x4d2c0000, + 0x4c500000, 0x4c540000, 0x4c580000, 0x6008b000, + 0x59cc0806, 0x82040580, 0x01000000, 0x05000004, + 0x8204b500, 0x0000ffff, 0x8058b104, 0x91cca406, + 0x59300009, 0x9000ac06, 0x0519f91a, 0x05fdff1c, + 0x5c00b000, 0x5c00a800, 0x5c00a000, 0x5c025800, + 0x1c01f000, 0x4933c857, 0x4803c857, 0x4807c857, + 0x480bc857, 0x480fc857, 0x4813c857, 0x481bc857, + 0x492fc857, 0x4d2c0000, 0x4c000000, 0x05c9fb62, + 0x5c000000, 0x0500000d, 0x48025803, 0x481a5801, + 0x48125808, 0x48065805, 0x480a5806, 0x480e5807, + 0x5c001000, 0x4c080000, 0x480a5809, 0x412c1000, + 0x0001f81c, 0x90000541, 0x5c025800, 0x1c01f000, + 0x4933c857, 0x4937c857, 0x4d1c0000, 0x05f5fa0c, + 0x05020020, 0x59cc0001, 0x82000500, 0x00ffffff, + 0x59341002, 0x82081500, 0x00ffffff, 0x80080580, + 0x05020018, 0x497a6205, 0x60d40800, 0x0509ff24, + 0x0502000f, 0x591c001e, 0x800001c0, 0x0500000c, + 0x497a381e, 0x591c0416, 0x8c000502, 0x05c40fc0, + 0x84000502, 0x48023c16, 0x591c1407, 0x90080583, + 0x05000005, 0x90080586, 0x05000005, 0x05fdfc90, + 0x0501f004, 0x0501f805, 0x0501f002, 0x0501f8c4, + 0x5c023800, 0x1c01f000, 0x4d2c0000, 0x591e5809, + 0x4933c857, 0x491fc857, 0x493bc857, 0x492fc857, + 0x91380595, 0x050000b8, 0x91380596, 0x050200b4, + 0x4d300000, 0x411e6000, 0x59cc0207, 0x4803c857, + 0x82000d00, 0x0000ff00, 0x82040580, 0x00001700, + 0x05000004, 0x82040580, 0x00000300, 0x05020065, + 0x0509fe7d, 0x05000006, 0x591c0403, 0xb0000590, + 0x05020003, 0x05fdfc6e, 0x0501f09d, 0x591c0203, + 0x4803c857, 0x9000058d, 0x05000041, 0x812e59c0, + 0x0500009a, 0x591c0202, 0x4803c857, 0x82000580, + 0x0000ffff, 0x05020082, 0x0509fe6b, 0x05000004, + 0x591c0203, 0x90000d8e, 0x0502007d, 0x592c020b, + 0x4803c857, 0x90000503, 0x90000582, 0x05020007, + 0x592c0810, 0x591c0013, 0x4803c857, 0x4807c857, + 0x80040580, 0x05020072, 0x591c0416, 0x4803c857, + 0x8c000500, 0x0502006e, 0x42000000, 0x0010b2bc, + 0x0515ffc9, 0x41780800, 0x591c1006, 0x60280000, + 0x05f5fc7e, 0x592c0407, 0x4803c857, 0x800001c0, + 0x0500000b, 0x80080c80, 0x05001003, 0x05c60f68, + 0x80001040, 0x480a5c07, 0x800811c0, 0x05020004, + 0x0201f800, 0x0010f70c, 0x0501f069, 0x0509fb48, + 0x591c0819, 0x591c001a, 0x48065809, 0x4802580a, + 0x592e4411, 0x81224110, 0x59300008, 0x8c000500, + 0x05ce093f, 0x497a3809, 0x0001faa7, 0x0502004c, + 0x411e6000, 0x05fdfc2a, 0x0501f059, 0x05fdfc5e, + 0x05000015, 0x591c0006, 0x48026006, 0x4926601d, + 0x4936600a, 0x0509fe1d, 0x640e6407, 0x492e6009, + 0x591c0819, 0x591c101a, 0x48066019, 0x480a601a, + 0x4d380000, 0x591e7403, 0x4d300000, 0x411e6000, + 0x05fdfc17, 0x5c026000, 0x0005fc78, 0x5c027000, + 0x0501f043, 0x59a80030, 0x48023a05, 0x0501f040, + 0x59cc0407, 0x9000058b, 0x05020026, 0x59340a00, + 0x84040d0e, 0x48066a00, 0x592c0a05, 0x82040d00, + 0x000000ff, 0x90040d94, 0x05000002, 0x640e6229, + 0x59300008, 0x8c000500, 0x05ce0911, 0x4d400000, + 0x497a5c0a, 0x600e8000, 0x592c0a09, 0x05e9fe1f, + 0x0519f893, 0x05020006, 0x0001fb5b, 0x59300a29, + 0x90040d83, 0x05080b06, 0x497a6009, 0x5c028000, + 0x4a026403, 0x00000085, 0x64266203, 0x640a6407, + 0x42000800, 0x80004040, 0x050dfba7, 0x0005fb2e, + 0x4203e000, 0xb0800000, 0x6023f800, 0x0501f018, + 0x59cc0207, 0x82000580, 0x00002a00, 0x05020004, + 0x59a80030, 0x48023a05, 0x0501f011, 0x812e59c0, + 0x05c40f07, 0x0001ff6c, 0x497a6027, 0x4a025a05, + 0x00000103, 0x591c0008, 0x8c000500, 0x05ce08e8, + 0x591c0402, 0x48025c07, 0x640e5a07, 0x497a5c0a, + 0x0001fb5b, 0x05fdfbd2, 0x05e9fa1f, 0x5c026000, + 0x0005fc5a, 0x0501f002, 0x5c026000, 0x5c025800, + 0x1c01f000, 0x0501f813, 0x05fdf7fd, 0x4933c857, + 0x91380595, 0x05020004, 0x59a80030, 0x48023a05, + 0x0501f009, 0x91380596, 0x05020009, 0x4d300000, + 0x411e6000, 0x0515fb29, 0x0005faec, 0x0005fc5a, + 0x5c026000, 0x497a381e, 0x0005fc5a, 0x1c01f000, + 0x4c5c0000, 0x591c0416, 0x84000540, 0x48023c16, + 0x59ccb80b, 0x4933c857, 0x491fc857, 0x492fc857, + 0x4803c857, 0x485fc857, 0x0509fdb7, 0x05020007, + 0x8c5c053c, 0x05000005, 0x59a80030, 0x48023a05, + 0x497a381e, 0x0501f064, 0x4d300000, 0x411e6000, + 0x0505fe21, 0x5c026000, 0x591c0407, 0x90000580, + 0x0500005d, 0x591c0403, 0xb0000590, 0x0502000a, + 0x4d300000, 0x411e6000, 0x64066203, 0x42000800, + 0x80000043, 0x0005fb2e, 0x5c026000, 0x497a381e, + 0x0501f051, 0x591c0203, 0x9000058d, 0x0500001c, + 0x812e59c0, 0x05c40eb6, 0x592c020b, 0x4803c857, + 0x8c000500, 0x0502001b, 0x8c000502, 0x05000014, + 0x591c0416, 0x8c00051c, 0x05020007, 0x591c0013, + 0x4803c857, 0x800001c0, 0x0500000d, 0x591c0014, + 0x48023818, 0x4a023814, 0x0fffffff, 0x592c0209, + 0x8400051e, 0x48025a09, 0x42000000, 0x0010b2be, + 0x0515fef5, 0x64063a16, 0x0501f016, 0x42000000, + 0x0010b2bf, 0x0515fef0, 0x641e3a16, 0x0501f011, + 0x8c5c053a, 0x05fe07fa, 0x59cc000a, 0x592c1810, + 0x4803c857, 0x480fc857, 0x800c0580, 0x05fc07f4, + 0x59cc000a, 0x4803c857, 0x48023818, 0x48023817, + 0x42000000, 0x0010b2bd, 0x0515fedf, 0x64163a16, + 0x0509fd69, 0x0500001a, 0x591c0416, 0x8c00051a, + 0x05000017, 0x4803c857, 0x8c00051e, 0x05000016, + 0x4130b800, 0x05fdfb8c, 0x0500000f, 0x4926601d, + 0x64066203, 0x647a6403, 0x585c041b, 0x4802641b, + 0x585c021b, 0x4802621b, 0x591e680a, 0x4936600a, + 0x0509fd46, 0x64066407, 0x42000800, 0x80000040, + 0x0005fb2e, 0x405e6000, 0x0501f003, 0x5c00b800, + 0x0509f3fa, 0x5c00b800, 0x0005f45a, 0x4933c857, + 0x4d1c0000, 0x05f5f89e, 0x0502003f, 0x59cc0001, + 0x59341002, 0x80080580, 0x82000500, 0x00ffffff, + 0x05020037, 0x5930141b, 0x0509fe01, 0x05c40e5c, + 0x591c1407, 0x90080587, 0x05000031, 0x90080582, + 0x0500002f, 0x90080580, 0x0500002d, 0x591c0202, + 0x82000d80, 0x0000ffff, 0x05000004, 0x59301a1b, + 0x800c0580, 0x05020026, 0x91380595, 0x05000022, + 0x4d300000, 0x4d2c0000, 0x411e6000, 0x59325809, + 0x0509f94b, 0x05c40e46, 0x592c0205, 0x82000500, + 0x000000ff, 0x90000594, 0x05000002, 0x640e6229, + 0x497a5c0a, 0x600e8000, 0x592c0a09, 0x05e9fd37, + 0x0515ffab, 0x05020006, 0x0001fb5b, 0x59300a29, + 0x90040d83, 0x05080a1e, 0x497a6009, 0x5c025800, + 0x4a026403, 0x00000085, 0x64266203, 0x640a6407, + 0x42000800, 0x80004040, 0x0005fb2e, 0x5c026000, + 0x0501f003, 0x59a80030, 0x48023a05, 0x497a381e, + 0x0005fc5a, 0x5c023800, 0x1c01f000, 0x4933c857, + 0x4c580000, 0x4d2c0000, 0x59325809, 0x59342200, + 0x82102500, 0xffffdffd, 0x48126a00, 0x91383595, + 0x05000009, 0x0509f91e, 0x05000048, 0x0509ffa7, + 0x05020003, 0x6008b000, 0x0509ff89, 0x0501f9dd, + 0x0501f05b, 0x91cc1408, 0x6008b000, 0x91341c06, + 0x0501fe41, 0x0502000f, 0x91cc140a, 0x6008b000, + 0x91341c08, 0x0501fe3c, 0x0502000a, 0x05d5f8ec, + 0x59342200, 0x59cc1007, 0x800811c0, 0x05000003, + 0x480a6801, 0x84102542, 0x48126a00, 0x0501f04a, + 0x4d3c0000, 0x417a7800, 0x0201f800, 0x0010ee7a, + 0x5c027800, 0x42000000, 0x0010b2d6, 0x0515fe4e, + 0x59340200, 0x84000558, 0x48026a00, 0x4d300000, + 0x05fdfb01, 0x05c40df2, 0x4926601d, 0x4936600a, + 0x497a6009, 0x64066407, 0x64066403, 0x600c3000, + 0x0515fc9a, 0x05d5fb7b, 0x59240400, 0x8c00050a, + 0x0502000b, 0x41782800, 0x60043000, 0x4d400000, + 0x60a68000, 0x0511ff1f, 0x5c028000, 0x64126407, + 0x641e6203, 0x6406642c, 0x0501f005, 0x64066203, + 0x602c0800, 0x05e5fda9, 0x05f5fbce, 0x5c026000, + 0x0509f8db, 0x0500001e, 0x0509ff64, 0x0502001e, + 0x0501f99c, 0x0501f01a, 0x42000000, 0x0010b2d9, + 0x0515fe25, 0x4d3c0000, 0x417a7800, 0x0201f800, + 0x0010ee7a, 0x42000000, 0x0010b2d6, 0x0515fe1e, + 0x59340200, 0x84000558, 0x48026a00, 0x600c3000, + 0x41782800, 0x60142000, 0x4d400000, 0x4d440000, + 0x59368c03, 0x60a68000, 0x050df9c8, 0x5c028800, + 0x5c028000, 0x5c027800, 0x05d5f89d, 0x0005fc5a, + 0x0501f002, 0x05fdfcda, 0x5c025800, 0x5c00b000, + 0x1c01f000, 0x4933c857, 0x41380000, 0xb1383498, + 0x05c61daf, 0x0c01f001, 0x001074a6, 0x001074a3, + 0x001074a6, 0x001074a6, 0x001074a6, 0x001074a6, + 0x001074a2, 0x001074a2, 0x001074a2, 0x001074a2, + 0x001074a2, 0x001074a2, 0x001074a2, 0x001074a2, + 0x001074a2, 0x001074a2, 0x001074a2, 0x001074a2, + 0x001074a2, 0x001074a2, 0x001074a2, 0x001074a2, + 0x001074a2, 0x001074a2, 0x001074a2, 0x001074a2, + 0x001074a2, 0x001074a2, 0x001074a2, 0x001074a2, + 0x001074a2, 0x001074a6, 0x001074a2, 0x001074a6, + 0x001074a6, 0x001074a2, 0x001074a2, 0x001074a2, + 0x001074a2, 0x001074a2, 0x001074a6, 0x001074a2, + 0x001074a2, 0x001074a2, 0x001074a2, 0x001074a2, + 0x001074a2, 0x001074a2, 0x001074a2, 0x001074a2, + 0x001074a6, 0x001074a6, 0x001074a2, 0x001074a2, + 0x001074a2, 0x001074a2, 0x001074a2, 0x001074a2, + 0x001074a2, 0x001074a2, 0x001074a2, 0x001074a6, + 0x001074a2, 0x001074a2, 0x001074a2, 0x001074a2, + 0x001074a2, 0x001074a6, 0x001074a6, 0x001074a2, + 0x001074a2, 0x001074a2, 0x001074a2, 0x001074a6, + 0x001074a2, 0x001074a2, 0x001074a2, 0x001074a6, + 0x001074a2, 0x001074a2, 0x001074a2, 0x001074a6, + 0x001074a2, 0x001074a2, 0x001074a2, 0x001074a6, + 0x001074a2, 0x001074a6, 0x001074a2, 0x001074a2, + 0x001074a2, 0x001074a2, 0x001074a2, 0x001074a2, + 0x001074a2, 0x001074a2, 0x05c5fd4d, 0x64066203, + 0x493a6403, 0x05f5f33f, 0x4933c857, 0x64066203, + 0x493a6403, 0x05f5f33b, 0x59300403, 0xb0003498, + 0x05c61d43, 0x91383593, 0x05000083, 0x913835a7, + 0x05020043, 0x4933c857, 0x05f5fbe2, 0x0515fcc0, + 0x0509f936, 0x0500000c, 0x0509f948, 0x0500003a, + 0x59300403, 0x90000da2, 0x05020034, 0x60140004, + 0x05fdfc9c, 0x05000031, 0x05fdfcb4, 0x05000031, + 0x0501f031, 0x600c0004, 0x05fdfc96, 0x0500002b, + 0x05d5f80f, 0x601c0800, 0x05e5fcf8, 0x0501f8f1, + 0x4d440000, 0x59368c03, 0x83440580, 0x000007fe, + 0x05020007, 0x59a8121b, 0x84081540, 0x05e9fe63, + 0x05020002, 0x8408154a, 0x480b521b, 0x60a68000, + 0x05f5fb25, 0x4d3c0000, 0x417a7800, 0x0201f800, + 0x0010ee7a, 0x5c027800, 0x916c0583, 0x0500000b, + 0x5932680a, 0x59340008, 0x800001c0, 0x05020007, + 0x59368c03, 0x4933c857, 0x4937c857, 0x4947c857, + 0x05e5fd95, 0x0501f008, 0x42000000, 0x0010b2d6, + 0x0515fd5d, 0x60543000, 0x41782800, 0x600c2000, + 0x050df90e, 0x5c028800, 0x0509fbc8, 0x0005f45a, + 0x1c01f000, 0x0501f8c7, 0x05fdf7fc, 0x91380594, + 0x0500000c, 0x4933c857, 0xb13805a1, 0x05000003, + 0xb13805a0, 0x05fe07f7, 0x05f5fffd, 0x05fe0235, + 0x59300203, 0x9000058e, 0x05080180, 0x05c5fcf0, + 0x4933c857, 0x05f5fb93, 0x0515fc71, 0x60082800, + 0x59300403, 0xb0000591, 0x050c027f, 0x4d3c0000, + 0x417a7800, 0x0201f800, 0x0010ee7a, 0x5c027800, + 0x60583000, 0x41782800, 0x4d400000, 0x4d440000, + 0x59368c03, 0x60242000, 0x60a68000, 0x050df8e7, + 0x5c028800, 0x5c028000, 0x42000000, 0x0010b2d6, + 0x0515fd2d, 0x0509f8d1, 0x0502000b, 0x05d1ffb8, + 0x0501f89c, 0x59340c03, 0x82040580, 0x000007fe, + 0x05fe07ce, 0x59a80a1b, 0x84040d40, 0x4807521b, + 0x05fdf7ca, 0x0509f8d9, 0x05020003, 0x0501f891, + 0x05fdf7c6, 0x59300403, 0x90000db2, 0x05020003, + 0x05d5fd72, 0x05fdf7c1, 0x90000da2, 0x05000889, + 0x05fdf7be, 0x4933c857, 0x4803c857, 0x0c01f001, + 0x00107595, 0x00107595, 0x00107595, 0x00107595, + 0x00107595, 0x00107595, 0x00107594, 0x00107594, + 0x00107594, 0x00107594, 0x00107594, 0x00107594, + 0x00107594, 0x00107594, 0x00107594, 0x00107594, + 0x00107594, 0x00107594, 0x00107594, 0x00107594, + 0x00107594, 0x00107594, 0x00107594, 0x00107594, + 0x00107594, 0x00107594, 0x00107594, 0x00107594, + 0x00107594, 0x00107594, 0x0010759a, 0x001075b0, + 0x00107594, 0x001075b0, 0x001075b0, 0x00107594, + 0x00107594, 0x00107594, 0x00107594, 0x00107594, + 0x001075b0, 0x001075b0, 0x00107594, 0x00107594, + 0x00107594, 0x00107594, 0x00107594, 0x00107594, + 0x00107594, 0x00107594, 0x001075a8, 0x001075b0, + 0x00107594, 0x001075a3, 0x00107594, 0x00107594, + 0x00107594, 0x001075a3, 0x00107594, 0x00107594, + 0x00107594, 0x001075b0, 0x001075a6, 0x00107594, + 0x00107594, 0x00107594, 0x00107594, 0x001075b0, + 0x001075b0, 0x00107594, 0x00107594, 0x00107594, + 0x00107594, 0x001075b0, 0x00107594, 0x00107594, + 0x00107594, 0x001075b0, 0x00107594, 0x00107594, + 0x00107594, 0x001075b0, 0x00107594, 0x00107594, + 0x00107594, 0x001075b0, 0x00107594, 0x001075b0, + 0x00107594, 0x00107594, 0x00107594, 0x00107594, + 0x00107594, 0x00107594, 0x00107594, 0x00107594, + 0x05c5fc5b, 0x640a6203, 0x0509fb3b, 0x05000002, + 0x643a6203, 0x0509f0c8, 0x64166203, 0x59a80030, + 0x48026205, 0x0509fb34, 0x05000002, 0x643a6203, + 0x59a8002e, 0x48026006, 0x1c01f000, 0x5930082a, + 0x49780a05, 0x0501f00b, 0x0509fb10, 0x0005f45a, + 0x05d5fcf6, 0x05f5fb96, 0x05000003, 0x05f5fae9, + 0x0005f45a, 0x05f5fae7, 0x0005fc5a, 0x05f5f37c, + 0x4933c857, 0x640a6203, 0x0509fb1f, 0x05000002, 0x643a6203, 0x59a8002e, 0x48026006, 0x1c01f000, - 0x5930082a, 0x49780a05, 0x0501f00b, 0x0509faee, - 0x0005f45a, 0x05d5fe12, 0x05f5fb93, 0x05000003, - 0x05f5fae6, 0x0005f45a, 0x05f5fae4, 0x0005fc5a, - 0x05f5f379, 0x4933c857, 0x640a6203, 0x0509fafd, - 0x05000002, 0x643a6203, 0x59a8002e, 0x48026006, - 0x1c01f000, 0x4933c857, 0x0505ff18, 0x05000025, - 0x4d2c0000, 0x0509fd9b, 0x05020007, 0x4d400000, - 0x60c68000, 0x60100800, 0x0509fbda, 0x5c028000, - 0x0501f01b, 0x59300c07, 0x90040590, 0x05000003, - 0x90040591, 0x05020007, 0x64c65a07, 0x6412580e, - 0x4a02580f, 0x000000ff, 0x0001fb5b, 0x0501f010, - 0x592c0405, 0x8c00051e, 0x0500000d, 0x4a025a05, - 0x00000103, 0x4a025806, 0x01000000, 0x4da00000, - 0x4cec0000, 0x5931d82d, 0x58ef400a, 0x58ec0008, - 0x0801f800, 0x5c01d800, 0x5c034000, 0x5c025800, - 0x1c01f000, 0x4933c857, 0x59340400, 0x82000500, - 0x000000ff, 0x9000348c, 0x05c61dc9, 0x59303403, - 0xb0180d8d, 0x05080316, 0x90180db3, 0x050802da, - 0x90180da8, 0x05080026, 0x90180da9, 0x05080031, - 0xb0180d97, 0x050c00e2, 0x90180d9f, 0x05fc031a, - 0xb0180d95, 0x05fc02fa, 0x90180d80, 0x05fc05d5, - 0x90180da2, 0x05fc0336, 0x90180db5, 0x05fc041e, - 0x90180db9, 0x05fc058b, 0x90180dbd, 0x05fc0385, - 0xb0180d84, 0x05fc03b1, 0xb0180d89, 0x05fc03e4, - 0xb0180d83, 0x0508041f, 0xb0180d91, 0x05080479, + 0x4933c857, 0x0505ff3a, 0x05000025, 0x4d2c0000, + 0x0509fdc2, 0x05020007, 0x4d400000, 0x60c68000, + 0x60100800, 0x0509fbfc, 0x5c028000, 0x0501f01b, + 0x59300c07, 0x90040590, 0x05000003, 0x90040591, + 0x05020007, 0x64c65a07, 0x6412580e, 0x4a02580f, + 0x000000ff, 0x0001fb5b, 0x0501f010, 0x592c0405, + 0x8c00051e, 0x0500000d, 0x4a025a05, 0x00000103, + 0x4a025806, 0x01000000, 0x4da00000, 0x4cec0000, + 0x5931d82d, 0x58ef400a, 0x58ec0008, 0x0801f800, + 0x5c01d800, 0x5c034000, 0x5c025800, 0x1c01f000, + 0x4933c857, 0x83340580, 0x0010ce8f, 0x05020007, + 0x91380d95, 0x05000003, 0x91380d96, 0x05fe0149, + 0x0515fb8d, 0x0005f45a, 0x59340400, 0x82000500, + 0x000000ff, 0x9000348c, 0x05c61c01, 0x59303403, + 0xb0180d8d, 0x0508032f, 0x90180db3, 0x050802f3, + 0x90180da8, 0x0508003f, 0x90180da9, 0x0508004a, + 0xb0180d97, 0x050c0100, 0x90180d9f, 0x05fc030c, + 0xb0180d95, 0x05fc02ec, 0x90180d80, 0x05fc05cc, + 0x90180da2, 0x05fc0328, 0x90180db5, 0x05fc0415, + 0x90180db9, 0x05fc0582, 0x90180dbd, 0x05fc037c, + 0xb0180d84, 0x05fc03a8, 0xb0180d89, 0x05fc03db, + 0xb0180d83, 0x05080438, 0xb0180d91, 0x05080492, 0x90180d84, 0x05020002, 0x60040000, 0x91380d95, - 0x05000004, 0x91380d96, 0x05fe012a, 0x0501f1ee, - 0x4c000000, 0x0515fa74, 0x5c000000, 0x4d2c0000, + 0x05000004, 0x91380d96, 0x05fe011a, 0x0501f1f0, + 0x4c000000, 0x0515fb5c, 0x5c000000, 0x4d2c0000, 0x4d3c0000, 0x0c01f804, 0x5c027800, 0x5c025800, - 0x1c01f000, 0x0010746c, 0x00107470, 0x0010746c, - 0x001074c2, 0x0010746c, 0x001075c6, 0x00107650, - 0x0010746c, 0x0010746c, 0x00107614, 0x0010746c, - 0x0010761f, 0x4933c857, 0x497a6008, 0x59300809, + 0x1c01f000, 0x00107634, 0x00107638, 0x00107634, + 0x0010768a, 0x00107634, 0x00107790, 0x0010781a, + 0x00107634, 0x00107634, 0x001077de, 0x00107634, + 0x001077e9, 0x4933c857, 0x497a6008, 0x59300809, 0x58040000, 0x4a000a05, 0x00000103, 0x0005f45a, 0x4933c857, 0x40000000, 0x40000000, 0x1c01f000, - 0x4933c857, 0x05e5ff49, 0x59a80077, 0xb00005b4, - 0x0502003e, 0x0511fbb4, 0x0502000e, 0x0501f83e, - 0x0505fe9a, 0x05000009, 0x0509fd1e, 0x05020007, - 0x41780800, 0x4d400000, 0x60028000, 0x0509fb5d, - 0x5c028000, 0x0501f002, 0x05d5f84f, 0x0005f45a, - 0x0505fe8e, 0x05000005, 0x0509fd12, 0x05020003, - 0x05fdff71, 0x0005f45a, 0x417a7800, 0x0201f800, - 0x0010ec6c, 0x42000000, 0x0010b056, 0x0515fb06, + 0x4933c857, 0x05e5fe5b, 0x59a80077, 0xb00005b4, + 0x0502003e, 0x0511fc83, 0x0502000e, 0x0501f83e, + 0x0505feb3, 0x05000009, 0x0509fd3c, 0x05020007, + 0x41780800, 0x4d400000, 0x60028000, 0x0509fb76, + 0x5c028000, 0x0501f002, 0x05d1fe89, 0x0005f45a, + 0x0505fea7, 0x05000005, 0x0509fd30, 0x05020003, + 0x05fdff68, 0x0005f45a, 0x417a7800, 0x0201f800, + 0x0010ee7a, 0x42000000, 0x0010b2d6, 0x0515fbee, 0x59340200, 0x84000558, 0x48026a00, 0x600c3000, - 0x0515f95a, 0x4d300000, 0x05fdf8af, 0x05c40d58, + 0x0515fa42, 0x4d300000, 0x05fdf89f, 0x05c40b90, 0x4926601d, 0x4936600a, 0x497a6009, 0x64066407, 0x64066403, 0x59240400, 0x8c00050a, 0x0502000b, 0x64126407, 0x641e6203, 0x6406642c, 0x60043000, - 0x4d400000, 0x60a68000, 0x41782800, 0x0511fbee, - 0x5c028000, 0x0501f005, 0x602c0800, 0x05e5fc40, - 0x64066203, 0x05f5f975, 0x5c026000, 0x05fdff4a, - 0x05d5f821, 0x0005f45a, 0x05fdff47, 0x60040000, - 0x0501f0d6, 0x4933c857, 0x59340200, 0x8c000500, - 0x05000009, 0x4d3c0000, 0x417a7800, 0x05e5fc25, + 0x4d400000, 0x60a68000, 0x41782800, 0x0511fcbd, + 0x5c028000, 0x0501f005, 0x602c0800, 0x05e5fb4b, + 0x64066203, 0x05f5f96f, 0x5c026000, 0x05fdff41, + 0x05d1fe5b, 0x0005f45a, 0x05fdff3e, 0x60040000, + 0x0501f0d8, 0x4933c857, 0x59340200, 0x8c000500, + 0x05000009, 0x4d3c0000, 0x417a7800, 0x05e5fb30, 0x5c027800, 0x8d0c0520, 0x05000003, 0x60180800, - 0x05e5fc2b, 0x1c01f000, 0x4933c857, 0x59a80877, + 0x05e5fb36, 0x1c01f000, 0x4933c857, 0x59a80877, 0xb00405b4, 0x0500000e, 0x4807c857, 0x82040580, - 0x00000100, 0x050200ad, 0x59cc0408, 0x4803c857, - 0x8c000500, 0x050000a9, 0x59341403, 0x82080580, - 0x000007fe, 0x05000006, 0x0501f0a4, 0x59341403, - 0x82080580, 0x000007fe, 0x05020013, 0x59a8021b, + 0x00000100, 0x050200af, 0x59cc0408, 0x4803c857, + 0x8c000500, 0x050000ab, 0x59341403, 0x82080580, + 0x000007fe, 0x05000006, 0x0501f0a6, 0x59341403, + 0x82080580, 0x000007fe, 0x05020015, 0x59a8021b, 0x8c000506, 0x0500000e, 0x59cc0000, 0x82000500, 0x000000ff, 0x59240c08, 0x80040580, 0x05000008, - 0x05d1fff1, 0x0005fc5a, 0x42000000, 0x0010b047, - 0x0515fab1, 0x6006d800, 0x05e5f04f, 0x0501fa6d, - 0x0501f046, 0x41780800, 0x05e5fcea, 0x59341403, - 0x82080580, 0x000007fc, 0x05020024, 0x4a026802, - 0x00fffffc, 0x0505fe21, 0x0500000c, 0x0509fca5, - 0x0502000a, 0x0501f8ac, 0x41780800, 0x4d400000, - 0x60028000, 0x0509fae3, 0x5c028000, 0x60100800, - 0x05e5fbef, 0x0005f45a, 0x60100800, 0x05e5fbec, - 0x05d1ffd1, 0x59300c29, 0x900405a1, 0x05000003, - 0xb0040591, 0x0006045a, 0x05d5fa21, 0x61f6880f, - 0x42003000, 0x00fffffd, 0x05e5fc0b, 0x05c60ce4, - 0x4936600a, 0x497a6c12, 0x640e601e, 0x64066203, - 0x648a6403, 0x05f5f111, 0x59a8008d, 0x8c000502, - 0x0500000d, 0x05e9fd18, 0x60401000, 0x05020008, - 0x59340002, 0x82000500, 0x00ff0000, 0x82000580, - 0x00ff0000, 0x05000004, 0x60201000, 0x05e9f9fe, - 0x05020056, 0x0505fdf1, 0x05000057, 0x0509fc75, - 0x05020005, 0x592c0405, 0x8c00051c, 0x05fe07ca, - 0x0501f879, 0x60140800, 0x05e5fbc1, 0x64066203, - 0x640e6403, 0x05f5f0f5, 0x59cc0408, 0x8c000518, - 0x05000017, 0x0509f978, 0x05e9fcfb, 0x05000008, - 0x59cc0408, 0x8c000516, 0x05000005, 0x59300429, - 0x900005a1, 0x05fe07b8, 0x1c01f000, 0x59a8021b, - 0x8400054a, 0x4803521b, 0x4803541b, 0x59a8000f, - 0x497b8830, 0x84000570, 0x48038832, 0x59300429, - 0x900005a1, 0x05fe07ac, 0x1c01f000, 0x59a8021b, - 0xb0000510, 0xb0000590, 0x05000009, 0x61bc1001, - 0x42024800, 0x0010b111, 0x480a4805, 0x480b500f, - 0x497b8830, 0x84081570, 0x480b8832, 0x0509f973, - 0x59a8021b, 0x84000548, 0x4803521b, 0x4803541b, - 0x0511fb1a, 0x05fe0798, 0x599c0019, 0x8c000510, - 0x0502002d, 0x59a8021b, 0x8400054c, 0x4803521b, - 0x601c0800, 0x05e5fb8a, 0x417a7800, 0x05e5fb7d, - 0x61bc3801, 0x61a00001, 0x05f1f917, 0x05e40bae, - 0x05c60c87, 0x4936600a, 0x05e5fe56, 0x05020002, - 0x497a6416, 0x59340200, 0x8400051a, 0x48026a00, - 0x600c0800, 0x05e5fb7a, 0x64066407, 0x64066203, - 0x640a6403, 0x05f5f0ad, 0x05fdfe83, 0x60040000, - 0x0501f012, 0x599c0017, 0x8c00050a, 0x05fc07ae, - 0x60100800, 0x05e5fb6e, 0x49375082, 0x59a8021b, - 0x8c000508, 0x05000008, 0x599c0018, 0x8c00051c, - 0x05000005, 0x61a00807, 0x42001000, 0x0010f674, - 0x05f1fed4, 0x0005f45a, 0x4933c857, 0x80003540, - 0x05000003, 0x601c0800, 0x05e5fb5d, 0x801831c0, - 0x0502000f, 0x59302009, 0x801021c0, 0x05000004, - 0x58100405, 0x8c00051e, 0x05020009, 0x59341c03, - 0x60102000, 0x60483000, 0x4d200000, 0x59364013, - 0x81224130, 0x05ddffd7, 0x5c024000, 0x05d1ff32, - 0x0005f45a, 0x4c5c0000, 0x4d2c0000, 0x59325809, - 0x0005f8e2, 0x5c025800, 0x59cc0008, 0x48002805, - 0x59cc0009, 0x48002806, 0x49782807, 0x49782808, - 0x49782809, 0x4978280a, 0x59cc0013, 0x8c00053e, - 0x05000009, 0x59cc0414, 0x900001c0, 0x59ccbc15, - 0x805c0540, 0x48002807, 0x59cc0416, 0x900001c0, - 0x48002808, 0x59cc0017, 0x8c00053e, 0x05000009, - 0x59cc0418, 0x900001c0, 0x59ccbc19, 0x805c0540, - 0x48002809, 0x59cc041a, 0x900001c0, 0x4800280a, - 0x5c00b800, 0x1c01f000, 0x4933c857, 0x59a80077, - 0x90000594, 0x0502003a, 0x59a8008d, 0x8c000502, - 0x05000011, 0x05e9fc60, 0x60401000, 0x05020008, - 0x59340002, 0x82000500, 0x00ff0000, 0x82000580, - 0x00ff0000, 0x05000008, 0x60201000, 0x05e9f946, - 0x05000005, 0x59a8008d, 0x8400054c, 0x4803508d, - 0x0501f027, 0x916c0583, 0x0502000c, 0x59300009, - 0x80000540, 0x05020009, 0x59341c03, 0x60182000, - 0x604c3000, 0x4d200000, 0x59364013, 0x81224130, - 0x05ddff8c, 0x5c024000, 0x05e5fc5b, 0x05fdfeca, - 0x0501fa47, 0x05020016, 0x59340404, 0x80000540, - 0x05000013, 0x60180800, 0x05e5faf9, 0x0505fd1f, - 0x0500000d, 0x0509fba3, 0x05020007, 0x41780800, - 0x4d400000, 0x60028000, 0x0509f9e2, 0x5c028000, - 0x0005f45a, 0x4a025a05, 0x00000103, 0x4a025806, - 0x02000000, 0x05d1fed0, 0x0005f45a, 0x05e9f8d6, - 0x0505fd0e, 0x05000005, 0x0509fb92, 0x05020003, - 0x05fdfdf1, 0x0005f45a, 0x05fdfdef, 0x0515f8ba, - 0x80000580, 0x59a8008d, 0x8c00050c, 0x05000004, - 0x8400050c, 0x4803508d, 0x90000541, 0x05fdf777, - 0x4933c857, 0x59a80077, 0x90000594, 0x05020006, - 0x602c0800, 0x05e5fad2, 0x64066203, 0x64066403, - 0x05f5f006, 0x60040000, 0x05fdf76c, 0x4933c857, - 0x40003000, 0x59a80077, 0x90000584, 0x05020018, - 0x9018358b, 0x05020015, 0x5930081d, 0x58040200, - 0x8c000500, 0x05080771, 0x58040200, 0x8c000508, - 0x0500000c, 0x84000508, 0x48000a00, 0x600c0800, - 0x05e5fabb, 0x5930080a, 0x49780806, 0x4a026202, - 0x0000ffff, 0x64066203, 0x65466403, 0x05f1f7eb, - 0x601c0800, 0x05e5fab2, 0x0005f45a, 0x60040000, - 0x05fdf74e, 0x4803c857, 0x4d2c0000, 0x4d3c0000, - 0x0c01f804, 0x5c027800, 0x5c025800, 0x1c01f000, - 0x0010746c, 0x00107673, 0x0010746c, 0x001076b7, - 0x0010746c, 0x0010770c, 0x00107650, 0x0010746c, - 0x0010746c, 0x00107722, 0x0010746c, 0x0010772d, - 0x4933c857, 0x4d1c0000, 0x59301403, 0x90080583, - 0x0500001d, 0x9008159e, 0x05020019, 0x91381595, - 0x05020016, 0x4d300000, 0x5930141b, 0x0509f957, - 0x05c40b93, 0x591c1416, 0x8c08051e, 0x0500000b, - 0x05f9fee5, 0x05000009, 0x05e5fe8a, 0x4926601d, - 0x59340200, 0x8c000508, 0x05000003, 0x4a026416, - 0x00000100, 0x0505ff34, 0x82081500, 0xffff1fff, - 0x480a3c16, 0x5c026000, 0x0005fc5a, 0x5c023800, - 0x1c01f000, 0x05fdff55, 0x05fdf7fd, 0x4933c857, - 0x42000000, 0x0010b05a, 0x0515f91f, 0x0515f84e, - 0x05e5fd42, 0x0505fc99, 0x05000007, 0x0509fb1d, - 0x05020005, 0x6008b000, 0x0509faff, 0x05fdfd7a, - 0x0005f45a, 0x0501f8c3, 0x05020021, 0x417a7800, - 0x05e5fa5c, 0x417a7800, 0x0201f800, 0x0010ec6c, - 0x42000000, 0x0010b056, 0x0515f90b, 0x59340200, - 0x84000558, 0x48026a00, 0x640a6403, 0x600c3000, - 0x0511ff5e, 0x59240400, 0x8c00050a, 0x0502000b, - 0x4d400000, 0x41782800, 0x60143000, 0x60a68000, - 0x0511f9fd, 0x5c028000, 0x641e6203, 0x64126407, - 0x6406642c, 0x1c01f000, 0x600c0800, 0x05e5fa4c, - 0x64066203, 0x05f1ff81, 0x05fdf7fb, 0x59cc0407, - 0x90000589, 0x05020009, 0x59340412, 0x82000500, - 0x000000ff, 0x0500000b, 0x80000040, 0x48026c12, - 0x642a6006, 0x05fdf7f0, 0x59cc0207, 0x82000500, - 0x0000ff00, 0x82000580, 0x00001900, 0x05fc07d2, - 0x05fdfd45, 0x80000580, 0x05fdf6d4, 0x4933c857, - 0x0505fc5a, 0x0500000b, 0x0509fade, 0x05020009, - 0x4c580000, 0x6008b000, 0x0509fabf, 0x5c00b000, - 0x05fdfd39, 0x601c0800, 0x05e5fa29, 0x0005f45a, - 0x59340403, 0x82000580, 0x000007fc, 0x05020005, - 0x60100000, 0x05fdf8d5, 0x0500001a, 0x0501f026, - 0x05fdfd2d, 0x59cc3407, 0x82183500, 0x000000ff, - 0x90180585, 0x05000016, 0x9018058b, 0x05000011, - 0x59cc0207, 0x82000500, 0x0000ff00, 0x05020003, - 0x90180589, 0x0500000e, 0x82000580, 0x00001900, - 0x05020008, 0x90180589, 0x05000009, 0x60100800, - 0x05e5fa0b, 0x05d1fdf0, 0x0511ffe3, 0x0005f45a, - 0x0511ffe1, 0x60040000, 0x05fdf6a4, 0x0505fc2b, - 0x59325809, 0x05000008, 0x592c0205, 0x82000580, - 0x00000139, 0x05fc07f7, 0x592c0405, 0x8c00051e, - 0x05fe07f4, 0x59340412, 0x800001c0, 0x05000006, - 0x80000040, 0x48026c12, 0x642a6006, 0x645a6403, - 0x1c01f000, 0x59340403, 0x82000580, 0x000007fe, - 0x05020006, 0x59a8021b, 0x84000540, 0x4803521b, - 0x05e1ff3d, 0x05fdf7e3, 0x0511ffc3, 0x417a7800, - 0x0201f800, 0x0010ec6c, 0x60143000, 0x0511fee7, - 0x42000000, 0x0010b056, 0x0515f88b, 0x05fdf7da, - 0x4933c857, 0x0501f844, 0x05020006, 0x60140800, - 0x05e5f9db, 0x64066203, 0x640e6403, 0x05f1f70f, - 0x60100800, 0x05e5f9d6, 0x0509fa82, 0x05020007, - 0x4c580000, 0x6008b000, 0x0509fa63, 0x5c00b000, - 0x05fdfcdd, 0x0005f45a, 0x05fdfcdb, 0x0511ffa6, - 0x80000580, 0x05fdf669, 0x4933c857, 0x0501f82e, - 0x05020006, 0x60240800, 0x05e5f9c5, 0x64066203, - 0x64166403, 0x05f1f6f9, 0x0511ff9b, 0x60040000, - 0x05fdf65e, 0x4933c857, 0x5930081d, 0x58040200, - 0x8c000500, 0x05080669, 0x0501f81f, 0x05020006, - 0x602c0800, 0x05e5f9b6, 0x64066203, 0x64066403, - 0x05f1f6ea, 0x5930080a, 0x58040403, 0x82000580, - 0x000007fe, 0x05020004, 0x600c2800, 0x0509fe60, - 0x0005f45a, 0x0511ff84, 0x60040000, 0x05fdf647, - 0x4933c857, 0x59cc0407, 0x90000583, 0x05020009, - 0x59cc0207, 0x82000500, 0x0000ff00, 0x82000d80, - 0x00002a00, 0x05000003, 0x82000d80, 0x00001e00, - 0x1c01f000, 0x4933c857, 0x90000541, 0x1c01f000, - 0x4933c857, 0x4d400000, 0x4c580000, 0x60028000, - 0x05d1ffcf, 0x59a8021b, 0x90000543, 0x4803521b, - 0x0501f881, 0x05000005, 0x4d300000, 0x4d340000, - 0x4d440000, 0x0501f024, 0x0501f8aa, 0x05000028, - 0x4d300000, 0x4d340000, 0x4d440000, 0x83240580, - 0x0010b111, 0x0502001d, 0x59cc0408, 0x8c00051e, - 0x05020009, 0x42000800, 0x0010b111, 0x58040406, - 0x8c000500, 0x05020004, 0x59a8021b, 0x84000552, - 0x4803521b, 0x59240400, 0x8c00050a, 0x05020005, - 0x60aa8000, 0x61fe89ff, 0x60083000, 0x0511fe84, - 0x60aa8000, 0x4d3c0000, 0x60027804, 0x0201f800, - 0x0010ebe6, 0x5c027800, 0x42000000, 0x0010b056, - 0x0515f811, 0x05d1fe62, 0x05d5f85d, 0x600a8000, - 0x5c028800, 0x5c026800, 0x5c026000, 0x41780800, - 0x05e5fa48, 0x59cc0800, 0x82040d00, 0x00ffffff, - 0x59240200, 0xb0000566, 0x48024a00, 0x48064805, - 0x812000f0, 0x80040540, 0x48026813, 0x812241c0, - 0x05020005, 0x4c040000, 0x60040000, 0x05e9f86f, - 0x5c000800, 0x4927c857, 0x83240580, 0x0010b111, - 0x0502003a, 0x59a8121b, 0x59cc0408, 0x8c00051a, - 0x05020005, 0x84081514, 0x4a0370e5, 0x00000800, - 0x0501f004, 0x84081554, 0x4a0370e5, 0x00000c00, - 0x480b521b, 0x4807500f, 0x80040110, 0x48035018, - 0x48038881, 0x59a80a1b, 0x84040d50, 0x59cc0013, - 0x8c00053e, 0x05000003, 0x8c000536, 0x05000004, - 0x59cc0017, 0x8c000536, 0x05020002, 0x84040d10, - 0x4807521b, 0x4807541b, 0x59a8021b, 0x8c000506, - 0x0500000c, 0x916c0583, 0x05000004, 0x83240580, - 0x0010b111, 0x0500000b, 0x59240400, 0x8c00050c, - 0x05000008, 0x64866429, 0x0509f986, 0x0501f005, - 0x4c040000, 0x0509fdb1, 0x05d1ff11, 0x5c000800, - 0xb0040510, 0xb0000590, 0x05000008, 0x05e9fa5a, - 0x05000006, 0x59cc0009, 0x4803502c, 0x59cc000a, - 0x4803502d, 0x0505fed0, 0x5c00b000, 0x5c028000, - 0x1c01f000, 0x4933c857, 0x59a8141b, 0x82080580, - 0x0000ffff, 0x0500000b, 0x4c080000, 0x05e9fa4a, - 0x5c001000, 0x0502000b, 0x59cc0408, 0x8c000518, - 0x05000005, 0x8c08050a, 0x0500000a, 0x80000580, - 0x1c01f000, 0x8c080508, 0x05fe07fd, 0x0501f005, - 0x90080530, 0x05020003, 0x8c080506, 0x05fe07f8, - 0x4a03541b, 0x0000ffff, 0x42000000, 0x0010afa3, - 0x0511ff9d, 0x60303000, 0x61fc19ff, 0x601c2000, - 0x4d200000, 0x417a4000, 0x05ddfd76, 0x5c024000, - 0x4d400000, 0x4d3c0000, 0x60043000, 0x0511fdfc, - 0x60aa8000, 0x60027804, 0x0201f800, 0x0010ebe6, - 0x5c028000, 0x5c027800, 0x90000541, 0x1c01f000, - 0x4933c857, 0x4c580000, 0x59a80018, 0x800001c0, - 0x05000021, 0x59341806, 0x800c19c0, 0x0500001e, - 0x820c1d80, 0xdeaddead, 0x0500001a, 0x59cc1000, - 0x82081500, 0x00ffff00, 0x80081110, 0x80080580, - 0x05000004, 0x42000000, 0x0010b039, 0x0501f010, - 0x91cc140b, 0x6008b000, 0x91341c06, 0x0501f829, - 0x05000004, 0x42000000, 0x0010b03a, 0x0501f008, - 0x91cc140d, 0x6008b000, 0x91341c08, 0x0501f821, - 0x05000005, 0x42000000, 0x0010b03b, 0x0511ff66, - 0x90000541, 0x5c00b000, 0x1c01f000, 0x4933c857, - 0x59cc0206, 0x90000594, 0x05020015, 0x59cc0407, - 0x82000580, 0x00000800, 0x05020011, 0x59cc0207, - 0x8c00051a, 0x0500000d, 0x82000500, 0x00000f00, - 0x82000580, 0x00000100, 0x05020008, 0x59cc020a, - 0x8c000508, 0x05020003, 0x8c00050a, 0x05000003, - 0x80000580, 0x1c01f000, 0x90000541, 0x1c01f000, - 0x5c000000, 0x4c000000, 0x4803c857, 0x480bc857, - 0x480fc857, 0x485bc857, 0x50080800, 0x500c0000, - 0x80042580, 0x05020007, 0x80081000, 0x800c1800, - 0x8058b040, 0x05fe07f9, 0x80000580, 0x1c01f000, - 0x4803c857, 0x4807c857, 0x480bc857, 0x480fc857, - 0x80040480, 0x05001004, 0x60040000, 0x90040d41, - 0x1c01f000, 0x41780000, 0x05fdf7fd, 0xb1380493, - 0x05c61987, 0xb138048b, 0x05c41985, 0x0c01f001, - 0x00107875, 0x00107875, 0x00107875, 0x00107875, - 0x00107874, 0x00107874, 0x00107874, 0x00107875, - 0x05c5f97b, 0x493bc857, 0x64366203, 0x493a6403, - 0x42000800, 0x80000000, 0x0005f32e, 0x91380593, - 0x0502000b, 0x59300403, 0xb0000590, 0x05c60970, - 0x0505fe70, 0x05000005, 0x643a6203, 0x59a80030, - 0x48026205, 0x1c01f000, 0x0005f45a, 0x4933c857, - 0x913805a7, 0x05020027, 0x4933c857, 0x05f1fe47, - 0x4d3c0000, 0x417a7800, 0x0201f800, 0x0010ec6c, - 0x5c027800, 0x42000000, 0x0010b056, 0x0511ff02, - 0x4d2c0000, 0x59325809, 0x0505fa7c, 0x492fc857, - 0x0500000c, 0x0509fc1c, 0x4a025a05, 0x00000103, - 0x59300c02, 0x48065c07, 0x64a65a07, 0x497a580a, - 0x592c0c09, 0x84040d50, 0x48065c09, 0x0001fb5b, - 0x5c025800, 0x60543000, 0x41782800, 0x600c2000, - 0x4d400000, 0x4d440000, 0x59368c03, 0x60a68000, - 0x0509fb68, 0x5c028800, 0x5c028000, 0x0005f45a, - 0x91380594, 0x05020009, 0x59300403, 0xb0000c93, - 0x05c6193b, 0xb0000480, 0x05c41939, 0x4933c857, - 0x4803c857, 0x0c01f013, 0xb13805a1, 0x05000003, - 0xb13805a0, 0x05020007, 0x05f5fa77, 0x05fa04b9, - 0x59300203, 0x9000058e, 0x05040410, 0x1c01f000, - 0xb1380593, 0x05000006, 0xb1380588, 0x05c60928, - 0x59300403, 0xb0000590, 0x05c60925, 0x1c01f000, - 0x001078e0, 0x001078df, 0x001078df, 0x001078df, - 0x001078df, 0x001078df, 0x001078df, 0x001078df, - 0x001078df, 0x001078df, 0x001078df, 0x001078f1, - 0x001078f1, 0x001078f1, 0x001078f1, 0x001078df, - 0x001078f1, 0x001078df, 0x001078f1, 0x05c5f910, - 0x4933c857, 0x05f1fdf1, 0x0505fa30, 0x0004045a, - 0x4d2c0000, 0x59325809, 0x0509fbcf, 0x4a025a05, - 0x00000103, 0x59300402, 0x48025c07, 0x641a5a07, - 0x497a580a, 0x0001fb5b, 0x5c025800, 0x0505fb07, - 0x0005f45a, 0x4933c857, 0x05f1fde0, 0x0005f45a, - 0x05c5f8fb, 0x5930001e, 0x800001c0, 0x050a0b0c, - 0x497a6205, 0x59300004, 0x8c00053e, 0x0502002a, - 0x0509fbcd, 0x050200b0, 0x59325809, 0x592c0c09, - 0x59cc2808, 0x82141d00, 0x00000c00, 0x05000002, - 0x59cc1809, 0x84040d58, 0x48065c09, 0x82143500, - 0x00000fff, 0x05020023, 0x59340200, 0x8c00050e, - 0x05020097, 0x0005fd0c, 0x05020006, 0x64025a07, - 0x59300013, 0x0509fbad, 0x80000d40, 0x050209fe, - 0x4a025a05, 0x00000103, 0x48065808, 0x480e580b, - 0x901409c0, 0x4806580a, 0x59300c02, 0x48065c07, - 0x0509f881, 0x0509f884, 0x0001fb5b, 0x0509fb96, - 0x05e5fb1b, 0x59cc0008, 0x8c000518, 0x050603f6, - 0x0005f45a, 0x05f5fa10, 0x05fc07d6, 0x4d3c0000, - 0x600a7800, 0x0501fe47, 0x5c027800, 0x05fdf7d1, - 0x4817c857, 0x480fc857, 0x82180500, 0x000000ff, - 0x0500000d, 0x592c0205, 0x82000500, 0x000000ff, - 0xb0000588, 0x05000003, 0x900005a2, 0x05020006, - 0x592c0408, 0x800001c0, 0x05000003, 0x0509f9d9, - 0x0509f210, 0x82180d00, 0x00000c00, 0x05000004, - 0x59340200, 0x8c00050e, 0x05020050, 0x64025a07, - 0x41782000, 0x8c180510, 0x05000009, 0x59cc200b, - 0x801021c0, 0x05000006, 0x59cc000c, 0x82000500, - 0x000000ff, 0x05000002, 0x4803c857, 0x4812580d, - 0x41780000, 0x8c180512, 0x05000002, 0x59cc000a, - 0x4802580c, 0x80100c00, 0x05fc07b7, 0x9004149d, - 0x05001005, 0x592c0405, 0x8c00051e, 0x05000020, - 0x60700800, 0x4c040000, 0x4c0c0000, 0x4c140000, - 0x0005fd0c, 0x05020006, 0x64025a07, 0x59300013, - 0x0509fb5a, 0x80000d40, 0x050209ab, 0x5c002800, - 0x5c001800, 0x4a025a05, 0x00000103, 0x48065808, - 0x480e580b, 0x901409c0, 0x4806580a, 0x5c000800, - 0x4c500000, 0x4c540000, 0x91cca40c, 0x912cac0e, - 0x0501fda8, 0x5c00a800, 0x5c00a000, 0x59300008, - 0x84000534, 0x48026008, 0x05fdf7a0, 0x4c040000, - 0x4c0c0000, 0x4c140000, 0x0005fd0c, 0x05020006, - 0x64025a07, 0x59300013, 0x0509fb3c, 0x80000d40, - 0x0502098d, 0x48065808, 0x5c002800, 0x5c001800, - 0x59301402, 0x480a5c07, 0x480e580b, 0x901401c0, - 0x4802580a, 0x0509f810, 0x5c000800, 0x0501fd49, - 0x0501fd75, 0x05fdf78e, 0x592c020b, 0x8c000502, - 0x05fc07af, 0x592c0209, 0x8c00050e, 0x05fe07ac, - 0x59300013, 0x800c0d80, 0x05fc07a9, 0x4803c857, - 0x480fc857, 0x8c180514, 0x050403b4, 0x80000540, - 0x05fc07a3, 0x4807c856, 0x0505f3b0, 0x592c020b, - 0x8c000502, 0x05fc0768, 0x59300013, 0x800001c0, - 0x05fc0767, 0x592c0209, 0x8c00050e, 0x05fe0764, - 0x0505f3a6, 0x1c01f000, 0x59cc2006, 0x59cc2807, - 0x0501f03b, 0x0501f03a, 0x1c01f000, 0x4933c857, - 0x59300004, 0x8c00053e, 0x05020031, 0x5930001e, - 0x800001c0, 0x050a0a4a, 0x497a6205, 0x59325809, - 0x592c0c09, 0x41782800, 0x41781800, 0x84040d58, - 0x48065c09, 0x41783000, 0x59340200, 0x8c00050e, - 0x05020018, 0x0005fd0c, 0x05020007, 0x64025a07, - 0x59300013, 0x0509faf5, 0x80000d40, 0x4807c857, - 0x05020945, 0x4a025a05, 0x00000103, 0x48065808, - 0x480e580b, 0x901409c0, 0x4806580a, 0x4933c857, - 0x59300c02, 0x48065c07, 0x0505ffc7, 0x0505ffca, - 0x0001fb5b, 0x0509fadc, 0x05e5fa61, 0x0005f45a, - 0x592c020b, 0x8c000502, 0x05fc07e7, 0x59300013, - 0x4803c857, 0x800001c0, 0x05fc07e5, 0x592c0209, - 0x8c00050e, 0x05fe07e2, 0x0505f36c, 0x05f5f94e, - 0x05fc07cf, 0x4933c857, 0x1c01f000, 0x4c5c0000, - 0x4c600000, 0x4010b800, 0x4014c000, 0x5930001e, - 0x800001c0, 0x4c140000, 0x050a0a11, 0x5c002800, - 0x59325809, 0x592c020b, 0x8c000502, 0x05020033, - 0x8c000500, 0x05000038, 0x640a6203, 0x650e6403, - 0x405c0000, 0x592c0810, 0x80040c80, 0x40600000, - 0x80040480, 0x0500102d, 0x8060c1c0, 0x05000024, - 0x59300004, 0x8c00050e, 0x05000007, 0x59300a23, - 0x90040503, 0x4c140000, 0x0c01f829, 0x5c002800, - 0x0500001b, 0x59300004, 0x8c00053e, 0x05020014, - 0x485e6015, 0x48626013, 0x497a6205, 0x5c00c000, - 0x5c00b800, 0x4c140000, 0x0505fcda, 0x5c002800, - 0x05000007, 0x4816602a, 0x4a02601c, 0x00107a1d, - 0x1c01f000, 0x5930282a, 0x497a602a, 0x05c9fa90, - 0x0502000c, 0x59300804, 0x0005f320, 0x4c140000, - 0x05f5f911, 0x5c002800, 0x05fc07ea, 0x5c00c000, - 0x5c00b800, 0x05f9f34f, 0x5c00c000, 0x5c00b800, - 0x4933c857, 0x1c01f000, 0x4807c857, 0x4004c000, - 0x05fdf7d2, 0x4803c857, 0x05fdf7f5, 0x00107a37, - 0x00107a3c, 0x00107a41, 0x00107a41, 0x59300224, - 0x48035093, 0x90000408, 0x48035092, 0x0501f00a, - 0x59300224, 0x48035092, 0x90000408, 0x48035093, - 0x0501f005, 0x59300224, 0x90000408, 0x48035092, - 0x48035093, 0x405c1000, 0x41780800, 0x59a80092, - 0x05f1faf4, 0x800409c0, 0x05020052, 0x40085000, - 0x592c1001, 0x800811c0, 0x0500004e, 0x58080205, - 0x82000500, 0x000000ff, 0xb000058a, 0x05020049, - 0x48281002, 0x59a80092, 0x40601000, 0x41780800, - 0x4c280000, 0x05f1fae3, 0x5c005000, 0x800409c0, - 0x05020038, 0x40041800, 0x59a80093, 0x59300804, - 0x8c040530, 0x05000005, 0x59300827, 0x800800c6, - 0x48000803, 0x59300224, 0x800c1c00, 0x80081040, - 0x05fe07fe, 0x480e602c, 0x592c4801, 0x802449c0, - 0x05c00f83, 0x58240a06, 0x592c1812, 0x59303023, - 0x8c180506, 0x05000003, 0x40280000, 0x80040c00, - 0x800400e0, 0x80040540, 0x48026021, 0x8c18050a, - 0x05020003, 0x40280000, 0x800c1c00, 0x480e601f, - 0x59300804, 0x8c040530, 0x0500000e, 0x4c280000, - 0x592c1001, 0x59306827, 0x592c5a0b, 0x0001ff1a, - 0x5c005000, 0x802851c0, 0x05ca0f97, 0x05020015, - 0x59300827, 0x58040003, 0x49780803, 0x4800080d, - 0x59300224, 0x59303023, 0x8c18050e, 0x05000002, - 0x80000580, 0x48026424, 0x90000541, 0x1c01f000, - 0x592c1810, 0x805c0418, 0x800c0580, 0x05fc07c6, - 0x4933c857, 0x485fc857, 0x4863c857, 0x480fc857, - 0x80000580, 0x1c01f000, 0xb1380498, 0x05021057, - 0xb1380480, 0x05001002, 0x0c01f002, 0x1c01f000, - 0x00107abc, 0x00107abc, 0x00107abc, 0x00107abc, - 0x00107abc, 0x00107abc, 0x00107abc, 0x00107abc, - 0x00107abc, 0x00107abc, 0x00107abd, 0x00107abc, - 0x00107abc, 0x00107abc, 0x00107abc, 0x00107ac7, - 0x00107abc, 0x00107abc, 0x00107abc, 0x00107abc, - 0x00107aec, 0x00107abc, 0x00107abc, 0x00107abc, - 0x05c1ff33, 0x4933c857, 0x05f1fefd, 0x640a6203, - 0x59a80030, 0x48026205, 0x59300013, 0x59300817, - 0x80040c80, 0x48066017, 0x05f1f3ef, 0x4933c857, - 0x05f1fbed, 0x4d3c0000, 0x417a7800, 0x0201f800, - 0x0010ec6c, 0x5c027800, 0x42000000, 0x0010b056, - 0x0511fcc5, 0x0505f841, 0x0500000f, 0x4d2c0000, - 0x59325809, 0x0509f9e0, 0x4a025a05, 0x00000103, - 0x59300402, 0x48025c07, 0x64a65a07, 0x497a580a, - 0x592c0c09, 0x84040d50, 0x48065c09, 0x0001fb5b, - 0x5c025800, 0x60503000, 0x41782800, 0x4d400000, - 0x4d440000, 0x59368c03, 0x60082000, 0x60a68000, - 0x0509f92c, 0x5c028800, 0x5c028000, 0x0005f45a, - 0x4933c857, 0x59cc0a04, 0x48066202, 0x59300809, - 0x4978080a, 0x4978080b, 0x58041409, 0x84081558, - 0x48080c09, 0x1c01f000, 0xb13805a1, 0x05020014, - 0x05f1fc85, 0x0501fd7f, 0x0502000c, 0x05f5f97e, - 0x05fc07ff, 0x811800ca, 0x81c80c00, 0x58040138, - 0x59cc0a03, 0x80000040, 0x80040580, 0x05020007, - 0x05f5f96f, 0x05000005, 0x59300c16, 0x84040d44, - 0x48066416, 0x497a6205, 0x05f1f45f, 0xb13805a0, - 0x05fe07fe, 0x59cc0002, 0x8c000526, 0x05fe07e9, - 0x05fdf7fa, 0x4807c857, 0x8c04053e, 0x05020022, - 0x497a5a07, 0x5930002b, 0x80000540, 0x05000017, - 0x497a5a07, 0x4c040000, 0x4c080000, 0x4c0c0000, - 0x4c100000, 0x4c140000, 0x40002800, 0x58141003, - 0x40040000, 0x80081480, 0x48082803, 0x40140000, - 0x05c5ff7a, 0x5c002800, 0x5c002000, 0x5c001800, - 0x5c001000, 0x5c000800, 0x592c0207, 0x80000540, - 0x05020008, 0x0501f005, 0x592c0409, 0x8c00051c, - 0x05000002, 0x592c0803, 0x4807c857, 0x64565a07, - 0x1c01f000, 0x5930002b, 0x80000540, 0x05000007, - 0x64465a07, 0x5930002b, 0x4c040000, 0x05c5ff63, - 0x5c000800, 0x05fdf7f7, 0x4807c856, 0x641e5a07, - 0x1c01f000, 0xb1380498, 0x05001006, 0xb13805a1, - 0x05000003, 0xb13805a0, 0x05c20ea9, 0x1c01f000, - 0xb1380480, 0x05001004, 0x4d2c0000, 0x0c01f803, - 0x5c025800, 0x1c01f000, 0x00107b66, 0x00107b66, - 0x00107b66, 0x00107b66, 0x00107b66, 0x00107b68, - 0x00107b67, 0x00107b66, 0x00107be0, 0x00107b66, - 0x00107b66, 0x00107b66, 0x00107b66, 0x00107b66, - 0x00107b66, 0x00107b66, 0x00107b66, 0x00107b66, - 0x00107b66, 0x00107ca2, 0x00107cca, 0x00107ca9, - 0x00107b67, 0x00107cd3, 0x05c1fe89, 0x1c01f000, - 0x5930001e, 0x800001c0, 0x050a0899, 0x59300008, - 0x8c00050e, 0x05000072, 0x8c000500, 0x05000064, - 0x8c00051c, 0x05000008, 0x84000500, 0x48026008, - 0x59325809, 0x592c3c09, 0x841c3d58, 0x481e5c09, - 0x0005f4b7, 0x59325809, 0x592c3c09, 0x841c3d58, - 0x59300008, 0x8c00051c, 0x05fe07f4, 0x481e5c09, - 0x60140000, 0x40000000, 0x80000040, 0x05fe07fe, - 0x59300008, 0x8c00051c, 0x05fe07ec, 0x59cc0a04, - 0x48066202, 0x59cc0808, 0x592c0205, 0x82000500, - 0x000000ff, 0xb0000588, 0x05000003, 0x900005a2, - 0x0502000a, 0x497a580c, 0x82040500, 0x000000ff, - 0x05000006, 0x592c0408, 0x800001c0, 0x05000003, - 0x0505ff7c, 0x05c5f7f9, 0x900421c0, 0x4812580a, - 0x41782000, 0x82040500, 0x00000c00, 0x05000002, - 0x59cc2009, 0x82043500, 0x00000fff, 0x0502001e, - 0x481e5c09, 0x64025a07, 0x801831c0, 0x05c407eb, - 0x41782000, 0x8c180510, 0x05000002, 0x59cc200b, - 0x4812580d, 0x41780000, 0x8c180512, 0x05000002, - 0x59cc000a, 0x4802580c, 0x80100c00, 0x05c01e3c, - 0x05c407de, 0x9004149d, 0x05021009, 0x4c500000, - 0x4c540000, 0x91cca40c, 0x912cac0e, 0x0501fb61, - 0x5c00a800, 0x5c00a000, 0x05c5f7d4, 0x0501fb19, - 0x05c5f7d2, 0x412c7800, 0x05c5f9ba, 0x05c00e2c, - 0x492c780a, 0x841c3d52, 0x481c7c09, 0x4a025a05, - 0x00000103, 0x4812580b, 0x900401c0, 0x4802580a, - 0x583c0405, 0x583c1006, 0x583c2209, 0x48025c05, - 0x480a5806, 0x48125a09, 0x05fdf7d2, 0x8c000524, - 0x05fc079e, 0x59325809, 0x4c000000, 0x592c0409, - 0x8c00051c, 0x5c000000, 0x05020003, 0x4a026013, - 0xffffffff, 0x84000524, 0x05fdf794, 0x1c01f000, - 0x59a80030, 0x48026205, 0x59325809, 0x640a6203, - 0x592c2409, 0x59300808, 0x4933c857, 0x4807c857, - 0x592c0205, 0x82000500, 0x000000ff, 0xb0000588, - 0x05000003, 0x900005a2, 0x05020003, 0x8c100500, - 0x0506075c, 0x64025a07, 0x8c04051e, 0x05000030, - 0x41780800, 0x497a580a, 0x592c1c0a, 0x59300008, - 0x8c00052c, 0x05000003, 0x4a026013, 0x7fffffff, - 0x59300013, 0x59341200, 0x497a6205, 0x8c08050e, - 0x0502006b, 0x4807c857, 0x4806580b, 0x0509f8bb, - 0x80000d40, 0x05fe0f0c, 0x59300402, 0x48025c07, - 0x48065808, 0x4a025a05, 0x00000103, 0x4c040000, - 0x592c0a09, 0x8c040512, 0x05000002, 0x64325a07, - 0x5c000800, 0x4c040000, 0x4c0c0000, 0x4c100000, - 0x0505fd89, 0x0509f8a0, 0x5c002000, 0x5c001800, - 0x5c000800, 0x8c100512, 0x05020017, 0x4c0c0000, - 0x0505fd85, 0x0001fb5b, 0x05e5f81d, 0x5c001800, - 0x8c0c0518, 0x0004045a, 0x0505f0f7, 0x4813c857, - 0x8c100518, 0x05000044, 0x41780800, 0x592c1c0a, - 0x820c0580, 0x00001000, 0x05fc07cd, 0x8c100512, - 0x05fc07cb, 0x592c780a, 0x583c080b, 0x583c1c0a, - 0x05fdf7c7, 0x4807c857, 0x592c780a, 0x59300402, - 0x592c1405, 0x8c08051e, 0x0502000c, 0x592c1207, - 0x48007c07, 0x48047808, 0x48087a07, 0x84102512, - 0x48107c09, 0x4c0c0000, 0x05c5f957, 0x403e5800, - 0x0501fac5, 0x05fdf7dd, 0x48025c07, 0x48065808, - 0x583c080d, 0x583c000c, 0x80040c00, 0x9004149d, - 0x05001005, 0x583c1001, 0x480a5801, 0x49787801, - 0x60700800, 0x90040c14, 0x4c0c0000, 0x4c500000, - 0x4c540000, 0x903ca409, 0x912cac09, 0x4c100000, - 0x4c3c0000, 0x0501fac7, 0x5c007800, 0x5c002000, - 0x5c00a800, 0x5c00a000, 0x84102512, 0x48125c09, - 0x403e5800, 0x05c5f938, 0x0505fd3f, 0x42034000, - 0x0010ac19, 0x59a1d806, 0x80edd9c0, 0x05c00d8c, - 0x48efc857, 0x58ec0008, 0x4803c857, 0x0801f800, - 0x05fdf7b6, 0x4933c857, 0x1c01f000, 0x59301416, - 0x480bc857, 0x8c08051c, 0x0502000e, 0x80000540, - 0x4803c857, 0x05fc0790, 0x80042c80, 0x05fe178e, - 0x8c080514, 0x05020005, 0x592c0810, 0x4807c857, - 0x80040480, 0x48026018, 0x8408155c, 0x480a6416, - 0x59301008, 0x8408151e, 0x480a6008, 0x4c100000, - 0x4c3c0000, 0x4d400000, 0x592e8207, 0x64065a07, - 0x0505fd19, 0x49425a07, 0x5c028000, 0x5c007800, - 0x5c002000, 0x497a580a, 0x8c100512, 0x05000005, - 0x4d2c0000, 0x403e5800, 0x05c5f907, 0x5c025800, - 0x82102500, 0xffffedff, 0x48125c09, 0x59301006, - 0x800811c0, 0x050400bd, 0x59a80030, 0x80080480, - 0x050610ba, 0x0509f81c, 0x4a025a05, 0x00000103, - 0x641a5a07, 0x497a5c0a, 0x492fc857, 0x0001fb5b, - 0x05e1ff9b, 0x0005f45a, 0x59325809, 0x592c0409, - 0x8c000518, 0x05000003, 0x412df800, 0x05c5f703, - 0x1c01f000, 0x4933c857, 0x59325809, 0x497a580a, - 0x64025a07, 0x4a025a05, 0x00000103, 0x59300813, - 0x4807c857, 0x800409c0, 0x0502000a, 0x48065808, - 0x59300c02, 0x48065c07, 0x0505fce7, 0x0505fffe, - 0x0505fce9, 0x0001fb5b, 0x05e1ff81, 0x0005f45a, - 0x59340200, 0x8c00050e, 0x05020007, 0x59300013, - 0x0505fffe, 0x80000d40, 0x05fdfe4f, 0x48065808, - 0x05fdf7f0, 0x592c0209, 0x8c00050e, 0x05fe07f8, - 0x4933c857, 0x0505f089, 0x4933c857, 0x59325809, - 0x812e59c0, 0x05c00d22, 0x592c020b, 0x8c000502, - 0x05c00d1f, 0x640a6006, 0x1c01f000, 0x5930001e, - 0x800001c0, 0x05060f2e, 0x59300008, 0x4933c857, - 0x4803c857, 0x8c00050e, 0x05000034, 0x8c000500, - 0x05000026, 0x8c00051c, 0x05000009, 0x84000500, - 0x48026008, 0x59325809, 0x592c3c09, 0x481fc857, - 0x841c3d58, 0x481e5c09, 0x0005f4b7, 0x59325809, - 0x592c3c09, 0x841c3d58, 0x59300008, 0x8c00051c, - 0x05fe07f3, 0x481e5c09, 0x60140000, 0x40000000, - 0x80000040, 0x05fe07fe, 0x59300008, 0x8c00051c, - 0x05fe07eb, 0x592c0205, 0x82000500, 0x000000ff, - 0xb0000588, 0x05000003, 0x900005a2, 0x05020003, - 0x497a580c, 0x0501f002, 0x497a580a, 0x481e5c09, - 0x64025a07, 0x05c5f691, 0x8c000524, 0x05fc07dc, - 0x59325809, 0x4c000000, 0x592c0409, 0x8c00051c, - 0x5c000000, 0x05020003, 0x4a026013, 0xffffffff, - 0x84000524, 0x05fdf7d2, 0x1c01f000, 0x4933c857, - 0x41780800, 0xb1380498, 0x05021009, 0xb1380480, - 0x05001007, 0x4d2c0000, 0x59325809, 0x812e59c0, - 0x0c020805, 0x5c025800, 0x0005f45a, 0x493bc857, - 0x1c01f000, 0x00107d35, 0x00107d35, 0x00107d35, - 0x00107d35, 0x00107d35, 0x00107d36, 0x00107d35, - 0x00107d35, 0x00107d35, 0x00107d35, 0x00107d35, - 0x00107d35, 0x00107d35, 0x00107d35, 0x00107d35, - 0x00107d35, 0x00107d35, 0x00107d35, 0x00107d35, - 0x00107d35, 0x00107d39, 0x00107d35, 0x00107d35, - 0x00107d35, 0x05c1fcba, 0x59cc0808, 0x497a5808, - 0x4807c857, 0x59300402, 0x48025c07, 0x4a025a05, - 0x00000103, 0x900401c0, 0x4802580a, 0x64025a07, - 0x800409c0, 0x0000035b, 0x59cc0009, 0x4802580b, - 0x82042500, 0x00000100, 0x05000002, 0x59cc200b, - 0x4812580d, 0x82040500, 0x00000200, 0x05000002, - 0x59cc000a, 0x4802580c, 0x80100c00, 0x05c01ca0, - 0x0000035b, 0x9004149d, 0x05001005, 0x592c0405, - 0x8c00051e, 0x0500000a, 0x60700800, 0x4c500000, - 0x4c540000, 0x91cca40c, 0x912cac0e, 0x0501f9c1, - 0x5c00a800, 0x5c00a000, 0x0001f35b, 0x0501f979, - 0x0501f1a5, 0x83380480, 0x00000093, 0x05c21c8c, - 0x83380480, 0x00000085, 0x05c01c89, 0x0c01f001, - 0x00107d76, 0x00107d75, 0x00107d75, 0x00107d7b, - 0x00107d75, 0x00107d75, 0x00107d75, 0x00107d75, - 0x00107d75, 0x00107d75, 0x00107d75, 0x00107d75, - 0x00107d75, 0x05c1fc7a, 0x64066203, 0x493a6403, - 0x42000800, 0x80000040, 0x0005f32e, 0x83300580, - 0x00110284, 0x05c20c72, 0x4933c857, 0x59cc1404, - 0x0505fa32, 0x0500002c, 0x591c0203, 0x90000580, - 0x05000029, 0x591c000a, 0x81340580, 0x05020026, - 0x59cc1204, 0x82080580, 0x0000ffff, 0x05000007, - 0x591c0202, 0x82000d80, 0x0000ffff, 0x05000003, - 0x80080580, 0x0502001c, 0x4d300000, 0x4d1c0000, - 0x411e6000, 0x0501f9d2, 0x5c023800, 0x5c026000, - 0x05000013, 0x59cc0005, 0x8c000500, 0x05020003, - 0x0501f987, 0x0501f002, 0x640a3a03, 0x4a026403, - 0x00000086, 0x59cc0005, 0x8c000500, 0x0500000c, - 0x591c0416, 0x8400055a, 0x48023c16, 0x59300416, - 0x8400055a, 0x48026416, 0x0501f005, 0x0501f9af, - 0x05fc07ed, 0x4a026403, 0x00000087, 0x4d2c0000, - 0x0511f87e, 0x05e5f9cc, 0x5c025800, 0x59340200, - 0x8c00050e, 0x0500000b, 0x59cc1404, 0x0505f9fb, - 0x05000008, 0x591c0416, 0x8c00051a, 0x05000005, - 0x4d300000, 0x411e6000, 0x0501ffa6, 0x5c026000, - 0x1c01f000, 0x91380593, 0x0502000a, 0x59300403, - 0x4803c857, 0x82000d80, 0x00000086, 0x0500000c, - 0x82000d80, 0x00000087, 0x05c20c25, 0x0501f008, - 0x913805a7, 0x05000003, 0x91380594, 0x05c20c20, - 0x493bc857, 0x05f1f901, 0x05f5f741, 0x4933c857, - 0x0505f91c, 0x05f6073e, 0x0005f45a, 0x91380593, - 0x05020006, 0x59300403, 0x4803c857, 0x82000480, - 0x00000085, 0x0c01f04c, 0x913805a7, 0x05020040, - 0x4933c857, 0x05f1f8f1, 0x59300416, 0x8c00051a, - 0x05020002, 0x0005f45a, 0x4d3c0000, 0x417a7800, - 0x0201f800, 0x0010ec6c, 0x5c027800, 0x60543000, - 0x41782800, 0x600c2000, 0x60a68000, 0x4d400000, - 0x4d440000, 0x59368c03, 0x0505fe22, 0x5c028800, - 0x5c028000, 0x42000000, 0x0010b056, 0x0511f99e, - 0x0501fd1a, 0x0004045a, 0x4d2c0000, 0x59325809, - 0x592c0205, 0x82000500, 0x000000ff, 0x90000594, - 0x05020df6, 0x0505feb4, 0x4a025a05, 0x00000103, - 0x59300402, 0x48025c07, 0x497a580a, 0x49425a07, - 0x0001fb5b, 0x5c025800, 0x0005f45a, 0xb13805a1, - 0x05000009, 0xb13805a0, 0x05000007, 0x83380580, - 0x00000089, 0x05000004, 0x83380580, 0x0000008a, - 0x05f60764, 0x05f1fd20, 0x05f60762, 0x59300a03, - 0x9004058e, 0x050006aa, 0x9004058a, 0x0500003c, - 0x9004058c, 0x0500003a, 0x05c1fbd1, 0x91380594, - 0x05fe07eb, 0x4933c857, 0x05f1f8b0, 0x59300416, - 0x8c00051a, 0x05020002, 0x0005f45a, 0x601a8000, - 0x05fdf7d0, 0x00107e37, 0x00107e36, 0x00107e36, - 0x00107e36, 0x00107e36, 0x00107e36, 0x00107e47, - 0x00107e36, 0x00107e36, 0x00107e36, 0x00107e36, - 0x00107e36, 0x00107e36, 0x05c1fbb9, 0x4933c857, - 0x0505f8b8, 0x0500000a, 0x643a6203, 0x59a80030, - 0x48026205, 0x59300416, 0x8c00051a, 0x05020003, - 0x59a8002e, 0x48026006, 0x1c01f000, 0x59a8002e, - 0x48026006, 0x642a6203, 0x1c01f000, 0x4933c857, - 0x0505f8a8, 0x0500000a, 0x643a6203, 0x59a80030, - 0x48026205, 0x59300416, 0x8c00051a, 0x05020003, - 0x59a8002e, 0x48026006, 0x1c01f000, 0x59a8002e, - 0x48026006, 0x64326203, 0x1c01f000, 0x5932680a, - 0x83380580, 0x00000089, 0x05000007, 0x83380580, - 0x0000008a, 0x0500002c, 0x4933c857, 0x493bc857, - 0x05f5f718, 0x4933c857, 0x59325809, 0x59300416, - 0x8c00051a, 0x0500000b, 0x59300229, 0x90000583, - 0x05c20b87, 0x640e6407, 0x59300429, 0x48026203, - 0x59340200, 0x8c00050e, 0x050206f6, 0x1c01f000, - 0x59300a29, 0x90040583, 0x05020007, 0x0501fc9f, - 0x0500000d, 0x0001fb5b, 0x05e1fdc5, 0x497a6009, - 0x0501f009, 0x59300229, 0x90000581, 0x05020006, - 0x59300c18, 0x900405b9, 0x05000019, 0x900405b5, - 0x05000017, 0x59cc0c07, 0x4806641b, 0x59cc0a07, - 0x4806621b, 0x59300203, 0x48026429, 0x64466203, - 0x05f5f68b, 0x4933c857, 0x59300416, 0x8c00051a, - 0x0006045a, 0x59300229, 0x90000581, 0x0502003f, - 0x59300c18, 0x900405b5, 0x05000005, 0x9004059e, - 0x05000003, 0x900405b9, 0x05020038, 0x4933c857, - 0x4c5c0000, 0x4c600000, 0x4d1c0000, 0x4130b800, - 0x4004c000, 0x0505f8cd, 0x0502002b, 0x906005b5, - 0x05020004, 0x591c0c16, 0x8c040502, 0x05000026, - 0x05f5fea1, 0x05000024, 0x491fc857, 0x4933c857, - 0x906005b5, 0x05000003, 0x906005b9, 0x05020002, - 0x4932381e, 0x585c081d, 0x4806601d, 0x48626403, - 0x64066203, 0x64066407, 0x585c080a, 0x4807c857, - 0x4806600a, 0x585c0c17, 0x4807c857, 0x48066417, - 0x585c0a17, 0x4807c857, 0x48066217, 0x585c0a18, - 0x4807c857, 0x48066218, 0x585c0c1b, 0x4807c857, - 0x4806641b, 0x585c0a1b, 0x4807c857, 0x4806621b, - 0x491e602a, 0x0505f81c, 0x42000800, 0x80000040, - 0x0005fb2e, 0x405e6000, 0x5c023800, 0x5c00c000, - 0x5c00b800, 0x0005f45a, 0x0501fc44, 0x05000008, - 0x4d2c0000, 0x59325809, 0x0001fb5b, 0x59300229, - 0x90000583, 0x05e00d66, 0x5c025800, 0x0005f45a, - 0x4803c856, 0x4c500000, 0x4c540000, 0x412c7800, - 0x4c3c0000, 0x60042800, 0x82040480, 0x00000101, - 0x05001002, 0x60000802, 0x40043000, 0x60700800, - 0x91cca40c, 0x912cac0e, 0x0501f836, 0x9018349c, - 0x592e5801, 0x812e59c0, 0x05c20eab, 0x05c1fe91, - 0x05000011, 0x80142800, 0x4a025805, 0x00000110, - 0x492c7801, 0x90180cbd, 0x05021005, 0x40180800, - 0x912cac06, 0x0501f827, 0x0501f007, 0x901834bc, - 0x60f00800, 0x412c7800, 0x912cac06, 0x0501f821, - 0x05fdf7ef, 0x5c007800, 0x841429c0, 0x90142d43, - 0x48147a05, 0x403e5800, 0x5c00a800, 0x5c00a000, - 0x1c01f000, 0x492fc857, 0x812e59c0, 0x0500000d, - 0x4d2c0000, 0x4c3c0000, 0x592c7801, 0x803c79c0, - 0x05000005, 0x497a5801, 0x0001fb5b, 0x403e5800, - 0x05fdf7fa, 0x5c007800, 0x0001fb5b, 0x5c025800, - 0x1c01f000, 0x4803c856, 0x4c580000, 0x90040403, - 0x8000b104, 0x0511f947, 0x5c00b000, 0x1c01f000, - 0x4803c856, 0x4c580000, 0x90040c03, 0x8004b104, - 0x0511f940, 0x5c00b000, 0x1c01f000, 0x591c0c07, - 0x90040583, 0x05000005, 0x90040582, 0x05000003, - 0x9004058a, 0x05020022, 0x4d300000, 0x4d2c0000, - 0x411e6000, 0x59325809, 0x0501fbe4, 0x05000019, - 0x59300c07, 0x9004058a, 0x0500001a, 0x90040583, - 0x05020007, 0x592c0a05, 0x82040d00, 0x000000ff, - 0x90040d94, 0x05000002, 0x640e6229, 0x0501f814, - 0x4d400000, 0x604e8000, 0x592c0a09, 0x84040d54, - 0x05e5f8ad, 0x5c028000, 0x0505fa5b, 0x0505fd72, - 0x0001fb5b, 0x59300229, 0x90000583, 0x05000caf, - 0x05f5fdcb, 0x5c025800, 0x5c026000, 0x1c01f000, - 0x644e5a07, 0x642a6229, 0x05fdf7f4, 0x592c0409, - 0x8c000512, 0x05000008, 0x84000512, 0x48025c09, - 0x4d2c0000, 0x592e580a, 0x05c1fe3f, 0x5c025800, - 0x497a580a, 0x1c01f000, 0x59cc0005, 0x8c000500, - 0x0502000a, 0x591c0407, 0x90000582, 0x05020007, - 0x591c0c03, 0x82040580, 0x00000085, 0x05000003, - 0x82040580, 0x0000008b, 0x1c01f000, 0x4933c857, - 0x4d3c0000, 0x600a7800, 0x59300407, 0x90000c92, - 0x05c21a83, 0x0c01f808, 0x5c027800, 0x1c01f000, - 0x4933c857, 0x59300407, 0x90000c92, 0x05c21a7c, - 0x0c01f001, 0x00107f8b, 0x00107f88, 0x00107f88, - 0x00107fba, 0x00107f87, 0x00107f88, 0x00107f9d, - 0x00107f88, 0x00107f87, 0x00107f87, 0x00108d38, - 0x00107f88, 0x00107f88, 0x00107f87, 0x00107f87, - 0x00107f87, 0x00108096, 0x00107f88, 0x05c1fa68, - 0x4803c856, 0x80000580, 0x1c01f000, 0x4803c856, - 0x8d3c0502, 0x0502000f, 0x0501fb84, 0x0500000b, - 0x59325809, 0x0505fd24, 0x41780800, 0x4d400000, - 0x60168000, 0x05e5f858, 0x5c028000, 0x0505fa06, - 0x0501fce3, 0x0001fb5b, 0x05f5fd79, 0x90000541, - 0x1c01f000, 0x4933c857, 0x0501fb74, 0x05000008, - 0x59300809, 0x58040209, 0x8c000512, 0x05000004, - 0x4d400000, 0x60328000, 0x0501f00f, 0x05e1fc23, - 0x0500000b, 0x59300416, 0x84000556, 0x48026416, - 0x0501f80e, 0x4df00000, 0x59300416, 0x84000516, - 0x48026416, 0x5c03e000, 0x1c01f000, 0x4d400000, - 0x60428000, 0x0509ff54, 0x641a6407, 0x641e6203, - 0x5c028000, 0x1c01f000, 0x4933c857, 0x05edffc2, - 0x4df00000, 0x0501f8c9, 0x90000c91, 0x05c21a30, - 0x0c01f001, 0x00107fd3, 0x00108045, 0x00107fe5, - 0x00108055, 0x00108042, 0x00107fd2, 0x00107fd3, - 0x00107fd3, 0x00107fd6, 0x00107fd3, 0x00107fd3, - 0x00107fd3, 0x00107fd3, 0x00107fe5, 0x00107fd6, - 0x00107fd3, 0x00107fd6, 0x05c1fa1d, 0x5c03e000, - 0x05ec0f95, 0x05fdf7b3, 0x5c03e000, 0x05ec0f92, - 0x59300407, 0x90000583, 0x05fe07b1, 0x59300203, - 0x9000058d, 0x05fc07ae, 0x8d3c0502, 0x05fe07ac, - 0x4d340000, 0x5932680a, 0x05e1fc59, 0x5c026800, - 0x05fdf7a7, 0x0505fdd8, 0x0505fcb5, 0x59300004, - 0x8400055c, 0x48026004, 0x4203e000, 0xb0800000, - 0x6023f800, 0x05edff7c, 0x59300407, 0x90000586, - 0x0500004c, 0x8d3c0502, 0x0502004e, 0x497a6229, - 0x59300203, 0x9000058d, 0x05000002, 0x640e6229, - 0x0501fb1a, 0x05020004, 0x8d3c0500, 0x05000036, - 0x0501f02e, 0x4d2c0000, 0x4d400000, 0x59325809, - 0x0501fc7b, 0x592c0409, 0x8c000512, 0x05000008, - 0x4d2c0000, 0x84000512, 0x48025c09, 0x592c080a, - 0x40065800, 0x05c1fd8c, 0x5c025800, 0x4d400000, - 0x60168000, 0x592c0a09, 0x8c04050e, 0x05000003, - 0x600a8000, 0x0501f004, 0x8c040512, 0x05000002, - 0x60328000, 0x05e1ffd8, 0x0505fc9f, 0x5c028000, - 0x0505f985, 0x8d3c0500, 0x05020003, 0x0511f894, - 0x05020003, 0x0001fb5b, 0x497a6009, 0x5c028000, - 0x5c025800, 0x8d3c0500, 0x0500000a, 0x59300a29, - 0x90040d83, 0x05020005, 0x4d340000, 0x5932680a, - 0x05e1fc13, 0x5c026800, 0x05f5fce9, 0x0501f011, - 0x0511f883, 0x05020004, 0x59300a29, 0x90040d83, - 0x05000bc6, 0x4a026403, 0x00000085, 0x64266203, - 0x640a6407, 0x42000800, 0x80004040, 0x0505fc64, - 0x0005fb2e, 0x4203e000, 0xb0800000, 0x6023f800, - 0x5c03e000, 0x05ee0f40, 0x90000541, 0x1c01f000, - 0x0505fc75, 0x05fdf7fb, 0x05edff27, 0x05c5fb94, - 0x05fdf7a1, 0x598c000b, 0x81300580, 0x05020003, - 0x05f1fa44, 0x05020026, 0x0201f800, 0x0010eee3, - 0x80c40040, 0x05020005, 0x59300c03, 0xb0040580, - 0x05fc0786, 0x05fdf794, 0x05edfe45, 0x0500001c, - 0x05c1f99b, 0x0501f823, 0x05020003, 0x05f1fa00, - 0x05020017, 0x0201f800, 0x0010ed56, 0x80c40040, - 0x0500000f, 0x05edfe3a, 0x05000011, 0x59300407, - 0x90000583, 0x05c2098e, 0x59300004, 0x9000051f, - 0x90000585, 0x05c2098a, 0x58d400ec, 0x82000500, - 0x00000f00, 0x05fe077c, 0x05c1f985, 0x59300c03, - 0xb0040580, 0x05fc0769, 0x05fdf777, 0x59300203, - 0x90000c91, 0x05c2197e, 0x0c01f74f, 0x0501f805, - 0x60058800, 0x05000002, 0x60018800, 0x1c01f000, - 0x417a3000, 0x60df2160, 0x59900005, 0x81300580, - 0x05000006, 0x91932410, 0x811a3000, 0x91180485, - 0x05fc17fa, 0x90000541, 0x1c01f000, 0x0501f803, - 0x40018800, 0x1c01f000, 0x59300004, 0x8c00053e, - 0x0500000c, 0x8c00050c, 0x0502000a, 0x8c000516, - 0x05020004, 0x90000d1f, 0x90040585, 0x05020003, - 0x600c0000, 0x0501f004, 0x60040000, 0x0501f002, - 0x59300203, 0x1c01f000, 0x4933c857, 0x05edfee6, - 0x4df00000, 0x59300203, 0x90000c91, 0x05c21954, - 0x0c01f001, 0x001080af, 0x001080c2, 0x001080b2, - 0x001080ae, 0x001080ae, 0x001080ae, 0x001080ae, - 0x001080ae, 0x001080ae, 0x001080ae, 0x001080ae, - 0x001080ae, 0x001080ae, 0x001080ae, 0x001080b2, - 0x001080ae, 0x001080ae, 0x05c1f941, 0x5c03e000, - 0x05ec0eb9, 0x05fdf6d7, 0x5c03e000, 0x05ec0eb6, - 0x4d2c0000, 0x59325809, 0x59300403, 0xb0000592, - 0x05c40fe4, 0x0501fa59, 0x05c00935, 0x64165a07, - 0x0001fb5b, 0x05e1fe1c, 0x05f5fc55, 0x5c025800, - 0x90000541, 0x1c01f000, 0x598c000b, 0x81300580, - 0x05020018, 0x59300004, 0x8c000520, 0x05000004, - 0x84000520, 0x48026004, 0x0501f018, 0x42001000, - 0x0010af8e, 0x50081000, 0x58080002, 0x82000580, - 0x00000100, 0x05000009, 0x5808000b, 0x81300580, - 0x05c2091b, 0x0201f800, 0x0010eee3, 0x80c40040, - 0x05c20917, 0x05fdf7d9, 0x05f1f9b2, 0x0502000c, - 0x59300004, 0x8c000520, 0x05000004, 0x84000520, - 0x48026004, 0x05fdf7d1, 0x0201f800, 0x0010eee3, - 0x80c40040, 0x05fc07cd, 0x05c1f909, 0x59300203, - 0x90000c91, 0x05c21906, 0x0c01f7b3, 0x4d340000, - 0x4d240000, 0x5932481d, 0x5932680a, 0x59300407, - 0x4933c857, 0x4803c857, 0x90000c92, 0x05c218fc, - 0x0c01f804, 0x5c024800, 0x5c026800, 0x1c01f000, - 0x0010810d, 0x00108130, 0x00108265, 0x0010f510, - 0x0010825c, 0x00108261, 0x001096fd, 0x00108114, - 0x00108258, 0x0010810a, 0x001082c2, 0x0010810a, - 0x0010810a, 0x0010810a, 0x0010810a, 0x00020c5a, - 0x00108acd, 0x00108acd, 0x05c1f8e5, 0x0501fb12, - 0x05f802ed, 0x1c01f000, 0x05edfe6f, 0x05edfdc3, - 0x05edfe59, 0x0005f45a, 0x64066006, 0x1c01f000, - 0x4d340000, 0x4c5c0000, 0x59300203, 0x90000591, - 0x05020014, 0x5932680a, 0x4130b800, 0x0005fc3d, - 0x0500000f, 0x64066203, 0x647a6403, 0x585c041b, - 0x4802641b, 0x585c021b, 0x4802621b, 0x4936600a, - 0x585c001d, 0x4802601d, 0x0501fdbb, 0x64066407, - 0x42000800, 0x80000040, 0x0005fb2e, 0x405e6000, - 0x0005fc5a, 0x5c00b800, 0x5c026800, 0x1c01f000, - 0x42000000, 0x0010b061, 0x050dfe63, 0x050dfd8e, - 0x59300203, 0x90000c91, 0x05c218b9, 0x4803c857, - 0x0c01f001, 0x0010814a, 0x00108112, 0x0010814b, - 0x0010814a, 0x0010814b, 0x0010814b, 0x0010810e, - 0x0010814a, 0x0010810b, 0x0010814a, 0x0010814a, - 0x0010814a, 0x0010814a, 0x0010814a, 0x0010814b, - 0x0010814a, 0x0010814a, 0x05c1f8a5, 0x4d2c0000, - 0x59340400, 0x82000500, 0x000000ff, 0x90000c8c, - 0x05c2189f, 0x59303403, 0xb0180d91, 0x0500000c, - 0x90180d84, 0x05020003, 0x60040000, 0x0501f004, - 0x90180d80, 0x05020002, 0x60040000, 0x4803c857, - 0x0c01f823, 0x5c025800, 0x1c01f000, 0x42000000, - 0x0010b05d, 0x050dfe34, 0x05cdfdc5, 0x59340412, - 0x82000500, 0x000000ff, 0x05000016, 0x80000040, - 0x48026c12, 0x4d300000, 0x05f5fbdb, 0x5c000000, - 0x0500000f, 0x641c0407, 0x4a000006, 0x00000398, - 0x49238830, 0x4a038832, 0xffffffff, 0x4926601d, - 0x497a6009, 0x4936600a, 0x64066407, 0x64066203, - 0x65466403, 0x5c025800, 0x05edf4a8, 0x40026000, - 0x5c025800, 0x60042800, 0x0505f421, 0x0010818b, - 0x00108217, 0x0010818c, 0x001081c3, 0x0010818c, - 0x0010822d, 0x0010818c, 0x00108193, 0x0010818b, - 0x0010822d, 0x0010818b, 0x0010819e, 0x05c1f864, - 0x59300403, 0x90000d96, 0x05000033, 0x90000d84, - 0x05000031, 0x90000d82, 0x0500002f, 0x0501fa8a, - 0x0500002d, 0x59300403, 0x90000da2, 0x05000098, - 0x90000db9, 0x0500009f, 0x90000db5, 0x0500009d, - 0x90000d9e, 0x05000025, 0x0501f974, 0x05000005, - 0x0501fff8, 0x05020003, 0x05e1fb29, 0x0501f01e, - 0x59300403, 0x90000d81, 0x0502000f, 0x5930081d, - 0x58040200, 0x8c000500, 0x050403f0, 0x5930080a, - 0x58040403, 0x82000580, 0x000007fe, 0x05020004, - 0x60042800, 0x0505fbee, 0x0005f45a, 0x05e1fae8, - 0x0500000d, 0x59340403, 0x82000480, 0x000007f0, - 0x0502100a, 0x4d3c0000, 0x417a7800, 0x0201f800, - 0x0010ec6c, 0x5c027800, 0x42000000, 0x0010b056, - 0x050dfdd5, 0x05f9fa38, 0x05f5f351, 0x0501f94f, - 0x05000003, 0x0501ffd3, 0x05000083, 0x59300c03, - 0x90040596, 0x05000049, 0x90040582, 0x0502002d, - 0x59a8021b, 0x8c000502, 0x0502000c, 0x05e5f85e, - 0x0502000a, 0x05e5f87d, 0x05020004, 0x60040000, - 0x05e5f82d, 0x0501f074, 0x64075014, 0x6006d800, - 0x05e1ffd3, 0x0501f070, 0x59340200, 0x8c000508, - 0x05000007, 0x84000508, 0x48026a00, 0x59300416, - 0x84000510, 0x48026416, 0x0501f011, 0x59340412, - 0x82000500, 0x000000ff, 0x05000012, 0x80000040, - 0x48026c12, 0x5932481d, 0x497a6205, 0x4d300000, - 0x05f5fb59, 0x5c000000, 0x05000009, 0x49780009, - 0x641c0407, 0x4a000006, 0x00000398, 0x4926601d, - 0x4936600a, 0x64066407, 0x0501f01c, 0x40026000, - 0x59300403, 0x90000d82, 0x0502000d, 0x59340403, - 0x82000580, 0x000007fe, 0x05020007, 0x59a8021b, - 0x84000540, 0x4803521b, 0x05ddfc45, 0x05f9f9f6, - 0x0501f00c, 0x600c0002, 0x05f5fd98, 0x05f9f9f2, - 0x4d3c0000, 0x417a7800, 0x0201f800, 0x0010ec6c, - 0x5c027800, 0x42000000, 0x0010b056, 0x050dfd86, - 0x05cdfac1, 0x05f5f302, 0x600c0800, 0x05ddfed8, - 0x64066203, 0x640a6403, 0x05edf40c, 0x0501f8fb, - 0x05fe07a9, 0x05cdfab8, 0x4d3c0000, 0x417a7800, - 0x0201f800, 0x0010ec6c, 0x5c027800, 0x42000000, - 0x0010b056, 0x050dfd74, 0x60603000, 0x41782800, - 0x60002000, 0x4d400000, 0x4d440000, 0x59368c03, - 0x60a68000, 0x0505f9eb, 0x5c028800, 0x5c028000, - 0x05f5f2e7, 0x05e1fa9e, 0x05fdf7d9, 0x42000000, - 0x0010b060, 0x050dfd64, 0x60140002, 0x05f5fd6b, - 0x05fc07d3, 0x05f5fd7e, 0x05fe07d1, 0x1c01f000, - 0x59300c03, 0x0501fd31, 0x0006045a, 0x916c0583, - 0x05000003, 0x640a6006, 0x1c01f000, 0x59300403, - 0x48026418, 0x64066229, 0x4a026403, 0x00000085, - 0x64266203, 0x640a6407, 0x42000800, 0x80000040, - 0x0005f32e, 0x05f9f9b0, 0x4d3c0000, 0x417a7800, - 0x0201f800, 0x0010ec6c, 0x5c027800, 0x42000000, - 0x0010b056, 0x050dfd44, 0x497a6009, 0x641e6407, - 0x4a026006, 0x00000398, 0x497a6205, 0x1c01f000, - 0x42000000, 0x0010b067, 0x050dfd3b, 0x05fdf6d5, - 0x42000000, 0x0010b062, 0x050dfd37, 0x050dfc62, - 0x05f5f2b3, 0x42000000, 0x0010b064, 0x050dfd32, - 0x1c01f000, 0x42000000, 0x0010b063, 0x050dfd2e, - 0x59300203, 0x90000c91, 0x05be1f85, 0x4803c857, - 0x0c01f001, 0x0010827e, 0x00108112, 0x0010827e, - 0x0010827e, 0x0010827e, 0x0010827e, 0x0010827e, - 0x0010827e, 0x0010827e, 0x00108112, 0x0010827f, - 0x00108112, 0x00108289, 0x0010827e, 0x0010827f, - 0x0010827e, 0x0010827e, 0x05bdff71, 0x59300403, - 0x82000580, 0x0000008b, 0x05000007, 0x4a026403, - 0x0000008b, 0x642e6203, 0x42000800, 0x80004040, - 0x0005f32e, 0x59300a29, 0x0501f888, 0x0500000b, - 0x4d2c0000, 0x59325809, 0x641a5a07, 0x497a5c0a, - 0x0001fb5b, 0x59300a29, 0x90040d83, 0x05e009a8, - 0x5c025800, 0x497a6009, 0x4d3c0000, 0x417a7800, - 0x0201f800, 0x0010ec6c, 0x5c027800, 0x60443000, - 0x050dfb52, 0x42000000, 0x0010b056, 0x050dfcf6, - 0x4c5c0000, 0x4130b800, 0x05f5faa3, 0x05000009, - 0x4936600a, 0x4926601d, 0x0501fc3b, 0x4d300000, - 0x405e6000, 0x05f5fa6a, 0x5c026000, 0x0501f002, - 0x405e6000, 0x5c00b800, 0x497a6009, 0x64066407, - 0x64066403, 0x59240400, 0x8c00050a, 0x0502000b, - 0x64126407, 0x641e6203, 0x6406642c, 0x60103000, - 0x4d400000, 0x60a68000, 0x41782800, 0x0509fdda, - 0x5c028000, 0x1c01f000, 0x602c0800, 0x05ddfe2c, - 0x64066203, 0x05edf361, 0x42000000, 0x0010b069, - 0x050dfcd1, 0x59300203, 0x90000c91, 0x05be1f28, - 0x4803c857, 0x0c01f001, 0x001082eb, 0x001082db, - 0x001082dd, 0x001082ec, 0x001082dc, 0x001082db, - 0x001082db, 0x001082db, 0x001082db, 0x001082db, - 0x001082db, 0x001082db, 0x001082db, 0x001082db, - 0x001082db, 0x001082db, 0x001082db, 0x05bdff14, - 0x05c5f8fb, 0x4d2c0000, 0x59325809, 0x641a5a07, - 0x0001fb5b, 0x5c025800, 0x497a6009, 0x642a6229, - 0x4a026403, 0x00000085, 0x64266203, 0x640a6407, - 0x42000800, 0x80004040, 0x0005f32e, 0x1c01f000, - 0x05edfc91, 0x4df00000, 0x05fdfd8a, 0x05020003, - 0x05edff67, 0x0502000a, 0x0201f800, 0x0010ed56, - 0x80c40040, 0x05020004, 0x5c03e000, 0x05edfc72, - 0x05fdf7e5, 0x05edfb9e, 0x05be0ef5, 0x5c03e000, - 0x05edfc6d, 0x59300203, 0x90000d83, 0x05bc0ef0, - 0x90000c91, 0x05be1eee, 0x0c01f7c8, 0x59a8000d, - 0x59a80864, 0x80040400, 0x80080480, 0x05021003, - 0x90000541, 0x1c01f000, 0x480bc857, 0x80000580, - 0x1c01f000, 0x0501f805, 0x60018800, 0x05000002, - 0x60058800, 0x1c01f000, 0x4c040000, 0x59300809, - 0x59a8000c, 0x80040480, 0x05001007, 0x59a8000a, - 0x80040480, 0x05021004, 0x800409c0, 0x5c000800, - 0x1c01f000, 0x800409c0, 0x05be0ed1, 0x4803c856, - 0x05fdf7fb, 0x4803c856, 0x4d300000, 0x0005fc3d, - 0x05000007, 0x0501f828, 0x4d380000, 0x612e7000, - 0x0005fc78, 0x5c027000, 0x90000541, 0x5c026000, - 0x1c01f000, 0x4803c856, 0x4d300000, 0x05f5fa16, - 0x05000019, 0x0501f81c, 0x4d300000, 0x05edfc4a, - 0x4df00000, 0x05edfb02, 0x4d3c0000, 0x60027840, - 0x0201f800, 0x0010f148, 0x0201f800, 0x0010f1e1, - 0x0201f800, 0x0010f603, 0x5c027800, 0x5c03e000, - 0x05ec0c29, 0x5c026000, 0x8d3c053e, 0x05020008, - 0x4d380000, 0x61327000, 0x0005fc78, 0x5c027000, - 0x90000541, 0x5c026000, 0x1c01f000, 0x0005fc5a, - 0x05fdf7fc, 0x592c0408, 0x494a6019, 0x494e601a, - 0x4936600a, 0x492e6009, 0x640e6407, 0x59340802, - 0x4806600b, 0x800000c2, 0x800008c4, 0x80040400, - 0x48026006, 0x05e1f993, 0x4926601d, 0x0501f386, - 0x493bc857, 0x4d300000, 0x0005fc3d, 0x0500000a, - 0x05fdffed, 0x4d400000, 0x60168000, 0x0501f80a, - 0x5c028000, 0x8d3c053e, 0x05020005, 0x0005fc78, - 0x90000541, 0x5c026000, 0x1c01f000, 0x0005fc5a, - 0x05fdf7fc, 0x4803c856, 0x05edfc0f, 0x4df00000, - 0x4d3c0000, 0x4d440000, 0x59368c03, 0x60067840, - 0x0201f800, 0x0010f0b7, 0x0201f800, 0x0010f109, - 0x0201f800, 0x0010f1e1, 0x0201f800, 0x0010f603, - 0x5c028800, 0x5c027800, 0x5c03e000, 0x05ec03ea, - 0x1c01f000, 0x4803c856, 0x4d300000, 0x05f5f9c2, - 0x0500000e, 0x481a601e, 0x48ee602d, 0x4936600a, - 0x05e1f964, 0x4926601d, 0x0501fb57, 0x64066407, - 0x492e6009, 0x4d380000, 0x607e7000, 0x0005fc78, - 0x5c027000, 0x90000541, 0x5c026000, 0x1c01f000, - 0x4803c856, 0x4d300000, 0x05f5f9af, 0x0500000d, - 0x48ee602d, 0x4936600a, 0x05e1f952, 0x4926601d, - 0x0501fb45, 0x64066407, 0x492e6009, 0x4d380000, - 0x61567000, 0x0005fc78, 0x5c027000, 0x90000541, - 0x5c026000, 0x1c01f000, 0x4803c856, 0x4d300000, - 0x05f5f99d, 0x0500000e, 0x481a601e, 0x48ee602d, - 0x4936600a, 0x05e1f93f, 0x4926601d, 0x0501fb32, - 0x64066407, 0x492e6009, 0x4d380000, 0x60f67000, - 0x0005fc78, 0x5c027000, 0x90000541, 0x5c026000, - 0x1c01f000, 0x4803c856, 0x4d300000, 0x05f5f98a, - 0x05000012, 0x4926601d, 0x4936600a, 0x0501fb22, - 0x492fc857, 0x4933c857, 0x592c0405, 0x8c00051e, - 0x05000003, 0x48efc857, 0x48ee602d, 0x64066407, - 0x492e6009, 0x4d380000, 0x60027000, 0x0005fc78, - 0x5c027000, 0x90000541, 0x5c026000, 0x1c01f000, - 0x4803c856, 0x4d300000, 0x05f5f973, 0x0500000e, - 0x48ee602d, 0x481a601e, 0x4936600a, 0x05e1f915, - 0x4926601d, 0x0501fb08, 0x64066407, 0x492e6009, - 0x4d380000, 0x61127000, 0x0005fc78, 0x5c027000, - 0x90000541, 0x5c026000, 0x1c01f000, 0x4803c856, - 0x4d300000, 0x05f5f960, 0x0500000e, 0x481a601e, - 0x48ee602d, 0x4936600a, 0x05e1f902, 0x4926601d, - 0x0501faf5, 0x64066407, 0x492e6009, 0x4d380000, - 0x61267000, 0x0005fc78, 0x5c027000, 0x90000541, - 0x5c026000, 0x1c01f000, 0x5930000a, 0x80001540, - 0x05bc0df7, 0x8d0c0512, 0x05020007, 0x5808040b, - 0x4803c856, 0x80000040, 0x05001003, 0x4800140b, - 0x05020008, 0x58080010, 0x80000540, 0x05000005, - 0x58080203, 0x80000540, 0x05020002, 0x64041203, - 0x1c01f000, 0x4803c856, 0x59300403, 0x90000d82, - 0x0500000b, 0x90000d83, 0x05000009, 0x90000d84, - 0x05000007, 0x599c0819, 0x8c04050e, 0x05000003, - 0x90000d80, 0x05000002, 0x90000541, 0x1c01f000, - 0x0501f805, 0x60058800, 0x05000002, 0x60018800, - 0x1c01f000, 0x4803c856, 0x4c000000, 0x4d2c0000, - 0x59300407, 0x90000584, 0x05000017, 0x59300009, - 0x80025d40, 0x800001c0, 0x05000013, 0x0501fd71, - 0x0500000f, 0x59300407, 0x90004590, 0x0500000c, - 0x90004591, 0x0500000a, 0x90004583, 0x0500000a, - 0x90004582, 0x05000008, 0x9000458a, 0x05000006, - 0x592c0405, 0x8c00051e, 0x05000003, 0x80000580, - 0x0501f002, 0x90000541, 0x5c025800, 0x5c000000, - 0x1c01f000, 0x4803c856, 0x4d300000, 0x05f5f906, - 0x05000011, 0x4926601d, 0x4936600a, 0x0501fa9e, - 0x48ee602d, 0x64066407, 0x492e6009, 0x4d3c0000, - 0x417a7800, 0x0201f800, 0x0010ec6c, 0x5c027800, - 0x4d380000, 0x60a27000, 0x0005fc78, 0x5c027000, - 0x90000541, 0x5c026000, 0x1c01f000, 0x4803c856, - 0x91380595, 0x05020009, 0x59a80077, 0xb00005b4, - 0x05020006, 0x41780800, 0x05ddfd7a, 0x64066203, - 0x64a66403, 0x05edf1c5, 0x05f5ff9b, 0x0005f45a, - 0x4803c856, 0x91380596, 0x05020004, 0x60100800, - 0x05ddfc87, 0x05f5f2f4, 0x91380595, 0x0502000d, - 0x59a80077, 0x90000594, 0x0502000a, 0x05ddfdda, - 0x05f9fbc7, 0x05020007, 0x59340404, 0x80000540, - 0x05000004, 0x60180800, 0x05ddfc79, 0x05f5f2e6, - 0x05f5ff85, 0x0005f45a, 0x4803c856, 0x592c0207, - 0x90000585, 0x05000002, 0x1c01f000, 0x4803c856, - 0x592c0209, 0x8400054a, 0x48025a09, 0x1c01f000, - 0x59300809, 0x800409c0, 0x05000008, 0x58040205, - 0x82000580, 0x00000152, 0x05020004, 0x59a8082e, - 0x48066006, 0x1c01f000, 0x599c0416, 0x800001c0, - 0x05000007, 0x90000c84, 0x05001005, 0x800000c2, - 0x800008c4, 0x80040c00, 0x05fdf7f6, 0x59300403, - 0x90000582, 0x05fe07f2, 0x5930080a, 0x58040403, - 0x82000580, 0x000007fe, 0x05fe07ed, 0x60a00800, - 0x05fdf7ec, 0x4803c856, 0x59300c03, 0xb13805a1, - 0x05000019, 0xb13805a0, 0x05000017, 0xb13805a2, - 0x0502001e, 0x497a6205, 0x90040582, 0x05000006, - 0x9004059e, 0x0500000e, 0x90040584, 0x05020017, - 0x0501f003, 0x600c0800, 0x05ddfc3d, 0x59340200, - 0x84000508, 0x48026a00, 0x59300416, 0x84000510, - 0x48026416, 0x64066203, 0x05edf16c, 0x64166203, - 0x0501f00a, 0x59340200, 0x8c00050e, 0x05020002, - 0x497a6205, 0x640a6203, 0x90040486, 0x05fc17c1, - 0x59a8002e, 0x48026006, 0x1c01f000, 0x4803c856, - 0xb13805a1, 0x05000003, 0xb13805a0, 0x0502000a, - 0x59303403, 0x82180580, 0x00000086, 0x05f40048, - 0x82180580, 0x00000087, 0x05f40045, 0x497a6205, - 0x642a6203, 0x1c01f000, 0x4803c856, 0xb13805a1, - 0x05000003, 0xb13805a0, 0x05020007, 0x59300403, - 0xb0000c91, 0x05be1d16, 0xb0000480, 0x05bc1d14, - 0x0c01f002, 0x1c01f000, 0x001084f0, 0x001084ef, - 0x001084ef, 0x001084fc, 0x001084ef, 0x001084ef, - 0x001084ef, 0x001084ef, 0x001084ef, 0x001084fc, - 0x001084ef, 0x001084fd, 0x001084fd, 0x001084fd, - 0x001084fd, 0x001084ef, 0x00108500, 0x05bdfd00, - 0x59340200, 0x8c00050e, 0x05020002, 0x497a6205, - 0x59300809, 0x5804020b, 0x8c000502, 0x05000003, - 0x64126203, 0x1c01f000, 0x640a6203, 0x1c01f000, - 0x1c01f000, 0x497a6205, 0x64366203, 0x1c01f000, - 0x0005f45a, 0x4803c856, 0xb13805a1, 0x05000006, - 0xb13805a0, 0x05020009, 0x59cc0002, 0x8c000526, - 0x05000007, 0x59300403, 0xb0000d83, 0x05000005, - 0xb0000d89, 0x05000003, 0x05f5f86a, 0x1c01f000, - 0x59a80030, 0x48026205, 0x640a6203, 0x5930001c, - 0x80000540, 0x05000003, 0x497a601c, 0x0801f800, - 0x1c01f000, 0x497a6205, 0x497a6009, 0x64066203, - 0x65426403, 0x42000800, 0x80000043, 0x0005f32e, - 0x4933c857, 0x4d340000, 0x5932680a, 0x59340200, - 0x8c00050e, 0x05000005, 0x59300407, 0x90000c92, - 0x05021004, 0x0c01f805, 0x5c026800, 0x1c01f000, - 0x05fdfbe1, 0x05fdf7fd, 0x0010810d, 0x00108540, - 0x00108544, 0x00108547, 0x00109a3f, 0x00109a57, - 0x00109a5b, 0x0010810d, 0x0010810d, 0x0010810d, - 0x0010810d, 0x0010810d, 0x0010810d, 0x0010810d, - 0x0010810d, 0x0010810d, 0x0010810d, 0x0010810d, - 0x4803c856, 0x40000000, 0x40000000, 0x1c01f000, - 0x40000000, 0x40000000, 0x1c01f000, 0x5930001e, - 0x4803c857, 0x59300416, 0x4933c857, 0x4803c857, - 0x8c000502, 0x05000005, 0x4803c857, 0x84000540, - 0x48026416, 0x1c01f000, 0x42000000, 0xd0000000, - 0x41300800, 0x05c1fb7b, 0x0501f80e, 0x0502000c, - 0x59300c16, 0x59300403, 0xb0000580, 0x05000003, - 0x84040d40, 0x0501f004, 0x59a8002e, 0x9000040a, - 0x48026205, 0x84040d42, 0x48066416, 0x1c01f000, - 0x4933c857, 0x4d340000, 0x5932680a, 0x59340a00, - 0x8c04050e, 0x05bc0c86, 0x5930001e, 0x80000540, - 0x0502002f, 0x59300403, 0x4803c857, 0xb0000580, - 0x05000003, 0x8d0c050e, 0x05020027, 0x4d1c0000, - 0x41323800, 0x05f1ffd0, 0x05000021, 0x4932381e, - 0x591c0416, 0x84000542, 0x48023c16, 0x4936600a, - 0x05ddff70, 0x4926601d, 0x0501f963, 0x591c0407, - 0x90000583, 0x05000006, 0x591c0202, 0x4802641b, - 0x591c0402, 0x4802621b, 0x0501f005, 0x591c0202, - 0x4802621b, 0x591c0402, 0x4802641b, 0x491e602a, - 0x64066407, 0x64d66403, 0x64066203, 0x42000800, - 0x80000040, 0x0005fb2e, 0x411e6000, 0x5c023800, - 0x80000580, 0x5c026800, 0x1c01f000, 0x411e6000, - 0x5c023800, 0x59a80030, 0x48026205, 0x90000541, - 0x05fdf7f9, 0x4933c857, 0x4d2c0000, 0x4932381e, - 0x4a026202, 0x0000ffff, 0x591e5809, 0x591c0008, - 0x8c00051e, 0x05000005, 0x8400051e, 0x48023808, - 0x497a580a, 0x0501f016, 0x592c0409, 0x8c000518, - 0x05000013, 0x84000518, 0x48025c09, 0x4d400000, - 0x592e8207, 0x64065a07, 0x0501fbeb, 0x49425a07, - 0x5c028000, 0x497a580a, 0x592c0409, 0x8c000512, - 0x05000007, 0x4d2c0000, 0x84000512, 0x48025c09, - 0x592e580a, 0x05bdffd8, 0x5c025800, 0x59a80030, - 0x48026205, 0x591c0216, 0x48026218, 0x90000d81, - 0x05000006, 0x640a3a03, 0x90000585, 0x05000007, - 0x497a6017, 0x0501f01c, 0x591c0008, 0x84000540, - 0x48023808, 0x64123a03, 0x591c0416, 0x4803c857, - 0x8400051c, 0x84000554, 0x48023c16, 0x592c0010, - 0x40001000, 0x591c0818, 0x80040480, 0x05fe17f1, - 0x591c0018, 0x82000500, 0xfffffffc, 0x48026017, - 0x48023818, 0x591c0a16, 0x4807c857, 0x90040d85, - 0x05020005, 0x480bc857, 0x4803c857, 0x4a023814, - 0xffffffff, 0x591c0402, 0x4802641b, 0x591c0202, - 0x4802621b, 0x591e680a, 0x4936600a, 0x64066407, - 0x64e66403, 0x64066203, 0x42000800, 0x80000040, - 0x0005fb2e, 0x5c025800, 0x1c01f000, 0x4933c857, - 0x59300416, 0x8c000514, 0x05000015, 0x8c00051c, - 0x05020012, 0x59300018, 0x80100480, 0x05001006, - 0x05000005, 0x59300416, 0x84000514, 0x8400055c, - 0x0501f009, 0x48126018, 0x48126014, 0x40100000, - 0x592c1810, 0x800c0480, 0x48026013, 0x59300416, - 0x84000514, 0x48026416, 0x1c01f000, 0x4933c857, - 0x8c00051c, 0x05020008, 0x59300014, 0x4803c857, - 0x48026018, 0x59300416, 0x8400055c, 0x4803c857, - 0x48026416, 0x1c01f000, 0x0501f805, 0x60058800, - 0x05000002, 0x60018800, 0x1c01f000, 0x59300c03, - 0x4933c857, 0x4807c857, 0x900404b4, 0x05001005, - 0x900404bc, 0x05021003, 0x80000580, 0x1c01f000, - 0x90000541, 0x05fdf7fe, 0x4d340000, 0x4d240000, - 0x5932481d, 0x5932680a, 0x59300407, 0x90000c92, - 0x05021003, 0x4803c857, 0x0c01f804, 0x5c024800, - 0x5c026800, 0x1c01f000, 0x00108644, 0x00108646, - 0x00108649, 0x00108685, 0x00109a1c, 0x001099e8, - 0x00109a20, 0x00108645, 0x00108644, 0x00108645, - 0x00108645, 0x00108645, 0x00108645, 0x00108645, - 0x00108645, 0x00108645, 0x00108645, 0x00108645, - 0x05bdfbab, 0x1c01f000, 0x40000000, 0x40000000, - 0x1c01f000, 0x59300403, 0x82000d80, 0x00000085, - 0x05020007, 0x4a026403, 0x0000008b, 0x642e6203, - 0x42000800, 0x80004040, 0x0005f32e, 0x82000d80, - 0x0000008b, 0x0502002f, 0x4d3c0000, 0x417a7800, - 0x0201f800, 0x0010ec6c, 0x5c027800, 0x42000000, - 0x0010b056, 0x050df938, 0x05fdfcb4, 0x0500000e, - 0x4d2c0000, 0x59325809, 0x4a025a05, 0x00000103, - 0x59300402, 0x48025c07, 0x641a5a07, 0x497a580a, - 0x0001fb5b, 0x59300a29, 0x90040d83, 0x05fc0d8b, - 0x5c025800, 0x60443000, 0x0509ff80, 0x64066403, - 0x497a6009, 0x05cdf8b6, 0x59240400, 0x8c00050a, - 0x0502000b, 0x41782800, 0x60103000, 0x4d400000, - 0x60a68000, 0x0509fa1c, 0x5c028000, 0x64126407, - 0x641e6203, 0x6406642c, 0x1c01f000, 0x602c0800, - 0x05ddfa6b, 0x64066407, 0x64066203, 0x05e9f79f, - 0x1c01f000, 0x59300416, 0x8c00051a, 0x05020021, - 0x5930080a, 0x58040200, 0x8c00050e, 0x05000006, - 0x59300a03, 0x90040590, 0x05000003, 0x90040583, - 0x05020018, 0x05fdf8d6, 0x59300203, 0x90000d89, - 0x0500000b, 0x48026429, 0x4a026403, 0x00000085, - 0x59300416, 0x8400055a, 0x8400055e, 0x48026416, - 0x64266203, 0x640a6407, 0x640e6229, 0x59a8002f, - 0x48026205, 0x42000800, 0x80004040, 0x0501fdf8, - 0x0005fb2e, 0x4203e000, 0xb0800000, 0x6023f800, - 0x1c01f000, 0x41780800, 0x59a8102c, 0x60c80000, - 0x05e9fe90, 0x800811c0, 0x05020002, 0x60501000, - 0x480b502e, 0x59a8102d, 0x480b5022, 0x41780800, - 0x61900000, 0x05e9fe87, 0x800811c0, 0x05020002, - 0x60501000, 0x480b502f, 0x9008140a, 0x480b5030, - 0x60040800, 0x05edf8fd, 0x42000000, 0x30000000, - 0x40080800, 0x0001f92d, 0x600c0800, 0x59a8100f, - 0x05edf8e8, 0x05ddf554, 0x64a3502e, 0x6453502f, - 0x4a035022, 0x000007d0, 0x60781000, 0x480b5030, - 0x60040800, 0x05edf8ed, 0x42000000, 0x30000000, - 0x40080800, 0x0001f92d, 0x600c0800, 0x59a8100f, - 0x05edf0d8, 0x4933c857, 0x4d2c0000, 0x59300403, - 0x900005be, 0x05020004, 0x59325819, 0x812e59c0, - 0x05be0eb0, 0x5c025800, 0x1c01f000, 0x0501f802, - 0x1c01f000, 0x4933c857, 0x813669c0, 0x0500000c, - 0x59340200, 0x8c000508, 0x05000009, 0x4a026416, - 0x00000100, 0x8c00050c, 0x59300008, 0x05000002, - 0x84000544, 0x84000542, 0x48026008, 0x1c01f000, - 0x59300416, 0x8c000510, 0x1c01f000, 0x4937c857, - 0x4d300000, 0x05f1fe50, 0x0500000d, 0x4926601d, - 0x4936600a, 0x05fdffe8, 0x64066407, 0x492e6009, - 0x60240800, 0x05ddf9ee, 0x4d380000, 0x60ce7000, - 0x0005fc78, 0x5c027000, 0x90000541, 0x5c026000, - 0x1c01f000, 0x4933c857, 0x4d2c0000, 0x4c580000, - 0x4d3c0000, 0x59325809, 0x91380595, 0x0502001d, - 0x59a8b077, 0x90580c99, 0x05001002, 0x6060b000, - 0x8058b104, 0x0501fa4f, 0x80000580, 0x0501fa5e, - 0x912cac0a, 0x91cca406, 0x050df94a, 0x4c600000, - 0x6004c000, 0x592c100b, 0x8c080518, 0x05020006, - 0x59240005, 0x592c100e, 0x80080580, 0x05020006, - 0x4178c000, 0x5930100a, 0x58081403, 0x417a7800, - 0x05c9fdd1, 0x5c00c000, 0x05f5f833, 0x0501f005, - 0x6008b000, 0x0501fa54, 0x05f5fccf, 0x0005fc5a, - 0x5c027800, 0x5c00b000, 0x5c025800, 0x1c01f000, - 0x4933c856, 0x60018800, 0x4a02601d, 0x0010b111, - 0x4936600a, 0x05fdffac, 0x64066407, 0x492e6009, - 0x4d380000, 0x61367000, 0x0005fc78, 0x5c027000, - 0x90000541, 0x60058800, 0x1c01f000, 0x4803c856, - 0x4d2c0000, 0x91380595, 0x05020025, 0x59a80877, - 0x59325809, 0x5930040c, 0x80040580, 0x05020020, - 0x4c500000, 0x4c540000, 0x4c580000, 0x91cca406, - 0x4050a800, 0x5930b40c, 0x9058b403, 0x8058b104, - 0x050df94b, 0x91cca406, 0x592cb206, 0x9058b403, - 0x8058b104, 0x912cac07, 0x050df90a, 0x592e5801, - 0x812e59c0, 0x05fe07f9, 0x5931d82d, 0x58ef400a, - 0x58ee580c, 0x4a025a05, 0x00000103, 0x58ec0008, - 0x0801f800, 0x59300402, 0x5c00b000, 0x5c00a800, - 0x5c00a000, 0x5c025800, 0x1c01f000, 0x05f5fc92, - 0x5c025800, 0x1c01f000, 0x4933c857, 0x90040db5, - 0x05000005, 0x5930141b, 0x0501f844, 0x05000025, - 0x0501f006, 0x4d300000, 0x5932602a, 0x0501f848, - 0x5c026000, 0x0500001e, 0x591c0c07, 0x90040583, - 0x05000003, 0x90040586, 0x0502001b, 0x591c0c02, - 0x5930041b, 0x80040580, 0x05000009, 0x5930021b, - 0x80040580, 0x05020014, 0x591c0a02, 0x5930041b, - 0x80040580, 0x05020010, 0x0501f009, 0x59300a1b, - 0x82040580, 0x0000ffff, 0x05000005, 0x591c0202, - 0x59300a1b, 0x80040580, 0x05020007, 0x591c000a, - 0x5930080a, 0x80040580, 0x1c01f000, 0x417a3800, - 0x90000541, 0x1c01f000, 0x4803c856, 0x4203e000, - 0xb0800000, 0x600009fe, 0x4203f800, 0x30000000, - 0x40000000, 0x80040840, 0x05bc0a51, 0x05ffb7fb, - 0x1c01f000, 0x4803c856, 0x4203e000, 0xb0800000, - 0x4203f800, 0x20000000, 0x1c01f000, 0x0501f805, - 0x60058800, 0x05020002, 0x60018800, 0x1c01f000, - 0x59300808, 0x8c04051e, 0x592c0c09, 0x05020002, - 0x8c040518, 0x1c01f000, 0x05fdfb51, 0x05000007, - 0x800800ca, 0x800808c8, 0x80040c00, 0x82063c00, - 0x001102e4, 0x491fc857, 0x1c01f000, 0x0501fcf0, - 0x05020007, 0x59301402, 0x05fdfff4, 0x05000007, - 0x411c0000, 0x81300580, 0x05000003, 0x81780500, - 0x0501f002, 0x81300540, 0x1c01f000, 0x4d300000, - 0x83440480, 0x000007f0, 0x05001003, 0x05ddfd29, - 0x0501f002, 0x0001fae7, 0x0502000c, 0x42026000, - 0x00110284, 0x4936600a, 0x492e6009, 0x05ddfd19, - 0x4926601d, 0x0201f800, 0x0010ec6c, 0x80000580, - 0x5c026000, 0x1c01f000, 0x90000541, 0x05fdf7fd, - 0x4933c857, 0x05fdfb35, 0x05bc0a11, 0x4d2c0000, - 0x4d340000, 0x4d440000, 0x4c580000, 0x59325809, - 0x5932680a, 0x49425a07, 0x0005f8e2, 0x592e8c07, - 0x592c4208, 0x9020050f, 0x0c01f806, 0x5c00b000, - 0x5c028800, 0x5c026800, 0x5c025800, 0x1c01f000, - 0x00108802, 0x00108820, 0x00108826, 0x00108829, - 0x00108831, 0x00108800, 0x00108800, 0x00108800, - 0x00108834, 0x0010883e, 0x0010883e, 0x00108800, - 0x00108800, 0x00108800, 0x00108800, 0x00108800, - 0x4803c857, 0x05bdf9ee, 0x814281c0, 0x05020011, - 0x41785800, 0x592c0405, 0x8c00051c, 0x05020002, - 0x59345c05, 0x442c2800, 0x59340008, 0x48002802, - 0x59340009, 0x48002801, 0x59340006, 0x48002804, - 0x59340007, 0x48002803, 0x602cb000, 0x0501f02d, - 0x592c0208, 0x8c00051e, 0x6008b000, 0x05020029, - 0x9004b540, 0x05000027, 0x44042800, 0x5932680a, - 0x59340400, 0x48002801, 0x6008b000, 0x0501f021, - 0x814281c0, 0x05fe07f3, 0x59345c05, 0x442c2800, - 0x6004b000, 0x0501f01b, 0x9140b540, 0x05000019, - 0x0501f021, 0x814281c0, 0x0502001f, 0x59340200, - 0x44002800, 0x59340001, 0x48002801, 0x6008b000, - 0x0501f010, 0x9140b540, 0x05020017, 0x0501f00d, - 0x9140b540, 0x0500000b, 0x05ddfca3, 0x05000012, - 0x8c20050e, 0x05000002, 0x497a600a, 0x4178b000, - 0x497a5a07, 0x0501f003, 0x9140b540, 0x0502000a, - 0x592c0405, 0x8400051c, 0x48025c05, 0x592c0208, - 0x8400051e, 0x48025a08, 0x0501f91a, 0x497a6009, - 0x0001f35b, 0x592c0208, 0x8c00051e, 0x6008b000, - 0x05fe07f4, 0x9004b540, 0x05fc07f2, 0x44042800, - 0x6004b000, 0x05fdf7ef, 0x4937c857, 0x4d300000, - 0x05f1fcf1, 0x0500000d, 0x4926601d, 0x4936600a, - 0x05fdfe89, 0x64066407, 0x492e6009, 0x602c0800, - 0x05ddf88f, 0x4d380000, 0x610e7000, 0x0005fc78, - 0x5c027000, 0x90000541, 0x5c026000, 0x1c01f000, - 0x4937c857, 0x4d2c0000, 0x4d200000, 0x59340013, - 0x80024130, 0x59325809, 0x91380595, 0x05020022, - 0x59a80077, 0x90000584, 0x0502001f, 0x59240005, - 0x592c100a, 0x80080580, 0x05020011, 0x4d440000, - 0x592e8c07, 0x592c0208, 0x4803c856, 0x82000500, - 0x00000080, 0x84000548, 0x4d3c0000, 0x60027820, - 0x8c00050e, 0x05000002, 0x853e7d5c, 0x05ddfbd4, - 0x5c027800, 0x5c028800, 0x0501f003, 0x4803c856, - 0x05ddfc55, 0x05fdfa8d, 0x05000011, 0x4d400000, - 0x60028000, 0x41780800, 0x05fdff52, 0x5c028000, - 0x0501f00a, 0x05ddfc4c, 0x05fe07f7, 0x05fdfa83, - 0x05000007, 0x4c580000, 0x6008b000, 0x0501f8ea, - 0x5c00b000, 0x05f5fb64, 0x0005fc5a, 0x5c024000, - 0x5c025800, 0x1c01f000, 0x4937c857, 0x4d300000, - 0x05f1fca9, 0x0500000f, 0x4926601d, 0x4936600a, - 0x05fdfe41, 0x64066407, 0x4d3c0000, 0x4d380000, - 0x417a7800, 0x05ddf83b, 0x492e6009, 0x60127000, - 0x0005fc78, 0x5c027000, 0x5c027800, 0x90000541, - 0x5c026000, 0x1c01f000, 0x4937c857, 0x4d300000, - 0x05f1fc95, 0x0500000d, 0x4926601d, 0x4936600a, - 0x05fdfe2d, 0x600c0800, 0x05ddf835, 0x64066407, - 0x492e6009, 0x4d380000, 0x61467000, 0x0005fc78, - 0x5c027000, 0x90000541, 0x5c026000, 0x1c01f000, - 0x4933c857, 0x4c580000, 0x4d240000, 0x4d200000, - 0x4d400000, 0x4d440000, 0x4d3c0000, 0x5932481d, - 0x59240a00, 0x8c040500, 0x0500007f, 0x05c9fe5c, - 0x59325809, 0x91383595, 0x0502004e, 0x60100800, - 0x05ddf81b, 0x60040800, 0x05ddf902, 0x812e59c0, - 0x0502003b, 0x59a8007b, 0x80000040, 0x4803507b, - 0x417a8000, 0x59cc0000, 0x82000500, 0x00ffffff, - 0x59240805, 0x4803c857, 0x4807c857, 0x800409c0, - 0x05000016, 0x80041580, 0x05000014, 0x4c000000, - 0x60aa8000, 0x59240400, 0x8c00050a, 0x05020004, - 0x60083000, 0x61fe89ff, 0x0505ffb4, 0x417a7800, - 0x05c9fe87, 0x05c9fef6, 0x600a8000, 0x59cc0c08, - 0x8c04051e, 0x05020004, 0x59240a00, 0x84040d56, - 0x48064a00, 0x5c000000, 0x48024805, 0x40000800, - 0x812000f0, 0x80040540, 0x48026813, 0x40040000, - 0xb1200c80, 0x05021004, 0x49238830, 0x84000570, - 0x48038832, 0x59240200, 0x82000540, 0x00000206, - 0x48024a00, 0x59240400, 0x8c00050c, 0x05000004, - 0x65466429, 0x0501f847, 0x0501f03f, 0x60040000, - 0x05ddfefe, 0x0005fc5a, 0x0501f03b, 0x592c0009, - 0x82000500, 0x00ffffff, 0x05020008, 0x0005f8e2, - 0x59cc0000, 0x82000500, 0x00ffffff, 0x44002800, - 0x6004b000, 0x0501f847, 0x05f1fe3f, 0x0501f02e, - 0x812e59c0, 0x05020029, 0x59340412, 0x800001c0, - 0x05000023, 0x80000040, 0x48026c12, 0x59cc0c07, - 0x82043500, 0x000000ff, 0x481bc857, 0x90180583, - 0x05020013, 0x59cc0207, 0x4803c857, 0x82000d00, - 0x0000ff00, 0x4807c857, 0x82040580, 0x00000d00, - 0x0502000b, 0x59240a00, 0x84040d48, 0x48064a00, - 0x602c0800, 0x05d9ffb6, 0x64066407, 0x64066203, - 0x64066403, 0x05e9fce9, 0x0501f00f, 0x600c0800, - 0x05d9ffaf, 0x4a026202, 0x0000ffff, 0x64066203, - 0x65466403, 0x05e9fce1, 0x0501f007, 0x600c2800, - 0x0501fc5b, 0x0501f004, 0x6008b000, 0x0501f836, - 0x05f5fab1, 0x5c027800, 0x5c028800, 0x5c028000, - 0x5c024000, 0x5c024800, 0x5c00b000, 0x1c01f000, - 0x4933c857, 0x61f2880f, 0x42003000, 0x00fffffc, - 0x05d9ffc1, 0x05be089a, 0x4936600a, 0x05fdfd8a, - 0x417a7800, 0x05d9ff87, 0x600c0800, 0x05d9ff90, - 0x497a6c12, 0x64066203, 0x640a6403, 0x05e9f4c3, - 0x492fc857, 0x4c580000, 0x4c000000, 0x8058b1c0, - 0x0500000a, 0x82580500, 0xfffffff0, 0x05be0888, - 0x8058b0d0, 0x592c0409, 0x82000500, 0xfffff0ff, - 0x80580540, 0x48025c09, 0x5c000000, 0x5c00b000, - 0x1c01f000, 0x492fc857, 0x4c000000, 0x4c040000, - 0x800000d8, 0x592c0c09, 0x82040d00, 0xffff0fff, - 0x80040540, 0x48025c09, 0x5c000800, 0x5c000000, - 0x1c01f000, 0x4933c857, 0x4d2c0000, 0x59325809, - 0x592c0208, 0x8400055e, 0x48025a08, 0x4c500000, - 0x4c540000, 0x4c580000, 0x05fdffda, 0x0005f8e2, - 0x64602800, 0x80142800, 0x8058b040, 0x91cca407, - 0x4014a800, 0x0509fed3, 0x5c00b000, 0x5c00a800, - 0x5c00a000, 0x5c025800, 0x1c01f000, 0x0501f805, - 0x60058800, 0x05000002, 0x60018800, 0x1c01f000, - 0x59325809, 0x592c0205, 0x82000580, 0x00000152, - 0x1c01f000, 0x5930002b, 0x80000540, 0x05c208ff, - 0x1c01f000, 0x59300008, 0x82000500, 0x04000800, - 0x82000580, 0x04000800, 0x05020003, 0x59300221, - 0x48025c10, 0x1c01f000, 0x592c0408, 0x82000500, - 0x0000f000, 0x82000580, 0x00003000, 0x05020003, - 0x4a026416, 0x00000100, 0x1c01f000, 0x4d2c0000, - 0x59325809, 0x59300203, 0x4933c857, 0x492fc857, - 0x493bc857, 0x4803c857, 0x90003491, 0x05be1834, - 0x0c01f803, 0x5c025800, 0x1c01f000, 0x001089d0, - 0x001089d6, 0x00108a0e, 0x001089d0, 0x001089d0, - 0x001089d0, 0x001089d0, 0x001089d0, 0x001089d1, - 0x001089d0, 0x001089d0, 0x001089d0, 0x001089d0, - 0x001089d0, 0x00108ab5, 0x001089d0, 0x001089d0, - 0x05bdf81f, 0xb1383498, 0x05be181d, 0x493a6403, - 0x64066203, 0x05e9f44d, 0x91380593, 0x05020010, - 0x492fc857, 0x05fdfd17, 0x05000003, 0x643a6203, - 0x0501f005, 0x592c000d, 0x800001c0, 0x05000005, - 0x640a6203, 0x59a8002e, 0x48026006, 0x1c01f000, - 0x64025a07, 0x0001fb5b, 0x0005f45a, 0x913805a7, - 0x0500001e, 0x91380594, 0x05000018, 0x05fdfd05, - 0x0500000c, 0xb13805a1, 0x05000004, 0xb13805a0, - 0x05fe07f3, 0x4937c857, 0x05edf943, 0x05f20385, - 0x59300203, 0x9000058e, 0x050000bf, 0x05b9fff8, - 0x91380595, 0x05000003, 0x91380596, 0x05ba0ff4, - 0x05edf939, 0x05f2037b, 0x59300203, 0x90000582, - 0x05ba0fef, 0x0501f00d, 0x4937c857, 0x05e9fccf, - 0x6446580f, 0x0501f004, 0x4937c857, 0x05e9fccb, - 0x6442580f, 0x64c65a07, 0x6412580e, 0x0001fb5b, - 0x05ddfccd, 0x05f1f306, 0x59341400, 0x82081d00, - 0x000000ff, 0x59300c03, 0x480bc857, 0x4807c857, - 0xb0040593, 0x05000020, 0x90040582, 0x0500000f, - 0x90040581, 0x05000010, 0x90040583, 0x05000013, - 0x90040585, 0x05000014, 0x900405b3, 0x05000012, - 0x90040580, 0x05000013, 0x90040584, 0x05ba0fcc, - 0x0501f875, 0x0501f010, 0x900c0583, 0x05000837, - 0x0501f00d, 0x900c058b, 0x0502000b, 0x601c0800, - 0x05d9febf, 0x0501f008, 0x900c0585, 0x0500084a, - 0x0501f005, 0x900c0589, 0x05000865, 0x0501f002, - 0x0501f86a, 0x654a6403, 0x59a81077, 0x592c040c, - 0x8c000500, 0x05000002, 0x60201000, 0x592c040c, - 0x8c000516, 0x05000002, 0x90081418, 0x592c000d, - 0x497a580e, 0x497a580f, 0x80080c80, 0x05000007, - 0x05001004, 0x641e5a07, 0x40001000, 0x0501f004, - 0x64565a07, 0x0501f002, 0x64025a07, 0x480a580d, - 0x05f1fc9e, 0x0500000d, 0x592c1001, 0x480a600d, - 0x58080800, 0x90080402, 0x592c1012, 0x592c1813, - 0x60003000, 0x42002000, 0x00101075, 0x05f1fde7, - 0x05000002, 0x1c01f000, 0x64b25a07, 0x497a580d, - 0x0001fb5b, 0x0005f45a, 0x91380595, 0x05020008, - 0x59a8008d, 0x8c000502, 0x05020007, 0x41780800, - 0x05d9ff70, 0x60100800, 0x05d9f685, 0x601c0800, - 0x05d9f683, 0x05ddffc4, 0x60401000, 0x05020008, - 0x59340002, 0x82000500, 0x00ff0000, 0x82000580, - 0x00ff0000, 0x05fc07f2, 0x60201000, 0x05ddfcaa, - 0x05fc07ef, 0x592c040c, 0x84000540, 0x48025c0c, - 0x05fdf7ef, 0x91380595, 0x0502000b, 0x59a8008d, - 0x8c000502, 0x0502000a, 0x05d9ffc7, 0x4d3c0000, - 0x417a7800, 0x05d9fe5f, 0x5c027800, 0x60180800, - 0x05d9f667, 0x60100800, 0x05d9f665, 0x05ddffa6, + 0x05d1fe2b, 0x0005fc5a, 0x42000000, 0x0010b2c7, + 0x0515fb99, 0x6006d800, 0x05e1f75a, 0x0515fcd2, + 0x050e0145, 0x0501fa6d, 0x0501f046, 0x41780800, + 0x05e5fbf6, 0x59341403, 0x82080580, 0x000007fc, + 0x05020024, 0x4a026802, 0x00fffffc, 0x0505fe38, + 0x0500000c, 0x0509fcc1, 0x0502000a, 0x0501f8ac, + 0x41780800, 0x4d400000, 0x60028000, 0x0509fafa, + 0x5c028000, 0x60100800, 0x05e5faf8, 0x0005f45a, + 0x60100800, 0x05e5faf5, 0x05d1fe09, 0x59300c29, + 0x900405a1, 0x05000003, 0xb0040591, 0x0006045a, + 0x05d5f8b0, 0x61f6880f, 0x42003000, 0x00fffffd, + 0x05e5fb17, 0x05c60b1a, 0x4936600a, 0x497a6c12, + 0x640e601e, 0x64066203, 0x648a6403, 0x05f5f109, + 0x59a8008d, 0x8c000502, 0x0500000d, 0x05e9fc53, 0x60401000, 0x05020008, 0x59340002, 0x82000500, - 0x00ff0000, 0x82000580, 0x00ff0000, 0x05fc07ef, - 0x60201000, 0x05ddfc8c, 0x05fc07ec, 0x592c040c, - 0x84000540, 0x48025c0c, 0x05fdf7ef, 0x60100800, - 0x05d9f653, 0x91380595, 0x05020003, 0x0505fd8e, - 0x05dc091e, 0x1c01f000, 0x91380595, 0x05020015, - 0x4c580000, 0x91cc1408, 0x6008b000, 0x91341c06, - 0x05f5fda8, 0x0502000e, 0x91cc140a, 0x6008b000, - 0x91341c08, 0x05f5fda3, 0x05020009, 0x59342200, - 0x59cc1007, 0x800811c0, 0x05000003, 0x480a6801, - 0x84102542, 0x8410251a, 0x48126a00, 0x5c00b000, - 0x1c01f000, 0x4803c856, 0xb13805a1, 0x0500000b, - 0xb13805a0, 0x05000009, 0xb13805a2, 0x05020011, - 0x64c65a07, 0x6412580e, 0x644a580f, 0x0001fb5b, - 0x05ddfc19, 0x0005f45a, 0x592c000d, 0x800001c0, - 0x05000005, 0x59a8002e, 0x48026006, 0x640a6203, - 0x1c01f000, 0x64025a07, 0x0001fb5b, 0x0005fc5a, - 0x1c01f000, 0x42000000, 0x0010b06e, 0x0509fcc6, - 0x05e9fcad, 0x59300203, 0x4933c857, 0x4803c857, - 0x90000c91, 0x05ba1f1a, 0x0c01f802, 0x05e9f492, - 0x00108aea, 0x00108af3, 0x00108aeb, 0x00108ae9, - 0x00108ae9, 0x00108ae9, 0x00108ae9, 0x00108ae9, - 0x00108ae9, 0x00108ae9, 0x00108ae9, 0x00108ae9, - 0x00108ae9, 0x00108ae9, 0x00108aeb, 0x00108ae9, - 0x00108ae9, 0x05b9ff06, 0x1c01f000, 0x59300403, - 0xb0000592, 0x05f80625, 0x05ddfbeb, 0x59325809, - 0x641a5a07, 0x0001fb5b, 0x05f1f221, 0x59301804, - 0x840c0520, 0x48026004, 0x598c000b, 0x81300580, - 0x0502000f, 0x8c0c0520, 0x0502000f, 0x42001000, - 0x0010af8e, 0x50081000, 0x58080002, 0x82000580, - 0x00000100, 0x0500000d, 0x5808000b, 0x81300580, - 0x05ba0eeb, 0x4978100b, 0x0501f003, 0x8c0c0520, - 0x05fe07e3, 0x0201f800, 0x0010eee3, 0x80c40040, - 0x05fc07df, 0x05b9fee2, 0x05e9ff7e, 0x05fc07fa, - 0x59300203, 0x90000c91, 0x05ba1edd, 0x0c01f7c5, - 0x4933c857, 0x4c500000, 0x4c540000, 0x4c580000, - 0x592c0c08, 0x48065814, 0x59cc0809, 0x48065808, - 0x59cc0808, 0x4806580c, 0x59a8088c, 0x82040500, - 0x000003ff, 0x800010c4, 0x8c040514, 0x05000004, - 0x59cc0002, 0x90000503, 0x80081480, 0x480a621c, - 0x412c0800, 0x05bdfa40, 0x05b80ec5, 0x492c080a, - 0x58040409, 0x84000552, 0x84000540, 0x48000c09, - 0x90081403, 0x80081104, 0x91cca406, 0x912cac05, - 0x60400800, 0x90080490, 0x05021003, 0x40080800, - 0x80000580, 0x4004b000, 0x4c000000, 0x0509fd60, - 0x5c000000, 0x800001c0, 0x0500000a, 0x412c1000, - 0x4c000000, 0x05bdfa28, 0x05b80ead, 0x492c1001, - 0x912cac05, 0x5c000000, 0x40001000, 0x05fdf7ee, - 0x5c00b000, 0x5c00a800, 0x5c00a000, 0x1c01f000, - 0x4933c857, 0x4d2c0000, 0x4c380000, 0x59325809, - 0x5930021c, 0x48025a09, 0x59301013, 0x640a6203, - 0x592c020b, 0x8c000500, 0x05000004, 0x59300017, - 0x592c1010, 0x80081480, 0x40080000, 0x0501f963, - 0x80001540, 0x05020007, 0x64025a07, 0x592c000c, - 0x82000500, 0x00000c00, 0x05000009, 0x0501f009, - 0x8c08053e, 0x05000005, 0x641e5a07, 0x80081080, - 0x80081000, 0x0501f002, 0x64565a07, 0x480a5808, - 0x42000000, 0x0010ccb9, 0x50007000, 0x5838000a, - 0x80000540, 0x05020007, 0x4930700b, 0x4930700a, - 0x58380002, 0x90000580, 0x05020808, 0x0501f004, - 0x90001400, 0x45301000, 0x4930700a, 0x5c007000, - 0x5c025800, 0x1c01f000, 0x4933c857, 0x592c000a, - 0x40001000, 0x48007009, 0x90080405, 0x48007003, - 0x592c000e, 0x592c100f, 0x48007006, 0x48087007, - 0x592c0014, 0x592c1209, 0x80080c80, 0x05001002, - 0x40001000, 0x90081403, 0x80081104, 0x90080490, - 0x05021003, 0x80000580, 0x0501f002, 0x60401000, - 0x4800700c, 0x48087004, 0x800810c4, 0x48087005, - 0x40381000, 0x0001f01c, 0x4d2c0000, 0x05bdf9ce, - 0x05b80e53, 0x42000800, 0x0010ccb9, 0x452c0800, - 0x497a580a, 0x497a580b, 0x497a580c, 0x4a025808, - 0x00108baa, 0x4a025802, 0x00000100, 0x64025801, - 0x5c025800, 0x1c01f000, 0x4833c857, 0x4d300000, - 0x4d2c0000, 0x4c5c0000, 0x4030b800, 0x585c0009, - 0x80025d40, 0x05020004, 0x585c000b, 0x4c000000, - 0x0501f03b, 0x585c0002, 0x82000580, 0x00000100, - 0x0502001c, 0x592c0801, 0x4c040000, 0x05bdf9d1, - 0x5c000800, 0x800409c0, 0x05000017, 0x4804b809, - 0x585c100c, 0x800811c0, 0x05020004, 0x40065800, - 0x05bdf9d1, 0x0501f010, 0x90080490, 0x05021003, - 0x80000580, 0x0501f002, 0x60401000, 0x4800b80c, - 0x4808b804, 0x800810c4, 0x4808b805, 0x90040405, - 0x4800b803, 0x405c1000, 0x0001f81c, 0x0501f022, - 0x0501f825, 0x585c000b, 0x80026540, 0x59300000, - 0x80000d40, 0x05020002, 0x4800b80a, 0x4800b80b, - 0x497a6000, 0x4c000000, 0x4978b809, 0x59325809, + 0x00ff0000, 0x82000580, 0x00ff0000, 0x05000004, + 0x60201000, 0x05e9f913, 0x05020056, 0x0505fe08, + 0x05000057, 0x0509fc91, 0x05020005, 0x592c0405, + 0x8c00051c, 0x05fe07ca, 0x0501f879, 0x60140800, + 0x05e5faca, 0x64066203, 0x640e6403, 0x05f5f0ed, + 0x59cc0408, 0x8c000518, 0x05000017, 0x0509f98f, + 0x05e9fc36, 0x05000008, 0x59cc0408, 0x8c000516, + 0x05000005, 0x59300429, 0x900005a1, 0x05fe07b8, + 0x1c01f000, 0x59a8021b, 0x8400054a, 0x4803521b, + 0x4803541b, 0x59a8000f, 0x497b8830, 0x84000570, + 0x48038832, 0x59300429, 0x900005a1, 0x05fe07ac, + 0x1c01f000, 0x59a8021b, 0xb0000510, 0xb0000590, + 0x05000009, 0x61bc1001, 0x42024800, 0x0010b391, + 0x480a4805, 0x480b500f, 0x497b8830, 0x84081570, + 0x480b8832, 0x0509f98a, 0x59a8021b, 0x84000548, + 0x4803521b, 0x4803541b, 0x0511fbe7, 0x05fe0798, + 0x599c0019, 0x8c000510, 0x0502002d, 0x59a8021b, + 0x8400054c, 0x4803521b, 0x601c0800, 0x05e5fa93, + 0x417a7800, 0x05e5fa86, 0x61bc3801, 0x61a00001, + 0x05f1f8d6, 0x05e40aba, 0x05c60abd, 0x4936600a, + 0x05e5fd66, 0x05020002, 0x497a6416, 0x59340200, + 0x8400051a, 0x48026a00, 0x600c0800, 0x05e5fa83, + 0x64066407, 0x64066203, 0x640a6403, 0x05f5f0a5, + 0x05fdfe78, 0x60040000, 0x0501f012, 0x599c0017, + 0x8c00050a, 0x05fc07ae, 0x60100800, 0x05e5fa77, + 0x49375082, 0x59a8021b, 0x8c000508, 0x05000008, + 0x599c0018, 0x8c00051c, 0x05000005, 0x61a00807, + 0x42001000, 0x0010f866, 0x05f1fecc, 0x0005f45a, + 0x4933c857, 0x80003540, 0x05000003, 0x601c0800, + 0x05e5fa66, 0x801831c0, 0x0502000f, 0x59302009, + 0x801021c0, 0x05000004, 0x58100405, 0x8c00051e, + 0x05020009, 0x59341c03, 0x60102000, 0x60483000, + 0x4d200000, 0x59364013, 0x81224130, 0x05ddfed8, + 0x5c024000, 0x05d1fd6a, 0x0005f45a, 0x4c5c0000, + 0x4d2c0000, 0x59325809, 0x0005f8e2, 0x5c025800, + 0x59cc0008, 0x48002805, 0x59cc0009, 0x48002806, + 0x49782807, 0x49782808, 0x49782809, 0x4978280a, + 0x59cc0013, 0x8c00053e, 0x05000009, 0x59cc0414, + 0x900001c0, 0x59ccbc15, 0x805c0540, 0x48002807, + 0x59cc0416, 0x900001c0, 0x48002808, 0x59cc0017, + 0x8c00053e, 0x05000009, 0x59cc0418, 0x900001c0, + 0x59ccbc19, 0x805c0540, 0x48002809, 0x59cc041a, + 0x900001c0, 0x4800280a, 0x5c00b800, 0x1c01f000, + 0x4933c857, 0x59a80077, 0x90000594, 0x0502003a, + 0x59a8008d, 0x8c000502, 0x05000011, 0x05e9fb9b, + 0x60401000, 0x05020008, 0x59340002, 0x82000500, + 0x00ff0000, 0x82000580, 0x00ff0000, 0x05000008, + 0x60201000, 0x05e9f85b, 0x05000005, 0x59a8008d, + 0x8400054c, 0x4803508d, 0x0501f027, 0x916c0583, + 0x0502000c, 0x59300009, 0x80000540, 0x05020009, + 0x59341c03, 0x60182000, 0x604c3000, 0x4d200000, + 0x59364013, 0x81224130, 0x05ddfe8d, 0x5c024000, + 0x05e5fb6b, 0x05fdfec8, 0x0501fa52, 0x05020016, + 0x59340404, 0x80000540, 0x05000013, 0x60180800, + 0x05e5fa02, 0x0505fd36, 0x0500000d, 0x0509fbbf, + 0x05020007, 0x41780800, 0x4d400000, 0x60028000, + 0x0509f9f9, 0x5c028000, 0x0005f45a, 0x4a025a05, + 0x00000103, 0x4a025806, 0x02000000, 0x05d1fd08, + 0x0005f45a, 0x05e5ffeb, 0x0505fd25, 0x05000005, + 0x0509fbae, 0x05020003, 0x05fdfde6, 0x0005f45a, + 0x05fdfde4, 0x0515f9a0, 0x80000580, 0x59a8008d, + 0x8c00050c, 0x05000004, 0x8400050c, 0x4803508d, + 0x90000541, 0x05fdf777, 0x4933c857, 0x59a80077, + 0x90000594, 0x05020006, 0x602c0800, 0x05e5f9db, + 0x64066203, 0x64066403, 0x05f1f7fe, 0x60040000, + 0x05fdf76c, 0x4933c857, 0x40003000, 0x59a80077, + 0x90000584, 0x05020018, 0x9018358b, 0x05020015, + 0x5930081d, 0x58040200, 0x8c000500, 0x0508078d, + 0x58040200, 0x8c000508, 0x0500000c, 0x84000508, + 0x48000a00, 0x600c0800, 0x05e5f9c4, 0x5930080a, + 0x49780806, 0x4a026202, 0x0000ffff, 0x64066203, + 0x65466403, 0x05f1f7e3, 0x601c0800, 0x05e5f9bb, + 0x0005f45a, 0x60040000, 0x05fdf74e, 0x4803c857, + 0x4d2c0000, 0x4d3c0000, 0x0c01f804, 0x5c027800, + 0x5c025800, 0x1c01f000, 0x00107634, 0x0010783d, + 0x00107634, 0x00107881, 0x00107634, 0x001078d6, + 0x0010781a, 0x00107634, 0x00107634, 0x001078ec, + 0x00107634, 0x001078f7, 0x4933c857, 0x4d1c0000, + 0x59301403, 0x90080583, 0x0500001d, 0x9008159e, + 0x05020019, 0x91381595, 0x05020016, 0x4d300000, + 0x5930141b, 0x0509f96e, 0x05c409c9, 0x591c1416, + 0x8c08051e, 0x0500000b, 0x05f9fed3, 0x05000009, + 0x05e5fd9c, 0x4926601d, 0x59340200, 0x8c000508, + 0x05000003, 0x4a026416, 0x00000100, 0x0505ff4b, + 0x82081500, 0xffff1fff, 0x480a3c16, 0x5c026000, + 0x0005fc5a, 0x5c023800, 0x1c01f000, 0x05fdff55, + 0x05fdf7fd, 0x4933c857, 0x42000000, 0x0010b2da, + 0x0515fa05, 0x0515f934, 0x05e5fc52, 0x0505fcb0, + 0x05000007, 0x0509fb39, 0x05020005, 0x6008b000, + 0x0509fb1b, 0x05fdfd6f, 0x0005f45a, 0x0501f8c3, + 0x05020021, 0x417a7800, 0x05e5f965, 0x417a7800, + 0x0201f800, 0x0010ee7a, 0x42000000, 0x0010b2d6, + 0x0515f9f1, 0x59340200, 0x84000558, 0x48026a00, + 0x640a6403, 0x600c3000, 0x0515f844, 0x59240400, + 0x8c00050a, 0x0502000b, 0x4d400000, 0x41782800, + 0x60143000, 0x60a68000, 0x0511faca, 0x5c028000, + 0x641e6203, 0x64126407, 0x6406642c, 0x1c01f000, + 0x600c0800, 0x05e5f955, 0x64066203, 0x05f1ff79, + 0x05fdf7fb, 0x59cc0407, 0x90000589, 0x05020009, + 0x59340412, 0x82000500, 0x000000ff, 0x0500000b, + 0x80000040, 0x48026c12, 0x642a6006, 0x05fdf7f0, + 0x59cc0207, 0x82000500, 0x0000ff00, 0x82000580, + 0x00001900, 0x05fc07d2, 0x05fdfd3a, 0x80000580, + 0x05fdf6d4, 0x4933c857, 0x0505fc71, 0x0500000b, + 0x0509fafa, 0x05020009, 0x4c580000, 0x6008b000, + 0x0509fadb, 0x5c00b000, 0x05fdfd2e, 0x601c0800, + 0x05e5f932, 0x0005f45a, 0x59340403, 0x82000580, + 0x000007fc, 0x05020005, 0x60100000, 0x05fdf8c5, + 0x0500001a, 0x0501f026, 0x05fdfd22, 0x59cc3407, + 0x82183500, 0x000000ff, 0x90180585, 0x05000016, + 0x9018058b, 0x05000011, 0x59cc0207, 0x82000500, + 0x0000ff00, 0x05020003, 0x90180589, 0x0500000e, + 0x82000580, 0x00001900, 0x05020008, 0x90180589, + 0x05000009, 0x60100800, 0x05e5f914, 0x05d1fc28, + 0x0515f8c9, 0x0005f45a, 0x0515f8c7, 0x60040000, + 0x05fdf6a4, 0x0505fc42, 0x59325809, 0x05000008, + 0x592c0205, 0x82000580, 0x00000139, 0x05fc07f7, + 0x592c0405, 0x8c00051e, 0x05fe07f4, 0x59340412, + 0x800001c0, 0x05000006, 0x80000040, 0x48026c12, + 0x642a6006, 0x645a6403, 0x1c01f000, 0x59340403, + 0x82000580, 0x000007fe, 0x05020006, 0x59a8021b, + 0x84000540, 0x4803521b, 0x05e1fe46, 0x05fdf7e3, + 0x0515f8a9, 0x417a7800, 0x0201f800, 0x0010ee7a, + 0x60143000, 0x0511ffcd, 0x42000000, 0x0010b2d6, + 0x0515f971, 0x05fdf7da, 0x4933c857, 0x0501f844, + 0x05020006, 0x60140800, 0x05e5f8e4, 0x64066203, + 0x640e6403, 0x05f1f707, 0x60100800, 0x05e5f8df, + 0x0509fa9e, 0x05020007, 0x4c580000, 0x6008b000, + 0x0509fa7f, 0x5c00b000, 0x05fdfcd2, 0x0005f45a, + 0x05fdfcd0, 0x0515f88c, 0x80000580, 0x05fdf669, + 0x4933c857, 0x0501f82e, 0x05020006, 0x60240800, + 0x05e5f8ce, 0x64066203, 0x64166403, 0x05f1f6f1, + 0x0515f881, 0x60040000, 0x05fdf65e, 0x4933c857, + 0x5930081d, 0x58040200, 0x8c000500, 0x05080685, + 0x0501f81f, 0x05020006, 0x602c0800, 0x05e5f8bf, + 0x64066203, 0x64066403, 0x05f1f6e2, 0x5930080a, + 0x58040403, 0x82000580, 0x000007fe, 0x05020004, + 0x600c2800, 0x0509fe7c, 0x0005f45a, 0x0515f86a, + 0x60040000, 0x05fdf647, 0x4933c857, 0x59cc0407, + 0x90000583, 0x05020009, 0x59cc0207, 0x82000500, + 0x0000ff00, 0x82000d80, 0x00002a00, 0x05000003, + 0x82000d80, 0x00001e00, 0x1c01f000, 0x4933c857, + 0x90000541, 0x1c01f000, 0x4933c857, 0x4d400000, + 0x4c580000, 0x60028000, 0x05d1fe5e, 0x59a8021b, + 0x90000543, 0x4803521b, 0x0501f88c, 0x05000005, + 0x4d300000, 0x4d340000, 0x4d440000, 0x0501f024, + 0x0501f8b5, 0x05000028, 0x4d300000, 0x4d340000, + 0x4d440000, 0x83240580, 0x0010b391, 0x0502001d, + 0x59cc0408, 0x8c00051e, 0x05020009, 0x42000800, + 0x0010b391, 0x58040406, 0x8c000500, 0x05020004, + 0x59a8021b, 0x84000552, 0x4803521b, 0x59240400, + 0x8c00050a, 0x05020005, 0x60aa8000, 0x61fe89ff, + 0x60083000, 0x0511ff6a, 0x60aa8000, 0x4d3c0000, + 0x60027804, 0x0201f800, 0x0010edf3, 0x5c027800, + 0x42000000, 0x0010b2d6, 0x0515f8f7, 0x05d1fccc, + 0x05d1feef, 0x600a8000, 0x5c028800, 0x5c026800, + 0x5c026000, 0x41780800, 0x05e5f954, 0x59cc0800, + 0x82040d00, 0x00ffffff, 0x59240200, 0xb0000566, + 0x48024a00, 0x48064805, 0x812000f0, 0x80040540, + 0x48026813, 0x812241c0, 0x05020005, 0x4c040000, + 0x60040000, 0x05e5ffa2, 0x5c000800, 0x4927c857, + 0x83240580, 0x0010b391, 0x0502001e, 0x59a8121b, + 0x59cc0408, 0x8c00051a, 0x05020005, 0x84081514, + 0x4a0370e5, 0x00000800, 0x0501f004, 0x84081554, + 0x4a0370e5, 0x00000c00, 0x480b521b, 0x4807500f, + 0x80040110, 0x48035018, 0x48038881, 0x59a80a1b, + 0x84040d50, 0x59cc0013, 0x8c00053e, 0x05000003, + 0x8c000536, 0x05000004, 0x59cc0017, 0x8c000536, + 0x05020002, 0x84040d10, 0x4807521b, 0x4807541b, + 0x59cc0408, 0x8c000518, 0x0500001b, 0x59a8021b, + 0x8c000506, 0x05000011, 0x916c0583, 0x05000004, + 0x83240580, 0x0010b391, 0x05000013, 0x59240400, + 0x8c00050c, 0x05020006, 0x4c040000, 0x60040000, + 0x05e5ff6f, 0x5c000800, 0x0501f00b, 0x64866429, + 0x0509f99a, 0x0501f008, 0x0515f9ed, 0x05020006, + 0x4c040000, 0x0509fdc3, 0x41781800, 0x05d1fd95, + 0x5c000800, 0xb0040510, 0xb0000590, 0x05000008, + 0x05e9f98a, 0x05000006, 0x59cc0009, 0x4803502c, + 0x59cc000a, 0x4803502d, 0x0505fedc, 0x5c00b000, + 0x5c028000, 0x1c01f000, 0x4933c857, 0x59a8141b, + 0x82080580, 0x0000ffff, 0x0500000b, 0x4c080000, + 0x05e9f97a, 0x5c001000, 0x0502000b, 0x59cc0408, + 0x8c000518, 0x05000005, 0x8c08050a, 0x0500000a, + 0x80000580, 0x1c01f000, 0x8c080508, 0x05fe07fd, + 0x0501f005, 0x90080530, 0x05020003, 0x8c080506, + 0x05fe07f8, 0x4a03541b, 0x0000ffff, 0x42000000, + 0x0010b223, 0x0515f878, 0x60303000, 0x61fc19ff, + 0x601c2000, 0x4d200000, 0x417a4000, 0x05ddfc6c, + 0x5c024000, 0x4d400000, 0x4d3c0000, 0x60043000, + 0x0511fed7, 0x60aa8000, 0x60027804, 0x0201f800, + 0x0010edf3, 0x5c028000, 0x5c027800, 0x90000541, + 0x1c01f000, 0x4933c857, 0x4c580000, 0x59a80018, + 0x800001c0, 0x05000021, 0x59341806, 0x800c19c0, + 0x0500001e, 0x820c1d80, 0xdeaddead, 0x0500001a, + 0x59cc1000, 0x82081500, 0x00ffff00, 0x80081110, + 0x80080580, 0x05000004, 0x42000000, 0x0010b2b9, + 0x0501f010, 0x91cc140b, 0x6008b000, 0x91341c06, + 0x0501f829, 0x05000004, 0x42000000, 0x0010b2ba, + 0x0501f008, 0x91cc140d, 0x6008b000, 0x91341c08, + 0x0501f821, 0x05000005, 0x42000000, 0x0010b2bb, + 0x0515f841, 0x90000541, 0x5c00b000, 0x1c01f000, + 0x4933c857, 0x59cc0206, 0x90000594, 0x05020015, + 0x59cc0407, 0x82000580, 0x00000800, 0x05020011, + 0x59cc0207, 0x8c00051a, 0x0500000d, 0x82000500, + 0x00000f00, 0x82000580, 0x00000100, 0x05020008, + 0x59cc020a, 0x8c000508, 0x05020003, 0x8c00050a, + 0x05000003, 0x80000580, 0x1c01f000, 0x90000541, + 0x1c01f000, 0x5c000000, 0x4c000000, 0x4803c857, + 0x480bc857, 0x480fc857, 0x485bc857, 0x50080800, + 0x500c0000, 0x80042580, 0x05020007, 0x80081000, + 0x800c1800, 0x8058b040, 0x05fe07f9, 0x80000580, + 0x1c01f000, 0x4803c857, 0x4807c857, 0x480bc857, + 0x480fc857, 0x80040480, 0x05001004, 0x60040000, + 0x90040d41, 0x1c01f000, 0x41780000, 0x05fdf7fd, + 0xb1380493, 0x05c21fb2, 0xb138048b, 0x05c01fb0, + 0x0c01f001, 0x00107a4a, 0x00107a4a, 0x00107a4a, + 0x00107a4a, 0x00107a49, 0x00107a49, 0x00107a49, + 0x00107a4a, 0x05c1ffa6, 0x493bc857, 0x64366203, + 0x493a6403, 0x42000800, 0x80000000, 0x0005f32e, + 0x91380593, 0x0502000b, 0x59300403, 0xb0000590, + 0x05c20f9b, 0x0505fe7c, 0x05000005, 0x643a6203, + 0x59a80030, 0x48026205, 0x1c01f000, 0x0005f45a, + 0x4933c857, 0x913805a7, 0x05020027, 0x4933c857, + 0x05f1fe34, 0x4d3c0000, 0x417a7800, 0x0201f800, + 0x0010ee7a, 0x5c027800, 0x42000000, 0x0010b2d6, + 0x0511ffdd, 0x4d2c0000, 0x59325809, 0x0505fa88, + 0x492fc857, 0x0500000c, 0x0509fc2d, 0x4a025a05, + 0x00000103, 0x59300c02, 0x48065c07, 0x64a65a07, + 0x497a580a, 0x592c0c09, 0x84040d50, 0x48065c09, + 0x0001fb5b, 0x5c025800, 0x60543000, 0x41782800, + 0x600c2000, 0x4d400000, 0x4d440000, 0x59368c03, + 0x60a68000, 0x0509fb79, 0x5c028800, 0x5c028000, + 0x0005f45a, 0x91380594, 0x05020009, 0x59300403, + 0xb0000c93, 0x05c21f66, 0xb0000480, 0x05c01f64, + 0x4933c857, 0x4803c857, 0x0c01f013, 0xb13805a1, + 0x05000003, 0xb13805a0, 0x05020007, 0x05f5fa64, + 0x05fa049c, 0x59300203, 0x9000058e, 0x0504041c, + 0x1c01f000, 0xb1380593, 0x05000006, 0xb1380588, + 0x05c20f53, 0x59300403, 0xb0000590, 0x05c20f50, + 0x1c01f000, 0x00107ab5, 0x00107ab4, 0x00107ab4, + 0x00107ab4, 0x00107ab4, 0x00107ab4, 0x00107ab4, + 0x00107ab4, 0x00107ab4, 0x00107ab4, 0x00107ab4, + 0x00107ac6, 0x00107ac6, 0x00107ac6, 0x00107ac6, + 0x00107ab4, 0x00107ac6, 0x00107ab4, 0x00107ac6, + 0x05c1ff3b, 0x4933c857, 0x05f1fdde, 0x0505fa3c, + 0x0004045a, 0x4d2c0000, 0x59325809, 0x0509fbe0, 0x4a025a05, 0x00000103, 0x59300402, 0x48025c07, - 0x592c100c, 0x4c080000, 0x0001fb5b, 0x0501f8ce, - 0x05fdf80e, 0x5c001000, 0x8c080518, 0x05000003, - 0x05fdf92d, 0x0501f002, 0x0005fc5a, 0x405c7000, - 0x5c000000, 0x80026540, 0x05000003, 0x59325809, - 0x05fdff8a, 0x5c00b800, 0x5c025800, 0x5c026000, - 0x1c01f000, 0x483bc857, 0x58380009, 0x40025800, - 0x05bdf999, 0x5838000b, 0x80026540, 0x59300009, - 0x80025d40, 0x640a5a07, 0x1c01f000, 0x4803c857, - 0x4933c857, 0x4d1c0000, 0x497a601e, 0x41323800, - 0x40026000, 0x4d3c0000, 0x60167800, 0x0501f838, - 0x5c027800, 0x411e6000, 0x4933c857, 0x59300416, - 0x84000502, 0x48026416, 0x5c023800, 0x1c01f000, - 0x481bc857, 0x4933c857, 0x4c5c0000, 0x4c600000, - 0x4010b800, 0x4014c000, 0x0509f9d4, 0x05c9fb0c, - 0x59240400, 0x8c00050a, 0x05020006, 0x40602800, - 0x405c3000, 0x0505fc7d, 0x90000541, 0x0501f002, - 0x80000580, 0x5c00c000, 0x5c00b800, 0x1c01f000, - 0x4803c856, 0x4d300000, 0x42026000, 0x001102e4, - 0x59a8000d, 0x81640580, 0x05000013, 0x59300c07, - 0x90040581, 0x05000009, 0x90040584, 0x05000004, - 0x90040590, 0x05f80c61, 0x0501f007, 0x59300203, - 0x90000d87, 0x05000004, 0x4807c857, 0x05fdf9e0, - 0x05020807, 0x91326430, 0x41580000, 0x81300480, - 0x05fc17ec, 0x5c026000, 0x1c01f000, 0x4933c857, - 0x59300403, 0x4803c857, 0x05e9fb37, 0x4df00000, - 0x59300407, 0x4803c857, 0x90000d82, 0x05000013, - 0x90000d81, 0x05000007, 0x90000d84, 0x05000005, - 0x4933c856, 0x5c03e000, 0x05e80b17, 0x0501f03e, - 0x59300203, 0x90000d81, 0x05000014, 0x90000d82, - 0x0500002b, 0x90000d85, 0x05000029, 0x90000d8e, - 0x05000027, 0x05b9fd92, 0x59300203, 0x90000d89, - 0x0500000a, 0x90000d8b, 0x05000008, 0x90000d8a, - 0x0500001f, 0x90000d8c, 0x0500001d, 0x90000d8e, - 0x0500001b, 0x05b9fd86, 0x598c000b, 0x81300580, - 0x05020003, 0x05e9fe1f, 0x05020015, 0x59300004, - 0x4803c857, 0x8c000520, 0x05000004, 0x84000520, - 0x48026004, 0x0501f00e, 0x0201f800, 0x0010eee3, - 0x80c40040, 0x05ba0d76, 0x5c03e000, 0x05e80aee, - 0x59300407, 0x90000d82, 0x05000004, 0x05ddfa5a, - 0x05f9ff9d, 0x05f00f78, 0x05f1f091, 0x5c03e000, - 0x05e80ae5, 0x59300407, 0x90000d82, 0x0500000a, - 0x5930081d, 0x58040200, 0x8c000500, 0x0500010f, - 0x05ddfa4d, 0x05f9ff90, 0x05f00f6b, 0x8d3c0500, - 0x05000003, 0x0509fa32, 0x05f1f081, 0x64066229, - 0x4a026403, 0x00000085, 0x64266203, 0x640a6407, - 0x42000800, 0x80000040, 0x0005f32e, 0x60007040, - 0x4203e000, 0xb0800000, 0x6033f800, 0x40000000, - 0x40000000, 0x40000000, 0x0501b004, 0x80387040, - 0x05b80d4b, 0x05fdf7f9, 0x1c01f000, 0x4203e000, - 0xb0800000, 0x6023f800, 0x1c01f000, 0x83300480, - 0x00110254, 0x05001006, 0x41540000, 0x81300480, - 0x05021003, 0x80000580, 0x1c01f000, 0x81780080, - 0x1c01f000, 0x59300027, 0x80000540, 0x05000006, - 0x4d2c0000, 0x40025800, 0x05bdf8d2, 0x497a6027, - 0x5c025800, 0x1c01f000, 0x592c720b, 0x8c380500, - 0x05020008, 0x59307008, 0x8c380516, 0x05000005, - 0x59307009, 0x58387010, 0x59300014, 0x80380480, - 0x1c01f000, 0x59a80877, 0x59cc2808, 0x82140500, - 0x00000c00, 0x05000003, 0x90040490, 0x05001015, - 0x80001580, 0x8c140512, 0x05000004, 0x90040494, - 0x05001010, 0x59cc100a, 0x80000580, 0x8c140510, - 0x05000004, 0x90040498, 0x0500100a, 0x59cc000b, - 0x80080400, 0x05001007, 0x05000005, 0x90000418, - 0x80040480, 0x05001003, 0x80000580, 0x1c01f000, - 0x42000000, 0x0010b04b, 0x0509faaf, 0x90000541, - 0x05fdf7fb, 0x4933c857, 0x4937c857, 0x4923c857, - 0x4927c857, 0x492fc857, 0x48efc857, 0x4d1c0000, - 0x4d300000, 0x41323800, 0x05f1f853, 0x0500001d, - 0x48ee602d, 0x4926601d, 0x4936600a, 0x05fdf9ea, - 0x591c0407, 0x90000583, 0x05000008, 0x591c0202, - 0x4803c857, 0x4802641b, 0x591c0402, 0x4802621b, - 0x4803c857, 0x0501f007, 0x591c0202, 0x4803c857, - 0x4802621b, 0x591c0402, 0x4802641b, 0x4803c857, - 0x491e602a, 0x64066407, 0x492e6009, 0x4d380000, - 0x615e7000, 0x0005fc78, 0x5c027000, 0x90000541, - 0x5c026000, 0x5c023800, 0x1c01f000, 0x4933c857, - 0x493bc857, 0x4937c857, 0x4d2c0000, 0x4c500000, - 0x4c540000, 0x4c580000, 0x59325809, 0x05f9fdf7, - 0x05000017, 0x91cca406, 0x912cac07, 0x91380596, - 0x05020007, 0x59a80077, 0x90000588, 0x0502000e, - 0x492fc857, 0x6008b000, 0x0501f008, 0x91380595, - 0x05020009, 0x492fc857, 0x59a80077, 0x90000598, - 0x05020005, 0x6018b000, 0x0509fb32, 0x05f1fa2a, - 0x0501f003, 0x05f1fec8, 0x0005fc5a, 0x5c00b000, - 0x5c00a800, 0x5c00a000, 0x5c025800, 0x1c01f000, - 0x4933c857, 0x05e9fa44, 0x4df00000, 0x59300203, - 0x90000c91, 0x05ba1cb2, 0x0c01f001, 0x00108d51, - 0x00108d50, 0x00108d56, 0x00108d6e, 0x00108d55, - 0x00108d50, 0x00108d50, 0x00108d50, 0x00108d50, - 0x00108d50, 0x00108d50, 0x00108d50, 0x00108d50, - 0x00108d50, 0x00108d50, 0x00108d50, 0x00108d56, - 0x05b9fc9f, 0x5c03e000, 0x05e80a17, 0x80000580, - 0x1c01f000, 0x05bdfe82, 0x5c03e000, 0x05e80a12, - 0x8d3c0502, 0x05020011, 0x4d2c0000, 0x59325809, - 0x64165a07, 0x0001fb5b, 0x5c025800, 0x497a6009, - 0x8d3c0500, 0x0502000b, 0x642a6229, 0x4a026403, + 0x641a5a07, 0x497a580a, 0x0001fb5b, 0x5c025800, + 0x0505fb13, 0x0005f45a, 0x4933c857, 0x05f1fdcd, + 0x0005f45a, 0x05c1ff26, 0x5930001e, 0x800001c0, + 0x050a0b1d, 0x497a6205, 0x59300004, 0x8c00053e, + 0x0502002a, 0x0509fbde, 0x050200b0, 0x59325809, + 0x592c0c09, 0x59cc2808, 0x82141d00, 0x00000c00, + 0x05000002, 0x59cc1809, 0x84040d58, 0x48065c09, + 0x82143500, 0x00000fff, 0x05020023, 0x59340200, + 0x8c00050e, 0x05020097, 0x0005fd0c, 0x05020006, + 0x64025a07, 0x59300013, 0x0509fbbe, 0x80000d40, + 0x050209fe, 0x4a025a05, 0x00000103, 0x48065808, + 0x480e580b, 0x901409c0, 0x4806580a, 0x59300c02, + 0x48065c07, 0x0509f892, 0x0509f895, 0x0001fb5b, + 0x0509fba7, 0x05e5fa20, 0x59cc0008, 0x8c000518, + 0x05060402, 0x0005f45a, 0x05f5f9fd, 0x05fc07d6, + 0x4d3c0000, 0x600a7800, 0x0501fe50, 0x5c027800, + 0x05fdf7d1, 0x4817c857, 0x480fc857, 0x82180500, + 0x000000ff, 0x0500000d, 0x592c0205, 0x82000500, + 0x000000ff, 0xb0000588, 0x05000003, 0x900005a2, + 0x05020006, 0x592c0408, 0x800001c0, 0x05000003, + 0x0509f9ea, 0x0509f221, 0x82180d00, 0x00000c00, + 0x05000004, 0x59340200, 0x8c00050e, 0x05020050, + 0x64025a07, 0x41782000, 0x8c180510, 0x05000009, + 0x59cc200b, 0x801021c0, 0x05000006, 0x59cc000c, + 0x82000500, 0x000000ff, 0x05000002, 0x4803c857, + 0x4812580d, 0x41780000, 0x8c180512, 0x05000002, + 0x59cc000a, 0x4802580c, 0x80100c00, 0x05fc07b7, + 0x9004149d, 0x05001005, 0x592c0405, 0x8c00051e, + 0x05000020, 0x60700800, 0x4c040000, 0x4c0c0000, + 0x4c140000, 0x0005fd0c, 0x05020006, 0x64025a07, + 0x59300013, 0x0509fb6b, 0x80000d40, 0x050209ab, + 0x5c002800, 0x5c001800, 0x4a025a05, 0x00000103, + 0x48065808, 0x480e580b, 0x901409c0, 0x4806580a, + 0x5c000800, 0x4c500000, 0x4c540000, 0x91cca40c, + 0x912cac0e, 0x0501fdb1, 0x5c00a800, 0x5c00a000, + 0x59300008, 0x84000534, 0x48026008, 0x05fdf7a0, + 0x4c040000, 0x4c0c0000, 0x4c140000, 0x0005fd0c, + 0x05020006, 0x64025a07, 0x59300013, 0x0509fb4d, + 0x80000d40, 0x0502098d, 0x48065808, 0x5c002800, + 0x5c001800, 0x59301402, 0x480a5c07, 0x480e580b, + 0x901401c0, 0x4802580a, 0x0509f821, 0x5c000800, + 0x0501fd52, 0x0501fd7e, 0x05fdf78e, 0x592c020b, + 0x8c000502, 0x05fc07af, 0x592c0209, 0x8c00050e, + 0x05fe07ac, 0x59300013, 0x800c0d80, 0x05fc07a9, + 0x4803c857, 0x480fc857, 0x8c180514, 0x050403c0, + 0x80000540, 0x05fc07a3, 0x4807c856, 0x0505f3bc, + 0x592c020b, 0x8c000502, 0x05fc0768, 0x59300013, + 0x800001c0, 0x05fc0767, 0x592c0209, 0x8c00050e, + 0x05fe0764, 0x0505f3b2, 0x1c01f000, 0x59cc2006, + 0x59cc2807, 0x0501f03b, 0x0501f03a, 0x1c01f000, + 0x4933c857, 0x59300004, 0x8c00053e, 0x05020031, + 0x5930001e, 0x800001c0, 0x050a0a5b, 0x497a6205, + 0x59325809, 0x592c0c09, 0x41782800, 0x41781800, + 0x84040d58, 0x48065c09, 0x41783000, 0x59340200, + 0x8c00050e, 0x05020018, 0x0005fd0c, 0x05020007, + 0x64025a07, 0x59300013, 0x0509fb06, 0x80000d40, + 0x4807c857, 0x05020945, 0x4a025a05, 0x00000103, + 0x48065808, 0x480e580b, 0x901409c0, 0x4806580a, + 0x4933c857, 0x59300c02, 0x48065c07, 0x0505ffd8, + 0x0505ffdb, 0x0001fb5b, 0x0509faed, 0x05e5f966, + 0x0005f45a, 0x592c020b, 0x8c000502, 0x05fc07e7, + 0x59300013, 0x4803c857, 0x800001c0, 0x05fc07e5, + 0x592c0209, 0x8c00050e, 0x05fe07e2, 0x0505f378, + 0x05f5f93b, 0x05fc07cf, 0x4933c857, 0x1c01f000, + 0x4c5c0000, 0x4c600000, 0x4010b800, 0x4014c000, + 0x5930001e, 0x800001c0, 0x4c140000, 0x050a0a22, + 0x5c002800, 0x59325809, 0x592c020b, 0x8c000502, + 0x05020033, 0x8c000500, 0x05000038, 0x640a6203, + 0x650e6403, 0x405c0000, 0x592c0810, 0x80040c80, + 0x40600000, 0x80040480, 0x0500102d, 0x8060c1c0, + 0x05000024, 0x59300004, 0x8c00050e, 0x05000007, + 0x59300a23, 0x90040503, 0x4c140000, 0x0c01f829, + 0x5c002800, 0x0500001b, 0x59300004, 0x8c00053e, + 0x05020014, 0x485e6015, 0x48626013, 0x497a6205, + 0x5c00c000, 0x5c00b800, 0x4c140000, 0x0505fce6, + 0x5c002800, 0x05000007, 0x4816602a, 0x4a02601c, + 0x00107bf2, 0x1c01f000, 0x5930282a, 0x497a602a, + 0x05c9f8bb, 0x0502000c, 0x59300804, 0x0005f320, + 0x4c140000, 0x05f5f8fe, 0x5c002800, 0x05fc07ea, + 0x5c00c000, 0x5c00b800, 0x05f9f332, 0x5c00c000, + 0x5c00b800, 0x4933c857, 0x1c01f000, 0x4807c857, + 0x4004c000, 0x05fdf7d2, 0x4803c857, 0x05fdf7f5, + 0x00107c0c, 0x00107c11, 0x00107c16, 0x00107c16, + 0x59300224, 0x48035093, 0x90000408, 0x48035092, + 0x0501f00a, 0x59300224, 0x48035092, 0x90000408, + 0x48035093, 0x0501f005, 0x59300224, 0x90000408, + 0x48035092, 0x48035093, 0x405c1000, 0x41780800, + 0x59a80092, 0x05f1fae1, 0x800409c0, 0x05020052, + 0x40085000, 0x592c1001, 0x800811c0, 0x0500004e, + 0x58080205, 0x82000500, 0x000000ff, 0xb000058a, + 0x05020049, 0x48281002, 0x59a80092, 0x40601000, + 0x41780800, 0x4c280000, 0x05f1fad0, 0x5c005000, + 0x800409c0, 0x05020038, 0x40041800, 0x59a80093, + 0x59300804, 0x8c040530, 0x05000005, 0x59300827, + 0x800800c6, 0x48000803, 0x59300224, 0x800c1c00, + 0x80081040, 0x05fe07fe, 0x480e602c, 0x592c4801, + 0x802449c0, 0x05c00dae, 0x58240a06, 0x592c1812, + 0x59303023, 0x8c180506, 0x05000003, 0x40280000, + 0x80040c00, 0x800400e0, 0x80040540, 0x48026021, + 0x8c18050a, 0x05020003, 0x40280000, 0x800c1c00, + 0x480e601f, 0x59300804, 0x8c040530, 0x0500000e, + 0x4c280000, 0x592c1001, 0x59306827, 0x592c5a0b, + 0x0001ff1a, 0x5c005000, 0x802851c0, 0x05ca0dc0, + 0x05020015, 0x59300827, 0x58040003, 0x49780803, + 0x4800080d, 0x59300224, 0x59303023, 0x8c18050e, + 0x05000002, 0x80000580, 0x48026424, 0x90000541, + 0x1c01f000, 0x592c1810, 0x805c0418, 0x800c0580, + 0x05fc07c6, 0x4933c857, 0x485fc857, 0x4863c857, + 0x480fc857, 0x80000580, 0x1c01f000, 0xb1380498, + 0x05021057, 0xb1380480, 0x05001002, 0x0c01f002, + 0x1c01f000, 0x00107c91, 0x00107c91, 0x00107c91, + 0x00107c91, 0x00107c91, 0x00107c91, 0x00107c91, + 0x00107c91, 0x00107c91, 0x00107c91, 0x00107c92, + 0x00107c91, 0x00107c91, 0x00107c91, 0x00107c91, + 0x00107c9c, 0x00107c91, 0x00107c91, 0x00107c91, + 0x00107c91, 0x00107cc1, 0x00107c91, 0x00107c91, + 0x00107c91, 0x05c1fd5e, 0x4933c857, 0x05f1feea, + 0x640a6203, 0x59a80030, 0x48026205, 0x59300013, + 0x59300817, 0x80040c80, 0x48066017, 0x05f1f3dc, + 0x4933c857, 0x05f1fbda, 0x4d3c0000, 0x417a7800, + 0x0201f800, 0x0010ee7a, 0x5c027800, 0x42000000, + 0x0010b2d6, 0x0511fda0, 0x0505f84d, 0x0500000f, + 0x4d2c0000, 0x59325809, 0x0509f9f1, 0x4a025a05, + 0x00000103, 0x59300402, 0x48025c07, 0x64a65a07, + 0x497a580a, 0x592c0c09, 0x84040d50, 0x48065c09, + 0x0001fb5b, 0x5c025800, 0x60503000, 0x41782800, + 0x4d400000, 0x4d440000, 0x59368c03, 0x60082000, + 0x60a68000, 0x0509f93d, 0x5c028800, 0x5c028000, + 0x0005f45a, 0x4933c857, 0x59cc0a04, 0x48066202, + 0x59300809, 0x4978080a, 0x4978080b, 0x58041409, + 0x84081558, 0x48080c09, 0x1c01f000, 0xb13805a1, + 0x05020014, 0x05f1fc72, 0x0501fd88, 0x0502000c, + 0x05f5f96b, 0x05fc07ff, 0x811800ca, 0x81c80c00, + 0x58040138, 0x59cc0a03, 0x80000040, 0x80040580, + 0x05020007, 0x05f5f95c, 0x05000005, 0x59300c16, + 0x84040d44, 0x48066416, 0x497a6205, 0x05f1f44c, + 0xb13805a0, 0x05fe07fe, 0x59cc0002, 0x8c000526, + 0x05fe07e9, 0x05fdf7fa, 0x4807c857, 0x8c04053e, + 0x05020022, 0x497a5a07, 0x5930002b, 0x80000540, + 0x05000017, 0x497a5a07, 0x4c040000, 0x4c080000, + 0x4c0c0000, 0x4c100000, 0x4c140000, 0x40002800, + 0x58141003, 0x40040000, 0x80081480, 0x48082803, + 0x40140000, 0x05c5fda5, 0x5c002800, 0x5c002000, + 0x5c001800, 0x5c001000, 0x5c000800, 0x592c0207, + 0x80000540, 0x05020008, 0x0501f005, 0x592c0409, + 0x8c00051c, 0x05000002, 0x592c0803, 0x4807c857, + 0x64565a07, 0x1c01f000, 0x5930002b, 0x80000540, + 0x05000007, 0x64465a07, 0x5930002b, 0x4c040000, + 0x05c5fd8e, 0x5c000800, 0x05fdf7f7, 0x4807c856, + 0x641e5a07, 0x1c01f000, 0xb1380498, 0x05001006, + 0xb13805a1, 0x05000003, 0xb13805a0, 0x05c20cd4, + 0x1c01f000, 0xb1380480, 0x05001004, 0x4d2c0000, + 0x0c01f803, 0x5c025800, 0x1c01f000, 0x00107d3b, + 0x00107d3b, 0x00107d3b, 0x00107d3b, 0x00107d3b, + 0x00107d3d, 0x00107d3c, 0x00107d3b, 0x00107db5, + 0x00107d3b, 0x00107d3b, 0x00107d3b, 0x00107d3b, + 0x00107d3b, 0x00107d3b, 0x00107d3b, 0x00107d3b, + 0x00107d3b, 0x00107d3b, 0x00107e77, 0x00107e9f, + 0x00107e7e, 0x00107d3c, 0x00107ea8, 0x05c1fcb4, + 0x1c01f000, 0x5930001e, 0x800001c0, 0x050a08aa, + 0x59300008, 0x8c00050e, 0x05000072, 0x8c000500, + 0x05000064, 0x8c00051c, 0x05000008, 0x84000500, + 0x48026008, 0x59325809, 0x592c3c09, 0x841c3d58, + 0x481e5c09, 0x0005f4b7, 0x59325809, 0x592c3c09, + 0x841c3d58, 0x59300008, 0x8c00051c, 0x05fe07f4, + 0x481e5c09, 0x60140000, 0x40000000, 0x80000040, + 0x05fe07fe, 0x59300008, 0x8c00051c, 0x05fe07ec, + 0x59cc0a04, 0x48066202, 0x59cc0808, 0x592c0205, + 0x82000500, 0x000000ff, 0xb0000588, 0x05000003, + 0x900005a2, 0x0502000a, 0x497a580c, 0x82040500, + 0x000000ff, 0x05000006, 0x592c0408, 0x800001c0, + 0x05000003, 0x0505ff8d, 0x05c5f624, 0x900421c0, + 0x4812580a, 0x41782000, 0x82040500, 0x00000c00, + 0x05000002, 0x59cc2009, 0x82043500, 0x00000fff, + 0x0502001e, 0x481e5c09, 0x64025a07, 0x801831c0, + 0x05c40616, 0x41782000, 0x8c180510, 0x05000002, + 0x59cc200b, 0x4812580d, 0x41780000, 0x8c180512, + 0x05000002, 0x59cc000a, 0x4802580c, 0x80100c00, + 0x05c01c67, 0x05c40609, 0x9004149d, 0x05021009, + 0x4c500000, 0x4c540000, 0x91cca40c, 0x912cac0e, + 0x0501fb6a, 0x5c00a800, 0x5c00a000, 0x05c5f5ff, + 0x0501fb22, 0x05c5f5fd, 0x412c7800, 0x05c1ffe5, + 0x05c00c57, 0x492c780a, 0x841c3d52, 0x481c7c09, + 0x4a025a05, 0x00000103, 0x4812580b, 0x900401c0, + 0x4802580a, 0x583c0405, 0x583c1006, 0x583c2209, + 0x48025c05, 0x480a5806, 0x48125a09, 0x05fdf7d2, + 0x8c000524, 0x05fc079e, 0x59325809, 0x4c000000, + 0x592c0409, 0x8c00051c, 0x5c000000, 0x05020003, + 0x4a026013, 0xffffffff, 0x84000524, 0x05fdf794, + 0x1c01f000, 0x59a80030, 0x48026205, 0x59325809, + 0x640a6203, 0x592c2409, 0x59300808, 0x4933c857, + 0x4807c857, 0x592c0205, 0x82000500, 0x000000ff, + 0xb0000588, 0x05000003, 0x900005a2, 0x05020003, + 0x8c100500, 0x0506076d, 0x64025a07, 0x8c04051e, + 0x05000030, 0x41780800, 0x497a580a, 0x592c1c0a, + 0x59300008, 0x8c00052c, 0x05000003, 0x4a026013, + 0x7fffffff, 0x59300013, 0x59341200, 0x497a6205, + 0x8c08050e, 0x0502006b, 0x4807c857, 0x4806580b, + 0x0509f8cc, 0x80000d40, 0x05fe0f0c, 0x59300402, + 0x48025c07, 0x48065808, 0x4a025a05, 0x00000103, + 0x4c040000, 0x592c0a09, 0x8c040512, 0x05000002, + 0x64325a07, 0x5c000800, 0x4c040000, 0x4c0c0000, + 0x4c100000, 0x0505fd9a, 0x0509f8b1, 0x5c002000, + 0x5c001800, 0x5c000800, 0x8c100512, 0x05020017, + 0x4c0c0000, 0x0505fd96, 0x0001fb5b, 0x05e1ff22, + 0x5c001800, 0x8c0c0518, 0x0004045a, 0x0505f103, + 0x4813c857, 0x8c100518, 0x05000044, 0x41780800, + 0x592c1c0a, 0x820c0580, 0x00001000, 0x05fc07cd, + 0x8c100512, 0x05fc07cb, 0x592c780a, 0x583c080b, + 0x583c1c0a, 0x05fdf7c7, 0x4807c857, 0x592c780a, + 0x59300402, 0x592c1405, 0x8c08051e, 0x0502000c, + 0x592c1207, 0x48007c07, 0x48047808, 0x48087a07, + 0x84102512, 0x48107c09, 0x4c0c0000, 0x05c1ff82, + 0x403e5800, 0x0501face, 0x05fdf7dd, 0x48025c07, + 0x48065808, 0x583c080d, 0x583c000c, 0x80040c00, + 0x9004149d, 0x05001005, 0x583c1001, 0x480a5801, + 0x49787801, 0x60700800, 0x90040c14, 0x4c0c0000, + 0x4c500000, 0x4c540000, 0x903ca409, 0x912cac09, + 0x4c100000, 0x4c3c0000, 0x0501fad0, 0x5c007800, + 0x5c002000, 0x5c00a800, 0x5c00a000, 0x84102512, + 0x48125c09, 0x403e5800, 0x05c1ff63, 0x0505fd50, + 0x42034000, 0x0010ae99, 0x59a1d806, 0x80edd9c0, + 0x05c00bb7, 0x48efc857, 0x58ec0008, 0x4803c857, + 0x0801f800, 0x05fdf7b6, 0x4933c857, 0x1c01f000, + 0x59301416, 0x480bc857, 0x8c08051c, 0x0502000e, + 0x80000540, 0x4803c857, 0x05fc0790, 0x80042c80, + 0x05fe178e, 0x8c080514, 0x05020005, 0x592c0810, + 0x4807c857, 0x80040480, 0x48026018, 0x8408155c, + 0x480a6416, 0x59301008, 0x8408151e, 0x480a6008, + 0x4c100000, 0x4c3c0000, 0x4d400000, 0x592e8207, + 0x64065a07, 0x0505fd2a, 0x49425a07, 0x5c028000, + 0x5c007800, 0x5c002000, 0x497a580a, 0x8c100512, + 0x05000005, 0x4d2c0000, 0x403e5800, 0x05c1ff32, + 0x5c025800, 0x82102500, 0xffffedff, 0x48125c09, + 0x59301006, 0x800811c0, 0x050400c9, 0x59a80030, + 0x80080480, 0x050610c6, 0x0509f82d, 0x4a025a05, + 0x00000103, 0x641a5a07, 0x497a5c0a, 0x492fc857, + 0x0001fb5b, 0x05e1fea0, 0x0005f45a, 0x59325809, + 0x592c0409, 0x8c000518, 0x05000003, 0x412df800, + 0x05c5f52e, 0x1c01f000, 0x4933c857, 0x59325809, + 0x497a580a, 0x64025a07, 0x4a025a05, 0x00000103, + 0x59300813, 0x4807c857, 0x800409c0, 0x0502000a, + 0x48065808, 0x59300c02, 0x48065c07, 0x0505fcf8, + 0x0509f80f, 0x0505fcfa, 0x0001fb5b, 0x05e1fe86, + 0x0005f45a, 0x59340200, 0x8c00050e, 0x05020007, + 0x59300013, 0x0509f80f, 0x80000d40, 0x05fdfe4f, + 0x48065808, 0x05fdf7f0, 0x592c0209, 0x8c00050e, + 0x05fe07f8, 0x4933c857, 0x0505f095, 0x4933c857, + 0x59325809, 0x812e59c0, 0x05c00b4d, 0x592c020b, + 0x8c000502, 0x05c00b4a, 0x640a6006, 0x1c01f000, + 0x5930001e, 0x800001c0, 0x05060f3f, 0x59300008, + 0x4933c857, 0x4803c857, 0x8c00050e, 0x05000034, + 0x8c000500, 0x05000026, 0x8c00051c, 0x05000009, + 0x84000500, 0x48026008, 0x59325809, 0x592c3c09, + 0x481fc857, 0x841c3d58, 0x481e5c09, 0x0005f4b7, + 0x59325809, 0x592c3c09, 0x841c3d58, 0x59300008, + 0x8c00051c, 0x05fe07f3, 0x481e5c09, 0x60140000, + 0x40000000, 0x80000040, 0x05fe07fe, 0x59300008, + 0x8c00051c, 0x05fe07eb, 0x592c0205, 0x82000500, + 0x000000ff, 0xb0000588, 0x05000003, 0x900005a2, + 0x05020003, 0x497a580c, 0x0501f002, 0x497a580a, + 0x481e5c09, 0x64025a07, 0x05c5f4bc, 0x8c000524, + 0x05fc07dc, 0x59325809, 0x4c000000, 0x592c0409, + 0x8c00051c, 0x5c000000, 0x05020003, 0x4a026013, + 0xffffffff, 0x84000524, 0x05fdf7d2, 0x1c01f000, + 0x4933c857, 0x41780800, 0xb1380498, 0x05021009, + 0xb1380480, 0x05001007, 0x4d2c0000, 0x59325809, + 0x812e59c0, 0x0c020805, 0x5c025800, 0x0005f45a, + 0x493bc857, 0x1c01f000, 0x00107f0a, 0x00107f0a, + 0x00107f0a, 0x00107f0a, 0x00107f0a, 0x00107f0b, + 0x00107f0a, 0x00107f0a, 0x00107f0a, 0x00107f0a, + 0x00107f0a, 0x00107f0a, 0x00107f0a, 0x00107f0a, + 0x00107f0a, 0x00107f0a, 0x00107f0a, 0x00107f0a, + 0x00107f0a, 0x00107f0a, 0x00107f0e, 0x00107f0a, + 0x00107f0a, 0x00107f0a, 0x05c1fae5, 0x59cc0808, + 0x497a5808, 0x4807c857, 0x59300402, 0x48025c07, + 0x4a025a05, 0x00000103, 0x900401c0, 0x4802580a, + 0x64025a07, 0x800409c0, 0x0000035b, 0x59cc0009, + 0x4802580b, 0x82042500, 0x00000100, 0x05000002, + 0x59cc200b, 0x4812580d, 0x82040500, 0x00000200, + 0x05000002, 0x59cc000a, 0x4802580c, 0x80100c00, + 0x05c01acb, 0x0000035b, 0x9004149d, 0x05001005, + 0x592c0405, 0x8c00051e, 0x0500000a, 0x60700800, + 0x4c500000, 0x4c540000, 0x91cca40c, 0x912cac0e, + 0x0501f9ca, 0x5c00a800, 0x5c00a000, 0x0001f35b, + 0x0501f982, 0x0501f1ae, 0x83380480, 0x00000093, + 0x05c21ab7, 0x83380480, 0x00000085, 0x05c01ab4, + 0x0c01f001, 0x00107f4b, 0x00107f4a, 0x00107f4a, + 0x00107f50, 0x00107f4a, 0x00107f4a, 0x00107f4a, + 0x00107f4a, 0x00107f4a, 0x00107f4a, 0x00107f4a, + 0x00107f4a, 0x00107f4a, 0x05c1faa5, 0x64066203, + 0x493a6403, 0x42000800, 0x80000040, 0x0005f32e, + 0x83300580, 0x001104b4, 0x05c20a9d, 0x4933c857, + 0x59cc1404, 0x0505fa3e, 0x0500002c, 0x591c0203, + 0x90000580, 0x05000029, 0x591c000a, 0x81340580, + 0x05020026, 0x59cc1204, 0x82080580, 0x0000ffff, + 0x05000007, 0x591c0202, 0x82000d80, 0x0000ffff, + 0x05000003, 0x80080580, 0x0502001c, 0x4d300000, + 0x4d1c0000, 0x411e6000, 0x0501f9db, 0x5c023800, + 0x5c026000, 0x05000013, 0x59cc0005, 0x8c000500, + 0x05020003, 0x0501f990, 0x0501f002, 0x640a3a03, + 0x4a026403, 0x00000086, 0x59cc0005, 0x8c000500, + 0x0500000c, 0x591c0416, 0x8400055a, 0x48023c16, + 0x59300416, 0x8400055a, 0x48026416, 0x0501f005, + 0x0501f9b8, 0x05fc07ed, 0x4a026403, 0x00000087, + 0x4d2c0000, 0x0511f959, 0x05e5f8d6, 0x5c025800, + 0x59340200, 0x8c00050e, 0x0500000b, 0x59cc1404, + 0x0505fa07, 0x05000008, 0x591c0416, 0x8c00051a, + 0x05000005, 0x4d300000, 0x411e6000, 0x0501ffb2, + 0x5c026000, 0x1c01f000, 0x91380593, 0x0502000a, + 0x59300403, 0x4803c857, 0x82000d80, 0x00000086, + 0x05000015, 0x82000d80, 0x00000087, 0x05c20a50, + 0x0501f011, 0x913805a7, 0x05000003, 0x91380594, + 0x05c20a4b, 0x493bc857, 0x05f1f8ee, 0x0501fd4c, + 0x05f4071f, 0x4d2c0000, 0x59325809, 0x0001fb5b, + 0x59300a29, 0x90040d83, 0x05000e29, 0x5c025800, + 0x05f5f717, 0x4933c857, 0x0505f91f, 0x05f60714, + 0x0005f45a, 0x91380593, 0x05020006, 0x59300403, + 0x4803c857, 0x82000480, 0x00000085, 0x0c01f04c, + 0x913805a7, 0x05020040, 0x4933c857, 0x05f1f8d5, + 0x59300416, 0x8c00051a, 0x05020002, 0x0005f45a, + 0x4d3c0000, 0x417a7800, 0x0201f800, 0x0010ee7a, + 0x5c027800, 0x60543000, 0x41782800, 0x600c2000, + 0x60a68000, 0x4d400000, 0x4d440000, 0x59368c03, + 0x0505fe2a, 0x5c028800, 0x5c028000, 0x42000000, + 0x0010b2d6, 0x0511fa70, 0x0501fd1d, 0x0004045a, + 0x4d2c0000, 0x59325809, 0x592c0205, 0x82000500, + 0x000000ff, 0x90000594, 0x05020df9, 0x0505febc, + 0x4a025a05, 0x00000103, 0x59300402, 0x48025c07, + 0x497a580a, 0x49425a07, 0x0001fb5b, 0x5c025800, + 0x0005f45a, 0xb13805a1, 0x05000009, 0xb13805a0, + 0x05000007, 0x83380580, 0x00000089, 0x05000004, + 0x83380580, 0x0000008a, 0x05f6073e, 0x05f1fd04, + 0x05f6073c, 0x59300a03, 0x9004058e, 0x050006ad, + 0x9004058a, 0x0500003c, 0x9004058c, 0x0500003a, + 0x05c1f9f3, 0x91380594, 0x05fe07eb, 0x4933c857, + 0x05f1f894, 0x59300416, 0x8c00051a, 0x05020002, + 0x0005f45a, 0x601a8000, 0x05fdf7d0, 0x00108015, + 0x00108014, 0x00108014, 0x00108014, 0x00108014, + 0x00108014, 0x00108025, 0x00108014, 0x00108014, + 0x00108014, 0x00108014, 0x00108014, 0x00108014, + 0x05c1f9db, 0x4933c857, 0x0505f8bb, 0x0500000a, + 0x643a6203, 0x59a80030, 0x48026205, 0x59300416, + 0x8c00051a, 0x05020003, 0x59a8002e, 0x48026006, + 0x1c01f000, 0x59a8002e, 0x48026006, 0x642a6203, + 0x1c01f000, 0x4933c857, 0x0505f8ab, 0x0500000a, + 0x643a6203, 0x59a80030, 0x48026205, 0x59300416, + 0x8c00051a, 0x05020003, 0x59a8002e, 0x48026006, + 0x1c01f000, 0x59a8002e, 0x48026006, 0x64326203, + 0x1c01f000, 0x5932680a, 0x83380580, 0x00000089, + 0x05000007, 0x83380580, 0x0000008a, 0x0500002c, + 0x4933c857, 0x493bc857, 0x05f5f6f2, 0x4933c857, + 0x59325809, 0x59300416, 0x8c00051a, 0x0500000b, + 0x59300229, 0x90000583, 0x05c209a9, 0x640e6407, + 0x59300429, 0x48026203, 0x59340200, 0x8c00050e, + 0x050206f9, 0x1c01f000, 0x59300a29, 0x90040583, + 0x05020007, 0x0501fca2, 0x0500000d, 0x0001fb5b, + 0x05e1fcc1, 0x497a6009, 0x0501f009, 0x59300229, + 0x90000581, 0x05020006, 0x59300c18, 0x900405b9, + 0x05000019, 0x900405b5, 0x05000017, 0x59cc0c07, + 0x4806641b, 0x59cc0a07, 0x4806621b, 0x59300203, + 0x48026429, 0x64466203, 0x05f5f661, 0x4933c857, + 0x59300416, 0x8c00051a, 0x0006045a, 0x59300229, + 0x90000581, 0x0502003f, 0x59300c18, 0x900405b5, + 0x05000005, 0x9004059e, 0x05000003, 0x900405b9, + 0x05020038, 0x4933c857, 0x4c5c0000, 0x4c600000, + 0x4d1c0000, 0x4130b800, 0x4004c000, 0x0505f8d0, + 0x0502002b, 0x906005b5, 0x05020004, 0x591c0c16, + 0x8c040502, 0x05000026, 0x05f5fe7b, 0x05000024, + 0x491fc857, 0x4933c857, 0x906005b5, 0x05000003, + 0x906005b9, 0x05020002, 0x4932381e, 0x585c081d, + 0x4806601d, 0x48626403, 0x64066203, 0x64066407, + 0x585c080a, 0x4807c857, 0x4806600a, 0x585c0c17, + 0x4807c857, 0x48066417, 0x585c0a17, 0x4807c857, + 0x48066217, 0x585c0a18, 0x4807c857, 0x48066218, + 0x585c0c1b, 0x4807c857, 0x4806641b, 0x585c0a1b, + 0x4807c857, 0x4806621b, 0x491e602a, 0x0505f81f, + 0x42000800, 0x80000040, 0x0005fb2e, 0x405e6000, + 0x5c023800, 0x5c00c000, 0x5c00b800, 0x0005f45a, + 0x0501fc47, 0x05000008, 0x4d2c0000, 0x59325809, + 0x0001fb5b, 0x59300229, 0x90000583, 0x05e00c62, + 0x5c025800, 0x0005f45a, 0x4803c856, 0x4c500000, + 0x4c540000, 0x412c7800, 0x4c3c0000, 0x60042800, + 0x82040480, 0x00000101, 0x05001002, 0x60000802, + 0x40043000, 0x60700800, 0x91cca40c, 0x912cac0e, + 0x0501f836, 0x9018349c, 0x592e5801, 0x812e59c0, + 0x05c20ccd, 0x05c1fcb3, 0x05000011, 0x80142800, + 0x4a025805, 0x00000110, 0x492c7801, 0x90180cbd, + 0x05021005, 0x40180800, 0x912cac06, 0x0501f827, + 0x0501f007, 0x901834bc, 0x60f00800, 0x412c7800, + 0x912cac06, 0x0501f821, 0x05fdf7ef, 0x5c007800, + 0x841429c0, 0x90142d43, 0x48147a05, 0x403e5800, + 0x5c00a800, 0x5c00a000, 0x1c01f000, 0x492fc857, + 0x812e59c0, 0x0500000d, 0x4d2c0000, 0x4c3c0000, + 0x592c7801, 0x803c79c0, 0x05000005, 0x497a5801, + 0x0001fb5b, 0x403e5800, 0x05fdf7fa, 0x5c007800, + 0x0001fb5b, 0x5c025800, 0x1c01f000, 0x4803c856, + 0x4c580000, 0x90040403, 0x8000b104, 0x0511fa19, + 0x5c00b000, 0x1c01f000, 0x4803c856, 0x4c580000, + 0x90040c03, 0x8004b104, 0x0511fa12, 0x5c00b000, + 0x1c01f000, 0x591c0c07, 0x90040583, 0x05000005, + 0x90040582, 0x05000003, 0x9004058a, 0x05020022, + 0x4d300000, 0x4d2c0000, 0x411e6000, 0x59325809, + 0x0501fbe7, 0x05000019, 0x59300c07, 0x9004058a, + 0x0500001a, 0x90040583, 0x05020007, 0x592c0a05, + 0x82040d00, 0x000000ff, 0x90040d94, 0x05000002, + 0x640e6229, 0x0501f814, 0x4d400000, 0x604e8000, + 0x592c0a09, 0x84040d54, 0x05e1ffcc, 0x5c028000, + 0x0505fa63, 0x0505fd7a, 0x0001fb5b, 0x59300229, + 0x90000583, 0x05000cb2, 0x05f5fda1, 0x5c025800, + 0x5c026000, 0x1c01f000, 0x644e5a07, 0x642a6229, + 0x05fdf7f4, 0x592c0409, 0x8c000512, 0x05000008, + 0x84000512, 0x48025c09, 0x4d2c0000, 0x592e580a, + 0x05c1fc61, 0x5c025800, 0x497a580a, 0x1c01f000, + 0x59cc0005, 0x8c000500, 0x0502000a, 0x591c0407, + 0x90000582, 0x05020007, 0x591c0c03, 0x82040580, + 0x00000085, 0x05000003, 0x82040580, 0x0000008b, + 0x1c01f000, 0x4933c857, 0x4d3c0000, 0x600a7800, + 0x59300407, 0x90000c92, 0x05c218a5, 0x0c01f808, + 0x5c027800, 0x1c01f000, 0x4933c857, 0x59300407, + 0x90000c92, 0x05c2189e, 0x0c01f001, 0x00108169, + 0x00108166, 0x00108166, 0x00108198, 0x00108165, + 0x00108166, 0x0010817b, 0x00108166, 0x00108165, + 0x00108165, 0x00108f1e, 0x00108166, 0x00108166, + 0x00108165, 0x00108165, 0x00108165, 0x00108274, + 0x00108166, 0x05c1f88a, 0x4803c856, 0x80000580, + 0x1c01f000, 0x4803c856, 0x8d3c0502, 0x0502000f, + 0x0501fb87, 0x0500000b, 0x59325809, 0x0505fd2c, + 0x41780800, 0x4d400000, 0x60168000, 0x05e1ff77, + 0x5c028000, 0x0505fa0e, 0x0501fce6, 0x0001fb5b, + 0x05f5fd4f, 0x90000541, 0x1c01f000, 0x4933c857, + 0x0501fb77, 0x05000008, 0x59300809, 0x58040209, + 0x8c000512, 0x05000004, 0x4d400000, 0x60328000, + 0x0501f00f, 0x05e1fb1f, 0x0500000b, 0x59300416, + 0x84000556, 0x48026416, 0x0501f80e, 0x4df00000, + 0x59300416, 0x84000516, 0x48026416, 0x5c03e000, + 0x1c01f000, 0x4d400000, 0x60428000, 0x050df80d, + 0x641a6407, 0x641e6203, 0x5c028000, 0x1c01f000, + 0x4933c857, 0x05edffa6, 0x4df00000, 0x0501f8c9, + 0x90000c91, 0x05c21852, 0x0c01f001, 0x001081b1, + 0x00108223, 0x001081c3, 0x00108233, 0x00108220, + 0x001081b0, 0x001081b1, 0x001081b1, 0x001081b4, + 0x001081b1, 0x001081b1, 0x001081b1, 0x001081b1, + 0x001081c3, 0x001081b4, 0x001081b1, 0x001081b4, + 0x05c1f83f, 0x5c03e000, 0x05ec0f79, 0x05fdf7b3, + 0x5c03e000, 0x05ec0f76, 0x59300407, 0x90000583, + 0x05fe07b1, 0x59300203, 0x9000058d, 0x05fc07ae, + 0x8d3c0502, 0x05fe07ac, 0x4d340000, 0x5932680a, + 0x05e1fb55, 0x5c026800, 0x05fdf7a7, 0x0505fde5, + 0x0505fcbd, 0x59300004, 0x8400055c, 0x48026004, + 0x4203e000, 0xb0800000, 0x6023f800, 0x05edff60, + 0x59300407, 0x90000586, 0x0500004c, 0x8d3c0502, + 0x0502004e, 0x497a6229, 0x59300203, 0x9000058d, + 0x05000002, 0x640e6229, 0x0501fb1d, 0x05020004, + 0x8d3c0500, 0x05000036, 0x0501f02e, 0x4d2c0000, + 0x4d400000, 0x59325809, 0x0501fc7e, 0x592c0409, + 0x8c000512, 0x05000008, 0x4d2c0000, 0x84000512, + 0x48025c09, 0x592c080a, 0x40065800, 0x05c1fbae, + 0x5c025800, 0x4d400000, 0x60168000, 0x592c0a09, + 0x8c04050e, 0x05000003, 0x600a8000, 0x0501f004, + 0x8c040512, 0x05000002, 0x60328000, 0x05e1fef7, + 0x0505fca7, 0x5c028000, 0x0505f98d, 0x8d3c0500, + 0x05020003, 0x0511f966, 0x05020003, 0x0001fb5b, + 0x497a6009, 0x5c028000, 0x5c025800, 0x8d3c0500, + 0x0500000a, 0x59300a29, 0x90040d83, 0x05020005, + 0x4d340000, 0x5932680a, 0x05e1fb0f, 0x5c026800, + 0x05f5fcbf, 0x0501f011, 0x0511f955, 0x05020004, + 0x59300a29, 0x90040d83, 0x05000bc9, 0x4a026403, 0x00000085, 0x64266203, 0x640a6407, 0x42000800, - 0x80004040, 0x0005fb2e, 0x81780080, 0x1c01f000, - 0x05edffa7, 0x05fdf7fd, 0x05f9fb0a, 0x05020003, - 0x05e9fce7, 0x05020007, 0x0201f800, 0x0010ed56, - 0x80c40040, 0x05fc07e1, 0x05e9f921, 0x05ba0c78, - 0x59300203, 0x90000d83, 0x05b80c75, 0x90000c91, - 0x05ba1c73, 0x0c01f7c2, 0x4933c857, 0x4d340000, - 0x4d240000, 0x4d200000, 0x916c0583, 0x05020015, - 0x599c0018, 0x8c000516, 0x05000003, 0x05d5f845, - 0x0501f010, 0x60100800, 0x05d9fb61, 0x59300429, - 0x900005a1, 0x05000005, 0x59240400, 0x8c00050c, - 0x05000004, 0x64866429, 0x05fdfbbe, 0x90000541, - 0x5c024000, 0x5c024800, 0x5c026800, 0x1c01f000, - 0x80000580, 0x05fdf7fb, 0x4d340000, 0x5932680a, - 0x05d9ff6f, 0x5c026800, 0x0005f45a, 0x4803c856, - 0x4c5c0000, 0x4d200000, 0x4014b800, 0x05c9f984, - 0x59a8007b, 0x80000040, 0x4803507b, 0x59240200, - 0x82000500, 0xfffffeef, 0x84000546, 0x48024a00, - 0x497a4805, 0x4d400000, 0x60068000, 0x405c2800, - 0x60040000, 0x05ddfa59, 0x60aa8000, 0x4d3c0000, - 0x600a7800, 0x05c9f9be, 0x5c027800, 0x5c028000, - 0x5c024000, 0x5c00b800, 0x813261c0, 0x05ee0758, - 0x1c01f000, 0x59303009, 0x58181a05, 0x820c1d00, - 0x000000ff, 0xb00c0588, 0x05000003, 0xb00c05aa, - 0x05020045, 0x58180409, 0x8c000500, 0x05000042, - 0x42000000, 0x0010ccb9, 0x50006000, 0x41781800, - 0x5830200b, 0x41300000, 0x80100580, 0x05000006, - 0x40101800, 0x580c2000, 0x801021c0, 0x05fe07fa, - 0x0501f035, 0x4933c857, 0x59302000, 0x497a6000, - 0x800c19c0, 0x0502001e, 0x4933c856, 0x42007000, - 0x00020d9f, 0x58300009, 0x800001c0, 0x05000018, - 0x49786009, 0x58380001, 0x80300580, 0x05020008, - 0x4933c856, 0x49787002, 0x4810600b, 0x801021c0, - 0x0502001d, 0x4978600a, 0x0501f01b, 0x4933c856, - 0x4810600b, 0x801021c0, 0x05020002, 0x4978600a, - 0x4c180000, 0x4c300000, 0x05bdf8b1, 0x5c006000, - 0x05fdfdb6, 0x5c003000, 0x0501f00f, 0x4933c856, - 0x800c19c0, 0x05020008, 0x801021c0, 0x05000003, - 0x4810600b, 0x0501f008, 0x4978600b, 0x4978600a, - 0x0501f005, 0x48101800, 0x801021c0, 0x05020002, - 0x480c600a, 0x58180409, 0x84000500, 0x48003409, - 0x49783209, 0x1c01f000, 0x4933c857, 0x59368c03, - 0x4c180000, 0x59300203, 0x90003491, 0x05ba1be0, - 0x0c01f803, 0x5c003000, 0x1c01f000, 0x00108e24, - 0x00109279, 0x001093f3, 0x00108e24, 0x00108e24, - 0x00108e24, 0x00108e24, 0x00108e24, 0x00108e44, - 0x00108e24, 0x00108e24, 0x00108e24, 0x00108e24, - 0x00108e24, 0x00109980, 0x00108e24, 0x00108e24, - 0x05b9fbcb, 0x4933c857, 0x61fe89ff, 0x813669c0, + 0x80004040, 0x0505fc6c, 0x0005fb2e, 0x4203e000, + 0xb0800000, 0x6023f800, 0x5c03e000, 0x05ee0f24, + 0x90000541, 0x1c01f000, 0x0505fc7d, 0x05fdf7fb, + 0x05edff0b, 0x05c5f9b6, 0x05fdf7a1, 0x598c000b, + 0x81300580, 0x05020003, 0x05f1fa28, 0x05020026, + 0x0201f800, 0x0010f0f2, 0x80c40040, 0x05020005, + 0x59300c03, 0xb0040580, 0x05fc0786, 0x05fdf794, + 0x05edfe29, 0x0500001c, 0x05bdffbd, 0x0501f823, + 0x05020003, 0x05f1f9e4, 0x05020017, 0x0201f800, + 0x0010ef65, 0x80c40040, 0x0500000f, 0x05edfe1e, + 0x05000011, 0x59300407, 0x90000583, 0x05be0fb0, + 0x59300004, 0x9000051f, 0x90000585, 0x05be0fac, + 0x58d400ec, 0x82000500, 0x00000f00, 0x05fe077c, + 0x05bdffa7, 0x59300c03, 0xb0040580, 0x05fc0769, + 0x05fdf777, 0x59300203, 0x90000c91, 0x05be1fa0, + 0x0c01f74f, 0x0501f805, 0x60058800, 0x05000002, + 0x60018800, 0x1c01f000, 0x417a3000, 0x60df2160, + 0x59900005, 0x81300580, 0x05000006, 0x91932410, + 0x811a3000, 0x91180485, 0x05fc17fa, 0x90000541, + 0x1c01f000, 0x0501f803, 0x40018800, 0x1c01f000, + 0x59300004, 0x8c00053e, 0x0500000c, 0x8c00050c, + 0x0502000a, 0x8c000516, 0x05020004, 0x90000d1f, + 0x90040585, 0x05020003, 0x600c0000, 0x0501f004, + 0x60040000, 0x0501f002, 0x59300203, 0x1c01f000, + 0x4933c857, 0x05edfeca, 0x4df00000, 0x59300203, + 0x90000c91, 0x05be1f76, 0x0c01f001, 0x0010828d, + 0x001082a0, 0x00108290, 0x0010828c, 0x0010828c, + 0x0010828c, 0x0010828c, 0x0010828c, 0x0010828c, + 0x0010828c, 0x0010828c, 0x0010828c, 0x0010828c, + 0x0010828c, 0x00108290, 0x0010828c, 0x0010828c, + 0x05bdff63, 0x5c03e000, 0x05ec0e9d, 0x05fdf6d7, + 0x5c03e000, 0x05ec0e9a, 0x4d2c0000, 0x59325809, + 0x59300403, 0xb0000592, 0x05c40e04, 0x0501fa5c, + 0x05bc0f57, 0x64165a07, 0x0001fb5b, 0x05e1fd1d, + 0x05f5fc2b, 0x5c025800, 0x90000541, 0x1c01f000, + 0x598c000b, 0x81300580, 0x05020018, 0x59300004, + 0x8c000520, 0x05000004, 0x84000520, 0x48026004, + 0x0501f018, 0x42001000, 0x0010b20e, 0x50081000, + 0x58080002, 0x82000580, 0x00000100, 0x05000009, + 0x5808000b, 0x81300580, 0x05be0f3d, 0x0201f800, + 0x0010f0f2, 0x80c40040, 0x05be0f39, 0x05fdf7d9, + 0x05f1f996, 0x0502000c, 0x59300004, 0x8c000520, + 0x05000004, 0x84000520, 0x48026004, 0x05fdf7d1, + 0x0201f800, 0x0010f0f2, 0x80c40040, 0x05fc07cd, + 0x05bdff2b, 0x59300203, 0x90000c91, 0x05be1f28, + 0x0c01f7b3, 0x4d340000, 0x4d240000, 0x5932481d, + 0x5932680a, 0x59300407, 0x4933c857, 0x4803c857, + 0x90000c92, 0x05be1f1e, 0x0c01f804, 0x5c024800, + 0x5c026800, 0x1c01f000, 0x001082eb, 0x0010830e, + 0x00108446, 0x0010f70c, 0x0010843d, 0x00108442, + 0x00109994, 0x001082f2, 0x00108439, 0x001082e8, + 0x001084a3, 0x001082e8, 0x001082e8, 0x001082e8, + 0x001082e8, 0x00020c5a, 0x00108cb3, 0x00108cb3, + 0x05bdff07, 0x0501fb15, 0x05f802ce, 0x1c01f000, + 0x05edfe53, 0x05edfda7, 0x05edfe3d, 0x0005f45a, + 0x64066006, 0x1c01f000, 0x4d340000, 0x4c5c0000, + 0x59300203, 0x90000591, 0x05020014, 0x5932680a, + 0x4130b800, 0x0005fc3d, 0x0500000f, 0x64066203, + 0x647a6403, 0x585c041b, 0x4802641b, 0x585c021b, + 0x4802621b, 0x4936600a, 0x585c001d, 0x4802601d, + 0x0501fdbe, 0x64066407, 0x42000800, 0x80000040, + 0x0005fb2e, 0x405e6000, 0x0005fc5a, 0x5c00b800, + 0x5c026800, 0x1c01f000, 0x42000000, 0x0010b2e1, + 0x050dff35, 0x050dfe60, 0x59300203, 0x90000c91, + 0x05be1edb, 0x4803c857, 0x0c01f001, 0x00108328, + 0x001082f0, 0x00108329, 0x00108328, 0x00108329, + 0x00108329, 0x001082ec, 0x00108328, 0x001082e9, + 0x00108328, 0x00108328, 0x00108328, 0x00108328, + 0x00108328, 0x00108329, 0x00108328, 0x00108328, + 0x05bdfec7, 0x83340580, 0x0010ce8f, 0x05f4039c, + 0x4d2c0000, 0x59340400, 0x82000500, 0x000000ff, + 0x90000c8c, 0x05be1ebe, 0x59303403, 0xb0180d91, + 0x0500000c, 0x90180d84, 0x05020003, 0x60040000, + 0x0501f004, 0x90180d80, 0x05020002, 0x60040000, + 0x4803c857, 0x0c01f823, 0x5c025800, 0x1c01f000, + 0x42000000, 0x0010b2dd, 0x050dff03, 0x05cdfc3d, + 0x59340412, 0x82000500, 0x000000ff, 0x05000016, + 0x80000040, 0x48026c12, 0x4d300000, 0x05f5fbb2, + 0x5c000000, 0x0500000f, 0x641c0407, 0x4a000006, + 0x00000398, 0x49238830, 0x4a038832, 0xffffffff, + 0x4926601d, 0x497a6009, 0x4936600a, 0x64066407, + 0x64066203, 0x65466403, 0x5c025800, 0x05edf489, + 0x40026000, 0x5c025800, 0x60042800, 0x0505f426, + 0x0010836c, 0x001083f8, 0x0010836d, 0x001083a4, + 0x0010836d, 0x0010840e, 0x0010836d, 0x00108374, + 0x0010836c, 0x0010840e, 0x0010836c, 0x0010837f, + 0x05bdfe83, 0x59300403, 0x90000d96, 0x05000033, + 0x90000d84, 0x05000031, 0x90000d82, 0x0500002f, + 0x0501fa8a, 0x0500002d, 0x59300403, 0x90000da2, + 0x05000098, 0x90000db9, 0x0500009f, 0x90000db5, + 0x0500009d, 0x90000d9e, 0x05000025, 0x0501f974, + 0x05000005, 0x0501fffd, 0x05020003, 0x05e1fa24, + 0x0501f01e, 0x59300403, 0x90000d81, 0x0502000f, + 0x5930081d, 0x58040200, 0x8c000500, 0x050403f5, + 0x5930080a, 0x58040403, 0x82000580, 0x000007fe, + 0x05020004, 0x60042800, 0x0505fbf3, 0x0005f45a, + 0x05e1f9e3, 0x0500000d, 0x59340403, 0x82000480, + 0x000007f0, 0x0502100a, 0x4d3c0000, 0x417a7800, + 0x0201f800, 0x0010ee7a, 0x5c027800, 0x42000000, + 0x0010b2d6, 0x050dfea4, 0x05f9fa16, 0x05f5f324, + 0x0501f94f, 0x05000003, 0x0501ffd8, 0x05000083, + 0x59300c03, 0x90040596, 0x05000049, 0x90040582, + 0x0502002d, 0x59a8021b, 0x8c000502, 0x0502000c, + 0x05e1ff82, 0x0502000a, 0x05e1ffa1, 0x05020004, + 0x60040000, 0x05e1ff51, 0x0501f074, 0x64075014, + 0x6006d800, 0x05e1fef7, 0x0501f070, 0x59340200, + 0x8c000508, 0x05000007, 0x84000508, 0x48026a00, + 0x59300416, 0x84000510, 0x48026416, 0x0501f011, + 0x59340412, 0x82000500, 0x000000ff, 0x05000012, + 0x80000040, 0x48026c12, 0x5932481d, 0x497a6205, + 0x4d300000, 0x05f5fb30, 0x5c000000, 0x05000009, + 0x49780009, 0x641c0407, 0x4a000006, 0x00000398, + 0x4926601d, 0x4936600a, 0x64066407, 0x0501f01c, + 0x40026000, 0x59300403, 0x90000d82, 0x0502000d, + 0x59340403, 0x82000580, 0x000007fe, 0x05020007, + 0x59a8021b, 0x84000540, 0x4803521b, 0x05ddfb37, + 0x05f9f9d4, 0x0501f00c, 0x600c0002, 0x05f5fd71, + 0x05f9f9d0, 0x4d3c0000, 0x417a7800, 0x0201f800, + 0x0010ee7a, 0x5c027800, 0x42000000, 0x0010b2d6, + 0x050dfe55, 0x05cdf8e2, 0x05f5f2d5, 0x600c0800, + 0x05ddfdca, 0x64066203, 0x640a6403, 0x05edf3ed, + 0x0501f8fb, 0x05fe07a9, 0x05cdf8d9, 0x4d3c0000, + 0x417a7800, 0x0201f800, 0x0010ee7a, 0x5c027800, + 0x42000000, 0x0010b2d6, 0x050dfe43, 0x60603000, + 0x41782800, 0x60002000, 0x4d400000, 0x4d440000, + 0x59368c03, 0x60a68000, 0x0505f9f0, 0x5c028800, + 0x5c028000, 0x05f5f2ba, 0x05e1f999, 0x05fdf7d9, + 0x42000000, 0x0010b2e0, 0x050dfe33, 0x60140002, + 0x05f5fd44, 0x05fc07d3, 0x05f5fd5c, 0x05fe07d1, + 0x1c01f000, 0x59300c03, 0x0501fd31, 0x0006045a, + 0x916c0583, 0x05000003, 0x640a6006, 0x1c01f000, + 0x59300403, 0x48026418, 0x64066229, 0x4a026403, + 0x00000085, 0x64266203, 0x640a6407, 0x42000800, + 0x80000040, 0x0005f32e, 0x05f9f98e, 0x4d3c0000, + 0x417a7800, 0x0201f800, 0x0010ee7a, 0x5c027800, + 0x42000000, 0x0010b2d6, 0x050dfe13, 0x497a6009, + 0x641e6407, 0x4a026006, 0x00000398, 0x497a6205, + 0x1c01f000, 0x42000000, 0x0010b2e7, 0x050dfe0a, + 0x05fdf6d2, 0x42000000, 0x0010b2e2, 0x050dfe06, + 0x050dfd31, 0x05f5f286, 0x42000000, 0x0010b2e4, + 0x050dfe01, 0x1c01f000, 0x42000000, 0x0010b2e3, + 0x050dfdfd, 0x59300203, 0x90000c91, 0x05be1da4, + 0x4803c857, 0x0c01f001, 0x0010845f, 0x001082f0, + 0x0010845f, 0x0010845f, 0x0010845f, 0x0010845f, + 0x0010845f, 0x0010845f, 0x0010845f, 0x001082f0, + 0x00108460, 0x001082f0, 0x0010846a, 0x0010845f, + 0x00108460, 0x0010845f, 0x0010845f, 0x05bdfd90, + 0x59300403, 0x82000580, 0x0000008b, 0x05000007, + 0x4a026403, 0x0000008b, 0x642e6203, 0x42000800, + 0x80004040, 0x0005f32e, 0x59300a29, 0x0501f888, + 0x0500000b, 0x4d2c0000, 0x59325809, 0x641a5a07, + 0x497a5c0a, 0x0001fb5b, 0x59300a29, 0x90040d83, + 0x05e008a1, 0x5c025800, 0x497a6009, 0x4d3c0000, + 0x417a7800, 0x0201f800, 0x0010ee7a, 0x5c027800, + 0x60443000, 0x050dfc21, 0x42000000, 0x0010b2d6, + 0x050dfdc5, 0x4c5c0000, 0x4130b800, 0x05f5fa7a, + 0x05000009, 0x4936600a, 0x4926601d, 0x0501fc3b, + 0x4d300000, 0x405e6000, 0x05f5fa3d, 0x5c026000, + 0x0501f002, 0x405e6000, 0x5c00b800, 0x497a6009, + 0x64066407, 0x64066403, 0x59240400, 0x8c00050a, + 0x0502000b, 0x64126407, 0x641e6203, 0x6406642c, + 0x60103000, 0x4d400000, 0x60a68000, 0x41782800, + 0x0509fe90, 0x5c028000, 0x1c01f000, 0x602c0800, + 0x05ddfd1e, 0x64066203, 0x05edf342, 0x42000000, + 0x0010b2e9, 0x050dfda0, 0x59300203, 0x90000c91, + 0x05be1d47, 0x4803c857, 0x0c01f001, 0x001084cc, + 0x001084bc, 0x001084be, 0x001084cd, 0x001084bd, + 0x001084bc, 0x001084bc, 0x001084bc, 0x001084bc, + 0x001084bc, 0x001084bc, 0x001084bc, 0x001084bc, + 0x001084bc, 0x001084bc, 0x001084bc, 0x001084bc, + 0x05bdfd33, 0x05c1ff1a, 0x4d2c0000, 0x59325809, + 0x641a5a07, 0x0001fb5b, 0x5c025800, 0x497a6009, + 0x642a6229, 0x4a026403, 0x00000085, 0x64266203, + 0x640a6407, 0x42000800, 0x80004040, 0x0005f32e, + 0x1c01f000, 0x05edfc72, 0x4df00000, 0x05fdfd87, + 0x05020003, 0x05edff48, 0x0502000a, 0x0201f800, + 0x0010ef65, 0x80c40040, 0x05020004, 0x5c03e000, + 0x05edfc53, 0x05fdf7e5, 0x05edfb7f, 0x05be0d14, + 0x5c03e000, 0x05edfc4e, 0x59300203, 0x90000d83, + 0x05bc0d0f, 0x90000c91, 0x05be1d0d, 0x0c01f7c8, + 0x59a8000d, 0x59a80864, 0x80040400, 0x80080480, + 0x05021003, 0x90000541, 0x1c01f000, 0x480bc857, + 0x80000580, 0x1c01f000, 0x0501f805, 0x60018800, + 0x05000002, 0x60058800, 0x1c01f000, 0x4c040000, + 0x59300809, 0x59a8000c, 0x80040480, 0x05001007, + 0x59a8000a, 0x80040480, 0x05021004, 0x800409c0, + 0x5c000800, 0x1c01f000, 0x800409c0, 0x05be0cf0, + 0x4803c856, 0x05fdf7fb, 0x4803c856, 0x4d300000, + 0x0005fc3d, 0x05000007, 0x0501f828, 0x4d380000, + 0x612e7000, 0x0005fc78, 0x5c027000, 0x90000541, + 0x5c026000, 0x1c01f000, 0x4803c856, 0x4d300000, + 0x05f5f9ed, 0x05000019, 0x0501f81c, 0x4d300000, + 0x05edfc2b, 0x4df00000, 0x05edfae3, 0x4d3c0000, + 0x60027840, 0x0201f800, 0x0010f344, 0x0201f800, + 0x0010f3dd, 0x0201f800, 0x0010f7f5, 0x5c027800, + 0x5c03e000, 0x05ec0c0a, 0x5c026000, 0x8d3c053e, + 0x05020008, 0x4d380000, 0x61327000, 0x0005fc78, + 0x5c027000, 0x90000541, 0x5c026000, 0x1c01f000, + 0x0005fc5a, 0x05fdf7fc, 0x592c0408, 0x494a6019, + 0x494e601a, 0x4936600a, 0x492e6009, 0x640e6407, + 0x59340802, 0x4806600b, 0x800000c2, 0x800008c4, + 0x80040400, 0x48026006, 0x05e1f88e, 0x4926601d, + 0x0501f386, 0x493bc857, 0x4d300000, 0x0005fc3d, + 0x0500000a, 0x05fdffed, 0x4d400000, 0x60168000, + 0x0501f80a, 0x5c028000, 0x8d3c053e, 0x05020005, + 0x0005fc78, 0x90000541, 0x5c026000, 0x1c01f000, + 0x0005fc5a, 0x05fdf7fc, 0x4803c856, 0x05edfbf0, + 0x4df00000, 0x4d3c0000, 0x4d440000, 0x59368c03, + 0x60067840, 0x0201f800, 0x0010f2b3, 0x0201f800, + 0x0010f305, 0x0201f800, 0x0010f3dd, 0x0201f800, + 0x0010f7f5, 0x5c028800, 0x5c027800, 0x5c03e000, + 0x05ec03cb, 0x1c01f000, 0x4803c856, 0x4d300000, + 0x05f5f999, 0x0500000e, 0x481a601e, 0x48ee602d, + 0x4936600a, 0x05e1f85f, 0x4926601d, 0x0501fb57, + 0x64066407, 0x492e6009, 0x4d380000, 0x607e7000, + 0x0005fc78, 0x5c027000, 0x90000541, 0x5c026000, + 0x1c01f000, 0x4803c856, 0x4d300000, 0x05f5f986, + 0x0500000d, 0x48ee602d, 0x4936600a, 0x05e1f84d, + 0x4926601d, 0x0501fb45, 0x64066407, 0x492e6009, + 0x4d380000, 0x61567000, 0x0005fc78, 0x5c027000, + 0x90000541, 0x5c026000, 0x1c01f000, 0x4803c856, + 0x4d300000, 0x05f5f974, 0x0500000e, 0x481a601e, + 0x48ee602d, 0x4936600a, 0x05e1f83a, 0x4926601d, + 0x0501fb32, 0x64066407, 0x492e6009, 0x4d380000, + 0x60f67000, 0x0005fc78, 0x5c027000, 0x90000541, + 0x5c026000, 0x1c01f000, 0x4803c856, 0x4d300000, + 0x05f5f961, 0x05000012, 0x4926601d, 0x4936600a, + 0x0501fb22, 0x492fc857, 0x4933c857, 0x592c0405, + 0x8c00051e, 0x05000003, 0x48efc857, 0x48ee602d, + 0x64066407, 0x492e6009, 0x4d380000, 0x60027000, + 0x0005fc78, 0x5c027000, 0x90000541, 0x5c026000, + 0x1c01f000, 0x4803c856, 0x4d300000, 0x05f5f94a, + 0x0500000e, 0x48ee602d, 0x481a601e, 0x4936600a, + 0x05e1f810, 0x4926601d, 0x0501fb08, 0x64066407, + 0x492e6009, 0x4d380000, 0x61127000, 0x0005fc78, + 0x5c027000, 0x90000541, 0x5c026000, 0x1c01f000, + 0x4803c856, 0x4d300000, 0x05f5f937, 0x0500000e, + 0x481a601e, 0x48ee602d, 0x4936600a, 0x05ddfffd, + 0x4926601d, 0x0501faf5, 0x64066407, 0x492e6009, + 0x4d380000, 0x61267000, 0x0005fc78, 0x5c027000, + 0x90000541, 0x5c026000, 0x1c01f000, 0x5930000a, + 0x80001540, 0x05bc0c16, 0x8d0c0512, 0x05020007, + 0x5808040b, 0x4803c856, 0x80000040, 0x05001003, + 0x4800140b, 0x05020008, 0x58080010, 0x80000540, + 0x05000005, 0x58080203, 0x80000540, 0x05020002, + 0x64041203, 0x1c01f000, 0x4803c856, 0x59300403, + 0x90000d82, 0x0500000b, 0x90000d83, 0x05000009, + 0x90000d84, 0x05000007, 0x599c0819, 0x8c04050e, + 0x05000003, 0x90000d80, 0x05000002, 0x90000541, + 0x1c01f000, 0x0501f805, 0x60058800, 0x05000002, + 0x60018800, 0x1c01f000, 0x4803c856, 0x4c000000, + 0x4d2c0000, 0x59300407, 0x90000584, 0x05000017, + 0x59300009, 0x80025d40, 0x800001c0, 0x05000013, + 0x0501fd76, 0x0500000f, 0x59300407, 0x90004590, + 0x0500000c, 0x90004591, 0x0500000a, 0x90004583, + 0x0500000a, 0x90004582, 0x05000008, 0x9000458a, + 0x05000006, 0x592c0405, 0x8c00051e, 0x05000003, + 0x80000580, 0x0501f002, 0x90000541, 0x5c025800, + 0x5c000000, 0x1c01f000, 0x4803c856, 0x4d300000, + 0x05f5f8dd, 0x05000011, 0x4926601d, 0x4936600a, + 0x0501fa9e, 0x48ee602d, 0x64066407, 0x492e6009, + 0x4d3c0000, 0x417a7800, 0x0201f800, 0x0010ee7a, + 0x5c027800, 0x4d380000, 0x60a27000, 0x0005fc78, + 0x5c027000, 0x90000541, 0x5c026000, 0x1c01f000, + 0x4803c856, 0x91380595, 0x05020009, 0x59a80077, + 0xb00005b4, 0x05020006, 0x41780800, 0x05ddfc6f, + 0x64066203, 0x64a66403, 0x05edf1a6, 0x05f5ff79, + 0x0005f45a, 0x4803c856, 0x91380596, 0x05020004, + 0x60100800, 0x05ddfb79, 0x05f5f2cd, 0x91380595, + 0x0502000d, 0x59a80077, 0x90000594, 0x0502000a, + 0x05ddfcd3, 0x05f9fbbb, 0x05020007, 0x59340404, + 0x80000540, 0x05000004, 0x60180800, 0x05ddfb6b, + 0x05f5f2bf, 0x05f5ff63, 0x0005f45a, 0x4803c856, + 0x592c0207, 0x90000585, 0x05000002, 0x1c01f000, + 0x4803c856, 0x592c0209, 0x8400054a, 0x48025a09, + 0x1c01f000, 0x59300809, 0x800409c0, 0x05000008, + 0x58040205, 0x82000580, 0x00000152, 0x05020004, + 0x59a8082e, 0x48066006, 0x1c01f000, 0x599c0416, + 0x800001c0, 0x05000007, 0x90000c84, 0x05001005, + 0x800000c2, 0x800008c4, 0x80040c00, 0x05fdf7f6, + 0x59300403, 0x90000582, 0x05fe07f2, 0x5930080a, + 0x58040403, 0x82000580, 0x000007fe, 0x05fe07ed, + 0x60a00800, 0x05fdf7ec, 0x4803c856, 0x59300c03, + 0xb13805a1, 0x05000019, 0xb13805a0, 0x05000017, + 0xb13805a2, 0x0502001e, 0x497a6205, 0x90040582, + 0x05000006, 0x9004059e, 0x0500000e, 0x90040584, + 0x05020017, 0x0501f003, 0x600c0800, 0x05ddfb2f, + 0x59340200, 0x84000508, 0x48026a00, 0x59300416, + 0x84000510, 0x48026416, 0x64066203, 0x05edf14d, + 0x64166203, 0x0501f00a, 0x59340200, 0x8c00050e, + 0x05020002, 0x497a6205, 0x640a6203, 0x90040486, + 0x05fc17c1, 0x59a8002e, 0x48026006, 0x1c01f000, + 0x4803c856, 0xb13805a1, 0x05000003, 0xb13805a0, + 0x0502000a, 0x59303403, 0x82180580, 0x00000086, + 0x05f4001b, 0x82180580, 0x00000087, 0x05f40018, + 0x497a6205, 0x642a6203, 0x1c01f000, 0x4803c856, + 0xb13805a1, 0x05000003, 0xb13805a0, 0x05020007, + 0x59300403, 0xb0000c91, 0x05be1b35, 0xb0000480, + 0x05bc1b33, 0x0c01f002, 0x1c01f000, 0x001086d1, + 0x001086d0, 0x001086d0, 0x001086dd, 0x001086d0, + 0x001086d0, 0x001086d0, 0x001086d0, 0x001086d0, + 0x001086dd, 0x001086d0, 0x001086de, 0x001086de, + 0x001086de, 0x001086de, 0x001086d0, 0x001086e1, + 0x05bdfb1f, 0x59340200, 0x8c00050e, 0x05020002, + 0x497a6205, 0x59300809, 0x5804020b, 0x8c000502, + 0x05000003, 0x64126203, 0x1c01f000, 0x640a6203, + 0x1c01f000, 0x1c01f000, 0x497a6205, 0x64366203, + 0x1c01f000, 0x0005f45a, 0x4803c856, 0xb13805a1, + 0x05000006, 0xb13805a0, 0x05020009, 0x59cc0002, + 0x8c000526, 0x05000007, 0x59300403, 0xb0000d83, + 0x05000005, 0xb0000d89, 0x05000003, 0x05f5f841, + 0x1c01f000, 0x59a80030, 0x48026205, 0x640a6203, + 0x5930001c, 0x80000540, 0x05000003, 0x497a601c, + 0x0801f800, 0x1c01f000, 0x497a6205, 0x497a6009, + 0x64066203, 0x65426403, 0x42000800, 0x80000043, + 0x0005f32e, 0x4933c857, 0x4d340000, 0x5932680a, + 0x59340200, 0x8c00050e, 0x05000005, 0x59300407, + 0x90000c92, 0x05021004, 0x0c01f805, 0x5c026800, + 0x1c01f000, 0x05fdfbde, 0x05fdf7fd, 0x001082eb, + 0x00108721, 0x00108725, 0x00108728, 0x00109cdd, + 0x00109cf5, 0x00109cf9, 0x001082eb, 0x001082eb, + 0x001082eb, 0x001082eb, 0x001082eb, 0x001082eb, + 0x001082eb, 0x001082eb, 0x001082eb, 0x001082eb, + 0x001082eb, 0x4803c856, 0x40000000, 0x40000000, + 0x1c01f000, 0x40000000, 0x40000000, 0x1c01f000, + 0x5930001e, 0x4803c857, 0x59300416, 0x4933c857, + 0x4803c857, 0x8c000502, 0x05000005, 0x4803c857, + 0x84000540, 0x48026416, 0x1c01f000, 0x42000000, + 0xd0000000, 0x41300800, 0x05c1f998, 0x0501f80e, + 0x0502000c, 0x59300c16, 0x59300403, 0xb0000580, + 0x05000003, 0x84040d40, 0x0501f004, 0x59a8002e, + 0x9000040a, 0x48026205, 0x84040d42, 0x48066416, + 0x1c01f000, 0x4933c857, 0x4d340000, 0x5932680a, + 0x59340a00, 0x8c04050e, 0x05bc0aa5, 0x5930001e, + 0x80000540, 0x0502002f, 0x59300403, 0x4803c857, + 0xb0000580, 0x05000003, 0x8d0c050e, 0x05020027, + 0x4d1c0000, 0x41323800, 0x05f1ffa7, 0x05000021, + 0x4932381e, 0x591c0416, 0x84000542, 0x48023c16, + 0x4936600a, 0x05ddfe6b, 0x4926601d, 0x0501f963, + 0x591c0407, 0x90000583, 0x05000006, 0x591c0202, + 0x4802641b, 0x591c0402, 0x4802621b, 0x0501f005, + 0x591c0202, 0x4802621b, 0x591c0402, 0x4802641b, + 0x491e602a, 0x64066407, 0x64d66403, 0x64066203, + 0x42000800, 0x80000040, 0x0005fb2e, 0x411e6000, + 0x5c023800, 0x80000580, 0x5c026800, 0x1c01f000, + 0x411e6000, 0x5c023800, 0x59a80030, 0x48026205, + 0x90000541, 0x05fdf7f9, 0x4933c857, 0x4d2c0000, + 0x4932381e, 0x4a026202, 0x0000ffff, 0x591e5809, + 0x591c0008, 0x8c00051e, 0x05000005, 0x8400051e, + 0x48023808, 0x497a580a, 0x0501f016, 0x592c0409, + 0x8c000518, 0x05000013, 0x84000518, 0x48025c09, + 0x4d400000, 0x592e8207, 0x64065a07, 0x0501fbf0, + 0x49425a07, 0x5c028000, 0x497a580a, 0x592c0409, + 0x8c000512, 0x05000007, 0x4d2c0000, 0x84000512, + 0x48025c09, 0x592e580a, 0x05bdfdf7, 0x5c025800, + 0x59a80030, 0x48026205, 0x591c0216, 0x48026218, + 0x90000d81, 0x05000006, 0x640a3a03, 0x90000585, + 0x05000007, 0x497a6017, 0x0501f01c, 0x591c0008, + 0x84000540, 0x48023808, 0x64123a03, 0x591c0416, + 0x4803c857, 0x8400051c, 0x84000554, 0x48023c16, + 0x592c0010, 0x40001000, 0x591c0818, 0x80040480, + 0x05fe17f1, 0x591c0018, 0x82000500, 0xfffffffc, + 0x48026017, 0x48023818, 0x591c0a16, 0x4807c857, + 0x90040d85, 0x05020005, 0x480bc857, 0x4803c857, + 0x4a023814, 0xffffffff, 0x591c0402, 0x4802641b, + 0x591c0202, 0x4802621b, 0x591e680a, 0x4936600a, + 0x64066407, 0x64e66403, 0x64066203, 0x42000800, + 0x80000040, 0x0005fb2e, 0x5c025800, 0x1c01f000, + 0x4933c857, 0x59300416, 0x8c000514, 0x05000015, + 0x8c00051c, 0x05020012, 0x59300018, 0x80100480, + 0x05001006, 0x05000005, 0x59300416, 0x84000514, + 0x8400055c, 0x0501f009, 0x48126018, 0x48126014, + 0x40100000, 0x592c1810, 0x800c0480, 0x48026013, + 0x59300416, 0x84000514, 0x48026416, 0x1c01f000, + 0x4933c857, 0x8c00051c, 0x05020008, 0x59300014, + 0x4803c857, 0x48026018, 0x59300416, 0x8400055c, + 0x4803c857, 0x48026416, 0x1c01f000, 0x0501f805, + 0x60058800, 0x05000002, 0x60018800, 0x1c01f000, + 0x59300c03, 0x4933c857, 0x4807c857, 0x900404b4, + 0x05001005, 0x900404bc, 0x05021003, 0x80000580, + 0x1c01f000, 0x90000541, 0x05fdf7fe, 0x4d340000, + 0x4d240000, 0x5932481d, 0x5932680a, 0x59300407, + 0x90000c92, 0x05021003, 0x4803c857, 0x0c01f804, + 0x5c024800, 0x5c026800, 0x1c01f000, 0x00108825, + 0x00108827, 0x0010882a, 0x00108866, 0x00109cba, + 0x00109c86, 0x00109cbe, 0x00108826, 0x00108825, + 0x00108826, 0x00108826, 0x00108826, 0x00108826, + 0x00108826, 0x00108826, 0x00108826, 0x00108826, + 0x00108826, 0x05bdf9ca, 0x1c01f000, 0x40000000, + 0x40000000, 0x1c01f000, 0x59300403, 0x82000d80, + 0x00000085, 0x05020007, 0x4a026403, 0x0000008b, + 0x642e6203, 0x42000800, 0x80004040, 0x0005f32e, + 0x82000d80, 0x0000008b, 0x0502002f, 0x4d3c0000, + 0x417a7800, 0x0201f800, 0x0010ee7a, 0x5c027800, + 0x42000000, 0x0010b2d6, 0x050dfa07, 0x05fdfcb4, + 0x0500000e, 0x4d2c0000, 0x59325809, 0x4a025a05, + 0x00000103, 0x59300402, 0x48025c07, 0x641a5a07, + 0x497a580a, 0x0001fb5b, 0x59300a29, 0x90040d83, + 0x05fc0d8b, 0x5c025800, 0x60443000, 0x050df84f, + 0x64066403, 0x497a6009, 0x05c9ff2e, 0x59240400, + 0x8c00050a, 0x0502000b, 0x41782800, 0x60103000, + 0x4d400000, 0x60a68000, 0x0509fad2, 0x5c028000, + 0x64126407, 0x641e6203, 0x6406642c, 0x1c01f000, + 0x602c0800, 0x05ddf95d, 0x64066407, 0x64066203, + 0x05e9f780, 0x1c01f000, 0x59300416, 0x8c00051a, + 0x05020021, 0x5930080a, 0x58040200, 0x8c00050e, + 0x05000006, 0x59300a03, 0x90040590, 0x05000003, + 0x90040583, 0x05020018, 0x05fdf8d3, 0x59300203, + 0x90000d89, 0x0500000b, 0x48026429, 0x4a026403, + 0x00000085, 0x59300416, 0x8400055a, 0x8400055e, + 0x48026416, 0x64266203, 0x640a6407, 0x640e6229, + 0x59a8002f, 0x48026205, 0x42000800, 0x80004040, + 0x0501fdfd, 0x0005fb2e, 0x4203e000, 0xb0800000, + 0x6023f800, 0x1c01f000, 0x41780800, 0x59a8102c, + 0x60c80000, 0x05e9fe71, 0x800811c0, 0x05020002, + 0x60501000, 0x480b502e, 0x59a8102d, 0x480b5022, + 0x41780800, 0x61900000, 0x05e9fe68, 0x800811c0, + 0x05020002, 0x60501000, 0x480b502f, 0x9008140a, + 0x480b5030, 0x60040800, 0x05edf8de, 0x42000000, + 0x30000000, 0x40080800, 0x0001f92d, 0x600c0800, + 0x59a8100f, 0x05edf8c9, 0x05ddf44d, 0x64a3502e, + 0x6453502f, 0x4a035022, 0x000007d0, 0x60781000, + 0x480b5030, 0x60040800, 0x05edf8ce, 0x42000000, + 0x30000000, 0x40080800, 0x0001f92d, 0x600c0800, + 0x59a8100f, 0x05edf0b9, 0x4933c857, 0x4d2c0000, + 0x59300403, 0x900005be, 0x05020004, 0x59325819, + 0x812e59c0, 0x05be0ccf, 0x5c025800, 0x1c01f000, + 0x0501f802, 0x1c01f000, 0x4933c857, 0x813669c0, + 0x0500000c, 0x59340200, 0x8c000508, 0x05000009, + 0x4a026416, 0x00000100, 0x8c00050c, 0x59300008, + 0x05000002, 0x84000544, 0x84000542, 0x48026008, + 0x1c01f000, 0x59300416, 0x8c000510, 0x1c01f000, + 0x4937c857, 0x4d300000, 0x05f1fe27, 0x0500000d, + 0x4926601d, 0x4936600a, 0x05fdffe8, 0x64066407, + 0x492e6009, 0x60240800, 0x05ddf8e0, 0x4d380000, + 0x60ce7000, 0x0005fc78, 0x5c027000, 0x90000541, + 0x5c026000, 0x1c01f000, 0x4933c857, 0x4d2c0000, + 0x4c580000, 0x4d3c0000, 0x59325809, 0x91380595, + 0x0502001d, 0x59a8b077, 0x90580c99, 0x05001002, + 0x6060b000, 0x8058b104, 0x0501fa54, 0x80000580, + 0x0501fa63, 0x912cac0a, 0x91cca406, 0x050dfa19, + 0x4c600000, 0x6004c000, 0x592c100b, 0x8c080518, + 0x05020006, 0x59240005, 0x592c100e, 0x80080580, + 0x05020006, 0x4178c000, 0x5930100a, 0x58081403, + 0x417a7800, 0x05c9fbf5, 0x5c00c000, 0x05f5f80c, + 0x0501f005, 0x6008b000, 0x0501fa59, 0x05f5fcad, + 0x0005fc5a, 0x5c027800, 0x5c00b000, 0x5c025800, + 0x1c01f000, 0x4933c856, 0x60018800, 0x4a02601d, + 0x0010b391, 0x4936600a, 0x05fdffac, 0x64066407, + 0x492e6009, 0x4d380000, 0x61367000, 0x0005fc78, + 0x5c027000, 0x90000541, 0x60058800, 0x1c01f000, + 0x4803c856, 0x4d2c0000, 0x91380595, 0x05020025, + 0x59a80877, 0x59325809, 0x5930040c, 0x80040580, + 0x05020020, 0x4c500000, 0x4c540000, 0x4c580000, + 0x91cca406, 0x4050a800, 0x5930b40c, 0x9058b403, + 0x8058b104, 0x050dfa1a, 0x91cca406, 0x592cb206, + 0x9058b403, 0x8058b104, 0x912cac07, 0x050df9d9, + 0x592e5801, 0x812e59c0, 0x05fe07f9, 0x5931d82d, + 0x58ef400a, 0x58ee580c, 0x4a025a05, 0x00000103, + 0x58ec0008, 0x0801f800, 0x59300402, 0x5c00b000, + 0x5c00a800, 0x5c00a000, 0x5c025800, 0x1c01f000, + 0x05f5fc70, 0x5c025800, 0x1c01f000, 0x4933c857, + 0x90040db5, 0x05000005, 0x5930141b, 0x0501f844, + 0x05000025, 0x0501f006, 0x4d300000, 0x5932602a, + 0x0501f848, 0x5c026000, 0x0500001e, 0x591c0c07, + 0x90040583, 0x05000003, 0x90040586, 0x0502001b, + 0x591c0c02, 0x5930041b, 0x80040580, 0x05000009, + 0x5930021b, 0x80040580, 0x05020014, 0x591c0a02, + 0x5930041b, 0x80040580, 0x05020010, 0x0501f009, + 0x59300a1b, 0x82040580, 0x0000ffff, 0x05000005, + 0x591c0202, 0x59300a1b, 0x80040580, 0x05020007, + 0x591c000a, 0x5930080a, 0x80040580, 0x1c01f000, + 0x417a3800, 0x90000541, 0x1c01f000, 0x4803c856, + 0x4203e000, 0xb0800000, 0x600009fe, 0x4203f800, + 0x30000000, 0x40000000, 0x80040840, 0x05bc0870, + 0x05ffb7fb, 0x1c01f000, 0x4803c856, 0x4203e000, + 0xb0800000, 0x4203f800, 0x20000000, 0x1c01f000, + 0x0501f805, 0x60058800, 0x05020002, 0x60018800, + 0x1c01f000, 0x59300808, 0x8c04051e, 0x592c0c09, + 0x05020002, 0x8c040518, 0x1c01f000, 0x05fdfb51, + 0x05000007, 0x800800ca, 0x800808c8, 0x80040c00, + 0x82063c00, 0x00110514, 0x491fc857, 0x1c01f000, + 0x0501fcf5, 0x05020007, 0x59301402, 0x05fdfff4, + 0x05000007, 0x411c0000, 0x81300580, 0x05000003, + 0x81780500, 0x0501f002, 0x81300540, 0x1c01f000, + 0x4d300000, 0x83440480, 0x000007f0, 0x05001003, + 0x05ddfc24, 0x0501f002, 0x0001fae7, 0x0502000c, + 0x42026000, 0x001104b4, 0x4936600a, 0x492e6009, + 0x05ddfc14, 0x4926601d, 0x0201f800, 0x0010ee7a, + 0x80000580, 0x5c026000, 0x1c01f000, 0x90000541, + 0x05fdf7fd, 0x4933c857, 0x05fdfb35, 0x05bc0830, + 0x4d2c0000, 0x4d340000, 0x4d440000, 0x4c580000, + 0x59325809, 0x5932680a, 0x49425a07, 0x0005f8e2, + 0x592e8c07, 0x592c4208, 0x9020050f, 0x0c01f806, + 0x5c00b000, 0x5c028800, 0x5c026800, 0x5c025800, + 0x1c01f000, 0x001089e3, 0x00108a01, 0x00108a07, + 0x00108a0a, 0x00108a12, 0x001089e1, 0x001089e1, + 0x001089e1, 0x00108a15, 0x00108a1f, 0x00108a1f, + 0x001089e1, 0x001089e1, 0x001089e1, 0x001089e1, + 0x001089e1, 0x4803c857, 0x05bdf80d, 0x814281c0, + 0x05020011, 0x41785800, 0x592c0405, 0x8c00051c, + 0x05020002, 0x59345c05, 0x442c2800, 0x59340008, + 0x48002802, 0x59340009, 0x48002801, 0x59340006, + 0x48002804, 0x59340007, 0x48002803, 0x602cb000, + 0x0501f02d, 0x592c0208, 0x8c00051e, 0x6008b000, + 0x05020029, 0x9004b540, 0x05000027, 0x44042800, + 0x5932680a, 0x59340400, 0x48002801, 0x6008b000, + 0x0501f021, 0x814281c0, 0x05fe07f3, 0x59345c05, + 0x442c2800, 0x6004b000, 0x0501f01b, 0x9140b540, + 0x05000019, 0x0501f021, 0x814281c0, 0x0502001f, + 0x59340200, 0x44002800, 0x59340001, 0x48002801, + 0x6008b000, 0x0501f010, 0x9140b540, 0x05020017, + 0x0501f00d, 0x9140b540, 0x0500000b, 0x05ddfb9e, + 0x05000012, 0x8c20050e, 0x05000002, 0x497a600a, + 0x4178b000, 0x497a5a07, 0x0501f003, 0x9140b540, + 0x0502000a, 0x592c0405, 0x8400051c, 0x48025c05, + 0x592c0208, 0x8400051e, 0x48025a08, 0x0501f91f, + 0x497a6009, 0x0001f35b, 0x592c0208, 0x8c00051e, + 0x6008b000, 0x05fe07f4, 0x9004b540, 0x05fc07f2, + 0x44042800, 0x6004b000, 0x05fdf7ef, 0x4937c857, + 0x4d300000, 0x05f1fcc8, 0x0500000d, 0x4926601d, + 0x4936600a, 0x05fdfe89, 0x64066407, 0x492e6009, + 0x602c0800, 0x05d9ff81, 0x4d380000, 0x610e7000, + 0x0005fc78, 0x5c027000, 0x90000541, 0x5c026000, + 0x1c01f000, 0x4937c857, 0x4d2c0000, 0x4d200000, + 0x59340013, 0x80024130, 0x59325809, 0x91380595, + 0x05020022, 0x59a80077, 0x90000584, 0x0502001f, + 0x59240005, 0x592c100a, 0x80080580, 0x05020011, + 0x4d440000, 0x592e8c07, 0x592c0208, 0x4803c856, + 0x82000500, 0x00000080, 0x84000548, 0x4d3c0000, + 0x60027820, 0x8c00050e, 0x05000002, 0x853e7d5c, + 0x05ddfacd, 0x5c027800, 0x5c028800, 0x0501f003, + 0x4803c856, 0x05ddfb50, 0x05fdfa8d, 0x05000011, + 0x4d400000, 0x60028000, 0x41780800, 0x05fdff52, + 0x5c028000, 0x0501f00a, 0x05ddfb47, 0x05fe07f7, + 0x05fdfa83, 0x05000007, 0x4c580000, 0x6008b000, + 0x0501f8ef, 0x5c00b000, 0x05f5fb42, 0x0005fc5a, + 0x5c024000, 0x5c025800, 0x1c01f000, 0x4937c857, + 0x4d300000, 0x05f1fc80, 0x0500000f, 0x4926601d, + 0x4936600a, 0x05fdfe41, 0x64066407, 0x4d3c0000, + 0x4d380000, 0x417a7800, 0x05d9ff2d, 0x492e6009, + 0x60127000, 0x0005fc78, 0x5c027000, 0x5c027800, + 0x90000541, 0x5c026000, 0x1c01f000, 0x4937c857, + 0x4d300000, 0x05f1fc6c, 0x0500000d, 0x4926601d, + 0x4936600a, 0x05fdfe2d, 0x600c0800, 0x05d9ff27, + 0x64066407, 0x492e6009, 0x4d380000, 0x61467000, + 0x0005fc78, 0x5c027000, 0x90000541, 0x5c026000, + 0x1c01f000, 0x4933c857, 0x4c580000, 0x4d240000, + 0x4d200000, 0x4d400000, 0x4d440000, 0x4d3c0000, + 0x5932481d, 0x59240a00, 0x8c040500, 0x05000084, + 0x05c9fcd4, 0x59325809, 0x91383595, 0x05020053, + 0x60100800, 0x05d9ff0d, 0x60040800, 0x05d9fff7, + 0x812e59c0, 0x05020040, 0x59a8007b, 0x80000040, + 0x4803507b, 0x050df8d2, 0x05000004, 0x59240200, + 0x8400051a, 0x48024a00, 0x417a8000, 0x59cc0000, + 0x82000500, 0x00ffffff, 0x59240805, 0x4803c857, + 0x4807c857, 0x800409c0, 0x05000016, 0x80041580, + 0x05000014, 0x4c000000, 0x60aa8000, 0x59240400, + 0x8c00050a, 0x05020004, 0x60083000, 0x61fe89ff, + 0x0509f865, 0x417a7800, 0x05c9fcfa, 0x05c9fd6c, + 0x600a8000, 0x59cc0c08, 0x8c04051e, 0x05020004, + 0x59240a00, 0x84040d56, 0x48064a00, 0x5c000000, + 0x48024805, 0x40000800, 0x812000f0, 0x80040540, + 0x48026813, 0x40040000, 0xb1200c80, 0x05021004, + 0x49238830, 0x84000570, 0x48038832, 0x59240200, + 0x82000540, 0x00000206, 0x48024a00, 0x59240400, + 0x8c00050c, 0x05000004, 0x65466429, 0x0501f847, + 0x0501f03f, 0x60040000, 0x05ddfe15, 0x0005fc5a, + 0x0501f03b, 0x592c0009, 0x82000500, 0x00ffffff, + 0x05020008, 0x0005f8e2, 0x59cc0000, 0x82000500, + 0x00ffffff, 0x44002800, 0x6004b000, 0x0501f847, + 0x05f1fe13, 0x0501f02e, 0x812e59c0, 0x05020029, + 0x59340412, 0x800001c0, 0x05000023, 0x80000040, + 0x48026c12, 0x59cc0c07, 0x82043500, 0x000000ff, + 0x481bc857, 0x90180583, 0x05020013, 0x59cc0207, + 0x4803c857, 0x82000d00, 0x0000ff00, 0x4807c857, + 0x82040580, 0x00000d00, 0x0502000b, 0x59240a00, + 0x84040d48, 0x48064a00, 0x602c0800, 0x05d9fea3, + 0x64066407, 0x64066203, 0x64066403, 0x05e9fcc5, + 0x0501f00f, 0x600c0800, 0x05d9fe9c, 0x4a026202, + 0x0000ffff, 0x64066203, 0x65466403, 0x05e9fcbd, + 0x0501f007, 0x600c2800, 0x0501fc5b, 0x0501f004, + 0x6008b000, 0x0501f836, 0x05f5fa8a, 0x5c027800, + 0x5c028800, 0x5c028000, 0x5c024000, 0x5c024800, + 0x5c00b000, 0x1c01f000, 0x4933c857, 0x61f2880f, + 0x42003000, 0x00fffffc, 0x05d9feb1, 0x05ba0eb4, + 0x4936600a, 0x05fdfd85, 0x417a7800, 0x05d9fe74, + 0x600c0800, 0x05d9fe7d, 0x497a6c12, 0x64066203, + 0x640a6403, 0x05e9f49f, 0x492fc857, 0x4c580000, + 0x4c000000, 0x8058b1c0, 0x0500000a, 0x82580500, + 0xfffffff0, 0x05ba0ea2, 0x8058b0d0, 0x592c0409, + 0x82000500, 0xfffff0ff, 0x80580540, 0x48025c09, + 0x5c000000, 0x5c00b000, 0x1c01f000, 0x492fc857, + 0x4c000000, 0x4c040000, 0x800000d8, 0x592c0c09, + 0x82040d00, 0xffff0fff, 0x80040540, 0x48025c09, + 0x5c000800, 0x5c000000, 0x1c01f000, 0x4933c857, + 0x4d2c0000, 0x59325809, 0x592c0208, 0x8400055e, + 0x48025a08, 0x4c500000, 0x4c540000, 0x4c580000, + 0x05fdffda, 0x0005f8e2, 0x64602800, 0x80142800, + 0x8058b040, 0x91cca407, 0x4014a800, 0x0509ff9d, + 0x5c00b000, 0x5c00a800, 0x5c00a000, 0x5c025800, + 0x1c01f000, 0x0501f805, 0x60058800, 0x05000002, + 0x60018800, 0x1c01f000, 0x59325809, 0x592c0205, + 0x82000580, 0x00000152, 0x1c01f000, 0x5930002b, + 0x80000540, 0x05be0f19, 0x1c01f000, 0x59300008, + 0x82000500, 0x04000800, 0x82000580, 0x04000800, + 0x05020003, 0x59300221, 0x48025c10, 0x1c01f000, + 0x592c0408, 0x82000500, 0x0000f000, 0x82000580, + 0x00003000, 0x05020003, 0x4a026416, 0x00000100, + 0x1c01f000, 0x4d2c0000, 0x59325809, 0x59300203, + 0x4933c857, 0x492fc857, 0x493bc857, 0x4803c857, + 0x90003491, 0x05ba1e4e, 0x0c01f803, 0x5c025800, + 0x1c01f000, 0x00108bb6, 0x00108bbc, 0x00108bf4, + 0x00108bb6, 0x00108bb6, 0x00108bb6, 0x00108bb6, + 0x00108bb6, 0x00108bb7, 0x00108bb6, 0x00108bb6, + 0x00108bb6, 0x00108bb6, 0x00108bb6, 0x00108c9b, + 0x00108bb6, 0x00108bb6, 0x05b9fe39, 0xb1383498, + 0x05ba1e37, 0x493a6403, 0x64066203, 0x05e9f429, + 0x91380593, 0x05020010, 0x492fc857, 0x05fdfd12, + 0x05000003, 0x643a6203, 0x0501f005, 0x592c000d, + 0x800001c0, 0x05000005, 0x640a6203, 0x59a8002e, + 0x48026006, 0x1c01f000, 0x64025a07, 0x0001fb5b, + 0x0005f45a, 0x913805a7, 0x0500001e, 0x91380594, + 0x05000018, 0x05fdfd00, 0x0500000c, 0xb13805a1, + 0x05000004, 0xb13805a0, 0x05fe07f3, 0x4937c857, + 0x05edf91f, 0x05f20357, 0x59300203, 0x9000058e, + 0x050000bf, 0x05b9fe12, 0x91380595, 0x05000003, + 0x91380596, 0x05ba0e0e, 0x05edf915, 0x05f2034d, + 0x59300203, 0x90000582, 0x05ba0e09, 0x0501f00d, + 0x4937c857, 0x05e9fcab, 0x6446580f, 0x0501f004, + 0x4937c857, 0x05e9fca7, 0x6442580f, 0x64c65a07, + 0x6412580e, 0x0001fb5b, 0x05ddfbc6, 0x05f1f2d4, + 0x59341400, 0x82081d00, 0x000000ff, 0x59300c03, + 0x480bc857, 0x4807c857, 0xb0040593, 0x05000020, + 0x90040582, 0x0500000f, 0x90040581, 0x05000010, + 0x90040583, 0x05000013, 0x90040585, 0x05000014, + 0x900405b3, 0x05000012, 0x90040580, 0x05000013, + 0x90040584, 0x05ba0de6, 0x0501f875, 0x0501f010, + 0x900c0583, 0x05000837, 0x0501f00d, 0x900c058b, + 0x0502000b, 0x601c0800, 0x05d9fdac, 0x0501f008, + 0x900c0585, 0x0500084a, 0x0501f005, 0x900c0589, + 0x05000865, 0x0501f002, 0x0501f86a, 0x654a6403, + 0x59a81077, 0x592c040c, 0x8c000500, 0x05000002, + 0x60201000, 0x592c040c, 0x8c000516, 0x05000002, + 0x90081418, 0x592c000d, 0x497a580e, 0x497a580f, + 0x80080c80, 0x05000007, 0x05001004, 0x641e5a07, + 0x40001000, 0x0501f004, 0x64565a07, 0x0501f002, + 0x64025a07, 0x480a580d, 0x05f1fc72, 0x0500000d, + 0x592c1001, 0x480a600d, 0x58080800, 0x90080402, + 0x592c1012, 0x592c1813, 0x60003000, 0x42002000, + 0x00101073, 0x05f1fdc0, 0x05000002, 0x1c01f000, + 0x64b25a07, 0x497a580d, 0x0001fb5b, 0x0005f45a, + 0x91380595, 0x05020008, 0x59a8008d, 0x8c000502, + 0x05020007, 0x41780800, 0x05d9fe60, 0x60100800, + 0x05d9f572, 0x601c0800, 0x05d9f570, 0x05ddfee3, + 0x60401000, 0x05020008, 0x59340002, 0x82000500, + 0x00ff0000, 0x82000580, 0x00ff0000, 0x05fc07f2, + 0x60201000, 0x05ddfba3, 0x05fc07ef, 0x592c040c, + 0x84000540, 0x48025c0c, 0x05fdf7ef, 0x91380595, + 0x0502000b, 0x59a8008d, 0x8c000502, 0x0502000a, + 0x05d9febb, 0x4d3c0000, 0x417a7800, 0x05d9fd4c, + 0x5c027800, 0x60180800, 0x05d9f554, 0x60100800, + 0x05d9f552, 0x05ddfec5, 0x60401000, 0x05020008, + 0x59340002, 0x82000500, 0x00ff0000, 0x82000580, + 0x00ff0000, 0x05fc07ef, 0x60201000, 0x05ddfb85, + 0x05fc07ec, 0x592c040c, 0x84000540, 0x48025c0c, + 0x05fdf7ef, 0x60100800, 0x05d9f540, 0x91380595, + 0x05020003, 0x0505fe3f, 0x05dc0812, 0x1c01f000, + 0x91380595, 0x05020015, 0x4c580000, 0x91cc1408, + 0x6008b000, 0x91341c06, 0x05f5fd97, 0x0502000e, + 0x91cc140a, 0x6008b000, 0x91341c08, 0x05f5fd92, + 0x05020009, 0x59342200, 0x59cc1007, 0x800811c0, + 0x05000003, 0x480a6801, 0x84102542, 0x8410251a, + 0x48126a00, 0x5c00b000, 0x1c01f000, 0x4803c856, + 0xb13805a1, 0x0500000b, 0xb13805a0, 0x05000009, + 0xb13805a2, 0x05020011, 0x64c65a07, 0x6412580e, + 0x644a580f, 0x0001fb5b, 0x05ddfb12, 0x0005f45a, + 0x592c000d, 0x800001c0, 0x05000005, 0x59a8002e, + 0x48026006, 0x640a6203, 0x1c01f000, 0x64025a07, + 0x0001fb5b, 0x0005fc5a, 0x1c01f000, 0x42000000, + 0x0010b2ee, 0x0509fd90, 0x05e9fc89, 0x59300203, + 0x4933c857, 0x4803c857, 0x90000c91, 0x05ba1d34, + 0x0c01f802, 0x05e9f46e, 0x00108cd0, 0x00108cd9, + 0x00108cd1, 0x00108ccf, 0x00108ccf, 0x00108ccf, + 0x00108ccf, 0x00108ccf, 0x00108ccf, 0x00108ccf, + 0x00108ccf, 0x00108ccf, 0x00108ccf, 0x00108ccf, + 0x00108cd1, 0x00108ccf, 0x00108ccf, 0x05b9fd20, + 0x1c01f000, 0x59300403, 0xb0000592, 0x05f8061d, + 0x05ddfae4, 0x59325809, 0x641a5a07, 0x0001fb5b, + 0x05f1f1ef, 0x59301804, 0x840c0520, 0x48026004, + 0x598c000b, 0x81300580, 0x0502000f, 0x8c0c0520, + 0x0502000f, 0x42001000, 0x0010b20e, 0x50081000, + 0x58080002, 0x82000580, 0x00000100, 0x0500000d, + 0x5808000b, 0x81300580, 0x05ba0d05, 0x4978100b, + 0x0501f003, 0x8c0c0520, 0x05fe07e3, 0x0201f800, + 0x0010f0f2, 0x80c40040, 0x05fc07df, 0x05b9fcfc, + 0x05e9ff5a, 0x05fc07fa, 0x59300203, 0x90000c91, + 0x05ba1cf7, 0x0c01f7c5, 0x4933c857, 0x4c500000, + 0x4c540000, 0x4c580000, 0x592c0c08, 0x48065814, + 0x59cc0809, 0x48065808, 0x59cc0808, 0x4806580c, + 0x59a8088c, 0x82040500, 0x000003ff, 0x800010c4, + 0x8c040514, 0x05000004, 0x59cc0002, 0x90000503, + 0x80081480, 0x480a621c, 0x412c0800, 0x05bdf85a, + 0x05b80cdf, 0x492c080a, 0x58040409, 0x84000552, + 0x84000540, 0x48000c09, 0x90081403, 0x80081104, + 0x91cca406, 0x912cac05, 0x60400800, 0x90080490, + 0x05021003, 0x40080800, 0x80000580, 0x4004b000, + 0x4c000000, 0x0509fe2a, 0x5c000000, 0x800001c0, + 0x0500000a, 0x412c1000, 0x4c000000, 0x05bdf842, + 0x05b80cc7, 0x492c1001, 0x912cac05, 0x5c000000, + 0x40001000, 0x05fdf7ee, 0x5c00b000, 0x5c00a800, + 0x5c00a000, 0x1c01f000, 0x4933c857, 0x4d2c0000, + 0x4c380000, 0x59325809, 0x5930021c, 0x48025a09, + 0x59301013, 0x640a6203, 0x592c020b, 0x8c000500, + 0x05000004, 0x59300017, 0x592c1010, 0x80081480, + 0x40080000, 0x0501f963, 0x80001540, 0x05020007, + 0x64025a07, 0x592c000c, 0x82000500, 0x00000c00, + 0x05000009, 0x0501f009, 0x8c08053e, 0x05000005, + 0x641e5a07, 0x80081080, 0x80081000, 0x0501f002, + 0x64565a07, 0x480a5808, 0x42000000, 0x0010cf39, + 0x50007000, 0x5838000a, 0x80000540, 0x05020007, + 0x4930700b, 0x4930700a, 0x58380002, 0x90000580, + 0x05020808, 0x0501f004, 0x90001400, 0x45301000, + 0x4930700a, 0x5c007000, 0x5c025800, 0x1c01f000, + 0x4933c857, 0x592c000a, 0x40001000, 0x48007009, + 0x90080405, 0x48007003, 0x592c000e, 0x592c100f, + 0x48007006, 0x48087007, 0x592c0014, 0x592c1209, + 0x80080c80, 0x05001002, 0x40001000, 0x90081403, + 0x80081104, 0x90080490, 0x05021003, 0x80000580, + 0x0501f002, 0x60401000, 0x4800700c, 0x48087004, + 0x800810c4, 0x48087005, 0x40381000, 0x0001f01c, + 0x4d2c0000, 0x05b9ffe8, 0x05b80c6d, 0x42000800, + 0x0010cf39, 0x452c0800, 0x497a580a, 0x497a580b, + 0x497a580c, 0x4a025808, 0x00108d90, 0x4a025802, + 0x00000100, 0x64025801, 0x5c025800, 0x1c01f000, + 0x4833c857, 0x4d300000, 0x4d2c0000, 0x4c5c0000, + 0x4030b800, 0x585c0009, 0x80025d40, 0x05020004, + 0x585c000b, 0x4c000000, 0x0501f03b, 0x585c0002, + 0x82000580, 0x00000100, 0x0502001c, 0x592c0801, + 0x4c040000, 0x05b9ffeb, 0x5c000800, 0x800409c0, + 0x05000017, 0x4804b809, 0x585c100c, 0x800811c0, + 0x05020004, 0x40065800, 0x05b9ffeb, 0x0501f010, + 0x90080490, 0x05021003, 0x80000580, 0x0501f002, + 0x60401000, 0x4800b80c, 0x4808b804, 0x800810c4, + 0x4808b805, 0x90040405, 0x4800b803, 0x405c1000, + 0x0001f81c, 0x0501f022, 0x0501f825, 0x585c000b, + 0x80026540, 0x59300000, 0x80000d40, 0x05020002, + 0x4800b80a, 0x4800b80b, 0x497a6000, 0x4c000000, + 0x4978b809, 0x59325809, 0x4a025a05, 0x00000103, + 0x59300402, 0x48025c07, 0x592c100c, 0x4c080000, + 0x0001fb5b, 0x0501f8ce, 0x05fdf809, 0x5c001000, + 0x8c080518, 0x05000003, 0x05fdf928, 0x0501f002, + 0x0005fc5a, 0x405c7000, 0x5c000000, 0x80026540, + 0x05000003, 0x59325809, 0x05fdff8a, 0x5c00b800, + 0x5c025800, 0x5c026000, 0x1c01f000, 0x483bc857, + 0x58380009, 0x40025800, 0x05b9ffb3, 0x5838000b, + 0x80026540, 0x59300009, 0x80025d40, 0x640a5a07, + 0x1c01f000, 0x4803c857, 0x4933c857, 0x4d1c0000, + 0x497a601e, 0x41323800, 0x40026000, 0x4d3c0000, + 0x60167800, 0x0501f838, 0x5c027800, 0x411e6000, + 0x4933c857, 0x59300416, 0x84000502, 0x48026416, + 0x5c023800, 0x1c01f000, 0x481bc857, 0x4933c857, + 0x4c5c0000, 0x4c600000, 0x4010b800, 0x4014c000, + 0x0509fa9e, 0x05c9f97f, 0x59240400, 0x8c00050a, + 0x05020006, 0x40602800, 0x405c3000, 0x0505fd2e, + 0x90000541, 0x0501f002, 0x80000580, 0x5c00c000, + 0x5c00b800, 0x1c01f000, 0x4803c856, 0x4d300000, + 0x42026000, 0x00110514, 0x59a8000d, 0x81640580, + 0x05000013, 0x59300c07, 0x90040581, 0x05000009, + 0x90040584, 0x05000004, 0x90040590, 0x05f80c59, + 0x0501f007, 0x59300203, 0x90000d87, 0x05000004, + 0x4807c857, 0x05fdf9db, 0x05020807, 0x91326430, + 0x41580000, 0x81300480, 0x05fc17ec, 0x5c026000, + 0x1c01f000, 0x4933c857, 0x59300403, 0x4803c857, + 0x05e9fb13, 0x4df00000, 0x59300407, 0x4803c857, + 0x90000d82, 0x05000013, 0x90000d81, 0x05000007, + 0x90000d84, 0x05000005, 0x4933c856, 0x5c03e000, + 0x05e80af3, 0x0501f03e, 0x59300203, 0x90000d81, + 0x05000014, 0x90000d82, 0x0500002b, 0x90000d85, + 0x05000029, 0x90000d8e, 0x05000027, 0x05b9fbac, + 0x59300203, 0x90000d89, 0x0500000a, 0x90000d8b, + 0x05000008, 0x90000d8a, 0x0500001f, 0x90000d8c, + 0x0500001d, 0x90000d8e, 0x0500001b, 0x05b9fba0, + 0x598c000b, 0x81300580, 0x05020003, 0x05e9fdfb, + 0x05020015, 0x59300004, 0x4803c857, 0x8c000520, + 0x05000004, 0x84000520, 0x48026004, 0x0501f00e, + 0x0201f800, 0x0010f0f2, 0x80c40040, 0x05ba0b90, + 0x5c03e000, 0x05e80aca, 0x59300407, 0x90000d82, + 0x05000013, 0x05ddf953, 0x05f9ff98, 0x05f00f51, + 0x0501f00f, 0x5c03e000, 0x05e80ac1, 0x59300407, + 0x90000d82, 0x0500000a, 0x5930081d, 0x58040200, + 0x8c000500, 0x0500010f, 0x05ddf946, 0x05f9ff8b, + 0x05f00f44, 0x8d3c0500, 0x05000003, 0x0509fafc, + 0x05f1f04f, 0x64066229, 0x4a026403, 0x00000085, + 0x64266203, 0x640a6407, 0x42000800, 0x80000040, + 0x0005f32e, 0x60007040, 0x4203e000, 0xb0800000, + 0x6033f800, 0x40000000, 0x40000000, 0x40000000, + 0x0501b004, 0x80387040, 0x05b80b65, 0x05fdf7f9, + 0x1c01f000, 0x4203e000, 0xb0800000, 0x6023f800, + 0x1c01f000, 0x83300480, 0x00110484, 0x05001006, + 0x41540000, 0x81300480, 0x05021003, 0x80000580, + 0x1c01f000, 0x81780080, 0x1c01f000, 0x59300027, + 0x80000540, 0x05000006, 0x4d2c0000, 0x40025800, + 0x05b9feec, 0x497a6027, 0x5c025800, 0x1c01f000, + 0x592c720b, 0x8c380500, 0x05020008, 0x59307008, + 0x8c380516, 0x05000005, 0x59307009, 0x58387010, + 0x59300014, 0x80380480, 0x1c01f000, 0x59a80877, + 0x59cc2808, 0x82140500, 0x00000c00, 0x05000003, + 0x90040490, 0x05001015, 0x80001580, 0x8c140512, + 0x05000004, 0x90040494, 0x05001010, 0x59cc100a, + 0x80000580, 0x8c140510, 0x05000004, 0x90040498, + 0x0500100a, 0x59cc000b, 0x80080400, 0x05001007, + 0x05000005, 0x90000418, 0x80040480, 0x05001003, + 0x80000580, 0x1c01f000, 0x42000000, 0x0010b2cb, + 0x0509fb79, 0x90000541, 0x05fdf7fb, 0x4933c857, + 0x4937c857, 0x4923c857, 0x4927c857, 0x492fc857, + 0x48efc857, 0x4d1c0000, 0x4d300000, 0x41323800, + 0x05f1f825, 0x0500001d, 0x48ee602d, 0x4926601d, + 0x4936600a, 0x05fdf9e5, 0x591c0407, 0x90000583, + 0x05000008, 0x591c0202, 0x4803c857, 0x4802641b, + 0x591c0402, 0x4802621b, 0x4803c857, 0x0501f007, + 0x591c0202, 0x4803c857, 0x4802621b, 0x591c0402, + 0x4802641b, 0x4803c857, 0x491e602a, 0x64066407, + 0x492e6009, 0x4d380000, 0x615e7000, 0x0005fc78, + 0x5c027000, 0x90000541, 0x5c026000, 0x5c023800, + 0x1c01f000, 0x4933c857, 0x493bc857, 0x4937c857, + 0x4d2c0000, 0x4c500000, 0x4c540000, 0x4c580000, + 0x59325809, 0x05f9fdf2, 0x05000017, 0x91cca406, + 0x912cac07, 0x91380596, 0x05020007, 0x59a80077, + 0x90000588, 0x0502000e, 0x492fc857, 0x6008b000, + 0x0501f008, 0x91380595, 0x05020009, 0x492fc857, + 0x59a80077, 0x90000598, 0x05020005, 0x6018b000, + 0x0509fbfc, 0x05f1f9fe, 0x0501f003, 0x05f1fea1, + 0x0005fc5a, 0x5c00b000, 0x5c00a800, 0x5c00a000, + 0x5c025800, 0x1c01f000, 0x4933c857, 0x05e9fa20, + 0x4df00000, 0x59300203, 0x90000c91, 0x05ba1acc, + 0x0c01f001, 0x00108f37, 0x00108f36, 0x00108f3c, + 0x00108f54, 0x00108f3b, 0x00108f36, 0x00108f36, + 0x00108f36, 0x00108f36, 0x00108f36, 0x00108f36, + 0x00108f36, 0x00108f36, 0x00108f36, 0x00108f36, + 0x00108f36, 0x00108f3c, 0x05b9fab9, 0x5c03e000, + 0x05e809f3, 0x80000580, 0x1c01f000, 0x05bdfc9c, + 0x5c03e000, 0x05e809ee, 0x8d3c0502, 0x05020011, + 0x4d2c0000, 0x59325809, 0x64165a07, 0x0001fb5b, + 0x5c025800, 0x497a6009, 0x8d3c0500, 0x0502000b, + 0x642a6229, 0x4a026403, 0x00000085, 0x64266203, + 0x640a6407, 0x42000800, 0x80004040, 0x0005fb2e, + 0x81780080, 0x1c01f000, 0x05edff75, 0x05fdf7fd, + 0x05f9fb02, 0x05020003, 0x05e9fcc3, 0x05020007, + 0x0201f800, 0x0010ef65, 0x80c40040, 0x05fc07e1, + 0x05e9f8fd, 0x05ba0a92, 0x59300203, 0x90000d83, + 0x05b80a8f, 0x90000c91, 0x05ba1a8d, 0x0c01f7c2, + 0x4933c857, 0x4d340000, 0x4d240000, 0x4d200000, + 0x916c0583, 0x05020015, 0x599c0018, 0x8c000516, + 0x05000003, 0x05d1ff2a, 0x0501f010, 0x60100800, + 0x05d9fa4e, 0x59300429, 0x900005a1, 0x05000005, + 0x59240400, 0x8c00050c, 0x05000004, 0x64866429, + 0x05fdfbbe, 0x90000541, 0x5c024000, 0x5c024800, + 0x5c026800, 0x1c01f000, 0x80000580, 0x05fdf7fb, + 0x4d340000, 0x5932680a, 0x05d9fe65, 0x5c026800, + 0x0005f45a, 0x4803c856, 0x4c5c0000, 0x4d200000, + 0x4014b800, 0x05c5fff7, 0x59a8007b, 0x80000040, + 0x4803507b, 0x916c0582, 0x05020004, 0x59240200, + 0x8400051a, 0x48024a00, 0x59240200, 0x82000500, + 0xfffffeef, 0x84000546, 0x48024a00, 0x497a4805, + 0x4d400000, 0x60068000, 0x405c2800, 0x60040000, + 0x05ddf96b, 0x60aa8000, 0x4d3c0000, 0x600a7800, + 0x05c9f82c, 0x5c027800, 0x5c028000, 0x5c024000, + 0x5c00b800, 0x813261c0, 0x05ee0721, 0x1c01f000, + 0x59303009, 0x58181a05, 0x820c1d00, 0x000000ff, + 0xb00c0588, 0x05000003, 0xb00c05aa, 0x05020045, + 0x58180409, 0x8c000500, 0x05000042, 0x42000000, + 0x0010cf39, 0x50006000, 0x41781800, 0x5830200b, + 0x41300000, 0x80100580, 0x05000006, 0x40101800, + 0x580c2000, 0x801021c0, 0x05fe07fa, 0x0501f035, + 0x4933c857, 0x59302000, 0x497a6000, 0x800c19c0, + 0x0502001e, 0x4933c856, 0x42007000, 0x00020d9f, + 0x58300009, 0x800001c0, 0x05000018, 0x49786009, + 0x58380001, 0x80300580, 0x05020008, 0x4933c856, + 0x49787002, 0x4810600b, 0x801021c0, 0x0502001d, + 0x4978600a, 0x0501f01b, 0x4933c856, 0x4810600b, + 0x801021c0, 0x05020002, 0x4978600a, 0x4c180000, + 0x4c300000, 0x05b9fec6, 0x5c006000, 0x05fdfdb1, + 0x5c003000, 0x0501f00f, 0x4933c856, 0x800c19c0, + 0x05020008, 0x801021c0, 0x05000003, 0x4810600b, + 0x0501f008, 0x4978600b, 0x4978600a, 0x0501f005, + 0x48101800, 0x801021c0, 0x05020002, 0x480c600a, + 0x58180409, 0x84000500, 0x48003409, 0x49783209, + 0x1c01f000, 0x4933c857, 0x4927c857, 0x59a8021b, + 0x90000543, 0x4803521b, 0x4c5c0000, 0x4d400000, + 0x59ccb800, 0x825cbd00, 0x00ffffff, 0x60028000, + 0x05c5ff80, 0x05f5f9e0, 0x485f500f, 0x0500001d, + 0x4d3c0000, 0x60aa8000, 0x59240400, 0x8c00050a, + 0x05020006, 0x59240200, 0x84000556, 0x48024a00, + 0x60083000, 0x0505fb1f, 0x600a7800, 0x05c5ffbd, + 0x42000000, 0x0010b2d6, 0x0509fa33, 0x59cc0408, + 0x8c00051e, 0x05020009, 0x42000800, 0x0010b391, + 0x58040406, 0x8c000500, 0x05020004, 0x59a8021b, + 0x84000552, 0x4803521b, 0x600a8000, 0x5c027800, + 0x41780800, 0x05d9fa89, 0x59240200, 0x4803c857, + 0x4927c857, 0xb0000566, 0x48024a00, 0x485e4805, + 0x812000f0, 0x805c0540, 0x48026813, 0x49238830, + 0x84000570, 0x48038832, 0x59a8121b, 0x59cc0408, + 0x8c00051a, 0x05020005, 0x84081514, 0x4a0370e5, + 0x00000800, 0x0501f004, 0x84081554, 0x4a0370e5, + 0x00000c00, 0x480b521b, 0x05fdf850, 0x59a8021b, + 0x8400054a, 0x4803521b, 0x49238830, 0x845c0570, + 0x48038832, 0x60100800, 0x05d9f97c, 0x59a80a1b, + 0x84040d50, 0x59cc0013, 0x8c00053e, 0x05000003, + 0x8c000536, 0x05000004, 0x59cc0017, 0x8c000536, + 0x05020002, 0x84040d10, 0x4807521b, 0x4807541b, + 0x42001800, 0x0010cf46, 0x59240400, 0x8c00050c, + 0x05000004, 0x64866429, 0x05fdfae0, 0x0501f007, + 0x405c0800, 0x41781000, 0x60040000, 0x60028000, + 0x05ddf8ab, 0x0005fc5a, 0x59a8021b, 0x4803c857, + 0x8c000506, 0x05020006, 0x41781800, 0x0509fb28, + 0x05000002, 0x60401800, 0x05c5fead, 0x805c0110, + 0x48035018, 0x48038881, 0x59a80016, 0x80000040, + 0x4803c857, 0x48035016, 0x05020015, 0x59a8021b, + 0x8400050a, 0x4803521b, 0x4803541b, 0x4a038802, + 0x0000ffff, 0x42001800, 0x0010aee0, 0x05b9fca0, + 0x42001800, 0x0010aeed, 0x05b9fc9d, 0x4a035017, + 0x0000ffff, 0x05e9fc57, 0x4a01a8e4, 0x00000080, + 0x4a038802, 0x0000ffff, 0x850e1d02, 0x5c028000, + 0x5c00b800, 0x1c01f000, 0x4933c857, 0x59368c03, + 0x4c180000, 0x59300203, 0x90003491, 0x05ba1964, + 0x0c01f803, 0x5c003000, 0x1c01f000, 0x001090a0, + 0x00109502, 0x0010967f, 0x001090a0, 0x001090a0, + 0x001090a0, 0x001090a0, 0x001090a0, 0x001090c0, + 0x001090a0, 0x001090a0, 0x001090a0, 0x001090a0, + 0x001090a0, 0x00109c1e, 0x001090a0, 0x001090a0, + 0x05b9f94f, 0x4933c857, 0x61fe89ff, 0x813669c0, 0x05000002, 0x59368c03, 0x4c180000, 0x59300203, - 0x90003491, 0x05ba1bc2, 0x0c01f803, 0x5c003000, - 0x1c01f000, 0x00108e42, 0x00109691, 0x00108e42, - 0x00108e42, 0x00108e42, 0x00108e42, 0x00108e42, - 0x00108e42, 0x001095de, 0x00109ac9, 0x00109afe, - 0x00109ac9, 0x00109afe, 0x00108e42, 0x00109991, - 0x00108e42, 0x00108e42, 0x05b9fbad, 0x05b9fbac, - 0xb1383497, 0x05ba1baa, 0x41380000, 0x493bc857, + 0x90003491, 0x05ba1946, 0x0c01f803, 0x5c003000, + 0x1c01f000, 0x001090be, 0x00109928, 0x001090be, + 0x001090be, 0x001090be, 0x001090be, 0x001090be, + 0x001090be, 0x0010986d, 0x00109d67, 0x00109d9c, + 0x00109d67, 0x00109d9c, 0x001090be, 0x00109c2f, + 0x001090be, 0x001090be, 0x05b9f931, 0x05b9f930, + 0xb1383497, 0x05ba192e, 0x41380000, 0x493bc857, 0x4d1c0000, 0x4d400000, 0x0c01f804, 0x5c028000, - 0x5c023800, 0x1c01f000, 0x00108eae, 0x0010903f, - 0x00108eae, 0x00108eae, 0x00108eae, 0x00109045, - 0x00108eae, 0x00108eae, 0x00108eae, 0x00108eae, - 0x00108eae, 0x00108eae, 0x00108eae, 0x00108eae, - 0x00108eae, 0x00108eae, 0x00108eae, 0x00108eae, - 0x00108eae, 0x00108eae, 0x00108eae, 0x00108eae, - 0x00108eae, 0x00108ecd, 0x00108f0b, 0x00108f1d, - 0x00108f7e, 0x00108fc2, 0x00108ff7, 0x0010901a, - 0x00108eae, 0x00108eae, 0x0010904a, 0x00108eae, - 0x00108eae, 0x00109053, 0x00109058, 0x00108eae, - 0x00108eae, 0x00108eae, 0x00108eae, 0x00108eae, - 0x001090e1, 0x00108eae, 0x00108eae, 0x00108fab, - 0x00108eae, 0x00108eae, 0x001090b7, 0x00108eae, - 0x00108eae, 0x00108eae, 0x001090ec, 0x00108eae, - 0x00108eae, 0x00108eae, 0x00109129, 0x00108eae, - 0x00108eae, 0x00108eae, 0x00108eae, 0x00108eae, - 0x00108eae, 0x0010917e, 0x00108eae, 0x00108eae, - 0x00108eae, 0x00108eae, 0x00108eae, 0x00108eaf, - 0x00108eae, 0x00108eae, 0x00108eae, 0x00108eae, - 0x00108eb9, 0x00108eae, 0x00108eae, 0x00108eae, - 0x001091a3, 0x001091a8, 0x001091be, 0x00108eae, - 0x00108eae, 0x00108eae, 0x00108eae, 0x00108eae, - 0x00108ec5, 0x00108eae, 0x00108eae, 0x00108eae, - 0x00108eae, 0x00108eae, 0x00108eae, 0x00108eae, - 0x00108eae, 0x00108eae, 0x05b9fb41, 0x4933c857, - 0x0505fca8, 0x05020315, 0x05c5fea6, 0x05020313, + 0x5c023800, 0x1c01f000, 0x0010912a, 0x001092c0, + 0x0010912a, 0x0010912a, 0x0010912a, 0x001092c6, + 0x0010912a, 0x0010912a, 0x0010912a, 0x0010912a, + 0x0010912a, 0x0010912a, 0x0010912a, 0x0010912a, + 0x0010912a, 0x0010912a, 0x0010912a, 0x0010912a, + 0x0010912a, 0x0010912a, 0x0010912a, 0x0010912a, + 0x0010912a, 0x0010914b, 0x00109189, 0x0010919b, + 0x001091fc, 0x00109240, 0x00109275, 0x00109298, + 0x0010912a, 0x0010912a, 0x001092cb, 0x0010912a, + 0x0010912a, 0x001092d4, 0x001092d9, 0x0010912a, + 0x0010912a, 0x0010912a, 0x0010912a, 0x0010912a, + 0x00109362, 0x0010912a, 0x0010912a, 0x00109229, + 0x0010912a, 0x0010912a, 0x00109338, 0x0010912a, + 0x0010912a, 0x0010912a, 0x0010936d, 0x0010912a, + 0x0010912a, 0x0010912a, 0x001093aa, 0x0010912a, + 0x0010912a, 0x0010912a, 0x0010912a, 0x0010912a, + 0x0010912a, 0x001093ff, 0x0010912a, 0x0010912a, + 0x0010912a, 0x0010912a, 0x0010912a, 0x0010912b, + 0x0010912a, 0x0010912a, 0x0010912a, 0x0010912a, + 0x00109135, 0x0010912a, 0x0010912a, 0x0010912a, + 0x00109428, 0x0010942d, 0x00109445, 0x0010912a, + 0x0010912a, 0x0010912a, 0x0010912a, 0x0010912a, + 0x00109141, 0x0010912a, 0x0010912a, 0x0010912a, + 0x0010912a, 0x0010912a, 0x0010912a, 0x0010912a, + 0x0010912a, 0x0010912a, 0x05b9f8c5, 0x4933c857, + 0x0505fcca, 0x05020322, 0x05c5fc2f, 0x05020320, 0x59cc0407, 0x4802601e, 0x65166403, 0x64066203, - 0x05e5f76a, 0x4933c857, 0x0505fc9e, 0x0502030b, - 0x05c5fe9c, 0x05020309, 0x0501fb3b, 0x05020167, + 0x05e5f6b0, 0x4933c857, 0x0505fcc0, 0x05020318, + 0x05c5fc25, 0x05020316, 0x0501fb48, 0x05020169, 0x59cc0007, 0x4802601e, 0x652a6403, 0x64066203, - 0x05e5f75e, 0x4933c857, 0x0505fc92, 0x050202ff, - 0x05c5fe90, 0x050202fd, 0x655a6403, 0x64066203, - 0x05e5f756, 0x4933c857, 0x05c5fe8a, 0x05020009, - 0x05d9fd11, 0x05020007, 0x5932481d, 0x59240200, - 0x90000503, 0x90000583, 0x05000006, 0x0501f2ef, - 0x64266403, 0x6426641c, 0x6402621c, 0x0501f168, - 0x05d9fde6, 0x05000024, 0x59340200, 0x8c00051a, - 0x05000004, 0x5934000a, 0x84000560, 0x4802680a, - 0x0505f8e0, 0x05020023, 0x60a68000, 0x4d3c0000, - 0x417a7800, 0x0201f800, 0x0010ec6c, 0x5c027800, - 0x42000000, 0x0010b058, 0x0509f8a7, 0x41780800, - 0x05d9fae4, 0x64226403, 0x600c3000, 0x59240400, - 0x8c00050a, 0x0502014e, 0x59cc400b, 0x59cc380c, - 0x59cc180d, 0x59cc080e, 0x9c2041c0, 0x9c1c39c0, - 0x9c0c19c0, 0x9c0409c0, 0x641e6203, 0x41782800, - 0x0501f13c, 0x0505f971, 0x05fe07e2, 0x64266403, - 0x643a641c, 0x4a02621c, 0x00001900, 0x0501f13c, - 0x64266403, 0x640e641c, 0x0501f139, 0x4933c857, - 0x05c5fe4c, 0x050202b9, 0x05d9fcd3, 0x050202b7, - 0x493a6403, 0x0505f852, 0x05020007, 0x641a6403, - 0x59240400, 0x8c00050a, 0x0502012d, 0x641e6203, - 0x0505f6fb, 0x641e6403, 0x6426641c, 0x6402621c, - 0x0501f127, 0x4933c857, 0x05d9fcc3, 0x050202a7, - 0x5934000a, 0x82000500, 0x00010000, 0x82000580, - 0x00010000, 0x05060c33, 0x05c40e32, 0x0502029f, - 0x59cc0001, 0x82000500, 0x00ffff00, 0x82000580, - 0x00fffc00, 0x05020007, 0x59a80006, 0x8c00050e, - 0x05000004, 0x59240400, 0x8c00050a, 0x05020036, - 0x05d9fd8e, 0x05020003, 0x60067800, 0x05d9f9a9, - 0x05d9fd7d, 0x05000004, 0x82000580, 0x00000703, - 0x05020032, 0x59cc0206, 0x90003503, 0x05020034, - 0x90003494, 0x05001032, 0x59a83077, 0x80183480, - 0x0500102f, 0x5934300a, 0x84183516, 0x90000594, - 0x05020002, 0x84183556, 0x481a680a, 0x59cc0406, - 0x90000503, 0x05020026, 0x0505f8c1, 0x0502002b, - 0x05d9fd4b, 0x05020006, 0x4c600000, 0x4178c000, - 0x417a7800, 0x05c5fda0, 0x5c00c000, 0x916c0583, - 0x05020006, 0x60183000, 0x0505fe8d, 0x42000000, - 0x0010b057, 0x0509f838, 0x05d9fae7, 0x642a6403, - 0x60803000, 0x59cc1a0a, 0x41780800, 0x41784000, - 0x41783800, 0x59240400, 0x8c00050a, 0x050200dc, - 0x05fdf796, 0x642e6403, 0x642e641c, 0x4a02621c, - 0x00002c00, 0x0501f0d6, 0x642e6403, 0x6426641c, - 0x4a02621c, 0x00001e00, 0x0501f0d1, 0x42000000, - 0x0010afb2, 0x0509f820, 0x642e6403, 0x641e641c, - 0x6402621c, 0x0501f0ca, 0x642e6403, 0x640e641c, - 0x6402621c, 0x0501f0c6, 0x4933c857, 0x05d9fc62, - 0x05020246, 0x0505fbd7, 0x05020244, 0x05c5fdd5, - 0x05020242, 0x59cc0206, 0x90003503, 0x0502001b, - 0x90003494, 0x05001019, 0x59a83077, 0x80180480, - 0x05001016, 0x59cc0406, 0x90000503, 0x05020013, - 0x59340400, 0x82000580, 0x00000707, 0x05000013, - 0x417a7800, 0x4c600000, 0x4178c000, 0x05c5fd5e, - 0x5c00c000, 0x60283000, 0x0505fe4d, 0x42000000, - 0x0010b054, 0x0505fff8, 0x64326403, 0x41782800, - 0x60843000, 0x05fdf7c4, 0x64366403, 0x641e641c, - 0x6402621c, 0x0501f09e, 0x64366403, 0x6426641c, - 0x4a02621c, 0x00001e00, 0x0501f099, 0x4933c857, - 0x05d9fc35, 0x05020219, 0x0505fbaa, 0x05020217, - 0x05c5fda8, 0x05020215, 0x0501fa47, 0x0502000a, - 0x493a6403, 0x0501fa4d, 0x05020003, 0x64ba6403, - 0x05fdf75c, 0x64366403, 0x641e641c, 0x6402621c, - 0x0501f087, 0x64366403, 0x6426641c, 0x4a02621c, - 0x00001e00, 0x0501f082, 0x4933c857, 0x05d9fc1e, - 0x05fe0714, 0x59240200, 0x90000503, 0x90000583, - 0x050201fe, 0x05d9fcec, 0x05020028, 0x0505f84b, - 0x0502000b, 0x643a6403, 0x59240400, 0x8c00050a, - 0x05020073, 0x61483000, 0x59cc4008, 0x59cc3809, - 0x59cc180a, 0x59cc080b, 0x05fdf724, 0x4933c857, - 0x600c3000, 0x0505fe15, 0x4d3c0000, 0x417a7800, - 0x0201f800, 0x0010ec6c, 0x5c027800, 0x42000000, - 0x0010b056, 0x0505ffb4, 0x59340200, 0x84000558, - 0x48026a00, 0x602c0800, 0x05d9f905, 0x59240400, - 0x8c00050a, 0x05020056, 0x601c3000, 0x0501f04b, - 0x4933c857, 0x643e6403, 0x640e641c, 0x4a02621c, - 0x00001e00, 0x0501f052, 0x59340400, 0x82000580, - 0x00000703, 0x05fc07f7, 0x0501f030, 0x4933c857, - 0x05d9fbe9, 0x050201cd, 0x5932481d, 0x59240200, - 0x90000503, 0x90000583, 0x050201c8, 0x05d9fcad, - 0x05020022, 0x0505f828, 0x05000fc2, 0x05020004, - 0x64426403, 0x61403000, 0x05fdf6ed, 0x4d3c0000, - 0x417a7800, 0x0201f800, 0x0010ec6c, 0x5c027800, - 0x600c3000, 0x0505fde1, 0x42000000, 0x0010b056, - 0x0505ff85, 0x59340200, 0x84000558, 0x48026a00, - 0x05fdf7d3, 0x64466403, 0x640e641c, 0x4a02621c, - 0x00001e00, 0x0501f02a, 0x4933c857, 0x05c5fd3d, - 0x05040b3c, 0x050201a9, 0x0501f9db, 0x05020007, - 0x644a6403, 0x0501f022, 0x59340400, 0x82000580, - 0x00000703, 0x05fc07f0, 0x4d3c0000, 0x417a7800, - 0x60a68000, 0x0201f800, 0x0010ec6c, 0x5c027800, - 0x605c3000, 0x0505fdc1, 0x42000000, 0x0010b056, - 0x0505ff65, 0x05c5fef6, 0x59240400, 0x8c00050a, - 0x0502000b, 0x60183000, 0x60a68000, 0x4933c857, - 0x64066403, 0x641e6203, 0x41782800, 0x0501f002, - 0x611a8000, 0x0505f858, 0x0505f5d5, 0x4933c857, - 0x64066403, 0x602c0800, 0x05d9f8a9, 0x64066203, - 0x05e5f5de, 0x4933c857, 0x60240800, 0x05d9f8a4, - 0x64166403, 0x05fdf7fa, 0x0505fb0e, 0x0502017b, - 0x05c5fd0c, 0x05020179, 0x0501f9ab, 0x05fe07d7, - 0x64826403, 0x64066203, 0x05e5f5d0, 0x05c5fd05, - 0x05020172, 0x648e6403, 0x64066203, 0x05e5f5cb, - 0x0505fb00, 0x05c40cff, 0x0502016c, 0x0501f99e, - 0x05fe07ca, 0x59cc0807, 0x82040500, 0x00ffff00, - 0x0502000a, 0x59340212, 0x82000500, 0x0000ff00, - 0x05000006, 0x5932481d, 0x59240005, 0x82000500, - 0x000000ff, 0x0501f003, 0x5932481d, 0x59240005, - 0x82040d00, 0x00ffffff, 0x80040580, 0x05020015, - 0x59cc1408, 0x05f9ff41, 0x0500002c, 0x591c0202, - 0x82001580, 0x0000ffff, 0x05000004, 0x59cc1208, - 0x80080580, 0x05020025, 0x591c000a, 0x81340580, - 0x05020022, 0x591c0416, 0x8c00051a, 0x05020015, - 0x591c0407, 0x90000587, 0x0502001c, 0x0501f029, - 0x59cc1208, 0x82080580, 0x0000ffff, 0x05000012, - 0x05f9ff2a, 0x05000015, 0x59cc1408, 0x591c0202, - 0x80080580, 0x05020025, 0x591c000a, 0x81340580, - 0x05020022, 0x591c0416, 0x8c00051a, 0x05000013, - 0x82000500, 0xffff1fff, 0x48023c16, 0x491e602a, - 0x0501f018, 0x59cc1408, 0x41780000, 0x0501fdb0, - 0x05fe07f2, 0x0501f013, 0x649a6403, 0x4a02621c, - 0x00001700, 0x59cc1208, 0x82081580, 0x0000ffff, - 0x05fe079f, 0x0501f00b, 0x591c0407, 0x90000587, - 0x05fe07f6, 0x591c0403, 0x900005a4, 0x05020005, - 0x4d300000, 0x411e6000, 0x0005fc5a, 0x5c026000, - 0x64966403, 0x05fdf792, 0x59cc1408, 0x41780000, - 0x0501fd97, 0x05fe07e9, 0x05fdf7fa, 0x4933c857, - 0x4d3c0000, 0x60067800, 0x05d9f826, 0x5c027800, - 0x4c580000, 0x6008b000, 0x91a81c02, 0x91cc140b, - 0x05f1ff8c, 0x5c00b000, 0x05000003, 0x64c66403, - 0x05fdf77f, 0x0005fc5a, 0x6008b000, 0x91a81c00, - 0x91cc140d, 0x05f1ff83, 0x0502000c, 0x05e1fedf, - 0x0500000a, 0x59300407, 0x90000581, 0x05020007, - 0x59300403, 0x90000582, 0x05020004, 0x5930000a, - 0x81340580, 0x00040c5a, 0x05ddf957, 0x05020009, - 0x05ddf96b, 0x05020005, 0x64075014, 0x6006d800, - 0x05ddf8cf, 0x0501f003, 0x60040000, 0x05ddf922, - 0x1c01f000, 0x05c5fc77, 0x050200e4, 0x0501f916, - 0x05fe0742, 0x493a6403, 0x0501f970, 0x05020003, - 0x64ae6403, 0x05fdf75a, 0x64b26403, 0x05fdf758, - 0x4933c857, 0x05e5f9ab, 0x050200d8, 0x05c5fc69, - 0x050200d6, 0x05d9fbaa, 0x05fe074d, 0x59cc0408, - 0x4802641b, 0x59cc0208, 0x4802621b, 0x59cc0807, - 0x59340002, 0x82000500, 0x00ffffff, 0x80040580, - 0x05000012, 0x5932481d, 0x59240005, 0x80040580, - 0x0502001e, 0x59cc1408, 0x05f9feb0, 0x05000020, - 0x831c0580, 0xffffffff, 0x05000005, 0x0505f95f, - 0x0500001b, 0x0505fcc8, 0x05000019, 0x491e602a, - 0x64da6403, 0x0501f0b5, 0x59cc1208, 0x82080580, - 0x0000ffff, 0x05000008, 0x05f9fea0, 0x05000010, - 0x591c0202, 0x59cc0c08, 0x80040580, 0x0502000c, - 0x05fdf7ec, 0x59cc1408, 0x60040000, 0x0501fd30, - 0x05000007, 0x05fdf7e7, 0x4803c856, 0x6426641c, - 0x4a02621c, 0x00001500, 0x0501f005, 0x4803c856, - 0x640e641c, 0x4a02621c, 0x00001700, 0x64de6403, - 0x0501f09a, 0x4933c857, 0x05e5f96e, 0x0502009b, - 0x05c5fc2c, 0x05020099, 0x05d9fb6d, 0x05fe0710, - 0x05d9fa9a, 0x05000045, 0x59cc0407, 0x4802641b, - 0x59cc1207, 0x480a621b, 0x82080580, 0x0000ffff, - 0x05000004, 0x05f9fe79, 0x05000036, 0x0501f008, - 0x59cc1407, 0x60040000, 0x0501fd0d, 0x05000031, - 0x831c0580, 0xffffffff, 0x0500002e, 0x59cc0c07, - 0x591c0202, 0x80040580, 0x0502002a, 0x0505fc8a, - 0x05000028, 0x591c0416, 0x8c000516, 0x0502002f, - 0x4d300000, 0x411e6000, 0x05f5fe19, 0x5c026000, - 0x641e3a03, 0x59cc0c09, 0x82040d00, 0x0000ff00, - 0x840409c0, 0x90040581, 0x05000009, 0x90040585, - 0x0500000b, 0x90040587, 0x05020011, 0x42000000, - 0x0010b043, 0x0505fe38, 0x0501f008, 0x42000000, - 0x0010b042, 0x0505fe34, 0x0501f007, 0x42000000, - 0x0010b041, 0x0505fe30, 0x591c0009, 0x80000540, - 0x05000003, 0x59cc2808, 0x0505f10e, 0x4803c856, - 0x6426641c, 0x4a02621c, 0x00002a00, 0x0501f005, - 0x4803c856, 0x640e641c, 0x4a02621c, 0x00000300, - 0x64ee6403, 0x0501f04d, 0x4803c856, 0x642e641c, - 0x6402621c, 0x05fdf7fb, 0x4803c856, 0x641e641c, - 0x6402621c, 0x05fdf7f7, 0x4c080000, 0x05d9fa62, - 0x05000021, 0x05d9fa39, 0x0505fa2e, 0x0502001c, - 0x5932481d, 0x59240200, 0x82000540, 0x000000e0, - 0x48024a00, 0x59a8021b, 0x90000543, 0x4803521b, - 0x59a80018, 0x800000d0, 0x59a8080f, 0x82040d00, - 0x000000ff, 0x80041540, 0x480b500f, 0x600c0800, - 0x05e5fe18, 0x497b501d, 0x8d0c0520, 0x05000004, - 0x4a032804, 0x000007d0, 0x0501f001, 0x0005fc5a, - 0x05c5fc4b, 0x5c001000, 0x1c01f000, 0x0505fa2b, - 0x05fdf7fd, 0x5c001000, 0x0005f45a, 0x0501f825, - 0x05000022, 0x653a6403, 0x64066203, 0x05e5f47b, - 0x653e6403, 0x497a601e, 0x59cc0a06, 0x82040d00, - 0x000000ff, 0x800409c0, 0x05fc0695, 0x90040581, - 0x05020005, 0x59cc0808, 0x59a80005, 0x80040580, - 0x05fc068f, 0x90040582, 0x05020006, 0x91cc140b, - 0x6008b000, 0x91341c06, 0x05f1fe92, 0x05fc0688, - 0x6406601e, 0x05fdf686, 0x65426403, 0x59cc0207, - 0x4802601e, 0x05fdf682, 0x64066203, 0x42000800, - 0x80000040, 0x0005f32e, 0x4803c857, 0x0005f45a, - 0x4d2c0000, 0x4c500000, 0x4c580000, 0x4c540000, - 0x59a80077, 0x82000c80, 0x00000841, 0x05021021, - 0x05b9fb99, 0x0500001f, 0x492e6009, 0x59a80077, - 0x48025802, 0x90000403, 0x80000104, 0x91cca406, - 0x90000c8a, 0x05001010, 0x642a5811, 0x6028b000, - 0x912c0406, 0x4000a800, 0x0505fe82, 0x412c7000, - 0x800409c0, 0x05020003, 0x49787001, 0x0501f00b, - 0x05b9fb85, 0x0500000b, 0x492c7001, 0x40040000, - 0x05fdf7f0, 0x48025811, 0x4000b000, 0x912c0406, - 0x4000a800, 0x0505fe73, 0x90000541, 0x0501f005, - 0x497b5077, 0x59325809, 0x05b9fba3, 0x80000580, - 0x5c00a800, 0x5c00b000, 0x5c00a000, 0x5c025800, - 0x1c01f000, 0x4d340000, 0x5932680a, 0x59343400, - 0x4933c857, 0x4937c857, 0x481bc857, 0x05d9faad, - 0x5c026800, 0x1c01f000, 0x4933c857, 0x4c600000, - 0x4d3c0000, 0x4d440000, 0x4d340000, 0x0501f858, - 0x05020046, 0x59cc0207, 0x82000d00, 0x0000ff00, - 0x900411c0, 0x59cc000a, 0x82000500, 0x00ffffff, - 0x80081540, 0x480a601e, 0x8c040518, 0x05000011, - 0x60203000, 0x0505fbcc, 0x42000000, 0x0010b055, - 0x0505fd7d, 0x59240400, 0x8c00050a, 0x05020005, - 0x60082800, 0x60903000, 0x611a8000, 0x0501fe76, - 0x6004c000, 0x417a7800, 0x05c5fad3, 0x0501f02d, - 0x8c04051a, 0x05000029, 0x59cc000a, 0x59cc3800, - 0x821c3d00, 0x00ffffff, 0x05e1fc53, 0x05d80ac9, - 0x05020022, 0x5930001d, 0x4c000000, 0x05d9fabd, - 0x4926601d, 0x5930000a, 0x4c000000, 0x59240c00, - 0x8c04050a, 0x0502000b, 0x59340c03, 0x59341802, - 0x820c1d00, 0x00ffffff, 0x58002403, 0x60102800, - 0x60903000, 0x611a8000, 0x41301000, 0x0501fe64, - 0x4936600a, 0x60243000, 0x0505fba5, 0x42000000, - 0x0010b055, 0x0505fd50, 0x417a7800, 0x4178c000, - 0x05c5faad, 0x5c000000, 0x4802600a, 0x5c000000, - 0x4802601d, 0x0501f003, 0x90000541, 0x0501f002, - 0x80000580, 0x5c026800, 0x5c028800, 0x5c027800, - 0x5c00c000, 0x1c01f000, 0x4933c857, 0x59cc0206, - 0x90000490, 0x05021004, 0x6402621c, 0x90000541, - 0x0501f002, 0x80000580, 0x1c01f000, 0x4933c857, - 0x6402621c, 0x59cc0407, 0x82000500, 0x0000ff00, - 0x82000580, 0x00000800, 0x0502000d, 0x59cc0206, - 0x59a80877, 0x80040480, 0x0500100a, 0x59cc0006, - 0x82000500, 0x00ff0000, 0x82000d80, 0x00140000, - 0x05000003, 0x82000d80, 0x00100000, 0x1c01f000, - 0x42000000, 0x0010b04a, 0x0505fd1f, 0x90000541, - 0x05fdf7fb, 0x59300403, 0xb0003497, 0x05b61f74, - 0x91383593, 0x05020006, 0x4803c857, 0x4c000000, - 0x0505fc45, 0x5c000000, 0x0c01f019, 0x4933c857, - 0x493bc857, 0x913835a7, 0x0500000d, 0x91383594, - 0x0500000b, 0xb13805a1, 0x05000003, 0xb13805a0, - 0x05b60f63, 0x05e9f8a8, 0x05ee02ea, 0x59300203, - 0x9000058e, 0x05f8020c, 0x05b5ff5d, 0x493bc857, - 0x4937c857, 0x0505fc2e, 0x05d9f924, 0x601c0800, - 0x05d5fe53, 0x05e5fc39, 0x05edf279, 0x001092fb, - 0x00109309, 0x001092fb, 0x001092fb, 0x001092fb, - 0x00109309, 0x0010931a, 0x001093df, 0x00109360, - 0x001093df, 0x00109379, 0x001093df, 0x0010937e, - 0x001093df, 0x00109381, 0x001093df, 0x00109381, - 0x001093df, 0x001093df, 0x001092fb, 0x001092fb, - 0x001092fb, 0x001092fb, 0x001092fb, 0x001092fb, - 0x001092fb, 0x001092fb, 0x001092fb, 0x001092fb, - 0x001092fb, 0x00109309, 0x001092fb, 0x001093df, - 0x001092fb, 0x001092fb, 0x001093df, 0x001092fb, - 0x001093c5, 0x001093df, 0x001092fb, 0x001092fb, - 0x001092fb, 0x001092fb, 0x001093df, 0x001093df, - 0x001092fb, 0x001093df, 0x001093df, 0x001092fb, - 0x00109315, 0x001092fb, 0x001092fb, 0x001092fb, - 0x001092fb, 0x00109383, 0x001093df, 0x001092fb, - 0x001092fb, 0x001093ab, 0x001093df, 0x001092fb, - 0x001092fb, 0x001092fb, 0x001092fb, 0x001092fb, - 0x001092fb, 0x001092fb, 0x001092fb, 0x001092fb, - 0x001092fc, 0x001092fb, 0x001092fb, 0x001092fb, - 0x001092fb, 0x001092fc, 0x001092fb, 0x001092fb, - 0x001092fb, 0x001092fc, 0x001092fc, 0x001092fc, - 0x001092fb, 0x001092fb, 0x001092fb, 0x001092fb, - 0x001092fb, 0x001092fc, 0x001092fb, 0x001092fb, - 0x001092fb, 0x001092fb, 0x001092fb, 0x001092fb, - 0x001092fb, 0x001092fb, 0x001092fb, 0x05b5fef4, - 0x05f9fbf4, 0x05000007, 0x59a80030, 0x48026205, - 0x643a6203, 0x59a8002e, 0x48026006, 0x1c01f000, - 0x4d2c0000, 0x59325809, 0x05b9fa8f, 0x5c025800, - 0x0005f45a, 0x59a8002e, 0x48026006, 0x05f9fbe5, - 0x05000007, 0x4a02601c, 0x00109313, 0x59a80030, - 0x48026205, 0x643a6203, 0x1c01f000, 0x640a6203, - 0x1c01f000, 0x4d3c0000, 0x417a7800, 0x05d5fdc9, - 0x5c027800, 0x0501f0c6, 0x05d9f99b, 0x050000c4, - 0x59a8021b, 0x8c000508, 0x0500000e, 0x5932680a, - 0x4c580000, 0x6008b000, 0x91a81c02, 0x91341406, - 0x05f1fd28, 0x80000540, 0x5c00b000, 0x050200b8, - 0x59340200, 0x8400051a, 0x48026a00, 0x0501f02a, - 0x599c0017, 0x8c00050a, 0x050200b1, 0x4d3c0000, - 0x417a7800, 0x05d5fdaf, 0x5c027800, 0x601c0800, - 0x05d5fdb7, 0x59340212, 0x82000500, 0x0000ff00, - 0x05020014, 0x83440d80, 0x000007fe, 0x050200a4, - 0x05c5fbeb, 0x59a8021b, 0x8c000514, 0x050000a0, - 0x83240580, 0x0010b111, 0x05020005, 0x4d300000, - 0x05c5fa80, 0x5c026000, 0x0501f099, 0x59a8221b, - 0x8c100514, 0x05000096, 0x05c5fbba, 0x0501f094, + 0x05e5f6a4, 0x4933c857, 0x0505fcb4, 0x0502030c, + 0x05c5fc19, 0x0502030a, 0x0501fb3c, 0x0502015d, + 0x655a6403, 0x64066203, 0x05e5f69a, 0x4933c857, + 0x05c5fc11, 0x05020009, 0x05d9fb6d, 0x05020007, + 0x5932481d, 0x59240200, 0x90000503, 0x90000583, + 0x05000006, 0x0501f2fa, 0x64266403, 0x6426641c, + 0x6402621c, 0x0501f16b, 0x05d9fc44, 0x05000024, + 0x59340200, 0x8c00051a, 0x05000004, 0x5934000a, + 0x84000560, 0x4802680a, 0x0505f8f9, 0x05020023, + 0x60a68000, 0x4d3c0000, 0x417a7800, 0x0201f800, + 0x0010ee7a, 0x5c027800, 0x42000000, 0x0010b2d8, + 0x0509f8d9, 0x41780800, 0x05d9f93c, 0x64226403, + 0x600c3000, 0x59240400, 0x8c00050a, 0x05020151, + 0x59cc400b, 0x59cc380c, 0x59cc180d, 0x59cc080e, + 0x9c2041c0, 0x9c1c39c0, 0x9c0c19c0, 0x9c0409c0, + 0x641e6203, 0x41782800, 0x0501f13f, 0x0505f98a, + 0x05fe07e2, 0x64266403, 0x643a641c, 0x4a02621c, + 0x00001900, 0x0501f13f, 0x64266403, 0x640e641c, + 0x0501f13c, 0x4933c857, 0x05c5fbd3, 0x050202c4, + 0x05d9fb2f, 0x050202c2, 0x493a6403, 0x0505f86b, + 0x05020007, 0x641a6403, 0x59240400, 0x8c00050a, + 0x05020130, 0x641e6203, 0x0505f72d, 0x641e6403, + 0x6426641c, 0x6402621c, 0x0501f12a, 0x4933c857, + 0x05d9fb1f, 0x050202b2, 0x5934000a, 0x82000500, + 0x00010000, 0x82000580, 0x00010000, 0x05060c53, + 0x05c40bb9, 0x050202aa, 0x59cc0001, 0x82000500, + 0x00ffff00, 0x82000580, 0x00fffc00, 0x05020007, + 0x59a80006, 0x8c00050e, 0x05000004, 0x59240400, + 0x8c00050a, 0x05020036, 0x05d9fbec, 0x05020003, + 0x60067800, 0x05d5fffe, 0x05d9fbdb, 0x05000004, + 0x82000580, 0x00000703, 0x05020032, 0x59cc0206, + 0x90003503, 0x05020034, 0x90003494, 0x05001032, + 0x59a83077, 0x80183480, 0x0500102f, 0x5934300a, + 0x84183516, 0x90000594, 0x05020002, 0x84183556, + 0x481a680a, 0x59cc0406, 0x90000503, 0x05020026, + 0x0505f8da, 0x0502002b, 0x05d9fba9, 0x05020006, + 0x4c600000, 0x4178c000, 0x417a7800, 0x05c5fb27, + 0x5c00c000, 0x916c0583, 0x05020006, 0x60183000, + 0x0505febf, 0x42000000, 0x0010b2d7, 0x0509f86a, + 0x05d9f943, 0x642a6403, 0x60803000, 0x59cc1a0a, + 0x41780800, 0x41784000, 0x41783800, 0x59240400, + 0x8c00050a, 0x050200df, 0x05fdf796, 0x642e6403, + 0x642e641c, 0x4a02621c, 0x00002c00, 0x0501f0d9, + 0x642e6403, 0x6426641c, 0x4a02621c, 0x00001e00, + 0x0501f0d4, 0x42000000, 0x0010b232, 0x0509f852, + 0x642e6403, 0x641e641c, 0x6402621c, 0x0501f0cd, + 0x642e6403, 0x640e641c, 0x6402621c, 0x0501f0c9, + 0x4933c857, 0x05d9fabe, 0x05020251, 0x0505fbf7, + 0x0502024f, 0x05c5fb5c, 0x0502024d, 0x59cc0206, + 0x90003503, 0x0502001b, 0x90003494, 0x05001019, + 0x59a83077, 0x80180480, 0x05001016, 0x59cc0406, + 0x90000503, 0x05020013, 0x59340400, 0x82000580, + 0x00000707, 0x05000013, 0x417a7800, 0x4c600000, + 0x4178c000, 0x05c5fae5, 0x5c00c000, 0x60283000, + 0x0505fe7f, 0x42000000, 0x0010b2d4, 0x0509f82a, + 0x64326403, 0x41782800, 0x60843000, 0x05fdf7c4, + 0x64366403, 0x641e641c, 0x6402621c, 0x0501f0a1, + 0x64366403, 0x6426641c, 0x4a02621c, 0x00001e00, + 0x0501f09c, 0x4933c857, 0x05d9fa91, 0x05020224, + 0x0505fbca, 0x05020222, 0x05c5fb2f, 0x05020220, + 0x0501fa52, 0x0502000a, 0x493a6403, 0x0501fa58, + 0x05020003, 0x64ba6403, 0x05fdf75c, 0x64366403, + 0x641e641c, 0x6402621c, 0x0501f08a, 0x64366403, + 0x6426641c, 0x4a02621c, 0x00001e00, 0x0501f085, + 0x4933c857, 0x05d9fa7a, 0x05fe0714, 0x59240200, + 0x90000503, 0x90000583, 0x05020209, 0x05d9fb4a, + 0x05020028, 0x0505f864, 0x0502000b, 0x643a6403, + 0x59240400, 0x8c00050a, 0x05020076, 0x61483000, + 0x59cc4008, 0x59cc3809, 0x59cc180a, 0x59cc080b, + 0x05fdf724, 0x4933c857, 0x600c3000, 0x0505fe47, + 0x4d3c0000, 0x417a7800, 0x0201f800, 0x0010ee7a, + 0x5c027800, 0x42000000, 0x0010b2d6, 0x0505ffe6, + 0x59340200, 0x84000558, 0x48026a00, 0x602c0800, + 0x05d5ff5a, 0x59240400, 0x8c00050a, 0x05020059, + 0x601c3000, 0x0501f04e, 0x4933c857, 0x643e6403, + 0x640e641c, 0x4a02621c, 0x00001e00, 0x0501f055, + 0x59340400, 0x82000580, 0x00000703, 0x05fc07f7, + 0x0501f030, 0x4933c857, 0x05d9fa45, 0x050201d8, + 0x5932481d, 0x59240200, 0x90000503, 0x90000583, + 0x050201d3, 0x05d9fb0b, 0x05020022, 0x0505f841, + 0x05000fdb, 0x05020004, 0x64426403, 0x61403000, + 0x05fdf6ed, 0x4d3c0000, 0x417a7800, 0x0201f800, + 0x0010ee7a, 0x5c027800, 0x600c3000, 0x0505fe13, + 0x42000000, 0x0010b2d6, 0x0505ffb7, 0x59340200, + 0x84000558, 0x48026a00, 0x05fdf7d3, 0x64466403, + 0x640e641c, 0x4a02621c, 0x00001e00, 0x0501f02d, + 0x4933c857, 0x05c5fac4, 0x05040b5c, 0x050201b4, + 0x0501f9e6, 0x05020007, 0x644a6403, 0x0501f025, + 0x59340400, 0x82000580, 0x00000703, 0x05fc07f0, + 0x83340580, 0x0010ce8f, 0x05000009, 0x4d3c0000, + 0x417a7800, 0x60a68000, 0x0201f800, 0x0010ee7a, + 0x5c027800, 0x605c3000, 0x0505fdf0, 0x42000000, + 0x0010b2d6, 0x0505ff94, 0x05c5fcce, 0x59240400, + 0x8c00050a, 0x0502000b, 0x60183000, 0x60a68000, + 0x4933c857, 0x64066403, 0x641e6203, 0x41782800, + 0x0501f002, 0x611a8000, 0x0505f86e, 0x0505f604, + 0x4933c857, 0x64066403, 0x602c0800, 0x05d5fefb, + 0x64066203, 0x05e5f51f, 0x4933c857, 0x60240800, + 0x05d5fef6, 0x64166403, 0x05fdf7fa, 0x0505fb2b, + 0x05020183, 0x05c5fa90, 0x05020181, 0x0501f9b3, + 0x05fe07d4, 0x64826403, 0x64066203, 0x05e5f511, + 0x05c5fa89, 0x0502017a, 0x648e6403, 0x64066203, + 0x05e5f50c, 0x0505fb1d, 0x05c40a83, 0x05020174, + 0x0501f9a6, 0x05fe07c7, 0x59cc0807, 0x82040500, + 0x00ffff00, 0x0502000a, 0x59340212, 0x82000500, + 0x0000ff00, 0x05000006, 0x5932481d, 0x59240005, + 0x82000500, 0x000000ff, 0x0501f003, 0x5932481d, + 0x59240005, 0x82040d00, 0x00ffffff, 0x80040580, + 0x05020015, 0x59cc1408, 0x05f9fea1, 0x0500002c, + 0x591c0202, 0x82001580, 0x0000ffff, 0x05000004, + 0x59cc1208, 0x80080580, 0x05020025, 0x591c000a, + 0x81340580, 0x05020022, 0x591c0416, 0x8c00051a, + 0x05020015, 0x591c0407, 0x90000587, 0x0502001c, + 0x0501f029, 0x59cc1208, 0x82080580, 0x0000ffff, + 0x05000012, 0x05f9fe8a, 0x05000015, 0x59cc1408, + 0x591c0202, 0x80080580, 0x05020025, 0x591c000a, + 0x81340580, 0x05020022, 0x591c0416, 0x8c00051a, + 0x05000013, 0x82000500, 0xffff1fff, 0x48023c16, + 0x491e602a, 0x0501f018, 0x59cc1408, 0x41780000, + 0x0501fdbe, 0x05fe07f2, 0x0501f013, 0x649a6403, + 0x4a02621c, 0x00001700, 0x59cc1208, 0x82081580, + 0x0000ffff, 0x05fe079f, 0x0501f00b, 0x591c0407, + 0x90000587, 0x05fe07f6, 0x591c0403, 0x900005a4, + 0x05020005, 0x4d300000, 0x411e6000, 0x0005fc5a, + 0x5c026000, 0x64966403, 0x05fdf792, 0x59cc1408, + 0x41780000, 0x0501fda5, 0x05fe07e9, 0x05fdf7fa, + 0x4933c857, 0x4d3c0000, 0x60067800, 0x05d5fe78, + 0x5c027800, 0x4c580000, 0x6008b000, 0x91a81c02, + 0x91cc140b, 0x05f1fee0, 0x5c00b000, 0x05000003, + 0x64c66403, 0x05fdf77f, 0x0005fc5a, 0x6008b000, + 0x91a81c00, 0x91cc140d, 0x05f1fed7, 0x0502000c, + 0x05e1fde7, 0x0500000a, 0x59300407, 0x90000581, + 0x05020007, 0x59300403, 0x90000582, 0x05020004, + 0x5930000a, 0x81340580, 0x00040c5a, 0x05d9ffdb, + 0x05020009, 0x05d9ffef, 0x05020005, 0x64075014, + 0x6006d800, 0x05d9ff53, 0x0501f003, 0x60040000, + 0x05d9ffa6, 0x1c01f000, 0x05c5f9fb, 0x050200ec, + 0x0501f91e, 0x05fe073f, 0x493a6403, 0x0501f978, + 0x05020003, 0x64ae6403, 0x05fdf75a, 0x64b26403, + 0x05fdf758, 0x4933c857, 0x05e5f8b9, 0x050200e0, + 0x05c5f9ed, 0x050200de, 0x05d9fa05, 0x05fe0731, + 0x59cc0408, 0x4802641b, 0x59cc0208, 0x4802621b, + 0x59cc0807, 0x59340002, 0x82000500, 0x00ffffff, + 0x80040580, 0x05000012, 0x5932481d, 0x59240005, + 0x80040580, 0x0502001e, 0x59cc1408, 0x05f9fe10, + 0x05000020, 0x831c0580, 0xffffffff, 0x05000005, + 0x0505f97c, 0x0500001b, 0x0505fcf7, 0x05000019, + 0x491e602a, 0x64da6403, 0x0501f0bd, 0x59cc1208, + 0x82080580, 0x0000ffff, 0x05000008, 0x05f9fe00, + 0x05000010, 0x591c0202, 0x59cc0c08, 0x80040580, + 0x0502000c, 0x05fdf7ec, 0x59cc1408, 0x60040000, + 0x0501fd3e, 0x05000007, 0x05fdf7e7, 0x4803c856, + 0x6426641c, 0x4a02621c, 0x00001500, 0x0501f005, + 0x4803c856, 0x640e641c, 0x4a02621c, 0x00001700, + 0x64de6403, 0x0501f0a2, 0x4933c857, 0x05e5f87c, + 0x050200a3, 0x05c5f9b0, 0x050200a1, 0x05d9f9c8, + 0x05fe06f4, 0x05d9f8f3, 0x05000045, 0x59cc0407, + 0x4802641b, 0x59cc1207, 0x480a621b, 0x82080580, + 0x0000ffff, 0x05000004, 0x05f9fdd9, 0x05000036, + 0x0501f008, 0x59cc1407, 0x60040000, 0x0501fd1b, + 0x05000031, 0x831c0580, 0xffffffff, 0x0500002e, + 0x59cc0c07, 0x591c0202, 0x80040580, 0x0502002a, + 0x0505fcb9, 0x05000028, 0x591c0416, 0x8c000516, + 0x0502002f, 0x4d300000, 0x411e6000, 0x05f5fd76, + 0x5c026000, 0x641e3a03, 0x59cc0c09, 0x82040d00, + 0x0000ff00, 0x840409c0, 0x90040581, 0x05000009, + 0x90040585, 0x0500000b, 0x90040587, 0x05020011, + 0x42000000, 0x0010b2c3, 0x0505fe67, 0x0501f008, + 0x42000000, 0x0010b2c2, 0x0505fe63, 0x0501f007, + 0x42000000, 0x0010b2c1, 0x0505fe5f, 0x591c0009, + 0x80000540, 0x05000003, 0x59cc2808, 0x0505f12b, + 0x4803c856, 0x6426641c, 0x4a02621c, 0x00002a00, + 0x0501f005, 0x4803c856, 0x640e641c, 0x4a02621c, + 0x00000300, 0x64ee6403, 0x0501f055, 0x4803c856, + 0x642e641c, 0x6402621c, 0x05fdf7fb, 0x4803c856, + 0x641e641c, 0x6402621c, 0x05fdf7f7, 0x59cc0001, + 0x82000580, 0x00fffffe, 0x0502004d, 0x4c080000, + 0x05d9f8b7, 0x05000021, 0x05d9f88e, 0x0505fa47, + 0x0502001c, 0x5932481d, 0x59240200, 0x82000540, + 0x000000e0, 0x48024a00, 0x59a8021b, 0x90000543, + 0x4803521b, 0x59a80018, 0x800000d0, 0x59a8080f, + 0x82040d00, 0x000000ff, 0x80041540, 0x480b500f, + 0x600c0800, 0x05e5fd55, 0x497b501d, 0x8d0c0520, + 0x05000004, 0x4a032804, 0x000007d0, 0x0501f001, + 0x0005fc5a, 0x05c5f9fa, 0x5c001000, 0x1c01f000, + 0x0505fa44, 0x05fdf7fd, 0x5c001000, 0x0005f45a, + 0x0501f829, 0x05000026, 0x653a6403, 0x64066203, + 0x05e5f3b8, 0x05d9f95b, 0x05fe0676, 0x653e6403, + 0x497a601e, 0x59cc0a06, 0x82040d00, 0x000000ff, + 0x800409c0, 0x05fc068f, 0x90040581, 0x05020005, + 0x59cc0808, 0x59a80005, 0x80040580, 0x05fc0689, + 0x90040582, 0x05020006, 0x91cc140b, 0x6008b000, + 0x91341c06, 0x05f1fde0, 0x05fc0682, 0x6406601e, + 0x05fdf680, 0x05d9f943, 0x05fe065e, 0x65426403, + 0x59cc0207, 0x4802601e, 0x05fdf67a, 0x64066203, + 0x42000800, 0x80000040, 0x0005f32e, 0x4803c857, + 0x0005f45a, 0x4d2c0000, 0x4c500000, 0x4c580000, + 0x4c540000, 0x59a80077, 0x82000c80, 0x00000841, + 0x05021021, 0x05b9f910, 0x0500001f, 0x492e6009, + 0x59a80077, 0x48025802, 0x90000403, 0x80000104, + 0x91cca406, 0x90000c8a, 0x05001010, 0x642a5811, + 0x6028b000, 0x912c0406, 0x4000a800, 0x0505fea9, + 0x412c7000, 0x800409c0, 0x05020003, 0x49787001, + 0x0501f00b, 0x05b9f8fc, 0x0500000b, 0x492c7001, + 0x40040000, 0x05fdf7f0, 0x48025811, 0x4000b000, + 0x912c0406, 0x4000a800, 0x0505fe9a, 0x90000541, + 0x0501f005, 0x497b5077, 0x59325809, 0x05b9f91a, + 0x80000580, 0x5c00a800, 0x5c00b000, 0x5c00a000, + 0x5c025800, 0x1c01f000, 0x4d340000, 0x5932680a, + 0x59343400, 0x4933c857, 0x4937c857, 0x481bc857, + 0x05d9f900, 0x5c026800, 0x1c01f000, 0x4933c857, + 0x4c600000, 0x4d3c0000, 0x4d440000, 0x4d340000, + 0x0501f858, 0x05020046, 0x59cc0207, 0x82000d00, + 0x0000ff00, 0x900411c0, 0x59cc000a, 0x82000500, + 0x00ffffff, 0x80081540, 0x480a601e, 0x8c040518, + 0x05000011, 0x60203000, 0x0505fbf3, 0x42000000, + 0x0010b2d5, 0x0505fda4, 0x59240400, 0x8c00050a, + 0x05020005, 0x60082800, 0x60903000, 0x611a8000, + 0x0501fe84, 0x6004c000, 0x417a7800, 0x05c5f84f, + 0x0501f02d, 0x8c04051a, 0x05000029, 0x59cc000a, + 0x59cc3800, 0x821c3d00, 0x00ffffff, 0x05e1fb53, + 0x05d8091c, 0x05020022, 0x5930001d, 0x4c000000, + 0x05d9f910, 0x4926601d, 0x5930000a, 0x4c000000, + 0x59240c00, 0x8c04050a, 0x0502000b, 0x59340c03, + 0x59341802, 0x820c1d00, 0x00ffffff, 0x58002403, + 0x60102800, 0x60903000, 0x611a8000, 0x41301000, + 0x0501fe72, 0x4936600a, 0x60243000, 0x0505fbcc, + 0x42000000, 0x0010b2d5, 0x0505fd77, 0x417a7800, + 0x4178c000, 0x05c5f829, 0x5c000000, 0x4802600a, + 0x5c000000, 0x4802601d, 0x0501f003, 0x90000541, + 0x0501f002, 0x80000580, 0x5c026800, 0x5c028800, + 0x5c027800, 0x5c00c000, 0x1c01f000, 0x4933c857, + 0x59cc0206, 0x90000490, 0x05021004, 0x6402621c, + 0x90000541, 0x0501f002, 0x80000580, 0x1c01f000, + 0x4933c857, 0x6402621c, 0x59cc0407, 0x82000500, + 0x0000ff00, 0x82000580, 0x00000800, 0x0502000d, + 0x59cc0206, 0x59a80877, 0x80040480, 0x0500100a, + 0x59cc0006, 0x82000500, 0x00ff0000, 0x82000d80, + 0x00140000, 0x05000003, 0x82000d80, 0x00100000, + 0x1c01f000, 0x42000000, 0x0010b2ca, 0x0505fd46, + 0x90000541, 0x05fdf7fb, 0x59300403, 0xb0003497, + 0x05b61ceb, 0x91383593, 0x05020006, 0x4803c857, + 0x4c000000, 0x0505fc6c, 0x5c000000, 0x0c01f019, + 0x4933c857, 0x493bc857, 0x913835a7, 0x0500000d, + 0x91383594, 0x0500000b, 0xb13805a1, 0x05000003, + 0xb13805a0, 0x05b60cda, 0x05e5ffe1, 0x05ee0219, + 0x59300203, 0x9000058e, 0x05f80164, 0x05b5fcd4, + 0x493bc857, 0x4937c857, 0x0505fc55, 0x05d5ff75, + 0x601c0800, 0x05d5fc9d, 0x05e5fb72, 0x05edf1a4, + 0x00109584, 0x00109592, 0x00109584, 0x00109584, + 0x00109584, 0x00109592, 0x001095a3, 0x0010966b, + 0x001095ec, 0x0010966b, 0x00109605, 0x0010966b, + 0x0010960a, 0x0010966b, 0x0010960d, 0x0010966b, + 0x0010960d, 0x0010966b, 0x0010966b, 0x00109584, + 0x00109584, 0x00109584, 0x00109584, 0x00109584, + 0x00109584, 0x00109584, 0x00109584, 0x00109584, + 0x00109584, 0x00109584, 0x00109592, 0x00109584, + 0x0010966b, 0x00109584, 0x00109584, 0x0010966b, + 0x00109584, 0x00109651, 0x0010966b, 0x00109584, + 0x00109584, 0x00109584, 0x00109584, 0x0010966b, + 0x0010966b, 0x00109584, 0x0010966b, 0x0010966b, + 0x00109584, 0x0010959e, 0x00109584, 0x00109584, + 0x00109584, 0x00109584, 0x0010960f, 0x0010966b, + 0x00109584, 0x00109584, 0x00109637, 0x0010966b, + 0x00109584, 0x00109584, 0x00109584, 0x00109584, + 0x00109584, 0x00109584, 0x00109584, 0x00109584, + 0x00109584, 0x00109585, 0x00109584, 0x00109584, + 0x00109584, 0x00109584, 0x00109585, 0x00109584, + 0x00109584, 0x00109584, 0x00109585, 0x00109585, + 0x00109585, 0x00109584, 0x00109584, 0x00109584, + 0x00109584, 0x00109584, 0x00109585, 0x00109584, + 0x00109584, 0x00109584, 0x00109584, 0x00109584, + 0x00109584, 0x00109584, 0x00109584, 0x00109584, + 0x05b5fc6b, 0x05f9fb4c, 0x05000007, 0x59a80030, + 0x48026205, 0x643a6203, 0x59a8002e, 0x48026006, + 0x1c01f000, 0x4d2c0000, 0x59325809, 0x05b9f806, + 0x5c025800, 0x0005f45a, 0x59a8002e, 0x48026006, + 0x05f9fb3d, 0x05000007, 0x4a02601c, 0x0010959c, + 0x59a80030, 0x48026205, 0x643a6203, 0x1c01f000, + 0x640a6203, 0x1c01f000, 0x4d3c0000, 0x417a7800, + 0x05d5fc13, 0x5c027800, 0x0501f0c9, 0x05d5ffee, + 0x050000c7, 0x59a8021b, 0x8c000508, 0x0500000e, + 0x5932680a, 0x4c580000, 0x6008b000, 0x91a81c02, + 0x91341406, 0x05f1fc74, 0x80000540, 0x5c00b000, + 0x050200bb, 0x59340200, 0x8400051a, 0x48026a00, + 0x0501f02d, 0x599c0017, 0x8c00050a, 0x05020007, + 0x4d3c0000, 0x417a7800, 0x05d5fbf9, 0x5c027800, + 0x601c0800, 0x05d5fc01, 0x59340212, 0x82000500, + 0x0000ff00, 0x05020014, 0x83440d80, 0x000007fe, + 0x050200a7, 0x05c5f9bb, 0x59a8021b, 0x8c000514, + 0x050000a3, 0x83240580, 0x0010b391, 0x05020005, + 0x4d300000, 0x05c5f829, 0x5c026000, 0x0501f09c, + 0x59a8221b, 0x8c100514, 0x05000099, 0x05c5f991, + 0x0501f097, 0x599c0017, 0x8c00050a, 0x05020094, 0x599c0019, 0x8c00050e, 0x05020091, 0x416c0000, 0x90000582, 0x05020004, 0x59a80016, 0x80000000, - 0x48035016, 0x600c0800, 0x05d5fd95, 0x64066407, - 0x64066203, 0x640a6403, 0x05e5fac8, 0x4ce80000, - 0x6005d000, 0x05e1ffe4, 0x5c01d000, 0x1c01f000, - 0x59340200, 0x8400051a, 0x48026a00, 0x05d9f949, - 0x0500007b, 0x60100800, 0x05d5fd85, 0x0505faa3, - 0x05020077, 0x05f9fb87, 0x05000009, 0x59a80030, + 0x48035016, 0x600c0800, 0x05d5fbdc, 0x64066407, + 0x64066203, 0x640a6403, 0x05e5f9fe, 0x4ce80000, + 0x6005d000, 0x05e1ff1a, 0x5c01d000, 0x1c01f000, + 0x59340200, 0x8400051a, 0x48026a00, 0x05d5ff99, + 0x0500007b, 0x60100800, 0x05d5fbcc, 0x0505fac7, + 0x05020077, 0x05f9fadc, 0x05000009, 0x59a80030, 0x48026205, 0x643a6203, 0x59a8002e, 0x48026006, - 0x4a02601c, 0x00109373, 0x1c01f000, 0x60140800, - 0x05d5fd77, 0x64066407, 0x64066203, 0x640e6403, - 0x05e5f2aa, 0x05d9f93c, 0x05020065, 0x60180800, - 0x0501f86c, 0x0501f062, 0x60100800, 0x05d5fd6c, - 0x05fdf79c, 0x05d9f839, 0x0501f05d, 0x4d300000, - 0x05f9fb6c, 0x0500000c, 0x5930082a, 0x40066000, + 0x4a02601c, 0x001095ff, 0x1c01f000, 0x60140800, + 0x05d5fbbe, 0x64066407, 0x64066203, 0x640e6403, + 0x05e5f1e0, 0x05d5ff8c, 0x05020065, 0x60180800, + 0x0501f86c, 0x0501f062, 0x60100800, 0x05d5fbb3, + 0x05fdf799, 0x05d5fe87, 0x0501f05d, 0x4d300000, + 0x05f9fac1, 0x0500000c, 0x5930082a, 0x40066000, 0x59300416, 0x8c00051e, 0x05020003, 0x5c026000, - 0x0501f055, 0x5c026000, 0x4a02601c, 0x00109393, + 0x0501f055, 0x5c026000, 0x4a02601c, 0x0010961f, 0x0501f051, 0x5c026000, 0x0005f45a, 0x4c340000, - 0x41306800, 0x05edf9b0, 0x05000012, 0x64066203, + 0x41306800, 0x05edf8dc, 0x05000012, 0x64066203, 0x647a6403, 0x58340c1b, 0x4806641b, 0x58340a1b, 0x4806621b, 0x5834002a, 0x4802602a, 0x5834080a, - 0x4806600a, 0x5834081d, 0x4806601d, 0x05f9fb3e, + 0x4806600a, 0x5834081d, 0x4806601d, 0x05f9fa93, 0x64126407, 0x42000800, 0x80000040, 0x0005fb2e, 0x40366000, 0x5c006800, 0x0005f45a, 0x5930082a, 0x4807c857, 0x800409c0, 0x05000031, 0x5804001e, @@ -22231,549 +22448,554 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x84081516, 0x48080c16, 0x58065809, 0x812e59c0, 0x05000023, 0x492fc857, 0x4d300000, 0x40066000, 0x641e6203, 0x417a7800, 0x0005fadc, 0x5c026000, - 0x0501f01b, 0x05f9fb2b, 0x0004045a, 0x5930002a, + 0x0501f01b, 0x05f9fa80, 0x0004045a, 0x5930002a, 0x80000540, 0x05000018, 0x4c340000, 0x40006800, 0x58340407, 0x5c006800, 0x90000583, 0x0006045a, - 0x4a02601c, 0x001093d3, 0x0501f00f, 0x4d300000, - 0x4d1c0000, 0x5932382a, 0x05edf96f, 0x05000004, - 0x4a026416, 0x00000100, 0x05f9f9c3, 0x5c023800, - 0x5c026000, 0x0005f45a, 0x05d5fd0d, 0x05f9fb11, + 0x4a02601c, 0x0010965f, 0x0501f00f, 0x4d300000, + 0x4d1c0000, 0x5932382a, 0x05edf89b, 0x05000004, + 0x4a026416, 0x00000100, 0x05f9f918, 0x5c023800, + 0x5c026000, 0x0005f45a, 0x05d5fb54, 0x05f9fa66, 0x0004045a, 0x497a601c, 0x59a80030, 0x48026205, 0x643a6203, 0x59a8002e, 0x48026006, 0x1c01f000, - 0x4933c857, 0x4807c857, 0x05d5fd01, 0x4d3c0000, - 0x417a7800, 0x05d5fcf3, 0x5c027800, 0x5934000a, - 0x84000520, 0x4802680a, 0x05d5f7c8, 0x59340400, - 0x4803c857, 0x80000110, 0x9000348c, 0x05b61df8, + 0x4933c857, 0x4807c857, 0x05d5fb48, 0x4d3c0000, + 0x417a7800, 0x05d5fb3a, 0x5c027800, 0x5934000a, + 0x84000520, 0x4802680a, 0x05d5f616, 0x59340400, + 0x4803c857, 0x80000110, 0x9000348c, 0x05b61b6c, 0x91383595, 0x05020002, 0x0c01f004, 0x91383596, - 0x05b60df3, 0x0c01f00d, 0x0010746c, 0x0010746c, - 0x0010746c, 0x0010746c, 0x0010746c, 0x0010746c, - 0x00109438, 0x00109416, 0x0010746c, 0x0010746c, - 0x0010746c, 0x0010746c, 0x0010746c, 0x0010746c, - 0x0010746c, 0x0010746c, 0x0010746c, 0x0010746c, - 0x00109438, 0x00109449, 0x0010746c, 0x0010746c, - 0x0010746c, 0x0010746c, 0x4933c857, 0x5932481d, + 0x05b60b67, 0x0c01f00d, 0x00107634, 0x00107634, + 0x00107634, 0x00107634, 0x00107634, 0x00107634, + 0x001096c4, 0x001096a2, 0x00107634, 0x00107634, + 0x00107634, 0x00107634, 0x00107634, 0x00107634, + 0x00107634, 0x00107634, 0x00107634, 0x00107634, + 0x001096c4, 0x001096d5, 0x00107634, 0x00107634, + 0x00107634, 0x00107634, 0x4933c857, 0x5932481d, 0x59240400, 0x8c000508, 0x05000014, 0x813669c0, 0x05000012, 0x59340212, 0x82000500, 0x0000ff00, 0x0500000e, 0x599c0019, 0x8c00050e, 0x0502000b, - 0x4d3c0000, 0x417a7800, 0x05d5fcba, 0x5c027800, - 0x600c0800, 0x05d5fcc2, 0x64066407, 0x64066203, - 0x640a6403, 0x05e5f1f5, 0x59cc0001, 0x59340802, + 0x4d3c0000, 0x417a7800, 0x05d5fb01, 0x5c027800, + 0x600c0800, 0x05d5fb09, 0x64066407, 0x64066203, + 0x640a6403, 0x05e5f12b, 0x59cc0001, 0x59340802, 0x80040580, 0x82000500, 0x00ffffff, 0x0006045a, - 0x59345002, 0x05d5fa8a, 0x482a6802, 0x0005f45a, + 0x59345002, 0x05d5f8d1, 0x482a6802, 0x0005f45a, 0x4933c857, 0x59303403, 0x9018359e, 0x0502000d, 0x91383595, 0x0006045a, 0x4c340000, 0x5930682a, 0x803469c0, 0x05000005, 0x58343416, 0x82183500, 0xffff1fff, 0x48186c16, 0x5c006800, 0x0005f45a, - 0x1c01f000, 0x4933c857, 0x05f1fb07, 0x0006045a, - 0x64066203, 0x64066403, 0x05e5f1d4, 0x493bc857, - 0xb1380591, 0x05020007, 0x05e5fee3, 0x05ee0125, - 0x59300203, 0x90000582, 0x05000062, 0x05b5fd98, + 0x1c01f000, 0x4933c857, 0x05f1fa45, 0x0006045a, + 0x64066203, 0x64066403, 0x05e5f10a, 0x493bc857, + 0xb1380591, 0x05020007, 0x05e5fe19, 0x05ee0051, + 0x59300203, 0x90000582, 0x05000062, 0x05b5fb0c, 0x913805a7, 0x05000015, 0xb1380588, 0x0500000d, 0x91380594, 0x05000011, 0xb13805a1, 0x05000003, - 0xb13805a0, 0x05b60d8e, 0x05e5fed3, 0x05ee0115, - 0x59300203, 0x9000058e, 0x0500053a, 0x05b5fd88, - 0x05e5fecd, 0x05ee010f, 0x59300203, 0x90000584, - 0x0004054c, 0x05b5fd82, 0x4933c857, 0x59300403, - 0xb0000c84, 0x05b61d7e, 0xb0000480, 0x05b41d7c, - 0x40027000, 0x4803c857, 0x0c01f001, 0x0010947b, - 0x0010947c, 0x0010947c, 0x00109492, 0x05b5fd74, - 0x05e5fa56, 0x59325809, 0x812e59c0, 0x05000012, + 0xb13805a0, 0x05b60b02, 0x05e5fe09, 0x05ee0041, + 0x59300203, 0x9000058e, 0x0500054c, 0x05b5fafc, + 0x05e5fe03, 0x05ee003b, 0x59300203, 0x90000584, + 0x0004054c, 0x05b5faf6, 0x4933c857, 0x59300403, + 0xb0000c84, 0x05b61af2, 0xb0000480, 0x05b41af0, + 0x40027000, 0x4803c857, 0x0c01f001, 0x00109707, + 0x00109708, 0x00109708, 0x0010971e, 0x05b5fae8, + 0x05e5f98c, 0x59325809, 0x812e59c0, 0x05000012, 0x832c0500, 0x00ff0000, 0x0500000f, 0x640a6203, 0x5932680a, 0x59340200, 0x8c00050e, 0x0502000a, - 0x60128000, 0x0501fbf8, 0x497a6009, 0x59300006, + 0x60128000, 0x0501fc03, 0x497a6009, 0x59300006, 0x80000540, 0x05020003, 0x59a8002f, 0x48026006, - 0x641e6203, 0x1c01f000, 0x05e5fa40, 0x05f5fe7f, - 0x05ec007f, 0x59325809, 0x05b9f8f6, 0x05edf07c, - 0x05b5fd57, 0x05f9fa57, 0x05000005, 0x59a80030, + 0x641e6203, 0x1c01f000, 0x05e5f976, 0x05f5fdd4, + 0x05e807a7, 0x59325809, 0x05b5fe6a, 0x05e9f7a4, + 0x05b5facb, 0x05f9f9ac, 0x05000005, 0x59a80030, 0x48026205, 0x643a6203, 0x0501f009, 0x59325809, 0x592c040b, 0x8c000502, 0x05000004, 0x641e6203, 0x610e7000, 0x0005f478, 0x64126203, 0x1c01f000, - 0x0501feb5, 0x0004054a, 0x1c01f000, 0x05f9fa45, - 0x05000007, 0x4a02601c, 0x001094b3, 0x59a80030, + 0x0501fec7, 0x0004054a, 0x1c01f000, 0x05f9f99a, + 0x05000007, 0x4a02601c, 0x0010973f, 0x59a80030, 0x48026205, 0x643a6203, 0x1c01f000, 0x64066203, 0x65066403, 0x42027800, 0x80002042, 0x0005f32e, 0xb1380498, 0x05001008, 0xb13805a1, 0x05000004, - 0xb13805a0, 0x05000002, 0x05b5fd31, 0x4933c857, + 0xb13805a0, 0x05000002, 0x05b5faa5, 0x4933c857, 0x1c01f000, 0xb1380591, 0x05000004, 0xb1380581, - 0x05b60d2b, 0x1c01f000, 0x0005faec, 0x0501fecd, - 0x0005f45a, 0xb1380498, 0x05f2162c, 0xb1380492, - 0x05b61d23, 0xb1380489, 0x05b41d21, 0x0c01f001, - 0x001094da, 0x00109505, 0x001094d9, 0x001094d9, - 0x001094d9, 0x001094d9, 0x00109505, 0x001094d9, - 0x00109523, 0x05b5fd16, 0x05f9fa16, 0x0500000b, + 0x05b60a9f, 0x1c01f000, 0x0005faec, 0x0501fedf, + 0x0005f45a, 0xb1380498, 0x05f21575, 0xb1380492, + 0x05b61a97, 0xb1380489, 0x05b41a95, 0x0c01f001, + 0x00109766, 0x00109794, 0x00109765, 0x00109765, + 0x00109765, 0x00109765, 0x00109794, 0x00109765, + 0x001097b2, 0x05b5fa8a, 0x05f9f96b, 0x0500000b, 0x59300416, 0x8c000504, 0x05020008, 0x4a02601c, - 0x001094e6, 0x59a80030, 0x48026205, 0x64426203, + 0x00109772, 0x59a80030, 0x48026205, 0x64426203, 0x65266403, 0x1c01f000, 0x59325809, 0x592c040b, 0x8c00051e, 0x05000010, 0x82000d00, 0x000000c0, - 0x82040d80, 0x00000080, 0x0500000e, 0x59300804, - 0x8c040518, 0x0502000b, 0x59300416, 0x8c000516, - 0x05000003, 0x641e6203, 0x0501f00e, 0x61067000, - 0x0005f570, 0x641e6203, 0x497a6006, 0x0005f2ec, - 0x59325809, 0x592c0c0b, 0x8c04051a, 0x05020003, - 0x0005faec, 0x0005f45a, 0x0501fe5b, 0x05fc07fd, - 0x1c01f000, 0x05e5f9b0, 0x59325809, 0x5932680a, - 0x59340200, 0x8c00050e, 0x0500000d, 0x592c040b, - 0x82000500, 0x000000c0, 0x82000580, 0x00000080, - 0x05000005, 0x592c0010, 0x59301817, 0x800c1c80, - 0x480e6017, 0x640a6203, 0x0501f00c, 0x60128000, - 0x0501fb69, 0x05f9ff9c, 0x59300006, 0x80000540, - 0x05020004, 0x59a8002f, 0x800000c2, 0x48026006, - 0x497a6009, 0x641e6203, 0x1c01f000, 0x4933c857, - 0x05e5fe11, 0x05b60cca, 0x59300203, 0x90000582, - 0x05fc0790, 0x05b5fcc6, 0x641e6203, 0x497a6006, - 0x0005f2ec, 0x641e6203, 0x497a6006, 0x0005f2e7, - 0x59300416, 0x8c00051c, 0x0006055f, 0x59325809, - 0x592c2010, 0x40080000, 0x80102480, 0x59300017, - 0x80102400, 0x48126017, 0x0005f55f, 0x8c04050e, - 0x05020007, 0x641a6203, 0x0501f818, 0x5930002b, - 0x80000540, 0x05ba0d84, 0x0005f2e7, 0x640a6203, - 0x1c01f000, 0x60040800, 0x05b9fd7f, 0x90040581, - 0x00040564, 0x05fdf7e4, 0x59300416, 0x8c00051c, - 0x05000004, 0x05b9fb5f, 0x00040559, 0x1c01f000, - 0x59300013, 0x80000540, 0x05020003, 0x05b9fb59, - 0x00040559, 0x1c01f000, 0x492fc857, 0x480bc857, - 0x8c08053e, 0x05000005, 0x80081080, 0x80081000, - 0x60240800, 0x0501f002, 0x60540800, 0x480a580c, - 0x1c01f000, 0x1c01f000, 0x91380593, 0x05000003, - 0x91380594, 0x05b60c8a, 0x59300416, 0x8c000516, - 0x05b40c87, 0x1c01f000, 0x05b5fc85, 0x59300009, - 0x80000540, 0x05b60c82, 0x1c01f000, 0x59300416, - 0x8c000516, 0x05b40c7e, 0x1c01f000, 0x64126203, - 0x493a6403, 0x42000800, 0x80002001, 0x0005f32e, - 0x640e6203, 0x493a6403, 0x05f9f976, 0x05000007, - 0x59300416, 0x8c00050a, 0x05020004, 0x4a02601c, - 0x00109582, 0x1c01f000, 0x0001f989, 0x59325809, - 0x592c040b, 0x8c00051e, 0x05000011, 0x82000500, - 0x000000c0, 0x82000580, 0x00000080, 0x0500000f, - 0x59300416, 0x8c000512, 0x05020009, 0x8c000510, - 0x05020007, 0x592c040d, 0x80000540, 0x05020004, - 0x82080d40, 0x80003065, 0x0005f320, 0x82080d40, - 0x80002065, 0x0005f320, 0x82080d40, 0x80002042, - 0x0005f320, 0x4933c857, 0x493bc857, 0xb1380484, - 0x05b61c4f, 0xb1380481, 0x05b41c4d, 0x0c01f001, - 0x001095a7, 0x001095b5, 0x001095c7, 0x59325809, - 0x592c040b, 0x8c00051e, 0x05000019, 0x82001d00, - 0x000000c0, 0x820c1d80, 0x000000c0, 0x05000014, - 0x64066203, 0x493a6403, 0x42000800, 0x80002042, - 0x0005f32e, 0x59325809, 0x592c040b, 0x8c00051e, - 0x0500000b, 0x82001d00, 0x000000c0, 0x820c1d80, - 0x000000c0, 0x05000006, 0x64066203, 0x493a6403, - 0x42000800, 0x80002001, 0x0005f32e, 0x497a6009, - 0x497a6006, 0x60128000, 0x0501f2bb, 0x59325809, - 0x592c040b, 0x8c00051e, 0x05fc07f9, 0x82001d00, - 0x000000c0, 0x820c1d80, 0x000000c0, 0x05fc07f4, - 0x640e6203, 0x493a6403, 0x05f9f91e, 0x05000007, - 0x59300416, 0x8c00050a, 0x05020004, 0x4a02601c, - 0x001095da, 0x1c01f000, 0x0001f989, 0x82080d40, - 0x80002065, 0x0005f320, 0x4933c857, 0x493bc857, - 0x83380580, 0x00000085, 0x05000005, 0x83380580, - 0x00000088, 0x05000007, 0x05b5fc09, 0x64266203, - 0x493a6403, 0x42000800, 0x80000040, 0x0005f32e, - 0x83300580, 0x00110284, 0x05b60c01, 0x4d1c0000, - 0x813669c0, 0x05000003, 0x0501fd66, 0x05020056, - 0x59cc1404, 0x41780000, 0x0501f855, 0x05000025, - 0x59cc0204, 0x82001580, 0x0000ffff, 0x05000004, - 0x591c1402, 0x80080580, 0x0502001e, 0x05f9f8f1, - 0x05000010, 0x59cc0005, 0x8c000500, 0x0500000d, - 0x4d300000, 0x411e6000, 0x05f5f961, 0x5c026000, - 0x05000029, 0x591c0416, 0x8400055a, 0x48023c16, - 0x59300416, 0x8400055a, 0x48026416, 0x0501f028, - 0x591c0407, 0x9000051f, 0x90002586, 0x05000005, - 0x90002584, 0x05000029, 0x90002591, 0x05020005, - 0x497a3a05, 0x61502000, 0x05edf858, 0x0501f02e, - 0x59240400, 0x8c00050a, 0x05020004, 0x42023800, - 0xffffffff, 0x05fdf7f8, 0x813669c0, 0x0502000e, - 0x59cc0001, 0x59cc3800, 0x821c3d00, 0x00ffffff, - 0x4c1c0000, 0x05e1f854, 0x5c003800, 0x0502001e, - 0x05c5f90d, 0x05d5fae8, 0x0502001b, 0x4926601d, - 0x4936600a, 0x4a026403, 0x00000087, 0x59cc1204, - 0x82081580, 0x0000ffff, 0x05020003, 0x4a026403, - 0x00000086, 0x4d2c0000, 0x0501fff4, 0x05d9f942, - 0x5c025800, 0x0501f00c, 0x591c0403, 0x900005b8, - 0x05fc07d9, 0x591c0203, 0x90000587, 0x05fe07d9, - 0x4d300000, 0x411e6000, 0x05e9fecd, 0x5c026000, - 0x05fdf7d4, 0x5c023800, 0x1c01f000, 0x4933c857, - 0x480bc857, 0x4c5c0000, 0x4000b800, 0x42002800, - 0x001102e4, 0x41300000, 0x80140580, 0x05000019, - 0x58140203, 0x90000580, 0x05000016, 0x58140202, - 0x80080580, 0x05020013, 0x58140203, 0x9000058f, - 0x05000010, 0x58141c07, 0x900c0585, 0x0500000d, - 0x8c5c0500, 0x05000003, 0x900c0587, 0x05000009, - 0x5930200a, 0x5814000a, 0x800001c0, 0x0500000a, - 0x801021c0, 0x05000003, 0x80100580, 0x05000011, - 0x90142c30, 0x41540000, 0x80140480, 0x05021018, - 0x05fdf7e1, 0x5814002a, 0x801021c0, 0x05000005, - 0x58102002, 0x82102500, 0x00ffffff, 0x05fdf7f3, - 0x8c5c0500, 0x05fe07f3, 0x5930202a, 0x05fdf7ef, - 0x40163800, 0x8c5c0500, 0x05000007, 0x4c080000, - 0x4c140000, 0x0501ff50, 0x5c002800, 0x5c001000, - 0x05fc07e8, 0x81300540, 0x0501f009, 0x8c5c0500, - 0x05000007, 0x40080800, 0x42023800, 0xffffffff, - 0x05d9f8fa, 0x05fc07f8, 0x80000580, 0x5c00b800, - 0x1c01f000, 0x4933c857, 0x83300580, 0x00110254, - 0x0502002d, 0x64026203, 0x91380593, 0x05020022, - 0x59300403, 0x82000580, 0x00000092, 0x05b60b54, - 0x59a80067, 0x59325809, 0x812e59c0, 0x05000005, - 0x812c0580, 0x05b60b4e, 0x592c0000, 0x497a5800, - 0x800001c0, 0x05000004, 0x48035067, 0x05e9fde7, - 0x0501f003, 0x497b5067, 0x497b5068, 0x812e59c0, - 0x05000014, 0x592c0205, 0xb0000595, 0x05b406dd, - 0x91380593, 0x05020003, 0x64025a07, 0x0001f35b, - 0x64c65a07, 0x64125812, 0x4a025813, 0x000000ff, - 0x0001f35b, 0x913805a7, 0x05000003, 0x91380594, - 0x05b60b33, 0x493bc857, 0x05e5f814, 0x05fdf7d9, - 0x1c01f000, 0x4933c857, 0x91380593, 0x0502000c, - 0x59300403, 0x4803c857, 0x82000c80, 0x00000085, - 0x05b41b27, 0x82000c80, 0x00000093, 0x05b61b24, - 0x82000480, 0x00000085, 0x0c01f01c, 0x913805a7, - 0x0500000f, 0x91380594, 0x0500000d, 0x493bc857, - 0xb13805a1, 0x05000003, 0xb13805a0, 0x05020007, - 0x05e5fc5d, 0x05ea069f, 0x59300203, 0x9000058e, - 0x050002b5, 0x05b5fb12, 0x05e9f69a, 0x493bc857, - 0x05e1fff2, 0x59325809, 0x812e59c0, 0x05e80630, - 0x64c65a07, 0x64125812, 0x4a025813, 0x000000ff, - 0x0001fb5b, 0x05e9f62a, 0x001096f8, 0x001096fc, - 0x001096fc, 0x001096f8, 0x001096f8, 0x001096f8, - 0x001096f8, 0x001096f8, 0x001096f8, 0x001096f8, - 0x001096f8, 0x001096f8, 0x001096f8, 0x001096f9, - 0x05b5faf7, 0x59325809, 0x64025a07, 0x0001fb5b, - 0x0005f45a, 0x4933c857, 0x42000000, 0x0010b066, - 0x0505f895, 0x0501fc93, 0x497a6205, 0x602e8000, - 0x0501f805, 0x641a6407, 0x641e6203, 0x497a6006, - 0x1c01f000, 0x4933c857, 0x4943c857, 0x59300407, - 0x90000587, 0x05020002, 0x1c01f000, 0x05e5f86e, - 0x4df00000, 0x05f5fc01, 0x0500000a, 0x59300809, - 0x58040000, 0x80001540, 0x05000006, 0x49780800, - 0x4d2c0000, 0x400a5800, 0x0501f967, 0x5c025800, - 0x05f5f96a, 0x90000c91, 0x05b61ad1, 0x0c01f001, - 0x00109744, 0x00109747, 0x00109731, 0x00109753, - 0x00109761, 0x00109731, 0x00109731, 0x00109731, - 0x00109731, 0x00109731, 0x00109731, 0x00109731, - 0x00109731, 0x00109731, 0x00109731, 0x00109731, - 0x00109731, 0x05f9fd84, 0x4d400000, 0x5930002b, - 0x80000540, 0x05000004, 0x41400800, 0x05b9fb8e, - 0x40068000, 0x4d2c0000, 0x59325809, 0x05f5fbd7, - 0x05020945, 0x4c5c0000, 0x5930b80a, 0x05e9fdd4, - 0x485e600a, 0x5c00b800, 0x5c025800, 0x5c028000, - 0x5c03e000, 0x05e40024, 0x1c01f000, 0x598c000b, - 0x81300580, 0x05020003, 0x05e5fb42, 0x05020012, - 0x0201f800, 0x0010eee3, 0x80c40040, 0x05fc07e2, - 0x05e1ff47, 0x0500000c, 0x05b5fa9d, 0x05f5f925, - 0x05020003, 0x05e5fb02, 0x05020007, 0x0201f800, - 0x0010ed56, 0x80c40040, 0x05fc07d7, 0x05e1ff3c, - 0x05b60a93, 0x59300203, 0x90000c91, 0x05b61a90, - 0x0c01f7c0, 0x05b9fc76, 0x05fdf7cf, 0x4933c857, - 0x4d240000, 0x4d440000, 0x4d340000, 0x59cc3800, - 0x821c3d00, 0x00ffffff, 0x59cc0007, 0x4c000000, - 0x59cc0001, 0x82000500, 0x00ffffff, 0x82000d80, - 0x00fffffe, 0x5c000000, 0x05020005, 0x801c0d80, - 0x0502004c, 0x42000000, 0x00fffffe, 0x05ddff06, - 0x05d40d7c, 0x05020047, 0x5930001d, 0x4c000000, - 0x05d5fd70, 0x4926601d, 0x5930000a, 0x4c000000, - 0x59242c00, 0x8c14050a, 0x05020011, 0x81342d80, - 0x05000002, 0x60102800, 0x58002403, 0x59340c03, - 0x59341802, 0x820c1d00, 0x00ffffff, 0x60143000, - 0x59cc4008, 0x59cc3809, 0x9c2041c0, 0x9c1c39c0, - 0x611a8000, 0x41301000, 0x0501f911, 0x4936600a, - 0x83440d80, 0x000007fe, 0x0502000f, 0x60683000, - 0x0501fe56, 0x42000000, 0x0010b053, 0x0501fffa, - 0x4d3c0000, 0x4d400000, 0x60a68000, 0x05c1ff88, - 0x602a7800, 0x05c1ffd2, 0x5c028000, 0x5c027800, - 0x0501f00e, 0x602c3000, 0x0501fe48, 0x42000000, - 0x0010b053, 0x0501ffec, 0x4d3c0000, 0x4d400000, - 0x60a68000, 0x417a7800, 0x0201f800, 0x0010ec6c, - 0x5c028000, 0x5c027800, 0x5c000000, 0x4802600a, - 0x5c000000, 0x4802601d, 0x59cc0007, 0x83440d80, - 0x000007fe, 0x05020005, 0x42000000, 0x00fffffe, - 0x4a026c00, 0x00000707, 0x48026802, 0x80000580, - 0x5c026800, 0x5c028800, 0x5c024800, 0x1c01f000, - 0x4933c857, 0x4c040000, 0x59a80077, 0xb00005b4, - 0x05020040, 0x59cc0a08, 0x82040480, 0x00000100, - 0x05001033, 0x59cc0c08, 0x82040500, 0x00008000, - 0x05000035, 0x59a80013, 0x80000540, 0x05020009, - 0x5930100a, 0x58080212, 0x82000500, 0x0000ff00, - 0x05000004, 0x82040500, 0x00000800, 0x0500002a, - 0x59cc0c09, 0x80040840, 0x05001024, 0x59a80a1b, - 0x8c040506, 0x05000004, 0x59cc0c0f, 0x8c04051e, - 0x05020012, 0x59cc0a17, 0x800409c0, 0x05020012, - 0x59cc0a18, 0x82040480, 0x00000100, 0x05001014, - 0x59cc0c18, 0x800409c0, 0x0502000e, 0x59cc0c19, - 0x80040840, 0x05001011, 0x59cc0c1a, 0x80040840, - 0x05001011, 0x0501f017, 0x4a02621c, 0x00000100, - 0x0501f012, 0x4a02621c, 0x00000300, 0x0501f00f, - 0x4a02621c, 0x00000500, 0x0501f00c, 0x4a02621c, - 0x00000700, 0x0501f009, 0x4a02621c, 0x00000900, - 0x0501f006, 0x4a02621c, 0x00000f00, 0x0501f003, - 0x4a02621c, 0x00002d00, 0x90000541, 0x0501f002, - 0x80000580, 0x5c000800, 0x1c01f000, 0x59cc0407, - 0x4803c857, 0x82000580, 0x00000800, 0x05000002, - 0x6402621c, 0x1c01f000, 0x4933c857, 0x4c580000, - 0x59cc000c, 0x59340802, 0x82040d00, 0x00ffffff, - 0x80040580, 0x0502000a, 0x91cc1408, 0x6008b000, - 0x91341c06, 0x05f1f82b, 0x05020005, 0x91cc140a, - 0x6008b000, 0x91341c08, 0x05f1f826, 0x5c00b000, - 0x1c01f000, 0x4933c857, 0x4c580000, 0x91cc140b, - 0x6008b000, 0x91341c06, 0x05f1f81e, 0x05020008, - 0x91cc140d, 0x6008b000, 0x91341c08, 0x05f1f819, - 0x05000014, 0x4933c856, 0x4933c856, 0x4933c857, - 0x59340009, 0x4803c857, 0x5934000e, 0x4803c857, - 0x59340008, 0x4803c857, 0x5934000d, 0x4803c857, - 0x59340007, 0x4803c857, 0x5934000c, 0x4803c857, - 0x59340006, 0x4803c857, 0x5934000b, 0x4803c857, - 0x5c00b000, 0x1c01f000, 0x4933c857, 0x813261c0, - 0x05000025, 0x83300d80, 0x00110284, 0x05000022, - 0x8d3c0506, 0x05020020, 0x59300c07, 0x90040581, - 0x05000008, 0x90040582, 0x0502001b, 0x59300229, - 0x90000581, 0x05020018, 0x59300c18, 0x0501f002, - 0x59300c03, 0x900405b9, 0x05000003, 0x900405b5, - 0x05020011, 0x4d300000, 0x4d1c0000, 0x5932602a, - 0x4933c857, 0x05f5ff56, 0x05b40989, 0x591c001e, - 0x497a381e, 0x591c0c16, 0x84040d02, 0x48063c16, - 0x5c023800, 0x5c026000, 0x81300580, 0x05b60980, - 0x497a602a, 0x1c01f000, 0x5c000000, 0x4c000000, - 0x4803c857, 0x4d3c0000, 0x60067800, 0x05d5f869, - 0x5c027800, 0x4c580000, 0x6008b000, 0x91a81c02, - 0x91cc140b, 0x05edffcf, 0x5c00b000, 0x80000540, - 0x1c01f000, 0x492fc857, 0x4943c857, 0x59a8000c, - 0x812c0480, 0x0500100f, 0x59a8000a, 0x812c0480, - 0x0502100c, 0x592c0000, 0x80005d40, 0x05000007, - 0x497a5800, 0x49425a07, 0x4c2c0000, 0x0001fb5b, - 0x5c025800, 0x05fdf7f8, 0x49425a07, 0x0001f35b, - 0x1c01f000, 0x61fc21ff, 0x5930100a, 0x800811c0, - 0x05000002, 0x58082403, 0x41301000, 0x0501f008, - 0x40682800, 0x406c3000, 0x41781000, 0x41442000, - 0x0501f003, 0x41781000, 0x61fc21ff, 0x5c000000, - 0x4c000000, 0x4803c857, 0x480bc857, 0x4813c857, - 0x492fc857, 0x4943c857, 0x4d2c0000, 0x4c040000, - 0x4c080000, 0x4c0c0000, 0x4c100000, 0x4c140000, - 0x4c180000, 0x4c1c0000, 0x4c200000, 0x05b5fcc9, - 0x05b4093b, 0x5c004000, 0x5c003800, 0x5c003000, - 0x5c002800, 0x5c002000, 0x5c001800, 0x5c001000, - 0x5c000800, 0x4a025805, 0x0000010d, 0x800811c0, - 0x05000012, 0x914005a9, 0x0502000c, 0x90180582, - 0x05000007, 0x90180583, 0x05000005, 0x90180588, - 0x05000003, 0x90180589, 0x05020004, 0x4a02580a, - 0xffffffff, 0x0501f002, 0x480a580a, 0x58080202, - 0x48025c14, 0x0501f005, 0x4a02580a, 0xffffffff, - 0x4a025c14, 0x0000ffff, 0xb1400586, 0x05000002, - 0x41782800, 0x480e580d, 0x4806580e, 0x4822580f, - 0x481e5810, 0x48165a08, 0x481a5c09, 0x49425a09, - 0x48125a07, 0x82100580, 0x0000ffff, 0x05000011, - 0x4d440000, 0x4d340000, 0x40128800, 0x83440480, - 0x000007f0, 0x05001003, 0x05d5fc0a, 0x0501f002, - 0x0001fae7, 0x05b60902, 0x59340002, 0x82000500, - 0x00ffffff, 0x48025813, 0x5c026800, 0x5c028800, - 0x497a5800, 0x497a5c05, 0x812000d0, 0x48025c11, - 0x0501fc4c, 0x5c025800, 0x1c01f000, 0x5c000000, - 0x4c000000, 0x4803c857, 0x480bc857, 0x480fc857, - 0x4813c857, 0x4817c857, 0x4d2c0000, 0x4c080000, - 0x4c0c0000, 0x4c100000, 0x4c140000, 0x05b5fc75, - 0x05b408e7, 0x5c002800, 0x5c002000, 0x5c001800, - 0x5c001000, 0x05011000, 0x912c0405, 0x4803c840, - 0x6443c842, 0x40000000, 0x05fd17ff, 0x4a025805, - 0x0000010d, 0x65265a09, 0x480a5a0b, 0x480e5c0b, - 0x48125a0c, 0x48165c0c, 0x82080580, 0x00008014, - 0x05020054, 0x820c0580, 0x0000ffff, 0x05020051, - 0x90100586, 0x0502004f, 0x4d240000, 0x42024800, - 0x0010b111, 0x59240005, 0x5c024800, 0x05d9f906, - 0x05000009, 0x82000d00, 0x00ffff00, 0x05020006, - 0x82000c00, 0x00102013, 0x50040800, 0x80040910, - 0x48065a0d, 0x82000d00, 0x0000ffff, 0x48065c0d, - 0x80000120, 0x48025a0e, 0x59a8021b, 0x82001500, - 0x00003500, 0x480a5a0f, 0x8c000502, 0x05000016, - 0x8c000506, 0x05000006, 0x90000d0a, 0x90040d8a, - 0x05020003, 0x64065c0e, 0x0501f018, 0x8c00050a, - 0x05000006, 0x90000d22, 0x90040da2, 0x05020003, - 0x640e5c0e, 0x0501f011, 0x8c000508, 0x05000006, - 0x90000d12, 0x90040d92, 0x05020003, 0x640a5c0e, - 0x0501f00a, 0x05d9f8dc, 0x05020003, 0x64125c0e, - 0x0501f006, 0x8c000506, 0x05000003, 0x64165c0e, - 0x0501f002, 0x64025c0e, 0x59a8002e, 0x48025c0f, - 0x59a8002f, 0x48025a10, 0x59c40801, 0x82040d00, - 0x00018000, 0x90040580, 0x05020003, 0x64025c10, - 0x0501f00c, 0x82040580, 0x00008000, 0x05020003, - 0x64065c10, 0x0501f007, 0x82040580, 0x00010000, - 0x05020003, 0x640e5c10, 0x0501f002, 0x64125c10, - 0x0501fbd4, 0x5c025800, 0x1c01f000, 0x0501f805, - 0x60058800, 0x05000002, 0x60018800, 0x1c01f000, - 0x5930080a, 0x800409c0, 0x05000004, 0x58040403, - 0x81440580, 0x1c01f000, 0x90000541, 0x05fdf7fe, - 0x4933c857, 0xb13805a1, 0x05000003, 0xb13805a0, - 0x0502000c, 0x5932680a, 0x59340200, 0x8c00050e, - 0x05020002, 0x497a6205, 0x5930001c, 0x80000540, - 0x0004045a, 0x497a601c, 0x0801f800, 0x1c01f000, - 0x1c01f000, 0x4933c857, 0xb13805a1, 0x05000003, - 0xb13805a0, 0x05ea03e3, 0x59303403, 0x82180580, - 0x00000086, 0x05e8037a, 0x82180580, 0x00000087, - 0x05e80377, 0x497a6205, 0x642a6203, 0x1c01f000, - 0x4933c857, 0xb13805a1, 0x05000003, 0xb13805a0, - 0x05020008, 0x59300c03, 0x4807c857, 0xb004048a, - 0x05b61847, 0xb0040481, 0x05b41845, 0x0c01f002, - 0x1c01f000, 0x001099ba, 0x001099b7, 0x001099c7, - 0x001099b6, 0x001099b6, 0x001099b6, 0x001099b6, - 0x001099b6, 0x001099c7, 0x05b5f839, 0x497a6205, - 0x64126203, 0x1c01f000, 0x497a6205, 0x59325809, - 0x832c0500, 0x00ff0000, 0x05000004, 0x592c0c0b, - 0x8c04051a, 0x05020003, 0x0005faec, 0x0005f45a, - 0x0501f999, 0x05fc07fd, 0x1c01f000, 0x497a6205, - 0x59cc0002, 0x90000530, 0x90000590, 0x05f4045b, - 0x5930001c, 0x80000540, 0x05000004, 0x497a601c, + 0x82040d80, 0x00000080, 0x05000011, 0x59300804, + 0x8c040518, 0x0502000e, 0x59300416, 0x8c000516, + 0x05000003, 0x641e6203, 0x0501f011, 0x61067000, + 0x0005f570, 0x641e6203, 0x497a6006, 0x59300416, + 0x8c000516, 0x0502000a, 0x0005f2ec, 0x59325809, + 0x592c0c0b, 0x8c04051a, 0x05020003, 0x0005faec, + 0x0005f45a, 0x0501fe6a, 0x05fc07fd, 0x1c01f000, + 0x05e5f8e3, 0x59325809, 0x5932680a, 0x59340200, + 0x8c00050e, 0x0500000d, 0x592c040b, 0x82000500, + 0x000000c0, 0x82000580, 0x00000080, 0x05000005, + 0x592c0010, 0x59301817, 0x800c1c80, 0x480e6017, + 0x640a6203, 0x0501f00c, 0x60128000, 0x0501fb71, + 0x05f9fef3, 0x59300006, 0x80000540, 0x05020004, + 0x59a8002f, 0x800000c2, 0x48026006, 0x497a6009, + 0x641e6203, 0x1c01f000, 0x4933c857, 0x05e5fd44, + 0x05b60a3b, 0x59300203, 0x90000582, 0x05fc078d, + 0x05b5fa37, 0x641e6203, 0x497a6006, 0x0005f2ec, + 0x641e6203, 0x497a6006, 0x0005f2e7, 0x59300416, + 0x8c00051c, 0x0006055f, 0x59325809, 0x592c2010, + 0x40080000, 0x80102480, 0x59300017, 0x80102400, + 0x48126017, 0x0005f55f, 0x8c04050e, 0x05020007, + 0x641a6203, 0x0501f818, 0x5930002b, 0x80000540, + 0x05ba0af5, 0x0005f2e7, 0x640a6203, 0x1c01f000, + 0x60040800, 0x05b9faf0, 0x90040581, 0x00040564, + 0x05fdf7e4, 0x59300416, 0x8c00051c, 0x05000004, + 0x05b9f8ce, 0x00040559, 0x1c01f000, 0x59300013, + 0x80000540, 0x05020003, 0x05b9f8c8, 0x00040559, + 0x1c01f000, 0x492fc857, 0x480bc857, 0x8c08053e, + 0x05000005, 0x80081080, 0x80081000, 0x60240800, + 0x0501f002, 0x60540800, 0x480a580c, 0x1c01f000, + 0x1c01f000, 0x91380593, 0x05000003, 0x91380594, + 0x05b609fb, 0x59300416, 0x8c000516, 0x05b409f8, + 0x1c01f000, 0x05b5f9f6, 0x59300009, 0x80000540, + 0x05b609f3, 0x1c01f000, 0x59300416, 0x8c000516, + 0x05b409ef, 0x1c01f000, 0x64126203, 0x493a6403, + 0x42000800, 0x80002001, 0x0005f32e, 0x640e6203, + 0x493a6403, 0x05f9f8c8, 0x05000007, 0x59300416, + 0x8c00050a, 0x05020004, 0x4a02601c, 0x00109811, + 0x1c01f000, 0x0001f989, 0x59325809, 0x592c040b, + 0x8c00051e, 0x05000011, 0x82000500, 0x000000c0, + 0x82000580, 0x00000080, 0x0500000f, 0x59300416, + 0x8c000512, 0x05020009, 0x8c000510, 0x05020007, + 0x592c040d, 0x80000540, 0x05020004, 0x82080d40, + 0x80003065, 0x0005f320, 0x82080d40, 0x80002065, + 0x0005f320, 0x82080d40, 0x80002042, 0x0005f320, + 0x4933c857, 0x493bc857, 0xb1380484, 0x05b619c0, + 0xb1380481, 0x05b419be, 0x0c01f001, 0x00109836, + 0x00109844, 0x00109856, 0x59325809, 0x592c040b, + 0x8c00051e, 0x05000019, 0x82001d00, 0x000000c0, + 0x820c1d80, 0x000000c0, 0x05000014, 0x64066203, + 0x493a6403, 0x42000800, 0x80002042, 0x0005f32e, + 0x59325809, 0x592c040b, 0x8c00051e, 0x0500000b, + 0x82001d00, 0x000000c0, 0x820c1d80, 0x000000c0, + 0x05000006, 0x64066203, 0x493a6403, 0x42000800, + 0x80002001, 0x0005f32e, 0x497a6009, 0x497a6006, + 0x60128000, 0x0501f2c3, 0x59325809, 0x592c040b, + 0x8c00051e, 0x05fc07f9, 0x82001d00, 0x000000c0, + 0x820c1d80, 0x000000c0, 0x05fc07f4, 0x640e6203, + 0x493a6403, 0x05f9f870, 0x05000007, 0x59300416, + 0x8c00050a, 0x05020004, 0x4a02601c, 0x00109869, + 0x1c01f000, 0x0001f989, 0x82080d40, 0x80002065, + 0x0005f320, 0x4933c857, 0x493bc857, 0x83380580, + 0x00000085, 0x05000005, 0x83380580, 0x00000088, + 0x05000007, 0x05b5f97a, 0x64266203, 0x493a6403, + 0x42000800, 0x80000040, 0x0005f32e, 0x83300580, + 0x001104b4, 0x05b60972, 0x4d1c0000, 0x813669c0, + 0x05000003, 0x0501fd75, 0x05020056, 0x59cc1404, + 0x41780000, 0x0501f855, 0x05000025, 0x59cc0204, + 0x82001580, 0x0000ffff, 0x05000004, 0x591c1402, + 0x80080580, 0x0502001e, 0x05f9f843, 0x05000010, + 0x59cc0005, 0x8c000500, 0x0500000d, 0x4d300000, + 0x411e6000, 0x05f5f8b0, 0x5c026000, 0x05000029, + 0x591c0416, 0x8400055a, 0x48023c16, 0x59300416, + 0x8400055a, 0x48026416, 0x0501f028, 0x591c0407, + 0x9000051f, 0x90002586, 0x05000005, 0x90002584, + 0x05000029, 0x90002591, 0x05020005, 0x497a3a05, + 0x61502000, 0x05e9ff81, 0x0501f02e, 0x59240400, + 0x8c00050a, 0x05020004, 0x42023800, 0xffffffff, + 0x05fdf7f8, 0x813669c0, 0x0502000e, 0x59cc0001, + 0x59cc3800, 0x821c3d00, 0x00ffffff, 0x4c1c0000, + 0x05ddff4e, 0x5c003800, 0x0502001e, 0x05c1fed7, + 0x05d5f92f, 0x0502001b, 0x4926601d, 0x4936600a, + 0x4a026403, 0x00000087, 0x59cc1204, 0x82081580, + 0x0000ffff, 0x05020003, 0x4a026403, 0x00000086, + 0x4d2c0000, 0x0505f815, 0x05d5ff92, 0x5c025800, + 0x0501f00c, 0x591c0403, 0x900005b8, 0x05fc07d9, + 0x591c0203, 0x90000587, 0x05fe07d9, 0x4d300000, + 0x411e6000, 0x05e9fdf2, 0x5c026000, 0x05fdf7d4, + 0x5c023800, 0x1c01f000, 0x4933c857, 0x480bc857, + 0x4c5c0000, 0x4000b800, 0x42002800, 0x00110514, + 0x41300000, 0x80140580, 0x0500001c, 0x58140203, + 0x90000580, 0x05000019, 0x58140202, 0x80080580, + 0x05020016, 0x58140203, 0x9000058f, 0x05000013, + 0x58141c07, 0x900c0585, 0x05000010, 0x8c5c0500, + 0x05000003, 0x900c0587, 0x0500000c, 0x5930200a, + 0x5814000a, 0x800001c0, 0x0500000d, 0x82001d80, + 0x0010ce8f, 0x0500000a, 0x801021c0, 0x05000003, + 0x80100580, 0x05000011, 0x90142c30, 0x41540000, + 0x80140480, 0x0502101d, 0x05fdf7de, 0x5814002a, + 0x801021c0, 0x05000005, 0x58102002, 0x82102500, + 0x00ffffff, 0x05fdf7f3, 0x8c5c0500, 0x05fe07f3, + 0x5930202a, 0x05fdf7ef, 0x40163800, 0x8c5c0500, + 0x05000007, 0x4c080000, 0x4c140000, 0x0501ff6e, + 0x5c002800, 0x5c001000, 0x05fc07e8, 0x591c000a, + 0x800001c0, 0x05020003, 0x5930000a, 0x4802380a, + 0x81300540, 0x0501f009, 0x8c5c0500, 0x05000007, + 0x40080800, 0x42023800, 0xffffffff, 0x05d5ff42, + 0x05fc07f3, 0x80000580, 0x5c00b800, 0x1c01f000, + 0x4933c857, 0x83300580, 0x00110484, 0x0502002d, + 0x64026203, 0x91380593, 0x05020022, 0x59300403, + 0x82000580, 0x00000092, 0x05b608bd, 0x59a80067, + 0x59325809, 0x812e59c0, 0x05000005, 0x812c0580, + 0x05b608b7, 0x592c0000, 0x497a5800, 0x800001c0, + 0x05000004, 0x48035067, 0x05e9fd04, 0x0501f003, + 0x497b5067, 0x497b5068, 0x812e59c0, 0x05000014, + 0x592c0205, 0xb0000595, 0x05b40446, 0x91380593, + 0x05020003, 0x64025a07, 0x0001f35b, 0x64c65a07, + 0x64125812, 0x4a025813, 0x000000ff, 0x0001f35b, + 0x913805a7, 0x05000003, 0x91380594, 0x05b6089c, + 0x493bc857, 0x05e1ff3f, 0x05fdf7d9, 0x1c01f000, + 0x4933c857, 0x91380593, 0x0502000c, 0x59300403, + 0x4803c857, 0x82000c80, 0x00000085, 0x05b41890, + 0x82000c80, 0x00000093, 0x05b6188d, 0x82000480, + 0x00000085, 0x0c01f01c, 0x913805a7, 0x0500000f, + 0x91380594, 0x0500000d, 0x493bc857, 0xb13805a1, + 0x05000003, 0xb13805a0, 0x05020007, 0x05e5fb88, + 0x05ea05c0, 0x59300203, 0x9000058e, 0x050002bc, + 0x05b5f87b, 0x05e9f5bb, 0x493bc857, 0x05e1ff1d, + 0x59325809, 0x812e59c0, 0x05e8054d, 0x64c65a07, + 0x64125812, 0x4a025813, 0x000000ff, 0x0001fb5b, + 0x05e9f547, 0x0010998f, 0x00109993, 0x00109993, + 0x0010998f, 0x0010998f, 0x0010998f, 0x0010998f, + 0x0010998f, 0x0010998f, 0x0010998f, 0x0010998f, + 0x0010998f, 0x0010998f, 0x00109990, 0x05b5f860, + 0x59325809, 0x64025a07, 0x0001fb5b, 0x0005f45a, + 0x4933c857, 0x42000000, 0x0010b2e6, 0x0505f8ae, + 0x0501fc9a, 0x497a6205, 0x602e8000, 0x0501f805, + 0x641a6407, 0x641e6203, 0x497a6006, 0x1c01f000, + 0x4933c857, 0x4943c857, 0x59300407, 0x90000587, + 0x05020002, 0x1c01f000, 0x05e1ff99, 0x4df00000, + 0x05f5fb4b, 0x0500000a, 0x59300809, 0x58040000, + 0x80001540, 0x05000006, 0x49780800, 0x4d2c0000, + 0x400a5800, 0x0501f967, 0x5c025800, 0x05f5f8b1, + 0x90000c91, 0x05b6183a, 0x0c01f001, 0x001099db, + 0x001099de, 0x001099c8, 0x001099ea, 0x001099f8, + 0x001099c8, 0x001099c8, 0x001099c8, 0x001099c8, + 0x001099c8, 0x001099c8, 0x001099c8, 0x001099c8, + 0x001099c8, 0x001099c8, 0x001099c8, 0x001099c8, + 0x05f9fcd3, 0x4d400000, 0x5930002b, 0x80000540, + 0x05000004, 0x41400800, 0x05b9f8f7, 0x40068000, + 0x4d2c0000, 0x59325809, 0x05f5fb21, 0x05020945, + 0x4c5c0000, 0x5930b80a, 0x05e9fcf1, 0x485e600a, + 0x5c00b800, 0x5c025800, 0x5c028000, 0x5c03e000, + 0x05e0074f, 0x1c01f000, 0x598c000b, 0x81300580, + 0x05020003, 0x05e5fa6d, 0x05020012, 0x0201f800, + 0x0010f0f2, 0x80c40040, 0x05fc07e2, 0x05e1fe72, + 0x0500000c, 0x05b5f806, 0x05f5f86c, 0x05020003, + 0x05e5fa2d, 0x05020007, 0x0201f800, 0x0010ef65, + 0x80c40040, 0x05fc07d7, 0x05e1fe67, 0x05b20ffc, + 0x59300203, 0x90000c91, 0x05b21ff9, 0x0c01f7c0, + 0x05b9f9df, 0x05fdf7cf, 0x4933c857, 0x4d240000, + 0x4d440000, 0x4d340000, 0x59cc3800, 0x821c3d00, + 0x00ffffff, 0x59cc0007, 0x4c000000, 0x59cc0001, + 0x82000500, 0x00ffffff, 0x82000d80, 0x00fffffe, + 0x5c000000, 0x05020005, 0x801c0d80, 0x0502004c, + 0x42000000, 0x00fffffe, 0x05ddfdf8, 0x05d40bc1, + 0x05020047, 0x5930001d, 0x4c000000, 0x05d5fbb5, + 0x4926601d, 0x5930000a, 0x4c000000, 0x59242c00, + 0x8c14050a, 0x05020011, 0x81342d80, 0x05000002, + 0x60102800, 0x58002403, 0x59340c03, 0x59341802, + 0x820c1d00, 0x00ffffff, 0x60143000, 0x59cc4008, + 0x59cc3809, 0x9c2041c0, 0x9c1c39c0, 0x611a8000, + 0x41301000, 0x0501f911, 0x4936600a, 0x83440d80, + 0x000007fe, 0x0502000f, 0x60683000, 0x0501fe6f, + 0x42000000, 0x0010b2d3, 0x0505f813, 0x4d3c0000, + 0x4d400000, 0x60a68000, 0x05c1fd4a, 0x602a7800, + 0x05c1fd94, 0x5c028000, 0x5c027800, 0x0501f00e, + 0x602c3000, 0x0501fe61, 0x42000000, 0x0010b2d3, + 0x0505f805, 0x4d3c0000, 0x4d400000, 0x60a68000, + 0x417a7800, 0x0201f800, 0x0010ee7a, 0x5c028000, + 0x5c027800, 0x5c000000, 0x4802600a, 0x5c000000, + 0x4802601d, 0x59cc0007, 0x83440d80, 0x000007fe, + 0x05020005, 0x42000000, 0x00fffffe, 0x4a026c00, + 0x00000707, 0x48026802, 0x80000580, 0x5c026800, + 0x5c028800, 0x5c024800, 0x1c01f000, 0x4933c857, + 0x4c040000, 0x59a80077, 0xb00005b4, 0x05020040, + 0x59cc0a08, 0x82040480, 0x00000100, 0x05001033, + 0x59cc0c08, 0x82040500, 0x00008000, 0x05000035, + 0x59a80013, 0x80000540, 0x05020009, 0x5930100a, + 0x58080212, 0x82000500, 0x0000ff00, 0x05000004, + 0x82040500, 0x00000800, 0x0500002a, 0x59cc0c09, + 0x80040840, 0x05001024, 0x59a80a1b, 0x8c040506, + 0x05000004, 0x59cc0c0f, 0x8c04051e, 0x05020012, + 0x59cc0a17, 0x800409c0, 0x05020012, 0x59cc0a18, + 0x82040480, 0x00000100, 0x05001014, 0x59cc0c18, + 0x800409c0, 0x0502000e, 0x59cc0c19, 0x80040840, + 0x05001011, 0x59cc0c1a, 0x80040840, 0x05001011, + 0x0501f017, 0x4a02621c, 0x00000100, 0x0501f012, + 0x4a02621c, 0x00000300, 0x0501f00f, 0x4a02621c, + 0x00000500, 0x0501f00c, 0x4a02621c, 0x00000700, + 0x0501f009, 0x4a02621c, 0x00000900, 0x0501f006, + 0x4a02621c, 0x00000f00, 0x0501f003, 0x4a02621c, + 0x00002d00, 0x90000541, 0x0501f002, 0x80000580, + 0x5c000800, 0x1c01f000, 0x59cc0407, 0x4803c857, + 0x82000580, 0x00000800, 0x05000002, 0x6402621c, + 0x1c01f000, 0x4933c857, 0x4c580000, 0x59cc000c, + 0x59340802, 0x82040d00, 0x00ffffff, 0x80040580, + 0x0502000a, 0x91cc1408, 0x6008b000, 0x91341c06, + 0x05edff69, 0x05020005, 0x91cc140a, 0x6008b000, + 0x91341c08, 0x05edff64, 0x5c00b000, 0x1c01f000, + 0x4933c857, 0x4c580000, 0x91cc140b, 0x6008b000, + 0x91341c06, 0x05edff5c, 0x05020008, 0x91cc140d, + 0x6008b000, 0x91341c08, 0x05edff57, 0x05000014, + 0x4933c856, 0x4933c856, 0x4933c857, 0x59340009, + 0x4803c857, 0x5934000e, 0x4803c857, 0x59340008, + 0x4803c857, 0x5934000d, 0x4803c857, 0x59340007, + 0x4803c857, 0x5934000c, 0x4803c857, 0x59340006, + 0x4803c857, 0x5934000b, 0x4803c857, 0x5c00b000, + 0x1c01f000, 0x4933c857, 0x813261c0, 0x05000025, + 0x83300d80, 0x001104b4, 0x05000022, 0x8d3c0506, + 0x05020020, 0x59300c07, 0x90040581, 0x05000008, + 0x90040582, 0x0502001b, 0x59300229, 0x90000581, + 0x05020018, 0x59300c18, 0x0501f002, 0x59300c03, + 0x900405b9, 0x05000003, 0x900405b5, 0x05020011, + 0x4d300000, 0x4d1c0000, 0x5932602a, 0x4933c857, + 0x05f5fea0, 0x05b00ef2, 0x591c001e, 0x497a381e, + 0x591c0c16, 0x84040d02, 0x48063c16, 0x5c023800, + 0x5c026000, 0x81300580, 0x05b20ee9, 0x497a602a, + 0x1c01f000, 0x5c000000, 0x4c000000, 0x4803c857, + 0x4d3c0000, 0x60067800, 0x05d1fea5, 0x5c027800, + 0x4c580000, 0x6008b000, 0x91a81c02, 0x91cc140b, + 0x05edff0d, 0x5c00b000, 0x80000540, 0x1c01f000, + 0x492fc857, 0x4943c857, 0x59a8000c, 0x812c0480, + 0x0500100f, 0x59a8000a, 0x812c0480, 0x0502100c, + 0x592c0000, 0x80005d40, 0x05000007, 0x497a5800, + 0x49425a07, 0x4c2c0000, 0x0001fb5b, 0x5c025800, + 0x05fdf7f8, 0x49425a07, 0x0001f35b, 0x1c01f000, + 0x61fc21ff, 0x5930100a, 0x800811c0, 0x05000002, + 0x58082403, 0x41301000, 0x0501f008, 0x40682800, + 0x406c3000, 0x41781000, 0x41442000, 0x0501f003, + 0x41781000, 0x61fc21ff, 0x5c000000, 0x4c000000, + 0x4803c857, 0x480bc857, 0x4813c857, 0x492fc857, + 0x4943c857, 0x4d2c0000, 0x4c040000, 0x4c080000, + 0x4c0c0000, 0x4c100000, 0x4c140000, 0x4c180000, + 0x4c1c0000, 0x4c200000, 0x05b5fa32, 0x05b00ea4, + 0x5c004000, 0x5c003800, 0x5c003000, 0x5c002800, + 0x5c002000, 0x5c001800, 0x5c001000, 0x5c000800, + 0x4a025805, 0x0000010d, 0x800811c0, 0x05000019, + 0x914005a9, 0x05020013, 0x90180582, 0x05000009, + 0x90180583, 0x05000007, 0x90180588, 0x05000005, + 0x90180586, 0x05000006, 0x90180589, 0x05020009, + 0x4a02580a, 0xffffffff, 0x0501f007, 0x5808280a, + 0x58140002, 0x82000500, 0x00ffffff, 0x48025813, + 0x480a580a, 0x58080202, 0x48025c14, 0x0501f005, + 0x4a02580a, 0xffffffff, 0x4a025c14, 0x0000ffff, + 0xb1400586, 0x05000002, 0x41782800, 0x480e580d, + 0x4806580e, 0x4822580f, 0x481e5810, 0x48165a08, + 0x481a5c09, 0x49425a09, 0x48125a07, 0x82100580, + 0x0000ffff, 0x05000011, 0x4d440000, 0x4d340000, + 0x40128800, 0x83440480, 0x000007f0, 0x05001003, + 0x05d5fa48, 0x0501f002, 0x0001fae7, 0x05b20e64, + 0x59340002, 0x82000500, 0x00ffffff, 0x48025813, + 0x5c026800, 0x5c028800, 0x497a5800, 0x497a5c05, + 0x812000d0, 0x48025c11, 0x0501fc5e, 0x5c025800, + 0x1c01f000, 0x5c000000, 0x4c000000, 0x4803c857, + 0x480bc857, 0x480fc857, 0x4813c857, 0x4817c857, + 0x4d2c0000, 0x4c080000, 0x4c0c0000, 0x4c100000, + 0x4c140000, 0x05b5f9d7, 0x05b00e49, 0x5c002800, + 0x5c002000, 0x5c001800, 0x5c001000, 0x05011000, + 0x912c0405, 0x4803c840, 0x6443c842, 0x40000000, + 0x05fd17ff, 0x4a025805, 0x0000010d, 0x65265a09, + 0x480a5a0b, 0x480e5c0b, 0x48125a0c, 0x48165c0c, + 0x82080580, 0x00008014, 0x05020054, 0x820c0580, + 0x0000ffff, 0x05020051, 0x90100586, 0x0502004f, + 0x4d240000, 0x42024800, 0x0010b391, 0x59240005, + 0x5c024800, 0x05d5ff6d, 0x05000009, 0x82000d00, + 0x00ffff00, 0x05020006, 0x82000c00, 0x001020b6, + 0x50040800, 0x80040910, 0x48065a0d, 0x82000d00, + 0x0000ffff, 0x48065c0d, 0x80000120, 0x48025a0e, + 0x59a8021b, 0x82001500, 0x00003500, 0x480a5a0f, + 0x8c000502, 0x05000016, 0x8c000506, 0x05000006, + 0x90000d0a, 0x90040d8a, 0x05020003, 0x64065c0e, + 0x0501f018, 0x8c00050a, 0x05000006, 0x90000d22, + 0x90040da2, 0x05020003, 0x640e5c0e, 0x0501f011, + 0x8c000508, 0x05000006, 0x90000d12, 0x90040d92, + 0x05020003, 0x640a5c0e, 0x0501f00a, 0x05d5ff43, + 0x05020003, 0x64125c0e, 0x0501f006, 0x8c000506, + 0x05000003, 0x64165c0e, 0x0501f002, 0x64025c0e, + 0x59a8002e, 0x48025c0f, 0x59a8002f, 0x48025a10, + 0x59c40801, 0x82040d00, 0x00018000, 0x90040580, + 0x05020003, 0x64025c10, 0x0501f00c, 0x82040580, + 0x00008000, 0x05020003, 0x64065c10, 0x0501f007, + 0x82040580, 0x00010000, 0x05020003, 0x640e5c10, + 0x0501f002, 0x64125c10, 0x0501fbe6, 0x5c025800, + 0x1c01f000, 0x0501f805, 0x60058800, 0x05000002, + 0x60018800, 0x1c01f000, 0x5930080a, 0x800409c0, + 0x05000004, 0x58040403, 0x81440580, 0x1c01f000, + 0x90000541, 0x05fdf7fe, 0x4933c857, 0xb13805a1, + 0x05000003, 0xb13805a0, 0x0502000c, 0x5932680a, + 0x59340200, 0x8c00050e, 0x05020002, 0x497a6205, + 0x5930001c, 0x80000540, 0x0004045a, 0x497a601c, 0x0801f800, 0x1c01f000, 0x1c01f000, 0x4933c857, - 0x493bc857, 0xb13805a1, 0x05000006, 0xb13805a0, - 0x05ea03a0, 0x59cc0002, 0x8c000526, 0x0500000c, - 0x59300403, 0x4803c857, 0xb0000589, 0x05b60810, - 0x497a6205, 0x5930001c, 0x80000540, 0x05000004, - 0x497a601c, 0x0801f800, 0x1c01f000, 0x1c01f000, - 0x4933c857, 0x59300403, 0x82000d80, 0x00000085, - 0x05020007, 0x4a026403, 0x0000008b, 0x642e6203, - 0x42000800, 0x80000040, 0x0005f32e, 0x82000d80, - 0x0000008b, 0x05020026, 0x4d3c0000, 0x417a7800, - 0x0201f800, 0x0010ec6c, 0x5c027800, 0x42000000, - 0x0010b056, 0x0501fd98, 0x59325809, 0x812e59c0, - 0x05000006, 0x832c0500, 0x00ff0000, 0x05000003, - 0x60128000, 0x05fdfe7c, 0x60443000, 0x0501fbe7, - 0x05c1fd1f, 0x59240400, 0x8c00050a, 0x0502000a, - 0x41782800, 0x60103000, 0x60a68000, 0x05fdfe86, - 0x6406642c, 0x64126407, 0x64066403, 0x641e6203, - 0x1c01f000, 0x602c0800, 0x05d1fed5, 0x64066407, - 0x64066403, 0x64066203, 0x05e1f408, 0x1c01f000, - 0x4933c857, 0x40000000, 0x40000000, 0x1c01f000, - 0x4933c857, 0x59300a03, 0x9004058e, 0x05000003, - 0x90040590, 0x05020019, 0x0501f96e, 0x05f1fd40, - 0x59300203, 0x90000d89, 0x0500000b, 0x48026429, - 0x4a026403, 0x00000085, 0x59300416, 0x8400055a, - 0x8400055e, 0x48026416, 0x64266203, 0x64166407, - 0x641a6229, 0x5932680a, 0x59340200, 0x8c00050e, - 0x05020003, 0x59a8002f, 0x48026006, 0x42000800, - 0x80000040, 0x0005fb2e, 0x1c01f000, 0x4933c857, - 0x4c040000, 0x59300403, 0x90000d9e, 0x05020012, - 0x800000d0, 0x59300a18, 0x82040d00, 0x000000ff, - 0x80040540, 0x4803c857, 0x48026418, 0x4a026403, - 0x00000085, 0x64266203, 0x64166407, 0x64126229, - 0x59a8002f, 0x48026006, 0x42000800, 0x80000040, - 0x0005fb2e, 0x5c000800, 0x1c01f000, 0x4933c857, - 0x40000000, 0x40000000, 0x1c01f000, 0x59300416, - 0x4933c857, 0x4803c857, 0x8c000518, 0x05000006, - 0x8c000512, 0x05f60303, 0x0501f932, 0x0005faec, - 0x0005fc5a, 0x1c01f000, 0x591c0407, 0x4803c857, - 0x90000c89, 0x0502100b, 0x0c01f001, 0x00109a74, - 0x00109a74, 0x00109a74, 0x00109a76, 0x00109a74, - 0x00109a76, 0x00109a76, 0x00109a74, 0x00109a76, - 0x80000580, 0x1c01f000, 0x90000541, 0x1c01f000, - 0x591c0407, 0x9000051f, 0x90000586, 0x0500000a, - 0x4803c857, 0x64ee6403, 0x6426641c, 0x4a02621c, - 0x00002a00, 0x64066203, 0x42000800, 0x80000040, - 0x0005f32e, 0x4803c856, 0x4c040000, 0x4c140000, - 0x4d300000, 0x411e6000, 0x0501f90a, 0x497a6205, - 0x59300416, 0x4803c857, 0x82000500, 0xffffadff, - 0x48026416, 0x497a6405, 0x5c026000, 0x05b5fae9, - 0x05b00f5b, 0x5c002800, 0x5c000800, 0x4a025805, - 0x0000010d, 0x497a5800, 0x497a5c05, 0x65165a09, - 0x491e580a, 0x59300402, 0x48025c08, 0x5930041b, - 0x48025c0c, 0x591c0416, 0x84000556, 0x48023c16, - 0x591c180a, 0x580c0403, 0x48025a07, 0x580c0002, - 0x82000500, 0x00ffffff, 0x48025813, 0x59cc0404, - 0x48025c14, 0x497a5a08, 0x4816580b, 0x48065a0c, - 0x580c0013, 0x82000500, 0xff000000, 0x80000120, - 0x48025c11, 0x0501fa8f, 0x493a6403, 0x4d400000, - 0x61168000, 0x591c0202, 0x4c000000, 0x4d300000, - 0x411e6000, 0x05fdfc4c, 0x5c026000, 0x5c000000, - 0x48023a02, 0x5c028000, 0x491e602a, 0x4932381e, - 0x641a3c07, 0x641e3a03, 0x497a3806, 0x497a3a05, - 0x1c01f000, 0x4933c857, 0x91380593, 0x0502000a, - 0x59300403, 0x4803c857, 0x82000d80, 0x00000085, - 0x05000026, 0x82000d80, 0x0000008b, 0x05000023, - 0x05b1ff1b, 0x913805a7, 0x0502000a, 0x05e1fbfb, - 0x4d2c0000, 0x4d400000, 0x59325809, 0x60128000, - 0x05fdfda5, 0x5c028000, 0x5c025800, 0x1c01f000, - 0x91380594, 0x05fc07f6, 0xb13805a1, 0x05000009, - 0xb13805a0, 0x05000007, 0x83380580, 0x00000089, - 0x05000004, 0x83380580, 0x0000008a, 0x05ea028d, - 0x05e5f849, 0x05ea028b, 0x59300a03, 0x9004058e, - 0x05fc06a1, 0x9004058a, 0x0500000c, 0x9004058c, - 0x0500000a, 0x05b1fefa, 0x05f5fbfa, 0x05000005, - 0x643a6203, 0x59a80030, 0x48026205, 0x1c01f000, - 0x642a6203, 0x1c01f000, 0x83380480, 0x00000093, - 0x0502100b, 0x83380480, 0x00000085, 0x05001008, - 0x83380580, 0x00000089, 0x05000008, 0x83380580, - 0x0000008a, 0x05000031, 0x05b1fee5, 0x493bc857, - 0x4933c857, 0x05e9f26b, 0x4933c857, 0x4c340000, - 0x05f5fbe0, 0x0500000b, 0x59300416, 0x8c00051a, - 0x05000008, 0x641a6407, 0x59300429, 0x90000d8e, - 0x05020002, 0x60080000, 0x48026203, 0x0501f01d, - 0x59300c16, 0x4c040000, 0x41306800, 0x05e9fa26, - 0x5c000800, 0x05000015, 0x48066416, 0x64066203, - 0x647a6403, 0x59cc0c07, 0x4806641b, 0x59cc0a07, - 0x4806621b, 0x5834080a, 0x4806600a, 0x5834081d, - 0x4806601d, 0x05f5fbc3, 0x05000004, 0x59300416, - 0x84000550, 0x48026416, 0x64126407, 0x42000800, - 0x80000040, 0x0005fb2e, 0x40366000, 0x0005fc5a, - 0x5c006800, 0x1c01f000, 0x4933c857, 0x59300416, - 0x8c00051a, 0x0502001a, 0x59300418, 0x82000d00, - 0x0000ff00, 0x900409c0, 0x9004059e, 0x05020014, - 0x4c340000, 0x41306800, 0x05e9f9ff, 0x0500000e, - 0x493a6403, 0x64066203, 0x64126407, 0x5834041b, - 0x4802641b, 0x5834021b, 0x4802621b, 0x5834080a, - 0x4806600a, 0x5834081d, 0x4806601d, 0x05f5fb8e, - 0x05e1face, 0x40366000, 0x5c006800, 0x0005f45a, - 0x5930080a, 0x58040200, 0x8c00051a, 0x05b20f52, - 0x1c01f000, 0x05d5f873, 0x05000019, 0x640a6203, - 0x59300416, 0x84000558, 0x48026416, 0x8c000512, - 0x05000004, 0x59a80030, 0x48026205, 0x0501f006, - 0x59a80830, 0x59a8002e, 0x80040400, 0x9000041e, - 0x48026205, 0x5930000a, 0x90000c11, 0x50040000, - 0x80000540, 0x05000003, 0x90000c00, 0x05fdf7fc, - 0x45300800, 0x497a6000, 0x90000541, 0x1c01f000, - 0x82100500, 0xfffffeef, 0x05020017, 0x4d2c0000, - 0x4937c857, 0x59340811, 0x91341411, 0x800409c0, - 0x0500000c, 0x40040000, 0x81300580, 0x05000004, - 0x90041400, 0x58040800, 0x05fdf7f9, 0x59300800, - 0x497a6000, 0x44041000, 0x0005faec, 0x0501f002, - 0x4933c857, 0x5c025800, 0x492e6009, 0x0005faec, - 0x0005f45a, 0x492fc857, 0x641a5a07, 0x0001f35b, - 0x4c340000, 0x5930000a, 0x800001c0, 0x0500000f, - 0x90006c11, 0x50340000, 0x80000540, 0x05000009, - 0x81300580, 0x05000004, 0x50340000, 0x90006c00, - 0x05fdf7f9, 0x59300000, 0x44006800, 0x497a6000, - 0x5c006800, 0x1c01f000, 0x59300c07, 0x90040585, - 0x05fc07fc, 0x90040591, 0x05fc07fa, 0x90040586, - 0x05fc07f8, 0x90040581, 0x05fc07f6, 0x05b1fe40, - 0x4933c857, 0x4c080000, 0x4c0c0000, 0x4c580000, - 0x59a81018, 0x59cc1807, 0x820c1d00, 0x00ffffff, - 0x800c0110, 0x80083580, 0x0502000c, 0x91cc1408, - 0x6008b000, 0x5930000a, 0x90001c06, 0x05edfc8d, - 0x05020006, 0x91cc140a, 0x6008b000, 0x5930000a, - 0x90001c08, 0x05edfc87, 0x5c00b000, 0x5c001800, - 0x5c001000, 0x1c01f000, 0x4933c856, 0x493a6403, - 0x05d1fa58, 0x05c1f21a, 0x4933c857, 0x492fc857, - 0x5930080a, 0x58040200, 0x8c00051e, 0x05000004, - 0x592c0209, 0x84000558, 0x48025a09, 0x1c01f000, - 0x59e0180f, 0x599c0413, 0x800c1000, 0x80080580, - 0x05020002, 0x41781000, 0x59e00010, 0x59e00810, - 0x80040d80, 0x05fe07fd, 0x80080580, 0x05000009, - 0x4c080000, 0x599c0814, 0x599c1015, 0x800c00cc, - 0x80040c00, 0x90081440, 0x5c001800, 0x90000541, - 0x4803c857, 0x1c01f000, 0x59300203, 0x4933c857, - 0x4937c857, 0x493bc857, 0x4803c857, 0x90003491, - 0x05b21dfb, 0x0c01f001, 0x00109c07, 0x00109cef, - 0x00109c07, 0x00109c07, 0x00109c07, 0x00109c07, - 0x00109c07, 0x00109c6f, 0x00109c08, 0x00109c07, - 0x00109c07, 0x00109c07, 0x00109c07, 0x00109c07, - 0x00109d36, 0x00109c07, 0x00109c07, 0x05b1fde8, - 0xb138058c, 0x05b20de6, 0x05d1ffd7, 0x05020021, - 0x59a80a1b, 0x5932481d, 0x59240200, 0x82000500, - 0x000000e0, 0x82000580, 0x00000080, 0x05000019, - 0x8c040512, 0x05000029, 0x59cc0806, 0x82040d00, - 0xff000000, 0x82040580, 0x03000000, 0x0500001d, - 0x82040580, 0x50000000, 0x05000004, 0x82040580, - 0x52000000, 0x0006045a, 0x813669c0, 0x05000007, - 0x497a602a, 0x4d3c0000, 0x417a7800, 0x0201f800, - 0x0010ec6c, 0x5c027800, 0x64066403, 0x0501f010, + 0xb13805a1, 0x05000003, 0xb13805a0, 0x05ea02fd, + 0x59303403, 0x82180580, 0x00000086, 0x05e80290, + 0x82180580, 0x00000087, 0x05e8028d, 0x497a6205, + 0x642a6203, 0x1c01f000, 0x4933c857, 0xb13805a1, + 0x05000003, 0xb13805a0, 0x05020008, 0x59300c03, + 0x4807c857, 0xb004048a, 0x05b21da9, 0xb0040481, + 0x05b01da7, 0x0c01f002, 0x1c01f000, 0x00109c58, + 0x00109c55, 0x00109c65, 0x00109c54, 0x00109c54, + 0x00109c54, 0x00109c54, 0x00109c54, 0x00109c65, + 0x05b1fd9b, 0x497a6205, 0x64126203, 0x1c01f000, + 0x497a6205, 0x59325809, 0x832c0500, 0x00ff0000, + 0x05000004, 0x592c0c0b, 0x8c04051a, 0x05020003, + 0x0005faec, 0x0005f45a, 0x0501f999, 0x05fc07fd, + 0x1c01f000, 0x497a6205, 0x59cc0002, 0x90000530, + 0x90000590, 0x05f4039e, 0x5930001c, 0x80000540, + 0x05000004, 0x497a601c, 0x0801f800, 0x1c01f000, + 0x1c01f000, 0x4933c857, 0x493bc857, 0xb13805a1, + 0x05000006, 0xb13805a0, 0x05ea02ba, 0x59cc0002, + 0x8c000526, 0x0500000c, 0x59300403, 0x4803c857, + 0xb0000589, 0x05b20d72, 0x497a6205, 0x5930001c, + 0x80000540, 0x05000004, 0x497a601c, 0x0801f800, + 0x1c01f000, 0x1c01f000, 0x4933c857, 0x59300403, + 0x82000d80, 0x00000085, 0x05020007, 0x4a026403, + 0x0000008b, 0x642e6203, 0x42000800, 0x80000040, + 0x0005f32e, 0x82000d80, 0x0000008b, 0x05020026, + 0x4d3c0000, 0x417a7800, 0x0201f800, 0x0010ee7a, + 0x5c027800, 0x42000000, 0x0010b2d6, 0x0501fdaa, + 0x59325809, 0x812e59c0, 0x05000006, 0x832c0500, + 0x00ff0000, 0x05000003, 0x60128000, 0x05fdfe75, + 0x60443000, 0x0501fbf9, 0x05c1fada, 0x59240400, + 0x8c00050a, 0x0502000a, 0x41782800, 0x60103000, + 0x60a68000, 0x05fdfe7f, 0x6406642c, 0x64126407, + 0x64066403, 0x641e6203, 0x1c01f000, 0x602c0800, + 0x05d1fd0a, 0x64066407, 0x64066403, 0x64066203, + 0x05e1f32c, 0x1c01f000, 0x4933c857, 0x40000000, + 0x40000000, 0x1c01f000, 0x4933c857, 0x59300a03, + 0x9004058e, 0x05000003, 0x90040590, 0x05020019, + 0x0501f96e, 0x05f1fc80, 0x59300203, 0x90000d89, + 0x0500000b, 0x48026429, 0x4a026403, 0x00000085, + 0x59300416, 0x8400055a, 0x8400055e, 0x48026416, + 0x64266203, 0x64166407, 0x641a6229, 0x5932680a, + 0x59340200, 0x8c00050e, 0x05020003, 0x59a8002f, + 0x48026006, 0x42000800, 0x80000040, 0x0005fb2e, + 0x1c01f000, 0x4933c857, 0x4c040000, 0x59300403, + 0x90000d9e, 0x05020012, 0x800000d0, 0x59300a18, + 0x82040d00, 0x000000ff, 0x80040540, 0x4803c857, + 0x48026418, 0x4a026403, 0x00000085, 0x64266203, + 0x64166407, 0x64126229, 0x59a8002f, 0x48026006, + 0x42000800, 0x80000040, 0x0005fb2e, 0x5c000800, + 0x1c01f000, 0x4933c857, 0x40000000, 0x40000000, + 0x1c01f000, 0x59300416, 0x4933c857, 0x4803c857, + 0x8c000518, 0x05000006, 0x8c000512, 0x05f60246, + 0x0501f932, 0x0005faec, 0x0005fc5a, 0x1c01f000, + 0x591c0407, 0x4803c857, 0x90000c89, 0x0502100b, + 0x0c01f001, 0x00109d12, 0x00109d12, 0x00109d12, + 0x00109d14, 0x00109d12, 0x00109d14, 0x00109d14, + 0x00109d12, 0x00109d14, 0x80000580, 0x1c01f000, + 0x90000541, 0x1c01f000, 0x591c0407, 0x9000051f, + 0x90000586, 0x0500000a, 0x4803c857, 0x64ee6403, + 0x6426641c, 0x4a02621c, 0x00002a00, 0x64066203, + 0x42000800, 0x80000040, 0x0005f32e, 0x4803c856, + 0x4c040000, 0x4c140000, 0x4d300000, 0x411e6000, + 0x0501f90a, 0x497a6205, 0x59300416, 0x4803c857, + 0x82000500, 0xffffadff, 0x48026416, 0x497a6405, + 0x5c026000, 0x05b5f84b, 0x05b00cbd, 0x5c002800, + 0x5c000800, 0x4a025805, 0x0000010d, 0x497a5800, + 0x497a5c05, 0x65165a09, 0x491e580a, 0x59300402, + 0x48025c08, 0x5930041b, 0x48025c0c, 0x591c0416, + 0x84000556, 0x48023c16, 0x591c180a, 0x580c0403, + 0x48025a07, 0x580c0002, 0x82000500, 0x00ffffff, + 0x48025813, 0x59cc0404, 0x48025c14, 0x497a5a08, + 0x4816580b, 0x48065a0c, 0x580c0013, 0x82000500, + 0xff000000, 0x80000120, 0x48025c11, 0x0501faa1, + 0x493a6403, 0x4d400000, 0x61168000, 0x591c0202, + 0x4c000000, 0x4d300000, 0x411e6000, 0x05fdfc45, + 0x5c026000, 0x5c000000, 0x48023a02, 0x5c028000, + 0x491e602a, 0x4932381e, 0x641a3c07, 0x641e3a03, + 0x497a3806, 0x497a3a05, 0x1c01f000, 0x4933c857, + 0x91380593, 0x0502000a, 0x59300403, 0x4803c857, + 0x82000d80, 0x00000085, 0x05000026, 0x82000d80, + 0x0000008b, 0x05000023, 0x05b1fc7d, 0x913805a7, + 0x0502000a, 0x05e1fb1f, 0x4d2c0000, 0x4d400000, + 0x59325809, 0x60128000, 0x05fdfd9e, 0x5c028000, + 0x5c025800, 0x1c01f000, 0x91380594, 0x05fc07f6, + 0xb13805a1, 0x05000009, 0xb13805a0, 0x05000007, + 0x83380580, 0x00000089, 0x05000004, 0x83380580, + 0x0000008a, 0x05ea01a7, 0x05e1ff6d, 0x05ea01a5, + 0x59300a03, 0x9004058e, 0x05fc06a1, 0x9004058a, + 0x0500000c, 0x9004058c, 0x0500000a, 0x05b1fc5c, + 0x05f5fb3d, 0x05000005, 0x643a6203, 0x59a80030, + 0x48026205, 0x1c01f000, 0x642a6203, 0x1c01f000, + 0x83380480, 0x00000093, 0x0502100b, 0x83380480, + 0x00000085, 0x05001008, 0x83380580, 0x00000089, + 0x05000008, 0x83380580, 0x0000008a, 0x05000031, + 0x05b1fc47, 0x493bc857, 0x4933c857, 0x05e9f185, + 0x4933c857, 0x4c340000, 0x05f5fb23, 0x0500000b, + 0x59300416, 0x8c00051a, 0x05000008, 0x641a6407, + 0x59300429, 0x90000d8e, 0x05020002, 0x60080000, + 0x48026203, 0x0501f01d, 0x59300c16, 0x4c040000, + 0x41306800, 0x05e9f940, 0x5c000800, 0x05000015, + 0x48066416, 0x64066203, 0x647a6403, 0x59cc0c07, + 0x4806641b, 0x59cc0a07, 0x4806621b, 0x5834080a, + 0x4806600a, 0x5834081d, 0x4806601d, 0x05f5fb06, + 0x05000004, 0x59300416, 0x84000550, 0x48026416, + 0x64126407, 0x42000800, 0x80000040, 0x0005fb2e, + 0x40366000, 0x0005fc5a, 0x5c006800, 0x1c01f000, + 0x4933c857, 0x59300416, 0x8c00051a, 0x0502001a, + 0x59300418, 0x82000d00, 0x0000ff00, 0x900409c0, + 0x9004059e, 0x05020014, 0x4c340000, 0x41306800, + 0x05e9f919, 0x0500000e, 0x493a6403, 0x64066203, + 0x64126407, 0x5834041b, 0x4802641b, 0x5834021b, + 0x4802621b, 0x5834080a, 0x4806600a, 0x5834081d, + 0x4806601d, 0x05f5fad1, 0x05e1f9f2, 0x40366000, + 0x5c006800, 0x0005f45a, 0x5930080a, 0x58040200, + 0x8c00051a, 0x05b20cb4, 0x1c01f000, 0x05d1feaf, + 0x05000019, 0x640a6203, 0x59300416, 0x84000558, + 0x48026416, 0x8c000512, 0x05000004, 0x59a80030, + 0x48026205, 0x0501f006, 0x59a80830, 0x59a8002e, + 0x80040400, 0x9000041e, 0x48026205, 0x5930000a, + 0x90000c11, 0x50040000, 0x80000540, 0x05000003, + 0x90000c00, 0x05fdf7fc, 0x45300800, 0x497a6000, + 0x90000541, 0x1c01f000, 0x82100500, 0xfffffeef, + 0x05020017, 0x4d2c0000, 0x4937c857, 0x59340811, + 0x91341411, 0x800409c0, 0x0500000c, 0x40040000, + 0x81300580, 0x05000004, 0x90041400, 0x58040800, + 0x05fdf7f9, 0x59300800, 0x497a6000, 0x44041000, + 0x0005faec, 0x0501f002, 0x4933c857, 0x5c025800, + 0x492e6009, 0x0005faec, 0x0005f45a, 0x492fc857, + 0x641a5a07, 0x0001f35b, 0x4c340000, 0x5930000a, + 0x800001c0, 0x0500000f, 0x90006c11, 0x50340000, + 0x80000540, 0x05000009, 0x81300580, 0x05000004, + 0x50340000, 0x90006c00, 0x05fdf7f9, 0x59300000, + 0x44006800, 0x497a6000, 0x5c006800, 0x1c01f000, + 0x59300c07, 0x90040585, 0x05fc07fc, 0x90040591, + 0x05fc07fa, 0x90040586, 0x05fc07f8, 0x90040581, + 0x05fc07f6, 0x05b1fba2, 0x4933c857, 0x4c080000, + 0x4c0c0000, 0x4c580000, 0x59a81018, 0x59cc1807, + 0x820c1d00, 0x00ffffff, 0x800c0110, 0x80083580, + 0x0502000c, 0x91cc1408, 0x6008b000, 0x5930000a, + 0x90001c06, 0x05edfbc4, 0x05020006, 0x91cc140a, + 0x6008b000, 0x5930000a, 0x90001c08, 0x05edfbbe, + 0x5c00b000, 0x5c001800, 0x5c001000, 0x1c01f000, + 0x4933c856, 0x493a6403, 0x05d1f88d, 0x05bdf7b0, + 0x4933c857, 0x492fc857, 0x5930080a, 0x58040200, + 0x8c00051e, 0x05000004, 0x592c0209, 0x84000558, + 0x48025a09, 0x1c01f000, 0x59e0180f, 0x599c0413, + 0x800c1000, 0x80080580, 0x05020002, 0x41781000, + 0x59e00010, 0x59e00810, 0x80040d80, 0x05fe07fd, + 0x80080580, 0x05000009, 0x4c080000, 0x599c0814, + 0x599c1015, 0x800c00cc, 0x80040c00, 0x90081440, + 0x5c001800, 0x90000541, 0x4803c857, 0x1c01f000, + 0x59300203, 0x4933c857, 0x4937c857, 0x493bc857, + 0x4803c857, 0x90003491, 0x05b21b5d, 0x0c01f001, + 0x00109ea5, 0x00109f90, 0x00109ea5, 0x00109ea5, + 0x00109ea5, 0x00109ea5, 0x00109ea5, 0x00109f0f, + 0x00109ea6, 0x00109ea5, 0x00109ea5, 0x00109ea5, + 0x00109ea5, 0x00109ea5, 0x00109fe6, 0x00109ea5, + 0x00109ea5, 0x05b1fb4a, 0xb138058c, 0x05b20b48, + 0x05d1fe13, 0x05020021, 0x59a80a1b, 0x5932481d, + 0x59240200, 0x82000500, 0x000000e0, 0x82000580, + 0x00000080, 0x05000019, 0x8c040512, 0x05000029, 0x59cc0806, 0x82040d00, 0xff000000, 0x82040580, - 0x03000000, 0x05000007, 0x82040580, 0x50000000, + 0x03000000, 0x0500001d, 0x82040580, 0x50000000, 0x05000004, 0x82040580, 0x52000000, 0x0006045a, - 0x64266403, 0x6426641c, 0x6402621c, 0x64126407, - 0x64066203, 0x05e1f1e5, 0x59240400, 0x8c00050a, + 0x83340580, 0x0010ce8f, 0x05000006, 0x4d3c0000, + 0x417a7800, 0x0201f800, 0x0010ee7a, 0x5c027800, + 0x64066403, 0x0501f010, 0x59cc0806, 0x82040d00, + 0xff000000, 0x82040580, 0x03000000, 0x05000007, + 0x82040580, 0x50000000, 0x05000004, 0x82040580, + 0x52000000, 0x0006045a, 0x64266403, 0x6426641c, + 0x6402621c, 0x64126407, 0x64066203, 0x05e1f109, + 0x59240400, 0x8c00050a, 0x05020020, 0x0501fcb1, 0x0502001e, 0x59cc0806, 0x4807c857, 0x82040d00, 0xff000000, 0x82040580, 0x03000000, 0x05000013, 0x82040580, 0x20000000, 0x05000010, 0x82040580, @@ -22781,60 +23003,64 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x0500000a, 0x82040580, 0x50000000, 0x05000007, 0x82040580, 0x52000000, 0x05000004, 0x82040580, 0x05000000, 0x05020007, 0x9c0431c0, 0x611a8000, - 0x60042800, 0x05fdfc38, 0x0501f8f1, 0x05b00d90, - 0x61442000, 0x05e9fa11, 0x59cc0000, 0x82000500, + 0x60042800, 0x05fdfc2f, 0x0501f901, 0x05b00af0, + 0x61442000, 0x05e9f929, 0x59cc0000, 0x82000500, 0x00ffffff, 0x82000580, 0x00ffffff, 0x05000004, 0x641e6203, 0x493a6403, 0x1c01f000, 0x59325819, - 0x812e59c0, 0x05b60928, 0x0005f45a, 0x4d2c0000, + 0x812e59c0, 0x05b20e88, 0x0005f45a, 0x4d2c0000, 0x4c580000, 0x4c500000, 0x4c540000, 0x41385000, - 0xb1380594, 0x05b20d7a, 0x59325809, 0x592c0c0c, + 0xb1380594, 0x05b20ada, 0x59325809, 0x592c0c0c, 0x82040d00, 0x0000e000, 0x82040580, 0x00002000, - 0x05020060, 0x59300819, 0x800409c0, 0x05000010, + 0x05020061, 0x59300819, 0x800409c0, 0x05000010, 0x58041405, 0x41cca800, 0x9004a406, 0x90080490, - 0x05021004, 0x4008b000, 0x0501fbda, 0x0501f008, - 0x40001000, 0x603cb000, 0x0501fbd6, 0x58040801, - 0x800409c0, 0x05fe07f5, 0x05b1fd61, 0x813669c0, - 0x0500004c, 0x59344c00, 0x592c0c0a, 0x4807c857, - 0x4827c857, 0x82040d00, 0x000000ff, 0x90040583, - 0x0500001d, 0x90040585, 0x05000022, 0x900405a0, - 0x0500002c, 0xb0040592, 0x05000036, 0xb0040590, - 0x05000036, 0x900405a1, 0x05000003, 0x900405a4, - 0x05020038, 0x82240500, 0x0000ff00, 0x82000580, - 0x00000700, 0x05000005, 0x60240800, 0x05d1fc40, - 0x60305000, 0x0501f02f, 0x64c65a07, 0x6426580e, - 0x59340400, 0x4802580f, 0x0001fb5b, 0x05e9f860, - 0x0501f036, 0x05d1fa0a, 0x41780800, 0x05d1fd1d, - 0x600c0800, 0x05d1fc32, 0x60205000, 0x0501f021, + 0x05021004, 0x4008b000, 0x0501fbea, 0x0501f008, + 0x40001000, 0x603cb000, 0x0501fbe6, 0x58040801, + 0x800409c0, 0x05fe07f5, 0x05b1fac1, 0x83340580, + 0x0010ce8f, 0x0500004c, 0x59344c00, 0x592c0c0a, + 0x4807c857, 0x4827c857, 0x82040d00, 0x000000ff, + 0x90040583, 0x0500001d, 0x90040585, 0x05000021, + 0x900405a0, 0x0500002c, 0xb0040592, 0x05000036, + 0xb0040590, 0x05000036, 0x900405a1, 0x05000003, + 0x900405a4, 0x05020038, 0x82240500, 0x0000ff00, + 0x82000580, 0x00000700, 0x05000005, 0x60240800, + 0x05d1fa72, 0x60305000, 0x0501f02f, 0x64c65a07, + 0x6426580e, 0x59340400, 0x4802580f, 0x0001fb5b, + 0x05e5ff73, 0x0501f036, 0x41780800, 0x05d1fb53, + 0x600c0800, 0x05d1fa65, 0x60205000, 0x0501f022, 0x59cc3800, 0x821c3d00, 0x00ffffff, 0x4c1c0000, - 0x05c1fa79, 0x5c003800, 0x0502001a, 0x59cc0007, - 0x05ddfdaa, 0x05020017, 0x05d1f9f9, 0x0501f015, + 0x05c1f832, 0x5c003800, 0x0502001b, 0x59cc0007, + 0x05ddfc99, 0x05020018, 0x4a026c00, 0x00000707, + 0x0501f015, 0x82240500, 0x0000ff00, 0x82000580, + 0x00000700, 0x05fc07e2, 0x82240500, 0x000000ff, + 0x90000589, 0x05fc07de, 0x05d1fbad, 0x60285000, + 0x0501f009, 0x60385000, 0x0501f002, 0x60405000, 0x82240500, 0x0000ff00, 0x82000580, 0x00000700, - 0x05fc07e2, 0x82240500, 0x000000ff, 0x90000589, - 0x05fc07de, 0x05d1fd74, 0x60285000, 0x0501f009, - 0x60385000, 0x0501f002, 0x60405000, 0x82240500, - 0x0000ff00, 0x82000580, 0x00000700, 0x05fc07d3, - 0x482a6403, 0x64066203, 0x592c000e, 0x48026013, - 0x497a6015, 0x59a8002f, 0x48026006, 0x417a7800, - 0x05e1f93e, 0x59325819, 0x812e59c0, 0x05000003, - 0x05b5f8ad, 0x497a6019, 0x5c00a800, 0x5c00a000, - 0x5c00b000, 0x5c025800, 0x1c01f000, 0x4d2c0000, - 0x59325809, 0x91380593, 0x05020022, 0x492fc857, - 0x59300c03, 0xb0040594, 0x05000014, 0x90040590, - 0x0500000f, 0x9004058e, 0x0500000d, 0x90040588, - 0x05000008, 0x9004058c, 0x05000006, 0x9004058a, - 0x05b20cef, 0x60180800, 0x05d1fbe9, 0x0501f007, - 0x60100800, 0x05d1fbe6, 0x0501f004, 0x59340200, - 0x8400051a, 0x48026a00, 0x05f5f9e6, 0x05000005, + 0x05fc07d3, 0x482a6403, 0x64066203, 0x592c000e, + 0x48026013, 0x497a6015, 0x59a8002f, 0x48026006, + 0x417a7800, 0x05e1f85f, 0x59325819, 0x812e59c0, + 0x05000003, 0x05b1fe0c, 0x497a6019, 0x5c00a800, + 0x5c00a000, 0x5c00b000, 0x5c025800, 0x1c01f000, + 0x4d2c0000, 0x59325809, 0x91380593, 0x05020031, + 0x492fc857, 0x59300c03, 0xb0040594, 0x05000023, + 0x90040590, 0x0500001e, 0x9004058e, 0x0500001c, + 0x59341400, 0x82081d00, 0x0000ff00, 0x82081500, + 0x000000ff, 0x90040588, 0x0500000d, 0x9004058c, + 0x0500000d, 0x9004058a, 0x05b20a49, 0x820c0580, + 0x00000700, 0x05000011, 0x90080589, 0x0500000f, + 0x60180800, 0x05d1fa11, 0x0501f00c, 0x600c0000, + 0x0501f002, 0x60240000, 0x80080580, 0x05020007, + 0x60100800, 0x05d1fa09, 0x0501f004, 0x59340200, + 0x8400051a, 0x48026a00, 0x05f5f917, 0x05000005, 0x59a80030, 0x48026006, 0x643a6203, 0x0501f025, 0x64025a07, 0x0001fb5b, 0x0005fc5a, 0x0501f021, 0xb13805a1, 0x05000003, 0xb13805a0, 0x05020008, - 0x5c025800, 0x05e1fe1c, 0x05ea005e, 0x59300203, - 0x9000058e, 0x05000019, 0x05b1fcd1, 0x913805a7, - 0x05000009, 0x91380594, 0x05b20ccd, 0x492fc857, - 0x05e1f9ae, 0x60c68000, 0x60100800, 0x61fc1001, - 0x0501f006, 0x492fc857, 0x05e1f9a8, 0x60c68000, + 0x5c025800, 0x05e1fd2e, 0x05e60766, 0x59300203, + 0x9000058e, 0x05000019, 0x05b1fa21, 0x913805a7, + 0x05000009, 0x91380594, 0x05b20a1d, 0x492fc857, + 0x05e1f8c0, 0x60c68000, 0x60100800, 0x61fc1001, + 0x0501f006, 0x492fc857, 0x05e1f8ba, 0x60c68000, 0x60100800, 0x60401000, 0x49425a07, 0x4806580e, - 0x480a580f, 0x0001fb5b, 0x05d5f9a7, 0x05e5ffe0, + 0x480a580f, 0x0001fb5b, 0x05d1ffd6, 0x05e5fee4, 0x5c025800, 0x1c01f000, 0x4933c857, 0xb13805a1, 0x05000003, 0xb13805a0, 0x05020009, 0x4d2c0000, 0x59325809, 0x812e59c0, 0x05000003, 0x64025a07, @@ -22848,32 +23074,32 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x82040580, 0x05000000, 0x0500000a, 0x82040580, 0x21000000, 0x05000027, 0x82040580, 0x24000000, 0x05000024, 0x82040580, 0x20000000, 0x05020025, - 0x05b5f814, 0x05000023, 0x492fc857, 0x492e6019, + 0x05b1fd64, 0x05000023, 0x492fc857, 0x492e6019, 0x59a8b077, 0x9058b41b, 0x8258b500, 0xfffffffc, 0x8058b104, 0x485a5c05, 0x412c7800, 0x41cca000, 0x90580490, 0x05021004, 0x912cac06, 0x0501fae9, 0x0501f010, 0x40580800, 0x603cb000, 0x912cac06, - 0x0501fae4, 0x9004b48f, 0x05b1fffe, 0x05000004, + 0x0501fae4, 0x9004b48f, 0x05b1fd4e, 0x05000004, 0x492c7801, 0x412c7800, 0x05fdf7f2, 0x59325819, - 0x05b5f811, 0x497a6019, 0x80000580, 0x0501f005, + 0x05b1fd61, 0x497a6019, 0x80000580, 0x0501f005, 0x59340200, 0x84000554, 0x48026a00, 0x90000541, 0x5c00a800, 0x5c00a000, 0x5c00b000, 0x5c025800, 0x1c01f000, 0x4933c857, 0x492fc857, 0x4d2c0000, 0x59300a03, 0x90040587, 0x0500002e, 0x9004058e, - 0x05000028, 0x90040581, 0x05b20c55, 0x05e1f9e2, + 0x05000028, 0x90040581, 0x05b209a5, 0x05e1f8f4, 0x4df00000, 0x598c000b, 0x81300580, 0x05020014, 0x59300004, 0x8c000520, 0x05000004, 0x84000520, - 0x48026004, 0x0501f014, 0x42001000, 0x0010af8e, + 0x48026004, 0x0501f014, 0x42001000, 0x0010b20e, 0x50081000, 0x58080002, 0x82000580, 0x00000100, - 0x05000005, 0x5808000b, 0x81300580, 0x05b20c40, - 0x0501f009, 0x05e1fcdb, 0x05020019, 0x59300004, + 0x05000005, 0x5808000b, 0x81300580, 0x05b20990, + 0x0501f009, 0x05e1fbed, 0x05020019, 0x59300004, 0x8c000520, 0x05000004, 0x84000520, 0x48026004, - 0x0501f004, 0x0201f800, 0x0010eee3, 0x80c40040, - 0x5c03e000, 0x05e009ac, 0x05f1fd54, 0x05b00c30, - 0x59325809, 0x64165a07, 0x0001fb5b, 0x05d5f916, - 0x59325819, 0x812e59c0, 0x05b20fcf, 0x05e5ff4c, + 0x0501f004, 0x0201f800, 0x0010f0f2, 0x80c40040, + 0x5c03e000, 0x05e008be, 0x05f1fc85, 0x05b00980, + 0x59325809, 0x64165a07, 0x0001fb5b, 0x05d1ff45, + 0x59325819, 0x812e59c0, 0x05b20d1f, 0x05e5fe50, 0x80000580, 0x5c025800, 0x1c01f000, 0x5c03e000, - 0x05e0099d, 0x59300c07, 0x90040591, 0x05fc07c5, + 0x05e008af, 0x59300c07, 0x90040591, 0x05fc07c5, 0x05fdf7f9, 0x4c040000, 0x59340200, 0x4803c857, 0x8c00051c, 0x05000009, 0x59cc0805, 0x591c001b, 0x4803c857, 0x80040580, 0x05000004, 0x80000580, @@ -22882,24 +23108,24 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x61fc19ff, 0x60102000, 0x0501f010, 0x4c000000, 0x4c0c0000, 0x4c100000, 0x5930200a, 0x58101c03, 0x60102000, 0x0501f009, 0x4c000000, 0x4c0c0000, - 0x4c100000, 0x5930200a, 0x801021c0, 0x05b00bfc, + 0x4c100000, 0x5930200a, 0x801021c0, 0x05b0094c, 0x58101c03, 0x601c2000, 0x480fc857, 0x4813c857, - 0x481bc857, 0x05c1f92e, 0x05c9ff7a, 0x5c002000, + 0x481bc857, 0x05bdfed7, 0x05c9fd95, 0x5c002000, 0x5c001800, 0x5c000000, 0x1c01f000, 0x8d0c0520, 0x05000009, 0x4d400000, 0x4d200000, 0x61fe4001, - 0x850e1d44, 0x60aa8000, 0x05fdfa9b, 0x5c024000, + 0x850e1d44, 0x60aa8000, 0x05fdfa82, 0x5c024000, 0x5c028000, 0x1c01f000, 0x59a8021b, 0x8c000508, 0x05000005, 0x599c0017, 0x8c00050a, 0x05020002, 0x1c01f000, 0x90000541, 0x1c01f000, 0x5930042c, 0x84000540, 0x4802642c, 0x1c01f000, 0x4c640000, - 0x05f5f97e, 0x59300203, 0x90000588, 0x05020010, + 0x05f5f8af, 0x59300203, 0x90000588, 0x05020010, 0x60c8c800, 0x42000000, 0x20000000, 0x41300800, - 0x05b5fab0, 0x0500000a, 0x59300203, 0x90000588, + 0x05b1fffe, 0x0500000a, 0x59300203, 0x90000588, 0x05020007, 0x60780000, 0x80000040, 0x05fe07ff, - 0x8064c840, 0x05fe07f4, 0x05b1fbc5, 0x05f5f976, - 0x5c00c800, 0x1c01f000, 0x05b1ff4e, 0x05b00bc0, + 0x8064c840, 0x05fe07f4, 0x05b1f915, 0x05f5f8a7, + 0x5c00c800, 0x1c01f000, 0x05b1fc9e, 0x05b00910, 0x59340403, 0x49265802, 0x49365803, 0x65565a05, - 0x48025c07, 0x4a025c08, 0x00001000, 0x05f5f8b9, + 0x48025c07, 0x4a025c08, 0x00001000, 0x05f1ffea, 0x05000003, 0x4a025c08, 0x00003000, 0x59340802, 0x82040d00, 0x00ffffff, 0x59300403, 0x82000580, 0x00000086, 0x42000000, 0x85000000, 0x05020003, @@ -22914,7 +23140,7 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x48065810, 0x1c01f000, 0x492fc857, 0x59a82867, 0x801429c0, 0x05000057, 0x4c5c0000, 0x4c600000, 0x4c640000, 0x4d2c0000, 0x4d300000, 0x42026000, - 0x00110254, 0x592c0c07, 0x592c100a, 0x82081500, + 0x00110484, 0x592c0c07, 0x592c100a, 0x82081500, 0x00ffffff, 0x592c180b, 0x592c200e, 0x40165800, 0x4014c000, 0x4014c800, 0x592c0205, 0x82000580, 0x00000155, 0x05020037, 0x592c0407, 0x80040580, @@ -22924,21 +23150,21 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x80100580, 0x05020027, 0x4c040000, 0x4c080000, 0x4c0c0000, 0x4c100000, 0x40640000, 0x812c0580, 0x05020016, 0x59300203, 0x90000580, 0x0500000f, - 0x59300009, 0x800001c0, 0x0500000c, 0x05e1f8e2, - 0x4df00000, 0x05ddffdf, 0x0201f800, 0x0010eeb1, + 0x59300009, 0x800001c0, 0x0500000c, 0x05ddfff4, + 0x4df00000, 0x05ddfef1, 0x0201f800, 0x0010f0c0, 0x80c40040, 0x05020002, 0x64026203, 0x5c03e000, - 0x05e008c5, 0x497a6009, 0x592cc800, 0x4064c000, + 0x05dc0fd7, 0x497a6009, 0x592cc800, 0x4064c000, 0x4064b800, 0x0501f003, 0x592cb800, 0x485cc000, 0x64165a07, 0x0001fb5b, 0x405e5800, 0x5c002000, 0x5c001800, 0x5c001000, 0x5c000800, 0x0501f003, 0x412cc000, 0x592e5800, 0x812e59c0, 0x05fe07c3, - 0x48675067, 0x48635068, 0x05e5fdd4, 0x5c026000, + 0x48675067, 0x48635068, 0x05e5fcd8, 0x5c026000, 0x5c025800, 0x5c00c800, 0x5c00c000, 0x5c00b800, 0x1c01f000, 0x602c0800, 0x0501f004, 0x60100800, 0x0501f002, 0x60040800, 0x4d2c0000, 0x59325809, 0x812e59c0, 0x0500000f, 0x592c0205, 0x82000500, 0x000000ff, 0x9000058e, 0x0502000a, 0x592c0000, - 0x48026009, 0x497a5800, 0x48065a09, 0x05d9fc60, + 0x48026009, 0x497a5800, 0x48065a09, 0x05d9fb29, 0x05000003, 0x05fdfe6f, 0x0501f002, 0x0001fb5b, 0x5c025800, 0x1c01f000, 0x4817c857, 0x4c000000, 0x4c040000, 0x8c14052a, 0x05000004, 0x5988011e, @@ -22991,58 +23217,58 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x4c040000, 0x50000800, 0x80040800, 0x05001002, 0x44040000, 0x5c000800, 0x1c01f000, 0x480fc857, 0x4c000000, 0x900c0580, 0x05020004, 0x42000000, - 0x0010b018, 0x0501f012, 0x820c0580, 0x00001001, - 0x05020004, 0x42000000, 0x0010b019, 0x0501f00c, + 0x0010b298, 0x0501f012, 0x820c0580, 0x00001001, + 0x05020004, 0x42000000, 0x0010b299, 0x0501f00c, 0x820c0580, 0x00001002, 0x05020004, 0x42000000, - 0x0010b01a, 0x0501f006, 0x820c0c80, 0x0000201c, - 0x05b21a3b, 0x900c051f, 0x0c01f804, 0x05fdffde, - 0x5c000000, 0x1c01f000, 0x00109fd6, 0x00109fd9, - 0x00109fdc, 0x00109fdf, 0x00109fe2, 0x00109fe5, - 0x00109fe8, 0x00109feb, 0x00109fee, 0x00109ff1, - 0x00109ff4, 0x00109ff7, 0x00109ffa, 0x00109ffd, - 0x0010a000, 0x0010a003, 0x0010a006, 0x0010a009, - 0x0010a00c, 0x0010a00f, 0x0010a012, 0x0010a015, - 0x0010a018, 0x0010a01b, 0x0010a01e, 0x0010a021, - 0x0010a024, 0x0010a027, 0x42000000, 0x0010b01b, - 0x1c01f000, 0x42000000, 0x0010b01c, 0x1c01f000, - 0x42000000, 0x0010b01d, 0x1c01f000, 0x42000000, - 0x0010b01e, 0x1c01f000, 0x42000000, 0x0010b01f, - 0x1c01f000, 0x42000000, 0x0010b020, 0x1c01f000, - 0x42000000, 0x0010b021, 0x1c01f000, 0x42000000, - 0x0010b022, 0x1c01f000, 0x42000000, 0x0010b023, - 0x1c01f000, 0x42000000, 0x0010b024, 0x1c01f000, - 0x42000000, 0x0010b025, 0x1c01f000, 0x42000000, - 0x0010b026, 0x1c01f000, 0x42000000, 0x0010b027, - 0x1c01f000, 0x42000000, 0x0010b028, 0x1c01f000, - 0x42000000, 0x0010b029, 0x1c01f000, 0x42000000, - 0x0010b02a, 0x1c01f000, 0x42000000, 0x0010b02b, - 0x1c01f000, 0x42000000, 0x0010b02c, 0x1c01f000, - 0x42000000, 0x0010b02d, 0x1c01f000, 0x42000000, - 0x0010b02e, 0x1c01f000, 0x42000000, 0x0010b02f, - 0x1c01f000, 0x42000000, 0x0010b030, 0x1c01f000, - 0x42000000, 0x0010b031, 0x1c01f000, 0x42000000, - 0x0010b032, 0x1c01f000, 0x42000000, 0x0010b033, - 0x1c01f000, 0x42000000, 0x0010b034, 0x1c01f000, - 0x42000000, 0x0010b035, 0x1c01f000, 0x42000000, - 0x0010b036, 0x1c01f000, 0x480fc857, 0x4c000000, - 0x900c0581, 0x05020004, 0x42000000, 0x0010af9b, + 0x0010b29a, 0x0501f006, 0x820c0c80, 0x0000201c, + 0x05ae1f8b, 0x900c051f, 0x0c01f804, 0x05fdffde, + 0x5c000000, 0x1c01f000, 0x0010a286, 0x0010a289, + 0x0010a28c, 0x0010a28f, 0x0010a292, 0x0010a295, + 0x0010a298, 0x0010a29b, 0x0010a29e, 0x0010a2a1, + 0x0010a2a4, 0x0010a2a7, 0x0010a2aa, 0x0010a2ad, + 0x0010a2b0, 0x0010a2b3, 0x0010a2b6, 0x0010a2b9, + 0x0010a2bc, 0x0010a2bf, 0x0010a2c2, 0x0010a2c5, + 0x0010a2c8, 0x0010a2cb, 0x0010a2ce, 0x0010a2d1, + 0x0010a2d4, 0x0010a2d7, 0x42000000, 0x0010b29b, + 0x1c01f000, 0x42000000, 0x0010b29c, 0x1c01f000, + 0x42000000, 0x0010b29d, 0x1c01f000, 0x42000000, + 0x0010b29e, 0x1c01f000, 0x42000000, 0x0010b29f, + 0x1c01f000, 0x42000000, 0x0010b2a0, 0x1c01f000, + 0x42000000, 0x0010b2a1, 0x1c01f000, 0x42000000, + 0x0010b2a2, 0x1c01f000, 0x42000000, 0x0010b2a3, + 0x1c01f000, 0x42000000, 0x0010b2a4, 0x1c01f000, + 0x42000000, 0x0010b2a5, 0x1c01f000, 0x42000000, + 0x0010b2a6, 0x1c01f000, 0x42000000, 0x0010b2a7, + 0x1c01f000, 0x42000000, 0x0010b2a8, 0x1c01f000, + 0x42000000, 0x0010b2a9, 0x1c01f000, 0x42000000, + 0x0010b2aa, 0x1c01f000, 0x42000000, 0x0010b2ab, + 0x1c01f000, 0x42000000, 0x0010b2ac, 0x1c01f000, + 0x42000000, 0x0010b2ad, 0x1c01f000, 0x42000000, + 0x0010b2ae, 0x1c01f000, 0x42000000, 0x0010b2af, + 0x1c01f000, 0x42000000, 0x0010b2b0, 0x1c01f000, + 0x42000000, 0x0010b2b1, 0x1c01f000, 0x42000000, + 0x0010b2b2, 0x1c01f000, 0x42000000, 0x0010b2b3, + 0x1c01f000, 0x42000000, 0x0010b2b4, 0x1c01f000, + 0x42000000, 0x0010b2b5, 0x1c01f000, 0x42000000, + 0x0010b2b6, 0x1c01f000, 0x480fc857, 0x4c000000, + 0x900c0581, 0x05020004, 0x42000000, 0x0010b21b, 0x0501f00f, 0x900c0582, 0x05020004, 0x42000000, - 0x0010af9c, 0x0501f00a, 0x900c0583, 0x05020004, - 0x42000000, 0x0010af9d, 0x0501f005, 0x900c0584, - 0x05020004, 0x42000000, 0x0010af9e, 0x05fdff56, + 0x0010b21c, 0x0501f00a, 0x900c0583, 0x05020004, + 0x42000000, 0x0010b21d, 0x0501f005, 0x900c0584, + 0x05020004, 0x42000000, 0x0010b21e, 0x05fdff56, 0x5c000000, 0x1c01f000, 0x4c000000, 0x59a8021b, 0x4803c857, 0x59240a00, 0x8c04050a, 0x05000010, - 0x8c000506, 0x05000004, 0x42000000, 0x0010afa6, + 0x8c000506, 0x05000004, 0x42000000, 0x0010b226, 0x0501f011, 0x8c00050a, 0x05000004, 0x42000000, - 0x0010afa5, 0x0501f00c, 0x8c000508, 0x05000004, - 0x42000000, 0x0010afa8, 0x0501f007, 0x05d5f9d6, + 0x0010b225, 0x0501f00c, 0x8c000508, 0x05000004, + 0x42000000, 0x0010b228, 0x0501f007, 0x05d5f82b, 0x05000006, 0x8c000506, 0x05020004, 0x42000000, - 0x0010afa7, 0x05fdff38, 0x5c000000, 0x1c01f000, - 0x8058b1c0, 0x05b0098e, 0x5450a800, 0x8050a000, + 0x0010b227, 0x05fdff38, 0x5c000000, 0x1c01f000, + 0x8058b1c0, 0x05ac0ede, 0x5450a800, 0x8050a000, 0x8054a800, 0x8058b040, 0x05fe07fc, 0x1c01f000, - 0x8058b1c0, 0x05b00986, 0x4450a800, 0x8054a800, + 0x8058b1c0, 0x05ac0ed6, 0x4450a800, 0x8054a800, 0x8058b040, 0x05fe07fd, 0x1c01f000, 0x4813c857, - 0x4817c857, 0x40140000, 0x80100480, 0x05b2197c, + 0x4817c857, 0x40140000, 0x80100480, 0x05ae1ecc, 0x497bc841, 0x41787000, 0x42006800, 0x00140000, 0x59a8008a, 0x8c000500, 0x05000003, 0x42006800, 0x0013a000, 0x4837c857, 0x8010048d, 0x05021005, @@ -23053,137 +23279,143 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x40100000, 0x80140580, 0x05fe07f3, 0x45782800, 0x803871c0, 0x05000005, 0x40382800, 0x41787000, 0x80102000, 0x05fdf7eb, 0x1c01f000, 0x8058b1c0, - 0x05b00953, 0x50500000, 0x9c0001c0, 0x4400a800, + 0x05ac0ea3, 0x50500000, 0x9c0001c0, 0x4400a800, 0x8050a000, 0x8054a800, 0x8058b040, 0x05fe07fa, 0x1c01f000, 0x4c000000, 0x59a80007, 0x8c00051c, 0x5c000000, 0x1c01f000, 0x0501f805, 0x60058800, 0x05020002, 0x60018800, 0x1c01f000, 0x59a80007, - 0x8c000518, 0x1c01f000, 0x4200b000, 0x0010b110, - 0x5058b000, 0x1c01f000, 0x42006800, 0x0010b111, + 0x8c000518, 0x1c01f000, 0x4200b000, 0x0010b390, + 0x5058b000, 0x1c01f000, 0x42006800, 0x0010b391, 0x58340406, 0x8c000502, 0x05fc07f8, 0x6004b000, 0x1c01f000, 0x61906800, 0x80346840, 0x05000006, 0x64070000, 0x40000000, 0x59807000, 0x8c380500, 0x05fc07fa, 0x1c01f000, 0x640f0000, 0x40000000, 0x59800000, 0x8c000500, 0x05fc07fc, 0x1c01f000, - 0x00000001, 0x00000002, 0x00000004, 0x00000008, - 0x00000010, 0x00000020, 0x00000040, 0x00000080, - 0x00000100, 0x00000200, 0x00000400, 0x00000800, - 0x00001000, 0x00002000, 0x00004000, 0x00008000, - 0x00010000, 0x00020000, 0x00040000, 0x00080000, - 0x00100000, 0x00200000, 0x00400000, 0x00800000, - 0x01000000, 0x02000000, 0x04000000, 0x08000000, - 0x10000000, 0x20000000, 0x40000000, 0x80000000, - 0x0010b111, 0x0010b11c, 0x0010b127, 0x0010b132, - 0x0010b13d, 0x0010b148, 0x0010b153, 0x0010b15e, - 0x0010b169, 0x0010b174, 0x0010b17f, 0x0010b18a, - 0x0010b195, 0x0010b1a0, 0x0010b1ab, 0x0010b1b6, - 0x0010b1c1, 0x0010b1cc, 0x0010b1d7, 0x0010b1e2, - 0x0010b1ed, 0x0010b1f8, 0x0010b203, 0x0010b20e, - 0x0010b219, 0x0010b224, 0x0010b22f, 0x0010b23a, - 0x0010b245, 0x0010b250, 0x0010b25b, 0x0010b266, - 0x0010b271, 0x0010b27c, 0x0010b287, 0x0010b292, - 0x0010b29d, 0x0010b2a8, 0x0010b2b3, 0x0010b2be, - 0x0010b2c9, 0x0010b2d4, 0x0010b2df, 0x0010b2ea, - 0x0010b2f5, 0x0010b300, 0x0010b30b, 0x0010b316, - 0x0010b321, 0x0010b32c, 0x0010b337, 0x0010b342, - 0x0010b34d, 0x0010b358, 0x0010b363, 0x0010b36e, - 0x0010b379, 0x0010b384, 0x0010b38f, 0x0010b39a, - 0x0010b3a5, 0x0010b3b0, 0x0010b3bb, 0x0010b3c6, - 0x0010b3d1, 0x0010b3dc, 0x0010b3e7, 0x0010b3f2, - 0x0010b3fd, 0x0010b408, 0x0010b413, 0x0010b41e, - 0x0010b429, 0x0010b434, 0x0010b43f, 0x0010b44a, - 0x0010b455, 0x0010b460, 0x0010b46b, 0x0010b476, - 0x0010b481, 0x0010b48c, 0x0010b497, 0x0010b4a2, - 0x0010b4ad, 0x0010b4b8, 0x0010b4c3, 0x0010b4ce, - 0x0010b4d9, 0x0010b4e4, 0x0010b4ef, 0x0010b4fa, - 0x0010b505, 0x0010b510, 0x0010b51b, 0x0010b526, - 0x0010b531, 0x0010b53c, 0x0010b547, 0x0010b552, - 0x0010b55d, 0x0010b568, 0x0010b573, 0x0010b57e, - 0x0010b589, 0x0010b594, 0x0010b59f, 0x0010b5aa, - 0x0010b5b5, 0x0010b5c0, 0x0010b5cb, 0x0010b5d6, - 0x0010b5e1, 0x0010b5ec, 0x0010b5f7, 0x0010b602, - 0x0010b60d, 0x0010b618, 0x0010b623, 0x0010b62e, - 0x0010b639, 0x0010b644, 0x0010b64f, 0x0010b65a, - 0x0010b665, 0x0010b670, 0x0010b67b, 0x0010b686, - 0x0010b691, 0x0010b69c, 0x0010b6a7, 0x0010b6b2, - 0x0010b6bd, 0x0010b6c8, 0x0010b6d3, 0x0010b6de, - 0x0010b6e9, 0x0010b6f4, 0x0010b6ff, 0x0010b70a, - 0x0010b715, 0x0010b720, 0x0010b72b, 0x0010b736, - 0x0010b741, 0x0010b74c, 0x0010b757, 0x0010b762, - 0x0010b76d, 0x0010b778, 0x0010b783, 0x0010b78e, - 0x0010b799, 0x0010b7a4, 0x0010b7af, 0x0010b7ba, - 0x0010b7c5, 0x0010b7d0, 0x0010b7db, 0x0010b7e6, - 0x0010b7f1, 0x0010b7fc, 0x0010b807, 0x0010b812, - 0x0010b81d, 0x0010b828, 0x0010b833, 0x0010b83e, - 0x0010b849, 0x0010b854, 0x0010b85f, 0x0010b86a, - 0x0010b875, 0x0010b880, 0x0010b88b, 0x0010b896, - 0x0010b8a1, 0x0010b8ac, 0x0010b8b7, 0x0010b8c2, - 0x0010b8cd, 0x0010b8d8, 0x0010b8e3, 0x0010b8ee, - 0x0010b8f9, 0x0010b904, 0x0010b90f, 0x0010b91a, - 0x0010b925, 0x0010b930, 0x0010b93b, 0x0010b946, - 0x0010b951, 0x0010b95c, 0x0010b967, 0x0010b972, - 0x0010b97d, 0x0010b988, 0x0010b993, 0x0010b99e, - 0x0010b9a9, 0x0010b9b4, 0x0010b9bf, 0x0010b9ca, - 0x0010b9d5, 0x0010b9e0, 0x0010b9eb, 0x0010b9f6, - 0x0010ba01, 0x0010ba0c, 0x0010ba17, 0x0010ba22, - 0x0010ba2d, 0x0010ba38, 0x0010ba43, 0x0010ba4e, - 0x0010ba59, 0x0010ba64, 0x0010ba6f, 0x0010ba7a, - 0x0010ba85, 0x0010ba90, 0x0010ba9b, 0x0010baa6, - 0x0010bab1, 0x0010babc, 0x0010bac7, 0x0010bad2, - 0x0010badd, 0x0010bae8, 0x0010baf3, 0x0010bafe, - 0x0010bb09, 0x0010bb14, 0x0010bb1f, 0x0010bb2a, - 0x0010bb35, 0x0010bb40, 0x0010bb4b, 0x0010bb56, - 0x0010bb61, 0x0010bb6c, 0x0010bb77, 0x0010bb82, - 0x0010bb8d, 0x0010bb98, 0x0010bba3, 0x0010bbae, - 0x0010bbb9, 0x0010bbc4, 0x0010bbcf, 0x0010bbda, - 0x0010bbe5, 0x0010bbf0, 0x0010bbfb, 0x0010bc06, - 0x40000000, 0x600070e0, 0x60007820, 0x4a007016, - 0x00010001, 0x58380016, 0x8c000500, 0x05fc07fc, - 0x600c4000, 0x60003002, 0x64807808, 0x583c2808, - 0x8c14053e, 0x05000004, 0x80183040, 0x05fe07fc, - 0x0501f00d, 0x583c2808, 0x82140500, 0x20000400, - 0x82000580, 0x00000400, 0x05020005, 0x82140500, - 0x00000300, 0x90000580, 0x05000007, 0x80204040, - 0x05fe07ee, 0x4a007016, 0x00010000, 0x90000541, - 0x0501f040, 0x650c7808, 0x583c0009, 0x8c000500, - 0x05000005, 0x60002000, 0x4a007016, 0x00010000, - 0x0501f037, 0x65007808, 0x583c5809, 0x65047808, - 0x583c6009, 0x65087808, 0x583c6809, 0x4a007016, - 0x00010000, 0x82102d00, 0xf0000000, 0x90140580, - 0x05000002, 0x0501f020, 0x60202800, 0x60003000, - 0x803000c8, 0x40003800, 0x8030010a, 0x801c3d80, - 0x40300000, 0x80180580, 0x80100400, 0x801c0400, - 0x802c5c00, 0x803400c8, 0x40003800, 0x8034010a, - 0x801c3d80, 0x40340000, 0x80180580, 0x801c0400, - 0x80306400, 0x802c00c8, 0x40003800, 0x802c010a, - 0x801c3d80, 0x402c0000, 0x80180580, 0x801c0400, - 0x80346c00, 0x82183400, 0x9e3779b9, 0x80142840, - 0x05fe07e4, 0x0502000b, 0x402c0000, 0x80040580, - 0x05fe07c7, 0x40300000, 0x80080580, 0x05fe07c4, - 0x40340000, 0x800c0580, 0x05fe07c1, 0x80000580, - 0x1c01f000, 0x1c01f000, 0x42005000, 0x7ff4c000, - 0x58280800, 0x58281001, 0x58281802, 0x58282003, - 0x05fdff98, 0x05020807, 0x82101d00, 0x0fffffff, - 0x480fc021, 0x900c01c0, 0x4803c022, 0x1c01f000, - 0x497bc021, 0x497bc022, 0x4a03c020, 0x00004020, - 0x4a03c011, 0x40200011, 0x6016d800, 0x05027011, - 0x59e00020, 0x90000582, 0x0502000e, 0x05006000, - 0x4203e000, 0x40000000, 0x59e00017, 0x60000800, - 0x8c00050a, 0x05ba0808, 0x8d0c0530, 0x05b60ff4, - 0x05b60ff6, 0x6403c017, 0x4203e000, 0x30000001, - 0x05b1f950, 0x05fdf7ff, 0x59a8088d, 0x8c100502, - 0x05000003, 0x84040d42, 0x0501f007, 0x8c100504, - 0x05000003, 0x84040d44, 0x0501f003, 0x8c100500, - 0x84040d40, 0x4807508d, 0x1c01f000, 0x59a8008d, - 0x8c000502, 0x05000009, 0x4a03508e, 0x0000008b, - 0x4a03508f, 0x0000008b, 0x4a035090, 0x0000008b, - 0x64135091, 0x0501f00c, 0x8c000504, 0x05000006, - 0x65bf508e, 0x65bf508f, 0x65df5090, 0x64035091, - 0x0501f005, 0x64cf508e, 0x64cf508f, 0x64975090, - 0x64035091, 0x1c01f000, 0xddc3f135, - 0x00000000, 0x00000000, 0x00111000, 0x00004503, + 0x0501f805, 0x60058800, 0x05020002, 0x60018800, + 0x1c01f000, 0x42006800, 0x0010b391, 0x58340406, + 0x8c000504, 0x1c01f000, 0x0501f805, 0x60058800, + 0x05020002, 0x60018800, 0x1c01f000, 0x42006800, + 0x0010b391, 0x58340406, 0x8c000508, 0x1c01f000, + 0x59a80006, 0x8c000516, 0x1c01f000, 0x00000001, + 0x00000002, 0x00000004, 0x00000008, 0x00000010, + 0x00000020, 0x00000040, 0x00000080, 0x00000100, + 0x00000200, 0x00000400, 0x00000800, 0x00001000, + 0x00002000, 0x00004000, 0x00008000, 0x00010000, + 0x00020000, 0x00040000, 0x00080000, 0x00100000, + 0x00200000, 0x00400000, 0x00800000, 0x01000000, + 0x02000000, 0x04000000, 0x08000000, 0x10000000, + 0x20000000, 0x40000000, 0x80000000, 0x0010b391, + 0x0010b39c, 0x0010b3a7, 0x0010b3b2, 0x0010b3bd, + 0x0010b3c8, 0x0010b3d3, 0x0010b3de, 0x0010b3e9, + 0x0010b3f4, 0x0010b3ff, 0x0010b40a, 0x0010b415, + 0x0010b420, 0x0010b42b, 0x0010b436, 0x0010b441, + 0x0010b44c, 0x0010b457, 0x0010b462, 0x0010b46d, + 0x0010b478, 0x0010b483, 0x0010b48e, 0x0010b499, + 0x0010b4a4, 0x0010b4af, 0x0010b4ba, 0x0010b4c5, + 0x0010b4d0, 0x0010b4db, 0x0010b4e6, 0x0010b4f1, + 0x0010b4fc, 0x0010b507, 0x0010b512, 0x0010b51d, + 0x0010b528, 0x0010b533, 0x0010b53e, 0x0010b549, + 0x0010b554, 0x0010b55f, 0x0010b56a, 0x0010b575, + 0x0010b580, 0x0010b58b, 0x0010b596, 0x0010b5a1, + 0x0010b5ac, 0x0010b5b7, 0x0010b5c2, 0x0010b5cd, + 0x0010b5d8, 0x0010b5e3, 0x0010b5ee, 0x0010b5f9, + 0x0010b604, 0x0010b60f, 0x0010b61a, 0x0010b625, + 0x0010b630, 0x0010b63b, 0x0010b646, 0x0010b651, + 0x0010b65c, 0x0010b667, 0x0010b672, 0x0010b67d, + 0x0010b688, 0x0010b693, 0x0010b69e, 0x0010b6a9, + 0x0010b6b4, 0x0010b6bf, 0x0010b6ca, 0x0010b6d5, + 0x0010b6e0, 0x0010b6eb, 0x0010b6f6, 0x0010b701, + 0x0010b70c, 0x0010b717, 0x0010b722, 0x0010b72d, + 0x0010b738, 0x0010b743, 0x0010b74e, 0x0010b759, + 0x0010b764, 0x0010b76f, 0x0010b77a, 0x0010b785, + 0x0010b790, 0x0010b79b, 0x0010b7a6, 0x0010b7b1, + 0x0010b7bc, 0x0010b7c7, 0x0010b7d2, 0x0010b7dd, + 0x0010b7e8, 0x0010b7f3, 0x0010b7fe, 0x0010b809, + 0x0010b814, 0x0010b81f, 0x0010b82a, 0x0010b835, + 0x0010b840, 0x0010b84b, 0x0010b856, 0x0010b861, + 0x0010b86c, 0x0010b877, 0x0010b882, 0x0010b88d, + 0x0010b898, 0x0010b8a3, 0x0010b8ae, 0x0010b8b9, + 0x0010b8c4, 0x0010b8cf, 0x0010b8da, 0x0010b8e5, + 0x0010b8f0, 0x0010b8fb, 0x0010b906, 0x0010b911, + 0x0010b91c, 0x0010b927, 0x0010b932, 0x0010b93d, + 0x0010b948, 0x0010b953, 0x0010b95e, 0x0010b969, + 0x0010b974, 0x0010b97f, 0x0010b98a, 0x0010b995, + 0x0010b9a0, 0x0010b9ab, 0x0010b9b6, 0x0010b9c1, + 0x0010b9cc, 0x0010b9d7, 0x0010b9e2, 0x0010b9ed, + 0x0010b9f8, 0x0010ba03, 0x0010ba0e, 0x0010ba19, + 0x0010ba24, 0x0010ba2f, 0x0010ba3a, 0x0010ba45, + 0x0010ba50, 0x0010ba5b, 0x0010ba66, 0x0010ba71, + 0x0010ba7c, 0x0010ba87, 0x0010ba92, 0x0010ba9d, + 0x0010baa8, 0x0010bab3, 0x0010babe, 0x0010bac9, + 0x0010bad4, 0x0010badf, 0x0010baea, 0x0010baf5, + 0x0010bb00, 0x0010bb0b, 0x0010bb16, 0x0010bb21, + 0x0010bb2c, 0x0010bb37, 0x0010bb42, 0x0010bb4d, + 0x0010bb58, 0x0010bb63, 0x0010bb6e, 0x0010bb79, + 0x0010bb84, 0x0010bb8f, 0x0010bb9a, 0x0010bba5, + 0x0010bbb0, 0x0010bbbb, 0x0010bbc6, 0x0010bbd1, + 0x0010bbdc, 0x0010bbe7, 0x0010bbf2, 0x0010bbfd, + 0x0010bc08, 0x0010bc13, 0x0010bc1e, 0x0010bc29, + 0x0010bc34, 0x0010bc3f, 0x0010bc4a, 0x0010bc55, + 0x0010bc60, 0x0010bc6b, 0x0010bc76, 0x0010bc81, + 0x0010bc8c, 0x0010bc97, 0x0010bca2, 0x0010bcad, + 0x0010bcb8, 0x0010bcc3, 0x0010bcce, 0x0010bcd9, + 0x0010bce4, 0x0010bcef, 0x0010bcfa, 0x0010bd05, + 0x0010bd10, 0x0010bd1b, 0x0010bd26, 0x0010bd31, + 0x0010bd3c, 0x0010bd47, 0x0010bd52, 0x0010bd5d, + 0x0010bd68, 0x0010bd73, 0x0010bd7e, 0x0010bd89, + 0x0010bd94, 0x0010bd9f, 0x0010bdaa, 0x0010bdb5, + 0x0010bdc0, 0x0010bdcb, 0x0010bdd6, 0x0010bde1, + 0x0010bdec, 0x0010bdf7, 0x0010be02, 0x0010be0d, + 0x0010be18, 0x0010be23, 0x0010be2e, 0x0010be39, + 0x0010be44, 0x0010be4f, 0x0010be5a, 0x0010be65, + 0x0010be70, 0x0010be7b, 0x0010be86, 0x40000000, + 0x600070e0, 0x60007820, 0x4a007016, 0x00010001, + 0x58380016, 0x8c000500, 0x05fc07fc, 0x600c4000, + 0x60003002, 0x64807808, 0x583c2808, 0x8c14053e, + 0x05000004, 0x80183040, 0x05fe07fc, 0x0501f00d, + 0x583c2808, 0x82140500, 0x20000400, 0x82000580, + 0x00000400, 0x05020005, 0x82140500, 0x00000300, + 0x90000580, 0x05000007, 0x80204040, 0x05fe07ee, + 0x4a007016, 0x00010000, 0x90000541, 0x0501f040, + 0x650c7808, 0x583c0009, 0x8c000500, 0x05000005, + 0x60002000, 0x4a007016, 0x00010000, 0x0501f037, + 0x65007808, 0x583c5809, 0x65047808, 0x583c6009, + 0x65087808, 0x583c6809, 0x4a007016, 0x00010000, + 0x82102d00, 0xf0000000, 0x90140580, 0x05000002, + 0x0501f020, 0x60202800, 0x60003000, 0x803000c8, + 0x40003800, 0x8030010a, 0x801c3d80, 0x40300000, + 0x80180580, 0x80100400, 0x801c0400, 0x802c5c00, + 0x803400c8, 0x40003800, 0x8034010a, 0x801c3d80, + 0x40340000, 0x80180580, 0x801c0400, 0x80306400, + 0x802c00c8, 0x40003800, 0x802c010a, 0x801c3d80, + 0x402c0000, 0x80180580, 0x801c0400, 0x80346c00, + 0x82183400, 0x9e3779b9, 0x80142840, 0x05fe07e4, + 0x0502000b, 0x402c0000, 0x80040580, 0x05fe07c7, + 0x40300000, 0x80080580, 0x05fe07c4, 0x40340000, + 0x800c0580, 0x05fe07c1, 0x80000580, 0x1c01f000, + 0x1c01f000, 0x42005000, 0x7ff4c000, 0x58280800, + 0x58281001, 0x58281802, 0x58282003, 0x05fdff98, + 0x05020807, 0x82101d00, 0x0fffffff, 0x480fc021, + 0x900c01c0, 0x4803c022, 0x1c01f000, 0x497bc021, + 0x497bc022, 0x4a03c020, 0x00004020, 0x4a03c011, + 0x40200011, 0x6016d800, 0x05027011, 0x59e00020, + 0x90000582, 0x0502000e, 0x05006000, 0x4203e000, + 0x40000000, 0x59e00017, 0x60000800, 0x8c00050a, + 0x05b60d3f, 0x8d0c0530, 0x05b60d2b, 0x05b60d2d, + 0x6403c017, 0x4203e000, 0x30000001, 0x05adfe89, + 0x05fdf7ff, 0x59a8088d, 0x8c100502, 0x05000003, + 0x84040d42, 0x0501f007, 0x8c100504, 0x05000003, + 0x84040d44, 0x0501f003, 0x8c100500, 0x84040d40, + 0x4807508d, 0x1c01f000, 0x59a8008d, 0x8c000502, + 0x05000009, 0x4a03508e, 0x0000008b, 0x4a03508f, + 0x0000008b, 0x4a035090, 0x0000008b, 0x64135091, + 0x0501f00c, 0x8c000504, 0x05000006, 0x65bf508e, + 0x65bf508f, 0x65df5090, 0x64035091, 0x0501f005, + 0x64cf508e, 0x64cf508f, 0x64975090, 0x64035091, + 0x1c01f000, 0x7334598d, + 0x00000000, 0x00000000, 0x00111000, 0x00004538, 0x00000000, 0x00000000, 0x00020000, 0x00000d9e, - 0x916c0583, 0x01020181, 0x42000000, 0x0010ac31, + 0x916c0583, 0x01020181, 0x42000000, 0x0010aeb1, 0x50000000, 0x800001c0, 0x05020a32, 0x0501f9ee, 0x0501fd66, 0x0501fb68, 0x59a8006c, 0x80000540, 0x01020e90, 0x0505f9f3, 0x05fdf7f2, 0x915c04a0, @@ -23210,7 +23442,7 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x8c040508, 0x010209ef, 0x42007000, 0x00020d9f, 0x58380000, 0x90001484, 0x0c001003, 0x0101f9ef, 0x1c01f000, 0x00020031, 0x00020071, 0x00020078, - 0x00101060, 0x82040d00, 0x43200f80, 0x01020633, + 0x0010105e, 0x82040d00, 0x43200f80, 0x01020633, 0x58380002, 0x80000540, 0x05000008, 0x0101f626, 0x82040d00, 0x43200f80, 0x01020633, 0x58380002, 0x80000540, 0x05fe07d6, 0x58386001, 0x58300008, @@ -23230,7 +23462,7 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x58300802, 0x82040580, 0x00000100, 0x01020640, 0x4d2c0000, 0x40325800, 0x0101fd8d, 0x5c025800, 0x0101f64b, 0x59b800ea, 0x82000d00, 0xf2000038, - 0x010207c2, 0x8c000510, 0x010007c1, 0x59ba60e0, + 0x010207c0, 0x8c000510, 0x010007bf, 0x59ba60e0, 0x81300182, 0x0502104c, 0x05002030, 0x8532653e, 0x59300407, 0x90000583, 0x0502002a, 0x59300203, 0x90000584, 0x05020027, 0x59325809, 0x59300004, @@ -23241,8 +23473,8 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x0505fb7a, 0x5934000f, 0x8d0c0512, 0x05020005, 0x5934140b, 0x80081040, 0x05001002, 0x480a6c0b, 0x80000540, 0x05020a0b, 0x59b800ea, 0x8c000510, - 0x05fe07d7, 0x1c01f000, 0x0131fb35, 0x05fc07e6, - 0x0101f7ba, 0x59300221, 0x48025c10, 0x05fdf7e8, + 0x05fe07d7, 0x1c01f000, 0x0131fcf7, 0x05fc07e6, + 0x0101f7b8, 0x59300221, 0x48025c10, 0x05fdf7e8, 0x61567000, 0x0501f024, 0x83326500, 0x3fffffff, 0x59300407, 0x90000583, 0x05020015, 0x59325809, 0x5932680a, 0x4a025a05, 0x00000103, 0x497a580a, @@ -23251,15 +23483,15 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x5934140b, 0x80081040, 0x05001002, 0x480a6c0b, 0x80000540, 0x050209e7, 0x05fdf7dc, 0x61527000, 0x0501f009, 0x83300500, 0x60000000, 0x05000011, - 0x81326580, 0x8000013a, 0x82000400, 0x001007c6, - 0x50027000, 0x59300c07, 0x90040582, 0x010007ba, + 0x81326580, 0x8000013a, 0x82000400, 0x001007c4, + 0x50027000, 0x59300c07, 0x90040582, 0x010007b8, 0x59300004, 0x8c00053e, 0x05020003, 0x0505fb59, - 0x05fdf7ca, 0x0131fb35, 0x05fc07fd, 0x0101f7ba, - 0x83300500, 0x1f000000, 0x010007bc, 0x81326580, + 0x05fdf7ca, 0x0131fcf7, 0x05fc07fd, 0x0101f7b8, + 0x83300500, 0x1f000000, 0x010007ba, 0x81326580, 0x80000130, 0x90000c94, 0x010219ef, 0x1201f000, - 0x001007ca, 0x82000500, 0xf0000000, 0x82040d00, + 0x001007c8, 0x82000500, 0xf0000000, 0x82040d00, 0x0fffffff, 0x80040d40, 0x4807c857, 0x59b800ea, - 0x8c000516, 0x010600b1, 0x480770e1, 0x1c01f000, + 0x8c000516, 0x010600af, 0x480770e1, 0x1c01f000, 0x59325809, 0x412c7000, 0x58380a05, 0x82040d00, 0x000000ff, 0xb00405a8, 0x01040314, 0xb00405aa, 0x01040314, 0xb00405ba, 0x0104032d, 0xb00405b2, @@ -23290,43 +23522,43 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x4802600c, 0x481a600d, 0x481e600e, 0x480e600f, 0x843c7d4a, 0x403c1000, 0x1c01f000, 0x59e00004, 0x8c00050e, 0x05fe06b2, 0x1c01f000, 0x42001000, - 0x0010cfad, 0x58080009, 0x80000540, 0x010a024a, - 0x4a001003, 0x0010cfb6, 0x4c080000, 0x0501f812, + 0x0010d22d, 0x58080009, 0x80000540, 0x010a0248, + 0x4a001003, 0x0010d236, 0x4c080000, 0x0501f812, 0x5c001000, 0x48141009, 0x480c1006, 0x48101007, 0x64001001, 0x64101005, 0x64041004, 0x05fdf65d, - 0x58300802, 0x82040580, 0x00000100, 0x010a0259, - 0x82300580, 0x0010cfad, 0x010a0254, 0x49786009, + 0x58300802, 0x82040580, 0x00000100, 0x010a0257, + 0x82300580, 0x0010d22d, 0x010a0252, 0x49786009, 0x1c01f000, 0x61901800, 0x800c1840, 0x05000006, 0x64070000, 0x40000000, 0x59800000, 0x8c000500, - 0x05fc07fa, 0x010802ab, 0x600028f4, 0x58142024, + 0x05fc07fa, 0x010802a9, 0x600028f4, 0x58142024, 0x58141823, 0x58142825, 0x64030000, 0x1c01f000, 0x4c000000, 0x4df00000, 0x4203e000, 0xb0100000, - 0x41f00000, 0x81fe1500, 0x8d080512, 0x010a0c80, + 0x41f00000, 0x81fe1500, 0x8d080512, 0x010a0c7e, 0x8d08051c, 0x0506095d, 0x8d080518, 0x05060990, 0x8d08051a, 0x05fe0ed8, 0x83080500, 0x00000d00, 0x05020804, 0x5c03e000, 0x5c000000, 0x1801f000, - 0x8d080516, 0x010a0ac6, 0x8d080514, 0x05fe0fbc, + 0x8d080516, 0x010a0ac4, 0x8d080514, 0x05fe0fbc, 0x8d080508, 0x01060ee2, 0x8d080500, 0x050608e3, - 0x8d08050c, 0x010a0b85, 0x8d08050a, 0x010a001b, - 0x1c01f000, 0x42000000, 0x0010ac37, 0x50000000, - 0x8c000504, 0x05000014, 0x42000000, 0x0010ac37, + 0x8d08050c, 0x010a0b83, 0x8d08050a, 0x010a0019, + 0x1c01f000, 0x42000000, 0x0010aeb7, 0x50000000, + 0x8c000504, 0x05000014, 0x42000000, 0x0010aeb7, 0x50000000, 0x8c000502, 0x05020002, 0x1c01f000, 0x4df00000, 0x4203e000, 0x50000000, 0x42034000, - 0x0010ac19, 0x59a0001e, 0x59a1d806, 0x84000502, + 0x0010ae99, 0x59a0001e, 0x59a1d806, 0x84000502, 0x4803401e, 0x58ec0008, 0x0801f800, 0x5c03e000, 0x1c01f000, 0x05027002, 0x05026002, 0x1c01f000, 0x4df00000, 0x4203e000, 0x50000000, 0x59e00020, 0xb0000d85, 0x05000003, 0xb0000d84, 0x05020007, 0x4803c857, 0x42000800, 0x00020d9f, 0x58040800, 0x90040d80, 0x05020019, 0x0101fd7c, 0x05000017, - 0x412dd800, 0x48efc857, 0x0119fddd, 0x42034000, - 0x0010ac19, 0x49a1d80a, 0x48ef4006, 0x59a0001e, + 0x412dd800, 0x48efc857, 0x0119fea8, 0x42034000, + 0x0010ae99, 0x49a1d80a, 0x48ef4006, 0x59a0001e, 0x84000544, 0x4803401e, 0x59e00020, 0x4803c857, 0x59e00021, 0x4803c857, 0x59e00022, 0x4803c857, 0x59e00023, 0x4803c857, 0x59e00024, 0x4803c857, - 0x0111f917, 0x0111f92f, 0x5c03e000, 0x1c01f000, + 0x0111f9ba, 0x0111f9d2, 0x5c03e000, 0x1c01f000, 0x4c5c0000, 0x4da00000, 0x4df00000, 0x4203e000, - 0x50000000, 0x05006062, 0x42034000, 0x0010ac19, + 0x50000000, 0x05006062, 0x42034000, 0x0010ae99, 0x59a01018, 0x59a01819, 0x800c19c0, 0x05020009, 0x59a0381c, 0x801c39c0, 0x010009ef, 0x49a3c857, 0x481fc857, 0x59a0041d, 0x801c3c00, 0x0501f00a, @@ -23352,8 +23584,8 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x42000800, 0x25000000, 0x585c1800, 0x585c3001, 0x900c19c0, 0x901831c0, 0x0101fab2, 0x5c03e000, 0x5c034000, 0x5c00b800, 0x1c01f000, 0x910c0503, - 0x011e0714, 0x59340400, 0x82000580, 0x00000606, - 0x011e06ee, 0x5934000d, 0x80027d40, 0x011e071d, + 0x011e07e7, 0x59340400, 0x82000580, 0x00000606, + 0x011e07c1, 0x5934000d, 0x80027d40, 0x011e07f0, 0x5934000f, 0x59341203, 0x80080540, 0x05020021, 0x8d0c0512, 0x05000010, 0x0505f987, 0x05000017, 0x59a8008e, 0x80000040, 0x05fe07ff, 0x492e6009, @@ -23368,7 +23600,7 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x80000d40, 0x05020008, 0x492e680f, 0x592c0407, 0x800000c2, 0x800018c4, 0x800c0400, 0x48025804, 0x1c01f000, 0x492c0800, 0x05fdf7f9, 0x83440c80, - 0x00000800, 0x05021009, 0x83440400, 0x0010a380, + 0x00000800, 0x05021009, 0x83440400, 0x0010a600, 0x50000000, 0x80000540, 0x05000004, 0x40026800, 0x80000580, 0x1c01f000, 0x90000541, 0x1c01f000, 0x59340203, 0x80000540, 0x0502002f, 0x4d300000, @@ -23386,22 +23618,22 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x5c026000, 0x1c01f000, 0x497a5800, 0x4932580a, 0x641a6407, 0x641e6203, 0x0501f802, 0x05fdf7eb, 0x592e4408, 0x83224500, 0x000000ff, 0x83200400, - 0x0010a0ec, 0x50024800, 0x4926601d, 0x592c020d, - 0x48026202, 0x59240206, 0x8c000510, 0x012202f5, - 0x8d0c050e, 0x012202f3, 0x59240200, 0x8c000516, - 0x012202f1, 0x59340200, 0x8c000518, 0x012202ef, - 0x64025a07, 0x8c000508, 0x012202ed, 0x492e6009, + 0x0010a3b3, 0x50024800, 0x4926601d, 0x592c020d, + 0x48026202, 0x59240206, 0x8c000510, 0x012203cf, + 0x8d0c050e, 0x012203cd, 0x59240200, 0x8c000516, + 0x012203cb, 0x59340200, 0x8c000518, 0x012203c9, + 0x64025a07, 0x8c000508, 0x012203c7, 0x492e6009, 0x4d3c0000, 0x417a7800, 0x0501ff96, 0x5c027800, 0x1c01f000, 0x58040001, 0x49680800, 0x49780801, 0x815eb800, 0x4006d000, 0x80000d40, 0x05fe07fa, 0x497a5801, 0x59c80000, 0x82000540, 0x00001200, 0x48039000, 0x1c01f000, 0x59980013, 0x48032823, 0x59d8010b, 0x48033014, 0x1c01f000, 0x592c0405, - 0x8c00051e, 0x012207d9, 0x497a5800, 0x8d0c0526, + 0x8c00051e, 0x012600d6, 0x497a5800, 0x8d0c0526, 0x0502000d, 0x0502d007, 0x592c0001, 0x492fb107, 0x80000d40, 0x05fe0fe4, 0x0500e0de, 0x1c01f000, - 0x0500e8dc, 0x05fcd7f9, 0x42000000, 0x0010afaf, - 0x014dff98, 0x0501f939, 0x0500d944, 0x0500e0d5, + 0x0500e8dc, 0x05fcd7f9, 0x42000000, 0x0010b22f, + 0x0151fa48, 0x0501f939, 0x0500d944, 0x0500e0d5, 0x59d80105, 0x82000d00, 0x01218780, 0x05020152, 0x1c01f000, 0x59980011, 0x0c01f001, 0x0002037b, 0x0002037c, 0x00020387, 0x000203c7, 0x1c01f000, @@ -23486,8 +23718,8 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x58040000, 0x4807b107, 0x80000d40, 0x05020005, 0x48033016, 0x850e1d26, 0x48033017, 0x1c01f000, 0x05fcd7f8, 0x05fdf7fd, 0x59d80105, 0x82000500, - 0x01218780, 0x05020004, 0x42000000, 0x0010afaf, - 0x014df798, 0x4803c857, 0x485fc857, 0x8c00050e, + 0x01218780, 0x05020004, 0x42000000, 0x0010b22f, + 0x0151f248, 0x4803c857, 0x485fc857, 0x8c00050e, 0x010209e5, 0x4203e000, 0x50000000, 0x6010b900, 0x0101f1f3, 0x05fce777, 0x59d80105, 0x82000500, 0x01218780, 0x05fe07f4, 0x8d0c0524, 0x05020002, @@ -23531,9 +23763,9 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x05020007, 0x6403c017, 0x4203e000, 0x30000001, 0x1c01f000, 0x05fdfb1f, 0x05fdf7fb, 0x8c000500, 0x05fe0c3f, 0x05fdf7f8, 0x41700000, 0x0c01f001, - 0x00104e19, 0x0002057d, 0x00104e19, 0x00020639, - 0x00104e18, 0x00104e18, 0x00104e18, 0x00104e18, - 0x00105305, 0x0501002e, 0x59980004, 0x80000540, + 0x00104f1e, 0x0002057d, 0x00104f1e, 0x00020639, + 0x00104f1d, 0x00104f1d, 0x00104f1d, 0x00104f1d, + 0x0010547e, 0x0501002e, 0x59980004, 0x80000540, 0x05020032, 0x0502c018, 0x6042f800, 0x4df00000, 0x4203e000, 0x50000000, 0x49db3003, 0x59da5808, 0x592c2a05, 0x497a5800, 0x497a5801, 0x82140500, @@ -23541,72 +23773,72 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x5c03e000, 0x817ef840, 0x05000007, 0x916c0583, 0x05020005, 0x91700581, 0x0502000e, 0x05010015, 0x05fcc7eb, 0x0500fb67, 0x0500b353, 0x59d40005, - 0x82000500, 0x43218780, 0x012a00f7, 0x59d80005, - 0x82000500, 0x43218780, 0x012a00fd, 0x1c01f000, + 0x82000500, 0x43218780, 0x012a020f, 0x59d80005, + 0x82000500, 0x43218780, 0x012a0215, 0x1c01f000, 0x91700583, 0x05000894, 0x91700581, 0x05fe07f2, 0x05010004, 0x05fcc7da, 0x05fdf7ef, 0x6042f800, 0x4df00000, 0x4203e000, 0x50000000, 0x49d73003, 0x59d65808, 0x05fdf7d7, 0x4df00000, 0x4203e000, 0x50000000, 0x40025800, 0x592c2a05, 0x497b3003, - 0x497b3004, 0x6042f800, 0x05fdf7d1, 0x0125fe6a, - 0x5c03e000, 0x05fdf7dc, 0x00104e6a, 0x00104e6a, - 0x00104e6a, 0x00104e6a, 0x00104ef2, 0x00104e6a, - 0x00104e6a, 0x00104e6a, 0x00104e6a, 0x00104e6a, - 0x00104e76, 0x00104e6a, 0x00104e6a, 0x00104e6a, - 0x00104f0f, 0x00104e6a, 0x00104e6a, 0x00104e6a, - 0x000207b6, 0x00104e6a, 0x0002085f, 0x00104e6a, - 0x00104e6a, 0x00104e6a, 0x00020655, 0x00104e6a, - 0x00104e6a, 0x00104e6a, 0x00104e6a, 0x00104e6a, - 0x00104e6a, 0x00104e6a, 0x00104e6a, 0x00104e6a, - 0x00104e6a, 0x00104e6a, 0x00104e6a, 0x00104e6a, - 0x00104e6a, 0x00104e6a, 0x00104e6a, 0x00104eb8, - 0x00104e6a, 0x00104e6a, 0x00104e6a, 0x00104e6a, - 0x00104e6a, 0x00104e6a, 0x00105109, 0x0010521a, - 0x00104e6a, 0x0010509b, 0x00104e6a, 0x00104e6a, - 0x00104e6a, 0x00104e6a, 0x00104e6a, 0x001050de, - 0x00104e6a, 0x00104e6a, 0x00104e6a, 0x00104e6a, - 0x00104e6a, 0x00104e6a, 0x00104e6a, 0x00104e6a, - 0x00104e6a, 0x00104e6a, 0x00104e6a, 0x00104e6a, - 0x00104e6a, 0x00104e6a, 0x001052d3, 0x00104e6a, - 0x00104e6a, 0x00104e6a, 0x00104e6a, 0x00104e6a, - 0x00104e6a, 0x00104e6a, 0x00104e6a, 0x00104e6a, - 0x000208bc, 0x001052a1, 0x00104e6a, 0x001052c9, - 0x00104e6a, 0x00104e6a, 0x00104e6a, 0x00104e6a, - 0x00104e6a, 0x00104e6a, 0x00104e6a, 0x00104e6a, - 0x00104e6a, 0x00104e6a, 0x00104e6a, 0x00104e6a, - 0x00104e6a, 0x00104e6a, 0x00104e6a, 0x00104e6a, - 0x00104e6a, 0x00104e6a, 0x00020660, 0x00104e6a, - 0x00020668, 0x00104e6a, 0x00104e6a, 0x00104e6a, - 0x00104e6a, 0x00104e6a, 0x00104e6a, 0x00104e6a, - 0x0002080f, 0x00104e6a, 0x00104e6a, 0x00104e6a, - 0x00104e6a, 0x00104e6a, 0x00104e6a, 0x00104e6a, + 0x497b3004, 0x6042f800, 0x05fdf7d1, 0x0125ff6f, + 0x5c03e000, 0x05fdf7dc, 0x00104f6f, 0x00104f6f, + 0x00104f6f, 0x00104f6f, 0x00104ff7, 0x00104f6f, + 0x00104f6f, 0x00104f6f, 0x00104f6f, 0x00104f6f, + 0x00104f7b, 0x00104f6f, 0x00104f6f, 0x00104f6f, + 0x00105014, 0x00104f6f, 0x00104f6f, 0x00104f6f, + 0x000207b6, 0x00104f6f, 0x0002085f, 0x00104f6f, + 0x00104f6f, 0x00104f6f, 0x00020655, 0x00104f6f, + 0x00104f6f, 0x00104f6f, 0x00104f6f, 0x00104f6f, + 0x00104f6f, 0x00104f6f, 0x00104f6f, 0x00104f6f, + 0x00104f6f, 0x00104f6f, 0x00104f6f, 0x00104f6f, + 0x00104f6f, 0x00104f6f, 0x00104f6f, 0x00104fbd, + 0x00104f6f, 0x00104f6f, 0x00104f6f, 0x00104f6f, + 0x00104f6f, 0x00104f6f, 0x00105221, 0x00105370, + 0x00104f6f, 0x001051b1, 0x00104f6f, 0x00104f6f, + 0x00104f6f, 0x00104f6f, 0x00104f6f, 0x001051f6, + 0x00104f6f, 0x00104f6f, 0x00104f6f, 0x00104f6f, + 0x00104f6f, 0x00104f6f, 0x00104f6f, 0x00104f6f, + 0x00104f6f, 0x00104f6f, 0x00104f6f, 0x00104f6f, + 0x00104f6f, 0x00104f6f, 0x0010544c, 0x00104f6f, + 0x00104f6f, 0x00104f6f, 0x00104f6f, 0x00104f6f, + 0x00104f6f, 0x00104f6f, 0x00104f6f, 0x00104f6f, + 0x000208bc, 0x0010541a, 0x00104f6f, 0x00105442, + 0x00104f6f, 0x00104f6f, 0x00104f6f, 0x00104f6f, + 0x00104f6f, 0x00104f6f, 0x00104f6f, 0x00104f6f, + 0x00104f6f, 0x00104f6f, 0x00104f6f, 0x00104f6f, + 0x00104f6f, 0x00104f6f, 0x00104f6f, 0x00104f6f, + 0x00104f6f, 0x00104f6f, 0x00020660, 0x00104f6f, + 0x00020668, 0x00104f6f, 0x00104f6f, 0x00104f6f, + 0x00104f6f, 0x00104f6f, 0x00104f6f, 0x00104f6f, + 0x0002080f, 0x00104f6f, 0x00104f6f, 0x00104f6f, + 0x00104f6f, 0x00104f6f, 0x00104f6f, 0x00104f6f, 0x00020668, 0x4df00000, 0x4203e000, 0x50000000, - 0x59981003, 0x800811c0, 0x0124061d, 0x58080005, - 0x82000d00, 0x43218780, 0x012a00fd, 0x8c000508, - 0x0124061b, 0x580a5808, 0x592c0205, 0x497a5800, + 0x59981003, 0x800811c0, 0x01240722, 0x58080005, + 0x82000d00, 0x43218780, 0x012a0215, 0x8c000508, + 0x01240720, 0x580a5808, 0x592c0205, 0x497a5800, 0x497a5801, 0x82000500, 0x000000ff, 0xb0000c8b, - 0x0126161a, 0x1201f800, 0x00104e1f, 0x5c03e000, + 0x0126171f, 0x1201f800, 0x00104f24, 0x5c03e000, 0x91700583, 0x05fc07e8, 0x0500faae, 0x0500b29a, 0x1c01f000, 0x80140110, 0x80000040, 0x0500013a, - 0x01241670, 0x4a033006, 0x00020791, 0x48033000, + 0x01241775, 0x4a033006, 0x00020791, 0x48033000, 0x492f3001, 0x492f3002, 0x600ee000, 0x1c01f000, - 0x497a5802, 0x80140110, 0x80000040, 0x01240670, - 0x01241670, 0x4a033006, 0x000206f8, 0x05fdf7f4, - 0x497a5802, 0x80140110, 0x80000040, 0x01260670, - 0x592c0208, 0x82000480, 0x00001001, 0x0126167c, - 0x592c0014, 0xb0000580, 0x0126067c, 0x4d2c0000, + 0x497a5802, 0x80140110, 0x80000040, 0x01240775, + 0x01241775, 0x4a033006, 0x000206f8, 0x05fdf7f4, + 0x497a5802, 0x80140110, 0x80000040, 0x01260775, + 0x592c0208, 0x82000480, 0x00001001, 0x01261781, + 0x592c0014, 0xb0000580, 0x01260781, 0x4d2c0000, 0x0101fd69, 0x05000010, 0x412c6800, 0x5c025800, - 0x600ae000, 0x42001000, 0x0010ccbb, 0x592c2012, + 0x600ae000, 0x42001000, 0x0010cf3b, 0x592c2012, 0x592c2813, 0x90340402, 0x48001003, 0x48101006, 0x48141007, 0x48341009, 0x492c100a, 0x05fdf999, 0x1c01f000, 0x5c025800, 0x492f3000, 0x6022e000, 0x4a033005, 0x0002068b, 0x1c01f000, 0x6006e000, 0x412c6800, 0x599a5800, 0x05fdf7ea, 0x4d2c0000, 0x5832580a, 0x592c5a05, 0x4978600a, 0x812e59c0, - 0x012406b0, 0x58300002, 0x82000580, 0x00000100, - 0x01260696, 0x42000000, 0x0010ccba, 0x50007000, + 0x012407b5, 0x58300002, 0x82000580, 0x00000100, + 0x0126079b, 0x42000000, 0x0010cf3a, 0x50007000, 0x58306809, 0x58340002, 0x592c0806, 0x80040580, - 0x0126069a, 0x58340803, 0x58341004, 0x58341805, + 0x0126079f, 0x58340803, 0x58341004, 0x58341805, 0x48065812, 0x480a5813, 0x480e5814, 0x822c0d80, 0x0000016a, 0x0502000e, 0x592c0a0b, 0x58342c06, 0x5834180c, 0x5834200d, 0x5834100e, 0x8c040504, @@ -23614,9 +23846,9 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x4810680a, 0x4808680b, 0x0501f035, 0x592c0c0b, 0x90040d04, 0x592c0408, 0x80000110, 0x90000508, 0x80040d40, 0x05fdf7ee, 0x82080500, 0xffff0003, - 0x0126069a, 0x8c140510, 0x05000016, 0x5834380f, + 0x0126079f, 0x8c140510, 0x05000016, 0x5834380f, 0x58344010, 0x58343011, 0x8c040506, 0x05000004, - 0x82180500, 0xffff0003, 0x0126069a, 0x8c040504, + 0x82180500, 0xffff0003, 0x0126079f, 0x8c040504, 0x05020009, 0x8c040506, 0x0500001d, 0x481c7006, 0x48207007, 0x40181000, 0x603c3000, 0x607c3800, 0x0501f00f, 0x481c7010, 0x48207011, 0x48187012, @@ -23624,16 +23856,16 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x60303000, 0x60683800, 0x8c040506, 0x05020002, 0x60603800, 0x480c7006, 0x48107007, 0x481c700f, 0x492c700a, 0x4818700d, 0x4834700b, 0x48365801, - 0x65286805, 0x5c025800, 0x0129f2f3, 0x48365801, + 0x65286805, 0x5c025800, 0x0129f46c, 0x48365801, 0x65286805, 0x6006e000, 0x40341000, 0x822c0580, 0x0000016a, 0x05020004, 0x0501f80e, 0x5c025800, 0x1c01f000, 0x0501f92e, 0x5c025800, 0x1c01f000, - 0x592c0001, 0x80001540, 0x01240670, 0x58080a05, - 0x82040d00, 0x000000ff, 0xb004058a, 0x01260676, + 0x592c0001, 0x80001540, 0x01240775, 0x58080a05, + 0x82040d00, 0x000000ff, 0xb004058a, 0x0126077b, 0x58080406, 0x8c000510, 0x0500008f, 0x4d2c0000, 0x4c080000, 0x05fdf90e, 0x5c001000, 0x05000008, 0x412c6800, 0x5c025800, 0x48365802, 0x592c5a0b, - 0x0501f80e, 0x05000084, 0x0125f67c, 0x5c025800, + 0x0501f80e, 0x05000084, 0x0125f781, 0x5c025800, 0x492f3000, 0x6022e000, 0x4a033005, 0x00020715, 0x1c01f000, 0x6006e000, 0x412c6800, 0x599a5800, 0x592c1001, 0x05fdf7f1, 0x592c2208, 0x58084809, @@ -23667,87 +23899,87 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x59a8000a, 0x812c0480, 0x05021005, 0x0101fd8c, 0x5c025800, 0x497a5802, 0x1c01f000, 0x5c025800, 0x05fdf7fe, 0x592e8a07, 0x83440c80, 0x000007f0, - 0x0126167c, 0x8d0c050e, 0x012606c0, 0x592e4411, - 0x81224110, 0x83440400, 0x0010a380, 0x50000000, - 0x80026d40, 0x012406d3, 0x59340013, 0x80000130, - 0x81200580, 0x012606d3, 0x5934000a, 0x8c00052e, - 0x012606d9, 0x05fdfb02, 0x012606d5, 0x1c01f000, + 0x01261781, 0x8d0c050e, 0x012607c5, 0x592e4411, + 0x81224110, 0x83440400, 0x0010a600, 0x50000000, + 0x80026d40, 0x012407d8, 0x59340013, 0x80000130, + 0x81200580, 0x012607d8, 0x5934000a, 0x8c00052e, + 0x012607de, 0x05fdfb02, 0x012607da, 0x1c01f000, 0x59980802, 0x59980000, 0x48065800, 0x492c0801, 0x492f3002, 0x80000040, 0x48033000, 0x05000002, 0x1c01f000, 0x599a5801, 0x59980006, 0x6006e000, - 0x0801f800, 0x1c01f000, 0x80140110, 0x01240670, + 0x0801f800, 0x1c01f000, 0x80140110, 0x01240775, 0x80000040, 0x05020009, 0x592c240b, 0x8c100504, 0x0500000a, 0x592c0208, 0x82000c80, 0x00001001, - 0x0126167c, 0x0129f2e3, 0x4a033006, 0x000207c5, + 0x01261781, 0x0129f45c, 0x4a033006, 0x000207c5, 0x05fdf697, 0x592c240b, 0x592e8a07, 0x417a7800, 0x592e4408, 0x83224500, 0x000000ff, 0x83200580, - 0x000000ff, 0x0128003f, 0x83200400, 0x0010a0ec, - 0x50024800, 0x83440c80, 0x000007f0, 0x012a1038, - 0x83440c00, 0x0010a380, 0x50040000, 0x80026d40, - 0x0128003a, 0x59340013, 0x80000130, 0x81200580, - 0x012a003a, 0x59340002, 0x592c0809, 0x80040580, - 0x82000500, 0x00ffffff, 0x0126067c, 0x59243a00, - 0x901c0503, 0x90000583, 0x012a0035, 0x592e600a, - 0x497a5809, 0x83300480, 0x001102e4, 0x01281058, - 0xa1300495, 0x012a1000, 0x592c0a0d, 0x59300202, - 0x80040580, 0x012a0058, 0x4936600a, 0x4926601d, - 0x8c10051c, 0x012607f4, 0x59240206, 0x8c000510, - 0x012a0070, 0x8d0c050e, 0x012607e0, 0x8c1c0516, - 0x012a0067, 0x59340200, 0x8c000518, 0x012a0055, - 0x59300c07, 0x90040586, 0x012a0073, 0x8c100508, - 0x012607d6, 0x59300809, 0x497a5804, 0x64025a07, - 0x800409c0, 0x012607db, 0x59300416, 0x8c000516, - 0x012a005b, 0x492e6009, 0x0501f2ce, 0x497a5802, - 0x80140110, 0x01240670, 0x80000040, 0x01240670, - 0x592c0a08, 0x82040c80, 0x00001001, 0x0126167c, + 0x000000ff, 0x01280152, 0x83200400, 0x0010a3b3, + 0x50024800, 0x83440c80, 0x000007f0, 0x012a114b, + 0x83440c00, 0x0010a600, 0x50040000, 0x80026d40, + 0x0128014d, 0x59340013, 0x80000130, 0x81200580, + 0x012a014d, 0x59340002, 0x592c0809, 0x80040580, + 0x82000500, 0x00ffffff, 0x01260781, 0x59243a00, + 0x901c0503, 0x90000583, 0x012a0148, 0x592e600a, + 0x497a5809, 0x83300480, 0x00110514, 0x0128116b, + 0xa1300495, 0x012a1113, 0x592c0a0d, 0x59300202, + 0x80040580, 0x012a016b, 0x4936600a, 0x4926601d, + 0x8c10051c, 0x012a0107, 0x59240206, 0x8c000510, + 0x012a0183, 0x8d0c050e, 0x012a00f3, 0x8c1c0516, + 0x012a017a, 0x59340200, 0x8c000518, 0x012a0168, + 0x59300c07, 0x90040586, 0x012a0186, 0x8c100508, + 0x012a00e9, 0x59300809, 0x497a5804, 0x64025a07, + 0x800409c0, 0x012a00ee, 0x59300416, 0x8c000516, + 0x012a016e, 0x492e6009, 0x0501f2ce, 0x497a5802, + 0x80140110, 0x01240775, 0x80000040, 0x01240775, + 0x592c0a08, 0x82040c80, 0x00001001, 0x01261781, 0x4a033006, 0x0002081b, 0x05fdf641, 0x592c0001, - 0x80001540, 0x01240670, 0x58080a05, 0x82040d00, - 0x000000ff, 0xb004058a, 0x01260676, 0x58080406, + 0x80001540, 0x01240775, 0x58080a05, 0x82040d00, + 0x000000ff, 0xb004058a, 0x0126077b, 0x58080406, 0x8c000510, 0x0502001f, 0x6006e000, 0x592c240b, 0x8c100504, 0x05fc079d, 0x592c0205, 0x82000580, 0x0000017a, 0x05fc0799, 0x40087800, 0x592c0208, - 0x82000480, 0x00001001, 0x0126167c, 0x583c1809, + 0x82000480, 0x00001001, 0x01261781, 0x583c1809, 0x583c200a, 0x583c100b, 0x82080500, 0xffff0003, - 0x0126067c, 0x600ae000, 0x42000000, 0x0010ccba, + 0x01260781, 0x600ae000, 0x42000000, 0x0010cf3a, 0x50007000, 0x6420700f, 0x480c7006, 0x48107007, - 0x492c700a, 0x6424700d, 0x483c700b, 0x0129f2f3, - 0x592c240b, 0x8c100504, 0x0126067c, 0x4d2c0000, + 0x492c700a, 0x6424700d, 0x483c700b, 0x0129f46c, + 0x592c240b, 0x8c100504, 0x01260781, 0x4d2c0000, 0x4c080000, 0x05f9ffca, 0x5c001000, 0x0500000e, 0x412c6800, 0x5c025800, 0x592c5c0b, 0x802c5942, - 0x48365802, 0x05fdfec9, 0x05fc0773, 0x0125f67c, + 0x48365802, 0x05fdfec9, 0x05fc0773, 0x0125f781, 0x6006e000, 0x412c6800, 0x599a5800, 0x592c1001, 0x05fdf7f6, 0x5c025800, 0x492f3000, 0x6022e000, 0x4a033005, 0x00020854, 0x1c01f000, 0x492fc857, - 0x592e4411, 0x81224110, 0x0129fa90, 0x05020050, - 0x592c0205, 0x80000112, 0x01260670, 0x592e8a07, - 0x05fdfa7f, 0x0502004a, 0x0121fc9b, 0x0502004a, + 0x592e4411, 0x81224110, 0x0129fc09, 0x05020050, + 0x592c0205, 0x80000112, 0x01260775, 0x592e8a07, + 0x0121fdd0, 0x0502004a, 0x0121fd77, 0x0502004a, 0x592e780b, 0x493fc857, 0x8d3c053e, 0x05020005, - 0x8d0c050e, 0x05020042, 0x0121fbb5, 0x0124067c, - 0x913c1d1f, 0x0124067c, 0x592c0208, 0x82000c80, - 0x00001000, 0x0126167c, 0x800000c2, 0x800008c4, + 0x8d0c050e, 0x05020042, 0x0121fc8f, 0x01240781, + 0x913c1d1f, 0x01240781, 0x592c0208, 0x82000c80, + 0x00001000, 0x01261781, 0x800000c2, 0x800008c4, 0x8005d400, 0x592e9009, 0x592e980a, 0x5934080d, 0x800409c0, 0x05000004, 0x58041802, 0x800c19c0, 0x0502002b, 0x913c1d1f, 0x81780040, 0x80000000, - 0x800c1902, 0x05fe17fe, 0x0126067c, 0x0c01f001, + 0x800c1902, 0x05fe17fe, 0x01260781, 0x0c01f001, 0x00020891, 0x00020893, 0x0002089c, 0x0002089e, - 0x000208a0, 0x0141fb21, 0x0501f019, 0x0121fb8f, - 0x0500001d, 0x80e9d1c0, 0x012e0b41, 0x60168000, - 0x417a9000, 0x417a9800, 0x0141fb2d, 0x0501f010, + 0x000208a0, 0x0141fd02, 0x0501f019, 0x0121fc69, + 0x0500001d, 0x80e9d1c0, 0x012e0d03, 0x60168000, + 0x417a9000, 0x417a9800, 0x0141fd0e, 0x0501f010, 0x61367000, 0x0501f004, 0x613a7000, 0x0501f002, 0x614a7000, 0x5934080d, 0x800409c0, 0x05000006, - 0x4d3c0000, 0x40067800, 0x0121fb73, 0x5c027800, - 0x05000007, 0x0121fa84, 0x01420b5c, 0x05000006, + 0x4d3c0000, 0x40067800, 0x0121fc4d, 0x5c027800, + 0x05000007, 0x0121fb5e, 0x01420d3d, 0x05000006, 0x8d3c053e, 0x0502000a, 0x1c01f000, 0x64c25a07, 0x0501f009, 0x64b25a07, 0x0501f007, 0x64a25a07, 0x0501f005, 0x64a65a07, 0x0501f003, 0x497a580a, 0x64025a07, 0x4a025a05, 0x00000103, 0x05fdf2a0, 0x492fc857, 0x80140110, 0x80000040, 0x05000002, - 0x0125f670, 0x592c0208, 0x82000500, 0x000003ff, + 0x0125f775, 0x592c0208, 0x82000500, 0x000003ff, 0x48025a08, 0x8c000506, 0x05000003, 0xb0000530, 0x05020003, 0x8d0c050e, 0x05020014, 0x4a025a07, 0x0000dead, 0x592c0409, 0x82000500, 0x0000f0ff, - 0x48025c09, 0x011dff50, 0x05020002, 0x1c01f000, - 0x49425a07, 0x8058b1c0, 0x05000007, 0x0145f960, + 0x48025c09, 0x0121f823, 0x05020002, 0x1c01f000, + 0x49425a07, 0x8058b1c0, 0x05000007, 0x0145fb46, 0x0501f80a, 0x44042800, 0x90580582, 0x05020002, 0x48082801, 0x05fdf27e, 0x60c68000, 0x60040800, 0x6004b000, 0x05fdf7f3, 0x592c0409, 0x80000118, @@ -23757,12 +23989,12 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x0502b00a, 0x915c04a0, 0x0500100c, 0x815eb840, 0x416a5800, 0x592ed000, 0x492fb007, 0x497a5800, 0x497a5801, 0x05fcb7f8, 0x59d80005, 0x82000500, - 0x43218780, 0x012a00fd, 0x5c03e000, 0x1c01f000, + 0x43218780, 0x012a0215, 0x5c03e000, 0x1c01f000, 0x4df00000, 0x4203e000, 0x50000000, 0x0502f00a, 0x915c04a0, 0x0500100c, 0x815eb840, 0x416a5800, 0x592ed000, 0x492fa807, 0x497a5800, 0x497a5801, 0x05fcf7f8, 0x59d40005, 0x82000500, 0x43218780, - 0x012a00f7, 0x5c03e000, 0x1c01f000, 0x40307000, + 0x012a020f, 0x5c03e000, 0x1c01f000, 0x40307000, 0x5838000a, 0x80025d40, 0x0500001c, 0x58380002, 0x82000580, 0x00000100, 0x0500001d, 0x4c380000, 0x592c0205, 0x82000500, 0x000000ff, 0x90000592, @@ -23775,7 +24007,7 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x90000483, 0x0500007c, 0x5838100f, 0x8c080500, 0x05020014, 0x8c080506, 0x05020032, 0x600cb000, 0x912cac12, 0x58380009, 0x5838100c, 0x8008a400, - 0x4c380000, 0x0151f860, 0x5c007000, 0x5838000c, + 0x4c380000, 0x0151fb10, 0x5c007000, 0x5838000c, 0x90000403, 0x4800700c, 0x6404700f, 0x58380004, 0x90000483, 0x48007004, 0x90000583, 0x05000066, 0x5838000d, 0x80001d40, 0x05020021, 0x4c380000, @@ -23784,7 +24016,7 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x80000540, 0x05020002, 0x5838000a, 0x40000800, 0x492c0801, 0x492c700b, 0x603c0800, 0x0501f014, 0x6022e000, 0x4a033005, 0x00020968, 0x1c01f000, - 0x600ae000, 0x42000000, 0x0010ccba, 0x50007000, + 0x600ae000, 0x42000000, 0x0010cf3a, 0x50007000, 0x5838180f, 0x8c0c0506, 0x05020067, 0x05fdf7e8, 0x84081540, 0x4808700f, 0x5838180d, 0x583a580b, 0x400c0000, 0x60540800, 0x80040c80, 0x58381004, @@ -23793,7 +24025,7 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x80040480, 0x05001002, 0x40080800, 0x4004b000, 0x412c0000, 0x800c0400, 0x4000a800, 0x58380009, 0x5838100c, 0x8008a400, 0x4c080000, 0x4c040000, - 0x4c0c0000, 0x4c380000, 0x0151f860, 0x5c007000, + 0x4c0c0000, 0x4c380000, 0x0151fb10, 0x5c007000, 0x5c001800, 0x5c000800, 0x40040000, 0x58381004, 0x80080480, 0x48007004, 0x90000583, 0x05000002, 0x84183500, 0x5c000000, 0x80041400, 0xb00804a0, @@ -23803,7 +24035,7 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x40180000, 0x0c01f001, 0x000209b2, 0x000209b5, 0x000209b3, 0x000209b2, 0x00020953, 0x000209b5, 0x000209b3, 0x000209b2, 0x0101f9ef, 0x5838100e, - 0x0129f2f3, 0x5838080c, 0x90040402, 0x58381009, + 0x0129f46c, 0x5838080c, 0x90040402, 0x58381009, 0x80080400, 0x50001000, 0x800811c0, 0x05020041, 0x5838180f, 0x8c0c0506, 0x0502000b, 0x6006e000, 0x583a580a, 0x4978700a, 0x4978700f, 0x592c0205, @@ -23820,9 +24052,9 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0xb00405ba, 0x05fe0513, 0x58080406, 0x8c000510, 0x05fc05d5, 0x05fdf656, 0x8c0c0504, 0x05fe07ef, 0x840c1d44, 0x480c700f, 0x58381810, 0x58382011, - 0x58381012, 0x480c7006, 0x48107007, 0x0129f2f3, + 0x58381012, 0x480c7006, 0x48107007, 0x0129f46c, 0x58380009, 0x80040c00, 0x90381c06, 0x54041800, - 0x80040800, 0x800c1800, 0x54041800, 0x0129f2f3, + 0x80040800, 0x800c1800, 0x54041800, 0x0129f46c, 0x4df00000, 0x4203e000, 0x50000000, 0x5994002e, 0x80000540, 0x050000c6, 0x4c000000, 0x5c000000, 0x59947824, 0x4803282f, 0x803c0480, 0x05001004, @@ -23832,7 +24064,7 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x803c0040, 0x05000002, 0x483fc857, 0x59e40852, 0x59a8007a, 0x80040580, 0x05000004, 0x480bc857, 0x59e40052, 0x4803507a, 0x59940030, 0x803c0400, - 0x48032830, 0x012dfbfa, 0x59940000, 0x90000580, + 0x48032830, 0x012dfdbc, 0x59940000, 0x90000580, 0x05020005, 0x59940030, 0x48032831, 0x497b2830, 0x64072800, 0x4c0c0000, 0x58d400e5, 0x8c000514, 0x05000013, 0x59940807, 0x59941006, 0x5994002f, @@ -23874,7 +24106,7 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x5994002d, 0x0801f800, 0x0501f004, 0x9000040a, 0x4803282b, 0x05fc27f8, 0x5994082e, 0x5994002f, 0x80040480, 0x010019ef, 0x4803282e, 0x59940000, - 0x0c01f001, 0x00020ad4, 0x00105b48, 0x00105bb2, + 0x0c01f001, 0x00020ad4, 0x00105d0a, 0x00105d74, 0x5c03e000, 0x1c01f000, 0x5994002e, 0x80000000, 0x4803282e, 0x4203e000, 0x70000000, 0x1c01f000, 0x813e79c0, 0x05020009, 0x59a80090, 0x80000040, @@ -23902,22 +24134,22 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x00000100, 0x80040d40, 0x48066004, 0x58d400ea, 0x8c000516, 0x05fe07fe, 0x83300400, 0x40000000, 0x4801a8e1, 0x1c01f000, 0x58d400ea, 0x82001500, - 0x32000018, 0x012e07cd, 0x8c000510, 0x0500002f, + 0x32000018, 0x0132018f, 0x8c000510, 0x0500002f, 0x58d410e0, 0x82080500, 0xfffff000, 0x0502000d, 0x900a350f, 0x80081108, 0x480bc857, 0x90080487, 0x010219ef, 0x90080481, 0x010019ef, 0x1201f000, - 0x00105fd1, 0x84000510, 0x48026004, 0x0501f019, + 0x00106193, 0x84000510, 0x48026004, 0x0501f019, 0x840a653e, 0x59300804, 0x8c040520, 0x05fc07fa, 0x82040d00, 0xfffefeff, 0x48066004, 0x8c08053e, 0x05020009, 0x8c040514, 0x05000004, 0x05fdff8d, 0x0501f8fa, 0x0501f00b, 0x604e7000, 0x0501f915, 0x0501f008, 0x8c040514, 0x05000004, 0x05fdff85, 0x0501f8f2, 0x0501f003, 0x61267000, 0x0501f90d, - 0x58d400ea, 0x82001500, 0x32000018, 0x012e07cd, + 0x58d400ea, 0x82001500, 0x32000018, 0x0132018f, 0x8c000510, 0x05fe07d3, 0x1c01f000, 0x59bc00ea, - 0x82001500, 0xb2000018, 0x012e07f7, 0x8c000510, + 0x82001500, 0xb2000018, 0x013201b9, 0x8c000510, 0x05000007, 0x59bc10e0, 0x80080108, 0x900a350f, - 0x4803c857, 0x1201f000, 0x00105ffb, 0x1c01f000, + 0x4803c857, 0x1201f000, 0x001061bd, 0x1c01f000, 0x4d300000, 0x59bc00ea, 0x8c000510, 0x05fc07fe, 0x59be60e0, 0x813261c0, 0x010009ef, 0x59300804, 0x8c04051c, 0x05020065, 0x59300027, 0x80006d40, @@ -23946,8 +24178,8 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x84000544, 0x4800680e, 0x05fdf7d7, 0x58387001, 0x48386807, 0x42002000, 0x00100e1d, 0x05fdf7ea, 0x84000542, 0x4800120e, 0x4933c857, 0x05fdf7cf, - 0x0010af39, 0x0010af4a, 0x0010af5b, 0x0010af6c, - 0x0010af7d, 0x5830020e, 0x8c000500, 0x0502001b, + 0x0010b1b9, 0x0010b1ca, 0x0010b1db, 0x0010b1ec, + 0x0010b1fd, 0x5830020e, 0x8c000500, 0x0502001b, 0x5830780f, 0x803c79c0, 0x05000030, 0x58300002, 0x82000580, 0x00000100, 0x0502002e, 0x583c0c07, 0x90040586, 0x05000003, 0x90040583, 0x05020027, @@ -23956,23 +24188,23 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x40000800, 0x5830000d, 0x44040000, 0x5830000c, 0x480378e7, 0x1c01f000, 0x4803c856, 0x4978620e, 0x8c000502, 0x05fc07fc, 0x4803c856, 0x4c300000, - 0x012dff7d, 0x5c006000, 0x58300c0e, 0x800410ca, + 0x0131f93f, 0x5c006000, 0x58300c0e, 0x800410ca, 0x82081400, 0x00007600, 0x4a001014, 0x00090000, 0x800410c8, 0x82081400, 0x0000bf32, 0x58080005, 0x84000500, 0x48001005, 0x5830000a, 0x5830080d, - 0x44000800, 0x012dff69, 0x483fc857, 0x05fdf7e6, + 0x44000800, 0x0131f92b, 0x483fc857, 0x05fdf7e6, 0x4d300000, 0x4d2c0000, 0x4d3c0000, 0x4c300000, 0x5832600f, 0x4933c857, 0x59325809, 0x592c0209, - 0x8400054e, 0x48025a09, 0x417a7800, 0x013dff70, + 0x8400054e, 0x48025a09, 0x417a7800, 0x0141f94e, 0x5c006000, 0x5c027800, 0x5c025800, 0x5c026000, 0x05fdf7d5, 0x59a80266, 0x81640480, 0x05001015, 0x41626000, 0x41580000, 0x59300a03, 0x90040d80, 0x05020007, 0x64226203, 0x8166c840, 0x9132c430, 0x81600480, 0x05021008, 0x1c01f000, 0x91326430, - 0x81300c80, 0x05fc17f5, 0x42026000, 0x001102e4, - 0x05fdf7f2, 0x837ac540, 0x001102e4, 0x1c01f000, - 0x42000000, 0x0010b049, 0x014dff95, 0x4967c857, - 0x80026580, 0x1c01f000, 0x83300480, 0x001102e4, + 0x81300c80, 0x05fc17f5, 0x42026000, 0x00110514, + 0x05fdf7f2, 0x837ac540, 0x00110514, 0x1c01f000, + 0x42000000, 0x0010b2c9, 0x0151fa45, 0x4967c857, + 0x80026580, 0x1c01f000, 0x83300480, 0x00110514, 0x010019ef, 0x41580000, 0x81300480, 0x0502100a, 0x457a6000, 0x4a026202, 0x0000ffff, 0x05011000, 0x91300403, 0x4803c840, 0x64b7c842, 0x8166c800, @@ -23982,81 +24214,81 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x91300403, 0x4803c840, 0x64b7c842, 0x1c01f000, 0x4d340000, 0x4d240000, 0x5932481d, 0x5932680a, 0x59300407, 0x9000051f, 0x0c01f804, 0x5c024800, - 0x5c026800, 0x1c01f000, 0x00106d6e, 0x00106d7d, - 0x00106d97, 0x00020ca2, 0x00108e0a, 0x00108e25, - 0x00020d1c, 0x00106d6e, 0x00106d7d, 0x00105d1f, - 0x00106ddf, 0x00106d6e, 0x00106d6e, 0x00106d6e, - 0x00106d6e, 0x00106daf, 0x001089b3, 0x00109bee, - 0x00106d6e, 0x00106d6e, 0x00106d6e, 0x00106d6e, - 0x00106d6e, 0x00106d6e, 0x00106d6e, 0x00106d6e, - 0x00106d6e, 0x00106d6e, 0x00106d6e, 0x00106d6e, - 0x00106d6e, 0x00106d6e, 0x59300203, 0x90000c91, - 0x010219ef, 0x0c01f001, 0x00106dae, 0x0010787b, - 0x00020cb7, 0x00107a9e, 0x00107b41, 0x00106dae, - 0x00106dae, 0x00106dae, 0x00107867, 0x00106dae, - 0x00106dae, 0x00106dae, 0x00106dae, 0x00107d0f, - 0x001084d2, 0x00106dae, 0x00108501, 0xb1380498, + 0x5c026800, 0x1c01f000, 0x00106f26, 0x00106f35, + 0x00106f4f, 0x00020ca2, 0x00109086, 0x001090a1, + 0x00020d1c, 0x00106f26, 0x00106f35, 0x00105ee1, + 0x00106f97, 0x00106f26, 0x00106f26, 0x00106f26, + 0x00106f26, 0x00106f67, 0x00108b99, 0x00109e8c, + 0x00106f26, 0x00106f26, 0x00106f26, 0x00106f26, + 0x00106f26, 0x00106f26, 0x00106f26, 0x00106f26, + 0x00106f26, 0x00106f26, 0x00106f26, 0x00106f26, + 0x00106f26, 0x00106f26, 0x59300203, 0x90000c91, + 0x010219ef, 0x0c01f001, 0x00106f66, 0x00107a50, + 0x00020cb7, 0x00107c73, 0x00107d16, 0x00106f66, + 0x00106f66, 0x00106f66, 0x00107a3c, 0x00106f66, + 0x00106f66, 0x00106f66, 0x00106f66, 0x00107ee4, + 0x001086b3, 0x00106f66, 0x001086e2, 0xb1380498, 0x05021006, 0xb1380480, 0x05001004, 0x4d2c0000, - 0x0c01f803, 0x5c025800, 0x1c01f000, 0x001078f4, - 0x001078f4, 0x001078f4, 0x001078f4, 0x001078f4, - 0x001078f5, 0x001079ae, 0x001078f4, 0x001078f4, - 0x001078f4, 0x001078f4, 0x001078f4, 0x001078f4, - 0x001078f4, 0x001078f4, 0x001078f4, 0x001078f4, - 0x001078f4, 0x001078f4, 0x001079b2, 0x00020cd7, - 0x001078f4, 0x001079b1, 0x001079b3, 0x59325809, + 0x0c01f803, 0x5c025800, 0x1c01f000, 0x00107ac9, + 0x00107ac9, 0x00107ac9, 0x00107ac9, 0x00107ac9, + 0x00107aca, 0x00107b83, 0x00107ac9, 0x00107ac9, + 0x00107ac9, 0x00107ac9, 0x00107ac9, 0x00107ac9, + 0x00107ac9, 0x00107ac9, 0x00107ac9, 0x00107ac9, + 0x00107ac9, 0x00107ac9, 0x00107b87, 0x00020cd7, + 0x00107ac9, 0x00107b86, 0x00107b88, 0x59325809, 0x59300813, 0x59301402, 0x59340200, 0x8c00050e, 0x05020023, 0x0501f82f, 0x05000005, 0x4a025a05, 0x00000103, 0x497a580a, 0x0501f009, 0x4a025a05, 0x00000103, 0x64025a07, 0x497a580a, 0x40040000, - 0x0145fcbe, 0x80000d40, 0x013e0b11, 0x48065808, + 0x0145fea4, 0x80000d40, 0x013e0ce6, 0x48065808, 0x480a5c07, 0x59300008, 0x82000500, 0x04000800, 0x82000580, 0x04000800, 0x05000017, 0x05f9fe68, - 0x0145fcb5, 0x5934000f, 0x8d0c0512, 0x05020005, + 0x0145fe9b, 0x5934000f, 0x8d0c0512, 0x05020005, 0x5934140b, 0x80081040, 0x05001002, 0x480a6c0b, 0x80000540, 0x05fa0df7, 0x05fdf75c, 0x592c020b, 0x8c000502, 0x05fc07dc, 0x800409c0, 0x05fc07e0, 0x592c0209, 0x8c00050e, 0x05fe07dd, 0x4933c857, - 0x0141f552, 0x59300221, 0x48025c10, 0x05fdf7e8, + 0x0141f733, 0x59300221, 0x48025c10, 0x05fdf7e8, 0x592c020b, 0x8c000500, 0x0500000d, 0x59300017, 0x592c3810, 0x801c3c80, 0x05000009, 0x64565a07, 0x8c1c053e, 0x05000004, 0x641e5a07, 0x801c3880, 0x801c3800, 0x481fc857, 0x901c0d40, 0x1c01f000, 0x59300203, 0x90003491, 0x010219ef, 0x0c01f001, - 0x00108e43, 0x00020d31, 0x001094b8, 0x001094c9, - 0x00020d4c, 0x00108e43, 0x0010959d, 0x00020d70, - 0x00108e43, 0x00108e43, 0x00108e43, 0x00108e43, - 0x00108e43, 0x00108e43, 0x001099a0, 0x00108e43, - 0x001099d3, 0x91380593, 0x014a044f, 0x59300403, + 0x001090bf, 0x00020d31, 0x00109744, 0x00109755, + 0x00020d4c, 0x001090bf, 0x0010982c, 0x00020d70, + 0x001090bf, 0x001090bf, 0x001090bf, 0x001090bf, + 0x001090bf, 0x001090bf, 0x00109c3e, 0x001090bf, + 0x00109c71, 0x91380593, 0x014a06db, 0x59300403, 0xb0027484, 0x010219ef, 0xb0000480, 0x010019ef, - 0x0c01f001, 0x00109498, 0x00020d3d, 0x00109499, - 0x001094ab, 0x0141fef0, 0x05000005, 0x59a80030, + 0x0c01f001, 0x00109724, 0x00020d3d, 0x00109725, + 0x00109737, 0x0145f8d1, 0x05000005, 0x59a80030, 0x48026205, 0x643a6203, 0x1c01f000, 0x59325809, 0x832c0500, 0x00ff0000, 0x05000004, 0x592c0c0b, - 0x8c04051a, 0x014a04a8, 0x05fdfda2, 0x05fdf70f, + 0x8c04051a, 0x014a0734, 0x05fdfda2, 0x05fdf70f, 0xb1380498, 0x05001007, 0xb13805a1, 0x05000003, 0xb13805a0, 0x010209ef, 0x4933c857, 0x1c01f000, - 0xb1380588, 0x05000004, 0xb1380593, 0x0148054a, + 0xb1380588, 0x05000004, 0xb1380593, 0x014807d9, 0x0101f9ef, 0x5930002b, 0x59301013, 0x5930080a, - 0x58040a00, 0x8c04050e, 0x014a0530, 0x800811c0, - 0x014a053b, 0x5930002b, 0x80000540, 0x014a0545, - 0x59325809, 0x592c040b, 0x8c00051e, 0x0148052a, + 0x58040a00, 0x8c04050e, 0x014a07bf, 0x800811c0, + 0x014a07ca, 0x5930002b, 0x80000540, 0x014a07d4, + 0x59325809, 0x592c040b, 0x8c00051e, 0x014807b9, 0x64066203, 0x65066403, 0x42000800, 0x80002042, 0x8c00051a, 0x05020002, 0x84040d54, 0x05fdf5bf, - 0xb1380498, 0x014a1561, 0xb1380480, 0x01481562, - 0x0c01f001, 0x0010956a, 0x00020d89, 0x00109573, - 0x00109578, 0x0010956a, 0x0010956a, 0x0010956a, - 0x0010956a, 0x0010956b, 0x0010956f, 0x0010956f, - 0x0010956a, 0x0010956a, 0x0010956a, 0x0010956a, - 0x0010956f, 0x0010956a, 0x0010956f, 0x0010956a, - 0x0010956b, 0x64066203, 0x493a6403, 0x42000800, + 0xb1380498, 0x014a17f0, 0xb1380480, 0x014817f1, + 0x0c01f001, 0x001097f9, 0x00020d89, 0x00109802, + 0x00109807, 0x001097f9, 0x001097f9, 0x001097f9, + 0x001097f9, 0x001097fa, 0x001097fe, 0x001097fe, + 0x001097f9, 0x001097f9, 0x001097f9, 0x001097f9, + 0x001097fe, 0x001097f9, 0x001097fe, 0x001097f9, + 0x001097fa, 0x64066203, 0x493a6403, 0x42000800, 0x80002042, 0x05fdf5a1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x6e2165bf, 0x00000000, 0x00000000, - 0x0010e300, 0x00001ae9, 0x42000000, 0x0010fe20, - 0x42001000, 0x0010fe11, 0x48001000, 0x42013800, - 0x00110220, 0x42000000, 0x0010fe10, 0x489c0000, + 0x00000000, 0x72bb9678, 0x00000000, 0x00000000, + 0x0010e500, 0x00001b0f, 0x42000000, 0x00110050, + 0x42001000, 0x00110041, 0x48001000, 0x42013800, + 0x00110450, 0x42000000, 0x00110040, 0x489c0000, 0x409d4000, 0x409d6800, 0x1c01f000, 0x4200d000, 0x0000000d, 0x42000000, 0x00000002, 0x4800d000, 0x0401f7fb, 0x4200d000, 0x0000000d, 0x42000000, @@ -24064,7 +24296,7 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x809d3840, 0x48813800, 0x4933c857, 0x5931040c, 0x82817480, 0x00000038, 0x0400000d, 0x0400100c, 0x82810480, 0x00000038, 0x4a025a06, 0x00000038, - 0x0201f800, 0x001034c3, 0x40c65800, 0x80c589c0, + 0x0201f800, 0x0010358e, 0x40c65800, 0x80c589c0, 0x040207f4, 0x4178d000, 0x0401f004, 0x48825a06, 0x4200d000, 0x00000001, 0x40698800, 0x589d0000, 0x809d3800, 0x1c01f000, 0x42038000, 0x00007700, @@ -24095,11 +24327,11 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0xe1290008, 0x486f9122, 0x0401f7e2, 0x4a039100, 0x0000e980, 0x1c01f000, 0x59c8d007, 0x8c68d500, 0x04000003, 0x4a03900d, 0x00000030, 0x1c01f000, - 0x0201f800, 0x00105f69, 0x59b8d0ea, 0x8268d500, + 0x0201f800, 0x0010612b, 0x59b8d0ea, 0x8268d500, 0x00000007, 0x82697480, 0x00000003, 0x04000002, 0x0401f003, 0x4a0370e8, 0x00000001, 0x1c01f000, 0x4a038805, 0x00020000, 0x4200d000, 0x0000003c, - 0x0201f800, 0x0010134f, 0x4a038891, 0x0000ffff, + 0x0201f800, 0x0010134d, 0x4a038891, 0x0000ffff, 0x59c97035, 0x48bb9035, 0x4a03900d, 0x00000040, 0x42038000, 0x00007700, 0x0201f800, 0x00100c03, 0x4a038006, 0x20000000, 0x42038000, 0x00007720, @@ -24109,7 +24341,7 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x59d0d006, 0x8c68d50a, 0x040207fe, 0x59dcd006, 0x8c68d50a, 0x040207fb, 0x1c01f000, 0x4203a000, 0x00007600, 0x4200d000, 0x00000040, 0x0201f800, - 0x0010134f, 0x4a03a00a, 0x00000001, 0x4a03a005, + 0x0010134d, 0x4a03a00a, 0x00000001, 0x4a03a005, 0x20000000, 0x59d0d006, 0x4a03a005, 0x30000000, 0x59d0d006, 0x8c68d50a, 0x040207fe, 0x59d0d005, 0x59a0d211, 0x59a0dc11, 0x806c00e0, 0x8068d540, @@ -24134,16 +24366,16 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x59a8d00d, 0x41640000, 0x80697480, 0x04000015, 0x4967c857, 0x59a97064, 0x48bbc857, 0x59a97063, 0x48bbc857, 0x59a97062, 0x48bbc857, 0x4a034407, - 0x00000018, 0x0201f800, 0x001021fb, 0x0401f133, - 0x4a034407, 0x00000005, 0x0201f800, 0x001021fb, - 0x0401f12e, 0x0201f800, 0x00102203, 0x0401f12b, + 0x00000018, 0x0201f800, 0x0010229e, 0x0401f133, + 0x4a034407, 0x00000005, 0x0201f800, 0x0010229e, + 0x0401f12e, 0x0201f800, 0x001022a6, 0x0401f12b, 0x59a8d063, 0x59a80062, 0x80697480, 0x040207e9, - 0x0201f800, 0x001037c8, 0x80c589c0, 0x0402004d, - 0x0201f800, 0x00102207, 0x0401f120, 0x4887c857, - 0x0201f800, 0x001021ff, 0x0401f11c, 0x0201f800, - 0x00106d42, 0x40c66000, 0x80c589c0, 0x0400003e, - 0x0201f800, 0x001034c3, 0x40c65800, 0x80c589c0, - 0x04000022, 0x4a02601d, 0x0010b111, 0x48898a05, + 0x0201f800, 0x00103893, 0x80c589c0, 0x0402004d, + 0x0201f800, 0x001022aa, 0x0401f120, 0x4887c857, + 0x0201f800, 0x001022a2, 0x0401f11c, 0x0201f800, + 0x00106efa, 0x40c66000, 0x80c589c0, 0x0400003e, + 0x0201f800, 0x0010358e, 0x40c65800, 0x80c589c0, + 0x04000022, 0x4a02601d, 0x0010b391, 0x48898a05, 0x48898c05, 0x4882620c, 0x4886640c, 0x59a0d40f, 0x8068d0e0, 0x59a0da0f, 0x406c0000, 0x8068d540, 0x486a600d, 0x59a0d40a, 0x8068d0e0, 0x59a0da0a, @@ -24151,27 +24383,27 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x8068d0e0, 0x59a0da0e, 0x406c0000, 0x8068d540, 0x486a600f, 0x59a0d411, 0x8068d0e0, 0x59a0da11, 0x406c0000, 0x8068d540, 0x486a6010, 0x0401fe99, - 0x80c589c0, 0x04020006, 0x0201f800, 0x00106d11, + 0x80c589c0, 0x04020006, 0x0201f800, 0x00106ec5, 0x4a034407, 0x00000002, 0x0401f7bc, 0x48ee602d, 0x58ee580c, 0x4a01d801, 0x00000001, 0x592cd206, 0x4869d805, 0x832cd400, 0x00000007, 0x4869d803, - 0x4895d806, 0x4891d807, 0x4a01d808, 0x0010e5a7, + 0x4895d806, 0x4891d807, 0x4a01d808, 0x0010e7a7, 0x4a034000, 0x00000001, 0x49334001, 0x0401ff5e, 0x0401f0da, 0x4a034407, 0x00000003, 0x0401f7a7, - 0x0201f800, 0x00105f78, 0x598e600b, 0x0201f800, - 0x00106287, 0x0201f800, 0x00105f78, 0x408e3000, - 0x0201f800, 0x001064d2, 0x59926005, 0x813261c0, - 0x0400000d, 0x0201f800, 0x001061b6, 0x0201f800, - 0x00105f4c, 0x0201f800, 0x00105f52, 0x42027800, + 0x0201f800, 0x0010613a, 0x598e600b, 0x0201f800, + 0x00106449, 0x0201f800, 0x0010613a, 0x408e3000, + 0x0201f800, 0x00106694, 0x59926005, 0x813261c0, + 0x0400000d, 0x0201f800, 0x00106378, 0x0201f800, + 0x0010610e, 0x0201f800, 0x00106114, 0x42027800, 0x00001000, 0x42028000, 0x0000002e, 0x0201f800, - 0x0010eeff, 0x811a3000, 0x83197480, 0x00000004, - 0x040007ec, 0x040017eb, 0x0201f800, 0x0010082f, - 0x0201f800, 0x001028e8, 0x497b507e, 0x497b4408, - 0x4201d000, 0x003d0900, 0x0201f800, 0x00105caf, + 0x0010f10e, 0x811a3000, 0x83197480, 0x00000004, + 0x040007ec, 0x040017eb, 0x0201f800, 0x0010082d, + 0x0201f800, 0x0010298e, 0x497b507e, 0x497b4408, + 0x4201d000, 0x003d0900, 0x0201f800, 0x00105e71, 0x59c50880, 0x59c510a3, 0x497b4002, 0x0401fe6b, 0x0401ff0b, 0x4a03a005, 0x10000000, 0x59c4d005, 0x8268d540, 0x000000f0, 0x486b8805, 0x0401fe83, - 0x0201f800, 0x001028ef, 0x40c50000, 0x80c589c0, + 0x0201f800, 0x00102995, 0x40c50000, 0x80c589c0, 0x04020020, 0x59c8d001, 0x8068d1c0, 0x0402001d, 0x59dcd006, 0x8268d500, 0x43200f80, 0x0400000a, 0x59dcd006, 0x82697480, 0x00000000, 0x83f17500, @@ -24192,23 +24424,23 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x04020004, 0x82797480, 0x00000032, 0x0400002b, 0x486fc857, 0x487bc857, 0x4877c857, 0x4883c857, 0x487fc857, 0x4873c857, 0x59a9700f, 0x48bbc857, - 0x0201f800, 0x00102901, 0x4a03507e, 0x00000001, + 0x0201f800, 0x001029a7, 0x4a03507e, 0x00000001, 0x4200d000, 0x00000064, 0x0401f004, 0x8068d1c0, 0x04000028, 0x8068d040, 0x59c0d807, 0x8c6cdd04, - 0x040007fb, 0x0401fe7b, 0x0201f800, 0x001037e4, - 0x0201f800, 0x00106312, 0x0401fe6a, 0x4201d000, - 0x000186a0, 0x0201f800, 0x00105caf, 0x488b88a3, + 0x040007fb, 0x0401fe7b, 0x0201f800, 0x001038af, + 0x0201f800, 0x001064d4, 0x0401fe6a, 0x4201d000, + 0x000186a0, 0x0201f800, 0x00105e71, 0x488b88a3, 0x48878880, 0x59a8d07e, 0x8068d1c0, 0x04020711, - 0x0201f800, 0x001021b9, 0x0401f030, 0x4a03507e, + 0x0201f800, 0x0010225c, 0x0401f030, 0x4a03507e, 0x00000001, 0x0401f7ec, 0x82757480, 0x000000e1, 0x040207d4, 0x407c0000, 0x80817480, 0x040207d1, 0x59a8d00f, 0x80697480, 0x040207ce, 0x8270d500, 0x000000f0, 0x040207cb, 0x0401fe48, 0x0401f7d5, - 0x4a03507e, 0x00000001, 0x0201f800, 0x001018cd, + 0x4a03507e, 0x00000001, 0x0201f800, 0x001018ce, 0x80c589c0, 0x04000008, 0x59c4d005, 0x8268d500, 0x000000f0, 0x04000007, 0x4a034408, 0x0000bbbb, 0x0401f7d1, 0x4a034408, 0x0000aaaa, 0x0401f7ce, - 0x0201f800, 0x001028ef, 0x80c57040, 0x04000008, + 0x0201f800, 0x00102995, 0x80c57040, 0x04000008, 0x59c0d007, 0x8268d500, 0x000501c0, 0x040007c6, 0x4a034408, 0x0000dddd, 0x0401f7c3, 0x4a034408, 0x0000cccc, 0x0401f7c0, 0x589d2805, 0x589d2004, @@ -24219,10 +24451,10 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x58ee580c, 0x4979d801, 0x592cd206, 0x4869d805, 0x832cd400, 0x00000007, 0x4869d803, 0x5931700d, 0x48b9d806, 0x5931700e, 0x48b9d807, 0x4a01d808, - 0x0010e5a7, 0x4a034000, 0x00000001, 0x40826000, + 0x0010e7a7, 0x4a034000, 0x00000001, 0x40826000, 0x0401fe61, 0x0401f009, 0x41310000, 0x59a26001, - 0x4933c857, 0x0201f800, 0x00106d13, 0x40826000, - 0x0201f800, 0x00102207, 0x589d0000, 0x809d3800, + 0x4933c857, 0x0201f800, 0x00106ec7, 0x40826000, + 0x0201f800, 0x001022aa, 0x589d0000, 0x809d3800, 0x1c01f000, 0x829d3c80, 0x00000005, 0x48813800, 0x48853801, 0x48893802, 0x488d3803, 0x48913804, 0x412d1000, 0x41310800, 0x59a26001, 0x4069d800, @@ -24238,18 +24470,18 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x58ee580c, 0x592cd205, 0x82697480, 0x00000103, 0x04000030, 0x41351800, 0x41452000, 0x592cd405, 0x8468d55e, 0x486a5c05, 0x42028800, 0x000007fd, - 0x4200d000, 0x00fffffd, 0x0201f800, 0x0010410f, + 0x4200d000, 0x00fffffd, 0x0201f800, 0x001041e5, 0x40c66800, 0x80c589c0, 0x04000010, 0x0201f800, - 0x00108730, 0x80c589c0, 0x04000018, 0x40866000, - 0x4881d801, 0x4a01d808, 0x0010e581, 0x0401f00f, - 0x0201f800, 0x001021f3, 0x0201f800, 0x00106d11, + 0x00108911, 0x80c589c0, 0x04000018, 0x40866000, + 0x4881d801, 0x4a01d808, 0x0010e781, 0x0401f00f, + 0x0201f800, 0x00102296, 0x0201f800, 0x00106ec5, 0x40866000, 0x0401f019, 0x59a26001, 0x0201f800, - 0x00106d11, 0x40866000, 0x4a034407, 0x00000002, - 0x0201f800, 0x001021fb, 0x408a5800, 0x408e6800, - 0x40928800, 0x0401f00d, 0x0201f800, 0x00106d11, + 0x00106ec5, 0x40866000, 0x4a034407, 0x00000002, + 0x0201f800, 0x0010229e, 0x408a5800, 0x408e6800, + 0x40928800, 0x0401f00d, 0x0201f800, 0x00106ec5, 0x40866000, 0x4a034407, 0x00000004, 0x0401f7f5, - 0x0201f800, 0x00106d11, 0x40866000, 0x0201f800, - 0x001021b9, 0x408a5800, 0x589d2004, 0x589d1803, + 0x0201f800, 0x00106ec5, 0x40866000, 0x0201f800, + 0x0010225c, 0x408a5800, 0x589d2004, 0x589d1803, 0x589d1002, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000005, 0x1c01f000, 0x829d3c80, 0x00000004, 0x48813800, 0x48853801, 0x48893802, 0x488d3803, @@ -24266,12 +24498,12 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x4883a003, 0x59a0d40e, 0x8068d0e0, 0x59a0da0e, 0x406c0000, 0x80691d40, 0x59a0d411, 0x8068d0e0, 0x59a0da11, 0x406c0000, 0x80691540, 0x4201d000, - 0x00003a98, 0x0201f800, 0x00105caf, 0x4883a002, + 0x00003a98, 0x0201f800, 0x00105e71, 0x4883a002, 0x59a9707f, 0x48bba008, 0x488fa000, 0x488ba001, 0x59d0d005, 0x4a03a005, 0x10000000, 0x4178d000, 0x04025002, 0x8068d000, 0x8068d1c0, 0x04020007, 0x5884d001, 0x8068d000, 0x48690801, 0x4200d800, - 0x00000001, 0x0401f011, 0x4200d000, 0x0010e618, + 0x00000001, 0x0401f011, 0x4200d000, 0x0010e818, 0x4084d800, 0x4178e000, 0x0201f800, 0x001001ec, 0x0401f7f4, 0x497a600e, 0x592e5801, 0x812e59c0, 0x040007df, 0x492e600d, 0x832cdc00, 0x00000006, @@ -24286,7 +24518,7 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x8c68d504, 0x0400000a, 0x59d0d006, 0x82697480, 0x00000000, 0x83f17500, 0x0c000000, 0x04000004, 0x82b97580, 0x0c000000, 0x04020010, 0x0401f033, - 0x4200d000, 0x0010e680, 0x4080e000, 0x0201f800, + 0x4200d000, 0x0010e880, 0x4080e000, 0x0201f800, 0x001001ec, 0x59d0d006, 0x82697480, 0x00000000, 0x83f17500, 0x0c000000, 0x040007f5, 0x82b97480, 0x0c000000, 0x040007f2, 0x4a03a005, 0x20000000, @@ -24299,9 +24531,9 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x0401ff4e, 0x0401f009, 0x4a034408, 0x0000dddd, 0x0401f006, 0x48690001, 0x4080d000, 0x0401ff47, 0x80c589c0, 0x040207f6, 0x589d0000, 0x809d3800, - 0x1c01f000, 0x0201f800, 0x001018cd, 0x80c589c0, + 0x1c01f000, 0x0201f800, 0x001018ce, 0x80c589c0, 0x04020002, 0x0401f009, 0x4a034407, 0x00000017, - 0x0201f800, 0x001021fb, 0x4203e000, 0x50000000, + 0x0201f800, 0x0010229e, 0x4203e000, 0x50000000, 0x497bc856, 0x0401f000, 0x1c01f000, 0x4068d800, 0x59c17009, 0x48bbc857, 0x59c0e009, 0x8270d500, 0x00e00000, 0x04000019, 0x586cd000, 0x486b4210, @@ -24342,7 +24574,7 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x48bbc857, 0x59c0d007, 0x82697480, 0x00000000, 0x83f17500, 0x0c000000, 0x04000004, 0x82b97580, 0x0c000000, 0x04020010, 0x0401f035, 0x4200d000, - 0x0010e762, 0x4080e000, 0x0201f800, 0x001001ec, + 0x0010e962, 0x4080e000, 0x0201f800, 0x001001ec, 0x59c0d007, 0x82697480, 0x00000000, 0x83f17500, 0x0c000000, 0x040007f5, 0x82b97480, 0x0c000000, 0x040007f2, 0x4a038006, 0x20000000, 0x59c0d007, @@ -24357,12 +24589,12 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x0401ff54, 0x80c589c0, 0x040207f6, 0x589d0000, 0x809d3800, 0x1c01f000, 0x59a26000, 0x813261c0, 0x04000009, 0x59325809, 0x812e59c0, 0x04000005, - 0x0201f800, 0x00106d11, 0x0201f800, 0x00100595, + 0x0201f800, 0x00106ec5, 0x0201f800, 0x00100595, 0x497b4000, 0x59a26001, 0x813261c0, 0x04000009, 0x59325809, 0x812e59c0, 0x04000005, 0x0201f800, - 0x00106d11, 0x0201f800, 0x00100595, 0x497b4001, + 0x00106ec5, 0x0201f800, 0x00100595, 0x497b4001, 0x1c01f000, 0x809d3840, 0x48813800, 0x40690000, - 0x0201f800, 0x00102901, 0x0201f800, 0x0010e3b2, + 0x0201f800, 0x001029a7, 0x0201f800, 0x0010e5b2, 0x5880d00b, 0x8068d1c0, 0x04020004, 0x5880d00c, 0x8068d1c0, 0x04000007, 0x59a0d00d, 0x8068d1c0, 0x0402000a, 0x4200d000, 0x00000001, 0x0401f009, @@ -24370,39 +24602,39 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x8068d1c0, 0x040007f8, 0x0401ffd0, 0x0401f7f6, 0x40698800, 0x589d0000, 0x809d3800, 0x1c01f000, 0x809d3840, 0x48813800, 0x4200d000, 0x000000ef, - 0x0201f800, 0x00101637, 0x4a03500f, 0x000000ef, + 0x0201f800, 0x00101635, 0x4a03500f, 0x000000ef, 0x59c4d0a3, 0x8468d55a, 0x8468d53a, 0x486b88a3, - 0x0201f800, 0x001016a8, 0x80c589c0, 0x04000040, - 0x4200d000, 0x00000001, 0x0201f800, 0x0010189e, - 0x4200d000, 0x00000001, 0x0201f800, 0x00101874, - 0x4201d000, 0x00000014, 0x0201f800, 0x00105c7f, + 0x0201f800, 0x001016a9, 0x80c589c0, 0x04000040, + 0x4200d000, 0x00000001, 0x0201f800, 0x0010189f, + 0x4200d000, 0x00000001, 0x0201f800, 0x00101875, + 0x4201d000, 0x00000014, 0x0201f800, 0x00105e41, 0x59c4d008, 0x8268d540, 0x00000280, 0x8268d500, 0xffffffe1, 0x486b8808, 0x4a0388a7, 0x0000f7f7, 0x4a038805, 0x04000001, 0x4200d000, 0xbe20bfff, - 0x4200d800, 0x80018000, 0x0201f800, 0x00103e8b, + 0x4200d800, 0x80018000, 0x0201f800, 0x00103f5e, 0x4200d000, 0xfffeffff, 0x4178d800, 0x0201f800, - 0x00103e8b, 0x42010000, 0x00001387, 0x0401f008, + 0x00103f5e, 0x42010000, 0x00001387, 0x0401f008, 0x80817040, 0x04000053, 0x80810040, 0x42000000, 0xffffffff, 0x80817480, 0x04000009, 0x4201d000, - 0x00000014, 0x0201f800, 0x00105c7f, 0x0201f800, - 0x001018cd, 0x80c589c0, 0x040007f2, 0x59c4d005, + 0x00000014, 0x0201f800, 0x00105e41, 0x0201f800, + 0x001018ce, 0x80c589c0, 0x040007f2, 0x59c4d005, 0x8268dd00, 0x04000000, 0x8c68d534, 0x0402001c, 0x59c4d0a4, 0x8268d500, 0x0000000f, 0x82697480, 0x00000008, 0x0402003c, 0x0401f015, 0x0201f800, - 0x001016b3, 0x80c589c0, 0x04000006, 0x4178d000, - 0x0201f800, 0x0010189e, 0x4178d000, 0x0401f7bf, - 0x0201f800, 0x001016be, 0x80c589c0, 0x04000026, - 0x4200d000, 0x00000002, 0x0201f800, 0x0010189e, + 0x001016b4, 0x80c589c0, 0x04000006, 0x4178d000, + 0x0201f800, 0x0010189f, 0x4178d000, 0x0401f7bf, + 0x0201f800, 0x001016bf, 0x80c589c0, 0x04000026, + 0x4200d000, 0x00000002, 0x0201f800, 0x0010189f, 0x4200d000, 0x00000002, 0x0401f7b4, 0x4200d000, - 0x00020000, 0x0201f800, 0x00103e92, 0x4201d000, - 0x00000064, 0x0201f800, 0x00105c7f, 0x4200d000, + 0x00020000, 0x0201f800, 0x00103f65, 0x4201d000, + 0x00000064, 0x0201f800, 0x00105e41, 0x4200d000, 0xfeffffff, 0x4200d800, 0x02000000, 0x0201f800, - 0x00103e8b, 0x4200d000, 0xfdffffff, 0x4178d800, - 0x0201f800, 0x00103e8b, 0x4a038805, 0x04000001, + 0x00103f5e, 0x4200d000, 0xfdffffff, 0x4178d800, + 0x0201f800, 0x00103f5e, 0x4a038805, 0x04000001, 0x59c4d0a4, 0x8268d500, 0x0000000f, 0x4178d800, 0x8068d1c0, 0x0402000c, 0x4200d800, 0x00000001, 0x0401f009, 0x4200d000, 0x00000003, 0x0201f800, - 0x0010189e, 0x4200d000, 0x00000003, 0x0401f78f, + 0x0010189f, 0x4200d000, 0x00000003, 0x0401f78f, 0x40c4d800, 0x406d8800, 0x589d0000, 0x809d3800, 0x1c01f000, 0x829d3c80, 0x00000003, 0x48813800, 0x48853801, 0x48893802, 0x40690000, 0x492fc857, @@ -24427,7 +24659,7 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x1c01f000, 0x829d3c80, 0x00000002, 0x48813800, 0x48853801, 0x40690000, 0x497bc856, 0x4203a000, 0x00007600, 0x4200d000, 0x00000040, 0x0201f800, - 0x0010134f, 0x4a03a00a, 0x00000001, 0x4a03a005, + 0x0010134d, 0x4a03a00a, 0x00000001, 0x4a03a005, 0x20000000, 0x59d0d006, 0x4a03a005, 0x30000000, 0x59d0d006, 0x82690d00, 0x00000020, 0x8c68d50a, 0x040207fc, 0x59a0d20d, 0x48690005, 0x8068d1c0, @@ -24436,12 +24668,12 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x59a0d40e, 0x8068d0e0, 0x59a0da0e, 0x406c0000, 0x8068d540, 0x48690006, 0x59a0d40c, 0x8068d0e0, 0x59a0da0c, 0x826c0500, 0x0000fffc, 0x8068d540, - 0x48690009, 0x486ba003, 0x0201f800, 0x00106d42, + 0x48690009, 0x486ba003, 0x0201f800, 0x00106efa, 0x40c66000, 0x80c589c0, 0x0400004f, 0x49334001, 0x0201f800, 0x00100579, 0x40c65800, 0x80c589c0, 0x04000041, 0x4a025a05, 0x00000018, 0x4a025806, 0x00abcdef, 0x492e6009, 0x492e600d, 0x58817005, - 0x48ba600f, 0x48865c11, 0x4a02601d, 0x0010b111, + 0x48ba600f, 0x48865c11, 0x4a02601d, 0x0010b391, 0x4a02600e, 0x00000004, 0x832cd400, 0x00000012, 0x486a600c, 0x48690008, 0x4a01000a, 0x0000000c, 0x5880d005, 0x8068d040, 0x48690005, 0x4080d000, @@ -24455,10 +24687,10 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x03000000, 0x040007ef, 0x4979000a, 0x4178e000, 0x8270e400, 0x0000000c, 0x8068d840, 0x406cd000, 0x806cd9c0, 0x040207fb, 0x4871000a, 0x486d0005, - 0x0401f7e9, 0x4200d000, 0x0010e8cb, 0x4200d800, + 0x0401f7e9, 0x4200d000, 0x0010eacb, 0x4200d800, 0x00100579, 0x4080e000, 0x0201f800, 0x001001ec, - 0x0401f7b9, 0x4200d000, 0x0010e8cb, 0x4200d800, - 0x00106d42, 0x4080e000, 0x0201f800, 0x001001ec, + 0x0401f7b9, 0x4200d000, 0x0010eacb, 0x4200d800, + 0x00106efa, 0x4080e000, 0x0201f800, 0x001001ec, 0x0401f7ab, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000002, 0x1c01f000, 0x809d3840, 0x48813800, 0x40690000, 0x497bc856, 0x42038000, 0x00007700, @@ -24471,13 +24703,13 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x406c0000, 0x8068d540, 0x48690006, 0x59a0d40c, 0x8068d0e0, 0x59a0da0c, 0x826c0500, 0x0000fffc, 0x8068d540, 0x48690009, 0x486bc857, 0x58817009, - 0x48bb8003, 0x0201f800, 0x00106d42, 0x40c66000, + 0x48bb8003, 0x0201f800, 0x00106efa, 0x40c66000, 0x80c589c0, 0x0400005a, 0x49334000, 0x0201f800, 0x00100579, 0x40c65800, 0x80c589c0, 0x0400004c, 0x4a025a05, 0x00000018, 0x4a025806, 0x00abcdef, 0x492e6009, 0x492e600d, 0x58817005, 0x48ba600f, 0x4a02600e, 0x00000004, 0x497a5c11, 0x4a02601d, - 0x0010b111, 0x832cd400, 0x00000012, 0x486a600c, + 0x0010b391, 0x832cd400, 0x00000012, 0x486a600c, 0x48690008, 0x4a01000a, 0x0000000c, 0x5880d005, 0x8068d040, 0x48690005, 0x4080d000, 0x0401fed2, 0x59a0d408, 0x82697480, 0x0000dddd, 0x040007c3, @@ -24493,19 +24725,19 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x00000006, 0x48690008, 0x4080d000, 0x0401fea6, 0x80c589c0, 0x040207ea, 0x59a0d408, 0x82697480, 0x0000dddd, 0x0402078e, 0x0401f011, 0x4200d000, - 0x0010e95c, 0x4200d800, 0x00100579, 0x4080e000, + 0x0010eb5c, 0x4200d800, 0x00100579, 0x4080e000, 0x0201f800, 0x001001ec, 0x0401f7ae, 0x4200d000, - 0x0010e95c, 0x4200d800, 0x00106d42, 0x4080e000, + 0x0010eb5c, 0x4200d800, 0x00106efa, 0x4080e000, 0x0201f800, 0x001001ec, 0x0401f7a0, 0x589d0000, 0x809d3800, 0x1c01f000, 0x829d3c80, 0x00000002, 0x48813800, 0x48853801, 0x40690800, 0x406d0000, - 0x0201f800, 0x00101910, 0x40800000, 0x4084d000, - 0x80c4dd00, 0x0201f800, 0x00101917, 0x589d0801, + 0x0201f800, 0x00101911, 0x40800000, 0x4084d000, + 0x80c4dd00, 0x0201f800, 0x00101918, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000002, 0x1c01f000, 0x829d3c80, 0x00000002, 0x48813800, 0x48853801, - 0x40690800, 0x406d0000, 0x0201f800, 0x00101910, + 0x40690800, 0x406d0000, 0x0201f800, 0x00101911, 0x40800000, 0x4084d000, 0x80c4dd40, 0x0201f800, - 0x00101917, 0x589d0801, 0x589d0000, 0x829d3c00, + 0x00101918, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000002, 0x1c01f000, 0x809d3840, 0x48a13800, 0x829d3c80, 0x0000000f, 0x409d4000, 0x829d3c80, 0x00000005, 0x48813800, 0x48853801, 0x48893802, @@ -24514,37 +24746,37 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x8d0e1d0e, 0x040200a3, 0x59a0d407, 0x8268dd00, 0x00000007, 0x826d7480, 0x00000002, 0x040000aa, 0x806cd9c0, 0x04000006, 0x806d7040, 0x04000144, - 0x0201f800, 0x001021ff, 0x0401f17f, 0x4200d000, + 0x0201f800, 0x001022a2, 0x0401f17f, 0x4200d000, 0x00000802, 0x4200d800, 0x00000002, 0x0401ffc9, 0x0401fdb4, 0x80c589c0, 0x04000144, 0x59a0d410, 0x8068d0e0, 0x59a0da10, 0x406c0000, 0x8068d540, 0x48694000, 0x497b4408, 0x4979400b, 0x4979400c, 0x4979400d, 0x49794002, 0x49794001, 0x0201f800, - 0x001028e8, 0x0201f800, 0x001037c8, 0x80c589c0, - 0x040000fe, 0x0201f800, 0x00105f78, 0x598e600b, - 0x0201f800, 0x00106287, 0x0201f800, 0x00105f78, - 0x417a3000, 0x0201f800, 0x001064d2, 0x59926005, - 0x813261c0, 0x0400000d, 0x0201f800, 0x001061b6, - 0x0201f800, 0x00105f4c, 0x0201f800, 0x00105f52, + 0x0010298e, 0x0201f800, 0x00103893, 0x80c589c0, + 0x040000fe, 0x0201f800, 0x0010613a, 0x598e600b, + 0x0201f800, 0x00106449, 0x0201f800, 0x0010613a, + 0x417a3000, 0x0201f800, 0x00106694, 0x59926005, + 0x813261c0, 0x0400000d, 0x0201f800, 0x00106378, + 0x0201f800, 0x0010610e, 0x0201f800, 0x00106114, 0x42027800, 0x00001000, 0x42028000, 0x0000002e, - 0x0201f800, 0x0010eeff, 0x811a3000, 0x83197480, + 0x0201f800, 0x0010f10e, 0x811a3000, 0x83197480, 0x00000004, 0x040007ec, 0x040017eb, 0x0201f800, - 0x0010082f, 0x49794004, 0x497b4002, 0x40a0d000, + 0x0010082d, 0x49794004, 0x497b4002, 0x40a0d000, 0x0401feea, 0x59a0d408, 0x82697480, 0x0000dddd, 0x04000138, 0x40a0d000, 0x0401fe53, 0x59a0d408, 0x82697480, 0x0000dddd, 0x04000132, 0x59a0d00d, 0x8068d1c0, 0x040200f2, 0x4979400e, 0x40a0d000, - 0x0201f800, 0x0010e618, 0x0201f800, 0x0010e358, + 0x0201f800, 0x0010e818, 0x0201f800, 0x0010e558, 0x58a0d004, 0x8068d1c0, 0x040000ca, 0x58a0e00e, 0x80717040, 0x04000062, 0x59c8d001, 0x8068d1c0, 0x040200d6, 0x59a0d002, 0x42000000, 0xfeedbeef, 0x80697480, 0x040000db, 0x4a014003, 0x10000000, 0x40a0d000, 0x0401fc6f, 0x4a034002, 0xfeedbeef, - 0x40a0d000, 0x0201f800, 0x0010e680, 0x59a0d408, + 0x40a0d000, 0x0201f800, 0x0010e880, 0x59a0d408, 0x82697480, 0x0000dddd, 0x04000028, 0x40a0d000, 0x0401fcc0, 0x59a0d408, 0x82697480, 0x0000dddd, - 0x04000022, 0x0201f800, 0x0010e3a0, 0x59c4d005, - 0x8c68d534, 0x0402003c, 0x0201f800, 0x001028ef, + 0x04000022, 0x0201f800, 0x0010e5a0, 0x59c4d005, + 0x8c68d534, 0x0402003c, 0x0201f800, 0x00102995, 0x80c589c0, 0x040200e4, 0x59a0d00d, 0x8068d1c0, 0x04000016, 0x59a26000, 0x59a0d40d, 0x8068d1c0, 0x04000004, 0x5930d00f, 0x8068d1c0, 0x040207c7, @@ -24552,13 +24784,13 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x5930d00f, 0x8068d1c0, 0x040207c0, 0x58a0d002, 0x8068d1c0, 0x040207bd, 0x58a0d001, 0x8068d1c0, 0x040207ba, 0x0401fcf1, 0x58a0e00e, 0x0401f024, - 0x0201f800, 0x001016d4, 0x80c589c0, 0x0400075b, - 0x4200d000, 0x00000003, 0x0201f800, 0x0010189e, - 0x4200d000, 0x00000003, 0x0201f800, 0x00101874, + 0x0201f800, 0x001016d5, 0x80c589c0, 0x0400075b, + 0x4200d000, 0x00000003, 0x0201f800, 0x0010189f, + 0x4200d000, 0x00000003, 0x0201f800, 0x00101875, 0x0401f752, 0x8d0e1d0e, 0x0402000c, 0x0201f800, - 0x00104a28, 0x80c589c0, 0x040200bf, 0x836d7480, + 0x00104b2d, 0x80c589c0, 0x040200bf, 0x836d7480, 0x00000003, 0x04020005, 0x59c4d0a4, 0x8268d500, - 0x0000000f, 0x0400075a, 0x0201f800, 0x00102203, + 0x0000000f, 0x0400075a, 0x0201f800, 0x001022a6, 0x0401f0cd, 0x4a01400d, 0x0000bbbb, 0x4a01400e, 0x00000001, 0x4200e000, 0x00000001, 0x58a0d000, 0x8068d040, 0x48694000, 0x4200d800, 0x00030d40, @@ -24566,10 +24798,10 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x04000004, 0x59c0d007, 0x8c68d504, 0x040007fc, 0x59c0d007, 0x8c68d504, 0x0402008a, 0x59c0d007, 0x8268d500, 0x000501c0, 0x04020003, 0x0201f800, - 0x0010e6d7, 0x4a01400d, 0x0000dddd, 0x40a0d000, + 0x0010e8d7, 0x4a01400d, 0x0000dddd, 0x40a0d000, 0x0401fcc9, 0x80c589c0, 0x04020004, 0x58a0d000, - 0x8068d1c0, 0x04020764, 0x0201f800, 0x001037e4, - 0x0201f800, 0x00106312, 0x0201f800, 0x0010e3a6, + 0x8068d1c0, 0x04020764, 0x0201f800, 0x001038af, + 0x0201f800, 0x001064d4, 0x0201f800, 0x0010e5a6, 0x4201d000, 0x000186a0, 0x48938880, 0x488f8808, 0x488b88a3, 0x4883500f, 0x48879040, 0x42038000, 0x00007700, 0x4a038009, 0xf4f60000, 0x4a038891, @@ -24579,22 +24811,22 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x04000010, 0x4200d000, 0x00000802, 0x4200d800, 0xfffffffc, 0x0401fec1, 0x4200d000, 0x0000240c, 0x4200d800, 0xffffff7f, 0x0401febc, 0x0201f800, - 0x00104a3e, 0x40c50000, 0x80c589c0, 0x04000067, + 0x00104b43, 0x40c50000, 0x80c589c0, 0x04000067, 0x59a0d408, 0x82697480, 0x0000dddd, 0x0400000f, 0x58a0d80b, 0x806cd9c0, 0x04020007, 0x58a0d00c, 0x8068d1c0, 0x04020004, 0x58a0d00d, 0x8068d1c0, 0x0400006b, 0x486f4407, 0x58a0d00c, 0x486b4208, - 0x58a0d00d, 0x486b4408, 0x0201f800, 0x0010220b, + 0x58a0d00d, 0x486b4408, 0x0201f800, 0x001022ae, 0x0401f065, 0x59c8d001, 0x8068d1c0, 0x04020738, - 0x40a0d000, 0x0201f800, 0x0010e680, 0x59a0d408, + 0x40a0d000, 0x0201f800, 0x0010e880, 0x59a0d408, 0x82697480, 0x0000dddd, 0x04000731, 0x0201f800, - 0x001028ef, 0x80c589c0, 0x040007f3, 0x0201f800, - 0x0010e6d7, 0x4a01400d, 0x0000aaaa, 0x4a01400e, + 0x00102995, 0x80c589c0, 0x040007f3, 0x0201f800, + 0x0010e8d7, 0x4a01400d, 0x0000aaaa, 0x4a01400e, 0x00000001, 0x0401f726, 0x40a0d000, 0x0201f800, - 0x0010e6e5, 0x80c589c0, 0x04020781, 0x59a0d002, + 0x0010e8e5, 0x80c589c0, 0x04020781, 0x59a0d002, 0x42000000, 0xfeedbeef, 0x80697480, 0x04020727, 0x4a014003, 0x10000004, 0x0401f726, 0x40a0d000, - 0x0201f800, 0x0010e618, 0x0401f70c, 0x4200d000, + 0x0201f800, 0x0010e818, 0x0401f70c, 0x4200d000, 0x00000802, 0x0401fe8b, 0x4200d000, 0x0000240c, 0x4200d800, 0x00000080, 0x0401fe86, 0x0401fc71, 0x80c589c0, 0x040206be, 0x4084d000, 0x4088d800, @@ -24605,412 +24837,411 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x0401f77a, 0x4a01400d, 0x0000cccc, 0x58a0d000, 0x486b4210, 0x58a0d000, 0x8068d120, 0x486b4410, 0x0401f74f, 0x4a034407, 0x00000016, 0x0201f800, - 0x001021fb, 0x0401f014, 0x4a0388a7, 0x0000f7f7, + 0x0010229e, 0x0401f014, 0x4a0388a7, 0x0000f7f7, 0x4200d000, 0xbeffffff, 0x4200d800, 0x80018000, - 0x0201f800, 0x00103e8b, 0x4200d000, 0xfffeffff, - 0x4080d800, 0x0201f800, 0x00103e8b, 0x0401f78d, + 0x0201f800, 0x00103f5e, 0x4200d000, 0xfffeffff, + 0x4080d800, 0x0201f800, 0x00103f5e, 0x0401f78d, 0x40a0d000, 0x0401fc20, 0x0401f75c, 0x0201f800, - 0x001021b9, 0x589d2004, 0x589d1803, 0x589d1002, + 0x0010225c, 0x589d2004, 0x589d1803, 0x589d1002, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000014, - 0x589d4000, 0x809d3800, 0x1c01f000, 0x809d3840, - 0x48813800, 0x4937c857, 0x42010000, 0x00000001, - 0x0201f800, 0x00106d42, 0x40c66000, 0x80c589c0, - 0x04000017, 0x4925881d, 0x4935880a, 0x0201f800, - 0x001086df, 0x48826407, 0x417a7800, 0x0201f800, - 0x001040e0, 0x59a8d016, 0x8068d000, 0x486b5016, - 0x599cd019, 0x417a7000, 0x8c68d50e, 0x04020003, - 0x42027000, 0x00000004, 0x0201f800, 0x00106d6c, - 0x599cd208, 0x486a6c12, 0x41790000, 0x40818800, - 0x589d0000, 0x809d3800, 0x1c01f000, 0x4937c857, - 0x5934d200, 0x8468d502, 0x486a6a00, 0x1c01f000, - 0x829d3c80, 0x00000004, 0x48813800, 0x48853801, - 0x48893802, 0x488d3803, 0x41350800, 0x41451000, - 0x412d1800, 0x4943c857, 0x493fc857, 0x0201f800, - 0x00105f78, 0x40c50000, 0x8d3e7d18, 0x04000003, - 0x8d3e7d16, 0x04000068, 0x0201f800, 0x0010f1b7, - 0x0201f800, 0x0010f1a7, 0x0201f800, 0x0010f25c, - 0x0201f800, 0x0010f3a9, 0x808101c0, 0x04000003, - 0x0201f800, 0x00105f69, 0x417a8800, 0x0401f00a, - 0x58c4d200, 0x8c68d50e, 0x0400000e, 0x81468800, - 0x83457480, 0x000007ef, 0x83f17500, 0x03000000, - 0x04000026, 0x0201f800, 0x001041cf, 0x40c66800, - 0x80c589c0, 0x040007f6, 0x8d3e7d06, 0x040207f1, - 0x8d3e7d18, 0x0400003f, 0x5935000f, 0x0401f007, - 0x49410207, 0x40825800, 0x58810000, 0x492fc857, - 0x0201f800, 0x0002035b, 0x808101c0, 0x040207f9, - 0x497a680f, 0x497a6810, 0x4937c857, 0x4a026c00, - 0x00000707, 0x497a6a03, 0x497a6811, 0x599cd401, - 0x486a6a0b, 0x5934d402, 0x8268d500, 0x000000ff, - 0x486a6c02, 0x81468800, 0x83457480, 0x000007ef, - 0x040007dd, 0x040017dc, 0x8d3e7d02, 0x0400002d, - 0x497b5018, 0x42028800, 0x000007f0, 0x0401f007, - 0x81468800, 0x83457480, 0x000007ff, 0x83f17500, - 0x03000000, 0x04000023, 0x0201f800, 0x001041cf, - 0x40c66800, 0x80c589c0, 0x040007f6, 0x48c7c857, - 0x4a018c00, 0x00000707, 0x58c4d00c, 0x8068d1c0, - 0x040207f0, 0x58c4d00f, 0x8068d1c0, 0x040207ed, - 0x0201f800, 0x00103ebf, 0x81468800, 0x83457480, - 0x000007ff, 0x040007ed, 0x040017ec, 0x0401f00d, - 0x4937c857, 0x8d0e1d20, 0x04000004, 0x4a026c00, - 0x00000707, 0x0401f7ae, 0x0201f800, 0x00103ebf, - 0x0401f7ab, 0x0201f800, 0x0010edc4, 0x0401f797, - 0x40866800, 0x408a8800, 0x408e5800, 0x589d1803, - 0x589d1002, 0x589d0801, 0x589d0000, 0x829d3c00, - 0x00000004, 0x1c01f000, 0x829d3c80, 0x00000006, - 0x48813800, 0x48853801, 0x48893802, 0x488d3803, - 0x48913804, 0x48953805, 0x41352800, 0x41412000, - 0x41451800, 0x412d1000, 0x4933c857, 0x493fc857, - 0x4927c857, 0x0201f800, 0x00105f78, 0x40c50800, - 0x5932680a, 0x813669c0, 0x0400002f, 0x5934d403, - 0x406a8800, 0x42028000, 0x00000029, 0x8d3e7d18, - 0x0402002c, 0x0201f800, 0x0010f051, 0x0201f800, - 0x0010f148, 0x0201f800, 0x0010f1e1, 0x0201f800, - 0x0010f603, 0x4937c857, 0x8d3e7d06, 0x04000004, - 0x5934d200, 0x8c68d50e, 0x0402001b, 0x8d3e7d18, - 0x04000021, 0x5935000f, 0x808101c0, 0x0400000b, - 0x49410207, 0x40825800, 0x58810000, 0x492fc857, - 0x0201f800, 0x0002035b, 0x808101c0, 0x040207f9, - 0x4882680f, 0x48826810, 0x4937c857, 0x4a026c00, - 0x00000707, 0x497a6a03, 0x497a6811, 0x599cd401, - 0x486a6a0b, 0x5934d402, 0x8268d500, 0x000000ff, - 0x486a6c02, 0x808509c0, 0x04000013, 0x0401f00c, - 0x8d3e7d16, 0x040207d4, 0x0201f800, 0x00105e35, - 0x0401f7d1, 0x8d0e1d20, 0x04000008, 0x4a026c00, - 0x00000707, 0x808509c0, 0x04000007, 0x0201f800, - 0x00105f69, 0x0401f004, 0x0201f800, 0x00103ebf, - 0x0401f7ed, 0x408a5800, 0x408e8800, 0x40928000, - 0x40966800, 0x589d2805, 0x589d2004, 0x589d1803, - 0x589d1002, 0x589d0801, 0x589d0000, 0x829d3c00, - 0x00000006, 0x1c01f000, 0x809d3840, 0x48813800, - 0x4937c857, 0x42010000, 0x00000001, 0x0201f800, - 0x00106d42, 0x40c66000, 0x80c589c0, 0x04000020, - 0x4925881d, 0x4935880a, 0x5934d403, 0x82697480, - 0x000007fe, 0x04000003, 0x417a7800, 0x0401ff8b, - 0x0201f800, 0x001086df, 0x48826407, 0x417a7800, - 0x0201f800, 0x001040e0, 0x4200d000, 0x00000003, - 0x0201f800, 0x001040ea, 0x836d7480, 0x00000003, - 0x04000004, 0x59a8d016, 0x8068d000, 0x486b5016, - 0x42027000, 0x00000002, 0x0201f800, 0x00106d6c, - 0x599cd208, 0x486a6c12, 0x41790000, 0x40818800, - 0x589d0000, 0x809d3800, 0x1c01f000, 0x829d3c80, - 0x00000003, 0x48813800, 0x48853801, 0x48893802, - 0x40690800, 0x406d1000, 0x40d50000, 0x0201f800, - 0x00105f52, 0x5880d02f, 0x41300000, 0x80697480, - 0x04000018, 0x5880d02e, 0x41300000, 0x80697480, - 0x0400001f, 0x5930d800, 0x806cd9c0, 0x04020008, - 0x59317001, 0x48b91001, 0x5930d001, 0x8068d1c0, - 0x04020025, 0x488a680c, 0x0401f038, 0x5930d801, - 0x806cd9c0, 0x04000022, 0x59317000, 0x48b8d800, - 0x486d0800, 0x497a6001, 0x497a6000, 0x0401f02f, - 0x5930d801, 0x806cd9c0, 0x04000010, 0x5930d000, - 0x8068d1c0, 0x04020025, 0x486d002e, 0x59317001, - 0x48b9002f, 0x497a6001, 0x0401f024, 0x5930d001, - 0x8068d1c0, 0x04020013, 0x4885002e, 0x48690800, - 0x486a680c, 0x0401f01d, 0x5930d000, 0x8068d1c0, - 0x04020012, 0x486d002f, 0x486d002e, 0x497a680c, - 0x0401f016, 0x486e6001, 0x0401f014, 0x59317000, - 0x48b90800, 0x486e680c, 0x497a6000, 0x0401f00f, - 0x59317001, 0x48b9002e, 0x59317001, 0x48b90800, - 0x497a6001, 0x0401f009, 0x59317000, 0x48b9002f, - 0x486e6000, 0x0401f7ee, 0x59317000, 0x48b8d800, - 0x497a6000, 0x0401f7da, 0x589d1002, 0x589d0801, - 0x589d0000, 0x829d3c00, 0x00000003, 0x1c01f000, - 0x809d3840, 0x48a13800, 0x829d3c80, 0x00000005, - 0x409d4000, 0x829d3c80, 0x00000005, 0x48813800, - 0x48853801, 0x48893802, 0x488d3803, 0x48913804, - 0x41790800, 0x40850000, 0x4933c857, 0x0201f800, - 0x00105f78, 0x40c52000, 0x41351800, 0x41191000, - 0x49914003, 0x49d14000, 0x49a54001, 0x49154002, - 0x48d94004, 0x5932680a, 0x58d4e02f, 0x4070d800, - 0x8070e1c0, 0x04020008, 0x0401f01e, 0x406ce000, - 0x586cd800, 0x806cd9c0, 0x0400001a, 0x808509c0, - 0x04020018, 0x41300000, 0x806d7480, 0x04000011, - 0x586cd00a, 0x41340000, 0x80697480, 0x040207f4, - 0x406d0000, 0x586cd801, 0x806cd9c0, 0x040007f2, - 0x41300000, 0x0401f005, 0x406d0000, 0x586cd801, - 0x806cd9c0, 0x040007ec, 0x806d7480, 0x040207fb, - 0x42010800, 0x00000001, 0x806cd9c0, 0x040207e8, - 0x80857040, 0x04000020, 0x417a3000, 0x0201f800, - 0x001064d2, 0x5990d005, 0x41300000, 0x80697480, - 0x04000010, 0x811a3000, 0x83197480, 0x00000004, - 0x040007f7, 0x040017f6, 0x408a3000, 0x408e6800, - 0x58a32003, 0x58a3a000, 0x58a34801, 0x58a22802, - 0x58a1b004, 0x80917040, 0x04020011, 0x0401f00e, - 0x42010800, 0x00000001, 0x0201f800, 0x001061b6, - 0x0201f800, 0x00105f4c, 0x0201f800, 0x00105f52, - 0x0401f7ee, 0x4070d000, 0x4080d800, 0x0401ff48, - 0x0401f7ea, 0x0201f800, 0x00105f69, 0x40858800, - 0x589d2004, 0x589d1803, 0x589d1002, 0x589d0801, - 0x589d0000, 0x829d3c00, 0x0000000a, 0x589d4000, - 0x809d3800, 0x1c01f000, 0x829d3c80, 0x00000002, - 0x48813800, 0x48853801, 0x41310800, 0x598e6005, - 0x813261c0, 0x0400000b, 0x59310000, 0x0201f800, - 0x00105e7c, 0x0201f800, 0x00106d11, 0x0201f800, - 0x00105f62, 0x40826000, 0x813261c0, 0x040207f7, - 0x497b1805, 0x497b1804, 0x40866000, 0x589d0801, + 0x589d4000, 0x809d3800, 0x1c01f000, 0x829d3c80, + 0x00000002, 0x48813800, 0x48853801, 0x59a8d006, + 0x82690d00, 0x00004000, 0x4178d800, 0x8c68d51c, + 0x04020022, 0x4937c857, 0x42010000, 0x00000001, + 0x0201f800, 0x00106efa, 0x40c66000, 0x80c589c0, + 0x04020003, 0x4080d800, 0x0401f018, 0x4925881d, + 0x4935880a, 0x0201f800, 0x001088c0, 0x48826407, + 0x40867800, 0x0201f800, 0x001041b3, 0x59a8d016, + 0x8068d000, 0x486b5016, 0x599cd019, 0x40867000, + 0x8c68d50e, 0x04020003, 0x42027000, 0x00000004, + 0x0201f800, 0x00106f24, 0x599cd208, 0x486a6c12, + 0x41790000, 0x4080d800, 0x406d8800, 0x589d0801, + 0x589d0000, 0x829d3c00, 0x00000002, 0x1c01f000, + 0x4937c857, 0x5934d200, 0x8468d502, 0x486a6a00, + 0x1c01f000, 0x829d3c80, 0x00000004, 0x48813800, + 0x48853801, 0x48893802, 0x488d3803, 0x41350800, + 0x41451000, 0x412d1800, 0x4943c857, 0x493fc857, + 0x0201f800, 0x0010613a, 0x40c50000, 0x8d3e7d18, + 0x04000003, 0x8d3e7d16, 0x04000069, 0x0201f800, + 0x0010f3b3, 0x0201f800, 0x0010f3a3, 0x0201f800, + 0x0010f458, 0x0201f800, 0x0010f5a5, 0x808101c0, + 0x04000003, 0x0201f800, 0x0010612b, 0x417a8800, + 0x0401f00a, 0x58c4d200, 0x8c68d50e, 0x0400000e, + 0x81468800, 0x83457480, 0x000007ef, 0x83f17500, + 0x03000000, 0x04000027, 0x0201f800, 0x001042a5, + 0x40c66800, 0x80c589c0, 0x040007f6, 0x8d3e7d06, + 0x040207f1, 0x497a6c0b, 0x8d3e7d18, 0x0400003f, + 0x5935000f, 0x0401f007, 0x49410207, 0x40825800, + 0x58810000, 0x492fc857, 0x0201f800, 0x0002035b, + 0x808101c0, 0x040207f9, 0x497a680f, 0x497a6810, + 0x4937c857, 0x4a026c00, 0x00000707, 0x497a6a03, + 0x497a6811, 0x599cd401, 0x486a6a0b, 0x5934d402, + 0x8268d500, 0x000000ff, 0x486a6c02, 0x81468800, + 0x83457480, 0x000007ef, 0x040007dc, 0x040017db, + 0x8d3e7d02, 0x0400002d, 0x497b5018, 0x42028800, + 0x000007f0, 0x0401f007, 0x81468800, 0x83457480, + 0x000007ff, 0x83f17500, 0x03000000, 0x04000023, + 0x0201f800, 0x001042a5, 0x40c66800, 0x80c589c0, + 0x040007f6, 0x48c7c857, 0x4a018c00, 0x00000707, + 0x58c4d00c, 0x8068d1c0, 0x040207f0, 0x58c4d00f, + 0x8068d1c0, 0x040207ed, 0x0201f800, 0x00103f92, + 0x81468800, 0x83457480, 0x000007ff, 0x040007ed, + 0x040017ec, 0x0401f00d, 0x4937c857, 0x8d0e1d20, + 0x04000004, 0x4a026c00, 0x00000707, 0x0401f7ad, + 0x0201f800, 0x00103f92, 0x0401f7aa, 0x0201f800, + 0x0010efd3, 0x0401f796, 0x40866800, 0x408a8800, + 0x408e5800, 0x589d1803, 0x589d1002, 0x589d0801, + 0x589d0000, 0x829d3c00, 0x00000004, 0x1c01f000, + 0x829d3c80, 0x00000006, 0x48813800, 0x48853801, + 0x48893802, 0x488d3803, 0x48913804, 0x48953805, + 0x41352800, 0x41412000, 0x41451800, 0x412d1000, + 0x4933c857, 0x493fc857, 0x4927c857, 0x0201f800, + 0x0010613a, 0x40c50800, 0x5932680a, 0x813669c0, + 0x04000030, 0x5934d403, 0x406a8800, 0x42028000, + 0x00000029, 0x8d3e7d18, 0x0402002d, 0x0201f800, + 0x0010f260, 0x0201f800, 0x0010f344, 0x0201f800, + 0x0010f3dd, 0x0201f800, 0x0010f7f5, 0x4937c857, + 0x8d3e7d06, 0x04000004, 0x5934d200, 0x8c68d50e, + 0x0402001c, 0x497a6c0b, 0x8d3e7d18, 0x04000021, + 0x5935000f, 0x808101c0, 0x0400000b, 0x49410207, + 0x40825800, 0x58810000, 0x492fc857, 0x0201f800, + 0x0002035b, 0x808101c0, 0x040207f9, 0x4882680f, + 0x48826810, 0x4937c857, 0x4a026c00, 0x00000707, + 0x497a6a03, 0x497a6811, 0x599cd401, 0x486a6a0b, + 0x5934d402, 0x8268d500, 0x000000ff, 0x486a6c02, + 0x808509c0, 0x04000013, 0x0401f00c, 0x8d3e7d16, + 0x040207d3, 0x0201f800, 0x00105ff7, 0x0401f7d0, + 0x8d0e1d20, 0x04000008, 0x4a026c00, 0x00000707, + 0x808509c0, 0x04000007, 0x0201f800, 0x0010612b, + 0x0401f004, 0x0201f800, 0x00103f92, 0x0401f7ed, + 0x408a5800, 0x408e8800, 0x40928000, 0x40966800, + 0x589d2805, 0x589d2004, 0x589d1803, 0x589d1002, + 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000006, + 0x1c01f000, 0x809d3840, 0x48813800, 0x4937c857, + 0x42010000, 0x00000001, 0x0201f800, 0x00106efa, + 0x40c66000, 0x80c589c0, 0x04000020, 0x4925881d, + 0x4935880a, 0x5934d403, 0x82697480, 0x000007fe, + 0x04000003, 0x417a7800, 0x0401ff8a, 0x0201f800, + 0x001088c0, 0x48826407, 0x417a7800, 0x0201f800, + 0x001041b3, 0x4200d000, 0x00000003, 0x0201f800, + 0x001041bd, 0x836d7480, 0x00000003, 0x04000004, + 0x59a8d016, 0x8068d000, 0x486b5016, 0x42027000, + 0x00000002, 0x0201f800, 0x00106f24, 0x599cd208, + 0x486a6c12, 0x41790000, 0x40818800, 0x589d0000, + 0x809d3800, 0x1c01f000, 0x829d3c80, 0x00000003, + 0x48813800, 0x48853801, 0x48893802, 0x40690800, + 0x406d1000, 0x40d50000, 0x0201f800, 0x00106114, + 0x5880d02f, 0x41300000, 0x80697480, 0x04000018, + 0x5880d02e, 0x41300000, 0x80697480, 0x0400001f, + 0x5930d800, 0x806cd9c0, 0x04020008, 0x59317001, + 0x48b91001, 0x5930d001, 0x8068d1c0, 0x04020025, + 0x488a680c, 0x0401f038, 0x5930d801, 0x806cd9c0, + 0x04000022, 0x59317000, 0x48b8d800, 0x486d0800, + 0x497a6001, 0x497a6000, 0x0401f02f, 0x5930d801, + 0x806cd9c0, 0x04000010, 0x5930d000, 0x8068d1c0, + 0x04020025, 0x486d002e, 0x59317001, 0x48b9002f, + 0x497a6001, 0x0401f024, 0x5930d001, 0x8068d1c0, + 0x04020013, 0x4885002e, 0x48690800, 0x486a680c, + 0x0401f01d, 0x5930d000, 0x8068d1c0, 0x04020012, + 0x486d002f, 0x486d002e, 0x497a680c, 0x0401f016, + 0x486e6001, 0x0401f014, 0x59317000, 0x48b90800, + 0x486e680c, 0x497a6000, 0x0401f00f, 0x59317001, + 0x48b9002e, 0x59317001, 0x48b90800, 0x497a6001, + 0x0401f009, 0x59317000, 0x48b9002f, 0x486e6000, + 0x0401f7ee, 0x59317000, 0x48b8d800, 0x497a6000, + 0x0401f7da, 0x589d1002, 0x589d0801, 0x589d0000, + 0x829d3c00, 0x00000003, 0x1c01f000, 0x809d3840, + 0x48a13800, 0x829d3c80, 0x00000005, 0x409d4000, + 0x829d3c80, 0x00000005, 0x48813800, 0x48853801, + 0x48893802, 0x488d3803, 0x48913804, 0x41790800, + 0x40850000, 0x4933c857, 0x0201f800, 0x0010613a, + 0x40c52000, 0x41351800, 0x41191000, 0x49914003, + 0x49d14000, 0x49a54001, 0x49154002, 0x48d94004, + 0x5932680a, 0x58d4e02f, 0x4070d800, 0x8070e1c0, + 0x04020008, 0x0401f01e, 0x406ce000, 0x586cd800, + 0x806cd9c0, 0x0400001a, 0x808509c0, 0x04020018, + 0x41300000, 0x806d7480, 0x04000011, 0x586cd00a, + 0x41340000, 0x80697480, 0x040207f4, 0x406d0000, + 0x586cd801, 0x806cd9c0, 0x040007f2, 0x41300000, + 0x0401f005, 0x406d0000, 0x586cd801, 0x806cd9c0, + 0x040007ec, 0x806d7480, 0x040207fb, 0x42010800, + 0x00000001, 0x806cd9c0, 0x040207e8, 0x80857040, + 0x04000020, 0x417a3000, 0x0201f800, 0x00106694, + 0x5990d005, 0x41300000, 0x80697480, 0x04000010, + 0x811a3000, 0x83197480, 0x00000004, 0x040007f7, + 0x040017f6, 0x408a3000, 0x408e6800, 0x58a32003, + 0x58a3a000, 0x58a34801, 0x58a22802, 0x58a1b004, + 0x80917040, 0x04020011, 0x0401f00e, 0x42010800, + 0x00000001, 0x0201f800, 0x00106378, 0x0201f800, + 0x0010610e, 0x0201f800, 0x00106114, 0x0401f7ee, + 0x4070d000, 0x4080d800, 0x0401ff48, 0x0401f7ea, + 0x0201f800, 0x0010612b, 0x40858800, 0x589d2004, + 0x589d1803, 0x589d1002, 0x589d0801, 0x589d0000, + 0x829d3c00, 0x0000000a, 0x589d4000, 0x809d3800, + 0x1c01f000, 0x829d3c80, 0x00000002, 0x48813800, + 0x48853801, 0x41310800, 0x598e6005, 0x813261c0, + 0x0400000b, 0x59310000, 0x0201f800, 0x0010603e, + 0x0201f800, 0x00106ec5, 0x0201f800, 0x00106124, + 0x40826000, 0x813261c0, 0x040207f7, 0x497b1805, + 0x497b1804, 0x40866000, 0x589d0801, 0x589d0000, + 0x829d3c00, 0x00000002, 0x1c01f000, 0x829d3c80, + 0x00000002, 0x48813800, 0x48853801, 0x40690000, + 0x59310800, 0x497a6000, 0x0201f800, 0x00106114, + 0x808101c0, 0x04000008, 0x48850000, 0x598cd002, + 0x41300000, 0x80697480, 0x0402000b, 0x48831802, + 0x0401f009, 0x598cd002, 0x41300000, 0x80697480, + 0x04000003, 0x48871803, 0x0401f003, 0x48831802, + 0x48831803, 0x0201f800, 0x00106124, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000002, 0x1c01f000, 0x829d3c80, 0x00000002, 0x48813800, 0x48853801, 0x40690000, 0x59310800, 0x497a6000, 0x0201f800, - 0x00105f52, 0x808101c0, 0x04000008, 0x48850000, - 0x598cd002, 0x41300000, 0x80697480, 0x0402000b, - 0x48831802, 0x0401f009, 0x598cd002, 0x41300000, - 0x80697480, 0x04000003, 0x48871803, 0x0401f003, - 0x48831802, 0x48831803, 0x0201f800, 0x00105f62, + 0x00106114, 0x808101c0, 0x04000008, 0x48850000, + 0x598cd006, 0x41300000, 0x80697480, 0x0402000b, + 0x48831806, 0x0401f009, 0x598cd006, 0x41300000, + 0x80697480, 0x04000003, 0x48871807, 0x0401f003, + 0x48831806, 0x48831807, 0x0201f800, 0x00106124, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000002, 0x1c01f000, 0x829d3c80, 0x00000002, 0x48813800, 0x48853801, 0x40690000, 0x59310800, 0x497a6000, - 0x0201f800, 0x00105f52, 0x808101c0, 0x04000008, - 0x48850000, 0x598cd006, 0x41300000, 0x80697480, - 0x0402000b, 0x48831806, 0x0401f009, 0x598cd006, - 0x41300000, 0x80697480, 0x04000003, 0x48871807, - 0x0401f003, 0x48831806, 0x48831807, 0x0201f800, - 0x00105f62, 0x589d0801, 0x589d0000, 0x829d3c00, + 0x0201f800, 0x00106114, 0x808101c0, 0x04000008, + 0x48850000, 0x598cd008, 0x41300000, 0x80697480, + 0x0402000b, 0x48831808, 0x0401f009, 0x598cd008, + 0x41300000, 0x80697480, 0x04000003, 0x48871809, + 0x0401f003, 0x48831808, 0x48831809, 0x0201f800, + 0x00106124, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000002, 0x1c01f000, 0x829d3c80, 0x00000002, - 0x48813800, 0x48853801, 0x40690000, 0x59310800, - 0x497a6000, 0x0201f800, 0x00105f52, 0x808101c0, - 0x04000008, 0x48850000, 0x598cd008, 0x41300000, - 0x80697480, 0x0402000b, 0x48831808, 0x0401f009, - 0x598cd008, 0x41300000, 0x80697480, 0x04000003, - 0x48871809, 0x0401f003, 0x48831808, 0x48831809, - 0x0201f800, 0x00105f62, 0x589d0801, 0x589d0000, - 0x829d3c00, 0x00000002, 0x1c01f000, 0x829d3c80, - 0x00000002, 0x48813800, 0x48853801, 0x598d0003, - 0x40810800, 0x4933c857, 0x813261c0, 0x04020007, - 0x0401f00a, 0x41300000, 0x80817480, 0x0400000e, - 0x40810800, 0x58810000, 0x808101c0, 0x040207fa, - 0x4178d000, 0x0401f02b, 0x4200d000, 0x000005ea, - 0x4080d800, 0x4080e000, 0x0201f800, 0x001001ec, - 0x0401f7f6, 0x598cd00b, 0x80697480, 0x0400001e, - 0x0201f800, 0x00105f52, 0x598cd003, 0x40800000, - 0x80697480, 0x04000010, 0x598cd002, 0x80697480, - 0x04000009, 0x58817000, 0x48b90800, 0x49790000, - 0x0201f800, 0x00105f62, 0x4200d000, 0x00000001, - 0x0401f010, 0x48871802, 0x49790000, 0x49790800, - 0x0401f7f8, 0x58817000, 0x48bb1803, 0x49790000, - 0x598cd002, 0x80697480, 0x040207f2, 0x497b1802, - 0x0401f7f0, 0x0201f800, 0x001064ba, 0x0401f7e1, - 0x40698800, 0x589d0801, 0x589d0000, 0x829d3c00, - 0x00000002, 0x1c01f000, 0x829d3c80, 0x00000002, - 0x48813800, 0x48853801, 0x598d0009, 0x41790800, + 0x48813800, 0x48853801, 0x598d0003, 0x40810800, 0x4933c857, 0x813261c0, 0x04020007, 0x0401f00a, 0x41300000, 0x80817480, 0x0400000e, 0x40810800, 0x58810000, 0x808101c0, 0x040207fa, 0x4178d000, - 0x0401f015, 0x4200d000, 0x000005a7, 0x4080d800, - 0x4084e000, 0x0201f800, 0x001001ec, 0x0401f7f6, - 0x4084d000, 0x0401ff81, 0x598cd00b, 0x41300000, - 0x80697480, 0x04000005, 0x497a6008, 0x4200d000, - 0x00000001, 0x0401f004, 0x0201f800, 0x001064ba, - 0x0401f7fa, 0x40698800, 0x589d0801, 0x589d0000, - 0x829d3c00, 0x00000002, 0x1c01f000, 0x829d3c80, - 0x00000002, 0x48813800, 0x48853801, 0x598d0007, - 0x41790800, 0x4933c857, 0x813261c0, 0x04020007, - 0x0401f017, 0x41300000, 0x80817480, 0x04000007, - 0x40810800, 0x58810000, 0x808101c0, 0x040207fa, - 0x4178d000, 0x0401f01a, 0x4084d000, 0x0401ff3a, - 0x598cd00b, 0x41300000, 0x80697480, 0x04000011, - 0x5930d403, 0x82697480, 0x00000042, 0x0400000b, - 0x4200d000, 0x00000001, 0x0401f00d, 0x4200d000, - 0x0000055e, 0x4080d800, 0x4084e000, 0x0201f800, - 0x001001ec, 0x0401f7e9, 0x497a6008, 0x0401f7f5, - 0x0201f800, 0x001064ba, 0x0401f7ee, 0x40698800, + 0x0401f02b, 0x4200d000, 0x000005ed, 0x4080d800, + 0x4080e000, 0x0201f800, 0x001001ec, 0x0401f7f6, + 0x598cd00b, 0x80697480, 0x0400001e, 0x0201f800, + 0x00106114, 0x598cd003, 0x40800000, 0x80697480, + 0x04000010, 0x598cd002, 0x80697480, 0x04000009, + 0x58817000, 0x48b90800, 0x49790000, 0x0201f800, + 0x00106124, 0x4200d000, 0x00000001, 0x0401f010, + 0x48871802, 0x49790000, 0x49790800, 0x0401f7f8, + 0x58817000, 0x48bb1803, 0x49790000, 0x598cd002, + 0x80697480, 0x040207f2, 0x497b1802, 0x0401f7f0, + 0x0201f800, 0x0010667c, 0x0401f7e1, 0x40698800, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000002, 0x1c01f000, 0x829d3c80, 0x00000002, 0x48813800, - 0x48853801, 0x41790000, 0x0201f800, 0x00105f78, - 0x40c50800, 0x0401ffc6, 0x80c57040, 0x04000007, - 0x0401ff96, 0x80c57040, 0x04000004, 0x0401ff50, - 0x80c57040, 0x04020002, 0x40c50000, 0x80857040, - 0x04020003, 0x0201f800, 0x00105f69, 0x40818800, - 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000002, - 0x1c01f000, 0x829d3c80, 0x00000002, 0x48813800, - 0x48853801, 0x5c00d000, 0x4c680000, 0x486bc857, - 0x41350000, 0x412d0800, 0x5932680a, 0x59325809, - 0x4933c857, 0x4943c857, 0x493fc857, 0x5930d407, - 0x486bc857, 0x5930dc07, 0x806c0040, 0x4000d000, - 0x82697480, 0x00000010, 0x83f17500, 0x03000000, - 0x04000013, 0x0c01f001, 0x0010ef66, 0x0010ef3c, - 0x0010ef4a, 0x0010ef66, 0x0010ef6f, 0x0010ef7c, - 0x0010ef29, 0x0010ef29, 0x0010ef29, 0x0010ef86, - 0x0010ef29, 0x0010ef29, 0x0010ef29, 0x0010ef29, - 0x0010ef29, 0x0010ef2f, 0x0010ef2f, 0x4200d000, - 0x00000a6e, 0x4130e000, 0x0201f800, 0x001001ec, - 0x0401f092, 0x0201f800, 0x0010830d, 0x80c589c0, - 0x04020062, 0x59325819, 0x0201f800, 0x00100595, - 0x0201f800, 0x00106d13, 0x8d3e7d1c, 0x04000087, - 0x497a600a, 0x0401f085, 0x0201f800, 0x0010830d, - 0x80c589c0, 0x040007f7, 0x49425a07, 0x0201f800, - 0x0002035b, 0x5930d229, 0x82697480, 0x00000003, - 0x040207f0, 0x0201f800, 0x001083f6, 0x0401f7ed, - 0x5930d008, 0x8c68d500, 0x0402004c, 0x0201f800, - 0x0010830d, 0x80c589c0, 0x040007e6, 0x592cd205, - 0x8268d500, 0x000000ff, 0x82697480, 0x00000014, - 0x04000003, 0x0201f800, 0x001083f6, 0x0201f800, - 0x00108cb5, 0x4a025a05, 0x00000103, 0x49425a07, - 0x497a580a, 0x0201f800, 0x00108476, 0x0201f800, - 0x00109bce, 0x0201f800, 0x0002035b, 0x0401f7d1, - 0x0201f800, 0x0010f2cc, 0x80c589c0, 0x04020035, - 0x0201f800, 0x001086d5, 0x0201f800, 0x001073f9, - 0x0401f7c8, 0x42000000, 0x00110254, 0x81317480, - 0x0400002f, 0x0201f800, 0x0010830d, 0x80c589c0, - 0x040007c0, 0x4200d000, 0x000009b7, 0x412cd800, - 0x4130e000, 0x0401f7b1, 0x5930d008, 0x8c68d500, - 0x0402001d, 0x0201f800, 0x0010830d, 0x80c589c0, - 0x0402000d, 0x0201f800, 0x00108cb5, 0x0401f7b1, - 0x0201f800, 0x0010830d, 0x80c589c0, 0x040007ad, - 0x49425a07, 0x497a5c0a, 0x0201f800, 0x0002035b, - 0x0401f7a8, 0x0201f800, 0x00109881, 0x0201f800, - 0x00108cb5, 0x0401f7a3, 0x49425a07, 0x0201f800, - 0x0002035b, 0x0401f79c, 0x0201f800, 0x00100bd7, - 0x0401f7b3, 0x0201f800, 0x00100bd7, 0x0401f7e2, - 0x0201f800, 0x00101cd1, 0x0401f7ca, 0x0201f800, - 0x0010830d, 0x80c589c0, 0x04000016, 0x59a8e067, - 0x412c0000, 0x80717480, 0x04000005, 0x4200d000, - 0x000009d0, 0x412cd800, 0x0401f780, 0x592d7000, - 0x48bb5067, 0x592cd000, 0x8068d1c0, 0x04020002, - 0x486b5068, 0x592cd205, 0x82697480, 0x00000055, - 0x04000007, 0x49425a07, 0x0201f800, 0x0002035b, - 0x497a6203, 0x497a6009, 0x0401f004, 0x0201f800, - 0x0010058c, 0x0401f7fb, 0x40826800, 0x40865800, - 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000002, - 0x1c01f000, 0x809d3840, 0x48813800, 0x5930dc07, - 0x406c0000, 0x826d7480, 0x00000011, 0x83f17500, - 0x03000000, 0x04000014, 0x0c01f001, 0x0010f02c, - 0x0010effc, 0x0010f00c, 0x0010f018, 0x0010efeb, - 0x0010efee, 0x0010f030, 0x0010f02c, 0x0010f02c, - 0x0010f02c, 0x0010f02c, 0x0010efe3, 0x0010efe3, - 0x0010f02c, 0x0010efe3, 0x0010f025, 0x0010f02c, - 0x0010f03b, 0x4200d000, 0x00000b61, 0x4130e000, - 0x0201f800, 0x001001ec, 0x4200d800, 0x00000001, - 0x0401f063, 0x4178d800, 0x8d3e7d1a, 0x04020060, - 0x833ce500, 0x00000001, 0x4178d800, 0x8d3e7d00, - 0x0402005b, 0x8d3e7d18, 0x04000003, 0x8d3e7d16, - 0x040007f2, 0x5930d42c, 0x4070d800, 0x8c68d500, - 0x04020053, 0x0401f7ed, 0x8d3e7d1a, 0x04020019, - 0x8d3e7d00, 0x04020017, 0x833d0500, 0x00001000, - 0x8d3e7d18, 0x040207e5, 0x8d3e7d06, 0x040007e3, - 0x0201f800, 0x00108616, 0x4080d800, 0x80c589c0, - 0x04020043, 0x0401f7dd, 0x8d3e7d00, 0x040007db, - 0x5930d229, 0x82697480, 0x00000003, 0x04020005, - 0x0201f800, 0x00105eaa, 0x80c589c0, 0x040207d3, - 0x4178d800, 0x0401f036, 0x8d3e7d00, 0x0402002f, - 0x5930d00a, 0x833cdd00, 0x00001000, 0x8d3e7d18, - 0x040207ca, 0x8d3e7d06, 0x040007c8, 0x5868d200, - 0x8c68d50e, 0x0402002a, 0x0401f7c4, 0x8d3e7d18, - 0x040007f0, 0x4200d800, 0x00000001, 0x8d3e7d16, - 0x04000023, 0x0401f7eb, 0x4178d800, 0x8d3e7d00, - 0x0402001f, 0x0401f7b9, 0x4178d800, 0x8d3e7d00, - 0x0402001b, 0x833cd500, 0x00001000, 0x4200d800, - 0x00000001, 0x8d3e7d18, 0x04020015, 0x4068d800, - 0x0401f013, 0x833cd500, 0x00000001, 0x4178d800, - 0x8d3e7d00, 0x0402000e, 0x8d3e7d18, 0x040007f8, - 0x4200d800, 0x00000001, 0x8d3e7d16, 0x04000008, - 0x4068d800, 0x0401f006, 0x0201f800, 0x00105eaa, - 0x40c4d800, 0x80c589c0, 0x040207ce, 0x406d8800, - 0x589d0000, 0x809d3800, 0x1c01f000, 0x829d3c80, - 0x00000006, 0x48813800, 0x48853801, 0x48893802, - 0x488d3803, 0x48913804, 0x48953805, 0x4933c857, - 0x0201f800, 0x00105f78, 0x40c52800, 0x41352000, - 0x41311000, 0x412d1800, 0x41790800, 0x598e6003, - 0x0401f007, 0x813669c0, 0x0400002f, 0x813669c0, - 0x04000023, 0x41310800, 0x59326000, 0x813261c0, - 0x04000031, 0x5932680a, 0x813669c0, 0x040007f6, - 0x5934d403, 0x41440000, 0x80697480, 0x040207f2, - 0x5930d01d, 0x41240000, 0x80697480, 0x040207f0, - 0x0401ff51, 0x80c589c0, 0x040007ef, 0x42010000, - 0x00000001, 0x0201f800, 0x0010830d, 0x80c589c0, - 0x04020026, 0x808101c0, 0x040007e7, 0x0201f800, - 0x00105e7c, 0x59310000, 0x4084d000, 0x0401fd59, - 0x0401fe79, 0x40826000, 0x0401f7e1, 0x5930d407, - 0x82697480, 0x00000010, 0x040207db, 0x83457480, - 0x0000ffff, 0x040207d8, 0x812649c0, 0x040207d6, - 0x0401f7e4, 0x5930d407, 0x82697480, 0x00000010, - 0x040207cf, 0x83457480, 0x0000ffff, 0x040207cc, - 0x0401f7d8, 0x408a6000, 0x408e5800, 0x40926800, + 0x48853801, 0x598d0009, 0x41790800, 0x4933c857, + 0x813261c0, 0x04020007, 0x0401f00a, 0x41300000, + 0x80817480, 0x0400000e, 0x40810800, 0x58810000, + 0x808101c0, 0x040207fa, 0x4178d000, 0x0401f015, + 0x4200d000, 0x000005aa, 0x4080d800, 0x4084e000, + 0x0201f800, 0x001001ec, 0x0401f7f6, 0x4084d000, + 0x0401ff81, 0x598cd00b, 0x41300000, 0x80697480, + 0x04000005, 0x497a6008, 0x4200d000, 0x00000001, + 0x0401f004, 0x0201f800, 0x0010667c, 0x0401f7fa, + 0x40698800, 0x589d0801, 0x589d0000, 0x829d3c00, + 0x00000002, 0x1c01f000, 0x829d3c80, 0x00000002, + 0x48813800, 0x48853801, 0x598d0007, 0x41790800, + 0x4933c857, 0x813261c0, 0x04020007, 0x0401f017, + 0x41300000, 0x80817480, 0x04000007, 0x40810800, + 0x58810000, 0x808101c0, 0x040207fa, 0x4178d000, + 0x0401f01a, 0x4084d000, 0x0401ff3a, 0x598cd00b, + 0x41300000, 0x80697480, 0x04000011, 0x5930d403, + 0x82697480, 0x00000042, 0x0400000b, 0x4200d000, + 0x00000001, 0x0401f00d, 0x4200d000, 0x00000561, + 0x4080d800, 0x4084e000, 0x0201f800, 0x001001ec, + 0x0401f7e9, 0x497a6008, 0x0401f7f5, 0x0201f800, + 0x0010667c, 0x0401f7ee, 0x40698800, 0x589d0801, + 0x589d0000, 0x829d3c00, 0x00000002, 0x1c01f000, + 0x829d3c80, 0x00000002, 0x48813800, 0x48853801, + 0x41790000, 0x0201f800, 0x0010613a, 0x40c50800, + 0x0401ffc6, 0x80c57040, 0x04000007, 0x0401ff96, + 0x80c57040, 0x04000004, 0x0401ff50, 0x80c57040, + 0x04020002, 0x40c50000, 0x80857040, 0x04020003, + 0x0201f800, 0x0010612b, 0x40818800, 0x589d0801, + 0x589d0000, 0x829d3c00, 0x00000002, 0x1c01f000, + 0x829d3c80, 0x00000002, 0x48813800, 0x48853801, + 0x5c00d000, 0x4c680000, 0x486bc857, 0x41350000, + 0x412d0800, 0x5932680a, 0x59325809, 0x4933c857, + 0x4943c857, 0x493fc857, 0x5930d407, 0x486bc857, + 0x5930dc07, 0x806c0040, 0x4000d000, 0x82697480, + 0x00000010, 0x83f17500, 0x03000000, 0x04000013, + 0x0c01f001, 0x0010f175, 0x0010f14b, 0x0010f159, + 0x0010f175, 0x0010f17e, 0x0010f18b, 0x0010f138, + 0x0010f138, 0x0010f138, 0x0010f195, 0x0010f138, + 0x0010f138, 0x0010f138, 0x0010f138, 0x0010f138, + 0x0010f13e, 0x0010f13e, 0x4200d000, 0x00000a7f, + 0x4130e000, 0x0201f800, 0x001001ec, 0x0401f092, + 0x0201f800, 0x001084ee, 0x80c589c0, 0x04020062, + 0x59325819, 0x0201f800, 0x00100595, 0x0201f800, + 0x00106ec7, 0x8d3e7d1c, 0x04000087, 0x497a600a, + 0x0401f085, 0x0201f800, 0x001084ee, 0x80c589c0, + 0x040007f7, 0x49425a07, 0x0201f800, 0x0002035b, + 0x5930d229, 0x82697480, 0x00000003, 0x040207f0, + 0x0201f800, 0x001085d7, 0x0401f7ed, 0x5930d008, + 0x8c68d500, 0x0402004c, 0x0201f800, 0x001084ee, + 0x80c589c0, 0x040007e6, 0x592cd205, 0x8268d500, + 0x000000ff, 0x82697480, 0x00000014, 0x04000003, + 0x0201f800, 0x001085d7, 0x0201f800, 0x00108e9b, + 0x4a025a05, 0x00000103, 0x49425a07, 0x497a580a, + 0x0201f800, 0x00108657, 0x0201f800, 0x00109e6c, + 0x0201f800, 0x0002035b, 0x0401f7d1, 0x0201f800, + 0x0010f4c8, 0x80c589c0, 0x04020035, 0x0201f800, + 0x001088b6, 0x0201f800, 0x001075b8, 0x0401f7c8, + 0x42000000, 0x00110484, 0x81317480, 0x0400002f, + 0x0201f800, 0x001084ee, 0x80c589c0, 0x040007c0, + 0x4200d000, 0x000009c8, 0x412cd800, 0x4130e000, + 0x0401f7b1, 0x5930d008, 0x8c68d500, 0x0402001d, + 0x0201f800, 0x001084ee, 0x80c589c0, 0x0402000d, + 0x0201f800, 0x00108e9b, 0x0401f7b1, 0x0201f800, + 0x001084ee, 0x80c589c0, 0x040007ad, 0x49425a07, + 0x497a5c0a, 0x0201f800, 0x0002035b, 0x0401f7a8, + 0x0201f800, 0x00109b18, 0x0201f800, 0x00108e9b, + 0x0401f7a3, 0x49425a07, 0x0201f800, 0x0002035b, + 0x0401f79c, 0x0201f800, 0x00100bd7, 0x0401f7b3, + 0x0201f800, 0x00100bd7, 0x0401f7e2, 0x0201f800, + 0x00101cd3, 0x0401f7ca, 0x0201f800, 0x001084ee, + 0x80c589c0, 0x04000016, 0x59a8e067, 0x412c0000, + 0x80717480, 0x04000005, 0x4200d000, 0x000009e1, + 0x412cd800, 0x0401f780, 0x592d7000, 0x48bb5067, + 0x592cd000, 0x8068d1c0, 0x04020002, 0x486b5068, + 0x592cd205, 0x82697480, 0x00000055, 0x04000007, + 0x49425a07, 0x0201f800, 0x0002035b, 0x497a6203, + 0x497a6009, 0x0401f004, 0x0201f800, 0x0010058c, + 0x0401f7fb, 0x40826800, 0x40865800, 0x589d0801, + 0x589d0000, 0x829d3c00, 0x00000002, 0x1c01f000, + 0x809d3840, 0x48813800, 0x5930dc07, 0x406c0000, + 0x826d7480, 0x00000011, 0x83f17500, 0x03000000, + 0x04000014, 0x0c01f001, 0x0010f23b, 0x0010f20b, + 0x0010f21b, 0x0010f227, 0x0010f1fa, 0x0010f1fd, + 0x0010f23f, 0x0010f23b, 0x0010f23b, 0x0010f23b, + 0x0010f23b, 0x0010f1f2, 0x0010f1f2, 0x0010f23b, + 0x0010f1f2, 0x0010f234, 0x0010f23b, 0x0010f24a, + 0x4200d000, 0x00000b72, 0x4130e000, 0x0201f800, + 0x001001ec, 0x4200d800, 0x00000001, 0x0401f063, + 0x4178d800, 0x8d3e7d1a, 0x04020060, 0x833ce500, + 0x00000001, 0x4178d800, 0x8d3e7d00, 0x0402005b, + 0x8d3e7d18, 0x04000003, 0x8d3e7d16, 0x040007f2, + 0x5930d42c, 0x4070d800, 0x8c68d500, 0x04020053, + 0x0401f7ed, 0x8d3e7d1a, 0x04020019, 0x8d3e7d00, + 0x04020017, 0x833d0500, 0x00001000, 0x8d3e7d18, + 0x040207e5, 0x8d3e7d06, 0x040007e3, 0x0201f800, + 0x001087f7, 0x4080d800, 0x80c589c0, 0x04020043, + 0x0401f7dd, 0x8d3e7d00, 0x040007db, 0x5930d229, + 0x82697480, 0x00000003, 0x04020005, 0x0201f800, + 0x0010606c, 0x80c589c0, 0x040207d3, 0x4178d800, + 0x0401f036, 0x8d3e7d00, 0x0402002f, 0x5930d00a, + 0x833cdd00, 0x00001000, 0x8d3e7d18, 0x040207ca, + 0x8d3e7d06, 0x040007c8, 0x5868d200, 0x8c68d50e, + 0x0402002a, 0x0401f7c4, 0x8d3e7d18, 0x040007f0, + 0x4200d800, 0x00000001, 0x8d3e7d16, 0x04000023, + 0x0401f7eb, 0x4178d800, 0x8d3e7d00, 0x0402001f, + 0x0401f7b9, 0x4178d800, 0x8d3e7d00, 0x0402001b, + 0x833cd500, 0x00001000, 0x4200d800, 0x00000001, + 0x8d3e7d18, 0x04020015, 0x4068d800, 0x0401f013, + 0x833cd500, 0x00000001, 0x4178d800, 0x8d3e7d00, + 0x0402000e, 0x8d3e7d18, 0x040007f8, 0x4200d800, + 0x00000001, 0x8d3e7d16, 0x04000008, 0x4068d800, + 0x0401f006, 0x0201f800, 0x0010606c, 0x40c4d800, + 0x80c589c0, 0x040207ce, 0x406d8800, 0x589d0000, + 0x809d3800, 0x1c01f000, 0x829d3c80, 0x00000006, + 0x48813800, 0x48853801, 0x48893802, 0x488d3803, + 0x48913804, 0x48953805, 0x4933c857, 0x0201f800, + 0x0010613a, 0x40c52800, 0x41352000, 0x41311000, + 0x412d1800, 0x41790800, 0x598e6003, 0x0401f003, + 0x41310800, 0x59326000, 0x813261c0, 0x04000022, + 0x5932680a, 0x813669c0, 0x040007fa, 0x5934d403, + 0x41440000, 0x80697480, 0x040207f6, 0x5930d01d, + 0x41240000, 0x80697480, 0x04000003, 0x812649c0, + 0x040207f0, 0x0401ff53, 0x80c589c0, 0x040007ed, + 0x42010000, 0x00000001, 0x0201f800, 0x001084ee, + 0x80c589c0, 0x04020015, 0x808101c0, 0x040007e5, + 0x0201f800, 0x0010603e, 0x59310000, 0x4084d000, + 0x0401fd5b, 0x0401fe7b, 0x40826000, 0x813261c0, + 0x040207e0, 0x408a6000, 0x408e5800, 0x40926800, 0x80957040, 0x04000002, 0x0401f00e, 0x0201f800, - 0x00105f69, 0x0401f00b, 0x0201f800, 0x00108993, - 0x80c589c0, 0x040007d8, 0x5930d403, 0x82697480, - 0x00000043, 0x040207d4, 0x41790000, 0x0401f7d2, + 0x0010612b, 0x0401f00b, 0x0201f800, 0x00108b79, + 0x80c589c0, 0x040007e9, 0x5930d403, 0x82697480, + 0x00000043, 0x040207e5, 0x41790000, 0x0401f7e3, 0x589d2805, 0x589d2004, 0x589d1803, 0x589d1002, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000006, 0x1c01f000, 0x829d3c80, 0x00000006, 0x48813800, 0x48853801, 0x48893802, 0x488d3803, 0x48913804, 0x48953805, 0x412d1800, 0x41312000, 0x41352800, - 0x41790800, 0x0201f800, 0x00105f78, 0x40c51000, + 0x41790800, 0x0201f800, 0x0010613a, 0x40c51000, 0x83457480, 0x000007ef, 0x04000008, 0x04001007, 0x408e5800, 0x40926000, 0x40966800, 0x80897040, - 0x04000020, 0x0401f031, 0x0201f800, 0x001041cf, + 0x04000020, 0x0401f031, 0x0201f800, 0x001042a5, 0x40c66800, 0x80c589c0, 0x04000025, 0x598e6009, 0x0401f003, 0x41310800, 0x59326000, 0x813261c0, 0x04000017, 0x5930d01d, 0x41240000, 0x80697480, 0x040207f9, 0x5930d00a, 0x41340000, 0x80697480, - 0x040207f5, 0x0401fee4, 0x80c589c0, 0x040007f2, - 0x0201f800, 0x00105e7c, 0x59310000, 0x4084d000, - 0x0401fd36, 0x0401fe14, 0x40826000, 0x0401f7ec, - 0x0201f800, 0x00105f69, 0x0401f010, 0x8d3e7d06, + 0x040207f5, 0x0401fef7, 0x80c589c0, 0x040007f2, + 0x0201f800, 0x0010603e, 0x59310000, 0x4084d000, + 0x0401fd49, 0x0401fe27, 0x40826000, 0x0401f7ec, + 0x0201f800, 0x0010612b, 0x0401f010, 0x8d3e7d06, 0x04000004, 0x5934d200, 0x8c68d50e, 0x040207d5, - 0x0201f800, 0x00104316, 0x0401f7d2, 0x4200d000, - 0x00000711, 0x40c4d800, 0x4144e000, 0x0201f800, + 0x0201f800, 0x001043f0, 0x0401f7d2, 0x4200d000, + 0x00000714, 0x40c4d800, 0x4144e000, 0x0201f800, 0x001001ec, 0x0401f7d6, 0x589d2805, 0x589d2004, 0x589d1803, 0x589d1002, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000006, 0x1c01f000, 0x829d3c80, 0x00000006, 0x48813800, 0x48853801, 0x48893802, 0x488d3803, 0x48913804, 0x48953805, 0x41311800, 0x41352000, 0x412d2800, 0x41790800, 0x0201f800, - 0x00105f78, 0x40c51000, 0x598e6007, 0x0401f003, + 0x0010613a, 0x40c51000, 0x598e6007, 0x0401f003, 0x41310800, 0x59326000, 0x813261c0, 0x04000016, 0x5932680a, 0x5930d01d, 0x41240000, 0x80697480, 0x040207f8, 0x5934d403, 0x41440000, 0x80697480, - 0x040207f4, 0x0401fea0, 0x80c589c0, 0x040007f1, - 0x59310000, 0x0201f800, 0x00105e7c, 0x4084d000, - 0x0401fcd1, 0x0401fdd0, 0x40826000, 0x813261c0, - 0x040207ec, 0x0201f800, 0x00106c24, 0x0201f800, - 0x00106c8e, 0x408e6000, 0x40926800, 0x40965800, + 0x040207f4, 0x0401feb3, 0x80c589c0, 0x040007f1, + 0x59310000, 0x0201f800, 0x0010603e, 0x4084d000, + 0x0401fce4, 0x0401fde3, 0x40826000, 0x813261c0, + 0x040207ec, 0x0201f800, 0x00106dd8, 0x0201f800, + 0x00106e42, 0x408e6000, 0x40926800, 0x40965800, 0x80897040, 0x04000002, 0x0401f003, 0x0201f800, - 0x00105f69, 0x589d2805, 0x589d2004, 0x589d1803, + 0x0010612b, 0x589d2805, 0x589d2004, 0x589d1803, 0x589d1002, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000006, 0x1c01f000, 0x829d3c80, 0x00000002, 0x48813800, 0x48853801, 0x4947c857, 0x0201f800, - 0x00105f78, 0x40c50800, 0x413d0000, 0x853e7d00, + 0x0010613a, 0x40c50800, 0x413d0000, 0x853e7d00, 0x0401ffb7, 0x0401ff64, 0x40827800, 0x80857040, - 0x04000002, 0x0401f003, 0x0201f800, 0x00105f69, + 0x04000002, 0x0401f003, 0x0201f800, 0x0010612b, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000002, 0x1c01f000, 0x829d3c80, 0x00000003, 0x48813800, 0x48853801, 0x48893802, 0x41311000, 0x41790800, - 0x598e6009, 0x813261c0, 0x04000011, 0x0401fe5e, + 0x598e6009, 0x813261c0, 0x04000011, 0x0401fe71, 0x80c589c0, 0x04020006, 0x41310800, 0x59326000, 0x813261c0, 0x040207fa, 0x0401f009, 0x0201f800, - 0x00105e7c, 0x59310000, 0x4084d000, 0x0401fcab, - 0x0401fd89, 0x40826000, 0x0401f7ef, 0x0201f800, - 0x001042f7, 0x408a6000, 0x589d1002, 0x589d0801, + 0x0010603e, 0x59310000, 0x4084d000, 0x0401fcbe, + 0x0401fd9c, 0x40826000, 0x0401f7ef, 0x0201f800, + 0x001043d1, 0x408a6000, 0x589d1002, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000003, 0x1c01f000, 0x829d3c80, 0x00000003, 0x48813800, 0x48853801, 0x48893802, 0x41311000, 0x41790800, 0x598e6007, - 0x813261c0, 0x04000011, 0x0401fe3b, 0x80c589c0, + 0x813261c0, 0x04000011, 0x0401fe4e, 0x80c589c0, 0x04020006, 0x41310800, 0x59326000, 0x813261c0, 0x040207fa, 0x0401f009, 0x59310000, 0x0201f800, - 0x00105e7c, 0x4084d000, 0x0401fc67, 0x0401fd66, - 0x40826000, 0x0401f7ef, 0x0201f800, 0x00106c72, - 0x0201f800, 0x00106c8e, 0x408a6000, 0x589d1002, + 0x0010603e, 0x4084d000, 0x0401fc7a, 0x0401fd79, + 0x40826000, 0x0401f7ef, 0x0201f800, 0x00106e26, + 0x0201f800, 0x00106e42, 0x408a6000, 0x589d1002, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000003, 0x1c01f000, 0x809d3840, 0x48813800, 0x4943c857, - 0x0201f800, 0x00105f78, 0x40c50000, 0x0401ffd5, + 0x0201f800, 0x0010613a, 0x40c50000, 0x0401ffd5, 0x0401ffb1, 0x80817040, 0x04000002, 0x0401f003, - 0x0201f800, 0x00105f69, 0x589d0000, 0x809d3800, + 0x0201f800, 0x0010612b, 0x589d0000, 0x809d3800, 0x1c01f000, 0x829d3c80, 0x00000004, 0x48813800, 0x48853801, 0x48893802, 0x488d3803, 0x0201f800, - 0x00105f78, 0x40c51800, 0x41311000, 0x41790800, - 0x598e6003, 0x813261c0, 0x04000008, 0x0401fe02, + 0x0010613a, 0x40c51800, 0x41311000, 0x41790800, + 0x598e6003, 0x813261c0, 0x04000008, 0x0401fe15, 0x80c589c0, 0x04020009, 0x41310800, 0x59326000, 0x813261c0, 0x040207fa, 0x408a6000, 0x808d7040, - 0x0400000a, 0x0401f00b, 0x0201f800, 0x00105e7c, - 0x59310000, 0x4084d000, 0x0401fc0a, 0x0401fd2a, - 0x40826000, 0x0401f7ec, 0x0201f800, 0x00105f69, + 0x0400000a, 0x0401f00b, 0x0201f800, 0x0010603e, + 0x59310000, 0x4084d000, 0x0401fc1d, 0x0401fd3d, + 0x40826000, 0x0401f7ec, 0x0201f800, 0x0010612b, 0x589d1803, 0x589d1002, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000004, 0x1c01f000, 0x809d3840, 0x48a13800, 0x829d3c80, 0x00000006, 0x409d4000, 0x829d3c80, 0x00000007, 0x48813800, 0x48853801, 0x48893802, 0x488d3803, 0x48913804, 0x48953805, 0x48993806, 0x4178d000, 0x48694005, 0x0201f800, - 0x00105f78, 0x40c53000, 0x41311000, 0x41352000, + 0x0010613a, 0x40c53000, 0x41311000, 0x41352000, 0x41192800, 0x412d1800, 0x49914003, 0x49d14000, 0x49a54001, 0x49154002, 0x48d94004, 0x58d6602f, 0x813261c0, 0x04000014, 0x41310800, 0x0401f007, @@ -25020,48 +25251,48 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x5934d403, 0x41440000, 0x80697480, 0x040207f1, 0x0401f032, 0x417a3000, 0x0401f007, 0x811a3000, 0x83197480, 0x00000004, 0x83f17500, 0x03000000, - 0x0400001a, 0x0201f800, 0x001064d2, 0x59926005, + 0x0400001a, 0x0201f800, 0x00106694, 0x59926005, 0x813261c0, 0x040007f6, 0x5932680a, 0x5930d01d, 0x41240000, 0x80697480, 0x040207f1, 0x5934d403, - 0x41440000, 0x80697480, 0x040207ed, 0x0401fd9e, - 0x80c589c0, 0x040007ea, 0x0201f800, 0x001061b6, - 0x0201f800, 0x00105f4c, 0x0201f800, 0x00105f52, - 0x0401fccd, 0x0401f7e2, 0x408a6000, 0x40926800, + 0x41440000, 0x80697480, 0x040207ed, 0x0401fdb1, + 0x80c589c0, 0x040007ea, 0x0201f800, 0x00106378, + 0x0201f800, 0x0010610e, 0x0201f800, 0x00106114, + 0x0401fce0, 0x0401f7e2, 0x408a6000, 0x40926800, 0x40963000, 0x408e5800, 0x58a32003, 0x58a3a000, 0x58a34801, 0x58a22802, 0x58a1b004, 0x80997040, 0x04000010, 0x0401f011, 0x49314005, 0x40826000, - 0x808101c0, 0x040007d0, 0x59310001, 0x0401fd82, + 0x808101c0, 0x040007d0, 0x59310001, 0x0401fd95, 0x80c589c0, 0x040007f9, 0x4084d000, 0x58a0d805, - 0x0201f800, 0x0010ecfd, 0x0401fcb3, 0x0401f7f4, - 0x0201f800, 0x00105f69, 0x589d3006, 0x589d2805, + 0x0201f800, 0x0010ef0c, 0x0401fcc6, 0x0401f7f4, + 0x0201f800, 0x0010612b, 0x589d3006, 0x589d2805, 0x589d2004, 0x589d1803, 0x589d1002, 0x589d0801, 0x589d0000, 0x829d3c00, 0x0000000d, 0x589d4000, 0x809d3800, 0x1c01f000, 0x809d3840, 0x48a13800, 0x829d3c80, 0x00000008, 0x409d4000, 0x829d3c80, 0x00000007, 0x48813800, 0x48853801, 0x48893802, 0x488d3803, 0x48913804, 0x48953805, 0x48993806, - 0x41791800, 0x0201f800, 0x00105f78, 0x40c52800, + 0x41791800, 0x0201f800, 0x0010613a, 0x40c52800, 0x41313000, 0x49354006, 0x492d4005, 0x49194007, 0x49914003, 0x49d14000, 0x49a54001, 0x49154002, 0x48d94004, 0x58d6602f, 0x813261c0, 0x04000023, 0x41312000, 0x408d0800, 0x59311000, 0x5932680a, 0x0401f009, 0x41311800, 0x808509c0, 0x04000010, 0x808101c0, 0x04000002, 0x40826000, 0x808101c0, - 0x0400000d, 0x59310001, 0x0401fd3f, 0x80c589c0, + 0x0400000d, 0x59310001, 0x0401fd52, 0x80c589c0, 0x040007f5, 0x4090d000, 0x408cd800, 0x0201f800, - 0x0010ecfd, 0x0401fc70, 0x0401f7f2, 0x41310800, + 0x0010ef0c, 0x0401fc83, 0x0401f7f2, 0x41310800, 0x0401f7f0, 0x808911c0, 0x04000006, 0x408a6000, 0x808509c0, 0x04000003, 0x40852000, 0x40810800, 0x808911c0, 0x040207e1, 0x417a3000, 0x0201f800, - 0x001064d2, 0x59926005, 0x813261c0, 0x04000004, - 0x0401fd25, 0x80c589c0, 0x04020012, 0x811a3000, + 0x00106694, 0x59926005, 0x813261c0, 0x04000004, + 0x0401fd38, 0x80c589c0, 0x04020012, 0x811a3000, 0x83197480, 0x00000004, 0x040007f5, 0x040017f4, 0x409a6000, 0x58a26806, 0x58a25805, 0x58a23007, 0x58a32003, 0x58a3a000, 0x58a34801, 0x58a22802, 0x58a1b004, 0x80957040, 0x0400000a, 0x0401f00b, - 0x0201f800, 0x001061b6, 0x0201f800, 0x00105f4c, - 0x0201f800, 0x00105f52, 0x0401fc43, 0x0401f7e8, - 0x0201f800, 0x00105f69, 0x589d3006, 0x589d2805, + 0x0201f800, 0x00106378, 0x0201f800, 0x0010610e, + 0x0201f800, 0x00106114, 0x0401fc56, 0x0401f7e8, + 0x0201f800, 0x0010612b, 0x589d3006, 0x589d2805, 0x589d2004, 0x589d1803, 0x589d1002, 0x589d0801, 0x589d0000, 0x829d3c00, 0x0000000f, 0x589d4000, 0x809d3800, 0x1c01f000, 0x4178e000, 0x497bc856, @@ -25071,58 +25302,58 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x4200e000, 0x00000001, 0x40718800, 0x1c01f000, 0x829d3c80, 0x00000004, 0x48813800, 0x48853801, 0x48893802, 0x488d3803, 0x412d0800, 0x41351000, - 0x41391800, 0x0201f800, 0x0010efc7, 0x80c589c0, + 0x41391800, 0x0201f800, 0x0010f1d6, 0x80c589c0, 0x040000b5, 0x5932680a, 0x5930dc07, 0x406c0000, 0x826d7480, 0x00000011, 0x83f17500, 0x03000000, - 0x04000026, 0x0c01f001, 0x0010f39f, 0x0010f345, - 0x0010f355, 0x0010f31e, 0x0010f345, 0x0010f355, - 0x0010f365, 0x0010f378, 0x0010f318, 0x0010f318, - 0x0010f309, 0x0010f318, 0x0010f318, 0x0010f318, - 0x0010f318, 0x0010f312, 0x0010f309, 0x0010f306, + 0x04000026, 0x0c01f001, 0x0010f59b, 0x0010f541, + 0x0010f551, 0x0010f51a, 0x0010f541, 0x0010f551, + 0x0010f561, 0x0010f574, 0x0010f514, 0x0010f514, + 0x0010f505, 0x0010f514, 0x0010f514, 0x0010f514, + 0x0010f514, 0x0010f50e, 0x0010f505, 0x0010f502, 0x59325819, 0x0201f800, 0x00100595, 0x5930d203, 0x82697480, 0x00000004, 0x04000077, 0x59325809, - 0x0201f800, 0x0010830d, 0x80c589c0, 0x0402006e, - 0x0201f800, 0x00106d13, 0x8d3e7d1c, 0x0400008a, + 0x0201f800, 0x001084ee, 0x80c589c0, 0x0402006e, + 0x0201f800, 0x00106ec7, 0x8d3e7d1c, 0x0400008a, 0x497a600a, 0x0401f088, 0x4200d000, 0x0000030f, 0x4130e000, 0x0201f800, 0x001001ec, 0x0401f082, - 0x813669c0, 0x04000067, 0x0201f800, 0x00108dbd, + 0x813669c0, 0x04000067, 0x0201f800, 0x00108fa8, 0x5930d203, 0x82697480, 0x00000004, 0x04000074, - 0x59325809, 0x0201f800, 0x0010830d, 0x80c589c0, + 0x59325809, 0x0201f800, 0x001084ee, 0x80c589c0, 0x040007e8, 0x592cd205, 0x8268d500, 0x000000ff, 0x82697480, 0x00000014, 0x04000003, 0x0201f800, - 0x001083f6, 0x0201f800, 0x00108cb5, 0x0201f800, + 0x001085d7, 0x0201f800, 0x00108e9b, 0x0201f800, 0x0002076c, 0x4a025a05, 0x00000103, 0x5930d402, 0x486a5c07, 0x592cd409, 0x8c68d512, 0x04020053, - 0x49425a07, 0x497a580a, 0x0201f800, 0x0010899d, + 0x49425a07, 0x497a580a, 0x0201f800, 0x00108b83, 0x0201f800, 0x0002035b, 0x0401f7ce, 0x5930d403, 0x82697480, 0x00000043, 0x04000057, 0x0201f800, - 0x00109ec3, 0x0401ff81, 0x80c589c0, 0x04020040, - 0x0201f800, 0x00108418, 0x80c589c0, 0x040007c1, - 0x0201f800, 0x001073f9, 0x0401f7be, 0x59325809, - 0x0201f800, 0x0010830d, 0x80c589c0, 0x040007b9, + 0x0010a173, 0x0401ff81, 0x80c589c0, 0x04020040, + 0x0201f800, 0x001085f9, 0x80c589c0, 0x040007c1, + 0x0201f800, 0x001075b8, 0x0401f7be, 0x59325809, + 0x0201f800, 0x001084ee, 0x80c589c0, 0x040007b9, 0x49425a07, 0x497a5c0a, 0x0201f800, 0x0002035b, 0x5930d229, 0x82697480, 0x00000003, 0x040207b1, - 0x0201f800, 0x001083f6, 0x0401f7ae, 0x5930d203, + 0x0201f800, 0x001085d7, 0x0401f7ae, 0x5930d203, 0x82697480, 0x00000004, 0x04000034, 0x59325809, - 0x0201f800, 0x0010830d, 0x80c589c0, 0x040007a5, + 0x0201f800, 0x001084ee, 0x80c589c0, 0x040007a5, 0x49425a07, 0x813669c0, 0x04020026, 0x0201f800, - 0x00108cb5, 0x0201f800, 0x0002076c, 0x0201f800, - 0x0010899d, 0x0401f7cb, 0x5930d203, 0x82697480, + 0x00108e9b, 0x0201f800, 0x0002076c, 0x0201f800, + 0x00108b83, 0x0401f7cb, 0x5930d203, 0x82697480, 0x00000011, 0x04020024, 0x5930d429, 0x486a6203, 0x0401f021, 0x49425a07, 0x0201f800, 0x0002035b, 0x0401f790, 0x0201f800, 0x00100bd7, 0x0401f788, 0x4200d000, 0x00000182, 0x4134d800, 0x4130e000, 0x0201f800, 0x001001ec, 0x0401f794, 0x0201f800, - 0x00101cd1, 0x0401f7bf, 0x412d0000, 0x592e580a, + 0x00101cd3, 0x0401f7bf, 0x412d0000, 0x592e580a, 0x0201f800, 0x00100595, 0x40825800, 0x0401f7a9, - 0x0201f800, 0x00109bce, 0x0401f7d9, 0x0201f800, + 0x0201f800, 0x00109e6c, 0x0401f7d9, 0x0201f800, 0x00100bd7, 0x0401f78b, 0x0201f800, 0x00100bd7, 0x0401f7cb, 0x40865800, 0x408a6800, 0x408e7000, 0x589d1803, 0x589d1002, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000004, 0x1c01f000, 0x829d3c80, 0x00000002, 0x48813800, 0x48853801, 0x41310800, 0x4933c857, 0x4943c857, 0x493fc857, 0x42010000, - 0x001102e4, 0x59a8d00d, 0x41640000, 0x80697480, + 0x00110514, 0x59a8d00d, 0x41640000, 0x80697480, 0x04000010, 0x41580000, 0x80817480, 0x0402100d, 0x40826000, 0x8d3e7d12, 0x04000004, 0x40800000, 0x80857480, 0x04000002, 0x0401ff1e, 0x82810400, @@ -25133,2448 +25364,2462 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x8068d1c0, 0x04020005, 0x5880d203, 0x82697480, 0x00000008, 0x04000008, 0x0401ff06, 0x82810400, 0x00000030, 0x41540000, 0x80817480, 0x040017ed, - 0x0401f004, 0x0201f800, 0x00109e17, 0x0401f7f7, + 0x0401f004, 0x0201f800, 0x0010a0c7, 0x0401f7f7, 0x40866000, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000002, 0x1c01f000, 0x809d3840, 0x48813800, 0x497a6229, 0x812e59c0, 0x04000043, 0x592cd205, 0x486bc857, 0x592cd205, 0x8268d500, 0x000000ff, 0x82697480, 0x00000014, 0x04000005, 0x4a026229, - 0x00000003, 0x0201f800, 0x00108cb5, 0x592cd409, + 0x00000003, 0x0201f800, 0x00108e9b, 0x592cd409, 0x8c68d510, 0x04000023, 0x592cd209, 0x0201f800, - 0x001047ec, 0x4a025c09, 0x00000100, 0x0201f800, - 0x0010899d, 0x0201f800, 0x0010a0aa, 0x80c589c0, + 0x001048e9, 0x4a025c09, 0x00000100, 0x0201f800, + 0x00108b83, 0x0201f800, 0x0010a35a, 0x80c589c0, 0x04000021, 0x4a026403, 0x00000085, 0x4a026203, 0x00000009, 0x4a026407, 0x00000002, 0x59310004, - 0x82810500, 0x00000100, 0x0201f800, 0x00108c9b, + 0x82810500, 0x00000100, 0x0201f800, 0x00108e81, 0x82810540, 0x80004040, 0x48826004, 0x0201f800, - 0x00108ca7, 0x0201f800, 0x00105f69, 0x4200d000, - 0x80004040, 0x0201f800, 0x00105e10, 0x0401f01d, - 0x592cd209, 0x0201f800, 0x001047ec, 0x0201f800, - 0x0010899d, 0x0201f800, 0x0010a0aa, 0x80c589c0, + 0x00108e8d, 0x0201f800, 0x0010612b, 0x4200d000, + 0x80004040, 0x0201f800, 0x00105fd2, 0x0401f01d, + 0x592cd209, 0x0201f800, 0x001048e9, 0x0201f800, + 0x00108b83, 0x0201f800, 0x0010a35a, 0x80c589c0, 0x040207e1, 0x0201f800, 0x0002035b, 0x5930d229, 0x82697480, 0x00000003, 0x0400000a, 0x497a6009, 0x0401f7d9, 0x4200d000, 0x00000527, 0x4130d800, 0x412ce000, 0x0201f800, 0x001001ec, 0x0401f005, - 0x0201f800, 0x001083f6, 0x497a6009, 0x0401f7ce, + 0x0201f800, 0x001085d7, 0x497a6009, 0x0401f7ce, 0x589d0000, 0x809d3800, 0x1c01f000, 0x0201f800, - 0x00105f69, 0x812e59c0, 0x0400001d, 0x0201f800, - 0x00108cb5, 0x592cd409, 0x8c68d510, 0x04020012, - 0x592cd209, 0x0201f800, 0x001047ec, 0x0201f800, - 0x0010899d, 0x0201f800, 0x0002035b, 0x5930d203, + 0x0010612b, 0x812e59c0, 0x0400001d, 0x0201f800, + 0x00108e9b, 0x592cd409, 0x8c68d510, 0x04020012, + 0x592cd209, 0x0201f800, 0x001048e9, 0x0201f800, + 0x00108b83, 0x0201f800, 0x0002035b, 0x5930d203, 0x82697480, 0x0000000d, 0x0400000d, 0x0201f800, - 0x00105f69, 0x5930d00a, 0x0201f800, 0x00104436, - 0x0401f007, 0x592cd209, 0x0201f800, 0x001047ec, + 0x0010612b, 0x5930d00a, 0x0201f800, 0x00104510, + 0x0401f007, 0x592cd209, 0x0201f800, 0x001048e9, 0x4a025c09, 0x00000100, 0x0401f7ed, 0x0201f800, - 0x00106d13, 0x1c01f000, 0x829d3c80, 0x00000002, + 0x00106ec7, 0x1c01f000, 0x829d3c80, 0x00000002, 0x48813800, 0x48853801, 0x41790000, 0x0201f800, - 0x00108083, 0x40c50800, 0x48c7c857, 0x40840000, + 0x00108261, 0x40c50800, 0x48c7c857, 0x40840000, 0x82857480, 0x00000010, 0x83f17500, 0x03000000, - 0x0400002e, 0x0c01f001, 0x0010f494, 0x0010f4ac, - 0x0010f4aa, 0x0010f481, 0x0010f4c1, 0x0010f49c, - 0x0010f494, 0x0010f494, 0x0010f494, 0x0010f49c, - 0x0010f49c, 0x0010f49c, 0x0010f49c, 0x0010f4aa, - 0x0010f4ac, 0x0010f49c, 0x0010f481, 0x0201f800, - 0x00108073, 0x80c589c0, 0x04000005, 0x0201f800, - 0x00106252, 0x80c589c0, 0x04000035, 0x0201f800, - 0x0010ed56, 0x80c589c0, 0x04000017, 0x5930d403, + 0x0400002e, 0x0c01f001, 0x0010f690, 0x0010f6a8, + 0x0010f6a6, 0x0010f67d, 0x0010f6bd, 0x0010f698, + 0x0010f690, 0x0010f690, 0x0010f690, 0x0010f698, + 0x0010f698, 0x0010f698, 0x0010f698, 0x0010f6a6, + 0x0010f6a8, 0x0010f698, 0x0010f67d, 0x0201f800, + 0x00108251, 0x80c589c0, 0x04000005, 0x0201f800, + 0x00106414, 0x80c589c0, 0x04000035, 0x0201f800, + 0x0010ef65, 0x80c589c0, 0x04000017, 0x5930d403, 0x486bc857, 0x5930d403, 0x82697480, 0x00000040, 0x04020018, 0x0401ffaa, 0x42010000, 0x00000001, 0x0401f073, 0x40840000, 0x82857480, 0x00000010, 0x040007d5, 0x040017d4, 0x4200d000, 0x000004b7, 0x4130d800, 0x4084e000, 0x0201f800, 0x001001ec, - 0x0401f067, 0x497bc856, 0x0201f800, 0x00105e92, + 0x0401f067, 0x497bc856, 0x0201f800, 0x00106054, 0x80c589c0, 0x04020016, 0x59317004, 0x48bbc857, 0x0401ff3e, 0x0401f7e9, 0x598d700b, 0x48bbc857, 0x40b8d000, 0x41300000, 0x80697480, 0x04000042, - 0x0201f800, 0x0010eee3, 0x80c589c0, 0x040207de, - 0x497bc856, 0x0201f800, 0x00105e92, 0x4200d000, + 0x0201f800, 0x0010f0f2, 0x80c589c0, 0x040207de, + 0x497bc856, 0x0201f800, 0x00106054, 0x4200d000, 0x000003f5, 0x80c589c0, 0x040007e2, 0x5930d203, 0x486bc857, 0x59310a03, 0x0401f049, 0x812e59c0, - 0x0400003b, 0x0201f800, 0x001087a7, 0x80c589c0, - 0x04000029, 0x0201f800, 0x00105f69, 0x592cd209, + 0x0400003b, 0x0201f800, 0x00108988, 0x80c589c0, + 0x04000029, 0x0201f800, 0x0010612b, 0x592cd209, 0x8468d50c, 0x486a5a09, 0x592cdc07, 0x806cd0c6, 0x406c0000, 0x8068d400, 0x8068d400, 0x486a6006, 0x4200d000, 0x10000000, 0x4130d800, 0x0201f800, - 0x001008c9, 0x80c589c0, 0x0400000c, 0x592cd209, + 0x001008c7, 0x80c589c0, 0x0400000c, 0x592cd209, 0x8c68d51c, 0x0400001d, 0x59c8d001, 0x8068d1c0, 0x04020026, 0x4200d000, 0x40000000, 0x4130d800, - 0x0201f800, 0x001008c9, 0x5930d203, 0x82697480, + 0x0201f800, 0x001008c7, 0x5930d203, 0x82697480, 0x00000004, 0x040207ad, 0x41390000, 0x42027000, - 0x00000048, 0x0201f800, 0x00106d6c, 0x40827000, + 0x00000048, 0x0201f800, 0x00106f24, 0x40827000, 0x0401f7a6, 0x0201f800, 0x00100bd7, 0x0401fef7, - 0x0401f7a2, 0x0201f800, 0x00106287, 0x80c589c0, + 0x0401f7a2, 0x0201f800, 0x00106449, 0x80c589c0, 0x040007c7, 0x0401f7bb, 0x8468d55c, 0x486a5a09, 0x4a026006, 0x00000002, 0x0401f798, 0x4200d000, 0x000004a7, 0x4130d800, 0x412ce000, 0x0201f800, 0x001001ec, 0x0401f006, 0x41310000, 0x0201f800, - 0x0010131d, 0x40826000, 0x0401f7dc, 0x808101c0, + 0x0010131b, 0x40826000, 0x0401f7dc, 0x808101c0, 0x0400078d, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000002, 0x1c01f000, 0x829d3c80, 0x00000002, 0x48813800, 0x48853801, 0x412d0800, 0x41410000, - 0x4200d000, 0x0010b065, 0x0201f800, 0x00109f94, - 0x417a5800, 0x0201f800, 0x0010830d, 0x80c589c0, - 0x04000009, 0x0201f800, 0x00108dbd, 0x59325809, + 0x4200d000, 0x0010b2e5, 0x0201f800, 0x0010a244, + 0x417a5800, 0x0201f800, 0x001084ee, 0x80c589c0, + 0x04000009, 0x0201f800, 0x00108fa8, 0x59325809, 0x592cd209, 0x8468d54c, 0x486a5a09, 0x42028000, - 0x00000006, 0x0201f800, 0x00105f78, 0x0401ff37, - 0x0201f800, 0x00105f69, 0x40828000, 0x40865800, + 0x00000006, 0x0201f800, 0x0010613a, 0x0401ff37, + 0x0201f800, 0x0010612b, 0x40828000, 0x40865800, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000002, 0x1c01f000, 0x829d3c80, 0x00000002, 0x48813800, - 0x48853801, 0x412d0800, 0x0201f800, 0x0010efc7, + 0x48853801, 0x412d0800, 0x0201f800, 0x0010f1d6, 0x80c589c0, 0x040000aa, 0x5930dc07, 0x406c0000, 0x826d7480, 0x00000011, 0x83f17500, 0x03000000, - 0x04000028, 0x0c01f001, 0x0010f5e5, 0x0010f556, - 0x0010f5aa, 0x0010f583, 0x0010f556, 0x0010f5aa, - 0x0010f5c1, 0x0010f5ba, 0x0010f56a, 0x0010f56a, - 0x0010f570, 0x0010f56a, 0x0010f56a, 0x0010f56a, - 0x0010f56a, 0x0010f564, 0x0010f576, 0x0010f57f, + 0x04000028, 0x0c01f001, 0x0010f7e1, 0x0010f752, + 0x0010f7a6, 0x0010f77f, 0x0010f752, 0x0010f7a6, + 0x0010f7bd, 0x0010f7b6, 0x0010f766, 0x0010f766, + 0x0010f76c, 0x0010f766, 0x0010f766, 0x0010f766, + 0x0010f766, 0x0010f760, 0x0010f772, 0x0010f77b, 0x5930d403, 0x82697480, 0x00000043, 0x0400008c, - 0x0201f800, 0x0010f2cc, 0x80c589c0, 0x04020079, - 0x0201f800, 0x00108418, 0x80c589c0, 0x04000003, - 0x0201f800, 0x001073f9, 0x0201f800, 0x00106d13, + 0x0201f800, 0x0010f4c8, 0x80c589c0, 0x04020079, + 0x0201f800, 0x001085f9, 0x80c589c0, 0x04000003, + 0x0201f800, 0x001075b8, 0x0201f800, 0x00106ec7, 0x8d3e7d1c, 0x0400007e, 0x497a600a, 0x0401f07c, - 0x4200d000, 0x0000031c, 0x4130e000, 0x0201f800, + 0x4200d000, 0x00000328, 0x4130e000, 0x0201f800, 0x001001ec, 0x0401f076, 0x5930d203, 0x82697480, 0x00000004, 0x04020003, 0x0201f800, 0x00100bd7, - 0x59325809, 0x0201f800, 0x0010830d, 0x80c589c0, + 0x59325809, 0x0201f800, 0x001084ee, 0x80c589c0, 0x040007ea, 0x49425a07, 0x0201f800, 0x0002035b, 0x0401f7e6, 0x59325819, 0x0201f800, 0x00100595, - 0x0401f7f4, 0x0201f800, 0x00108dbd, 0x5930d203, + 0x0401f7f4, 0x0201f800, 0x00108fa8, 0x5930d203, 0x82697480, 0x00000004, 0x04000057, 0x59325809, - 0x0201f800, 0x0010830d, 0x80c589c0, 0x040007d7, + 0x0201f800, 0x001084ee, 0x80c589c0, 0x040007d7, 0x592cd205, 0x8268d500, 0x000000ff, 0x82697480, - 0x00000014, 0x04000003, 0x0201f800, 0x001083f6, - 0x0201f800, 0x00108cb5, 0x0201f800, 0x0002076c, + 0x00000014, 0x04000003, 0x0201f800, 0x001085d7, + 0x0201f800, 0x00108e9b, 0x0201f800, 0x0002076c, 0x4a025a05, 0x00000103, 0x592cd409, 0x8c68d512, 0x0402003b, 0x49425a07, 0x497a580a, 0x0201f800, - 0x00109bce, 0x0201f800, 0x0010899d, 0x0201f800, - 0x00108476, 0x0201f800, 0x0002035b, 0x0401f7bb, - 0x59325809, 0x0201f800, 0x0010830d, 0x80c589c0, + 0x00109e6c, 0x0201f800, 0x00108b83, 0x0201f800, + 0x00108657, 0x0201f800, 0x0002035b, 0x0401f7bb, + 0x59325809, 0x0201f800, 0x001084ee, 0x80c589c0, 0x040007b6, 0x49425a07, 0x497a5c0a, 0x0201f800, 0x0002035b, 0x5930d229, 0x82697480, 0x00000003, - 0x040207ae, 0x0201f800, 0x001083f6, 0x0401f7ab, + 0x040207ae, 0x0201f800, 0x001085d7, 0x0401f7ab, 0x5930d203, 0x82697480, 0x00000011, 0x04020028, 0x5930d429, 0x486a6203, 0x0401f025, 0x5930d203, 0x82697480, 0x00000004, 0x0400001e, 0x59325809, - 0x0201f800, 0x0010830d, 0x80c589c0, 0x0400079b, - 0x49425a07, 0x0201f800, 0x00109bce, 0x0201f800, - 0x00108cb5, 0x0201f800, 0x0002076c, 0x0201f800, - 0x0010899d, 0x0201f800, 0x0002035b, 0x0401f78f, - 0x0201f800, 0x00101cd1, 0x0401f786, 0x412d0000, + 0x0201f800, 0x001084ee, 0x80c589c0, 0x0400079b, + 0x49425a07, 0x0201f800, 0x00109e6c, 0x0201f800, + 0x00108e9b, 0x0201f800, 0x0002076c, 0x0201f800, + 0x00108b83, 0x0201f800, 0x0002035b, 0x0401f78f, + 0x0201f800, 0x00101cd3, 0x0401f786, 0x412d0000, 0x592e580a, 0x0201f800, 0x00100595, 0x40825800, 0x0401f7c1, 0x0201f800, 0x00100bd7, 0x0401f7a8, 0x0201f800, 0x00100bd7, 0x0401f7e1, 0x40865800, 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000002, - 0x1c01f000, 0x0201f800, 0x00109973, 0x80c589c0, - 0x0402000c, 0x5930d407, 0x82697480, 0x00000010, - 0x04000002, 0x0401f00f, 0x83457480, 0x0000ffff, - 0x040207fd, 0x5930d00a, 0x8068d1c0, 0x040207fa, - 0x812649c0, 0x04000005, 0x5930d01d, 0x41240000, - 0x80697480, 0x040207f4, 0x5932680a, 0x0401ff32, - 0x1c01f000, 0x829d3c80, 0x00000005, 0x48813800, + 0x1c01f000, 0x0201f800, 0x00109c11, 0x80c589c0, + 0x04000007, 0x812649c0, 0x04000006, 0x5930d01d, + 0x41240000, 0x80697480, 0x04000002, 0x0401f003, + 0x5932680a, 0x0401ff3c, 0x1c01f000, 0x829d3c80, + 0x00000005, 0x48813800, 0x48853801, 0x48893802, + 0x488d3803, 0x48913804, 0x41311000, 0x41352000, + 0x4933c857, 0x4947c857, 0x4943c857, 0x0201f800, + 0x0010613a, 0x40c51800, 0x0201f800, 0x00109ae1, + 0x41310800, 0x813261c0, 0x0400004e, 0x42000000, + 0x001104b4, 0x81317480, 0x0400004a, 0x59a8d00d, + 0x8068d040, 0x42010000, 0x00110514, 0x40680000, + 0x81657480, 0x0400000f, 0x41580000, 0x80817480, + 0x0402100c, 0x40826000, 0x40800000, 0x80857480, + 0x04000003, 0x4084d000, 0x0401ffcb, 0x82810400, + 0x00000030, 0x41580000, 0x80817480, 0x040017f6, + 0x41510000, 0x41540000, 0x80817480, 0x04021012, + 0x8d3e7d18, 0x04000010, 0x59a8d062, 0x59a80063, + 0x80697480, 0x0400000c, 0x40826000, 0x5880d00a, + 0x8068d1c0, 0x0400000d, 0x4084d000, 0x0401ffb6, + 0x82810400, 0x00000030, 0x41540000, 0x80817480, + 0x040017f0, 0x408a6000, 0x40926800, 0x808d7040, + 0x0400001e, 0x0401f023, 0x0201f800, 0x001042a5, + 0x40c66800, 0x80c589c0, 0x040007f2, 0x58c4d002, + 0x5930d82a, 0x82680500, 0x00ffffff, 0x806d7480, + 0x040207ec, 0x58c4d013, 0x5930d829, 0x82680500, + 0x00ffffff, 0x806d7480, 0x040207e6, 0x5930d203, + 0x82697480, 0x00000008, 0x0400000b, 0x4936600a, + 0x0401fedd, 0x82810400, 0x00000030, 0x0401f7df, + 0x59a8d00d, 0x0401f7b8, 0x0201f800, 0x0010612b, + 0x0401f004, 0x0201f800, 0x0010a0c7, 0x0401f7f4, + 0x589d2004, 0x589d1803, 0x589d1002, 0x589d0801, + 0x589d0000, 0x829d3c00, 0x00000005, 0x1c01f000, + 0x809d3840, 0x48a13800, 0x829d3c80, 0x00000002, + 0x409d4000, 0x829d3c80, 0x00000007, 0x48813800, 0x48853801, 0x48893802, 0x488d3803, 0x48913804, - 0x41311000, 0x41352000, 0x4933c857, 0x4947c857, - 0x4943c857, 0x0201f800, 0x00105f78, 0x40c51800, - 0x0201f800, 0x0010984a, 0x41310800, 0x813261c0, - 0x0400004e, 0x42000000, 0x00110284, 0x81317480, - 0x0400004a, 0x59a8d00d, 0x8068d040, 0x42010000, - 0x001102e4, 0x40680000, 0x81657480, 0x0400000f, - 0x41580000, 0x80817480, 0x0402100c, 0x40826000, - 0x40800000, 0x80857480, 0x04000003, 0x4084d000, - 0x0401ffc1, 0x82810400, 0x00000030, 0x41580000, - 0x80817480, 0x040017f6, 0x41510000, 0x41540000, - 0x80817480, 0x04021012, 0x8d3e7d18, 0x04000010, - 0x59a8d062, 0x59a80063, 0x80697480, 0x0400000c, - 0x40826000, 0x5880d00a, 0x8068d1c0, 0x0400000d, - 0x4084d000, 0x0401ffac, 0x82810400, 0x00000030, - 0x41540000, 0x80817480, 0x040017f0, 0x408a6000, - 0x40926800, 0x808d7040, 0x0400001e, 0x0401f023, - 0x0201f800, 0x001041cf, 0x40c66800, 0x80c589c0, - 0x040007f2, 0x58c4d002, 0x5930d82a, 0x82680500, - 0x00ffffff, 0x806d7480, 0x040207ec, 0x58c4d013, - 0x5930d829, 0x82680500, 0x00ffffff, 0x806d7480, - 0x040207e6, 0x5930d203, 0x82697480, 0x00000008, - 0x0400000b, 0x4936600a, 0x0401fed3, 0x82810400, - 0x00000030, 0x0401f7df, 0x59a8d00d, 0x0401f7b8, - 0x0201f800, 0x00105f69, 0x0401f004, 0x0201f800, - 0x00109e17, 0x0401f7f4, 0x589d2004, 0x589d1803, - 0x589d1002, 0x589d0801, 0x589d0000, 0x829d3c00, - 0x00000005, 0x1c01f000, 0x809d3840, 0x48a13800, - 0x829d3c80, 0x00000002, 0x409d4000, 0x829d3c80, - 0x00000007, 0x48813800, 0x48853801, 0x48893802, - 0x488d3803, 0x48913804, 0x48953805, 0x48993806, - 0x42010000, 0x00000001, 0x41793000, 0x49214000, - 0x49254001, 0x497bc856, 0x41310800, 0x41351000, - 0x41451800, 0x413d2000, 0x40592800, 0x4200d000, - 0x0010f674, 0x0201f800, 0x00105b2e, 0x59a8d21b, - 0x8c68d508, 0x0400001d, 0x8c68d516, 0x0402001b, - 0x59aa6882, 0x813669c0, 0x0400009d, 0x5934d400, - 0x82697480, 0x00000404, 0x04020099, 0x0201f800, - 0x00106d42, 0x40c66000, 0x80c589c0, 0x0400008e, - 0x48818c07, 0x4935880a, 0x409a7800, 0x0201f800, - 0x001040e0, 0x4200d000, 0x00000005, 0x0201f800, - 0x001040ea, 0x42027000, 0x00000003, 0x0201f800, - 0x00106d6c, 0x0401f086, 0x8268dd00, 0x00000008, - 0x8c68d506, 0x0400006e, 0x806cd9c0, 0x04000002, - 0x41790000, 0x0201f800, 0x0010a0b2, 0x4200d000, - 0x0010a0ec, 0x586a4800, 0x42028800, 0x000007fe, - 0x8058b1c0, 0x0400001e, 0x41440000, 0x0401f005, - 0x83264c00, 0x0000000b, 0x8058b040, 0x04000018, - 0x5924d009, 0x8068d400, 0x8268d480, 0x000007f0, - 0x586a6800, 0x813669c0, 0x040007f6, 0x5924d200, - 0x8268d500, 0x00000003, 0x82697480, 0x00000003, - 0x040207f0, 0x5934d200, 0x8c68d51a, 0x040007ed, - 0x8468d51a, 0x486a6a00, 0x80993000, 0x83264c00, - 0x0000000b, 0x8058b040, 0x040207ea, 0x809931c0, - 0x04000045, 0x8d0e1d20, 0x04020046, 0x0201f800, - 0x00101de7, 0x80817040, 0x04020051, 0x4200b000, - 0x000007f0, 0x417a8800, 0x0401f004, 0x81468800, - 0x8058b040, 0x0400004a, 0x0201f800, 0x001041cf, - 0x80c589c0, 0x040007fa, 0x5934d200, 0x8c68d51a, - 0x040007f7, 0x5934d403, 0x406a8800, 0x417a7800, - 0x42028000, 0x00000029, 0x5934d013, 0x8068d130, - 0x406a4000, 0x40680000, 0x4200d000, 0x0010a0ec, - 0x8068d400, 0x586a4800, 0x413cd000, 0x413cd800, - 0x0201f800, 0x0010989c, 0x5934d200, 0x8468d558, + 0x48953805, 0x48993806, 0x42010000, 0x00000001, + 0x41793000, 0x49214000, 0x49254001, 0x497bc856, + 0x41310800, 0x41351000, 0x41451800, 0x413d2000, + 0x40592800, 0x4200d000, 0x0010f866, 0x0201f800, + 0x00105cf0, 0x59a8d21b, 0x8c68d508, 0x0400001d, + 0x8c68d516, 0x0402001b, 0x59aa6882, 0x813669c0, + 0x040000a6, 0x5934d400, 0x82697480, 0x00000404, + 0x040200a2, 0x0201f800, 0x00106efa, 0x40c66000, + 0x80c589c0, 0x04000097, 0x48818c07, 0x4935880a, + 0x409a7800, 0x0201f800, 0x001041b3, 0x4200d000, + 0x00000005, 0x0201f800, 0x001041bd, 0x42027000, + 0x00000003, 0x0201f800, 0x00106f24, 0x0401f08f, + 0x8268dd00, 0x00000008, 0x8c68d506, 0x04000074, + 0x806cd9c0, 0x04000002, 0x41790000, 0x0201f800, + 0x0010a362, 0x4200d000, 0x0010a3b3, 0x586a4800, + 0x42028800, 0x000007fe, 0x8058b1c0, 0x0400001f, + 0x41440000, 0x0401f005, 0x83264c00, 0x0000000b, + 0x8058b040, 0x04000019, 0x5924d009, 0x8068d400, + 0x8268d480, 0x000007f0, 0x586a6800, 0x813669c0, + 0x040007f6, 0x5924d200, 0x8268d500, 0x00000003, + 0x82697480, 0x00000003, 0x040207f0, 0x5934da00, + 0x8c6cdd1a, 0x040007ed, 0x826cd500, 0xffffdfff, + 0x486a6a00, 0x80993000, 0x83264c00, 0x0000000b, + 0x8058b040, 0x040207e9, 0x809931c0, 0x0400004a, + 0x8d0e1d20, 0x0402004b, 0x0201f800, 0x00101e1b, + 0x80817040, 0x04020059, 0x4200b000, 0x000007f0, + 0x417a8800, 0x0401f01e, 0x826cd540, 0x00001000, 0x486a6a00, 0x5934d200, 0x8468d51a, 0x486a6a00, 0x4937c857, 0x4a026c00, 0x00000707, 0x0201f800, - 0x00105f78, 0x40c50000, 0x417a6000, 0x0201f800, - 0x00105e35, 0x0201f800, 0x0010f051, 0x0201f800, - 0x0010f148, 0x417a7800, 0x0201f800, 0x0010f1e1, - 0x0201f800, 0x0010f603, 0x80817040, 0x040207cc, - 0x0201f800, 0x00105f69, 0x0401f7c9, 0x8c68d50a, - 0x04020792, 0x80817040, 0x04020011, 0x0401f7c0, - 0x4200d000, 0x000007d0, 0x4200d800, 0x0010f674, - 0x0201f800, 0x00105c58, 0x0201f800, 0x00101de7, - 0x0401f7b5, 0x4200d000, 0x00000098, 0x40c4d800, - 0x4134e000, 0x0201f800, 0x001001ec, 0x58a24801, - 0x58a24000, 0x40866000, 0x408a6800, 0x408e8800, - 0x40927800, 0x4094b000, 0x589d3006, 0x589d2805, - 0x589d2004, 0x589d1803, 0x589d1002, 0x589d0801, - 0x589d0000, 0x829d3c00, 0x00000009, 0x589d4000, - 0x809d3800, 0x1c01f000, 0x497bc856, 0x0201f800, - 0x00104a28, 0x80c589c0, 0x0402004f, 0x59a8d015, - 0x8c68d504, 0x04000028, 0x8d0e1d20, 0x0400001c, - 0x4200b000, 0x000007f0, 0x417a8800, 0x0401f004, - 0x81468800, 0x8058b040, 0x04000015, 0x0201f800, - 0x001041cf, 0x80c589c0, 0x040007fa, 0x0201f800, - 0x001044a7, 0x80c589c0, 0x040007f6, 0x59a8d00f, - 0x59340002, 0x8068d580, 0x8268d500, 0x00ffff00, - 0x040207f0, 0x5934d200, 0x8468d55a, 0x486a6a00, - 0x81468800, 0x8058b040, 0x040207ed, 0x0201f800, - 0x001043ef, 0x80c589c0, 0x04000026, 0x59a8d02d, - 0x4200d800, 0x0010f674, 0x0201f800, 0x00105c58, - 0x0401f04d, 0x59a8d21b, 0x8c68d506, 0x040007d7, - 0x0201f800, 0x0010a0b2, 0x4200d000, 0x0010a0ec, - 0x586a4800, 0x42028800, 0x000007fe, 0x0401f012, - 0x5924d009, 0x41440000, 0x8068d400, 0x8268d480, - 0x000007f0, 0x586a6800, 0x813669c0, 0x04000007, - 0x5924d200, 0x8268d500, 0x00000003, 0x82697480, - 0x00000003, 0x0400002c, 0x8058b040, 0x83264c00, - 0x0000000b, 0x8058b1c0, 0x040207ee, 0x0401f7bb, - 0x8d0e1d20, 0x040007df, 0x4200d000, 0x000007d0, - 0x0401f7d8, 0x0201f800, 0x0010a0b2, 0x4200d000, - 0x0010a0ec, 0x586a4800, 0x42028800, 0x000007fe, - 0x8058b1c0, 0x040007ad, 0x41440000, 0x0401f005, - 0x83264c00, 0x0000000b, 0x8058b040, 0x040007a7, - 0x5924d009, 0x8068d400, 0x8268d480, 0x000007f0, - 0x586a6800, 0x813669c0, 0x040007f6, 0x5924d200, + 0x0010613a, 0x40c50000, 0x417a6000, 0x0201f800, + 0x00105ff7, 0x0201f800, 0x0010f260, 0x0201f800, + 0x0010f344, 0x417a7800, 0x0201f800, 0x0010f3dd, + 0x0201f800, 0x0010f7f5, 0x80817040, 0x04000032, + 0x81468800, 0x8058b040, 0x04000038, 0x0201f800, + 0x001042a5, 0x80c589c0, 0x040007fa, 0x5934da00, + 0x8c6cdd1a, 0x040007f7, 0x5934d403, 0x406a8800, + 0x417a7800, 0x42028000, 0x00000029, 0x5934d013, + 0x8068d130, 0x406a4000, 0x40680000, 0x4200d000, + 0x0010a3b3, 0x8068d400, 0x586a4800, 0x5924d000, + 0x8068d120, 0x8268e500, 0x00000020, 0x8c68d50a, + 0x040207ca, 0x4070d000, 0x4070d800, 0x0201f800, + 0x00109b33, 0x5934da00, 0x0401f7c4, 0x8c68d50a, + 0x0402078c, 0x80817040, 0x04020014, 0x0401f7bb, + 0x4200d000, 0x000007d0, 0x4200d800, 0x0010f866, + 0x0201f800, 0x00105e1a, 0x0201f800, 0x00101e1b, + 0x0401f7b0, 0x0201f800, 0x0010612b, 0x0401f7cd, + 0x4200d000, 0x000000a0, 0x40c4d800, 0x4134e000, + 0x0201f800, 0x001001ec, 0x58a24801, 0x58a24000, + 0x40866000, 0x408a6800, 0x408e8800, 0x40927800, + 0x4094b000, 0x589d3006, 0x589d2805, 0x589d2004, + 0x589d1803, 0x589d1002, 0x589d0801, 0x589d0000, + 0x829d3c00, 0x00000009, 0x589d4000, 0x809d3800, + 0x1c01f000, 0x497bc856, 0x0201f800, 0x00104b2d, + 0x80c589c0, 0x04020054, 0x59a8d015, 0x8c68d504, + 0x04020004, 0x59a8d21b, 0x8c68d506, 0x0402002b, + 0x8d0e1d20, 0x04020004, 0x59a8d006, 0x8c68d51c, + 0x0400001c, 0x4200b000, 0x000007f0, 0x417a8800, + 0x0401f004, 0x81468800, 0x8058b040, 0x04000015, + 0x0201f800, 0x001042a5, 0x80c589c0, 0x040007fa, + 0x0201f800, 0x00104583, 0x80c589c0, 0x040007f6, + 0x59a8d00f, 0x59340002, 0x8068d580, 0x8268d500, + 0x00ffff00, 0x040207f0, 0x5934d200, 0x8468d55a, + 0x486a6a00, 0x81468800, 0x8058b040, 0x040207ed, + 0x0201f800, 0x001044c9, 0x80c589c0, 0x04000022, + 0x59a8d02d, 0x4200d800, 0x0010f866, 0x0201f800, + 0x00105e1a, 0x0401f04b, 0x0201f800, 0x0010a362, + 0x4200d000, 0x0010a3b3, 0x586a4800, 0x42028800, + 0x000007fe, 0x8058b1c0, 0x040007ce, 0x5924d009, + 0x41440000, 0x8068d400, 0x8268d480, 0x000007f0, + 0x586a6800, 0x813669c0, 0x04000007, 0x5924d200, 0x8268d500, 0x00000003, 0x82697480, 0x00000003, - 0x040207f0, 0x5934d200, 0x8468d51a, 0x486a6a00, - 0x0401f7ec, 0x0201f800, 0x001044a7, 0x80c589c0, - 0x040007d2, 0x5934d200, 0x8468d55a, 0x486a6a00, - 0x0401f7ce, 0x1c01f000, 0x829d3c80, 0x00000004, - 0x48813800, 0x48853801, 0x48893802, 0x488d3803, - 0x40691000, 0x406d1800, 0x40710800, 0x41790000, - 0x4880e000, 0x83457480, 0x000007ff, 0x83f17500, - 0x03000000, 0x0400004e, 0x4880e002, 0x4944e001, - 0x4144f000, 0x4200d800, 0x0010a380, 0x4200b000, - 0x000007f0, 0x83457480, 0x000007ef, 0x04000040, - 0x0400103f, 0x4200b000, 0x00000010, 0x8344f480, - 0x000007f0, 0x5924d809, 0x8058b1c0, 0x04000017, - 0x40780000, 0x806cd400, 0x5868e000, 0x8070e1c0, - 0x04020044, 0x5884e801, 0x41440000, 0x80757480, - 0x0400005b, 0x8074d000, 0x8078f000, 0x83457480, - 0x000007ef, 0x0400004f, 0x0400104e, 0x82697480, - 0x00000800, 0x04000032, 0x48690801, 0x8058b040, - 0x8058b1c0, 0x040207eb, 0x5884d802, 0x806cd9c0, - 0x04000088, 0x412d0000, 0x4088d000, 0x0201f800, - 0x0010410f, 0x4947c857, 0x4937c857, 0x40825800, - 0x813669c0, 0x0400008f, 0x497a6a12, 0x59a8d21b, - 0x8c68d50a, 0x0402000a, 0x8288dd00, 0x00ffff00, - 0x04000073, 0x59a8d00f, 0x8268d500, 0x00ffff00, - 0x406c0000, 0x80697480, 0x0400006d, 0x488a6802, - 0x5924d005, 0x812000f0, 0x8068d540, 0x486a6813, - 0x4200d000, 0x00000001, 0x0401f0a3, 0x82697480, - 0x00fffffb, 0x040007c5, 0x040017c4, 0x4947c857, - 0x488bc857, 0x58857001, 0x48bbc857, 0x4a010800, - 0x00000019, 0x4080d000, 0x0401f097, 0x4a010801, - 0x000007f0, 0x4178f000, 0x8058b040, 0x0401f7cd, - 0x4070f800, 0x5870d002, 0x8268e500, 0x00ffffff, - 0x48710803, 0x40880000, 0x80717480, 0x04000035, - 0x5884e801, 0x41440000, 0x80757480, 0x040207b6, - 0x587d7002, 0x48b90803, 0x4947c857, 0x58857003, - 0x48bbc857, 0x4a010800, 0x0000001b, 0x0401f058, - 0x82697480, 0x000007f0, 0x040207b4, 0x49790801, - 0x4200d800, 0x0010a380, 0x0401f7e3, 0x49450802, - 0x83457480, 0x000007ef, 0x0400001a, 0x04001019, - 0x59a8d21b, 0x8c68d50a, 0x0400003c, 0x83457480, - 0x000007fe, 0x0400004c, 0x5924d200, 0x8268d500, - 0x00000220, 0x0400005d, 0x808101c0, 0x0402000d, - 0x82757480, 0x000007fc, 0x04000049, 0x82757480, - 0x000007fd, 0x0400003c, 0x82757480, 0x000007ff, - 0x040207bf, 0x82897480, 0x00ffffff, 0x040207bc, - 0x5884d002, 0x8468d55e, 0x48690802, 0x0401f786, - 0x587ce813, 0x8074d130, 0x41200000, 0x80697480, - 0x040207c8, 0x5924d005, 0x82740500, 0x00ffffff, - 0x80697480, 0x04000004, 0x812000f0, 0x8068d540, - 0x4868f813, 0x5884d001, 0x41440000, 0x80697480, - 0x0400002f, 0x4947c857, 0x4873c857, 0x488fc857, - 0x4a010800, 0x0000001a, 0x0401f019, 0x8288d500, - 0x000000ff, 0x8068d0d0, 0x486a6a12, 0x0401f790, - 0x4200d000, 0x000003f1, 0x4084e000, 0x0201f800, - 0x001001ec, 0x0401f774, 0x5924d200, 0x8268e500, - 0x00000020, 0x8c68d50a, 0x040207c8, 0x4947c857, - 0x4a010800, 0x0000001f, 0x4070d000, 0x0401f02a, - 0x4947c857, 0x4a010800, 0x0000000a, 0x4178d000, - 0x0401f025, 0x82897480, 0x00fffffd, 0x040007c9, - 0x0401f783, 0x82897480, 0x00fffffe, 0x04020017, - 0x42010000, 0x00000001, 0x0401f7b4, 0x82897480, - 0x00fffffc, 0x040007bf, 0x0401f779, 0x407e6800, - 0x8c8d1d08, 0x0400076f, 0x0201f800, 0x001043d4, - 0x80c589c0, 0x0400076b, 0x4947c857, 0x4a010800, - 0x0000001d, 0x0401f7e6, 0x4947c857, 0x4a010800, - 0x0000001f, 0x0401f008, 0x4947c857, 0x488bc857, + 0x0400002c, 0x8058b040, 0x83264c00, 0x0000000b, + 0x0401f7ed, 0x8d0e1d20, 0x04020004, 0x59a8d006, + 0x8c68d51c, 0x040007e0, 0x4200d000, 0x000007d0, + 0x0401f7d9, 0x0201f800, 0x0010a362, 0x4200d000, + 0x0010a3b3, 0x586a4800, 0x42028800, 0x000007fe, + 0x8058b1c0, 0x040007ab, 0x41440000, 0x5924d009, + 0x8068d400, 0x8268d480, 0x000007f0, 0x586a6800, + 0x813669c0, 0x0400000a, 0x5924d200, 0x8268d500, + 0x00000003, 0x82697480, 0x00000003, 0x04020004, + 0x5934d200, 0x8468d51a, 0x486a6a00, 0x83264c00, + 0x0000000b, 0x8058b040, 0x040207ed, 0x0401f795, + 0x0201f800, 0x00104583, 0x80c589c0, 0x040007d2, + 0x5934d200, 0x8468d55a, 0x486a6a00, 0x0401f7ce, + 0x1c01f000, 0x829d3c80, 0x00000004, 0x48813800, + 0x48853801, 0x48893802, 0x488d3803, 0x40691000, + 0x406d1800, 0x40710800, 0x41790000, 0x4880e000, + 0x83457480, 0x000007ff, 0x83f17500, 0x03000000, + 0x0400004e, 0x4880e002, 0x4944e001, 0x4144f000, + 0x4200d800, 0x0010a600, 0x4200b000, 0x000007f0, + 0x83457480, 0x000007ef, 0x04000040, 0x0400103f, + 0x4200b000, 0x00000010, 0x8344f480, 0x000007f0, + 0x5924d809, 0x8058b1c0, 0x04000017, 0x40780000, + 0x806cd400, 0x5868e000, 0x8070e1c0, 0x04020044, + 0x5884e801, 0x41440000, 0x80757480, 0x0400005b, + 0x8074d000, 0x8078f000, 0x83457480, 0x000007ef, + 0x0400004f, 0x0400104e, 0x82697480, 0x00000800, + 0x04000032, 0x48690801, 0x8058b040, 0x8058b1c0, + 0x040207eb, 0x5884d802, 0x806cd9c0, 0x04000088, + 0x412d0000, 0x4088d000, 0x0201f800, 0x001041e5, + 0x4947c857, 0x4937c857, 0x40825800, 0x813669c0, + 0x0400008f, 0x497a6a12, 0x59a8d21b, 0x8c68d50a, + 0x0402000a, 0x8288dd00, 0x00ffff00, 0x04000073, + 0x59a8d00f, 0x8268d500, 0x00ffff00, 0x406c0000, + 0x80697480, 0x0400006d, 0x488a6802, 0x5924d005, + 0x812000f0, 0x8068d540, 0x486a6813, 0x4200d000, + 0x00000001, 0x0401f0a3, 0x82697480, 0x00fffffb, + 0x040007c5, 0x040017c4, 0x4947c857, 0x488bc857, 0x58857001, 0x48bbc857, 0x4a010800, 0x00000019, - 0x4070d000, 0x40698800, 0x589d1803, 0x589d1002, - 0x589d0801, 0x589d0000, 0x829d3c00, 0x00000004, - 0x1c01f000, 0x809d3840, 0x48813800, 0x4200d000, - 0x00009c0e, 0x4200d800, 0xfffffff7, 0x0201f800, - 0x0010e9f0, 0x4200d000, 0x00009c0e, 0x4200d800, - 0x00000010, 0x0201f800, 0x0010ea02, 0x59c4d0a3, - 0x8468d518, 0x486b88a3, 0x0201f800, 0x00103639, - 0x80c589c0, 0x04000007, 0x599cd019, 0x8268d500, - 0x0000e000, 0x82697480, 0x00004000, 0x0400008c, - 0x4200d000, 0x00000080, 0x0201f800, 0x001015d2, - 0x0201f800, 0x00105c8d, 0x59c4d0a3, 0x8468d506, - 0x486b88a3, 0x0201f800, 0x00104a33, 0x80c589c0, - 0x04020005, 0x0201f800, 0x00104a49, 0x80c589c0, - 0x0400006c, 0x59c4d0a3, 0x8268d500, 0xbe7fffff, - 0x486b88a3, 0x4200d000, 0x000000f8, 0x0201f800, - 0x00103e0c, 0x59c4d0a3, 0x8268d540, 0x00018000, - 0x8468d51c, 0x486b88a3, 0x59c4d0a3, 0x8468d520, - 0x486b88a3, 0x4a038808, 0x00000200, 0x59c4d006, - 0x8268d500, 0xfbffff0e, 0x486b8806, 0x497b282c, - 0x497b282d, 0x4200d000, 0x000001f4, 0x4200d800, - 0x0010faf2, 0x0201f800, 0x00105b19, 0x4a038805, - 0x00000001, 0x0201f800, 0x001016a8, 0x80c589c0, - 0x04020023, 0x0201f800, 0x001016b3, 0x80c589c0, - 0x04000035, 0x4178d000, 0x0201f800, 0x0010189e, - 0x4178d000, 0x0201f800, 0x00101874, 0x0201f800, - 0x001018fe, 0x4a03503c, 0x00000001, 0x0201f800, - 0x00104a33, 0x80c589c0, 0x04000018, 0x59c4d0a4, - 0x8268d500, 0x0000000f, 0x82697480, 0x00000008, - 0x04000003, 0x4a038805, 0x04000000, 0x59c4d0a3, - 0x8268d540, 0x0001c000, 0x486b88a3, 0x59c4d0a3, - 0x8468d520, 0x486b88a3, 0x0401f077, 0x4200d000, - 0x00000001, 0x0201f800, 0x0010189e, 0x4200d000, - 0x00000001, 0x0401f7e0, 0x0201f800, 0x00104a49, - 0x80c589c0, 0x040207e6, 0x0201f800, 0x00104a3e, - 0x4200d000, 0x000001a1, 0x80c589c0, 0x04020052, - 0x599cd818, 0x40c4e000, 0x0201f800, 0x001001ec, - 0x0401f061, 0x0201f800, 0x001016be, 0x80c589c0, - 0x04020030, 0x0201f800, 0x001016c9, 0x80c589c0, - 0x04000039, 0x4200d000, 0x00000003, 0x0201f800, - 0x0010189e, 0x4200d000, 0x00000003, 0x0401f7c2, - 0x0201f800, 0x00104a3e, 0x4200d000, 0x0000014e, - 0x80c589c0, 0x040007e7, 0x59c4d0a3, 0x8468d570, - 0x8468d532, 0x486b88a3, 0x0201f800, 0x00104d7a, - 0x4a038808, 0x00000208, 0x0401f799, 0x59a8d86f, - 0x826d0500, 0x00000007, 0x04020019, 0x59a8d03b, - 0x82697480, 0x00000002, 0x04000018, 0x0201f800, - 0x0010186b, 0x4883503a, 0x0201f800, 0x00101c53, - 0x4a035048, 0x00000003, 0x4a03503b, 0x00000002, - 0x4a035047, 0x00000001, 0x59a8d86f, 0x0401f00b, - 0x4200d000, 0x00000002, 0x0201f800, 0x0010189e, - 0x4200d000, 0x00000002, 0x0401f797, 0x82817480, - 0x00000004, 0x04000019, 0x806cd000, 0x486b506f, - 0x0401f754, 0x0201f800, 0x001016d4, 0x80c589c0, - 0x0400000e, 0x59a8d047, 0x8068d1c0, 0x0400078c, - 0x0201f800, 0x001016de, 0x4a03503c, 0x00000001, - 0x0401f015, 0x4a035014, 0x00000001, 0x0201f800, - 0x001049ab, 0x0401f010, 0x4200d000, 0x00000182, - 0x59a8d83b, 0x0401f7a8, 0x497b2804, 0x497b2805, - 0x0201f800, 0x00101c62, 0x4a035047, 0x00000001, - 0x4a035048, 0xaabbccdd, 0x4883503b, 0x59a8d86f, - 0x0401f7de, 0x589d0000, 0x809d3800, 0x1c01f000, - 0x5994d02c, 0x8068d1c0, 0x04020006, 0x5994d02d, - 0x4200d800, 0x00000001, 0x8068d1c0, 0x04000002, - 0x4178d800, 0x406d8800, 0x1c01f000, 0x0201f800, - 0x0010186b, 0x4a03503c, 0x00000002, 0x497b5047, - 0x59c4d0a3, 0x8468d520, 0x486b88a3, 0x0201f800, - 0x00103639, 0x80c589c0, 0x04000002, 0x0401f00d, - 0x0201f800, 0x00104a3e, 0x80c589c0, 0x040207fc, - 0x48c7282c, 0x48c7282d, 0x4200d000, 0x0000002d, - 0x4200d800, 0x0010faf2, 0x0201f800, 0x00105b19, - 0x1c01f000, 0x0401ffdb, 0x80c589c0, 0x04000004, - 0x4a03503c, 0x00000003, 0x0401f01f, 0x0201f800, - 0x001016d4, 0x80c589c0, 0x04000004, 0x59a8d047, - 0x8068d1c0, 0x04020008, 0x0201f800, 0x001018cd, - 0x80c589c0, 0x04020002, 0x0401f013, 0x0401ffd4, - 0x0401f011, 0x0201f800, 0x001016de, 0x59a8d046, - 0x8c68d51e, 0x040007f9, 0x0201f800, 0x00104a3e, - 0x80c589c0, 0x04020003, 0x0401ffc9, 0x0401f006, - 0x4a035014, 0x00000001, 0x0201f800, 0x001049ab, - 0x0401f7fa, 0x1c01f000, 0x4202d800, 0x00000001, - 0x497b503c, 0x4a038805, 0x00000001, 0x497b282c, - 0x497b282d, 0x497b8885, 0x1c01f000, 0x59c4d005, - 0x8268d500, 0x000000c0, 0x04020003, 0x486b8885, - 0x0401f006, 0x59c4d006, 0x8268d540, 0x000000f1, - 0x486b8806, 0x0401ffed, 0x1c01f000, 0x0201f800, - 0x00104a49, 0x80c589c0, 0x04000005, 0x59a8d013, - 0x82697480, 0x0000aaaa, 0x0400000c, 0x497b5013, - 0x59c4d006, 0x8268d540, 0x04000001, 0x486b8806, - 0x8d0e1d06, 0x04020008, 0x59c4d0a3, 0x8468d546, - 0x486b88a3, 0x0401f004, 0x4a03500f, 0x00ffffff, - 0x0401f7f3, 0x0401ffd5, 0x1c01f000, 0x809d3840, - 0x48813800, 0x0401ff87, 0x80c589c0, 0x04000005, - 0x4a03503c, 0x00000003, 0x497b8885, 0x0401f08b, - 0x4a038805, 0x000000f0, 0x0201f800, 0x001018cd, - 0x80c589c0, 0x04000042, 0x0201f800, 0x00101af5, - 0x80c589c0, 0x04000048, 0x59a8d04f, 0x8c68d50c, - 0x0400005e, 0x0201f800, 0x00101af5, 0x80c589c0, - 0x0402000b, 0x4a03c014, 0x00200020, 0x59c4d001, - 0x8268d500, 0x00018000, 0x82697480, 0x00018000, - 0x0400005f, 0x4a03c013, 0x00200000, 0x0201f800, - 0x00104a3e, 0x80c589c0, 0x0402004a, 0x59c4d0a4, - 0x8268d500, 0x0000000f, 0x82697480, 0x00000008, - 0x0400002b, 0x59c4d005, 0x82690500, 0x04000000, - 0x8c68d534, 0x04020026, 0x5994d02c, 0x82697480, - 0x00000002, 0x83f17500, 0x03000000, 0x040007cf, - 0x0201f800, 0x00104a49, 0x80c589c0, 0x040007cb, - 0x4a038805, 0x000000f0, 0x0201f800, 0x00104a7d, - 0x4a035013, 0x0000aaaa, 0x48835014, 0x59c4d0a3, - 0x8468d546, 0x486b88a3, 0x4202d800, 0x00000001, - 0x4883503c, 0x4a038805, 0x00000001, 0x4883282c, - 0x4883282d, 0x0401ff8e, 0x0401f7b8, 0x0201f800, - 0x001016d4, 0x80c589c0, 0x040007b4, 0x59a8d047, - 0x8068d1c0, 0x040007b1, 0x0401f7ae, 0x0401ff90, - 0x0401f7ae, 0x0201f800, 0x00101acb, 0x80c589c0, - 0x040007b6, 0x0201f800, 0x00101ad9, 0x80c589c0, - 0x04000022, 0x0201f800, 0x001016c9, 0x80c589c0, - 0x0400002a, 0x59a8d048, 0x42000000, 0xaabbccdd, - 0x80697480, 0x04000004, 0x82697480, 0x00000004, - 0x040207a6, 0x4a03503c, 0x00000003, 0x0401f023, - 0x0401ff6b, 0x0401f021, 0x4200d000, 0x00009c0e, - 0x4200d800, 0xffffffef, 0x0201f800, 0x0010e9f0, - 0x4200d000, 0x00009c0e, 0x4200d800, 0x00000008, - 0x0201f800, 0x0010ea02, 0x0401f797, 0x4a03c013, - 0x00200020, 0x0401f7a2, 0x0201f800, 0x001016a8, - 0x80c589c0, 0x0400000b, 0x59a8d048, 0x42000000, - 0xaabbccdd, 0x80697480, 0x040007e3, 0x8068d1c0, - 0x04020786, 0x0401f7e0, 0x59a8d048, 0x0401f7db, - 0x59a8d048, 0x0401f7fa, 0x589d0000, 0x809d3800, - 0x1c01f000, 0x497bc856, 0x4200d000, 0x00000080, - 0x0201f800, 0x001015d2, 0x497b503c, 0x0201f800, - 0x001016d4, 0x80c589c0, 0x0400000e, 0x59a8d03a, - 0x8068d1c0, 0x04020008, 0x8068d1c0, 0x04020009, - 0x4a03503a, 0x0000000a, 0x4a035047, 0x00000001, - 0x0401f004, 0x8068d040, 0x486b503a, 0x0401f7f7, - 0x497b8885, 0x0201f800, 0x001003c3, 0x1c01f000, - 0x4200e000, 0x00000003, 0x59a8003c, 0x80717480, - 0x04001006, 0x0c01f001, 0x0010faec, 0x0010faee, - 0x0010faf0, 0x0010faea, 0x4200d000, 0x000000c3, - 0x4000d800, 0x0201f800, 0x001001ec, 0x0401f008, - 0x0401ffd5, 0x0401f006, 0x0401fddb, 0x0401f004, - 0x0401fee9, 0x0401f002, 0x0401ff39, 0x1c01f000, - 0x497b282d, 0x1c01f000, 0x0201f800, 0x00103639, - 0x80c589c0, 0x04000007, 0x599cd019, 0x8268d500, - 0x0000e000, 0x82697480, 0x00004000, 0x04000003, - 0x4178d000, 0x0401f024, 0x59c4d001, 0x8268d500, - 0x00018000, 0x82697480, 0x00010000, 0x040207f9, - 0x59a8d070, 0x82697480, 0x00000002, 0x83f17500, - 0x03000000, 0x040007f3, 0x0201f800, 0x00101c62, - 0x4a035047, 0x00000001, 0x4a035048, 0xaabbccdd, - 0x4a03503b, 0x00000004, 0x497b503c, 0x4202d800, - 0x00000004, 0x59a8d070, 0x8068d000, 0x486b5070, - 0x59a8d06f, 0x8268d500, 0xfffffff8, 0x8468d544, - 0x486b506f, 0x0201f800, 0x0010040a, 0x4200d000, - 0x00000001, 0x40698800, 0x1c01f000, 0x809d3840, - 0x48813800, 0x59a8d017, 0x82697480, 0x0000ffff, - 0x04000004, 0x0201f800, 0x00101de7, 0x0401f0c4, - 0x59a8da1b, 0x826cd500, 0x00000028, 0x04000032, - 0x8c6cdd00, 0x04000030, 0x4a038802, 0x0000ffbf, - 0x59a8da1b, 0x8c6cdd02, 0x0400002b, 0x599ce018, - 0x82710500, 0x00000800, 0x8c70e516, 0x0402001d, - 0x59a8d01c, 0x82697480, 0x0000ffff, 0x04000019, - 0x8c6cdd0a, 0x040200a3, 0x42024800, 0x0010b111, - 0x40824000, 0x5924d200, 0x8268d500, 0x000000e0, - 0x82697480, 0x000000e0, 0x04020059, 0x0201f800, - 0x00101c7f, 0x59a8d21b, 0x8268dd00, 0x00000004, - 0x8c68d504, 0x04020052, 0x406e5800, 0x4200d000, - 0x00000003, 0x0201f800, 0x00101ca4, 0x0401f098, - 0x8c70e516, 0x04020005, 0x59a8d01c, 0x82697480, - 0x0000ffff, 0x0400008a, 0x59a8d01d, 0x8068d1c0, - 0x04020043, 0x8c6cdd08, 0x04000042, 0x599cd019, - 0x8c68d510, 0x04000043, 0x0201f800, 0x001043ef, + 0x4080d000, 0x0401f097, 0x4a010801, 0x000007f0, + 0x4178f000, 0x8058b040, 0x0401f7cd, 0x4070f800, + 0x5870d002, 0x8268e500, 0x00ffffff, 0x48710803, + 0x40880000, 0x80717480, 0x04000035, 0x5884e801, + 0x41440000, 0x80757480, 0x040207b6, 0x587d7002, + 0x48b90803, 0x4947c857, 0x58857003, 0x48bbc857, + 0x4a010800, 0x0000001b, 0x0401f058, 0x82697480, + 0x000007f0, 0x040207b4, 0x49790801, 0x4200d800, + 0x0010a600, 0x0401f7e3, 0x49450802, 0x83457480, + 0x000007ef, 0x0400001a, 0x04001019, 0x59a8d21b, + 0x8c68d50a, 0x0400003c, 0x83457480, 0x000007fe, + 0x0400004c, 0x5924d200, 0x8268d500, 0x00000220, + 0x0400005d, 0x808101c0, 0x0402000d, 0x82757480, + 0x000007fc, 0x04000049, 0x82757480, 0x000007fd, + 0x0400003c, 0x82757480, 0x000007ff, 0x040207bf, + 0x82897480, 0x00ffffff, 0x040207bc, 0x5884d002, + 0x8468d55e, 0x48690802, 0x0401f786, 0x587ce813, + 0x8074d130, 0x41200000, 0x80697480, 0x040207c8, + 0x5924d005, 0x82740500, 0x00ffffff, 0x80697480, + 0x04000004, 0x812000f0, 0x8068d540, 0x4868f813, + 0x5884d001, 0x41440000, 0x80697480, 0x0400002f, + 0x4947c857, 0x4873c857, 0x488fc857, 0x4a010800, + 0x0000001a, 0x0401f019, 0x8288d500, 0x000000ff, + 0x8068d0d0, 0x486a6a12, 0x0401f790, 0x4200d000, + 0x0000044d, 0x4084e000, 0x0201f800, 0x001001ec, + 0x0401f774, 0x5924d200, 0x8268e500, 0x00000020, + 0x8c68d50a, 0x040207c8, 0x4947c857, 0x4a010800, + 0x0000001f, 0x4070d000, 0x0401f02a, 0x4947c857, + 0x4a010800, 0x0000000a, 0x4178d000, 0x0401f025, + 0x82897480, 0x00fffffd, 0x040007c9, 0x0401f783, + 0x82897480, 0x00fffffe, 0x04020017, 0x42010000, + 0x00000001, 0x0401f7b4, 0x82897480, 0x00fffffc, + 0x040007bf, 0x0401f779, 0x407e6800, 0x8c8d1d08, + 0x0400076f, 0x0201f800, 0x001044ae, 0x80c589c0, + 0x0400076b, 0x4947c857, 0x4a010800, 0x0000001d, + 0x0401f7e6, 0x4947c857, 0x4a010800, 0x0000001f, + 0x0401f008, 0x4947c857, 0x488bc857, 0x58857001, + 0x48bbc857, 0x4a010800, 0x00000019, 0x4070d000, + 0x40698800, 0x589d1803, 0x589d1002, 0x589d0801, + 0x589d0000, 0x829d3c00, 0x00000004, 0x1c01f000, + 0x809d3840, 0x48813800, 0x4200d000, 0x00009c0e, + 0x4200d800, 0xfffffff7, 0x0201f800, 0x0010ebf0, + 0x4200d000, 0x00009c0e, 0x4200d800, 0x00000010, + 0x0201f800, 0x0010ec02, 0x59c4d0a3, 0x8468d518, + 0x486b88a3, 0x0201f800, 0x00103704, 0x80c589c0, + 0x04000007, 0x599cd019, 0x8268d500, 0x0000e000, + 0x82697480, 0x00004000, 0x0400008c, 0x4200d000, + 0x00000080, 0x0201f800, 0x001015d0, 0x0201f800, + 0x00105e4f, 0x59c4d0a3, 0x8468d506, 0x486b88a3, + 0x0201f800, 0x00104b38, 0x80c589c0, 0x04020005, + 0x0201f800, 0x00104b4e, 0x80c589c0, 0x0400006c, + 0x59c4d0a3, 0x8268d500, 0xbe7fffff, 0x486b88a3, + 0x4200d000, 0x000000f8, 0x0201f800, 0x00103edf, + 0x59c4d0a3, 0x8268d540, 0x00018000, 0x8468d51c, + 0x486b88a3, 0x59c4d0a3, 0x8468d520, 0x486b88a3, + 0x4a038808, 0x00000200, 0x59c4d006, 0x8268d500, + 0xfbffff0e, 0x486b8806, 0x497b282c, 0x497b282d, + 0x4200d000, 0x000001f4, 0x4200d800, 0x0010fcf1, + 0x0201f800, 0x00105cdb, 0x4a038805, 0x00000001, + 0x0201f800, 0x001016a9, 0x80c589c0, 0x04020023, + 0x0201f800, 0x001016b4, 0x80c589c0, 0x04000035, + 0x4178d000, 0x0201f800, 0x0010189f, 0x4178d000, + 0x0201f800, 0x00101875, 0x0201f800, 0x001018ff, + 0x4a03503c, 0x00000001, 0x0201f800, 0x00104b38, + 0x80c589c0, 0x04000018, 0x59c4d0a4, 0x8268d500, + 0x0000000f, 0x82697480, 0x00000008, 0x04000003, + 0x4a038805, 0x04000000, 0x59c4d0a3, 0x8268d540, + 0x0001c000, 0x486b88a3, 0x59c4d0a3, 0x8468d520, + 0x486b88a3, 0x0401f077, 0x4200d000, 0x00000001, + 0x0201f800, 0x0010189f, 0x4200d000, 0x00000001, + 0x0401f7e0, 0x0201f800, 0x00104b4e, 0x80c589c0, + 0x040207e6, 0x0201f800, 0x00104b43, 0x4200d000, + 0x000001a9, 0x80c589c0, 0x04020052, 0x599cd818, + 0x40c4e000, 0x0201f800, 0x001001ec, 0x0401f061, + 0x0201f800, 0x001016bf, 0x80c589c0, 0x04020030, + 0x0201f800, 0x001016ca, 0x80c589c0, 0x04000039, + 0x4200d000, 0x00000003, 0x0201f800, 0x0010189f, + 0x4200d000, 0x00000003, 0x0401f7c2, 0x0201f800, + 0x00104b43, 0x4200d000, 0x00000156, 0x80c589c0, + 0x040007e7, 0x59c4d0a3, 0x8468d570, 0x8468d532, + 0x486b88a3, 0x0201f800, 0x00104e7f, 0x4a038808, + 0x00000208, 0x0401f799, 0x59a8d86f, 0x826d0500, + 0x00000007, 0x04020019, 0x59a8d03b, 0x82697480, + 0x00000002, 0x04000018, 0x0201f800, 0x0010186c, + 0x4883503a, 0x0201f800, 0x00101c55, 0x4a035048, + 0x00000003, 0x4a03503b, 0x00000002, 0x4a035047, + 0x00000001, 0x59a8d86f, 0x0401f00b, 0x4200d000, + 0x00000002, 0x0201f800, 0x0010189f, 0x4200d000, + 0x00000002, 0x0401f797, 0x82817480, 0x00000004, + 0x04000019, 0x806cd000, 0x486b506f, 0x0401f754, + 0x0201f800, 0x001016d5, 0x80c589c0, 0x0400000e, + 0x59a8d047, 0x8068d1c0, 0x0400078c, 0x0201f800, + 0x001016df, 0x4a03503c, 0x00000001, 0x0401f015, + 0x4a035014, 0x00000001, 0x0201f800, 0x00104ab0, + 0x0401f010, 0x4200d000, 0x0000018a, 0x59a8d83b, + 0x0401f7a8, 0x497b2804, 0x497b2805, 0x0201f800, + 0x00101c64, 0x4a035047, 0x00000001, 0x4a035048, + 0xaabbccdd, 0x4883503b, 0x59a8d86f, 0x0401f7de, + 0x589d0000, 0x809d3800, 0x1c01f000, 0x5994d02c, + 0x8068d1c0, 0x04020006, 0x5994d02d, 0x4200d800, + 0x00000001, 0x8068d1c0, 0x04000002, 0x4178d800, + 0x406d8800, 0x1c01f000, 0x0201f800, 0x0010186c, + 0x4a03503c, 0x00000002, 0x497b5047, 0x59c4d0a3, + 0x8468d520, 0x486b88a3, 0x0201f800, 0x00103704, + 0x80c589c0, 0x04000002, 0x0401f00d, 0x0201f800, + 0x00104b43, 0x80c589c0, 0x040207fc, 0x48c7282c, + 0x48c7282d, 0x4200d000, 0x0000002d, 0x4200d800, + 0x0010fcf1, 0x0201f800, 0x00105cdb, 0x1c01f000, + 0x0401ffdb, 0x80c589c0, 0x04000004, 0x4a03503c, + 0x00000003, 0x0401f01f, 0x0201f800, 0x001016d5, + 0x80c589c0, 0x04000004, 0x59a8d047, 0x8068d1c0, + 0x04020008, 0x0201f800, 0x001018ce, 0x80c589c0, + 0x04020002, 0x0401f013, 0x0401ffd4, 0x0401f011, + 0x0201f800, 0x001016df, 0x59a8d046, 0x8c68d51e, + 0x040007f9, 0x0201f800, 0x00104b43, 0x80c589c0, + 0x04020003, 0x0401ffc9, 0x0401f006, 0x4a035014, + 0x00000001, 0x0201f800, 0x00104ab0, 0x0401f7fa, + 0x1c01f000, 0x4202d800, 0x00000001, 0x497b503c, + 0x4a038805, 0x00000001, 0x497b282c, 0x497b282d, + 0x497b8885, 0x1c01f000, 0x59c4d005, 0x8268d500, + 0x000000c0, 0x04020003, 0x486b8885, 0x0401f006, + 0x59c4d006, 0x8268d540, 0x000000f1, 0x486b8806, + 0x0401ffed, 0x1c01f000, 0x0201f800, 0x00104b4e, + 0x80c589c0, 0x04000005, 0x59a8d013, 0x82697480, + 0x0000aaaa, 0x0400000c, 0x497b5013, 0x59c4d006, + 0x8268d540, 0x04000001, 0x486b8806, 0x8d0e1d06, + 0x04020008, 0x59c4d0a3, 0x8468d546, 0x486b88a3, + 0x0401f004, 0x4a03500f, 0x00ffffff, 0x0401f7f3, + 0x0401ffd5, 0x1c01f000, 0x809d3840, 0x48813800, + 0x0401ff87, 0x80c589c0, 0x04000005, 0x4a03503c, + 0x00000003, 0x497b8885, 0x0401f08b, 0x4a038805, + 0x000000f0, 0x0201f800, 0x001018ce, 0x80c589c0, + 0x04000042, 0x0201f800, 0x00101af6, 0x80c589c0, + 0x04000048, 0x59a8d04f, 0x8c68d50c, 0x0400005e, + 0x0201f800, 0x00101af6, 0x80c589c0, 0x0402000b, + 0x4a03c014, 0x00200020, 0x59c4d001, 0x8268d500, + 0x00018000, 0x82697480, 0x00018000, 0x0400005f, + 0x4a03c013, 0x00200000, 0x0201f800, 0x00104b43, + 0x80c589c0, 0x0402004a, 0x59c4d0a4, 0x8268d500, + 0x0000000f, 0x82697480, 0x00000008, 0x0400002b, + 0x59c4d005, 0x82690500, 0x04000000, 0x8c68d534, + 0x04020026, 0x5994d02c, 0x82697480, 0x00000002, + 0x83f17500, 0x03000000, 0x040007cf, 0x0201f800, + 0x00104b4e, 0x80c589c0, 0x040007cb, 0x4a038805, + 0x000000f0, 0x0201f800, 0x00104b82, 0x4a035013, + 0x0000aaaa, 0x48835014, 0x59c4d0a3, 0x8468d546, + 0x486b88a3, 0x4202d800, 0x00000001, 0x4883503c, + 0x4a038805, 0x00000001, 0x4883282c, 0x4883282d, + 0x0401ff8e, 0x0401f7b8, 0x0201f800, 0x001016d5, + 0x80c589c0, 0x040007b4, 0x59a8d047, 0x8068d1c0, + 0x040007b1, 0x0401f7ae, 0x0401ff90, 0x0401f7ae, + 0x0201f800, 0x00101acc, 0x80c589c0, 0x040007b6, + 0x0201f800, 0x00101ada, 0x80c589c0, 0x04000022, + 0x0201f800, 0x001016ca, 0x80c589c0, 0x0400002a, + 0x59a8d048, 0x42000000, 0xaabbccdd, 0x80697480, + 0x04000004, 0x82697480, 0x00000004, 0x040207a6, + 0x4a03503c, 0x00000003, 0x0401f023, 0x0401ff6b, + 0x0401f021, 0x4200d000, 0x00009c0e, 0x4200d800, + 0xffffffef, 0x0201f800, 0x0010ebf0, 0x4200d000, + 0x00009c0e, 0x4200d800, 0x00000008, 0x0201f800, + 0x0010ec02, 0x0401f797, 0x4a03c013, 0x00200020, + 0x0401f7a2, 0x0201f800, 0x001016a9, 0x80c589c0, + 0x0400000b, 0x59a8d048, 0x42000000, 0xaabbccdd, + 0x80697480, 0x040007e3, 0x8068d1c0, 0x04020786, + 0x0401f7e0, 0x59a8d048, 0x0401f7db, 0x59a8d048, + 0x0401f7fa, 0x589d0000, 0x809d3800, 0x1c01f000, + 0x497bc856, 0x4200d000, 0x00000080, 0x0201f800, + 0x001015d0, 0x497b503c, 0x0201f800, 0x001016d5, + 0x80c589c0, 0x0400000e, 0x59a8d03a, 0x8068d1c0, + 0x04020008, 0x8068d1c0, 0x04020009, 0x4a03503a, + 0x0000000a, 0x4a035047, 0x00000001, 0x0401f004, + 0x8068d040, 0x486b503a, 0x0401f7f7, 0x497b8885, + 0x0201f800, 0x001003c3, 0x1c01f000, 0x4200e000, + 0x00000003, 0x59a8003c, 0x80717480, 0x04001006, + 0x0c01f001, 0x0010fceb, 0x0010fced, 0x0010fcef, + 0x0010fce9, 0x4200d000, 0x000000cb, 0x4000d800, + 0x0201f800, 0x001001ec, 0x0401f008, 0x0401ffd5, + 0x0401f006, 0x0401fddb, 0x0401f004, 0x0401fee9, + 0x0401f002, 0x0401ff39, 0x1c01f000, 0x497b282d, + 0x1c01f000, 0x0201f800, 0x00103704, 0x80c589c0, + 0x04000007, 0x599cd019, 0x8268d500, 0x0000e000, + 0x82697480, 0x00004000, 0x04000003, 0x4178d000, + 0x0401f024, 0x59c4d001, 0x8268d500, 0x00018000, + 0x82697480, 0x00010000, 0x040207f9, 0x59a8d070, + 0x82697480, 0x00000002, 0x83f17500, 0x03000000, + 0x040007f3, 0x0201f800, 0x00101c64, 0x4a035047, + 0x00000001, 0x4a035048, 0xaabbccdd, 0x4a03503b, + 0x00000004, 0x497b503c, 0x4202d800, 0x00000004, + 0x59a8d070, 0x8068d000, 0x486b5070, 0x59a8d06f, + 0x8268d500, 0xfffffff8, 0x8468d544, 0x486b506f, + 0x0201f800, 0x0010040a, 0x4200d000, 0x00000001, + 0x40698800, 0x1c01f000, 0x809d3840, 0x48813800, + 0x59a8d017, 0x82697480, 0x0000ffff, 0x04000004, + 0x0201f800, 0x00101e1b, 0x0401f0eb, 0x0201f800, + 0x0010a37c, 0x80c57040, 0x04000099, 0x59a8da1b, + 0x826cd500, 0x00000028, 0x04020046, 0x8c6cdd08, + 0x0400006c, 0x599cd019, 0x8c68d510, 0x04020003, + 0x8c6cdd16, 0x04000083, 0x0201f800, 0x001044c9, 0x80c589c0, 0x0402003a, 0x599cd019, 0x8c68d510, - 0x0400003f, 0x59a8d21b, 0x8c68d508, 0x0400003c, - 0x4a038802, 0x0000ffff, 0x4200d000, 0x0010ac60, - 0x0201f800, 0x00100516, 0x4200d000, 0x0010ac6d, + 0x04000064, 0x59a8d21b, 0x8c68d508, 0x04000061, + 0x4a038802, 0x0000ffff, 0x4200d000, 0x0010aee0, + 0x0201f800, 0x00100516, 0x4200d000, 0x0010aeed, 0x0201f800, 0x00100516, 0x850e1d02, 0x4a01a8e4, 0x00000080, 0x4202d800, 0x00000003, 0x4a035017, 0x0000ffff, 0x0201f800, 0x001003f1, 0x4178d000, - 0x0201f800, 0x001015d2, 0x497b5070, 0x59a8d21b, - 0x8c68d506, 0x04000046, 0x599cd018, 0x8268dd00, - 0x00000800, 0x8c68d516, 0x04020048, 0x599cd019, + 0x0201f800, 0x001015d0, 0x497b5070, 0x59a8d21b, + 0x8c68d506, 0x04000094, 0x599cd018, 0x8268dd00, + 0x00000800, 0x8c68d516, 0x0402008c, 0x599cd019, 0x8c68d510, 0x04000004, 0x59a8d21b, 0x8c68d508, - 0x0402004a, 0x417a4000, 0x4200d000, 0x0000ffff, + 0x04020090, 0x417a4000, 0x4200d000, 0x0000ffff, 0x4200d800, 0x00000006, 0x4120e000, 0x0201f800, - 0x00103571, 0x0201f800, 0x00104a49, 0x80c589c0, - 0x04000020, 0x0201f800, 0x00106312, 0x0401f04c, - 0x59a8d016, 0x8068d1c0, 0x040007c0, 0x0401f048, - 0x8c6cdd16, 0x040207bd, 0x0401f045, 0x599cd018, - 0x8c68d516, 0x0400001d, 0x599cd017, 0x8c68d50a, - 0x040007c0, 0x4200b000, 0x000007f0, 0x417a8800, - 0x0401f004, 0x81468800, 0x8058b040, 0x040007b9, - 0x0201f800, 0x001041cf, 0x80c589c0, 0x040007fa, - 0x5934d200, 0x8c68d51a, 0x040007f7, 0x0401f030, - 0x0201f800, 0x00104a28, 0x80c589c0, 0x04000016, - 0x59c4d006, 0x8468d534, 0x486b8806, 0x0201f800, - 0x00106312, 0x0401f7da, 0x0201f800, 0x00104708, - 0x80c589c0, 0x040007e1, 0x0401f021, 0x0201f800, - 0x00104a28, 0x80c589c0, 0x040207b8, 0x59a8d21b, - 0x486b541b, 0x0401f7b5, 0x0201f800, 0x001035cc, - 0x0401f7c5, 0x59c4d006, 0x8268d500, 0xffffff0f, - 0x486b8806, 0x0401f7ea, 0x406e4000, 0x4200d000, - 0x000007fe, 0x4200d800, 0x00000004, 0x0401f7b7, - 0x0201f800, 0x00101edf, 0x0401f75c, 0x8c6cdd04, - 0x04020776, 0x826cd500, 0x00004000, 0x8c6cdd1c, - 0x04020772, 0x406a5800, 0x0401f765, 0x589d0000, - 0x809d3800, 0x1c01f000, 0x809d3840, 0x48813800, - 0x59c4d00d, 0x8c68d51e, 0x04020004, 0x59c4d005, - 0x8c68d500, 0x0400000c, 0x0201f800, 0x00100403, - 0x0201f800, 0x00104a28, 0x80c589c0, 0x0400000f, - 0x0201f800, 0x001049ab, 0x816d7040, 0x040000a5, - 0x0401f11c, 0x4a035047, 0x00000001, 0x4202d800, - 0x00000004, 0x4200d000, 0x0010b0c0, 0x0201f800, - 0x00109f94, 0x0401f113, 0x0201f800, 0x00104a49, - 0x80c589c0, 0x0402008d, 0x0201f800, 0x001037ef, - 0x59c4d0a4, 0x8268d500, 0x0000000f, 0x82697480, - 0x00000006, 0x83f17500, 0x03000000, 0x040007e9, - 0x0201f800, 0x00105c8d, 0x59c4d0a3, 0x8468d528, - 0x486b88a3, 0x59a8d07d, 0x8068d1c0, 0x040000bc, - 0x59a8d015, 0x8468d546, 0x486b5015, 0x0201f800, - 0x00104a33, 0x80c589c0, 0x040200bc, 0x59c4d006, - 0x8268d540, 0x440000f1, 0x486b8806, 0x497b9005, - 0x0401fec2, 0x80c589c0, 0x040207d2, 0x40c4d000, - 0x0201f800, 0x00104809, 0x4a038802, 0x0000ffff, - 0x4a0378e4, 0x00003000, 0x4200d000, 0x0010ac7b, - 0x5868d400, 0x8c68d508, 0x04020003, 0x4a01a8e4, - 0x0000c000, 0x4200d000, 0x0010af99, 0x0201f800, - 0x00109f94, 0x59a8d00f, 0x4200d800, 0x00000003, - 0x0201f800, 0x00105faa, 0x4200d000, 0x00008010, - 0x59a8d809, 0x0201f800, 0x00103500, 0x59c4d001, - 0x8268d500, 0x00018000, 0x82697480, 0x00018000, - 0x040000a6, 0x59c4d0a3, 0x8468d518, 0x486b88a3, - 0x59c8d015, 0x8468d548, 0x486b9015, 0x0201f800, - 0x0010186b, 0x59a8d008, 0x8468d500, 0x486b5008, - 0x850e1d0a, 0x0201f800, 0x0010f748, 0x0201f800, - 0x00104a28, 0x80c589c0, 0x04020003, 0x8d0e1d06, - 0x0402009f, 0x0201f800, 0x001043ef, 0x80c589c0, - 0x04000091, 0x59c4d002, 0x8468d50c, 0x486b8802, - 0x497b501d, 0x497b501c, 0x497b5074, 0x0201f800, - 0x00104a28, 0x80c589c0, 0x04000078, 0x497b521b, - 0x0201f800, 0x00101671, 0x59a8d01f, 0x82680500, - 0xffff0000, 0x80c4d540, 0x486b501f, 0x599cd017, - 0x8c68d50a, 0x04000004, 0x59a8d21b, 0x8468d544, - 0x486b521b, 0x4200d000, 0x00000005, 0x0201f800, - 0x001064b2, 0x497b501d, 0x497b5016, 0x4a035017, - 0x0000ffff, 0x4a01a8e4, 0x000000c0, 0x4202d800, - 0x00000002, 0x0201f800, 0x00104a28, 0x80c589c0, - 0x04020007, 0x59a8d21b, 0x8268d500, 0x0000000c, - 0x82697480, 0x00000004, 0x0400076a, 0x0201f800, - 0x00101de7, 0x0401f083, 0x5994d02d, 0x42000000, - 0x00103df8, 0x80697480, 0x04000040, 0x59c4d006, - 0x8268d540, 0x000000c0, 0x486b8806, 0x0401f76b, - 0x59a8d011, 0x82697480, 0x00000009, 0x04020759, - 0x497b500f, 0x0201f800, 0x0010a0b2, 0x42024800, - 0x0010b111, 0x497a4805, 0x0401f00a, 0x5924d200, - 0x8c68d500, 0x04000004, 0x8268d500, 0xfffff815, - 0x486a4a00, 0x83264c00, 0x0000000b, 0x8058b040, - 0x8058b1c0, 0x040207f6, 0x4a038893, 0x00000001, - 0x4a038805, 0x000000f0, 0x0201f800, 0x00104a3e, - 0x80c589c0, 0x04000031, 0x59c4d006, 0x8268d540, - 0x000000f1, 0x486b8806, 0x59c4d006, 0x8268d500, - 0xbbffffff, 0x486b8806, 0x0201f800, 0x00105c8d, - 0x0201f800, 0x00105fc3, 0x0401fe20, 0x40c50000, - 0x80c589c0, 0x0402072f, 0x4200d000, 0x0010afa2, - 0x0201f800, 0x00109f94, 0x48835073, 0x4200d000, - 0x00008030, 0x4080d800, 0x0401f76f, 0x0201f800, - 0x00103d4c, 0x0401f03f, 0x5994d02c, 0x8068d1c0, - 0x0402072e, 0x0401f7be, 0x59c4d006, 0x8268d540, - 0x44000001, 0x486b8806, 0x59c4d006, 0x8268d500, - 0xffffff0f, 0x0401f741, 0x59a8d01f, 0x8268d500, - 0xffff0000, 0x486b501f, 0x0201f800, 0x00101671, - 0x48c78880, 0x0401f78a, 0x59c4d006, 0x8268d540, - 0x440000f1, 0x0401f7d4, 0x59c4d0a3, 0x8468d558, - 0x0401f75b, 0x0201f800, 0x00104a28, 0x80c589c0, - 0x0400000d, 0x59a8d018, 0x8068d1c0, 0x0402076d, - 0x0201f800, 0x001086c6, 0x0401f76a, 0x4a035073, - 0x00000001, 0x850e1d0e, 0x0201f800, 0x00103911, - 0x0401f014, 0x0201f800, 0x001086c6, 0x59a8d21b, - 0x8c68d506, 0x0402075f, 0x59a8d018, 0x8068d1c0, - 0x04020007, 0x59a8d41b, 0x8c68d508, 0x04000759, - 0x82697480, 0x0000ffff, 0x04000756, 0x4a03541b, - 0x0000ffff, 0x0201f800, 0x00103e51, 0x0401f751, - 0x589d0000, 0x809d3800, 0x1c01f000, 0x809d3840, - 0x48a13800, 0x829d3c80, 0x00000005, 0x409d4000, - 0x829d3c80, 0x00000007, 0x48813800, 0x48853801, - 0x48893802, 0x488d3803, 0x48913804, 0x48953805, - 0x48993806, 0x4200e000, 0x00000001, 0x48714000, - 0x4178e000, 0x48714003, 0x48714004, 0x48594001, - 0x49214002, 0x82691d00, 0x00ffffff, 0x826d3500, - 0x00ffffff, 0x828cd500, 0x00ff0000, 0x82697480, - 0x00ff0000, 0x0400005e, 0x41792800, 0x4200b000, - 0x000007f0, 0x41ad0800, 0x40951000, 0x828d2500, - 0x00ffff00, 0x0401f00f, 0x809121c0, 0x04000032, - 0x59a8d00f, 0x8268d500, 0x00ffff00, 0x40900000, - 0x80697480, 0x0400002c, 0x4178e000, 0x48714004, - 0x80850800, 0x80891000, 0x8058b040, 0x04000021, - 0x58850000, 0x808101c0, 0x04000036, 0x5880d212, - 0x8268d500, 0x0000ff00, 0x040207ec, 0x5880d002, - 0x8268d500, 0x00ffffff, 0x408c0000, 0x80697480, - 0x040207f0, 0x4098d000, 0x0201f800, 0x00101f38, - 0x5880d813, 0x806cd130, 0x41200000, 0x80697480, - 0x040207e8, 0x4200e000, 0x00000001, 0x48714004, - 0x5924d005, 0x826c0500, 0x00ffffff, 0x80697480, - 0x04000004, 0x812000f0, 0x8068d540, 0x48690013, - 0x58a0d004, 0x8068d1c0, 0x04000020, 0x408a8800, - 0x0401f048, 0x5880d002, 0x8268d500, 0x000000ff, - 0x828c0500, 0x000000ff, 0x80697480, 0x040207d1, - 0x4098d000, 0x0201f800, 0x00101f38, 0x5880d813, - 0x806cd130, 0x41200000, 0x80697480, 0x040207c9, - 0x4200d000, 0x00000001, 0x48694004, 0x0401f7e1, - 0x809529c0, 0x040207c3, 0x58a0e003, 0x8070e1c0, - 0x040207c0, 0x40892800, 0x4200d000, 0x00000001, - 0x48694003, 0x0401f7bb, 0x58a0e003, 0x8070e1c0, - 0x04000018, 0x40968800, 0x0401f026, 0x828d7480, - 0x00fffffb, 0x040007a1, 0x040017a0, 0x828d7480, - 0x00ffffff, 0x0400079d, 0x828d7480, 0x00fffffd, - 0x0400001a, 0x828d7480, 0x00fffffd, 0x83f17500, - 0x03000000, 0x0400000c, 0x828d7480, 0x00fffffc, - 0x0400000f, 0x4178d000, 0x48694000, 0x0401f011, - 0x488fc857, 0x489bc857, 0x58a0d003, 0x48694000, - 0x0401f00c, 0x828d7480, 0x00fffffe, 0x040207f6, - 0x42028800, 0x000007fe, 0x0401f006, 0x42028800, - 0x000007fc, 0x0401f003, 0x42028800, 0x000007fd, - 0x58a24002, 0x58a0b001, 0x58a18800, 0x589d3006, - 0x589d2805, 0x589d2004, 0x589d1803, 0x589d1002, - 0x589d0801, 0x589d0000, 0x829d3c00, 0x0000000c, - 0x589d4000, 0x809d3800, 0x1c01f000, 0x486bc857, - 0x0401ff4f, 0x1c01f000, 0x00000000, 0x00000001, - 0x00000002, 0x00000003, 0x00000004, 0x00000005, - 0x00000006, 0x00000007, 0x00000008, 0x00000009, - 0x0000000a, 0x0000000b, 0x0000000c, 0x0000000d, - 0x0000000e, 0x0000000f, 0xab44c07c, 0x02800004, - 0x00000000, 0x0000c000, 0x0000093b, 0x073fca5a, - 0x0705a5a5, 0x01928009, 0x070ff0e1, 0x03800006, - 0x053f2aaa, 0x070aaaaa, 0x073f3aaa, 0x070aaaaa, - 0x05958014, 0x05308000, 0x05008000, 0x0600902f, - 0x06a006b3, 0x0202f051, 0x042e4020, 0x008f02b0, - 0x033e5000, 0x03020000, 0x078d0024, 0x069305c2, - 0x029205c4, 0x050fb056, 0x040010e6, 0x002fb008, - 0x060ff0e6, 0x00580401, 0x054880ff, 0x07810022, - 0x018c0412, 0x018a0411, 0x058b040f, 0x079f0028, - 0x0098085b, 0x079f0028, 0x05990859, 0x058e8014, - 0x0678aae5, 0x06000051, 0x068181ce, 0x079a0014, - 0x022a5001, 0x030430d4, 0x06780043, 0x030e0000, - 0x030450ff, 0x06780043, 0x03019000, 0x02a1820b, - 0x078187f0, 0x027c0045, 0x03020000, 0x058180fc, - 0x05908039, 0x019107ee, 0x010410a6, 0x072d6000, - 0x05601041, 0x050f80ff, 0x032fa071, 0x070ff0d1, - 0x055c0403, 0x034a88ff, 0x06818808, 0x038000f0, - 0x07480000, 0x058107fa, 0x05481000, 0x05818050, - 0x06780043, 0x070000f0, 0x0681005b, 0x037c00ff, - 0x06000010, 0x078187f6, 0x0280005b, 0x06780043, - 0x070000f0, 0x037c00ff, 0x07000030, 0x0681005b, - 0x06780043, 0x070000f0, 0x037c00ff, 0x06000020, - 0x0681005b, 0x018007f6, 0x0379ff00, 0x070fffff, - 0x06780043, 0x07f00000, 0x075a0000, 0x020ef001, - 0x008607f8, 0x05484000, 0x03a1822e, 0x03680c00, - 0x07818822, 0x062d6002, 0x002fb001, 0x070ff069, - 0x00868070, 0x060ff079, 0x055c0441, 0x07810014, - 0x012fb000, 0x060560fb, 0x02800076, 0x060ff079, - 0x03868209, 0x070ff069, 0x055c0441, 0x07810014, - 0x060560fb, 0x070ff0d1, 0x062d6001, 0x055c040c, - 0x058180d7, 0x070ff0d1, 0x045c040d, 0x054b08ff, - 0x058180e1, 0x0007b001, 0x03079041, 0x0307a000, - 0x07489000, 0x07818103, 0x068d0083, 0x0207c004, - 0x0107d005, 0x0107e006, 0x0207f007, 0x02080008, - 0x01081009, 0x0108200a, 0x0208300b, 0x0186809a, - 0x0448d07a, 0x0581809a, 0x0448b07a, 0x04810801, - 0x0049707a, 0x0581809a, 0x04604679, 0x050f80ff, - 0x053fa809, 0x06000001, 0x01680703, 0x076c0303, - 0x06818801, 0x072d5003, 0x0049107a, 0x068100a4, - 0x070ff00a, 0x0054040b, 0x058280a3, 0x078d00a0, - 0x0008200b, 0x032ff000, 0x010770ff, 0x0108400c, - 0x0208500d, 0x0678007a, 0x06000008, 0x078100b7, - 0x078d00a9, 0x04603e79, 0x050f80ff, 0x073fa041, - 0x0600004a, 0x0049707a, 0x02a188b9, 0x068d00b0, - 0x0678007a, 0x07f00000, 0x010880ff, 0x02386008, - 0x03010000, 0x038000bd, 0x078d00b7, 0x0678007a, - 0x07f00000, 0x010880ff, 0x03386000, 0x03010000, - 0x072e6300, 0x020ef07f, 0x03860014, 0x070ff07d, - 0x0450047c, 0x050f80ff, 0x002fa819, 0x068d00c4, - 0x02080001, 0x00081002, 0x0678007a, 0x05000200, - 0x078100cc, 0x0049107a, 0x03a18227, 0x01082003, - 0x068d00cd, 0x0448b07a, 0x068100d3, 0x0338600c, - 0x03010000, 0x028000d5, 0x02386004, 0x03010000, - 0x072e6c00, 0x03800014, 0x062d6001, 0x07f00000, - 0x07f00000, 0x0400e0d0, 0x0648300e, 0x0681007a, - 0x072e500c, 0x00208001, 0x07a006b8, 0x03800014, - 0x06780043, 0x070000f0, 0x05810803, 0x050020ff, - 0x027c0002, 0x06000010, 0x068100ec, 0x027c0002, - 0x07000030, 0x068100ec, 0x01800803, 0x0500d0d1, - 0x0279ff0d, 0x070000ff, 0x0380007e, 0x020ef002, - 0x018607e8, 0x04602602, 0x050f80ff, 0x053fa809, - 0x06000008, 0x060ff0d0, 0x055c0411, 0x0179feff, - 0x0700ffff, 0x078187e8, 0x02800045, 0x027c0045, - 0x03040000, 0x0581010c, 0x027c0045, 0x03080000, - 0x058107ee, 0x03800039, 0x06600a79, 0x050f80ff, - 0x053fa80a, 0x06000010, 0x02800083, 0x05601041, - 0x050f80ff, 0x032fa071, 0x02800045, 0x0204a051, - 0x06780043, 0x070000f0, 0x037c00ff, 0x06000010, - 0x068181bf, 0x072d6000, 0x029487ea, 0x050fb056, - 0x044880e6, 0x05818014, 0x060ff0d0, 0x0179feff, - 0x0700ffff, 0x057dfeff, 0x0700ffff, 0x058107e8, - 0x053f2000, 0x07030000, 0x019d8014, 0x070ff093, - 0x045a0201, 0x070ff093, 0x045c0401, 0x06818120, - 0x02046092, 0x04002046, 0x060ff002, 0x045c0401, - 0x0703a0ff, 0x04600202, 0x00540401, 0x0782812e, - 0x04500425, 0x070060ff, 0x0730ffff, 0x0700000f, - 0x0742000f, 0x04810201, 0x04a007d0, 0x0648a002, - 0x06818131, 0x00047089, 0x070ff047, 0x045c0443, - 0x077800ff, 0x07f00000, 0x078181ff, 0x07780047, - 0x0500e000, 0x078187d7, 0x070ff006, 0x00860164, - 0x0179fe47, 0x0700000f, 0x010480ff, 0x056c7048, - 0x0681814a, 0x007a0d4a, 0x04003801, 0x0220f001, - 0x00800157, 0x07608e48, 0x034a60ff, 0x0700f0ff, - 0x074b88ff, 0x037000ff, 0x07000600, 0x05500448, - 0x074d00ff, 0x045a044a, 0x0304a0ff, 0x070ff00f, - 0x01540406, 0x04820164, 0x0595016c, 0x05a0024e, - 0x0386816f, 0x06780043, 0x070000f0, 0x037c00ff, - 0x07000030, 0x0581016a, 0x0134bfff, 0x070fffff, - 0x0104102e, 0x050fd041, 0x01800178, 0x0595016a, - 0x05a0024e, 0x0186016a, 0x0202f00e, 0x052e4030, - 0x040fd02f, 0x04a002ad, 0x03800014, 0x0400e02f, - 0x042e4020, 0x0202f051, 0x0004100e, 0x0004b00e, - 0x004980e5, 0x07818178, 0x06780043, 0x070000f0, - 0x037c00ff, 0x07000030, 0x0481081f, 0x024a6c46, - 0x04500423, 0x050070ff, 0x03620024, 0x050080ff, - 0x04004046, 0x0700500f, 0x03206000, 0x05601048, - 0x0700a0ff, 0x0700900a, 0x070ff005, 0x04500446, - 0x00540425, 0x048201ab, 0x07601822, 0x050f80ff, - 0x063fa032, 0x06000002, 0x03203000, 0x01204000, - 0x03205000, 0x0120b000, 0x0320c000, 0x07601841, - 0x050f80ff, 0x043fa852, 0x06000001, 0x070ff056, - 0x056c02ff, 0x050fb0ff, 0x070560ff, 0x03079041, - 0x05601041, 0x050f80ff, 0x073fa011, 0x0600003d, - 0x06780043, 0x07f00000, 0x065a007a, 0x010880ff, - 0x033e5000, 0x05002000, 0x05a00247, 0x048d01a4, - 0x0208a04a, 0x0108b04b, 0x02386001, 0x03010000, - 0x072e6300, 0x038000be, 0x0500d00a, 0x05500405, - 0x014a68ff, 0x070090ff, 0x0154040a, 0x0700c0ff, - 0x0600a023, 0x0500b024, 0x02206001, 0x07601822, - 0x050f80ff, 0x063fa04a, 0x06000002, 0x07f00000, - 0x07601222, 0x050f80ff, 0x043fa819, 0x06000001, - 0x0600a00d, 0x0180018e, 0x06780043, 0x070000f0, - 0x050010ff, 0x027c0001, 0x07000030, 0x058101c9, - 0x027c0001, 0x06000020, 0x058107de, 0x018007f6, - 0x0548e0e4, 0x058107de, 0x0334a000, 0x03080000, - 0x01800112, 0x074860ff, 0x068181ea, 0x054880ff, - 0x07810014, 0x070ff056, 0x050fb0ff, 0x044880e5, - 0x048101d9, 0x044880e6, 0x05818014, 0x008001df, - 0x056c02ff, 0x050fb0ff, 0x070560ff, 0x072e5300, - 0x044880e6, 0x05818014, 0x072d5003, 0x06780043, - 0x07f00000, 0x010880ff, 0x048d01e3, 0x03386005, - 0x03010000, 0x033e6000, 0x0700000c, 0x052e5200, - 0x03800014, 0x079a0014, 0x05301fff, 0x0700000f, - 0x06420001, 0x04810201, 0x04a007d0, 0x0648a002, - 0x078181ed, 0x062e5080, 0x04001089, 0x040fd002, - 0x040fd001, 0x02499001, 0x04810220, 0x070ff0d4, - 0x050fd0ff, 0x045c0401, 0x077800ff, 0x07f00000, - 0x06818220, 0x03800014, 0x012091ff, 0x038006bb, - 0x00209201, 0x038006bb, 0x01209203, 0x038006bb, - 0x03209000, 0x038006bb, 0x00209207, 0x038006bb, - 0x01209209, 0x038006bb, 0x06780043, 0x07009000, - 0x06818216, 0x00498043, 0x04810216, 0x0648a0e5, - 0x05810217, 0x027c0045, 0x03040000, 0x04810219, - 0x075c00ff, 0x07c00000, 0x056a02ff, 0x00800216, - 0x00800215, 0x06780075, 0x06000c07, 0x04810720, - 0x0020921a, 0x070fc0ff, 0x07a006a6, 0x070fc0ff, - 0x05308000, 0x0700a000, 0x07a006b8, 0x033e5000, - 0x0700000c, 0x03800014, 0x070ff003, 0x01540477, - 0x0682822c, 0x07003077, 0x060ff051, 0x010770ff, - 0x07c00000, 0x04602001, 0x050f80ff, 0x063fa029, - 0x06000008, 0x02015010, 0x02016051, 0x00017051, - 0x00011051, 0x07601e41, 0x050f80ff, 0x053fa83a, - 0x06000008, 0x07f00000, 0x05601041, 0x050f80ff, - 0x01464000, 0x032fa00a, 0x05007011, 0x05008012, - 0x06009013, 0x0700a014, 0x0400b015, 0x0600c016, - 0x0500d017, 0x07c00000, 0x072d5003, 0x06601879, - 0x050f80ff, 0x048d024a, 0x063fa051, 0x0600003e, - 0x07c00000, 0x06005051, 0x0400e02c, 0x0660060e, + 0x0010363c, 0x0201f800, 0x00104b4e, 0x80c589c0, + 0x04000049, 0x0201f800, 0x001064d4, 0x0401f09e, + 0x8c6cdd00, 0x040007ba, 0x4a038802, 0x0000ffbf, + 0x59a8da1b, 0x8c6cdd02, 0x040007b5, 0x599ce018, + 0x82710500, 0x00000800, 0x8c70e516, 0x04020051, + 0x59a8d01c, 0x82697480, 0x0000ffff, 0x0400004d, + 0x8c6cdd0a, 0x0402007a, 0x42024800, 0x0010b391, + 0x417a4000, 0x5924d200, 0x8268d500, 0x000000e0, + 0x82697480, 0x000000e0, 0x040207e5, 0x0201f800, + 0x00101c81, 0x59a8d21b, 0x8268dd00, 0x00000004, + 0x8c68d504, 0x040207de, 0x406e5800, 0x4200d000, + 0x00000003, 0x0201f800, 0x00101ca6, 0x0401f076, + 0x59a8d016, 0x8068d1c0, 0x04000798, 0x0401f072, + 0x599cd018, 0x8c68d516, 0x04000043, 0x599cd017, + 0x8c68d50a, 0x04020004, 0x59a8d006, 0x8c68d51c, + 0x04000798, 0x4200b000, 0x000007f0, 0x417a8800, + 0x0401f004, 0x81468800, 0x8058b040, 0x04000791, + 0x0201f800, 0x001042a5, 0x80c589c0, 0x040007fa, + 0x5934d200, 0x8c68d51a, 0x040007f7, 0x0401f05a, + 0x0401f059, 0x0201f800, 0x00104b2d, 0x80c589c0, + 0x0400003e, 0x59c4d006, 0x8468d534, 0x486b8806, + 0x0201f800, 0x001064d4, 0x0401f7b1, 0x0201f800, + 0x001044c9, 0x40c50000, 0x80c589c0, 0x040207ac, + 0x4202d800, 0x00000003, 0x0201f800, 0x001003f1, + 0x4080d000, 0x0201f800, 0x001015d0, 0x0401f042, + 0x8c70e516, 0x04020005, 0x59a8d01c, 0x82697480, + 0x0000ffff, 0x04000034, 0x59a8d01d, 0x8068d1c0, + 0x0402079b, 0x0201f800, 0x0010a386, 0x80c57040, + 0x04000003, 0x59a8da1b, 0x0401f751, 0x0201f800, + 0x001020a5, 0x80c57040, 0x04000791, 0x59a8da1b, + 0x0401f74b, 0x0201f800, 0x001047e7, 0x80c589c0, + 0x040007bb, 0x0401f028, 0x0201f800, 0x00103697, + 0x0401f781, 0x0201f800, 0x00104b2d, 0x80c589c0, + 0x0402076a, 0x59a8d21b, 0x486b541b, 0x0401f767, + 0x406e4000, 0x4200d000, 0x000007fe, 0x4200d800, + 0x00000004, 0x0401f771, 0x59c4d006, 0x8268d500, + 0xffffff0f, 0x486b8806, 0x0401f7c2, 0x0201f800, + 0x0010a386, 0x4200d000, 0x00000010, 0x80c57040, + 0x04000002, 0x4080d000, 0x0201f800, 0x00101f37, + 0x0401f77e, 0x8c6cdd04, 0x040207cc, 0x826cd500, + 0x00004000, 0x8c6cdd1c, 0x040207c8, 0x406a5800, + 0x0401f787, 0x589d0000, 0x809d3800, 0x1c01f000, + 0x809d3840, 0x48813800, 0x59c4d00d, 0x8c68d51e, + 0x04020004, 0x59c4d005, 0x8c68d500, 0x0400000c, + 0x0201f800, 0x00100403, 0x0201f800, 0x00104b2d, + 0x80c589c0, 0x0400000f, 0x0201f800, 0x00104ab0, + 0x816d7040, 0x040000a5, 0x0401f11c, 0x4a035047, + 0x00000001, 0x4202d800, 0x00000004, 0x4200d000, + 0x0010b340, 0x0201f800, 0x0010a244, 0x0401f113, + 0x0201f800, 0x00104b4e, 0x80c589c0, 0x0402008d, + 0x0201f800, 0x001038c2, 0x59c4d0a4, 0x8268d500, + 0x0000000f, 0x82697480, 0x00000006, 0x83f17500, + 0x03000000, 0x040007e9, 0x0201f800, 0x00105e4f, + 0x59c4d0a3, 0x8468d528, 0x486b88a3, 0x59a8d07d, + 0x8068d1c0, 0x040000bc, 0x59a8d015, 0x8468d546, + 0x486b5015, 0x0201f800, 0x00104b38, 0x80c589c0, + 0x040200bc, 0x59c4d006, 0x8268d540, 0x440000f1, + 0x486b8806, 0x497b9005, 0x0401fe9b, 0x80c589c0, + 0x040207d2, 0x40c4d000, 0x0201f800, 0x00104906, + 0x4a038802, 0x0000ffff, 0x4a0378e4, 0x00003000, + 0x4200d000, 0x0010aefb, 0x5868d400, 0x8c68d508, + 0x04020003, 0x4a01a8e4, 0x0000c000, 0x4200d000, + 0x0010b219, 0x0201f800, 0x0010a244, 0x59a8d00f, + 0x4200d800, 0x00000003, 0x0201f800, 0x0010616c, + 0x4200d000, 0x00008010, 0x59a8d809, 0x0201f800, + 0x001035cb, 0x59c4d001, 0x8268d500, 0x00018000, + 0x82697480, 0x00018000, 0x040000a6, 0x59c4d0a3, + 0x8468d518, 0x486b88a3, 0x59c8d015, 0x8468d548, + 0x486b9015, 0x0201f800, 0x0010186c, 0x59a8d008, + 0x8468d500, 0x486b5008, 0x850e1d0a, 0x0201f800, + 0x0010f943, 0x0201f800, 0x00104b2d, 0x80c589c0, + 0x04020003, 0x8d0e1d06, 0x0402009f, 0x0201f800, + 0x001044c9, 0x80c589c0, 0x04000091, 0x59c4d002, + 0x8468d50c, 0x486b8802, 0x497b501d, 0x497b501c, + 0x497b5074, 0x0201f800, 0x00104b2d, 0x80c589c0, + 0x04000078, 0x497b521b, 0x0201f800, 0x00101672, + 0x59a8d01f, 0x82680500, 0xffff0000, 0x80c4d540, + 0x486b501f, 0x599cd017, 0x8c68d50a, 0x04000004, + 0x59a8d21b, 0x8468d544, 0x486b521b, 0x4200d000, + 0x00000005, 0x0201f800, 0x00106674, 0x497b501d, + 0x497b5016, 0x4a035017, 0x0000ffff, 0x4a01a8e4, + 0x000000c0, 0x4202d800, 0x00000002, 0x0201f800, + 0x00104b2d, 0x80c589c0, 0x04020007, 0x59a8d21b, + 0x8268d500, 0x0000000c, 0x82697480, 0x00000004, + 0x0400076a, 0x0201f800, 0x00101e1b, 0x0401f083, + 0x5994d02d, 0x42000000, 0x00103ecb, 0x80697480, + 0x04000040, 0x59c4d006, 0x8268d540, 0x000000c0, + 0x486b8806, 0x0401f76b, 0x59a8d011, 0x82697480, + 0x00000009, 0x04020759, 0x497b500f, 0x0201f800, + 0x0010a362, 0x42024800, 0x0010b391, 0x497a4805, + 0x0401f00a, 0x5924d200, 0x8c68d500, 0x04000004, + 0x8268d500, 0xffffd815, 0x486a4a00, 0x83264c00, + 0x0000000b, 0x8058b040, 0x8058b1c0, 0x040207f6, + 0x4a038893, 0x00000001, 0x4a038805, 0x000000f0, + 0x0201f800, 0x00104b43, 0x80c589c0, 0x04000031, + 0x59c4d006, 0x8268d540, 0x000000f1, 0x486b8806, + 0x59c4d006, 0x8268d500, 0xbbffffff, 0x486b8806, + 0x0201f800, 0x00105e4f, 0x0201f800, 0x00106185, + 0x0401fdf9, 0x40c50000, 0x80c589c0, 0x0402072f, + 0x4200d000, 0x0010b222, 0x0201f800, 0x0010a244, + 0x48835073, 0x4200d000, 0x00008030, 0x4080d800, + 0x0401f76f, 0x0201f800, 0x00103e1f, 0x0401f03f, + 0x5994d02c, 0x8068d1c0, 0x0402072e, 0x0401f7be, + 0x59c4d006, 0x8268d540, 0x44000001, 0x486b8806, + 0x59c4d006, 0x8268d500, 0xffffff0f, 0x0401f741, + 0x59a8d01f, 0x8268d500, 0xffff0000, 0x486b501f, + 0x0201f800, 0x00101672, 0x48c78880, 0x0401f78a, + 0x59c4d006, 0x8268d540, 0x440000f1, 0x0401f7d4, + 0x59c4d0a3, 0x8468d558, 0x0401f75b, 0x0201f800, + 0x00104b2d, 0x80c589c0, 0x0400000d, 0x59a8d018, + 0x8068d1c0, 0x0402076d, 0x0201f800, 0x001088a7, + 0x0401f76a, 0x4a035073, 0x00000001, 0x850e1d0e, + 0x0201f800, 0x001039e4, 0x0401f014, 0x0201f800, + 0x001088a7, 0x59a8d21b, 0x8c68d506, 0x0402075f, + 0x59a8d018, 0x8068d1c0, 0x04020007, 0x59a8d41b, + 0x8c68d508, 0x04000759, 0x82697480, 0x0000ffff, + 0x04000756, 0x4a03541b, 0x0000ffff, 0x0201f800, + 0x00103f24, 0x0401f751, 0x589d0000, 0x809d3800, + 0x1c01f000, 0x809d3840, 0x48a13800, 0x829d3c80, + 0x00000005, 0x409d4000, 0x829d3c80, 0x00000007, + 0x48813800, 0x48853801, 0x48893802, 0x488d3803, + 0x48913804, 0x48953805, 0x48993806, 0x4200e000, + 0x00000001, 0x48714000, 0x4178e000, 0x48714003, + 0x48714004, 0x48594001, 0x49214002, 0x82691d00, + 0x00ffffff, 0x826d3500, 0x00ffffff, 0x828cd500, + 0x00ff0000, 0x82697480, 0x00ff0000, 0x0400005e, + 0x41792800, 0x4200b000, 0x000007f0, 0x41ad0800, + 0x40951000, 0x828d2500, 0x00ffff00, 0x0401f00f, + 0x809121c0, 0x04000032, 0x59a8d00f, 0x8268d500, + 0x00ffff00, 0x40900000, 0x80697480, 0x0400002c, + 0x4178e000, 0x48714004, 0x80850800, 0x80891000, + 0x8058b040, 0x04000021, 0x58850000, 0x808101c0, + 0x04000036, 0x5880d212, 0x8268d500, 0x0000ff00, + 0x040207ec, 0x5880d002, 0x8268d500, 0x00ffffff, + 0x408c0000, 0x80697480, 0x040207f0, 0x4098d000, + 0x0201f800, 0x00101f91, 0x5880d813, 0x806cd130, + 0x41200000, 0x80697480, 0x040207e8, 0x4200e000, + 0x00000001, 0x48714004, 0x5924d005, 0x826c0500, + 0x00ffffff, 0x80697480, 0x04000004, 0x812000f0, + 0x8068d540, 0x48690013, 0x58a0d004, 0x8068d1c0, + 0x04000020, 0x408a8800, 0x0401f048, 0x5880d002, + 0x8268d500, 0x000000ff, 0x828c0500, 0x000000ff, + 0x80697480, 0x040207d1, 0x4098d000, 0x0201f800, + 0x00101f91, 0x5880d813, 0x806cd130, 0x41200000, + 0x80697480, 0x040207c9, 0x4200d000, 0x00000001, + 0x48694004, 0x0401f7e1, 0x809529c0, 0x040207c3, + 0x58a0e003, 0x8070e1c0, 0x040207c0, 0x40892800, + 0x4200d000, 0x00000001, 0x48694003, 0x0401f7bb, + 0x58a0e003, 0x8070e1c0, 0x04000018, 0x40968800, + 0x0401f026, 0x828d7480, 0x00fffffb, 0x040007a1, + 0x040017a0, 0x828d7480, 0x00ffffff, 0x0400079d, + 0x828d7480, 0x00fffffd, 0x0400001a, 0x828d7480, + 0x00fffffd, 0x83f17500, 0x03000000, 0x0400000c, + 0x828d7480, 0x00fffffc, 0x0400000f, 0x4178d000, + 0x48694000, 0x0401f011, 0x488fc857, 0x489bc857, + 0x58a0d003, 0x48694000, 0x0401f00c, 0x828d7480, + 0x00fffffe, 0x040207f6, 0x42028800, 0x000007fe, + 0x0401f006, 0x42028800, 0x000007fc, 0x0401f003, + 0x42028800, 0x000007fd, 0x58a24002, 0x58a0b001, + 0x58a18800, 0x589d3006, 0x589d2805, 0x589d2004, + 0x589d1803, 0x589d1002, 0x589d0801, 0x589d0000, + 0x829d3c00, 0x0000000c, 0x589d4000, 0x809d3800, + 0x1c01f000, 0x486bc857, 0x0401ff4f, 0x1c01f000, + 0x00000000, 0x00000001, 0x00000002, 0x00000003, + 0x00000004, 0x00000005, 0x00000006, 0x00000007, + 0x00000008, 0x00000009, 0x0000000a, 0x0000000b, + 0x0000000c, 0x0000000d, 0x0000000e, 0x0000000f, + 0x9829698a, 0x02800004, 0x00000000, 0x0000c000, + 0x0000093b, 0x073fca5a, 0x0705a5a5, 0x01928009, + 0x070ff0e1, 0x03800006, 0x053f2aaa, 0x070aaaaa, + 0x073f3aaa, 0x070aaaaa, 0x05958014, 0x05308000, + 0x05008000, 0x0600902f, 0x06a006b3, 0x0202f051, + 0x042e4020, 0x008f02b0, 0x033e5000, 0x03020000, + 0x078d0024, 0x069305c2, 0x029205c4, 0x050fb056, + 0x040010e6, 0x002fb008, 0x060ff0e6, 0x00580401, + 0x054880ff, 0x07810022, 0x018c0412, 0x018a0411, + 0x058b040f, 0x079f0028, 0x0098085b, 0x079f0028, + 0x05990859, 0x058e8014, 0x0678aae5, 0x06000051, + 0x068181ce, 0x079a0014, 0x022a5001, 0x030430d4, + 0x06780043, 0x030e0000, 0x030450ff, 0x06780043, + 0x03019000, 0x02a1820b, 0x078187f0, 0x027c0045, + 0x03020000, 0x058180fc, 0x05908039, 0x019107ee, + 0x010410a6, 0x072d6000, 0x05601041, 0x050f80ff, + 0x032fa071, 0x070ff0d1, 0x055c0403, 0x034a88ff, + 0x06818808, 0x038000f0, 0x07480000, 0x058107fa, + 0x05481000, 0x05818050, 0x06780043, 0x070000f0, + 0x0681005b, 0x037c00ff, 0x06000010, 0x078187f6, + 0x0280005b, 0x06780043, 0x070000f0, 0x037c00ff, + 0x07000030, 0x0681005b, 0x06780043, 0x070000f0, + 0x037c00ff, 0x06000020, 0x0681005b, 0x018007f6, + 0x0379ff00, 0x070fffff, 0x06780043, 0x07f00000, + 0x075a0000, 0x020ef001, 0x008607f8, 0x05484000, + 0x03a1822e, 0x03680c00, 0x07818822, 0x062d6002, + 0x002fb001, 0x070ff069, 0x00868070, 0x060ff079, + 0x055c0441, 0x07810014, 0x012fb000, 0x060560fb, + 0x02800076, 0x060ff079, 0x03868209, 0x070ff069, + 0x055c0441, 0x07810014, 0x060560fb, 0x070ff0d1, + 0x062d6001, 0x055c040c, 0x058180d7, 0x070ff0d1, + 0x045c040d, 0x054b08ff, 0x058180e1, 0x0007b001, + 0x03079041, 0x0307a000, 0x07489000, 0x07818103, + 0x068d0083, 0x0207c004, 0x0107d005, 0x0107e006, + 0x0207f007, 0x02080008, 0x01081009, 0x0108200a, + 0x0208300b, 0x0186809a, 0x0448d07a, 0x0581809a, + 0x0448b07a, 0x04810801, 0x0049707a, 0x0581809a, + 0x04604679, 0x050f80ff, 0x053fa809, 0x06000001, + 0x01680703, 0x076c0303, 0x06818801, 0x072d5003, + 0x0049107a, 0x068100a4, 0x070ff00a, 0x0054040b, + 0x058280a3, 0x078d00a0, 0x0008200b, 0x032ff000, + 0x010770ff, 0x0108400c, 0x0208500d, 0x0678007a, + 0x06000008, 0x078100b7, 0x078d00a9, 0x04603e79, + 0x050f80ff, 0x073fa041, 0x0600004a, 0x0049707a, + 0x02a188b9, 0x068d00b0, 0x0678007a, 0x07f00000, + 0x010880ff, 0x02386008, 0x03010000, 0x038000bd, + 0x078d00b7, 0x0678007a, 0x07f00000, 0x010880ff, + 0x03386000, 0x03010000, 0x072e6300, 0x020ef07f, + 0x03860014, 0x070ff07d, 0x0450047c, 0x050f80ff, + 0x002fa819, 0x068d00c4, 0x02080001, 0x00081002, + 0x0678007a, 0x05000200, 0x078100cc, 0x0049107a, + 0x03a18227, 0x01082003, 0x068d00cd, 0x0448b07a, + 0x068100d3, 0x0338600c, 0x03010000, 0x028000d5, + 0x02386004, 0x03010000, 0x072e6c00, 0x03800014, + 0x062d6001, 0x07f00000, 0x07f00000, 0x0400e0d0, + 0x0648300e, 0x0681007a, 0x072e500c, 0x00208001, + 0x07a006b8, 0x03800014, 0x06780043, 0x070000f0, + 0x05810803, 0x050020ff, 0x027c0002, 0x06000010, + 0x068100ec, 0x027c0002, 0x07000030, 0x068100ec, + 0x01800803, 0x0500d0d1, 0x0279ff0d, 0x070000ff, + 0x0380007e, 0x020ef002, 0x018607e8, 0x04602602, + 0x050f80ff, 0x053fa809, 0x06000008, 0x060ff0d0, + 0x055c0411, 0x0179feff, 0x0700ffff, 0x078187e8, + 0x02800045, 0x027c0045, 0x03040000, 0x0581010c, + 0x027c0045, 0x03080000, 0x058107ee, 0x03800039, + 0x06600a79, 0x050f80ff, 0x053fa80a, 0x06000010, + 0x02800083, 0x05601041, 0x050f80ff, 0x032fa071, + 0x02800045, 0x0204a051, 0x06780043, 0x070000f0, + 0x037c00ff, 0x06000010, 0x068181bf, 0x072d6000, + 0x029487ea, 0x050fb056, 0x044880e6, 0x05818014, + 0x060ff0d0, 0x0179feff, 0x0700ffff, 0x057dfeff, + 0x0700ffff, 0x058107e8, 0x053f2000, 0x07030000, + 0x019d8014, 0x070ff093, 0x045a0201, 0x070ff093, + 0x045c0401, 0x06818120, 0x02046092, 0x04002046, + 0x060ff002, 0x045c0401, 0x0703a0ff, 0x04600202, + 0x00540401, 0x0782812e, 0x04500425, 0x070060ff, + 0x0730ffff, 0x0700000f, 0x0742000f, 0x04810201, + 0x04a007d0, 0x0648a002, 0x06818131, 0x00047089, + 0x070ff047, 0x045c0443, 0x077800ff, 0x07f00000, + 0x078181ff, 0x07780047, 0x0500e000, 0x078187d7, + 0x070ff006, 0x00860164, 0x0179fe47, 0x0700000f, + 0x010480ff, 0x056c7048, 0x0681814a, 0x007a0d4a, + 0x04003801, 0x0220f001, 0x00800157, 0x07608e48, + 0x034a60ff, 0x0700f0ff, 0x074b88ff, 0x037000ff, + 0x07000600, 0x05500448, 0x074d00ff, 0x045a044a, + 0x0304a0ff, 0x070ff00f, 0x01540406, 0x04820164, + 0x0595016c, 0x05a0024e, 0x0386816f, 0x06780043, + 0x070000f0, 0x037c00ff, 0x07000030, 0x0581016a, + 0x0134bfff, 0x070fffff, 0x0104102e, 0x050fd041, + 0x01800178, 0x0595016a, 0x05a0024e, 0x0186016a, + 0x0202f00e, 0x052e4030, 0x040fd02f, 0x04a002ad, + 0x03800014, 0x0400e02f, 0x042e4020, 0x0202f051, + 0x0004100e, 0x0004b00e, 0x004980e5, 0x07818178, + 0x06780043, 0x070000f0, 0x037c00ff, 0x07000030, + 0x0481081f, 0x024a6c46, 0x04500423, 0x050070ff, + 0x03620024, 0x050080ff, 0x04004046, 0x0700500f, + 0x03206000, 0x05601048, 0x0700a0ff, 0x0700900a, + 0x070ff005, 0x04500446, 0x00540425, 0x048201ab, + 0x07601822, 0x050f80ff, 0x063fa032, 0x06000002, + 0x03203000, 0x01204000, 0x03205000, 0x0120b000, + 0x0320c000, 0x07601841, 0x050f80ff, 0x043fa852, + 0x06000001, 0x070ff056, 0x056c02ff, 0x050fb0ff, + 0x070560ff, 0x03079041, 0x05601041, 0x050f80ff, + 0x073fa011, 0x0600003d, 0x06780043, 0x07f00000, + 0x065a007a, 0x010880ff, 0x033e5000, 0x05002000, + 0x05a00247, 0x048d01a4, 0x0208a04a, 0x0108b04b, + 0x02386001, 0x03010000, 0x072e6300, 0x038000be, + 0x0500d00a, 0x05500405, 0x014a68ff, 0x070090ff, + 0x0154040a, 0x0700c0ff, 0x0600a023, 0x0500b024, + 0x02206001, 0x07601822, 0x050f80ff, 0x063fa04a, + 0x06000002, 0x07f00000, 0x07601222, 0x050f80ff, + 0x043fa819, 0x06000001, 0x0600a00d, 0x0180018e, + 0x06780043, 0x070000f0, 0x050010ff, 0x027c0001, + 0x07000030, 0x058101c9, 0x027c0001, 0x06000020, + 0x058107de, 0x018007f6, 0x0548e0e4, 0x058107de, + 0x0334a000, 0x03080000, 0x01800112, 0x074860ff, + 0x068181ea, 0x054880ff, 0x07810014, 0x070ff056, + 0x050fb0ff, 0x044880e5, 0x048101d9, 0x044880e6, + 0x05818014, 0x008001df, 0x056c02ff, 0x050fb0ff, + 0x070560ff, 0x072e5300, 0x044880e6, 0x05818014, + 0x072d5003, 0x06780043, 0x07f00000, 0x010880ff, + 0x048d01e3, 0x03386005, 0x03010000, 0x033e6000, + 0x0700000c, 0x052e5200, 0x03800014, 0x079a0014, + 0x05301fff, 0x0700000f, 0x06420001, 0x04810201, + 0x04a007d0, 0x0648a002, 0x078181ed, 0x062e5080, + 0x04001089, 0x040fd002, 0x040fd001, 0x02499001, + 0x04810220, 0x070ff0d4, 0x050fd0ff, 0x045c0401, + 0x077800ff, 0x07f00000, 0x06818220, 0x03800014, + 0x012091ff, 0x038006bb, 0x00209201, 0x038006bb, + 0x01209203, 0x038006bb, 0x03209000, 0x038006bb, + 0x00209207, 0x038006bb, 0x01209209, 0x038006bb, + 0x06780043, 0x07009000, 0x06818216, 0x00498043, + 0x04810216, 0x0648a0e5, 0x05810217, 0x027c0045, + 0x03040000, 0x04810219, 0x075c00ff, 0x07c00000, + 0x056a02ff, 0x00800216, 0x00800215, 0x06780075, + 0x06000c07, 0x04810720, 0x0020921a, 0x070fc0ff, + 0x07a006a6, 0x070fc0ff, 0x05308000, 0x0700a000, + 0x07a006b8, 0x033e5000, 0x0700000c, 0x03800014, + 0x070ff003, 0x01540477, 0x0682822c, 0x07003077, + 0x060ff051, 0x010770ff, 0x07c00000, 0x04602001, + 0x050f80ff, 0x063fa029, 0x06000008, 0x02015010, + 0x02016051, 0x00017051, 0x00011051, 0x07601e41, + 0x050f80ff, 0x053fa83a, 0x06000008, 0x07f00000, + 0x05601041, 0x050f80ff, 0x01464000, 0x032fa00a, + 0x05007011, 0x05008012, 0x06009013, 0x0700a014, + 0x0400b015, 0x0600c016, 0x0500d017, 0x07c00000, + 0x072d5003, 0x06601879, 0x050f80ff, 0x048d024a, + 0x063fa051, 0x0600003e, 0x07c00000, 0x06005051, + 0x0400e02c, 0x0660060e, 0x050f80ff, 0x032fa009, + 0x0379ff00, 0x070000ff, 0x076c0000, 0x04810270, + 0x0660600e, 0x0500e0ff, 0x034000ff, 0x01540427, + 0x0582029a, 0x03400005, 0x070ff005, 0x055c0428, + 0x0581029c, 0x056c0805, 0x07818250, 0x040f8029, + 0x053fa809, 0x07000024, 0x07f00000, 0x06600649, 0x050f80ff, 0x032fa009, 0x0379ff00, 0x070000ff, - 0x076c0000, 0x04810270, 0x0660600e, 0x0500e0ff, - 0x034000ff, 0x01540427, 0x0582029a, 0x03400005, - 0x070ff005, 0x055c0428, 0x0581029c, 0x056c0805, - 0x07818250, 0x040f8029, 0x053fa809, 0x07000024, - 0x07f00000, 0x06600649, 0x050f80ff, 0x032fa009, - 0x0379ff00, 0x070000ff, 0x076c0000, 0x07818250, - 0x05a002a0, 0x0400e049, 0x01800271, 0x05a002a0, - 0x072d6000, 0x0460040e, 0x050f80ff, 0x0004d0d0, - 0x0379ff4d, 0x0700ffff, 0x0104e0d1, 0x0379ff4e, - 0x0700ffff, 0x062d6002, 0x032fa009, 0x0204f0d0, - 0x064b004f, 0x07780000, 0x07ffff00, 0x045a044f, - 0x070000ff, 0x00201008, 0x04002051, 0x06003051, - 0x01204000, 0x07305000, 0x07000060, 0x03206009, - 0x05007022, 0x0460040e, 0x050f80ff, 0x032fa042, - 0x07f00000, 0x0460520e, 0x050f80ff, 0x053fa812, - 0x06000026, 0x050010d1, 0x0660360e, 0x050f80ff, - 0x012fa80a, 0x060ff00e, 0x055c042e, 0x0481029e, - 0x07c00000, 0x0400e026, 0x0180025c, 0x0500e02e, - 0x01800271, 0x0400e051, 0x01800299, 0x0340002d, - 0x050f802b, 0x053fa80a, 0x06000016, 0x07f00000, - 0x0660600e, 0x0302c0ff, 0x034000ff, 0x01540427, - 0x048202ab, 0x07c00000, 0x0202c026, 0x018002aa, - 0x053f2000, 0x03020000, 0x07c00000, 0x022a5002, - 0x077800e4, 0x07000005, 0x058183ff, 0x010440d7, - 0x0678aae5, 0x06000051, 0x03a1881b, 0x079082b8, - 0x02910337, 0x030400a6, 0x04600e40, 0x050f80ff, - 0x022fa029, 0x07f00000, 0x074b0000, 0x076c0600, - 0x05818339, 0x060ff002, 0x01580403, 0x07810360, - 0x070ff044, 0x045c0404, 0x034a88ff, 0x0481833b, - 0x0349f044, 0x04818362, 0x02495001, 0x0481833d, - 0x030100d8, 0x062da001, 0x0149e044, 0x058102d8, - 0x038f82d1, 0x0700f0d7, 0x062da001, 0x0778000f, - 0x07a00000, 0x00a18352, 0x068182e9, 0x06480001, - 0x06810308, 0x0448e001, 0x058102ee, 0x00491001, - 0x0581834d, 0x06005010, 0x05780105, 0x07ffff00, - 0x06006051, 0x04600e02, 0x050f80ff, 0x053fa812, - 0x06000002, 0x0245f040, 0x058402e7, 0x020e0040, - 0x053f2000, 0x05008000, 0x07930017, 0x03920017, - 0x03800014, 0x060ff079, 0x045c0440, 0x068182f2, - 0x0644f07a, 0x002fb008, 0x060ff079, 0x045c0440, - 0x068182f7, 0x0644f07a, 0x002fb008, 0x0644f001, - 0x06489001, 0x058102ff, 0x04600440, 0x050f80ff, - 0x073fa00a, 0x06000008, 0x05a0081b, 0x054b0800, - 0x04002001, 0x05001000, 0x03200003, 0x06600c40, - 0x050f80ff, 0x022fa01a, 0x008002e9, 0x020ef002, - 0x0286032a, 0x04600840, 0x050f80ff, 0x053fa809, - 0x06000002, 0x05780105, 0x00800440, 0x017c0105, - 0x05000400, 0x0481832a, 0x04602002, 0x050f80ff, - 0x053fa809, 0x06000002, 0x07f00000, 0x06602e40, - 0x050f80ff, 0x070ff005, 0x053fa809, 0x06000002, - 0x055c0405, 0x0481832a, 0x06005010, 0x05780105, - 0x07ffff00, 0x06006051, 0x04600e02, 0x050f80ff, - 0x053fa812, 0x06000002, 0x007a0140, 0x07c00000, - 0x018002e7, 0x0644f001, 0x04601040, 0x050f80ff, - 0x012fa80a, 0x05308000, 0x03040000, 0x04600440, - 0x050f80ff, 0x073fa00a, 0x06000008, 0x06009040, - 0x06a006b3, 0x008002e9, 0x02209002, 0x028003ea, - 0x03209000, 0x028003ea, 0x02209004, 0x028003ea, - 0x05a00409, 0x062da001, 0x0149e044, 0x07810348, - 0x018f8341, 0x0700f0d7, 0x062da001, 0x0778000f, - 0x07a00000, 0x00a18352, 0x068182e9, 0x05308000, - 0x05002000, 0x06009040, 0x06a006b3, 0x008002e9, - 0x05308000, 0x05004000, 0x06009040, 0x06a006b3, - 0x008002e9, 0x0700600f, 0x0379ff06, 0x0700ffff, - 0x05602603, 0x050f80ff, 0x053fa809, 0x06000008, - 0x0179fe11, 0x0700ffff, 0x055c0406, 0x0481835e, - 0x07c00000, 0x056a02ff, 0x0280035d, 0x02209008, - 0x028003ea, 0x053f2000, 0x05008000, 0x02495001, - 0x058183c9, 0x012f200c, 0x019d8366, 0x04600840, - 0x050f80ff, 0x053fa809, 0x07000003, 0x0721f000, - 0x0249f007, 0x06810370, 0x0245f01f, 0x06000002, - 0x05601600, 0x050f80ff, 0x012fa809, 0x06480001, - 0x078103c9, 0x04481001, 0x058183c9, 0x06602840, - 0x050f80ff, 0x012fa809, 0x020ef001, 0x018683c9, - 0x079c03c9, 0x070050d8, 0x062da001, 0x06306002, - 0x05000430, 0x04600440, 0x050f80ff, 0x053fa812, - 0x06000002, 0x008f8386, 0x050040d8, 0x062da001, - 0x0149e044, 0x06810392, 0x018f838b, 0x0700f0d7, + 0x076c0000, 0x07818250, 0x05a002a0, 0x0400e049, + 0x01800271, 0x05a002a0, 0x072d6000, 0x0460040e, + 0x050f80ff, 0x0004d0d0, 0x0379ff4d, 0x0700ffff, + 0x0104e0d1, 0x0379ff4e, 0x0700ffff, 0x062d6002, + 0x032fa009, 0x0204f0d0, 0x064b004f, 0x07780000, + 0x07ffff00, 0x045a044f, 0x070000ff, 0x00201008, + 0x04002051, 0x06003051, 0x01204000, 0x07305000, + 0x07000060, 0x03206009, 0x05007022, 0x0460040e, + 0x050f80ff, 0x032fa042, 0x07f00000, 0x0460520e, + 0x050f80ff, 0x053fa812, 0x06000026, 0x050010d1, + 0x0660360e, 0x050f80ff, 0x012fa80a, 0x060ff00e, + 0x055c042e, 0x0481029e, 0x07c00000, 0x0400e026, + 0x0180025c, 0x0500e02e, 0x01800271, 0x0400e051, + 0x01800299, 0x0340002d, 0x050f802b, 0x053fa80a, + 0x06000016, 0x07f00000, 0x0660600e, 0x0302c0ff, + 0x034000ff, 0x01540427, 0x048202ab, 0x07c00000, + 0x0202c026, 0x018002aa, 0x053f2000, 0x03020000, + 0x07c00000, 0x022a5002, 0x077800e4, 0x07000005, + 0x058183ff, 0x010440d7, 0x0678aae5, 0x06000051, + 0x03a1881b, 0x079082b8, 0x02910337, 0x030400a6, + 0x04600e40, 0x050f80ff, 0x022fa029, 0x07f00000, + 0x074b0000, 0x076c0600, 0x05818339, 0x060ff002, + 0x01580403, 0x07810360, 0x070ff044, 0x045c0404, + 0x034a88ff, 0x0481833b, 0x0349f044, 0x04818362, + 0x02495001, 0x0481833d, 0x030100d8, 0x062da001, + 0x0149e044, 0x058102d8, 0x038f82d1, 0x0700f0d7, 0x062da001, 0x0778000f, 0x07a00000, 0x00a18352, - 0x058183c3, 0x05602000, 0x050f80ff, 0x073fa009, - 0x06000001, 0x060ff004, 0x00540402, 0x068203c7, - 0x06005051, 0x06006051, 0x04602640, 0x050f80ff, - 0x063fa01a, 0x06000002, 0x07f00000, 0x06600a40, - 0x050f80ff, 0x073fa00a, 0x07000003, 0x04487007, - 0x078103b1, 0x060ff002, 0x00540404, 0x058283b1, - 0x002f2008, 0x05308000, 0x07005000, 0x06009040, - 0x06a006b3, 0x04008004, 0x07a006b8, 0x03800017, - 0x06780007, 0x02800040, 0x058183c0, 0x0079c107, - 0x07ffffff, 0x007a0b07, 0x03800000, 0x04780104, - 0x07ffff00, 0x068103bc, 0x02455007, 0x04600840, - 0x050f80ff, 0x053fa80a, 0x07000003, 0x060ff040, - 0x045a041f, 0x030e30ff, 0x002f2008, 0x07930017, - 0x03920017, 0x03800014, 0x04004002, 0x03800399, - 0x002f2008, 0x05a00409, 0x062da001, 0x07f00000, - 0x008f83cd, 0x030100d8, 0x062da001, 0x0149e044, - 0x068103d9, 0x018f83d2, 0x0700f0d7, 0x062da001, - 0x0778000f, 0x07a00000, 0x00a18352, 0x05818017, - 0x05308000, 0x07005000, 0x06009040, 0x06a006b3, - 0x04008010, 0x07a006b8, 0x03800017, 0x05602603, - 0x050f80ff, 0x053fa809, 0x06000008, 0x07780044, - 0x073f0000, 0x055c0411, 0x077800ff, 0x07ff0000, - 0x07c00000, 0x050fd009, 0x040fd040, 0x053f2000, - 0x05008000, 0x05308000, 0x03013000, 0x06a006b3, - 0x010440d7, 0x0349f044, 0x068103f7, 0x062da001, - 0x028f03f7, 0x03e00000, 0x062da001, 0x0149e044, - 0x07810017, 0x038f03fc, 0x03e00000, 0x0700f0d7, - 0x062da001, 0x03800017, 0x059083ff, 0x0249c0e5, - 0x07810017, 0x062da001, 0x07f00000, 0x07f00000, - 0x033e5000, 0x070c0000, 0x008f0402, 0x02800015, - 0x050020d8, 0x04600440, 0x050f80ff, 0x073fa00a, - 0x06000001, 0x07c00000, 0x002fb001, 0x01800412, - 0x012fb000, 0x03075087, 0x048d0413, 0x03386000, - 0x03020000, 0x04482075, 0x048104b6, 0x0648a0e6, - 0x05810463, 0x0642007f, 0x04810461, 0x0340007e, - 0x060ff038, 0x0154047e, 0x00d00451, 0x0560027d, - 0x050f80ff, 0x032fa009, 0x030ef000, 0x0186071b, - 0x0107d000, 0x07600a00, 0x050f80ff, 0x032fa009, - 0x03681e00, 0x076c14ff, 0x0681842f, 0x0007e038, - 0x0727c006, 0x01800435, 0x03681e00, 0x04500420, - 0x050f80ff, 0x073fa009, 0x0700003f, 0x0180041d, - 0x070ff07d, 0x0450047c, 0x050f80ff, 0x002fa819, - 0x058d0439, 0x02080001, 0x00081002, 0x0678007a, - 0x05000200, 0x05810441, 0x0049107a, 0x03a18227, - 0x01082003, 0x058d0442, 0x0448b07a, 0x0681844a, - 0x0249007a, 0x0581044d, 0x07780003, 0x03800000, - 0x0581044d, 0x0338600c, 0x03010000, 0x0080044f, - 0x02386004, 0x03010000, 0x072e6c00, 0x008004b6, - 0x00800457, 0x01800459, 0x0080045b, 0x0080045d, - 0x0180045f, 0x00800420, 0x0727c006, 0x01800435, - 0x0727c009, 0x01800435, 0x0727c00c, 0x01800435, - 0x0727c00f, 0x01800435, 0x0727c012, 0x01800435, - 0x052e6800, 0x008004b6, 0x044880e6, 0x05810750, - 0x070ff088, 0x0179feff, 0x070fffff, 0x00a186f4, - 0x048186e9, 0x0249607a, 0x06818719, 0x060ff083, - 0x02868719, 0x013e6200, 0x07000003, 0x0448b07a, - 0x04810486, 0x0049707a, 0x06818486, 0x04604679, - 0x050f80ff, 0x032fa009, 0x03680600, 0x076c00ff, - 0x06818486, 0x06604879, 0x050f80ff, 0x032fa009, - 0x07f00000, 0x074b0000, 0x070ff000, 0x048d0480, - 0x05001099, 0x064b0001, 0x045c0401, 0x04810486, - 0x0245a07a, 0x048d0486, 0x018c0412, 0x0279127a, - 0x01040222, 0x016d02ff, 0x078184e8, 0x00798075, - 0x0700f50f, 0x078184e8, 0x06483075, 0x058104e8, - 0x04602679, 0x050f80ff, 0x053fa812, 0x07000041, - 0x058d0495, 0x004940e6, 0x0581049a, 0x072e6300, - 0x03800014, 0x0049707a, 0x0481049e, 0x0049807a, - 0x07810014, 0x02386001, 0x07030000, 0x0648f07a, - 0x058104b4, 0x04600479, 0x050f80ff, 0x053fa809, - 0x06000002, 0x05780105, 0x07ffff00, 0x06006051, + 0x068182e9, 0x06480001, 0x06810308, 0x0448e001, + 0x058102ee, 0x00491001, 0x0581834d, 0x06005010, + 0x05780105, 0x07ffff00, 0x06006051, 0x04600e02, + 0x050f80ff, 0x053fa812, 0x06000002, 0x0245f040, + 0x058402e7, 0x020e0040, 0x053f2000, 0x05008000, + 0x07930017, 0x03920017, 0x03800014, 0x060ff079, + 0x045c0440, 0x068182f2, 0x0644f07a, 0x002fb008, + 0x060ff079, 0x045c0440, 0x068182f7, 0x0644f07a, + 0x002fb008, 0x0644f001, 0x06489001, 0x058102ff, + 0x04600440, 0x050f80ff, 0x073fa00a, 0x06000008, + 0x05a0081b, 0x054b0800, 0x04002001, 0x05001000, + 0x03200003, 0x06600c40, 0x050f80ff, 0x022fa01a, + 0x008002e9, 0x020ef002, 0x0286032a, 0x04600840, + 0x050f80ff, 0x053fa809, 0x06000002, 0x05780105, + 0x00800440, 0x017c0105, 0x05000400, 0x0481832a, + 0x04602002, 0x050f80ff, 0x053fa809, 0x06000002, + 0x07f00000, 0x06602e40, 0x050f80ff, 0x070ff005, + 0x053fa809, 0x06000002, 0x055c0405, 0x0481832a, + 0x06005010, 0x05780105, 0x07ffff00, 0x06006051, + 0x04600e02, 0x050f80ff, 0x053fa812, 0x06000002, + 0x007a0140, 0x07c00000, 0x018002e7, 0x0644f001, + 0x04601040, 0x050f80ff, 0x012fa80a, 0x05308000, + 0x03040000, 0x04600440, 0x050f80ff, 0x073fa00a, + 0x06000008, 0x06009040, 0x06a006b3, 0x008002e9, + 0x02209002, 0x028003ea, 0x03209000, 0x028003ea, + 0x02209004, 0x028003ea, 0x05a00409, 0x062da001, + 0x0149e044, 0x07810348, 0x018f8341, 0x0700f0d7, + 0x062da001, 0x0778000f, 0x07a00000, 0x00a18352, + 0x068182e9, 0x05308000, 0x05002000, 0x06009040, + 0x06a006b3, 0x008002e9, 0x05308000, 0x05004000, + 0x06009040, 0x06a006b3, 0x008002e9, 0x0700600f, + 0x0379ff06, 0x0700ffff, 0x05602603, 0x050f80ff, + 0x053fa809, 0x06000008, 0x0179fe11, 0x0700ffff, + 0x055c0406, 0x0481835e, 0x07c00000, 0x056a02ff, + 0x0280035d, 0x02209008, 0x028003ea, 0x053f2000, + 0x05008000, 0x02495001, 0x058183c9, 0x012f200c, + 0x019d8366, 0x04600840, 0x050f80ff, 0x053fa809, + 0x07000003, 0x0721f000, 0x0249f007, 0x06810370, + 0x0245f01f, 0x06000002, 0x05601600, 0x050f80ff, + 0x012fa809, 0x06480001, 0x078103c9, 0x04481001, + 0x058183c9, 0x06602840, 0x050f80ff, 0x012fa809, + 0x020ef001, 0x018683c9, 0x079c03c9, 0x070050d8, + 0x062da001, 0x06306002, 0x05000430, 0x04600440, + 0x050f80ff, 0x053fa812, 0x06000002, 0x008f8386, + 0x050040d8, 0x062da001, 0x0149e044, 0x06810392, + 0x018f838b, 0x0700f0d7, 0x062da001, 0x0778000f, + 0x07a00000, 0x00a18352, 0x058183c3, 0x05602000, + 0x050f80ff, 0x073fa009, 0x06000001, 0x060ff004, + 0x00540402, 0x068203c7, 0x06005051, 0x06006051, + 0x04602640, 0x050f80ff, 0x063fa01a, 0x06000002, + 0x07f00000, 0x06600a40, 0x050f80ff, 0x073fa00a, + 0x07000003, 0x04487007, 0x078103b1, 0x060ff002, + 0x00540404, 0x058283b1, 0x002f2008, 0x05308000, + 0x07005000, 0x06009040, 0x06a006b3, 0x04008004, + 0x07a006b8, 0x03800017, 0x06780007, 0x02800040, + 0x058183c0, 0x0079c107, 0x07ffffff, 0x007a0b07, + 0x03800000, 0x04780104, 0x07ffff00, 0x068103bc, + 0x02455007, 0x04600840, 0x050f80ff, 0x053fa80a, + 0x07000003, 0x060ff040, 0x045a041f, 0x030e30ff, + 0x002f2008, 0x07930017, 0x03920017, 0x03800014, + 0x04004002, 0x03800399, 0x002f2008, 0x05a00409, + 0x062da001, 0x07f00000, 0x008f83cd, 0x030100d8, + 0x062da001, 0x0149e044, 0x068103d9, 0x018f83d2, + 0x0700f0d7, 0x062da001, 0x0778000f, 0x07a00000, + 0x00a18352, 0x05818017, 0x05308000, 0x07005000, + 0x06009040, 0x06a006b3, 0x04008010, 0x07a006b8, + 0x03800017, 0x05602603, 0x050f80ff, 0x053fa809, + 0x06000008, 0x07780044, 0x073f0000, 0x055c0411, + 0x077800ff, 0x07ff0000, 0x07c00000, 0x050fd009, + 0x040fd040, 0x053f2000, 0x05008000, 0x05308000, + 0x03013000, 0x06a006b3, 0x010440d7, 0x0349f044, + 0x068103f7, 0x062da001, 0x028f03f7, 0x03e00000, + 0x062da001, 0x0149e044, 0x07810017, 0x038f03fc, + 0x03e00000, 0x0700f0d7, 0x062da001, 0x03800017, + 0x059083ff, 0x0249c0e5, 0x07810017, 0x062da001, + 0x07f00000, 0x07f00000, 0x033e5000, 0x070c0000, + 0x008f0402, 0x02800015, 0x050020d8, 0x04600440, + 0x050f80ff, 0x073fa00a, 0x06000001, 0x07c00000, + 0x002fb001, 0x01800412, 0x012fb000, 0x03075087, + 0x048d0413, 0x03386000, 0x03020000, 0x04482075, + 0x048104b6, 0x0648a0e6, 0x05810463, 0x0642007f, + 0x04810461, 0x0340007e, 0x060ff038, 0x0154047e, + 0x00d00451, 0x0560027d, 0x050f80ff, 0x032fa009, + 0x030ef000, 0x0186071b, 0x0107d000, 0x07600a00, + 0x050f80ff, 0x032fa009, 0x03681e00, 0x076c14ff, + 0x0681842f, 0x0007e038, 0x0727c006, 0x01800435, + 0x03681e00, 0x04500420, 0x050f80ff, 0x073fa009, + 0x0700003f, 0x0180041d, 0x070ff07d, 0x0450047c, + 0x050f80ff, 0x002fa819, 0x058d0439, 0x02080001, + 0x00081002, 0x0678007a, 0x05000200, 0x05810441, + 0x0049107a, 0x03a18227, 0x01082003, 0x058d0442, + 0x0448b07a, 0x0681844a, 0x0249007a, 0x0581044d, + 0x07780003, 0x03800000, 0x0581044d, 0x0338600c, + 0x03010000, 0x0080044f, 0x02386004, 0x03010000, + 0x072e6c00, 0x008004b6, 0x00800457, 0x01800459, + 0x0080045b, 0x0080045d, 0x0180045f, 0x00800420, + 0x0727c006, 0x01800435, 0x0727c009, 0x01800435, + 0x0727c00c, 0x01800435, 0x0727c00f, 0x01800435, + 0x0727c012, 0x01800435, 0x052e6800, 0x008004b6, + 0x044880e6, 0x05810750, 0x070ff088, 0x0179feff, + 0x070fffff, 0x00a186f4, 0x048186e9, 0x0249607a, + 0x06818719, 0x060ff083, 0x02868719, 0x013e6200, + 0x07000003, 0x0448b07a, 0x04810486, 0x0049707a, + 0x06818486, 0x04604679, 0x050f80ff, 0x032fa009, + 0x03680600, 0x076c00ff, 0x06818486, 0x06604879, + 0x050f80ff, 0x032fa009, 0x07f00000, 0x074b0000, + 0x070ff000, 0x048d0480, 0x05001099, 0x064b0001, + 0x045c0401, 0x04810486, 0x0245a07a, 0x048d0486, + 0x018c0412, 0x0279127a, 0x01040222, 0x016d02ff, + 0x078184e8, 0x00798075, 0x0700f50f, 0x078184e8, + 0x06483075, 0x058104e8, 0x04602679, 0x050f80ff, + 0x053fa812, 0x07000041, 0x058d0495, 0x004940e6, + 0x0581049a, 0x072e6300, 0x03800014, 0x0049707a, + 0x0481049e, 0x0049807a, 0x07810014, 0x02386001, + 0x07030000, 0x0648f07a, 0x058104b4, 0x04600479, + 0x050f80ff, 0x053fa809, 0x06000002, 0x05780105, + 0x07ffff00, 0x06006051, 0x05600e7b, 0x050f80ff, + 0x053fa812, 0x06000002, 0x0245f079, 0x048404ae, + 0x020e0079, 0x033e6a00, 0x0700aa0a, 0x02079051, + 0x03800014, 0x0444e07a, 0x03800555, 0x048d04b6, + 0x018c0412, 0x018004cf, 0x060ff0e6, 0x077800ff, + 0x07000050, 0x078184cf, 0x02799075, 0x0500fd0f, + 0x037c00ff, 0x04000808, 0x078184cf, 0x0049107a, + 0x078184cf, 0x06601879, 0x050f80ff, 0x063fa052, + 0x0600003e, 0x048d04c8, 0x02386001, 0x07030000, + 0x033e6a00, 0x0700aa0a, 0x02079051, 0x03800014, + 0x0648c0e6, 0x078184ed, 0x0448e0e6, 0x048104e5, + 0x002094d3, 0x02490075, 0x06818220, 0x004920e6, + 0x048104e0, 0x05a00799, 0x05001088, 0x00700101, + 0x03100000, 0x00088001, 0x033e6000, 0x07000088, + 0x0080078a, 0x02386001, 0x07030000, 0x033e6000, + 0x06000008, 0x03800599, 0x02799075, 0x0700f50f, + 0x07810014, 0x06601879, 0x050080ff, 0x06309052, + 0x0600003e, 0x008004f1, 0x04602679, 0x050080ff, + 0x05309812, 0x07000041, 0x0648007a, 0x07810503, + 0x04488075, 0x05818503, 0x0678007a, 0x04000108, + 0x058104ff, 0x04603e79, 0x050f80ff, 0x058d04fa, + 0x073fa042, 0x0600004a, 0x048d04fd, 0x02086051, + 0x040f8008, 0x070fa009, 0x0049107a, 0x00a1859b, + 0x00798075, 0x0600f507, 0x06818737, 0x0448b075, + 0x0781050a, 0x02493075, 0x05810733, 0x004940e6, + 0x07810522, 0x02386001, 0x030e0000, 0x05001087, + 0x00494001, 0x07810514, 0x04780b01, 0x05004000, + 0x0681051f, 0x0249f076, 0x0681051a, 0x07a0091d, + 0x0647f076, 0x004940e6, 0x06810520, 0x03386000, + 0x030e0000, 0x033e6000, 0x0700c000, 0x03800014, + 0x04a008d6, 0x03386000, 0x030e0000, 0x0648c0e6, + 0x05818535, 0x078d0524, 0x02386001, 0x07030000, + 0x0049107a, 0x0781052b, 0x020ef083, 0x03860535, + 0x06483075, 0x06810597, 0x0678007a, 0x07000035, + 0x01a186a6, 0x05308000, 0x07060000, 0x06009079, + 0x06a006b3, 0x02800597, 0x06483075, 0x068106d0, + 0x068d0537, 0x02386001, 0x07030000, 0x0444e07a, + 0x0648307a, 0x0481856b, 0x0448707a, 0x06810592, + 0x0448107a, 0x04818592, 0x0648f07a, 0x07810555, + 0x07a006a6, 0x04008079, 0x07a006c5, 0x01868566, + 0x0049107a, 0x05818566, 0x04600408, 0x050f80ff, + 0x053fa809, 0x06000002, 0x05780105, 0x07ffff00, 0x05600e7b, 0x050f80ff, 0x053fa812, 0x06000002, - 0x0245f079, 0x048404ae, 0x020e0079, 0x033e6a00, - 0x0700aa0a, 0x02079051, 0x03800014, 0x0444e07a, - 0x03800555, 0x048d04b6, 0x018c0412, 0x018004cf, - 0x060ff0e6, 0x077800ff, 0x07000050, 0x078184cf, - 0x02799075, 0x0500fd0f, 0x037c00ff, 0x04000808, - 0x078184cf, 0x0049107a, 0x078184cf, 0x06601879, - 0x050f80ff, 0x063fa052, 0x0600003e, 0x048d04c8, - 0x02386001, 0x07030000, 0x033e6a00, 0x0700aa0a, - 0x02079051, 0x03800014, 0x0648c0e6, 0x078184ed, - 0x0448e0e6, 0x048104e5, 0x002094d3, 0x02490075, - 0x06818220, 0x004920e6, 0x048104e0, 0x05a00799, - 0x05001088, 0x00700101, 0x03100000, 0x00088001, - 0x033e6000, 0x07000088, 0x0080078a, 0x02386001, - 0x07030000, 0x033e6000, 0x06000008, 0x03800599, - 0x02799075, 0x0700f50f, 0x07810014, 0x06601879, - 0x050080ff, 0x06309052, 0x0600003e, 0x008004f1, - 0x04602679, 0x050080ff, 0x05309812, 0x07000041, - 0x0648007a, 0x07810503, 0x04488075, 0x05818503, - 0x0678007a, 0x04000108, 0x058104ff, 0x04603e79, - 0x050f80ff, 0x058d04fa, 0x073fa042, 0x0600004a, - 0x048d04fd, 0x02086051, 0x040f8008, 0x070fa009, - 0x0049107a, 0x00a1859b, 0x00798075, 0x0600f507, - 0x06818737, 0x0448b075, 0x0781050a, 0x02493075, - 0x05810733, 0x004940e6, 0x07810522, 0x02386001, - 0x030e0000, 0x05001087, 0x00494001, 0x07810514, - 0x04780b01, 0x05004000, 0x0681051f, 0x0249f076, - 0x0681051a, 0x07a0091d, 0x0647f076, 0x004940e6, - 0x06810520, 0x03386000, 0x030e0000, 0x033e6000, - 0x0700c000, 0x03800014, 0x04a008d6, 0x03386000, - 0x030e0000, 0x0648c0e6, 0x05818535, 0x078d0524, - 0x02386001, 0x07030000, 0x0049107a, 0x0781052b, - 0x020ef083, 0x03860535, 0x06483075, 0x06810597, - 0x0678007a, 0x07000035, 0x01a186a6, 0x05308000, - 0x07060000, 0x06009079, 0x06a006b3, 0x02800597, - 0x06483075, 0x068106d0, 0x068d0537, 0x02386001, - 0x07030000, 0x0444e07a, 0x0648307a, 0x0481856b, - 0x0448707a, 0x06810592, 0x0448107a, 0x04818592, - 0x0648f07a, 0x07810555, 0x07a006a6, 0x04008079, - 0x07a006c5, 0x01868566, 0x0049107a, 0x05818566, - 0x04600408, 0x050f80ff, 0x053fa809, 0x06000002, - 0x05780105, 0x07ffff00, 0x05600e7b, 0x050f80ff, - 0x053fa812, 0x06000002, 0x07a006af, 0x02800597, - 0x0760127b, 0x050f80ff, 0x032fa009, 0x0349c000, - 0x04818564, 0x04601079, 0x050f80ff, 0x073fa00a, - 0x0600003d, 0x07f00000, 0x06600a79, 0x050f80ff, - 0x053fa80a, 0x06000010, 0x02800597, 0x0046e07a, - 0x02800592, 0x06009008, 0x05308000, 0x05004000, - 0x06a006b3, 0x02800597, 0x0760187b, 0x050f80ff, - 0x032fa011, 0x070ff000, 0x04500401, 0x030460ff, - 0x060ff025, 0x00540446, 0x0682057f, 0x030460ff, - 0x052e40c0, 0x04092046, 0x0349a0e4, 0x0481857c, - 0x003e4080, 0x0700c000, 0x02800580, 0x003e4080, - 0x05008000, 0x02800580, 0x04092046, 0x070ff03a, - 0x01868584, 0x013e4000, 0x07000003, 0x04a002ad, - 0x06600679, 0x050f80ff, 0x00201007, 0x012fa80a, - 0x0046047a, 0x034630ff, 0x050020ff, 0x06003051, - 0x04601079, 0x050f80ff, 0x073fa012, 0x06000001, - 0x02800597, 0x07a006a6, 0x05308000, 0x03020000, - 0x06009079, 0x06a006b3, 0x033e6a00, 0x0700aa0a, - 0x02079051, 0x03800014, 0x06605679, 0x050f80ff, - 0x032fa009, 0x070ff000, 0x038605b4, 0x057dfeff, - 0x07ffffff, 0x078105b4, 0x050f8000, 0x012fa811, - 0x0079fe02, 0x070000ff, 0x077d66ff, 0x060000dc, - 0x058185b4, 0x060ff001, 0x008685b5, 0x064b0002, - 0x06420002, 0x060ff002, 0x05500400, 0x050f80ff, - 0x05004084, 0x073fa00a, 0x06000002, 0x07c00000, - 0x04600201, 0x050f80ff, 0x073fa009, 0x06000001, - 0x0079fe02, 0x070000ff, 0x077d72ff, 0x070000dd, - 0x058185b4, 0x064b0002, 0x06420002, 0x06000001, - 0x028005ae, 0x0605004c, 0x038005c6, 0x069305c2, - 0x07a006ac, 0x054bc450, 0x078105c9, 0x03d005ca, - 0x038005c9, 0x028005da, 0x028005dc, 0x02800668, - 0x0380067b, 0x028005e9, 0x028005dc, 0x02800632, - 0x028005da, 0x02800683, 0x0280067f, 0x028005da, - 0x02800686, 0x0280069b, 0x02800654, 0x028005da, - 0x028005da, 0x022095da, 0x038006bb, 0x073c3fff, - 0x0700000f, 0x0379ff50, 0x070fffff, 0x060ff079, - 0x055c0450, 0x07810678, 0x002fb008, 0x060ff079, - 0x055c0450, 0x07810677, 0x06a0069e, 0x02800670, - 0x0179fe50, 0x070fffff, 0x070050ff, 0x060ff079, - 0x055c0405, 0x078105f3, 0x002fb008, 0x060ff079, - 0x055c0405, 0x05818674, 0x073c3fff, 0x0700000f, - 0x070ff087, 0x017980ff, 0x0600f507, 0x04818602, - 0x02203040, 0x05002087, 0x0049d002, 0x04818602, - 0x002fb008, 0x07006087, 0x002fb008, 0x0149d006, - 0x0681062c, 0x06930607, 0x01257000, 0x052e4003, - 0x072e5030, 0x0304c050, 0x02400057, 0x06740057, - 0x06000004, 0x0682001a, 0x004940e6, 0x00a18910, - 0x0049107a, 0x00a1859b, 0x04002083, 0x07003084, - 0x04004085, 0x04602679, 0x050f80ff, 0x063fa01a, - 0x06000001, 0x07a006a6, 0x04a007a2, 0x033e6a00, - 0x0700aa0a, 0x062e5020, 0x04a007d0, 0x02798102, - 0x070000ff, 0x007c8002, 0x07000055, 0x06810629, - 0x072e50c0, 0x0648a002, 0x06810629, 0x078d0624, - 0x03386006, 0x03010000, 0x033e6000, 0x0700000c, - 0x003e4002, 0x07000a00, 0x03800599, 0x07420003, - 0x058185fa, 0x00798002, 0x0600f507, 0x04818602, - 0x0280060b, 0x07930639, 0x01257000, 0x073c3fff, - 0x0700000f, 0x052e4003, 0x072e5030, 0x0304c050, - 0x067800e6, 0x07000041, 0x0681063e, 0x04a007ab, - 0x04818649, 0x002fb008, 0x067800e6, 0x07000041, - 0x07810644, 0x04a007ab, 0x04818649, 0x062e5020, - 0x003e4002, 0x07000a00, 0x03e00000, 0x03800014, - 0x06740057, 0x07000018, 0x0682001a, 0x04a007a2, - 0x033e6a00, 0x0700aa0a, 0x002fb008, 0x04a007a2, - 0x033e6a00, 0x0700aa0a, 0x03800644, 0x0379ff50, - 0x070fffff, 0x060ff079, 0x055c0450, 0x0581865a, - 0x0245507a, 0x002fb008, 0x060ff079, 0x055c0450, - 0x0581865f, 0x0245507a, 0x002fb008, 0x05601050, - 0x050f80ff, 0x012fa809, 0x02455001, 0x05601050, - 0x050f80ff, 0x012fa80a, 0x03800671, 0x05958678, - 0x0179fe50, 0x070fffff, 0x045c042f, 0x05818678, - 0x0202f051, 0x042e4020, 0x03800671, 0x002fb008, - 0x003e4002, 0x07000a00, 0x0280001a, 0x05938677, - 0x062e5020, 0x042e4002, 0x002fb008, 0x013e4000, - 0x05000e00, 0x0280001a, 0x0179fe50, 0x070fffff, - 0x010210ff, 0x0280001a, 0x0179fe50, 0x070fffff, - 0x050340ff, 0x03800671, 0x023e5008, 0x05000800, - 0x0280001a, 0x0179fe50, 0x070fffff, 0x0102e0ff, - 0x05602c2e, 0x050f80ff, 0x05222000, 0x07223000, - 0x05224000, 0x07225000, 0x07226000, 0x05227000, - 0x05228000, 0x07229000, 0x0722a000, 0x0522b000, - 0x063fa051, 0x07000011, 0x0202c026, 0x0522d000, - 0x052e400c, 0x0280001a, 0x030430d4, 0x062e5008, - 0x018001d2, 0x05601050, 0x050f80ff, 0x032fa009, - 0x03460000, 0x038006a9, 0x0246007a, 0x0045207a, - 0x028006a7, 0x0246007a, 0x0600007a, 0x04601079, - 0x050f80ff, 0x032fa00a, 0x07c00000, 0x019286ac, - 0x070500e1, 0x07c00000, 0x0245f008, 0x068406b0, - 0x020e0008, 0x07c00000, 0x070ff009, 0x065a0008, - 0x068406b5, 0x020e0008, 0x07c00000, 0x078406b8, - 0x020e0008, 0x07c00000, 0x05308000, 0x0500d000, - 0x06a006b3, 0x07a006c0, 0x03800014, 0x052e4300, - 0x072e500c, 0x073c3fff, 0x0700000f, 0x07c00000, - 0x04602608, 0x050f80ff, 0x032fa011, 0x076a0000, - 0x048186ce, 0x066a0001, 0x068106ce, 0x06006051, - 0x07c00000, 0x02206001, 0x07c00000, 0x0678007a, - 0x06000020, 0x058186d8, 0x0049107a, 0x078106d8, - 0x073c3fff, 0x0700000f, 0x02800537, 0x040fd079, - 0x0648307a, 0x078106dd, 0x05a00812, 0x038006e2, - 0x07a006a3, 0x05308000, 0x05001000, 0x06009079, - 0x06a006b3, 0x078d06e2, 0x033e6a00, 0x0600aa0e, - 0x02079051, 0x03386006, 0x03010000, 0x03800014, - 0x052e6200, 0x0648307a, 0x078106ee, 0x05a00812, - 0x0080078a, 0x07a006a3, 0x05308000, 0x05001000, - 0x06009079, 0x06a006b3, 0x0080078a, 0x050010ff, - 0x0448b07a, 0x04810702, 0x0049107a, 0x04810702, - 0x078d06f9, 0x04604679, 0x050f80ff, 0x032fa009, - 0x03680600, 0x056c02ff, 0x06818702, 0x046c1001, - 0x04810704, 0x056a02ff, 0x07c00000, 0x04a00707, - 0x075c00ff, 0x07c00000, 0x048d0707, 0x060ff07c, - 0x070ff07d, 0x070ff07e, 0x060ff07f, 0x060ff080, - 0x070ff081, 0x070ff082, 0x060ff083, 0x070ff084, - 0x060ff085, 0x0338600c, 0x03010000, 0x038a8714, - 0x048d0715, 0x03386000, 0x03020000, 0x07c00000, - 0x052e6200, 0x018004e8, 0x0648307a, 0x06818207, - 0x07a006a6, 0x0120971b, 0x038006bb, 0x04002089, - 0x04780102, 0x07f00000, 0x05001088, 0x04740101, - 0x03100000, 0x04780101, 0x07f00000, 0x060ff002, - 0x045c0401, 0x07818735, 0x00088001, 0x033e6000, - 0x070000c0, 0x0220901a, 0x05308000, 0x01012000, - 0x06a006b3, 0x00800786, 0x01209733, 0x038006bb, - 0x01209735, 0x0180021e, 0x040fd075, 0x040fd07a, - 0x040fd079, 0x0648307a, 0x04810740, 0x06780075, - 0x06000007, 0x0781874b, 0x05a00812, 0x06486075, - 0x07818205, 0x02490075, 0x0681821a, 0x04487075, - 0x07818753, 0x0448b07a, 0x0481074a, 0x00492075, - 0x07818766, 0x0080075e, 0x05308000, 0x03010000, - 0x06009079, 0x06a006b3, 0x03800014, 0x0448e0e6, - 0x068184b6, 0x01800203, 0x0648307a, 0x06818786, - 0x004940e6, 0x00a18910, 0x05308000, 0x0500e000, - 0x06009079, 0x06a006b3, 0x04008089, 0x07a006b8, - 0x00800786, 0x07a006a3, 0x05308000, 0x0700f000, - 0x06009079, 0x07000088, 0x05a0076f, 0x06a006b3, - 0x03800014, 0x004940e6, 0x00a18910, 0x05308000, - 0x01011000, 0x06009079, 0x07000088, 0x05a0076f, - 0x06a006b3, 0x03800014, 0x03386000, 0x07030000, - 0x07f00000, 0x058d0772, 0x033e6a00, 0x0600aa0e, - 0x02079051, 0x0448b075, 0x0581077d, 0x02493075, - 0x0581077d, 0x05301005, 0x03010000, 0x0080077f, - 0x05301006, 0x03010000, 0x05002087, 0x06485002, - 0x0681877f, 0x0744c000, 0x01088000, 0x02086001, - 0x07c00000, 0x05001088, 0x05a00799, 0x0644c001, - 0x00088001, 0x033e6a00, 0x0600aa0e, 0x004920e6, - 0x0681878f, 0x02079051, 0x048d078f, 0x060ff089, - 0x034990ff, 0x05810796, 0x03386005, 0x03010000, - 0x03800014, 0x03386006, 0x03010000, 0x03800014, - 0x058d0799, 0x03386000, 0x07030000, 0x07f00000, - 0x048d079d, 0x070ff087, 0x074850ff, 0x0681879e, - 0x07c00000, 0x048d07a2, 0x02386001, 0x07030000, - 0x07f00000, 0x058d07a6, 0x070ff087, 0x074850ff, - 0x068187a7, 0x07c00000, 0x05002087, 0x0049d002, - 0x068187ba, 0x002fb008, 0x067800e6, 0x07000041, - 0x002fb008, 0x068187ba, 0x04a007d0, 0x0448e002, - 0x058107bd, 0x0648a002, 0x068187c7, 0x06486002, - 0x048107c1, 0x02400057, 0x056a02ff, 0x07c00000, - 0x04a007d0, 0x06788102, 0x06000004, 0x068187ba, - 0x04002089, 0x070ff0d4, 0x045c0402, 0x077800ff, - 0x07f00000, 0x068187ba, 0x00202010, 0x008c07ba, - 0x07f00000, 0x06420002, 0x068187c8, 0x04a007a2, - 0x033e6a00, 0x0700aa0a, 0x07c00000, 0x07f00000, - 0x060ff0a2, 0x045a0202, 0x060ff0a2, 0x045c0402, - 0x078187d1, 0x07c00000, 0x04a002ad, 0x03495047, - 0x048107dc, 0x0320901d, 0x0080080e, 0x0220901f, - 0x0080080e, 0x014980e4, 0x05818014, 0x013e4000, - 0x07003000, 0x05600e35, 0x050f80ff, 0x04a0083d, - 0x01208003, 0x07a006b8, 0x018007f6, 0x03209009, - 0x0080080e, 0x03209011, 0x0080080e, 0x02209007, - 0x0080080e, 0x03209003, 0x0080080e, 0x00497043, - 0x068187ec, 0x00494043, 0x058107e8, 0x02209001, - 0x0080080e, 0x0220900d, 0x0080080e, 0x0320900f, - 0x0080080e, 0x03493000, 0x058107ff, 0x027c0045, - 0x070a0000, 0x0581080a, 0x0220900b, 0x0080080e, - 0x0320900c, 0x00800804, 0x02209013, 0x05308000, - 0x01012000, 0x06a006b3, 0x008001df, 0x03209005, - 0x0080080e, 0x072e500c, 0x00208002, 0x07a006b8, - 0x03800014, 0x05308000, 0x01012000, 0x06a006b3, - 0x018001d2, 0x04a002ad, 0x070ff02e, 0x045c0479, - 0x0481081a, 0x05308000, 0x05008000, 0x06009079, - 0x06a006b3, 0x07c00000, 0x053f2000, 0x0700c000, - 0x039d881b, 0x07c00000, 0x033e5000, 0x0700f000, - 0x01800824, 0x033e5000, 0x05008000, 0x024960e5, - 0x0581082e, 0x0249a0e5, 0x0481082a, 0x0302f041, - 0x052e4030, 0x033e5000, 0x0700a000, 0x072e500c, - 0x03800014, 0x050f8035, 0x04a0083d, 0x00017008, - 0x01018009, 0x033e5000, 0x07000c00, 0x05308000, - 0x07006000, 0x07009041, 0x06a006b3, 0x05008017, - 0x07009018, 0x0249a0e5, 0x07818178, 0x03800066, - 0x072d6000, 0x07f00000, 0x07f00000, 0x000110d0, - 0x010120d1, 0x062d6001, 0x07f00000, 0x07f00000, - 0x020130d0, 0x010140d1, 0x062d6002, 0x010170d4, - 0x07f00000, 0x020150d0, 0x030160d1, 0x053fa83a, - 0x06000008, 0x07c00000, 0x07600c41, 0x050f80ff, - 0x01202003, 0x073fa00a, 0x06000001, 0x07f00000, - 0x05601041, 0x050f80ff, 0x032fa071, 0x00800108, - 0x002fb001, 0x0180085c, 0x012fb000, 0x02386001, - 0x030e0000, 0x03076087, 0x059f085f, 0x03386000, - 0x03020000, 0x00498076, 0x078188b1, 0x00497076, - 0x0681886b, 0x04482076, 0x0781887d, 0x02496076, - 0x078188a0, 0x008008ae, 0x075a00ff, 0x059f086c, - 0x03386000, 0x03010000, 0x033e6000, 0x07003000, - 0x00492076, 0x048108ae, 0x00491076, 0x068188ae, - 0x02490076, 0x068188ae, 0x0249a0e6, 0x0581087b, - 0x07a0091d, 0x018008a5, 0x0245f076, 0x008008ae, - 0x004980e6, 0x058108b7, 0x070ff074, 0x0086088f, - 0x070ff072, 0x05500471, 0x050f80ff, 0x002fa819, - 0x049f0885, 0x02080001, 0x00081002, 0x01082003, - 0x05a008e7, 0x018608b7, 0x04a008d6, 0x0249a0e6, - 0x078188a5, 0x008008ae, 0x04a008d6, 0x033e6000, - 0x07002200, 0x030ef003, 0x02868897, 0x033e6000, - 0x07002e00, 0x0045807a, 0x0249a0e6, 0x0481089b, - 0x06a006a7, 0x018008a9, 0x0648c0e6, 0x048108ae, - 0x03386000, 0x030e0000, 0x0180049a, 0x04a008d6, - 0x030ef003, 0x038688a5, 0x070ff074, 0x00860894, - 0x033e6000, 0x07002200, 0x0249a0e6, 0x048108ae, - 0x03386000, 0x030e0000, 0x033e6000, 0x05008000, - 0x03800522, 0x03386000, 0x030e0000, 0x03800028, - 0x040fd079, 0x033e6000, 0x0500a200, 0x03386000, - 0x030e0000, 0x0080075e, 0x012098b7, 0x038006bb, - 0x02386001, 0x030e0000, 0x06604e79, 0x050f80ff, - 0x032fa009, 0x03070000, 0x06600c70, 0x050f80ff, - 0x053fa821, 0x06000038, 0x07f00000, 0x06601470, - 0x050f80ff, 0x032fa021, 0x060ff002, 0x018608d4, - 0x059f08c9, 0x03080000, 0x00081001, 0x00082002, - 0x03083003, 0x070ff087, 0x033e6000, 0x07000300, - 0x03386000, 0x030e0000, 0x07c00000, 0x0045807a, - 0x018008d1, 0x06604e79, 0x050f80ff, 0x032fa009, - 0x03070000, 0x06600c70, 0x050f80ff, 0x053fa822, - 0x06000038, 0x059f08de, 0x06000080, 0x05001081, - 0x05002082, 0x06003083, 0x06601470, 0x050f80ff, - 0x032fa022, 0x07c00000, 0x07420074, 0x058108fc, - 0x02400073, 0x060ff038, 0x00540473, 0x00d008fe, - 0x05600272, 0x050f80ff, 0x032fa009, 0x030ef000, - 0x0286090e, 0x01072000, 0x07600a00, 0x050f80ff, - 0x032fa009, 0x03681e00, 0x076c14ff, 0x0481890e, - 0x02073038, 0x05271006, 0x07c00000, 0x022ff001, - 0x008008fb, 0x02800904, 0x03800906, 0x02800908, - 0x0380090a, 0x0380090c, 0x018008ed, 0x05271006, - 0x008008fb, 0x05271009, 0x008008fb, 0x0527100c, - 0x008008fb, 0x0527100f, 0x008008fb, 0x05271012, - 0x008008fb, 0x032ff000, 0x008008fb, 0x02386001, - 0x030e0000, 0x05001087, 0x069f0913, 0x00494001, - 0x06810919, 0x03386000, 0x030e0000, 0x07c00000, - 0x03386000, 0x03010000, 0x033e6000, 0x07003000, - 0x00208080, 0x05001087, 0x00494001, 0x04818925, - 0x00497001, 0x04818938, 0x06420008, 0x0581891e, - 0x00208070, 0x05001087, 0x00494001, 0x0581892b, - 0x0760031e, 0x0380091e, 0x01208060, 0x05001087, - 0x00494001, 0x04818931, 0x0760031d, 0x0380091e, - 0x04a008d6, 0x033e6000, 0x07002200, 0x069f0934, - 0x03386000, 0x030e0000, 0x07c00000, 0x04a008d6, - 0x02800934, 0x9fdf5eba, 0x02800004, 0x00000000, - 0x00008000, 0x00000599, 0x033d0aaa, 0x070aaaaa, - 0x013d1aaa, 0x070aaaaa, 0x050f801e, 0x012fa8d1, - 0x050f801e, 0x043fa889, 0x0700000f, 0x03200005, - 0x07420000, 0x050fb000, 0x050f801e, 0x073fa011, - 0x06000038, 0x050f801e, 0x053fa859, 0x0700003a, - 0x050fe000, 0x0481800e, 0x07840024, 0x0595801d, - 0x030e0011, 0x072e4200, 0x03800018, 0x02920040, - 0x068b0023, 0x028a0064, 0x0778aae7, 0x06000001, - 0x02a18419, 0x079a0053, 0x05908018, 0x010170e1, - 0x01640817, 0x0482803d, 0x070ff017, 0x02d0002a, - 0x02800032, 0x02800034, 0x02800037, 0x0380003a, - 0x0280003d, 0x0280003d, 0x0280003d, 0x0280003d, - 0x03e00000, 0x03800018, 0x04908034, 0x030160e1, - 0x0380003f, 0x04908037, 0x030150e1, 0x0380003f, - 0x0590803a, 0x010140e1, 0x0380003f, 0x060fc013, - 0x06a00591, 0x03800018, 0x014940e4, 0x00a18043, - 0x03800024, 0x02681e0d, 0x050fb0ff, 0x04600875, - 0x050f80ff, 0x053fa809, 0x06000001, 0x05488003, - 0x04818052, 0x0400800d, 0x0120d000, 0x013e4000, - 0x05000200, 0x06009075, 0x04002076, 0x07a0057d, - 0x07c00000, 0x000170e3, 0x050fe017, 0x05878059, - 0x0547f417, 0x0301f0ff, 0x00800229, 0x054bc417, - 0x050fb0ff, 0x03640aff, 0x04828061, 0x0179fe17, - 0x070fffff, 0x030750ff, 0x0280037c, 0x050fd017, - 0x06a00591, 0x0380001d, 0x00018098, 0x07480018, - 0x04818079, 0x05481018, 0x04818076, 0x05482018, - 0x04818073, 0x07483018, 0x04818070, 0x002fb004, - 0x030190cc, 0x0380007b, 0x012fb003, 0x020190cb, - 0x0380007b, 0x002fb002, 0x030190ca, 0x0380007b, - 0x002fb001, 0x030190c9, 0x0380007b, 0x012fb000, - 0x020190c8, 0x00017086, 0x01491017, 0x07810084, - 0x04a00194, 0x07781817, 0x05000200, 0x037c00ff, - 0x05000200, 0x05810122, 0x078b0084, 0x03385000, - 0x03020000, 0x07780017, 0x0043dc07, 0x068181d6, - 0x056c0478, 0x0481013b, 0x056c0278, 0x07810090, - 0x05278000, 0x01800122, 0x05278000, 0x07483017, - 0x04810125, 0x05482017, 0x0481012c, 0x0448b076, - 0x06818110, 0x06601875, 0x050f80ff, 0x073fa022, - 0x0600003e, 0x06000080, 0x05001081, 0x05002082, - 0x06003083, 0x05004084, 0x04602075, 0x050f80ff, - 0x022fa02a, 0x04487076, 0x0581010f, 0x04604675, - 0x050f80ff, 0x032fa009, 0x03680600, 0x050010ff, - 0x056c02ff, 0x058180e7, 0x07000090, 0x074b0000, - 0x050fe000, 0x038600e7, 0x0560027b, 0x050f80ff, - 0x032fa009, 0x07f00000, 0x05600e00, 0x050f80ff, - 0x032fa009, 0x07f00000, 0x074b0000, 0x070ff08d, - 0x0179feff, 0x070000ff, 0x055c0400, 0x078100e7, - 0x070ff017, 0x037a00ff, 0x05000400, 0x010170ff, - 0x04604075, 0x050f80ff, 0x034a8400, 0x034a8800, - 0x05780100, 0x070000ff, 0x055a0400, 0x074b0a00, - 0x077bff00, 0x070000ff, 0x032fa00a, 0x07f00000, - 0x04603e75, 0x050f80ff, 0x07300fff, 0x070fffff, - 0x032fa00a, 0x07f00000, 0x04604a75, 0x050f80ff, - 0x0700008d, 0x017a0100, 0x07ffff00, 0x032fa00a, - 0x07f00000, 0x04604c75, 0x050f80ff, 0x07300fff, - 0x070fffff, 0x032fa00a, 0x07f00000, 0x06604275, - 0x050f80ff, 0x06000013, 0x032fa00a, 0x0245a076, - 0x018001de, 0x066c0001, 0x07818109, 0x05482017, - 0x05810109, 0x070ff09a, 0x017910ff, 0x03088888, - 0x057d10ff, 0x03088888, 0x05810109, 0x070ff09a, - 0x045a0201, 0x070ff09a, 0x045c0401, 0x048180f1, - 0x050020ff, 0x060000fb, 0x06483001, 0x048180fd, - 0x00680e01, 0x055c0400, 0x04810102, 0x004a4001, - 0x02400002, 0x046c0e02, 0x048180f8, 0x01800109, - 0x040fd002, 0x052e400c, 0x040080fb, 0x046a6108, - 0x06009075, 0x04002076, 0x07a0057d, 0x04603e75, - 0x050f80ff, 0x053fa842, 0x06000045, 0x048b010d, - 0x02085013, 0x05278000, 0x02075013, 0x060ff0fb, - 0x00d00113, 0x01800118, 0x0080011a, 0x0080011c, - 0x0180011e, 0x00800120, 0x062d0020, 0x01800122, - 0x062d0080, 0x01800122, 0x052d0200, 0x01800122, - 0x052d0800, 0x01800122, 0x033d0000, 0x06000002, - 0x03920024, 0x0584801d, 0x02800023, 0x040fe07f, - 0x00860134, 0x04a00154, 0x01920122, 0x040fe07f, - 0x06a68154, 0x01800122, 0x0760127b, 0x050f80ff, - 0x032fa009, 0x0744f000, 0x0760127b, 0x050f80ff, - 0x032fa00a, 0x02800097, 0x052e400c, 0x040080fb, - 0x046aa108, 0x06009075, 0x04002076, 0x07a0057d, - 0x01800122, 0x04278001, 0x05482017, 0x05810148, - 0x048b013e, 0x060ff086, 0x0349f0ff, 0x0581807b, - 0x07483017, 0x04810145, 0x050fd0ff, 0x040fe07f, - 0x06a68154, 0x01800122, 0x05004084, 0x04a0020b, - 0x01920122, 0x070ff07d, 0x0450047c, 0x056004ff, - 0x050f80ff, 0x032fa009, 0x070ff000, 0x00540479, - 0x030790ff, 0x0080012c, 0x04487076, 0x0581015c, - 0x04605875, 0x050f80ff, 0x032fa009, 0x060ff079, - 0x01540400, 0x0080015e, 0x060ff079, 0x0054047a, - 0x0582018d, 0x0581018d, 0x070ff07d, 0x0450047c, - 0x050f80ff, 0x002fa819, 0x048b0164, 0x02080001, - 0x00081002, 0x01082003, 0x048b0168, 0x04487076, - 0x0481016e, 0x02385001, 0x03010000, 0x00800170, - 0x03385000, 0x03010000, 0x03400078, 0x070ff003, - 0x04500479, 0x030790ff, 0x0340007e, 0x0642007f, - 0x0581018d, 0x070ff07e, 0x050f80ff, 0x032fa009, - 0x050fe000, 0x0286818c, 0x070ff07d, 0x056002ff, - 0x050f80ff, 0x032fa009, 0x0107d000, 0x0186018e, - 0x07600a7d, 0x050f80ff, 0x032fa009, 0x03681e00, - 0x0550041b, 0x050f80ff, 0x032fa009, 0x0107e000, - 0x070ff07e, 0x01800178, 0x0307c000, 0x07c00000, + 0x07a006af, 0x02800597, 0x0760127b, 0x050f80ff, + 0x032fa009, 0x0349c000, 0x04818564, 0x04601079, + 0x050f80ff, 0x073fa00a, 0x0600003d, 0x07f00000, + 0x06600a79, 0x050f80ff, 0x053fa80a, 0x06000010, + 0x02800597, 0x0046e07a, 0x02800592, 0x06009008, + 0x05308000, 0x05004000, 0x06a006b3, 0x02800597, + 0x0760187b, 0x050f80ff, 0x032fa011, 0x070ff000, + 0x04500401, 0x030460ff, 0x060ff025, 0x00540446, + 0x0682057f, 0x030460ff, 0x052e40c0, 0x04092046, + 0x0349a0e4, 0x0481857c, 0x003e4080, 0x0700c000, + 0x02800580, 0x003e4080, 0x05008000, 0x02800580, + 0x04092046, 0x070ff03a, 0x01868584, 0x013e4000, + 0x07000003, 0x04a002ad, 0x06600679, 0x050f80ff, + 0x00201007, 0x012fa80a, 0x0046047a, 0x034630ff, + 0x050020ff, 0x06003051, 0x04601079, 0x050f80ff, + 0x073fa012, 0x06000001, 0x02800597, 0x07a006a6, + 0x05308000, 0x03020000, 0x06009079, 0x06a006b3, + 0x033e6a00, 0x0700aa0a, 0x02079051, 0x03800014, + 0x06605679, 0x050f80ff, 0x032fa009, 0x070ff000, + 0x038605b4, 0x057dfeff, 0x07ffffff, 0x078105b4, + 0x050f8000, 0x012fa811, 0x0079fe02, 0x070000ff, + 0x077d66ff, 0x060000dc, 0x058185b4, 0x060ff001, + 0x008685b5, 0x064b0002, 0x06420002, 0x060ff002, + 0x05500400, 0x050f80ff, 0x05004084, 0x073fa00a, + 0x06000002, 0x07c00000, 0x04600201, 0x050f80ff, + 0x073fa009, 0x06000001, 0x0079fe02, 0x070000ff, + 0x077d72ff, 0x070000dd, 0x058185b4, 0x064b0002, + 0x06420002, 0x06000001, 0x028005ae, 0x0605004c, + 0x038005c6, 0x069305c2, 0x07a006ac, 0x054bc450, + 0x078105c9, 0x03d005ca, 0x038005c9, 0x028005da, + 0x028005dc, 0x02800668, 0x0380067b, 0x028005e9, + 0x028005dc, 0x02800632, 0x028005da, 0x02800683, + 0x0280067f, 0x028005da, 0x02800686, 0x0280069b, + 0x02800654, 0x028005da, 0x028005da, 0x022095da, + 0x038006bb, 0x073c3fff, 0x0700000f, 0x0379ff50, + 0x070fffff, 0x060ff079, 0x055c0450, 0x07810678, + 0x002fb008, 0x060ff079, 0x055c0450, 0x07810677, + 0x06a0069e, 0x02800670, 0x0179fe50, 0x070fffff, + 0x070050ff, 0x060ff079, 0x055c0405, 0x078105f3, + 0x002fb008, 0x060ff079, 0x055c0405, 0x05818674, + 0x073c3fff, 0x0700000f, 0x070ff087, 0x017980ff, + 0x0600f507, 0x04818602, 0x02203040, 0x05002087, + 0x0049d002, 0x04818602, 0x002fb008, 0x07006087, + 0x002fb008, 0x0149d006, 0x0681062c, 0x06930607, + 0x01257000, 0x052e4003, 0x072e5030, 0x0304c050, + 0x02400057, 0x06740057, 0x06000004, 0x0682001a, + 0x004940e6, 0x00a18910, 0x0049107a, 0x00a1859b, + 0x04002083, 0x07003084, 0x04004085, 0x04602679, + 0x050f80ff, 0x063fa01a, 0x06000001, 0x07a006a6, + 0x04a007a2, 0x033e6a00, 0x0700aa0a, 0x062e5020, + 0x04a007d0, 0x02798102, 0x070000ff, 0x007c8002, + 0x07000055, 0x06810629, 0x072e50c0, 0x0648a002, + 0x06810629, 0x078d0624, 0x03386006, 0x03010000, + 0x033e6000, 0x0700000c, 0x003e4002, 0x07000a00, + 0x03800599, 0x07420003, 0x058185fa, 0x00798002, + 0x0600f507, 0x04818602, 0x0280060b, 0x07930639, + 0x01257000, 0x073c3fff, 0x0700000f, 0x052e4003, + 0x072e5030, 0x0304c050, 0x067800e6, 0x07000041, + 0x0681063e, 0x04a007ab, 0x04818649, 0x002fb008, + 0x067800e6, 0x07000041, 0x07810644, 0x04a007ab, + 0x04818649, 0x062e5020, 0x003e4002, 0x07000a00, + 0x03e00000, 0x03800014, 0x06740057, 0x07000018, + 0x0682001a, 0x04a007a2, 0x033e6a00, 0x0700aa0a, + 0x002fb008, 0x04a007a2, 0x033e6a00, 0x0700aa0a, + 0x03800644, 0x0379ff50, 0x070fffff, 0x060ff079, + 0x055c0450, 0x0581865a, 0x0245507a, 0x002fb008, + 0x060ff079, 0x055c0450, 0x0581865f, 0x0245507a, + 0x002fb008, 0x05601050, 0x050f80ff, 0x012fa809, + 0x02455001, 0x05601050, 0x050f80ff, 0x012fa80a, + 0x03800671, 0x05958678, 0x0179fe50, 0x070fffff, + 0x045c042f, 0x05818678, 0x0202f051, 0x042e4020, + 0x03800671, 0x002fb008, 0x003e4002, 0x07000a00, + 0x0280001a, 0x05938677, 0x062e5020, 0x042e4002, + 0x002fb008, 0x013e4000, 0x05000e00, 0x0280001a, + 0x0179fe50, 0x070fffff, 0x010210ff, 0x0280001a, + 0x0179fe50, 0x070fffff, 0x050340ff, 0x03800671, + 0x023e5008, 0x05000800, 0x0280001a, 0x0179fe50, + 0x070fffff, 0x0102e0ff, 0x05602c2e, 0x050f80ff, + 0x05222000, 0x07223000, 0x05224000, 0x07225000, + 0x07226000, 0x05227000, 0x05228000, 0x07229000, + 0x0722a000, 0x0522b000, 0x063fa051, 0x07000011, + 0x0202c026, 0x0522d000, 0x052e400c, 0x0280001a, + 0x030430d4, 0x062e5008, 0x018001d2, 0x05601050, + 0x050f80ff, 0x032fa009, 0x03460000, 0x038006a9, + 0x0246007a, 0x0045207a, 0x028006a7, 0x0246007a, + 0x0600007a, 0x04601079, 0x050f80ff, 0x032fa00a, + 0x07c00000, 0x019286ac, 0x070500e1, 0x07c00000, + 0x0245f008, 0x068406b0, 0x020e0008, 0x07c00000, + 0x070ff009, 0x065a0008, 0x068406b5, 0x020e0008, + 0x07c00000, 0x078406b8, 0x020e0008, 0x07c00000, + 0x05308000, 0x0500d000, 0x06a006b3, 0x07a006c0, + 0x03800014, 0x052e4300, 0x072e500c, 0x073c3fff, + 0x0700000f, 0x07c00000, 0x04602608, 0x050f80ff, + 0x032fa011, 0x076a0000, 0x048186ce, 0x066a0001, + 0x068106ce, 0x06006051, 0x07c00000, 0x02206001, + 0x07c00000, 0x0678007a, 0x06000020, 0x058186d8, + 0x0049107a, 0x078106d8, 0x073c3fff, 0x0700000f, + 0x02800537, 0x040fd079, 0x0648307a, 0x078106dd, + 0x05a00812, 0x038006e2, 0x07a006a3, 0x05308000, + 0x05001000, 0x06009079, 0x06a006b3, 0x078d06e2, + 0x033e6a00, 0x0600aa0e, 0x02079051, 0x03386006, + 0x03010000, 0x03800014, 0x052e6200, 0x0648307a, + 0x078106ee, 0x05a00812, 0x0080078a, 0x07a006a3, + 0x05308000, 0x05001000, 0x06009079, 0x06a006b3, + 0x0080078a, 0x050010ff, 0x0448b07a, 0x04810702, + 0x0049107a, 0x04810702, 0x078d06f9, 0x04604679, + 0x050f80ff, 0x032fa009, 0x03680600, 0x056c02ff, + 0x06818702, 0x046c1001, 0x04810704, 0x056a02ff, + 0x07c00000, 0x04a00707, 0x075c00ff, 0x07c00000, + 0x048d0707, 0x060ff07c, 0x070ff07d, 0x070ff07e, + 0x060ff07f, 0x060ff080, 0x070ff081, 0x070ff082, + 0x060ff083, 0x070ff084, 0x060ff085, 0x0338600c, + 0x03010000, 0x038a8714, 0x048d0715, 0x03386000, + 0x03020000, 0x07c00000, 0x052e6200, 0x018004e8, + 0x0648307a, 0x06818207, 0x07a006a6, 0x0120971b, + 0x038006bb, 0x04002089, 0x04780102, 0x07f00000, + 0x05001088, 0x04740101, 0x03100000, 0x04780101, + 0x07f00000, 0x060ff002, 0x045c0401, 0x07818735, + 0x00088001, 0x033e6000, 0x070000c0, 0x0220901a, + 0x05308000, 0x01012000, 0x06a006b3, 0x00800786, + 0x01209733, 0x038006bb, 0x01209735, 0x0180021e, + 0x040fd075, 0x040fd07a, 0x040fd079, 0x0648307a, + 0x04810740, 0x06780075, 0x06000007, 0x0781874b, + 0x05a00812, 0x06486075, 0x07818205, 0x02490075, + 0x0681821a, 0x04487075, 0x07818753, 0x0448b07a, + 0x0481074a, 0x00492075, 0x07818766, 0x0080075e, + 0x05308000, 0x03010000, 0x06009079, 0x06a006b3, + 0x03800014, 0x0448e0e6, 0x068184b6, 0x01800203, + 0x0648307a, 0x06818786, 0x004940e6, 0x00a18910, + 0x05308000, 0x0500e000, 0x06009079, 0x06a006b3, + 0x04008089, 0x07a006b8, 0x00800786, 0x07a006a3, + 0x05308000, 0x0700f000, 0x06009079, 0x07000088, + 0x05a0076f, 0x06a006b3, 0x03800014, 0x004940e6, + 0x00a18910, 0x05308000, 0x01011000, 0x06009079, + 0x07000088, 0x05a0076f, 0x06a006b3, 0x03800014, + 0x03386000, 0x07030000, 0x07f00000, 0x058d0772, + 0x033e6a00, 0x0600aa0e, 0x02079051, 0x0448b075, + 0x0581077d, 0x02493075, 0x0581077d, 0x05301005, + 0x03010000, 0x0080077f, 0x05301006, 0x03010000, + 0x05002087, 0x06485002, 0x0681877f, 0x0744c000, + 0x01088000, 0x02086001, 0x07c00000, 0x05001088, + 0x05a00799, 0x0644c001, 0x00088001, 0x033e6a00, + 0x0600aa0e, 0x004920e6, 0x0681878f, 0x02079051, + 0x048d078f, 0x060ff089, 0x034990ff, 0x05810796, + 0x03386005, 0x03010000, 0x03800014, 0x03386006, + 0x03010000, 0x03800014, 0x058d0799, 0x03386000, + 0x07030000, 0x07f00000, 0x048d079d, 0x070ff087, + 0x074850ff, 0x0681879e, 0x07c00000, 0x048d07a2, + 0x02386001, 0x07030000, 0x07f00000, 0x058d07a6, + 0x070ff087, 0x074850ff, 0x068187a7, 0x07c00000, + 0x05002087, 0x0049d002, 0x068187ba, 0x002fb008, + 0x067800e6, 0x07000041, 0x002fb008, 0x068187ba, + 0x04a007d0, 0x0448e002, 0x058107bd, 0x0648a002, + 0x068187c7, 0x06486002, 0x048107c1, 0x02400057, + 0x056a02ff, 0x07c00000, 0x04a007d0, 0x06788102, + 0x06000004, 0x068187ba, 0x04002089, 0x070ff0d4, + 0x045c0402, 0x077800ff, 0x07f00000, 0x068187ba, + 0x00202010, 0x008c07ba, 0x07f00000, 0x06420002, + 0x068187c8, 0x04a007a2, 0x033e6a00, 0x0700aa0a, + 0x07c00000, 0x07f00000, 0x060ff0a2, 0x045a0202, + 0x060ff0a2, 0x045c0402, 0x078187d1, 0x07c00000, + 0x04a002ad, 0x03495047, 0x048107dc, 0x0320901d, + 0x0080080e, 0x0220901f, 0x0080080e, 0x014980e4, + 0x05818014, 0x013e4000, 0x07003000, 0x05600e35, + 0x050f80ff, 0x04a0083d, 0x01208003, 0x07a006b8, + 0x018007f6, 0x03209009, 0x0080080e, 0x03209011, + 0x0080080e, 0x02209007, 0x0080080e, 0x03209003, + 0x0080080e, 0x00497043, 0x068187ec, 0x00494043, + 0x058107e8, 0x02209001, 0x0080080e, 0x0220900d, + 0x0080080e, 0x0320900f, 0x0080080e, 0x03493000, + 0x058107ff, 0x027c0045, 0x070a0000, 0x0581080a, + 0x0220900b, 0x0080080e, 0x0320900c, 0x00800804, + 0x02209013, 0x05308000, 0x01012000, 0x06a006b3, + 0x008001df, 0x03209005, 0x0080080e, 0x072e500c, + 0x00208002, 0x07a006b8, 0x03800014, 0x05308000, + 0x01012000, 0x06a006b3, 0x018001d2, 0x04a002ad, + 0x070ff02e, 0x045c0479, 0x0481081a, 0x05308000, + 0x05008000, 0x06009079, 0x06a006b3, 0x07c00000, + 0x053f2000, 0x0700c000, 0x039d881b, 0x07c00000, + 0x033e5000, 0x0700f000, 0x01800824, 0x033e5000, + 0x05008000, 0x024960e5, 0x0581082e, 0x0249a0e5, + 0x0481082a, 0x0302f041, 0x052e4030, 0x033e5000, + 0x0700a000, 0x072e500c, 0x03800014, 0x050f8035, + 0x04a0083d, 0x00017008, 0x01018009, 0x033e5000, + 0x07000c00, 0x05308000, 0x07006000, 0x07009041, + 0x06a006b3, 0x05008017, 0x07009018, 0x0249a0e5, + 0x07818178, 0x03800066, 0x072d6000, 0x07f00000, + 0x07f00000, 0x000110d0, 0x010120d1, 0x062d6001, + 0x07f00000, 0x07f00000, 0x020130d0, 0x010140d1, + 0x062d6002, 0x010170d4, 0x07f00000, 0x020150d0, + 0x030160d1, 0x053fa83a, 0x06000008, 0x07c00000, + 0x07600c41, 0x050f80ff, 0x01202003, 0x073fa00a, + 0x06000001, 0x07f00000, 0x05601041, 0x050f80ff, + 0x032fa071, 0x00800108, 0x002fb001, 0x0180085c, + 0x012fb000, 0x02386001, 0x030e0000, 0x03076087, + 0x059f085f, 0x03386000, 0x03020000, 0x00498076, + 0x078188b1, 0x00497076, 0x0681886b, 0x04482076, + 0x0781887d, 0x02496076, 0x078188a0, 0x008008ae, + 0x075a00ff, 0x059f086c, 0x03386000, 0x03010000, + 0x033e6000, 0x07003000, 0x00492076, 0x048108ae, + 0x00491076, 0x068188ae, 0x02490076, 0x068188ae, + 0x0249a0e6, 0x0581087b, 0x07a0091d, 0x018008a5, + 0x0245f076, 0x008008ae, 0x004980e6, 0x058108b7, + 0x070ff074, 0x0086088f, 0x070ff072, 0x05500471, + 0x050f80ff, 0x002fa819, 0x049f0885, 0x02080001, + 0x00081002, 0x01082003, 0x05a008e7, 0x018608b7, + 0x04a008d6, 0x0249a0e6, 0x078188a5, 0x008008ae, + 0x04a008d6, 0x033e6000, 0x07002200, 0x030ef003, + 0x02868897, 0x033e6000, 0x07002e00, 0x0045807a, + 0x0249a0e6, 0x0481089b, 0x06a006a7, 0x018008a9, + 0x0648c0e6, 0x048108ae, 0x03386000, 0x030e0000, + 0x0180049a, 0x04a008d6, 0x030ef003, 0x038688a5, + 0x070ff074, 0x00860894, 0x033e6000, 0x07002200, + 0x0249a0e6, 0x048108ae, 0x03386000, 0x030e0000, + 0x033e6000, 0x05008000, 0x03800522, 0x03386000, + 0x030e0000, 0x03800028, 0x040fd079, 0x033e6000, + 0x0500a200, 0x03386000, 0x030e0000, 0x0080075e, + 0x012098b7, 0x038006bb, 0x02386001, 0x030e0000, + 0x06604e79, 0x050f80ff, 0x032fa009, 0x03070000, + 0x06600c70, 0x050f80ff, 0x053fa821, 0x06000038, + 0x07f00000, 0x06601470, 0x050f80ff, 0x032fa021, + 0x060ff002, 0x018608d4, 0x059f08c9, 0x03080000, + 0x00081001, 0x00082002, 0x03083003, 0x070ff087, + 0x033e6000, 0x07000300, 0x03386000, 0x030e0000, + 0x07c00000, 0x0045807a, 0x018008d1, 0x06604e79, + 0x050f80ff, 0x032fa009, 0x03070000, 0x06600c70, + 0x050f80ff, 0x053fa822, 0x06000038, 0x059f08de, + 0x06000080, 0x05001081, 0x05002082, 0x06003083, + 0x06601470, 0x050f80ff, 0x032fa022, 0x07c00000, + 0x07420074, 0x058108fc, 0x02400073, 0x060ff038, + 0x00540473, 0x00d008fe, 0x05600272, 0x050f80ff, + 0x032fa009, 0x030ef000, 0x0286090e, 0x01072000, + 0x07600a00, 0x050f80ff, 0x032fa009, 0x03681e00, + 0x076c14ff, 0x0481890e, 0x02073038, 0x05271006, + 0x07c00000, 0x022ff001, 0x008008fb, 0x02800904, + 0x03800906, 0x02800908, 0x0380090a, 0x0380090c, + 0x018008ed, 0x05271006, 0x008008fb, 0x05271009, + 0x008008fb, 0x0527100c, 0x008008fb, 0x0527100f, + 0x008008fb, 0x05271012, 0x008008fb, 0x032ff000, + 0x008008fb, 0x02386001, 0x030e0000, 0x05001087, + 0x069f0913, 0x00494001, 0x06810919, 0x03386000, + 0x030e0000, 0x07c00000, 0x03386000, 0x03010000, + 0x033e6000, 0x07003000, 0x00208080, 0x05001087, + 0x00494001, 0x04818925, 0x00497001, 0x04818938, + 0x06420008, 0x0581891e, 0x00208070, 0x05001087, + 0x00494001, 0x0581892b, 0x0760031e, 0x0380091e, + 0x01208060, 0x05001087, 0x00494001, 0x04818931, + 0x0760031d, 0x0380091e, 0x04a008d6, 0x033e6000, + 0x07002200, 0x069f0934, 0x03386000, 0x030e0000, + 0x07c00000, 0x04a008d6, 0x02800934, 0x9fdf5eba, + 0x02800004, 0x00000000, 0x00008000, 0x000005a0, + 0x033d0aaa, 0x070aaaaa, 0x013d1aaa, 0x070aaaaa, + 0x050f801e, 0x012fa8d1, 0x050f801e, 0x043fa889, + 0x0700000f, 0x03200005, 0x07420000, 0x050fb000, + 0x050f801e, 0x073fa011, 0x06000038, 0x050f801e, + 0x053fa859, 0x0700003a, 0x050fe000, 0x0481800e, + 0x07840024, 0x0595801d, 0x030e0011, 0x072e4200, + 0x03800018, 0x02920040, 0x068b0023, 0x028a0064, + 0x0778aae7, 0x06000001, 0x02a18419, 0x079a0053, + 0x05908018, 0x010170e1, 0x01640817, 0x0482803d, + 0x070ff017, 0x02d0002a, 0x02800032, 0x02800034, + 0x02800037, 0x0380003a, 0x0280003d, 0x0280003d, + 0x0280003d, 0x0280003d, 0x03e00000, 0x03800018, + 0x04908034, 0x030160e1, 0x0380003f, 0x04908037, + 0x030150e1, 0x0380003f, 0x0590803a, 0x010140e1, + 0x0380003f, 0x060fc013, 0x06a00598, 0x03800018, + 0x014940e4, 0x00a18043, 0x03800024, 0x02681e0d, + 0x050fb0ff, 0x04600875, 0x050f80ff, 0x053fa809, + 0x06000001, 0x05488003, 0x04818052, 0x0400800d, + 0x0120d000, 0x013e4000, 0x05000200, 0x06009075, + 0x04002076, 0x07a00584, 0x07c00000, 0x000170e3, + 0x050fe017, 0x05878059, 0x0547f417, 0x0301f0ff, + 0x00800229, 0x054bc417, 0x050fb0ff, 0x03640aff, + 0x04828061, 0x0179fe17, 0x070fffff, 0x030750ff, + 0x0280037c, 0x050fd017, 0x06a00598, 0x0380001d, + 0x00018098, 0x07480018, 0x04818079, 0x05481018, + 0x04818076, 0x05482018, 0x04818073, 0x07483018, + 0x04818070, 0x002fb004, 0x030190cc, 0x0380007b, + 0x012fb003, 0x020190cb, 0x0380007b, 0x002fb002, + 0x030190ca, 0x0380007b, 0x002fb001, 0x030190c9, + 0x0380007b, 0x012fb000, 0x020190c8, 0x00017086, + 0x01491017, 0x07810084, 0x04a00194, 0x07781817, + 0x05000200, 0x037c00ff, 0x05000200, 0x05810122, + 0x078b0084, 0x03385000, 0x03020000, 0x07780017, + 0x0043dc07, 0x068181d6, 0x056c0478, 0x0481013b, + 0x056c0278, 0x07810090, 0x05278000, 0x01800122, + 0x05278000, 0x07483017, 0x04810125, 0x05482017, + 0x0481012c, 0x0448b076, 0x06818110, 0x06601875, + 0x050f80ff, 0x073fa022, 0x0600003e, 0x06000080, + 0x05001081, 0x05002082, 0x06003083, 0x05004084, + 0x04602075, 0x050f80ff, 0x022fa02a, 0x04487076, + 0x0581010f, 0x04604675, 0x050f80ff, 0x032fa009, + 0x03680600, 0x050010ff, 0x056c02ff, 0x058180e7, + 0x07000090, 0x074b0000, 0x050fe000, 0x038600e7, + 0x0560027b, 0x050f80ff, 0x032fa009, 0x07f00000, + 0x05600e00, 0x050f80ff, 0x032fa009, 0x07f00000, + 0x074b0000, 0x070ff08d, 0x0179feff, 0x070000ff, + 0x055c0400, 0x078100e7, 0x070ff017, 0x037a00ff, + 0x05000400, 0x010170ff, 0x04604075, 0x050f80ff, + 0x034a8400, 0x034a8800, 0x05780100, 0x070000ff, + 0x055a0400, 0x074b0a00, 0x077bff00, 0x070000ff, + 0x032fa00a, 0x07f00000, 0x04603e75, 0x050f80ff, + 0x07300fff, 0x070fffff, 0x032fa00a, 0x07f00000, + 0x04604a75, 0x050f80ff, 0x0700008d, 0x017a0100, + 0x07ffff00, 0x032fa00a, 0x07f00000, 0x04604c75, + 0x050f80ff, 0x07300fff, 0x070fffff, 0x032fa00a, + 0x07f00000, 0x06604275, 0x050f80ff, 0x06000013, + 0x032fa00a, 0x0245a076, 0x018001de, 0x066c0001, + 0x07818109, 0x05482017, 0x05810109, 0x070ff09a, + 0x017910ff, 0x03088888, 0x057d10ff, 0x03088888, + 0x05810109, 0x070ff09a, 0x045a0201, 0x070ff09a, + 0x045c0401, 0x048180f1, 0x050020ff, 0x060000fb, + 0x06483001, 0x048180fd, 0x00680e01, 0x055c0400, + 0x04810102, 0x004a4001, 0x02400002, 0x046c0e02, + 0x048180f8, 0x01800109, 0x040fd002, 0x052e400c, + 0x040080fb, 0x046a6108, 0x06009075, 0x04002076, + 0x07a00584, 0x04603e75, 0x050f80ff, 0x053fa842, + 0x06000045, 0x048b010d, 0x02085013, 0x05278000, + 0x02075013, 0x060ff0fb, 0x00d00113, 0x01800118, + 0x0080011a, 0x0080011c, 0x0180011e, 0x00800120, + 0x062d0020, 0x01800122, 0x062d0080, 0x01800122, + 0x052d0200, 0x01800122, 0x052d0800, 0x01800122, + 0x033d0000, 0x06000002, 0x03920024, 0x0584801d, + 0x02800023, 0x040fe07f, 0x00860134, 0x04a00154, + 0x01920122, 0x040fe07f, 0x06a68154, 0x01800122, + 0x0760127b, 0x050f80ff, 0x032fa009, 0x0744f000, + 0x0760127b, 0x050f80ff, 0x032fa00a, 0x02800097, 0x052e400c, 0x040080fb, 0x046aa108, 0x06009075, - 0x04002076, 0x0380057d, 0x060ff075, 0x018601d4, - 0x060ff073, 0x00540419, 0x048201ab, 0x058101b7, - 0x050010ff, 0x00202010, 0x00642001, 0x0782819f, - 0x04002001, 0x040f8073, 0x024a3c02, 0x017a02ff, - 0x06000c98, 0x070fa0ff, 0x060ff002, 0x06500073, - 0x03610072, 0x045c0473, 0x068181ba, 0x03073072, - 0x008001ba, 0x036100ff, 0x050010ff, 0x03610072, - 0x00540473, 0x057dfeff, 0x07ffffff, 0x01400203, - 0x00202010, 0x01642003, 0x0782819f, 0x05002003, - 0x0180019f, 0x04002013, 0x04001013, 0x01294000, - 0x07480077, 0x068181d5, 0x06604e75, 0x050f80ff, - 0x053fa809, 0x06000001, 0x07f00000, 0x05601c03, - 0x050f80ff, 0x053fa809, 0x06000001, 0x05481003, - 0x078181d1, 0x060ff002, 0x04500401, 0x016480ff, - 0x068281d5, 0x07440077, 0x040080fb, 0x006b6108, - 0x06009075, 0x07a00578, 0x008001d5, 0x060ff002, - 0x045c0401, 0x068181d5, 0x01294000, 0x07c00000, - 0x040fd075, 0x050fd017, 0x060ff086, 0x077800ff, - 0x07000060, 0x037c00ff, 0x07000060, 0x078181d8, - 0x04487076, 0x058101f5, 0x07780017, 0x05000400, - 0x058101f5, 0x06601875, 0x050f80ff, 0x073fa022, - 0x0600003e, 0x0249a076, 0x078181ee, 0x048b01e9, - 0x04603e75, 0x050f80ff, 0x053fa842, 0x06000045, - 0x052e400c, 0x040080fb, 0x026b4108, 0x06009075, - 0x04002076, 0x07a0057d, 0x03800024, 0x06601875, - 0x050f80ff, 0x073fa022, 0x0600003e, 0x052e400c, - 0x04600875, 0x050f80ff, 0x053fa809, 0x06000001, - 0x05488003, 0x05810205, 0x0400d0fb, 0x066a810d, - 0x013e4000, 0x07000300, 0x03800024, 0x040080fb, - 0x066a8108, 0x06009075, 0x04002076, 0x07a0057d, - 0x03800024, 0x0240007f, 0x0742007e, 0x050f807e, - 0x032fa009, 0x050fe000, 0x02868225, 0x070ff07d, - 0x055c047b, 0x0481021a, 0x0760007d, 0x050f80ff, - 0x032fa009, 0x050fe000, 0x0286821a, 0x070ff07b, - 0x0107d0ff, 0x07600a7d, 0x050f80ff, 0x032fa009, - 0x03681e00, 0x0450041c, 0x0107e0ff, 0x050f80ff, - 0x032fa009, 0x050fe000, 0x01860227, 0x0307c000, - 0x07c00000, 0x040fd075, 0x02800591, 0x0460081f, - 0x050f80ff, 0x032fa039, 0x01021000, 0x03020005, - 0x01018006, 0x01683e21, 0x00d00231, 0x00800251, - 0x0080027c, 0x01800299, 0x03800311, 0x01800255, - 0x00800251, 0x00800251, 0x00800251, 0x00800251, - 0x00800251, 0x00800251, 0x00800251, 0x00800251, - 0x00800251, 0x0380032d, 0x00800251, 0x00800251, - 0x00800251, 0x00800251, 0x00800251, 0x00800251, - 0x00800251, 0x00800251, 0x00800251, 0x00800251, - 0x00800251, 0x00800251, 0x00800251, 0x00800251, - 0x00800251, 0x00800251, 0x00800251, 0x050fd0ff, - 0x06a00591, 0x03800018, 0x0380001d, 0x01494021, - 0x0481833e, 0x0400701f, 0x06a00370, 0x007a0101, - 0x07060000, 0x07303000, 0x07008290, 0x03496021, - 0x06818261, 0x06006013, 0x00800268, 0x02400010, - 0x04810261, 0x06006010, 0x0660361f, 0x050f80ff, - 0x073fa00a, 0x07000003, 0x072d0003, 0x029b8268, - 0x010b1000, 0x000b2001, 0x020b3002, 0x010b4003, - 0x020b5004, 0x030b6005, 0x010b7006, 0x063aa020, - 0x07000012, 0x070ff0f6, 0x03687eff, 0x06818273, - 0x06601220, 0x050f10ff, 0x063f3008, 0x06000008, - 0x062d0002, 0x00800254, 0x04007013, 0x06a00370, - 0x007a0101, 0x07050000, 0x07303000, 0x07008890, - 0x074d0005, 0x06006013, 0x072d0003, 0x039b8284, - 0x010b1000, 0x000b2001, 0x020b3002, 0x010b4003, - 0x020b5004, 0x030b6005, 0x010b7006, 0x04601c20, - 0x050f80ff, 0x022fa019, 0x04001002, 0x04002013, - 0x050f801e, 0x022fa01a, 0x073aa00c, 0x07000012, - 0x07300003, 0x06000008, 0x02800326, 0x04007013, - 0x06a00370, 0x007a0101, 0x03070000, 0x04602c1f, - 0x050f80ff, 0x073fa009, 0x06000004, 0x02499008, - 0x058102a6, 0x07303000, 0x07008890, 0x008002a8, - 0x07303000, 0x04008980, 0x05007003, 0x074d0005, - 0x06006013, 0x072d0003, 0x029b82ab, 0x010b1000, - 0x000b2001, 0x020b3002, 0x010b4003, 0x020b5004, - 0x030b6005, 0x010b7006, 0x04601620, 0x050f80ff, - 0x032fa021, 0x07f00000, 0x064b0002, 0x02499008, - 0x048102bc, 0x0644c002, 0x054b0400, 0x050040ff, - 0x06698104, 0x078182d1, 0x06000013, 0x04001013, - 0x04780102, 0x06000010, 0x06003013, 0x04004013, - 0x06005013, 0x06006013, 0x04007013, 0x00644015, - 0x048202cd, 0x04448002, 0x02205008, 0x050f801e, - 0x032fa042, 0x04008015, 0x03800309, 0x046c8004, - 0x068182df, 0x01208018, 0x06780002, 0x07000003, - 0x078182e2, 0x06003001, 0x06000013, 0x04001013, - 0x04004013, 0x06005013, 0x050f801e, 0x022fa032, - 0x03800309, 0x040fd01f, 0x06a00591, 0x03800018, - 0x0379ff03, 0x070000ff, 0x04488002, 0x048102e9, - 0x070ff003, 0x04500408, 0x050080ff, 0x0379ff00, - 0x070000ff, 0x06489002, 0x058102f0, 0x070ff000, - 0x04500408, 0x050080ff, 0x07005003, 0x05004000, - 0x06003001, 0x06000013, 0x04001013, 0x050f801e, - 0x022fa032, 0x07f00000, 0x06601e20, 0x050f80ff, - 0x022fa031, 0x07f00000, 0x07600c1e, 0x050f80ff, - 0x022fa032, 0x02680608, 0x07810309, 0x016408ff, - 0x057dfeff, 0x07ffffff, 0x034000ff, 0x045a0407, - 0x010b40ff, 0x06600908, 0x0669f908, 0x027a0008, - 0x04000120, 0x070aa0ff, 0x024a2408, 0x037a00ff, - 0x06000080, 0x070000ff, 0x02800326, 0x04007013, - 0x06a00370, 0x007a0101, 0x07030000, 0x07303000, - 0x07008190, 0x06006013, 0x02800319, 0x072d0003, - 0x009b8319, 0x010b1000, 0x000b2001, 0x020b3002, - 0x010b4003, 0x020b5004, 0x030b6005, 0x010b7006, - 0x073aa000, 0x07000003, 0x062d0002, 0x00800254, - 0x070ff0f6, 0x03687eff, 0x04818326, 0x050f101e, - 0x070f3000, 0x062d0002, 0x00800254, 0x073aa000, - 0x06000002, 0x072d0003, 0x009b832f, 0x070ff0f6, - 0x036830ff, 0x04818331, 0x070ff0f6, 0x036830ff, - 0x04818334, 0x0660301f, 0x070f00ff, 0x07300c00, - 0x07000005, 0x070f3000, 0x062d0002, 0x00800254, - 0x05474021, 0x04602020, 0x050f80ff, 0x053fa809, - 0x07000003, 0x06780007, 0x07ffff00, 0x07810347, - 0x03455021, 0x06602420, 0x050f80ff, 0x063fa019, - 0x06000002, 0x06003013, 0x01497021, 0x0581835f, - 0x04601020, 0x050f80ff, 0x053fa809, 0x06000001, - 0x0379ff03, 0x070000ff, 0x07420003, 0x04600220, - 0x050f80ff, 0x012fa809, 0x040fe001, 0x02860364, - 0x03200006, 0x0760141b, 0x050f80ff, 0x073fa009, - 0x06000001, 0x04008013, 0x0660181f, 0x050f80ff, - 0x022fa04a, 0x00800257, 0x012080c0, 0x0600901f, - 0x05002021, 0x07a0057d, 0x00800254, 0x06489076, - 0x0681036d, 0x02200020, 0x0280036e, 0x03200000, - 0x06006075, 0x02800376, 0x07489021, 0x07810374, - 0x03200030, 0x02800375, 0x03200011, 0x0600601f, - 0x04a0048f, 0x05600406, 0x050f80ff, 0x053fa809, - 0x06000002, 0x07c00000, 0x04600875, 0x050f80ff, - 0x032fa039, 0x03076000, 0x0107b005, 0x01018006, - 0x0448b076, 0x05818388, 0x06602475, 0x050f80ff, - 0x053fa811, 0x0700003c, 0x00077013, 0x050fe078, - 0x008683a4, 0x06a003a8, 0x029203a7, 0x060ff0fb, - 0x02d0038f, 0x02800394, 0x02800397, 0x0380039a, - 0x0280039d, 0x038003a0, 0x072d0030, 0x009b8394, - 0x01800412, 0x072d00c0, 0x009b8397, 0x01800412, - 0x072d0300, 0x019b839a, 0x01800412, 0x072d0c00, - 0x009b839d, 0x01800412, 0x033d0000, 0x07000003, - 0x019b83a0, 0x01800412, 0x040fd075, 0x050fd078, - 0x06a00591, 0x0380001d, 0x068b03a8, 0x03385000, - 0x07030000, 0x05600818, 0x050f80ff, 0x032fa009, - 0x07f00000, 0x054b0400, 0x0308a0ff, 0x0179fe00, - 0x070000ff, 0x010880ff, 0x0448b076, 0x078103c3, - 0x0560167b, 0x050f80ff, 0x002fa819, 0x02080002, - 0x01081003, 0x064b0001, 0x00082001, 0x02083001, - 0x02079001, 0x0207a001, 0x00084013, 0x0207f013, - 0x00800402, 0x06485076, 0x078103e4, 0x02465076, - 0x06601875, 0x050f80ff, 0x073fa021, 0x0600003e, + 0x04002076, 0x07a00584, 0x01800122, 0x04278001, + 0x05482017, 0x05810148, 0x048b013e, 0x060ff086, + 0x0349f0ff, 0x0581807b, 0x07483017, 0x04810145, + 0x050fd0ff, 0x040fe07f, 0x06a68154, 0x01800122, + 0x05004084, 0x04a0020b, 0x01920122, 0x070ff07d, + 0x0450047c, 0x056004ff, 0x050f80ff, 0x032fa009, + 0x070ff000, 0x00540479, 0x030790ff, 0x0080012c, + 0x04487076, 0x0581015c, 0x04605875, 0x050f80ff, + 0x032fa009, 0x060ff079, 0x01540400, 0x0080015e, + 0x060ff079, 0x0054047a, 0x0582018d, 0x0581018d, 0x070ff07d, 0x0450047c, 0x050f80ff, 0x002fa819, - 0x068b03ce, 0x02080001, 0x00081002, 0x01082003, - 0x03079003, 0x04487076, 0x068103dc, 0x00498076, - 0x03a1840a, 0x04605875, 0x050f80ff, 0x032fa009, - 0x03083000, 0x038003dd, 0x0208307a, 0x0340007e, - 0x0642007f, 0x068103f2, 0x070ff07e, 0x05a00178, - 0x009283f2, 0x01800409, 0x078b03e4, 0x06601875, - 0x050f80ff, 0x073fa041, 0x0600003e, 0x07f00000, - 0x04487076, 0x078103f0, 0x04605875, 0x050f80ff, - 0x032fa009, 0x03083000, 0x00498076, 0x03a1840a, - 0x06602875, 0x050f80ff, 0x073fa009, 0x06000007, - 0x0008400e, 0x04487076, 0x04810402, 0x078b03f9, - 0x04603e75, 0x050f80ff, 0x053fa841, 0x06000045, - 0x068b03fe, 0x02385001, 0x03010000, 0x01800405, - 0x048b0402, 0x03385000, 0x03010000, 0x04278001, - 0x040fe07f, 0x01860409, 0x00800154, 0x07c00000, - 0x04094013, 0x03073072, 0x07440077, 0x040080fb, - 0x006b6108, 0x06009075, 0x07a00578, 0x07c00000, - 0x00683e76, 0x05810417, 0x0448d076, 0x058104bb, - 0x018004f9, 0x07a0056c, 0x028003a7, 0x06000013, - 0x00201001, 0x00202002, 0x0778aae7, 0x06000001, - 0x04810468, 0x050fb000, 0x070ff000, 0x01d00422, - 0x0180043c, 0x00800437, 0x00800432, 0x0180042d, - 0x01800427, 0x077800e7, 0x06000001, 0x05810465, - 0x072e7200, 0x030190cc, 0x00800440, 0x016880e7, - 0x05810465, 0x042e7080, 0x020190cb, 0x00800440, - 0x016820e7, 0x05810465, 0x042e7020, 0x030190ca, - 0x00800440, 0x016808e7, 0x05810465, 0x042e7008, - 0x030190c9, 0x00800440, 0x016802e7, 0x05810465, - 0x042e7002, 0x020190c8, 0x07480077, 0x05810465, - 0x03460077, 0x060ff075, 0x01860465, 0x06003094, - 0x0748a003, 0x07818465, 0x01683e03, 0x02203010, - 0x01540403, 0x014a1a03, 0x060ff073, 0x00540419, - 0x05820472, 0x05810478, 0x050010ff, 0x01540403, - 0x04820454, 0x06003001, 0x034a3c03, 0x017a02ff, - 0x06000c98, 0x040f8073, 0x070fa0ff, 0x070ff003, - 0x06500073, 0x03610072, 0x045c0473, 0x0781845f, - 0x03073072, 0x05394000, 0x07000090, 0x07f00000, - 0x06003094, 0x07489003, 0x07818469, 0x03400000, - 0x076c0a00, 0x0681841c, 0x07c00000, 0x060ff073, - 0x00540419, 0x0581047e, 0x0482047c, 0x01683e03, - 0x02203010, 0x01540403, 0x014a1a03, 0x01800450, - 0x03610072, 0x00540473, 0x057dfeff, 0x07ffffff, - 0x034000ff, 0x01800450, 0x040fd075, 0x040fd073, - 0x040fd019, 0x01800465, 0x040fd075, 0x02800591, + 0x048b0164, 0x02080001, 0x00081002, 0x01082003, + 0x048b0168, 0x04487076, 0x0481016e, 0x02385001, + 0x03010000, 0x00800170, 0x03385000, 0x03010000, + 0x03400078, 0x070ff003, 0x04500479, 0x030790ff, + 0x0340007e, 0x0642007f, 0x0581018d, 0x070ff07e, + 0x050f80ff, 0x032fa009, 0x050fe000, 0x0286818c, + 0x070ff07d, 0x056002ff, 0x050f80ff, 0x032fa009, + 0x0107d000, 0x0186018e, 0x07600a7d, 0x050f80ff, + 0x032fa009, 0x03681e00, 0x0550041b, 0x050f80ff, + 0x032fa009, 0x0107e000, 0x070ff07e, 0x01800178, + 0x0307c000, 0x07c00000, 0x052e400c, 0x040080fb, + 0x046aa108, 0x06009075, 0x04002076, 0x03800584, + 0x060ff075, 0x018601d4, 0x060ff073, 0x00540419, + 0x048201ab, 0x058101b7, 0x050010ff, 0x00202010, + 0x00642001, 0x0782819f, 0x04002001, 0x040f8073, + 0x024a3c02, 0x017a02ff, 0x06000c98, 0x070fa0ff, + 0x060ff002, 0x06500073, 0x03610072, 0x045c0473, + 0x068181ba, 0x03073072, 0x008001ba, 0x036100ff, + 0x050010ff, 0x03610072, 0x00540473, 0x057dfeff, + 0x07ffffff, 0x01400203, 0x00202010, 0x01642003, + 0x0782819f, 0x05002003, 0x0180019f, 0x04002013, + 0x04001013, 0x01294000, 0x07480077, 0x068181d5, 0x06604e75, 0x050f80ff, 0x053fa809, 0x06000001, 0x07f00000, 0x05601c03, 0x050f80ff, 0x053fa809, - 0x06000001, 0x05481003, 0x07818465, 0x07440077, - 0x040080fb, 0x006b6108, 0x06009075, 0x07a00578, - 0x01800465, 0x0297849d, 0x07602418, 0x050f80ff, - 0x012fa809, 0x06780001, 0x070000ff, 0x075a0000, - 0x05602618, 0x050f80ff, 0x012fa809, 0x060ff001, - 0x0569feff, 0x054b08ff, 0x075a0000, 0x05600418, - 0x050f80ff, 0x012fa809, 0x040fe007, 0x028684a4, - 0x01204000, 0x018004b2, 0x00700101, 0x03010000, - 0x06780001, 0x07ff0000, 0x076c00ff, 0x078184ac, - 0x00700101, 0x03010000, 0x05600418, 0x050f80ff, - 0x012fa80a, 0x06780001, 0x07ff0000, 0x050040ff, - 0x0279ff01, 0x0700ffff, 0x05602618, 0x050f80ff, - 0x073fa009, 0x06000001, 0x0279ff02, 0x0700ffff, - 0x07c00000, 0x04007075, 0x0448b076, 0x048104d5, - 0x06489076, 0x048104c2, 0x03200030, 0x018004c3, + 0x06000001, 0x05481003, 0x078181d1, 0x060ff002, + 0x04500401, 0x016480ff, 0x068281d5, 0x07440077, + 0x040080fb, 0x006b6108, 0x06009075, 0x06a0057f, + 0x008001d5, 0x060ff002, 0x045c0401, 0x068181d5, + 0x01294000, 0x07c00000, 0x040fd075, 0x050fd017, + 0x060ff086, 0x077800ff, 0x07000060, 0x037c00ff, + 0x07000060, 0x078181d8, 0x04487076, 0x058101f5, + 0x07780017, 0x05000400, 0x058101f5, 0x06601875, + 0x050f80ff, 0x073fa022, 0x0600003e, 0x0249a076, + 0x078181ee, 0x048b01e9, 0x04603e75, 0x050f80ff, + 0x053fa842, 0x06000045, 0x052e400c, 0x040080fb, + 0x026b4108, 0x06009075, 0x04002076, 0x07a00584, + 0x03800024, 0x06601875, 0x050f80ff, 0x073fa022, + 0x0600003e, 0x052e400c, 0x04600875, 0x050f80ff, + 0x053fa809, 0x06000001, 0x05488003, 0x05810205, + 0x0400d0fb, 0x066a810d, 0x013e4000, 0x07000300, + 0x03800024, 0x040080fb, 0x066a8108, 0x06009075, + 0x04002076, 0x07a00584, 0x03800024, 0x0240007f, + 0x0742007e, 0x050f807e, 0x032fa009, 0x050fe000, + 0x02868225, 0x070ff07d, 0x055c047b, 0x0481021a, + 0x0760007d, 0x050f80ff, 0x032fa009, 0x050fe000, + 0x0286821a, 0x070ff07b, 0x0107d0ff, 0x07600a7d, + 0x050f80ff, 0x032fa009, 0x03681e00, 0x0450041c, + 0x0107e0ff, 0x050f80ff, 0x032fa009, 0x050fe000, + 0x01860227, 0x0307c000, 0x07c00000, 0x040fd075, + 0x02800598, 0x0460081f, 0x050f80ff, 0x032fa039, + 0x01021000, 0x03020005, 0x01018006, 0x01683e21, + 0x00d00231, 0x00800251, 0x0080027c, 0x01800299, + 0x03800311, 0x01800255, 0x00800251, 0x00800251, + 0x00800251, 0x00800251, 0x00800251, 0x00800251, + 0x00800251, 0x00800251, 0x00800251, 0x0380032d, + 0x00800251, 0x00800251, 0x00800251, 0x00800251, + 0x00800251, 0x00800251, 0x00800251, 0x00800251, + 0x00800251, 0x00800251, 0x00800251, 0x00800251, + 0x00800251, 0x00800251, 0x00800251, 0x00800251, + 0x00800251, 0x050fd0ff, 0x06a00598, 0x03800018, + 0x0380001d, 0x01494021, 0x0481833e, 0x0400701f, + 0x06a00370, 0x007a0101, 0x07060000, 0x07303000, + 0x07008290, 0x03496021, 0x06818261, 0x06006013, + 0x00800268, 0x02400010, 0x04810261, 0x06006010, + 0x0660361f, 0x050f80ff, 0x073fa00a, 0x07000003, + 0x072d0003, 0x029b8268, 0x010b1000, 0x000b2001, + 0x020b3002, 0x010b4003, 0x020b5004, 0x030b6005, + 0x010b7006, 0x063aa020, 0x07000012, 0x070ff0f6, + 0x03687eff, 0x06818273, 0x06601220, 0x050f10ff, + 0x063f3008, 0x06000008, 0x062d0002, 0x00800254, + 0x04007013, 0x06a00370, 0x007a0101, 0x07050000, + 0x07303000, 0x07008890, 0x074d0005, 0x06006013, + 0x072d0003, 0x039b8284, 0x010b1000, 0x000b2001, + 0x020b3002, 0x010b4003, 0x020b5004, 0x030b6005, + 0x010b7006, 0x04601c20, 0x050f80ff, 0x022fa019, + 0x04001002, 0x04002013, 0x050f801e, 0x022fa01a, + 0x073aa00c, 0x07000012, 0x07300003, 0x06000008, + 0x02800326, 0x04007013, 0x06a00370, 0x007a0101, + 0x03070000, 0x04602c1f, 0x050f80ff, 0x073fa009, + 0x06000004, 0x02499008, 0x058102a6, 0x07303000, + 0x07008890, 0x008002a8, 0x07303000, 0x04008980, + 0x05007003, 0x074d0005, 0x06006013, 0x072d0003, + 0x029b82ab, 0x010b1000, 0x000b2001, 0x020b3002, + 0x010b4003, 0x020b5004, 0x030b6005, 0x010b7006, + 0x04601620, 0x050f80ff, 0x032fa021, 0x07f00000, + 0x064b0002, 0x02499008, 0x048102bc, 0x0644c002, + 0x054b0400, 0x050040ff, 0x06698104, 0x078182d1, + 0x06000013, 0x04001013, 0x04780102, 0x06000010, + 0x06003013, 0x04004013, 0x06005013, 0x06006013, + 0x04007013, 0x00644015, 0x048202cd, 0x04448002, + 0x02205008, 0x050f801e, 0x032fa042, 0x04008015, + 0x03800309, 0x046c8004, 0x068182df, 0x01208018, + 0x06780002, 0x07000003, 0x078182e2, 0x06003001, + 0x06000013, 0x04001013, 0x04004013, 0x06005013, + 0x050f801e, 0x022fa032, 0x03800309, 0x040fd01f, + 0x06a00598, 0x03800018, 0x0379ff03, 0x070000ff, + 0x04488002, 0x048102e9, 0x070ff003, 0x04500408, + 0x050080ff, 0x0379ff00, 0x070000ff, 0x06489002, + 0x058102f0, 0x070ff000, 0x04500408, 0x050080ff, + 0x07005003, 0x05004000, 0x06003001, 0x06000013, + 0x04001013, 0x050f801e, 0x022fa032, 0x07f00000, + 0x06601e20, 0x050f80ff, 0x022fa031, 0x07f00000, + 0x07600c1e, 0x050f80ff, 0x022fa032, 0x02680608, + 0x07810309, 0x016408ff, 0x057dfeff, 0x07ffffff, + 0x034000ff, 0x045a0407, 0x010b40ff, 0x06600908, + 0x0669f908, 0x027a0008, 0x04000120, 0x070aa0ff, + 0x024a2408, 0x037a00ff, 0x06000080, 0x070000ff, + 0x02800326, 0x04007013, 0x06a00370, 0x007a0101, + 0x07030000, 0x07303000, 0x07008190, 0x06006013, + 0x02800319, 0x072d0003, 0x009b8319, 0x010b1000, + 0x000b2001, 0x020b3002, 0x010b4003, 0x020b5004, + 0x030b6005, 0x010b7006, 0x073aa000, 0x07000003, + 0x062d0002, 0x00800254, 0x070ff0f6, 0x03687eff, + 0x04818326, 0x050f101e, 0x070f3000, 0x062d0002, + 0x00800254, 0x073aa000, 0x06000002, 0x072d0003, + 0x009b832f, 0x070ff0f6, 0x036830ff, 0x04818331, + 0x070ff0f6, 0x036830ff, 0x04818334, 0x0660301f, + 0x070f00ff, 0x07300c00, 0x07000005, 0x070f3000, + 0x062d0002, 0x00800254, 0x05474021, 0x04602020, + 0x050f80ff, 0x053fa809, 0x07000003, 0x06780007, + 0x07ffff00, 0x07810347, 0x03455021, 0x06602420, + 0x050f80ff, 0x063fa019, 0x06000002, 0x06003013, + 0x01497021, 0x0581835f, 0x04601020, 0x050f80ff, + 0x053fa809, 0x06000001, 0x0379ff03, 0x070000ff, + 0x07420003, 0x04600220, 0x050f80ff, 0x012fa809, + 0x040fe001, 0x02860364, 0x03200006, 0x0760141b, + 0x050f80ff, 0x073fa009, 0x06000001, 0x04008013, + 0x0660181f, 0x050f80ff, 0x022fa04a, 0x00800257, + 0x012080c0, 0x0600901f, 0x05002021, 0x07a00584, + 0x00800254, 0x06489076, 0x0681036d, 0x02200020, + 0x0280036e, 0x03200000, 0x06006075, 0x02800376, + 0x07489021, 0x07810374, 0x03200030, 0x02800375, + 0x03200011, 0x0600601f, 0x04a0048f, 0x05600406, + 0x050f80ff, 0x053fa809, 0x06000002, 0x07c00000, + 0x04600875, 0x050f80ff, 0x032fa039, 0x03076000, + 0x0107b005, 0x01018006, 0x0448b076, 0x05818388, + 0x06602475, 0x050f80ff, 0x053fa811, 0x0700003c, + 0x00077013, 0x050fe078, 0x008683a4, 0x06a003a8, + 0x029203a7, 0x060ff0fb, 0x02d0038f, 0x02800394, + 0x02800397, 0x0380039a, 0x0280039d, 0x038003a0, + 0x072d0030, 0x009b8394, 0x01800412, 0x072d00c0, + 0x009b8397, 0x01800412, 0x072d0300, 0x019b839a, + 0x01800412, 0x072d0c00, 0x009b839d, 0x01800412, + 0x033d0000, 0x07000003, 0x019b83a0, 0x01800412, + 0x040fd075, 0x050fd078, 0x06a00598, 0x0380001d, + 0x068b03a8, 0x03385000, 0x07030000, 0x05600818, + 0x050f80ff, 0x032fa009, 0x07f00000, 0x054b0400, + 0x0308a0ff, 0x0179fe00, 0x070000ff, 0x010880ff, + 0x0448b076, 0x078103c3, 0x0560167b, 0x050f80ff, + 0x002fa819, 0x02080002, 0x01081003, 0x064b0001, + 0x00082001, 0x02083001, 0x02079001, 0x0207a001, + 0x00084013, 0x0207f013, 0x00800402, 0x06485076, + 0x078103e4, 0x02465076, 0x06601875, 0x050f80ff, + 0x073fa021, 0x0600003e, 0x070ff07d, 0x0450047c, + 0x050f80ff, 0x002fa819, 0x068b03ce, 0x02080001, + 0x00081002, 0x01082003, 0x03079003, 0x04487076, + 0x068103dc, 0x00498076, 0x03a1840a, 0x04605875, + 0x050f80ff, 0x032fa009, 0x03083000, 0x038003dd, + 0x0208307a, 0x0340007e, 0x0642007f, 0x068103f2, + 0x070ff07e, 0x05a00178, 0x009283f2, 0x01800409, + 0x078b03e4, 0x06601875, 0x050f80ff, 0x073fa041, + 0x0600003e, 0x07f00000, 0x04487076, 0x078103f0, + 0x04605875, 0x050f80ff, 0x032fa009, 0x03083000, + 0x00498076, 0x03a1840a, 0x06602875, 0x050f80ff, + 0x073fa009, 0x06000007, 0x0008400e, 0x04487076, + 0x04810402, 0x078b03f9, 0x04603e75, 0x050f80ff, + 0x053fa841, 0x06000045, 0x068b03fe, 0x02385001, + 0x03010000, 0x01800405, 0x048b0402, 0x03385000, + 0x03010000, 0x04278001, 0x040fe07f, 0x01860409, + 0x00800154, 0x07c00000, 0x04094013, 0x03073072, + 0x07440077, 0x040080fb, 0x006b6108, 0x06009075, + 0x06a0057f, 0x07c00000, 0x00683e76, 0x05810417, + 0x0448d076, 0x048104c2, 0x03800500, 0x06a00573, + 0x028003a7, 0x06000013, 0x00201001, 0x00202002, + 0x0778aae7, 0x06000001, 0x04810468, 0x050fb000, + 0x070ff000, 0x01d00422, 0x0180043c, 0x00800437, + 0x00800432, 0x0180042d, 0x01800427, 0x077800e7, + 0x06000001, 0x05810465, 0x072e7200, 0x030190cc, + 0x00800440, 0x016880e7, 0x05810465, 0x042e7080, + 0x020190cb, 0x00800440, 0x016820e7, 0x05810465, + 0x042e7020, 0x030190ca, 0x00800440, 0x016808e7, + 0x05810465, 0x042e7008, 0x030190c9, 0x00800440, + 0x016802e7, 0x05810465, 0x042e7002, 0x020190c8, + 0x07480077, 0x05810465, 0x03460077, 0x060ff075, + 0x01860465, 0x06003094, 0x0748a003, 0x07818465, + 0x01683e03, 0x02203010, 0x01540403, 0x014a1a03, + 0x060ff073, 0x00540419, 0x05820472, 0x05810478, + 0x050010ff, 0x01540403, 0x04820454, 0x06003001, + 0x034a3c03, 0x017a02ff, 0x06000c98, 0x040f8073, + 0x070fa0ff, 0x070ff003, 0x06500073, 0x03610072, + 0x045c0473, 0x0781845f, 0x03073072, 0x05394000, + 0x07000090, 0x07f00000, 0x06003094, 0x07489003, + 0x07818469, 0x03400000, 0x076c0a00, 0x0681841c, + 0x07c00000, 0x060ff073, 0x00540419, 0x0581047e, + 0x0482047c, 0x01683e03, 0x02203010, 0x01540403, + 0x014a1a03, 0x01800450, 0x03610072, 0x00540473, + 0x057dfeff, 0x07ffffff, 0x034000ff, 0x01800450, + 0x040fd075, 0x040fd073, 0x040fd019, 0x01800465, + 0x040fd075, 0x02800598, 0x06604e75, 0x050f80ff, + 0x053fa809, 0x06000001, 0x07f00000, 0x05601c03, + 0x050f80ff, 0x053fa809, 0x06000001, 0x05481003, + 0x07818465, 0x07440077, 0x040080fb, 0x006b6108, + 0x06009075, 0x06a0057f, 0x01800465, 0x0297849d, + 0x07602418, 0x050f80ff, 0x012fa809, 0x06780001, + 0x070000ff, 0x075a0000, 0x05602618, 0x050f80ff, + 0x012fa809, 0x060ff001, 0x0569feff, 0x054b08ff, + 0x075a0000, 0x05600418, 0x050f80ff, 0x012fa809, + 0x040fe007, 0x028684a4, 0x01204000, 0x008004b9, + 0x05600e06, 0x050f80ff, 0x073fa009, 0x06000002, + 0x07f00000, 0x064d0004, 0x00700104, 0x03010000, + 0x06780004, 0x07ff0000, 0x076c00ff, 0x078184b2, + 0x00700104, 0x03010000, 0x064d0004, 0x05600e06, + 0x050f80ff, 0x073fa00a, 0x06000002, 0x07f00000, + 0x044b0804, 0x0279ff01, 0x0700ffff, 0x05602618, + 0x050f80ff, 0x073fa009, 0x06000001, 0x0279ff02, + 0x0700ffff, 0x07c00000, 0x04007075, 0x0448b076, + 0x048104dc, 0x06489076, 0x058104c9, 0x03200030, + 0x018004ca, 0x03200011, 0x06006075, 0x06a00376, + 0x007a0101, 0x07060000, 0x07303000, 0x07008290, + 0x02496076, 0x078184d4, 0x06006013, 0x008004ef, + 0x02400010, 0x058104d4, 0x06006010, 0x06603675, + 0x050f80ff, 0x073fa00a, 0x07000003, 0x008004ef, + 0x0600007a, 0x02493076, 0x068184e5, 0x06602e75, + 0x050f80ff, 0x032fa009, 0x060ff07a, 0x05500400, + 0x070000ff, 0x06473076, 0x06602e75, 0x050f80ff, + 0x032fa00a, 0x07a00369, 0x007a0101, 0x03010000, + 0x06303008, 0x05008000, 0x0600600e, 0x072d0003, + 0x029b84ef, 0x050a4000, 0x060a5001, 0x060a6002, + 0x050a7003, 0x040a8004, 0x070a9005, 0x050ae006, + 0x053079a0, 0x0600000e, 0x06489076, 0x048104fd, + 0x06446007, 0x060a0007, 0x062d0002, 0x028003a7, + 0x00683e76, 0x076c0aff, 0x0681052f, 0x04007013, + 0x06489076, 0x06810508, 0x03200030, 0x03800509, 0x03200011, 0x06006075, 0x06a00376, 0x007a0101, - 0x07060000, 0x07303000, 0x07008290, 0x02496076, - 0x068184cd, 0x06006013, 0x018004e8, 0x02400010, - 0x048104cd, 0x06006010, 0x06603675, 0x050f80ff, - 0x073fa00a, 0x07000003, 0x018004e8, 0x0600007a, - 0x02493076, 0x078184de, 0x06602e75, 0x050f80ff, - 0x032fa009, 0x060ff07a, 0x05500400, 0x070000ff, - 0x06473076, 0x06602e75, 0x050f80ff, 0x032fa00a, - 0x07a00369, 0x007a0101, 0x03010000, 0x06303008, - 0x05008000, 0x0600600e, 0x072d0003, 0x039b84e8, + 0x03070000, 0x04602c75, 0x050f80ff, 0x053fa809, + 0x06000001, 0x03499003, 0x07810518, 0x07303000, + 0x07008890, 0x053079a0, 0x0700000c, 0x0280051c, + 0x07303000, 0x04008980, 0x04307920, 0x0700000c, + 0x074d0005, 0x06006013, 0x072d0003, 0x019b851e, 0x050a4000, 0x060a5001, 0x060a6002, 0x050a7003, - 0x040a8004, 0x070a9005, 0x050ae006, 0x053079a0, - 0x0600000e, 0x06489076, 0x058104f6, 0x06446007, - 0x060a0007, 0x062d0002, 0x028003a7, 0x00683e76, - 0x076c0aff, 0x07810528, 0x04007013, 0x06489076, - 0x06810501, 0x03200030, 0x02800502, 0x03200011, - 0x06006075, 0x06a00376, 0x007a0101, 0x03070000, - 0x04602c75, 0x050f80ff, 0x053fa809, 0x06000001, - 0x03499003, 0x07810511, 0x07303000, 0x07008890, - 0x053079a0, 0x0700000c, 0x02800515, 0x07303000, - 0x04008980, 0x04307920, 0x0700000c, 0x074d0005, - 0x06006013, 0x072d0003, 0x019b8517, 0x050a4000, + 0x040a8004, 0x070a9005, 0x050ae006, 0x007a0107, + 0x06000020, 0x06489076, 0x0681052c, 0x06446007, + 0x060a0007, 0x062d0002, 0x028003a7, 0x06602e75, + 0x050f80ff, 0x032fa009, 0x060ff07a, 0x05500400, + 0x070000ff, 0x06473076, 0x06602e75, 0x050f80ff, + 0x032fa00a, 0x04007075, 0x07a00369, 0x007a0101, + 0x03010000, 0x06303008, 0x07008800, 0x074d0005, + 0x06600a75, 0x050f80ff, 0x073fa009, 0x07000003, + 0x07f00000, 0x054b0406, 0x045a0404, 0x050040ff, + 0x0600600e, 0x072d0003, 0x009b8549, 0x050a4000, 0x060a5001, 0x060a6002, 0x050a7003, 0x040a8004, - 0x070a9005, 0x050ae006, 0x007a0107, 0x06000020, - 0x06489076, 0x06810525, 0x06446007, 0x060a0007, - 0x062d0002, 0x028003a7, 0x06602e75, 0x050f80ff, - 0x032fa009, 0x060ff07a, 0x05500400, 0x070000ff, - 0x06473076, 0x06602e75, 0x050f80ff, 0x032fa00a, - 0x04007075, 0x07a00369, 0x007a0101, 0x03010000, - 0x06303008, 0x07008800, 0x074d0005, 0x06600a75, - 0x050f80ff, 0x073fa009, 0x07000003, 0x07f00000, - 0x054b0406, 0x045a0404, 0x050040ff, 0x0600600e, - 0x072d0003, 0x019b8542, 0x050a4000, 0x060a5001, - 0x060a6002, 0x050a7003, 0x040a8004, 0x070a9005, - 0x050ae006, 0x04307920, 0x0600000e, 0x06307d20, - 0x0600000e, 0x0648c076, 0x05818553, 0x04307920, - 0x0600000e, 0x06489076, 0x07810556, 0x06446007, - 0x060a0007, 0x062d0002, 0x028003a7, 0x072d0003, - 0x019b8559, 0x070ff0f6, 0x03687eff, 0x0481855b, - 0x050f2074, 0x06489076, 0x06810562, 0x06446007, - 0x060a0007, 0x040070fb, 0x046a7007, 0x050f40ff, - 0x062d0002, 0x028003a7, 0x01208060, 0x0600901f, - 0x05002021, 0x0380057d, 0x040080fb, 0x066ae108, - 0x06009075, 0x04002076, 0x0380057d, 0x03201100, - 0x04848576, 0x06420001, 0x05818572, 0x02800594, - 0x020e0008, 0x07c00000, 0x03201100, 0x0484858a, - 0x06420001, 0x04818579, 0x02800594, 0x050fd009, - 0x040fd008, 0x03201100, 0x05848584, 0x06420001, - 0x04818580, 0x02800594, 0x007a0102, 0x04000101, - 0x05600809, 0x050f80ff, 0x073fa00a, 0x06000001, - 0x020e0008, 0x0784058e, 0x030e0009, 0x07c00000, - 0x01011009, 0x052e4300, 0x07c00000, 0x052e400f, - 0x01208090, 0x03800571, 0x070fc0ff, 0x040f8013, - 0x032fa009, 0x02800597, 0x32e23120, 0x02800004, - 0x00000000, 0x0000a000, 0x0000059b, 0x033d0aaa, - 0x070aaaaa, 0x013d1aaa, 0x070aaaaa, 0x028c03ce, - 0x048e0445, 0x048d0451, 0x018f04b8, 0x02910013, - 0x040f7029, 0x02860013, 0x066c001f, 0x048104d3, - 0x066c0a1f, 0x07810500, 0x040f702f, 0x0386001d, - 0x06000010, 0x050fb000, 0x066c0079, 0x07810541, - 0x0398001d, 0x03400000, 0x076c0a00, 0x04818016, - 0x07960021, 0x05998021, 0x06a0009e, 0x02800008, - 0x050f7012, 0x05a683a9, 0x04908008, 0x030150e1, - 0x06780015, 0x07fffff0, 0x06810064, 0x0079fe15, - 0x031fffff, 0x030160ff, 0x064bd415, 0x03d0002d, - 0x01800174, 0x028000c2, 0x03800035, 0x02800040, - 0x0380004b, 0x03800056, 0x02800076, 0x02800076, - 0x040f7025, 0x01868039, 0x02026016, 0x0280003d, - 0x06600025, 0x050f80ff, 0x073fa00a, 0x0600000b, - 0x02025016, 0x02400029, 0x03800078, 0x050f7021, - 0x01868044, 0x00022016, 0x03800048, 0x07600021, - 0x050f80ff, 0x073fa00a, 0x0600000b, 0x00021016, - 0x02400029, 0x03800078, 0x040f7023, 0x0086804f, - 0x00024016, 0x03800053, 0x06600023, 0x050f80ff, - 0x073fa00a, 0x0600000b, 0x02023016, 0x02400029, - 0x03800078, 0x04600816, 0x050f80ff, 0x012fa839, - 0x06780004, 0x07ffff00, 0x037c00ff, 0x05000700, - 0x06810062, 0x0448e001, 0x04818062, 0x07a000a9, - 0x03800078, 0x040fd016, 0x03800078, 0x0279f015, - 0x07ffffff, 0x04818076, 0x060ff015, 0x03d00069, - 0x03800071, 0x02800073, 0x02800076, 0x02800076, + 0x070a9005, 0x050ae006, 0x04307920, 0x0600000e, + 0x06307d20, 0x0600000e, 0x0648c076, 0x0581855a, + 0x04307920, 0x0600000e, 0x06489076, 0x0681055d, + 0x06446007, 0x060a0007, 0x062d0002, 0x028003a7, + 0x072d0003, 0x019b8560, 0x070ff0f6, 0x03687eff, + 0x04818562, 0x050f2074, 0x06489076, 0x07810569, + 0x06446007, 0x060a0007, 0x040070fb, 0x046a7007, + 0x050f40ff, 0x062d0002, 0x028003a7, 0x01208060, + 0x0600901f, 0x05002021, 0x03800584, 0x040080fb, + 0x066ae108, 0x06009075, 0x04002076, 0x03800584, + 0x03201100, 0x0584857d, 0x06420001, 0x04818579, + 0x0280059b, 0x020e0008, 0x07c00000, 0x03201100, + 0x04848591, 0x06420001, 0x04818580, 0x0280059b, + 0x050fd009, 0x040fd008, 0x03201100, 0x0584858b, + 0x06420001, 0x05818587, 0x0280059b, 0x007a0102, + 0x04000101, 0x05600809, 0x050f80ff, 0x073fa00a, + 0x06000001, 0x020e0008, 0x07840595, 0x030e0009, + 0x07c00000, 0x01011009, 0x052e4300, 0x07c00000, + 0x052e400f, 0x01208090, 0x03800578, 0x070fc0ff, + 0x040f8013, 0x032fa009, 0x0280059e, 0x07d53768, + 0x02800004, 0x00000000, 0x0000a000, 0x000005a3, + 0x033d0aaa, 0x070aaaaa, 0x013d1aaa, 0x070aaaaa, + 0x028c03d6, 0x058e044d, 0x058d0459, 0x018f04c0, + 0x02910013, 0x040f7029, 0x02860013, 0x066c001f, + 0x058104db, 0x066c0a1f, 0x06810508, 0x040f702f, + 0x0386001d, 0x06000010, 0x050fb000, 0x066c0079, + 0x06810549, 0x0398001d, 0x03400000, 0x076c0a00, + 0x04818016, 0x07960021, 0x05998021, 0x06a0009e, + 0x02800008, 0x050f7012, 0x05a683b1, 0x04908008, + 0x030150e1, 0x06780015, 0x07fffff0, 0x06810064, + 0x0079fe15, 0x031fffff, 0x030160ff, 0x064bd415, + 0x03d0002d, 0x01800174, 0x028000c2, 0x03800035, + 0x02800040, 0x0380004b, 0x03800056, 0x02800076, + 0x02800076, 0x040f7025, 0x01868039, 0x02026016, + 0x0280003d, 0x06600025, 0x050f80ff, 0x073fa00a, + 0x0600000b, 0x02025016, 0x02400029, 0x03800078, + 0x050f7021, 0x01868044, 0x00022016, 0x03800048, + 0x07600021, 0x050f80ff, 0x073fa00a, 0x0600000b, + 0x00021016, 0x02400029, 0x03800078, 0x040f7023, + 0x0086804f, 0x00024016, 0x03800053, 0x06600023, + 0x050f80ff, 0x073fa00a, 0x0600000b, 0x02023016, + 0x02400029, 0x03800078, 0x04600816, 0x050f80ff, + 0x012fa839, 0x06780004, 0x07ffff00, 0x037c00ff, + 0x05000700, 0x06810062, 0x0448e001, 0x04818062, + 0x07a000a9, 0x03800078, 0x040fd016, 0x03800078, + 0x0279f015, 0x07ffffff, 0x04818076, 0x060ff015, + 0x03d00069, 0x03800071, 0x02800073, 0x02800076, 0x02800076, 0x02800076, 0x02800076, 0x02800076, - 0x03e00000, 0x02800008, 0x04908073, 0x010140e1, - 0x03800078, 0x060fc010, 0x07a00593, 0x02800008, - 0x072e4800, 0x03016011, 0x0186807e, 0x060fc010, - 0x07c00000, 0x00011010, 0x0647f016, 0x072d000c, - 0x009b8080, 0x04600816, 0x050f80ff, 0x012fa839, - 0x0249f001, 0x04818097, 0x06780004, 0x07ffff00, - 0x037c00ff, 0x07000300, 0x0481809b, 0x0448e001, - 0x0481809b, 0x0079c101, 0x07ffffff, 0x007a0b01, - 0x03800000, 0x04600816, 0x050f80ff, 0x012fa80a, - 0x062d0008, 0x038000a9, 0x062d0008, 0x00011016, - 0x052e4c00, 0x07c00000, 0x062d0008, 0x040fd016, - 0x07c00000, 0x030160eb, 0x0249f016, 0x0481807f, - 0x04600816, 0x050f80ff, 0x012fa839, 0x06783f01, - 0x03800060, 0x007c0b01, 0x03800000, 0x0581809c, - 0x06601807, 0x070030ff, 0x050f80ff, 0x012fa809, - 0x050f8003, 0x073fa00a, 0x0600000b, 0x040f7001, - 0x038600b7, 0x04600201, 0x050f80ff, 0x073fa00a, - 0x0600000b, 0x07c00000, 0x050f702e, 0x008680bc, - 0x0002e016, 0x0202f016, 0x028000c1, 0x0760002e, - 0x050f80ff, 0x073fa00a, 0x0600000b, 0x0002e016, - 0x07c00000, 0x0430e004, 0x03080000, 0x06601216, - 0x050f80ff, 0x073fa011, 0x07000005, 0x07f00000, - 0x0660000b, 0x050f80ff, 0x022fa019, 0x0700c000, - 0x0279ff02, 0x0700ffff, 0x00017002, 0x0760220a, - 0x050f80ff, 0x012fa809, 0x0079fe01, 0x0700ffff, - 0x055c0417, 0x06818162, 0x0400d010, 0x0548e00c, - 0x078100db, 0x0245600e, 0x0548400c, 0x068100e3, - 0x07300000, 0x05001000, 0x04602c16, 0x050f80ff, - 0x032fa00a, 0x0644900e, 0x07600a0a, 0x050f80ff, - 0x032fa039, 0x02015002, 0x064b0015, 0x0379ff03, - 0x070000ff, 0x01018003, 0x05420418, 0x058180ee, - 0x0045700e, 0x0179fe06, 0x070000ff, 0x0700f0ff, - 0x06006010, 0x04007010, 0x0760220a, 0x050f80ff, - 0x073fa009, 0x06000004, 0x07f00000, 0x064b8408, - 0x040080ce, 0x04500408, 0x050f80ff, 0x073fa009, - 0x06000004, 0x07f00000, 0x04603216, 0x050f80ff, - 0x063fa02a, 0x06000002, 0x0769ff00, 0x076c9000, - 0x04810108, 0x076cd400, 0x07818109, 0x0444b00e, - 0x0368060f, 0x00d0010b, 0x00800115, 0x00800110, - 0x01800117, 0x0180010f, 0x00800162, 0x007a010e, - 0x07001800, 0x076c3000, 0x03a1829a, 0x07818147, - 0x0220f002, 0x0180011e, 0x0120d081, 0x007a010e, - 0x05001000, 0x076c3000, 0x03a1829a, 0x07818147, - 0x0220f004, 0x0548400c, 0x04810125, 0x0220f00e, - 0x0444100d, 0x0748600c, 0x04810125, 0x0444200d, - 0x0548700c, 0x05810128, 0x0644900d, 0x024a1815, - 0x004a2c15, 0x04500415, 0x070030ff, 0x0700000f, - 0x017a0100, 0x05004000, 0x0400100e, 0x05304000, - 0x07000030, 0x04002010, 0x0600500d, 0x0700600a, - 0x0400700b, 0x05008017, 0x06600616, 0x050f80ff, - 0x022fa04a, 0x0448b00e, 0x05818056, 0x050f7027, - 0x02868140, 0x00028016, 0x01800144, 0x07600027, - 0x050f80ff, 0x073fa00a, 0x0600000b, 0x00027016, - 0x02400029, 0x03800078, 0x040fd016, 0x050fd00a, - 0x07600a0a, 0x050f80ff, 0x032fa009, 0x05780100, - 0x07ffff00, 0x017a0700, 0x06000001, 0x050f80ff, - 0x032fa00a, 0x07f00000, 0x05600e0a, 0x050f80ff, - 0x022fa019, 0x05780100, 0x07ffff00, 0x076a0500, - 0x00202001, 0x0560200a, 0x050f80ff, 0x012fa809, - 0x06003010, 0x05600e0a, 0x050f80ff, 0x032fa022, - 0x0180016c, 0x050fd00a, 0x07600a0a, 0x050f80ff, - 0x032fa009, 0x0379ff00, 0x0380ffff, 0x0145b000, - 0x07600a0a, 0x050f80ff, 0x032fa00a, 0x07303000, - 0x07000030, 0x04600e16, 0x050f80ff, 0x053fa80a, - 0x06000001, 0x06a00398, 0x03800078, 0x06600616, - 0x050f80ff, 0x012fa841, 0x0079fe01, 0x070000ff, - 0x070090ff, 0x0500d006, 0x0600a007, 0x0400b008, - 0x07600a0a, 0x050f80ff, 0x032fa009, 0x0769ff00, - 0x0660000b, 0x050f80ff, 0x073fa009, 0x07000006, - 0x07f00000, 0x04602c16, 0x050f80ff, 0x053fa809, - 0x0600000b, 0x07479017, 0x056c0e09, 0x0481018f, - 0x076c0c09, 0x01a18593, 0x0560160a, 0x050f80ff, - 0x053fa809, 0x06000007, 0x07f00000, 0x074b000f, - 0x0368060f, 0x00d00197, 0x0080019b, 0x01800214, - 0x018001d1, 0x0180023c, 0x0748f00f, 0x0581023a, - 0x0400d010, 0x0530e042, 0x02080002, 0x0578400f, - 0x06000020, 0x017c40ff, 0x06000020, 0x068181a8, - 0x0748500c, 0x048101a8, 0x03459017, 0x04602c16, + 0x02800076, 0x03e00000, 0x02800008, 0x04908073, + 0x010140e1, 0x03800078, 0x060fc010, 0x06a0059b, + 0x02800008, 0x072e4800, 0x03016011, 0x0186807e, + 0x060fc010, 0x07c00000, 0x00011010, 0x0647f016, + 0x072d000c, 0x009b8080, 0x04600816, 0x050f80ff, + 0x012fa839, 0x0249f001, 0x04818097, 0x06780004, + 0x07ffff00, 0x037c00ff, 0x07000300, 0x0481809b, + 0x0448e001, 0x0481809b, 0x0079c101, 0x07ffffff, + 0x007a0b01, 0x03800000, 0x04600816, 0x050f80ff, + 0x012fa80a, 0x062d0008, 0x038000a9, 0x062d0008, + 0x00011016, 0x052e4c00, 0x07c00000, 0x062d0008, + 0x040fd016, 0x07c00000, 0x030160eb, 0x0249f016, + 0x0481807f, 0x04600816, 0x050f80ff, 0x012fa839, + 0x06783f01, 0x03800060, 0x007c0b01, 0x03800000, + 0x0581809c, 0x06601807, 0x070030ff, 0x050f80ff, + 0x012fa809, 0x050f8003, 0x073fa00a, 0x0600000b, + 0x040f7001, 0x038600b7, 0x04600201, 0x050f80ff, + 0x073fa00a, 0x0600000b, 0x07c00000, 0x050f702e, + 0x008680bc, 0x0002e016, 0x0202f016, 0x028000c1, + 0x0760002e, 0x050f80ff, 0x073fa00a, 0x0600000b, + 0x0002e016, 0x07c00000, 0x0430e004, 0x03080000, + 0x06601216, 0x050f80ff, 0x073fa011, 0x07000005, + 0x07f00000, 0x0660000b, 0x050f80ff, 0x022fa019, + 0x0700c000, 0x0279ff02, 0x0700ffff, 0x00017002, + 0x0760220a, 0x050f80ff, 0x012fa809, 0x0079fe01, + 0x0700ffff, 0x055c0417, 0x06818162, 0x0400d010, + 0x0548e00c, 0x078100db, 0x0245600e, 0x0548400c, + 0x068100e3, 0x07300000, 0x05001000, 0x04602c16, + 0x050f80ff, 0x032fa00a, 0x0644900e, 0x07600a0a, + 0x050f80ff, 0x032fa039, 0x02015002, 0x064b0015, + 0x0379ff03, 0x070000ff, 0x01018003, 0x05420418, + 0x058180ee, 0x0045700e, 0x0179fe06, 0x070000ff, + 0x0700f0ff, 0x06006010, 0x04007010, 0x0760220a, + 0x050f80ff, 0x073fa009, 0x06000004, 0x07f00000, + 0x064b8408, 0x040080ce, 0x04500408, 0x050f80ff, + 0x073fa009, 0x06000004, 0x07f00000, 0x04603216, + 0x050f80ff, 0x063fa02a, 0x06000002, 0x0769ff00, + 0x076c9000, 0x04810108, 0x076cd400, 0x07818109, + 0x0444b00e, 0x0368060f, 0x00d0010b, 0x00800115, + 0x00800110, 0x01800117, 0x0180010f, 0x00800162, + 0x007a010e, 0x07001800, 0x076c3000, 0x02a182a2, + 0x07818147, 0x0220f002, 0x0180011e, 0x0120d081, + 0x007a010e, 0x05001000, 0x076c3000, 0x02a182a2, + 0x07818147, 0x0220f004, 0x0548400c, 0x04810125, + 0x0220f00e, 0x0444100d, 0x0748600c, 0x04810125, + 0x0444200d, 0x0548700c, 0x05810128, 0x0644900d, + 0x024a1815, 0x004a2c15, 0x04500415, 0x070030ff, + 0x0700000f, 0x017a0100, 0x05004000, 0x0400100e, + 0x05304000, 0x07000030, 0x04002010, 0x0600500d, + 0x0700600a, 0x0400700b, 0x05008017, 0x06600616, + 0x050f80ff, 0x022fa04a, 0x0448b00e, 0x05818056, + 0x050f7027, 0x02868140, 0x00028016, 0x01800144, + 0x07600027, 0x050f80ff, 0x073fa00a, 0x0600000b, + 0x00027016, 0x02400029, 0x03800078, 0x040fd016, + 0x050fd00a, 0x07600a0a, 0x050f80ff, 0x032fa009, + 0x05780100, 0x07ffff00, 0x017a0700, 0x06000001, + 0x050f80ff, 0x032fa00a, 0x07f00000, 0x05600e0a, + 0x050f80ff, 0x022fa019, 0x05780100, 0x07ffff00, + 0x076a0500, 0x00202001, 0x0560200a, 0x050f80ff, + 0x012fa809, 0x06003010, 0x05600e0a, 0x050f80ff, + 0x032fa022, 0x0180016c, 0x050fd00a, 0x07600a0a, + 0x050f80ff, 0x032fa009, 0x0379ff00, 0x0380ffff, + 0x0145b000, 0x07600a0a, 0x050f80ff, 0x032fa00a, + 0x07303000, 0x07000030, 0x04600e16, 0x050f80ff, + 0x053fa80a, 0x06000001, 0x07a003a0, 0x03800078, + 0x06600616, 0x050f80ff, 0x012fa841, 0x0079fe01, + 0x070000ff, 0x070090ff, 0x0400d010, 0x0600a007, + 0x0400b008, 0x07600a0a, 0x050f80ff, 0x032fa009, + 0x0769ff00, 0x0660000b, 0x050f80ff, 0x073fa009, + 0x07000006, 0x07f00000, 0x04602c16, 0x050f80ff, + 0x053fa809, 0x0600000b, 0x07479017, 0x056c0e09, + 0x0481018f, 0x076c0c09, 0x00a1859b, 0x0560160a, + 0x050f80ff, 0x053fa809, 0x06000007, 0x07f00000, + 0x074b000f, 0x0368060f, 0x00d00197, 0x0080019b, + 0x00800213, 0x008001d0, 0x0080023b, 0x0748f00f, + 0x05810239, 0x0530e042, 0x02080002, 0x0578400f, + 0x06000020, 0x017c40ff, 0x06000020, 0x068181a7, + 0x0748500c, 0x048101a7, 0x03459017, 0x04602c16, 0x050f80ff, 0x053fa80a, 0x0600000b, 0x0569800f, - 0x078181b4, 0x0548d00f, 0x078181b1, 0x0644a00e, - 0x056c0e09, 0x048101bf, 0x0080023e, 0x050010ff, - 0x046c8001, 0x078181c6, 0x056c0e09, 0x048101bf, + 0x068181b3, 0x0548d00f, 0x068181b0, 0x0644a00e, + 0x056c0e09, 0x058101be, 0x0080023d, 0x050010ff, + 0x046c8001, 0x078181c5, 0x056c0e09, 0x058101be, 0x05601a0a, 0x050f80ff, 0x012fa809, 0x04780101, - 0x07ffff00, 0x0481023e, 0x01498017, 0x048101c2, - 0x0644900e, 0x06300001, 0x04000410, 0x05a0024d, - 0x03800035, 0x026d0001, 0x058101c9, 0x0180023c, - 0x0530e042, 0x02080002, 0x04a00268, 0x06818238, - 0x07300003, 0x05000430, 0x05a0024d, 0x03800056, - 0x0630e445, 0x02080002, 0x056c0e09, 0x0681823e, - 0x0748f00f, 0x058101de, 0x0569800f, 0x0781823c, - 0x0548d00f, 0x068181e0, 0x007a010e, 0x06000010, - 0x008001e6, 0x0246a00e, 0x008001e6, 0x0246a00e, - 0x0748500f, 0x048101e6, 0x0748500c, 0x048101e6, - 0x03459017, 0x0349a017, 0x078181ed, 0x04602c16, - 0x050f80ff, 0x053fa80a, 0x0600000b, 0x008001f7, + 0x07ffff00, 0x0481023d, 0x01498017, 0x048101c1, + 0x0644900e, 0x06300001, 0x04000410, 0x05a00253, + 0x03800035, 0x026d0001, 0x048101c8, 0x0080023b, + 0x0530e042, 0x02080002, 0x04a00270, 0x06818237, + 0x07300003, 0x05000430, 0x05a00253, 0x03800056, + 0x0630e445, 0x02080002, 0x056c0e09, 0x0681823d, + 0x0748f00f, 0x058101dd, 0x0569800f, 0x0681823b, + 0x0548d00f, 0x068181df, 0x007a010e, 0x06000010, + 0x008001e5, 0x0246a00e, 0x008001e5, 0x0246a00e, + 0x0748500f, 0x048101e5, 0x0748500c, 0x048101e5, + 0x03459017, 0x0349a017, 0x068181ec, 0x04602c16, + 0x050f80ff, 0x053fa80a, 0x0600000b, 0x018001f6, 0x0747a017, 0x05001017, 0x05601c0a, 0x050f80ff, 0x073fa009, 0x06000001, 0x07f00000, 0x04602c16, - 0x050f80ff, 0x012fa812, 0x01498017, 0x058101fc, + 0x050f80ff, 0x012fa812, 0x01498017, 0x048101fb, 0x0644900e, 0x0279ff0e, 0x07ffffeb, 0x0448700e, - 0x0481020e, 0x06601216, 0x050f80ff, 0x012fa809, + 0x0481020d, 0x06601216, 0x050f80ff, 0x012fa809, 0x07f00000, 0x04600201, 0x050f80ff, 0x012fa809, 0x07f00000, 0x04600e01, 0x050f80ff, 0x012fa809, - 0x060ff001, 0x075a00ff, 0x0481020e, 0x0279ff0e, - 0x07ffffeb, 0x04a00268, 0x06818238, 0x07300003, - 0x05000430, 0x05a0024d, 0x03800056, 0x056c0e09, - 0x0681823e, 0x0430e001, 0x02080002, 0x0644000d, - 0x0748f00f, 0x04810225, 0x0569800f, 0x0781823c, + 0x060ff001, 0x075a00ff, 0x0481020d, 0x0279ff0e, + 0x07ffffeb, 0x04a00270, 0x06818237, 0x07300003, + 0x05000430, 0x05a00253, 0x03800056, 0x056c0e09, + 0x0681823d, 0x0430e001, 0x02080002, 0x0644000d, + 0x0748f00f, 0x05810224, 0x0569800f, 0x0681823b, 0x0578400f, 0x06000020, 0x017c40ff, 0x06000020, - 0x06818225, 0x0748500c, 0x04810225, 0x03459017, + 0x07818224, 0x0748500c, 0x05810224, 0x03459017, 0x04602c16, 0x050f80ff, 0x053fa80a, 0x0600000b, - 0x04a00268, 0x06818238, 0x01498017, 0x04810234, + 0x04a00270, 0x06818237, 0x01498017, 0x05810233, 0x0644900e, 0x0630000e, 0x04000420, 0x0748600c, - 0x05810236, 0x0444200d, 0x01800236, 0x06300004, - 0x04000420, 0x05a0024d, 0x03800035, 0x02200010, - 0x0180023f, 0x02200001, 0x0180023f, 0x03200006, - 0x0180023f, 0x02200004, 0x040fd016, 0x050fd00a, + 0x05810235, 0x0444200d, 0x01800235, 0x06300004, + 0x04000420, 0x05a00253, 0x03800035, 0x02200010, + 0x0080023e, 0x02200001, 0x0080023e, 0x03200006, + 0x0080023e, 0x02200004, 0x040fd016, 0x050fd00a, 0x050fd000, 0x05600e0a, 0x050f80ff, 0x032fa00a, - 0x07303000, 0x07000060, 0x04600e16, 0x050f80ff, - 0x053fa80a, 0x06000001, 0x06a00398, 0x03800078, - 0x05600e0a, 0x050f80ff, 0x053fa809, 0x06000001, - 0x07f00000, 0x074b0003, 0x034a1803, 0x014a2c03, - 0x05500403, 0x070030ff, 0x0400100e, 0x04002010, - 0x05304000, 0x07000060, 0x0600500d, 0x0700600a, - 0x0400700b, 0x0460040b, 0x050f80ff, 0x073fa009, - 0x06000004, 0x0279ff08, 0x0700ffff, 0x06600616, - 0x050f80ff, 0x022fa04a, 0x07c00000, 0x03681e00, - 0x070090ff, 0x076c2400, 0x04810283, 0x056cf400, - 0x04810270, 0x076ce400, 0x07818295, 0x0748000f, - 0x04810273, 0x0444b00d, 0x0548100f, 0x04810276, - 0x0444700e, 0x06a00316, 0x06818298, 0x05601c0a, - 0x050f80ff, 0x0448b00d, 0x0481027f, 0x073fa009, - 0x06000004, 0x00800289, 0x043fa819, 0x06000002, - 0x05008005, 0x00800289, 0x05601c0a, 0x050f80ff, - 0x043fa819, 0x06000002, 0x05008005, 0x0500100a, - 0x06780007, 0x07ffff00, 0x0581028d, 0x0245500e, - 0x0560100a, 0x050f80ff, 0x053fa809, 0x06000001, - 0x0379ff03, 0x070000ff, 0x01018003, 0x018002ca, - 0x040fd016, 0x050fd00a, 0x03800593, 0x056a02ff, - 0x07c00000, 0x0447400e, 0x03681e00, 0x070090ff, - 0x076c3000, 0x048102c4, 0x076c9000, 0x048102c4, - 0x056cd000, 0x048102a8, 0x076cd400, 0x048102a8, - 0x040fd016, 0x050fd00a, 0x03800593, 0x0748000f, - 0x048102ab, 0x0444700e, 0x0548100f, 0x048102ae, - 0x0444b00d, 0x06a00316, 0x078182c3, 0x0448700d, - 0x078182c9, 0x0644500e, 0x070ff009, 0x0550041b, - 0x050f80ff, 0x073fa009, 0x06000001, 0x03200009, - 0x02400002, 0x04488004, 0x058102be, 0x02400002, - 0x0320000c, 0x07003018, 0x06601816, 0x050f80ff, - 0x032fa022, 0x075c00ff, 0x07c00000, 0x0500100a, - 0x0560200a, 0x050f80ff, 0x053fa809, 0x07000003, - 0x04008010, 0x05a002d2, 0x078182d1, 0x07003018, - 0x06601816, 0x050f80ff, 0x022fa04a, 0x075c00ff, - 0x07c00000, 0x070ff009, 0x0550041b, 0x050f80ff, - 0x073fa009, 0x06000001, 0x0448b00d, 0x078182db, - 0x0448700e, 0x048102df, 0x02400002, 0x0049700d, - 0x048102df, 0x02400002, 0x05a002ee, 0x068182ec, - 0x060ff001, 0x05500400, 0x050f80ff, 0x063fa019, - 0x06000002, 0x07f00000, 0x07420018, 0x058102ed, - 0x02400002, 0x05a002ee, 0x058102ed, 0x056a02ff, - 0x07c00000, 0x070ff01d, 0x00540402, 0x00d002f1, - 0x008002f7, 0x018002f9, 0x008002fb, 0x008002fd, - 0x018002ff, 0x02800301, 0x03200006, 0x03800314, - 0x03200009, 0x03800314, 0x0320000c, 0x03800314, - 0x0320000f, 0x03800314, 0x03200012, 0x03800314, - 0x04600201, 0x050f80ff, 0x012fa809, 0x040f7001, - 0x02860310, 0x06600a01, 0x050f80ff, 0x073fa009, - 0x06000001, 0x02681e02, 0x0550041b, 0x050f80ff, - 0x073fa009, 0x06000001, 0x018002ee, 0x040fd016, - 0x040fd002, 0x056a02ff, 0x02800315, 0x075c00ff, - 0x07c00000, 0x0560020a, 0x050f80ff, 0x053fa809, - 0x06000007, 0x050f700f, 0x03860396, 0x07600a0f, - 0x050f80ff, 0x053fa809, 0x06000004, 0x0769ff09, - 0x056c9409, 0x05818396, 0x0760240a, 0x050f80ff, - 0x063fa019, 0x07000003, 0x07000006, 0x0079fe07, - 0x070000ff, 0x050010ff, 0x07600c0f, 0x050f80ff, - 0x063fa019, 0x06000002, 0x0379ff05, 0x070000ff, - 0x074b0c05, 0x055a0405, 0x070050ff, 0x0079fe04, - 0x070000ff, 0x050020ff, 0x064b0c04, 0x045a0402, - 0x050020ff, 0x064b0004, 0x04487004, 0x07810344, - 0x0379ff05, 0x070000ff, 0x04488004, 0x0481834a, - 0x04007010, 0x04008010, 0x04444004, 0x04488004, - 0x0781035f, 0x02680604, 0x076c06ff, 0x0481834a, - 0x00464004, 0x0045700d, 0x0045800e, 0x0760140f, - 0x050f80ff, 0x073fa009, 0x0700000c, 0x07f00000, - 0x074b0018, 0x0560040a, 0x050f80ff, 0x053fa809, - 0x06000001, 0x050f80ff, 0x073fa00a, 0x06000008, - 0x07f00000, 0x06604e16, 0x050f80ff, 0x053fa80a, - 0x06000001, 0x07f00000, 0x04605816, 0x050f80ff, - 0x073fa00a, 0x07000003, 0x06486004, 0x05818377, - 0x04780107, 0x07ffff00, 0x004a8c07, 0x04780107, - 0x07ff0000, 0x004a8007, 0x045a0407, 0x045a0404, - 0x050040ff, 0x06780008, 0x07ff00ff, 0x0279ff08, - 0x0700ff00, 0x014c80ff, 0x044d8008, 0x045a0408, - 0x070030ff, 0x0380038e, 0x04780107, 0x07ffff00, - 0x0079fe08, 0x070000ff, 0x045a0407, 0x050070ff, - 0x06780007, 0x07ff00ff, 0x0279ff07, 0x0700ff00, - 0x054d80ff, 0x004c8007, 0x045a0407, 0x070030ff, - 0x04780108, 0x07ffff00, 0x004a8c08, 0x04780108, - 0x07ff0000, 0x004a8008, 0x045a0408, 0x045a0404, - 0x050040ff, 0x04603e16, 0x050f80ff, 0x022fa032, - 0x0500100f, 0x05007006, 0x01681f09, 0x075c00ff, - 0x07c00000, 0x056a02ff, 0x07c00000, 0x050f7012, - 0x0386039f, 0x06600013, 0x050f80ff, 0x073fa00a, - 0x0600000b, 0x07c00000, 0x070ff0e2, 0x077800ff, - 0x033e0000, 0x077400ff, 0x031a0000, 0x068203c4, - 0x068103c4, 0x00012016, 0x02013016, 0x07c00000, - 0x070ff0e2, 0x077800ff, 0x033e0000, 0x077400ff, - 0x031a0000, 0x078203b1, 0x078103b1, 0x07c00000, - 0x03016012, 0x06600016, 0x050f80ff, 0x032fa009, - 0x07f00000, 0x06600016, 0x050f80ff, 0x073fa00a, - 0x06000008, 0x050f7000, 0x038603be, 0x01012000, - 0x038003c0, 0x00012010, 0x02013010, 0x04600816, - 0x050f80ff, 0x073fa009, 0x06000007, 0x0647f00e, - 0x007a010e, 0x04000101, 0x04600816, 0x050f80ff, - 0x073fa00a, 0x06000007, 0x072e0030, 0x020e0016, - 0x07c00000, 0x0391000a, 0x0784001d, 0x022c0004, - 0x046c041f, 0x068103e3, 0x046c021f, 0x068103fb, - 0x066c0c1f, 0x0481040d, 0x046c081f, 0x0481041f, - 0x066c061f, 0x05810439, 0x0721f000, 0x0202c010, - 0x0202a010, 0x02020010, 0x052e5800, 0x02b60079, - 0x048d0451, 0x0380000c, 0x040f702a, 0x028603dc, - 0x06000010, 0x04001010, 0x0760122b, 0x050f80ff, - 0x032fa012, 0x07f00000, 0x06420029, 0x0660002a, - 0x050f80ff, 0x053fa809, 0x06000001, 0x050f7003, - 0x028603f8, 0x01028003, 0x0660002a, 0x050f80ff, - 0x073fa00a, 0x06000008, 0x0180043a, 0x00028010, - 0x00027010, 0x0180043a, 0x040f702a, 0x038603db, - 0x06420029, 0x0660002a, 0x050f80ff, 0x053fa809, - 0x06000001, 0x050f7003, 0x0186040a, 0x03026003, - 0x0660002a, 0x050f80ff, 0x073fa00a, 0x06000008, - 0x0180043a, 0x02026010, 0x02025010, 0x0180043a, - 0x040f702a, 0x038603db, 0x06420029, 0x0660002a, - 0x050f80ff, 0x053fa809, 0x06000001, 0x050f7003, - 0x0086041c, 0x01024003, 0x0660002a, 0x050f80ff, - 0x073fa00a, 0x06000008, 0x01800430, 0x00024010, - 0x02023010, 0x01800430, 0x040f702a, 0x038603db, - 0x06420029, 0x0660002a, 0x050f80ff, 0x053fa809, - 0x06000001, 0x050f7003, 0x0186042e, 0x01022003, - 0x0660002a, 0x050f80ff, 0x073fa00a, 0x06000008, - 0x01800430, 0x00022010, 0x00021010, 0x0647f020, - 0x007a0120, 0x04000101, 0x04a004c4, 0x0400802a, - 0x07a00578, 0x019483db, 0x0721f005, 0x028003dc, - 0x038003e1, 0x0647f020, 0x06486020, 0x0781843f, - 0x04a004c4, 0x038003db, 0x007a0120, 0x04000101, - 0x04a004c4, 0x0400802a, 0x07a00578, 0x038003db, - 0x0391000a, 0x070ff0e2, 0x077800ff, 0x033e0000, - 0x077400ff, 0x031a0000, 0x058283e1, 0x040fd02a, - 0x052e4003, 0x00208010, 0x07a00578, 0x038003e1, - 0x0784001d, 0x030150c0, 0x0448e015, 0x0681847f, - 0x0648f015, 0x07818477, 0x02490015, 0x0781846f, - 0x00491015, 0x06818467, 0x00492015, 0x048104b6, - 0x033d0000, 0x07000003, 0x029b84b6, 0x033d0000, - 0x06000002, 0x073c0000, 0x06000040, 0x052e5200, - 0x02200004, 0x00800486, 0x072d0c00, 0x029b845b, - 0x052d0800, 0x073c0000, 0x06000020, 0x062e5080, - 0x03200003, 0x00800486, 0x072d0300, 0x039b8459, - 0x052d0200, 0x073c0000, 0x06000010, 0x062e5020, - 0x02200002, 0x00800486, 0x072d00c0, 0x029b8457, - 0x062d0080, 0x073c0000, 0x06000008, 0x062e5008, - 0x02200001, 0x00800486, 0x072d0030, 0x039b8455, - 0x062d0020, 0x073c0000, 0x06000004, 0x062e5002, - 0x06000010, 0x0784001d, 0x0392000c, 0x050fb000, - 0x040f707c, 0x018604b2, 0x046c0279, 0x06818497, - 0x0448b07a, 0x0481049e, 0x06000010, 0x04001010, - 0x0760127b, 0x050f80ff, 0x032fa012, 0x0046b07a, - 0x02b60079, 0x008004a1, 0x066c0079, 0x0581049c, - 0x040fd07c, 0x07a00593, 0x02800008, 0x040fd07c, - 0x008004a1, 0x0045207a, 0x0279ff7a, 0x07ffd7ff, - 0x0007d010, 0x0647f07a, 0x0648607a, 0x078184ac, - 0x0448707a, 0x058104aa, 0x040f70fb, 0x038684aa, - 0x0644f07a, 0x05a004ca, 0x018004b2, 0x007a017a, - 0x04000101, 0x05a004ca, 0x0400807c, 0x0245f008, - 0x07a00578, 0x07279000, 0x0007e010, 0x0207c010, - 0x0207a010, 0x028c03ce, 0x0380000c, 0x0392000c, - 0x070ff0e2, 0x077800ff, 0x033e0000, 0x077400ff, - 0x031a0000, 0x068284b6, 0x070fc0ff, 0x052e400c, - 0x00208020, 0x07a00578, 0x008004b6, 0x06000020, - 0x05001014, 0x0460082a, 0x050f80ff, 0x032fa012, - 0x07c00000, 0x0600007a, 0x040010a2, 0x044b0801, - 0x070ff014, 0x065a0001, 0x0460087c, 0x050f80ff, - 0x032fa012, 0x07c00000, 0x050f7024, 0x018604de, - 0x070ff0e2, 0x077800ff, 0x033e0000, 0x077400ff, - 0x031a0000, 0x04828013, 0x0721f006, 0x0302a024, - 0x03800527, 0x050f7022, 0x018604ed, 0x070ff0e2, + 0x07f00000, 0x04600e16, 0x050f80ff, 0x053fa809, + 0x06000001, 0x05780103, 0x070000ff, 0x017a0103, + 0x07000600, 0x04600e16, 0x050f80ff, 0x053fa80a, + 0x06000001, 0x07a003a0, 0x03800078, 0x05600e0a, + 0x050f80ff, 0x053fa809, 0x06000001, 0x07f00000, + 0x074b0003, 0x034a1803, 0x014a2c03, 0x05500403, + 0x070030ff, 0x0400100e, 0x04002010, 0x04600e16, + 0x050f80ff, 0x073fa009, 0x06000002, 0x0600500d, + 0x0700600a, 0x0400700b, 0x0460040b, 0x050f80ff, + 0x073fa009, 0x06000004, 0x0279ff08, 0x0700ffff, + 0x06600616, 0x050f80ff, 0x022fa04a, 0x07c00000, + 0x03681e00, 0x070090ff, 0x076c2400, 0x0581028b, + 0x056cf400, 0x05810278, 0x076ce400, 0x0681829d, + 0x0748000f, 0x0581027b, 0x0444b00d, 0x0548100f, + 0x0581027e, 0x0444700e, 0x07a0031e, 0x078182a0, + 0x05601c0a, 0x050f80ff, 0x0448b00d, 0x05810287, + 0x073fa009, 0x06000004, 0x00800291, 0x043fa819, + 0x06000002, 0x05008005, 0x00800291, 0x05601c0a, + 0x050f80ff, 0x043fa819, 0x06000002, 0x05008005, + 0x0500100a, 0x06780007, 0x07ffff00, 0x05810295, + 0x0245500e, 0x0560100a, 0x050f80ff, 0x053fa809, + 0x06000001, 0x0379ff03, 0x070000ff, 0x01018003, + 0x018002d2, 0x040fd016, 0x050fd00a, 0x0280059b, + 0x056a02ff, 0x07c00000, 0x0447400e, 0x03681e00, + 0x070090ff, 0x076c3000, 0x058102cc, 0x076c9000, + 0x058102cc, 0x056cd000, 0x048102b0, 0x076cd400, + 0x048102b0, 0x040fd016, 0x050fd00a, 0x0280059b, + 0x0748000f, 0x048102b3, 0x0444700e, 0x0548100f, + 0x048102b6, 0x0444b00d, 0x07a0031e, 0x068182cb, + 0x0448700d, 0x078182d1, 0x0644500e, 0x070ff009, + 0x0550041b, 0x050f80ff, 0x073fa009, 0x06000001, + 0x03200009, 0x02400002, 0x04488004, 0x058102c6, + 0x02400002, 0x0320000c, 0x07003018, 0x06601816, + 0x050f80ff, 0x032fa022, 0x075c00ff, 0x07c00000, + 0x0500100a, 0x0560200a, 0x050f80ff, 0x053fa809, + 0x07000003, 0x04008010, 0x04a002da, 0x068182d9, + 0x07003018, 0x06601816, 0x050f80ff, 0x022fa04a, + 0x075c00ff, 0x07c00000, 0x070ff009, 0x0550041b, + 0x050f80ff, 0x073fa009, 0x06000001, 0x0448b00d, + 0x068182e3, 0x0448700e, 0x058102e7, 0x02400002, + 0x0049700d, 0x058102e7, 0x02400002, 0x05a002f6, + 0x068182f4, 0x060ff001, 0x05500400, 0x050f80ff, + 0x063fa019, 0x06000002, 0x07f00000, 0x07420018, + 0x058102f5, 0x02400002, 0x05a002f6, 0x058102f5, + 0x056a02ff, 0x07c00000, 0x070ff01d, 0x00540402, + 0x01d002f9, 0x018002ff, 0x02800301, 0x03800303, + 0x03800305, 0x02800307, 0x03800309, 0x03200006, + 0x0280031c, 0x03200009, 0x0280031c, 0x0320000c, + 0x0280031c, 0x0320000f, 0x0280031c, 0x03200012, + 0x0280031c, 0x04600201, 0x050f80ff, 0x012fa809, + 0x040f7001, 0x03860318, 0x06600a01, 0x050f80ff, + 0x073fa009, 0x06000001, 0x02681e02, 0x0550041b, + 0x050f80ff, 0x073fa009, 0x06000001, 0x018002f6, + 0x040fd016, 0x040fd002, 0x056a02ff, 0x0380031d, + 0x075c00ff, 0x07c00000, 0x0560020a, 0x050f80ff, + 0x053fa809, 0x06000007, 0x050f700f, 0x0286039e, + 0x07600a0f, 0x050f80ff, 0x053fa809, 0x06000004, + 0x0769ff09, 0x056c9409, 0x0481839e, 0x0760240a, + 0x050f80ff, 0x063fa019, 0x07000003, 0x07000006, + 0x0079fe07, 0x070000ff, 0x050010ff, 0x07600c0f, + 0x050f80ff, 0x063fa019, 0x06000002, 0x0379ff05, + 0x070000ff, 0x074b0c05, 0x055a0405, 0x070050ff, + 0x0079fe04, 0x070000ff, 0x050020ff, 0x064b0c04, + 0x045a0402, 0x050020ff, 0x064b0004, 0x04487004, + 0x0681034c, 0x0379ff05, 0x070000ff, 0x04488004, + 0x04818352, 0x04007010, 0x04008010, 0x04444004, + 0x04488004, 0x06810367, 0x02680604, 0x076c06ff, + 0x04818352, 0x00464004, 0x0045700d, 0x0045800e, + 0x0760140f, 0x050f80ff, 0x073fa009, 0x0700000c, + 0x07f00000, 0x074b0018, 0x0560040a, 0x050f80ff, + 0x053fa809, 0x06000001, 0x050f80ff, 0x073fa00a, + 0x06000008, 0x07f00000, 0x06604e16, 0x050f80ff, + 0x053fa80a, 0x06000001, 0x07f00000, 0x04605816, + 0x050f80ff, 0x073fa00a, 0x07000003, 0x06486004, + 0x0481837f, 0x04780107, 0x07ffff00, 0x004a8c07, + 0x04780107, 0x07ff0000, 0x004a8007, 0x045a0407, + 0x045a0404, 0x050040ff, 0x06780008, 0x07ff00ff, + 0x0279ff08, 0x0700ff00, 0x014c80ff, 0x044d8008, + 0x045a0408, 0x070030ff, 0x03800396, 0x04780107, + 0x07ffff00, 0x0079fe08, 0x070000ff, 0x045a0407, + 0x050070ff, 0x06780007, 0x07ff00ff, 0x0279ff07, + 0x0700ff00, 0x054d80ff, 0x004c8007, 0x045a0407, + 0x070030ff, 0x04780108, 0x07ffff00, 0x004a8c08, + 0x04780108, 0x07ff0000, 0x004a8008, 0x045a0408, + 0x045a0404, 0x050040ff, 0x04603e16, 0x050f80ff, + 0x022fa032, 0x0500100f, 0x05007006, 0x01681f09, + 0x075c00ff, 0x07c00000, 0x056a02ff, 0x07c00000, + 0x050f7012, 0x028603a7, 0x06600013, 0x050f80ff, + 0x073fa00a, 0x0600000b, 0x07c00000, 0x070ff0e2, 0x077800ff, 0x033e0000, 0x077400ff, 0x031a0000, - 0x04828013, 0x0302a022, 0x07a00533, 0x04488020, - 0x06810516, 0x040fd02a, 0x0202a010, 0x02020010, - 0x040f7026, 0x008604fb, 0x0202a026, 0x07a00533, - 0x04488020, 0x068184f7, 0x0621f001, 0x00683e20, - 0x05818528, 0x03800517, 0x040fd02a, 0x0202a010, - 0x0002b010, 0x02020010, 0x050f7028, 0x03860530, - 0x0621f002, 0x0302a028, 0x03800527, 0x070ff0e2, + 0x078203cc, 0x078103cc, 0x00012016, 0x02013016, + 0x07c00000, 0x070ff0e2, 0x077800ff, 0x033e0000, + 0x077400ff, 0x031a0000, 0x068203b9, 0x068103b9, + 0x07c00000, 0x03016012, 0x06600016, 0x050f80ff, + 0x032fa009, 0x07f00000, 0x06600016, 0x050f80ff, + 0x073fa00a, 0x06000008, 0x050f7000, 0x038603c6, + 0x01012000, 0x028003c8, 0x00012010, 0x02013010, + 0x04600816, 0x050f80ff, 0x073fa009, 0x06000007, + 0x0647f00e, 0x007a010e, 0x04000101, 0x04600816, + 0x050f80ff, 0x073fa00a, 0x06000007, 0x072e0030, + 0x020e0016, 0x07c00000, 0x0391000a, 0x0784001d, + 0x022c0004, 0x046c041f, 0x078103eb, 0x046c021f, + 0x05810403, 0x066c0c1f, 0x04810415, 0x046c081f, + 0x05810427, 0x066c061f, 0x05810441, 0x0721f000, + 0x0202c010, 0x0202a010, 0x02020010, 0x052e5800, + 0x02b60079, 0x058d0459, 0x0380000c, 0x040f702a, + 0x038603e4, 0x06000010, 0x04001010, 0x0760122b, + 0x050f80ff, 0x032fa012, 0x07f00000, 0x06420029, + 0x0660002a, 0x050f80ff, 0x053fa809, 0x06000001, + 0x050f7003, 0x01860400, 0x01028003, 0x0660002a, + 0x050f80ff, 0x073fa00a, 0x06000008, 0x01800442, + 0x00028010, 0x00027010, 0x01800442, 0x040f702a, + 0x028603e3, 0x06420029, 0x0660002a, 0x050f80ff, + 0x053fa809, 0x06000001, 0x050f7003, 0x01860412, + 0x03026003, 0x0660002a, 0x050f80ff, 0x073fa00a, + 0x06000008, 0x01800442, 0x02026010, 0x02025010, + 0x01800442, 0x040f702a, 0x028603e3, 0x06420029, + 0x0660002a, 0x050f80ff, 0x053fa809, 0x06000001, + 0x050f7003, 0x01860424, 0x01024003, 0x0660002a, + 0x050f80ff, 0x073fa00a, 0x06000008, 0x00800438, + 0x00024010, 0x02023010, 0x00800438, 0x040f702a, + 0x028603e3, 0x06420029, 0x0660002a, 0x050f80ff, + 0x053fa809, 0x06000001, 0x050f7003, 0x01860436, + 0x01022003, 0x0660002a, 0x050f80ff, 0x073fa00a, + 0x06000008, 0x00800438, 0x00022010, 0x00021010, + 0x0647f020, 0x007a0120, 0x04000101, 0x05a004cc, + 0x0400802a, 0x06a00580, 0x009483e3, 0x0721f005, + 0x038003e4, 0x028003e9, 0x0647f020, 0x06486020, + 0x07818447, 0x05a004cc, 0x028003e3, 0x007a0120, + 0x04000101, 0x05a004cc, 0x0400802a, 0x06a00580, + 0x028003e3, 0x0391000a, 0x070ff0e2, 0x077800ff, + 0x033e0000, 0x077400ff, 0x031a0000, 0x048283e9, + 0x040fd02a, 0x052e4003, 0x00208010, 0x06a00580, + 0x028003e9, 0x0784001d, 0x030150c0, 0x0448e015, + 0x07818487, 0x0648f015, 0x0681847f, 0x02490015, + 0x07818477, 0x00491015, 0x0781846f, 0x00492015, + 0x058104be, 0x033d0000, 0x07000003, 0x039b84be, + 0x033d0000, 0x06000002, 0x073c0000, 0x06000040, + 0x052e5200, 0x02200004, 0x0180048e, 0x072d0c00, + 0x039b8463, 0x052d0800, 0x073c0000, 0x06000020, + 0x062e5080, 0x03200003, 0x0180048e, 0x072d0300, + 0x029b8461, 0x052d0200, 0x073c0000, 0x06000010, + 0x062e5020, 0x02200002, 0x0180048e, 0x072d00c0, + 0x039b845f, 0x062d0080, 0x073c0000, 0x06000008, + 0x062e5008, 0x02200001, 0x0180048e, 0x072d0030, + 0x029b845d, 0x062d0020, 0x073c0000, 0x06000004, + 0x062e5002, 0x06000010, 0x0784001d, 0x0392000c, + 0x050fb000, 0x040f707c, 0x008604ba, 0x046c0279, + 0x0781849f, 0x0448b07a, 0x058104a6, 0x06000010, + 0x04001010, 0x0760127b, 0x050f80ff, 0x032fa012, + 0x0046b07a, 0x02b60079, 0x018004a9, 0x066c0079, + 0x048104a4, 0x040fd07c, 0x06a0059b, 0x02800008, + 0x040fd07c, 0x018004a9, 0x0045207a, 0x0279ff7a, + 0x07ffd7ff, 0x0007d010, 0x0647f07a, 0x0648607a, + 0x078184b4, 0x0448707a, 0x058104b2, 0x040f70fb, + 0x038684b2, 0x0644f07a, 0x05a004d2, 0x008004ba, + 0x007a017a, 0x04000101, 0x05a004d2, 0x0400807c, + 0x0245f008, 0x06a00580, 0x07279000, 0x0007e010, + 0x0207c010, 0x0207a010, 0x028c03d6, 0x0380000c, + 0x0392000c, 0x070ff0e2, 0x077800ff, 0x033e0000, + 0x077400ff, 0x031a0000, 0x078284be, 0x070fc0ff, + 0x052e400c, 0x00208020, 0x06a00580, 0x018004be, + 0x06000020, 0x05001014, 0x0460082a, 0x050f80ff, + 0x032fa012, 0x07c00000, 0x0600007a, 0x040010a2, + 0x044b0801, 0x070ff014, 0x065a0001, 0x0460087c, + 0x050f80ff, 0x032fa012, 0x07c00000, 0x050f7024, + 0x008604e6, 0x070ff0e2, 0x077800ff, 0x033e0000, + 0x077400ff, 0x031a0000, 0x04828013, 0x0721f006, + 0x0302a024, 0x0280052f, 0x050f7022, 0x018604f5, + 0x070ff0e2, 0x077800ff, 0x033e0000, 0x077400ff, + 0x031a0000, 0x04828013, 0x0302a022, 0x06a0053b, + 0x04488020, 0x0781051e, 0x040fd02a, 0x0202a010, + 0x02020010, 0x040f7026, 0x03860503, 0x0202a026, + 0x06a0053b, 0x04488020, 0x078184ff, 0x0621f001, + 0x00683e20, 0x05818530, 0x0280051f, 0x040fd02a, + 0x0202a010, 0x0002b010, 0x02020010, 0x050f7028, + 0x02860538, 0x0621f002, 0x0302a028, 0x0280052f, + 0x070ff0e2, 0x077800ff, 0x033e0000, 0x077400ff, + 0x031a0000, 0x04828013, 0x050f7024, 0x02860513, + 0x0721f006, 0x0302a024, 0x0280052f, 0x050f7022, + 0x02860538, 0x0302a022, 0x06a0053b, 0x04488020, + 0x0781051e, 0x040fd02a, 0x0202a010, 0x0002b010, + 0x02020010, 0x02800538, 0x0621f004, 0x070ff0e2, 0x077800ff, 0x033e0000, 0x077400ff, 0x031a0000, - 0x04828013, 0x050f7024, 0x0286050b, 0x0721f006, - 0x0302a024, 0x03800527, 0x050f7022, 0x03860530, - 0x0302a022, 0x07a00533, 0x04488020, 0x06810516, - 0x040fd02a, 0x0202a010, 0x0002b010, 0x02020010, - 0x03800530, 0x0621f004, 0x070ff0e2, 0x077800ff, - 0x033e0000, 0x077400ff, 0x031a0000, 0x05828522, - 0x01208060, 0x0600902a, 0x04002020, 0x06a0057f, - 0x03800530, 0x0202a010, 0x02020010, 0x0002b010, - 0x0721f000, 0x03800530, 0x07a00533, 0x0400102a, - 0x0245f001, 0x07a00539, 0x050f801e, 0x0320000a, - 0x022017d0, 0x032fa012, 0x072e5c00, 0x028c03ce, - 0x048d0451, 0x02800013, 0x0460082a, 0x050f80ff, - 0x022fa031, 0x03020000, 0x0102b005, 0x07c00000, - 0x01200100, 0x069a053d, 0x060f0001, 0x07c00000, - 0x07420000, 0x0581853a, 0x060fc010, 0x03800593, - 0x0392001d, 0x0207c02f, 0x0460087c, 0x050f80ff, - 0x032fa039, 0x0307a000, 0x0107b005, 0x0307f006, - 0x0660007c, 0x050020ff, 0x050f80ff, 0x032fa011, - 0x0302f000, 0x01868559, 0x0202f001, 0x00868557, - 0x0002e010, 0x0660187f, 0x050f80ff, 0x073fa00a, - 0x06000008, 0x0380055f, 0x0002e001, 0x0380055f, - 0x040f7001, 0x02860552, 0x0760002e, 0x050f80ff, - 0x012fa80a, 0x0002e001, 0x06000010, 0x04001010, - 0x040f8002, 0x032fa012, 0x06279001, 0x0400107c, - 0x060ff0fb, 0x054bc8ff, 0x065a0001, 0x07a00539, - 0x0320000a, 0x022011f4, 0x00202004, 0x06003010, - 0x0249507a, 0x06810570, 0x0020200e, 0x050f8078, - 0x032fa022, 0x030e5077, 0x028c03ce, 0x048d0451, - 0x040f702f, 0x00868013, 0x0380001d, 0x03201100, - 0x0584857d, 0x06420001, 0x04818579, 0x03800596, - 0x020e0008, 0x07c00000, 0x050fd009, 0x040fd008, - 0x03201100, 0x04848586, 0x06420001, 0x05818582, - 0x03800596, 0x007a0102, 0x04000101, 0x05600809, - 0x050f80ff, 0x073fa00a, 0x06000001, 0x020e0008, - 0x04848591, 0x06420001, 0x0581858d, 0x03800596, - 0x030e0009, 0x07c00000, 0x052e400f, 0x00208040, - 0x03800578, 0x070fc0ff, 0x040f8010, 0x032fa009, - 0x03800599, 0xf152208d, 0x00000000, 0x00000000, - 0x0000400e, 0x00000808, 0x00000803, 0x00011f0f, - 0x02080b02, 0xe6e5610b, 0x7f04e630, 0x7f028001, - 0x30e2e500, 0x017e04e4, 0x007e0280, 0x08605fee, - 0xe4f7f953, 0x0b80fef5, 0x16120a7f, 0xf7f953b3, - 0x7530fe75, 0xf5e408fc, 0x08f943fd, 0x06000222, - 0x000f1f01, 0x75002003, 0xf5e40151, 0xf553f552, - 0x7f7ef552, 0x3d040204, 0x520536c2, 0x94d352e5, - 0x7505400c, 0x36d20152, 0x740c0790, 0x74a3f007, - 0xf5e4f0ff, 0x90f0a30c, 0xa3f01407, 0x200b75f0, - 0xf5e409f5, 0xd308e508, 0x03403094, 0x12090402, - 0x0b150600, 0x047008e5, 0x0280017f, 0x09e5007f, - 0x017e0470, 0x007e0280, 0x05605fee, 0xd2f31712, - 0xf7e15335, 0x094508e5, 0x250be5ff, 0x24e025e0, - 0xe482f583, 0x83f50734, 0xe285f0ef, 0xd352e520, - 0x0d400194, 0xe02a1b12, 0x4064a054, 0x04020370, - 0xf8f95300, 0xe4709490, 0x10f5e0f0, 0x1e1209af, - 0xef08af74, 0x82f50844, 0xe0808375, 0x44ef29f5, - 0x7582f507, 0xf5e09e83, 0xd3405422, 0x1e400094, - 0xf05429e5, 0x1b122170, 0x8044e02a, 0x5422e5f0, - 0x70086530, 0x2a1b1209, 0xf0bf54e0, 0x1b120980, - 0xf040742a, 0x12000402, 0x8375491b, 0xf0ff74ae, - 0x007e08af, 0xf50744ef, 0xe5fde082, 0x25e0250b, - 0xf58124e0, 0x0734e482, 0xf0ed83f5, 0xe00e0790, - 0x44eff004, 0x7582f507, 0xf5e09883, 0x5a1b1228, - 0x1b120c40, 0x0144e02a, 0x02691b12, 0x08affb03, - 0x8074007e, 0x8dcdefcd, 0xe083f582, 0x120ae030, - 0x44e02a1b, 0x0402f020, 0x2a1b1200, 0xf0df54e0, - 0x12ae44ee, 0xe430711b, 0x00040203, 0x1b129e74, - 0x03e0203c, 0x8f000402, 0xe0838e82, 0x0203e020, - 0x1b120004, 0x1044e02a, 0x4408e5f0, 0x7582f506, - 0x44e09e83, 0x08aff004, 0x44ef007e, 0xe082f506, - 0x1234e220, 0x44e02a1b, 0xe4e5f008, 0x7d04e630, - 0x7d028001, 0xc37ee500, 0x04500494, 0x0280017c, - 0x4dec007c, 0x35c20560, 0xee000402, 0x1b12d244, - 0xf0404471, 0x12000402, 0x54e02a1b, 0x1b12f0f7, - 0xd2837549, 0xf0bf54e0, 0xe0140790, 0x7ee5f004, - 0x7e750370, 0x7e08af01, 0x5a1b1200, 0x1b121240, - 0x0144e02a, 0xe0291b12, 0x1b120254, 0x00040269, - 0xe02a1b12, 0x1b120244, 0xfe54e029, 0xee35c2f0, - 0x828f8044, 0xf5e083f5, 0x44e35417, 0x9074f010, - 0x4408e5fc, 0x82f5fd07, 0x54e0838c, 0x0207903f, - 0xc054e0f0, 0x838c828d, 0x129274f0, 0x07903c1b, - 0x501b1203, 0x1b128274, 0x0407903c, 0x74501b12, - 0x3c1b12b4, 0x12050790, 0x9474501b, 0x4408e5fe, - 0x411b1206, 0xe03010f5, 0x8037d204, 0xe537c202, - 0x8f7f5410, 0xf0838e82, 0x12304430, 0x80543a1b, - 0x400094d3, 0x8039d204, 0x8f39c202, 0xe0838e82, - 0x12f08044, 0x40543a1b, 0x400094d3, 0x803ad204, - 0x8f3ac202, 0xe0838e82, 0x74f04044, 0x08e5fe92, - 0x1b120644, 0x04e73041, 0x028038d2, 0x828f38c2, - 0x54e0838e, 0x1e12f07f, 0x0af5e407, 0x80020320, - 0x03433003, 0x20171912, 0x03800202, 0x12034230, - 0x3030970c, 0x17191206, 0x12970c12, 0x1b124f0d, - 0xfb54e02a, 0xc30ae5f0, 0x46400194, 0x1208e143, - 0x44e02a1b, 0xe4e5f004, 0x122ae720, 0x8375491b, - 0x0854e0d2, 0x400094d3, 0x80017f04, 0xe5007f02, - 0x0194c30a, 0x017e0440, 0x007e0280, 0x05605eef, - 0x80981d12, 0x491b1217, 0xe0d28375, 0x02f00844, - 0x1b120004, 0xd2837549, 0xf0f754e0, 0x7f071e12, - 0xb3161208, 0x12fe8e74, 0x838e491b, 0x5410f5e0, - 0x10e5f0fe, 0xe5ff0144, 0x44edfd08, 0xef82f507, - 0x5410e5f0, 0x44edfffe, 0xef82f507, 0x75481b12, - 0x44e08683, 0x481b1210, 0xf01044e0, 0xe02a1b12, - 0x0144fd54, 0x2a1b12ff, 0x691b12ef, 0xe50c3230, - 0xf5084408, 0x82837582, 0xaff00574, 0x5918120b, - 0x08251074, 0x000208f5, 0xe5090585, 0x0794d309, - 0x00020350, 0xd37ee582, 0x04400094, 0x0280017f, - 0x7ee5007f, 0x50fa94c3, 0x80017e04, 0xee007e02, - 0x0502605f, 0x0b35307e, 0x7f01e143, 0xb3161209, - 0x53580002, 0x0002fee1, 0x8f6a8e58, 0x8d6c8c6b, - 0x016e756d, 0x75016f75, 0xf5e40170, 0xf574f573, - 0x2f079075, 0xf53cf5f0, 0xf546f53e, 0xf53df547, - 0xe56ff53f, 0xe50e706f, 0x126a456b, 0x83753707, - 0x803a7480, 0x37071208, 0x74808375, 0x3607121a, - 0xe0868375, 0xe4f00844, 0x74c36ef5, 0xff6e953f, - 0x75680812, 0xf0ef8283, 0x12741912, 0x33e5d308, - 0x070912f0, 0x40be0812, 0x706fe5e1, 0x3707120b, - 0x74808375, 0x0980f036, 0x75370712, 0x16748083, - 0x016e75f0, 0x75370712, 0x6ee5b483, 0x741912f0, - 0x6e253f74, 0x34e482f5, 0xe583f500, 0xbf74f033, - 0x82f56e25, 0x120034e4, 0xd840be08, 0xf570f5e4, - 0xf547f546, 0x0709126e, 0xfee083f5, 0xe0d30812, - 0x0024007c, 0xfe3eecff, 0xefd33bad, 0x509cee9d, - 0x80017b04, 0xe5007b02, 0x7a047070, 0x7a028001, - 0x605aeb00, 0x466e8506, 0xd3017075, 0x9cee9def, - 0x017f0450, 0x007f0280, 0x01b470e5, 0x80017e04, - 0xef007e02, 0x8503605e, 0x6e05476e, 0x7f646ee5, - 0x46e5a370, 0x47e50560, 0x85037eb4, 0x6fe54746, - 0x46850870, 0x77478576, 0x74c30e80, 0xf546957f, - 0x7f74c378, 0x79f54795, 0x37706fe5, 0x476546e5, - 0x73750c70, 0x01747501, 0x3df53cf5, 0xf5e43580, - 0x47e5c34e, 0x3cf54695, 0x71f513c3, 0x72f54625, - 0x403f94c3, 0x3df5e405, 0x74c34080, 0xf572953f, - 0xe537803d, 0x70476546, 0x0173750f, 0xf5017575, - 0x753ff53e, 0x2280014e, 0xc34ef5e4, 0x469547e5, - 0x13c33ef5, 0x462571f5, 0x94d372f5, 0xe405503f, - 0x06803ff5, 0xc12472e5, 0x6f053ff5, 0x94c36fe5, - 0x02035002, 0x6de57304, 0x02706c45, 0x74e50480, - 0x07907545, 0x017ff02f, 0x04603ee5, 0x14703ce5, - 0xf53cf5e4, 0xf53ef53d, 0xdf08123f, 0x02f00470, - 0x7a80b106, 0x95c33ce5, 0xe507403e, 0xff3e953c, - 0xe5c30680, 0xff3c953e, 0x95d376e5, 0x85054079, - 0x03807a76, 0xe57a7985, 0x7895c377, 0x77850550, - 0x8503807b, 0x7be57b78, 0x407a95d3, 0x957be530, - 0xf53cf57a, 0x7be5c33e, 0x07907a95, 0x3ce5f019, - 0x71f513c3, 0x72f57a25, 0x403f94c3, 0x3df5e405, - 0x74c31f80, 0xf572953f, 0x803ff53d, 0x3cf5e414, - 0x07903ef5, 0x0812f019, 0xf00370df, 0x01740380, - 0x680812f0, 0xe0d08375, 0xadfe0f54, 0x7e02703c, - 0x020fbe07, 0xfbee807e, 0x749bd3ef, 0x4098f880, - 0x3cf5e41f, 0x08123ef5, 0xf00370df, 0x01741280, - 0xfb08e5f0, 0xf50744eb, 0xd2837582, 0xf01044e0, - 0xebfb08e5, 0x82f50944, 0xed9e8375, 0x0744ebf0, - 0x837582f5, 0x12f0edca, 0x83756808, 0x22f0efcc, - 0x074408e5, 0x837582f5, 0xf054e0bc, 0x4408e5f0, - 0x7582f507, 0x54e0be83, 0x08e5f0f0, 0x82f50744, - 0xe0c08375, 0xe5f0f054, 0xf5074408, 0x90f02282, - 0xfee02807, 0x82f5e0a3, 0x8522838e, 0x41854242, - 0x40408541, 0xf52fc074, 0x3e027482, 0x42e583f5, - 0x2fe074f0, 0x027482f5, 0x2283f53e, 0xfd2942e5, - 0xe5fc33e4, 0xec9dc33c, 0x74f88064, 0xf5229880, - 0x0790e083, 0xfd1f5422, 0xe0a3fae0, 0x838a82f5, - 0x9022f0ed, 0xfce02207, 0x82f5e0a3, 0x9022838c, - 0xedff2407, 0xf0cf0744, 0x22f0efa3, 0x85383885, - 0x3a853939, 0x2fc0743a, 0x027482f5, 0x2283f53e, - 0xff260790, 0xcf0744ed, 0xf0efa3f0, 0xa074f022, - 0x7482f52f, 0x83f53e02, 0x25c07422, 0xe482f511, - 0x83f50134, 0x25007422, 0xe482f511, 0x83f50234, - 0x25607422, 0xe482f511, 0x83f50334, 0x25807422, - 0xe482f511, 0x83f50334, 0x25e07422, 0xe482f511, - 0x83f50334, 0x25407422, 0xe482f511, 0x83f50634, - 0x2f807422, 0x027482f5, 0x2283f53e, 0x82e583f5, - 0x82f50744, 0x22f040e5, 0x11254074, 0x34e482f5, - 0x2283f502, 0x1125c074, 0x34e482f5, 0x2283f503, - 0x11250074, 0x34e482f5, 0x2283f506, 0x11252074, - 0x34e482f5, 0x2283f506, 0xedfd08e5, 0x82f50744, - 0xf041e522, 0x016465e5, 0x7e226445, 0x007afb00, - 0x22007cfd, 0x11252074, 0x34e482f5, 0xa0742202, - 0x82f51125, 0x220334e4, 0x007e08af, 0xf50744ef, - 0x3e852282, 0x413f8542, 0x8522408f, 0x3d85423c, - 0x22408f41, 0x903f4575, 0xf0e42007, 0x83f522a3, - 0x05f032e5, 0xc36ee56e, 0xf0224094, 0x064408e5, - 0x742282f5, 0xf56e2500, 0x0034e482, 0xe52283f5, - 0x906c456d, 0xe4222f07, 0xd33ce5f9, 0x74223e95, - 0x82f52e80, 0xf50234e4, 0x7422e083, 0x82f52ea0, - 0xf50234e4, 0x7422e083, 0xf56e2580, 0x0034e482, - 0xfd422522, 0x22fc33e4, 0x85424285, 0x40854141, - 0x4ced2240, 0x09020360, 0x704eeff2, 0x26079037, - 0xe0960712, 0xd90712fd, 0x0790f0ed, 0x96071228, - 0x0712fde0, 0x12f0ede5, 0x54e09307, 0x0812fd1f, - 0xed83f584, 0x240790f0, 0xe0960712, 0x12fd1f54, - 0xf0ed3808, 0x4e0464ef, 0x07903770, 0x96071226, - 0x0712fde0, 0x90f0edf1, 0x07122807, 0x12fde096, - 0xf0edfd07, 0xe0930712, 0x12fd1f54, 0x83f58e08, - 0x0790f0ed, 0x96071224, 0xfd1f54e0, 0xed440812, - 0x0164eff0, 0x7d04704e, 0x7d028001, 0x0264ef00, - 0x7f04704e, 0x7f028001, 0x604def00, 0x26079078, - 0xe0420712, 0x090812ff, 0x3e0712ef, 0x0812ffe0, - 0x90f0ef15, 0x07122207, 0x1f54e042, 0x500812ff, - 0x0790f0ef, 0x42071224, 0xff1f54e0, 0xef5c0812, - 0x071222f0, 0x12f0e4d9, 0xf0e4e507, 0xf5840812, - 0x12f0e483, 0x14743808, 0xf10712f0, 0x0712f0e4, - 0x12f0e4fd, 0x83f58e08, 0x0812f0e4, 0xf0147444, - 0xe4090812, 0x150812f0, 0x0812f0e4, 0x12f0e450, - 0x14745c08, 0x648c22f0, 0x668a658d, 0xf5e4678b, - 0x704eef69, 0x161d0203, 0xe568f5e4, 0x70664567, - 0x37071232, 0xe4908375, 0x75360712, 0x12e4c283, - 0x83753607, 0x0812e4c4, 0x12297073, 0x83753707, - 0x0712e492, 0xc6837536, 0x360712e4, 0xe4c88375, - 0x901180f0, 0x07122607, 0x0812e442, 0x12057073, - 0xf0e43f07, 0x12161d12, 0x67e5801e, 0x33706645, - 0x75370712, 0x41e59083, 0x75360712, 0x41e5c283, - 0x75360712, 0x0812c483, 0x12297071, 0x83753707, - 0x1240e592, 0x83753607, 0x1240e5c6, 0x83753607, - 0x900e80c8, 0x07122607, 0x71081242, 0x07120670, - 0xf040e53f, 0x007e69af, 0x66ac67ad, 0x12490412, - 0x83753707, 0x94d3e0ca, 0x050c5000, 0xc368e568, - 0x03500594, 0x224b0a02, 0x75f7f953, 0xf5e410fc, - 0x30fe75fd, 0xf943fff5, 0x20e6e508, 0xff780be7, - 0xfdd8f6e4, 0x80fee653, 0xe4087809, 0x53fdd8f6, - 0x8175fee6, 0xa8f5e480, 0xa9c2a8d2, 0xe2e5afd2, - 0x2005e520, 0x038002e6, 0xe502e143, 0x0ee020e2, - 0x7f000090, 0xe4087e00, 0xfcdfa3f0, 0x0b02fade, - 0x01fa43b5, 0xf0c0e0c0, 0x82c083c0, 0x1112d0c0, - 0xd0d0d018, 0xd083d082, 0x53e0d0f0, 0x0232fefa, - 0x93e4d51a, 0x93e4f8a3, 0xdf08f6a3, 0xe42980f9, - 0x54f8a393, 0xc80c2407, 0x54c433c3, 0xc820440f, - 0xf4044083, 0x46018056, 0x80e4dff6, 0x0402010b, - 0x40201008, 0xff0f9080, 0x93017ee4, 0xffa3c160, - 0xe5303f54, 0xfe1f5409, 0x60a393e4, 0x54cf0e01, - 0x60e025c0, 0x80b840ad, 0x8d608cfe, 0xe7081261, - 0x0d402074, 0x7482f52f, 0x83f53e03, 0x80f03ee5, - 0x82f52f0b, 0xf53e0374, 0xf03ce583, 0x95d33ce5, - 0xe53c403e, 0x70604561, 0x0912e910, 0x123ee511, - 0x3b407507, 0x80a20812, 0xc33ee518, 0x1d403895, - 0xe5383e85, 0x8505603e, 0x0380393f, 0x8f393985, - 0x2108123a, 0x07123ee5, 0xf03fe5cd, 0xe5438022, - 0x70604561, 0x6c071219, 0x08120540, 0x122780ab, - 0x08121809, 0x1242e521, 0x41e5cd07, 0x3ce522f0, - 0x403895c3, 0x383c851d, 0x05603ce5, 0x80393d85, - 0x39398503, 0x08123a8f, 0x123ce521, 0x3de5cd07, - 0x388522f0, 0x39398538, 0x123a3a85, 0x38e52108, - 0xe5cd0712, 0x7f22f039, 0xb3161206, 0x12e41c12, - 0x0e12b70e, 0x0a44e0e6, 0xfe8e74f0, 0x12b70e12, - 0xf0efbe0e, 0xe53028e5, 0x0180d303, 0x750540c3, - 0x03802014, 0x12081475, 0x8375b70e, 0xf014e58a, - 0x7505ffb4, 0x06808012, 0x13c314e5, 0xf5e412f5, - 0x127ff516, 0x1312b818, 0xc30ae5a3, 0x09500194, - 0x16e51605, 0x401494c3, 0x20e4e5ea, 0x0e1228e7, - 0xd28375b7, 0xd30854e0, 0x04400094, 0x0280017f, - 0x0ae5007f, 0x400194c3, 0x80017e04, 0xef007e02, - 0x1203605e, 0x7fe5981d, 0x401194c3, 0xb70e1214, - 0xe0d28375, 0xe5f08044, 0x0fe720e4, 0x80981d12, - 0xb70e120a, 0xe0d28375, 0x12f07f54, 0x7422e41c, - 0x82088580, 0x17e583f5, 0xed0e12f0, 0x0790f0e4, - 0x0e12e002, 0x908375ca, 0x9274f0ef, 0x4408e5fe, - 0x82f5ff07, 0x54e0838e, 0x0790fdc0, 0x3f54e003, - 0x8e828f4d, 0x0790f083, 0x0e12e004, 0x828375ca, - 0x0790f0ef, 0xedffe005, 0x82f50744, 0xefb48375, - 0x75b60e12, 0x54e08083, 0x3730f0bf, 0x440f120a, - 0xe0948375, 0x30f08044, 0x0f120a38, 0x92837544, - 0xf08044e0, 0xe43028e5, 0x0a39201a, 0x75b70e12, - 0x54e08883, 0x3a20f07f, 0xb70e120a, 0xe0888375, - 0x74f0bf54, 0x0e12fe8c, 0xe0838eb7, 0x0e120f54, - 0x868375b6, 0xf0bf54e0, 0x064408e5, 0x75b00e12, - 0xf0e48a83, 0x704eef22, 0xd9071226, 0x0790fde0, - 0x88071226, 0xe0e50712, 0x280790fd, 0x12880712, - 0x07128408, 0x3808127f, 0x240790e0, 0xef850712, - 0x704e0464, 0xf1071229, 0x0790fde0, 0x88071226, - 0xe0fd0712, 0x280790fd, 0x12880712, 0x07128e08, - 0x4408127f, 0xfd1f54e0, 0x12240790, 0x64ef8807, - 0x04704e01, 0x0280017d, 0x64ef007d, 0x04704e02, - 0x0280017f, 0x4def007f, 0x08123560, 0x90ffe009, - 0x07122607, 0x12f0ef96, 0xffe01508, 0x12280790, - 0xf0ef9607, 0xe0500812, 0x12ff1f54, 0xf0ef9307, - 0xe05c0812, 0x90ff1f54, 0x07122407, 0x22f0ef96, - 0x837582f5, 0xe5f0e482, 0xf5074408, 0x838e2282, + 0x0482852a, 0x01208060, 0x0600902a, 0x04002020, + 0x07a00587, 0x02800538, 0x0202a010, 0x02020010, + 0x0002b010, 0x0721f000, 0x02800538, 0x06a0053b, + 0x0400102a, 0x0245f001, 0x07a00541, 0x050f801e, + 0x0320000a, 0x022017d0, 0x032fa012, 0x072e5c00, + 0x028c03d6, 0x058d0459, 0x02800013, 0x0460082a, + 0x050f80ff, 0x022fa031, 0x03020000, 0x0102b005, + 0x07c00000, 0x01200100, 0x069a0545, 0x060f0001, + 0x07c00000, 0x07420000, 0x05818542, 0x060fc010, + 0x0280059b, 0x0392001d, 0x0207c02f, 0x0460087c, + 0x050f80ff, 0x032fa039, 0x0307a000, 0x0107b005, + 0x0307f006, 0x0660007c, 0x050020ff, 0x050f80ff, + 0x032fa011, 0x0302f000, 0x00868561, 0x0202f001, + 0x0186855f, 0x0002e010, 0x0660187f, 0x050f80ff, + 0x073fa00a, 0x06000008, 0x02800567, 0x0002e001, + 0x02800567, 0x040f7001, 0x0386055a, 0x0760002e, + 0x050f80ff, 0x012fa80a, 0x0002e001, 0x06000010, + 0x04001010, 0x040f8002, 0x032fa012, 0x06279001, + 0x0400107c, 0x060ff0fb, 0x054bc8ff, 0x065a0001, + 0x07a00541, 0x0320000a, 0x022011f4, 0x00202004, + 0x06003010, 0x0249507a, 0x07810578, 0x0020200e, + 0x050f8078, 0x032fa022, 0x030e5077, 0x028c03d6, + 0x058d0459, 0x040f702f, 0x00868013, 0x0380001d, + 0x03201100, 0x04848585, 0x06420001, 0x05818581, + 0x0280059e, 0x020e0008, 0x07c00000, 0x050fd009, + 0x040fd008, 0x03201100, 0x0584858e, 0x06420001, + 0x0481858a, 0x0280059e, 0x007a0102, 0x04000101, + 0x05600809, 0x050f80ff, 0x073fa00a, 0x06000001, + 0x020e0008, 0x05848599, 0x06420001, 0x05818595, + 0x0280059e, 0x030e0009, 0x07c00000, 0x052e400f, + 0x00208040, 0x02800580, 0x070fc0ff, 0x040f8010, + 0x032fa009, 0x028005a1, 0xd672ebf2, 0x00000000, + 0x00000000, 0x0000400e, 0x00000808, 0x00000803, + 0x00011f0f, 0x02080b02, 0xe6e5610b, 0x7f04e630, + 0x7f028001, 0x30e2e500, 0x017e04e4, 0x007e0280, + 0x08605fee, 0xe4f7f953, 0x0b80fef5, 0x16120a7f, + 0xf7f953b3, 0x7530fe75, 0xf5e408fc, 0x08f943fd, + 0x06000222, 0x000f1f01, 0x75002003, 0xf5e40151, + 0xf553f552, 0x7f7ef552, 0x3d040204, 0x520536c2, + 0x94d352e5, 0x7505400c, 0x36d20152, 0x740c0790, + 0x74a3f007, 0xf5e4f0ff, 0x90f0a30c, 0xa3f01407, + 0x200b75f0, 0xf5e409f5, 0xd308e508, 0x03403094, + 0x12090402, 0x0b150600, 0x047008e5, 0x0280017f, + 0x09e5007f, 0x017e0470, 0x007e0280, 0x05605fee, + 0xd2f31712, 0xf7e15335, 0x094508e5, 0x250be5ff, + 0x24e025e0, 0xe482f583, 0x83f50734, 0xe285f0ef, + 0xd352e520, 0x0d400194, 0xe02a1b12, 0x4064a054, + 0x04020370, 0xf8f95300, 0xe4709490, 0x10f5e0f0, + 0x1e1209af, 0xef08af74, 0x82f50844, 0xe0808375, + 0x44ef29f5, 0x7582f507, 0xf5e09e83, 0xd3405422, + 0x1e400094, 0xf05429e5, 0x1b122170, 0x8044e02a, + 0x5422e5f0, 0x70086530, 0x2a1b1209, 0xf0bf54e0, + 0x1b120980, 0xf040742a, 0x12000402, 0x8375491b, + 0xf0ff74ae, 0x007e08af, 0xf50744ef, 0xe5fde082, + 0x25e0250b, 0xf58124e0, 0x0734e482, 0xf0ed83f5, + 0xe00e0790, 0x44eff004, 0x7582f507, 0xf5e09883, + 0x5a1b1228, 0x1b120c40, 0x0144e02a, 0x02691b12, + 0x08affb03, 0x8074007e, 0x8dcdefcd, 0xe083f582, + 0x120ae030, 0x44e02a1b, 0x0402f020, 0x2a1b1200, + 0xf0df54e0, 0x12ae44ee, 0xe430711b, 0x00040203, + 0x1b129e74, 0x03e0203c, 0x8f000402, 0xe0838e82, + 0x0203e020, 0x1b120004, 0x1044e02a, 0x4408e5f0, + 0x7582f506, 0x44e09e83, 0x08aff004, 0x44ef007e, + 0xe082f506, 0x1234e220, 0x44e02a1b, 0xe4e5f008, + 0x7d04e630, 0x7d028001, 0xc37ee500, 0x04500494, + 0x0280017c, 0x4dec007c, 0x35c20560, 0xee000402, + 0x1b12d244, 0xf0404471, 0x12000402, 0x54e02a1b, + 0x1b12f0f7, 0xd2837549, 0xf0bf54e0, 0xe0140790, + 0x7ee5f004, 0x7e750370, 0x7e08af01, 0x5a1b1200, + 0x1b121240, 0x0144e02a, 0xe0291b12, 0x1b120254, + 0x00040269, 0xe02a1b12, 0x1b120244, 0xfe54e029, + 0xee35c2f0, 0x828f8044, 0xf5e083f5, 0x44e35417, + 0x9074f010, 0x4408e5fc, 0x82f5fd07, 0x54e0838c, + 0x0207903f, 0xc054e0f0, 0x838c828d, 0x129274f0, + 0x07903c1b, 0x501b1203, 0x1b128274, 0x0407903c, + 0x74501b12, 0x3c1b12b4, 0x12050790, 0x9474501b, + 0x4408e5fe, 0x411b1206, 0xe03010f5, 0x8037d204, + 0xe537c202, 0x8f7f5410, 0xf0838e82, 0x12304430, + 0x80543a1b, 0x400094d3, 0x8039d204, 0x8f39c202, + 0xe0838e82, 0x12f08044, 0x40543a1b, 0x400094d3, + 0x803ad204, 0x8f3ac202, 0xe0838e82, 0x74f04044, + 0x08e5fe92, 0x1b120644, 0x04e73041, 0x028038d2, + 0x828f38c2, 0x54e0838e, 0x1e12f07f, 0x0af5e407, + 0x80020320, 0x03433003, 0x20171912, 0x03800202, + 0x12034230, 0x3030970c, 0x17191206, 0x12970c12, + 0x1b124f0d, 0xfb54e02a, 0xc30ae5f0, 0x46400194, + 0x1208e143, 0x44e02a1b, 0xe4e5f004, 0x122ae720, + 0x8375491b, 0x0854e0d2, 0x400094d3, 0x80017f04, + 0xe5007f02, 0x0194c30a, 0x017e0440, 0x007e0280, + 0x05605eef, 0x80981d12, 0x491b1217, 0xe0d28375, + 0x02f00844, 0x1b120004, 0xd2837549, 0xf0f754e0, + 0x7f071e12, 0xb3161208, 0x12fe8e74, 0x838e491b, 0x5410f5e0, 0x10e5f0fe, 0xe5ff0144, 0x44edfd08, - 0x2282f507, 0x54c415e5, 0x08e5ff07, 0x0844edfd, - 0x837582f5, 0x83752282, 0x4044e080, 0x4408e5f0, - 0x7582f508, 0xe5228a83, 0x25e02516, 0xf52f24e0, - 0x1a34e482, 0x93e483f5, 0x43220df5, 0xe14310e1, - 0xfde15380, 0x2210e185, 0xe02516e5, 0x3224e025, - 0x34e482f5, 0xe483f51a, 0x55852293, 0x83548582, - 0x22f015e5, 0x2054e2e5, 0x220094d3, 0x4054e2e5, - 0x220094d3, 0x064408e5, 0xfd2282f5, 0xebfb08e5, - 0x82f50744, 0x53f5e422, 0x40340f12, 0x80017f04, - 0x12007f02, 0x04403c0f, 0x0280017e, 0x4fee007e, - 0x0f020370, 0x10e185f7, 0x5302e143, 0xe1850fe1, - 0x51f5e410, 0x3f54e3e5, 0x0f1252f5, 0xad1d403c, - 0x1251af52, 0x60efb01c, 0x10e18508, 0x8040e143, - 0xbfe1530b, 0x120b0f12, 0xfb800600, 0x3f54e3e5, - 0xe4e551f5, 0x52f53f54, 0x40340f12, 0xaf52ad1d, - 0xb01c1251, 0x850860ef, 0xe14310e1, 0x530b8020, - 0x0f12dfe1, 0x0600120b, 0x0f12fb80, 0x7f044034, - 0x7f028001, 0x3c0f1200, 0x017e0440, 0x007e0280, - 0x03604fee, 0x220e0f12, 0x01001f01, 0x00002003, - 0x02001102, 0x10024010, 0x00000090, 0x00000000, - 0x1f011f01, 0x1257f5e4, 0x15123f16, 0x1012e4c6, - 0xb7141256, 0x12260790, 0x12e44207, 0xf0e43e07, - 0x12561012, 0x0790b714, 0x42071226, 0x071241e5, - 0xf040e53e, 0x007e57af, 0x007c56ad, 0xaf490412, - 0x02007e56, 0x90ffee11, 0xe0a32007, 0x56f5e4fd, - 0xfcfe40f5, 0x12fa56ab, 0x0f7f5111, 0xf5e4187d, - 0xfe40f556, 0xfa56abfc, 0xaf411512, 0x12007e56, - 0xffe47f1a, 0x1f7d56f5, 0xfcfe40f5, 0x22fa56ab, - 0x55f5e422, 0x74fd08e5, 0xed56f5a0, 0x57f50744, - 0xe53028e5, 0x0180d303, 0x7f0540c3, 0x0480ef28, - 0xc3ef147f, 0xe454f513, 0xcb0e12f9, 0xe08e8375, - 0xefce10f5, 0x94d3eece, 0xe5264000, 0x12fe5410, - 0x83754b0f, 0xe5f0ed8e, 0xfd014410, 0xf50744eb, - 0x85f0ed82, 0x56858257, 0xe330e083, 0x801e0901, - 0xe934c2d4, 0x405495c3, 0x2234d202, 0x00000f22, - 0x90113030, 0x93e40010, 0x109010f5, 0xf593e410, - 0x90101210, 0x22501112, 0xe730e2e5, 0x0310120e, - 0x303030c2, 0xfc101203, 0xe5213320, 0x2094c3fe, - 0xf9530950, 0x30fe75f7, 0xe508f943, 0x03e730f2, - 0xe57ff953, 0xd37054f1, 0xdf500094, 0x00000022, - 0x8f588e22, 0x8d5a8c59, 0x8b5c8a5b, 0x015e755d, - 0xf55ff5e4, 0x1262f560, 0x83753707, 0xc4ffe0d0, - 0x61f50f54, 0x85661e12, 0xe5d35e59, 0xe55b955e, - 0x7807125a, 0x07124b50, 0xbc837510, 0x125e45e0, - 0x83753607, 0x5e45e0be, 0x75360712, 0x45e0c083, - 0x5faff05e, 0x081260e5, 0x360a127b, 0x007e62af, - 0x5cac5dad, 0xe5490412, 0x7e5eaf61, 0x0503b400, - 0x80e21d12, 0xac5dad07, 0x1713125c, 0x11025e05, - 0x1007127a, 0xe0bc8375, 0x07124045, 0xbe837536, - 0x124045e0, 0x83753607, 0x4045e0c0, 0x588e22f0, - 0x5a75598f, 0x75017901, 0xfbe4015b, 0x75370712, - 0x54e0ae83, 0x0812ff1a, 0x13c4e068, 0xeffe0754, - 0x65ee0c70, 0x90077035, 0xb4e02f07, 0x35af0d01, - 0x0e12007e, 0xcfebcf05, 0xe5211e02, 0x45026459, - 0x7f047058, 0x7f028001, 0x4559e500, 0x7e047058, - 0x7e028001, 0x604fee00, 0x49418523, 0xe54b4085, - 0x70584559, 0xfe5aaf2c, 0xfccde9cd, 0x58aa59ab, - 0xaf360a12, 0x12007e5b, 0x1580211e, 0x007e5baf, - 0x90211e12, 0x07122607, 0x1249e542, 0x4be53e07, - 0xaffde4f0, 0x12fcfe35, 0x8c222209, 0x12658d64, - 0x3c40e708, 0x644565e5, 0x09121070, 0x3ee5c311, + 0xef82f507, 0x5410e5f0, 0x44edfffe, 0xef82f507, + 0x75481b12, 0x44e08683, 0x481b1210, 0xf01044e0, + 0xe02a1b12, 0x0144fd54, 0x2a1b12ff, 0x691b12ef, + 0xe50c3230, 0xf5084408, 0x82837582, 0xaff00574, + 0x5918120b, 0x08251074, 0x000208f5, 0xe5090585, + 0x0794d309, 0x00020350, 0xd37ee582, 0x04400094, + 0x0280017f, 0x7ee5007f, 0x50fa94c3, 0x80017e04, + 0xee007e02, 0x0502605f, 0x0b35307e, 0x7f01e143, + 0xb3161209, 0x53580002, 0x0002fee1, 0x8f6a8e58, + 0x8d6c8c6b, 0x016e756d, 0x75016f75, 0xf5e40170, + 0xf574f573, 0x2f079075, 0xf53cf5f0, 0xf546f53e, + 0xf53df547, 0xe56ff53f, 0xe50e706f, 0x126a456b, + 0x83753707, 0x803a7480, 0x37071208, 0x74808375, + 0x3607121a, 0xe0868375, 0xe4f00844, 0x74c36ef5, + 0xff6e953f, 0x75680812, 0xf0ef8283, 0x12741912, + 0x33e5d308, 0x070912f0, 0x40be0812, 0x706fe5e1, + 0x3707120b, 0x74808375, 0x0980f036, 0x75370712, + 0x16748083, 0x016e75f0, 0x75370712, 0x6ee5b483, + 0x741912f0, 0x6e253f74, 0x34e482f5, 0xe583f500, + 0xbf74f033, 0x82f56e25, 0x120034e4, 0xd840be08, + 0xf570f5e4, 0xf547f546, 0x0709126e, 0xfee083f5, + 0xe0d30812, 0x0024007c, 0xfe3eecff, 0xefd33bad, + 0x509cee9d, 0x80017b04, 0xe5007b02, 0x7a047070, + 0x7a028001, 0x605aeb00, 0x466e8506, 0xd3017075, + 0x9cee9def, 0x017f0450, 0x007f0280, 0x01b470e5, + 0x80017e04, 0xef007e02, 0x8503605e, 0x6e05476e, + 0x7f646ee5, 0x46e5a370, 0x47e50560, 0x85037eb4, + 0x6fe54746, 0x46850870, 0x77478576, 0x74c30e80, + 0xf546957f, 0x7f74c378, 0x79f54795, 0x37706fe5, + 0x476546e5, 0x73750c70, 0x01747501, 0x3df53cf5, + 0xf5e43580, 0x47e5c34e, 0x3cf54695, 0x71f513c3, + 0x72f54625, 0x403f94c3, 0x3df5e405, 0x74c34080, + 0xf572953f, 0xe537803d, 0x70476546, 0x0173750f, + 0xf5017575, 0x753ff53e, 0x2280014e, 0xc34ef5e4, + 0x469547e5, 0x13c33ef5, 0x462571f5, 0x94d372f5, + 0xe405503f, 0x06803ff5, 0xc12472e5, 0x6f053ff5, + 0x94c36fe5, 0x02035002, 0x6de57304, 0x02706c45, + 0x74e50480, 0x07907545, 0x017ff02f, 0x04603ee5, + 0x14703ce5, 0xf53cf5e4, 0xf53ef53d, 0xdf08123f, + 0x02f00470, 0x7a80b106, 0x95c33ce5, 0xe507403e, + 0xff3e953c, 0xe5c30680, 0xff3c953e, 0x95d376e5, + 0x85054079, 0x03807a76, 0xe57a7985, 0x7895c377, + 0x77850550, 0x8503807b, 0x7be57b78, 0x407a95d3, + 0x957be530, 0xf53cf57a, 0x7be5c33e, 0x07907a95, + 0x3ce5f019, 0x71f513c3, 0x72f57a25, 0x403f94c3, + 0x3df5e405, 0x74c31f80, 0xf572953f, 0x803ff53d, + 0x3cf5e414, 0x07903ef5, 0x0812f019, 0xf00370df, + 0x01740380, 0x680812f0, 0xe0d08375, 0xadfe0f54, + 0x7e02703c, 0x020fbe07, 0xfbee807e, 0x749bd3ef, + 0x4098f880, 0x3cf5e41f, 0x08123ef5, 0xf00370df, + 0x01741280, 0xfb08e5f0, 0xf50744eb, 0xd2837582, + 0xf01044e0, 0xebfb08e5, 0x82f50944, 0xed9e8375, + 0x0744ebf0, 0x837582f5, 0x12f0edca, 0x83756808, + 0x22f0efcc, 0x074408e5, 0x837582f5, 0xf054e0bc, + 0x4408e5f0, 0x7582f507, 0x54e0be83, 0x08e5f0f0, + 0x82f50744, 0xe0c08375, 0xe5f0f054, 0xf5074408, + 0x90f02282, 0xfee02807, 0x82f5e0a3, 0x8522838e, + 0x41854242, 0x40408541, 0xf52fc074, 0x3e027482, + 0x42e583f5, 0x2fe074f0, 0x027482f5, 0x2283f53e, + 0xfd2942e5, 0xe5fc33e4, 0xec9dc33c, 0x74f88064, + 0xf5229880, 0x0790e083, 0xfd1f5422, 0xe0a3fae0, + 0x838a82f5, 0x9022f0ed, 0xfce02207, 0x82f5e0a3, + 0x9022838c, 0xedff2407, 0xf0cf0744, 0x22f0efa3, + 0x85383885, 0x3a853939, 0x2fc0743a, 0x027482f5, + 0x2283f53e, 0xff260790, 0xcf0744ed, 0xf0efa3f0, + 0xa074f022, 0x7482f52f, 0x83f53e02, 0x25c07422, + 0xe482f511, 0x83f50134, 0x25007422, 0xe482f511, + 0x83f50234, 0x25607422, 0xe482f511, 0x83f50334, + 0x25807422, 0xe482f511, 0x83f50334, 0x25e07422, + 0xe482f511, 0x83f50334, 0x25407422, 0xe482f511, + 0x83f50634, 0x2f807422, 0x027482f5, 0x2283f53e, + 0x82e583f5, 0x82f50744, 0x22f040e5, 0x11254074, + 0x34e482f5, 0x2283f502, 0x1125c074, 0x34e482f5, + 0x2283f503, 0x11250074, 0x34e482f5, 0x2283f506, + 0x11252074, 0x34e482f5, 0x2283f506, 0xedfd08e5, + 0x82f50744, 0xf041e522, 0x016465e5, 0x7e226445, + 0x007afb00, 0x22007cfd, 0x11252074, 0x34e482f5, + 0xa0742202, 0x82f51125, 0x220334e4, 0x007e08af, + 0xf50744ef, 0x3e852282, 0x413f8542, 0x8522408f, + 0x3d85423c, 0x22408f41, 0x903f4575, 0xf0e42007, + 0x83f522a3, 0x05f032e5, 0xc36ee56e, 0xf0224094, + 0x064408e5, 0x742282f5, 0xf56e2500, 0x0034e482, + 0xe52283f5, 0x906c456d, 0xe4222f07, 0xd33ce5f9, + 0x74223e95, 0x82f52e80, 0xf50234e4, 0x7422e083, + 0x82f52ea0, 0xf50234e4, 0x7422e083, 0xf56e2580, + 0x0034e482, 0xfd422522, 0x22fc33e4, 0x85424285, + 0x40854141, 0x4ced2240, 0x09020360, 0x704eeff2, + 0x26079037, 0xe0960712, 0xd90712fd, 0x0790f0ed, + 0x96071228, 0x0712fde0, 0x12f0ede5, 0x54e09307, + 0x0812fd1f, 0xed83f584, 0x240790f0, 0xe0960712, + 0x12fd1f54, 0xf0ed3808, 0x4e0464ef, 0x07903770, + 0x96071226, 0x0712fde0, 0x90f0edf1, 0x07122807, + 0x12fde096, 0xf0edfd07, 0xe0930712, 0x12fd1f54, + 0x83f58e08, 0x0790f0ed, 0x96071224, 0xfd1f54e0, + 0xed440812, 0x0164eff0, 0x7d04704e, 0x7d028001, + 0x0264ef00, 0x7f04704e, 0x7f028001, 0x604def00, + 0x26079078, 0xe0420712, 0x090812ff, 0x3e0712ef, + 0x0812ffe0, 0x90f0ef15, 0x07122207, 0x1f54e042, + 0x500812ff, 0x0790f0ef, 0x42071224, 0xff1f54e0, + 0xef5c0812, 0x071222f0, 0x12f0e4d9, 0xf0e4e507, + 0xf5840812, 0x12f0e483, 0x14743808, 0xf10712f0, + 0x0712f0e4, 0x12f0e4fd, 0x83f58e08, 0x0812f0e4, + 0xf0147444, 0xe4090812, 0x150812f0, 0x0812f0e4, + 0x12f0e450, 0x14745c08, 0x648c22f0, 0x668a658d, + 0xf5e4678b, 0x704eef69, 0x161d0203, 0xe568f5e4, + 0x70664567, 0x37071232, 0xe4908375, 0x75360712, + 0x12e4c283, 0x83753607, 0x0812e4c4, 0x12297073, + 0x83753707, 0x0712e492, 0xc6837536, 0x360712e4, + 0xe4c88375, 0x901180f0, 0x07122607, 0x0812e442, + 0x12057073, 0xf0e43f07, 0x12161d12, 0x67e5801e, + 0x33706645, 0x75370712, 0x41e59083, 0x75360712, + 0x41e5c283, 0x75360712, 0x0812c483, 0x12297071, + 0x83753707, 0x1240e592, 0x83753607, 0x1240e5c6, + 0x83753607, 0x900e80c8, 0x07122607, 0x71081242, + 0x07120670, 0xf040e53f, 0x007e69af, 0x66ac67ad, + 0x12490412, 0x83753707, 0x94d3e0ca, 0x050c5000, + 0xc368e568, 0x03500594, 0x224b0a02, 0x75f7f953, + 0xf5e410fc, 0x30fe75fd, 0xf943fff5, 0x20e6e508, + 0xff780be7, 0xfdd8f6e4, 0x80fee653, 0xe4087809, + 0x53fdd8f6, 0x8175fee6, 0xa8f5e480, 0xa9c2a8d2, + 0xe2e5afd2, 0x2005e520, 0x038002e6, 0xe502e143, + 0x0ee020e2, 0x7f000090, 0xe4087e00, 0xfcdfa3f0, + 0x0b02fade, 0x01fa43b5, 0xf0c0e0c0, 0x82c083c0, + 0x1112d0c0, 0xd0d0d018, 0xd083d082, 0x53e0d0f0, + 0x0232fefa, 0x93e4d51a, 0x93e4f8a3, 0xdf08f6a3, + 0xe42980f9, 0x54f8a393, 0xc80c2407, 0x54c433c3, + 0xc820440f, 0xf4044083, 0x46018056, 0x80e4dff6, + 0x0402010b, 0x40201008, 0xff0f9080, 0x93017ee4, + 0xffa3c160, 0xe5303f54, 0xfe1f5409, 0x60a393e4, + 0x54cf0e01, 0x60e025c0, 0x80b840ad, 0x8d608cfe, + 0xe7081261, 0x0d402074, 0x7482f52f, 0x83f53e03, + 0x80f03ee5, 0x82f52f0b, 0xf53e0374, 0xf03ce583, + 0x95d33ce5, 0xe53c403e, 0x70604561, 0x0912e910, + 0x123ee511, 0x3b407507, 0x80a20812, 0xc33ee518, + 0x1d403895, 0xe5383e85, 0x8505603e, 0x0380393f, + 0x8f393985, 0x2108123a, 0x07123ee5, 0xf03fe5cd, + 0xe5438022, 0x70604561, 0x6c071219, 0x08120540, + 0x122780ab, 0x08121809, 0x1242e521, 0x41e5cd07, + 0x3ce522f0, 0x403895c3, 0x383c851d, 0x05603ce5, + 0x80393d85, 0x39398503, 0x08123a8f, 0x123ce521, + 0x3de5cd07, 0x388522f0, 0x39398538, 0x123a3a85, + 0x38e52108, 0xe5cd0712, 0x7f22f039, 0xb3161206, + 0x12e41c12, 0x0e12b70e, 0x0a44e0e6, 0xfe8e74f0, + 0x12b70e12, 0xf0efbe0e, 0xe53028e5, 0x0180d303, + 0x750540c3, 0x03802014, 0x12081475, 0x8375b70e, + 0xf014e58a, 0x7505ffb4, 0x06808012, 0x13c314e5, + 0xf5e412f5, 0x127ff516, 0x1312b818, 0xc30ae5a3, + 0x09500194, 0x16e51605, 0x401494c3, 0x20e4e5ea, + 0x0e1228e7, 0xd28375b7, 0xd30854e0, 0x04400094, + 0x0280017f, 0x0ae5007f, 0x400194c3, 0x80017e04, + 0xef007e02, 0x1203605e, 0x7fe5981d, 0x401194c3, + 0xb70e1214, 0xe0d28375, 0xe5f08044, 0x0fe720e4, + 0x80981d12, 0xb70e120a, 0xe0d28375, 0x12f07f54, + 0x7422e41c, 0x82088580, 0x17e583f5, 0xed0e12f0, + 0x0790f0e4, 0x0e12e002, 0x908375ca, 0x9274f0ef, + 0x4408e5fe, 0x82f5ff07, 0x54e0838e, 0x0790fdc0, + 0x3f54e003, 0x8e828f4d, 0x0790f083, 0x0e12e004, + 0x828375ca, 0x0790f0ef, 0xedffe005, 0x82f50744, + 0xefb48375, 0x75b60e12, 0x54e08083, 0x3730f0bf, + 0x440f120a, 0xe0948375, 0x30f08044, 0x0f120a38, + 0x92837544, 0xf08044e0, 0xe43028e5, 0x0a39201a, + 0x75b70e12, 0x54e08883, 0x3a20f07f, 0xb70e120a, + 0xe0888375, 0x74f0bf54, 0x0e12fe8c, 0xe0838eb7, + 0x0e120f54, 0x868375b6, 0xf0bf54e0, 0x064408e5, + 0x75b00e12, 0xf0e48a83, 0x704eef22, 0xd9071226, + 0x0790fde0, 0x88071226, 0xe0e50712, 0x280790fd, + 0x12880712, 0x07128408, 0x3808127f, 0x240790e0, + 0xef850712, 0x704e0464, 0xf1071229, 0x0790fde0, + 0x88071226, 0xe0fd0712, 0x280790fd, 0x12880712, + 0x07128e08, 0x4408127f, 0xfd1f54e0, 0x12240790, + 0x64ef8807, 0x04704e01, 0x0280017d, 0x64ef007d, + 0x04704e02, 0x0280017f, 0x4def007f, 0x08123560, + 0x90ffe009, 0x07122607, 0x12f0ef96, 0xffe01508, + 0x12280790, 0xf0ef9607, 0xe0500812, 0x12ff1f54, + 0xf0ef9307, 0xe05c0812, 0x90ff1f54, 0x07122407, + 0x22f0ef96, 0x837582f5, 0xe5f0e482, 0xf5074408, + 0x838e2282, 0x5410f5e0, 0x10e5f0fe, 0xe5ff0144, + 0x44edfd08, 0x2282f507, 0x54c415e5, 0x08e5ff07, + 0x0844edfd, 0x837582f5, 0x83752282, 0x4044e080, + 0x4408e5f0, 0x7582f508, 0xe5228a83, 0x25e02516, + 0xf52f24e0, 0x1a34e482, 0x93e483f5, 0x43220df5, + 0xe14310e1, 0xfde15380, 0x2210e185, 0xe02516e5, + 0x3224e025, 0x34e482f5, 0xe483f51a, 0x55852293, + 0x83548582, 0x22f015e5, 0x2054e2e5, 0x220094d3, + 0x4054e2e5, 0x220094d3, 0x064408e5, 0xfd2282f5, + 0xebfb08e5, 0x82f50744, 0x53f5e422, 0x40340f12, + 0x80017f04, 0x12007f02, 0x04403c0f, 0x0280017e, + 0x4fee007e, 0x0f020370, 0x10e185f7, 0x5302e143, + 0xe1850fe1, 0x51f5e410, 0x3f54e3e5, 0x0f1252f5, + 0xad1d403c, 0x1251af52, 0x60efb01c, 0x10e18508, + 0x8040e143, 0xbfe1530b, 0x120b0f12, 0xfb800600, + 0x3f54e3e5, 0xe4e551f5, 0x52f53f54, 0x40340f12, + 0xaf52ad1d, 0xb01c1251, 0x850860ef, 0xe14310e1, + 0x530b8020, 0x0f12dfe1, 0x0600120b, 0x0f12fb80, + 0x7f044034, 0x7f028001, 0x3c0f1200, 0x017e0440, + 0x007e0280, 0x03604fee, 0x220e0f12, 0x01001f01, + 0x00002003, 0x02001102, 0x10024010, 0x00000090, + 0x00000000, 0x1f011f01, 0x1257f5e4, 0x15123f16, + 0x1012e4c6, 0xb7141256, 0x12260790, 0x12e44207, + 0xf0e43e07, 0x12561012, 0x0790b714, 0x42071226, + 0x071241e5, 0xf040e53e, 0x007e57af, 0x007c56ad, + 0xaf490412, 0x02007e56, 0x90ffee11, 0xe0a32007, + 0x56f5e4fd, 0xfcfe40f5, 0x12fa56ab, 0x0f7f5111, + 0xf5e4187d, 0xfe40f556, 0xfa56abfc, 0xaf411512, + 0x12007e56, 0xffe47f1a, 0x1f7d56f5, 0xfcfe40f5, + 0x22fa56ab, 0x55f5e422, 0x74fd08e5, 0xed56f5a0, + 0x57f50744, 0xe53028e5, 0x0180d303, 0x7f0540c3, + 0x0480ef28, 0xc3ef147f, 0xe454f513, 0xcb0e12f9, + 0xe08e8375, 0xefce10f5, 0x94d3eece, 0xe5264000, + 0x12fe5410, 0x83754b0f, 0xe5f0ed8e, 0xfd014410, + 0xf50744eb, 0x85f0ed82, 0x56858257, 0xe330e083, + 0x801e0901, 0xe934c2d4, 0x405495c3, 0x2234d202, + 0x00000f22, 0x90113030, 0x93e40010, 0x109010f5, + 0xf593e410, 0x90101210, 0x22501112, 0xe730e2e5, + 0x0310120e, 0x303030c2, 0xfc101203, 0xe5213320, + 0x2094c3fe, 0xf9530950, 0x30fe75f7, 0xe508f943, + 0x03e730f2, 0xe57ff953, 0xd37054f1, 0xdf500094, + 0x00000022, 0x8f588e22, 0x8d5a8c59, 0x8b5c8a5b, + 0x015e755d, 0xf55ff5e4, 0x1262f560, 0x83753707, + 0xc4ffe0d0, 0x61f50f54, 0x85661e12, 0xe5d35e59, + 0xe55b955e, 0x7807125a, 0x07124b50, 0xbc837510, + 0x125e45e0, 0x83753607, 0x5e45e0be, 0x75360712, + 0x45e0c083, 0x5faff05e, 0x081260e5, 0x360a127b, + 0x007e62af, 0x5cac5dad, 0xe5490412, 0x7e5eaf61, + 0x0503b400, 0x80e21d12, 0xac5dad07, 0x1713125c, + 0x11025e05, 0x1007127a, 0xe0bc8375, 0x07124045, + 0xbe837536, 0x124045e0, 0x83753607, 0x4045e0c0, + 0x588e22f0, 0x5a75598f, 0x75017901, 0xfbe4015b, + 0x75370712, 0x54e0ae83, 0x0812ff1a, 0x13c4e068, + 0xeffe0754, 0x65ee0c70, 0x90077035, 0xb4e02f07, + 0x35af0d01, 0x0e12007e, 0xcfebcf05, 0xe5211e02, + 0x45026459, 0x7f047058, 0x7f028001, 0x4559e500, + 0x7e047058, 0x7e028001, 0x604fee00, 0x49418523, + 0xe54b4085, 0x70584559, 0xfe5aaf2c, 0xfccde9cd, + 0x58aa59ab, 0xaf360a12, 0x12007e5b, 0x1580211e, + 0x007e5baf, 0x90211e12, 0x07122607, 0x1249e542, + 0x4be53e07, 0xaffde4f0, 0x12fcfe35, 0x8c222209, + 0x12658d64, 0x3c40e708, 0x644565e5, 0x09121070, + 0x3ee5c311, 0x40760712, 0xa208123b, 0x3ee51880, + 0x403895c3, 0x383e851d, 0x05603ee5, 0x80393f85, + 0x39398503, 0x07123a8f, 0x123ee5b5, 0x3fe56007, + 0x3b8022f0, 0x644565e5, 0x07121170, 0x1205406c, + 0x1f80ab08, 0xe54b0712, 0xe522f041, 0x3895c33c, + 0x3c851d40, 0x603ce538, 0x393d8505, 0x39850380, + 0x123a8f39, 0x3ce5b507, 0xe5600712, 0x1222f03d, + 0x38e5ac07, 0xe5600712, 0x8c22f039, 0x12648d63, + 0x3c40e708, 0x634564e5, 0x09121070, 0x3ee5c311, 0x40760712, 0xa208123b, 0x3ee51880, 0x403895c3, 0x383e851d, 0x05603ee5, 0x80393f85, 0x39398503, 0x07123a8f, 0x123ee5b5, 0x3fe56007, 0x3b8022f0, - 0x644565e5, 0x07121170, 0x1205406c, 0x1f80ab08, + 0x634564e5, 0x07121170, 0x1205406c, 0x1f80ab08, 0xe54b0712, 0xe522f041, 0x3895c33c, 0x3c851d40, 0x603ce538, 0x393d8505, 0x39850380, 0x123a8f39, 0x3ce5b507, 0xe5600712, 0x1222f03d, 0x38e5ac07, - 0xe5600712, 0x8c22f039, 0x12648d63, 0x3c40e708, - 0x634564e5, 0x09121070, 0x3ee5c311, 0x40760712, - 0xa208123b, 0x3ee51880, 0x403895c3, 0x383e851d, - 0x05603ee5, 0x80393f85, 0x39398503, 0x07123a8f, - 0x123ee5b5, 0x3fe56007, 0x3b8022f0, 0x634564e5, - 0x07121170, 0x1205406c, 0x1f80ab08, 0xe54b0712, - 0xe522f041, 0x3895c33c, 0x3c851d40, 0x603ce538, - 0x393d8505, 0x39850380, 0x123a8f39, 0x3ce5b507, - 0xe5600712, 0x1222f03d, 0x38e5ac07, 0xe5600712, - 0xe522f039, 0x08e5fe0d, 0x0544548e, 0x157555f5, - 0x1282f50f, 0x17122d0f, 0x05312025, 0x80031575, - 0x0b157503, 0x94c30ae5, 0x12385001, 0x31202014, - 0x05150506, 0x15048015, 0xe5151515, 0x0194c30a, - 0x14122150, 0x04312020, 0x02801505, 0x0ae51515, - 0x500194c3, 0x2a0f120e, 0x20251712, 0x15050531, - 0xe52a0f12, 0x0408b415, 0x0280017f, 0x15e5007f, - 0x7e0407b4, 0x7e028001, 0x604fee00, 0x227f0502, - 0x85825585, 0x15e58354, 0x251712f0, 0x37071222, - 0x74ae8375, 0x360712ff, 0xf51a54e0, 0x13c4e034, - 0x35f50754, 0x2460fe24, 0x3c60fe24, 0x63700424, - 0xe52d3175, 0xb674fd08, 0x749f0712, 0x220790bc, - 0x74a20712, 0xc0071290, 0x3c809274, 0xe53a3175, - 0xba74fd08, 0x749f0712, 0x220790c0, 0x74c30712, - 0xc00712c4, 0x2080c874, 0xe5353175, 0xb874fd08, - 0x749f0712, 0x44edffbe, 0x22079007, 0xefa3f0cf, - 0x12c274f0, 0xc674c007, 0x0744edff, 0xa3f0cfa3, - 0x7522f0ef, 0x8e220134, 0x8c598f58, 0x8a5b8d5a, - 0x755d8b5c, 0xf5e4015e, 0x661e125f, 0xd35e5985, - 0x5b955ee5, 0x07125ae5, 0xe5575078, 0x705c455d, - 0x37071230, 0xe5928375, 0x3607125e, 0xe5c68375, - 0x3607125e, 0xe5c88375, 0x3607125e, 0xe5908375, - 0x3607125e, 0xe5c28375, 0x3607125e, 0x80c48375, - 0x3f071203, 0xaff05ee5, 0xad007e5f, 0x125cac5d, - 0x5eaf4904, 0x5dad007e, 0x0b125cac, 0x025e05d9, - 0x5dabcf14, 0x5bad5caa, 0x59af5aac, 0x1b0258ae, - 0x8d5c8c7b, 0x8b5e8a5d, 0x0160755f, 0xf561f5e4, - 0x1263f562, 0x608f661e, 0x9560e5d3, 0x125ce55d, - 0x61507807, 0x5e455fe5, 0x07122770, 0xb6837537, - 0x071260e5, 0xb8837536, 0x071260e5, 0xba837536, - 0xaff060e5, 0xe5007e61, 0x7d081262, 0x80360a12, - 0x24079019, 0xe5420712, 0x36071260, 0xe48e8375, - 0x74360712, 0x36071201, 0x63aff0e4, 0x5fad007e, - 0x04125eac, 0x7e60af49, 0xac5fad00, 0x8b12125e, - 0x15026005, 0xf5e42258, 0xaf59f558, 0x0744ef08, - 0x837582f5, 0xc4fde0d0, 0x5af50f54, 0xf50744ef, - 0x80837582, 0x12f00174, 0x83759a08, 0xf045e582, - 0xf50744ef, 0x8a837582, 0x12f0ff74, 0x07127419, - 0xbc837537, 0x12ef54e0, 0x83753607, 0xef54e0be, - 0x75360712, 0x54e0c083, 0x360712ef, 0xe0bc8375, - 0x07121044, 0xbe837536, 0x121044e0, 0x83753607, - 0x1044e0c0, 0xe558aff0, 0x7b081259, 0xe4360a02, - 0x017d58f5, 0x35af59f5, 0x0912fcfe, 0x37071222, - 0x74b68375, 0x36071210, 0x74b88375, 0x36071210, - 0x74ba8375, 0x36071210, 0x74bc8375, 0x36071210, - 0x74be8375, 0x36071210, 0x74c08375, 0x36071210, - 0xe4908375, 0x75360712, 0x12e4c283, 0x83753607, - 0x0712e4c4, 0x92837536, 0x360712e4, 0xe4c68375, - 0x75360712, 0xf0e4c883, 0xe5fe58af, 0x7d081259, - 0xe5360a02, 0x6ce430e2, 0xc054e7e5, 0x64704064, - 0x54c409e5, 0x08e5fe30, 0xe025e025, 0xfe4ec054, - 0x4e3f54ef, 0xae2be5fd, 0xc302782a, 0xce33ce33, - 0x82f5f9d8, 0xf0ed838e, 0x2aae2be5, 0x33c30278, - 0xd8ce33ce, 0x82f5fff9, 0xe5a3838e, 0x828ff0fe, - 0xa3a3838e, 0x8ff0fde5, 0xa3838e82, 0xfce5a3a3, - 0x2be5c3f0, 0x2ae5fa94, 0x08500094, 0x2be52b05, - 0x2a050270, 0xe4ffe422, 0x56f558f5, 0x827457f5, - 0xb70e12fc, 0xf5e0838c, 0xf07f5410, 0x804410e5, - 0xed4b0f12, 0x120a7ef0, 0x8375b70e, 0xe020e0a0, - 0x05f4de26, 0x7057e557, 0xe5560502, 0xfd012414, - 0xd3fc33e4, 0xe59d57e5, 0xd9409c56, 0x20940ae5, - 0x0a050250, 0xc208e143, 0xb70e1231, 0xe0a68375, - 0x12651255, 0x31d20370, 0x2231c222, 0xe0260790, - 0xf5e0a3fa, 0xe0838a82, 0x39e541f5, 0x404195c3, - 0x9539e526, 0xee9fc341, 0x40780712, 0x80017c04, - 0xe5007c02, 0x603f6441, 0x80017b04, 0xec007b02, - 0x0529605b, 0xc3288041, 0x399541e5, 0x12ee9fc3, - 0x04407807, 0x0280017f, 0x41e5007f, 0x017e0460, - 0x007e0280, 0x04605eef, 0x03804115, 0x85413985, - 0xe522403a, 0x60e430e2, 0xe230e1e5, 0x7009e55b, - 0x80017f04, 0xe5007f02, 0x7e047008, 0x7e028001, - 0x605fee00, 0xf8f95343, 0xe430e2e5, 0x30e1e53b, - 0xfa432ee2, 0xfbfa5302, 0x9010f5e4, 0x10e57094, - 0x30e1e5f0, 0x9490e7e2, 0x1065e070, 0xfa430360, - 0x90100504, 0x10e57094, 0x12e670f0, 0xe1800600, - 0x53fdfa53, 0xc080fbfa, 0x12548f22, 0xe1e50600, - 0x7f04e030, 0x7f028001, 0xd37ee500, 0x04400594, - 0x0280017e, 0x4fee007e, 0x54853d60, 0x20e2e511, - 0xce7432e1, 0x303c1b12, 0x017d04e7, 0x007d0280, - 0x838e828f, 0x04e630e0, 0x0280017f, 0x5def007f, - 0x1c121570, 0x12ce7467, 0xe6303c1b, 0x8044e007, - 0x80f943f0, 0x22f31712, 0xe5f70e12, 0x25e02516, - 0xf53024e0, 0x1a34e482, 0x93e483f5, 0x16e50ff5, - 0xe025e025, 0x82f53124, 0xf51a34e4, 0xf593e483, - 0x180f120e, 0x0fe510f5, 0x0e12f054, 0x8c8375ca, - 0x0fe5f0ef, 0x120ce030, 0x8375b70e, 0x4044e086, - 0x120a80f0, 0x8375b70e, 0xbf54e086, 0x440f12f0, - 0xe5828375, 0x7f22f00e, 0xb3161205, 0x12b70e12, - 0x0274e60e, 0xfe8e74f0, 0x12b70e12, 0xf0efbe0e, - 0x12701575, 0x34208a1e, 0x10157505, 0x15750380, - 0x8a1e1250, 0x74043420, 0x74028010, 0xf51525f0, - 0xd40e1215, 0x1012f0ef, 0x17342091, 0x306415e5, - 0x10740c60, 0x15f51525, 0xe40380b4, 0x0e1215f5, - 0x22f0efd4, 0x2a0790e4, 0x12f0a3f0, 0x83753707, - 0x7f54e082, 0xe0360712, 0x12f08044, 0x08123d00, - 0xa0837598, 0x1ae020e0, 0xe02b0790, 0x0670f004, - 0xe02a0790, 0x0790f004, 0x10b4e02a, 0xb4e0a3e1, - 0x44eedc00, 0x44effca6, 0x8c82f507, 0x32f5e083, - 0xfea844ee, 0xf50744ef, 0xe0838e82, 0x122233f5, - 0x83759808, 0x54c4e0d0, 0x4375fd0f, 0xff447501, - 0x74b70812, 0x3b75f004, 0x6014ed01, 0x0b60140c, - 0x240f6014, 0x800b7003, 0x12008009, 0xf004b408, - 0x08120680, 0xf00474b4, 0xfe8244ee, 0xf50744ef, - 0xe5838e82, 0xcb081245, 0xe5828375, 0x36071231, - 0xe0868375, 0x22f00844, 0x000f1f01, 0x90002003, - 0x920f2000, 0x940f2100, 0x960f2200, 0x980f2300, - 0x9a0f2400, 0x9c0f2500, 0x9e0f2600, 0xa00f2700, - 0xa2012001, 0xa4012101, 0xa6012201, 0xa8012301, - 0xaa012401, 0xac012501, 0xae012601, 0xb0012701, - 0xb4012801, 0xb60f2800, 0xb80f2840, 0xcb012861, - 0xeecacbef, 0xe4017fca, 0x704aebfd, 0xf508e524, - 0x12b67482, 0x08e52c08, 0xb87482f5, 0xe52c0812, - 0x7482f508, 0x2c0812ba, 0x007c007e, 0x80360a12, - 0x26079012, 0xe5420712, 0x0790f041, 0x42071224, - 0x12f040e5, 0x83753707, 0x0712e48e, 0x12017436, - 0xf0e43607, 0x26f5e422, 0xe15327f5, 0x752af5fe, - 0x08f5012b, 0x1612017f, 0x1c3030b3, 0xe4291a90, - 0x9010f593, 0x93e4f91f, 0x009010f5, 0xf593e441, - 0xf90f9010, 0x10f593e4, 0x1612027f, 0x550f12b3, - 0x1612037f, 0x060012b3, 0xe730e2e5, 0x00101209, - 0x12033030, 0x00020011, 0x0be5f047, 0xe025e025, - 0x82f58224, 0xf50734e4, 0x88742283, 0x4408e5fe, - 0x82f5ff07, 0x22e0838e, 0x4408e5f0, 0x2282f507, - 0xc054e0f0, 0x838e828f, 0x44ef22f0, 0x7582f507, - 0x54e08683, 0x0094d310, 0x0790f022, 0xf004e015, - 0x44effe22, 0x8e82f507, 0x8e22e083, 0x12618f60, - 0xffe4661e, 0xeeceedce, 0xe56195d3, 0x78071260, - 0x20743940, 0xe482f52e, 0x83f50334, 0xff0370e0, - 0x08122680, 0x9fc3fdef, 0xedcf1e40, 0x704aebcf, - 0x12428d0b, 0x41f5fb08, 0x0c80408e, 0xf5ef0812, - 0xfb081238, 0x3a8e39f5, 0x22bc801e, 0xe5015875, - 0x120c7035, 0xf5e0d907, 0xe507124a, 0xe54cf5e0, - 0x0c04b435, 0xe0f10712, 0x07124af5, 0x4cf5e0fd, - 0x01b435e5, 0x80017f04, 0xe5007f02, 0x0402b435, - 0x0280017e, 0x4fee007e, 0x08120c60, 0x4af5e009, - 0xe0150812, 0x41854cf5, 0x4b408549, 0x015b7522, - 0x12240790, 0x54e04207, 0x94d3ff1f, 0x8f045002, - 0xef058058, 0x58f5fe24, 0x1894c3ef, 0x59750540, - 0xef048018, 0x8559f504, 0x58af5a43, 0x59ad007e, - 0x5bab007c, 0x1512007a, 0x7e5aaf41, 0x8c171200, - 0x007e5baf, 0x907f1a02, 0x93e4fd10, 0xf02e0790, - 0x122d1412, 0x34e5cf19, 0x07123570, 0xce837537, - 0x1313ffe0, 0xf5075413, 0x240f5436, 0x240b60fe, - 0x240a60fe, 0x02187003, 0x1e026f1d, 0x14101252, - 0x1255f5e4, 0x5505461d, 0x94c355e5, 0x22f44005, - 0xedc3fce4, 0xf5effa9f, 0x00827583, 0x93e4ff79, - 0xa3cc6ccc, 0xf6daf8d9, 0xe430e2e5, 0xede58c02, - 0xefffff24, 0xf5ff8275, 0x6c93e483, 0x017f0370, - 0x22007f22, 0x75b70e12, 0xf0e48083, 0x074408e5, - 0x75b00e12, 0x0e128483, 0x868375b5, 0x75b50e12, - 0x54e08c83, 0xb60e12f3, 0x128e8375, 0x8375b50e, - 0xfb54e094, 0x071222f0, 0x8e837537, 0x360712e4, - 0x07120174, 0x0812e436, 0x8c8375cb, 0x122044e0, - 0x54e0cb08, 0x8474f0df, 0xf5820885, 0x7f54e083, - 0x8044e0f0, 0x567522f0, 0xf5fde401, 0xfe35af57, - 0x220912fc, 0x121d1c12, 0x1b123b1e, 0x7e57afcc, - 0x7c56ad00, 0x49041200, 0x007e56af, 0x75ee1102, - 0xfde40156, 0x35af57f5, 0x0912fcfe, 0x1d1c1222, - 0x123b1e12, 0x57afcc1b, 0x56ad007e, 0x0412007c, - 0x7e56af49, 0xee110200, 0x1216f5e4, 0xe5fef70e, - 0xff054408, 0x8f180f12, 0xf0838e82, 0x16e51605, - 0x401494c3, 0x1208e5e6, 0xf0e4de0e, 0x58f5e422, - 0x5af559f5, 0x58adfeff, 0x220912fc, 0x007e047f, - 0x007c58ad, 0x7f220912, 0xad007e02, 0x02007c58, - 0x3ce52209, 0xe5fc3e25, 0xfb002442, 0xecfa33e4, - 0x12ea9bc3, 0x0b407807, 0x3de5428c, 0x41f53f25, - 0x1222408f, 0x74221809, 0x8518f584, 0x19851908, - 0x83188582, 0xf07f54e0, 0xf08044e0, 0xf08044e0, - 0x704eef22, 0x3707120b, 0xe0d28375, 0x22f0df54, - 0x75370712, 0x44e0d283, 0x7522f020, 0x07900158, - 0x42071226, 0xf53f54e0, 0x3f071241, 0xf53f54e0, - 0x56752240, 0x57f5e402, 0xafbd1d12, 0xad007e57, - 0x02007c56, 0xf5e44904, 0xf541f542, 0xf538f540, - 0x223af539, 0xff0754ef, 0xf854f9e5, 0x22f9f54f, - 0xfee4017f, 0xffbe0e0f, 0x0e1222fb, 0x12f0efd4, - 0x00229110, 0x00000000, 0x00000000, 0x00000000, + 0xe5600712, 0xe522f039, 0x08e5fe0d, 0x0544548e, + 0x157555f5, 0x1282f50f, 0x17122d0f, 0x05312025, + 0x80031575, 0x0b157503, 0x94c30ae5, 0x12385001, + 0x31202014, 0x05150506, 0x15048015, 0xe5151515, + 0x0194c30a, 0x14122150, 0x04312020, 0x02801505, + 0x0ae51515, 0x500194c3, 0x2a0f120e, 0x20251712, + 0x15050531, 0xe52a0f12, 0x0408b415, 0x0280017f, + 0x15e5007f, 0x7e0407b4, 0x7e028001, 0x604fee00, + 0x227f0502, 0x85825585, 0x15e58354, 0x251712f0, + 0x37071222, 0x74ae8375, 0x360712ff, 0xf51a54e0, + 0x13c4e034, 0x35f50754, 0x2460fe24, 0x3c60fe24, + 0x63700424, 0xe52d3175, 0xb674fd08, 0x749f0712, + 0x220790bc, 0x74a20712, 0xc0071290, 0x3c809274, + 0xe53a3175, 0xba74fd08, 0x749f0712, 0x220790c0, + 0x74c30712, 0xc00712c4, 0x2080c874, 0xe5353175, + 0xb874fd08, 0x749f0712, 0x44edffbe, 0x22079007, + 0xefa3f0cf, 0x12c274f0, 0xc674c007, 0x0744edff, + 0xa3f0cfa3, 0x7522f0ef, 0x8e220134, 0x8c598f58, + 0x8a5b8d5a, 0x755d8b5c, 0xf5e4015e, 0x661e125f, + 0xd35e5985, 0x5b955ee5, 0x07125ae5, 0xe5575078, + 0x705c455d, 0x37071230, 0xe5928375, 0x3607125e, + 0xe5c68375, 0x3607125e, 0xe5c88375, 0x3607125e, + 0xe5908375, 0x3607125e, 0xe5c28375, 0x3607125e, + 0x80c48375, 0x3f071203, 0xaff05ee5, 0xad007e5f, + 0x125cac5d, 0x5eaf4904, 0x5dad007e, 0x0b125cac, + 0x025e05d9, 0x5dabcf14, 0x5bad5caa, 0x59af5aac, + 0x1b0258ae, 0x8d5c8c7b, 0x8b5e8a5d, 0x0160755f, + 0xf561f5e4, 0x1263f562, 0x608f661e, 0x9560e5d3, + 0x125ce55d, 0x61507807, 0x5e455fe5, 0x07122770, + 0xb6837537, 0x071260e5, 0xb8837536, 0x071260e5, + 0xba837536, 0xaff060e5, 0xe5007e61, 0x7d081262, + 0x80360a12, 0x24079019, 0xe5420712, 0x36071260, + 0xe48e8375, 0x74360712, 0x36071201, 0x63aff0e4, + 0x5fad007e, 0x04125eac, 0x7e60af49, 0xac5fad00, + 0x8b12125e, 0x15026005, 0xf5e42258, 0xaf59f558, + 0x0744ef08, 0x837582f5, 0xc4fde0d0, 0x5af50f54, + 0xf50744ef, 0x80837582, 0x12f00174, 0x83759a08, + 0xf045e582, 0xf50744ef, 0x8a837582, 0x12f0ff74, + 0x07127419, 0xbc837537, 0x12ef54e0, 0x83753607, + 0xef54e0be, 0x75360712, 0x54e0c083, 0x360712ef, + 0xe0bc8375, 0x07121044, 0xbe837536, 0x121044e0, + 0x83753607, 0x1044e0c0, 0xe558aff0, 0x7b081259, + 0xe4360a02, 0x017d58f5, 0x35af59f5, 0x0912fcfe, + 0x37071222, 0x74b68375, 0x36071210, 0x74b88375, + 0x36071210, 0x74ba8375, 0x36071210, 0x74bc8375, + 0x36071210, 0x74be8375, 0x36071210, 0x74c08375, + 0x36071210, 0xe4908375, 0x75360712, 0x12e4c283, + 0x83753607, 0x0712e4c4, 0x92837536, 0x360712e4, + 0xe4c68375, 0x75360712, 0xf0e4c883, 0xe5fe58af, + 0x7d081259, 0xe5360a02, 0x6ce430e2, 0xc054e7e5, + 0x64704064, 0x54c409e5, 0x08e5fe30, 0xe025e025, + 0xfe4ec054, 0x4e3f54ef, 0xae2be5fd, 0xc302782a, + 0xce33ce33, 0x82f5f9d8, 0xf0ed838e, 0x2aae2be5, + 0x33c30278, 0xd8ce33ce, 0x82f5fff9, 0xe5a3838e, + 0x828ff0fe, 0xa3a3838e, 0x8ff0fde5, 0xa3838e82, + 0xfce5a3a3, 0x2be5c3f0, 0x2ae5fa94, 0x08500094, + 0x2be52b05, 0x2a050270, 0xe4ffe422, 0x56f558f5, + 0x827457f5, 0xb70e12fc, 0xf5e0838c, 0xf07f5410, + 0x804410e5, 0xed4b0f12, 0x120a7ef0, 0x8375b70e, + 0xe020e0a0, 0x05f4de26, 0x7057e557, 0xe5560502, + 0xfd012414, 0xd3fc33e4, 0xe59d57e5, 0xd9409c56, + 0x20940ae5, 0x0a050250, 0xc208e143, 0xb70e1231, + 0xe0a68375, 0x12651255, 0x31d20370, 0x2231c222, + 0xe0260790, 0xf5e0a3fa, 0xe0838a82, 0x39e541f5, + 0x404195c3, 0x9539e526, 0xee9fc341, 0x40780712, + 0x80017c04, 0xe5007c02, 0x603f6441, 0x80017b04, + 0xec007b02, 0x0529605b, 0xc3288041, 0x399541e5, + 0x12ee9fc3, 0x04407807, 0x0280017f, 0x41e5007f, + 0x017e0460, 0x007e0280, 0x04605eef, 0x03804115, + 0x85413985, 0xe522403a, 0x60e430e2, 0xe230e1e5, + 0x7009e55b, 0x80017f04, 0xe5007f02, 0x7e047008, + 0x7e028001, 0x605fee00, 0xf8f95343, 0xe430e2e5, + 0x30e1e53b, 0xfa432ee2, 0xfbfa5302, 0x9010f5e4, + 0x10e57094, 0x30e1e5f0, 0x9490e7e2, 0x1065e070, + 0xfa430360, 0x90100504, 0x10e57094, 0x12e670f0, + 0xe1800600, 0x53fdfa53, 0xc080fbfa, 0x12548f22, + 0xe1e50600, 0x7f04e030, 0x7f028001, 0xd37ee500, + 0x04400594, 0x0280017e, 0x4fee007e, 0x54853d60, + 0x20e2e511, 0xce7432e1, 0x303c1b12, 0x017d04e7, + 0x007d0280, 0x838e828f, 0x04e630e0, 0x0280017f, + 0x5def007f, 0x1c121570, 0x12ce7467, 0xe6303c1b, + 0x8044e007, 0x80f943f0, 0x22f31712, 0xe5f70e12, + 0x25e02516, 0xf53024e0, 0x1a34e482, 0x93e483f5, + 0x16e50ff5, 0xe025e025, 0x82f53124, 0xf51a34e4, + 0xf593e483, 0x180f120e, 0x0fe510f5, 0x0e12f054, + 0x8c8375ca, 0x0fe5f0ef, 0x120ce030, 0x8375b70e, + 0x4044e086, 0x120a80f0, 0x8375b70e, 0xbf54e086, + 0x440f12f0, 0xe5828375, 0x7f22f00e, 0xb3161205, + 0x12b70e12, 0x0274e60e, 0xfe8e74f0, 0x12b70e12, + 0xf0efbe0e, 0x12701575, 0x34208a1e, 0x10157505, + 0x15750380, 0x8a1e1250, 0x74043420, 0x74028010, + 0xf51525f0, 0xd40e1215, 0x1012f0ef, 0x17342091, + 0x306415e5, 0x10740c60, 0x15f51525, 0xe40380b4, + 0x0e1215f5, 0x22f0efd4, 0x2a0790e4, 0x12f0a3f0, + 0x83753707, 0x7f54e082, 0xe0360712, 0x12f08044, + 0x08123d00, 0xa0837598, 0x1ae020e0, 0xe02b0790, + 0x0670f004, 0xe02a0790, 0x0790f004, 0x10b4e02a, + 0xb4e0a3e1, 0x44eedc00, 0x44effca6, 0x8c82f507, + 0x32f5e083, 0xfea844ee, 0xf50744ef, 0xe0838e82, + 0x122233f5, 0x83759808, 0x54c4e0d0, 0x4375fd0f, + 0xff447501, 0x74b70812, 0x3b75f004, 0x6014ed01, + 0x0b60140c, 0x240f6014, 0x800b7003, 0x12008009, + 0xf004b408, 0x08120680, 0xf00474b4, 0xfe8244ee, + 0xf50744ef, 0xe5838e82, 0xcb081245, 0xe5828375, + 0x36071231, 0xe0868375, 0x22f00844, 0x000f1f01, + 0x90002003, 0x920f2000, 0x940f2100, 0x960f2200, + 0x980f2300, 0x9a0f2400, 0x9c0f2500, 0x9e0f2600, + 0xa00f2700, 0xa2012001, 0xa4012101, 0xa6012201, + 0xa8012301, 0xaa012401, 0xac012501, 0xae012601, + 0xb0012701, 0xb4012801, 0xb60f2800, 0xb80f2840, + 0xcb012861, 0xeecacbef, 0xe4017fca, 0x704aebfd, + 0xf508e524, 0x12b67482, 0x08e52c08, 0xb87482f5, + 0xe52c0812, 0x7482f508, 0x2c0812ba, 0x007c007e, + 0x80360a12, 0x26079012, 0xe5420712, 0x0790f041, + 0x42071224, 0x12f040e5, 0x83753707, 0x0712e48e, + 0x12017436, 0xf0e43607, 0x26f5e422, 0xe15327f5, + 0x752af5fe, 0x08f5012b, 0x1612017f, 0x1c3030b3, + 0xe4291a90, 0x9010f593, 0x93e4f91f, 0x009010f5, + 0xf593e441, 0xf90f9010, 0x10f593e4, 0x1612027f, + 0x550f12b3, 0x1612037f, 0x060012b3, 0xe730e2e5, + 0x00101209, 0x12033030, 0x00020011, 0x0be5f047, + 0xe025e025, 0x82f58224, 0xf50734e4, 0x88742283, + 0x4408e5fe, 0x82f5ff07, 0x22e0838e, 0x4408e5f0, + 0x2282f507, 0xc054e0f0, 0x838e828f, 0x44ef22f0, + 0x7582f507, 0x54e08683, 0x0094d310, 0x0790f022, + 0xf004e015, 0x44effe22, 0x8e82f507, 0x8e22e083, + 0x12618f60, 0xffe4661e, 0xeeceedce, 0xe56195d3, + 0x78071260, 0x20743940, 0xe482f52e, 0x83f50334, + 0xff0370e0, 0x08122680, 0x9fc3fdef, 0xedcf1e40, + 0x704aebcf, 0x12428d0b, 0x41f5fb08, 0x0c80408e, + 0xf5ef0812, 0xfb081238, 0x3a8e39f5, 0x22bc801e, + 0xe5015875, 0x120c7035, 0xf5e0d907, 0xe507124a, + 0xe54cf5e0, 0x0c04b435, 0xe0f10712, 0x07124af5, + 0x4cf5e0fd, 0x01b435e5, 0x80017f04, 0xe5007f02, + 0x0402b435, 0x0280017e, 0x4fee007e, 0x08120c60, + 0x4af5e009, 0xe0150812, 0x41854cf5, 0x4b408549, + 0x015b7522, 0x12240790, 0x54e04207, 0x94d3ff1f, + 0x8f045002, 0xef058058, 0x58f5fe24, 0x1894c3ef, + 0x59750540, 0xef048018, 0x8559f504, 0x58af5a43, + 0x59ad007e, 0x5bab007c, 0x1512007a, 0x7e5aaf41, + 0x8c171200, 0x007e5baf, 0x907f1a02, 0x93e4fd10, + 0xf02e0790, 0x122d1412, 0x34e5cf19, 0x07123570, + 0xce837537, 0x1313ffe0, 0xf5075413, 0x240f5436, + 0x240b60fe, 0x240a60fe, 0x02187003, 0x1e026f1d, + 0x14101252, 0x1255f5e4, 0x5505461d, 0x94c355e5, + 0x22f44005, 0xedc3fce4, 0xf5effa9f, 0x00827583, + 0x93e4ff79, 0xa3cc6ccc, 0xf6daf8d9, 0xe430e2e5, + 0xede58c02, 0xefffff24, 0xf5ff8275, 0x6c93e483, + 0x017f0370, 0x22007f22, 0x75b70e12, 0xf0e48083, + 0x074408e5, 0x75b00e12, 0x0e128483, 0x868375b5, + 0x75b50e12, 0x54e08c83, 0xb60e12f3, 0x128e8375, + 0x8375b50e, 0xfb54e094, 0x071222f0, 0x8e837537, + 0x360712e4, 0x07120174, 0x0812e436, 0x8c8375cb, + 0x122044e0, 0x54e0cb08, 0x8474f0df, 0xf5820885, + 0x7f54e083, 0x8044e0f0, 0x567522f0, 0xf5fde401, + 0xfe35af57, 0x220912fc, 0x121d1c12, 0x1b123b1e, + 0x7e57afcc, 0x7c56ad00, 0x49041200, 0x007e56af, + 0x75ee1102, 0xfde40156, 0x35af57f5, 0x0912fcfe, + 0x1d1c1222, 0x123b1e12, 0x57afcc1b, 0x56ad007e, + 0x0412007c, 0x7e56af49, 0xee110200, 0x1216f5e4, + 0xe5fef70e, 0xff054408, 0x8f180f12, 0xf0838e82, + 0x16e51605, 0x401494c3, 0x1208e5e6, 0xf0e4de0e, + 0x58f5e422, 0x5af559f5, 0x58adfeff, 0x220912fc, + 0x007e047f, 0x007c58ad, 0x7f220912, 0xad007e02, + 0x02007c58, 0x3ce52209, 0xe5fc3e25, 0xfb002442, + 0xecfa33e4, 0x12ea9bc3, 0x0b407807, 0x3de5428c, + 0x41f53f25, 0x1222408f, 0x74221809, 0x8518f584, + 0x19851908, 0x83188582, 0xf07f54e0, 0xf08044e0, + 0xf08044e0, 0x704eef22, 0x3707120b, 0xe0d28375, + 0x22f0df54, 0x75370712, 0x44e0d283, 0x7522f020, + 0x07900158, 0x42071226, 0xf53f54e0, 0x3f071241, + 0xf53f54e0, 0x56752240, 0x57f5e402, 0xafbd1d12, + 0xad007e57, 0x02007c56, 0xf5e44904, 0xf541f542, + 0xf538f540, 0x223af539, 0xff0754ef, 0xf854f9e5, + 0x22f9f54f, 0xfee4017f, 0xffbe0e0f, 0x0e1222fb, + 0x12f0efd4, 0x00229110, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, @@ -27596,7 +27841,7 @@ static const uint32_t isp_2500_multi_risc_code[] = { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x000f1f01, 0xc3002003, - 0xb9f6ad13, 0xffffb7ea, 0xffeeaafd + 0x00000000, 0x00000000, 0x00000000, 0x000f1f01, + 0xc3002003, 0xb9f6ad13, 0xffffb7ea, 0xffeeaac8 }; #endif From 8a3860d5b4974d6e5d007a310ca0a806194fac77 Mon Sep 17 00:00:00 2001 From: Adrian Chadd Date: Mon, 18 Jun 2012 02:08:04 +0000 Subject: [PATCH 300/340] Extend the radiotap code to be aware of the size of any extra vendor bitmaps that may occur. The way this works is: * the beginning of the radiotap frame has a 32 bit "radiotap" namespace bitmap; * if the vendor bitmap bit is set, then the next bitmap will be interpreted as a vendor bitmap; * this can keep going on and on (ie, more vendor and radiotap namespace bitmaps can be added) until the last bitmap with no "more bitmaps" set. Now, the radiotap code gets its grubby fingers into the supplied radiotap rx/tx buffer and replaces the channel configuration for each frame. I don't know why it's not up to the drivers themselves to do this, but I digress. So, if a vendor bitmap (or two, etc) exists, the offset calculations will be all completely wrong. This particular patch introduces ieee80211_radiotap_attachv(), which includes the number of vendor bitmaps (well, any other bitmaps, vendor or otherwise) between the end of the bitmap/header and the start of the actual radiotap field entries. This makes the radiotap calculations "right", so it correctly calculates where to overwrite the channel configuration. The long term fix is to go through and make each driver update the channel configuration, as some of the fields are already being updated. That, however, is a longer term fix that will need each driver fixed. I leave that as an exercise to someone in the future. --- sys/net80211/ieee80211_radiotap.c | 26 ++++++++++++++++++++------ sys/net80211/ieee80211_var.h | 5 +++++ 2 files changed, 25 insertions(+), 6 deletions(-) diff --git a/sys/net80211/ieee80211_radiotap.c b/sys/net80211/ieee80211_radiotap.c index 4aa5f5be44ce..f06f7e019a5d 100644 --- a/sys/net80211/ieee80211_radiotap.c +++ b/sys/net80211/ieee80211_radiotap.c @@ -47,12 +47,23 @@ __FBSDID("$FreeBSD$"); #include -static int radiotap_offset(struct ieee80211_radiotap_header *, int); +static int radiotap_offset(struct ieee80211_radiotap_header *, int, int); void ieee80211_radiotap_attach(struct ieee80211com *ic, struct ieee80211_radiotap_header *th, int tlen, uint32_t tx_radiotap, struct ieee80211_radiotap_header *rh, int rlen, uint32_t rx_radiotap) +{ + ieee80211_radiotap_attachv(ic, th, tlen, 0, tx_radiotap, + rh, rlen, 0, rx_radiotap); +} + +void +ieee80211_radiotap_attachv(struct ieee80211com *ic, + struct ieee80211_radiotap_header *th, + int tlen, int n_tx_v, uint32_t tx_radiotap, + struct ieee80211_radiotap_header *rh, + int rlen, int n_rx_v, uint32_t rx_radiotap) { #define B(_v) (1<<(_v)) int off; @@ -63,9 +74,9 @@ ieee80211_radiotap_attach(struct ieee80211com *ic, /* calculate offset to channel data */ off = -1; if (tx_radiotap & B(IEEE80211_RADIOTAP_CHANNEL)) - off = radiotap_offset(th, IEEE80211_RADIOTAP_CHANNEL); + off = radiotap_offset(th, n_tx_v, IEEE80211_RADIOTAP_CHANNEL); else if (tx_radiotap & B(IEEE80211_RADIOTAP_XCHANNEL)) - off = radiotap_offset(th, IEEE80211_RADIOTAP_XCHANNEL); + off = radiotap_offset(th, n_tx_v, IEEE80211_RADIOTAP_XCHANNEL); if (off == -1) { if_printf(ic->ic_ifp, "%s: no tx channel, radiotap 0x%x\n", __func__, tx_radiotap); @@ -79,9 +90,9 @@ ieee80211_radiotap_attach(struct ieee80211com *ic, /* calculate offset to channel data */ off = -1; if (rx_radiotap & B(IEEE80211_RADIOTAP_CHANNEL)) - off = radiotap_offset(rh, IEEE80211_RADIOTAP_CHANNEL); + off = radiotap_offset(rh, n_rx_v, IEEE80211_RADIOTAP_CHANNEL); else if (rx_radiotap & B(IEEE80211_RADIOTAP_XCHANNEL)) - off = radiotap_offset(rh, IEEE80211_RADIOTAP_XCHANNEL); + off = radiotap_offset(rh, n_rx_v, IEEE80211_RADIOTAP_XCHANNEL); if (off == -1) { if_printf(ic->ic_ifp, "%s: no rx channel, radiotap 0x%x\n", __func__, rx_radiotap); @@ -260,7 +271,8 @@ ieee80211_radiotap_rx_all(struct ieee80211com *ic, struct mbuf *m) * known -1 is returned. */ static int -radiotap_offset(struct ieee80211_radiotap_header *rh, int item) +radiotap_offset(struct ieee80211_radiotap_header *rh, + int n_vendor_attributes, int item) { static const struct { size_t align, width; @@ -334,6 +346,8 @@ radiotap_offset(struct ieee80211_radiotap_header *rh, int item) int off, i; off = sizeof(struct ieee80211_radiotap_header); + off += n_vendor_attributes * (sizeof(uint32_t)); + for (i = 0; i < IEEE80211_RADIOTAP_EXT; i++) { if ((present & (1< Date: Mon, 18 Jun 2012 07:34:38 +0000 Subject: [PATCH 301/340] In tty_makedev() the following construction: dev = make_dev_cred(); dev->si_drv1 = tp; leaves a small window where the newly created device may be opened and si_drv1 is NULL. As this is a vary rare situation, using a lock to close the window seems overkill. Instead just wait for the assignment of si_drv1. Suggested by: kib MFC after: 1 week --- sys/kern/tty.c | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/sys/kern/tty.c b/sys/kern/tty.c index 7ddcb0bc390f..e9c0fb6fe554 100644 --- a/sys/kern/tty.c +++ b/sys/kern/tty.c @@ -219,9 +219,15 @@ ttydev_leave(struct tty *tp) static int ttydev_open(struct cdev *dev, int oflags, int devtype, struct thread *td) { - struct tty *tp = dev->si_drv1; + struct tty *tp; int error = 0; + while ((tp = dev->si_drv1) == NULL) { + error = tsleep(&dev->si_drv1, PCATCH, "ttdrv1", 1); + if (error != EWOULDBLOCK) + return (error); + } + tty_lock(tp); if (tty_gone(tp)) { /* Device is already gone. */ @@ -738,9 +744,14 @@ static struct cdevsw ttydev_cdevsw = { static int ttyil_open(struct cdev *dev, int oflags, int devtype, struct thread *td) { - struct tty *tp = dev->si_drv1; + struct tty *tp; int error = 0; + while ((tp = dev->si_drv1) == NULL) { + error = tsleep(&dev->si_drv1, PCATCH, "ttdrv1", 1); + if (error != EWOULDBLOCK) + return (error); + } tty_lock(tp); if (tty_gone(tp)) error = ENODEV; @@ -1203,6 +1214,7 @@ tty_makedev(struct tty *tp, struct ucred *cred, const char *fmt, ...) dev = make_dev_cred(&ttydev_cdevsw, 0, cred, uid, gid, mode, "%s%s", prefix, name); dev->si_drv1 = tp; + wakeup(&dev->si_drv1); tp->t_dev = dev; /* Slave call-in devices. */ @@ -1211,12 +1223,14 @@ tty_makedev(struct tty *tp, struct ucred *cred, const char *fmt, ...) uid, gid, mode, "%s%s.init", prefix, name); dev_depends(tp->t_dev, dev); dev->si_drv1 = tp; + wakeup(&dev->si_drv1); dev->si_drv2 = &tp->t_termios_init_in; dev = make_dev_cred(&ttyil_cdevsw, TTYUNIT_LOCK, cred, uid, gid, mode, "%s%s.lock", prefix, name); dev_depends(tp->t_dev, dev); dev->si_drv1 = tp; + wakeup(&dev->si_drv1); dev->si_drv2 = &tp->t_termios_lock_in; } @@ -1226,6 +1240,7 @@ tty_makedev(struct tty *tp, struct ucred *cred, const char *fmt, ...) UID_UUCP, GID_DIALER, 0660, "cua%s", name); dev_depends(tp->t_dev, dev); dev->si_drv1 = tp; + wakeup(&dev->si_drv1); /* Slave call-out devices. */ if (tp->t_flags & TF_INITLOCK) { @@ -1234,6 +1249,7 @@ tty_makedev(struct tty *tp, struct ucred *cred, const char *fmt, ...) UID_UUCP, GID_DIALER, 0660, "cua%s.init", name); dev_depends(tp->t_dev, dev); dev->si_drv1 = tp; + wakeup(&dev->si_drv1); dev->si_drv2 = &tp->t_termios_init_out; dev = make_dev_cred(&ttyil_cdevsw, @@ -1241,6 +1257,7 @@ tty_makedev(struct tty *tp, struct ucred *cred, const char *fmt, ...) UID_UUCP, GID_DIALER, 0660, "cua%s.lock", name); dev_depends(tp->t_dev, dev); dev->si_drv1 = tp; + wakeup(&dev->si_drv1); dev->si_drv2 = &tp->t_termios_lock_out; } } From 00c5291f29b60ecd63748dac52c86d8f479ad4d2 Mon Sep 17 00:00:00 2001 From: Poul-Henning Kamp Date: Mon, 18 Jun 2012 07:54:10 +0000 Subject: [PATCH 302/340] Fix the previous commit to only copy the data we were asked to and not twice as much. Spotted by: Taku YAMAMOTO --- sys/dev/fb/fbreg.h | 1 + 1 file changed, 1 insertion(+) diff --git a/sys/dev/fb/fbreg.h b/sys/dev/fb/fbreg.h index ac9a6c37744f..c9689d38d152 100644 --- a/sys/dev/fb/fbreg.h +++ b/sys/dev/fb/fbreg.h @@ -39,6 +39,7 @@ static __inline void copyw(uint16_t *src, uint16_t *dst, size_t size) { + size >>= 1; while (size--) *dst++ = *src++; } From ca5598a415d30858c5b30e1228e3fa881be2b72c Mon Sep 17 00:00:00 2001 From: Alexander Motin Date: Mon, 18 Jun 2012 12:45:35 +0000 Subject: [PATCH 303/340] Remove never used CD/DA_FLAG_TAGGED_QUEUING flags. MFC after: 1 week --- sys/cam/scsi/scsi_cd.c | 3 --- sys/cam/scsi/scsi_da.c | 3 --- 2 files changed, 6 deletions(-) diff --git a/sys/cam/scsi/scsi_cd.c b/sys/cam/scsi/scsi_cd.c index d45d49a03c60..da7b8ea721e1 100644 --- a/sys/cam/scsi/scsi_cd.c +++ b/sys/cam/scsi/scsi_cd.c @@ -97,7 +97,6 @@ typedef enum { CD_FLAG_NEW_DISC = 0x0002, CD_FLAG_DISC_LOCKED = 0x0004, CD_FLAG_DISC_REMOVABLE = 0x0008, - CD_FLAG_TAGGED_QUEUING = 0x0010, CD_FLAG_CHANGER = 0x0040, CD_FLAG_ACTIVE = 0x0080, CD_FLAG_SCHED_ON_COMP = 0x0100, @@ -653,8 +652,6 @@ cdregister(struct cam_periph *periph, void *arg) bioq_init(&softc->bio_queue); if (SID_IS_REMOVABLE(&cgd->inq_data)) softc->flags |= CD_FLAG_DISC_REMOVABLE; - if ((cgd->inq_data.flags & SID_CmdQue) != 0) - softc->flags |= CD_FLAG_TAGGED_QUEUING; periph->softc = softc; softc->periph = periph; diff --git a/sys/cam/scsi/scsi_da.c b/sys/cam/scsi/scsi_da.c index 06a4d27a86d2..450e0fa3efe5 100644 --- a/sys/cam/scsi/scsi_da.c +++ b/sys/cam/scsi/scsi_da.c @@ -77,7 +77,6 @@ typedef enum { DA_FLAG_NEW_PACK = 0x002, DA_FLAG_PACK_LOCKED = 0x004, DA_FLAG_PACK_REMOVABLE = 0x008, - DA_FLAG_TAGGED_QUEUING = 0x010, DA_FLAG_NEED_OTAG = 0x020, DA_FLAG_WENT_IDLE = 0x040, DA_FLAG_RETRY_UA = 0x080, @@ -1540,8 +1539,6 @@ daregister(struct cam_periph *periph, void *arg) bioq_init(&softc->delete_run_queue); if (SID_IS_REMOVABLE(&cgd->inq_data)) softc->flags |= DA_FLAG_PACK_REMOVABLE; - if ((cgd->inq_data.flags & SID_CmdQue) != 0) - softc->flags |= DA_FLAG_TAGGED_QUEUING; softc->unmap_max_ranges = UNMAP_MAX_RANGES; softc->unmap_max_lba = 1024*1024*2; From 0bd6bb6bb06b995f6621a6a750116c7c7cf14452 Mon Sep 17 00:00:00 2001 From: "Alexander V. Chernikov" Date: Mon, 18 Jun 2012 13:50:41 +0000 Subject: [PATCH 304/340] Simplify IP pointer recovery in case of mbuf reallocation. Reviewed by: glebius (previous version) Approved by: ae(mentor) MFC after: 2 weeks --- sys/netgraph/netflow/ng_netflow.c | 68 +++++++------------------------ 1 file changed, 15 insertions(+), 53 deletions(-) diff --git a/sys/netgraph/netflow/ng_netflow.c b/sys/netgraph/netflow/ng_netflow.c index 9e125635d693..6e6589e8e20c 100644 --- a/sys/netgraph/netflow/ng_netflow.c +++ b/sys/netgraph/netflow/ng_netflow.c @@ -560,8 +560,8 @@ ng_netflow_rcvdata (hook_p hook, item_p item) struct ip6_hdr *ip6 = NULL; struct m_tag *mtag; int pullup_len = 0, off; - uint8_t upper_proto = 0, is_frag = 0; - int error = 0, bypass = 0, acct = 0; + uint8_t acct = 0, bypass = 0, is_frag = 0, upper_proto = 0; + int error = 0, l3_off = 0; unsigned int src_if_index; caddr_t upper_ptr = NULL; fib_export_p fe; @@ -666,6 +666,7 @@ ng_netflow_rcvdata (hook_p hook, item_p item) M_CHECK(sizeof(struct ip)); eh = mtod(m, struct ether_header *); ip = (struct ip *)(eh + 1); + l3_off = sizeof(struct ether_header); break; #ifdef INET6 case ETHERTYPE_IPV6: @@ -676,6 +677,7 @@ ng_netflow_rcvdata (hook_p hook, item_p item) M_CHECK(sizeof(struct ip6_hdr)); eh = mtod(m, struct ether_header *); ip6 = (struct ip6_hdr *)(eh + 1); + l3_off = sizeof(struct ether_header); break; #endif case ETHERTYPE_VLAN: @@ -686,6 +688,7 @@ ng_netflow_rcvdata (hook_p hook, item_p item) sizeof(struct ether_header)); evh = mtod(m, struct ether_vlan_header *); etype = ntohs(evh->evl_proto); + l3_off = sizeof(struct ether_vlan_header); if (etype == ETHERTYPE_IP) { M_CHECK(sizeof(struct ip)); @@ -707,6 +710,7 @@ ng_netflow_rcvdata (hook_p hook, item_p item) case DLT_RAW: /* IP packets */ M_CHECK(sizeof(struct ip)); ip = mtod(m, struct ip *); + /* l3_off is already zero */ #ifdef INET6 /* If INET6 is not defined IPv6 packets will be discarded in ng_netflow_flow_add() */ if (ip->ip_v == IP6VERSION) { @@ -824,7 +828,10 @@ ng_netflow_rcvdata (hook_p hook, item_p item) case IPPROTO_NONE: goto loopend; #endif - /* Any unknow header (new extension or IPv6/IPv4 header for tunnels) */ + /* + * Any unknow header (new extension or IPv6/IPv4 + * header for tunnels) ends loop. + */ default: goto loopend; } @@ -842,56 +849,11 @@ ng_netflow_rcvdata (hook_p hook, item_p item) /* Just in case of real reallocation in M_CHECK() / m_pullup() */ if (m != m_old) { atomic_fetchadd_32(&priv->info.nfinfo_realloc_mbuf, 1); - ip = NULL; - ip6 = NULL; - switch (iface->info.ifinfo_dlt) { - case DLT_EN10MB: /* Ethernet */ - { - struct ether_header *eh; - - eh = mtod(m, struct ether_header *); - switch (ntohs(eh->ether_type)) { - case ETHERTYPE_IP: - ip = (struct ip *)(eh + 1); - break; -#ifdef INET6 - case ETHERTYPE_IPV6: - ip6 = (struct ip6_hdr *)(eh + 1); - break; -#endif - case ETHERTYPE_VLAN: - { - struct ether_vlan_header *evh; - - evh = mtod(m, struct ether_vlan_header *); - if (ntohs(evh->evl_proto) == ETHERTYPE_IP) { - ip = (struct ip *)(evh + 1); - break; -#ifdef INET6 - } else if (ntohs(evh->evl_proto) == ETHERTYPE_IPV6) { - ip6 = (struct ip6_hdr *)(evh + 1); - break; -#endif - } - } - default: - panic("ng_netflow entered deadcode"); - } - break; - } - case DLT_RAW: /* IP packets */ - ip = mtod(m, struct ip *); -#ifdef INET6 - if (ip->ip_v == IP6VERSION) { - /* IPv6 packet */ - ip = NULL; - ip6 = mtod(m, struct ip6_hdr *); - } -#endif - break; - default: - panic("ng_netflow entered deadcode"); - } + /* Restore ip/ipv6 pointer */ + if (ip != NULL) + ip = (struct ip *)(mtod(m, caddr_t) + l3_off); + else if (ip6 != NULL) + ip6 = (struct ip6_hdr *)(mtod(m, caddr_t) + l3_off); } upper_ptr = (caddr_t)(mtod(m, caddr_t) + off); From 36374fcf4bcee43850bc6a8deb5ea2c838f58a48 Mon Sep 17 00:00:00 2001 From: "Alexander V. Chernikov" Date: Mon, 18 Jun 2012 13:56:36 +0000 Subject: [PATCH 305/340] Make radix lookup on src and dst flow addresses optional and configurable on per-interface basis. Remove __inline__ for several functions being called once per flow (e.g once per 10-20 packets on common traffic flows). Update manual page to simplify search for BPF data link types. Sponsored by Yandex LLC Reviewed by: glebius Approved by: ae(mentor) MFC after: 2 weeks --- share/man/man4/ng_netflow.4 | 47 +++++++-- sys/netgraph/netflow/netflow.c | 162 ++++++++++++++++-------------- sys/netgraph/netflow/ng_netflow.c | 13 ++- sys/netgraph/netflow/ng_netflow.h | 14 ++- 4 files changed, 143 insertions(+), 93 deletions(-) diff --git a/share/man/man4/ng_netflow.4 b/share/man/man4/ng_netflow.4 index 9431c62e909f..5985c442f2d7 100644 --- a/share/man/man4/ng_netflow.4 +++ b/share/man/man4/ng_netflow.4 @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd March 2, 2011 +.Dd June 16, 2012 .Dt NG_NETFLOW 4 .Os .Sh NAME @@ -112,7 +112,18 @@ The hook number is passed as an argument. Sets data link type on the .Va iface Ns Ar N hook. -Currently, supported types are raw IP datagrams and Ethernet. +Currently, supported types are +.Cm DLT_RAW +(raw IP datagrams) and +.Cm DLT_EN10MB +(Ethernet). +DLT_ definitions can be found in +.In net/bpf.h +header. +Currently used values are 1 for +.Cm DLT_EN10MB +and 12 for +.Cm DLT_RAW . This message type uses .Vt "struct ng_netflow_setdlt" as an argument: @@ -180,18 +191,36 @@ struct ng_netflow_setconfig { #define NG_NETFLOW_CONF_EGRESS 2 #define NG_NETFLOW_CONF_ONCE 4 #define NG_NETFLOW_CONF_THISONCE 8 +#define NG_NETFLOW_CONF_NOSRCLOOKUP 16 +#define NG_NETFLOW_CONF_NODSTLOOKUP 32 }; .Ed .Pp Configuration is a bitmask of several options. Option NG_NETFLOW_CONF_INGRESS enabled by default enables ingress NetFlow generation (for data coming from -ifaceX hook). Option NG_NETFLOW_CONF_EGRESS enables egress NetFlow (for data -coming from outX hook). Option NG_NETFLOW_CONF_ONCE defines that packet should -be accounted only once if it several times passes via netflow node. Option -NG_NETFLOW_CONF_THISONCE defines that packet should be accounted only once -if it several times passes via exactly this netflow node. Last two options are -important to avoid duplicate accounting when both ingress and egress NetFlow -are enabled. +ifaceX hook). +Option +.Va NG_NETFLOW_CONF_EGRESS +enables egress NetFlow (for data coming from outX hook). +Option +.Va NG_NETFLOW_CONF_ONCE +defines that packet should be accounted only once if it several times passes +via netflow node. +Option +.Va NG_NETFLOW_CONF_THISONCE +defines that packet should be accounted only once if it several times passes +via exactly this netflow node. +These two options are important to avoid duplicate accounting when both ingress +and egress NetFlow are enabled. +Option +.Va NG_NETFLOW_CONF_NOSRCLOOKUP +skips radix lookup on flow source address used to fill in network mask. +Option +.Va NG_NETFLOW_CONF_NODSTLOOKUP +skips radix lookup on destination (which fills egress interface id, destination +mask and gateway). +If one doesn't need data provided by lookups, he/she can disable them, to reduce +load on routers. .It Dv NGM_NETFLOW_SETTEMPLATE Sets various timeouts to announce data flow templates (NetFlow v9-specific). This message requires diff --git a/sys/netgraph/netflow/netflow.c b/sys/netgraph/netflow/netflow.c index c3443e599e18..2775756d0449 100644 --- a/sys/netgraph/netflow/netflow.c +++ b/sys/netgraph/netflow/netflow.c @@ -98,9 +98,9 @@ MALLOC_DEFINE(M_NETFLOW_HASH, "netflow_hash", "NetFlow hash"); static int export_add(item_p, struct flow_entry *); static int export_send(priv_p, fib_export_p, item_p, int); -static int hash_insert(priv_p, struct flow_hash_entry *, struct flow_rec *, int, uint8_t); +static int hash_insert(priv_p, struct flow_hash_entry *, struct flow_rec *, int, uint8_t, uint8_t); #ifdef INET6 -static int hash6_insert(priv_p, struct flow_hash_entry *, struct flow6_rec *, int, uint8_t); +static int hash6_insert(priv_p, struct flow_hash_entry *, struct flow6_rec *, int, uint8_t, uint8_t); #endif static __inline void expire_flow(priv_p, fib_export_p, struct flow_entry *, int); @@ -325,9 +325,9 @@ ng_netflow_copyinfo(priv_p priv, struct ng_netflow_info *i) * as this was done in previous version. Need to test & profile * to be sure. */ -static __inline int +static int hash_insert(priv_p priv, struct flow_hash_entry *hsh, struct flow_rec *r, - int plen, uint8_t tcp_flags) + int plen, uint8_t flags, uint8_t tcp_flags) { struct flow_entry *fle; struct sockaddr_in sin; @@ -358,44 +358,48 @@ hash_insert(priv_p priv, struct flow_hash_entry *hsh, struct flow_rec *r, * First we do route table lookup on destination address. So we can * fill in out_ifx, dst_mask, nexthop, and dst_as in future releases. */ - bzero(&sin, sizeof(sin)); - sin.sin_len = sizeof(struct sockaddr_in); - sin.sin_family = AF_INET; - sin.sin_addr = fle->f.r.r_dst; - rt = rtalloc1_fib((struct sockaddr *)&sin, 0, 0, r->fib); - if (rt != NULL) { - fle->f.fle_o_ifx = rt->rt_ifp->if_index; + if ((flags & NG_NETFLOW_CONF_NODSTLOOKUP) == 0) { + bzero(&sin, sizeof(sin)); + sin.sin_len = sizeof(struct sockaddr_in); + sin.sin_family = AF_INET; + sin.sin_addr = fle->f.r.r_dst; + rt = rtalloc1_fib((struct sockaddr *)&sin, 0, 0, r->fib); + if (rt != NULL) { + fle->f.fle_o_ifx = rt->rt_ifp->if_index; - if (rt->rt_flags & RTF_GATEWAY && - rt->rt_gateway->sa_family == AF_INET) - fle->f.next_hop = - ((struct sockaddr_in *)(rt->rt_gateway))->sin_addr; + if (rt->rt_flags & RTF_GATEWAY && + rt->rt_gateway->sa_family == AF_INET) + fle->f.next_hop = + ((struct sockaddr_in *)(rt->rt_gateway))->sin_addr; - if (rt_mask(rt)) - fle->f.dst_mask = bitcount32(((struct sockaddr_in *) - rt_mask(rt))->sin_addr.s_addr); - else if (rt->rt_flags & RTF_HOST) - /* Give up. We can't determine mask :( */ - fle->f.dst_mask = 32; + if (rt_mask(rt)) + fle->f.dst_mask = bitcount32(((struct sockaddr_in *) + rt_mask(rt))->sin_addr.s_addr); + else if (rt->rt_flags & RTF_HOST) + /* Give up. We can't determine mask :( */ + fle->f.dst_mask = 32; - RTFREE_LOCKED(rt); + RTFREE_LOCKED(rt); + } } /* Do route lookup on source address, to fill in src_mask. */ - bzero(&sin, sizeof(sin)); - sin.sin_len = sizeof(struct sockaddr_in); - sin.sin_family = AF_INET; - sin.sin_addr = fle->f.r.r_src; - rt = rtalloc1_fib((struct sockaddr *)&sin, 0, 0, r->fib); - if (rt != NULL) { - if (rt_mask(rt)) - fle->f.src_mask = bitcount32(((struct sockaddr_in *) - rt_mask(rt))->sin_addr.s_addr); - else if (rt->rt_flags & RTF_HOST) - /* Give up. We can't determine mask :( */ - fle->f.src_mask = 32; + if ((flags & NG_NETFLOW_CONF_NOSRCLOOKUP) == 0) { + bzero(&sin, sizeof(sin)); + sin.sin_len = sizeof(struct sockaddr_in); + sin.sin_family = AF_INET; + sin.sin_addr = fle->f.r.r_src; + rt = rtalloc1_fib((struct sockaddr *)&sin, 0, 0, r->fib); + if (rt != NULL) { + if (rt_mask(rt)) + fle->f.src_mask = bitcount32(((struct sockaddr_in *) + rt_mask(rt))->sin_addr.s_addr); + else if (rt->rt_flags & RTF_HOST) + /* Give up. We can't determine mask :( */ + fle->f.src_mask = 32; - RTFREE_LOCKED(rt); + RTFREE_LOCKED(rt); + } } /* Push new flow at the and of hash. */ @@ -410,10 +414,10 @@ hash_insert(priv_p priv, struct flow_hash_entry *hsh, struct flow_rec *r, bitcount32((x).__u6_addr.__u6_addr32[1]) + \ bitcount32((x).__u6_addr.__u6_addr32[2]) + \ bitcount32((x).__u6_addr.__u6_addr32[3]) -/* XXX: Do we need inline here ? */ -static __inline int +#define RT_MASK6(x) (ipv6_masklen(((struct sockaddr_in6 *)rt_mask(x))->sin6_addr)) +static int hash6_insert(priv_p priv, struct flow_hash_entry *hsh6, struct flow6_rec *r, - int plen, uint8_t tcp_flags) + int plen, uint8_t flags, uint8_t tcp_flags) { struct flow6_entry *fle6; struct sockaddr_in6 *src, *dst; @@ -445,49 +449,55 @@ hash6_insert(priv_p priv, struct flow_hash_entry *hsh6, struct flow6_rec *r, * First we do route table lookup on destination address. So we can * fill in out_ifx, dst_mask, nexthop, and dst_as in future releases. */ - bzero(&rin6, sizeof(struct route_in6)); - dst = (struct sockaddr_in6 *)&rin6.ro_dst; - dst->sin6_len = sizeof(struct sockaddr_in6); - dst->sin6_family = AF_INET6; - dst->sin6_addr = r->dst.r_dst6; + if ((flags & NG_NETFLOW_CONF_NODSTLOOKUP) == 0) + { + bzero(&rin6, sizeof(struct route_in6)); + dst = (struct sockaddr_in6 *)&rin6.ro_dst; + dst->sin6_len = sizeof(struct sockaddr_in6); + dst->sin6_family = AF_INET6; + dst->sin6_addr = r->dst.r_dst6; - rin6.ro_rt = rtalloc1_fib((struct sockaddr *)dst, 0, 0, r->fib); + rin6.ro_rt = rtalloc1_fib((struct sockaddr *)dst, 0, 0, r->fib); - if (rin6.ro_rt != NULL) { - rt = rin6.ro_rt; - fle6->f.fle_o_ifx = rt->rt_ifp->if_index; + if (rin6.ro_rt != NULL) { + rt = rin6.ro_rt; + fle6->f.fle_o_ifx = rt->rt_ifp->if_index; - if (rt->rt_flags & RTF_GATEWAY && - rt->rt_gateway->sa_family == AF_INET6) - fle6->f.n.next_hop6 = - ((struct sockaddr_in6 *)(rt->rt_gateway))->sin6_addr; + if (rt->rt_flags & RTF_GATEWAY && + rt->rt_gateway->sa_family == AF_INET6) + fle6->f.n.next_hop6 = + ((struct sockaddr_in6 *)(rt->rt_gateway))->sin6_addr; - if (rt_mask(rt)) - fle6->f.dst_mask = ipv6_masklen(((struct sockaddr_in6 *)rt_mask(rt))->sin6_addr); - else - fle6->f.dst_mask = 128; + if (rt_mask(rt)) + fle6->f.dst_mask = RT_MASK6(rt); + else + fle6->f.dst_mask = 128; - RTFREE_LOCKED(rt); + RTFREE_LOCKED(rt); + } } - /* Do route lookup on source address, to fill in src_mask. */ - bzero(&rin6, sizeof(struct route_in6)); - src = (struct sockaddr_in6 *)&rin6.ro_dst; - src->sin6_len = sizeof(struct sockaddr_in6); - src->sin6_family = AF_INET6; - src->sin6_addr = r->src.r_src6; + if ((flags & NG_NETFLOW_CONF_NODSTLOOKUP) == 0) + { + /* Do route lookup on source address, to fill in src_mask. */ + bzero(&rin6, sizeof(struct route_in6)); + src = (struct sockaddr_in6 *)&rin6.ro_dst; + src->sin6_len = sizeof(struct sockaddr_in6); + src->sin6_family = AF_INET6; + src->sin6_addr = r->src.r_src6; - rin6.ro_rt = rtalloc1_fib((struct sockaddr *)src, 0, 0, r->fib); + rin6.ro_rt = rtalloc1_fib((struct sockaddr *)src, 0, 0, r->fib); - if (rin6.ro_rt != NULL) { - rt = rin6.ro_rt; + if (rin6.ro_rt != NULL) { + rt = rin6.ro_rt; - if (rt_mask(rt)) - fle6->f.src_mask = ipv6_masklen(((struct sockaddr_in6 *)rt_mask(rt))->sin6_addr); - else - fle6->f.src_mask = 128; + if (rt_mask(rt)) + fle6->f.src_mask = RT_MASK6(rt); + else + fle6->f.src_mask = 128; - RTFREE_LOCKED(rt); + RTFREE_LOCKED(rt); + } } /* Push new flow at the and of hash. */ @@ -495,6 +505,8 @@ hash6_insert(priv_p priv, struct flow_hash_entry *hsh6, struct flow6_rec *r, return (0); } +#undef ipv6_masklen +#undef RT_MASK6 #endif @@ -651,7 +663,7 @@ ng_netflow_cache_flush(priv_p priv) /* Insert packet from into flow cache. */ int ng_netflow_flow_add(priv_p priv, fib_export_p fe, struct ip *ip, caddr_t upper_ptr, uint8_t upper_proto, - uint8_t is_frag, unsigned int src_if_index) + uint8_t flags, unsigned int src_if_index) { register struct flow_entry *fle, *fle1; struct flow_hash_entry *hsh; @@ -770,7 +782,7 @@ ng_netflow_flow_add(priv_p priv, fib_export_p fe, struct ip *ip, caddr_t upper_p } } } else /* A new flow entry. */ - error = hash_insert(priv, hsh, &r, plen, tcp_flags); + error = hash_insert(priv, hsh, &r, plen, flags, tcp_flags); mtx_unlock(&hsh->mtx); @@ -781,7 +793,7 @@ ng_netflow_flow_add(priv_p priv, fib_export_p fe, struct ip *ip, caddr_t upper_p /* Insert IPv6 packet from into flow cache. */ int ng_netflow_flow6_add(priv_p priv, fib_export_p fe, struct ip6_hdr *ip6, caddr_t upper_ptr, uint8_t upper_proto, - uint8_t is_frag, unsigned int src_if_index) + uint8_t flags, unsigned int src_if_index) { register struct flow_entry *fle = NULL, *fle1; register struct flow6_entry *fle6; @@ -811,7 +823,7 @@ ng_netflow_flow6_add(priv_p priv, fib_export_p fe, struct ip6_hdr *ip6, caddr_t #if 0 r.r_tos = ip->ip_tos; #endif - if (is_frag == 0) { + if ((flags & NG_NETFLOW_IS_FRAG) == 0) { switch(upper_proto) { case IPPROTO_TCP: { @@ -896,7 +908,7 @@ ng_netflow_flow6_add(priv_p priv, fib_export_p fe, struct ip6_hdr *ip6, caddr_t } } } else /* A new flow entry. */ - error = hash6_insert(priv, hsh, &r, plen, tcp_flags); + error = hash6_insert(priv, hsh, &r, plen, flags, tcp_flags); mtx_unlock(&hsh->mtx); diff --git a/sys/netgraph/netflow/ng_netflow.c b/sys/netgraph/netflow/ng_netflow.c index 6e6589e8e20c..1cb617913ecc 100644 --- a/sys/netgraph/netflow/ng_netflow.c +++ b/sys/netgraph/netflow/ng_netflow.c @@ -560,7 +560,7 @@ ng_netflow_rcvdata (hook_p hook, item_p item) struct ip6_hdr *ip6 = NULL; struct m_tag *mtag; int pullup_len = 0, off; - uint8_t acct = 0, bypass = 0, is_frag = 0, upper_proto = 0; + uint8_t acct = 0, bypass = 0, flags = 0, upper_proto = 0; int error = 0, l3_off = 0; unsigned int src_if_index; caddr_t upper_ptr = NULL; @@ -619,6 +619,9 @@ ng_netflow_rcvdata (hook_p hook, item_p item) } } + /* Import configuration flags related to flow creation */ + flags = iface->info.conf & NG_NETFLOW_FLOW_FLAGS; + NGI_GET_M(item, m); m_old = m; @@ -759,7 +762,7 @@ ng_netflow_rcvdata (hook_p hook, item_p item) } } else if (ip != NULL) { /* Nothing to save except upper layer proto, since this is packet fragment */ - is_frag = 1; + flags |= NG_NETFLOW_IS_FRAG; upper_proto = ip->ip_p; if ((ip->ip_v != IPVERSION) || ((ip->ip_hl << 2) < sizeof(struct ip))) @@ -821,7 +824,7 @@ ng_netflow_rcvdata (hook_p hook, item_p item) upper_proto = ip6f->ip6f_nxt; hdr_off = sizeof(struct ip6_frag); off += hdr_off; - is_frag = 1; + flags |= NG_NETFLOW_IS_FRAG; goto loopend; #if 0 @@ -886,10 +889,10 @@ ng_netflow_rcvdata (hook_p hook, item_p item) } if (ip != NULL) - error = ng_netflow_flow_add(priv, fe, ip, upper_ptr, upper_proto, is_frag, src_if_index); + error = ng_netflow_flow_add(priv, fe, ip, upper_ptr, upper_proto, flags, src_if_index); #ifdef INET6 else if (ip6 != NULL) - error = ng_netflow_flow6_add(priv, fe, ip6, upper_ptr, upper_proto, is_frag, src_if_index); + error = ng_netflow_flow6_add(priv, fe, ip6, upper_ptr, upper_proto, flags, src_if_index); #endif else goto bypass; diff --git a/sys/netgraph/netflow/ng_netflow.h b/sys/netgraph/netflow/ng_netflow.h index bab04c77976d..ee56c281c195 100644 --- a/sys/netgraph/netflow/ng_netflow.h +++ b/sys/netgraph/netflow/ng_netflow.h @@ -111,10 +111,16 @@ struct ng_netflow_settimeouts { uint32_t active_timeout; /* flow active timeout */ }; -#define NG_NETFLOW_CONF_INGRESS 1 -#define NG_NETFLOW_CONF_EGRESS 2 -#define NG_NETFLOW_CONF_ONCE 4 -#define NG_NETFLOW_CONF_THISONCE 8 +#define NG_NETFLOW_CONF_INGRESS 0x01 /* Account on ingress */ +#define NG_NETFLOW_CONF_EGRESS 0x02 /* Account on egress */ +#define NG_NETFLOW_CONF_ONCE 0x04 /* Add tag to account only once */ +#define NG_NETFLOW_CONF_THISONCE 0x08 /* Account once in current node */ +#define NG_NETFLOW_CONF_NOSRCLOOKUP 0x10 /* No radix lookup on src */ +#define NG_NETFLOW_CONF_NODSTLOOKUP 0x20 /* No radix lookup on dst */ + +#define NG_NETFLOW_IS_FRAG 0x01 +#define NG_NETFLOW_FLOW_FLAGS (NG_NETFLOW_CONF_NOSRCLOOKUP|\ + NG_NETFLOW_CONF_NODSTLOOKUP) /* This structure is passed to NGM_NETFLOW_SETCONFIG */ struct ng_netflow_setconfig { From 06de588446f796ada438475cfe6d64879c50a489 Mon Sep 17 00:00:00 2001 From: Alan Cox Date: Mon, 18 Jun 2012 16:21:59 +0000 Subject: [PATCH 306/340] Add PV chunk and list locking to pmap_page_exists_quick(), pmap_page_is_mapped(), and pmap_remove_pages(). These functions are no longer serialized by the pvh global lock. --- sys/amd64/amd64/pmap.c | 78 ++++++++++++++++++++++++++++++++++-------- 1 file changed, 63 insertions(+), 15 deletions(-) diff --git a/sys/amd64/amd64/pmap.c b/sys/amd64/amd64/pmap.c index fbd247b646a6..7d9be833f6bf 100644 --- a/sys/amd64/amd64/pmap.c +++ b/sys/amd64/amd64/pmap.c @@ -168,6 +168,14 @@ __FBSDID("$FreeBSD$"); #define pa_index(pa) ((pa) >> PDRSHIFT) #define pa_to_pvh(pa) (&pv_table[pa_index(pa)]) +#define NPV_LIST_LOCKS MAXCPU + +#define PHYS_TO_PV_LIST_LOCK(pa) \ + (&pv_list_locks[pa_index(pa) % NPV_LIST_LOCKS]) + +#define VM_PAGE_TO_PV_LIST_LOCK(m) \ + PHYS_TO_PV_LIST_LOCK(VM_PAGE_TO_PHYS(m)) + struct pmap kernel_pmap_store; vm_offset_t virtual_avail; /* VA of first avail page (after kernel bss) */ @@ -214,7 +222,8 @@ static struct { * Data for the pv entry allocation mechanism */ static TAILQ_HEAD(pch, pv_chunk) pv_chunks = TAILQ_HEAD_INITIALIZER(pv_chunks); -static long pv_entry_count; +static struct mtx pv_chunks_mutex; +static struct rwlock pv_list_locks[NPV_LIST_LOCKS]; static struct md_page *pv_table; /* @@ -762,6 +771,17 @@ pmap_init(void) pagesizes[1] = NBPDR; } + /* + * Initialize the pv chunk list mutex. + */ + mtx_init(&pv_chunks_mutex, "pv chunk list", NULL, MTX_DEF); + + /* + * Initialize the pool of pv list locks. + */ + for (i = 0; i < NPV_LIST_LOCKS; i++) + rw_init(&pv_list_locks[i], "pv list"); + /* * Calculate the size of the pv head table for superpages. */ @@ -2023,6 +2043,7 @@ pv_to_chunk(pv_entry_t pv) static const uint64_t pc_freemask[_NPCM] = { PC_FREE0, PC_FREE1, PC_FREE2 }; +static long pv_entry_count; SYSCTL_LONG(_vm_pmap, OID_AUTO, pv_entry_count, CTLFLAG_RD, &pv_entry_count, 0, "Current number of pv entries"); @@ -2215,10 +2236,12 @@ free_pv_chunk(struct pv_chunk *pc) { vm_page_t m; + mtx_lock(&pv_chunks_mutex); TAILQ_REMOVE(&pv_chunks, pc, pc_lru); - PV_STAT(pv_entry_spare -= _NPCPV); - PV_STAT(pc_chunk_count--); - PV_STAT(pc_chunk_frees++); + mtx_unlock(&pv_chunks_mutex); + PV_STAT(atomic_subtract_int(&pv_entry_spare, _NPCPV)); + PV_STAT(atomic_subtract_int(&pc_chunk_count, 1)); + PV_STAT(atomic_add_int(&pc_chunk_frees, 1)); /* entire chunk is free, return it */ m = PHYS_TO_VM_PAGE(DMAP_TO_PHYS((vm_offset_t)pc)); dump_drop_page(m->phys_addr); @@ -4000,6 +4023,7 @@ boolean_t pmap_page_exists_quick(pmap_t pmap, vm_page_t m) { struct md_page *pvh; + struct rwlock *lock; pv_entry_t pv; int loops = 0; boolean_t rv; @@ -4007,7 +4031,9 @@ pmap_page_exists_quick(pmap_t pmap, vm_page_t m) KASSERT((m->oflags & VPO_UNMANAGED) == 0, ("pmap_page_exists_quick: page %p is not managed", m)); rv = FALSE; - rw_wlock(&pvh_global_lock); + rw_rlock(&pvh_global_lock); + lock = VM_PAGE_TO_PV_LIST_LOCK(m); + rw_rlock(lock); TAILQ_FOREACH(pv, &m->md.pv_list, pv_list) { if (PV_PMAP(pv) == pmap) { rv = TRUE; @@ -4029,7 +4055,8 @@ pmap_page_exists_quick(pmap_t pmap, vm_page_t m) break; } } - rw_wunlock(&pvh_global_lock); + rw_runlock(lock); + rw_runlock(&pvh_global_lock); return (rv); } @@ -4088,15 +4115,19 @@ pmap_pvh_wired_mappings(struct md_page *pvh, int count) boolean_t pmap_page_is_mapped(vm_page_t m) { + struct rwlock *lock; boolean_t rv; if ((m->oflags & VPO_UNMANAGED) != 0) return (FALSE); - rw_wlock(&pvh_global_lock); + rw_rlock(&pvh_global_lock); + lock = VM_PAGE_TO_PV_LIST_LOCK(m); + rw_rlock(lock); rv = !TAILQ_EMPTY(&m->md.pv_list) || ((m->flags & PG_FICTITIOUS) == 0 && !TAILQ_EMPTY(&pa_to_pvh(VM_PAGE_TO_PHYS(m))->pv_list)); - rw_wunlock(&pvh_global_lock); + rw_runlock(lock); + rw_runlock(&pvh_global_lock); return (rv); } @@ -4118,19 +4149,21 @@ pmap_remove_pages(pmap_t pmap) pv_entry_t pv; struct md_page *pvh; struct pv_chunk *pc, *npc; - int field, idx; + struct rwlock *lock, *new_lock; int64_t bit; uint64_t inuse, bitmask; - int allfree; + int allfree, field, freed, idx; if (pmap != PCPU_GET(curpmap)) { printf("warning: pmap_remove_pages called with non-current pmap\n"); return; } - rw_wlock(&pvh_global_lock); + rw_rlock(&pvh_global_lock); PMAP_LOCK(pmap); + lock = NULL; TAILQ_FOREACH_SAFE(pc, &pmap->pm_pvchunk, pc_list, npc) { allfree = 1; + freed = 0; for (field = 0; field < _NPCM; field++) { inuse = ~pc->pc_map[field] & pc_freemask[field]; while (inuse != 0) { @@ -4186,10 +4219,15 @@ pmap_remove_pages(pmap_t pmap) vm_page_dirty(m); } + new_lock = VM_PAGE_TO_PV_LIST_LOCK(m); + if (new_lock != lock) { + if (lock != NULL) + rw_wunlock(lock); + lock = new_lock; + rw_wlock(lock); + } + /* Mark free */ - PV_STAT(pv_entry_frees++); - PV_STAT(pv_entry_spare++); - pv_entry_count--; pc->pc_map[field] |= bitmask; if ((tpte & PG_PS) != 0) { pmap_resident_count_dec(pmap, NBPDR / PAGE_SIZE); @@ -4223,15 +4261,25 @@ pmap_remove_pages(pmap_t pmap) } } pmap_unuse_pt(pmap, pv->pv_va, ptepde, &free); + freed++; } } + PV_STAT(atomic_add_long(&pv_entry_frees, freed)); + PV_STAT(atomic_add_int(&pv_entry_spare, freed)); + atomic_subtract_long(&pv_entry_count, freed); if (allfree) { + if (lock != NULL) { + rw_wunlock(lock); + lock = NULL; + } TAILQ_REMOVE(&pmap->pm_pvchunk, pc, pc_list); free_pv_chunk(pc); } } + if (lock != NULL) + rw_wunlock(lock); pmap_invalidate_all(pmap); - rw_wunlock(&pvh_global_lock); + rw_runlock(&pvh_global_lock); PMAP_UNLOCK(pmap); pmap_free_zero_pages(free); } From 285052f0aa3639a14c6fd915a4642e95497fb31f Mon Sep 17 00:00:00 2001 From: Michael Tuexen Date: Mon, 18 Jun 2012 17:09:39 +0000 Subject: [PATCH 307/340] Cleanup the UDP decapsulation code. MFC after: 3 days --- sys/netinet/sctputil.c | 62 ++++++++++++++---------------------------- 1 file changed, 20 insertions(+), 42 deletions(-) diff --git a/sys/netinet/sctputil.c b/sys/netinet/sctputil.c index 8fa6826860be..0cdd632741c2 100644 --- a/sys/netinet/sctputil.c +++ b/sys/netinet/sctputil.c @@ -6837,83 +6837,61 @@ sctp_recv_udp_tunneled_packet(struct mbuf *m, int off, struct inpcb *ignored) struct ip *iph; struct mbuf *sp, *last; struct udphdr *uhdr; - uint16_t port = 0; - int header_size = sizeof(struct udphdr) + sizeof(struct sctphdr); + uint16_t port; - /* - * Split out the mbuf chain. Leave the IP header in m, place the - * rest in the sp. - */ if ((m->m_flags & M_PKTHDR) == 0) { /* Can't handle one that is not a pkt hdr */ goto out; } - /* pull the src port */ + /* Pull the src port */ iph = mtod(m, struct ip *); uhdr = (struct udphdr *)((caddr_t)iph + off); - port = uhdr->uh_sport; + /* + * Split out the mbuf chain. Leave the IP header in m, place the + * rest in the sp. + */ sp = m_split(m, off, M_DONTWAIT); if (sp == NULL) { /* Gak, drop packet, we can't do a split */ goto out; } - if (sp->m_pkthdr.len < header_size) { - /* Gak, packet can't have an SCTP header in it - to small */ + if (sp->m_pkthdr.len < sizeof(struct udphdr) + sizeof(struct sctphdr)) { + /* Gak, packet can't have an SCTP header in it - too small */ m_freem(sp); goto out; } - /* ok now pull up the UDP header and SCTP header together */ - sp = m_pullup(sp, header_size); + /* Now pull up the UDP header and SCTP header together */ + sp = m_pullup(sp, sizeof(struct udphdr) + sizeof(struct sctphdr)); if (sp == NULL) { /* Gak pullup failed */ goto out; } - /* trim out the UDP header */ + /* Trim out the UDP header */ m_adj(sp, sizeof(struct udphdr)); /* Now reconstruct the mbuf chain */ - /* 1) find last one */ - last = m; - while (last->m_next != NULL) { - last = last->m_next; - } + for (last = m; last->m_next; last = last->m_next); last->m_next = sp; m->m_pkthdr.len += sp->m_pkthdr.len; - last = m; - while (last != NULL) { - last = last->m_next; - } - /* Now its ready for sctp_input or sctp6_input */ iph = mtod(m, struct ip *); switch (iph->ip_v) { #ifdef INET case IPVERSION: - { - uint16_t len; - - /* its IPv4 */ - len = SCTP_GET_IPV4_LENGTH(iph); - len -= sizeof(struct udphdr); - SCTP_GET_IPV4_LENGTH(iph) = len; - sctp_input_with_port(m, off, port); - break; - } + iph->ip_len -= sizeof(struct udphdr); + sctp_input_with_port(m, off, port); + break; #endif #ifdef INET6 case IPV6_VERSION >> 4: - { - /* its IPv6 - NOT supported */ - goto out; - break; + /* Not yet supported. */ + goto out; + break; - } #endif default: - { - m_freem(m); - break; - } + goto out; + break; } return; out: From 5ad9e57b3fe214c093e4006b40c665e23ce95075 Mon Sep 17 00:00:00 2001 From: Michael Tuexen Date: Mon, 18 Jun 2012 17:11:24 +0000 Subject: [PATCH 308/340] Add rate limitation for SCTP OOTB responses. MFC after: 3 days --- sys/netinet/icmp_var.h | 3 ++- sys/netinet/ip_icmp.c | 3 ++- sys/netinet/sctp_input.c | 9 +-------- 3 files changed, 5 insertions(+), 10 deletions(-) diff --git a/sys/netinet/icmp_var.h b/sys/netinet/icmp_var.h index 30da6a262421..d939cc2e6d85 100644 --- a/sys/netinet/icmp_var.h +++ b/sys/netinet/icmp_var.h @@ -102,7 +102,8 @@ extern int badport_bandlim(int); #define BANDLIM_RST_CLOSEDPORT 3 /* No connection, and no listeners */ #define BANDLIM_RST_OPENPORT 4 /* No connection, listener */ #define BANDLIM_ICMP6_UNREACH 5 -#define BANDLIM_MAX 5 +#define BANDLIM_SCTP_OOTB 6 +#define BANDLIM_MAX 6 #endif #endif diff --git a/sys/netinet/ip_icmp.c b/sys/netinet/ip_icmp.c index 55c28b2bfc22..3260197e7a2a 100644 --- a/sys/netinet/ip_icmp.c +++ b/sys/netinet/ip_icmp.c @@ -965,7 +965,8 @@ badport_bandlim(int which) { "icmp tstamp response" }, { "closed port RST response" }, { "open port RST response" }, - { "icmp6 unreach response" } + { "icmp6 unreach response" }, + { "sctp ootb response" } }; /* diff --git a/sys/netinet/sctp_input.c b/sys/netinet/sctp_input.c index f934c745e7a6..dec1619c803b 100644 --- a/sys/netinet/sctp_input.c +++ b/sys/netinet/sctp_input.c @@ -6060,15 +6060,8 @@ sctp_input_with_port(struct mbuf *i_pak, int off, uint16_t port) struct sctp_init_chunk *init_chk, chunk_buf; SCTP_STAT_INCR(sctps_noport); -#ifdef ICMP_BANDLIM - /* - * we use the bandwidth limiting to protect against sending - * too many ABORTS all at once. In this case these count the - * same as an ICMP message. - */ - if (badport_bandlim(0) < 0) + if (badport_bandlim(BANDLIM_SCTP_OOTB) < 0) goto bad; -#endif /* ICMP_BANDLIM */ SCTPDBG(SCTP_DEBUG_INPUT1, "Sending a ABORT from packet entry!\n"); if (ch->chunk_type == SCTP_INITIATION) { From 67e85209e97e3d356e1d0da4428a8b98e747f81a Mon Sep 17 00:00:00 2001 From: Marius Strobl Date: Mon, 18 Jun 2012 19:11:07 +0000 Subject: [PATCH 309/340] Avoid hard sentence break. MFC after: 3 days --- share/man/man4/ahci.4 | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/share/man/man4/ahci.4 b/share/man/man4/ahci.4 index 602fc3e5c656..0b1cd13c3050 100644 --- a/share/man/man4/ahci.4 +++ b/share/man/man4/ahci.4 @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd December 6, 2011 +.Dd June 18, 2012 .Dt AHCI 4 .Os .Sh NAME @@ -101,7 +101,8 @@ setting to nonzero value limits maximum SATA revision (speed). Values 1, 2 and 3 are respectively 1.5, 3 and 6Gbps. .It Va hw.ahci.force setting to nonzero value forces driver attach to some known AHCI-capable -chips even if they are configured for legacy IDE emulation. Default is 1. +chips even if they are configured for legacy IDE emulation. +Default is 1. .El .Sh DESCRIPTION This driver provides the From 78c3ff73c1d2b6aa63aaa1acd6dddaedcac5dfed Mon Sep 17 00:00:00 2001 From: Marius Strobl Date: Mon, 18 Jun 2012 19:14:06 +0000 Subject: [PATCH 310/340] Document the hw.ahci.force tunable here, too, as it's also used by ataahci(4) and atanvidia(4). MFC after: 3 days --- share/man/man4/ata.4 | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/share/man/man4/ata.4 b/share/man/man4/ata.4 index 4c2f1474d2fa..939c8b1ecc33 100644 --- a/share/man/man4/ata.4 +++ b/share/man/man4/ata.4 @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd August 17, 2011 +.Dd June 18, 2012 .Dt ATA 4 .Os .Sh NAME @@ -89,8 +89,12 @@ subsystem module. The following tunables are settable from the .Xr loader 8 : .Bl -ohang +.It Va hw.ahci.force +set to nonzero value for forcing drivers to attach to some known AHCI-capable +chips even if they are configured for legacy IDE emulation (the default is 1, +force the attach). .It Va hw.ata.ata_dma_check_80pin -set to 0 to disable the 80pin cable check (the default is 1, check the cable) +set to 0 to disable the 80pin cable check (the default is 1, check the cable). .It Va hint.atapci.X.msi set to 1 to allow Message Signalled Interrupts (MSI) to be used by the specified PCI ATA controller, if supported. From f3b44896bb6ec88342f8b63c04979ad4be631fe2 Mon Sep 17 00:00:00 2001 From: Marius Strobl Date: Mon, 18 Jun 2012 19:18:31 +0000 Subject: [PATCH 311/340] Refine r237102 a bit: - Anounce JTAG interfaces deliberately skipped. - Bring back empty lines too eagerly removed. MFC after: 3 days --- sys/dev/usb/serial/uftdi.c | 12 +++++++++--- sys/dev/usb/serial/uftdi_reg.h | 8 +++++++- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/sys/dev/usb/serial/uftdi.c b/sys/dev/usb/serial/uftdi.c index 7990ce64b163..5905aa14fdec 100644 --- a/sys/dev/usb/serial/uftdi.c +++ b/sys/dev/usb/serial/uftdi.c @@ -38,7 +38,7 @@ __FBSDID("$FreeBSD$"); */ /* - * FTDI FT8U100AX serial adapter driver + * FTDI FT2232x, FT8U100AX and FT8U232AM serial adapter driver */ #include @@ -278,9 +278,15 @@ uftdi_probe(device_t dev) */ id = usbd_lookup_id_by_info(uftdi_devs, sizeof(uftdi_devs), &uaa->info); - if (id == NULL || ((id->driver_info & UFTDI_FLAG_JTAG) != 0 && - uaa->info.bIfaceIndex == UFTDI_IFACE_INDEX_JTAG)) + if (id == NULL) return (ENXIO); + if ((id->driver_info & UFTDI_FLAG_JTAG) != 0 && + uaa->info.bIfaceIndex == UFTDI_IFACE_INDEX_JTAG) { + printf("%s: skipping JTAG interface at %u.%u\n", + device_get_name(dev), usbd_get_bus_index(uaa->device), + usbd_get_device_index(uaa->device)); + return (ENXIO); + } uaa->driver_info = id->driver_info; return (BUS_PROBE_SPECIFIC); } diff --git a/sys/dev/usb/serial/uftdi_reg.h b/sys/dev/usb/serial/uftdi_reg.h index 76234ee9a540..2398d455cca2 100644 --- a/sys/dev/usb/serial/uftdi_reg.h +++ b/sys/dev/usb/serial/uftdi_reg.h @@ -70,6 +70,7 @@ #define FTDI_SIO_RESET_SIO 0 #define FTDI_SIO_RESET_PURGE_RX 1 #define FTDI_SIO_RESET_PURGE_TX 2 + /* * BmRequestType: 0100 0000B * bRequest: FTDI_SIO_SET_BAUDRATE @@ -133,6 +134,7 @@ enum { #define FTDI_SIO_SET_DATA_STOP_BITS_15 (0x1 << 11) #define FTDI_SIO_SET_DATA_STOP_BITS_2 (0x2 << 11) #define FTDI_SIO_SET_BREAK (0x1 << 14) + /* * BmRequestType: 0100 0000B * bRequest: FTDI_SIO_MODEM_CTRL @@ -168,6 +170,7 @@ enum { #define FTDI_SIO_SET_RTS_MASK 0x2 #define FTDI_SIO_SET_RTS_HIGH (2 | ( FTDI_SIO_SET_RTS_MASK << 8)) #define FTDI_SIO_SET_RTS_LOW (0 | ( FTDI_SIO_SET_RTS_MASK << 8)) + /* * BmRequestType: 0100 0000b * bRequest: FTDI_SIO_SET_FLOW_CTRL @@ -197,6 +200,7 @@ enum { #define FTDI_SIO_RTS_CTS_HS 0x1 #define FTDI_SIO_DTR_DSR_HS 0x2 #define FTDI_SIO_XON_XOFF_HS 0x4 + /* * BmRequestType: 0100 0000b * bRequest: FTDI_SIO_SET_EVENT_CHAR @@ -219,6 +223,7 @@ enum { * data read so far - rather than wait 40ms or until 62 bytes are read * which is what normally happens. */ + /* * BmRequestType: 0100 0000b * bRequest: FTDI_SIO_SET_ERROR_CHAR @@ -237,6 +242,7 @@ enum { * Set the parity error replacement character for the specified communications * port. */ + /* * BmRequestType: 1100 0000b * bRequest: FTDI_SIO_GET_MODEM_STATUS @@ -267,8 +273,8 @@ enum { #define FTDI_SIO_DSR_MASK 0x20 #define FTDI_SIO_RI_MASK 0x40 #define FTDI_SIO_RLSD_MASK 0x80 + /* - * * DATA FORMAT * * IN Endpoint From 352a43b07f6b3609b17355d73dd7d71ca4b9b16e Mon Sep 17 00:00:00 2001 From: Marius Strobl Date: Mon, 18 Jun 2012 19:22:10 +0000 Subject: [PATCH 312/340] Unbreak after r236658 by comparing the right things. --- sys/arm/at91/at91sam9260.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/arm/at91/at91sam9260.c b/sys/arm/at91/at91sam9260.c index 12d24a2962dc..c246abc779cf 100644 --- a/sys/arm/at91/at91sam9260.c +++ b/sys/arm/at91/at91sam9260.c @@ -197,7 +197,7 @@ static void at91_identify(driver_t *drv, device_t parent) { - if (soc_data.type == AT91_CPU_SAM9260) { + if (soc_data.type == AT91_T_SAM9260) { at91_add_child(parent, 0, "at91sam9260", 0, 0, 0, -1, 0, 0); at91_cpu_add_builtin_children(parent); } @@ -266,7 +266,7 @@ at91_attach(device_t dev) &sc->sc_matrix_sh) != 0) panic("Enable to map matrix registers"); - /* activate NAND*/ + /* activate NAND */ i = bus_space_read_4(sc->sc_st, sc->sc_matrix_sh, AT91SAM9260_EBICSA); bus_space_write_4(sc->sc_st, sc->sc_matrix_sh, From da20f734c05fb469544152ce9b58bbec1116ca3e Mon Sep 17 00:00:00 2001 From: Marius Strobl Date: Mon, 18 Jun 2012 19:47:25 +0000 Subject: [PATCH 313/340] Try to bring this file closer to style(9). --- sys/arm/at91/at91_machdep.c | 68 +++++++++++++++++++++++-------------- 1 file changed, 42 insertions(+), 26 deletions(-) diff --git a/sys/arm/at91/at91_machdep.c b/sys/arm/at91/at91_machdep.c index b0508dec4d9b..898d028e2153 100644 --- a/sys/arm/at91/at91_machdep.c +++ b/sys/arm/at91/at91_machdep.c @@ -92,10 +92,12 @@ __FBSDID("$FreeBSD$"); #include #include -#define KERNEL_PT_SYS 0 /* Page table for mapping proc0 zero page */ +/* Page table for mapping proc0 zero page */ +#define KERNEL_PT_SYS 0 #define KERNEL_PT_KERN 1 #define KERNEL_PT_KERN_NUM 22 -#define KERNEL_PT_AFKERNEL KERNEL_PT_KERN + KERNEL_PT_KERN_NUM /* L2 table for mapping after kernel */ +/* L2 table for mapping after kernel */ +#define KERNEL_PT_AFKERNEL KERNEL_PT_KERN + KERNEL_PT_KERN_NUM #define KERNEL_PT_AFKERNEL_NUM 5 /* this should be evenly divisable by PAGE_SIZE / L2_TABLE_SIZE_REAL (or 4) */ @@ -150,7 +152,8 @@ const struct pmap_devmap at91_devmap[] = { VM_PROT_READ|VM_PROT_WRITE, PTE_NOCACHE, }, - /* We can't just map the OHCI registers VA == PA, because + /* + * We can't just map the OHCI registers VA == PA, because * AT91xx_xxx_BASE belongs to the userland address space. * We could just choose a different virtual address, but a better * solution would probably be to just use pmap_mapdev() to allocate @@ -180,8 +183,10 @@ const struct pmap_devmap at91_devmap[] = { VM_PROT_READ|VM_PROT_WRITE, PTE_NOCACHE, }, - /* The next two should be good for the 9260, 9261 and 9G20 since - * addresses mapping is the same. */ + /* + * The next two should be good for the 9260, 9261 and 9G20 since + * addresses mapping is the same. + */ { /* Internal Memory 1MB */ AT91SAM9G20_OHCI_BASE, @@ -210,16 +215,18 @@ extern int memsize[]; long at91_ramsize(void) { - uint32_t cr, mr; + uint32_t cr, mr, *SDRAMC; int banks, rows, cols, bw; #ifdef LINUX_BOOT_ABI - // If we found any ATAGs that were for memory, return the first bank. + /* + * If we found any ATAGs that were for memory, return the first bank. + */ if (membanks > 0) - return memsize[0]; + return (memsize[0]); #endif if (at91_is_rm92()) { - uint32_t *SDRAMC = (uint32_t *)(AT91_BASE + AT91RM92_SDRAMC_BASE); + SDRAMC = (uint32_t *)(AT91_BASE + AT91RM92_SDRAMC_BASE); cr = SDRAMC[AT91RM92_SDRAMC_CR / 4]; mr = SDRAMC[AT91RM92_SDRAMC_MR / 4]; banks = (cr & AT91RM92_SDRAMC_CR_NB_4) ? 2 : 1; @@ -227,9 +234,11 @@ at91_ramsize(void) cols = (cr & AT91RM92_SDRAMC_CR_NC_MASK) + 8; bw = (mr & AT91RM92_SDRAMC_MR_DBW_16) ? 1 : 2; } else { - /* This should be good for the 9260, 9261, 9G20, 9G35 and 9X25 as addresses - * and registers are the same */ - uint32_t *SDRAMC = (uint32_t *)(AT91_BASE + AT91SAM9G20_SDRAMC_BASE); + /* + * This should be good for the 9260, 9261, 9G20, 9G35 and 9X25 + * as addresses and registers are the same. + */ + SDRAMC = (uint32_t *)(AT91_BASE + AT91SAM9G20_SDRAMC_BASE); cr = SDRAMC[AT91SAM9G20_SDRAMC_CR / 4]; mr = SDRAMC[AT91SAM9G20_SDRAMC_MR / 4]; banks = (cr & AT91SAM9G20_SDRAMC_CR_NB_4) ? 2 : 1; @@ -241,7 +250,7 @@ at91_ramsize(void) return (1 << (cols + rows + banks + bw)); } -const char *soc_type_name[] = { +static const char *soc_type_name[] = { [AT91_T_CAP9] = "at91cap9", [AT91_T_RM9200] = "at91rm9200", [AT91_T_SAM9260] = "at91sam9260", @@ -255,8 +264,8 @@ const char *soc_type_name[] = { [AT91_T_SAM9X5] = "at91sam9x5", [AT91_T_NONE] = "UNKNOWN" }; - -const char *soc_subtype_name[] = { + +static const char *soc_subtype_name[] = { [AT91_ST_NONE] = "UNKNOWN", [AT91_ST_RM9200_BGA] = "at91rm9200_bga", [AT91_ST_RM9200_PQFP] = "at91rm9200_pqfp", @@ -288,13 +297,15 @@ at91_try_id(uint32_t dbgu_base) { uint32_t socid; - soc_data.cidr = *(volatile uint32_t *)(AT91_BASE + dbgu_base + DBGU_C1R); + soc_data.cidr = *(volatile uint32_t *)(AT91_BASE + dbgu_base + + DBGU_C1R); socid = soc_data.cidr & ~AT91_CPU_VERSION_MASK; soc_data.type = AT91_T_NONE; soc_data.subtype = AT91_ST_NONE; soc_data.family = (soc_data.cidr & AT91_CPU_FAMILY_MASK) >> 20; - soc_data.exid = *(volatile uint32_t *)(AT91_BASE + dbgu_base + DBGU_C2R); + soc_data.exid = *(volatile uint32_t *)(AT91_BASE + dbgu_base + + DBGU_C2R); switch (socid) { case AT91_CPU_CAP9: @@ -336,7 +347,7 @@ at91_try_id(uint32_t dbgu_base) soc_data.type = AT91_T_SAM9X5; break; default: - return 0; + return (0); } switch (soc_data.type) { @@ -378,15 +389,18 @@ at91_try_id(uint32_t dbgu_base) default: break; } - snprintf(soc_data.name, sizeof(soc_data.name), "%s%s%s", soc_type_name[soc_data.type], + snprintf(soc_data.name, sizeof(soc_data.name), "%s%s%s", + soc_type_name[soc_data.type], soc_data.subtype == AT91_ST_NONE ? "" : " subtype ", - soc_data.subtype == AT91_ST_NONE ? "" : soc_subtype_name[soc_data.subtype]); - return 1; + soc_data.subtype == AT91_ST_NONE ? "" : + soc_subtype_name[soc_data.subtype]); + return (1); } static void at91_soc_id(void) { + if (!at91_try_id(AT91_DBGU0)) at91_try_id(AT91_DBGU1); } @@ -413,13 +427,13 @@ initarm(struct arm_boot_params *abp) freemempos = (lastaddr + PAGE_MASK) & ~PAGE_MASK; /* Define a macro to simplify memory allocation */ -#define valloc_pages(var, np) \ - alloc_pages((var).pv_va, (np)); \ +#define valloc_pages(var, np) \ + alloc_pages((var).pv_va, (np)); \ (var).pv_pa = (var).pv_va + (KERNPHYSADDR - KERNVIRTADDR); -#define alloc_pages(var, np) \ - (var) = freemempos; \ - freemempos += (np * PAGE_SIZE); \ +#define alloc_pages(var, np) \ + (var) = freemempos; \ + freemempos += (np * PAGE_SIZE); \ memset((char *)(var), 0, ((np) * PAGE_SIZE)); while (((freemempos - L1_TABLE_SIZE) & (L1_TABLE_SIZE - 1)) != 0) @@ -608,6 +622,7 @@ cpu_initclocks(void) void DELAY(int n) { + if (soc_data.delay) soc_data.delay(n); } @@ -615,6 +630,7 @@ DELAY(int n) void cpu_reset(void) { + if (soc_data.reset) soc_data.reset(); while (1) From e1020aef06f058503473eedcc01a5109c84c6648 Mon Sep 17 00:00:00 2001 From: Marius Strobl Date: Mon, 18 Jun 2012 20:14:42 +0000 Subject: [PATCH 314/340] Revert the part of r236495 that introduced checking of SPI_SR_TXEMPTY for TX transfer completion as for reasons unknown this occasionally causes SPI_SR_RXBUFF and SPI_SR_ENDRX to not rise. In any case, once the RX part of the transfer is done it's obvious that the preceding TX part had finished and checking of SPI_SR_TXEMPTY was introduced to rule out a possible cause for the data corruption mentioned in r236495 but which didn't turn out to be the problem anyway. MFC after: 3 days --- sys/arm/at91/at91_spi.c | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/sys/arm/at91/at91_spi.c b/sys/arm/at91/at91_spi.c index ed513f8b6cd8..a81e0be64fce 100644 --- a/sys/arm/at91/at91_spi.c +++ b/sys/arm/at91/at91_spi.c @@ -44,7 +44,6 @@ __FBSDID("$FreeBSD$"); #include #include -#include #include @@ -59,7 +58,6 @@ struct at91_spi_softc bus_dma_tag_t dmatag; /* bus dma tag for transfers */ bus_dmamap_t map[4]; /* Maps for the transaction */ struct sx xfer_mtx; /* Enforce one transfer at a time */ - uint32_t xfer_mask; /* Bits to wait on for completion */ uint32_t xfer_done; /* interrupt<->mainthread signaling */ }; @@ -124,7 +122,6 @@ at91_spi_attach(device_t dev) * Set up the hardware. */ - sc->xfer_mask = SPI_SR_RXBUFF | (at91_is_rm92() ? 0 : SPI_SR_TXEMPTY); WR4(sc, SPI_CR, SPI_CR_SWRST); /* "Software Reset must be Written Twice" erratum */ WR4(sc, SPI_CR, SPI_CR_SWRST); @@ -272,7 +269,6 @@ at91_spi_transfer(device_t dev, device_t child, struct spi_command *cmd) struct at91_spi_softc *sc; bus_addr_t addr; int err, i, j, mode[4]; - uint32_t mask; KASSERT(cmd->tx_cmd_sz == cmd->rx_cmd_sz, ("%s: TX/RX command sizes should be equal", __func__)); @@ -356,12 +352,11 @@ at91_spi_transfer(device_t dev, device_t child, struct spi_command *cmd) * Start the transfer, wait for it to complete. */ sc->xfer_done = 0; - mask = sc->xfer_mask; - WR4(sc, SPI_IER, mask); + WR4(sc, SPI_IER, SPI_SR_RXBUFF); WR4(sc, PDC_PTCR, PDC_PTCR_TXTEN | PDC_PTCR_RXTEN); do err = tsleep(&sc->xfer_done, PCATCH | PZERO, "at91_spi", hz); - while (sc->xfer_done != mask && err != EINTR); + while (sc->xfer_done == 0 && err != EINTR); /* * Stop the transfer and clean things up. @@ -383,20 +378,19 @@ static void at91_spi_intr(void *arg) { struct at91_spi_softc *sc; - uint32_t mask, sr; + uint32_t sr; sc = (struct at91_spi_softc*)arg; - mask = sc->xfer_mask; sr = RD4(sc, SPI_SR) & RD4(sc, SPI_IMR); - if ((sr & mask) != 0) { - sc->xfer_done |= sr & mask; - WR4(sc, SPI_IDR, mask); + if ((sr & SPI_SR_RXBUFF) != 0) { + sc->xfer_done = 1; + WR4(sc, SPI_IDR, SPI_SR_RXBUFF); wakeup(&sc->xfer_done); } - if ((sr & ~mask) != 0) { + if ((sr & ~SPI_SR_RXBUFF) != 0) { device_printf(sc->dev, "Unexpected ISR %#x\n", sr); - WR4(sc, SPI_IDR, sr & ~mask); + WR4(sc, SPI_IDR, sr & ~SPI_SR_RXBUFF); } } From d80b202dd2c9e7c5f17e68f61f54b2df60c09791 Mon Sep 17 00:00:00 2001 From: Marius Strobl Date: Mon, 18 Jun 2012 20:19:07 +0000 Subject: [PATCH 315/340] Revert r236529, re-enabling verification of the flashed content as the underlying problem was dealt with in r237239 (in fact, disabling verification also actually only made the problem less likely to occur). --- sys/dev/flash/at45d.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/sys/dev/flash/at45d.c b/sys/dev/flash/at45d.c index 28b829a052b6..7d1172fba5a2 100644 --- a/sys/dev/flash/at45d.c +++ b/sys/dev/flash/at45d.c @@ -390,7 +390,6 @@ at45d_task(void *arg) berr = EIO; goto out; } -#ifdef notyet /* May cause physwr to hang for reasons unknown. */ if (bp->bio_cmd == BIO_WRITE) { addr = page << sc->pageoffset; txBuf[0] = BUFFER_COMPARE; @@ -409,7 +408,6 @@ at45d_task(void *arg) goto out; } } -#endif page++; buf += len; offset = 0; From c59f3d4d22f6de04c9dafb2629bec73ae7a231a6 Mon Sep 17 00:00:00 2001 From: Konstantin Belousov Date: Mon, 18 Jun 2012 21:08:48 +0000 Subject: [PATCH 316/340] Adjust the fix in r236953, by not generating the signal manually, but performing the return to usermode using full return path. This consolidates the handling of exceptional situations in less number of places, and is less code as well. Reviewed by: jhb MFC after: 1 week --- sys/amd64/amd64/trap.c | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/sys/amd64/amd64/trap.c b/sys/amd64/amd64/trap.c index 4216fd3f5d34..75e15e0ef458 100644 --- a/sys/amd64/amd64/trap.c +++ b/sys/amd64/amd64/trap.c @@ -977,16 +977,10 @@ amd64_syscall(struct thread *td, int traced) * If the user-supplied value of %rip is not a canonical * address, then some CPUs will trigger a ring 0 #GP during * the sysret instruction. However, the fault handler would - * execute with the user's %gs and %rsp in ring 0 which would - * not be safe. Instead, preemptively kill the thread with a - * SIGBUS. + * execute in ring 0 with the user's %gs and %rsp which would + * not be safe. Instead, use the full return path which + * catches the problem safely. */ - if (td->td_frame->tf_rip >= VM_MAXUSER_ADDRESS) { - ksiginfo_init_trap(&ksi); - ksi.ksi_signo = SIGBUS; - ksi.ksi_code = BUS_OBJERR; - ksi.ksi_trapno = T_PROTFLT; - ksi.ksi_addr = (void *)td->td_frame->tf_rip; - trapsignal(td, &ksi); - } + if (td->td_frame->tf_rip >= VM_MAXUSER_ADDRESS) + set_pcb_flags(td->td_pcb, PCB_FULL_IRET); } From 53e1b8fba550234e63dc837eba8144e6e52b0438 Mon Sep 17 00:00:00 2001 From: Rick Macklem Date: Mon, 18 Jun 2012 22:17:28 +0000 Subject: [PATCH 317/340] Fix the NFSv4 client for the case where mmap'd files are written, but not msync'd by a process. A VOP_PUTPAGES() called when VOP_RECLAIM() happens will usually fail, since the NFSv4 Open has already been closed by VOP_INACTIVE(). Add a vm_object_page_clean() call to the NFSv4 client's VOP_INACTIVE(), so that the write happens before the NFSv4 Open is closed. kib@ suggested using vgone() instead and I will explore this, but this patch fixes things in the meantime. For some reason, the VOP_PUTPAGES() is still attaempted in VOP_RECLAIM(), but having this fail doesn't cause any problems except a "stateid0 in write" being logged. Reviewed by: kib MFC after: 1 week --- sys/fs/nfsclient/nfs_clnode.c | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/sys/fs/nfsclient/nfs_clnode.c b/sys/fs/nfsclient/nfs_clnode.c index 087858dbd0e0..d7219318bf25 100644 --- a/sys/fs/nfsclient/nfs_clnode.c +++ b/sys/fs/nfsclient/nfs_clnode.c @@ -210,18 +210,28 @@ ncl_inactive(struct vop_inactive_args *ap) struct nfsnode *np; struct sillyrename *sp; struct vnode *vp = ap->a_vp; + boolean_t retv; np = VTONFS(vp); if (NFS_ISV4(vp) && vp->v_type == VREG) { /* * Since mmap()'d files do I/O after VOP_CLOSE(), the NFSv4 - * Close operations are delayed until now. Any dirty buffers - * must be flushed before the close, so that the stateid is - * available for the writes. + * Close operations are delayed until now. Any dirty + * buffers/pages must be flushed before the close, so that the + * stateid is available for the writes. */ - (void) ncl_flush(vp, MNT_WAIT, NULL, ap->a_td, 1, 0); - (void) nfsrpc_close(vp, 1, ap->a_td); + if (vp->v_object != NULL) { + VM_OBJECT_LOCK(vp->v_object); + retv = vm_object_page_clean(vp->v_object, 0, 0, + OBJPC_SYNC); + VM_OBJECT_UNLOCK(vp->v_object); + } else + retv = TRUE; + if (retv == TRUE) { + (void)ncl_flush(vp, MNT_WAIT, NULL, ap->a_td, 1, 0); + (void)nfsrpc_close(vp, 1, ap->a_td); + } } mtx_lock(&np->n_mtx); From 5486d2ecee79cd521381e30d78a9f87c1b149b92 Mon Sep 17 00:00:00 2001 From: Sean Bruno Date: Mon, 18 Jun 2012 23:18:49 +0000 Subject: [PATCH 318/340] Document support for Intel Enhanced Speedstep Tech interface of cpufreq(4) via a new man page est(4) Document the two exposed tuneables of est(4). I'd appreciate more reviews of content if possible. I gleaned the information contained herein from sys/x86/cpufreq/est.c and the Intel reference documentation Reviewed by: wblock hrs gjb MFC after: 2 weeks --- share/man/man4/Makefile | 1 + share/man/man4/est.4 | 100 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 101 insertions(+) create mode 100644 share/man/man4/est.4 diff --git a/share/man/man4/Makefile b/share/man/man4/Makefile index 89ef3109473d..1c5e33d6762a 100644 --- a/share/man/man4/Makefile +++ b/share/man/man4/Makefile @@ -116,6 +116,7 @@ MAN= aac.4 \ enc.4 \ epair.4 \ esp.4 \ + est.4 \ et.4 \ eventtimers.4 \ exca.4 \ diff --git a/share/man/man4/est.4 b/share/man/man4/est.4 new file mode 100644 index 000000000000..aed590422ef1 --- /dev/null +++ b/share/man/man4/est.4 @@ -0,0 +1,100 @@ +.\" +.\" Copyright (c) 2012 Sean Bruno +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" $FreeBSD$ +.\" +.Dd June 12, 2012 +.Dt EST 4 +.Os +.Sh NAME +.Nm est +.Nd Enhanced Speedstep Technology +.Sh SYNOPSIS +To compile this capability into your kernel +place the following line in your kernel +configuration file: +.Bd -ragged -offset indent +.Cd "device cpufreq" +.Ed +.Sh DESCRIPTION +The +.Nm +interface provides support for the Intel Enhanced Speedstep Technology. +.Pp +Note that +.Nm +capabilities are automatically loaded by the +.Xr cpufreq 4 +driver. +.Sh LOADER TUNABLES +The +.Nm +interface is intended to allow +.Xr cpufreq 4 +to access and implement Intel Enhanced SpeedStep Technology via +.Xr acpi 4 +and the acpi_perf interface accessors. +If the default settings are not optimal, the following sysctls can be +used to modify or monitor +.Nm +behavior. +.Bl -tag -width indent +.It hw.est.msr_info +Attempt to infer information from direct probing of the msr. +Should only be used in diagnostic cases +.Pq default 0 +.It hw.est.strict +Do not allow different cpus to be set to different frequencies. +It appears that this will only work on i386 systems +.Pq default 0 +.El +.Sh DIAGNOSTICS +.Bl -diag +.It "est%d: on cpu%d" +.Pp +Indicates normal startup of this interface. +.It "est: CPU supports Enhanced Speedstep, but is not recognized." +.It "est: cpu_vendor GenuineIntel, msr 471c471c0600471c" +.It "device_attach: est%d attach returned 6" +.Pp +Indicates all attempts to attach to this interface have failed. +This usually indicates an improper BIOS setting restricting O/S +control of the CPU speeds. +Consult your BIOS documentation for more details. +.El +.Sh COMPATIBILITY +.Nm +is only found on supported Intel CPUs. +.Sh SEE ALSO +.Xr cpufreq 4 +.Sh SUPPORT +For general information and support, +go to the Intel 64 and IA-32 Architectures Software Developer +Manuals site. +.Pa http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html +.Sh AUTHORS +.Pp +This manual page was written by +.An Sean Bruno Aq sbruno@FreeBSD.org . From 281858b4791ec4d091589ae4098dc8578d237c80 Mon Sep 17 00:00:00 2001 From: Joel Dahl Date: Tue, 19 Jun 2012 05:53:47 +0000 Subject: [PATCH 319/340] Minor mdoc fixes. --- share/man/man4/est.4 | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/share/man/man4/est.4 b/share/man/man4/est.4 index aed590422ef1..ef91549ca3dd 100644 --- a/share/man/man4/est.4 +++ b/share/man/man4/est.4 @@ -89,12 +89,10 @@ Consult your BIOS documentation for more details. is only found on supported Intel CPUs. .Sh SEE ALSO .Xr cpufreq 4 -.Sh SUPPORT -For general information and support, -go to the Intel 64 and IA-32 Architectures Software Developer -Manuals site. -.Pa http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html +.Rs +.%T "Intel 64 and IA-32 Architectures Software Developer Manuals" +.%U "http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html" +.Re .Sh AUTHORS -.Pp This manual page was written by .An Sean Bruno Aq sbruno@FreeBSD.org . From b9f88e6a065e80c7260a6477d3e64f3bdfc9fa3b Mon Sep 17 00:00:00 2001 From: Joel Dahl Date: Tue, 19 Jun 2012 05:55:14 +0000 Subject: [PATCH 320/340] Remove end of line whitespace. --- share/man/man4/est.4 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/share/man/man4/est.4 b/share/man/man4/est.4 index ef91549ca3dd..618e5a5966eb 100644 --- a/share/man/man4/est.4 +++ b/share/man/man4/est.4 @@ -63,11 +63,11 @@ behavior. .Bl -tag -width indent .It hw.est.msr_info Attempt to infer information from direct probing of the msr. -Should only be used in diagnostic cases +Should only be used in diagnostic cases .Pq default 0 .It hw.est.strict Do not allow different cpus to be set to different frequencies. -It appears that this will only work on i386 systems +It appears that this will only work on i386 systems .Pq default 0 .El .Sh DIAGNOSTICS From 3f0d78d5105653c999a962d57ab05a26c6af2397 Mon Sep 17 00:00:00 2001 From: Eitan Adler Date: Tue, 19 Jun 2012 06:09:47 +0000 Subject: [PATCH 321/340] Remove variables which are initialized but never used thereafter reported by gcc46 warning Approved by: cperciva MFC After: 3 days --- usr.sbin/bsdinstall/partedit/diskeditor.c | 3 +-- usr.sbin/bsdinstall/partedit/part_wizard.c | 6 ------ 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/usr.sbin/bsdinstall/partedit/diskeditor.c b/usr.sbin/bsdinstall/partedit/diskeditor.c index 94c374b81125..7933caabf038 100644 --- a/usr.sbin/bsdinstall/partedit/diskeditor.c +++ b/usr.sbin/bsdinstall/partedit/diskeditor.c @@ -74,7 +74,7 @@ diskeditor_show(const char *title, const char *cprompt, int x, y; int i; int height, width, min_width; - int partlist_height, partlist_width, min_partlist_width; + int partlist_height, partlist_width; int cur_scroll = 0; int key, fkey; int cur_button = 0, cur_part = 0; @@ -102,7 +102,6 @@ diskeditor_show(const char *title, const char *cprompt, min_width = 50; height = width = 0; partlist_height = 10; - min_partlist_width = 0; dlg_tab_correct_str(prompt); dlg_button_layout(buttons, &min_width); dlg_auto_size(title, prompt, &height, &width, 2, min_width); diff --git a/usr.sbin/bsdinstall/partedit/part_wizard.c b/usr.sbin/bsdinstall/partedit/part_wizard.c index efd4a07c2562..e840ac95bce5 100644 --- a/usr.sbin/bsdinstall/partedit/part_wizard.c +++ b/usr.sbin/bsdinstall/partedit/part_wizard.c @@ -294,8 +294,6 @@ wizard_makeparts(struct gmesh *mesh, const char *disk) struct gmesh submesh; struct gclass *classp; struct ggeom *gp; - struct gconfig *gc; - const char *scheme; struct gprovider *pp; intmax_t swapsize, available; char swapsizestr[10], rootsizestr[10]; @@ -309,10 +307,6 @@ wizard_makeparts(struct gmesh *mesh, const char *disk) if (strcmp(gp->lg_name, disk) == 0) break; - LIST_FOREACH(gc, &gp->lg_config, lg_config) - if (strcmp(gc->lg_name, "scheme") == 0) - scheme = gc->lg_val; - pp = provider_for_name(mesh, disk); available = gpart_max_free(gp, NULL)*pp->lg_sectorsize; From 1d76342e83de58cc9b7a1617a73623ae95a82318 Mon Sep 17 00:00:00 2001 From: Eitan Adler Date: Tue, 19 Jun 2012 06:09:58 +0000 Subject: [PATCH 322/340] Remove variables which are initialized but never used thereafter reported by gcc46 warning Approved by: cperciva MFC After: 3 days --- usr.sbin/crunch/crunchide/exec_elf32.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/usr.sbin/crunch/crunchide/exec_elf32.c b/usr.sbin/crunch/crunchide/exec_elf32.c index 2b2e27f82a2a..d01fe7e17852 100644 --- a/usr.sbin/crunch/crunchide/exec_elf32.c +++ b/usr.sbin/crunch/crunchide/exec_elf32.c @@ -238,7 +238,7 @@ ELFNAMEEND(hide)(int fd, const char *fn) Elf_Shdr *shdrp = NULL, *symtabshdr, *strtabshdr; Elf_Sym *symtabp = NULL; char *strtabp = NULL; - Elf_Size nsyms, nlocalsyms, ewi; + Elf_Size nsyms, ewi; ssize_t shdrsize; int rv, i, weird; size_t nstrtab_size, nstrtab_nextoff, fn_size; @@ -327,7 +327,6 @@ ELFNAMEEND(hide)(int fd, const char *fn) /* Prepare data structures for symbol movement. */ nsyms = xewtoh(symtabshdr->sh_size) / xewtoh(symtabshdr->sh_entsize); - nlocalsyms = xe32toh(symtabshdr->sh_info); /* move symbols, making them local */ for (ewi = 0; ewi < nsyms; ewi++) { From c0fc04b39ed4a0752187b458849c927e42d94bc3 Mon Sep 17 00:00:00 2001 From: Eitan Adler Date: Tue, 19 Jun 2012 06:10:24 +0000 Subject: [PATCH 323/340] Remove variables which are initialized but never used thereafter reported by gcc46 warning Approved by: cperciva MFC After: 3 days --- usr.sbin/ctladm/ctladm.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/usr.sbin/ctladm/ctladm.c b/usr.sbin/ctladm/ctladm.c index f53e9f12caa6..4cdbd42ce4f5 100644 --- a/usr.sbin/ctladm/ctladm.c +++ b/usr.sbin/ctladm/ctladm.c @@ -772,7 +772,6 @@ static int cctl_delay(int fd, int target, int lun, int argc, char **argv, char *combinedopt) { - int datamove_delay; struct ctl_io_delay_info delay_info; char *delayloc = NULL; char *delaytype = NULL; @@ -781,7 +780,6 @@ cctl_delay(int fd, int target, int lun, int argc, char **argv, int c; retval = 0; - datamove_delay = 0; memset(&delay_info, 0, sizeof(delay_info)); @@ -3803,7 +3801,7 @@ CTL_DEFAULT_DEV); int main(int argc, char **argv) { - int option_index, c; + int c; ctladm_cmdfunction command; ctladm_cmdargs cmdargs; ctladm_optret optreturn; @@ -3814,10 +3812,9 @@ main(int argc, char **argv) int target, lun; int optstart = 2; int retval, fd; - int retries, timeout; + int retries; int initid; - option_index = 0; retval = 0; cmdargs = CTLADM_ARG_NONE; command = CTLADM_CMD_HELP; @@ -3826,7 +3823,6 @@ main(int argc, char **argv) retries = 0; target = 0; lun = 0; - timeout = 0; initid = 7; if (argc < 2) { From 4ab8581b32b4cd04af6f1f029c6d5a414a0a9492 Mon Sep 17 00:00:00 2001 From: Eitan Adler Date: Tue, 19 Jun 2012 06:10:27 +0000 Subject: [PATCH 324/340] Remove variables which are initialized but never used thereafter reported by gcc46 warning Approved by: cperciva MFC After: 3 days --- usr.sbin/ifmcstat/ifmcstat.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/usr.sbin/ifmcstat/ifmcstat.c b/usr.sbin/ifmcstat/ifmcstat.c index d92c05657482..838c83d50bc5 100644 --- a/usr.sbin/ifmcstat/ifmcstat.c +++ b/usr.sbin/ifmcstat/ifmcstat.c @@ -387,7 +387,6 @@ ll_addrlist(struct ifaddr *ifap) struct sockaddr sa; struct sockaddr_dl sdl; struct ifaddr *ifap0; - int error; if (af && af != AF_LINK) return; @@ -404,7 +403,7 @@ ll_addrlist(struct ifaddr *ifap) if (sdl.sdl_alen == 0) goto nextifap; addrbuf[0] = '\0'; - error = getnameinfo((struct sockaddr *)&sdl, sdl.sdl_len, + getnameinfo((struct sockaddr *)&sdl, sdl.sdl_len, addrbuf, sizeof(addrbuf), NULL, 0, NI_NUMERICHOST); printf("\tlink %s\n", addrbuf); nextifap: @@ -427,7 +426,7 @@ ll_addrlist(struct ifaddr *ifap) goto nextmulti; KREAD(ifm.ifma_addr, &sdl, struct sockaddr_dl); addrbuf[0] = '\0'; - error = getnameinfo((struct sockaddr *)&sdl, + getnameinfo((struct sockaddr *)&sdl, sdl.sdl_len, addrbuf, sizeof(addrbuf), NULL, 0, NI_NUMERICHOST); printf("\t\tgroup %s refcnt %d\n", From c84c09f4458f1bda833152f52305f07f0252fea4 Mon Sep 17 00:00:00 2001 From: Eitan Adler Date: Tue, 19 Jun 2012 06:10:31 +0000 Subject: [PATCH 325/340] Remove variables which are initialized but never used thereafter reported by gcc46 warning Approved by: cperciva MFC After: 3 days --- usr.sbin/kbdmap/kbdmap.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/usr.sbin/kbdmap/kbdmap.c b/usr.sbin/kbdmap/kbdmap.c index c6348a66ea3c..7d5a0d12628e 100644 --- a/usr.sbin/kbdmap/kbdmap.c +++ b/usr.sbin/kbdmap/kbdmap.c @@ -327,7 +327,6 @@ show_dialog(struct keymap **km_sorted, int num_keymaps) FILE *fp; char *cmd, *dialog; char tmp_name[] = "/tmp/_kbd_lang.XXXX"; - const char *ext; int fd, i, size; fd = mkstemp(tmp_name); @@ -339,8 +338,6 @@ show_dialog(struct keymap **km_sorted, int num_keymaps) asprintf(&dialog, "/usr/bin/dialog --clear --title \"Keyboard Menu\" " "--menu \"%s\" 0 0 0", menu); - ext = extract_name(dir); - /* start right font, assume that current font is equal * to default font in /etc/rc.conf * From 7e22d9ed960efbdae121c4b529db934c48e95124 Mon Sep 17 00:00:00 2001 From: Eitan Adler Date: Tue, 19 Jun 2012 06:10:34 +0000 Subject: [PATCH 326/340] Remove variables which are initialized but never used thereafter reported by gcc46 warning Approved by: cperciva MFC After: 3 days --- usr.sbin/kldxref/ef.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/usr.sbin/kldxref/ef.c b/usr.sbin/kldxref/ef.c index 276771d1985b..b9686d34cdab 100644 --- a/usr.sbin/kldxref/ef.c +++ b/usr.sbin/kldxref/ef.c @@ -532,7 +532,7 @@ ef_open(const char *filename, struct elf_file *efile, int verbose) int error; int phlen, res; int nsegs; - Elf_Phdr *phdr, *phdyn, *phphdr, *phlimit; + Elf_Phdr *phdr, *phdyn, *phlimit; if (filename == NULL) return EFTYPE; @@ -576,7 +576,6 @@ ef_open(const char *filename, struct elf_file *efile, int verbose) phlimit = phdr + hdr->e_phnum; nsegs = 0; phdyn = NULL; - phphdr = NULL; while (phdr < phlimit) { if (verbose > 1) ef_print_phdr(phdr); @@ -590,7 +589,6 @@ ef_open(const char *filename, struct elf_file *efile, int verbose) ef->ef_segs[nsegs++] = phdr; break; case PT_PHDR: - phphdr = phdr; break; case PT_DYNAMIC: phdyn = phdr; From bf4ec4dfabe63bb4fe4720b958d15fdf2df982ac Mon Sep 17 00:00:00 2001 From: Eitan Adler Date: Tue, 19 Jun 2012 06:18:37 +0000 Subject: [PATCH 327/340] Allow users with RO privilege to the device to read the RO attributes. PR: bin/167302 Submitted by: markham breitbach Discussed with: pjd (briefly) Approved by: cperciva MFC after: 1 week --- usr.sbin/mfiutil/mfi_cmd.c | 4 ++-- usr.sbin/mfiutil/mfi_config.c | 15 ++++++++------- usr.sbin/mfiutil/mfi_drive.c | 15 ++++++++------- usr.sbin/mfiutil/mfi_evt.c | 5 +++-- usr.sbin/mfiutil/mfi_flash.c | 2 +- usr.sbin/mfiutil/mfi_patrol.c | 9 +++++---- usr.sbin/mfiutil/mfi_show.c | 15 ++++++++------- usr.sbin/mfiutil/mfi_volume.c | 7 ++++--- usr.sbin/mfiutil/mfiutil.c | 2 +- usr.sbin/mfiutil/mfiutil.h | 2 +- 10 files changed, 41 insertions(+), 35 deletions(-) diff --git a/usr.sbin/mfiutil/mfi_cmd.c b/usr.sbin/mfiutil/mfi_cmd.c index 7fedfb6b7f52..3cf703af3069 100644 --- a/usr.sbin/mfiutil/mfi_cmd.c +++ b/usr.sbin/mfiutil/mfi_cmd.c @@ -301,12 +301,12 @@ mfi_ctrl_get_info(int fd, struct mfi_ctrl_info *info, uint8_t *statusp) } int -mfi_open(int unit) +mfi_open(int unit, int acs) { char path[MAXPATHLEN]; snprintf(path, sizeof(path), "/dev/mfi%d", unit); - return (open(path, O_RDWR)); + return (open(path, acs)); } void diff --git a/usr.sbin/mfiutil/mfi_config.c b/usr.sbin/mfiutil/mfi_config.c index feb285d4a3eb..b3ac9821dbd4 100644 --- a/usr.sbin/mfiutil/mfi_config.c +++ b/usr.sbin/mfiutil/mfi_config.c @@ -35,6 +35,7 @@ #endif #include #include +#include #include #ifdef DEBUG #include @@ -157,7 +158,7 @@ clear_config(int ac, char **av) int ch, error, fd; u_int i; - fd = mfi_open(mfi_unit); + fd = mfi_open(mfi_unit, O_RDWR); if (fd < 0) { error = errno; warn("mfi_open"); @@ -575,7 +576,7 @@ create_volume(int ac, char **av) narrays = 0; error = 0; - fd = mfi_open(mfi_unit); + fd = mfi_open(mfi_unit, O_RDWR); if (fd < 0) { error = errno; warn("mfi_open"); @@ -857,7 +858,7 @@ delete_volume(int ac, char **av) return (EINVAL); } - fd = mfi_open(mfi_unit); + fd = mfi_open(mfi_unit, O_RDWR); if (fd < 0) { error = errno; warn("mfi_open"); @@ -925,7 +926,7 @@ add_spare(int ac, char **av) return (EINVAL); } - fd = mfi_open(mfi_unit); + fd = mfi_open(mfi_unit, O_RDWR); if (fd < 0) { error = errno; warn("mfi_open"); @@ -1050,7 +1051,7 @@ remove_spare(int ac, char **av) return (EINVAL); } - fd = mfi_open(mfi_unit); + fd = mfi_open(mfi_unit, O_RDWR); if (fd < 0) { error = errno; warn("mfi_open"); @@ -1196,7 +1197,7 @@ debug_config(int ac, char **av) return (EINVAL); } - fd = mfi_open(mfi_unit); + fd = mfi_open(mfi_unit, O_RDWR); if (fd < 0) { error = errno; warn("mfi_open"); @@ -1233,7 +1234,7 @@ dump(int ac, char **av) return (EINVAL); } - fd = mfi_open(mfi_unit); + fd = mfi_open(mfi_unit, O_RDWR); if (fd < 0) { error = errno; warn("mfi_open"); diff --git a/usr.sbin/mfiutil/mfi_drive.c b/usr.sbin/mfiutil/mfi_drive.c index 231b070134cd..d4562897fe35 100644 --- a/usr.sbin/mfiutil/mfi_drive.c +++ b/usr.sbin/mfiutil/mfi_drive.c @@ -33,6 +33,7 @@ #include #include #include +#include #include #include #include @@ -71,7 +72,7 @@ mfi_drive_name(struct mfi_pd_info *pinfo, uint16_t device_id, uint32_t def) else snprintf(buf, sizeof(buf), "%2u", device_id); - fd = mfi_open(mfi_unit); + fd = mfi_open(mfi_unit, O_RDWR); if (fd < 0) { warn("mfi_open"); return (buf); @@ -383,7 +384,7 @@ drive_set_state(char *drive, uint16_t new_state) uint8_t mbox[6]; int error, fd; - fd = mfi_open(mfi_unit); + fd = mfi_open(mfi_unit, O_RDWR); if (fd < 0) { error = errno; warn("mfi_open"); @@ -484,7 +485,7 @@ start_rebuild(int ac, char **av) return (EINVAL); } - fd = mfi_open(mfi_unit); + fd = mfi_open(mfi_unit, O_RDWR); if (fd < 0) { error = errno; warn("mfi_open"); @@ -541,7 +542,7 @@ abort_rebuild(int ac, char **av) return (EINVAL); } - fd = mfi_open(mfi_unit); + fd = mfi_open(mfi_unit, O_RDWR); if (fd < 0) { error = errno; warn("mfi_open"); @@ -597,7 +598,7 @@ drive_progress(int ac, char **av) return (EINVAL); } - fd = mfi_open(mfi_unit); + fd = mfi_open(mfi_unit, O_RDWR); if (fd < 0) { error = errno; warn("mfi_open"); @@ -663,7 +664,7 @@ drive_clear(int ac, char **av) return (EINVAL); } - fd = mfi_open(mfi_unit); + fd = mfi_open(mfi_unit, O_RDWR); if (fd < 0) { error = errno; warn("mfi_open"); @@ -723,7 +724,7 @@ drive_locate(int ac, char **av) return (EINVAL); } - fd = mfi_open(mfi_unit); + fd = mfi_open(mfi_unit, O_RDWR); if (fd < 0) { error = errno; warn("mfi_open"); diff --git a/usr.sbin/mfiutil/mfi_evt.c b/usr.sbin/mfiutil/mfi_evt.c index dbf82723cbf3..cddb673c049f 100644 --- a/usr.sbin/mfiutil/mfi_evt.c +++ b/usr.sbin/mfiutil/mfi_evt.c @@ -32,6 +32,7 @@ #include #include #include +#include #include #include #include @@ -73,7 +74,7 @@ show_logstate(int ac, char **av) return (EINVAL); } - fd = mfi_open(mfi_unit); + fd = mfi_open(mfi_unit, O_RDWR); if (fd < 0) { error = errno; warn("mfi_open"); @@ -541,7 +542,7 @@ show_events(int ac, char **av) int ch, error, fd, num_events, verbose; u_int i; - fd = mfi_open(mfi_unit); + fd = mfi_open(mfi_unit, O_RDWR); if (fd < 0) { error = errno; warn("mfi_open"); diff --git a/usr.sbin/mfiutil/mfi_flash.c b/usr.sbin/mfiutil/mfi_flash.c index 6d07cb0651e3..2601025a13f3 100644 --- a/usr.sbin/mfiutil/mfi_flash.c +++ b/usr.sbin/mfiutil/mfi_flash.c @@ -150,7 +150,7 @@ flash_adapter(int ac, char **av) goto error; } - fd = mfi_open(mfi_unit); + fd = mfi_open(mfi_unit, O_RDWR); if (fd < 0) { error = errno; warn("mfi_open"); diff --git a/usr.sbin/mfiutil/mfi_patrol.c b/usr.sbin/mfiutil/mfi_patrol.c index dd348ade0dcb..74cd12802124 100644 --- a/usr.sbin/mfiutil/mfi_patrol.c +++ b/usr.sbin/mfiutil/mfi_patrol.c @@ -32,6 +32,7 @@ #include #include #include +#include #include #include #include @@ -86,7 +87,7 @@ show_patrol(int ac, char **av) int error, fd; u_int i; - fd = mfi_open(mfi_unit); + fd = mfi_open(mfi_unit, O_RDWR); if (fd < 0) { error = errno; warn("mfi_open"); @@ -196,7 +197,7 @@ start_patrol(int ac, char **av) { int error, fd; - fd = mfi_open(mfi_unit); + fd = mfi_open(mfi_unit, O_RDWR); if (fd < 0) { error = errno; warn("mfi_open"); @@ -222,7 +223,7 @@ stop_patrol(int ac, char **av) { int error, fd; - fd = mfi_open(mfi_unit); + fd = mfi_open(mfi_unit, O_RDWR); if (fd < 0) { error = errno; warn("mfi_open"); @@ -292,7 +293,7 @@ patrol_config(int ac, char **av) return (EINVAL); } - fd = mfi_open(mfi_unit); + fd = mfi_open(mfi_unit, O_RDWR); if (fd < 0) { error = errno; warn("mfi_open"); diff --git a/usr.sbin/mfiutil/mfi_show.c b/usr.sbin/mfiutil/mfi_show.c index 8311f4bab66f..db49202daef5 100644 --- a/usr.sbin/mfiutil/mfi_show.c +++ b/usr.sbin/mfiutil/mfi_show.c @@ -32,6 +32,7 @@ #include #include #include +#include #include #include #include @@ -61,7 +62,7 @@ show_adapter(int ac, char **av) return (EINVAL); } - fd = mfi_open(mfi_unit); + fd = mfi_open(mfi_unit, O_RDONLY); if (fd < 0) { error = errno; warn("mfi_open"); @@ -148,7 +149,7 @@ show_battery(int ac, char **av) return (EINVAL); } - fd = mfi_open(mfi_unit); + fd = mfi_open(mfi_unit, O_RDONLY); if (fd < 0) { error = errno; warn("mfi_open"); @@ -320,7 +321,7 @@ show_config(int ac, char **av) return (EINVAL); } - fd = mfi_open(mfi_unit); + fd = mfi_open(mfi_unit, O_RDONLY); if (fd < 0) { error = errno; warn("mfi_open"); @@ -421,7 +422,7 @@ show_volumes(int ac, char **av) return (EINVAL); } - fd = mfi_open(mfi_unit); + fd = mfi_open(mfi_unit, O_RDONLY); if (fd < 0) { error = errno; warn("mfi_open"); @@ -504,7 +505,7 @@ show_drives(int ac, char **av) return (EINVAL); } - fd = mfi_open(mfi_unit); + fd = mfi_open(mfi_unit, O_RDONLY); if (fd < 0) { error = errno; warn("mfi_open"); @@ -612,7 +613,7 @@ show_firmware(int ac, char **av) return (EINVAL); } - fd = mfi_open(mfi_unit); + fd = mfi_open(mfi_unit, O_RDONLY); if (fd < 0) { error = errno; warn("mfi_open"); @@ -672,7 +673,7 @@ show_progress(int ac, char **av) return (EINVAL); } - fd = mfi_open(mfi_unit); + fd = mfi_open(mfi_unit, O_RDONLY); if (fd < 0) { error = errno; warn("mfi_open"); diff --git a/usr.sbin/mfiutil/mfi_volume.c b/usr.sbin/mfiutil/mfi_volume.c index 836f0453503e..49417d0eba88 100644 --- a/usr.sbin/mfiutil/mfi_volume.c +++ b/usr.sbin/mfiutil/mfi_volume.c @@ -32,6 +32,7 @@ #include #include #include +#include #include #include #include @@ -294,7 +295,7 @@ volume_cache(int ac, char **av) return (EINVAL); } - fd = mfi_open(mfi_unit); + fd = mfi_open(mfi_unit, O_RDWR); if (fd < 0) { error = errno; warn("mfi_open"); @@ -402,7 +403,7 @@ volume_name(int ac, char **av) return (ENOSPC); } - fd = mfi_open(mfi_unit); + fd = mfi_open(mfi_unit, O_RDWR); if (fd < 0) { error = errno; warn("mfi_open"); @@ -453,7 +454,7 @@ volume_progress(int ac, char **av) return (EINVAL); } - fd = mfi_open(mfi_unit); + fd = mfi_open(mfi_unit, O_RDONLY); if (fd < 0) { error = errno; warn("mfi_open"); diff --git a/usr.sbin/mfiutil/mfiutil.c b/usr.sbin/mfiutil/mfiutil.c index 43bb6bbe5d10..f73b6029328a 100644 --- a/usr.sbin/mfiutil/mfiutil.c +++ b/usr.sbin/mfiutil/mfiutil.c @@ -95,7 +95,7 @@ static int version(int ac, char **av) { - printf("mfiutil version 1.0.13"); + printf("mfiutil version 1.0.14"); #ifdef DEBUG printf(" (DEBUG)"); #endif diff --git a/usr.sbin/mfiutil/mfiutil.h b/usr.sbin/mfiutil/mfiutil.h index 232831e036a4..bb9366f8769a 100644 --- a/usr.sbin/mfiutil/mfiutil.h +++ b/usr.sbin/mfiutil/mfiutil.h @@ -139,7 +139,7 @@ int mfi_lookup_drive(int fd, char *drive, uint16_t *device_id); int mfi_lookup_volume(int fd, const char *name, uint8_t *target_id); int mfi_dcmd_command(int fd, uint32_t opcode, void *buf, size_t bufsize, uint8_t *mbox, size_t mboxlen, uint8_t *statusp); -int mfi_open(int unit); +int mfi_open(int unit, int acs); int mfi_ctrl_get_info(int fd, struct mfi_ctrl_info *info, uint8_t *statusp); int mfi_ld_get_info(int fd, uint8_t target_id, struct mfi_ld_info *info, uint8_t *statusp); From 41b8cbda7d45229258c6205b697b5fbf80888493 Mon Sep 17 00:00:00 2001 From: Eitan Adler Date: Tue, 19 Jun 2012 06:18:42 +0000 Subject: [PATCH 328/340] Add __unused macros to appropriate places in order to allow building with WARNS=6 on base gcc, gcc46, and clang Approved by: cperciva MFC after: 1 week --- usr.sbin/mfiutil/Makefile | 1 - usr.sbin/mfiutil/mfi_config.c | 4 ++-- usr.sbin/mfiutil/mfi_evt.c | 2 +- usr.sbin/mfiutil/mfi_patrol.c | 6 +++--- usr.sbin/mfiutil/mfi_show.c | 14 +++++++------- usr.sbin/mfiutil/mfiutil.c | 2 +- 6 files changed, 14 insertions(+), 15 deletions(-) diff --git a/usr.sbin/mfiutil/Makefile b/usr.sbin/mfiutil/Makefile index dbf158d914e4..e10035846ad6 100644 --- a/usr.sbin/mfiutil/Makefile +++ b/usr.sbin/mfiutil/Makefile @@ -6,7 +6,6 @@ SRCS= mfiutil.c mfi_cmd.c mfi_config.c mfi_drive.c mfi_evt.c mfi_flash.c \ MAN8= mfiutil.8 CFLAGS+= -fno-builtin-strftime -WARNS?=3 DPADD= ${LIBUTIL} LDADD= -lutil diff --git a/usr.sbin/mfiutil/mfi_config.c b/usr.sbin/mfiutil/mfi_config.c index b3ac9821dbd4..8576bc3325cf 100644 --- a/usr.sbin/mfiutil/mfi_config.c +++ b/usr.sbin/mfiutil/mfi_config.c @@ -152,7 +152,7 @@ mfi_config_lookup_volume(struct mfi_config_data *config, uint8_t target_id) } static int -clear_config(int ac, char **av) +clear_config(int ac __unused, char **av __unused) { struct mfi_ld_list list; int ch, error, fd; @@ -411,7 +411,7 @@ find_next_volume(struct config_id_state *state) /* Populate an array with drives. */ static void -build_array(int fd, char *arrayp, struct array_info *array_info, +build_array(int fd __unused, char *arrayp, struct array_info *array_info, struct config_id_state *state, int verbose) { struct mfi_array *ar = (struct mfi_array *)arrayp; diff --git a/usr.sbin/mfiutil/mfi_evt.c b/usr.sbin/mfiutil/mfi_evt.c index cddb673c049f..c9a1a6dc567b 100644 --- a/usr.sbin/mfiutil/mfi_evt.c +++ b/usr.sbin/mfiutil/mfi_evt.c @@ -64,7 +64,7 @@ mfi_get_events(int fd, struct mfi_evt_list *list, int num_events, } static int -show_logstate(int ac, char **av) +show_logstate(int ac, char **av __unused) { struct mfi_evt_log_state info; int error, fd; diff --git a/usr.sbin/mfiutil/mfi_patrol.c b/usr.sbin/mfiutil/mfi_patrol.c index 74cd12802124..c3e47f32b33c 100644 --- a/usr.sbin/mfiutil/mfi_patrol.c +++ b/usr.sbin/mfiutil/mfi_patrol.c @@ -75,7 +75,7 @@ patrol_get_props(int fd, struct mfi_pr_properties *prop) } static int -show_patrol(int ac, char **av) +show_patrol(int ac __unused, char **av __unused) { struct mfi_pr_properties prop; struct mfi_pr_status status; @@ -193,7 +193,7 @@ show_patrol(int ac, char **av) MFI_COMMAND(show, patrol, show_patrol); static int -start_patrol(int ac, char **av) +start_patrol(int ac __unused, char **av __unused) { int error, fd; @@ -219,7 +219,7 @@ start_patrol(int ac, char **av) MFI_COMMAND(start, patrol, start_patrol); static int -stop_patrol(int ac, char **av) +stop_patrol(int ac __unused, char **av __unused) { int error, fd; diff --git a/usr.sbin/mfiutil/mfi_show.c b/usr.sbin/mfiutil/mfi_show.c index db49202daef5..28a260403918 100644 --- a/usr.sbin/mfiutil/mfi_show.c +++ b/usr.sbin/mfiutil/mfi_show.c @@ -51,7 +51,7 @@ format_stripe(char *buf, size_t buflen, uint8_t stripe) } static int -show_adapter(int ac, char **av) +show_adapter(int ac, char **av __unused) { struct mfi_ctrl_info info; char stripe[5]; @@ -136,7 +136,7 @@ show_adapter(int ac, char **av) MFI_COMMAND(show, adapter, show_adapter); static int -show_battery(int ac, char **av) +show_battery(int ac, char **av __unused) { struct mfi_bbu_capacity_info cap; struct mfi_bbu_design_info design; @@ -304,7 +304,7 @@ print_pd(struct mfi_pd_info *info, int state_len) } static int -show_config(int ac, char **av) +show_config(int ac, char **av __unused) { struct mfi_config_data *config; struct mfi_array *ar; @@ -410,7 +410,7 @@ show_config(int ac, char **av) MFI_COMMAND(show, config, show_config); static int -show_volumes(int ac, char **av) +show_volumes(int ac, char **av __unused) { struct mfi_ld_list list; struct mfi_ld_info info; @@ -493,7 +493,7 @@ show_volumes(int ac, char **av) MFI_COMMAND(show, volumes, show_volumes); static int -show_drives(int ac, char **av) +show_drives(int ac, char **av __unused) { struct mfi_pd_list *list; struct mfi_pd_info info; @@ -601,7 +601,7 @@ display_firmware(struct mfi_info_component *comp, const char *tag) } static int -show_firmware(int ac, char **av) +show_firmware(int ac, char **av __unused) { struct mfi_ctrl_info info; struct mfi_info_component header; @@ -657,7 +657,7 @@ show_firmware(int ac, char **av) MFI_COMMAND(show, firmware, show_firmware); static int -show_progress(int ac, char **av) +show_progress(int ac, char **av __unused) { struct mfi_ld_list llist; struct mfi_pd_list *plist; diff --git a/usr.sbin/mfiutil/mfiutil.c b/usr.sbin/mfiutil/mfiutil.c index f73b6029328a..7a8833d3181d 100644 --- a/usr.sbin/mfiutil/mfiutil.c +++ b/usr.sbin/mfiutil/mfiutil.c @@ -92,7 +92,7 @@ usage(void) } static int -version(int ac, char **av) +version(int ac __unused, char **av __unused) { printf("mfiutil version 1.0.14"); From 09fe63205c597be4f762c7f3017e2854c121d6d1 Mon Sep 17 00:00:00 2001 From: Navdeep Parhar Date: Tue, 19 Jun 2012 07:34:13 +0000 Subject: [PATCH 329/340] - Updated TOE support in the kernel. - Stateful TCP offload drivers for Terminator 3 and 4 (T3 and T4) ASICs. These are available as t3_tom and t4_tom modules that augment cxgb(4) and cxgbe(4) respectively. The cxgb/cxgbe drivers continue to work as usual with or without these extra features. - iWARP driver for Terminator 3 ASIC (kernel verbs). T4 iWARP in the works and will follow soon. Build-tested with make universe. 30s overview ============ What interfaces support TCP offload? Look for TOE4 and/or TOE6 in the capabilities of an interface: # ifconfig -m | grep TOE Enable/disable TCP offload on an interface (just like any other ifnet capability): # ifconfig cxgbe0 toe # ifconfig cxgbe0 -toe Which connections are offloaded? Look for toe4 and/or toe6 in the output of netstat and sockstat: # netstat -np tcp | grep toe # sockstat -46c | grep toe Reviewed by: bz, gnn Sponsored by: Chelsio communications. MFC after: ~3 months (after 9.1, and after ensuring MFC is feasible) --- sbin/ifconfig/ifconfig.c | 4 +- sys/amd64/conf/GENERIC | 1 + sys/conf/NOTES | 2 + sys/conf/files | 4 +- sys/conf/options | 2 +- sys/contrib/rdma/krping/krping.c | 48 +- sys/contrib/rdma/krping/krping.h | 4 +- sys/contrib/rdma/krping/krping_dev.c | 6 +- sys/contrib/rdma/rdma_addr.c | 5 +- sys/contrib/rdma/rdma_cache.c | 2 +- sys/dev/cxgb/common/cxgb_ctl_defs.h | 10 +- sys/dev/cxgb/cxgb_adapter.h | 38 +- sys/dev/cxgb/cxgb_main.c | 452 +- sys/dev/cxgb/cxgb_offload.c | 465 -- sys/dev/cxgb/cxgb_offload.h | 261 +- sys/dev/cxgb/cxgb_osdep.h | 29 - sys/dev/cxgb/cxgb_sge.c | 418 +- sys/dev/cxgb/sys/mvec.h | 21 - sys/dev/cxgb/t3cdev.h | 62 - sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb.c | 314 +- sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb.h | 43 +- sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_cm.c | 403 +- sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_cm.h | 17 +- sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_cq.c | 14 +- sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_dbg.c | 150 +- sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_ev.c | 55 +- sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_hal.c | 513 +- sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_hal.h | 96 +- sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_ib_intfc.h | 22 + sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_mem.c | 96 +- sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_provider.c | 409 +- sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_provider.h | 12 +- sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_qp.c | 415 +- sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_resource.c | 13 +- sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_user.h | 8 + sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_wr.h | 75 +- sys/dev/cxgb/ulp/toecore/cxgb_toedev.h | 49 - sys/dev/cxgb/ulp/toecore/toedev.c | 420 -- sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c | 5091 +++++-------------- sys/dev/cxgb/ulp/tom/cxgb_cpl_socket.c | 1034 ---- sys/dev/cxgb/ulp/tom/cxgb_ddp.c | 738 --- sys/dev/cxgb/ulp/tom/cxgb_defs.h | 91 - sys/dev/cxgb/ulp/tom/cxgb_l2t.c | 604 +-- sys/dev/cxgb/ulp/tom/cxgb_l2t.h | 123 +- sys/dev/cxgb/ulp/tom/cxgb_listen.c | 1375 +++-- sys/dev/cxgb/ulp/tom/cxgb_t3_ddp.h | 181 - sys/dev/cxgb/ulp/tom/cxgb_tcp.h | 47 - sys/dev/cxgb/ulp/tom/cxgb_tcp_offload.c | 97 - sys/dev/cxgb/ulp/tom/cxgb_tcp_offload.h | 14 - sys/dev/cxgb/ulp/tom/cxgb_toepcb.h | 69 +- sys/dev/cxgb/ulp/tom/cxgb_tom.c | 1683 +----- sys/dev/cxgb/ulp/tom/cxgb_tom.h | 315 +- sys/dev/cxgb/ulp/tom/cxgb_tom_sysctl.c | 140 - sys/dev/cxgbe/adapter.h | 105 +- sys/dev/cxgbe/common/t4_hw.c | 2 + sys/dev/cxgbe/offload.h | 19 +- sys/dev/cxgbe/t4_l2t.c | 563 +- sys/dev/cxgbe/t4_l2t.h | 55 +- sys/dev/cxgbe/t4_main.c | 213 +- sys/dev/cxgbe/t4_sge.c | 128 +- sys/dev/cxgbe/tom/t4_connect.c | 377 ++ sys/dev/cxgbe/tom/t4_cpl_io.c | 1276 +++++ sys/dev/cxgbe/tom/t4_listen.c | 1362 +++++ sys/dev/cxgbe/tom/t4_tom.c | 755 +++ sys/dev/cxgbe/tom/t4_tom.h | 248 + sys/dev/cxgbe/tom/t4_tom_l2t.c | 405 ++ sys/dev/cxgbe/tom/t4_tom_l2t.h | 53 + sys/i386/conf/GENERIC | 1 + sys/i386/conf/XEN | 2 +- sys/modules/Makefile | 2 + sys/modules/cxgb/Makefile | 35 +- sys/modules/cxgb/cxgb/Makefile | 3 +- sys/modules/cxgb/iw_cxgb/Makefile | 15 +- sys/modules/cxgb/toecore/Makefile | 11 - sys/modules/cxgb/tom/Makefile | 16 +- sys/modules/cxgbe/Makefile | 5 + sys/modules/cxgbe/tom/Makefile | 15 + sys/modules/rdma/krping/Makefile | 2 + sys/modules/toecore/Makefile | 9 + sys/net/if_var.h | 2 + sys/net/if_vlan.c | 20 +- sys/netinet/if_ether.c | 13 +- sys/netinet/if_ether.h | 10 +- sys/netinet/in.c | 2 +- sys/netinet/tcp_input.c | 13 +- sys/netinet/tcp_offload.c | 207 +- sys/netinet/tcp_offload.h | 362 +- sys/netinet/tcp_output.c | 8 + sys/netinet/tcp_subr.c | 19 +- sys/netinet/tcp_syncache.c | 135 +- sys/netinet/tcp_syncache.h | 19 +- sys/netinet/tcp_timer.c | 5 + sys/netinet/tcp_usrreq.c | 75 +- sys/netinet/tcp_var.h | 2 +- sys/netinet/toecore.c | 575 +++ sys/netinet/toecore.h | 130 + sys/netinet/toedev.h | 162 - sys/ofed/drivers/infiniband/core/cma.c | 21 +- sys/ofed/drivers/infiniband/core/iwcm.c | 3 + sys/ofed/include/linux/net.h | 8 +- sys/ofed/include/net/netevent.h | 7 +- sys/ofed/include/rdma/iw_cm.h | 4 +- usr.bin/netstat/inet.c | 5 +- usr.bin/sockstat/sockstat.c | 1 + 104 files changed, 11036 insertions(+), 13009 deletions(-) delete mode 100644 sys/dev/cxgb/cxgb_offload.c delete mode 100644 sys/dev/cxgb/t3cdev.h create mode 100644 sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_ib_intfc.h delete mode 100644 sys/dev/cxgb/ulp/toecore/cxgb_toedev.h delete mode 100644 sys/dev/cxgb/ulp/toecore/toedev.c delete mode 100644 sys/dev/cxgb/ulp/tom/cxgb_cpl_socket.c delete mode 100644 sys/dev/cxgb/ulp/tom/cxgb_ddp.c delete mode 100644 sys/dev/cxgb/ulp/tom/cxgb_defs.h delete mode 100644 sys/dev/cxgb/ulp/tom/cxgb_t3_ddp.h delete mode 100644 sys/dev/cxgb/ulp/tom/cxgb_tcp.h delete mode 100644 sys/dev/cxgb/ulp/tom/cxgb_tcp_offload.c delete mode 100644 sys/dev/cxgb/ulp/tom/cxgb_tcp_offload.h delete mode 100644 sys/dev/cxgb/ulp/tom/cxgb_tom_sysctl.c create mode 100644 sys/dev/cxgbe/tom/t4_connect.c create mode 100644 sys/dev/cxgbe/tom/t4_cpl_io.c create mode 100644 sys/dev/cxgbe/tom/t4_listen.c create mode 100644 sys/dev/cxgbe/tom/t4_tom.c create mode 100644 sys/dev/cxgbe/tom/t4_tom.h create mode 100644 sys/dev/cxgbe/tom/t4_tom_l2t.c create mode 100644 sys/dev/cxgbe/tom/t4_tom_l2t.h delete mode 100644 sys/modules/cxgb/toecore/Makefile create mode 100644 sys/modules/cxgbe/tom/Makefile create mode 100644 sys/modules/toecore/Makefile create mode 100644 sys/netinet/toecore.c create mode 100644 sys/netinet/toecore.h delete mode 100644 sys/netinet/toedev.h diff --git a/sbin/ifconfig/ifconfig.c b/sbin/ifconfig/ifconfig.c index 082e15d61e2a..870acdd0445c 100644 --- a/sbin/ifconfig/ifconfig.c +++ b/sbin/ifconfig/ifconfig.c @@ -916,7 +916,7 @@ unsetifdescr(const char *val, int value, int s, const struct afswtch *afp) #define IFCAPBITS \ "\020\1RXCSUM\2TXCSUM\3NETCONS\4VLAN_MTU\5VLAN_HWTAGGING\6JUMBO_MTU\7POLLING" \ "\10VLAN_HWCSUM\11TSO4\12TSO6\13LRO\14WOL_UCAST\15WOL_MCAST\16WOL_MAGIC" \ -"\21VLAN_HWFILTER\23VLAN_HWTSO\24LINKSTATE\25NETMAP" \ +"\17TOE4\20TOE6\21VLAN_HWFILTER\23VLAN_HWTSO\24LINKSTATE\25NETMAP" \ "\26RXCSUM_IPV6\27TXCSUM_IPV6" /* @@ -1212,6 +1212,8 @@ static struct cmd basic_cmds[] = { DEF_CMD("-tso4", -IFCAP_TSO4, setifcap), DEF_CMD("tso", IFCAP_TSO, setifcap), DEF_CMD("-tso", -IFCAP_TSO, setifcap), + DEF_CMD("toe", IFCAP_TOE, setifcap), + DEF_CMD("-toe", -IFCAP_TOE, setifcap), DEF_CMD("lro", IFCAP_LRO, setifcap), DEF_CMD("-lro", -IFCAP_LRO, setifcap), DEF_CMD("wol", IFCAP_WOL, setifcap), diff --git a/sys/amd64/conf/GENERIC b/sys/amd64/conf/GENERIC index a36a00ee14a1..74dd11e41cdd 100644 --- a/sys/amd64/conf/GENERIC +++ b/sys/amd64/conf/GENERIC @@ -28,6 +28,7 @@ options SCHED_ULE # ULE scheduler options PREEMPTION # Enable kernel thread preemption options INET # InterNETworking options INET6 # IPv6 communications protocols +options TCP_OFFLOAD # TCP offload options SCTP # Stream Control Transmission Protocol options FFS # Berkeley Fast Filesystem options SOFTUPDATES # Enable FFS soft updates support diff --git a/sys/conf/NOTES b/sys/conf/NOTES index 1d4b29fde0ee..895a301d87b6 100644 --- a/sys/conf/NOTES +++ b/sys/conf/NOTES @@ -545,6 +545,8 @@ options INET6 #IPv6 communications protocols options ROUTETABLES=2 # max 16. 1 is back compatible. +options TCP_OFFLOAD # TCP offload support. + # In order to enable IPSEC you MUST also add device crypto to # your kernel configuration options IPSEC #IP security (requires device crypto) diff --git a/sys/conf/files b/sys/conf/files index ad460ba278f0..c0b928672435 100644 --- a/sys/conf/files +++ b/sys/conf/files @@ -1038,8 +1038,6 @@ dev/cs/if_cs_isa.c optional cs isa dev/cs/if_cs_pccard.c optional cs pccard dev/cxgb/cxgb_main.c optional cxgb pci \ compile-with "${NORMAL_C} -I$S/dev/cxgb" -dev/cxgb/cxgb_offload.c optional cxgb pci \ - compile-with "${NORMAL_C} -I$S/dev/cxgb" dev/cxgb/cxgb_sge.c optional cxgb pci \ compile-with "${NORMAL_C} -I$S/dev/cxgb" dev/cxgb/common/cxgb_mc5.c optional cxgb pci \ @@ -3037,7 +3035,7 @@ netinet/tcp_hostcache.c optional inet | inet6 netinet/tcp_input.c optional inet | inet6 netinet/tcp_lro.c optional inet | inet6 netinet/tcp_output.c optional inet | inet6 -netinet/tcp_offload.c optional inet | inet6 +netinet/tcp_offload.c optional tcp_offload inet | tcp_offload inet6 netinet/tcp_reass.c optional inet | inet6 netinet/tcp_sack.c optional inet | inet6 netinet/tcp_subr.c optional inet | inet6 diff --git a/sys/conf/options b/sys/conf/options index ba678e1a0b3b..18e6732f8340 100644 --- a/sys/conf/options +++ b/sys/conf/options @@ -434,7 +434,7 @@ RADIX_MPATH opt_mpath.h ROUTETABLES opt_route.h SLIP_IFF_OPTS opt_slip.h TCPDEBUG -TCP_OFFLOAD_DISABLE opt_inet.h #Disable code to dispatch tcp offloading +TCP_OFFLOAD opt_inet.h # Enable code to dispatch TCP offloading TCP_SIGNATURE opt_inet.h VLAN_ARRAY opt_vlan.h XBONEHACK diff --git a/sys/contrib/rdma/krping/krping.c b/sys/contrib/rdma/krping/krping.c index d787965cd84b..99d1924704dd 100644 --- a/sys/contrib/rdma/krping/krping.c +++ b/sys/contrib/rdma/krping/krping.c @@ -41,7 +41,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include #include #include @@ -53,11 +52,13 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include -#include +#include +#include #include "getopt.h" #include "krping.h" @@ -83,6 +84,7 @@ static const struct krping_option krping_opts[] = { {"bw", OPT_NOPARAM, 'B'}, {"tx-depth", OPT_INT, 't'}, {"poll", OPT_NOPARAM, 'P'}, + {"memlimit", OPT_INT, 'm'}, {NULL, 0, 0} }; @@ -254,10 +256,14 @@ static void krping_cq_event_handler(struct ib_cq *cq, void *ctx) ib_req_notify_cq(cb->cq, IB_CQ_NEXT_COMP); while ((ret = ib_poll_cq(cb->cq, 1, &wc)) == 1) { if (wc.status) { - if (wc.status != IB_WC_WR_FLUSH_ERR) - log(LOG_ERR, "cq completion failed status %d\n", + if (wc.status == IB_WC_WR_FLUSH_ERR) { + DEBUG_LOG("cq flushed\n"); + continue; + } else { + log(LOG_CRIT, "cq completion failed status %d\n", wc.status); - goto error; + goto error; + } } switch (wc.opcode) { @@ -432,8 +438,17 @@ static int krping_setup_buffers(struct krping_cb *cb) } } - cb->rdma_buf = contigmalloc(cb->size, M_DEVBUF, M_WAITOK, 0, -1UL, - PAGE_SIZE, 0); + /* RNIC adapters have a limit upto which it can register physical memory + * If DMA-MR memory mode is set then normally driver registers maximum + * supported memory. After that if contigmalloc allocates memory beyond the + * specified RNIC limit then Krping may not work. + */ + if (cb->use_dmamr && cb->memlimit) + cb->rdma_buf = contigmalloc(cb->size, M_DEVBUF, M_WAITOK, 0, cb->memlimit, + PAGE_SIZE, 0); + else + cb->rdma_buf = contigmalloc(cb->size, M_DEVBUF, M_WAITOK, 0, -1UL, + PAGE_SIZE, 0); if (!cb->rdma_buf) { log(LOG_ERR, "rdma_buf malloc failed\n"); @@ -458,8 +473,12 @@ static int krping_setup_buffers(struct krping_cb *cb) } if (!cb->server || cb->wlat || cb->rlat || cb->bw) { - cb->start_buf = contigmalloc(cb->size, M_DEVBUF, M_WAITOK, - 0, -1UL, PAGE_SIZE, 0); + if (cb->use_dmamr && cb->memlimit) + cb->start_buf = contigmalloc(cb->size, M_DEVBUF, M_WAITOK, + 0, cb->memlimit, PAGE_SIZE, 0); + else + cb->start_buf = contigmalloc(cb->size, M_DEVBUF, M_WAITOK, + 0, -1UL, PAGE_SIZE, 0); if (!cb->start_buf) { log(LOG_ERR, "start_buf malloc failed\n"); ret = ENOMEM; @@ -1636,6 +1655,8 @@ int krping_doit(char *cmd) cb->state = IDLE; cb->size = 64; cb->txdepth = RPING_SQ_DEPTH; + cb->use_dmamr = 1; + cb->memlimit = 0; mtx_init(&cb->lock, "krping mtx", NULL, MTX_DUPOK|MTX_DEF); while ((op = krping_getopt("krping", &cmd, krping_opts, NULL, &optarg, @@ -1713,6 +1734,15 @@ int krping_doit(char *cmd) case 'd': debug++; break; + case 'm': + cb->memlimit = optint; + if (cb->memlimit < 1) { + log(LOG_ERR, "Invalid memory limit %ju\n", + cb->memlimit); + ret = EINVAL; + } else + DEBUG_LOG(PFX "memory limit %d\n", (int)optint); + break; default: log(LOG_ERR, "unknown opt %s\n", optarg); ret = EINVAL; diff --git a/sys/contrib/rdma/krping/krping.h b/sys/contrib/rdma/krping/krping.h index 8578e7e7979b..d2348257cf7e 100644 --- a/sys/contrib/rdma/krping/krping.h +++ b/sys/contrib/rdma/krping/krping.h @@ -1,7 +1,7 @@ /* * $FreeBSD$ */ -#include +#include #include /* @@ -92,6 +92,8 @@ struct krping_cb { int count; /* ping count */ int size; /* ping data size */ int validate; /* validate ping data */ + uint64_t memlimit; /* limit of the physical memory that + can be registered with dma_mr mode */ /* CM stuff */ struct rdma_cm_id *cm_id; /* connection on client side,*/ diff --git a/sys/contrib/rdma/krping/krping_dev.c b/sys/contrib/rdma/krping/krping_dev.c index 448f19717578..92d954d5e988 100644 --- a/sys/contrib/rdma/krping/krping_dev.c +++ b/sys/contrib/rdma/krping/krping_dev.c @@ -14,7 +14,6 @@ __FBSDID("$FreeBSD$"); #include -#include #include /* uprintf */ #include #include /* defines used in kernel.h */ @@ -51,6 +50,9 @@ typedef struct s_krping { /* vars */ static struct cdev *krping_dev; +#undef MODULE_VERSION +#include + static int krping_loader(struct module *m, int what, void *arg) { @@ -175,6 +177,4 @@ krping_write(struct cdev *dev, struct uio *uio, int ioflag) return(err); } -MODULE_DEPEND(krping, rdma_core, 1, 1, 1); -MODULE_DEPEND(krping, rdma_cma, 1, 1, 1); DEV_MODULE(krping,krping_loader,NULL); diff --git a/sys/contrib/rdma/rdma_addr.c b/sys/contrib/rdma/rdma_addr.c index b3f734963c0e..33ec5acb2553 100644 --- a/sys/contrib/rdma/rdma_addr.c +++ b/sys/contrib/rdma/rdma_addr.c @@ -117,7 +117,8 @@ int rdma_copy_addr(struct rdma_dev_addr *dev_addr, struct ifnet *dev, const unsigned char *dst_dev_addr) { dev_addr->dev_type = RDMA_NODE_RNIC; - memcpy(dev_addr->src_dev_addr, IF_LLADDR(dev), MAX_ADDR_LEN); + memset(dev_addr->src_dev_addr, 0, MAX_ADDR_LEN); + memcpy(dev_addr->src_dev_addr, IF_LLADDR(dev), dev->if_addrlen); memcpy(dev_addr->broadcast, dev->if_broadcastaddr, MAX_ADDR_LEN); if (dst_dev_addr) memcpy(dev_addr->dst_dev_addr, dst_dev_addr, MAX_ADDR_LEN); @@ -207,7 +208,7 @@ static int addr_resolve_remote(struct sockaddr_in *src_in, goto put; } ret = arpresolve(iproute.ro_rt->rt_ifp, iproute.ro_rt, NULL, - rt_key(iproute.ro_rt), dmac, &lle); + (struct sockaddr *)dst_in, dmac, &lle); if (ret) { goto put; } diff --git a/sys/contrib/rdma/rdma_cache.c b/sys/contrib/rdma/rdma_cache.c index dced8ebd0110..1e516a1b036f 100644 --- a/sys/contrib/rdma/rdma_cache.c +++ b/sys/contrib/rdma/rdma_cache.c @@ -132,7 +132,7 @@ int ib_find_cached_gid(struct ib_device *device, for (p = 0; p <= end_port(device) - start_port(device); ++p) { cache = device->cache.gid_cache[p]; for (i = 0; i < cache->table_len; ++i) { - if (!memcmp(gid, &cache->table[i], 6)) { /* XXX */ + if (!memcmp(gid, &cache->table[i], sizeof *gid)) { *port_num = p + start_port(device); if (index) *index = i; diff --git a/sys/dev/cxgb/common/cxgb_ctl_defs.h b/sys/dev/cxgb/common/cxgb_ctl_defs.h index b228a25f52c4..fe8a4f7defc7 100644 --- a/sys/dev/cxgb/common/cxgb_ctl_defs.h +++ b/sys/dev/cxgb/common/cxgb_ctl_defs.h @@ -60,14 +60,12 @@ struct mtutab { const unsigned short *mtus; /* the MTU table values */ }; -struct net_device; - /* - * Structure used to request the adapter net_device owning a given MAC address. + * Structure used to request the ifnet that owns a given MAC address. */ struct iff_mac { - struct net_device *dev; /* the net_device */ - const unsigned char *mac_addr; /* MAC address to lookup */ + struct ifnet *dev; + const unsigned char *mac_addr; u16 vlan_tag; }; @@ -85,7 +83,7 @@ struct ddp_params { struct adap_ports { unsigned int nports; /* number of ports on this adapter */ - struct net_device *lldevs[MAX_NPORTS]; + struct ifnet *lldevs[MAX_NPORTS]; }; /* diff --git a/sys/dev/cxgb/cxgb_adapter.h b/sys/dev/cxgb/cxgb_adapter.h index 4354b1c93066..928f8fed2b18 100644 --- a/sys/dev/cxgb/cxgb_adapter.h +++ b/sys/dev/cxgb/cxgb_adapter.h @@ -57,7 +57,6 @@ POSSIBILITY OF SUCH DAMAGE. #include #include -#include #include struct adapter; @@ -130,6 +129,7 @@ enum { CXGB_OFLD_INIT = (1 << 7), TP_PARITY_INIT = (1 << 8), CXGB_BUSY = (1 << 9), + TOM_INIT_DONE = (1 << 10), /* port flags */ DOOMED = (1 << 0), @@ -179,7 +179,6 @@ struct sge_rspq { uint32_t async_notif; uint32_t cntxt_id; uint32_t offload_pkts; - uint32_t offload_bundles; uint32_t pure_rsps; uint32_t unhandled_irqs; uint32_t starved; @@ -291,6 +290,7 @@ struct sge_qset { uint32_t txq_stopped; /* which Tx queues are stopped */ uint64_t port_stats[SGE_PSTAT_MAX]; struct port_info *port; + struct adapter *adap; int idx; /* qset # */ int qs_flags; int coalescing; @@ -307,10 +307,13 @@ struct sge { struct filter_info; +typedef int (*cpl_handler_t)(struct sge_qset *, struct rsp_desc *, + struct mbuf *); + struct adapter { + SLIST_ENTRY(adapter) link; device_t dev; int flags; - TAILQ_ENTRY(adapter) adapter_entry; /* PCI register resources */ int regs_rid; @@ -376,11 +379,16 @@ struct adapter { struct port_info port[MAX_NPORTS]; device_t portdev[MAX_NPORTS]; - struct t3cdev tdev; +#ifdef TCP_OFFLOAD + void *tom_softc; + void *iwarp_softc; +#endif char fw_version[64]; char port_types[MAX_NPORTS + 1]; uint32_t open_device_map; - uint32_t registered_device_map; +#ifdef TCP_OFFLOAD + int offload_map; +#endif struct mtx lock; driver_intr_t *cxgb_intr; int msi_count; @@ -392,6 +400,11 @@ struct adapter { char elmerlockbuf[ADAPTER_LOCK_NAME_LEN]; int timestamp; + +#ifdef TCP_OFFLOAD +#define NUM_CPL_HANDLERS 0xa7 + cpl_handler_t cpl_handler[NUM_CPL_HANDLERS] __aligned(CACHE_LINE_SIZE); +#endif }; struct t3_rx_mode { @@ -502,10 +515,12 @@ void t3_os_link_changed(adapter_t *adapter, int port_id, int link_status, int speed, int duplex, int fc, int mac_was_reset); void t3_os_phymod_changed(struct adapter *adap, int port_id); void t3_sge_err_intr_handler(adapter_t *adapter); -int t3_offload_tx(struct t3cdev *, struct mbuf *); +#ifdef TCP_OFFLOAD +int t3_offload_tx(struct adapter *, struct mbuf *); +#endif void t3_os_set_hw_addr(adapter_t *adapter, int port_idx, u8 hw_addr[]); int t3_mgmt_tx(adapter_t *adap, struct mbuf *m); - +int t3_register_cpl_handler(struct adapter *, int, cpl_handler_t); int t3_sge_alloc(struct adapter *); int t3_sge_free(struct adapter *); @@ -556,15 +571,9 @@ txq_to_qset(struct sge_txq *q, int qidx) return container_of(q, struct sge_qset, txq[qidx]); } -static __inline struct adapter * -tdev2adap(struct t3cdev *d) -{ - return container_of(d, struct adapter, tdev); -} - #undef container_of -#define OFFLOAD_DEVMAP_BIT 15 +#define OFFLOAD_DEVMAP_BIT (1 << MAX_NPORTS) static inline int offload_running(adapter_t *adapter) { return isset(&adapter->open_device_map, OFFLOAD_DEVMAP_BIT); @@ -573,4 +582,5 @@ static inline int offload_running(adapter_t *adapter) void cxgb_tx_watchdog(void *arg); int cxgb_transmit(struct ifnet *ifp, struct mbuf *m); void cxgb_qflush(struct ifnet *ifp); +void t3_iterate(void (*)(struct adapter *, void *), void *); #endif diff --git a/sys/dev/cxgb/cxgb_main.c b/sys/dev/cxgb/cxgb_main.c index fb420044901f..aad7abf34421 100644 --- a/sys/dev/cxgb/cxgb_main.c +++ b/sys/dev/cxgb/cxgb_main.c @@ -30,6 +30,8 @@ POSSIBILITY OF SUCH DAMAGE. #include __FBSDID("$FreeBSD$"); +#include "opt_inet.h" + #include #include #include @@ -107,6 +109,9 @@ static inline void mk_set_tcb_field(struct cpl_set_tcb_field *, unsigned int, unsigned int, u64, u64); static inline void set_tcb_field_ulp(struct cpl_set_tcb_field *, unsigned int, unsigned int, u64, u64); +#ifdef TCP_OFFLOAD +static int cpl_not_handled(struct sge_qset *, struct rsp_desc *, struct mbuf *); +#endif /* Attachment glue for the PCI controller end of the device. Each port of * the device is attached separately, as defined later. @@ -119,10 +124,11 @@ static __inline void reg_block_dump(struct adapter *ap, uint8_t *buf, unsigned i unsigned int end); static void cxgb_get_regs(adapter_t *sc, struct ch_ifconf_regs *regs, uint8_t *buf); static int cxgb_get_regs_len(void); -static int offload_open(struct port_info *pi); static void touch_bars(device_t dev); -static int offload_close(struct t3cdev *tdev); static void cxgb_update_mac_settings(struct port_info *p); +#ifdef TCP_OFFLOAD +static int toe_capability(struct port_info *, int); +#endif static device_method_t cxgb_controller_methods[] = { DEVMETHOD(device_probe, cxgb_controller_probe), @@ -138,8 +144,11 @@ static driver_t cxgb_controller_driver = { sizeof(struct adapter) }; +static int cxgbc_mod_event(module_t, int, void *); static devclass_t cxgb_controller_devclass; -DRIVER_MODULE(cxgbc, pci, cxgb_controller_driver, cxgb_controller_devclass, 0, 0); +DRIVER_MODULE(cxgbc, pci, cxgb_controller_driver, cxgb_controller_devclass, + cxgbc_mod_event, 0); +MODULE_VERSION(cxgbc, 1); /* * Attachment glue for the ports. Attachment is done directly to the @@ -177,6 +186,14 @@ static struct cdevsw cxgb_cdevsw = { static devclass_t cxgb_port_devclass; DRIVER_MODULE(cxgb, cxgbc, cxgb_port_driver, cxgb_port_devclass, 0, 0); +MODULE_VERSION(cxgb, 1); + +static struct mtx t3_list_lock; +static SLIST_HEAD(, adapter) t3_list; +#ifdef TCP_OFFLOAD +static struct mtx t3_uld_list_lock; +static SLIST_HEAD(, uld_info) t3_uld_list; +#endif /* * The driver uses the best interrupt scheme available on a platform in the @@ -194,15 +211,6 @@ SYSCTL_NODE(_hw, OID_AUTO, cxgb, CTLFLAG_RD, 0, "CXGB driver parameters"); SYSCTL_INT(_hw_cxgb, OID_AUTO, msi_allowed, CTLFLAG_RDTUN, &msi_allowed, 0, "MSI-X, MSI, INTx selector"); -/* - * The driver enables offload as a default. - * To disable it, use ofld_disable = 1. - */ -static int ofld_disable = 0; -TUNABLE_INT("hw.cxgb.ofld_disable", &ofld_disable); -SYSCTL_INT(_hw_cxgb, OID_AUTO, ofld_disable, CTLFLAG_RDTUN, &ofld_disable, 0, - "disable ULP offload"); - /* * The driver uses an auto-queue algorithm by default. * To disable it and force a single queue-set per port, use multiq = 0 @@ -445,6 +453,25 @@ cxgb_controller_attach(device_t dev) sc->msi_count = 0; ai = cxgb_get_adapter_info(dev); + snprintf(sc->lockbuf, ADAPTER_LOCK_NAME_LEN, "cxgb controller lock %d", + device_get_unit(dev)); + ADAPTER_LOCK_INIT(sc, sc->lockbuf); + + snprintf(sc->reglockbuf, ADAPTER_LOCK_NAME_LEN, "SGE reg lock %d", + device_get_unit(dev)); + snprintf(sc->mdiolockbuf, ADAPTER_LOCK_NAME_LEN, "cxgb mdio lock %d", + device_get_unit(dev)); + snprintf(sc->elmerlockbuf, ADAPTER_LOCK_NAME_LEN, "cxgb elmer lock %d", + device_get_unit(dev)); + + MTX_INIT(&sc->sge.reg_lock, sc->reglockbuf, NULL, MTX_SPIN); + MTX_INIT(&sc->mdio_lock, sc->mdiolockbuf, NULL, MTX_DEF); + MTX_INIT(&sc->elmer_lock, sc->elmerlockbuf, NULL, MTX_DEF); + + mtx_lock(&t3_list_lock); + SLIST_INSERT_HEAD(&t3_list, sc, link); + mtx_unlock(&t3_list_lock); + /* find the PCIe link width and set max read request to 4KB*/ if (pci_find_cap(dev, PCIY_EXPRESS, ®) == 0) { uint16_t lnk; @@ -471,24 +498,10 @@ cxgb_controller_attach(device_t dev) if ((sc->regs_res = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &sc->regs_rid, RF_ACTIVE)) == NULL) { device_printf(dev, "Cannot allocate BAR region 0\n"); - return (ENXIO); + error = ENXIO; + goto out; } - snprintf(sc->lockbuf, ADAPTER_LOCK_NAME_LEN, "cxgb controller lock %d", - device_get_unit(dev)); - ADAPTER_LOCK_INIT(sc, sc->lockbuf); - - snprintf(sc->reglockbuf, ADAPTER_LOCK_NAME_LEN, "SGE reg lock %d", - device_get_unit(dev)); - snprintf(sc->mdiolockbuf, ADAPTER_LOCK_NAME_LEN, "cxgb mdio lock %d", - device_get_unit(dev)); - snprintf(sc->elmerlockbuf, ADAPTER_LOCK_NAME_LEN, "cxgb elmer lock %d", - device_get_unit(dev)); - - MTX_INIT(&sc->sge.reg_lock, sc->reglockbuf, NULL, MTX_SPIN); - MTX_INIT(&sc->mdio_lock, sc->mdiolockbuf, NULL, MTX_DEF); - MTX_INIT(&sc->elmer_lock, sc->elmerlockbuf, NULL, MTX_DEF); - sc->bt = rman_get_bustag(sc->regs_res); sc->bh = rman_get_bushandle(sc->regs_res); sc->mmio_len = rman_get_size(sc->regs_res); @@ -604,7 +617,7 @@ cxgb_controller_attach(device_t dev) } else { sc->flags |= TPS_UPTODATE; } - + /* * Create a child device for each MAC. The ethernet attachment * will be done in these children. @@ -636,12 +649,7 @@ cxgb_controller_attach(device_t dev) t3_sge_init_adapter(sc); t3_led_ready(sc); - - cxgb_offload_init(); - if (is_offload(sc)) { - setbit(&sc->registered_device_map, OFFLOAD_DEVMAP_BIT); - cxgb_adapter_ofld(sc); - } + error = t3_get_fw_version(sc, &vers); if (error) goto out; @@ -662,6 +670,11 @@ cxgb_controller_attach(device_t dev) device_printf(sc->dev, "Firmware Version %s\n", &sc->fw_version[0]); callout_reset(&sc->cxgb_tick_ch, hz, cxgb_tick, sc); t3_add_attach_sysctls(sc); + +#ifdef TCP_OFFLOAD + for (i = 0; i < NUM_CPL_HANDLERS; i++) + sc->cpl_handler[i] = cpl_not_handled; +#endif out: if (error) cxgb_free(sc); @@ -775,20 +788,9 @@ cxgb_free(struct adapter *sc) sc->tq = NULL; } - if (is_offload(sc)) { - clrbit(&sc->registered_device_map, OFFLOAD_DEVMAP_BIT); - cxgb_adapter_unofld(sc); - } - -#ifdef notyet - if (sc->flags & CXGB_OFLD_INIT) - cxgb_offload_deactivate(sc); -#endif free(sc->filters, M_DEVBUF); t3_sge_free(sc); - cxgb_offload_exit(); - if (sc->udbs_res != NULL) bus_release_resource(sc->dev, SYS_RES_MEMORY, sc->udbs_rid, sc->udbs_res); @@ -800,6 +802,9 @@ cxgb_free(struct adapter *sc) MTX_DESTROY(&sc->mdio_lock); MTX_DESTROY(&sc->sge.reg_lock); MTX_DESTROY(&sc->elmer_lock); + mtx_lock(&t3_list_lock); + SLIST_REMOVE(&t3_list, sc, adapter, link); + mtx_unlock(&t3_list_lock); ADAPTER_LOCK_DEINIT(sc); } @@ -1017,6 +1022,10 @@ cxgb_port_attach(device_t dev) ifp->if_qflush = cxgb_qflush; ifp->if_capabilities = CXGB_CAP; +#ifdef TCP_OFFLOAD + if (is_offload(sc)) + ifp->if_capabilities |= IFCAP_TOE4; +#endif ifp->if_capenable = CXGB_CAP_ENABLE; ifp->if_hwassist = CSUM_TCP | CSUM_UDP | CSUM_IP | CSUM_TSO; @@ -1420,65 +1429,6 @@ setup_rss(adapter_t *adap) cpus, rspq_map); } - -/* - * Sends an mbuf to an offload queue driver - * after dealing with any active network taps. - */ -static inline int -offload_tx(struct t3cdev *tdev, struct mbuf *m) -{ - int ret; - - ret = t3_offload_tx(tdev, m); - return (ret); -} - -static int -write_smt_entry(struct adapter *adapter, int idx) -{ - struct port_info *pi = &adapter->port[idx]; - struct cpl_smt_write_req *req; - struct mbuf *m; - - if ((m = m_gethdr(M_NOWAIT, MT_DATA)) == NULL) - return (ENOMEM); - - req = mtod(m, struct cpl_smt_write_req *); - m->m_pkthdr.len = m->m_len = sizeof(struct cpl_smt_write_req); - - req->wr.wrh_hi = htonl(V_WR_OP(FW_WROPCODE_FORWARD)); - OPCODE_TID(req) = htonl(MK_OPCODE_TID(CPL_SMT_WRITE_REQ, idx)); - req->mtu_idx = NMTUS - 1; /* should be 0 but there's a T3 bug */ - req->iff = idx; - memset(req->src_mac1, 0, sizeof(req->src_mac1)); - memcpy(req->src_mac0, pi->hw_addr, ETHER_ADDR_LEN); - - m_set_priority(m, 1); - - offload_tx(&adapter->tdev, m); - - return (0); -} - -static int -init_smt(struct adapter *adapter) -{ - int i; - - for_each_port(adapter, i) - write_smt_entry(adapter, i); - return 0; -} - -static void -init_port_mtus(adapter_t *adapter) -{ - unsigned int mtus = ETHERMTU | (ETHERMTU << 16); - - t3_write_reg(adapter, A_TP_MTU_PORT_TABLE, mtus); -} - static void send_pktsched_cmd(struct adapter *adap, int sched, int qidx, int lo, int hi, int port) @@ -1705,45 +1655,6 @@ cxgb_down(struct adapter *sc) t3_intr_disable(sc); } -static int -offload_open(struct port_info *pi) -{ - struct adapter *sc = pi->adapter; - struct t3cdev *tdev = &sc->tdev; - - setbit(&sc->open_device_map, OFFLOAD_DEVMAP_BIT); - - t3_tp_set_offload_mode(sc, 1); - tdev->lldev = pi->ifp; - init_port_mtus(sc); - t3_load_mtus(sc, sc->params.mtus, sc->params.a_wnd, sc->params.b_wnd, - sc->params.rev == 0 ? sc->port[0].ifp->if_mtu : 0xffff); - init_smt(sc); - cxgb_add_clients(tdev); - - return (0); -} - -static int -offload_close(struct t3cdev *tdev) -{ - struct adapter *adapter = tdev2adap(tdev); - - if (!isset(&adapter->open_device_map, OFFLOAD_DEVMAP_BIT)) - return (0); - - /* Call back all registered clients */ - cxgb_remove_clients(tdev); - - tdev->lldev = NULL; - cxgb_set_dummy_ops(tdev); - t3_tp_set_offload_mode(adapter, 0); - - clrbit(&adapter->open_device_map, OFFLOAD_DEVMAP_BIT); - - return (0); -} - /* * if_init for cxgb ports. */ @@ -1793,15 +1704,9 @@ cxgb_init_locked(struct port_info *p) ADAPTER_UNLOCK(sc); } - if (sc->open_device_map == 0) { - if ((rc = cxgb_up(sc)) != 0) + if (sc->open_device_map == 0 && ((rc = cxgb_up(sc)) != 0)) goto done; - if (is_offload(sc) && !ofld_disable && offload_open(p)) - log(LOG_WARNING, - "Could not initialize offload capabilities\n"); - } - PORT_LOCK(p); if (isset(&sc->open_device_map, p->port_id) && (ifp->if_drv_flags & IFF_DRV_RUNNING)) { @@ -1929,7 +1834,6 @@ cxgb_uninit_synchronized(struct port_info *pi) DELAY(100 * 1000); t3_mac_disable(&pi->mac, MAC_DIRECTION_RX); - pi->phy.ops->power_down(&pi->phy, 1); PORT_UNLOCK(pi); @@ -1937,9 +1841,6 @@ cxgb_uninit_synchronized(struct port_info *pi) pi->link_config.link_ok = 0; t3_os_link_changed(sc, pi->port_id, 0, 0, 0, 0, 0); - if ((sc->open_device_map & PORT_MASK) == 0) - offload_close(&sc->tdev); - if (sc->open_device_map == 0) cxgb_down(pi->adapter); @@ -2081,6 +1982,15 @@ cxgb_ioctl(struct ifnet *ifp, unsigned long command, caddr_t data) /* Safe to do this even if cxgb_up not called yet */ cxgb_set_lro(p, ifp->if_capenable & IFCAP_LRO); } +#ifdef TCP_OFFLOAD + if (mask & IFCAP_TOE4) { + int enable = (ifp->if_capenable ^ mask) & IFCAP_TOE4; + + error = toe_capability(p, enable); + if (error == 0) + ifp->if_capenable ^= mask; + } +#endif if (mask & IFCAP_VLAN_HWTAGGING) { ifp->if_capenable ^= IFCAP_VLAN_HWTAGGING; if (ifp->if_drv_flags & IFF_DRV_RUNNING) { @@ -3362,3 +3272,235 @@ set_tcb_field_ulp(struct cpl_set_tcb_field *req, unsigned int tid, txpkt->len = htonl(V_ULPTX_NFLITS(sizeof(*req) / 8)); mk_set_tcb_field(req, tid, word, mask, val); } + +void +t3_iterate(void (*func)(struct adapter *, void *), void *arg) +{ + struct adapter *sc; + + mtx_lock(&t3_list_lock); + SLIST_FOREACH(sc, &t3_list, link) { + /* + * func should not make any assumptions about what state sc is + * in - the only guarantee is that sc->sc_lock is a valid lock. + */ + func(sc, arg); + } + mtx_unlock(&t3_list_lock); +} + +#ifdef TCP_OFFLOAD +static int +toe_capability(struct port_info *pi, int enable) +{ + int rc; + struct adapter *sc = pi->adapter; + + ADAPTER_LOCK_ASSERT_OWNED(sc); + + if (!is_offload(sc)) + return (ENODEV); + + if (enable) { + if (!(sc->flags & FULL_INIT_DONE)) { + log(LOG_WARNING, + "You must enable a cxgb interface first\n"); + return (EAGAIN); + } + + if (isset(&sc->offload_map, pi->port_id)) + return (0); + + if (!(sc->flags & TOM_INIT_DONE)) { + rc = t3_activate_uld(sc, ULD_TOM); + if (rc == EAGAIN) { + log(LOG_WARNING, + "You must kldload t3_tom.ko before trying " + "to enable TOE on a cxgb interface.\n"); + } + if (rc != 0) + return (rc); + KASSERT(sc->tom_softc != NULL, + ("%s: TOM activated but softc NULL", __func__)); + KASSERT(sc->flags & TOM_INIT_DONE, + ("%s: TOM activated but flag not set", __func__)); + } + + setbit(&sc->offload_map, pi->port_id); + + /* + * XXX: Temporary code to allow iWARP to be enabled when TOE is + * enabled on any port. Need to figure out how to enable, + * disable, load, and unload iWARP cleanly. + */ + if (!isset(&sc->offload_map, MAX_NPORTS) && + t3_activate_uld(sc, ULD_IWARP) == 0) + setbit(&sc->offload_map, MAX_NPORTS); + } else { + if (!isset(&sc->offload_map, pi->port_id)) + return (0); + + KASSERT(sc->flags & TOM_INIT_DONE, + ("%s: TOM never initialized?", __func__)); + clrbit(&sc->offload_map, pi->port_id); + } + + return (0); +} + +/* + * Add an upper layer driver to the global list. + */ +int +t3_register_uld(struct uld_info *ui) +{ + int rc = 0; + struct uld_info *u; + + mtx_lock(&t3_uld_list_lock); + SLIST_FOREACH(u, &t3_uld_list, link) { + if (u->uld_id == ui->uld_id) { + rc = EEXIST; + goto done; + } + } + + SLIST_INSERT_HEAD(&t3_uld_list, ui, link); + ui->refcount = 0; +done: + mtx_unlock(&t3_uld_list_lock); + return (rc); +} + +int +t3_unregister_uld(struct uld_info *ui) +{ + int rc = EINVAL; + struct uld_info *u; + + mtx_lock(&t3_uld_list_lock); + + SLIST_FOREACH(u, &t3_uld_list, link) { + if (u == ui) { + if (ui->refcount > 0) { + rc = EBUSY; + goto done; + } + + SLIST_REMOVE(&t3_uld_list, ui, uld_info, link); + rc = 0; + goto done; + } + } +done: + mtx_unlock(&t3_uld_list_lock); + return (rc); +} + +int +t3_activate_uld(struct adapter *sc, int id) +{ + int rc = EAGAIN; + struct uld_info *ui; + + mtx_lock(&t3_uld_list_lock); + + SLIST_FOREACH(ui, &t3_uld_list, link) { + if (ui->uld_id == id) { + rc = ui->activate(sc); + if (rc == 0) + ui->refcount++; + goto done; + } + } +done: + mtx_unlock(&t3_uld_list_lock); + + return (rc); +} + +int +t3_deactivate_uld(struct adapter *sc, int id) +{ + int rc = EINVAL; + struct uld_info *ui; + + mtx_lock(&t3_uld_list_lock); + + SLIST_FOREACH(ui, &t3_uld_list, link) { + if (ui->uld_id == id) { + rc = ui->deactivate(sc); + if (rc == 0) + ui->refcount--; + goto done; + } + } +done: + mtx_unlock(&t3_uld_list_lock); + + return (rc); +} + +static int +cpl_not_handled(struct sge_qset *qs __unused, struct rsp_desc *r __unused, + struct mbuf *m) +{ + m_freem(m); + return (EDOOFUS); +} + +int +t3_register_cpl_handler(struct adapter *sc, int opcode, cpl_handler_t h) +{ + uintptr_t *loc, new; + + if (opcode >= NUM_CPL_HANDLERS) + return (EINVAL); + + new = h ? (uintptr_t)h : (uintptr_t)cpl_not_handled; + loc = (uintptr_t *) &sc->cpl_handler[opcode]; + atomic_store_rel_ptr(loc, new); + + return (0); +} +#endif + +static int +cxgbc_mod_event(module_t mod, int cmd, void *arg) +{ + int rc = 0; + + switch (cmd) { + case MOD_LOAD: + mtx_init(&t3_list_lock, "T3 adapters", 0, MTX_DEF); + SLIST_INIT(&t3_list); +#ifdef TCP_OFFLOAD + mtx_init(&t3_uld_list_lock, "T3 ULDs", 0, MTX_DEF); + SLIST_INIT(&t3_uld_list); +#endif + break; + + case MOD_UNLOAD: +#ifdef TCP_OFFLOAD + mtx_lock(&t3_uld_list_lock); + if (!SLIST_EMPTY(&t3_uld_list)) { + rc = EBUSY; + mtx_unlock(&t3_uld_list_lock); + break; + } + mtx_unlock(&t3_uld_list_lock); + mtx_destroy(&t3_uld_list_lock); +#endif + mtx_lock(&t3_list_lock); + if (!SLIST_EMPTY(&t3_list)) { + rc = EBUSY; + mtx_unlock(&t3_list_lock); + break; + } + mtx_unlock(&t3_list_lock); + mtx_destroy(&t3_list_lock); + break; + } + + return (rc); +} diff --git a/sys/dev/cxgb/cxgb_offload.c b/sys/dev/cxgb/cxgb_offload.c deleted file mode 100644 index 2ae83bd3d0a2..000000000000 --- a/sys/dev/cxgb/cxgb_offload.c +++ /dev/null @@ -1,465 +0,0 @@ -/************************************************************************** - -Copyright (c) 2007-2008, Chelsio Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2. Neither the name of the Chelsio Corporation nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - - -***************************************************************************/ - - -#include -__FBSDID("$FreeBSD$"); - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -#include - -#define VALIDATE_TID 0 -MALLOC_DEFINE(M_CXGB, "cxgb", "Chelsio 10 Gigabit Ethernet and services"); - -TAILQ_HEAD(, cxgb_client) client_list; -TAILQ_HEAD(, t3cdev) ofld_dev_list; - - -static struct mtx cxgb_db_lock; - - -static int inited = 0; - -static inline int -offload_activated(struct t3cdev *tdev) -{ - struct adapter *adapter = tdev2adap(tdev); - - return (isset(&adapter->open_device_map, OFFLOAD_DEVMAP_BIT)); -} - -static inline void -register_tdev(struct t3cdev *tdev) -{ - static int unit; - - mtx_lock(&cxgb_db_lock); - snprintf(tdev->name, sizeof(tdev->name), "ofld_dev%d", unit++); - TAILQ_INSERT_TAIL(&ofld_dev_list, tdev, entry); - mtx_unlock(&cxgb_db_lock); -} - -static inline void -unregister_tdev(struct t3cdev *tdev) -{ - if (!inited) - return; - - mtx_lock(&cxgb_db_lock); - TAILQ_REMOVE(&ofld_dev_list, tdev, entry); - mtx_unlock(&cxgb_db_lock); -} - -#ifndef TCP_OFFLOAD_DISABLE -/** - * cxgb_register_client - register an offload client - * @client: the client - * - * Add the client to the client list, - * and call backs the client for each activated offload device - */ -void -cxgb_register_client(struct cxgb_client *client) -{ - struct t3cdev *tdev; - - mtx_lock(&cxgb_db_lock); - TAILQ_INSERT_TAIL(&client_list, client, client_entry); - - if (client->add) { - TAILQ_FOREACH(tdev, &ofld_dev_list, entry) { - if (offload_activated(tdev)) { - client->add(tdev); - } else - CTR1(KTR_CXGB, - "cxgb_register_client: %p not activated", tdev); - - } - } - mtx_unlock(&cxgb_db_lock); -} - -/** - * cxgb_unregister_client - unregister an offload client - * @client: the client - * - * Remove the client to the client list, - * and call backs the client for each activated offload device. - */ -void -cxgb_unregister_client(struct cxgb_client *client) -{ - struct t3cdev *tdev; - - mtx_lock(&cxgb_db_lock); - TAILQ_REMOVE(&client_list, client, client_entry); - - if (client->remove) { - TAILQ_FOREACH(tdev, &ofld_dev_list, entry) { - if (offload_activated(tdev)) - client->remove(tdev); - } - } - mtx_unlock(&cxgb_db_lock); -} - -/** - * cxgb_add_clients - activate register clients for an offload device - * @tdev: the offload device - * - * Call backs all registered clients once a offload device is activated - */ -void -cxgb_add_clients(struct t3cdev *tdev) -{ - struct cxgb_client *client; - - mtx_lock(&cxgb_db_lock); - TAILQ_FOREACH(client, &client_list, client_entry) { - if (client->add) - client->add(tdev); - } - mtx_unlock(&cxgb_db_lock); -} - -/** - * cxgb_remove_clients - activate register clients for an offload device - * @tdev: the offload device - * - * Call backs all registered clients once a offload device is deactivated - */ -void -cxgb_remove_clients(struct t3cdev *tdev) -{ - struct cxgb_client *client; - - mtx_lock(&cxgb_db_lock); - TAILQ_FOREACH(client, &client_list, client_entry) { - if (client->remove) - client->remove(tdev); - } - mtx_unlock(&cxgb_db_lock); -} -#endif - -/** - * cxgb_ofld_recv - process n received offload packets - * @dev: the offload device - * @m: an array of offload packets - * @n: the number of offload packets - * - * Process an array of ingress offload packets. Each packet is forwarded - * to any active network taps and then passed to the offload device's receive - * method. We optimize passing packets to the receive method by passing - * it the whole array at once except when there are active taps. - */ -int -cxgb_ofld_recv(struct t3cdev *dev, struct mbuf **m, int n) -{ - - return dev->recv(dev, m, n); -} - -/* - * Dummy handler for Rx offload packets in case we get an offload packet before - * proper processing is setup. This complains and drops the packet as it isn't - * normal to get offload packets at this stage. - */ -static int -rx_offload_blackhole(struct t3cdev *dev, struct mbuf **m, int n) -{ - while (n--) - m_freem(m[n]); - return 0; -} - -static void -dummy_neigh_update(struct t3cdev *dev, struct rtentry *neigh, uint8_t *enaddr, - struct sockaddr *sa) -{ -} - -void -cxgb_set_dummy_ops(struct t3cdev *dev) -{ - dev->recv = rx_offload_blackhole; - dev->arp_update = dummy_neigh_update; -} - -static int -do_smt_write_rpl(struct t3cdev *dev, struct mbuf *m) -{ - struct cpl_smt_write_rpl *rpl = cplhdr(m); - - if (rpl->status != CPL_ERR_NONE) - log(LOG_ERR, - "Unexpected SMT_WRITE_RPL status %u for entry %u\n", - rpl->status, GET_TID(rpl)); - - return CPL_RET_BUF_DONE; -} - -static int -do_l2t_write_rpl(struct t3cdev *dev, struct mbuf *m) -{ - struct cpl_l2t_write_rpl *rpl = cplhdr(m); - - if (rpl->status != CPL_ERR_NONE) - log(LOG_ERR, - "Unexpected L2T_WRITE_RPL status %u for entry %u\n", - rpl->status, GET_TID(rpl)); - - return CPL_RET_BUF_DONE; -} - -static int -do_rte_write_rpl(struct t3cdev *dev, struct mbuf *m) -{ - struct cpl_rte_write_rpl *rpl = cplhdr(m); - - if (rpl->status != CPL_ERR_NONE) - log(LOG_ERR, - "Unexpected L2T_WRITE_RPL status %u for entry %u\n", - rpl->status, GET_TID(rpl)); - - return CPL_RET_BUF_DONE; -} - -static int -do_set_tcb_rpl(struct t3cdev *dev, struct mbuf *m) -{ - struct cpl_set_tcb_rpl *rpl = cplhdr(m); - - if (rpl->status != CPL_ERR_NONE) - log(LOG_ERR, - "Unexpected SET_TCB_RPL status %u for tid %u\n", - rpl->status, GET_TID(rpl)); - return CPL_RET_BUF_DONE; -} - -static int -do_trace(struct t3cdev *dev, struct mbuf *m) -{ -#if 0 - struct cpl_trace_pkt *p = cplhdr(m); - - - skb->protocol = 0xffff; - skb->dev = dev->lldev; - skb_pull(skb, sizeof(*p)); - skb->mac.raw = mtod(m, (char *)); - netif_receive_skb(skb); -#endif - return 0; -} - -/* - * Process a received packet with an unknown/unexpected CPL opcode. - */ -static int -do_bad_cpl(struct t3cdev *dev, struct mbuf *m) -{ - log(LOG_ERR, "%s: received bad CPL command 0x%x\n", dev->name, - 0xFF & *mtod(m, uint32_t *)); - return (CPL_RET_BUF_DONE | CPL_RET_BAD_MSG); -} - -/* - * Handlers for each CPL opcode - */ -static cpl_handler_func cpl_handlers[256]; - -/* - * T3CDEV's receive method. - */ -int -process_rx(struct t3cdev *dev, struct mbuf **m, int n) -{ - while (n--) { - struct mbuf *m0 = *m++; - unsigned int opcode = G_OPCODE(ntohl(m0->m_pkthdr.csum_data)); - int ret; - - DPRINTF("processing op=0x%x m=%p data=%p\n", opcode, m0, m0->m_data); - - ret = cpl_handlers[opcode] (dev, m0); - -#if VALIDATE_TID - if (ret & CPL_RET_UNKNOWN_TID) { - union opcode_tid *p = cplhdr(m0); - - log(LOG_ERR, "%s: CPL message (opcode %u) had " - "unknown TID %u\n", dev->name, opcode, - G_TID(ntohl(p->opcode_tid))); - } -#endif - if (ret & CPL_RET_BUF_DONE) - m_freem(m0); - } - return 0; -} - -/* - * Add a new handler to the CPL dispatch table. A NULL handler may be supplied - * to unregister an existing handler. - */ -void -t3_register_cpl_handler(unsigned int opcode, cpl_handler_func h) -{ - if (opcode < NUM_CPL_CMDS) - cpl_handlers[opcode] = h ? h : do_bad_cpl; - else - log(LOG_ERR, "T3C: handler registration for " - "opcode %x failed\n", opcode); -} - -/* - * Allocate a chunk of memory using kmalloc or, if that fails, vmalloc. - * The allocated memory is cleared. - */ -void * -cxgb_alloc_mem(unsigned long size) -{ - - return malloc(size, M_CXGB, M_ZERO|M_NOWAIT); -} - -/* - * Free memory allocated through t3_alloc_mem(). - */ -void -cxgb_free_mem(void *addr) -{ - free(addr, M_CXGB); -} - -static __inline int -adap2type(struct adapter *adapter) -{ - int type = 0; - - switch (adapter->params.rev) { - case T3_REV_A: - type = T3A; - break; - case T3_REV_B: - case T3_REV_B2: - type = T3B; - break; - case T3_REV_C: - type = T3C; - break; - } - return type; -} - -void -cxgb_adapter_ofld(struct adapter *adapter) -{ - struct t3cdev *tdev = &adapter->tdev; - - cxgb_set_dummy_ops(tdev); - tdev->type = adap2type(adapter); - tdev->adapter = adapter; - register_tdev(tdev); - -} - -void -cxgb_adapter_unofld(struct adapter *adapter) -{ - struct t3cdev *tdev = &adapter->tdev; - - tdev->recv = NULL; - tdev->arp_update = NULL; - unregister_tdev(tdev); -} - -void -cxgb_offload_init(void) -{ - int i; - - if (inited++) - return; - - mtx_init(&cxgb_db_lock, "ofld db", NULL, MTX_DEF); - - TAILQ_INIT(&client_list); - TAILQ_INIT(&ofld_dev_list); - - for (i = 0; i < 0x100; ++i) - cpl_handlers[i] = do_bad_cpl; - - t3_register_cpl_handler(CPL_SMT_WRITE_RPL, do_smt_write_rpl); - t3_register_cpl_handler(CPL_RTE_WRITE_RPL, do_rte_write_rpl); - t3_register_cpl_handler(CPL_L2T_WRITE_RPL, do_l2t_write_rpl); - - t3_register_cpl_handler(CPL_SET_TCB_RPL, do_set_tcb_rpl); - t3_register_cpl_handler(CPL_TRACE_PKT, do_trace); - -} - -void -cxgb_offload_exit(void) -{ - - if (--inited) - return; - - mtx_destroy(&cxgb_db_lock); -} - -MODULE_VERSION(if_cxgb, 1); diff --git a/sys/dev/cxgb/cxgb_offload.h b/sys/dev/cxgb/cxgb_offload.h index a8b858e71031..364ab43efc8d 100644 --- a/sys/dev/cxgb/cxgb_offload.h +++ b/sys/dev/cxgb/cxgb_offload.h @@ -1,4 +1,3 @@ - /************************************************************************** Copyright (c) 2007-2008, Chelsio Inc. @@ -33,221 +32,93 @@ POSSIBILITY OF SUCH DAMAGE. #ifndef _CXGB_OFFLOAD_H #define _CXGB_OFFLOAD_H -#include -#include - -MALLOC_DECLARE(M_CXGB); - -struct adapter; -struct cxgb_client; - -void cxgb_offload_init(void); -void cxgb_offload_exit(void); - -void cxgb_adapter_ofld(struct adapter *adapter); -void cxgb_adapter_unofld(struct adapter *adapter); -int cxgb_offload_activate(struct adapter *adapter); -void cxgb_offload_deactivate(struct adapter *adapter); -int cxgb_ofld_recv(struct t3cdev *dev, struct mbuf **m, int n); - -void cxgb_set_dummy_ops(struct t3cdev *dev); - - -/* - * Client registration. Users of T3 driver must register themselves. - * The T3 driver will call the add function of every client for each T3 - * adapter activated, passing up the t3cdev ptr. Each client fills out an - * array of callback functions to process CPL messages. - */ - -void cxgb_register_client(struct cxgb_client *client); -void cxgb_unregister_client(struct cxgb_client *client); -void cxgb_add_clients(struct t3cdev *tdev); -void cxgb_remove_clients(struct t3cdev *tdev); - -typedef int (*cxgb_cpl_handler_func)(struct t3cdev *dev, - struct mbuf *m, void *ctx); - -struct l2t_entry; -struct cxgb_client { - char *name; - void (*add) (struct t3cdev *); - void (*remove) (struct t3cdev *); - cxgb_cpl_handler_func *handlers; - int (*redirect)(void *ctx, struct rtentry *old, - struct rtentry *new, - struct l2t_entry *l2t); - TAILQ_ENTRY(cxgb_client) client_entry; +#ifdef TCP_OFFLOAD +enum { + ULD_TOM = 1, + ULD_IWARP = 2, }; -/* - * TID allocation services. - */ -int cxgb_alloc_atid(struct t3cdev *dev, struct cxgb_client *client, - void *ctx); -int cxgb_alloc_stid(struct t3cdev *dev, struct cxgb_client *client, - void *ctx); -void *cxgb_free_atid(struct t3cdev *dev, int atid); -void cxgb_free_stid(struct t3cdev *dev, int stid); -void *cxgb_get_lctx(struct t3cdev *tdev, int stid); -void cxgb_insert_tid(struct t3cdev *dev, struct cxgb_client *client, - void *ctx, - unsigned int tid); -void cxgb_queue_tid_release(struct t3cdev *dev, unsigned int tid); -void cxgb_remove_tid(struct t3cdev *dev, void *ctx, unsigned int tid); +struct adapter; +struct uld_info { + SLIST_ENTRY(uld_info) link; + int refcount; + int uld_id; + int (*activate)(struct adapter *); + int (*deactivate)(struct adapter *); +}; -struct toe_tid_entry { - struct cxgb_client *client; - void *ctx; +struct tom_tunables { + int sndbuf; + int ddp; + int indsz; + int ddp_thres; }; /* CPL message priority levels */ enum { CPL_PRIORITY_DATA = 0, /* data messages */ - CPL_PRIORITY_SETUP = 1, /* connection setup messages */ - CPL_PRIORITY_TEARDOWN = 0, /* connection teardown messages */ - CPL_PRIORITY_LISTEN = 1, /* listen start/stop messages */ - CPL_PRIORITY_ACK = 1, /* RX ACK messages */ CPL_PRIORITY_CONTROL = 1 /* offload control messages */ }; -/* Flags for return value of CPL message handlers */ -enum { - CPL_RET_BUF_DONE = 1, // buffer processing done, buffer may be freed - CPL_RET_BAD_MSG = 2, // bad CPL message (e.g., unknown opcode) - CPL_RET_UNKNOWN_TID = 4 // unexpected unknown TID -}; +#define S_HDR_NDESC 0 +#define M_HDR_NDESC 0xf +#define V_HDR_NDESC(x) ((x) << S_HDR_NDESC) +#define G_HDR_NDESC(x) (((x) >> S_HDR_NDESC) & M_HDR_NDESC) -typedef int (*cpl_handler_func)(struct t3cdev *dev, struct mbuf *m); +#define S_HDR_QSET 4 +#define M_HDR_QSET 0xf +#define V_HDR_QSET(x) ((x) << S_HDR_QSET) +#define G_HDR_QSET(x) (((x) >> S_HDR_QSET) & M_HDR_QSET) -/* - * Returns a pointer to the first byte of the CPL header in an sk_buff that - * contains a CPL message. - */ -static inline void *cplhdr(struct mbuf *m) +#define S_HDR_CTRL 8 +#define V_HDR_CTRL(x) ((x) << S_HDR_CTRL) +#define F_HDR_CTRL V_HDR_CTRL(1U) + +#define S_HDR_DF 9 +#define V_HDR_DF(x) ((x) << S_HDR_DF) +#define F_HDR_DF V_HDR_DF(1U) + +#define S_HDR_SGL 10 +#define V_HDR_SGL(x) ((x) << S_HDR_SGL) +#define F_HDR_SGL V_HDR_SGL(1U) + +struct ofld_hdr { - return mtod(m, uint8_t *); -} - -void t3_register_cpl_handler(unsigned int opcode, cpl_handler_func h); - -union listen_entry { - struct toe_tid_entry toe_tid; - union listen_entry *next; -}; - -union active_open_entry { - struct toe_tid_entry toe_tid; - union active_open_entry *next; + void *sgl; /* SGL, if F_HDR_SGL set in flags */ + int plen; /* amount of payload (in bytes) */ + int flags; }; /* - * Holds the size, base address, free list start, etc of the TID, server TID, - * and active-open TID tables for a offload device. - * The tables themselves are allocated dynamically. + * Convenience function for fixed size CPLs that fit in 1 desc. */ -struct tid_info { - struct toe_tid_entry *tid_tab; - unsigned int ntids; - volatile unsigned int tids_in_use; - - union listen_entry *stid_tab; - unsigned int nstids; - unsigned int stid_base; - - union active_open_entry *atid_tab; - unsigned int natids; - unsigned int atid_base; - - /* - * The following members are accessed R/W so we put them in their own - * cache lines. - * - * XXX We could combine the atid fields above with the lock here since - * atids are use once (unlike other tids). OTOH the above fields are - * usually in cache due to tid_tab. - */ - struct mtx atid_lock /* ____cacheline_aligned_in_smp */; - union active_open_entry *afree; - unsigned int atids_in_use; - - struct mtx stid_lock /*____cacheline_aligned */; - union listen_entry *sfree; - unsigned int stids_in_use; -}; - -struct t3c_data { - struct t3cdev *dev; - unsigned int tx_max_chunk; /* max payload for TX_DATA */ - unsigned int max_wrs; /* max in-flight WRs per connection */ - unsigned int nmtus; - const unsigned short *mtus; - struct tid_info tid_maps; - - struct toe_tid_entry *tid_release_list; - struct mtx tid_release_lock; - struct task tid_release_task; -}; - -/* - * t3cdev -> toe_data accessor - */ -#define T3C_DATA(dev) (*(struct t3c_data **)&(dev)->l4opt) - -/* - * Map an ATID or STID to their entries in the corresponding TID tables. - */ -static inline union active_open_entry *atid2entry(const struct tid_info *t, - unsigned int atid) +#define M_GETHDR_OFLD(qset, ctrl, cpl) \ + m_gethdr_ofld(qset, ctrl, sizeof(*cpl), (void **)&cpl) +static inline struct mbuf * +m_gethdr_ofld(int qset, int ctrl, int cpllen, void **cpl) { - return &t->atid_tab[atid - t->atid_base]; + struct mbuf *m; + struct ofld_hdr *oh; + + m = m_gethdr(M_NOWAIT, MT_DATA); + if (m == NULL) + return (NULL); + + oh = mtod(m, struct ofld_hdr *); + oh->flags = V_HDR_NDESC(1) | V_HDR_QSET(qset) | V_HDR_CTRL(ctrl); + *cpl = (void *)(oh + 1); + m->m_pkthdr.len = m->m_len = sizeof(*oh) + cpllen; + + return (m); } +int t3_register_uld(struct uld_info *); +int t3_unregister_uld(struct uld_info *); +int t3_activate_uld(struct adapter *, int); +int t3_deactivate_uld(struct adapter *, int); +#endif /* TCP_OFFLOAD */ -static inline union listen_entry *stid2entry(const struct tid_info *t, - unsigned int stid) -{ - return &t->stid_tab[stid - t->stid_base]; -} +#define CXGB_UNIMPLEMENTED() \ + panic("IMPLEMENT: %s:%s:%d", __FUNCTION__, __FILE__, __LINE__) -/* - * Find the connection corresponding to a TID. - */ -static inline struct toe_tid_entry *lookup_tid(const struct tid_info *t, - unsigned int tid) -{ - return tid < t->ntids ? &(t->tid_tab[tid]) : NULL; -} - -/* - * Find the connection corresponding to a server TID. - */ -static inline struct toe_tid_entry *lookup_stid(const struct tid_info *t, - unsigned int tid) -{ - if (tid < t->stid_base || tid >= t->stid_base + t->nstids) - return NULL; - return &(stid2entry(t, tid)->toe_tid); -} - -/* - * Find the connection corresponding to an active-open TID. - */ -static inline struct toe_tid_entry *lookup_atid(const struct tid_info *t, - unsigned int tid) -{ - if (tid < t->atid_base || tid >= t->atid_base + t->natids) - return NULL; - return &(atid2entry(t, tid)->toe_tid); -} - -void *cxgb_alloc_mem(unsigned long size); -void cxgb_free_mem(void *addr); -void cxgb_neigh_update(struct rtentry *rt, uint8_t *enaddr, struct sockaddr *sa); -void cxgb_redirect(struct rtentry *old, struct rtentry *new, struct sockaddr *sa); -int process_rx(struct t3cdev *dev, struct mbuf **m, int n); -int attach_t3cdev(struct t3cdev *dev); -void detach_t3cdev(struct t3cdev *dev); - -#define CXGB_UNIMPLEMENTED() panic("IMPLEMENT: %s:%s:%d", __FUNCTION__, __FILE__, __LINE__) #endif diff --git a/sys/dev/cxgb/cxgb_osdep.h b/sys/dev/cxgb/cxgb_osdep.h index 5dc256dd23a6..37171d94f5ac 100644 --- a/sys/dev/cxgb/cxgb_osdep.h +++ b/sys/dev/cxgb/cxgb_osdep.h @@ -67,27 +67,6 @@ struct t3_mbuf_hdr { } while (0) #endif -#define m_get_priority(m) ((uintptr_t)(m)->m_pkthdr.rcvif) -#define m_set_priority(m, pri) ((m)->m_pkthdr.rcvif = (struct ifnet *)((uintptr_t)pri)) -#define m_set_sgl(m, sgl) ((m)->m_pkthdr.header = (sgl)) -#define m_get_sgl(m) ((bus_dma_segment_t *)(m)->m_pkthdr.header) -#define m_set_sgllen(m, len) ((m)->m_pkthdr.ether_vtag = len) -#define m_get_sgllen(m) ((m)->m_pkthdr.ether_vtag) - -/* - * XXX FIXME - */ -#define m_set_toep(m, a) ((m)->m_pkthdr.header = (a)) -#define m_get_toep(m) ((m)->m_pkthdr.header) -#define m_set_handler(m, handler) ((m)->m_pkthdr.header = (handler)) - -#define m_set_socket(m, a) ((m)->m_pkthdr.header = (a)) -#define m_get_socket(m) ((m)->m_pkthdr.header) - -#define KTR_CXGB KTR_SPARE2 - -#define MT_DONTFREE 128 - #if __FreeBSD_version < 800054 #if defined (__GNUC__) #if #cpu(i386) || defined __i386 || defined i386 || defined __i386__ || #cpu(x86_64) || defined __x86_64__ @@ -123,13 +102,6 @@ struct t3_mbuf_hdr { #define CXGB_TX_CLEANUP_THRESHOLD 32 - -#ifdef DEBUG_PRINT -#define DPRINTF printf -#else -#define DPRINTF(...) -#endif - #define TX_MAX_SIZE (1 << 16) /* 64KB */ #define TX_MAX_SEGS 36 /* maximum supported by card */ @@ -199,7 +171,6 @@ static const int debug_flags = DBG_RX; #define test_and_clear_bit(bit, p) atomic_cmpset_int((p), ((*(p)) | (1< #include #include +#include #include #include @@ -78,6 +79,10 @@ __FBSDID("$FreeBSD$"); int txq_fills = 0; int multiq_tx_enable = 1; +#ifdef TCP_OFFLOAD +CTASSERT(NUM_CPL_HANDLERS >= NUM_CPL_CMDS); +#endif + extern struct sysctl_oid_list sysctl__hw_cxgb_children; int cxgb_txq_buf_ring_size = TX_ETH_Q_SIZE; TUNABLE_INT("hw.cxgb.txq_mr_size", &cxgb_txq_buf_ring_size); @@ -471,10 +476,17 @@ static int get_imm_packet(adapter_t *sc, const struct rsp_desc *resp, struct mbuf *m) { - m->m_len = m->m_pkthdr.len = IMMED_PKT_SIZE; + if (resp->rss_hdr.opcode == CPL_RX_DATA) { + const struct cpl_rx_data *cpl = (const void *)&resp->imm_data[0]; + m->m_len = sizeof(*cpl) + ntohs(cpl->len); + } else if (resp->rss_hdr.opcode == CPL_RX_PKT) { + const struct cpl_rx_pkt *cpl = (const void *)&resp->imm_data[0]; + m->m_len = sizeof(*cpl) + ntohs(cpl->len); + } else + m->m_len = IMMED_PKT_SIZE; m->m_ext.ext_buf = NULL; m->m_ext.ext_type = 0; - memcpy(mtod(m, uint8_t *), resp->imm_data, IMMED_PKT_SIZE); + memcpy(mtod(m, uint8_t *), resp->imm_data, m->m_len); return (0); } @@ -703,7 +715,8 @@ refill_fl(adapter_t *sc, struct sge_fl *q, int n) cb_arg.error = 0; while (n--) { /* - * We only allocate a cluster, mbuf allocation happens after rx + * We allocate an uninitialized mbuf + cluster, mbuf is + * initialized after rx. */ if (q->zone == zone_pack) { if ((m = m_getcl(M_NOWAIT, MT_NOINIT, M_PKTHDR)) == NULL) @@ -1170,57 +1183,6 @@ calc_tx_descs(const struct mbuf *m, int nsegs) return flits_to_desc(flits); } -static unsigned int -busdma_map_mbufs(struct mbuf **m, struct sge_txq *txq, - struct tx_sw_desc *txsd, bus_dma_segment_t *segs, int *nsegs) -{ - struct mbuf *m0; - int err, pktlen, pass = 0; - bus_dma_tag_t tag = txq->entry_tag; - -retry: - err = 0; - m0 = *m; - pktlen = m0->m_pkthdr.len; -#if defined(__i386__) || defined(__amd64__) - if (busdma_map_sg_collapse(tag, txsd->map, m, segs, nsegs) == 0) { - goto done; - } else -#endif - err = bus_dmamap_load_mbuf_sg(tag, txsd->map, m0, segs, nsegs, 0); - - if (err == 0) { - goto done; - } - if (err == EFBIG && pass == 0) { - pass = 1; - /* Too many segments, try to defrag */ - m0 = m_defrag(m0, M_DONTWAIT); - if (m0 == NULL) { - m_freem(*m); - *m = NULL; - return (ENOBUFS); - } - *m = m0; - goto retry; - } else if (err == ENOMEM) { - return (err); - } if (err) { - if (cxgb_debug) - printf("map failure err=%d pktlen=%d\n", err, pktlen); - m_freem(m0); - *m = NULL; - return (err); - } -done: -#if !defined(__i386__) && !defined(__amd64__) - bus_dmamap_sync(tag, txsd->map, BUS_DMASYNC_PREWRITE); -#endif - txsd->flags |= TX_SW_DESC_MAPPED; - - return (0); -} - /** * make_sgl - populate a scatter/gather list for a packet * @sgp: the SGL to populate @@ -1328,10 +1290,10 @@ write_wr_hdr_sgl(unsigned int ndesc, struct tx_desc *txd, struct txq_state *txqs if (__predict_true(ndesc == 1)) { set_wr_hdr(wrp, htonl(F_WR_SOP | F_WR_EOP | V_WR_DATATYPE(1) | - V_WR_SGLSFLT(flits)) | wr_hi, - htonl(V_WR_LEN(flits + sgl_flits) | - V_WR_GEN(txqs->gen)) | wr_lo); - /* XXX gen? */ + V_WR_SGLSFLT(flits)) | wr_hi, + htonl(V_WR_LEN(flits + sgl_flits) | V_WR_GEN(txqs->gen)) | + wr_lo); + wr_gen2(txd, txqs->gen); } else { @@ -1813,34 +1775,23 @@ cxgb_qflush(struct ifnet *ifp) * its entirety. */ static __inline void -write_imm(struct tx_desc *d, struct mbuf *m, +write_imm(struct tx_desc *d, caddr_t src, unsigned int len, unsigned int gen) { - struct work_request_hdr *from = mtod(m, struct work_request_hdr *); + struct work_request_hdr *from = (struct work_request_hdr *)src; struct work_request_hdr *to = (struct work_request_hdr *)d; uint32_t wr_hi, wr_lo; - if (len > WR_LEN) - panic("len too big %d\n", len); - if (len < sizeof(*from)) - panic("len too small %d", len); + KASSERT(len <= WR_LEN && len >= sizeof(*from), + ("%s: invalid len %d", __func__, len)); memcpy(&to[1], &from[1], len - sizeof(*from)); wr_hi = from->wrh_hi | htonl(F_WR_SOP | F_WR_EOP | - V_WR_BCNTLFLT(len & 7)); - wr_lo = from->wrh_lo | htonl(V_WR_GEN(gen) | - V_WR_LEN((len + 7) / 8)); + V_WR_BCNTLFLT(len & 7)); + wr_lo = from->wrh_lo | htonl(V_WR_GEN(gen) | V_WR_LEN((len + 7) / 8)); set_wr_hdr(to, wr_hi, wr_lo); wmb(); wr_gen2(d, gen); - - /* - * This check is a hack we should really fix the logic so - * that this can't happen - */ - if (m->m_type != MT_DONTFREE) - m_freem(m); - } /** @@ -1908,12 +1859,6 @@ reclaim_completed_tx_imm(struct sge_txq *q) q->cleaned += reclaim; } -static __inline int -immediate(const struct mbuf *m) -{ - return m->m_len <= WR_LEN && m->m_pkthdr.len <= WR_LEN ; -} - /** * ctrl_xmit - send a packet through an SGE control Tx queue * @adap: the adapter @@ -1931,11 +1876,8 @@ ctrl_xmit(adapter_t *adap, struct sge_qset *qs, struct mbuf *m) struct work_request_hdr *wrp = mtod(m, struct work_request_hdr *); struct sge_txq *q = &qs->txq[TXQ_CTRL]; - if (__predict_false(!immediate(m))) { - m_freem(m); - return 0; - } - + KASSERT(m->m_len <= WR_LEN, ("%s: bad tx data", __func__)); + wrp->wrh_hi |= htonl(F_WR_SOP | F_WR_EOP); wrp->wrh_lo = htonl(V_WR_TID(q->token)); @@ -1950,7 +1892,7 @@ again: reclaim_completed_tx_imm(q); } goto again; } - write_imm(&q->desc[q->pidx], m, m->m_len, q->gen); + write_imm(&q->desc[q->pidx], m->m_data, m->m_len, q->gen); q->in_use++; if (++q->pidx >= q->size) { @@ -1960,7 +1902,9 @@ again: reclaim_completed_tx_imm(q); TXQ_UNLOCK(qs); wmb(); t3_write_reg(adap, A_SG_KDOORBELL, - F_SELEGRCNTX | V_EGRCNTX(q->cntxt_id)); + F_SELEGRCNTX | V_EGRCNTX(q->cntxt_id)); + + m_free(m); return (0); } @@ -1985,7 +1929,8 @@ again: reclaim_completed_tx_imm(q); while (q->in_use < q->size && (m = mbufq_dequeue(&q->sendq)) != NULL) { - write_imm(&q->desc[q->pidx], m, m->m_len, q->gen); + write_imm(&q->desc[q->pidx], m->m_data, m->m_len, q->gen); + m_free(m); if (++q->pidx >= q->size) { q->pidx = 0; @@ -2239,6 +2184,7 @@ is_new_response(const struct rsp_desc *r, /* How long to delay the next interrupt in case of memory shortage, in 0.1us. */ #define NOMEM_INTR_DELAY 2500 +#ifdef TCP_OFFLOAD /** * write_ofld_wr - write an offload work request * @adap: the adapter @@ -2252,70 +2198,65 @@ is_new_response(const struct rsp_desc *r, * data already carry the work request with most fields populated. */ static void -write_ofld_wr(adapter_t *adap, struct mbuf *m, - struct sge_txq *q, unsigned int pidx, - unsigned int gen, unsigned int ndesc, - bus_dma_segment_t *segs, unsigned int nsegs) +write_ofld_wr(adapter_t *adap, struct mbuf *m, struct sge_txq *q, + unsigned int pidx, unsigned int gen, unsigned int ndesc) { unsigned int sgl_flits, flits; + int i, idx, nsegs, wrlen; struct work_request_hdr *from; - struct sg_ent *sgp, sgl[TX_MAX_SEGS / 2 + 1]; + struct sg_ent *sgp, t3sgl[TX_MAX_SEGS / 2 + 1]; struct tx_desc *d = &q->desc[pidx]; struct txq_state txqs; - - if (immediate(m) && nsegs == 0) { - write_imm(d, m, m->m_len, gen); + struct sglist_seg *segs; + struct ofld_hdr *oh = mtod(m, struct ofld_hdr *); + struct sglist *sgl; + + from = (void *)(oh + 1); /* Start of WR within mbuf */ + wrlen = m->m_len - sizeof(*oh); + + if (!(oh->flags & F_HDR_SGL)) { + write_imm(d, (caddr_t)from, wrlen, gen); + + /* + * mbuf with "real" immediate tx data will be enqueue_wr'd by + * t3_push_frames and freed in wr_ack. Others, like those sent + * down by close_conn, t3_send_reset, etc. should be freed here. + */ + if (!(oh->flags & F_HDR_DF)) + m_free(m); return; } - /* Only TX_DATA builds SGLs */ - from = mtod(m, struct work_request_hdr *); - memcpy(&d->flit[1], &from[1], m->m_len - sizeof(*from)); + memcpy(&d->flit[1], &from[1], wrlen - sizeof(*from)); - flits = m->m_len / 8; - sgp = (ndesc == 1) ? (struct sg_ent *)&d->flit[flits] : sgl; + sgl = oh->sgl; + flits = wrlen / 8; + sgp = (ndesc == 1) ? (struct sg_ent *)&d->flit[flits] : t3sgl; + + nsegs = sgl->sg_nseg; + segs = sgl->sg_segs; + for (idx = 0, i = 0; i < nsegs; i++) { + KASSERT(segs[i].ss_len, ("%s: 0 len in sgl", __func__)); + if (i && idx == 0) + ++sgp; + sgp->len[idx] = htobe32(segs[i].ss_len); + sgp->addr[idx] = htobe64(segs[i].ss_paddr); + idx ^= 1; + } + if (idx) { + sgp->len[idx] = 0; + sgp->addr[idx] = 0; + } - make_sgl(sgp, segs, nsegs); sgl_flits = sgl_len(nsegs); - txqs.gen = gen; txqs.pidx = pidx; txqs.compl = 0; - write_wr_hdr_sgl(ndesc, d, &txqs, q, sgl, flits, sgl_flits, + write_wr_hdr_sgl(ndesc, d, &txqs, q, t3sgl, flits, sgl_flits, from->wrh_hi, from->wrh_lo); } -/** - * calc_tx_descs_ofld - calculate # of Tx descriptors for an offload packet - * @m: the packet - * - * Returns the number of Tx descriptors needed for the given offload - * packet. These packets are already fully constructed. - */ -static __inline unsigned int -calc_tx_descs_ofld(struct mbuf *m, unsigned int nsegs) -{ - unsigned int flits, cnt = 0; - int ndescs; - - if (m->m_len <= WR_LEN && nsegs == 0) - return (1); /* packet fits as immediate data */ - - /* - * This needs to be re-visited for TOE - */ - - cnt = nsegs; - - /* headers */ - flits = m->m_len / 8; - - ndescs = flits_to_desc(flits + sgl_len(cnt)); - - return (ndescs); -} - /** * ofld_xmit - send a packet through an offload queue * @adap: the adapter @@ -2327,28 +2268,19 @@ calc_tx_descs_ofld(struct mbuf *m, unsigned int nsegs) static int ofld_xmit(adapter_t *adap, struct sge_qset *qs, struct mbuf *m) { - int ret, nsegs; + int ret; unsigned int ndesc; unsigned int pidx, gen; struct sge_txq *q = &qs->txq[TXQ_OFLD]; - bus_dma_segment_t segs[TX_MAX_SEGS], *vsegs; - struct tx_sw_desc *stx; + struct ofld_hdr *oh = mtod(m, struct ofld_hdr *); - nsegs = m_get_sgllen(m); - vsegs = m_get_sgl(m); - ndesc = calc_tx_descs_ofld(m, nsegs); - busdma_map_sgl(vsegs, segs, nsegs); + ndesc = G_HDR_NDESC(oh->flags); - stx = &q->sdesc[q->pidx]; - TXQ_LOCK(qs); again: reclaim_completed_tx(qs, 16, TXQ_OFLD); ret = check_desc_avail(adap, q, m, ndesc, TXQ_OFLD); if (__predict_false(ret)) { if (ret == 1) { - printf("no ofld desc avail\n"); - - m_set_priority(m, ndesc); /* save for restart */ TXQ_UNLOCK(qs); return (EINTR); } @@ -2363,16 +2295,11 @@ again: reclaim_completed_tx(qs, 16, TXQ_OFLD); q->pidx -= q->size; q->gen ^= 1; } -#ifdef T3_TRACE - T3_TRACE5(adap->tb[q->cntxt_id & 7], - "ofld_xmit: ndesc %u, pidx %u, len %u, main %u, frags %u", - ndesc, pidx, skb->len, skb->len - skb->data_len, - skb_shinfo(skb)->nr_frags); -#endif + + write_ofld_wr(adap, m, q, pidx, gen, ndesc); + check_ring_tx_db(adap, q, 1); TXQ_UNLOCK(qs); - write_ofld_wr(adap, m, q, pidx, gen, ndesc, segs, nsegs); - check_ring_tx_db(adap, q, 1); return (0); } @@ -2389,16 +2316,15 @@ restart_offloadq(void *data, int npending) struct sge_qset *qs = data; struct sge_txq *q = &qs->txq[TXQ_OFLD]; adapter_t *adap = qs->port->adapter; - bus_dma_segment_t segs[TX_MAX_SEGS]; - struct tx_sw_desc *stx = &q->sdesc[q->pidx]; - int nsegs, cleaned; + int cleaned; TXQ_LOCK(qs); again: cleaned = reclaim_completed_tx(qs, 16, TXQ_OFLD); while ((m = mbufq_peek(&q->sendq)) != NULL) { unsigned int gen, pidx; - unsigned int ndesc = m_get_priority(m); + struct ofld_hdr *oh = mtod(m, struct ofld_hdr *); + unsigned int ndesc = G_HDR_NDESC(oh->flags); if (__predict_false(q->size - q->in_use < ndesc)) { setbit(&qs->txq_stopped, TXQ_OFLD); @@ -2419,9 +2345,8 @@ again: cleaned = reclaim_completed_tx(qs, 16, TXQ_OFLD); } (void)mbufq_dequeue(&q->sendq); - busdma_map_mbufs(&m, q, stx, segs, &nsegs); TXQ_UNLOCK(qs); - write_ofld_wr(adap, m, q, pidx, gen, ndesc, segs, nsegs); + write_ofld_wr(adap, m, q, pidx, gen, ndesc); TXQ_LOCK(qs); } #if USE_GTS @@ -2434,35 +2359,8 @@ again: cleaned = reclaim_completed_tx(qs, 16, TXQ_OFLD); F_SELEGRCNTX | V_EGRCNTX(q->cntxt_id)); } -/** - * queue_set - return the queue set a packet should use - * @m: the packet - * - * Maps a packet to the SGE queue set it should use. The desired queue - * set is carried in bits 1-3 in the packet's priority. - */ -static __inline int -queue_set(const struct mbuf *m) -{ - return m_get_priority(m) >> 1; -} - -/** - * is_ctrl_pkt - return whether an offload packet is a control packet - * @m: the packet - * - * Determines whether an offload packet should use an OFLD or a CTRL - * Tx queue. This is indicated by bit 0 in the packet's priority. - */ -static __inline int -is_ctrl_pkt(const struct mbuf *m) -{ - return m_get_priority(m) & 1; -} - /** * t3_offload_tx - send an offload packet - * @tdev: the offload device to send to * @m: the packet * * Sends an offload packet. We use the packet priority to select the @@ -2470,77 +2368,35 @@ is_ctrl_pkt(const struct mbuf *m) * should be sent as regular or control, bits 1-3 select the queue set. */ int -t3_offload_tx(struct t3cdev *tdev, struct mbuf *m) +t3_offload_tx(struct adapter *sc, struct mbuf *m) { - adapter_t *adap = tdev2adap(tdev); - struct sge_qset *qs = &adap->sge.qs[queue_set(m)]; + struct ofld_hdr *oh = mtod(m, struct ofld_hdr *); + struct sge_qset *qs = &sc->sge.qs[G_HDR_QSET(oh->flags)]; - if (__predict_false(is_ctrl_pkt(m))) - return ctrl_xmit(adap, qs, m); - - return ofld_xmit(adap, qs, m); -} - -/** - * deliver_partial_bundle - deliver a (partial) bundle of Rx offload pkts - * @tdev: the offload device that will be receiving the packets - * @q: the SGE response queue that assembled the bundle - * @m: the partial bundle - * @n: the number of packets in the bundle - * - * Delivers a (partial) bundle of Rx offload packets to an offload device. - */ -static __inline void -deliver_partial_bundle(struct t3cdev *tdev, - struct sge_rspq *q, - struct mbuf *mbufs[], int n) -{ - if (n) { - q->offload_bundles++; - cxgb_ofld_recv(tdev, mbufs, n); - } -} - -static __inline int -rx_offload(struct t3cdev *tdev, struct sge_rspq *rq, - struct mbuf *m, struct mbuf *rx_gather[], - unsigned int gather_idx) -{ - - rq->offload_pkts++; - m->m_pkthdr.header = mtod(m, void *); - rx_gather[gather_idx++] = m; - if (gather_idx == RX_BUNDLE_SIZE) { - cxgb_ofld_recv(tdev, rx_gather, RX_BUNDLE_SIZE); - gather_idx = 0; - rq->offload_bundles++; - } - return (gather_idx); + if (oh->flags & F_HDR_CTRL) { + m_adj(m, sizeof (*oh)); /* trim ofld_hdr off */ + return (ctrl_xmit(sc, qs, m)); + } else + return (ofld_xmit(sc, qs, m)); } +#endif static void restart_tx(struct sge_qset *qs) { struct adapter *sc = qs->port->adapter; - - + if (isset(&qs->txq_stopped, TXQ_OFLD) && should_restart_tx(&qs->txq[TXQ_OFLD]) && test_and_clear_bit(TXQ_OFLD, &qs->txq_stopped)) { qs->txq[TXQ_OFLD].restarts++; - DPRINTF("restarting TXQ_OFLD\n"); taskqueue_enqueue(sc->tq, &qs->txq[TXQ_OFLD].qresume_task); } - DPRINTF("stopped=0x%x restart=%d processed=%d cleaned=%d in_use=%d\n", - qs->txq_stopped, should_restart_tx(&qs->txq[TXQ_CTRL]), - qs->txq[TXQ_CTRL].processed, qs->txq[TXQ_CTRL].cleaned, - qs->txq[TXQ_CTRL].in_use); - + if (isset(&qs->txq_stopped, TXQ_CTRL) && should_restart_tx(&qs->txq[TXQ_CTRL]) && test_and_clear_bit(TXQ_CTRL, &qs->txq_stopped)) { qs->txq[TXQ_CTRL].restarts++; - DPRINTF("restarting TXQ_CTRL\n"); taskqueue_enqueue(sc->tq, &qs->txq[TXQ_CTRL].qresume_task); } } @@ -2569,6 +2425,7 @@ t3_sge_alloc_qset(adapter_t *sc, u_int id, int nports, int irq_vec_idx, MTX_INIT(&q->lock, q->namebuf, NULL, MTX_DEF); q->port = pi; + q->adap = sc; if ((q->txq[TXQ_ETH].txq_mr = buf_ring_alloc(cxgb_txq_buf_ring_size, M_DEVBUF, M_WAITOK, &q->lock)) == NULL) { @@ -2630,8 +2487,10 @@ t3_sge_alloc_qset(adapter_t *sc, u_int id, int nports, int irq_vec_idx, q->txq[i].gen = 1; q->txq[i].size = p->txq_size[i]; } - + +#ifdef TCP_OFFLOAD TASK_INIT(&q->txq[TXQ_OFLD].qresume_task, 0, restart_offloadq, q); +#endif TASK_INIT(&q->txq[TXQ_CTRL].qresume_task, 0, restart_ctrlq, q); TASK_INIT(&q->txq[TXQ_ETH].qreclaim_task, 0, sge_txq_reclaim_handler, q); TASK_INIT(&q->txq[TXQ_OFLD].qreclaim_task, 0, sge_txq_reclaim_handler, q); @@ -2736,8 +2595,7 @@ t3_sge_alloc_qset(adapter_t *sc, u_int id, int nports, int irq_vec_idx, mtx_unlock_spin(&sc->sge.reg_lock); t3_update_qset_coalesce(q, p); - q->port = pi; - + refill_fl(sc, &q->fl[0], q->fl[0].size); refill_fl(sc, &q->fl[1], q->fl[1].size); refill_rspq(sc, &q->rspq, q->rspq.size - 1); @@ -2768,8 +2626,6 @@ t3_rx_eth(struct adapter *adap, struct sge_rspq *rq, struct mbuf *m, int ethpad) struct port_info *pi = &adap->port[adap->rxpkt_map[cpl->iff]]; struct ifnet *ifp = pi->ifp; - DPRINTF("rx_eth m=%p m->m_data=%p p->iff=%d\n", m, mtod(m, uint8_t *), cpl->iff); - if ((ifp->if_capenable & IFCAP_RXCSUM) && !cpl->fragment && cpl->csum_valid && cpl->csum == 0xffff) { m->m_pkthdr.csum_flags = (CSUM_IP_CHECKED|CSUM_IP_VALID); @@ -2967,8 +2823,6 @@ process_responses(adapter_t *adap, struct sge_qset *qs, int budget) int skip_lro; struct lro_ctrl *lro_ctrl = &qs->lro.ctrl; #endif - struct mbuf *offload_mbufs[RX_BUNDLE_SIZE]; - int ngathered = 0; struct t3_mbuf_hdr *mh = &rspq->rspq_mh; #ifdef DEBUG static int last_holdoff = 0; @@ -2982,10 +2836,10 @@ process_responses(adapter_t *adap, struct sge_qset *qs, int budget) while (__predict_true(budget_left && is_new_response(r, rspq))) { int eth, eop = 0, ethpad = 0; uint32_t flags = ntohl(r->flags); - uint32_t rss_csum = *(const uint32_t *)r; uint32_t rss_hash = be32toh(r->rss_hdr.rss_hash_val); + uint8_t opcode = r->rss_hdr.opcode; - eth = (r->rss_hdr.opcode == CPL_RX_PKT); + eth = (opcode == CPL_RX_PKT); if (__predict_false(flags & F_RSPD_ASYNC_NOTIF)) { struct mbuf *m; @@ -3005,27 +2859,27 @@ process_responses(adapter_t *adap, struct sge_qset *qs, int budget) memcpy(mtod(m, char *), r, AN_PKT_SIZE); m->m_len = m->m_pkthdr.len = AN_PKT_SIZE; *mtod(m, char *) = CPL_ASYNC_NOTIF; - rss_csum = htonl(CPL_ASYNC_NOTIF << 24); + opcode = CPL_ASYNC_NOTIF; eop = 1; rspq->async_notif++; goto skip; } else if (flags & F_RSPD_IMM_DATA_VALID) { - struct mbuf *m = NULL; + struct mbuf *m = m_gethdr(M_DONTWAIT, MT_DATA); - DPRINTF("IMM DATA VALID opcode=0x%x rspq->cidx=%d\n", - r->rss_hdr.opcode, rspq->cidx); - if (mh->mh_head == NULL) - mh->mh_head = m_gethdr(M_DONTWAIT, MT_DATA); - else - m = m_gethdr(M_DONTWAIT, MT_DATA); - - if (mh->mh_head == NULL && m == NULL) { + if (m == NULL) { no_mem: rspq->next_holdoff = NOMEM_INTR_DELAY; budget_left--; break; } - get_imm_packet(adap, r, mh->mh_head); + if (mh->mh_head == NULL) + mh->mh_head = m; + else + mh->mh_tail->m_next = m; + mh->mh_tail = m; + + get_imm_packet(adap, r, m); + mh->mh_head->m_pkthdr.len += m->m_len; eop = 1; rspq->imm_data++; } else if (r->len_cq) { @@ -3048,30 +2902,14 @@ process_responses(adapter_t *adap, struct sge_qset *qs, int budget) handle_rsp_cntrl_info(qs, flags); } - r++; - if (__predict_false(++rspq->cidx == rspq->size)) { - rspq->cidx = 0; - rspq->gen ^= 1; - r = rspq->desc; - } - - if (++rspq->credits >= 64) { - refill_rspq(adap, rspq, rspq->credits); - rspq->credits = 0; - } if (!eth && eop) { - mh->mh_head->m_pkthdr.csum_data = rss_csum; - /* - * XXX size mismatch - */ - m_set_priority(mh->mh_head, rss_hash); - - - ngathered = rx_offload(&adap->tdev, rspq, - mh->mh_head, offload_mbufs, ngathered); + rspq->offload_pkts++; +#ifdef TCP_OFFLOAD + adap->cpl_handler[opcode](qs, r, mh->mh_head); +#else + m_freem(mh->mh_head); +#endif mh->mh_head = NULL; - DPRINTF("received offload packet\n"); - } else if (eth && eop) { struct mbuf *m = mh->mh_head; @@ -3106,13 +2944,23 @@ process_responses(adapter_t *adap, struct sge_qset *qs, int budget) mh->mh_head = NULL; } + + r++; + if (__predict_false(++rspq->cidx == rspq->size)) { + rspq->cidx = 0; + rspq->gen ^= 1; + r = rspq->desc; + } + + if (++rspq->credits >= 64) { + refill_rspq(adap, rspq, rspq->credits); + rspq->credits = 0; + } __refill_fl_lt(adap, &qs->fl[0], 32); __refill_fl_lt(adap, &qs->fl[1], 32); --budget_left; } - deliver_partial_bundle(&adap->tdev, rspq, offload_mbufs, ngathered); - #if defined(INET6) || defined(INET) /* Flush LRO */ while (!SLIST_EMPTY(&lro_ctrl->lro_active)) { diff --git a/sys/dev/cxgb/sys/mvec.h b/sys/dev/cxgb/sys/mvec.h index 9db27ddf75d4..dff6f03ba592 100644 --- a/sys/dev/cxgb/sys/mvec.h +++ b/sys/dev/cxgb/sys/mvec.h @@ -31,15 +31,6 @@ #define _MVEC_H_ #include -#define M_DDP 0x200000 /* direct data placement mbuf */ -#define EXT_PHYS 10 /* physical/bus address */ - -#define m_cur_offset m_ext.ext_size /* override to provide ddp offset */ -#define m_seq m_pkthdr.csum_data /* stored sequence */ -#define m_ddp_gl m_ext.ext_buf /* ddp list */ -#define m_ddp_flags m_pkthdr.csum_flags /* ddp flags */ -#define m_ulp_mode m_pkthdr.tso_segsz /* upper level protocol */ - static __inline void busdma_map_mbuf_fast(bus_dma_tag_t tag, bus_dmamap_t map, struct mbuf *m, bus_dma_segment_t *seg) @@ -58,17 +49,6 @@ int busdma_map_sg_collapse(bus_dma_tag_t tag, bus_dmamap_t map, struct mbuf **m, bus_dma_segment_t *segs, int *nsegs); void busdma_map_sg_vec(bus_dma_tag_t tag, bus_dmamap_t map, struct mbuf *m, bus_dma_segment_t *segs, int *nsegs); -static __inline int -busdma_map_sgl(bus_dma_segment_t *vsegs, bus_dma_segment_t *segs, int count) -{ - while (count--) { - segs->ds_addr = pmap_kextract((vm_offset_t)vsegs->ds_addr); - segs->ds_len = vsegs->ds_len; - segs++; - vsegs++; - } - return (0); -} static __inline void m_freem_list(struct mbuf *m) @@ -84,5 +64,4 @@ m_freem_list(struct mbuf *m) } } - #endif /* _MVEC_H_ */ diff --git a/sys/dev/cxgb/t3cdev.h b/sys/dev/cxgb/t3cdev.h deleted file mode 100644 index e0004b795627..000000000000 --- a/sys/dev/cxgb/t3cdev.h +++ /dev/null @@ -1,62 +0,0 @@ -/*- - * Copyright (c) 2007-2008, Chelsio Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * - * 2. Neither the name of the Chelsio Corporation nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - * $FreeBSD$ - */ -#ifndef _T3CDEV_H_ -#define _T3CDEV_H_ - -#define T3CNAMSIZ 16 - -/* Get the t3cdev associated with an ifnet */ -#define T3CDEV(ifp) (&(((struct port_info *)(ifp)->if_softc))->adapter->tdev) - -struct cxgb3_client; - -enum t3ctype { - T3A = 0, - T3B, - T3C -}; - -struct t3cdev { - char name[T3CNAMSIZ]; /* T3C device name */ - enum t3ctype type; - TAILQ_ENTRY(t3cdev) entry; /* for list linking */ - struct ifnet *lldev; /* LL dev associated with T3C messages */ - struct adapter *adapter; - int (*send)(struct t3cdev *dev, struct mbuf *m); - int (*recv)(struct t3cdev *dev, struct mbuf **m, int n); - int (*ctl)(struct t3cdev *dev, unsigned int req, void *data); - void (*arp_update)(struct t3cdev *dev, struct rtentry *neigh, uint8_t *enaddr, struct sockaddr *sa); - void *priv; /* driver private data */ - void *l2opt; /* optional layer 2 data */ - void *l3opt; /* optional layer 3 data */ - void *l4opt; /* optional layer 4 data */ - void *ulp; /* ulp stuff */ -}; - -#endif /* _T3CDEV_H_ */ diff --git a/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb.c b/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb.c index a4f2ff669caf..c8652a0c97de 100644 --- a/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb.c +++ b/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb.c @@ -29,11 +29,12 @@ POSSIBILITY OF SUCH DAMAGE. #include __FBSDID("$FreeBSD$"); +#include "opt_inet.h" + #include #include #include #include -#include #include #include #include @@ -54,20 +55,14 @@ __FBSDID("$FreeBSD$"); #include #include -#if __FreeBSD_version < 800044 -#define V_ifnet ifnet -#endif - -#include -#include -#if __FreeBSD_version >= 800056 -#include -#endif - #include +#include -#include +#include +#include +#include +#ifdef TCP_OFFLOAD #include #include #include @@ -75,26 +70,21 @@ __FBSDID("$FreeBSD$"); #include #include -/* - * XXX :-/ - * - */ +static int iwch_mod_load(void); +static int iwch_mod_unload(void); +static int iwch_activate(struct adapter *); +static int iwch_deactivate(struct adapter *); -#define idr_init(x) - -cxgb_cpl_handler_func t3c_handlers[NUM_CPL_CMDS]; - -static void open_rnic_dev(struct t3cdev *); -static void close_rnic_dev(struct t3cdev *); - -static TAILQ_HEAD( ,iwch_dev) dev_list; -static struct mtx dev_mutex; -static eventhandler_tag event_tag; +static struct uld_info iwch_uld_info = { + .uld_id = ULD_IWARP, + .activate = iwch_activate, + .deactivate = iwch_deactivate, +}; static void rnic_init(struct iwch_dev *rnicp) { - CTR2(KTR_IW_CXGB, "%s iwch_dev %p", __FUNCTION__, rnicp); + idr_init(&rnicp->cqidr); idr_init(&rnicp->qpidr); idr_init(&rnicp->mmidr); @@ -103,15 +93,16 @@ rnic_init(struct iwch_dev *rnicp) rnicp->attr.vendor_id = 0x168; rnicp->attr.vendor_part_id = 7; rnicp->attr.max_qps = T3_MAX_NUM_QP - 32; - rnicp->attr.max_wrs = (1UL << 24) - 1; + rnicp->attr.max_wrs = T3_MAX_QP_DEPTH; rnicp->attr.max_sge_per_wr = T3_MAX_SGE; rnicp->attr.max_sge_per_rdma_write_wr = T3_MAX_SGE; rnicp->attr.max_cqs = T3_MAX_NUM_CQ - 1; - rnicp->attr.max_cqes_per_cq = (1UL << 24) - 1; + rnicp->attr.max_cqes_per_cq = T3_MAX_CQ_DEPTH; rnicp->attr.max_mem_regs = cxio_num_stags(&rnicp->rdev); rnicp->attr.max_phys_buf_entries = T3_MAX_PBL_SIZE; rnicp->attr.max_pds = T3_MAX_NUM_PD - 1; - rnicp->attr.mem_pgsizes_bitmask = 0x7FFF; /* 4KB-128MB */ + rnicp->attr.mem_pgsizes_bitmask = T3_PAGESIZE_MASK; + rnicp->attr.max_mr_size = T3_MAX_MR_SIZE; rnicp->attr.can_resize_wq = 0; rnicp->attr.max_rdma_reads_per_qp = 8; rnicp->attr.max_rdma_read_resources = @@ -127,170 +118,183 @@ rnic_init(struct iwch_dev *rnicp) rnicp->attr.zbva_support = 1; rnicp->attr.local_invalidate_fence = 1; rnicp->attr.cq_overflow_detection = 1; + return; } static void -open_rnic_dev(struct t3cdev *tdev) +rnic_uninit(struct iwch_dev *rnicp) +{ + idr_destroy(&rnicp->cqidr); + idr_destroy(&rnicp->qpidr); + idr_destroy(&rnicp->mmidr); + mtx_destroy(&rnicp->lock); +} + +static int +iwch_activate(struct adapter *sc) { struct iwch_dev *rnicp; - static int vers_printed; + int rc; + + KASSERT(!isset(&sc->offload_map, MAX_NPORTS), + ("%s: iWARP already activated on %s", __func__, + device_get_nameunit(sc->dev))); - CTR2(KTR_IW_CXGB, "%s t3cdev %p", __FUNCTION__, tdev); - if (!vers_printed++) - printf("Chelsio T3 RDMA Driver - version x.xx\n"); rnicp = (struct iwch_dev *)ib_alloc_device(sizeof(*rnicp)); - if (!rnicp) { - printf("Cannot allocate ib device\n"); - return; - } - rnicp->rdev.ulp = rnicp; - rnicp->rdev.t3cdev_p = tdev; + if (rnicp == NULL) + return (ENOMEM); - mtx_lock(&dev_mutex); + sc->iwarp_softc = rnicp; + rnicp->rdev.adap = sc; - if (cxio_rdev_open(&rnicp->rdev)) { - mtx_unlock(&dev_mutex); + cxio_hal_init(sc); + iwch_cm_init_cpl(sc); + + rc = cxio_rdev_open(&rnicp->rdev); + if (rc != 0) { printf("Unable to open CXIO rdev\n"); - ib_dealloc_device(&rnicp->ibdev); - return; + goto err1; } rnic_init(rnicp); - TAILQ_INSERT_TAIL(&dev_list, rnicp, entry); - mtx_unlock(&dev_mutex); - - if (iwch_register_device(rnicp)) { + rc = iwch_register_device(rnicp); + if (rc != 0) { printf("Unable to register device\n"); - close_rnic_dev(tdev); + goto err2; } -#ifdef notyet - printf("Initialized device %s\n", - pci_name(rnicp->rdev.rnic_info.pdev)); -#endif - return; + + return (0); + +err2: + rnic_uninit(rnicp); + cxio_rdev_close(&rnicp->rdev); +err1: + cxio_hal_uninit(sc); + iwch_cm_term_cpl(sc); + sc->iwarp_softc = NULL; + + return (rc); } -static void -close_rnic_dev(struct t3cdev *tdev) -{ - struct iwch_dev *dev, *tmp; - CTR2(KTR_IW_CXGB, "%s t3cdev %p", __FUNCTION__, tdev); - mtx_lock(&dev_mutex); - - TAILQ_FOREACH_SAFE(dev, &dev_list, entry, tmp) { - if (dev->rdev.t3cdev_p == tdev) { -#ifdef notyet - list_del(&dev->entry); - iwch_unregister_device(dev); - cxio_rdev_close(&dev->rdev); - idr_destroy(&dev->cqidr); - idr_destroy(&dev->qpidr); - idr_destroy(&dev->mmidr); - ib_dealloc_device(&dev->ibdev); -#endif - break; - } - } - mtx_unlock(&dev_mutex); -} - -static ifaddr_event_handler_t -ifaddr_event_handler(void *arg, struct ifnet *ifp) -{ - printf("%s if name %s \n", __FUNCTION__, ifp->if_xname); - if (ifp->if_capabilities & IFCAP_TOE4) { - KASSERT(T3CDEV(ifp) != NULL, ("null t3cdev ptr!")); - if (cxio_hal_find_rdev_by_t3cdev(T3CDEV(ifp)) == NULL) - open_rnic_dev(T3CDEV(ifp)); - } - return 0; -} - - static int -iwch_init_module(void) +iwch_deactivate(struct adapter *sc) { - VNET_ITERATOR_DECL(vnet_iter); - int err; - struct ifnet *ifp; + struct iwch_dev *rnicp; - printf("%s enter\n", __FUNCTION__); - TAILQ_INIT(&dev_list); - mtx_init(&dev_mutex, "iwch dev_list lock", NULL, MTX_DEF); - - err = cxio_hal_init(); - if (err) - return err; - err = iwch_cm_init(); - if (err) - return err; - cxio_register_ev_cb(iwch_ev_dispatch); + rnicp = sc->iwarp_softc; - /* Register for ifaddr events to dynamically add TOE devs */ - event_tag = EVENTHANDLER_REGISTER(ifaddr_event, ifaddr_event_handler, - NULL, EVENTHANDLER_PRI_ANY); + iwch_unregister_device(rnicp); + rnic_uninit(rnicp); + cxio_rdev_close(&rnicp->rdev); + cxio_hal_uninit(sc); + iwch_cm_term_cpl(sc); + ib_dealloc_device(&rnicp->ibdev); - /* Register existing TOE interfaces by walking the ifnet chain */ - IFNET_RLOCK(); - VNET_LIST_RLOCK(); - VNET_FOREACH(vnet_iter) { - CURVNET_SET(vnet_iter); /* XXX CURVNET_SET_QUIET() ? */ - TAILQ_FOREACH(ifp, &V_ifnet, if_link) - (void)ifaddr_event_handler(NULL, ifp); - CURVNET_RESTORE(); - } - VNET_LIST_RUNLOCK(); - IFNET_RUNLOCK(); - return 0; + sc->iwarp_softc = NULL; + + return (0); } static void -iwch_exit_module(void) +iwch_activate_all(struct adapter *sc, void *arg __unused) { - EVENTHANDLER_DEREGISTER(ifaddr_event, event_tag); - cxio_unregister_ev_cb(iwch_ev_dispatch); + ADAPTER_LOCK(sc); + if ((sc->open_device_map & sc->offload_map) != 0 && + t3_activate_uld(sc, ULD_IWARP) == 0) + setbit(&sc->offload_map, MAX_NPORTS); + ADAPTER_UNLOCK(sc); +} + +static void +iwch_deactivate_all(struct adapter *sc, void *arg __unused) +{ + ADAPTER_LOCK(sc); + if (isset(&sc->offload_map, MAX_NPORTS) && + t3_deactivate_uld(sc, ULD_IWARP) == 0) + clrbit(&sc->offload_map, MAX_NPORTS); + ADAPTER_UNLOCK(sc); +} + +static int +iwch_mod_load(void) +{ + int rc; + + rc = iwch_cm_init(); + if (rc != 0) + return (rc); + + rc = t3_register_uld(&iwch_uld_info); + if (rc != 0) { + iwch_cm_term(); + return (rc); + } + + t3_iterate(iwch_activate_all, NULL); + + return (rc); +} + +static int +iwch_mod_unload(void) +{ + t3_iterate(iwch_deactivate_all, NULL); + iwch_cm_term(); - cxio_hal_exit(); -} -static int -iwch_load(module_t mod, int cmd, void *arg) + if (t3_unregister_uld(&iwch_uld_info) == EBUSY) + return (EBUSY); + + return (0); +} +#endif /* TCP_OFFLOAD */ + +#undef MODULE_VERSION +#include + +static int +iwch_modevent(module_t mod, int cmd, void *arg) { - int err = 0; + int rc = 0; - switch (cmd) { - case MOD_LOAD: - printf("Loading iw_cxgb.\n"); +#ifdef TCP_OFFLOAD + switch (cmd) { + case MOD_LOAD: + rc = iwch_mod_load(); + if(rc) + printf("iw_cxgb: Chelsio T3 RDMA Driver failed to load\n"); + else + printf("iw_cxgb: Chelsio T3 RDMA Driver loaded\n"); + break; - iwch_init_module(); - break; - case MOD_QUIESCE: - break; - case MOD_UNLOAD: - printf("Unloading iw_cxgb.\n"); - iwch_exit_module(); - break; - case MOD_SHUTDOWN: - break; - default: - err = EOPNOTSUPP; - break; - } + case MOD_UNLOAD: + rc = iwch_mod_unload(); + if(rc) + printf("iw_cxgb: Chelsio T3 RDMA Driver failed to unload\n"); + else + printf("iw_cxgb: Chelsio T3 RDMA Driver unloaded\n"); + break; - return (err); + default: + rc = EINVAL; + } +#else + printf("iw_cxgb: compiled without TCP_OFFLOAD support.\n"); + rc = EOPNOTSUPP; +#endif + return (rc); } -static moduledata_t mod_data = { +static moduledata_t iwch_mod_data = { "iw_cxgb", - iwch_load, + iwch_modevent, 0 }; MODULE_VERSION(iw_cxgb, 1); -DECLARE_MODULE(iw_cxgb, mod_data, SI_SUB_EXEC, SI_ORDER_ANY); -MODULE_DEPEND(iw_cxgb, rdma_core, 1, 1, 1); -MODULE_DEPEND(iw_cxgb, if_cxgb, 1, 1, 1); +DECLARE_MODULE(iw_cxgb, iwch_mod_data, SI_SUB_EXEC, SI_ORDER_ANY); +MODULE_DEPEND(t3_tom, cxgbc, 1, 1, 1); +MODULE_DEPEND(iw_cxgb, toecore, 1, 1, 1); MODULE_DEPEND(iw_cxgb, t3_tom, 1, 1, 1); - diff --git a/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb.h b/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb.h index f4b28566ebf5..9fd3e0cf92bb 100644 --- a/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb.h +++ b/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb.h @@ -37,6 +37,13 @@ struct iwch_cq; struct iwch_qp; struct iwch_mr; +enum t3ctype { + T3A = 0, + T3B, + T3C +}; + +#define PAGE_MASK_IWARP (~(PAGE_SIZE-1)) struct iwch_rnic_attributes { u32 vendor_id; @@ -57,6 +64,7 @@ struct iwch_rnic_attributes { * size (4k)^i. Phys block list mode unsupported. */ u32 mem_pgsizes_bitmask; + u64 max_mr_size; u8 can_resize_wq; /* @@ -97,9 +105,9 @@ struct iwch_dev { struct cxio_rdev rdev; u32 device_cap_flags; struct iwch_rnic_attributes attr; - struct kvl cqidr; - struct kvl qpidr; - struct kvl mmidr; + struct idr cqidr; + struct idr qpidr; + struct idr mmidr; struct mtx lock; TAILQ_ENTRY(iwch_dev) entry; }; @@ -113,40 +121,43 @@ static inline struct iwch_dev *to_iwch_dev(struct ib_device *ibdev) return container_of(ibdev, struct iwch_dev, ibdev); } -static inline int t3b_device(const struct iwch_dev *rhp) +static inline int t3b_device(const struct iwch_dev *rhp __unused) { - return rhp->rdev.t3cdev_p->type == T3B; + return (0); } -static inline int t3a_device(const struct iwch_dev *rhp) +static inline int t3a_device(const struct iwch_dev *rhp __unused) { - return rhp->rdev.t3cdev_p->type == T3A; + return (0); } static inline struct iwch_cq *get_chp(struct iwch_dev *rhp, u32 cqid) { - return kvl_lookup(&rhp->cqidr, cqid); + return idr_find(&rhp->cqidr, cqid); } static inline struct iwch_qp *get_qhp(struct iwch_dev *rhp, u32 qpid) { - return kvl_lookup(&rhp->qpidr, qpid); + return idr_find(&rhp->qpidr, qpid); } static inline struct iwch_mr *get_mhp(struct iwch_dev *rhp, u32 mmid) { - return kvl_lookup(&rhp->mmidr, mmid); + return idr_find(&rhp->mmidr, mmid); } -static inline int insert_handle(struct iwch_dev *rhp, struct kvl *kvlp, +static inline int insert_handle(struct iwch_dev *rhp, struct idr *idr, void *handle, u32 id) { int ret; u32 newid; do { + if (!idr_pre_get(idr, GFP_KERNEL)) { + return -ENOMEM; + } mtx_lock(&rhp->lock); - ret = kvl_alloc_above(kvlp, handle, id, &newid); + ret = idr_get_new_above(idr, handle, id, &newid); WARN_ON(ret != 0); WARN_ON(!ret && newid != id); mtx_unlock(&rhp->lock); @@ -155,14 +166,12 @@ static inline int insert_handle(struct iwch_dev *rhp, struct kvl *kvlp, return ret; } -static inline void remove_handle(struct iwch_dev *rhp, struct kvl *kvlp, u32 id) +static inline void remove_handle(struct iwch_dev *rhp, struct idr *idr, u32 id) { mtx_lock(&rhp->lock); - kvl_delete(kvlp, id); + idr_remove(idr, id); mtx_unlock(&rhp->lock); } -extern struct cxgb_client t3c_client; -extern cxgb_cpl_handler_func t3c_handlers[NUM_CPL_CMDS]; -extern void iwch_ev_dispatch(struct cxio_rdev *rdev_p, struct mbuf *m); +void iwch_ev_dispatch(struct iwch_dev *, struct mbuf *); #endif diff --git a/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_cm.c b/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_cm.c index d95e48d67a47..9afad627d5ae 100644 --- a/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_cm.c +++ b/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_cm.c @@ -29,11 +29,13 @@ POSSIBILITY OF SUCH DAMAGE. #include __FBSDID("$FreeBSD$"); +#include "opt_inet.h" + +#ifdef TCP_OFFLOAD #include #include #include #include -#include #include #include #include @@ -66,13 +68,17 @@ __FBSDID("$FreeBSD$"); #include #include -#include +#include +#include +#include #include #include -#include -#include #include +#include +#include +#include + #include #include #include @@ -97,46 +103,46 @@ static char *states[] = { }; #endif -SYSCTL_NODE(_hw, OID_AUTO, cxgb, CTLFLAG_RD, 0, "iw_cxgb driver parameters"); +SYSCTL_NODE(_hw, OID_AUTO, iw_cxgb, CTLFLAG_RD, 0, "iw_cxgb driver parameters"); -static int ep_timeout_secs = 10; +static int ep_timeout_secs = 60; TUNABLE_INT("hw.iw_cxgb.ep_timeout_secs", &ep_timeout_secs); -SYSCTL_INT(_hw_cxgb, OID_AUTO, ep_timeout_secs, CTLFLAG_RDTUN, &ep_timeout_secs, 0, - "CM Endpoint operation timeout in seconds (default=10)"); +SYSCTL_INT(_hw_iw_cxgb, OID_AUTO, ep_timeout_secs, CTLFLAG_RW, &ep_timeout_secs, 0, + "CM Endpoint operation timeout in seconds (default=60)"); static int mpa_rev = 1; TUNABLE_INT("hw.iw_cxgb.mpa_rev", &mpa_rev); -SYSCTL_INT(_hw_cxgb, OID_AUTO, mpa_rev, CTLFLAG_RDTUN, &mpa_rev, 0, +SYSCTL_INT(_hw_iw_cxgb, OID_AUTO, mpa_rev, CTLFLAG_RW, &mpa_rev, 0, "MPA Revision, 0 supports amso1100, 1 is spec compliant. (default=1)"); static int markers_enabled = 0; TUNABLE_INT("hw.iw_cxgb.markers_enabled", &markers_enabled); -SYSCTL_INT(_hw_cxgb, OID_AUTO, markers_enabled, CTLFLAG_RDTUN, &markers_enabled, 0, +SYSCTL_INT(_hw_iw_cxgb, OID_AUTO, markers_enabled, CTLFLAG_RW, &markers_enabled, 0, "Enable MPA MARKERS (default(0)=disabled)"); static int crc_enabled = 1; TUNABLE_INT("hw.iw_cxgb.crc_enabled", &crc_enabled); -SYSCTL_INT(_hw_cxgb, OID_AUTO, crc_enabled, CTLFLAG_RDTUN, &crc_enabled, 0, +SYSCTL_INT(_hw_iw_cxgb, OID_AUTO, crc_enabled, CTLFLAG_RW, &crc_enabled, 0, "Enable MPA CRC (default(1)=enabled)"); static int rcv_win = 256 * 1024; TUNABLE_INT("hw.iw_cxgb.rcv_win", &rcv_win); -SYSCTL_INT(_hw_cxgb, OID_AUTO, rcv_win, CTLFLAG_RDTUN, &rcv_win, 0, +SYSCTL_INT(_hw_iw_cxgb, OID_AUTO, rcv_win, CTLFLAG_RW, &rcv_win, 0, "TCP receive window in bytes (default=256KB)"); static int snd_win = 32 * 1024; TUNABLE_INT("hw.iw_cxgb.snd_win", &snd_win); -SYSCTL_INT(_hw_cxgb, OID_AUTO, snd_win, CTLFLAG_RDTUN, &snd_win, 0, +SYSCTL_INT(_hw_iw_cxgb, OID_AUTO, snd_win, CTLFLAG_RW, &snd_win, 0, "TCP send window in bytes (default=32KB)"); static unsigned int nocong = 0; TUNABLE_INT("hw.iw_cxgb.nocong", &nocong); -SYSCTL_UINT(_hw_cxgb, OID_AUTO, nocong, CTLFLAG_RDTUN, &nocong, 0, +SYSCTL_UINT(_hw_iw_cxgb, OID_AUTO, nocong, CTLFLAG_RW, &nocong, 0, "Turn off congestion control (default=0)"); static unsigned int cong_flavor = 1; TUNABLE_INT("hw.iw_cxgb.cong_flavor", &cong_flavor); -SYSCTL_UINT(_hw_cxgb, OID_AUTO, cong_flavor, CTLFLAG_RDTUN, &cong_flavor, 0, +SYSCTL_UINT(_hw_iw_cxgb, OID_AUTO, cong_flavor, CTLFLAG_RW, &cong_flavor, 0, "TCP Congestion control flavor (default=1)"); static void ep_timeout(void *arg); @@ -174,42 +180,44 @@ static void stop_ep_timer(struct iwch_ep *ep) { CTR2(KTR_IW_CXGB, "%s ep %p", __FUNCTION__, ep); + if (!callout_pending(&ep->timer)) { + CTR3(KTR_IW_CXGB, "%s timer stopped when its not running! ep %p state %u\n", + __func__, ep, ep->com.state); + return; + } callout_drain(&ep->timer); put_ep(&ep->com); } -static int set_tcpinfo(struct iwch_ep *ep) +static int +set_tcpinfo(struct iwch_ep *ep) { - struct tcp_info ti; - struct sockopt sopt; - int err; + struct socket *so = ep->com.so; + struct inpcb *inp = sotoinpcb(so); + struct tcpcb *tp; + struct toepcb *toep; + int rc = 0; - sopt.sopt_dir = SOPT_GET; - sopt.sopt_level = IPPROTO_TCP; - sopt.sopt_name = TCP_INFO; - sopt.sopt_val = (caddr_t)&ti; - sopt.sopt_valsize = sizeof ti; - sopt.sopt_td = NULL; - - err = sogetopt(ep->com.so, &sopt); - if (err) { - printf("%s can't get tcpinfo\n", __FUNCTION__); - return -err; - } - if (!(ti.tcpi_options & TCPI_OPT_TOE)) { - printf("%s connection NOT OFFLOADED!\n", __FUNCTION__); - return -EINVAL; - } + INP_WLOCK(inp); + tp = intotcpcb(inp); - ep->snd_seq = ti.tcpi_snd_nxt; - ep->rcv_seq = ti.tcpi_rcv_nxt; - ep->emss = ti.tcpi_snd_mss - sizeof(struct tcpiphdr); - ep->hwtid = TOEPCB(ep->com.so)->tp_tid; /* XXX */ - if (ti.tcpi_options & TCPI_OPT_TIMESTAMPS) - ep->emss -= 12; + if ((tp->t_flags & TF_TOE) == 0) { + rc = EINVAL; + printf("%s: connection NOT OFFLOADED!\n", __func__); + goto done; + } + toep = tp->t_toe; + + ep->hwtid = toep->tp_tid; + ep->snd_seq = tp->snd_nxt; + ep->rcv_seq = tp->rcv_nxt; + ep->emss = tp->t_maxseg; if (ep->emss < 128) ep->emss = 128; - return 0; +done: + INP_WUNLOCK(inp); + return (rc); + } static enum iwch_ep_state @@ -264,56 +272,6 @@ void __free_ep(struct iwch_ep_common *epc) free(epc, M_DEVBUF); } -int -iwch_quiesce_tid(struct iwch_ep *ep) -{ -#ifdef notyet - struct cpl_set_tcb_field *req; - struct mbuf *m = get_mbuf(NULL, sizeof(*req), M_NOWAIT); - - if (m == NULL) - return (-ENOMEM); - req = (struct cpl_set_tcb_field *) mbuf_put(m, sizeof(*req)); - req->wr.wr_hi = htonl(V_WR_OP(FW_WROPCODE_FORWARD)); - req->wr.wr_lo = htonl(V_WR_TID(ep->hwtid)); - OPCODE_TID(req) = htonl(MK_OPCODE_TID(CPL_SET_TCB_FIELD, ep->hwtid)); - req->reply = 0; - req->cpu_idx = 0; - req->word = htons(W_TCB_RX_QUIESCE); - req->mask = cpu_to_be64(1ULL << S_TCB_RX_QUIESCE); - req->val = cpu_to_be64(1 << S_TCB_RX_QUIESCE); - - m_set_priority(m, CPL_PRIORITY_DATA); - cxgb_ofld_send(ep->com.tdev, m); -#endif - return 0; -} - -int -iwch_resume_tid(struct iwch_ep *ep) -{ -#ifdef notyet - struct cpl_set_tcb_field *req; - struct mbuf *m = get_mbuf(NULL, sizeof(*req), M_NOWAIT); - - if (m == NULL) - return (-ENOMEM); - req = (struct cpl_set_tcb_field *) mbuf_put(m, sizeof(*req)); - req->wr.wr_hi = htonl(V_WR_OP(FW_WROPCODE_FORWARD)); - req->wr.wr_lo = htonl(V_WR_TID(ep->hwtid)); - OPCODE_TID(req) = htonl(MK_OPCODE_TID(CPL_SET_TCB_FIELD, ep->hwtid)); - req->reply = 0; - req->cpu_idx = 0; - req->word = htons(W_TCB_RX_QUIESCE); - req->mask = cpu_to_be64(1ULL << S_TCB_RX_QUIESCE); - req->val = 0; - - m_set_priority(m, CPL_PRIORITY_DATA); - cxgb_ofld_send(ep->com.tdev, m); -#endif - return 0; -} - static struct rtentry * find_route(__be32 local_ip, __be32 peer_ip, __be16 local_port, __be16 peer_port, u8 tos) @@ -331,13 +289,16 @@ find_route(__be32 local_ip, __be32 peer_ip, __be16 local_port, } static void -close_socket(struct iwch_ep_common *epc) +close_socket(struct iwch_ep_common *epc, int close) { CTR4(KTR_IW_CXGB, "%s ep %p so %p state %s", __FUNCTION__, epc, epc->so, states[epc->state]); SOCK_LOCK(epc->so); soupcall_clear(epc->so, SO_RCV); SOCK_UNLOCK(epc->so); - soshutdown(epc->so, SHUT_WR|SHUT_RD); + if (close) + soclose(epc->so); + else + soshutdown(epc->so, SHUT_WR|SHUT_RD); epc->so = NULL; } @@ -500,7 +461,7 @@ abort_connection(struct iwch_ep *ep) CTR4(KTR_IW_CXGB, "%s ep %p so %p state %s", __FUNCTION__, ep, ep->com.so, states[ep->com.state]); state_set(&ep->com, ABORTING); abort_socket(ep); - close_socket(&ep->com); + close_socket(&ep->com, 0); close_complete_upcall(ep); state_set(&ep->com, DEAD); put_ep(&ep->com); @@ -582,12 +543,13 @@ connect_request_upcall(struct iwch_ep *ep) event.private_data = ep->mpa_pkt + sizeof(struct mpa_message); event.provider_data = ep; event.so = ep->com.so; - if (state_read(&ep->parent_ep->com) != DEAD) + if (state_read(&ep->parent_ep->com) != DEAD) { + get_ep(&ep->com); ep->parent_ep->com.cm_id->event_handler( ep->parent_ep->com.cm_id, &event); + } put_ep(&ep->parent_ep->com); - ep->parent_ep = NULL; } static void @@ -729,6 +691,7 @@ process_mpa_reply(struct iwch_ep *ep) */ CTR1(KTR_IW_CXGB, "%s mpa rpl looks good!", __FUNCTION__); state_set(&ep->com, FPDU_MODE); + ep->mpa_attr.initiator = 1; ep->mpa_attr.crc_enabled = (mpa->flags & MPA_CRC) | crc_enabled ? 1 : 0; ep->mpa_attr.recv_marker_enabled = markers_enabled; ep->mpa_attr.xmit_marker_enabled = mpa->flags & MPA_MARKERS ? 1 : 0; @@ -885,6 +848,7 @@ process_mpa_request(struct iwch_ep *ep) * If we get here we have accumulated the entire mpa * start reply message including private data. */ + ep->mpa_attr.initiator = 0; ep->mpa_attr.crc_enabled = (mpa->flags & MPA_CRC) | crc_enabled ? 1 : 0; ep->mpa_attr.recv_marker_enabled = markers_enabled; ep->mpa_attr.xmit_marker_enabled = mpa->flags & MPA_MARKERS ? 1 : 0; @@ -934,7 +898,6 @@ process_peer_close(struct iwch_ep *ep) * rejects the CR. */ __state_set(&ep->com, CLOSING); - get_ep(&ep->com); break; case MPA_REP_SENT: __state_set(&ep->com, CLOSING); @@ -961,7 +924,7 @@ process_peer_close(struct iwch_ep *ep) iwch_modify_qp(ep->com.qp->rhp, ep->com.qp, IWCH_QP_ATTR_NEXT_STATE, &attrs, 1); } - close_socket(&ep->com); + close_socket(&ep->com, 0); close_complete_upcall(ep); __state_set(&ep->com, DEAD); release = 1; @@ -986,11 +949,10 @@ process_conn_error(struct iwch_ep *ep) { struct iwch_qp_attributes attrs; int ret; - int state; - state = state_read(&ep->com); - CTR5(KTR_IW_CXGB, "%s ep %p so %p so->so_error %u state %s", __FUNCTION__, ep, ep->com.so, ep->com.so->so_error, states[ep->com.state]); - switch (state) { + mtx_lock(&ep->com.lock); + CTR3(KTR_IW_CXGB, "%s ep %p state %u", __func__, ep, ep->com.state); + switch (ep->com.state) { case MPA_REQ_WAIT: stop_ep_timer(ep); break; @@ -1009,7 +971,6 @@ process_conn_error(struct iwch_ep *ep) * the reference on it until the ULP accepts or * rejects the CR. */ - get_ep(&ep->com); break; case MORIBUND: case CLOSING: @@ -1031,6 +992,7 @@ process_conn_error(struct iwch_ep *ep) case ABORTING: break; case DEAD: + mtx_unlock(&ep->com.lock); CTR2(KTR_IW_CXGB, "%s so_error %d IN DEAD STATE!!!!", __FUNCTION__, ep->com.so->so_error); return; @@ -1039,11 +1001,12 @@ process_conn_error(struct iwch_ep *ep) break; } - if (state != ABORTING) { - close_socket(&ep->com); - state_set(&ep->com, DEAD); + if (ep->com.state != ABORTING) { + close_socket(&ep->com, 0); + __state_set(&ep->com, DEAD); put_ep(&ep->com); } + mtx_unlock(&ep->com.lock); return; } @@ -1071,7 +1034,10 @@ process_close_complete(struct iwch_ep *ep) IWCH_QP_ATTR_NEXT_STATE, &attrs, 1); } - close_socket(&ep->com); + if (ep->parent_ep) + close_socket(&ep->com, 1); + else + close_socket(&ep->com, 0); close_complete_upcall(ep); __state_set(&ep->com, DEAD); release = 1; @@ -1102,77 +1068,59 @@ process_close_complete(struct iwch_ep *ep) * terminate() handles case (1)... */ static int -terminate(struct t3cdev *tdev, struct mbuf *m, void *ctx) +terminate(struct sge_qset *qs, struct rsp_desc *r, struct mbuf *m) { - struct toepcb *toep = (struct toepcb *)ctx; - struct socket *so = toeptoso(toep); + struct adapter *sc = qs->adap; + struct tom_data *td = sc->tom_softc; + uint32_t hash = *((uint32_t *)r + 1); + unsigned int tid = ntohl(hash) >> 8 & 0xfffff; + struct toepcb *toep = lookup_tid(&td->tid_maps, tid); + struct socket *so = toep->tp_inp->inp_socket; struct iwch_ep *ep = so->so_rcv.sb_upcallarg; - CTR2(KTR_IW_CXGB, "%s ep %p", __FUNCTION__, ep); + if (state_read(&ep->com) != FPDU_MODE) + goto done; + m_adj(m, sizeof(struct cpl_rdma_terminate)); - CTR2(KTR_IW_CXGB, "%s saving %d bytes of term msg", __FUNCTION__, m->m_len); + + CTR4(KTR_IW_CXGB, "%s: tid %u, ep %p, saved %d bytes", + __func__, tid, ep, m->m_len); + m_copydata(m, 0, m->m_len, ep->com.qp->attr.terminate_buffer); ep->com.qp->attr.terminate_msg_len = m->m_len; ep->com.qp->attr.is_terminate_local = 0; - return CPL_RET_BUF_DONE; + +done: + m_freem(m); + return (0); } static int -ec_status(struct t3cdev *tdev, struct mbuf *m, void *ctx) +ec_status(struct sge_qset *qs, struct rsp_desc *r, struct mbuf *m) { - struct toepcb *toep = (struct toepcb *)ctx; - struct socket *so = toeptoso(toep); - struct cpl_rdma_ec_status *rep = cplhdr(m); - struct iwch_ep *ep; - struct iwch_qp_attributes attrs; - int release = 0; + struct adapter *sc = qs->adap; + struct tom_data *td = sc->tom_softc; + struct cpl_rdma_ec_status *rep = mtod(m, void *); + unsigned int tid = GET_TID(rep); + struct toepcb *toep = lookup_tid(&td->tid_maps, tid); + struct socket *so = toep->tp_inp->inp_socket; + struct iwch_ep *ep = so->so_rcv.sb_upcallarg; - ep = so->so_rcv.sb_upcallarg; - CTR5(KTR_IW_CXGB, "%s ep %p so %p state %s ec_status %d", __FUNCTION__, ep, ep->com.so, states[ep->com.state], rep->status); - if (!so || !ep) { - panic("bogosity ep %p state %d, so %p state %x\n", ep, ep ? ep->com.state : -1, so, so ? so->so_state : -1); - } - mtx_lock(&ep->com.lock); - switch (ep->com.state) { - case CLOSING: - if (!rep->status) - __state_set(&ep->com, MORIBUND); - else - __state_set(&ep->com, ABORTING); - break; - case MORIBUND: - stop_ep_timer(ep); - if (!rep->status) { - if ((ep->com.cm_id) && (ep->com.qp)) { - attrs.next_state = IWCH_QP_STATE_IDLE; - iwch_modify_qp(ep->com.qp->rhp, - ep->com.qp, - IWCH_QP_ATTR_NEXT_STATE, - &attrs, 1); - } - close_socket(&ep->com); - close_complete_upcall(ep); - __state_set(&ep->com, DEAD); - release = 1; - } - break; - case DEAD: - break; - default: - panic("unknown state: %d\n", ep->com.state); - } - mtx_unlock(&ep->com.lock); if (rep->status) { - log(LOG_ERR, "%s BAD CLOSE - Aborting tid %u\n", - __FUNCTION__, ep->hwtid); + struct iwch_qp_attributes attrs; + + CTR1(KTR_IW_CXGB, "%s BAD CLOSE - Aborting", __FUNCTION__); + stop_ep_timer(ep); attrs.next_state = IWCH_QP_STATE_ERROR; iwch_modify_qp(ep->com.qp->rhp, - ep->com.qp, IWCH_QP_ATTR_NEXT_STATE, - &attrs, 1); + ep->com.qp, + IWCH_QP_ATTR_NEXT_STATE, + &attrs, 1); + abort_connection(ep); } - if (release) - put_ep(&ep->com); - return CPL_RET_BUF_DONE; + + m_freem(m); + return (0); } static void @@ -1181,24 +1129,29 @@ ep_timeout(void *arg) struct iwch_ep *ep = (struct iwch_ep *)arg; struct iwch_qp_attributes attrs; int err = 0; + int abort = 1; mtx_lock(&ep->com.lock); CTR4(KTR_IW_CXGB, "%s ep %p so %p state %s", __FUNCTION__, ep, ep->com.so, states[ep->com.state]); switch (ep->com.state) { case MPA_REQ_SENT: + __state_set(&ep->com, ABORTING); connect_reply_upcall(ep, -ETIMEDOUT); break; case MPA_REQ_WAIT: + __state_set(&ep->com, ABORTING); break; case CLOSING: case MORIBUND: if (ep->com.cm_id && ep->com.qp) err = 1; + __state_set(&ep->com, ABORTING); break; default: - panic("unknown state: %d\n", ep->com.state); + CTR3(KTR_IW_CXGB, "%s unexpected state ep %p state %u\n", + __func__, ep, ep->com.state); + abort = 0; } - __state_set(&ep->com, ABORTING); mtx_unlock(&ep->com.lock); if (err){ attrs.next_state = IWCH_QP_STATE_ERROR; @@ -1206,7 +1159,8 @@ ep_timeout(void *arg) ep->com.qp, IWCH_QP_ATTR_NEXT_STATE, &attrs, 1); } - abort_connection(ep); + if (abort) + abort_connection(ep); put_ep(&ep->com); } @@ -1228,6 +1182,7 @@ iwch_reject_cr(struct iw_cm_id *cm_id, const void *pdata, u8 pdata_len) err = send_mpa_reject(ep, pdata, pdata_len); err = soshutdown(ep->com.so, 3); } + put_ep(&ep->com); return 0; } @@ -1242,8 +1197,10 @@ iwch_accept_cr(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param) struct iwch_qp *qp = get_qhp(h, conn_param->qpn); CTR4(KTR_IW_CXGB, "%s ep %p so %p state %s", __FUNCTION__, ep, ep->com.so, states[ep->com.state]); - if (state_read(&ep->com) == DEAD) - return (-ECONNRESET); + if (state_read(&ep->com) == DEAD) { + err = -ECONNRESET; + goto err; + } PANIC_IF(state_read(&ep->com) != MPA_REQ_RCVD); PANIC_IF(!qp); @@ -1251,7 +1208,8 @@ iwch_accept_cr(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param) if ((conn_param->ord > qp->rhp->attr.max_rdma_read_qp_depth) || (conn_param->ird > qp->rhp->attr.max_rdma_reads_per_qp)) { abort_connection(ep); - return (-EINVAL); + err = -EINVAL; + goto err; } cm_id->add_ref(cm_id); @@ -1263,11 +1221,10 @@ iwch_accept_cr(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param) ep->ird = conn_param->ird; ep->ord = conn_param->ord; CTR3(KTR_IW_CXGB, "%s ird %d ord %d", __FUNCTION__, ep->ird, ep->ord); - get_ep(&ep->com); /* bind QP to EP and move to RTS */ attrs.mpa_attr = ep->mpa_attr; - attrs.max_ird = ep->ord; + attrs.max_ird = ep->ird; attrs.max_ord = ep->ord; attrs.llp_stream_handle = ep; attrs.next_state = IWCH_QP_STATE_RTS; @@ -1283,20 +1240,21 @@ iwch_accept_cr(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param) ep->com.qp, mask, &attrs, 1); if (err) - goto err; + goto err1; err = send_mpa_reply(ep, conn_param->private_data, conn_param->private_data_len); if (err) - goto err; + goto err1; state_set(&ep->com, FPDU_MODE); established_upcall(ep); put_ep(&ep->com); return 0; -err: +err1: ep->com.cm_id = NULL; ep->com.qp = NULL; cm_id->rem_ref(cm_id); +err: put_ep(&ep->com); return err; } @@ -1312,15 +1270,6 @@ static int init_sock(struct iwch_ep_common *epc) epc->so->so_state |= SS_NBIO; SOCK_UNLOCK(epc->so); sopt.sopt_dir = SOPT_SET; - sopt.sopt_level = SOL_SOCKET; - sopt.sopt_name = SO_NO_DDP; - sopt.sopt_val = (caddr_t)&on; - sopt.sopt_valsize = sizeof on; - sopt.sopt_td = NULL; - err = sosetopt(epc->so, &sopt); - if (err) - printf("%s can't set SO_NO_DDP err %d\n", __FUNCTION__, err); - sopt.sopt_dir = SOPT_SET; sopt.sopt_level = IPPROTO_TCP; sopt.sopt_name = TCP_NODELAY; sopt.sopt_val = (caddr_t)&on; @@ -1400,16 +1349,14 @@ iwch_connect(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param) if (!(rt->rt_ifp->if_flags & IFCAP_TOE)) { printf("%s - interface not TOE capable.\n", __FUNCTION__); - goto fail3; + RTFREE(rt); + goto fail2; } tdev = TOEDEV(rt->rt_ifp); if (tdev == NULL) { printf("%s - No toedev for interface.\n", __FUNCTION__); - goto fail3; - } - if (!tdev->tod_can_offload(tdev, ep->com.so)) { - printf("%s - interface cannot offload!.\n", __FUNCTION__); - goto fail3; + RTFREE(rt); + goto fail2; } RTFREE(rt); @@ -1420,8 +1367,6 @@ iwch_connect(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param) ep->com.thread); if (!err) goto out; -fail3: - RTFREE(ep->dst); fail2: put_ep(&ep->com); out: @@ -1458,7 +1403,7 @@ iwch_create_listen(struct iw_cm_id *cm_id, int backlog) cm_id->provider_data = ep; goto out; } - close_socket(&ep->com); + close_socket(&ep->com, 0); fail: cm_id->rem_ref(cm_id); put_ep(&ep->com); @@ -1474,7 +1419,7 @@ iwch_destroy_listen(struct iw_cm_id *cm_id) CTR2(KTR_IW_CXGB, "%s ep %p", __FUNCTION__, ep); state_set(&ep->com, DEAD); - close_socket(&ep->com); + close_socket(&ep->com, 0); cm_id->rem_ref(cm_id); put_ep(&ep->com); return 0; @@ -1493,47 +1438,48 @@ iwch_ep_disconnect(struct iwch_ep *ep, int abrupt, int flags) CTR5(KTR_IW_CXGB, "%s ep %p so %p state %s, abrupt %d", __FUNCTION__, ep, ep->com.so, states[ep->com.state], abrupt); - if (ep->com.state == DEAD) { - CTR2(KTR_IW_CXGB, "%s already dead ep %p", __FUNCTION__, ep); - goto out; - } - - if (abrupt) { - if (ep->com.state != ABORTING) { - ep->com.state = ABORTING; - close = 1; - } - goto out; - } - switch (ep->com.state) { case MPA_REQ_WAIT: case MPA_REQ_SENT: case MPA_REQ_RCVD: case MPA_REP_SENT: case FPDU_MODE: - start_ep_timer(ep); - ep->com.state = CLOSING; close = 1; + if (abrupt) + ep->com.state = ABORTING; + else { + ep->com.state = CLOSING; + start_ep_timer(ep); + } break; case CLOSING: - ep->com.state = MORIBUND; close = 1; + if (abrupt) { + stop_ep_timer(ep); + ep->com.state = ABORTING; + } else + ep->com.state = MORIBUND; break; case MORIBUND: case ABORTING: + case DEAD: + CTR3(KTR_IW_CXGB, "%s ignoring disconnect ep %p state %u\n", + __func__, ep, ep->com.state); break; default: panic("unknown state: %d\n", ep->com.state); break; } -out: + mtx_unlock(&ep->com.lock); if (close) { if (abrupt) abort_connection(ep); - else + else { + if (!ep->parent_ep) + __state_set(&ep->com, MORIBUND); shutdown_socket(&ep->com); + } } return 0; } @@ -1587,7 +1533,7 @@ process_connected(struct iwch_ep *ep) send_mpa_req(ep); } else { connect_reply_upcall(ep, -ep->com.so->so_error); - close_socket(&ep->com); + close_socket(&ep->com, 0); state_set(&ep->com, DEAD); put_ep(&ep->com); } @@ -1643,10 +1589,20 @@ process_newconn(struct iwch_ep *parent_ep) } CTR3(KTR_IW_CXGB, "%s remote addr %s port %d", __FUNCTION__, inet_ntoa(remote->sin_addr), ntohs(remote->sin_port)); + child_ep->com.tdev = parent_ep->com.tdev; + child_ep->com.local_addr.sin_family = parent_ep->com.local_addr.sin_family; + child_ep->com.local_addr.sin_port = parent_ep->com.local_addr.sin_port; + child_ep->com.local_addr.sin_addr.s_addr = parent_ep->com.local_addr.sin_addr.s_addr; + child_ep->com.local_addr.sin_len = parent_ep->com.local_addr.sin_len; + child_ep->com.remote_addr.sin_family = remote->sin_family; + child_ep->com.remote_addr.sin_port = remote->sin_port; + child_ep->com.remote_addr.sin_addr.s_addr = remote->sin_addr.s_addr; + child_ep->com.remote_addr.sin_len = remote->sin_len; child_ep->com.so = child_so; child_ep->com.cm_id = NULL; child_ep->com.thread = parent_ep->com.thread; child_ep->parent_ep = parent_ep; + free(remote, M_SONAME); get_ep(&parent_ep->com); child_ep->parent_ep = parent_ep; @@ -1747,17 +1703,30 @@ iwch_cm_init(void) } taskqueue_start_threads(&iw_cxgb_taskq, 1, PI_NET, "iw_cxgb taskq"); TASK_INIT(&iw_cxgb_task, 0, process_req, NULL); - t3tom_register_cpl_handler(CPL_RDMA_TERMINATE, terminate); - t3tom_register_cpl_handler(CPL_RDMA_EC_STATUS, ec_status); - return 0; + return (0); } void iwch_cm_term(void) { - t3tom_register_cpl_handler(CPL_RDMA_TERMINATE, NULL); - t3tom_register_cpl_handler(CPL_RDMA_EC_STATUS, NULL); + taskqueue_drain(iw_cxgb_taskq, &iw_cxgb_task); taskqueue_free(iw_cxgb_taskq); } +void +iwch_cm_init_cpl(struct adapter *sc) +{ + + t3_register_cpl_handler(sc, CPL_RDMA_TERMINATE, terminate); + t3_register_cpl_handler(sc, CPL_RDMA_EC_STATUS, ec_status); +} + +void +iwch_cm_term_cpl(struct adapter *sc) +{ + + t3_register_cpl_handler(sc, CPL_RDMA_TERMINATE, NULL); + t3_register_cpl_handler(sc, CPL_RDMA_EC_STATUS, NULL); +} +#endif diff --git a/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_cm.h b/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_cm.h index 4250be33300a..ef76729f452a 100644 --- a/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_cm.h +++ b/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_cm.h @@ -31,8 +31,8 @@ POSSIBILITY OF SUCH DAMAGE. #ifndef _IWCH_CM_H_ #define _IWCH_CM_H_ -#include -#include +#include +#include #include #include #include @@ -42,21 +42,21 @@ POSSIBILITY OF SUCH DAMAGE. #define MPA_KEY_REP "MPA ID Rep Frame" #define MPA_MAX_PRIVATE_DATA 256 -#define MPA_REV o0 /* XXX - amso1100 uses rev 0 ! */ +#define MPA_REV 0 /* XXX - amso1100 uses rev 0 ! */ #define MPA_REJECT 0x20 #define MPA_CRC 0x40 #define MPA_MARKERS 0x80 #define MPA_FLAGS_MASK 0xE0 #define put_ep(ep) { \ - CTR4(KTR_IW_CXGB, "put_ep (via %s:%u) ep %p refcnt %d\n", __FUNCTION__, __LINE__, \ + CTR4(KTR_IW_CXGB, "put_ep (via %s:%u) ep %p refcnt %d", __FUNCTION__, __LINE__, \ ep, atomic_load_acq_int(&((ep)->refcount))); \ if (refcount_release(&((ep)->refcount))) \ __free_ep(ep); \ } #define get_ep(ep) { \ - CTR4(KTR_IW_CXGB, "get_ep (via %s:%u) ep %p, refcnt %d\n", __FUNCTION__, __LINE__, \ + CTR4(KTR_IW_CXGB, "get_ep (via %s:%u) ep %p, refcnt %d", __FUNCTION__, __LINE__, \ ep, atomic_load_acq_int(&((ep)->refcount))); \ refcount_acquire(&((ep)->refcount)); \ } @@ -148,7 +148,7 @@ struct iwch_ep_common { TAILQ_ENTRY(iwch_ep_common) entry; struct iw_cm_id *cm_id; struct iwch_qp *qp; - struct t3cdev *tdev; + struct toedev *tdev; enum iwch_ep_state state; u_int refcount; struct cv waitq; @@ -176,7 +176,6 @@ struct iwch_ep { u32 snd_seq; u32 rcv_seq; struct l2t_entry *l2t; - struct rtentry *dst; struct mbuf *mpa_mbuf; struct iwch_mpa_attributes mpa_attr; unsigned int mpa_pkt_len; @@ -237,13 +236,13 @@ int iwch_destroy_listen(struct iw_cm_id *cm_id); int iwch_reject_cr(struct iw_cm_id *cm_id, const void *pdata, u8 pdata_len); int iwch_accept_cr(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param); int iwch_ep_disconnect(struct iwch_ep *ep, int abrupt, int flags); -int iwch_quiesce_tid(struct iwch_ep *ep); -int iwch_resume_tid(struct iwch_ep *ep); void __free_ep(struct iwch_ep_common *ep); void iwch_rearp(struct iwch_ep *ep); int iwch_ep_redirect(void *ctx, struct rtentry *old, struct rtentry *new, struct l2t_entry *l2t); int iwch_cm_init(void); void iwch_cm_term(void); +void iwch_cm_init_cpl(struct adapter *); +void iwch_cm_term_cpl(struct adapter *); #endif /* _IWCH_CM_H_ */ diff --git a/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_cq.c b/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_cq.c index bb564bb5b42b..9ad6ed9a1d67 100644 --- a/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_cq.c +++ b/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_cq.c @@ -30,11 +30,13 @@ POSSIBILITY OF SUCH DAMAGE. #include __FBSDID("$FreeBSD$"); +#include "opt_inet.h" + +#ifdef TCP_OFFLOAD #include #include #include #include -#include #include #include #include @@ -59,9 +61,11 @@ __FBSDID("$FreeBSD$"); #include #include -#include -#include -#include +#include +#include +#include +#include +#include #include #include @@ -261,4 +265,4 @@ int iwch_poll_cq(struct ib_cq *ibcq, int num_entries, struct ib_wc *wc) return npolled; } } - +#endif diff --git a/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_dbg.c b/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_dbg.c index ac9c74283047..f5f59a3fb2f6 100644 --- a/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_dbg.c +++ b/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_dbg.c @@ -30,11 +30,12 @@ POSSIBILITY OF SUCH DAMAGE. #include __FBSDID("$FreeBSD$"); +#include "opt_inet.h" + #include #include #include #include -#include #include #include #include @@ -60,11 +61,13 @@ __FBSDID("$FreeBSD$"); #include -#include -#include -#include +#include +#include +#include +#include +#include -#ifdef DEBUG +#if defined(INVARIANTS) && defined(TCP_OFFLOAD) #include #include #include @@ -74,75 +77,100 @@ __FBSDID("$FreeBSD$"); #include #include +static int +cxio_rdma_get_mem(struct cxio_rdev *rdev, struct ch_mem_range *m) +{ + struct adapter *sc = rdev->adap; + struct mc7 *mem; + + if ((m->addr & 7) || (m->len & 7)) + return (EINVAL); + if (m->mem_id == MEM_CM) + mem = &sc->cm; + else if (m->mem_id == MEM_PMRX) + mem = &sc->pmrx; + else if (m->mem_id == MEM_PMTX) + mem = &sc->pmtx; + else + return (EINVAL); + + return (t3_mc7_bd_read(mem, m->addr/8, m->len/8, (u64 *)m->buf)); +} + void cxio_dump_tpt(struct cxio_rdev *rdev, uint32_t stag) { - struct ch_mem_range *m; + struct ch_mem_range m; u64 *data; + u32 addr; int rc; int size = 32; - m = kmalloc(sizeof(*m) + size, M_NOWAIT); - if (!m) { + m.buf = malloc(size, M_DEVBUF, M_NOWAIT); + if (m.buf == NULL) { CTR1(KTR_IW_CXGB, "%s couldn't allocate memory.", __FUNCTION__); return; } - m->mem_id = MEM_PMRX; - m->addr = (stag>>8) * 32 + rdev->rnic_info.tpt_base; - m->len = size; - CTR3(KTR_IW_CXGB, "%s TPT addr 0x%x len %d", __FUNCTION__, m->addr, m->len); - rc = rdev->t3cdev_p->ctl(rdev->t3cdev_p, RDMA_GET_MEM, m); + m.mem_id = MEM_PMRX; + m.addr = (stag >> 8) * 32 + rdev->rnic_info.tpt_base; + m.len = size; + CTR3(KTR_IW_CXGB, "%s TPT addr 0x%x len %d", __FUNCTION__, m.addr, m.len); + + rc = cxio_rdma_get_mem(rdev, &m); if (rc) { CTR2(KTR_IW_CXGB, "%s toectl returned error %d", __FUNCTION__, rc); - free(m, M_DEVBUF); + free(m.buf, M_DEVBUF); return; } - data = (u64 *)m->buf; + data = (u64 *)m.buf; + addr = m.addr; while (size > 0) { - CTR2(KTR_IW_CXGB, "TPT %08x: %016llx", m->addr, (unsigned long long) *data); + CTR2(KTR_IW_CXGB, "TPT %08x: %016llx", addr, (unsigned long long) *data); size -= 8; data++; - m->addr += 8; + addr += 8; } - free(m, M_DEVBUF); + free(m.buf, M_DEVBUF); } void cxio_dump_pbl(struct cxio_rdev *rdev, uint32_t pbl_addr, uint32_t len, u8 shift) { - struct ch_mem_range *m; + struct ch_mem_range m; u64 *data; + u32 addr; int rc; int size, npages; shift += 12; npages = (len + (1ULL << shift) - 1) >> shift; size = npages * sizeof(u64); - - m = kmalloc(sizeof(*m) + size, M_NOWAIT); - if (!m) { + m.buf = malloc(size, M_DEVBUF, M_NOWAIT); + if (m.buf == NULL) { CTR1(KTR_IW_CXGB, "%s couldn't allocate memory.", __FUNCTION__); return; } - m->mem_id = MEM_PMRX; - m->addr = pbl_addr; - m->len = size; + m.mem_id = MEM_PMRX; + m.addr = pbl_addr; + m.len = size; CTR4(KTR_IW_CXGB, "%s PBL addr 0x%x len %d depth %d", - __FUNCTION__, m->addr, m->len, npages); - rc = rdev->t3cdev_p->ctl(rdev->t3cdev_p, RDMA_GET_MEM, m); + __FUNCTION__, m.addr, m.len, npages); + + rc = cxio_rdma_get_mem(rdev, &m); if (rc) { CTR2(KTR_IW_CXGB, "%s toectl returned error %d", __FUNCTION__, rc); - free(m, M_DEVBUF); + free(m.buf, M_DEVBUF); return; } - data = (u64 *)m->buf; + data = (u64 *)m.buf; + addr = m.addr; while (size > 0) { - CTR2(KTR_IW_CXGB, "PBL %08x: %016llx", m->addr, (unsigned long long) *data); + CTR2(KTR_IW_CXGB, "PBL %08x: %016llx", addr, (unsigned long long) *data); size -= 8; data++; - m->addr += 8; + addr += 8; } - free(m, M_DEVBUF); + free(m.buf, M_DEVBUF); } void cxio_dump_wqe(union t3_wr *wqe) @@ -175,70 +203,76 @@ void cxio_dump_wce(struct t3_cqe *wce) void cxio_dump_rqt(struct cxio_rdev *rdev, uint32_t hwtid, int nents) { - struct ch_mem_range *m; + struct ch_mem_range m; int size = nents * 64; u64 *data; + u32 addr; int rc; - m = kmalloc(sizeof(*m) + size, M_NOWAIT); - if (!m) { + m.buf = malloc(size, M_DEVBUF, M_NOWAIT); + if (m.buf == NULL) { CTR1(KTR_IW_CXGB, "%s couldn't allocate memory.", __FUNCTION__); return; } - m->mem_id = MEM_PMRX; - m->addr = ((hwtid)<<10) + rdev->rnic_info.rqt_base; - m->len = size; - CTR3(KTR_IW_CXGB, "%s RQT addr 0x%x len %d", __FUNCTION__, m->addr, m->len); - rc = rdev->t3cdev_p->ctl(rdev->t3cdev_p, RDMA_GET_MEM, m); + m.mem_id = MEM_PMRX; + m.addr = ((hwtid)<<10) + rdev->rnic_info.rqt_base; + m.len = size; + CTR3(KTR_IW_CXGB, "%s RQT addr 0x%x len %d", __FUNCTION__, m.addr, m.len); + + rc = cxio_rdma_get_mem(rdev, &m); if (rc) { CTR2(KTR_IW_CXGB, "%s toectl returned error %d", __FUNCTION__, rc); - free(m, M_DEVBUF); + free(m.buf, M_DEVBUF); return; } - data = (u64 *)m->buf; + data = (u64 *)m.buf; + addr = m.addr; while (size > 0) { - CTR2(KTR_IW_CXGB, "RQT %08x: %016llx", m->addr, (unsigned long long) *data); + CTR2(KTR_IW_CXGB, "RQT %08x: %016llx", addr, (unsigned long long) *data); size -= 8; data++; - m->addr += 8; + addr += 8; } - free(m, M_DEVBUF); + free(m.buf, M_DEVBUF); } void cxio_dump_tcb(struct cxio_rdev *rdev, uint32_t hwtid) { - struct ch_mem_range *m; + struct ch_mem_range m; int size = TCB_SIZE; uint32_t *data; + uint32_t addr; int rc; - m = kmalloc(sizeof(*m) + size, M_NOWAIT); - if (!m) { + m.buf = malloc(size, M_DEVBUF, M_NOWAIT); + if (m.buf == NULL) { CTR1(KTR_IW_CXGB, "%s couldn't allocate memory.", __FUNCTION__); return; } - m->mem_id = MEM_CM; - m->addr = hwtid * size; - m->len = size; - CTR3(KTR_IW_CXGB, "%s TCB %d len %d", __FUNCTION__, m->addr, m->len); - rc = rdev->t3cdev_p->ctl(rdev->t3cdev_p, RDMA_GET_MEM, m); + m.mem_id = MEM_CM; + m.addr = hwtid * size; + m.len = size; + CTR3(KTR_IW_CXGB, "%s TCB %d len %d", __FUNCTION__, m.addr, m.len); + + rc = cxio_rdma_get_mem(rdev, &m); if (rc) { CTR2(KTR_IW_CXGB, "%s toectl returned error %d", __FUNCTION__, rc); - free(m, M_DEVBUF); + free(m.buf, M_DEVBUF); return; } - data = (uint32_t *)m->buf; + data = (uint32_t *)m.buf; + addr = m.addr; while (size > 0) { printf("%2u: %08x %08x %08x %08x %08x %08x %08x %08x\n", - m->addr, + addr, *(data+2), *(data+3), *(data),*(data+1), *(data+6), *(data+7), *(data+4), *(data+5)); size -= 32; data += 8; - m->addr += 32; + addr += 32; } - free(m, M_DEVBUF); + free(m.buf, M_DEVBUF); } #endif diff --git a/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_ev.c b/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_ev.c index cf0891d7fe73..65b7a2d97dbc 100644 --- a/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_ev.c +++ b/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_ev.c @@ -29,11 +29,13 @@ POSSIBILITY OF SUCH DAMAGE. #include __FBSDID("$FreeBSD$"); +#include "opt_inet.h" + +#ifdef TCP_OFFLOAD #include #include #include #include -#include #include #include #include @@ -59,9 +61,11 @@ __FBSDID("$FreeBSD$"); #include -#include -#include -#include +#include +#include +#include +#include +#include #include #include @@ -81,11 +85,22 @@ post_qp_event(struct iwch_dev *rnicp, struct iwch_qp *qhp, struct iwch_cq *chp, struct ib_event event; struct iwch_qp_attributes attrs; + mtx_lock(&rnicp->lock); + + if (!qhp) { + CTR3(KTR_IW_CXGB, "%s unaffiliated error 0x%x qpid 0x%x\n", + __func__, CQE_STATUS(rsp_msg->cqe), + CQE_QPID(rsp_msg->cqe)); + mtx_unlock(&rnicp->lock); + return; + } + if ((qhp->attr.state == IWCH_QP_STATE_ERROR) || (qhp->attr.state == IWCH_QP_STATE_TERMINATE)) { CTR4(KTR_IW_CXGB, "%s AE received after RTS - " "qp state %d qpid 0x%x status 0x%x", __FUNCTION__, qhp->attr.state, qhp->wq.qpid, CQE_STATUS(rsp_msg->cqe)); + mtx_unlock(&rnicp->lock); return; } @@ -95,6 +110,15 @@ post_qp_event(struct iwch_dev *rnicp, struct iwch_qp *qhp, struct iwch_cq *chp, CQE_STATUS(rsp_msg->cqe), CQE_TYPE(rsp_msg->cqe), CQE_WRID_HI(rsp_msg->cqe), CQE_WRID_LOW(rsp_msg->cqe)); + mtx_unlock(&rnicp->lock); + + if (qhp->attr.state == IWCH_QP_STATE_RTS) { + attrs.next_state = IWCH_QP_STATE_TERMINATE; + iwch_modify_qp(qhp->rhp, qhp, IWCH_QP_ATTR_NEXT_STATE, + &attrs, 1); + if (send_term) + iwch_post_terminate(qhp, rsp_msg); + } event.event = ib_event; event.device = chp->ibcq.device; @@ -106,25 +130,17 @@ post_qp_event(struct iwch_dev *rnicp, struct iwch_qp *qhp, struct iwch_cq *chp, if (qhp->ibqp.event_handler) (*qhp->ibqp.event_handler)(&event, qhp->ibqp.qp_context); - if (qhp->attr.state == IWCH_QP_STATE_RTS) { - attrs.next_state = IWCH_QP_STATE_TERMINATE; - iwch_modify_qp(qhp->rhp, qhp, IWCH_QP_ATTR_NEXT_STATE, - &attrs, 1); - if (send_term) - iwch_post_terminate(qhp, rsp_msg); - } + (*chp->ibcq.comp_handler)(&chp->ibcq, chp->ibcq.cq_context); } void -iwch_ev_dispatch(struct cxio_rdev *rdev_p, struct mbuf *m) +iwch_ev_dispatch(struct iwch_dev *rnicp, struct mbuf *m) { - struct iwch_dev *rnicp; struct respQ_msg_t *rsp_msg = (struct respQ_msg_t *) m->m_data; struct iwch_cq *chp; struct iwch_qp *qhp; u32 cqid = RSPQ_CQID(rsp_msg); - rnicp = (struct iwch_dev *) rdev_p->ulp; mtx_lock(&rnicp->lock); chp = get_chp(rnicp, cqid); qhp = get_qhp(rnicp, CQE_QPID(rsp_msg->cqe)); @@ -136,7 +152,7 @@ iwch_ev_dispatch(struct cxio_rdev *rdev_p, struct mbuf *m) CQE_TYPE(rsp_msg->cqe), CQE_WRID_HI(rsp_msg->cqe), CQE_WRID_LOW(rsp_msg->cqe)); mtx_unlock(&rnicp->lock); - goto out; + return; } iwch_qp_add_ref(&qhp->ibqp); mtx_lock(&chp->lock); @@ -200,12 +216,6 @@ iwch_ev_dispatch(struct cxio_rdev *rdev_p, struct mbuf *m) case TPT_ERR_BOUND: case TPT_ERR_INVALIDATE_SHARED_MR: case TPT_ERR_INVALIDATE_MR_WITH_MW_BOUND: - log(LOG_ERR, "%s - CQE Err qpid 0x%x opcode %d status 0x%x " - "type %d wrid.hi 0x%x wrid.lo 0x%x \n", __FUNCTION__, - CQE_QPID(rsp_msg->cqe), CQE_OPCODE(rsp_msg->cqe), - CQE_STATUS(rsp_msg->cqe), CQE_TYPE(rsp_msg->cqe), - CQE_WRID_HI(rsp_msg->cqe), CQE_WRID_LOW(rsp_msg->cqe)); - (*chp->ibcq.comp_handler)(&chp->ibcq, chp->ibcq.cq_context); post_qp_event(rnicp, qhp, chp, rsp_msg, IB_EVENT_QP_ACCESS_ERR, 1); break; @@ -248,6 +258,5 @@ iwch_ev_dispatch(struct cxio_rdev *rdev_p, struct mbuf *m) wakeup(chp); mtx_unlock(&chp->lock); iwch_qp_rem_ref(&qhp->ibqp); -out: - m_free(m); } +#endif diff --git a/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_hal.c b/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_hal.c index cf42e38774ac..24272636fdcb 100644 --- a/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_hal.c +++ b/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_hal.c @@ -1,4 +1,3 @@ - /************************************************************************** Copyright (c) 2007, Chelsio Inc. @@ -30,11 +29,13 @@ POSSIBILITY OF SUCH DAMAGE. #include __FBSDID("$FreeBSD$"); +#include "opt_inet.h" + +#ifdef TCP_OFFLOAD #include #include #include #include -#include #include #include #include @@ -47,6 +48,8 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include +#include #include #include #include @@ -59,12 +62,25 @@ __FBSDID("$FreeBSD$"); #include #include +#include +#include #include +#include +#include +#include +#include +#include +#include +#include -#include +#include +#include +#include #include #include +#include +#include #include #include #include @@ -72,29 +88,21 @@ __FBSDID("$FreeBSD$"); #include #include -static TAILQ_HEAD( ,cxio_rdev) rdev_list; -static cxio_hal_ev_callback_func_t cxio_ev_cb = NULL; - -static struct cxio_rdev * -cxio_hal_find_rdev_by_name(char *dev_name) +/* Response queue used for RDMA events. */ +#define ASYNC_NOTIF_RSPQ 0 +static inline int +cxio_rdma_cq_setup(struct cxio_rdev *rdev_p, unsigned id, uint64_t base_addr, + unsigned size, unsigned ovfl_mode, unsigned credits, unsigned credit_thres) { - struct cxio_rdev *rdev; + struct adapter *sc = rdev_p->adap; + int rc; - TAILQ_FOREACH(rdev, &rdev_list, entry) - if (!strcmp(rdev->dev_name, dev_name)) - return rdev; - return NULL; -} + mtx_lock_spin(&sc->sge.reg_lock); + rc = -t3_sge_init_cqcntxt(sc, id, base_addr, size, ASYNC_NOTIF_RSPQ, + ovfl_mode, credits, credit_thres); + mtx_unlock_spin(&sc->sge.reg_lock); -struct cxio_rdev * -cxio_hal_find_rdev_by_t3cdev(struct t3cdev *tdev) -{ - struct cxio_rdev *rdev; - - TAILQ_FOREACH(rdev, &rdev_list, entry) - if (rdev->t3cdev_p == tdev) - return rdev; - return NULL; + return (rc); } int @@ -104,12 +112,14 @@ cxio_hal_cq_op(struct cxio_rdev *rdev_p, struct t3_cq *cq, int ret; struct t3_cqe *cqe; u32 rptr; + struct adapter *sc = rdev_p->adap; - struct rdma_cq_op setup; - setup.id = cq->cqid; - setup.credits = (op == CQ_CREDIT_UPDATE) ? credit : 0; - setup.op = op; - ret = rdev_p->t3cdev_p->ctl(rdev_p->t3cdev_p, RDMA_CQ_OP, &setup); + if (op != CQ_CREDIT_UPDATE) + credit = 0; + + mtx_lock_spin(&sc->sge.reg_lock); + ret = t3_sge_cqcntxt_op(sc, cq->cqid, op, credit); + mtx_unlock_spin(&sc->sge.reg_lock); if ((ret < 0) || (op == CQ_CREDIT_UPDATE)) return (ret); @@ -140,30 +150,26 @@ cxio_hal_cq_op(struct cxio_rdev *rdev_p, struct t3_cq *cq, while (!CQ_VLD_ENTRY(rptr, cq->size_log2, cqe)) { DELAY(1); if (i++ > 1000000) { - PANIC_IF(1); + struct adapter *sc = rdev_p->adap; + log(LOG_ERR, "%s: stalled rnic\n", - rdev_p->dev_name); + device_get_nameunit(sc->dev)); + PANIC_IF(1); return (-EIO); } } - return 1; + return (1); } - return 0; + return (0); } static int cxio_hal_clear_cq_ctx(struct cxio_rdev *rdev_p, u32 cqid) { - struct rdma_cq_setup setup; - setup.id = cqid; - setup.base_addr = 0; /* NULL address */ - setup.size = 0; /* disaable the CQ */ - setup.credits = 0; - setup.credit_thres = 0; - setup.ovfl_mode = 0; - return (rdev_p->t3cdev_p->ctl(rdev_p->t3cdev_p, RDMA_CQ_SETUP, &setup)); + + return (cxio_rdma_cq_setup(rdev_p, cqid, 0, 0, 0, 0, 0)); } static int @@ -171,43 +177,38 @@ cxio_hal_clear_qp_ctx(struct cxio_rdev *rdev_p, u32 qpid) { u64 sge_cmd; struct t3_modify_qp_wr *wqe; - struct mbuf *m = m_gethdr(MT_DATA, M_NOWAIT); + struct mbuf *m; + + m = M_GETHDR_OFLD(0, CPL_PRIORITY_CONTROL, wqe); if (m == NULL) { CTR1(KTR_IW_CXGB, "%s m_gethdr failed", __FUNCTION__); return (-ENOMEM); } wqe = mtod(m, struct t3_modify_qp_wr *); - m->m_len = m->m_pkthdr.len = sizeof(*wqe); memset(wqe, 0, sizeof(*wqe)); build_fw_riwrh((struct fw_riwrh *) wqe, T3_WR_QP_MOD, 3, 0, qpid, 7); wqe->flags = htobe32(MODQP_WRITE_EC); sge_cmd = qpid << 8 | 3; wqe->sge_cmd = htobe64(sge_cmd); - m_set_priority(m, CPL_PRIORITY_CONTROL); - m_set_sgl(m, NULL); - m_set_sgllen(m, 0); - return (cxgb_ofld_send(rdev_p->t3cdev_p, m)); + return t3_offload_tx(rdev_p->adap, m); } int -cxio_create_cq(struct cxio_rdev *rdev_p, struct t3_cq *cq) +cxio_create_cq(struct cxio_rdev *rdev_p, struct t3_cq *cq, int kernel) { - struct rdma_cq_setup setup; int size = (1UL << (cq->size_log2)) * sizeof(struct t3_cqe); + size += 1; /* one extra page for storing cq-in-err state */ cq->cqid = cxio_hal_get_cqid(rdev_p->rscp); if (!cq->cqid) return (-ENOMEM); - cq->sw_queue = malloc(size, M_DEVBUF, M_NOWAIT|M_ZERO); - if (!cq->sw_queue) - return (-ENOMEM); -#if 0 - cq->queue = dma_alloc_coherent(rdev_p->rnic_info.pdev, - (1UL << (cq->size_log2)) * - sizeof(struct t3_cqe), - &(cq->dma_addr), M_NOWAIT); -#else - cq->queue = contigmalloc((1UL << (cq->size_log2))*sizeof(struct t3_cqe), + if (kernel) { + cq->sw_queue = malloc(size, M_DEVBUF, M_NOWAIT|M_ZERO); + if (!cq->sw_queue) + return (-ENOMEM); + } + + cq->queue = contigmalloc(size, M_DEVBUF, M_NOWAIT, 0ul, ~0ul, 4096, 0); if (cq->queue) cq->dma_addr = vtophys(cq->queue); @@ -215,35 +216,10 @@ cxio_create_cq(struct cxio_rdev *rdev_p, struct t3_cq *cq) free(cq->sw_queue, M_DEVBUF); return (-ENOMEM); } -#endif - -#ifdef notyet - pci_unmap_addr_set(cq, mapping, cq->dma_addr); -#endif memset(cq->queue, 0, size); - setup.id = cq->cqid; - setup.base_addr = (u64) (cq->dma_addr); - setup.size = 1UL << cq->size_log2; - setup.credits = 65535; - setup.credit_thres = 1; - if (rdev_p->t3cdev_p->type != T3A) - setup.ovfl_mode = 0; - else - setup.ovfl_mode = 1; - return (rdev_p->t3cdev_p->ctl(rdev_p->t3cdev_p, RDMA_CQ_SETUP, &setup)); -} -int -cxio_resize_cq(struct cxio_rdev *rdev_p, struct t3_cq *cq) -{ - struct rdma_cq_setup setup; - setup.id = cq->cqid; - setup.base_addr = (u64) (cq->dma_addr); - setup.size = 1UL << cq->size_log2; - setup.credits = setup.size; - setup.credit_thres = setup.size; /* TBD: overflow recovery */ - setup.ovfl_mode = 1; - return (rdev_p->t3cdev_p->ctl(rdev_p->t3cdev_p, RDMA_CQ_SETUP, &setup)); + return (cxio_rdma_cq_setup(rdev_p, cq->cqid, cq->dma_addr, + 1UL << cq->size_log2, 0, 65535, 1)); } static u32 @@ -325,7 +301,7 @@ cxio_create_qp(struct cxio_rdev *rdev_p, u32 kernel_domain, if (!wq->qpid) return (-ENOMEM); - wq->rq = malloc(depth * sizeof(u64), M_DEVBUF, M_NOWAIT|M_ZERO); + wq->rq = malloc(depth * sizeof(struct t3_swrq), M_DEVBUF, M_NOWAIT|M_ZERO); if (!wq->rq) goto err1; @@ -336,28 +312,19 @@ cxio_create_qp(struct cxio_rdev *rdev_p, u32 kernel_domain, wq->sq = malloc(depth * sizeof(struct t3_swsq), M_DEVBUF, M_NOWAIT|M_ZERO); if (!wq->sq) goto err3; -#if 0 - wq->queue = dma_alloc_coherent(rdev_p->rnic_info.pdev, - depth * sizeof(union t3_wr), - &(wq->dma_addr), M_NOWAIT); -#else wq->queue = contigmalloc(depth *sizeof(union t3_wr), M_DEVBUF, M_NOWAIT, 0ul, ~0ul, 4096, 0); if (wq->queue) wq->dma_addr = vtophys(wq->queue); - -#endif - if (!wq->queue) + else goto err4; memset(wq->queue, 0, depth * sizeof(union t3_wr)); -#ifdef notyet - pci_unmap_addr_set(wq, mapping, wq->dma_addr); -#endif wq->doorbell = rdev_p->rnic_info.kdb_addr; if (!kernel_domain) wq->udb = (u64)rdev_p->rnic_info.udbell_physbase + (wq->qpid << rdev_p->qpshift); + wq->rdev = rdev_p; CTR4(KTR_IW_CXGB, "%s qpid 0x%x doorbell 0x%p udb 0x%llx", __FUNCTION__, wq->qpid, wq->doorbell, (unsigned long long) wq->udb); return 0; @@ -431,10 +398,11 @@ insert_recv_cqe(struct t3_wq *wq, struct t3_cq *cq) cq->sw_wptr++; } -void +int cxio_flush_rq(struct t3_wq *wq, struct t3_cq *cq, int count) { u32 ptr; + int flushed = 0; CTR3(KTR_IW_CXGB, "%s wq %p cq %p", __FUNCTION__, wq, cq); @@ -442,8 +410,11 @@ cxio_flush_rq(struct t3_wq *wq, struct t3_cq *cq, int count) CTR4(KTR_IW_CXGB, "%s rq_rptr %u rq_wptr %u skip count %u", __FUNCTION__, wq->rq_rptr, wq->rq_wptr, count); ptr = wq->rq_rptr + count; - while (ptr++ != wq->rq_wptr) + while (ptr++ != wq->rq_wptr) { insert_recv_cqe(wq, cq); + flushed++; + } + return flushed; } static void @@ -468,19 +439,22 @@ insert_sq_cqe(struct t3_wq *wq, struct t3_cq *cq, cq->sw_wptr++; } -void +int cxio_flush_sq(struct t3_wq *wq, struct t3_cq *cq, int count) { __u32 ptr; + int flushed = 0; struct t3_swsq *sqp = wq->sq + Q_PTR2IDX(wq->sq_rptr, wq->sq_size_log2); ptr = wq->sq_rptr + count; - sqp += count; + sqp = wq->sq + Q_PTR2IDX(ptr, wq->sq_size_log2); while (ptr != wq->sq_wptr) { insert_sq_cqe(wq, cq, sqp); - sqp++; ptr++; + sqp = wq->sq + Q_PTR2IDX(ptr, wq->sq_size_log2); + flushed++; } + return flushed; } /* @@ -516,7 +490,7 @@ static int cqe_completes_wr(struct t3_cqe *cqe, struct t3_wq *wq) if ((CQE_OPCODE(*cqe) == T3_READ_RESP) && SQ_TYPE(*cqe)) return 0; - if ((CQE_OPCODE(*cqe) == T3_SEND) && RQ_TYPE(*cqe) && + if (CQE_OPCODE(*cqe) && RQ_TYPE(*cqe) && Q_EMPTY(wq->rq_rptr, wq->rq_wptr)) return 0; @@ -563,16 +537,8 @@ cxio_count_rcqes(struct t3_cq *cq, struct t3_wq *wq, int *count) static int cxio_hal_init_ctrl_cq(struct cxio_rdev *rdev_p) { - struct rdma_cq_setup setup; - setup.id = 0; - setup.base_addr = 0; /* NULL address */ - setup.size = 1; /* enable the CQ */ - setup.credits = 0; - /* force SGE to redirect to RspQ and interrupt */ - setup.credit_thres = 0; - setup.ovfl_mode = 1; - return (rdev_p->t3cdev_p->ctl(rdev_p->t3cdev_p, RDMA_CQ_SETUP, &setup)); + return (cxio_rdma_cq_setup(rdev_p, 0, 0, 1, 1, 0, 0)); } static int @@ -584,41 +550,28 @@ cxio_hal_init_ctrl_qp(struct cxio_rdev *rdev_p) struct t3_modify_qp_wr *wqe; struct mbuf *m; - m = m_gethdr(MT_DATA, M_NOWAIT); + m = M_GETHDR_OFLD(0, CPL_PRIORITY_CONTROL, wqe); if (m == NULL) { CTR1(KTR_IW_CXGB, "%s m_gethdr failed", __FUNCTION__); - return (-ENOMEM); + return (ENOMEM); } err = cxio_hal_init_ctrl_cq(rdev_p); if (err) { CTR2(KTR_IW_CXGB, "%s err %d initializing ctrl_cq", __FUNCTION__, err); goto err; } -#if 0 - rdev_p->ctrl_qp.workq = dma_alloc_coherent( - rdev_p->rnic_info.pdev, - (1 << T3_CTRL_QP_SIZE_LOG2) * - sizeof(union t3_wr), - &(rdev_p->ctrl_qp.dma_addr), - M_NOWAIT); -#else + rdev_p->ctrl_qp.workq = contigmalloc((1 << T3_CTRL_QP_SIZE_LOG2) *sizeof(union t3_wr), M_DEVBUF, M_NOWAIT, 0ul, ~0ul, 4096, 0); if (rdev_p->ctrl_qp.workq) rdev_p->ctrl_qp.dma_addr = vtophys(rdev_p->ctrl_qp.workq); - -#endif - - if (!rdev_p->ctrl_qp.workq) { + else { CTR1(KTR_IW_CXGB, "%s dma_alloc_coherent failed", __FUNCTION__); - err = -ENOMEM; + err = ENOMEM; goto err; } -#if 0 - pci_unmap_addr_set(&rdev_p->ctrl_qp, mapping, - rdev_p->ctrl_qp.dma_addr); -#endif - rdev_p->ctrl_qp.doorbell = (void /*__iomem */ *)rdev_p->rnic_info.kdb_addr; + + rdev_p->ctrl_qp.doorbell = rdev_p->rnic_info.kdb_addr; memset(rdev_p->ctrl_qp.workq, 0, (1 << T3_CTRL_QP_SIZE_LOG2) * sizeof(union t3_wr)); @@ -637,10 +590,8 @@ cxio_hal_init_ctrl_qp(struct cxio_rdev *rdev_p) ctx1 |= ((u64) (V_EC_BASE_HI((u32) base_addr & 0xf) | V_EC_RESPQ(0) | V_EC_TYPE(0) | V_EC_GEN(1) | V_EC_UP_TOKEN(T3_CTL_QP_TID) | F_EC_VALID)) << 32; - wqe = mtod(m, struct t3_modify_qp_wr *); - m->m_len = m->m_pkthdr.len = sizeof(*wqe); memset(wqe, 0, sizeof(*wqe)); - build_fw_riwrh((struct fw_riwrh *) wqe, T3_WR_QP_MOD, 3, 0, + build_fw_riwrh((struct fw_riwrh *) wqe, T3_WR_QP_MOD, 0, 0, T3_CTL_QP_TID, 7); wqe->flags = htobe32(MODQP_WRITE_EC); sge_cmd = (3ULL << 56) | FW_RI_SGEEC_START << 8 | 3; @@ -650,12 +601,9 @@ cxio_hal_init_ctrl_qp(struct cxio_rdev *rdev_p) CTR3(KTR_IW_CXGB, "CtrlQP dma_addr 0x%llx workq %p size %d", (unsigned long long) rdev_p->ctrl_qp.dma_addr, rdev_p->ctrl_qp.workq, 1 << T3_CTRL_QP_SIZE_LOG2); - m_set_priority(m, CPL_PRIORITY_CONTROL); - m_set_sgl(m, NULL); - m_set_sgllen(m, 0); - return (cxgb_ofld_send(rdev_p->t3cdev_p, m)); + return t3_offload_tx(rdev_p->adap, m); err: - m_free(m); + m_freem(m); return err; } @@ -681,7 +629,7 @@ cxio_hal_destroy_ctrl_qp(struct cxio_rdev *rdev_p) */ static int cxio_hal_ctrl_qp_write_mem(struct cxio_rdev *rdev_p, u32 addr, - u32 len, void *data, int completion) + u32 len, void *data) { u32 i, nr_wqe, copy_len; u8 *copy_data; @@ -718,7 +666,7 @@ cxio_hal_ctrl_qp_write_mem(struct cxio_rdev *rdev_p, u32 addr, flag = 0; if (i == (nr_wqe - 1)) { /* last WQE */ - flag = completion ? T3_COMPLETION_FLAG : 0; + flag = T3_COMPLETION_FLAG; if (len % 32) utx_len = len / 32 + 1; else @@ -786,14 +734,13 @@ static int __cxio_tpt_op(struct cxio_rdev *rdev_p, u32 reset_tpt_entry, u32 *stag, u8 stag_state, u32 pdid, enum tpt_mem_type type, enum tpt_mem_perm perm, - u32 zbva, u64 to, u32 len, u8 page_size, __be64 *pbl, - u32 *pbl_size, u32 *pbl_addr) + u32 zbva, u64 to, u32 len, u8 page_size, + u32 pbl_size, u32 pbl_addr) { int err; struct tpt_entry tpt; u32 stag_idx; u32 wptr; - int rereg = (*stag != T3_STAG_UNSET); stag_state = stag_state > 0; stag_idx = (*stag) >> 8; @@ -807,30 +754,8 @@ __cxio_tpt_op(struct cxio_rdev *rdev_p, u32 reset_tpt_entry, CTR5(KTR_IW_CXGB, "%s stag_state 0x%0x type 0x%0x pdid 0x%0x, stag_idx 0x%x", __FUNCTION__, stag_state, type, pdid, stag_idx); - if (reset_tpt_entry) - cxio_hal_pblpool_free(rdev_p, *pbl_addr, *pbl_size << 3); - else if (!rereg) { - *pbl_addr = cxio_hal_pblpool_alloc(rdev_p, *pbl_size << 3); - if (!*pbl_addr) { - return (-ENOMEM); - } - } - mtx_lock(&rdev_p->ctrl_qp.lock); - /* write PBL first if any - update pbl only if pbl list exist */ - if (pbl) { - - CTR4(KTR_IW_CXGB, "%s *pdb_addr 0x%x, pbl_base 0x%x, pbl_size %d", - __FUNCTION__, *pbl_addr, rdev_p->rnic_info.pbl_base, - *pbl_size); - err = cxio_hal_ctrl_qp_write_mem(rdev_p, - (*pbl_addr >> 5), - (*pbl_size << 3), pbl, 0); - if (err) - goto ret; - } - /* write TPT entry */ if (reset_tpt_entry) memset(&tpt, 0, sizeof(tpt)); @@ -845,23 +770,23 @@ __cxio_tpt_op(struct cxio_rdev *rdev_p, u32 reset_tpt_entry, V_TPT_ADDR_TYPE((zbva ? TPT_ZBTO : TPT_VATO)) | V_TPT_PAGE_SIZE(page_size)); tpt.rsvd_pbl_addr = reset_tpt_entry ? 0 : - htobe32(V_TPT_PBL_ADDR(PBL_OFF(rdev_p, *pbl_addr)>>3)); + htobe32(V_TPT_PBL_ADDR(PBL_OFF(rdev_p, pbl_addr)>>3)); tpt.len = htobe32(len); tpt.va_hi = htobe32((u32) (to >> 32)); tpt.va_low_or_fbo = htobe32((u32) (to & 0xFFFFFFFFULL)); tpt.rsvd_bind_cnt_or_pstag = 0; tpt.rsvd_pbl_size = reset_tpt_entry ? 0 : - htobe32(V_TPT_PBL_SIZE((*pbl_size) >> 2)); + htobe32(V_TPT_PBL_SIZE((pbl_size) >> 2)); } err = cxio_hal_ctrl_qp_write_mem(rdev_p, stag_idx + (rdev_p->rnic_info.tpt_base >> 5), - sizeof(tpt), &tpt, 1); + sizeof(tpt), &tpt); /* release the stag index to free pool */ if (reset_tpt_entry) cxio_hal_put_stag(rdev_p->rscp, stag_idx); -ret: + wptr = rdev_p->ctrl_qp.wptr; mtx_unlock(&rdev_p->ctrl_qp.lock); if (!err) @@ -872,61 +797,90 @@ __cxio_tpt_op(struct cxio_rdev *rdev_p, u32 reset_tpt_entry, return err; } +int cxio_write_pbl(struct cxio_rdev *rdev_p, __be64 *pbl, + u32 pbl_addr, u32 pbl_size) +{ + u32 wptr; + int err; + + CTR4(KTR_IW_CXGB, "%s *pdb_addr 0x%x, pbl_base 0x%x, pbl_size %d", + __func__, pbl_addr, rdev_p->rnic_info.pbl_base, + pbl_size); + + mtx_lock(&rdev_p->ctrl_qp.lock); + err = cxio_hal_ctrl_qp_write_mem(rdev_p, pbl_addr >> 5, pbl_size << 3, + pbl); + wptr = rdev_p->ctrl_qp.wptr; + mtx_unlock(&rdev_p->ctrl_qp.lock); + if (err) + return err; + + if (cxio_wait(&rdev_p->ctrl_qp, + &rdev_p->ctrl_qp.lock, + SEQ32_GE(rdev_p->ctrl_qp.rptr, wptr))) + return ERESTART; + + return 0; +} + int cxio_register_phys_mem(struct cxio_rdev *rdev_p, u32 *stag, u32 pdid, enum tpt_mem_perm perm, u32 zbva, u64 to, u32 len, - u8 page_size, __be64 *pbl, u32 *pbl_size, - u32 *pbl_addr) + u8 page_size, u32 pbl_size, u32 pbl_addr) { *stag = T3_STAG_UNSET; return __cxio_tpt_op(rdev_p, 0, stag, 1, pdid, TPT_NON_SHARED_MR, perm, - zbva, to, len, page_size, pbl, pbl_size, pbl_addr); + zbva, to, len, page_size, pbl_size, pbl_addr); } int cxio_reregister_phys_mem(struct cxio_rdev *rdev_p, u32 *stag, u32 pdid, enum tpt_mem_perm perm, u32 zbva, u64 to, u32 len, - u8 page_size, __be64 *pbl, u32 *pbl_size, - u32 *pbl_addr) + u8 page_size, u32 pbl_size, u32 pbl_addr) { return __cxio_tpt_op(rdev_p, 0, stag, 1, pdid, TPT_NON_SHARED_MR, perm, - zbva, to, len, page_size, pbl, pbl_size, pbl_addr); + zbva, to, len, page_size, pbl_size, pbl_addr); } int cxio_dereg_mem(struct cxio_rdev *rdev_p, u32 stag, u32 pbl_size, u32 pbl_addr) { - return __cxio_tpt_op(rdev_p, 1, &stag, 0, 0, 0, 0, 0, 0ULL, 0, 0, NULL, - &pbl_size, &pbl_addr); + return __cxio_tpt_op(rdev_p, 1, &stag, 0, 0, 0, 0, 0, 0ULL, 0, 0, + pbl_size, pbl_addr); } int cxio_allocate_window(struct cxio_rdev *rdev_p, u32 * stag, u32 pdid) { - u32 pbl_size = 0; *stag = T3_STAG_UNSET; return __cxio_tpt_op(rdev_p, 0, stag, 0, pdid, TPT_MW, 0, 0, 0ULL, 0, 0, - NULL, &pbl_size, NULL); + 0, 0); } int cxio_deallocate_window(struct cxio_rdev *rdev_p, u32 stag) { - return __cxio_tpt_op(rdev_p, 1, &stag, 0, 0, 0, 0, 0, 0ULL, 0, 0, NULL, - NULL, NULL); + return __cxio_tpt_op(rdev_p, 1, &stag, 0, 0, 0, 0, 0, 0ULL, 0, 0, + 0, 0); } int -cxio_rdma_init(struct cxio_rdev *rdev_p, struct t3_rdma_init_attr *attr) +cxio_rdma_init(struct cxio_rdev *rdev_p, struct t3_rdma_init_attr *attr, + struct socket *so) { struct t3_rdma_init_wr *wqe; - struct mbuf *m = m_gethdr(MT_DATA, M_NOWAIT); + struct mbuf *m; + struct ofld_hdr *oh; + int rc; + struct tcpcb *tp; + struct inpcb *inp; + struct toepcb *toep; + + m = M_GETHDR_OFLD(0, CPL_PRIORITY_DATA, wqe); if (m == NULL) return (-ENOMEM); CTR2(KTR_IW_CXGB, "%s rdev_p %p", __FUNCTION__, rdev_p); - wqe = mtod(m, struct t3_rdma_init_wr *); - m->m_len = m->m_pkthdr.len = sizeof(*wqe); wqe->wrh.op_seop_flags = htobe32(V_FW_RIWR_OP(T3_WR_INIT)); wqe->wrh.gen_tid_len = htobe32(V_FW_RIWR_TID(attr->tid) | V_FW_RIWR_LEN(sizeof(*wqe) >> 3)); @@ -940,36 +894,41 @@ cxio_rdma_init(struct cxio_rdev *rdev_p, struct t3_rdma_init_attr *attr) wqe->mpaattrs = attr->mpaattrs; wqe->qpcaps = attr->qpcaps; wqe->ulpdu_size = htobe16(attr->tcp_emss); - wqe->flags = htobe32(attr->flags); + wqe->rqe_count = htobe16(attr->rqe_count); + wqe->flags_rtr_type = htobe16(attr->flags | + V_RTR_TYPE(attr->rtr_type) | + V_CHAN(attr->chan)); wqe->ord = htobe32(attr->ord); wqe->ird = htobe32(attr->ird); wqe->qp_dma_addr = htobe64(attr->qp_dma_addr); wqe->qp_dma_size = htobe32(attr->qp_dma_size); wqe->irs = htobe32(attr->irs); - m_set_priority(m, 0); /* 0=>ToeQ; 1=>CtrlQ */ - m_set_sgl(m, NULL); - m_set_sgllen(m, 0); - return (cxgb_ofld_send(rdev_p->t3cdev_p, m)); -} -void -cxio_register_ev_cb(cxio_hal_ev_callback_func_t ev_cb) -{ - cxio_ev_cb = ev_cb; -} + /* XXX: bad form, fix later */ + inp = sotoinpcb(so); + INP_WLOCK(inp); + tp = intotcpcb(inp); + toep = tp->t_toe; + oh = mtod(m, struct ofld_hdr *); + oh->plen = 0; + oh->flags |= F_HDR_DF; + enqueue_wr(toep, m); + toep->tp_wr_avail--; + toep->tp_wr_unacked++; + rc = t3_offload_tx(rdev_p->adap, m); + INP_WUNLOCK(inp); -void -cxio_unregister_ev_cb(cxio_hal_ev_callback_func_t ev_cb) -{ - cxio_ev_cb = NULL; + return (rc); } static int -cxio_hal_ev_handler(struct t3cdev *t3cdev_p, struct mbuf *m) +cxio_hal_ev_handler(struct sge_qset *qs, struct rsp_desc *r, struct mbuf *m) { - static int cnt; - struct cxio_rdev *rdev_p = NULL; + struct adapter *sc = qs->adap; + struct iwch_dev *rnicp = sc->iwarp_softc; + struct cxio_rdev *rdev_p = &rnicp->rdev; struct respQ_msg_t *rsp_msg = (struct respQ_msg_t *) m->m_data; + int qpid = CQE_QPID(rsp_msg->cqe); CTR6(KTR_IW_CXGB, "%s cq_id 0x%x cq_ptr 0x%x genbit %0x overflow %0x an %0x", __FUNCTION__, RSPQ_CQID(rsp_msg), RSPQ_CQPTR(rsp_msg), @@ -978,80 +937,50 @@ cxio_hal_ev_handler(struct t3cdev *t3cdev_p, struct mbuf *m) RSPQ_SE(rsp_msg), RSPQ_NOTIFY(rsp_msg), RSPQ_CQBRANCH(rsp_msg), RSPQ_CREDIT_THRESH(rsp_msg)); CTR4(KTR_IW_CXGB, "CQE: QPID 0x%0x type 0x%0x status 0x%0x opcode %d", - CQE_QPID(rsp_msg->cqe), - CQE_TYPE(rsp_msg->cqe), CQE_STATUS(rsp_msg->cqe), - CQE_OPCODE(rsp_msg->cqe)); + qpid, CQE_TYPE(rsp_msg->cqe), CQE_STATUS(rsp_msg->cqe), + CQE_OPCODE(rsp_msg->cqe)); CTR3(KTR_IW_CXGB, "len 0x%0x wrid_hi_stag 0x%x wrid_low_msn 0x%x", CQE_LEN(rsp_msg->cqe), CQE_WRID_HI(rsp_msg->cqe), CQE_WRID_LOW(rsp_msg->cqe)); - rdev_p = (struct cxio_rdev *)t3cdev_p->ulp; - if (!rdev_p) { - CTR2(KTR_IW_CXGB, "%s called by t3cdev %p with null ulp", __FUNCTION__, - t3cdev_p); - return 0; - } - if (CQE_QPID(rsp_msg->cqe) == T3_CTRL_QP_ID) { + + switch(qpid) { + case T3_CTRL_QP_ID: mtx_lock(&rdev_p->ctrl_qp.lock); rdev_p->ctrl_qp.rptr = CQE_WRID_LOW(rsp_msg->cqe) + 1; wakeup(&rdev_p->ctrl_qp); mtx_unlock(&rdev_p->ctrl_qp.lock); - m_free(m); - } else if (CQE_QPID(rsp_msg->cqe) == 0xfff8) - m_free(m); - else if (cxio_ev_cb) - (*cxio_ev_cb) (rdev_p, m); - else - m_free(m); - cnt++; - return 0; + break; + case 0xfff8: + break; + default: + iwch_ev_dispatch(rnicp, m); + } + + m_freem(m); + return (0); } /* Caller takes care of locking if needed */ int cxio_rdev_open(struct cxio_rdev *rdev_p) { - struct ifnet *ifp; int err = 0; + struct rdma_info *ri = &rdev_p->rnic_info; + struct adapter *sc = rdev_p->adap; - if (strlen(rdev_p->dev_name)) { - if (cxio_hal_find_rdev_by_name(rdev_p->dev_name)) { - return (-EBUSY); - } - ifp = rdev_p->ifp; - if (ifp == NULL) - return (-EINVAL); - if_free(ifp); - } else if (rdev_p->t3cdev_p) { - if (cxio_hal_find_rdev_by_t3cdev(rdev_p->t3cdev_p)) - return (-EBUSY); - ifp = rdev_p->t3cdev_p->lldev; - strncpy(rdev_p->dev_name, rdev_p->t3cdev_p->name, - T3_MAX_DEV_NAME_LEN); - } else { - CTR1(KTR_IW_CXGB, "%s t3cdev_p or dev_name must be set", __FUNCTION__); - return (-EINVAL); - } + KASSERT(rdev_p->adap, ("%s: adap is NULL", __func__)); - TAILQ_INSERT_TAIL(&rdev_list, rdev_p, entry); - - CTR2(KTR_IW_CXGB, "%s opening rnic dev %s", __FUNCTION__, rdev_p->dev_name); memset(&rdev_p->ctrl_qp, 0, sizeof(rdev_p->ctrl_qp)); - if (!rdev_p->t3cdev_p) - rdev_p->t3cdev_p = T3CDEV(ifp); - rdev_p->t3cdev_p->ulp = (void *) rdev_p; - err = rdev_p->t3cdev_p->ctl(rdev_p->t3cdev_p, RDMA_GET_PARAMS, - &(rdev_p->rnic_info)); - if (err) { - log(LOG_ERR, "%s t3cdev_p(%p)->ctl returned error %d.\n", - __FUNCTION__, rdev_p->t3cdev_p, err); - goto err1; - } - err = rdev_p->t3cdev_p->ctl(rdev_p->t3cdev_p, GET_PORTS, - &(rdev_p->port_info)); - if (err) { - log(LOG_ERR, "%s t3cdev_p(%p)->ctl returned error %d.\n", - __FUNCTION__, rdev_p->t3cdev_p, err); - goto err1; - } + + ri->udbell_physbase = rman_get_start(sc->udbs_res); + ri->udbell_len = rman_get_size(sc->udbs_res); + ri->tpt_base = t3_read_reg(sc, A_ULPTX_TPT_LLIMIT); + ri->tpt_top = t3_read_reg(sc, A_ULPTX_TPT_ULIMIT); + ri->pbl_base = t3_read_reg(sc, A_ULPTX_PBL_LLIMIT); + ri->pbl_top = t3_read_reg(sc, A_ULPTX_PBL_ULIMIT); + ri->rqt_base = t3_read_reg(sc, A_ULPRX_RQ_LLIMIT); + ri->rqt_top = t3_read_reg(sc, A_ULPRX_RQ_ULIMIT); + ri->kdb_addr = (void *)((unsigned long) + rman_get_virtual(sc->regs_res) + A_SG_KDOORBELL); /* * qpshift is the number of bits to shift the qpid left in order @@ -1064,8 +993,8 @@ cxio_rdev_open(struct cxio_rdev *rdev_p) PAGE_SHIFT)); rdev_p->qpnr = rdev_p->rnic_info.udbell_len >> PAGE_SHIFT; rdev_p->qpmask = (65536 >> ilog2(rdev_p->qpnr)) - 1; - CTR4(KTR_IW_CXGB, "cxio_rdev_open rnic %s info: tpt_base 0x%0x tpt_top 0x%0x num stags %d", - rdev_p->dev_name, rdev_p->rnic_info.tpt_base, + CTR4(KTR_IW_CXGB, "cxio_rdev_open rnic %p info: tpt_base 0x%0x tpt_top 0x%0x num stags %d", + rdev_p->adap, rdev_p->rnic_info.tpt_base, rdev_p->rnic_info.tpt_top, cxio_num_stags(rdev_p)); CTR4(KTR_IW_CXGB, "pbl_base 0x%0x pbl_top 0x%0x rqt_base 0x%0x, rqt_top 0x%0x", rdev_p->rnic_info.pbl_base, @@ -1111,43 +1040,34 @@ cxio_rdev_open(struct cxio_rdev *rdev_p) err2: cxio_hal_destroy_ctrl_qp(rdev_p); err1: - TAILQ_REMOVE(&rdev_list, rdev_p, entry); return err; } void cxio_rdev_close(struct cxio_rdev *rdev_p) { - if (rdev_p) { - cxio_hal_pblpool_destroy(rdev_p); - cxio_hal_rqtpool_destroy(rdev_p); - TAILQ_REMOVE(&rdev_list, rdev_p, entry); - rdev_p->t3cdev_p->ulp = NULL; - cxio_hal_destroy_ctrl_qp(rdev_p); - cxio_hal_destroy_resource(rdev_p->rscp); - } + cxio_hal_pblpool_destroy(rdev_p); + cxio_hal_rqtpool_destroy(rdev_p); + cxio_hal_destroy_ctrl_qp(rdev_p); + cxio_hal_destroy_resource(rdev_p->rscp); } int -cxio_hal_init(void) +cxio_hal_init(struct adapter *sc) { - TAILQ_INIT(&rdev_list); #ifdef needed if (cxio_hal_init_rhdl_resource(T3_MAX_NUM_RI)) - return (-ENOMEM); + return (ENOMEM); #endif - t3_register_cpl_handler(CPL_ASYNC_NOTIF, cxio_hal_ev_handler); - return 0; + t3_register_cpl_handler(sc, CPL_ASYNC_NOTIF, cxio_hal_ev_handler); + + return (0); } void -cxio_hal_exit(void) +cxio_hal_uninit(struct adapter *sc) { - struct cxio_rdev *rdev, *tmp; - - t3_register_cpl_handler(CPL_ASYNC_NOTIF, NULL); - TAILQ_FOREACH_SAFE(rdev, &rdev_list, entry, tmp) - cxio_rdev_close(rdev); + t3_register_cpl_handler(sc, CPL_ASYNC_NOTIF, NULL); #ifdef needed cxio_hal_destroy_rhdl_resource(); #endif @@ -1304,11 +1224,12 @@ cxio_poll_cq(struct t3_wq *wq, struct t3_cq *cq, struct t3_cqe *cqe, } /* incoming SEND with no receive posted failures */ - if ((CQE_OPCODE(*hw_cqe) == T3_SEND) && RQ_TYPE(*hw_cqe) && + if (CQE_OPCODE(*hw_cqe) && RQ_TYPE(*hw_cqe) && Q_EMPTY(wq->rq_rptr, wq->rq_wptr)) { ret = -1; goto skip_cqe; } + PANIC_IF((*cqe_flushed == 0) && !SW_CQE(*hw_cqe)); goto proc_cqe; } @@ -1323,6 +1244,13 @@ cxio_poll_cq(struct t3_wq *wq, struct t3_cq *cq, struct t3_cqe *cqe, * then we complete this with TPT_ERR_MSN and mark the wq in * error. */ + + if (Q_EMPTY(wq->rq_rptr, wq->rq_wptr)) { + wq->error = 1; + ret = -1; + goto skip_cqe; + } + if (__predict_false((CQE_WRID_MSN(*hw_cqe) != (wq->rq_rptr + 1)))) { wq->error = 1; hw_cqe->header |= htonl(V_CQE_STATUS(TPT_ERR_MSN)); @@ -1367,13 +1295,17 @@ cxio_poll_cq(struct t3_wq *wq, struct t3_cq *cq, struct t3_cqe *cqe, wq->sq_rptr = CQE_WRID_SQ_WPTR(*hw_cqe); CTR2(KTR_IW_CXGB, "%s completing sq idx %ld", __FUNCTION__, Q_PTR2IDX(wq->sq_rptr, wq->sq_size_log2)); - *cookie = (wq->sq + - Q_PTR2IDX(wq->sq_rptr, wq->sq_size_log2))->wr_id; + *cookie = wq->sq[Q_PTR2IDX(wq->sq_rptr, wq->sq_size_log2)].wr_id; wq->sq_rptr++; } else { CTR2(KTR_IW_CXGB, "%s completing rq idx %ld", __FUNCTION__, Q_PTR2IDX(wq->rq_rptr, wq->rq_size_log2)); - *cookie = *(wq->rq + Q_PTR2IDX(wq->rq_rptr, wq->rq_size_log2)); + *cookie = wq->rq[Q_PTR2IDX(wq->rq_rptr, wq->rq_size_log2)].wr_id; + if (wq->rq[Q_PTR2IDX(wq->rq_rptr, wq->rq_size_log2)].pbl_addr) + cxio_hal_pblpool_free(wq->rdev, + wq->rq[Q_PTR2IDX(wq->rq_rptr, + wq->rq_size_log2)].pbl_addr, T3_STAG0_PBL_SIZE); + PANIC_IF(Q_EMPTY(wq->rq_rptr, wq->rq_wptr)); wq->rq_rptr++; } @@ -1404,5 +1336,4 @@ cxio_poll_cq(struct t3_wq *wq, struct t3_cq *cq, struct t3_cqe *cqe, } return ret; } - - +#endif diff --git a/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_hal.h b/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_hal.h index 6a401e09322d..6b5f94820d78 100644 --- a/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_hal.h +++ b/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_hal.h @@ -45,7 +45,11 @@ POSSIBILITY OF SUCH DAMAGE. #define T3_MAX_NUM_PD (1<<15) #define T3_MAX_PBL_SIZE 256 #define T3_MAX_RQ_SIZE 1024 +#define T3_MAX_QP_DEPTH (T3_MAX_RQ_SIZE-1) +#define T3_MAX_CQ_DEPTH 65536 #define T3_MAX_NUM_STAG (1<<15) +#define T3_MAX_MR_SIZE 0x100000000ULL +#define T3_PAGESIZE_MASK 0xffff000 /* 4KB-128MB */ #define T3_STAG_UNSET 0xffffffff @@ -55,12 +59,9 @@ struct cxio_hal_ctrl_qp { u32 wptr; u32 rptr; struct mtx lock; /* for the wtpr, can sleep */ -#ifdef notyet - DECLARE_PCI_UNMAP_ADDR(mapping) -#endif union t3_wr *workq; /* the work request queue */ bus_addr_t dma_addr; /* pci bus address of the workq */ - void /* __iomem */ *doorbell; + void *doorbell; }; struct cxio_hal_resource { @@ -85,13 +86,10 @@ struct cxio_ucontext { }; struct cxio_rdev { - char dev_name[T3_MAX_DEV_NAME_LEN]; - struct t3cdev *t3cdev_p; + struct adapter *adap; struct rdma_info rnic_info; - struct adap_ports port_info; struct cxio_hal_resource *rscp; struct cxio_hal_ctrl_qp ctrl_qp; - void *ulp; unsigned long qpshift; u32 qpnr; u32 qpmask; @@ -139,9 +137,8 @@ int cxio_rdev_open(struct cxio_rdev *rdev); void cxio_rdev_close(struct cxio_rdev *rdev); int cxio_hal_cq_op(struct cxio_rdev *rdev, struct t3_cq *cq, enum t3_cq_opcode op, u32 credit); -int cxio_create_cq(struct cxio_rdev *rdev, struct t3_cq *cq); +int cxio_create_cq(struct cxio_rdev *rdev, struct t3_cq *cq, int kernel); int cxio_destroy_cq(struct cxio_rdev *rdev, struct t3_cq *cq); -int cxio_resize_cq(struct cxio_rdev *rdev, struct t3_cq *cq); void cxio_release_ucontext(struct cxio_rdev *rdev, struct cxio_ucontext *uctx); void cxio_init_ucontext(struct cxio_rdev *rdev, struct cxio_ucontext *uctx); int cxio_create_qp(struct cxio_rdev *rdev, u32 kernel_domain, struct t3_wq *wq, @@ -149,27 +146,27 @@ int cxio_create_qp(struct cxio_rdev *rdev, u32 kernel_domain, struct t3_wq *wq, int cxio_destroy_qp(struct cxio_rdev *rdev, struct t3_wq *wq, struct cxio_ucontext *uctx); int cxio_peek_cq(struct t3_wq *wr, struct t3_cq *cq, int opcode); +int cxio_write_pbl(struct cxio_rdev *rdev_p, __be64 *pbl, + u32 pbl_addr, u32 pbl_size); int cxio_register_phys_mem(struct cxio_rdev *rdev, u32 * stag, u32 pdid, enum tpt_mem_perm perm, u32 zbva, u64 to, u32 len, - u8 page_size, __be64 *pbl, u32 *pbl_size, - u32 *pbl_addr); + u8 page_size, u32 pbl_size, u32 pbl_addr); int cxio_reregister_phys_mem(struct cxio_rdev *rdev, u32 * stag, u32 pdid, enum tpt_mem_perm perm, u32 zbva, u64 to, u32 len, - u8 page_size, __be64 *pbl, u32 *pbl_size, - u32 *pbl_addr); + u8 page_size, u32 pbl_size, u32 pbl_addr); int cxio_dereg_mem(struct cxio_rdev *rdev, u32 stag, u32 pbl_size, u32 pbl_addr); int cxio_allocate_window(struct cxio_rdev *rdev, u32 * stag, u32 pdid); int cxio_deallocate_window(struct cxio_rdev *rdev, u32 stag); -int cxio_rdma_init(struct cxio_rdev *rdev, struct t3_rdma_init_attr *attr); -void cxio_register_ev_cb(cxio_hal_ev_callback_func_t ev_cb); -void cxio_unregister_ev_cb(cxio_hal_ev_callback_func_t ev_cb); +int cxio_rdma_init(struct cxio_rdev *rdev, struct t3_rdma_init_attr *attr, + struct socket *so); u32 cxio_hal_get_pdid(struct cxio_hal_resource *rscp); void cxio_hal_put_pdid(struct cxio_hal_resource *rscp, u32 pdid); -int cxio_hal_init(void); +int cxio_hal_init(struct adapter *); +void cxio_hal_uninit(struct adapter *); void cxio_hal_exit(void); -void cxio_flush_rq(struct t3_wq *wq, struct t3_cq *cq, int count); -void cxio_flush_sq(struct t3_wq *wq, struct t3_cq *cq, int count); +int cxio_flush_rq(struct t3_wq *wq, struct t3_cq *cq, int count); +int cxio_flush_sq(struct t3_wq *wq, struct t3_cq *cq, int count); void cxio_count_rcqes(struct t3_cq *cq, struct t3_wq *wq, int *count); void cxio_count_scqes(struct t3_cq *cq, struct t3_wq *wq, int *count); void cxio_flush_hw_cq(struct t3_cq *cq); @@ -178,7 +175,7 @@ int cxio_poll_cq(struct t3_wq *wq, struct t3_cq *cq, struct t3_cqe *cqe, #define MOD "iw_cxgb: " -#ifdef DEBUG +#ifdef INVARIANTS void cxio_dump_tpt(struct cxio_rdev *rev, u32 stag); void cxio_dump_pbl(struct cxio_rdev *rev, u32 pbl_addr, uint32_t len, u8 shift); void cxio_dump_wqe(union t3_wr *wqe); @@ -187,60 +184,7 @@ void cxio_dump_rqt(struct cxio_rdev *rdev, u32 hwtid, int nents); void cxio_dump_tcb(struct cxio_rdev *rdev, u32 hwtid); #endif - - static unsigned char hiBitSetTab[] = { - 0, 1, 2, 2, 3, 3, 3, 3, - 4, 4, 4, 4, 4, 4, 4, 4, - 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7 - -}; - - -static __inline -int ilog2(unsigned long val) -{ - unsigned long tmp; - - tmp = val >> 24; - if (tmp) { - return hiBitSetTab[tmp] + 23; - } - tmp = (val >> 16) & 0xff; - if (tmp) { - return hiBitSetTab[tmp] + 15; - } - tmp = (val >> 8) & 0xff; - if (tmp) { - return hiBitSetTab[tmp] + 7; - - } - return hiBitSetTab[val & 0xff] - 1; -} - #define cxfree(a) free((a), M_DEVBUF); -#define kmalloc(a, b) malloc((a), M_DEVBUF, (b)) -#define kzalloc(a, b) malloc((a), M_DEVBUF, (b)|M_ZERO) - -static __inline __attribute__((const)) -unsigned long roundup_pow_of_two(unsigned long n) -{ - return 1UL << flsl(n - 1); -} - -#define PAGE_ALIGN(x) roundup2((x), PAGE_SIZE) #include struct gen_pool { @@ -259,6 +203,7 @@ gen_pool_create(daddr_t base, u_int chunk_shift, u_int len) if (gp == NULL) return (NULL); + memset(gp, 0, sizeof(struct gen_pool)); gp->gen_list = blist_create(len >> chunk_shift, M_NOWAIT); if (gp->gen_list == NULL) { free(gp, M_DEVBUF); @@ -323,8 +268,7 @@ gen_pool_destroy(struct gen_pool *gp) mtx_unlock(lockp); \ __ret; \ }) -extern struct cxio_rdev *cxio_hal_find_rdev_by_t3cdev(struct t3cdev *tdev); -#define KTR_IW_CXGB KTR_SPARE4 +#define KTR_IW_CXGB KTR_SPARE3 #endif diff --git a/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_ib_intfc.h b/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_ib_intfc.h new file mode 100644 index 000000000000..7c7cd241a131 --- /dev/null +++ b/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_ib_intfc.h @@ -0,0 +1,22 @@ +#ifndef __IB_INTFC_H__ +#define __IB_INTFC_H__ + +/* $FreeBSD$ */ + +#undef prefetch +#undef WARN_ON +#undef max_t +#undef udelay +#undef le32_to_cpu +#undef le16_to_cpu +#undef cpu_to_le32 +#undef swab32 +#undef container_of + +#undef LIST_HEAD +#define LIST_HEAD(name, type) \ +struct name { \ + struct type *lh_first; /* first element */ \ +} + +#endif /* __IB_INTFC_H__ */ diff --git a/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_mem.c b/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_mem.c index c052aa6b2f09..0ccb70fcac8b 100644 --- a/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_mem.c +++ b/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_mem.c @@ -29,11 +29,13 @@ POSSIBILITY OF SUCH DAMAGE. #include __FBSDID("$FreeBSD$"); +#include "opt_inet.h" + +#ifdef TCP_OFFLOAD #include #include #include #include -#include #include #include #include @@ -59,9 +61,11 @@ __FBSDID("$FreeBSD$"); #include -#include -#include -#include +#include +#include +#include +#include +#include #include #include @@ -72,14 +76,24 @@ __FBSDID("$FreeBSD$"); #include #include -int iwch_register_mem(struct iwch_dev *rhp, struct iwch_pd *php, - struct iwch_mr *mhp, - int shift, - __be64 *page_list) +static int iwch_finish_mem_reg(struct iwch_mr *mhp, u32 stag) { - u32 stag; u32 mmid; + mhp->attr.state = 1; + mhp->attr.stag = stag; + mmid = stag >> 8; + mhp->ibmr.rkey = mhp->ibmr.lkey = stag; + CTR3(KTR_IW_CXGB, "%s mmid 0x%x mhp %p", __func__, mmid, mhp); + return insert_handle(mhp->rhp, &mhp->rhp->mmidr, mhp, mmid); +} + +int iwch_register_mem(struct iwch_dev *rhp, struct iwch_pd *php, + struct iwch_mr *mhp, + int shift) +{ + u32 stag; + int ret; if (cxio_register_phys_mem(&rhp->rdev, &stag, mhp->attr.pdid, @@ -87,28 +101,24 @@ int iwch_register_mem(struct iwch_dev *rhp, struct iwch_pd *php, mhp->attr.zbva, mhp->attr.va_fbo, mhp->attr.len, - shift-12, - page_list, - &mhp->attr.pbl_size, &mhp->attr.pbl_addr)) + shift - 12, + mhp->attr.pbl_size, mhp->attr.pbl_addr)) return (-ENOMEM); - mhp->attr.state = 1; - mhp->attr.stag = stag; - mmid = stag >> 8; - mhp->ibmr.rkey = mhp->ibmr.lkey = stag; - insert_handle(rhp, &rhp->mmidr, mhp, mmid); - CTR3(KTR_IW_CXGB, "%s mmid 0x%x mhp %p", __FUNCTION__, mmid, mhp); - return 0; + + ret = iwch_finish_mem_reg(mhp, stag); + if (ret) + cxio_dereg_mem(&rhp->rdev, mhp->attr.stag, mhp->attr.pbl_size, + mhp->attr.pbl_addr); + return ret; } int iwch_reregister_mem(struct iwch_dev *rhp, struct iwch_pd *php, struct iwch_mr *mhp, int shift, - __be64 *page_list, int npages) { u32 stag; - u32 mmid; - + int ret; /* We could support this... */ if (npages > mhp->attr.pbl_size) @@ -121,17 +131,40 @@ int iwch_reregister_mem(struct iwch_dev *rhp, struct iwch_pd *php, mhp->attr.zbva, mhp->attr.va_fbo, mhp->attr.len, - shift-12, - page_list, - &mhp->attr.pbl_size, &mhp->attr.pbl_addr)) + shift - 12, + mhp->attr.pbl_size, mhp->attr.pbl_addr)) return (-ENOMEM); - mhp->attr.state = 1; - mhp->attr.stag = stag; - mmid = stag >> 8; - mhp->ibmr.rkey = mhp->ibmr.lkey = stag; - insert_handle(rhp, &rhp->mmidr, mhp, mmid); - CTR3(KTR_IW_CXGB, "%s mmid 0x%x mhp %p", __FUNCTION__, mmid, mhp); + + ret = iwch_finish_mem_reg(mhp, stag); + if (ret) + cxio_dereg_mem(&rhp->rdev, mhp->attr.stag, mhp->attr.pbl_size, + mhp->attr.pbl_addr); + return ret; +} + +int iwch_alloc_pbl(struct iwch_mr *mhp, int npages) +{ + mhp->attr.pbl_addr = cxio_hal_pblpool_alloc(&mhp->rhp->rdev, + npages << 3); + + if (!mhp->attr.pbl_addr) + return -ENOMEM; + + mhp->attr.pbl_size = npages; + return 0; + } + +void iwch_free_pbl(struct iwch_mr *mhp) +{ + cxio_hal_pblpool_free(&mhp->rhp->rdev, mhp->attr.pbl_addr, + mhp->attr.pbl_size << 3); +} + +int iwch_write_pbl(struct iwch_mr *mhp, __be64 *pages, int npages, int offset) +{ + return cxio_write_pbl(&mhp->rhp->rdev, pages, + mhp->attr.pbl_addr + (offset << 3), npages); } int build_phys_page_list(struct ib_phys_buf *buffer_list, @@ -204,3 +237,4 @@ int build_phys_page_list(struct ib_phys_buf *buffer_list, return 0; } +#endif diff --git a/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_provider.c b/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_provider.c index bc336a4a625c..4961395bfad4 100644 --- a/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_provider.c +++ b/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_provider.c @@ -29,11 +29,13 @@ POSSIBILITY OF SUCH DAMAGE. #include __FBSDID("$FreeBSD$"); +#include "opt_inet.h" + +#ifdef TCP_OFFLOAD #include #include #include #include -#include #include #include #include @@ -62,9 +64,12 @@ __FBSDID("$FreeBSD$"); #include #include -#include -#include -#include +#include +#include +#include +#include +#include + #include #include @@ -180,6 +185,8 @@ iwch_create_cq(struct ib_device *ibdev, int entries, int vector, struct iwch_create_cq_resp uresp; struct iwch_create_cq_req ureq; struct iwch_ucontext *ucontext = NULL; + static int warned; + size_t resplen; CTR3(KTR_IW_CXGB, "%s ib_dev %p entries %d", __FUNCTION__, ibdev, entries); rhp = to_iwch_dev(ibdev); @@ -214,7 +221,7 @@ iwch_create_cq(struct ib_device *ibdev, int entries, int vector, entries = roundup_pow_of_two(entries); chp->cq.size_log2 = ilog2(entries); - if (cxio_create_cq(&rhp->rdev, &chp->cq)) { + if (cxio_create_cq(&rhp->rdev, &chp->cq, !ucontext)) { cxfree(chp); return ERR_PTR(-ENOMEM); } @@ -222,7 +229,11 @@ iwch_create_cq(struct ib_device *ibdev, int entries, int vector, chp->ibcq.cqe = 1 << chp->cq.size_log2; mtx_init(&chp->lock, "cxgb cq", NULL, MTX_DEF|MTX_DUPOK); chp->refcnt = 1; - insert_handle(rhp, &rhp->cqidr, chp, chp->cq.cqid); + if (insert_handle(rhp, &rhp->cqidr, chp, chp->cq.cqid)) { + cxio_destroy_cq(&chp->rhp->rdev, &chp->cq); + cxfree(chp); + return ERR_PTR(-ENOMEM); + } if (ucontext) { struct iwch_mm_entry *mm; @@ -238,15 +249,27 @@ iwch_create_cq(struct ib_device *ibdev, int entries, int vector, uresp.key = ucontext->key; ucontext->key += PAGE_SIZE; mtx_unlock(&ucontext->mmap_lock); - if (ib_copy_to_udata(udata, &uresp, sizeof (uresp))) { + mm->key = uresp.key; + mm->addr = vtophys(chp->cq.queue); + if (udata->outlen < sizeof uresp) { + if (!warned++) + CTR1(KTR_IW_CXGB, "%s Warning - " + "downlevel libcxgb3 (non-fatal).\n", + __func__); + mm->len = PAGE_ALIGN((1UL << uresp.size_log2) * + sizeof(struct t3_cqe)); + resplen = sizeof(struct iwch_create_cq_resp_v0); + } else { + mm->len = PAGE_ALIGN(((1UL << uresp.size_log2) + 1) * + sizeof(struct t3_cqe)); + uresp.memsize = mm->len; + resplen = sizeof uresp; + } + if (ib_copy_to_udata(udata, &uresp, resplen)) { cxfree(mm); iwch_destroy_cq(&chp->ibcq); return ERR_PTR(-EFAULT); } - mm->key = uresp.key; - mm->addr = vtophys(chp->cq.queue); - mm->len = PAGE_ALIGN((1UL << uresp.size_log2) * - sizeof (struct t3_cqe)); insert_mmap(ucontext, mm); } CTR4(KTR_IW_CXGB, "created cqid 0x%0x chp %p size 0x%0x, dma_addr 0x%0llx", @@ -256,72 +279,11 @@ iwch_create_cq(struct ib_device *ibdev, int entries, int vector, } static int -iwch_resize_cq(struct ib_cq *cq, int cqe, struct ib_udata *udata) +iwch_resize_cq(struct ib_cq *cq __unused, int cqe __unused, + struct ib_udata *udata __unused) { -#ifdef notyet - struct iwch_cq *chp = to_iwch_cq(cq); - struct t3_cq oldcq, newcq; - int ret; - CTR3(KTR_IW_CXGB, "%s ib_cq %p cqe %d", __FUNCTION__, cq, cqe); - - /* We don't downsize... */ - if (cqe <= cq->cqe) - return 0; - - /* create new t3_cq with new size */ - cqe = roundup_pow_of_two(cqe+1); - newcq.size_log2 = ilog2(cqe); - - /* Dont allow resize to less than the current wce count */ - if (cqe < Q_COUNT(chp->cq.rptr, chp->cq.wptr)) { - return (-ENOMEM); - } - - /* Quiesce all QPs using this CQ */ - ret = iwch_quiesce_qps(chp); - if (ret) { - return (ret); - } - - ret = cxio_create_cq(&chp->rhp->rdev, &newcq); - if (ret) { - return (ret); - } - - /* copy CQEs */ - memcpy(newcq.queue, chp->cq.queue, (1 << chp->cq.size_log2) * - sizeof(struct t3_cqe)); - - /* old iwch_qp gets new t3_cq but keeps old cqid */ - oldcq = chp->cq; - chp->cq = newcq; - chp->cq.cqid = oldcq.cqid; - - /* resize new t3_cq to update the HW context */ - ret = cxio_resize_cq(&chp->rhp->rdev, &chp->cq); - if (ret) { - chp->cq = oldcq; - return ret; - } - chp->ibcq.cqe = (1<cq.size_log2) - 1; - - /* destroy old t3_cq */ - oldcq.cqid = newcq.cqid; - ret = cxio_destroy_cq(&chp->rhp->rdev, &oldcq); - if (ret) { - log(LOG_ERR, "%s - cxio_destroy_cq failed %d\n", - __FUNCTION__, ret); - } - - /* add user hooks here */ - - /* resume qps */ - ret = iwch_resume_qps(chp); - return ret; -#else return (-ENOSYS); -#endif } static int @@ -357,67 +319,12 @@ iwch_arm_cq(struct ib_cq *ibcq, enum ib_cq_notify_flags flags) return err; } -#ifdef notyet static int -iwch_mmap(struct ib_ucontext *context, struct vm_area_struct *vma) +iwch_mmap(struct ib_ucontext *context __unused, struct vm_area_struct *vma __unused) { -#ifdef notyet - int len = vma->vm_end - vma->vm_start; - u32 key = vma->vm_pgoff << PAGE_SHIFT; - struct cxio_rdev *rdev_p; - int ret = 0; - struct iwch_mm_entry *mm; - struct iwch_ucontext *ucontext; - u64 addr; - CTR4(KTR_IW_CXGB, "%s pgoff 0x%lx key 0x%x len %d", __FUNCTION__, vma->vm_pgoff, - key, len); - - if (vma->vm_start & (PAGE_SIZE-1)) { - return (-EINVAL); - } - - rdev_p = &(to_iwch_dev(context->device)->rdev); - ucontext = to_iwch_ucontext(context); - - mm = remove_mmap(ucontext, key, len); - if (!mm) - return (-EINVAL); - addr = mm->addr; - cxfree(mm); - - if ((addr >= rdev_p->rnic_info.udbell_physbase) && - (addr < (rdev_p->rnic_info.udbell_physbase + - rdev_p->rnic_info.udbell_len))) { - - /* - * Map T3 DB register. - */ - if (vma->vm_flags & VM_READ) { - return (-EPERM); - } - - vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot); - vma->vm_flags |= VM_DONTCOPY | VM_DONTEXPAND; - vma->vm_flags &= ~VM_MAYREAD; - ret = io_remap_pfn_range(vma, vma->vm_start, - addr >> PAGE_SHIFT, - len, vma->vm_page_prot); - } else { - - /* - * Map WQ or CQ contig dma memory... - */ - ret = remap_pfn_range(vma, vma->vm_start, - addr >> PAGE_SHIFT, - len, vma->vm_page_prot); - } - - return ret; -#endif - return (0); + return (-ENOSYS); } -#endif static int iwch_deallocate_pd(struct ib_pd *pd) { @@ -470,7 +377,7 @@ static int iwch_dereg_mr(struct ib_mr *ib_mr) CTR2(KTR_IW_CXGB, "%s ib_mr %p", __FUNCTION__, ib_mr); /* There can be no memory windows */ - if (atomic_load_acq_int(&ib_mr->usecnt)) + if (atomic_load_acq_int(&ib_mr->usecnt.counter)) return (-EINVAL); mhp = to_iwch_mr(ib_mr); @@ -478,6 +385,7 @@ static int iwch_dereg_mr(struct ib_mr *ib_mr) mmid = mhp->attr.stag >> 8; cxio_dereg_mem(&rhp->rdev, mhp->attr.stag, mhp->attr.pbl_size, mhp->attr.pbl_addr); + iwch_free_pbl(mhp); remove_handle(rhp, &rhp->mmidr, mmid); if (mhp->kva) cxfree((void *) (unsigned long) mhp->kva); @@ -511,6 +419,8 @@ static struct ib_mr *iwch_register_phys_mem(struct ib_pd *pd, if (!mhp) return ERR_PTR(-ENOMEM); + mhp->rhp = rhp; + /* First check that we have enough alignment */ if ((*iova_start & ~PAGE_MASK) != (buffer_list[0].addr & ~PAGE_MASK)) { ret = -EINVAL; @@ -528,7 +438,17 @@ static struct ib_mr *iwch_register_phys_mem(struct ib_pd *pd, if (ret) goto err; - mhp->rhp = rhp; + ret = iwch_alloc_pbl(mhp, npages); + if (ret) { + cxfree(page_list); + goto err_pbl; + } + + ret = iwch_write_pbl(mhp, page_list, npages, 0); + cxfree(page_list); + if (ret) + goto err; + mhp->attr.pdid = php->pdid; mhp->attr.zbva = 0; @@ -538,15 +458,18 @@ static struct ib_mr *iwch_register_phys_mem(struct ib_pd *pd, mhp->attr.len = (u32) total_size; mhp->attr.pbl_size = npages; - ret = iwch_register_mem(rhp, php, mhp, shift, page_list); - cxfree(page_list); - if (ret) { - goto err; - } + ret = iwch_register_mem(rhp, php, mhp, shift); + if (ret) + goto err_pbl; + return &mhp->ibmr; + +err_pbl: + iwch_free_pbl(mhp); + err: cxfree(mhp); - return ERR_PTR(-ret); + return ERR_PTR(ret); } @@ -570,7 +493,7 @@ static int iwch_reregister_phys_mem(struct ib_mr *mr, CTR3(KTR_IW_CXGB, "%s ib_mr %p ib_pd %p", __FUNCTION__, mr, pd); /* There can be no memory windows */ - if (atomic_load_acq_int(&mr->usecnt)) + if (atomic_load_acq_int(&mr->usecnt.counter)) return (-EINVAL); mhp = to_iwch_mr(mr); @@ -596,7 +519,7 @@ static int iwch_reregister_phys_mem(struct ib_mr *mr, return ret; } - ret = iwch_reregister_mem(rhp, php, &mh, shift, page_list, npages); + ret = iwch_reregister_mem(rhp, php, &mh, shift, npages); cxfree(page_list); if (ret) { return ret; @@ -640,7 +563,9 @@ static struct ib_mr *iwch_reg_user_mr(struct ib_pd *pd, u64 start, u64 length, if (!mhp) return ERR_PTR(-ENOMEM); - mhp->umem = ib_umem_get(pd->uobject->context, start, length, acc); + mhp->rhp = rhp; + + mhp->umem = ib_umem_get(pd->uobject->context, start, length, acc, 0); if (IS_ERR(mhp->umem)) { err = PTR_ERR(mhp->umem); cxfree(mhp); @@ -650,18 +575,22 @@ static struct ib_mr *iwch_reg_user_mr(struct ib_pd *pd, u64 start, u64 length, shift = ffs(mhp->umem->page_size) - 1; n = 0; - TAILQ_FOREACH(chunk, &mhp->umem->chunk_list, entry) + list_for_each_entry(chunk, &mhp->umem->chunk_list, list) n += chunk->nents; - pages = kmalloc(n * sizeof(u64), M_NOWAIT); + err = iwch_alloc_pbl(mhp, n); + if (err) + goto err; + + pages = (__be64 *) kmalloc(n * sizeof(u64), M_NOWAIT); if (!pages) { err = -ENOMEM; - goto err; + goto err_pbl; } i = n = 0; -#if 0 +#ifdef notyet TAILQ_FOREACH(chunk, &mhp->umem->chunk_list, entry) for (j = 0; j < chunk->nmap; ++j) { len = sg_dma_len(&chunk->page_list[j]) >> shift; @@ -669,21 +598,36 @@ static struct ib_mr *iwch_reg_user_mr(struct ib_pd *pd, u64 start, u64 length, pages[i++] = htobe64(sg_dma_address( &chunk->page_list[j]) + mhp->umem->page_size * k); + if (i == PAGE_SIZE / sizeof *pages) { + err = iwch_write_pbl(mhp, pages, i, n); + if (err) + goto pbl_done; + n += i; + i = 0; + } } } #endif - mhp->rhp = rhp; + + if (i) + err = iwch_write_pbl(mhp, pages, i, n); +#ifdef notyet +pbl_done: +#endif + cxfree(pages); + if (err) + goto err_pbl; + mhp->attr.pdid = php->pdid; mhp->attr.zbva = 0; mhp->attr.perms = iwch_ib_to_tpt_access(acc); mhp->attr.va_fbo = virt; mhp->attr.page_size = shift - 12; mhp->attr.len = (u32) length; - mhp->attr.pbl_size = i; - err = iwch_register_mem(rhp, php, mhp, shift, pages); - cxfree(pages); + + err = iwch_register_mem(rhp, php, mhp, shift); if (err) - goto err; + goto err_pbl; if (udata && !t3a_device(rhp)) { uresp.pbl_addr = (mhp->attr.pbl_addr - @@ -700,6 +644,9 @@ static struct ib_mr *iwch_reg_user_mr(struct ib_pd *pd, u64 start, u64 length, return &mhp->ibmr; +err_pbl: + iwch_free_pbl(mhp); + err: ib_umem_release(mhp->umem); cxfree(mhp); @@ -748,7 +695,12 @@ static struct ib_mw *iwch_alloc_mw(struct ib_pd *pd) mhp->attr.type = TPT_MW; mhp->attr.stag = stag; mmid = (stag) >> 8; - insert_handle(rhp, &rhp->mmidr, mhp, mmid); + mhp->ibmw.rkey = stag; + if (insert_handle(rhp, &rhp->mmidr, mhp, mmid)) { + cxio_deallocate_window(&rhp->rdev, mhp->attr.stag); + cxfree(mhp); + return ERR_PTR(-ENOMEM); + } CTR4(KTR_IW_CXGB, "%s mmid 0x%x mhp %p stag 0x%x", __FUNCTION__, mmid, mhp, stag); return &(mhp->ibmw); } @@ -893,7 +845,13 @@ static struct ib_qp *iwch_create_qp(struct ib_pd *pd, mtx_init(&qhp->lock, "cxgb qp", NULL, MTX_DEF|MTX_DUPOK); qhp->refcnt = 1; - insert_handle(rhp, &rhp->qpidr, qhp, qhp->wq.qpid); + + if (insert_handle(rhp, &rhp->qpidr, qhp, qhp->wq.qpid)) { + cxio_destroy_qp(&rhp->rdev, &qhp->wq, + ucontext ? &ucontext->uctx : &rhp->rdev.uctx); + cxfree(qhp); + return ERR_PTR(-ENOMEM); + } if (udata) { @@ -1023,12 +981,14 @@ static int iwch_query_gid(struct ib_device *ibdev, u8 port, { struct iwch_dev *dev; struct port_info *pi; + struct adapter *sc; CTR5(KTR_IW_CXGB, "%s ibdev %p, port %d, index %d, gid %p", __FUNCTION__, ibdev, port, index, gid); dev = to_iwch_dev(ibdev); + sc = dev->rdev.adap; PANIC_IF(port == 0 || port > 2); - pi = ((struct port_info *)dev->rdev.port_info.lldevs[port-1]->if_softc); + pi = &sc->port[port - 1]; memset(&(gid->raw[0]), 0, sizeof(gid->raw)); memcpy(&(gid->raw[0]), pi->hw_addr, 6); return 0; @@ -1037,21 +997,20 @@ static int iwch_query_gid(struct ib_device *ibdev, u8 port, static int iwch_query_device(struct ib_device *ibdev, struct ib_device_attr *props) { - struct iwch_dev *dev; + struct adapter *sc; + CTR2(KTR_IW_CXGB, "%s ibdev %p", __FUNCTION__, ibdev); dev = to_iwch_dev(ibdev); + sc = dev->rdev.adap; memset(props, 0, sizeof *props); -#ifdef notyet - memcpy(&props->sys_image_guid, dev->rdev.t3cdev_p->lldev->if_addr.ifa_addr, 6); -#endif + memcpy(&props->sys_image_guid, sc->port[0].hw_addr, 6); props->device_cap_flags = dev->device_cap_flags; -#ifdef notyet - props->vendor_id = (u32)dev->rdev.rnic_info.pdev->vendor; - props->vendor_part_id = (u32)dev->rdev.rnic_info.pdev->device; -#endif - props->max_mr_size = ~0ull; + props->page_size_cap = dev->attr.mem_pgsizes_bitmask; + props->vendor_id = pci_get_vendor(sc->dev); + props->vendor_part_id = pci_get_device(sc->dev); + props->max_mr_size = dev->attr.max_mr_size; props->max_qp = dev->attr.max_qps; props->max_qp_wr = dev->attr.max_wrs; props->max_sge = dev->attr.max_sge_per_wr; @@ -1071,13 +1030,10 @@ static int iwch_query_port(struct ib_device *ibdev, u8 port, struct ib_port_attr *props) { CTR2(KTR_IW_CXGB, "%s ibdev %p", __FUNCTION__, ibdev); + memset(props, 0, sizeof(struct ib_port_attr)); props->max_mtu = IB_MTU_4096; - props->lid = 0; - props->lmc = 0; - props->sm_lid = 0; - props->sm_sl = 0; + props->active_mtu = IB_MTU_2048; props->state = IB_PORT_ACTIVE; - props->phys_state = 0; props->port_cap_flags = IB_PORT_CM_SUP | IB_PORT_SNMP_TUNNEL_SUP | @@ -1086,7 +1042,6 @@ static int iwch_query_port(struct ib_device *ibdev, IB_PORT_VENDOR_CLASS_SUP | IB_PORT_BOOT_MGMT_SUP; props->gid_tbl_len = 1; props->pkey_tbl_len = 1; - props->qkey_viol_cntr = 0; props->active_width = 2; props->active_speed = 2; props->max_msg_sz = -1; @@ -1094,80 +1049,18 @@ static int iwch_query_port(struct ib_device *ibdev, return 0; } -#ifdef notyet -static ssize_t show_rev(struct class_device *cdev, char *buf) -{ - struct iwch_dev *dev = container_of(cdev, struct iwch_dev, - ibdev.class_dev); - CTR2(KTR_IW_CXGB, "%s class dev 0x%p", __FUNCTION__, cdev); - return sprintf(buf, "%d\n", dev->rdev.t3cdev_p->type); -} - -static ssize_t show_fw_ver(struct class_device *cdev, char *buf) -{ - struct iwch_dev *dev = container_of(cdev, struct iwch_dev, - ibdev.class_dev); - struct ethtool_drvinfo info; - struct net_device *lldev = dev->rdev.t3cdev_p->lldev; - - CTR2(KTR_IW_CXGB, "%s class dev 0x%p", __FUNCTION__, cdev); - lldev->ethtool_ops->get_drvinfo(lldev, &info); - return sprintf(buf, "%s\n", info.fw_version); -} - -static ssize_t show_hca(struct class_device *cdev, char *buf) -{ - struct iwch_dev *dev = container_of(cdev, struct iwch_dev, - ibdev.class_dev); - struct ethtool_drvinfo info; - struct net_device *lldev = dev->rdev.t3cdev_p->lldev; - - CTR2(KTR_IW_CXGB, "%s class dev 0x%p", __FUNCTION__, cdev); - lldev->ethtool_ops->get_drvinfo(lldev, &info); - return sprintf(buf, "%s\n", info.driver); -} - -static ssize_t show_board(struct class_device *cdev, char *buf) -{ - struct iwch_dev *dev = container_of(cdev, struct iwch_dev, - ibdev.class_dev); - CTR2(KTR_IW_CXGB, "%s class dev 0x%p", __FUNCTION__, dev); -#ifdef notyet - return sprintf(buf, "%x.%x\n", dev->rdev.rnic_info.pdev->vendor, - dev->rdev.rnic_info.pdev->device); -#else - return sprintf(buf, "%x.%x\n", 0xdead, 0xbeef); /* XXX */ -#endif -} - -static CLASS_DEVICE_ATTR(hw_rev, S_IRUGO, show_rev, NULL); -static CLASS_DEVICE_ATTR(fw_ver, S_IRUGO, show_fw_ver, NULL); -static CLASS_DEVICE_ATTR(hca_type, S_IRUGO, show_hca, NULL); -static CLASS_DEVICE_ATTR(board_id, S_IRUGO, show_board, NULL); - -static struct class_device_attribute *iwch_class_attributes[] = { - &class_device_attr_hw_rev, - &class_device_attr_fw_ver, - &class_device_attr_hca_type, - &class_device_attr_board_id -}; -#endif - int iwch_register_device(struct iwch_dev *dev) { int ret; -#ifdef notyet - int i; -#endif + struct adapter *sc = dev->rdev.adap; + CTR2(KTR_IW_CXGB, "%s iwch_dev %p", __FUNCTION__, dev); strlcpy(dev->ibdev.name, "cxgb3_%d", IB_DEVICE_NAME_MAX); memset(&dev->ibdev.node_guid, 0, sizeof(dev->ibdev.node_guid)); -#ifdef notyet - memcpy(&dev->ibdev.node_guid, dev->rdev.t3cdev_p->lldev->dev_addr, 6); -#endif + memcpy(&dev->ibdev.node_guid, sc->port[0].hw_addr, 6); dev->device_cap_flags = - (IB_DEVICE_ZERO_STAG | - IB_DEVICE_SEND_W_INV | IB_DEVICE_MEM_WINDOW); + (IB_DEVICE_LOCAL_DMA_LKEY | + IB_DEVICE_MEM_WINDOW); dev->ibdev.uverbs_cmd_mask = (1ull << IB_USER_VERBS_CMD_GET_CONTEXT) | @@ -1189,9 +1082,9 @@ int iwch_register_device(struct iwch_dev *dev) (1ull << IB_USER_VERBS_CMD_POST_RECV); dev->ibdev.node_type = RDMA_NODE_RNIC; memcpy(dev->ibdev.node_desc, IWCH_NODE_DESC, sizeof(IWCH_NODE_DESC)); - dev->ibdev.phys_port_cnt = dev->rdev.port_info.nports; + dev->ibdev.phys_port_cnt = sc->params.nports; dev->ibdev.num_comp_vectors = 1; - dev->ibdev.dma_device = dev->rdev.rnic_info.pdev; + dev->ibdev.dma_device = dev->rdev.adap->dev; dev->ibdev.query_device = iwch_query_device; dev->ibdev.query_port = iwch_query_port; dev->ibdev.modify_port = iwch_modify_port; @@ -1199,9 +1092,7 @@ int iwch_register_device(struct iwch_dev *dev) dev->ibdev.query_gid = iwch_query_gid; dev->ibdev.alloc_ucontext = iwch_alloc_ucontext; dev->ibdev.dealloc_ucontext = iwch_dealloc_ucontext; -#ifdef notyet dev->ibdev.mmap = iwch_mmap; -#endif dev->ibdev.alloc_pd = iwch_allocate_pd; dev->ibdev.dealloc_pd = iwch_deallocate_pd; dev->ibdev.create_ah = iwch_ah_create; @@ -1229,11 +1120,13 @@ int iwch_register_device(struct iwch_dev *dev) dev->ibdev.req_notify_cq = iwch_arm_cq; dev->ibdev.post_send = iwch_post_send; dev->ibdev.post_recv = iwch_post_receive; - + dev->ibdev.uverbs_abi_ver = IWCH_UVERBS_ABI_VERSION; dev->ibdev.iwcm = - (struct iw_cm_verbs *) kmalloc(sizeof(struct iw_cm_verbs), - M_NOWAIT); + kmalloc(sizeof(struct iw_cm_verbs), M_NOWAIT); + if (!dev->ibdev.iwcm) + return (ENOMEM); + dev->ibdev.iwcm->connect = iwch_connect; dev->ibdev.iwcm->accept = iwch_accept_cr; dev->ibdev.iwcm->reject = iwch_reject_cr; @@ -1246,35 +1139,19 @@ int iwch_register_device(struct iwch_dev *dev) ret = ib_register_device(&dev->ibdev); if (ret) goto bail1; -#ifdef notyet - for (i = 0; i < ARRAY_SIZE(iwch_class_attributes); ++i) { - ret = class_device_create_file(&dev->ibdev.class_dev, - iwch_class_attributes[i]); - if (ret) { - goto bail2; - } - } -#endif - return 0; -#ifdef notyet -bail2: -#endif - ib_unregister_device(&dev->ibdev); + + return (0); + bail1: - return ret; + cxfree(dev->ibdev.iwcm); + return (ret); } void iwch_unregister_device(struct iwch_dev *dev) { -#ifdef notyet - int i; - CTR2(KTR_IW_CXGB, "%s iwch_dev %p", __FUNCTION__, dev); - - for (i = 0; i < ARRAY_SIZE(iwch_class_attributes); ++i) - class_device_remove_file(&dev->ibdev.class_dev, - iwch_class_attributes[i]); -#endif ib_unregister_device(&dev->ibdev); + cxfree(dev->ibdev.iwcm); return; } +#endif diff --git a/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_provider.h b/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_provider.h index c857ce8e5b8f..2e012fd28342 100644 --- a/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_provider.h +++ b/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_provider.h @@ -31,7 +31,7 @@ POSSIBILITY OF SUCH DAMAGE. #ifndef __IWCH_PROVIDER_H__ #define __IWCH_PROVIDER_H__ -#include +#include struct iwch_pd { struct ib_pd ibpd; @@ -116,6 +116,7 @@ enum IWCH_QP_FLAGS { }; struct iwch_mpa_attributes { + u8 initiator; u8 recv_marker_enabled; u8 xmit_marker_enabled; /* iWARP: enable inbound Read Resp. */ u8 crc_enabled; @@ -336,18 +337,17 @@ int iwch_poll_cq(struct ib_cq *ibcq, int num_entries, struct ib_wc *wc); int iwch_post_terminate(struct iwch_qp *qhp, struct respQ_msg_t *rsp_msg); int iwch_register_device(struct iwch_dev *dev); void iwch_unregister_device(struct iwch_dev *dev); -int iwch_quiesce_qps(struct iwch_cq *chp); -int iwch_resume_qps(struct iwch_cq *chp); void stop_read_rep_timer(struct iwch_qp *qhp); int iwch_register_mem(struct iwch_dev *rhp, struct iwch_pd *php, struct iwch_mr *mhp, - int shift, - __be64 *page_list); + int shift); int iwch_reregister_mem(struct iwch_dev *rhp, struct iwch_pd *php, struct iwch_mr *mhp, int shift, - __be64 *page_list, int npages); +int iwch_alloc_pbl(struct iwch_mr *mhp, int npages); +void iwch_free_pbl(struct iwch_mr *mhp); +int iwch_write_pbl(struct iwch_mr *mhp, __be64 *pages, int npages, int offset); int build_phys_page_list(struct ib_phys_buf *buffer_list, int num_phys_buf, u64 *iova_start, diff --git a/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_qp.c b/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_qp.c index fd5149878176..7734fd029764 100644 --- a/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_qp.c +++ b/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_qp.c @@ -1,4 +1,3 @@ - /************************************************************************** Copyright (c) 2007, Chelsio Inc. @@ -30,11 +29,13 @@ POSSIBILITY OF SUCH DAMAGE. #include __FBSDID("$FreeBSD$"); +#include "opt_inet.h" + +#ifdef TCP_OFFLOAD #include #include #include #include -#include #include #include #include @@ -48,6 +49,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -57,14 +59,26 @@ __FBSDID("$FreeBSD$"); #include #include +#include +#include #include +#include +#include +#include +#include +#include +#include +#include -#include -#include -#include +#include +#include +#include +#include +#include #include #include +#include #include #include #include @@ -75,7 +89,7 @@ __FBSDID("$FreeBSD$"); #define NO_SUPPORT -1 -static int iwch_build_rdma_send(union t3_wr *wqe, struct ib_send_wr *wr, +static int build_rdma_send(union t3_wr *wqe, struct ib_send_wr *wr, u8 * flit_cnt) { int i; @@ -83,59 +97,46 @@ static int iwch_build_rdma_send(union t3_wr *wqe, struct ib_send_wr *wr, switch (wr->opcode) { case IB_WR_SEND: - case IB_WR_SEND_WITH_IMM: if (wr->send_flags & IB_SEND_SOLICITED) wqe->send.rdmaop = T3_SEND_WITH_SE; else wqe->send.rdmaop = T3_SEND; wqe->send.rem_stag = 0; break; -#if 0 /* Not currently supported */ - case TYPE_SEND_INVALIDATE: - case TYPE_SEND_INVALIDATE_IMMEDIATE: - wqe->send.rdmaop = T3_SEND_WITH_INV; - wqe->send.rem_stag = htobe32(wr->wr.rdma.rkey); + case IB_WR_SEND_WITH_IMM: + if (wr->send_flags & IB_SEND_SOLICITED) + wqe->send.rdmaop = T3_SEND_WITH_SE_INV; + else + wqe->send.rdmaop = T3_SEND_WITH_INV; + wqe->send.rem_stag = 0; break; - case TYPE_SEND_SE_INVALIDATE: - wqe->send.rdmaop = T3_SEND_WITH_SE_INV; - wqe->send.rem_stag = htobe32(wr->wr.rdma.rkey); - break; -#endif default: - break; + return -EINVAL; } if (wr->num_sge > T3_MAX_SGE) return (-EINVAL); wqe->send.reserved[0] = 0; wqe->send.reserved[1] = 0; wqe->send.reserved[2] = 0; - if (wr->opcode == IB_WR_SEND_WITH_IMM) { - plen = 4; - wqe->send.sgl[0].stag = wr->imm_data; - wqe->send.sgl[0].len = 0; - wqe->send.num_sgle = 0; - *flit_cnt = 5; - } else { - plen = 0; - for (i = 0; i < wr->num_sge; i++) { - if ((plen + wr->sg_list[i].length) < plen) { - return (-EMSGSIZE); - } - plen += wr->sg_list[i].length; - wqe->send.sgl[i].stag = - htobe32(wr->sg_list[i].lkey); - wqe->send.sgl[i].len = - htobe32(wr->sg_list[i].length); - wqe->send.sgl[i].to = htobe64(wr->sg_list[i].addr); + plen = 0; + for (i = 0; i < wr->num_sge; i++) { + if ((plen + wr->sg_list[i].length) < plen) { + return (-EMSGSIZE); } - wqe->send.num_sgle = htobe32(wr->num_sge); - *flit_cnt = 4 + ((wr->num_sge) << 1); + plen += wr->sg_list[i].length; + wqe->send.sgl[i].stag = + htobe32(wr->sg_list[i].lkey); + wqe->send.sgl[i].len = + htobe32(wr->sg_list[i].length); + wqe->send.sgl[i].to = htobe64(wr->sg_list[i].addr); } + wqe->send.num_sgle = htobe32(wr->num_sge); + *flit_cnt = 4 + ((wr->num_sge) << 1); wqe->send.plen = htobe32(plen); return 0; } -static int iwch_build_rdma_write(union t3_wr *wqe, struct ib_send_wr *wr, +static int build_rdma_write(union t3_wr *wqe, struct ib_send_wr *wr, u8 *flit_cnt) { int i; @@ -152,7 +153,7 @@ static int iwch_build_rdma_write(union t3_wr *wqe, struct ib_send_wr *wr, if (wr->opcode == IB_WR_RDMA_WRITE_WITH_IMM) { plen = 4; - wqe->write.sgl[0].stag = wr->imm_data; + wqe->write.sgl[0].stag = wr->ex.imm_data; wqe->write.sgl[0].len = 0; wqe->write.num_sgle = 0; *flit_cnt = 6; @@ -177,7 +178,7 @@ static int iwch_build_rdma_write(union t3_wr *wqe, struct ib_send_wr *wr, return 0; } -static int iwch_build_rdma_read(union t3_wr *wqe, struct ib_send_wr *wr, +static int build_rdma_read(union t3_wr *wqe, struct ib_send_wr *wr, u8 *flit_cnt) { if (wr->num_sge > 1) @@ -195,15 +196,12 @@ static int iwch_build_rdma_read(union t3_wr *wqe, struct ib_send_wr *wr, return 0; } -/* - * TBD: this is going to be moved to firmware. Missing pdid/qpid check for now. - */ static int iwch_sgl2pbl_map(struct iwch_dev *rhp, struct ib_sge *sg_list, u32 num_sgle, u32 * pbl_addr, u8 * page_size) { int i; struct iwch_mr *mhp; - u32 offset; + u64 offset; for (i = 0; i < num_sgle; i++) { mhp = get_mhp(rhp, (sg_list[i].lkey) >> 8); @@ -235,8 +233,8 @@ static int iwch_sgl2pbl_map(struct iwch_dev *rhp, struct ib_sge *sg_list, return (-EINVAL); } offset = sg_list[i].addr - mhp->attr.va_fbo; - offset += ((u32) mhp->attr.va_fbo) % - (1UL << (12 + mhp->attr.page_size)); + offset += mhp->attr.va_fbo & + ((1UL << (12 + mhp->attr.page_size)) - 1); pbl_addr[i] = ((mhp->attr.pbl_addr - rhp->rdev.rnic_info.pbl_base) >> 3) + (offset >> (12 + mhp->attr.page_size)); @@ -245,26 +243,113 @@ static int iwch_sgl2pbl_map(struct iwch_dev *rhp, struct ib_sge *sg_list, return 0; } -static int iwch_build_rdma_recv(struct iwch_dev *rhp, union t3_wr *wqe, +static int build_rdma_recv(struct iwch_qp *qhp, union t3_wr *wqe, struct ib_recv_wr *wr) { - int i; - if (wr->num_sge > T3_MAX_SGE) + int i, err = 0; + u32 pbl_addr[T3_MAX_SGE]; + u8 page_size[T3_MAX_SGE]; + + if (wr->num_sge > T3_MAX_SGE) return (-EINVAL); + + + err = iwch_sgl2pbl_map(qhp->rhp, wr->sg_list, wr->num_sge, pbl_addr, + page_size); + if (err) + return err; + wqe->recv.pagesz[0] = page_size[0]; + wqe->recv.pagesz[1] = page_size[1]; + wqe->recv.pagesz[2] = page_size[2]; + wqe->recv.pagesz[3] = page_size[3]; wqe->recv.num_sgle = htobe32(wr->num_sge); + for (i = 0; i < wr->num_sge; i++) { wqe->recv.sgl[i].stag = htobe32(wr->sg_list[i].lkey); wqe->recv.sgl[i].len = htobe32(wr->sg_list[i].length); - wqe->recv.sgl[i].to = htobe64(wr->sg_list[i].addr); + wqe->recv.sgl[i].to = htobe64(((u32)wr->sg_list[i].addr) & + ((1UL << (12 + page_size[i])) - 1)); + /* pbl_addr is the adapters address in the PBL */ + wqe->recv.pbl_addr[i] = cpu_to_be32(pbl_addr[i]); } for (; i < T3_MAX_SGE; i++) { wqe->recv.sgl[i].stag = 0; wqe->recv.sgl[i].len = 0; wqe->recv.sgl[i].to = 0; + wqe->recv.pbl_addr[i] = 0; } + + qhp->wq.rq[Q_PTR2IDX(qhp->wq.rq_wptr, + qhp->wq.rq_size_log2)].wr_id = wr->wr_id; + qhp->wq.rq[Q_PTR2IDX(qhp->wq.rq_wptr, + qhp->wq.rq_size_log2)].pbl_addr = 0; + return 0; } +static int build_zero_stag_recv(struct iwch_qp *qhp, union t3_wr *wqe, + struct ib_recv_wr *wr) +{ + int i; + u32 pbl_addr; + u32 pbl_offset; + + + /* + * The T3 HW requires the PBL in the HW recv descriptor to reference + * a PBL entry. So we allocate the max needed PBL memory here and pass + * it to the uP in the recv WR. The uP will build the PBL and setup + * the HW recv descriptor. + */ + pbl_addr = cxio_hal_pblpool_alloc(&qhp->rhp->rdev, T3_STAG0_PBL_SIZE); + if (!pbl_addr) + return -ENOMEM; + + /* + * Compute the 8B aligned offset. + */ + pbl_offset = (pbl_addr - qhp->rhp->rdev.rnic_info.pbl_base) >> 3; + + wqe->recv.num_sgle = cpu_to_be32(wr->num_sge); + + for (i = 0; i < wr->num_sge; i++) { + + /* + * Use a 128MB page size. This and an imposed 128MB + * sge length limit allows us to require only a 2-entry HW + * PBL for each SGE. This restriction is acceptable since + * since it is not possible to allocate 128MB of contiguous + * DMA coherent memory! + */ + if (wr->sg_list[i].length > T3_STAG0_MAX_PBE_LEN) + return -EINVAL; + wqe->recv.pagesz[i] = T3_STAG0_PAGE_SHIFT; + + /* + * T3 restricts a recv to all zero-stag or all non-zero-stag. + */ + if (wr->sg_list[i].lkey != 0) + return -EINVAL; + wqe->recv.sgl[i].stag = 0; + wqe->recv.sgl[i].len = htobe32(wr->sg_list[i].length); + wqe->recv.sgl[i].to = htobe64(wr->sg_list[i].addr); + wqe->recv.pbl_addr[i] = htobe32(pbl_offset); + pbl_offset += 2; + } + for (; i < T3_MAX_SGE; i++) { + wqe->recv.pagesz[i] = 0; + wqe->recv.sgl[i].stag = 0; + wqe->recv.sgl[i].len = 0; + wqe->recv.sgl[i].to = 0; + wqe->recv.pbl_addr[i] = 0; + } + qhp->wq.rq[Q_PTR2IDX(qhp->wq.rq_wptr, + qhp->wq.rq_size_log2)].wr_id = wr->wr_id; + qhp->wq.rq[Q_PTR2IDX(qhp->wq.rq_wptr, + qhp->wq.rq_size_log2)].pbl_addr = pbl_addr; + return 0; +} + int iwch_post_send(struct ib_qp *ibqp, struct ib_send_wr *wr, struct ib_send_wr **bad_wr) { @@ -282,18 +367,19 @@ int iwch_post_send(struct ib_qp *ibqp, struct ib_send_wr *wr, mtx_lock(&qhp->lock); if (qhp->attr.state > IWCH_QP_STATE_RTS) { mtx_unlock(&qhp->lock); - return (-EINVAL); + err = -EINVAL; + goto out; } num_wrs = Q_FREECNT(qhp->wq.sq_rptr, qhp->wq.sq_wptr, qhp->wq.sq_size_log2); - if (num_wrs <= 0) { + if (num_wrs == 0) { mtx_unlock(&qhp->lock); - return (-ENOMEM); + err = -EINVAL; + goto out; } while (wr) { if (num_wrs == 0) { err = -ENOMEM; - *bad_wr = wr; break; } idx = Q_PTR2IDX(qhp->wq.wptr, qhp->wq.size_log2); @@ -311,17 +397,17 @@ int iwch_post_send(struct ib_qp *ibqp, struct ib_send_wr *wr, case IB_WR_SEND: case IB_WR_SEND_WITH_IMM: t3_wr_opcode = T3_WR_SEND; - err = iwch_build_rdma_send(wqe, wr, &t3_wr_flit_cnt); + err = build_rdma_send(wqe, wr, &t3_wr_flit_cnt); break; case IB_WR_RDMA_WRITE: case IB_WR_RDMA_WRITE_WITH_IMM: t3_wr_opcode = T3_WR_WRITE; - err = iwch_build_rdma_write(wqe, wr, &t3_wr_flit_cnt); + err = build_rdma_write(wqe, wr, &t3_wr_flit_cnt); break; case IB_WR_RDMA_READ: t3_wr_opcode = T3_WR_READ; t3_wr_flags = 0; /* T3 reads are always signaled */ - err = iwch_build_rdma_read(wqe, wr, &t3_wr_flit_cnt); + err = build_rdma_read(wqe, wr, &t3_wr_flit_cnt); if (err) break; sqp->read_len = wqe->read.local_len; @@ -333,10 +419,9 @@ int iwch_post_send(struct ib_qp *ibqp, struct ib_send_wr *wr, wr->opcode); err = -EINVAL; } - if (err) { - *bad_wr = wr; + if (err) break; - } + wqe->send.wrid.id0.hi = qhp->wq.sq_wptr; sqp->wr_id = wr->wr_id; sqp->opcode = wr2opcode(t3_wr_opcode); @@ -358,6 +443,9 @@ int iwch_post_send(struct ib_qp *ibqp, struct ib_send_wr *wr, } mtx_unlock(&qhp->lock); ring_doorbell(qhp->wq.doorbell, qhp->wq.qpid); +out: + if (err) + *bad_wr = wr; return err; } @@ -374,27 +462,35 @@ int iwch_post_receive(struct ib_qp *ibqp, struct ib_recv_wr *wr, mtx_lock(&qhp->lock); if (qhp->attr.state > IWCH_QP_STATE_RTS) { mtx_unlock(&qhp->lock); - return (-EINVAL); + err = -EINVAL; + goto out; } num_wrs = Q_FREECNT(qhp->wq.rq_rptr, qhp->wq.rq_wptr, qhp->wq.rq_size_log2) - 1; if (!wr) { mtx_unlock(&qhp->lock); - return (-EINVAL); + err = -EINVAL; + goto out; } + while (wr) { + if (wr->num_sge > T3_MAX_SGE) { + err = -EINVAL; + break; + } + idx = Q_PTR2IDX(qhp->wq.wptr, qhp->wq.size_log2); wqe = (union t3_wr *) (qhp->wq.queue + idx); - if (num_wrs) - err = iwch_build_rdma_recv(qhp->rhp, wqe, wr); - else + if (num_wrs) { + if (wr->sg_list[0].lkey) + err = build_rdma_recv(qhp, wqe, wr); + else + err = build_zero_stag_recv(qhp, wqe, wr); + } else err = -ENOMEM; - if (err) { - *bad_wr = wr; + if (err) break; - } - qhp->wq.rq[Q_PTR2IDX(qhp->wq.rq_wptr, qhp->wq.rq_size_log2)] = - wr->wr_id; + build_fw_riwrh((void *) wqe, T3_WR_RCV, T3_COMPLETION_FLAG, Q_GENBIT(qhp->wq.wptr, qhp->wq.size_log2), 0, sizeof(struct t3_receive_wr) >> 3); @@ -408,6 +504,9 @@ int iwch_post_receive(struct ib_qp *ibqp, struct ib_recv_wr *wr, } mtx_unlock(&qhp->lock); ring_doorbell(qhp->wq.doorbell, qhp->wq.qpid); +out: + if (err) + *bad_wr = wr; return err; } @@ -439,7 +538,7 @@ int iwch_bind_mw(struct ib_qp *qp, } num_wrs = Q_FREECNT(qhp->wq.sq_rptr, qhp->wq.sq_wptr, qhp->wq.sq_size_log2); - if ((num_wrs) <= 0) { + if ((num_wrs) == 0) { mtx_unlock(&qhp->lock); return (-ENOMEM); } @@ -491,7 +590,7 @@ int iwch_bind_mw(struct ib_qp *qp, return err; } -static inline void build_term_codes(struct respQ_msg_t *rsp_msg, +static void build_term_codes(struct respQ_msg_t *rsp_msg, u8 *layer_type, u8 *ecode) { int status = TPT_ERR_INTERNAL_ERR; @@ -631,15 +730,18 @@ int iwch_post_terminate(struct iwch_qp *qhp, struct respQ_msg_t *rsp_msg) union t3_wr *wqe; struct terminate_message *term; struct mbuf *m; + struct ofld_hdr *oh; - CTR2(KTR_IW_CXGB, "%s %d", __FUNCTION__, __LINE__); - m = m_gethdr(MT_DATA, M_NOWAIT); - if (!m) { + CTR3(KTR_IW_CXGB, "%s: tid %u, %p", __func__, qhp->ep->hwtid, rsp_msg); + m = m_gethdr(M_NOWAIT, MT_DATA); + if (m == NULL) { log(LOG_ERR, "%s cannot send TERMINATE!\n", __FUNCTION__); return (-ENOMEM); } - wqe = mtod(m, union t3_wr *); - m->m_len = m->m_pkthdr.len = 40; + oh = mtod(m, struct ofld_hdr *); + m->m_pkthdr.len = m->m_len = sizeof(*oh) + 40; + oh->flags = V_HDR_NDESC(1) | V_HDR_CTRL(CPL_PRIORITY_DATA) | V_HDR_QSET(0); + wqe = (void *)(oh + 1); memset(wqe, 0, 40); wqe->send.rdmaop = T3_TERMINATE; @@ -653,22 +755,17 @@ int iwch_post_terminate(struct iwch_qp *qhp, struct respQ_msg_t *rsp_msg) V_FW_RIWR_FLAGS(T3_COMPLETION_FLAG | T3_NOTIFY_FLAG)); wqe->send.wrh.gen_tid_len = htobe32(V_FW_RIWR_TID(qhp->ep->hwtid)); - m_set_priority(m, CPL_PRIORITY_DATA); - m_set_sgl(m, NULL); - m_set_sgllen(m, 0); - return cxgb_ofld_send(qhp->rhp->rdev.t3cdev_p, m); + return t3_offload_tx(qhp->rhp->rdev.adap, m); } /* * Assumes qhp lock is held. */ -static void __flush_qp(struct iwch_qp *qhp) +static void __flush_qp(struct iwch_qp *qhp, struct iwch_cq *rchp, + struct iwch_cq *schp) { - struct iwch_cq *rchp, *schp; int count; - - rchp = get_chp(qhp->rhp, qhp->attr.rcq); - schp = get_chp(qhp->rhp, qhp->attr.scq); + int flushed; CTR4(KTR_IW_CXGB, "%s qhp %p rchp %p schp %p", __FUNCTION__, qhp, rchp, schp); /* take a ref on the qhp since we must release the lock */ @@ -680,20 +777,22 @@ static void __flush_qp(struct iwch_qp *qhp) mtx_lock(&qhp->lock); cxio_flush_hw_cq(&rchp->cq); cxio_count_rcqes(&rchp->cq, &qhp->wq, &count); - cxio_flush_rq(&qhp->wq, &rchp->cq, count); + flushed = cxio_flush_rq(&qhp->wq, &rchp->cq, count); mtx_unlock(&qhp->lock); mtx_unlock(&rchp->lock); - (*rchp->ibcq.comp_handler)(&rchp->ibcq, rchp->ibcq.cq_context); + if (flushed) + (*rchp->ibcq.comp_handler)(&rchp->ibcq, rchp->ibcq.cq_context); /* locking hierarchy: cq lock first, then qp lock. */ mtx_lock(&schp->lock); mtx_lock(&qhp->lock); cxio_flush_hw_cq(&schp->cq); cxio_count_scqes(&schp->cq, &qhp->wq, &count); - cxio_flush_sq(&qhp->wq, &schp->cq, count); + flushed = cxio_flush_sq(&qhp->wq, &schp->cq, count); mtx_unlock(&qhp->lock); mtx_unlock(&schp->lock); - (*schp->ibcq.comp_handler)(&schp->ibcq, schp->ibcq.cq_context); + if (flushed) + (*schp->ibcq.comp_handler)(&schp->ibcq, schp->ibcq.cq_context); /* deref */ mtx_lock(&qhp->lock); @@ -703,10 +802,23 @@ static void __flush_qp(struct iwch_qp *qhp) static void flush_qp(struct iwch_qp *qhp) { - if (qhp->ibqp.uobject) + struct iwch_cq *rchp, *schp; + + rchp = get_chp(qhp->rhp, qhp->attr.rcq); + schp = get_chp(qhp->rhp, qhp->attr.scq); + + if (qhp->ibqp.uobject) { cxio_set_wq_in_error(&qhp->wq); - else - __flush_qp(qhp); + cxio_set_cq_in_error(&rchp->cq); + (*rchp->ibcq.comp_handler)(&rchp->ibcq, rchp->ibcq.cq_context); + if (schp != rchp) { + cxio_set_cq_in_error(&schp->cq); + (*schp->ibcq.comp_handler)(&schp->ibcq, + schp->ibcq.cq_context); + } + return; + } + __flush_qp(qhp, rchp, schp); } @@ -715,7 +827,13 @@ static void flush_qp(struct iwch_qp *qhp) */ static int rqes_posted(struct iwch_qp *qhp) { - return fw_riwrh_opcode((struct fw_riwrh *)qhp->wq.queue) == T3_WR_RCV; + union t3_wr *wqe = qhp->wq.queue; + u16 count = 0; + while ((count+1) != 0 && fw_riwrh_opcode((struct fw_riwrh *)wqe) == T3_WR_RCV) { + count++; + wqe++; + } + return count; } static int rdma_init(struct iwch_dev *rhp, struct iwch_qp *qhp, @@ -724,6 +842,10 @@ static int rdma_init(struct iwch_dev *rhp, struct iwch_qp *qhp, { struct t3_rdma_init_attr init_attr; int ret; + struct socket *so = qhp->ep->com.so; + struct inpcb *inp = sotoinpcb(so); + struct tcpcb *tp; + struct toepcb *toep; init_attr.tid = qhp->ep->hwtid; init_attr.qpid = qhp->wq.qpid; @@ -737,32 +859,28 @@ static int rdma_init(struct iwch_dev *rhp, struct iwch_qp *qhp, (qhp->attr.mpa_attr.xmit_marker_enabled << 1) | (qhp->attr.mpa_attr.crc_enabled << 2); - /* - * XXX - The IWCM doesn't quite handle getting these - * attrs set before going into RTS. For now, just turn - * them on always... - */ -#if 0 - init_attr.qpcaps = qhp->attr.enableRdmaRead | - (qhp->attr.enableRdmaWrite << 1) | - (qhp->attr.enableBind << 2) | - (qhp->attr.enable_stag0_fastreg << 3) | - (qhp->attr.enable_stag0_fastreg << 4); -#else - init_attr.qpcaps = 0x1f; -#endif + init_attr.qpcaps = uP_RI_QP_RDMA_READ_ENABLE | + uP_RI_QP_RDMA_WRITE_ENABLE | + uP_RI_QP_BIND_ENABLE; + if (!qhp->ibqp.uobject) + init_attr.qpcaps |= uP_RI_QP_STAG0_ENABLE; init_attr.tcp_emss = qhp->ep->emss; init_attr.ord = qhp->attr.max_ord; init_attr.ird = qhp->attr.max_ird; init_attr.qp_dma_addr = qhp->wq.dma_addr; init_attr.qp_dma_size = (1UL << qhp->wq.size_log2); - init_attr.flags = rqes_posted(qhp) ? RECVS_POSTED : 0; + init_attr.rqe_count = rqes_posted(qhp); + init_attr.flags = qhp->attr.mpa_attr.initiator ? MPA_INITIATOR : 0; + init_attr.rtr_type = 0; + tp = intotcpcb(inp); + toep = tp->t_toe; + init_attr.chan = toep->tp_l2t->smt_idx; init_attr.irs = qhp->ep->rcv_seq; CTR5(KTR_IW_CXGB, "%s init_attr.rq_addr 0x%x init_attr.rq_size = %d " "flags 0x%x qpcaps 0x%x", __FUNCTION__, init_attr.rq_addr, init_attr.rq_size, init_attr.flags, init_attr.qpcaps); - ret = cxio_rdma_init(&rhp->rdev, &init_attr); + ret = cxio_rdma_init(&rhp->rdev, &init_attr, qhp->ep->com.so); CTR2(KTR_IW_CXGB, "%s ret %d", __FUNCTION__, ret); return ret; } @@ -870,8 +988,8 @@ int iwch_modify_qp(struct iwch_dev *rhp, struct iwch_qp *qhp, abort=0; disconnect = 1; ep = qhp->ep; + get_ep(&ep->com); } - flush_qp(qhp); break; case IWCH_QP_STATE_TERMINATE: qhp->attr.state = IWCH_QP_STATE_TERMINATE; @@ -886,6 +1004,7 @@ int iwch_modify_qp(struct iwch_dev *rhp, struct iwch_qp *qhp, abort=1; disconnect = 1; ep = qhp->ep; + get_ep(&ep->com); } goto err; break; @@ -901,6 +1020,7 @@ int iwch_modify_qp(struct iwch_dev *rhp, struct iwch_qp *qhp, } switch (attrs->next_state) { case IWCH_QP_STATE_IDLE: + flush_qp(qhp); qhp->attr.state = IWCH_QP_STATE_IDLE; qhp->attr.llp_stream_handle = NULL; put_ep(&qhp->ep->com); @@ -908,7 +1028,6 @@ int iwch_modify_qp(struct iwch_dev *rhp, struct iwch_qp *qhp, wakeup(qhp); break; case IWCH_QP_STATE_ERROR: - disconnect=1; goto err; default: ret = -EINVAL; @@ -960,81 +1079,29 @@ int iwch_modify_qp(struct iwch_dev *rhp, struct iwch_qp *qhp, out: mtx_unlock(&qhp->lock); - if (terminate) + if (terminate) iwch_post_terminate(qhp, NULL); + /* * If disconnect is 1, then we need to initiate a disconnect * on the EP. This can be a normal close (RTS->CLOSING) or * an abnormal close (RTS/CLOSING->ERROR). */ - if (disconnect) + if (disconnect) { iwch_ep_disconnect(ep, abort, M_NOWAIT); - + put_ep(&ep->com); + } + /* * If free is 1, then we've disassociated the EP from the QP * and we need to dereference the EP. */ - if (free) + if (free) put_ep(&ep->com); + CTR2(KTR_IW_CXGB, "%s exit state %d", __FUNCTION__, qhp->attr.state); return ret; } - -static int quiesce_qp(struct iwch_qp *qhp) -{ - mtx_lock(&qhp->lock); - iwch_quiesce_tid(qhp->ep); - qhp->flags |= QP_QUIESCED; - mtx_unlock(&qhp->lock); - return 0; -} - -static int resume_qp(struct iwch_qp *qhp) -{ - mtx_lock(&qhp->lock); - iwch_resume_tid(qhp->ep); - qhp->flags &= ~QP_QUIESCED; - mtx_lock(&qhp->lock); - return 0; -} - -int iwch_quiesce_qps(struct iwch_cq *chp) -{ - int i; - struct iwch_qp *qhp; - - for (i=0; i < T3_MAX_NUM_QP; i++) { - qhp = get_qhp(chp->rhp, i); - if (!qhp) - continue; - if ((qhp->attr.rcq == chp->cq.cqid) && !qp_quiesced(qhp)) { - quiesce_qp(qhp); - continue; - } - if ((qhp->attr.scq == chp->cq.cqid) && !qp_quiesced(qhp)) - quiesce_qp(qhp); - } - return 0; -} - -int iwch_resume_qps(struct iwch_cq *chp) -{ - int i; - struct iwch_qp *qhp; - - for (i=0; i < T3_MAX_NUM_QP; i++) { - qhp = get_qhp(chp->rhp, i); - if (!qhp) - continue; - if ((qhp->attr.rcq == chp->cq.cqid) && qp_quiesced(qhp)) { - resume_qp(qhp); - continue; - } - if ((qhp->attr.scq == chp->cq.cqid) && qp_quiesced(qhp)) - resume_qp(qhp); - } - return 0; -} - +#endif diff --git a/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_resource.c b/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_resource.c index 62ffef5871bb..a99bf664199a 100644 --- a/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_resource.c +++ b/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_resource.c @@ -29,11 +29,13 @@ POSSIBILITY OF SUCH DAMAGE. #include __FBSDID("$FreeBSD$"); +#include "opt_inet.h" + +#ifdef TCP_OFFLOAD #include #include #include #include -#include #include #include #include @@ -59,9 +61,11 @@ __FBSDID("$FreeBSD$"); #include -#include -#include -#include +#include +#include +#include +#include +#include #include #include @@ -369,3 +373,4 @@ void cxio_hal_rqtpool_destroy(struct cxio_rdev *rdev_p) { gen_pool_destroy(rdev_p->rqt_pool); } +#endif diff --git a/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_user.h b/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_user.h index 3086a6340a11..55a1006bbb1c 100644 --- a/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_user.h +++ b/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_user.h @@ -47,10 +47,18 @@ struct iwch_create_cq_req { uint64_t user_rptr_addr; }; +struct iwch_create_cq_resp_v0 { + __u64 key; + __u32 cqid; + __u32 size_log2; +}; + struct iwch_create_cq_resp { uint64_t key; uint32_t cqid; uint32_t size_log2; + __u32 memsize; + __u32 reserved; }; struct iwch_create_qp_resp { diff --git a/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_wr.h b/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_wr.h index bf8f2d609e04..8718aa061d79 100644 --- a/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_wr.h +++ b/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_wr.h @@ -32,6 +32,9 @@ POSSIBILITY OF SUCH DAMAGE. #define __CXIO_WR_H__ #define T3_MAX_SGE 4 #define T3_MAX_INLINE 64 +#define T3_STAG0_PBL_SIZE (2 * T3_MAX_SGE << 3) +#define T3_STAG0_MAX_PBE_LEN (128 * 1024 * 1024) +#define T3_STAG0_PAGE_SHIFT 15 #define Q_EMPTY(rptr,wptr) ((rptr)==(wptr)) #define Q_FULL(rptr,wptr,size_log2) ( (((wptr)-(rptr))>>(size_log2)) && \ @@ -272,6 +275,22 @@ enum t3_qp_caps { uP_RI_QP_STAG0_ENABLE = 0x10 } __attribute__ ((packed)); +enum rdma_init_rtr_types { + RTR_READ = 1, + RTR_WRITE = 2, + RTR_SEND = 3, +}; + +#define S_RTR_TYPE 2 +#define M_RTR_TYPE 0x3 +#define V_RTR_TYPE(x) ((x) << S_RTR_TYPE) +#define G_RTR_TYPE(x) ((((x) >> S_RTR_TYPE)) & M_RTR_TYPE) + +#define S_CHAN 4 +#define M_CHAN 0x3 +#define V_CHAN(x) ((x) << S_CHAN) +#define G_CHAN(x) ((((x) >> S_CHAN)) & M_CHAN) + struct t3_rdma_init_attr { u32 tid; u32 qpid; @@ -287,8 +306,11 @@ struct t3_rdma_init_attr { u32 ird; u64 qp_dma_addr; u32 qp_dma_size; - u32 flags; + enum rdma_init_rtr_types rtr_type; + u16 flags; + u16 rqe_count; u32 irs; + u32 chan; }; struct t3_rdma_init_wr { @@ -303,13 +325,13 @@ struct t3_rdma_init_wr { u8 mpaattrs; /* 5 */ u8 qpcaps; __be16 ulpdu_size; - __be32 flags; /* bits 31-1 - reservered */ - /* bit 0 - set if RECV posted */ + __be16 flags_rtr_type; + __be16 rqe_count; __be32 ord; /* 6 */ __be32 ird; __be64 qp_dma_addr; /* 7 */ __be32 qp_dma_size; /* 8 */ - u32 irs; + __be32 irs; }; struct t3_genbit { @@ -318,7 +340,8 @@ struct t3_genbit { }; enum rdma_init_wr_flags { - RECVS_POSTED = 1, + MPA_INITIATOR = (1<<0), + PRIV_QP = (1<<1), }; union t3_wr { @@ -531,6 +554,12 @@ struct t3_cqe { #define CQE_STATUS(x) (G_CQE_STATUS(be32toh((x).header))) #define CQE_OPCODE(x) (G_CQE_OPCODE(be32toh((x).header))) +#define CQE_SEND_OPCODE(x)( \ + (G_CQE_OPCODE(be32_to_cpu((x).header)) == T3_SEND) || \ + (G_CQE_OPCODE(be32_to_cpu((x).header)) == T3_SEND_WITH_SE) || \ + (G_CQE_OPCODE(be32_to_cpu((x).header)) == T3_SEND_WITH_INV) || \ + (G_CQE_OPCODE(be32_to_cpu((x).header)) == T3_SEND_WITH_SE_INV)) + #define CQE_LEN(x) (be32toh((x).len)) /* used for RQ completion processing */ @@ -589,21 +618,23 @@ struct t3_swsq { uint64_t wr_id; struct t3_cqe cqe; uint32_t sq_wptr; - uint32_t read_len; + __be32 read_len; int opcode; int complete; int signaled; }; +struct t3_swrq { + __u64 wr_id; + __u32 pbl_addr; +}; + /* * A T3 WQ implements both the SQ and RQ. */ struct t3_wq { union t3_wr *queue; /* DMA accessable memory */ bus_addr_t dma_addr; /* DMA address for HW */ -#ifdef notyet - DECLARE_PCI_UNMAP_ADDR(mapping) /* unmap kruft */ -#endif u32 error; /* 1 once we go to ERROR */ u32 qpid; u32 wptr; /* idx to next available WR slot */ @@ -613,14 +644,15 @@ struct t3_wq { u32 sq_wptr; /* sq_wptr - sq_rptr == count of */ u32 sq_rptr; /* pending wrs */ u32 sq_size_log2; /* sq size */ - u64 *rq; /* SW RQ (holds consumer wr_ids */ + struct t3_swrq *rq; /* SW RQ (holds consumer wr_ids */ u32 rq_wptr; /* rq_wptr - rq_rptr == count of */ u32 rq_rptr; /* pending wrs */ - u64 *rq_oldest_wr; /* oldest wr on the SW RQ */ + struct t3_swrq *rq_oldest_wr; /* oldest wr on the SW RQ */ u32 rq_size_log2; /* rq size */ u32 rq_addr; /* rq adapter address */ - void /* __iomem */ *doorbell; /* kernel db */ + void *doorbell; /* kernel db */ u64 udb; /* user db if any */ + struct cxio_rdev *rdev; }; struct t3_cq { @@ -629,9 +661,6 @@ struct t3_cq { u32 wptr; u32 size_log2; bus_addr_t dma_addr; -#ifdef notyet - DECLARE_PCI_UNMAP_ADDR(mapping) -#endif struct t3_cqe *queue; struct t3_cqe *sw_queue; u32 sw_rptr; @@ -641,6 +670,22 @@ struct t3_cq { #define CQ_VLD_ENTRY(ptr,size_log2,cqe) (Q_GENBIT(ptr,size_log2) == \ CQE_GENBIT(*cqe)) +struct t3_cq_status_page { + u32 cq_err; +}; + +static inline int cxio_cq_in_error(struct t3_cq *cq) +{ + return ((struct t3_cq_status_page *) + &cq->queue[1 << cq->size_log2])->cq_err; +} + +static inline void cxio_set_cq_in_error(struct t3_cq *cq) +{ + ((struct t3_cq_status_page *) + &cq->queue[1 << cq->size_log2])->cq_err = 1; +} + static inline void cxio_set_wq_in_error(struct t3_wq *wq) { wq->queue->flit[13] = 1; diff --git a/sys/dev/cxgb/ulp/toecore/cxgb_toedev.h b/sys/dev/cxgb/ulp/toecore/cxgb_toedev.h deleted file mode 100644 index 398923a2e673..000000000000 --- a/sys/dev/cxgb/ulp/toecore/cxgb_toedev.h +++ /dev/null @@ -1,49 +0,0 @@ - -/************************************************************************** - -Copyright (c) 2007, Chelsio Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2. Neither the name of the Chelsio Corporation nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -$FreeBSD$ - -***************************************************************************/ - -#ifndef _CXGB_TOEDEV_H_ -#define _CXGB_TOEDEV_H_ -#include - - -/* offload type ids */ -enum { - TOE_ID_CHELSIO_T1 = 1, - TOE_ID_CHELSIO_T1C, - TOE_ID_CHELSIO_T2, - TOE_ID_CHELSIO_T3, - TOE_ID_CHELSIO_T3B, - TOE_ID_CHELSIO_T3C, -} - ; - -#endif diff --git a/sys/dev/cxgb/ulp/toecore/toedev.c b/sys/dev/cxgb/ulp/toecore/toedev.c deleted file mode 100644 index 01a7d902a563..000000000000 --- a/sys/dev/cxgb/ulp/toecore/toedev.c +++ /dev/null @@ -1,420 +0,0 @@ - -/************************************************************************** - -Copyright (c) 2007, Chelsio Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2. Neither the name of the Chelsio Corporation nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -***************************************************************************/ - -#include -__FBSDID("$FreeBSD$"); - -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -#include -#include -#include -#include - - -/* - * XXX - */ -#include -#include - -static struct mtx offload_db_lock; -static TAILQ_HEAD(, toedev) offload_dev_list; -static TAILQ_HEAD(, tom_info) offload_module_list; - -/* - * Returns the entry in the given table with the given offload id, or NULL - * if the id is not found. - */ -static const struct offload_id * -id_find(unsigned int id, const struct offload_id *table) -{ - for ( ; table->id; ++table) - if (table->id == id) - return table; - return NULL; -} - -/* - * Returns true if an offload device is presently attached to an offload module. - */ -static inline int -is_attached(const struct toedev *dev) -{ - return dev->tod_offload_mod != NULL; -} - -/* - * Try to attach a new offload device to an existing TCP offload module that - * can handle the device's offload id. Returns 0 if it succeeds. - * - * Must be called with the offload_db_lock held. - */ -static int -offload_attach(struct toedev *dev) -{ - struct tom_info *t; - - TAILQ_FOREACH(t, &offload_module_list, entry) { - const struct offload_id *entry; - - entry = id_find(dev->tod_ttid, t->ti_id_table); - if (entry && t->ti_attach(dev, entry) == 0) { - dev->tod_offload_mod = t; - return 0; - } - } - return (ENOPROTOOPT); -} - -/** - * register_tom - register a TCP Offload Module (TOM) - * @t: the offload module to register - * - * Register a TCP Offload Module (TOM). - */ -int -register_tom(struct tom_info *t) -{ - mtx_lock(&offload_db_lock); - toedev_registration_count++; - TAILQ_INSERT_HEAD(&offload_module_list, t, entry); - mtx_unlock(&offload_db_lock); - return 0; -} - -/** - * unregister_tom - unregister a TCP Offload Module (TOM) - * @t: the offload module to register - * - * Unregister a TCP Offload Module (TOM). Note that this does not affect any - * TOE devices to which the TOM is already attached. - */ -int -unregister_tom(struct tom_info *t) -{ - mtx_lock(&offload_db_lock); - TAILQ_REMOVE(&offload_module_list, t, entry); - mtx_unlock(&offload_db_lock); - return 0; -} - -/* - * Find an offload device by name. Must be called with offload_db_lock held. - */ -static struct toedev * -__find_offload_dev_by_name(const char *name) -{ - struct toedev *dev; - - TAILQ_FOREACH(dev, &offload_dev_list, entry) { - if (!strncmp(dev->tod_name, name, TOENAMSIZ)) - return dev; - } - return NULL; -} - -/* - * Returns true if an offload device is already registered. - * Must be called with the offload_db_lock held. - */ -static int -is_registered(const struct toedev *dev) -{ - struct toedev *d; - - TAILQ_FOREACH(d, &offload_dev_list, entry) { - if (d == dev) - return 1; - } - return 0; -} - -/* - * Finalize the name of an offload device by assigning values to any format - * strings in its name. - */ -static int -assign_name(struct toedev *dev, const char *name, int limit) -{ - int i; - - for (i = 0; i < limit; ++i) { - char s[TOENAMSIZ]; - - if (snprintf(s, sizeof(s), name, i) >= sizeof(s)) - return -1; /* name too long */ - if (!__find_offload_dev_by_name(s)) { - strcpy(dev->tod_name, s); - return 0; - } - } - return -1; -} - -/** - * register_toedev - register a TOE device - * @dev: the device - * @name: a name template for the device - * - * Register a TOE device and try to attach an appropriate TCP offload module - * to it. @name is a template that may contain at most one %d format - * specifier. - */ -int -register_toedev(struct toedev *dev, const char *name) -{ - int ret; - const char *p; - - /* - * Validate the name template. Only one %d allowed and name must be - * a valid filename so it can appear in sysfs. - */ - if (!name || !*name || !strcmp(name, ".") || !strcmp(name, "..") || - strchr(name, '/')) - return EINVAL; - - p = strchr(name, '%'); - if (p && (p[1] != 'd' || strchr(p + 2, '%'))) - return EINVAL; - - mtx_lock(&offload_db_lock); - if (is_registered(dev)) { /* device already registered */ - ret = EEXIST; - goto out; - } - - if ((ret = assign_name(dev, name, 32)) != 0) - goto out; - - dev->tod_offload_mod = NULL; - TAILQ_INSERT_TAIL(&offload_dev_list, dev, entry); -out: - mtx_unlock(&offload_db_lock); - return ret; -} - -/** - * unregister_toedev - unregister a TOE device - * @dev: the device - * - * Unregister a TOE device. The device must not be attached to an offload - * module. - */ -int -unregister_toedev(struct toedev *dev) -{ - int ret = 0; - - mtx_lock(&offload_db_lock); - if (!is_registered(dev)) { - ret = ENODEV; - goto out; - } - if (is_attached(dev)) { - ret = EBUSY; - goto out; - } - TAILQ_REMOVE(&offload_dev_list, dev, entry); -out: - mtx_unlock(&offload_db_lock); - return ret; -} - -/** - * activate_offload - activate an offload device - * @dev: the device - * - * Activate an offload device by locating an appropriate registered offload - * module. If no module is found the operation fails and may be retried at - * a later time. - */ -int -activate_offload(struct toedev *dev) -{ - int ret = 0; - - mtx_lock(&offload_db_lock); - if (!is_registered(dev)) - ret = ENODEV; - else if (!is_attached(dev)) - ret = offload_attach(dev); - mtx_unlock(&offload_db_lock); - return ret; -} - -/** - * toe_send - send a packet to a TOE device - * @dev: the device - * @m: the packet - * - * Sends an mbuf to a TOE driver after dealing with any active network taps. - */ -int -toe_send(struct toedev *dev, struct mbuf *m) -{ - int r; - - critical_enter(); /* XXX neccessary? */ - r = dev->tod_send(dev, m); - critical_exit(); - if (r) - BPF_MTAP(dev->tod_lldev, m); - return r; -} - -/** - * toe_receive_mbuf - process n received TOE packets - * @dev: the toe device - * @m: an array of offload packets - * @n: the number of offload packets - * - * Process an array of ingress offload packets. Each packet is forwarded - * to any active network taps and then passed to the toe device's receive - * method. We optimize passing packets to the receive method by passing - * it the whole array at once except when there are active taps. - */ -int -toe_receive_mbuf(struct toedev *dev, struct mbuf **m, int n) -{ - if (__predict_true(!bpf_peers_present(dev->tod_lldev->if_bpf))) - return dev->tod_recv(dev, m, n); - - for ( ; n; n--, m++) { - m[0]->m_pkthdr.rcvif = dev->tod_lldev; - BPF_MTAP(dev->tod_lldev, m[0]); - dev->tod_recv(dev, m, 1); - } - return 0; -} - -static inline int -ifnet_is_offload(const struct ifnet *ifp) -{ - return (ifp->if_flags & IFCAP_TOE); -} - -void -toe_arp_update(struct rtentry *rt) -{ - struct ifnet *ifp = rt->rt_ifp; - - if (ifp && ifnet_is_offload(ifp)) { - struct toedev *tdev = TOEDEV(ifp); - - if (tdev && tdev->tod_arp_update) - tdev->tod_arp_update(tdev, rt); - } -} - -/** - * offload_get_phys_egress - find the physical egress device - * @root_dev: the root device anchoring the search - * @so: the socket used to determine egress port in bonding mode - * @context: in bonding mode, indicates a connection set up or failover - * - * Given a root network device it returns the physical egress device that is a - * descendant of the root device. The root device may be either a physical - * device, in which case it is the device returned, or a virtual device, such - * as a VLAN or bonding device. In case of a bonding device the search - * considers the decisions of the bonding device given its mode to locate the - * correct egress device. - */ -struct ifnet * -offload_get_phys_egress(struct ifnet *root_dev, struct socket *so, int context) -{ - -#if 0 - while (root_dev && ifnet_is_offload(root_dev)) { - if (root_dev->tod_priv_flags & IFF_802_1Q_VLAN) - root_dev = VLAN_DEV_INFO(root_dev)->real_dev; - else if (root_dev->tod_flags & IFF_MASTER) - root_dev = toe_bond_get_slave(root_dev, sk, context); - else - break; - } -#endif - return root_dev; -} - -static int -toecore_load(module_t mod, int cmd, void *arg) -{ - int err = 0; - - switch (cmd) { - case MOD_LOAD: - mtx_init(&offload_db_lock, "toedev lock", NULL, MTX_DEF); - TAILQ_INIT(&offload_dev_list); - TAILQ_INIT(&offload_module_list); - break; - case MOD_QUIESCE: - break; - case MOD_UNLOAD: - mtx_lock(&offload_db_lock); - if (!TAILQ_EMPTY(&offload_dev_list) || - !TAILQ_EMPTY(&offload_module_list)) { - err = EBUSY; - mtx_unlock(&offload_db_lock); - break; - } - mtx_unlock(&offload_db_lock); - mtx_destroy(&offload_db_lock); - break; - case MOD_SHUTDOWN: - break; - default: - err = EOPNOTSUPP; - break; - } - - return (err); -} - - -static moduledata_t mod_data= { - "toecore", - toecore_load, - 0 -}; - -MODULE_VERSION(toecore, 1); -DECLARE_MODULE(toecore, mod_data, SI_SUB_EXEC, SI_ORDER_ANY); diff --git a/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c b/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c index e019c6148a42..16b5394a4be6 100644 --- a/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c +++ b/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c @@ -1,35 +1,35 @@ -/************************************************************************** - -Copyright (c) 2007-2008, Chelsio Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2. Neither the name of the Chelsio Corporation nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -***************************************************************************/ +/*- + * Copyright (c) 2012 Chelsio Communications, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ #include __FBSDID("$FreeBSD$"); +#include "opt_inet.h" + +#ifdef TCP_OFFLOAD #include #include #include @@ -42,22 +42,17 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include #include #include - -#if __FreeBSD_version < 800044 -#define V_tcp_do_autosndbuf tcp_do_autosndbuf -#define V_tcp_autosndbuf_max tcp_autosndbuf_max -#define V_tcp_do_rfc1323 tcp_do_rfc1323 -#define V_tcp_do_autorcvbuf tcp_do_autorcvbuf -#define V_tcp_autorcvbuf_max tcp_autorcvbuf_max -#define V_tcpstat tcpstat -#endif +#include +#include #include +#include #include #include @@ -65,37 +60,33 @@ __FBSDID("$FreeBSD$"); #include #include - -#include -#include - #include #include +#define TCPSTATES #include -#include +#include #include -#include #include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include "cxgb_include.h" +#include "ulp/tom/cxgb_l2t.h" +#include "ulp/tom/cxgb_tom.h" +#include "ulp/tom/cxgb_toepcb.h" + +VNET_DECLARE(int, tcp_do_autosndbuf); +#define V_tcp_do_autosndbuf VNET(tcp_do_autosndbuf) +VNET_DECLARE(int, tcp_autosndbuf_inc); +#define V_tcp_autosndbuf_inc VNET(tcp_autosndbuf_inc) +VNET_DECLARE(int, tcp_autosndbuf_max); +#define V_tcp_autosndbuf_max VNET(tcp_autosndbuf_max) +VNET_DECLARE(int, tcp_do_autorcvbuf); +#define V_tcp_do_autorcvbuf VNET(tcp_do_autorcvbuf) +VNET_DECLARE(int, tcp_autorcvbuf_inc); +#define V_tcp_autorcvbuf_inc VNET(tcp_autorcvbuf_inc) +VNET_DECLARE(int, tcp_autorcvbuf_max); +#define V_tcp_autorcvbuf_max VNET(tcp_autorcvbuf_max) +extern int always_keepalive; /* * For ULP connections HW may add headers, e.g., for digests, that aren't part @@ -108,29 +99,6 @@ __FBSDID("$FreeBSD$"); */ const unsigned int t3_ulp_extra_len[] = {0, 4, 4, 8}; -#ifdef notyet -/* - * This sk_buff holds a fake header-only TCP segment that we use whenever we - * need to exploit SW TCP functionality that expects TCP headers, such as - * tcp_create_openreq_child(). It's a RO buffer that may be used by multiple - * CPUs without locking. - */ -static struct mbuf *tcphdr_mbuf __read_mostly; -#endif - -/* - * Size of WRs in bytes. Note that we assume all devices we are handling have - * the same WR size. - */ -static unsigned int wrlen __read_mostly; - -/* - * The number of WRs needed for an skb depends on the number of page fragments - * in the skb and whether it has any payload in its main body. This maps the - * length of the gather list represented by an skb into the # of necessary WRs. - */ -static unsigned int mbuf_wrs[TX_MAX_SEGS + 1] __read_mostly; - /* * Max receive window supported by HW in bytes. Only a small part of it can * be set through option0, the rest needs to be set through RX_DATA_ACK. @@ -144,1261 +112,760 @@ static unsigned int mbuf_wrs[TX_MAX_SEGS + 1] __read_mostly; #define MIN_RCV_WND (24 * 1024U) #define INP_TOS(inp) ((inp_ip_tos_get(inp) >> 2) & M_TOS) -#define VALIDATE_SEQ 0 -#define VALIDATE_SOCK(so) -#define DEBUG_WR 0 +static void t3_release_offload_resources(struct toepcb *); +static void send_reset(struct toepcb *toep); -#define TCP_TIMEWAIT 1 -#define TCP_CLOSE 2 -#define TCP_DROP 3 - -static void t3_send_reset(struct toepcb *toep); -static void send_abort_rpl(struct mbuf *m, struct toedev *tdev, int rst_status); -static inline void free_atid(struct t3cdev *cdev, unsigned int tid); -static void handle_syncache_event(int event, void *arg); - -static inline void -SBAPPEND(struct sockbuf *sb, struct mbuf *n) +/* + * Called after the last CPL for the toepcb has been received. + * + * The inp must be wlocked on entry and is unlocked (or maybe destroyed) by the + * time this function exits. + */ +static int +toepcb_release(struct toepcb *toep) { - struct mbuf *m; + struct inpcb *inp = toep->tp_inp; + struct toedev *tod = toep->tp_tod; + struct tom_data *td = t3_tomdata(tod); + int rc; - m = sb->sb_mb; - while (m) { - KASSERT(((m->m_flags & M_EXT) && (m->m_ext.ext_type == EXT_EXTREF)) || - !(m->m_flags & M_EXT), ("unexpected type M_EXT=%d ext_type=%d m_len=%d\n", - !!(m->m_flags & M_EXT), m->m_ext.ext_type, m->m_len)); - KASSERT(m->m_next != (struct mbuf *)0xffffffff, ("bad next value m_next=%p m_nextpkt=%p m_flags=0x%x", - m->m_next, m->m_nextpkt, m->m_flags)); - m = m->m_next; - } - m = n; - while (m) { - KASSERT(((m->m_flags & M_EXT) && (m->m_ext.ext_type == EXT_EXTREF)) || - !(m->m_flags & M_EXT), ("unexpected type M_EXT=%d ext_type=%d m_len=%d\n", - !!(m->m_flags & M_EXT), m->m_ext.ext_type, m->m_len)); - KASSERT(m->m_next != (struct mbuf *)0xffffffff, ("bad next value m_next=%p m_nextpkt=%p m_flags=0x%x", - m->m_next, m->m_nextpkt, m->m_flags)); - m = m->m_next; - } - KASSERT(sb->sb_flags & SB_NOCOALESCE, ("NOCOALESCE not set")); - sbappendstream_locked(sb, n); - m = sb->sb_mb; + INP_WLOCK_ASSERT(inp); + KASSERT(!(toep->tp_flags & TP_CPL_DONE), + ("%s: double release?", __func__)); - while (m) { - KASSERT(m->m_next != (struct mbuf *)0xffffffff, ("bad next value m_next=%p m_nextpkt=%p m_flags=0x%x", - m->m_next, m->m_nextpkt, m->m_flags)); - m = m->m_next; - } + CTR2(KTR_CXGB, "%s: tid %d", __func__, toep->tp_tid); + + toep->tp_flags |= TP_CPL_DONE; + toep->tp_inp = NULL; + + mtx_lock(&td->toep_list_lock); + TAILQ_REMOVE(&td->toep_list, toep, link); + mtx_unlock(&td->toep_list_lock); + + if (!(toep->tp_flags & TP_ATTACHED)) + t3_release_offload_resources(toep); + + rc = in_pcbrele_wlocked(inp); + if (!rc) + INP_WUNLOCK(inp); + return (rc); } -static inline int -is_t3a(const struct toedev *dev) +/* + * One sided detach. The tcpcb is going away and we need to unhook the toepcb + * hanging off it. If the TOE driver is also done with the toepcb we'll release + * all offload resources. + */ +static void +toepcb_detach(struct inpcb *inp) { - return (dev->tod_ttid == TOE_ID_CHELSIO_T3); + struct toepcb *toep; + struct tcpcb *tp; + + KASSERT(inp, ("%s: inp is NULL", __func__)); + INP_WLOCK_ASSERT(inp); + + tp = intotcpcb(inp); + toep = tp->t_toe; + + KASSERT(toep != NULL, ("%s: toep is NULL", __func__)); + KASSERT(toep->tp_flags & TP_ATTACHED, ("%s: not attached", __func__)); + + CTR6(KTR_CXGB, "%s: %s %u, toep %p, inp %p, tp %p", __func__, + tp->t_state == TCPS_SYN_SENT ? "atid" : "tid", toep->tp_tid, + toep, inp, tp); + + tp->t_toe = NULL; + tp->t_flags &= ~TF_TOE; + toep->tp_flags &= ~TP_ATTACHED; + + if (toep->tp_flags & TP_CPL_DONE) + t3_release_offload_resources(toep); +} + +void +t3_pcb_detach(struct toedev *tod __unused, struct tcpcb *tp) +{ + + toepcb_detach(tp->t_inpcb); +} + +static int +alloc_atid(struct tid_info *t, void *ctx) +{ + int atid = -1; + + mtx_lock(&t->atid_lock); + if (t->afree) { + union active_open_entry *p = t->afree; + + atid = (p - t->atid_tab) + t->atid_base; + t->afree = p->next; + p->ctx = ctx; + t->atids_in_use++; + } + mtx_unlock(&t->atid_lock); + + return (atid); } static void -dump_toepcb(struct toepcb *toep) +free_atid(struct tid_info *t, int atid) { - DPRINTF("qset_idx=%d qset=%d ulp_mode=%d mtu_idx=%d tid=%d\n", - toep->tp_qset_idx, toep->tp_qset, toep->tp_ulp_mode, - toep->tp_mtu_idx, toep->tp_tid); + union active_open_entry *p = atid2entry(t, atid); - DPRINTF("wr_max=%d wr_avail=%d wr_unacked=%d mss_clamp=%d flags=0x%x\n", - toep->tp_wr_max, toep->tp_wr_avail, toep->tp_wr_unacked, - toep->tp_mss_clamp, toep->tp_flags); + mtx_lock(&t->atid_lock); + p->next = t->afree; + t->afree = p; + t->atids_in_use--; + mtx_unlock(&t->atid_lock); } -#ifndef RTALLOC2_DEFINED -static struct rtentry * -rtalloc2(struct sockaddr *dst, int report, u_long ignflags) +void +insert_tid(struct tom_data *td, void *ctx, unsigned int tid) { - struct rtentry *rt = NULL; - - if ((rt = rtalloc1(dst, report, ignflags)) != NULL) - RT_UNLOCK(rt); + struct tid_info *t = &td->tid_maps; - return (rt); + t->tid_tab[tid] = ctx; + atomic_add_int(&t->tids_in_use, 1); } + +void +update_tid(struct tom_data *td, void *ctx, unsigned int tid) +{ + struct tid_info *t = &td->tid_maps; + + t->tid_tab[tid] = ctx; +} + +void +remove_tid(struct tom_data *td, unsigned int tid) +{ + struct tid_info *t = &td->tid_maps; + + t->tid_tab[tid] = NULL; + atomic_add_int(&t->tids_in_use, -1); +} + +/* use ctx as a next pointer in the tid release list */ +void +queue_tid_release(struct toedev *tod, unsigned int tid) +{ + struct tom_data *td = t3_tomdata(tod); + void **p = &td->tid_maps.tid_tab[tid]; + struct adapter *sc = tod->tod_softc; + + mtx_lock(&td->tid_release_lock); + *p = td->tid_release_list; + td->tid_release_list = p; + if (!*p) + taskqueue_enqueue(sc->tq, &td->tid_release_task); + mtx_unlock(&td->tid_release_lock); +} + +/* + * Populate a TID_RELEASE WR. + */ +static inline void +mk_tid_release(struct cpl_tid_release *cpl, unsigned int tid) +{ + + cpl->wr.wrh_hi = htonl(V_WR_OP(FW_WROPCODE_FORWARD)); + OPCODE_TID(cpl) = htonl(MK_OPCODE_TID(CPL_TID_RELEASE, tid)); +} + +void +release_tid(struct toedev *tod, unsigned int tid, int qset) +{ + struct tom_data *td = t3_tomdata(tod); + struct adapter *sc = tod->tod_softc; + struct mbuf *m; + struct cpl_tid_release *cpl; +#ifdef INVARIANTS + struct tid_info *t = &td->tid_maps; #endif -/* - * Determine whether to send a CPL message now or defer it. A message is - * deferred if the connection is in SYN_SENT since we don't know the TID yet. - * For connections in other states the message is sent immediately. - * If through_l2t is set the message is subject to ARP processing, otherwise - * it is sent directly. - */ -static inline void -send_or_defer(struct toepcb *toep, struct mbuf *m, int through_l2t) -{ - struct tcpcb *tp = toep->tp_tp; + KASSERT(tid >= 0 && tid < t->ntids, + ("%s: tid=%d, ntids=%d", __func__, tid, t->ntids)); + + m = M_GETHDR_OFLD(qset, CPL_PRIORITY_CONTROL, cpl); + if (m) { + mk_tid_release(cpl, tid); + t3_offload_tx(sc, m); + remove_tid(td, tid); + } else + queue_tid_release(tod, tid); - if (__predict_false(tp->t_state == TCPS_SYN_SENT)) { - inp_wlock(tp->t_inpcb); - mbufq_tail(&toep->out_of_order_queue, m); // defer - inp_wunlock(tp->t_inpcb); - } else if (through_l2t) - l2t_send(TOEP_T3C_DEV(toep), m, toep->tp_l2t); // send through L2T - else - cxgb_ofld_send(TOEP_T3C_DEV(toep), m); // send directly } -static inline unsigned int -mkprio(unsigned int cntrl, const struct toepcb *toep) +void +t3_process_tid_release_list(void *data, int pending) { - return (cntrl); + struct mbuf *m; + struct tom_data *td = data; + struct adapter *sc = td->tod.tod_softc; + + mtx_lock(&td->tid_release_lock); + while (td->tid_release_list) { + void **p = td->tid_release_list; + unsigned int tid = p - td->tid_maps.tid_tab; + struct cpl_tid_release *cpl; + + td->tid_release_list = (void **)*p; + m = M_GETHDR_OFLD(0, CPL_PRIORITY_CONTROL, cpl); /* qs 0 here */ + if (m == NULL) + break; /* XXX: who reschedules the release task? */ + mtx_unlock(&td->tid_release_lock); + mk_tid_release(cpl, tid); + t3_offload_tx(sc, m); + remove_tid(td, tid); + mtx_lock(&td->tid_release_lock); + } + mtx_unlock(&td->tid_release_lock); } -/* - * Populate a TID_RELEASE WR. The skb must be already propely sized. - */ -static inline void -mk_tid_release(struct mbuf *m, const struct toepcb *toep, unsigned int tid) +static void +close_conn(struct adapter *sc, struct toepcb *toep) { - struct cpl_tid_release *req; + struct mbuf *m; + struct cpl_close_con_req *req; - m_set_priority(m, mkprio(CPL_PRIORITY_SETUP, toep)); - m->m_pkthdr.len = m->m_len = sizeof(*req); - req = mtod(m, struct cpl_tid_release *); - req->wr.wr_hi = htonl(V_WR_OP(FW_WROPCODE_FORWARD)); - req->wr.wr_lo = 0; - OPCODE_TID(req) = htonl(MK_OPCODE_TID(CPL_TID_RELEASE, tid)); + if (toep->tp_flags & TP_FIN_SENT) + return; + + m = M_GETHDR_OFLD(toep->tp_qset, CPL_PRIORITY_DATA, req); + if (m == NULL) + CXGB_UNIMPLEMENTED(); + + req->wr.wrh_hi = htonl(V_WR_OP(FW_WROPCODE_OFLD_CLOSE_CON)); + req->wr.wrh_lo = htonl(V_WR_TID(toep->tp_tid)); + OPCODE_TID(req) = htonl(MK_OPCODE_TID(CPL_CLOSE_CON_REQ, toep->tp_tid)); + req->rsvd = 0; + + toep->tp_flags |= TP_FIN_SENT; + t3_offload_tx(sc, m); } static inline void -make_tx_data_wr(struct socket *so, struct mbuf *m, int len, struct mbuf *tail) +make_tx_data_wr(struct socket *so, struct tx_data_wr *req, int len, + struct mbuf *tail) { struct tcpcb *tp = so_sototcpcb(so); struct toepcb *toep = tp->t_toe; - struct tx_data_wr *req; struct sockbuf *snd; - + inp_lock_assert(tp->t_inpcb); snd = so_sockbuf_snd(so); - - req = mtod(m, struct tx_data_wr *); - m->m_len = sizeof(*req); - req->wr_hi = htonl(V_WR_OP(FW_WROPCODE_OFLD_TX_DATA)); - req->wr_lo = htonl(V_WR_TID(toep->tp_tid)); + + req->wr.wrh_hi = htonl(V_WR_OP(FW_WROPCODE_OFLD_TX_DATA)); + req->wr.wrh_lo = htonl(V_WR_TID(toep->tp_tid)); /* len includes the length of any HW ULP additions */ req->len = htonl(len); req->param = htonl(V_TX_PORT(toep->tp_l2t->smt_idx)); /* V_TX_ULP_SUBMODE sets both the mode and submode */ - req->flags = htonl(V_TX_ULP_SUBMODE(/*skb_ulp_mode(skb)*/ 0) | - V_TX_URG(/* skb_urgent(skb) */ 0 ) | - V_TX_SHOVE((!(tp->t_flags & TF_MORETOCOME) && - (tail ? 0 : 1)))); + req->flags = htonl(V_TX_ULP_SUBMODE(toep->tp_ulp_mode) | V_TX_URG(0) | + V_TX_SHOVE(!(tp->t_flags & TF_MORETOCOME) && (tail ? 0 : 1))); req->sndseq = htonl(tp->snd_nxt); if (__predict_false((toep->tp_flags & TP_DATASENT) == 0)) { - req->flags |= htonl(V_TX_ACK_PAGES(2) | F_TX_INIT | - V_TX_CPU_IDX(toep->tp_qset)); - - /* Sendbuffer is in units of 32KB. - */ + struct adapter *sc = toep->tp_tod->tod_softc; + int cpu_idx = sc->rrss_map[toep->tp_qset]; + + req->flags |= htonl(V_TX_ACK_PAGES(2) | F_TX_INIT | + V_TX_CPU_IDX(cpu_idx)); + + /* Sendbuffer is in units of 32KB. */ if (V_tcp_do_autosndbuf && snd->sb_flags & SB_AUTOSIZE) - req->param |= htonl(V_TX_SNDBUF(V_tcp_autosndbuf_max >> 15)); - else { + req->param |= htonl(V_TX_SNDBUF(VNET(tcp_autosndbuf_max) >> 15)); + else req->param |= htonl(V_TX_SNDBUF(snd->sb_hiwat >> 15)); - } - + toep->tp_flags |= TP_DATASENT; } } -#define IMM_LEN 64 /* XXX - see WR_LEN in the cxgb driver */ +/* + * TOM_XXX_DUPLICATION sgl_len, calc_tx_descs, calc_tx_descs_ofld, mbuf_wrs, etc. + * TOM_XXX_MOVE to some common header file. + */ +/* + * IMM_LEN: # of bytes that can be tx'd as immediate data. There are 16 flits + * in a tx desc; subtract 3 for tx_data_wr (including the WR header), and 1 more + * for the second gen bit flit. This leaves us with 12 flits. + * + * descs_to_sgllen: # of SGL entries that can fit into the given # of tx descs. + * The first desc has a tx_data_wr (which includes the WR header), the rest have + * the WR header only. All descs have the second gen bit flit. + * + * sgllen_to_descs: # of tx descs used up by an sgl of given length. The first + * desc has a tx_data_wr (which includes the WR header), the rest have the WR + * header only. All descs have the second gen bit flit. + * + * flits_to_sgllen: # of SGL entries that can be fit in the given # of flits. + * + */ +#define IMM_LEN 96 +static int descs_to_sgllen[TX_MAX_DESC + 1] = {0, 8, 17, 26, 35}; +static int sgllen_to_descs[TX_MAX_SEGS] = { + 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, /* 0 - 9 */ + 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, /* 10 - 19 */ + 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, /* 20 - 29 */ + 4, 4, 4, 4, 4, 4 /* 30 - 35 */ +}; +#if 0 +static int flits_to_sgllen[TX_DESC_FLITS + 1] = { + 0, 0, 1, 2, 2, 3, 4, 4, 5, 6, 6, 7, 8, 8, 9, 10, 10 +}; +#endif +#if SGE_NUM_GENBITS != 2 +#error "SGE_NUM_GENBITS really must be 2" +#endif int t3_push_frames(struct socket *so, int req_completion) { struct tcpcb *tp = so_sototcpcb(so); struct toepcb *toep = tp->t_toe; - - struct mbuf *tail, *m0, *last; - struct t3cdev *cdev; - struct tom_data *d; - int state, bytes, count, total_bytes; - bus_dma_segment_t segs[TX_MAX_SEGS], *segp; + struct mbuf *m0, *sndptr, *m; + struct toedev *tod = toep->tp_tod; + struct adapter *sc = tod->tod_softc; + int bytes, ndesc, total_bytes = 0, mlen; struct sockbuf *snd; - - if (tp->t_state == TCPS_SYN_SENT || tp->t_state == TCPS_CLOSED) { - DPRINTF("tcp state=%d\n", tp->t_state); - return (0); - } - - state = so_state_get(so); - - if (state & (SS_ISDISCONNECTING|SS_ISDISCONNECTED)) { - DPRINTF("disconnecting\n"); - - return (0); - } + struct sglist *sgl; + struct ofld_hdr *oh; + caddr_t dst; + struct tx_data_wr *wr; inp_lock_assert(tp->t_inpcb); snd = so_sockbuf_snd(so); - sockbuf_lock(snd); + SOCKBUF_LOCK(snd); - d = TOM_DATA(toep->tp_toedev); - cdev = d->cdev; - - last = tail = snd->sb_sndptr ? snd->sb_sndptr : snd->sb_mb; - - total_bytes = 0; - DPRINTF("wr_avail=%d tail=%p snd.cc=%d tp_last=%p\n", - toep->tp_wr_avail, tail, snd->sb_cc, toep->tp_m_last); - - if (last && toep->tp_m_last == last && snd->sb_sndptroff != 0) { - KASSERT(tail, ("sbdrop error")); - last = tail = tail->m_next; - } - - if ((toep->tp_wr_avail == 0 ) || (tail == NULL)) { - DPRINTF("wr_avail=%d tail=%p\n", toep->tp_wr_avail, tail); - sockbuf_unlock(snd); - - return (0); - } - - toep->tp_m_last = NULL; - while (toep->tp_wr_avail && (tail != NULL)) { - count = bytes = 0; - segp = segs; - if ((m0 = m_gethdr(M_NOWAIT, MT_DATA)) == NULL) { - sockbuf_unlock(snd); - return (0); + /* + * Autosize the send buffer. + */ + if (snd->sb_flags & SB_AUTOSIZE && VNET(tcp_do_autosndbuf)) { + if (snd->sb_cc >= (snd->sb_hiwat / 8 * 7) && + snd->sb_cc < VNET(tcp_autosndbuf_max)) { + if (!sbreserve_locked(snd, min(snd->sb_hiwat + + VNET(tcp_autosndbuf_inc), VNET(tcp_autosndbuf_max)), + so, curthread)) + snd->sb_flags &= ~SB_AUTOSIZE; } + } + + if (toep->tp_m_last && toep->tp_m_last == snd->sb_sndptr) + sndptr = toep->tp_m_last->m_next; + else + sndptr = snd->sb_sndptr ? snd->sb_sndptr : snd->sb_mb; + + /* Nothing to send or no WRs available for sending data */ + if (toep->tp_wr_avail == 0 || sndptr == NULL) + goto out; + + /* Something to send and at least 1 WR available */ + while (toep->tp_wr_avail && sndptr != NULL) { + + m0 = m_gethdr(M_NOWAIT, MT_DATA); + if (m0 == NULL) + break; + oh = mtod(m0, struct ofld_hdr *); + wr = (void *)(oh + 1); + dst = (void *)(wr + 1); + + m0->m_pkthdr.len = m0->m_len = sizeof(*oh) + sizeof(*wr); + oh->flags = V_HDR_CTRL(CPL_PRIORITY_DATA) | F_HDR_DF | + V_HDR_QSET(toep->tp_qset); + /* - * If the data in tail fits as in-line, then - * make an immediate data wr. + * Try to construct an immediate data WR if possible. Stuff as + * much data into it as possible, one whole mbuf at a time. */ - if (tail->m_len <= IMM_LEN) { - count = 1; - bytes = tail->m_len; - last = tail; - tail = tail->m_next; - m_set_sgl(m0, NULL); - m_set_sgllen(m0, 0); - make_tx_data_wr(so, m0, bytes, tail); - m_append(m0, bytes, mtod(last, caddr_t)); - KASSERT(!m0->m_next, ("bad append")); + mlen = sndptr->m_len; + ndesc = bytes = 0; + while (mlen <= IMM_LEN - bytes) { + bcopy(sndptr->m_data, dst, mlen); + bytes += mlen; + dst += mlen; + + if (!(sndptr = sndptr->m_next)) + break; + mlen = sndptr->m_len; + } + + if (bytes) { + + /* Was able to fit 'bytes' bytes in an immediate WR */ + + ndesc = 1; + make_tx_data_wr(so, wr, bytes, sndptr); + + m0->m_len += bytes; + m0->m_pkthdr.len = m0->m_len; + } else { - while ((mbuf_wrs[count + 1] <= toep->tp_wr_avail) - && (tail != NULL) && (count < TX_MAX_SEGS-1)) { - bytes += tail->m_len; - last = tail; - count++; - /* - * technically an abuse to be using this for a VA - * but less gross than defining my own structure - * or calling pmap_kextract from here :-| - */ - segp->ds_addr = (bus_addr_t)tail->m_data; - segp->ds_len = tail->m_len; - DPRINTF("count=%d wr_needed=%d ds_addr=%p ds_len=%d\n", - count, mbuf_wrs[count], tail->m_data, tail->m_len); - segp++; - tail = tail->m_next; + int wr_avail = min(toep->tp_wr_avail, TX_MAX_DESC); + + /* Need to make an SGL */ + + sgl = sglist_alloc(descs_to_sgllen[wr_avail], M_NOWAIT); + if (sgl == NULL) + break; + + for (m = sndptr; m != NULL; m = m->m_next) { + if ((mlen = m->m_len) > 0) { + if (sglist_append(sgl, m->m_data, mlen)) + break; + } + bytes += mlen; } - DPRINTF("wr_avail=%d mbuf_wrs[%d]=%d tail=%p\n", - toep->tp_wr_avail, count, mbuf_wrs[count], tail); - - m_set_sgl(m0, segs); - m_set_sgllen(m0, count); - make_tx_data_wr(so, m0, bytes, tail); + sndptr = m; + if (bytes == 0) { + sglist_free(sgl); + break; + } + ndesc = sgllen_to_descs[sgl->sg_nseg]; + oh->flags |= F_HDR_SGL; + oh->sgl = sgl; + make_tx_data_wr(so, wr, bytes, sndptr); } - m_set_priority(m0, mkprio(CPL_PRIORITY_DATA, toep)); - if (tail) { - snd->sb_sndptr = tail; - toep->tp_m_last = NULL; - } else - toep->tp_m_last = snd->sb_sndptr = last; - - - DPRINTF("toep->tp_m_last=%p\n", toep->tp_m_last); + oh->flags |= V_HDR_NDESC(ndesc); + oh->plen = bytes; + snd->sb_sndptr = sndptr; snd->sb_sndptroff += bytes; + if (sndptr == NULL) { + snd->sb_sndptr = snd->sb_mbtail; + snd->sb_sndptroff -= snd->sb_mbtail->m_len; + toep->tp_m_last = snd->sb_mbtail; + } else + toep->tp_m_last = NULL; + total_bytes += bytes; - toep->tp_write_seq += bytes; - CTR6(KTR_TOM, "t3_push_frames: wr_avail=%d mbuf_wrs[%d]=%d" - " tail=%p sndptr=%p sndptroff=%d", - toep->tp_wr_avail, count, mbuf_wrs[count], - tail, snd->sb_sndptr, snd->sb_sndptroff); - if (tail) - CTR4(KTR_TOM, "t3_push_frames: total_bytes=%d" - " tp_m_last=%p tailbuf=%p snd_una=0x%08x", - total_bytes, toep->tp_m_last, tail->m_data, - tp->snd_una); - else - CTR3(KTR_TOM, "t3_push_frames: total_bytes=%d" - " tp_m_last=%p snd_una=0x%08x", - total_bytes, toep->tp_m_last, tp->snd_una); + toep->tp_wr_avail -= ndesc; + toep->tp_wr_unacked += ndesc; -#ifdef KTR -{ - int i; - - i = 0; - while (i < count && m_get_sgllen(m0)) { - if ((count - i) >= 3) { - CTR6(KTR_TOM, - "t3_push_frames: pa=0x%zx len=%d pa=0x%zx" - " len=%d pa=0x%zx len=%d", - segs[i].ds_addr, segs[i].ds_len, - segs[i + 1].ds_addr, segs[i + 1].ds_len, - segs[i + 2].ds_addr, segs[i + 2].ds_len); - i += 3; - } else if ((count - i) == 2) { - CTR4(KTR_TOM, - "t3_push_frames: pa=0x%zx len=%d pa=0x%zx" - " len=%d", - segs[i].ds_addr, segs[i].ds_len, - segs[i + 1].ds_addr, segs[i + 1].ds_len); - i += 2; - } else { - CTR2(KTR_TOM, "t3_push_frames: pa=0x%zx len=%d", - segs[i].ds_addr, segs[i].ds_len); - i++; - } - - } -} -#endif - /* - * remember credits used - */ - m0->m_pkthdr.csum_data = mbuf_wrs[count]; - m0->m_pkthdr.len = bytes; - toep->tp_wr_avail -= mbuf_wrs[count]; - toep->tp_wr_unacked += mbuf_wrs[count]; - - if ((req_completion && toep->tp_wr_unacked == mbuf_wrs[count]) || + if ((req_completion && toep->tp_wr_unacked == ndesc) || toep->tp_wr_unacked >= toep->tp_wr_max / 2) { - struct work_request_hdr *wr = cplhdr(m0); - - wr->wr_hi |= htonl(F_WR_COMPL); + wr->wr.wrh_hi |= htonl(F_WR_COMPL); toep->tp_wr_unacked = 0; } - KASSERT((m0->m_pkthdr.csum_data > 0) && - (m0->m_pkthdr.csum_data <= 4), ("bad credit count %d", - m0->m_pkthdr.csum_data)); - m0->m_type = MT_DONTFREE; + enqueue_wr(toep, m0); - DPRINTF("sending offload tx with %d bytes in %d segments\n", - bytes, count); - l2t_send(cdev, m0, toep->tp_l2t); + l2t_send(sc, m0, toep->tp_l2t); } - sockbuf_unlock(snd); +out: + SOCKBUF_UNLOCK(snd); + + if (sndptr == NULL && (toep->tp_flags & TP_SEND_FIN)) + close_conn(sc, toep); + return (total_bytes); } -/* - * Close a connection by sending a CPL_CLOSE_CON_REQ message. Cannot fail - * under any circumstances. We take the easy way out and always queue the - * message to the write_queue. We can optimize the case where the queue is - * already empty though the optimization is probably not worth it. - */ -static void -close_conn(struct socket *so) -{ - struct mbuf *m; - struct cpl_close_con_req *req; - struct tom_data *d; - struct inpcb *inp = so_sotoinpcb(so); - struct tcpcb *tp; - struct toepcb *toep; - unsigned int tid; - - - inp_wlock(inp); - tp = so_sototcpcb(so); - toep = tp->t_toe; - - if (tp->t_state != TCPS_SYN_SENT) - t3_push_frames(so, 1); - - if (toep->tp_flags & TP_FIN_SENT) { - inp_wunlock(inp); - return; - } - - tid = toep->tp_tid; - - d = TOM_DATA(toep->tp_toedev); - - m = m_gethdr_nofail(sizeof(*req)); - m_set_priority(m, CPL_PRIORITY_DATA); - m_set_sgl(m, NULL); - m_set_sgllen(m, 0); - - toep->tp_flags |= TP_FIN_SENT; - req = mtod(m, struct cpl_close_con_req *); - - req->wr.wr_hi = htonl(V_WR_OP(FW_WROPCODE_OFLD_CLOSE_CON)); - req->wr.wr_lo = htonl(V_WR_TID(tid)); - OPCODE_TID(req) = htonl(MK_OPCODE_TID(CPL_CLOSE_CON_REQ, tid)); - req->rsvd = 0; - inp_wunlock(inp); - /* - * XXX - need to defer shutdown while there is still data in the queue - * - */ - CTR4(KTR_TOM, "%s CLOSE_CON_REQ so %p tp %p tid=%u", __FUNCTION__, so, tp, tid); - cxgb_ofld_send(d->cdev, m); - -} - -/* - * Handle an ARP failure for a CPL_ABORT_REQ. Change it into a no RST variant - * and send it along. - */ -static void -abort_arp_failure(struct t3cdev *cdev, struct mbuf *m) -{ - struct cpl_abort_req *req = cplhdr(m); - - req->cmd = CPL_ABORT_NO_RST; - cxgb_ofld_send(cdev, m); -} - -/* - * Send RX credits through an RX_DATA_ACK CPL message. If nofail is 0 we are - * permitted to return without sending the message in case we cannot allocate - * an sk_buff. Returns the number of credits sent. - */ -uint32_t -t3_send_rx_credits(struct tcpcb *tp, uint32_t credits, uint32_t dack, int nofail) +static int +send_rx_credits(struct adapter *sc, struct toepcb *toep, int credits) { struct mbuf *m; struct cpl_rx_data_ack *req; - struct toepcb *toep = tp->t_toe; - struct toedev *tdev = toep->tp_toedev; - - m = m_gethdr_nofail(sizeof(*req)); + uint32_t dack = F_RX_DACK_CHANGE | V_RX_DACK_MODE(1); - DPRINTF("returning %u credits to HW\n", credits); - - req = mtod(m, struct cpl_rx_data_ack *); - req->wr.wr_hi = htonl(V_WR_OP(FW_WROPCODE_FORWARD)); - req->wr.wr_lo = 0; + m = M_GETHDR_OFLD(toep->tp_qset, CPL_PRIORITY_CONTROL, req); + if (m == NULL) + return (0); + + req->wr.wrh_hi = htonl(V_WR_OP(FW_WROPCODE_FORWARD)); + req->wr.wrh_lo = 0; OPCODE_TID(req) = htonl(MK_OPCODE_TID(CPL_RX_DATA_ACK, toep->tp_tid)); req->credit_dack = htonl(dack | V_RX_CREDITS(credits)); - m_set_priority(m, mkprio(CPL_PRIORITY_ACK, toep)); - cxgb_ofld_send(TOM_DATA(tdev)->cdev, m); + t3_offload_tx(sc, m); return (credits); } -/* - * Send RX_DATA_ACK CPL message to request a modulation timer to be scheduled. - * This is only used in DDP mode, so we take the opportunity to also set the - * DACK mode and flush any Rx credits. - */ void -t3_send_rx_modulate(struct toepcb *toep) +t3_rcvd(struct toedev *tod, struct tcpcb *tp) { - struct mbuf *m; - struct cpl_rx_data_ack *req; + struct adapter *sc = tod->tod_softc; + struct inpcb *inp = tp->t_inpcb; + struct socket *so = inp->inp_socket; + struct sockbuf *so_rcv = &so->so_rcv; + struct toepcb *toep = tp->t_toe; + int must_send; - m = m_gethdr_nofail(sizeof(*req)); + INP_WLOCK_ASSERT(inp); - req = mtod(m, struct cpl_rx_data_ack *); - req->wr.wr_hi = htonl(V_WR_OP(FW_WROPCODE_FORWARD)); - req->wr.wr_lo = 0; - m->m_pkthdr.len = m->m_len = sizeof(*req); - - OPCODE_TID(req) = htonl(MK_OPCODE_TID(CPL_RX_DATA_ACK, toep->tp_tid)); - req->credit_dack = htonl(F_RX_MODULATE | F_RX_DACK_CHANGE | - V_RX_DACK_MODE(1) | - V_RX_CREDITS(toep->tp_copied_seq - toep->tp_rcv_wup)); - m_set_priority(m, mkprio(CPL_PRIORITY_CONTROL, toep)); - cxgb_ofld_send(TOEP_T3C_DEV(toep), m); - toep->tp_rcv_wup = toep->tp_copied_seq; -} + SOCKBUF_LOCK(so_rcv); + KASSERT(toep->tp_enqueued >= so_rcv->sb_cc, + ("%s: so_rcv->sb_cc > enqueued", __func__)); + toep->tp_rx_credits += toep->tp_enqueued - so_rcv->sb_cc; + toep->tp_enqueued = so_rcv->sb_cc; + SOCKBUF_UNLOCK(so_rcv); -/* - * Handle receipt of an urgent pointer. - */ -static void -handle_urg_ptr(struct socket *so, uint32_t urg_seq) -{ -#ifdef URGENT_DATA_SUPPORTED - struct tcpcb *tp = so_sototcpcb(so); + must_send = toep->tp_rx_credits + 16384 >= tp->rcv_wnd; + if (must_send || toep->tp_rx_credits >= 15 * 1024) { + int credits; - urg_seq--; /* initially points past the urgent data, per BSD */ - - if (tp->urg_data && !after(urg_seq, tp->urg_seq)) - return; /* duplicate pointer */ - sk_send_sigurg(sk); - if (tp->urg_seq == tp->copied_seq && tp->urg_data && - !sock_flag(sk, SOCK_URGINLINE) && tp->copied_seq != tp->rcv_nxt) { - struct sk_buff *skb = skb_peek(&sk->sk_receive_queue); - - tp->copied_seq++; - if (skb && tp->copied_seq - TCP_SKB_CB(skb)->seq >= skb->len) - tom_eat_skb(sk, skb, 0); + credits = send_rx_credits(sc, toep, toep->tp_rx_credits); + toep->tp_rx_credits -= credits; + tp->rcv_wnd += credits; + tp->rcv_adv += credits; } - tp->urg_data = TCP_URG_NOTYET; - tp->urg_seq = urg_seq; -#endif } -/* - * Returns true if a socket cannot accept new Rx data. - */ -static inline int -so_no_receive(const struct socket *so) +static int +do_rx_urg_notify(struct sge_qset *qs, struct rsp_desc *r, struct mbuf *m) { - return (so_state_get(so) & (SS_ISDISCONNECTED|SS_ISDISCONNECTING)); -} + struct adapter *sc = qs->adap; + struct tom_data *td = sc->tom_softc; + struct cpl_rx_urg_notify *hdr = mtod(m, void *); + unsigned int tid = GET_TID(hdr); + struct toepcb *toep = lookup_tid(&td->tid_maps, tid); -/* - * Process an urgent data notification. - */ -static void -rx_urg_notify(struct toepcb *toep, struct mbuf *m) -{ - struct cpl_rx_urg_notify *hdr = cplhdr(m); - struct socket *so = inp_inpcbtosocket(toep->tp_tp->t_inpcb); - - VALIDATE_SOCK(so); - - if (!so_no_receive(so)) - handle_urg_ptr(so, ntohl(hdr->seq)); + log(LOG_ERR, "%s: tid %u inp %p", __func__, tid, toep->tp_inp); m_freem(m); -} - -/* - * Handler for RX_URG_NOTIFY CPL messages. - */ -static int -do_rx_urg_notify(struct t3cdev *cdev, struct mbuf *m, void *ctx) -{ - struct toepcb *toep = (struct toepcb *)ctx; - - rx_urg_notify(toep, m); return (0); } -static __inline int -is_delack_mode_valid(struct toedev *dev, struct toepcb *toep) -{ - return (toep->tp_ulp_mode || - (toep->tp_ulp_mode == ULP_MODE_TCPDDP && - dev->tod_ttid >= TOE_ID_CHELSIO_T3)); -} - -/* - * Set of states for which we should return RX credits. - */ -#define CREDIT_RETURN_STATE (TCPF_ESTABLISHED | TCPF_FIN_WAIT1 | TCPF_FIN_WAIT2) - -/* - * Called after some received data has been read. It returns RX credits - * to the HW for the amount of data processed. - */ -void -t3_cleanup_rbuf(struct tcpcb *tp, int copied) +int +t3_send_fin(struct toedev *tod, struct tcpcb *tp) { struct toepcb *toep = tp->t_toe; - struct socket *so; - struct toedev *dev; - int dack_mode, must_send, read; - u32 thres, credits, dack = 0; - struct sockbuf *rcv; - - so = inp_inpcbtosocket(tp->t_inpcb); - rcv = so_sockbuf_rcv(so); + struct inpcb *inp = tp->t_inpcb; + struct socket *so = inp_inpcbtosocket(inp); +#if defined(KTR) + unsigned int tid = toep->tp_tid; +#endif - if (!((tp->t_state == TCPS_ESTABLISHED) || (tp->t_state == TCPS_FIN_WAIT_1) || - (tp->t_state == TCPS_FIN_WAIT_2))) { - if (copied) { - sockbuf_lock(rcv); - toep->tp_copied_seq += copied; - sockbuf_unlock(rcv); - } - - return; - } - - inp_lock_assert(tp->t_inpcb); + INP_INFO_WLOCK_ASSERT(&V_tcbinfo); + INP_WLOCK_ASSERT(inp); - sockbuf_lock(rcv); - if (copied) - toep->tp_copied_seq += copied; - else { - read = toep->tp_enqueued_bytes - rcv->sb_cc; - toep->tp_copied_seq += read; - } - credits = toep->tp_copied_seq - toep->tp_rcv_wup; - toep->tp_enqueued_bytes = rcv->sb_cc; - sockbuf_unlock(rcv); + CTR4(KTR_CXGB, "%s: tid %d, toep %p, flags %x", __func__, tid, toep, + toep->tp_flags); - if (credits > rcv->sb_mbmax) { - log(LOG_ERR, "copied_seq=%u rcv_wup=%u credits=%u\n", - toep->tp_copied_seq, toep->tp_rcv_wup, credits); - credits = rcv->sb_mbmax; - } - - - /* - * XXX this won't accurately reflect credit return - we need - * to look at the difference between the amount that has been - * put in the recv sockbuf and what is there now - */ + toep->tp_flags |= TP_SEND_FIN; + t3_push_frames(so, 1); - if (__predict_false(!credits)) - return; - - dev = toep->tp_toedev; - thres = TOM_TUNABLE(dev, rx_credit_thres); - - if (__predict_false(thres == 0)) - return; - - if (is_delack_mode_valid(dev, toep)) { - dack_mode = TOM_TUNABLE(dev, delack); - if (__predict_false(dack_mode != toep->tp_delack_mode)) { - u32 r = tp->rcv_nxt - toep->tp_delack_seq; - - if (r >= tp->rcv_wnd || r >= 16 * toep->tp_mss_clamp) - dack = F_RX_DACK_CHANGE | - V_RX_DACK_MODE(dack_mode); - } - } else - dack = F_RX_DACK_CHANGE | V_RX_DACK_MODE(1); - - /* - * For coalescing to work effectively ensure the receive window has - * at least 16KB left. - */ - must_send = credits + 16384 >= tp->rcv_wnd; - - if (must_send || credits >= thres) - toep->tp_rcv_wup += t3_send_rx_credits(tp, credits, dack, must_send); -} - -static int -cxgb_toe_disconnect(struct tcpcb *tp) -{ - struct socket *so; - - DPRINTF("cxgb_toe_disconnect\n"); - - so = inp_inpcbtosocket(tp->t_inpcb); - close_conn(so); return (0); } -static int -cxgb_toe_reset(struct tcpcb *tp) +int +t3_tod_output(struct toedev *tod, struct tcpcb *tp) { - struct toepcb *toep = tp->t_toe; + struct inpcb *inp = tp->t_inpcb; + struct socket *so = inp->inp_socket; - t3_send_reset(toep); - - /* - * unhook from socket - */ - tp->t_flags &= ~TF_TOE; - toep->tp_tp = NULL; - tp->t_toe = NULL; - return (0); -} - -static int -cxgb_toe_send(struct tcpcb *tp) -{ - struct socket *so; - - DPRINTF("cxgb_toe_send\n"); - dump_toepcb(tp->t_toe); - - so = inp_inpcbtosocket(tp->t_inpcb); t3_push_frames(so, 1); return (0); } -static int -cxgb_toe_rcvd(struct tcpcb *tp) -{ - - inp_lock_assert(tp->t_inpcb); - - t3_cleanup_rbuf(tp, 0); - - return (0); -} - -static void -cxgb_toe_detach(struct tcpcb *tp) -{ - struct toepcb *toep; - - /* - * XXX how do we handle teardown in the SYN_SENT state? - * - */ - inp_lock_assert(tp->t_inpcb); - toep = tp->t_toe; - toep->tp_tp = NULL; - - /* - * unhook from socket - */ - tp->t_flags &= ~TF_TOE; - tp->t_toe = NULL; -} - - -static struct toe_usrreqs cxgb_toe_usrreqs = { - .tu_disconnect = cxgb_toe_disconnect, - .tu_reset = cxgb_toe_reset, - .tu_send = cxgb_toe_send, - .tu_rcvd = cxgb_toe_rcvd, - .tu_detach = cxgb_toe_detach, - .tu_detach = cxgb_toe_detach, - .tu_syncache_event = handle_syncache_event, -}; - - -static void -__set_tcb_field(struct toepcb *toep, struct mbuf *m, uint16_t word, - uint64_t mask, uint64_t val, int no_reply) -{ - struct cpl_set_tcb_field *req; - - CTR4(KTR_TCB, "__set_tcb_field_ulp(tid=%u word=0x%x mask=%jx val=%jx", - toep->tp_tid, word, mask, val); - - req = mtod(m, struct cpl_set_tcb_field *); - m->m_pkthdr.len = m->m_len = sizeof(*req); - req->wr.wr_hi = htonl(V_WR_OP(FW_WROPCODE_FORWARD)); - req->wr.wr_lo = 0; - OPCODE_TID(req) = htonl(MK_OPCODE_TID(CPL_SET_TCB_FIELD, toep->tp_tid)); - req->reply = V_NO_REPLY(no_reply); - req->cpu_idx = 0; - req->word = htons(word); - req->mask = htobe64(mask); - req->val = htobe64(val); - - m_set_priority(m, mkprio(CPL_PRIORITY_CONTROL, toep)); - send_or_defer(toep, m, 0); -} - -static void -t3_set_tcb_field(struct toepcb *toep, uint16_t word, uint64_t mask, uint64_t val) -{ - struct mbuf *m; - struct tcpcb *tp = toep->tp_tp; - - if (toep == NULL) - return; - - if (tp->t_state == TCPS_CLOSED || (toep->tp_flags & TP_ABORT_SHUTDOWN)) { - printf("not seting field\n"); - return; - } - - m = m_gethdr_nofail(sizeof(struct cpl_set_tcb_field)); - - __set_tcb_field(toep, m, word, mask, val, 1); -} - -/* - * Set one of the t_flags bits in the TCB. - */ -static void -set_tcb_tflag(struct toepcb *toep, unsigned int bit_pos, int val) -{ - - t3_set_tcb_field(toep, W_TCB_T_FLAGS1, 1ULL << bit_pos, val << bit_pos); -} - -/* - * Send a SET_TCB_FIELD CPL message to change a connection's Nagle setting. - */ -static void -t3_set_nagle(struct toepcb *toep) -{ - struct tcpcb *tp = toep->tp_tp; - - set_tcb_tflag(toep, S_TF_NAGLE, !(tp->t_flags & TF_NODELAY)); -} - -/* - * Send a SET_TCB_FIELD CPL message to change a connection's keepalive setting. - */ -void -t3_set_keepalive(struct toepcb *toep, int on_off) -{ - - set_tcb_tflag(toep, S_TF_KEEPALIVE, on_off); -} - -void -t3_set_rcv_coalesce_enable(struct toepcb *toep, int on_off) -{ - set_tcb_tflag(toep, S_TF_RCV_COALESCE_ENABLE, on_off); -} - -void -t3_set_dack_mss(struct toepcb *toep, int on_off) -{ - - set_tcb_tflag(toep, S_TF_DACK_MSS, on_off); -} - -/* - * Send a SET_TCB_FIELD CPL message to change a connection's TOS setting. - */ -static void -t3_set_tos(struct toepcb *toep) -{ - int tos = inp_ip_tos_get(toep->tp_tp->t_inpcb); - - t3_set_tcb_field(toep, W_TCB_TOS, V_TCB_TOS(M_TCB_TOS), - V_TCB_TOS(tos)); -} - - -/* - * In DDP mode, TP fails to schedule a timer to push RX data to the host when - * DDP is disabled (data is delivered to freelist). [Note that, the peer should - * set the PSH bit in the last segment, which would trigger delivery.] - * We work around the issue by setting a DDP buffer in a partial placed state, - * which guarantees that TP will schedule a timer. - */ -#define TP_DDP_TIMER_WORKAROUND_MASK\ - (V_TF_DDP_BUF0_VALID(1) | V_TF_DDP_ACTIVE_BUF(1) |\ - ((V_TCB_RX_DDP_BUF0_OFFSET(M_TCB_RX_DDP_BUF0_OFFSET) |\ - V_TCB_RX_DDP_BUF0_LEN(3)) << 32)) -#define TP_DDP_TIMER_WORKAROUND_VAL\ - (V_TF_DDP_BUF0_VALID(1) | V_TF_DDP_ACTIVE_BUF(0) |\ - ((V_TCB_RX_DDP_BUF0_OFFSET((uint64_t)1) | V_TCB_RX_DDP_BUF0_LEN((uint64_t)2)) <<\ - 32)) - -static void -t3_enable_ddp(struct toepcb *toep, int on) -{ - if (on) { - - t3_set_tcb_field(toep, W_TCB_RX_DDP_FLAGS, V_TF_DDP_OFF(1), - V_TF_DDP_OFF(0)); - } else - t3_set_tcb_field(toep, W_TCB_RX_DDP_FLAGS, - V_TF_DDP_OFF(1) | - TP_DDP_TIMER_WORKAROUND_MASK, - V_TF_DDP_OFF(1) | - TP_DDP_TIMER_WORKAROUND_VAL); - -} - -void -t3_set_ddp_tag(struct toepcb *toep, int buf_idx, unsigned int tag_color) -{ - t3_set_tcb_field(toep, W_TCB_RX_DDP_BUF0_TAG + buf_idx, - V_TCB_RX_DDP_BUF0_TAG(M_TCB_RX_DDP_BUF0_TAG), - tag_color); -} - -void -t3_set_ddp_buf(struct toepcb *toep, int buf_idx, unsigned int offset, - unsigned int len) -{ - if (buf_idx == 0) - t3_set_tcb_field(toep, W_TCB_RX_DDP_BUF0_OFFSET, - V_TCB_RX_DDP_BUF0_OFFSET(M_TCB_RX_DDP_BUF0_OFFSET) | - V_TCB_RX_DDP_BUF0_LEN(M_TCB_RX_DDP_BUF0_LEN), - V_TCB_RX_DDP_BUF0_OFFSET((uint64_t)offset) | - V_TCB_RX_DDP_BUF0_LEN((uint64_t)len)); - else - t3_set_tcb_field(toep, W_TCB_RX_DDP_BUF1_OFFSET, - V_TCB_RX_DDP_BUF1_OFFSET(M_TCB_RX_DDP_BUF1_OFFSET) | - V_TCB_RX_DDP_BUF1_LEN(M_TCB_RX_DDP_BUF1_LEN << 32), - V_TCB_RX_DDP_BUF1_OFFSET((uint64_t)offset) | - V_TCB_RX_DDP_BUF1_LEN(((uint64_t)len) << 32)); -} - -static int -t3_set_cong_control(struct socket *so, const char *name) -{ -#ifdef CONGESTION_CONTROL_SUPPORTED - int cong_algo; - - for (cong_algo = 0; cong_algo < ARRAY_SIZE(t3_cong_ops); cong_algo++) - if (!strcmp(name, t3_cong_ops[cong_algo].name)) - break; - - if (cong_algo >= ARRAY_SIZE(t3_cong_ops)) - return -EINVAL; -#endif - return 0; -} - +/* What mtu_idx to use, given a 4-tuple and/or an MSS cap */ int -t3_get_tcb(struct toepcb *toep) +find_best_mtu_idx(struct adapter *sc, struct in_conninfo *inc, int pmss) { - struct cpl_get_tcb *req; - struct tcpcb *tp = toep->tp_tp; - struct mbuf *m = m_gethdr(M_NOWAIT, MT_DATA); + unsigned short *mtus = &sc->params.mtus[0]; + int i = 0, mss; - if (!m) - return (ENOMEM); - - inp_lock_assert(tp->t_inpcb); - m_set_priority(m, mkprio(CPL_PRIORITY_CONTROL, toep)); - req = mtod(m, struct cpl_get_tcb *); - m->m_pkthdr.len = m->m_len = sizeof(*req); - req->wr.wr_hi = htonl(V_WR_OP(FW_WROPCODE_FORWARD)); - req->wr.wr_lo = 0; - OPCODE_TID(req) = htonl(MK_OPCODE_TID(CPL_GET_TCB, toep->tp_tid)); - req->cpuno = htons(toep->tp_qset); - req->rsvd = 0; - if (tp->t_state == TCPS_SYN_SENT) - mbufq_tail(&toep->out_of_order_queue, m); // defer - else - cxgb_ofld_send(TOEP_T3C_DEV(toep), m); - return 0; -} + KASSERT(inc != NULL || pmss > 0, + ("%s: at least one of inc/pmss must be specified", __func__)); -static inline void -so_insert_tid(struct tom_data *d, struct toepcb *toep, unsigned int tid) -{ + mss = inc ? tcp_mssopt(inc) : pmss; + if (pmss > 0 && mss > pmss) + mss = pmss; - toepcb_hold(toep); - - cxgb_insert_tid(d->cdev, d->client, toep, tid); -} - -/** - * find_best_mtu - find the entry in the MTU table closest to an MTU - * @d: TOM state - * @mtu: the target MTU - * - * Returns the index of the value in the MTU table that is closest to but - * does not exceed the target MTU. - */ -static unsigned int -find_best_mtu(const struct t3c_data *d, unsigned short mtu) -{ - int i = 0; - - while (i < d->nmtus - 1 && d->mtus[i + 1] <= mtu) + while (i < NMTUS - 1 && mtus[i + 1] <= mss + 40) ++i; + return (i); } -static unsigned int -select_mss(struct t3c_data *td, struct tcpcb *tp, unsigned int pmtu) -{ - unsigned int idx; - -#ifdef notyet - struct rtentry *dst = so_sotoinpcb(so)->inp_route.ro_rt; -#endif - if (tp) { - tp->t_maxseg = pmtu - 40; - if (tp->t_maxseg < td->mtus[0] - 40) - tp->t_maxseg = td->mtus[0] - 40; - idx = find_best_mtu(td, tp->t_maxseg + 40); - - tp->t_maxseg = td->mtus[idx] - 40; - } else - idx = find_best_mtu(td, pmtu); - - return (idx); -} - static inline void -free_atid(struct t3cdev *cdev, unsigned int tid) +purge_wr_queue(struct toepcb *toep) { - struct toepcb *toep = cxgb_free_atid(cdev, tid); + struct mbuf *m; + struct ofld_hdr *oh; - if (toep) - toepcb_release(toep); + while ((m = mbufq_dequeue(&toep->wr_list)) != NULL) { + oh = mtod(m, struct ofld_hdr *); + if (oh->flags & F_HDR_SGL) + sglist_free(oh->sgl); + m_freem(m); + } } /* - * Release resources held by an offload connection (TID, L2T entry, etc.) + * Release cxgb(4) and T3 resources held by an offload connection (TID, L2T + * entry, etc.) */ static void t3_release_offload_resources(struct toepcb *toep) { - struct tcpcb *tp = toep->tp_tp; - struct toedev *tdev = toep->tp_toedev; - struct t3cdev *cdev; - struct socket *so; - unsigned int tid = toep->tp_tid; - struct sockbuf *rcv; - - CTR0(KTR_TOM, "t3_release_offload_resources"); + struct toedev *tod = toep->tp_tod; + struct tom_data *td = t3_tomdata(tod); - if (!tdev) - return; - - cdev = TOEP_T3C_DEV(toep); - if (!cdev) - return; - - toep->tp_qset = 0; - t3_release_ddp_resources(toep); - -#ifdef CTRL_SKB_CACHE - kfree_skb(CTRL_SKB_CACHE(tp)); - CTRL_SKB_CACHE(tp) = NULL; -#endif - - if (toep->tp_wr_avail != toep->tp_wr_max) { - purge_wr_queue(toep); - reset_wr_list(toep); + /* + * The TOM explicitly detaches its toepcb from the system's inp before + * it releases the offload resources. + */ + if (toep->tp_inp) { + panic("%s: inp %p still attached to toepcb %p", + __func__, toep->tp_inp, toep); } + if (toep->tp_wr_avail != toep->tp_wr_max) + purge_wr_queue(toep); + if (toep->tp_l2t) { - l2t_release(L2DATA(cdev), toep->tp_l2t); + l2t_release(td->l2t, toep->tp_l2t); toep->tp_l2t = NULL; } - toep->tp_tp = NULL; - if (tp) { - inp_lock_assert(tp->t_inpcb); - so = inp_inpcbtosocket(tp->t_inpcb); - rcv = so_sockbuf_rcv(so); - /* - * cancel any offloaded reads - * - */ - sockbuf_lock(rcv); - tp->t_toe = NULL; - tp->t_flags &= ~TF_TOE; - if (toep->tp_ddp_state.user_ddp_pending) { - t3_cancel_ubuf(toep, rcv); - toep->tp_ddp_state.user_ddp_pending = 0; - } - so_sorwakeup_locked(so); - - } - - if (toep->tp_state == TCPS_SYN_SENT) { - free_atid(cdev, tid); -#ifdef notyet - __skb_queue_purge(&tp->out_of_order_queue); -#endif - } else { // we have TID - cxgb_remove_tid(cdev, toep, tid); - toepcb_release(toep); - } -#if 0 - log(LOG_INFO, "closing TID %u, state %u\n", tid, tp->t_state); -#endif -} -static void -install_offload_ops(struct socket *so) -{ - struct tcpcb *tp = so_sototcpcb(so); + if (toep->tp_tid >= 0) + release_tid(tod, toep->tp_tid, toep->tp_qset); - KASSERT(tp->t_toe != NULL, ("toepcb not set")); - - t3_install_socket_ops(so); - tp->t_flags |= TF_TOE; - tp->t_tu = &cxgb_toe_usrreqs; -} - -/* - * Determine the receive window scaling factor given a target max - * receive window. - */ -static __inline int -select_rcv_wscale(int space, struct vnet *vnet) -{ - int wscale = 0; - - if (space > MAX_RCV_WND) - space = MAX_RCV_WND; - - if (V_tcp_do_rfc1323) - for (; space > 65535 && wscale < 14; space >>= 1, ++wscale) ; - - return (wscale); + toepcb_free(toep); } /* * Determine the receive window size for a socket. */ -static unsigned long -select_rcv_wnd(struct toedev *dev, struct socket *so) +unsigned long +select_rcv_wnd(struct socket *so) { - struct tom_data *d = TOM_DATA(dev); - unsigned int wnd; - unsigned int max_rcv_wnd; - struct sockbuf *rcv; + unsigned long wnd; - rcv = so_sockbuf_rcv(so); - - if (V_tcp_do_autorcvbuf) - wnd = V_tcp_autorcvbuf_max; - else - wnd = rcv->sb_hiwat; + SOCKBUF_LOCK_ASSERT(&so->so_rcv); - - - /* XXX - * For receive coalescing to work effectively we need a receive window - * that can accomodate a coalesced segment. - */ + wnd = sbspace(&so->so_rcv); if (wnd < MIN_RCV_WND) - wnd = MIN_RCV_WND; - - /* PR 5138 */ - max_rcv_wnd = (dev->tod_ttid < TOE_ID_CHELSIO_T3C ? - (uint32_t)d->rx_page_size * 23 : - MAX_RCV_WND); - - return min(wnd, max_rcv_wnd); + wnd = MIN_RCV_WND; + + return min(wnd, MAX_RCV_WND); } -/* - * Assign offload parameters to some socket fields. This code is used by - * both active and passive opens. - */ -static inline void -init_offload_socket(struct socket *so, struct toedev *dev, unsigned int tid, - struct l2t_entry *e, struct rtentry *dst, struct toepcb *toep) +int +select_rcv_wscale(void) { - struct tcpcb *tp = so_sototcpcb(so); - struct t3c_data *td = T3C_DATA(TOM_DATA(dev)->cdev); - struct sockbuf *snd, *rcv; - -#ifdef notyet - SOCK_LOCK_ASSERT(so); -#endif - - snd = so_sockbuf_snd(so); - rcv = so_sockbuf_rcv(so); - - log(LOG_INFO, "initializing offload socket\n"); - /* - * We either need to fix push frames to work with sbcompress - * or we need to add this - */ - snd->sb_flags |= SB_NOCOALESCE; - rcv->sb_flags |= SB_NOCOALESCE; - + int wscale = 0; + unsigned long space = sb_max; + + if (space > MAX_RCV_WND) + space = MAX_RCV_WND; + + while (wscale < TCP_MAX_WINSHIFT && (TCP_MAXWIN << wscale) < space) + wscale++; + + return (wscale); +} + + +/* + * Set up the socket for TCP offload. + */ +void +offload_socket(struct socket *so, struct toepcb *toep) +{ + struct toedev *tod = toep->tp_tod; + struct tom_data *td = t3_tomdata(tod); + struct inpcb *inp = sotoinpcb(so); + struct tcpcb *tp = intotcpcb(inp); + + INP_WLOCK_ASSERT(inp); + + /* Update socket */ + SOCKBUF_LOCK(&so->so_snd); + so_sockbuf_snd(so)->sb_flags |= SB_NOCOALESCE; + SOCKBUF_UNLOCK(&so->so_snd); + SOCKBUF_LOCK(&so->so_rcv); + so_sockbuf_rcv(so)->sb_flags |= SB_NOCOALESCE; + SOCKBUF_UNLOCK(&so->so_rcv); + + /* Update TCP PCB */ + tp->tod = toep->tp_tod; tp->t_toe = toep; - toep->tp_tp = tp; - toep->tp_toedev = dev; - - toep->tp_tid = tid; - toep->tp_l2t = e; - toep->tp_wr_max = toep->tp_wr_avail = TOM_TUNABLE(dev, max_wrs); - toep->tp_wr_unacked = 0; - toep->tp_delack_mode = 0; - - toep->tp_mtu_idx = select_mss(td, tp, dst->rt_ifp->if_mtu); - /* - * XXX broken - * - */ - tp->rcv_wnd = select_rcv_wnd(dev, so); + tp->t_flags |= TF_TOE; - toep->tp_ulp_mode = TOM_TUNABLE(dev, ddp) && !(so_options_get(so) & SO_NO_DDP) && - tp->rcv_wnd >= MIN_DDP_RCV_WIN ? ULP_MODE_TCPDDP : 0; - toep->tp_qset_idx = 0; - - reset_wr_list(toep); - DPRINTF("initialization done\n"); + /* Install an extra hold on inp */ + toep->tp_inp = inp; + toep->tp_flags |= TP_ATTACHED; + in_pcbref(inp); + + /* Add the TOE PCB to the active list */ + mtx_lock(&td->toep_list_lock); + TAILQ_INSERT_HEAD(&td->toep_list, toep, link); + mtx_unlock(&td->toep_list_lock); +} + +/* This is _not_ the normal way to "unoffload" a socket. */ +void +undo_offload_socket(struct socket *so) +{ + struct inpcb *inp = sotoinpcb(so); + struct tcpcb *tp = intotcpcb(inp); + struct toepcb *toep = tp->t_toe; + struct toedev *tod = toep->tp_tod; + struct tom_data *td = t3_tomdata(tod); + + INP_WLOCK_ASSERT(inp); + + so_sockbuf_snd(so)->sb_flags &= ~SB_NOCOALESCE; + so_sockbuf_rcv(so)->sb_flags &= ~SB_NOCOALESCE; + + tp->tod = NULL; + tp->t_toe = NULL; + tp->t_flags &= ~TF_TOE; + + toep->tp_inp = NULL; + toep->tp_flags &= ~TP_ATTACHED; + if (in_pcbrele_wlocked(inp)) + panic("%s: inp freed.", __func__); + + mtx_lock(&td->toep_list_lock); + TAILQ_REMOVE(&td->toep_list, toep, link); + mtx_unlock(&td->toep_list_lock); } /* - * The next two functions calculate the option 0 value for a socket. + * Socket could be a listening socket, and we may not have a toepcb at all at + * this time. */ -static inline unsigned int -calc_opt0h(struct socket *so, int mtu_idx) +uint32_t +calc_opt0h(struct socket *so, int mtu_idx, int rscale, struct l2t_entry *e) { - struct tcpcb *tp = so_sototcpcb(so); - int wscale = select_rcv_wscale(tp->rcv_wnd, so->so_vnet); - - return V_NAGLE((tp->t_flags & TF_NODELAY) == 0) | - V_KEEP_ALIVE((so_options_get(so) & SO_KEEPALIVE) != 0) | F_TCAM_BYPASS | - V_WND_SCALE(wscale) | V_MSS_IDX(mtu_idx); + uint32_t opt0h = F_TCAM_BYPASS | V_WND_SCALE(rscale) | + V_MSS_IDX(mtu_idx); + + if (so != NULL) { + struct inpcb *inp = sotoinpcb(so); + struct tcpcb *tp = intotcpcb(inp); + int keepalive = always_keepalive || + so_options_get(so) & SO_KEEPALIVE; + + opt0h |= V_NAGLE((tp->t_flags & TF_NODELAY) == 0); + opt0h |= V_KEEP_ALIVE(keepalive != 0); + } + + if (e != NULL) + opt0h |= V_L2T_IDX(e->idx) | V_TX_CHANNEL(e->smt_idx); + + return (htobe32(opt0h)); } -static inline unsigned int -calc_opt0l(struct socket *so, int ulp_mode) +uint32_t +calc_opt0l(struct socket *so, int rcv_bufsize) { - struct tcpcb *tp = so_sototcpcb(so); - unsigned int val; - - val = V_TOS(INP_TOS(tp->t_inpcb)) | V_ULP_MODE(ulp_mode) | - V_RCV_BUFSIZ(min(tp->rcv_wnd >> 10, (u32)M_RCV_BUFSIZ)); + uint32_t opt0l = V_ULP_MODE(ULP_MODE_NONE) | V_RCV_BUFSIZ(rcv_bufsize); - DPRINTF("opt0l tos=%08x rcv_wnd=%ld opt0l=%08x\n", INP_TOS(tp->t_inpcb), tp->rcv_wnd, val); - return (val); + KASSERT(rcv_bufsize <= M_RCV_BUFSIZ, + ("%s: rcv_bufsize (%d) is too high", __func__, rcv_bufsize)); + + if (so != NULL) /* optional because noone cares about IP TOS */ + opt0l |= V_TOS(INP_TOS(sotoinpcb(so))); + + return (htobe32(opt0l)); } -static inline unsigned int -calc_opt2(const struct socket *so, struct toedev *dev) -{ - int flv_valid; - - flv_valid = (TOM_TUNABLE(dev, cong_alg) != -1); - - return (V_FLAVORS_VALID(flv_valid) | - V_CONG_CONTROL_FLAVOR(flv_valid ? TOM_TUNABLE(dev, cong_alg) : 0)); -} - -#if DEBUG_WR > 1 -static int -count_pending_wrs(const struct toepcb *toep) -{ - const struct mbuf *m; - int n = 0; - - wr_queue_walk(toep, m) - n += m->m_pkthdr.csum_data; - return (n); -} -#endif - -#if 0 -(((*(struct tom_data **)&(dev)->l4opt)->conf.cong_alg) != -1) -#endif - -static void -mk_act_open_req(struct socket *so, struct mbuf *m, - unsigned int atid, const struct l2t_entry *e) -{ - struct cpl_act_open_req *req; - struct inpcb *inp = so_sotoinpcb(so); - struct tcpcb *tp = inp_inpcbtotcpcb(inp); - struct toepcb *toep = tp->t_toe; - struct toedev *tdev = toep->tp_toedev; - - m_set_priority((struct mbuf *)m, mkprio(CPL_PRIORITY_SETUP, toep)); - - req = mtod(m, struct cpl_act_open_req *); - m->m_pkthdr.len = m->m_len = sizeof(*req); - - req->wr.wr_hi = htonl(V_WR_OP(FW_WROPCODE_FORWARD)); - req->wr.wr_lo = 0; - OPCODE_TID(req) = htonl(MK_OPCODE_TID(CPL_ACT_OPEN_REQ, atid)); - inp_4tuple_get(inp, &req->local_ip, &req->local_port, &req->peer_ip, &req->peer_port); -#if 0 - req->local_port = inp->inp_lport; - req->peer_port = inp->inp_fport; - memcpy(&req->local_ip, &inp->inp_laddr, 4); - memcpy(&req->peer_ip, &inp->inp_faddr, 4); -#endif - req->opt0h = htonl(calc_opt0h(so, toep->tp_mtu_idx) | V_L2T_IDX(e->idx) | - V_TX_CHANNEL(e->smt_idx)); - req->opt0l = htonl(calc_opt0l(so, toep->tp_ulp_mode)); - req->params = 0; - req->opt2 = htonl(calc_opt2(so, tdev)); -} - - /* * Convert an ACT_OPEN_RPL status to an errno. */ @@ -1422,61 +889,6 @@ act_open_rpl_status_to_errno(int status) } } -static void -fail_act_open(struct toepcb *toep, int errno) -{ - struct tcpcb *tp = toep->tp_tp; - - t3_release_offload_resources(toep); - if (tp) { - inp_wunlock(tp->t_inpcb); - tcp_offload_drop(tp, errno); - } - -#ifdef notyet - TCP_INC_STATS_BH(TCP_MIB_ATTEMPTFAILS); -#endif -} - -/* - * Handle active open failures. - */ -static void -active_open_failed(struct toepcb *toep, struct mbuf *m) -{ - struct cpl_act_open_rpl *rpl = cplhdr(m); - struct inpcb *inp; - - if (toep->tp_tp == NULL) - goto done; - - inp = toep->tp_tp->t_inpcb; - -/* - * Don't handle connection retry for now - */ -#ifdef notyet - struct inet_connection_sock *icsk = inet_csk(sk); - - if (rpl->status == CPL_ERR_CONN_EXIST && - icsk->icsk_retransmit_timer.function != act_open_retry_timer) { - icsk->icsk_retransmit_timer.function = act_open_retry_timer; - sk_reset_timer(so, &icsk->icsk_retransmit_timer, - jiffies + HZ / 2); - } else -#endif - { - inp_wlock(inp); - /* - * drops the inpcb lock - */ - fail_act_open(toep, act_open_rpl_status_to_errno(rpl->status)); - } - - done: - m_free(m); -} - /* * Return whether a failed active open has allocated a TID */ @@ -1488,1072 +900,350 @@ act_open_has_tid(int status) } /* - * Process an ACT_OPEN_RPL CPL message. + * Active open failed. */ static int -do_act_open_rpl(struct t3cdev *cdev, struct mbuf *m, void *ctx) +do_act_open_rpl(struct sge_qset *qs, struct rsp_desc *r, struct mbuf *m) { - struct toepcb *toep = (struct toepcb *)ctx; - struct cpl_act_open_rpl *rpl = cplhdr(m); - - if (cdev->type != T3A && act_open_has_tid(rpl->status)) - cxgb_queue_tid_release(cdev, GET_TID(rpl)); - - active_open_failed(toep, m); + struct adapter *sc = qs->adap; + struct tom_data *td = sc->tom_softc; + struct toedev *tod = &td->tod; + struct cpl_act_open_rpl *rpl = mtod(m, void *); + unsigned int atid = G_TID(ntohl(rpl->atid)); + struct toepcb *toep = lookup_atid(&td->tid_maps, atid); + struct inpcb *inp = toep->tp_inp; + struct tcpcb *tp = intotcpcb(inp); + int s = rpl->status; + + CTR3(KTR_CXGB, "%s: atid %u, status %u ", __func__, atid, s); + + free_atid(&td->tid_maps, atid); + toep->tp_tid = -1; + + if (act_open_has_tid(s)) + queue_tid_release(tod, GET_TID(rpl)); + + if (s == CPL_ERR_TCAM_FULL || s == CPL_ERR_CONN_EXIST) { + INP_WLOCK(inp); + toe_connect_failed(tod, tp, EAGAIN); + toepcb_release(toep); /* unlocks inp */ + } else { + INP_INFO_WLOCK(&V_tcbinfo); + INP_WLOCK(inp); + toe_connect_failed(tod, tp, act_open_rpl_status_to_errno(s)); + toepcb_release(toep); /* unlocks inp */ + INP_INFO_WUNLOCK(&V_tcbinfo); + } + + m_freem(m); return (0); } -/* - * Handle an ARP failure for an active open. XXX purge ofo queue - * - * XXX badly broken for crossed SYNs as the ATID is no longer valid. - * XXX crossed SYN errors should be generated by PASS_ACCEPT_RPL which should - * check SOCK_DEAD or sk->sk_sock. Or maybe generate the error here but don't - * free the atid. Hmm. - */ -#ifdef notyet -static void -act_open_req_arp_failure(struct t3cdev *dev, struct mbuf *m) -{ - struct toepcb *toep = m_get_toep(m); - struct tcpcb *tp = toep->tp_tp; - struct inpcb *inp = tp->t_inpcb; - struct socket *so; - - inp_wlock(inp); - if (tp->t_state == TCPS_SYN_SENT || tp->t_state == TCPS_SYN_RECEIVED) { - /* - * drops the inpcb lock - */ - fail_act_open(so, EHOSTUNREACH); - printf("freeing %p\n", m); - - m_free(m); - } else - inp_wunlock(inp); -} -#endif /* * Send an active open request. + * + * State of affairs on entry: + * soisconnecting (so_state |= SS_ISCONNECTING) + * tcbinfo not locked (this has changed - used to be WLOCKed) + * inp WLOCKed + * tp->t_state = TCPS_SYN_SENT + * rtalloc1, RT_UNLOCK on rt. */ int -t3_connect(struct toedev *tdev, struct socket *so, +t3_connect(struct toedev *tod, struct socket *so, struct rtentry *rt, struct sockaddr *nam) { - struct mbuf *m; - struct l2t_entry *e; - struct tom_data *d = TOM_DATA(tdev); - struct inpcb *inp = so_sotoinpcb(so); + struct mbuf *m = NULL; + struct l2t_entry *e = NULL; + struct tom_data *td = t3_tomdata(tod); + struct adapter *sc = tod->tod_softc; + struct cpl_act_open_req *cpl; + struct inpcb *inp = sotoinpcb(so); struct tcpcb *tp = intotcpcb(inp); - struct toepcb *toep; /* allocated by init_offload_socket */ - - int atid; + struct toepcb *toep; + int atid = -1, mtu_idx, rscale, cpu_idx, qset; + struct sockaddr *gw; + struct ifnet *ifp = rt->rt_ifp; + struct port_info *pi = ifp->if_softc; /* XXX wrong for VLAN etc. */ - toep = toepcb_alloc(); + INP_WLOCK_ASSERT(inp); + + toep = toepcb_alloc(tod); if (toep == NULL) - goto out_err; - - if ((atid = cxgb_alloc_atid(d->cdev, d->client, toep)) < 0) - goto out_err; - - e = t3_l2t_get(d->cdev, rt, rt->rt_ifp, nam); - if (!e) - goto free_tid; + goto failed; - inp_lock_assert(inp); - m = m_gethdr(MT_DATA, M_WAITOK); - -#if 0 - m->m_toe.mt_toepcb = tp->t_toe; - set_arp_failure_handler((struct mbuf *)m, act_open_req_arp_failure); -#endif - so_lock(so); - - init_offload_socket(so, tdev, atid, e, rt, toep); - - install_offload_ops(so); - - mk_act_open_req(so, m, atid, e); - so_unlock(so); - - soisconnecting(so); - toep = tp->t_toe; - m_set_toep(m, tp->t_toe); - - toep->tp_state = TCPS_SYN_SENT; - l2t_send(d->cdev, (struct mbuf *)m, e); + atid = alloc_atid(&td->tid_maps, toep); + if (atid < 0) + goto failed; - if (toep->tp_ulp_mode) - t3_enable_ddp(toep, 0); - return (0); - -free_tid: - printf("failing connect - free atid\n"); - - free_atid(d->cdev, atid); -out_err: - printf("return ENOMEM\n"); - return (ENOMEM); + qset = pi->first_qset + (arc4random() % pi->nqsets); + + m = M_GETHDR_OFLD(qset, CPL_PRIORITY_CONTROL, cpl); + if (m == NULL) + goto failed; + + gw = rt->rt_flags & RTF_GATEWAY ? rt->rt_gateway : nam; + e = t3_l2t_get(pi, ifp, gw); + if (e == NULL) + goto failed; + + toep->tp_l2t = e; + toep->tp_tid = atid; /* used to double check response */ + toep->tp_qset = qset; + + SOCKBUF_LOCK(&so->so_rcv); + /* opt0 rcv_bufsiz initially, assumes its normal meaning later */ + toep->tp_rx_credits = min(select_rcv_wnd(so) >> 10, M_RCV_BUFSIZ); + SOCKBUF_UNLOCK(&so->so_rcv); + + offload_socket(so, toep); + + /* + * The kernel sets request_r_scale based on sb_max whereas we need to + * take hardware's MAX_RCV_WND into account too. This is normally a + * no-op as MAX_RCV_WND is much larger than the default sb_max. + */ + if (tp->t_flags & TF_REQ_SCALE) + rscale = tp->request_r_scale = select_rcv_wscale(); + else + rscale = 0; + mtu_idx = find_best_mtu_idx(sc, &inp->inp_inc, 0); + cpu_idx = sc->rrss_map[qset]; + + cpl->wr.wrh_hi = htobe32(V_WR_OP(FW_WROPCODE_FORWARD)); + cpl->wr.wrh_lo = 0; + OPCODE_TID(cpl) = htobe32(MK_OPCODE_TID(CPL_ACT_OPEN_REQ, atid)); + inp_4tuple_get(inp, &cpl->local_ip, &cpl->local_port, &cpl->peer_ip, + &cpl->peer_port); + cpl->opt0h = calc_opt0h(so, mtu_idx, rscale, e); + cpl->opt0l = calc_opt0l(so, toep->tp_rx_credits); + cpl->params = 0; + cpl->opt2 = calc_opt2(cpu_idx); + + CTR5(KTR_CXGB, "%s: atid %u (%s), toep %p, inp %p", __func__, + toep->tp_tid, tcpstates[tp->t_state], toep, inp); + + if (l2t_send(sc, m, e) == 0) + return (0); + + undo_offload_socket(so); + +failed: + CTR5(KTR_CXGB, "%s: FAILED, atid %d, toep %p, l2te %p, mbuf %p", + __func__, atid, toep, e, m); + + if (atid >= 0) + free_atid(&td->tid_maps, atid); + + if (e) + l2t_release(td->l2t, e); + + if (toep) + toepcb_free(toep); + + m_freem(m); + + return (ENOMEM); } /* - * Send an ABORT_REQ message. Cannot fail. This routine makes sure we do - * not send multiple ABORT_REQs for the same connection and also that we do - * not try to send a message after the connection has closed. Returns 1 if - * an ABORT_REQ wasn't generated after all, 0 otherwise. + * Send an ABORT_REQ message. Cannot fail. This routine makes sure we do not + * send multiple ABORT_REQs for the same connection and also that we do not try + * to send a message after the connection has closed. */ static void -t3_send_reset(struct toepcb *toep) +send_reset(struct toepcb *toep) { - + struct cpl_abort_req *req; unsigned int tid = toep->tp_tid; - int mode = CPL_ABORT_SEND_RST; - struct tcpcb *tp = toep->tp_tp; - struct toedev *tdev = toep->tp_toedev; - struct socket *so = NULL; + struct inpcb *inp = toep->tp_inp; + struct socket *so = inp->inp_socket; + struct tcpcb *tp = intotcpcb(inp); + struct toedev *tod = toep->tp_tod; + struct adapter *sc = tod->tod_softc; struct mbuf *m; - struct sockbuf *snd; - - if (tp) { - inp_lock_assert(tp->t_inpcb); - so = inp_inpcbtosocket(tp->t_inpcb); - } - - if (__predict_false((toep->tp_flags & TP_ABORT_SHUTDOWN) || - tdev == NULL)) + + INP_INFO_WLOCK_ASSERT(&V_tcbinfo); + INP_WLOCK_ASSERT(inp); + + CTR4(KTR_CXGB, "%s: tid %d, toep %p (%x)", __func__, tid, toep, + toep->tp_flags); + + if (toep->tp_flags & TP_ABORT_SHUTDOWN) return; - toep->tp_flags |= (TP_ABORT_RPL_PENDING|TP_ABORT_SHUTDOWN); - snd = so_sockbuf_snd(so); - /* Purge the send queue so we don't send anything after an abort. */ - if (so) - sbflush(snd); - if ((toep->tp_flags & TP_CLOSE_CON_REQUESTED) && is_t3a(tdev)) - mode |= CPL_ABORT_POST_CLOSE_REQ; + toep->tp_flags |= (TP_ABORT_RPL_PENDING | TP_ABORT_SHUTDOWN); - m = m_gethdr_nofail(sizeof(*req)); - m_set_priority(m, mkprio(CPL_PRIORITY_DATA, toep)); - set_arp_failure_handler(m, abort_arp_failure); + /* Purge the send queue */ + sbflush(so_sockbuf_snd(so)); + purge_wr_queue(toep); - req = mtod(m, struct cpl_abort_req *); - req->wr.wr_hi = htonl(V_WR_OP(FW_WROPCODE_OFLD_HOST_ABORT_CON_REQ)); - req->wr.wr_lo = htonl(V_WR_TID(tid)); + m = M_GETHDR_OFLD(toep->tp_qset, CPL_PRIORITY_DATA, req); + if (m == NULL) + CXGB_UNIMPLEMENTED(); + + req->wr.wrh_hi = htonl(V_WR_OP(FW_WROPCODE_OFLD_HOST_ABORT_CON_REQ)); + req->wr.wrh_lo = htonl(V_WR_TID(tid)); OPCODE_TID(req) = htonl(MK_OPCODE_TID(CPL_ABORT_REQ, tid)); - req->rsvd0 = tp ? htonl(tp->snd_nxt) : 0; + req->rsvd0 = htonl(tp->snd_nxt); req->rsvd1 = !(toep->tp_flags & TP_DATASENT); - req->cmd = mode; - if (tp && (tp->t_state == TCPS_SYN_SENT)) - mbufq_tail(&toep->out_of_order_queue, m); // defer + req->cmd = CPL_ABORT_SEND_RST; + + if (tp->t_state == TCPS_SYN_SENT) + mbufq_tail(&toep->out_of_order_queue, m); /* defer */ else - l2t_send(TOEP_T3C_DEV(toep), m, toep->tp_l2t); -} - -static int -t3_ip_ctloutput(struct socket *so, struct sockopt *sopt) -{ - struct inpcb *inp; - int error, optval; - - if (sopt->sopt_name == IP_OPTIONS) - return (ENOPROTOOPT); - - if (sopt->sopt_name != IP_TOS) - return (EOPNOTSUPP); - - error = sooptcopyin(sopt, &optval, sizeof optval, sizeof optval); - - if (error) - return (error); - - if (optval > IPTOS_PREC_CRITIC_ECP) - return (EINVAL); - - inp = so_sotoinpcb(so); - inp_wlock(inp); - inp_ip_tos_set(inp, optval); -#if 0 - inp->inp_ip_tos = optval; -#endif - t3_set_tos(inp_inpcbtotcpcb(inp)->t_toe); - inp_wunlock(inp); - - return (0); -} - -static int -t3_tcp_ctloutput(struct socket *so, struct sockopt *sopt) -{ - int err = 0; - size_t copied; - - if (sopt->sopt_name != TCP_CONGESTION && - sopt->sopt_name != TCP_NODELAY) - return (EOPNOTSUPP); - - if (sopt->sopt_name == TCP_CONGESTION) { - char name[TCP_CA_NAME_MAX]; - int optlen = sopt->sopt_valsize; - struct tcpcb *tp; - - if (sopt->sopt_dir == SOPT_GET) { - KASSERT(0, ("unimplemented")); - return (EOPNOTSUPP); - } - - if (optlen < 1) - return (EINVAL); - - err = copyinstr(sopt->sopt_val, name, - min(TCP_CA_NAME_MAX - 1, optlen), &copied); - if (err) - return (err); - if (copied < 1) - return (EINVAL); - - tp = so_sototcpcb(so); - /* - * XXX I need to revisit this - */ - if ((err = t3_set_cong_control(so, name)) == 0) { -#ifdef CONGESTION_CONTROL_SUPPORTED - tp->t_cong_control = strdup(name, M_CXGB); -#endif - } else - return (err); - } else { - int optval, oldval; - struct inpcb *inp; - struct tcpcb *tp; - - if (sopt->sopt_dir == SOPT_GET) - return (EOPNOTSUPP); - - err = sooptcopyin(sopt, &optval, sizeof optval, - sizeof optval); - - if (err) - return (err); - - inp = so_sotoinpcb(so); - inp_wlock(inp); - tp = inp_inpcbtotcpcb(inp); - - oldval = tp->t_flags; - if (optval) - tp->t_flags |= TF_NODELAY; - else - tp->t_flags &= ~TF_NODELAY; - inp_wunlock(inp); - - - if (oldval != tp->t_flags && (tp->t_toe != NULL)) - t3_set_nagle(tp->t_toe); - - } - - return (0); + l2t_send(sc, m, toep->tp_l2t); } int -t3_ctloutput(struct socket *so, struct sockopt *sopt) +t3_send_rst(struct toedev *tod __unused, struct tcpcb *tp) { - int err; - if (sopt->sopt_level != IPPROTO_TCP) - err = t3_ip_ctloutput(so, sopt); - else - err = t3_tcp_ctloutput(so, sopt); - - if (err != EOPNOTSUPP) - return (err); - - return (tcp_ctloutput(so, sopt)); -} - -/* - * Returns true if we need to explicitly request RST when we receive new data - * on an RX-closed connection. - */ -static inline int -need_rst_on_excess_rx(const struct toepcb *toep) -{ - return (1); -} - -/* - * Handles Rx data that arrives in a state where the socket isn't accepting - * new data. - */ -static void -handle_excess_rx(struct toepcb *toep, struct mbuf *m) -{ - - if (need_rst_on_excess_rx(toep) && - !(toep->tp_flags & TP_ABORT_SHUTDOWN)) - t3_send_reset(toep); - m_freem(m); -} - -/* - * Process a get_tcb_rpl as a DDP completion (similar to RX_DDP_COMPLETE) - * by getting the DDP offset from the TCB. - */ -static void -tcb_rpl_as_ddp_complete(struct toepcb *toep, struct mbuf *m) -{ - struct ddp_state *q = &toep->tp_ddp_state; - struct ddp_buf_state *bsp; - struct cpl_get_tcb_rpl *hdr; - unsigned int ddp_offset; - struct socket *so; - struct tcpcb *tp; - struct sockbuf *rcv; - int state; - - uint64_t t; - __be64 *tcb; - - tp = toep->tp_tp; - so = inp_inpcbtosocket(tp->t_inpcb); - - inp_lock_assert(tp->t_inpcb); - rcv = so_sockbuf_rcv(so); - sockbuf_lock(rcv); - - /* Note that we only accout for CPL_GET_TCB issued by the DDP code. - * We really need a cookie in order to dispatch the RPLs. - */ - q->get_tcb_count--; - - /* It is a possible that a previous CPL already invalidated UBUF DDP - * and moved the cur_buf idx and hence no further processing of this - * skb is required. However, the app might be sleeping on - * !q->get_tcb_count and we need to wake it up. - */ - if (q->cancel_ubuf && !t3_ddp_ubuf_pending(toep)) { - int state = so_state_get(so); - - m_freem(m); - if (__predict_true((state & SS_NOFDREF) == 0)) - so_sorwakeup_locked(so); - else - sockbuf_unlock(rcv); - - return; - } - - bsp = &q->buf_state[q->cur_buf]; - hdr = cplhdr(m); - tcb = (__be64 *)(hdr + 1); - if (q->cur_buf == 0) { - t = be64toh(tcb[(31 - W_TCB_RX_DDP_BUF0_OFFSET) / 2]); - ddp_offset = t >> (32 + S_TCB_RX_DDP_BUF0_OFFSET); - } else { - t = be64toh(tcb[(31 - W_TCB_RX_DDP_BUF1_OFFSET) / 2]); - ddp_offset = t >> S_TCB_RX_DDP_BUF1_OFFSET; - } - ddp_offset &= M_TCB_RX_DDP_BUF0_OFFSET; - m->m_cur_offset = bsp->cur_offset; - bsp->cur_offset = ddp_offset; - m->m_len = m->m_pkthdr.len = ddp_offset - m->m_cur_offset; - - CTR5(KTR_TOM, - "tcb_rpl_as_ddp_complete: idx=%d seq=0x%x hwbuf=%u ddp_offset=%u cur_offset=%u", - q->cur_buf, tp->rcv_nxt, q->cur_buf, ddp_offset, m->m_cur_offset); - KASSERT(ddp_offset >= m->m_cur_offset, - ("ddp_offset=%u less than cur_offset=%u", - ddp_offset, m->m_cur_offset)); - -#if 0 -{ - unsigned int ddp_flags, rcv_nxt, rx_hdr_offset, buf_idx; - - t = be64toh(tcb[(31 - W_TCB_RX_DDP_FLAGS) / 2]); - ddp_flags = (t >> S_TCB_RX_DDP_FLAGS) & M_TCB_RX_DDP_FLAGS; - - t = be64toh(tcb[(31 - W_TCB_RCV_NXT) / 2]); - rcv_nxt = t >> S_TCB_RCV_NXT; - rcv_nxt &= M_TCB_RCV_NXT; - - t = be64toh(tcb[(31 - W_TCB_RX_HDR_OFFSET) / 2]); - rx_hdr_offset = t >> (32 + S_TCB_RX_HDR_OFFSET); - rx_hdr_offset &= M_TCB_RX_HDR_OFFSET; - - T3_TRACE2(TIDTB(sk), - "tcb_rpl_as_ddp_complete: DDP FLAGS 0x%x dma up to 0x%x", - ddp_flags, rcv_nxt - rx_hdr_offset); - T3_TRACE4(TB(q), - "tcb_rpl_as_ddp_complete: rcvnxt 0x%x hwbuf %u cur_offset %u cancel %u", - tp->rcv_nxt, q->cur_buf, bsp->cur_offset, q->cancel_ubuf); - T3_TRACE3(TB(q), - "tcb_rpl_as_ddp_complete: TCB rcvnxt 0x%x hwbuf 0x%x ddp_offset %u", - rcv_nxt - rx_hdr_offset, ddp_flags, ddp_offset); - T3_TRACE2(TB(q), - "tcb_rpl_as_ddp_complete: flags0 0x%x flags1 0x%x", - q->buf_state[0].flags, q->buf_state[1].flags); - -} -#endif - if (__predict_false(so_no_receive(so) && m->m_pkthdr.len)) { - handle_excess_rx(toep, m); - return; - } - -#ifdef T3_TRACE - if ((int)m->m_pkthdr.len < 0) { - t3_ddp_error(so, "tcb_rpl_as_ddp_complete: neg len"); - } -#endif - if (bsp->flags & DDP_BF_NOCOPY) { -#ifdef T3_TRACE - T3_TRACE0(TB(q), - "tcb_rpl_as_ddp_complete: CANCEL UBUF"); - - if (!q->cancel_ubuf && !(sk->sk_shutdown & RCV_SHUTDOWN)) { - printk("!cancel_ubuf"); - t3_ddp_error(sk, "tcb_rpl_as_ddp_complete: !cancel_ubuf"); - } -#endif - m->m_ddp_flags = DDP_BF_PSH | DDP_BF_NOCOPY | 1; - bsp->flags &= ~(DDP_BF_NOCOPY|DDP_BF_NODATA); - q->cur_buf ^= 1; - } else if (bsp->flags & DDP_BF_NOFLIP) { - - m->m_ddp_flags = 1; /* always a kernel buffer */ - - /* now HW buffer carries a user buffer */ - bsp->flags &= ~DDP_BF_NOFLIP; - bsp->flags |= DDP_BF_NOCOPY; - - /* It is possible that the CPL_GET_TCB_RPL doesn't indicate - * any new data in which case we're done. If in addition the - * offset is 0, then there wasn't a completion for the kbuf - * and we need to decrement the posted count. - */ - if (m->m_pkthdr.len == 0) { - if (ddp_offset == 0) { - q->kbuf_posted--; - bsp->flags |= DDP_BF_NODATA; - } - sockbuf_unlock(rcv); - m_free(m); - return; - } - } else { - sockbuf_unlock(rcv); - - /* This reply is for a CPL_GET_TCB_RPL to cancel the UBUF DDP, - * but it got here way late and nobody cares anymore. - */ - m_free(m); - return; - } - - m->m_ddp_gl = (unsigned char *)bsp->gl; - m->m_flags |= M_DDP; - m->m_seq = tp->rcv_nxt; - tp->rcv_nxt += m->m_pkthdr.len; - tp->t_rcvtime = ticks; - CTR3(KTR_TOM, "tcb_rpl_as_ddp_complete: seq 0x%x hwbuf %u m->m_pktlen %u", - m->m_seq, q->cur_buf, m->m_pkthdr.len); - if (m->m_pkthdr.len == 0) { - q->user_ddp_pending = 0; - m_free(m); - } else - SBAPPEND(rcv, m); - - state = so_state_get(so); - if (__predict_true((state & SS_NOFDREF) == 0)) - so_sorwakeup_locked(so); - else - sockbuf_unlock(rcv); -} - -/* - * Process a CPL_GET_TCB_RPL. These can also be generated by the DDP code, - * in that case they are similar to DDP completions. - */ -static int -do_get_tcb_rpl(struct t3cdev *cdev, struct mbuf *m, void *ctx) -{ - struct toepcb *toep = (struct toepcb *)ctx; - - /* OK if socket doesn't exist */ - if (toep == NULL) { - printf("null toep in do_get_tcb_rpl\n"); - return (CPL_RET_BUF_DONE); - } - - inp_wlock(toep->tp_tp->t_inpcb); - tcb_rpl_as_ddp_complete(toep, m); - inp_wunlock(toep->tp_tp->t_inpcb); - + send_reset(tp->t_toe); return (0); } -static void -handle_ddp_data(struct toepcb *toep, struct mbuf *m) -{ - struct tcpcb *tp = toep->tp_tp; - struct socket *so; - struct ddp_state *q; - struct ddp_buf_state *bsp; - struct cpl_rx_data *hdr = cplhdr(m); - unsigned int rcv_nxt = ntohl(hdr->seq); - struct sockbuf *rcv; - - if (tp->rcv_nxt == rcv_nxt) - return; - - inp_lock_assert(tp->t_inpcb); - so = inp_inpcbtosocket(tp->t_inpcb); - rcv = so_sockbuf_rcv(so); - sockbuf_lock(rcv); - - q = &toep->tp_ddp_state; - bsp = &q->buf_state[q->cur_buf]; - KASSERT(SEQ_GT(rcv_nxt, tp->rcv_nxt), ("tp->rcv_nxt=0x%08x decreased rcv_nxt=0x08%x", - rcv_nxt, tp->rcv_nxt)); - m->m_len = m->m_pkthdr.len = rcv_nxt - tp->rcv_nxt; - KASSERT(m->m_len > 0, ("%s m_len=%d", __FUNCTION__, m->m_len)); - CTR3(KTR_TOM, "rcv_nxt=0x%x tp->rcv_nxt=0x%x len=%d", - rcv_nxt, tp->rcv_nxt, m->m_pkthdr.len); - -#ifdef T3_TRACE - if ((int)m->m_pkthdr.len < 0) { - t3_ddp_error(so, "handle_ddp_data: neg len"); - } -#endif - m->m_ddp_gl = (unsigned char *)bsp->gl; - m->m_flags |= M_DDP; - m->m_cur_offset = bsp->cur_offset; - m->m_ddp_flags = DDP_BF_PSH | (bsp->flags & DDP_BF_NOCOPY) | 1; - if (bsp->flags & DDP_BF_NOCOPY) - bsp->flags &= ~DDP_BF_NOCOPY; - - m->m_seq = tp->rcv_nxt; - tp->rcv_nxt = rcv_nxt; - bsp->cur_offset += m->m_pkthdr.len; - if (!(bsp->flags & DDP_BF_NOFLIP)) - q->cur_buf ^= 1; - /* - * For now, don't re-enable DDP after a connection fell out of DDP - * mode. - */ - q->ubuf_ddp_ready = 0; - sockbuf_unlock(rcv); -} - -/* - * Process new data received for a connection. - */ -static void -new_rx_data(struct toepcb *toep, struct mbuf *m) -{ - struct cpl_rx_data *hdr = cplhdr(m); - struct tcpcb *tp = toep->tp_tp; - struct socket *so; - struct sockbuf *rcv; - int state; - int len = be16toh(hdr->len); - - inp_wlock(tp->t_inpcb); - - so = inp_inpcbtosocket(tp->t_inpcb); - - if (__predict_false(so_no_receive(so))) { - handle_excess_rx(toep, m); - inp_wunlock(tp->t_inpcb); - TRACE_EXIT; - return; - } - - if (toep->tp_ulp_mode == ULP_MODE_TCPDDP) - handle_ddp_data(toep, m); - - m->m_seq = ntohl(hdr->seq); - m->m_ulp_mode = 0; /* for iSCSI */ - -#if VALIDATE_SEQ - if (__predict_false(m->m_seq != tp->rcv_nxt)) { - log(LOG_ERR, - "%s: TID %u: Bad sequence number %u, expected %u\n", - toep->tp_toedev->name, toep->tp_tid, m->m_seq, - tp->rcv_nxt); - m_freem(m); - inp_wunlock(tp->t_inpcb); - return; - } -#endif - m_adj(m, sizeof(*hdr)); - -#ifdef URGENT_DATA_SUPPORTED - /* - * We don't handle urgent data yet - */ - if (__predict_false(hdr->urg)) - handle_urg_ptr(so, tp->rcv_nxt + ntohs(hdr->urg)); - if (__predict_false(tp->urg_data == TCP_URG_NOTYET && - tp->urg_seq - tp->rcv_nxt < skb->len)) - tp->urg_data = TCP_URG_VALID | skb->data[tp->urg_seq - - tp->rcv_nxt]; -#endif - if (__predict_false(hdr->dack_mode != toep->tp_delack_mode)) { - toep->tp_delack_mode = hdr->dack_mode; - toep->tp_delack_seq = tp->rcv_nxt; - } - CTR6(KTR_TOM, "appending mbuf=%p pktlen=%d m_len=%d len=%d rcv_nxt=0x%x enqueued_bytes=%d", - m, m->m_pkthdr.len, m->m_len, len, tp->rcv_nxt, toep->tp_enqueued_bytes); - - if (len < m->m_pkthdr.len) - m->m_pkthdr.len = m->m_len = len; - - tp->rcv_nxt += m->m_pkthdr.len; - tp->t_rcvtime = ticks; - toep->tp_enqueued_bytes += m->m_pkthdr.len; - CTR2(KTR_TOM, - "new_rx_data: seq 0x%x len %u", - m->m_seq, m->m_pkthdr.len); - inp_wunlock(tp->t_inpcb); - rcv = so_sockbuf_rcv(so); - sockbuf_lock(rcv); -#if 0 - if (sb_notify(rcv)) - DPRINTF("rx_data so=%p flags=0x%x len=%d\n", so, rcv->sb_flags, m->m_pkthdr.len); -#endif - SBAPPEND(rcv, m); - -#ifdef notyet - /* - * We're giving too many credits to the card - but disable this check so we can keep on moving :-| - * - */ - KASSERT(rcv->sb_cc < (rcv->sb_mbmax << 1), - - ("so=%p, data contents exceed mbmax, sb_cc=%d sb_mbmax=%d", - so, rcv->sb_cc, rcv->sb_mbmax)); -#endif - - - CTR2(KTR_TOM, "sb_cc=%d sb_mbcnt=%d", - rcv->sb_cc, rcv->sb_mbcnt); - - state = so_state_get(so); - if (__predict_true((state & SS_NOFDREF) == 0)) - so_sorwakeup_locked(so); - else - sockbuf_unlock(rcv); -} - /* * Handler for RX_DATA CPL messages. */ static int -do_rx_data(struct t3cdev *cdev, struct mbuf *m, void *ctx) -{ - struct toepcb *toep = (struct toepcb *)ctx; - - DPRINTF("rx_data len=%d\n", m->m_pkthdr.len); - - new_rx_data(toep, m); - - return (0); -} - -static void -new_rx_data_ddp(struct toepcb *toep, struct mbuf *m) +do_rx_data(struct sge_qset *qs, struct rsp_desc *r, struct mbuf *m) { + struct adapter *sc = qs->adap; + struct tom_data *td = sc->tom_softc; + struct cpl_rx_data *hdr = mtod(m, void *); + unsigned int tid = GET_TID(hdr); + struct toepcb *toep = lookup_tid(&td->tid_maps, tid); + struct inpcb *inp = toep->tp_inp; struct tcpcb *tp; - struct ddp_state *q; - struct ddp_buf_state *bsp; - struct cpl_rx_data_ddp *hdr; - struct socket *so; - unsigned int ddp_len, rcv_nxt, ddp_report, end_offset, buf_idx; - int nomoredata = 0; - unsigned int delack_mode; - struct sockbuf *rcv; - - tp = toep->tp_tp; - inp_wlock(tp->t_inpcb); - so = inp_inpcbtosocket(tp->t_inpcb); - - if (__predict_false(so_no_receive(so))) { - - handle_excess_rx(toep, m); - inp_wunlock(tp->t_inpcb); - return; - } - - q = &toep->tp_ddp_state; - hdr = cplhdr(m); - ddp_report = ntohl(hdr->u.ddp_report); - buf_idx = (ddp_report >> S_DDP_BUF_IDX) & 1; - bsp = &q->buf_state[buf_idx]; - - CTR4(KTR_TOM, - "new_rx_data_ddp: tp->rcv_nxt 0x%x cur_offset %u " - "hdr seq 0x%x len %u", - tp->rcv_nxt, bsp->cur_offset, ntohl(hdr->seq), - ntohs(hdr->len)); - CTR3(KTR_TOM, - "new_rx_data_ddp: offset %u ddp_report 0x%x buf_idx=%d", - G_DDP_OFFSET(ddp_report), ddp_report, buf_idx); - - ddp_len = ntohs(hdr->len); - rcv_nxt = ntohl(hdr->seq) + ddp_len; - - delack_mode = G_DDP_DACK_MODE(ddp_report); - if (__predict_false(G_DDP_DACK_MODE(ddp_report) != toep->tp_delack_mode)) { - toep->tp_delack_mode = delack_mode; - toep->tp_delack_seq = tp->rcv_nxt; - } - - m->m_seq = tp->rcv_nxt; - tp->rcv_nxt = rcv_nxt; - - tp->t_rcvtime = ticks; - /* - * Store the length in m->m_len. We are changing the meaning of - * m->m_len here, we need to be very careful that nothing from now on - * interprets ->len of this packet the usual way. - */ - m->m_len = m->m_pkthdr.len = rcv_nxt - m->m_seq; - inp_wunlock(tp->t_inpcb); - CTR3(KTR_TOM, - "new_rx_data_ddp: m_len=%u rcv_next 0x%08x rcv_nxt_prev=0x%08x ", - m->m_len, rcv_nxt, m->m_seq); - /* - * Figure out where the new data was placed in the buffer and store it - * in when. Assumes the buffer offset starts at 0, consumer needs to - * account for page pod's pg_offset. - */ - end_offset = G_DDP_OFFSET(ddp_report) + ddp_len; - m->m_cur_offset = end_offset - m->m_pkthdr.len; - - rcv = so_sockbuf_rcv(so); - sockbuf_lock(rcv); - - m->m_ddp_gl = (unsigned char *)bsp->gl; - m->m_flags |= M_DDP; - bsp->cur_offset = end_offset; - toep->tp_enqueued_bytes += m->m_pkthdr.len; - - /* - * Length is only meaningful for kbuf - */ - if (!(bsp->flags & DDP_BF_NOCOPY)) - KASSERT(m->m_len <= bsp->gl->dgl_length, - ("length received exceeds ddp pages: len=%d dgl_length=%d", - m->m_len, bsp->gl->dgl_length)); - - KASSERT(m->m_len > 0, ("%s m_len=%d", __FUNCTION__, m->m_len)); - KASSERT(m->m_next == NULL, ("m_len=%p", m->m_next)); - /* - * Bit 0 of flags stores whether the DDP buffer is completed. - * Note that other parts of the code depend on this being in bit 0. - */ - if ((bsp->flags & DDP_BF_NOINVAL) && end_offset != bsp->gl->dgl_length) { - panic("spurious ddp completion"); - } else { - m->m_ddp_flags = !!(ddp_report & F_DDP_BUF_COMPLETE); - if (m->m_ddp_flags && !(bsp->flags & DDP_BF_NOFLIP)) - q->cur_buf ^= 1; /* flip buffers */ - } - - if (bsp->flags & DDP_BF_NOCOPY) { - m->m_ddp_flags |= (bsp->flags & DDP_BF_NOCOPY); - bsp->flags &= ~DDP_BF_NOCOPY; - } - - if (ddp_report & F_DDP_PSH) - m->m_ddp_flags |= DDP_BF_PSH; - if (nomoredata) - m->m_ddp_flags |= DDP_BF_NODATA; - -#ifdef notyet - skb_reset_transport_header(skb); - tcp_hdr(skb)->fin = 0; /* changes original hdr->ddp_report */ -#endif - SBAPPEND(rcv, m); - - if ((so_state_get(so) & SS_NOFDREF) == 0 && ((ddp_report & F_DDP_PSH) || - (((m->m_ddp_flags & (DDP_BF_NOCOPY|1)) == (DDP_BF_NOCOPY|1)) - || !(m->m_ddp_flags & DDP_BF_NOCOPY)))) - so_sorwakeup_locked(so); - else - sockbuf_unlock(rcv); -} - -#define DDP_ERR (F_DDP_PPOD_MISMATCH | F_DDP_LLIMIT_ERR | F_DDP_ULIMIT_ERR |\ - F_DDP_PPOD_PARITY_ERR | F_DDP_PADDING_ERR | F_DDP_OFFSET_ERR |\ - F_DDP_INVALID_TAG | F_DDP_COLOR_ERR | F_DDP_TID_MISMATCH |\ - F_DDP_INVALID_PPOD) - -/* - * Handler for RX_DATA_DDP CPL messages. - */ -static int -do_rx_data_ddp(struct t3cdev *cdev, struct mbuf *m, void *ctx) -{ - struct toepcb *toep = ctx; - const struct cpl_rx_data_ddp *hdr = cplhdr(m); - - VALIDATE_SOCK(so); - - if (__predict_false(ntohl(hdr->ddpvld_status) & DDP_ERR)) { - log(LOG_ERR, "RX_DATA_DDP for TID %u reported error 0x%x\n", - GET_TID(hdr), G_DDP_VALID(ntohl(hdr->ddpvld_status))); - return (CPL_RET_BUF_DONE); - } -#if 0 - skb->h.th = tcphdr_skb->h.th; -#endif - new_rx_data_ddp(toep, m); - return (0); -} - -static void -process_ddp_complete(struct toepcb *toep, struct mbuf *m) -{ - struct tcpcb *tp = toep->tp_tp; struct socket *so; - struct ddp_state *q; - struct ddp_buf_state *bsp; - struct cpl_rx_ddp_complete *hdr; - unsigned int ddp_report, buf_idx, when, delack_mode; - int nomoredata = 0; - struct sockbuf *rcv; - - inp_wlock(tp->t_inpcb); - so = inp_inpcbtosocket(tp->t_inpcb); + struct sockbuf *so_rcv; - if (__predict_false(so_no_receive(so))) { - struct inpcb *inp = so_sotoinpcb(so); + /* Advance over CPL */ + m_adj(m, sizeof(*hdr)); - handle_excess_rx(toep, m); - inp_wunlock(inp); - return; + /* XXX: revisit. This comes from the T4 TOM */ + if (__predict_false(inp == NULL)) { + /* + * do_pass_establish failed and must be attempting to abort the + * connection. Meanwhile, the T4 has sent us data for such a + * connection. + */ +#ifdef notyet + KASSERT(toepcb_flag(toep, TPF_ABORT_SHUTDOWN), + ("%s: inp NULL and tid isn't being aborted", __func__)); +#endif + m_freem(m); + return (0); } - q = &toep->tp_ddp_state; - hdr = cplhdr(m); - ddp_report = ntohl(hdr->ddp_report); - buf_idx = (ddp_report >> S_DDP_BUF_IDX) & 1; - m->m_pkthdr.csum_data = tp->rcv_nxt; - rcv = so_sockbuf_rcv(so); - sockbuf_lock(rcv); + INP_WLOCK(inp); + if (inp->inp_flags & (INP_DROPPED | INP_TIMEWAIT)) { + CTR4(KTR_CXGB, "%s: tid %u, rx (%d bytes), inp_flags 0x%x", + __func__, tid, m->m_pkthdr.len, inp->inp_flags); + INP_WUNLOCK(inp); + m_freem(m); + return (0); + } - bsp = &q->buf_state[buf_idx]; - when = bsp->cur_offset; - m->m_len = m->m_pkthdr.len = G_DDP_OFFSET(ddp_report) - when; - tp->rcv_nxt += m->m_len; + if (__predict_false(hdr->dack_mode != toep->tp_delack_mode)) + toep->tp_delack_mode = hdr->dack_mode; + + tp = intotcpcb(inp); + +#ifdef INVARIANTS + if (__predict_false(tp->rcv_nxt != be32toh(hdr->seq))) { + log(LOG_ERR, + "%s: unexpected seq# %x for TID %u, rcv_nxt %x\n", + __func__, be32toh(hdr->seq), toep->tp_tid, tp->rcv_nxt); + } +#endif + tp->rcv_nxt += m->m_pkthdr.len; + KASSERT(tp->rcv_wnd >= m->m_pkthdr.len, + ("%s: negative window size", __func__)); + tp->rcv_wnd -= m->m_pkthdr.len; tp->t_rcvtime = ticks; - delack_mode = G_DDP_DACK_MODE(ddp_report); - if (__predict_false(G_DDP_DACK_MODE(ddp_report) != toep->tp_delack_mode)) { - toep->tp_delack_mode = delack_mode; - toep->tp_delack_seq = tp->rcv_nxt; + so = inp->inp_socket; + so_rcv = &so->so_rcv; + SOCKBUF_LOCK(so_rcv); + + if (__predict_false(so_rcv->sb_state & SBS_CANTRCVMORE)) { + CTR3(KTR_CXGB, "%s: tid %u, excess rx (%d bytes)", + __func__, tid, m->m_pkthdr.len); + SOCKBUF_UNLOCK(so_rcv); + INP_WUNLOCK(inp); + + INP_INFO_WLOCK(&V_tcbinfo); + INP_WLOCK(inp); + tp = tcp_drop(tp, ECONNRESET); + if (tp) + INP_WUNLOCK(inp); + INP_INFO_WUNLOCK(&V_tcbinfo); + + m_freem(m); + return (0); } -#ifdef notyet - skb_reset_transport_header(skb); - tcp_hdr(skb)->fin = 0; /* changes valid memory past CPL */ -#endif - inp_wunlock(tp->t_inpcb); - KASSERT(m->m_len >= 0, ("%s m_len=%d", __FUNCTION__, m->m_len)); - CTR5(KTR_TOM, - "process_ddp_complete: tp->rcv_nxt 0x%x cur_offset %u " - "ddp_report 0x%x offset %u, len %u", - tp->rcv_nxt, bsp->cur_offset, ddp_report, - G_DDP_OFFSET(ddp_report), m->m_len); + /* receive buffer autosize */ + if (so_rcv->sb_flags & SB_AUTOSIZE && + V_tcp_do_autorcvbuf && + so_rcv->sb_hiwat < V_tcp_autorcvbuf_max && + (m->m_pkthdr.len > (sbspace(so_rcv) / 8 * 7) || tp->rcv_wnd < 32768)) { + unsigned int hiwat = so_rcv->sb_hiwat; + unsigned int newsize = min(hiwat + V_tcp_autorcvbuf_inc, + V_tcp_autorcvbuf_max); - m->m_cur_offset = bsp->cur_offset; - bsp->cur_offset += m->m_len; - - if (!(bsp->flags & DDP_BF_NOFLIP)) { - q->cur_buf ^= 1; /* flip buffers */ - if (G_DDP_OFFSET(ddp_report) < q->kbuf[0]->dgl_length) - nomoredata=1; + if (!sbreserve_locked(so_rcv, newsize, so, NULL)) + so_rcv->sb_flags &= ~SB_AUTOSIZE; + else + toep->tp_rx_credits += newsize - hiwat; } - - CTR4(KTR_TOM, - "process_ddp_complete: tp->rcv_nxt 0x%x cur_offset %u " - "ddp_report %u offset %u", - tp->rcv_nxt, bsp->cur_offset, ddp_report, - G_DDP_OFFSET(ddp_report)); - - m->m_ddp_gl = (unsigned char *)bsp->gl; - m->m_flags |= M_DDP; - m->m_ddp_flags = (bsp->flags & DDP_BF_NOCOPY) | 1; - if (bsp->flags & DDP_BF_NOCOPY) - bsp->flags &= ~DDP_BF_NOCOPY; - if (nomoredata) - m->m_ddp_flags |= DDP_BF_NODATA; - SBAPPEND(rcv, m); - if ((so_state_get(so) & SS_NOFDREF) == 0) - so_sorwakeup_locked(so); - else - sockbuf_unlock(rcv); -} + toep->tp_enqueued += m->m_pkthdr.len; + sbappendstream_locked(so_rcv, m); + sorwakeup_locked(so); + SOCKBUF_UNLOCK_ASSERT(so_rcv); -/* - * Handler for RX_DDP_COMPLETE CPL messages. - */ -static int -do_rx_ddp_complete(struct t3cdev *cdev, struct mbuf *m, void *ctx) -{ - struct toepcb *toep = ctx; - - VALIDATE_SOCK(so); -#if 0 - skb->h.th = tcphdr_skb->h.th; -#endif - process_ddp_complete(toep, m); + INP_WUNLOCK(inp); return (0); } /* - * Move a socket to TIME_WAIT state. We need to make some adjustments to the - * socket state before calling tcp_time_wait to comply with its expectations. + * Handler for PEER_CLOSE CPL messages. */ -static void -enter_timewait(struct tcpcb *tp) +static int +do_peer_close(struct sge_qset *qs, struct rsp_desc *r, struct mbuf *m) { - /* - * Bump rcv_nxt for the peer FIN. We don't do this at the time we - * process peer_close because we don't want to carry the peer FIN in - * the socket's receive queue and if we increment rcv_nxt without - * having the FIN in the receive queue we'll confuse facilities such - * as SIOCINQ. - */ - inp_wlock(tp->t_inpcb); + struct adapter *sc = qs->adap; + struct tom_data *td = sc->tom_softc; + const struct cpl_peer_close *hdr = mtod(m, void *); + unsigned int tid = GET_TID(hdr); + struct toepcb *toep = lookup_tid(&td->tid_maps, tid); + struct inpcb *inp = toep->tp_inp; + struct tcpcb *tp; + struct socket *so; + + INP_INFO_WLOCK(&V_tcbinfo); + INP_WLOCK(inp); + tp = intotcpcb(inp); + + CTR5(KTR_CXGB, "%s: tid %u (%s), toep_flags 0x%x, inp %p", __func__, + tid, tp ? tcpstates[tp->t_state] : "no tp" , toep->tp_flags, inp); + + if (toep->tp_flags & TP_ABORT_RPL_PENDING) + goto done; + + so = inp_inpcbtosocket(inp); + + socantrcvmore(so); tp->rcv_nxt++; - tp->ts_recent_age = 0; /* defeat recycling */ - tp->t_srtt = 0; /* defeat tcp_update_metrics */ - inp_wunlock(tp->t_inpcb); - tcp_offload_twstart(tp); -} - -/* - * For TCP DDP a PEER_CLOSE may also be an implicit RX_DDP_COMPLETE. This - * function deals with the data that may be reported along with the FIN. - * Returns -1 if no further processing of the PEER_CLOSE is needed, >= 0 to - * perform normal FIN-related processing. In the latter case 1 indicates that - * there was an implicit RX_DDP_COMPLETE and the skb should not be freed, 0 the - * skb can be freed. - */ -static int -handle_peer_close_data(struct socket *so, struct mbuf *m) -{ - struct tcpcb *tp = so_sototcpcb(so); - struct toepcb *toep = tp->t_toe; - struct ddp_state *q; - struct ddp_buf_state *bsp; - struct cpl_peer_close *req = cplhdr(m); - unsigned int rcv_nxt = ntohl(req->rcv_nxt) - 1; /* exclude FIN */ - struct sockbuf *rcv; - - if (tp->rcv_nxt == rcv_nxt) /* no data */ - return (0); - - CTR0(KTR_TOM, "handle_peer_close_data"); - if (__predict_false(so_no_receive(so))) { - handle_excess_rx(toep, m); - - /* - * Although we discard the data we want to process the FIN so - * that PEER_CLOSE + data behaves the same as RX_DATA_DDP + - * PEER_CLOSE without data. In particular this PEER_CLOSE - * may be what will close the connection. We return 1 because - * handle_excess_rx() already freed the packet. - */ - return (1); - } - - inp_lock_assert(tp->t_inpcb); - q = &toep->tp_ddp_state; - rcv = so_sockbuf_rcv(so); - sockbuf_lock(rcv); - - bsp = &q->buf_state[q->cur_buf]; - m->m_len = m->m_pkthdr.len = rcv_nxt - tp->rcv_nxt; - KASSERT(m->m_len > 0, ("%s m_len=%d", __FUNCTION__, m->m_len)); - m->m_ddp_gl = (unsigned char *)bsp->gl; - m->m_flags |= M_DDP; - m->m_cur_offset = bsp->cur_offset; - m->m_ddp_flags = - DDP_BF_PSH | (bsp->flags & DDP_BF_NOCOPY) | 1; - m->m_seq = tp->rcv_nxt; - tp->rcv_nxt = rcv_nxt; - bsp->cur_offset += m->m_pkthdr.len; - if (!(bsp->flags & DDP_BF_NOFLIP)) - q->cur_buf ^= 1; -#ifdef notyet - skb_reset_transport_header(skb); - tcp_hdr(skb)->fin = 0; /* changes valid memory past CPL */ -#endif - tp->t_rcvtime = ticks; - SBAPPEND(rcv, m); - if (__predict_true((so_state_get(so) & SS_NOFDREF) == 0)) - so_sorwakeup_locked(so); - else - sockbuf_unlock(rcv); - - return (1); -} - -/* - * Handle a peer FIN. - */ -static void -do_peer_fin(struct toepcb *toep, struct mbuf *m) -{ - struct socket *so; - struct tcpcb *tp = toep->tp_tp; - int keep, action; - - action = keep = 0; - CTR1(KTR_TOM, "do_peer_fin state=%d", tp->t_state); - if (!is_t3a(toep->tp_toedev) && (toep->tp_flags & TP_ABORT_RPL_PENDING)) { - printf("abort_pending set\n"); - - goto out; - } - inp_wlock(tp->t_inpcb); - so = inp_inpcbtosocket(toep->tp_tp->t_inpcb); - if (toep->tp_ulp_mode == ULP_MODE_TCPDDP) { - keep = handle_peer_close_data(so, m); - if (keep < 0) { - inp_wunlock(tp->t_inpcb); - return; - } - } - if (TCPS_HAVERCVDFIN(tp->t_state) == 0) { - CTR1(KTR_TOM, - "waking up waiters for cantrcvmore on %p ", so); - socantrcvmore(so); - - /* - * If connection is half-synchronized - * (ie NEEDSYN flag on) then delay ACK, - * so it may be piggybacked when SYN is sent. - * Otherwise, since we received a FIN then no - * more input can be expected, send ACK now. - */ - if (tp->t_flags & TF_NEEDSYN) - tp->t_flags |= TF_DELACK; - else - tp->t_flags |= TF_ACKNOW; - tp->rcv_nxt++; - } - switch (tp->t_state) { case TCPS_SYN_RECEIVED: - tp->t_starttime = ticks; - /* FALLTHROUGH */ + tp->t_starttime = ticks; + /* FALLTHROUGH */ case TCPS_ESTABLISHED: tp->t_state = TCPS_CLOSE_WAIT; break; @@ -2561,228 +1251,134 @@ do_peer_fin(struct toepcb *toep, struct mbuf *m) tp->t_state = TCPS_CLOSING; break; case TCPS_FIN_WAIT_2: - /* - * If we've sent an abort_req we must have sent it too late, - * HW will send us a reply telling us so, and this peer_close - * is really the last message for this connection and needs to - * be treated as an abort_rpl, i.e., transition the connection - * to TCP_CLOSE (note that the host stack does this at the - * time of generating the RST but we must wait for HW). - * Otherwise we enter TIME_WAIT. - */ - t3_release_offload_resources(toep); - if (toep->tp_flags & TP_ABORT_RPL_PENDING) { - action = TCP_CLOSE; - } else { - action = TCP_TIMEWAIT; - } - break; + tcp_twstart(tp); + INP_UNLOCK_ASSERT(inp); /* safe, we have a ref on the inp */ + INP_INFO_WUNLOCK(&V_tcbinfo); + + INP_WLOCK(inp); + toepcb_release(toep); /* no more CPLs expected */ + + m_freem(m); + return (0); default: - log(LOG_ERR, - "%s: TID %u received PEER_CLOSE in bad state %d\n", - toep->tp_toedev->tod_name, toep->tp_tid, tp->t_state); - } - inp_wunlock(tp->t_inpcb); - - if (action == TCP_TIMEWAIT) { - enter_timewait(tp); - } else if (action == TCP_DROP) { - tcp_offload_drop(tp, 0); - } else if (action == TCP_CLOSE) { - tcp_offload_close(tp); + log(LOG_ERR, "%s: TID %u received PEER_CLOSE in bad state %d\n", + __func__, toep->tp_tid, tp->t_state); } -#ifdef notyet - /* Do not send POLL_HUP for half duplex close. */ - if ((sk->sk_shutdown & SEND_SHUTDOWN) || - sk->sk_state == TCP_CLOSE) - sk_wake_async(so, 1, POLL_HUP); - else - sk_wake_async(so, 1, POLL_IN); -#endif +done: + INP_WUNLOCK(inp); + INP_INFO_WUNLOCK(&V_tcbinfo); -out: - if (!keep) - m_free(m); -} - -/* - * Handler for PEER_CLOSE CPL messages. - */ -static int -do_peer_close(struct t3cdev *cdev, struct mbuf *m, void *ctx) -{ - struct toepcb *toep = (struct toepcb *)ctx; - - VALIDATE_SOCK(so); - - do_peer_fin(toep, m); + m_freem(m); return (0); } -static void -process_close_con_rpl(struct toepcb *toep, struct mbuf *m) +/* + * Handler for CLOSE_CON_RPL CPL messages. peer ACK to our FIN received. + */ +static int +do_close_con_rpl(struct sge_qset *qs, struct rsp_desc *r, struct mbuf *m) { - struct cpl_close_con_rpl *rpl = cplhdr(m); - struct tcpcb *tp = toep->tp_tp; - struct socket *so; - int action = 0; - struct sockbuf *rcv; - - inp_wlock(tp->t_inpcb); - so = inp_inpcbtosocket(tp->t_inpcb); - + struct adapter *sc = qs->adap; + struct tom_data *td = sc->tom_softc; + const struct cpl_close_con_rpl *rpl = mtod(m, void *); + unsigned int tid = GET_TID(rpl); + struct toepcb *toep = lookup_tid(&td->tid_maps, tid); + struct inpcb *inp = toep->tp_inp; + struct tcpcb *tp; + struct socket *so; + + INP_INFO_WLOCK(&V_tcbinfo); + INP_WLOCK(inp); + tp = intotcpcb(inp); + + CTR4(KTR_CXGB, "%s: tid %u (%s), toep_flags 0x%x", __func__, tid, + tp ? tcpstates[tp->t_state] : "no tp", toep->tp_flags); + + if ((toep->tp_flags & TP_ABORT_RPL_PENDING)) + goto done; + + so = inp_inpcbtosocket(inp); tp->snd_una = ntohl(rpl->snd_nxt) - 1; /* exclude FIN */ - if (!is_t3a(toep->tp_toedev) && (toep->tp_flags & TP_ABORT_RPL_PENDING)) { - inp_wunlock(tp->t_inpcb); - goto out; - } - - CTR3(KTR_TOM, "process_close_con_rpl(%p) state=%d dead=%d", toep, - tp->t_state, !!(so_state_get(so) & SS_NOFDREF)); - switch (tp->t_state) { - case TCPS_CLOSING: /* see FIN_WAIT2 case in do_peer_fin */ - t3_release_offload_resources(toep); - if (toep->tp_flags & TP_ABORT_RPL_PENDING) { - action = TCP_CLOSE; + case TCPS_CLOSING: + tcp_twstart(tp); +release: + INP_UNLOCK_ASSERT(inp); /* safe, we have a ref on the inp */ + INP_INFO_WUNLOCK(&V_tcbinfo); - } else { - action = TCP_TIMEWAIT; - } - break; + INP_WLOCK(inp); + toepcb_release(toep); /* no more CPLs expected */ + + m_freem(m); + return (0); case TCPS_LAST_ACK: - /* - * In this state we don't care about pending abort_rpl. - * If we've sent abort_req it was post-close and was sent too - * late, this close_con_rpl is the actual last message. - */ - t3_release_offload_resources(toep); - action = TCP_CLOSE; - break; + if (tcp_close(tp)) + INP_WUNLOCK(inp); + goto release; + case TCPS_FIN_WAIT_1: - /* - * If we can't receive any more - * data, then closing user can proceed. - * Starting the timer is contrary to the - * specification, but if we don't get a FIN - * we'll hang forever. - * - * XXXjl: - * we should release the tp also, and use a - * compressed state. - */ - if (so) - rcv = so_sockbuf_rcv(so); - else - break; - - if (rcv->sb_state & SBS_CANTRCVMORE) { - int timeout; - - if (so) - soisdisconnected(so); - timeout = (tcp_fast_finwait2_recycle) ? - tcp_finwait2_timeout : tcp_maxidle; - tcp_timer_activate(tp, TT_2MSL, timeout); - } + if (so->so_rcv.sb_state & SBS_CANTRCVMORE) + soisdisconnected(so); tp->t_state = TCPS_FIN_WAIT_2; - if ((so_options_get(so) & SO_LINGER) && so_linger_get(so) == 0 && - (toep->tp_flags & TP_ABORT_SHUTDOWN) == 0) { - action = TCP_DROP; - } - break; default: log(LOG_ERR, - "%s: TID %u received CLOSE_CON_RPL in bad state %d\n", - toep->tp_toedev->tod_name, toep->tp_tid, - tp->t_state); + "%s: TID %u received CLOSE_CON_RPL in bad state %d\n", + __func__, toep->tp_tid, tp->t_state); } - inp_wunlock(tp->t_inpcb); +done: + INP_WUNLOCK(inp); + INP_INFO_WUNLOCK(&V_tcbinfo); - if (action == TCP_TIMEWAIT) { - enter_timewait(tp); - } else if (action == TCP_DROP) { - tcp_offload_drop(tp, 0); - } else if (action == TCP_CLOSE) { - tcp_offload_close(tp); - } -out: m_freem(m); -} - -/* - * Handler for CLOSE_CON_RPL CPL messages. - */ -static int -do_close_con_rpl(struct t3cdev *cdev, struct mbuf *m, - void *ctx) -{ - struct toepcb *toep = (struct toepcb *)ctx; - - process_close_con_rpl(toep, m); return (0); } -/* - * Process abort replies. We only process these messages if we anticipate - * them as the coordination between SW and HW in this area is somewhat lacking - * and sometimes we get ABORT_RPLs after we are done with the connection that - * originated the ABORT_REQ. - */ -static void -process_abort_rpl(struct toepcb *toep, struct mbuf *m) +static int +do_smt_write_rpl(struct sge_qset *qs, struct rsp_desc *r, struct mbuf *m) { - struct tcpcb *tp = toep->tp_tp; - struct socket *so; - int needclose = 0; - -#ifdef T3_TRACE - T3_TRACE1(TIDTB(sk), - "process_abort_rpl: GTS rpl pending %d", - sock_flag(sk, ABORT_RPL_PENDING)); -#endif - - inp_wlock(tp->t_inpcb); - so = inp_inpcbtosocket(tp->t_inpcb); - - if (toep->tp_flags & TP_ABORT_RPL_PENDING) { - /* - * XXX panic on tcpdrop - */ - if (!(toep->tp_flags & TP_ABORT_RPL_RCVD) && !is_t3a(toep->tp_toedev)) - toep->tp_flags |= TP_ABORT_RPL_RCVD; - else { - toep->tp_flags &= ~(TP_ABORT_RPL_RCVD|TP_ABORT_RPL_PENDING); - if (!(toep->tp_flags & TP_ABORT_REQ_RCVD) || - !is_t3a(toep->tp_toedev)) { - if (toep->tp_flags & TP_ABORT_REQ_RCVD) - panic("TP_ABORT_REQ_RCVD set"); - t3_release_offload_resources(toep); - needclose = 1; - } - } + struct cpl_smt_write_rpl *rpl = mtod(m, void *); + + if (rpl->status != CPL_ERR_NONE) { + log(LOG_ERR, + "Unexpected SMT_WRITE_RPL status %u for entry %u\n", + rpl->status, GET_TID(rpl)); } - inp_wunlock(tp->t_inpcb); - if (needclose) - tcp_offload_close(tp); + m_freem(m); + return (0); +} - m_free(m); +static int +do_set_tcb_rpl(struct sge_qset *qs, struct rsp_desc *r, struct mbuf *m) +{ + struct cpl_set_tcb_rpl *rpl = mtod(m, void *); + + if (rpl->status != CPL_ERR_NONE) { + log(LOG_ERR, "Unexpected SET_TCB_RPL status %u for tid %u\n", + rpl->status, GET_TID(rpl)); + } + + m_freem(m); + return (0); } /* * Handle an ABORT_RPL_RSS CPL message. */ static int -do_abort_rpl(struct t3cdev *cdev, struct mbuf *m, void *ctx) +do_abort_rpl(struct sge_qset *qs, struct rsp_desc *r, struct mbuf *m) { - struct cpl_abort_rpl_rss *rpl = cplhdr(m); - struct toepcb *toep; - + struct adapter *sc = qs->adap; + struct tom_data *td = sc->tom_softc; + const struct cpl_abort_rpl_rss *rpl = mtod(m, void *); + unsigned int tid = GET_TID(rpl); + struct toepcb *toep = lookup_tid(&td->tid_maps, tid); + struct inpcb *inp; + /* * Ignore replies to post-close aborts indicating that the abort was * requested too late. These connections are terminated when we get @@ -2790,99 +1386,54 @@ do_abort_rpl(struct t3cdev *cdev, struct mbuf *m, void *ctx) * arrives the TID is either no longer used or it has been recycled. */ if (rpl->status == CPL_ERR_ABORT_FAILED) { -discard: - m_free(m); + m_freem(m); return (0); } - toep = (struct toepcb *)ctx; - - /* - * Sometimes we've already closed the socket, e.g., a post-close - * abort races with ABORT_REQ_RSS, the latter frees the socket - * expecting the ABORT_REQ will fail with CPL_ERR_ABORT_FAILED, - * but FW turns the ABORT_REQ into a regular one and so we get - * ABORT_RPL_RSS with status 0 and no socket. Only on T3A. - */ - if (!toep) - goto discard; + if (toep->tp_flags & TP_IS_A_SYNQ_ENTRY) + return (do_abort_rpl_synqe(qs, r, m)); - if (toep->tp_tp == NULL) { - log(LOG_NOTICE, "removing tid for abort\n"); - cxgb_remove_tid(cdev, toep, toep->tp_tid); - if (toep->tp_l2t) - l2t_release(L2DATA(cdev), toep->tp_l2t); + CTR4(KTR_CXGB, "%s: tid %d, toep %p, status %d", __func__, tid, toep, + rpl->status); - toepcb_release(toep); - goto discard; + inp = toep->tp_inp; + INP_WLOCK(inp); + + if (toep->tp_flags & TP_ABORT_RPL_PENDING) { + if (!(toep->tp_flags & TP_ABORT_RPL_RCVD)) { + toep->tp_flags |= TP_ABORT_RPL_RCVD; + INP_WUNLOCK(inp); + } else { + toep->tp_flags &= ~TP_ABORT_RPL_RCVD; + toep->tp_flags &= TP_ABORT_RPL_PENDING; + toepcb_release(toep); /* no more CPLs expected */ + } } - - log(LOG_NOTICE, "toep=%p\n", toep); - log(LOG_NOTICE, "tp=%p\n", toep->tp_tp); - toepcb_hold(toep); - process_abort_rpl(toep, m); - toepcb_release(toep); + m_freem(m); return (0); } /* - * Convert the status code of an ABORT_REQ into a FreeBSD error code. Also - * indicate whether RST should be sent in response. + * Convert the status code of an ABORT_REQ into a FreeBSD error code. */ static int -abort_status_to_errno(struct socket *so, int abort_reason, int *need_rst) +abort_status_to_errno(struct tcpcb *tp, int abort_reason) { - struct tcpcb *tp = so_sototcpcb(so); - switch (abort_reason) { case CPL_ERR_BAD_SYN: -#if 0 - NET_INC_STATS_BH(LINUX_MIB_TCPABORTONSYN); // fall through -#endif case CPL_ERR_CONN_RESET: - // XXX need to handle SYN_RECV due to crossed SYNs return (tp->t_state == TCPS_CLOSE_WAIT ? EPIPE : ECONNRESET); case CPL_ERR_XMIT_TIMEDOUT: case CPL_ERR_PERSIST_TIMEDOUT: case CPL_ERR_FINWAIT2_TIMEDOUT: case CPL_ERR_KEEPALIVE_TIMEDOUT: -#if 0 - NET_INC_STATS_BH(LINUX_MIB_TCPABORTONTIMEOUT); -#endif return (ETIMEDOUT); default: return (EIO); } } -static inline void -set_abort_rpl_wr(struct mbuf *m, unsigned int tid, int cmd) -{ - struct cpl_abort_rpl *rpl = cplhdr(m); - - rpl->wr.wr_hi = htonl(V_WR_OP(FW_WROPCODE_OFLD_HOST_ABORT_CON_RPL)); - rpl->wr.wr_lo = htonl(V_WR_TID(tid)); - m->m_len = m->m_pkthdr.len = sizeof(*rpl); - - OPCODE_TID(rpl) = htonl(MK_OPCODE_TID(CPL_ABORT_RPL, tid)); - rpl->cmd = cmd; -} - -static void -send_deferred_abort_rpl(struct toedev *tdev, struct mbuf *m) -{ - struct mbuf *reply_mbuf; - struct cpl_abort_req_rss *req = cplhdr(m); - - reply_mbuf = m_gethdr_nofail(sizeof(struct cpl_abort_rpl)); - m_set_priority(m, CPL_PRIORITY_DATA); - m->m_len = m->m_pkthdr.len = sizeof(struct cpl_abort_rpl); - set_abort_rpl_wr(reply_mbuf, GET_TID(req), req->status); - cxgb_ofld_send(TOM_DATA(tdev)->cdev, reply_mbuf); - m_free(m); -} - /* * Returns whether an ABORT_REQ_RSS message is a negative advice. */ @@ -2893,850 +1444,177 @@ is_neg_adv_abort(unsigned int status) status == CPL_ERR_PERSIST_NEG_ADVICE; } -static void -send_abort_rpl(struct mbuf *m, struct toedev *tdev, int rst_status) +void +send_abort_rpl(struct toedev *tod, int tid, int qset) { - struct mbuf *reply_mbuf; - struct cpl_abort_req_rss *req = cplhdr(m); + struct mbuf *reply; + struct cpl_abort_rpl *rpl; + struct adapter *sc = tod->tod_softc; - reply_mbuf = m_gethdr(M_NOWAIT, MT_DATA); + reply = M_GETHDR_OFLD(qset, CPL_PRIORITY_DATA, rpl); + if (!reply) + CXGB_UNIMPLEMENTED(); - if (!reply_mbuf) { - /* Defer the reply. Stick rst_status into req->cmd. */ - req->status = rst_status; - t3_defer_reply(m, tdev, send_deferred_abort_rpl); - return; - } + rpl->wr.wrh_hi = htonl(V_WR_OP(FW_WROPCODE_OFLD_HOST_ABORT_CON_RPL)); + rpl->wr.wrh_lo = htonl(V_WR_TID(tid)); + OPCODE_TID(rpl) = htonl(MK_OPCODE_TID(CPL_ABORT_RPL, tid)); + rpl->cmd = CPL_ABORT_NO_RST; - m_set_priority(reply_mbuf, CPL_PRIORITY_DATA); - set_abort_rpl_wr(reply_mbuf, GET_TID(req), rst_status); - m_free(m); - - /* - * XXX need to sync with ARP as for SYN_RECV connections we can send - * these messages while ARP is pending. For other connection states - * it's not a problem. - */ - cxgb_ofld_send(TOM_DATA(tdev)->cdev, reply_mbuf); + t3_offload_tx(sc, reply); } -#ifdef notyet -static void -cleanup_syn_rcv_conn(struct socket *child, struct socket *parent) -{ - CXGB_UNIMPLEMENTED(); -#ifdef notyet - struct request_sock *req = child->sk_user_data; - - inet_csk_reqsk_queue_removed(parent, req); - synq_remove(tcp_sk(child)); - __reqsk_free(req); - child->sk_user_data = NULL; -#endif -} - - /* - * Performs the actual work to abort a SYN_RECV connection. - */ -static void -do_abort_syn_rcv(struct socket *child, struct socket *parent) -{ - struct tcpcb *parenttp = so_sototcpcb(parent); - struct tcpcb *childtp = so_sototcpcb(child); - - /* - * If the server is still open we clean up the child connection, - * otherwise the server already did the clean up as it was purging - * its SYN queue and the skb was just sitting in its backlog. - */ - if (__predict_false(parenttp->t_state == TCPS_LISTEN)) { - cleanup_syn_rcv_conn(child, parent); - inp_wlock(childtp->t_inpcb); - t3_release_offload_resources(childtp->t_toe); - inp_wunlock(childtp->t_inpcb); - tcp_offload_close(childtp); - } -} -#endif - -/* - * Handle abort requests for a SYN_RECV connection. These need extra work - * because the socket is on its parent's SYN queue. + * Handle an ABORT_REQ_RSS CPL message. If we're waiting for an ABORT_RPL we + * ignore this request except that we need to reply to it. */ static int -abort_syn_rcv(struct socket *so, struct mbuf *m) +do_abort_req(struct sge_qset *qs, struct rsp_desc *r, struct mbuf *m) { - CXGB_UNIMPLEMENTED(); -#ifdef notyet - struct socket *parent; - struct toedev *tdev = toep->tp_toedev; - struct t3cdev *cdev = TOM_DATA(tdev)->cdev; - struct socket *oreq = so->so_incomp; - struct t3c_tid_entry *t3c_stid; - struct tid_info *t; - - if (!oreq) - return -1; /* somehow we are not on the SYN queue */ - - t = &(T3C_DATA(cdev))->tid_maps; - t3c_stid = lookup_stid(t, oreq->ts_recent); - parent = ((struct listen_ctx *)t3c_stid->ctx)->lso; - - so_lock(parent); - do_abort_syn_rcv(so, parent); - send_abort_rpl(m, tdev, CPL_ABORT_NO_RST); - so_unlock(parent); -#endif - return (0); -} - -/* - * Process abort requests. If we are waiting for an ABORT_RPL we ignore this - * request except that we need to reply to it. - */ -static void -process_abort_req(struct toepcb *toep, struct mbuf *m, struct toedev *tdev) -{ - int rst_status = CPL_ABORT_NO_RST; - const struct cpl_abort_req_rss *req = cplhdr(m); - struct tcpcb *tp = toep->tp_tp; + struct adapter *sc = qs->adap; + struct tom_data *td = sc->tom_softc; + struct toedev *tod = &td->tod; + const struct cpl_abort_req_rss *req = mtod(m, void *); + unsigned int tid = GET_TID(req); + struct toepcb *toep = lookup_tid(&td->tid_maps, tid); + struct inpcb *inp; + struct tcpcb *tp; struct socket *so; - int needclose = 0; - - inp_wlock(tp->t_inpcb); - so = inp_inpcbtosocket(toep->tp_tp->t_inpcb); - if ((toep->tp_flags & TP_ABORT_REQ_RCVD) == 0) { - toep->tp_flags |= (TP_ABORT_REQ_RCVD|TP_ABORT_SHUTDOWN); - m_free(m); - goto skip; - } + int qset = toep->tp_qset; - toep->tp_flags &= ~TP_ABORT_REQ_RCVD; - /* - * Three cases to consider: - * a) We haven't sent an abort_req; close the connection. - * b) We have sent a post-close abort_req that will get to TP too late - * and will generate a CPL_ERR_ABORT_FAILED reply. The reply will - * be ignored and the connection should be closed now. - * c) We have sent a regular abort_req that will get to TP too late. - * That will generate an abort_rpl with status 0, wait for it. - */ - if (((toep->tp_flags & TP_ABORT_RPL_PENDING) == 0) || - (is_t3a(toep->tp_toedev) && (toep->tp_flags & TP_CLOSE_CON_REQUESTED))) { - int error; - - error = abort_status_to_errno(so, req->status, - &rst_status); - so_error_set(so, error); - - if (__predict_true((so_state_get(so) & SS_NOFDREF) == 0)) - so_sorwakeup(so); - /* - * SYN_RECV needs special processing. If abort_syn_rcv() - * returns 0 is has taken care of the abort. - */ - if ((tp->t_state == TCPS_SYN_RECEIVED) && !abort_syn_rcv(so, m)) - goto skip; - - t3_release_offload_resources(toep); - needclose = 1; - } - inp_wunlock(tp->t_inpcb); - - if (needclose) - tcp_offload_close(tp); - - send_abort_rpl(m, tdev, rst_status); - return; -skip: - inp_wunlock(tp->t_inpcb); -} - -/* - * Handle an ABORT_REQ_RSS CPL message. - */ -static int -do_abort_req(struct t3cdev *cdev, struct mbuf *m, void *ctx) -{ - const struct cpl_abort_req_rss *req = cplhdr(m); - struct toepcb *toep = (struct toepcb *)ctx; - if (is_neg_adv_abort(req->status)) { - m_free(m); + CTR4(KTR_CXGB, "%s: negative advice %d for tid %u (%x)", + __func__, req->status, tid, toep->tp_flags); + m_freem(m); return (0); } - log(LOG_NOTICE, "aborting tid=%d\n", toep->tp_tid); - - if ((toep->tp_flags & (TP_SYN_RCVD|TP_ABORT_REQ_RCVD)) == TP_SYN_RCVD) { - cxgb_remove_tid(cdev, toep, toep->tp_tid); + if (toep->tp_flags & TP_IS_A_SYNQ_ENTRY) + return (do_abort_req_synqe(qs, r, m)); + + inp = toep->tp_inp; + INP_INFO_WLOCK(&V_tcbinfo); /* for tcp_close */ + INP_WLOCK(inp); + + tp = intotcpcb(inp); + so = inp->inp_socket; + + CTR6(KTR_CXGB, "%s: tid %u (%s), toep %p (%x), status %d", + __func__, tid, tcpstates[tp->t_state], toep, toep->tp_flags, + req->status); + + if (!(toep->tp_flags & TP_ABORT_REQ_RCVD)) { toep->tp_flags |= TP_ABORT_REQ_RCVD; - - send_abort_rpl(m, toep->tp_toedev, CPL_ABORT_NO_RST); - if (toep->tp_l2t) - l2t_release(L2DATA(cdev), toep->tp_l2t); - - /* - * Unhook - */ - toep->tp_tp->t_toe = NULL; - toep->tp_tp->t_flags &= ~TF_TOE; - toep->tp_tp = NULL; - /* - * XXX need to call syncache_chkrst - but we don't - * have a way of doing that yet - */ - toepcb_release(toep); - log(LOG_ERR, "abort for unestablished connection :-(\n"); - return (0); - } - if (toep->tp_tp == NULL) { - log(LOG_NOTICE, "disconnected toepcb\n"); - /* should be freed momentarily */ + toep->tp_flags |= TP_ABORT_SHUTDOWN; + INP_WUNLOCK(inp); + INP_INFO_WUNLOCK(&V_tcbinfo); + m_freem(m); return (0); } + toep->tp_flags &= ~TP_ABORT_REQ_RCVD; - - toepcb_hold(toep); - process_abort_req(toep, m, toep->tp_toedev); - toepcb_release(toep); - return (0); -} -#ifdef notyet -static void -pass_open_abort(struct socket *child, struct socket *parent, struct mbuf *m) -{ - struct toedev *tdev = TOE_DEV(parent); - - do_abort_syn_rcv(child, parent); - if (tdev->tod_ttid == TOE_ID_CHELSIO_T3) { - struct cpl_pass_accept_rpl *rpl = cplhdr(m); - - rpl->opt0h = htonl(F_TCAM_BYPASS); - rpl->opt0l_status = htonl(CPL_PASS_OPEN_REJECT); - cxgb_ofld_send(TOM_DATA(tdev)->cdev, m); - } else - m_free(m); -} -#endif -static void -handle_pass_open_arp_failure(struct socket *so, struct mbuf *m) -{ - CXGB_UNIMPLEMENTED(); - -#ifdef notyet - struct t3cdev *cdev; - struct socket *parent; - struct socket *oreq; - struct t3c_tid_entry *t3c_stid; - struct tid_info *t; - struct tcpcb *otp, *tp = so_sototcpcb(so); - struct toepcb *toep = tp->t_toe; - /* - * If the connection is being aborted due to the parent listening - * socket going away there's nothing to do, the ABORT_REQ will close - * the connection. + * If we'd sent a reset on this toep, we'll ignore this and clean up in + * the T3's reply to our reset instead. */ if (toep->tp_flags & TP_ABORT_RPL_PENDING) { - m_free(m); - return; + toep->tp_flags |= TP_ABORT_RPL_SENT; + INP_WUNLOCK(inp); + } else { + so_error_set(so, abort_status_to_errno(tp, req->status)); + tp = tcp_close(tp); + if (tp == NULL) + INP_WLOCK(inp); /* re-acquire */ + toepcb_release(toep); /* no more CPLs expected */ } + INP_INFO_WUNLOCK(&V_tcbinfo); - oreq = so->so_incomp; - otp = so_sototcpcb(oreq); - - cdev = T3C_DEV(so); - t = &(T3C_DATA(cdev))->tid_maps; - t3c_stid = lookup_stid(t, otp->ts_recent); - parent = ((struct listen_ctx *)t3c_stid->ctx)->lso; - - so_lock(parent); - pass_open_abort(so, parent, m); - so_unlock(parent); -#endif -} - -/* - * Handle an ARP failure for a CPL_PASS_ACCEPT_RPL. This is treated similarly - * to an ABORT_REQ_RSS in SYN_RECV as both events need to tear down a SYN_RECV - * connection. - */ -static void -pass_accept_rpl_arp_failure(struct t3cdev *cdev, struct mbuf *m) -{ - -#ifdef notyet - TCP_INC_STATS_BH(TCP_MIB_ATTEMPTFAILS); - BLOG_SKB_CB(skb)->dev = TOE_DEV(skb->sk); -#endif - handle_pass_open_arp_failure(m_get_socket(m), m); -} - -/* - * Populate a reject CPL_PASS_ACCEPT_RPL WR. - */ -static void -mk_pass_accept_rpl(struct mbuf *reply_mbuf, struct mbuf *req_mbuf) -{ - struct cpl_pass_accept_req *req = cplhdr(req_mbuf); - struct cpl_pass_accept_rpl *rpl = cplhdr(reply_mbuf); - unsigned int tid = GET_TID(req); - - m_set_priority(reply_mbuf, CPL_PRIORITY_SETUP); - rpl->wr.wr_hi = htonl(V_WR_OP(FW_WROPCODE_FORWARD)); - OPCODE_TID(rpl) = htonl(MK_OPCODE_TID(CPL_PASS_ACCEPT_RPL, tid)); - rpl->peer_ip = req->peer_ip; // req->peer_ip not overwritten yet - rpl->opt0h = htonl(F_TCAM_BYPASS); - rpl->opt0l_status = htonl(CPL_PASS_OPEN_REJECT); - rpl->opt2 = 0; - rpl->rsvd = rpl->opt2; /* workaround for HW bug */ -} - -/* - * Send a deferred reject to an accept request. - */ -static void -reject_pass_request(struct toedev *tdev, struct mbuf *m) -{ - struct mbuf *reply_mbuf; - - reply_mbuf = m_gethdr_nofail(sizeof(struct cpl_pass_accept_rpl)); - mk_pass_accept_rpl(reply_mbuf, m); - cxgb_ofld_send(TOM_DATA(tdev)->cdev, reply_mbuf); - m_free(m); -} - -static void -handle_syncache_event(int event, void *arg) -{ - struct toepcb *toep = arg; - - switch (event) { - case TOE_SC_ENTRY_PRESENT: - /* - * entry already exists - free toepcb - * and l2t - */ - printf("syncache entry present\n"); - toepcb_release(toep); - break; - case TOE_SC_DROP: - /* - * The syncache has given up on this entry - * either it timed out, or it was evicted - * we need to explicitly release the tid - */ - printf("syncache entry dropped\n"); - toepcb_release(toep); - break; - default: - log(LOG_ERR, "unknown syncache event %d\n", event); - break; - } -} - -static void -syncache_add_accept_req(struct cpl_pass_accept_req *req, struct socket *lso, struct toepcb *toep) -{ - struct in_conninfo inc; - struct toeopt toeo; - struct tcphdr th; - struct inpcb *inp; - int mss, wsf, sack, ts; - uint32_t rcv_isn = ntohl(req->rcv_isn); - - bzero(&toeo, sizeof(struct toeopt)); - inp = so_sotoinpcb(lso); - - /* - * Fill out information for entering us into the syncache - */ - bzero(&inc, sizeof(inc)); - inc.inc_fport = th.th_sport = req->peer_port; - inc.inc_lport = th.th_dport = req->local_port; - th.th_seq = req->rcv_isn; - th.th_flags = TH_SYN; - - toep->tp_iss = toep->tp_delack_seq = toep->tp_rcv_wup = toep->tp_copied_seq = rcv_isn + 1; - - inc.inc_len = 0; - inc.inc_faddr.s_addr = req->peer_ip; - inc.inc_laddr.s_addr = req->local_ip; - - DPRINTF("syncache add of %d:%d %d:%d\n", - ntohl(req->local_ip), ntohs(req->local_port), - ntohl(req->peer_ip), ntohs(req->peer_port)); - - mss = req->tcp_options.mss; - wsf = req->tcp_options.wsf; - ts = req->tcp_options.tstamp; - sack = req->tcp_options.sack; - toeo.to_mss = mss; - toeo.to_wscale = wsf; - toeo.to_flags = (mss ? TOF_MSS : 0) | (wsf ? TOF_SCALE : 0) | (ts ? TOF_TS : 0) | (sack ? TOF_SACKPERM : 0); - tcp_offload_syncache_add(&inc, &toeo, &th, inp, &lso, &cxgb_toe_usrreqs, -toep); -} - - -/* - * Process a CPL_PASS_ACCEPT_REQ message. Does the part that needs the socket - * lock held. Note that the sock here is a listening socket that is not owned - * by the TOE. - */ -static void -process_pass_accept_req(struct socket *so, struct mbuf *m, struct toedev *tdev, - struct listen_ctx *lctx) -{ - int rt_flags; - struct l2t_entry *e; - struct iff_mac tim; - struct mbuf *reply_mbuf, *ddp_mbuf = NULL; - struct cpl_pass_accept_rpl *rpl; - struct cpl_pass_accept_req *req = cplhdr(m); - unsigned int tid = GET_TID(req); - struct tom_data *d = TOM_DATA(tdev); - struct t3cdev *cdev = d->cdev; - struct tcpcb *tp = so_sototcpcb(so); - struct toepcb *newtoep; - struct rtentry *dst; - struct sockaddr_in nam; - struct t3c_data *td = T3C_DATA(cdev); - - reply_mbuf = m_gethdr(M_NOWAIT, MT_DATA); - if (__predict_false(reply_mbuf == NULL)) { - if (tdev->tod_ttid == TOE_ID_CHELSIO_T3) - t3_defer_reply(m, tdev, reject_pass_request); - else { - cxgb_queue_tid_release(cdev, tid); - m_free(m); - } - DPRINTF("failed to get reply_mbuf\n"); - - goto out; - } - - if (tp->t_state != TCPS_LISTEN) { - DPRINTF("socket not in listen state\n"); - - goto reject; - } - - tim.mac_addr = req->dst_mac; - tim.vlan_tag = ntohs(req->vlan_tag); - if (cdev->ctl(cdev, GET_IFF_FROM_MAC, &tim) < 0 || !tim.dev) { - DPRINTF("rejecting from failed GET_IFF_FROM_MAC\n"); - goto reject; - } - -#ifdef notyet - /* - * XXX do route lookup to confirm that we're still listening on this - * address - */ - if (ip_route_input(skb, req->local_ip, req->peer_ip, - G_PASS_OPEN_TOS(ntohl(req->tos_tid)), tim.dev)) - goto reject; - rt_flags = ((struct rtable *)skb->dst)->rt_flags & - (RTCF_BROADCAST | RTCF_MULTICAST | RTCF_LOCAL); - dst_release(skb->dst); // done with the input route, release it - skb->dst = NULL; - - if ((rt_flags & RTF_LOCAL) == 0) - goto reject; -#endif - /* - * XXX - */ - rt_flags = RTF_LOCAL; - if ((rt_flags & RTF_LOCAL) == 0) - goto reject; - - /* - * Calculate values and add to syncache - */ - - newtoep = toepcb_alloc(); - if (newtoep == NULL) - goto reject; - - bzero(&nam, sizeof(struct sockaddr_in)); - - nam.sin_len = sizeof(struct sockaddr_in); - nam.sin_family = AF_INET; - nam.sin_addr.s_addr =req->peer_ip; - dst = rtalloc2((struct sockaddr *)&nam, 1, 0); - - if (dst == NULL) { - printf("failed to find route\n"); - goto reject; - } - e = newtoep->tp_l2t = t3_l2t_get(d->cdev, dst, tim.dev, - (struct sockaddr *)&nam); - if (e == NULL) { - DPRINTF("failed to get l2t\n"); - } - /* - * Point to our listen socket until accept - */ - newtoep->tp_tp = tp; - newtoep->tp_flags = TP_SYN_RCVD; - newtoep->tp_tid = tid; - newtoep->tp_toedev = tdev; - tp->rcv_wnd = select_rcv_wnd(tdev, so); - - cxgb_insert_tid(cdev, d->client, newtoep, tid); - so_lock(so); - LIST_INSERT_HEAD(&lctx->synq_head, newtoep, synq_entry); - so_unlock(so); - - newtoep->tp_ulp_mode = TOM_TUNABLE(tdev, ddp) && !(so_options_get(so) & SO_NO_DDP) && - tp->rcv_wnd >= MIN_DDP_RCV_WIN ? ULP_MODE_TCPDDP : 0; - - if (newtoep->tp_ulp_mode) { - ddp_mbuf = m_gethdr(M_NOWAIT, MT_DATA); - - if (ddp_mbuf == NULL) - newtoep->tp_ulp_mode = 0; - } - - CTR4(KTR_TOM, "ddp=%d rcv_wnd=%ld min_win=%d ulp_mode=%d", - TOM_TUNABLE(tdev, ddp), tp->rcv_wnd, MIN_DDP_RCV_WIN, newtoep->tp_ulp_mode); - set_arp_failure_handler(reply_mbuf, pass_accept_rpl_arp_failure); - /* - * XXX workaround for lack of syncache drop - */ - toepcb_hold(newtoep); - syncache_add_accept_req(req, so, newtoep); - - rpl = cplhdr(reply_mbuf); - reply_mbuf->m_pkthdr.len = reply_mbuf->m_len = sizeof(*rpl); - rpl->wr.wr_hi = htonl(V_WR_OP(FW_WROPCODE_FORWARD)); - rpl->wr.wr_lo = 0; - OPCODE_TID(rpl) = htonl(MK_OPCODE_TID(CPL_PASS_ACCEPT_RPL, tid)); - rpl->opt2 = htonl(calc_opt2(so, tdev)); - rpl->rsvd = rpl->opt2; /* workaround for HW bug */ - rpl->peer_ip = req->peer_ip; // req->peer_ip is not overwritten - - rpl->opt0h = htonl(calc_opt0h(so, select_mss(td, NULL, dst->rt_ifp->if_mtu)) | - V_L2T_IDX(e->idx) | V_TX_CHANNEL(e->smt_idx)); - rpl->opt0l_status = htonl(calc_opt0l(so, newtoep->tp_ulp_mode) | - CPL_PASS_OPEN_ACCEPT); - - DPRINTF("opt0l_status=%08x\n", rpl->opt0l_status); - - m_set_priority(reply_mbuf, mkprio(CPL_PRIORITY_SETUP, newtoep)); - - l2t_send(cdev, reply_mbuf, e); - m_free(m); - if (newtoep->tp_ulp_mode) { - __set_tcb_field(newtoep, ddp_mbuf, W_TCB_RX_DDP_FLAGS, - V_TF_DDP_OFF(1) | - TP_DDP_TIMER_WORKAROUND_MASK, - V_TF_DDP_OFF(1) | - TP_DDP_TIMER_WORKAROUND_VAL, 1); - } else - DPRINTF("no DDP\n"); - - return; -reject: - if (tdev->tod_ttid == TOE_ID_CHELSIO_T3) - mk_pass_accept_rpl(reply_mbuf, m); - else - mk_tid_release(reply_mbuf, newtoep, tid); - cxgb_ofld_send(cdev, reply_mbuf); - m_free(m); -out: -#if 0 - TCP_INC_STATS_BH(TCP_MIB_ATTEMPTFAILS); -#else - return; -#endif -} - -/* - * Handle a CPL_PASS_ACCEPT_REQ message. - */ -static int -do_pass_accept_req(struct t3cdev *cdev, struct mbuf *m, void *ctx) -{ - struct listen_ctx *listen_ctx = (struct listen_ctx *)ctx; - struct socket *lso = listen_ctx->lso; /* XXX need an interlock against the listen socket going away */ - struct tom_data *d = listen_ctx->tom_data; - -#if VALIDATE_TID - struct cpl_pass_accept_req *req = cplhdr(m); - unsigned int tid = GET_TID(req); - struct tid_info *t = &(T3C_DATA(cdev))->tid_maps; - - if (unlikely(!lsk)) { - printk(KERN_ERR "%s: PASS_ACCEPT_REQ had unknown STID %lu\n", - cdev->name, - (unsigned long)((union listen_entry *)ctx - - t->stid_tab)); - return CPL_RET_BUF_DONE; - } - if (unlikely(tid >= t->ntids)) { - printk(KERN_ERR "%s: passive open TID %u too large\n", - cdev->name, tid); - return CPL_RET_BUF_DONE; - } - /* - * For T3A the current user of the TID may have closed but its last - * message(s) may have been backlogged so the TID appears to be still - * in use. Just take the TID away, the connection can close at its - * own leisure. For T3B this situation is a bug. - */ - if (!valid_new_tid(t, tid) && - cdev->type != T3A) { - printk(KERN_ERR "%s: passive open uses existing TID %u\n", - cdev->name, tid); - return CPL_RET_BUF_DONE; - } -#endif - - process_pass_accept_req(lso, m, &d->tdev, listen_ctx); + send_abort_rpl(tod, tid, qset); + m_freem(m); return (0); } -/* - * Called when a connection is established to translate the TCP options - * reported by HW to FreeBSD's native format. - */ static void -assign_rxopt(struct socket *so, unsigned int opt) +assign_rxopt(struct tcpcb *tp, uint16_t tcpopt) { - struct tcpcb *tp = so_sototcpcb(so); struct toepcb *toep = tp->t_toe; - const struct t3c_data *td = T3C_DATA(TOEP_T3C_DEV(toep)); + struct adapter *sc = toep->tp_tod->tod_softc; - inp_lock_assert(tp->t_inpcb); - - toep->tp_mss_clamp = td->mtus[G_TCPOPT_MSS(opt)] - 40; - tp->t_flags |= G_TCPOPT_TSTAMP(opt) ? TF_RCVD_TSTMP : 0; - tp->t_flags |= G_TCPOPT_SACK(opt) ? TF_SACK_PERMIT : 0; - tp->t_flags |= G_TCPOPT_WSCALE_OK(opt) ? TF_RCVD_SCALE : 0; - if ((tp->t_flags & (TF_RCVD_SCALE|TF_REQ_SCALE)) == - (TF_RCVD_SCALE|TF_REQ_SCALE)) + tp->t_maxseg = tp->t_maxopd = sc->params.mtus[G_TCPOPT_MSS(tcpopt)] - 40; + + if (G_TCPOPT_TSTAMP(tcpopt)) { + tp->t_flags |= TF_RCVD_TSTMP; + tp->t_flags |= TF_REQ_TSTMP; /* forcibly set */ + tp->ts_recent = 0; /* XXX */ + tp->ts_recent_age = tcp_ts_getticks(); + tp->t_maxseg -= TCPOLEN_TSTAMP_APPA; + } + + if (G_TCPOPT_SACK(tcpopt)) + tp->t_flags |= TF_SACK_PERMIT; + else + tp->t_flags &= ~TF_SACK_PERMIT; + + if (G_TCPOPT_WSCALE_OK(tcpopt)) + tp->t_flags |= TF_RCVD_SCALE; + + if ((tp->t_flags & (TF_RCVD_SCALE | TF_REQ_SCALE)) == + (TF_RCVD_SCALE | TF_REQ_SCALE)) { tp->rcv_scale = tp->request_r_scale; + tp->snd_scale = G_TCPOPT_SND_WSCALE(tcpopt); + } + } /* - * Completes some final bits of initialization for just established connections - * and changes their state to TCP_ESTABLISHED. - * - * snd_isn here is the ISN after the SYN, i.e., the true ISN + 1. + * The ISS and IRS are from after the exchange of SYNs and are off by 1. */ -static void -make_established(struct socket *so, u32 snd_isn, unsigned int opt) +void +make_established(struct socket *so, uint32_t cpl_iss, uint32_t cpl_irs, + uint16_t cpl_tcpopt) { - struct tcpcb *tp = so_sototcpcb(so); + struct inpcb *inp = sotoinpcb(so); + struct tcpcb *tp = intotcpcb(inp); struct toepcb *toep = tp->t_toe; - - toep->tp_write_seq = tp->iss = tp->snd_max = tp->snd_nxt = tp->snd_una = snd_isn; - assign_rxopt(so, opt); + long bufsize; + uint32_t iss = be32toh(cpl_iss) - 1; /* true ISS */ + uint32_t irs = be32toh(cpl_irs) - 1; /* true IRS */ + uint16_t tcpopt = be16toh(cpl_tcpopt); - /* - *XXXXXXXXXXX - * - */ -#ifdef notyet - so->so_proto->pr_ctloutput = t3_ctloutput; -#endif - -#if 0 - inet_sk(sk)->id = tp->write_seq ^ jiffies; -#endif - /* - * XXX not clear what rcv_wup maps to - */ - /* - * Causes the first RX_DATA_ACK to supply any Rx credits we couldn't - * pass through opt0. - */ - if (tp->rcv_wnd > (M_RCV_BUFSIZ << 10)) - toep->tp_rcv_wup -= tp->rcv_wnd - (M_RCV_BUFSIZ << 10); + INP_WLOCK_ASSERT(inp); - dump_toepcb(toep); - -#ifdef notyet -/* - * no clean interface for marking ARP up to date - */ - dst_confirm(sk->sk_dst_cache); -#endif - tp->t_starttime = ticks; tp->t_state = TCPS_ESTABLISHED; + tp->t_starttime = ticks; + TCPSTAT_INC(tcps_connects); + + CTR4(KTR_CXGB, "%s tid %u, toep %p, inp %p", tcpstates[tp->t_state], + toep->tp_tid, toep, inp); + + tp->irs = irs; + tcp_rcvseqinit(tp); + tp->rcv_wnd = toep->tp_rx_credits << 10; + tp->rcv_adv += tp->rcv_wnd; + tp->last_ack_sent = tp->rcv_nxt; + + /* + * If we were unable to send all rx credits via opt0, save the remainder + * in rx_credits so that they can be handed over with the next credit + * update. + */ + SOCKBUF_LOCK(&so->so_rcv); + bufsize = select_rcv_wnd(so); + SOCKBUF_UNLOCK(&so->so_rcv); + toep->tp_rx_credits = bufsize - tp->rcv_wnd; + + tp->iss = iss; + tcp_sendseqinit(tp); + tp->snd_una = iss + 1; + tp->snd_nxt = iss + 1; + tp->snd_max = iss + 1; + + assign_rxopt(tp, tcpopt); soisconnected(so); } -static int -syncache_expand_establish_req(struct cpl_pass_establish *req, struct socket **so, struct toepcb *toep) -{ - - struct in_conninfo inc; - struct toeopt toeo; - struct tcphdr th; - int mss, wsf, sack, ts; - struct mbuf *m = NULL; - const struct t3c_data *td = T3C_DATA(TOM_DATA(toep->tp_toedev)->cdev); - unsigned int opt; - -#ifdef MAC -#error "no MAC support" -#endif - - opt = ntohs(req->tcp_opt); - - bzero(&toeo, sizeof(struct toeopt)); - - /* - * Fill out information for entering us into the syncache - */ - bzero(&inc, sizeof(inc)); - inc.inc_fport = th.th_sport = req->peer_port; - inc.inc_lport = th.th_dport = req->local_port; - th.th_seq = req->rcv_isn; - th.th_flags = TH_ACK; - - inc.inc_len = 0; - inc.inc_faddr.s_addr = req->peer_ip; - inc.inc_laddr.s_addr = req->local_ip; - - mss = td->mtus[G_TCPOPT_MSS(opt)] - 40; - wsf = G_TCPOPT_WSCALE_OK(opt); - ts = G_TCPOPT_TSTAMP(opt); - sack = G_TCPOPT_SACK(opt); - - toeo.to_mss = mss; - toeo.to_wscale = G_TCPOPT_SND_WSCALE(opt); - toeo.to_flags = (mss ? TOF_MSS : 0) | (wsf ? TOF_SCALE : 0) | (ts ? TOF_TS : 0) | (sack ? TOF_SACKPERM : 0); - - DPRINTF("syncache expand of %d:%d %d:%d mss:%d wsf:%d ts:%d sack:%d\n", - ntohl(req->local_ip), ntohs(req->local_port), - ntohl(req->peer_ip), ntohs(req->peer_port), - mss, wsf, ts, sack); - return tcp_offload_syncache_expand(&inc, &toeo, &th, so, m); -} - - -/* - * Process a CPL_PASS_ESTABLISH message. XXX a lot of the locking doesn't work - * if we are in TCP_SYN_RECV due to crossed SYNs - */ -static int -do_pass_establish(struct t3cdev *cdev, struct mbuf *m, void *ctx) -{ - struct cpl_pass_establish *req = cplhdr(m); - struct toepcb *toep = (struct toepcb *)ctx; - struct tcpcb *tp = toep->tp_tp; - struct socket *so, *lso; - struct t3c_data *td = T3C_DATA(cdev); - struct sockbuf *snd, *rcv; - - // Complete socket initialization now that we have the SND_ISN - - struct toedev *tdev; - - - tdev = toep->tp_toedev; - - inp_wlock(tp->t_inpcb); - - /* - * - * XXX need to add reference while we're manipulating - */ - so = lso = inp_inpcbtosocket(tp->t_inpcb); - - inp_wunlock(tp->t_inpcb); - - so_lock(so); - LIST_REMOVE(toep, synq_entry); - so_unlock(so); - - if (!syncache_expand_establish_req(req, &so, toep)) { - /* - * No entry - */ - CXGB_UNIMPLEMENTED(); - } - if (so == NULL) { - /* - * Couldn't create the socket - */ - CXGB_UNIMPLEMENTED(); - } - - tp = so_sototcpcb(so); - inp_wlock(tp->t_inpcb); - - snd = so_sockbuf_snd(so); - rcv = so_sockbuf_rcv(so); - - snd->sb_flags |= SB_NOCOALESCE; - rcv->sb_flags |= SB_NOCOALESCE; - - toep->tp_tp = tp; - toep->tp_flags = 0; - tp->t_toe = toep; - reset_wr_list(toep); - tp->rcv_wnd = select_rcv_wnd(tdev, so); - tp->rcv_nxt = toep->tp_copied_seq; - install_offload_ops(so); - - toep->tp_wr_max = toep->tp_wr_avail = TOM_TUNABLE(tdev, max_wrs); - toep->tp_wr_unacked = 0; - toep->tp_qset = G_QNUM(ntohl(m->m_pkthdr.csum_data)); - toep->tp_qset_idx = 0; - toep->tp_mtu_idx = select_mss(td, tp, toep->tp_l2t->neigh->rt_ifp->if_mtu); - - /* - * XXX Cancel any keep alive timer - */ - - make_established(so, ntohl(req->snd_isn), ntohs(req->tcp_opt)); - - /* - * XXX workaround for lack of syncache drop - */ - toepcb_release(toep); - inp_wunlock(tp->t_inpcb); - - CTR1(KTR_TOM, "do_pass_establish tid=%u", toep->tp_tid); - cxgb_log_tcb(cdev->adapter, toep->tp_tid); -#ifdef notyet - /* - * XXX not sure how these checks map to us - */ - if (unlikely(sk->sk_socket)) { // simultaneous opens only - sk->sk_state_change(sk); - sk_wake_async(so, 0, POLL_OUT); - } - /* - * The state for the new connection is now up to date. - * Next check if we should add the connection to the parent's - * accept queue. When the parent closes it resets connections - * on its SYN queue, so check if we are being reset. If so we - * don't need to do anything more, the coming ABORT_RPL will - * destroy this socket. Otherwise move the connection to the - * accept queue. - * - * Note that we reset the synq before closing the server so if - * we are not being reset the stid is still open. - */ - if (unlikely(!tp->forward_skb_hint)) { // removed from synq - __kfree_skb(skb); - goto unlock; - } -#endif - m_free(m); - - return (0); -} - /* * Fill in the right TID for CPL messages waiting in the out-of-order queue * and send them to the TOE. @@ -3745,48 +1623,70 @@ static void fixup_and_send_ofo(struct toepcb *toep) { struct mbuf *m; - struct toedev *tdev = toep->tp_toedev; - struct tcpcb *tp = toep->tp_tp; + struct toedev *tod = toep->tp_tod; + struct adapter *sc = tod->tod_softc; + struct inpcb *inp = toep->tp_inp; unsigned int tid = toep->tp_tid; - log(LOG_NOTICE, "fixup_and_send_ofo\n"); - - inp_lock_assert(tp->t_inpcb); + inp_lock_assert(inp); + while ((m = mbufq_dequeue(&toep->out_of_order_queue)) != NULL) { + struct ofld_hdr *oh = mtod(m, void *); /* * A variety of messages can be waiting but the fields we'll * be touching are common to all so any message type will do. */ - struct cpl_close_con_req *p = cplhdr(m); + struct cpl_close_con_req *p = (void *)(oh + 1); - p->wr.wr_lo = htonl(V_WR_TID(tid)); + p->wr.wrh_lo = htonl(V_WR_TID(tid)); OPCODE_TID(p) = htonl(MK_OPCODE_TID(p->ot.opcode, tid)); - cxgb_ofld_send(TOM_DATA(tdev)->cdev, m); + t3_offload_tx(sc, m); } } /* - * Updates socket state from an active establish CPL message. Runs with the - * socket lock held. + * Process a CPL_ACT_ESTABLISH message. */ -static void -socket_act_establish(struct socket *so, struct mbuf *m) +static int +do_act_establish(struct sge_qset *qs, struct rsp_desc *r, struct mbuf *m) { - struct cpl_act_establish *req = cplhdr(m); - u32 rcv_isn = ntohl(req->rcv_isn); /* real RCV_ISN + 1 */ - struct tcpcb *tp = so_sototcpcb(so); - struct toepcb *toep = tp->t_toe; - - if (__predict_false(tp->t_state != TCPS_SYN_SENT)) - log(LOG_ERR, "TID %u expected SYN_SENT, found %d\n", - toep->tp_tid, tp->t_state); + struct adapter *sc = qs->adap; + struct tom_data *td = sc->tom_softc; + struct cpl_act_establish *req = mtod(m, void *); + unsigned int tid = GET_TID(req); + unsigned int atid = G_PASS_OPEN_TID(ntohl(req->tos_tid)); + struct toepcb *toep = lookup_atid(&td->tid_maps, atid); + struct inpcb *inp = toep->tp_inp; + struct tcpcb *tp; + struct socket *so; - tp->ts_recent_age = ticks; - tp->irs = tp->rcv_wnd = tp->rcv_nxt = rcv_isn; - toep->tp_delack_seq = toep->tp_rcv_wup = toep->tp_copied_seq = tp->irs; + CTR3(KTR_CXGB, "%s: atid %u, tid %u", __func__, atid, tid); + + free_atid(&td->tid_maps, atid); + + INP_WLOCK(inp); + tp = intotcpcb(inp); + + KASSERT(toep->tp_qset == qs->idx, + ("%s qset mismatch %d %d", __func__, toep->tp_qset, qs->idx)); + KASSERT(toep->tp_tid == atid, + ("%s atid mismatch %d %d", __func__, toep->tp_tid, atid)); + + toep->tp_tid = tid; + insert_tid(td, toep, tid); + + if (inp->inp_flags & INP_DROPPED) { + /* socket closed by the kernel before hw told us it connected */ + send_reset(toep); + goto done; + } + + KASSERT(tp->t_state == TCPS_SYN_SENT, + ("TID %u expected TCPS_SYN_SENT, found %d.", tid, tp->t_state)); + + so = inp->inp_socket; + make_established(so, req->snd_isn, req->rcv_isn, req->tcp_opt); - make_established(so, ntohl(req->snd_isn), ntohs(req->tcp_opt)); - /* * Now that we finally have a TID send any CPL messages that we had to * defer for lack of a TID. @@ -3794,80 +1694,9 @@ socket_act_establish(struct socket *so, struct mbuf *m) if (mbufq_len(&toep->out_of_order_queue)) fixup_and_send_ofo(toep); - if (__predict_false(so_state_get(so) & SS_NOFDREF)) { - /* - * XXX does this even make sense? - */ - so_sorwakeup(so); - } - m_free(m); -#ifdef notyet -/* - * XXX assume no write requests permitted while socket connection is - * incomplete - */ - /* - * Currently the send queue must be empty at this point because the - * socket layer does not send anything before a connection is - * established. To be future proof though we handle the possibility - * that there are pending buffers to send (either TX_DATA or - * CLOSE_CON_REQ). First we need to adjust the sequence number of the - * buffers according to the just learned write_seq, and then we send - * them on their way. - */ - fixup_pending_writeq_buffers(sk); - if (t3_push_frames(so, 1)) - sk->sk_write_space(sk); -#endif - - toep->tp_state = tp->t_state; - KMOD_TCPSTAT_INC(tcps_connects); - -} - -/* - * Process a CPL_ACT_ESTABLISH message. - */ -static int -do_act_establish(struct t3cdev *cdev, struct mbuf *m, void *ctx) -{ - struct cpl_act_establish *req = cplhdr(m); - unsigned int tid = GET_TID(req); - unsigned int atid = G_PASS_OPEN_TID(ntohl(req->tos_tid)); - struct toepcb *toep = (struct toepcb *)ctx; - struct tcpcb *tp = toep->tp_tp; - struct socket *so; - struct toedev *tdev; - struct tom_data *d; - - if (tp == NULL) { - free_atid(cdev, atid); - return (0); - } - inp_wlock(tp->t_inpcb); - - /* - * XXX - */ - so = inp_inpcbtosocket(tp->t_inpcb); - tdev = toep->tp_toedev; /* blow up here if link was down */ - d = TOM_DATA(tdev); - - /* - * It's OK if the TID is currently in use, the owning socket may have - * backlogged its last CPL message(s). Just take it away. - */ - toep->tp_tid = tid; - toep->tp_tp = tp; - so_insert_tid(d, toep, tid); - free_atid(cdev, atid); - toep->tp_qset = G_QNUM(ntohl(m->m_pkthdr.csum_data)); - - socket_act_establish(so, m); - inp_wunlock(tp->t_inpcb); - CTR1(KTR_TOM, "do_act_establish tid=%u", toep->tp_tid); - cxgb_log_tcb(cdev->adapter, toep->tp_tid); - +done: + INP_WUNLOCK(inp); + m_freem(m); return (0); } @@ -3878,97 +1707,66 @@ do_act_establish(struct t3cdev *cdev, struct mbuf *m, void *ctx) static void wr_ack(struct toepcb *toep, struct mbuf *m) { - struct tcpcb *tp = toep->tp_tp; - struct cpl_wr_ack *hdr = cplhdr(m); + struct inpcb *inp = toep->tp_inp; + struct tcpcb *tp; + struct cpl_wr_ack *hdr = mtod(m, void *); struct socket *so; unsigned int credits = ntohs(hdr->credits); u32 snd_una = ntohl(hdr->snd_una); int bytes = 0; struct sockbuf *snd; - - CTR2(KTR_SPARE2, "wr_ack: snd_una=%u credits=%d", snd_una, credits); + struct mbuf *p; + struct ofld_hdr *oh; - inp_wlock(tp->t_inpcb); - so = inp_inpcbtosocket(tp->t_inpcb); + inp_wlock(inp); + tp = intotcpcb(inp); + so = inp->inp_socket; toep->tp_wr_avail += credits; if (toep->tp_wr_unacked > toep->tp_wr_max - toep->tp_wr_avail) toep->tp_wr_unacked = toep->tp_wr_max - toep->tp_wr_avail; while (credits) { - struct mbuf *p = peek_wr(toep); - + p = peek_wr(toep); + if (__predict_false(!p)) { + CTR5(KTR_CXGB, "%s: %u extra WR_ACK credits, " + "tid %u, state %u, wr_avail %u", __func__, credits, + toep->tp_tid, tp->t_state, toep->tp_wr_avail); + log(LOG_ERR, "%u WR_ACK credits for TID %u with " "nothing pending, state %u wr_avail=%u\n", credits, toep->tp_tid, tp->t_state, toep->tp_wr_avail); break; } - CTR2(KTR_TOM, - "wr_ack: p->credits=%d p->bytes=%d", - p->m_pkthdr.csum_data, p->m_pkthdr.len); - KASSERT(p->m_pkthdr.csum_data != 0, - ("empty request still on list")); - if (__predict_false(credits < p->m_pkthdr.csum_data)) { + oh = mtod(p, struct ofld_hdr *); -#if DEBUG_WR > 1 - struct tx_data_wr *w = cplhdr(p); - log(LOG_ERR, - "TID %u got %u WR credits, need %u, len %u, " - "main body %u, frags %u, seq # %u, ACK una %u," - " ACK nxt %u, WR_AVAIL %u, WRs pending %u\n", - toep->tp_tid, credits, p->csum, p->len, - p->len - p->data_len, skb_shinfo(p)->nr_frags, - ntohl(w->sndseq), snd_una, ntohl(hdr->snd_nxt), - toep->tp_wr_avail, count_pending_wrs(tp) - credits); -#endif - p->m_pkthdr.csum_data -= credits; - break; - } else { - dequeue_wr(toep); - credits -= p->m_pkthdr.csum_data; - bytes += p->m_pkthdr.len; - CTR3(KTR_TOM, - "wr_ack: done with wr of %d bytes remain credits=%d wr credits=%d", - p->m_pkthdr.len, credits, p->m_pkthdr.csum_data); - - m_free(p); - } + KASSERT(credits >= G_HDR_NDESC(oh->flags), + ("%s: partial credits? %d %d", __func__, credits, + G_HDR_NDESC(oh->flags))); + + dequeue_wr(toep); + credits -= G_HDR_NDESC(oh->flags); + bytes += oh->plen; + + if (oh->flags & F_HDR_SGL) + sglist_free(oh->sgl); + m_freem(p); } -#if DEBUG_WR - check_wr_invariants(tp); -#endif - - if (__predict_false(SEQ_LT(snd_una, tp->snd_una))) { -#if VALIDATE_SEQ - struct tom_data *d = TOM_DATA(TOE_DEV(so)); - - log(LOG_ERR "%s: unexpected sequence # %u in WR_ACK " - "for TID %u, snd_una %u\n", (&d->tdev)->name, snd_una, - toep->tp_tid, tp->snd_una); -#endif + if (__predict_false(SEQ_LT(snd_una, tp->snd_una))) goto out_free; - } if (tp->snd_una != snd_una) { tp->snd_una = snd_una; - tp->ts_recent_age = ticks; -#ifdef notyet - /* - * Keep ARP entry "minty fresh" - */ - dst_confirm(sk->sk_dst_cache); -#endif + tp->ts_recent_age = tcp_ts_getticks(); if (tp->snd_una == tp->snd_nxt) toep->tp_flags &= ~TP_TX_WAIT_IDLE; } snd = so_sockbuf_snd(so); if (bytes) { - CTR1(KTR_SPARE2, "wr_ack: sbdrop(%d)", bytes); - snd = so_sockbuf_snd(so); - sockbuf_lock(snd); + SOCKBUF_LOCK(snd); sbdrop_locked(snd, bytes); so_sowwakeup_locked(so); } @@ -3978,142 +1776,25 @@ wr_ack(struct toepcb *toep, struct mbuf *m) out_free: inp_wunlock(tp->t_inpcb); - m_free(m); + m_freem(m); } /* * Handler for TX_DATA_ACK CPL messages. */ static int -do_wr_ack(struct t3cdev *dev, struct mbuf *m, void *ctx) +do_wr_ack(struct sge_qset *qs, struct rsp_desc *r, struct mbuf *m) { - struct toepcb *toep = (struct toepcb *)ctx; + struct adapter *sc = qs->adap; + struct tom_data *td = sc->tom_softc; + struct cpl_wr_ack *hdr = mtod(m, void *); + unsigned int tid = GET_TID(hdr); + struct toepcb *toep = lookup_tid(&td->tid_maps, tid); - VALIDATE_SOCK(so); + /* XXX bad race */ + if (toep) + wr_ack(toep, m); - wr_ack(toep, m); - return 0; -} - -/* - * Handler for TRACE_PKT CPL messages. Just sink these packets. - */ -static int -do_trace_pkt(struct t3cdev *dev, struct mbuf *m, void *ctx) -{ - m_freem(m); - return 0; -} - -/* - * Reset a connection that is on a listener's SYN queue or accept queue, - * i.e., one that has not had a struct socket associated with it. - * Must be called from process context. - * - * Modeled after code in inet_csk_listen_stop(). - */ -static void -t3_reset_listen_child(struct socket *child) -{ - struct tcpcb *tp = so_sototcpcb(child); - - t3_send_reset(tp->t_toe); -} - - -static void -t3_child_disconnect(struct socket *so, void *arg) -{ - struct tcpcb *tp = so_sototcpcb(so); - - if (tp->t_flags & TF_TOE) { - inp_wlock(tp->t_inpcb); - t3_reset_listen_child(so); - inp_wunlock(tp->t_inpcb); - } -} - -/* - * Disconnect offloaded established but not yet accepted connections sitting - * on a server's accept_queue. We just send an ABORT_REQ at this point and - * finish off the disconnect later as we may need to wait for the ABORT_RPL. - */ -void -t3_disconnect_acceptq(struct socket *listen_so) -{ - - so_lock(listen_so); - so_listeners_apply_all(listen_so, t3_child_disconnect, NULL); - so_unlock(listen_so); -} - -/* - * Reset offloaded connections sitting on a server's syn queue. As above - * we send ABORT_REQ and finish off when we get ABORT_RPL. - */ - -void -t3_reset_synq(struct listen_ctx *lctx) -{ - struct toepcb *toep; - - so_lock(lctx->lso); - while (!LIST_EMPTY(&lctx->synq_head)) { - toep = LIST_FIRST(&lctx->synq_head); - LIST_REMOVE(toep, synq_entry); - toep->tp_tp = NULL; - t3_send_reset(toep); - cxgb_remove_tid(TOEP_T3C_DEV(toep), toep, toep->tp_tid); - toepcb_release(toep); - } - so_unlock(lctx->lso); -} - - -int -t3_setup_ppods(struct toepcb *toep, const struct ddp_gather_list *gl, - unsigned int nppods, unsigned int tag, unsigned int maxoff, - unsigned int pg_off, unsigned int color) -{ - unsigned int i, j, pidx; - struct pagepod *p; - struct mbuf *m; - struct ulp_mem_io *req; - unsigned int tid = toep->tp_tid; - const struct tom_data *td = TOM_DATA(toep->tp_toedev); - unsigned int ppod_addr = tag * PPOD_SIZE + td->ddp_llimit; - - CTR6(KTR_TOM, "t3_setup_ppods(gl=%p nppods=%u tag=%u maxoff=%u pg_off=%u color=%u)", - gl, nppods, tag, maxoff, pg_off, color); - - for (i = 0; i < nppods; ++i) { - m = m_gethdr_nofail(sizeof(*req) + PPOD_SIZE); - m_set_priority(m, mkprio(CPL_PRIORITY_CONTROL, toep)); - req = mtod(m, struct ulp_mem_io *); - m->m_pkthdr.len = m->m_len = sizeof(*req) + PPOD_SIZE; - req->wr.wr_hi = htonl(V_WR_OP(FW_WROPCODE_BYPASS)); - req->wr.wr_lo = 0; - req->cmd_lock_addr = htonl(V_ULP_MEMIO_ADDR(ppod_addr >> 5) | - V_ULPTX_CMD(ULP_MEM_WRITE)); - req->len = htonl(V_ULP_MEMIO_DATA_LEN(PPOD_SIZE / 32) | - V_ULPTX_NFLITS(PPOD_SIZE / 8 + 1)); - - p = (struct pagepod *)(req + 1); - if (__predict_false(i < nppods - NUM_SENTINEL_PPODS)) { - p->pp_vld_tid = htonl(F_PPOD_VALID | V_PPOD_TID(tid)); - p->pp_pgsz_tag_color = htonl(V_PPOD_TAG(tag) | - V_PPOD_COLOR(color)); - p->pp_max_offset = htonl(maxoff); - p->pp_page_offset = htonl(pg_off); - p->pp_rsvd = 0; - for (pidx = 4 * i, j = 0; j < 5; ++j, ++pidx) - p->pp_addr[j] = pidx < gl->dgl_nelem ? - htobe64(VM_PAGE_TO_PHYS(gl->dgl_pages[pidx])) : 0; - } else - p->pp_vld_tid = 0; /* mark sentinel page pods invalid */ - send_or_defer(toep, m, 0); - ppod_addr += PPOD_SIZE; - } return (0); } @@ -4153,10 +1834,7 @@ mk_set_tcb_field_ulp(struct cpl_set_tcb_field *req, unsigned int tid, unsigned int word, uint64_t mask, uint64_t val) { struct ulp_txpkt *txpkt = (struct ulp_txpkt *)req; - - CTR4(KTR_TCB, "mk_set_tcb_field_ulp(tid=%u word=0x%x mask=%jx val=%jx", - tid, word, mask, val); - + txpkt->cmd_dest = htonl(V_ULPTX_CMD(ULP_TXPKT)); txpkt->len = htonl(V_ULPTX_NFLITS(sizeof(*req) / 8)); OPCODE_TID(req) = htonl(MK_OPCODE_TID(CPL_SET_TCB_FIELD, tid)); @@ -4167,294 +1845,19 @@ mk_set_tcb_field_ulp(struct cpl_set_tcb_field *req, unsigned int tid, req->val = htobe64(val); } -/* - * Build a CPL_RX_DATA_ACK message as payload of a ULP_TX_PKT command. - */ -static void -mk_rx_data_ack_ulp(struct toepcb *toep, struct cpl_rx_data_ack *ack, - unsigned int tid, unsigned int credits) -{ - struct ulp_txpkt *txpkt = (struct ulp_txpkt *)ack; - - txpkt->cmd_dest = htonl(V_ULPTX_CMD(ULP_TXPKT)); - txpkt->len = htonl(V_ULPTX_NFLITS(sizeof(*ack) / 8)); - OPCODE_TID(ack) = htonl(MK_OPCODE_TID(CPL_RX_DATA_ACK, tid)); - ack->credit_dack = htonl(F_RX_MODULATE | F_RX_DACK_CHANGE | - V_RX_DACK_MODE(TOM_TUNABLE(toep->tp_toedev, delack)) | - V_RX_CREDITS(credits)); -} - void -t3_cancel_ddpbuf(struct toepcb *toep, unsigned int bufidx) +t3_init_cpl_io(struct adapter *sc) { - unsigned int wrlen; - struct mbuf *m; - struct work_request_hdr *wr; - struct cpl_barrier *lock; - struct cpl_set_tcb_field *req; - struct cpl_get_tcb *getreq; - struct ddp_state *p = &toep->tp_ddp_state; - -#if 0 - SOCKBUF_LOCK_ASSERT(&toeptoso(toep)->so_rcv); -#endif - wrlen = sizeof(*wr) + sizeof(*req) + 2 * sizeof(*lock) + - sizeof(*getreq); - m = m_gethdr_nofail(wrlen); - m_set_priority(m, mkprio(CPL_PRIORITY_CONTROL, toep)); - wr = mtod(m, struct work_request_hdr *); - bzero(wr, wrlen); - - wr->wr_hi = htonl(V_WR_OP(FW_WROPCODE_BYPASS)); - m->m_pkthdr.len = m->m_len = wrlen; - - lock = (struct cpl_barrier *)(wr + 1); - mk_cpl_barrier_ulp(lock); - - req = (struct cpl_set_tcb_field *)(lock + 1); - - CTR1(KTR_TCB, "t3_cancel_ddpbuf(bufidx=%u)", bufidx); - - /* Hmmm, not sure if this actually a good thing: reactivating - * the other buffer might be an issue if it has been completed - * already. However, that is unlikely, since the fact that the UBUF - * is not completed indicates that there is no oustanding data. - */ - if (bufidx == 0) - mk_set_tcb_field_ulp(req, toep->tp_tid, W_TCB_RX_DDP_FLAGS, - V_TF_DDP_ACTIVE_BUF(1) | - V_TF_DDP_BUF0_VALID(1), - V_TF_DDP_ACTIVE_BUF(1)); - else - mk_set_tcb_field_ulp(req, toep->tp_tid, W_TCB_RX_DDP_FLAGS, - V_TF_DDP_ACTIVE_BUF(1) | - V_TF_DDP_BUF1_VALID(1), 0); - - getreq = (struct cpl_get_tcb *)(req + 1); - mk_get_tcb_ulp(getreq, toep->tp_tid, toep->tp_qset); - - mk_cpl_barrier_ulp((struct cpl_barrier *)(getreq + 1)); - - /* Keep track of the number of oustanding CPL_GET_TCB requests - */ - p->get_tcb_count++; - -#ifdef T3_TRACE - T3_TRACE1(TIDTB(so), - "t3_cancel_ddpbuf: bufidx %u", bufidx); -#endif - cxgb_ofld_send(TOEP_T3C_DEV(toep), m); + t3_register_cpl_handler(sc, CPL_ACT_ESTABLISH, do_act_establish); + t3_register_cpl_handler(sc, CPL_ACT_OPEN_RPL, do_act_open_rpl); + t3_register_cpl_handler(sc, CPL_RX_URG_NOTIFY, do_rx_urg_notify); + t3_register_cpl_handler(sc, CPL_RX_DATA, do_rx_data); + t3_register_cpl_handler(sc, CPL_TX_DMA_ACK, do_wr_ack); + t3_register_cpl_handler(sc, CPL_PEER_CLOSE, do_peer_close); + t3_register_cpl_handler(sc, CPL_ABORT_REQ_RSS, do_abort_req); + t3_register_cpl_handler(sc, CPL_ABORT_RPL_RSS, do_abort_rpl); + t3_register_cpl_handler(sc, CPL_CLOSE_CON_RPL, do_close_con_rpl); + t3_register_cpl_handler(sc, CPL_SMT_WRITE_RPL, do_smt_write_rpl); + t3_register_cpl_handler(sc, CPL_SET_TCB_RPL, do_set_tcb_rpl); } - -/** - * t3_overlay_ddpbuf - overlay an existing DDP buffer with a new one - * @sk: the socket associated with the buffers - * @bufidx: index of HW DDP buffer (0 or 1) - * @tag0: new tag for HW buffer 0 - * @tag1: new tag for HW buffer 1 - * @len: new length for HW buf @bufidx - * - * Sends a compound WR to overlay a new DDP buffer on top of an existing - * buffer by changing the buffer tag and length and setting the valid and - * active flag accordingly. The caller must ensure the new buffer is at - * least as big as the existing one. Since we typically reprogram both HW - * buffers this function sets both tags for convenience. Read the TCB to - * determine how made data was written into the buffer before the overlay - * took place. - */ -void -t3_overlay_ddpbuf(struct toepcb *toep, unsigned int bufidx, unsigned int tag0, - unsigned int tag1, unsigned int len) -{ - unsigned int wrlen; - struct mbuf *m; - struct work_request_hdr *wr; - struct cpl_get_tcb *getreq; - struct cpl_set_tcb_field *req; - struct ddp_state *p = &toep->tp_ddp_state; - - CTR4(KTR_TCB, "t3_setup_ppods(bufidx=%u tag0=%u tag1=%u len=%u)", - bufidx, tag0, tag1, len); -#if 0 - SOCKBUF_LOCK_ASSERT(&toeptoso(toep)->so_rcv); -#endif - wrlen = sizeof(*wr) + 3 * sizeof(*req) + sizeof(*getreq); - m = m_gethdr_nofail(wrlen); - m_set_priority(m, mkprio(CPL_PRIORITY_CONTROL, toep)); - wr = mtod(m, struct work_request_hdr *); - m->m_pkthdr.len = m->m_len = wrlen; - bzero(wr, wrlen); - - - /* Set the ATOMIC flag to make sure that TP processes the following - * CPLs in an atomic manner and no wire segments can be interleaved. - */ - wr->wr_hi = htonl(V_WR_OP(FW_WROPCODE_BYPASS) | F_WR_ATOMIC); - req = (struct cpl_set_tcb_field *)(wr + 1); - mk_set_tcb_field_ulp(req, toep->tp_tid, W_TCB_RX_DDP_BUF0_TAG, - V_TCB_RX_DDP_BUF0_TAG(M_TCB_RX_DDP_BUF0_TAG) | - V_TCB_RX_DDP_BUF1_TAG(M_TCB_RX_DDP_BUF1_TAG) << 32, - V_TCB_RX_DDP_BUF0_TAG(tag0) | - V_TCB_RX_DDP_BUF1_TAG((uint64_t)tag1) << 32); - req++; - if (bufidx == 0) { - mk_set_tcb_field_ulp(req, toep->tp_tid, W_TCB_RX_DDP_BUF0_LEN, - V_TCB_RX_DDP_BUF0_LEN(M_TCB_RX_DDP_BUF0_LEN), - V_TCB_RX_DDP_BUF0_LEN((uint64_t)len)); - req++; - mk_set_tcb_field_ulp(req, toep->tp_tid, W_TCB_RX_DDP_FLAGS, - V_TF_DDP_PUSH_DISABLE_0(1) | - V_TF_DDP_BUF0_VALID(1) | V_TF_DDP_ACTIVE_BUF(1), - V_TF_DDP_PUSH_DISABLE_0(0) | - V_TF_DDP_BUF0_VALID(1)); - } else { - mk_set_tcb_field_ulp(req, toep->tp_tid, W_TCB_RX_DDP_BUF1_LEN, - V_TCB_RX_DDP_BUF1_LEN(M_TCB_RX_DDP_BUF1_LEN), - V_TCB_RX_DDP_BUF1_LEN((uint64_t)len)); - req++; - mk_set_tcb_field_ulp(req, toep->tp_tid, W_TCB_RX_DDP_FLAGS, - V_TF_DDP_PUSH_DISABLE_1(1) | - V_TF_DDP_BUF1_VALID(1) | V_TF_DDP_ACTIVE_BUF(1), - V_TF_DDP_PUSH_DISABLE_1(0) | - V_TF_DDP_BUF1_VALID(1) | V_TF_DDP_ACTIVE_BUF(1)); - } - - getreq = (struct cpl_get_tcb *)(req + 1); - mk_get_tcb_ulp(getreq, toep->tp_tid, toep->tp_qset); - - /* Keep track of the number of oustanding CPL_GET_TCB requests - */ - p->get_tcb_count++; - -#ifdef T3_TRACE - T3_TRACE4(TIDTB(sk), - "t3_overlay_ddpbuf: bufidx %u tag0 %u tag1 %u " - "len %d", - bufidx, tag0, tag1, len); #endif - cxgb_ofld_send(TOEP_T3C_DEV(toep), m); -} - -/* - * Sends a compound WR containing all the CPL messages needed to program the - * two HW DDP buffers, namely optionally setting up the length and offset of - * each buffer, programming the DDP flags, and optionally sending RX_DATA_ACK. - */ -void -t3_setup_ddpbufs(struct toepcb *toep, unsigned int len0, unsigned int offset0, - unsigned int len1, unsigned int offset1, - uint64_t ddp_flags, uint64_t flag_mask, int modulate) -{ - unsigned int wrlen; - struct mbuf *m; - struct work_request_hdr *wr; - struct cpl_set_tcb_field *req; - - CTR6(KTR_TCB, "t3_setup_ddpbufs(len0=%u offset0=%u len1=%u offset1=%u ddp_flags=0x%08x%08x ", - len0, offset0, len1, offset1, ddp_flags >> 32, ddp_flags & 0xffffffff); - -#if 0 - SOCKBUF_LOCK_ASSERT(&toeptoso(toep)->so_rcv); -#endif - wrlen = sizeof(*wr) + sizeof(*req) + (len0 ? sizeof(*req) : 0) + - (len1 ? sizeof(*req) : 0) + - (modulate ? sizeof(struct cpl_rx_data_ack) : 0); - m = m_gethdr_nofail(wrlen); - m_set_priority(m, mkprio(CPL_PRIORITY_CONTROL, toep)); - wr = mtod(m, struct work_request_hdr *); - bzero(wr, wrlen); - - wr->wr_hi = htonl(V_WR_OP(FW_WROPCODE_BYPASS)); - m->m_pkthdr.len = m->m_len = wrlen; - - req = (struct cpl_set_tcb_field *)(wr + 1); - if (len0) { /* program buffer 0 offset and length */ - mk_set_tcb_field_ulp(req, toep->tp_tid, W_TCB_RX_DDP_BUF0_OFFSET, - V_TCB_RX_DDP_BUF0_OFFSET(M_TCB_RX_DDP_BUF0_OFFSET) | - V_TCB_RX_DDP_BUF0_LEN(M_TCB_RX_DDP_BUF0_LEN), - V_TCB_RX_DDP_BUF0_OFFSET((uint64_t)offset0) | - V_TCB_RX_DDP_BUF0_LEN((uint64_t)len0)); - req++; - } - if (len1) { /* program buffer 1 offset and length */ - mk_set_tcb_field_ulp(req, toep->tp_tid, W_TCB_RX_DDP_BUF1_OFFSET, - V_TCB_RX_DDP_BUF1_OFFSET(M_TCB_RX_DDP_BUF1_OFFSET) | - V_TCB_RX_DDP_BUF1_LEN(M_TCB_RX_DDP_BUF1_LEN) << 32, - V_TCB_RX_DDP_BUF1_OFFSET((uint64_t)offset1) | - V_TCB_RX_DDP_BUF1_LEN((uint64_t)len1) << 32); - req++; - } - - mk_set_tcb_field_ulp(req, toep->tp_tid, W_TCB_RX_DDP_FLAGS, flag_mask, - ddp_flags); - - if (modulate) { - mk_rx_data_ack_ulp(toep, - (struct cpl_rx_data_ack *)(req + 1), toep->tp_tid, - toep->tp_copied_seq - toep->tp_rcv_wup); - toep->tp_rcv_wup = toep->tp_copied_seq; - } - -#ifdef T3_TRACE - T3_TRACE5(TIDTB(sk), - "t3_setup_ddpbufs: len0 %u len1 %u ddp_flags 0x%08x%08x " - "modulate %d", - len0, len1, ddp_flags >> 32, ddp_flags & 0xffffffff, - modulate); -#endif - - cxgb_ofld_send(TOEP_T3C_DEV(toep), m); -} - -void -t3_init_wr_tab(unsigned int wr_len) -{ - int i; - - if (mbuf_wrs[1]) /* already initialized */ - return; - - for (i = 1; i < ARRAY_SIZE(mbuf_wrs); i++) { - int sgl_len = (3 * i) / 2 + (i & 1); - - sgl_len += 3; - mbuf_wrs[i] = sgl_len <= wr_len ? - 1 : 1 + (sgl_len - 2) / (wr_len - 1); - } - - wrlen = wr_len * 8; -} - -int -t3_init_cpl_io(void) -{ -#ifdef notyet - tcphdr_skb = alloc_skb(sizeof(struct tcphdr), GFP_KERNEL); - if (!tcphdr_skb) { - log(LOG_ERR, - "Chelsio TCP offload: can't allocate sk_buff\n"); - return -1; - } - skb_put(tcphdr_skb, sizeof(struct tcphdr)); - tcphdr_skb->h.raw = tcphdr_skb->data; - memset(tcphdr_skb->data, 0, tcphdr_skb->len); -#endif - - t3tom_register_cpl_handler(CPL_ACT_ESTABLISH, do_act_establish); - t3tom_register_cpl_handler(CPL_ACT_OPEN_RPL, do_act_open_rpl); - t3tom_register_cpl_handler(CPL_TX_DMA_ACK, do_wr_ack); - t3tom_register_cpl_handler(CPL_RX_DATA, do_rx_data); - t3tom_register_cpl_handler(CPL_CLOSE_CON_RPL, do_close_con_rpl); - t3tom_register_cpl_handler(CPL_PEER_CLOSE, do_peer_close); - t3tom_register_cpl_handler(CPL_PASS_ESTABLISH, do_pass_establish); - t3tom_register_cpl_handler(CPL_PASS_ACCEPT_REQ, do_pass_accept_req); - t3tom_register_cpl_handler(CPL_ABORT_REQ_RSS, do_abort_req); - t3tom_register_cpl_handler(CPL_ABORT_RPL_RSS, do_abort_rpl); - t3tom_register_cpl_handler(CPL_RX_DATA_DDP, do_rx_data_ddp); - t3tom_register_cpl_handler(CPL_RX_DDP_COMPLETE, do_rx_ddp_complete); - t3tom_register_cpl_handler(CPL_RX_URG_NOTIFY, do_rx_urg_notify); - t3tom_register_cpl_handler(CPL_TRACE_PKT, do_trace_pkt); - t3tom_register_cpl_handler(CPL_GET_TCB_RPL, do_get_tcb_rpl); - return (0); -} - diff --git a/sys/dev/cxgb/ulp/tom/cxgb_cpl_socket.c b/sys/dev/cxgb/ulp/tom/cxgb_cpl_socket.c deleted file mode 100644 index bb0015f3998c..000000000000 --- a/sys/dev/cxgb/ulp/tom/cxgb_cpl_socket.c +++ /dev/null @@ -1,1034 +0,0 @@ -/************************************************************************** - -Copyright (c) 2007-2008, Chelsio Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2. Neither the name of the Chelsio Corporation nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -***************************************************************************/ - -#include -__FBSDID("$FreeBSD$"); - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -#include -#include - -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include - - -static int (*pru_sosend)(struct socket *so, struct sockaddr *addr, - struct uio *uio, struct mbuf *top, struct mbuf *control, - int flags, struct thread *td); - -static int (*pru_soreceive)(struct socket *so, struct sockaddr **paddr, - struct uio *uio, struct mbuf **mp0, struct mbuf **controlp, - int *flagsp); - -#define TMP_IOV_MAX 16 -#ifndef PG_FRAME -#define PG_FRAME ~PAGE_MASK -#endif -#define SBLOCKWAIT(f) (((f) & MSG_DONTWAIT) ? M_NOWAIT : M_WAITOK) - -void -t3_init_socket_ops(void) -{ - struct protosw *prp; - - prp = pffindtype(AF_INET, SOCK_STREAM); - pru_sosend = prp->pr_usrreqs->pru_sosend; - pru_soreceive = prp->pr_usrreqs->pru_soreceive; -} - -struct cxgb_dma_info { - size_t cdi_mapped; - int cdi_nsegs; - bus_dma_segment_t *cdi_segs; - -}; - -static void -cxgb_dma_callback(void *arg, bus_dma_segment_t *segs, int nsegs, - bus_size_t mapsize, int error) -{ - struct cxgb_dma_info *cdi = arg; - - cdi->cdi_mapped = mapsize; - cdi->cdi_nsegs = nsegs; - cdi->cdi_segs = segs; -} - -static void -iov_adj(struct iovec **iov, int *iovcnt, size_t count) -{ - struct iovec *iovtmp; - int iovcnttmp; - caddr_t ptmp; - - if (count > 0) { - iovtmp = *iov; - iovcnttmp = *iovcnt; - while (count > 0) { - if (count < iovtmp->iov_len) { - ptmp = iovtmp->iov_base; - ptmp += count; - iovtmp->iov_base = ptmp; - iovtmp->iov_len -= count; - break; - } else - count -= iovtmp->iov_len; - iovtmp++; - iovcnttmp--; - } - *iov = iovtmp; - *iovcnt = iovcnttmp; - } else if (count < 0) { - iovtmp = &(*iov)[*iovcnt - 1]; - iovcnttmp = *iovcnt; - while (count < 0) { - if (-count < iovtmp->iov_len) { - iovtmp->iov_len += count; - break; - } else - count += iovtmp->iov_len; - iovtmp--; - iovcnttmp--; - } - *iovcnt = iovcnttmp; - } -} - -static void -cxgb_zero_copy_free(void *cl, void *arg) -{ - struct mbuf_vec *mv; - struct mbuf *m = (struct mbuf *)cl; - - mv = mtomv(m); - /* - * Physical addresses, don't try to free should be unheld separately from sbdrop - * - */ - mv->mv_count = 0; - m_free_iovec(m, m->m_type); -} - - -static int -cxgb_hold_iovec_pages(struct uio *uio, vm_page_t *m, int *held, vm_prot_t prot) -{ - struct iovec *iov = uio->uio_iov; - int iovcnt = uio->uio_iovcnt; - int err, i, count, totcount, maxcount, totbytes, npages, curbytes; - uint64_t start, end; - vm_page_t *mp; - vm_map_t map; - - map = &uio->uio_td->td_proc->p_vmspace->vm_map; - totbytes = totcount = 0; - maxcount = *held; - - mp = m; - for (totcount = i = 0; (i < iovcnt) && (totcount < maxcount); i++, iov++) { - count = maxcount - totcount; - - start = (uintptr_t)iov->iov_base; - end = (uintptr_t)((caddr_t)iov->iov_base + iov->iov_len); - start &= PG_FRAME; - end += PAGE_MASK; - end &= PG_FRAME; - npages = (end - start) >> PAGE_SHIFT; - - count = min(count, npages); - - /* The following return value is not used. XXX */ - err = vm_fault_quick_hold_pages(map, - (vm_offset_t)iov->iov_base, iov->iov_len, prot, mp, count); - mp += count; - totcount += count; - curbytes = iov->iov_len; - if (count != npages) - curbytes = count*PAGE_SIZE - (((uintptr_t)iov->iov_base)&PAGE_MASK); - totbytes += curbytes; - } - uio->uio_resid -= totbytes; - - return (0); -} - -/* - * Returns whether a connection should enable DDP. This happens when all of - * the following conditions are met: - * - the connection's ULP mode is DDP - * - DDP is not already enabled - * - the last receive was above the DDP threshold - * - receive buffers are in user space - * - receive side isn't shutdown (handled by caller) - * - the connection's receive window is big enough so that sizable buffers - * can be posted without closing the window in the middle of DDP (checked - * when the connection is offloaded) - */ -static int -so_should_ddp(const struct toepcb *toep, int last_recv_len) -{ - - DPRINTF("ulp_mode=%d last_recv_len=%d ddp_thresh=%d rcv_wnd=%ld ddp_copy_limit=%d\n", - toep->tp_ulp_mode, last_recv_len, TOM_TUNABLE(toep->tp_toedev, ddp_thres), - toep->tp_tp->rcv_wnd, (TOM_TUNABLE(toep->tp_toedev, ddp_copy_limit) + DDP_RSVD_WIN)); - - return toep->tp_ulp_mode == ULP_MODE_TCPDDP && (toep->tp_ddp_state.kbuf[0] == NULL) && - last_recv_len > TOM_TUNABLE(toep->tp_toedev, ddp_thres) && - toep->tp_tp->rcv_wnd > - (TOM_TUNABLE(toep->tp_toedev, ddp_copy_limit) + DDP_RSVD_WIN); -} - -static inline int -is_ddp(const struct mbuf *m) -{ - return ((m->m_flags & M_DDP) != 0); -} - -static inline int -is_ddp_psh(const struct mbuf *m) -{ - return ((is_ddp(m) && (m->m_pkthdr.csum_flags & DDP_BF_PSH)) != 0); -} - -static int -m_uiomove(const struct mbuf *m, int offset, int len, struct uio *uio) -{ - int curlen, startlen, resid_init, err = 0; - caddr_t buf; - - DPRINTF("m_uiomove(m=%p, offset=%d, len=%d, ...)\n", - m, offset, len); - - startlen = len; - resid_init = uio->uio_resid; - while (m && len) { - buf = mtod(m, caddr_t); - curlen = m->m_len; - if (offset && (offset < curlen)) { - curlen -= offset; - buf += offset; - offset = 0; - } else if (offset) { - offset -= curlen; - m = m->m_next; - continue; - } - err = uiomove(buf, min(len, curlen), uio); - if (err) { - printf("uiomove returned %d\n", err); - return (err); - } - - len -= min(len, curlen); - m = m->m_next; - } - DPRINTF("copied %d bytes - resid_init=%d uio_resid=%d\n", - startlen - len, resid_init, uio->uio_resid); - return (err); -} - -/* - * Copy data from an sk_buff to an iovec. Deals with RX_DATA, which carry the - * data in the sk_buff body, and with RX_DATA_DDP, which place the data in a - * DDP buffer. - */ -static inline int -copy_data(const struct mbuf *m, int offset, int len, struct uio *uio) -{ - struct iovec *to = uio->uio_iov; - int err; - - if (__predict_true(!is_ddp(m))) /* RX_DATA */ - return m_uiomove(m, offset, len, uio); - if (__predict_true(m->m_ddp_flags & DDP_BF_NOCOPY)) { /* user DDP */ - to->iov_len -= len; - to->iov_base = ((caddr_t)to->iov_base) + len; - uio->uio_iov = to; - uio->uio_resid -= len; - return (0); - } - err = t3_ddp_copy(m, offset, uio, len); /* kernel DDP */ - return (err); -} - -static void -cxgb_wait_dma_completion(struct toepcb *toep) -{ - struct rwlock *lock; - - lock = &toep->tp_tp->t_inpcb->inp_lock; - inp_wlock(toep->tp_tp->t_inpcb); - cv_wait_unlock(&toep->tp_cv, lock); -} - -static int -cxgb_vm_page_to_miov(struct toepcb *toep, struct uio *uio, struct mbuf **m) -{ - int i, seg_count, err, type; - struct mbuf *m0; - struct cxgb_dma_info cdi; - struct mbuf_vec *mv; - struct mbuf_iovec *mi; - bus_dma_segment_t *segs; - - err = bus_dmamap_load_uio(toep->tp_tx_dmat, toep->tp_dmamap, uio, - cxgb_dma_callback, &cdi, 0); - - if (err) - return (err); - seg_count = cdi.cdi_nsegs; - if ((m0 = mcl_alloc(seg_count, &type)) == NULL) { - bus_dmamap_unload(toep->tp_tx_dmat, toep->tp_dmamap); - return (ENOMEM); - } - segs = cdi.cdi_segs; - m0->m_type = type; - m0->m_flags = (M_EXT|M_NOFREE); - m0->m_ext.ext_type = EXT_EXTREF; - m0->m_ext.ext_free = cxgb_zero_copy_free; -#if __FreeBSD_version >= 800016 - m0->m_ext.ext_arg1 = NULL; /* XXX: probably wrong /phk */ - m0->m_ext.ext_arg2 = NULL; -#else - m0->m_ext.ext_args = NULL; -#endif - - mv = mtomv(m0); - mv->mv_count = seg_count; - mv->mv_first = 0; - for (i = 0, mi = mv->mv_vec; i < seg_count; mi++, segs++, i++) - mi_collapse_sge(mi, segs); - - *m = m0; - - /* - * This appears to be a no-op at the moment - * as busdma is all or nothing need to make - * sure the tag values are large enough - * - */ - if (cdi.cdi_mapped < uio->uio_resid) { - uio->uio_resid -= cdi.cdi_mapped; - } else - uio->uio_resid = 0; - - return (0); -} - -static int -t3_sosend(struct socket *so, struct uio *uio) -{ - int rv, count, hold_resid, sent, iovcnt; - struct iovec iovtmp[TMP_IOV_MAX], *iovtmpp, *iov; - struct tcpcb *tp = so_sototcpcb(so); - struct toepcb *toep = tp->t_toe; - struct mbuf *m; - struct uio uiotmp; - struct sockbuf *snd; - - /* - * Events requiring iteration: - * - number of pages exceeds max hold pages for process or system - * - number of pages exceeds maximum sg entries for a single WR - * - * We're limited to holding 128 pages at once - and we're limited to - * 34 SG entries per work request, but each SG entry can be any number - * of contiguous pages - * - */ - - uiotmp = *uio; - iovcnt = uio->uio_iovcnt; - iov = uio->uio_iov; - sent = 0; - snd = so_sockbuf_snd(so); -sendmore: - /* - * Make sure we don't exceed the socket buffer - */ - count = min(toep->tp_page_count, (sockbuf_sbspace(snd) >> PAGE_SHIFT) + 2*PAGE_SIZE); - rv = cxgb_hold_iovec_pages(&uiotmp, toep->tp_pages, &count, VM_PROT_READ); - hold_resid = uiotmp.uio_resid; - if (rv) - return (rv); - - /* - * Bump past sent and shave off the unheld amount - */ - if (hold_resid > 0) { - iovtmpp = iovtmp; - memcpy(iovtmp, iov, iovcnt*sizeof(*iov)); - if (sent) - iov_adj(&iovtmpp, &iovcnt, sent); - iov_adj(&iovtmpp, &iovcnt, -hold_resid); - uiotmp.uio_iov = iovtmpp; - uiotmp.uio_iovcnt = iovcnt; - - } - uiotmp.uio_resid = uio->uio_resid - hold_resid; - - /* - * Push off all held pages - * - */ - while (uiotmp.uio_resid > 0) { - rv = cxgb_vm_page_to_miov(toep, &uiotmp, &m); - if (rv) { - vm_page_unhold_pages(toep->tp_pages, count); - return (rv); - } - uio->uio_resid -= m->m_pkthdr.len; - sent += m->m_pkthdr.len; - sbappend(snd, m); - t3_push_frames(so, TRUE); - iov_adj(&uiotmp.uio_iov, &iovcnt, uiotmp.uio_resid); - } - - /* - * Wait for pending I/O to be DMA'd to the card - * - */ - cxgb_wait_dma_completion(toep); - vm_page_unhold_pages(toep->tp_pages, count); - /* - * If there is more data to send adjust local copy of iov - * to point to teh start - */ - if (hold_resid) { - iovtmpp = iovtmp; - memcpy(iovtmp, iov, iovcnt*sizeof(*iov)); - iov_adj(&iovtmpp, &iovcnt, sent); - uiotmp = *uio; - uiotmp.uio_iov = iovtmpp; - uiotmp.uio_iovcnt = iovcnt; - goto sendmore; - } - - return (0); -} - -static int -cxgb_sosend(struct socket *so, struct sockaddr *addr, struct uio *uio, - struct mbuf *top, struct mbuf *control, int flags, struct thread *td) -{ - struct tcpcb *tp = so_sototcpcb(so); - struct toedev *tdev; - int zcopy_thres, zcopy_enabled, rv; - - /* - * In order to use DMA direct from userspace the following - * conditions must be met: - * - the connection is currently offloaded - * - ddp is enabled - * - the number of bytes to be transferred exceeds the threshold - * - the number of bytes currently in flight won't exceed the in-flight - * threshold XXX TODO - * - vm_fault_quick_hold_pages succeeds - * - blocking socket XXX for now - * - */ - if (tp && tp->t_flags & TF_TOE) { - struct toepcb *toep = tp->t_toe; - - tdev = toep->tp_toedev; - zcopy_thres = TOM_TUNABLE(tdev, zcopy_sosend_partial_thres); - zcopy_enabled = TOM_TUNABLE(tdev, zcopy_sosend_enabled); - - if (uio && (uio->uio_resid > zcopy_thres) && - (uio->uio_iovcnt < TMP_IOV_MAX) && ((so_state_get(so) & SS_NBIO) == 0) - && zcopy_enabled) { - rv = t3_sosend(so, uio); - if (rv != EAGAIN) - return (rv); - } - } - return pru_sosend(so, addr, uio, top, control, flags, td); -} - -/* - * Following replacement or removal of the first mbuf on the first mbuf chain - * of a socket buffer, push necessary state changes back into the socket - * buffer so that other consumers see the values consistently. 'nextrecord' - * is the callers locally stored value of the original value of - * sb->sb_mb->m_nextpkt which must be restored when the lead mbuf changes. - * NOTE: 'nextrecord' may be NULL. - */ -static __inline void -sockbuf_pushsync(struct sockbuf *sb, struct mbuf *nextrecord) -{ - sockbuf_lock_assert(sb); - /* - * First, update for the new value of nextrecord. If necessary, make - * it the first record. - */ - if (sb->sb_mb != NULL) - sb->sb_mb->m_nextpkt = nextrecord; - else - sb->sb_mb = nextrecord; - - /* - * Now update any dependent socket buffer fields to reflect the new - * state. This is an expanded inline of SB_EMPTY_FIXUP(), with the - * addition of a second clause that takes care of the case where - * sb_mb has been updated, but remains the last record. - */ - if (sb->sb_mb == NULL) { - sb->sb_mbtail = NULL; - sb->sb_lastrecord = NULL; - } else if (sb->sb_mb->m_nextpkt == NULL) - sb->sb_lastrecord = sb->sb_mb; -} - -#define IS_NONBLOCKING(so) (so_state_get(so) & SS_NBIO) - -static int -t3_soreceive(struct socket *so, int *flagsp, struct uio *uio) -{ - struct tcpcb *tp = so_sototcpcb(so); - struct toepcb *toep = tp->t_toe; - struct mbuf *m; - uint32_t offset; - int err, flags, avail, len, copied, copied_unacked; - int target; /* Read at least this many bytes */ - int user_ddp_ok; - struct ddp_state *p; - struct inpcb *inp = so_sotoinpcb(so); - int socket_state, socket_error; - struct sockbuf *rcv; - - avail = offset = copied = copied_unacked = 0; - flags = flagsp ? (*flagsp &~ MSG_EOR) : 0; - rcv = so_sockbuf_rcv(so); - - err = sblock(rcv, SBLOCKWAIT(flags)); - p = &toep->tp_ddp_state; - - if (err) - return (err); - - rcv = so_sockbuf_rcv(so); - sockbuf_lock(rcv); - if ((tp->t_flags & TF_TOE) == 0) { - sockbuf_unlock(rcv); - err = EAGAIN; - goto done_unlocked; - } - - p->user_ddp_pending = 0; -restart: - if ((tp->t_flags & TF_TOE) == 0) { - sockbuf_unlock(rcv); - err = EAGAIN; - goto done_unlocked; - } - - len = uio->uio_resid; - m = rcv->sb_mb; - target = (flags & MSG_WAITALL) ? len : rcv->sb_lowat; - user_ddp_ok = p->ubuf_ddp_ready; - p->cancel_ubuf = 0; - - if (len == 0) - goto done; - if (m) - goto got_mbuf; - - /* empty receive queue */ - if (copied >= target && (rcv->sb_mb == NULL) && - !p->user_ddp_pending) - goto done; - - socket_state = so_state_get(so); - socket_error = so_error_get(so); - rcv = so_sockbuf_rcv(so); - - if (copied) { - if (socket_error || tp->t_state == TCPS_CLOSED || - (socket_state & (SS_ISDISCONNECTING|SS_ISDISCONNECTED))) - goto done; - } else { - if (socket_state & SS_NOFDREF) - goto done; - if (socket_error) { - err = socket_error; - socket_error = 0; - goto done; - } - if (rcv->sb_state & SBS_CANTRCVMORE) - goto done; - if (socket_state & (SS_ISDISCONNECTING|SS_ISDISCONNECTED)) - goto done; - if (tp->t_state == TCPS_CLOSED) { - err = ENOTCONN; - goto done; - } - } - if (rcv->sb_mb && !p->user_ddp_pending) { - sockbuf_unlock(rcv); - inp_wlock(inp); - t3_cleanup_rbuf(tp, copied_unacked); - inp_wunlock(inp); - sockbuf_lock(rcv); - copied_unacked = 0; - goto restart; - } - if (p->kbuf[0] && user_ddp_ok && !p->user_ddp_pending && - uio->uio_iov->iov_len > p->kbuf[0]->dgl_length && - p->ubuf_ddp_ready) { - p->user_ddp_pending = - !t3_overlay_ubuf(toep, rcv, uio, - IS_NONBLOCKING(so), flags, 1, 1); - if (p->user_ddp_pending) { - p->kbuf_posted++; - user_ddp_ok = 0; - } - } - if (p->kbuf[0] && (p->kbuf_posted == 0)) { - t3_post_kbuf(toep, 1, IS_NONBLOCKING(so)); - p->kbuf_posted++; - } - if (p->user_ddp_pending) { - /* One shot at DDP if we already have enough data */ - if (copied >= target) - user_ddp_ok = 0; - - if (rcv->sb_state & SBS_CANTRCVMORE) - goto done; - CTR0(KTR_TOM, "ddp pending -- waiting"); - if ((err = sbwait(rcv)) != 0) - goto done; -//for timers to work await_ddp_completion(sk, flags, &timeo); - } else if (copied >= target) - goto done; - else { - if (copied_unacked) { - int i = 0; - - sockbuf_unlock(rcv); - inp_wlock(inp); - t3_cleanup_rbuf(tp, copied_unacked); - inp_wunlock(inp); - copied_unacked = 0; - if (mp_ncpus > 1) - while (i++ < 200 && rcv->sb_mb == NULL) - cpu_spinwait(); - sockbuf_lock(rcv); - } - if (rcv->sb_mb) - goto restart; - - if (rcv->sb_state & SBS_CANTRCVMORE) - goto done; - - CTR0(KTR_TOM, "no buffers -- waiting"); - - if ((err = sbwait(rcv)) != 0) - goto done; - } - goto restart; -got_mbuf: - /* - * Adjust the mbuf seqno if it has already been partially processed by - * soreceive_generic - */ - if (m->m_pkthdr.len != m->m_len) { - m->m_seq += m->m_pkthdr.len - m->m_len; - m->m_pkthdr.len = m->m_len; - } - - CTR6(KTR_TOM, "t3_soreceive: ddp_flags=0x%x m_len=%u resid=%u " - "m_seq=0x%08x c_seq=0x%08x c_unack=%u", - (is_ddp(m) ? m->m_ddp_flags : 0), m->m_pkthdr.len, len, - m->m_seq, toep->tp_copied_seq, copied_unacked); - KASSERT(((m->m_flags & M_EXT) && (m->m_ext.ext_type == EXT_EXTREF)) || !(m->m_flags & M_EXT), - ("unexpected type M_EXT=%d ext_type=%d m_len=%d m_pktlen=%d\n", !!(m->m_flags & M_EXT), - m->m_ext.ext_type, m->m_len, m->m_pkthdr.len)); - KASSERT(m->m_next != (struct mbuf *)0xffffffff, ("bad next value m_next=%p m_nextpkt=%p" - " m_flags=0x%x m->m_len=%d", m->m_next, m->m_nextpkt, m->m_flags, m->m_len)); - if (m->m_pkthdr.len == 0) { - if ((m->m_ddp_flags & DDP_BF_NOCOPY) == 0) - panic("empty mbuf and NOCOPY not set\n"); - CTR0(KTR_TOM, "ddp done notification"); - p->user_ddp_pending = 0; - sbdroprecord_locked(rcv); - goto done; - } - - KASSERT((int32_t)(toep->tp_copied_seq + copied_unacked - m->m_seq) >= 0, - ("offset will go negative: offset=%d copied_seq=0x%08x copied_unacked=%d m_seq=0x%08x", - offset, toep->tp_copied_seq, copied_unacked, m->m_seq)); - offset = toep->tp_copied_seq + copied_unacked - m->m_seq; - - if (offset >= m->m_pkthdr.len) - panic("t3_soreceive: OFFSET >= LEN offset %d copied_seq 0x%x " - "seq 0x%x pktlen %d ddp flags 0x%x", offset, - toep->tp_copied_seq + copied_unacked, m->m_seq, - m->m_pkthdr.len, m->m_ddp_flags); - - avail = m->m_pkthdr.len - offset; - if (len < avail) { - if (is_ddp(m) && (m->m_ddp_flags & DDP_BF_NOCOPY)) - panic("bad state in t3_soreceive len=%d avail=%d offset=%d\n", len, avail, offset); - avail = len; - rcv->sb_flags |= SB_IN_TOE; - } else if (p->kbuf_posted == 0 && p->user_ddp_pending == 0) - rcv->sb_flags &= ~SB_IN_TOE; - -#ifdef URGENT_DATA_SUPPORTED - /* - * Check if the data we are preparing to copy contains urgent - * data. Either stop short of urgent data or skip it if it's - * first and we are not delivering urgent data inline. - */ - if (__predict_false(toep->tp_urg_data)) { - uint32_t urg_offset = tp->rcv_up - tp->copied_seq + copied_unacked; - - if (urg_offset < avail) { - if (urg_offset) { - /* stop short of the urgent data */ - avail = urg_offset; - } else if ((so_options_get(so) & SO_OOBINLINE) == 0) { - /* First byte is urgent, skip */ - toep->tp_copied_seq++; - offset++; - avail--; - if (!avail) - goto skip_copy; - } - } - } -#endif - if (is_ddp_psh(m) || offset || (rcv->sb_mb && !is_ddp(m))) { - user_ddp_ok = 0; -#ifdef T3_TRACE - T3_TRACE0(TIDTB(so), "t3_sosend: PSH"); -#endif - } - - if (user_ddp_ok && !p->user_ddp_pending && - uio->uio_iov->iov_len > p->kbuf[0]->dgl_length && - p->ubuf_ddp_ready) { - p->user_ddp_pending = - !t3_overlay_ubuf(toep, rcv, uio, - IS_NONBLOCKING(so), flags, 1, 1); - if (p->user_ddp_pending) { - p->kbuf_posted++; - user_ddp_ok = 0; - } - DPRINTF("user_ddp_pending=%d\n", p->user_ddp_pending); - } else - DPRINTF("user_ddp_ok=%d user_ddp_pending=%d iov_len=%ld dgl_length=%d ubuf_ddp_ready=%d ulp_mode=%d is_ddp(m)=%d flags=0x%x ubuf=%p kbuf_posted=%d\n", - user_ddp_ok, p->user_ddp_pending, uio->uio_iov->iov_len, p->kbuf[0] ? p->kbuf[0]->dgl_length : 0, - p->ubuf_ddp_ready, toep->tp_ulp_mode, !!is_ddp(m), m->m_ddp_flags, p->ubuf, p->kbuf_posted); - - /* - * If MSG_TRUNC is specified the data is discarded. - * XXX need to check pr_atomic - */ - KASSERT(avail > 0, ("avail=%d resid=%d offset=%d", avail, uio->uio_resid, offset)); - if (__predict_true(!(flags & MSG_TRUNC))) { - int resid = uio->uio_resid; - - sockbuf_unlock(rcv); - if ((err = copy_data(m, offset, avail, uio))) { - if (err) - err = EFAULT; - goto done_unlocked; - } - - sockbuf_lock(rcv); - if (avail != (resid - uio->uio_resid)) - printf("didn't copy all bytes :-/ avail=%d offset=%d pktlen=%d resid=%d uio_resid=%d copied=%d copied_unacked=%d is_ddp(m)=%d\n", - avail, offset, m->m_pkthdr.len, resid, uio->uio_resid, copied, copied_unacked, is_ddp(m)); - - if ((tp->t_flags & TF_TOE) == 0) { - sockbuf_unlock(rcv); - err = EAGAIN; - goto done_unlocked; - } - } - - copied += avail; - copied_unacked += avail; - len -= avail; - -#ifdef URGENT_DATA_SUPPORTED -skip_copy: - if (tp->urg_data && after(tp->copied_seq + copied_unacked, tp->urg_seq)) - tp->urg_data = 0; -#endif - /* - * If the buffer is fully consumed free it. If it's a DDP - * buffer also handle any events it indicates. - */ - if (avail + offset >= m->m_pkthdr.len) { - unsigned int fl = m->m_ddp_flags; - int exitnow, got_psh = 0, nomoredata = 0; - int count; - struct mbuf *nextrecord; - - if (p->kbuf[0] != NULL && is_ddp(m) && (fl & 1)) { - if (is_ddp_psh(m) && p->user_ddp_pending) - got_psh = 1; - - if (fl & DDP_BF_NOCOPY) - p->user_ddp_pending = 0; - else if ((fl & DDP_BF_NODATA) && IS_NONBLOCKING(so)) { - p->kbuf_posted--; - nomoredata = 1; - } else { - p->kbuf_posted--; - p->ubuf_ddp_ready = 1; - } - } - - nextrecord = m->m_nextpkt; - count = m->m_pkthdr.len; - while (count > 0) { - count -= m->m_len; - KASSERT(((m->m_flags & M_EXT) && (m->m_ext.ext_type == EXT_EXTREF)) || !(m->m_flags & M_EXT), ("unexpected type M_EXT=%d ext_type=%d m_len=%d\n", !!(m->m_flags & M_EXT), m->m_ext.ext_type, m->m_len)); - CTR2(KTR_TOM, "freeing mbuf m_len = %d pktlen = %d", m->m_len, m->m_pkthdr.len); - sbfree(rcv, m); - rcv->sb_mb = m_free(m); - m = rcv->sb_mb; - } - sockbuf_pushsync(rcv, nextrecord); -#if 0 - sbdrop_locked(rcv, m->m_pkthdr.len); -#endif - exitnow = got_psh || nomoredata; - if (copied >= target && (rcv->sb_mb == NULL) && exitnow) - goto done; - if (copied_unacked > (rcv->sb_hiwat >> 2)) { - sockbuf_unlock(rcv); - inp_wlock(inp); - t3_cleanup_rbuf(tp, copied_unacked); - inp_wunlock(inp); - copied_unacked = 0; - sockbuf_lock(rcv); - } - } - if (len > 0) - goto restart; - - done: - if ((tp->t_flags & TF_TOE) == 0) { - sockbuf_unlock(rcv); - err = EAGAIN; - goto done_unlocked; - } - /* - * If we can still receive decide what to do in preparation for the - * next receive. Note that RCV_SHUTDOWN is set if the connection - * transitioned to CLOSE but not if it was in that state to begin with. - */ - if (__predict_true((so_state_get(so) & (SS_ISDISCONNECTING|SS_ISDISCONNECTED)) == 0)) { - if (p->user_ddp_pending) { - user_ddp_ok = 0; - t3_cancel_ubuf(toep, rcv); - if (rcv->sb_mb) { - if (copied < 0) - copied = 0; - if (len > 0) - goto restart; - } - p->user_ddp_pending = 0; - } - if ((p->kbuf[0] != NULL) && (p->kbuf_posted == 0)) { -#ifdef T3_TRACE - T3_TRACE0(TIDTB(so), - "chelsio_recvmsg: about to exit, repost kbuf"); -#endif - - t3_post_kbuf(toep, 1, IS_NONBLOCKING(so)); - p->kbuf_posted++; - } else if (so_should_ddp(toep, copied) && uio->uio_iovcnt == 1) { - CTR1(KTR_TOM ,"entering ddp on tid=%u", toep->tp_tid); - if (!t3_enter_ddp(toep, TOM_TUNABLE(toep->tp_toedev, - ddp_copy_limit), 0, IS_NONBLOCKING(so))) { - rcv->sb_flags |= SB_IN_TOE; - p->kbuf_posted = 1; - } - - } - } -#ifdef T3_TRACE - T3_TRACE5(TIDTB(so), - "chelsio_recvmsg <-: copied %d len %d buffers_freed %d " - "kbuf_posted %d user_ddp_pending %u", - copied, len, buffers_freed, p ? p->kbuf_posted : -1, - p->user_ddp_pending); -#endif - sockbuf_unlock(rcv); -done_unlocked: - if (copied_unacked && (tp->t_flags & TF_TOE)) { - inp_wlock(inp); - t3_cleanup_rbuf(tp, copied_unacked); - inp_wunlock(inp); - } - sbunlock(rcv); - - return (err); -} - -static int -cxgb_soreceive(struct socket *so, struct sockaddr **psa, struct uio *uio, - struct mbuf **mp0, struct mbuf **controlp, int *flagsp) -{ - struct toedev *tdev; - int rv, zcopy_thres, zcopy_enabled, flags; - struct tcpcb *tp = so_sototcpcb(so); - struct sockbuf *rcv = so_sockbuf_rcv(so); - - flags = flagsp ? *flagsp &~ MSG_EOR : 0; - - /* - * In order to use DMA direct from userspace the following - * conditions must be met: - * - the connection is currently offloaded - * - ddp is enabled - * - the number of bytes to be transferred exceeds the threshold - * - the number of bytes currently in flight won't exceed the in-flight - * threshold XXX TODO - * - vm_fault_quick_hold_pages succeeds - * - blocking socket XXX for now - * - iovcnt is 1 - * - */ - if (tp && (tp->t_flags & TF_TOE) && uio && ((flags & (MSG_OOB|MSG_PEEK|MSG_DONTWAIT)) == 0) - && (uio->uio_iovcnt == 1) && (mp0 == NULL) && - ((rcv->sb_flags & SB_IN_TOE) || (uio->uio_iovcnt == 1))) { - struct toepcb *toep = tp->t_toe; - - tdev = toep->tp_toedev; - zcopy_thres = TOM_TUNABLE(tdev, ddp_thres); - zcopy_enabled = TOM_TUNABLE(tdev, ddp); - if ((rcv->sb_flags & SB_IN_TOE) ||((uio->uio_resid > zcopy_thres) && - (uio->uio_iovcnt == 1) && zcopy_enabled)) { - CTR4(KTR_TOM, "cxgb_soreceive: sb_flags=0x%x t_flags=0x%x flags=0x%x uio_resid=%d", - rcv->sb_flags, tp->t_flags, flags, uio->uio_resid); - rv = t3_soreceive(so, flagsp, uio); - if (rv != EAGAIN) - return (rv); - else - printf("returned EAGAIN\n"); - } - } else if (tp && (tp->t_flags & TF_TOE) && uio && mp0 == NULL) { - struct sockbuf *rcv = so_sockbuf_rcv(so); - - log(LOG_INFO, "skipping t3_soreceive flags=0x%x iovcnt=%d sb_state=0x%x\n", - flags, uio->uio_iovcnt, rcv->sb_state); - } - - return pru_soreceive(so, psa, uio, mp0, controlp, flagsp); -} - -struct protosw cxgb_protosw; -struct pr_usrreqs cxgb_tcp_usrreqs; - -void -t3_install_socket_ops(struct socket *so) -{ - static int copied = 0; - struct pr_usrreqs *pru; - struct protosw *psw; - - if (copied == 0) { - psw = so_protosw_get(so); - pru = psw->pr_usrreqs; - - bcopy(psw, &cxgb_protosw, sizeof(*psw)); - bcopy(pru, &cxgb_tcp_usrreqs, sizeof(*pru)); - - cxgb_protosw.pr_ctloutput = t3_ctloutput; - cxgb_protosw.pr_usrreqs = &cxgb_tcp_usrreqs; - cxgb_tcp_usrreqs.pru_sosend = cxgb_sosend; - cxgb_tcp_usrreqs.pru_soreceive = cxgb_soreceive; - } - so_protosw_set(so, &cxgb_protosw); - -#if 0 - so->so_proto->pr_usrreqs->pru_sosend = cxgb_sosend; - so->so_proto->pr_usrreqs->pru_soreceive = cxgb_soreceive; -#endif -} diff --git a/sys/dev/cxgb/ulp/tom/cxgb_ddp.c b/sys/dev/cxgb/ulp/tom/cxgb_ddp.c deleted file mode 100644 index fe3b0756f518..000000000000 --- a/sys/dev/cxgb/ulp/tom/cxgb_ddp.c +++ /dev/null @@ -1,738 +0,0 @@ -/************************************************************************** - -Copyright (c) 2007-2008, Chelsio Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2. Neither the name of the Chelsio Corporation nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -***************************************************************************/ - -#include -__FBSDID("$FreeBSD$"); - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -#include -#include - -#include -#include -#include -#include - - -#include -#include - -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include - - -#define MAX_SCHEDULE_TIMEOUT 300 - -/* - * Return the # of page pods needed to accommodate a # of pages. - */ -static inline unsigned int -pages2ppods(unsigned int pages) -{ - return (pages + PPOD_PAGES - 1) / PPOD_PAGES + NUM_SENTINEL_PPODS; -} - -/** - * t3_pin_pages - pin a user memory range and prepare it for DDP - * @addr - the starting address - * @len - the length of the range - * @newgl - contains the pages and physical addresses of the pinned range - * @gl - an existing gather list, may be %NULL - * - * Pins the pages in the user-space memory range [addr, addr + len) and - * maps them for DMA. Returns a gather list with the pinned pages and - * their physical addresses. If @gl is non NULL the pages it describes - * are compared against the pages for [addr, addr + len), and if the - * existing gather list already covers the range a new list is not - * allocated. Returns 0 on success, or a negative errno. On success if - * a new gather list was allocated it is returned in @newgl. - */ -static int -t3_pin_pages(bus_dma_tag_t tag, bus_dmamap_t dmamap, vm_offset_t addr, - size_t len, struct ddp_gather_list **newgl, - const struct ddp_gather_list *gl) -{ - int i = 0, err; - size_t pg_off; - unsigned int npages; - struct ddp_gather_list *p; - vm_map_t map; - - pg_off = addr & PAGE_MASK; - npages = (pg_off + len + PAGE_SIZE - 1) >> PAGE_SHIFT; - p = malloc(sizeof(struct ddp_gather_list) + npages * sizeof(vm_page_t *), - M_DEVBUF, M_NOWAIT|M_ZERO); - if (p == NULL) - return (ENOMEM); - - map = &curthread->td_proc->p_vmspace->vm_map; - if (vm_fault_quick_hold_pages(map, addr, len, VM_PROT_READ | - VM_PROT_WRITE, p->dgl_pages, npages) < 0) { - err = EFAULT; - goto free_gl; - } - - if (gl && gl->dgl_offset == pg_off && gl->dgl_nelem >= npages && - gl->dgl_length >= len) { - for (i = 0; i < npages; i++) - if (p->dgl_pages[i] != gl->dgl_pages[i]) - goto different_gl; - err = 0; - goto unpin; - } - -different_gl: - p->dgl_length = len; - p->dgl_offset = pg_off; - p->dgl_nelem = npages; -#ifdef NEED_BUSDMA - p->phys_addr[0] = pci_map_page(pdev, p->pages[0], pg_off, - PAGE_SIZE - pg_off, - PCI_DMA_FROMDEVICE) - pg_off; - for (i = 1; i < npages; ++i) - p->phys_addr[i] = pci_map_page(pdev, p->pages[i], 0, PAGE_SIZE, - PCI_DMA_FROMDEVICE); -#endif - *newgl = p; - return (0); -unpin: - vm_page_unhold_pages(p->dgl_pages, npages); - -free_gl: - - free(p, M_DEVBUF); - *newgl = NULL; - return (err); -} - -static void -unmap_ddp_gl(const struct ddp_gather_list *gl) -{ -#ifdef NEED_BUSDMA - int i; - - if (!gl->nelem) - return; - - pci_unmap_page(pdev, gl->phys_addr[0] + gl->offset, - PAGE_SIZE - gl->offset, PCI_DMA_FROMDEVICE); - for (i = 1; i < gl->nelem; ++i) - pci_unmap_page(pdev, gl->phys_addr[i], PAGE_SIZE, - PCI_DMA_FROMDEVICE); - -#endif -} - -static void -ddp_gl_free_pages(struct ddp_gather_list *gl, int dirty) -{ - /* - * XXX mark pages as dirty before unholding - */ - vm_page_unhold_pages(gl->dgl_pages, gl->dgl_nelem); -} - -void -t3_free_ddp_gl(struct ddp_gather_list *gl) -{ - unmap_ddp_gl(gl); - ddp_gl_free_pages(gl, 0); - free(gl, M_DEVBUF); -} - -/* Max # of page pods for a buffer, enough for 1MB buffer at 4KB page size */ -#define MAX_PPODS 64U - -/* - * Allocate page pods for DDP buffer 1 (the user buffer) and set up the tag in - * the TCB. We allocate page pods in multiples of PPOD_CLUSTER_SIZE. First we - * try to allocate enough page pods to accommodate the whole buffer, subject to - * the MAX_PPODS limit. If that fails we try to allocate PPOD_CLUSTER_SIZE page - * pods before failing entirely. - */ -static int -alloc_buf1_ppods(struct toepcb *toep, struct ddp_state *p, - unsigned long addr, unsigned int len) -{ - int err, tag, npages, nppods; - struct tom_data *d = TOM_DATA(toep->tp_toedev); - -#if 0 - SOCKBUF_LOCK_ASSERT(&so->so_rcv); -#endif - npages = ((addr & PAGE_MASK) + len + PAGE_SIZE - 1) >> PAGE_SHIFT; - nppods = min(pages2ppods(npages), MAX_PPODS); - nppods = roundup2(nppods, PPOD_CLUSTER_SIZE); - err = t3_alloc_ppods(d, nppods, &tag); - if (err && nppods > PPOD_CLUSTER_SIZE) { - nppods = PPOD_CLUSTER_SIZE; - err = t3_alloc_ppods(d, nppods, &tag); - } - if (err) - return (ENOMEM); - - p->ubuf_nppods = nppods; - p->ubuf_tag = tag; -#if NUM_DDP_KBUF == 1 - t3_set_ddp_tag(toep, 1, tag << 6); -#endif - return (0); -} - -/* - * Starting offset for the user DDP buffer. A non-0 value ensures a DDP flush - * won't block indefinitely if there's nothing to place (which should be rare). - */ -#define UBUF_OFFSET 1 - -static __inline unsigned long -select_ddp_flags(const struct toepcb *toep, int buf_idx, - int nonblock, int rcv_flags) -{ - if (buf_idx == 1) { - if (__predict_false(rcv_flags & MSG_WAITALL)) - return V_TF_DDP_PSH_NO_INVALIDATE0(1) | - V_TF_DDP_PSH_NO_INVALIDATE1(1) | - V_TF_DDP_PUSH_DISABLE_1(1); - if (nonblock) - return V_TF_DDP_BUF1_FLUSH(1); - - return V_TF_DDP_BUF1_FLUSH(!TOM_TUNABLE(toep->tp_toedev, - ddp_push_wait)); - } - - if (__predict_false(rcv_flags & MSG_WAITALL)) - return V_TF_DDP_PSH_NO_INVALIDATE0(1) | - V_TF_DDP_PSH_NO_INVALIDATE1(1) | - V_TF_DDP_PUSH_DISABLE_0(1); - if (nonblock) - return V_TF_DDP_BUF0_FLUSH(1); - - return V_TF_DDP_BUF0_FLUSH(!TOM_TUNABLE(toep->tp_toedev, ddp_push_wait)); -} - -/* - * Reposts the kernel DDP buffer after it has been previously become full and - * invalidated. We just need to reset the offset and adjust the DDP flags. - * Conveniently, we can set the flags and the offset with a single message. - * Note that this function does not set the buffer length. Again conveniently - * our kernel buffer is of fixed size. If the length needs to be changed it - * needs to be done separately. - */ -static void -t3_repost_kbuf(struct toepcb *toep, unsigned int bufidx, int modulate, - int activate, int nonblock) -{ - struct ddp_state *p = &toep->tp_ddp_state; - unsigned long flags; - -#if 0 - SOCKBUF_LOCK_ASSERT(&so->so_rcv); -#endif - p->buf_state[bufidx].cur_offset = p->kbuf[bufidx]->dgl_offset; - p->buf_state[bufidx].flags = p->kbuf_noinval ? DDP_BF_NOINVAL : 0; - p->buf_state[bufidx].gl = p->kbuf[bufidx]; - p->cur_buf = bufidx; - p->kbuf_idx = bufidx; - - flags = select_ddp_flags(toep, bufidx, nonblock, 0); - if (!bufidx) - t3_setup_ddpbufs(toep, 0, 0, 0, 0, flags | - V_TF_DDP_PSH_NO_INVALIDATE0(p->kbuf_noinval) | - V_TF_DDP_PSH_NO_INVALIDATE1(p->kbuf_noinval) | - V_TF_DDP_BUF0_VALID(1), - V_TF_DDP_BUF0_FLUSH(1) | - V_TF_DDP_PSH_NO_INVALIDATE0(1) | - V_TF_DDP_PSH_NO_INVALIDATE1(1) | V_TF_DDP_OFF(1) | - V_TF_DDP_BUF0_VALID(1) | - V_TF_DDP_ACTIVE_BUF(activate), modulate); - else - t3_setup_ddpbufs(toep, 0, 0, 0, 0, flags | - V_TF_DDP_PSH_NO_INVALIDATE0(p->kbuf_noinval) | - V_TF_DDP_PSH_NO_INVALIDATE1(p->kbuf_noinval) | - V_TF_DDP_BUF1_VALID(1) | - V_TF_DDP_ACTIVE_BUF(activate), - V_TF_DDP_BUF1_FLUSH(1) | - V_TF_DDP_PSH_NO_INVALIDATE0(1) | - V_TF_DDP_PSH_NO_INVALIDATE1(1) | V_TF_DDP_OFF(1) | - V_TF_DDP_BUF1_VALID(1) | V_TF_DDP_ACTIVE_BUF(1), - modulate); - -} - -/** - * setup_uio_ppods - setup HW page pods for a user iovec - * @sk: the associated socket - * @uio: the uio - * @oft: additional bytes to map before the start of the buffer - * - * Pins a user iovec and sets up HW page pods for DDP into it. We allocate - * page pods for user buffers on the first call per socket. Afterwards we - * limit the buffer length to whatever the existing page pods can accommodate. - * Returns a negative error code or the length of the mapped buffer. - * - * The current implementation handles iovecs with only one entry. - */ -static int -setup_uio_ppods(struct toepcb *toep, const struct uio *uio, int oft, int *length) -{ - int err; - unsigned int len; - struct ddp_gather_list *gl = NULL; - struct ddp_state *p = &toep->tp_ddp_state; - struct iovec *iov = uio->uio_iov; - vm_offset_t addr = (vm_offset_t)iov->iov_base - oft; - -#ifdef notyet - SOCKBUF_LOCK_ASSERT(&so->so_rcv); -#endif - if (__predict_false(p->ubuf_nppods == 0)) { - err = alloc_buf1_ppods(toep, p, addr, iov->iov_len + oft); - if (err) - return (err); - } - - len = (p->ubuf_nppods - NUM_SENTINEL_PPODS) * PPOD_PAGES * PAGE_SIZE; - len -= addr & PAGE_MASK; - if (len > M_TCB_RX_DDP_BUF0_LEN) - len = M_TCB_RX_DDP_BUF0_LEN; - len = min(len, toep->tp_tp->rcv_wnd - 32768); - len = min(len, iov->iov_len + oft); - - if (len <= p->kbuf[0]->dgl_length) { - printf("length too short\n"); - return (EINVAL); - } - - err = t3_pin_pages(toep->tp_rx_dmat, toep->tp_dmamap, addr, len, &gl, p->ubuf); - if (err) - return (err); - if (gl) { - if (p->ubuf) - t3_free_ddp_gl(p->ubuf); - p->ubuf = gl; - t3_setup_ppods(toep, gl, pages2ppods(gl->dgl_nelem), p->ubuf_tag, len, - gl->dgl_offset, 0); - } - *length = len; - return (0); -} - -/* - * - */ -void -t3_cancel_ubuf(struct toepcb *toep, struct sockbuf *rcv) -{ - struct ddp_state *p = &toep->tp_ddp_state; - int ubuf_pending = t3_ddp_ubuf_pending(toep); - int err = 0, count = 0; - - if (p->ubuf == NULL) - return; - - sockbuf_lock_assert(rcv); - - p->cancel_ubuf = 1; - while (ubuf_pending && !(rcv->sb_state & SBS_CANTRCVMORE)) { - CTR3(KTR_TOM, - "t3_cancel_ubuf: flags0 0x%x flags1 0x%x get_tcb_count %d", - p->buf_state[0].flags & (DDP_BF_NOFLIP | DDP_BF_NOCOPY), - p->buf_state[1].flags & (DDP_BF_NOFLIP | DDP_BF_NOCOPY), - p->get_tcb_count); - if (p->get_tcb_count == 0) - t3_cancel_ddpbuf(toep, p->cur_buf); - else - CTR5(KTR_TOM, "waiting err=%d get_tcb_count=%d timeo=%d rcv=%p SBS_CANTRCVMORE=%d", - err, p->get_tcb_count, rcv->sb_timeo, rcv, - !!(rcv->sb_state & SBS_CANTRCVMORE)); - - while (p->get_tcb_count && !(rcv->sb_state & SBS_CANTRCVMORE)) { - if (count & 0xfffffff) - CTR5(KTR_TOM, "waiting err=%d get_tcb_count=%d timeo=%d rcv=%p count=%d", - err, p->get_tcb_count, rcv->sb_timeo, rcv, count); - count++; - err = sbwait(rcv); - } - ubuf_pending = t3_ddp_ubuf_pending(toep); - } - p->cancel_ubuf = 0; - p->user_ddp_pending = 0; - -} - -#define OVERLAY_MASK (V_TF_DDP_PSH_NO_INVALIDATE0(1) | \ - V_TF_DDP_PSH_NO_INVALIDATE1(1) | \ - V_TF_DDP_BUF1_FLUSH(1) | \ - V_TF_DDP_BUF0_FLUSH(1) | \ - V_TF_DDP_PUSH_DISABLE_1(1) | \ - V_TF_DDP_PUSH_DISABLE_0(1) | \ - V_TF_DDP_INDICATE_OUT(1)) - -/* - * Post a user buffer as an overlay on top of the current kernel buffer. - */ -int -t3_overlay_ubuf(struct toepcb *toep, struct sockbuf *rcv, - const struct uio *uio, int nonblock, int rcv_flags, - int modulate, int post_kbuf) -{ - int err, len, ubuf_idx; - unsigned long flags; - struct ddp_state *p = &toep->tp_ddp_state; - - if (p->kbuf[0] == NULL) { - return (EINVAL); - } - sockbuf_unlock(rcv); - err = setup_uio_ppods(toep, uio, 0, &len); - sockbuf_lock(rcv); - if (err) - return (err); - - if ((rcv->sb_state & SBS_CANTRCVMORE) || - (toep->tp_tp->t_flags & TF_TOE) == 0) - return (EINVAL); - - ubuf_idx = p->kbuf_idx; - p->buf_state[ubuf_idx].flags = DDP_BF_NOFLIP; - /* Use existing offset */ - /* Don't need to update .gl, user buffer isn't copied. */ - p->cur_buf = ubuf_idx; - - flags = select_ddp_flags(toep, ubuf_idx, nonblock, rcv_flags); - - if (post_kbuf) { - struct ddp_buf_state *dbs = &p->buf_state[ubuf_idx ^ 1]; - - dbs->cur_offset = 0; - dbs->flags = 0; - dbs->gl = p->kbuf[ubuf_idx ^ 1]; - p->kbuf_idx ^= 1; - flags |= p->kbuf_idx ? - V_TF_DDP_BUF1_VALID(1) | V_TF_DDP_PUSH_DISABLE_1(0) : - V_TF_DDP_BUF0_VALID(1) | V_TF_DDP_PUSH_DISABLE_0(0); - } - - if (ubuf_idx == 0) { - t3_overlay_ddpbuf(toep, 0, p->ubuf_tag << 6, p->kbuf_tag[1] << 6, - len); - t3_setup_ddpbufs(toep, 0, 0, p->kbuf[1]->dgl_length, 0, - flags, - OVERLAY_MASK | flags, 1); - } else { - t3_overlay_ddpbuf(toep, 1, p->kbuf_tag[0] << 6, p->ubuf_tag << 6, - len); - t3_setup_ddpbufs(toep, p->kbuf[0]->dgl_length, 0, 0, 0, - flags, - OVERLAY_MASK | flags, 1); - } -#ifdef T3_TRACE - T3_TRACE5(TIDTB(so), - "t3_overlay_ubuf: tag %u flags 0x%x mask 0x%x ubuf_idx %d " - " kbuf_idx %d", - p->ubuf_tag, flags, OVERLAY_MASK, ubuf_idx, p->kbuf_idx); -#endif - CTR3(KTR_TOM, - "t3_overlay_ubuf: tag %u flags 0x%x mask 0x%x", - p->ubuf_tag, flags, OVERLAY_MASK); - CTR3(KTR_TOM, - "t3_overlay_ubuf: ubuf_idx %d kbuf_idx %d post_kbuf %d", - ubuf_idx, p->kbuf_idx, post_kbuf); - - return (0); -} - -/* - * Clean up DDP state that needs to survive until socket close time, such as the - * DDP buffers. The buffers are already unmapped at this point as unmapping - * needs the PCI device and a socket may close long after the device is removed. - */ -void -t3_cleanup_ddp(struct toepcb *toep) -{ - struct ddp_state *p = &toep->tp_ddp_state; - int idx; - - for (idx = 0; idx < NUM_DDP_KBUF; idx++) - if (p->kbuf[idx]) { - ddp_gl_free_pages(p->kbuf[idx], 0); - free(p->kbuf[idx], M_DEVBUF); - } - if (p->ubuf) { - ddp_gl_free_pages(p->ubuf, 0); - free(p->ubuf, M_DEVBUF); - p->ubuf = NULL; - } - toep->tp_ulp_mode = 0; -} - -/* - * This is a companion to t3_cleanup_ddp() and releases the HW resources - * associated with a connection's DDP state, such as the page pods. - * It's called when HW is done with a connection. The rest of the state - * remains available until both HW and the app are done with the connection. - */ -void -t3_release_ddp_resources(struct toepcb *toep) -{ - struct ddp_state *p = &toep->tp_ddp_state; - struct tom_data *d = TOM_DATA(toep->tp_toedev); - int idx; - - for (idx = 0; idx < NUM_DDP_KBUF; idx++) { - t3_free_ppods(d, p->kbuf_tag[idx], - p->kbuf_nppods[idx]); - unmap_ddp_gl(p->kbuf[idx]); - } - - if (p->ubuf_nppods) { - t3_free_ppods(d, p->ubuf_tag, p->ubuf_nppods); - p->ubuf_nppods = 0; - } - if (p->ubuf) - unmap_ddp_gl(p->ubuf); - -} - -void -t3_post_kbuf(struct toepcb *toep, int modulate, int nonblock) -{ - struct ddp_state *p = &toep->tp_ddp_state; - - t3_set_ddp_tag(toep, p->cur_buf, p->kbuf_tag[p->cur_buf] << 6); - t3_set_ddp_buf(toep, p->cur_buf, 0, p->kbuf[p->cur_buf]->dgl_length); - t3_repost_kbuf(toep, p->cur_buf, modulate, 1, nonblock); -#ifdef T3_TRACE - T3_TRACE1(TIDTB(so), - "t3_post_kbuf: cur_buf = kbuf_idx = %u ", p->cur_buf); -#endif - CTR1(KTR_TOM, - "t3_post_kbuf: cur_buf = kbuf_idx = %u ", p->cur_buf); -} - -/* - * Prepare a socket for DDP. Must be called when the socket is known to be - * open. - */ -int -t3_enter_ddp(struct toepcb *toep, unsigned int kbuf_size, unsigned int waitall, int nonblock) -{ - int i, err = ENOMEM; - static vm_pindex_t color; - unsigned int nppods, kbuf_pages, idx = 0; - struct ddp_state *p = &toep->tp_ddp_state; - struct tom_data *d = TOM_DATA(toep->tp_toedev); - - - if (kbuf_size > M_TCB_RX_DDP_BUF0_LEN) - return (EINVAL); - -#ifdef notyet - SOCKBUF_LOCK_ASSERT(&so->so_rcv); -#endif - kbuf_pages = (kbuf_size + PAGE_SIZE - 1) >> PAGE_SHIFT; - nppods = pages2ppods(kbuf_pages); - - p->kbuf_noinval = !!waitall; - p->kbuf_tag[NUM_DDP_KBUF - 1] = -1; - for (idx = 0; idx < NUM_DDP_KBUF; idx++) { - p->kbuf[idx] = - malloc(sizeof (struct ddp_gather_list) + kbuf_pages * - sizeof(vm_page_t *), M_DEVBUF, M_NOWAIT|M_ZERO); - if (p->kbuf[idx] == NULL) - goto err; - err = t3_alloc_ppods(d, nppods, &p->kbuf_tag[idx]); - if (err) { - printf("t3_alloc_ppods failed err=%d\n", err); - goto err; - } - - p->kbuf_nppods[idx] = nppods; - p->kbuf[idx]->dgl_length = kbuf_size; - p->kbuf[idx]->dgl_offset = 0; - p->kbuf[idx]->dgl_nelem = kbuf_pages; - - for (i = 0; i < kbuf_pages; ++i) { - p->kbuf[idx]->dgl_pages[i] = vm_page_alloc(NULL, color, - VM_ALLOC_NOOBJ | VM_ALLOC_NORMAL | VM_ALLOC_WIRED | - VM_ALLOC_ZERO); - if (p->kbuf[idx]->dgl_pages[i] == NULL) { - p->kbuf[idx]->dgl_nelem = i; - printf("failed to allocate kbuf pages\n"); - goto err; - } - } -#ifdef NEED_BUSDMA - /* - * XXX we'll need this for VT-d or any platform with an iommu :-/ - * - */ - for (i = 0; i < kbuf_pages; ++i) - p->kbuf[idx]->phys_addr[i] = - pci_map_page(p->pdev, p->kbuf[idx]->pages[i], - 0, PAGE_SIZE, PCI_DMA_FROMDEVICE); -#endif - t3_setup_ppods(toep, p->kbuf[idx], nppods, p->kbuf_tag[idx], - p->kbuf[idx]->dgl_length, 0, 0); - } - cxgb_log_tcb(TOEP_T3C_DEV(toep)->adapter, toep->tp_tid); - - t3_set_ddp_tag(toep, 0, p->kbuf_tag[0] << 6); - t3_set_ddp_buf(toep, 0, 0, p->kbuf[0]->dgl_length); - t3_repost_kbuf(toep, 0, 0, 1, nonblock); - - t3_set_rcv_coalesce_enable(toep, - TOM_TUNABLE(toep->tp_toedev, ddp_rcvcoalesce)); - t3_set_dack_mss(toep, TOM_TUNABLE(toep->tp_toedev, delack)>>1); - -#ifdef T3_TRACE - T3_TRACE4(TIDTB(so), - "t3_enter_ddp: kbuf_size %u waitall %u tag0 %d tag1 %d", - kbuf_size, waitall, p->kbuf_tag[0], p->kbuf_tag[1]); -#endif - CTR4(KTR_TOM, - "t3_enter_ddp: kbuf_size %u waitall %u tag0 %d tag1 %d", - kbuf_size, waitall, p->kbuf_tag[0], p->kbuf_tag[1]); - cxgb_log_tcb(TOEP_T3C_DEV(toep)->adapter, toep->tp_tid); - return (0); - -err: - t3_release_ddp_resources(toep); - t3_cleanup_ddp(toep); - return (err); -} - -int -t3_ddp_copy(const struct mbuf *m, int offset, struct uio *uio, int len) -{ - int resid_init, err; - struct ddp_gather_list *gl = (struct ddp_gather_list *)m->m_ddp_gl; - - resid_init = uio->uio_resid; - - if (!gl->dgl_pages) - panic("pages not set\n"); - - CTR4(KTR_TOM, "t3_ddp_copy: offset=%d dgl_offset=%d cur_offset=%d len=%d", - offset, gl->dgl_offset, m->m_cur_offset, len); - offset += gl->dgl_offset + m->m_cur_offset; - KASSERT(len <= gl->dgl_length, - ("len=%d > dgl_length=%d in ddp_copy\n", len, gl->dgl_length)); - - - err = uiomove_fromphys(gl->dgl_pages, offset, len, uio); - return (err); -} - - -/* - * Allocate n page pods. Returns -1 on failure or the page pod tag. - */ -int -t3_alloc_ppods(struct tom_data *td, unsigned int n, int *ptag) -{ - unsigned int i, j; - - if (__predict_false(!td->ppod_map)) { - printf("ppod_map not set\n"); - return (EINVAL); - } - - mtx_lock(&td->ppod_map_lock); - for (i = 0; i < td->nppods; ) { - - for (j = 0; j < n; ++j) /* scan ppod_map[i..i+n-1] */ - if (td->ppod_map[i + j]) { - i = i + j + 1; - goto next; - } - memset(&td->ppod_map[i], 1, n); /* allocate range */ - mtx_unlock(&td->ppod_map_lock); - CTR2(KTR_TOM, - "t3_alloc_ppods: n=%u tag=%u", n, i); - *ptag = i; - return (0); - next: ; - } - mtx_unlock(&td->ppod_map_lock); - return (0); -} - -void -t3_free_ppods(struct tom_data *td, unsigned int tag, unsigned int n) -{ - /* No need to take ppod_lock here */ - memset(&td->ppod_map[tag], 0, n); -} diff --git a/sys/dev/cxgb/ulp/tom/cxgb_defs.h b/sys/dev/cxgb/ulp/tom/cxgb_defs.h deleted file mode 100644 index 758f024ec781..000000000000 --- a/sys/dev/cxgb/ulp/tom/cxgb_defs.h +++ /dev/null @@ -1,91 +0,0 @@ - -/************************************************************************** - -Copyright (c) 2007, Chelsio Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2. Neither the name of the Chelsio Corporation nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - - -$FreeBSD$ - -***************************************************************************/ -#ifndef CXGB_DEFS_H_ -#define CXGB_DEFS_H_ - -#define VALIDATE_TID 0 - -#define TOEPCB(so) ((struct toepcb *)(sototcpcb((so))->t_toe)) -#define TOE_DEV(so) (TOEPCB((so))->tp_toedev) -#define toeptoso(toep) ((toep)->tp_tp->t_inpcb->inp_socket) -#define sototoep(so) (sototcpcb((so))->t_toe) - -#define TRACE_ENTER printf("%s:%s entered\n", __FUNCTION__, __FILE__) -#define TRACE_EXIT printf("%s:%s:%d exited\n", __FUNCTION__, __FILE__, __LINE__) - -#define KTR_TOM KTR_SPARE2 -#define KTR_TCB KTR_SPARE3 - -struct toepcb; -struct listen_ctx; - -void cxgb_log_tcb(struct adapter *sc, unsigned int tid); -typedef void (*defer_handler_t)(struct toedev *dev, struct mbuf *m); - -void t3tom_register_cpl_handler(unsigned int opcode, cxgb_cpl_handler_func h); -void t3_listen_start(struct toedev *dev, struct socket *so, struct t3cdev *cdev); -void t3_listen_stop(struct toedev *dev, struct socket *so, struct t3cdev *cdev); -int t3_push_frames(struct socket *so, int req_completion); -int t3_connect(struct toedev *tdev, struct socket *so, struct rtentry *rt, - struct sockaddr *nam); -void t3_init_listen_cpl_handlers(void); -int t3_init_cpl_io(void); -void t3_init_wr_tab(unsigned int wr_len); -uint32_t t3_send_rx_credits(struct tcpcb *tp, uint32_t credits, uint32_t dack, int nofail); -void t3_send_rx_modulate(struct toepcb *toep); -void t3_cleanup_rbuf(struct tcpcb *tp, int copied); - -void t3_init_socket_ops(void); -void t3_install_socket_ops(struct socket *so); - - -void t3_disconnect_acceptq(struct socket *listen_so); -void t3_reset_synq(struct listen_ctx *ctx); -void t3_defer_reply(struct mbuf *m, struct toedev *dev, defer_handler_t handler); - -struct toepcb *toepcb_alloc(void); -void toepcb_hold(struct toepcb *); -void toepcb_release(struct toepcb *); -void toepcb_init(struct toepcb *); - -void t3_set_rcv_coalesce_enable(struct toepcb *toep, int on_off); -void t3_set_dack_mss(struct toepcb *toep, int on); -void t3_set_keepalive(struct toepcb *toep, int on_off); -void t3_set_ddp_tag(struct toepcb *toep, int buf_idx, unsigned int tag); -void t3_set_ddp_buf(struct toepcb *toep, int buf_idx, unsigned int offset, - unsigned int len); -int t3_get_tcb(struct toepcb *toep); - -int t3_ctloutput(struct socket *so, struct sockopt *sopt); - -#endif diff --git a/sys/dev/cxgb/ulp/tom/cxgb_l2t.c b/sys/dev/cxgb/ulp/tom/cxgb_l2t.c index 248492308fcc..4352f33e6cd1 100644 --- a/sys/dev/cxgb/ulp/tom/cxgb_l2t.c +++ b/sys/dev/cxgb/ulp/tom/cxgb_l2t.c @@ -1,76 +1,61 @@ -/************************************************************************** - -Copyright (c) 2007, Chelsio Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2. Neither the name of the Chelsio Corporation nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -***************************************************************************/ +/*- + * Copyright (c) 2012 Chelsio Communications, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ #include __FBSDID("$FreeBSD$"); +#include "opt_inet.h" + +#ifdef TCP_OFFLOAD #include #include #include #include #include -#include -#include -#if __FreeBSD_version > 700000 -#include -#endif - #include #include #include #include -#include -#include #include -#include +#include -#include -#include +#include "cxgb_include.h" +#include "ulp/tom/cxgb_tom.h" +#include "ulp/tom/cxgb_l2t.h" -#define VLAN_NONE 0xfff -#define SDL(s) ((struct sockaddr_dl *)s) -#define RT_ENADDR(sa) ((u_char *)LLADDR(SDL((sa)))) -#define rt_expire rt_rmx.rmx_expire - -struct llinfo_arp { - struct callout la_timer; - struct rtentry *la_rt; - struct mbuf *la_hold; /* last packet until resolved/timeout */ - u_short la_preempt; /* countdown for pre-expiry arps */ - u_short la_asked; /* # requests sent */ -}; +#define VLAN_NONE 0xfff +#define SA(x) ((struct sockaddr *)(x)) +#define SIN(x) ((struct sockaddr_in *)(x)) +#define SINADDR(x) (SIN(x)->sin_addr.s_addr) /* * Module locking notes: There is a RW lock protecting the L2 table as a - * whole plus a spinlock per L2T entry. Entry lookups and allocations happen + * whole plus a mutex per L2T entry. Entry lookups and allocations happen * under the protection of the table lock, individual entry changes happen - * while holding that entry's spinlock. The table lock nests outside the + * while holding that entry's mutex. The table lock nests outside the * entry locks. Allocations of new entries take the table lock as writers so * no other lookups can happen while allocating new entries. Entry updates * take the table lock as readers so multiple entries can be updated in @@ -78,72 +63,60 @@ struct llinfo_arp { * and therefore can happen in parallel with entry allocation but no entry * can change state or increment its ref count during allocation as both of * these perform lookups. + * + * When acquiring multiple locks, the order is llentry -> L2 table -> L2 entry. */ -static inline unsigned int -vlan_prio(const struct l2t_entry *e) -{ - return e->vlan >> 13; -} - static inline unsigned int arp_hash(u32 key, int ifindex, const struct l2t_data *d) { return jhash_2words(key, ifindex, 0) & (d->nentries - 1); } -static inline void -neigh_replace(struct l2t_entry *e, struct llentry *neigh) -{ - LLE_WLOCK(neigh); - LLE_ADDREF(neigh); - LLE_WUNLOCK(neigh); - - if (e->neigh) - LLE_FREE(e->neigh); - e->neigh = neigh; -} - /* - * Set up an L2T entry and send any packets waiting in the arp queue. The - * supplied mbuf is used for the CPL_L2T_WRITE_REQ. Must be called with the - * entry locked. + * Set up an L2T entry and send any packets waiting in the arp queue. Must be + * called with the entry locked. */ static int -setup_l2e_send_pending(struct t3cdev *dev, struct mbuf *m, - struct l2t_entry *e) +setup_l2e_send_pending(struct adapter *sc, struct l2t_entry *e) { + struct mbuf *m; struct cpl_l2t_write_req *req; + struct port_info *pi = &sc->port[e->smt_idx]; /* smt_idx is port_id */ - if (!m) { - if ((m = m_gethdr(M_NOWAIT, MT_DATA)) == NULL) - return (ENOMEM); + mtx_assert(&e->lock, MA_OWNED); + + m = M_GETHDR_OFLD(pi->first_qset, CPL_PRIORITY_CONTROL, req); + if (m == NULL) { + log(LOG_ERR, "%s: no mbuf, can't setup L2 entry at index %d\n", + __func__, e->idx); + return (ENOMEM); } - /* - * XXX MH_ALIGN - */ - req = mtod(m, struct cpl_l2t_write_req *); - m->m_pkthdr.len = m->m_len = sizeof(*req); - - req->wr.wr_hi = htonl(V_WR_OP(FW_WROPCODE_FORWARD)); + + req->wr.wrh_hi = htonl(V_WR_OP(FW_WROPCODE_FORWARD)); OPCODE_TID(req) = htonl(MK_OPCODE_TID(CPL_L2T_WRITE_REQ, e->idx)); req->params = htonl(V_L2T_W_IDX(e->idx) | V_L2T_W_IFF(e->smt_idx) | - V_L2T_W_VLAN(e->vlan & EVL_VLID_MASK) | - V_L2T_W_PRIO(vlan_prio(e))); - + V_L2T_W_VLAN(e->vlan & EVL_VLID_MASK) | + V_L2T_W_PRIO(EVL_PRIOFTAG(e->vlan))); memcpy(req->dst_mac, e->dmac, sizeof(req->dst_mac)); - m_set_priority(m, CPL_PRIORITY_CONTROL); - cxgb_ofld_send(dev, m); + + t3_offload_tx(sc, m); + + /* + * XXX: We used pi->first_qset to send the L2T_WRITE_REQ. If any mbuf + * on the arpq is going out via another queue set associated with the + * port then it has a bad race with the L2T_WRITE_REQ. Ideally we + * should wait till the reply to the write before draining the arpq. + */ while (e->arpq_head) { m = e->arpq_head; e->arpq_head = m->m_next; m->m_next = NULL; - cxgb_ofld_send(dev, m); + t3_offload_tx(sc, m); } e->arpq_tail = NULL; - e->state = L2T_STATE_VALID; - return 0; + return (0); } /* @@ -153,6 +126,8 @@ setup_l2e_send_pending(struct t3cdev *dev, struct mbuf *m, static inline void arpq_enqueue(struct l2t_entry *e, struct mbuf *m) { + mtx_assert(&e->lock, MA_OWNED); + m->m_next = NULL; if (e->arpq_head) e->arpq_tail->m_next = m; @@ -161,113 +136,149 @@ arpq_enqueue(struct l2t_entry *e, struct mbuf *m) e->arpq_tail = m; } -int -t3_l2t_send_slow(struct t3cdev *dev, struct mbuf *m, struct l2t_entry *e) +static void +resolution_failed_mbuf(struct mbuf *m) { - struct llentry *lle = e->neigh; - struct sockaddr_in sin; + log(LOG_ERR, "%s: leaked mbuf %p, CPL at %p", + __func__, m, mtod(m, void *)); +} + +static void +resolution_failed(struct l2t_entry *e) +{ + struct mbuf *m; + + mtx_assert(&e->lock, MA_OWNED); + + while (e->arpq_head) { + m = e->arpq_head; + e->arpq_head = m->m_next; + m->m_next = NULL; + resolution_failed_mbuf(m); + } + e->arpq_tail = NULL; +} + +static void +update_entry(struct adapter *sc, struct l2t_entry *e, uint8_t *lladdr, + uint16_t vtag) +{ + + mtx_assert(&e->lock, MA_OWNED); + + /* + * The entry may be in active use (e->refcount > 0) or not. We update + * it even when it's not as this simplifies the case where we decide to + * reuse the entry later. + */ + + if (lladdr == NULL && + (e->state == L2T_STATE_RESOLVING || e->state == L2T_STATE_FAILED)) { + /* + * Never got a valid L2 address for this one. Just mark it as + * failed instead of removing it from the hash (for which we'd + * need to wlock the table). + */ + e->state = L2T_STATE_FAILED; + resolution_failed(e); + return; + + } else if (lladdr == NULL) { + + /* Valid or already-stale entry was deleted (or expired) */ + + KASSERT(e->state == L2T_STATE_VALID || + e->state == L2T_STATE_STALE, + ("%s: lladdr NULL, state %d", __func__, e->state)); + + e->state = L2T_STATE_STALE; + + } else { + + if (e->state == L2T_STATE_RESOLVING || + e->state == L2T_STATE_FAILED || + memcmp(e->dmac, lladdr, ETHER_ADDR_LEN)) { + + /* unresolved -> resolved; or dmac changed */ + + memcpy(e->dmac, lladdr, ETHER_ADDR_LEN); + e->vlan = vtag; + setup_l2e_send_pending(sc, e); + } + e->state = L2T_STATE_VALID; + } +} + +static int +resolve_entry(struct adapter *sc, struct l2t_entry *e) +{ + struct tom_data *td = sc->tom_softc; + struct toedev *tod = &td->tod; + struct sockaddr_in sin = {0}; + uint8_t dmac[ETHER_ADDR_LEN]; + uint16_t vtag = EVL_VLID_MASK; + int rc; - bzero(&sin, sizeof(struct sockaddr_in)); sin.sin_family = AF_INET; sin.sin_len = sizeof(struct sockaddr_in); - sin.sin_addr.s_addr = e->addr; + SINADDR(&sin) = e->addr; + + rc = toe_l2_resolve(tod, e->ifp, SA(&sin), dmac, &vtag); + if (rc == EWOULDBLOCK) + return (rc); + + mtx_lock(&e->lock); + update_entry(sc, e, rc == 0 ? dmac : NULL, vtag); + mtx_unlock(&e->lock); + + return (rc); +} + +int +t3_l2t_send_slow(struct adapter *sc, struct mbuf *m, struct l2t_entry *e) +{ - CTR2(KTR_CXGB, "send slow on rt=%p eaddr=0x%08x\n", rt, e->addr); again: switch (e->state) { case L2T_STATE_STALE: /* entry is stale, kick off revalidation */ - arpresolve(rt->rt_ifp, rt, NULL, - (struct sockaddr *)&sin, e->dmac, &lle); - mtx_lock(&e->lock); - if (e->state == L2T_STATE_STALE) - e->state = L2T_STATE_VALID; - mtx_unlock(&e->lock); + + if (resolve_entry(sc, e) != EWOULDBLOCK) + goto again; /* entry updated, re-examine state */ + + /* Fall through */ + case L2T_STATE_VALID: /* fast-path, send the packet on */ - return cxgb_ofld_send(dev, m); + + return (t3_offload_tx(sc, m)); + case L2T_STATE_RESOLVING: mtx_lock(&e->lock); - if (e->state != L2T_STATE_RESOLVING) { // ARP already completed + if (e->state != L2T_STATE_RESOLVING) { mtx_unlock(&e->lock); goto again; } arpq_enqueue(e, m); mtx_unlock(&e->lock); - /* - * Only the first packet added to the arpq should kick off - * resolution. However, because the m_gethdr below can fail, - * we allow each packet added to the arpq to retry resolution - * as a way of recovering from transient memory exhaustion. - * A better way would be to use a work request to retry L2T - * entries when there's no memory. - */ - if (arpresolve(rt->rt_ifp, rt, NULL, - (struct sockaddr *)&sin, e->dmac, &lle) == 0) { - CTR6(KTR_CXGB, "mac=%x:%x:%x:%x:%x:%x\n", - e->dmac[0], e->dmac[1], e->dmac[2], e->dmac[3], e->dmac[4], e->dmac[5]); - - if ((m = m_gethdr(M_NOWAIT, MT_DATA)) == NULL) - return (ENOMEM); - mtx_lock(&e->lock); - if (e->arpq_head) - setup_l2e_send_pending(dev, m, e); - else - m_freem(m); - mtx_unlock(&e->lock); - } + if (resolve_entry(sc, e) == EWOULDBLOCK) + break; + + mtx_lock(&e->lock); + if (e->state == L2T_STATE_VALID && e->arpq_head) + setup_l2e_send_pending(sc, e); + if (e->state == L2T_STATE_FAILED) + resolution_failed(e); + mtx_unlock(&e->lock); + break; + + case L2T_STATE_FAILED: + resolution_failed_mbuf(m); + return (EHOSTUNREACH); } - return 0; + + return (0); } -void -t3_l2t_send_event(struct t3cdev *dev, struct l2t_entry *e) -{ - struct mbuf *m0; - struct sockaddr_in sin; - sin.sin_family = AF_INET; - sin.sin_len = sizeof(struct sockaddr_in); - sin.sin_addr.s_addr = e->addr; - struct llentry *lle; - - if ((m0 = m_gethdr(M_NOWAIT, MT_DATA)) == NULL) - return; - - rt = e->neigh; -again: - switch (e->state) { - case L2T_STATE_STALE: /* entry is stale, kick off revalidation */ - arpresolve(rt->rt_ifp, rt, NULL, - (struct sockaddr *)&sin, e->dmac, &lle); - mtx_lock(&e->lock); - if (e->state == L2T_STATE_STALE) { - e->state = L2T_STATE_VALID; - } - mtx_unlock(&e->lock); - return; - case L2T_STATE_VALID: /* fast-path, send the packet on */ - return; - case L2T_STATE_RESOLVING: - mtx_lock(&e->lock); - if (e->state != L2T_STATE_RESOLVING) { // ARP already completed - mtx_unlock(&e->lock); - goto again; - } - mtx_unlock(&e->lock); - - /* - * Only the first packet added to the arpq should kick off - * resolution. However, because the alloc_skb below can fail, - * we allow each packet added to the arpq to retry resolution - * as a way of recovering from transient memory exhaustion. - * A better way would be to use a work request to retry L2T - * entries when there's no memory. - */ - arpresolve(rt->rt_ifp, rt, NULL, - (struct sockaddr *)&sin, e->dmac, &lle); - - } - return; -} /* * Allocate a free L2T entry. Must be called with l2t_data.lock held. */ @@ -276,15 +287,19 @@ alloc_l2e(struct l2t_data *d) { struct l2t_entry *end, *e, **p; + rw_assert(&d->lock, RA_WLOCKED); + if (!atomic_load_acq_int(&d->nfree)) - return NULL; + return (NULL); /* there's definitely a free entry */ - for (e = d->rover, end = &d->l2tab[d->nentries]; e != end; ++e) + for (e = d->rover, end = &d->l2tab[d->nentries]; e != end; ++e) { if (atomic_load_acq_int(&e->refcnt) == 0) goto found; + } - for (e = &d->l2tab[1]; atomic_load_acq_int(&e->refcnt); ++e) ; + for (e = &d->l2tab[1]; atomic_load_acq_int(&e->refcnt); ++e) + continue; found: d->rover = e + 1; atomic_add_int(&d->nfree, -1); @@ -294,90 +309,37 @@ alloc_l2e(struct l2t_data *d) * presently in the hash table. We need to remove it. */ if (e->state != L2T_STATE_UNUSED) { - int hash = arp_hash(e->addr, e->ifindex, d); + int hash = arp_hash(e->addr, e->ifp->if_index, d); - for (p = &d->l2tab[hash].first; *p; p = &(*p)->next) + for (p = &d->l2tab[hash].first; *p; p = &(*p)->next) { if (*p == e) { *p = e->next; break; } + } e->state = L2T_STATE_UNUSED; } - - return e; -} -/* - * Called when an L2T entry has no more users. The entry is left in the hash - * table since it is likely to be reused but we also bump nfree to indicate - * that the entry can be reallocated for a different neighbor. We also drop - * the existing neighbor reference in case the neighbor is going away and is - * waiting on our reference. - * - * Because entries can be reallocated to other neighbors once their ref count - * drops to 0 we need to take the entry's lock to avoid races with a new - * incarnation. - */ -void -t3_l2e_free(struct l2t_data *d, struct l2t_entry *e) -{ - struct llentry *lle; - - mtx_lock(&e->lock); - if (atomic_load_acq_int(&e->refcnt) == 0) { /* hasn't been recycled */ - lle = e->neigh; - e->neigh = NULL; - } - - mtx_unlock(&e->lock); - atomic_add_int(&d->nfree, 1); - if (lle) - LLE_FREE(lle); -} - - -/* - * Update an L2T entry that was previously used for the same next hop as neigh. - * Must be called with softirqs disabled. - */ -static inline void -reuse_entry(struct l2t_entry *e, struct llentry *neigh) -{ - - mtx_lock(&e->lock); /* avoid race with t3_l2t_free */ - if (neigh != e->neigh) - neigh_replace(e, neigh); - - if (memcmp(e->dmac, RT_ENADDR(neigh->rt_gateway), sizeof(e->dmac)) || - (neigh->rt_expire > time_uptime)) - e->state = L2T_STATE_RESOLVING; - else if (la->la_hold == NULL) - e->state = L2T_STATE_VALID; - else - e->state = L2T_STATE_STALE; - mtx_unlock(&e->lock); + return (e); } struct l2t_entry * -t3_l2t_get(struct t3cdev *dev, struct llentry *neigh, struct ifnet *ifp, - struct sockaddr *sa) +t3_l2t_get(struct port_info *pi, struct ifnet *ifp, struct sockaddr *sa) { + struct tom_data *td = pi->adapter->tom_softc; struct l2t_entry *e; - struct l2t_data *d = L2DATA(dev); - u32 addr = ((struct sockaddr_in *)sa)->sin_addr.s_addr; - int ifidx = ifp->if_index; - int hash = arp_hash(addr, ifidx, d); - unsigned int smt_idx = ((struct port_info *)ifp->if_softc)->port_id; + struct l2t_data *d = td->l2t; + uint32_t addr = SINADDR(sa); + int hash = arp_hash(addr, ifp->if_index, d); + unsigned int smt_idx = pi->port_id; rw_wlock(&d->lock); - for (e = d->l2tab[hash].first; e; e = e->next) - if (e->addr == addr && e->ifindex == ifidx && - e->smt_idx == smt_idx) { + for (e = d->l2tab[hash].first; e; e = e->next) { + if (e->addr == addr && e->ifp == ifp && e->smt_idx == smt_idx) { l2t_hold(d, e); - if (atomic_load_acq_int(&e->refcnt) == 1) - reuse_entry(e, neigh); goto done; } + } /* Need to allocate a new entry */ e = alloc_l2e(d); @@ -385,116 +347,59 @@ t3_l2t_get(struct t3cdev *dev, struct llentry *neigh, struct ifnet *ifp, mtx_lock(&e->lock); /* avoid race with t3_l2t_free */ e->next = d->l2tab[hash].first; d->l2tab[hash].first = e; - rw_wunlock(&d->lock); - + e->state = L2T_STATE_RESOLVING; e->addr = addr; - e->ifindex = ifidx; + e->ifp = ifp; e->smt_idx = smt_idx; atomic_store_rel_int(&e->refcnt, 1); - e->neigh = NULL; - - - neigh_replace(e, neigh); -#ifdef notyet - /* - * XXX need to add accessor function for vlan tag - */ - if (neigh->rt_ifp->if_vlantrunk) - e->vlan = VLAN_DEV_INFO(neigh->dev)->vlan_id; - else -#endif - e->vlan = VLAN_NONE; - mtx_unlock(&e->lock); - return (e); + KASSERT(ifp->if_vlantrunk == NULL, ("TOE+VLAN unimplemented.")); + e->vlan = VLAN_NONE; + + mtx_unlock(&e->lock); } - + done: rw_wunlock(&d->lock); - return e; -} - -/* - * Called when address resolution fails for an L2T entry to handle packets - * on the arpq head. If a packet specifies a failure handler it is invoked, - * otherwise the packets is sent to the TOE. - * - * XXX: maybe we should abandon the latter behavior and just require a failure - * handler. - */ -static void -handle_failed_resolution(struct t3cdev *dev, struct mbuf *arpq) -{ - - while (arpq) { - struct mbuf *m = arpq; -#ifdef notyet - struct l2t_mbuf_cb *cb = L2T_MBUF_CB(m); -#endif - arpq = m->m_next; - m->m_next = NULL; -#ifdef notyet - if (cb->arp_failure_handler) - cb->arp_failure_handler(dev, m); - else -#endif - cxgb_ofld_send(dev, m); - } + return (e); } void -t3_l2t_update(struct t3cdev *dev, struct llentry *neigh, - uint8_t *enaddr, struct sockaddr *sa) +t3_l2_update(struct toedev *tod, struct ifnet *ifp, struct sockaddr *sa, + uint8_t *lladdr, uint16_t vtag) { + struct tom_data *td = t3_tomdata(tod); + struct adapter *sc = tod->tod_softc; struct l2t_entry *e; - struct mbuf *arpq = NULL; - struct l2t_data *d = L2DATA(dev); - u32 addr = *(u32 *) &((struct sockaddr_in *)sa)->sin_addr; - int hash = arp_hash(addr, ifidx, d); - struct llinfo_arp *la; + struct l2t_data *d = td->l2t; + u32 addr = *(u32 *) &SIN(sa)->sin_addr; + int hash = arp_hash(addr, ifp->if_index, d); rw_rlock(&d->lock); for (e = d->l2tab[hash].first; e; e = e->next) - if (e->addr == addr) { + if (e->addr == addr && e->ifp == ifp) { mtx_lock(&e->lock); goto found; } rw_runlock(&d->lock); - CTR1(KTR_CXGB, "t3_l2t_update: addr=0x%08x not found", addr); + + /* + * This is of no interest to us. We've never had an offloaded + * connection to this destination, and we aren't attempting one right + * now. + */ return; found: - printf("found 0x%08x\n", addr); - rw_runlock(&d->lock); - memcpy(e->dmac, enaddr, ETHER_ADDR_LEN); - printf("mac=%x:%x:%x:%x:%x:%x\n", - e->dmac[0], e->dmac[1], e->dmac[2], e->dmac[3], e->dmac[4], e->dmac[5]); - - if (atomic_load_acq_int(&e->refcnt)) { - if (neigh != e->neigh) - neigh_replace(e, neigh); - - la = (struct llinfo_arp *)neigh->rt_llinfo; - if (e->state == L2T_STATE_RESOLVING) { - - if (la->la_asked >= 5 /* arp_maxtries */) { - arpq = e->arpq_head; - e->arpq_head = e->arpq_tail = NULL; - } else - setup_l2e_send_pending(dev, NULL, e); - } else { - e->state = L2T_STATE_VALID; - if (memcmp(e->dmac, RT_ENADDR(neigh->rt_gateway), 6)) - setup_l2e_send_pending(dev, NULL, e); - } - } - mtx_unlock(&e->lock); - if (arpq) - handle_failed_resolution(dev, arpq); + KASSERT(e->state != L2T_STATE_UNUSED, + ("%s: unused entry in the hash.", __func__)); + + update_entry(sc, e, lladdr, vtag); + mtx_unlock(&e->lock); } struct l2t_data * @@ -503,9 +408,9 @@ t3_init_l2t(unsigned int l2t_capacity) struct l2t_data *d; int i, size = sizeof(*d) + l2t_capacity * sizeof(struct l2t_entry); - d = cxgb_alloc_mem(size); + d = malloc(size, M_CXGB, M_NOWAIT | M_ZERO); if (!d) - return NULL; + return (NULL); d->nentries = l2t_capacity; d->rover = &d->l2tab[1]; /* entry 0 is not used */ @@ -515,10 +420,10 @@ t3_init_l2t(unsigned int l2t_capacity) for (i = 0; i < l2t_capacity; ++i) { d->l2tab[i].idx = i; d->l2tab[i].state = L2T_STATE_UNUSED; - mtx_init(&d->l2tab[i].lock, "L2TAB", NULL, MTX_DEF); + mtx_init(&d->l2tab[i].lock, "L2T_E", NULL, MTX_DEF); atomic_store_rel_int(&d->l2tab[i].refcnt, 0); } - return d; + return (d); } void @@ -530,5 +435,26 @@ t3_free_l2t(struct l2t_data *d) for (i = 0; i < d->nentries; ++i) mtx_destroy(&d->l2tab[i].lock); - cxgb_free_mem(d); + free(d, M_CXGB); } + +static int +do_l2t_write_rpl(struct sge_qset *qs, struct rsp_desc *r, struct mbuf *m) +{ + struct cpl_l2t_write_rpl *rpl = mtod(m, void *); + + if (rpl->status != CPL_ERR_NONE) + log(LOG_ERR, + "Unexpected L2T_WRITE_RPL status %u for entry %u\n", + rpl->status, GET_TID(rpl)); + + m_freem(m); + return (0); +} + +void +t3_init_l2t_cpl_handlers(struct adapter *sc) +{ + t3_register_cpl_handler(sc, CPL_L2T_WRITE_RPL, do_l2t_write_rpl); +} +#endif diff --git a/sys/dev/cxgb/ulp/tom/cxgb_l2t.h b/sys/dev/cxgb/ulp/tom/cxgb_l2t.h index 308ba66bda2f..d3ddf9d50bf3 100644 --- a/sys/dev/cxgb/ulp/tom/cxgb_l2t.h +++ b/sys/dev/cxgb/ulp/tom/cxgb_l2t.h @@ -1,6 +1,6 @@ /************************************************************************** -Copyright (c) 2007-2008, Chelsio Inc. +Copyright (c) 2007-2009, Chelsio Inc. All rights reserved. Redistribution and use in source and binary forms, with or without @@ -31,26 +31,19 @@ POSSIBILITY OF SUCH DAMAGE. #ifndef _CHELSIO_L2T_H #define _CHELSIO_L2T_H -#include #include - -#if __FreeBSD_version > 700000 #include -#else -#define rwlock mtx -#define rw_wlock(x) mtx_lock((x)) -#define rw_wunlock(x) mtx_unlock((x)) -#define rw_rlock(x) mtx_lock((x)) -#define rw_runlock(x) mtx_unlock((x)) -#define rw_init(x, str) mtx_init((x), (str), NULL, MTX_DEF) -#define rw_destroy(x) mtx_destroy((x)) -#endif enum { - L2T_STATE_VALID, /* entry is up to date */ - L2T_STATE_STALE, /* entry may be used but needs revalidation */ - L2T_STATE_RESOLVING, /* entry needs address resolution */ - L2T_STATE_UNUSED /* entry not in use */ + L2T_SIZE = 2048 +}; + +enum { + L2T_STATE_VALID, /* entry is up to date */ + L2T_STATE_STALE, /* entry may be used but needs revalidation */ + L2T_STATE_RESOLVING, /* entry needs address resolution */ + L2T_STATE_FAILED, /* failed to resolve */ + L2T_STATE_UNUSED /* entry not in use */ }; /* @@ -64,18 +57,17 @@ enum { struct l2t_entry { uint16_t state; /* entry state */ uint16_t idx; /* entry index */ - uint32_t addr; /* dest IP address */ - int ifindex; /* neighbor's net_device's ifindex */ + uint32_t addr; /* nexthop IP address */ + struct ifnet *ifp; /* outgoing interface */ uint16_t smt_idx; /* SMT index */ uint16_t vlan; /* VLAN TCI (id: bits 0-11, prio: 13-15 */ - struct llentry *neigh; /* associated neighbour */ struct l2t_entry *first; /* start of hash chain */ struct l2t_entry *next; /* next l2t_entry on chain */ struct mbuf *arpq_head; /* queue of packets awaiting resolution */ struct mbuf *arpq_tail; struct mtx lock; volatile uint32_t refcnt; /* entry reference count */ - uint8_t dmac[6]; /* neighbour's MAC address */ + uint8_t dmac[ETHER_ADDR_LEN]; /* nexthop's MAC address */ }; struct l2t_data { @@ -86,76 +78,37 @@ struct l2t_data { struct l2t_entry l2tab[0]; }; -typedef void (*arp_failure_handler_func)(struct t3cdev *dev, - struct mbuf *m); +void t3_l2e_free(struct l2t_data *, struct l2t_entry *e); +void t3_l2_update(struct toedev *tod, struct ifnet *ifp, struct sockaddr *sa, + uint8_t *lladdr, uint16_t vtag); +struct l2t_entry *t3_l2t_get(struct port_info *, struct ifnet *, + struct sockaddr *); +int t3_l2t_send_slow(struct adapter *, struct mbuf *, struct l2t_entry *); +struct l2t_data *t3_init_l2t(unsigned int); +void t3_free_l2t(struct l2t_data *); +void t3_init_l2t_cpl_handlers(struct adapter *); -typedef void (*opaque_arp_failure_handler_func)(void *dev, - struct mbuf *m); - -/* - * Callback stored in an skb to handle address resolution failure. - */ -struct l2t_mbuf_cb { - arp_failure_handler_func arp_failure_handler; -}; - -/* - * XXX - */ -#define L2T_MBUF_CB(skb) ((struct l2t_mbuf_cb *)(skb)->cb) - - -static __inline void set_arp_failure_handler(struct mbuf *m, - arp_failure_handler_func hnd) +static inline int +l2t_send(struct adapter *sc, struct mbuf *m, struct l2t_entry *e) { - m->m_pkthdr.header = (opaque_arp_failure_handler_func)hnd; - + if (__predict_true(e->state == L2T_STATE_VALID)) + return t3_offload_tx(sc, m); + else + return t3_l2t_send_slow(sc, m, e); } -/* - * Getting to the L2 data from an offload device. - */ -#define L2DATA(dev) ((dev)->l2opt) - -void t3_l2e_free(struct l2t_data *d, struct l2t_entry *e); -void t3_l2t_update(struct t3cdev *dev, struct rtentry *rt, uint8_t *enaddr, struct sockaddr *sa); -struct l2t_entry *t3_l2t_get(struct t3cdev *dev, struct rtentry *neigh, - struct ifnet *ifp, struct sockaddr *sa); -int t3_l2t_send_slow(struct t3cdev *dev, struct mbuf *m, - struct l2t_entry *e); -void t3_l2t_send_event(struct t3cdev *dev, struct l2t_entry *e); -struct l2t_data *t3_init_l2t(unsigned int l2t_capacity); -void t3_free_l2t(struct l2t_data *d); - -#ifdef CONFIG_PROC_FS -int t3_l2t_proc_setup(struct proc_dir_entry *dir, struct l2t_data *d); -void t3_l2t_proc_free(struct proc_dir_entry *dir); -#else -#define l2t_proc_setup(dir, d) 0 -#define l2t_proc_free(dir) -#endif - -int cxgb_ofld_send(struct t3cdev *dev, struct mbuf *m); - -static inline int l2t_send(struct t3cdev *dev, struct mbuf *m, - struct l2t_entry *e) +static inline void +l2t_release(struct l2t_data *d, struct l2t_entry *e) { - if (__predict_true(e->state == L2T_STATE_VALID)) { - return cxgb_ofld_send(dev, (struct mbuf *)m); - } - return t3_l2t_send_slow(dev, (struct mbuf *)m, e); -} - -static inline void l2t_release(struct l2t_data *d, struct l2t_entry *e) -{ - if (atomic_fetchadd_int(&e->refcnt, -1) == 1) - t3_l2e_free(d, e); -} - -static inline void l2t_hold(struct l2t_data *d, struct l2t_entry *e) -{ - if (atomic_fetchadd_int(&e->refcnt, 1) == 1) /* 0 -> 1 transition */ + if (atomic_fetchadd_int(&e->refcnt, -1) == 1) /* 1 -> 0 transition */ atomic_add_int(&d->nfree, 1); } +static inline void +l2t_hold(struct l2t_data *d, struct l2t_entry *e) +{ + if (atomic_fetchadd_int(&e->refcnt, 1) == 0) /* 0 -> 1 transition */ + atomic_add_int(&d->nfree, -1); +} + #endif diff --git a/sys/dev/cxgb/ulp/tom/cxgb_listen.c b/sys/dev/cxgb/ulp/tom/cxgb_listen.c index 5dc2d9f09fcf..c80abf0165b8 100644 --- a/sys/dev/cxgb/ulp/tom/cxgb_listen.c +++ b/sys/dev/cxgb/ulp/tom/cxgb_listen.c @@ -1,280 +1,237 @@ -/************************************************************************** - -Copyright (c) 2007, Chelsio Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2. Neither the name of the Chelsio Corporation nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -***************************************************************************/ +/*- + * Copyright (c) 2012 Chelsio Communications, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ #include __FBSDID("$FreeBSD$"); +#include "opt_inet.h" + +#ifdef TCP_OFFLOAD #include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - +#include #include -#include - +#include +#include #include #include - #include +#include #include -#include #include - - -#include -#include - -#include #include +#define TCPSTATES #include +#include -#include -#include +#include "cxgb_include.h" +#include "ulp/tom/cxgb_tom.h" +#include "ulp/tom/cxgb_l2t.h" +#include "ulp/tom/cxgb_toepcb.h" -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +static void t3_send_reset_synqe(struct toedev *, struct synq_entry *); - -static struct listen_info *listen_hash_add(struct tom_data *d, struct socket *so, unsigned int stid); -static int listen_hash_del(struct tom_data *d, struct socket *so); - -/* - * Process a CPL_CLOSE_LISTSRV_RPL message. If the status is good we release - * the STID. - */ static int -do_close_server_rpl(struct t3cdev *cdev, struct mbuf *m, void *ctx) +alloc_stid(struct tid_info *t, void *ctx) { - struct cpl_close_listserv_rpl *rpl = cplhdr(m); - unsigned int stid = GET_TID(rpl); + int stid = -1; - if (rpl->status != CPL_ERR_NONE) - log(LOG_ERR, "Unexpected CLOSE_LISTSRV_RPL status %u for " - "STID %u\n", rpl->status, stid); - else { - struct listen_ctx *listen_ctx = (struct listen_ctx *)ctx; + mtx_lock(&t->stid_lock); + if (t->sfree) { + union listen_entry *p = t->sfree; - cxgb_free_stid(cdev, stid); - free(listen_ctx, M_CXGB); + stid = (p - t->stid_tab) + t->stid_base; + t->sfree = p->next; + p->ctx = ctx; + t->stids_in_use++; } - - return (CPL_RET_BUF_DONE); -} - -/* - * Process a CPL_PASS_OPEN_RPL message. Remove the socket from the listen hash - * table and free the STID if there was any error, otherwise nothing to do. - */ -static int -do_pass_open_rpl(struct t3cdev *cdev, struct mbuf *m, void *ctx) -{ - struct cpl_pass_open_rpl *rpl = cplhdr(m); - - if (rpl->status != CPL_ERR_NONE) { - int stid = GET_TID(rpl); - struct listen_ctx *listen_ctx = (struct listen_ctx *)ctx; - struct tom_data *d = listen_ctx->tom_data; - struct socket *lso = listen_ctx->lso; - -#if VALIDATE_TID - if (!lso) - return (CPL_RET_UNKNOWN_TID | CPL_RET_BUF_DONE); -#endif - /* - * Note: It is safe to unconditionally call listen_hash_del() - * at this point without risking unhashing a reincarnation of - * an already closed socket (i.e., there is no listen, close, - * listen, free the sock for the second listen while processing - * a message for the first race) because we are still holding - * a reference on the socket. It is possible that the unhash - * will fail because the socket is already closed, but we can't - * unhash the wrong socket because it is impossible for the - * socket to which this message refers to have reincarnated. - */ - listen_hash_del(d, lso); - cxgb_free_stid(cdev, stid); -#ifdef notyet - /* - * XXX need to unreference the inpcb - * but we have no way of knowing that other TOMs aren't referencing it - */ - sock_put(lso); -#endif - free(listen_ctx, M_CXGB); - } - return CPL_RET_BUF_DONE; -} - -void -t3_init_listen_cpl_handlers(void) -{ - t3tom_register_cpl_handler(CPL_PASS_OPEN_RPL, do_pass_open_rpl); - t3tom_register_cpl_handler(CPL_CLOSE_LISTSRV_RPL, do_close_server_rpl); -} - -static inline int -listen_hashfn(const struct socket *so) -{ - return ((unsigned long)so >> 10) & (LISTEN_INFO_HASH_SIZE - 1); -} - -/* - * Create and add a listen_info entry to the listen hash table. This and the - * listen hash table functions below cannot be called from softirqs. - */ -static struct listen_info * -listen_hash_add(struct tom_data *d, struct socket *so, unsigned int stid) -{ - struct listen_info *p; - - p = malloc(sizeof(*p), M_CXGB, M_NOWAIT|M_ZERO); - if (p) { - int bucket = listen_hashfn(so); - - p->so = so; /* just a key, no need to take a reference */ - p->stid = stid; - mtx_lock(&d->listen_lock); - p->next = d->listen_hash_tab[bucket]; - d->listen_hash_tab[bucket] = p; - mtx_unlock(&d->listen_lock); - } - return p; -} - -/* - * Given a pointer to a listening socket return its server TID by consulting - * the socket->stid map. Returns -1 if the socket is not in the map. - */ -static int -listen_hash_find(struct tom_data *d, struct socket *so) -{ - int stid = -1, bucket = listen_hashfn(so); - struct listen_info *p; - - mtx_lock(&d->listen_lock); - for (p = d->listen_hash_tab[bucket]; p; p = p->next) - if (p->so == so) { - stid = p->stid; - break; - } - mtx_unlock(&d->listen_lock); - return stid; -} - -/* - * Delete the listen_info structure for a listening socket. Returns the server - * TID for the socket if it is present in the socket->stid map, or -1. - */ -static int -listen_hash_del(struct tom_data *d, struct socket *so) -{ - int bucket, stid = -1; - struct listen_info *p, **prev; - - bucket = listen_hashfn(so); - prev = &d->listen_hash_tab[bucket]; - - mtx_lock(&d->listen_lock); - for (p = *prev; p; prev = &p->next, p = p->next) - if (p->so == so) { - stid = p->stid; - *prev = p->next; - free(p, M_CXGB); - break; - } - mtx_unlock(&d->listen_lock); - + mtx_unlock(&t->stid_lock); return (stid); } -/* - * Start a listening server by sending a passive open request to HW. - */ -void -t3_listen_start(struct toedev *dev, struct socket *so, struct t3cdev *cdev) +static void +free_stid(struct tid_info *t, int stid) +{ + union listen_entry *p = stid2entry(t, stid); + + mtx_lock(&t->stid_lock); + p->next = t->sfree; + t->sfree = p; + t->stids_in_use--; + mtx_unlock(&t->stid_lock); +} + +static struct listen_ctx * +alloc_lctx(struct tom_data *td, struct inpcb *inp, int qset) +{ + struct listen_ctx *lctx; + + INP_WLOCK_ASSERT(inp); + + lctx = malloc(sizeof(struct listen_ctx), M_CXGB, M_NOWAIT | M_ZERO); + if (lctx == NULL) + return (NULL); + + lctx->stid = alloc_stid(&td->tid_maps, lctx); + if (lctx->stid < 0) { + free(lctx, M_CXGB); + return (NULL); + } + + lctx->inp = inp; + in_pcbref(inp); + + lctx->qset = qset; + refcount_init(&lctx->refcnt, 1); + TAILQ_INIT(&lctx->synq); + + return (lctx); +} + +/* Don't call this directly, use release_lctx instead */ +static int +free_lctx(struct tom_data *td, struct listen_ctx *lctx) +{ + struct inpcb *inp = lctx->inp; + + INP_WLOCK_ASSERT(inp); + KASSERT(lctx->refcnt == 0, + ("%s: refcnt %d", __func__, lctx->refcnt)); + KASSERT(TAILQ_EMPTY(&lctx->synq), + ("%s: synq not empty.", __func__)); + KASSERT(lctx->stid >= 0, ("%s: bad stid %d.", __func__, lctx->stid)); + + CTR4(KTR_CXGB, "%s: stid %u, lctx %p, inp %p", + __func__, lctx->stid, lctx, lctx->inp); + + free_stid(&td->tid_maps, lctx->stid); + free(lctx, M_CXGB); + + return in_pcbrele_wlocked(inp); +} + +static void +hold_lctx(struct listen_ctx *lctx) +{ + + refcount_acquire(&lctx->refcnt); +} + +static inline uint32_t +listen_hashfn(void *key, u_long mask) +{ + + return (fnv_32_buf(&key, sizeof(key), FNV1_32_INIT) & mask); +} + +/* + * Add a listen_ctx entry to the listen hash table. + */ +static void +listen_hash_add(struct tom_data *td, struct listen_ctx *lctx) +{ + int bucket = listen_hashfn(lctx->inp, td->listen_mask); + + mtx_lock(&td->lctx_hash_lock); + LIST_INSERT_HEAD(&td->listen_hash[bucket], lctx, link); + td->lctx_count++; + mtx_unlock(&td->lctx_hash_lock); +} + +/* + * Look for the listening socket's context entry in the hash and return it. + */ +static struct listen_ctx * +listen_hash_find(struct tom_data *td, struct inpcb *inp) +{ + int bucket = listen_hashfn(inp, td->listen_mask); + struct listen_ctx *lctx; + + mtx_lock(&td->lctx_hash_lock); + LIST_FOREACH(lctx, &td->listen_hash[bucket], link) { + if (lctx->inp == inp) + break; + } + mtx_unlock(&td->lctx_hash_lock); + + return (lctx); +} + +/* + * Removes the listen_ctx structure for inp from the hash and returns it. + */ +static struct listen_ctx * +listen_hash_del(struct tom_data *td, struct inpcb *inp) +{ + int bucket = listen_hashfn(inp, td->listen_mask); + struct listen_ctx *lctx, *l; + + mtx_lock(&td->lctx_hash_lock); + LIST_FOREACH_SAFE(lctx, &td->listen_hash[bucket], link, l) { + if (lctx->inp == inp) { + LIST_REMOVE(lctx, link); + td->lctx_count--; + break; + } + } + mtx_unlock(&td->lctx_hash_lock); + + return (lctx); +} + +/* + * Releases a hold on the lctx. Must be called with the listening socket's inp + * locked. The inp may be freed by this function and it returns NULL to + * indicate this. + */ +static struct inpcb * +release_lctx(struct tom_data *td, struct listen_ctx *lctx) +{ + struct inpcb *inp = lctx->inp; + int inp_freed = 0; + + INP_WLOCK_ASSERT(inp); + if (refcount_release(&lctx->refcnt)) + inp_freed = free_lctx(td, lctx); + + return (inp_freed ? NULL : inp); +} + +static int +create_server(struct adapter *sc, struct listen_ctx *lctx) { - int stid; struct mbuf *m; struct cpl_pass_open_req *req; - struct tom_data *d = TOM_DATA(dev); - struct inpcb *inp = so_sotoinpcb(so); - struct listen_ctx *ctx; + struct inpcb *inp = lctx->inp; - if (!TOM_TUNABLE(dev, activated)) - return; - - if (listen_hash_find(d, so) != -1) - return; - - CTR1(KTR_TOM, "start listen on port %u", ntohs(inp->inp_lport)); - ctx = malloc(sizeof(*ctx), M_CXGB, M_NOWAIT|M_ZERO); - - if (!ctx) - return; - - ctx->tom_data = d; - ctx->lso = so; - ctx->ulp_mode = TOM_TUNABLE(dev, ddp) && !(so_options_get(so) & SO_NO_DDP) ? ULP_MODE_TCPDDP : 0; - LIST_INIT(&ctx->synq_head); - - stid = cxgb_alloc_stid(d->cdev, d->client, ctx); - if (stid < 0) - goto free_ctx; - - m = m_gethdr(M_NOWAIT, MT_DATA); + m = M_GETHDR_OFLD(lctx->qset, CPL_PRIORITY_CONTROL, req); if (m == NULL) - goto free_stid; - m->m_pkthdr.len = m->m_len = sizeof(*req); - - if (!listen_hash_add(d, so, stid)) - goto free_all; + return (ENOMEM); - req = mtod(m, struct cpl_pass_open_req *); - req->wr.wr_hi = htonl(V_WR_OP(FW_WROPCODE_FORWARD)); - OPCODE_TID(req) = htonl(MK_OPCODE_TID(CPL_PASS_OPEN_REQ, stid)); + req->wr.wrh_hi = htonl(V_WR_OP(FW_WROPCODE_FORWARD)); + OPCODE_TID(req) = htonl(MK_OPCODE_TID(CPL_PASS_OPEN_REQ, lctx->stid)); req->local_port = inp->inp_lport; memcpy(&req->local_ip, &inp->inp_laddr, 4); req->peer_port = 0; @@ -284,60 +241,900 @@ t3_listen_start(struct toedev *dev, struct socket *so, struct t3cdev *cdev) req->opt0l = htonl(V_RCV_BUFSIZ(16)); req->opt1 = htonl(V_CONN_POLICY(CPL_CONN_POLICY_ASK)); - m_set_priority(m, CPL_PRIORITY_LISTEN); - cxgb_ofld_send(cdev, m); - return; + t3_offload_tx(sc, m); -free_all: - m_free(m); -free_stid: - cxgb_free_stid(cdev, stid); -#if 0 - sock_put(sk); -#endif -free_ctx: - free(ctx, M_CXGB); + return (0); +} + +static int +destroy_server(struct adapter *sc, struct listen_ctx *lctx) +{ + struct mbuf *m; + struct cpl_close_listserv_req *req; + + m = M_GETHDR_OFLD(lctx->qset, CPL_PRIORITY_CONTROL, req); + if (m == NULL) + return (ENOMEM); + + req->wr.wrh_hi = htonl(V_WR_OP(FW_WROPCODE_FORWARD)); + OPCODE_TID(req) = htonl(MK_OPCODE_TID(CPL_CLOSE_LISTSRV_REQ, + lctx->stid)); + req->cpu_idx = 0; + + t3_offload_tx(sc, m); + + return (0); +} + +/* + * Process a CPL_CLOSE_LISTSRV_RPL message. If the status is good we release + * the STID. + */ +static int +do_close_server_rpl(struct sge_qset *qs, struct rsp_desc *r, struct mbuf *m) +{ + struct adapter *sc = qs->adap; + struct tom_data *td = sc->tom_softc; + struct cpl_close_listserv_rpl *rpl = mtod(m, void *); + unsigned int stid = GET_TID(rpl); + struct listen_ctx *lctx = lookup_stid(&td->tid_maps, stid); + struct inpcb *inp = lctx->inp; + + CTR3(KTR_CXGB, "%s: stid %u, status %u", __func__, stid, rpl->status); + + if (rpl->status != CPL_ERR_NONE) { + log(LOG_ERR, "%s: failed (%u) to close listener for stid %u", + __func__, rpl->status, stid); + } else { + INP_WLOCK(inp); + KASSERT(listen_hash_del(td, lctx->inp) == NULL, + ("%s: inp %p still in listen hash", __func__, inp)); + if (release_lctx(td, lctx) != NULL) + INP_WUNLOCK(inp); + } + + m_freem(m); + return (0); +} + +/* + * Process a CPL_PASS_OPEN_RPL message. Remove the lctx from the listen hash + * table and free it if there was any error, otherwise nothing to do. + */ +static int +do_pass_open_rpl(struct sge_qset *qs, struct rsp_desc *r, struct mbuf *m) +{ + struct adapter *sc = qs->adap; + struct tom_data *td = sc->tom_softc; + struct cpl_pass_open_rpl *rpl = mtod(m, void *); + int stid = GET_TID(rpl); + struct listen_ctx *lctx; + struct inpcb *inp; + + /* + * We get these replies also when setting up HW filters. Just throw + * those away. + */ + if (stid >= td->tid_maps.stid_base + td->tid_maps.nstids) + goto done; + + lctx = lookup_stid(&td->tid_maps, stid); + inp = lctx->inp; + + INP_WLOCK(inp); + + CTR4(KTR_CXGB, "%s: stid %u, status %u, flags 0x%x", + __func__, stid, rpl->status, lctx->flags); + + lctx->flags &= ~LCTX_RPL_PENDING; + + if (rpl->status != CPL_ERR_NONE) { + log(LOG_ERR, "%s: %s: hw listen (stid %d) failed: %d\n", + __func__, device_get_nameunit(sc->dev), stid, rpl->status); + } + +#ifdef INVARIANTS + /* + * If the inp has been dropped (listening socket closed) then + * listen_stop must have run and taken the inp out of the hash. + */ + if (inp->inp_flags & INP_DROPPED) { + KASSERT(listen_hash_del(td, inp) == NULL, + ("%s: inp %p still in listen hash", __func__, inp)); + } +#endif + + if (inp->inp_flags & INP_DROPPED && rpl->status != CPL_ERR_NONE) { + if (release_lctx(td, lctx) != NULL) + INP_WUNLOCK(inp); + goto done; + } + + /* + * Listening socket stopped listening earlier and now the chip tells us + * it has started the hardware listener. Stop it; the lctx will be + * released in do_close_server_rpl. + */ + if (inp->inp_flags & INP_DROPPED) { + destroy_server(sc, lctx); + INP_WUNLOCK(inp); + goto done; + } + + /* + * Failed to start hardware listener. Take inp out of the hash and + * release our reference on it. An error message has been logged + * already. + */ + if (rpl->status != CPL_ERR_NONE) { + listen_hash_del(td, inp); + if (release_lctx(td, lctx) != NULL) + INP_WUNLOCK(inp); + goto done; + } + + /* hardware listener open for business */ + + INP_WUNLOCK(inp); +done: + m_freem(m); + return (0); +} + +static void +pass_accept_req_to_protohdrs(const struct cpl_pass_accept_req *cpl, + struct in_conninfo *inc, struct tcphdr *th, struct tcpopt *to) +{ + const struct tcp_options *t3opt = &cpl->tcp_options; + + bzero(inc, sizeof(*inc)); + inc->inc_faddr.s_addr = cpl->peer_ip; + inc->inc_laddr.s_addr = cpl->local_ip; + inc->inc_fport = cpl->peer_port; + inc->inc_lport = cpl->local_port; + + bzero(th, sizeof(*th)); + th->th_sport = cpl->peer_port; + th->th_dport = cpl->local_port; + th->th_seq = be32toh(cpl->rcv_isn); /* as in tcp_fields_to_host */ + th->th_flags = TH_SYN; + + bzero(to, sizeof(*to)); + if (t3opt->mss) { + to->to_flags |= TOF_MSS; + to->to_mss = be16toh(t3opt->mss); + } + if (t3opt->wsf) { + to->to_flags |= TOF_SCALE; + to->to_wscale = t3opt->wsf; + } + if (t3opt->tstamp) + to->to_flags |= TOF_TS; + if (t3opt->sack) + to->to_flags |= TOF_SACKPERM; +} + +static inline void +hold_synqe(struct synq_entry *synqe) +{ + + refcount_acquire(&synqe->refcnt); +} + +static inline void +release_synqe(struct synq_entry *synqe) +{ + + if (refcount_release(&synqe->refcnt)) + m_freem(synqe->m); +} + +/* + * Use the trailing space in the mbuf in which the PASS_ACCEPT_REQ arrived to + * store some state temporarily. There will be enough room in the mbuf's + * trailing space as the CPL is not that large. + * + * XXX: bad hack. + */ +static struct synq_entry * +mbuf_to_synq_entry(struct mbuf *m) +{ + int len = roundup(sizeof (struct synq_entry), 8); + uint8_t *buf; + int buflen; + + if (__predict_false(M_TRAILINGSPACE(m) < len)) { + panic("%s: no room for synq_entry (%td, %d)\n", __func__, + M_TRAILINGSPACE(m), len); + } + + if (m->m_flags & M_EXT) { + buf = m->m_ext.ext_buf; + buflen = m->m_ext.ext_size; + } else if (m->m_flags & M_PKTHDR) { + buf = &m->m_pktdat[0]; + buflen = MHLEN; + } else { + buf = &m->m_dat[0]; + buflen = MLEN; + } + + return ((void *)(buf + buflen - len)); +} + +#ifdef KTR +#define REJECT_PASS_ACCEPT() do { \ + reject_reason = __LINE__; \ + goto reject; \ +} while (0) +#else +#define REJECT_PASS_ACCEPT() do { goto reject; } while (0) +#endif + +/* + * The context associated with a tid entry via insert_tid could be a synq_entry + * or a toepcb. The only way CPL handlers can tell is via a bit in these flags. + */ +CTASSERT(offsetof(struct toepcb, tp_flags) == offsetof(struct synq_entry, flags)); + +/* + * Handle a CPL_PASS_ACCEPT_REQ message. + */ +static int +do_pass_accept_req(struct sge_qset *qs, struct rsp_desc *r, struct mbuf *m) +{ + struct adapter *sc = qs->adap; + struct tom_data *td = sc->tom_softc; + struct toedev *tod = &td->tod; + const struct cpl_pass_accept_req *req = mtod(m, void *); + unsigned int stid = G_PASS_OPEN_TID(ntohl(req->tos_tid)); + unsigned int tid = GET_TID(req); + struct listen_ctx *lctx = lookup_stid(&td->tid_maps, stid); + struct l2t_entry *e = NULL; + struct sockaddr_in nam; + struct rtentry *rt; + struct inpcb *inp; + struct socket *so; + struct port_info *pi; + struct ifnet *ifp; + struct in_conninfo inc; + struct tcphdr th; + struct tcpopt to; + struct synq_entry *synqe = NULL; + int i; +#ifdef KTR + int reject_reason; +#endif + + CTR4(KTR_CXGB, "%s: stid %u, tid %u, lctx %p", __func__, stid, tid, + lctx); + + pass_accept_req_to_protohdrs(req, &inc, &th, &to); + + /* + * Don't offload if the interface that received the SYN doesn't have + * IFCAP_TOE enabled. + */ + pi = NULL; + for_each_port(sc, i) { + if (memcmp(sc->port[i].hw_addr, req->dst_mac, ETHER_ADDR_LEN)) + continue; + pi = &sc->port[i]; + break; + } + if (pi == NULL) + REJECT_PASS_ACCEPT(); + ifp = pi->ifp; + if ((ifp->if_capenable & IFCAP_TOE4) == 0) + REJECT_PASS_ACCEPT(); + + /* + * Don't offload if the outgoing interface for the route back to the + * peer is not the same as the interface that received the SYN. + */ + bzero(&nam, sizeof(nam)); + nam.sin_len = sizeof(nam); + nam.sin_family = AF_INET; + nam.sin_addr = inc.inc_faddr; + rt = rtalloc1((struct sockaddr *)&nam, 0, 0); + if (rt == NULL) + REJECT_PASS_ACCEPT(); + else { + struct sockaddr *nexthop; + + RT_UNLOCK(rt); + nexthop = rt->rt_flags & RTF_GATEWAY ? rt->rt_gateway : + (struct sockaddr *)&nam; + if (rt->rt_ifp == ifp) + e = t3_l2t_get(pi, rt->rt_ifp, nexthop); + RTFREE(rt); + if (e == NULL) + REJECT_PASS_ACCEPT(); /* no l2te, or ifp mismatch */ + } + + INP_INFO_WLOCK(&V_tcbinfo); + + /* Don't offload if the 4-tuple is already in use */ + if (toe_4tuple_check(&inc, &th, ifp) != 0) { + INP_INFO_WUNLOCK(&V_tcbinfo); + REJECT_PASS_ACCEPT(); + } + + inp = lctx->inp; /* listening socket (not owned by the TOE) */ + INP_WLOCK(inp); + if (__predict_false(inp->inp_flags & INP_DROPPED)) { + /* + * The listening socket has closed. The reply from the TOE to + * our CPL_CLOSE_LISTSRV_REQ will ultimately release all + * resources tied to this listen context. + */ + INP_WUNLOCK(inp); + INP_INFO_WUNLOCK(&V_tcbinfo); + REJECT_PASS_ACCEPT(); + } + so = inp->inp_socket; + + /* Reuse the mbuf that delivered the CPL to us */ + synqe = mbuf_to_synq_entry(m); + synqe->flags = TP_IS_A_SYNQ_ENTRY; + synqe->m = m; + synqe->lctx = lctx; + synqe->tid = tid; + synqe->e = e; + synqe->opt0h = calc_opt0h(so, 0, 0, e); + synqe->qset = pi->first_qset + (arc4random() % pi->nqsets); + SOCKBUF_LOCK(&so->so_rcv); + synqe->rx_credits = min(select_rcv_wnd(so) >> 10, M_RCV_BUFSIZ); + SOCKBUF_UNLOCK(&so->so_rcv); + refcount_init(&synqe->refcnt, 1); + atomic_store_rel_int(&synqe->reply, RPL_OK); + + insert_tid(td, synqe, tid); + TAILQ_INSERT_TAIL(&lctx->synq, synqe, link); + hold_synqe(synqe); + hold_lctx(lctx); + + /* syncache_add releases both pcbinfo and pcb locks */ + toe_syncache_add(&inc, &to, &th, inp, tod, synqe); + INP_UNLOCK_ASSERT(inp); + INP_INFO_UNLOCK_ASSERT(&V_tcbinfo); + + /* + * If we replied during syncache_add (reply is RPL_DONE), good. + * Otherwise (reply is unchanged - RPL_OK) it's no longer ok to reply. + * The mbuf will stick around as long as the entry is in the syncache. + * The kernel is free to retry syncache_respond but we'll ignore it due + * to RPL_DONT. + */ + if (atomic_cmpset_int(&synqe->reply, RPL_OK, RPL_DONT)) { + + INP_WLOCK(inp); + if (__predict_false(inp->inp_flags & INP_DROPPED)) { + /* listener closed. synqe must have been aborted. */ + KASSERT(synqe->flags & TP_ABORT_SHUTDOWN, + ("%s: listener %p closed but synqe %p not aborted", + __func__, inp, synqe)); + + CTR5(KTR_CXGB, + "%s: stid %u, tid %u, lctx %p, synqe %p, ABORTED", + __func__, stid, tid, lctx, synqe); + INP_WUNLOCK(inp); + release_synqe(synqe); + return (__LINE__); + } + + KASSERT(!(synqe->flags & TP_ABORT_SHUTDOWN), + ("%s: synqe %p aborted, but listener %p not dropped.", + __func__, synqe, inp)); + + TAILQ_REMOVE(&lctx->synq, synqe, link); + release_synqe(synqe); /* removed from synq list */ + inp = release_lctx(td, lctx); + if (inp) + INP_WUNLOCK(inp); + + release_synqe(synqe); /* about to exit function */ + REJECT_PASS_ACCEPT(); + } + + KASSERT(synqe->reply == RPL_DONE, + ("%s: reply %d", __func__, synqe->reply)); + + CTR3(KTR_CXGB, "%s: stid %u, tid %u, OK", __func__, stid, tid); + release_synqe(synqe); + return (0); + +reject: + CTR4(KTR_CXGB, "%s: stid %u, tid %u, REJECT (%d)", __func__, stid, tid, + reject_reason); + + if (synqe == NULL) + m_freem(m); + if (e) + l2t_release(td->l2t, e); + queue_tid_release(tod, tid); + + return (0); +} + +static void +pass_establish_to_protohdrs(const struct cpl_pass_establish *cpl, + struct in_conninfo *inc, struct tcphdr *th, struct tcpopt *to) +{ + uint16_t tcp_opt = be16toh(cpl->tcp_opt); + + bzero(inc, sizeof(*inc)); + inc->inc_faddr.s_addr = cpl->peer_ip; + inc->inc_laddr.s_addr = cpl->local_ip; + inc->inc_fport = cpl->peer_port; + inc->inc_lport = cpl->local_port; + + bzero(th, sizeof(*th)); + th->th_sport = cpl->peer_port; + th->th_dport = cpl->local_port; + th->th_flags = TH_ACK; + th->th_seq = be32toh(cpl->rcv_isn); /* as in tcp_fields_to_host */ + th->th_ack = be32toh(cpl->snd_isn); /* ditto */ + + bzero(to, sizeof(*to)); + if (G_TCPOPT_TSTAMP(tcp_opt)) + to->to_flags |= TOF_TS; +} + +/* + * Process a CPL_PASS_ESTABLISH message. The T3 has already established a + * connection and we need to do the software side setup. + */ +static int +do_pass_establish(struct sge_qset *qs, struct rsp_desc *r, struct mbuf *m) +{ + struct adapter *sc = qs->adap; + struct tom_data *td = sc->tom_softc; + struct cpl_pass_establish *cpl = mtod(m, void *); + struct toedev *tod = &td->tod; + unsigned int tid = GET_TID(cpl); + struct synq_entry *synqe = lookup_tid(&td->tid_maps, tid); + struct toepcb *toep; + struct socket *so; + struct listen_ctx *lctx = synqe->lctx; + struct inpcb *inp = lctx->inp; + struct tcpopt to; + struct tcphdr th; + struct in_conninfo inc; +#ifdef KTR + int stid = G_PASS_OPEN_TID(ntohl(cpl->tos_tid)); +#endif + + CTR5(KTR_CXGB, "%s: stid %u, tid %u, lctx %p, inp_flags 0x%x", + __func__, stid, tid, lctx, inp->inp_flags); + + KASSERT(qs->idx == synqe->qset, + ("%s qset mismatch %d %d", __func__, qs->idx, synqe->qset)); + + INP_INFO_WLOCK(&V_tcbinfo); /* for syncache_expand */ + INP_WLOCK(inp); + + if (__predict_false(inp->inp_flags & INP_DROPPED)) { + /* + * The listening socket has closed. The TOM must have aborted + * all the embryonic connections (including this one) that were + * on the lctx's synq. do_abort_rpl for the tid is responsible + * for cleaning up. + */ + KASSERT(synqe->flags & TP_ABORT_SHUTDOWN, + ("%s: listen socket dropped but tid %u not aborted.", + __func__, tid)); + INP_WUNLOCK(inp); + INP_INFO_WUNLOCK(&V_tcbinfo); + m_freem(m); + return (0); + } + + pass_establish_to_protohdrs(cpl, &inc, &th, &to); + + /* Lie in order to pass the checks in syncache_expand */ + to.to_tsecr = synqe->ts; + th.th_ack = synqe->iss + 1; + + toep = toepcb_alloc(tod); + if (toep == NULL) { +reset: + t3_send_reset_synqe(tod, synqe); + INP_WUNLOCK(inp); + INP_INFO_WUNLOCK(&V_tcbinfo); + m_freem(m); + return (0); + } + toep->tp_qset = qs->idx; + toep->tp_l2t = synqe->e; + toep->tp_tid = tid; + toep->tp_rx_credits = synqe->rx_credits; + + synqe->toep = toep; + synqe->cpl = cpl; + + so = inp->inp_socket; + if (!toe_syncache_expand(&inc, &to, &th, &so) || so == NULL) { + toepcb_free(toep); + goto reset; + } + + /* Remove the synq entry and release its reference on the lctx */ + TAILQ_REMOVE(&lctx->synq, synqe, link); + inp = release_lctx(td, lctx); + if (inp) + INP_WUNLOCK(inp); + INP_INFO_WUNLOCK(&V_tcbinfo); + release_synqe(synqe); + + m_freem(m); + return (0); +} + +void +t3_init_listen_cpl_handlers(struct adapter *sc) +{ + t3_register_cpl_handler(sc, CPL_PASS_OPEN_RPL, do_pass_open_rpl); + t3_register_cpl_handler(sc, CPL_CLOSE_LISTSRV_RPL, do_close_server_rpl); + t3_register_cpl_handler(sc, CPL_PASS_ACCEPT_REQ, do_pass_accept_req); + t3_register_cpl_handler(sc, CPL_PASS_ESTABLISH, do_pass_establish); +} + +/* + * Start a listening server by sending a passive open request to HW. + * + * Can't take adapter lock here and access to sc->flags, sc->open_device_map, + * sc->offload_map, if_capenable are all race prone. + */ +int +t3_listen_start(struct toedev *tod, struct tcpcb *tp) +{ + struct tom_data *td = t3_tomdata(tod); + struct adapter *sc = tod->tod_softc; + struct port_info *pi; + struct inpcb *inp = tp->t_inpcb; + struct listen_ctx *lctx; + int i; + + INP_WLOCK_ASSERT(inp); + + if ((inp->inp_vflag & INP_IPV4) == 0) + return (0); + +#ifdef notyet + ADAPTER_LOCK(sc); + if (IS_BUSY(sc)) { + log(LOG_ERR, "%s: listen request ignored, %s is busy", + __func__, device_get_nameunit(sc->dev)); + goto done; + } + + KASSERT(sc->flags & TOM_INIT_DONE, + ("%s: TOM not initialized", __func__)); +#endif + + if ((sc->open_device_map & sc->offload_map) == 0) + goto done; /* no port that's UP with IFCAP_TOE enabled */ + + /* + * Find a running port with IFCAP_TOE4. We'll use the first such port's + * queues to send the passive open and receive the reply to it. + * + * XXX: need a way to mark an port in use by offload. if_cxgbe should + * then reject any attempt to bring down such a port (and maybe reject + * attempts to disable IFCAP_TOE on that port too?). + */ + for_each_port(sc, i) { + if (isset(&sc->open_device_map, i) && + sc->port[i].ifp->if_capenable & IFCAP_TOE4) + break; + } + KASSERT(i < sc->params.nports, + ("%s: no running port with TOE capability enabled.", __func__)); + pi = &sc->port[i]; + + if (listen_hash_find(td, inp) != NULL) + goto done; /* already setup */ + + lctx = alloc_lctx(td, inp, pi->first_qset); + if (lctx == NULL) { + log(LOG_ERR, + "%s: listen request ignored, %s couldn't allocate lctx\n", + __func__, device_get_nameunit(sc->dev)); + goto done; + } + listen_hash_add(td, lctx); + + CTR5(KTR_CXGB, "%s: stid %u (%s), lctx %p, inp %p", __func__, + lctx->stid, tcpstates[tp->t_state], lctx, inp); + + if (create_server(sc, lctx) != 0) { + log(LOG_ERR, "%s: %s failed to create hw listener.\n", __func__, + device_get_nameunit(sc->dev)); + (void) listen_hash_del(td, inp); + inp = release_lctx(td, lctx); + /* can't be freed, host stack has a reference */ + KASSERT(inp != NULL, ("%s: inp freed", __func__)); + goto done; + } + lctx->flags |= LCTX_RPL_PENDING; +done: +#ifdef notyet + ADAPTER_UNLOCK(sc); +#endif + return (0); } /* * Stop a listening server by sending a close_listsvr request to HW. * The server TID is freed when we get the reply. */ -void -t3_listen_stop(struct toedev *dev, struct socket *so, struct t3cdev *cdev) +int +t3_listen_stop(struct toedev *tod, struct tcpcb *tp) { - struct mbuf *m; - struct cpl_close_listserv_req *req; struct listen_ctx *lctx; - int stid = listen_hash_del(TOM_DATA(dev), so); - - if (stid < 0) + struct adapter *sc = tod->tod_softc; + struct tom_data *td = t3_tomdata(tod); + struct inpcb *inp = tp->t_inpcb; + struct synq_entry *synqe; + + INP_WLOCK_ASSERT(inp); + + lctx = listen_hash_del(td, inp); + if (lctx == NULL) + return (ENOENT); /* no hardware listener for this inp */ + + CTR4(KTR_CXGB, "%s: stid %u, lctx %p, flags %x", __func__, lctx->stid, + lctx, lctx->flags); + + /* + * If the reply to the PASS_OPEN is still pending we'll wait for it to + * arrive and clean up when it does. + */ + if (lctx->flags & LCTX_RPL_PENDING) { + KASSERT(TAILQ_EMPTY(&lctx->synq), + ("%s: synq not empty.", __func__)); + return (EINPROGRESS); + } + + /* + * The host stack will abort all the connections on the listening + * socket's so_comp. It doesn't know about the connections on the synq + * so we need to take care of those. + */ + TAILQ_FOREACH(synqe, &lctx->synq, link) { + KASSERT(synqe->lctx == lctx, ("%s: synq corrupt", __func__)); + t3_send_reset_synqe(tod, synqe); + } + + destroy_server(sc, lctx); + return (0); +} + +void +t3_syncache_added(struct toedev *tod __unused, void *arg) +{ + struct synq_entry *synqe = arg; + + hold_synqe(synqe); +} + +void +t3_syncache_removed(struct toedev *tod __unused, void *arg) +{ + struct synq_entry *synqe = arg; + + release_synqe(synqe); +} + +/* XXX */ +extern void tcp_dooptions(struct tcpopt *, u_char *, int, int); + +int +t3_syncache_respond(struct toedev *tod, void *arg, struct mbuf *m) +{ + struct adapter *sc = tod->tod_softc; + struct synq_entry *synqe = arg; + struct l2t_entry *e = synqe->e; + struct ip *ip = mtod(m, struct ip *); + struct tcphdr *th = (void *)(ip + 1); + struct cpl_pass_accept_rpl *rpl; + struct mbuf *r; + struct listen_ctx *lctx = synqe->lctx; + struct tcpopt to; + int mtu_idx, cpu_idx; + + /* + * The first time we run it's during the call to syncache_add. That's + * the only one we care about. + */ + if (atomic_cmpset_int(&synqe->reply, RPL_OK, RPL_DONE) == 0) + goto done; /* reply to the CPL only if it's ok to do so */ + + r = M_GETHDR_OFLD(lctx->qset, CPL_PRIORITY_CONTROL, rpl); + if (r == NULL) + goto done; + + /* + * Use only the provided mbuf (with ip and tcp headers) and what's in + * synqe. Avoid looking at the listening socket (lctx->inp) here. + * + * XXX: if the incoming SYN had the TCP timestamp option but the kernel + * decides it doesn't want to use TCP timestamps we have no way of + * relaying this info to the chip on a per-tid basis (all we have is a + * global knob). + */ + bzero(&to, sizeof(to)); + tcp_dooptions(&to, (void *)(th + 1), (th->th_off << 2) - sizeof(*th), + TO_SYN); + + /* stash them for later */ + synqe->iss = be32toh(th->th_seq); + synqe->ts = to.to_tsval; + + mtu_idx = find_best_mtu_idx(sc, NULL, to.to_mss); + cpu_idx = sc->rrss_map[synqe->qset]; + + rpl->wr.wrh_hi = htonl(V_WR_OP(FW_WROPCODE_FORWARD)); + rpl->wr.wrh_lo = 0; + OPCODE_TID(rpl) = htonl(MK_OPCODE_TID(CPL_PASS_ACCEPT_RPL, synqe->tid)); + rpl->opt2 = calc_opt2(cpu_idx); + rpl->rsvd = rpl->opt2; /* workaround for HW bug */ + rpl->peer_ip = ip->ip_dst.s_addr; + rpl->opt0h = synqe->opt0h | + calc_opt0h(NULL, mtu_idx, to.to_wscale, NULL); + rpl->opt0l_status = htobe32(CPL_PASS_OPEN_ACCEPT) | + calc_opt0l(NULL, synqe->rx_credits); + + l2t_send(sc, r, e); +done: + m_freem(m); + return (0); +} + +int +do_abort_req_synqe(struct sge_qset *qs, struct rsp_desc *r, struct mbuf *m) +{ + struct adapter *sc = qs->adap; + struct tom_data *td = sc->tom_softc; + struct toedev *tod = &td->tod; + const struct cpl_abort_req_rss *req = mtod(m, void *); + unsigned int tid = GET_TID(req); + struct synq_entry *synqe = lookup_tid(&td->tid_maps, tid); + struct listen_ctx *lctx = synqe->lctx; + struct inpcb *inp = lctx->inp; + + KASSERT(synqe->flags & TP_IS_A_SYNQ_ENTRY, + ("%s: !SYNQ_ENTRY", __func__)); + + CTR6(KTR_CXGB, "%s: tid %u, synqe %p (%x), lctx %p, status %d", + __func__, tid, synqe, synqe->flags, synqe->lctx, req->status); + + INP_WLOCK(inp); + + if (!(synqe->flags & TP_ABORT_REQ_RCVD)) { + synqe->flags |= TP_ABORT_REQ_RCVD; + synqe->flags |= TP_ABORT_SHUTDOWN; + INP_WUNLOCK(inp); + m_freem(m); + return (0); + } + synqe->flags &= ~TP_ABORT_REQ_RCVD; + + /* + * If we'd sent a reset on this synqe, we'll ignore this and clean up in + * the T3's reply to our reset instead. + */ + if (synqe->flags & TP_ABORT_RPL_PENDING) { + synqe->flags |= TP_ABORT_RPL_SENT; + INP_WUNLOCK(inp); + } else { + TAILQ_REMOVE(&lctx->synq, synqe, link); + inp = release_lctx(td, lctx); + if (inp) + INP_WUNLOCK(inp); + release_tid(tod, tid, qs->idx); + l2t_release(td->l2t, synqe->e); + release_synqe(synqe); + } + + send_abort_rpl(tod, tid, qs->idx); + m_freem(m); + return (0); +} + +int +do_abort_rpl_synqe(struct sge_qset *qs, struct rsp_desc *r, struct mbuf *m) +{ + struct adapter *sc = qs->adap; + struct tom_data *td = sc->tom_softc; + struct toedev *tod = &td->tod; + const struct cpl_abort_rpl_rss *rpl = mtod(m, void *); + unsigned int tid = GET_TID(rpl); + struct synq_entry *synqe = lookup_tid(&td->tid_maps, tid); + struct listen_ctx *lctx = synqe->lctx; + struct inpcb *inp = lctx->inp; + + CTR3(KTR_CXGB, "%s: tid %d, synqe %p, status %d", tid, synqe, + rpl->status); + + INP_WLOCK(inp); + + if (synqe->flags & TP_ABORT_RPL_PENDING) { + if (!(synqe->flags & TP_ABORT_RPL_RCVD)) { + synqe->flags |= TP_ABORT_RPL_RCVD; + INP_WUNLOCK(inp); + } else { + synqe->flags &= ~TP_ABORT_RPL_RCVD; + synqe->flags &= TP_ABORT_RPL_PENDING; + + TAILQ_REMOVE(&lctx->synq, synqe, link); + inp = release_lctx(td, lctx); + if (inp) + INP_WUNLOCK(inp); + release_tid(tod, tid, qs->idx); + l2t_release(td->l2t, synqe->e); + release_synqe(synqe); + } + } + + m_freem(m); + return (0); +} + +static void +t3_send_reset_synqe(struct toedev *tod, struct synq_entry *synqe) +{ + struct cpl_abort_req *req; + unsigned int tid = synqe->tid; + struct adapter *sc = tod->tod_softc; + struct mbuf *m; +#ifdef INVARIANTS + struct listen_ctx *lctx = synqe->lctx; + struct inpcb *inp = lctx->inp; +#endif + + INP_WLOCK_ASSERT(inp); + + CTR4(KTR_CXGB, "%s: tid %d, synqe %p (%x)", __func__, tid, synqe, + synqe->flags); + + if (synqe->flags & TP_ABORT_SHUTDOWN) return; - lctx = cxgb_get_lctx(cdev, stid); - /* - * Do this early so embryonic connections are marked as being aborted - * while the stid is still open. This ensures pass_establish messages - * that arrive while we are closing the server will be able to locate - * the listening socket. - */ - t3_reset_synq(lctx); + synqe->flags |= (TP_ABORT_RPL_PENDING | TP_ABORT_SHUTDOWN); - /* Send the close ASAP to stop further passive opens */ - m = m_gethdr(M_NOWAIT, MT_DATA); - if (m == NULL) { - /* - * XXX allocate from lowmem cache - */ - } - m->m_pkthdr.len = m->m_len = sizeof(*req); + m = M_GETHDR_OFLD(synqe->qset, CPL_PRIORITY_DATA, req); + if (m == NULL) + CXGB_UNIMPLEMENTED(); - req = mtod(m, struct cpl_close_listserv_req *); - req->wr.wr_hi = htonl(V_WR_OP(FW_WROPCODE_FORWARD)); - OPCODE_TID(req) = htonl(MK_OPCODE_TID(CPL_CLOSE_LISTSRV_REQ, stid)); - req->cpu_idx = 0; - m_set_priority(m, CPL_PRIORITY_LISTEN); - cxgb_ofld_send(cdev, m); + req->wr.wrh_hi = htonl(V_WR_OP(FW_WROPCODE_OFLD_HOST_ABORT_CON_REQ)); + req->wr.wrh_lo = htonl(V_WR_TID(tid)); + OPCODE_TID(req) = htonl(MK_OPCODE_TID(CPL_ABORT_REQ, tid)); + req->rsvd0 = 0; + req->rsvd1 = !(synqe->flags & TP_DATASENT); + req->cmd = CPL_ABORT_SEND_RST; - t3_disconnect_acceptq(so); + l2t_send(sc, m, synqe->e); } + +void +t3_offload_socket(struct toedev *tod, void *arg, struct socket *so) +{ + struct adapter *sc = tod->tod_softc; + struct tom_data *td = sc->tom_softc; + struct synq_entry *synqe = arg; +#ifdef INVARIANTS + struct inpcb *inp = sotoinpcb(so); +#endif + struct cpl_pass_establish *cpl = synqe->cpl; + struct toepcb *toep = synqe->toep; + + INP_INFO_LOCK_ASSERT(&V_tcbinfo); /* prevents bad race with accept() */ + INP_WLOCK_ASSERT(inp); + + offload_socket(so, toep); + make_established(so, cpl->snd_isn, cpl->rcv_isn, cpl->tcp_opt); + update_tid(td, toep, synqe->tid); +} +#endif diff --git a/sys/dev/cxgb/ulp/tom/cxgb_t3_ddp.h b/sys/dev/cxgb/ulp/tom/cxgb_t3_ddp.h deleted file mode 100644 index d6f980422336..000000000000 --- a/sys/dev/cxgb/ulp/tom/cxgb_t3_ddp.h +++ /dev/null @@ -1,181 +0,0 @@ -/************************************************************************** - -Copyright (c) 2007, Chelsio Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2. Neither the name of the Chelsio Corporation nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - - -$FreeBSD$ - -***************************************************************************/ - -#ifndef T3_DDP_H -#define T3_DDP_H - -/* Should be 1 or 2 indicating single or double kernel buffers. */ -#define NUM_DDP_KBUF 2 - -/* min receive window for a connection to be considered for DDP */ -#define MIN_DDP_RCV_WIN (48 << 10) - -/* amount of Rx window not available to DDP to avoid window exhaustion */ -#define DDP_RSVD_WIN (16 << 10) - -/* # of sentinel invalid page pods at the end of a group of valid page pods */ -#define NUM_SENTINEL_PPODS 0 - -/* # of pages a pagepod can hold without needing another pagepod */ -#define PPOD_PAGES 4 - -/* page pods are allocated in groups of this size (must be power of 2) */ -#define PPOD_CLUSTER_SIZE 16 - -/* for each TID we reserve this many page pods up front */ -#define RSVD_PPODS_PER_TID 1 - -struct pagepod { - uint32_t pp_vld_tid; - uint32_t pp_pgsz_tag_color; - uint32_t pp_max_offset; - uint32_t pp_page_offset; - uint64_t pp_rsvd; - uint64_t pp_addr[5]; -}; - -#define PPOD_SIZE sizeof(struct pagepod) - -#define S_PPOD_TID 0 -#define M_PPOD_TID 0xFFFFFF -#define V_PPOD_TID(x) ((x) << S_PPOD_TID) - -#define S_PPOD_VALID 24 -#define V_PPOD_VALID(x) ((x) << S_PPOD_VALID) -#define F_PPOD_VALID V_PPOD_VALID(1U) - -#define S_PPOD_COLOR 0 -#define M_PPOD_COLOR 0x3F -#define V_PPOD_COLOR(x) ((x) << S_PPOD_COLOR) - -#define S_PPOD_TAG 6 -#define M_PPOD_TAG 0xFFFFFF -#define V_PPOD_TAG(x) ((x) << S_PPOD_TAG) - -#define S_PPOD_PGSZ 30 -#define M_PPOD_PGSZ 0x3 -#define V_PPOD_PGSZ(x) ((x) << S_PPOD_PGSZ) - -#include -#include -#include - -/* DDP gather lists can specify an offset only for the first page. */ -struct ddp_gather_list { - unsigned int dgl_length; - unsigned int dgl_offset; - unsigned int dgl_nelem; - vm_page_t dgl_pages[0]; -}; - -struct ddp_buf_state { - unsigned int cur_offset; /* offset of latest DDP notification */ - unsigned int flags; - struct ddp_gather_list *gl; -}; - -struct ddp_state { - struct ddp_buf_state buf_state[2]; /* per buffer state */ - int cur_buf; - unsigned short kbuf_noinval; - unsigned short kbuf_idx; /* which HW buffer is used for kbuf */ - struct ddp_gather_list *ubuf; - int user_ddp_pending; - unsigned int ubuf_nppods; /* # of page pods for buffer 1 */ - unsigned int ubuf_tag; - unsigned int ubuf_ddp_ready; - int cancel_ubuf; - int get_tcb_count; - unsigned int kbuf_posted; - unsigned int kbuf_nppods[NUM_DDP_KBUF]; - unsigned int kbuf_tag[NUM_DDP_KBUF]; - struct ddp_gather_list *kbuf[NUM_DDP_KBUF]; /* kernel buffer for DDP prefetch */ -}; - -/* buf_state flags */ -enum { - DDP_BF_NOINVAL = 1 << 0, /* buffer is set to NO_INVALIDATE */ - DDP_BF_NOCOPY = 1 << 1, /* DDP to final dest, no copy needed */ - DDP_BF_NOFLIP = 1 << 2, /* buffer flips after GET_TCB_RPL */ - DDP_BF_PSH = 1 << 3, /* set in skb->flags if the a DDP was - completed with a segment having the - PSH flag set */ - DDP_BF_NODATA = 1 << 4, /* buffer completed before filling */ -}; - -#include -struct sockbuf; - -/* - * Returns 1 if a UBUF DMA buffer might be active. - */ -static inline int -t3_ddp_ubuf_pending(struct toepcb *toep) -{ - struct ddp_state *p = &toep->tp_ddp_state; - - /* When the TOM_TUNABLE(ddp) is enabled, we're always in ULP_MODE DDP, - * but DDP_STATE() is only valid if the connection actually enabled - * DDP. - */ - if (p->kbuf[0] == NULL) - return (0); - - return (p->buf_state[0].flags & (DDP_BF_NOFLIP | DDP_BF_NOCOPY)) || - (p->buf_state[1].flags & (DDP_BF_NOFLIP | DDP_BF_NOCOPY)); -} - -int t3_setup_ppods(struct toepcb *toep, const struct ddp_gather_list *gl, - unsigned int nppods, unsigned int tag, unsigned int maxoff, - unsigned int pg_off, unsigned int color); -int t3_alloc_ppods(struct tom_data *td, unsigned int n, int *tag); -void t3_free_ppods(struct tom_data *td, unsigned int tag, unsigned int n); -void t3_free_ddp_gl(struct ddp_gather_list *gl); -int t3_ddp_copy(const struct mbuf *m, int offset, struct uio *uio, int len); -//void t3_repost_kbuf(struct socket *so, int modulate, int activate); -void t3_post_kbuf(struct toepcb *toep, int modulate, int nonblock); -int t3_post_ubuf(struct toepcb *toep, const struct uio *uio, int nonblock, - int rcv_flags, int modulate, int post_kbuf); -void t3_cancel_ubuf(struct toepcb *toep, struct sockbuf *rcv); -int t3_overlay_ubuf(struct toepcb *toep, struct sockbuf *rcv, - const struct uio *uio, int nonblock, - int rcv_flags, int modulate, int post_kbuf); -int t3_enter_ddp(struct toepcb *toep, unsigned int kbuf_size, unsigned int waitall, int nonblock); -void t3_cleanup_ddp(struct toepcb *toep); -void t3_release_ddp_resources(struct toepcb *toep); -void t3_cancel_ddpbuf(struct toepcb *, unsigned int bufidx); -void t3_overlay_ddpbuf(struct toepcb *, unsigned int bufidx, unsigned int tag0, - unsigned int tag1, unsigned int len); -void t3_setup_ddpbufs(struct toepcb *, unsigned int len0, unsigned int offset0, - unsigned int len1, unsigned int offset1, - uint64_t ddp_flags, uint64_t flag_mask, int modulate); -#endif /* T3_DDP_H */ diff --git a/sys/dev/cxgb/ulp/tom/cxgb_tcp.h b/sys/dev/cxgb/ulp/tom/cxgb_tcp.h deleted file mode 100644 index 3042ef00b0f1..000000000000 --- a/sys/dev/cxgb/ulp/tom/cxgb_tcp.h +++ /dev/null @@ -1,47 +0,0 @@ - -/*- - * Copyright (c) 2007, Chelsio Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * - * 2. Neither the name of the Chelsio Corporation nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - * $FreeBSD$ - */ -#ifndef CXGB_TCP_H_ -#define CXGB_TCP_H_ -#ifdef TCP_USRREQS_OVERLOAD -struct tcpcb *cxgb_tcp_drop(struct tcpcb *tp, int errno); -#else -#define cxgb_tcp_drop tcp_drop -#endif -void cxgb_tcp_ctlinput(int cmd, struct sockaddr *sa, void *vip); -struct tcpcb *cxgb_tcp_close(struct tcpcb *tp); - -extern struct pr_usrreqs cxgb_tcp_usrreqs; -#ifdef INET6 -extern struct pr_usrreqs cxgb_tcp6_usrreqs; -#endif - -#include -SYSCTL_DECL(_net_inet_tcp_cxgb); -#endif /* CXGB_TCP_H_ */ diff --git a/sys/dev/cxgb/ulp/tom/cxgb_tcp_offload.c b/sys/dev/cxgb/ulp/tom/cxgb_tcp_offload.c deleted file mode 100644 index 6cb610748214..000000000000 --- a/sys/dev/cxgb/ulp/tom/cxgb_tcp_offload.c +++ /dev/null @@ -1,97 +0,0 @@ -/*- - * Copyright (c) 2007, Chelsio Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * - * 2. Neither the name of the Chelsio Corporation nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -#include -__FBSDID("$FreeBSD$"); - -/* - * grab bag of accessor routines that will either be moved to netinet - * or removed - */ - - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -#include - - -/* - * This file contains code as a short-term staging area before it is moved in - * to sys/netinet/tcp_offload.c - */ - -void -sockbuf_lock(struct sockbuf *sb) -{ - - SOCKBUF_LOCK(sb); -} - -void -sockbuf_lock_assert(struct sockbuf *sb) -{ - - SOCKBUF_LOCK_ASSERT(sb); -} - -void -sockbuf_unlock(struct sockbuf *sb) -{ - - SOCKBUF_UNLOCK(sb); -} - -int -sockbuf_sbspace(struct sockbuf *sb) -{ - - return (sbspace(sb)); -} - diff --git a/sys/dev/cxgb/ulp/tom/cxgb_tcp_offload.h b/sys/dev/cxgb/ulp/tom/cxgb_tcp_offload.h deleted file mode 100644 index 2b516d7492f5..000000000000 --- a/sys/dev/cxgb/ulp/tom/cxgb_tcp_offload.h +++ /dev/null @@ -1,14 +0,0 @@ -/* $FreeBSD$ */ - -#ifndef CXGB_TCP_OFFLOAD_H_ -#define CXGB_TCP_OFFLOAD_H_ - -struct sockbuf; - -void sockbuf_lock(struct sockbuf *); -void sockbuf_lock_assert(struct sockbuf *); -void sockbuf_unlock(struct sockbuf *); -int sockbuf_sbspace(struct sockbuf *); - - -#endif /* CXGB_TCP_OFFLOAD_H_ */ diff --git a/sys/dev/cxgb/ulp/tom/cxgb_toepcb.h b/sys/dev/cxgb/ulp/tom/cxgb_toepcb.h index 1b28e965a18c..d0046c86a097 100644 --- a/sys/dev/cxgb/ulp/tom/cxgb_toepcb.h +++ b/sys/dev/cxgb/ulp/tom/cxgb_toepcb.h @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2007-2008, Chelsio Inc. + * Copyright (c) 2007-2009, Chelsio Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -32,88 +32,63 @@ #include #include +#define TP_DATASENT (1 << 0) +#define TP_TX_WAIT_IDLE (1 << 1) +#define TP_FIN_SENT (1 << 2) +#define TP_ABORT_RPL_PENDING (1 << 3) +#define TP_ABORT_SHUTDOWN (1 << 4) +#define TP_ABORT_RPL_RCVD (1 << 5) +#define TP_ABORT_REQ_RCVD (1 << 6) +#define TP_ATTACHED (1 << 7) +#define TP_CPL_DONE (1 << 8) +#define TP_IS_A_SYNQ_ENTRY (1 << 9) +#define TP_ABORT_RPL_SENT (1 << 10) +#define TP_SEND_FIN (1 << 11) + struct toepcb { - struct toedev *tp_toedev; + TAILQ_ENTRY(toepcb) link; /* toep_list */ + int tp_flags; + struct toedev *tp_tod; struct l2t_entry *tp_l2t; - unsigned int tp_tid; + int tp_tid; int tp_wr_max; int tp_wr_avail; int tp_wr_unacked; int tp_delack_mode; - int tp_mtu_idx; int tp_ulp_mode; - int tp_qset_idx; - int tp_mss_clamp; int tp_qset; - int tp_flags; - int tp_enqueued_bytes; - int tp_page_count; - int tp_state; + int tp_enqueued; + int tp_rx_credits; - tcp_seq tp_iss; - tcp_seq tp_delack_seq; - tcp_seq tp_rcv_wup; - tcp_seq tp_copied_seq; - uint64_t tp_write_seq; + struct inpcb *tp_inp; + struct mbuf *tp_m_last; - volatile int tp_refcount; - vm_page_t *tp_pages; - - struct tcpcb *tp_tp; - struct mbuf *tp_m_last; - bus_dma_tag_t tp_tx_dmat; - bus_dma_tag_t tp_rx_dmat; - bus_dmamap_t tp_dmamap; - - LIST_ENTRY(toepcb) synq_entry; struct mbuf_head wr_list; struct mbuf_head out_of_order_queue; - struct ddp_state tp_ddp_state; - struct cv tp_cv; - }; static inline void reset_wr_list(struct toepcb *toep) { - mbufq_init(&toep->wr_list); } -static inline void -purge_wr_queue(struct toepcb *toep) -{ - struct mbuf *m; - - while ((m = mbufq_dequeue(&toep->wr_list)) != NULL) - m_freem(m); -} - static inline void enqueue_wr(struct toepcb *toep, struct mbuf *m) { - mbufq_tail(&toep->wr_list, m); } static inline struct mbuf * peek_wr(const struct toepcb *toep) { - return (mbufq_peek(&toep->wr_list)); } static inline struct mbuf * dequeue_wr(struct toepcb *toep) { - return (mbufq_dequeue(&toep->wr_list)); } -#define wr_queue_walk(toep, m) \ - for (m = peek_wr(toep); m; m = m->m_nextpkt) - - - #endif - diff --git a/sys/dev/cxgb/ulp/tom/cxgb_tom.c b/sys/dev/cxgb/ulp/tom/cxgb_tom.c index 1328044b378c..8f0dd25ba01c 100644 --- a/sys/dev/cxgb/ulp/tom/cxgb_tom.c +++ b/sys/dev/cxgb/ulp/tom/cxgb_tom.c @@ -1,261 +1,106 @@ -/************************************************************************** - -Copyright (c) 2007, Chelsio Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2. Neither the name of the Chelsio Corporation nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -***************************************************************************/ +/*- + * Copyright (c) 2012 Chelsio Communications, Inc. + * All rights reserved. + * Written by: Navdeep Parhar + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ #include __FBSDID("$FreeBSD$"); +#include "opt_inet.h" + #include -#include +#include #include -#include -#include -#include -#include -#include -#include +#include +#include #include -#include -#include #include -#include -#include -#include -#include #include - -#include -#include - #include -#include -#include -#include - -#include -#include - -#include - -#include #include -#include -#include -#include +#include -#include +#ifdef TCP_OFFLOAD +#include "cxgb_include.h" +#include "ulp/tom/cxgb_tom.h" +#include "ulp/tom/cxgb_l2t.h" +#include "ulp/tom/cxgb_toepcb.h" -#include -#include +MALLOC_DEFINE(M_CXGB, "cxgb", "Chelsio T3 Offload services"); -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +/* Module ops */ +static int t3_tom_mod_load(void); +static int t3_tom_mod_unload(void); +static int t3_tom_modevent(module_t, int, void *); +/* ULD ops and helpers */ +static int t3_tom_activate(struct adapter *); +static int t3_tom_deactivate(struct adapter *); -TAILQ_HEAD(, adapter) adapter_list; -static struct rwlock adapter_list_lock; +static int alloc_tid_tabs(struct tid_info *, u_int, u_int, u_int, u_int, u_int); +static void free_tid_tabs(struct tid_info *); +static int write_smt_entry(struct adapter *, int); +static void free_tom_data(struct tom_data *); -static TAILQ_HEAD(, tom_data) cxgb_list; -static struct mtx cxgb_list_lock; -static const unsigned int MAX_ATIDS = 64 * 1024; -static const unsigned int ATID_BASE = 0x100000; - -static int t3_toe_attach(struct toedev *dev, const struct offload_id *entry); -static void cxgb_register_listeners(void); -static void t3c_tom_add(struct t3cdev *cdev); - -/* - * Handlers for each CPL opcode - */ -static cxgb_cpl_handler_func tom_cpl_handlers[256]; - - -static eventhandler_tag listen_tag; - -static struct offload_id t3_toe_id_tab[] = { - { TOE_ID_CHELSIO_T3, 0 }, - { TOE_ID_CHELSIO_T3B, 0 }, - { TOE_ID_CHELSIO_T3C, 0 }, - { 0 } +static struct uld_info tom_uld_info = { + .uld_id = ULD_TOM, + .activate = t3_tom_activate, + .deactivate = t3_tom_deactivate, }; -static struct tom_info t3_tom_info = { - .ti_attach = t3_toe_attach, - .ti_id_table = t3_toe_id_tab, - .ti_name = "Chelsio-T3" -}; - -struct cxgb_client t3c_tom_client = { - .name = "tom_cxgb3", - .add = t3c_tom_add, - .remove = NULL, - .handlers = tom_cpl_handlers, - .redirect = NULL -}; - -void -cxgb_log_tcb(struct adapter *sc, unsigned int tid) -{ - - char buf[TCB_SIZE]; - uint64_t *tcb = (uint64_t *)buf; - int i, error; - struct mc7 *mem = &sc->cm; - - error = t3_mc7_bd_read(mem, tid*TCB_SIZE/8, TCB_SIZE/8, tcb); - if (error) - printf("cxgb_tcb_log failed\n"); - - - CTR1(KTR_CXGB, "TCB tid=%u", tid); - for (i = 0; i < TCB_SIZE / 32; i++) { - - CTR5(KTR_CXGB, "%1d: %08x %08x %08x %08x", - i, (uint32_t)tcb[1], (uint32_t)(tcb[1] >> 32), - (uint32_t)tcb[0], (uint32_t)(tcb[0] >> 32)); - - tcb += 2; - CTR4(KTR_CXGB, " %08x %08x %08x %08x", - (uint32_t)tcb[1], (uint32_t)(tcb[1] >> 32), - (uint32_t)tcb[0], (uint32_t)(tcb[0] >> 32)); - tcb += 2; - } -} - -/* - * Add an skb to the deferred skb queue for processing from process context. - */ -void -t3_defer_reply(struct mbuf *m, struct toedev *dev, defer_handler_t handler) -{ - struct tom_data *td = TOM_DATA(dev); - - m_set_handler(m, handler); - mtx_lock(&td->deferq.lock); - - mbufq_tail(&td->deferq, m); - if (mbufq_len(&td->deferq) == 1) - taskqueue_enqueue(td->tq, &td->deferq_task); - mtx_lock(&td->deferq.lock); -} - struct toepcb * -toepcb_alloc(void) +toepcb_alloc(struct toedev *tod) { struct toepcb *toep; - - toep = malloc(sizeof(struct toepcb), M_CXGB, M_NOWAIT|M_ZERO); - + + toep = malloc(sizeof(struct toepcb), M_CXGB, M_NOWAIT | M_ZERO); if (toep == NULL) return (NULL); - toepcb_init(toep); + toep->tp_tod = tod; + toep->tp_wr_max = toep->tp_wr_avail = 15; + toep->tp_wr_unacked = 0; + toep->tp_delack_mode = 0; + return (toep); } void -toepcb_init(struct toepcb *toep) +toepcb_free(struct toepcb *toep) { - toep->tp_refcount = 1; - cv_init(&toep->tp_cv, "toep cv"); + free(toep, M_CXGB); } -void -toepcb_hold(struct toepcb *toep) -{ - atomic_add_acq_int(&toep->tp_refcount, 1); -} - -void -toepcb_release(struct toepcb *toep) -{ - if (toep->tp_refcount == 1) { - free(toep, M_CXGB); - return; - } - atomic_add_acq_int(&toep->tp_refcount, -1); -} - - -/* - * Add a T3 offload device to the list of devices we are managing. - */ -static void -t3cdev_add(struct tom_data *t) -{ - mtx_lock(&cxgb_list_lock); - TAILQ_INSERT_TAIL(&cxgb_list, t, entry); - mtx_unlock(&cxgb_list_lock); -} - -static inline int -cdev2type(struct t3cdev *cdev) -{ - int type = 0; - - switch (cdev->type) { - case T3A: - type = TOE_ID_CHELSIO_T3; - break; - case T3B: - type = TOE_ID_CHELSIO_T3B; - break; - case T3C: - type = TOE_ID_CHELSIO_T3C; - break; - } - return (type); -} - -/* - * Allocate and initialize the TID tables. Returns 0 on success. - */ static int -init_tid_tabs(struct tid_info *t, unsigned int ntids, - unsigned int natids, unsigned int nstids, - unsigned int atid_base, unsigned int stid_base) +alloc_tid_tabs(struct tid_info *t, u_int ntids, u_int natids, u_int nstids, + u_int atid_base, u_int stid_base) { unsigned long size = ntids * sizeof(*t->tid_tab) + natids * sizeof(*t->atid_tab) + nstids * sizeof(*t->stid_tab); - t->tid_tab = cxgb_alloc_mem(size); + t->tid_tab = malloc(size, M_CXGB, M_NOWAIT | M_ZERO); if (!t->tid_tab) return (ENOMEM); @@ -270,8 +115,8 @@ init_tid_tabs(struct tid_info *t, unsigned int ntids, t->afree = NULL; t->stids_in_use = t->atids_in_use = 0; t->tids_in_use = 0; - mtx_init(&t->stid_lock, "stid", NULL, MTX_DUPOK|MTX_DEF); - mtx_init(&t->atid_lock, "atid", NULL, MTX_DUPOK|MTX_DEF); + mtx_init(&t->stid_lock, "stid", NULL, MTX_DEF); + mtx_init(&t->atid_lock, "atid", NULL, MTX_DEF); /* * Setup the free lists for stid_tab and atid_tab. @@ -286,1240 +131,266 @@ init_tid_tabs(struct tid_info *t, unsigned int ntids, t->atid_tab[natids - 1].next = &t->atid_tab[natids]; t->afree = t->atid_tab; } - return 0; + return (0); } static void -free_tid_maps(struct tid_info *t) +free_tid_tabs(struct tid_info *t) { - mtx_destroy(&t->stid_lock); - mtx_destroy(&t->atid_lock); - cxgb_free_mem(t->tid_tab); + if (mtx_initialized(&t->stid_lock)) + mtx_destroy(&t->stid_lock); + if (mtx_initialized(&t->atid_lock)) + mtx_destroy(&t->atid_lock); + free(t->tid_tab, M_CXGB); } -static inline void -add_adapter(adapter_t *adap) -{ - rw_wlock(&adapter_list_lock); - TAILQ_INSERT_TAIL(&adapter_list, adap, adapter_entry); - rw_wunlock(&adapter_list_lock); -} - -static inline void -remove_adapter(adapter_t *adap) -{ - rw_wlock(&adapter_list_lock); - TAILQ_REMOVE(&adapter_list, adap, adapter_entry); - rw_wunlock(&adapter_list_lock); -} - -/* - * Populate a TID_RELEASE WR. The mbuf must be already propely sized. - */ -static inline void -mk_tid_release(struct mbuf *m, unsigned int tid) -{ - struct cpl_tid_release *req; - - m_set_priority(m, CPL_PRIORITY_SETUP); - req = mtod(m, struct cpl_tid_release *); - m->m_pkthdr.len = m->m_len = sizeof(*req); - req->wr.wr_hi = htonl(V_WR_OP(FW_WROPCODE_FORWARD)); - OPCODE_TID(req) = htonl(MK_OPCODE_TID(CPL_TID_RELEASE, tid)); -} - -static void -t3_process_tid_release_list(void *data, int pending) +static int +write_smt_entry(struct adapter *sc, int idx) { + struct port_info *pi = &sc->port[idx]; + struct cpl_smt_write_req *req; struct mbuf *m; - struct t3cdev *tdev = data; - struct t3c_data *td = T3C_DATA (tdev); - mtx_lock(&td->tid_release_lock); - while (td->tid_release_list) { - struct toe_tid_entry *p = td->tid_release_list; - - td->tid_release_list = (struct toe_tid_entry *)p->ctx; - mtx_unlock(&td->tid_release_lock); - m = m_get(M_WAIT, MT_DATA); - mk_tid_release(m, p - td->tid_maps.tid_tab); - cxgb_ofld_send(tdev, m); - p->ctx = NULL; - mtx_lock(&td->tid_release_lock); - } - mtx_unlock(&td->tid_release_lock); -} - -int -cxgb_offload_activate(struct adapter *adapter) -{ - struct t3cdev *dev = &adapter->tdev; - int natids, err; - struct t3c_data *t; - struct tid_range stid_range, tid_range; - struct mtutab mtutab; - unsigned int l2t_capacity; - - t = malloc(sizeof(*t), M_CXGB, M_NOWAIT|M_ZERO); - if (!t) + m = M_GETHDR_OFLD(0, CPL_PRIORITY_CONTROL, req); + if (m == NULL) { + log(LOG_ERR, "%s: no mbuf, can't write SMT entry for %d\n", + __func__, idx); return (ENOMEM); - dev->adapter = adapter; - - err = (EOPNOTSUPP); - if (dev->ctl(dev, GET_TX_MAX_CHUNK, &t->tx_max_chunk) < 0 || - dev->ctl(dev, GET_MAX_OUTSTANDING_WR, &t->max_wrs) < 0 || - dev->ctl(dev, GET_L2T_CAPACITY, &l2t_capacity) < 0 || - dev->ctl(dev, GET_MTUS, &mtutab) < 0 || - dev->ctl(dev, GET_TID_RANGE, &tid_range) < 0 || - dev->ctl(dev, GET_STID_RANGE, &stid_range) < 0) { - device_printf(adapter->dev, "%s: dev->ctl check failed\n", __FUNCTION__); - goto out_free; - } - - err = (ENOMEM); - L2DATA(dev) = t3_init_l2t(l2t_capacity); - if (!L2DATA(dev)) { - device_printf(adapter->dev, "%s: t3_init_l2t failed\n", __FUNCTION__); - goto out_free; - } - natids = min(tid_range.num / 2, MAX_ATIDS); - err = init_tid_tabs(&t->tid_maps, tid_range.num, natids, - stid_range.num, ATID_BASE, stid_range.base); - if (err) { - device_printf(adapter->dev, "%s: init_tid_tabs failed\n", __FUNCTION__); - goto out_free_l2t; - } - - t->mtus = mtutab.mtus; - t->nmtus = mtutab.size; - - TASK_INIT(&t->tid_release_task, 0 /* XXX? */, t3_process_tid_release_list, dev); - mtx_init(&t->tid_release_lock, "tid release", NULL, MTX_DUPOK|MTX_DEF); - t->dev = dev; - - T3C_DATA (dev) = t; - dev->recv = process_rx; - dev->arp_update = t3_l2t_update; - /* Register netevent handler once */ - if (TAILQ_EMPTY(&adapter_list)) { -#if defined(CONFIG_CHELSIO_T3_MODULE) - if (prepare_arp_with_t3core()) - log(LOG_ERR, "Unable to set offload capabilities\n"); -#endif - } - CTR1(KTR_CXGB, "adding adapter %p", adapter); - add_adapter(adapter); - device_printf(adapter->dev, "offload started\n"); - adapter->flags |= CXGB_OFLD_INIT; - return (0); - -out_free_l2t: - t3_free_l2t(L2DATA(dev)); - L2DATA(dev) = NULL; -out_free: - free(t, M_CXGB); - return (err); -} - -void -cxgb_offload_deactivate(struct adapter *adapter) -{ - struct t3cdev *tdev = &adapter->tdev; - struct t3c_data *t = T3C_DATA(tdev); - - printf("removing adapter %p\n", adapter); - remove_adapter(adapter); - if (TAILQ_EMPTY(&adapter_list)) { -#if defined(CONFIG_CHELSIO_T3_MODULE) - restore_arp_sans_t3core(); -#endif - } - free_tid_maps(&t->tid_maps); - T3C_DATA(tdev) = NULL; - t3_free_l2t(L2DATA(tdev)); - L2DATA(tdev) = NULL; - mtx_destroy(&t->tid_release_lock); - free(t, M_CXGB); -} - -/* - * Sends an sk_buff to a T3C driver after dealing with any active network taps. - */ -int -cxgb_ofld_send(struct t3cdev *dev, struct mbuf *m) -{ - int r; - - r = dev->send(dev, m); - return r; -} - -static struct ifnet * -get_iff_from_mac(adapter_t *adapter, const uint8_t *mac, unsigned int vlan) -{ - int i; - - for_each_port(adapter, i) { -#ifdef notyet - const struct vlan_group *grp; -#endif - const struct port_info *p = &adapter->port[i]; - struct ifnet *ifp = p->ifp; - - if (!memcmp(p->hw_addr, mac, ETHER_ADDR_LEN)) { -#ifdef notyet - - if (vlan && vlan != EVL_VLID_MASK) { - grp = p->vlan_grp; - dev = grp ? grp->vlan_devices[vlan] : NULL; - } else - while (dev->master) - dev = dev->master; -#endif - return (ifp); - } - } - return (NULL); -} - -static inline void -failover_fixup(adapter_t *adapter, int port) -{ - if (adapter->params.rev == 0) { - struct ifnet *ifp = adapter->port[port].ifp; - struct cmac *mac = &adapter->port[port].mac; - if (!(ifp->if_flags & IFF_UP)) { - /* Failover triggered by the interface ifdown */ - t3_write_reg(adapter, A_XGM_TX_CTRL + mac->offset, - F_TXEN); - t3_read_reg(adapter, A_XGM_TX_CTRL + mac->offset); - } else { - /* Failover triggered by the interface link down */ - t3_write_reg(adapter, A_XGM_RX_CTRL + mac->offset, 0); - t3_read_reg(adapter, A_XGM_RX_CTRL + mac->offset); - t3_write_reg(adapter, A_XGM_RX_CTRL + mac->offset, - F_RXEN); - } - } -} - -static int -cxgb_ulp_iscsi_ctl(adapter_t *adapter, unsigned int req, void *data) -{ - int ret = 0; - struct ulp_iscsi_info *uiip = data; - - switch (req) { - case ULP_ISCSI_GET_PARAMS: - uiip->llimit = t3_read_reg(adapter, A_ULPRX_ISCSI_LLIMIT); - uiip->ulimit = t3_read_reg(adapter, A_ULPRX_ISCSI_ULIMIT); - uiip->tagmask = t3_read_reg(adapter, A_ULPRX_ISCSI_TAGMASK); - /* - * On tx, the iscsi pdu has to be <= tx page size and has to - * fit into the Tx PM FIFO. - */ - uiip->max_txsz = min(adapter->params.tp.tx_pg_size, - t3_read_reg(adapter, A_PM1_TX_CFG) >> 17); - /* on rx, the iscsi pdu has to be < rx page size and the - whole pdu + cpl headers has to fit into one sge buffer */ - /* also check the max rx data length programmed in TP */ - uiip->max_rxsz = min(uiip->max_rxsz, - ((t3_read_reg(adapter, A_TP_PARA_REG2)) - >> S_MAXRXDATA) & M_MAXRXDATA); - break; - case ULP_ISCSI_SET_PARAMS: - t3_write_reg(adapter, A_ULPRX_ISCSI_TAGMASK, uiip->tagmask); - break; - default: - ret = (EOPNOTSUPP); - } - return ret; -} - -/* Response queue used for RDMA events. */ -#define ASYNC_NOTIF_RSPQ 0 - -static int -cxgb_rdma_ctl(adapter_t *adapter, unsigned int req, void *data) -{ - int ret = 0; - - switch (req) { - case RDMA_GET_PARAMS: { - struct rdma_info *req = data; - - req->udbell_physbase = rman_get_start(adapter->udbs_res); - req->udbell_len = rman_get_size(adapter->udbs_res); - req->tpt_base = t3_read_reg(adapter, A_ULPTX_TPT_LLIMIT); - req->tpt_top = t3_read_reg(adapter, A_ULPTX_TPT_ULIMIT); - req->pbl_base = t3_read_reg(adapter, A_ULPTX_PBL_LLIMIT); - req->pbl_top = t3_read_reg(adapter, A_ULPTX_PBL_ULIMIT); - req->rqt_base = t3_read_reg(adapter, A_ULPRX_RQ_LLIMIT); - req->rqt_top = t3_read_reg(adapter, A_ULPRX_RQ_ULIMIT); - req->kdb_addr = (void *)((unsigned long)rman_get_virtual(adapter->regs_res) + A_SG_KDOORBELL); break; - } - case RDMA_CQ_OP: { - struct rdma_cq_op *req = data; - - /* may be called in any context */ - mtx_lock_spin(&adapter->sge.reg_lock); - ret = t3_sge_cqcntxt_op(adapter, req->id, req->op, - req->credits); - mtx_unlock_spin(&adapter->sge.reg_lock); - break; - } - case RDMA_GET_MEM: { - struct ch_mem_range *t = data; - struct mc7 *mem; - - if ((t->addr & 7) || (t->len & 7)) - return (EINVAL); - if (t->mem_id == MEM_CM) - mem = &adapter->cm; - else if (t->mem_id == MEM_PMRX) - mem = &adapter->pmrx; - else if (t->mem_id == MEM_PMTX) - mem = &adapter->pmtx; - else - return (EINVAL); - - ret = t3_mc7_bd_read(mem, t->addr/8, t->len/8, (u64 *)t->buf); - if (ret) - return (ret); - break; - } - case RDMA_CQ_SETUP: { - struct rdma_cq_setup *req = data; - - mtx_lock_spin(&adapter->sge.reg_lock); - ret = t3_sge_init_cqcntxt(adapter, req->id, req->base_addr, - req->size, ASYNC_NOTIF_RSPQ, - req->ovfl_mode, req->credits, - req->credit_thres); - mtx_unlock_spin(&adapter->sge.reg_lock); - break; - } - case RDMA_CQ_DISABLE: - mtx_lock_spin(&adapter->sge.reg_lock); - ret = t3_sge_disable_cqcntxt(adapter, *(unsigned int *)data); - mtx_unlock_spin(&adapter->sge.reg_lock); - break; - case RDMA_CTRL_QP_SETUP: { - struct rdma_ctrlqp_setup *req = data; - - mtx_lock_spin(&adapter->sge.reg_lock); - ret = t3_sge_init_ecntxt(adapter, FW_RI_SGEEC_START, 0, - SGE_CNTXT_RDMA, ASYNC_NOTIF_RSPQ, - req->base_addr, req->size, - FW_RI_TID_START, 1, 0); - mtx_unlock_spin(&adapter->sge.reg_lock); - break; - } - default: - ret = EOPNOTSUPP; - } - return (ret); -} - -static int -cxgb_offload_ctl(struct t3cdev *tdev, unsigned int req, void *data) -{ - struct adapter *adapter = tdev2adap(tdev); - struct tid_range *tid; - struct mtutab *mtup; - struct iff_mac *iffmacp; - struct ddp_params *ddpp; - struct adap_ports *ports; - struct ofld_page_info *rx_page_info; - struct tp_params *tp = &adapter->params.tp; - int port; - - switch (req) { - case GET_MAX_OUTSTANDING_WR: - *(unsigned int *)data = FW_WR_NUM; - break; - case GET_WR_LEN: - *(unsigned int *)data = WR_FLITS; - break; - case GET_TX_MAX_CHUNK: - *(unsigned int *)data = 1 << 20; /* 1MB */ - break; - case GET_TID_RANGE: - tid = data; - tid->num = t3_mc5_size(&adapter->mc5) - - adapter->params.mc5.nroutes - - adapter->params.mc5.nfilters - - adapter->params.mc5.nservers; - tid->base = 0; - break; - case GET_STID_RANGE: - tid = data; - tid->num = adapter->params.mc5.nservers; - tid->base = t3_mc5_size(&adapter->mc5) - tid->num - - adapter->params.mc5.nfilters - - adapter->params.mc5.nroutes; - break; - case GET_L2T_CAPACITY: - *(unsigned int *)data = 2048; - break; - case GET_MTUS: - mtup = data; - mtup->size = NMTUS; - mtup->mtus = adapter->params.mtus; - break; - case GET_IFF_FROM_MAC: - iffmacp = data; - iffmacp->dev = get_iff_from_mac(adapter, iffmacp->mac_addr, - iffmacp->vlan_tag & EVL_VLID_MASK); - break; - case GET_DDP_PARAMS: - ddpp = data; - ddpp->llimit = t3_read_reg(adapter, A_ULPRX_TDDP_LLIMIT); - ddpp->ulimit = t3_read_reg(adapter, A_ULPRX_TDDP_ULIMIT); - ddpp->tag_mask = t3_read_reg(adapter, A_ULPRX_TDDP_TAGMASK); - break; - case GET_PORTS: - ports = data; - ports->nports = adapter->params.nports; - for_each_port(adapter, port) - ports->lldevs[port] = adapter->port[port].ifp; - break; - case FAILOVER: - port = *(int *)data; - t3_port_failover(adapter, port); - failover_fixup(adapter, port); - break; - case FAILOVER_DONE: - port = *(int *)data; - t3_failover_done(adapter, port); - break; - case FAILOVER_CLEAR: - t3_failover_clear(adapter); - break; - case GET_RX_PAGE_INFO: - rx_page_info = data; - rx_page_info->page_size = tp->rx_pg_size; - rx_page_info->num = tp->rx_num_pgs; - break; - case ULP_ISCSI_GET_PARAMS: - case ULP_ISCSI_SET_PARAMS: - if (!offload_running(adapter)) - return (EAGAIN); - return cxgb_ulp_iscsi_ctl(adapter, req, data); - case RDMA_GET_PARAMS: - case RDMA_CQ_OP: - case RDMA_CQ_SETUP: - case RDMA_CQ_DISABLE: - case RDMA_CTRL_QP_SETUP: - case RDMA_GET_MEM: - if (!offload_running(adapter)) - return (EAGAIN); - return cxgb_rdma_ctl(adapter, req, data); - default: - return (EOPNOTSUPP); - } - return 0; -} - -/* - * Allocate a TOM data structure, - * initialize its cpl_handlers - * and register it as a T3C client - */ -static void -t3c_tom_add(struct t3cdev *cdev) -{ - int i; - unsigned int wr_len; - struct tom_data *t; - struct toedev *tdev; - struct adap_ports *port_info; - - t = malloc(sizeof(*t), M_CXGB, M_NOWAIT|M_ZERO); - if (t == NULL) - return; - - cdev->send = t3_offload_tx; - cdev->ctl = cxgb_offload_ctl; - - if (cdev->ctl(cdev, GET_WR_LEN, &wr_len) < 0) - goto out_free_tom; - - port_info = malloc(sizeof(*port_info), M_CXGB, M_NOWAIT|M_ZERO); - if (!port_info) - goto out_free_tom; - - if (cdev->ctl(cdev, GET_PORTS, port_info) < 0) - goto out_free_all; - - t3_init_wr_tab(wr_len); - t->cdev = cdev; - t->client = &t3c_tom_client; - - /* Register TCP offload device */ - tdev = &t->tdev; - tdev->tod_ttid = cdev2type(cdev); - tdev->tod_lldev = cdev->lldev; - - if (register_toedev(tdev, "toe%d")) { - printf("unable to register offload device"); - goto out_free_all; - } - TOM_DATA(tdev) = t; - - for (i = 0; i < port_info->nports; i++) { - struct ifnet *ifp = port_info->lldevs[i]; - TOEDEV(ifp) = tdev; - - CTR1(KTR_TOM, "enabling toe on %p", ifp); - ifp->if_capabilities |= IFCAP_TOE4; - ifp->if_capenable |= IFCAP_TOE4; - } - t->ports = port_info; - - /* Add device to the list of offload devices */ - t3cdev_add(t); - - /* Activate TCP offload device */ - cxgb_offload_activate(TOM_DATA(tdev)->cdev->adapter); - - activate_offload(tdev); - cxgb_register_listeners(); - return; - -out_free_all: - printf("out_free_all fail\n"); - free(port_info, M_CXGB); -out_free_tom: - printf("out_free_tom fail\n"); - free(t, M_CXGB); - return; -} - - - -static int -do_act_open_rpl(struct t3cdev *dev, struct mbuf *m) -{ - struct cpl_act_open_rpl *rpl = cplhdr(m); - unsigned int atid = G_TID(ntohl(rpl->atid)); - struct toe_tid_entry *toe_tid; - - toe_tid = lookup_atid(&(T3C_DATA (dev))->tid_maps, atid); - if (toe_tid->ctx && toe_tid->client && toe_tid->client->handlers && - toe_tid->client->handlers[CPL_ACT_OPEN_RPL]) { - return toe_tid->client->handlers[CPL_ACT_OPEN_RPL] (dev, m, - toe_tid->ctx); - } else { - log(LOG_ERR, "%s: received clientless CPL command 0x%x\n", - dev->name, CPL_ACT_OPEN_RPL); - return CPL_RET_BUF_DONE | CPL_RET_BAD_MSG; - } -} - -static int -do_stid_rpl(struct t3cdev *dev, struct mbuf *m) -{ - union opcode_tid *p = cplhdr(m); - unsigned int stid = G_TID(ntohl(p->opcode_tid)); - struct toe_tid_entry *toe_tid; - - toe_tid = lookup_stid(&(T3C_DATA (dev))->tid_maps, stid); - if (toe_tid->ctx && toe_tid->client->handlers && - toe_tid->client->handlers[p->opcode]) { - return toe_tid->client->handlers[p->opcode] (dev, m, toe_tid->ctx); - } else { - log(LOG_ERR, "%s: received clientless CPL command 0x%x\n", - dev->name, p->opcode); - return CPL_RET_BUF_DONE | CPL_RET_BAD_MSG; - } -} - -static int -do_hwtid_rpl(struct t3cdev *dev, struct mbuf *m) -{ - union opcode_tid *p = cplhdr(m); - unsigned int hwtid; - struct toe_tid_entry *toe_tid; - - DPRINTF("do_hwtid_rpl opcode=0x%x\n", p->opcode); - hwtid = G_TID(ntohl(p->opcode_tid)); - - toe_tid = lookup_tid(&(T3C_DATA (dev))->tid_maps, hwtid); - if (toe_tid->ctx && toe_tid->client->handlers && - toe_tid->client->handlers[p->opcode]) { - return toe_tid->client->handlers[p->opcode] - (dev, m, toe_tid->ctx); - } else { - log(LOG_ERR, "%s: received clientless CPL command 0x%x\n", - dev->name, p->opcode); - return CPL_RET_BUF_DONE | CPL_RET_BAD_MSG; - } -} - -static int -do_cr(struct t3cdev *dev, struct mbuf *m) -{ - struct cpl_pass_accept_req *req = cplhdr(m); - unsigned int stid = G_PASS_OPEN_TID(ntohl(req->tos_tid)); - struct toe_tid_entry *toe_tid; - - toe_tid = lookup_stid(&(T3C_DATA (dev))->tid_maps, stid); - if (toe_tid->ctx && toe_tid->client->handlers && - toe_tid->client->handlers[CPL_PASS_ACCEPT_REQ]) { - return toe_tid->client->handlers[CPL_PASS_ACCEPT_REQ] - (dev, m, toe_tid->ctx); - } else { - log(LOG_ERR, "%s: received clientless CPL command 0x%x\n", - dev->name, CPL_PASS_ACCEPT_REQ); - return CPL_RET_BUF_DONE | CPL_RET_BAD_MSG; - } -} - -static int -do_abort_req_rss(struct t3cdev *dev, struct mbuf *m) -{ - union opcode_tid *p = cplhdr(m); - unsigned int hwtid = G_TID(ntohl(p->opcode_tid)); - struct toe_tid_entry *toe_tid; - - toe_tid = lookup_tid(&(T3C_DATA (dev))->tid_maps, hwtid); - if (toe_tid->ctx && toe_tid->client->handlers && - toe_tid->client->handlers[p->opcode]) { - return toe_tid->client->handlers[p->opcode] - (dev, m, toe_tid->ctx); - } else { - struct cpl_abort_req_rss *req = cplhdr(m); - struct cpl_abort_rpl *rpl; - - struct mbuf *m = m_get(M_NOWAIT, MT_DATA); - if (!m) { - log(LOG_NOTICE, "do_abort_req_rss: couldn't get mbuf!\n"); - goto out; - } - - m_set_priority(m, CPL_PRIORITY_DATA); - rpl = cplhdr(m); - rpl->wr.wr_hi = - htonl(V_WR_OP(FW_WROPCODE_OFLD_HOST_ABORT_CON_RPL)); - rpl->wr.wr_lo = htonl(V_WR_TID(GET_TID(req))); - OPCODE_TID(rpl) = - htonl(MK_OPCODE_TID(CPL_ABORT_RPL, GET_TID(req))); - rpl->cmd = req->status; - cxgb_ofld_send(dev, m); - out: - return (CPL_RET_BUF_DONE); - } -} - -static int -do_act_establish(struct t3cdev *dev, struct mbuf *m) -{ - struct cpl_act_establish *req; - unsigned int atid; - struct toe_tid_entry *toe_tid; - - req = cplhdr(m); - atid = G_PASS_OPEN_TID(ntohl(req->tos_tid)); - toe_tid = lookup_atid(&(T3C_DATA (dev))->tid_maps, atid); - if (toe_tid && toe_tid->ctx && toe_tid->client->handlers && - toe_tid->client->handlers[CPL_ACT_ESTABLISH]) { - - return toe_tid->client->handlers[CPL_ACT_ESTABLISH] - (dev, m, toe_tid->ctx); - } else { - - log(LOG_ERR, "%s: received clientless CPL command 0x%x\n", - dev->name, CPL_ACT_ESTABLISH); - return CPL_RET_BUF_DONE | CPL_RET_BAD_MSG; - } -} - - -static int -do_term(struct t3cdev *dev, struct mbuf *m) -{ - unsigned int hwtid = ntohl(m_get_priority(m)) >> 8 & 0xfffff; - unsigned int opcode = G_OPCODE(ntohl(m->m_pkthdr.csum_data)); - struct toe_tid_entry *toe_tid; - - toe_tid = lookup_tid(&(T3C_DATA (dev))->tid_maps, hwtid); - if (toe_tid && toe_tid->ctx && toe_tid->client->handlers && - toe_tid->client->handlers[opcode]) { - return toe_tid->client->handlers[opcode](dev, m, toe_tid->ctx); - } else { - log(LOG_ERR, "%s: received clientless CPL command 0x%x\n", - dev->name, opcode); - return CPL_RET_BUF_DONE | CPL_RET_BAD_MSG; - } - return (0); -} - -/* - * Process a received packet with an unknown/unexpected CPL opcode. - */ -static int -do_bad_cpl(struct t3cdev *cdev, struct mbuf *m, void *ctx) -{ - log(LOG_ERR, "%s: received bad CPL command %u\n", cdev->name, - 0xFF & *mtod(m, unsigned int *)); - return (CPL_RET_BUF_DONE | CPL_RET_BAD_MSG); -} - -/* - * Add a new handler to the CPL dispatch table. A NULL handler may be supplied - * to unregister an existing handler. - */ -void -t3tom_register_cpl_handler(unsigned int opcode, cxgb_cpl_handler_func h) -{ - if (opcode < UCHAR_MAX) - tom_cpl_handlers[opcode] = h ? h : do_bad_cpl; - else - log(LOG_ERR, "Chelsio T3 TOM: handler registration for " - "opcode %u failed\n", opcode); -} - -/* - * Make a preliminary determination if a connection can be offloaded. It's OK - * to fail the offload later if we say we can offload here. For now this - * always accepts the offload request unless there are IP options. - */ -static int -can_offload(struct toedev *dev, struct socket *so) -{ - struct tom_data *tomd = TOM_DATA(dev); - struct t3cdev *cdev = T3CDEV(dev->tod_lldev); - struct tid_info *t = &(T3C_DATA(cdev))->tid_maps; - - return so_sotoinpcb(so)->inp_depend4.inp4_options == NULL && - tomd->conf.activated && - (tomd->conf.max_conn < 0 || - atomic_load_acq_int(&t->tids_in_use) + t->atids_in_use < tomd->conf.max_conn); -} - -static int -tom_ctl(struct toedev *dev, unsigned int req, void *data) -{ - struct tom_data *t = TOM_DATA(dev); - struct t3cdev *cdev = t->cdev; - - if (cdev->ctl) - return cdev->ctl(cdev, req, data); - - return (EOPNOTSUPP); -} - -/* - * Free an active-open TID. - */ -void * -cxgb_free_atid(struct t3cdev *tdev, int atid) -{ - struct tid_info *t = &(T3C_DATA(tdev))->tid_maps; - union active_open_entry *p = atid2entry(t, atid); - void *ctx = p->toe_tid.ctx; - - mtx_lock(&t->atid_lock); - p->next = t->afree; - t->afree = p; - t->atids_in_use--; - mtx_unlock(&t->atid_lock); - - return ctx; -} - -/* - * Free a server TID and return it to the free pool. - */ -void -cxgb_free_stid(struct t3cdev *tdev, int stid) -{ - struct tid_info *t = &(T3C_DATA (tdev))->tid_maps; - union listen_entry *p = stid2entry(t, stid); - - mtx_lock(&t->stid_lock); - p->next = t->sfree; - t->sfree = p; - t->stids_in_use--; - mtx_unlock(&t->stid_lock); -} - -/* - * Free a server TID and return it to the free pool. - */ -void * -cxgb_get_lctx(struct t3cdev *tdev, int stid) -{ - struct tid_info *t = &(T3C_DATA (tdev))->tid_maps; - union listen_entry *p = stid2entry(t, stid); - - return (p->toe_tid.ctx); -} - -void -cxgb_insert_tid(struct t3cdev *tdev, struct cxgb_client *client, - void *ctx, unsigned int tid) -{ - struct tid_info *t = &(T3C_DATA (tdev))->tid_maps; - - t->tid_tab[tid].client = client; - t->tid_tab[tid].ctx = ctx; - atomic_add_int(&t->tids_in_use, 1); -} - -/* use ctx as a next pointer in the tid release list */ -void -cxgb_queue_tid_release(struct t3cdev *tdev, unsigned int tid) -{ - struct t3c_data *td = T3C_DATA (tdev); - struct toe_tid_entry *p = &td->tid_maps.tid_tab[tid]; - - CTR0(KTR_TOM, "queuing tid release\n"); - - mtx_lock(&td->tid_release_lock); - p->ctx = td->tid_release_list; - td->tid_release_list = p; - - if (!p->ctx) - taskqueue_enqueue(tdev->adapter->tq, &td->tid_release_task); - - mtx_unlock(&td->tid_release_lock); -} - -/* - * Remove a tid from the TID table. A client may defer processing its last - * CPL message if it is locked at the time it arrives, and while the message - * sits in the client's backlog the TID may be reused for another connection. - * To handle this we atomically switch the TID association if it still points - * to the original client context. - */ -void -cxgb_remove_tid(struct t3cdev *tdev, void *ctx, unsigned int tid) -{ - struct tid_info *t = &(T3C_DATA (tdev))->tid_maps; - - if (tid >= t->ntids) - panic("tid=%d >= t->ntids=%d", tid, t->ntids); - - if (tdev->type == T3A) - atomic_cmpset_ptr((uintptr_t *)&t->tid_tab[tid].ctx, (long)NULL, (long)ctx); - else { - struct mbuf *m; - - m = m_get(M_NOWAIT, MT_DATA); - if (__predict_true(m != NULL)) { - mk_tid_release(m, tid); - CTR1(KTR_CXGB, "releasing tid=%u", tid); - - cxgb_ofld_send(tdev, m); - t->tid_tab[tid].ctx = NULL; - } else - cxgb_queue_tid_release(tdev, tid); - } - atomic_add_int(&t->tids_in_use, -1); -} - -int -cxgb_alloc_atid(struct t3cdev *tdev, struct cxgb_client *client, - void *ctx) -{ - int atid = -1; - struct tid_info *t = &(T3C_DATA (tdev))->tid_maps; - - mtx_lock(&t->atid_lock); - if (t->afree) { - union active_open_entry *p = t->afree; - - atid = (p - t->atid_tab) + t->atid_base; - t->afree = p->next; - p->toe_tid.ctx = ctx; - p->toe_tid.client = client; - t->atids_in_use++; - } - mtx_unlock(&t->atid_lock); - return atid; -} - -int -cxgb_alloc_stid(struct t3cdev *tdev, struct cxgb_client *client, - void *ctx) -{ - int stid = -1; - struct tid_info *t = &(T3C_DATA (tdev))->tid_maps; - - mtx_lock(&t->stid_lock); - if (t->sfree) { - union listen_entry *p = t->sfree; - - stid = (p - t->stid_tab) + t->stid_base; - t->sfree = p->next; - p->toe_tid.ctx = ctx; - p->toe_tid.client = client; - t->stids_in_use++; - } - mtx_unlock(&t->stid_lock); - return stid; -} - - -static int -is_offloading(struct ifnet *ifp) -{ - struct adapter *adapter; - int port; - - rw_rlock(&adapter_list_lock); - TAILQ_FOREACH(adapter, &adapter_list, adapter_entry) { - for_each_port(adapter, port) { - if (ifp == adapter->port[port].ifp) { - rw_runlock(&adapter_list_lock); - return 1; - } - } - } - rw_runlock(&adapter_list_lock); - return 0; -} - - -static void -cxgb_arp_update_event(void *unused, struct rtentry *rt0, - uint8_t *enaddr, struct sockaddr *sa) -{ - - if (!is_offloading(rt0->rt_ifp)) - return; - - RT_ADDREF(rt0); - RT_UNLOCK(rt0); - cxgb_neigh_update(rt0, enaddr, sa); - RT_LOCK(rt0); - RT_REMREF(rt0); -} - -static void -cxgb_redirect_event(void *unused, int event, struct rtentry *rt0, - struct rtentry *rt1, struct sockaddr *sa) -{ - /* - * ignore events on non-offloaded interfaces - */ - if (!is_offloading(rt0->rt_ifp)) - return; - - /* - * Cannot redirect to non-offload device. - */ - if (!is_offloading(rt1->rt_ifp)) { - log(LOG_WARNING, "%s: Redirect to non-offload" - "device ignored.\n", __FUNCTION__); - return; } - /* - * avoid LORs by dropping the route lock but keeping a reference - * - */ - RT_ADDREF(rt0); - RT_UNLOCK(rt0); - RT_ADDREF(rt1); - RT_UNLOCK(rt1); - - cxgb_redirect(rt0, rt1, sa); - cxgb_neigh_update(rt1, NULL, sa); + req->wr.wrh_hi = htonl(V_WR_OP(FW_WROPCODE_FORWARD)); + OPCODE_TID(req) = htonl(MK_OPCODE_TID(CPL_SMT_WRITE_REQ, idx)); + req->mtu_idx = NMTUS - 1; /* should be 0 but there's a T3 bug */ + req->iff = idx; + memset(req->src_mac1, 0, sizeof(req->src_mac1)); + memcpy(req->src_mac0, pi->hw_addr, ETHER_ADDR_LEN); - RT_LOCK(rt0); - RT_REMREF(rt0); - RT_LOCK(rt1); - RT_REMREF(rt1); -} + t3_offload_tx(sc, m); -void -cxgb_neigh_update(struct rtentry *rt, uint8_t *enaddr, struct sockaddr *sa) -{ - - if (rt->rt_ifp && is_offloading(rt->rt_ifp) && (rt->rt_ifp->if_flags & IFCAP_TOE)) { - struct t3cdev *tdev = T3CDEV(rt->rt_ifp); - - PANIC_IF(!tdev); - t3_l2t_update(tdev, rt, enaddr, sa); - } -} - -static void -set_l2t_ix(struct t3cdev *tdev, u32 tid, struct l2t_entry *e) -{ - struct mbuf *m; - struct cpl_set_tcb_field *req; - - m = m_gethdr(M_NOWAIT, MT_DATA); - if (!m) { - log(LOG_ERR, "%s: cannot allocate mbuf!\n", __FUNCTION__); - return; - } - - m_set_priority(m, CPL_PRIORITY_CONTROL); - req = mtod(m, struct cpl_set_tcb_field *); - m->m_pkthdr.len = m->m_len = sizeof(*req); - - req->wr.wr_hi = htonl(V_WR_OP(FW_WROPCODE_FORWARD)); - OPCODE_TID(req) = htonl(MK_OPCODE_TID(CPL_SET_TCB_FIELD, tid)); - req->reply = 0; - req->cpu_idx = 0; - req->word = htons(W_TCB_L2T_IX); - req->mask = htobe64(V_TCB_L2T_IX(M_TCB_L2T_IX)); - req->val = htobe64(V_TCB_L2T_IX(e->idx)); - tdev->send(tdev, m); -} - -void -cxgb_redirect(struct rtentry *old, struct rtentry *new, struct sockaddr *sa) -{ - struct ifnet *olddev, *newdev; - struct tid_info *ti; - struct t3cdev *tdev; - u32 tid; - int update_tcb; - struct l2t_entry *e; - struct toe_tid_entry *te; - - olddev = old->rt_ifp; - newdev = new->rt_ifp; - if (!is_offloading(olddev)) - return; - if (!is_offloading(newdev)) { - log(LOG_WARNING, "%s: Redirect to non-offload" - "device ignored.\n", __FUNCTION__); - return; - } - tdev = T3CDEV(olddev); - PANIC_IF(!tdev); - if (tdev != T3CDEV(newdev)) { - log(LOG_WARNING, "%s: Redirect to different " - "offload device ignored.\n", __FUNCTION__); - return; - } - - /* Add new L2T entry */ - e = t3_l2t_get(tdev, new, new->rt_ifp, sa); - if (!e) { - log(LOG_ERR, "%s: couldn't allocate new l2t entry!\n", - __FUNCTION__); - return; - } - - /* Walk tid table and notify clients of dst change. */ - ti = &(T3C_DATA (tdev))->tid_maps; - for (tid=0; tid < ti->ntids; tid++) { - te = lookup_tid(ti, tid); - PANIC_IF(!te); - if (te->ctx && te->client && te->client->redirect) { - update_tcb = te->client->redirect(te->ctx, old, new, - e); - if (update_tcb) { - l2t_hold(L2DATA(tdev), e); - set_l2t_ix(tdev, tid, e); - } - } - } - l2t_release(L2DATA(tdev), e); -} - -/* - * Initialize the CPL dispatch table. - */ -static void -init_cpl_handlers(void) -{ - int i; - - for (i = 0; i < 256; ++i) - tom_cpl_handlers[i] = do_bad_cpl; - - t3_init_listen_cpl_handlers(); -} - -static int -t3_toe_attach(struct toedev *dev, const struct offload_id *entry) -{ - struct tom_data *t = TOM_DATA(dev); - struct t3cdev *cdev = t->cdev; - struct ddp_params ddp; - struct ofld_page_info rx_page_info; - int err; - - t3_init_tunables(t); - mtx_init(&t->listen_lock, "tom data listeners", NULL, MTX_DEF); - CTR2(KTR_TOM, "t3_toe_attach dev=%p entry=%p", dev, entry); - - dev->tod_can_offload = can_offload; - dev->tod_connect = t3_connect; - dev->tod_ctl = tom_ctl; -#if 0 - dev->tod_failover = t3_failover; -#endif - err = cdev->ctl(cdev, GET_DDP_PARAMS, &ddp); - if (err) - return err; - - err = cdev->ctl(cdev, GET_RX_PAGE_INFO, &rx_page_info); - if (err) - return err; - - t->ddp_llimit = ddp.llimit; - t->ddp_ulimit = ddp.ulimit; - t->pdev = ddp.pdev; - t->rx_page_size = rx_page_info.page_size; - /* OK if this fails, we just can't do DDP */ - t->nppods = (ddp.ulimit + 1 - ddp.llimit) / PPOD_SIZE; - t->ppod_map = malloc(t->nppods, M_DEVBUF, M_NOWAIT|M_ZERO); - - mtx_init(&t->ppod_map_lock, "ppod map", NULL, MTX_DEF); - - - t3_sysctl_register(cdev->adapter, &t->conf); return (0); } static void -cxgb_toe_listen_start(void *unused, struct tcpcb *tp) +free_tom_data(struct tom_data *td) { - struct socket *so = inp_inpcbtosocket(tp->t_inpcb); - struct tom_data *p; - - mtx_lock(&cxgb_list_lock); - TAILQ_FOREACH(p, &cxgb_list, entry) { - t3_listen_start(&p->tdev, so, p->cdev); + KASSERT(TAILQ_EMPTY(&td->toep_list), + ("%s: toep_list not empty", __func__)); + + if (td->listen_mask != 0) + hashdestroy(td->listen_hash, M_CXGB, td->listen_mask); + + if (mtx_initialized(&td->toep_list_lock)) + mtx_destroy(&td->toep_list_lock); + if (mtx_initialized(&td->lctx_hash_lock)) + mtx_destroy(&td->lctx_hash_lock); + if (mtx_initialized(&td->tid_release_lock)) + mtx_destroy(&td->tid_release_lock); + if (td->l2t) + t3_free_l2t(td->l2t); + free_tid_tabs(&td->tid_maps); + free(td, M_CXGB); +} + +/* + * Ground control to Major TOM + * Commencing countdown, engines on + */ +static int +t3_tom_activate(struct adapter *sc) +{ + struct tom_data *td; + struct toedev *tod; + int i, rc = 0; + struct mc5_params *mc5 = &sc->params.mc5; + u_int ntids, natids, mtus; + + ADAPTER_LOCK_ASSERT_OWNED(sc); /* for sc->flags */ + + /* per-adapter softc for TOM */ + td = malloc(sizeof(*td), M_CXGB, M_ZERO | M_NOWAIT); + if (td == NULL) + return (ENOMEM); + + /* List of TOE PCBs and associated lock */ + mtx_init(&td->toep_list_lock, "PCB list lock", NULL, MTX_DEF); + TAILQ_INIT(&td->toep_list); + + /* Listen context */ + mtx_init(&td->lctx_hash_lock, "lctx hash lock", NULL, MTX_DEF); + td->listen_hash = hashinit_flags(LISTEN_HASH_SIZE, M_CXGB, + &td->listen_mask, HASH_NOWAIT); + + /* TID release task */ + TASK_INIT(&td->tid_release_task, 0 , t3_process_tid_release_list, td); + mtx_init(&td->tid_release_lock, "tid release", NULL, MTX_DEF); + + /* L2 table */ + td->l2t = t3_init_l2t(L2T_SIZE); + if (td->l2t == NULL) { + rc = ENOMEM; + goto done; } - mtx_unlock(&cxgb_list_lock); -} -static void -cxgb_toe_listen_stop(void *unused, struct tcpcb *tp) -{ - struct socket *so = inp_inpcbtosocket(tp->t_inpcb); - struct tom_data *p; - - mtx_lock(&cxgb_list_lock); - TAILQ_FOREACH(p, &cxgb_list, entry) { - if (tp->t_state == TCPS_LISTEN) - t3_listen_stop(&p->tdev, so, p->cdev); + /* TID tables */ + ntids = t3_mc5_size(&sc->mc5) - mc5->nroutes - mc5->nfilters - + mc5->nservers; + natids = min(ntids / 2, 64 * 1024); + rc = alloc_tid_tabs(&td->tid_maps, ntids, natids, mc5->nservers, + 0x100000 /* ATID_BASE */, ntids); + if (rc != 0) + goto done; + + /* CPL handlers */ + t3_init_listen_cpl_handlers(sc); + t3_init_l2t_cpl_handlers(sc); + t3_init_cpl_io(sc); + + /* toedev ops */ + tod = &td->tod; + init_toedev(tod); + tod->tod_softc = sc; + tod->tod_connect = t3_connect; + tod->tod_listen_start = t3_listen_start; + tod->tod_listen_stop = t3_listen_stop; + tod->tod_rcvd = t3_rcvd; + tod->tod_output = t3_tod_output; + tod->tod_send_rst = t3_send_rst; + tod->tod_send_fin = t3_send_fin; + tod->tod_pcb_detach = t3_pcb_detach; + tod->tod_l2_update = t3_l2_update; + tod->tod_syncache_added = t3_syncache_added; + tod->tod_syncache_removed = t3_syncache_removed; + tod->tod_syncache_respond = t3_syncache_respond; + tod->tod_offload_socket = t3_offload_socket; + + /* port MTUs */ + mtus = sc->port[0].ifp->if_mtu; + if (sc->params.nports > 1) + mtus |= sc->port[1].ifp->if_mtu << 16; + t3_write_reg(sc, A_TP_MTU_PORT_TABLE, mtus); + t3_load_mtus(sc, sc->params.mtus, sc->params.a_wnd, sc->params.b_wnd, + sc->params.rev == 0 ? sc->port[0].ifp->if_mtu : 0xffff); + + /* SMT entry for each port */ + for_each_port(sc, i) { + write_smt_entry(sc, i); + TOEDEV(sc->port[i].ifp) = &td->tod; } - mtx_unlock(&cxgb_list_lock); -} -static void -cxgb_toe_listen_start_handler(struct inpcb *inp, void *arg) -{ - struct tcpcb *tp = intotcpcb(inp); + /* Switch TP to offload mode */ + t3_tp_set_offload_mode(sc, 1); - if (tp->t_state == TCPS_LISTEN) - cxgb_toe_listen_start(NULL, tp); -} + sc->tom_softc = td; + sc->flags |= TOM_INIT_DONE; + register_toedev(tod); -static void -cxgb_register_listeners(void) -{ +done: + if (rc != 0) + free_tom_data(td); - inp_apply_all(cxgb_toe_listen_start_handler, NULL); + return (rc); } static int -t3_tom_init(void) +t3_tom_deactivate(struct adapter *sc) { - init_cpl_handlers(); - if (t3_init_cpl_io() < 0) { - log(LOG_ERR, - "Unable to initialize cpl io ops\n"); - return -1; - } - t3_init_socket_ops(); + int rc = 0; + struct tom_data *td = sc->tom_softc; - /* Register with the TOE device layer. */ + ADAPTER_LOCK_ASSERT_OWNED(sc); /* for sc->flags */ - if (register_tom(&t3_tom_info) != 0) { - log(LOG_ERR, - "Unable to register Chelsio T3 TCP offload module.\n"); - return -1; + if (td == NULL) + return (0); /* XXX. KASSERT? */ + + if (sc->offload_map != 0) + return (EBUSY); /* at least one port has IFCAP_TOE enabled */ + + mtx_lock(&td->toep_list_lock); + if (!TAILQ_EMPTY(&td->toep_list)) + rc = EBUSY; + mtx_unlock(&td->toep_list_lock); + + mtx_lock(&td->lctx_hash_lock); + if (td->lctx_count > 0) + rc = EBUSY; + mtx_unlock(&td->lctx_hash_lock); + + if (rc == 0) { + unregister_toedev(&td->tod); + t3_tp_set_offload_mode(sc, 0); + free_tom_data(td); + sc->tom_softc = NULL; + sc->flags &= ~TOM_INIT_DONE; } - rw_init(&adapter_list_lock, "ofld adap list"); - TAILQ_INIT(&adapter_list); - EVENTHANDLER_REGISTER(route_arp_update_event, cxgb_arp_update_event, - NULL, EVENTHANDLER_PRI_ANY); - EVENTHANDLER_REGISTER(route_redirect_event, cxgb_redirect_event, - NULL, EVENTHANDLER_PRI_ANY); - - mtx_init(&cxgb_list_lock, "cxgb tom list", NULL, MTX_DEF); - listen_tag = EVENTHANDLER_REGISTER(tcp_offload_listen_start, - cxgb_toe_listen_start, NULL, EVENTHANDLER_PRI_ANY); - listen_tag = EVENTHANDLER_REGISTER(tcp_offload_listen_stop, - cxgb_toe_listen_stop, NULL, EVENTHANDLER_PRI_ANY); - TAILQ_INIT(&cxgb_list); - + return (rc); +} +static int +t3_tom_mod_load(void) +{ + int rc; - t3_register_cpl_handler(CPL_PASS_OPEN_RPL, do_stid_rpl); - t3_register_cpl_handler(CPL_CLOSE_LISTSRV_RPL, do_stid_rpl); - t3_register_cpl_handler(CPL_PASS_ACCEPT_REQ, do_cr); - t3_register_cpl_handler(CPL_PASS_ESTABLISH, do_hwtid_rpl); - t3_register_cpl_handler(CPL_ABORT_RPL_RSS, do_hwtid_rpl); - t3_register_cpl_handler(CPL_ABORT_RPL, do_hwtid_rpl); - t3_register_cpl_handler(CPL_RX_URG_NOTIFY, do_hwtid_rpl); - t3_register_cpl_handler(CPL_RX_DATA, do_hwtid_rpl); - t3_register_cpl_handler(CPL_TX_DATA_ACK, do_hwtid_rpl); - t3_register_cpl_handler(CPL_TX_DMA_ACK, do_hwtid_rpl); - t3_register_cpl_handler(CPL_ACT_OPEN_RPL, do_act_open_rpl); - t3_register_cpl_handler(CPL_PEER_CLOSE, do_hwtid_rpl); - t3_register_cpl_handler(CPL_CLOSE_CON_RPL, do_hwtid_rpl); - t3_register_cpl_handler(CPL_ABORT_REQ_RSS, do_abort_req_rss); - t3_register_cpl_handler(CPL_ACT_ESTABLISH, do_act_establish); - t3_register_cpl_handler(CPL_RDMA_TERMINATE, do_term); - t3_register_cpl_handler(CPL_RDMA_EC_STATUS, do_hwtid_rpl); - t3_register_cpl_handler(CPL_RX_DATA_DDP, do_hwtid_rpl); - t3_register_cpl_handler(CPL_RX_DDP_COMPLETE, do_hwtid_rpl); - t3_register_cpl_handler(CPL_ISCSI_HDR, do_hwtid_rpl); - t3_register_cpl_handler(CPL_GET_TCB_RPL, do_hwtid_rpl); - t3_register_cpl_handler(CPL_SET_TCB_RPL, do_hwtid_rpl); + rc = t3_register_uld(&tom_uld_info); + if (rc != 0) + t3_tom_mod_unload(); + + return (rc); +} + +static void +tom_uninit(struct adapter *sc, void *arg __unused) +{ + /* Try to free resources (works only if no port has IFCAP_TOE) */ + ADAPTER_LOCK(sc); + if (sc->flags & TOM_INIT_DONE) + t3_deactivate_uld(sc, ULD_TOM); + ADAPTER_UNLOCK(sc); +} + +static int +t3_tom_mod_unload(void) +{ + t3_iterate(tom_uninit, NULL); + + if (t3_unregister_uld(&tom_uld_info) == EBUSY) + return (EBUSY); - /* Register to offloading devices */ - cxgb_register_client(&t3c_tom_client); - return (0); } +#endif /* ifdef TCP_OFFLOAD */ static int -t3_tom_load(module_t mod, int cmd, void *arg) +t3_tom_modevent(module_t mod, int cmd, void *arg) { - int err = 0; + int rc = 0; +#ifdef TCP_OFFLOAD switch (cmd) { case MOD_LOAD: - t3_tom_init(); + rc = t3_tom_mod_load(); break; - case MOD_QUIESCE: - break; - case MOD_UNLOAD: - printf("uhm, ... unloading isn't really supported for toe\n"); - break; - case MOD_SHUTDOWN: - break; - default: - err = EOPNOTSUPP; - break; - } - return (err); + case MOD_UNLOAD: + rc = t3_tom_mod_unload(); + break; + + default: + rc = EINVAL; + } +#else + rc = EOPNOTSUPP; +#endif + return (rc); } -static moduledata_t mod_data= { +static moduledata_t t3_tom_moddata= { "t3_tom", - t3_tom_load, + t3_tom_modevent, 0 }; + MODULE_VERSION(t3_tom, 1); MODULE_DEPEND(t3_tom, toecore, 1, 1, 1); -MODULE_DEPEND(t3_tom, if_cxgb, 1, 1, 1); -DECLARE_MODULE(t3_tom, mod_data, SI_SUB_EXEC, SI_ORDER_ANY); - +MODULE_DEPEND(t3_tom, cxgbc, 1, 1, 1); +DECLARE_MODULE(t3_tom, t3_tom_moddata, SI_SUB_EXEC, SI_ORDER_ANY); diff --git a/sys/dev/cxgb/ulp/tom/cxgb_tom.h b/sys/dev/cxgb/ulp/tom/cxgb_tom.h index 2f3201db7c52..5cc29a8aeb0c 100644 --- a/sys/dev/cxgb/ulp/tom/cxgb_tom.h +++ b/sys/dev/cxgb/ulp/tom/cxgb_tom.h @@ -1,7 +1,6 @@ - /************************************************************************** -Copyright (c) 2007, Chelsio Inc. +Copyright (c) 2007, 2009 Chelsio Inc. All rights reserved. Redistribution and use in source and binary forms, with or without @@ -33,128 +32,248 @@ POSSIBILITY OF SUCH DAMAGE. #ifndef CXGB_TOM_H_ #define CXGB_TOM_H_ #include -#include +#include -#define LISTEN_INFO_HASH_SIZE 32 +MALLOC_DECLARE(M_CXGB); -struct listen_info { - struct listen_info *next; /* Link to next entry */ - struct socket *so; /* The listening socket */ - unsigned int stid; /* The server TID */ -}; +#define KTR_CXGB KTR_SPARE3 +#define LISTEN_HASH_SIZE 32 /* - * TOM tunable parameters. They can be manipulated through sysctl(2) or /proc. + * Holds the size, base address, free list start, etc of the TID, server TID, + * and active-open TID tables for a offload device. + * The tables themselves are allocated dynamically. */ -struct tom_tunables { - int max_host_sndbuf; // max host RAM consumed by a sndbuf - int tx_hold_thres; // push/pull threshold for non-full TX sk_buffs - int max_wrs; // max # of outstanding WRs per connection - int rx_credit_thres; // min # of RX credits needed for RX_DATA_ACK - int cong_alg; // Congestion control algorithm - int mss; // max TX_DATA WR payload size - int delack; // delayed ACK control - int max_conn; // maximum number of offloaded connections - int soft_backlog_limit; // whether the listen backlog limit is soft - int ddp; // whether to put new connections in DDP mode - int ddp_thres; // min recvmsg size before activating DDP - int ddp_copy_limit; // capacity of kernel DDP buffer - int ddp_push_wait; // whether blocking DDP waits for PSH flag - int ddp_rcvcoalesce; // whether receive coalescing is enabled - int zcopy_sosend_enabled; // < is never zcopied - int zcopy_sosend_partial_thres; // < is never zcopied - int zcopy_sosend_partial_copy; // bytes copied in partial zcopy - int zcopy_sosend_thres;// >= are mostly zcopied - int zcopy_sosend_copy; // bytes coped in zcopied - int zcopy_sosend_ret_pending_dma;// pot. return while pending DMA - int activated; // TOE engine activation state +struct tid_info { + void **tid_tab; + unsigned int ntids; + volatile unsigned int tids_in_use; + + union listen_entry *stid_tab; + unsigned int nstids; + unsigned int stid_base; + + union active_open_entry *atid_tab; + unsigned int natids; + unsigned int atid_base; + + /* + * The following members are accessed R/W so we put them in their own + * cache lines. TOM_XXX: actually do what is said here. + * + * XXX We could combine the atid fields above with the lock here since + * atids are use once (unlike other tids). OTOH the above fields are + * usually in cache due to tid_tab. + */ + struct mtx atid_lock; + union active_open_entry *afree; + unsigned int atids_in_use; + + struct mtx stid_lock; + union listen_entry *sfree; + unsigned int stids_in_use; }; struct tom_data { - TAILQ_ENTRY(tom_data) entry; - - struct t3cdev *cdev; - struct pci_dev *pdev; - struct toedev tdev; + struct toedev tod; - struct cxgb_client *client; - struct tom_tunables conf; - struct tom_sysctl_table *sysctl; + /* + * toepcb's associated with this TOE device are either on the + * toep list or in the synq of a listening socket in lctx hash. + */ + struct mtx toep_list_lock; + TAILQ_HEAD(, toepcb) toep_list; + + struct l2t_data *l2t; + struct tid_info tid_maps; /* - * The next three locks listen_lock, deferq.lock, and tid_release_lock - * are used rarely so we let them potentially share a cacheline. + * The next two locks listen_lock, and tid_release_lock are used rarely + * so we let them potentially share a cacheline. */ - struct listen_info *listen_hash_tab[LISTEN_INFO_HASH_SIZE]; - struct mtx listen_lock; + LIST_HEAD(, listen_ctx) *listen_hash; + u_long listen_mask; + int lctx_count; /* # of lctx in the hash table */ + struct mtx lctx_hash_lock; - struct mbuf_head deferq; - struct task deferq_task; - - struct socket **tid_release_list; + void **tid_release_list; struct mtx tid_release_lock; struct task tid_release_task; - - volatile int tx_dma_pending; - - unsigned int ddp_llimit; - unsigned int ddp_ulimit; - - unsigned int rx_page_size; - - u8 *ppod_map; - unsigned int nppods; - struct mtx ppod_map_lock; - - struct adap_ports *ports; - struct taskqueue *tq; }; +struct synq_entry { + TAILQ_ENTRY(synq_entry) link; /* listen_ctx's synq link */ + int flags; /* same as toepcb's tp_flags */ + int tid; + struct mbuf *m; /* backpointer to containing mbuf */ + struct listen_ctx *lctx; /* backpointer to listen ctx */ + struct cpl_pass_establish *cpl; + struct toepcb *toep; + struct l2t_entry *e; + uint32_t iss; + uint32_t ts; + uint32_t opt0h; + uint32_t qset; + int rx_credits; + volatile u_int refcnt; + +#define RPL_OK 0 /* ok to reply */ +#define RPL_DONE 1 /* replied already */ +#define RPL_DONT 2 /* don't reply */ + volatile u_int reply; /* see above. */ +}; + +#define LCTX_RPL_PENDING 1 /* waiting for CPL_PASS_OPEN_RPL */ struct listen_ctx { - struct socket *lso; - struct tom_data *tom_data; - int ulp_mode; - LIST_HEAD(, toepcb) synq_head; - + LIST_ENTRY(listen_ctx) link; /* listen hash linkage */ + volatile int refcnt; + int stid; + int flags; + struct inpcb *inp; /* listening socket's inp */ + int qset; + TAILQ_HEAD(, synq_entry) synq; }; -#define TOM_DATA(dev) (*(struct tom_data **)&(dev)->tod_l4opt) -#define T3C_DEV(sk) ((TOM_DATA(TOE_DEV(sk)))->cdev) -#define TOEP_T3C_DEV(toep) (TOM_DATA(toep->tp_toedev)->cdev) -#define TOM_TUNABLE(dev, param) (TOM_DATA(dev)->conf.param) +void t3_process_tid_release_list(void *data, int pending); -#define TP_DATASENT (1 << 0) -#define TP_TX_WAIT_IDLE (1 << 1) -#define TP_FIN_SENT (1 << 2) -#define TP_ABORT_RPL_PENDING (1 << 3) -#define TP_ABORT_SHUTDOWN (1 << 4) -#define TP_ABORT_RPL_RCVD (1 << 5) -#define TP_ABORT_REQ_RCVD (1 << 6) -#define TP_CLOSE_CON_REQUESTED (1 << 7) -#define TP_SYN_RCVD (1 << 8) -#define TP_ESTABLISHED (1 << 9) - -void t3_init_tunables(struct tom_data *t); - -void t3_sysctl_register(struct adapter *sc, const struct tom_tunables *p); - -static __inline struct mbuf * -m_gethdr_nofail(int len) +static inline struct tom_data * +t3_tomdata(struct toedev *tod) { - struct mbuf *m; - - m = m_gethdr(M_NOWAIT, MT_DATA); - if (m == NULL) { - panic("implement lowmem cache\n"); - } - - KASSERT(len < MHLEN, ("requested header size too large for mbuf")); - m->m_pkthdr.len = m->m_len = len; - return (m); + return (member2struct(tom_data, tod, tod)); +} + +union listen_entry { + void *ctx; + union listen_entry *next; +}; + +union active_open_entry { + void *ctx; + union active_open_entry *next; +}; + +/* + * Map an ATID or STID to their entries in the corresponding TID tables. + */ +static inline union active_open_entry *atid2entry(const struct tid_info *t, + unsigned int atid) +{ + return &t->atid_tab[atid - t->atid_base]; } +static inline union listen_entry *stid2entry(const struct tid_info *t, + unsigned int stid) +{ + return &t->stid_tab[stid - t->stid_base]; +} + +/* + * Find the connection corresponding to a TID. + */ +static inline void *lookup_tid(const struct tid_info *t, unsigned int tid) +{ + void *p; + + if (tid >= t->ntids) + return (NULL); + + p = t->tid_tab[tid]; + if (p < (void *)t->tid_tab || p >= (void *)&t->atid_tab[t->natids]) + return (p); + + return (NULL); +} + +/* + * Find the connection corresponding to a server TID. + */ +static inline void *lookup_stid(const struct tid_info *t, unsigned int tid) +{ + void *p; + + if (tid < t->stid_base || tid >= t->stid_base + t->nstids) + return (NULL); + + p = stid2entry(t, tid)->ctx; + if (p < (void *)t->tid_tab || p >= (void *)&t->atid_tab[t->natids]) + return (p); + + return (NULL); +} + +/* + * Find the connection corresponding to an active-open TID. + */ +static inline void *lookup_atid(const struct tid_info *t, unsigned int tid) +{ + void *p; + + if (tid < t->atid_base || tid >= t->atid_base + t->natids) + return (NULL); + + p = atid2entry(t, tid)->ctx; + if (p < (void *)t->tid_tab || p >= (void *)&t->atid_tab[t->natids]) + return (p); + + return (NULL); +} + +static inline uint32_t +calc_opt2(int cpu_idx) +{ + uint32_t opt2 = F_CPU_INDEX_VALID | V_CPU_INDEX(cpu_idx); + + /* 3 = highspeed CC algorithm */ + opt2 |= V_FLAVORS_VALID(1) | V_CONG_CONTROL_FLAVOR(3) | + V_PACING_FLAVOR(1); + + /* coalesce and push bit semantics */ + opt2 |= F_RX_COALESCE_VALID | V_RX_COALESCE(3); + + return (htobe32(opt2)); +} + +/* cxgb_tom.c */ +struct toepcb *toepcb_alloc(struct toedev *); +void toepcb_free(struct toepcb *); + +/* cxgb_cpl_io.c */ +void t3_init_cpl_io(struct adapter *); +int t3_push_frames(struct socket *, int); +int t3_connect(struct toedev *, struct socket *, struct rtentry *, + struct sockaddr *); +int t3_tod_output(struct toedev *, struct tcpcb *); +int t3_send_rst(struct toedev *, struct tcpcb *); +int t3_send_fin(struct toedev *, struct tcpcb *); +void insert_tid(struct tom_data *, void *, unsigned int); +void update_tid(struct tom_data *, void *, unsigned int); +void remove_tid(struct tom_data *, unsigned int); +uint32_t calc_opt0h(struct socket *, int, int, struct l2t_entry *); +uint32_t calc_opt0l(struct socket *, int); +void queue_tid_release(struct toedev *, unsigned int); +void offload_socket(struct socket *, struct toepcb *); +void undo_offload_socket(struct socket *); +int select_rcv_wscale(void); +unsigned long select_rcv_wnd(struct socket *); +int find_best_mtu_idx(struct adapter *, struct in_conninfo *, int); +void make_established(struct socket *, uint32_t, uint32_t, uint16_t); +void t3_rcvd(struct toedev *, struct tcpcb *); +void t3_pcb_detach(struct toedev *, struct tcpcb *); +void send_abort_rpl(struct toedev *, int, int); +void release_tid(struct toedev *, unsigned int, int); + +/* cxgb_listen.c */ +void t3_init_listen_cpl_handlers(struct adapter *); +int t3_listen_start(struct toedev *, struct tcpcb *); +int t3_listen_stop(struct toedev *, struct tcpcb *); +void t3_syncache_added(struct toedev *, void *); +void t3_syncache_removed(struct toedev *, void *); +int t3_syncache_respond(struct toedev *, void *, struct mbuf *); +int do_abort_req_synqe(struct sge_qset *, struct rsp_desc *, struct mbuf *); +int do_abort_rpl_synqe(struct sge_qset *, struct rsp_desc *, struct mbuf *); +void t3_offload_socket(struct toedev *, void *, struct socket *); #endif diff --git a/sys/dev/cxgb/ulp/tom/cxgb_tom_sysctl.c b/sys/dev/cxgb/ulp/tom/cxgb_tom_sysctl.c deleted file mode 100644 index 926b4450cd02..000000000000 --- a/sys/dev/cxgb/ulp/tom/cxgb_tom_sysctl.c +++ /dev/null @@ -1,140 +0,0 @@ -/************************************************************************** - -Copyright (c) 2007, Chelsio Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2. Neither the name of the Chelsio Corporation nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -***************************************************************************/ - -#include -__FBSDID("$FreeBSD$"); - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include - -#include - -#include -#include - -#include -#include -#include -#include - -#include -#include - -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/* Avoid clutter in the hw.* space, keep all toe tunables within hw.cxgb */ -SYSCTL_DECL(_hw_cxgb); -static SYSCTL_NODE(_hw_cxgb, OID_AUTO, toe, CTLFLAG_RD, 0, "TOE parameters"); - -static struct tom_tunables default_tunable_vals = { - .max_host_sndbuf = 32 * 1024, - .tx_hold_thres = 0, - .max_wrs = 15, - .rx_credit_thres = 15 * 1024, - .cong_alg = -1, - .mss = 16384, - .delack = 1, - .max_conn = -1, - .soft_backlog_limit = 0, - .ddp = 1, - .ddp_thres = 14 * 4096, - .ddp_copy_limit = 13 * 4096, - .ddp_push_wait = 1, - .ddp_rcvcoalesce = 0, - .zcopy_sosend_enabled = 0, - .zcopy_sosend_partial_thres = 40960, - .zcopy_sosend_partial_copy = 4096 * 3, - .zcopy_sosend_thres = 128 * 1024, - .zcopy_sosend_copy = 4096 * 2, - .zcopy_sosend_ret_pending_dma = 1, - .activated = 1, -}; - -static int activated = 1; -TUNABLE_INT("hw.cxgb.toe.activated", &activated); -SYSCTL_UINT(_hw_cxgb_toe, OID_AUTO, activated, CTLFLAG_RDTUN, &activated, 0, - "enable TOE at init time"); - -static int ddp = 1; -TUNABLE_INT("hw.cxgb.toe.ddp", &ddp); -SYSCTL_UINT(_hw_cxgb_toe, OID_AUTO, ddp, CTLFLAG_RDTUN, &ddp, 0, "enable DDP"); - -void -t3_init_tunables(struct tom_data *t) -{ - t->conf = default_tunable_vals; - - /* Adjust tunables */ - t->conf.activated = activated; - t->conf.ddp = ddp; - - /* Now apply device specific fixups. */ - t->conf.mss = T3C_DATA(t->cdev)->tx_max_chunk; - t->conf.max_wrs = T3C_DATA(t->cdev)->max_wrs; -} - -void -t3_sysctl_register(struct adapter *sc, const struct tom_tunables *p) -{ - struct sysctl_ctx_list *ctx; - struct sysctl_oid_list *children; - - ctx = device_get_sysctl_ctx(sc->dev); - children = SYSCTL_CHILDREN(device_get_sysctl_tree(sc->dev)); - -} - diff --git a/sys/dev/cxgbe/adapter.h b/sys/dev/cxgbe/adapter.h index 6be75bcaef0f..ba5335a0d72c 100644 --- a/sys/dev/cxgbe/adapter.h +++ b/sys/dev/cxgbe/adapter.h @@ -157,6 +157,7 @@ enum { INTR_DIRECT = (1 << 2), /* direct interrupts for everything */ MASTER_PF = (1 << 3), ADAP_SYSCTL_CTX = (1 << 4), + TOM_INIT_DONE = (1 << 5), CXGBE_BUSY = (1 << 9), @@ -199,7 +200,7 @@ struct port_info { int first_txq; /* index of first tx queue */ int nrxq; /* # of rx queues */ int first_rxq; /* index of first rx queue */ -#ifndef TCP_OFFLOAD_DISABLE +#ifdef TCP_OFFLOAD int nofldtxq; /* # of offload tx queues */ int first_ofld_txq; /* index of first offload tx queue */ int nofldrxq; /* # of offload rx queues */ @@ -213,6 +214,8 @@ struct port_info { struct link_config link_cfg; struct port_stats stats; + eventhandler_tag vlan_c; + struct callout tick; struct sysctl_ctx_list ctx; /* from ifconfig up to driver detach */ @@ -296,7 +299,7 @@ struct sge_iq { enum { EQ_CTRL = 1, EQ_ETH = 2, -#ifndef TCP_OFFLOAD_DISABLE +#ifdef TCP_OFFLOAD EQ_OFLD = 3, #endif @@ -422,14 +425,36 @@ struct sge_rxq { } __aligned(CACHE_LINE_SIZE); -#ifndef TCP_OFFLOAD_DISABLE +static inline struct sge_rxq * +iq_to_rxq(struct sge_iq *iq) +{ + + return (member2struct(sge_rxq, iq, iq)); +} + + +#ifdef TCP_OFFLOAD /* ofld_rxq: SGE ingress queue + SGE free list + miscellaneous items */ struct sge_ofld_rxq { struct sge_iq iq; /* MUST be first */ struct sge_fl fl; /* MUST follow iq */ } __aligned(CACHE_LINE_SIZE); + +static inline struct sge_ofld_rxq * +iq_to_ofld_rxq(struct sge_iq *iq) +{ + + return (member2struct(sge_ofld_rxq, iq, iq)); +} #endif +struct wrqe { + STAILQ_ENTRY(wrqe) link; + struct sge_wrq *wrq; + int wr_len; + uint64_t wr[] __aligned(16); +}; + /* * wrq: SGE egress queue that is given prebuilt work requests. Both the control * and offload tx queues are of this type. @@ -438,8 +463,9 @@ struct sge_wrq { struct sge_eq eq; /* MUST be first */ struct adapter *adapter; - struct mbuf *head; /* held up due to lack of descriptors */ - struct mbuf *tail; /* valid only if head is valid */ + + /* List of WRs held up due to lack of tx descriptors */ + STAILQ_HEAD(, wrqe) wr_list; /* stats for common events first */ @@ -457,7 +483,7 @@ struct sge { int nrxq; /* total # of Ethernet rx queues */ int ntxq; /* total # of Ethernet tx tx queues */ -#ifndef TCP_OFFLOAD_DISABLE +#ifdef TCP_OFFLOAD int nofldrxq; /* total # of TOE rx queues */ int nofldtxq; /* total # of TOE tx queues */ #endif @@ -469,7 +495,7 @@ struct sge { struct sge_wrq *ctrlq; /* Control queues */ struct sge_txq *txq; /* NIC tx queues */ struct sge_rxq *rxq; /* NIC rx queues */ -#ifndef TCP_OFFLOAD_DISABLE +#ifdef TCP_OFFLOAD struct sge_wrq *ofld_txq; /* TOE tx queues */ struct sge_ofld_rxq *ofld_rxq; /* TOE rx queues */ #endif @@ -483,6 +509,7 @@ struct sge { struct rss_header; typedef int (*cpl_handler_t)(struct sge_iq *, const struct rss_header *, struct mbuf *); +typedef int (*an_handler_t)(struct sge_iq *, const struct rsp_ctrl *); struct adapter { SLIST_ENTRY(adapter) link; @@ -519,15 +546,15 @@ struct adapter { uint8_t chan_map[NCHAN]; uint32_t filter_mode; -#ifndef TCP_OFFLOAD_DISABLE - struct uld_softc tom; +#ifdef TCP_OFFLOAD + void *tom_softc; /* (struct tom_data *) */ struct tom_tunables tt; #endif struct l2t_data *l2t; /* L2 table */ struct tid_info tids; int open_device_map; -#ifndef TCP_OFFLOAD_DISABLE +#ifdef TCP_OFFLOAD int offload_map; #endif int flags; @@ -554,7 +581,8 @@ struct adapter { TAILQ_HEAD(, sge_fl) sfl; struct callout sfl_callout; - cpl_handler_t cpl_handler[256] __aligned(CACHE_LINE_SIZE); + an_handler_t an_handler __aligned(CACHE_LINE_SIZE); + cpl_handler_t cpl_handler[256]; }; #define ADAPTER_LOCK(sc) mtx_lock(&(sc)->sc_lock) @@ -609,82 +637,96 @@ struct adapter { static inline uint32_t t4_read_reg(struct adapter *sc, uint32_t reg) { + return bus_space_read_4(sc->bt, sc->bh, reg); } static inline void t4_write_reg(struct adapter *sc, uint32_t reg, uint32_t val) { + bus_space_write_4(sc->bt, sc->bh, reg, val); } static inline uint64_t t4_read_reg64(struct adapter *sc, uint32_t reg) { + return t4_bus_space_read_8(sc->bt, sc->bh, reg); } static inline void t4_write_reg64(struct adapter *sc, uint32_t reg, uint64_t val) { + t4_bus_space_write_8(sc->bt, sc->bh, reg, val); } static inline void t4_os_pci_read_cfg1(struct adapter *sc, int reg, uint8_t *val) { + *val = pci_read_config(sc->dev, reg, 1); } static inline void t4_os_pci_write_cfg1(struct adapter *sc, int reg, uint8_t val) { + pci_write_config(sc->dev, reg, val, 1); } static inline void t4_os_pci_read_cfg2(struct adapter *sc, int reg, uint16_t *val) { + *val = pci_read_config(sc->dev, reg, 2); } static inline void t4_os_pci_write_cfg2(struct adapter *sc, int reg, uint16_t val) { + pci_write_config(sc->dev, reg, val, 2); } static inline void t4_os_pci_read_cfg4(struct adapter *sc, int reg, uint32_t *val) { + *val = pci_read_config(sc->dev, reg, 4); } static inline void t4_os_pci_write_cfg4(struct adapter *sc, int reg, uint32_t val) { + pci_write_config(sc->dev, reg, val, 4); } static inline struct port_info * adap2pinfo(struct adapter *sc, int idx) { + return (sc->port[idx]); } static inline void t4_os_set_hw_addr(struct adapter *sc, int idx, uint8_t hw_addr[]) { + bcopy(hw_addr, sc->port[idx]->hw_addr, ETHER_ADDR_LEN); } static inline bool is_10G_port(const struct port_info *pi) { + return ((pi->link_cfg.supported & FW_PORT_CAP_SPEED_10G) != 0); } static inline int tx_resume_threshold(struct sge_eq *eq) { + return (eq->qsize / 4); } @@ -698,6 +740,7 @@ void t4_os_portmod_changed(const struct adapter *, int); void t4_os_link_changed(struct adapter *, int, int); void t4_iterate(void (*)(struct adapter *, void *), void *); int t4_register_cpl_handler(struct adapter *, int, cpl_handler_t); +int t4_register_an_handler(struct adapter *, an_handler_t); /* t4_sge.c */ void t4_sge_modload(void); @@ -714,21 +757,45 @@ void t4_intr_all(void *); void t4_intr(void *); void t4_intr_err(void *); void t4_intr_evt(void *); -int t4_mgmt_tx(struct adapter *, struct mbuf *); -int t4_wrq_tx_locked(struct adapter *, struct sge_wrq *, struct mbuf *); +void t4_wrq_tx_locked(struct adapter *, struct sge_wrq *, struct wrqe *); int t4_eth_tx(struct ifnet *, struct sge_txq *, struct mbuf *); void t4_update_fl_bufsize(struct ifnet *); int can_resume_tx(struct sge_eq *); -static inline int t4_wrq_tx(struct adapter *sc, struct sge_wrq *wrq, struct mbuf *m) +static inline struct wrqe * +alloc_wrqe(int wr_len, struct sge_wrq *wrq) { - int rc; + int len = offsetof(struct wrqe, wr) + wr_len; + struct wrqe *wr; - TXQ_LOCK(wrq); - rc = t4_wrq_tx_locked(sc, wrq, m); - TXQ_UNLOCK(wrq); - return (rc); + wr = malloc(len, M_CXGBE, M_NOWAIT); + if (__predict_false(wr == NULL)) + return (NULL); + wr->wr_len = wr_len; + wr->wrq = wrq; + return (wr); } +static inline void * +wrtod(struct wrqe *wr) +{ + return (&wr->wr[0]); +} + +static inline void +free_wrqe(struct wrqe *wr) +{ + free(wr, M_CXGBE); +} + +static inline void +t4_wrq_tx(struct adapter *sc, struct wrqe *wr) +{ + struct sge_wrq *wrq = wr->wrq; + + TXQ_LOCK(wrq); + t4_wrq_tx_locked(sc, wrq, wr); + TXQ_UNLOCK(wrq); +} #endif diff --git a/sys/dev/cxgbe/common/t4_hw.c b/sys/dev/cxgbe/common/t4_hw.c index 6f4dd8de4c0d..f629cbe5ba0c 100644 --- a/sys/dev/cxgbe/common/t4_hw.c +++ b/sys/dev/cxgbe/common/t4_hw.c @@ -27,6 +27,8 @@ #include __FBSDID("$FreeBSD$"); +#include "opt_inet.h" + #include "common.h" #include "t4_regs.h" #include "t4_regs_values.h" diff --git a/sys/dev/cxgbe/offload.h b/sys/dev/cxgbe/offload.h index f6ada9d09345..1ae9f1fa53c7 100644 --- a/sys/dev/cxgbe/offload.h +++ b/sys/dev/cxgbe/offload.h @@ -31,12 +31,6 @@ #ifndef __T4_OFFLOAD_H__ #define __T4_OFFLOAD_H__ -/* XXX: flagrant misuse of mbuf fields (during tx by TOM) */ -#define MBUF_EQ(m) (*((void **)(&(m)->m_pkthdr.rcvif))) -/* These have to work for !M_PKTHDR so we use a field from m_hdr. */ -#define MBUF_TX_CREDITS(m) ((m)->m_hdr.pad[0]) -#define MBUF_DMA_MAPPED(m) ((m)->m_hdr.pad[1]) - #define INIT_ULPTX_WR(w, wrlen, atomic, tid) do { \ (w)->wr.wr_hi = htonl(V_FW_WR_OP(FW_ULPTX_WR) | V_FW_WR_ATOMIC(atomic)); \ (w)->wr.wr_mid = htonl(V_FW_WR_LEN16(DIV_ROUND_UP(wrlen, 16)) | \ @@ -119,7 +113,7 @@ struct t4_virt_res { /* virtualized HW resources */ struct t4_range ocq; }; -#ifndef TCP_OFFLOAD_DISABLE +#ifdef TCP_OFFLOAD enum { ULD_TOM = 1, }; @@ -130,13 +124,8 @@ struct uld_info { SLIST_ENTRY(uld_info) link; int refcount; int uld_id; - int (*attach)(struct adapter *, void **); - int (*detach)(void *); -}; - -struct uld_softc { - struct uld_info *uld; - void *softc; + int (*activate)(struct adapter *); + int (*deactivate)(struct adapter *); }; struct tom_tunables { @@ -148,6 +137,8 @@ struct tom_tunables { int t4_register_uld(struct uld_info *); int t4_unregister_uld(struct uld_info *); +int t4_activate_uld(struct adapter *, int); +int t4_deactivate_uld(struct adapter *, int); #endif #endif diff --git a/sys/dev/cxgbe/t4_l2t.c b/sys/dev/cxgbe/t4_l2t.c index 55491cda3043..8373c32e1f7a 100644 --- a/sys/dev/cxgbe/t4_l2t.c +++ b/sys/dev/cxgbe/t4_l2t.c @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2011 Chelsio Communications, Inc. + * Copyright (c) 2012 Chelsio Communications, Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -38,16 +38,7 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include -#include -#include -#include -#include -#include -#include #include -#include -#include #include "common/common.h" #include "common/jhash.h" @@ -72,42 +63,11 @@ __FBSDID("$FreeBSD$"); * lifetime of an L2T entry is fully contained in the lifetime of the TOE. */ -/* identifies sync vs async L2T_WRITE_REQs */ -#define S_SYNC_WR 12 -#define V_SYNC_WR(x) ((x) << S_SYNC_WR) -#define F_SYNC_WR V_SYNC_WR(1) - -enum { - L2T_STATE_VALID, /* entry is up to date */ - L2T_STATE_STALE, /* entry may be used but needs revalidation */ - L2T_STATE_RESOLVING, /* entry needs address resolution */ - L2T_STATE_SYNC_WRITE, /* synchronous write of entry underway */ - - /* when state is one of the below the entry is not hashed */ - L2T_STATE_SWITCHING, /* entry is being used by a switching filter */ - L2T_STATE_UNUSED /* entry not in use */ -}; - -struct l2t_data { - struct rwlock lock; - volatile int nfree; /* number of free entries */ - struct l2t_entry *rover;/* starting point for next allocation */ - struct l2t_entry l2tab[L2T_SIZE]; -}; - -static int do_l2t_write_rpl(struct sge_iq *, const struct rss_header *, - struct mbuf *); - -#define VLAN_NONE 0xfff -#define SA(x) ((struct sockaddr *)(x)) -#define SIN(x) ((struct sockaddr_in *)(x)) -#define SINADDR(x) (SIN(x)->sin_addr.s_addr) - /* * Allocate a free L2T entry. Must be called with l2t_data.lock held. */ -static struct l2t_entry * -alloc_l2e(struct l2t_data *d) +struct l2t_entry * +t4_alloc_l2e(struct l2t_data *d) { struct l2t_entry *end, *e, **p; @@ -121,7 +81,8 @@ alloc_l2e(struct l2t_data *d) if (atomic_load_acq_int(&e->refcnt) == 0) goto found; - for (e = d->l2tab; atomic_load_acq_int(&e->refcnt); ++e) ; + for (e = d->l2tab; atomic_load_acq_int(&e->refcnt); ++e) + continue; found: d->rover = e + 1; atomic_subtract_int(&d->nfree, 1); @@ -148,19 +109,18 @@ alloc_l2e(struct l2t_data *d) * Write an L2T entry. Must be called with the entry locked. * The write may be synchronous or asynchronous. */ -static int -write_l2e(struct adapter *sc, struct l2t_entry *e, int sync) +int +t4_write_l2e(struct adapter *sc, struct l2t_entry *e, int sync) { - struct mbuf *m; + struct wrqe *wr; struct cpl_l2t_write_req *req; mtx_assert(&e->lock, MA_OWNED); - if ((m = m_gethdr(M_NOWAIT, MT_DATA)) == NULL) + wr = alloc_wrqe(sizeof(*req), &sc->sge.mgmtq); + if (wr == NULL) return (ENOMEM); - - req = mtod(m, struct cpl_l2t_write_req *); - m->m_pkthdr.len = m->m_len = sizeof(*req); + req = wrtod(wr); INIT_TP_WR(req, 0); OPCODE_TID(req) = htonl(MK_OPCODE_TID(CPL_L2T_WRITE_REQ, e->idx | @@ -170,7 +130,7 @@ write_l2e(struct adapter *sc, struct l2t_entry *e, int sync) req->vlan = htons(e->vlan); memcpy(req->dst_mac, e->dmac, sizeof(req->dst_mac)); - t4_mgmt_tx(sc, m); + t4_wrq_tx(sc, wr); if (sync && e->state != L2T_STATE_SWITCHING) e->state = L2T_STATE_SYNC_WRITE; @@ -189,7 +149,7 @@ t4_l2t_alloc_switching(struct l2t_data *d) struct l2t_entry *e; rw_rlock(&d->lock); - e = alloc_l2e(d); + e = t4_alloc_l2e(d); if (e) { mtx_lock(&e->lock); /* avoid race with t4_l2t_free */ e->state = L2T_STATE_SWITCHING; @@ -214,7 +174,7 @@ t4_l2t_set_switching(struct adapter *sc, struct l2t_entry *e, uint16_t vlan, e->lport = port; memcpy(e->dmac, eth_addr, ETHER_ADDR_LEN); mtx_lock(&e->lock); - rc = write_l2e(sc, e, 0); + rc = t4_write_l2e(sc, e, 0); mtx_unlock(&e->lock); return (rc); } @@ -234,10 +194,13 @@ t4_init_l2t(struct adapter *sc, int flags) rw_init(&d->lock, "L2T"); for (i = 0; i < L2T_SIZE; i++) { - d->l2tab[i].idx = i; - d->l2tab[i].state = L2T_STATE_UNUSED; - mtx_init(&d->l2tab[i].lock, "L2T_E", NULL, MTX_DEF); - atomic_store_rel_int(&d->l2tab[i].refcnt, 0); + struct l2t_entry *e = &d->l2tab[i]; + + e->idx = i; + e->state = L2T_STATE_UNUSED; + mtx_init(&e->lock, "L2T_E", NULL, MTX_DEF); + STAILQ_INIT(&e->wr_list); + atomic_store_rel_int(&e->refcnt, 0); } sc->l2t = d; @@ -259,6 +222,24 @@ t4_free_l2t(struct l2t_data *d) return (0); } +int +do_l2t_write_rpl(struct sge_iq *iq, const struct rss_header *rss, + struct mbuf *m) +{ + const struct cpl_l2t_write_rpl *rpl = (const void *)(rss + 1); + unsigned int tid = GET_TID(rpl); + unsigned int idx = tid & (L2T_SIZE - 1); + + if (__predict_false(rpl->status != CPL_ERR_NONE)) { + log(LOG_ERR, + "Unexpected L2T_WRITE_RPL status %u for entry %u\n", + rpl->status, idx); + return (EINVAL); + } + + return (0); +} + #ifdef SBUF_DRAIN static inline unsigned int vlan_prio(const struct l2t_entry *e) @@ -273,7 +254,7 @@ l2e_state(const struct l2t_entry *e) case L2T_STATE_VALID: return 'V'; /* valid, fast-path entry */ case L2T_STATE_STALE: return 'S'; /* needs revalidation, but usable */ case L2T_STATE_SYNC_WRITE: return 'W'; - case L2T_STATE_RESOLVING: return e->arpq_head ? 'A' : 'R'; + case L2T_STATE_RESOLVING: return STAILQ_EMPTY(&e->wr_list) ? 'R' : 'A'; case L2T_STATE_SWITCHING: return 'X'; default: return 'U'; } @@ -311,20 +292,20 @@ sysctl_l2t(SYSCTL_HANDLER_ARGS) "Ethernet address VLAN/P LP State Users Port"); header = 1; } - if (e->state == L2T_STATE_SWITCHING || e->v6) + if (e->state == L2T_STATE_SWITCHING) ip[0] = 0; else snprintf(ip, sizeof(ip), "%s", - inet_ntoa(*(struct in_addr *)&e->addr[0])); + inet_ntoa(*(struct in_addr *)&e->addr)); - /* XXX: accessing lle probably not safe? */ + /* XXX: e->ifp may not be around */ sbuf_printf(sb, "\n%4u %-15s %02x:%02x:%02x:%02x:%02x:%02x %4d" " %u %2u %c %5u %s", e->idx, ip, e->dmac[0], e->dmac[1], e->dmac[2], e->dmac[3], e->dmac[4], e->dmac[5], e->vlan & 0xfff, vlan_prio(e), e->lport, l2e_state(e), atomic_load_acq_int(&e->refcnt), - e->lle ? e->lle->lle_tbl->llt_ifp->if_xname : ""); + e->ifp->if_xname); skip: mtx_unlock(&e->lock); } @@ -335,459 +316,3 @@ sysctl_l2t(SYSCTL_HANDLER_ARGS) return (rc); } #endif - -#ifndef TCP_OFFLOAD_DISABLE -static inline void -l2t_hold(struct l2t_data *d, struct l2t_entry *e) -{ - if (atomic_fetchadd_int(&e->refcnt, 1) == 0) /* 0 -> 1 transition */ - atomic_subtract_int(&d->nfree, 1); -} - -/* - * To avoid having to check address families we do not allow v4 and v6 - * neighbors to be on the same hash chain. We keep v4 entries in the first - * half of available hash buckets and v6 in the second. - */ -enum { - L2T_SZ_HALF = L2T_SIZE / 2, - L2T_HASH_MASK = L2T_SZ_HALF - 1 -}; - -static inline unsigned int -arp_hash(const uint32_t *key, int ifindex) -{ - return jhash_2words(*key, ifindex, 0) & L2T_HASH_MASK; -} - -static inline unsigned int -ipv6_hash(const uint32_t *key, int ifindex) -{ - uint32_t xor = key[0] ^ key[1] ^ key[2] ^ key[3]; - - return L2T_SZ_HALF + (jhash_2words(xor, ifindex, 0) & L2T_HASH_MASK); -} - -static inline unsigned int -addr_hash(const uint32_t *addr, int addr_len, int ifindex) -{ - return addr_len == 4 ? arp_hash(addr, ifindex) : - ipv6_hash(addr, ifindex); -} - -/* - * Checks if an L2T entry is for the given IP/IPv6 address. It does not check - * whether the L2T entry and the address are of the same address family. - * Callers ensure an address is only checked against L2T entries of the same - * family, something made trivial by the separation of IP and IPv6 hash chains - * mentioned above. Returns 0 if there's a match, - */ -static inline int -addreq(const struct l2t_entry *e, const uint32_t *addr) -{ - if (e->v6) - return (e->addr[0] ^ addr[0]) | (e->addr[1] ^ addr[1]) | - (e->addr[2] ^ addr[2]) | (e->addr[3] ^ addr[3]); - return e->addr[0] ^ addr[0]; -} - -/* - * Add a packet to an L2T entry's queue of packets awaiting resolution. - * Must be called with the entry's lock held. - */ -static inline void -arpq_enqueue(struct l2t_entry *e, struct mbuf *m) -{ - mtx_assert(&e->lock, MA_OWNED); - - KASSERT(m->m_nextpkt == NULL, ("%s: m_nextpkt not NULL", __func__)); - if (e->arpq_head) - e->arpq_tail->m_nextpkt = m; - else - e->arpq_head = m; - e->arpq_tail = m; -} - -static inline void -send_pending(struct adapter *sc, struct l2t_entry *e) -{ - struct mbuf *m, *next; - - mtx_assert(&e->lock, MA_OWNED); - - for (m = e->arpq_head; m; m = next) { - next = m->m_nextpkt; - m->m_nextpkt = NULL; - t4_wrq_tx(sc, MBUF_EQ(m), m); - } - e->arpq_head = e->arpq_tail = NULL; -} - -#ifdef INET -/* - * Looks up and fills up an l2t_entry's lle. We grab all the locks that we need - * ourself, and update e->state at the end if e->lle was successfully filled. - * - * The lle passed in comes from arpresolve and is ignored as it does not appear - * to be of much use. - */ -static int -l2t_fill_lle(struct adapter *sc, struct l2t_entry *e, struct llentry *unused) -{ - int rc = 0; - struct sockaddr_in sin; - struct ifnet *ifp = e->ifp; - struct llentry *lle; - - bzero(&sin, sizeof(struct sockaddr_in)); - if (e->v6) - panic("%s: IPv6 L2 resolution not supported yet.", __func__); - - sin.sin_family = AF_INET; - sin.sin_len = sizeof(struct sockaddr_in); - memcpy(&sin.sin_addr, e->addr, sizeof(struct sockaddr_in)); - - mtx_assert(&e->lock, MA_NOTOWNED); - KASSERT(e->addr && ifp, ("%s: bad prep before call", __func__)); - - IF_AFDATA_LOCK(ifp); - lle = lla_lookup(LLTABLE(ifp), LLE_EXCLUSIVE, SA(&sin)); - IF_AFDATA_UNLOCK(ifp); - if (!LLE_IS_VALID(lle)) - return (ENOMEM); - if (!(lle->la_flags & LLE_VALID)) { - rc = EINVAL; - goto done; - } - - LLE_ADDREF(lle); - - mtx_lock(&e->lock); - if (e->state == L2T_STATE_RESOLVING) { - KASSERT(e->lle == NULL, ("%s: lle already valid", __func__)); - e->lle = lle; - memcpy(e->dmac, &lle->ll_addr, ETHER_ADDR_LEN); - write_l2e(sc, e, 1); - } else { - KASSERT(e->lle == lle, ("%s: lle changed", __func__)); - LLE_REMREF(lle); - } - mtx_unlock(&e->lock); -done: - LLE_WUNLOCK(lle); - return (rc); -} -#endif - -int -t4_l2t_send(struct adapter *sc, struct mbuf *m, struct l2t_entry *e) -{ -#ifndef INET - return (EINVAL); -#else - struct llentry *lle = NULL; - struct sockaddr_in sin; - struct ifnet *ifp = e->ifp; - - if (e->v6) - panic("%s: IPv6 L2 resolution not supported yet.", __func__); - - bzero(&sin, sizeof(struct sockaddr_in)); - sin.sin_family = AF_INET; - sin.sin_len = sizeof(struct sockaddr_in); - memcpy(&sin.sin_addr, e->addr, sizeof(struct sockaddr_in)); - -again: - switch (e->state) { - case L2T_STATE_STALE: /* entry is stale, kick off revalidation */ - if (arpresolve(ifp, NULL, NULL, SA(&sin), e->dmac, &lle) == 0) - l2t_fill_lle(sc, e, lle); - - /* Fall through */ - - case L2T_STATE_VALID: /* fast-path, send the packet on */ - return t4_wrq_tx(sc, MBUF_EQ(m), m); - - case L2T_STATE_RESOLVING: - case L2T_STATE_SYNC_WRITE: - mtx_lock(&e->lock); - if (e->state != L2T_STATE_SYNC_WRITE && - e->state != L2T_STATE_RESOLVING) { - /* state changed by the time we got here */ - mtx_unlock(&e->lock); - goto again; - } - arpq_enqueue(e, m); - mtx_unlock(&e->lock); - - if (e->state == L2T_STATE_RESOLVING && - arpresolve(ifp, NULL, NULL, SA(&sin), e->dmac, &lle) == 0) - l2t_fill_lle(sc, e, lle); - } - - return (0); -#endif -} - -/* - * Called when an L2T entry has no more users. The entry is left in the hash - * table since it is likely to be reused but we also bump nfree to indicate - * that the entry can be reallocated for a different neighbor. We also drop - * the existing neighbor reference in case the neighbor is going away and is - * waiting on our reference. - * - * Because entries can be reallocated to other neighbors once their ref count - * drops to 0 we need to take the entry's lock to avoid races with a new - * incarnation. - */ -static void -t4_l2e_free(struct l2t_entry *e) -{ - struct llentry *lle = NULL; - struct l2t_data *d; - - mtx_lock(&e->lock); - if (atomic_load_acq_int(&e->refcnt) == 0) { /* hasn't been recycled */ - lle = e->lle; - e->lle = NULL; - /* - * Don't need to worry about the arpq, an L2T entry can't be - * released if any packets are waiting for resolution as we - * need to be able to communicate with the device to close a - * connection. - */ - } - mtx_unlock(&e->lock); - - d = container_of(e, struct l2t_data, l2tab[e->idx]); - atomic_add_int(&d->nfree, 1); - - if (lle) - LLE_FREE(lle); -} - -void -t4_l2t_release(struct l2t_entry *e) -{ - if (atomic_fetchadd_int(&e->refcnt, -1) == 1) - t4_l2e_free(e); -} - -static int -do_l2t_write_rpl(struct sge_iq *iq, const struct rss_header *rss, - struct mbuf *m) -{ - struct adapter *sc = iq->adapter; - const struct cpl_l2t_write_rpl *rpl = (const void *)(rss + 1); - unsigned int tid = GET_TID(rpl); - unsigned int idx = tid & (L2T_SIZE - 1); - - if (__predict_false(rpl->status != CPL_ERR_NONE)) { - log(LOG_ERR, - "Unexpected L2T_WRITE_RPL status %u for entry %u\n", - rpl->status, idx); - return (EINVAL); - } - - if (tid & F_SYNC_WR) { - struct l2t_entry *e = &sc->l2t->l2tab[idx]; - - mtx_lock(&e->lock); - if (e->state != L2T_STATE_SWITCHING) { - send_pending(sc, e); - e->state = L2T_STATE_VALID; - } - mtx_unlock(&e->lock); - } - - return (0); -} - -/* - * Reuse an L2T entry that was previously used for the same next hop. - */ -static void -reuse_entry(struct l2t_entry *e) -{ - struct llentry *lle; - - mtx_lock(&e->lock); /* avoid race with t4_l2t_free */ - lle = e->lle; - if (lle) { - KASSERT(lle->la_flags & LLE_VALID, - ("%s: invalid lle stored in l2t_entry", __func__)); - - if (lle->la_expire >= time_uptime) - e->state = L2T_STATE_STALE; - else - e->state = L2T_STATE_VALID; - } else - e->state = L2T_STATE_RESOLVING; - mtx_unlock(&e->lock); -} - -/* - * The TOE wants an L2 table entry that it can use to reach the next hop over - * the specified port. Produce such an entry - create one if needed. - * - * Note that the ifnet could be a pseudo-device like if_vlan, if_lagg, etc. on - * top of the real cxgbe interface. - */ -struct l2t_entry * -t4_l2t_get(struct port_info *pi, struct ifnet *ifp, struct sockaddr *sa) -{ - struct l2t_entry *e; - struct l2t_data *d = pi->adapter->l2t; - int addr_len; - uint32_t *addr; - int hash; - struct sockaddr_in6 *sin6; - unsigned int smt_idx = pi->port_id; - - if (sa->sa_family == AF_INET) { - addr = (uint32_t *)&SINADDR(sa); - addr_len = sizeof(SINADDR(sa)); - } else if (sa->sa_family == AF_INET6) { - sin6 = (struct sockaddr_in6 *)sa; - addr = (uint32_t *)&sin6->sin6_addr.s6_addr; - addr_len = sizeof(sin6->sin6_addr.s6_addr); - } else - return (NULL); - -#ifndef VLAN_TAG - if (ifp->if_type == IFT_L2VLAN) - return (NULL); -#endif - - hash = addr_hash(addr, addr_len, ifp->if_index); - - rw_wlock(&d->lock); - for (e = d->l2tab[hash].first; e; e = e->next) { - if (!addreq(e, addr) && e->ifp == ifp && e->smt_idx == smt_idx){ - l2t_hold(d, e); - if (atomic_load_acq_int(&e->refcnt) == 1) - reuse_entry(e); - goto done; - } - } - - /* Need to allocate a new entry */ - e = alloc_l2e(d); - if (e) { - mtx_lock(&e->lock); /* avoid race with t4_l2t_free */ - e->state = L2T_STATE_RESOLVING; - memcpy(e->addr, addr, addr_len); - e->ifindex = ifp->if_index; - e->smt_idx = smt_idx; - e->ifp = ifp; - e->hash = hash; - e->lport = pi->lport; - e->v6 = (addr_len == 16); - e->lle = NULL; - atomic_store_rel_int(&e->refcnt, 1); -#ifdef VLAN_TAG - if (ifp->if_type == IFT_L2VLAN) - VLAN_TAG(ifp, &e->vlan); - else - e->vlan = VLAN_NONE; -#endif - e->next = d->l2tab[hash].first; - d->l2tab[hash].first = e; - mtx_unlock(&e->lock); - } -done: - rw_wunlock(&d->lock); - return e; -} - -/* - * Called when the host's neighbor layer makes a change to some entry that is - * loaded into the HW L2 table. - */ -void -t4_l2t_update(struct adapter *sc, struct llentry *lle) -{ - struct l2t_entry *e; - struct l2t_data *d = sc->l2t; - struct sockaddr *sa = L3_ADDR(lle); - struct llentry *old_lle = NULL; - uint32_t *addr = (uint32_t *)&SINADDR(sa); - struct ifnet *ifp = lle->lle_tbl->llt_ifp; - int hash = addr_hash(addr, sizeof(*addr), ifp->if_index); - - KASSERT(d != NULL, ("%s: no L2 table", __func__)); - LLE_WLOCK_ASSERT(lle); - KASSERT(lle->la_flags & LLE_VALID || lle->la_flags & LLE_DELETED, - ("%s: entry neither valid nor deleted.", __func__)); - - rw_rlock(&d->lock); - for (e = d->l2tab[hash].first; e; e = e->next) { - if (!addreq(e, addr) && e->ifp == ifp) { - mtx_lock(&e->lock); - if (atomic_load_acq_int(&e->refcnt)) - goto found; - e->state = L2T_STATE_STALE; - mtx_unlock(&e->lock); - break; - } - } - rw_runlock(&d->lock); - - /* The TOE has no interest in this LLE */ - return; - - found: - rw_runlock(&d->lock); - - if (atomic_load_acq_int(&e->refcnt)) { - - /* Entry is referenced by at least 1 offloaded connection. */ - - /* Handle deletes first */ - if (lle->la_flags & LLE_DELETED) { - if (lle == e->lle) { - e->lle = NULL; - e->state = L2T_STATE_RESOLVING; - LLE_REMREF(lle); - } - goto done; - } - - if (lle != e->lle) { - old_lle = e->lle; - LLE_ADDREF(lle); - e->lle = lle; - } - - if (e->state == L2T_STATE_RESOLVING || - memcmp(e->dmac, &lle->ll_addr, ETHER_ADDR_LEN)) { - - /* unresolved -> resolved; or dmac changed */ - - memcpy(e->dmac, &lle->ll_addr, ETHER_ADDR_LEN); - write_l2e(sc, e, 1); - } else { - - /* +ve reinforcement of a valid or stale entry */ - - } - - e->state = L2T_STATE_VALID; - - } else { - /* - * Entry was used previously but is unreferenced right now. - * e->lle has been released and NULL'd out by t4_l2t_free, or - * l2t_release is about to call t4_l2t_free and do that. - * - * Either way this is of no interest to us. - */ - } - -done: - mtx_unlock(&e->lock); - if (old_lle) - LLE_FREE(old_lle); -} - -#endif diff --git a/sys/dev/cxgbe/t4_l2t.h b/sys/dev/cxgbe/t4_l2t.h index 5dfce839b8bb..03038856c6ca 100644 --- a/sys/dev/cxgbe/t4_l2t.h +++ b/sys/dev/cxgbe/t4_l2t.h @@ -30,8 +30,25 @@ #ifndef __T4_L2T_H #define __T4_L2T_H +/* identifies sync vs async L2T_WRITE_REQs */ +#define S_SYNC_WR 12 +#define V_SYNC_WR(x) ((x) << S_SYNC_WR) +#define F_SYNC_WR V_SYNC_WR(1) + enum { L2T_SIZE = 4096 }; /* # of L2T entries */ +enum { + L2T_STATE_VALID, /* entry is up to date */ + L2T_STATE_STALE, /* entry may be used but needs revalidation */ + L2T_STATE_RESOLVING, /* entry needs address resolution */ + L2T_STATE_FAILED, /* failed to resolve */ + L2T_STATE_SYNC_WRITE, /* synchronous write of entry underway */ + + /* when state is one of the below the entry is not hashed */ + L2T_STATE_SWITCHING, /* entry is being used by a switching filter */ + L2T_STATE_UNUSED /* entry not in use */ +}; + /* * Each L2T entry plays multiple roles. First of all, it keeps state for the * corresponding entry of the HW L2 table and maintains a queue of offload @@ -43,39 +60,49 @@ enum { L2T_SIZE = 4096 }; /* # of L2T entries */ struct l2t_entry { uint16_t state; /* entry state */ uint16_t idx; /* entry index */ - uint32_t addr[4]; /* next hop IP or IPv6 address */ + uint32_t addr; /* next hop IP address */ struct ifnet *ifp; /* outgoing interface */ uint16_t smt_idx; /* SMT index */ uint16_t vlan; /* VLAN TCI (id: 0-11, prio: 13-15) */ - int ifindex; /* interface index */ - struct llentry *lle; /* llentry for next hop */ struct l2t_entry *first; /* start of hash chain */ struct l2t_entry *next; /* next l2t_entry on chain */ - struct mbuf *arpq_head; /* list of mbufs awaiting resolution */ - struct mbuf *arpq_tail; + STAILQ_HEAD(, wrqe) wr_list; /* list of WRs awaiting resolution */ struct mtx lock; volatile int refcnt; /* entry reference count */ uint16_t hash; /* hash bucket the entry is on */ - uint8_t v6; /* whether entry is for IPv6 */ uint8_t lport; /* associated offload logical port */ uint8_t dmac[ETHER_ADDR_LEN]; /* next hop's MAC address */ }; +struct l2t_data { + struct rwlock lock; + volatile int nfree; /* number of free entries */ + struct l2t_entry *rover;/* starting point for next allocation */ + struct l2t_entry l2tab[L2T_SIZE]; +}; + + int t4_init_l2t(struct adapter *, int); int t4_free_l2t(struct l2t_data *); +struct l2t_entry *t4_alloc_l2e(struct l2t_data *); struct l2t_entry *t4_l2t_alloc_switching(struct l2t_data *); int t4_l2t_set_switching(struct adapter *, struct l2t_entry *, uint16_t, uint8_t, uint8_t *); -void t4_l2t_release(struct l2t_entry *); +int t4_write_l2e(struct adapter *, struct l2t_entry *, int); +int do_l2t_write_rpl(struct sge_iq *, const struct rss_header *, struct mbuf *); + +static inline void +t4_l2t_release(struct l2t_entry *e) +{ + struct l2t_data *d = container_of(e, struct l2t_data, l2tab[e->idx]); + + if (atomic_fetchadd_int(&e->refcnt, -1) == 1) + atomic_add_int(&d->nfree, 1); +} + + #ifdef SBUF_DRAIN int sysctl_l2t(SYSCTL_HANDLER_ARGS); #endif -#ifndef TCP_OFFLOAD_DISABLE -struct l2t_entry *t4_l2t_get(struct port_info *, struct ifnet *, - struct sockaddr *); -int t4_l2t_send(struct adapter *, struct mbuf *, struct l2t_entry *); -void t4_l2t_update(struct adapter *, struct llentry *); -#endif - #endif /* __T4_L2T_H */ diff --git a/sys/dev/cxgbe/t4_main.c b/sys/dev/cxgbe/t4_main.c index 874a6adaa205..a91363b31e1a 100644 --- a/sys/dev/cxgbe/t4_main.c +++ b/sys/dev/cxgbe/t4_main.c @@ -119,9 +119,13 @@ static void cxgbe_media_status(struct ifnet *, struct ifmediareq *); MALLOC_DEFINE(M_CXGBE, "cxgbe", "Chelsio T4 Ethernet driver and services"); +/* + * Correct lock order when you need to acquire multiple locks is t4_list_lock, + * then ADAPTER_LOCK, then t4_uld_list_lock. + */ static struct mtx t4_list_lock; static SLIST_HEAD(, adapter) t4_list; -#ifndef TCP_OFFLOAD_DISABLE +#ifdef TCP_OFFLOAD static struct mtx t4_uld_list_lock; static SLIST_HEAD(, uld_info) t4_uld_list; #endif @@ -149,7 +153,7 @@ TUNABLE_INT("hw.cxgbe.ntxq1g", &t4_ntxq1g); static int t4_nrxq1g = -1; TUNABLE_INT("hw.cxgbe.nrxq1g", &t4_nrxq1g); -#ifndef TCP_OFFLOAD_DISABLE +#ifdef TCP_OFFLOAD #define NOFLDTXQ_10G 8 static int t4_nofldtxq10g = -1; TUNABLE_INT("hw.cxgbe.nofldtxq10g", &t4_nofldtxq10g); @@ -237,7 +241,7 @@ struct intrs_and_queues { int nrxq10g; /* # of NIC rxq's for each 10G port */ int ntxq1g; /* # of NIC txq's for each 1G port */ int nrxq1g; /* # of NIC rxq's for each 1G port */ -#ifndef TCP_OFFLOAD_DISABLE +#ifdef TCP_OFFLOAD int nofldtxq10g; /* # of TOE txq's for each 10G port */ int nofldrxq10g; /* # of TOE rxq's for each 10G port */ int nofldtxq1g; /* # of TOE txq's for each 1G port */ @@ -297,8 +301,10 @@ static void reg_block_dump(struct adapter *, uint8_t *, unsigned int, unsigned int); static void t4_get_regs(struct adapter *, struct t4_regdump *, uint8_t *); static void cxgbe_tick(void *); +static void cxgbe_vlan_config(void *, struct ifnet *, uint16_t); static int cpl_not_handled(struct sge_iq *, const struct rss_header *, struct mbuf *); +static int an_not_handled(struct sge_iq *, const struct rsp_ctrl *); static int t4_sysctls(struct adapter *); static int cxgbe_sysctls(struct port_info *); static int sysctl_int_array(SYSCTL_HANDLER_ARGS); @@ -342,10 +348,8 @@ static int filter_rpl(struct sge_iq *, const struct rss_header *, struct mbuf *); static int get_sge_context(struct adapter *, struct t4_sge_context *); static int read_card_mem(struct adapter *, struct t4_mem_range *); -#ifndef TCP_OFFLOAD_DISABLE +#ifdef TCP_OFFLOAD static int toe_capability(struct port_info *, int); -static int activate_uld(struct adapter *, int, struct uld_softc *); -static int deactivate_uld(struct uld_softc *); #endif static int t4_mod_event(module_t, int, void *); @@ -368,8 +372,12 @@ struct t4_pciids { {0x440a, 4, "Chelsio T404-BT"}, }; -#ifndef TCP_OFFLOAD_DISABLE -/* This is used in service_iq() to get to the fl associated with an iq. */ +#ifdef TCP_OFFLOAD +/* + * service_iq() has an iq and needs the fl. Offset of fl from the iq should be + * exactly the same for both rxq and ofld_rxq. + */ +CTASSERT(offsetof(struct sge_ofld_rxq, iq) == offsetof(struct sge_rxq, iq)); CTASSERT(offsetof(struct sge_ofld_rxq, fl) == offsetof(struct sge_rxq, fl)); #endif @@ -401,7 +409,7 @@ t4_attach(device_t dev) int rc = 0, i, n10g, n1g, rqidx, tqidx; struct intrs_and_queues iaq; struct sge *s; -#ifndef TCP_OFFLOAD_DISABLE +#ifdef TCP_OFFLOAD int ofld_rqidx, ofld_tqidx; #endif @@ -436,6 +444,7 @@ t4_attach(device_t dev) goto done; /* error message displayed already */ memset(sc->chan_map, 0xff, sizeof(sc->chan_map)); + sc->an_handler = an_not_handled; for (i = 0; i < ARRAY_SIZE(sc->cpl_handler); i++) sc->cpl_handler[i] = cpl_not_handled; t4_register_cpl_handler(sc, CPL_SET_TCB_RPL, filter_rpl); @@ -595,7 +604,7 @@ t4_attach(device_t dev) s->neq += sc->params.nports + 1;/* ctrl queues: 1 per port + 1 mgmt */ s->niq = s->nrxq + 1; /* 1 extra for firmware event queue */ -#ifndef TCP_OFFLOAD_DISABLE +#ifdef TCP_OFFLOAD if (is_offload(sc)) { s->nofldrxq = n10g * iaq.nofldrxq10g + n1g * iaq.nofldrxq1g; @@ -631,7 +640,7 @@ t4_attach(device_t dev) * tx queues that each port should get. */ rqidx = tqidx = 0; -#ifndef TCP_OFFLOAD_DISABLE +#ifdef TCP_OFFLOAD ofld_rqidx = ofld_tqidx = 0; #endif for_each_port(sc, i) { @@ -653,7 +662,7 @@ t4_attach(device_t dev) rqidx += pi->nrxq; tqidx += pi->ntxq; -#ifndef TCP_OFFLOAD_DISABLE +#ifdef TCP_OFFLOAD if (is_offload(sc)) { pi->first_ofld_rxq = ofld_rqidx; pi->first_ofld_txq = ofld_tqidx; @@ -761,7 +770,7 @@ t4_detach(device_t dev) if (sc->l2t) t4_free_l2t(sc->l2t); -#ifndef TCP_OFFLOAD_DISABLE +#ifdef TCP_OFFLOAD free(sc->sge.ofld_rxq, M_CXGBE); free(sc->sge.ofld_txq, M_CXGBE); #endif @@ -832,7 +841,7 @@ cxgbe_attach(device_t dev) ifp->if_qflush = cxgbe_qflush; ifp->if_capabilities = T4_CAP; -#ifndef TCP_OFFLOAD_DISABLE +#ifdef TCP_OFFLOAD if (is_offload(pi->adapter)) ifp->if_capabilities |= IFCAP_TOE4; #endif @@ -844,9 +853,12 @@ cxgbe_attach(device_t dev) cxgbe_media_status); build_medialist(pi); + pi->vlan_c = EVENTHANDLER_REGISTER(vlan_config, cxgbe_vlan_config, ifp, + EVENTHANDLER_PRI_ANY); + ether_ifattach(ifp, pi->hw_addr); -#ifndef TCP_OFFLOAD_DISABLE +#ifdef TCP_OFFLOAD if (is_offload(pi->adapter)) { device_printf(dev, "%d txq, %d rxq (NIC); %d txq, %d rxq (TOE)\n", @@ -876,6 +888,9 @@ cxgbe_detach(device_t dev) SET_BUSY(sc); ADAPTER_UNLOCK(sc); + if (pi->vlan_c) + EVENTHANDLER_DEREGISTER(vlan_config, pi->vlan_c); + PORT_LOCK(pi); ifp->if_drv_flags &= ~IFF_DRV_RUNNING; callout_stop(&pi->tick); @@ -1042,7 +1057,7 @@ cxgbe_ioctl(struct ifnet *ifp, unsigned long cmd, caddr_t data) } #endif } -#ifndef TCP_OFFLOAD_DISABLE +#ifdef TCP_OFFLOAD if (mask & IFCAP_TOE) { int enable = (ifp->if_capenable ^ mask) & IFCAP_TOE; @@ -1292,7 +1307,7 @@ cfg_itype_and_nqueues(struct adapter *sc, int n10g, int n1g, iaq->ntxq1g = t4_ntxq1g; iaq->nrxq10g = nrxq10g = t4_nrxq10g; iaq->nrxq1g = nrxq1g = t4_nrxq1g; -#ifndef TCP_OFFLOAD_DISABLE +#ifdef TCP_OFFLOAD iaq->nofldtxq10g = t4_nofldtxq10g; iaq->nofldtxq1g = t4_nofldtxq1g; iaq->nofldrxq10g = nofldrxq10g = t4_nofldrxq10g; @@ -1364,7 +1379,7 @@ cfg_itype_and_nqueues(struct adapter *sc, int n10g, int n1g, n++; } iaq->nrxq10g = min(n, nrxq10g); -#ifndef TCP_OFFLOAD_DISABLE +#ifdef TCP_OFFLOAD iaq->nofldrxq10g = min(n, nofldrxq10g); #endif } @@ -1379,7 +1394,7 @@ cfg_itype_and_nqueues(struct adapter *sc, int n10g, int n1g, n++; } iaq->nrxq1g = min(n, nrxq1g); -#ifndef TCP_OFFLOAD_DISABLE +#ifdef TCP_OFFLOAD iaq->nofldrxq1g = min(n, nofldrxq1g); #endif } @@ -1392,7 +1407,7 @@ cfg_itype_and_nqueues(struct adapter *sc, int n10g, int n1g, * Least desirable option: one interrupt vector for everything. */ iaq->nirq = iaq->nrxq10g = iaq->nrxq1g = 1; -#ifndef TCP_OFFLOAD_DISABLE +#ifdef TCP_OFFLOAD iaq->nofldrxq10g = iaq->nofldrxq1g = 1; #endif @@ -2305,7 +2320,7 @@ adapter_full_init(struct adapter *sc) struct irq *irq; struct port_info *pi; struct sge_rxq *rxq; -#ifndef TCP_OFFLOAD_DISABLE +#ifdef TCP_OFFLOAD struct sge_ofld_rxq *ofld_rxq; #endif @@ -2369,7 +2384,7 @@ adapter_full_init(struct adapter *sc) for_each_port(sc, p) { pi = sc->port[p]; -#ifndef TCP_OFFLOAD_DISABLE +#ifdef TCP_OFFLOAD /* * Skip over the NIC queues if they aren't taking direct * interrupts. @@ -2386,7 +2401,7 @@ adapter_full_init(struct adapter *sc) rid++; } -#ifndef TCP_OFFLOAD_DISABLE +#ifdef TCP_OFFLOAD /* * Skip over the offload queues if they aren't taking * direct interrupts. @@ -2494,7 +2509,7 @@ port_full_uninit(struct port_info *pi) int i; struct sge_rxq *rxq; struct sge_txq *txq; -#ifndef TCP_OFFLOAD_DISABLE +#ifdef TCP_OFFLOAD struct sge_ofld_rxq *ofld_rxq; struct sge_wrq *ofld_txq; #endif @@ -2507,7 +2522,7 @@ port_full_uninit(struct port_info *pi) quiesce_eq(sc, &txq->eq); } -#ifndef TCP_OFFLOAD_DISABLE +#ifdef TCP_OFFLOAD for_each_ofld_txq(pi, i, ofld_txq) { quiesce_eq(sc, &ofld_txq->eq); } @@ -2518,7 +2533,7 @@ port_full_uninit(struct port_info *pi) quiesce_fl(sc, &rxq->fl); } -#ifndef TCP_OFFLOAD_DISABLE +#ifdef TCP_OFFLOAD for_each_ofld_rxq(pi, i, ofld_rxq) { quiesce_iq(sc, &ofld_rxq->iq); quiesce_fl(sc, &ofld_rxq->fl); @@ -2892,14 +2907,27 @@ cxgbe_tick(void *arg) PORT_UNLOCK(pi); } +static void +cxgbe_vlan_config(void *arg, struct ifnet *ifp, uint16_t vid) +{ + struct ifnet *vlan; + + if (arg != ifp) + return; + + vlan = VLAN_DEVAT(ifp, vid); + VLAN_SETCOOKIE(vlan, ifp); +} + static int cpl_not_handled(struct sge_iq *iq, const struct rss_header *rss, struct mbuf *m) { + #ifdef INVARIANTS - panic("%s: opcode %02x on iq %p with payload %p", + panic("%s: opcode 0x%02x on iq %p with payload %p", __func__, rss->opcode, iq, m); #else - log(LOG_ERR, "%s: opcode %02x on iq %p with payload %p", + log(LOG_ERR, "%s: opcode 0x%02x on iq %p with payload %p", __func__, rss->opcode, iq, m); m_freem(m); #endif @@ -2921,6 +2949,31 @@ t4_register_cpl_handler(struct adapter *sc, int opcode, cpl_handler_t h) return (0); } +static int +an_not_handled(struct sge_iq *iq, const struct rsp_ctrl *ctrl) +{ + +#ifdef INVARIANTS + panic("%s: async notification on iq %p (ctrl %p)", __func__, iq, ctrl); +#else + log(LOG_ERR, "%s: async notification on iq %p (ctrl %p)", + __func__, iq, ctrl); +#endif + return (EDOOFUS); +} + +int +t4_register_an_handler(struct adapter *sc, an_handler_t h) +{ + uintptr_t *loc, new; + + new = h ? (uintptr_t)h : (uintptr_t)an_not_handled; + loc = (uintptr_t *) &sc->an_handler; + atomic_store_rel_ptr(loc, new); + + return (0); +} + static int t4_sysctls(struct adapter *sc) { @@ -3072,7 +3125,7 @@ t4_sysctls(struct adapter *sc) sysctl_tx_rate, "A", "Tx rate"); #endif -#ifndef TCP_OFFLOAD_DISABLE +#ifdef TCP_OFFLOAD if (is_offload(sc)) { /* * dev.t4nex.X.toe. @@ -3125,7 +3178,7 @@ cxgbe_sysctls(struct port_info *pi) SYSCTL_ADD_INT(ctx, children, OID_AUTO, "first_txq", CTLFLAG_RD, &pi->first_txq, 0, "index of first tx queue"); -#ifndef TCP_OFFLOAD_DISABLE +#ifdef TCP_OFFLOAD if (is_offload(pi->adapter)) { SYSCTL_ADD_INT(ctx, children, OID_AUTO, "nofldrxq", CTLFLAG_RD, &pi->nofldrxq, 0, @@ -4543,7 +4596,7 @@ set_filter_mode(struct adapter *sc, uint32_t mode) goto done; } -#ifndef TCP_OFFLOAD_DISABLE +#ifdef TCP_OFFLOAD if (sc->offload_map) { rc = EBUSY; goto done; @@ -4734,7 +4787,7 @@ static int set_filter_wr(struct adapter *sc, int fidx) { struct filter_entry *f = &sc->tids.ftid_tab[fidx]; - struct mbuf *m; + struct wrqe *wr; struct fw_filter_wr *fwr; unsigned int ftid; @@ -4755,12 +4808,11 @@ set_filter_wr(struct adapter *sc, int fidx) ftid = sc->tids.ftid_base + fidx; - m = m_gethdr(M_NOWAIT, MT_DATA); - if (m == NULL) + wr = alloc_wrqe(sizeof(*fwr), &sc->sge.mgmtq); + if (wr == NULL) return (ENOMEM); - fwr = mtod(m, struct fw_filter_wr *); - m->m_len = m->m_pkthdr.len = sizeof(*fwr); + fwr = wrtod(wr); bzero(fwr, sizeof (*fwr)); fwr->op_pkd = htobe32(V_FW_WR_OP(FW_FILTER_WR)); @@ -4830,7 +4882,7 @@ set_filter_wr(struct adapter *sc, int fidx) f->pending = 1; sc->tids.ftids_in_use++; - t4_mgmt_tx(sc, m); + t4_wrq_tx(sc, wr); return (0); } @@ -4838,7 +4890,7 @@ static int del_filter_wr(struct adapter *sc, int fidx) { struct filter_entry *f = &sc->tids.ftid_tab[fidx]; - struct mbuf *m; + struct wrqe *wr; struct fw_filter_wr *fwr; unsigned int ftid; @@ -4846,18 +4898,16 @@ del_filter_wr(struct adapter *sc, int fidx) ftid = sc->tids.ftid_base + fidx; - m = m_gethdr(M_NOWAIT, MT_DATA); - if (m == NULL) + wr = alloc_wrqe(sizeof(*fwr), &sc->sge.mgmtq); + if (wr == NULL) return (ENOMEM); - - fwr = mtod(m, struct fw_filter_wr *); - m->m_len = m->m_pkthdr.len = sizeof(*fwr); + fwr = wrtod(wr); bzero(fwr, sizeof (*fwr)); t4_mk_filtdelwr(ftid, fwr, sc->sge.fwq.abs_id); f->pending = 1; - t4_mgmt_tx(sc, m); + t4_wrq_tx(sc, wr); return (0); } @@ -5215,7 +5265,7 @@ t4_ioctl(struct cdev *dev, unsigned long cmd, caddr_t data, int fflag, return (rc); } -#ifndef TCP_OFFLOAD_DISABLE +#ifdef TCP_OFFLOAD static int toe_capability(struct port_info *pi, int enable) { @@ -5228,13 +5278,28 @@ toe_capability(struct port_info *pi, int enable) return (ENODEV); if (enable) { + if (!(sc->flags & FULL_INIT_DONE)) { + log(LOG_WARNING, + "You must enable a cxgbe interface first\n"); + return (EAGAIN); + } + if (isset(&sc->offload_map, pi->port_id)) return (0); - if (sc->offload_map == 0) { - rc = activate_uld(sc, ULD_TOM, &sc->tom); + if (!(sc->flags & TOM_INIT_DONE)) { + rc = t4_activate_uld(sc, ULD_TOM); + if (rc == EAGAIN) { + log(LOG_WARNING, + "You must kldload t4_tom.ko before trying " + "to enable TOE on a cxgbe interface.\n"); + } if (rc != 0) return (rc); + KASSERT(sc->tom_softc != NULL, + ("%s: TOM activated but softc NULL", __func__)); + KASSERT(sc->flags & TOM_INIT_DONE, + ("%s: TOM activated but flag not set", __func__)); } setbit(&sc->offload_map, pi->port_id); @@ -5242,15 +5307,9 @@ toe_capability(struct port_info *pi, int enable) if (!isset(&sc->offload_map, pi->port_id)) return (0); + KASSERT(sc->flags & TOM_INIT_DONE, + ("%s: TOM never initialized?", __func__)); clrbit(&sc->offload_map, pi->port_id); - - if (sc->offload_map == 0) { - rc = deactivate_uld(&sc->tom); - if (rc != 0) { - setbit(&sc->offload_map, pi->port_id); - return (rc); - } - } } return (0); @@ -5305,8 +5364,8 @@ t4_unregister_uld(struct uld_info *ui) return (rc); } -static int -activate_uld(struct adapter *sc, int id, struct uld_softc *usc) +int +t4_activate_uld(struct adapter *sc, int id) { int rc = EAGAIN; struct uld_info *ui; @@ -5315,13 +5374,9 @@ activate_uld(struct adapter *sc, int id, struct uld_softc *usc) SLIST_FOREACH(ui, &t4_uld_list, link) { if (ui->uld_id == id) { - rc = ui->attach(sc, &usc->softc); - if (rc == 0) { - KASSERT(usc->softc != NULL, - ("%s: ULD %d has no state", __func__, id)); + rc = ui->activate(sc); + if (rc == 0) ui->refcount++; - usc->uld = ui; - } goto done; } } @@ -5331,25 +5386,21 @@ activate_uld(struct adapter *sc, int id, struct uld_softc *usc) return (rc); } -static int -deactivate_uld(struct uld_softc *usc) +int +t4_deactivate_uld(struct adapter *sc, int id) { - int rc; + int rc = EINVAL; + struct uld_info *ui; mtx_lock(&t4_uld_list_lock); - if (usc->uld == NULL || usc->softc == NULL) { - rc = EINVAL; - goto done; - } - - rc = usc->uld->detach(usc->softc); - if (rc == 0) { - KASSERT(usc->uld->refcount > 0, - ("%s: ULD has bad refcount", __func__)); - usc->uld->refcount--; - usc->uld = NULL; - usc->softc = NULL; + SLIST_FOREACH(ui, &t4_uld_list, link) { + if (ui->uld_id == id) { + rc = ui->deactivate(sc); + if (rc == 0) + ui->refcount--; + goto done; + } } done: mtx_unlock(&t4_uld_list_lock); @@ -5379,7 +5430,7 @@ tweak_tunables(void) if (t4_nrxq1g < 1) t4_nrxq1g = min(nc, NRXQ_1G); -#ifndef TCP_OFFLOAD_DISABLE +#ifdef TCP_OFFLOAD if (t4_nofldtxq10g < 1) t4_nofldtxq10g = min(nc, NOFLDTXQ_10G); @@ -5426,7 +5477,7 @@ t4_mod_event(module_t mod, int cmd, void *arg) t4_sge_modload(); mtx_init(&t4_list_lock, "T4 adapters", 0, MTX_DEF); SLIST_INIT(&t4_list); -#ifndef TCP_OFFLOAD_DISABLE +#ifdef TCP_OFFLOAD mtx_init(&t4_uld_list_lock, "T4 ULDs", 0, MTX_DEF); SLIST_INIT(&t4_uld_list); #endif @@ -5434,7 +5485,7 @@ t4_mod_event(module_t mod, int cmd, void *arg) break; case MOD_UNLOAD: -#ifndef TCP_OFFLOAD_DISABLE +#ifdef TCP_OFFLOAD mtx_lock(&t4_uld_list_lock); if (!SLIST_EMPTY(&t4_uld_list)) { rc = EBUSY; diff --git a/sys/dev/cxgbe/t4_sge.c b/sys/dev/cxgbe/t4_sge.c index 8f39f100a8da..92c921239835 100644 --- a/sys/dev/cxgbe/t4_sge.c +++ b/sys/dev/cxgbe/t4_sge.c @@ -34,6 +34,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -51,7 +52,6 @@ __FBSDID("$FreeBSD$"); #include "common/t4_regs.h" #include "common/t4_regs_values.h" #include "common/t4_msg.h" -#include "t4_l2t.h" struct fl_buf_info { int size; @@ -115,14 +115,14 @@ static int free_mgmtq(struct adapter *); static int alloc_rxq(struct port_info *, struct sge_rxq *, int, int, struct sysctl_oid *); static int free_rxq(struct port_info *, struct sge_rxq *); -#ifndef TCP_OFFLOAD_DISABLE +#ifdef TCP_OFFLOAD static int alloc_ofld_rxq(struct port_info *, struct sge_ofld_rxq *, int, int, struct sysctl_oid *); static int free_ofld_rxq(struct port_info *, struct sge_ofld_rxq *); #endif static int ctrl_eq_alloc(struct adapter *, struct sge_eq *); static int eth_eq_alloc(struct adapter *, struct port_info *, struct sge_eq *); -#ifndef TCP_OFFLOAD_DISABLE +#ifdef TCP_OFFLOAD static int ofld_eq_alloc(struct adapter *, struct port_info *, struct sge_eq *); #endif static int alloc_eq(struct adapter *, struct port_info *, struct sge_eq *); @@ -397,7 +397,7 @@ first_vector(struct port_info *pi) if (i == pi->port_id) break; -#ifndef TCP_OFFLOAD_DISABLE +#ifdef TCP_OFFLOAD if (sc->flags & INTR_DIRECT) rc += pi->nrxq + pi->nofldrxq; else @@ -434,7 +434,7 @@ port_intr_iq(struct port_info *pi, int idx) if (sc->intr_count == 1) return (&sc->sge.fwq); -#ifndef TCP_OFFLOAD_DISABLE +#ifdef TCP_OFFLOAD if (sc->flags & INTR_DIRECT) { idx %= pi->nrxq + pi->nofldrxq; @@ -475,19 +475,20 @@ t4_setup_port_queues(struct port_info *pi) struct sge_rxq *rxq; struct sge_txq *txq; struct sge_wrq *ctrlq; -#ifndef TCP_OFFLOAD_DISABLE +#ifdef TCP_OFFLOAD struct sge_ofld_rxq *ofld_rxq; struct sge_wrq *ofld_txq; + struct sysctl_oid *oid2 = NULL; #endif char name[16]; struct adapter *sc = pi->adapter; - struct sysctl_oid *oid = device_get_sysctl_tree(pi->dev), *oid2 = NULL; + struct sysctl_oid *oid = device_get_sysctl_tree(pi->dev); struct sysctl_oid_list *children = SYSCTL_CHILDREN(oid); oid = SYSCTL_ADD_NODE(&pi->ctx, children, OID_AUTO, "rxq", CTLFLAG_RD, NULL, "rx queues"); -#ifndef TCP_OFFLOAD_DISABLE +#ifdef TCP_OFFLOAD if (is_offload(sc)) { oid2 = SYSCTL_ADD_NODE(&pi->ctx, children, OID_AUTO, "ofld_rxq", CTLFLAG_RD, NULL, @@ -515,7 +516,7 @@ t4_setup_port_queues(struct port_info *pi) init_fl(&rxq->fl, pi->qsize_rxq / 8, pi->ifp->if_mtu, name); if (sc->flags & INTR_DIRECT -#ifndef TCP_OFFLOAD_DISABLE +#ifdef TCP_OFFLOAD || (sc->intr_count > 1 && pi->nrxq >= pi->nofldrxq) #endif ) { @@ -527,7 +528,7 @@ t4_setup_port_queues(struct port_info *pi) } } -#ifndef TCP_OFFLOAD_DISABLE +#ifdef TCP_OFFLOAD for_each_ofld_rxq(pi, i, ofld_rxq) { snprintf(name, sizeof(name), "%s ofld_rxq%d-iq", @@ -567,7 +568,7 @@ t4_setup_port_queues(struct port_info *pi) j++; } -#ifndef TCP_OFFLOAD_DISABLE +#ifdef TCP_OFFLOAD for_each_ofld_rxq(pi, i, ofld_rxq) { if (ofld_rxq->iq.flags & IQ_INTR) continue; @@ -603,7 +604,7 @@ t4_setup_port_queues(struct port_info *pi) j++; } -#ifndef TCP_OFFLOAD_DISABLE +#ifdef TCP_OFFLOAD oid = SYSCTL_ADD_NODE(&pi->ctx, children, OID_AUTO, "ofld_txq", CTLFLAG_RD, NULL, "tx queues for offloaded TCP connections"); for_each_ofld_txq(pi, i, ofld_txq) { @@ -655,7 +656,7 @@ t4_teardown_port_queues(struct port_info *pi) struct adapter *sc = pi->adapter; struct sge_rxq *rxq; struct sge_txq *txq; -#ifndef TCP_OFFLOAD_DISABLE +#ifdef TCP_OFFLOAD struct sge_ofld_rxq *ofld_rxq; struct sge_wrq *ofld_txq; #endif @@ -677,7 +678,7 @@ t4_teardown_port_queues(struct port_info *pi) free_txq(pi, txq); } -#ifndef TCP_OFFLOAD_DISABLE +#ifdef TCP_OFFLOAD for_each_ofld_txq(pi, i, ofld_txq) { free_wrq(sc, ofld_txq); } @@ -693,7 +694,7 @@ t4_teardown_port_queues(struct port_info *pi) free_rxq(pi, rxq); } -#ifndef TCP_OFFLOAD_DISABLE +#ifdef TCP_OFFLOAD for_each_ofld_rxq(pi, i, ofld_rxq) { if ((ofld_rxq->iq.flags & IQ_INTR) == 0) free_ofld_rxq(pi, ofld_rxq); @@ -709,7 +710,7 @@ t4_teardown_port_queues(struct port_info *pi) free_rxq(pi, rxq); } -#ifndef TCP_OFFLOAD_DISABLE +#ifdef TCP_OFFLOAD for_each_ofld_rxq(pi, i, ofld_rxq) { if (ofld_rxq->iq.flags & IQ_INTR) free_ofld_rxq(pi, ofld_rxq); @@ -775,7 +776,7 @@ static int service_iq(struct sge_iq *iq, int budget) { struct sge_iq *q; - struct sge_rxq *rxq = (void *)iq; /* Use iff iq is part of rxq */ + struct sge_rxq *rxq = iq_to_rxq(iq); /* Use iff iq is part of rxq */ struct sge_fl *fl = &rxq->fl; /* Use iff IQ_HAS_FL */ struct adapter *sc = iq->adapter; struct rsp_ctrl *ctrl; @@ -862,7 +863,8 @@ service_iq(struct sge_iq *iq, int budget) break; default: - panic("%s: rsp_type %u", __func__, rsp_type); + sc->an_handler(iq, ctrl); + break; } iq_next(iq); @@ -1076,42 +1078,33 @@ t4_eth_rx(struct sge_iq *iq, const struct rss_header *rss, struct mbuf *m0) return (0); } -int -t4_mgmt_tx(struct adapter *sc, struct mbuf *m) -{ - return t4_wrq_tx(sc, &sc->sge.mgmtq, m); -} - /* * Doesn't fail. Holds on to work requests it can't send right away. */ -int -t4_wrq_tx_locked(struct adapter *sc, struct sge_wrq *wrq, struct mbuf *m0) +void +t4_wrq_tx_locked(struct adapter *sc, struct sge_wrq *wrq, struct wrqe *wr) { struct sge_eq *eq = &wrq->eq; int can_reclaim; caddr_t dst; - struct mbuf *wr, *next; TXQ_LOCK_ASSERT_OWNED(wrq); +#ifdef TCP_OFFLOAD KASSERT((eq->flags & EQ_TYPEMASK) == EQ_OFLD || (eq->flags & EQ_TYPEMASK) == EQ_CTRL, ("%s: eq type %d", __func__, eq->flags & EQ_TYPEMASK)); +#else + KASSERT((eq->flags & EQ_TYPEMASK) == EQ_CTRL, + ("%s: eq type %d", __func__, eq->flags & EQ_TYPEMASK)); +#endif - if (__predict_true(m0 != NULL)) { - if (wrq->head) - wrq->tail->m_nextpkt = m0; - else - wrq->head = m0; - while (m0->m_nextpkt) - m0 = m0->m_nextpkt; - wrq->tail = m0; - } + if (__predict_true(wr != NULL)) + STAILQ_INSERT_TAIL(&wrq->wr_list, wr, link); can_reclaim = reclaimable(eq); if (__predict_false(eq->flags & EQ_STALLED)) { if (can_reclaim < tx_resume_threshold(eq)) - return (0); + return; eq->flags &= ~EQ_STALLED; eq->unstalled++; } @@ -1120,39 +1113,34 @@ t4_wrq_tx_locked(struct adapter *sc, struct sge_wrq *wrq, struct mbuf *m0) if (__predict_false(eq->cidx >= eq->cap)) eq->cidx -= eq->cap; - for (wr = wrq->head; wr; wr = next) { + while ((wr = STAILQ_FIRST(&wrq->wr_list)) != NULL) { int ndesc; - struct mbuf *m; - next = wr->m_nextpkt; - wr->m_nextpkt = NULL; + if (__predict_false(wr->wr_len < 0 || + wr->wr_len > SGE_MAX_WR_LEN || (wr->wr_len & 0x7))) { - M_ASSERTPKTHDR(wr); - KASSERT(wr->m_pkthdr.len > 0 && (wr->m_pkthdr.len & 0x7) == 0, - ("%s: work request len %d.", __func__, wr->m_pkthdr.len)); - - if (wr->m_pkthdr.len > SGE_MAX_WR_LEN) { #ifdef INVARIANTS - panic("%s: oversized work request", __func__); -#else - log(LOG_ERR, "%s: %s work request too long (%d)", - device_get_nameunit(sc->dev), __func__, - wr->m_pkthdr.len); - m_freem(wr); - continue; + panic("%s: work request with length %d", __func__, + wr->wr_len); #endif +#ifdef KDB + kdb_backtrace(); +#endif + log(LOG_ERR, "%s: %s work request with length %d", + device_get_nameunit(sc->dev), __func__, wr->wr_len); + STAILQ_REMOVE_HEAD(&wrq->wr_list, link); + free_wrqe(wr); + continue; } - ndesc = howmany(wr->m_pkthdr.len, EQ_ESIZE); + ndesc = howmany(wr->wr_len, EQ_ESIZE); if (eq->avail < ndesc) { - wr->m_nextpkt = next; wrq->no_desc++; break; } dst = (void *)&eq->desc[eq->pidx]; - for (m = wr; m; m = m->m_next) - copy_to_txd(eq, mtod(m, caddr_t), &dst, m->m_len); + copy_to_txd(eq, wrtod(wr), &dst, wr->wr_len); eq->pidx += ndesc; eq->avail -= ndesc; @@ -1164,7 +1152,8 @@ t4_wrq_tx_locked(struct adapter *sc, struct sge_wrq *wrq, struct mbuf *m0) ring_eq_db(sc, eq); wrq->tx_wrs++; - m_freem(wr); + STAILQ_REMOVE_HEAD(&wrq->wr_list, link); + free_wrqe(wr); if (eq->avail < 8) { can_reclaim = reclaimable(eq); @@ -1178,20 +1167,11 @@ t4_wrq_tx_locked(struct adapter *sc, struct sge_wrq *wrq, struct mbuf *m0) if (eq->pending) ring_eq_db(sc, eq); - if (wr == NULL) - wrq->head = wrq->tail = NULL; - else { - wrq->head = wr; - - KASSERT(wrq->tail->m_nextpkt == NULL, - ("%s: wrq->tail grew a tail of its own", __func__)); - + if (wr != NULL) { eq->flags |= EQ_STALLED; if (callout_pending(&eq->tx_callout) == 0) callout_reset(&eq->tx_callout, 1, t4_tx_callout, eq); } - - return (0); } /* Per-packet header in a coalesced tx WR, before the SGL starts (in flits) */ @@ -1792,6 +1772,7 @@ alloc_mgmtq(struct adapter *sc) static int free_mgmtq(struct adapter *sc) { + return free_wrq(sc, &sc->sge.mgmtq); } @@ -1885,7 +1866,7 @@ free_rxq(struct port_info *pi, struct sge_rxq *rxq) return (rc); } -#ifndef TCP_OFFLOAD_DISABLE +#ifdef TCP_OFFLOAD static int alloc_ofld_rxq(struct port_info *pi, struct sge_ofld_rxq *ofld_rxq, int intr_idx, int idx, struct sysctl_oid *oid) @@ -2031,7 +2012,7 @@ eth_eq_alloc(struct adapter *sc, struct port_info *pi, struct sge_eq *eq) return (rc); } -#ifndef TCP_OFFLOAD_DISABLE +#ifdef TCP_OFFLOAD static int ofld_eq_alloc(struct adapter *sc, struct port_info *pi, struct sge_eq *eq) { @@ -2103,7 +2084,7 @@ alloc_eq(struct adapter *sc, struct port_info *pi, struct sge_eq *eq) rc = eth_eq_alloc(sc, pi, eq); break; -#ifndef TCP_OFFLOAD_DISABLE +#ifdef TCP_OFFLOAD case EQ_OFLD: rc = ofld_eq_alloc(sc, pi, eq); break; @@ -2141,7 +2122,7 @@ free_eq(struct adapter *sc, struct sge_eq *eq) eq->cntxt_id); break; -#ifndef TCP_OFFLOAD_DISABLE +#ifdef TCP_OFFLOAD case EQ_OFLD: rc = -t4_ofld_eq_free(sc, sc->mbox, sc->pf, 0, eq->cntxt_id); @@ -2183,6 +2164,7 @@ alloc_wrq(struct adapter *sc, struct port_info *pi, struct sge_wrq *wrq, return (rc); wrq->adapter = sc; + STAILQ_INIT(&wrq->wr_list); SYSCTL_ADD_UINT(ctx, children, OID_AUTO, "cntxt_id", CTLFLAG_RD, &wrq->eq.cntxt_id, 0, "SGE context id of the queue"); @@ -3179,7 +3161,7 @@ write_sgl_to_txd(struct sge_eq *eq, struct sgl *sgl, caddr_t *to) static inline void copy_to_txd(struct sge_eq *eq, caddr_t from, caddr_t *to, int len) { - if ((uintptr_t)(*to) + len <= (uintptr_t)eq->spg) { + if (__predict_true((uintptr_t)(*to) + len <= (uintptr_t)eq->spg)) { bcopy(from, *to, len); (*to) += len; } else { diff --git a/sys/dev/cxgbe/tom/t4_connect.c b/sys/dev/cxgbe/tom/t4_connect.c new file mode 100644 index 000000000000..bc591716aeab --- /dev/null +++ b/sys/dev/cxgbe/tom/t4_connect.c @@ -0,0 +1,377 @@ +/*- + * Copyright (c) 2012 Chelsio Communications, Inc. + * All rights reserved. + * Written by: Navdeep Parhar + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include "opt_inet.h" + +#ifdef TCP_OFFLOAD +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#define TCPSTATES +#include +#include + +#include "common/common.h" +#include "common/t4_msg.h" +#include "common/t4_regs.h" +#include "tom/t4_tom_l2t.h" +#include "tom/t4_tom.h" + +/* atid services */ +static int alloc_atid(struct adapter *, void *); +static void *lookup_atid(struct adapter *, int); +static void free_atid(struct adapter *, int); + +static int +alloc_atid(struct adapter *sc, void *ctx) +{ + struct tid_info *t = &sc->tids; + int atid = -1; + + mtx_lock(&t->atid_lock); + if (t->afree) { + union aopen_entry *p = t->afree; + + atid = p - t->atid_tab; + t->afree = p->next; + p->data = ctx; + t->atids_in_use++; + } + mtx_unlock(&t->atid_lock); + return (atid); +} + +static void * +lookup_atid(struct adapter *sc, int atid) +{ + struct tid_info *t = &sc->tids; + + return (t->atid_tab[atid].data); +} + +static void +free_atid(struct adapter *sc, int atid) +{ + struct tid_info *t = &sc->tids; + union aopen_entry *p = &t->atid_tab[atid]; + + mtx_lock(&t->atid_lock); + p->next = t->afree; + t->afree = p; + t->atids_in_use--; + mtx_unlock(&t->atid_lock); +} + +/* + * Active open failed. + */ +static int +do_act_establish(struct sge_iq *iq, const struct rss_header *rss, + struct mbuf *m) +{ + struct adapter *sc = iq->adapter; + const struct cpl_act_establish *cpl = (const void *)(rss + 1); + unsigned int tid = GET_TID(cpl); + unsigned int atid = G_TID_TID(ntohl(cpl->tos_atid)); + struct toepcb *toep = lookup_atid(sc, atid); + struct inpcb *inp = toep->inp; + + KASSERT(m == NULL, ("%s: wasn't expecting payload", __func__)); + KASSERT(toep->tid == atid, ("%s: toep tid/atid mismatch", __func__)); + + CTR3(KTR_CXGBE, "%s: atid %u, tid %u", __func__, atid, tid); + free_atid(sc, atid); + + INP_WLOCK(inp); + toep->tid = tid; + insert_tid(sc, tid, toep); + if (inp->inp_flags & INP_DROPPED) { + + /* socket closed by the kernel before hw told us it connected */ + + send_flowc_wr(toep, NULL); + send_reset(sc, toep, be32toh(cpl->snd_isn)); + goto done; + } + + make_established(toep, cpl->snd_isn, cpl->rcv_isn, cpl->tcp_opt); +done: + INP_WUNLOCK(inp); + return (0); +} + +static inline int +act_open_has_tid(unsigned int status) +{ + + return (status != CPL_ERR_TCAM_FULL && + status != CPL_ERR_TCAM_PARITY && + status != CPL_ERR_CONN_EXIST && + status != CPL_ERR_ARP_MISS); +} + +/* + * Convert an ACT_OPEN_RPL status to an errno. + */ +static inline int +act_open_rpl_status_to_errno(int status) +{ + + switch (status) { + case CPL_ERR_CONN_RESET: + return (ECONNREFUSED); + case CPL_ERR_ARP_MISS: + return (EHOSTUNREACH); + case CPL_ERR_CONN_TIMEDOUT: + return (ETIMEDOUT); + case CPL_ERR_TCAM_FULL: + return (ENOMEM); + case CPL_ERR_CONN_EXIST: + log(LOG_ERR, "ACTIVE_OPEN_RPL: 4-tuple in use\n"); + return (EADDRINUSE); + default: + return (EIO); + } +} + +static int +do_act_open_rpl(struct sge_iq *iq, const struct rss_header *rss, + struct mbuf *m) +{ + struct adapter *sc = iq->adapter; + const struct cpl_act_open_rpl *cpl = (const void *)(rss + 1); + unsigned int atid = G_TID_TID(G_AOPEN_ATID(be32toh(cpl->atid_status))); + unsigned int status = G_AOPEN_STATUS(be32toh(cpl->atid_status)); + struct toepcb *toep = lookup_atid(sc, atid); + struct inpcb *inp = toep->inp; + struct tcpcb *tp = intotcpcb(inp); + struct toedev *tod = &toep->td->tod; + + KASSERT(m == NULL, ("%s: wasn't expecting payload", __func__)); + KASSERT(toep->tid == atid, ("%s: toep tid/atid mismatch", __func__)); + + CTR3(KTR_CXGBE, "%s: atid %u, status %u ", __func__, atid, status); + + /* Ignore negative advice */ + if (status == CPL_ERR_RTX_NEG_ADVICE) + return (0); + + free_atid(sc, atid); + toep->tid = -1; + + if (status && act_open_has_tid(status)) + release_tid(sc, GET_TID(cpl), toep->ctrlq); + + if (status == CPL_ERR_TCAM_FULL) { + INP_WLOCK(inp); + toe_connect_failed(tod, tp, EAGAIN); + final_cpl_received(toep); /* unlocks inp */ + } else { + INP_INFO_WLOCK(&V_tcbinfo); + INP_WLOCK(inp); + toe_connect_failed(tod, tp, act_open_rpl_status_to_errno(status)); + final_cpl_received(toep); /* unlocks inp */ + INP_INFO_WUNLOCK(&V_tcbinfo); + } + + return (0); +} + +/* + * Options2 for active open. + */ +static uint32_t +calc_opt2a(struct socket *so) +{ + struct tcpcb *tp = so_sototcpcb(so); + struct toepcb *toep = tp->t_toe; + struct port_info *pi = toep->port; + struct adapter *sc = pi->adapter; + uint32_t opt2 = 0; + + if (tp->t_flags & TF_SACK_PERMIT) + opt2 |= F_SACK_EN; + + if (tp->t_flags & TF_REQ_TSTMP) + opt2 |= F_TSTAMPS_EN; + + if (tp->t_flags & TF_REQ_SCALE) + opt2 |= F_WND_SCALE_EN; + + if (V_tcp_do_ecn) + opt2 |= F_CCTRL_ECN; + + opt2 |= V_TX_QUEUE(sc->params.tp.tx_modq[pi->tx_chan]); + opt2 |= F_RX_COALESCE_VALID | V_RX_COALESCE(M_RX_COALESCE); + opt2 |= F_RSS_QUEUE_VALID | V_RSS_QUEUE(toep->ofld_rxq->iq.abs_id); + + return (htobe32(opt2)); +} + + +void +t4_init_connect_cpl_handlers(struct adapter *sc) +{ + + t4_register_cpl_handler(sc, CPL_ACT_ESTABLISH, do_act_establish); + t4_register_cpl_handler(sc, CPL_ACT_OPEN_RPL, do_act_open_rpl); +} + +/* + * active open (soconnect). + * + * State of affairs on entry: + * soisconnecting (so_state |= SS_ISCONNECTING) + * tcbinfo not locked (This has changed - used to be WLOCKed) + * inp WLOCKed + * tp->t_state = TCPS_SYN_SENT + * rtalloc1, RT_UNLOCK on rt. + */ +int +t4_connect(struct toedev *tod, struct socket *so, struct rtentry *rt, + struct sockaddr *nam) +{ + struct adapter *sc = tod->tod_softc; + struct toepcb *toep = NULL; + struct wrqe *wr = NULL; + struct cpl_act_open_req *cpl; + struct l2t_entry *e = NULL; + struct ifnet *rt_ifp = rt->rt_ifp; + struct port_info *pi; + int atid = -1, mtu_idx, rscale, qid_atid, rc = ENOMEM; + struct inpcb *inp = sotoinpcb(so); + struct tcpcb *tp = intotcpcb(inp); + + INP_WLOCK_ASSERT(inp); + + if (nam->sa_family != AF_INET) + CXGBE_UNIMPLEMENTED("IPv6 connect"); + + if (rt_ifp->if_type == IFT_ETHER) + pi = rt_ifp->if_softc; + else if (rt_ifp->if_type == IFT_L2VLAN) { + struct ifnet *ifp = VLAN_COOKIE(rt_ifp); + + pi = ifp->if_softc; + } else if (rt_ifp->if_type == IFT_IEEE8023ADLAG) + return (ENOSYS); /* XXX: implement lagg support */ + else + return (ENOTSUP); + + toep = alloc_toepcb(pi, -1, -1, M_NOWAIT); + if (toep == NULL) + goto failed; + + atid = alloc_atid(sc, toep); + if (atid < 0) + goto failed; + + e = t4_l2t_get(pi, rt_ifp, + rt->rt_flags & RTF_GATEWAY ? rt->rt_gateway : nam); + if (e == NULL) + goto failed; + + wr = alloc_wrqe(sizeof(*cpl), toep->ctrlq); + if (wr == NULL) + goto failed; + cpl = wrtod(wr); + + toep->tid = atid; + toep->l2te = e; + toep->ulp_mode = ULP_MODE_NONE; + SOCKBUF_LOCK(&so->so_rcv); + /* opt0 rcv_bufsiz initially, assumes its normal meaning later */ + toep->rx_credits = min(select_rcv_wnd(so) >> 10, M_RCV_BUFSIZ); + SOCKBUF_UNLOCK(&so->so_rcv); + + offload_socket(so, toep); + + /* + * The kernel sets request_r_scale based on sb_max whereas we need to + * take hardware's MAX_RCV_WND into account too. This is normally a + * no-op as MAX_RCV_WND is much larger than the default sb_max. + */ + if (tp->t_flags & TF_REQ_SCALE) + rscale = tp->request_r_scale = select_rcv_wscale(); + else + rscale = 0; + mtu_idx = find_best_mtu_idx(sc, &inp->inp_inc, 0); + qid_atid = (toep->ofld_rxq->iq.abs_id << 14) | atid; + + INIT_TP_WR(cpl, 0); + OPCODE_TID(cpl) = htobe32(MK_OPCODE_TID(CPL_ACT_OPEN_REQ, qid_atid)); + inp_4tuple_get(inp, &cpl->local_ip, &cpl->local_port, &cpl->peer_ip, + &cpl->peer_port); + cpl->opt0 = calc_opt0(so, pi, e, mtu_idx, rscale, toep->rx_credits, + toep->ulp_mode); + cpl->params = select_ntuple(pi, e, sc->filter_mode); + cpl->opt2 = calc_opt2a(so); + + CTR5(KTR_CXGBE, "%s: atid %u (%s), toep %p, inp %p", __func__, + toep->tid, tcpstates[tp->t_state], toep, inp); + + rc = t4_l2t_send(sc, wr, e); + if (rc == 0) { + toepcb_set_flag(toep, TPF_CPL_PENDING); + return (0); + } + + undo_offload_socket(so); +failed: + CTR5(KTR_CXGBE, "%s: FAILED, atid %d, toep %p, l2te %p, wr %p", + __func__, atid, toep, e, wr); + + if (e) + t4_l2t_release(e); + if (wr) + free_wrqe(wr); + if (atid >= 0) + free_atid(sc, atid); + if (toep) + free_toepcb(toep); + + return (rc); +} +#endif diff --git a/sys/dev/cxgbe/tom/t4_cpl_io.c b/sys/dev/cxgbe/tom/t4_cpl_io.c new file mode 100644 index 000000000000..161fc1274455 --- /dev/null +++ b/sys/dev/cxgbe/tom/t4_cpl_io.c @@ -0,0 +1,1276 @@ +/*- + * Copyright (c) 2012 Chelsio Communications, Inc. + * All rights reserved. + * Written by: Navdeep Parhar + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include "opt_inet.h" + +#ifdef TCP_OFFLOAD +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#define TCPSTATES +#include +#include +#include + +#include "common/common.h" +#include "common/t4_msg.h" +#include "common/t4_regs.h" +#include "tom/t4_tom_l2t.h" +#include "tom/t4_tom.h" + +VNET_DECLARE(int, tcp_do_autosndbuf); +#define V_tcp_do_autosndbuf VNET(tcp_do_autosndbuf) +VNET_DECLARE(int, tcp_autosndbuf_inc); +#define V_tcp_autosndbuf_inc VNET(tcp_autosndbuf_inc) +VNET_DECLARE(int, tcp_autosndbuf_max); +#define V_tcp_autosndbuf_max VNET(tcp_autosndbuf_max) +VNET_DECLARE(int, tcp_do_autorcvbuf); +#define V_tcp_do_autorcvbuf VNET(tcp_do_autorcvbuf) +VNET_DECLARE(int, tcp_autorcvbuf_inc); +#define V_tcp_autorcvbuf_inc VNET(tcp_autorcvbuf_inc) +VNET_DECLARE(int, tcp_autorcvbuf_max); +#define V_tcp_autorcvbuf_max VNET(tcp_autorcvbuf_max) + +void +send_flowc_wr(struct toepcb *toep, struct flowc_tx_params *ftxp) +{ + struct wrqe *wr; + struct fw_flowc_wr *flowc; + unsigned int nparams = ftxp ? 8 : 4, flowclen; + struct port_info *pi = toep->port; + struct adapter *sc = pi->adapter; + unsigned int pfvf = G_FW_VIID_PFN(pi->viid) << S_FW_VIID_PFN; + struct ofld_tx_sdesc *txsd = &toep->txsd[toep->txsd_pidx]; + + KASSERT(!toepcb_flag(toep, TPF_FLOWC_WR_SENT), + ("%s: flowc for tid %u sent already", __func__, toep->tid)); + + CTR2(KTR_CXGBE, "%s: tid %u", __func__, toep->tid); + + flowclen = sizeof(*flowc) + nparams * sizeof(struct fw_flowc_mnemval); + + wr = alloc_wrqe(roundup(flowclen, 16), toep->ofld_txq); + if (wr == NULL) { + /* XXX */ + panic("%s: allocation failure.", __func__); + } + flowc = wrtod(wr); + memset(flowc, 0, wr->wr_len); + + flowc->op_to_nparams = htobe32(V_FW_WR_OP(FW_FLOWC_WR) | + V_FW_FLOWC_WR_NPARAMS(nparams)); + flowc->flowid_len16 = htonl(V_FW_WR_LEN16(howmany(flowclen, 16)) | + V_FW_WR_FLOWID(toep->tid)); + + flowc->mnemval[0].mnemonic = FW_FLOWC_MNEM_PFNVFN; + flowc->mnemval[0].val = htobe32(pfvf); + flowc->mnemval[1].mnemonic = FW_FLOWC_MNEM_CH; + flowc->mnemval[1].val = htobe32(pi->tx_chan); + flowc->mnemval[2].mnemonic = FW_FLOWC_MNEM_PORT; + flowc->mnemval[2].val = htobe32(pi->tx_chan); + flowc->mnemval[3].mnemonic = FW_FLOWC_MNEM_IQID; + flowc->mnemval[3].val = htobe32(toep->ofld_rxq->iq.abs_id); + if (ftxp) { + uint32_t sndbuf = min(ftxp->snd_space, sc->tt.sndbuf); + + flowc->mnemval[4].mnemonic = FW_FLOWC_MNEM_SNDNXT; + flowc->mnemval[4].val = htobe32(ftxp->snd_nxt); + flowc->mnemval[5].mnemonic = FW_FLOWC_MNEM_RCVNXT; + flowc->mnemval[5].val = htobe32(ftxp->rcv_nxt); + flowc->mnemval[6].mnemonic = FW_FLOWC_MNEM_SNDBUF; + flowc->mnemval[6].val = htobe32(sndbuf); + flowc->mnemval[7].mnemonic = FW_FLOWC_MNEM_MSS; + flowc->mnemval[7].val = htobe32(ftxp->mss); + } + + txsd->tx_credits = howmany(flowclen, 16); + txsd->plen = 0; + KASSERT(toep->tx_credits >= txsd->tx_credits && toep->txsd_avail > 0, + ("%s: not enough credits (%d)", __func__, toep->tx_credits)); + toep->tx_credits -= txsd->tx_credits; + if (__predict_false(++toep->txsd_pidx == toep->txsd_total)) + toep->txsd_pidx = 0; + toep->txsd_avail--; + + toepcb_set_flag(toep, TPF_FLOWC_WR_SENT); + t4_wrq_tx(sc, wr); +} + +void +send_reset(struct adapter *sc, struct toepcb *toep, uint32_t snd_nxt) +{ + struct wrqe *wr; + struct cpl_abort_req *req; + int tid = toep->tid; + struct inpcb *inp = toep->inp; + struct tcpcb *tp = intotcpcb(inp); /* don't use if INP_DROPPED */ + + INP_WLOCK_ASSERT(inp); + + CTR6(KTR_CXGBE, "%s: tid %d (%s), toep_flags 0x%x, inp_flags 0x%x%s", + __func__, toep->tid, + inp->inp_flags & INP_DROPPED ? "inp dropped" : + tcpstates[tp->t_state], + toep->flags, inp->inp_flags, + toepcb_flag(toep, TPF_ABORT_SHUTDOWN) ? + " (abort already in progress)" : ""); + + if (toepcb_flag(toep, TPF_ABORT_SHUTDOWN)) + return; /* abort already in progress */ + + toepcb_set_flag(toep, TPF_ABORT_SHUTDOWN); + + KASSERT(toepcb_flag(toep, TPF_FLOWC_WR_SENT), + ("%s: flowc_wr not sent for tid %d.", __func__, tid)); + + wr = alloc_wrqe(sizeof(*req), toep->ofld_txq); + if (wr == NULL) { + /* XXX */ + panic("%s: allocation failure.", __func__); + } + req = wrtod(wr); + + INIT_TP_WR_MIT_CPL(req, CPL_ABORT_REQ, tid); + if (inp->inp_flags & INP_DROPPED) + req->rsvd0 = htobe32(snd_nxt); + else + req->rsvd0 = htobe32(tp->snd_nxt); + req->rsvd1 = !toepcb_flag(toep, TPF_TX_DATA_SENT); + req->cmd = CPL_ABORT_SEND_RST; + + /* + * XXX: What's the correct way to tell that the inp hasn't been detached + * from its socket? Should I even be flushing the snd buffer here? + */ + if ((inp->inp_flags & (INP_DROPPED | INP_TIMEWAIT)) == 0) { + struct socket *so = inp->inp_socket; + + if (so != NULL) /* because I'm not sure. See comment above */ + sbflush(&so->so_snd); + } + + t4_l2t_send(sc, wr, toep->l2te); +} + +/* + * Called when a connection is established to translate the TCP options + * reported by HW to FreeBSD's native format. + */ +static void +assign_rxopt(struct tcpcb *tp, unsigned int opt) +{ + struct toepcb *toep = tp->t_toe; + struct adapter *sc = td_adapter(toep->td); + + INP_LOCK_ASSERT(tp->t_inpcb); + + tp->t_maxseg = tp->t_maxopd = sc->params.mtus[G_TCPOPT_MSS(opt)] - 40; + + if (G_TCPOPT_TSTAMP(opt)) { + tp->t_flags |= TF_RCVD_TSTMP; /* timestamps ok */ + tp->ts_recent = 0; /* hmmm */ + tp->ts_recent_age = tcp_ts_getticks(); + tp->t_maxseg -= TCPOLEN_TSTAMP_APPA; + } + + if (G_TCPOPT_SACK(opt)) + tp->t_flags |= TF_SACK_PERMIT; /* should already be set */ + else + tp->t_flags &= ~TF_SACK_PERMIT; /* sack disallowed by peer */ + + if (G_TCPOPT_WSCALE_OK(opt)) + tp->t_flags |= TF_RCVD_SCALE; + + /* Doing window scaling? */ + if ((tp->t_flags & (TF_RCVD_SCALE | TF_REQ_SCALE)) == + (TF_RCVD_SCALE | TF_REQ_SCALE)) { + tp->rcv_scale = tp->request_r_scale; + tp->snd_scale = G_TCPOPT_SND_WSCALE(opt); + } +} + +/* + * Completes some final bits of initialization for just established connections + * and changes their state to TCPS_ESTABLISHED. + * + * The ISNs are from after the exchange of SYNs. i.e., the true ISN + 1. + */ +void +make_established(struct toepcb *toep, uint32_t snd_isn, uint32_t rcv_isn, + uint16_t opt) +{ + struct inpcb *inp = toep->inp; + struct socket *so = inp->inp_socket; + struct tcpcb *tp = intotcpcb(inp); + long bufsize; + uint32_t iss = be32toh(snd_isn) - 1; /* true ISS */ + uint32_t irs = be32toh(rcv_isn) - 1; /* true IRS */ + uint16_t tcpopt = be16toh(opt); + struct flowc_tx_params ftxp; + + INP_WLOCK_ASSERT(inp); + KASSERT(tp->t_state == TCPS_SYN_SENT || + tp->t_state == TCPS_SYN_RECEIVED, + ("%s: TCP state %s", __func__, tcpstates[tp->t_state])); + + CTR4(KTR_CXGBE, "%s: tid %d, toep %p, inp %p", + __func__, toep->tid, toep, inp); + + tp->t_state = TCPS_ESTABLISHED; + tp->t_starttime = ticks; + TCPSTAT_INC(tcps_connects); + + tp->irs = irs; + tcp_rcvseqinit(tp); + tp->rcv_wnd = toep->rx_credits << 10; + tp->rcv_adv += tp->rcv_wnd; + tp->last_ack_sent = tp->rcv_nxt; + + /* + * If we were unable to send all rx credits via opt0, save the remainder + * in rx_credits so that they can be handed over with the next credit + * update. + */ + SOCKBUF_LOCK(&so->so_rcv); + bufsize = select_rcv_wnd(so); + SOCKBUF_UNLOCK(&so->so_rcv); + toep->rx_credits = bufsize - tp->rcv_wnd; + + tp->iss = iss; + tcp_sendseqinit(tp); + tp->snd_una = iss + 1; + tp->snd_nxt = iss + 1; + tp->snd_max = iss + 1; + + assign_rxopt(tp, tcpopt); + + SOCKBUF_LOCK(&so->so_snd); + if (so->so_snd.sb_flags & SB_AUTOSIZE && V_tcp_do_autosndbuf) + bufsize = V_tcp_autosndbuf_max; + else + bufsize = sbspace(&so->so_snd); + SOCKBUF_UNLOCK(&so->so_snd); + + ftxp.snd_nxt = tp->snd_nxt; + ftxp.rcv_nxt = tp->rcv_nxt; + ftxp.snd_space = bufsize; + ftxp.mss = tp->t_maxseg; + send_flowc_wr(toep, &ftxp); + + soisconnected(so); +} + +static int +send_rx_credits(struct adapter *sc, struct toepcb *toep, uint32_t credits) +{ + struct wrqe *wr; + struct cpl_rx_data_ack *req; + uint32_t dack = F_RX_DACK_CHANGE | V_RX_DACK_MODE(1); + + wr = alloc_wrqe(sizeof(*req), toep->ctrlq); + if (wr == NULL) + return (0); + req = wrtod(wr); + + INIT_TP_WR_MIT_CPL(req, CPL_RX_DATA_ACK, toep->tid); + req->credit_dack = htobe32(dack | V_RX_CREDITS(credits)); + + t4_wrq_tx(sc, wr); + return (credits); +} + +void +t4_rcvd(struct toedev *tod, struct tcpcb *tp) +{ + struct adapter *sc = tod->tod_softc; + struct inpcb *inp = tp->t_inpcb; + struct socket *so = inp->inp_socket; + struct sockbuf *so_rcv = &so->so_rcv; + struct toepcb *toep = tp->t_toe; + int must_send; + + INP_WLOCK_ASSERT(inp); + + SOCKBUF_LOCK(so_rcv); + KASSERT(toep->enqueued >= so_rcv->sb_cc, + ("%s: so_rcv->sb_cc > enqueued", __func__)); + toep->rx_credits += toep->enqueued - so_rcv->sb_cc; + toep->enqueued = so_rcv->sb_cc; + SOCKBUF_UNLOCK(so_rcv); + + must_send = toep->rx_credits + 16384 >= tp->rcv_wnd; + if (must_send || toep->rx_credits >= 15 * 1024) { + int credits; + + credits = send_rx_credits(sc, toep, toep->rx_credits); + toep->rx_credits -= credits; + tp->rcv_wnd += credits; + tp->rcv_adv += credits; + } +} + +/* + * Close a connection by sending a CPL_CLOSE_CON_REQ message. + */ +static int +close_conn(struct adapter *sc, struct toepcb *toep) +{ + struct wrqe *wr; + struct cpl_close_con_req *req; + unsigned int tid = toep->tid; + + CTR3(KTR_CXGBE, "%s: tid %u%s", __func__, toep->tid, + toepcb_flag(toep, TPF_FIN_SENT) ? ", IGNORED" : ""); + + if (toepcb_flag(toep, TPF_FIN_SENT)) + return (0); + + KASSERT(toepcb_flag(toep, TPF_FLOWC_WR_SENT), + ("%s: flowc_wr not sent for tid %u.", __func__, tid)); + + wr = alloc_wrqe(sizeof(*req), toep->ofld_txq); + if (wr == NULL) { + /* XXX */ + panic("%s: allocation failure.", __func__); + } + req = wrtod(wr); + + req->wr.wr_hi = htonl(V_FW_WR_OP(FW_TP_WR) | + V_FW_WR_IMMDLEN(sizeof(*req) - sizeof(req->wr))); + req->wr.wr_mid = htonl(V_FW_WR_LEN16(howmany(sizeof(*req), 16)) | + V_FW_WR_FLOWID(tid)); + req->wr.wr_lo = cpu_to_be64(0); + OPCODE_TID(req) = htonl(MK_OPCODE_TID(CPL_CLOSE_CON_REQ, tid)); + req->rsvd = 0; + + toepcb_set_flag(toep, TPF_FIN_SENT); + toepcb_clr_flag(toep, TPF_SEND_FIN); + t4_l2t_send(sc, wr, toep->l2te); + + return (0); +} + +#define MAX_OFLD_TX_CREDITS (SGE_MAX_WR_LEN / 16) +#define MIN_OFLD_TX_CREDITS (howmany(sizeof(struct fw_ofld_tx_data_wr) + 1, 16)) + +/* Maximum amount of immediate data we could stuff in a WR */ +static inline int +max_imm_payload(int tx_credits) +{ + const int n = 2; /* Use only up to 2 desc for imm. data WR */ + + KASSERT(tx_credits >= 0 && + tx_credits <= MAX_OFLD_TX_CREDITS, + ("%s: %d credits", __func__, tx_credits)); + + if (tx_credits < MIN_OFLD_TX_CREDITS) + return (0); + + if (tx_credits >= (n * EQ_ESIZE) / 16) + return ((n * EQ_ESIZE) - sizeof(struct fw_ofld_tx_data_wr)); + else + return (tx_credits * 16 - sizeof(struct fw_ofld_tx_data_wr)); +} + +/* Maximum number of SGL entries we could stuff in a WR */ +static inline int +max_dsgl_nsegs(int tx_credits) +{ + int nseg = 1; /* ulptx_sgl has room for 1, rest ulp_tx_sge_pair */ + int sge_pair_credits = tx_credits - MIN_OFLD_TX_CREDITS; + + KASSERT(tx_credits >= 0 && + tx_credits <= MAX_OFLD_TX_CREDITS, + ("%s: %d credits", __func__, tx_credits)); + + if (tx_credits < MIN_OFLD_TX_CREDITS) + return (0); + + nseg += 2 * (sge_pair_credits * 16 / 24); + if ((sge_pair_credits * 16) % 24 == 16) + nseg++; + + return (nseg); +} + +static inline void +write_tx_wr(void *dst, struct toepcb *toep, unsigned int immdlen, + unsigned int plen, uint8_t credits, int more_to_come) +{ + struct fw_ofld_tx_data_wr *txwr = dst; + int shove = !more_to_come; + int compl = 1; + + /* + * We always request completion notifications from the firmware. The + * only exception is when we know we'll get more data to send shortly + * and that we'll have some tx credits remaining to transmit that data. + */ + if (more_to_come && toep->tx_credits - credits >= MIN_OFLD_TX_CREDITS) + compl = 0; + + txwr->op_to_immdlen = htobe32(V_WR_OP(FW_OFLD_TX_DATA_WR) | + V_FW_WR_COMPL(compl) | V_FW_WR_IMMDLEN(immdlen)); + txwr->flowid_len16 = htobe32(V_FW_WR_FLOWID(toep->tid) | + V_FW_WR_LEN16(credits)); + txwr->tunnel_to_proxy = + htobe32(V_FW_OFLD_TX_DATA_WR_ULPMODE(toep->ulp_mode) | + V_FW_OFLD_TX_DATA_WR_URGENT(0) | /* XXX */ + V_FW_OFLD_TX_DATA_WR_SHOVE(shove)); + txwr->plen = htobe32(plen); +} + +/* + * Generate a DSGL from a starting mbuf. The total number of segments and the + * maximum segments in any one mbuf are provided. + */ +static void +write_tx_sgl(void *dst, struct mbuf *start, struct mbuf *stop, int nsegs, int n) +{ + struct mbuf *m; + struct ulptx_sgl *usgl = dst; + int i, j, rc; + struct sglist sg; + struct sglist_seg segs[n]; + + KASSERT(nsegs > 0, ("%s: nsegs 0", __func__)); + + sglist_init(&sg, n, segs); + usgl->cmd_nsge = htobe32(V_ULPTX_CMD(ULP_TX_SC_DSGL) | + V_ULPTX_NSGE(nsegs)); + + i = -1; + for (m = start; m != stop; m = m->m_next) { + rc = sglist_append(&sg, mtod(m, void *), m->m_len); + if (__predict_false(rc != 0)) + panic("%s: sglist_append %d", __func__, rc); + + for (j = 0; j < sg.sg_nseg; i++, j++) { + if (i < 0) { + usgl->len0 = htobe32(segs[j].ss_len); + usgl->addr0 = htobe64(segs[j].ss_paddr); + } else { + usgl->sge[i / 2].len[i & 1] = + htobe32(segs[j].ss_len); + usgl->sge[i / 2].addr[i & 1] = + htobe64(segs[j].ss_paddr); + } +#ifdef INVARIANTS + nsegs--; +#endif + } + sglist_reset(&sg); + } + if (i & 1) + usgl->sge[i / 2].len[1] = htobe32(0); + KASSERT(nsegs == 0, ("%s: nsegs %d, start %p, stop %p", + __func__, nsegs, start, stop)); +} + +/* + * Max number of SGL entries an offload tx work request can have. This is 41 + * (1 + 40) for a full 512B work request. + * fw_ofld_tx_data_wr(16B) + ulptx_sgl(16B, 1) + ulptx_sge_pair(480B, 40) + */ +#define OFLD_SGL_LEN (41) + +/* + * Send data and/or a FIN to the peer. + * + * The socket's so_snd buffer consists of a stream of data starting with sb_mb + * and linked together with m_next. sb_sndptr, if set, is the last mbuf that + * was transmitted. + */ +static void +t4_push_frames(struct adapter *sc, struct toepcb *toep) +{ + struct mbuf *sndptr, *m, *sb_sndptr; + struct fw_ofld_tx_data_wr *txwr; + struct wrqe *wr; + unsigned int plen, nsegs, credits, max_imm, max_nsegs, max_nsegs_1mbuf; + struct inpcb *inp = toep->inp; + struct tcpcb *tp = intotcpcb(inp); + struct socket *so = inp->inp_socket; + struct sockbuf *sb = &so->so_snd; + int tx_credits; + struct ofld_tx_sdesc *txsd = &toep->txsd[toep->txsd_pidx]; + + INP_WLOCK_ASSERT(inp); + KASSERT(toepcb_flag(toep, TPF_FLOWC_WR_SENT), + ("%s: flowc_wr not sent for tid %u.", __func__, toep->tid)); + + if (toep->ulp_mode != ULP_MODE_NONE) + CXGBE_UNIMPLEMENTED("ulp_mode"); + + /* + * This function doesn't resume by itself. Someone else must clear the + * flag and call this function. + */ + if (__predict_false(toepcb_flag(toep, TPF_TX_SUSPENDED))) + return; + + do { + tx_credits = min(toep->tx_credits, MAX_OFLD_TX_CREDITS); + max_imm = max_imm_payload(tx_credits); + max_nsegs = max_dsgl_nsegs(tx_credits); + + SOCKBUF_LOCK(sb); + sb_sndptr = sb->sb_sndptr; + sndptr = sb_sndptr ? sb_sndptr->m_next : sb->sb_mb; + plen = 0; + nsegs = 0; + max_nsegs_1mbuf = 0; /* max # of SGL segments in any one mbuf */ + for (m = sndptr; m != NULL; m = m->m_next) { + int n = sglist_count(mtod(m, void *), m->m_len); + + nsegs += n; + plen += m->m_len; + + /* This mbuf sent us _over_ the nsegs limit, back out */ + if (plen > max_imm && nsegs > max_nsegs) { + nsegs -= n; + plen -= m->m_len; + if (plen == 0) { + /* Too few credits */ + toepcb_set_flag(toep, TPF_TX_SUSPENDED); + SOCKBUF_UNLOCK(sb); + return; + } + break; + } + + if (max_nsegs_1mbuf < n) + max_nsegs_1mbuf = n; + sb_sndptr = m; /* new sb->sb_sndptr if all goes well */ + + /* This mbuf put us right at the max_nsegs limit */ + if (plen > max_imm && nsegs == max_nsegs) { + m = m->m_next; + break; + } + } + + if (sb->sb_flags & SB_AUTOSIZE && + V_tcp_do_autosndbuf && + sb->sb_hiwat < V_tcp_autosndbuf_max && + sbspace(sb) < sb->sb_hiwat / 8 * 7) { + int newsize = min(sb->sb_hiwat + V_tcp_autosndbuf_inc, + V_tcp_autosndbuf_max); + + if (!sbreserve_locked(sb, newsize, so, NULL)) + sb->sb_flags &= ~SB_AUTOSIZE; + else { + sowwakeup_locked(so); /* room available */ + SOCKBUF_UNLOCK_ASSERT(sb); + goto unlocked; + } + } + SOCKBUF_UNLOCK(sb); +unlocked: + + /* nothing to send */ + if (plen == 0) { + KASSERT(m == NULL, + ("%s: nothing to send, but m != NULL", __func__)); + break; + } + + if (__predict_false(toepcb_flag(toep, TPF_FIN_SENT))) + panic("%s: excess tx.", __func__); + + if (plen <= max_imm) { + + /* Immediate data tx */ + + wr = alloc_wrqe(roundup(sizeof(*txwr) + plen, 16), + toep->ofld_txq); + if (wr == NULL) { + /* XXX: how will we recover from this? */ + toepcb_set_flag(toep, TPF_TX_SUSPENDED); + return; + } + txwr = wrtod(wr); + credits = howmany(wr->wr_len, 16); + write_tx_wr(txwr, toep, plen, plen, credits, + tp->t_flags & TF_MORETOCOME); + m_copydata(sndptr, 0, plen, (void *)(txwr + 1)); + } else { + int wr_len; + + /* DSGL tx */ + + wr_len = sizeof(*txwr) + sizeof(struct ulptx_sgl) + + ((3 * (nsegs - 1)) / 2 + ((nsegs - 1) & 1)) * 8; + wr = alloc_wrqe(roundup(wr_len, 16), toep->ofld_txq); + if (wr == NULL) { + /* XXX: how will we recover from this? */ + toepcb_set_flag(toep, TPF_TX_SUSPENDED); + return; + } + txwr = wrtod(wr); + credits = howmany(wr_len, 16); + write_tx_wr(txwr, toep, 0, plen, credits, + tp->t_flags & TF_MORETOCOME); + write_tx_sgl(txwr + 1, sndptr, m, nsegs, + max_nsegs_1mbuf); + if (wr_len & 0xf) { + uint64_t *pad = (uint64_t *) + ((uintptr_t)txwr + wr_len); + *pad = 0; + } + } + + KASSERT(toep->tx_credits >= credits, + ("%s: not enough credits", __func__)); + + toep->tx_credits -= credits; + + tp->snd_nxt += plen; + tp->snd_max += plen; + + SOCKBUF_LOCK(sb); + KASSERT(sb_sndptr, ("%s: sb_sndptr is NULL", __func__)); + sb->sb_sndptr = sb_sndptr; + SOCKBUF_UNLOCK(sb); + + toepcb_set_flag(toep, TPF_TX_DATA_SENT); + + KASSERT(toep->txsd_avail > 0, ("%s: no txsd", __func__)); + txsd->plen = plen; + txsd->tx_credits = credits; + txsd++; + if (__predict_false(++toep->txsd_pidx == toep->txsd_total)) { + toep->txsd_pidx = 0; + txsd = &toep->txsd[0]; + } + toep->txsd_avail--; + + t4_l2t_send(sc, wr, toep->l2te); + } while (m != NULL); + + /* Send a FIN if requested, but only if there's no more data to send */ + if (m == NULL && toepcb_flag(toep, TPF_SEND_FIN)) + close_conn(sc, toep); +} + +int +t4_tod_output(struct toedev *tod, struct tcpcb *tp) +{ + struct adapter *sc = tod->tod_softc; +#ifdef INVARIANTS + struct inpcb *inp = tp->t_inpcb; +#endif + struct toepcb *toep = tp->t_toe; + + INP_WLOCK_ASSERT(inp); + KASSERT((inp->inp_flags & INP_DROPPED) == 0, + ("%s: inp %p dropped.", __func__, inp)); + KASSERT(toep != NULL, ("%s: toep is NULL", __func__)); + + t4_push_frames(sc, toep); + + return (0); +} + +int +t4_send_fin(struct toedev *tod, struct tcpcb *tp) +{ + struct adapter *sc = tod->tod_softc; +#ifdef INVARIANTS + struct inpcb *inp = tp->t_inpcb; +#endif + struct toepcb *toep = tp->t_toe; + + INP_WLOCK_ASSERT(inp); + KASSERT((inp->inp_flags & INP_DROPPED) == 0, + ("%s: inp %p dropped.", __func__, inp)); + KASSERT(toep != NULL, ("%s: toep is NULL", __func__)); + + toepcb_set_flag(toep, TPF_SEND_FIN); + t4_push_frames(sc, toep); + + return (0); +} + +int +t4_send_rst(struct toedev *tod, struct tcpcb *tp) +{ + struct adapter *sc = tod->tod_softc; +#if defined(INVARIANTS) + struct inpcb *inp = tp->t_inpcb; +#endif + struct toepcb *toep = tp->t_toe; + + INP_WLOCK_ASSERT(inp); + KASSERT((inp->inp_flags & INP_DROPPED) == 0, + ("%s: inp %p dropped.", __func__, inp)); + KASSERT(toep != NULL, ("%s: toep is NULL", __func__)); + + /* hmmmm */ + KASSERT(toepcb_flag(toep, TPF_FLOWC_WR_SENT), + ("%s: flowc for tid %u [%s] not sent already", + __func__, toep->tid, tcpstates[tp->t_state])); + + send_reset(sc, toep, 0); + return (0); +} + +/* + * Peer has sent us a FIN. + */ +static int +do_peer_close(struct sge_iq *iq, const struct rss_header *rss, struct mbuf *m) +{ + struct adapter *sc = iq->adapter; + const struct cpl_peer_close *cpl = (const void *)(rss + 1); + unsigned int tid = GET_TID(cpl); + struct toepcb *toep = lookup_tid(sc, tid); + struct inpcb *inp = toep->inp; + struct tcpcb *tp = NULL; + struct socket *so = NULL; +#ifdef INVARIANTS + unsigned int opcode = G_CPL_OPCODE(be32toh(OPCODE_TID(cpl))); +#endif + + KASSERT(opcode == CPL_PEER_CLOSE, + ("%s: unexpected opcode 0x%x", __func__, opcode)); + KASSERT(m == NULL, ("%s: wasn't expecting payload", __func__)); + KASSERT(toep->tid == tid, ("%s: toep tid mismatch", __func__)); + + INP_INFO_WLOCK(&V_tcbinfo); + INP_WLOCK(inp); + tp = intotcpcb(inp); + + CTR5(KTR_CXGBE, "%s: tid %u (%s), toep_flags 0x%x, inp %p", __func__, + tid, tp ? tcpstates[tp->t_state] : "no tp", toep->flags, inp); + + if (toepcb_flag(toep, TPF_ABORT_SHUTDOWN)) + goto done; + + so = inp->inp_socket; + + socantrcvmore(so); + tp->rcv_nxt++; /* FIN */ + KASSERT(tp->rcv_nxt == be32toh(cpl->rcv_nxt), + ("%s: rcv_nxt mismatch: %u %u", __func__, tp->rcv_nxt, + be32toh(cpl->rcv_nxt))); + + switch (tp->t_state) { + case TCPS_SYN_RECEIVED: + tp->t_starttime = ticks; + /* FALLTHROUGH */ + + case TCPS_ESTABLISHED: + tp->t_state = TCPS_CLOSE_WAIT; + break; + + case TCPS_FIN_WAIT_1: + tp->t_state = TCPS_CLOSING; + break; + + case TCPS_FIN_WAIT_2: + tcp_twstart(tp); + INP_UNLOCK_ASSERT(inp); /* safe, we have a ref on the inp */ + INP_INFO_WUNLOCK(&V_tcbinfo); + + INP_WLOCK(inp); + final_cpl_received(toep); + return (0); + + default: + log(LOG_ERR, "%s: TID %u received CPL_PEER_CLOSE in state %d\n", + __func__, tid, tp->t_state); + } +done: + INP_WUNLOCK(inp); + INP_INFO_WUNLOCK(&V_tcbinfo); + return (0); +} + +/* + * Peer has ACK'd our FIN. + */ +static int +do_close_con_rpl(struct sge_iq *iq, const struct rss_header *rss, + struct mbuf *m) +{ + struct adapter *sc = iq->adapter; + const struct cpl_close_con_rpl *cpl = (const void *)(rss + 1); + unsigned int tid = GET_TID(cpl); + struct toepcb *toep = lookup_tid(sc, tid); + struct inpcb *inp = toep->inp; + struct tcpcb *tp = NULL; + struct socket *so = NULL; +#ifdef INVARIANTS + unsigned int opcode = G_CPL_OPCODE(be32toh(OPCODE_TID(cpl))); +#endif + + KASSERT(opcode == CPL_CLOSE_CON_RPL, + ("%s: unexpected opcode 0x%x", __func__, opcode)); + KASSERT(m == NULL, ("%s: wasn't expecting payload", __func__)); + KASSERT(toep->tid == tid, ("%s: toep tid mismatch", __func__)); + + INP_INFO_WLOCK(&V_tcbinfo); + INP_WLOCK(inp); + tp = intotcpcb(inp); + + CTR4(KTR_CXGBE, "%s: tid %u (%s), toep_flags 0x%x", + __func__, tid, tp ? tcpstates[tp->t_state] : "no tp", toep->flags); + + if (toepcb_flag(toep, TPF_ABORT_SHUTDOWN)) + goto done; + + so = inp->inp_socket; + tp->snd_una = be32toh(cpl->snd_nxt) - 1; /* exclude FIN */ + + switch (tp->t_state) { + case TCPS_CLOSING: /* see TCPS_FIN_WAIT_2 in do_peer_close too */ + tcp_twstart(tp); +release: + INP_UNLOCK_ASSERT(inp); /* safe, we have a ref on the inp */ + INP_INFO_WUNLOCK(&V_tcbinfo); + + INP_WLOCK(inp); + final_cpl_received(toep); /* no more CPLs expected */ + + return (0); + case TCPS_LAST_ACK: + if (tcp_close(tp)) + INP_WUNLOCK(inp); + goto release; + + case TCPS_FIN_WAIT_1: + if (so->so_rcv.sb_state & SBS_CANTRCVMORE) + soisdisconnected(so); + tp->t_state = TCPS_FIN_WAIT_2; + break; + + default: + log(LOG_ERR, + "%s: TID %u received CPL_CLOSE_CON_RPL in state %s\n", + __func__, tid, tcpstates[tp->t_state]); + } +done: + INP_WUNLOCK(inp); + INP_INFO_WUNLOCK(&V_tcbinfo); + return (0); +} + +void +send_abort_rpl(struct adapter *sc, struct sge_wrq *ofld_txq, int tid, + int rst_status) +{ + struct wrqe *wr; + struct cpl_abort_rpl *cpl; + + wr = alloc_wrqe(sizeof(*cpl), ofld_txq); + if (wr == NULL) { + /* XXX */ + panic("%s: allocation failure.", __func__); + } + cpl = wrtod(wr); + + INIT_TP_WR_MIT_CPL(cpl, CPL_ABORT_RPL, tid); + cpl->cmd = rst_status; + + t4_wrq_tx(sc, wr); +} + +static int +abort_status_to_errno(struct tcpcb *tp, unsigned int abort_reason) +{ + switch (abort_reason) { + case CPL_ERR_BAD_SYN: + case CPL_ERR_CONN_RESET: + return (tp->t_state == TCPS_CLOSE_WAIT ? EPIPE : ECONNRESET); + case CPL_ERR_XMIT_TIMEDOUT: + case CPL_ERR_PERSIST_TIMEDOUT: + case CPL_ERR_FINWAIT2_TIMEDOUT: + case CPL_ERR_KEEPALIVE_TIMEDOUT: + return (ETIMEDOUT); + default: + return (EIO); + } +} + +/* + * TCP RST from the peer, timeout, or some other such critical error. + */ +static int +do_abort_req(struct sge_iq *iq, const struct rss_header *rss, struct mbuf *m) +{ + struct adapter *sc = iq->adapter; + const struct cpl_abort_req_rss *cpl = (const void *)(rss + 1); + unsigned int tid = GET_TID(cpl); + struct toepcb *toep = lookup_tid(sc, tid); + struct sge_wrq *ofld_txq = toep->ofld_txq; + struct inpcb *inp; + struct tcpcb *tp; + struct socket *so; +#ifdef INVARIANTS + unsigned int opcode = G_CPL_OPCODE(be32toh(OPCODE_TID(cpl))); +#endif + + KASSERT(opcode == CPL_ABORT_REQ_RSS, + ("%s: unexpected opcode 0x%x", __func__, opcode)); + KASSERT(m == NULL, ("%s: wasn't expecting payload", __func__)); + + if (toepcb_flag(toep, TPF_SYNQE)) + return (do_abort_req_synqe(iq, rss, m)); + + KASSERT(toep->tid == tid, ("%s: toep tid mismatch", __func__)); + + if (cpl->status == CPL_ERR_RTX_NEG_ADVICE || + cpl->status == CPL_ERR_PERSIST_NEG_ADVICE) { + CTR4(KTR_CXGBE, "%s: negative advice %d for tid %d (0x%x)", + __func__, cpl->status, tid, toep->flags); + return (0); /* Ignore negative advice */ + } + + inp = toep->inp; + INP_INFO_WLOCK(&V_tcbinfo); /* for tcp_close */ + INP_WLOCK(inp); + + tp = intotcpcb(inp); + so = inp->inp_socket; + + CTR6(KTR_CXGBE, + "%s: tid %d (%s), toep_flags 0x%x, inp_flags 0x%x, status %d", + __func__, tid, tcpstates[tp->t_state], toep->flags, inp->inp_flags, + cpl->status); + + /* + * If we'd initiated an abort earlier the reply to it is responsible for + * cleaning up resources. Otherwise we tear everything down right here + * right now. We owe the T4 a CPL_ABORT_RPL no matter what. + */ + if (toepcb_flag(toep, TPF_ABORT_SHUTDOWN)) { + INP_WUNLOCK(inp); + goto done; + } + toepcb_set_flag(toep, TPF_ABORT_SHUTDOWN); + + so_error_set(so, abort_status_to_errno(tp, cpl->status)); + tp = tcp_close(tp); + if (tp == NULL) + INP_WLOCK(inp); /* re-acquire */ + + final_cpl_received(toep); +done: + INP_INFO_WUNLOCK(&V_tcbinfo); + send_abort_rpl(sc, ofld_txq, tid, CPL_ABORT_NO_RST); + return (0); +} + +/* + * Reply to the CPL_ABORT_REQ (send_reset) + */ +static int +do_abort_rpl(struct sge_iq *iq, const struct rss_header *rss, struct mbuf *m) +{ + struct adapter *sc = iq->adapter; + const struct cpl_abort_rpl_rss *cpl = (const void *)(rss + 1); + unsigned int tid = GET_TID(cpl); + struct toepcb *toep = lookup_tid(sc, tid); + struct inpcb *inp = toep->inp; +#ifdef INVARIANTS + unsigned int opcode = G_CPL_OPCODE(be32toh(OPCODE_TID(cpl))); +#endif + + KASSERT(opcode == CPL_ABORT_RPL_RSS, + ("%s: unexpected opcode 0x%x", __func__, opcode)); + KASSERT(m == NULL, ("%s: wasn't expecting payload", __func__)); + + if (toepcb_flag(toep, TPF_SYNQE)) + return (do_abort_rpl_synqe(iq, rss, m)); + + KASSERT(toep->tid == tid, ("%s: toep tid mismatch", __func__)); + + CTR5(KTR_CXGBE, "%s: tid %u, toep %p, inp %p, status %d", + __func__, tid, toep, inp, cpl->status); + + KASSERT(toepcb_flag(toep, TPF_ABORT_SHUTDOWN), + ("%s: wasn't expecting abort reply", __func__)); + + INP_WLOCK(inp); + final_cpl_received(toep); + + return (0); +} + +static int +do_rx_data(struct sge_iq *iq, const struct rss_header *rss, struct mbuf *m) +{ + struct adapter *sc = iq->adapter; + const struct cpl_rx_data *cpl = mtod(m, const void *); + unsigned int tid = GET_TID(cpl); + struct toepcb *toep = lookup_tid(sc, tid); + struct inpcb *inp = toep->inp; + struct tcpcb *tp; + struct socket *so; + struct sockbuf *so_rcv; + + if (__predict_false(toepcb_flag(toep, TPF_SYNQE))) { + /* + * do_pass_establish failed and must be attempting to abort the + * synqe's tid. Meanwhile, the T4 has sent us data for such a + * connection. + */ + KASSERT(toepcb_flag(toep, TPF_ABORT_SHUTDOWN), + ("%s: synqe and tid isn't being aborted.", __func__)); + m_freem(m); + return (0); + } + + KASSERT(toep->tid == tid, ("%s: toep tid mismatch", __func__)); + + /* strip off CPL header */ + m_adj(m, sizeof(*cpl)); + + INP_WLOCK(inp); + if (inp->inp_flags & (INP_DROPPED | INP_TIMEWAIT)) { + CTR4(KTR_CXGBE, "%s: tid %u, rx (%d bytes), inp_flags 0x%x", + __func__, tid, m->m_pkthdr.len, inp->inp_flags); + INP_WUNLOCK(inp); + m_freem(m); + return (0); + } + + tp = intotcpcb(inp); + +#ifdef INVARIANTS + if (__predict_false(tp->rcv_nxt != be32toh(cpl->seq))) { + log(LOG_ERR, + "%s: unexpected seq# %x for TID %u, rcv_nxt %x\n", + __func__, be32toh(cpl->seq), toep->tid, tp->rcv_nxt); + } +#endif + + tp->rcv_nxt += m->m_pkthdr.len; + KASSERT(tp->rcv_wnd >= m->m_pkthdr.len, + ("%s: negative window size", __func__)); + tp->rcv_wnd -= m->m_pkthdr.len; + tp->t_rcvtime = ticks; + + so = inp_inpcbtosocket(inp); + so_rcv = &so->so_rcv; + SOCKBUF_LOCK(so_rcv); + + if (__predict_false(so_rcv->sb_state & SBS_CANTRCVMORE)) { + CTR3(KTR_CXGBE, "%s: tid %u, excess rx (%d bytes)", + __func__, tid, m->m_pkthdr.len); + m_freem(m); + SOCKBUF_UNLOCK(so_rcv); + INP_WUNLOCK(inp); + + INP_INFO_WLOCK(&V_tcbinfo); + INP_WLOCK(inp); + tp = tcp_drop(tp, ECONNRESET); + if (tp) + INP_WUNLOCK(inp); + INP_INFO_WUNLOCK(&V_tcbinfo); + + return (0); + } + + /* receive buffer autosize */ + if (so_rcv->sb_flags & SB_AUTOSIZE && + V_tcp_do_autorcvbuf && + so_rcv->sb_hiwat < V_tcp_autorcvbuf_max && + m->m_pkthdr.len > (sbspace(so_rcv) / 8 * 7)) { + unsigned int hiwat = so_rcv->sb_hiwat; + unsigned int newsize = min(hiwat + V_tcp_autorcvbuf_inc, + V_tcp_autorcvbuf_max); + + if (!sbreserve_locked(so_rcv, newsize, so, NULL)) + so_rcv->sb_flags &= ~SB_AUTOSIZE; + else + toep->rx_credits += newsize - hiwat; + } + toep->enqueued += m->m_pkthdr.len; + sbappendstream_locked(so_rcv, m); + sorwakeup_locked(so); + SOCKBUF_UNLOCK_ASSERT(so_rcv); + + INP_WUNLOCK(inp); + return (0); +} + +#define S_CPL_FW4_ACK_OPCODE 24 +#define M_CPL_FW4_ACK_OPCODE 0xff +#define V_CPL_FW4_ACK_OPCODE(x) ((x) << S_CPL_FW4_ACK_OPCODE) +#define G_CPL_FW4_ACK_OPCODE(x) \ + (((x) >> S_CPL_FW4_ACK_OPCODE) & M_CPL_FW4_ACK_OPCODE) + +#define S_CPL_FW4_ACK_FLOWID 0 +#define M_CPL_FW4_ACK_FLOWID 0xffffff +#define V_CPL_FW4_ACK_FLOWID(x) ((x) << S_CPL_FW4_ACK_FLOWID) +#define G_CPL_FW4_ACK_FLOWID(x) \ + (((x) >> S_CPL_FW4_ACK_FLOWID) & M_CPL_FW4_ACK_FLOWID) + +#define S_CPL_FW4_ACK_CR 24 +#define M_CPL_FW4_ACK_CR 0xff +#define V_CPL_FW4_ACK_CR(x) ((x) << S_CPL_FW4_ACK_CR) +#define G_CPL_FW4_ACK_CR(x) (((x) >> S_CPL_FW4_ACK_CR) & M_CPL_FW4_ACK_CR) + +#define S_CPL_FW4_ACK_SEQVAL 0 +#define M_CPL_FW4_ACK_SEQVAL 0x1 +#define V_CPL_FW4_ACK_SEQVAL(x) ((x) << S_CPL_FW4_ACK_SEQVAL) +#define G_CPL_FW4_ACK_SEQVAL(x) \ + (((x) >> S_CPL_FW4_ACK_SEQVAL) & M_CPL_FW4_ACK_SEQVAL) +#define F_CPL_FW4_ACK_SEQVAL V_CPL_FW4_ACK_SEQVAL(1U) + +static int +do_fw4_ack(struct sge_iq *iq, const struct rss_header *rss, struct mbuf *m) +{ + struct adapter *sc = iq->adapter; + const struct cpl_fw4_ack *cpl = (const void *)(rss + 1); + unsigned int tid = G_CPL_FW4_ACK_FLOWID(be32toh(OPCODE_TID(cpl))); + struct toepcb *toep = lookup_tid(sc, tid); + struct inpcb *inp; + struct tcpcb *tp; + struct socket *so; + uint8_t credits = cpl->credits; + struct ofld_tx_sdesc *txsd; + int plen; +#ifdef INVARIANTS + unsigned int opcode = G_CPL_FW4_ACK_OPCODE(be32toh(OPCODE_TID(cpl))); +#endif + + /* + * Very unusual case: we'd sent a flowc + abort_req for a synq entry and + * now this comes back carrying the credits for the flowc. + */ + if (__predict_false(toepcb_flag(toep, TPF_SYNQE))) { + KASSERT(toepcb_flag(toep, TPF_ABORT_SHUTDOWN), + ("%s: credits for a synq entry %p", __func__, toep)); + return (0); + } + + inp = toep->inp; + + KASSERT(opcode == CPL_FW4_ACK, + ("%s: unexpected opcode 0x%x", __func__, opcode)); + KASSERT(m == NULL, ("%s: wasn't expecting payload", __func__)); + KASSERT(toep->tid == tid, ("%s: toep tid mismatch", __func__)); + + INP_WLOCK(inp); + + if (__predict_false(toepcb_flag(toep, TPF_ABORT_SHUTDOWN))) { + INP_WUNLOCK(inp); + return (0); + } + + KASSERT((inp->inp_flags & (INP_TIMEWAIT | INP_DROPPED)) == 0, + ("%s: inp_flags 0x%x", __func__, inp->inp_flags)); + + tp = intotcpcb(inp); + + if (cpl->seq_vld) { + tcp_seq snd_una = be32toh(cpl->snd_una); + +#ifdef INVARIANTS + if (__predict_false(SEQ_LT(snd_una, tp->snd_una))) { + log(LOG_ERR, + "%s: unexpected seq# %x for TID %u, snd_una %x\n", + __func__, snd_una, toep->tid, tp->snd_una); + } +#endif + + if (tp->snd_una != snd_una) { + tp->snd_una = snd_una; + tp->ts_recent_age = tcp_ts_getticks(); + } + } + + so = inp->inp_socket; + txsd = &toep->txsd[toep->txsd_cidx]; + plen = 0; + while (credits) { + KASSERT(credits >= txsd->tx_credits, + ("%s: too many (or partial) credits", __func__)); + credits -= txsd->tx_credits; + toep->tx_credits += txsd->tx_credits; + plen += txsd->plen; + txsd++; + toep->txsd_avail++; + KASSERT(toep->txsd_avail <= toep->txsd_total, + ("%s: txsd avail > total", __func__)); + if (__predict_false(++toep->txsd_cidx == toep->txsd_total)) { + txsd = &toep->txsd[0]; + toep->txsd_cidx = 0; + } + } + + if (plen > 0) { + struct sockbuf *sb = &so->so_snd; + + SOCKBUF_LOCK(sb); + sbdrop_locked(sb, plen); + sowwakeup_locked(so); + SOCKBUF_UNLOCK_ASSERT(sb); + } + + /* XXX */ + if ((toepcb_flag(toep, TPF_TX_SUSPENDED) && + toep->tx_credits >= MIN_OFLD_TX_CREDITS) || + toep->tx_credits == toep->txsd_total * + howmany((sizeof(struct fw_ofld_tx_data_wr) + 1), 16)) { + toepcb_clr_flag(toep, TPF_TX_SUSPENDED); + t4_push_frames(sc, toep); + } + INP_WUNLOCK(inp); + + return (0); +} + +void +t4_init_cpl_io_handlers(struct adapter *sc) +{ + + t4_register_cpl_handler(sc, CPL_PEER_CLOSE, do_peer_close); + t4_register_cpl_handler(sc, CPL_CLOSE_CON_RPL, do_close_con_rpl); + t4_register_cpl_handler(sc, CPL_ABORT_REQ_RSS, do_abort_req); + t4_register_cpl_handler(sc, CPL_ABORT_RPL_RSS, do_abort_rpl); + t4_register_cpl_handler(sc, CPL_RX_DATA, do_rx_data); + t4_register_cpl_handler(sc, CPL_FW4_ACK, do_fw4_ack); +} +#endif diff --git a/sys/dev/cxgbe/tom/t4_listen.c b/sys/dev/cxgbe/tom/t4_listen.c new file mode 100644 index 000000000000..895e57ad073c --- /dev/null +++ b/sys/dev/cxgbe/tom/t4_listen.c @@ -0,0 +1,1362 @@ +/*- + * Copyright (c) 2012 Chelsio Communications, Inc. + * All rights reserved. + * Written by: Navdeep Parhar + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include "opt_inet.h" + +#ifdef TCP_OFFLOAD +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#define TCPSTATES +#include +#include + +#include "common/common.h" +#include "common/t4_msg.h" +#include "common/t4_regs.h" +#include "tom/t4_tom_l2t.h" +#include "tom/t4_tom.h" + +/* stid services */ +static int alloc_stid(struct adapter *, void *); +static void *lookup_stid(struct adapter *, int); +static void free_stid(struct adapter *, int); + +/* lctx services */ +static struct listen_ctx *alloc_lctx(struct adapter *, struct inpcb *, + struct port_info *); +static int free_lctx(struct adapter *, struct listen_ctx *); +static void hold_lctx(struct listen_ctx *); +static void listen_hash_add(struct adapter *, struct listen_ctx *); +static struct listen_ctx *listen_hash_find(struct adapter *, struct inpcb *); +static struct listen_ctx *listen_hash_del(struct adapter *, struct inpcb *); +static struct inpcb *release_lctx(struct adapter *, struct listen_ctx *); + +static inline void save_qids_in_mbuf(struct mbuf *, struct port_info *); +static inline void get_qids_from_mbuf(struct mbuf *m, int *, int *); +static void send_reset_synqe(struct toedev *, struct synq_entry *); + +/* XXX: won't work for IPv6 */ +static int +alloc_stid(struct adapter *sc, void *ctx) +{ + struct tid_info *t = &sc->tids; + int stid = -1; + + mtx_lock(&t->stid_lock); + if (t->sfree) { + union serv_entry *p = t->sfree; + + stid = p - t->stid_tab; + stid += t->stid_base; + t->sfree = p->next; + p->data = ctx; + t->stids_in_use++; + } + mtx_unlock(&t->stid_lock); + return (stid); +} + +static void * +lookup_stid(struct adapter *sc, int stid) +{ + struct tid_info *t = &sc->tids; + + return (t->stid_tab[stid - t->stid_base].data); +} + +static void +free_stid(struct adapter *sc, int stid) +{ + struct tid_info *t = &sc->tids; + union serv_entry *p = &t->stid_tab[stid - t->stid_base]; + + mtx_lock(&t->stid_lock); + p->next = t->sfree; + t->sfree = p; + t->stids_in_use--; + mtx_unlock(&t->stid_lock); +} + +static struct listen_ctx * +alloc_lctx(struct adapter *sc, struct inpcb *inp, struct port_info *pi) +{ + struct listen_ctx *lctx; + + INP_WLOCK_ASSERT(inp); + + lctx = malloc(sizeof(struct listen_ctx), M_CXGBE, M_NOWAIT | M_ZERO); + if (lctx == NULL) + return (NULL); + + lctx->stid = alloc_stid(sc, lctx); + if (lctx->stid < 0) { + free(lctx, M_CXGBE); + return (NULL); + } + + lctx->ctrlq = &sc->sge.ctrlq[pi->port_id]; + lctx->ofld_rxq = &sc->sge.ofld_rxq[pi->first_ofld_rxq]; + refcount_init(&lctx->refcount, 1); + TAILQ_INIT(&lctx->synq); + + lctx->inp = inp; + in_pcbref(inp); + + return (lctx); +} + +/* Don't call this directly, use release_lctx instead */ +static int +free_lctx(struct adapter *sc, struct listen_ctx *lctx) +{ + struct inpcb *inp = lctx->inp; + + INP_WLOCK_ASSERT(inp); + KASSERT(lctx->refcount == 0, + ("%s: refcount %d", __func__, lctx->refcount)); + KASSERT(TAILQ_EMPTY(&lctx->synq), + ("%s: synq not empty.", __func__)); + KASSERT(lctx->stid >= 0, ("%s: bad stid %d.", __func__, lctx->stid)); + + CTR4(KTR_CXGBE, "%s: stid %u, lctx %p, inp %p", + __func__, lctx->stid, lctx, lctx->inp); + + free_stid(sc, lctx->stid); + free(lctx, M_CXGBE); + + return (in_pcbrele_wlocked(inp)); +} + +static void +hold_lctx(struct listen_ctx *lctx) +{ + + refcount_acquire(&lctx->refcount); +} + +static inline uint32_t +listen_hashfn(void *key, u_long mask) +{ + + return (fnv_32_buf(&key, sizeof(key), FNV1_32_INIT) & mask); +} + +/* + * Add a listen_ctx entry to the listen hash table. + */ +static void +listen_hash_add(struct adapter *sc, struct listen_ctx *lctx) +{ + struct tom_data *td = sc->tom_softc; + int bucket = listen_hashfn(lctx->inp, td->listen_mask); + + mtx_lock(&td->lctx_hash_lock); + LIST_INSERT_HEAD(&td->listen_hash[bucket], lctx, link); + td->lctx_count++; + mtx_unlock(&td->lctx_hash_lock); +} + +/* + * Look for the listening socket's context entry in the hash and return it. + */ +static struct listen_ctx * +listen_hash_find(struct adapter *sc, struct inpcb *inp) +{ + struct tom_data *td = sc->tom_softc; + int bucket = listen_hashfn(inp, td->listen_mask); + struct listen_ctx *lctx; + + mtx_lock(&td->lctx_hash_lock); + LIST_FOREACH(lctx, &td->listen_hash[bucket], link) { + if (lctx->inp == inp) + break; + } + mtx_unlock(&td->lctx_hash_lock); + + return (lctx); +} + +/* + * Removes the listen_ctx structure for inp from the hash and returns it. + */ +static struct listen_ctx * +listen_hash_del(struct adapter *sc, struct inpcb *inp) +{ + struct tom_data *td = sc->tom_softc; + int bucket = listen_hashfn(inp, td->listen_mask); + struct listen_ctx *lctx, *l; + + mtx_lock(&td->lctx_hash_lock); + LIST_FOREACH_SAFE(lctx, &td->listen_hash[bucket], link, l) { + if (lctx->inp == inp) { + LIST_REMOVE(lctx, link); + td->lctx_count--; + break; + } + } + mtx_unlock(&td->lctx_hash_lock); + + return (lctx); +} + +/* + * Releases a hold on the lctx. Must be called with the listening socket's inp + * locked. The inp may be freed by this function and it returns NULL to + * indicate this. + */ +static struct inpcb * +release_lctx(struct adapter *sc, struct listen_ctx *lctx) +{ + struct inpcb *inp = lctx->inp; + int inp_freed = 0; + + INP_WLOCK_ASSERT(inp); + if (refcount_release(&lctx->refcount)) + inp_freed = free_lctx(sc, lctx); + + return (inp_freed ? NULL : inp); +} + +static void +send_reset_synqe(struct toedev *tod, struct synq_entry *synqe) +{ + struct adapter *sc = tod->tod_softc; + struct mbuf *m = synqe->syn; + struct ifnet *ifp = m->m_pkthdr.rcvif; + struct port_info *pi = ifp->if_softc; + struct l2t_entry *e = &sc->l2t->l2tab[synqe->l2e_idx]; + struct wrqe *wr; + struct fw_flowc_wr *flowc; + struct cpl_abort_req *req; + int txqid, rxqid, flowclen; + struct sge_wrq *ofld_txq; + struct sge_ofld_rxq *ofld_rxq; + const int nparams = 4; + unsigned int pfvf = G_FW_VIID_PFN(pi->viid) << S_FW_VIID_PFN; + + INP_WLOCK_ASSERT(synqe->lctx->inp); + + CTR4(KTR_CXGBE, "%s: synqe %p, tid %d%s", + __func__, synqe, synqe->tid, + synqe_flag(synqe, TPF_ABORT_SHUTDOWN) ? + " (abort already in progress)" : ""); + if (synqe_flag(synqe, TPF_ABORT_SHUTDOWN)) + return; /* abort already in progress */ + synqe_set_flag(synqe, TPF_ABORT_SHUTDOWN); + + get_qids_from_mbuf(m, &txqid, &rxqid); + ofld_txq = &sc->sge.ofld_txq[txqid]; + ofld_rxq = &sc->sge.ofld_rxq[rxqid]; + + /* The wrqe will have two WRs - a flowc followed by an abort_req */ + flowclen = sizeof(*flowc) + nparams * sizeof(struct fw_flowc_mnemval); + + wr = alloc_wrqe(roundup(flowclen, EQ_ESIZE) + sizeof(*req), ofld_txq); + if (wr == NULL) { + /* XXX */ + panic("%s: allocation failure.", __func__); + } + flowc = wrtod(wr); + req = (void *)((caddr_t)flowc + roundup(flowclen, EQ_ESIZE)); + + /* First the flowc ... */ + memset(flowc, 0, wr->wr_len); + flowc->op_to_nparams = htobe32(V_FW_WR_OP(FW_FLOWC_WR) | + V_FW_FLOWC_WR_NPARAMS(nparams)); + flowc->flowid_len16 = htonl(V_FW_WR_LEN16(howmany(flowclen, 16)) | + V_FW_WR_FLOWID(synqe->tid)); + flowc->mnemval[0].mnemonic = FW_FLOWC_MNEM_PFNVFN; + flowc->mnemval[0].val = htobe32(pfvf); + flowc->mnemval[1].mnemonic = FW_FLOWC_MNEM_CH; + flowc->mnemval[1].val = htobe32(pi->tx_chan); + flowc->mnemval[2].mnemonic = FW_FLOWC_MNEM_PORT; + flowc->mnemval[2].val = htobe32(pi->tx_chan); + flowc->mnemval[3].mnemonic = FW_FLOWC_MNEM_IQID; + flowc->mnemval[3].val = htobe32(ofld_rxq->iq.abs_id); + synqe_set_flag(synqe, TPF_FLOWC_WR_SENT); + + /* ... then ABORT request */ + INIT_TP_WR_MIT_CPL(req, CPL_ABORT_REQ, synqe->tid); + req->rsvd0 = 0; /* don't have a snd_nxt */ + req->rsvd1 = 1; /* no data sent yet */ + req->cmd = CPL_ABORT_SEND_RST; + + t4_l2t_send(sc, wr, e); +} + +static int +create_server(struct adapter *sc, struct listen_ctx *lctx) +{ + struct wrqe *wr; + struct cpl_pass_open_req *req; + struct in_conninfo *inc = &lctx->inp->inp_inc; + + wr = alloc_wrqe(sizeof(*req), lctx->ctrlq); + if (wr == NULL) { + log(LOG_ERR, "%s: allocation failure", __func__); + return (ENOMEM); + } + req = wrtod(wr); + + INIT_TP_WR(req, 0); + OPCODE_TID(req) = htobe32(MK_OPCODE_TID(CPL_PASS_OPEN_REQ, lctx->stid)); + req->local_port = inc->inc_lport; + req->peer_port = 0; + req->local_ip = inc->inc_laddr.s_addr; + req->peer_ip = 0; + req->opt0 = htobe64(V_TX_CHAN(lctx->ctrlq->eq.tx_chan)); + req->opt1 = htobe64(V_CONN_POLICY(CPL_CONN_POLICY_ASK) | + F_SYN_RSS_ENABLE | V_SYN_RSS_QUEUE(lctx->ofld_rxq->iq.abs_id)); + + t4_wrq_tx(sc, wr); + return (0); +} + +static int +destroy_server(struct adapter *sc, struct listen_ctx *lctx) +{ + struct wrqe *wr; + struct cpl_close_listsvr_req *req; + + wr = alloc_wrqe(sizeof(*req), lctx->ctrlq); + if (wr == NULL) { + /* XXX */ + panic("%s: allocation failure.", __func__); + } + req = wrtod(wr); + + INIT_TP_WR(req, 0); + OPCODE_TID(req) = htonl(MK_OPCODE_TID(CPL_CLOSE_LISTSRV_REQ, + lctx->stid)); + req->reply_ctrl = htobe16(lctx->ofld_rxq->iq.abs_id); + req->rsvd = htobe16(0); + + t4_wrq_tx(sc, wr); + return (0); +} + +/* + * Start a listening server by sending a passive open request to HW. + * + * Can't take adapter lock here and access to sc->flags, sc->open_device_map, + * sc->offload_map, if_capenable are all race prone. + */ +int +t4_listen_start(struct toedev *tod, struct tcpcb *tp) +{ + struct adapter *sc = tod->tod_softc; + struct port_info *pi; + struct inpcb *inp = tp->t_inpcb; + struct listen_ctx *lctx; + int i; + + INP_WLOCK_ASSERT(inp); + + if ((inp->inp_vflag & INP_IPV4) == 0) + return (0); + +#if 0 + ADAPTER_LOCK(sc); + if (IS_BUSY(sc)) { + log(LOG_ERR, "%s: listen request ignored, %s is busy", + __func__, device_get_nameunit(sc->dev)); + goto done; + } + + KASSERT(sc->flags & TOM_INIT_DONE, + ("%s: TOM not initialized", __func__)); +#endif + + if ((sc->open_device_map & sc->offload_map) == 0) + goto done; /* no port that's UP with IFCAP_TOE enabled */ + + /* + * Find a running port with IFCAP_TOE4. We'll use the first such port's + * queues to send the passive open and receive the reply to it. + * + * XXX: need a way to mark a port in use by offload. if_cxgbe should + * then reject any attempt to bring down such a port (and maybe reject + * attempts to disable IFCAP_TOE on that port too?). + */ + for_each_port(sc, i) { + if (isset(&sc->open_device_map, i) && + sc->port[i]->ifp->if_capenable & IFCAP_TOE4) + break; + } + KASSERT(i < sc->params.nports, + ("%s: no running port with TOE capability enabled.", __func__)); + pi = sc->port[i]; + + if (listen_hash_find(sc, inp) != NULL) + goto done; /* already setup */ + + lctx = alloc_lctx(sc, inp, pi); + if (lctx == NULL) { + log(LOG_ERR, + "%s: listen request ignored, %s couldn't allocate lctx\n", + __func__, device_get_nameunit(sc->dev)); + goto done; + } + listen_hash_add(sc, lctx); + + CTR5(KTR_CXGBE, "%s: stid %u (%s), lctx %p, inp %p", __func__, + lctx->stid, tcpstates[tp->t_state], lctx, inp); + + if (create_server(sc, lctx) != 0) { + log(LOG_ERR, "%s: %s failed to create hw listener.\n", __func__, + device_get_nameunit(sc->dev)); + (void) listen_hash_del(sc, inp); + inp = release_lctx(sc, lctx); + /* can't be freed, host stack has a reference */ + KASSERT(inp != NULL, ("%s: inp freed", __func__)); + goto done; + } + lctx->flags |= LCTX_RPL_PENDING; +done: +#if 0 + ADAPTER_UNLOCK(sc); +#endif + return (0); +} + +int +t4_listen_stop(struct toedev *tod, struct tcpcb *tp) +{ + struct listen_ctx *lctx; + struct adapter *sc = tod->tod_softc; + struct inpcb *inp = tp->t_inpcb; + struct synq_entry *synqe; + + INP_WLOCK_ASSERT(inp); + + lctx = listen_hash_del(sc, inp); + if (lctx == NULL) + return (ENOENT); /* no hardware listener for this inp */ + + CTR4(KTR_CXGBE, "%s: stid %u, lctx %p, flags %x", __func__, lctx->stid, + lctx, lctx->flags); + + /* + * If the reply to the PASS_OPEN is still pending we'll wait for it to + * arrive and clean up when it does. + */ + if (lctx->flags & LCTX_RPL_PENDING) { + KASSERT(TAILQ_EMPTY(&lctx->synq), + ("%s: synq not empty.", __func__)); + return (EINPROGRESS); + } + + /* + * The host stack will abort all the connections on the listening + * socket's so_comp. It doesn't know about the connections on the synq + * so we need to take care of those. + */ + TAILQ_FOREACH(synqe, &lctx->synq, link) + send_reset_synqe(tod, synqe); + + destroy_server(sc, lctx); + return (0); +} + +static inline void +hold_synqe(struct synq_entry *synqe) +{ + + refcount_acquire(&synqe->refcnt); +} + +static inline void +release_synqe(struct synq_entry *synqe) +{ + + if (refcount_release(&synqe->refcnt)) { + int needfree = synqe_flag(synqe, TPF_SYNQE_NEEDFREE); + + m_freem(synqe->syn); + if (needfree) + free(synqe, M_CXGBE); + } +} + +void +t4_syncache_added(struct toedev *tod __unused, void *arg) +{ + struct synq_entry *synqe = arg; + + hold_synqe(synqe); +} + +void +t4_syncache_removed(struct toedev *tod __unused, void *arg) +{ + struct synq_entry *synqe = arg; + + release_synqe(synqe); +} + +/* XXX */ +extern void tcp_dooptions(struct tcpopt *, u_char *, int, int); + +int +t4_syncache_respond(struct toedev *tod, void *arg, struct mbuf *m) +{ + struct adapter *sc = tod->tod_softc; + struct synq_entry *synqe = arg; + struct wrqe *wr; + struct l2t_entry *e; + struct tcpopt to; + struct ip *ip = mtod(m, struct ip *); + struct tcphdr *th = (void *)(ip + 1); + + wr = (struct wrqe *)atomic_readandclear_ptr(&synqe->wr); + if (wr == NULL) + return (EALREADY); + + bzero(&to, sizeof(to)); + tcp_dooptions(&to, (void *)(th + 1), (th->th_off << 2) - sizeof(*th), + TO_SYN); + + /* save these for later */ + synqe->iss = be32toh(th->th_seq); + synqe->ts = to.to_tsval; + + e = &sc->l2t->l2tab[synqe->l2e_idx]; + t4_l2t_send(sc, wr, e); + + m_freem(m); /* don't need this any more */ + return (0); +} + +static int +do_pass_open_rpl(struct sge_iq *iq, const struct rss_header *rss, + struct mbuf *m) +{ + struct adapter *sc = iq->adapter; + const struct cpl_pass_open_rpl *cpl = (const void *)(rss + 1); + int stid = GET_TID(cpl); + unsigned int status = cpl->status; + struct listen_ctx *lctx = lookup_stid(sc, stid); + struct inpcb *inp = lctx->inp; +#ifdef INVARIANTS + unsigned int opcode = G_CPL_OPCODE(be32toh(OPCODE_TID(cpl))); +#endif + + KASSERT(opcode == CPL_PASS_OPEN_RPL, + ("%s: unexpected opcode 0x%x", __func__, opcode)); + KASSERT(m == NULL, ("%s: wasn't expecting payload", __func__)); + KASSERT(lctx->stid == stid, ("%s: lctx stid mismatch", __func__)); + + INP_WLOCK(inp); + + CTR4(KTR_CXGBE, "%s: stid %d, status %u, flags 0x%x", + __func__, stid, status, lctx->flags); + + lctx->flags &= ~LCTX_RPL_PENDING; + + if (status != CPL_ERR_NONE) + log(LOG_ERR, "listener with stid %u failed: %d", stid, status); + +#ifdef INVARIANTS + /* + * If the inp has been dropped (listening socket closed) then + * listen_stop must have run and taken the inp out of the hash. + */ + if (inp->inp_flags & INP_DROPPED) { + KASSERT(listen_hash_del(sc, inp) == NULL, + ("%s: inp %p still in listen hash", __func__, inp)); + } +#endif + + if (inp->inp_flags & INP_DROPPED && status != CPL_ERR_NONE) { + if (release_lctx(sc, lctx) != NULL) + INP_WUNLOCK(inp); + return (status); + } + + /* + * Listening socket stopped listening earlier and now the chip tells us + * it has started the hardware listener. Stop it; the lctx will be + * released in do_close_server_rpl. + */ + if (inp->inp_flags & INP_DROPPED) { + destroy_server(sc, lctx); + INP_WUNLOCK(inp); + return (status); + } + + /* + * Failed to start hardware listener. Take inp out of the hash and + * release our reference on it. An error message has been logged + * already. + */ + if (status != CPL_ERR_NONE) { + listen_hash_del(sc, inp); + if (release_lctx(sc, lctx) != NULL) + INP_WUNLOCK(inp); + return (status); + } + + /* hardware listener open for business */ + + INP_WUNLOCK(inp); + return (status); +} + +static int +do_close_server_rpl(struct sge_iq *iq, const struct rss_header *rss, + struct mbuf *m) +{ + struct adapter *sc = iq->adapter; + const struct cpl_close_listsvr_rpl *cpl = (const void *)(rss + 1); + int stid = GET_TID(cpl); + unsigned int status = cpl->status; + struct listen_ctx *lctx = lookup_stid(sc, stid); + struct inpcb *inp = lctx->inp; +#ifdef INVARIANTS + unsigned int opcode = G_CPL_OPCODE(be32toh(OPCODE_TID(cpl))); +#endif + + KASSERT(opcode == CPL_CLOSE_LISTSRV_RPL, + ("%s: unexpected opcode 0x%x", __func__, opcode)); + KASSERT(m == NULL, ("%s: wasn't expecting payload", __func__)); + KASSERT(lctx->stid == stid, ("%s: lctx stid mismatch", __func__)); + + CTR3(KTR_CXGBE, "%s: stid %u, status %u", __func__, stid, status); + + if (status != CPL_ERR_NONE) { + log(LOG_ERR, "%s: failed (%u) to close listener for stid %u", + __func__, status, stid); + return (status); + } + + INP_WLOCK(inp); + inp = release_lctx(sc, lctx); + if (inp != NULL) + INP_WUNLOCK(inp); + + return (status); +} + +static void +done_with_synqe(struct adapter *sc, struct synq_entry *synqe) +{ + struct listen_ctx *lctx = synqe->lctx; + struct inpcb *inp = lctx->inp; + struct port_info *pi = synqe->syn->m_pkthdr.rcvif->if_softc; + struct l2t_entry *e = &sc->l2t->l2tab[synqe->l2e_idx]; + + INP_WLOCK_ASSERT(inp); + + TAILQ_REMOVE(&lctx->synq, synqe, link); + inp = release_lctx(sc, lctx); + if (inp) + INP_WUNLOCK(inp); + remove_tid(sc, synqe->tid); + release_tid(sc, synqe->tid, &sc->sge.ctrlq[pi->port_id]); + t4_l2t_release(e); + release_synqe(synqe); /* removed from synq list */ +} + +int +do_abort_req_synqe(struct sge_iq *iq, const struct rss_header *rss, + struct mbuf *m) +{ + struct adapter *sc = iq->adapter; + const struct cpl_abort_req_rss *cpl = (const void *)(rss + 1); + unsigned int tid = GET_TID(cpl); + struct synq_entry *synqe = lookup_tid(sc, tid); + struct listen_ctx *lctx = synqe->lctx; + struct inpcb *inp = lctx->inp; + int txqid; + struct sge_wrq *ofld_txq; +#ifdef INVARIANTS + unsigned int opcode = G_CPL_OPCODE(be32toh(OPCODE_TID(cpl))); +#endif + + KASSERT(opcode == CPL_ABORT_REQ_RSS, + ("%s: unexpected opcode 0x%x", __func__, opcode)); + KASSERT(m == NULL, ("%s: wasn't expecting payload", __func__)); + KASSERT(synqe->tid == tid, ("%s: toep tid mismatch", __func__)); + + CTR6(KTR_CXGBE, "%s: tid %u, synqe %p (0x%x), lctx %p, status %d", + __func__, tid, synqe, synqe->flags, synqe->lctx, cpl->status); + + if (cpl->status == CPL_ERR_RTX_NEG_ADVICE || + cpl->status == CPL_ERR_PERSIST_NEG_ADVICE) + return (0); /* Ignore negative advice */ + + INP_WLOCK(inp); + + get_qids_from_mbuf(synqe->syn, &txqid, NULL); + ofld_txq = &sc->sge.ofld_txq[txqid]; + + /* + * If we'd initiated an abort earlier the reply to it is responsible for + * cleaning up resources. Otherwise we tear everything down right here + * right now. We owe the T4 a CPL_ABORT_RPL no matter what. + */ + if (synqe_flag(synqe, TPF_ABORT_SHUTDOWN)) { + INP_WUNLOCK(inp); + goto done; + } + + done_with_synqe(sc, synqe); + /* inp lock released by done_with_synqe */ +done: + send_abort_rpl(sc, ofld_txq, tid, CPL_ABORT_NO_RST); + return (0); +} + +int +do_abort_rpl_synqe(struct sge_iq *iq, const struct rss_header *rss, + struct mbuf *m) +{ + struct adapter *sc = iq->adapter; + const struct cpl_abort_rpl_rss *cpl = (const void *)(rss + 1); + unsigned int tid = GET_TID(cpl); + struct synq_entry *synqe = lookup_tid(sc, tid); + struct listen_ctx *lctx = synqe->lctx; + struct inpcb *inp = lctx->inp; +#ifdef INVARIANTS + unsigned int opcode = G_CPL_OPCODE(be32toh(OPCODE_TID(cpl))); +#endif + + KASSERT(opcode == CPL_ABORT_RPL_RSS, + ("%s: unexpected opcode 0x%x", __func__, opcode)); + KASSERT(m == NULL, ("%s: wasn't expecting payload", __func__)); + KASSERT(synqe->tid == tid, ("%s: toep tid mismatch", __func__)); + + CTR6(KTR_CXGBE, "%s: tid %u, synqe %p (0x%x), lctx %p, status %d", + __func__, tid, synqe, synqe->flags, synqe->lctx, cpl->status); + + INP_WLOCK(inp); + KASSERT(synqe_flag(synqe, TPF_ABORT_SHUTDOWN), + ("%s: wasn't expecting abort reply for synqe %p (0x%x)", + __func__, synqe, synqe->flags)); + + done_with_synqe(sc, synqe); + /* inp lock released by done_with_synqe */ + + return (0); +} + +void +t4_offload_socket(struct toedev *tod, void *arg, struct socket *so) +{ + struct adapter *sc = tod->tod_softc; + struct synq_entry *synqe = arg; +#ifdef INVARIANTS + struct inpcb *inp = sotoinpcb(so); +#endif + struct cpl_pass_establish *cpl = mtod(synqe->syn, void *); + struct toepcb *toep = *(struct toepcb **)(cpl + 1); + + INP_INFO_LOCK_ASSERT(&V_tcbinfo); /* prevents bad race with accept() */ + INP_WLOCK_ASSERT(inp); + KASSERT(synqe_flag(synqe, TPF_SYNQE), + ("%s: %p not a synq_entry?", __func__, arg)); + + offload_socket(so, toep); + make_established(toep, cpl->snd_isn, cpl->rcv_isn, cpl->tcp_opt); + toepcb_set_flag(toep, TPF_CPL_PENDING); + update_tid(sc, synqe->tid, toep); +} + +static inline void +save_qids_in_mbuf(struct mbuf *m, struct port_info *pi) +{ + uint32_t txqid, rxqid; + + txqid = (arc4random() % pi->nofldtxq) + pi->first_ofld_txq; + rxqid = (arc4random() % pi->nofldrxq) + pi->first_ofld_rxq; + + m->m_pkthdr.flowid = (txqid << 16) | (rxqid & 0xffff); +} + +static inline void +get_qids_from_mbuf(struct mbuf *m, int *txqid, int *rxqid) +{ + + if (txqid) + *txqid = m->m_pkthdr.flowid >> 16; + if (rxqid) + *rxqid = m->m_pkthdr.flowid & 0xffff; +} + +/* + * Use the trailing space in the mbuf in which the PASS_ACCEPT_REQ arrived to + * store some state temporarily. + */ +static struct synq_entry * +mbuf_to_synqe(struct mbuf *m) +{ + int len = roundup(sizeof (struct synq_entry), 8); + int tspace = M_TRAILINGSPACE(m); + struct synq_entry *synqe = NULL; + + if (tspace < len) { + synqe = malloc(sizeof(*synqe), M_CXGBE, M_NOWAIT); + if (synqe == NULL) + return (NULL); + } else + synqe = (void *)(m->m_data + m->m_len + tspace - sizeof(*synqe)); + + synqe->flags = 0; + synqe_set_flag(synqe, TPF_SYNQE); + if (tspace < len) + synqe_set_flag(synqe, TPF_SYNQE_NEEDFREE); + + return (synqe); +} + +static void +t4opt_to_tcpopt(const struct tcp_options *t4opt, struct tcpopt *to) +{ + bzero(to, sizeof(*to)); + + if (t4opt->mss) { + to->to_flags |= TOF_MSS; + to->to_mss = be16toh(t4opt->mss); + } + + if (t4opt->wsf) { + to->to_flags |= TOF_SCALE; + to->to_wscale = t4opt->wsf; + } + + if (t4opt->tstamp) + to->to_flags |= TOF_TS; + + if (t4opt->sack) + to->to_flags |= TOF_SACKPERM; +} + +/* + * Options2 for passive open. + */ +static uint32_t +calc_opt2p(struct adapter *sc, struct port_info *pi, int rxqid, + const struct tcp_options *tcpopt, struct tcphdr *th) +{ + uint32_t opt2 = 0; + struct sge_ofld_rxq *ofld_rxq = &sc->sge.ofld_rxq[rxqid]; + + if (V_tcp_do_rfc1323) { + if (tcpopt->tstamp) + opt2 |= F_TSTAMPS_EN; + if (tcpopt->sack) + opt2 |= F_SACK_EN; + if (tcpopt->wsf > 0) + opt2 |= F_WND_SCALE_EN; + } + + if (V_tcp_do_ecn && th->th_flags & (TH_ECE | TH_CWR)) + opt2 |= F_CCTRL_ECN; + + opt2 |= V_TX_QUEUE(sc->params.tp.tx_modq[pi->tx_chan]); + opt2 |= F_RX_COALESCE_VALID | V_RX_COALESCE(M_RX_COALESCE); + opt2 |= F_RSS_QUEUE_VALID | V_RSS_QUEUE(ofld_rxq->iq.abs_id); + + return htobe32(opt2); +} + +/* XXX: duplication. */ +static inline void +tcp_fields_to_host(struct tcphdr *th) +{ + + th->th_seq = ntohl(th->th_seq); + th->th_ack = ntohl(th->th_ack); + th->th_win = ntohs(th->th_win); + th->th_urp = ntohs(th->th_urp); +} + +static void +pass_accept_req_to_protohdrs(const struct mbuf *m, struct in_conninfo *inc, + struct tcphdr *th) +{ + const struct cpl_pass_accept_req *cpl = mtod(m, const void *); + const struct ether_header *eh; + unsigned int hlen = be32toh(cpl->hdr_len); + const struct ip *ip; + const struct tcphdr *tcp; + + eh = (const void *)(cpl + 1); + ip = (const void *)((uintptr_t)eh + G_ETH_HDR_LEN(hlen)); + tcp = (const void *)((uintptr_t)ip + G_IP_HDR_LEN(hlen)); + + if (inc) { + bzero(inc, sizeof(*inc)); + inc->inc_faddr = ip->ip_src; + inc->inc_laddr = ip->ip_dst; + inc->inc_fport = tcp->th_sport; + inc->inc_lport = tcp->th_dport; + if (ip->ip_v == 6) + inc->inc_flags |= INC_ISIPV6; + } + + if (th) { + bcopy(tcp, th, sizeof(*th)); + tcp_fields_to_host(th); /* just like tcp_input */ + } +} + +#define REJECT_PASS_ACCEPT() do { \ + reject_reason = __LINE__; \ + goto reject; \ +} while (0) + +/* + * The context associated with a tid entry via insert_tid could be a synq_entry + * or a toepcb. The only way CPL handlers can tell is via a bit in these flags. + */ +CTASSERT(offsetof(struct toepcb, flags) == offsetof(struct synq_entry, flags)); + +/* + * Incoming SYN on a listening socket. + * + * XXX: Every use of ifp in this routine has a bad race with up/down, toe/-toe, + * etc. + */ +static int +do_pass_accept_req(struct sge_iq *iq, const struct rss_header *rss, + struct mbuf *m) +{ + struct adapter *sc = iq->adapter; + struct toedev *tod; + const struct cpl_pass_accept_req *cpl = mtod(m, const void *); + struct cpl_pass_accept_rpl *rpl; + struct wrqe *wr; + unsigned int stid = G_PASS_OPEN_TID(be32toh(cpl->tos_stid)); + unsigned int tid = GET_TID(cpl); + struct listen_ctx *lctx = lookup_stid(sc, stid); + struct inpcb *inp; + struct socket *so; + struct in_conninfo inc; + struct tcphdr th; + struct tcpopt to; + struct port_info *pi; + struct ifnet *ifp, *ifp_vlan = NULL; + struct l2t_entry *e = NULL; + struct rtentry *rt; + struct sockaddr_in nam; + int rscale, mtu_idx, rx_credits, rxqid; + struct synq_entry *synqe = NULL; + int reject_reason; + uint16_t vid; +#ifdef INVARIANTS + unsigned int opcode = G_CPL_OPCODE(be32toh(OPCODE_TID(cpl))); +#endif + + KASSERT(opcode == CPL_PASS_ACCEPT_REQ, + ("%s: unexpected opcode 0x%x", __func__, opcode)); + KASSERT(lctx->stid == stid, ("%s: lctx stid mismatch", __func__)); + + CTR4(KTR_CXGBE, "%s: stid %u, tid %u, lctx %p", __func__, stid, tid, + lctx); + + pass_accept_req_to_protohdrs(m, &inc, &th); + t4opt_to_tcpopt(&cpl->tcpopt, &to); + + pi = sc->port[G_SYN_INTF(be16toh(cpl->l2info))]; + ifp = pi->ifp; + m->m_pkthdr.rcvif = ifp; + tod = TOEDEV(ifp); + + /* + * Don't offload if the interface that received the SYN doesn't have + * IFCAP_TOE enabled. + */ + if ((ifp->if_capenable & IFCAP_TOE4) == 0) + REJECT_PASS_ACCEPT(); + + /* Don't offload IPv6 connections. XXX: add IPv6 support */ + if (inc.inc_flags & INC_ISIPV6) + REJECT_PASS_ACCEPT(); + + /* + * Don't offload if the SYN had a VLAN tag and the vid doesn't match + * anything on this interface. + */ + vid = EVL_VLANOFTAG(be16toh(cpl->vlan)); + if (vid != 0xfff) { + ifp_vlan = VLAN_DEVAT(ifp, vid); + if (ifp_vlan == NULL) + REJECT_PASS_ACCEPT(); + } + + /* + * Don't offload if the peer requested a TCP option that's not known to + * the silicon. + */ + if (cpl->tcpopt.unknown) + REJECT_PASS_ACCEPT(); + + /* + * Don't offload if the outgoing interface for the route back to the + * peer is not the same as the interface that received the SYN. + * XXX: too restrictive. + */ + nam.sin_len = sizeof(nam); + nam.sin_family = AF_INET; + nam.sin_addr = inc.inc_faddr; + rt = rtalloc1((struct sockaddr *)&nam, 0, 0); + if (rt == NULL) + REJECT_PASS_ACCEPT(); + else { + struct sockaddr *nexthop; + + RT_UNLOCK(rt); + nexthop = rt->rt_flags & RTF_GATEWAY ? rt->rt_gateway : + (struct sockaddr *)&nam; + if (rt->rt_ifp == ifp || + (ifp_vlan != NULL && rt->rt_ifp == ifp_vlan)) + e = t4_l2t_get(pi, rt->rt_ifp, nexthop); + RTFREE(rt); + if (e == NULL) + REJECT_PASS_ACCEPT(); /* no l2te, or ifp mismatch */ + } + + synqe = mbuf_to_synqe(m); + if (synqe == NULL) + REJECT_PASS_ACCEPT(); + + wr = alloc_wrqe(sizeof(*rpl), &sc->sge.ctrlq[pi->port_id]); + if (wr == NULL) + REJECT_PASS_ACCEPT(); + rpl = wrtod(wr); + + INP_INFO_WLOCK(&V_tcbinfo); /* for 4-tuple check, syncache_add */ + + /* Don't offload if the 4-tuple is already in use */ + if (toe_4tuple_check(&inc, &th, ifp) != 0) { + INP_INFO_WUNLOCK(&V_tcbinfo); + free(wr, M_CXGBE); + REJECT_PASS_ACCEPT(); + } + + inp = lctx->inp; /* listening socket, not owned by TOE */ + INP_WLOCK(inp); + + /* Don't offload if the listening socket has closed */ + if (__predict_false(inp->inp_flags & INP_DROPPED)) { + /* + * The listening socket has closed. The reply from the TOE to + * our CPL_CLOSE_LISTSRV_REQ will ultimately release all + * resources tied to this listen context. + */ + INP_WUNLOCK(inp); + INP_INFO_WUNLOCK(&V_tcbinfo); + free(wr, M_CXGBE); + REJECT_PASS_ACCEPT(); + } + so = inp->inp_socket; + + mtu_idx = find_best_mtu_idx(sc, &inc, be16toh(cpl->tcpopt.mss)); + rscale = cpl->tcpopt.wsf && V_tcp_do_rfc1323 ? select_rcv_wscale() : 0; + SOCKBUF_LOCK(&so->so_rcv); + /* opt0 rcv_bufsiz initially, assumes its normal meaning later */ + rx_credits = min(select_rcv_wnd(so) >> 10, M_RCV_BUFSIZ); + SOCKBUF_UNLOCK(&so->so_rcv); + + save_qids_in_mbuf(m, pi); + get_qids_from_mbuf(m, NULL, &rxqid); + + INIT_TP_WR_MIT_CPL(rpl, CPL_PASS_ACCEPT_RPL, tid); + rpl->opt0 = calc_opt0(so, pi, e, mtu_idx, rscale, rx_credits, + ULP_MODE_NONE); + rpl->opt2 = calc_opt2p(sc, pi, rxqid, &cpl->tcpopt, &th); + + synqe->tid = tid; + synqe->lctx = lctx; + synqe->syn = m; + m = NULL; + refcount_init(&synqe->refcnt, 1); /* 1 so that it is held for the + duration of this function */ + synqe->l2e_idx = e->idx; + synqe->rcv_bufsize = rx_credits; + atomic_store_rel_ptr(&synqe->wr, (uintptr_t)wr); + + insert_tid(sc, tid, synqe); + TAILQ_INSERT_TAIL(&lctx->synq, synqe, link); + hold_synqe(synqe); /* hold for the duration it's in the synq */ + hold_lctx(lctx); /* A synqe on the list has a ref on its lctx */ + + /* + * If all goes well t4_syncache_respond will get called during + * syncache_add. Also note that syncache_add releases both pcbinfo and + * pcb locks. + */ + toe_syncache_add(&inc, &to, &th, inp, tod, synqe); + INP_UNLOCK_ASSERT(inp); /* ok to assert, we have a ref on the inp */ + INP_INFO_UNLOCK_ASSERT(&V_tcbinfo); + + /* + * If we replied during syncache_add (synqe->wr has been consumed), + * good. Otherwise, set it to 0 so that further syncache_respond + * attempts by the kernel will be ignored. + * + * The extra hold on the synqe makes sure that it is still around, even + * if the listener has been dropped and the synqe was aborted and the + * reply to the abort has removed and released the synqe from the synq + * list. + */ + if (atomic_cmpset_ptr(&synqe->wr, (uintptr_t)wr, 0)) { + + INP_WLOCK(inp); + if (__predict_false(inp->inp_flags & INP_DROPPED)) { + /* listener closed. synqe must have been aborted. */ + KASSERT(synqe_flag(synqe, TPF_ABORT_SHUTDOWN), + ("%s: listener %p closed but synqe %p not aborted", + __func__, inp, synqe)); + + CTR5(KTR_CXGBE, + "%s: stid %u, tid %u, lctx %p, synqe %p, ABORTED", + __func__, stid, tid, lctx, synqe); + INP_WUNLOCK(inp); + free(wr, M_CXGBE); + release_synqe(synqe); /* about to exit function */ + return (__LINE__); + } + + /* + * synqe aborted before TOM replied to PASS_ACCEPT_REQ. But + * that can only happen if the listener was closed and we just + * checked for that. + */ + KASSERT(!synqe_flag(synqe, TPF_ABORT_SHUTDOWN), + ("%s: synqe %p aborted, but listener %p not dropped.", + __func__, synqe, inp)); + + /* Yank the synqe out of the lctx synq. */ + TAILQ_REMOVE(&lctx->synq, synqe, link); + release_synqe(synqe); /* removed from synq list */ + inp = release_lctx(sc, lctx); + if (inp) + INP_WUNLOCK(inp); + + /* + * syncache may or may not have a hold on the synqe, which may + * or may not be stashed in the original SYN mbuf passed to us. + * Just copy it over instead of dealing with all possibilities. + */ + m = m_dup(synqe->syn, M_DONTWAIT); + if (m) + m->m_pkthdr.rcvif = ifp; + + release_synqe(synqe); /* about to exit function */ + free(wr, M_CXGBE); + REJECT_PASS_ACCEPT(); + } + release_synqe(synqe); /* about to exit function */ + CTR5(KTR_CXGBE, "%s: stid %u, tid %u, lctx %p, synqe %p, SYNACK", + __func__, stid, tid, lctx, synqe); + return (0); +reject: + CTR4(KTR_CXGBE, "%s: stid %u, tid %u, REJECT (%d)", __func__, stid, tid, + reject_reason); + + if (e) + t4_l2t_release(e); + release_tid(sc, tid, lctx->ctrlq); + + if (__predict_true(m != NULL)) { + m_adj(m, sizeof(*cpl)); + m->m_pkthdr.csum_flags |= (CSUM_IP_CHECKED | CSUM_IP_VALID | + CSUM_DATA_VALID | CSUM_PSEUDO_HDR); + m->m_pkthdr.csum_data = 0xffff; + ifp->if_input(ifp, m); + } + + return (reject_reason); +} + +static void +synqe_to_protohdrs(struct synq_entry *synqe, + const struct cpl_pass_establish *cpl, struct in_conninfo *inc, + struct tcphdr *th, struct tcpopt *to) +{ + uint16_t tcp_opt = be16toh(cpl->tcp_opt); + + /* start off with the original SYN */ + pass_accept_req_to_protohdrs(synqe->syn, inc, th); + + /* modify parts to make it look like the ACK to our SYN|ACK */ + th->th_flags = TH_ACK; + th->th_ack = synqe->iss + 1; + th->th_seq = be32toh(cpl->rcv_isn); + bzero(to, sizeof(*to)); + if (G_TCPOPT_TSTAMP(tcp_opt)) { + to->to_flags |= TOF_TS; + to->to_tsecr = synqe->ts; + } +} + +static int +do_pass_establish(struct sge_iq *iq, const struct rss_header *rss, + struct mbuf *m) +{ + struct adapter *sc = iq->adapter; + struct port_info *pi; + struct ifnet *ifp; + const struct cpl_pass_establish *cpl = (const void *)(rss + 1); +#if defined(KTR) || defined(INVARIANTS) + unsigned int stid = G_PASS_OPEN_TID(be32toh(cpl->tos_stid)); +#endif + unsigned int tid = GET_TID(cpl); + struct synq_entry *synqe = lookup_tid(sc, tid); + struct listen_ctx *lctx = synqe->lctx; + struct inpcb *inp = lctx->inp; + struct socket *so; + struct tcphdr th; + struct tcpopt to; + struct in_conninfo inc; + struct toepcb *toep; + u_int txqid, rxqid; +#ifdef INVARIANTS + unsigned int opcode = G_CPL_OPCODE(be32toh(OPCODE_TID(cpl))); +#endif + + KASSERT(opcode == CPL_PASS_ESTABLISH, + ("%s: unexpected opcode 0x%x", __func__, opcode)); + KASSERT(m == NULL, ("%s: wasn't expecting payload", __func__)); + KASSERT(lctx->stid == stid, ("%s: lctx stid mismatch", __func__)); + KASSERT(synqe_flag(synqe, TPF_SYNQE), + ("%s: tid %u (ctx %p) not a synqe", __func__, tid, synqe)); + + INP_INFO_WLOCK(&V_tcbinfo); /* for syncache_expand */ + INP_WLOCK(inp); + + CTR6(KTR_CXGBE, + "%s: stid %u, tid %u, synqe %p (0x%x), inp_flags 0x%x", + __func__, stid, tid, synqe, synqe->flags, inp->inp_flags); + + if (__predict_false(inp->inp_flags & INP_DROPPED)) { + /* + * The listening socket has closed. The TOM must have aborted + * all the embryonic connections (including this one) that were + * on the lctx's synq. do_abort_rpl for the tid is responsible + * for cleaning up. + */ + KASSERT(synqe_flag(synqe, TPF_ABORT_SHUTDOWN), + ("%s: listen socket dropped but tid %u not aborted.", + __func__, tid)); + + INP_WUNLOCK(inp); + INP_INFO_WUNLOCK(&V_tcbinfo); + return (0); + } + + ifp = synqe->syn->m_pkthdr.rcvif; + pi = ifp->if_softc; + KASSERT(pi->adapter == sc, + ("%s: pi %p, sc %p mismatch", __func__, pi, sc)); + + get_qids_from_mbuf(synqe->syn, &txqid, &rxqid); + KASSERT(rxqid == iq_to_ofld_rxq(iq) - &sc->sge.ofld_rxq[0], + ("%s: CPL arrived on unexpected rxq. %d %d", __func__, rxqid, + (int)(iq_to_ofld_rxq(iq) - &sc->sge.ofld_rxq[0]))); + + toep = alloc_toepcb(pi, txqid, rxqid, M_NOWAIT); + if (toep == NULL) { +reset: + /* The reply to this abort will perform final cleanup */ + send_reset_synqe(TOEDEV(ifp), synqe); + INP_WUNLOCK(inp); + INP_INFO_WUNLOCK(&V_tcbinfo); + return (0); + } + toep->tid = tid; + toep->l2te = &sc->l2t->l2tab[synqe->l2e_idx]; + toep->ulp_mode = ULP_MODE_NONE; + /* opt0 rcv_bufsiz initially, assumes its normal meaning later */ + toep->rx_credits = synqe->rcv_bufsize; + + so = inp->inp_socket; + KASSERT(so != NULL, ("%s: socket is NULL", __func__)); + + /* Come up with something that syncache_expand should be ok with. */ + synqe_to_protohdrs(synqe, cpl, &inc, &th, &to); + + /* + * No more need for anything in the mbuf that carried the + * CPL_PASS_ACCEPT_REQ. Drop the CPL_PASS_ESTABLISH and toep pointer + * there. XXX: bad form but I don't want to increase the size of synqe. + */ + m = synqe->syn; + KASSERT(sizeof(*cpl) + sizeof(toep) <= m->m_len, + ("%s: no room in mbuf %p (m_len %d)", __func__, m, m->m_len)); + bcopy(cpl, mtod(m, void *), sizeof(*cpl)); + *(struct toepcb **)(mtod(m, struct cpl_pass_establish *) + 1) = toep; + + if (!toe_syncache_expand(&inc, &to, &th, &so) || so == NULL) { + free_toepcb(toep); + goto reset; + } + + /* Done with the synqe */ + TAILQ_REMOVE(&lctx->synq, synqe, link); + inp = release_lctx(sc, lctx); + if (inp != NULL) + INP_WUNLOCK(inp); + INP_INFO_WUNLOCK(&V_tcbinfo); + release_synqe(synqe); + + return (0); +} + +void +t4_init_listen_cpl_handlers(struct adapter *sc) +{ + + t4_register_cpl_handler(sc, CPL_PASS_OPEN_RPL, do_pass_open_rpl); + t4_register_cpl_handler(sc, CPL_CLOSE_LISTSRV_RPL, do_close_server_rpl); + t4_register_cpl_handler(sc, CPL_PASS_ACCEPT_REQ, do_pass_accept_req); + t4_register_cpl_handler(sc, CPL_PASS_ESTABLISH, do_pass_establish); +} +#endif diff --git a/sys/dev/cxgbe/tom/t4_tom.c b/sys/dev/cxgbe/tom/t4_tom.c new file mode 100644 index 000000000000..c6e9a1ffb2ea --- /dev/null +++ b/sys/dev/cxgbe/tom/t4_tom.c @@ -0,0 +1,755 @@ +/*- + * Copyright (c) 2012 Chelsio Communications, Inc. + * All rights reserved. + * Written by: Navdeep Parhar + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include "opt_inet.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#define TCPSTATES +#include +#include + +#ifdef TCP_OFFLOAD +#include "common/common.h" +#include "common/t4_msg.h" +#include "common/t4_regs.h" +#include "tom/t4_tom_l2t.h" +#include "tom/t4_tom.h" + +/* Module ops */ +static int t4_tom_mod_load(void); +static int t4_tom_mod_unload(void); +static int t4_tom_modevent(module_t, int, void *); + +/* ULD ops and helpers */ +static int t4_tom_activate(struct adapter *); +static int t4_tom_deactivate(struct adapter *); + +static struct uld_info tom_uld_info = { + .uld_id = ULD_TOM, + .activate = t4_tom_activate, + .deactivate = t4_tom_deactivate, +}; + +static void queue_tid_release(struct adapter *, int); +static void release_offload_resources(struct toepcb *); +static int alloc_tid_tabs(struct tid_info *); +static void free_tid_tabs(struct tid_info *); +static void free_tom_data(struct adapter *, struct tom_data *); + +struct toepcb * +alloc_toepcb(struct port_info *pi, int txqid, int rxqid, int flags) +{ + struct adapter *sc = pi->adapter; + struct toepcb *toep; + int tx_credits, txsd_total, len; + + /* + * The firmware counts tx work request credits in units of 16 bytes + * each. Reserve room for an ABORT_REQ so the driver never has to worry + * about tx credits if it wants to abort a connection. + */ + tx_credits = sc->params.ofldq_wr_cred; + tx_credits -= howmany(sizeof(struct cpl_abort_req), 16); + + /* + * Shortest possible tx work request is a fw_ofld_tx_data_wr + 1 byte + * immediate payload, and firmware counts tx work request credits in + * units of 16 byte. Calculate the maximum work requests possible. + */ + txsd_total = tx_credits / + howmany((sizeof(struct fw_ofld_tx_data_wr) + 1), 16); + + if (txqid < 0) + txqid = (arc4random() % pi->nofldtxq) + pi->first_ofld_txq; + KASSERT(txqid >= pi->first_ofld_txq && + txqid < pi->first_ofld_txq + pi->nofldtxq, + ("%s: txqid %d for port %p (first %d, n %d)", __func__, txqid, pi, + pi->first_ofld_txq, pi->nofldtxq)); + + if (rxqid < 0) + rxqid = (arc4random() % pi->nofldrxq) + pi->first_ofld_rxq; + KASSERT(rxqid >= pi->first_ofld_rxq && + rxqid < pi->first_ofld_rxq + pi->nofldrxq, + ("%s: rxqid %d for port %p (first %d, n %d)", __func__, rxqid, pi, + pi->first_ofld_rxq, pi->nofldrxq)); + + len = offsetof(struct toepcb, txsd) + + txsd_total * sizeof(struct ofld_tx_sdesc); + + toep = malloc(len, M_CXGBE, M_ZERO | flags); + if (toep == NULL) + return (NULL); + + toep->td = sc->tom_softc; + toep->port = pi; + toep->tx_credits = tx_credits; + toep->ofld_txq = &sc->sge.ofld_txq[txqid]; + toep->ofld_rxq = &sc->sge.ofld_rxq[rxqid]; + toep->ctrlq = &sc->sge.ctrlq[pi->port_id]; + toep->txsd_total = txsd_total; + toep->txsd_avail = txsd_total; + toep->txsd_pidx = 0; + toep->txsd_cidx = 0; + + return (toep); +} + +void +free_toepcb(struct toepcb *toep) +{ + + KASSERT(toepcb_flag(toep, TPF_ATTACHED) == 0, + ("%s: attached to an inpcb", __func__)); + KASSERT(toepcb_flag(toep, TPF_CPL_PENDING) == 0, + ("%s: CPL pending", __func__)); + + free(toep, M_CXGBE); +} + +/* + * Set up the socket for TCP offload. + */ +void +offload_socket(struct socket *so, struct toepcb *toep) +{ + struct tom_data *td = toep->td; + struct inpcb *inp = sotoinpcb(so); + struct tcpcb *tp = intotcpcb(inp); + struct sockbuf *sb; + + INP_WLOCK_ASSERT(inp); + + /* Update socket */ + sb = &so->so_snd; + SOCKBUF_LOCK(sb); + sb->sb_flags |= SB_NOCOALESCE; + SOCKBUF_UNLOCK(sb); + sb = &so->so_rcv; + SOCKBUF_LOCK(sb); + sb->sb_flags |= SB_NOCOALESCE; + SOCKBUF_UNLOCK(sb); + + /* Update TCP PCB */ + tp->tod = &td->tod; + tp->t_toe = toep; + tp->t_flags |= TF_TOE; + + /* Install an extra hold on inp */ + toep->inp = inp; + toepcb_set_flag(toep, TPF_ATTACHED); + in_pcbref(inp); + + /* Add the TOE PCB to the active list */ + mtx_lock(&td->toep_list_lock); + TAILQ_INSERT_HEAD(&td->toep_list, toep, link); + mtx_unlock(&td->toep_list_lock); +} + +/* This is _not_ the normal way to "unoffload" a socket. */ +void +undo_offload_socket(struct socket *so) +{ + struct inpcb *inp = sotoinpcb(so); + struct tcpcb *tp = intotcpcb(inp); + struct toepcb *toep = tp->t_toe; + struct tom_data *td = toep->td; + struct sockbuf *sb; + + INP_WLOCK_ASSERT(inp); + + sb = &so->so_snd; + SOCKBUF_LOCK(sb); + sb->sb_flags &= ~SB_NOCOALESCE; + SOCKBUF_UNLOCK(sb); + sb = &so->so_rcv; + SOCKBUF_LOCK(sb); + sb->sb_flags &= ~SB_NOCOALESCE; + SOCKBUF_UNLOCK(sb); + + tp->tod = NULL; + tp->t_toe = NULL; + tp->t_flags &= ~TF_TOE; + + toep->inp = NULL; + toepcb_clr_flag(toep, TPF_ATTACHED); + if (in_pcbrele_wlocked(inp)) + panic("%s: inp freed.", __func__); + + mtx_lock(&td->toep_list_lock); + TAILQ_REMOVE(&td->toep_list, toep, link); + mtx_unlock(&td->toep_list_lock); +} + +static void +release_offload_resources(struct toepcb *toep) +{ + struct tom_data *td = toep->td; + struct adapter *sc = td_adapter(td); + int tid = toep->tid; + + KASSERT(toepcb_flag(toep, TPF_CPL_PENDING) == 0, + ("%s: %p has CPL pending.", __func__, toep)); + KASSERT(toepcb_flag(toep, TPF_ATTACHED) == 0, + ("%s: %p is still attached.", __func__, toep)); + + CTR4(KTR_CXGBE, "%s: toep %p (tid %d, l2te %p)", + __func__, toep, tid, toep->l2te); + + if (toep->l2te) + t4_l2t_release(toep->l2te); + + if (tid >= 0) { + remove_tid(sc, tid); + release_tid(sc, tid, toep->ctrlq); + } + + mtx_lock(&td->toep_list_lock); + TAILQ_REMOVE(&td->toep_list, toep, link); + mtx_unlock(&td->toep_list_lock); + + free_toepcb(toep); +} + +/* + * The kernel is done with the TCP PCB and this is our opportunity to unhook the + * toepcb hanging off of it. If the TOE driver is also done with the toepcb (no + * pending CPL) then it is time to release all resources tied to the toepcb. + * + * Also gets called when an offloaded active open fails and the TOM wants the + * kernel to take the TCP PCB back. + */ +static void +t4_pcb_detach(struct toedev *tod __unused, struct tcpcb *tp) +{ +#if defined(KTR) || defined(INVARIANTS) + struct inpcb *inp = tp->t_inpcb; +#endif + struct toepcb *toep = tp->t_toe; + + INP_WLOCK_ASSERT(inp); + + KASSERT(toep != NULL, ("%s: toep is NULL", __func__)); + KASSERT(toepcb_flag(toep, TPF_ATTACHED), + ("%s: not attached", __func__)); + +#ifdef KTR + if (tp->t_state == TCPS_SYN_SENT) { + CTR6(KTR_CXGBE, "%s: atid %d, toep %p (0x%x), inp %p (0x%x)", + __func__, toep->tid, toep, toep->flags, inp, + inp->inp_flags); + } else { + CTR6(KTR_CXGBE, + "t4_pcb_detach: tid %d (%s), toep %p (0x%x), inp %p (0x%x)", + toep->tid, tcpstates[tp->t_state], toep, toep->flags, inp, + inp->inp_flags); + } +#endif + + tp->t_toe = NULL; + tp->t_flags &= ~TF_TOE; + toepcb_clr_flag(toep, TPF_ATTACHED); + + if (toepcb_flag(toep, TPF_CPL_PENDING) == 0) + release_offload_resources(toep); +} + +/* + * The TOE driver will not receive any more CPLs for the tid associated with the + * toepcb; release the hold on the inpcb. + */ +void +final_cpl_received(struct toepcb *toep) +{ + struct inpcb *inp = toep->inp; + + KASSERT(inp != NULL, ("%s: inp is NULL", __func__)); + INP_WLOCK_ASSERT(inp); + KASSERT(toepcb_flag(toep, TPF_CPL_PENDING), + ("%s: CPL not pending already?", __func__)); + + CTR6(KTR_CXGBE, "%s: tid %d, toep %p (0x%x), inp %p (0x%x)", + __func__, toep->tid, toep, toep->flags, inp, inp->inp_flags); + + toep->inp = NULL; + toepcb_clr_flag(toep, TPF_CPL_PENDING); + + if (toepcb_flag(toep, TPF_ATTACHED) == 0) + release_offload_resources(toep); + + if (!in_pcbrele_wlocked(inp)) + INP_WUNLOCK(inp); +} + +void +insert_tid(struct adapter *sc, int tid, void *ctx) +{ + struct tid_info *t = &sc->tids; + + t->tid_tab[tid] = ctx; + atomic_add_int(&t->tids_in_use, 1); +} + +void * +lookup_tid(struct adapter *sc, int tid) +{ + struct tid_info *t = &sc->tids; + + return (t->tid_tab[tid]); +} + +void +update_tid(struct adapter *sc, int tid, void *ctx) +{ + struct tid_info *t = &sc->tids; + + t->tid_tab[tid] = ctx; +} + +void +remove_tid(struct adapter *sc, int tid) +{ + struct tid_info *t = &sc->tids; + + t->tid_tab[tid] = NULL; + atomic_subtract_int(&t->tids_in_use, 1); +} + +void +release_tid(struct adapter *sc, int tid, struct sge_wrq *ctrlq) +{ + struct wrqe *wr; + struct cpl_tid_release *req; + + wr = alloc_wrqe(sizeof(*req), ctrlq); + if (wr == NULL) { + queue_tid_release(sc, tid); /* defer */ + return; + } + req = wrtod(wr); + + INIT_TP_WR_MIT_CPL(req, CPL_TID_RELEASE, tid); + + t4_wrq_tx(sc, wr); +} + +static void +queue_tid_release(struct adapter *sc, int tid) +{ + + CXGBE_UNIMPLEMENTED("deferred tid release"); +} + +/* + * What mtu_idx to use, given a 4-tuple and/or an MSS cap + */ +int +find_best_mtu_idx(struct adapter *sc, struct in_conninfo *inc, int pmss) +{ + unsigned short *mtus = &sc->params.mtus[0]; + int i = 0, mss; + + KASSERT(inc != NULL || pmss > 0, + ("%s: at least one of inc/pmss must be specified", __func__)); + + mss = inc ? tcp_mssopt(inc) : pmss; + if (pmss > 0 && mss > pmss) + mss = pmss; + + while (i < NMTUS - 1 && mtus[i + 1] <= mss + 40) + ++i; + + return (i); +} + +/* + * Determine the receive window size for a socket. + */ +u_long +select_rcv_wnd(struct socket *so) +{ + unsigned long wnd; + + SOCKBUF_LOCK_ASSERT(&so->so_rcv); + + wnd = sbspace(&so->so_rcv); + if (wnd < MIN_RCV_WND) + wnd = MIN_RCV_WND; + + return min(wnd, MAX_RCV_WND); +} + +int +select_rcv_wscale(void) +{ + int wscale = 0; + unsigned long space = sb_max; + + if (space > MAX_RCV_WND) + space = MAX_RCV_WND; + + while (wscale < TCP_MAX_WINSHIFT && (TCP_MAXWIN << wscale) < space) + wscale++; + + return (wscale); +} + +extern int always_keepalive; +#define VIID_SMACIDX(v) (((unsigned int)(v) & 0x7f) << 1) + +/* + * socket so could be a listening socket too. + */ +uint64_t +calc_opt0(struct socket *so, struct port_info *pi, struct l2t_entry *e, + int mtu_idx, int rscale, int rx_credits, int ulp_mode) +{ + uint64_t opt0; + + KASSERT(rx_credits <= M_RCV_BUFSIZ, + ("%s: rcv_bufsiz too high", __func__)); + + opt0 = F_TCAM_BYPASS | V_WND_SCALE(rscale) | V_MSS_IDX(mtu_idx) | + V_ULP_MODE(ulp_mode) | V_RCV_BUFSIZ(rx_credits); + + if (so != NULL) { + struct inpcb *inp = sotoinpcb(so); + struct tcpcb *tp = intotcpcb(inp); + int keepalive = always_keepalive || + so_options_get(so) & SO_KEEPALIVE; + + opt0 |= V_NAGLE((tp->t_flags & TF_NODELAY) == 0); + opt0 |= V_KEEP_ALIVE(keepalive != 0); + } + + if (e != NULL) + opt0 |= V_L2T_IDX(e->idx); + + if (pi != NULL) { + opt0 |= V_SMAC_SEL(VIID_SMACIDX(pi->viid)); + opt0 |= V_TX_CHAN(pi->tx_chan); + } + + return htobe64(opt0); +} + +#define FILTER_SEL_WIDTH_P_FC (3 + 1) +#define FILTER_SEL_WIDTH_VIN_P_FC (6 + 7 + FILTER_SEL_WIDTH_P_FC) +#define FILTER_SEL_WIDTH_TAG_P_FC (3 + FILTER_SEL_WIDTH_VIN_P_FC) +#define FILTER_SEL_WIDTH_VLD_TAG_P_FC (1 + FILTER_SEL_WIDTH_TAG_P_FC) +#define VLAN_NONE 0xfff +#define FILTER_SEL_VLAN_NONE 0xffff + +uint32_t +select_ntuple(struct port_info *pi, struct l2t_entry *e, uint32_t filter_mode) +{ + uint16_t viid = pi->viid; + uint32_t ntuple = 0; + + if (filter_mode == HW_TPL_FR_MT_PR_IV_P_FC) { + if (e->vlan == VLAN_NONE) + ntuple |= FILTER_SEL_VLAN_NONE << FILTER_SEL_WIDTH_P_FC; + else { + ntuple |= e->vlan << FILTER_SEL_WIDTH_P_FC; + ntuple |= 1 << FILTER_SEL_WIDTH_VLD_TAG_P_FC; + } + ntuple |= e->lport << S_PORT; + ntuple |= IPPROTO_TCP << FILTER_SEL_WIDTH_VLD_TAG_P_FC; + } else if (filter_mode == HW_TPL_FR_MT_PR_OV_P_FC) { + ntuple |= G_FW_VIID_VIN(viid) << FILTER_SEL_WIDTH_P_FC; + ntuple |= G_FW_VIID_PFN(viid) << FILTER_SEL_WIDTH_VIN_P_FC; + ntuple |= G_FW_VIID_VIVLD(viid) << FILTER_SEL_WIDTH_TAG_P_FC; + ntuple |= e->lport << S_PORT; + ntuple |= IPPROTO_TCP << FILTER_SEL_WIDTH_VLD_TAG_P_FC; + } + + return (htobe32(ntuple)); +} + +static int +alloc_tid_tabs(struct tid_info *t) +{ + size_t size; + unsigned int i; + + size = t->ntids * sizeof(*t->tid_tab) + + t->natids * sizeof(*t->atid_tab) + + t->nstids * sizeof(*t->stid_tab); + + t->tid_tab = malloc(size, M_CXGBE, M_ZERO | M_NOWAIT); + if (t->tid_tab == NULL) + return (ENOMEM); + + mtx_init(&t->atid_lock, "atid lock", NULL, MTX_DEF); + t->atid_tab = (union aopen_entry *)&t->tid_tab[t->ntids]; + t->afree = t->atid_tab; + t->atids_in_use = 0; + for (i = 1; i < t->natids; i++) + t->atid_tab[i - 1].next = &t->atid_tab[i]; + t->atid_tab[t->natids - 1].next = NULL; + + mtx_init(&t->stid_lock, "stid lock", NULL, MTX_DEF); + t->stid_tab = (union serv_entry *)&t->atid_tab[t->natids]; + t->sfree = t->stid_tab; + t->stids_in_use = 0; + for (i = 1; i < t->nstids; i++) + t->stid_tab[i - 1].next = &t->stid_tab[i]; + t->stid_tab[t->nstids - 1].next = NULL; + + atomic_store_rel_int(&t->tids_in_use, 0); + + return (0); +} + +static void +free_tid_tabs(struct tid_info *t) +{ + KASSERT(t->tids_in_use == 0, + ("%s: %d tids still in use.", __func__, t->tids_in_use)); + KASSERT(t->atids_in_use == 0, + ("%s: %d atids still in use.", __func__, t->atids_in_use)); + KASSERT(t->stids_in_use == 0, + ("%s: %d tids still in use.", __func__, t->stids_in_use)); + + free(t->tid_tab, M_CXGBE); + t->tid_tab = NULL; + + if (mtx_initialized(&t->atid_lock)) + mtx_destroy(&t->atid_lock); + if (mtx_initialized(&t->stid_lock)) + mtx_destroy(&t->stid_lock); +} + +static void +free_tom_data(struct adapter *sc, struct tom_data *td) +{ + KASSERT(TAILQ_EMPTY(&td->toep_list), + ("%s: TOE PCB list is not empty.", __func__)); + KASSERT(td->lctx_count == 0, + ("%s: lctx hash table is not empty.", __func__)); + + t4_uninit_l2t_cpl_handlers(sc); + + if (td->listen_mask != 0) + hashdestroy(td->listen_hash, M_CXGBE, td->listen_mask); + + if (mtx_initialized(&td->lctx_hash_lock)) + mtx_destroy(&td->lctx_hash_lock); + if (mtx_initialized(&td->toep_list_lock)) + mtx_destroy(&td->toep_list_lock); + + free_tid_tabs(&sc->tids); + free(td, M_CXGBE); +} + +/* + * Ground control to Major TOM + * Commencing countdown, engines on + */ +static int +t4_tom_activate(struct adapter *sc) +{ + struct tom_data *td; + struct toedev *tod; + int i, rc; + + ADAPTER_LOCK_ASSERT_OWNED(sc); /* for sc->flags */ + + /* per-adapter softc for TOM */ + td = malloc(sizeof(*td), M_CXGBE, M_ZERO | M_NOWAIT); + if (td == NULL) + return (ENOMEM); + + /* List of TOE PCBs and associated lock */ + mtx_init(&td->toep_list_lock, "PCB list lock", NULL, MTX_DEF); + TAILQ_INIT(&td->toep_list); + + /* Listen context */ + mtx_init(&td->lctx_hash_lock, "lctx hash lock", NULL, MTX_DEF); + td->listen_hash = hashinit_flags(LISTEN_HASH_SIZE, M_CXGBE, + &td->listen_mask, HASH_NOWAIT); + + /* TID tables */ + rc = alloc_tid_tabs(&sc->tids); + if (rc != 0) + goto done; + + /* CPL handlers */ + t4_init_connect_cpl_handlers(sc); + t4_init_l2t_cpl_handlers(sc); + t4_init_listen_cpl_handlers(sc); + t4_init_cpl_io_handlers(sc); + + /* toedev ops */ + tod = &td->tod; + init_toedev(tod); + tod->tod_softc = sc; + tod->tod_connect = t4_connect; + tod->tod_listen_start = t4_listen_start; + tod->tod_listen_stop = t4_listen_stop; + tod->tod_rcvd = t4_rcvd; + tod->tod_output = t4_tod_output; + tod->tod_send_rst = t4_send_rst; + tod->tod_send_fin = t4_send_fin; + tod->tod_pcb_detach = t4_pcb_detach; + tod->tod_l2_update = t4_l2_update; + tod->tod_syncache_added = t4_syncache_added; + tod->tod_syncache_removed = t4_syncache_removed; + tod->tod_syncache_respond = t4_syncache_respond; + tod->tod_offload_socket = t4_offload_socket; + + for_each_port(sc, i) + TOEDEV(sc->port[i]->ifp) = &td->tod; + + sc->tom_softc = td; + sc->flags |= TOM_INIT_DONE; + register_toedev(sc->tom_softc); + +done: + if (rc != 0) + free_tom_data(sc, td); + return (rc); +} + +static int +t4_tom_deactivate(struct adapter *sc) +{ + int rc = 0; + struct tom_data *td = sc->tom_softc; + + ADAPTER_LOCK_ASSERT_OWNED(sc); /* for sc->flags */ + + if (td == NULL) + return (0); /* XXX. KASSERT? */ + + if (sc->offload_map != 0) + return (EBUSY); /* at least one port has IFCAP_TOE enabled */ + + mtx_lock(&td->toep_list_lock); + if (!TAILQ_EMPTY(&td->toep_list)) + rc = EBUSY; + mtx_unlock(&td->toep_list_lock); + + mtx_lock(&td->lctx_hash_lock); + if (td->lctx_count > 0) + rc = EBUSY; + mtx_unlock(&td->lctx_hash_lock); + + if (rc == 0) { + unregister_toedev(sc->tom_softc); + free_tom_data(sc, td); + sc->tom_softc = NULL; + sc->flags &= ~TOM_INIT_DONE; + } + + return (rc); +} + +static int +t4_tom_mod_load(void) +{ + int rc; + + rc = t4_register_uld(&tom_uld_info); + if (rc != 0) + t4_tom_mod_unload(); + + return (rc); +} + +static void +tom_uninit(struct adapter *sc, void *arg __unused) +{ + /* Try to free resources (works only if no port has IFCAP_TOE) */ + ADAPTER_LOCK(sc); + if (sc->flags & TOM_INIT_DONE) + t4_deactivate_uld(sc, ULD_TOM); + ADAPTER_UNLOCK(sc); +} + +static int +t4_tom_mod_unload(void) +{ + t4_iterate(tom_uninit, NULL); + + if (t4_unregister_uld(&tom_uld_info) == EBUSY) + return (EBUSY); + + return (0); +} +#endif /* TCP_OFFLOAD */ + +static int +t4_tom_modevent(module_t mod, int cmd, void *arg) +{ + int rc = 0; + +#ifdef TCP_OFFLOAD + switch (cmd) { + case MOD_LOAD: + rc = t4_tom_mod_load(); + break; + + case MOD_UNLOAD: + rc = t4_tom_mod_unload(); + break; + + default: + rc = EINVAL; + } +#else + printf("t4_tom: compiled without TCP_OFFLOAD support.\n"); + rc = EOPNOTSUPP; +#endif + return (rc); +} + +static moduledata_t t4_tom_moddata= { + "t4_tom", + t4_tom_modevent, + 0 +}; + +MODULE_VERSION(t4_tom, 1); +MODULE_DEPEND(t4_tom, toecore, 1, 1, 1); +MODULE_DEPEND(t4_tom, t4nex, 1, 1, 1); +DECLARE_MODULE(t4_tom, t4_tom_moddata, SI_SUB_EXEC, SI_ORDER_ANY); diff --git a/sys/dev/cxgbe/tom/t4_tom.h b/sys/dev/cxgbe/tom/t4_tom.h new file mode 100644 index 000000000000..4e171e7b5b5a --- /dev/null +++ b/sys/dev/cxgbe/tom/t4_tom.h @@ -0,0 +1,248 @@ +/*- + * Copyright (c) 2012 Chelsio Communications, Inc. + * All rights reserved. + * Written by: Navdeep Parhar + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + * + */ + +#ifndef __T4_TOM_H__ +#define __T4_TOM_H__ + +#define KTR_CXGBE KTR_SPARE3 +#define LISTEN_HASH_SIZE 32 + +/* + * Min receive window. We want it to be large enough to accommodate receive + * coalescing, handle jumbo frames, and not trigger sender SWS avoidance. + */ +#define MIN_RCV_WND (24 * 1024U) + +/* + * Max receive window supported by HW in bytes. Only a small part of it can + * be set through option0, the rest needs to be set through RX_DATA_ACK. + */ +#define MAX_RCV_WND ((1U << 27) - 1) + +/* TOE PCB flags */ +enum { + TPF_ATTACHED, /* a tcpcb refers to this toepcb */ + TPF_FLOWC_WR_SENT, /* firmware flow context WR sent */ + TPF_TX_DATA_SENT, /* some data sent */ + TPF_TX_SUSPENDED, /* tx suspended for lack of resources */ + TPF_SEND_FIN, /* send FIN after sending all pending data */ + TPF_FIN_SENT, /* FIN has been sent */ + TPF_ABORT_SHUTDOWN, /* connection abort is in progress */ + TPF_CPL_PENDING, /* haven't received the last CPL */ + TPF_SYNQE, /* synq_entry, not really a toepcb */ + TPF_SYNQE_NEEDFREE, /* synq_entry was allocated externally */ +}; + +struct ofld_tx_sdesc { + uint32_t plen; /* payload length */ + uint8_t tx_credits; /* firmware tx credits (unit is 16B) */ +}; + +struct toepcb { + TAILQ_ENTRY(toepcb) link; /* toep_list */ + unsigned int flags; /* miscellaneous flags */ + struct tom_data *td; + struct inpcb *inp; /* backpointer to host stack's PCB */ + struct port_info *port; /* physical port */ + struct sge_wrq *ofld_txq; + struct sge_ofld_rxq *ofld_rxq; + struct sge_wrq *ctrlq; + struct l2t_entry *l2te; /* L2 table entry used by this connection */ + int tid; /* Connection identifier */ + unsigned int tx_credits;/* tx WR credits (in 16 byte units) remaining */ + unsigned int enqueued; /* # of bytes added to so_rcv (not yet read) */ + int rx_credits; /* rx credits (in bytes) to be returned to hw */ + + unsigned int ulp_mode; /* ULP mode */ + + /* Tx software descriptor */ + uint8_t txsd_total; + uint8_t txsd_pidx; + uint8_t txsd_cidx; + uint8_t txsd_avail; + struct ofld_tx_sdesc txsd[]; +}; + +struct flowc_tx_params { + uint32_t snd_nxt; + uint32_t rcv_nxt; + unsigned int snd_space; + unsigned int mss; +}; + +static inline int +toepcb_flag(struct toepcb *toep, int flag) +{ + + return isset(&toep->flags, flag); +} + +static inline void +toepcb_set_flag(struct toepcb *toep, int flag) +{ + + setbit(&toep->flags, flag); +} + +static inline void +toepcb_clr_flag(struct toepcb *toep, int flag) +{ + + clrbit(&toep->flags, flag); +} + +/* + * Compressed state for embryonic connections for a listener. Barely fits in + * 64B, try not to grow it further. + */ +struct synq_entry { + TAILQ_ENTRY(synq_entry) link; /* listen_ctx's synq link */ + int flags; /* same as toepcb's tp_flags */ + int tid; + struct listen_ctx *lctx; /* backpointer to listen ctx */ + struct mbuf *syn; + uint32_t iss; + uint32_t ts; + volatile uintptr_t wr; + volatile u_int refcnt; + uint16_t l2e_idx; + uint16_t rcv_bufsize; +}; + +static inline int +synqe_flag(struct synq_entry *synqe, int flag) +{ + + return isset(&synqe->flags, flag); +} + +static inline void +synqe_set_flag(struct synq_entry *synqe, int flag) +{ + + setbit(&synqe->flags, flag); +} + +static inline void +synqe_clr_flag(struct synq_entry *synqe, int flag) +{ + + clrbit(&synqe->flags, flag); +} + +/* listen_ctx flags */ +#define LCTX_RPL_PENDING 1 /* waiting for a CPL_PASS_OPEN_RPL */ + +struct listen_ctx { + LIST_ENTRY(listen_ctx) link; /* listen hash linkage */ + volatile int refcount; + int stid; + int flags; + struct inpcb *inp; /* listening socket's inp */ + struct sge_wrq *ctrlq; + struct sge_ofld_rxq *ofld_rxq; + TAILQ_HEAD(, synq_entry) synq; +}; + +struct tom_data { + struct toedev tod; + + /* toepcb's associated with this TOE device */ + struct mtx toep_list_lock; + TAILQ_HEAD(, toepcb) toep_list; + + LIST_HEAD(, listen_ctx) *listen_hash; + u_long listen_mask; + int lctx_count; /* # of lctx in the hash table */ + struct mtx lctx_hash_lock; +}; + +static inline struct tom_data * +tod_td(struct toedev *tod) +{ + + return (member2struct(tom_data, tod, tod)); +} + +static inline struct adapter * +td_adapter(struct tom_data *td) +{ + + return (td->tod.tod_softc); +} + +/* t4_tom.c */ +struct toepcb *alloc_toepcb(struct port_info *, int, int, int); +void free_toepcb(struct toepcb *); +void offload_socket(struct socket *, struct toepcb *); +void undo_offload_socket(struct socket *); +void final_cpl_received(struct toepcb *); +void insert_tid(struct adapter *, int, void *); +void *lookup_tid(struct adapter *, int); +void update_tid(struct adapter *, int, void *); +void remove_tid(struct adapter *, int); +void release_tid(struct adapter *, int, struct sge_wrq *); +int find_best_mtu_idx(struct adapter *, struct in_conninfo *, int); +u_long select_rcv_wnd(struct socket *); +int select_rcv_wscale(void); +uint64_t calc_opt0(struct socket *, struct port_info *, struct l2t_entry *, + int, int, int, int); +uint32_t select_ntuple(struct port_info *, struct l2t_entry *, uint32_t); + +/* t4_connect.c */ +void t4_init_connect_cpl_handlers(struct adapter *); +int t4_connect(struct toedev *, struct socket *, struct rtentry *, + struct sockaddr *); + +/* t4_listen.c */ +void t4_init_listen_cpl_handlers(struct adapter *); +int t4_listen_start(struct toedev *, struct tcpcb *); +int t4_listen_stop(struct toedev *, struct tcpcb *); +void t4_syncache_added(struct toedev *, void *); +void t4_syncache_removed(struct toedev *, void *); +int t4_syncache_respond(struct toedev *, void *, struct mbuf *); +int do_abort_req_synqe(struct sge_iq *, const struct rss_header *, + struct mbuf *); +int do_abort_rpl_synqe(struct sge_iq *, const struct rss_header *, + struct mbuf *); +void t4_offload_socket(struct toedev *, void *, struct socket *); + +/* t4_cpl_io.c */ +void t4_init_cpl_io_handlers(struct adapter *); +void send_abort_rpl(struct adapter *, struct sge_wrq *, int , int); +void send_flowc_wr(struct toepcb *, struct flowc_tx_params *); +void send_reset(struct adapter *, struct toepcb *, uint32_t); +void make_established(struct toepcb *, uint32_t, uint32_t, uint16_t); +void t4_rcvd(struct toedev *, struct tcpcb *); +int t4_tod_output(struct toedev *, struct tcpcb *); +int t4_send_fin(struct toedev *, struct tcpcb *); +int t4_send_rst(struct toedev *, struct tcpcb *); + +#endif diff --git a/sys/dev/cxgbe/tom/t4_tom_l2t.c b/sys/dev/cxgbe/tom/t4_tom_l2t.c new file mode 100644 index 000000000000..ffe64c5be6ea --- /dev/null +++ b/sys/dev/cxgbe/tom/t4_tom_l2t.c @@ -0,0 +1,405 @@ +/*- + * Copyright (c) 2012 Chelsio Communications, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ +#include +__FBSDID("$FreeBSD$"); + +#include "opt_inet.h" + +#ifdef TCP_OFFLOAD +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "common/common.h" +#include "common/jhash.h" +#include "common/t4_msg.h" +#include "tom/t4_tom_l2t.h" +#include "tom/t4_tom.h" + +#define VLAN_NONE 0xfff + +#define SA(x) ((struct sockaddr *)(x)) +#define SIN(x) ((struct sockaddr_in *)(x)) +#define SINADDR(x) (SIN(x)->sin_addr.s_addr) + +static inline void +l2t_hold(struct l2t_data *d, struct l2t_entry *e) +{ + if (atomic_fetchadd_int(&e->refcnt, 1) == 0) /* 0 -> 1 transition */ + atomic_subtract_int(&d->nfree, 1); +} + +static inline unsigned int +arp_hash(const uint32_t key, int ifindex) +{ + return jhash_2words(key, ifindex, 0) & (L2T_SIZE - 1); +} + +/* + * Add a WR to an L2T entry's queue of work requests awaiting resolution. + * Must be called with the entry's lock held. + */ +static inline void +arpq_enqueue(struct l2t_entry *e, struct wrqe *wr) +{ + mtx_assert(&e->lock, MA_OWNED); + + STAILQ_INSERT_TAIL(&e->wr_list, wr, link); +} + +static inline void +send_pending(struct adapter *sc, struct l2t_entry *e) +{ + struct wrqe *wr; + + mtx_assert(&e->lock, MA_OWNED); + + while ((wr = STAILQ_FIRST(&e->wr_list)) != NULL) { + STAILQ_REMOVE_HEAD(&e->wr_list, link); + t4_wrq_tx(sc, wr); + } +} + +static void +resolution_failed_for_wr(struct wrqe *wr) +{ + log(LOG_ERR, "%s: leaked work request %p, wr_len %d", __func__, wr, + wr->wr_len); + + /* free(wr, M_CXGBE); */ +} + +static void +resolution_failed(struct l2t_entry *e) +{ + struct wrqe *wr; + + mtx_assert(&e->lock, MA_OWNED); + + while ((wr = STAILQ_FIRST(&e->wr_list)) != NULL) { + STAILQ_REMOVE_HEAD(&e->wr_list, link); + resolution_failed_for_wr(wr); + } +} + +static void +update_entry(struct adapter *sc, struct l2t_entry *e, uint8_t *lladdr, + uint16_t vtag) +{ + + mtx_assert(&e->lock, MA_OWNED); + + /* + * The entry may be in active use (e->refcount > 0) or not. We update + * it even when it's not as this simplifies the case where we decide to + * reuse the entry later. + */ + + if (lladdr == NULL && + (e->state == L2T_STATE_RESOLVING || e->state == L2T_STATE_FAILED)) { + /* + * Never got a valid L2 address for this one. Just mark it as + * failed instead of removing it from the hash (for which we'd + * need to wlock the table). + */ + e->state = L2T_STATE_FAILED; + resolution_failed(e); + return; + + } else if (lladdr == NULL) { + + /* Valid or already-stale entry was deleted (or expired) */ + + KASSERT(e->state == L2T_STATE_VALID || + e->state == L2T_STATE_STALE, + ("%s: lladdr NULL, state %d", __func__, e->state)); + + e->state = L2T_STATE_STALE; + + } else { + + if (e->state == L2T_STATE_RESOLVING || + e->state == L2T_STATE_FAILED || + memcmp(e->dmac, lladdr, ETHER_ADDR_LEN)) { + + /* unresolved -> resolved; or dmac changed */ + + memcpy(e->dmac, lladdr, ETHER_ADDR_LEN); + e->vlan = vtag; + t4_write_l2e(sc, e, 1); + } + e->state = L2T_STATE_VALID; + } +} + +static int +resolve_entry(struct adapter *sc, struct l2t_entry *e) +{ + struct tom_data *td = sc->tom_softc; + struct toedev *tod = &td->tod; + struct sockaddr_in sin = {0}; + uint8_t dmac[ETHER_ADDR_LEN]; + uint16_t vtag = VLAN_NONE; + int rc; + + sin.sin_family = AF_INET; + sin.sin_len = sizeof(struct sockaddr_in); + SINADDR(&sin) = e->addr; + + rc = toe_l2_resolve(tod, e->ifp, SA(&sin), dmac, &vtag); + if (rc == EWOULDBLOCK) + return (rc); + + mtx_lock(&e->lock); + update_entry(sc, e, rc == 0 ? dmac : NULL, vtag); + mtx_unlock(&e->lock); + + return (rc); +} + +int +t4_l2t_send_slow(struct adapter *sc, struct wrqe *wr, struct l2t_entry *e) +{ + +again: + switch (e->state) { + case L2T_STATE_STALE: /* entry is stale, kick off revalidation */ + + if (resolve_entry(sc, e) != EWOULDBLOCK) + goto again; /* entry updated, re-examine state */ + + /* Fall through */ + + case L2T_STATE_VALID: /* fast-path, send the packet on */ + + t4_wrq_tx(sc, wr); + return (0); + + case L2T_STATE_RESOLVING: + case L2T_STATE_SYNC_WRITE: + + mtx_lock(&e->lock); + if (e->state != L2T_STATE_SYNC_WRITE && + e->state != L2T_STATE_RESOLVING) { + /* state changed by the time we got here */ + mtx_unlock(&e->lock); + goto again; + } + arpq_enqueue(e, wr); + mtx_unlock(&e->lock); + + if (resolve_entry(sc, e) == EWOULDBLOCK) + break; + + mtx_lock(&e->lock); + if (e->state == L2T_STATE_VALID && !STAILQ_EMPTY(&e->wr_list)) + send_pending(sc, e); + if (e->state == L2T_STATE_FAILED) + resolution_failed(e); + mtx_unlock(&e->lock); + break; + + case L2T_STATE_FAILED: + resolution_failed_for_wr(wr); + return (EHOSTUNREACH); + } + + return (0); +} + +/* + * Called when an L2T entry has no more users. The entry is left in the hash + * table since it is likely to be reused but we also bump nfree to indicate + * that the entry can be reallocated for a different neighbor. We also drop + * the existing neighbor reference in case the neighbor is going away and is + * waiting on our reference. + * + * Because entries can be reallocated to other neighbors once their ref count + * drops to 0 we need to take the entry's lock to avoid races with a new + * incarnation. + */ + +static int +do_l2t_write_rpl2(struct sge_iq *iq, const struct rss_header *rss, + struct mbuf *m) +{ + struct adapter *sc = iq->adapter; + const struct cpl_l2t_write_rpl *rpl = (const void *)(rss + 1); + unsigned int tid = GET_TID(rpl); + unsigned int idx = tid & (L2T_SIZE - 1); + int rc; + + rc = do_l2t_write_rpl(iq, rss, m); + if (rc != 0) + return (rc); + + if (tid & F_SYNC_WR) { + struct l2t_entry *e = &sc->l2t->l2tab[idx]; + + mtx_lock(&e->lock); + if (e->state != L2T_STATE_SWITCHING) { + send_pending(sc, e); + e->state = L2T_STATE_VALID; + } + mtx_unlock(&e->lock); + } + + return (0); +} + +void +t4_init_l2t_cpl_handlers(struct adapter *sc) +{ + + t4_register_cpl_handler(sc, CPL_L2T_WRITE_RPL, do_l2t_write_rpl2); +} + +void +t4_uninit_l2t_cpl_handlers(struct adapter *sc) +{ + + t4_register_cpl_handler(sc, CPL_L2T_WRITE_RPL, do_l2t_write_rpl); +} + +/* + * The TOE wants an L2 table entry that it can use to reach the next hop over + * the specified port. Produce such an entry - create one if needed. + * + * Note that the ifnet could be a pseudo-device like if_vlan, if_lagg, etc. on + * top of the real cxgbe interface. + */ +struct l2t_entry * +t4_l2t_get(struct port_info *pi, struct ifnet *ifp, struct sockaddr *sa) +{ + struct l2t_entry *e; + struct l2t_data *d = pi->adapter->l2t; + uint32_t addr = SINADDR(sa); + int hash = arp_hash(addr, ifp->if_index); + unsigned int smt_idx = pi->port_id; + + if (sa->sa_family != AF_INET) + return (NULL); /* XXX: no IPv6 support right now */ + +#ifndef VLAN_TAG + if (ifp->if_type == IFT_L2VLAN) + return (NULL); +#endif + + rw_wlock(&d->lock); + for (e = d->l2tab[hash].first; e; e = e->next) { + if (e->addr == addr && e->ifp == ifp && e->smt_idx == smt_idx) { + l2t_hold(d, e); + goto done; + } + } + + /* Need to allocate a new entry */ + e = t4_alloc_l2e(d); + if (e) { + mtx_lock(&e->lock); /* avoid race with t4_l2t_free */ + e->next = d->l2tab[hash].first; + d->l2tab[hash].first = e; + + e->state = L2T_STATE_RESOLVING; + e->addr = addr; + e->ifp = ifp; + e->smt_idx = smt_idx; + e->hash = hash; + e->lport = pi->lport; + atomic_store_rel_int(&e->refcnt, 1); +#ifdef VLAN_TAG + if (ifp->if_type == IFT_L2VLAN) + VLAN_TAG(ifp, &e->vlan); + else + e->vlan = VLAN_NONE; +#endif + mtx_unlock(&e->lock); + } +done: + rw_wunlock(&d->lock); + return e; +} + +/* + * Called when the host's ARP layer makes a change to some entry that is loaded + * into the HW L2 table. + */ +void +t4_l2_update(struct toedev *tod, struct ifnet *ifp, struct sockaddr *sa, + uint8_t *lladdr, uint16_t vtag) +{ + struct adapter *sc = tod->tod_softc; + struct l2t_entry *e; + struct l2t_data *d = sc->l2t; + uint32_t addr = SINADDR(sa); + int hash = arp_hash(addr, ifp->if_index); + + KASSERT(d != NULL, ("%s: no L2 table", __func__)); + + rw_rlock(&d->lock); + for (e = d->l2tab[hash].first; e; e = e->next) { + if (e->addr == addr && e->ifp == ifp) { + mtx_lock(&e->lock); + if (atomic_load_acq_int(&e->refcnt)) + goto found; + e->state = L2T_STATE_STALE; + mtx_unlock(&e->lock); + break; + } + } + rw_runlock(&d->lock); + + /* + * This is of no interest to us. We've never had an offloaded + * connection to this destination, and we aren't attempting one right + * now. + */ + return; + +found: + rw_runlock(&d->lock); + + KASSERT(e->state != L2T_STATE_UNUSED, + ("%s: unused entry in the hash.", __func__)); + + update_entry(sc, e, lladdr, vtag); + mtx_unlock(&e->lock); +} +#endif diff --git a/sys/dev/cxgbe/tom/t4_tom_l2t.h b/sys/dev/cxgbe/tom/t4_tom_l2t.h new file mode 100644 index 000000000000..3d76735707e3 --- /dev/null +++ b/sys/dev/cxgbe/tom/t4_tom_l2t.h @@ -0,0 +1,53 @@ +/*- + * Copyright (c) 2012 Chelsio Communications, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + * + */ + +#ifndef __T4_TOM_L2T_H +#define __T4_TOM_L2T_H + +#include "t4_l2t.h" + +int t4_l2t_send_slow(struct adapter *, struct wrqe *, struct l2t_entry *); +struct l2t_entry *t4_l2t_get(struct port_info *, struct ifnet *, + struct sockaddr *); +void t4_l2_update(struct toedev *, struct ifnet *, struct sockaddr *, + uint8_t *, uint16_t); +void t4_init_l2t_cpl_handlers(struct adapter *); +void t4_uninit_l2t_cpl_handlers(struct adapter *); + +static inline int +t4_l2t_send(struct adapter *sc, struct wrqe *wr, struct l2t_entry *e) +{ + if (__predict_true(e->state == L2T_STATE_VALID)) { + t4_wrq_tx(sc, wr); + return (0); + } else + return (t4_l2t_send_slow(sc, wr, e)); +} + +#endif /* __T4_TOM_L2T_H */ diff --git a/sys/i386/conf/GENERIC b/sys/i386/conf/GENERIC index b857e24b0621..3ff96c9c9596 100644 --- a/sys/i386/conf/GENERIC +++ b/sys/i386/conf/GENERIC @@ -30,6 +30,7 @@ options SCHED_ULE # ULE scheduler options PREEMPTION # Enable kernel thread preemption options INET # InterNETworking options INET6 # IPv6 communications protocols +options TCP_OFFLOAD # TCP offload options SCTP # Stream Control Transmission Protocol options FFS # Berkeley Fast Filesystem options SOFTUPDATES # Enable FFS soft updates support diff --git a/sys/i386/conf/XEN b/sys/i386/conf/XEN index 0a289ea5daaa..a9c838cfa776 100644 --- a/sys/i386/conf/XEN +++ b/sys/i386/conf/XEN @@ -7,7 +7,7 @@ cpu I686_CPU ident XEN makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols -makeoptions WITHOUT_MODULES="aha ahb amd cxgb dpt drm drm2 hptmv ida malo mps mwl nve sound sym trm xfs" +makeoptions WITHOUT_MODULES="aha ahb amd cxgb dpt drm drm2 hptmv ida malo mps mwl nve rdma sound sym trm xfs" options SCHED_ULE # ULE scheduler options PREEMPTION # Enable kernel thread preemption diff --git a/sys/modules/Makefile b/sys/modules/Makefile index 0e6609194bc5..80ac632fffbf 100644 --- a/sys/modules/Makefile +++ b/sys/modules/Makefile @@ -314,6 +314,7 @@ SUBDIR= \ ${_ti} \ tl \ tmpfs \ + ${_toecore} \ ${_tpm} \ trm \ ${_twa} \ @@ -392,6 +393,7 @@ _random= random .if (${MK_INET_SUPPORT} != "no" || ${MK_INET6_SUPPORT} != "no") || \ defined(ALL_MODULES) _carp= carp +_toecore= toecore .endif .if ${MK_INET_SUPPORT} != "no" || defined(ALL_MODULES) diff --git a/sys/modules/cxgb/Makefile b/sys/modules/cxgb/Makefile index a6af8179daf2..325c70501209 100644 --- a/sys/modules/cxgb/Makefile +++ b/sys/modules/cxgb/Makefile @@ -1,39 +1,12 @@ # $FreeBSD$ SUBDIR= cxgb -SUBDIR+= ${_toecore} +SUBDIR+= cxgb_t3fw SUBDIR+= ${_tom} SUBDIR+= ${_iw_cxgb} -SUBDIR+= cxgb_t3fw -.if defined(SYSDIR) -_sysdir = ${SYSDIR} -.endif - -# Based on bsd.kmod.mk but we don't modify SYSDIR in this one. -.for _dir in ${.CURDIR}/../.. ${.CURDIR}/../../.. ${.CURDIR}/../../../.. \ - /sys /usr/src/sys -.if !defined(_sysdir) && exists(${_dir}/kern/) && exists(${_dir}/conf/kmod.mk) -_sysdir = ${_dir} -.endif -.endfor -.if !defined(_sysdir) || !exists(${_sysdir}/kern/) || \ - !exists(${_sysdir}/conf/kmod.mk) -.error "can't find kernel source tree" -.endif - -_toe_header = ${_sysdir}/netinet/toedev.h - -.if exists(${_toe_header}) -_toecore = toecore -#_tom = tom -.endif - -.if ${MACHINE_CPUARCH} == "i386" && exists(${_toe_header}) -_iw_cxgb = iw_cxgb -.endif - -.if ${MACHINE_CPUARCH} == "amd64" && exists(${_toe_header}) -_iw_cxgb = iw_cxgb +.if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386" +_tom= tom +_iw_cxgb= iw_cxgb .endif .include diff --git a/sys/modules/cxgb/cxgb/Makefile b/sys/modules/cxgb/cxgb/Makefile index ed4e22950d8e..8807eced4f2f 100644 --- a/sys/modules/cxgb/cxgb/Makefile +++ b/sys/modules/cxgb/cxgb/Makefile @@ -8,7 +8,7 @@ CXGB = ${.CURDIR}/../../../dev/cxgb KMOD= if_cxgb SRCS= cxgb_mc5.c cxgb_vsc8211.c cxgb_ael1002.c cxgb_mv88e1xxx.c SRCS+= cxgb_xgmac.c cxgb_vsc7323.c cxgb_t3_hw.c cxgb_main.c cxgb_aq100x.c -SRCS+= cxgb_sge.c cxgb_offload.c cxgb_tn1010.c +SRCS+= cxgb_sge.c cxgb_tn1010.c SRCS+= device_if.h bus_if.h pci_if.h SRCS+= opt_inet.h opt_inet6.h opt_zero.h opt_sched.h SRCS+= uipc_mvec.c @@ -19,6 +19,7 @@ CFLAGS+= -g -DDEFAULT_JUMBO -I${CXGB} .if ${MK_INET_SUPPORT} != "no" opt_inet.h: @echo "#define INET 1" > ${.TARGET} + @echo "#define TCP_OFFLOAD 1" >> ${.TARGET} .endif .if ${MK_INET6_SUPPORT} != "no" diff --git a/sys/modules/cxgb/iw_cxgb/Makefile b/sys/modules/cxgb/iw_cxgb/Makefile index 2cf2ef8ec60a..f633bd5c663a 100644 --- a/sys/modules/cxgb/iw_cxgb/Makefile +++ b/sys/modules/cxgb/iw_cxgb/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include + CXGB = ${.CURDIR}/../../../dev/cxgb .PATH: ${CXGB}/ulp/iw_cxgb @@ -8,8 +10,15 @@ SRCS= iw_cxgb.c iw_cxgb_cm.c iw_cxgb_hal.c SRCS+= iw_cxgb_provider.c iw_cxgb_qp.c iw_cxgb_resource.c SRCS+= iw_cxgb_ev.c iw_cxgb_mem.c iw_cxgb_dbg.c iw_cxgb_cq.c SRCS+= bus_if.h device_if.h opt_sched.h pci_if.h pcib_if.h opt_ktr.h -SRCS+= opt_inet.h -CFLAGS+= -g -I${CXGB} -#CFLAGS+= -DDEBUG +SRCS+= opt_inet.h opt_ofed.h vnode_if.h +CFLAGS+= -I${CXGB} -I${.CURDIR}/../../../ofed/include -DLINUX_TYPES_DEFINED + +.if !defined(KERNBUILDDIR) +.if ${MK_INET_SUPPORT} != "no" +opt_inet.h: + echo "#define INET 1" > ${.TARGET} + echo "#define TCP_OFFLOAD 1" >> ${.TARGET} +.endif +.endif .include diff --git a/sys/modules/cxgb/toecore/Makefile b/sys/modules/cxgb/toecore/Makefile deleted file mode 100644 index 43425196a87a..000000000000 --- a/sys/modules/cxgb/toecore/Makefile +++ /dev/null @@ -1,11 +0,0 @@ -# $FreeBSD$ - -CXGB = ${.CURDIR}/../../../dev/cxgb -.PATH: ${CXGB}/ulp/toecore - -KMOD= toecore -SRCS= toedev.c -SRCS+= device_if.h bus_if.h pci_if.h opt_sched.h opt_inet.h -CFLAGS+= -g -I${CXGB} - -.include diff --git a/sys/modules/cxgb/tom/Makefile b/sys/modules/cxgb/tom/Makefile index 4c226705e400..8b08fe273e1e 100644 --- a/sys/modules/cxgb/tom/Makefile +++ b/sys/modules/cxgb/tom/Makefile @@ -1,15 +1,25 @@ # $FreeBSD$ +.include + CXGB = ${.CURDIR}/../../../dev/cxgb .PATH: ${CXGB}/ulp/tom -KMOD= tom -SRCS= cxgb_tom.c cxgb_cpl_io.c cxgb_listen.c cxgb_tom_sysctl.c cxgb_cpl_socket.c -SRCS+= cxgb_ddp.c cxgb_vm.c cxgb_l2t.c cxgb_tcp_offload.c +KMOD= t3_tom +SRCS= cxgb_tom.c cxgb_cpl_io.c cxgb_listen.c cxgb_l2t.c SRCS+= opt_compat.h opt_inet.h opt_inet6.h opt_ipsec.h SRCS+= opt_tcpdebug.h opt_ddb.h opt_sched.h opt_global.h opt_ktr.h SRCS+= device_if.h bus_if.h pci_if.h CFLAGS+= -g -I${CXGB} #CFLAGS+= -DDEBUG_PRINT -DDEBUG + +.if !defined(KERNBUILDDIR) +.if ${MK_INET_SUPPORT} != "no" +opt_inet.h: + echo "#define INET 1" > ${.TARGET} + echo "#define TCP_OFFLOAD 1" >> ${.TARGET} +.endif +.endif + .include diff --git a/sys/modules/cxgbe/Makefile b/sys/modules/cxgbe/Makefile index 1d69f761422e..5ec8dccd3c08 100644 --- a/sys/modules/cxgbe/Makefile +++ b/sys/modules/cxgbe/Makefile @@ -4,5 +4,10 @@ SUBDIR = if_cxgbe SUBDIR+= firmware +SUBDIR+= ${_tom} + +.if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386" +_tom= tom +.endif .include diff --git a/sys/modules/cxgbe/tom/Makefile b/sys/modules/cxgbe/tom/Makefile new file mode 100644 index 000000000000..647984dd4886 --- /dev/null +++ b/sys/modules/cxgbe/tom/Makefile @@ -0,0 +1,15 @@ +# +# $FreeBSD$ +# + +CXGBE = ${.CURDIR}/../../../dev/cxgbe +.PATH: ${CXGBE}/tom + +KMOD = t4_tom +SRCS = t4_tom.c t4_connect.c t4_listen.c t4_cpl_io.c t4_tom_l2t.c +SRCS+= device_if.h bus_if.h pci_if.h +SRCS+= opt_inet.h + +CFLAGS+= -I${CXGBE} + +.include diff --git a/sys/modules/rdma/krping/Makefile b/sys/modules/rdma/krping/Makefile index 5e4871b865f1..ae6cc808e693 100644 --- a/sys/modules/rdma/krping/Makefile +++ b/sys/modules/rdma/krping/Makefile @@ -6,5 +6,7 @@ RDMA= ${.CURDIR}/../../../contrib/rdma/krping KMOD= krping SRCS= krping.c krping_dev.c getopt.c SRCS+= bus_if.h device_if.h opt_sched.h pci_if.h pcib_if.h +SRCS+= vnode_if.h +CFLAGS+= -I${.CURDIR}/../../../ofed/include .include diff --git a/sys/modules/toecore/Makefile b/sys/modules/toecore/Makefile new file mode 100644 index 000000000000..0b30ab097521 --- /dev/null +++ b/sys/modules/toecore/Makefile @@ -0,0 +1,9 @@ +# $FreeBSD$ + +.PATH: ${.CURDIR}/../../netinet + +KMOD= toecore +SRCS= toecore.c +SRCS+= opt_ofed.h + +.include diff --git a/sys/net/if_var.h b/sys/net/if_var.h index ab078b8dd853..3d57953c47c7 100644 --- a/sys/net/if_var.h +++ b/sys/net/if_var.h @@ -712,6 +712,8 @@ drbr_inuse(struct ifnet *ifp, struct buf_ring *br) #define IF_MINMTU 72 #define IF_MAXMTU 65535 +#define TOEDEV(ifp) ((ifp)->if_llsoftc) + #endif /* _KERNEL */ /* diff --git a/sys/net/if_vlan.c b/sys/net/if_vlan.c index 95ed455c4ff9..122568084cdc 100644 --- a/sys/net/if_vlan.c +++ b/sys/net/if_vlan.c @@ -746,8 +746,8 @@ vlan_modevent(module_t mod, int type, void *data) vlan_trunk_cap_p = NULL; vlan_trunkdev_p = NULL; vlan_tag_p = NULL; - vlan_cookie_p = vlan_cookie; - vlan_setcookie_p = vlan_setcookie; + vlan_cookie_p = NULL; + vlan_setcookie_p = NULL; vlan_devat_p = NULL; VLAN_LOCK_DESTROY(); if (bootverbose) @@ -1503,6 +1503,22 @@ vlan_capabilities(struct ifvlan *ifv) ifp->if_capenable &= ~(p->if_capenable & IFCAP_TSO); ifp->if_hwassist &= ~(p->if_hwassist & CSUM_TSO); } + + /* + * If the parent interface can offload TCP connections over VLANs then + * propagate its TOE capability to the VLAN interface. + * + * All TOE drivers in the tree today can deal with VLANs. If this + * changes then IFCAP_VLAN_TOE should be promoted to a full capability + * with its own bit. + */ +#define IFCAP_VLAN_TOE IFCAP_TOE + if (p->if_capabilities & IFCAP_VLAN_TOE) + ifp->if_capabilities |= p->if_capabilities & IFCAP_TOE; + if (p->if_capenable & IFCAP_VLAN_TOE) { + TOEDEV(ifp) = TOEDEV(p); + ifp->if_capenable |= p->if_capenable & IFCAP_TOE; + } } static void diff --git a/sys/netinet/if_ether.c b/sys/netinet/if_ether.c index bdb4efca8ff2..d6a7fd11f92c 100644 --- a/sys/netinet/if_ether.c +++ b/sys/netinet/if_ether.c @@ -180,6 +180,17 @@ arptimer(void *arg) callout_active(&lle->la_timer)) { callout_stop(&lle->la_timer); LLE_REMREF(lle); + + if (lle->la_flags != LLE_DELETED) { + int evt; + + if (lle->la_flags & LLE_VALID) + evt = LLENTRY_EXPIRED; + else + evt = LLENTRY_TIMEDOUT; + EVENTHANDLER_INVOKE(lle_event, lle, evt); + } + pkts_dropped = llentry_free(lle); ARPSTAT_ADD(dropped, pkts_dropped); ARPSTAT_INC(timeouts); @@ -726,7 +737,7 @@ in_arpinput(struct mbuf *m) (void)memcpy(&la->ll_addr, ar_sha(ah), ifp->if_addrlen); la->la_flags |= LLE_VALID; - EVENTHANDLER_INVOKE(arp_update_event, la); + EVENTHANDLER_INVOKE(lle_event, la, LLENTRY_RESOLVED); if (!(la->la_flags & LLE_STATIC)) { int canceled; diff --git a/sys/netinet/if_ether.h b/sys/netinet/if_ether.h index 8d44d3587c08..e37a9642e0f2 100644 --- a/sys/netinet/if_ether.h +++ b/sys/netinet/if_ether.h @@ -122,8 +122,14 @@ void arp_ifinit2(struct ifnet *, struct ifaddr *, u_char *); void arp_ifscrub(struct ifnet *, uint32_t); #include -typedef void (*llevent_arp_update_fn)(void *, struct llentry *); -EVENTHANDLER_DECLARE(arp_update_event, llevent_arp_update_fn); +enum { + LLENTRY_RESOLVED, + LLENTRY_TIMEDOUT, + LLENTRY_DELETED, + LLENTRY_EXPIRED, +}; +typedef void (*lle_event_fn)(void *, struct llentry *, int); +EVENTHANDLER_DECLARE(lle_event, lle_event_fn); #endif diff --git a/sys/netinet/in.c b/sys/netinet/in.c index c1cbcb1ea6e8..1beddd64621a 100644 --- a/sys/netinet/in.c +++ b/sys/netinet/in.c @@ -1469,7 +1469,7 @@ in_lltable_lookup(struct lltable *llt, u_int flags, const struct sockaddr *l3add if (!(lle->la_flags & LLE_IFADDR) || (flags & LLE_IFADDR)) { LLE_WLOCK(lle); lle->la_flags = LLE_DELETED; - EVENTHANDLER_INVOKE(arp_update_event, lle); + EVENTHANDLER_INVOKE(lle_event, lle, LLENTRY_DELETED); LLE_WUNLOCK(lle); #ifdef DIAGNOSTIC log(LOG_INFO, "ifaddr cache = %p is deleted\n", lle); diff --git a/sys/netinet/tcp_input.c b/sys/netinet/tcp_input.c index 4d3234f55fdc..6d8ebee89ff3 100644 --- a/sys/netinet/tcp_input.c +++ b/sys/netinet/tcp_input.c @@ -105,6 +105,9 @@ __FBSDID("$FreeBSD$"); #ifdef TCPDEBUG #include #endif /* TCPDEBUG */ +#ifdef TCP_OFFLOAD +#include +#endif #ifdef IPSEC #include @@ -958,6 +961,14 @@ tcp_input(struct mbuf *m, int off0) goto dropwithreset; } +#ifdef TCP_OFFLOAD + if (tp->t_flags & TF_TOE) { + tcp_offload_input(tp, m); + m = NULL; /* consumed by the TOE driver */ + goto dropunlock; + } +#endif + /* * We've identified a valid inpcb, but it could be that we need an * inpcbinfo write lock but don't hold it. In this case, attempt to @@ -1320,7 +1331,7 @@ tcp_input(struct mbuf *m, int off0) (void *)tcp_saveipgen, &tcp_savetcp, 0); #endif tcp_dooptions(&to, optp, optlen, TO_SYN); - syncache_add(&inc, &to, th, inp, &so, m); + syncache_add(&inc, &to, th, inp, &so, m, NULL, NULL); /* * Entry added to syncache and mbuf consumed. * Everything already unlocked by syncache_add(). diff --git a/sys/netinet/tcp_offload.c b/sys/netinet/tcp_offload.c index 899a37c7fa34..b77241818206 100644 --- a/sys/netinet/tcp_offload.c +++ b/sys/netinet/tcp_offload.c @@ -1,145 +1,176 @@ /*- - * Copyright (c) 2007, Chelsio Inc. + * Copyright (c) 2012 Chelsio Communications, Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * - * 2. Neither the name of the Chelsio Corporation nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. */ #include __FBSDID("$FreeBSD$"); +#include "opt_inet.h" + #include #include #include -#include -#include -#include #include #include #include - +#include #include -#include -#include #include -#include - #include -#include #include #include #include #include -#include +#define TCPOUTFLAGS +#include +#include -uint32_t toedev_registration_count; +int registered_toedevs; +/* + * Provide an opportunity for a TOE driver to offload. + */ int tcp_offload_connect(struct socket *so, struct sockaddr *nam) { struct ifnet *ifp; - struct toedev *tdev; + struct toedev *tod; struct rtentry *rt; - int error; + int error = EOPNOTSUPP; - if (toedev_registration_count == 0) - return (EINVAL); - - /* - * Look up the route used for the connection to - * determine if it uses an interface capable of - * offloading the connection. - */ - rt = rtalloc1(nam, 0 /*report*/, 0 /*ignflags*/); - if (rt) + INP_WLOCK_ASSERT(sotoinpcb(so)); + KASSERT(nam->sa_family == AF_INET || nam->sa_family == AF_INET6, + ("%s: called with sa_family %d", __func__, nam->sa_family)); + + if (registered_toedevs == 0) + return (error); + + rt = rtalloc1(nam, 0, 0); + if (rt) RT_UNLOCK(rt); - else + else return (EHOSTUNREACH); ifp = rt->rt_ifp; - if ((ifp->if_capenable & IFCAP_TOE) == 0) { - error = EINVAL; - goto fail; - } - - tdev = TOEDEV(ifp); - if (tdev == NULL) { - error = EPERM; - goto fail; - } - - if (tdev->tod_can_offload(tdev, so) == 0) { - error = EPERM; - goto fail; - } - - return (tdev->tod_connect(tdev, so, rt, nam)); -fail: + + if (nam->sa_family == AF_INET && !(ifp->if_capenable & IFCAP_TOE4)) + goto done; + if (nam->sa_family == AF_INET6 && !(ifp->if_capenable & IFCAP_TOE6)) + goto done; + + tod = TOEDEV(ifp); + if (tod != NULL) + error = tod->tod_connect(tod, so, rt, nam); +done: RTFREE(rt); return (error); } +void +tcp_offload_listen_start(struct tcpcb *tp) +{ -/* - * This file contains code as a short-term staging area before it is moved in - * to sys/netinet/tcp_offload.c - */ + INP_WLOCK_ASSERT(tp->t_inpcb); + + EVENTHANDLER_INVOKE(tcp_offload_listen_start, tp); +} void -tcp_offload_twstart(struct tcpcb *tp) +tcp_offload_listen_stop(struct tcpcb *tp) { - INP_INFO_WLOCK(&V_tcbinfo); - INP_WLOCK(tp->t_inpcb); - tcp_twstart(tp); - INP_INFO_WUNLOCK(&V_tcbinfo); + INP_WLOCK_ASSERT(tp->t_inpcb); + + EVENTHANDLER_INVOKE(tcp_offload_listen_stop, tp); } -struct tcpcb * -tcp_offload_close(struct tcpcb *tp) +void +tcp_offload_input(struct tcpcb *tp, struct mbuf *m) { + struct toedev *tod = tp->tod; - INP_INFO_WLOCK(&V_tcbinfo); - INP_WLOCK(tp->t_inpcb); - tp = tcp_close(tp); - INP_INFO_WUNLOCK(&V_tcbinfo); - if (tp) - INP_WUNLOCK(tp->t_inpcb); + KASSERT(tod != NULL, ("%s: tp->tod is NULL, tp %p", __func__, tp)); + INP_WLOCK_ASSERT(tp->t_inpcb); - return (tp); + tod->tod_input(tod, tp, m); } -struct tcpcb * -tcp_offload_drop(struct tcpcb *tp, int error) +int +tcp_offload_output(struct tcpcb *tp) { + struct toedev *tod = tp->tod; + int error, flags; - INP_INFO_WLOCK(&V_tcbinfo); - INP_WLOCK(tp->t_inpcb); - tp = tcp_drop(tp, error); - INP_INFO_WUNLOCK(&V_tcbinfo); - if (tp) - INP_WUNLOCK(tp->t_inpcb); + KASSERT(tod != NULL, ("%s: tp->tod is NULL, tp %p", __func__, tp)); + INP_WLOCK_ASSERT(tp->t_inpcb); - return (tp); + flags = tcp_outflags[tp->t_state]; + + if (flags & TH_RST) { + /* XXX: avoid repeated calls like we do for FIN */ + error = tod->tod_send_rst(tod, tp); + } else if ((flags & TH_FIN || tp->t_flags & TF_NEEDFIN) && + (tp->t_flags & TF_SENTFIN) == 0) { + error = tod->tod_send_fin(tod, tp); + if (error == 0) + tp->t_flags |= TF_SENTFIN; + } else + error = tod->tod_output(tod, tp); + + return (error); } +void +tcp_offload_rcvd(struct tcpcb *tp) +{ + struct toedev *tod = tp->tod; + + KASSERT(tod != NULL, ("%s: tp->tod is NULL, tp %p", __func__, tp)); + INP_WLOCK_ASSERT(tp->t_inpcb); + + tod->tod_rcvd(tod, tp); +} + +void +tcp_offload_ctloutput(struct tcpcb *tp, int sopt_dir, int sopt_name) +{ + struct toedev *tod = tp->tod; + + KASSERT(tod != NULL, ("%s: tp->tod is NULL, tp %p", __func__, tp)); + INP_WLOCK_ASSERT(tp->t_inpcb); + + tod->tod_ctloutput(tod, tp, sopt_dir, sopt_name); +} + +void +tcp_offload_detach(struct tcpcb *tp) +{ + struct toedev *tod = tp->tod; + + KASSERT(tod != NULL, ("%s: tp->tod is NULL, tp %p", __func__, tp)); + INP_WLOCK_ASSERT(tp->t_inpcb); + + tod->tod_pcb_detach(tod, tp); +} diff --git a/sys/netinet/tcp_offload.h b/sys/netinet/tcp_offload.h index 313185f6ea6e..a0523665848f 100644 --- a/sys/netinet/tcp_offload.h +++ b/sys/netinet/tcp_offload.h @@ -1,30 +1,30 @@ /*- - * Copyright (c) 2007, Chelsio Inc. + * Copyright (c) 2012 Chelsio Communications, Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * - * 2. Neither the name of the Chelsio Corporation nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. * * $FreeBSD$ + * */ #ifndef _NETINET_TCP_OFFLOAD_H_ @@ -34,321 +34,15 @@ #error "no user-serviceable parts inside" #endif -/* - * A driver publishes that it provides offload services - * by setting IFCAP_TOE in the ifnet. The offload connect - * will bypass any further work if the interface that a - * connection would use does not support TCP offload. - * - * The TOE API assumes that the tcp offload engine can offload the - * the entire connection from set up to teardown, with some provision - * being made to allowing the software stack to handle time wait. If - * the device does not meet these criteria, it is the driver's responsibility - * to overload the functions that it needs to in tcp_usrreqs and make - * its own calls to tcp_output if it needs to do so. - * - * There is currently no provision for the device advertising the congestion - * control algorithms it supports as there is currently no API for querying - * an operating system for the protocols that it has loaded. This is a desirable - * future extension. - * - * - * - * It is assumed that individuals deploying TOE will want connections - * to be offloaded without software changes so all connections on an - * interface providing TOE are offloaded unless the SO_NO_OFFLOAD - * flag is set on the socket. - * - * - * The toe_usrreqs structure constitutes the TOE driver's - * interface to the TCP stack for functionality that doesn't - * interact directly with userspace. If one wants to provide - * (optional) functionality to do zero-copy to/from - * userspace one still needs to override soreceive/sosend - * with functions that fault in and pin the user buffers. - * - * + tu_send - * - tells the driver that new data may have been added to the - * socket's send buffer - the driver should not fail if the - * buffer is in fact unchanged - * - the driver is responsible for providing credits (bytes in the send window) - * back to the socket by calling sbdrop() as segments are acknowledged. - * - The driver expects the inpcb lock to be held - the driver is expected - * not to drop the lock. Hence the driver is not allowed to acquire the - * pcbinfo lock during this call. - * - * + tu_rcvd - * - returns credits to the driver and triggers window updates - * to the peer (a credit as used here is a byte in the peer's receive window) - * - the driver is expected to determine how many bytes have been - * consumed and credit that back to the card so that it can grow - * the window again by maintaining its own state between invocations. - * - In principle this could be used to shrink the window as well as - * grow the window, although it is not used for that now. - * - this function needs to correctly handle being called any number of - * times without any bytes being consumed from the receive buffer. - * - The driver expects the inpcb lock to be held - the driver is expected - * not to drop the lock. Hence the driver is not allowed to acquire the - * pcbinfo lock during this call. - * - * + tu_disconnect - * - tells the driver to send FIN to peer - * - driver is expected to send the remaining data and then do a clean half close - * - disconnect implies at least half-close so only send, reset, and detach - * are legal - * - the driver is expected to handle transition through the shutdown - * state machine and allow the stack to support SO_LINGER. - * - The driver expects the inpcb lock to be held - the driver is expected - * not to drop the lock. Hence the driver is not allowed to acquire the - * pcbinfo lock during this call. - * - * + tu_reset - * - closes the connection and sends a RST to peer - * - driver is expectd to trigger an RST and detach the toepcb - * - no further calls are legal after reset - * - The driver expects the inpcb lock to be held - the driver is expected - * not to drop the lock. Hence the driver is not allowed to acquire the - * pcbinfo lock during this call. - * - * The following fields in the tcpcb are expected to be referenced by the driver: - * + iss - * + rcv_nxt - * + rcv_wnd - * + snd_isn - * + snd_max - * + snd_nxt - * + snd_una - * + t_flags - * + t_inpcb - * + t_maxseg - * + t_toe - * - * The following fields in the inpcb are expected to be referenced by the driver: - * + inp_lport - * + inp_fport - * + inp_laddr - * + inp_fport - * + inp_socket - * + inp_ip_tos - * - * The following fields in the socket are expected to be referenced by the - * driver: - * + so_comp - * + so_error - * + so_linger - * + so_options - * + so_rcv - * + so_snd - * + so_state - * + so_timeo - * - * These functions all return 0 on success and can return the following errors - * as appropriate: - * + EPERM: - * + ENOBUFS: memory allocation failed - * + EMSGSIZE: MTU changed during the call - * + EHOSTDOWN: - * + EHOSTUNREACH: - * + ENETDOWN: - * * ENETUNREACH: the peer is no longer reachable - * - * + tu_detach - * - tells driver that the socket is going away so disconnect - * the toepcb and free appropriate resources - * - allows the driver to cleanly handle the case of connection state - * outliving the socket - * - no further calls are legal after detach - * - the driver is expected to provide its own synchronization between - * detach and receiving new data. - * - * + tu_syncache_event - * - even if it is not actually needed, the driver is expected to - * call syncache_add for the initial SYN and then syncache_expand - * for the SYN,ACK - * - tells driver that a connection either has not been added or has - * been dropped from the syncache - * - the driver is expected to maintain state that lives outside the - * software stack so the syncache needs to be able to notify the - * toe driver that the software stack is not going to create a connection - * for a received SYN - * - The driver is responsible for any synchronization required between - * the syncache dropping an entry and the driver processing the SYN,ACK. - * - */ -struct toe_usrreqs { - int (*tu_send)(struct tcpcb *tp); - int (*tu_rcvd)(struct tcpcb *tp); - int (*tu_disconnect)(struct tcpcb *tp); - int (*tu_reset)(struct tcpcb *tp); - void (*tu_detach)(struct tcpcb *tp); - void (*tu_syncache_event)(int event, void *toep); -}; +extern int registered_toedevs; -/* - * Proxy for struct tcpopt between TOE drivers and TCP functions. - */ -struct toeopt { - u_int64_t to_flags; /* see tcpopt in tcp_var.h */ - u_int16_t to_mss; /* maximum segment size */ - u_int8_t to_wscale; /* window scaling */ +int tcp_offload_connect(struct socket *, struct sockaddr *); +void tcp_offload_listen_start(struct tcpcb *); +void tcp_offload_listen_stop(struct tcpcb *); +void tcp_offload_input(struct tcpcb *, struct mbuf *); +int tcp_offload_output(struct tcpcb *); +void tcp_offload_rcvd(struct tcpcb *); +void tcp_offload_ctloutput(struct tcpcb *, int, int); +void tcp_offload_detach(struct tcpcb *); - u_int8_t _pad1; /* explicit pad for 64bit alignment */ - u_int32_t _pad2; /* explicit pad for 64bit alignment */ - u_int64_t _pad3[4]; /* TBD */ -}; - -#define TOE_SC_ENTRY_PRESENT 1 /* 4-tuple already present */ -#define TOE_SC_DROP 2 /* connection was timed out */ - -/* - * Because listen is a one-to-many relationship (a socket can be listening - * on all interfaces on a machine some of which may be using different TCP - * offload devices), listen uses a publish/subscribe mechanism. The TCP - * offload driver registers a listen notification function with the stack. - * When a listen socket is created all TCP offload devices are notified - * so that they can do the appropriate set up to offload connections on the - * port to which the socket is bound. When the listen socket is closed, - * the offload devices are notified so that they will stop listening on that - * port and free any associated resources as well as sending RSTs on any - * connections in the SYN_RCVD state. - * - */ - -typedef void (*tcp_offload_listen_start_fn)(void *, struct tcpcb *); -typedef void (*tcp_offload_listen_stop_fn)(void *, struct tcpcb *); - -EVENTHANDLER_DECLARE(tcp_offload_listen_start, tcp_offload_listen_start_fn); -EVENTHANDLER_DECLARE(tcp_offload_listen_stop, tcp_offload_listen_stop_fn); - -/* - * Check if the socket can be offloaded by the following steps: - * - determine the egress interface - * - check the interface for TOE capability and TOE is enabled - * - check if the device has resources to offload the connection - */ -int tcp_offload_connect(struct socket *so, struct sockaddr *nam); - -/* - * The tcp_output_* routines are wrappers around the toe_usrreqs calls - * which trigger packet transmission. In the non-offloaded case they - * translate to tcp_output. The tcp_offload_* routines notify TOE - * of specific events. I the non-offloaded case they are no-ops. - * - * Listen is a special case because it is a 1 to many relationship - * and there can be more than one offload driver in the system. - */ - -/* - * Connection is offloaded - */ -#define tp_offload(tp) ((tp)->t_flags & TF_TOE) - -/* - * hackish way of allowing this file to also be included by TOE - * which needs to be kept ignorant of socket implementation details - */ -#ifdef _SYS_SOCKETVAR_H_ -/* - * The socket has not been marked as "do not offload" - */ -#define SO_OFFLOADABLE(so) ((so->so_options & SO_NO_OFFLOAD) == 0) - -static __inline int -tcp_output_connect(struct socket *so, struct sockaddr *nam) -{ - struct tcpcb *tp = sototcpcb(so); - int error; - - /* - * If offload has been disabled for this socket or the - * connection cannot be offloaded just call tcp_output - * to start the TCP state machine. - */ -#ifndef TCP_OFFLOAD_DISABLE - if (!SO_OFFLOADABLE(so) || (error = tcp_offload_connect(so, nam)) != 0) -#endif - error = tcp_output(tp); - return (error); -} - -static __inline int -tcp_output_send(struct tcpcb *tp) -{ - -#ifndef TCP_OFFLOAD_DISABLE - if (tp_offload(tp)) - return (tp->t_tu->tu_send(tp)); #endif - return (tcp_output(tp)); -} - -static __inline int -tcp_output_rcvd(struct tcpcb *tp) -{ - -#ifndef TCP_OFFLOAD_DISABLE - if (tp_offload(tp)) - return (tp->t_tu->tu_rcvd(tp)); -#endif - return (tcp_output(tp)); -} - -static __inline int -tcp_output_disconnect(struct tcpcb *tp) -{ - -#ifndef TCP_OFFLOAD_DISABLE - if (tp_offload(tp)) - return (tp->t_tu->tu_disconnect(tp)); -#endif - return (tcp_output(tp)); -} - -static __inline int -tcp_output_reset(struct tcpcb *tp) -{ - -#ifndef TCP_OFFLOAD_DISABLE - if (tp_offload(tp)) - return (tp->t_tu->tu_reset(tp)); -#endif - return (tcp_output(tp)); -} - -static __inline void -tcp_offload_detach(struct tcpcb *tp) -{ - -#ifndef TCP_OFFLOAD_DISABLE - if (tp_offload(tp)) - tp->t_tu->tu_detach(tp); -#endif -} - -static __inline void -tcp_offload_listen_open(struct tcpcb *tp) -{ - -#ifndef TCP_OFFLOAD_DISABLE - if (SO_OFFLOADABLE(tp->t_inpcb->inp_socket)) - EVENTHANDLER_INVOKE(tcp_offload_listen_start, tp); -#endif -} - -static __inline void -tcp_offload_listen_close(struct tcpcb *tp) -{ - -#ifndef TCP_OFFLOAD_DISABLE - EVENTHANDLER_INVOKE(tcp_offload_listen_stop, tp); -#endif -} -#undef SO_OFFLOADABLE -#endif /* _SYS_SOCKETVAR_H_ */ -#undef tp_offload - -void tcp_offload_twstart(struct tcpcb *tp); -struct tcpcb *tcp_offload_close(struct tcpcb *tp); -struct tcpcb *tcp_offload_drop(struct tcpcb *tp, int error); - -#endif /* _NETINET_TCP_OFFLOAD_H_ */ diff --git a/sys/netinet/tcp_output.c b/sys/netinet/tcp_output.c index 8e0f36912237..1881c546812a 100644 --- a/sys/netinet/tcp_output.c +++ b/sys/netinet/tcp_output.c @@ -75,6 +75,9 @@ __FBSDID("$FreeBSD$"); #ifdef TCPDEBUG #include #endif +#ifdef TCP_OFFLOAD +#include +#endif #ifdef IPSEC #include @@ -191,6 +194,11 @@ tcp_output(struct tcpcb *tp) INP_WLOCK_ASSERT(tp->t_inpcb); +#ifdef TCP_OFFLOAD + if (tp->t_flags & TF_TOE) + return (tcp_offload_output(tp)); +#endif + /* * Determine length of data that should be transmitted, * and flags that will be used. diff --git a/sys/netinet/tcp_subr.c b/sys/netinet/tcp_subr.c index 05da82e3c0bf..9d35e0ab9bb6 100644 --- a/sys/netinet/tcp_subr.c +++ b/sys/netinet/tcp_subr.c @@ -85,7 +85,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #ifdef INET6 #include #endif @@ -96,6 +95,9 @@ __FBSDID("$FreeBSD$"); #ifdef INET6 #include #endif +#ifdef TCP_OFFLOAD +#include +#endif #ifdef IPSEC #include @@ -824,7 +826,7 @@ tcp_drop(struct tcpcb *tp, int errno) if (TCPS_HAVERCVDSYN(tp->t_state)) { tp->t_state = TCPS_CLOSED; - (void) tcp_output_reset(tp); + (void) tcp_output(tp); TCPSTAT_INC(tcps_drops); } else TCPSTAT_INC(tcps_conndrops); @@ -924,8 +926,12 @@ tcp_discardcb(struct tcpcb *tp) /* free the reassembly queue, if any */ tcp_reass_flush(tp); + +#ifdef TCP_OFFLOAD /* Disconnect offload device, if any. */ - tcp_offload_detach(tp); + if (tp->t_flags & TF_TOE) + tcp_offload_detach(tp); +#endif tcp_free_sackholes(tp); @@ -954,9 +960,10 @@ tcp_close(struct tcpcb *tp) INP_INFO_WLOCK_ASSERT(&V_tcbinfo); INP_WLOCK_ASSERT(inp); - /* Notify any offload devices of listener close */ +#ifdef TCP_OFFLOAD if (tp->t_state == TCPS_LISTEN) - tcp_offload_listen_close(tp); + tcp_offload_listen_stop(tp); +#endif in_pcbdrop(inp); TCPSTAT_INC(tcps_closed); KASSERT(inp->inp_socket != NULL, ("tcp_close: inp_socket NULL")); @@ -1695,7 +1702,7 @@ tcp_mtudisc(struct inpcb *inp, int mtuoffer) tp->snd_recover = tp->snd_max; if (tp->t_flags & TF_SACK_PERMIT) EXIT_FASTRECOVERY(tp->t_flags); - tcp_output_send(tp); + tcp_output(tp); return (inp); } diff --git a/sys/netinet/tcp_syncache.c b/sys/netinet/tcp_syncache.c index 21a72f4fea89..0f7637d13938 100644 --- a/sys/netinet/tcp_syncache.c +++ b/sys/netinet/tcp_syncache.c @@ -81,10 +81,12 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #ifdef INET6 #include #endif +#ifdef TCP_OFFLOAD +#include +#endif #ifdef IPSEC #include @@ -110,10 +112,8 @@ SYSCTL_VNET_INT(_net_inet_tcp, OID_AUTO, syncookies_only, CTLFLAG_RW, &VNET_NAME(tcp_syncookiesonly), 0, "Use only TCP SYN cookies"); -#ifdef TCP_OFFLOAD_DISABLE -#define TOEPCB_ISSET(sc) (0) -#else -#define TOEPCB_ISSET(sc) ((sc)->sc_toepcb != NULL) +#ifdef TCP_OFFLOAD +#define ADDED_BY_TOE(sc) ((sc)->sc_tod != NULL) #endif static void syncache_drop(struct syncache *, struct syncache_head *); @@ -332,6 +332,14 @@ syncache_insert(struct syncache *sc, struct syncache_head *sch) TAILQ_INSERT_HEAD(&sch->sch_bucket, sc, sc_hash); sch->sch_length++; +#ifdef TCP_OFFLOAD + if (ADDED_BY_TOE(sc)) { + struct toedev *tod = sc->sc_tod; + + tod->tod_syncache_added(tod, sc->sc_todctx); + } +#endif + /* Reinitialize the bucket row's timer. */ if (sch->sch_length == 1) sch->sch_nextc = ticks + INT_MAX; @@ -356,10 +364,14 @@ syncache_drop(struct syncache *sc, struct syncache_head *sch) TAILQ_REMOVE(&sch->sch_bucket, sc, sc_hash); sch->sch_length--; -#ifndef TCP_OFFLOAD_DISABLE - if (sc->sc_tu) - sc->sc_tu->tu_syncache_event(TOE_SC_DROP, sc->sc_toepcb); -#endif +#ifdef TCP_OFFLOAD + if (ADDED_BY_TOE(sc)) { + struct toedev *tod = sc->sc_tod; + + tod->tod_syncache_removed(tod, sc->sc_todctx); + } +#endif + syncache_free(sc); V_tcp_syncache.cache_count--; } @@ -846,6 +858,18 @@ syncache_socket(struct syncache *sc, struct socket *lso, struct mbuf *m) if (sc->sc_rxmits > 1) tp->snd_cwnd = tp->t_maxseg; +#ifdef TCP_OFFLOAD + /* + * Allow a TOE driver to install its hooks. Note that we hold the + * pcbinfo lock too and that prevents tcp_usr_accept from accepting a + * new connection before the TOE driver has done its thing. + */ + if (ADDED_BY_TOE(sc)) { + struct toedev *tod = sc->sc_tod; + + tod->tod_offload_socket(tod, sc->sc_todctx, so); + } +#endif /* * Copy and activate timers. */ @@ -926,6 +950,13 @@ syncache_expand(struct in_conninfo *inc, struct tcpopt *to, struct tcphdr *th, /* Pull out the entry to unlock the bucket row. */ TAILQ_REMOVE(&sch->sch_bucket, sc, sc_hash); sch->sch_length--; +#ifdef TCP_OFFLOAD + if (ADDED_BY_TOE(sc)) { + struct toedev *tod = sc->sc_tod; + + tod->tod_syncache_removed(tod, sc->sc_todctx); + } +#endif V_tcp_syncache.cache_count--; SCH_UNLOCK(sch); } @@ -934,7 +965,7 @@ syncache_expand(struct in_conninfo *inc, struct tcpopt *to, struct tcphdr *th, * Segment validation: * ACK must match our initial sequence number + 1 (the SYN|ACK). */ - if (th->th_ack != sc->sc_iss + 1 && !TOEPCB_ISSET(sc)) { + if (th->th_ack != sc->sc_iss + 1) { if ((s = tcp_log_addrs(inc, th, NULL, NULL))) log(LOG_DEBUG, "%s; %s: ACK %u != ISS+1 %u, segment " "rejected\n", s, __func__, th->th_ack, sc->sc_iss); @@ -945,9 +976,8 @@ syncache_expand(struct in_conninfo *inc, struct tcpopt *to, struct tcphdr *th, * The SEQ must fall in the window starting at the received * initial receive sequence number + 1 (the SYN). */ - if ((SEQ_LEQ(th->th_seq, sc->sc_irs) || - SEQ_GT(th->th_seq, sc->sc_irs + sc->sc_wnd)) && - !TOEPCB_ISSET(sc)) { + if (SEQ_LEQ(th->th_seq, sc->sc_irs) || + SEQ_GT(th->th_seq, sc->sc_irs + sc->sc_wnd)) { if ((s = tcp_log_addrs(inc, th, NULL, NULL))) log(LOG_DEBUG, "%s; %s: SEQ %u != IRS+1 %u, segment " "rejected\n", s, __func__, th->th_seq, sc->sc_irs); @@ -964,8 +994,7 @@ syncache_expand(struct in_conninfo *inc, struct tcpopt *to, struct tcphdr *th, * If timestamps were negotiated the reflected timestamp * must be equal to what we actually sent in the SYN|ACK. */ - if ((to->to_flags & TOF_TS) && to->to_tsecr != sc->sc_ts && - !TOEPCB_ISSET(sc)) { + if ((to->to_flags & TOF_TS) && to->to_tsecr != sc->sc_ts) { if ((s = tcp_log_addrs(inc, th, NULL, NULL))) log(LOG_DEBUG, "%s; %s: TSECR %u != TS %u, " "segment rejected\n", @@ -993,25 +1022,6 @@ syncache_expand(struct in_conninfo *inc, struct tcpopt *to, struct tcphdr *th, return (0); } -int -tcp_offload_syncache_expand(struct in_conninfo *inc, struct toeopt *toeo, - struct tcphdr *th, struct socket **lsop, struct mbuf *m) -{ - struct tcpopt to; - int rc; - - bzero(&to, sizeof(struct tcpopt)); - to.to_mss = toeo->to_mss; - to.to_wscale = toeo->to_wscale; - to.to_flags = toeo->to_flags; - - INP_INFO_WLOCK(&V_tcbinfo); - rc = syncache_expand(inc, &to, th, lsop, m); - INP_INFO_WUNLOCK(&V_tcbinfo); - - return (rc); -} - /* * Given a LISTEN socket and an inbound SYN request, add * this to the syn cache, and send back a segment: @@ -1025,10 +1035,10 @@ tcp_offload_syncache_expand(struct in_conninfo *inc, struct toeopt *toeo, * consume all available buffer space if it were ACKed. By not ACKing * the data, we avoid this DoS scenario. */ -static void -_syncache_add(struct in_conninfo *inc, struct tcpopt *to, struct tcphdr *th, - struct inpcb *inp, struct socket **lsop, struct mbuf *m, - struct toe_usrreqs *tu, void *toepcb) +void +syncache_add(struct in_conninfo *inc, struct tcpopt *to, struct tcphdr *th, + struct inpcb *inp, struct socket **lsop, struct mbuf *m, void *tod, + void *todctx) { struct tcpcb *tp; struct socket *so; @@ -1114,11 +1124,6 @@ _syncache_add(struct in_conninfo *inc, struct tcpopt *to, struct tcphdr *th, sc = syncache_lookup(inc, &sch); /* returns locked entry */ SCH_LOCK_ASSERT(sch); if (sc != NULL) { -#ifndef TCP_OFFLOAD_DISABLE - if (sc->sc_tu) - sc->sc_tu->tu_syncache_event(TOE_SC_ENTRY_PRESENT, - sc->sc_toepcb); -#endif TCPSTAT_INC(tcps_sc_dupsyn); if (ipopts) { /* @@ -1151,7 +1156,7 @@ _syncache_add(struct in_conninfo *inc, struct tcpopt *to, struct tcphdr *th, s, __func__); free(s, M_TCPLOG); } - if (!TOEPCB_ISSET(sc) && syncache_respond(sc) == 0) { + if (syncache_respond(sc) == 0) { sc->sc_rxmits = 0; syncache_timeout(sc, sch, 1); TCPSTAT_INC(tcps_sndacks); @@ -1202,9 +1207,9 @@ _syncache_add(struct in_conninfo *inc, struct tcpopt *to, struct tcphdr *th, sc->sc_ip_tos = ip_tos; sc->sc_ip_ttl = ip_ttl; } -#ifndef TCP_OFFLOAD_DISABLE - sc->sc_tu = tu; - sc->sc_toepcb = toepcb; +#ifdef TCP_OFFLOAD + sc->sc_tod = tod; + sc->sc_todctx = todctx; #endif sc->sc_irs = th->th_seq; sc->sc_iss = arc4random(); @@ -1299,7 +1304,7 @@ _syncache_add(struct in_conninfo *inc, struct tcpopt *to, struct tcphdr *th, /* * Do a standard 3-way handshake. */ - if (TOEPCB_ISSET(sc) || syncache_respond(sc) == 0) { + if (syncache_respond(sc) == 0) { if (V_tcp_syncookies && V_tcp_syncookiesonly && sc != &scs) syncache_free(sc); else if (sc != &scs) @@ -1491,37 +1496,21 @@ syncache_respond(struct syncache *sc) m->m_pkthdr.csum_flags = CSUM_TCP; th->th_sum = in_pseudo(ip->ip_src.s_addr, ip->ip_dst.s_addr, htons(tlen + optlen - hlen + IPPROTO_TCP)); +#ifdef TCP_OFFLOAD + if (ADDED_BY_TOE(sc)) { + struct toedev *tod = sc->sc_tod; + + error = tod->tod_syncache_respond(tod, sc->sc_todctx, m); + + return (error); + } +#endif error = ip_output(m, sc->sc_ipopts, NULL, 0, NULL, NULL); } #endif return (error); } -void -syncache_add(struct in_conninfo *inc, struct tcpopt *to, struct tcphdr *th, - struct inpcb *inp, struct socket **lsop, struct mbuf *m) -{ - _syncache_add(inc, to, th, inp, lsop, m, NULL, NULL); -} - -void -tcp_offload_syncache_add(struct in_conninfo *inc, struct toeopt *toeo, - struct tcphdr *th, struct inpcb *inp, struct socket **lsop, - struct toe_usrreqs *tu, void *toepcb) -{ - struct tcpopt to; - - bzero(&to, sizeof(struct tcpopt)); - to.to_mss = toeo->to_mss; - to.to_wscale = toeo->to_wscale; - to.to_flags = toeo->to_flags; - - INP_INFO_WLOCK(&V_tcbinfo); - INP_WLOCK(inp); - - _syncache_add(inc, &to, th, inp, lsop, NULL, tu, toepcb); -} - /* * The purpose of SYN cookies is to avoid keeping track of all SYN's we * receive and to be able to handle SYN floods from bogus source addresses diff --git a/sys/netinet/tcp_syncache.h b/sys/netinet/tcp_syncache.h index 5783b6d10900..d18ee07dc6b9 100644 --- a/sys/netinet/tcp_syncache.h +++ b/sys/netinet/tcp_syncache.h @@ -34,8 +34,6 @@ #define _NETINET_TCP_SYNCACHE_H_ #ifdef _KERNEL -struct toeopt; - void syncache_init(void); #ifdef VIMAGE void syncache_destroy(void); @@ -43,14 +41,9 @@ void syncache_destroy(void); void syncache_unreach(struct in_conninfo *, struct tcphdr *); int syncache_expand(struct in_conninfo *, struct tcpopt *, struct tcphdr *, struct socket **, struct mbuf *); -int tcp_offload_syncache_expand(struct in_conninfo *inc, struct toeopt *toeo, - struct tcphdr *th, struct socket **lsop, struct mbuf *m); void syncache_add(struct in_conninfo *, struct tcpopt *, - struct tcphdr *, struct inpcb *, struct socket **, struct mbuf *); -void tcp_offload_syncache_add(struct in_conninfo *, struct toeopt *, - struct tcphdr *, struct inpcb *, struct socket **, - struct toe_usrreqs *tu, void *toepcb); - + struct tcphdr *, struct inpcb *, struct socket **, struct mbuf *, + void *, void *); void syncache_chkrst(struct in_conninfo *, struct tcphdr *); void syncache_badack(struct in_conninfo *); int syncache_pcbcount(void); @@ -75,10 +68,10 @@ struct syncache { u_int8_t sc_requested_s_scale:4, sc_requested_r_scale:4; u_int16_t sc_flags; -#ifndef TCP_OFFLOAD_DISABLE - struct toe_usrreqs *sc_tu; /* TOE operations */ - void *sc_toepcb; /* TOE protocol block */ -#endif +#if defined(TCP_OFFLOAD) || !defined(TCP_OFFLOAD_DISABLE) + struct toedev *sc_tod; /* entry added by this TOE */ + void *sc_todctx; /* TOE driver context */ +#endif struct label *sc_label; /* MAC label reference */ struct ucred *sc_cred; /* cred cache for jail checks */ diff --git a/sys/netinet/tcp_timer.c b/sys/netinet/tcp_timer.c index 9c3c74925be1..b3ddacc6b7dd 100644 --- a/sys/netinet/tcp_timer.c +++ b/sys/netinet/tcp_timer.c @@ -602,6 +602,11 @@ tcp_timer_activate(struct tcpcb *tp, int timer_type, u_int delta) struct inpcb *inp = tp->t_inpcb; int cpu = INP_CPU(inp); +#ifdef TCP_OFFLOAD + if (tp->t_flags & TF_TOE) + return; +#endif + switch (timer_type) { case TT_DELACK: t_callout = &tp->t_timers->tt_delack; diff --git a/sys/netinet/tcp_usrreq.c b/sys/netinet/tcp_usrreq.c index a9045f31483d..b69961e222bd 100644 --- a/sys/netinet/tcp_usrreq.c +++ b/sys/netinet/tcp_usrreq.c @@ -87,7 +87,9 @@ __FBSDID("$FreeBSD$"); #ifdef TCPDEBUG #include #endif +#ifdef TCP_OFFLOAD #include +#endif /* * TCP protocol interface to socket abstraction. @@ -367,7 +369,9 @@ tcp_usr_listen(struct socket *so, int backlog, struct thread *td) if (error == 0) { tp->t_state = TCPS_LISTEN; solisten_proto(so, backlog); - tcp_offload_listen_open(tp); +#ifdef TCP_OFFLOAD + tcp_offload_listen_start(tp); +#endif } SOCK_UNLOCK(so); @@ -409,6 +413,9 @@ tcp6_usr_listen(struct socket *so, int backlog, struct thread *td) if (error == 0) { tp->t_state = TCPS_LISTEN; solisten_proto(so, backlog); +#ifdef TCP_OFFLOAD + tcp_offload_listen_start(tp); +#endif } SOCK_UNLOCK(so); @@ -459,7 +466,13 @@ tcp_usr_connect(struct socket *so, struct sockaddr *nam, struct thread *td) TCPDEBUG1(); if ((error = tcp_connect(tp, nam, td)) != 0) goto out; - error = tcp_output_connect(so, nam); +#ifdef TCP_OFFLOAD + if (registered_toedevs > 0 && + (error = tcp_offload_connect(so, nam)) == 0) + goto out; +#endif + tcp_timer_activate(tp, TT_KEEP, TP_KEEPINIT(tp)); + error = tcp_output(tp); out: TCPDEBUG2(PRU_CONNECT); INP_WUNLOCK(inp); @@ -519,7 +532,12 @@ tcp6_usr_connect(struct socket *so, struct sockaddr *nam, struct thread *td) goto out; if ((error = tcp_connect(tp, (struct sockaddr *)&sin, td)) != 0) goto out; - error = tcp_output_connect(so, nam); +#ifdef TCP_OFFLOAD + if (registered_toedevs > 0 && + (error = tcp_offload_connect(so, nam)) == 0) + goto out; +#endif + error = tcp_output(tp); goto out; } #endif @@ -530,7 +548,13 @@ tcp6_usr_connect(struct socket *so, struct sockaddr *nam, struct thread *td) goto out; if ((error = tcp6_connect(tp, nam, td)) != 0) goto out; - error = tcp_output_connect(so, nam); +#ifdef TCP_OFFLOAD + if (registered_toedevs > 0 && + (error = tcp_offload_connect(so, nam)) == 0) + goto out; +#endif + tcp_timer_activate(tp, TT_KEEP, TP_KEEPINIT(tp)); + error = tcp_output(tp); out: TCPDEBUG2(PRU_CONNECT); @@ -709,7 +733,7 @@ tcp_usr_shutdown(struct socket *so) socantsendmore(so); tcp_usrclosed(tp); if (!(inp->inp_flags & INP_DROPPED)) - error = tcp_output_disconnect(tp); + error = tcp_output(tp); out: TCPDEBUG2(PRU_SHUTDOWN); @@ -739,7 +763,11 @@ tcp_usr_rcvd(struct socket *so, int flags) } tp = intotcpcb(inp); TCPDEBUG1(); - tcp_output_rcvd(tp); +#ifdef TCP_OFFLOAD + if (tp->t_flags & TF_TOE) + tcp_offload_rcvd(tp); +#endif + tcp_output(tp); out: TCPDEBUG2(PRU_RCVD); @@ -835,7 +863,7 @@ tcp_usr_send(struct socket *so, int flags, struct mbuf *m, if (!(inp->inp_flags & INP_DROPPED)) { if (flags & PRUS_MORETOCOME) tp->t_flags |= TF_MORETOCOME; - error = tcp_output_send(tp); + error = tcp_output(tp); if (flags & PRUS_MORETOCOME) tp->t_flags &= ~TF_MORETOCOME; } @@ -884,7 +912,7 @@ tcp_usr_send(struct socket *so, int flags, struct mbuf *m, } tp->snd_up = tp->snd_una + so->so_snd.sb_cc; tp->t_flags |= TF_FORCEDATA; - error = tcp_output_send(tp); + error = tcp_output(tp); tp->t_flags &= ~TF_FORCEDATA; } out: @@ -1119,7 +1147,6 @@ tcp_connect(struct tcpcb *tp, struct sockaddr *nam, struct thread *td) soisconnecting(so); TCPSTAT_INC(tcps_connattempt); tp->t_state = TCPS_SYN_SENT; - tcp_timer_activate(tp, TT_KEEP, TP_KEEPINIT(tp)); tp->iss = tcp_new_isn(tp); tcp_sendseqinit(tp); @@ -1192,7 +1219,6 @@ tcp6_connect(struct tcpcb *tp, struct sockaddr *nam, struct thread *td) soisconnecting(so); TCPSTAT_INC(tcps_connattempt); tp->t_state = TCPS_SYN_SENT; - tcp_timer_activate(tp, TT_KEEP, TP_KEEPINIT(tp)); tp->iss = tcp_new_isn(tp); tcp_sendseqinit(tp); @@ -1323,9 +1349,9 @@ tcp_ctloutput(struct socket *so, struct sockopt *sopt) tp->t_flags |= TF_SIGNATURE; else tp->t_flags &= ~TF_SIGNATURE; - INP_WUNLOCK(inp); - break; + goto unlock_and_done; #endif /* TCP_SIGNATURE */ + case TCP_NODELAY: case TCP_NOOPT: INP_WUNLOCK(inp); @@ -1351,6 +1377,13 @@ tcp_ctloutput(struct socket *so, struct sockopt *sopt) tp->t_flags |= opt; else tp->t_flags &= ~opt; +unlock_and_done: +#ifdef TCP_OFFLOAD + if (tp->t_flags & TF_TOE) { + tcp_offload_ctloutput(tp, sopt->sopt_dir, + sopt->sopt_name); + } +#endif INP_WUNLOCK(inp); break; @@ -1369,8 +1402,7 @@ tcp_ctloutput(struct socket *so, struct sockopt *sopt) if (TCPS_HAVEESTABLISHED(tp->t_state)) error = tcp_output(tp); } - INP_WUNLOCK(inp); - break; + goto unlock_and_done; case TCP_MAXSEG: INP_WUNLOCK(inp); @@ -1385,8 +1417,7 @@ tcp_ctloutput(struct socket *so, struct sockopt *sopt) tp->t_maxseg = optval; else error = EINVAL; - INP_WUNLOCK(inp); - break; + goto unlock_and_done; case TCP_INFO: INP_WUNLOCK(inp); @@ -1438,8 +1469,7 @@ tcp_ctloutput(struct socket *so, struct sockopt *sopt) } } CC_LIST_RUNLOCK(); - INP_WUNLOCK(inp); - break; + goto unlock_and_done; case TCP_KEEPIDLE: case TCP_KEEPINTVL: @@ -1491,8 +1521,7 @@ tcp_ctloutput(struct socket *so, struct sockopt *sopt) TP_KEEPINIT(tp)); break; } - INP_WUNLOCK(inp); - break; + goto unlock_and_done; default: INP_WUNLOCK(inp); @@ -1635,7 +1664,7 @@ tcp_disconnect(struct tcpcb *tp) sbflush(&so->so_rcv); tcp_usrclosed(tp); if (!(inp->inp_flags & INP_DROPPED)) - tcp_output_disconnect(tp); + tcp_output(tp); } } @@ -1658,7 +1687,9 @@ tcp_usrclosed(struct tcpcb *tp) switch (tp->t_state) { case TCPS_LISTEN: - tcp_offload_listen_close(tp); +#ifdef TCP_OFFLOAD + tcp_offload_listen_stop(tp); +#endif /* FALLTHROUGH */ case TCPS_CLOSED: tp->t_state = TCPS_CLOSED; diff --git a/sys/netinet/tcp_var.h b/sys/netinet/tcp_var.h index 3b8bdf7d58ea..90ecca147003 100644 --- a/sys/netinet/tcp_var.h +++ b/sys/netinet/tcp_var.h @@ -194,7 +194,7 @@ struct tcpcb { int t_rttlow; /* smallest observerved RTT */ u_int32_t rfbuf_ts; /* recv buffer autoscaling timestamp */ int rfbuf_cnt; /* recv buffer autoscaling byte count */ - struct toe_usrreqs *t_tu; /* offload operations vector */ + struct toedev *tod; /* toedev handling this connection */ int t_sndrexmitpack; /* retransmit packets sent */ int t_rcvoopack; /* out-of-order packets received */ void *t_toe; /* TOE pcb pointer */ diff --git a/sys/netinet/toecore.c b/sys/netinet/toecore.c new file mode 100644 index 000000000000..4b4efb79ee10 --- /dev/null +++ b/sys/netinet/toecore.c @@ -0,0 +1,575 @@ +/*- + * Copyright (c) 2012 Chelsio Communications, Inc. + * All rights reserved. + * Written by: Navdeep Parhar + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include "opt_inet.h" +#include "opt_inet6.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#define TCPSTATES +#include +#include +#include +#include +#include +#include +#include + +static struct mtx toedev_lock; +static TAILQ_HEAD(, toedev) toedev_list; +static eventhandler_tag listen_start_eh; +static eventhandler_tag listen_stop_eh; +static eventhandler_tag lle_event_eh; +static eventhandler_tag route_redirect_eh; + +static int +toedev_connect(struct toedev *tod __unused, struct socket *so __unused, + struct rtentry *rt __unused, struct sockaddr *nam __unused) +{ + + return (ENOTSUP); +} + +static int +toedev_listen_start(struct toedev *tod __unused, struct tcpcb *tp __unused) +{ + + return (ENOTSUP); +} + +static int +toedev_listen_stop(struct toedev *tod __unused, struct tcpcb *tp __unused) +{ + + return (ENOTSUP); +} + +static void +toedev_input(struct toedev *tod __unused, struct tcpcb *tp __unused, + struct mbuf *m) +{ + + m_freem(m); + return; +} + +static void +toedev_rcvd(struct toedev *tod __unused, struct tcpcb *tp __unused) +{ + + return; +} + +static int +toedev_output(struct toedev *tod __unused, struct tcpcb *tp __unused) +{ + + return (ENOTSUP); +} + +static void +toedev_pcb_detach(struct toedev *tod __unused, struct tcpcb *tp __unused) +{ + + return; +} + +static void +toedev_l2_update(struct toedev *tod __unused, struct ifnet *ifp __unused, + struct sockaddr *sa __unused, uint8_t *lladdr __unused, + uint16_t vtag __unused) +{ + + return; +} + +static void +toedev_route_redirect(struct toedev *tod __unused, struct ifnet *ifp __unused, + struct rtentry *rt0 __unused, struct rtentry *rt1 __unused) +{ + + return; +} + +static void +toedev_syncache_added(struct toedev *tod __unused, void *ctx __unused) +{ + + return; +} + +static void +toedev_syncache_removed(struct toedev *tod __unused, void *ctx __unused) +{ + + return; +} + +static int +toedev_syncache_respond(struct toedev *tod __unused, void *ctx __unused, + struct mbuf *m) +{ + + m_freem(m); + return (0); +} + +static void +toedev_offload_socket(struct toedev *tod __unused, void *ctx __unused, + struct socket *so __unused) +{ + + return; +} + +static void +toedev_ctloutput(struct toedev *tod __unused, struct tcpcb *tp __unused, + int sopt_dir __unused, int sopt_name __unused) +{ + + return; +} + +/* + * Inform one or more TOE devices about a listening socket. + */ +static void +toe_listen_start(struct inpcb *inp, void *arg) +{ + struct toedev *t, *tod; + struct tcpcb *tp; + + INP_WLOCK_ASSERT(inp); + KASSERT(inp->inp_pcbinfo == &V_tcbinfo, + ("%s: inp is not a TCP inp", __func__)); + + if (inp->inp_flags & (INP_DROPPED | INP_TIMEWAIT)) + return; + + tp = intotcpcb(inp); + if (tp->t_state != TCPS_LISTEN) + return; + + t = arg; + mtx_lock(&toedev_lock); + TAILQ_FOREACH(tod, &toedev_list, link) { + if (t == NULL || t == tod) + tod->tod_listen_start(tod, tp); + } + mtx_unlock(&toedev_lock); +} + +static void +toe_listen_start_event(void *arg __unused, struct tcpcb *tp) +{ + struct inpcb *inp = tp->t_inpcb; + + INP_WLOCK_ASSERT(inp); + KASSERT(tp->t_state == TCPS_LISTEN, + ("%s: t_state %s", __func__, tcpstates[tp->t_state])); + + toe_listen_start(inp, NULL); +} + +static void +toe_listen_stop_event(void *arg __unused, struct tcpcb *tp) +{ + struct toedev *tod; +#ifdef INVARIANTS + struct inpcb *inp = tp->t_inpcb; +#endif + + INP_WLOCK_ASSERT(inp); + KASSERT(tp->t_state == TCPS_LISTEN, + ("%s: t_state %s", __func__, tcpstates[tp->t_state])); + + mtx_lock(&toedev_lock); + TAILQ_FOREACH(tod, &toedev_list, link) + tod->tod_listen_stop(tod, tp); + mtx_unlock(&toedev_lock); +} + +/* + * Fill up a freshly allocated toedev struct with reasonable defaults. + */ +void +init_toedev(struct toedev *tod) +{ + + tod->tod_softc = NULL; + + /* + * Provide no-op defaults so that the kernel can call any toedev + * function without having to check whether the TOE driver supplied one + * or not. + */ + tod->tod_connect = toedev_connect; + tod->tod_listen_start = toedev_listen_start; + tod->tod_listen_stop = toedev_listen_stop; + tod->tod_input = toedev_input; + tod->tod_rcvd = toedev_rcvd; + tod->tod_output = toedev_output; + tod->tod_send_rst = toedev_output; + tod->tod_send_fin = toedev_output; + tod->tod_pcb_detach = toedev_pcb_detach; + tod->tod_l2_update = toedev_l2_update; + tod->tod_route_redirect = toedev_route_redirect; + tod->tod_syncache_added = toedev_syncache_added; + tod->tod_syncache_removed = toedev_syncache_removed; + tod->tod_syncache_respond = toedev_syncache_respond; + tod->tod_offload_socket = toedev_offload_socket; + tod->tod_ctloutput = toedev_ctloutput; +} + +/* + * Register an active TOE device with the system. This allows it to receive + * notifications from the kernel. + */ +int +register_toedev(struct toedev *tod) +{ + struct toedev *t; + + mtx_lock(&toedev_lock); + TAILQ_FOREACH(t, &toedev_list, link) { + if (t == tod) { + mtx_unlock(&toedev_lock); + return (EEXIST); + } + } + + TAILQ_INSERT_TAIL(&toedev_list, tod, link); + registered_toedevs++; + mtx_unlock(&toedev_lock); + + inp_apply_all(toe_listen_start, tod); + + return (0); +} + +/* + * Remove the TOE device from the global list of active TOE devices. It is the + * caller's responsibility to ensure that the TOE device is quiesced prior to + * this call. + */ +int +unregister_toedev(struct toedev *tod) +{ + struct toedev *t, *t2; + int rc = ENODEV; + + mtx_lock(&toedev_lock); + TAILQ_FOREACH_SAFE(t, &toedev_list, link, t2) { + if (t == tod) { + TAILQ_REMOVE(&toedev_list, tod, link); + registered_toedevs--; + rc = 0; + break; + } + } + KASSERT(registered_toedevs >= 0, + ("%s: registered_toedevs (%d) < 0", __func__, registered_toedevs)); + mtx_unlock(&toedev_lock); + return (rc); +} + +void +toe_syncache_add(struct in_conninfo *inc, struct tcpopt *to, struct tcphdr *th, + struct inpcb *inp, void *tod, void *todctx) +{ + struct socket *lso = inp->inp_socket; + + INP_INFO_WLOCK_ASSERT(&V_tcbinfo); + INP_WLOCK_ASSERT(inp); + + syncache_add(inc, to, th, inp, &lso, NULL, tod, todctx); +} + +int +toe_syncache_expand(struct in_conninfo *inc, struct tcpopt *to, + struct tcphdr *th, struct socket **lsop) +{ + + INP_INFO_WLOCK_ASSERT(&V_tcbinfo); + + return (syncache_expand(inc, to, th, lsop, NULL)); +} + +/* + * General purpose check to see if a 4-tuple is in use by the kernel. If a TCP + * header (presumably for an incoming SYN) is also provided, an existing 4-tuple + * in TIME_WAIT may be assassinated freeing it up for re-use. + * + * Note that the TCP header must have been run through tcp_fields_to_host() or + * equivalent. + */ +int +toe_4tuple_check(struct in_conninfo *inc, struct tcphdr *th, struct ifnet *ifp) +{ + struct inpcb *inp; + + if (inc->inc_flags & INC_ISIPV6) + return (ENOSYS); /* XXX: implement */ + + inp = in_pcblookup(&V_tcbinfo, inc->inc_faddr, inc->inc_fport, + inc->inc_laddr, inc->inc_lport, INPLOOKUP_WLOCKPCB, ifp); + if (inp != NULL) { + INP_WLOCK_ASSERT(inp); + + if ((inp->inp_flags & INP_TIMEWAIT) && th != NULL) { + + INP_INFO_WLOCK_ASSERT(&V_tcbinfo); /* for twcheck */ + if (!tcp_twcheck(inp, NULL, th, NULL, 0)) + return (EADDRINUSE); + } else { + INP_WUNLOCK(inp); + return (EADDRINUSE); + } + } + + return (0); +} + +static void +toe_lle_event(void *arg __unused, struct llentry *lle, int evt) +{ + struct toedev *tod; + struct ifnet *ifp; + struct sockaddr *sa; + uint8_t *lladdr; + uint16_t vtag; + + LLE_WLOCK_ASSERT(lle); + + ifp = lle->lle_tbl->llt_ifp; + sa = L3_ADDR(lle); + + KASSERT(sa->sa_family == AF_INET || sa->sa_family == AF_INET6, + ("%s: lle_event %d for lle %p but sa %p !INET && !INET6", + __func__, evt, lle, sa)); + + /* + * Not interested if the interface's TOE capability is not enabled. + */ + if ((sa->sa_family == AF_INET && !(ifp->if_capenable & IFCAP_TOE4)) || + (sa->sa_family == AF_INET6 && !(ifp->if_capenable & IFCAP_TOE6))) + return; + + tod = TOEDEV(ifp); + if (tod == NULL) + return; + + vtag = 0xfff; + if (evt != LLENTRY_RESOLVED) { + + /* + * LLENTRY_TIMEDOUT, LLENTRY_DELETED, LLENTRY_EXPIRED all mean + * this entry is going to be deleted. + */ + + lladdr = NULL; + } else { + + KASSERT(lle->la_flags & LLE_VALID, + ("%s: %p resolved but not valid?", __func__, lle)); + + lladdr = (uint8_t *)&lle->ll_addr; +#ifdef VLAN_TAG + VLAN_TAG(ifp, &vtag); +#endif + } + + tod->tod_l2_update(tod, ifp, sa, lladdr, vtag); +} + +/* + * XXX: implement. + */ +static void +toe_route_redirect_event(void *arg __unused, struct rtentry *rt0, + struct rtentry *rt1, struct sockaddr *sa) +{ + + return; +} + +/* + * Returns 0 or EWOULDBLOCK on success (any other value is an error). 0 means + * lladdr and vtag are valid on return, EWOULDBLOCK means the TOE driver's + * tod_l2_update will be called later, when the entry is resolved or times out. + */ +int +toe_l2_resolve(struct toedev *tod, struct ifnet *ifp, struct sockaddr *sa, + uint8_t *lladdr, uint16_t *vtag) +{ + struct llentry *lle; + int rc; + + switch (sa->sa_family) { +#ifdef INET + case AF_INET: + rc = arpresolve(ifp, NULL, NULL, sa, lladdr, &lle); + break; +#endif +#ifdef INET6 + case AF_INET6: + rc = nd6_storelladdr(ifp, NULL, sa, lladdr, &lle); + break; +#endif + default: + return (EPROTONOSUPPORT); + } + + if (rc == 0) { +#ifdef VLAN_TAG + if (VLAN_TAG(ifp, vtag) != 0) +#endif + *vtag = 0xfff; + } + + return (rc); +} + +void +toe_connect_failed(struct toedev *tod, struct tcpcb *tp, int err) +{ + struct inpcb *inp = tp->t_inpcb; + + INP_WLOCK_ASSERT(inp); + KASSERT(tp->t_flags & TF_TOE, + ("%s: tp %p not offloaded.", __func__, tp)); + + if (!(inp->inp_flags & INP_DROPPED)) { + if (err == EAGAIN) { + + /* + * Temporary failure during offload, take this PCB back. + * Detach from the TOE driver and do the rest of what + * TCP's pru_connect would have done if the connection + * wasn't offloaded. + */ + + tod->tod_pcb_detach(tod, tp); + KASSERT(!(tp->t_flags & TF_TOE), + ("%s: tp %p still offloaded.", __func__, tp)); + tcp_timer_activate(tp, TT_KEEP, TP_KEEPINIT(tp)); + (void) tcp_output(tp); + } else { + + INP_INFO_WLOCK_ASSERT(&V_tcbinfo); + tp = tcp_drop(tp, err); + if (tp == NULL) + INP_WLOCK(inp); /* re-acquire */ + } + } + INP_WLOCK_ASSERT(inp); +} + +static int +toecore_load(void) +{ + + mtx_init(&toedev_lock, "toedev lock", NULL, MTX_DEF); + TAILQ_INIT(&toedev_list); + + listen_start_eh = EVENTHANDLER_REGISTER(tcp_offload_listen_start, + toe_listen_start_event, NULL, EVENTHANDLER_PRI_ANY); + listen_stop_eh = EVENTHANDLER_REGISTER(tcp_offload_listen_stop, + toe_listen_stop_event, NULL, EVENTHANDLER_PRI_ANY); + lle_event_eh = EVENTHANDLER_REGISTER(lle_event, toe_lle_event, NULL, + EVENTHANDLER_PRI_ANY); + route_redirect_eh = EVENTHANDLER_REGISTER(route_redirect_event, + toe_route_redirect_event, NULL, EVENTHANDLER_PRI_ANY); + + return (0); +} + +static int +toecore_unload(void) +{ + + mtx_lock(&toedev_lock); + if (!TAILQ_EMPTY(&toedev_list)) { + mtx_unlock(&toedev_lock); + return (EBUSY); + } + + EVENTHANDLER_DEREGISTER(tcp_offload_listen_start, listen_start_eh); + EVENTHANDLER_DEREGISTER(tcp_offload_listen_stop, listen_stop_eh); + EVENTHANDLER_DEREGISTER(lle_event, lle_event_eh); + EVENTHANDLER_DEREGISTER(route_redirect_event, route_redirect_eh); + + mtx_unlock(&toedev_lock); + mtx_destroy(&toedev_lock); + + return (0); +} + +static int +toecore_mod_handler(module_t mod, int cmd, void *arg) +{ + + if (cmd == MOD_LOAD) + return (toecore_load()); + + if (cmd == MOD_UNLOAD) + return (toecore_unload()); + + return (EOPNOTSUPP); +} + +static moduledata_t mod_data= { + "toecore", + toecore_mod_handler, + 0 +}; + +MODULE_VERSION(toecore, 1); +DECLARE_MODULE(toecore, mod_data, SI_SUB_EXEC, SI_ORDER_ANY); diff --git a/sys/netinet/toecore.h b/sys/netinet/toecore.h new file mode 100644 index 000000000000..a38182574e25 --- /dev/null +++ b/sys/netinet/toecore.h @@ -0,0 +1,130 @@ +/*- + * Copyright (c) 2012 Chelsio Communications, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef _NETINET_TOE_H_ +#define _NETINET_TOE_H_ + +#ifndef _KERNEL +#error "no user-serviceable parts inside" +#endif + +struct tcpopt; +struct tcphdr; +struct in_conninfo; + +struct toedev { + TAILQ_ENTRY(toedev) link; /* glue for toedev_list */ + void *tod_softc; /* TOE driver private data */ + + /* + * Active open. If a failure occurs, it is reported back by the driver + * via toe_connect_failed. + */ + int (*tod_connect)(struct toedev *, struct socket *, struct rtentry *, + struct sockaddr *); + + /* Passive open. */ + int (*tod_listen_start)(struct toedev *, struct tcpcb *); + int (*tod_listen_stop)(struct toedev *, struct tcpcb *); + + /* + * The kernel uses this routine to pass on any frame it receives for an + * offloaded connection to the TOE driver. This is an unusual event. + */ + void (*tod_input)(struct toedev *, struct tcpcb *, struct mbuf *); + + /* + * This is called by the kernel during pru_rcvd for an offloaded TCP + * connection and provides an opportunity for the TOE driver to manage + * its rx window and credits. + */ + void (*tod_rcvd)(struct toedev *, struct tcpcb *); + + /* + * Transmit routine. The kernel calls this to have the TOE driver + * evaluate whether there is data to be transmitted, and transmit it. + */ + int (*tod_output)(struct toedev *, struct tcpcb *); + + /* Immediate teardown: send RST to peer. */ + int (*tod_send_rst)(struct toedev *, struct tcpcb *); + + /* Initiate orderly disconnect by sending FIN to the peer. */ + int (*tod_send_fin)(struct toedev *, struct tcpcb *); + + /* Called to indicate that the kernel is done with this TCP PCB. */ + void (*tod_pcb_detach)(struct toedev *, struct tcpcb *); + + /* + * The kernel calls this once it has information about an L2 entry that + * the TOE driver enquired about previously (via toe_l2_resolve). + */ + void (*tod_l2_update)(struct toedev *, struct ifnet *, + struct sockaddr *, uint8_t *, uint16_t); + + /* XXX. Route has been redirected. */ + void (*tod_route_redirect)(struct toedev *, struct ifnet *, + struct rtentry *, struct rtentry *); + + /* Syncache interaction. */ + void (*tod_syncache_added)(struct toedev *, void *); + void (*tod_syncache_removed)(struct toedev *, void *); + int (*tod_syncache_respond)(struct toedev *, void *, struct mbuf *); + void (*tod_offload_socket)(struct toedev *, void *, struct socket *); + + /* TCP socket option */ + void (*tod_ctloutput)(struct toedev *, struct tcpcb *, int, int); +}; + +#include +typedef void (*tcp_offload_listen_start_fn)(void *, struct tcpcb *); +typedef void (*tcp_offload_listen_stop_fn)(void *, struct tcpcb *); +EVENTHANDLER_DECLARE(tcp_offload_listen_start, tcp_offload_listen_start_fn); +EVENTHANDLER_DECLARE(tcp_offload_listen_stop, tcp_offload_listen_stop_fn); + +void init_toedev(struct toedev *); +int register_toedev(struct toedev *); +int unregister_toedev(struct toedev *); + +/* + * General interface for looking up L2 information for an IP address. If an + * answer is not available right away then the TOE driver's tod_l2_update will + * be called later. + */ +int toe_l2_resolve(struct toedev *, struct ifnet *, struct sockaddr *, + uint8_t *, uint16_t *); + +void toe_connect_failed(struct toedev *, struct tcpcb *, int); + +void toe_syncache_add(struct in_conninfo *, struct tcpopt *, struct tcphdr *, + struct inpcb *, void *, void *); +int toe_syncache_expand(struct in_conninfo *, struct tcpopt *, struct tcphdr *, + struct socket **); + +int toe_4tuple_check(struct in_conninfo *, struct tcphdr *, struct ifnet *); +#endif diff --git a/sys/netinet/toedev.h b/sys/netinet/toedev.h deleted file mode 100644 index 7edaca126faa..000000000000 --- a/sys/netinet/toedev.h +++ /dev/null @@ -1,162 +0,0 @@ -/*- - * Copyright (c) 2007, Chelsio Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * - * 2. Neither the name of the Chelsio Corporation nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - * $FreeBSD$ - */ - -#ifndef _NETINET_TOEDEV_H_ -#define _NETINET_TOEDEV_H_ - -#ifndef _KERNEL -#error "no user-serviceable parts inside" -#endif - -extern uint32_t toedev_registration_count; - -/* Parameter values for offload_get_phys_egress(). */ -enum { - TOE_OPEN, - TOE_FAILOVER, -}; - -/* Parameter values for toe_failover(). */ -enum { - TOE_ACTIVE_SLAVE, - TOE_LINK_DOWN, - TOE_LINK_UP, - TOE_RELEASE, - TOE_RELEASE_ALL, -}; - -#define TOENAMSIZ 16 - -/* Get the toedev associated with a ifnet. */ -#define TOEDEV(ifp) ((ifp)->if_llsoftc) - -struct offload_id { - unsigned int id; - unsigned long data; -}; - -struct ifnet; -struct rt_entry; -struct tom_info; -struct sysctl_oid; -struct socket; -struct mbuf; - -struct toedev { - TAILQ_ENTRY(toedev) entry; - char tod_name[TOENAMSIZ]; /* TOE device name */ - unsigned int tod_ttid; /* TOE type id */ - unsigned long tod_flags; /* device flags */ - unsigned int tod_mtu; /* max TX offloaded data */ - unsigned int tod_nconn; /* max # of offloaded - * connections - */ - struct ifnet *tod_lldev; /* first interface */ - const struct tom_info *tod_offload_mod; /* TCP offload module */ - - /* - * This TOE device is capable of offloading the connection for socket so - */ - int (*tod_can_offload)(struct toedev *dev, struct socket *so); - - /* - * Establish a connection to nam using the TOE device dev - */ - int (*tod_connect)(struct toedev *dev, struct socket *so, - struct rtentry *rt, struct sockaddr *nam); - /* - * Send an mbuf down to the toe device - */ - int (*tod_send)(struct toedev *dev, struct mbuf *m); - /* - * Receive an array of mbufs from the TOE device dev - */ - int (*tod_recv)(struct toedev *dev, struct mbuf **m, int n); - /* - * Device specific ioctl interface - */ - int (*tod_ctl)(struct toedev *dev, unsigned int req, void *data); - /* - * Update L2 entry in toedev - */ - void (*tod_arp_update)(struct toedev *dev, struct rtentry *neigh); - /* - * Failover from one toe device to another - */ - void (*tod_failover)(struct toedev *dev, struct ifnet *bond_ifp, - struct ifnet *ndev, int event); - void *tod_priv; /* driver private data */ - void *tod_l2opt; /* optional layer 2 data */ - void *tod_l3opt; /* optional layer 3 data */ - void *tod_l4opt; /* optional layer 4 data */ - void *tod_ulp; /* upper lever protocol */ -}; - -struct tom_info { - TAILQ_ENTRY(tom_info) entry; - int (*ti_attach)(struct toedev *dev, - const struct offload_id *entry); - int (*ti_detach)(struct toedev *dev); - const char *ti_name; - const struct offload_id *ti_id_table; -}; - -static __inline void -init_offload_dev(struct toedev *dev) -{ -} - -int register_tom(struct tom_info *t); -int unregister_tom(struct tom_info *t); -int register_toedev(struct toedev *dev, const char *name); -int unregister_toedev(struct toedev *dev); -int activate_offload(struct toedev *dev); -int toe_send(struct toedev *dev, struct mbuf *m); -void toe_arp_update(struct rtentry *rt); -struct ifnet *offload_get_phys_egress(struct ifnet *ifp, - struct socket *so, int context); -int toe_receive_mbuf(struct toedev *dev, struct mbuf **m, int n); - -static __inline void -toe_neigh_update(struct ifnet *ifp) -{ -} - -static __inline void -toe_failover(struct ifnet *bond_ifp, struct ifnet *fail_ifp, int event) -{ -} - -static __inline int -toe_enslave(struct ifnet *bond_ifp, struct ifnet *slave_ifp) -{ - return (0); -} - -#endif /* _NETINET_TOEDEV_H_ */ diff --git a/sys/ofed/drivers/infiniband/core/cma.c b/sys/ofed/drivers/infiniband/core/cma.c index 750d2d54c8ec..9867f1001368 100644 --- a/sys/ofed/drivers/infiniband/core/cma.c +++ b/sys/ofed/drivers/infiniband/core/cma.c @@ -59,10 +59,10 @@ static int tavor_quirk = 0; module_param_named(tavor_quirk, tavor_quirk, int, 0644); MODULE_PARM_DESC(tavor_quirk, "Tavor performance quirk: limit MTU to 1K if > 0"); -int unify_tcp_port_space = 0; +int unify_tcp_port_space = 1; module_param(unify_tcp_port_space, int, 0644); MODULE_PARM_DESC(unify_tcp_port_space, "Unify the host TCP and RDMA port " - "space allocation (default=0)"); + "space allocation (default=1)"); #define CMA_CM_RESPONSE_TIMEOUT 20 #define CMA_MAX_CM_RETRIES 15 @@ -1478,6 +1478,7 @@ static int cma_iw_listen(struct rdma_id_private *id_priv, int backlog) struct sockaddr_in *sin; id_priv->cm_id.iw = iw_create_cm_id(id_priv->id.device, + id_priv->sock, iw_conn_req_handler, id_priv); if (IS_ERR(id_priv->cm_id.iw)) @@ -2055,7 +2056,16 @@ static int cma_bind_addr(struct rdma_cm_id *id, struct sockaddr *src_addr, ((struct sockaddr_in6 *) dst_addr)->sin6_scope_id; } } - return rdma_bind_addr(id, src_addr); + if (!cma_any_addr(src_addr)) + return rdma_bind_addr(id, src_addr); + else { + struct sockaddr_in addr_in; + + memset(&addr_in, 0, sizeof addr_in); + addr_in.sin_family = dst_addr->sa_family; + addr_in.sin_len = sizeof addr_in; + return rdma_bind_addr(id, (struct sockaddr *) &addr_in); + } } int rdma_resolve_addr(struct rdma_cm_id *id, struct sockaddr *src_addr, @@ -2247,6 +2257,7 @@ static int cma_get_tcp_port(struct rdma_id_private *id_priv) sock_release(sock); return ret; } + size = ip_addr_size((struct sockaddr *) &id_priv->id.route.addr.src_addr); ret = sock_getname(sock, (struct sockaddr *) &id_priv->id.route.addr.src_addr, @@ -2255,6 +2266,7 @@ static int cma_get_tcp_port(struct rdma_id_private *id_priv) sock_release(sock); return ret; } + id_priv->sock = sock; return 0; } @@ -2604,7 +2616,8 @@ static int cma_connect_iw(struct rdma_id_private *id_priv, int ret; struct iw_cm_conn_param iw_param; - cm_id = iw_create_cm_id(id_priv->id.device, cma_iw_handler, id_priv); + cm_id = iw_create_cm_id(id_priv->id.device, id_priv->sock, + cma_iw_handler, id_priv); if (IS_ERR(cm_id)) { ret = PTR_ERR(cm_id); goto out; diff --git a/sys/ofed/drivers/infiniband/core/iwcm.c b/sys/ofed/drivers/infiniband/core/iwcm.c index 625fec5a741c..b13e53a33697 100644 --- a/sys/ofed/drivers/infiniband/core/iwcm.c +++ b/sys/ofed/drivers/infiniband/core/iwcm.c @@ -189,6 +189,7 @@ static void rem_ref(struct iw_cm_id *cm_id) static int cm_event_handler(struct iw_cm_id *cm_id, struct iw_cm_event *event); struct iw_cm_id *iw_create_cm_id(struct ib_device *device, + struct socket *so, iw_cm_handler cm_handler, void *context) { @@ -205,6 +206,7 @@ struct iw_cm_id *iw_create_cm_id(struct ib_device *device, cm_id_priv->id.event_handler = cm_event_handler; cm_id_priv->id.add_ref = add_ref; cm_id_priv->id.rem_ref = rem_ref; + cm_id_priv->id.so = so; spin_lock_init(&cm_id_priv->lock); atomic_set(&cm_id_priv->refcount, 1); init_waitqueue_head(&cm_id_priv->connect_wait); @@ -629,6 +631,7 @@ static void cm_conn_req_handler(struct iwcm_id_private *listen_id_priv, spin_unlock_irqrestore(&listen_id_priv->lock, flags); cm_id = iw_create_cm_id(listen_id_priv->id.device, + iw_event->so, listen_id_priv->id.cm_handler, listen_id_priv->id.context); /* If the cm_id could not be created, ignore the request */ diff --git a/sys/ofed/include/linux/net.h b/sys/ofed/include/linux/net.h index 6e2aff39524b..f47acf938fe7 100644 --- a/sys/ofed/include/linux/net.h +++ b/sys/ofed/include/linux/net.h @@ -48,12 +48,12 @@ sock_getname(struct socket *so, struct sockaddr *addr, int *sockaddr_len, int error; nam = NULL; - if ((so->so_state & (SS_ISCONNECTED|SS_ISCONFIRMING)) == 0) - return (-ENOTCONN); + if (peer) { + if ((so->so_state & (SS_ISCONNECTED|SS_ISCONFIRMING)) == 0) + return (-ENOTCONN); - if (peer) error = (*so->so_proto->pr_usrreqs->pru_peeraddr)(so, nam); - else + } else error = (*so->so_proto->pr_usrreqs->pru_sockaddr)(so, nam); if (error) return (-error); diff --git a/sys/ofed/include/net/netevent.h b/sys/ofed/include/net/netevent.h index db5b50ef6047..c7bbc5fd5529 100644 --- a/sys/ofed/include/net/netevent.h +++ b/sys/ofed/include/net/netevent.h @@ -42,7 +42,7 @@ enum netevent_notif_type { struct llentry; static inline void -_handle_arp_update_event(void *arg, struct llentry *lle) +_handle_arp_update_event(void *arg, struct llentry *lle, int evt __unused) { struct notifier_block *nb; @@ -54,7 +54,7 @@ static inline int register_netevent_notifier(struct notifier_block *nb) { nb->tags[NETEVENT_NEIGH_UPDATE] = EVENTHANDLER_REGISTER( - arp_update_event, _handle_arp_update_event, nb, 0); + lle_event, _handle_arp_update_event, nb, 0); return (0); } @@ -62,8 +62,7 @@ static inline int unregister_netevent_notifier(struct notifier_block *nb) { - EVENTHANDLER_DEREGISTER(arp_update_event, - nb->tags[NETEVENT_NEIGH_UPDATE]); + EVENTHANDLER_DEREGISTER(lle_event, nb->tags[NETEVENT_NEIGH_UPDATE]); return (0); } diff --git a/sys/ofed/include/rdma/iw_cm.h b/sys/ofed/include/rdma/iw_cm.h index cbb822e8d791..412320e0899a 100644 --- a/sys/ofed/include/rdma/iw_cm.h +++ b/sys/ofed/include/rdma/iw_cm.h @@ -63,6 +63,7 @@ struct iw_cm_event { void *private_data; u8 private_data_len; void *provider_data; + struct socket *so; }; /** @@ -98,6 +99,7 @@ struct iw_cm_id { /* Used by provider to add and remove refs on IW cm_id */ void (*add_ref)(struct iw_cm_id *); void (*rem_ref)(struct iw_cm_id *); + struct socket *so; }; struct iw_cm_conn_param { @@ -139,7 +141,7 @@ struct iw_cm_verbs { * returned IW CM identifier. * @context: User specified context associated with the id. */ -struct iw_cm_id *iw_create_cm_id(struct ib_device *device, +struct iw_cm_id *iw_create_cm_id(struct ib_device *device, struct socket *so, iw_cm_handler cm_handler, void *context); /** diff --git a/usr.bin/netstat/inet.c b/usr.bin/netstat/inet.c index 50d2bdd98116..9d8c97e332f8 100644 --- a/usr.bin/netstat/inet.c +++ b/usr.bin/netstat/inet.c @@ -461,7 +461,10 @@ protopr(u_long off, const char *name, int af1, int proto) #endif vchar = ((inp->inp_vflag & INP_IPV4) != 0) ? "4 " : " "; - printf("%-3.3s%-2.2s ", name, vchar); + if (istcp && (tp->t_flags & TF_TOE) != 0) + printf("%-3.3s%-2.2s ", "toe", vchar); + else + printf("%-3.3s%-2.2s ", name, vchar); if (Lflag) { char buf1[15]; diff --git a/usr.bin/sockstat/sockstat.c b/usr.bin/sockstat/sockstat.c index 334fb938a738..f60d9fb7431e 100644 --- a/usr.bin/sockstat/sockstat.c +++ b/usr.bin/sockstat/sockstat.c @@ -325,6 +325,7 @@ gather_inet(int proto) } inp = &xtp->xt_inp; so = &xtp->xt_socket; + protoname = xtp->xt_tp.t_flags & TF_TOE ? "toe" : "tcp"; break; case IPPROTO_UDP: case IPPROTO_DIVERT: From 2f49b6b831cfe534452c12cece74b061a7c64914 Mon Sep 17 00:00:00 2001 From: Alan Cox Date: Tue, 19 Jun 2012 08:12:44 +0000 Subject: [PATCH 330/340] Condition the implementation of pv_entry_count on PV_STATS. On amd64, pv_entry_count is purely informational. It does not serve any functional purpose. Add PV chunk locking to get_pv_entry(). --- sys/amd64/amd64/pmap.c | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/sys/amd64/amd64/pmap.c b/sys/amd64/amd64/pmap.c index 7d9be833f6bf..0a0252c1d6a8 100644 --- a/sys/amd64/amd64/pmap.c +++ b/sys/amd64/amd64/pmap.c @@ -2043,10 +2043,6 @@ pv_to_chunk(pv_entry_t pv) static const uint64_t pc_freemask[_NPCM] = { PC_FREE0, PC_FREE1, PC_FREE2 }; -static long pv_entry_count; -SYSCTL_LONG(_vm_pmap, OID_AUTO, pv_entry_count, CTLFLAG_RD, &pv_entry_count, 0, - "Current number of pv entries"); - #ifdef PV_STATS static int pc_chunk_count, pc_chunk_allocs, pc_chunk_frees, pc_chunk_tryfail; @@ -2059,13 +2055,15 @@ SYSCTL_INT(_vm_pmap, OID_AUTO, pc_chunk_frees, CTLFLAG_RD, &pc_chunk_frees, 0, SYSCTL_INT(_vm_pmap, OID_AUTO, pc_chunk_tryfail, CTLFLAG_RD, &pc_chunk_tryfail, 0, "Number of times tried to get a chunk page but failed."); -static long pv_entry_frees, pv_entry_allocs; +static long pv_entry_frees, pv_entry_allocs, pv_entry_count; static int pv_entry_spare; SYSCTL_LONG(_vm_pmap, OID_AUTO, pv_entry_frees, CTLFLAG_RD, &pv_entry_frees, 0, "Current number of pv entry frees"); SYSCTL_LONG(_vm_pmap, OID_AUTO, pv_entry_allocs, CTLFLAG_RD, &pv_entry_allocs, 0, "Current number of pv entry allocs"); +SYSCTL_LONG(_vm_pmap, OID_AUTO, pv_entry_count, CTLFLAG_RD, &pv_entry_count, 0, + "Current number of pv entries"); SYSCTL_INT(_vm_pmap, OID_AUTO, pv_entry_spare, CTLFLAG_RD, &pv_entry_spare, 0, "Current number of spare pv entries"); #endif @@ -2164,7 +2162,7 @@ pmap_pv_reclaim(pmap_t locked_pmap) pmap_resident_count_dec(pmap, freed); PV_STAT(pv_entry_frees += freed); PV_STAT(pv_entry_spare += freed); - pv_entry_count -= freed; + PV_STAT(atomic_subtract_long(&pv_entry_count, freed)); TAILQ_REMOVE(&pmap->pm_pvchunk, pc, pc_list); if (pc->pc_map[0] == PC_FREE0 && pc->pc_map[1] == PC_FREE1 && pc->pc_map[2] == PC_FREE2) { @@ -2212,7 +2210,7 @@ free_pv_entry(pmap_t pmap, pv_entry_t pv) PMAP_LOCK_ASSERT(pmap, MA_OWNED); PV_STAT(pv_entry_frees++); PV_STAT(pv_entry_spare++); - pv_entry_count--; + PV_STAT(atomic_subtract_long(&pv_entry_count, 1)); pc = pv_to_chunk(pv); idx = pv - &pc->pc_pventry[0]; field = idx / 64; @@ -2261,9 +2259,9 @@ get_pv_entry(pmap_t pmap, boolean_t try) struct pv_chunk *pc; vm_page_t m; - rw_assert(&pvh_global_lock, RA_WLOCKED); + rw_assert(&pvh_global_lock, RA_LOCKED); PMAP_LOCK_ASSERT(pmap, MA_OWNED); - PV_STAT(pv_entry_allocs++); + PV_STAT(atomic_add_long(&pv_entry_allocs, 1)); retry: pc = TAILQ_FIRST(&pmap->pm_pvchunk); if (pc != NULL) { @@ -2283,8 +2281,8 @@ get_pv_entry(pmap_t pmap, boolean_t try) TAILQ_INSERT_TAIL(&pmap->pm_pvchunk, pc, pc_list); } - pv_entry_count++; - PV_STAT(pv_entry_spare--); + PV_STAT(atomic_add_long(&pv_entry_count, 1)); + PV_STAT(atomic_subtract_int(&pv_entry_spare, 1)); return (pv); } } @@ -2300,19 +2298,21 @@ get_pv_entry(pmap_t pmap, boolean_t try) if (m == NULL) goto retry; } - PV_STAT(pc_chunk_count++); - PV_STAT(pc_chunk_allocs++); + PV_STAT(atomic_add_int(&pc_chunk_count, 1)); + PV_STAT(atomic_add_int(&pc_chunk_allocs, 1)); dump_add_page(m->phys_addr); pc = (void *)PHYS_TO_DMAP(m->phys_addr); pc->pc_pmap = pmap; pc->pc_map[0] = PC_FREE0 & ~1ul; /* preallocated bit 0 */ pc->pc_map[1] = PC_FREE1; pc->pc_map[2] = PC_FREE2; + mtx_lock(&pv_chunks_mutex); TAILQ_INSERT_TAIL(&pv_chunks, pc, pc_lru); + mtx_unlock(&pv_chunks_mutex); pv = &pc->pc_pventry[0]; TAILQ_INSERT_HEAD(&pmap->pm_pvchunk, pc, pc_list); - pv_entry_count++; - PV_STAT(pv_entry_spare += _NPCPV - 1); + PV_STAT(atomic_add_long(&pv_entry_count, 1)); + PV_STAT(atomic_add_int(&pv_entry_spare, _NPCPV - 1)); return (pv); } @@ -4266,7 +4266,7 @@ pmap_remove_pages(pmap_t pmap) } PV_STAT(atomic_add_long(&pv_entry_frees, freed)); PV_STAT(atomic_add_int(&pv_entry_spare, freed)); - atomic_subtract_long(&pv_entry_count, freed); + PV_STAT(atomic_subtract_long(&pv_entry_count, freed)); if (allfree) { if (lock != NULL) { rw_wunlock(lock); From 2f1b1e91a379144084c0f775daaf51dbcccab25c Mon Sep 17 00:00:00 2001 From: Baptiste Daroussin Date: Tue, 19 Jun 2012 11:39:56 +0000 Subject: [PATCH 331/340] Revert user comparison back to user names as some user can share uids (root/toor for example) get the username information from old_pw structures to still allow renaming of a user. Reported by: Claude Buisson Approved by: des (mentor) MFC after: 3 weeks --- lib/libutil/pw_util.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/lib/libutil/pw_util.c b/lib/libutil/pw_util.c index 63c63de81aa6..4bf3001ffe79 100644 --- a/lib/libutil/pw_util.c +++ b/lib/libutil/pw_util.c @@ -437,14 +437,21 @@ pw_copy(int ffd, int tfd, const struct passwd *pw, struct passwd *old_pw) size_t len; int eof, readlen; - spw = pw; + if (old_pw == NULL && pw == NULL) + return (-1); + + spw = old_pw; + /* deleting a user */ if (pw == NULL) { line = NULL; - if (old_pw == NULL) + } else { + if ((line = pw_make(pw)) == NULL) return (-1); - spw = old_pw; - } else if ((line = pw_make(pw)) == NULL) - return (-1); + } + + /* adding a user */ + if (spw == NULL) + spw = pw; eof = 0; len = 0; @@ -511,7 +518,7 @@ pw_copy(int ffd, int tfd, const struct passwd *pw, struct passwd *old_pw) */ *q = t; - if (fpw == NULL || fpw->pw_uid != spw->pw_uid) { + if (fpw == NULL || strcmp(fpw->pw_name, spw->pw_name) != 0) { /* nope */ if (fpw != NULL) free(fpw); From b4f560356aa28807bc0f477deeb810a05f953d06 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dag-Erling=20Sm=C3=B8rgrav?= Date: Tue, 19 Jun 2012 14:46:18 +0000 Subject: [PATCH 332/340] Switch the default password hash from md5 to sha512. MFC after: 1 week --- etc/login.conf | 2 +- lib/libutil/login.conf.5 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/etc/login.conf b/etc/login.conf index a454758decd0..d1b9e4ba7163 100644 --- a/etc/login.conf +++ b/etc/login.conf @@ -23,7 +23,7 @@ # AND SEMANTICS'' section of getcap(3) for more escape sequences). default:\ - :passwd_format=md5:\ + :passwd_format=sha512:\ :copyright=/etc/COPYRIGHT:\ :welcome=/etc/motd:\ :setenv=MAIL=/var/mail/$,BLOCKSIZE=K,FTP_PASSIVE_MODE=YES:\ diff --git a/lib/libutil/login.conf.5 b/lib/libutil/login.conf.5 index bd741fbcea44..a07e1f03e0d3 100644 --- a/lib/libutil/login.conf.5 +++ b/lib/libutil/login.conf.5 @@ -267,7 +267,7 @@ The backoff delay is the number of tries above multiplied by 5 seconds. .It "login-retries number 10 The number of login attempts" allowed before the login fails. -.It "passwd_format string md5 The encryption format that new or" +.It "passwd_format string sha512 The encryption format that new or" changed passwords will use. Valid values include "des", "md5", "blf", "sha256" and "sha512"; see .Xr crypt 3 From 3acb6d160fd411a380b3f7c475e34e276b19f9ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dag-Erling=20Sm=C3=B8rgrav?= Date: Tue, 19 Jun 2012 14:47:07 +0000 Subject: [PATCH 333/340] Passive mode is the default, and has been for a while. MFC after: 1 week --- etc/login.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etc/login.conf b/etc/login.conf index d1b9e4ba7163..c62687a65101 100644 --- a/etc/login.conf +++ b/etc/login.conf @@ -26,7 +26,7 @@ default:\ :passwd_format=sha512:\ :copyright=/etc/COPYRIGHT:\ :welcome=/etc/motd:\ - :setenv=MAIL=/var/mail/$,BLOCKSIZE=K,FTP_PASSIVE_MODE=YES:\ + :setenv=MAIL=/var/mail/$,BLOCKSIZE=K:\ :path=/sbin /bin /usr/sbin /usr/bin /usr/games /usr/local/sbin /usr/local/bin ~/bin:\ :nologin=/var/run/nologin:\ :cputime=unlimited:\ From 1ba9eae287359504fc3aa12996d5b1b4727bbfeb Mon Sep 17 00:00:00 2001 From: John Baldwin Date: Tue, 19 Jun 2012 15:15:35 +0000 Subject: [PATCH 334/340] Fix another off-by-one error in the previous fix so that the new start address is properly aligned. While here, use a simpler expression to align the new end address that we use elsewhere for aligning the end. --- sys/dev/pci/pci_pci.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/dev/pci/pci_pci.c b/sys/dev/pci/pci_pci.c index d47b299c9e37..4901c1d88216 100644 --- a/sys/dev/pci/pci_pci.c +++ b/sys/dev/pci/pci_pci.c @@ -913,7 +913,7 @@ pcib_grow_window(struct pcib_softc *sc, struct pcib_window *w, int type, if (bootverbose) printf("\tfront candidate range: %#lx-%#lx\n", front, end_free); - front &= ~(1ul << w->step) - 1; + front &= ~((1ul << w->step) - 1); front = rman_get_start(w->res) - front; } else front = 0; @@ -941,7 +941,7 @@ pcib_grow_window(struct pcib_softc *sc, struct pcib_window *w, int type, if (bootverbose) printf("\tback candidate range: %#lx-%#lx\n", start_free, back); - back = roundup2(back + 1, 1ul << w->step) - 1; + back |= (1ul << w->step) - 1; back -= rman_get_end(w->res); } else back = 0; From a7b5acac1aa29ae9d2dc9d436ef8e8053138d862 Mon Sep 17 00:00:00 2001 From: John Baldwin Date: Tue, 19 Jun 2012 16:06:27 +0000 Subject: [PATCH 335/340] Add a 'wmask' variable to hold the expression '(1ul << w->step) - 1' in pcib_grow_window(). This makes the code slightly easier to read and prevents the type of bug fixed in r237271. MFC after: 3 days --- sys/dev/pci/pci_pci.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/sys/dev/pci/pci_pci.c b/sys/dev/pci/pci_pci.c index 4901c1d88216..9dc72ef089c0 100644 --- a/sys/dev/pci/pci_pci.c +++ b/sys/dev/pci/pci_pci.c @@ -815,7 +815,7 @@ static int pcib_grow_window(struct pcib_softc *sc, struct pcib_window *w, int type, u_long start, u_long end, u_long count, u_int flags) { - u_long align, start_free, end_free, front, back; + u_long align, start_free, end_free, front, back, wmask; int error, rid; /* @@ -828,6 +828,7 @@ pcib_grow_window(struct pcib_softc *sc, struct pcib_window *w, int type, end = w->rman.rm_end; if (start + count - 1 > end || start + count < start) return (EINVAL); + wmask = (1ul << w->step) - 1; /* * If there is no resource at all, just try to allocate enough @@ -838,8 +839,8 @@ pcib_grow_window(struct pcib_softc *sc, struct pcib_window *w, int type, flags &= ~RF_ALIGNMENT_MASK; flags |= RF_ALIGNMENT_LOG2(w->step); } - start &= ~((1ul << w->step) - 1); - end |= ((1ul << w->step) - 1); + start &= ~wmask; + end |= wmask; count = roundup2(count, 1ul << w->step); rid = w->reg; w->res = bus_alloc_resource(sc->dev, type, &rid, start, end, @@ -913,7 +914,7 @@ pcib_grow_window(struct pcib_softc *sc, struct pcib_window *w, int type, if (bootverbose) printf("\tfront candidate range: %#lx-%#lx\n", front, end_free); - front &= ~((1ul << w->step) - 1); + front &= ~wmask; front = rman_get_start(w->res) - front; } else front = 0; @@ -941,7 +942,7 @@ pcib_grow_window(struct pcib_softc *sc, struct pcib_window *w, int type, if (bootverbose) printf("\tback candidate range: %#lx-%#lx\n", start_free, back); - back |= (1ul << w->step) - 1; + back |= wmask; back -= rman_get_end(w->res); } else back = 0; @@ -1000,10 +1001,8 @@ pcib_grow_window(struct pcib_softc *sc, struct pcib_window *w, int type, /* Save the new window. */ w->base = rman_get_start(w->res); w->limit = rman_get_end(w->res); - KASSERT((w->base & ((1ul << w->step) - 1)) == 0, - ("start address is not aligned")); - KASSERT((w->limit & ((1ul << w->step) - 1)) == (1ul << w->step) - 1, - ("end address is not aligned")); + KASSERT((w->base & wmask) == 0, ("start address is not aligned")); + KASSERT((w->limit & wmask) == wmask, ("end address is not aligned")); pcib_write_windows(sc, w->mask); return (0); } From bf7f8bd30ad55afd2df96cd9faf1e6bde87615c8 Mon Sep 17 00:00:00 2001 From: Sean Bruno Date: Tue, 19 Jun 2012 17:13:14 +0000 Subject: [PATCH 336/340] Correct misunderstanding of hw.est.strict Setting strict causes a validation of the requested value vs the value currently running after a frequency change is requested. Change applicability to be single core not i386. Thanks to mav@ for reviewing and commenting on my lack of understanding. MFC after: 2 weeks --- share/man/man4/est.4 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/share/man/man4/est.4 b/share/man/man4/est.4 index 618e5a5966eb..f1b5832af734 100644 --- a/share/man/man4/est.4 +++ b/share/man/man4/est.4 @@ -66,8 +66,8 @@ Attempt to infer information from direct probing of the msr. Should only be used in diagnostic cases .Pq default 0 .It hw.est.strict -Do not allow different cpus to be set to different frequencies. -It appears that this will only work on i386 systems +Validate frequency requested is accepted by the cpu when set. +It appears that this will only work on single core cpus. .Pq default 0 .El .Sh DIAGNOSTICS From cd4ecf3cd26d22549af484b7ac84f6a9c8dae2d8 Mon Sep 17 00:00:00 2001 From: John Baldwin Date: Tue, 19 Jun 2012 18:42:24 +0000 Subject: [PATCH 337/340] Further refine the implementation of POSIX_FADV_NOREUSE. First, extend the changes in r230782 to better handle the common case of using NOREUSE with sequential reads. A NOREUSE file descriptor will now track the last implicit DONTNEED request it made as a result of a NOREUSE read. If a subsequent NOREUSE read is adjacent to the previous range, it will apply the DONTNEED request to the entire range of both the previous read and the current read. The effect is that each read of a file accessed sequentially will apply the DONTNEED request to the entire range that has been read. This allows NOREUSE to properly handle misaligned reads by flushing each buffer to cache once it has been completely read. Second, apply the same changes made to read(2) by r230782 and this change to writes. This provides much better performance in the sequential write case as it allows writes to still be clustered. It also provides much better performance for misaligned writes. It does mean that NOREUSE will be generally ineffective for non-sequential writes as the current implementation relies on a future NOREUSE write's implicit DONTNEED request to flush the dirty buffer from the current write. MFC after: 2 weeks --- lib/libc/sys/posix_fadvise.2 | 9 ++-- sys/kern/vfs_syscalls.c | 2 + sys/kern/vfs_vnops.c | 97 ++++++++++++++++++++++++++++++++---- sys/sys/file.h | 2 + 4 files changed, 94 insertions(+), 16 deletions(-) diff --git a/lib/libc/sys/posix_fadvise.2 b/lib/libc/sys/posix_fadvise.2 index 37453ff10d96..f303f422b542 100644 --- a/lib/libc/sys/posix_fadvise.2 +++ b/lib/libc/sys/posix_fadvise.2 @@ -28,7 +28,7 @@ .\" @(#)madvise.2 8.1 (Berkeley) 6/9/93 .\" $FreeBSD$ .\" -.Dd February 25, 2012 +.Dd June 19, 2012 .Dt POSIX_FADVISE 2 .Os .Sh NAME @@ -84,10 +84,9 @@ specified range and future access to this data may require a read operation. .It Dv POSIX_FADV_NOREUSE Tells the system that the specified data will only be accessed once and then not reused. -Accesses to data within the specified range are treated as if the file -descriptor has the -.Dv O_DIRECT -flag enabled. +The system may decrease the in-memory priority of data once it has been +read or written. +Future access to this data may require a read operation. .El .Sh RETURN VALUES .Rv -std posix_fadvise diff --git a/sys/kern/vfs_syscalls.c b/sys/kern/vfs_syscalls.c index 3c719d7f1b01..27b419c046c9 100644 --- a/sys/kern/vfs_syscalls.c +++ b/sys/kern/vfs_syscalls.c @@ -4872,6 +4872,8 @@ kern_posix_fadvise(struct thread *td, int fd, off_t offset, off_t len, new->fa_advice = advice; new->fa_start = offset; new->fa_end = end; + new->fa_prevstart = 0; + new->fa_prevend = 0; fp->f_advice = new; new = fa; } diff --git a/sys/kern/vfs_vnops.c b/sys/kern/vfs_vnops.c index b503529d5eea..75bd3df4c782 100644 --- a/sys/kern/vfs_vnops.c +++ b/sys/kern/vfs_vnops.c @@ -542,7 +542,7 @@ vn_read(fp, uio, active_cred, flags, td) int error, ioflag; struct mtx *mtxp; int advice, vfslocked; - off_t offset; + off_t offset, start, end; KASSERT(uio->uio_td == td, ("uio_td %p is not td %p", uio->uio_td, td)); @@ -607,9 +607,38 @@ vn_read(fp, uio, active_cred, flags, td) fp->f_nextoff = uio->uio_offset; VOP_UNLOCK(vp, 0); if (error == 0 && advice == POSIX_FADV_NOREUSE && - offset != uio->uio_offset) - error = VOP_ADVISE(vp, offset, uio->uio_offset - 1, - POSIX_FADV_DONTNEED); + offset != uio->uio_offset) { + /* + * Use POSIX_FADV_DONTNEED to flush clean pages and + * buffers for the backing file after a + * POSIX_FADV_NOREUSE read(2). To optimize the common + * case of using POSIX_FADV_NOREUSE with sequential + * access, track the previous implicit DONTNEED + * request and grow this request to include the + * current read(2) in addition to the previous + * DONTNEED. With purely sequential access this will + * cause the DONTNEED requests to continously grow to + * cover all of the previously read regions of the + * file. This allows filesystem blocks that are + * accessed by multiple calls to read(2) to be flushed + * once the last read(2) finishes. + */ + start = offset; + end = uio->uio_offset - 1; + mtx_lock(mtxp); + if (fp->f_advice != NULL && + fp->f_advice->fa_advice == POSIX_FADV_NOREUSE) { + if (start != 0 && fp->f_advice->fa_prevend + 1 == start) + start = fp->f_advice->fa_prevstart; + else if (fp->f_advice->fa_prevstart != 0 && + fp->f_advice->fa_prevstart == end + 1) + end = fp->f_advice->fa_prevend; + fp->f_advice->fa_prevstart = start; + fp->f_advice->fa_prevend = end; + } + mtx_unlock(mtxp); + error = VOP_ADVISE(vp, start, end, POSIX_FADV_DONTNEED); + } VFS_UNLOCK_GIANT(vfslocked); return (error); } @@ -630,6 +659,7 @@ vn_write(fp, uio, active_cred, flags, td) int error, ioflag, lock_flags; struct mtx *mtxp; int advice, vfslocked; + off_t offset, start, end; KASSERT(uio->uio_td == td, ("uio_td %p is not td %p", uio->uio_td, td)); @@ -664,6 +694,7 @@ vn_write(fp, uio, active_cred, flags, td) if ((flags & FOF_OFFSET) == 0) uio->uio_offset = fp->f_offset; advice = POSIX_FADV_NORMAL; + mtxp = NULL; if (fp->f_advice != NULL) { mtxp = mtx_pool_find(mtxpool_sleep, fp); mtx_lock(mtxp); @@ -676,19 +707,14 @@ vn_write(fp, uio, active_cred, flags, td) switch (advice) { case POSIX_FADV_NORMAL: case POSIX_FADV_SEQUENTIAL: + case POSIX_FADV_NOREUSE: ioflag |= sequential_heuristic(uio, fp); break; case POSIX_FADV_RANDOM: /* XXX: Is this correct? */ break; - case POSIX_FADV_NOREUSE: - /* - * Request the underlying FS to discard the buffers - * and pages after the I/O is complete. - */ - ioflag |= IO_DIRECT; - break; } + offset = uio->uio_offset; #ifdef MAC error = mac_vnode_check_write(active_cred, fp->f_cred, vp); @@ -701,6 +727,55 @@ vn_write(fp, uio, active_cred, flags, td) VOP_UNLOCK(vp, 0); if (vp->v_type != VCHR) vn_finished_write(mp); + if (error == 0 && advice == POSIX_FADV_NOREUSE && + offset != uio->uio_offset) { + /* + * Use POSIX_FADV_DONTNEED to flush clean pages and + * buffers for the backing file after a + * POSIX_FADV_NOREUSE write(2). To optimize the + * common case of using POSIX_FADV_NOREUSE with + * sequential access, track the previous implicit + * DONTNEED request and grow this request to include + * the current write(2) in addition to the previous + * DONTNEED. With purely sequential access this will + * cause the DONTNEED requests to continously grow to + * cover all of the previously written regions of the + * file. + * + * Note that the blocks just written are almost + * certainly still dirty, so this only works when + * VOP_ADVISE() calls from subsequent writes push out + * the data written by this write(2) once the backing + * buffers are clean. However, as compared to forcing + * IO_DIRECT, this gives much saner behavior. Write + * clustering is still allowed, and clean pages are + * merely moved to the cache page queue rather than + * outright thrown away. This means a subsequent + * read(2) can still avoid hitting the disk if the + * pages have not been reclaimed. + * + * This does make POSIX_FADV_NOREUSE largely useless + * with non-sequential access. However, sequential + * access is the more common use case and the flag is + * merely advisory. + */ + start = offset; + end = uio->uio_offset - 1; + mtx_lock(mtxp); + if (fp->f_advice != NULL && + fp->f_advice->fa_advice == POSIX_FADV_NOREUSE) { + if (start != 0 && fp->f_advice->fa_prevend + 1 == start) + start = fp->f_advice->fa_prevstart; + else if (fp->f_advice->fa_prevstart != 0 && + fp->f_advice->fa_prevstart == end + 1) + end = fp->f_advice->fa_prevend; + fp->f_advice->fa_prevstart = start; + fp->f_advice->fa_prevend = end; + } + mtx_unlock(mtxp); + error = VOP_ADVISE(vp, start, end, POSIX_FADV_DONTNEED); + } + unlock: VFS_UNLOCK_GIANT(vfslocked); return (error); diff --git a/sys/sys/file.h b/sys/sys/file.h index 1489ca06ad7d..b89e5848396b 100644 --- a/sys/sys/file.h +++ b/sys/sys/file.h @@ -126,6 +126,8 @@ struct fadvise_info { int fa_advice; /* (f) FADV_* type. */ off_t fa_start; /* (f) Region start. */ off_t fa_end; /* (f) Region end. */ + off_t fa_prevstart; /* (f) Previous NOREUSE start. */ + off_t fa_prevend; /* (f) Previous NOREUSE end. */ }; struct file { From 0a7007b98f0eeb7312a1f653e3d159a3c5bbff2b Mon Sep 17 00:00:00 2001 From: Pawel Jakub Dawidek Date: Tue, 19 Jun 2012 22:21:59 +0000 Subject: [PATCH 338/340] The falloc() function obtains two references to newly created 'fp'. On success we have to drop one after procdesc_finit() and on failure we have to close allocated slot with fdclose(), which also drops one reference for us and drop the remaining reference with fdrop(). Without this change closing process descriptor didn't result in killing pdfork(2)ed child. Reviewed by: rwatson MFC after: 1 month --- sys/kern/kern_fork.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/sys/kern/kern_fork.c b/sys/kern/kern_fork.c index f23c204969af..6cb95cdd7f50 100644 --- a/sys/kern/kern_fork.c +++ b/sys/kern/kern_fork.c @@ -921,8 +921,10 @@ fork1(struct thread *td, int flags, int pages, struct proc **procp, */ *procp = newproc; #ifdef PROCDESC - if (flags & RFPROCDESC) + if (flags & RFPROCDESC) { procdesc_finit(newproc->p_procdesc, fp_procdesc); + fdrop(fp_procdesc, td); + } #endif racct_proc_fork_done(newproc); return (0); @@ -944,8 +946,10 @@ fork1(struct thread *td, int flags, int pages, struct proc **procp, vmspace_free(vm2); uma_zfree(proc_zone, newproc); #ifdef PROCDESC - if (((flags & RFPROCDESC) != 0) && (fp_procdesc != NULL)) + if (((flags & RFPROCDESC) != 0) && (fp_procdesc != NULL)) { + fdclose(td->td_proc->p_fd, fp_procdesc, *procdescp, td); fdrop(fp_procdesc, td); + } #endif pause("fork", hz / 2); return (error); From 53e16463257baf8d2c3c9b1f83f598ffdbf9ada8 Mon Sep 17 00:00:00 2001 From: Pawel Jakub Dawidek Date: Tue, 19 Jun 2012 22:23:59 +0000 Subject: [PATCH 339/340] Check proper flag (PDF_DAEMON, not PD_DAEMON) when deciding if the process should be killed or not. This fixes killing pdfork(2)ed process on last close of the corresponding process descriptor. Reviewed by: rwatson MFC after: 1 month --- sys/kern/sys_procdesc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/kern/sys_procdesc.c b/sys/kern/sys_procdesc.c index 08d345f2ef3b..0bf79b8fb793 100644 --- a/sys/kern/sys_procdesc.c +++ b/sys/kern/sys_procdesc.c @@ -338,7 +338,7 @@ procdesc_reap(struct proc *p) /* * procdesc_close() - last close on a process descriptor. If the process is - * still running, terminate with SIGKILL (unless PD_DAEMON is set) and let + * still running, terminate with SIGKILL (unless PDF_DAEMON is set) and let * init(8) clean up the mess; if not, we have to clean up the zombie ourselves. */ static int @@ -386,7 +386,7 @@ procdesc_close(struct file *fp, struct thread *td) */ p->p_sigparent = SIGCHLD; proc_reparent(p, initproc); - if ((pd->pd_flags & PD_DAEMON) == 0) + if ((pd->pd_flags & PDF_DAEMON) == 0) kern_psignal(p, SIGKILL); PROC_UNLOCK(p); sx_xunlock(&proctree_lock); From 2e0c6b7ac085851863cdaf8b6884acff23e84a84 Mon Sep 17 00:00:00 2001 From: "David E. O'Brien" Date: Wed, 20 Jun 2012 00:09:47 +0000 Subject: [PATCH 340/340] Install filemon.h into /usr/include for userland consumption. --- etc/mtree/BSD.include.dist | 2 ++ include/Makefile | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/etc/mtree/BSD.include.dist b/etc/mtree/BSD.include.dist index c2a0e912ace5..637ec037e6e8 100644 --- a/etc/mtree/BSD.include.dist +++ b/etc/mtree/BSD.include.dist @@ -102,6 +102,8 @@ .. ciss .. + filemon + .. firewire .. hwpmc diff --git a/include/Makefile b/include/Makefile index c67dc75b7f48..d2f6d7f08853 100644 --- a/include/Makefile +++ b/include/Makefile @@ -39,7 +39,7 @@ LDIRS= bsm cam geom net net80211 netatalk netgraph netinet netinet6 \ sys vm LSUBDIRS= cam/ata cam/scsi \ - dev/acpica dev/an dev/bktr dev/ciss dev/firewire dev/hwpmc \ + dev/acpica dev/an dev/bktr dev/ciss dev/filemon dev/firewire dev/hwpmc \ dev/ic dev/iicbus ${_dev_ieee488} dev/io dev/lmc dev/mfi dev/ofw \ dev/pbio ${_dev_powermac_nvram} dev/ppbus dev/smbus \ dev/speaker dev/usb dev/utopia dev/vkbd dev/wi \